1、工作原理提取第一阶段,提取,从程式记忆体中检索指令(为数值或一系列数值) 。由程式计数器(Program Counter)指定程式记忆体的位置,程式计数器保存供识别目前程式位置的数值。换言之,程式计数器记录了 CPU 在目前程式里的踪迹。 提取指令之后,程式计数器根据指令长度增加记忆体单元。指令的提取必须常常从相对较慢的记忆体寻找,因此导致 CPU 等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构。解码CPU 根据从记忆体提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据 CPU 的指令集架构(ISA)定义将数值解译为指令。 一部分的指令数值为运算码(Op
2、code ) ,其指示要进行哪些运算。其它的数值通常供给指令必要的资讯,诸如一个加法(Addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值) ,或是一个空间的定址值:暂存器或记忆体位址,以定址模式决定。 在旧的设计中,CPU 里的指令解码部分是无法改变的硬体装置。不过在众多抽象且复杂的 CPU 和指令集架构中,一个微程式时常用来帮助转换指令为各种形态的讯号。这些微程式在已成品的 CPU 中往往可以重写,方便变更解码指令。执行在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的 CPU 部件。 例如,要求一个加法运算,算数逻辑单元(ALU,Ari
3、thmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU 内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算) 。如果加法运算产生一个对该 CPU 处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow)标志可能会被设置。写回最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU 内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程式计数器,而不直接产生结果。这些一般称作“跳转
4、” (Jumps) ,并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。 许多指令也会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。 例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后的跳转指令来决定程式动向。 在执行指令并写回结果之后,程式计数器的值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程式计数器将会修改成跳转到的指令位址,且程式继续正常执行。许多复杂的 CPU 可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典 RISC 管线” ,那
5、些实际上是在众多使用简单 CPU 的电子装置中快速普及(常称为微控制(Microcontrollers) ) 。编辑本段基本结构CPU 包括运算逻辑部件、寄存器部件和控制部件。CPU 从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。 指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字和特征码。有的指令中也直接包含操作数本身。运算逻辑部件运算逻辑部件,可以执行定点或浮点的算术运
6、算操作、移位操作以及逻辑操作,也可执行地址的运算和转换。寄存器部件寄存器部件,包括通用寄存器、专用寄存器和控制寄存器。 32 位 CPU 的寄存器32 位 CPU 的寄存器通用寄存器又可分定点数和浮点数两类,它们用来保存指令中的寄存器操作数和操作结果。 通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。通用寄存器的宽度决定计算机内部的数据通路宽度,其端口数目往往可影响内部操作的并行性。专用寄存器是为了执行一些特殊操作所需用的寄存器。 控制寄存器通常用来指示机器执行的状态,或者保持某些指针,有处理状态寄存器、地址转换目录的基地址寄存器、特权状态寄存器、条件码寄存器、处理异常事
7、故寄存器以及检错寄存器等。 有的时候,中央处理器中还有一些缓存,用来暂时存放一些数据指令,缓存越大,说明 CPU 的运算速度越快,目前市场上的中高端中央处理器都有 2M 左右的二级缓存,高端中央处理器有 4M 左右的二级缓存。控制部件控制部件,主要负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。 其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。 微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺
8、序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。 简单指令是由(35)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。 逻辑硬布线控制器则完全是由随机逻辑组成。指令译码后,控制器通过不同的逻辑门的组合,发出不同序列的控制时序信号,直接去执行一条指令中的各个操作。编辑本段发展历史CPU 这个名称,早期是对一系列可以执行复杂的计算机程序或电脑程式的逻辑机器的描述。这个空泛的定义很容易在“CPU”这个名称被普遍使用之前将计算机本身也包括在内。诞 生中央处理器(Intel)中央处理器(Intel)但从 20 世纪 70 年代开始,由于集成电路的大规模使用,把本来
9、需要由数个独立单元构成的 CPU 集成为一块微小但功能空前强大的微处理器时。这个名称及其缩写才真正在电子计算机产业中得到广泛应用。尽管与早期相比,CPU 在物理形态、设计制造和具体任务的执行上都有了戏剧性的发展,但是其基本的操作原理一直没有改变。 1971 年,当时还处在发展阶段的 Intel 公司推出了世界上第一台真正的微处理器4004。这不但是第一个用于计算器的 4 位微处理器,也是第一款个人有能力买得起的电脑处理器! 4004 含有 2300 个晶体管,功能相当有限,而且速度还很慢,被当时的蓝色巨人 IBM以及大部分商业用户不屑一顾,但是它毕竟是划时代的产品,从此以后,Intel 公司便
10、与微处理器结下了不解之缘。可以这么说,CPU 的历史发展历程其实也就是 Intel 公司 X86 系列 CPU 的发展历程,就通过它来展开的“CPU 历史之旅” 。起步的角逐中央处理器(Intel)中央处理器(Intel)1978 年,Intel 公司再次领导潮流,首次生产出 16 位的微处理器,并命名为 i8086,同时还生产出与之相配合的数学协处理器 i8087,这两种芯片使用相互兼容的指令集,但在 i8087 指令集中增加了一些专门用于对数、指数和三角函数等数学计算的指令。由于这些指令集应用于 i8086 和 i8087,所以人们也把这些指令集中统一称之为 X86 指令集。虽然以后 In
11、tel 公司又陆续生产出第二代、第三代等更先进和更快的新型 CPU,但都仍然兼容原来的 X86 指令,而且 Intel 公司在后续 CPU 的命名上沿用了原先的 X86 序列,直到后来因商标注册问题,才放弃了继续用阿拉伯数字命名。至于在后来发展壮大的其他公司,例如 AMD 和 Cyrix 等,在 486 以前(包括 486)的 CPU 都是按 Intel 的命名方式为自己的 X86 系列 CPU 命名,但到了 586 时代,市场竞争越来越厉害了,由于商标注册问题,它们已经无法继续使用与 Intel 的 X86 系列相同或相似的命名,只好另外为自己的586、686 兼容 CPU 命名了。 197
12、9 年,Intel 公司推出了 8088 芯片,它仍旧是属于 16 位微处理器,内含 29000 个晶体管,时钟频率为 4.77MHz,地址总线为 20 位,可使用 1MB 内存。8088 内部数据总线都是 16 位,外部数据总线是 8 位,而它的兄弟 8086 是 16 位。微机时代的来临中央处理器(概念图)中央处理器(概念图)1981 年,8088 芯片首次用于 IBM 的 PC(个人电脑 Personal Computer)机中,开创了全新的微机时代。也正是从 8088 开始,PC 的概念开始在全世界范围内发展起来。 早期的 CPU 通常是为大型及特定应用的计算机而订制。但是,这种昂贵为
13、特定应用定制 CPU 的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。 这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。集成电路使得更为复杂的 CPU 可以在很小的空间中设计和制造出来(在微米的量级)。 1982 年,许多年轻的读者尚在襁褓之中的时候,Intel 公司已经推出了划时代的最新产品枣 80286 芯片,该芯片比 8086 和 8088 都有了飞跃的发展,虽然它仍旧是 16 位结构,但是在 CPU 的内部含有 13.4 万个晶体管,时钟频率由最初的 6MHz 逐步提高到 20MHz。其内部和外部数据总线皆为 16 位,地址总
14、线 24 位,可寻址 16MB 内存。从 80286 开始,CPU 的工作方式也演变出两种来:实模式和保护模式。 中央处理器(AMD 速龙 64FX 概念图)中央处理器(AMD 速龙 64FX 概念图)1985 年,Intel 公司推出了 80386 芯片,它是80X86 系列中的第一种 32 位微处理器,而且制造工艺也有了很大的进步,与 80286 相比,80386 内部内含 27.5 万个晶体管,时钟频率为 12.5MHz,后提高到 20MHz、25MHz、33MHz。80386 的内部和外部数据总线都是 32 位,地址总线也是 32 位,可寻址高达 4GB 内存。它除具有实模式和保护模式
15、外,还增加了一种叫虚拟 86 的工作方式,可以通过同时模拟多个 8086 处理器来提供多任务能力。 除了标准的 80386 芯片,也就是经常说的 80386DX 外,出于不同的市场和应用考虑,Intel 又陆续推出了一些其它类型的 80386 芯片:80386SX、80386SL、80386DL 等。 1988 年,Intel 推出的 80386SX 是市场定位在 80286 和 80386DX 之间的一种芯片,其与 80386DX 的不同在于外部数据总线和地址总线皆与 80286 相同,分别是 16 位和 24 位(即寻址能力为 16MB) 。高速 CPU 时代的腾飞1990 年,Intel
16、 公司推出的 80386 SL 和 80386 DL 都是低功耗、节能型芯片,主要用于便携机和节能型台式机。80386 SL 与 80386 DL 的不同在于前者是基于 80386SX 的,后者是基于 80386DX 的,但两者皆增加了一种新的工作方式:系统管理方式。当进入系统管理方式后,CPU 就自动降低运行速度、控制显示屏和硬盘等其它部件暂停工作,甚至停止运行,进入“休眠”状态,以达到节能目的。 1989 年,大家耳熟能详的 80486 芯片由 Intel 公司推出,这种芯片的伟大之处就在于它实破了 100 万个晶体管的界限,集成了 120 万个晶体管。80486 的时钟频率从 25MHz
17、 逐步提高到了 33MHz、50MHz。80486 是将 80386 和数学协处理器 80387 以及一个 8KB 的高速缓存集成在一个芯片内,并且在 80X86 系列中首次采用 了 RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。它还采用了突发总线方式,大大提高了与内存的数据交换速度。 由于这些改进,80486 的性能比带有 80387 数学协处理器的 80386DX 提高了 4 倍。80486 和 80386 一样,也陆续出现了几种类型。上面介绍的最初类型是 80486DX。 1990 年,Intel 公司推出了 80486 SX,它是 486 类型中的一种低价格机型,其与8
18、0486DX 的区别在于它没有数学协处理器。80486 DX2 由于用了时钟倍频技术,也就是说芯片内部的运行速度是外部总线运行速度的两倍,即芯片内部以 2 倍于系统时钟的速度运行,但仍以原有时钟速度与外界通讯。80486 DX2 的内部时钟频率主要有40MHz、50MHz、66MHz 等。80486 DX4 也是采用了时钟倍频技术的芯片,它允许其内部单元以 2 倍或 3 倍于外部总线的速度运行。为了支持这种提高了的内部工作频率,它的片内高速缓存扩大到 16KB。80486 DX4 的时钟频率为 100MHz,其运行速度比 66MHz 的80486 DX2 快 40%。80486 也有 SL 增
19、强类型,其具有系统管理方式,用于便携机或节能型台式机。 中央处理器(Intel)CPU 的标准化和小型化都使得这一类数字设备(香港译为“电子零件” )在现代生活中 中央处理器(Intel)的出现频率远远超过有限应用专用的计算机。现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。编辑本段性能指标主频主频也叫时钟频率,单位是兆赫(MHz)或千兆赫( GHz) ,用来表示 CPU 的运算、处理数据的速度。 CPU 的主频 =外频倍频系数。 主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系. 所以,CPU 的主频与 CPU 实际的运算能力是没有直接关系的,主频表示在 CPU
20、内数字脉冲信号震荡的速度。在 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 来讲,超
21、频是绝对不允许的。前面说到 CPU 决定着主板的运行速度,两者是同步运行的,如果把服务器 CPU 超频了,改变了外频,会产生异步运行, (台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。 目前的绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。前端总线(FSB)频率前端总线(FSB)频率( 即总线频率)是直接影响 CPU 与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,现在的支持 64 位的至强 Nocona,前端总线是800MH
22、z,按照公式,它的数据传输最大带宽是 6.4GB/秒。 中央处理器(Intel)中央处理器(Intel)外频与前端总线(FSB) 频率的区别:前端总线的速度指的是数据传输的速度,外频是 CPU 与主板之间同步运行的速度。也就是说,100MHz 外频特指数字脉冲信号在每秒钟震荡一亿次;而 100MHz 前端总线指的是每秒钟 CPU 可接受的数据传输量是100MHz64bit8bit/Byte=800MB/s。 其实现在“HyperTransport”构架的出现,让这种实际意义上的前端总线(FSB)频率发生了变化。IA-32 架构必须有三大重要的构件:内存控制器 Hub (MCH) ,I/O 控制
23、器 Hub 和PCI Hub,像 Intel 很典型的芯片组 Intel 7501、Intel7505 芯片组,为双至强处理器量身定做的,它们所包含的 MCH 为 CPU 提供了频率为 533MHz 的前端总线,配合 DDR 内存,前端总线带宽可达到 4.3GB/秒。但随着处理器性能不断提高同时给系统架构带来了很多问题。而“HyperTransport”构架不但解决了问题,而且更有效地提高了总线带宽,比方 AMD Opteron 处理器,灵活的 HyperTransport I/O 总线体系结构让它整合了内存控制器,使处理器不通过系统总线传给芯片组而直接和内存交换数据。这样的话,前端总线(FS
24、B)频率在AMD Opteron 处理器就不知道从何谈起了。CPU 的位和字长中央处理器(德州仪器)中央处理器(德州仪器)位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1” ,其中无论是 “0”或是“1”在 CPU 中都是 一“位” 。 字长:电脑技术中对 CPU 在单位时间内( 同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为 8 位数据的 CPU 通常就叫 8 位的 CPU。同理 32 位的 CPU 就能在单位时间内处理字长为 32 位的二进制数据。字节和字长的区别:由于常用的英文字符用 8位二进制就可以表示,所以通常就将 8 位称为一个字节。字长的长度是不固定的,对
25、于不同的 CPU、字长的长度也不一样。8 位的 CPU 一次只能处理一个字节,而 32 位的 CPU 一次就能处理 4 个字节,同理字长为 64 位的 CPU 一次可以处理 8 个字节。倍频系数倍频系数是指 CPU 主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU 的频率也越高。但实际上,在相同外频的前提下,高倍频的 CPU 本身意义并不大。这是因为 CPU 与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的 CPU就会出现明显的“瓶颈”效应CPU 从系统中得到数据的极限速度不能够满足 CPU 运算的速度。一般除了工程样版的 Intel 的 CPU 都是锁了倍频的,少量的
26、如 Inter 酷睿 2 核心的奔腾双核 E6500K 和一些至尊版的 CPU 不锁倍频,而 AMD 之前都没有锁,现在 AMD推出了黑盒版 CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多) 。缓存缓存大小也是 CPU 的重要指标之一,而且缓存的结构和大小对 CPU 速度的影响非常大,CPU 内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU 往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升 CPU 内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于 CPU 芯片面积和成
27、本的因素来考虑,缓存都很小。 L1 Cache( 一级缓存)是 CPU 第一层高速缓存,分为数据缓存和指令缓存。内置的 L1高速缓存的容量和结构对 CPU 的性能影响较大,不过高速缓冲存储器均由静态 RAM 组成,结构较复杂,在 CPU 管芯面积不能太大的情况下,L1 级高速缓存的容量不可能做得太大。一般服务器 CPU 的 L1 缓存的容量通常在 32256KB。 L2 Cache( 二级缓存)是 CPU 的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2 高速缓存容量也会影响 CPU 的性能,原则是越大越好,以前家庭用 CPU
28、 容量最大的是 512KB,现在笔记本电脑中也可以达到 2M,而服务器和工作站上用 CPU 的 L2 高速缓存更高,可以达到8M 以上。 L3 Cache( 三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3 缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加 L3 缓存在性能方面仍然有显著的提升。比方具有较大 L3 缓存的配置利用物理内存会更有效,故它比较慢的磁盘 I/O 子系统可以处理更多的数据请求。具有较大 L3 缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器
29、队列长度。 其实最早的 L3 缓存被应用在 AMD 发布的 K6-III 处理器上,当时的 L3 缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3 缓存同主内存其实差不了多少。后来使用 L3 缓存的是英特尔为服务器市场所推出的Itanium 处理器。接着就是 P4EE 和至强 MP。Intel 还打算推出一款 9MB L3 缓存的Itanium2 处理器,和以后 24MB L3 缓存的双核心 Itanium2 处理器。 但基本上 L3 缓存对处理器的性能提高显得不是很重要,比方配备 1MB L3 缓存的Xeon MP 处理器却仍然不是 Optero
30、n 的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。CPU 扩展指令集CPU 依靠指令来自计算和控制系统,每款 CPU 在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是 CPU 的重要指标,指令集是提高微处理器效率的最有效工具之一。 从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分(指令集共有四个种类) ,而从具体运用看,如 Intel 的 MMX(Multi Media Extended,此为 AMD 猜测的全称,Intel 并没有说明词源) 、SSE、 SSE2(Streaming-Single instruction multiple
31、 data-Extensions 2) 、SSE3 、SSE4 系列和 AMD 的 3DNow!等都是 CPU 的扩展指令集,分别增强了 CPU 的多媒体、图形图象和 Internet 等的处理能力。 通常会把 CPU 的扩展指令集称为”CPU 的指令集” 。SSE3 指令集也是目前规模最小的指令集,此前 MMX 包含有 57 条命令,SSE 包含有 50 条命令,SSE2 包含有 144 条命令,SSE3 包含有 13 条命令。CPU 内核和 I/O 工作电压从 586CPU 开始,CPU 的工作电压分为内核电压和 I/O 电压两种,通常 CPU 的核心电压小于等于 I/O 电压。其中内核电
32、压的大小是根据 CPU 的生产工艺而定,一般制作工艺越小,内核工作电压越低;I/O 电压一般都在 1.65V。低电压能解决耗电过大和发热过高的问题。编辑本段技术架构制造工艺制造工艺的微米是指 IC 内电路与电路之间的距离。制造工艺的趋势是向密集度愈高的方向发展。密度愈高的 IC 电路设计,意味着在同样大小面积的 IC 中,可以拥有密度更高、功能更复杂的电路设计。现在主要的 180nm、130nm 、90nm、65nm、45 纳米。最近 intel已经有 32 纳米的制造工艺的酷睿 i3/i5 系列了。 而 AMD 则表示、自己的产品将会直接跳过 32nm 工艺(2010 年第三季度生产少许32
33、nm 产品、如 Orochi、Llano)于 2011 年中期初发布 28nm 的产品(名称未定)指令集(1)CISC 指令集 CISC 指令集,也称为复杂指令集,英文名是 CISC, (Complex Instruction Set Computer的缩写) 。在 CISC 微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。其实它是英特尔生产的 x86 系列(也就是 IA-32 架构)CPU 及其兼容 CPU,如 AMD、VIA 的。即使是现在新起的 X86-64(也说成 AMD64)都是
34、属于 CISC 的范畴。 要知道什么是指令集还要从当今的 X86 架构的 CPU 说起。X86 指令集是 Intel 为其第一块 16 位 CPU(i8086)专门开发的,IBM1981 年推出的世界第一台 PC 机中的CPUi8088(i8086 简化版) 使用的也是 X86 指令,同时电脑中为提高浮点数据处理能力而增加了 X87 芯片,以后就将 X86 指令集和 X87 指令集统称为 X86 指令集。 虽然随着 CPU 技术的不断发展,Intel 陆续研制出更新型的 i80386、i80486 直到过去的 PII 至强、PIII 至强、Pentium 3,Pentium 4 系列,最后到今
35、天的酷睿 2 系列、至强(不包括至强 Nocona) ,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以 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 Comput
36、ing ” 的缩写,中文意思是“精简指令集” 。它是在 CISC 指令系统基础上发展起来的,有人对 CISC 机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的 20%,但在程序中出现的频度却占 80%。复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20 世纪 80 年代 RISC 型 CPU 诞生了,相对于 CISC 型 CPU ,RISC 型 CPU 不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构” ,大大增加了并行处理能力。RISC 指令集是高
37、性能 CPU 的发展方向。它与传统的 CISC(复杂指令集) 相对。相比而言,RISC 的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高很多了。目前在中高档服务器中普遍采用这一指令系统的 CPU,特别是高档服务器全都采用RISC 指令系统的 CPU。RISC 指令系统更加适合高档服务器的操作系统 UNIX,现在 Linux也属于类似 UNIX 的操作系统。RISC 型 CPU 与 Intel 和 AMD 的 CPU 在软件和硬件上都不兼容。 目前,在中高档服务器中采用 RISC 指令的 CPU 主要有以下几类: PowerPC 处理器、SPARC 处理器、PA-RISC
38、 处理器、MIPS 处理器、Alpha 处理器。 (3)IA-64 EPIC(Explicitly Parallel Instruction Computers,精确并行指令计算机)是否是 RISC和 CISC 体系的继承者的争论已经有很多,单以 EPIC 体系来说,它更像 Intel 的处理器迈向 RISC 体系的重要步骤。从理论上说,EPIC 体系设计的 CPU,在相同的主机配置下,处理 Windows 的应用软件比基于 Unix 下的应用软件要好得多。 Intel 采用 EPIC 技术的服务器 CPU 是安腾 Itanium(开发代号即 Merced) 。它是 64 位处理器,也是 IA
39、64 系列中的第一款。微软也已开发了代号为 Win64 的操作系统,在软件上加以支持。在 Intel 采用了 X86 指令集之后,它又转而寻求更先进的 64-bit 微处理器,Intel 这样做的原因是,它们想摆脱容量巨大的 x86 架构,从而引入精力充沛而又功能强大的指令集,于是采用 EPIC 指令集的 IA-64 架构便诞生了。 IA-64 在很多方面来说,都比 x86有了长足的进步。突破了传统 IA32 架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可观理性等方面获得了突破性的提高。 IA-64 微处理器最大的缺陷是它们缺乏与 x86 的兼容,而 Intel 为了 IA
40、-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
41、 架构。其中支持 64 位逻辑定址,同时提供转换为 32 位定址选项;但数据操作指令默认为 32 位和8 位,提供转换成 64 位和 16 位的选项;支持常规用途寄存器,如果是 32 位运算操作,就要将结果扩展成完整的 64 位。这样,指令中有“直接执行”和“转换执行”的区别,其指令字段是 8 位或 32 位,可以避免字段过长。 x86-64(也叫 AMD64)的产生也并非空穴来风,x86 处理器的 32bit 寻址空间限制在4GB 内存,而 IA-64 的处理器又不能兼容 x86。AMD 充分考虑顾客的需求,加强 x86 指令集的功能,使这套指令集可同时支持 64 位的运算模式,因此 AMD
42、 把它们的结构称之为x86-64。在技术上 AMD 在 x86-64 架构中为了进行 64 位运算,AMD 为其引入了新增了R8-R15 通用寄存器作为原有 X86 处理器寄存器的扩充,但在而在 32 位环境下并不完全使用到这些寄存器。原来的寄存器诸如 EAX、EBX 也由 32 位扩张至 64 位。在 SSE 单元中新加入了 8 个新寄存器以提供对 SSE2 的支持。寄存器数量的增加将带来性能的提升。与此同时,为了同时支持 32 和 64 位代码及寄存器,x86-64 架构允许处理器工作在以下两种模式:Long Mode(长模式)和 Legacy Mode(遗传模式), Long 模式又分为
43、两种子模式(64bit模式和 Compatibility mode 兼容模式) 。该标准已经被引进在 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 和 IA3
44、2E,只有在运行 64 位操作系统下的时候,才将会采用 IA32E。IA32E将由 2 个 sub-mode 组成:64 位 sub-mode 和 32 位 sub-mode,同 AMD64 一样是向下兼容的。Intel 的 EM64T 将完全兼容 AMD 的 X86-64 技术。现在 Nocona 处理器已经加入了一些 64 位技术,Intel 的 Pentium 4E 处理器也支持 64 位技术。 应该说,这两者都是兼容 x86 指令集的 64 位微处理器架构,但 EM64T 与 AMD64 还是有一些不一样的地方,AMD64 处理器中的 NX 位在 Intel 的处理器中将没有提供。超流
45、水线与超标量在解释超流水线与超标量前,先了解流水线(Pipeline)。流水线是 Intel 首次在 486 芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在 CPU 中由 56 个不同功能的电路单元组成一条指令处理流水线,然后将一条 X86 指令分成 56 步后再由这些电路单元分别执行,这样就能实现在一个 CPU 时钟周期完成一条指令,因此提高 CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。 超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个
46、机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如 Pentium 4 的流水线就长达 20 级。将流水线设计的步(级) 越长,其完成一条指令的速度越快,因此才能适应工作主频更高的 CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的 CPU 实际运算速度较低的现象,Intel 的奔腾4 就出现了这种情况,虽然它的主频可以高达 1.4G 以上,但其运算性能却远远比不上AMD 1.2G 的速龙甚至奔腾 III。封装形式CPU 封装是采用特定的材料将 CPU 芯片或 CPU 模块固化在其中以防损坏的保护措施,一般必须在封装后 CPU 才能交付用户使用。CPU 的封装方式取决于
47、 CPU 安装形式和器件集成设计,从大的分类来看通常采用 Socket 插座进行安装的 CPU 使用 PGA(栅格阵列) 方式封装,而采用 Slot x 槽安装的 CPU 则全部采用 SEC(单边接插盒 )的形式封装。现在还有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封装技术。由于市场竞争日益激烈,目前 CPU 封装技术的发展方向以节约成本为主。多线程同时多线程 Simultaneous Multithreading,简称 SMT。SMT 可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的
48、执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache 未命中带来的访问内存延时。当没有多个线程可用时,SMT 处理器几乎和传统的宽发射超标量处理器一样。SMT 最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel 从 3.06GHz Pentium 4 开始,所有处理器都将支持 SMT 技术。多核心多核心,也指单芯片多处理器(Chip Multiprocessors,简称
49、CMP) 。CMP 是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的 SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。与 CMP 比较, SMT 处理器结构的灵活性比较突出。但是,当半导体工艺进入 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 亿支晶体管。SMPSMP(Sy