五、128位SIMD执行单元架构
此外,Core微处理器架构另一个重要的改进就是提供完整128位宽的SSE执行单元,一个频率周期内可执行一个128位SSE指令,而非Yonah仅实作64位宽SSE执行单元,所以需要两个频率周期,NetBurst微处理器架构虽然提供128位宽执行单元,但仅有一组,性能孰高孰低一目了然。
配合完整的128位SSE执行单元,以及庞大的执行单元数目,Core微处理器架构可在一个频率周期内,同时执行128位乘法、128位加法、128位数据加载与128位数据回存,或着是4个32位单倍浮点精确度乘法与4个32位单倍浮点精确度加法运算,这是Yonah与Presler的两倍。Core微处理器架构大幅改进的SSE性能,使其更利于多媒体应用。
六、更高效率的内存管理系统
Intel为了弥补缺乏整合型内存控制器、导致内存存取延迟较长的缺憾,在内存系统上花了很大的功夫。在降低CACHE延迟方面有一个关键技术,称之为:Memory Disambiguation技术,即在存数和取数指令都乱序执行的情况下,保证取数指令都能取回它前面的最近一条对同一地址的存数指令所存的值。比如如果一条取数指令在一条存数指令之后且两条指令的地址相等,但取数指令先访问CACHE,也要保证取数指令取回该存数指令的值。
在过去,一个接连在回存指令后的加载指令,因可能目标内存地址相同之故,为了确保内存数据一致性(Memory Consistency),必须等待该回存动作结束后,才能执行该加载动作,避免因使用相同地址,导致内存数据一致性发生错误。为此,Core微处理器架构提供内存数据相依性预测功能(Memory Disambiguation),可在处理器将数据回存内存的同时,预测后继的加载指令是否采用相同的内存地址,如果不是就可立即执行加载动作,毋需等待该回存指令,这可大幅改善非循序执行(Out-Of-Order Execution)核心的效率,以及缩短存取内存的延迟。
又如果一条取数指令在一条存数指令之前且两条指令的地址相等,但存数指令先访问CACHE,也要保证取数指令取回原来CACHE中的值,而不是存数指令新存的值。这是有风险的。因为你刚刚读的数据可能会在CPU内部的处理过程中发生变化,从而出现错误。但是Intel称,这个系统非常聪明,可以得到不会发生变化的数据。
Core微处理器架构每个核心分别内建一组指令及二组数据预先撷取器,而共享的L2缓存控制器内建两组、可动态分配至不同的核心的数据预先撷取器,可根据应用程序数据的行为,进行指令与数据的预先撷取动作,让所需要的内存地址数据,尽量存放在缓存之中,减少存取内存的次数。 |