IA-64 体系结构
为进一步提高处理器的总体性能,要求处理器不仅要能更快地执行指令,而且还要在每个中执行更多的指令,以处理更多的信息,即通常所说的“并行执行”。而传统IA-32微处理器架构存在一些基本的性能限制。因此,美国HP和Intel公司几年前开始合作开发IA-64架构的处理器。通过把RISC和超长指令字VLIW技术结合起来,在微处理器级上改进性能,以增加指令级上的并行性,这就是采用全新结构的IA-64微处理器Itanium——“安腾”。
在该构架中定义了一种新的被称作“显式并行指令计算”的全新系统架构技术。每个指令周期可执行20条指令,大致是RISC指令集的4倍,是CISC(复杂指令结构)指令集的5倍。此技术能在原有的条件下获得最大限度的并行能力(即并行工作的潜力),并以明显的方式传达给硬件。同时,在EP技术的基础上定义了一种新的64位指令架构()。新的64位ISA采用全新的方式,把显式并行性能与推理和判断技术结合起来,打破了传统架构的顺序执行限制和局限性(如错误预测分支、存储等待等),使并行能力达到了新的水平,图1、图2是EPIC的硬件微型体系结构图。
图1 IA-64微处理器的硬件体系结构框图
图2 IA-64微处理器EPIC机制图
从上图可看出,IA-64很像其他的64位RISC CPU:指令的长度是固定的,由一个指令、两个输入和一个输出寄存器组成;指令只对寄存器操作;超标量,具有多个不同的流水线或执行单元,能够并行执行许多指令。具体来说,IA-64主要特性表现在以下几个方面:
1.IA-64结构把三种指令捆绑成128位长的单一指令,处理速度更快
IA-64属于VLIW(超长指令集)架构,VLIW的架构简单,他将超标量芯片的协调并行工作所必需的一部分控制交由编译器处理,从而简化了CPU的结构。
2.位模板控制并行指令的执行
每个128位IA-64捆绑指令包含一个由几位组成的模板,它通过编译程序明确告诉CPU可以并行执行的指令。因此,CPU就不必仓促分析运行时的指令流来找出隐含的并行性,并把这种信息装入机器代码。每一种指令包括三个通用寄存器(GPR)字段,并且这种字段是整数和浮点()运算指令特有的。这就是说,IA-64处理器将具有128个整数指令寄存器和128个浮点指令寄存器。所有的寄存器都是可编程的随机存取寄存器;而x86只有8个整数指令寄存器和8个浮点指令栈。IA-64处理器由于不存在寄存器不足的问题,指令位更宽,寄存器等候时间更少。
3.预测指令消除错误预测
IA-64编译程序将利用预测技术来消除错误预测分支指令引起的不良后果,并要求跳过超出分支指令的代码块。当CPU在运行时遇到一个预测的分支指令,它将沿着分支指令的所有目的地开始执行该代码,从而尽可能多地利用并行性。当CPU发现实际分支指令执行结果时,保存有效结果而放弃无效结果。
4.推测性装入指令
IA-64编译程序扫描源代码,从寄存器中发现即将到来的指令装入,并加上推测装入指令和推测检校指令。在运行时,第一个指令在编译程序要求数据之前,推测装入指令确定从寄存器装入数据。在让编译程序使用数据之前,推测检校指令检查装入。推测装入有助于消除存取时间长的问题,并帮助提高并行性。
IA-64系统使用基于Infiniband技术的总线结构,它以交换式系统总线代替目前的共享式总线为核心,将NGIO和FutureIO两种技术合二为一,使系统总线、内存总线带宽和I/O总线带宽都将大大提高。IA-64系统带宽在2Gb/s以上,而目前的IA-32架构的典型系统带宽是1.06Gb/s,带宽一般是0.4Gb/s。