CPU时钟和总线周期
计算机是一个十分复杂的电子设备。它由各种集成电路和电子器件组成,每一块集成电路中都集成了数以万计的晶体管和其他电子元件。这样一个十分庞大的系统,要使它能够正常地工作,就必须有一个指挥,对各部分的工作进行协调。各个元件的动作就是在这个指挥下按不同的先后顺序完成自己的操作的,这个先后顺序我们称为时序。时序是计算机中一个非常重要的概念,如果时序出现错误,就会使系统发生故障,甚至造成死机。那么是谁来产生和控制这个操作时序呢?这就是“时钟”。“时钟”可以认为是计算机的“心脏”,如同人一样,只有心脏在跳动,生命才能够继续。不要把计算机的“时钟”等同于普通的时钟,它实际上是由晶体振荡器产生的连续脉冲波,这些脉冲波的幅度和频率是不变的,这种时钟信号我们称为外部时钟。它们被送入CPU中,再形成CPU时钟。不同的CPU,其外部时钟和CPU时钟的关系是不同的,表列出了几种不同CPU外部时钟和CPU时钟的关系。
在主板上安装不同的CPU时,可按说明改变跳线的设置以取得合适的外部时钟频率。
一般情况下,由两个CPU时钟周期(简称为时钟)组成一个CPU总线周期。第一个时钟用来形成地址,第二个时钟用来传送数据。如果在第二个时钟周期内,不能完成数据的传送,就需要延长一个或两个时钟,这就是所谓的等待状态。常说的一个等待状态就是延长一个时钟周期。显然CPU的时钟频率越高,计算机的工作速度也就越快。
#1 一个总线周期是怎样形成的
总线周期总是由一个叫做“ADS#”(#表示低电平有效)的信号有效后开始的。周期开始后,CPU在总线上发出地址信号进行寻址。为了完成一个周期的工作,被寻址的设备将发出一个RDY#信号,告诉CPU数据总线上的数据准备就绪,可以使用。如果数据还没有准备好,就要延迟发出RDS#信号,使CPU处于等待状态。CPU只要接收到RDY#信号就可以从数据总线上读取数据,当前这个周期也就结束了。图1表示了一个总线周期的时序关系。
#1 各种不同的总线操作周期
根据不同的要求,可以组成各种不同的操作周期,在这些周期中完成各自的操作。CPU总线周期可以分为多种,例如,以486CPU为例,可以分为:中断确认、停机、I/O设备读、I/O设备写、存储器代码读、存储器数据读、存储器数据写等几种周期。可见在不同的总线周期中将要完成不同的操作任务。那么这些不同的总线周期又是如何建立的呢?这取决于几个总线周期定义信号:
·M/IO# 高电平为存储器周期,低电平为IO周期。
·D/C# 高电平为数据周期,低电平为代码周期。
·W/R# 高电平为写周期,低电平为读周期。
这三个信号的不同组合就可以形成不同的总线操作周期。
#1 突发周期
前面介绍的总线周期称为非突发周期。在非突发周期中,至少需要两个时钟才能传送一个字节数据。在486以上的微机中允许使用突发周期。在突发周期中,可以在连续的每个时钟内传送一个字节数据。突发周期在传送第一个数据时仍然需要两个时钟,而随后的数据则每个时钟予以传送。这是因为被传送的数据在内存中一般是连续的,当给出了突发周期的第一个地址后,硬件能够很容易地计算出随后传送的地址,而不必每次都由CPU重新给出地址,因此提高了工作速度。图是突发周期的时序图。