第三章存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各种信息存储和交换的中心 本章主要内容: 3.1存储系统原理 3.2虚拟存储器 3.3高速缓冲存储器( Cache) 3.4三级存储系统 3.1存储系统原理 什么是存储系统(或存储体系、存储器层次) 为什么研究存储系统? 存储系统的性能指标如何表示? 如何构成存储系统? 3.1.1存储系统的定义 3.1.2存储器的层次结构 3.1.3存储器的频带平衡 3.1.4并行存储器 3.1.1存储系统的定义 在一台计算机中,通常有多种存储器 主存储器、 Cache、通用寄存器、磁盘存储器、各种缓冲存储器、磁带存储 器、光盘存储器等 构成存储器的材料:ECL,TTL,MoS,磁表面存储器,光存储器。静态存储器 SRAM、动态存储器DRAM 存储器的访问方式:直接译码、随机访问、相联访问、块交换、文件组、 手工加载等 存储器的主要性能指标:速度、容量和价格 速度用存储器的访问周期、读出时间、频带宽度等表示。 容量用字节B、千字节KB、兆字节MB和千兆字节GB等表示。 价格用单位容量的价钱表示,例如$C/b 1、存储系统(或存储体系、存储层次)的定义 两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、或软 件与硬件相结合的方法连接起来成为一个系统。这个系统对应用程序员透明 并且,从应用程序员看,它是一个存储器,这个存储器的速度接近速度最快的 那个存储器,存储容量与容量最大的那个存储器相等,单位容量的价格接近最 便宜的那个存储器
3—1 第三章 存储系统 • 现代计算机系统都以存储器为中心 • 在计算机运行过程中,存储器是各种信息存储和交换的中心 本章主要内容: 3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器(Cache) 3.4 三级存储系统 3.1 存储系统原理 什么是存储系统(或存储体系、存储器层次)? 为什么研究存储系统? 存储系统的性能指标如何表示? 如何构成存储系统? 3.1.1 存储系统的定义 3.1.2 存储器的层次结构 3.1.3 存储器的频带平衡 3.1.4 并行存储器 3.1.1 存储系统的定义 • 在一台计算机中,通常有多种存储器 主存储器、Cache、通用寄存器、磁盘存储器、各种缓冲存储器、磁带存储 器、光盘存储器等 构成存储器的材料:ECL,TTL,MOS,磁表面存储器,光存储器。静态存储器 SRAM、动态存储器 DRAM 存储器的访问方式:直接译码、随机访问、相联访问、块交换、文件组、 手工加载等 • 存储器的主要性能指标:速度、容量和价格 速度用存储器的访问周期、读出时间、频带宽度等表示。 容量用字节 B、千字节 KB、兆字节 MB 和千兆字节 GB 等表示。 价格用单位容量的价钱表示,例如$C/bit。 1、存储系统(或存储体系、存储层次)的定义 两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、或软 件与硬件相结合的方法连接起来成为一个系统。这个系统对应用程序员透明, 并且,从应用程序员看,它是一个存储器,这个存储器的速度接近速度最快的 那个存储器,存储容量与容量最大的那个存储器相等,单位容量的价格接近最 便宜的那个存储器
MI (T1, SI, C1) 从外部看: T≈min(T,T2,……,Tn),用存储周期表示 S Sn),用M或GB表示 C≈min(C1,C2,……,Cn),用每位的价格表示 图3.2存储系统原理 在一般计算机系统中,主要有两种存储系统: (1) Cache存储系统:由 Cache和主存储器构成 主要目的:提高存储器速度 (2)虚拟存储系统:由主存储器和磁盘存储器构成 主要目的:扩大存储器容量 分析由两个存储器组成的存储系统,容量、速度和价格关系。 Cache[主存储器 主存储器磁盘存储器 系统程序员看 个应用程序员看: 速度接近 Cache,存储容量等于主存,速度接近主存储器,存储容量是虚拟地 每位价格接近主存储器 址空间,每位价格接近磁盘存储器 Cache存储系统 虚拟存储系统 (S1,C1,T1) (S T2) 图3.5由两个存储器构成的存储系统
3—2 • 在一般计算机系统中,主要有两种存储系统: (1) Cache 存储系统:由 Cache 和主存储器构成 主要目的:提高存储器速度 (2) 虚拟存储系统:由主存储器和磁盘存储器构成 主要目的:扩大存储器容量 分析由两个存储器组成的存储系统,容量、速度和价格关系。 …… 从外部看: T≈min(T1,T2,……,Tn),用存储周期表示 S=max(S1,S2,……,Sn),用 MB 或 GB 表示 C≈min(C1,C2,……,Cn),用每位的价格表示 图 3.2 存储系统原理 应用程序员看: 速度接近主存储器,存储容量是虚拟地 址空间,每位价格接近磁盘存储器。 虚拟存储系统 系统程序员看: 速度接近 Cache,存储容量等于主存, 每位价格接近主存储器。 Cache 存储系统 (S,C,T) 图 3.5 由两个存储器构成的存储系统 Cache M1 (S1,C1,T1) 主存储器 M2 (S2,C2,T2) 主存储器 磁盘存储器 M1 (T1,S1,C1) M2 (T2,S2,C2) Mn (Tn,Sn,Cn)
2、存储系统的容量 要求:存储系统的容量等于M2存储器的容量 提供尽可能大的地址空间,且能够随机访问 方法有两种: 只对M存储器进行编址,Ml存储器只在内部编址 另外设计一个容量很大的逻辑地址空间 3、存储系统的单位容量平均价格 计算公式:C= C1·S1+C2·S2 Si+s 当S2》S1时,C≈C2 但S2与S1不能相差太大 4、存储系统的速度 表示方法:访问周期、存取周期、存储周期、存取时间等 命中率定义:在M存储器中访问到的概率 H 其中:N1是对M1存储器的访问次数 N2是对M2存储器的访问次数 访问周期与命中率的关系: T=HT1+(1-H)T2 当命中率H→1时,T→T1 ·存储系统的访问效率: TI TH·71+(1-H)·72H+(1 f(H, 访问效率主要与命中率和两级存储器的速度之比有关 例3.1:假设T2=5T1,在命中率H为0.9和0.99两种情况下,分别计算 存储系统的访问效率。 解:当H=0.9时,e1=1/(0.9+5(1-0.9))=0.72 当H=0.99时 1/(0.99+5(1-0.99))=0.96 提高存储系统速度的两条途径: 是提高命中率H 二是两个存储器的速度不要相差太大 其中:第二条有时做不到(如虚拟存储器),因此 主要依靠提高命中率 例3.2:在虚拟存储系统中,两级存储器的速度相差特别悬殊T2=10° 如果要使访问效率e=0.9,问需要有多高的命中率? 解:09= H+(1-H)·10 0.9H+90000(1-H=1 89999.1H=89999 计算得H=0.999988887770.9999
3—3 2、存储系统的容量 • 要求:存储系统的容量等于 M2 存储器的容量 提供尽可能大的地址空间,且能够随机访问 • 方法有两种: 只对 M2 存储器进行编址,M1 存储器只在内部编址 另外设计一个容量很大的逻辑地址空间 3、存储系统的单位容量平均价格 • 计算公式: C C S C S S S = + + 1 1 2 2 1 2 • 当 S2》S1 时,C≈C2 但 S2 与 S1 不能相差太大 4、存储系统的速度 • 表示方法:访问周期、存取周期、存储周期、存取时间等 • 命中率定义:在 M1 存储器中访问到的概率 H N N N = + 1 1 2 其中:N1 是对 M1 存储器的访问次数 N2 是对 M2 存储器的访问次数 • 访问周期与命中率的关系: T=HT1+(1-H)T2 当命中率 H→1 时,T→T1 • 存储系统的访问效率: e T T T H T H T H H f H T T T T = = + − = + − = 1 1 1 1 1 1 2 2 1 2 1 ( ) ( ) ( , ) 访问效率主要与命中率和两级存储器的速度之比有关 例 3.1:假设 T2=5T1,在命中率 H 为 0.9 和 0.99 两种情况下,分别计算 存储系统的访问效率。 解:当 H=0.9 时,e1=1/(0.9+5(1-0.9))=0.72 当 H=0.99 时,e2=1/(0.99+5(1-0.99))=0.96 • 提高存储系统速度的两条途径: 一是提高命中率 H 二是两个存储器的速度不要相差太大 其中:第二条有时做不到(如虚拟存储器),因此, 主要依靠提高命中率 例 3.2:在虚拟存储系统中,两级存储器的速度相差特别悬殊 T2=105 T1。 如果要使访问效率 e=0.9,问需要有多高的命中率? 解: 0 9 1 1 10 5 . ( ) = H + − H 0.9H+90000(1-H)=1 89999.1H=89999 计算得 H=0.999998888877777…≈0.999999
5、采用预取技术提高命中率 方法:不命中时,把M2存储器中相邻几个单元组成的一个数据块都取出来 送入M1存储器中。 计算公式:H=H+n-1 其中:H是采用预取技术之后的命中率 H是原来的命中率 n为数据块大小与数据重复使用次数的乘积 证明:采用预取技术,不命中率降低n倍: 1-H H+n-1 H=1 也可以采用另外一种证明方法 在原有命中率计算公式中,把访问次数扩大到n倍,这时,由于采用了预取 技术,命中次数为:mM+(m-1)M,不命中次数仍为M,因此新的命中率为 H=mN+(n-1)N2=N+(nM+nN2)-(M+N2)=H+n-1 nNi+nN2 ni+nN2 例3.3:在一个 Cache存储系统中,当 Cache的块大小为一个字时,命中率 为H=0.8;假设数据的重复利用率为5,计算 Cache的块大小为4个字时, Cache 存储系统的命中率是多少?假设T2=5T1,分别计算访问效率。 解:n=4×5=20,采用预取技术之后,命中率提高到: H+n-108+20-1 0.99 20 Cache的块大小为一个字时,H=0.8,访问效率为 e1=1/(0.8+5(1-0.8))=0.55 Cache的块大小为4个字时,H=0.99,访问效率为 e2=1/(0.99+5(1-0.99))=0.96 例3.4:在一个虚拟存储系统中,T2=10°T1,原来的命中率只有0.8,现采 用预取技术,访问磁盘存储器的数据块大小为4字,如果要求访问效率不低于 0.9,计算数据在主存储器中的重复利用率至少为多少? 解:假设数据在主存储器中的重复利用率为m,根据前面的给出关系 08+4096m-1 9 H H+(1-H)10 4096 解这个方程组,得到m=44,即数据在主存储器中的重复利用率至少为44 次。 3.1.2存储器的层次结构 多个层次的存储器: Register Files Buffers Lookahead)→ Cache → Main Memory→ Online storage→ Off-line Storage
3—4 5、采用预取技术提高命中率 • 方法:不命中时,把 M2 存储器中相邻几个单元组成的一个数据块都取出来 送入 M1 存储器中。 • 计算公式: H H n n ' = + −1 其中:H’是采用预取技术之后的命中率 H 是原来的命中率 n 为数据块大小与数据重复使用次数的乘积 证明:采用预取技术,不命中率降低n倍: H H n H n n ' = − − = + − 1 1 1 也可以采用另外一种证明方法: 在原有命中率计算公式中,把访问次数扩大到 n 倍,这时,由于采用了预取 技术,命中次数为:nN1+(n-1)N2 ,不命中次数仍为 N2 ,因此新的命中率为: H nN n N nN nN N nN nN N N nN nN H n n ' ( ) ( ) ( ) = + − + = + + − + + = 1 2 + − 1 2 1 1 2 1 2 1 2 1 1 例 3.3:在一个 Cache 存储系统中,当 Cache 的块大小为一个字时,命中率 为 H=0.8;假设数据的重复利用率为 5,计算 Cache 的块大小为 4 个字时,Cache 存储系统的命中率是多少?假设 T2=5T1,分别计算访问效率。 解:n=4×5=20,采用预取技术之后,命中率提高到: H H n n ' . = . + − = + − = 1 08 20 1 20 0 99 Cache 的块大小为一个字时,H=0.8,访问效率为: e1=1/(0.8+5(1-0.8))=0.55… Cache 的块大小为 4 个字时,H=0.99,访问效率为: e2=1/(0.99+5(1-0.99))=0.96 例 3.4:在一个虚拟存储系统中,T2=105 T1,原来的命中率只有 0.8,现采 用预取技术,访问磁盘存储器的数据块大小为 4K 字,如果要求访问效率不低于 0.9,计算数据在主存储器中的重复利用率至少为多少? 解:假设数据在主存储器中的重复利用率为 m,根据前面的给出关系: 09 1 1 10 08 4096 1 4096 5 . ' ( ') ' . = + − = + − H H H m m , 解这个方程组,得到 m=44,即数据在主存储器中的重复利用率至少为 44 次。 3.1.2 存储器的层次结构 • 多个层次的存储器:Register Files Buffers(Lookahead) Cache Main Memory Online Storage Off-line Storage
如下图所示,如果用i表示层数,则有: 工作速度:Ti<Ti+1, 存储容量:Si<Si+1, 单位价格:Ci>Ci+1, CPU内部通用寄存器堆 第1层 指令和数据缓冲 第2层 存储容量越来越大,每位的价格越来越便宜 Cache (静态随机存储器) 第3层 主存储器 (动态随机存储器DRAM) 第4层 访问速度越来越快 联机外部存储器 (磁盘存储器等) 第5层 脱机外部存储器 第6层 (磁带,光盘存储器等) 存储器的层次结构 各级存储器的主要主要性能特性 存储器层次通用寄存器缓冲栈 Cache主存储器磁盘存储器脱机存储器 存储周期<10ns <10ns10~60ns60~300ns10~30ms2~20min 存储容量<5128<512B8KB~2B|32B~1GB1GB~1TB|5GB~10TB 价格$C/KB1200 0.01 0.0001 访问方式直接译码先进先出相联访问随机访问块访问文件组 材料工艺 ECL ECL SRAM DRAM 磁表面磁、光等 分配管理编译器分配硬件调度硬件调度操作系统|系统/用户系统/用户 带宽MB/S400~800400~1200200~80080~16010~1000.2~0.6 CPU与主存储器的速度差距越来越大 1955年,第一台大型机IBM704,CPU和主存储器的工作周期均为12微秒
3—5 如下图所示,如果用 i 表示层数,则有: 工作速度:Ti<Ti+1, 存储容量:Si<Si+1, 单位价格:Ci>Ci+1, 各级存储器的主要主要性能特性 存储器层次 通用寄存器 缓冲栈 Cache 主存储器 磁盘存储器 脱机存储器 存储周期 <10ns <10ns 10~60ns 60~300ns 10~30ms 2~20min 存储容量 <512B <512B 8KB~2MB 32MB~1GB 1GB~1TB 5GB~10TB 价格$C/KB 1200 80 3.2 0.36 0.01 0.0001 访问方式 直接译码 先进先出 相联访问 随机访问 块访问 文件组 材料工艺 ECL ECL SRAM DRAM 磁表面 磁、光等 分配管理 编译器分配 硬件调度 硬件调度 操作系统 系统/用户 系统/用户 带宽(MB/S) 400~8000 400~1200 200~800 80~160 10~100 0.2~0.6 CPU 与主存储器的速度差距越来越大 1955 年,第一台大型机 IBM 704,CPU 和主存储器的工作周期均为 12 微秒, CPU 内部 第 1 层 第 2 层 第 3 层 第 4 层 第 5 层 第 6 层 存储器的层次结构 通用寄存器堆 指令和数据缓冲 栈 Cache (静态随机存储器) SRAM) 主存储器 (动态随机存储器 DRAM) 联机外部存储器 (磁盘存储器等) 脱机外部存储器 (磁带,光盘存储器等) 存 储 容 量 越 来 越 大 , 每 位 的 价 格 越 来 越 便 宜 访 问 速 度 越 来 越 快