微处理器与指令系统.pptx
8086/8088 微处理器微处理器微处理器(80586)微处理器微处理器微处理器微处理器2.1 2.1 IntelIntel系列微处理器概述系列微处理器概述第1页/共172页8086/8088 8086/8088 微处理器微处理器 8086是1978年推出的全16位微处理器,8088是1978年推出的准16位微处理器。二者除外数据总线位数(8086为16位,8088为8位)及与此相关的部分逻辑稍有差别外,内部结构和基本性能相同,指令系统完全兼容。在8086/8088的设计中,引入了两个重要的结构概念:指令流水线 存储器分段 这两个概念在以后升级的Intel系列微处理器中一直被沿用和发展。正是这两个概念的引入,使8086/8088比原来的8位MPU在运行速度、处理能力和对存储空间的访问等性能方面有很大提高。第2页/共172页8048680486微处理器微处理器 1.内部寄存器的容量都扩充到了32位或以上,具有全32 位数据处理能力,并可进行64位的数据运算。2.片内存储管理部件可实现段页式存储管理,比80286可 提供更大的虚拟存储空间和物理存储空间。3.新增了一种保护模式下的工作方式,即虚拟8086方式。4.指令流水线增加到了6级。5.提供了32位外部总线接口,最大数据传输速率显著提 高。80486是继80386之后推出的第二代32位高性能微处理器,它以提高性能和面向多处理器系统为主要目标。80486继承了80386的各种优点,表现在以下几方面:第3页/共172页80486微处理器 1.片内集成了一个浮点运算单元FPU。2.内含一个8KB的数据与指令合用的Cache。3.采用RISC技术。使芯片内的不规则控制部分减少,同时常用基本指令采用硬件逻辑控制执行,使基本指令可以用一个时钟周期完成。4.采用一种突发总线(Burst Bus)的技术。使取得一个地址后,与该地址相关的一组数据可以连续输入/输出,有效地解决了微处理器同内存储器之间的数据交换问题。5.面向多处理器结构,增加了支持多机操作的指令。除以上80386、80486共有的特点之外,80486也采用了许多新技术:第4页/共172页2.1.2.1.3 Pentium3 Pentium微处理器微处理器(8058680586)1.采用超标量体系结构。2.内置的浮点运算部件采用超流水线技术。3.增加了分支指令预测。4.内置了指令和数据两个独立的超高速缓存器,避免了预取指令和数据可能发生的冲突。Pentium是一种高性能的32位微处理器。其对80486作了下列重大改进:第5页/共172页 5.5.采用采用6464位外部数据总线。位外部数据总线。6.6.引入了大型机中采用的引入了大型机中采用的内部错误检测、功能冗余检验内部错误检测、功能冗余检验和错误报告等自诊断功能。和错误报告等自诊断功能。7.7.进行了更多的可测性设计。进行了更多的可测性设计。8.8.提供了独特的性能监察功能,提供了独特的性能监察功能,以利于软、硬件产品的优化和升级。以利于软、硬件产品的优化和升级。9.9.提供了灵活的存储器页面管提供了灵活的存储器页面管理。理。2.1.2.1.3 Pentium3 Pentium微处理器(微处理器(8058680586)第6页/共172页精简指令集技术。精简指令集技术。二级缓冲结构。二级缓冲结构。乱序执行和预测执行技术。乱序执行和预测执行技术。三级超标量和三级超标量和1414级超流水线结构。级超流水线结构。寄存器重命名技术寄存器重命名技术 2.1.2.1.4 Pentium Pro4 Pentium Pro微处理器微处理器 简称P6,中文名为“高能奔腾”。在体系结构中采用了许多新的思想和新的技术:第7页/共172页2.1.2.1.5 Pentium 5 Pentium 微处理器微处理器 P6级微处理器的第二代产品,从系统结构角度看,主要采用了以下几种先进技术:采用了由三种创新处理技巧结合的采用了由三种创新处理技巧结合的动态执行技术动态执行技术,即:多分支预测、数据流分析和推测执行。即:多分支预测、数据流分析和推测执行。双重独立总线技术(双重独立总线技术(DIB,Dual Independent DIB,Dual Independent BusBus)多媒体增强技术(MMX技术)采用单指令流多数据流SIMD技术 新增加了57条功能强大的MMX指令第8页/共172页2.1.2.1.6 Pentium 6 Pentium 微处理器微处理器 Pentium 是第三代P6级微处理器产品。与Pentium相比,有如下改进:前端总线的时钟频率为前端总线的时钟频率为100MHz 100MHz(采用采用0.180.18mm新工艺的新工艺的Pentium Pentium,其前端总线达到其前端总线达到133133MHz)MHz)。n将256KB的L2 Cache集成到了芯片内。n增加了 70条流式单指令多数据扩展SSE指令。n首次设置了处理器序列号PSN。第9页/共172页2.1.2.1.7 Pentium 47 Pentium 4微处理器微处理器 1.采用了超级管道技术,使用长达20级的分支预测/恢复管道,而P6只有10级。2.它的简单算术逻辑单元(ALU)采用2倍的处理器核心频率运行。3.动态执行技术中的指令池能容下126条指令。4.内含一个4KB的分支目标缓冲。5.增加了由144条新指令组成的SSE2。它是第一个非P6核心结构的全新32位微处理器,与P6级微处理器相比,主要结构特点如下:第10页/共172页2.2 2.2 8086/80888086/8088微处理器微处理器内部结构指令流水线存储器分段 8086是全16位微处理器,8088是准16位微处理器。二者除了外数据总线位数及与此相关的部分逻辑稍有差别外,内部结构和基本性能相同,指令系统完全兼容。第11页/共172页1.1.内部结构内部结构2.2 8086/8088微处理器20位 ABEU控制电路总线控制电路通用寄存器累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针目的变址源变址指针寄存器变址寄存器地址加法器运算暂存器ALU标志寄存器指令指针内部暂存器指令队列总线接口单元(BIU)执行单元(EU)外部总线8086/8088DB8088:8位8086:16位CSDSSSESIP1 2 3 4 5 68位80888086AXAHALBXBHBLCXCHCLDXDHDLSPBPDISIALUDB16位第12页/共172页负责全部指令的执行;向BIU输出(地址及结果)数据;对Reg及PSW进行管理。(2)功能 EU(Execution Unit)数据寄存器:数据寄存器:AX,BX,CX,DX (16位位)8个通用寄存器个通用寄存器 变址寄存器:变址寄存器:SI,DI 算术逻辑运算部件ALU 16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算.标志寄存器PSW 9个标志位,其中6个条件标志位用于存放结果状态.运算寄存器 EU控制系统(1)组成AH,AL,BH,BL,CH,CL,DH,DL(8位)指示器:SP,BP接收从BIU的指令队列中取来的指令代码,译码并向 EU 内各有关部分发出时序命令信号,协调执行指令规定的操作。第13页/共172页(2)功能 BIU(Bus Interface Unit)代码段代码段Reg:CS 堆栈段堆栈段Reg:SS 数据段数据段Reg:DS 附加段附加段Reg:ES (1)组成指令指针寄存器IP(下一条要取的指令在当前 码段内的偏移量)4个段寄存器 指令队列Queue 20位地址加法器 总线控制逻辑 内部通信寄存器 完成所有外部总线的操作,提供总线控制信号。具体地完成:取指、指令排队、读写操作数、地址转换(将两个16位地址相加 20位物理地址),总线控制。第14页/共172页(3)指令队列指令队列 BIU使用指令队列实现流水线操作。当指令队列中有2个或2个(1个)以上的字节空间,且EU未申请读写存储器,则BIU顺序预取后续指令代码 Queue。第15页/共172页 (1)若是运算操作:操作数)若是运算操作:操作数 暂存器暂存器 ALU;运算结果运算结果 经经“ALU总线总线”相应相应Reg、并置并置PSW。(2)若从外设取数:若从外设取数:EU BIU 访问访问MEM 或或 I/O 内部通信寄存器内部通信寄存器 向向“ALU数据总线数据总线”传传 送数据。送数据。从BIU指令队列中取指 译码电路分析 相应控制命令 控制数据经过“ALU数据总线”的流向:EU的工作过程第16页/共172页2.2.指令流水线指令流水线 指令队列的存在使指令队列的存在使EUEU和和BIUBIU并行工作并行工作,取指令和分析、取指令和分析、执行指令操作可重叠进行,形成了两级指令流水线结构,执行指令操作可重叠进行,形成了两级指令流水线结构,减少了减少了CPUCPU等待时间,提高了等待时间,提高了CPUCPU的利用率,加快了整机的利用率,加快了整机运行速度,降低了对存储器存取速度的要求。运行速度,降低了对存储器存取速度的要求。取指令取指令1 1 取指令取指令2 2 取数据取数据1 1 取指令取指令3 3 存结果存结果1 1 取指令取指令4 4 取指令取指令5 5 等待等待 译码译码1 1 执行执行1 1 译码译码2 2 执行执行2 2 译码译码3 3 BIUBIUEUEU 8086/8088的指令“流水”操作2.2 8086/8088微处理器第17页/共172页取指令2 取操作数BIU存结果取指令3 取操作数 取指令4执行1执行2执行3 EUBUS忙碌忙碌忙碌忙碌忙碌忙碌第18页/共172页 将1MB的物理存储空间分成若干个逻辑段,每段大小为64KB。64KB30000H(段基址段基址)段的起始单元地址叫段基址,存放在段寄存器中。通过4个段寄存器,CPU每次可同时对4个段进行寻址。3.3.存储器分段存储器分段2.2 8086/8088微处理器内存内存 00000H00001H00002H00003HFFFFFH第19页/共172页 分段方式不分段方式不唯一,各段之间唯一,各段之间可以连续、分离、可以连续、分离、部分重叠或完全部分重叠或完全重叠,这主要取重叠,这主要取决于对各个段寄决于对各个段寄存器的预置内容。存器的预置内容。2.2 8086/8088微处理器1000H2000H3100H3100H代码段代码段(64KB)堆栈段堆栈段(64KB)数据段与数据段与附加数据附加数据段重叠段重叠(64KB)CS10000H20000H31000HSSDSES1FFFFH2FFFFH40FFFH 存储器分段结构示例存储器分段结构示例第20页/共172页 物理地址是1MB存储空间中的某一单元地址,用20位地址码表示,CPU访问存储器时,地址总线上送出的就是物理地址。逻辑地址在编程时采用,由段基址和偏移地址组成,两者均为16位。内存内存20000H20A00H0A00H物理地址物理地址20A00H逻辑地址逻辑地址2000 物理地址和逻辑地址物理地址和逻辑地址2.2 8086/8088微处理器第21页/共172页逻辑地址与20位物理地址的变换关系:物理地址=段基址16+偏移地址偏移地址段基址段基址 000020位物理地址逻辑地址15 0 15 0 左移四位19 0地址地址加法器加法器 逻辑逻辑地址与物理地址的变地址与物理地址的变换换2.2 8086/8088微处理器第22页/共172页例:已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,DS段有一操作数,其偏移地址=0204H,1)画出各段在内存中的分布2)指出各段首地址3)该操作数的物理地址=?10550H250A0H2EF00H8FF00HCSSS CSDSES解:各段在内存中的分布右图所示。操作数的物理地址为:250AH10H+0204H=252A4H第23页/共172页 2.3 2.3 PentiumPentium微处理器微处理器Pentium的四种工作方式第24页/共172页 Pentium在结构上由如下功能部件组成:整数执行单元 浮点单元 指令Cache和数据Cache 指令预取单元 指令译码单元 地址转换与管理单元 总线接口单元 控制单元(核心,又叫运算器)这些功能部件除地址转换与管理单元与80386/80486保持兼容外,其他都进行了重新设计。内部结构和外部引脚内部结构和外部引脚第25页/共172页1.内部结构内部结构地址转换与存储管理单元APICDP逻辑逻辑控制控制ROM浮点单元浮点单元8KB指令指令高速缓存高速缓存TLB预取预取地址地址指令预取单元指令预取单元指令译码单元指令译码单元总线总线单元单元8KB数据数据高速缓存高速缓存TLB控制单元控制单元地址生成地址生成U流水线流水线地址生成地址生成V流水线流水线整数寄存器组整数寄存器组ALUU流水线流水线ALUV流水线流水线控制控制寄存器组寄存器组加法加法除法除法乘法乘法桶形移位器桶形移位器控制控制指令指令指针指针分支检验分支检验与目标地址与目标地址32位位地址地址总线总线323232326464位数位数据总线据总线数据数据控制控制控制控制64位位数据数据总线总线32位地位地址总线址总线分支目标缓冲器3232328080 内部结构和外部引脚1)总线接口单元 主要用于管理访问外部存储器和 I/O端口必须的地址、数据和控制总线,完成预取指令、读/写数据等总线操作。2)整数执行单元 由“U”和“V”两条指令流水线构成超标量流水线结构,其中每条流水线都有自己的ALU、地址生成逻辑和Cache接口。3)预取缓冲单元 预取缓冲单元在总线接口单元空闲时,负责提前去内存或指令Cache预取指令。其指令预取缓冲器在前一条指令执行结束之前可以预取多达94个字节的指令代码。4)指令译码单元 将预取的指令译成Pentium可以执行的控制信号并送控制单元。对绝大多数指令来说,Pentium微处理器可以做到每个时钟周期以并行方式完成两条指令的译码操作。5)控制单元 负责解释来自指令译码单元的指令字和控制ROM的微代码。控制部件的输出直接控制两条指令流水线和浮点单元。6)地址转换与存储管理单元 Pentium的地址转换与存储管理单元与80386/80486保持完全兼容,由分段和分页部件组成。Pentium除继续支持4KB大小的页面外,还允许使用高达4MB的页面,从而减少了页面切换的频率,并加快了某些应用程序的执行。7)独立的指令Cache和 数据Cache Pentium片内有两个8KB的超高速缓存器,一个是指令Cache,一个是数据Cache。指令和数据分别使用不同的Cache,使Pentium中数据和指令的存取减少了冲突,提高了性能。8)浮点运算单元第26页/共172页2.Pentium2.Pentium的外部引脚的外部引脚IntelPentiumCPU写写顺顺序序控控制制总总线线地地址址总总线线 CLK PRDY R/SHLDA IBT IV IU 模模式式探探针针执执行行跟跟踪踪 TDITMS TRST RESET TCK TDO BUSCHKFRCMCSMI NMI IERR FREE IGNNESMIACT BREQHOLD BOFF INIT INTREWBEWB/WTFLUSHKENPWTPCDNA INVAPCHKPCHKPENW/RM/IOADSD/CSCYCLOCKCACHEBRDYAHOLDEADSHITHITMAP时时钟钟 初初始始化化 中中断断控控制制缓缓存存高高速速内内部部出出错错浮浮点点错错余余检检测测功功能能冗冗理理模模式式系系统统管管测测试试访访问问期期定定义义总总线线周周总总线线仲仲裁裁总总线线周周期期错错数数据据总总线线偶偶校校验验数数据据奇奇地地址址屏屏蔽蔽偶偶校校验验地地址址奇奇断断点点/性性能能检检测测A31A3BE7BE0A20MD63D0DP7DP0BT3BT0BP3BP2PM1/BP1PM0/BP0第27页/共172页A31A3与BE0 BE7 形成32位地址 第28页/共172页BE0 BE7与64位数据总线对应情况表第29页/共172页Pentium微处理器总线周期存储器写周期111存储器读周期011Intel公司保留101微代码读周期001I/O写周期110I/O读周期010停机/暂停100中断响应周期000启动的总线周期W/RD/CM/IO第30页/共172页基本寄存器系统级寄存器调试和模型专用寄存器浮点寄存器Pentium的内部寄存器,按功能可分为4类:PentiumPentium内部寄存器内部寄存器第31页/共172页Pentium内部寄存器标志寄存器指令指针寄存器EFLAGSFLAGSEIPIP31 15 031 15 031 16 15 7 0通通 用用 寄寄 存存 器器EAX EAX AH AH AX AX ALALEBX EBX BH BH BX BX BLBLECX ECX CHCH CX CX CLCLEDX EDX DHDH DX DX DLDLEDI DIEDI DIESI SIESI SIEBP BPEBP BPESP SPESP SP1.1.基本寄存器基本寄存器选择器CSSSDSESFSGS15 0 63 0描述符高速缓存器段段 寄寄 存存 器器 E IP用于保存下一条待预取指令相对于代码基址的偏移量。它的低 16位也可单独访问,称之为 IP。第32页/共172页 标志寄存器位定义标志寄存器位定义Pentium内部寄存器CFEFLAGSFLAGS31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0ACVMRF0NTIOPLOFDFIFTFSFZF0AF0P F0X 对准检查标志X 虚拟86模式标志X 恢复标志X 嵌套标志X 特权级标志S 溢出标志C 方向标志X 中断允许标志X 自陷标志S 符号标志S 零标志S 辅助进位标志S 奇偶标志S 进位标志注:S表示状态标志,X表示系统标志,C表示控制标志X 虚拟中断标志X ID标志X 虚拟中断挂起0 0 0 0 0 0 0 0 0 0VIFVIPI ID D第33页/共172页在调试程在调试程序时,序时,DEBUG提提供了测试供了测试标志位的标志位的手段,手段,用符号表用符号表示标志位示标志位的值,的值,每每种标志位种标志位的符号如的符号如右表右表第34页/共172页标志:运算结果最高位为0SF=0 运算结果0 ZF=0 低8位中1的个数为奇数个 PF=0 最高位有进位 CF=1 第三位向第四位无进位 AF=0 次高位向最高位没有进位,最高位向前进位,OF=1例:执行两个数的加法,分析对标志位的影响。例:执行两个数的加法,分析对标志位的影响。10001101000101011011001000011001+0111101010101010第35页/共172页选择器描述符高速缓存器CSSSDSESFSGS15 0 63 0段寄存器 段寄存器段寄存器Pentium有6个段寄存器:Pentium内部寄存器CS-指明当前的代码段SS-指明当前的堆栈段DSESFS GS决定程序使用存储器区域块指明当前的指明当前的4 4个数据段个数据段编程者可直接访问的编程者不能访问的第36页/共172页1.实地址方式和虚拟8086方式下相同,段的长度固定为64KB,段选择器就是段寄存器,它保存的是逻辑段基址的高16位,将它的内容左移4位即可得到实际段基址,而不必使用描述符高速缓存器。2.在保护虚地址方式下,段的长度可以在1字节到4G字节之间变化;为了描述每个段的基址、属性和边界,为每个段定义了一个描述符。操作系统使用的各任务公用的段描述符放在一起构成全局描述符表GDT;某个任务专用的段描述符放在一起构成局部描述符表LDT。Pentium段的定义与8086有所不同:Pentium内部寄存器第37页/共172页 描述符与描述符表描述符与描述符表GDTLDT描述符描述符0描述符描述符1 1描述符描述符0 0描述符描述符1 1GDTRGDTRLDTRLDTR+0+0+1+1+2+2+3+3+4+4+5+5+6+6+7+7段边界段边界7 70 0位位段边界段边界15158 8位位段基址段基址7 70 0位位段基址段基址15158 8位位段基址段基址23231616位位属性属性段边界段边界4 4位位段基址段基址31312424位位属性属性描述符格式描述符格式Pentium内部寄存器第38页/共172页 段的的选择符段的的选择符 为了说明一个段的描述符在哪个表中,表的序号是多少以及特权的高低,为每个段定义了一个16位的选择符,存于段选择器中,其格式为:描述符索引描述符索引段描述符段描述符iLDTGDT0 1INDEX TI RPLb15 b3 b2 b1 b0表指示符表指示符描述符描述符i(0 089118911)段描述符段描述符0描述符描述符000 00 特权级特权级0 001 01 特权级特权级1 110 10 特权级特权级2 211 11 特权级特权级3 3请求特权级请求特权级Pentium内部寄存器第39页/共172页 将一个选择符装入一个段选择器时,处理器将自动从GDT或LDT中找到其对应的描述符装入相应描述符高速缓存器中。Pentium内部寄存器描述符描述符6464基址基址物理存储器物理存储器LDTLDTDSDS数据段数据段0040H界限界限15 3 215 3 2描述符高速缓存器描述符高速缓存器DSDS选择符选择符63 063 0属性属性装入装入DSDS段描述符段描述符TI=1TI=1指示指示LDTLDT1313位索引指向位索引指向LDTLDT的第的第6464个段描述符个段描述符13131010 以后,每当访问存储器时,与所用段相关的段描述符高以后,每当访问存储器时,与所用段相关的段描述符高速缓冲器就自动参与该次存储器访问操作。转换关系速缓冲器就自动参与该次存储器访问操作。转换关系:线性地址线性地址=段描述符高速缓存器中段基址段描述符高速缓存器中段基址+偏移地址偏移地址 第40页/共172页例题有一个描述符表存放在全局描述符表的第63个表项中,访问该描述符的请求特权级为2,请写出该描述符的选择符。已知段描述符中有基址=56780000H,界限=10,G=1。求该描述符定义的存储段的线性地址范围。第41页/共172页例:假设虚拟地址为例:假设虚拟地址为0100:00000200H,禁止分页。禁止分页。如果描述符中读出的段基址为如果描述符中读出的段基址为00030000H,那么操那么操作数的物理地址是什么?作数的物理地址是什么?解:将此虚拟地址转换成物理地址为解:将此虚拟地址转换成物理地址为基地址+偏移量=00030000H+00002000H=00032000H第42页/共172页 Pentium微处理器中包含一组系统级寄存器:即5个控制寄存器CR0CR4和4个系统地址寄存器。这些寄存器只能由在特权级 0上运行的程序(一般是操作系统)访问。Pentium内部寄存器 控制寄存器控制寄存器 PentiumPentium在在8048680486控控制制寄寄存存器器CR0CR0CR3CR3的的基基础础上上新新增增了了一一个个控控制制寄寄存存器器CRCR4 4,这这些些寄寄存存器器用用来来存存放放全全局局特特性性的的机机器器状状态态和和实实现现对对8080X86/X86/PentiumPentium微处理器的多种功能的控制与选择。微处理器的多种功能的控制与选择。2.2.系统级寄存器系统级寄存器第43页/共172页数字运算错页Fault线性地址保 留31 30 29 7 6 5 4 3 2 1 0页管理 使能Cache不使能不通写对准标志写保护保护允许监视FPU仿真FPU任务转换FPU类型PGCDNW保留 AMWP保留NEET TSEMMP PEVMEPVITSDPCDMCE0PWTPSEDE0 0 0 0 页目录基址页目录基址Pentium内部寄存器CR0CR4CR3CR2CR1 控制寄存器格式控制寄存器格式:第44页/共172页 系统地址寄存器系统地址寄存器Pentium的内部寄存器系统地址寄存器 其中GDTR和LDTR分别用来存放GDT和LDT的32位线性基地址等内容;IDTR用来存放中断描述符表的基址和界限;TR用来存放任务状态段(TSS)的基址、界限和其他属性。只在保护方式下使用,所以又叫保护方式寄存器。用只在保护方式下使用,所以又叫保护方式寄存器。用于把在保护方式下常用的数据基地址、界限和其他属性保于把在保护方式下常用的数据基地址、界限和其他属性保存起来,以确保其快速性。存起来,以确保其快速性。32位基地址16位界限GDTRIDTR16位选择符32位基地址16位界限 16位其他属性LDTRTR第45页/共172页图2.14GDTR与它定义的全局描述符表第46页/共172页例:例:(GDTR)=001000000FFFH,求求GDT在物理存储器在物理存储器中的起始地址,结束地址,中的起始地址,结束地址,表的大小,表中可以存表的大小,表中可以存放多少个描述符?放多少个描述符?解:解:GDT的起始地址为的起始地址为:00100000H结束地址为结束地址为:00100000H+0FFFH=00100FFFH表的大小为表的大小为:0FFFH+1=4096字节字节表中可以存放表中可以存放4096/8=512个描述符个描述符0151647GDTRBASELIMIT第47页/共172页0151647GDTRBASELIMITGDT段描述符段描述符段描述符段描述符段描述符段描述符00100000H0FFFH00100000H0FFFH00100FFFH 512个描述符第48页/共172页图2.15LDTR和它定义的局部描述符表第49页/共172页例:设例:设LDT的基址为的基址为00120000H,GDT的基址为的基址为 00100000H,(CS)=1007H,那么:那么:请求的特权级是多少请求的特权级是多少?段描述符位于段描述符位于GDT还是还是LDT中中?段描述符的地址是什么段描述符的地址是什么?RPL:申请特权级(申请特权级(03)TI:表指示符表指示符 0使用全局描述符表使用全局描述符表 1使用局部描述符表使用局部描述符表索引:确定段描述符位置索引:确定段描述符位置02315索引TI RPL1第50页/共172页解:解:(CS)=1007H=0001 0000 0000 0111B RPL=3,申请的特权级为3TI=1,描述符位于LDT中描述符相对于LDT基址的偏移量 段描述符的地址为00001000000000B8=512 8=4096=1000H00120000H+1000H=00121000H第51页/共172页 属性 段基地址(32位)段边界(20位)11 0 31 0 19 0段选择器段选择器 描描 述述 符符 高高 速速 缓缓 冲冲 寄寄 存存 器(不可见)器(不可见)02315索引TI RPL1T1=0 GDTT1=1 LDT段描述符段描述符段描述符段描述符 存储器存储器00120000H0001000000000 1 11 B00121000H00100000H第52页/共172页图2.16任务寄存器和任务切换机制第53页/共172页 Pentium处理器中提供了一组调试寄存器和一组模型专用寄存器,用于排除故障和用于执行跟踪、性能监测、测试及机器检查错误。Pentium的内部寄存器31 0 线性断点地址0线性断点地址1线性断点地址2线性断点地址3DR6的别名DR6的别名断点状态断点控制调试寄存器DR0DR1DR2DR3DR4DR5DR6DR7 (1)(1)调试寄存器调试寄存器 调试寄存器如图所示,这调试寄存器如图所示,这是一组是一组3232位的寄存器,是程序位的寄存器,是程序员可访问的,提供片上支持调员可访问的,提供片上支持调试。试。3.3.调试和模型专用寄存器调试和模型专用寄存器第54页/共172页 Pentium处理器取消了80386/80486中的测试寄存器TR,其功能由一组“模型专用寄存器”MSR(Model Special Register)来实现,这一组MSR用于执行跟踪、性能监测、测试和机器检查错误。Pentium处理器采用两条指令RDMSR(读MSR)和WRMSR(写MSR)来访问这些寄存器,ECX中的值(8位值)确定将访问该组寄存器中哪一个MSR。Pentium的内部寄存器(2)(2)模型专用寄存器模型专用寄存器第55页/共172页PentiumPentium的四种工作方式的四种工作方式CPUCPU复位复位RSMRSM复位复位或或RSMRSMVM=0VM=0VM=1VM=1复位复位复位复位或或PE=0PE=0使使CRCR0 0的的PE=1PE=1系统管系统管理方式理方式保护保护方式方式虚拟虚拟80868086方式方式RSMRSMSMISMI实地址实地址方式方式SMISMISMISMI实地址方式实地址方式:工作原理与8086基本相同,主要区别是借助操作数长度前缀能处理32位数据,运行速度也更高,且可使用4个数据段。保护方式保护方式:CPU可访问的物理存储空间为232=4GB;程序可用的虚拟地址空间为246=64TB。段长度在启动页功能时是4GB,不启动页功能时是1MB。可支持多用户和单用户的多任务操作,并对各任务提供了多方面的保护机制。虚拟虚拟80868086方式方式虚拟8086方式:既有保护功能又能执行8086代码的工作方式,是保护方式的一种子方式。CPU的工作原理与保护虚地址方式下相同,但程序指定的逻辑地址解释与8086相同。系统系统管理管理方式方式系统管理方式:使设计者实现高级管理功能,如对电源的管理以及为操作系统和正在运行的程序提供安全性。第56页/共172页2.4 2.4 PentiumPentium微处理器指令系统微处理器指令系统PentiumPentium指令系统概貌指令系统概貌第57页/共172页 Pentium在其内部定点处理单元CPU和浮点处理单元FPU的支持下,共可处理7类数据:1.无符号二进制数2.带符号的二进制定点整数3.浮点数4.BCD码数5.串数据6.ASCII码数据7.指针数据第58页/共172页 这类数不带任何符号信息,只含有量值域,仅这类数不带任何符号信息,只含有量值域,仅CPUCPU支支持。分为三类持。分为三类:字节:字节:字:字:双字:双字:任何逻辑地址上的任何逻辑地址上的8 8位相邻位串。位相邻位串。任何字节地址开始的任何字节地址开始的2 2个相邻字节。低字个相邻字节。低字节地址为该字地址。节地址为该字地址。任何字节地址开始的任何字节地址开始的2 2个相邻字,即个相邻字,即4 4个个相邻字节。最小字节地址为双字的地址。相邻字节。最小字节地址为双字的地址。1.1.无符号二进制数无符号二进制数(序数序数)第59页/共172页 这类数均以补码表示,有8位数(字节)、16位数(字)、32位数(双字)、64位数(4字)四种。CPU支持前3种,FPU支持后3种。2.2.带符号的二进制定点整数带符号的二进制定点整数(整数整数)第60页/共172页 这类数由FPU支持,有单精度、双精度和扩展精度三种形式:单精度数31 30 23 22 0符号位阶 码有 效 数1.双精度数符号位阶 码有 效 数1.63 62 52 51 0 扩展精度数符号位阶 码1.有 效 数79 78 64 63 03.3.浮点数浮点数(实数实数)第61页/共172页 BCD码数有压缩BCD码数和非压缩BCD码数两种。CPU两种数都支持;FPU只支持压缩BCD码数,且最大长度为80位,最多可处理20位BCD码数。5.串数据 这类数据仅这类数据仅CPUCPU支持。包括支持。包括:位串位串:字节字节/字字/双字串双字串:是从任何字节的任何位开始的相邻位的是从任何字节的任何位开始的相邻位的序列,最长可达序列,最长可达2 23232-1-1位。位。是字节是字节/字字/双字的相邻序列,双字的相邻序列,最长可达最长可达2 23232-1-1字节。字节。4.4.BCDBCD码数码数第62页/共172页包括ASCII码字符串和ASCII码数(0F)两种。7.指针数据包括近指针和远指针两种:近指针即32位指针,是一个32位的段内偏移量,段内寻址用。远指针即48位指针,由16位选择符和32位偏移量组成,用于跨段访问。6.6.ASCIIASCII码数据码数据第63页/共172页关于数据类型的两点说明:(1)在上述各类型数据中,基本的数据类型仍是字节、字和双字。一般应尽可能将字操作对准于偶地址,将双字操作对准于4的整数倍地址。但也允许不对准操作,以便在数据结构的处理上和存储器的有效利用上给系统设计人员和用户提供最大的灵活性。不过,对准和不对准获得的数据传递速度不一样:对准的字和双字可一次传递完,而未对准的字和双字需几次才能传递完。(2)对于字和双字数据,80X86是采用低端低地址方式来存储的。即字数据被存储在两个相邻的字节单元之中,低位字节在低地址单元,高位字节在高地址单元;双字数据存储在四个连续字节单元中,最低位字节在最低地址单元,最高字节在最高地址单元。而字或双字数据的地址是指最低位字节所在的单元地址。第64页/共172页1.1.寻址方式和有效地址概念寻址方式和有效地址概念2.112.11种寻址方式种寻址方式3.3.存储器寻址时的段约定存储器寻址时的段约定4.4.应用举例应用举例第65页/共172页 寻址方式就是寻找指令中操作数地址的方式。操作数寻址方式就是寻找指令中操作数地址的方式。操作数所在地址有三种可能:所在地址有三种可能:直接包含在指令中直接包含在指令中,即指令的操作数部分就是操作,即指令的操作数部分就是操作 数本身。这种操作数叫立即数,对应的指令寻址方数本身。这种操作数叫立即数,对应的指令寻址方 式称为式称为立即数寻址。立即数寻址。包含在包含在CPU CPU 的某个内部寄存器中的某个内部寄存器中。这时指令中的操。这时指令中的操 作数部分是作数部分是CPUCPU的一个寄存器的一个寄存器,这种指令寻址方式称这种指令寻址方式称 为为寄存器寻址寄存器寻址。在内存储器中在内存储器中。这时指令的操作数部分包含着该操。这时指令的操作数部分包含着该操 作数所在的内存地址。这种指令寻址方式称为作数所在的内存地址。这种指令寻址方式称为存储存储 器寻址器寻址。1.1.寻址方式和有效地址概念寻址方式和有效地址概念 寻址方式第66页/共172页 在Pentium系列MPU中,内存实际地址(PA)由段基地址和段内偏移地址两部分组成。段内偏移地址可由以下几部分组合而成:v 基址寄存器内容v 变址寄存器内容v 比例因子v 位移量 这四个基本部分称为偏移地址四元素,一般又将由这四种元素组合形成的偏移地址称为有效地址EA。EA=基址+(变址比例因子)+位移量 有效地址有效地址EAEA第67页/共172页有效地址元素16位寻址32位寻址基址寄存器 BX,BP 任何32位通用寄存器变址寄存器 SI,DI 除ESP外的任何32位通用寄存器比例因子 无(或1)1,2,4,8位移量 0,8,16位 0,8,32位1616位和位和3232位寻址时的四元素定义位寻址时的四元素定义第68页/共172页 保护方式下的寻址过程保护方式下的寻址过程(地址转换过程地址转换过程)有效地址计算变址位移基址比例因子+32位有效地址31 0BE7BE0A31A332 位32 位13位描述符检索段寄存器选择符 TIRPL15 3 2 1 0分段分段部件部件线性线性地址地址物理物理存储器存储器分页分页部件部件(可选可选)物理物理地址地址逻逻辑辑地地址址(虚虚拟拟)(CS,DS,ES,SS,FS,GSCS,DS,ES,SS,FS,GS)不分页第69页/共172页 偏移地址四元素可优化组合出9种存储器寻址方式,加上立即数寻址和寄存器寻址,Pentium共有11种寻址方式:(1)立即数