例题1
某总线时钟频率为
66
M
H
z
66MHz
66MHz ,在一个
64
64
64位总线中,总线数据传输的周期是
7
7
7个时钟周期内传输
6
6
6个字的数据块。
1)总线的数据传输速率是多少?
2)若不改变数据块的大小,而将时钟频率减半,这时总线的数据传输速率是多少?
【解】
总线时钟频率:即机器的时钟频率,为时钟周期的倒数
总线传输周期:简称总线周期,即总线完成一次操作所需时间
总线工作频率:总线周期的倒数,指一秒内传几次数据
(总线)时钟周期:即机器的时钟周期(不一定由CPU提供,也可能来自桥接器),即为时钟周期
一般而言,一个总线传输周期包含多个总线时钟周期,即总线完成一次操作需要多个时钟周期(如本题);
也有可能,一个总线时钟周期内包含多个总线传输周期,见例题3中的一个时钟周期的上下沿各传输一次数据;
总线位宽(总线宽度):总线同时能传输的数据位数,通常指数据总线根数
总线带宽(数据传输速率)=总线工作频率×(总线宽度/8)
=总线宽度/(总线周期)(b/s)
=总线宽度×8/(总线周期)(B/s)
1)
一个总线周期包含七个总线时钟周期,又时钟周期为时钟频率的倒数=>
1
时
钟
周
期
=
1
66
M
H
z
1时钟周期=\frac{1}{66MHz}
1时钟周期=66MHz1,故一个总线周期=
7
66
M
H
z
\frac{7}{66MHz}
66MHz7 ,得总线的工作频率为:
66
M
H
z
7
\frac{66MHz}{7}
766MHz ,又由题目得知一个传输周期传输
6
6
6个字的数据块,而一个字=
64
b
i
t
64bit
64bit ,因此一周期内传输
64
∗
6
=
384
b
i
t
64*6=384bit
64∗6=384bit ,(一开始我是直接以为位宽是64,但是这里对于上面总线位宽定义中的
⌈
同
时
⌋
\lceil同时\rfloor
⌈同时⌋这一要求貌似指定在一个总线周期内),因此位宽为
384
b
i
t
384bit
384bit
因此总线的数据传输速率为:
总
线
工
作
频
率
×
(
总
线
宽
度
/
8
)
=
66
M
H
z
7
∗
384
∗
8
=
452.6
M
B
/
s
总线工作频率×(总线宽度/8)=\frac{66MHz}{7*384*8}=452.6MB/s
总线工作频率×(总线宽度/8)=7∗384∗866MHz=452.6MB/s
2)
时钟频率减半后的总线工作频率为:
(
66
/
7
)
/
2
M
H
z
=
33
M
H
z
7
(66/7)/2MHz=\frac{33MHz}{7}
(66/7)/2MHz=733MHz ,因数据块大小不变,所以总线宽度仍为
384
b
i
t
=
48
B
384bit=48B
384bit=48B
还是套用上面的公式,传输速率为:
48
B
∗
33
M
H
z
7
=
226.3
M
B
/
s
\frac{48B*33MHz}{7}=226.3MB/s
748B∗33MHz=226.3MB/s
例题2
某总线支持二级 Cache 块传输方式,若每块
24
24
24 字节,时钟频率为
100
M
H
z
100MHz
100MHz 。其中读操作需要
7
7
7个周期,写操作需要
6
6
6 个周期。
1)设在全部的传输中,70% 时间用于读,30% 时间用于写
2)设在全部的传输中,70% 数据用于读,30% 数据用于写
试求在上述两种情况下的平均传输速率
【解】
首先求读与写的数据传输速率
-
读
总线宽度为:
24
B
24B
24B
读操作的工作周期:
7
7
7
读工作频率:参考上题,可得
100
M
H
z
7
\frac{100MHz}{7}
7100MHz
=>数据传输速率:
总
线
宽
度
∗
读
工
作
速
率
(
工
作
频
率
)
=
100
M
H
z
∗
24
B
7
=
343
M
B
/
s
总线宽度*读工作速率(工作频率)=\frac{100MHz*24B}{7}=343MB/s
总线宽度∗读工作速率(工作频率)=7100MHz∗24B=343MB/s
-
写
总线宽度:
24
B
24B
24B
写操作的工作周期:
6
6
6
读工作速率:参考上题,可得
100
M
H
z
6
\frac{100MHz}{6}
6100MHz
=>数据传输速率:
总
线
宽
度
∗
写
工
作
速
率
(
工
作
频
率
)
=
100
M
H
z
∗
24
B
6
=
400
M
B
/
s
总线宽度*写工作速率(工作频率)=\frac{100MHz*24B}{6}=400MB/s
总线宽度∗写工作速率(工作频率)=6100MHz∗24B=400MB/s
1)
由于速率的定义,就是定义在单位时间内传输的数据多少,此时我们便可以将每次传输的单位时间进行切分,一单位时间分配70%给读操作,30%分配给写操作。因此可得单位时间内平均的传输速率为:
0.7
∗
343
M
B
/
s
+
0.3
∗
400
M
B
/
s
=
360.1
M
B
/
s
0.7*343MB/s+0.3*400MB/s=360.1MB/s
0.7∗343MB/s+0.3∗400MB/s=360.1MB/s
2)
同理,我们可以将每次传输的单位数据进行切分,一单位数据分配给70%给读操作,30%分配给写操作;这里不妨假设一单位为
1
M
1M
1M
对于读操作而言,读取
1
M
B
1MB
1MB数据需要时间:
1
343
s
\frac{1}{343}s
3431s
对于写操作而言,读取
1
M
B
1MB
1MB数据需要时间:
1
400
s
\frac{1}{400}s
4001s
则平均传输
1
M
B
1MB
1MB的数据的时间为:
(
0.7
343
+
0.3
400
)
s
(\frac{0.7}{343}+\frac{0.3}{400})s
(3430.7+4000.3)s
取倒数便可得到平均传输速率:
1
(
0.7
343
+
0.3
400
)
=
358
M
B
/
s
\frac{1}{(\frac{0.7}{343}+\frac{0.3}{400})}=358MB/s
(3430.7+4000.3)1=358MB/s
注记:1MB传输需要Xs => 速率为:1MB/Xs
例题3
某同步总线数据线和地址线复用,其中地址/数据线有32根,总线时钟频率为 66MHz,每个时钟周期内传输两次数据(上升沿下降沿传一次数据)
1)该总线的最大数据传输速率?
2)若该总线支持突发传输方式,传输一个地址占用一个时钟周期,则依次主存写总线事务传输128位数据要多久?
【解】
1)
每个始终周期传输两次数据=> 总线工作频率是时钟频率的两倍
总线工作频率=2*66MHz=132MHz
总线宽度=32bit=4B,总线宽度=总线工作频率×总线位宽=132×4MB/s=528MB/s
2)
突发传输方式:一次总线事务只需要给出一个首地址,从设备就能从首地址的开始位置若干连续单元读出或写入多个数据
发送首地址占用一个周期,128位数据需要128/32=4次,占用时钟周期(每一个时钟周期可传两次总线)
一时钟周期=1/66MHz≈ 15ns
总耗时=(1+2)×15ns=45ns
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)