PDP-11
基本信息
- 外文名
PDP-11
- 释义
迪吉多计算机于1970到1980年代所销售的一系列16位迷你计算机
基本内容
PDP-11为迪吉多计算机于1970到1980年代所销售的一系列16位迷你计算机。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[编辑]
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的软件仍然无法享受到更大的存储器所带来的便利。