首页 理论教育 等待状态生成器的实现

等待状态生成器的实现

时间:2023-06-29 理论教育 版权反馈
【摘要】:CPU需要产生的等待状态以机器周期为单位,通过READY引脚可产生任意数目的等待状态,使快速的CPU访问慢速的外部存储器或外设。但是当2407全速运行时,它不能对第一个周期作出快速响应来产生一个基于READY的等待状态。为了立即得到等待状态,应先使用片内等待状态发生器,然后用READY信号产生其余的等待状态。

等待状态生成器的实现

外部存储器或I/O接口访问速度差别可能较大,所以芯片提供了时序的延长或加等待机制来确保用户通过软件配置实现对这些存储器或I/O的正确接口。

CPU需要产生的等待状态以机器周期为单位,通过READY引脚可产生任意数目的等待状态(延长访问时间),使快速的CPU访问慢速的外部存储器或外设

1.用READY信号产生等待状态信号

若CPU所访问的存储器或外设没有准备好,则外设应保持READY引脚为低电平,此时2407等待一个CLKOUT周期(即插入一个等待状态),并再次检查READY引脚,当READ⁃Y为高电平时,表示外设已经做好了访问的准备。若READY信号没有被使用,2407将在外部访问时把READY信号拉高。READY引脚可用来产生任意数目的等待状态。

但是当2407全速运行时,它不能对第一个周期作出快速响应来产生一个基于READY的等待状态。为了立即得到等待状态,应先使用片内等待状态发生器,然后用READY信号产生其余的等待状态。

2.用等待状态发生器产生等待状态

等待状态发生器可编程为指定的片外空间(数据、程序或I/O)产生0~7个等待状态,而与READY信号的状态无关。为了控制等待状态发生器,就必须对映射到I/O空间的等待状态发生器控制寄存器(Wait⁃Sta te Generator Control Register,WSGR,I/O空间地址为0FFFFh)访问。访问该寄存器时要使用访问I/O空间的OUT指令和IN指令。等待状态控制寄存器的格式如下:

位15~11 保留位。

位10、9 BVIS:总线可视模式。提供了一种跟踪内部总线活动的方式。当运行片内的程序或数据存储器时,位10、9允许各种总线的可视模式。(www.xing528.com)

●00,01:总线可视模式关(降低功耗和噪声)。

●10:数据存储器地址总线输出到外部地址总线,数据存储器数据总线输出到外部数据总线。

●11:程序存储器地址总线输出到外部地址总线,程序存储器数据总线输出到外部数据总线。

位8~6 ISWS:I/O空间等待状态位。这三位决定了片外I/O空间等待状态(0~7)的数目。复位时,这三位置为111,为片外I/O空间的读写设定了7个等待状态。

位5~3 DSWS:数据空间等待状态位。这三位决定了片外数据空间等待状态(0~7)的数目。复位时,这三位置为111,为片外数据空间的读写设定了7个等待状态。

位2~0 PSWS:程序空间等待状态位。这三位决定了片外程序空间等待状态(0~7)的数目。复位时,这三位置为111,为片外程序空间的读写设定了7个等待状态。

总之,不管READY信号的状态如何,等待状态发生器都将向给定的空间(数据、程序或I/O)插入0~7个等待状态,等待状态的数目由ISWS、DSWS、PSWS位来确定。然后READY信号可以变为低电平,产生附加的等待状态。

如果m是一个特定的读写操作所要求的时钟周期(CLKOUT)的数目,w是附加的等待状态数目,那么操作将会花费m+w个周期。复位时,WSGR各位均置1,且默认每个外部空间(数据、程序或I/O)均产生7个等待状态。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈