2.2 8086微处理器的总线周期和操作时序

计算机在运行时必须有严格的时序控制各种微操作。在时序的控制下,才能保障操作的有序进行。计算机中常用的时序控制信号有时钟周期、总线周期和指令周期,并在此基础上形成了和总线操作有关的几种基本操作时序。

2.2.1 时钟周期、总线周期和指令周期

1.时钟周期 时钟周期是CPU的时间基准,是CPU运行时的最小时间单位。8086微处理器是在统一的时钟信号控制下,按节拍有序地工作。

时钟周期由计算机的主频决定,主频越高,时钟周期越小,计算机速度越快。例如,某计算机主频为2GHz,则其时钟周期为5×10-10s。

2.总线周期 CPU对存储器或I/O接口的访问,是通过总线来完成的。通常,将一次访问总线所需的时间称为一个总线周期,或称为机器周期。每当CPU要从存储器或输入/输出端口存取一个字节或字就需要一个总线周期,一个总线周期由若干时钟周期组成。

8086系统中,总线周期通常由4个时钟周期(T1、T2、T3、T4)组成,处于时钟周期中的总线称为T状态。

一个总线周期完成一次数据传送,至少要有传送地址和传送数据两个过程。传送地址在时钟周期T1内完成。传送数据必须在T2、T3、T4时钟周期内完成。否则在T4周期后,将开始下一个总线周期。

3.指令周期 每条指令都包括取指令、译码和执行等操作,完成一条指令执行过程所需的时间称为指令周期,指令不同,执行周期也不尽相同。

一个指令周期由若干个总线周期组成,一个总线周期由若干个时钟周期组成。

指令周期、总线周期、时钟周期的关系如图2-11所示。

978-7-111-53315-3-Chapter02-26.jpg

图2-11 指令周期、总线周期、时钟周期的关系

2.2.2 基本的总线时序

所谓总线时序,就是CPU通过总线进行操作时,总线上各信号之间在时间上的配合关系。CPU在总线上进行的操作,是指令译码器输出的微操作命令在外时钟信号时序控制联合作用下的执行过程。

常见的基本操作时序有:总线读操作时序、总线写操作时序、中断响应操作时序、总线保持与响应时序和系统复位时序。

1.总线读操作时序

8086 CPU进行存储器或I/O端口读操作时,进入总线读周期,如图2-12所示。

978-7-111-53315-3-Chapter02-27.jpg

图2-12 总线读操作时序

基本的读周期由4个T周期组成,在CPU的读周期内,有关总线信号的变化如下。

1)M/IO:在Tl状态开始有效直到总线周期结束,读存储器时M/IO为高电平;读I/O端U时M/IO为低电平。

2)A19/S6--A16/S3:Tl期间,输出存储器单元或I/O端口的高4位地址,T2一T4期间输出状态信息S6-4S3。

3)BHE/S7:在Tl期间, 978-7-111-53315-3-Chapter02-28.jpg 为低电平,表示高8位数据线上的信息可以使用。T2一T4期间输出高电平。

4)AD15~ADO:在Tl期间,用来作为地址总线的低16位;T2期间为高阻态;T3一T4期间,用来作为16位数据总线线使用,可以从总线接收数据;若在T3状态不能将数据送到数据总线上,则在T3~T4之间插入等待状态Tw,直到数据送入数据总线上,进入T4周期,在T4周期的开始下降沿,CPU采样数据总线。

5)ALE:系统中的地址锁存器利用该脉冲的下降沿来锁存20位地址信息以及 978-7-111-53315-3-Chapter02-29.jpg

6)RD:读取选中的存储单元或I/O端口中的数据。

7) 978-7-111-53315-3-Chapter02-30.jpg 在Tl状态输出低电平,表示本总线周期为读周期,在接有数据总线收发器的系统中,用来控制数据传输方向。

8) 978-7-111-53315-3-Chapter02-31.jpg 低电平有效,在T2~T3期间表示数据有效,在接有数据总线收发器的系统中,用1来实现数据的选通。

2.总线写操作时序

8086 CPU进行存储器或I/O端口写操作时,进入总线写周期。CPU的写周期如图2-13所示。

978-7-111-53315-3-Chapter02-32.jpg

图2-13 总线写操作时序

总线写操作时序与读操作时序很相似,大部分信号和读操作的信号相同,不同之处如下。

1) AD15---ADO:在T2--T4之间没有高阻态。

2) WR:低电平有效,向选中的存储器或I/O端口写入数据。

3)DT/R:高电平有效,在总线周期内保持为高电平,表示为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向。

3.中断响应操作时序 执行中断响应操作时,需要经过两个总线操作周期,由硬件完成响应操作,然后才能转入中断服务程序执行。中断响应时序如图2-14所示。

978-7-111-53315-3-Chapter02-33.jpg

图2-14 中断响应时序

4.总线保持与响应时序

系统中别的设备请求总线时,会向CPU发出请求信号HOLD,当CPU收到HOLD有效信号后,会在总线周期的T4或下一个总线周期的T1的后沿,输出保持信号HLDA,接着在下一个时钟开始,将让出总线控制权。当外设的DMA传送结束时,会使HOLD信号变低,则在下一个时钟的下降沿使HLDA信号变为无效。图2-15是总线保持/响应时序。

978-7-111-53315-3-Chapter02-34.jpg

图2-15 总线保持/响应时序

5.系统复位时序 8086 CPU的RESET引脚可以用来启动或复位系统,当CPU在RESET引脚检测到一个脉冲上跳沿时,它将停止正在进行的所有操作,维持在复位状态,复位时序如图2-16所示。

978-7-111-53315-3-Chapter02-35.jpg

图2-16 系统复位时序

在复位状态,除段寄存器CS被置为FFFFH外,CPU内部寄存器(包括IP)连同指令队列均被清0,当RESET信号变为高电平时,再过一个时钟周期,所有三态输出线都被置为高阻状态,直到RESET信号回到低电平,只是在进入高阻状态的前半个时钟周期三态门不起作用,只有CLK又遇到一个上升沿才进入高阻状态。当RESET由高电平变到低电平时,CPU内部一个复位逻辑电路经过7个CLK时钟信号之后,CPU自动恢复正常,开始执行第一条指令的逻辑地址为CS:IP=0FFFFH:0000H,其物理地址为0FFFF0H。