存储系统的基本要求和并行主存系统
存储系统的基本要求
大容量,高速度,低价格
- 存储容量
S M S_M SM= W × l × m W\times l \times m W×l×m
W:存储体字长,l:存储体字数 m:并行工作的存储体数 - 速度
访问时间 T A T_A TA:存储器从接收访问读申请到信息被读到数据总线上的时间
存储周期 T M T_M TM:连续启动一个存储体所需要的时间,通常大于 T A T_A TA
频宽(带宽) B M B_M BM:存储器可以提供的传送速率。
最大频宽
单体: w T M \frac{w}{T_M} TMw. m个存储体并行: W × m T M \frac{W\times m}{T_M} TMW×m
实际频宽<最大频宽 - 价格
每位价格 c = C S M c=\frac{C}{S_M} c=SMC
①单体单字存储器
字长为W位的单体主存, 主存最大频宽Bm
=
w
T
M
=\frac{w}{T_M}
=TMw
- 单体多字存储器
存储器的字长为4个CPU字W,主存在一个存储周期内就可读出4个CPU字,相当于CPU从主存中获得信息的最大速率提高为原来的4倍。即Bm= W × 4 T M \frac{W×4}{T_M} TMW×4
- 多(分)体单字交叉访问存储器
每个存储体都有自己的地址寄存器,是独立的。它们可以接收自己的地址。
地址可以不连续,使得它更灵活性能提高
并行主存系统的实际频宽
提高模m值,是能提高主存系统的最大频宽的,但主存实际频宽并不是随m值增大而线性提高。其主要原因: ①系统效率的问题。 ②传输延迟增加
实际频宽的计算
假设:
- k为申请序列的长度,P(k)表示申请序列长度为k的概率。
k的平均长度用B表示 B = ∑ k = 1 m k × P ( k ) B=\sum_{k=1}^m{k\times P\left( k \right)} B=∑k=1mk×P(k)
P(k)与程序密切相关。如果访存申请队都是指令的话,那么影响最大的是转移概率λ - 具体解释k与P(K)
k=1指的是第一条就是转移指令且转移成功,与第一条指令并行读出的其它m-1条指令就是没用的**。P(k)指的是发生这样的概率为λ。相当于k=1,所以P(1)=λ=(1-λ)0·λ;
k=2的概率自然是第一条指令没有转移**(其概率为1-λ),第二条是转移指令且转移成功的情况,所以, P(2)=(1-P(1))·λ=(1-λ)1·λ;
同理,P(3)=(1-P(1)-P(2))·λ=(1-λ)2·λ。如此类推,P(k)=(1-λ)k-1·λ,其中1≤k<m。
如果前m-1条指令均不转移,则不管第m条指令是否转移,k都等于m,故P(m)=(1-λ)m-1。 - 因此
B = ∑ k = 1 m k × P ( k ) = ∑ i = 0 m − 1 ( 1 − λ ) i = 1 − ( 1 − λ ) m λ B=\sum_{k=1}^m{k\times P\left( k \right)}=\sum_{i=0}^{m-1}{\left( 1-\lambda \right)}^i=\frac{1-\left( 1-\lambda \right) _{}^{m}}{\lambda} B=k=1∑mk×P(k)=i=0∑m−1(1−λ)i=λ1−(1−λ)m
m:存储体体数,λ转移指令的概率 B读取的有效位数
图片反应的
①如果转移概率λ>0.3时,m=4,8,16的B差别不大。即此时模m取值再大,对系统效率也不会带来多大的好处。
②而在λ<0.1时,m值的大小对B的改进会有显著影响。
③至于数据,由于其顺序性更差,模m值的增大对主存频宽的提高影响程度就更差一些。
结论:
若机器主要是运行标量运算的程序,一般取m≤8,很少采用m=16的。但如果是向量处理机,由于数据的顺序性好,加上向量指令的使用大大减少了循环的次数,也就减少了转移概率,因此其m值可以取大些
(向量可以去大一点,标量m≤8)
具体例题: