fbpx
维基百科

PDP-11

PDP-11迪吉多電腦於1970到1980年代所銷售的一系列16位元迷你電腦,這個產品線總計銷售約600,000部,是迪吉多最成功的產品線之一。PDP-11是迪吉多電腦的PDP-8系列的後續機種。PDP-11有著許多創新的特色,而且比起其前代機種更容易撰寫程式。當32位元的後續擴充機型VAX-11推出時,PDP-11已經廣受程式設計師的喜愛。這兩個機型後續的市場,則多由IBM PC蘋果二號昇陽電腦工作站電腦等個人電腦所取代。

PDP-11/40配備了兩台迪吉多磁帶機

PDP-11系列的特色

指令集

PDP-11深受程式設計師喜愛的原因,主要是在於其高度正規化指令集的設計,使得程式設計師可以容易地分別記住所有的運算碼,以及指定運算子的方法。如此一來,給定運算子的方法(或稱之為定址模式)便可以很容易地預測,這樣子就不用去背一堆例外條件,或是特別受限的定址方式。

PDP-11所使用的指令集結構影響了C語言的語法。例如在c語言中,有著暫存器定址模式的增值與減值語法 ++ii--。如果ij都是暫存器變數,那麼*(--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

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最基本的設計是非常優良的,而且也一直有更新加入新的技術。然而,PDP-11還是必須面對其16位元的架構是有極限的,這是沒有辦法透過校調或是擴充來克服的。雖然有些機型可以支援更大的實體記憶體定址,但所有的應用程式仍然被侷限在一個16位元的虛擬定址空間而只能夠使用64K的記憶體。當1980年代超大型積體電路的技術使得記憶體晶片能夠更便宜,但是PDP-11的軟體仍然無法享受到更大的記憶體所帶來的便利。

DEC在PDP-11的下一代處理器為VAX(是"Virtual Address Extension (to the PDP-11)"的縮寫)克服了這些問題,但最初只針對高階市場來進行推廣。而英特爾的80868088提供了一個四位元的擴充"節"在其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)為暫存器的內容)

0.暫存器 - 數值來自或存入暫存器中:OPR R ; R含有參數
1.暫存器指定位址 - 暫存器用來指定讀寫的記憶體位址:OPR (R) ; R存有位址
2.自動增值:OPR (R)+ ; R記憶體位址上的數值增加(R)
3.自動增值指定位址:OPR @(R)+ ; R存有位址,其內容 (R)加2
4.自動減值:OPR -(R);記憶體位址R上的數值 (R)減少
5.自動減值指定位址:OPR @-(R);記憶體位址R上的數值 (R)減2
6.索引:OPR X(R) ; (R)+X為記憶體位址,在指令的第二字元
7.索引指定位址:OPR @X(R) ; (R)+X為指令的第二字元記憶體位址的位址

程式計數器的定址模式

程式計數器(program counter,簡稱PC)亦可以用來作為一般暫存器使用,因此有以下的定址模式,可參照前面的通用暫存器:

2.直接定值:OPR #N;引數包含在指令中
3.絕對位址:OPR @#A;絕對位址包含在指令中
6.相對定址:OPR A ; PC+2+X為記憶體位址。PC+2為更新後的PC
7.相對參考定址:OPR @A ; PC+2+X為記憶體位址。PC+2為更新後的PC

PDP-11指令

  • 單引數指令 - 指令的長度為雙字元組,一部分用來指定動作,稱之為"運算碼"(OP-Code)或"運算元"。而第二部份則用來指定引數(運算子)的位址。
15 6 5 3 2 0
運算碼 模式 暫存器
    • CLR(清除), COM(取一的補數), INC(增值), DEC(減值), NEG(取二的補數之負數), TST(測試), ASR(數學位元右移), ASL(數學位元左移), ROR(向右位元轉動), ROL(向左位元轉動), SWAB(字元置換), ADC(加法進位), SBC(減法進位), SXT(擴張正負號)。
  • 雙引數指令 - 指令雙字元組的一部分用來指定動作,而其餘的部份則用來指定兩個引數的位址。
15 12 11 9 8 6 5 3 2 0
運算碼 模式 暫存器 模式 暫存器
    • MOV(資料搬移), ADD, SUB(加減法), BIT(位元測試), BIC(位元清除), BIS(改動位元), XOR(互斥或運算)。
  • 程式控制指令 - 指令雙字元組的第一部分用來指定動作,而第二部份則用來指定要執行的程式碼位址。
15 8 7 0
運算碼 位移值
    • BR(無條件分支), BNE(非零值時分支), BEQ(數值為零時分支), BPL(正數時分支), BMI(負數值時分支), BVC(溢位清除時分支), BVS(發生溢位時分支), BCC(進位清除時分支), BCS(發生進位時分支)。
    • BLE(分支if <= 0), BGE(分支if >= 0), BLT(分支if < 0), BGT(分支if > 0,正負號比較)
    • BLO(小於時分支), BHI(大於時分支), BLOS(小於或等於時分支), BHIS(大於或等於時分支,無正負號比較)
    • SOB(暫存器減一後為零時分支)。
  • 跳躍與子程序指令
    • JMP(跳躍), JSR(跳入副程式), RTS(自副程式跳回主程式)
    • EMT(模擬器錯誤時觸發), TRAP, BPT(中斷點觸發), IOT(輸出入錯誤時觸發), RTI & RTT(自副程式跳回時觸發)
  • 其他指令
    • HALT, WAIT(等候中斷觸發), RESET(重置UNIBUS), MTPD(移至前一個資料空間), MTPI(移至前一個指令空間), MFPD(移自前一個資料空間), MFPI(移自前一個指令空間), MTPS(移至處理器狀態字元組), MFPS(移自處理器狀態字元組)
  • 條件碼操作
    • CLC, CLV, CLZ, CLN, CCC(清除相關的條件碼), SEC, SEV, SEZ, SEN, SCC(設定相關的條件碼)
    • 處理器狀態字元組(processor status word - 簡稱PSW)的狀態碼共有四種:
      • N負數
      • Z零值
      • V溢位
      • C進位
  • "擴充指令集"(EIS),在11/35/40和11/03為選購,在更新的處理器則為內建功能
    • MUL, DIV暫存器組的整數相乘與相除
    • ASH, ASHC算數位元位移暫存器或暫存器組,正數位移向左,負數向右
  • "浮點數指令集"(FIS),在11/35/40和11/03為選購
    • FADD, FSUB, FMUL, FDIV堆疊位址上的單精數運算,由暫存器定址
  • "浮點數處理器"(FPP),在11/45和大部分該系列的機種為選購
    • 完整的浮點數運算,包含單精數與倍精數運算子,以浮點狀態暫存器指定精確度
    • 單精浮點數運算的資料格式為IEEE 754格式的基礎:正負位元,8位元指數,23位元底數與第24位隱藏用
  • 商用指令集 (CIS), 11/23/24為選購微碼,11/44為附加模組與11/74的其中一版
    • 支援COBOL與Dibol的多種字串與十進位數相關指令

組合語言範例

 
PDP-11使用的打孔帶

以下是一個完整的"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 程式。更進階的PDP-11函式庫程式碼可免費從Metalab(页面存档备份,存于互联网档案馆)和Trailing Edge(页面存档备份,存于互联网档案馆)來查閱。

這些程式也可以在PDP-11模擬器上運行。Bob Supnik所寫的名為SIMH模擬器,可以優秀地模擬PDP-11與許多其他的架構,同時包含了軟體套件與原生作業系統(包含RT-11)。

PDP-11的機種

PDP-11處理器依據其原始設計,以及I/O匯流排的種類,可以歸類為以下幾種系列。在這些類別當中,大部份都有兩種以上的版本,其中一種為OEM代工的機型,另一種則是提供給最終使用者。

Unibus的機種

 
PDP-11-70

下列機種使用Unibus作為其擴充匯流排:

  • PDP-11(後稱為PDP-11/20)和PDP-11/15 -- 原始,無微程式的處理器,由Jim O'Loughlin所設計。
  • PDP-11/35和11/40 -- 微程式化的/20後續機型,由Jim O'Loughlin所帶領的團隊設計的。
  • PDP-11/45,11/50,和11/55 -- 更快的微程式化的處理器,並且可以使用半導體記憶體或是核心記憶體。
  • PDP-11/70 -- 11/45的擴充機型,經由獨立記憶體匯流排支援4 MB實體記憶體與2 KB快取記憶體,並藉由Massbus提供更快的I/O設備連結。
  • PDP-11/05和11/10 -- 11/20的精減版。
  • PDP-11/34和11/04 -- 11/35和11/05的後續精減版。PDP-11/09和11/39機型只有DEC內部文件記載,並沒有生產銷售。PDP-11/34的概念是由Bob Armstrong提出的。
  • PDP-11/44 -- 11/34的擴充型,增加了快取記憶體浮點運算單元為標準功能。這一型並有一個特別的序列埠終端且支援4 MB實體記憶體。設計團隊由John Sofio所帶領。
  • PDP-11/60 -- 有使用者可程式化微控制碼的PDP-11,這是由Jim O'Loughlin所帶領的另一組團隊所設計的。
  • PDP-11/24 - 最早使用超大形積體電路PDP-11和Unibus,使用"Fonz-11" (F11)晶片組
  • PDP-11/84 - 使用超大形積體電路"Jaws-11" (J11)晶片組
  • PDP-11/94 - J11為基礎,比11/84更快

Q-Bus的機種

下列機種使用Q-Bus作為其擴充匯流排:

  • PDP-11/23 -- 第二代大型積體電路(F-11),早期只支援248KB記憶體,但可以修改支援到4MB記憶體。
  • PDP-11/23+/MicroPDP-11/23 -- 11/23改良版,在處理器卡上提供更多功能(實際上為四倍大小)
  • MicroPDP-11/73 -- 第二代大型積體電路PDP,這個系統使用"Jaws-11" (J-11)晶片組。
  • MicroPDP-11/53 -- 較慢的11/73有內建記憶體
  • MicroPDP-11/83 -- 更快的11/73有內部記憶體連結(PMI)
  • MicroPDP-11/93 -- 更快的11/83,最終DEC Q-Bus PDP-11機型。
  • Mentec M100 -- Mentec重新設計的11/93,使用J-11晶片組時脈為19.66MHz,含4個內建序列埠,1-4MB內建記憶體,FPU為選購。
  • Mentec M11 -- 處理器升級子板,最後的微碼PDP-11架構,指令集是由Mentec設計的。使用TI 8832 ALU和德州儀器Texas Instruments製造的TI 8818微序列器。
  • Quickware QED-993 -- 高性能PDP-11/93處理器升級子板

無匯流排的機種

  • PDT-11/110
  • PDT-11/130
  • PDT-11/150

PDT為桌上型系統,以"智慧型終端機"來銷售。其中/110與/130使用VT100終端機模式。

  • PRO-325
  • PRO-350
  • PRO-380

DEC Professional系列為桌上型個人電腦,作為對抗IBM早期基於8088與80286個人電腦的競爭機種。這些機型配備有5 1/4"軟碟機與硬碟機,而325則是沒有配備硬碟的機型。中央處理器為LSI-11產品線,以P/OS為作業系統,這是以RSX-11M+為基礎的選單式系統。由於設計上刻意避免與PDP-11機種的軟體相容性,其市場上最後失敗的命運並不令人意外。

計劃中但未上市機種

  • PDP-11/27 -- Jaws-11機型的實作,計劃採用VAXBI Bus作為I/O匯流排。
  • PDP-11/68 -- PDP-11/60的後續機型,支援4 MB的實體記憶體。
  • PDP-11/74 -- PDP-11/70擴充為多處理器的機型。最多可以使用四顆處理器,但是電纜線也會因此多到難以管理。另一個11/74的變形則是可以支援多處理器與內建商用指令集。有相當數量的11/74原型機(包含數種不同的子機型)生產出來以及至少二路的多處理器系統提供給客戶作為外部測試(beta test)使用。但是實際上自始至終這個機型都沒有正式的進行銷售過。一套四路的多處理器系統由RSX-11作業系統的開發團隊所維護,作為測試使用。而一套單處理器的版本則作為PDP-11工程一般時程分割之用。11/74之所以沒有上市,主要是由於剛好與新的32位元產品與VAX 11/780這個第一個VAX機型的上市撞期。謠言流傳與陰謀論者[永久失效連結]認為11/74被取消的原因,是由於其效能相較於11/780系列要來得更佳:鑑於行銷的考量,推出效能更好的的PDP-11機型將會影響並減緩客戶轉移到新的VAX機型的速度。然而,在該領域中維護產品的能力才是主要的原因。要說是陰謀論也好,DEC始終無法成功地將其所有的客戶從PDP-11轉移到VAX系列,這個主要的原因不是在於效能好壞,而是在於PDP-11優良的即時回應能力。

特殊用途版本

 
運行『登月小艇』遊戲的DEC GT40
  • GT40 -- 使用PDP-11/05的向量圖形終端機
  • GT44 -- 使用PDP-11/40的向量圖形終端機
  • H-11 -- Heathkit代製版的LSI-11/03
  • VT103 -- VT100使用LSI-11背版
  • VT173 -- 使用PDP-11/03的頂級終端機系列
  • MINC-11 -- 使用PDP-11/03或11/23的實驗室系統
  • C.mmp -- 來自卡內基美隆大學的多處理器系統

海盜版相容機

由於PDP-11相當風行的緣故,在当时遭受禁運的东欧社会主义國家有許多未經授權的相容機被生產出來。有些甚至與DEC的PDP-11各系列接腳相容,而可以與原廠產品共用週邊設備與軟體。這些包含了:

作業系統

PDP-11有數種可用的作業系統

迪吉多電腦:

協力廠商:

外部連結

  • 保留PDP-11系列的16位元迷你電腦(页面存档备份,存于互联网档案馆
  • 另一個PDP-11愛好者網站(页面存档备份,存于互联网档案馆
  • 俄國PDP-11相容機(页面存档备份,存于互联网档案馆)(俄語網站)。
  • Gordon Bell與Bill Strecker於1975年發表的論文:我們從PDP-11學到了什麼(页面存档备份,存于互联网档案馆
  • Gordon Bell的網站(页面存档备份,存于互联网档案馆)可以找到更多的論文與連結。
  • PDP-11後端程式(页面存档备份,存于互联网档案馆)(程式範本產生器)支持可重定位ANSI Little C編譯器
  • ,PDP-11系統軟體目前的所有者(除IAS外)

為迪吉多電腦於1970到1980年代所銷售的一系列16位元迷你電腦, 這個產品線總計銷售約600, 000部, 是迪吉多最成功的產品線之一, 是迪吉多電腦的pdp, 8系列的後續機種, 有著許多創新的特色, 而且比起其前代機種更容易撰寫程式, 當32位元的後續擴充機型vax, 11推出時, 已經廣受程式設計師的喜愛, 這兩個機型後續的市場, 則多由ibm, 蘋果二號與昇陽電腦的工作站電腦等個人電腦所取代, 40配備了兩台迪吉多磁帶機, 目录, 系列的特色, 指令集, 無專用的輸出入埠, 為大量生產而設計, 的式微,. PDP 11為迪吉多電腦於1970到1980年代所銷售的一系列16位元迷你電腦 這個產品線總計銷售約600 000部 是迪吉多最成功的產品線之一 PDP 11是迪吉多電腦的PDP 8系列的後續機種 PDP 11有著許多創新的特色 而且比起其前代機種更容易撰寫程式 當32位元的後續擴充機型VAX 11推出時 PDP 11已經廣受程式設計師的喜愛 這兩個機型後續的市場 則多由IBM PC 蘋果二號與昇陽電腦的工作站電腦等個人電腦所取代 PDP 11 40配備了兩台迪吉多磁帶機 目录 1 PDP 11系列的特色 1 1 指令集 1 2 無專用的輸出入埠 1 3 為大量生產而設計 2 LSI 11 3 PDP 11的式微 4 架構細節 4 1 通用暫存器的定址模式 4 2 程式計數器的定址模式 4 3 PDP 11指令 5 組合語言範例 6 PDP 11的機種 6 1 Unibus的機種 6 2 Q Bus的機種 6 3 無匯流排的機種 6 4 計劃中但未上市機種 6 5 特殊用途版本 6 6 海盜版相容機 7 作業系統 8 外部連結PDP 11系列的特色 编辑指令集 编辑 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 编辑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最基本的設計是非常優良的 而且也一直有更新加入新的技術 然而 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 為暫存器的內容 0 暫存器 數值來自或存入暫存器中 OPR R R含有參數 1 暫存器指定位址 暫存器用來指定讀寫的記憶體位址 OPR R R存有位址 2 自動增值 OPR R R記憶體位址上的數值增加 R 3 自動增值指定位址 OPR R R存有位址 其內容 R 加2 4 自動減值 OPR R 記憶體位址R上的數值 R 減少 5 自動減值指定位址 OPR R 記憶體位址R上的數值 R 減2 6 索引 OPR X R R X為記憶體位址 在指令的第二字元 7 索引指定位址 OPR X R R X為指令的第二字元記憶體位址的位址程式計數器的定址模式 编辑 程式計數器 program counter 簡稱PC 亦可以用來作為一般暫存器使用 因此有以下的定址模式 可參照前面的通用暫存器 2 直接定值 OPR N 引數包含在指令中 3 絕對位址 OPR A 絕對位址包含在指令中 6 相對定址 OPR A PC 2 X為記憶體位址 PC 2為更新後的PC 7 相對參考定址 OPR A PC 2 X為記憶體位址 PC 2為更新後的PCPDP 11指令 编辑 單引數指令 指令的長度為雙字元組 一部分用來指定動作 稱之為 運算碼 OP Code 或 運算元 而第二部份則用來指定引數 運算子 的位址 15 6 5 3 2 0運算碼 模式 暫存器CLR 清除 COM 取一的補數 INC 增值 DEC 減值 NEG 取二的補數之負數 TST 測試 ASR 數學位元右移 ASL 數學位元左移 ROR 向右位元轉動 ROL 向左位元轉動 SWAB 字元置換 ADC 加法進位 SBC 減法進位 SXT 擴張正負號 雙引數指令 指令雙字元組的一部分用來指定動作 而其餘的部份則用來指定兩個引數的位址 15 12 11 9 8 6 5 3 2 0運算碼 模式 暫存器 模式 暫存器MOV 資料搬移 ADD SUB 加減法 BIT 位元測試 BIC 位元清除 BIS 改動位元 XOR 互斥或運算 程式控制指令 指令雙字元組的第一部分用來指定動作 而第二部份則用來指定要執行的程式碼位址 15 8 7 0運算碼 位移值BR 無條件分支 BNE 非零值時分支 BEQ 數值為零時分支 BPL 正數時分支 BMI 負數值時分支 BVC 溢位清除時分支 BVS 發生溢位時分支 BCC 進位清除時分支 BCS 發生進位時分支 BLE 分支if lt 0 BGE 分支if gt 0 BLT 分支if lt 0 BGT 分支if gt 0 正負號比較 BLO 小於時分支 BHI 大於時分支 BLOS 小於或等於時分支 BHIS 大於或等於時分支 無正負號比較 SOB 暫存器減一後為零時分支 跳躍與子程序指令 JMP 跳躍 JSR 跳入副程式 RTS 自副程式跳回主程式 EMT 模擬器錯誤時觸發 TRAP BPT 中斷點觸發 IOT 輸出入錯誤時觸發 RTI amp RTT 自副程式跳回時觸發 其他指令HALT WAIT 等候中斷觸發 RESET 重置UNIBUS MTPD 移至前一個資料空間 MTPI 移至前一個指令空間 MFPD 移自前一個資料空間 MFPI 移自前一個指令空間 MTPS 移至處理器狀態字元組 MFPS 移自處理器狀態字元組 條件碼操作 CLC CLV CLZ CLN CCC 清除相關的條件碼 SEC SEV SEZ SEN SCC 設定相關的條件碼 處理器狀態字元組 processor status word 簡稱PSW 的狀態碼共有四種 N負數 Z零值 V溢位 C進位 擴充指令集 EIS 在11 35 40和11 03為選購 在更新的處理器則為內建功能 MUL DIV暫存器組的整數相乘與相除 ASH ASHC算數位元位移暫存器或暫存器組 正數位移向左 負數向右 浮點數指令集 FIS 在11 35 40和11 03為選購 FADD FSUB FMUL FDIV堆疊位址上的單精數運算 由暫存器定址 浮點數處理器 FPP 在11 45和大部分該系列的機種為選購 完整的浮點數運算 包含單精數與倍精數運算子 以浮點狀態暫存器指定精確度 單精浮點數運算的資料格式為IEEE 754格式的基礎 正負位元 8位元指數 23位元底數與第24位隱藏用商用指令集 CIS 11 23 24為選購微碼 11 44為附加模組與11 74的其中一版 支援COBOL與Dibol的多種字串與十進位數相關指令組合語言範例 编辑 PDP 11使用的打孔帶 以下是一個完整的 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 EXITMSG 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的機種 编辑PDP 11處理器依據其原始設計 以及I O匯流排的種類 可以歸類為以下幾種系列 在這些類別當中 大部份都有兩種以上的版本 其中一種為OEM代工的機型 另一種則是提供給最終使用者 Unibus的機種 编辑 PDP 11 70 下列機種使用Unibus作為其擴充匯流排 PDP 11 後稱為PDP 11 20 和PDP 11 15 原始 無微程式的處理器 由Jim O Loughlin所設計 PDP 11 35和11 40 微程式化的 20後續機型 由Jim O Loughlin所帶領的團隊設計的 PDP 11 45 11 50 和11 55 更快的微程式化的處理器 並且可以使用半導體記憶體或是核心記憶體 PDP 11 70 11 45的擴充機型 經由獨立記憶體匯流排支援4 MB實體記憶體與2 KB快取記憶體 並藉由Massbus提供更快的I O設備連結 PDP 11 05和11 10 11 20的精減版 PDP 11 34和11 04 11 35和11 05的後續精減版 PDP 11 09和11 39機型只有DEC內部文件記載 並沒有生產銷售 PDP 11 34的概念是由Bob Armstrong提出的 PDP 11 44 11 34的擴充型 增加了快取記憶體和 浮點運算單元為標準功能 這一型並有一個特別的序列埠終端且支援4 MB實體記憶體 設計團隊由John Sofio所帶領 PDP 11 60 有使用者可程式化微控制碼的PDP 11 這是由Jim O Loughlin所帶領的另一組團隊所設計的 PDP 11 24 最早使用超大形積體電路PDP 11和Unibus 使用 Fonz 11 F11 晶片組 PDP 11 84 使用超大形積體電路 Jaws 11 J11 晶片組 PDP 11 94 J11為基礎 比11 84更快Q Bus的機種 编辑 下列機種使用Q Bus作為其擴充匯流排 PDP 11 03 也稱為LSI 11 03 第一個大型積體電路 LSI 技術的PDP 11 使用威騰 Western Digital 生產的晶片組 PDP 11 23 第二代大型積體電路 F 11 早期只支援248KB記憶體 但可以修改支援到4MB記憶體 PDP 11 23 MicroPDP 11 23 11 23改良版 在處理器卡上提供更多功能 實際上為四倍大小 MicroPDP 11 73 第二代大型積體電路PDP 這個系統使用 Jaws 11 J 11 晶片組 MicroPDP 11 53 較慢的11 73有內建記憶體MicroPDP 11 83 更快的11 73有內部記憶體連結 PMI MicroPDP 11 93 更快的11 83 最終DEC Q Bus PDP 11機型 Mentec M100 Mentec重新設計的11 93 使用J 11晶片組時脈為19 66MHz 含4個內建序列埠 1 4MB內建記憶體 FPU為選購 Mentec M11 處理器升級子板 最後的微碼PDP 11架構 指令集是由Mentec設計的 使用TI 8832 ALU和德州儀器Texas Instruments製造的TI 8818微序列器 Quickware QED 993 高性能PDP 11 93處理器升級子板無匯流排的機種 编辑 PDT 11 110 PDT 11 130 PDT 11 150PDT為桌上型系統 以 智慧型終端機 來銷售 其中 110與 130使用VT100終端機模式 PRO 325 PRO 350 PRO 380DEC Professional系列為桌上型個人電腦 作為對抗IBM早期基於8088與80286個人電腦的競爭機種 這些機型配備有5 1 4 軟碟機與硬碟機 而325則是沒有配備硬碟的機型 中央處理器為LSI 11產品線 以P OS為作業系統 這是以RSX 11M 為基礎的選單式系統 由於設計上刻意避免與PDP 11機種的軟體相容性 其市場上最後失敗的命運並不令人意外 計劃中但未上市機種 编辑 PDP 11 27 Jaws 11機型的實作 計劃採用VAXBI Bus作為I O匯流排 PDP 11 68 PDP 11 60的後續機型 支援4 MB的實體記憶體 PDP 11 74 PDP 11 70擴充為多處理器的機型 最多可以使用四顆處理器 但是電纜線也會因此多到難以管理 另一個11 74的變形則是可以支援多處理器與內建商用指令集 有相當數量的11 74原型機 包含數種不同的子機型 生產出來以及至少二路的多處理器系統提供給客戶作為外部測試 beta test 使用 但是實際上自始至終這個機型都沒有正式的進行銷售過 一套四路的多處理器系統由RSX 11作業系統的開發團隊所維護 作為測試使用 而一套單處理器的版本則作為PDP 11工程一般時程分割之用 11 74之所以沒有上市 主要是由於剛好與新的32位元產品與VAX 11 780這個第一個VAX機型的上市撞期 謠言流傳與陰謀論者 永久失效連結 認為11 74被取消的原因 是由於其效能相較於11 780系列要來得更佳 鑑於行銷的考量 推出效能更好的的PDP 11機型將會影響並減緩客戶轉移到新的VAX機型的速度 然而 在該領域中維護產品的能力才是主要的原因 要說是陰謀論也好 DEC始終無法成功地將其所有的客戶從PDP 11轉移到VAX系列 這個主要的原因不是在於效能好壞 而是在於PDP 11優良的即時回應能力 特殊用途版本 编辑 運行 登月小艇 遊戲的DEC GT40 GT40 使用PDP 11 05的向量圖形終端機 GT44 使用PDP 11 40的向量圖形終端機 H 11 Heathkit代製版的LSI 11 03 VT103 VT100使用LSI 11背版 VT173 使用PDP 11 03的頂級終端機系列 MINC 11 使用PDP 11 03或11 23的實驗室系統 C mmp 來自卡內基美隆大學的多處理器系統海盜版相容機 编辑 由於PDP 11相當風行的緣故 在当时遭受禁運的东欧社会主义國家有許多未經授權的相容機被生產出來 有些甚至與DEC的PDP 11各系列接腳相容 而可以與原廠產品共用週邊設備與軟體 這些包含了 SM 4 SM 1420 SM 1600 Electronics BK 0010 DVK UKNC 蘇聯 SM 4 SM 1420 IZOT 1016與週邊設備 保加利亞 SM 1420 東德 Mera 波蘭 SM 4 匈牙利 獨立設備 羅馬尼亞 作業系統 编辑PDP 11有數種可用的作業系統迪吉多電腦 DOS BATCH IAS P OS RSX 11 CAPS 11 RT 11 RSTS E Ultrix 11協力廠商 ANDOS MKDOS MONECS CSIDOS TRIPOS MUMPS Unix 有許多版本 包含Version 7 Unix與2BSD DEMOS 蘇聯 TSX Plus外部連結 编辑PDP 11的FAQ 保留PDP 11系列的16位元迷你電腦 页面存档备份 存于互联网档案馆 另一個PDP 11愛好者網站 页面存档备份 存于互联网档案馆 俄國PDP 11相容機 页面存档备份 存于互联网档案馆 俄語網站 蘇聯計算機歷史博物館 Gordon Bell與Bill Strecker於1975年發表的論文 我們從PDP 11學到了什麼 页面存档备份 存于互联网档案馆 Gordon Bell的網站 页面存档备份 存于互联网档案馆 可以找到更多的論文與連結 PDP 11後端程式 页面存档备份 存于互联网档案馆 程式範本產生器 支持可重定位ANSI Little C編譯器 Mentec PDP 11系統軟體目前的所有者 除IAS外 取自 https zh wikipedia org w index php title PDP 11 amp oldid 66439853, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。