有史以來最有影響力的小型計算機 PDP-11 簡介
![有史以來最有影響力的小型計算機 PDP-11 簡介](https://cdn.4pmtech.com/wp-content/uploads/2023/07/panelincase_side-760x380-1-640x375.webp)
計算技術的歷史大致可以分為三個時代:大型機時代、小型機時代和微型計算機時代。小型計算機成為第一批大型機和當今無處不在的微型計算機之間的重要紐帶。這就是最有影響力、最成功的小型計算機 PDP-11 的故事。
曾經,小型計算機被用於多種應用。它們充當通信控制器、儀器控制器、大型系統預處理器、桌面計算器和實時數據採集處理器。但它們也為硬件架構的重大進步奠定了基礎,並對我們今天所知的現代操作系統、編程語言和交互式計算做出了重大貢獻。
在當今的計算世界中,每台計算機都運行某些版本的 Windows、Mac 或 Linux,因此很難區分操作系統背後的 CPU。但曾經有一段時間,CPU 架構的差異非常重要。PDP-11 有助於解釋為什麼會這樣。
PDP-11 於 1970 年推出,當時大多數計算都是在昂貴的 GE、CDC 和 IBM 大型機上完成的,很少有人能夠使用。沒有筆記本電腦,沒有台式機,沒有個人電腦。只有少數公司參與編程,主要是彙編語言、COBOL 和 FORTRAN。輸入是通過打孔卡進行的,程序是通過非交互式批量運行啟動的。
儘管第一台 PDP-11 規模不大,但它為小型計算機的入侵奠定了基礎,使下一代計算機變得更加便宜,從本質上徹底改變了計算。PDP-11 幫助創建了 UNIX 操作系統和 C 編程語言。它還將極大地影響下一代計算機體系結構。在 PDP-11 的 22 年壽命中(以今天的標準來看這是前所未有的時間),PDP-11 的銷量已超過 600,000 台。
早期的 PDP-11 並沒有那麼令人印象深刻。第一個 11/20 PDP-11 售價 20,000 美元,但只有 4 KB RAM。它使用紙帶作為存儲設備,並配有每秒打印 10 個字符的 ASR-33 電傳打字機控制台。但它還具有令人驚嘆的正交 16 位架構、8 個寄存器、65 KB 地址空間、1.25 MHz 週期時間以及支持未來硬件外設的靈活 UNIBUS 硬件總線。對於其創建者數字設備公司來說,這是一個成功的組合。
PDP-11 的最初應用包括實時硬件控制、工廠自動化和數據處理。隨著 PDP-11 因靈活性、可編程性和經濟性而享有盛譽,它被廣泛用於交通燈控制系統、耐克的導彈防禦系統、空中交通管制、核電站、海軍飛行員培訓系統和電信。他還開創了我們現在認為理所當然的文字處理和數據處理。
PDP-11 的影響在設備組裝的編程中最為明顯。
彙編編程基礎知識
在Python、Java、Fortran等高級語言發明之前,編程都是用彙編語言完成的。彙編語言編程可以用很少的 RAM 和磁盤空間來完成,非常適合早期的計算。
彙編語言是一種低級中間格式,可以轉換為機器語言,然後可以直接由計算機運行。它是低級的,因為您直接控制計算機體系結構的各個方面。簡而言之,彙編語言編程通過硬件寄存器和內存逐字節移動數據。PDP-11 編程的獨特之處在於小型計算機的優雅設計。每條指令都有它的位置,每條指令都有其含義。
16 位地址空間意味著每個寄存器可以直接尋址高達 64 KB 的 RAM,其中頂部 4 KB 保留用於內存映射輸入和輸出。PDP-11 可以使用寄存器段尋址總共 128 KB 的 RAM(稍後會詳細介紹)。因此,儘管 PDP-11 系統僅配備 4 KB RAM,但由於早期編程技術的巧妙使用,它們仍然具有很高的生產力。
裝配程序
理解這個概念的最簡單方法是使用一個簡單的 PDP-11 彙編語言程序,我們將在下面介紹。以“.”開頭的關鍵字是彙編器的指令。.globl
將標籤作為符號導出到鏈接器以供操作系統使用。.text
定義代碼段的開始。.data
定義單個數據段的開始。以“:”結尾的關鍵字是標籤。彙編語言編程使用標籤來對內存進行符號尋址。(注:隨著行話和 PDP-11 編碼的出現,/ 之後的任何文本都是註釋。)
關鍵詞 | 翻譯 |
.globl_main | 將 _main 標籤導出為操作系統使用的入口點。 |
。文本 | 包含只讀代碼的指令段的開始 |
_main:發動機值1,R0 | 將字值從內存位置 VAL1 複製到寄存器 0。 |
加 10 美元,R0 | 寄存器 0 中的值加 10 |
電機 R0 值 1 | 將值從寄存器 0 複製到內存位置 VAL1。 |
_。數據 | 包含讀/寫數據的數據段的開始。 |
VAL1:。字$100 | 保留 2 個字節的內存來保存初始化為 100 的 Val1。 |
儘管您可以使用數值作為內存地址,但使用標籤而不是硬編碼地址可以簡化編程並允許您在內存中移動代碼。這使得操作系統能夠靈活地執行代碼,從而使每個程序快速高效。
彙編指令。data 將數據放置在可讀可寫的內存段中。代碼內存段是只讀的,以防止編程錯誤破壞程序並導致崩潰。PDP-11 上指令與數據的這種分離稱為“指令與數據分離”。除了提高穩定性之外,該功能還將地址空間加倍,為代碼提供 64 KB,為數據提供 64 KB,這在當時被認為是一項創新。相應地,後來的Intel X86微型計算機大量使用了段。
發佈留言