中央处理器
wish8088 · 2010-03-13 11:13 · 34918 次点击
目录
基本简介
组成结构
运作原理
性能指标
扩展指令
超流水线与超标量
封装形式
发展历程
相关技术
生产厂商
制造CPU的基本原料
CPU制造的准备阶段
基本简介
中央处理器
中央处理器
中央处理器(CentralProcessingUnit,CPU),是电子计算机的主要设备之一。其功能主要是解释计算机指令以及处理计算机软件中的数据。所谓的计算机的可编程性主要是指对CPU的编程。CPU、内部存储器和输入/输出设备是现代电脑的三大核心部件。由(zh-hans:集成电路;zh-hant:积体电路)制造的CPU,20世纪70年代以前,本来是由数个独立单元构成,後来发展出微处理器把CPU复杂的电路可以作成单一微小功能强大的单元。
“中央处理器”这个名称,是对一系列可以执行复杂的-(zh-hans:计算机程序;zh-hant:电脑程式)-的逻辑机器的描述。这个空泛的定义很容易的将在“CPU”这个名称被普遍使用之前的早期的计算机也包括在内。无论如何,至少从20世纪60年代早期开始,这个名称及其缩写已开始在电子计算机产业中得到广泛应用。尽管与早期相比,“中央处理器”在物理形态、设计制造和具体任务的执行上有了戏剧性的发展,但是其基本的操作原理一直没有改变。
早期的中央处理器通常是为大型及特定应用的计算机而订制。但是,这种昂贵为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。IC使得更为复杂的CPU可以在很小的空间中设计和制造(在微米的量级)。CPU的标准化和小型化都使得这一类数字设备(港译-电子零件)在现代生活中的出现频率远远超过有限应用专用的计算机。现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。
组成结构
中央处理器
中央处理器CPU包括运算逻辑部件、寄存器部件和控制部件。中央处理器从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。
①运算逻辑部件。可以执行定点或浮点的算术运算操作、移位操作以及逻辑操作,也可执行地址的运算和转换。
②寄存器部件。包括通用寄存器、专用寄存器和控制寄存器。通用寄存器又可分定点数和浮点数两类,它们用来保存指令中的寄存器操作数和操作结果。通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。
③控制部件。主要负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。
运作原理
中央处理器
CPU的主要运作原理,不论其外观,都是执行储存於被称为程式里的一系列指令。在此讨论的是遵循普遍的-(zh-hans:冯·诺伊曼;zh-hant:冯·纽曼)-架构设计的装置。程式以一系列数字储存在电脑记忆体中。差不多所有的-(zh-hans:冯·诺伊曼;zh-hant:冯·纽曼)-CPU的运作原理可分为四个阶段:提取(fetch)、解码(decode)、执行(execute)和写回(writeback)。
第一阶段,提取,从程式记忆体中检索指令(为数值或一系列数值)。由程式计数器(PC)指定程式记忆体的位置,程式计数器保存供识别目前程式位置的数值。换言之,程式计数器记录了CPU在目前程式里的踪迹。提取指令之後,PC根据指令式长度增加记忆体单元。指令的提取常常必须从相对较慢的记忆体寻找,导致CPU等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构(见下)。
CPU根据从记忆体提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的资讯,诸如一个加法(addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值),或是一个空间的定址值:暂存器或记忆体位址,以定址模式决定。在旧的设计中,CPU里的指令解码部分是无法改变的硬体装置。不过在众多抽象且复杂的CPU和ISA中,一个微程式时常用来帮助转换指令为各种形态的讯号。这些微程式在已成品的CPU中往往可以重写,方便变更解码指令。
中央处理器
在提取和解码阶段之後,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。例如,要求一个加法运算,算数逻辑单元(ALU,arithmeticlogicunit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而且在输出将含有总和结果。ALU内含电路系统,以於输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里,运算溢出(arithmeticoverflow)标志可能会被设置(参见以下的数值精度探讨)。
最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果极常被写进CPU内部的暂存器,以供随後指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体。某些类型的指令会操作程式计数器,而不直接产生结果资料。这些一般称作“跳转”(jumps)并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令也会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由於它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随後的跳转指令来决定程式动向。
在执行指令并写回结果资料之後,程式计数器的值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程式计数器将会修改成跳转到的指令位址,且程式继续正常执行。许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典RISC管线”,那些实际上是在众多使用简单CPU的电子装置中快速普及(常称为微控制器(microcontrollers))。
性能指标
中央处理器
CPU主要的性能指标有:
主频主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一块1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,我们也可以看到这样的例子:1GHzItanium芯片能够表现得差不多跟2.66GHzXeon/Opteron一样快,或是1.5GHzItanium2大约跟4GHzXeon/Opteron一样快。CPU的运算速度还要看CPU的流水线的各方面的性能指标。当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
外频外频是CPU的基准频率,单位也是MHz。CPU的外频决定着整块主板的运行速度。说白了,在台式机中,我们所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态。外频与前端总线(FSB)频率很容易被混为一谈,下面的前端总线介绍我们谈谈两者的区别。
中央处理器
前端总线(FSB)频率前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,现在的支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一千万次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。其实现在“HyperTransport”构架的出现,让这种实际意义上的前端总线(FSB)频率发生了变化。之前我们知道IA-32架构必须有三大重要的构件:内存控制器Hub(MCH),I/O控制器Hub和PCIHub,像Intel很典型的芯片组Intel7501、Intel7505芯片组,为双至强处理器量身定做的,它们所包含的MCH为CPU提供了频率为533MHz的前端总线,配合DDR内存,前端总线带宽可达到4.3GB/秒。但随着处理器性能不断提高同时给系统架构带来了很多问题。而“HyperTransport”构架不但解决了问题,而且更有效地提高了总线带宽,比方AMDOpteron处理器,灵活的HyperTransportI/O总线体系结构让它整合了内存控制器,使处理器不通过系统总线传给芯片组而直接和内存交换数据。这样的话,前端总线(FSB)频率在AMDOpteron处理器就不知道从何谈起了。
中央处理器
CPU的位和字长位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。
倍频系数倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高倍频而得到高主频的CPU就会出现明显的“瓶颈”效应—CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,而AMD之前都没有锁。
缓存缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。L1Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32—256KB。
中央处理器
L2Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量最大的是512KB,而服务器和工作站上用CPU的L2高速缓存更高达256KB-1MB,有的高达2MB或者3MB。
L3Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MBL3缓存的Itanium2处理器,和以后24MBL3缓存的双核心Itanium2处理器。但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MBL3缓存的XeonMP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。
扩展指令
中央处理器
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(MultiMediaExtended)、SSE、SSE2(Streaming-Singleinstructionmultipledata-Extensions2)、SEE3和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。我们通常会把CPU的扩展指令集称为“CPU的指令集”。SSE3指令集也是目前规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。目前SSE3也是最先进的指令集,英特尔Prescott处理器已经支持SSE3指令集,AMD会在未来双核心处理器当中加入对SSE3指令集的支持,全美达的处理器也将支持这一指令集。CPU内核和I/O工作电压,从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。其中内核电压的大小是根据CPU的生产工艺而定,一般制作工艺越小,内核工作电压越低;I/O电压一般都在1.6~5V。低电压能解决耗电过大和发热过高的问题。
CPU制造工艺
制造工艺的微米是指IC内电路与电路之间的距离。制造工艺的趋势是向密集度愈高的方向发展。密度愈高的IC电路设计,意味着在同样大小面积的IC中,可以拥有密度更高、功能更复杂的电路设计。现在主要的180nm、130nm、90nm、65nm。Intel公司更于2007年11月16日发布了45nm的制造工艺。
中央处理器
CPU指令集
(1)CISC指令集
CISC指令集,也称为复杂指令集,英文名是CISC,(ComplexInstructionSetComputer的缩写)。在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至强、Pentium3,最后到今天的Pentium4系列、至强(不包括至强Nocona),但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于IntelX86系列及其兼容CPU(如AMDAthlonMP、)都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。x86CPU目前主要有intel的服务器CPU和AMD的服务器CPU两类。
(2)RISC指令集
RISC是英文“ReducedInstructionSetComputing”的缩写,中文意思是“精简指令集”。它是在CISC指令系统基础上发展起来的,有人对CISC机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20世纪80年代RISC型CPU诞生了,相对于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处理器。
中央处理器
(3)IA-64
EPIC(ExplicitlyParallelInstructionComputers,精确并行指令计算机)是否是RISC和CISC体系的继承者的争论已经有很多,单以EPIC体系来说,它更像Intel的处理器迈向RISC体系的重要步骤。从理论上说,EPIC体系设计的CPU,在相同的主机配置下,处理Windows的应用软件比基于Unix下的应用软件要好得多。Intel采用EPIC技术的服务器CPU是安腾Itanium(开发代号即Merced)。它是64位处理器,也是IA-64系列中的第一款。微软也已开发了代号为Win64的操作系统,在软件上加以支持。在Intel采用了X86指令集之后,它又转而寻求更先进的64-bit微处理器,Intel这样做的原因是,它们想摆脱容量巨大的x86架构,从而引入精力充沛而又功能强大的指令集,于是采用EPIC指令集的IA-64架构便诞生了。IA-64在很多方面来说,都比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产生的根本原因。
中央处理器
(4)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模式和Compatibilitymode兼容模式)。该标准已经被引进在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的处理器中将没有提供。
超流水线与超标量
中央处理器
在解释超流水线与超标量前,先了解流水线(pipeline)。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如Pentium4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达1.4G以上,但其运算性能却远远比不上AMD1.2G的速龙甚至奔腾III。
封装形式
中央处理器
CPU封装是采用特定的材料将CPU芯片或CPU模块固化在其中以防损坏的保护措施,一般必须在封装后CPU才能交付用户使用。CPU的封装方式取决于CPU安装形式和器件集成设计,从大的分类来看通常采用Socket插座进行安装的CPU使用PGA(栅格阵列)方式封装,而采用Slotx槽安装的CPU则全部采用SEC(单边接插盒)的形式封装。现在还有PLGA(PlasticLandGridArray)、OLGA(OrganicLandGridArray)等封装技术。由于市场竞争日益激烈,目前CPU封装技术的发展方向以节约成本为主。
同时多线程(Simultaneousmultithreading),简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel从3.06GHzPentium4开始,所有处理器都将支持SMT技术。
发展历程
中央处理器
任何东西从发展到壮大都会经历一个过程,CPU能够发展到今天这个规模和成就,其中的发展史更是耐人寻味。作为电脑之“芯”的CPU也不例外,本文让我们进入时间不长却风云激荡的CPU发展历程中去。在这个回顾的过程中,我们主要叙述了目前两大CPU巨头——Intel和AMD的产品发展历程,对于其他的CPU公司,例如Cyrix和IDT等,因为其产品我们极少见到,篇幅所限我们就不再累述了。
一、X86时代的CPU
CPU的溯源可以一直去到1971年。在那一年,当时还处在发展阶段的INTEL公司推出了世界上第一台微处理器4004。这不但是第一个用于计算器的4位微处理器,也是第一款个人有能力买得起的电脑处理器。4004含有2300个晶体管,功能相当有限,而且速度还很慢,被当时的蓝色巨人IBM以及大部分商业用户不屑一顾,但是它毕竟是划时代的产品,从此以后,INTEL便与微处理器结下了不解之缘。可以这么说,CPU的历史发展历程其实也就是INTEL公司X86系列CPU的发展历程,我们就通过它来展开我们的“CPU历史之旅”。
1978年,Intel公司再次领导潮流,首次生产出16位的微处理器,并命名为i8086,同时还生产出与之相配合的数学协处理器i8087,这两种芯片使用相互兼容的指令集,但在i8087指令集中增加了一些专门用于对数、指数和三角函数等数学计算指令。由于这些指令集应用于i8086和i8087,所以人们也这些指令集统一称之为X86指令集。虽然以后Intel又陆续生产出第二代、第三代等更先进和更快的新型CPU,但都仍然兼容原来的X86指令,而且Intel在后续CPU的命名上沿用了原先的X86序列,直到后来因商标注册问题,才放弃了继续用阿拉伯数字命名。至于在后来发展壮大的其他公司,例如AMD和Cyrix等,在486以前(包括486)的CPU都是按Intel的命名方式为自己的X86系列CPU命名,但到了586时代,市场竞争越来越厉害了,由于商标注册问题,它们已经无法继续使用与Intel的X86系列相同或相似的命名,只好另外为自己的586、686兼容CPU命名了。
中央处理器
1979年,INTEL公司推出了8088芯片,它仍旧是属于16位微处理器,内含29000个晶体管,时钟频率为4.77MHz,地址总线为20位,可使用1MB内存。8088内部数据总线都是16位,外部数据总线是8位,而它的兄弟8086是16位。1981年8088芯片首次用于IBMPC机中,开创了全新的微机时代。也正是从8088开始,PC机(个人电脑)的概念开始在全世界范围内发展起来。
1982年,许多年轻的读者尚在襁褓之中的时候,INTE已经推出了划时代的最新产品枣80286芯片,该芯片比8006和8088都有了飞跃的发展,虽然它仍旧是16位结构,但是在CPU的内部含有13.4万个晶体管,时钟频率由最初的6MHz逐步提高到20MHz。其内部和外部数据总线皆为16位,地址总线24位,可寻址16MB内存。从80286开始,CPU的工作方式也演变出两种来:实模式和保护模式。
1985年INTEL推出了80386芯片,它是80X86系列中的第一种32位微处理器,而且制造工艺也有了很大的进步,与80286相比,80386内部内含27.5万个晶体管,时钟频率为12.5MHz,后提高到20MHz,25MHz,33MHz。80386的内部和外部数据总线都是32位,地址总线也是32位,可寻址高达4GB内存。它除具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力。除了标准的80386芯片,也就是我们以前经常说的80386DX外,出于不同的市场和应用考虑,INTEL又陆续推出了一些其它类型的80386芯片:80386SX、80386SL、80386DL等。1988年推出的80386SX是市场定位在80286和80386DX之间的一种芯片,其与80386DX的不同在于外部数据总线和地址总线皆与80286相同,分别是16位和24位(即寻址能力为16MB)。1990年推出的80386SL和80386DL都是低功耗、节能型芯片,主要用于便携机和节能型台式机。80386SL与80386DL的不同在于前者是基于80386SX的,后者是基于80386DX的,但两者皆增加了一种新的工作方式:系统管理方式(SMM)。当进入系统管理方式后,CPU就自动降低运行速度、控制显示屏和硬盘等其它部件暂停工作,甚至停止运行,进入“休眠”状态,以达到节能目的。
中央处理器
1989年,我们大家耳熟能详的80486芯片由INTEL推出,这种芯片的伟大之处就在于它实破了100万个晶体管的界限,集成了120万个晶体管。80486的时钟频率从25MHz逐步提高到33MHz、50MHz。80486是将80386和数学协处理器80387以及一个8KB的高速缓存集成在一个芯片内,并且在80X86系列中首次采用了RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。它还采用了突发总线方式,大大提高了与内存的数据交换速度。由于这些改进,80486的性能比带有80387数学协处理器的80386DX提高了4倍。80486和80386一样,也陆续出现了几种类型。上面介绍的最初类型是80486DX。1990年推出了80486SX,它是486类型中的一种低价格机型,其与80486DX的区别在于它没有数学协处理器。80486DX2由系用了时钟倍频技术,也就是说芯片内部的运行速度是外部总线运行速度的两倍,即芯片内部以2倍于系统时钟的速度运行,但仍以原有时钟速度与外界通讯。80486DX2的内部时钟频率主要有40MHz、50MHz、66MHz等。80486DX4也是采用了时钟倍频技术的芯片,它允许其内部单元以2倍或3倍于外部总线的速度运行。为了支持这种提高了的内部工作频率,它的片内高速缓存扩大到16KB。80486DX4的时钟频率为100MHz,其运行速度比66MHz的80486DX2快40%。80486也有SL增强类型,其具有系统管理方式,用于便携机或节能型台式机。
二、奔腾时代的CPU
1、奔腾开端
继承着80486大获成功的东风,INTEL在1993年推出了全新一代的高性能处理器——奔腾。由于CPU市场的竞争越来越趋向于激烈化,INTEL觉得不能再让AMD和其他公司用同样的名字来抢自己的饭碗了,于是提出了商标注册,由于在美国的法律里面是不能用阿拉伯数字注册的,于是INTEL玩了哥花样,用拉丁文去注册商标。奔腾在拉丁文里面就是“五”的意思了。INTEL公司还替它起了一个相当好听的中文名字——奔腾。奔腾的厂家代号是P54C,奔腾的内部含有的晶体管数量高达310万个,时钟频率由最初推出的60MHZ和66MHZ,后提高到200MHZ。单单是最初版本的66MHZ的奔腾微处理器,它的运算性能比33MHZ的80486DX就提高了3倍多,而100MHZ的奔腾则比33MHZ的80486DX要快6至8倍。也就是从奔腾开始,我们大家有了超频这样一个用尽量少的钱换取尽量多的性能的好方法。作为世界上第一个586级处理器,奔腾也是第一个令人超频的最多的处理器,由于奔腾的制造工艺优良,所以整个系列的CPU的浮点性能也是各种各样性能是CPU中最强的,可超频性能最大,因此赢得了586级CPU的大部分市场。奔腾家族里面的频率有60/66/75//90/100/120/133/150/166/200,至于CPU的内部频率则是从60MHz到66MHz不等。值得一提的是,从奔腾75开始,CPU的插座技术正式从以前的Socket4转换到同时支持Socket5和7同时支持,其中Socket7还一直沿用至今。而且所有的奔腾CPU里面都已经内置了16K的一级缓存,这样使它的处理性能更加强大。
中央处理器
与此同时,AMD公司也不甘示弱推出了K5系列的CPU。(AMD公司也改名字了!)它的频率一共有六种:75/90/100/120/133/166,内部总线的频率和奔腾差不多,都是60或者66MHz,虽然它在浮点运算方面比不上奔腾,但是由于K5系列CPU都内置了24KB的一级缓存,比奔腾内置的16KB多出了一半,因此在整数运算和系统整体性能方面甚至要高于同频率的奔腾。即便如此,因为k5系列的交付日期一再后拖,AMD公司在“586”级别的竞争中最终还是败给了INTEL。1、初受挫折——奔腾Pro:CPU市场的INTEL并没有停下自己的脚步,在其他公司还在不断追赶自己的奔腾之际,又在1996年推出了最新一代的第六代X86系列CPU——P6。P6只是它的研究代号,上市之后P6有了一个非常响亮的名字——奔腾Pro。PentimuPro的内部含有高达550万个的晶体管,内部时钟频率为133MHZ,处理速度几乎是100MHZ的奔腾的2倍。PentimuPro的一级(片内)缓存为8KB指令和8KB数据。
值得注意的是在PentimuPro的一个封装中除PentimuPro芯片外还包括有一个256KB的二级缓存芯片,两个芯片之间用高频宽的内部通讯总线互连,处理器与高速缓存的连接线路也被安置在该封装中,这样就使高速缓存能更容易地运行在更高的频率上。奔腾Pro200MHZCPU的L2CACHE就是运行在200MHZ,也就是工作在与处理器相同的频率上。这样的设计领奔腾Pro达到了最高的性能。而PentimuPro最引人注目的地方是它具有一项称为“动态执行”的创新技术,这是继奔腾在超标量体系结构上实现实破之后的又一次飞跃。PentimuPro系列的工作频率是150/166/180/200,一级缓存都是16KB,而前三者都有256KB的二级缓存,至于频率为200的CPU还分为三种版本,不同就在于他们的内置的缓存分别是256KB,512KB,1MB。不过由于当时缓存技术还没有成熟,加上当时缓存芯片还非常昂贵,因此尽管PentimuPro性能不错,但远没有达到抛离对手的程度,加上价格十分昂贵,一次PentimuPro实际上出售的数目非常至少,市场生命也非常的短,PentimuPro可以说是Intel第一个失败的产品。
2、辉煌的开始——奔腾MMX
INTEL吸取了奔腾Pro的教训,在1996年底推出了奔腾系列的改进版本,厂家代号P55C,也就是我们平常所说的奔腾MMX(多能奔腾)。这款处理器并没有集成当时卖力不讨好的二级缓存,而是独辟蹊径,采用MMX技术去增强性能。
中央处理器
MMX技术是INTEL最新发明的一项多媒体增强指令集技术,它的英文全称可以翻译“多媒体扩展指令集”。MMX是Intel公司在1996年为增强奔腾CPU在音像、图形和通信应用方面而采取的新技术,为CPU增加了57条MMX指令,除了指令集中增加MMX指令外,还将CPU芯片内的L1缓存由原来的16KB增加到32KB(16K指命16K数据),因此MMXCPU比普通CPU在运行含有MMX指令的程序时,处理多媒体的能力上提高了60%左右。MMX技术不但是一个创新,而且还开创了CPU开发的新纪元,后来的SSE,3DNOW。等指令集也是从MMX发展演变过来的。
在Intel推出奔腾MMX的几个月后,AM也推出了自己研制的新产品K6。K6系列CPU一共有五种频率,分别是:166/200/233/266/300,五种型号都采用了66外频,但是后来推出的233/266/300已经可以通过升级主板的BIOS而支持100外频,所以CPU的性能得到了一个飞跃。特别值得一提的是他们的一级缓存都提高到了64KB,比MMX足足多了一倍,因此它的商业性能甚至还优于奔腾MMX,但由于缺少了多媒体扩展指令集这道杀手锏,K6在包括游戏在内的多媒体性能要逊于奔腾MMX。
3、优势的确立——奔腾Ⅱ
1997年五月,INTEL又推出了和奔腾Pro同一个级别的产品,也就是影响力最大的CPU——奔腾Ⅱ。第一代奔腾Ⅱ核心称为Klamath。作为奔腾Ⅱ的第一代芯片,它运行在66MHz总线上,主频分233、266、300、333Mhz四种,接着又推出100Mhz总线的奔腾Ⅱ,频率有300、350、400、450Mhz。奔腾II采用了与奔腾Pro相同的核心结构,从而继承了原有奔腾Pro处理器优秀的32位性能,但它加快了段寄存器写操作的速度,并增加了MMX指令集,以加速16位操作系统的执行速度。由于配备了可重命名的段寄存器,因此奔腾Ⅱ可以猜测地执行写操作,并允许使用旧段值的指令与使用新段值的指令同时存在。在奔腾Ⅱ里面,Intel一改过去BiCMOS制造工艺的笨拙且耗电量大的双极硬件,将750万个晶体管压缩到一个203平方毫米的印模上。奔腾Ⅱ只比奔腾Pro大6平方毫米。但它却比奔腾Pro多容纳了200万个晶体管。由于使用只有0.28微米的扇出门尺寸,因此加快了这些晶体管的速度,从而达到了X86前所未有的时钟速度。
中央处理器
与此同时,AMD公司也不甘示弱推出了K5系列的CPU。(AMD公司也改名字了!)它的频率一共有六种:75/90/100/120/133/166,内部总线的频率和奔腾差不多,都是60或者66MHz,虽然它在浮点运算方面比不上奔腾,但是由于K5系列CPU都内置了24KB的一级缓存,比奔腾内置的16KB多出了一半,因此在整数运算和系统整体性能方面甚至要高于同频率的奔腾。即便如此,因为k5系列的交付日期一再后拖,AMD公司在“586”级别的竞争中最终还是败给了INTEL。
在接口技术方面,为了击跨INTEL的竞争对手,以及获得更加大的内部总线带宽,奔腾Ⅱ首次采用了最新的solt1接口标准,它不再用陶瓷封装,而是采用了一块带金属外壳的印刷电路板,该印刷电路板不但集成了处理器部件,而且还包括32KB的一级缓存。如要将奔腾Ⅱ处理器与单边插接卡(也称SEC卡)相连,只需将该印刷电路板(PCB)直接卡在SEC卡上。SEC卡的塑料封装外壳称为单边插接卡盒,也称SEC(Single-edgecontactCartridge)卡盒,其上带有奔腾Ⅱ的标志和奔腾Ⅱ印模的彩色图像。在SEC卡盒中,处理器封装与L2高速缓存和TagRAM均被接在一个底座(即SEC卡)上,而该底座的一边(容纳处理器核心的那一边)安装有一个铝制散热片,另一边则用黑塑料封起来。奔腾ⅡCPU内部集合了32KB片内L1高速缓存(16K指令/16K数据);57条MMX指令;8个64位的MMX寄存器。750万个晶体管组成的核心部分,是以203平方毫米的工艺制造出来的。处理器被固定到一个很小的印刷电路板(PCB)上,对双向的SMP有很好的支持。至于L2高速缓存则有,512K,属于四路级联片外同步突发式SRAM高速缓存。这些高速缓存的运行速度相当于核心处理器速度的一半(对于一个266MHz的CPU来说,即为133MHz)。奔腾Ⅱ的这种SEC卡设计是插到Slot1(尺寸大约相当于一个ISA插槽那么大)中。所有的Slot1主板都有一个由两个塑料支架组成的固定机构。一个SEC卡可以从两个塑料支架之间滑入Slot1中。将该SEC卡插入到位后,就可以将一个散热槽附着到其铝制散热片上。266MHz的奔腾Ⅱ运行起来只比200MHz的奔腾Pro稍热一些(其功率分别为38.2瓦和37.9瓦),但是由于SEC卡的尺寸较大,奔腾Ⅱ的散热槽几乎相当于Socket7或Socket8处理器所用的散热槽的两倍那么大。除了用于普通用途的奔腾Ⅱ之外,Intel还推出了用于服务器和高端工作站的Xeon系列处理器采用了Slot2插口技术,32KB一级高速缓存,512KB及1MB的二级高速缓存,双重独立总线结构,100MHz系统总线,支持多达8个CPU。为了对抗不可一世的奔腾Ⅱ,在1998年中,AMD推出了K6-2处理器,它的核心电压是2.2伏特,所以发热量比较低,一级缓存是64KB,更为重要的是,为了抗衡Intel的MMX指令集,AMD也开发了自己的多媒体指令集,命名为3DNow!。3DNow!是一组共21条新指令,可提高三维图形、多媒体、以及浮点运算密集的个人电脑应用程序的运算能力,使三维图形加速器全面地发挥性能。K6-2的所有型号都内置了3DNow!指令集,使AMD公司的产品首次在某些程序应用中,在整数性能以及浮点运算性能都同时超越INTEL,让INTEL感觉到了危机。不过和奔腾Ⅱ相比,K6-2仍然没有集成二级缓存,因此尽管广受好评,但始终没有能在市场占有率上战胜奔腾Ⅱ。
中央处理器
4、廉价高性能CPU的开端——Celeron
在以往,个人电脑都是一件相对奢侈的产品,作为电脑核心部件的CPU,价格几乎都以千元来计算,不过随着时代的发展,大批用户急需廉价而使用的家庭电脑,连带对廉价CPU的需求也急剧增长了。在奔腾Ⅱ又再次获得成功之际,INTEL的头脑开始有点发热,飘飘然了起来,将全部力量都集中在高端市场上,从而给AMD,CYRIX等等公司造成了不少乘虚而入的机会,眼看着性能价格比不如对手的产品,而且低端市场一再被蚕食,INTEL不能眼看着自己的发家之地就这样落入他人手中,又与1998年全新推出了面向低端市场,性能价格比相当厉害的CPU——Celeron,赛扬处理器。
Celeron可以说是Intel为抢占低端市场而专门推出的,当时1000美元以下PC的热销,令AMD等中小公司在与Intel的抗争中打了个漂亮的翻身仗,也令Intel如芒刺在背。于是,Intel把奔腾II的二级缓存和相关电路抽离出来,再把塑料盒子也去掉,再改一个名字,这就是Celeron。中文名称为赛扬处理器。最初的Celeron采用0.35微米工艺制造,外频为66MHz,主频有266与300两款。接着又出现了0.25微米制造工艺的Celeron333。
不过在开始阶段,Celeron并不很受欢迎,最为人所诟病的是其抽掉了芯片上的L2Cache,自从在奔腾Ⅱ尝到甜头以后,大家都知道了二级缓存的重要性,因而想到赛扬其实是一个被阉割了的产品,性能肯定不怎么样。实际应用中也证实了这种想法,Celeron266装在技嘉BX主板上,性能比PII266下降超过25%。而相差最大的就是经常须要用到二级缓存的程序。
Intel也很快了解到这个情况,于是随机应变,推出了集成128KB二级缓存的Celeron,起始频率为300Mhz,为了和没有集成二级缓存的同频Celeron区分,它被命名为Celeron300A。有一定使用电脑历史的朋友可能都会对这款CPU记忆犹新,它集成的二级缓存容量只有128KB,但它和CPU频率同步,而奔腾Ⅱ只是CPU频率一半,因此Celeron300A的性能和同频奔腾Ⅱ非常接近。更诱人的是,这款CPU的超频性能奇好,大部分都可以轻松达到450Mhz的频率,要知道当时频率最高的奔腾Ⅱ也只是这个频率,而价格是Celeron300A的好几倍。这个系列的Celeron出了很多款,最高频率一直到566MHz,才被采用奔腾Ⅲ结构的第二代Celeron所代替。
中央处理器
为了降低成本,从Celeron300A开始,Celeron又重投Socket插座的怀抱,但它不是采用奔腾MMX的Socket7,而是采用了Socket370插座方式,通过370个针脚与主板相连。从此,Socket370成为Celeron的标准插座结构,直到现在频率1.2Ghz的CeleronCPU也仍然采用这种插座。
5、世纪末的辉煌——奔腾III:
在99年初,Intel发布了第三代的奔腾处理器——奔腾III,第一批的奔腾III处理器采用了Katmai内核,主频有450和500Mhz两种,这个内核最大的特点是更新了名为SSE的多媒体指令集,这个指令集在MMX的基础上添加了70条新指令,以增强三维和浮点应用,并且可以兼容以前的所有MMX程序。不过平心而论,Katmai内核的奔腾III除了上述的SSE指令集以外,吸引人的地方并不多,它仍然基本保留了奔腾II的架构,采用0.25微米工艺,100Mhz的外频,Slot1的架构,512KB的二级缓存(以CPU的半速运行)因而性能提高的幅度并不大。不过在奔腾III刚上市时却掀起了很大的热潮,曾经有人以上万元的高价去买第一批的奔腾III。可以大幅提升,从500Mhz开始,一直到1.13Ghz,还有就是超频性能大幅提高,幅度可以达到50%以上。此外它的二级缓存也改为和CPU主频同步,但容量缩小为256KB。除了制程带来的改进以外,部分Coppermine奔腾III还具备了133Mhz的总线频率和Socket370的插座,为了区分它们,Intel在133Mhz总线的奔腾III型号后面加了个“B”,Socket370插座后面加了个“E”,例如频率为550Mhz,外频为133Mhz的Socket370奔腾III就被称为550EB。看到Coppermine核心的奔腾III大受欢迎,Intel开始着手把Celeron处理器也转用了这个核心,在2000年中,推出了Coppermine128核心的Celeron处理器,俗称Celeron2,由于转用了0.18的工艺,Celeron的超频性能又得到了一次飞跃,超频幅度可以达到100%。
6、AMD的绝地反击——Athlon
中央处理器
在AMD公司方面,刚开始时为了对抗奔腾III,曾经推出了K6-3处理器。K6-3处理器是三层高速缓存(TriLevel)结构设计,内建有64K的第一级高速缓存(Level1)及256K的第二层高速缓存(Level2),主板上则配置第三级高速缓存(Level3)。K6-3处理器还支持增强型的3DNow。指令集。由于成本上和成品率方面的问题,K6-3处理器在台式机市场上并不是很成功,因此它逐渐从台式机市场消失,转进笔记本市场。真正让AMD扬眉吐气的是原来代号K7的Athlon处理器。Athlon具备超标量、超管线、多流水线的Risc核心(3WaySuperScalarRisccore),采用0.25微米工艺,集成2,200万个晶体管,Athlon包含了三个解码器,三个整数执行单元(IEU),三个地址生成单元(AGU),三个多媒体单元(就是浮点运算单元),Athlon可以在同一个时钟周期同时执行三条浮点指令,每个浮点单元都是一个完全的管道。K7包含3个解码器,由解码器将解码后的macroOPS指令(K7把X86指令解码成macroOPS指令,把长短不一的X86指令转换成长短一致的macroOPS指令,可以充分发挥RISC核心的威力)送给指令控制单元,指令控制单元能同时控制(保存)72条指令。再把指令送给整数单元或多媒体单元。整数单元可以同时调度18条指令。每个整数单元都是一个独立的管道,调度单元可以对指令进行分支预测,可以乱序执行。K7的多媒体单元(也叫浮点单元)有可以重命名的堆栈寄存器,浮点调度单元同时可以调度36条指令,浮点寄存器可以保存88条指令。在三个浮点单元中,有一个加法器,一个乘法器,这两个单元可以执行MMX指令和3DNow指令。还有一个浮点单元负责数据的装载和保存。由于K7强大的浮点单元,使AMD处理器在浮点上首次超过了Intel当时的处理器。
Athlon内建128KB全速高速缓存(L1Cache),芯片外部则是1/2时频率、512KB容量的二级高速缓存(L2Cache),最多可支持到8MB的L2Cache,大的缓存可进一步提高服务器系统所需要的庞大数据吞吐量。Athlon的封装和外观跟PentiumⅡ相似,但Athlon采用的是SlotA接口规格。SlotA接口源于AlphaEV6总线,时钟频率高达200MHz,使峰值带宽达到1.6GB/S,在内存总线上仍然兼容传统的100MHz总线,现这样就保护了用户的投资,也降低了成本。后来还采用性能更高的DDRSDRAM,这和Intel力推的800MHzRAMBUS的数据吞吐量差不多。EV6总线最高可以支持到400MHz,可以完善的支持多处理器。所以具有天生的优势,要知道Slot1只支持双处理器而SlotA可支持4处理器。SlotA外观看起来跟传统的Slot1插槽很像,就像Slot1插槽倒转180度一样,但两者在电气规格、总线协议是完全不兼容的。Slot1/Socket370的CPU,是无法安装到SlotA插槽的Athlon主板上,反之亦然。
中央处理器
三、踏入新世纪的CPU
进入新世纪以来,CPU进入了更高速发展的时代,以往可望而不可及的1Ghz大关被轻松突破了,在市场分布方面,仍然是Intel跟AMD公司在两雄争霸,它们分别推出了Pentium4、Tualatin核心PentiumⅡ和Celeron、Tunderbird核心Athlon、AthlonXP和Duron等处理器,竞争日益激烈。
1、在Intel方面,在上个世纪末的2000年11月,Intel发布了旗下第四代的Pentium处理器,也就是我们天天都能接触到的Pentium4。Pentium4没有沿用PIII的架构,而是采用了全新的设计,包括等效于的400MHz前端总线(100x4),SSE2指令集,256K-512KB的二级缓存,全新的超管线技术及NetBurst架构,起步频率为1.3GHz。
第一个Pentium4核心为Willamette,全新的Socket423插座,集成256KB的二级缓存,支持更为强大的SSE2指令集,多达20级的超标量流水线,搭配i850/i845系列芯片组,随后Intel陆续推出了1.4GHz-2.0GHz的WillametteP4处理器,而后期的P4处理器均转到了针角更多的Socket478插座。和奔腾III一样,第一个Pentium4核心并不受到太多的好评,主要原因是新的CPU架构还不能受到程序软件的充分支持,因此Pentium4经常大幅落后于同频的Athlon,甚至还如Intel自己的奔腾III。但在一年以后,Intel发布了第二个Pentium4核心,代号为Northwood,改用了更为精细的0.13微米制程,集成了更大的512KB二级缓存,性能有了大幅的提高,加上Intel孜孜不倦的推广和主板芯片厂家的支持,目前Pentium4已经成为最受欢迎的中高端处理器。在低端CPU方面,Intel发布了第三代的Celeron核心,代号为Tualatin,这个核心也转用了0.13微米的工艺,与此同时二级缓存的容量提高到256KB,外频也提高到100Mhz,目前TualatinCeleron的主频有1.0、1.1、1.2、1.3Ghz等型号。Intel也推出了Tualatin核心的奔腾III,集成了更大的512KB二级缓存,但它们只应用于服务器和笔记本电脑市场,在台式机市场很少能看到。
中央处理器
2、在AMD方面,在2000年中发布了第二个Athlon核心——Tunderbird,这个核心的Athlon有以下的改进,首先是制造工艺改进为0.18微米,其次是安装界面改为了SocketA,这是一种类似于Socket370,但针脚数为462的安装接口。最后是二级缓存改为256KB,但速度和CPU同步,与Coppermine核心的奔腾III一样。Tunderbird核心的Athlon不但在性能上要稍微领先于奔腾III,而且其最高的主频也一直比奔腾III高,1Ghz频率的里程碑就是由这款CPU首先达到的。不过随着Pentium4的发布,Tunderbird开始在频率上落后于对手,为此,AMD又发布了第三个Athlon核心——Palomino,并且采用了新的频率标称制度,从此Athlon型号上的数字并不代表实际频率,而是根据一个公式换算相当于竞争对手(也就是Intel)产品性能的频率,名字也改为AthlonXP。例如AthlonXP1500处理器实际频率并不是1.5Ghz,而是1.33GHz。最后,AthlonXP还兼容Intel的SSE指令集,在专门为SSE指令集优化的软件中也能充分发挥性能。在低端CPU方面,AMD推出了DuronCPU,它的基本架构和Athlon一样,只是二级缓存只有64KB。Duron从发布开始,就能远远抛离同样主攻低端市场的Celeron,而且价格更低廉,一时间Duron成为低价DIY兼容机的第一选择,但Duron也有它致命的弱点,首先是继承了Athlon发热量大的特点,其次是它的核心非常脆弱,在安装CPU散热器时很容易损坏。因此尽管在兼容机市场很受欢迎,但始终打不进利润最高的品牌机市场。
四、CPU未来发展的方向
纵观我们上面叙述的CPU发展史,大家不难得出以下的CPU发展方向:首先是更高的频率,其次是更小的制造工艺,第三,更大的高速缓存。除了这三点之外,PC处理器也将缓慢的从32位数据带宽向64位发展。
相关技术
中央处理器
多核心
多核心,也指单芯片多处理器(Chipmultiprocessors,简称CMP)。CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。与CMP比较,SMT处理器结构的灵活性比较突出。但是,当半导体工艺进入0.18微米以后,线延时已经超过了门延迟,要求微处理器的设计通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,由于CMP结构已经被划分成多个处理器核来设计,每个核都比较简单,有利于优化设计,因此更有发展前途。目前,IBM的Power4芯片和Sun的MAJC5200芯片都采用了CMP结构。多核处理器可以在处理器内部共享缓存,提高缓存利用率,同时简化多处理器系统设计的复杂度。2005年下半年,Intel和AMD的新型处理器也将融入CMP结构。新安腾处理器开发代码为Montecito,采用双核心设计,拥有最少18MB片内缓存,采取90nm工艺制造,它的设计绝对称得上是对当今芯片业的挑战。它的每个单独的核心都拥有独立的L1,L2和L3cache,包含大约10亿支晶体管。
SMP
SMP(SymmetricMulti-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是我们所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMDOpteron可以支持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(AdvancedProgrammableInterruptControllers)单元。Intel多处理规范的核心就是高级可编程中断控制器(AdvancedProgrammableInterruptControllers–APICs)的使用;再次,相同的产品型号,同样类型的CPU核心,完全相同的运行频率;最后,尽可能保持相同的产品序列编号,因为两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机。
中央处理器
NUMA技术
NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache的一致性有多种解决方案,需要操作系统和特殊软件的支持。Sequent公司NUMA系统的例子。这里有3个SMP模块用高速专用网络联起来,组成一个节点,每个节点可以有12个CPU。像Sequent的系统最多可以达到64个CPU甚至256个CPU。显然,这是在SMP的基础上,再用NUMA的技术加以扩展,是这两种技术的结合。
乱序执行技术
乱序执行(out-of-orderexecution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。分枝技术:(branch)指令进行运算时需要等待结果,一般无条件分枝只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行。
CPU内部的内存控制器
许多应用程序拥有更为复杂的读取模式(几乎是随机地,特别是当cachehit不可预测的时候),并且没有有效地利用带宽。典型的这类应用程序就是业务处理软件,即使拥有如乱序执行(outoforderexecution)这样的CPU特性,也会受内存延迟的限制。这样CPU必须得等到运算所需数据被除数装载完成才能执行指令(无论这些数据来自CPUcache还是主内存系统)。当前低段系统的内存延迟大约是120-150ns,而CPU速度则达到了3GHz以上,一次单独的内存请求可能会浪费200-300次CPU循环。即使在缓存命中率(cachehitrate)达到99%的情况下,CPU也可能会花50%的时间来等待内存请求的结束-比如因为内存延迟的缘故。可以看到Opteron整合的内存控制器,它的延迟,与芯片组支持双通道DDR内存控制器的延迟相比来说,是要低很多的。英特尔也按照计划的那样在处理器内部整合内存控制器,这样导致北桥芯片将变得不那么重要。但改变了处理器访问主存的方式,有助于提高带宽、降低内存延时和提升处理器性制造工艺:现在CPU的制造工艺是45纳米。
生产厂商
中央处理器
Intel公司Intel是生产CPU的龙头,它占有80%多的市场份额,Intel生产的CPU就成了事实上的x86CPU技术规范和标准。最新的酷睿2成为CPU的首选。
AMD公司目前使用的CPU有好几家公司的产品,除了Intel公司外,最有力的挑战的就是AMD公司,最新的Athlon64x2和闪龙具有很好性价比,尤其采用了3DNOW技术,使其在3D上有很好的表现。
IBM和Cyrix美国国家半导体公司IBM和Cyrix公司合并后,使其终于拥有了自己的芯片生产线,其成品将会日益完善和完备。现在的MII性能也不错,尤其是它的价格很低。
IDT公司IDT是处理器厂商的后起之秀,但现在还不太成熟。
VIA威盛公司VIA威盛是台湾一家主板芯片组厂商,收购了前述的Cyrix和IDT的cpu部门,推出了自己的CPU。
国产龙芯GodSon小名狗剩,是国有自主知识产权的通用处理器,目前已经有2代产品。最新的龙芯2F已经赶上intel中端P4的水平在路由器中,无论在中低端路由器还是在高端路由器中,CPU都是路由器的心脏。通常在中低端路由器中,CPU负责交换路由信息、路由表查找以及转发数据包。在上述路由器中,CPU的能力直接影响路由器的吞吐量(路由表查找时间)和路由计算能力(影响网络路由收敛时间)。在高端路由器中,通常包转发和查表由ASIC芯片完成,CPU只实现路由协议、计算路由以及分发路由表。由于技术的发展,路由器中许多工作都
中央处理器
可以由硬件实现(专用芯片)。CPU性能并不完全反映路由器性能。路由器性能由路由器吞吐量、时延和路由计算能力等指标体现。现在市场上产品丰富,琳琅满目,当你使用着配置了最新款CPU的电脑在互联网上纵横驰骋,在各种程序应用之间操作自如的时候,有没有兴趣去想一想这个头不大、功能不小的CPU是怎么制作出来的呢。在今天的半导体制造业中,计算机中央处理器无疑是受关注程度最高的领域,而这个领域中众所周知的两大巨头,其所遵循的处理器架构均为x86,而另外一家号称信息产业的蓝色巨人的IBM,也拥有强大的处理器设计与制造能力,它们最先发明了应变硅技术,并在90纳米的处理器制造工艺上走在最前列。在今天的文章中,我们将一步一步的为您讲述中央处理器从一堆沙子到一个功能强大的集成电路芯片的全过程。
制造CPU的基本原料
中央处理器
如果问及CPU的原料是什么,大家都会轻而易举的给出答案—是硅。其实就是那些最不起眼的沙子。难以想象吧,价格昂贵,结构复杂,功能强大,充满着神秘感的CPU竟然来自那根本一文不值的沙子。当然这中间必然要经历一个复杂的制造过程才行。不过不是随便抓一把沙子就可以做原料的,一定要精挑细选,从中提取出最最纯净的硅原料才行。试想一下,如果用那最最廉价而又储量充足的原料做成CPU,那么成品的质量会怎样。
除去硅之外,制造CPU还需要一种重要的材料就是金属。目前为止,铝已经成为制作处理器内部配件的主要金属材料,而铜则逐渐被淘汰,这是有一些原因的,在目前的CPU工作电压下,铝的电迁移特性要明显好于铜。所谓电迁移问题,就是指当大量电子流过一段导体时,导体物质原子受电子撞击而离开原有位置,留下空位,空位过多则会导致导体连线断开,而离开原位的原子停留在其它位置,会造成其它地方的短路从而影响芯片的逻辑功能,进而导致芯片无法使用。这就是许多NorthwoodPentium4换上SNDS(北木暴毕综合症)的原因,当发烧友们第一次给NorthwoodPentium4超频就急于求成,大幅提高芯片电压时,严重的