《主要教学内容》PPT课件.ppt
第8章 80 x86 CPU,本章主要教学内容 8086微处理器的基本性能指标、组成及其寄存器结构 8086微处理器的外部引脚特性 8086微处理器的存储器和I/O组织 8086的时钟和总线概念及其最小/最大工作方式 80286、80386、80486等高档微处理器 教学目的:使学生掌握80X86微处理器的基本使用 教学重点:8086微处理器的组成及其寄存器结构;8086 微处理器的存储器和I/O组织 教学难点:8086微处理器的存储器和I/O组织,8.1 简单微型计算机,8.1.1 基本结构 8.1.2 工作原理 8.1.3 简单程序执行过程 8.1.1 基本结构 1.微型计算机结构框图 微型计算机硬件基本结构 运算器、控制器、存储器、输入设备和输出设备 运算器和控制器合称为中央处理器CPU。三类总线连接系统的上,输入/输出设备通过I/O接口 挂接在总线上。单一总线结构使微型机结构简单,易于扩充,奠定了 产品标准化、模块化基础。,1.微型计算机结构框图(续),简化的保持了CPU主要特征的简单微型计算机结构 该CPU包含运算器ALU、控制器和寄存器组,由内部总线相连;该机机器字长8位,内部寄存器为8位,外部数据总线DB也是8 位;基本上与Intel 8080 CPU相对应。,3.总线(BUS),功能:各部件之间传送信息的公共通道 种类:数据总线DB、地址总线AB和控制总线CB(1)数据总线:CPU、存储器或I/O端口等部件之间传递数据,宽度(根数)通常与计算机的字长一致,传输方向双向(2)地址总线:传送存储单元或I/O端口的地址信息,地址总线一般由CPU输出给存储器或I/O端口(3)控制总线:CPU控制器发往各部件的控制信号线 各部件反馈给CPU的状态信号线 4.存储器(Memory storage)存储器功能:存储二进制代码数据和程序,是记忆部件。存储器种类:内存储器(主存储器)和外存储器(辅助存储器)存储矩阵:存储单元按行列排列成的矩阵 存储地址:存储矩阵中每一个单元的唯一编号 地址译码电路和读/写控制电路:存储矩阵的外围电路。地址信息经 地址译码器AD译码后得到一个地址,从而找到相应的存储 单元,再由读/写控制电路控制对该单元进行读/写操作。存储器操作:读操作(从指定的存储单元取出数据)写操作(向指定的存储单元写入数据)。,8.1.2 工作原理,1存储程序的概念 程序是人们为解决某个实际问题而事先设计好的具体的操作 步骤,由指示计算机执行具体操作的有序命令(即指令)序 列组成,并被存储在存储器中,计算机的整个工作过程就是 周而复始地从存储器中取出指令、分析指令和执行指令。2从问题到程序 问题:计算8+20=?程序:助记符指令 指令类型 机器指令代码(操作码)(操作数)MOV A,08H;传送指令 10000110 00001000 ADD A,14H;加法指令 10001011 00010100 HLT;暂停指令 11110100,存储程序,8.1.3 简单程序执行过程,(1)取第一条指令操作码,8.2 微处理器结构,8.2.1 第一代微处理器的结构1.8086/8088 CPU的内部结构,1.8086/8088 CPU的内部结构(续),(1)总线接口部件BIU BIU组成:地址加法器、专用寄存器组、指令队列缓冲器 总线控制电路 BIU功能:负责完成CPU与存储器或I/O设备间的数据传送 地址加法器把来自于段寄存器的16位地址(段首 地址)左移4位后与16位偏移地址相加,形成20位的实 际地址,以对1M字节的存储空间进行寻址。指令队列:6个字节(8088为4个字节),一旦指令队 列中空出2个(8086)或1个(8088)字节,BIU将自动 进入读指令操作以填满指令队列。专用寄存器组:段寄存器、指令指针寄存器IP、内部 通讯寄存器 总线控制电路:将CPU的内部总线与外部总线相连,是 CPU与外部交换数据的通路。(2)指令执行部件EU EU组成:算术逻辑运算单元ALU、标志寄存器FR、寄存器组、EU控制器 EU功能:执行指令、进行数据处理。(3)EU和BIU并行操作:同时完成取指/操作数和执行指令操作,2.8086/8088寄存器结构,(1)通用寄存器组 数据寄存器:4个16位的寄存器AX、BX、CX和DX8个8位 寄存器:AH、AL、BH、BL、CH、CL、DH和DL 指针寄存器:堆栈指针SP、基址指针BP 指示当前堆栈段中的数据在段内的偏移地址 变址寄存器:源变址寄存器SI、目标变址寄存器DI 表示当前数据段或附加段中操作数的索引地 址(偏移地址的一部分)(2)存储器分段和段寄存器 存储器分段:1M字节的存储空间可分成若干个逻辑段,每段最长为64K字节,段首地址的高16位称作段基址,用段寄存器 表示 段寄存器:代码段寄存器CS,指示当前代码段的段基址 数据段寄存器DS,指示当前数据段的段基址 附加段寄存器ES,指示当前附加段的段基址 堆栈段寄存器SS,指示当前堆栈段的段基址 逻辑地址:指令中用段寄存器和偏移量表示的存储单元地址,8.2.2 微处理器结构的发展,180286微处理器,内部结构:执行部件EU、地址部件AU、总线部件BU、指令部件IU 取指令、指令译码、执行指令重叠进行。引脚:QFP(Quad Flat Package)68脚封装 地址总线24条:A23A0,可寻址16MB存储空间;数据总线16条:D15D0,一次可传输16/8位数据;控制总线16条:8位输出状态线,8位输入控制线。CPU的时钟频率提高到625MHz。内部寄存器:结构与8086/8088基本相同,增加了:16位机器状态字MSW,实际只定义了其中的低4位;标志寄存器FLAGS增加了两个标志位(共3bit)。引进存储器管理的保护工作模式 16位段寄存器指向段描述符表,所指向的段描述符(共6个 字节)提供24位(3个字节)的段首地址(即段基址)。,280386微处理器,内部结构:指令预取部件IPU、指令译码部件IDU、总线接口部件BIU、执行部件EU(Execution Unit)、分段部件SU、分页部件PU。流水线操作:6个逻辑单元并行实现取指令、指令译码、生成操 作数地址、执行指令操作,达四级并行流水。80386内部结构如下图所示。,280386微处理器(续),总线接口部件BIU:32位地址总线和32位数据总线 可寻址4GB(=232B)的物理存储空间 读/写32位存储器数据2个时钟周期 可动态改变数据宽度:支持32/16/8位操作IPU预取指令,IDU对预取的指令进行译码:译码的结果存放在已译码指令队列中,供执行部 件直接调用执行。执行部件:8个32位通用寄存器其低半部分与8086/8088、80286的16位寄存器具有相同的特性,完全兼容。乘除硬件大大加快乘除法运算速度 64位桶形移位器加速移位、循环和乘除法操作,可使典型的32位乘法在1s内完成。内部寄存器:32个,7类。16位寄存器6个段寄存器CS、DS、ES、FS、GS和SS 局部描述符表寄存器LDTR、任务状态段TR 32位寄存器22个 48位扩展寄存器全局描述符表寄存器GDTR 中断描述符表寄存器IDTR,8.2.3 微处理器新技术,1.流水线与并行执行技术 Pentium 4设置流水线为32条,每条流水线分为20级流水并行执行2.推测执行技术 推测执行技术在微处理器中设置一个分支目标缓冲器BTB,在取指阶 段进行分支预测,以保证取指部件按照指令代码的执行顺序取指令,而不是完全按照程序指令在内存中的存放顺序取指令。分支目标缓冲器BTB中保存有曾经发生分支的历史记录,在BTB中检 查有否关于这些指令的地址记录;动态预测:若检查到BTB中某条指令的地址记录(在进入译码器之 前),则BTB就动态地预测到一个分支,禁止指令数据再进入流 水线,修改IP值,从分支目标处取指令进入流水线。静态预测:若没有检查到BTB中某条指令的地址记录则指令数据 进入译码器,译码器在译码时检测到有分支发生,通过静态预测 算法测出分支目标地址送IP,废除流水线中分支转移指令后的指 令代码序列,根据IP值从分支目标处取指令进入流水线,并且新 的分支目标被送入BTB保存。正确地预测可加快指令的执行速度。动态分支预测较早(在取指阶段而不是译码阶段),静态分支预测 较迟(在译码阶段而不是取指阶段);一旦发生分支,静态预测时 进入到流水线的作废指令相对要多一些。,8.2.3 微处理器新技术(续),3.超序执行技术 OOO(Out of Order Operating:超序执行)技术利用寄存器换名部件 将指令去相关,进入缓冲池重新排序,尽快超序执行指令。超序执行 须有某些特定功能部件(如寄存器换名部件、微指令缓冲器、超序执 行部件、结果退回部件等)的支持,充分动用计算机中各种物理与逻 辑资源,最大限度地尽快执行指令。4.精简指令集计算机RISC技术 IBM公司在软件开发过程中发现:汇编生成的总代码90%以上是只占 复杂指令集计算机CISC指令集中不足10%的指令。为充分发挥微处 理器取指、译码的有效性,设计了RISC(Reduced Instruction Set Computer:精简指令集计算机)。RISC指令格式种类少,每条指令经汇编后生成的二进制代码长度相 同,在存储器中存放规整,取指令时以指令长度的整数倍取入,使 微处理器内各个取指部件、译码部件及后面相关执行部件的设计变 得简单而有效,而且提高了取指与译码的效率,提升整体运行速度。RISC指令寻址方式简单,只需参照一次主存,能在单一时钟内完成 取指。这使得RISC指令更容易在流水线中执行。RISC计算机需要很大的寄存器阵列、容量更大的存储系统及高速缓 存Cache来保证其功能的充分发挥。,8.2.3 微处理器新技术(续),采用RISC技术设计的处理器又使用CISC指令来减少对存储 器的需求,在片内添加超标度执行部件、更强的浮点单元和 更大容量的片内Cache,既获得了RISC的速度,又保证了 CISC的兼容性,形成了CRISC技术。5.多媒体SIMD指令集 MMX指令集 57条指令1条状态切换指令(EMMS)、4条数据传输 指令(MOV)、9条数据格式转换指令(PACK*、PUNPCK?)43条整数运算指令(含算术、比较、逻辑、移位运算)。MMX定义四种整数格式:压缩型字节/字/双字/四字 MMX借用FPU部件的浮点寄存器:一个寄存器可存放8个字 节(88bit)、或4个字(416bit)、或2个双字(232bit)、或1个四字(164bit)。MMX指令特别适用于整数运算密集的图像处理、视频和 音频回放等多媒体应用,提高它们的性能,8.3 微处理器引脚信号与工作模式,8.3.1 X86第一代微处理器引脚及其功能 第一代的8086/8088 CPU采用标准DIP 40引脚封装,部分引脚采用分时复用方式,包含16/8 条数据线,20条地址线,以及十多条控制信号。封装外形如图所示。,8.3.1 X86第一代微处理器引脚及其功能(续),1.地址数据总线AD15AD0 地址总线三态输出,对存储器或I/O端口寻址。数据总线双向(输入或输出)三态。8088 CPU的数据总线为位,故只有AD7AD0条地址数据复用线,A15A8只用来输出地址。2.地址状态总线A19S616S3 地址线:A19A16与AD15AD0一起组成访问存储器的20位物理地址 状态线:S6S3用来输出状态信号 S6总是低电平,以表示8086/8088 CPU当前连在总线上;S5表明中断允许状态位IF的当前设置;S4和S3表示当前访问存储器所使用的段寄存器:,2.3.3 微处理器的操作模式与工作状态,1.操作模式x86系列微处理器能支持四种操作模式。n实地址模式8086/8088所提供的编程环境;n保护模式处理器所有的指令和结构特性都有效,提供最高性能和 最强功能。是操作系统和应用程序的推荐工作模式n 虚拟8086模式保护模式下模拟的一个虚拟8086处理器执行环境,是保护模式下多任务中的一个任务,是一种类操作模式;n系统管理模式SMM(System Management Model)80386TMSL微处理器后一直采用的一种标准结构。该模式以透明方式为操作系统或执行程序提供电源管理,以及OEM厂 家的区别特征。处理器在各模式之间的转换,2.微处理器的工作状态,通过时钟控制,可使处理器进入低功耗的停止时钟状态。处理器具有的时钟控制工作状态如下。常规状态(Normal State)处理器可运行实模式、保护模式、虚拟8086模式或系统管理模式SMM,系统各部件正常运转(包括外部总线时钟和处理器内部时钟),处理器 在相应模式下的所有特性与功能都是有效的。暂停状态(Halt State)处理器执行HLT指令后进入一种低功耗状态,在该状态处理器内部时 钟停止。停止允许状态(Stop Grant State)外部逻辑使引脚信号有效后进入的一种低功耗状态,在该状态处理器 内部时钟停止。停止允许窥探状态(Stop Grant Snoop State)处理器在暂停状态或停止允许状态时,系统逻辑启动一次针对Cache 的查询周期,导致处理器进入的另一种低功耗状态。睡眠状态(Sleep State)处理器处于停止允许状态时,如果输入引脚有效,则进入另一种更低 功耗的状态(仅第六代微处理器具有)。,2.微处理器的工作状态(续),深度睡眠状态(Deep Sleep State)又称停止时钟状态(Stop Clock State),当处理器处于停止允许状态(第六代前)或睡眠状态时,进一步使系统总线时钟BCLK停止,使处 理器进入系统最低功耗状态。几种状态之间的相互转换关系如图所示,8.4 微处理器总线周期,8.4.1 总线周期与总线状态 1.总线周期定义与分类数据传输周期:在总线上传输一个数据项所需要的时间。数据项的宽度最大为数据总线的宽度,64位Pentium微机数据项 宽度最大为8个字节。总线周期:处理器占用总线,与外界(存储器或I/O端口)进行一次数 据读或写所需的时间;即从处理器驱动地址总线和总线周定义信号开始,到引脚有 效、数据读或写操作结束为止的时间。一个总线周期可能包含1至4个数据传输周期,突发周期就是具有连续4个数据传输周期的总线周期。处理器驱动-ADS=0,启动一个总线周期。总线操作:完成一定独立功能的总线周期序列之动作。基本总线周期:存储器读/写和I/O读/写。现代微处理器所能产生的总线周期种类比较丰富,如表所示。,1.总线周期定义与分类(续),1.总线周期定义与分类(续),特殊总线周期:M/-IO=0、D/-C=0且W/=1时进入。特殊总线周期有6种。,2.总线状态,指令周期:一条指令从取出到执行完毕所需要的时间。指令周期由若干个总线周期(又称机器周期)所组成。总线周期:完成一次总线操作所需的时间。如取指令周期、存储器读/写 周期、I/O读/写周期等。总线周期由若干个时钟周期组成。时钟周期:是两个时钟脉冲上升沿之间持续的时间,又称T状态,是计算机系统的最小定时单位。8086/8088基本总线周期:由4个时钟周期T组成,称T1、T2、T3和T4状态 BIU在T1时钟周期将存储器或I/O端口的地址送到分时复用的 总线上,在T2T4周期通过总线进行数据传送;若存储器或外设来不及响应,可插入等待状态TW。80386开始的总线周期:2个基本时钟周期(T1和T2),T1期间给出地址信息,T2周期读/写数据;若存储器或外设来不及响应,可插入等待状态T2。数据传输:具有独立功能定义的所有数据传输均在一个或多个总线周期 内完成。,2.总线状态(续),总线周期的时钟状态:Ti、T1、T2、T12、T2P和TD。Ti:空闲状态,又称总线后台状态。在该状态下没有总线操作发生,不运行总线周期。T1:第一时钟状态,是一个在线(占用总线)时钟状态 处理器在此状态驱动相关的地址信号和总线周期定义信号。T2:第二时钟状态。也是在线状态 写周期时CPU输出到数据总线上的数据稳定有效,读周期在正常情况下外部数据已稳定在数据总线上供CPU读取。T12:1/2时钟状态 既作为前一个总线周期的T2状态(完成前一个总线周期的数据驱 动或采集),又作为下一个总线周期的T1状态(驱动下一个总线 周期的地址信号和周期定义信号)。T2P:续前状态 在该时钟状态,说明总线上至少有两个连续的在线总线周期,当 第一个总线周期还未完成而下一个总线周期又已经启动,在下一 个总线周期中出现的该T2P状态仅作为前一个总线周期的T2状态,完成前一个总线周期的数据采集或驱动。,2.总线状态(续),TD:静止状态 总线上同时出现前后连续的不同类型的在线总线周期,当前一个总 线周期还未最后完成而下一个不同类型的总线周期又已经启动(即 出现了T12状态),为了完成不同类型总线周期的转换必须在T12 和(前一个总线周期完成之后与)下一个总线周期的T2状态之前插 入一个静止时钟状态TD。现代微处理器的总线状态及其转换如图所示,8.4.2 x86第一代微处理器总线周期,1 8086 CPU读总线周期最小模式下8086 CPU的读总线周期时序 如果存储器或I/O端口由于运行速度较低而来不及在T3状态读出所需信息,那么 必须在T3的上升沿之前使READY无效(高电平)。一旦CPU检测到READY无效,就会在T3周期之后自动插入一个等待周期TW,然后到TW的上升沿再测试READY是否有效,若仍无效则继续插入一个新的TW,如此直至测试到READY有效为止,才停止插入TW而进入T4状态。在整个插入的TW 期间,其它控制 信号保持与T3期 间相同的电平状态。插入TW的数量从 原理上讲不受限 制,在实际中则 因存储或I/O端口 的速度而定,一 般不超过10个。,8.4.2 x86第一代微处理器总线周期(续),2.8086 CPU写总线周期 8086 CPU在最小模式下写总线周期时序最大模式总线操作:最大模式系统和最小模式系统在总线操作逻辑上基本一致。只是由于增 设了总线控制器8288,对存储器或I/O端口的读写控制信号不再由CPU直 接给出,而是由8288对CPU的三位状态信号-S2、-S1、-S0进行译码,然 后输出控制信号到相关部件去完成对存储器或I/O端口的读/写操作。,8.4.3 现代微处理器总线周期,1.单次传输周期 单次传输周期:现代微处理器最简单的总线周期 通常由T1和T2两个状态组成。-ADS有效表明开始一个新的总线周期:在T1期间CPU驱动地址选通信号-ADS、其它总线周期定义信号和地 址信号有效。单次传输周期在T1期间使-CACHE信号无效(高电平),表明该总线 周期不可高速缓存。在T2期间,若存储器或I/O模块的响应速度与CPU匹配,则 在读周期来自存储器或I/O模块的数据已经稳定地出现在数据总线上,在写周期CPU送到数据总线上的数据能够稳定地写入到存储器或I/O 模块中,那么系统逻辑将使总线准备好信号-BRDY有效,CPU在T2上升沿采 样并判断-BRDY,完成数据的读/写。典型的读和写操作过程如图所示。,8.4.3 现代微处理器总线周期(续),图中DP是数据奇偶校验信号,写周期由CPU驱动,读周期由系统逻辑驱动,DP时序与数据信号关联。-PCHK是校验结果输出信号,在-BRDY有效返回后延迟两个时钟周期,由CPU根据校验结果输出。如果存储器或I/O模块的响应速度跟不上CPU节奏,则将插入等待T2,在T2期间系统逻辑迫使-BRDY无效(高电平),CPU采样并判断-BRDY无效后自动在T2状态后再插入T2,这个插入的T2与8086/8088时序的TW一样都用于等待,但在功能上与前一个T2完全相同。在T2期间必须-BRDY有效才能结束当前总线周期,否则将一直插入等待时钟状态T2。,8.4.3 现代微处理器总线周期(续),1.突发周期 突发周期:处理器能够在连续时钟状态内连续地读或写4个数据项,每个数据项为64位(8个字节),一次突发周期可读或写464=256 位的数据(32个字节),对应了高速缓冲存储器Cache的一个缓冲行。突发周期组成:5个时钟状态T1、T2、T2、T2、T2。在T1状态,CPU给出第一个数据项的存储地址,在后续的T2状态连续地读或写4个数据项,由于数据是顺序连续存 储的,后三个数据项的地址由外部系统逻辑计算给出。突发周期在驱动4个数据项中的每一个之前,都必须采样并判断信 号-BRDY是否有效,若无效就插入等待状态T2。突发周期包括突发读周期和突发写周期,一般只针对具有高速缓 存系统的存储器,对I/O端口不能进行突发访问。突发读周期 T1状态:CPU驱动-ADS=0(表示一个总线周期开始)、W/-R=0(读)、-CACHE=0(可高速缓存),在地址线上输出有效地址信息。T2状态:判断-BRDY有效的时钟边沿同时还采样外部高速缓存允许 信号-KEN,判断-KEN有效后在下一个时钟直接转入T2状态,再次 采样并判断-BRDY,若有效则采样数据总线,执行一次32个字节的 突发读周期。在整个突发读周期,CPU采样4次有效的-BRDY信号。,8.4.3 现代微处理器总线周期(续),1.突发周期(1)在突发读周期,-CACHE有效说明CPU内部可以高速缓存,-KEN有效 说明外部逻辑可以接受该总线周期的高速缓存。基本的突发读周期的操作时序 若存储器存取数据速度较慢(来不及准备好数据),CPU每次首先采 样的-BRDY无效,则要插入等待状态。,8.4.3 现代微处理器总线周期(续),(2)流水线突发读周期 连续地执行突发读周期,其时序与突发读周期相似,但当CPU第一 次采样并判断-BRDY有效时,还采样并判断-NA信号有效性,这说 明系统逻辑要求CPU尽早输出下一个地址:不等当前总线周期完成,CPU就要开始为下一个总线周期驱动-ADS信号和其它相关信号,这也称为一次流水线传输请求。流水线周期主要用于减少周期与周 期之间的后台时间Ti。-NA有效后,CPU所启动的下一总线周期变为等待执行周期,这时 前一个突发读周期的第三个有效T2状态又作为下一个突发读周期T1 状态,即变为T12状态。T12之后的时钟状态为T2P,仅作为前一个突 发读周期的T2状态,T2P之后是下一个突发读周期的T2状态,保证 了突发读周期的连续执行。(3)突发写周期 突发写周期最典型的应用就是Cache回写周期。从第五代微处理器 开始,所产生的回写周期可以被高速缓存。除回写周期外,其它的写周期一般都是单次传输的写周期。,8.4.3 现代微处理器总线周期(续),突发回写周期的操作时序如图所示,