第二章 微处理器 - CPU_第1页
第二章 微处理器 - CPU_第2页
第二章 微处理器 - CPU_第3页
第二章 微处理器 - CPU_第4页
第二章 微处理器 - CPU_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、2.1 寄存器寄存器n8086/8088内部寄存器内部寄存器8086寄存器组又称为寄存器组又称为8086的程序设计模型的程序设计模型 它是程序设计中惟一可见的它是程序设计中惟一可见的CPU部件部件 它是系统程序设计员的操作对象它是系统程序设计员的操作对象 含含14个个16位寄存器,按功能可分为三类:位寄存器,按功能可分为三类: 通用寄存器,通用寄存器,8个个 段寄存器,段寄存器,4个个 控制寄存器,控制寄存器,2个个SPIPFLAGSAHALBHBLCHCLDHDLAXBXCXDXBPSIDICSDSESSS通用寄存器控制寄存器段寄存器16位16位2.1.1 16位寄存器一、通用寄存器一、通用

2、寄存器 数据寄存器(数据寄存器(AX,BX,CX,DX) 地址指针寄存器(地址指针寄存器(SP,BP) 变址寄存器(变址寄存器(SI,DI)地址指针寄存器地址指针寄存器SP:堆栈指针寄存器:堆栈指针寄存器其内容为其内容为堆栈堆栈栈顶的偏移地址栈顶的偏移地址;任何堆栈操作后,任何堆栈操作后,SP都会自动增都会自动增/减量。减量。BP:基址指针寄存器:基址指针寄存器在在间接寻址间接寻址中用于存放操作数的基地址;中用于存放操作数的基地址;常用于访问存放在堆栈中的数据。常用于访问存放在堆栈中的数据。n变址寄存器变址寄存器nSI:源变址寄存器,用于访问源操作数:源变址寄存器,用于访问源操作数nDI:目标

3、变址寄存器,用于访问目的操作数:目标变址寄存器,用于访问目的操作数常用于操作数的常用于操作数的间接寻址间接寻址或或变址寻址变址寻址。在串操作指令中,在串操作指令中,SI存放源操作数的偏移地址,而存放源操作数的偏移地址,而DI存放目标操作数的偏移地址。存放目标操作数的偏移地址。二、段寄存器二、段寄存器用于存放逻辑段的段基地址(简称段地址)用于存放逻辑段的段基地址(简称段地址)CS:代码段寄存器。代码段存放指令代码:代码段寄存器。代码段存放指令代码DS:数据段寄存器:数据段寄存器 ES:附加段寄存器:附加段寄存器SS:堆栈段寄存器:指示堆栈区域的位置:堆栈段寄存器:指示堆栈区域的位置堆栈段堆栈段S

4、S数据段数据段DS/ES代码段代码段CS三、控制寄存器三、控制寄存器IP:指令指针寄存器:指令指针寄存器其内容为下一条要执行的指令的偏移地址。其内容为下一条要执行的指令的偏移地址。FLAGS:标志寄存器:标志寄存器存放指令执行结果的特征:存放指令执行结果的特征:有些指令(如算术指令)要改变有些指令(如算术指令)要改变FLAGS的内容的内容(影响影响FLAGS);有些指令对有些指令对FLAGS无影响。无影响。6个状态标志位(个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(个控制标志位(IF,TF,DF)ODITSZAPC1502467891011FLAGS321Pentium寄

5、存器寄存器 Pentium配备的寄存器按类可分为如下几类:配备的寄存器按类可分为如下几类:(1)基本体系结构寄存器:)基本体系结构寄存器: 通用寄存器;通用寄存器; 指令指针寄存器;指令指针寄存器; 标志寄存器;标志寄存器; 段寄存器;段寄存器; (2)系统级寄存器:)系统级寄存器: 系统寄存器;系统寄存器; 系统地址寄存器;系统地址寄存器;()调试和测试寄存器:()调试和测试寄存器:()浮点寄存器:()浮点寄存器: 浮点寄存器包括:浮点寄存器包括: 数据寄存器;数据寄存器;标记字寄存器;标记字寄存器;状态字寄存器状态字寄存器 ;指令和数据指针寄存器;指令和数据指针寄存器; 控制字寄存器;控制

6、字寄存器;2.1.2 32位寄存器位寄存器AXAXBXBXCXCXDXDXBPBPSISIDIDISPSPEAXEAXEBXEBXECXECXEDXEDXEBPEBPESIESIEDIEDIESPESP累加寄存器累加寄存器基址寄存器基址寄存器计数寄存器计数寄存器数据寄存器数据寄存器基地址指针寄存器基地址指针寄存器源变址寄存器源变址寄存器目标变址寄存器目标变址寄存器堆栈指针寄存器堆栈指针寄存器3232位寄存器名位寄存器名称称中间是中间是1616位寄存器位寄存器名称名称AHAHB BH HC CH HD DH HA AL LBLBLCLCLDLDL斜体表示斜体表示8 8位寄存器名位寄存器名称称16

7、16313115150 07 78 8通用寄存器通用寄存器代码段寄存器代码段寄存器CS堆栈段寄存器堆栈段寄存器SS 数据段寄存器数据段寄存器 DS 附加数据段寄存器附加数据段寄存器 ES 附加数据段寄存器附加数据段寄存器 FS 附加数据段寄存器附加数据段寄存器 GS段寄存器段寄存器 代码段寄存器代码段寄存器 CS 堆栈段寄存器堆栈段寄存器 SS015 310 标志寄存器标志寄存器 FLAGS 指令指针寄存器指令指针寄存器 IP 标志和指令指针寄存器标志和指令指针寄存器注:图中的深色部分表明,只有注:图中的深色部分表明,只有32位的位的80386、80486,Pentium微处理器微处理器才配备

8、有、且可以用这些才配备有、且可以用这些32位的寄存器。位的寄存器。基本体系结构寄存器基本体系结构寄存器(1) 通用寄存器通用寄存器 8个通用寄存器也可以称之为多功能寄存器,它们全部是个通用寄存器也可以称之为多功能寄存器,它们全部是32位寄存器,而且用户可以随意使用这位寄存器,而且用户可以随意使用这8个个32位通用寄存器。在这些寄存器内存放着逻辑操作和算术运算用的操作数,除堆栈指针寄存器位通用寄存器。在这些寄存器内存放着逻辑操作和算术运算用的操作数,除堆栈指针寄存器ESP不能作不能作为变址寄存器使用外,其余七个通用寄存器在进行地址计算时都可用来存放参与运算的操作数。为变址寄存器使用外,其余七个通

9、用寄存器在进行地址计算时都可用来存放参与运算的操作数。()() 段寄存器段寄存器 Pentium器配备有器配备有6个个16位的段寄存器,他们分别是:位的段寄存器,他们分别是: 代码段寄存器代码段寄存器CS、数据段寄存器、数据段寄存器DS、 堆栈段寄存器堆栈段寄存器SS、附加数据段寄存器、附加数据段寄存器ES、 附加数据段寄存器附加数据段寄存器FS、附加数据段寄存器、附加数据段寄存器GS。 这这6个段寄存器与个段寄存器与80386的的6个段寄存器同宗、同名、同功能。段寄存器的另一种称呼叫段选择符,也有的个段寄存器同宗、同名、同功能。段寄存器的另一种称呼叫段选择符,也有的称其为段选择子。称其为段选

10、择子。()标志寄存器()标志寄存器 Pentium标志寄存器的作用是用来存放有关标志寄存器的作用是用来存放有关Pentium的状态标志信息、控制标志信息以及系统标志信息。各的状态标志信息、控制标志信息以及系统标志信息。各条件码(例如进位、符号、溢出)及方式位均存放在的标志寄存器条件码(例如进位、符号、溢出)及方式位均存放在的标志寄存器EFLAGS中,如图所示。中,如图所示。 标志寄存器中这些标志不仅控制着微处理器的某些操作,且随时随地的指示出微处理器的状态。标志寄标志寄存器中这些标志不仅控制着微处理器的某些操作,且随时随地的指示出微处理器的状态。标志寄存器内不仅有状态和控制标志,而且还有几位是

11、系统标志位。状态标志位用存器内不仅有状态和控制标志,而且还有几位是系统标志位。状态标志位用S表示,控制标志位用表示,控制标志位用C表示,表示,系统标志位用表示。系统标志位用表示。()() 指令指针寄存器指令指针寄存器 指令指针寄存器指令指针寄存器EIP内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程序员使用,它由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。序员使用,它由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。()() 指令指针寄存器指令指针寄存器 指令指针寄存器指令指

12、针寄存器EIP内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程序员使用,它内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程序员使用,它由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。全局描述符寄存器全局描述符寄存器 中断描述符寄存器中断描述符寄存器 选择符选择符 选择符选择符32位线性基地址位线性基地址32位线性基地址位线性基地址32位段界限位段界限属性属性界限界限GDTRIDTRLDTRTR16 15047150系统段寄器系统段寄器描述符寄存器(自动装入)描述符寄存器(自动

13、装入) (2) 控制寄存器控制寄存器 Pentium由于控制管理的需要,又配备了由于控制管理的需要,又配备了5个控制寄存器。个控制寄存器。CR0、CR1、CR2、CR3和和CR4。 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 页页 故故 障障 线线 性性 地地 址址 寄寄 存存 器器 保保 留留V VM ME EP PV VI IT TS SD DP PS SE EM MC CE ED DE E0 0P PW WT TP PC CD D012345673131CR4CR4CR3CR3CR2CR2CR1CR10 03 34 412 1112

14、 11313116 1516 1516 151600 0 控制寄存器控制寄存器CR0CR0CR0不写贯穿不写贯穿禁止禁止Cache允许分页允许分页P PE EM MP PE EM MT TS SE ET TN NE EW WP PA AM MN NW WC CD DP PG G对准屏蔽对准屏蔽写保护写保护数值错数值错扩展类型扩展类型任务切换任务切换模拟浮点部件模拟浮点部件监控浮点部件监控浮点部件允许保护允许保护控制寄存器控制寄存器CR1: Pentium微处理器的微处理器的CR1控制寄存器没有定义,供将来用。控制寄存器没有定义,供将来用。 控制寄存器控制寄存器CR2:

15、 Pentium的的CR2控制寄存器内保存的是页故障线性地址。控制寄存器内保存的是页故障线性地址。控制寄存器控制寄存器CR3: Pentium的的CR3控制寄存器是页目录基地址寄存器,保存着页目录表的物理基地址。控制寄存器是页目录基地址寄存器,保存着页目录表的物理基地址。控制寄存器控制寄存器CR4 较之较之80386、80486微处理器,微处理器,Pentium又新配备了一个又新配备了一个CR4控制寄存器。其内共设置了控制寄存器。其内共设置了6个控制位。其个控制位。其目的是用来扩展目的是用来扩展Pentium的某些体系结构。的某些体系结构。2.2 微处理器的组成原理微处理器的组成原理2.2.1

16、 16位微处理器的组成原理位微处理器的组成原理8086/8088 CPU的结构的结构总线控制逻辑8086总线执行部件 EU总线接口部件 BIU状态标志寄存器AHBLCLDLBHCHDHAXBXCXDXSPBPSIDIALU 数据总线(16 位)暂存器ALU控制电路1 2 3 4 5 6CSDSSSES内部通信寄存器IP地址加法器指令队列AL1 执行部件执行部件EU执行部件中包含一个执行部件中包含一个16位的算术逻位的算术逻辑单元(辑单元(ALU),),8个个16位的通用寄存器,位的通用寄存器,一个一个16位的状态标志寄存器,一个数据暂位的状态标志寄存器,一个数据暂存寄存器和执行部件的控制电路。

17、存寄存器和执行部件的控制电路。功能:从功能:从BIU的指令队列中取出指令的指令队列中取出指令代码,经指令译码器译码后执行指令所规代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行定的全部功能。执行指令所得结果或执行指令所需的数据,都由指令所需的数据,都由EU向向BIU发出命令,发出命令,对存储器或对存储器或I/O接口进行读接口进行读/写操作。写操作。 2 总线接口部件总线接口部件BIU总线接口部件总线接口部件BIU内部设有四个内部设有四个16位位段地址寄存器:代码段寄存器段地址寄存器:代码段寄存器CS、数据段、数据段寄存器寄存器DS、堆栈段寄存器、堆栈段寄存器SS和附加段

18、寄存和附加段寄存器器ES,一个,一个16位指令指针寄存器位指令指针寄存器IP,一个,一个6字节指令队列缓冲器,字节指令队列缓冲器,20位地址加法器和总位地址加法器和总线控制电路。线控制电路。主要功能:根据执行部件主要功能:根据执行部件EU的请求,的请求,负责完成负责完成CPU与存储器或与存储器或I/O设备之间的数设备之间的数据传送。据传送。 3 数学协处理器数学协处理器8087是是intel公司于公司于20世纪世纪80年代开发的一种专门进行浮点处理的微处理器。年代开发的一种专门进行浮点处理的微处理器。2.2.2 16位微处理器的不足位微处理器的不足微机技术与时俱进,现在已经进入了微机技术与时俱

19、进,现在已经进入了64位双核的微处理器时代。位双核的微处理器时代。8086之所以被历史淘汰,是因为其性能与现在微处理器相比相形见绌,主要表现在以下几个方面。之所以被历史淘汰,是因为其性能与现在微处理器相比相形见绌,主要表现在以下几个方面。1存储器容量小存储器容量小2时钟频率低时钟频率低3计算精度低计算精度低4技术含量低技术含量低5存取速度低存取速度低2.2.3 32位微处理器的组成原理位微处理器的组成原理TLB 代码Cache 8K字节预取缓冲存储器指令译码控制ROM控制部件地址生成 地址生成(U流水线) (V流水线)控制寄存器组总线部件加法器除法器乘法器整数寄存器组 ALU(U流水线) AL

20、U(V流水线)数据Cache (8K字节)分支转移目标缓冲存储器分分段页部部件件TLB预取地址256指令指针转移检验和目标地址64位数据总线32位地址总线控制浮点部件64位数据 总线32位地址总线桶型移位器32 32 8032 32 32 32 n1 1总线接口部件总线接口部件n总线接口部件与外部总线接口实行的是逻辑接口连接。总线接口部件与外部总线接口实行的是逻辑接口连接。n当访问当访问Cache出现没命中、或需更改系统存储器内容,就要通过总线接口从外部存储器系统中取出出现没命中、或需更改系统存储器内容,就要通过总线接口从外部存储器系统中取出一批数据。一批数据。n在填充在填充Cache时,总线

21、接口使用的是成组传送方式,以遮掩向缓冲存储器写数据时出现的等待时间时,总线接口使用的是成组传送方式,以遮掩向缓冲存储器写数据时出现的等待时间等。为了支持片内等。为了支持片内Cache的连贯性,的连贯性,Pentium微处理机的总线接口还配备有总线监视功能设施。微处理机的总线接口还配备有总线监视功能设施。n2 2预取缓冲部件预取缓冲部件n当总线部件不执行总线周期时就去执行一个取指令周期,预取缓冲部件就去预取指令。当总线部件不执行总线周期时就去执行一个取指令周期,预取缓冲部件就去预取指令。Pentium微微处理机总是提前把指令从指令处理机总是提前把指令从指令Cache预取到预取缓冲部件,很少出现微

22、处理机等待指令预取的现象预取到预取缓冲部件,很少出现微处理机等待指令预取的现象。n3 3指令译码部件指令译码部件nPentium微处理机的指令译码部件的作用是对由预取缓冲部件提供的指令流给以译码。微处理机的指令译码部件的作用是对由预取缓冲部件提供的指令流给以译码。nPentium微处理机可以做到每个时钟周期以并行方式完成两条指令译码操作。在流水线预取微处理机可以做到每个时钟周期以并行方式完成两条指令译码操作。在流水线预取PF操操作步骤和首次译码操作步骤作步骤和首次译码操作步骤D1开始对主存储器进行访问,开始对主存储器进行访问,CPU以并行方式取两条简单指令并给以以并行方式取两条简单指令并给以译

23、码,然后再将这两条指令分别发送给译码,然后再将这两条指令分别发送给U流水线和流水线和V流水线,这样就可以在一个时钟周期内同时执流水线,这样就可以在一个时钟周期内同时执行两条指令。在第一个时钟周期装入的两条指令,在第二个时钟周期已开始进入译码操作,同时第行两条指令。在第一个时钟周期装入的两条指令,在第二个时钟周期已开始进入译码操作,同时第二批指令又在第二个时钟周期装入到指令流水线内。而对那些比较复杂的指令来说,二批指令又在第二个时钟周期装入到指令流水线内。而对那些比较复杂的指令来说,CPU则是在则是在首次译码首次译码D1步骤期间生成控制步骤期间生成控制U流水线和流水线和V流水线的微代码序列。流水

24、线的微代码序列。n4 4控制部件控制部件nPentium微处理机控制部件的作用是负责解释来自指令译码部件的指令字和控制微处理机控制部件的作用是负责解释来自指令译码部件的指令字和控制ROM的微代码。的微代码。控制部件的输出控制着整数流水线部件和浮点部件。控制部件的输出控制着整数流水线部件和浮点部件。n在控制在控制ROM部件内拥有部件内拥有Pentium微处理机的微代码。由于有许多指令都有惟一的一行微代码,微处理机的微代码。由于有许多指令都有惟一的一行微代码,Pentium微处理机平均起来每一个时钟周期就能执行一条以上的指令。微处理机平均起来每一个时钟周期就能执行一条以上的指令。n5 5分段部件分

25、段部件nPentium微处理机的存储管理功能是由分段和分页管理部件实施的。分段管理部件是片内整个存储管理功能的一个组成部分。其内配备有一个段描述符Cache 以及用来计算有效地址和线性地址所必需的电路。n6 6分页部件分页部件nPentium微处理机的分页存储管理部件,在整个存储管理系统内采用的是二级分页管理机制。分页部件也需要一种面向分页的执行逻辑,用来对分页规则进行检测。n使用分页部件可以使程序能够访问比实际可用的存储空间大很多的数据结构,所采用的手段就是将这种大数据结构的一部分保存在主存储器之内,而另一部分则保存在磁盘上。n分段与分页是不一样的,对应用程序来说分页是不可见的,而且对依据程

26、序修改被限制存储空间外面的数据不提供同等保护。但分页对操作系统来说又是可见的,操作系统使用分页可以满足应用程序对存储器的需求。n7 7分支转移目标缓冲存储器分支转移目标缓冲存储器n在Pentium微处理机内采用了分支转移预测新技术。为了支持这项新技术的实施,芯片内装备有两个预取缓冲存储器,一个是以线性方式来预取代码,另一个则是根据分支转移目标缓冲器(BTB)预取代码。n由于Pentium CPU配备了一个转移目标缓冲存储器,在处理转移类指令时使CPU性能有了明显的改进。n当首次出现转移指令时,CPU就在转移目标缓冲存储器中指定一个登记项与转移指令的地址建立缔合关系。n当指令被译码后,CPU就对

27、转移目标缓冲存储器内容进行检索,以确定其内是否保存着一个与一条转移指令相对应的登记项。n在转移目标缓冲存储器内可保存256个预测的转移登记项,CPU在写回WB步骤期间对登记项进行修改。n由于Pentium采用了这项技术,可以在无延迟的情况下正确地预测各种转移。n8 8浮点部件浮点部件nPentium 微处理机把浮点部件与整数部件、分段部件、分页部件等都集成到同一芯片之内,而且执行的是流水线操作方式。把整个浮点部件设计成每个时钟周期都能够进行一次浮点操作,每个时钟周期可以接受两条浮点指令,但是其中的一条浮点指令必须是交换类的指令。n对程序设计人员来说,可以把Pentium微处理机芯片内的浮点部件

28、FPU(Floating Point Unit)看成是一组辅助寄存器,是数据类型的扩展;还可以把浮点部件的指令系统看成是Pentium微处理机指令系统的一个子集。n9 9Cache部件部件nPentium有两个片内Cache,一个是指令Cache,一个是数据Cache。2.3 Pentium采用的新技术采用的新技术1. 超标量执行超标量执行 超标量是指那种拥有多条指令流水线,并在每个时钟周期中可执行一条以上的指令(在理想情况下超标量是指那种拥有多条指令流水线,并在每个时钟周期中可执行一条以上的指令(在理想情况下)的微处理器处理指令的操作方式。)的微处理器处理指令的操作方式。 Pentium的超

29、标量体系结构,配备有三条流水线,一条是执行浮点指令的浮点部件内的浮点流水线的超标量体系结构,配备有三条流水线,一条是执行浮点指令的浮点部件内的浮点流水线,而另两条则是整数运算部件内执行整数指令的,而另两条则是整数运算部件内执行整数指令的U流水线和流水线和V流水线。这样就使得流水线。这样就使得Pentium拥有了拥有了可同时执行可同时执行3条指令的能力。条指令的能力。 控制字译码控制字译码 生成存储器地址生成存储器地址 控制字译码控制字译码 生成存储器地址生成存储器地址访问数据访问数据Cache 或或ALU计算计算 访问数据访问数据Cache 或或ALU计算计算 写结果写结果 写结果写结果 取指

30、令且对准取指令且对准 指令译码指令译码 生成控制字生成控制字PFD1D2EXWBV流水线流水线U流水线流水线2 分支转移预测技术分支转移预测技术(1) 分支转移预测和推测执行技术分支转移预测和推测执行技术 采用分支转移预测和动态推测执行的主要目的,是为了提高采用分支转移预测和动态推测执行的主要目的,是为了提高CPU的运行速度。推测执行是建的运行速度。推测执行是建立在分支立在分支 转移预测基础上的一项技术。转移预测基础上的一项技术。 推测执行是指允许推测执行是指允许CPU去处理那些不一定总能被执行的指令,例如,跳过条件的分支转移。在去处理那些不一定总能被执行的指令,例如,跳过条件的分支转移。在经

31、分支转移预测程序预测判断之后,决定是否进行分支转移,接下来所要进行的处理就是推测经分支转移预测程序预测判断之后,决定是否进行分支转移,接下来所要进行的处理就是推测执行。执行。 (2) 分支转移预测判断分支转移预测判断 为了支持在为了支持在Pentium内采用的分支转移预测新技术,芯片内装备有两个预取缓冲存储器,一个内采用的分支转移预测新技术,芯片内装备有两个预取缓冲存储器,一个是以线性方式来预取代码,另一个则是根据分支转移目标缓冲器(是以线性方式来预取代码,另一个则是根据分支转移目标缓冲器(BTB)预取代码。这样就可)预取代码。这样就可以保证在执行之前将所需用的指令从存储器预取出来。以保证在执

32、行之前将所需用的指令从存储器预取出来。 由于由于Pentium采用了这项技术,可以在无延迟的情况下正确地预测各种转移。另外,采用了这项技术,可以在无延迟的情况下正确地预测各种转移。另外,V流水流水线中的条件转移指令可以与一条比较类指令成对执行,当然也可以与线中的条件转移指令可以与一条比较类指令成对执行,当然也可以与U流水线中的置标志指令流水线中的置标志指令配合执行。但配合执行。但Pentium作到了与现有软件是完全兼容,所以不必修改现有软件。作到了与现有软件是完全兼容,所以不必修改现有软件。 3 流水线技术流水线技术 流水线操作流水线操作(Pipeline),类似于大工业生产的,类似于大工业生

33、产的“装配线装配线”设计,设计,Pentium微处理器的流水线操作是微处理器的流水线操作是指把指令的操作处理分解成许多更小的操作步骤或操作阶段,每个操作步骤或操作阶段都由各自独指把指令的操作处理分解成许多更小的操作步骤或操作阶段,每个操作步骤或操作阶段都由各自独立的电路来实现的。立的电路来实现的。 当一条指当一条指 令执行完了一个操作步骤之后,它就按顺序进入到流水线操作的下一个操作步骤,而令执行完了一个操作步骤之后,它就按顺序进入到流水线操作的下一个操作步骤,而前一个操作步骤则会继续处理后续的指令。前一个操作步骤则会继续处理后续的指令。n(1 1)流水线技术)流水线技术nIntel在在8048

34、6芯片中首次采用了流水线技术。在芯片中首次采用了流水线技术。在Pentium微处理器上继承并发展了流水线技术。微处理器上继承并发展了流水线技术。 (2) Pentium(2) Pentium整数流水线整数流水线 Pentium的整数流水线操作是由的整数流水线操作是由1)预取)预取PF、2)首次译码)首次译码D1、3)二次译码)二次译码D2、4)执行)执行EX、5)写回)写回WB 共五个操作步骤组成。共五个操作步骤组成。 n整数流水示范 (3)(3)指令流水线操作指令流水线操作 PentiumPentium整数指令的执行要经过指令预取整数指令的执行要经过指令预取PFPF、指令首次译码、指令首次译

35、码 D1D1、二次译码、二次译码D2D2、指令执行、指令执行EXEX和写和写回回WBWB这五个操作步骤。这五个操作步骤。在流水线内会有在流水线内会有5 5条指令同时执行。条指令同时执行。 1)非流水线操作)非流水线操作 为了更好地说明流水线操作技术,以及更好地认识流水线操作的技术进步, 先从非流水线操作认识起当一条指令在执行的过程之中时,其他指令则要眼吧吧地看着这条指令的执行,等待着这条指令的完成。只有前一条指令经历了这五个操作步骤,完成了这条指令的操作,下一条指令才可得以进入指令的执行,同样又是五个时钟周期时间,同样又是其他指令的等待。这种非流水线操作方式并没有把计算机执行的时间资源有效地利

36、用起来2)指令流水线操作)指令流水线操作 (指令流水线操作时序见(指令流水线操作时序见 艾德才教材艾德才教材P38图图2-13) Pentium是一种能够以并行方式同时执行两条指令的超标量机器。两条指令按照流水线操作的5个操作步骤以并行方式执行操作,使整数指令能够在一个时钟里,在两条流水线上同时执行 3)指令配对规则)指令配对规则 Pentium微处理器每个时钟可以发出一条或两条指令。微处理器每个时钟可以发出一条或两条指令。 要同时发出两条指令,必须满足下列配对规则:要同时发出两条指令,必须满足下列配对规则: 配对两条指令必须是所谓的配对两条指令必须是所谓的“简单简单”指令;指令; 两条指令之

37、间不得存在两条指令之间不得存在“写后读写后读”或或“写后写写后写”这样的寄存器相关性;这样的寄存器相关性; 一条指令不能同时既包含位移量又包含立即数;一条指令不能同时既包含位移量又包含立即数;带前缀带前缀(JCC指令的指令的OF除外除外)的指令只能出现在的指令只能出现在U流水线中。流水线中。依赖性或相关性是指,只有当一条指令执行完毕之后,才允许另一条指令执行的一个条件。依赖性或相关性是指,只有当一条指令执行完毕之后,才允许另一条指令执行的一个条件。2.4 操作模式操作模式2.4.1 16位微处理器的操作模式位微处理器的操作模式8086两种工作模式:两种工作模式:最小模式和最大模式最小模式和最大

38、模式 最小模式不支持最小模式不支持8087。存储器和。存储器和I/O控制信号全部由控制信号全部由CPU产生。产生。 最大模式支持最大模式支持8087。CPU的部分信号线被用作的部分信号线被用作8087的控制,因此需要由的控制,因此需要由8288总线控制器来产生这总线控制器来产生这些控制信号。些控制信号。2.4.2 32(Pentium)位微处理器的操作模式)位微处理器的操作模式 Pentium有两种主要的操作模式及一种有两种主要的操作模式及一种“系统管理模式系统管理模式”。操作模式决定可使用哪些指令及体系结构。操作模式决定可使用哪些指令及体系结构特性。这些模式如下:特性。这些模式如下:(1 1

39、) 保护模式保护模式 这是微处理器的本机状态,在这个模式下所有指令及体系结构特性均可以使用。这是微处理器的本机状态,在这个模式下所有指令及体系结构特性均可以使用。(2 2)实地址模式(也称实模式)实地址模式(也称实模式) 这种模式提供了这种模式提供了8086的程序设计环境,并有一些扩展功能(如退出该模式,的程序设计环境,并有一些扩展功能(如退出该模式, 复位时把处理器置复位时把处理器置于实模式,也可以通过一条指令使处理器切换到保护模式。于实模式,也可以通过一条指令使处理器切换到保护模式。(3 3)系统管理模式)系统管理模式 Pentium还支持系统存储管理模式(还支持系统存储管理模式(SMM)

40、,),SMM是所有新的是所有新的Intel微处理器(从微处理器(从80386开始)开始)所特有的一种标准体系结构特性。所特有的一种标准体系结构特性。2.5 浮点部件浮点部件 Pentium 通过芯片内的浮点部件把浮点技术表现得淋漓尽致,由于通过芯片内的浮点部件把浮点技术表现得淋漓尽致,由于Pentium 微处理器把浮点部件与整微处理器把浮点部件与整数部件、分段部件、分页部件等都集成到同一芯片之内,而且执行的是流水线操作方式。把整个浮数部件、分段部件、分页部件等都集成到同一芯片之内,而且执行的是流水线操作方式。把整个浮点部件设计成每个时钟周期都能够进行一次浮点操作,每个时钟周期可以接受两条浮点指

41、令,但是点部件设计成每个时钟周期都能够进行一次浮点操作,每个时钟周期可以接受两条浮点指令,但是其中的一条浮点指令必须是交换类的指令。其中的一条浮点指令必须是交换类的指令。 对程序设计人员来说,可把对程序设计人员来说,可把Pentium芯片内的浮点部件芯片内的浮点部件FPU看成是一组辅助寄存器,是数据类看成是一组辅助寄存器,是数据类型的扩展;还可以把浮点部件的指令系统看成是型的扩展;还可以把浮点部件的指令系统看成是Pentium指令系统的一个子集。指令系统的一个子集。 Pentium 的浮点部件是在的浮点部件是在80486浮点部件的基础上重新设计而成。其整体性能比浮点部件的基础上重新设计而成。其

42、整体性能比80486性能会性能会高出高出5倍之多。倍之多。3.5.1 浮点部件体系结构浮点部件体系结构1 数值寄存器数值寄存器 Pentium浮点部件的数值寄存器是由浮点部件的数值寄存器是由8个个80位的数值寄存器、三个位的数值寄存器、三个16位的寄存器等构成。其中,位的寄存器等构成。其中,这这8个个80位的能各自独立进行寻址的数值寄存器,又可用来构成一个寄存器堆栈。位的能各自独立进行寻址的数值寄存器,又可用来构成一个寄存器堆栈。 064 6378791 0标志字段标志字段R7 R7 R6 R6 R5 R5 R4 R4 R3 R3 R2 R2 R1 R1 R0 R0 符号符号有效数位有效数位指

43、指 数数n 而而3个个16位的寄存器分别称之为浮点部件位的寄存器分别称之为浮点部件FPU的状态字寄存器、浮点部件控制字寄存器和标记字寄的状态字寄存器、浮点部件控制字寄存器和标记字寄存器。存器。150控制字寄存器控制字寄存器状态字寄存器状态字寄存器标记字寄存器标记字寄存器 2状态字寄存器状态字寄存器 Pentium 片内浮点部件状态字寄存器内容反映的是浮点部件的全部状态和环境。根据其作用状片内浮点部件状态字寄存器内容反映的是浮点部件的全部状态和环境。根据其作用状态字又可以进一步细分成两个字段:一个是异常事故标志字段,另一个则是状态位字段。首先用态字又可以进一步细分成两个字段:一个是异常事故标志字

44、段,另一个则是状态位字段。首先用一条存放在存储器中的浮点操作指令检查状态字,然后再使用一条存放在存储器中的浮点操作指令检查状态字,然后再使用Pentium 指令代码再检查各位状态指令代码再检查各位状态。条件码条件码栈顶指针栈顶指针浮点部件正忙浮点部件正忙无效操作事故无效操作事故非规格式化操作数非规格式化操作数除数为零除数为零溢出标志溢出标志下溢事故下溢事故精度事故精度事故堆栈故障异常堆栈故障异常概括出错状态概括出错状态IEDEZEOEUEPESFESC0C1C2C3BTOP012345678910111314153 控制字寄存器控制字寄存器 控制字内包括有事故屏蔽控制字内包括有事故屏蔽,允许中断屏蔽以及若干控制位。图中示出了控制字格式以及各字段的允许中断屏蔽以及若干控制位。图中示出了控制字格

温馨提示

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

评论

0/150

提交评论