X86结构展望
英特尔 推出X86架构已满39年了,同486比较,Pentium向前迈进了一大步, 而PⅡ的前进步伐则没有这么大了,X86 CPU的发展似乎已到了止境。英特尔非常清楚,是X86指令集约束了CPU功能的进一步进步,因此,他们正同惠普共同努力开发下一代指令集架构(Instruction Set Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,显性并行指令核算)。对英特尔而言, IA-64(英特尔的64位架构)是下一个10到15年的架构。新的ISA将使英特尔摆脱X86架构的约束,然后规划出超越一切现有RISC CPU和X86 CPU的新式处理器。那么EPIC的先进之处在什么地方呢?为什么英特尔会抛弃使它成为芯片巨人的X86架构呢? IA-32的问题 我们知道,工程师可以通过进步每个时钟的指令履行数来进步功能,英特尔新的指令集的首要目的在于,让指令更简单解码,更简单并行履行。这样就可以不受约束地开发新式处理器。 但是,对工程师而言,兼容8086的X86指令集一直是有必要完结的任务。究竟,兼容前代产品是使英特尔成长壮大起来的关键因素,并且还可以维护用户原先的投资和运用数以百万计应用软件。既然如此,为什么又要抛弃整个X86指令集重新开始呢?X86的不足在什么地方?
(1)可变的指令长度X86指令的长度是不定的,并且有几种不同的格式,结果造成X86 CPU的解码作业非常复杂,为了进步CPU的作业频率,不得不延长CPU中的流水线,而过长的流水线在分支预测出错的状况下,又会带来CPU作业停滞时间较长的坏处。
(2)寄存器的匮乏 X86指令集架构只有8个通用寄存器,并且实践只能运用6个。这种状况同现代的超标量CPU极不适应,虽然工程师们选用寄存器重命名的技术来弥补这个缺陷,但造成了CPU过于复杂,流水线过长的局势。
(3)内存拜访 X86指令可拜访内存地址,而现代RISC CPU则运用LOAD/STORE形式,只有LOAD和STORE指令才能从内存中读取数据到寄存器,一切其他指令只对寄存器中的操作数核算。在CPU的速度是内存速度的5倍或5倍以上的状况下,后一种作业形式才是正途。
(4)浮点仓库 X87 FPU是现在最慢的FPU,首要的原因之一就在于X87指令运用一个操作数仓库。如果没有足够多的寄存器进行核算,你就不得不运用仓库来存放数据,这会糟蹋很多的时间来运用FXCH指令(即把正确的数据放到仓库的顶部)。
(5)4GB约束 这似乎不是问题,但是,在2000年前,干流PC只有4MB内存,现在绝大部分PC装备了2G以上的内存,是曾经的512倍,所以,PC内存打破16GB绝对不会令人惊讶,大型服务器已经运用了32GB以上的内存,打破64GB内存的状况已经出现。
(6)芯片变大 一切用于进步X86 CPU功能的办法,如寄存器重命名、巨大的缓冲器、乱序履行、分支预测、X86指令转化等等,都使CPU的芯片面积变得更大,也约束了作业频率的进一步进步,而额外集成的这些晶体管都只是为了处理X86结构指令的问题。