爱爱小说网 > 体育电子书 > cpu >

第4章

cpu-第4章

小说: cpu 字数: 每页3500字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
     最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(I…Cache)和指令缓存(D…Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium4处理器时,还新增了一种一级追踪缓存,容量为12KB。
     随着CPU制造工艺的发展,二级缓存也能轻易的集成在CPU内核中,容量也在逐年提升。现在再用集成在CPU内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入CPU内核中,以往二级缓存与CPU大差距分频的情况也被改变,此时其以相同于主频的速度工作,可以为CPU提供更高的传输速度。
     二级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上有差异,由此可见二级缓存对于CPU的重要性。
     CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。目前的较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
     为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。
     CPU产品中,一级缓存的容量基本在4KB到18KB之间,二级缓存的容量则分为128KB、256KB、512KB、1MB等。一级缓存容量各产品之间相差不大,而二级缓存容量则是提高CPU性能的关键。二级缓存容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部晶体管数的增加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。
   双核心CPU的二级缓存比较特殊,和以前的单核心CPU相比,最重要的就是两个内核的缓存所保存的数据要保持一致,否则就会出现错误,为了解决这个问题不同的CPU使用了不同的办法:
   Intel双核心处理器的二级缓存
   目前Intel的双核心CPU主要有PentiumD、PentiumEE、CoreDuo三种,其中PentiumD、PentiumEE的二级缓存方式完全相同。PentiumD和PentiumEE的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,8xx系列的Smithfield核心CPU为每核心1MB,而9xx系列的Presler核心CPU为每核心2MB。这种CPU内部的两个内核之间的缓存数据同步是依靠位于主板北桥芯片上的仲裁单元通过前端总线在两个核心之间传输来实现的,所以其数据延迟问题比较严重,性能并不尽如人意。
   CoreDuo使用的核心为Yonah,它的二级缓存则是两个核心共享2MB的二级缓存,共享式的二级缓存配合Intel的“Smartcache”共享缓存技术,实现了真正意义上的缓存数据同步,大幅度降低了数据延迟,减少了对前端总线的占用,性能表现不错,是目前双核心处理器上最先进的二级缓存架构。今后Intel的双核心处理器的二级缓存都会采用这种两个内核共享二级缓存的“Smartcache”共享缓存技术。
   AMD双核心处理器的二级缓存
   Athlon64X2CPU的核心主要有Manchester和Toledo两种,他们的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,Manchester核心为每核心512KB,而Toledo核心为每核心1MB。处理器内部的两个内核之间的缓存数据同步是依靠CPU内置的SystemRequestInterface(系统请求接口,SRI)控制,传输在CPU内部即可实现。这样一来,不但CPU资源占用很小,而且不必占用内存总线资源,数据延迟也比Intel的Smithfield核心和Presler核心大为减少,协作效率明显胜过这两种核心。不过,由于这种方式仍然是两个内核的缓存相互独立,从架构上来看也明显不如以Yonah核心为代表的Intel的共享缓存技术SmartCache
   什么是64位技术
   64位技术:这里的64位技术是相对于32位而言的,这个位数指的是CPUGPRs(General…PurposeRegisters,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(ReducedInstructionSetputing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparcⅢ、IBM公司的POWER5、HP公司的Alpha等。
   64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。
   要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。目前,在64位处理器方面,Intel和AMD两大处理器厂商都发布了多个系列多种规格的64位处理器;而在操作系统和应用软件方面,目前的情况不容乐观。因为真正适合于个人使用的64位操作系统现在就只有WindowsXPX64,而WindowsXPX64本身也只是一个过渡性质的64位操作系统,在WindowsVista发布以后就将被淘汰,而且WindowsXPX64本身也不太完善,易用性不高,一个明显的例子就是各种硬件设备的驱动程序很不完善,而且现在64位的应用软件还基本上没有,确实硬件厂商和软件厂商也不愿意去为一个过渡性质的操作系统编写驱动程序和应用软件。所以要想实现真正的64位计算,恐怕还得等到WindowsVista普及一段时间之后才行。
   目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA…64技术。其中IA…64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。
   AMD64位技术X86…64:
   AMD64的位技术是在原始32位X86指令集的基础上加入了X86…64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86…64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86…64具有64位的寻址能力。
   X86…64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。标准的32…bitx86架构包括8个通用寄存器(GPR),AMD在X86…64中又增加了8组(R8…R9),将寄存器的数目提高到了16组。X86…64寄存器默认位64…bit。还增加了8组128…bitXMM寄存器(也叫SSE寄存器,XMM8…XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86…64标准生产的CPU可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。
   EM64T技术
   Intel官方是给EM64T这样定义的:EM64T全称ExtendedMemory64Technology,即扩展64bit内存技术。EM64T是IntelIA…32架构的扩展,即IA…32e(IntelArchitectur…32extension)。IA…32处理器通过附加EM64T技术,便可在兼容IA…32软件的情况下,允许软件利用更多的内存地址空间,并且允许软件进行32bit线性地址写入。EM64T特别强调的是对32bit和64bit的兼容性。Intel为新核心增加了8个64bitGPRs(R8…R15),并且把原有GRPs全部扩展为64bit,这样可以提高整数运算能力。增加8个128bitSSE寄存器(XMM8…XMM15),是为了增强多媒体性能,包括对SSE、SSE2和SSE3的支持。
   Intel为支持EM64T技术的处理器设计了两大模式:传统IA…32模式(legacyIA…32mode)和IA…32e扩展模式(IA…32emode)。在支持EM64T技术的处理器内有一个称之为扩展功能激活寄存器(extendedfeatureenableregister,IA32_EFER)的部件,其中的Bit10控制着EM64T是否激活。Bit10被称作IA…32e模式有效(IA…32emodeactive)或长模式有效(longmodeactive,LMA)。当LMA=0时,处理器便作为一颗标准的32bit(IA32)处理器运行在传统IA…32模式;当LMA=1时,EM64T便被激活,处理器会运行在IA…32e扩展模式下。
   目前AMD方面支持64位技术的CPU有Athlon64系列、AthlonFX系列和Opteron系列。Intel方面支持64位技术的CPU有使用Nocona核心的Xeon系列、使用Prescott2M核心的Pentium46系列和使用Prescott2M核心的P4EE系列。
   浅谈EM64T技术和AMD64区别X86…64(AMD64/EM64T):
   AMD公司设计,可以在同一时间内处理64位的整数运算,并兼容于X86…32架构。其中支持64位逻辑定址,同时提供转换为32位定址选项;但数据操作指令默认为32位和8位,提供转换成64位和16位的选项;支持常规用途寄存器,如果是32位运算操作,就要将结果扩展成完整的64位。这样,指令中有“直接执行”和“转换执行”的区别,其指令字段是8位或32位,可以避免字段过长。
   x86…64(AMD64)的产生也并非空穴来风,x86处理器的32bit寻址空间限制在4GB内存,而IA…64的处理器又不能兼容x86。AMD充分考虑顾客的需求,加强x86指令集的功能,使这套指令集可同时支持64位的运算模式,因此AMD把它们的结构称之为x86…64。在技术上AMD在x86…64架构中为了进行64位运算,AMD为其引入了新增了R8…R15通用寄存器作为原有X86处理器寄存器的扩充,但在而在32位环境下并不完全使用到这些寄存器。原来的寄存器诸如EAX、EBX也由32位扩张至64位。在SSE单元中新加入了8个新寄存器以提供对SSE2的支持。寄存器数量的增加将带来性能的提升。与此同时,为了同时支持32和64位代码及寄存器,x86…64架构允许处理器工作在以下两种模式:LongMode(长模式)和LegacyMode(遗传模式),Long模式又分为两种子模式(64bit模式和patibilitymode兼容模式)。该标准已经被引进在AMD服务器处理器中的Opteron处理器。
   而今年也推出了支持64位的EM64T技术,再还没被正式命为EM64T之前是IA32E,这是英特尔64位扩展技术的名字;用来区别X86指令集。Intel的EM64T支持64位sub…mode,和AMD的X86…64技术类似,采用64位的线性平面寻址,加入8个新的通用寄存器(GPRs),还增加8个寄存器支持SSE指令。与AMD相类似,Intel的64位技术将兼容IA32和IA32E,只有在运行64位操作系统下的时候,才将会采用IA32E。IA32E将由2个sub…mode组成:64位sub…mode和32位sub…mode,同AMD64一样是向下兼容的。Intel的EM64T将完全兼容AMD的X86…64技术。现在Nocona处理器已经加入了一些64位技术,Intel的Pentium4E处理器也支持64位技术。
   应该说,这两者都是兼容x86指令集的64位微处理器架构,但EM64T与AMD64还是有一些不一样的地方,AMD64处理器中的NX位在Intel的处理器中将没有提供。
   CPU接口类型
   CPU接口类型:CPU需要通过某个接口与主板连接的才能进行工作。CPU经过这么多年的发展,采用的接口方式有引脚式、卡式、触点式、针脚式等。而目前CPU的接口都是针脚式接口,对应到主板上就有相应的插槽类型。CPU接口类型不同,在插孔数、体积、形状都有变化,所以不能互相接插。
   CPU接口:SocketAM2
   SocketAM2是2006年5月底发布的支持DDR2内存的AMD64位桌面CPU的接口标准,具有940根CPU针脚,支持双通道DDR2内存。虽然同样都具有940根CPU针脚,但SocketAM2与原有的Socket940在针脚定义以及针脚排列方面都不相同,并不能互相兼容。目前采用SocketAM2接口的有低端的Sempron、中端的Athlon64、高端的Athlon64X2以及顶级的Athlon64FX等全系列AMD桌面CPU,支持200MHz外频和1000MHz的HyperTransport总线频率,支持双通道DDR2内存,其中Athlon64X2以及Athlon64FX最高支持DDR2800,Sempron和Athlon64最高支持DDR2667。。按照AMD的规划,SocketAM2接口将逐渐取代原有的Socket754接口和Socket939接口,从而实现桌面平台CPU接口的统一。
   CPU接口:SocketS1
   SocketS1是2006年5月底发布的支持DDR2内存的AMD64位移动CPU的接口标准,具有638根CPU针脚,支持双通道DDR2内存,这是与只支持单通道DDR内存的移动平台原有的Socket754接口的最大区别。目前采用SocketS1接口的有低端的MobileSempron和高端的Turion64X2。按照AMD的规划,SocketS1接口将逐渐取代原有的Socket754接口从而成为AMD移动平台的标准CPU接口。
   CPU接口:SocketF
   SocketF是AMD于2006年第三季度发布的支持DDR2内存的AMD服务器/工作站CPU的接口标准,首先采用此接口的是SantaRosa核心的LGA封装的Opteron。与以前的Socket940接口CPU明显不同,SocketF与Intel的Socket775和Socket771倒是基本类似。SocketF接口CPU的底部没有传统的针脚,而代之以1207个触点,即并非针脚式而是触点式,通过与对应的SocketF插槽内的1207根触针接触来传输信号。SocketF接口不仅能够有效提升处理器的信号强度、提升处理器频率,同时也可以提高处理器生产的良品率、降低生产成本。SocketF接口的Opteron也是AMD首

返回目录 上一页 下一页 回到顶部 1 2

你可能喜欢的