这一节我们一起学习评价总线性能的指标,这些指标很可能在选择题或者大题第一小题出现。
一、总线传输周期
总线的传输周期,又叫总线周期。
==一个总线周期就是指我们要利用总线传输一组数据所需要的时间。==
通常一个总线周期会被分为以下四个阶段
:
<1> 申请阶段
这个阶段做总线的仲裁,关于总线仲裁如何实现,下一个小节讲解。
就是决定是否要把总线分配给某一个设备使用。
<2> 寻址阶段
两个设备要通过总线进行数据的交互,主设备会通过地址总线,把它想要读(或者写)的地址单元传递给从设备。
<3> 传输阶段
主设备指明了要读或者写的地址之后,就进入了传输阶段。
主设备通过数据总线,往从设备里面写入数据或者读出数据。
<4> 结束阶段
数据传输完成之后,就进入了结束阶段。
即释放总线的使用权,把总线让给其他设备使用。
经过一个总线周期时候,就可以完成一组数据的传送。比如一组数据总线的宽度是32bit,那么就意味着经过一个总线周期,它可以传输32bit的信息。
一个总线周期,通常由若干个总线时钟周期构成。
二、总线时钟周期
总线的时钟周期,就是机器的时钟周期。
稍微解释一下:
计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
对于早期的计算机来说,时钟信号是由CPU发出的。
CPU发出的节拍信号决定了总线时钟周期的长短,但是==现代计算机中,总线时钟周期也有可能由桥接器
提供==。就是上一小节提到的四总线结构里边,如下图。
这里的桥接器
也会发出时钟信号,这个时钟信号的频率和CPU时钟信号的频率是不一样的。
有可能CPU时钟信号的频率是3.0GHz,比较快。那么CPU总线的时钟周期就是3.0GHz,由CPU控制。
但是对于其他速度更慢的总线来说,可能跟不上CPU的时钟信号。
所以,桥接器会往高速总线里面的控制总线上发出时钟更慢的时钟信号。
:red_car:注意
虽然总线周期通常由若干个总线时钟周期构成,但是总线周期
与总线时钟周期
的关系比较魔幻。
它们的关系可能是一对多或者一对一或者多对一的关系。
①大多数情况下,一个总线周期包含多个总线时钟周期。
②有的时候,一个总线周期就是一个总线时钟周期。
③有的时候,一个总线时钟周期可以包含多个总线周期。
在有的总线中,当时钟部件发出如下时钟信号。
如果检测到上升沿
(电信号由低电平变为高电平),可以进行一次总线的数据传输。如果检测到下降沿
(电信号由高电平变为低电平),此时又会传送一组总线的数据。
在这样的时钟周期内,上升沿和下降沿都进行了一次总线的数据传输。
这就意味着一个时钟周期里面,包含了两个总线周期。
三、总线工作频率
总线的工作频率,就是总线上各种操作的频率,为总线周期的倒数。
若总线周期=N个时钟周期,则总线的工作频率=时钟频率/N。
实际上指总线在一秒内传送几次数据。
四、总线时钟频率
总线的时钟频率,就是机器的时钟频率。为时钟周期的倒数。
若时钟周期为T,则时钟频率为1/T。
实际上指总线在一秒内有多少个总线时钟周期。
五、总线宽度
总线宽度,又称为总线位宽。它是总线上同时能够传输的数据位数。
通常指数据总线的根数,如32根称为32位(bit)总线。
当在题目里面看到,某一个计算机的总线宽度是32bit,通常是指计算机里面数据总线的宽度,而没有包含地址总线和控制总线的宽度。
六、总线带宽
1.概念
总线带宽可以理解为总线的数据传输率,即单位时间内总线上可传输数据的位数。
通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示,也可以用比特/秒(b/s)。(B=b/8)
如果题目告诉了总线的工作频率(反映了总线每秒可以传送多少次数据),还有总线宽度(反映了每次传送可以并行地传送多少bit的数据),一相乘就可以得到总线的带宽。
又由于总线工作频率和总线周期互为倒数,如果题目中告诉了总线周期,那么也可以用总线宽度除以总线周期得到总线带宽。
2.注意点
:red_car: 注意
==总线带宽是指总线本身所能达到的最高传输速率。==
然而,在总线传输的信息中。也许不是所有的信息位都是有效信息,比如可能会有校验位或者一些开头结尾的标志。
有的题目可能会让我们计算有效数据的传输率。这时候就需要把上述附加冗余的信息给去除,只计算实际传输的有效信息位。
所以==在计算实际的有效数据传输率时,要用实际传输的数据量除以耗时。==
3.案例分析
:books:案例
:question: 数据线和地址线复用什么意思?
之前说的数据线和地址线是两组独立的总线,有的系统中为了简化系统的根数,会把数据总线和地址总线进行合并,就用一组总线来实现数据和地址信息的传送。
当然,这种方式肯定要分时传送,比如先用它来传送地址信息,然后再用它传送数据信息。
:question: 突发传输方式?
只需要传送一次地址,接下来就可以连续读出从这个地址往后的多个字的数据。
由于采用了数据线和地址线复用的方式,因此需要先通过32根线传输地址信息。
题目告诉我们。传输一个地址需要1个时钟周期,128位数据需要传输4次(总线宽度是32bit,所以128/32=4次)。
题目又说,一个时钟周期可以传送两次数据,因此这4次的数据传输只需要占用2个时钟周期。
题目又指明,总线时钟频率为66MHz(每秒包含了66M个时钟周期),所以每个时钟周期的长度就是1s/66MHz
约等于15ns(纳秒)。
所以完成128位数据的写至少需要花费三个时钟周期(发送首地址1个,128位数据传输占用2个),每个时钟周期15ns(纳秒),那么总共就是45ns的时间。
4.总结补充
:bookmark:总结
一个总线的时钟周期内可能传送多次数据(这个题目是上升沿和下降沿分别传送一次,每次传送32bit)
总线带宽:总线每秒钟最多传送多少数据。
既然提到这个问题,我们再来复习一下上一节说到的串行和并行总线。
串行总线每次只能传送1个bit数据,并行总线每次可以传送多个bit的数据。
乍一看,并行总线的带宽比串行总线的带宽更大,因为并行总线可以传送多位数据。
但是,总线带宽
不仅与总线宽度
有关,还与总线工作频率
有关。
总线带宽=总线工作频率*总线宽度(bit/s)
因此,在探讨串行总线与并行总线速度快慢的时候,一定要考虑它们的工作频率。
上一节说过,由于并行总线数据的传输线都靠的很近,所以它们之间会有一些干扰,可能导致数据的跳变(0变1或1变0)。为了保证数据的正确传输,并行总线的工作频率不能太高。
而串行总线没有数据线之间的干扰,因此串行总线的工作频率可以很高很高。
①如果工作频率相同,串行总线传输速度比并行总线慢。(因为串行一次只能传送1bit)
②并行总线的工作频率无法持续提高,而串行总线可以通过不断提高工作频率来提高传输速度,最终超过并行总线。
七、总线复用
这个概念在上面的例子中提过。
==总线复用是指一种信号线在不同的时间传输不同的信息。==
比如,一般地址总线和数据总线是独立的两组线,如下:
我们还可以采取这样的方式,用同一组线来分时
地传送地址信息与数据信息,如下:
这样就可以使用较少的线传输更多的信息,从而节省总线的布线空间和硬件的成本。
如果CPU要往主存里面写入数据,那么CPU要往这一条黄线发出地址信息,指明要写的地址在什么地方。
主存接收到地址信息之后,CPU再发出数据信息,同样是通过黄线传递给主存,主存再根据刚才传来的地址信息,把这次接收到的信息写入到相应的地址所指的空间里面。
这种方式传递地址数据信息的时候,至少需要2个总线周期,需要进行两次数据的传送。
这种方式虽然节约了成本,但也会使速度有所下降。
八、信号线数
地址总线、数据总线和控制总线3种总线数的总和称为信号线数。(就是传输最小的bit的线)
如果地址总线有32根,数据总线有64根,控制总线有100根,那么信号线数就是它们之和。
九、总结
OK,有缘再会~