PDP-11

title: PDP-11系列的特色.
title: 指令集.
content: 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)。
title: 无专用的输出入埠.
content: PDP-11与其他早期电脑最大的差异点,在于没有专用的输出入总线。PDP-11只有一个称作为Unibus的内存总线。所有外部的设备,都分别对应到不同的内存位址,所以不需要特殊的I/O指令。而其中断系统的设计,也刻意的简单化,以确保没有任何的中断程序会被遗漏。外部的设备可以从单一的输入线到四条优先度线路之一,发出中断要求。而处理器可以从阶层式的接受线路来回应中断要求。(阶层式的架构,是由一系列的逻辑闸所构成,来接受一系列按照优先级的事件。就一般来说,第一个逻辑闸的要求会优先被接受。而阶层式的要求,是按照设备的优先度来处理的。)  而就PDP-11的设计来说,这代表中断要求被接受的顺序,是根据实际上硬件在总线上与处理器的接近程度来决定的。当处理器回应的时候,外部设备会将其向量位址放在总线上,这是一个4位元的内存。之后处理器会从向量位置表读取到状态寄存器与程序计数器。 而新的状态暂存器会暂时取消掉其他的中断要求,来避免中断的重复发生。而取出的程序暂存器,则是指向中断处理程序的起始位址。中断处理程序将会先处里这个硬件的要求,完成后再重新接受其他的中断要求。最后,一个特别的RTI程序(自中断回复)会将处理器回复到发生中断之前的状态。(这也可能是一个优先权较低的中断处理程序)一个值得注意的是,处理器会避免遗漏掉中断要求,假使中断没有被回应,将仍然会被保留着到之后循环。假使程序不正常的启动了,处理器会发生一个特别的逾时错误,使用者将会得知这个硬件的错误。
title: 为大量生产而设计.
content: 最后,由于PDP-11的设计,只需要半专业的人员来进行生产组装。产品在尺寸精确上的要求,并不是非常要紧的。PDP-11的背版使用绕线连接的方式,也就是内部的印刷电路板插入背版上的接头。这个接头上的端子以导线缠绕于上的方式来连接,端子可以切开导线的绝缘层,与导线金属的部分形成气密连接。这种类似型式的接头也可于电信模组上见到。
title: LSI-11.
content: LSI-11是第一个使用大型积体电路技术制造的PDP-11机型。整个处理器包含了四个由威腾(Western Digital)所制造的大型积体电路芯片。而其总线是一个类似Unibus的Q-Bus,不同点在于位址与资料以多工的方式来共享资料线,而Unibus则是使用分别的线路。而且另一个不同点在于其I/O设备的寻址方式,可以容纳到22位元宽的实体位址(Unibus只有18位元的宽度),并且有支援阻断式(block mode)的运作。  处理器的微码包含了一个除错器,可以经由标准的RS-232终端机来操作。这在当时是一项创举,因为微码是计算机最基本的一个部分,也是最关键的控制单元。假使无法运作,便称不上是一个计算机。除错器提供了一个检验处理器中暂存器、内存与输出入设备的方法。因此,只要处理器可以运作,便能够检验与修正计算机的内部状态。这个内建的除错器,省却了昂贵与不方便操作的一大堆在面板上的开关与灯号,那是传统上唯一能够与快挂掉的电脑沟通的方式。  其微码包含了一个通用的开机启动程序,相容于所有DEC的磁盘设备。  这两项创新使得LSI-11总是可以开始运作。当其无法从大型磁盘启动时,会尝试由其软碟启动。而当硬件开始运作后,便可以从熟悉的终端机来使用。
title: PDP-11的式微.
content: 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服务器的兴起下,逐渐衰败。
title: 架构细节.
content: 以下内容可参考PDP-11处理器手册 (详见Gordon Bell's 1969年版)。
title: 通用暂存器的寻址模式.
content: (R为通用暂存器,有0至7号;(R)为暂存器的内容)
title: 程序计数器的寻址模式.
content: 程序计数器(program counter,简称PC)亦可以用来作为一般暂存器使用,因此有以下的寻址模式,可参照前面的通用暂存器:
title: 组合语言范例.
content: 以下是一个完整的"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)。
title: PDP-11的机种.
content: PDP-11处理器依据其原始设计,以及I/O总线的种类,可以归类为以下几种系列。在这些类别当中,大部分都有两种以上的版本,其中一种为OEM代工的机型,另一种则是提供给最终使用者。
title: Unibus的机种.
content: 下列机种使用Unibus作为其扩充总线:
title: Q-Bus的机种.
content: 下列机种使用Q-Bus作为其扩充总线:
title: 无总线的机种.
content: PDT为桌上型系统,以"智能终端机"来销售。其中/110与/130使用VT100终端机模式。  DEC Professional系列为桌上型个人电脑,作为对抗IBM早期基于8088与80286个人电脑的竞争机种。这些机型配备有5 1/4"软驱与硬盘机,而325则是没有配备硬盘的机型。中央处理器为LSI-11产品线,以P/OS为操作系统,这是以RSX-11M+为基础的选单式系统。由于设计上刻意避免与PDP-11机种的软件相容性,其市场上最后失败的命运并不令人意外。
title: 海盗版相容机.
content: 由于PDP-11相当风行的缘故,在当时遭受禁运的东欧社会主义国家有许多未经授权的相容机被生产出来。有些甚至与DEC的PDP-11各系列接脚相容,而可以与原厂产品共享周边设备与软件。这些包含了:
title: 操作系统.
content: PDP-11有数种可用的操作系统  迪吉多电脑:  协力厂商:

Summary: PDP-11为迪吉多电脑于1970到1980年代所销售的一系列16位元迷你电脑。PDP-11是迪吉多电脑的PDP-8系列的后续机种。PDP-11有着许多创新的特色,而且比起其前代机种更容易撰写程序。当32位元的后续扩充机型VAX-11推出时,PDP-11已经广受程序员的喜爱。这两个机型后续的市场,则多由IBM PC、苹果二号与太阳微系统的工作站电脑等个人电脑所取代。