PDP-11

PDP-11為迪吉多電腦於1970到1980年代所銷售的一系列16位元迷你電腦，這個產品線總計銷售約600,000部，是迪吉多最成功的產品線之一。PDP-11是迪吉多電腦的PDP-8系列的後續機種。PDP-11有著許多創新的特色，而且比起其前代機種更容易撰寫程式。當32位元的後續擴充機型VAX-11推出時，PDP-11已經廣受程式設計師的喜愛。這兩個機型後續的市場，則多由IBM PC、蘋果二號與昇陽電腦的工作站電腦等個人電腦所取代。PDP-11系列的特色.指令集.PDP-11深受程式設計師喜愛的原因，主要是在於其高度正規化指令集的設計，使得程式設計師可以容易地分別記住所有的運算碼，以及指定運運算元的方法。如此一來，給定運運算元的方法便可以很容易地預測，這樣子就不用去背一堆例外條件，或是特別受限的定址方式。PDP-11所使用的指令集結構影響了C語言的語法。例如在c語言中，有著暫存器定址模式的增值與減值語法 "++i"與"i--"。如果"i"與"j"都是暫存器變數，那麼"*(--i) = *(j++)"這樣子的表示式就可以編譯為單一機器碼指令。由於對單精確與雙精確浮點數沒有不同的運算碼，也造成C語言中缺乏單精確浮點數運算的運算模式。就某種邏輯來看，指令集中的定址模式可以視為一種"基底"，而指令集中的運算碼則為另一個基底。每個雙引數指令可以分為兩個6位元的引數識別當中，有七個是一般用途的T暫存器可作為平常運算使用，不過暫存器6則是某些指令下作為硬體識別堆疊指標之用。暫存器7則是程式計數器，是處理器執行程式碼的位址標記。這項創新與一些定址模式，提供了暫存器內容定址，絕對位址定址與相對位址定址。16位元字元組是以小端序即低位元在前的方式儲存的。而32位元字元組則通常是以一種不常見的混合序格式儲存。由於PDP-11的風行，這種格式也被引用為"pdp-資料次序"。無專用的輸出入埠.PDP-11與其他早期電腦最大的差異點，在於沒有專用的輸出入匯流排。PDP-11-{只}-有一個稱作為Unibus的記憶體匯流排。所有外部的裝置，都分別對應到不同的記憶體位址，所以不需要特殊的I/O指令。而其中斷系統的設計，也刻意的簡單化，以確保沒有任何的中斷程式會被遺漏。外部的裝置可以從單一的輸入線到四條優先度線路之一，發出中斷要求。而處理器可以從階層式的接受線路來回應中斷要求。而就PDP-11的設計來說，這代表中斷要求被接受的順序，是根據實際上硬體在匯流排上與處理器的接近程度來決定的。當處理器回應的時候，外部裝置會將其向量位址放在匯流排上，這是一個4位元的記憶體。之後處理器會從向量位置表讀取到狀態暫存器與程式計數器。而新的狀態暫存器會暫時取消掉其他的中斷要求，來避免中斷的重複發生。而取出的程式暫存器，則是指向中斷處理程式的起始位址。中斷處理程式將會先處裡這個硬體的要求，完成後再重新接受其他的中斷要求。最後，一個特別的RTI程式一個值得注意的是，處理器會避免遺漏掉中斷要求，假使中斷沒有被回應，將仍然會被保留著到之後迴圈。假使程式不正常的啟動了，處理器會發生一個特別的逾時錯誤，使用者將會得知這個硬體的錯誤。為大量生產而設計.最後，由於PDP-11的設計，只需要半專業的人員來進行生產組裝。產品在尺寸精確上的要求，並不是非常要緊的。PDP-11的背版使用繞線連線的方式，也就是內部的印刷電路板插入背版上的接頭。這個接頭上的端子以導線纏繞於上的方式來連線，端子可以切開導線的絕緣層，與導線金屬的部份形成氣密連線。這種類似型式的接頭也可於電信模組上見到。LSI-11.LSI-11是第一個使用大型積體電路技術製造的PDP-11機型。整個處理器包含了四個由威騰的運作。處理器的微碼包含了一個除錯器，可以經由標準的RS-232終端機來操作。這在當時是一項創舉，因為微碼是計算機最基本的一個部份，也是最關鍵的控制單元。假使無法運作，便稱不上是一個計算機。除錯器提供了一個檢驗處理器中暫存器、記憶體與輸出入裝置的方法。因此，只要處理器可以運作，便能夠檢驗與修正計算機的內部狀態。這個內建的除錯器，省卻了昂貴與不方便操作的一大堆在面板上的開關與燈號，那是傳統上唯一能夠與快掛掉的電腦溝通的方式。其微碼包含了一個通用的開機啟動程式，相容於所有DEC的磁碟裝置。這兩項創新使得LSI-11總是可以開始運作。當其無法從大型磁碟啟動時，會嘗試由其軟碟啟動。而當硬體開始運作後，便可以從熟悉的終端機來使用。PDP-11的式微.PDP-11最基本的設計是非常優良的，而且也一直有更新加入新的技術。然而，PDP-11還是必須面對其16位元的架構是有極限的，這是沒有辦法透過校調或是擴充來克服的。雖然有些機型可以支援更大的實體記憶體定址，但所有的應用程式仍然被侷限在一個16位元的虛擬定址空間而只能夠使用64K的記憶體。當1980年代超大型積體電路的技術使得記憶體晶片能夠更便宜，但是PDP-11的軟體仍然無法享受到更大的記憶體所帶來的便利。DEC在PDP-11的下一代處理器為VAX克服了這些問題，但最初只針對高階市場來進行推廣。而英特爾的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與大部分美國東北部六州的迷你電腦商，都在UNIX與windows伺服器的興起下，逐漸衰敗。架構細節.以下內容可參考PDP-11處理器手冊。通用暫存器的定址模式.0.暫存器 - 數值來自或存入暫存器中：OPR R ; R含有引數1.暫存器指定位址 - 暫存器用來指定讀寫的記憶體位址：OPR (R) ; R存有位址2.自動增值：OPR (R)+ ; R記憶體位址上的數值增加3.自動增值指定位址：OPR @(R)+ ; R存有位址，其內容 (R)加24.自動減值：OPR -；記憶體位址R上的數值 (R)減少5.自動減值指定位址：OPR @-；記憶體位址R上的數值 (R)減26.索引：OPR X(R) ; (R)+X為記憶體位址，在指令的第二字元7.索引指定位址：OPR @X(R) ; (R)+X為指令的第二字元記憶體位址的位址程式計數器的定址模式.程式計數器亦可以用來作為一般暫存器使用，因此有以下的定址模式，可參照前面的通用暫存器：2.直接定值：OPR #N；引數包含在指令中3.絕對位址：OPR @#A；絕對位址包含在指令中6.相對定址：OPR A ; PC+2+X為記憶體位址。PC+2為更新後的PC7.相對參考定址：OPR @A ; PC+2+X為記憶體位址。PC+2為更新後的PC組合語言範例.以下是一個完整的"Hello, world!"巨集組合語言程式，可以在組譯後於RT-11執行：.TITLE HELLO WORLD.MCALL .TTYOUT.EXITHELLO:: MOV #MSG,R1；字串起始位址1$: MOVB (R1)+,R0；迴圈取得下一個字元BEQ DONE；遇到字串結尾跳出.TTYOUT；輸出至TTYBR 1$；迴圈結尾DONE: .EXITMSG: .ASCIZ /Hello, world!/.END HELLO假設檔名為HELLO.MAC，RT-11的組譯，連結與執行的指令為：.MACRO HELLOERRORS DETECTED: 0.LINK HELLO.R HELLOHello, world!來查閱。這些程式也可以在PDP-11模擬器上執行。Bob Supnik所寫的名為SIMH模擬器，可以優秀地模擬PDP-11與許多其他的架構，同時包含了軟體套件與原生作業系統。PDP-11的機種.PDP-11處理器依據其原始設計，以及I/O匯流排的種類，可以歸類為以下幾種系列。在這些類別當中，大部份都有兩種以上的版本，其中一種為OEM代工的機型，另一種則是提供給最終使用者。Unibus的機種.下列機種使用Unibus作為其擴充匯流排：Q-Bus的機種.下列機種使用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有數種可用的作業系統迪吉多電腦：協力廠商：