CPU散热的意义
1.电源频率
主频也叫时钟频率,单位是MHz,用来表示CPU的运行速度。CPU主频=外部频率×倍频系数。很多人认为主频决定了CPU的运行速度,这不仅是片面的,对于服务器来说也是偏颇的。到目前为止,还没有一个确定的公式可以实现主频与实际运行速度之间的数值关系。即使是Intel和AMD这两大处理器厂商,在这一点上也有很大的争议。从英特尔产品的发展趋势可以看出,英特尔非常重视加强自身主频的发展。和其他处理器厂商一样,曾经有人拿一个1G的全美达做对比,运行效率相当于2G的Intel处理器。
所以CPU的主频和CPU的实际运算能力没有直接关系,主频表示的是CPU中数字脉冲信号振荡的速度。在英特尔的处理器产品中,我们也可以看到这样的例子:1 GHz的安腾芯片几乎可以和2.66 GHz的至强/骁龙一样快,或者说1.5 GHz的安腾2大约和4 GHz的至强/骁龙一样快。CPU的运行速度取决于CPU流水线各方面的性能指标。
当然主频和实际运行速度有关。只能说主频只是CPU性能的一个方面,并不代表CPU的整体性能。
2.外部频率
外部频率是CPU的参考频率,单位是MHz。CPU的外接频率决定了整个主板的运行速度。说白了,在桌面,我们所说的超频就是超级CPU的外频(当然一般来说,CPU的倍频是锁定的)。我相信这是很好理解的。但是对于服务器CPU来说,超频是绝对不允许的。前面说过,CPU决定主板的运行速度,两者同步运行。如果服务器CPU超频,改变外部频率,就会出现异步运行(很多台式电脑的主板都支持异步运行),造成整个服务器系统的不稳定。
目前大部分电脑系统中的外接频率也是内存和主板同步运行的速度。这样就可以理解为CPU的外部频率直接与内存相连,实现两者的同步运行。外部频率和前端总线(FSB)频率很容易混淆。下面前端总线给我们介绍一下两者的区别。
3.FSB频率
前端总线(FSB)的频率直接影响CPU与内存直接数据交换的速度。有一个公式可以计算出来,就是数据带宽=(总线频率×数据位宽)/8,数据传输的最大带宽取决于同时传输的所有数据的宽度和传输频率。比如目前支持64位的Xeon Nocona,其前端总线为800MHz。根据公式,其最大数据传输带宽为6.4GB/ s..
外频和FSB频率的区别:FSB的速度是指数据传输的速度,外频是指CPU和主板同步运行的速度。换句话说,100MHz的外部频率意味着数字脉冲信号每秒振荡1000万次;100MHz前端总线是指CPU每秒可接受的数据传输能力为100 MHz×64 bit÷8 byte/bit = 800 MB/s。
事实上,“HyperTransport”架构的出现在实际意义上改变了FSB的频率。之前我们知道IA-32架构必须有三个重要的组件:内存控制器中枢(MCH)、I/O控制器中枢和PCI中枢,比如英特尔的典型芯片组Intel 7501和Intel7505,它们是为双至强处理器量身定制的。它们所包含的MCH为CPU提供了533MHz频率的前端总线,配合DDR内存,前端总线的带宽可以达到4.3GB/。然而,随着处理器性能的不断提高,给系统架构带来了许多问题。“HyperTransport”架构不仅解决了问题,还更有效地提高了总线带宽,如AMD皓龙处理器。灵活的HyperTransport I/O总线架构允许它集成内存控制器,使处理器可以直接与内存交换数据,而无需通过系统总线传输到芯片组。在这种情况下,AMD皓龙处理器中的前端总线(FSB)频率不知道从哪里开始。
4.CPU的位和字长
位:在数字电路和计算机技术中,采用二进制编码,编码只有“0”和“1”,其中“0”和“1”都是CPU中的一位。
字长:在计算机技术中,CPU在单位时间内(同时)一次能处理的二进制数的位数称为字长。因此,能够处理字长为8位的数据的CPU通常称为8位CPU。同样,32位CPU在单位时间内可以处理32位二进制数据。字节和字长的区别:由于常用的英文字符可以用8位二进制来表示,所以8位通常称为一个字节。字长的长度不是固定的,对于不同的CPU和字长是不一样的。8位CPU一次只能处理一个字节,而32位CPU一次可以处理四个字节。同样,字长为64位的CPU一次可以处理8个字节。
5.倍频系数
倍频系数是指CPU主频与外部频率的相对比例关系。在外部频率相同的情况下,倍频越高,CPU频率越高。但实际上,在外部频率相同的前提下,高倍频的CPU本身意义不大。这是因为CPU与系统之间的数据传输速度是有限的,一味追求高倍频来获取高频的CPU会有明显的“瓶颈”效应——CPU从系统获取数据的极限速度无法满足CPU运行的速度。一般英特尔的CPU除了工程版,都是用倍频锁定的,而AMD之前是不锁定的。
缓存
缓存大小也是CPU的重要指标之一,缓存的结构和大小对CPU的速度影响很大。CPU中的缓存运行频率非常高,通常与处理器同频,工作效率远大于系统内存和硬盘。在实际工作中,CPU经常需要重复读取同一个数据块,缓存容量的增加可以大大提高CPU内部读取数据的命中率,而无需在内存或硬盘中寻找,从而提高系统性能。但是由于CPU芯片面积和成本的因素,缓存很小。
L1缓存是CPU的第一层缓存,分为数据缓存和指令缓存。内置L1缓存的容量和结构对CPU的性能影响很大。然而,高速缓冲存储器都是由静态RAM构成的,并且结构复杂。在CPU的管芯面积不能太大的情况下,L1级缓存的容量不能做得太大。一般服务器CPU的L1缓存容量通常为32-256 KB。
L2缓存是CPU的二级缓存,分为内部和外部芯片。内部芯片二级缓存运行速度与主频相同,而外部二级缓存只有主频的一半。L2缓存容量也会影响CPU的性能。原则是CPU越大越好。目前国内最大的CPU容量为512KB,而服务器和工作站使用的CPU L2缓存高达256-1MB,有的高达2MB或3MB。
L3缓存(三级缓存)分为两种,早期的外置,现在的内置。其实际作用在于,L3缓存的应用可以进一步降低内存延迟,提高处理器在计算大数据量时的性能。降低内存延迟,提高大数据的计算能力,对游戏很有帮助。但是,通过在服务器领域添加L3缓存,性能仍有显著提高。例如,具有较大L3缓存的配置可以更有效地使用物理内存,因此它可以比较慢的磁盘I/O子系统处理更多的数据请求。具有更大L3缓存的处理器提供了更高效的文件系统缓存行为以及更短的消息和处理器队列长度。
其实最早的L3缓存应用在AMD发布的K6-III处理器上。当时L3缓存并没有集成到芯片中,而是由于制造工艺的原因集成到主板中。L3缓存,只能和系统总线频率同步,和主存区别不大。后来,L3缓存是英特尔为服务器市场推出的安腾处理器。然后是P4EE和至强MP。英特尔还计划在未来推出9MB三级高速缓存的Itanium2处理器和24MB三级高速缓存的双核Itanium2处理器。
但是L3缓存对于提高处理器的性能并不是很重要。比如配备1MB三级缓存的至强MP处理器,依然不是骁龙的对手,这说明前端总线的增加会比缓存的增加带来更有效的性能提升。
7.CPU扩展指令集
CPU依靠指令来计算和控制系统,每个CPU都设计有一系列与其硬件电路相匹配的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率最有效的工具之一。从目前的主流架构来看,指令集可分为复杂指令集和简化指令集两部分,而从具体应用来看,如英特尔的MMX(多媒体扩展)、SSE、SSE 2(流-单指令多数据-扩展2)、SEE3和AMD的3DNow!它们都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图像和互联网的处理能力。我们通常把CPU的扩展指令集称为“CPU指令集”。SSE3指令集也是目前最小的指令集。以前,MMX包含57个命令,SSE包含50个命令,SSE2包含144个命令,SSE3包含13个命令。目前SSE3也是最先进的指令集。英特尔Prescott处理器已经支持SSE3指令集。AMD将在未来的双核处理器中加入对SSE3指令集的支持,全美达处理器也将支持该指令集。
8.CPU内核和I/O工作电压
从586CPU开始,CPU的工作电压分为内核电压和I/O电压。通常,CPU的核心电压小于或等于I/O电压。其中,内核电压的大小取决于CPU的生产工艺。一般生产工艺越小,内核的工作电压越低。I/O电压一般为1.6~5V。低电压可以解决功耗过大和发热量过大的问题。
9.制造工艺
制造工艺的微米是指集成电路中电路之间的距离。制造技术的趋势是向更高密度发展。IC电路设计的密度越高,就意味着在相同尺寸和面积的IC中,你可以拥有更高密度和更复杂功能的电路设计。现在主要的180nm,130nm,90nm。最近官方已经表示有65nm的制造工艺。
10.指令组
(1)CISC指令集
CISC指令集,又称复杂指令集,英文称为CISC(Complex Instruction Set Computer的缩写)。在CISC微处理器中,程序的指令是顺序串行执行的,每个指令中的操作也是顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分利用率不高,执行速度慢。其实就是Intel生产的x86系列(也就是IA-32架构)CPU以及与其兼容的CPU,比如AMD和VIA。甚至新的X86-64(也称为AMD64)也属于CISC。
要知道什么是指令集,要从今天的X86架构CPU说起。X86指令集是英特尔专门为其第一个16位CPU(i8086)开发的。IBM IBM1981+0推出的全球首款PC中的CPU-I 8088(I 8086的简化版)也使用了X86指令。同时在计算机中加入了X87芯片,提高浮点数据处理能力,后来又加入了X86指令集和X87指令集。
虽然随着CPU技术的不断发展,Intel相继开发了新型的i80386和i80486,从过去的PII至强、PIII至强、奔腾3,最后到今天的奔腾4系列和至强(不包括至强诺康纳),为了保证计算机能够继续运行过去开发的各种应用程序,保护和继承丰富的软件资源,Intel公司生产的所有CPU仍然继续使用X86指令集,因此其CPU仍然属于X86系列。因为Intel X86系列及其兼容的CPU(如AMD Athlon MP等。)全部使用X86指令集,形成了今天庞大的X86系列和兼容CPU阵容。目前x86CPU主要包括intel的服务器CPU和AMD的服务器CPU。
(2)RISC指令集
RISC是英文“Reduced Instruction Set Computing”和中文“Reduced Instruction Set”的缩写。它是在CISC指令系统的基础上开发的。在CISC机器上的一些测试表明,各种指令的频率是相当不同的。最常用的是一些简单的指令,只占指令总数的20%,但它们在程序中的出现频率却占了80%。复杂的指令系统必然增加微处理器的复杂度,导致开发时间长,成本高。而且复杂的指令需要复杂的运算,必然会拖慢计算机的速度。基于以上原因,RISC CPU于80年代诞生。与CISC CPU相比,RISC CPU不仅简化了指令系统,而且采用了称为超标量和超级流水线的结构,大大增加了并行处理能力。RISC指令集是高性能CPU的发展方向。它与传统的CISC(复杂指令集)相反。相比之下,RISC比复杂指令集有统一的指令格式、更少的类型和更少的寻址方式。当然处理速度要高很多。目前这种指令系统的CPU广泛应用于中高端服务器,尤其是高端服务器,都采用RISC指令系统CPU。RISC指令系统更适合高端服务器的操作系统UNIX,现在Linux也属于类UNIX操作系统。RISC CPU在软件和硬件上与Intel和AMD CPU不兼容。
目前中高端服务器使用RISC指令的CPU主要有以下几类:PowerPC处理器、SPARC处理器、PA-RISC处理器、MIPS处理器、Alpha处理器。
⑶IA-64
关于EPIC(显式并行指令计算机)是否是RISC和CISC系统的继承者,一直有很多争论。单就epic系统而言,更像是英特尔处理器走向RISC系统的重要一步。理论上,在相同的主机配置下,EPIC系统设计的CPU比基于Unix的应用软件要好得多。
英特尔采用EPIC技术的服务器CPU是位于安腾的安腾(开发代号为Merced)。它是IA-64位处理器,也是IA-64系列的第一款。微软还开发了一个代号为Win64的操作系统,由软件支持。在英特尔采用X86指令集后,它转向寻求更先进的64位微处理器。英特尔之所以这么做,是因为他们想摆脱庞大的x86架构,引入精力充沛、功能强大的指令集,于是诞生了带有EPIC指令集的IA-64架构。IA-64在很多方面都比x86有了很大的进步。它突破了传统IA32架构的诸多限制,在数据处理能力、系统稳定性、安全性、可用性和可观测性方面实现了突破性的提升。
IA-64微处理器最大的缺陷就是不兼容x86。为了让IA-64处理器更好地运行两个朝代的软件,英特尔在IA-64处理器(安腾、安腾2...),以便将x86指令翻译成IA-64指令。这个解码器不是最高效的解码器,也不是运行x86代码的最佳方式(最好的方式是直接在x86处理器上运行x86代码),所以安腾和Itanium2在运行x86应用时的性能很差。这也成为X86-64的根本原因。
(4)X86-64 (AMD64 / EM64T)
由AMD设计,可同时处理64位整数运算,兼容X86-32架构。它支持64位逻辑寻址,并提供转换为32位寻址的选项;但默认的数据操作指令是32位和8位,提供了转换为64位和16位的选项;支持通用寄存器,如果是32位运算,结果会扩展成完整的64位。这样指令中就有了“直接执行”和“转换执行”的区别,指令字段为8位或32位,可以避免字段过长。
x86-64(也叫AMD64)的产生不是空穴来风。x86处理器的32位寻址空间仅限于4GB内存,IA-64处理器与x86不兼容。AMD充分考虑了客户的需求,加强了x86指令集的功能,使这个指令集可以同时支持64位计算模式,所以AMD把他们的结构称为x86-64。在技术上,为了在X86-64架构中进行64位操作,AMD推出了R8-R15通用寄存器作为原有X86处理器寄存器的扩展,但这些寄存器在32位环境中并没有得到充分的使用。EAX和EBX等原始寄存器也从32位扩展到64位。SSE单元增加了八个新寄存器,为SSE2提供支持。增加寄存器数量将提高性能。同时,为了同时支持32位和64位代码和寄存器,x86-64架构允许处理器工作在以下两种模式:长模式和遗留模式,长模式又分为两个子模式(64位模式和兼容模式)。该标准已被引入AMD服务器处理器中的Opteron处理器。
今年推出了支持64位的EM64T技术。在正式命名为EM64T之前,它是IA32E,是Intel的64位扩展技术的名称,用来区分X86指令集。英特尔的EM64T支持64位子模式,类似于AMD的X86-64技术。它采用64位线性平面寻址,增加了8个新的通用寄存器(GPRs),并增加了8个支持SSE指令的寄存器。与AMD类似,英特尔的64位技术将兼容IA32和IA32E,只有在运行64位操作系统时才会采用IA32E。IA32E将由两种子模式组成:64位子模式和32位子模式,它们像AMD64一样向后兼容。英特尔的EM64T将完全兼容AMD的X86-64技术。现在诺科纳处理器增加了一些64位技术,英特尔的奔腾4E处理器也支持64位技术。
应该说两者都是兼容x86指令集的64位微处理器架构,但EM64T和AMD64还是有一些区别的。AMD64处理器中的NX位不会在英特尔处理器中提供。
11.超级流水线和超标量
在解释超级流水线和超标量之前,先理解流水线。流水线最早是Intel在486芯片中使用的。装配线就像工业生产中的装配线一样工作。在CPU中,一条指令处理流水线由5-6个功能不同的电路单元组成,然后将一条X86指令分成5-6步,分别由这些电路单元执行,这样一条指令就可以在一个CPU时钟周期内完成,从而提高了CPU的运行速度。经典奔腾的每个整数流水线分为指令预取、解码、执行、回写结果四个阶段,浮点流水线分为八个阶段。
超标量是通过建立多条流水线来同时执行多个处理器,其本质是以空间换时间。而超级流水线通过细化流水线,提高主频,可以在一个机器周期内完成一个或多个操作,其本质是以时间换取空间。比如奔腾4的流水线就长达20级。流水线设计的越长,完成一条指令的速度就越快,所以可以适应工作频率更高的CPU。但是长流水线也带来了一些副作用,很可能高频率的CPU实际运行速度会更低。英特尔奔腾4就是这种情况。虽然它的主频可以高达1.4G,但运行性能却远不及AMD速龙甚至奔腾III。
12.包装形式
CPU封装是利用特定的材料将CPU芯片或CPU模块固化在其中,防止损坏的一种保护措施。一般CPU只有包装好才能交付给用户。CPU的封装方式取决于CPU的安装形式和器件的一体化设计。从大的分类来说,Socket插座安装的CPU通常采用PGA(网格阵列)封装,而Slot x slot安装的CPU则全部采用SEC(单面插件盒)封装。现在有封装技术,如PLGA(塑料栅格阵列)和奥尔加(有机栅格阵列)。由于市场竞争日益激烈,目前CPU封装技术的发展方向主要是节约成本。
13,多线程
同步多线程同步多线程,简称SMT。SMT通过复制处理器的结构状态,使同一处理器上的多个线程同步执行,共享处理器的执行资源,可以最大限度地实现宽发射和乱序超标量处理,提高处理器运算部件的利用率,缓解数据相关或缓存未命中带来的访存延迟。当没有多线程可用时,SMT处理器几乎与传统的宽发射超标量处理器相同。SMT最吸引人的地方在于,只需小规模改变处理器内核的设计,几乎不增加额外成本,就能显著提升性能。多线程技术可以为高速计算核心准备更多的待处理数据,减少计算核心的空闲时间。这对于桌面低端系统来说无疑是很有吸引力的。从3.06GHz奔腾4开始,所有英特尔处理器都将支持SMT技术。
14,多核
多核,也称为芯片多处理器(CMP)。CMP是由美国斯坦福大学提出的。它的思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一个芯片中,每个处理器并行执行不同的进程。与CMP相比,SMT处理器结构的灵活性更加突出。但当半导体工艺进入0.18微米时,线延迟已经超过门延迟,这就要求微处理器的设计要通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,CMP结构被划分为多个处理器核,每个核相对简单,有利于优化设计,因此更有发展前景。目前IBM的Power 4芯片和Sun的MAJC5200芯片都采用了CMP结构。多核处理器可以共享处理器中的缓存,提高了缓存利用率,简化了多处理器系统设计的复杂度。
2005年下半年,英特尔和AMD的新处理器也将集成到CMP结构中。全新安腾处理器的开发代号为Montecito,采用双核设计,至少拥有18MB片内缓存,采用90nm工艺制造。它的设计绝对是对当今芯片行业的挑战。它的每个独立内核都有独立的L1、L2和L3缓存,包括大约1亿个晶体管。
15、SMP
对称多处理结构(Symmetric Multi-Processing,SMP)是对称多处理结构(Symmetric Multi-Processing structure)的缩写,是指一台计算机上组装的一组处理器(多CPU),每个CPU * * *享有内存子系统和总线结构。在这项技术的支持下,服务器系统可以同时运行多个处理器,并享受内存和其他主机资源。像双至强,也就是我们所说的双路,这是对称处理器系统中最常见的一种(至强MP可以支持四路,AMD Opteron可以支持1-8)。也有几个是16。但总的来说,SMP结构的机器扩展性差,很难做到100以上的处理器。一般有8到16个处理器,但这对大多数用户来说已经足够了。它在高性能服务器和工作站级主板架构中最为常见,例如可以支持多达256个CPU的系统的UNIX服务器。
搭建一个SMP系统的必要条件是:支持SMP的硬件包括主板和CPU;支持SMP的系统平台,然后是支持SMP的应用软件。
为了使SMP系统高效运行,操作系统必须支持SMP系统,如WINNT、LINUX、UNIX等32位操作系统。也就是说,可以执行多任务和多线程。多任务是指操作系统可以让不同的CPU同时完成不同的任务;多线程是指操作系统让不同的CPU并行完成同一任务。
为了设置SMP系统,对选择的CPU有很高的要求。首先,CPU必须有内置的APIC(高级可编程中断控制器)单元。英特尔多处理规范的核心是使用高级可编程中断控制器(APICS)。再次,相同的产品型号,相同类型的CPU核心,完全相同的运行频率;最后,尽量保持相同的产品序列号,因为当两个生产批次的CPU作为双处理器运行时,可能会出现一个CPU负担过重,另一个CPU负担过轻的情况,无法充分发挥其最大性能,更严重的可能会导致死机。
16,NUMA科技
NUMA是一种非均匀访问分布式存储技术,它是由若干个独立的节点通过高速专用网络连接而成的系统,每个节点可以是单个CPU或SMP系统。在NUMA,缓存一致性的解决方案有很多,需要操作系统和专用软件的支持。图2是Sequent公司的NUMA系统的一个例子。有三个SMP模块通过高速专用网连接成一个节点,每个节点可以有12个CPU。像Sequent这样的系统最多可以达到64个CPU,甚至256个CPU。显然,这是SMP和NUMA技术的结合。
17,乱序执行技术
乱序执行(Out-of-orderexecution)是指CPU允许多个指令不按照程序中指定的顺序开发,并发送到相应的电路单元进行处理的技术。这样可以提前执行的指令会根据每个电路单元的状态和每个指令是否可以提前执行的具体情况,立即发送到相应的电路单元执行。在此期间,指令不会按照指定的顺序执行,然后由重排单元按照指令的顺序重新排列每个执行单元的结果。采用乱序执行技术的目的是使CPU内部电路满负荷运行,相应提高CPU运行程序的速度。分支技术:(分支)指令操作时,需要等待结果。一般情况下,无条件分支只需要按照指令的顺序执行即可,而条件分支必须根据处理后的结果再决定是否按照原来的顺序进行。
18,CPU的内存控制器
许多应用程序具有更复杂的读取模式(几乎是随机的,尤其是在缓存命中不可预测的情况下),并且不能有效利用带宽。一个典型的应用是业务处理软件。即使有乱序执行等CPU特性,也会受到内存延迟的限制。这样,CPU必须等到运行所需数据的被除数加载后才能执行指令(不管这些数据是来自CPU缓存还是主存系统)。目前低级系统的内存延迟约为120-150 ns,而CPU速度在3GHz以上,单个内存请求可能浪费200-300个CPU周期。即使当缓存命中率达到99%时,CPU也可能会花费50%的时间等待内存请求的结束——例如,因为内存延迟。
你可以看到骁龙集成内存控制器的延迟,比支持双通道DDR内存控制器的芯片组延迟低很多。英特尔还按计划在处理器内部集成了内存控制器,这使得北桥芯片变得不那么重要了。但它改变了处理器访问主存的方式,有助于提高带宽,减少内存延迟,提高处理器性能。