1、第4章 Intel80X86 系列微处理器v4.1 8086/8088 微处理器概述v4.2 8086/8088 内部寄存器结构v4.3 8086/8088 的存储器组织和I/O组织v4.4 8086/8088 的内部结构v4.5 8086/8088 外特性引脚信号及其功能v4.6 8086/8088 最小工作模式及其系统结构v4.7 8086/8088 最大工作模式及其系统结构v4.8 8086/8088 总线时序v4.9 INTEL 80286 到 Pentium CPU4.1 8086/8088 微处理器概述 v1978年Intel公司推出了首枚16位微处理器8086,以后英特尔生产的8
2、0X86系列微处理器,均与其兼容。v1979年Intel公司推出了成本较低的Intel8088微处理器。v1981年IBM公司选择8088微处理器作为核心来设计IBM PC微计算机系统,推向市场后获得了巨大的成功,为后来的80 x86系列微处理器成为主流微计算机的处理核心打下了基础。4.1 8086/8088 微处理器概述 4.2 8086/8088 内部寄存器结构 v了解CPU内部寄存器结构并掌握其使用方法是进行汇编语言程序设计的关键和基础。v8086/8088 内部有14个16位的寄存器,可供程序直接使用。v按功能分为三组:通用寄存器组(8个)、段寄存器组(4个)和控制寄存器组(2个)。4
3、.2 8086/8088 内部寄存器结构 v4.2.1 通用寄存器组v4.2.2 段寄存器组v4.2.3 控制寄存器组4.2.1通用寄存器组 一数据寄存器二地址指针和变址寄存器 8086/8088 CPU 8086/8088 CPU有有8 8个通用寄存器。这个通用寄存器。这8 8个寄存个寄存器可以分为两类:数据寄存器和地址指针与变址器可以分为两类:数据寄存器和地址指针与变址寄存器。寄存器。一、数据寄存器 v数据寄存器包括4个16位寄存器AX、BX、CX和DX,通常用于存放参与运算的操作数和运算结果。v每一个数据寄存器又可将高、低8位分别作为两个独立的8位寄存器使用。它们的高8位分别记作AH、B
4、H、CH、DH,低8位分别记作AL、BL、CL、DL。二、地址指针和变址寄存器 地址指针和变址寄存器包括地址指针和变址寄存器包括4 4个个1616位寄存器位寄存器SPSP、BPBP、SISI和和DIDI。它们。它们主要是用来存放或指示操作数的偏移地址。其中主要是用来存放或指示操作数的偏移地址。其中SPSP、BPBP为地址指针为地址指针寄存器,寄存器,SISI、DIDI为变址寄存器。为变址寄存器。1.1.SPSP堆栈指针:堆栈指针:存放堆栈栈顶的偏移地址。堆栈操作指令存放堆栈栈顶的偏移地址。堆栈操作指令PUSHPUSH和和POPPOP根根据该寄存器得到操作数的偏移地址。据该寄存器得到操作数的偏移
5、地址。2.2.BPBP基址寄存器:基址寄存器:存放堆栈中数据的偏移地址。存放堆栈中数据的偏移地址。3.3.SISI源变址寄存器:源变址寄存器:用来存放源数据区的偏移地址。用来存放源数据区的偏移地址。4.4.DIDI目标变址寄存器:目标变址寄存器:用来存放目的数据区的偏移地址。用来存放目的数据区的偏移地址。所谓变址寄存器,是指它存放的地址在串操作指令中可以按照要求所谓变址寄存器,是指它存放的地址在串操作指令中可以按照要求自动增加自动增加/减少。减少。4.2.2 段寄存器组 v8086/8088 CPU的存储器采用分段管理,为此,8086/8088 内部设置了4个16位的段寄存器,CS代码段寄存器
6、、DS数据段寄存器、SS堆栈段寄存器和ES附加段寄存器,分别用于存放代码段、数据段、堆栈段和附加段的段基地址。v关于这4个寄存器的使用详见“4.3 8086/8088 的存储器组织和I/O组织”。4.2.3 控制寄存器组一IP指令指针二FLAGS标志寄存器 8086/8088 CPU 8086/8088 CPU包含包含2 2个个1616位的控制寄存器:指令指针位的控制寄存器:指令指针IPIP和标志寄存器和标志寄存器FLAGSFLAGS。一、IP 指令指针vIP 用于存放下一条要执行的指令的偏移地址。程序运行中,IP 的内容自动修改,始终指向下一条要执行的指令地址。vIP 起着控制指令执行流程的
7、作用,是一个十分重要的控制寄存器。正常情况下,程序不能直接修改 IP的内容,但当需要改变程序执行顺序时,如遇到中断指令或调用指令时,IP 中的内容将被自动修改。二、FLAGS 标志寄存器 vFLAGS 用于存放指令执行结果的特征和 CPU 工作方式。其内容通常称为处理器状态字(Processor Status Word,PSW)。vFLAGS 是一个16位寄存器,实际使用了9位。v9个标志分为状态标志和控制标志两类。图图4.3 4.3 标志寄存器标志寄存器1、状态标志 CF:进位标志。有进位或借位时,CF=1;否则 CF=0。PF:奇偶标志。低8位有偶数个“1”,PF=1;否则 PF=0。AF
8、:辅助进位标志。D3位有进位或借位时,AF1;否则AF0。ZF:零标志。结果为零,ZF1;否则 ZF0。SF:符号标志。结果为负数,SF1;否则 SF0。OF:溢出标志。发生溢出,OF1;否则 OF0。6个状态标志位用来表示运算结果的特征。状态标志位个状态标志位用来表示运算结果的特征。状态标志位的置位或清零,由的置位或清零,由CPUCPU根据运算过程和运算结果自动设置。根据运算过程和运算结果自动设置。2、控制标志 3个控制标志是用来控制CPU的工作方式的标志。IF:中断允许标志。用来控制对外部可屏蔽中断的响应。如果IF1,则允许CPU响应外部可屏蔽中断请求;否则CPU不响应外部可屏蔽中断请求。
9、DF:方向标志。用来控制串操作指令的执行。如果DF1,则串操作指令的地址自动减量修改,串数据的传送过程是从高地址到低地址进行;否则,串操作指令的地址自动增量修改,串数据的传送过程是从低地址到高地址进行。TF:陷阱标志,又称单步标志。当TF1时,微处理器就进入单步工作方式,每执行完一条指令便自动产生一个内部中断(称为单步中断),转去执行一个中断服务程序,可以借助中断服务程序来检查每条指令的执行情况;如果TF0,则CPU正常(连续)执行指令。4.3 8086/8088 的存储器组织和I/O组织v4.3.1 存储器的分段管理v4.3.2 物理地址与逻辑地址v4.3.3 物理地址的形成v4.3.4 堆
10、栈v4.3.5 存储器组织v4.3.6 I/O组织4.3.1存储器的分段管理 v为了实现对1MB单元的寻址,8086/8088系统采用了存储器分段技术。v存储器分段技术具体实现方法是:将1MB的存储空间分成许多逻辑段,每段最长64K字节单元,段内可以使用16位地址码进行寻址。每个逻辑段在实际存储空间中的位置是可以浮动的,逻辑段的起始地址可由段寄存器的内容来确定。实际上,段寄存器中存放的是段起始地址的高16位,称之为段基地址,逻辑段起始地址的低4位为0。图4.4 逻辑段在物理存储器中的位置 各个逻辑段在实各个逻辑段在实际的存储空间中可以际的存储空间中可以完全分开完全分开,也可以,也可以部部分重叠
11、分重叠,甚至,甚至完全重完全重叠叠。段的起始地址的。段的起始地址的计算和分配通常是由计算和分配通常是由操作系统完成的,并操作系统完成的,并不需要普通用户参与。不需要普通用户参与。4.3.2 物理地址与逻辑地址v物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。8086/8088系统的物理地址是20位,存储空间为2201M字节单元,地址范围从00000H到FFFFFH。CPU和存储器交换数据时所使用的就是20位的物理地址。v逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。程序设计时所涉及的地址是逻辑地址而不是物理地址。编程时不需要知道产生的代码或数据在存储
12、器中的具体物理位置。这样可以简化存储资源的动态管理。v段基地址(段地址或段基址):段的起始地址的高16位。v偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。在在8086/80888086/8088计算机系统中,每个存储单元可以看成具有两种地址:物计算机系统中,每个存储单元可以看成具有两种地址:物理地址和逻辑地址。理地址和逻辑地址。4.3.2 物理地址与逻辑地址v给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。在8086/8088系统中,段基地址和偏移量都是16位的。段基地址由16位的段寄存器CS、DS、SS和ES提供;偏移量通常由BX、BP、SP、SI、DI、IP
13、或这些寄存器的组合形式来提供。v例如,8086/8088开机后执行的第一条指令的逻辑地址由CS和IP两个寄存器给出,其逻辑地址表示为FFFFH:0000H,对应的物理地址为FFFF0H。4.3.3 物理地址的形成v8086/8088访问存储器时的20位物理地址可由逻辑地址转换而来。v转换方法:将段寄存器中的16位段基地址左移4位(低位补0),再与16位的偏移量相加,即可得到所访问存储单元的物理地址。v计算公式:物理地址段基地址16+偏移量 上式中的“段基地址16”在微处理器中是通过将段寄存器的内容左移4位(低位补0)来实现的,得到的是20位的段的起始地址。段的起始地址与偏移量相加的操作由20位
14、地址加法器来完成,图4.5 8086/8088物理地址的产生【例例4.14.1】设代码段寄存器设代码段寄存器CSCS中的内容为中的内容为4232H4232H,指令指针寄,指令指针寄存器存器IPIP中的内容为中的内容为0066H0066H,即,即CSCS4232H4232H,IPIP0066H0066H,则,则访问代码段存储单元的物理地址计算如下:访问代码段存储单元的物理地址计算如下:所以,访问代码段存储单元的物理地址为所以,访问代码段存储单元的物理地址为42386H42386H。【例例4.24.2】设数据段寄存器设数据段寄存器DSDS的内容为的内容为1234H1234H,基址寄存器,基址寄存器
15、BXBX的内容为的内容为0023H0023H,即,即DSDS1234H1234H,BXBX0023H0023H,则访问数据,则访问数据段存储单元的物理地址计算如下:段存储单元的物理地址计算如下:所以,访问数据段存储单元的物理地址为所以,访问数据段存储单元的物理地址为12363H12363H。4.3.4 堆栈v堆栈是存储器中的一个特殊的数据存储区,采用“后进先出”的原则存放数据,通常它的一端(栈底)是固定的,另一端(栈顶)是浮动的,信息的存入和取出都只能在浮动的一端进行。v堆栈主要用来暂时保存程序运行时的一些地址或数据信息。v例如:当CPU执行调用指令时,用堆栈保存程序的返回地址(亦称断点地址)
16、;在中断处理时,通过堆栈“保存现场”和“恢复现场”;有时也利用堆栈为子程序传递参数。4.3.5 存储器组织 8086CPU 8086CPU 有四个逻辑段,分别是代码段、数据段、堆栈有四个逻辑段,分别是代码段、数据段、堆栈段和附加段。段和附加段。l代码段代码段:用于存放指令代码。代码段寄存器:用于存放指令代码。代码段寄存器CSCS存放代码段存放代码段的段基地址,偏移量由指令指针的段基地址,偏移量由指令指针IPIP提供。提供。l数据段数据段和和附加段附加段:用于存放操作数。数据段寄存器:用于存放操作数。数据段寄存器DSDS存放存放数据段的段基地址,附加段段寄存器数据段的段基地址,附加段段寄存器ES
17、ES存放附加段的段基存放附加段的段基地址。地址。l堆栈段堆栈段:堆栈段用于暂时保存程序运行中的一些数据和地:堆栈段用于暂时保存程序运行中的一些数据和地址信息。址信息。4.3.6 I/O组织 8086/8088 I/O 8086/8088 I/O端口为端口为64KB64KB,因此只需要,因此只需要1616跟地址线跟地址线A A1515A A0 0。对对I/OI/O端口寻址时不需要使用段寄存器,高位地址端口寻址时不需要使用段寄存器,高位地址A A1919A A1616输出输出0 0。4.4 8086/8088 的内部结构 8086/8088 8086/8088微处理器由两个独立的部件构成,一个是微
18、处理器由两个独立的部件构成,一个是总总线接口部件线接口部件BIUBIU(Bus Interface Unit)(Bus Interface Unit),另一个是,另一个是执行部执行部件件EUEU(Execution Unit)(Execution Unit)。4.4.1总线接口部件BIU BIUBIU负责完成微处理器内部与外部负责完成微处理器内部与外部(内存储器和内存储器和I/OI/O端口端口)的信息传送,的信息传送,即负责取指令和存取数据。即负责取指令和存取数据。BIUBIU由以下由以下5 5个部分组成:个部分组成:4 4个个1616位的段寄存器位的段寄存器:CSCS、DSDS、SSSS和和
19、ESES,分别用于存放当前代码段、,分别用于存放当前代码段、数据段、附加段和堆栈段的段基地址。数据段、附加段和堆栈段的段基地址。1616位指令指针位指令指针IPIP:用于存放下一条要执行的指令的偏移地址。:用于存放下一条要执行的指令的偏移地址。2020位物理地址加法器位物理地址加法器:用于将来自于段寄存器的:用于将来自于段寄存器的1616位段地址左移位段地址左移4 4位位后与来自于后与来自于IPIP寄存器或寄存器或EUEU提供的提供的1616位偏移地址相加,形成一个位偏移地址相加,形成一个2020位的位的物理地址。物理地址。6/46/4字节的指令队列:字节的指令队列:用于存放预取的指令用于存放
20、预取的指令,减少等待时间减少等待时间,避免取指避免取指令和取操作数发生冲突令和取操作数发生冲突,从而提高运行效率。从而提高运行效率。总线控制逻辑总线控制逻辑:用于产生并发出总线控制信号,以实现对存储器和:用于产生并发出总线控制信号,以实现对存储器和I/OI/O端口的读写控制。它将端口的读写控制。它将CPUCPU的内部总线与的内部总线与1616位的外部总线相连,位的外部总线相连,是是CPUCPU与外部进行数据交换的通路。与外部进行数据交换的通路。4.4.2执行部件EU 执行部件执行部件EUEU的功能就是负责指令的执行。的功能就是负责指令的执行。EUEU由以下几部分组成:由以下几部分组成:算术逻辑
21、单元算术逻辑单元ALUALU:ALUALU完成完成1616位或位或8 8位的二进制数的算术位的二进制数的算术/逻辑运算,逻辑运算,绝大部分指令的执行都由绝大部分指令的执行都由ALUALU完成。在运算时,数据先传送至完成。在运算时,数据先传送至1616位的位的暂存寄存器中,经暂存寄存器中,经ALUALU处理后,运算结果可通过内部总线送入通用寄处理后,运算结果可通过内部总线送入通用寄存器或由存器或由BIUBIU存入存储器。存入存储器。标志寄存器标志寄存器FLAGSFLAGS:它用来反映:它用来反映CPUCPU最后一次运算结果的状态特征或存最后一次运算结果的状态特征或存放控制标志。放控制标志。FLA
22、GSFLAGS为为1616位,其中位,其中7 7位未用。位未用。通用寄存器组通用寄存器组:它包括:它包括4 4个数据寄存器个数据寄存器AXAX、BXBX、CXCX、DXDX,其中,其中AXAX又称又称累加器,累加器,4 4个地址指针和变址寄存器,即基址寄存器个地址指针和变址寄存器,即基址寄存器BPBP、堆栈指针寄、堆栈指针寄存器存器SPSP、源变址寄存器、源变址寄存器SISI和目的变址寄存器和目的变址寄存器DIDI。EUEU控制系统控制系统:它接收从:它接收从BIUBIU中指令队列取来的指令,经过指令译码形中指令队列取来的指令,经过指令译码形成各种定时控制信号,向成各种定时控制信号,向EUEU
23、内各功能部件发送相应的控制命令,以完内各功能部件发送相应的控制命令,以完成每条指令所规定的操作。成每条指令所规定的操作。4.4.3 BIU与EU的动作协调原则 总线接口部件(总线接口部件(BIUBIU)和执行部件()和执行部件(EUEU)按以下流水线技术原则协调)按以下流水线技术原则协调工作,共同完成所要求的信息处理任务。工作,共同完成所要求的信息处理任务。每当每当80868086的指令队列中有两个空字节,或的指令队列中有两个空字节,或80888088的指令队列中有一个空的指令队列中有一个空字节时,字节时,BIUBIU就会自动把指令取到指令队列中。其取指的顺序是按照就会自动把指令取到指令队列中
24、。其取指的顺序是按照指令在程序中出现的前后顺序。指令在程序中出现的前后顺序。每当每当EUEU准备执行一条指令时,它会从准备执行一条指令时,它会从BIUBIU部件的指令队列前部取出指部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行该指令。在执行指令的过程中,令的代码,然后用几个时钟周期去执行该指令。在执行指令的过程中,如果需要访问存储器或者如果需要访问存储器或者I/OI/O端口,那么端口,那么EUEU就会请求就会请求BIUBIU,进入总线周,进入总线周期,完成访问内存或者期,完成访问内存或者I/OI/O端口的操作;如果此时端口的操作;如果此时BIUBIU正好处于空闲状正好处于空闲状态,
25、会立即响应态,会立即响应EUEU的总线请求。如的总线请求。如BIUBIU正将某个指令字节取到指令队正将某个指令字节取到指令队列中,则列中,则BIUBIU将首先完成这个取指令的总线周期,然后再去响应将首先完成这个取指令的总线周期,然后再去响应EUEU发发出的访问总线的请求。出的访问总线的请求。当指令队列已满,且当指令队列已满,且EUEU又没有总线访问请求时,又没有总线访问请求时,BIUBIU便进入空闲状态。便进入空闲状态。在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,生了变化
26、,则指令队列中已经装入的字节被自动消除,BIUBIU会接着往会接着往指令队列装入转向后的另一程序段中的指令代码。指令队列装入转向后的另一程序段中的指令代码。4.5 8086/8088外特性引脚信号及其功能v8086/8088CPU采用40个引脚的双列直插式封装形式。v为了减少芯片的引脚,8086/8088CPU采用了引脚复用技术,因此部分引脚具有双重功能。这些双功能引脚的功能转换分两种情况:一种是采用了分时复用的地址/数据和地址/状态引脚;另一种是根据不同的工作模式定义不同的引脚功能。4.5.1 8086外特性引脚信号及其功能 一电源、地和时钟信号二系统复位和准备好信号三地址、数据和状态信号
27、四中断信号五读、写选通信号六模式选择信号七最小工作模式下的专用信号八最大工作模式下的专用信号一、电源、地和时钟信号1.VCC电源端:接入的电压为+5V10%。2.GND接地端:两条GND均应接地。3.CLK时钟信号:输入,提供CPU和总线控制的基本定时脉冲。8086CPU要求时钟信号是占空比为33的非对称性的脉冲信号。二、系统复位和准备好信号1.RESET 复位信号:输入,高电平有效,用来停止CPU的现行操作,完成CPU内部的复位过程。该信号必须由低到高,并且至少要保持4个时钟周期的高电平,才能完成复位CPU。2.READY 准备就绪信号:输入,高电平有效,用来确认CPU访问的存储器或I/O设
28、备是否完成数据传送。该信号是为了CPU与低速的存储器或I/O设备之间实现速度匹配所设置的。当READY为高电平时,表示内存或I/O设备已准备就绪,可以立即进行一次数据传输。3.TEST#测试信号:输入,低电平有效。该信号用于协调8086 CPU与8087协处理器的操作。表4.1 复位后内部寄存器状态 寄存器名称寄存器名称状态状态FLAGS清除IP0000HCSFFFFHDS0000HSS0000HES0000H指令缓冲队列清除三、地址、数据和状态信号 1.ADl5AD0 地址数据复用总线:双向,三态,分时复用。在总线周期的T1状态,输出地址;在总线周期的T2T4状态,作为数据线使用。2.A19
29、/S6A16/S3 地址/状态复用线:输出,三态,分时复用。在总线周期的T1状态,用来输出地址的最高4位,在总线周期的其他状态用来输出状态信息。3.BHE#/S7 总线高字节允许/状态信号S7:输出,三态,分时复用。在总线周期的T1状态,有效时表示选择高8位数据。在总线周期的其他状态用来输出状态,S7未定义。lS7未定义。lS6总是为0。lS5表明中断允许标志的当前设置情况。如果IFl,则S51,表示当前允许可屏蔽中断;如果IF0,则S50,表示当前禁止一切可屏蔽中断。lS4和S3状态的组合指出当前正使用哪个段寄存器。表4.2 S4、S3代码组合与段寄存器的关系 S4S4S3S3当前使用的段寄
30、存器当前使用的段寄存器00附加段寄存器ES01堆栈段寄存器SS10代码段寄存器CS或未使用任何段寄存器11数据段寄存器DS四、中断信号vINTR 可屏蔽中断请求信号:输入、高电平有效。当该信号变为高电平时,表示外部设备有可屏蔽中断请求。CPU在每个指令周期的最后一个T状态检测此引脚,一旦测得此引脚为高电平,并且中断允许标志位IF=1,则CPU在当前指令周期结束后,转入中断响应周期。vNMI 非屏蔽中断请求信号:输入,上升沿有效。该中断请求不能用软件进行屏蔽,不受中断允许标志IF的控制。当该引脚上电平有由低到高的变化,就会在当前指令结束后引起中断。NMI中断通常由电源掉电等紧急情况引起。v IN
31、TA#中断响应信号:(最小工作模式下的专用信号)输出,低电平有效,在最小模式下,CPU响应可屏蔽中断后发给请求中断设备的应答信号,是对中断请求信号INTR的响应。五、读、写选通信号 1.RD#读信号:输出,三态,低电平有效,表示CPU正在对存储器或I/O端口进行读操作。在读总线周期的T2,T3,TW状态,均保持低电平。2.WR#写信号(最小工作模式下的专用信号):输出,三态,低电平有效,表示CPU正在对存储器或I/O端口进行写操作。在写总线周期的T2,T3,TW状态,均保持低电平。六、模式选择信号 v8086CPU有两种工作模式:最小工作模式和最大工作模式。vMN/MX#模式选择信号:用于选择
32、CPU工作在最大工作模式还是最小工作模式。当此引脚接+5V(高电平)时,CPU工作于最小工作模式;若接地(低电平),CPU工作于最大工作模式。v最小工作模式:系统中只有8086一个微处理器,系统中的所有总线控制信号都直接由8086产生。v最大工作模式:系统中含有两个或两个以上微处理器,其中一个是主处理器8086,其它为协处理器,总线控制信号由芯片8288产生。v由于在不同工作模式下,引脚2431有着不同的名称和定义,因此称为专用引脚信号,除了引脚2431外,其它引脚信号称为公共引脚信号。七、最小工作模式下的专用信号 1.HOLD 总线保持请求信号:输入,该信号是最小模式系统中除主CPU以外的其
33、他总线控制器(如DMA控制器)申请使用系统总线的请求信号。2.HLDA 总线保持响应信号:输出,该信号是对HOLD的响应信号。3.WR#写信号。4.M/IO#存储器/IO访问控制信号:输出。高电平时访存,低电平时访问IO。5.DEN#数据允许信号:输出,作为双向数据总线收发器8286的选通信号。它在每一次存储器访问或I/O访问或中断响应周期有效。6.DT/R#数据发送/接收控制信号:输出,三态,使用8286作为数据总线收发器时,8286的数据传送方向由控制。数据发送时1;数据接收时0。7.ALE 地址锁存允许信号:输出、提供给地址锁存器8282的控制信号。8.INTA#中断响应信号。八、最大工
34、作模式下的专用信号 1.S2#,S1#,S0#总线周期状态信号:输出,三态,这三个信号组合起来指出当前总线周期所进行的操作类型。2.RQ#/GT1#,RQ#/GT0#总线请求信号总线请求允许信号:这两个引脚是双向的,信号为低电平有效。这两个信号是最大模式系统中主处理器8086和其他协处理器(如8087,8089)之间交换总线使用权的联络控制信号。3.LOCK#总线封锁信号:输出,三态,低电平有效。当为低电平时,表明此时CPU不允许其他总线主设备占用总线。4.QS1,QS0指令队列状态信号:输出,QS1,QS0两信号用来指示CPU内指令队列的当前状态,以使外部处理器(主要是协处理器8087)对C
35、PU内指令队列的动作进行跟踪。4.5.2 8088与8086引脚的不同之处 8088CPU为准16位机,虽然其内部结构与8086基本相同,但是只能按8位与外部进行数据交换,因此8088的某些引脚信号与8086有所不同。不同的引脚包括:v8088的地址/数据复用线为8条,即AD7AD0,而A15A8为单一的地址线;v8088中无BHE#信号,引脚34为状态信号线SS0#。v8086与8088的28号引脚在最小模式下都是用来选择存储器或I/O的,但二者选择电平相反。8088的存储器/IO控制线为 IO/M#,即该信号为高电平时是I/O端口访问;为低电平时是存储器访问。这与8086的信号刚好相反。4
36、.6 8086/8088最小工作模式及其系统结构 v4.6.1 8284A时钟发生器v4.6.2 总线分离与缓冲v4.6.3 最小工作模式下控制核心单元的组成4.6.1 8284A时钟发生器 8086/8088 8086/8088 系统采用系统采用 Intel 8284A Intel 8284A 作为时钟发生器。作为时钟发生器。8284A 8284A 将晶体振荡器的振荡频率分频后,向将晶体振荡器的振荡频率分频后,向 8086/8088 8086/8088 系系统提供符合要求的时钟脉冲统提供符合要求的时钟脉冲 CLKCLK、PCLK PCLK 和和 OSC OSC 信号;同信号;同时为复位信号时
37、为复位信号 RESET RESET 和准备好信号和准备好信号 READY READY 进行同步。进行同步。一、8284A的引脚及其功能 8284A 8284A为为1818引脚双列直插式封装。引脚双列直插式封装。主要引脚主要引脚及其功能如下:及其功能如下:1.1.OSCOSC:晶振输出端。晶振输出端。2.2.CLKCLK:系统时钟信号输出端。系统时钟信号输出端。3.3.PCLKPCLK:外设时钟信号输出端。外设时钟信号输出端。4.4.RES#RES#:复位输入端。复位输入端。5.5.RESETRESET:复位信号输出端。复位信号输出端。6.6.READYREADY:准备好信号输出端。准备好信号输
38、出端。7.7.RDY1RDY1、RDY2RDY2:准备好信号输入端。:准备好信号输入端。8.8.AEN1#AEN1#、AEN2AEN2#:对应:对应RDY1RDY1、RDY2RDY2的允许控的允许控制信号输入端。制信号输入端。9.9.VccVcc:电源输入端。电源输入端。10.10.GNDGND:接端地。接端地。二、8284A的功能结构 8284A内部电路分为三大内部电路分为三大模块:模块:1.时钟信号产生电路。时钟信号产生电路。2.RESET信号产生电路。信号产生电路。3.READY信号产生电路。信号产生电路。三、时钟信号产生电路 在在IBM PC/XT机中,机中,8284A外接石英晶体振荡
39、器的振荡频率外接石英晶体振荡器的振荡频率fc为为14.31818MHz,因此,因此OSC、CLK和和PCLK信号的频率分别为信号的频率分别为14.31818MHz、4.77MHz和和2.385MHz。四、RESET信号产生电路 通过加电与按键复位电路产生的通过加电与按键复位电路产生的RES#RES#信号经过信号经过82848284同步后输出符合同步后输出符合系统要求的系统要求的RESETRESET信号。信号。4.6.2总线分离与缓冲 8086/8088CPU 8086/8088CPU 的地址总线和数据总线分时复用,然的地址总线和数据总线分时复用,然而而IBM PC/XTIBM PC/XT机系统
40、总线的地址总线和数据总线不是分时机系统总线的地址总线和数据总线不是分时复用的,因此需要解决这一问题。复用的,因此需要解决这一问题。利用利用 8 8 位锁存驱动器位锁存驱动器 Intel 8282 Intel 8282 和和 8 8 位双向数据位双向数据收发器收发器 Intel 8286 Intel 8286 可以实现总线分离,并提高总线的负可以实现总线分离,并提高总线的负载能力。载能力。一、系统地址总线的产生 锁存器实现系统地址总线锁存器实现系统地址总线 8086CPU8086CPU最小工作模式下系统地址总线的形成最小工作模式下系统地址总线的形成二、系统数据总线的产生 数据收发器形成数据总线数
41、据收发器形成数据总线8086CPU8086CPU 最小工作模式下数据地址总线的形成最小工作模式下数据地址总线的形成4.6.3最小工作模式下控制核心单元的组成4.7 8086/8088 最大工作模式及其系统结构v4.7.1总线控制器 8288v4.7.2最大工作模式下控制核心单元的组成4.7.1 总线控制器 8288 在最小工作模式下,总线控制信号由在最小工作模式下,总线控制信号由CPUCPU本身产生,本身产生,在最大工作模式下总线控制信号由总线控制器在最大工作模式下总线控制信号由总线控制器82888288产生。产生。82888288根据根据CPUCPU在执行指令时提供的状态信号在执行指令时提供
42、的状态信号 ,产生满足定时关系的存储器和产生满足定时关系的存储器和I/OI/O的读写信号及地址锁存的读写信号及地址锁存和数据收发控制信号。和数据收发控制信号。S2S1S04.7.2最大工作模式下控制核心单元的组成4.8 8086/8088 总线时序v4.8.1 时钟周期、总线周期和指令周期v4.8.2 存储器与 I/O 的读操作总线时序v4.8.3 存储器与 I/O 的写操作总线时序4.8.1时钟周期、总线周期和指令周期 v8086/8088 CPU 采用同步控制方式,因此必须具有基准时钟信号,该信号的周期称为时钟周期。时钟周期是CPU的基本时间计量单位,它由计算机主频决定,例如8086主频为
43、5MHz,则时钟周期为200ns。vCPU执行一个总线(读/写)操作所需要的时间称为总线周期。或者说,总线周期是CPU从存储器或I/O端口存取一个字节(或一个字)所需要的时间。按照数据传输方向来分,总线操作可以分为总线读操作和总线写操作。总线读操作是指CPU从存储器或I/O端口读取数据;总线写操作是指CPU将数据写入存储器或I/O端口。8086/8088CPU的一个基本的总线周期由4个时钟周期组成。vCPU执行一条指令所需要的时间称为指令周期。8086/8088 CPU 完成一条指令需要一个或若干个总线周期。4.8.2存储器与I/O的读操作总线时序4.8.3存储器与I/O的写操作总线时序4.9 INTEL80286 到 Pentium CPU v4.9.1 80286v4.9.2 80386v4.9.3 80486v4.9.4 Pentium(奔腾)图图4.3 4.3 标志寄存器标志寄存器图4.5 8086/8088物理地址的产生 4.6.3最小工作模式下控制核心单元的组成4.8.2存储器与I/O的读操作总线时序4.8.3存储器与I/O的写操作总线时序作业 P69 1、5、6、7、9、19、20