§2.5.3 最大组态
当引脚MN/MX接地时,系统处于最大组态。
1、QS1、QS0(Queue Status,输出,引脚24、25)
队列状态信号,反映CPU内部的指令队列情况。设置这两个引脚的目的在于让数学协处理器8087追踪8086的指令队列,以便使8087进行指令的扩展处理。每种状态和指令的关系如表2-4所示。
表2-4指令队列状态
表2-5 总线周期状态信号
2、S2、S1、S0(Bus Cycle Status,输出,三态,引脚28、27、26)
总线周期状态信号。表示总线周期的类型,总向控制器8288根据这些信号产生总线控制信号,如表2-5所示。
3、RQ/GT1、RQ/GT0(Request/Grant,双向,引脚30,31)
最大组态时使用的总线请求/允许信号。请求和允许均在同一根信号线上传送,两根信号线可以连接两组总线主设备,其中RQ/GT0比RQ/GT1的优先权较高,如图2-16所示。
请求和允许的顺序如下:
(1) 请求:外部的总线主设备发出一个宽度为一个时钟周期的脉冲给CPU,表示总线请求。(相当于最小组态时的HOLD信号)。
(2) 允许:CPU在下一个 或 期间,在同一根信号线上发出一个宽度为一个时钟周期的脉冲给请求总线的主设备,表示允许使用总线,同时,CPU释放总线(其信号浮空)。(相当于最小组态时的HLDA信号)。
(3) 释放:总线主设备使用完总线后,在同一根信号线上发出一个宽度为一个时钟周期的脉冲给CPU,表示释放总线。CPU检测到该信号后,又获得总线控制权。
4、LOCK(Bus Lock,输出,三态,引脚29)
总线锁定信号(或称总线封锁信号),低电平有效。某指令被执行时,如果不希望其他总线主设备占用总线而使该指令被暂停,则在该指令前加"前缀指令"LOCK,例如: LOCK XCHG AL,Varible 。CPU在执行上面的指令时,输出总线锁定信号LOCK,此时,即使有总线主设备请求总线,CPU要等到该指令执行完后,才允许总线主设备使用总线。在DMA期间,LOCK端被浮空而处于高阻状态。
图2-17是8086在最大模式下的典型配置。
§2.5.4其他信号
1、AD15~AD0(Address /Data ,双向,三态)
分时复用总线,在AD15~AD0引脚上,在T1时刻出现地址信号AD15~AD0,地址锁存器8282把这些地址信号锁存起来,用以指出CPU访问存储器或I/O的地址。在T2、T3、TW、和T4时刻,这些引脚作为数据的输入/输出引脚。
2、A19/S6~A16/S3(Address /Status,输出,三态)
这些引脚也是分时复用的,在T1时刻出现地址信号的高4位A19/S6,地址锁存器8282也把这4位地址信号锁存起来。在T2、T3、TW和T4时刻,这些引脚的输出S6~S3,表示8086CPU的状态,S4、S3用以指示是哪一个段寄存器正在被使用,其编码如表2-6所示。S5表示允许中断标志位,它在每个时钟周期的开始时修改;S6始终为低指示8086在使用总线;S7是输出信号,低电平有效,在DMA方式时,此线悬空,S7、S6、S5如表2-7所示。
表2-6 段寄存器的使用状况(S4、S3)
表2-7 S5、S6、S7
3、BHE/S7(Bus High Enable /Status,输出,三态,第34脚)
该引脚也是分时复用的,在T1时刻出现BHE信号,地址锁存器8282也把BHE信号锁存起来。在T2、T3、TW和T4时刻,该引脚的输出状态信号S7如图2-18所示。
8086CPU的数据总线为16根,分为高8位和低8位两组。两组数据总线可以同时使用或单独使用,BHE信号表示高8位数据总线有效。一般用BHE信号和A0信号的组合,表示在数据总线上传送的信息是字或字节,并指出在哪8位数据线上传送,如表2-8所示。
表2-8 存储体的选择
4、READY(输入,第22脚)
准备就绪信号。当CPU读写存储器或I/O设备时,如果存储器或I/O设备"就绪"(CPU读取时,存储器或I/O设备已把数据送到总线上;CPU写入时,存储器或I/O设备已从总线上获得数据),则使READY信号为高电平,若未就绪,则使READY信号为低电平。
CPU在总线周期的T2结束、T3开始时,检查READY信号线,若READY=1(高电平),CPU进入T4状态,完成本次操作。若READY=0(低电平),CPU在TW状态后插入一个或几个T4状态,直到存储器或I/O设备使READY信号为高电平,CPU进入 状态,完成本次操作。
5、INTR(Interrupt Request,输入,第18引脚)
可屏蔽中断请求信号,高电平有效。CPU每执行完一条指令时,均检查INTR信号线的状态。若INTR为高电平,表示有某个外部设备在申请中断,CPU是否响应该申请(是否转入对应的中断处理程序),取决于CPU内部标志寄存器的中断允许位IF(Interrupt Enable Flag)。若IF=1(允许),则CPU进入中断响应周期,然后执行对应的中断处理程序;若IF=0(禁止),则CPU不处理该请求。由此可见,INTR上的请求信号,可以用软件设置IF标志来屏蔽,因此称为可屏蔽中断请求信号。
6、NMI(Non Maskable Interrupt,输入,第17脚)
非屏蔽中断请求信号,上升沿有效。在NMI引脚上出现上升沿信号时,不管IF标志为何,CPU均转入对应的中断处理程序。该引脚上的请求信号,不能用软件设置IF标志来屏蔽,因此称为非屏蔽中断请求信号。
7、TEST(输入,第23脚)
8086的执行部件EU不能直接进行实数运算,实数运算可以使用专门的数学协处理器8087来进行。在包含8087的计算机中,TEST信号用来协调8086CPU与数学协处理器8087。8087在被初始化后,使TEST信号为"1"。
CPU执行部件(EU)从指令队列中取得指令的机器码,如该指令为CPU指令,则执行之,如为数学协处理器指令,则交8087执行。在8087执行指令期间,使TEST信号为"1"。在8087执行指令期间,CPU可执行其他指令(8086与8087并行工作)。8087执行完其操作后,使TEST信号为"0"。
当8086需要使用8087的操作结果时,首先执行WAIT指令以检查TEST信号是否为"0",若TEST=1(8087未执行完),8086进入空转等待;若TEST=0(8087已执行完),8086执行WAIT后面的指令(这些指令需要8087的操作结果)。
8、RESET(输入,第21脚)
RESET信号使CPU立即结束现行操作,进入复位状态。该信号必须大于4个时钟周期(CLK)才有效。当RESET信号返回低电平时,CPU重新启动。
9、CLK(Clock,输入,第19脚)
时钟输入信号。它提供了CPU和总线控制的定时脉冲。该信号是非对称的,具有33%的占空比,如图2-21所示。
10、VCC(电源,+5V)、GND(地)
VCC(第40脚),+5V电源引出脚。GND(第1、20脚),接地引出脚。