微机原理与接口技术第2章 微处理器系统结构_第1页
微机原理与接口技术第2章 微处理器系统结构_第2页
微机原理与接口技术第2章 微处理器系统结构_第3页
微机原理与接口技术第2章 微处理器系统结构_第4页
微机原理与接口技术第2章 微处理器系统结构_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

1、2.1 Intel 8086/8088微处理器 2.2 80X86高档微处理器 思考与练习题,第2章 Intel 80X86微处理器,掌握16位微处理器的内部结构,基本工作过程; 熟悉和理解16位微处理器的封装引脚及其功能作用; 理解16位CPU的最大工作方式和最小工作方式的含义; 掌握各种寄存器的用途,能熟练地运用各种寄存器编程; 理解指令预取和指令流水线作业的意义。,本章重点提示:,微处理器(Microprocessor) ,是采用大规模或超大规模集成电路技术做成的半导体芯片,上面集成了计算机的主要部件:运算器、控制器、寄存器组、总线和总线缓冲器。整个微型计算机硬件系统的核心就是微处理器,

2、所以它又称为中央处理器(Central Processing Unit),即CPU。 高性能的CPU还有:指令预取部件,指令译码部件、地址形成部件、存储器管理部件等。,若字长8位,即一次能处理8位数据,则称为8位CPU,如Z80的CPU;若字长为16位,则称为16位CPU,如8086/8088、80286的CPU等。 图3-1是一个典型的8位微处理器的内部结构,它一般由算术逻辑运算单元、寄存器组和指令处理单元等几个部分组成。,图3-1 8位微处理器内部结构,负责CPU进行各种运算,包括算术运算和逻辑运算。算术逻辑运算单元(ALU,Arithmetic Logic Unit)是运算器的核心,累加

3、器是CPU中工作最频繁的寄存器。,一. 运算器,ALU的基本组成是一个加法器。ALU所进行的运算中,多数操作需要两个操作数,比如“加”和“逻辑与”运算。但是,也有些运算只要一个操作数,比如“增量”和“逻辑非”运算。,1. 算术运算: 可进行无符号数和带符号数的加、减、乘、除运算,符号数采用补码表示,减法通过求负数的补码而变成加法运算。还可进行BCD码运算。 乘、除可以通过多次重复加、减和移位实现。,1 1 0 1 采用部分积左移和加法 1 0 1 1 可完成二进制乘法。 1 1 0 1 1 1 0 1 部分积左移 0 0 0 0 + .1.1.0.1 1 0 0 0 1 1 1 1,例如:13

4、 11=143=8FH,浮点数运算可以用软件实现。也可以专门生产浮点运算部件和浮点微处理器,并设有专门的浮点运算指令,可进行32位或64位浮点加、减、乘、除运算。 Pentium处理器已把浮点处理器与主处理器集成到一个芯片上。 早期的浮点处理器有:8087、80287、80387协处理器。,2. 逻辑运算:指逻辑与、逻辑或、逻辑非、逻辑异或,以及移位、循环移位等运算和操作。,3. 浮点运算:浮点数可以看作是由两个定点数组成,尾数与阶码。在对阶后可以对尾数进行运算。,对8位CPU来说,由累加器提供其中一个操作数,而另一个操作数通过暂存器来提供。运算后,运算结果被返回到累加器,而运算中状态的变化和

5、运算结果的数字特征则被记录在标志寄存器中。程序根据运算后各个标志位的情况来决定下一步走向。,运算器是完成算术或逻辑运算的部件。运算器由累加器、暂存寄存器和算术逻辑单元(ALU)组成,其结构框图所示:,暂存器,累加器,锁存器,ALU,标志寄存器,数据总线,DAA部件,Flag R,ALU框图:,3、微操作控制部件 可采用组合逻辑控制,微程序控制和可编程逻辑 阵列(PLA)来实现。,二、控制器 CTRL,CTRL是发布操作命令的部件,操作的顺序需要精确的定时,其内部主要组成如下:,1、指令部件 包括程序计数器(PC),指令寄存器(IR), 指令译码器(ID)。,2、时序部件 包括时钟系统,脉冲分配

6、器。,控制器的组成框图:,指令周期:一条指令(的取出和)执行所需的时间称为指令周期(Instruction Cycle),一条指令执行需15个M周期。,时钟周期(T state):主时钟的两个脉冲前沿的时间间隔称为一个时钟周期,又称为T状态。它CPU操作的最小时间单位。,机器周期:由25个T状态组成一个机器周期(Machine Cycle),称为M周期,又叫做总线周期,用来完成一个基本操作,如 MEM读/写,I/O读/写等。,M2,M5,CLK,T4,T3,T1,T2,M1 机器周期,指令周期 (包括15个机器周期),指令周期、机器周期与时钟周期的关系如下图:,三、总线与总线(缓冲器)部件,片

7、外总线:CPU与外部部件之间传送信息的总线。 又称为系统总线,通常系统总线分为地址总线、数据总线、控制总线,即所谓三总线结构。,所谓总线是指计算机中传送信息的一组通信线,将多个部件连成一个整体。可以简单分为:,片内总线:在CPU内部或部件内部各单元之间传送信息的总线(又可细分为单总线、双总线(输入/输出BUS)、多总线结构);,所以同一时刻只允许一个部件向BUS发送信息。 而接收数据就没有上述限制,同一时刻可允许多 个部件接收数据。,因为多个部件均挂在总线上,但各部件工作情况并非完全一样(有的作为信源发,有的作为接收器收)。,由于数据或信息代码是用电位高低来表示,若某一时刻有几个部件同时向BU

8、S发送数据,则BUS上的情况就成为不确定的了,电路也可能被烧毁。,三态缓冲器(3态BUF)处于: 低阻(高低电平)挂BUS上; 高阻逻辑上脱开。,总线缓冲器:在工作过程中,常常要求挂在BUS上的某些部件在电气连接上与BUS “脱开”,使这些部件对BUS上其它部件的工作不产生影响,为此,可在部件内部设置三态缓冲器。,DATA3态BUFBUS;,双向三态缓冲器,如数据总线缓冲器,既可 发又可收数据(数据BUS是双向的)。,“脱开”状态: 处于高阻状态,开路状态,浮空状态; 逻辑上“脱开”,物理上仍连在一起。,单向三态缓冲器,如地址总线缓冲器只发地 址信息,(地址BUS是单向的);,总线缓冲器分为:

9、,采用总线结构的优点是: 减少信息传输线数目; 提高系统的可靠性; 增加系统灵活性; 便于实现系统标准化。,寄存器阵列大致分为以下四组: 存放待处理数据的寄存器; 存放地址码的寄存器; 存放控制信息的寄存器; 起数据或地址缓冲器作用的寄存器。,四、寄存器阵列(Register Array),在CPU内部,有一个临时存放地址和数据的寄存器阵列,是CPU内部的高速存储单元。这个阵列因CPU的不同而不同,有的称寄存器堆,寄存器多少有差别,但其功能相似。,累加器(AC: Accumulator); 通用REG组,A,B,C,D等。,指令指针(IP)或程序计数器(PC:Program Counter);

10、 堆栈指示器(SP: Stack Pointer); 其它可存放地址的寄存器(Register) 例如变址REG、基址REG。,1. 存放地址的寄存器,2. 存放数据的REG,数据总线缓冲REG(DBUF:Data BUS Buffer); 地址总线缓冲REG (ABUF:Address BUS Buffer )。 三态,单向,内外部地址BUS之间缓冲。,指令寄存器(IR: Instruction Register)指令代码; 标志寄存器(FR: Flag Register),通常设有SF、ZF、AF、PF、CF、OF、IF、DF等标志。,3. 存放控制信息的REG,4. 起数据缓冲作用的RE

11、G,2.1 Intel 8086/8088微处理器,2.1.1 8086微处理器的主要特征,8088是一种准16位微处理器 内部寄存器、内部运算部件以及内部操作都是按16位设计的。 但对外的数据总线只有8位。,8086与8088的区别,3.2.1 8086微处理器的主要特征,3.2.2 8086微处理的内部结构,2. 一部分为EU(Execution Unit)。 专门负责分析指令与执行指令。它不与系 统BUS打交道。,8086 CPU按功能可分为两大部分:,1. 一部分为BIU(BUS Interface Unit); 专门负责取指令和存取操作数。它与 BUS 打交道。,BIU的功能:是80

12、86 CPU与存储器或I/O设备之间的接口部件,负责全部引脚的操作。 BIU负责产生指令地址,根据指令地址从存储器取出指令,送到指令队列中排队或直接送给EU去执行; BIU也负责从存储器的指定单元或外设端口中取出指令规定的操作数传送给EU,或者把EU的操作结果传送到指定的存储单元或外设端口中。,总线接口单元BIU,BIU内部设有4个16位的段寄存器: 代码段寄存器CS (Code Segment) 数据段寄存器DS (Data Segment) 堆栈段寄存器SS (Stake Segment) 附加段寄存器ES (Extra Segment),总线接口单元BIU,BIU内部设有 一个16位的指

13、令指针寄存器IP (Instruction Pointer) 6字节指令队列缓冲器 20位地址加法器 总线控制电路,总线接口单元BIU,2.1.2 8086微处理的内部结构,2.执行单元EU,EU的功能:是从BIU的指令队列中取出指令代码,然后执行指令所规定的全部功能。 在执行指令的过程中,如果需要向存储器或I/O传送数据,则EU向BIU发出访问存储器或I/O的命令,并提供访问的地址和数据。,CPU取指过程,CPU向内存写数过程,EU取指、译码过程,取指令与执行指令操作是并行的,提高了CPU的利用率,这种重叠操作技术,提高了整个系统的运行速度。,BIU与外部总线打交道,负责取指令、读写操作数、

14、地址转换与总线控制; EU负责指令译码与执行指令的工作。,3、8086的内部结构特点: 指令的提取与执行分别由BIU和EU两部件完成,二者既独立又相互配合并行同时工作。,3、8086的内部结构特点: EU和BIU的流水线操作: EU与BIU可独立工作,BIU在保证EU与片外传送操作数的前提下,可进行指令预取,与EU可重叠操作,它们的操作具有并行性。,1、通用寄存器AX、BX、CX、DX (16位),AX(累加器)用于完成各种运算和传送移位等操作,在乘法、除法指令中约定使用AX、AH、AL存放相关数据,在I/O指令中约定使用AX、AL存放I/O数据。,BX(基址寄存器)在存储器间接寻址时用于存放

15、段内偏移地址,2.1.3 8086微处理的内部寄存器,CX(计数寄存器)在循环处理指令和串处理指令中约定使用CX存放循环次数,实现计数控制,在移位指令中约定使用CL存放移位次数,DX(数据寄存器)在间接寻址的I/O指令中用于存放端口地址,在字乘法、字除法指令中也约定使用DX存放双字数据的高位部分,1、 通用寄存器AX、BX、CX、DX (16位),1、 通用寄存器SP、BP、SI、DI (16位),用来存放操作数或偏移地址,SP(堆栈指针寄存器)用来指示栈顶的偏移地址,一般用于访问堆栈的栈顶单元 BP(基址指针寄存器)用来指示堆栈段某一操作数所在单元的偏移地址,一般用于访问堆栈段内任意单元 S

16、P、BP一般与SS寄存器联用以确定堆栈段中某一存储单元的地址,1、 通用寄存器SP、BP、SI、DI (16位),SI(源变址寄存器)用来存放源操作数偏移地址 DI(目的变址寄存器)用来存放目的操作数偏移地址 SI、DI一般与DS联用,用来确定数据段中某一存储单元的地址,在串操作指令中DI默认与ES联用,用来存放代码段(CS)、数据段(DS)、堆栈段(SS)、附加段(ES)的段基址.,2、 段寄存器CS、DS、SS、ES(16位),用来存放代码段中指令的偏移地址,3、 指令指针寄存器IP(16位),在程序运行的过程中,IP自动加“1” ,始终指向下一条指令首字节,它与CS寄存器联用确定下一条指

17、令的物理地址,是用来控制指令序列的执行流程的寄存器,6个状态位记录指令操作后结果的状态信息,由CPU根据结果自动设置 CF 进位标志 SF 符号标志 OF 溢出标志 PF 奇偶标志 ZF 零标志 AF 辅助进位标志,4、 标志寄存器FLAG (16位),PF:奇偶标志(Parity Flag) 当运算结果低8位中“1”的个数为偶数时,PF=1;为奇数时,PF=0。,CF:进位标志(Carry Flag) 当运算的结果在最高位(8位,16位)上产 生一个进位或借位时,CF=1; 反之,CF=0。,ZF:零标志(Zero Flag) 当运算结果为全“0”时,ZF=1;反之,ZF=0。,AF:辅助进

18、位标志(Auxiliary Carry Flag) 在算术运算中,当一个8位(或16位)数的低4位向高4位(即b3位向b4位)有进位或借位时,AF=1;反之,AF=0。此标志用于BCD码运算指令中。,OF:溢出标志(Overflow Flag) 在算术运算中,符号数的运算结果超出8位或 (16位)符号数表达的范围,OF=1;反之,OF=0。 (8位:-128+127;16位:-32768+32767) 溢出与进位是两个不同性质的标志,一个反映符号数,一个反映纯数值。,SF:符号标志(Sign Flag) 当运算结果的最高位为“1”时,SF=1; 反之, SF=0。,3 个控制位控制处理器的操作

19、,根据需要由程序用指令设置 DF 方向标志 IF 中断允许标志 TF 陷阱标志,4、 标志寄存器FLAG (16位),DF:方向标志(Direction Flag) 用于控制字符串操作指令的步进方向。 当DF=0时,表示从低址向高址以递增顺序进行串处理; 当DF=1时,表示从高址向低址以递减顺序进行 串处理。,IF:中断允许标志(Interrupt enable Flag) 当IF=1时,允许中断; 当IF=0时,禁止中断。 该标志可用指令STI或CLI使其置1或0。 IF标志对 NMI 信号或由内部中断(INT n)无 作用。,TF:陷阱或跟踪标志(Trap Flag) 当TF=1时,CPU

20、进入单步工作方式,每执行完一 条指令就自动产生一个内部中断,以便进行程序调试。 当TF=0时,连续执行程序。 (没有专门的指令使TF置1或0),CPU内部寄存器总结:,2.2 8086/8088的存储器结构与堆栈,8086是一种单片微处理器芯片,内外部数据总线16位。有20条地址引脚,直接寻址220 =1MB(地址范围为00000H-FFFFFH)。,80386 Pentium处理器都是32位的地址,寻址范围 为232=4GB=(4096MB)。,2.2.1 8086的存储器组织,1. 存储器的标准结构,无论是从偶地址单元取字或者是从奇地址单元取字都是把该单元与下一个单元两个相邻地址单元的16

21、位数取出来,且下一字节单元为高8位数。,偶地址字,奇地址字,若从l000H单元取出一个字, 则这个字是,3412H,若从l005H单元取出一个字, 则这个字是,CDABH,这16位总是存储器内两个连续字节单元的内容,其中第一个字节的地址是偶地址时,可以通过一次访问来实现其功能。然而,对于奇地址的字的读写指令,CPU必须读写两个连续的偶地址字,两次访问存储器,每次都忽略掉不需要的半个字,并对剩下的两个字节进行某种形式的字节调整。,8086中有访问字节的指令也有访问字的指令, 不论是读存储器还是写存储器,每次总是16位。执行访问字节指令时,只用了8位,另外8位则被忽略了。,于是,读写偶地址的字的指

22、令对操作数的读写操作只需访问一次存储器;读写奇地址的字的指令则必须两次访问存储器,分别地取它所需要的那半个字,并进行某种形式的字节调整,以形成指令所需要的字。,字操作数存放在偶地址开始是值得推荐的。,M,1002H,1003H,例:把5678H写入1002H单元。,78,56,读:从1002H读出时,读一个字 节是34,读一个字是1234; 从1001读出一个字是3456H, 但读奇址的字时,需访问内存 两次,忽略掉78H与12H;读写字 节时每次数据总线上仍是16位, 忽略掉另一个字节。,M,1000H,1001H,1002H,1003H,例:把字串12345678H写入1000H单元。,7

23、8,56,34,12,2. 存储器的分段管理,CPU内没有设置20位的地址寄存器,只有16位的寄存器,16位寄存器无法存放20位地址,所以把20位地址分为段(基)地址和偏移量(即逻辑地址);分别存放在两个16位寄存器中。,分段原因:,2. 存储器的分段管理,允许段重叠和浮动: 根据情况,段与段之间可以重叠,几个段可以在一个64KB段内,但各段的起始地址是不同的。 通过改变段寄存器的内容(即段基址),就可以 使这些逻辑段在整个1MB存储空间中浮动。,程序区、堆栈区和数据区可以互相隔离,方便程序的再定位。将1MB存储空间划分成4个64KB的逻辑段,逻辑段彼此独立。,好处是:, 8086系统存储器分

24、段示意图,存储器的实际地址就是物理地址(或绝对地址) 20位; 存储器的逻辑地址由段基址和16位偏移量组成。 表示形式为 段基址 :偏移地址。,段基址:逻辑段起始地址,即段寄存器的内容。,偏移地址:相对于段起始地址的偏移量。,即将段地址左移4位(变成20位)加上所对应的16位地址偏移量。,在程序设计时使用逻辑地址,而CPU访问存储器时地址总线上发出的是20位物理地址,因为CPU的BIU中有一个20位地址加法器来形成20位的物理地址。,物理地址与逻辑地址的关系是: 物理地址=段基址16 + 段内偏移地址,分段技术,0000,16位段基址,20位物理地址,段基址为2000H,偏移量5000H 段基

25、址为2100H,偏移量4000H 段基址为2200H,偏移量3000H,不同的逻辑地址可以变换成同一个物理地址,反之亦然。,例如:物理地址为 25000H,逻辑地址:,例题:计算物理地址,逻辑地址为2000H:3114H,即2000H:3114H逻辑地址转换成物理地址是23114H。,8086可访问8位I/O端口或16位I/O端口,若直接寻址方式寻I/O端口,用8位地址,可访问28=256个端口地址;若用间接寻址方式寻I/O,用16位地址,可访问216=64K个端口地址;间接寻址通过DX寄存器,I/O端口不设段REG,可以认为全部端口都在同一个段内。,8086系列的处理器设有专门的I/O指令

26、(即IN和OUT指令)。,3、堆栈和堆栈指针(SP),堆栈是一个很抽象的名词,也是一个很重要的概念。堆栈为实现计算机的中断处理、中断服务是绝不可无的。 这么重要的东西,究竟是个什么东西呢?其实堆栈就是由一组寄存器或指定的一组存储单元组成的。前者称硬堆栈,后者称软堆栈。 所谓硬堆栈:就是由微处理器芯片中的一组寄存器组成的, 所谓软堆栈:是由系统中的RAM来实现的。,特别注意!:堆栈对保护信息的存取操作不同于存储器的存取操作,堆栈存取数据的操作规则是: 先进后出 或 后进先出,堆栈的作用是用来存放数据信息的,这些数据信息包括有:,1、中断断点保护和现场保护信息;(自动保护),2、过程调用断点和现场

27、保护信息;(自动保护),3、程序员认为需要保护的有关信息;,把数据压入堆栈的指令是:PUSH 把数据从堆栈中弹出的指令是:POP 将数据压入堆栈和从堆栈中弹出数据都是在栈顶进行。栈顶的地址由堆栈指针(SP)给定,并自动进行管理,即对地址指针是自动修改操作。,注意!:压入操作是先修改指针, 再 压入 数据; 弹出操作是先弹出数据, 再修改指针。,软件堆栈:用内存作为堆栈,工作速度慢,容量 大,内存有多大,堆栈就有多大,堆栈由一个堆栈 指针 SP 和一个栈区组成。,2.2.2 堆栈的概念,什么是堆栈?,堆栈是一个栈底固定,栈顶浮动,按照后进先出(LIFO Last In First Out)的原则

28、存取数据的部件或区域。,硬件堆栈:内部寄存器作为堆栈,工作速度 快,容量不大。,另外,调用子程序之前的有关REG、标志位也要 及时正确的保存下来。,为什么要用堆栈?,主程序与子程序,主程序调用子程序,或者子程 序调用子程序,或者处理中断服务程序,CPU必须把主程序调用子程序指令的下一条指令的地址(或中断时的断点)即PC值保留下来,才能保证子程序(或中断服务程序)执行完之后正确返回到主程序继续执行。,SS:标识现行堆栈段的基地址; SP:标识现行堆栈的段内偏移量。,堆栈如何操作?,堆栈必须设有一个区域(栈区),还需一个指针(SP),指示栈在什么位置。8086与栈有关的寄存器是SS和SP。,808

29、6的入栈与出栈操作每次是一个字,而不是一个字节。,SP值由指令MOV SP,data设定初值。,空栈时,栈顶与栈底是重合的,随着压入栈中数据增加,堆栈扩展,SP减小,SP始终指向栈顶。,堆栈操作有专门的指令 PUSH 与 POP 。,分两步: 1. 先SP1SP,压入高位字节(即AH内容); 2. 再SP1SP,压入低位字节(即AL内容)。,例:若SS=1200H,SP=1000H,执行PUSH AX (设AX=1234H),看栈针与栈中的内容。,先修改堆栈指针,再压入数据,先压入高字节,后压入低字节。,压入堆栈操作如图: SS16+SP 12000H + 1000H 13000H,低址,高址

30、,SP= 1000H,SP10FFFH,SP10FFEH,M,12FFEH,12FFFH,13000 H,12,34,1. 先弹出低位内容, 修改SPSP+1; 2. 再弹出高位内容,再修改SPSP+1;,出栈操作与入栈操作相反:,注:CALL与RET中保护断点与恢复断点是由指令自动完成的。,低址,高址,SP+1,M,12FFEH,12FFFH,13000 H,12,34,SP,执行 POP BX 指令后, BX=5678H, SP=1002H, SS=1500H,例:若SS=1500H,SP=1000H,执行指令POP BX (设栈中数据=5678H),看栈针与栈中的内容如 何变化。,弹出也

31、分为两步:,先弹出低8位(78H BL ),修改栈针, SP+1SP ;,再弹出高8位(56H BH ),再修改栈针,SP+1SP ;,弹出操作如下图: SS16+SP 15000H + 1000H 16000H,低址,高址,SP=1000H,SP+11002H,SP+11001H,M,16000H,16001H,16002H,BX=BH BL 56 78,8086/8088微处理器引线,在逻辑上可分为3类: 地址总线信号、控制总线信号, 还有一些专业信号:电源、地、时钟。,8086/8088采用引线分时复用技术,一条引线不同时间代表不同信号,解决引线不够问题。,2.1.5 8086的引脚及工

32、作模式,一、工作模式,最小模式:单微处理器模式,系统中只有一个8086微处理器,所有的总线控制信号均由CPU直接产生,因此系统中的总线控制电路少,控制信号较少,一般不必接总线控制器,最大模式:多微处理器模式,系统中可包含2个或2个以上微处理器,其中一个8086为主处理器,其他的微处理器为协处理器(如8087、8089) 系统中控制信号较多,需要通过总线控制器与总线相连,控制总线驱动能力较强,二、引脚功能,8086,1. AD15AD0(Address Data Bus) 地址/数据分时复用引脚 可作为输入或输出,具有三态 在总线周期的T1状态作为地址线,输出要访问的存储器或I/O端口的地址;

33、在总线周期的T2T3状态作为数据线传输数据。,二、引脚功能,2. A19 /S6 A16/S3 地址/状态复用引脚 输出,具有三态 在总线周期的T1状态,用来输出地址的最高4位。 在总线周期的T2、T3、TW和T4状态时,用来输出状态信息。,二、引脚功能,S6指示哪个处理器在使用总线: S6 =0,8086使用; S6 =1,其它处理器使用。,3.(Bus High Enable/Status) 高8位数据总线允许/状态复用引脚 输出引脚,三态。 在T1状态, BHE在高8位数据总线D15 D8上传送一个字节数据;,BHE与A0把存储器分为两组(高组与低组): S7状态信号没定义。,4. (R

34、ead) 读信号输出,三态 表示将要执行一个对存储器或I/O端口的读操作。 低电平有效,5. READY 准备好信号 输入,高电平有效 处理器与存储器及I/O接口速度同步的控制信号,6. 测试信号 输入,低电平有效 脱离等待状态,TEST:检测信号(IN) 该信号由8087发来,在WAIT指令执行期间, CPU监视TEST信号。若TEST为低电平,8086继续执行WAIT的下一条指令,否则CPU处于等待(空闲)状态,且重复测试TEST信号;TEST为高时,处于WAIT状态,TEST低电平时退出WAIT状态。,TEST,BUSY,7. INTR (Interrupt Request) 可屏蔽中断

35、请求信号 输入,高电平有效 CPU在执行每条指令的最后一个时钟周期时,会对INTR引脚的信号进行采样。若CPU的中断允许标志为1,且又接收到INTR信号,则CPU会在执行完当前指令后,响应中断请求,执行一个中断处理子程序。,8. NMI (Non-Maskable Interrupt) 非屏蔽中断请求信号 输入,高电平有效 NMI不受中断允许标志IF的影响,也不能用软件进行屏蔽。每当NMI端输入一个正沿触发信号时,CPU会在执行完当前指令后,执行对应的不可屏蔽中断处理程序。,9. RESET 复位信号 输入,高电平有效。 RESET将使8086 CPU立即结束当前操作 CPU内部进入原始状态。

36、CS为全1,该信号使CPU结束现行操作,初始化内部REG, CPU复位后: CS=FFFFH IP=0000H DS=0000H ES=0000H SS=0000H FR=0000(禁止中断) 指令队列空,复位后执行的第一条指令在内存的 FFFF0H(引导程序的入口地址),用JMP可转到实际开始处。,最小/最大方式信号 当 接 +5V电压时,CPU工作于最小方式;接地时,CPU工作于最大方式。,11. CLK (Clock) 系统时钟信号 输入,高电平有效,INTA:中断响应信号(OUT) 是INTR的应答信号,在中断响应时发两个INTA周期。 ALE:地址锁存允许信号(OUT) (Addre

37、ss Latch Enable) 把地址/数据、地址/状态线上的地址信号锁存到 地址锁存器中,ALE在T1状态有效。,M/IO:MEM与I/O控制信号(OUT) 决定访问的是MEM或者是I/O: M/IO=1,访问MEM; M/IO=0,访问I/O口。 WR:写信号(OUT) 用来表示CPU处于写MEM或者I/O口(与M/IO 配合使用)。,DT/R:数据收发信号(双向,三态) 增加数据总线的驱动能力,采用外加总线驱动器(收发器8286/8287)。 当 DT/R=1,发送; DT/R=0,接收。 DEN:数据允许信号(Data Enable)(OUT) 作为总线驱动器8286/8287芯片的

38、输出允许信号 (OE)。,HOLD(IN)与HLDA(OUT):总线请求保持 与总线响应保持信号 总线请求HOLD是由其它主设备发送给CPU; CPU检测HOLD的时间: 在每一个总线周期的最后一 个T状态。 总线响应HLDA作为CPU对HOLD之应答,并让出总线控制权。,当MN/MX=0(最大组态)时,各引脚功能: S2、S1、S0 :总线周期状态信号(OUT) 此三状态信号由总线控制器8288译码产生CPU所需的各种控制信号,共产生8个控制信号。 主要有: 存储器读写; 中断响应INTA(ALE,DEN,DT/R); I/O口读写等控制信号。,RQ/ GT0,RQ/ GT1:(Reques

39、t/Grant) 总线请求(IN)/总线允许(OUT) 每一引脚都是双向的,既可作为总线请求,又可 作为总线响应信号。外部主设备发来的请求信号为 输入,CPU响应时为输出。 若有两个主设备同时请求时 , RQ/ GT0比 RQ/ GT1级别高。,LOCK:总线锁定信号(OUT) 该信号由前缀指令“LOCK”使其生效,且一直保持到下一指令执行完,以使得外部总线主控设备不能获得对系统总线的控制权。,QS1,QS0: 指令队列状态信号(OUT) 让外部设备能监视CPU内部指令队列状况。 编码如下:,地址锁存器(8282)(或74LS373) 8282(或373)是带三态输出缓冲器的8位双向锁存器。,

40、8282,OE,STB,DI0DI7,DO0DO7,OE为输出允许信号, 当OE=0时,数据就出现在数据线上;OE=1时,锁存器处于高阻。,总线接口部件,选通信号:STB(Strobe)把输入数据锁入锁存器。,ALESTB,双向总线驱动器(总线收发器) 数据锁存不是必须的,但在较大的系统中,由于使用的存储器和I/O接口数量较多,为了增加CPU数据总线带负载的能力,一般接入总线驱动器以提高数据总线带负载之能力。,8286(或74LS245)是8位总线驱动器(双向) T是控制收发方向的输入控 制信号: T=1,AB; T=0,BA; OE=0,输出允许信号; OE=1,8086是高阻。 8286可

41、以提供32mA驱动。,A0A7,B0B7,OE,T,DEN,DT/R,最小组态: CPU提供所有的总线控制信号,以实现与MEM 和I/O接口的连接。(最小组态如下图),8086/8088的工作模式,最小模式,存储器,外设,DEN,DT/R,AD15-0,BHE,A19-16,ALE,M/IO,WR,RD,CLK,READY,RESET,8086 CPU,MN/MX,+5V,+5V,BHE,RES,8284,8282,STB,OE,8286,T,OE,Data Bus,Addr. Bus,最大组态: 当MN/MX=0时,8086组成最大组态,以组成多处理器系统。在此组态下,一些系统资源由多个处理

42、器所公用,它们被称为全局资源;另一些资源为某个处理器所专用的,称为局部或专用资源。,在多处理器系统中,任何时刻只能有一个处理器 访问总线,采取的措施是: (1)总线控制器(8288)(产生命令和控制时序,提供总线驱动能力) 8288对8086的三个总线状态信号( S0、S1、S2 ) 进行译码,以产生与多总线结构兼容的各种定时命 令和控制信号。译出8种信号,111时不用(无 源),还有7种作为命令信号,请参看下表。,总线状态码与输出命令对应表,(2) 总线裁决器(8289) 有了8289,才允许多个处理器(8086,8087, 8089等)驻留在系统总线上,每个处理器都有自己的 裁决器,每个裁

43、决器都有一个总线请求信号BREQ。 总线的裁决器根据8086系统的多总线裁决规程进行。 裁决器的连接方式有3种: 并联优先权判别方式(BREQ送入优先权编码器) 串联优先权判别方式(与连接位置有关,菊花链) 循环优先权判别方式(动态分配,电路复杂),最大模式,一台微机在运行过程中,需要CPU执行许多操作,8086CPU的操作主要有以下几种: 系统复位与启动操作 总线读/写操作 中断操作 最小模式下的总线保持请求响应操作 最大模式下的总线请求/允许/释放操作,总线操作及时序,8086的复位和启动操作是通过RESET引脚的触发信号执行的, 8086要求复位信号至少维持4个时钟周期的高电平,若是初次

44、上电则要求至少维持50s的高电平,当RESET信号一进入高电平,8086就会结束现行操作,进入内部复位状态,并将CPU内部全部寄存器置为初值,系统复位重新启动时,便从内存的FFFF0H单元开始执行程序。一般在FFFF0H处存放一条JMP指令,转移到系统程序入口处,保证系统一启动就可以自动进入系统程序,1、系统复位与启动操作,8086复位操作时序,4T后,1T后,在RESET信号变成高电平后,经过1个时钟周期,所有的三态输出线被置为高阻态,并一直维持高阻态(浮空)直到RESET信号变为低电平为止,但在高阻态的前半个时钟周期,三态输出线被置为不作用状态,当时钟信号又变成高电平时,才置为高阻态,2、

45、 最小模式下存储器或I/O端口读操作,T1状态,T2状态,T3状态, 在基本总线周期的T3状态,存储单元或I/O端口将数据送到了数据总线上,CPU通过AD15AD0接收数据。 T2状态的各信号电平持续到T3状态。,Tw状态,CPU在T3状态的前沿采样READY信号,为低电平,说明数据总线上没有数据,就在T3与T4之间插入等待周期Tw,以后CPU在每个Tw的前沿处采样READY,确定是否继续插入Tw ,直到READY为高电平,才进入T4状态。Tw与T3状态各控制信号的电平状态一致。,T4状态,与最小模式下的读总线周期不同之处:,在T2状态,地址信号发出后,CPU立即向地址/数据线AD15AD0发

46、出数据,数据信号保持到T4状态,使存储器或外设一旦准备好数据即可从数据总线取走数据。,2、 最小模式下存储器或I/O端口写操作,与最小模式下的读总线周期的不同之处:,3、 最大模式下存储器或I/O端口读操作,与最大模式下的读总线周期的不同之处:,3、 最大模式下存储器或I/O端口写操作,CPU在每个指令周期的最后一个T状态检测可屏蔽中断请求线INTR,若INTR引脚有一个高电平,且标志寄存器中断允许标志IF=1时,CPU在执行完当前的指令后,执行中断响应周期。 CPU对可屏蔽中断请求的响应过程要执行两个连续的INTA总线周期,每个总线周期包括4个时钟周期。,4、中断操作,1、HOLD信号变为高

47、电平后,CPU要在下一个时钟周期的上升沿才检测到。然后用T4或T1状态的下降沿使HLDA变成高电平,若采样到HOLD信号时,不在T4或T1状态,可能会延迟几个时钟周期,等到T4或T1状态才发出HLDA信号,4、 当总线请求结束,HOLD和HLDA信号变为低电平时,CPU不立即驱动总线,这些引脚继续浮空,直到CPU执行一条总线操作时,才结束带这些引脚的浮空状态。因此,为了防止总线控制切换时,因没有任何主模块的驱动而造成控制线电平漂移到最小电平以下,在控制线和电源之间要连接一个提拉电阻,5、最小模式下总线保持请求/响应操作,5、与最小模式下执行总线保持请求保持响应周期情况一样,CPU发出总线允许负

48、脉冲,释放总线后,仍可执行已经进入指令缓冲队列的指令,直到需要使用总线周期为止,6、最大模式下总线请求/允许/释放操作,(1)80386微处理器拥有32位数据总线和32位地址总线,可直接寻址4GB物理存储空间,具有虚拟存储能力,虚拟存储空间达64TB。存储器采用分段结构,2.2.1 80386微处理器,1、80386的主要特点,(2)系统采用流水线和指令重叠技术、虚拟存储技术、片内存储器管理技术、存储器管理分段、分页保护技术等,系统实现了多用户多任务操作,(3)提供32位的指令,可支持8位、16位、32位的数据类型,具有8个通用的32位寄存器,(4)首次在芯片内使用Cache,以使内存速度能更

49、好地与运算器的速度相匹配,从而大大提高指令的执行速度和工作效率,(5)提供32位外部总线接口,最大数据传输速率为32Mbps。系统可同高速的DRAM芯片接口,支持动态总线宽度控制,能动态地切换32位/16位数据总线,(6)具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护,片内具有多任务机构,能快速完成任务的切换,(7)通过配置浮点协处理器80387实现数据高速处理,加快了浮点运算速度,(8)80386系统能在12.5MHz或16MHz时钟频率下可靠工作,指令的执行速度可达3MIPS4MIPS以上,2.2 80 x86高档微处理器,3、80386的内部结构,2.2.1 80386微处理,(1)在CISC(复杂指令集计算机)技术的基础上,首次采用了RISC(精简指令集计算机)技术,使得大多数常用指令可以在一个时钟周期内完成,从而大大加快了指令的执行速度,1、80486的主要特点,2.2.2 80486微处理,(2)将浮点运算部件、Cache及其控制器集成于80486微处

温馨提示

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

评论

0/150

提交评论