计算机体系结构存储系统

存储系统原理

两种典型的存储系统:Cache存储系统和虚拟存储系统。前者主要目的是提高存储器速度,后者有主存储器和硬盘构成,主要用于扩大存储器容量。
在这里插入图片描述

存储系统的访问效率

e = T 1 T = 1 H + ( 1 − H ) × T 2 T 1 = f ( H , T 2 T 1 ) e=\frac{T_1}{T}=\frac{1}{H+(1-H)\times\frac{T_2}{T_1}}=f(H,\frac{T_2}{T_1}) e=TT1=H+(1H)×T1T21=f(H,T1T2)
可见访问效率主要与命中率和两级存储器的速度之比有关,访问效率实际上是表示存储系统访问速度能到达系统中访问较快组件的百分之多少。

交叉访问存储器

  1. 高位交叉访问存储器

在这里插入图片描述

  1. 低位交叉访问存储器
    在这里插入图片描述
    在这里插入图片描述

用概率刻画访问冲突问题

共有 n n n个存储体,每个存储周期只能取到 k k k个有效字,其余 n − k n-k nk个存储体有冲突。假设 p ( k ) p(k) p(k) k k k的概率密度函数PDF, k k k的平均值为:
N = ∑ k = 1 n k × p ( k ) N=\sum_{k=1}^{n}k\times p(k) N=k=1nk×p(k)
N N N是每个存储周期内能够访问到的平均有效字个数,通常称为并行存储器的加速比。

定义转移成功的概率为 g g g,即读出的是转移指令且转移成功的概率。我们有 p ( k ) = ( 1 − g ) k − 1 g , k = 1 , 2 , ⋅ ⋅ ⋅ , n − 1 p(k)=(1-g)^{k-1}g, k=1,2,···,n-1 p(k)=(1g)k1g,k=1,2,⋅⋅⋅,n1,前 ( k − 1 ) (k-1) (k1)个字不是转移指令或者是不成功的转移指令,第 k k k个字是转移指令且成功转移。

加速比可以通过以下方式计算:
N = g + 2 ( 1 − g ) g + 3 ( 1 − g ) 2 g + . . . + ( n − 1 ) ( 1 − g ) n − 2 g + n ( 1 − g ) n − 1 N=g+2(1-g)g+3(1-g)^2g+...+(n-1)(1-g)^{n-2}g+n(1-g)^{n-1} N=g+2(1g)g+3(1g)2g+...+(n1)(1g)n2g+n(1g)n1

这是一个等差 × \times ×等比数列求和问题(梦回高中)。

首先乘上等比数列的比 ( 1 − q ) (1-q) (1q),得
( 1 − g ) N = ( 1 − g ) g + 2 ( 1 − g ) 2 g + 3 ( 1 − g ) 3 g + . . . + ( n − 1 ) ( 1 − g ) n − 1 g + n ( 1 − g ) n (1-g)N=(1-g)g+2(1-g)^2g+3(1-g)^3g+...+(n-1)(1-g)^{n-1}g+n(1-g)^{n} (1g)N=(1g)g+2(1g)2g+3(1g)3g+...+(n1)(1g)n1g+n(1g)n

和原式作差(注意最后一项形式是不同的(少了 g g g)不能相减)得
N − ( 1 − g ) N = [ g + ( 1 − g ) g + ( 1 − g ) 2 g + . . . + ( 1 − g ) n − 2 g ] + n ( 1 − g ) n − 1 − n ( 1 − g ) n − ( n − 1 ) ( 1 − g ) n − 1 g N-(1-g)N=[g+(1-g)g+(1-g)^2g+...+(1-g)^{n-2}g]+n(1-g)^{n-1}-n(1-g)^{n}-(n-1)(1-g)^{n-1}g N(1g)N=[g+(1g)g+(1g)2g+...+(1g)n2g]+n(1g)n1n(1g)n(n1)(1g)n1g

前面一部分利用等比数列求和公式 S n = a 1 − a n q 1 − q S_n=\frac{a_1-a_nq}{1-q} Sn=1qa1anq,进行求和得到
g N = [ g − ( 1 − g ) n − 1 g 1 − ( 1 − g ) ] + n ( 1 − g ) n − 1 − n ( 1 − g ) n − ( n − 1 ) ( 1 − g ) n − 1 g gN=[\frac{g-(1-g)^{n-1}g}{1-(1-g)}]+n(1-g)^{n-1}-n(1-g)^{n}-(n-1)(1-g)^{n-1}g gN=[1(1g)g(1g)n1g]+n(1g)n1n(1g)n(n1)(1g)n1g
g N = 1 − ( 1 − g ) n − 1 + n ( 1 − g ) n − 1 − n ( 1 − g ) n − ( n − 1 ) ( 1 − g ) n − 1 g gN=1-(1-g)^{n-1}+n(1-g)^{n-1}-n(1-g)^{n}-(n-1)(1-g)^{n-1}g gN=1(1g)n1+n(1g)n1n(1g)n(n1)(1g)n1g

进行合并同类项可得
g N = 1 + ( n − 1 ) ( 1 − g ) n − 1 − n ( 1 − g ) n − ( n − 1 ) ( 1 − g ) n − 1 g gN=1+(n-1)(1-g)^{n-1}-n(1-g)^{n}-(n-1)(1-g)^{n-1}g gN=1+(n1)(1g)n1n(1g)n(n1)(1g)n1g
g N = 1 + ( n − 1 ) ( 1 − g ) n − n ( 1 − g ) n gN=1+(n-1)(1-g)^{n}-n(1-g)^{n} gN=1+(n1)(1g)nn(1g)n
g N = 1 − ( 1 − g ) n gN=1-(1-g)^{n} gN=1(1g)n

最终得到
N = 1 − ( 1 − g ) n g N=\frac{1-(1-g)^{n}}{g} N=g1(1g)n

通过打表查看,加速比和存储体个数以及程序转移概率之间的关系,由于转移指令的存在,实际的加速比大受限制。
在这里插入图片描述

虚拟存储器

多级页表

在这里插入图片描述
保证最后一级页表可以容纳所有虚实页号之间的映射:
2 g × N p N d ≥ N v N p 2^g\times\frac{N_p}{N_d}\geq\frac{N_v}{N_p} 2g×NdNpNpNv
取对数得
g ( l o g 2 N p − l o g 2 N d ) ≥ ( l o g 2 N v − l o g 2 N p ) g(log_2N_p-log_2N_d)\geq(log_2N_v-log_2N_p) g(log2Nplog2Nd)(log2Nvlog2Np)
最小满足以上条件的 g g g ⌈ l o g 2 N v − l o g 2 N p l o g 2 N p − l o g 2 N d ⌉ \lceil\frac{log_2N_v-log_2N_p}{log_2N_p-log_2N_d}\rceil log2Nplog2Ndlog2Nvlog2Np

快慢表

在这里插入图片描述

  • 快表按内容相联访问,内容:用户号+虚页号+实页号
  • 慢表按地址,将用户号和虚页号视为地址,内容:1位装入位+实页号

页面替换算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高速缓冲存储器

在这里插入图片描述
在这里插入图片描述

  1. 全相联映象,主存的任意一块可以映射到Cache中的任意一块,映象关系有 C b × M b C_b\times M_b Cb×Mb种;
  2. 直接映象,主存中一块只能映射到Cache中的一个特定块中;
  3. 组相联映象,主存中一块可以映射到Cache中的一组块中。

计组中我们将区号叫做主存标识符。

在这里插入图片描述

Cache存储系统性能分析

在这里插入图片描述

Q:块很大时,如果块大小足以通纳一个程序,这样访问命中率为100%,或者是块足以容纳一个循环语句,命中率不至于为0。

三级存储系统

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Reference
山东大学体系结构李峰老师ppt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u小鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值