微处理器结构及基本原理.ppt_第1页
微处理器结构及基本原理.ppt_第2页
微处理器结构及基本原理.ppt_第3页
微处理器结构及基本原理.ppt_第4页
微处理器结构及基本原理.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

第2章 微处理器结构及基本原理 本章学习目标 掌握微处理器的结构 掌握微处理器的工作原理 2.1 Intel 8086 微处理器内部结构 8086微处理器的主要特点: 16位微处理器; 数据总线16位; 地址总线20位,可寻址1MB存储空间; 时钟频率为510MHz。 8086 CPU的内部结构由执行单元EU(execution unit) 和总线接口部件BIU(bus interface unit)两部分组成 。 Intel 8086 微处理器的内部结构如图所示。 1总线接口部件BIU 总线接口部件BIU负责8086 CPU与存储器和外设之间的 信息传送。 BIU负责从内存的指定区域取出指令,送至指令队列排队 。在执行指令时所需要的操作数,也由BIU从内存的指定 区域取出,传送给执行部件EU去执行。 BIU包含一个地址加法器、一组16位的段寄存器、一个16 位的指令指针IP、一个6字节的指令队列缓冲器及总线控 制电路。 (1)地址加法器和段寄存器 8086采用了分段结构,将1MB的内存空间划分为若干个 逻辑段,在每个逻辑段中使用16位段基址和16位偏移地 址进行寻址,段寄存器用来存放各段的段基址。 利用BIU的地址加法器计算并形成CPU所要访问的存储单 元地址(20位)或I/O端口地址(16位)。 (2)指令队列缓冲器 指令队列缓冲器是6个字节的“先进先出”的RAM存储器, 用来按顺序存放CPU要执行的指令代码,并送入执行部 件EU中去执行。 EU总是从指令队列的输出端取指令,每当指令队列中存 满一条指令后,EU就立即开始执行。 当指令队列中前两个指令字节被EU取走后,BIU就自动 执行总线操作,读出指令并填入指令队列中。 当程序发生跳转时,BIU则立即清除原来指令队列中的内 容并重新开始读取指令代码。 (3)总线控制电路 总线控制电路主要负责产生总线控制信号。 2执行部件EU 从BIU的指令队列中取出指令、分析指令并执行指令,而 执行指令过程中所需要的数据和执行的结果,也都由EU 向BIU发出请求,再由BIU对存储器或外设进行存取操作 来完成。 EU部件主要由算术逻辑单元、标志寄存器、通用寄存器 、指针寄存器、暂存寄存器、指令译码器和控制电路组成 。 (1)算术逻辑单元ALU ALU是一个16位的算术逻辑运算部件,用来对操作数进 行算术运算和逻辑运算,也可以按指令的寻址方式计算出 CPU要访问的内存单元的16位偏移地址。 (2)数据暂存寄存器 数据暂存寄存器是一个16位的寄存器,它的主要功能是 暂时保存数据,并向ALU提供参与运算的操作数。 (3)EU控制电路 EU控制电路接收从BIU指令队列中取出的指令代码,经 过分析、译码后形成各种实时控制信号,对各个部件进行 实时操作。 2.2 Intel 8086微处理器引脚信号及功能 8086 CPU是40引脚双列直插式芯片,微处理器通过这些 引脚可以和存储器、I/O接口、外部控制管理部件,以及 其他微处理器相互交换信息。 最小模式,就是在系统中只有一个8086微处理器,所有 的总线控制信号都直接由8086 CPU产生,因此,系统中 的总线控制电路被减到最少。 最大模式系统中,总是包含两个或多个微处理器,其中一 个主处理器就是8086,其他的处理器称为协处理器,它 们是协助主处理器工作的。 当CPU处于不同工作模式时,其部分引脚的功能是不同 的。 1两种工作方式功能相同的引脚 (1)AD15 AD0(address data bus):地址/数据总 线,双向,三态。 (2)A19/S6A16/S3(address/status):地址/状态 信号,输出,三态。 S6表示CPU与总线连接的情况,S5指示当前中断允许标 志IF的状态。 S4, S3的代码组合用来指明当前正在使用的段寄存器。 (3)/BHE /S7(bus high enable/status):允许总线 高8位数据传送/状态信号,输出,三态。 /BHE为总线高8位数据允许信号,当/BHE低电平有效时 ,表明在高8位数据总线D15 D8上传送1个字节的数据 。S7为设备的状态信号。 (4)/RD(read):读信号,输出,三态,低电平有效 。 /RD信号低电平有效时,表示CPU正在进行读存储器或读 I/O端口的操作。 (5)READY(ready):准备就绪信号,输入,高电平 有效。 READY信号用来实现CPU与存储器或I/O端口之间的时序 匹配。 当READY信号高电平有效时,表示CPU要访问的存储器 或I/O端口已经作好了输入/输出数据的准备工作,CPU可 以进行读/写操作。 当READY信号为低电平时,则表示存储器或I/O端口还未 准备就绪,CPU需要插入若干个“TW状态”进行等待。 (6)INTR(interrupt request):可屏蔽中断请求信号 ,输入,高电平有效。 8086 CPU在每条指令执行到最后一个时钟周期时,都要 检测INTR引脚信号。 INTR为高电平时,表明有I/O设备向CPU申请中断,若IF 1,CPU则会响应中断,停止当前的操作,为申请中断 的I/O设备服务。 (7)/TEST(test):等待测试控制信号,输入,低电 平有效。 /TEST信号用来支持构成多处理器系统,实现8086 CPU 与协处理器之间同步协调的功能,只有当CPU执行WAIT 指令时才使用。 (8)NMI(non-maskable interrupt):非屏蔽中断请 求信号,输入,高电平有效。 当NMI引脚上有一个上升沿有效的触发信号时,表明CPU 内部或I/O设备提出了非屏蔽的中断请求,CPU会在结束 当前所执行的指令后,立即响应中断请求。 (9)RESET(reset):复位信号,输入,高电平有效 。 RESET信号有效时,CPU立即结束现行操作,处于复位 状态,初始化所有的内部寄存器。复位后各内部寄存器的 状态,见表2.2。当RESET信号由高电平变为低电平时, CPU从FFFF0H地址开始重新启动执行程序。 (10)CLK(clock):时钟信号,输入。 CLK为CPU提供基本的定时脉冲信号。 (11)VCC电源输入引脚。 (12)GND:接地引脚。 (13)MN/MX(minimum/maximum):最小/最大模 式输入控制信号。 MN/MX引脚用来设置8086 CPU的工作模式。当为高电 平时,CPU工作在最小模式;当 为低电平时,CPU工作 在最大模式。 2CPU工作于最小模式时使用的引脚信号 (1)M/IO(memory I/O select):存储器、I/O端口选 择控制信号。 (2)/WR(write):写信号,输出,低电平有效。 (3)/INTA(interrupt acknowledge):可屏蔽中断响 应信号,输出,低电平有效。 (4)ALE(address lock enable):地址锁存允许信 号,输出,高电平有效。 CPU利用ALE信号可以把AD15AD0地址/数据、 A19/S6A16/S3地址/状态线上的地址信息锁存在地址锁 存器中。 (5)DT/R(data transmit or receive):数据发送/接 收信号,输出,三态。 (6)/DEN(data enable):数据允许控制信号,输出 ,三态,低电平有效。 (7)HOLD(bus hold request):总线保持请求信号 ,输入,高电平有效。 (8)HLDA(hold acknowledge):总线保持响应信号 ,输出,高电平有效。 3CPU工作于最大模式时使用的引脚信号 (1)/S2,/S1,/S0 (status signals):总线周期状态信 号,输出,低电平有效。 它们表明当前总线周期所进行的操作类型。 (2)/RQ/GT1, /RQ/GT0 (request/grant):总线请求 允许信号输入/总线请求允许输出信号,双向,低电平有 效。 (3)/LOCK:(lock)总线封锁信号,输出,低电平有 效 (4)QS1, QS0(queue status):指令队列状态信号 ,输出。 QS1和QS0信号的组合可以指示总线接口部件BIU中指令 队列的状态,以便其他处理器监视、跟踪指令队列的状态 。QS1, QS0的代码组合与队列状态见表2.4。 2.3 Intel 8086微处理器寄存器结构 8086微处理器中包含四个通用数据寄存器、四个指针和 变址寄存器、四个段寄存器和一个标志寄存器。 1通用数据寄存器(general purpose registers) 通用数据寄存器组包括四个16位的寄存器AX, BX, CX, DX。 它们既可以作为16位寄存器使用,也可以分为两个8位寄 存器使用,即高8位寄存器AH, BH, CH, DH和低8位寄存 器AL, BL, CL, DL。 这些寄存器既可以作为算术、逻辑运算的源操作数,向 ALU提供参与运算的原始数据,也可以作为目标操作数 ,保存运算的中间结果或最后结果。 在有些指令中,这些寄存器具有特定的用途,例如,AX 作为累加器;BX作为基址寄存器;CX作为计数寄存器; DX作为数据寄存器。 2指针及变址寄存器(pointer and index registers ) (1)指针寄存器 SP用来指示堆栈栈顶的偏移地址,称为堆栈指针; BP则用来存放位于堆栈段中的一个数据区的“基址”的偏 移量,称为基址指针。 (2)变址寄存器 SI,DI称为变址寄存器,它们用来存放当前数据所在存储 单元的偏移地址。 在串操作指令中,SI用来存放源操作数地址的偏移量,称 为源变址寄存器; DI用来存放目标操作数地址的偏移量,称为目标变址寄存 器。 3段寄存器(segment registers) 指明了一个特定的现行段,用来存放各段的段基址。当用 户用指令设定了它们的初值后,实际上已经确定了一个 64KB的存储区段。 代码段寄存器CS用来存放当前使用的代码段的段基址, 用户编制的程序必须存放在代码段中,CPU将会依次从 代码段取出指令代码并执行。 数据段寄存器DS用来存放当前使用的数据段的段基址, 程序运行所需的原始数据以及运算的结果应存放在数据段 中。 附加段寄存器ES用来存放当前使用的附加段的段基址, 它通常也用来存放数据,但在数据串操作时,用来存放目 标数据串(此时DS用来存放源数据串)。 堆栈段寄存器SS用来存放当前使用的堆栈段的段基址, 所有堆栈操作的数据均保存在这个段中。 4指令指针 IP(instruction pointer)为16位指令指针,IP的内容总 是指向BIU将要取的下一条指令代码的16位偏移地址。 当取出1个字节指令代码后,IP自动加1并指向下一条指 令代码的偏移地址。 5标志寄存器 8086 CPU中有一个16位的状态标志寄存器FR,但只使 用了9位。其中6位为状态标志位,用来反映算术运算或 逻辑运算结果的状态;3位为控制位,用来控制CPU的操 作。 (1)状态标志位 CF(carry flag):进位标志。表示本次加法或减法运算 中最高位(D7或D15)产生进位或借位的情况。CF1表 示有进位,CF0表示无进位(减法时,表示借位情况) 。 PF(parity flag):奇偶校验标志。表示本次运算结果 中包含“1”的个数。PF1表示有偶数个“1”,PF0表示 有奇数个“1”。 AF(auxiliary carry flag):辅助进位标志。表示加法 或减法运算结果中D3位向D4位产生进位或借位的情况。 AF1表示有进位,AF0表示无进位(减法时,表示借 位情况)。 ZF(zero flag):零标志。表示当前的运算结果是否为 零。ZF1表示运算结果为零,ZF0表示运算结果不为 零。 SF(sign flag):符号标志。表示运算结果的正、负情 况。SF1表示运算结果为负,SF0表示运算结果为正 。 OF(overflow flag):溢出标志。表示运算过程中产生 溢出的情况。OF1表示当前正在进行的补码运算有溢出 ,OF0表示无溢出。 (2)控制标志位 DF(direction flag):方向标志。用来设定和控制字符 串操作指令的步进方向。DF1时,串操作过程中的地址 会自动递减1,DF0时,地址自动递增1。 IF(interrupt enable flag):中断允许标志。用来控制 可屏蔽中断的标志位。IF1时,开中断,CPU可以接收 可屏蔽中断请求,IF0时,关中断,CPU不能接收可屏 蔽中断请求。 TF(trap flag):单步标志。用来控制CPU进入单步工 作方式。TF1时,8086 CPU处于单步工作方式,每执 行完一条指令就自动产生一次内部中断,TF0时,CPU 不能以单步方式工作。CPU的单步工作方式为程序调试 提供了一种重要的方法。 2.4 存储器的分段和物理地址的形成 8086 CPU将1MB的存储器划分为若干个区段以后,每个 段包含216个字节,并且每个段的首地址是一个可以被16 整除的数(即段的起始地址的最低四位为0)。 存储空间的分段方式可以有多种多样

温馨提示

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

评论

0/150

提交评论