第二章 中央处理单元 Center Processing Unit(CPU)
CPU的性能指标 1、主频,也就是CPU的时钟频率,简单地说也就是CPU的工作频率。一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。不过由于各种CPU的内部结构也不尽相同,所以并不能完全用主频来概括CPU的性能。至于外频就是系统总线的工作频率;而倍频则是指CPU外频与主频相差的倍数。用公式表示就是:主频=外频×倍频。
2、内存总线速度或者叫系统总线速度,一般等同于CPU的外频。内存总线的速度对整个系统性能来说很重要,由于内存速度的发展滞后于CPU的发展速度,为了缓解内存带来的瓶颈,所以出现了二级缓存,来协调两者之间的差异,而内存总线速度就是指CPU与二级(L2)高速缓存和内存之间的工作频率。
3、L1高速缓存,也就是我们经常说的一级高速缓存。在CPU里面内置了高速缓存可以提高CPU的运行效率。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。采用回写(WriteBack)结构的高速缓存。它对读和写操作均有可提供缓存。而采用写通(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、工作电压。工作电压指的也就是CPU正常工作所需的电压。早期CPU(386、486)由于工艺落后,它们的工作电压一般为5V(奔腾等是3 6、工作电压。工作电压指的也就是CPU正常工作所需的电压。早期CPU(386、486)由于工艺落后,它们的工作电压一般为5V(奔腾等是3.5V/3.3V/2.8V等),随着CPU的制造工艺与主频的提高,CPU的工作电压有逐步下降的趋势,Intel最新出品的Tualatin核心Celeron已经采用1.475V的工作电压了。低电压能解决耗电过大和发热过高的问题。这对于笔记本电脑尤其重要。
7、乱序执行和分枝预测,乱序执行是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。分枝是指程序运行时需要改变的节点。分枝有无条件分枝和有条件分枝,其中无条件分枝只需要CPU按指令顺序执行,而条件分枝则必须根据处理结果再决定程序运行方向是否改变,因此需要“分枝预测”技术处理的是条件分枝。
8、协处理器或者叫数学协处理器。在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!指令集
计算机组成 计算机系统主要由计算机主机/各种I/O外设/系统软件组成; 计算机主机则主要由处理器/主存/总线与各种接口组成; 采用LSI集成于一个电子芯片内的处理器叫做微处理器; 主机可有多个微处理器/运行系统软件; 并行处理计算机的CPU可由多个处理器组成。
2.1 CPU内部的组成 中央处理器简称CPU,是计算机系统的核心。 主要功能:程序的执行,信息的处理,I/O设备的控制。 组成:运算器,寄存器,控制器,时钟电路,(某些CPU中还包括一定容量的ROM、RAM存储器)
中央处理器的基本结构与组成 通用 寄存器组 运算寄存器 外围总线 IO 控制 电路 ALU 执行 控制 指令队列 电路 缓冲器 标志寄存器 4个 段寄存器 1个 IP寄存器 内部 寄存器 运算寄存器 IO 控制 电路 外围总线 执行 控制 电路 ALU 指令队列 缓冲器 标志寄存器
2.1.1 运算器 运算器是加工处理数据的功能部件。 运算器主要由下列部件组成: 算术逻辑单元(ALU) 通用寄存器和状态标志寄存器 2.1.1 运算器 运算器是加工处理数据的功能部件。 运算器主要由下列部件组成: 算术逻辑单元(ALU) 完成二进制信息的定点算术运算,逻辑运算,移位操作 通用寄存器和状态标志寄存器 存放数据,运算的中间、最后结果,各种状态标志 有的CPU中包含浮点处理单元 算术逻辑单元和通用寄存器的位数决定了CPU 的字长。
3.1.2 寄存器组(Register) 寄存器:是CPU中的重要组成部分,是CPU内部的临时存储单元。 分类:数据寄存器、地址寄存器、标志状态寄存器、控制寄存器和一些其它作用的寄存器。但总体可分为通用寄存器和专用寄存器两大类。
一、通用寄存器组 ——在运算中存储数据与地址 累加寄存器 AX(Accumulater) 低位累加器 AL(Loworder Accumulater) 变址寄存器 XR(Index Register) 基址寄存器 BR(Base Register) 标志寄存器 FR(Flag Register) 以Intel 80486为例(32位),其通用寄存器有: EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI (早期16位机器为AX,BX,CX,DX,BP,SP,SI,DI) CS,DS,ES,SS,FS,GS (早期16位机器只有前4个)
状态标志寄存器(Flag Register) ——用于存放ALU工作时产生的状态信息。 二、专用寄存器 ——保存系统运行必需的重要数据。 状态标志寄存器(Flag Register) ——用于存放ALU工作时产生的状态信息。 状态标志寄存器也叫标志寄存器。每一位单独使 用,称为标志位。它反映了ALU当前的工作状态 或条件转移指令的转移条件。具体常用如下: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 V D I T S Z A P C 辅助进位位 奇偶标志位 进位标志位 溢出标志位 方向标志位 中断允许位 单步标志位 结果符号位 零标志位
指令寄存器IR(Instruction Register) ——用于存放将要执行的指令。 指令指针寄存器IP,又称指令计数器。 ——用于产生和存放下条待取指令的地址。 堆栈指针寄存器SP——指示堆栈栈顶的地址。 变址寄存器 ——变址寻址中存放基础地址的寄存器 段地址寄存器 ——计算机内存大时多把内存存储空间分成段(例如64KB)来管理,使用时以段为单位进行分配。段地址寄存器即是在段式管理中用来存放段地址的寄存器。
三、其他寄存器 ——根据CPU结构特点而设置的专用寄存器。 Intel 80486设有下列专用寄存器: 机器状态字寄存器MSW 描述符寄存器——存储管理。 测试寄存器——用于存储管理。 控制寄存器 –虚地址方式、实地值方式选择 调试寄存器——用于程序调试。
2.1.3 控制器 一、控制器的组成 控制器是指挥与控制整台计算机各功能部件协同工 作、自动执行计算机程序的部件。它把运算器和存 2.1.3 控制器 一、控制器的组成 控制器是指挥与控制整台计算机各功能部件协同工 作、自动执行计算机程序的部件。它把运算器和存 储器以及I/O设备组成一个有机的系统。 控制器的作用是控制程序(即指令)的有序执行。 基本功能 :取指令、分析解释指令、执行指令(包括控制程序和数据的输入输出、以及 对异常情况和特殊请求的处理) 组成:一般由指令指针寄存器IP、指令寄存器IR、指 令译码器ID、控制逻辑电路和时钟控制电路等组成.
中央处理器的基本结构与组成 通用 寄存器组 运算寄存器 外围总线 IO 控制 电路 ALU 执行 控制 指令队列 电路 缓冲器 标志寄存器 4个 段寄存器 1个 IP寄存器 内部 寄存器 运算寄存器 IO 控制 电路 外围总线 执行 控制 电路 ALU 指令队列 缓冲器 标志寄存器
2.2、控制逻辑电路的实现 ——微程序控制和硬布线逻辑 2.2、控制逻辑电路的实现 ——微程序控制和硬布线逻辑 控制逻辑电路用来管理执行每条指令时所产生的一系 列基本动作。指挥各部件协同动作完成指令规定的功能。 微程序控制——固化软件的微程序控制方法 优:充分利用当前系统的硬件,指令修改调试方便。 缺:每条指令由多条微指令实现,多次访问控制存储 器缓慢费时。CISC计算机和486以下微机多用。 硬布线控制逻辑——硬件控制指令执行的方法 通过硬件逻辑电路之间的直接连线来产生计算机各部 分操作所需要的控制信号。精简指令系统计算机采用。 优:速度快 缺:不容易修改和扩展
2.3、时钟控制电路 ——为每条指令按时间顺序执行提供基准信号。 2.3、时钟控制电路 ——为每条指令按时间顺序执行提供基准信号。 时钟控制电路由时钟脉冲发生器(石英晶体振荡器) 和启停控制电路组成。 石英晶体振荡器产生一定频率的时钟脉冲信号,作为整个机器的时间基准源。 主频称为主机振荡频率,它的高低取决于这台计算机的CPU的适应能力。 时钟周期:主频的倒数,表示相邻脉冲的时间间隔。 指令周期:执行一条指令所需要的时间。 机器周期 :将指令周期划分成几个时间段,每个阶段称为一个机器周期。 时钟周期≤机器周期≤指令周期
2.4微处理器采用的新技术 2.4.1、流水线工作原理 冯·诺依曼型计算机工作原理 依序逐条执行程序指令,每条指令的各个操作也按顺序串行执行。例如:加法指令依序分成取指令/指令译码/取数操作/运算处理和写结果五个步骤。执行过程如下: 特点:控制简单 ,速度低,机器各部件利用率低。例如在取指令时译码器和运算器等都空闲,而在存结果时其它部件也在空闲。 若能把程序中的多条指令在时间上重叠起来执行会否显著提高机器速度呢? 取指1 译码1 取数1 运算1 存数1 取指2 译码2 取数2 运算2 存数2…....
指令的重叠执行——流水线工作原理 五条指令重叠执行情况: 1T 2T 3T 4T 5T ——机器执行时间 取指1译码1取数1 运算1 存数1 取指2译码2 取数2 运算2 存数2 取指3 译码3 取数3 运算3 存数3 取指4 译码4 取数4 运算4 存数4 取指5 译码5 取数5 运算5 存数5 由上可见,若将一条指令的执行时间分为五段, 每段所用时间为T,则一条指令执行时间为5T。系统工作正常后每隔T时间就得到一条指令的处理结果。平均速度提高了4倍。这种工作方式称为流水线处理。本例为五级流水线处理方式。
流水线的一些问题解决 流水线把取指与执行分开,使取指与执行同时进行,减少了取指等待时间,大大提高了CPU的利用率。同时降低了对与之匹配的存储器的存取速度要求。但流水线处理方式也存在一些困难: 数据相关:如果第二条指令的操作数是前一条指令保存的结果,那么就出现数据相关。两级流水线不存在数据相关现象。 条件转移分支指令的处理:猜测法 流水线机器对中断或故障的处理响应: 不精确断点法:处理完流水线中的指令再响应 精确断点法:立即响应,精确返回
2.4.2 cache技术 为了提高存取速度,可以在CPU和主存之间设置一种“高速缓冲存储器”(cache)使存取周期与时钟周期匹配。 80386以上档次的微机中都配有高速缓存。Pentium等系列的CPU内部都配有32~64K的内部cache,(称为一级cache),而放在CPU外部的计算机主板上的cache(二级cache)可达256~512K
2.4.3 NSP技术 随着多媒体应用的发展,计算机不但要处理简单的文字和静止的图像,还要实时处理动态图像,需要频繁地进行把模拟信号转换为数字信号的“A/D转换”和把数字信号 转换为模拟信号的“D/A转换”。从这类转换得到的声音和图像的数字信息量都很大。为了减 轻对它们进行传输、存储和加工的负担,必须对这些信号进行“压缩”和“解压缩”等处理。这需 要用到DSP技术,其全名叫“数字信号处理”(Digital signal Processing)技术。
在早期的PC机中,DSP常常通过配有专用的NSP芯片的附加设备来解决。Pentium处理器大大提高了微处理器的处理速度, 可以把处理图像和声音的功能都集成到CPU芯片中,通常把这种将音频和视频信息集成到CPU内部统一进行处理 的方式称为“本地信号处理”(Native Signal Processing)或“主体信号处理”,简称NSP。NSP从 Pentium/75已开始采用,到1997年Intel推出Pentium MMX芯片后更迅速流行。目前NSP技术已经被计算机工业所接受,成为一种新的接受标准。这一技术将对今后的计算机应用和技术发展产生重大影响。
2.4.4 RISC技术 RISC是80年代发展起来的一种微处理器体系结构,全称为“精简指令集计算” (Reduced Instruction Set Computing) 体系结构。随着微处理器位数的增加和集成度的提高, CISC体系结构指令系统不断扩大,译码和控制电路也日趋复 杂。指令系统的膨胀不但增加了微处理器的设计难度,从而提高了它们的成本,也增大了执行指令时所需要的时钟周期数,反过来降低了计算机的处理速度。
RISC的支持者主张精简指令系统,只选取使用频率(80%-90%)高的少数指令,并使所有的简单指令能在一个时钟周期内执行完。他们把这种新的微处理器体系结构称为“精简指令集计算”体系结构(简称RISC),以区别于传统的“复杂指令集计算”(简称CISC)体系结构。但目前,RISC设计人员追求的目标已从原来减少指令的数量,变成通过改变芯片的体系结构、降低执行每条指令所需要的时钟周期数。RISC设计的新趋势主要有以下的特点(PowerPC Manual – section 3): (1)设置更多的通用寄存器,以便尽可能减少CPU对内存的访问; (2)采用“调入/存储”(LSU)的体系结构; (3)统一指令长度,让所有指令等长(通常为32位) ; (4)内置高性能的浮点运算部件FPU,加快浮点处理速度。
上述作法近几年也为许多CISC芯片制造商所采用。他们在自己的CISC产品中融进了RSC处理器的特征,从而模糊了CISC和RISC的界限。“使每条指令只占用一个时钟周期或者更少”已成为RISC和CISC制造商的共同目标。 综上可见,为让微处理器获得更快的处理能力,我们不仅要提高时钟频率,还需设法降低执行指令所花费的时钟周期数,并且在缩短存取周期、实现并行处理等方面下功夫。以上介绍的这些技术,正是反映了围绕上述目标所作出的努力。
3.2 Intel 80X86微处理器 3.2.1 8086微处理器 Intel公司1978年研制成功 时钟频率:4.7MHz~10MHz 3.2.1 8086微处理器 Intel公司1978年研制成功 时钟频率:4.7MHz~10MHz 2.9万个晶体管、91种指令 由EU执行单元和BIU总线接口单元组成 20位地址总线,寻址能力220=1048576=1(MB) 16位数据总线 4个16位通用寄存器:AX,BX,CX,DX, 5个16位地址指针寄存器:IP,BP,SP,SI,DI 4个16位段界寄存器:CS,DS,SS,ES
二、80286微处理器 Intel公司1982年推出 13.4万个晶体管,时钟频率6MHz~20MHz 向下兼容8086,具有8086的基本结构,但增强了存储管理和保护虚地址结构,可支持多用户系统 具有8086的全部指令,并新增加25种指令 16位数据线,24根地址线,寻址能力达到16MB 有实地址和16MB保护虚地址两种工作模式,通过指 令实现转换。实地址模式下完全兼容 8086 CPU并能 运行8086软件,兼容目标代码;保护虚地址模式下, 可管理内存达16MB,并且对使用者来说存储器的分 配方式与寻址方式没有改变。
三、80386微处理器 Intel公司1985年推出32位寄存器,32位数据总线,32位地址总线,27.5万晶体管,主频16MHz ― 66MHZ,向下兼容8086和80286CPU 四、80486微处理器 Intel公司1989年推出32位寄存器,32位数据总线,32位地址总线120万晶体管,主频 25MHz ― 100MHZ内含8KB高速缓冲存储器和80387协处理器486DX具有倍速功能,内部比外部快几倍,向下兼容8086、80286和80386CPU
Pentium体系结构特点 五、Pentium 微处理器 内含RISC型超标量U、V两条流水线整数处理单元 拥有超级流水浮点处理单元(FPU) 内部Cache(L1)增加到8K+8K(80486仅有8K) 外部数据总线宽度增加到64位,地址总线32条。 增加智能动态分支预测电路,支持乱序执行功能,具有分支预测算法。 增加了MMX多媒体技术,解决视频、音频、图像和多媒体应用中的处理速度。 1993年,Intel公司推出新一代 CPU,为避免竞争对手威胁故意不叫80586而定名叫做 Pentium。它内含晶体管320万只,主频100/133/166MHz
六、Pentium II 的基本特性 PentiumⅡ在增加MMX指令的基础上L1 Cache增加了一倍(各为16KB)。CPU与L2 Cache 之间的通讯速率为时钟频率的一半。 PⅡ具有从CPU到L2和主存双重独立总线体系结构、动态执行技术和MMX技术三大特征,主频达233/266/300MHz或更高。 PⅡ的L2在CPU外,与CPU一起安装在小电路板上,采用单边连接SEC(Single Edge Contact)盒式封装技术,用塑料及金属外壳保护,整个成为 Pentium Ⅱ。
七. Pentiu III处理器 1999年2月面世,CPU主频从400M到1.13GHz不等。其集成度最高为2800万个管子/片。内含有: 32K一级Cache,512K速度为主频一半的二级Cache 内置序列号作为微处理器的系统标识符 在保留MMX指令的基础上增加许多新的多媒体指令. 采用数据流单指令多数据扩展技术(SSE:Streaming SIMD Extension) 配合新指令增加了8个128位的单精度寄存器.
Pentium 4处理器 于2000年6月面世,主频为1.4GHz和1.5GHz,集成度高达4200万个管子/片 20级的超级流水线 高效的乱序执行功能 2倍数的ALU 整数运算单元以双倍主频的速度工作 新型片上跟踪缓存 能存储x86指令解码后的微操作指令 SSE2指令扩展 能处理128位、SIMD(单指令流多数据流)的整数和浮点双精度数 400MHz前端总线FSB 使用100MHz外频X4倍频方式实现CPU和内存的配合。
九 AMD系列微处理器简介
十 其它公司微处理器简介
AMD与Intel 对决 一方是我们在64位领域绝对支持的频率为2.4GHz的 AMD Opteron处理器;另一方是在刚刚这个领域初露头脚得新手:由Intel推出的携带最新PCI-E和DDR2技术的 “Nocona” 3.4GHz Xeon处理器,我们被告知,Intel决心像以往那样同样也要在64位市场上夺取做大的市场份额。
2004年可以说是AMD重大变革的一年,基于Barton核心的Athlon XP成为市场上最为畅销的AMD处理器,Athlon XP 2500+成为了用户心目中最具有性价比的处理器,为AMD的中低端市场打下了扎实的基础。古话说“逆水行舟,不进则退”,AMD也深知要与Intel的P4抗衡,Socket 462架构越来越难了。因此AMD公司改变了销售策略,让Socket 462架构的产品去对付Intel的赛杨系列。而主流和高端产品也就由Socket 754和Socket 939所代替。他把32位桌面处理器推向了64位,可以说是跨时代的一步。从此,桌面PC领域也就进入了64位的时代。在这方面AMD走在了Intel的前列。
2005年2月14日发布会现场,英特尔高层和技术人员在介绍五款64位奔腾4处理器(一款3. 73GHz奔腾4至尊版,四款3. 0GHz-3 2005年2月14日发布会现场,英特尔高层和技术人员在介绍五款64位奔腾4处理器(一款3.73GHz奔腾4至尊版,四款3.0GHz-3.6GHz奔腾4 6XX处理器)时,主要谈及了它们的四大技术亮点:拥有更大容量的2MB二级缓存;支持64位内存寻址的64位扩展技术(EM64T);拥有阻止病毒利用缓冲区溢出作恶的Excute Disable Bit硬件防病毒技术;源自笔记本电脑处理器、可视处理器工作负担来调节其时钟频率实现节能的增强型Speedstep技术(EIST,64位奔腾4至尊版不具备)。 不 过,这五大技术亮点在与AMD Athlon 64/FX处理器的竞争中却没体现出任何“必杀”效果。Athlon 64/FX的64位扩展技术AMD64和硬件防毒技术Ehanced Virus Protection与英特尔同类技术原理相似,但应用时间更早。Athlon 64/FX虽还未集成AMD PowerNow!节能技术,但节能是总想法儿省钱的商业用户更为关注的,并非家用PC消费者最看重的要素,而且Athlon 64/FX要集成这项技术也不是什么难题。
得人心者得天下 能比较的结果告诉我们,从技术角度来说,AMD已非昔日吴下阿蒙,64位PC处理器性能之战中,它与英特尔势均力敌。 从价格角度来说,目前国内Athlon 64零售价位空间在1000元至2500元,只有一款顶级产品Athlon 64 FX-53零售价接近7000元。而英特尔方面,时钟频度最高的3.73GHz奔腾4至尊版的千片批发单价高达999美元,时钟频度最低的奔腾4 630(3.0GHz)千片批发单价也有224美元,AMD产品的性价比优势不言而喻。