- 基本概念
(1)存储器的读取
1.存储周期:存储器读取数据需要一定时间,这个时间叫“存储周期”,用 T 表示。
2.总线传输周期:数据通过总线传输的时间,用 \tau
表示。
(2)顺序存储器
1.顺序存储器是 每个模块 存储完整的一个字。
2.读取连续4个字时,依次从 同一个模块 读取,模块不能并行工作,每个字的读取都需要完整的存储周期。
(3)交叉存储器
1.交叉存储器将连续的字分散存储在 不同模块 上。
2.读取连续4个字时,不同模块可以 并行工作,流水线读取数据,从而提高效率。
- 信息总量
每个字 64 位,连续读取 4 个字,总信息量是:
Q = 64 \, \text{bit/字} \times 4 \, \text{字} = 256 \, \text{bit}
无论是顺序存储器还是交叉存储器,总信息量都是 256 \, \text{bit}
。
- 顺序存储器的时间计算
每次读取一个字的时间:
1.读取一个字需要 存储周期 T = 200 \, \text{ns}
。
2.总线传输这个字需要 \tau = 50 \, \text{ns}
。
但因为存储周期 T 包含了数据传输时间 \tau
,每次完整读取一个字只需 存储周期 T = 200 \, \text{ns}
。
连续读取4个字的时间:
顺序存储器不能并行,每次只能读一个字,总共需要 4次存储周期:
t_{\text{顺序}} = 4 \times 200 \, \text{ns} = 800 \, \text{ns} = 8 \times 10^{-7} \, \text{s}
- 交叉存储器的时间计算
流水线并行工作
1.第1个字需要 完整的存储周期 T = 200 \, \text{ns}
。
2.从第2个字开始,不同模块可以同时读取数据,每个字的间隔只需 总线传输周期 \tau = 50 \, \text{ns}
。
总时间计算:
1.第1个字:200 ns
2.后续3个字:每个字50 ns,3个字共 3 \times 50 = 150 \, \text{ns}
。
总时间:
t_{\text{交叉}} = 200 \, \text{ns} + 150 \, \text{ns} = 350 \, \text{ns} = 3.5 \times 10^{-7} \, \text{s}
- 带宽计算
带宽的定义是 单位时间内传输的数据量:
W = \frac{\text{总数据量}}{\text{传输时间}}
顺序存储器带宽:
W_{\text{顺序}} = \frac{256 \, \text{bit}}{8 \times 10^{-7} \, \text{s}} = 320 \, \text{Mbit/s}
交叉存储器带宽:
W_{\text{交叉}} = \frac{256 \, \text{bit}}{3.5 \times 10^{-7} \, \text{s}} \approx 730 \, \text{Mbit/s}
-
总结
• 顺序存储器:每次读取一个字,不能并行,所以时间较长,带宽较低。
• 时间:800 \, \text{ns}
• 带宽:320 \, \text{Mbit/s}
• 交叉存储器:利用模块并行和流水线技术,读取更快,带宽更高。
• 时间:350 \, \text{ns}
• 带宽:730 \, \text{Mbit/s}
本文作者为wzzyhg,转载请注明。