处理器设计的谬误(1)
主机(B2000/3000/4000),以及一种被用于B1700/1800机 的有趣的微码架构,其中,包括一组可以被进出交换以匹配不同语言的解释指令集组。正如关于B5000的最热心评论所说,Burroughs“专注于采用较 高级的编程注释以实际地排斥机器或汇编语言”[EAR]。
遗憾的是,Burroughs E-mode机因HLL机的若干缺点而受损。它们在标准科学和商务处理语言—FORTRAN和COBOL—上的表现肯定是缺乏活力的。后来,为这些机器构 建C编译器以及把Unix引入它们的根本架构上的尝试被证明是困难的,因架构的分层存储结构没有小的部分。要尝试把针对特定HLL的指令集扩展至较低端的 机器(包括由Burroughs的接任者Unisys在1989年推出的一种单芯片实现—称为单芯片A系列主机处理器(SCAMP) [UNI])需要大量的微码。遗憾的是,Algol 60从未真正以流行的编程语言起飞。这毫无疑问减少了Burroughs机的普及程度。
注释:关于E-mode机—[ORG73]、[CHU-CAR]和[CHU-DOR]—有几篇参考文选可用,这里仅仅给出了其中几篇。
如上所述,Burroughs以面向B2000/3000/ 4000计算机的COBOL语言继续它的针对特殊HLL的设计哲学,它至少具有针对更为流行、锁定商务的HLL的有点。
许多语言,同样差的结果
针对特定HLL的处理器设计的 吸引力,还导致人们开发直接运行用APL [HAS]、Lisp [WHO]、Prolog [FAG]以及其它直接针对Basic、Fortran、Pascal、PL/I和Snobol [DIT80]编写的程序的机器。的确,针对特定HLL的计算机架构设计方法所存在的问题导致人们在1980年[DIT80]对它们进行了深刻的反思,只 是在CISC工作站出现之前、以及后来在上世纪80年代中期RISC处理器和工作站出现之时。
从主机时代向着小型和微型计算机时代的迁移,见证了上述针对特定HLL的计算机架构设计方法以Burroughs B1700/1800获得重复使用,它为若干语言提供了微码指令集(COBOL、RPG以及其中的Fortran) [ORG77]和许多专用的工作站级机器。被设计来直接执行LISP的机器就是一个特别著名的例子(LISP机、Symbolics)。
分立微处理器时代也看到了若干针对特定HLL的微处理器架构,包括:被设计来运行Occam的Inmos Transputer;由贝尔实验室设计的用于直接执行C程序的CRISP处理器[DIT87a, DIT87b];在所有这类微处理器当中,也许最为著名(或声名狼藉)的就是英特尔公司的432,它被设计为运行以Ada语言编写的程序[GEH]。 Transputer及其Occam描述了一种针对特定HLL的处理器的功能之一,有时候,它的开发者对于特殊的计算理论以信奉宗教般或准宗教般的热爱投 入,从而以奴性的方式证明它自己对于一种编程语言的奉献,并尽力进行实质努力以开发一种支持它的机器。
尽管Transputer编译器后来形成为更加传统的HLL,但是,Transputer是以Occam推出的,这是一种基于Tony Hoare的计算序列处理概念。Transputer就是特定为Occam构建的。Inmos的领导人Iann Barron是Occam的最高牧师。Transputer的历史描述了前面所列出的针对HLL的架构所存在的问题之一。它的成功高度依赖于找到一个对 Occam有足够兴趣的市场,以购买为它而设计的处理器,或者,对Transputer有足够的兴趣以采纳它作为与众不同的语言。这听起来很像一次宗教对 话。
英特尔公司的432被设计为执行Ada,Ada在更为一般的意义上说是面向对象的语言。英特尔公司的432可能代表针对特定HLL处理器的极端 情况,它对任何语言均无法实现足够的性能,包括用来设计它的Ada语言。实际上,英特尔公司的432微处理器整个冗长的故事一直遭受设计错误的折磨。在 [GEH]中引证了一些设计错误,我们发现它们分别是:
—Ada编译器产生谬误的指令;
—Ada编译器并不执行通用的子表达式消除;
—编译器由数值/结果通过参数,即使对于大的阵列(而不是由参考值);
—编译器总是采用非常慢的模块间调用,即使当不必要时;
—指令以比特排列,因此,解码速度慢;
—从字面上看,不允许一个以上的指令流;
—机器的程序调用效率极低—超过1000个时钟周期,包括282个等待状态;相比之下,在那个时代的其它处理器采用不到100个时钟周期。
因此,英特尔的432执行通用的基准比Vax 11/780要慢10~26倍,而比8MHz 8086要慢2~23倍。对于英特尔来说,幸运的是,x86处理器以及用于IBM PC的接任者的演化取得了成功,从而让英特尔的432完全消失,它已经被当今大多数的计算从业者所遗忘。
Java: 最新注定要失败的努力
针对特定处理器的最后劫掠一直就在当今的嵌入式时代,利用由Sun、ARM以及其它供应商设计的特殊硬件来执行Java(Sun公司的 picoJava处理器以及ARM公
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)