CPU

中央处理器

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

物理结构

CPU包括运算逻辑部件、寄存器部件和控制部件等。

逻辑部件

英文Logic components;运算逻辑部件。可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。

寄存器

寄存器部件,包括寄存器、专用寄存器和控制寄存器。 通用寄存器又可分定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。 通用寄存器是中央处理器的重要部件之一。

控制部件

英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。

微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。

简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。

主要功能

处理指令

英文Processing instructions;这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工作的正确性。

执行操作

英文Perform an action;一条指令的功能往往是由计算机中的部件执行一系列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。

控制时间

英文Control time;时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地工作。

处理数据

即对数据进行算术运算和逻辑运算,或进行其他的信息处理。

其功能主要是解释计算机指令以及处理计算机软件中的数据,并执行指令。在微型计算机中又称微处理器,计算机的所有操作都受CPU控制,CPU的性能指标直接决定了微机系统的性能指标。CPU具有以下4个方面的基本功能:数据通信,资源共享,分布式处理,提供系统可靠性。运作原理可基本分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。

工作过程

CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。

提取

第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)

解码

CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。

执行

在提取和解码阶段之后,紧接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。

例如,要求一个加法运算,算术逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里可能会设置运算溢出(Arithmetic Overflow)标志。

写回

最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。

性能参数

计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。

主频

主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。

CPU的主频=外频×倍频系数。主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。 所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz至强(Xeon)/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线、总线等各方面的性能指标。

外频

外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。

绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。

总线频率

前端总线(FSB)是将CPU连接到北桥芯片的总线。前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。

外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一亿次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。

倍频系数

倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应-CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,少量的如Intel酷睿2核心的奔腾双核E6500K和一些至尊版的CPU不锁倍频,而AMD之前都没有锁,AMD推出了黑盒版CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多)。

缓存

缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。

L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32-256KB。

L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,以前家庭用CPU容量最大的是512KB,笔记本电脑中也可以达到2M,而服务器和工作站上用CPU的L2高速缓存更高,可以达到8M以上。

L3 Cache(三级缓存),分为两种,早期的是外置,内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。

其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。

但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。

制造工艺

CPU制造工艺的微米是指IC内电路与电路之间的距离。制造工艺的趋势是向密集度愈高的方向发展。密度愈高的IC电路设计,意味着在同样大小面积的IC中,可以拥有密度更高、功能更复杂的电路设计。主要的180nm、130nm、90nm、65nm、45纳米、22nm,intel已经于2010年发布32纳米的制造工艺的酷睿i3/酷睿i5/酷睿i7系列并于2012年4月发布了22纳米酷睿i3/i5/i7系列。并且已有14nm产品的计划(据新闻报道14nm将于2013年下半年在笔记本处理器首发。)。而AMD则表示、自己的产品将会直接跳过32nm工艺(2010年第三季度生产少许32nm产品、如Orochi、Llano)于2011年中期初发布28nm的产品(APU)。TrinityAPU已在2012年10月2日正式发布,工艺仍然32nm,28nm工艺代号Kaveri反复推迟。2013年上市的28nm的Apu仅有平板与笔记本低端处理器,代号Kabini。而且鲜为人知,市场反应平常。据可靠消息,2014年上半年可能有28nm的台式Apu发布,其gpu将采用GCN架构,与高端A卡同架构。

指令集

CPU依靠指令来自计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。

从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分(指令集共有四个种类),而从具体运用看,如Intel的MMX(Multi Media Extended,此为AMD猜测的全称,Intel并没有说明词源)、SSE、SSE2(Streaming-Single instruction multiple data-Extensions 2)、SSE3、SSE4系列和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。

通常会把CPU的扩展指令集称为”CPU的指令集”。SSE3指令集也是规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。

从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。其中内核电压的大小是根据CPU的生产工艺而定,一般制作工艺越小,内核工作电压越低;I/O电压一般都在1.6~5V。低电压能解决耗电过大和发热过高的问题。

CISC

CISC指令集,也称为复杂指令集,英文名是CISC,(Complex Instruction Set Computing的缩写)。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。其实它是英特尔生产的x86系列(也就是IA-32架构)CPU及其兼容CPU,如AMD、VIA的。即使是新起的X86-64(也说成AMD64)都是属于CISC的范畴 。

要知道什么是指令集还要从当今的X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU-i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加了X87芯片,以后就将X86指令集和X87指令集统称为X86指令集。

虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386.i80486直到过去的PII至强、PIII至强、Pentium 3,Pentium 4系列,最后到今天的酷睿2系列、至强(不包括至强Nocona),但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。x86CPU主要有intel的服务器CPU和AMD的服务器CPU两类。

RISC

RISC是英文“Reduced Instruction Set Computing ”的缩写,中文意思是“精简指令集”。他是由John Cocke(约翰·科克)提出的,John Cocke在IBM公司从事的第一个项目是研究Stretch计算机(世界上第一个“超级计算机”型号),他很快成为大型机专家。1974年,Cocke和他领导的研究小组开始尝试研发每秒能够处理300线呼叫的电话交换网络。为了实现这个目标,他不得不寻找一种办法来提高交换系统已有架构的交换率。1975年,John Cocke研究了IBM370 CISC(Complex Instruction Set Computing,复杂指令集计算)系统,对CISC机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。
复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20世纪80年代RISC型CPU诞生了,相对于CISC型CPU,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。RISC指令集是高性能CPU的发展方向。它与传统的CISC(复杂指令集)相对。相比而言,RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高很多了。在中高档服务器中普遍采用这一指令系统的CPU,特别是高档服务器全都采用RISC指令系统的CPU。RISC指令系统更加适合高档服务器的操作系统Windows 7,Linux也属于类似Windows OS(UNIX)的操作系统。RISC型CPU与Intel和AMD的CPU在软件和硬件上都不兼容。

在中高档服务器中采用RISC指令的CPU主要有以下几类:PowerPC处理器、SPARC处理器、PA-RISC处理器、MIPS处理器、Alpha处理器。

IA-64

EPIC(Explicitly Parallel Instruction Computers,精确并行指令计算机)是否是RISC和CISC体系的继承者的争论已经有很多,单以EPIC体系来说,它更像Intel的处理器迈向RISC体系的重要步骤。从理论上说,EPIC体系设计的CPU,在相同的主机配置下,处理Windows的应用软件比基于Unix下的应用软件要好得多。

Intel采用EPIC技术的服务器CPU是安腾Itanium(开发代号即Merced)。它是86位处理器,也是IA-64系列中的第一款。微软也已开发了代号为Win64的操作系统,在软件上加以支持。在Intel采用了X86指令集之后,它又转而寻求更先进的86-bit微处理器,Intel这样做的原因是,它们想摆脱容量巨大的x86架构,从而引入精力充沛而又功能强大的指令集,于是采用EPIC指令集的IA-64(x92)架构便诞生了。IA-64 (x92)在很多方面来说,都比x86有了长足的进步。突破了传统IA32架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可观理性等方面获得了突破性的提高。

IA-64微处理器最大的缺陷是它们缺乏与x86的兼容,而Intel为了IA-64处理器能够更好地运行两个朝代的软件,它在IA-64处理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解码器,这样就能够把x86指令翻译为IA-64指令。这个解码器并不是最有效率的解码器,也不是运行x86代码的最好途径(最好的途径是直接在x86处理器上运行x86代码),因此Itanium 和Itanium2在运行x86应用程序时候的性能非常糟糕。这也成为X86-64产生的根本原因。

处理技术

在解释超流水线与超标量前,先了解流水线(Pipeline)。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5-6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5-6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以空间换取时间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达1.4G以上,但其运算性能却远远比不上AMD 1.2G的速龙甚至奔腾III-s。

CPU封装是采用特定的材料将CPU芯片或CPU模块固化在其中以防损坏的保护措施,一般必须在封装后CPU才能交付用户使用。CPU的封装方式取决于CPU安装形式和器件集成设计,从大的分类来看通常采用Socket插座进行安装的CPU使用PGA(栅格阵列)方式封装,而采用Slot x槽安装的CPU则全部采用SEC(单边接插盒)的形式封装。还有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封装技术。由于市场竞争日益激烈,CPU封装技术的发展方向以节约成本为主。

*多线程

同时多线程Simultaneous Multithreading,简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel从3.06GHz Pentium 4开始,部分处理器将支持SMT技术。

多核心

多核心,也指单芯片多处理器(Chip Multiprocessors,简称CMP)。CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理。与CMP比较,SMP处理器结构的灵活性比较突出。但是,当半导体工艺进入0.18微米以后,线延时已经超过了门延迟,要求微处理器的设计通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,由于CMP结构已经被划分成多个处理器核来设计,每个核都比较简单,有利于优化设计,因此更有发展前途。IBM 的Power 4芯片和Sun的MAJC5200芯片都采用了CMP结构。多核处理器可以在处理器内部共享缓存,提高缓存利用率,同时简化多处理器系统设计的复杂度。但这并不是说明,核心越多,性能越高,比如说16核的CPU就没有8核的CPU运算速度快,因为核心太多,而不能合理进行分配,所以导致运算速度减慢。在买电脑时请酌情选择。2005年下半年,Intel和AMD的新型处理器也将融入CMP结构。新安腾处理器开发代码为Montecito,采用双核心设计,拥有最少18MB片内缓存,采取90nm工艺制造。它的每个单独的核心都拥有独立的L1,L2和L3 cache,包含大约10亿支晶体管。

SMP

SMP(Symmetric Multi-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统。

构建一套SMP系统的必要条件是:支持SMP的硬件包括主板和CPU;支持SMP的系统平台,再就是支持SMP的应用软件。为了能够使得SMP系统发挥高效的性能,操作系统必须支持SMP系统,如WINNT、LINUX、以及UNIX等等32位操作系统。即能够进行多任务和多线程处理。多任务是指操作系统能够在同一时间让不同的CPU完成不同的任务;多线程是指操作系统能够使得不同的CPU并行的完成同一个任务。

要组建SMP系统,对所选的CPU有很高的要求,首先、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers–APICs)的使用;再次,相同的产品型号,同样类型的CPU核心,完全相同的运行频率;最后,尽可能保持相同的产品序列编号,因为两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机。

NUMA技术

NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache 的一致性有多种解决方案,一般采用硬件技术实现对cache的一致性维护,通常需要操作系统针对NUMA访存不一致的特性(本地内存和远端内存访存延迟和带宽的不同)进行特殊优化以提高效率,或采用特殊软件编程方法提高效率。NUMA系统的例子。这里有3个SMP模块用高速专用网络联起来,组成一个节点,每个节点可以有12个CPU。像Sequent的系统最多可以达到64个CPU甚至256个CPU。显然,这是在SMP的基础上,再用NUMA的技术加以扩展,是这两种技术的结合。

乱序执行

乱序执行(out-of-orderexecution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。

分枝技术

(branch)指令进行运算时需要等待结果,一般无条件分枝只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行。

控制器

许多应用程序拥有更为复杂的读取模式(几乎是随机地,特别是当cache hit不可预测的时候),并且没有有效地利用带宽。典型的这类应用程序就是业务处理软件,即使拥有如乱序执行(out of order execution)这样的CPU特性,也会受内存延迟的限制。这样CPU必须得等到运算所需数据被除数装载完成才能执行指令(无论这些数据来自CPU cache还是主内存系统)。当前低段系统的内存延迟大约是120-150ns,而CPU速度则达到了4GHz以上,一次单独的内存请求可能会浪费200-300次CPU循环。即使在缓存命中率(cache hit rate)达到99.9%的情况下,CPU也可能会花50%的时间来等待内存请求的结束-比如因为内存延迟的缘故。

在处理器内部整合内存控制器,使得北桥芯片将变得不那么重要,改变了处理器访问主存的方式,有助于提高带宽、降低内存延时和提升处理器性制造工艺:Intel的I5可以达到28纳米,在将来的CPU制造工艺可以达到22纳米。

在ICT的应用

在ICT的应用中,可以不考虑CPU的内部结构,把其简单地看成一个黑盒子,容易理解。其行为模型是,给它输入指令,经过其内部的运算和处理,就能输出想要的结果(数据或控制信号)。

发展历史

计算机的发展主要表现在其核心部件——微处理器的发展上,每当一款新型的微处理器出现时,就会带动计算机系统的其他部件的相应发展,如计算机体系结构的进一步优化,存储器存取容量的不断增大、存取速度的不断提高,外围设备的不断改进以及新设备的不断出现等。

根据微处理器的字长和功能,可将其发展划分为以下几个阶段。

第1阶段

第1阶段(1971——1973年)是4位和8位低档微处理器时代,通常称为第1代,其典型产品是Intel4004和Intel8008微处理器和分别由它们组成的MCS-4和MCS-8微机。基本特点是采用PMOS工艺,集成度低(4000个晶体管/片),系统结构和指令系统都比较简单,主要采用机器语言或简单的汇编语言,指令数目较少(20多条指令),基本指令周期为20~50μs,用于简单的控制场合。

Intel在1969年为日本计算机制造商Busicom的一项专案,着手开发第一款微处理器,为一系列可程式化计算机研发多款晶片。最终,英特尔在1971年11月15日向全球市场推出4004微处理器,当年Intel 4004处理器每颗售价为200美元。4004 是英特尔第一款微处理器,为日后开发系统智能功能以及个人电脑奠定发展基础,其晶体管数目约为2300颗。

第2阶段

第2阶段(1974——1977年)是8位中高档微处理器时代,通常称为第2代,其典型产品是Intel8080/8085、Motorola公司、Zilog公司的Z80等。它们的特点是采用NMOS工艺,集成度提高约4倍,运算速度提高约1015倍(基本指令执行时间12μs)。指令系统比较完善,具有典型的计算机体系结构和中断、DMA等控制功能。软件方面除了汇编语言外,还有BASIC、FORTRAN等高级语言和相应的解释程序和编译程序,在后期还出现了操作系统。

1974年,Intel推出8080处理器,并作为Altair个人电脑的运算核心,Altair在《星舰奇航》电视影集中是企业号太空船的目的地。电脑迷当时可用395美元买到一组Altair的套件。它在数个月内卖出数万套,成为史上第一款下订单后制造的机种。Intel 8080晶体管数目约为6千颗。

第3阶段

第3阶段(1978——1984年)是16位微处理器时代,通常称为第3代,其典型产品是Intel公司的8086/8088,Motorola公司的M68000,Zilog公司的Z8000等微处理器。其特点是采用HMOS工艺,集成度(20000~70000晶体管/片)和运算速度(基本指令执行时间是0.5μs)都比第2代提高了一个数量级。指令系统更加丰富、完善,采用多级中断、多种寻址方式、段式存储机构、硬件乘除部件,并配置了软件系统。这一时期著名微机产品有IBM公司的个人计算机。1981年IBM公司推出的个人计算机采用8088CPU。紧接着1982年又推出了扩展型的个人计算机IBM PC/XT,它对内存进行了扩充,并增加了一个硬磁盘驱动器。

80286(也被称为286)是英特尔首款能执行所有旧款处理器专属软件的处理器,这种软件相容性之后成为英特尔全系列微处理器的注册商标,在6年的销售期中,估计全球各地共安装了1500万部286个人电脑。Intel 80286处理器晶体管数目为13万4千颗。1984年,IBM公司推出了以80286处理器为核心组成的16位增强型个人计算机IBM PC/AT。由于IBM公司在发展个人计算机时采用 了技术开放的策略,使个人计算机风靡世界。

第4阶段

第4阶段(1985——1992年)是32位微处理器时代,又称为第4代。其典型产品是Intel公司的80386/80486,Motorola公司的M69030/68040等。其特点是采用HMOS或CMOS工艺,集成度高达100万个晶体管/片,具有32位地址线和32位数据总线。每秒钟可完成600万条指令(Million Instructions Per Second,MIPS)。微型计算机的功能已经达到甚至超过超级小型计算机,完全可以胜任多任务、多用户的作业。同期,其他一些微处理器生产厂商(如AMD、TEXAS等)也推出了80386/80486系列的芯片。

80386DX的内部和外部数据总线是32位,地址总线也是32位,可以寻址到4GB内存,并可以管理64TB的虚拟存储空间。它的运算模式除了具有实模式和保护模式以外,还增加了一种“虚拟86”的工作方式,可以通过同时模拟多个8086微处理器来提供多任务能力。80386SX是Intel为了扩大市场份额而推出的一种较便宜的普及型CPU,它的内部数据总线为32位,外部数据总线为16位,它可以接受为80286开发的16位输入/输出接口芯片,降低整机成本。80386SX推出后,受到市场的广泛的欢迎,因为80386SX的性能大大优于80286,而价格只是80386的三分之一。Intel 80386 微处理器内含275,000 个晶体管—比当初的4004多了100倍以上,这款32位元处理器首次支持多工任务设计,能同时执行多个程序。Intel 80386晶体管数目约为27万5千颗。

1989年,我们大家耳熟能详的80486芯片由英特尔推出。这款经过四年开发和3亿美元资金投入的芯片的伟大之处在于它首次实破了100万个晶体管的界限,集成了120万个晶体管,使用1微米的制造工艺。80486的时钟频率从25MHz逐步提高到33MHz、40MHz、50MHz。

80486是将80386和数学协微处理器80387以及一个8KB的高速缓存集成在一个芯片内。80486中集成的80487的数字运算速度是以前80387的两倍,内部缓存缩短了微处理器与慢速DRAM的等待时间。并且,在80x86系列中首次采用了RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。它还采用了突发总线方式,大大提高了与内存的数据交换速度。由于这些改进,80486的性能比带有80387数学协微处理器的80386 DX性能提高了4倍。

第5阶段

第5阶段(1993-2005年)是奔腾(pentium)系列微处理器时代,通常称为第5代。典型产品是Intel公司的奔腾系列芯片及与之兼容的AMD的K6、K7系列微处理器芯片。内部采用了超标量指令流水线结构,并具有相互独立的指令和数据高速缓存。随着MMX(Multi Media eXtended)微处理器的出现,使微机的发展在网络化、多媒体化和智能化等方面跨上了更高的台阶。

1997年推出的Pentium II处理器结合了Intel MMX技术,能以极高的效率处理影片、音效、以及绘图资料,首次采用Single Edge Contact (S.E.C) 匣型封装,内建了高速快取记忆体。这款晶片让电脑使用者撷取、编辑、以及透过网络和亲友分享数位相片、编辑与新增文字、音乐或制作家庭电影的转场效果、使用可视电话以及透过标准电话线与网际网络传送影片,Intel Pentium II处理器晶体管数目为750万颗。

1999年推出的Pentium III处理器加入70个新指令,加入网际网络串流SIMD延伸集称为MMX,能大幅提升先进影像、3D、串流音乐、影片、语音辨识等应用的性能,它能大幅提升网际网络的使用经验,让使用者能浏览逼真的线上博物馆与商店,以及下载高品质影片,Intel首次导入0.25微米技术,Intel Pentium III晶体管数目约为950万颗。

与此同年,英特尔还发布了Pentium IIIXeon处理器。作为Pentium II Xeon的后继者,除了在内核架构上采纳全新设计以外,也继承了Pentium III处理器新增的70条指令集,以更好执行多媒体、流媒体应用软件。除了面对企业级的市场以外,Pentium III Xeon加强了电子商务应用与高阶商务计算的能力。在缓存速度与系统总线结构上,也有很多进步,很大程度提升了性能,并为更好的多处理器协同工作进行了设计。

2000年英特尔发布了Pentium 4处理器。用户使用基于Pentium 4处理器的个人电脑,可以创建专业品质的影片,透过因特网传递电视品质的影像,实时进行语音、影像通讯,实时3D渲染,快速进行MP3编码解码运算,在连接因特网时运行多个多媒体软件。

Pentium 4处理器集成了4200万个晶体管,到了改进版的Pentium 4(Northwood)更是集成了5千5百万个晶体管;并且开始采用0.18微米进行制造,初始速度就达到了1.5GHz。

Pentium 4还提供的SSE2指令集,这套指令集增加144个全新的指令,在128bit压缩的数据,在SSE时,仅能以4个单精度浮点值的形式来处理,而在SSE2指令集,该资料能采用多种数据结构来处理:

4个单精度浮点数(SSE)对应2个双精度浮点数(SSE2);对应16字节数(SSE2);对应8个字数(word);对应4个双字数(SSE2);对应2个四字数(SSE2);对应1个128位长的整数(SSE2) 。

2003年英特尔发布了Pentium M(mobile)处理器。以往虽然有移动版本的Pentium II、III,甚至是Pentium 4-M产品,但是这些产品仍然是基于台式电脑处理器的设计,再增加一些节能,管理的新特性而已。即便如此,Pentium III-M和Pentium 4-M的能耗远高于专门为移动运算设计的CPU,例如全美达的处理器。

英特尔Pentium M处理器结合了855芯片组家族与Intel PRO/Wireless2100网络联机技术,成为英特尔Centrino(迅驰)移动运算技术的最重要组成部分。Pentium M处理器可提供高达1.60GHz的主频速度,并包含各种效能增强功能,如:最佳化电源的400MHz系统总线、微处理作业的融合(Micro-OpsFusion)和专门的堆栈管理器(Dedicated Stack Manager),这些工具可以快速执行指令集并节省电力。

2005年Intel推出的双核心处理器有Pentium D和Pentium Extreme Edition,同时推出945/955/965/975芯片组来支持新推出的双核心处理器,采用90nm工艺生产的这两款新推出的双核心处理器使用是没有针脚的LGA 775接口,但处理器底部的贴片电容数目有所增加,排列方式也有所不同。

桌面平台的核心代号Smithfield的处理器,正式命名为Pentium D处理器,除了摆脱阿拉伯数字改用英文字母来表示这次双核心处理器的世代交替外,D的字母也更容易让人联想起Dual-Core双核心的涵义。

Intel的双核心构架更像是一个双CPU平台,Pentium D处理器继续沿用Prescott架构及90nm生产技术生产。Pentium D内核实际上由于两个独立的Prescott核心组成,每个核心拥有独立的1MB L2缓存及执行单元,两个核心加起来一共拥有2MB,但由于处理器中的两个核心都拥有独立的缓存,因此必须保证每个二级缓存当中的信息完全一致,否则就会出现运算错误。

为了解决这一问题,Intel将两个核心之间的协调工作交给了外部的MCH(北桥)芯片,虽然缓存之间的数据传输与存储并不巨大,但由于需要通过外部的MCH芯片进行协调处理,毫无疑问的会对整个的处理速度带来一定的延迟,从而影响到处理器整体性能的发挥。

由于采用Prescott内核,因此Pentium D也支持EM64T技术、XD bit安全技术。值得一提的是,Pentium D处理器将不支持Hyper-Threading技术。原因很明显:在多个物理处理器及多个逻辑处理器之间正确分配数据流、平衡运算任务并非易事。比如,如果应用程序需要两个运算线程,很明显每个线程对应一个物理内核,但如果有3个运算线程呢?因此为了减少双核心Pentium D架构复杂性,英特尔决定在针对主流市场的Pentium D中取消对Hyper-Threading技术的支持。

同出自Intel之手,而且Pentium D和Pentium Extreme Edition两款双核心处理器名字上的差别也预示着这两款处理器在规格上也不尽相同。其中它们之间最大的不同就是对于超线程(Hyper-Threading)技术的支持。Pentium D不支持超线程技术,而Pentium Extreme Edition则没有这方面的限制。在打开超线程技术的情况下,双核心Pentium Extreme Edition处理器能够模拟出另外两个逻辑处理器,可以被系统认成四核心系统。

Pentium EE系列都采用三位数字的方式来标注,形式是Pentium EE8xx或9xx,例如Pentium EE840等等,数字越大就表示规格越高或支持的特性越多。

Pentium EE 8x0:表示这是Smithfield核心、每核心1MB二级缓存、800MHzFSB的产品,其与Pentium D 8x0系列的唯一区别仅仅只是增加了对超线程技术的支持,除此之外其它的技术特性和参数都完全相同。

Pentium EE 9x5:表示这是Presler核心、每核心2MB二级缓存、1066MHzFSB的产品,其与Pentium D 9x0系列的区别只是增加了对超线程技术的支持以及将前端总线提高到1066MHzFSB,除此之外其它的技术特性和参数都完全相同。

单核心的Pentium 4、Pentium 4 EE、Celeron D以及双核心的Pentium D和Pentium EE等CPU采用LGA775封装。与以前的Socket 478接口CPU不同,LGA 775接口CPU的底部没有传统的针脚,而代之以775个触点,即并非针脚式而是触点式,通过与对应的LGA 775插槽内的775根触针接触来传输信号。LGA 775接口不仅能够有效提升处理器的信号强度、提升处理器频率,同时也可以提高处理器生产的良品率、降低生产成本。

第6阶段

第6阶段(2005年至今)是酷睿(core)系列微处理器时代,通常称为第6代。“酷睿”是一款领先节能的新型微架构,设计的出发点是提供卓然出众的性能和能效,提高每瓦特性能,也就是所谓的能效比。早期的酷睿是基于笔记本处理器的。 酷睿2:英文名称为Core 2 Duo,是英特尔在2006年推出的新一代基于Core微架构的产品体系统称。于2006年7月27日发布。酷睿2是一个跨平台的构架体系,包括服务器版、桌面版、移动版三大领域。其中,服务器版的开发代号为Woodcrest,桌面版的开发代号为Conroe,移动版的开发代号为Merom。

酷睿2处理器的Core微架构是Intel的以色列设计团队在Yonah微架构基础之上改进而来的新一代英特尔架构。最显著的变化在于在各个关键部分进行强化。为了提高两个核心的内部数据交换效率采取共享式二级缓存设计,2个核心共享高达4MB的二级缓存。

继LGA775接口之后,Intel首先推出了LGA1366平台,定位高端旗舰系列。首颗采用LGA 1366接口的处理器代号为Bloomfield,采用经改良的Nehalem核心,基于45纳米制程及原生四核心设计,内建8-12MB三级缓存。LGA1366平台再次引入了Intel超线程技术,同时QPI总线技术取代了由Pentium 4时代沿用至今的前端总线设计。最重要的是LGA1366平台是支持三通道内存设计的平台,在实际的效能方面有了更大的提升,这也是LGA1366旗舰平台与其他平台定位上的一个主要区别。

作为高端旗舰的代表,早期LGA1366接口的处理器主要包括45nm Bloomfield核心酷睿i7四核处理器。随着Intel在2010年迈入32nm工艺制程,高端旗舰的代表被酷睿i7-980X处理器取代,全新的32nm工艺解决六核心技术,拥有最强大的性能表现。对于准备组建高端平台的用户而言,LGA1366依然占据着高端市场,酷睿i7-980X以及酷睿i7-950依旧是不错的选择。

Core i5是一款基于Nehalem架构的四核处理器,采用整合内存控制器,三级缓存模式,L3达到8MB,支持Turbo Boost等技术的新处理器电脑配置。它和Core i7(Bloomfield)的主要区别在于总线不采用QPI,采用的是成熟的DMI(Direct Media Interface),并且只支持双通道的DDR3内存。结构上它用的是LGA1156 接口,i5有睿频技术,可以在一定情况下超频。LGA1156接口的处理器涵盖了从入门到高端的不同用户,32nm工艺制程带来了更低的功耗和更出色的性能。主流级别的代表有酷睿i5-650/760,中高端的代表有酷睿i7-870/870K等。我们可以明显的看出Intel在产品命名上的定位区分。但是整体来看中高端LGA1156处理器比低端入门更值得选购,面对AMD的低价策略,Intel酷睿i3系列处理器完全无法在性价比上与之匹敌。而LGA1156中高端产品在性能上表现更加抢眼。

Core i3可看作是Core i5的进一步精简版(或阉割版),将有32nm工艺版本(研发代号为Clarkdale,基于Westmere架构)这种版本。Core i3最大的特点是整合GPU(图形处理器),也就是说Core i3将由CPU+GPU两个核心封装而成。由于整合的GPU性能有限,用户想获得更好的3D性能,可以外加显卡。值得注意的是,即使是Clarkdale,显示核心部分的制作工艺仍会是45nm。i3 i5 区别最大之处是 i3没有睿频技术。代表有酷睿i3-530/540。

2010年6月,Intel再次发布革命性的处理器——第二代Core i3/i5/i7。第二代Core i3/i5/i7隶属于第二代智能酷睿家族,全部基于全新的Sandy Bridge微架构,相比第一代产品主要带来五点重要革新:1、采用全新32nm的Sandy Bridge微架构,更低功耗、更强性能。2、内置高性能GPU(核芯显卡),视频编码、图形性能更强。 3、睿频加速技术2.0,更智能、更高效能。4、引入全新环形架构,带来更高带宽与更低延迟。5、全新的AVX、AES指令集,加强浮点运算与加密解密运算。

SNB(Sandy Bridge)是英特尔在2011年初发布的新一代处理器微架构,这一构架的最大意义莫过于重新定义了“整合平台”的概念,与处理器“无缝融合”的“核芯显卡”终结了“集成显卡”的时代。这一创举得益于全新的32nm制造工艺。由于Sandy Bridge 构架下的处理器采用了比之前的45nm工艺更加先进的32nm制造工艺,理论上实现了CPU功耗的进一步降低,及其电路尺寸和性能的显著优化,这就为将整合图形核心(核芯显卡)与CPU封装在同一块基板上创造了有利条件。此外,第二代酷睿还加入了全新的高清视频处理单元。视频转解码速度的高与低跟处理器是有直接关系的,由于高清视频处理单元的加入,新一代酷睿处理器的视频处理时间比老款处理器至少提升了30%。新一代Sandy Bridge处理器采用全新LGA1155接口设计,并且无法与LGA1156接口兼容。Sandy Bridge是将取代Nehalem的一种新的微架构,不过仍将采用32nm工艺制程。比较吸引人的一点是这次Intel不再是将CPU核心与GPU核心用“胶水”粘在一起,而是将两者真正做到了一个核心里。

在2012年4月24日下午北京天文馆,intel正式发布了Ivy Bridge(IVB)处理器。22nm Ivy Bridge会将执行单元的数量翻一番,达到最多24个,自然会带来性能上的进一步跃进。Ivy Bridge会加入对DX11的支持的集成显卡。另外新加入的XHCI USB 3.0控制器则共享其中四条通道,从而提供最多四个USB 3.0,从而支持原生USB3.0。cpu的制作采用3D晶体管技术,CPU耗电量会减少一半。采用22nm工艺制程的Ivy Bridge架构产品将延续LGA1155平台的寿命,因此对于打算购买LGA1155平台的用户来说,起码一年之内不用担心接口升级的问题了。

2013年6月4日intel 发表四代CPU“Haswell”,第四代CPU脚位(CPU接槽)称为Intel LGA1150,主机板名称为Z87、H87、Q87等8系列晶片组,Z87为超频玩家及高阶客群,H87为中低阶一般等级,Q87为企业用。Haswell CPU 将会用于笔记型电脑、桌上型CEO套装电脑以及 DIY零组件CPU,陆续替换现行的第三世代Ivy Bridge。
  


CPU_第1张图片
CPU梯形图

参考资料

百度百科

你可能感兴趣的:(CPU)