第二章 8086系统结构 2.3 8088/8086的存储器组织 2.4 8086的系统配置及引脚功能 2.5 8086CPU时序 第二章 8086系统结构 2.1 概述 2.2 8086CPU结构 2.3 8088/8086的存储器组织 2.4 8086的系统配置及引脚功能 2.5 8086CPU时序
第二章 8086系统结构 2.1 概述 2.1.1 CPU的主要性能指标 CPU的主要性能指标有数据宽度(或称字长)、寻址能力、工作频率(或主时钟频率)、体系结构、指令系统等。 一、 数据宽度(字长) CPU的字长是指CPU一次所能处理的二进制数的位数,是表示运算器性能的主要技术指标,一般它等于CPU数据总线的宽度。CPU字长越长,运算精度越高,处理信息速度越快,性能也越高。一般按CPU的字长来划分CPU的档次,常见的CPU字长有8位、16位、32位和64位。在字长概念中,有CPU字长、指令字长、数据字长、总线结构字长,有时,这些字长是不相同的。例如,8088 CPU的内部为16位的运算核心,可以处理16位的数据,但为了缩小体积,降低封装成本,在CPU的外部数据线引脚却只有8根(即8位),因此,对16位的数据要采用分两次传送的方式,故称其为准16位的CPU,其性能比标准的全16位结构(即CPU内外数据总线均为16位)的8086 CPU要低一些。
二、 寻址能力(或寻址范围) 寻址能力往往是指CPU能直接存取数据的内存地址的范围,这是由CPU的地址总线引脚的数目来决定的。通常用K(千)或M(兆)来表示(1K=1024个地址;1M=1024K;1G=1024M等)。例如,8088 CPU的地址总线为20根,则可直接寻址的物理地址可达1M,而 80286 CPU的地址线有24根,则其寻址能力为 16M,而 386/486/586CPU的地址线为32根,故可直接寻址的物理地址达 4G。 三、 运算速度 CPU的运算速度通常用每秒执行基本指令的条数来表示,常用的单位是MIPS(Million Instruction Per Second),即每秒执行的百万条指令数,是CPU执行速度的一种表示方式。然而对于某一特定的CPU,其MIPS值并非定值,得出的数据会因CPU正在执行的软件的不同而不同。
2.1.2 CISC与RISC结构 按计算机的指令系统来区分,可分为CISC结构的CPU和RISC结构的CPU。CISC(即 Complex Instruction Set Computer:复杂指令集计算机)和 RISC(即 Reduced Instruction Set Computer:精简指令集计算机)分别代表了两种不同理论的 CPU设计学派。在过去的数十年间,两种理论各有不少支持者,也有许多按CISC和RISC理论设计的CPU问世。无论何种理论所设计的CPU都有较高的执行效率,其理论对CPU设计的影响很大,因此,在讨论CPU时,将这两种结构的特点加以介绍。 一、 CISC结构 CISC结构的CPU是指能够识别处理100种以上汇编指令的处理器。CISC理论比RISC理论的历史要悠久,以前对 Intel 80X86系列中的 8088,80286等,都是按CISC理论设计的,由此可见 CISC对当今微处理器的发展有相当大的影响。CISC的处理功能很强,但执行指令的时钟周期也较长,每当请求指令执行任务时,CPU要对几百条指令进行分类,找出完成该任务所需的指令。由于要对指令分类,需要一定的时间,因此使CPU的速度减慢了。
二、 RISC结构 RISC结构的CPU在执行一项任务时,只需对指令集中不到一半的指令分类,找出完成该任务所需的指令,这样便提高了CPU的速度。RISC将机器指令简化,提供有限数量的常用和必须的指令,从而简化了CPU芯片的复杂程度,节省了芯片空间。 与CISC结构比较,RISC具有速度较快、生产成本相对较低、调试方便的特点。 2.1.3 CPU三总线 微处理器是大规模集成电路的CPU,就其外部管脚而言,从8086的40脚到80286的68脚,再到PII的242脚,管脚的逐步增加,也说明了集成度的增大。但无论什么型号的CPU,其外部管脚信号线按功能可分为四类:地址总线、数据总线、控制信号总线、电源线。其中地址总线(AB)、数据总线(DB)、控制总线(CB)统称为CPU三总线。
地址总线是从CPU发送出去,用来传递地址信息。地址总线的位数决定了CPU可以直接寻址的内部存储器地址空间的大小,它是单向的。数据总线则是CPU与存储器、I/O设备之间进行相互数据传递的通道,因此是双向的。数据总线的位数是微处理器的一个重要指标,数据总线的位数越大,就意味着CPU在单位时间内一次传递的数据就越多,数据处理速度就快。控制总线是用来传递控制信号的,一部分是CPU向外发送给存储器、I/O接口电路的控制信号,如读、写命令信号,中断响应信号、地址锁存信号等;另一部分是外部接口电路给CPU传来的控制信号,如外设准备就绪信号、中断请求信号等。上述三总线的逻辑关系一般是:CPU在工作过程中,先有地址信号,然后在控制信号的作用下,通过数据总线传递数据,三者是并行的。其中8086/8088 CPU管脚的特点是,地址总线和数据总线是分时复用的,而且某些控制信号线也具有双重功能,在特定的工作方式下,完成一个特定的功能。电源线包括正电源线和地线。
2.2 8086CPU结构 属第三代微处理器 一、 8086CPU的内部结构 微机原理及应用讲稿 2.2 8086CPU结构 属第三代微处理器 运算能力: 数据总线:DB-16bit(8086)/ 8bit(8088) 地址总线:AB-20bit 内存寻址能力220=1MB 一、 8086CPU的内部结构
1.总线接口部件BIU(Bus Interface Unit) 微机原理及应用讲稿 1.总线接口部件BIU(Bus Interface Unit) 组成:16位段寄存器,指令指针,20位地址加法器,总线控制逻辑,6字节指令队列。 作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作数送EU单元去执行。 工作过程:由段寄存器与IP形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。 *当指令队列有2个或2个以上的字节空余时,BIU自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU重新取新地址中的指令代码,送入指令队列。 *指令指针IP由BIU自动修改,IP总是指向下一条将要执行指令的地址。
2.指令执行部件EU(Execution Unit) 组成:通用寄存器,标志寄存器,ALU,EU控制系统等。 作用:负责指令的执行,完成指令的操作。 工作过程:从队列中取得指令,进行译码,根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O端口,则EU将操作数的偏移地址送给BIU,由BIU取得操作数送给EU。
减少了CPU为取指令而等待的时间,提高了CPU的运行速度。 微机原理及应用讲稿 3. 8086CPU结构的特点: 减少了CPU为取指令而等待的时间,提高了CPU的运行速度。
二、 8088/8086的寄存器结构 8088/8086有14个16位寄存器 1. 通用寄存器组 2. 指针/变址寄存器 3. 2个控制寄存器 4. 4个段寄存器
(AX,BX,CX,DX)寄存器既可存放数据,也可存放地址。 微机原理及应用讲稿 1. 通用寄存器组 *各寄存器隐含用法 * 4个16位的 数据寄存器 (AX,BX,CX,DX)寄存器既可存放数据,也可存放地址。 * 既可作为16位寄存器也可作为8位寄存器使用。(例:AH,AL) 8bit寄存器只能存放数据。 *通用性强,对任何指令都具有相同的功能
2. 指针及变址寄存器(SP,BP,SI,DI) * BP,SP寄存器称为指针寄存器,与SS联用。 * DI,SI寄存器称为变址寄存器,与DS联用,在串指令中,SI,DI均为隐含寻址,此时,SI与DS联用, DI与ES联用。
3. 指令指针和状态寄存器 (1) 指令指针 I P 是一个16位的专用寄存器。当BIU从内存中取出一条指令,自动修改IP,始终指向下一条将要执行的指令在现行代码段中的偏移量。 8086/8088中的某些指令执行后会改变IP的内容,但用户不能编写指令直接改变IP 的内容。 * I P是指令地址在代码段内的偏移量(又称偏移地址),IP要与CS配合构成共同物理地址。 (2) 状态(标志)寄存器PSW PSW 是一个16位的专用寄存器(6位状态位,3位控制位)存放运算结果的特征。
D0 D2 D4 D6 D15 D11 D8 CF(进位标志): 当运算结果的最高位(D7/D15)出现进位(借位)时,CF=1; 微机原理及应用讲稿 D0 D2 D4 D6 D15 D11 D8 CF(进位标志): 当运算结果的最高位(D7/D15)出现进位(借位)时,CF=1; PF(奇偶校验标志):当运算结果中“1”的个数为偶数时,PF=1; AF(辅助进位标志):当结果的D3向D4(低位字节)出现进位(借位)时,AF=1; ZF (零标志): 当运算结果为零时,ZF=1; SF (符号标志): 当运算结果的最高位D7/D15为1时,SF=1; OF (溢出标志):当运算结果超过机器所能表示的范围时,OF=1; DF(方向标志):在字符串操作时,决定操作数地址调整的方向,DF=1,为递减; IF (中断允许标志): IF=1,允许CPU响应外部的可屏蔽中断; TF (陷阱标志):当TF=1,CPU每执行一条指令便自动产生一个内部中断, 在中断服务程序中可检查指令执行情况。
4. 段寄存器 8086/8088按信息存储的不同性质分为四类,分别由四个段寄存器存放该段的首地址,或称为段地址。 微机原理及应用讲稿 4. 段寄存器 8086/8088按信息存储的不同性质分为四类,分别由四个段寄存器存放该段的首地址,或称为段地址。 * CS(代码段寄存器)指向当前的代码段,指令由此段 取出; *SS (堆栈段寄存器)指向当前的堆栈段,栈操作的对象 是该段存储单元的内容; *DS(数据段寄存器)指向当前的数据段,该段中存放程 序的操作数; *ES (附加段寄存器)指向当前的附加段,主要用于字符 串数据的存放,也可以用于一般数据 的存放。
2.3 8088/8086的存储器组织 一、存储器地址的分段 1.存储器地址的分段 矛盾:存储器地址空间1MB,20bit地址线;内部各寄存器和数据总线均为16bit。 解决方法:将整个存储器分为若干个逻辑段,每段内地址16bit,即最多地址空间64KB。 允许各逻辑段在整个存储空间浮动,段与段之间可以是连续的,也可以是分开的或重叠的。
00000H 逻辑段2<=64KB 逻辑段1起点 逻辑段2起点 逻辑段3起点 逻辑段4起点 FFFFFH 逻辑段1<=64KB 逻辑段4<=64KB 逻辑段3<=64KB 每个段的首地址称为“段基值”, “段基值”必须能被16整除(XXXX0H)。 程序执行前,分别对相应的段寄存器CS,DS,SS,ES置“段基值”,若程序长度大于64KB,则可通过对CS送新的“段基值”将程序转移到新段中。
物理地址:信息在存储器中实际存放的地址; 微机原理及应用讲稿 2. 20位物理地址的形成 逻辑地址:允许在程序中编排的地址; 物理地址:信息在存储器中实际存放的地址; 对给定的任一存储单元,有两部分逻辑地址: 段基址(段地址)——由CS,DS,SS,ES决定 段内偏移量(段内有效地址)——(该单元相对于段基址的距离) 段地址 0000 段内有效地址 + 0000 物理地址(20bit) 16bit 20bit
3. 逻辑地址的来源; 操作类型 隐含段地址 替换段地址 偏移地址 取指令 CS 无 IP 堆栈操作 SS 无 SP 微机原理及应用讲稿 3. 逻辑地址的来源; 操作类型 隐含段地址 替换段地址 偏移地址 取指令 CS 无 IP 堆栈操作 SS 无 SP BP间址 SS CS、DS、ES EA 存/取操作数 DS CS、SS、ES EA 源字符串 DS CS、SS、ES SI 目的字符串 ES 无 DI EA---有效地址,
微机原理及应用讲稿 二、8086存储器的分体结构 1. 问题的提出: 8位机(MCS-51、8088)的存储器地址空间和数据存储格式以字节(8bit)为单位组织存储器地址空间,访问一次存储器,获得一个字节的数据。 而8086CPU的数据总线为16位,CPU除了可以对一个字节寻址外,还必须能进行一个字的读写。即:如何组织数据存储格式使CPU访问一次存储器,获得一个字的数据。
(1)将1M的存储空间分成两个存储体:偶地址和奇地址存储体 微机原理及应用讲稿 硬件条件: (1)将1M的存储空间分成两个存储体:偶地址和奇地址存储体 00000 00001 00002 00004 FFFFE FFFFF 00003 00005 512K*8bit A0 =0 A0=1 D0 D7 D8 D15 (2)将数据总线的低8位与偶地址存储体数据线相连,数据总线的高8位与奇地址存储体数据线相连。 (3)用地址线A0和BHE信号选择存储体
8086 地址 锁存 器 奇 存储 体 偶 A1—A19 A0 BHE A0—A19 D0—D7 D8—D15 微机原理及应用讲稿 8086 地址 锁存 器 奇 存储 体 偶 A1—A19 A0 BHE A0—A19 D0—D7 D8—D15 BHE A0 操作 总线使用情况 0 0 从偶地址开始读/写一个字 AD15--AD0 0 1 从奇地址开始读/写一个字节 AD15--AD8 1 0 从偶地址开始读/写一个字节 AD7--AD0 1 1 无效
微机原理及应用讲稿 数据存放格式条件: 存储器二个连续字节组成一个字,一个字中的每一个字节都有各自的字节地址。存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。若要求8086在一个总线周期访问一个整字(16位)时,则该字的地址为偶地址(“对准好”的字)。如果则该字的地址为奇地址(“未对准好”的字),则8086要用两个连续的总线周期访问一个整字,每个周期访问一个字节。 14230H 1422FH 1422EH 1422DH 字(16bit)数据地址1422EH 低位在低地址,高位在高地址 H(高8bit) L(低8bit) 字节地址
每执行一条POP指令,从堆栈弹出16bit数据, SP=(SP)+2。 三、堆栈的概念 堆栈是利用RAM区中某一指定区域(由用户规定),用来暂存数据或地址的存储区。 堆栈段是由段定义语句在内存中定义的一个段,段基址由SS指定。 堆栈存取数据的原则是“先进后出”,存取数据的方法是压入(PUSH)和弹出(POP)。 堆栈区的栈底是固定的最高地址,其栈顶根据堆栈数据的压入或取出的变化不断改变。栈顶是堆栈区的最低地址,用堆栈指针SP指示。 每执行一条PUSH指令, SP=(SP)-2,向堆栈压入16bit数据。 每执行一条POP指令,从堆栈弹出16bit数据, SP=(SP)+2。
例:执行压栈和出栈的过程 1、MOV SP,0100H 2、PUSH AX 3、PUSH BX 4、POP AX 5、POP BX (AX)=9536H (BX)=0475H (AX)=0475H (BX)=9536H 00FAH 00FBH 00FCH 00FDH 00FEH 00FFH 0100H 75H 04H 3、 (SP)-2→SP (BH)→00FDH (BL)→00FCH (SP)=00FCH 4、(00FCH)→ AL (00FDH)→AH (SP)+2→SP (SP)=00FEH 75H 04H 5、 (00FEH) →BL (00FFH) →BH (SP)+2→SP (SP)=0100H 36H 95H 36H 95H 2、 (SP)-2→SP (AH)→00FFH (AL)→00FEH (SP)=00FEH 1、设栈底 (SP)=0100H
2.4 8086的系统配置及引脚功能 一、 最小模式系统(MN/ MX引脚接+5V电源) 特点:系统中存储器芯片,I/O芯片不多; 2.4 8086的系统配置及引脚功能 8086CPU是16位处理器,采用40引脚的DIP封装。40条引脚信号按功能可分为4部分:地址总线,数据总线,控制总线以及其他(时钟、电源)。 一、 最小模式系统(MN/ MX引脚接+5V电源) 特点:系统中存储器芯片,I/O芯片不多; 地址总线由AD0~AD15,A16/ S3 ~A19/ S6通过8282锁存器构成; 数据总线直接由AD0~AD15构成(也可加总线驱动8286); 控制总线由CPU的控制线提供,构成一小型、单处理机系统。
8086 CPU 在最小模式系统中,还需加入: 1片8284A 3片8282/8283 2片8286/ 8287 8086最小组态系统配置图 存储器 8286 I/O接口 Vcc CLK MN/MX RD WR IO/M ALE A 16 -A 19 AD -AD 15 DT/R DEN INTA INTR READY RESET 8086 CPU STB T OE 数据总线 地址总线 8086最小组态系统配置图 时钟 发生器 BHE 在最小模式系统中,还需加入: 1片8284A 3片8282/8283 2片8286/ 8287
二、 最大模式(组态)系统(MN/ MX引脚接地) 系统控制信号由总线控制器8288提供, 用于多处理机和协处理机结构中。 8288为总线控制器,输入8086的总线状态信号,输出总线命令和控制信号。 8086最大组态系统配置图 8089为总线裁决器,用于裁决哪个处理器拥有对总线的使用权。
状态线S2、S1、S0的编码 S2 S1 S0 性能 中断响应 1 读 I/O 端口 写 暂停 H alt 取指 读存储器 写存储器 无源
共用信号线
* 8088的指令队列长度为4个字节,队列中出现1个空闲字 节时,BIU自动访问存储器取指补充指令队列; 微机原理及应用讲稿 三、 8088的引脚与8086的不同之处 * 8088的指令队列长度为4个字节,队列中出现1个空闲字 节时,BIU自动访问存储器取指补充指令队列; *8088的地址/数据复用线为8条,即AD7~AD0,访问1个字 需两个读写周期; * 8088 中的存储器/IO控制线为 IO /M ,与8086相反; * 8086的引脚BHE/S7在8088中为SS0 ,与DT/ R、IO/M一 起决定最小模式中的总线周期操作。
2.5 8086CPU时序 一. 指令周期、总线周期、时钟周期 指令周期(Instruction Cycle): 执行一条指令所需要的时间。 (一个指令周期由一个或若干个总线周期组成) 总线周期(Bus Cycle ): CPU完成对存储器或I/O端口一次访问所需的时间; 时钟周期(Clock Cycle):时钟频率的倒数,是CPU的时间基准(T状态);(若8086的主频为5MHZ,一个时钟周期为200ns)
一个总线周期一般由四个T组成。 T1:输出地址;T2、T3:传送数据。若存储器或外设速度慢,可插入等待周期Tw。 若一个总线周期后不执行下一个总线周期,即总线上无数据传输操作,系统总线处于空闲状态,此时执行空闲周期。
二. 几种基本时序 1. 读总线周期 存储器读时序 地址A19---A0 M / IO :在整个读周期有效, 0=I/O读,1=M读; ALE:T1期间出现正脉冲, 下降沿锁存地址信息; RD: 在T2-T3期间有效; DT/ R:在整个总线周期为低 电平,表示读周期; DEN:在T2-T3期间为低电 平,表示数据有效。 存储器读时序
存储器读时序说明 1、T1开始(T1下降沿) M/ IO=1,存储器操作 20位地址信号输出,BHE信号有效 ALE=1, DT/R=0允许CPU读入 2、T1上升沿 ALE=0锁存地址信号A19~A0, 3、T2开始 RD=0,存储器开始读 DEN=0,DB上允许数据有效 4、T4开始 DB上数据稳定。RD、DEN恢复为1,CPU获得数据 5、T4结束 DT/R=1,存储器读周期结束
具有等待状态的存储器读时序 8086在T3状态的的前沿采样READY线,若发现其为低,则在T3周期结束后,插入一个Tw状态。以后在每个Tw周期的前沿采样READY线,只有在发现它为高电平时,才在这个Tw结束后进入T4周期。 具有等待状态的存储器读时序
存储器写时序与存储器读时序相似,其不同点在于: 2. 存储器写周期 存储器写时序与存储器读时序相似,其不同点在于: AD15 ~ AD0:在T2~T4期间CPU送上欲输出的数据,而无高阻态; WR:在T2~T4期间WR有效; DT/R:在整个总线周期内为高,表示写周期,在接有数据收发器的系统中,用来控制数据传输方向。 存储器写时序
存储器写时序说明 1、T1开始 M/ IO=1,存储器操作 20位地址信号输出,BHE信号有效 ALE=1, DT/R=1,CPU输出 2、T1下降沿 ALE=0锁存地址信号A19~A0 3、T2开始 WR=0,存储器开始写 DEN=0,DB上允许数据有效 4、T4开始 数据已写至存储器 WR、DEN恢复为1 5、T4结束 写周期结束
3. 系统复位 系统复位,各寄存器的状态: 复位时序 当8086在RESET引线上检测到一个脉冲的正沿时,停止正在进行的所有操作,处于初始化状态,直到RESET信号变低。