Loading AI tools
来自维基百科,自由的百科全书
PDP-11為迪吉多電腦於1970到1980年代所銷售的一系列16位元迷你電腦,這個產品線總計銷售約600,000部,是迪吉多最成功的產品線之一。PDP-11是迪吉多電腦的PDP-8系列的後續機種。PDP-11有着許多創新的特色,而且比起其前代機種更容易撰寫程式。當32位元的後續擴充機型VAX-11推出時,PDP-11已經廣受程式設計師的喜愛。這兩個機型後續的市場,則多由IBM PC、蘋果二號與太陽電腦的工作站電腦等個人電腦所取代。
PDP-11深受程式設計師喜愛的原因,主要是在於其高度正規化指令集的設計,使得程式設計師可以容易地分別記住所有的運算碼,以及指定運算子的方法。如此一來,給定運算子的方法(或稱之為定址模式)便可以很容易地預測,這樣子就不用去背一堆例外條件,或是特別受限的定址方式。
PDP-11所使用的指令集結構影響了C語言的語法。例如在c語言中,有着暫存器定址模式的增值與減值語法 ++i與i--。如果i與j都是暫存器變數,那麼*(--i) = *(j++)這樣子的表示式就可以編譯為單一機械碼指令。由於對單精確與雙精確浮點數沒有不同的運算碼,也造成C語言中缺乏單精確浮點數運算的運算模式。
就某種邏輯來看,指令集中的定址模式可以視為一種"基底",而指令集中的運算碼則為另一個基底。每個雙引數指令可以分為兩個6位元的引數識別(分別包含了一個3位元的暫存器號碼,和一個3位元的定址模式碼)與一個4位元的運算碼。而單引數指令,則有一個6位元的引數識別和一個10位元的運算碼。所有的運算碼都可以使用任何的定址模式,雙引數指令還可以分別組合使用。在八個暫存器(編號0到7)當中,有七個是一般用途的T暫存器可作為平常運算使用,不過暫存器6則是某些指令下作為硬件識別堆疊指標之用。暫存器7則是程式計數器,是處理器執行程式碼的地址標記。這項創新與一些定址模式,提供了暫存器內容定址,絕對地址定址與相對地址定址。
16位元字元組是以小端序即低位元在前的方式儲存的。而32位元字元組則通常是以一種不常見的混合序格式儲存。由於PDP-11的風行,這種格式也被參照為pdp-資料次序(PDP-endian)。
PDP-11與其他早期電腦最大的差異點,在於沒有專用的輸出入匯流排。PDP-11只有一個稱作為Unibus的記憶體匯流排。所有外部的裝置,都分別對應到不同的記憶體地址,所以不需要特殊的I/O指令。而其中斷系統的設計,也刻意的簡單化,以確保沒有任何的中斷程式會被遺漏。外部的裝置可以從單一的輸入線到四條優先度線路之一,發出中斷要求。而處理器可以從階層式的接受線路來回應中斷要求。(階層式的架構,是由一系列的邏輯門所構成,來接受一系列按照優先順序的事件。就一般來說,第一個邏輯門的要求會優先被接受。而階層式的要求,是按照裝置的優先度來處理的。)
而就PDP-11的設計來說,這代表中斷要求被接受的順序,是根據實際上硬件在匯流排上與處理器的接近程度來決定的。當處理器回應的時候,外部裝置會將其向量地址放在匯流排上,這是一個4位元的記憶體。之後處理器會從向量位置表讀取到狀態暫存器與程式計數器。 而新的狀態暫存器會暫時取消掉其他的中斷要求,來避免中斷的重複發生。而取出的程式暫存器,則是指向中斷處理程式的起始地址。中斷處理程式將會先處裏這個硬件的要求,完成後再重新接受其他的中斷要求。最後,一個特別的RTI程式(自中斷回復)會將處理器回復到發生中斷之前的狀態。(這也可能是一個優先權較低的中斷處理程式)一個值得注意的是,處理器會避免遺漏掉中斷要求,假使中斷沒有被回應,將仍然會被保留着到之後循環。假使程式不正常的啟動了,處理器會發生一個特別的逾時錯誤,用戶將會得知這個硬件的錯誤。
最後,由於PDP-11的設計,只需要半專業的人員來進行生產組裝。產品在尺寸精確上的要求,並不是非常要緊的。PDP-11的背版使用繞線連接的方式,也就是內部的印刷電路板插入背版上的接頭。這個接頭上的端子以導線纏繞於上的方式來連接,端子可以切開導線的絕緣層,與導線金屬的部份形成氣密連接。這種類似型式的接頭也可於電信模組上見到。
LSI-11是第一個使用大型集成電路技術製造的PDP-11機型。整個處理器包含了四個由威騰(Western Digital)所製造的大型集成電路晶片。而其匯流排是一個類似Unibus的Q-Bus,不同點在於地址與資料以多工的方式來共用資料線,而Unibus則是使用分別的線路。而且另一個不同點在於其I/O裝置的定址方式,可以容納到22位元寬的實體位址(Unibus只有18位元的寬度),並且有支援阻斷式(block mode)的運作。
處理器的微碼包含了一個除錯器,可以經由標準的RS-232終端機來操作。這在當時是一項創舉,因為微碼是計算機最基本的一個部份,也是最關鍵的控制單元。假使無法運作,便稱不上是一個計算機。除錯器提供了一個檢驗處理器中暫存器、記憶體與輸出入裝置的方法。因此,只要處理器可以運作,便能夠檢驗與修正計算機的內部狀態。這個內建的除錯器,省卻了昂貴與不方便操作的一大堆在面板上的開關與燈號,那是傳統上唯一能夠與快掛掉的電腦溝通的方式。
其微碼包含了一個通用的開機啟動程式,相容於所有DEC的磁碟裝置。
這兩項創新使得LSI-11總是可以開始運作。當其無法從大型磁碟啟動時,會嘗試由其軟碟啟動。而當硬件開始運作後,便可以從熟悉的終端機來使用。
PDP-11最基本的設計是非常優良的,而且也一直有更新加入新的技術。然而,PDP-11還是必須面對其16位元的架構是有極限的,這是沒有辦法透過校調或是擴充來克服的。雖然有些機型可以支援更大的實體記憶體定址,但所有的應用程式仍然被侷限在一個16位元的虛擬定址空間而只能夠使用64K的記憶體。當1980年代超大型集成電路的技術使得記憶體晶片能夠更便宜,但是PDP-11的軟件仍然無法享受到更大的記憶體所帶來的便利。
DEC在PDP-11的下一代處理器為VAX(是"Virtual Address Extension (to the PDP-11)"的縮寫)克服了這些問題,但最初只針對高階市場來進行推廣。而英特爾的8086與8088提供了一個四位元的擴充"節"在其16位元的定址上,使得定址空間提升到1M而不需要更改為32位元的設計。這對當時逐漸擴充的IBM個人電腦相容機市場來說,已經是足夠的了。雖然在能夠支援更大節定址空間的80286與擁有32位元定址空間的80386推出前,就有到達1M的需求。
當工程師轉移到有更大的定址空間的架構時,支援32位元的運算也開始在如摩托羅拉68000和英特爾80386等後續的微處理器晶片上提供了。最後這些晶片的經濟規模大到一個程度後,PDP-11就相對而言不夠划算。DEC的一個DEC Professional系列,也就因此在市場上失敗了,同時兩個之後的DEC個人電腦系列也面臨相同的命運。
DEC最後在1997年中止了PDP-11的機型,並且把其相關的設計與作業系統授權賣給了一家愛爾蘭公司Mentec。這家公司是負責生產LSI-1的Q-Bus機板與個人電腦的ISA架構機板。
到了1990年末,DEC與大部分美國東北部六州(New England)的迷你電腦商,都在UNIX與windows伺服器的興起下,逐漸衰敗。
以下內容可參考PDP-11處理器手冊 (詳見Gordon Bell's 1969年版(頁面存檔備份,存於互聯網檔案館))。
(R為通用暫存器,有0至7號;(R)為暫存器的內容)
程式計數器(program counter,簡稱PC)亦可以用來作為一般暫存器使用,因此有以下的定址模式,可參照前面的通用暫存器:
15 | 6 | 5 | 3 | 2 | 0 | ||||||||||
運算碼 | 模式 | 暫存器 |
15 | 12 | 11 | 9 | 8 | 6 | 5 | 3 | 2 | 0 | ||||||
運算碼 | 模式 | 暫存器 | 模式 | 暫存器 |
15 | 8 | 7 | 0 | ||||||||||||
運算碼 | 位移值 |
以下是一個完整的"Hello, world!"巨集匯編語言程式,可以在組譯後於RT-11執行:
.TITLE HELLO WORLD .MCALL .TTYOUT,.EXIT HELLO:: MOV #MSG,R1;字串起始地址 1$: MOVB (R1)+,R0;迴圈取得下一個字元 BEQ DONE;遇到字串結尾跳出 .TTYOUT;輸出至TTY BR 1$;迴圈結尾 DONE: .EXIT
MSG: .ASCIZ /Hello, world!/ .END HELLO
假設檔名為HELLO.MAC,RT-11的組譯,連結與執行的指令為:
.MACRO HELLO ERRORS DETECTED: 0
.LINK HELLO
.R HELLO Hello, world! .
(RT-11的命令提示字元為".")而更複雜的MACRO-11程式,以下是兩個隨意選自Kevin Murrell's KPUN.MAC(頁面存檔備份,存於互聯網檔案館)與Farba Research's JULIAN程式。更進階的PDP-11函式庫程式碼可免費從Metalab(頁面存檔備份,存於互聯網檔案館)和Trailing Edge(頁面存檔備份,存於互聯網檔案館)來查閱。
這些程式也可以在PDP-11模擬器上運行。Bob Supnik所寫的名為SIMH模擬器,可以優秀地模擬PDP-11與許多其他的架構,同時包含了軟件套件與原生作業系統(包含RT-11)。
PDP-11處理器依據其原始設計,以及I/O匯流排的種類,可以歸類為以下幾種系列。在這些類別當中,大部份都有兩種以上的版本,其中一種為OEM代工的機型,另一種則是提供給最終用戶。
下列機種使用Unibus作為其擴充匯流排:
下列機種使用Q-Bus作為其擴充匯流排:
PDT為桌上型系統,以"智能終端機"來銷售。其中/110與/130使用VT100終端機模式。
DEC Professional系列為桌上型個人電腦,作為對抗IBM早期基於8088與80286個人電腦的競爭機種。這些機型配備有5 1/4"軟碟機與硬碟機,而325則是沒有配備硬碟的機型。中央處理器為LSI-11產品線,以P/OS為作業系統,這是以RSX-11M+為基礎的選單式系統。由於設計上刻意避免與PDP-11機種的軟件相容性,其市場上最後失敗的命運並不令人意外。
由於PDP-11相當風行的緣故,在當時遭受禁運的東歐社會主義國家有許多未經授權的相容機被生產出來。有些甚至與DEC的PDP-11各系列接腳相容,而可以與原廠產品共用週邊裝置與軟件。這些包含了:
PDP-11有數種可用的作業系統
迪吉多電腦:
協力廠商:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.