微型计算机原理及应用学习笔记 微处理器的总线
一、指令周期、总线周期和时钟周期
每条指令的执行由取指令、译码和执行等操作组成。执行一条指令所需要的时间称为指令周期(Instruction Cycle),不同指令的指令周期是不等长的。
8086CPU与外部交换信息总是通过总线进行的。CPU的每一个这种信息输入、输出过程需要的时间称为总线周期(Bus Cycle),每当CPU要从存储器或输人输出端口存取一个字节或字就需要一个总线周期,一个指令周期由一个或若干个总线周期组成。
而执行指令的一系列操作都是在钟脉冲CLK的统一控制下一步一步进行的。时钟脉冲的重复周期称为时钟周期(Clock Cycle),时钟周期是CPU的时间基准, 由计算机的主频决定。例如,8086的主频为5MHz,则1个时钟周期为200ns。
8086CPU的总线周期至少由4个时钟周期组成,分别以T1、T2、T3和T4表示,如图2-14所示,T 又称为状态(state)。
图2-14 8086CPU的总线周期
一个总线周期完成一次数据传输,至少要有传送地址和传送数据两个过程。在第一个时钟周期T1期间由CPU输出地址,在随后的三个T周期(T2、T3和T4)用以传送数据。换言之,数据传送必须在T2~T4这三个周期内完成,否则在T4周期后,总线将作另一次操作,开始下一个总线周期。
在实际应用中,当一些慢速设备在三个T周期内无法完成数据读写时,那么在T4后,总线就不能为它们所用,会造成系统读写出错。为此,在总线周期中允许插入等待周期Tw一当被选中进行数据读写的存储器或外设无法在三个T周期内完成数据读写时,就由其发出一个请求延长总线周期的信号到8086CPU的READY引脚,8086CPU收到该请求后,就在T3与T4之间插入一个等待周期Tww,加入Tww的个数与外部请求信号的持续时间长短有关,延长的时间Tww也以时钟周期T为单位,在Tww期间,总线上的状态一直保持不变。
如果在一个总线周期后不立即执行下一个总线周期,即总线上无数据传输操作,系统总线处于空闲状态,此时执行空闲周期Ti ,Ti也以时钟周期T为单位,两个总线周期之间插入几个Ti与8086CPU执行的指令有关,例如在执行一条乘法指令时,需用124个时钟周期,而其中可能使用总线的时间极少,而且预取队列的充填也不用太多的时间,加入的Ti可能达到l00多个。在空闲周期期间,20条双重总线的高4位A19/S6~A16/S3上,8086CPU仍驱动前一个总线周期的状态信息而且,如果前一个总线周期为写周期,那么,CPU会在总线的低16价AD15~AD0上继续驱动数据信息D15~D0;如果前一个总线周期为读周期,则在空闲周期中,总线的低16位D15~D0处于高阻状态。
二、几种基本时序
8086CPU的操作是在指令译码器输出的电位和外面输入的时钟信号联合作用下产生的各个命令控制下进行的,可分为内操作与外操作两种,内操作是控制ALU(算术逻辑单元)进行算术运算,控制寄存器组进行寄存器选择以及送往数据线还是地址线,进行读操作还是写操作等,所有这些操作都在CPU内部进行,用户可以不必关心。CPU的外部操作是系统对CPU的控制或是CPU对系统的控制,用户必须了解这些控制信号以便正确使用。
8086CPU的外部操作主要有如下几种:①存储器读或写;②I/O端口读或写;③中断响应;④总线保持(最小方式);⑤总线请求/允许(最大方式);⑥复位和启动;⑦暂停。
(一)总线读操作
当8086CPU进行存储器或I/O端口读操作时,总线进入读周期,8086的读周期时序如图2-15所示。
图2-15 8086读周期时序
基本的读周期由4个T周期组成——T1、T2、T3和T4。当所选中的存储器和外设的存取速度较慢时,则在T3和T4之间将插入1个或几个等待周期Tw。
在8086读周期内,有关总线信号的变化如下:
(1) :在整个读周期保持有效,当进行存储器读操作时, 为高电平;当进行I/O端口读操作时, 为低电平。
(2)A19/S6~A16/S3 :在T1期间,输出CPU要读取的存储单元或I/O端口的地址高4位。T2~T4期间输出状态信息S6~S3。
(3) :在T1期间,输出 有效信号( 为低电平),表示高8位数据总线上的信息可以使用, 信号通常作为奇地址存储体的体选信号(偶地址存储体的体选信号是最低地址位A0)。T2~T4期间输出高电平。
(4)AD15~AD0 :在T1期间,输出CPU要读取的存储单元或I/O端口的地址A15~A0。T2期间为:CPU从AD15~AD0上接收数据。
(5)ALE:在T1期间地址锁存有效信号为一正脉冲系统中的地址锁存器正是利用该正脉冲的下降沿来锁存A19/S6~A15/S3,AD15~AD0中的20位地址信息以及 。
(6) :在T2期间输出低电平送到被选中的存储器或I/O接口。注意,只有被地址信号选中的存储单元或I/O端口,才会被 信号从中读出数据(数据送上数据总线AD15~AD0)。
(7) :在整个总线周期内保持低电平,表示本总线周期为读周期,在接有数据总线收发器的系统中 用来控制数据传输方向。
(8) :在T2~T3期间输出有效低电平,表示数据有效,在接有数据总线收发器的系统中,用来实现数据的选通。
(二)总线写操作
当8086CPU进行存储器或I/O端口写操作时,总线进入写周期,8086的写周期时序如图2-16所示。
图2-16 8086写周期时序
总线写操作的时序与读操作时序相似,其不同处在于:
(1)AD15~AD0:在T2~T4期间送上欲输出的数据,而无高阻态。
(2) :从T2~T4 , 引脚输出有效低电平,该信号送到被选中的存储器和I/O接口。注意,只有被地址信号选中的存储单元或I/O端口才会被WR信号写入数据。
(3) :在整个总线周期内保持高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向。
(三)中断响应操作
当8086CPU的INTR引脚上有一有效电平(高电平),且标志寄存器中IF=1,则8086CPU在执行完当前的指令后,响应中断,在响应中断时CPU执行两个中断响应周期,如图2-17所示。
图2-17 中断响应周期时序
每个中断响应周期由4个T周期组成。在第一个中断响应周期中,从T2~T4周期, 为有效(低电平),作为对中断请求设备的响应;在第二个中断响应周期中,同样从T2~T4周期, 为有效(低电平),该输出信号通知中断请求设备(通常是通过中断控制器)把中断类型号(决定中断服务程序的入口地址)送到数据总线的低8位AD7~AD0(在T2~T4期间)。在二个中断响应周期之间,有3个空闲周期(Ti)。
(四)总线保持与响应
当系统中有其他的总线主设备请求总线时,向8086CPU发出请求信号HOLD,CPU接收到HOLD有效的信号后,在当前总线周期的T4,或下一个总线周期的T1的后沿,输出保持响应信号HLDA,紧接着从下一个时钟开始,8086CPU就让出总线控制权。当外设的DMA传送结束时,使HOLD信号变低,则在下一个时钟的下降沿使HLDA信号变为无效(低电平)。8086的总线保持响应时序见图2-18所示。
图2-18 总线保持/响应时序
(五)系统复位
8086CPU的RESET引脚,可以用来启动或再启动系统,当8086在RESET引脚上检测到一个脉冲的上跳沿时,它停止正在进行的所有操作,处于初始化状态,直到RESET信号变低。复位时序如图2-19所示。
图2-19 复位时序
图中RESET输入是引脚信号,CPU内部是用时钟脉冲CLK来同步外部的复位信号的,所以内部RESET是在外部引脚RESET信号有效后的时钟上升沿有效的。复位时,8086CPU将使总线状态变为:地址线浮空(高阻态)直到8086CPU脱离复位状态,开始从FFFF0H单元取指令;ALE、HLDA信号变为无效(低电平);其他控制信号线,先变高一段时间(相应于时钟脉冲低电平的宽度)然后浮空。
另外,复位时内部寄存器状态为:标志寄存器、指令指针(IP)、DS、SS、ES清零;CS置FFFFH;指令队列变空。
以上讨论的都是最小方式下的时序。
本文标签:山东自考 工学类 微型计算机原理及应用学习笔记 微处理器的总线
转载请注明:文章转载自(http://www.sdzk.sd.cn)
《山东自考网》免责声明:
1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。
2、本站内容信息均来源网络收集整理,标注来源为其它媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系,本站将第一时间尽快处理删除。联系邮箱:812379481@qq.com。