【机组】--总线-例题

例题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 646=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)=7384866MHz=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 748B33MHz=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 线()=7100MHz24B=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 线()=6100MHz24B=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.7343MB/s+0.3400MB/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

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值