3.高速缓存Cache
由于CPU核心速度比存储器速度快得多,根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用,这对提高程序的运行速度有很大的影响。这个介于主存和CPU之间的高速小容量存储器被称做高速缓冲存储器(Cache)。Cache的优化对提高CPU的核心速度很重要。
Cache通常由L1 Cache和L2 Cache组成。由于L1 Cache位于处理器的内核中,当CPU进行各种应用,如数据读取、数据移位和数据循环时,L1 Cache的延时就很短,与CPU通信的速度也很快,L1 Cache一般只存储少量的数据。L2 Cache不仅可以做到芯片外,还可以做到芯片内,它可以存放更多的数据,通常是L1 Cache的几倍,一般在4~16倍之间。
在传统的Cache设计中,系统内存的一些数据将写到L2 Cache中,而L1 Cache则从L2 Cache中读取数据,这样使L2 Cache与L1 Cache有重复的数据,效率不高。在AMD新一代的Thunderbird和Duron处理器中,都采用了Exclisive设计,使L1 Cache和L2 Cache不会有重复的数据,从而使L2 Cache对性能的提升更加显著。另外,采用全速的L2 Cache也使CPU的性能有很大的提升。过去CPU的L2 Cache一般都是采用外置式结构,速度是处理器核心频率的一半。以目前的技术水平,普通的SDRAM的最高工作频率是很有限的,而现在处理器的速度越来越高,外置式的L2 Cache已经只能以处理器速度的1/3运行了,这就严重地影响了CPU的整体性能。在Pentium Ⅲ Coppermine以后的CPU中都采用了内置方法,以使L2 Cache的速度与处理器核心频率同步,提高了CPU的性能。AMD现在也将L2 Cache放到芯片内部,并采用Exclisive设计,这就是说,AMD的CPU Cache等于L1 Cache+L2 Cache。
把L2 Cache做到芯片内并以全速工作的最大好处是能让L1 Cache和L2 Cache并行运行,同时存取其中的数据,减少CPU的等待时间。这是改进缓存性能的一个好方法,但是,也有一些不利因素,其一就是用缩小内核来提高核心速度,会引起内核中L1 Cache核心速度的降低。
Pentium 4采用了执行跟踪缓存(ETC)。ETC代替过去Intel处理器上的L1缓存,包含译码指令,即Micro-Operations(或Micro-Ops)。
另外,ETC还是Intel用来减轻分支指令丢失的一种新方法。在先前的处理器上,如果分支指令丢失的话,那么,处理器就不得不重新开始运算,包括重取且重译x86指令。而对Pentium 4来说,处理器可直接去ETC中找回Micro-Ops所需要的解码,并通过执行管线输送过去,加快了处理过程。
ETC的另一个好处是它会存储Micro-Ops。这样就增加了指令流动并且更有效地使用缓存空间,因为它仅仅存储所需要的操作。Intel表示,ETC有存储12KB Micro-Ops的能力,但目前还很难推测它比L1 Cache到底好多少。
对于L2 缓存,Pentium 4不同于PentiumⅢ的是在每个处理器时钟上传送数据。同样是256位接口,1.4GHz Pentium 4达到45GB/s的传输率,1GHz的Pentium Ⅲ最大传输率为16GB/s。
由于Pentium 4时钟速度的增加,其L2缓存的记忆带宽也相应增加了。对1.5GHz Pentium 4来说,L2缓存带宽是48GB/s。
4.超标量设计
超标量设计是指CPU内含多个指令执行单元或者多条流水线。在一个给定的时钟周期内,带有超标量的处理器可以执行多于1条的指令。但并非所有的超标量处理器的设计都是一样的,早期的Pentium宣称为“两出口处理器”,即可在两条流水线上执行两条指令。但实际上,Pentium并不都能达到指令处理的设计能力,因为Pentium强行严格限制它可同时发出的指令操作类型,某些指令被强制不能同时从流水线中发出。在超标量设计中,当一条流水线被阻塞时,CPU会受到严重的影响。如果采用有序执行指令和有序完成指令的方式,在一个流水线中阻碍指令完成的任何事件都将阻塞其他流水线的运行。而无序或乱序执行可以让其他的流水线继续运行,因此,程序中后面的指令实际上可以比另一不同流水线中被阻塞的正在处理的指令更早地完成。当然,处理器必须保证执行结果不以错误的次序将结果写到内存中或错误地改变寄存器的值,因为那样将导致错误的结果。
5.乱序执行技术
乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。如程序某一段有7条指令,此时CPU根据各单元电路的空闲状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。当然,之后还必须由相应电路再将运算结果重新按原来程序指定的顺序排列后才能返回程序。这种将各条指令拆散后,不按顺序执行的运行方式就叫乱序执行(也有叫错序执行)技术。
采用乱序执行技术的目的是为了使CPU内部电路满负荷运转,并相应提高CPU的运行速度。Pentium 4及之前的P6级CPU一样,均引入了乱序随机执行机制,以降低I×C×T,提高CPU的性能。
6.指令特殊扩展技术
这是指CPU是否具有对x86指令集进行指令扩展而言,以减少指令集在运行多媒体和网络时的指令数,即减少I,提高CPU的性能。扩展指令中最早出现的是Intel公司自己的MMX,其次是AMD公司的3DNow!,以及Pentium Ⅲ中的SSE。
Pentium 4在指令集上做了很大的改进,新的SSE2特殊指令集除包括原有的68组SSE指令外,还增加了全新的76组SSE2特殊指令,新的指令集把整数MMX寄存器增加到128位,而且提供了128位的SIMD整数运算操作和128位的双精度浮点运算操作。SSE2可以提高多媒体的执行效率,特别是DVD/MP3/MPEG-4的回放。
CPU有了特殊扩展指令集后,还必须在应用程序的相应支持下才能发挥作用。
Pentium 4扩展了SIMD 指令:提供 144 条新指令、SIMD 双精度浮点指令、SIMD 128 位的整数指令、在浮点和整数数据之间的变换指令和缓存能力指令。
总之,制造GHz系列芯片主要需要做以下工作:
缩小芯片尺寸 以便把速度提到1GHz以上。必须转向使用0.18微米或0.13微米制造工艺,或使用铜和SOI技术。
片内集成L2 Cache 加快处理器Cache的速度和延时的惟一方法是把Cache集成到处理器芯片内,把处理器内核和Cache集成在一起,还要使用微处理器的其他设计方法。
内存带宽 由于1GHz的处理器采用2GB/s的存储带宽,内存子系统的速度必须与这种高速CPU相匹配,因此,至少也要有800MB/s的内存带宽。(佟平 史锋)
|