资源描述
第三章 微处理器及其结构,8086/8088内部结构,存储器结构,8086/8088CPU引脚及功能,8086/8088CPU内部时序,微处理器性能指标,重点 : 8086CPU的组成及 各部分的作用,8086的程序 设计级模型,8086存储器的 分段、物理地址的形成 , 8086工作时序,堆栈的概念,难点:8086工作时序、 物理地址的形成,学习说明,熟练掌握:能够很快地根据题目要求得到答案。,基本了解:知道原理,不必深究。,预设伏笔:先有所了解,学到后面自然明白。,微处理器性能指标,字长,主频、外频、倍频,地址总线的宽度,主存容量,高速缓存,工艺形成及其它,字长,字长:是微处理器在交换、加工、存储信息时, 其信息位的最基本的长度。与数据总线的 根数和内部寄存器的位数相同。,字长是衡量CPU工作性能的一个重要参数。 不同类型的CPU有不同的字长。 如: Intel 4004 4 位 8080 8 位 8088/ 8086/80286 16 位 80386/80486、Pentium 32 位 Itanium(安腾) 64 位,8086/8088CPU性能指标,8086:是INTEL系列16位微处理器,采用HOMS(高密 度金属氧化物半导体)技术,集成度为29000个管片。 数据总线:16位 地址总线:20位,可直接寻址的地址空间为 1M字节。,8088:准16位机,CPU内部数据总路线为16位,外部8 位,20位地址总线,推出8088的目的是为了向下兼容以 前的8位微型机。,1.8086/8088内部结构,内 部 结 构,8086CPU结构框图及分析,8086CPU内部寄存器,1.1 8086基本结构图,1.2 8086CPU内部结构框架,1.2 8086CPU内部结构框架,执行部件EU的作用:负责 执行指令、形成有效地址EA。 EU 包括四部分:,运算器ALU+TEMP,标志寄存器,控制单元,通用寄存器,1.2 8086CPU内部结构框架,总线接口部件BIU的作用是 预取指令、形成实际地址PA、 输入输出数据。BIU主要由五部 分组成:,指令队列缓冲器,总线控制逻辑,段寄存器,指令指针寄存器,地址产生器,总线利用率高。,串行结构:取指令取操作数执行指令存放结果,CPU利用率高,计算速度快。,两部分的动作管理遵循以下原则。,1.每当8086的指令队列中有2个空字节,BIU就会自动把指令 取到指令队列中; 2.同时EU从指令队列中取出一条指令并分析、执行指令; 3.当指令队列已满而EU对BIU又无总线访问请求时,BIU进入 空闲状态; 4.在执行转移、调用和返回指令时,指令队列中原有内容被自 动清除。,微处理器结构特点,1.3 8088CPU内部结构框架,1.4 寄存器通用寄存器,四个16位通用寄存器、两个变址寄 存器、两个指针寄存器。,AX:累加器(Accumulator),BX:基址寄存器(Base Index),CX:计数寄存器(Count Index),DX:数据寄存器(Data Index),SI:源变址寄存器(Source Index),DI:目标寄存器(Destination Index),SP:堆栈指针(Stack Pointer),BP:基址指针(Base Pointer),AX BX CX DX,0,15,8 7,AL,AH,BL,BH,CL,CH,DL,DH,SI,DI,SP,BP,1.4 寄存器标志寄存器FR,状态 标志位,CF进位标志,CF=1,有进(借)位(算术)。,PF奇偶标志,含1个数为偶数,PF=1。,AF辅助进位位, D3向D4有进借位,AF=1。,OF溢出标志,OF=CF + CD。OF=1,有溢出。,SF符号标志,SF=1,D7(D15)=1。,ZF零标志,ZF=1,结果为零。,控制位,IF中断允许标志,IF=1,允许CPU响应 外设通过可屏蔽中断请求线提出的中断,DF 方向标志,串,DF=1,减址,TF跟踪标志,TF=1,CPU进入单步运行状态。,CF= 1,PF= 1,AF= 0,OF= 0,SF= 0,ZF= 0,无符号数相加,有符号数相加,1.4 寄存器段寄存器,8086微处理器的地 址总线为20根,则 其寻址空间为:,1.4 寄存器段寄存器,矛盾:外部地址总线为20根,内部能够提供的数据为16为位。,因为16位地址最多可以访问64K的存储空 间,所以每个分段的最大空间为64K。,段起 始地 址,物理地址:存储器中实实在在存在的一个 存储单元的编号,也叫实际地址。,段起始地址:分段的第一个物理地址。,00000H,FFFFFH,1M的存储空间能够被分为的段数为:16,段起始地址的特点:低四位为0。,12340H 12000H 00000H 23560H FFFF0H,1.4 寄存器段寄存器,段基址:段起始地址高十六位(二 进制)组成的地址编码。,偏移地址,12340H,2233FH,逻辑段1,1238FH,右图所示段的段基址为:1234H,偏移地址:物理地址与所在段起始 地址的差,也叫有效地址。,右图中1238FH的偏移地址为: 0004FH,物理地址的形成:段基址左移4位 (二进制)+ 偏移地址。,偏移地址的特点:高四位(二进制) 永远为0,因此仅取其低十六位。,最大的偏移地址2233FH-12340H=0FFFFH,1.4 寄存器段寄存器,逻辑地址的特点:不唯一,逻辑地址 段基址:偏移地址,左图中1238FH的逻辑地址为:,1234H:004FH,1.4 寄存器段寄存器,代码段:存放等待执行的指令代码。,数据段:存放指令中所需要的操作数。,堆栈段:一段特殊的数据存取区域。,附加段:通常也用来存放操作数。,在程序量很大的情况下可以开辟 多个代码段。同理,其它逻辑段也 可以进行扩展。,堆栈段,附加段,数据段,代码段,各个逻辑段可以重叠。,代码段1,功能段:按存放数据所起到的功能不 同又可以分为代码段、数据段、堆栈段 和附加段。,1.4 寄存器段寄存器,代码段寄存器CS:指向当前的 代码段,指令由此段取出。,数据段寄存器DS:指向当前的 数据段,通常用来存放程序变量。,堆栈段寄存器SS:指向当前的堆 栈段,堆栈操作所需的就是该段存 储单元的内容。,附加段寄存器ES:指向当前的附 加段,通常也用来存储数据。,1.4 寄存器指令指针IP,12300H,12307H,0007H,IP:,当前代码段,指令指针寄存器IP存储的是当前 预取指令的存储地址。,对于8086,BIU从存储器中取过 一次指令后,IP自动加2,指向下 一个预取指令。,对于8088,BIU从存储器中取过 一次指令后,IP自动加1,指向下 一个预取指令。,程序员不能对IP进行存取操作, 程序中的转移指令、返回指令及 中断指令能对IP进行操作 。,微处理器结构总结,14个16位的寄存器,2. 8086/8088微处理器的外部特性,封装形式: 8086CPU采用双列直插式 引脚数: 40条 总线采用分时复用技术 工作模式:最小工作模式 、最大工作模式 两种模式的区别: 最小模式下,系统没有协处理器,所有控制信号由CPU发出 最大模式下,有两个或多个协处理器,CPU本身是主处理器,通过8288总线控制器提供控制信号,GND,AD14,AD13,AD12,AD11,AD10,AD9,AD8,AD7,AD6,AD5,AD4,AD3,AD2,AD1,AD0,NMI,INTR,CLK,GND,Vcc(+5V),AD15,A16/S3,A17/S4,A18/S5,A19/S6,BHE/S7,MN/MX,RD,READY,RESET,1,2,3,4,5,6,7,8,9,10,11,20,12,13,14,15,16,17,18,19,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,2.1 8086/8088微处理器引脚及功能,(1)AD15AD0 分时复用的地址/数据总线。 T1周期传送地址,单向三态输出; T2T4周期传送数据,双向三态 输入/输出。,(2)A19/S6A16/S3 分时复用的地址/状态线。,S5=1,则IF=1;,S6恒为0,8086微处理器,GND,AD14,AD13,AD12,AD11,AD10,AD9,AD8,AD7,AD6,AD5,AD4,AD3,AD2,AD1,AD0,NMI,INTR,CLK,GND,Vcc(+5V),AD15,A16/S3,A17/S4,A18/S5,A19/S6,BHE/S7,MN/MX,RD,READY,RESET,1,2,3,4,5,6,7,8,9,10,11,20,12,13,14,15,16,17,18,19,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,(3)Vcc(电源)、GND(地) 8086微处理器只需要单一的 +5V电源,由Vcc输入,GND为接 地端。,8086微处理器,(4)17根控制信号线。,2.1 8086/8088微处理器引脚及功能,GND,AD14,AD13,AD12,AD11,AD10,AD9,AD8,AD7,AD6,AD5,AD4,AD3,AD2,AD1,AD0,NMI,INTR,CLK,GND,Vcc(+5V),AD15,A16/S3,A17/S4,A18/S5,A19/S6,BHE/S7,MN/MX,RD,READY,RESET,1,2,3,4,5,6,7,8,9,10,11,20,12,13,14,15,16,17,18,19,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,8086微处理器,2.1 8086/8088微处理器引脚及功能, BHE/S7 :总线高位有效信号, 三态、输出,低电平有效。 在T1状态,8086在BHE/S7引脚输出BHE信号,表示高8bit数据总线D15D8上的数据有效,与地址线A0一起产生存储器的选择逻辑信号。 在其它时钟周期,输出为状态信号S7。但8086芯片, S7未定义。,低电平 8086处于最大模式。,高电平 8086处于最小模式。,低电平有效,表示将对内存或I/O端口读操作。,2.1 8086/8088微处理器引脚及功能, M/IO:存储器或I/O端口访问信号(输出,三态),区分CPU进行的存储器还是I/O访问,见下表。,2.1 8086/8088微处理器引脚及功能,2.1 8086/8088微处理器引脚及功能, ALE: 地址锁存允许信号 (输出),高电平有效,此信号在T1状态有效,为地址码锁存的选通信号,送地址锁存器。, READY: 准备就绪信号 (输入),高电平有效,是从所寻址的存储器或I/O电路来的响应信号,用于解决CPU与慢速存储器或I/O电路的同步问题。CPU在T3周期开始采样READY线,若为低电平,则T3之后插入TW等待周期直到READY为高电平,进入T4完成数据传送。,2.1 8086/8088微处理器引脚及功能, INTR: 可屏蔽中断请求信号 (输入), INTA: 中断响应信号 (输出,三态),2.1 8086/8088微处理器引脚及功能, NMI: 非屏蔽中断请求信号 (输入),2.1 8086/8088微处理器引脚及功能,(11) RESET: 系统复位信号 (输入),2.1 8086/8088微处理器引脚及功能,2.1 8086/8088微处理器引脚及功能,(14) HOLD: 保持请求信号 (输入),2.1 8086/8088微处理器引脚及功能,(15) HLDA:保持响应信号 (输出),高电平有效。当CPU响应保持请求HOLD时,便发出HLDA高电平的应答信号,从而将总线控制权让给发出保持请求的设备,直到该设备又将HOLD信号变为低电平,CPU才收回总线控制权,将HLDA信号置为低电平。,2.1 8086/8088微处理器引脚及功能,(17) CLK: 系统时钟信号(输入),2.1 8086/8088微处理器引脚及功能,8086/8088在最小工作模式下, 硬件主要有: 1片时钟发生器 (8284) 3片地址锁存器 (8282) 2片数据收发器 (8286) -当系统中所连的存储 器和外设较多时,为了 增加总线的驱动能力, 从而增加8286。 8086/8088在最小模式下的硬件连接图如下所示:,2.2 8086/8088微处理器最小模式,2.2 8086/8088微处理器最小模式,2.3 8086最大模式下引脚信号及功能,两种模式下8086的2431引脚信号表,(1) QS1和QS0 :指令队列状态信号 (输出),QS1和QS0编码与队列状态表,两信号编码和对应的队列状态如下表所示。,2.3 8086最大模式下引脚信号及功能,这三个状态信号组成的编码表示了当前总线周期是何种操作周期,如下表所示。,2, 1和 0编码与总线周期表,2.3 8086最大模式下引脚信号及功能,2.3 8086最大模式下引脚信号及功能,下图给出了8086在最大模式下的典型配置。,2.3 8086最大模式下引脚信号及功能,8086在最大模式下的典型配置,GND,A14,A13,A12,A11,A10,A9,A8,AD7,AD6,AD5,AD4,AD3,AD2,AD1,AD0,NMI,INTR,CLK,GND,Vcc(+5V),A15,A16/S3,A17/S4,A18/S5,A19/S6,SS0,MN/MX,RD,READY,RESET,IO/M ( S2),1,2,3,4,5,6,7,8,9,10,11,20,12,13,14,15,16,17,18,19,40,39,38,37,36,35,34,33,32,31,30,29,27,26,25,21,8088微处理器,28,24,23,22,(1)AD7AD0 数据总线为8条。,(2)M/IO(28脚):管脚定义相反。,(3) BHE(34脚):改为SS0。,2.4 8088微处器引脚图,3.存储器组织,8086系统中存储器的结构,8088系统中存储器的结构,堆栈的结构,3.1 8086系统中存储器的结构,存储地址相当于房间号码,而其中存储 的数据才是我们要存取的具体内容。,右图所示的存储单元地址为:12356H,该单元中存储的数据为:25H,程序中的表示形式为:12356H=25H,如果存放的是字,则其表示形式为:,12356H=3625H,注意:字的高位存放在大地址单元,低位存放在小地址单元。程序中说明是字数据还是字节数据。,例:已知CS=2000H,IP=2344H, 求实际地址PA。解:PA=(CS)左移4位+(IP) =20000H+2344H =22344H 物理地址=段基址*10H+偏移地址,注意:“左移4位”中这个位是指二进制位,而非十六进制位。左移 4 位二进制数相当于左移 1 位十六进制数。,3.1 8086系统中存储器的结构,3.1 8086系统中存储器的结构,字节交叉编址,3.1 8086系统中存储器的结构,3.1 8086系统中存储器的结构,BHE A0 访问库名 0 0 双库,实现16位数据的传送 0 1 奇地址高位库,实现8位数据的传送 1 0 偶地址低位库,实现8位数据的传送 1 1 不传送,BHE和A0的控制作用,假设存放的为字数据,则,12351H=1234H,12356H=3625H,规则字与非规则字,规则字:起始地址为偶地址。微 处理器一次可以将数据读走。,非规则字:起始地址为奇地址。 微处理器两次才能将数据读走。,3.2 8088系统中存储器的结构,单一存储体,一次只能读取一个字节的信息,3.3 8086系统中的堆栈,用作数据暂时存储的一组寄存器或存储单元称为堆栈。,堆栈操作有两种:压栈(PUSH)和出栈(POP),而SP始终指向堆栈栈顶的新位置。,1. 堆栈的定义,堆栈中数据按“后进先出”的结构方式进行处理,即新入栈的依次堆放在原来数据之上,存放信息的最后一个单元叫做栈顶,用堆栈指针SP(Stack Pointer)指示。,2. 堆栈编址结构的两种形式,3.3 8086系统中的堆栈,3. 构成堆栈的两种形式,一种是使用微处理器内部的一组寄存器作为堆栈。 优点:访问速度快。 缺点:寄存器数量有限。,另一种形式是在随机存储器RAM中开辟一个区间供堆栈使用,较为普遍;若编址采用向下生成,其堆栈操作如下图所示。,3.3 8086系统中的堆栈,当前栈顶地址为M,存内容X,信息B进栈:SPSP1,SP指定的地址B,信息A进栈分两步操作: SPSP1,SP指定的地址单元A,3.3 8086系统中的堆栈,堆栈操作示意图(向下生成),信息C进栈,信息C出栈分两步操作:指定的目的地C,SPSP+1,信息B出栈:指定目的地B,SPSP+1,3.3 8086系统中的堆栈,信息D进栈: SPSP1,SP指定的地址D,信息D出栈,信息A出栈,栈顶地址仍为M,3.3 8086系统中的堆栈,3.3 8086系统中的堆栈,堆栈段首地址:10000H,12000H,11FFFH,11FFEH,11FFDH,11FFCH,11FFBH,11FFAH,堆 栈 空 间,当前堆栈段的段基址由SS 给定,SP给定当前栈顶。,为了加快堆栈操作的速度, 堆栈以字为单位进行操作。,入栈指令PUSH;出栈指令POP。,PUSH AX,PUSH CX,PUSH DX,POP AX,PUSH BX,POP DX,结果:AX3571H;BX5678H;CX1593H;DX=1593H,3.3 8086系统中的堆栈,25610H,3060FH,25781H,调用子程序指令,子程序起始地址为 3060FH。结束地址为33618H。,25784H,当前代码段起始地址,12000H,11FFFH,11FFEH,11FFDH,11FFCH,11FFBH,11FFAH,33618H,同一个代码段内的子程序调用过程,25610H,25781H,12000H,11FFFH,11FFEH,11FFDH,11FFCH,11FFBH,11FFAH,代码段1,代码段2,56310H,58962H,5A36FH,25786H,不同代码段的子程序调用过程,1.时钟周期 (T状态周期Clock Cycle),4.1 时钟周期、总线周期和指令周期,微处理器内部操作的最基本时钟单元,宽度为时钟信号相邻两上升沿之间的时钟间隔。,4. 8086CPU内部时序,2.机器周期(总线周期Bus Cycle),微机处理器BIU与外部电路之间进行一次数据传送操作所占用的时间,包含若干个时钟周期。,3.指令周期(Instruction Cycle),执行一条指令所需要的时间,由一至若干个机器周期组成。 4.等待周期:因存储器或I/O设备速度慢引起的 5.空闲周期:因CPU执行指令所需时间长或 在多 微处理器系统中微处理器交换总线权时出现的。,4.2 系统的复位操作,8086CPU的RESET引脚是用于系统复位的,可完成系统复位和启动操作,复位时,CPU内部的寄存器状态为:标志寄存器FR、指令指针IP、段寄存器DS、SS、ES清零,指令队列清空,段寄存器CS置为FFFFH。实际上,除了CS外,所有内部寄存器都清零。启动后,从内存的FFFF0H开始执行程序,FFFF0H处一般存放一条无条件转移指令,转向系统程序的入口地址。,4. 8086CPU内部时序,4.3 总线操作与时序,Intel 8086微处理器采用总线复用操作方式8086的16位数据总线和地址总线的低16位是共用的,典型的总线周期如图,4. 8086CPU内部时序,等待周期TW:,如果在T3周期结束之前,存储器或外设未准备好数据传送,就要启动输入CPU的READY线使之变低电平,从而在T3和T4之间插入一个或多个TW等待周期,直到READY变高,转入T4周期,完成读写操作。,空闲状态周期TI:,8086执行部件EU和总线接口部件BIU在一定程度上独立并行工作,只有当BIU为了填满指令队列或EU执行指令需要与外部交换数据时,申请一个总线周期,此时BIU才执行一个总线周期。因此在两个总线周期之间,可能会存在一些BIU空闲时钟周期。,一、8086读总线周期,举例,二、8086具有等待状态的读总线周期,三、8086写总线周期,四、8086具有等待状态的写总线周期,五、8086最小模式下的总线保持,六、8086中断响应周期,eg. 使AX清零,MOV AX, 0三字节 4T,SUB AX, AX二字节 3T,XOR AX, AX二字节 3T,0010 0000 0000 0000,0001,4567H,AX=4567H,在基本总线周期T3状态,内存单元或I/O端口将数据送到数据总线上。CPU通过AD15AD0接收数据。,在T4状态和前一个状态交界的下降沿处,CPU对数据总线进行采样,从而获得数据。,CPU在T3状态前沿对READY信号进行采样,如果READY为低,即说明存储器和外设尚未准备好,CPU就会在T3和T4之间自动插入一个或几个等待状态TW,CPU在某每个TW前沿处对READY信号进行采样,直至CPU接收到高电平的READY信号后,再把TW的状态执行完,脱离TW,进入T4。,在T1的前半周时,CPU把存储器或外设端口地址放入AD0AD15和A16/S3A19 / S6 。,如果系统中设置READY电路,并且CPU在T3状态的一开始未收到“准备好”信号,那么,会在状态T3和T4之间插入一个或几个等待周期。直到在某个TW的前沿处,CPU采样到“准备好”信号后,便将TW状态作为最后一个等待状态。执行完TW状态后进入T4状态。在TW状态,总线上所有控制信号的情况和T3时一样,数据总线上也仍然保持要写入的数据。,在每个时钟脉冲的上升沿,CPU会对HOLD引脚信号进行采样。,如果检测HOLD处于高电平状态,并且在允许让出总线周期的T4状态或者空闲状态TI之后的下一个时钟周期,CPU把HLDA变为有效,让出总线控制权。,如果发出请求设备将HOLD变为低电平,CPU收回总线控制权。,
展开阅读全文