8088的引脚

8086/8088微处理器的功能结构

1.8088 与 8086 的主要区别

8088 与 8086 同属于第三代 16 位的微处理器。这两款 CPU 的硬件结构没有太大的区别,二者的主要区别是在数据总线宽度,8086 的数据总线宽度为 16 位,而 8088 的数据总线宽度为 8 位。在内部结构上,两款微处理器都有指令队列,8086 的指令就绪队列长度为 6 字节,而 8088 的指令就绪队列长度为4 字节。

2.8088 的功能结构

8088 微处理器包含两大功能部件,即执行单元(Execution Unit,EU)和总线接口单元(Bus Interface Unit,BIU)。

执行单元的主要功能是译码分析指令,执行指令,暂存中间运算结果并保留结果特征。

执行单元包括 EU 控制器、算术逻辑运算单元 ALU、通用寄存器组 AX、BX、CX、DX、SP、BP、DI、SI,专用寄存器、状态标志寄存器(FLAGS)等部件,这些部件的宽度都是 16 位。

  • 执行单元的操作过程:

    执行单元通过 EU 控制电路从指令队列中取出指令代码,并对指令进行译码形成各种操作控制信号,控制 ALU 完成算术或逻辑运算,并将运算结果的特征保存在标志寄存器 FLAGS 中;控制其它各部件完成指令所规定的操作。如果指令队列为空,EU 就等待。

总线接口单元负责 CPU 与内存或输入/输出接口的信息传送,包括取指令、取操作数、保存运算结果

总线接口单元包括指令队列、地址加法器、段寄存器、指令指针寄存器和总线控制逻辑。

  • 总线单元的操作过程

    当 EU从指令队列中取走指令,指令队列出现两个或两个以上的字节空间,且 EU 未向 BIU 申请读/写存储器操作数时,BIU 就顺序地预取后续指令的代码,并填入指令队列中。在 EU 执行指令过程中,BIU负责从指定的内存单元或外设读取 EU 需要的数据,并负责将 EU 运算结果存储到存储器。当 EU 执行跳转指令时,BIU 就使指令队列复位(指令队列清空),并立即从新地址取出指令传送给 EU 去执行,然后再读取后续的指令序列填满指令队列。

3. 指令流水线

在 8086/8088CPU 中,EU 和 BIU 两部分按流水线方式工作。EU 从 BIU 的指令队列中取指令并
执行指令。在 EU 执行指令期间,BIU 可以取指令放在指令队列中。EU 执行指令和 BIU 取指令同时进行,节省了 CPU 访问内存的时间,加快了程序的运行速度。

8086/8088CPU 通过采用指令流水线技术,执行单元和总线接口单元与指令队列协同工作,实现指令的并行执行,提高了 CPU 的利用率,同时也降低了 CPU 对存储器存取速度的要求。

8088CPU的引脚功能

1.最小模式

用于由8088单一微处理器构成的小系统。在这种方式下,由8088CPU直接产生小系统所需要的全部控制信号。

2.最大模式

用于实现多处理机系统,系统控制总线由8088和总线控制器8288共同构成。在这种方式下,8088CPU不直接提供用于存储器或I/O读写的读写命令等控制信号,而是将当前要执行的传送操作类型编码为3个状态位输出,由总线控制器8288对状态信号进行译码产生相应控制信号。

3.8088 引脚定义

这张是8088最大模式和最小模式的合图。

下面是最大模式和最小模式一样的引脚含义:

  1. AD7~AD0:8088 地址/数据分时复用总线(address/data bus),双向,三态。

根据不同时钟周期的要求,决定当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻状态。

  1. A15~A8:8 位地址信号,输出,三态。在整个总线周期内提供存储器高 8 位地址。
  2. A19/S6~A16/S3:分时复用地址/状态总线(address/status bus),输出,三态。提供地址信号A19~A16 (20位地址总线的高4位地址 ) 及状态位 S6~S3。

S6=0,表示S6~S3当前表示的是状态位 ,S6=1,则表示当前表示的是地址

S5指示当前中断允许标志IF的状态。

S4,S3的代码组合用来指明当前正在使用的段寄存器。S4,S3的代码组合及对应段寄存器的情况。

S4S3 = 00->ES; 01->SS; 10->CS; 11->DS

  1. INTR: 中断请求(interrupt request)信号,输入,用来申请一个硬件中断。

    当 IF=1 时,若 INTR 保持高电平,则 8088 在当前指令执行完毕后就进入中断响应周期(INTA ̅̅̅̅̅̅̅变为有效)。

  2. NMI: 非屏蔽中断(non-maskable interrupt)输入信号。与 INTR 信号类似,但 NMI 中断不必检查 IF 标志位是否为 1。

  3. RD ̅̅̅̅: 读信号,输出,三态。当它为低电平时,CPU 通过数据总线接收来自存储器或 I/O设备的数据。

  4. READY:准备就绪信号,输入,高电平有效。 当READY信号高电平有效时,表示CPU要访问的存储器或I/O端口已经作好了输入/输出数据的准备工作 。

  5. TEST:等待测试控制信号,输入,低电平有效,CPU进入等待状态。

    信号用来支持构成多处理器系统,实现8086CPU与协处理器之间同步协调的功能,只有当CPU执行WAIT指令时才使用。

  6. RESET:复位信号,输入,高电平有效。

    RESET信号有效时,CPU立即结束现行操作,处于复位状态,初始化所有的内部寄存器为0000H(包括DS、SS、ES、IP、FLAGS和其余寄存器),并把指令队列置空,注意CS代码段寄存器置为FFFFH。复位后各内部寄存器的状态,当RESET信号由高电平变为低电平时,CPU从FFFF0H地址开始重新启动执行程序。

  7. CLK:时钟信号,输入。CLK为CPU提供基本的定时脉冲信号。

  8. VCC电源输入引脚。

  9. GND:接地引脚。

最小模式下

当MN/MX=1,即引脚接高电平时,CPU工作于最小模式。此时,引脚信号24~31的含义及其功能如下:

  1. HOLD:总线保持请求信号,输入,高电平有效。

    在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通HOLD引脚输入到CPU,请求CPU让出总线控制权。

  2. HLDA(holdacknowledge):总线保持响应信号,输出,高电平有效。

    HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。

  3. WR ̅̅̅̅̅: 写选通信号,输出,三态。指示 8086/8088 正在输出数据给存储器或 I/O 设备。在WR ̅̅̅̅为低电平期间,数据总线包含给存储器或 I/O 设备的有效数据。

  4. IO/M ̅: 输出,三态。该引脚选择存储器或 I/O 端口,即微处理器地址总线是存储器地址还是 I/O 端口地址。 为高电平时,访问存储器;为低电平时,访问I/O端口 。

  5. DT/R:数据发送/接收信号,输出,三态。

DT/R信号用来控制数据传送的方向。DT/R为高电平时,CPU发送数据到存储器或I/O端口;DT/R为低电平时,CPU接收来自存储器或I/O端口的数据。

  1. DEN:数据允许控制信号,输出,三态,低电平有效。信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。

  2. ALE:地址锁存允许信号,输出,高电平有效。

    CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。

  3. INTA:可屏蔽中断响应信号,输出,低电平有效。

    CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。

最大模式下

当MN/MX直接接地就以最大模式下工作

  1. RQ/,GT:总线请求允许信号输入/总线请求允许输出信号,双向,低电平有效。

    该信号用以取代最小模式时的HOLD/HLDA两个信号的功能,是特意为多处理器系统而设计的。

    当系统中某一部件要求获得总线控制权时,就通过此信号线向8086CPU发出总线请求信号,若CPU响应总线请求,就通过同一引脚发回响应信号,允许总线请求,表明8086CPU已放弃对总线的控制权,将总线控制权交给提出总线请求的部件使用。

    RQ/GT0优先级高于RQ/GT1。

  2. LOCK:总线封锁信号,输出,低电平有效。信号有效时,表示此时8086CPU不允许其他总线部件占用总线。(相当于INTA)

  3. S2,S1,S0:总线周期状态信号,输出,低电平有效。

  4. QS1,QS0:指令队列状态信号,输出。

    QS1和QS0信号的组合可以指示总线接口部件BIU中指令队列的状态,以便其他处理器监视、跟踪指令队列的状态。

    00->队列空闲;01->表明操作码的第一个字节;10->队列空;表明11->操作码的后续字节

    最小模式下不需要这两个引脚是因为单一微处理器EU 执行指令和 BIU 取指令不能同时进行,也就没有指令队列

注:

在最小模式下,SSO与IO/M、DT/R共同决定当前总线周期的状态。

在最大模式下,则是S2,S1,S0:共同决定当前总线周期的状态。

8088的时序

CPU通过总线进行一次读(或写)所需时间称为一个总线周期。

8088的一个标准总线周期由4个时钟周期组成,分别称为T1,T2,T3,T4。一个标准总线周期为800ns。

一般地,一条指令的执行需要若干个总线周期。

注意:

在微处理器的基本总线周期中,微处理器允许存储器或I/O存取数据的时间是一定的。(因为存储器或I/O不如CPU快,但CPU不愿意等太久)。8088允许存储器存取数据的时间是460ns(5MHz时钟)。如果存储器或I/O的存取时间超过460ns,则需要在总线周期中插入READY信号。

实现过程:

8088的基本读写时序中,在T3开始处,CPU采样READY信号。若此时READY是低电平,则T3之后将会插入一个等待时钟周期(Tw),这一时钟周期使存储器存取数据时间延长200ns。

在Tw的开始时刻,CPU还要检查READY信号的状态,如果仍为低电平,则再插入一个Tw。此过程一直持续到某个Tw开始时,READY变成有效的高电平,这时总线周期才进入T4时钟周期。

8088CPU系统总线形成

1.总线缓冲与锁存

8088微处理器的地址线由A19A16、A15A18和AD7~AD0组成,都是分时复用信号线,所以必须从分时复用的引脚中将地址、数据线分离,且必须对地址信息锁存以保持稳定。

8282是带有三态输出的8D锁存器,具有8个数据输入端和8个数据输出端

控制信号:选通输入STB=1时,数据输入端的数据就被锁存在8282中;

输出使能OE=0时,8282锁存的数据就通过输出端输出

下图使用了三片8282将地址锁存起来,这 是因为8282只具有8位锁存功能

2.最小模式下系统总线的形成

8088 微处理器工作在最小模式下,系统所有控制信号由 CPU 自身产生。最小模式下系统
总线包括数据总线 D0~D7、地址总线 A0~A19,主要的控制信号有RD ̅̅̅̅、WR ̅̅̅̅̅、IO/M ̅和INTA ̅̅̅̅̅̅̅。

3.最大模式下系统总线的形成

8088 工作在最大模式,系统的一些控制信号由总线控制器 8282 产生。地址总线和数据总
线的生成与最小模式一样。最大模式仅仅用作系统包含 8087 算术协处理器的情况。
最大模式下系统总线包括数据总线D0D7、地址总线A0A19,主要的控制信号有MEMR ̅̅̅̅̅̅̅、
MEMW ̅̅̅̅̅̅̅、 IOR ̅̅̅̅ 、IOW ̅̅̅̅、INTA ̅̅̅̅̅。

posted @ 2020-04-24 21:24  Hhhighway  阅读(9009)  评论(0编辑  收藏  举报