CPU篇
一、决定CPU性能技术指标
每个买CPU的消费者,第一时间要过问的就是它的性能,对于一个CPU来说,性能是否强大是它能否在市场上生存下去的第一要素,那么CPU的性能是由哪些因素决定的咧?下面就列出影响CPU性能的主要技术指标:
1、主频,也就是CPU的时钟频率,简单地说也就是CPU的工作频率。一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。不过由于各种CPU的内部结构也不尽相同,所以并不能完全用主频来概括CPU的性能。至于外频就是系统总线的工作频率;而倍频则是指CPU外频与主频相差的倍数。用公式表示就是:主频=外频×倍频。
2、内存总线速度或者叫系统总线速度,一般等同于CPU的外频。内存总线的速度对整个系统性能来说很重要,由于内存速度的发展滞后于CPU的发展速度,为了缓解内存带来的瓶颈,所以出现了二级缓存,来协调两者之间的差异,而内存总线速度就是指CPU与二级(L2)高速缓存和内存之间的工作频率。
3、L1高速缓存,也就是我们经常说的一级高速缓存。在CPU里面内置了高速缓存可以提高CPU的运行效率。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。采用回写(Write Back)结构的高速缓存。它对读和写*作均有可提供缓存。而采用写通(Write-through)结构的高速缓存,仅对读*作有效。在486以上的计算机中基本采用了回写式高速缓存。在目前流行的处理器中,奔腾Ⅲ和Celeron处理器拥有32KB的L1高速缓存,奔腾4为8KB,而AMD的Duron和Athlon处理器的L1高速缓存高达128KB。
4、L2高速缓存,指CPU第二层的高速缓存,第一个采用L2高速缓存的是奔腾 Pro处理器,它的L2高速缓存和CPU运行在相同频率下的,但成本昂贵,市场生命很短,所以其后奔腾 II的L2高速缓存运行在相当于CPU频率一半下的。接下来的Celeron处理器又使用了和CPU同速运行的L2高速缓存,现在流行的CPU,无论是AthlonXP和奔腾4,其L2高速缓存都是和CPU同速运行的。除了速度以外,L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量最大的是512KB,而服务器和工作站上用CPU的L2高速缓存更高达1MB-3MB。
5、流水线技术、超标量。流水线(pipeline)是 Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高了CPU的运算速度。超流水线是指某型 CPU内部的流水线超过通常的5~6步以上,例如奔腾 4的流水线就长达20步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。超标量是指在一个时钟周期内CPU可以执行一条以上的指令。这在486或者以前的CPU上是很难想象的,只有奔腾级以上CPU才具有这种超标量结构;这是因为现代的CPU越来越多的采用了RISC技术,所以才会有超标量的CPU。
6、协处理器或者叫数学协处理器。在486以前的CPU里面,是没有内置协处理器的。由于协处理器主要的功能就是负责浮点运算,因此386、286、8088等等微机CPU的浮点运算性能都相当落后,自从486以后,CPU一般都内置了协处理器,协处理器的功能也不再局限于增强浮点运算。现在CPU的浮点单元(协处理器)往往对多媒体指令进行了优化。比如Intel的MMX技术,MMX是“多媒体扩展指令集”的缩写。MMX是Intel公司在1996年为增强奔腾 CPU在音像、图形和通信应用方面而采取的新技术。为CPU新增加57条MMX指令,把处理多媒体的能力提高了60%左右。现在的CPU已经普遍内置了这些多媒体指令集,例如现在奔腾4内置了SSE2指令集,而AthlonXP则内置增强型的3DNow!指令集。
7、工作电压。工作电压指的也就是CPU正常工作所需的电压。早期CPU(386、486)由于工艺落后,它们的工作电压一般为5V(奔腾等是3.5V/3.3V/2.8V等),随着CPU的制造工艺与主频的提高,CPU的工作电压有逐步下降的趋势,Intel最新出品的Tualatin核心Celeron已经采用1.475V的工作电压了。低电压能解决耗电过大和发热过高的问题。这对于笔记本电脑尤其重要。
8、乱序执行和分枝预测,乱序执行是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。分枝是指程序运行时需要改变的节点。分枝有无条件分枝和有条件分枝,其中无条件分枝只需要CPU按指令顺序执行,而条件分枝则必须根据处理结果再决定程序运行方向是否改变,因此需要“分枝预测”技术处理的是条件分枝。
9、制造工艺,制造工艺虽然不会直接影响CPU的性能,但它可以可以极大地影响CPU的集成度和工作频率,制造工艺越精细,CPU可以达到的频率越高,集成的晶体管就可以更多。第一代奔腾 CPU的制造工艺是0.35微米, 最高达到266Mhz的频率,PII和赛扬是0.25微米,频率最高达到450Mhz。铜矿核心的奔腾Ⅲ制造工艺缩小到了0.18微米,最高频率达到1.13Ghz。最新Northwood核心的奔腾4 CPU制造工艺达到0.13微米,目前频率已经达到2.4Ghz,估计达到3Ghz也没有问题。在明年,Intel CPU的制造工艺会达到0.09毫米。
为了使读者在日常购买*作电脑时方便查询,特在本节最后列出和CPU有关的技术术语,安第一个字母的顺序排列:
3DNow!(3D no waiting) AMD公司开发的SIMD指令集,可以增强浮点和多媒体运算的速度,它的指令数为21条。
ALU(Arithmetic Logic Unit,算术逻辑单元) 在处理器之中用于计算的那一部分,与其同级的有数据传输单元和分支单元。
BGA(Ball Grid Array,球状矩阵排列) 一种芯片封装形式,例:82443BX。
BHT(branch prediction table,分支预测表) 处理器用于决定分支行动方向的数值表。
BPU(Branch Processing Unit,分支处理单元)CPU中用来做分支处理的那一个区域。
Brach Pediction(分支预测)从P5时代开始的一种先进的数据处理方法,由CPU来判断程序分支的进行方向,能够更快运算速度。
CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)它是一类特殊的芯片,最常见的用途是主板的BIOS(Basic Input/Output System,基本输入/输出系统)。
CISC(Complex Instruction Set Computing,复杂指令集计算机) 相对于RISC而言,它的指令位数较长,所以称为复杂指令。如:x86指令长度为87位。
COB(Cache on board,板上集成缓存) 在处理器卡上集成的缓存,通常指的是二级缓存,例:奔腾II
COD(Cache on Die,芯片内集成缓存) 在处理器芯片内部集成的缓存,通常指的是二级缓存,例:PGA赛扬370
CPGA(Ceramic Pin Grid Array,陶瓷针型栅格阵列) 一种芯片封装形式。
CPU(Center Processing Unit,中央处理器) 计算机系统的大脑,用于控制和管理整个机器的运作,并执行计算任务。
Data Forwarding(数据前送)CPU在一个时钟周期内,把一个单元的输出值内容拷贝到另一个单元的输入值中。
Decode(指令解码)由于X86指令的长度不一致,必须用一个单元进行“翻译”,真正的内核按翻译后要求来工作。
EC(Embedded Controller,嵌入式控制器) 在一组特定系统中,新增到固定位置,完成一定任务的控制装置就称为嵌入式控制器。
Embedded Chips(嵌入式) 一种特殊用途的CPU,通常放在非计算机系统,如:家用电器。
EPIC(explicitly parallel instruction code,并行指令代码) 英特尔的64位芯片架构,本身不能执行x86指令,但能通过译码器来兼容旧有的x86指令,只是运算速度比真正的32位芯片有所下降。
FADD(Floationg Point Addition,浮点加)
FCPGA(Flip Chip Pin Grid Array,反转芯片针脚栅格阵列) 一种芯片封装形式,例:奔腾III 370。
FDIV(Floationg Point Divide,浮点除)
FEMMS(Fast Entry/Exit Multimedia State,快速进入/退出多媒体状态)在多能奔腾之中,MMX和浮点单元是不能同时运行的。新的芯片加快了两者之间的切换,这就是FEMMS。
FFT(fast Fourier transform,快速热欧姆转换)一种复杂的算法,可以测试CPU的浮点能力。
FID(FID:Frequency identify,频率鉴别号码) 奔腾III通过ID号来检查CPU频率的方法,能够有效防止Remark。
FIFO(First Input First Output,先入先出队列) 这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
FLOP(Floating Point Operations Per Second,浮点操作/秒) 计算CPU浮点能力的一个单位。
FMUL(Floationg Point Multiplication,浮点乘)
FPU(Float Point Unit,浮点运算单元)
FPU是专用于浮点运算的处理器,以前的FPU是一种单独芯片,在486之后,英特尔把FPU与集成在CPU之内。
FSUB(Floationg Point Subtraction,浮点减)
HL-PBGA(表面黏著、高耐热、轻薄型塑胶球状矩阵封装)一种芯片封装形式。
IA(Intel Architecture,英特尔架构) 英特尔公司开发的x86芯片结构。
ID(identify,鉴别号码)用于判断不同芯片的识别代码。
IMM(Intel Mobile Module, 英特尔移动模块)英特尔开发用于笔记本电脑的处理器模块,集成了CPU和其它控制设备。
Instructions Cache(指令缓存)由于系统主内存的速度较慢,当CPU读取指令的时候,会导致CPU停下来等待内存传输的情况。指令缓存就是在主内存与CPU之间增加一个快速的存储区域,即使CPU未要求到指令,主内存也会自动把指令预先送到指令缓存,当CPU要求到指令时,可以直接从指令缓存中读出,无须再存取主内存,减少了CPU的等待时间。
Instruction Coloring(指令分类)一种制造预测执行指令的技术,一旦预测判断被相应的指令决定以后,处理器就会相同的指令处理同类的判断。
Instruction Issue(指令发送)它是第一个CPU管道,用于接收内存送到的指令,并把它发到执行单元。
IPC(Instructions Per Clock Cycle,指令/时钟周期) 表示在一个时钟周期用可以完成的指令数目。
KNI(Katmai New Instructions,Katmai新指令集,即SSE)
Latency(潜伏期)从字面上了解其含义是比较困难的,实际上,它表示完全执行一个指令所需的时钟周期,潜伏期越少越好。严格来说,潜伏期包括一个指令从接收到发送的全过程。现今的大多数x86指令都需要约5个时钟周期,但这些周期之中有部分是与其它指令交迭在一起的(并行处理),因此CPU制造商宣传的潜伏期要比实际的时间长。
LDT(Lightning Data Transport,闪电数据传输总线) K8采用的新型数据总线,外频在200MHz以上。
MMX(MultiMedia Extensions,多媒体扩展指令集)英特尔开发的最早期SIMD指令集,可以增强浮点和多媒体运算的速度。
MFLOPS(Million Floationg Point/Second,每秒百万个浮点操作) 计算CPU浮点能力的一个单位,以百万条指令为基准。
NI(Non-Intel,非英特尔架构)除了英特尔之外,还有许多其它生产兼容x86体系的厂商,由于专利权的问题,它们的产品和英特尔系不一样,但仍然能运行x86指令。
OLGA(Organic Land Grid Array,基板栅格阵列) 一种芯片封装形式。
OoO(Out of Order,乱序执行)Post-RISC芯片的特性之一,能够不按照程序提供的顺序完成计算任务,是一种加快处理器运算速度的架构。
PGA(Pin-Grid Array,引脚网格阵列)一种芯片封装形式,缺点是耗电量大。
Post-RISC 一种新型的处理器架构,它的内核是RISC,而外围是CISC,结合了两种架构的优点,拥有预测执行、处理器重命名等先进特性,如:Athlon。
PSN(Processor Serial numbers,处理器序列号)标识处理器特性的一组号码,包括主频、生产日期、生产编号等。
PIB(Processor In a Box,盒装处理器)CPU厂商正式在市面上发售的产品,通常要比OEM(Original Equipment Manufacturer,原始设备制造商)厂商流通到市场的散装芯片贵,但只有PIB拥有厂商正式的保修权利。
PPGA(Plastic Pin Grid Array,塑胶针状矩阵封装) 一种芯片封装形式,缺点是耗电量大。
PQFP(Plastic Quad Flat Package,塑料方块平面封装) 一种芯片封装形式。
RAW(Read after Write,写后读) 这是CPU乱序执行造成的错误,即在必要条件未成立之前,已经先写下结论,导致最终结果出错。
Register Contention(抢占寄存器)当寄存器的上一个写回任务未完成时,另一个指令征用此寄存器时出现的冲突。
Register Pressure(寄存器不足)软件算法执行时所需的寄存器数目受到限制。对于X86处理器来说,寄存器不足已经成为了它的最大特点,因此AMD才想在下一代芯片K8之中,增加寄存器的数量。
Register Renaming(寄存器重命名)把一个指令的输出值重新定位到一个任意的内部寄存器。在x86架构中,这类情况是常常出现的,如:一个fld或fxch或mov指令需要同一个目标寄存器时,就要动用到寄存器重命名。
Remark(芯片频率重标识)芯片制造商为了方便自己的产品定级,把大部分CPU都设置为可以自由调节倍频和外频,它在同一批CPU中选出好的定为较高的一级,性能不足的定位较低的一级,这些都在工厂内部完成,是合法的频率定位方法。但出厂以后,经销商把低档的CPU超频后,贴上新的标签,当成高档CPU卖的非法频率定位则称为Remark。因为生产商有权力改变自己的产品,而经销商这样做就是侵犯版权,不要以为只有软件才有版权,硬件也有版权呢。
Resource contention(资源冲突) 当一个指令需要寄存器或管道时,它们被其它指令所用,处理器不能即时作出回应,这就是资源冲突。
Retirement(指令引退)当处理器执行过一条指令后,自动把它从调度进程中去掉。如果仅是指令完成,但仍留在调度进程中,亦不算是指令引退。
RISC(Reduced Instruction Set Computing,精简指令集计算机) 一种指令长度较短的计算机,其运行速度比CISC要快。
SEC(Single Edge Connector,单边连接器) 一种处理器的模块,如:奔腾II。
SIMD(Single Instruction Multiple Data,单指令多数据流)能够复制多个操作,并把它们打包在大型寄存器的一组指令集,例:3DNow!、SSE。
SiO2F(Fluorided Silicon Oxide,二氧氟化硅) 制造电子元件才需要用到的材料。
SOI(Silicon on insulator,绝缘体硅片)
SONC(System on a chip,系统集成芯片) 在一个处理器中集成多种功能,如:Cyrix MediaGX。
SPEC(System Performance Evaluation Corporation,系统性能评估测试) 测试系统总体性能的Benchmark。
Speculative execution(预测执行)一个用于执行未明指令流的区域。当分支指令发出之后,传统处理器在未收到正确的反馈信息之前,是不能做任何工作的,而具有预测执行能力的新型处理器,可以估计即将执行的指令,采用预先计算的方法来加快整个处理过程。
SQRT(Square Root Calculations,平方根计算)一种复杂的运算,可以考验CPU的浮点能力。
SSE(Streaming SIMD Extensions,单一指令多数据流扩展) 英特尔开发的第二代SIMD指令集,有70条指令,可以增强浮点和多媒体运算的速度。
Superscalar(超标量体系结构)在同一时钟周期可以执行多条指令流的处理器架构。
TCP(Tape Carrier Package,薄膜封装)一种芯片封装形式,特点是发热小。
Throughput(吞吐量) 它包括两种含义:
第一种:执行一条指令所需的最少时钟周期数,越少越好。执行的速度越快,下一条指令和它抢占资源的机率也越少。
第二种:在一定时间内可以执行的最多指令数,当然是越大越好。
TLBs(Translate Look side Buffers,翻译旁视缓冲器) 用于存储指令和输入/输出数值的区域。
VALU(Vector Arithmetic Logic Unit,向量算术逻辑单元) 在处理器中用于向量运算的部分。
VLIW(Very Long Instruction Word,超长指令字) 一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。
VPU(Vector Permutate Unit,向量排列单元) 在处理器中用于排列数据的部分。