为了开拓
64位处理器的高端应用市场,1994年6月Intel和HP公司签署合作协议,共同开发以服务器和T作站为主要应用目标的全新64位架构高性能微处理器。1997年11月,Intel和HP公司发布基于EPIC(Explicitly Parallel Instruction Computing,显式并行指令计算)的Itanium系统结构。
超标量和
VLIW是开发指令级并行的两种极端结构,前者完全依赖流水线硬件动态识别出可并行的指令,并将它们分发给相应的功能单元执行,后者则将指令级并行的开发工作全部交给编译器完成,在编译时静态确定每条指令的流出时刻和执行延迟,仅依赖简单的流水线硬件确保在指令实际执行延迟与编译器假定的延迟不一致时(如访问Cache不命中就会增加访存操作的延迟),程序的执行结果依然正确。在这两种结构中,单一的指令级并行开发机制使得它们都存在着严重的固有缺陷:超标量结构硬件复杂度太高,学术界和工业界一致认为,同时流出并执行8条指令将达到这种结构的极限;VLIW则面临着严重的代码兼容问题,而且VLIW编译器的智能程度远远无法满足人们的要求。显式并行指令计算(Explicitly Parallel Instruction Computing,EPIC)技术正是为了解决这两种结构的本质缺陷而提出的,它是在VLIW的基础上融合了超标量结构的一些优点而设计得到的,以期用有限的硬件开销为代价开发出更多的指令级并行。
(1)提供一种新的机制,利用
编译程序和
处理器协同能力来提高指令并行度。传统的RISC系统结构没有能够充分利用编译程序所产生的许多有用信息(如关于程序运行路径的猜测信息),也没有充分利用现代编泽程序强大的对程序执行过程的调度能力。EPIC采用创新的技术充分利用编译程序提供的信息和调度能力来提高指令并行度。
(2)简化芯片逻辑结构,为提高主频和性能开辟道路。EPIC信守工程设计上的一条基本原则.即“不是越复杂越好,而是越简捷越好”。事实上,简捷的构思比复杂的构思更困难。
(3)提供足够的资源来实现EPIC,包括存储编译程序提供的信息以及提高并行计算效率所需的处理单元、高速缓存和其他资源。包括4个整数单元,2个浮点单元,3个
分支单元.3级
高速缓存(L1 Cache、L2 Cache、L3 Cache);5组供指令引用的寄存器:128个64位整数寄存器,128个82位
浮点寄存器,64个预测寄存器,8个程序寄存器,1 28个专门的应用寄存器。
(4)充分利用丰富的寄存器资源,采用寄存器轮转技术,让指令按顺序循环使用寄存器,使得处理器在非常繁忙的情况下也不会m现寄存器不足的情况;寄存器直接参与运算,指令的执行效率大大提高;寄存器组能为多个不同的进程保存寄存器状态,使得进程间的切换十分迅速,非常适合于服务器应用环境中的多进程并行运行。
2、系统结构必须提供某种通信机制,使得流水线硬件能够了解编译器“安排”好的指令执行顺序。但需要注意的是,EPIC并不仅仅是采用了多种高级编译优化技术的
VLIW结构,这只不过是它的一个特征。EPIC的第二个特征,有效的软硬件通信机制,才是它与VLIW之间的本质区别。