微处理器及其系统结构.ppt_第1页
微处理器及其系统结构.ppt_第2页
微处理器及其系统结构.ppt_第3页
微处理器及其系统结构.ppt_第4页
微处理器及其系统结构.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

第2章 8086微处理器 及其系统结构 本章主要内容本章主要内容 l l 2.1 2.1 80868086微处理器微处理器 l2.2 总线周期与总线结构 l2.3 8086总线操作时序 2.1 8086微处理器 2.1.1 8086CPU的内部结构 执行单元EU vEU的功能是从BIU的指令队列中取出指令 代码,执行指令所规定的操作。 v主要有两种类型的操作: (a) 算术/逻辑运算; (b) 按寻址要求计算出16位偏移地址。 内部暂存器 IP ES SS DS CS 输入/输出 控制电路 外部总线 执行部分 控制电路 1 2 3 4 5 6 ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 16位 8位 8086内部结 构 (1)算术逻辑单元ALU 进行算术、逻辑运算,或按寻址方式计算出寻 址单元的16位偏移量。 (2)标志寄存器F 用来反映CPU最近一次运算结果的状态特征或 存放控制标志。 (3)数据暂存寄存器 协助ALU完成运算,暂存参加运算的数据。 (4)通用寄存器组 AX、BX、CX、DX和SP、BP与SI、DI。 (5)EU控制电路 接收从BIU中指令队列取来的指令,经过指令 译码形成各种定时控制信号,对EU的各个部件实 现特定的定时操作。 2. 总线接口单元BIU v根据EU的请求,负责实现CPU与存贮器 或I/O设备之间的数据传送。 (1)指令队列缓冲器 其作用相当于早期CPU中的六个(字节) 指令寄存器IR 。 (2)地址加法器和段寄存器 用于实现从逻辑地址,到物理地址的转 换运算。 (3)指令指针寄存器IP 用于存放BIU将要取的一下条指令的段 内偏移地址。 (4)总线控制电路与内部通讯寄存器 总线控制电路用于产生外部总线操作时 的相关控制信号。 内部通讯寄存器用于暂存BIU与EU之间 交换的信息。 2.1.2 8086CPU内部寄存器 1.段寄存器 (1)为什么要设置段寄存器 v如何用16位数据处理能力,实现20位地址的寻 址呢? v逻辑地址由两部分组成: 段基址:偏移量 v物理地址= 段基址10H + 偏移量 段起始地址 偏 移 量 起 始 地 址 地址 加法器 物理地址 逻辑地址 偏移量:由IP、BX、 BP、SP、SI、DI之一 形成或根据指令的寻址 方式来形成。 起始地址:由段寄存器 CS、DS 、ES、SS之 一左移4位供给。 v【例2-1】试将逻辑地址 3021H:26A1H 转换成物理地址。 v解:计算如下: 0 + 3 2 8 B 1 H 3 0 2 1 2 6 A 1 (2) 段寄存器的功能 v用于存放CPU当前可以访问的4个逻辑段 的基址。 (3) 信息的分段存储与段寄存器的关系 v段寄存器的利用使存储器地址空间扩大到 1兆字节; v为信息按特征分段存储和信息安全管理带 来了方便。 2. 通用寄存器 (1) 数据寄存器 v16位寄存器:AX、BX、CX和DX; v8位寄存器:AH、AL、BH、BL、CH、 CL、DH和DL。 (2) 地址指针和变址寄存器 设置地址指针和变址寄存器的目的 v缩短了指令码的长度; v提高了指令寻址的灵活性。 地址指针和变址寄存器功能 v对存储器寻址时,用于存放段内偏移地址 的全部或一部分。 vSP堆栈指针和BP基址指针寄存器 通常用来作为地址指针,其段基址由段 寄存器SS提供。 vSI和DI变址寄存器 在字符串操作指令中,SI用作源变址寄 存器,DI用作目的变址寄存器。 3.控制寄存器 (1) 指令指针 寄存器IP v用于控制程序 中指令的执行 顺序。 v如图2-7所示 。 (2) 标志寄存器F v六个是状态标志,三个为控制标志; v唯一能按位操作的16位寄存器 v只定义了其中的9位,其余7位不用 FH 15 8 FL 7 0 OF DF IFTF SF ZFAFPFCF 状态标志位: 反映ALU执行运算后其结果的状态( 不是结果本身) 控制标志位: 控制CPU的特定操作 这些标志位的值由指令直接赋值,而不 像状态标志位那样由运算结果来决定。 溢出标志位OF(Overflow Flag): OF = 1 溢出 OF = 0 不溢出 求解方法:双进位位法 最高进位位 次高进位位 操作数的运算结果超出 了机器表示的范围称为 溢出 状态标志位: 进位/借位标志位CF(Carry Flag): CF = 1 有进/借位 CF = 0 无进/借位 最高位向前一位是否有 进位(加法)/借位( 减法) 辅助进位/借位标志位AF (Auxiliary Carry Flag): AF = 1 有进/借位 AF = 0 无进/借位 数据第三位向第四位是否有 进位(加法)/借位(减法 ) 符号标志位SF(Sign Flag): 根据最高位判断两个带 符号数运算后结果正/ 负的标志 SF = 1 结果为负数 SF = 0 结果为正数 若为无符号数的运算,则该位为 运算结果的最高数据位,并无正/ 负符号的含义 奇偶标志位PF(Parity Flag): 运算结果数据的低八 位中“1”的数量为奇 数/偶数 PF = 1 有偶数个 “1” PF = 0 有奇数个 “1” 零状态标志位ZF(Zero Flag): 数据运算结果是否 为全0 ZF = 1 结果为全0 ZF = 0 结果不为全0 状态标志位受指令操作结果影响: 有些运算操作将影响全部状态标志,如加 法、减法运算; 有些操作影响部分状态标志,如移位操作 ; 有些指令的操作不影响任何状态标志,如 数据传送类指令。 中断控制标志位IF(Interrupt Flag): 用于屏蔽8086CPU系 统中的可屏蔽中断源 IF = 1 允许中断 IF = 0 屏蔽中断 只对可屏蔽中断源有效 对不可屏蔽中断和软中断(指令INT) 无效 陷阱控制标志位TF(Trap Flag): 用于程序设计中 的调试 TF = 1 单步方式 TF = 0 正常方式 CPU每执行一条指令后,自动产生一次内 部中断,使CPU处于单步执行指令的工作 方式,便于进行程序调试,用户能检查当 前程序运行的状态及结果。 2.1.3 8086CPU的外部引脚及功 能 地址/数据总线 AD15AD0(双向、三态) v在总线周期的第一个时钟周期T1,输出低 16位地址(记为A15A0); v而在总线周期的其他时钟周期内,用于传送 数据。 v当CPU处于“保持响应”状态时,这些引脚 处于高阻隔离状态。 2.地址/状态线 A19/S6A16/S3(输出、三 态) v在总线周期的第一个时钟周期T1时,输出 地址的高4位(A19A16); v在其他的时钟周期,输出状态信号。 vS3和S4:表示正在使用的是哪个段寄存 器,如表2-2所示。 vS5:指示IF的当前状态。 vS6:则始终输出低电平(“0”),以表示 8086当前连在总线上。 S4S3状 态态 0 0 1 1 0 1 0 1 当前正在使用ES 当前正在使用SS 当前正在使用CS,或未用任何段寄存器 当前正在使用DS 当系统总线处于“保持响应”状态时,这些引线被浮 置为高阻状态。 3. 控制总线 读控制信号线RD(输出、三态) v表示CPU正在进行读存储器或读I/O端口的操作 。 v是对内存单元还是对I/O端口读取数据,取决于 M / IO信号。 v在系统总线进入“保持响应”期间,被浮空。 (2) 准备好信号READY (输入) v是由被访问的存储器或I/O端口发来的响应信号 ; v当READY=1时,表示所寻址的存储单元或I/O 端口已准备就绪,马上就可以进行一次数据传 送。 v当READY=0时,表示所寻址的存储单元或I/O 端口尚未准备就绪,要求CPU自动插入一个或 几个TW等待状态,直到READY线出现高电平 才进行数据传送。 (3) 总线高字节允许/状态,BHE/S7 (输出、三态) v在总线周期的第一个时钟周期,输出总线高字 节允许信号BHE; v其余时钟周期,输出状态S7,目前S7并没有定 义。 v若BHE=1,表示数据传送只在AD0AD7上进 行,它和A0配合,用来产生存储体的选择信号 。 (4) 可屏蔽中断请求信号INTR(输入) v当INTR=1时,表示外设提出了中断请求,CPU 在每个指令周期的最后一个T状态去采样此信号 。 v若IF=1时,则CPU响应中断,CPU通过执行中 断响应周期转去执行中断服务程序。 v若IF=0时,则CPU继续执行指令队列中的下一 条指令。 (5) 非屏蔽中断请求信号NMI(输入) v上升沿有效,不受IF状态的影响; vNMI比INTR的优先级更高。 (6) 等待测试信号TEST(输入) v测试信号是由WAIT指令来检查的。 (7) 系统时钟CLK(输入) v它为微处理器提供基本的定时脉冲。 (8) 复位信号RESET(输入) v使CPU立即结束它的当前操作,执行再启 动过程。 v复位后CPU内部各寄存器的状态,如表2- 3所示。 寄 存 器 内 容 状态标态标 志 寄存器F 指令指示 器IP 代码码段寄 存器CS 数据段寄 存器DS 堆栈栈段寄 存器SS 附加段寄 存器ES 指令队队列 清 零 0000H FFFFH 0000H 0000H 0000H 清 空 (9) 最小/最大方式信号MN / MX (输入) v当接+5V时,则CPU工作于最小方式; v若该引脚接地时,则CPU工作于最大方式。 (10) 其他控制信号(2431引脚) v这些控制线的功能将根据控制线 MN / MX 所处 的状态而确定。 4. 电源线Vcc和地线GND v电源线Vcc接入的电压为+5V10%; v两条地线GND,均应接地。 2.2 总线周期与总线结构 2.2.1 8086的总线周期 1. 总线周期 vCPU经外部总线,对存储器或I/O端口进 行一次信息传送的过程,称为总线操作。 v执行总线操作所需要的时间,称为总线周 期。 v一个总线周期至少由4个时钟周期T组成。 v总线周期的基本波形,如图2-10所示。 vBIU在下列情况下,执行一个总线周期: 根据指令的需要,由执行单元EU,请 求BIU执行一个总线周期。 当指令队列缓冲器已经空出两个字节, BIU必须填写指令队列的时候。 2. 空闲状态TI v在两个总线周期之间,存在着BIU不执行 任何操作的时钟周期,这些不起作用的时 钟周期称为空闲状态。 3. 等待状态TW (Wait State) v当CPU与慢速的存储器和I/O设备交换信 息时,为了防止丢失数据,在总线周期的 T3和T4之间,插入一些必要的等待状态 TW,用来给予必要的时间补偿。 v包含有TI 与TW 状态的典型总线周期,如 图2-11所示。 2.2.2 8086最小方式时引脚功 能 和总线结构 8086最小方式时引脚功能 地址锁存信号ALE(输出) vALE总是在总线周期的第一个时钟周期时有效 ,以表示当前在地址/数据复用线上输出的是地 址信息。 v通常,地址锁存器将ALE作为锁存信号,对地 址进行锁存。 v注意:ALE端不能被浮空。 (2) 数据允许信号DEN (输出、三态) v在CPU访问存储器或I/O端口的总线周期 的后半段时间内,该信号有效。 v表示CPU准备好接收或发送数据; v被用来作为总线收发器的允许控制信号。 (3) 数据发送/接收信号DT/ R (输出、三态) v用以表示数据传送的方向,此线为高,表 示发送数据,此线为低,表示接收数据。 vDMA方式时,此线浮空。 (4) 输入输出/存储器信号M / IO (输出、三态 ) v用以表示CPU是访问存储器,还是访问输 入输出设备。 v此线为高,为I/O访问;此线为低,为存 储器访问; vDMA方式时,此线浮空。 (5) 写控制信号WR (输出、三态) v有效时,表示CPU正在执行向存储器或 I/O端口的输出操作。 (6) 中断响应信号INTA (输出) v它用于对外设的中断请求作出响应。 v这时,CPU发出两个连续的负脉冲,其第 1个负脉冲通知外设接口,它发出的中断 请求已获允许; v第2个负脉冲通知外设接口,将中断类型 码放上数据总线,供CPU读取。 (7) 保持请求HOLD (输入)与保持响应HLDA (输出)信号 vHOLD信号:是另一个总线主控设备向 CPU请求使用总线的输入请求信号; vHLDA信号:是CPU回答的响应信号。 v在HLDA信号有效(高电平)期间,CPU让 出总线控制权。这时,CPU处于“保持响 应”状态。 2. 8086最小方式时系统总线结构 (1) 地址锁存 (2) 数据线驱动 8086最大方式时引脚功能 v总线操作类型状态(编码)信号S0、S1、 S2 (输出) v8086 CPU工作在最小方式时,控制信号 是直接从第2429引脚送出的;而在最大 方式时,状态信号S0、S1、S2隐含了上 面这些信息, vS0、S1、S2和具体的总线操作之间的对 应关系如表2.4所示。 2.2.3 8086最大方式时引脚功 能 和总线结构 表2-4 S0、S1、S2的编码与8288命令的对应 关系 状态输态输 入 CPU总线总线 操作8288命令 S0、S1、S2 000 001 010 011 100 101 110 111 中断响应应 读读I/O端口 写I/O端口 暂暂停 取指令码码 读读存储储器 写存储储器 无效 INTA (中断响命令) IORC (I/O读读命令) IOWC (I/O写命令) 无 MRDC (存储储器读读命令) MRDC (存储储器读读命令) MWDC (存储储器写命令) 无 (2) 队列状态信号QS1、QS0 (输出) vQS1、QS0提供指令队列的状态信息,以便 提供外部逻辑跟踪8086/8088内部指令序列 。 vQS1、QS0表示的状态情况如表2.5所示。 v外部逻辑通过监视总线状态和队列状态,可 以模拟CPU的指令执行过程并确定当前正 在执行哪一条指令。 v有了这种功能,8086/8088才能告诉协处理 器何时准备执行指令。 v在PC机中,这两条线与8087协处理器的 QS1和QS0相连。 QS1QS0指令队队列状态态 0 0 1 1 0 1 0 1 无操作,队队列中指令未被取出 从队队列中取出当前指令的第一字节节 队队列空 从队队列中取出指令的后续续字节节 表2.5 QS1、QS0的状态编码 (3) 总线封锁信号LOCK(输出、三态) v当LOCK为低电平时,系统中其他总线主设 备就不能占有总线。 (4) 总线请求/总线请求允许信号RQ/GT1、 RQ/GT0 v这两个信号端可供CPU以外的两个总线主 控设备用来发出使用总线的请求信号和接收 CPU对总线请求信号的回答信号。 vRQ/GT0 比RQ/GT1的优先级更高。 2. 8086 CPU最大方式时系统总结结构 2.3 8086总线操作时序 2.3.1 8086CPU最小方式时总线时 序 1学习时序的目的 (1) 深入理解微处理机的内部操作原理; (2) 了解时序有利于在编源程序时,选用适当指 令,以减少指令的存储空间和执行时间; (3) 有助于更好地解决CPU与存储器以及各种外 设之间的时序配合问题; (4) 估算CPU完成操作所需的时间,以便与控制 过程相配合。 28086 CPU最小方式时总线周期 时序 (2) 写总线周期时序 (3) 中断响应周期时序 (4) 总线请求与总线响应时序 2.3.2 8086CPU最大方式时总线时 序 2. 中断响应周期时序 v最大方式时,由8288输出。其他均与最小方式 时的中断响应周期时序一致。 3总线请求和总线响应时序 思考题与习题 v18086 CPU为什么要分为EU和BIU两个单元? 每个单元都有哪几部分组成? v2EU和BIU是如何工作的?它们之间有什么联系 ? v3指令队列在CPU执行指令时,起什么作用?简 述指令队列的工作过程。 v4当CP

温馨提示

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

评论

0/150

提交评论