微处理器结构及基本原理.ppt

上传人:牧羊曲112 文档编号:6572753 上传时间:2023-11-13 格式:PPT 页数:37 大小:1.15MB
返回 下载 相关 举报
微处理器结构及基本原理.ppt_第1页
第1页 / 共37页
微处理器结构及基本原理.ppt_第2页
第2页 / 共37页
微处理器结构及基本原理.ppt_第3页
第3页 / 共37页
微处理器结构及基本原理.ppt_第4页
第4页 / 共37页
微处理器结构及基本原理.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《微处理器结构及基本原理.ppt》由会员分享,可在线阅读,更多相关《微处理器结构及基本原理.ppt(37页珍藏版)》请在三一办公上搜索。

1、第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负责从内存的指定区域取出指令,送至指令队列排队。在执

2、行指令时所需要的操作数,也由BIU从内存的指定区域取出,传送给执行部件EU去执行。BIU包含一个地址加法器、一组16位的段寄存器、一个16位的指令指针IP、一个6字节的指令队列缓冲器及总线控制电路。,(1)地址加法器和段寄存器8086采用了分段结构,将1MB的内存空间划分为若干个逻辑段,在每个逻辑段中使用16位段基址和16位偏移地址进行寻址,段寄存器用来存放各段的段基址。利用BIU的地址加法器计算并形成CPU所要访问的存储单元地址(20位)或I/O端口地址(16位)。,(2)指令队列缓冲器指令队列缓冲器是6个字节的“先进先出”的RAM存储器,用来按顺序存放CPU要执行的指令代码,并送入执行部件

3、EU中去执行。EU总是从指令队列的输出端取指令,每当指令队列中存满一条指令后,EU就立即开始执行。当指令队列中前两个指令字节被EU取走后,BIU就自动执行总线操作,读出指令并填入指令队列中。当程序发生跳转时,BIU则立即清除原来指令队列中的内容并重新开始读取指令代码。,(3)总线控制电路总线控制电路主要负责产生总线控制信号。,2执行部件EU从BIU的指令队列中取出指令、分析指令并执行指令,而执行指令过程中所需要的数据和执行的结果,也都由EU向BIU发出请求,再由BIU对存储器或外设进行存取操作来完成。EU部件主要由算术逻辑单元、标志寄存器、通用寄存器、指针寄存器、暂存寄存器、指令译码器和控制电

4、路组成。,(1)算术逻辑单元ALUALU是一个16位的算术逻辑运算部件,用来对操作数进行算术运算和逻辑运算,也可以按指令的寻址方式计算出CPU要访问的内存单元的16位偏移地址。(2)数据暂存寄存器数据暂存寄存器是一个16位的寄存器,它的主要功能是暂时保存数据,并向ALU提供参与运算的操作数。(3)EU控制电路EU控制电路接收从BIU指令队列中取出的指令代码,经过分析、译码后形成各种实时控制信号,对各个部件进行实时操作。,2.2 Intel 8086微处理器引脚信号及功能,8086 CPU是40引脚双列直插式芯片,微处理器通过这些引脚可以和存储器、I/O接口、外部控制管理部件,以及其他微处理器相

5、互交换信息。最小模式,就是在系统中只有一个8086微处理器,所有的总线控制信号都直接由8086 CPU产生,因此,系统中的总线控制电路被减到最少。最大模式系统中,总是包含两个或多个微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。,当CPU处于不同工作模式时,其部分引脚的功能是不同的。,1两种工作方式功能相同的引脚(1)AD15 AD0(address data bus):地址/数据总线,双向,三态。(2)A19/S6A16/S3(address/status):地址/状态信号,输出,三态。S6表示CPU与总线连接的情况,S5指示当前中断允许标志IF的

6、状态。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信号高电平有效时,

7、表示CPU要访问的存储器或I/O端口已经作好了输入/输出数据的准备工作,CPU可以进行读/写操作。当READY信号为低电平时,则表示存储器或I/O端口还未准备就绪,CPU需要插入若干个“TW状态”进行等待。,(6)INTR(interrupt request):可屏蔽中断请求信号,输入,高电平有效。8086 CPU在每条指令执行到最后一个时钟周期时,都要检测INTR引脚信号。INTR为高电平时,表明有I/O设备向CPU申请中断,若IF1,CPU则会响应中断,停止当前的操作,为申请中断的I/O设备服务。(7)/TEST(test):等待测试控制信号,输入,低电平有效。/TEST信号用来支持构成多

8、处理器系统,实现8086 CPU与协处理器之间同步协调的功能,只有当CPU执行WAIT指令时才使用。,(8)NMI(non-maskable interrupt):非屏蔽中断请求信号,输入,高电平有效。当NMI引脚上有一个上升沿有效的触发信号时,表明CPU内部或I/O设备提出了非屏蔽的中断请求,CPU会在结束当前所执行的指令后,立即响应中断请求。(9)RESET(reset):复位信号,输入,高电平有效。RESET信号有效时,CPU立即结束现行操作,处于复位状态,初始化所有的内部寄存器。复位后各内部寄存器的状态,见表2.2。当RESET信号由高电平变为低电平时,CPU从FFFF0H地址开始重新

9、启动执行程序。,(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

10、):可屏蔽中断响应信号,输出,低电平有效。(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):总线保持响应信号,输

11、出,高电平有效。,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的代码组合与队列状态

12、见表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提供参与运算的原始数据,也可以作为目标操作数,保存运算的中间结果或最后结果。在有些指令中,这些寄存器具有特定的用途,例如

13、,AX作为累加器;BX作为基址寄存器;CX作为计数寄存器;DX作为数据寄存器。,2指针及变址寄存器(pointer and index registers)(1)指针寄存器SP用来指示堆栈栈顶的偏移地址,称为堆栈指针;BP则用来存放位于堆栈段中的一个数据区的“基址”的偏移量,称为基址指针。(2)变址寄存器 SI,DI称为变址寄存器,它们用来存放当前数据所在存储单元的偏移地址。在串操作指令中,SI用来存放源操作数地址的偏移量,称为源变址寄存器;DI用来存放目标操作数地址的偏移量,称为目标变址寄存器。,3段寄存器(segment registers)指明了一个特定的现行段,用来存放各段的段基址。当

14、用户用指令设定了它们的初值后,实际上已经确定了一个64KB的存储区段。代码段寄存器CS用来存放当前使用的代码段的段基址,用户编制的程序必须存放在代码段中,CPU将会依次从代码段取出指令代码并执行。数据段寄存器DS用来存放当前使用的数据段的段基址,程序运行所需的原始数据以及运算的结果应存放在数据段中。,附加段寄存器ES用来存放当前使用的附加段的段基址,它通常也用来存放数据,但在数据串操作时,用来存放目标数据串(此时DS用来存放源数据串)。堆栈段寄存器SS用来存放当前使用的堆栈段的段基址,所有堆栈操作的数据均保存在这个段中。,4指令指针 IP(instruction pointer)为16位指令指

15、针,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表示有偶

16、数个“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)控制标志

17、位 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

18、 存储器的分段和物理地址的形成,8086 CPU将1MB的存储器划分为若干个区段以后,每个段包含216个字节,并且每个段的首地址是一个可以被16整除的数(即段的起始地址的最低四位为0)。存储空间的分段方式可以有多种多样,段与段之间可以部分重叠、完全重叠或完全分离。,若已知当前有效的代码段、数据段、附加段和堆栈段的段基址分别为1000H,3501H,7F3BH,EAB0H,那么它们在存储器中的分布情况如图所示。,(2)存储器中的逻辑地址和物理地址逻辑地址由段基址(存放在段寄存器中)和偏移地址(由寻址方式提供)两部分构成,它们都是无符号的16位二进制数。物理地址是CPU访问内存时使用的地址。当用户通过编制程序将16位逻辑地址送入CPU的总线接口部件BIU时,地址加法器通过地址运算变换为20位的物理地址。产生20位物理地址的公式为:物理地址段基址16偏移地址,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号