芯方式

ISA的历史:数字设备公司

0
阅读(1414)

指令集架构(ISA)确实是软件和硬件相遇的地方:它是一个抽象,描述了如何使用机器代码对处理器进行编程以执行某些操作。本文探讨了如何开发ISA的背后的一些历史。

在最低级别,指令以二进制形式提供,描述了寻址模式,寄存器,存储器布局,中断和异常处理,I / O以及处理器指令(ADD,SUB等)的所有内容。


ISA的出现帮助降低了计算机的成本 - 因为相同的ISA可以在兼容的处理器中使用,而不必每次都重新发明轮子。由于花在ISA上的时间和资源更少,因此可以将更多时间花在应用程序上并改进计算的其他方面。今天,许可证ISA很常见。 


ISA有几种不同的风格。许多是专有的(想想AMD),而其他人则为开源铺平了道路(想想RISC-V)。为了帮助了解其中的内容,这里有一个关于少数几个ISA的历史,演变和特征的简要入门,从数字设备公司(DEC)开发的那些开始半导体。 


DEC是一家计算机系统供应商,从1957年开始运营,最终于1998年被康柏公司收购。该公司以其小型机,PDP和VAX而闻名,是当时最成功的科技公司之一。DEC的部分遗产在于其ISAs,例如VAX,Prism和Alpha。


 

DEC创始人肯·奥尔森(Ken Olsen)在一家旧工厂内成立的公司总部门前。图片由Boston.com提供。



VAX(1977)

VAX代表“虚拟地址扩展”,由DEC在70年代为他们的VAX小型机开发。它首次出现在1977年的VAX-11/780中。 


VAX是为DEC的VMS操作系统设计的32位复杂指令集计算机(CISC)ISA。CISC是一种将汇编语言编程抽象为更直观的指令集的方法。VAX ISA被一些计算机历史学家称为CISC的诞生。VAX ISA质疑高级编译器无法生成由实际人员完成的相同质量的汇编语言编程的想法。

VAX-11/780计算机。图片由计算机历史博物馆提供。


 

VAX ISA的成功可能是最明显的,因为VAX-11/780的性能成为CPU性能的基准 - 术语“VAX性能单位”(VUP)被创造,因此系统10 VUPS将比VAX机器快10倍。


VAX的一些功能包括:


虚拟寻址

正交指令集(任何指令都可以在任何寻址模式下使用)

注册面具

16个通用寄存器

扩展选择的寻址模式包括:文字,立即,加载有效,寄存器/寄存器延迟,后增量/预定义,位移/位移延迟,索引以及以上几种组合

ADD,COMPARE,IN,JUMP IF等指令 

有关更多半导体信息,请参阅  VAX ISA参考手册。


 


棱镜(1988)

Prism是DEC于1982年开始的研究项目。到目前为止,精简指令集计算机(RISC)ISA正在成为一种新的竞争标准,因此成为一款高性能,具有竞争力的32位RISC ISA公司的新目标。在Prism之前,DEC有另外四个RISC ISA开发项目:SAFE,Titan,Cascade和HR32。在这四个中,只有SAFE提出了64位ISA。


Prism的原始设计适用于64位系统,但最终设计人员选择了32位,扩展了向量指令和64位寄存器。一种称为epicode(扩展处理器指令代码)的功能,它还暴露了更多特殊指令。


还将开发两种Prism衍生物,包括用于基于CMOS的微处理器的MicroPrism,以及用于基于ECL的系统的Crystal。


1988年,由于内部对DEC的焦点和方向与竞争日益激烈的商业对手的分歧,Prism被取消。为了在工作站市场保持竞争力,内部开发的ISA被放弃了现成的选项。


 


阿尔法(1992)

Alpha ISA,也称为DEC Alpha或Alpha APX,于1992年首次推出,一直使用到2007年。 


Alpha是基于RISC的64位ISA,基于32位Prism ISA项目。与Prism相比,Alpha中所做的更改主要集中在支持VMS操作系统的能力,以及许多基于RISC的ISA现在以64位实现的事实。它还必须向后兼容以前DEC微处理器中使用的VAX ISA。


Alpha是为高性能系统开发的,其实施的微处理器打破了多项第一:基于Alpha 21064 CMOS的微处理器的工作频率与基于ECL的大型机相比具有竞争力; Alpha 21164是第一款在IC芯片上具有二级缓存的微处理器; Alpha 21364拥有第一个片上内存控制器。


 



Alpha 21164芯片由三星制造。图片由ChipdB提供。


 

经过一系列活动后,Alpha于1998年被出售给康柏公司后,Alpha停产。康柏公司正在使用英特尔芯片,将Alpha IP出售给已停产的英特尔。最后一款基于Alpha的系统继续由惠普公司出售,惠普公司直到2007年才收购康柏公司。 


Alpha的特点包括:


32个整数寄存器(R0-R31),32个浮点寄存器(F0-F31),浮点控制寄存器(FPCR),2个锁定寄存器(LR0-LR1)和一个程序计数器

数据类型:四字(64位),长字(32位),IEEE T浮点(64位,双精度),IEEE S浮点(32位,单精度),VAX G-浮点(64位,双精度),VAC F浮点(32位,单精度)

六种32位指令格式 

逻辑,算术和控制指令

四种扩展:字节扩展(BWX),运动视频指令(MVI),浮点扩展(FIX)和计数扩展(CIX)

为了保持高速性能功能,例如分支延迟,抑制指令和字节加载/存储指令被消除