4.3 高速缓冲存储器
4.3.1
在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/О设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低了CPU的工作效率。为了避免CPU与I/0设备争抢访存,可在CPU与主存之间加一级缓存(参见图4.3) ,这样,主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。
下图是cache-主存存储空间基本间的基本结构:
字块是由若干字节组成,例如一个字块8个字节,在交换信息的时候整个字块的信息交换
cache标记就是一个地址,2^c = C
Cache的容量与块长是影响Cache效率的重要因素,通常用“命中率”来衡量Cache的效率。命中率是指CPU 要访问的信息已在Cache内的比率。
在一个程序执行期间,设Nc为访问Cache的总命中次数,Nm为访问主存的总次数,则命中率h为
h
=
N
c
/
(
N
c
+
N
m
)
h = N_c/(N_c+N_m)
h=Nc/(Nc+Nm)
设t_c为命中时的Cache访问时间, t_m。为未命中时的主存访问时间,1-h表示未命中率,则Cache -主存系统的平均访问时间t_a。为
t
a
=
h
t
c
+
(
1
−
h
)
t
m
t_a = ht_c + (1-h)t_m
ta=htc+(1−h)tm
当然,以较小的硬件代价使Cache-主存系统的平均访问时间t_a越接近于t_c越好。用e表示访问效率,则有
e
=
t
c
/
t
a
∗
100
%
e = t_c/t_a *100\%
e=tc/ta∗100%
=
t
c
/
(
h
t
c
+
(
1
−
h
)
t
m
)
∗
100
%
= t_c/(ht_c+(1-h)t_m) *100\%
=tc/(htc+(1−h)tm)∗100%
4.3.2Cache-主存地址映射
1.直接映射
Cache缓存中的字块依次映射到主存字块,然后不断地循环。在存取数据时会出现Cache空着但是主存块不能使用,比如Cache0号块占用、1号块空着,但是主存的0号块只能与Cache 0 号块对应,2号块不能使用
主存块只与一个缓存块对应,映射关系式:
i
=
j
m
o
d
C
或
i
=
j
m
o
d
2
c
i = j mod C或 i = j mod 2^c
i=jmodC或i=jmod2c
i为缓存块号,j为主存块号,C缓存块数
2.全相邻映射
主存中字块与Cache中字块任意对应
CPU访问数据时会从Cache和主存获取,但是需要查询主存中的信息是否在Cache中,需要进行查询,所以全相邻映射,访问速度慢
由于直接映射空间利用率不高,全相联映射在寻址是速度慢于是有了
3.组相联映射
组内采用全相邻,组间采用直接映射。
例题跳转.
4.4辅助存储器
4.4.1概述
磁盘表面主要指标
1.记录密度
道密度D_t,道距P
D
t
=
1
/
P
D_t = 1/P
Dt=1/P
位密度 D_b,f_t为每道总位数,d_min同心圆最小直径
D
b
=
f
t
/
(
π
d
m
i
n
)
D_b = f_t/(\pi d_{min} )
Db=ft/(πdmin)
2.存储容量
C总容量,n存放信息的盘面数,k为每个盘面磁道数,s为每个磁道上记录的二进制代码数
C
=
n
∗
k
∗
s
C = n*k*s
C=n∗k∗s
PS: 磁盘每层的两个盘面都可以储存,有时最外两层不进行储存
3.平均寻址时间
由存取方式分类可知,磁盘采取直接存取方式,寻址时间分为两个部分,其一是磁头寻找目标磁道的找道时间t_s ,其二是找到磁道后,磁头等待欲读/写的磁道区段旋转到磁头下方所需要的等待时间t_w。由于从最外圈磁道找到最里圈磁道和寻找相邻磁道所需时间是不等的,而且磁头等待不同区段所花的时间也不等,因此,取其平均值,称为平均寻址时间T_a,它是平均找道时间t_sa.和平均等待时间t_wa之和:
T
a
=
t
s
a
+
t
w
a
=
(
t
s
m
a
x
+
t
s
m
i
n
)
/
2
+
(
t
w
m
a
x
+
t
w
m
i
n
)
/
2
T_a = t_{sa}+t_{wa} =(t_{smax}+t_{smin})/2 + (t_{wmax}+t_{wmin})/2
Ta=tsa+twa=(tsmax+tsmin)/2+(twmax+twmin)/2
磁表面存储器记录方式
4.4.6循环冗余校验码
模2运算规则
- 模2加和模2减的结果是相等的,即0 ±1 = 1,0 ± 0 = 0,1 ±0= 1,1 土 1 = 0。可见,两个相同数的模⒉和恒为0。
- 模⒉乘是按模⒉和求部分积之和。
- 模⒉除是按模⒉减求部分余数。每求一位商应使部分余数减少一位。上商的原则是:当部分余数的首位为1时,上商1;当部分余数的首位为0时,上商0。当部分余数的位数小于除数的位数时,该余数即为最后余数。
右侧的“除法运算”,每步其实是异或运算
G(x) 是一个多项式,01代表多项式系数,题目中n = 4 就是G(x)位数,k是最高次数
M(x) 左移 k 位补 0,然后"除"G(x),余数为R(x),
最后校验码CRC = 左移后的M(x) + R(x)
CRC码的译码和纠错
将CRC“除”G(x),余数为0则正确,不为0可以根据传送位数,生成多项式G(x) 确定。