《微型计算机技术》第12章 32位微处理器的硬件特点_第1页
《微型计算机技术》第12章 32位微处理器的硬件特点_第2页
《微型计算机技术》第12章 32位微处理器的硬件特点_第3页
《微型计算机技术》第12章 32位微处理器的硬件特点_第4页
《微型计算机技术》第12章 32位微处理器的硬件特点_第5页
已阅读5页,还剩168页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/1/301微型计算机技术WeixinɡJisuɑnjiJishu

(第3版)

2023/1/302

第12章

32位微处理器的

硬件特点2023/1/30332位微处理器的硬件特点12.132位微处理器的基本结构12.232位微处理器的编程结构12.332位微处理器的引脚功能12.432位微处理器的基本时序

2023/1/30432位微处理器的基本结构12.1.1

Intel80386微处理器的基本结构12.1.2Intel80486微处理器的基本结构12.1.3IntelPentium微处理器的基本结构12.1.4IntelPentiumPro微处理器的主要特点12.1.5IntelPentiumMMX微处理器的主要特点12.1.6IntelPentiumⅡ微处理器的主要特点12.1.7IntelPentiumⅢ微处理器的主要特点12.1.8IntelPentium4微处理器的主要特点12.1.9IntelPentiumM微处理器的主要特点2023/1/30512.1.1Intel80386微处理器的基本结构

80386

是Intel公司于1985年10月推出的一种高性能的32位微处理器,它与8086

、80286相兼容,它是为高性能的应用领域与多用户、多任务操作系统设计的一种高集成度的芯片。80386

具有片内集成的存储器管理部件和保护机构,它的数据线是32位,内部的寄存器结构和操作也是32位,具有32位地址线,能直接寻址4GB(1GB为230

B)的物理地址空间,它的虚拟存储空间为64TB(1TB为240

B)。2023/1/306Intel80386微处理器

80386

微处理器的内部结构如图12-1所示。由图可见,80386

由六大部件组成,即总线接口部件、指令预取部件、指令预译码部件、执行部件、分段部件和分页部件。2023/1/307

80386微处理器的内部结构

2023/1/3081.总线接口部件总线接口部件(BusInterfaceUnit,BIU)提供中央处理部件和系统之间的高速接口,其功能是产生访问存储器和I/O端口(即完成总线周期)所必需的地址、数据和命令信号。这些动作能与当前的任何操作同时进行。总线接口部件被设计成能接收并优化多个内部总线的请求,使其在服务于请求时能最大限度地利用所提供的总线宽度。80386的总线周期仅为2个时钟。2023/1/3092.指令预取部件指令预取部件(InstructionPrefetchUnit,IPU)包含16B指令预取队列寄存器,当总线空闲周期到来时,把指令流的4B读出,存到指令预取队列寄存器中。80386的平均指令长度为3.5B。所以预取队列寄存器中一般可存放5条指令。2023/1/30103.指令预译码部件指令预译码部件(InstructionpreDecodeUnit,IDU)的作用是对指令操作码进行预译码,可以完成从指令到微指令的转换,并将其存放在已译码的指令队列中,供执行部件使用。这样,可以节省取指令和译码的时间。2023/1/30114.执行部件执行部件(ExecutionUnit,EU)包括8个32位通用寄存器(寄存器堆)、一个64位桶形移位寄存器(BarrelShifter)和一个乘/除法器。通用寄存器既可用于数据操作,也可用于地址计算。桶形移位寄存器用来有效地实现指令的移位、循环移位和位操作,同时也用来帮助进行乘法和其他操作,在一个时钟周期内能将任何类型的数据移动任意位。乘/除法器能在1个时钟周期完成1位的乘/除法,最快允许在40个时钟周期内进行32位的乘法或除法。上述IPU、IDU和EU三部分又被合称为中央处理部件(CentralProcessingUnit,CPU)。2023/1/30125.分段部件分段部件(SegmentationUnit,SU)按指令要求实现有效地址的计算,以完成从逻辑地址到线性地址的转换,同时完成总线周期分段的违法检查,由图12-1中的保护测试单元(ProtectionTestUnit)完成。然后将转换后的线性地址连同总线周期事务处理信息发送到PU。SU通过提供一个额外的寻址器件对逻辑地址空间进行管理。可以实现任务之间的隔离,也可以实现指令和数据区的再定位。2023/1/30136.分页部件分页部件(PagingUnit,PU)把由SU或IPU产生的线性地址转换成物理地址,这种转换是通过两级页面重定位机构来实现的。所以,PU提供了对物理地址空间的管理。每一页为4KB,每一段可以是一页,也可以是若干页。PU是80386芯片新增的部件,又是一个可选件,若不使用PU,80386

的线性地址即是物理地址。上述SU和PU两部分合称为存储器管理部件(MemoryManagementUnit,MMU)。2023/1/301412.1.2Intel80486微处理器的基本结构Intel公司于1989年4月推出了一种新的32位微处理器80486

,同80386

相比,在相同的工作频率下,其处理速度提高了2~4倍。80486

采用了精简指令集计算机(ReducedInstructionSetComputer,RISC)技术,降低了执行每条指令所需的时钟数,使其能达到1畅2条指令/时钟。2023/1/3015Intel80486微处理器的基本结构80486

以前的处理器执行一条指令是取得一个地址,再进行一个数据的输入输出,而80486

采用一种称为猝发式总线(BurstBus)的技术,使取得一个地址后,与该地址相关的一组数据都可以进行输入输出,有效地解决了微处理器同内存储器之间的数据交换问题。加上80486

内部集成有浮点部件(FloatingPointUnit,FPU)和超高速缓冲存储器(Cache),CPU和FPU以及CPU和Cache之间都采用高速总线进行数据传送,使80486CPU的处理速度以及80486

系统的处理速度都得到了极大提高。

80486

6的内部结构如图12-2所示。2023/1/3016Intel80486微处理器的基本结构

2023/1/301780486微处理器的内部结构2023/1/3018Intel80486微处理器的基本结构80486

基本上沿用了80386

的体系结构,以保持同86系列微处理器在目标码级的兼容性。它由8个基本部件组成:总线接口部件、指令预取部件、指令译码部件、执行部件、控制部件、存储器管理部件以及超高速缓冲存储部件(Cache)和高性能浮点部件。其中,后两个部件是在80386的基础上为提高80486的性能而设计的。2023/1/3019#Intel80486DX=高性能的+高性能的+8KBL1Cache8038680387*面向多处理器结构*主频提高从33MHz-50/60MHz*采用部分RISC技术(ReducedInstructionSetComputer)1.2条/时钟8087NDP数值数据处理器80287与80387数学处理器2023/1/302012.1.3IntelPentium微处理器的基本结构

Pentium

奔腾57条MMX指令PentiumProMMX高能奔腾多能奔腾

PentiumII

70条SSE指令

PentiumIII

144条SSE2指令新的IA-32Pentium4广度深度57条MMX指令2023/1/3021IntelPentium微处理器的基本结构

Pentium是Intel公司于1993年3月推出的第五代80X86系列微处理器,中文译名为“奔腾”。

Pentium的内部结构如图12-3所示。同80486

相比,Pentium在结构上有如下特点

2023/1/30222023/1/30231.超标量流水线

Pentium由U和V两条指令流水线构成超标量流水线结构,其中,每条流水线都有自己的ALU、地址生成逻辑和Cache接口。在每个时钟周期内可执行两条整数指令,每条流水线分为指令预取、指令译码、地址生成、指令执行和回写5个步骤。当一条指令完成预取步骤时,流水线就可以开始对另一条指令进行操作,极大地提高了指令的执行速度。2023/1/30242.重新设计的浮点部件

Pentium的浮点部件在80486的基础上做了重新设计,其执行过程分为8级流水,使每个时钟周期能完成一个浮点操作(或两个浮点操作)。采用快速算法可使诸如ADD、MUL和LOAD等运算的速度至少提高3倍,在许多应用程序中利用指令调度和重叠(流水线)执行可使性能提高5倍以上。同时,用电路进行固化,用硬件来实现。2023/1/30253.独立的指令Cache和数据Cache

Pentium片内有两个8KB的Cache———

双路Cache结构,一个是指令Cache,一个是数据Cache。转换后备缓冲器(TranslatLook‐asideBuffer,TLB)的作用是将线性地址转换为物理地址。这两种Cache采用32×8线宽,是对Pentium的64位总线的有力支持。指令和数据分别使用不同的Cache,使Pentium中数据和指令的存取减少了冲突,提高了性能。2023/1/3026独立的指令Cache和数据Cache

Pentium的数据Cache有两个接口,分别与U和V两条流水线相连,以便能在相同时刻向两个独立工作的流水线进行数据交换。当向已被占满的数据Cache中写数据时,将移走当前使用频率最低的数据,同时将其写回内存,这种技术称为Cache回写技术。由于CPU向Cache写数据和将Cache释放的数据写回内存是同时进行的,所以采用Cache回写技术将节省处理时间。2023/1/30274.4分支预测

Pentium提供了一个称为分支目标缓冲器(BranchTargetBuffer,BTB)的小Cache来动态地预测程序的分支操作。当某条指令导致程序分支时,BTB记住该条指令和分支目标的地址,并用这些信息预测该条指令再次产生分支时的路径,预先从该处预取,保证流水线的指令预取步骤不会空置。这一机构的设置可以减少在循环操作时对循环条件的判断所占用的CPU的时间。2023/1/30285.采用64位外部数据总线

Pentium芯片内部的ALU和通用寄存器仍是32位,所以还是32位微处理器,但它同内存储器进行数据交换的外部数据总线采用64位总线,两者之间的数据传输率可达528MBps。2023/1/302912.1.4IntelPentiunPro微处理器的主要特点

PentiumPro是Intel公司于1995年11月推出的80X86系列中又一个新品种,中文名为“高能奔腾”。同Pentium芯片相比,PentiumPro芯片采用了新的体系结构。2023/1/30301.一个封装内安装了两个芯片

PentiumPro微处理器在一个封装内包含两个芯片,一个是CPU内核,包括两个8KB的L1Cache(一级高速缓存),集成度为550万个晶体管;另一个是L2Cache(二级高速缓存),容量为256KB,集成度为1550万个晶体管。这一L2Cache由全速总线同CPU内核相连,从而提高了程序的运行速度。2023/1/30312.指令分解为微操作

PentiumPro把CISC结构的指令分解为若干像RISC指令的微操作,使它能在流水线上并行地执行,以提高性能。这样既保持了同以往的80X86微处理器的兼容性,使80X86前期产品的庞大软件资源能在PentiumPro上运行,同时又采用RISC技术提高了指令的运行速度。2023/1/30323.乱序执行和推测执行

乱序执行是指不完全按程序规定的指令顺序依次执行;推测执行是指遇到转移指令时,不等结果出来先推测可能往哪里转移,并提前执行。由于推测不一定全对,因而带有一定风险,又称为风险执行。乱序执行是PentiumPro的一个极具生命力的特点,它同推测执行结合,允许CPU使指令流能最有效地利用内部资源。2023/1/30334.超级流水线和超标量技术

PentiumPro具有3路超标量结构,其并行执行指令的能力优于Pentium芯片;同时PentiumPro又具有14级超级流水线结构,将任一条指令的全部执行分成一连串的指令步(这里分成14个指令步),这从另一个角度提高了处理器的并行处理能力。这两种“超”技术的结合,使PentiumPro的性能得到极大的提高。2023/1/303412.1.5IntelPentiumMMX微处理器的

主要特点

1997年1月9日,IntelP55C微处理器芯片正式推出,英文全称为PentiumwithMMX和PentiumMMX,中文名为“多能奔腾”。MMX是MultiMediaeXtension的缩写,意为“多媒体扩展”。这是为提高PC处理多媒体和通信能力而推出的新一代处理器技术,是对32位Intel体系结构(IntelArchitecture32,IA32)指令系统的扩展,它通过在奔腾处理器中增加4种新的数据类型、8个64位寄存器和57条新指令来实现的。2023/1/3035IntelPentiumMMX多能奔腾中的MMX技术是Intel80X86微处理器体系结构的重大革新,增加了很多新技术,主要如下。2023/1/30361.引入新的数据类型

多能奔腾定义了4种新的64位数据类型及其紧缩(又称压缩)表示,它们是紧缩字节(8个字节紧缩在一个64位数据中)、紧缩字(4个字紧缩在一个64位数据中)、紧缩双字(2个双字节紧缩在一个64位数据中)和4字(一个64位信息)。而新增加的8个64位通用寄存器能够保存各类紧缩的64位数据。这对多媒体处理十分有用,例如,处理一幅256级灰度的图像,由于图像像素数据通常以8位整数的字节表示,用MMX技术,8个这样的像素将紧缩为一个64位值,并可移入一个MMX寄存器。2023/1/3037新的数据类型当一条MMX指令执行时,它将从MMX寄存器中一次对所有8个像素值并行地完成其算术或逻辑操作,并将结果写入一个MMX寄存器。这样用MMX指令进行一次紧缩型字节操作,一次就相当于处理了8个像素,而且能在1个时钟周期内能执行2条指令,使多能奔腾的性能大大超过奔腾。2023/1/3038新的数据类型实际上这是采用SIMD(单指令流多数据流)技术的结果。它能在运用单条指令的同时并行处理多个数据元素的特性,在一个周期内并行处理4种类型最多8组的64位宽度的模拟/数字的数据,诸如声音数据、图形和图像数据等模拟/数字的数据,使并行性进一步增强。2023/1/30392.采用饱和运算饱和运算也是MMX支持的一种新的运算,与常用的环绕处理相对比,饱和运算的优点表现在:在常规的环绕处理中,上溢或下溢的结果均被截断,只有结果的低位(有效位)能被返回,忽略了进位。而在饱和运算中,上溢或下溢的结果被截取(饱和)至该类数据类型的最大值或最小值,如表12-1所示。例如,2个16位的带符号整数F000H+4000H,其和为13000H,由于保留结果的寄存器为16位,因此最高位1被截断,结果为3000H,小于任一个输入数。2023/1/3040采用饱和运算而饱和算法则不同,在饱和算法中若发生上溢,则保留结果为FFFFH(16位整数的最大值),若发生下溢,则保留结果为0000H。这在图形学中很有用。例如,一个暗色多面体正在按黑色做浓淡处理,忽然中间出现一个白色的像素,而饱和算法可以保证不会出现这样的问题,因为计算结果被限制在最大的黑色值,不会溢出而变成白色。2023/1/3041表12-1饱和数值范围

2023/1/30423.具有积和运算能力

在多媒体应用程序中,必须处理大量数据,矢量点积和矩阵乘法是处理图像、音频、视频数据的最基本算法,用多能奔腾中的PMADDWD指令(紧缩字相乘并加结果,即积和运算)可以大大提高矢量点积的运算速度。这在音频和视频图像的压缩和解压缩中是经常用到的。2023/1/304312.1.6IntelPentiumⅡ微处理器

的主要特点1997年5月,Intel公司推出PentiumⅡ微处理器,简称PⅡ,中文名为“奔腾Ⅱ”

。PentiumⅡ是Intel公司PentiumPro级微处理器的第二代产品,它把多媒体增强技术(即MMX技术)融合入高能奔腾处理器之中,使PentiumⅡ芯片既保持了高能奔腾原有的强大处理功能,又增强了PC在三维图形、图像和多媒体方面的可视化计算功能和交互功能。从系统结构角度看,PentiumⅡ芯片采用了如下几种先进技术,使其在整数运算、浮点运算和多媒体信息处理等方面具有十分优异的功能。2023/1/30441.多媒体增强技术(MMX技术)

在PentiumⅡ中采用了以下一系列多媒体增强技术:①单指令多数据流(SingleInstructionMultipleData,SIMD)技术,使一条指令能完成多重数据的处理工作,允许芯片减少在视频、声音、图像和动画中计算密集的循环。②针对多媒体操作中经常出现的大量并行、重复运算,新增加了57条功能强大的指令,用以更有效地处理声音、图像和视频数据。强大的MMX技术指令集充分利用了动态执行技术,在多媒体和通信应用中发挥了卓越的功能。2023/1/30452.动态执行技术

为了帮助微处理器更有效地处理多重数据和提升软件的速度,PentiumⅡ采用了由以下三种创新处理技巧相结合的动态执行技术。1)多分支跳转预测使用一种多分支跳转预测的算法,当处理器读取指令时,也同时查看那些以前的指令,该技术增加了传送到处理器的数据流,能对数据流向事先作出考虑。2023/1/3046动态执行技术

2)数据流分析按一种最佳的顺序执行,使用数据流分析,处理器可查看被译码的指令,决定是否符合处理条件或取决于其他指令。然后,处理器决定最佳的处理顺序,以最有效的方法执行指令。3)推测执行通过预先查找程序计数器和执行那些可能会运行的指令,来增加被执行指令的数量。当同时执行5条指令时,便要用到“推测执行”,这使得PentiumⅡ微处理器的超计算能力能充分得到发挥,以最大限度地提高指令的并行程度,从而提高软件性能。动态执行技术允许微处理器预测指令的顺序,并进行排序。2023/1/3047双重独立总线结构

(DualIndependentBusDIB)

采用了上述两种技术后,使PentiumⅡ处理器具有很高的处理能力,但要发挥这一高性能,还要求有很快的吞吐能力。而传统的CPU数据总线如图12-4(a)所示。CPU通过一条数据总线同主存、L2Cache以及PCI相连,这里会出现两个问题:一是L2Cache受到处理器外部总线速度的限制;2023/1/3048图12-4PentiumⅡ的总线结构

2023/1/3049双重独立总线结构二是在任一时刻,系统总线只允许访问主存和L2Cache中的一个。而PentiumⅡ处理器采用了双重独立总线结构,如图12-4(b)所示。这是由两条总线组成的双重独立总线体系结构,一条是L2Cache总线,另一条是处理器至主存储器的系统总线。PentiumⅡ处理器可以同时使用这两条总线,其数据吞吐能力是单一总线结构处理器的2倍;2023/1/3050双重独立总线结构同时,这种双重总线结构使PentiumⅡ处理器的L2Cache的运行速度达到Pentium处理器L2Cache的2倍多。随着PentiumⅡ处理器的主频不断提高,L2Cache的速度也会随之提高。另外,流水线系统总线实现了同时并行事务处理,以取代单一顺序事务处理,加速了系统中的信息流,使总体性能得到提升。总之,这一切同双重独立总线体系结构的改进结合起来,提供3倍于单一总线体系结构处理器的带宽性能2023/1/3051PentiumⅡ的总线结构

此外,PentiumⅡ处理器还采用了新的封装技术———

单边接触(SingleEdgeContact,SEC)插盒。SEC插盒技术是先将芯片固定在基板上,然后用塑料和金属将其完全封装起来,形成一个SEC插盒封装的处理器,插盒内基板上固定的芯片包括PentiumⅡ处理器核心以及二级静态突发高速缓存RAM(安排在处理器核心左、右各1个),这个SEC插盒通过Slot1插槽同主机相连。2023/1/305212.1.7IntelPentiumⅢ微处理器

的主要特点1999年2月,Intel公司发布了带有70条附加浮点多媒体指令的PentiumⅢ微处理器,简称PⅢ,中文名为“奔腾Ⅲ”

PentiumⅢ微处理器是带SSE指令集的PentiumⅡ处理器。2023/1/3053PentiumⅢ

最早推出的PentiumⅢ的主频是450MHz和500MHz,系统总线频率为100MHz,采用PentiumPro微结构,一级缓冲存储器为16KB指令Cache和16KB数据Cache,二级缓冲存储器为512KB,速度相当CPU核心速度的一半;针对32位应用程序进行优化,采用双重独立总线,具有动态执行功能。其最大的特点是增加了70条数据流单指令多数据扩展(StreamingSIMDExtensions,SSE)指令集,原先称为“

MMX2指令集”,即“第二代多媒体扩展指令集”。2023/1/3054PentiumⅢ

PentiumⅢ芯片中的70条SSE指令可分为三类:①内存连续数据流优化处理指令8条。②SIMD(单指令多数据)浮点运算指令50条。③新的多媒体指令12条。这些指令能增强音频、视频和3D图形处理能力。2023/1/3055PentiumⅢ

为配合SSE指令集,PentiumⅢ芯片增加了8个新的128位单精度寄存器(4×32位),能同时处理4个单精度浮点变量,可达到每秒20亿次的浮点运算速度,使PentiumⅢ芯片在三维图像处理、语言识别和视频实时压缩等方面的应用得到长足的进步。2023/1/305612.1.8IntelPentium4微处理器的

主要特点

2000年6月,Intel公司推出了采用新的IA32结构的Pentium4微处理器芯片,这一芯片对PentiumPro的结构进行彻底的改造,Pentium4芯片的结构是基于内核体系结构的重新设计,而非内核工艺的单纯提高。第一代Pentium4芯片采用Willamette内核,线宽工艺为0畅18μm,主频为1畅4~2GHz。第二代Pentium4芯片采用Northwood内核,线宽工艺为0畅13μm,主频为1畅6~3畅06GHz,目前已超过3GHz。2023/1/3057Pentium42002年11月14日,Intel公司推出了支持超线程技术的Pentium4微处理器芯片,采用0.13μm线宽工艺,主频为3.06MHz,外频为133MHz,前端总线FSB的频率为533MHz。2004年11月15日推出了主频为3畅8GHz的Pentium4/750,这是Intel公司在2004年底前推出的主频最高的Pentium4芯片。

Pentium4的主要有以下技术特性:2023/1/3058Pentium4

①采用3条超标量流水线,流水线深度为20级,流水线深度越大(级数越高),则越易提高内核的工作频率。②改进了分支预测单元,为分支预测提供了更好的算法,减少了33%的分支预测错误,提高了分支预测的精确度。③采用跟踪缓存(TraceCache)和低延迟数据缓存,跟踪缓存可以把已经用过的并经过译码后的微指令存储下来,再次执行到相同指令时,不必重新译码,就可以直接执行已取到的相关数据。低延迟数据缓存使读取缓存中的数据时只有2个周期的延迟,而PentiumⅢ是3个周期的延迟。2023/1/3059Pentium4

④采用高级动态执行技术(AdvancedDynamicExecute,ADE),改善因流水线深度加大而带来的运算延迟问题,也可改善分支预测能力。⑤采用64位四倍数据速率(QuadDataRate,QDR)处理器前端总线(FrontSideBus,FSB)技术,所谓QDR是指在一个时钟周期内可以4次访问数据,这样,当CPU的外频(即CPU外部总线的基本频率,由主板上时钟发生器直接提供)为100MHz时,则FSB频率为400MHz,这时,FSB的最大数据传输率可达3畅2GBps。2023/1/3060Pentium4

⑥增加了144条SSE2指令,引入了新的数据格式———

128位SIMD整数运算和64位双精度浮点运算,SSE2指令集主要是在体系结构内部进行优化和加强,不需要开发全新的操作系统。这144条指令对加速多媒体程序的执行有很好的作用。⑦在第二代Pentium4(内核为Northwood)中采用了超线程(Hyper‐Threading)技术,使单芯片的工作能类似于双芯片的工作,提高总体性能15%~30%。自PentiumⅡ开始,一直到Pentium4,Pentium系列又有相应的低端产品Celeron(中文名为“赛扬”)和面向服务器领域的高端产品Xeon(中文名为“至强”)。2023/1/3061Pentium4Celeron芯片同Pentium芯片相比,具有主频及FSB较低、超频性能好、价格低亷的优点,对一般用于文字处理、二维图形制作、一般的上网和观赏DVD碟片等具有性能/价格比的优势。Celeron芯片实质上是同期Pentium芯片的简化版本。Xeon芯片是同期Pentium芯片的高端版本,用于服务器等高端计算机领域。另有用于笔记本式计算机等移动式计算领域的Pentium4M微处理器。Pentium4M微处理器的主频一般为2畅4GHz,前端总线的频率为400MHz。2023/1/306212.1.9IntelPentiumM微处理器的

主要特点2003年3月,Intel公司发布了以迅驰技术Banias为核心的PentiumM微处理器,用于移动计算的笔记本式计算机。迅驰是指迅驰移动技术(CentrinoMobileTechnology),包括笔记本式计算机专用的、新的CPU(PentiumM)、新的855芯片组系列以及支持IEEE802.11b/a的无线网络接口,迅驰技术的实质2003年3月,Intel公司发布了以迅驰技术Banias为核心的PentiumM微处理器,用于移动计算的笔记本式计算机。迅驰是指迅驰移动技术(CentrinoMobileTechnology),包括笔记本式计算机专用的、新的CPU(PentiumM)、新的855芯片组系列以及支持IEEE802.11b/a的无线网络接口,迅驰技术的实质是指一整套无线接入的移动计算技术平台,是对无线技术的全面支持,突出“移动性”的特点。2023/1/3063PentiumM

采用Banias核心的PentiumM微处理器,线宽工艺为0.13μm,主频为1.6GHz、1.5GHz、1.4GHz、1.3GHz、1.1GHz和900MHz。2004年又推出了以Dothan为核心的PentiumM微处理器,线宽工艺为90nm,集成了1.4亿个晶体管,目前面世的有PentiumM755(2GHz)、PentiumM745(1.8GHz)、PentiumM735(1.7GHz)、PentiumM725(1.6GHz)、PentiumM715(1.5GHz)。

PentiumM微处理器采用全新的体系结构,以解决高性能和低功耗、高性能和小体积的矛盾,采用了如下技术:2023/1/3064PentiumM

1)适合于移动微处理器的流水线

PentiumⅢ的流水线为12级,Pentium4的流水线为20级,考虑到PentiumM微处理器的特性,以Banias为核心的芯片采用了流水线深度介于PentiumⅢ与Pentium4之间的某种特定的流水线结构。

2023/1/3065PentiumM2)大容量的L2Cache以Banias为核心的PentiumM微处理器芯片集成了64KB的L1Cache,其中32KB为数据Cache(D‐Cache),32KB为指令Cache(I‐Cache)。同时还集成了大容量的高达1MB的L2Cache,L2Cache的晶体管数量几乎占了Banias核心中总数为7700万个晶体管的一半。而以Dothan为核心的PentiumM微处理器集成了2MB的L2Cache,并且精心设计了新的门电路,改变了Cache内的数据访问方式,使L2Cache的功耗大幅度降低。2023/1/3066PentiumM

3)电源优化的处理器系统总线(PowerOptimizedProcesserSystemBus)在传统的微体系结构中,即使未使用系统总线,微处理器也会打开总线。而采用电源优化的PentiumM/Dothan处理器,进行严格的缓冲器管理,使系统总线处于断电状态,直到感应到来自芯片组的信息后才通电,打开总线的相关部分,达到减少处理器耗电量的目的。2023/1/3067PentiumM

4)高级分支预测技术(AdvancedBranchPrediction)

PentiumM微处理器芯片采用高级分支预测技术,预先将要处理的指令进行预编译,分析这些指令的结构,得出分支预测的结果。同时分析程序过去的运行规律,预测今后可能处理的指令。这可以减小20%的预测错误,显著改善处理器的处理性能和执行效率。2023/1/3068PentiumM

5)专用堆栈管理器(DedicatedStackManager)在传统处理器的设计中,处理器需要反复中断程序的执行,以维持处理器的内部记录。而且在常规应用中,有些指令要占据结构堆栈用做源操作数,有些指令除了要执行本身操作外,还需负担管理堆栈所需的额外操作,从而降低了处理器的效率和性能。PentiumM微处理器中有一个硬件级的记录内部运行情况的专用堆栈管理器,这一堆栈管理器的出现完善了处理器的堆栈管理功能,不仅使PUCH、POP、CALL等指令在处理器内部的主执行通道内完成操作,而且能跟踪堆栈指针的增减,并周期性地同处理器中的其他信息同步,以高效率地协调这些指令的运行。采用专用堆栈管理器的PentiumM微处理器可以不中断地执行程序指令,减少了5%的堆栈操作请求。2023/1/3069PentiumM6)增强型的Speedstep技术(EnhancedSpeedstep)第一代的Speedstep技术提供了两种处理器运行模式———

全速运行模式(采用外接电源供电时)和低速运行模式(采用内部电池供电时),两者都可在BIOS中设置强制运行。PentiumM微处理器采用第二代Speedstep技术———

增强型的Speedstep技术,其特点是可以根据处理器的负载情况在两种运行模式之间进行电压和频率的动态切换。2023/1/3070PentiumM

7)微指令操作融合(Micro‐OpFusion)又称批量微指令处理。在有多个可同时执行的指令的情况下,将多个指令操作合并成一条指令,进而同时处理,以提高CPU的性能和使用效率。多个微操作融合后,只需使用较少的处理器资源,便可处理相同数目的操作。例如,两个融合后的微操作可以只占用一个资源,这样不仅提高了性能,也改善了电源管理。这是一项专为实现移动(Mobile)CPU的高性能、低功耗而设计的新技术,使PentiumM处理器中实际执行的指令数量可以减少10%以上。2023/1/3071PentiumM8)嵌入双频无线连接功能

PentiumM处理器采用IEEE802.11a与IEEE802.b协议分别以54Mbps与11Mbps进行无线通信,同无线LAN基础设施兼容。迅驰平台中采用的WLAN(无线局域网)组件可将同时使用IEEE802.11b与蓝牙时的干扰减至最少,并能优化处理能力和运用范围,提高两种方式的网络响应性能。2023/1/307212.2

32位微处理器的编程结构

对汇编语言程序员而言,掌握所用微处理器的寄存器结构是至关重要的。因为在这些寄存器中,有的是在程序设计期间必须使用的,被称为程序可见的寄存器;有的虽然在应用程序设计期间不能直接寻址,被称为程序不可见的寄存器,但这些寄存器在系统运行程序期间可能间接使用到,用来控制和操作保护模式下的存储器系统。2023/1/307332位微处理器的编程结构

80X86微处理器的寄存器组主要包括:基本结构寄存器(BaseArchitectureRegister)、系统级寄存器(SystemLevelRegister)、调试寄存器和测试寄存器(DebugRegisterandTestRegister)以及浮点寄存器(FloatingPointRegister)。2023/1/307412.2.1基本结构寄存器

80X86微处理器有16个基本结构寄存器,如图12-5所示。这16个寄存器按其用途可分为通用寄存器专用寄存器段寄存器2023/1/3075基本结构寄存器2023/1/30761.通用寄存器通用寄存器(GeneralPurposeRegister)有8个,即累加器EAX(Accumulator)、基址寄存器EBX(Base)、计数寄存器ECX(Counter)、数据寄存器EDX(Data)、堆栈指针ESP(StackPointer)、基址指针EBP(BasePointer)、源变址寄存器ESI(SourceIndex)以及目的变址寄存器EDI(DestinationIndex)。2023/1/3077通用寄存器这些32位的通用寄存器可以用来保存数据和地址,支持1位、8位、16位和32位的数据操作数,1~32的位字段以及16位或32位的地址操作数。在这8个32位寄存器中,8个16位寄存器AX、BX、CX、DX、SP、BP、SI和DI可以存放16位信息,8个8位寄存器AH、AL、BH、BL、CHCL、DH和DL可以存放8位信息。而32位寄存器仅用于80386及其以上的80X86微处理器2023/1/3078通用寄存器

在80X86的指令系统中,某些指令的操作数只能用一个特定的寄存器或寄存器组来表示,对某些用来完成特定操作的80X86指令,上述通用寄存器具有一些隐含的用法,如表12-2所示。2023/1/3079

2023/1/30802023/1/3081

2.专用寄存器

(SpecialRegister)

80X86微处理器的专用寄存器有指令指针EIP(InstructionPointer)和标志寄存器EFLAGS(Flags)。1)指令指针EIP32位指令指针指向要执行的下一条指令的偏移值,该偏移值是相对于指令所在代码段的基地址(段起始地址)的,在8086和80286微处理器中,指令指针为16位寄存器,以IP表示。程序员不能对EIP(或IP)进行直接的存取操作,程序中的转移指令、返回指令以及中断处理能对EIP(或IP)进行操作。2023/1/30822)标志寄存器EFLAGS

32位标志寄存器EFLAGS用于指示微处理器的状态,并控制其操作,其各位的定义如图12-6所示。2023/1/3083标志寄存器EFLAGS2023/1/3084标志寄存器EFLAGS

在这32位标志寄存器中,PentiumPro级微处理器定义了18位,如表12-3所示2023/1/3085表12-3标志寄存器中各位的定义

表12-32023/1/3086表12-3

2023/1/30872023/1/30883.段寄存器

6个16位段寄存器用来保存标志现行可寻址存储器段的段选择子(Selector,又称选择符)值,在实地址方式中,段的长度固定为64KB(216

B),而在保护方式下,每个段的长度可以在1B到机器的整个线性和物理地址空间即4GB(232

B)间任选。各段寄存器在系统中的功能如表12-4所示。2023/1/3089表12-4

表12-42023/1/30902023/1/3091表12-4段寄存器

在80286以上的处理器中,每一个段寄存器都有一个与之相对应的段描述子寄存器,用来描述一个段的段基地址、段限(段的范围、长度)和段的属性。段寄存器是程序员可见的,而段描述子寄存器对程序员是透明的。当一个段寄存器的值确定后,相应的描述子寄存器的内容就自动地修正成正确的信息。保护方式下,段基地址、段限和属性全部按由段选择子所指向的段描述子内容进行修改。每当访问存储器时,与所用段相关的段描述子寄存器就自动参与该次存储器访问操作。段基地址成为线性地址或物理地址计算中的一个分量,段限用于段限检查操作,属性则对照所要求的存储器访问类型进行检验。段描述子寄存器又称为段高速缓存器(Cache),段寄存器和段描述子寄存器的关系如图12-7所示。2023/1/3092段描述子寄存器2023/1/309312.2.2系统级寄存器80X86微处理器中有一组系统级寄存器,包括5个控制寄存器CR0~CR4、2个系统地址寄存器GDTR、IDTR以及2个系统段寄存器TR、LDTR,如图12-8所示。1.控制寄存器(ControlRegister)80X86微处理器有5个控制寄存器,用来实现对80X86微处理器多种功能的控制与选择。2023/1/3094系统级寄存器2023/1/3095系统级寄存器

1)CR0

PentiumPro微处理器的CR0定义了11个控制位,各位定义如表12-5所示。2023/1/3096表12-5

CR0中各位的定义表12-52023/1/30972023/1/3098控制寄存器

控制寄存器CR0在80286微处理器中称为机器状态字(MachineStatusWord,MSW),它是一个16位寄存器,定义了PE、MP、EM和TS4位;在80386微处理器中,CR0定义了PE、MP、EM、TS、ET和PG6位;在80486微处理器中,CR0定义了10位,即PE、MP、EM、TS、NE、WP、AM、NW、CD和PG,另外,位4恒置1(即80386中的ET位置1);而Pentium和PentiumPro微处理器的CR0同80486

。2023/1/3099控制寄存器2)CR2页故障线性地址寄存器CR2用来保存发生页故障中断(异常14)之前所访问的最后一个页面的线性页地址。用软件读出即可得到发生页故障的线性地址。CR2由80以上微386处理器定义。2023/1/30100控制寄存器

3)CR3页目录基地址寄存器CR3用来存放页目录表的物理基地址。由于页目录表是按页对齐的(4KB),因而CR3通过高20位来实施这一要求,而低12位定义为其他用途,目前已定义7位,各位的定义如表12-6所示。2023/1/30101表12-6

CR3低10位的定义

2023/1/30102控制寄存器

CR3是80386以上微处理器才能使用的,其中PWT和PCD两位是为80486微处理器新定义的。4)CR4

CR4是Pentium以上微处理器中新增加的控制寄存器,目前定义了8位,各位的定义如表12-7所示。CR4中的MCE和PGE两位是为PentiumPro微处理器新定义的位。2023/1/30103表12-7

CR4低8位的定义

表12-72023/1/301042023/1/30105系统地址寄存器

2.系统地址寄存器(SystemAddressRegister)在保护方式下,存储器操作数所在的段的性质由一个称为“描述子”(Descriptor)的数据结构来描述,而在一个系统中,所有段的描述子存放在一个或几个称为“描述子表”的存储区中。为了寻址和定义这些描述子表的地址,80X86(80286以上)微处理器中包含有2个系统地址寄存器———GDTR和IDTR,如图12-8所示。2023/1/30106系统地址寄存器

1)全局描述子表寄存器(GlobalDescriptorTableRegister,GDTR)

GDTR是一个48位字长的寄存器(对80286微处理器而言,为40位寄存器),其间存放全局描述子表的段基地址(SegmentBaseAddress,段起始地址,对80386以上微处理器为32位,对80286微处理器为24位)以及段限(Limit,16位)。2023/1/30107系统地址寄存器

2)中断描述子表寄存器(InterruptDescriptorTableRegister,IDTR)

IDTR是一个48位字长的寄存器(对80286微处理器而言,为40位寄存器),其间存放中断描述子表的段基地址(段起始地址,对80386以上微处理器为32位,对80286微处理器为24位)以及段限(16位)。2023/1/301083.系统段寄存器

(SystemSegmentRegister)

80286以上的微处理器有2个系统段寄存器LDTR(局部描述子表寄存器)和TR(任务状态段器),它们同段寄存器一样,需装入一个选择子,以决定相应描述子表的地址。1)局部描述子表寄存器(LocalDescriptorTableRegister,LDTR)它是一个16位的寄存器。为了访问局部描述子表,需在LDTR中装入一个选择子,用该选择子访问全局描述子表,并把局部描述子表的段基地址、段限和访问权(AccessRight)装入LDTR的Cache区(LDTCache描述子寄存器,或称段描述子Cache)。这些段描述子Cache的值根据装入段寄存器中选择子值所索引(变址)的段描述子内容来定义。2023/1/30109系统段寄存器

2)任务状态段寄存器(TaskStateSegmentRegister,TR)能在任务或进程之间进行快速切换是多任务/多用户操作系统的一个重要属性。80286以上的微处理器通过提供用硬件实现任务切换指令来直接支持这一操作。每一个任务都必须有一个与其相关联的任务状态段(TaskStateSegment,TSS),现行的TSS由TR来标识。TSS中保存有当前任务的所有环境。80286微处理器的TSS为002BH个字节,80386以上微处理器的TSS为0064H个字节,甚至可以扩展到4GB。TR中含有一个指向定义现行TSS的任务状态段描述子的选择子,由TR中的16位选择子从GDT中索引TSS描述子,微处理器会自动将TSS描述子装入TSSCache中,TSSCache为64位寄存器,存放32位段基地址、20位段限和12位访问权,如图12-8所示。2023/1/30110系统段寄存器上述LDTCache和TSSCache对程序员而言是透明的。2023/1/3011112.2.3调试寄存器和测试寄存器80386以上的微处理器中还有调试寄存器和测试寄存器,用于排除故障和测试分页及Cache的状态,如图12-9所示。

2023/1/301122023/1/30113调试寄存器和测试寄存器2023/1/30114

1.调试寄存器(DebugRegister)

对80386而言,定义了6个调试寄存器。其中,DR0~DR3指定了4个线性断点地址;DR7为调试控制寄存器,用于设置断点;DR6为调试状态寄存器,用于显示断点的当前状态。调试寄存器是一组32位的寄存器,是程序员可访问的,提供片上支持调试。

80486的调试寄存器同80386。

Pentium处理器对调试寄存器DR4和DR5给予调试寄存器DR6和DR7的别名。当控制寄存器CR4中DE位设置为0时,即禁止调试扩充,Pentium通过允许引用DR6和DR7的别名保持与现有软件兼容;当DE位设置为1时,即允许调试扩充,引用DR4或DR5将产生未定义的操作码异常。2023/1/301152.测试寄存器(TestRegister)

对80386而言,有两个测试寄存器TR6和TR7,用来测试TLB。TLB中保存着最常用的页表地址转换。TR6是TLB的命令测试寄存器,指示读写TLB的入口;TR7是TLB的数据寄存器,保存TLB的测试数据。对80486而言,增加了3个用于调试片上Cache的测试寄存器TR3、TR4和TR5,其中TR3为Cache数据测试寄存器,TR4为Cache状态测试寄存器,而TR5为Cache控制测试寄存器。2023/1/30116测试寄存器Cache数据测试寄存器,TR4为Cache状态测试寄存器,而TR5为Cache控制测试寄存器。

Pentium微处理器取消了测试寄存器TR,测试寄存器的功能由一组模型专用寄存器(ModelSpecialRegisters,MSR)来实现,这一组MSR用于执行跟踪、性能监测、测试和机器检查错误。Pentium微处理器采用两条指令RDMSR(读MSR)和WRMSR(写MSR)来访问这些寄存器,ECX中的值(8位值)确定将访问该组寄存器中的哪一个MSR。所有的MSR与需要装入ECX的值如表12.8所示。2023/1/30117表12-8模型专用寄存器与ECX关系

表12-82023/1/301182023/1/3011912.2.4浮点寄存器

80486微处理器片内集成有浮点处理部件(FloatingProcessingUnit,FPU),其浮点寄存器(FloatingPointRegister,FPR)包括8个数据寄存器、1个标记字、1个状态寄存器、1个控制寄存器、1个指令指针以及1个数据指针,如图12-10所示。2023/1/30120图12-10浮点寄存器

2023/1/30121浮点寄存器1)数据寄存器(DataRegister)它是一组80位的寄存器,提供了相当于20个32位寄存器的容量,这8个80位的数据寄存器中的每一个都分成同FPU的扩展精度数据类型相对应的字段,即1位符号位、15位阶码、64位数值(尾数)。指令可以隐式或显式寻址这些数据寄存器。

2023/1/30122浮点寄存器2)标记字(TagWord)标记字如图12-11所示,用来标识每个数据寄存器的内容。每2位标记表示8个数据寄存器中的一个。标记字的主要功能是优化FPU的功能,并通过标记字能识别“空”和“非空”寄存器单元来控制堆栈。它还允许异常处理程序检查堆栈单元的内容,而不需要对现行数据进行复杂的译码。2023/1/30123图12-11

FPU标记字

2023/1/30124浮点寄存器

3)状态寄存器(StatusRegister)状态寄存器存放16位状态字,反映FPU的总的状态,如图12-12所示。2023/1/30125图12-12

FPU状态寄存器

2023/1/30126浮点寄存器4)控制寄存器(ControlRegister)

FPU提供若干处理选择项,这些选择项是通过将存储器的控制字装入控制寄存器进行选择的,控制寄存器中各寄存器的格式如图12-13所示。FPU控制字的低字节为错误和异常屏蔽,其中第0~5位包含FPU识别的六种异常中每一种异常的各自的屏蔽。2023/1/30127图12-13

FPU控制寄存器

2023/1/30128浮点寄存器

IM(InvalidOperation)———

无效操作。

DM(DenormalizedOperand)———

非规格化操作数。

ZM(Zerodivide)———

除数为零。

OM(Overflow)———

上溢。

UM(Underflow)———

下溢。

PM(Precision)———

精度。2023/1/30129浮点寄存器PM(Precision)———

精度。

FPU控制字的高字节构成FPU的工作方式,包括RC和PC。

RC(RoundingControl),舍入控制。

00———

舍入到最近的偶数。

01———

下舍入(趋向-∞)。

10———

上舍入(趋向+∞)。

11———

截断(舍位到接近零)。

RC位提供直接舍入和真截断,且舍入到最接近IEEE标准规定的方式。舍入控制仅影响操作结束时进行舍入的那些指令。2023/1/30130浮点寄存器

PC(PrecisionControl),精度控制。

00———

24位(单精度)。

01———

保留。

10———

53(双精度)。

11———

64(扩展精度)。

PC位用来按低于64位(扩展精度)默认设置FPU内部有效位的操作精度,这有利于保持同早期低精度运算处理器的兼容。2023/1/30131浮点寄存器

5)指令指针和数据指针(InstructionPointerandDataPointer)

80486微处理器包含有2个指针寄存器———

指令指针寄存器和数据指针寄存器,以提供发生故障的指令的地址及其数据存储器操作数的地址。在Pentium以上微处理器中,在应用程序模式下,上述浮点寄存器不再使用。2023/1/3013212.3

32位微处理器的引脚功能微处理器的引脚功能是微型计算机系统中存储器接口和I/O接口中的重要内容之一。本小节论述32位微处理器的引脚功能,在第2章2.2节描述8086微处理器的引脚功能的基础上扼要地描述32位微处理器80386、80486和Pentium的引脚功能。2023/1/3013312.332位微处理器的引脚功能12.3.180386微处理器的引脚功能12.3.2Pentium微处理器的引脚功能简介2023/1/3013412.3.1

80386微处理器的引脚功能

2023/1/30135

表12-9

80386总线信号与

引脚编号对照表

2023/1/30136表12-9

80386总线信号与引脚编号对照表

2023/1/30137

80386总线信号

80386的引脚信号按其功能可分为8组。1)数据总线(D31~D0,三态,双向)它为80386和其他设备之间提供数据通路,80386每周期传送数据的宽度是动态可变的,可以是32位或16位,由输入信号确定。在任何写操作周期(包括暂停周期和停机周期),80386总是驱动数据总线的所有32位信号,而不管当前总线的实际宽度是多少。2023/1/3013880386总线信号

2)地址总线(A31~A2,~,三态,输出)(1)A31~A2提供物理存储器和端口地址,可寻址4GB的物理存储器和64KB的I/O端口。80386与80387或80287数值处理器的通信使用I/O空间,其地址范围为8000008FH~800000FFH,即当A31为高电平、M/为低电平时,才产生数值处理器的选择信号。

2023/1/30139地址总线(2)~字节允许线(又称字节使能线),用来选通数据总线的不同部件,对应于D0~D7,对应于D8~D15,对应于D16~D23,对应于D24~D31。2023/1/301403)时钟(CLK2)

80386的基本定时信号由CLK2提供,CLK2在80386内部经过2分频后产生用于执行指令的处理器内部时钟,该内部时钟包括两相———

Φ1和Φ2,每一相内部时钟都是一个CLK2周期,CLK2与Φ1、Φ2的关系如图12-15所示。2023/1/30141图12-15CLK2与Φ1和Φ2的关系2023/1/301424)总线周期定义信号4)总线周期定义信号(M/、W/、D/,三态,输出,用来定义正在进行的总线周期的类型)(锁定)信号用来区分总线周期的类型。W/(写/读)、D/(数据/控制)和M/(存储器/IO)是总线周期定义信号。当80386

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论