计算机体系结构 第7章 存储系统(1)

第7章 存储系统

7.1 存储系统的基本知识

7.1.1 存储系统的层次结构

计算机系统结构设计中关键的问题之一 :

  • 如何以合理的价格,设计容量和速度都满足计算机系统要求的存储器系统?

要求:容量大、速度快、价格低

解决方法:采用多种存储器技术,构成多级存储层次结构。

  1. 程序访问的局部性原理

    对于绝大多数程序来说,程序所访问的指令和数据在地址上不是均匀分布的,而是相对簇聚的。

    程序访问的局部性包含两个方面 :

    • 时间局部性:程序马上将要用到的信息很可能就是现在正在使用的信息。
    • 空间局部性:程序马上将要用到的信息很可能与现在正在使用的信息在存储空间上是相邻的。
  2. 存储系统的多级层次结构

多级存储层次

假设第 i i i个存储器 M i M_{i} Mi的访问时间为 T i T_{i} Ti,容量为 S i S_{i} Si,平均每位价格为 C i C_{i} Ci

整个存储系统要达到的目标

  • 从CPU来看,该存储系统的速度接近于 M 1 M_{1} M1的,而容量和每位价格都接近于 M n M_{n} Mn的。
  • 存储器越靠近CPU,则CPU对它的访问频度越高,而且最好大多数的访问都能在 M 1 M_{1} M1完成。

7.1.2 存储层次的性能参数

出于讨论方便,仅考虑两级存储层次 M 1 M_{1} M1 M 2 M_{2} M2

  • M 1 M_{1} M1的参数: S 1 S_{1} S1 T 1 T_{1} T1 C 1 C_{1} C1
  • M 2 M_{2} M2的参数: S 2 S_{2} S2 T 2 T_{2} T2 C 2 C_{2} C2
  1. 存储容量S

    一般来说,整个存储系统的容量即是第二级存储器 M 2 M_{2} M2的容量,即 S = S 2 S = S_{2} S=S2

  2. 每位价格C

C = C 1 S 1 + C 2 S 2 S 1 + S 2 当 S 1 < < S 2 时 , C ≈ C 2 C = \frac{C_{1}S_{1} + C_{2}S_{2}}{S_{1} + S_{2}}\\ \text{当} S_{1} << S_{2} \text{时}, C \approx C_{2} C=S1+S2C1S1+C2S2S1<<S2CC2

  1. 命中率H和不命中率F

    命中率:CPU访问存储系统时,在 M 1 M_{1} M1中找到所需信息的概率。
    H = N 1 N 1 + N 2 H = \frac{N_{1}}{N_{1} + N_{2}} H=N1+N2N1
    其中:

    • N 1 N_{1} N1 ── 访问 M 1 M_{1} M1的次数
    • N 2 N_{2} N2 ── 访问 M 2 M_{2} M2的次数

    不命中率 F = 1 - H F=1-H F1H

  2. 平均访问时间 T A T_{A} TA
    T A = H T 1 + ( 1 - H ) ( T 1 + T M ) = T 1 + ( 1 - H ) T M = h 1 t 1 + ( 1 − h 1 ) h 2 t 2 + ( 1 − h 1 ) ( 1 − h 2 ) h 3 t 3 . . . . \begin{aligned} T_{A} &= HT_{1}+(1-H)(T_{1}+T_{M}) \\ &= T_{1}+(1-H)T_{M} \\ &= h_{1}t_{1}+(1-h_{1})h_{2}t_{2}+(1-h_{1})(1-h_{2})h_{3}t_{3} .... \end{aligned} TA=HT1(1H)(T1TM)=T1(1H)TM=h1t1+(1h1)h2t2+(1h1)1h2)h3t3....
    分两种情况来考虑CPU的一次访存:

    • 当命中时,访问时间即为 T 1 T_{1} T1命中时间
    • 当不命中时,情况比较复杂。

    T 2 + T B + T 1   =   T 1 + T M T M = T 2 + T B \begin{aligned} T_{2}+T_{B}+T_{1}\ &=\ T_{1}+T_{M} \\ T_{M} &= T_{2} + T_{B} \end{aligned} T2TBT1 TM T1TM=T2+TB

    其中:

    • T M T_{M} TM不命中开销,从向 M 2 M_{2} M2发出访问请求到把整个数据块调入 M 1 M_{1} M1中所需的时间。
    • T B T_{B} TB:传送一个信息块所需的时间。

例题 存储器层次结构的设计

存储系统参数表如下:

存储器层次存取时间容量成本/KB
高速缓存 t 1 = 25 n s t_{1} = 25ns t1=25ns s 1 = 512 K B s_{1} = 512KB s1=512KB$c_{1} = $1.25$
主存 t 1 t_{1} t1未知 s 1 = 32 M B s_{1} = 32MB s1=32MB$c_{2} = $0.2$
磁盘阵列 t 3 = 4 n s t_{3} = 4ns t3=4ns s 3 s_{3} s3未知$c_{3} = $0.0002$

利用下列存储器特性来设计一个3层的层次结构存储器。设计目标是使 T e f f = 10.04 μ s T_{eff} =10.04μs Teff=10.04μs,而高速缓存命中率 h 1 = 0.98 h_{1}=0.98 h1=0.98,主存命中率 h 2 = 0.9 h_{2}=0.9 h2=0.9。同时,存储器总成本上限是$15,000。

解:

总成本为 C = c 1 s 1 + c 2 s 2 + c 3 s 3 < 15 , 000 C = c_{1}s_{1}+c_{2}s_{2}+c_{3}s_{3} < 15,000 C=c1s1+c2s2+c3s3<15,000

  • 由上参数可得在不超过预算的前提下,磁盘的最大容量为 s 3 = 39.8 G B s_{3} = 39.8GB s3=39.8GB

T e f f = h 1 t 1 + ( 1 − h 1 ) h 2 t 2 + ( 1 − h 1 ) ( 1 − h 2 ) h 3 t 3 T_{eff} = h_{1}t_{1}+(1-h_{1})h_{2}t_{2}+(1-h_{1})(1-h_{2})h_{3}t_{3} Teff=h1t1+(1h1)h2t2+(1h1)1h2)h3t3

  • 代入已知量,可以求出:主存存取时间为 t 2 = 903 n s t_{2} = 903ns t2=903ns

7.1.3 三级存储系统

可以看成是由“Cache—主存”层次和“主存—辅存”层次构成的系统。

三级存储系统

  • Cache(高速缓冲存储器)
  • 主存储器
  • 磁盘存储器(辅存)

三级存储系统的作用

  • 从主存的角度来看
    • “Cache-主存”层次:弥补主存速度的不足
    • “主存-辅存”层次: 弥补主存容量的不足

“Cache-主存”与“主存-辅存”层次的区别

层次的区别

7.1.4 存储层次的四个问题

  • 映象规则:当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些位置上?
  • 查找算法:当所要访问的块在高一层存储器中时,如何找到该块?
  • 替换算法:当发生不命中时,应替换哪一块?
  • 写策略:当进行写访问时,应进行哪些操作?
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、 简答题(每小题10分,共20分) 1. 简述使用物理地址进行DMA存在的问题,及其解决办法。 2. 从目的、技术途径、组成、分工方式、工作方式等5个方面对同构型多处理机和异构型多处理机做一比较(列表)。 二、(60分)现有如下表达式: Y = a × X 其中:X和Y是两个有64个元素的32位的整数的向量,a为32位的整数。假设在存储器中,X和Y的起始地址分别为1000和5000,a的起始地址为6000。 1.请写出实现该表达式的MIPS代码。 2.假设指令的平均执行时钟周期数为5,计算机的主频为500 MHz,请计算上述MIPS代码(非流水化实现)的执行时间。 3.将上述MIPS代码在MIPS流水线上(有正常的定向路径、分支指令在译码段被解析出来)执行,请以最快执行方式调度该MIPS指令序列。注意:可以改变操作数,但不能改变操作码和指令条数。画出调度前和调度后的MIPS代码序列执行的流水线时空图,计算调度前和调度后的MIPS代码序列执行所需的时钟周期数,以及调度前后的MIPS流水线执行的加速比。 4.根据3的结果说明流水线相关对CPU性能的影响。 三、(20分)请分析I/O对于性能的影响有多大?假设: 1. I/O操作按照页面方式进行,每页大小为16 KB,Cache块大小为64 B;且对应新页的地址不在Cache中;而CPU不访问新调入页面中的任何数据。 2. Cache中95%被替换的块将再次被读取,并引起一次失效;Cache使用写回方法,平均50%的块被修改过;I/O系统缓冲能够存储一个完整的Cache块。 3. 访问或失效在所有Cache块中均匀分布;在CPU和I/O之间,没有其他访问Cache的干扰;无I/O时,每1百万个时钟周期中,有15,000次失效;失效开销是30个时钟周期。如果替换块被修改过,则再加上30个周期用于写回主存。计算机平均每1百万个周期处理一页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值