存储器系统
Goal :
- 了解存储器系统的基本概念 及 不同类型半导体存储器的特点.
- 熟练掌握典型半导体存储器芯片与系统的连接.
- 掌握存储器扩展技术.
- 了解高速缓冲存储器(Cache)的概念及其一般工作原理.
5.1. 概述
从程序员的角度看, 计算机必须把程序和数据装入存储器才能开始运行. 存储器是计算机系统的记忆设备, 用来存放计算机要执行的指令, 处理的数据, 运算结果以及各种需要保存的信息. 从记忆信息的角度讲, 计算机中的存储器就相当于咱们人的大脑了!
由第二章的内容可知, 在程序执行过程中, CPU从存储器中取指令. 运算指令中需要的数据也要通过访问存储器指令从存储器中拿到.
而我们程序的运算结果在程序结束前(HLT)是必须要圈闭写入到存储器中去的. 同时, 各种输入输出IO设备也直接的与存储器交换数据.
存储器是计算机运行过程中信息存储交换的中心设备. 可以说, 现代计算机系统就是以存储器为中心的!
一图了解计算机中的存储器的层次结构:
从体系结构上, 计算机的存储器可以逐级分为 :
-
寄存器(Registers)
寄存器是 CPU 内部的小型高速存储器,用于临时存放运算中的数据。寄存器的访问速度是最快的,但容量最小。 -
高速缓存(Cache Memory)
高速缓存位于 CPU 和主存储器之间,用于缓存 CPU 经常使用的数据或指令。高速缓存的存取速度比主存储器快,但容量比主存储器小。常见的高速缓存有 L1、L2、L3 缓存。 -
主存储器(RAM)
主存储器是存放程序和数据的主要地方。它的存取速度比高速缓存慢,但容量大。 -
辅存储器(Hard Disk, SSD 等)
辅存储器的容量最大,但存取速度最慢。通常用于存储操作系统、应用程序和大数据文件。 -
内存(主存) - primary storage memory / main memory : 用来存储当前运行所需要的程序和数据(store the current running of the program and data.)
特点 FEATURE - 容量小, 存取速度快, 价格较高, 随机存取, CPU可直接访问.
主要由半导体材料(semiconductor memory)制成 -> RAM, ROM
-
外存 - second storage memory : 用来存储非运行的程序和数据(store the non-current running of the program and data.)
特点 FEATURE - 容量大, 存取速度慢, 价格较低, 顺序存取/块存取.
由磁性材料(magnetic memory), 光学材料(optical memory) 和 半导体材料(semiconductor memory)等复合材料制成 -> semiconductor memory. -> 磁盘(Disk), 磁带(Magnetic Tape), CD-ROM, SSD, HDD
存储器有两种基本操作 – 读Read 和 写Write. 读就是读, 写就是写(XD). 读操作是指从存储器中读出信息,不破坏存储单元中原有的内容;写操作是指把信息写人(存入)存储器,新写人的数据将覆盖原有的内容.
5.1.1 存储器系统的一般概念
在现代计算机种通常有多种用途的存储器件, 像是有内存, 高速缓存(Cache), 磁盘, 可移动硬盘, 磁带, 光盘等等等等. 它们的工作速度, 存储容量, 单位容量价格, 工作方式以及制造材料等等等等都各不相同.
由此我们就引出了存储器系统, 存储器系统和存储器是两个不一样的概念. 其概念是: 将两个or两个以上速度, 容量和价格(speed, capacit and price)各不相同的存储器 用 软硬件的方法连接起来, 成为一个系统.
1 - 微机中的存储器系统
高速缓存 - Cache 一般由高速静态存储器(SRAM)组成, 存取周期为 0.X ns, 容量较小(几十KB ~ 几十MB), 价格较高.
主存 一般由动态存储器(DRAM)组成, 存储周期为 几 ns ~ 几十 ns, 存储容量较高(几百MB ~ 几GB).
现代微机系统种通常有两种存储系统 :
-
由高速缓存(Cache memory) 和 主存储器(Main memory) 构成的 Cache存储系统(Cache storage system). -> 主要解决 速度问题.
-
由 主存储器(Main memory) 和 磁盘(Disk storage) 构成的 虚拟存储系统(Virtual storage system).
-
Cache 存储系统 - Cache storage system : 管理全部由硬件实现, 不需要来自用户的干预 -> 即它对软件开发设计人员是透明的.
-
虚拟存储系统 - Virtual storage system : 由 主存储器与磁盘存储器 构成. 早期的微机种, 磁盘等外存储器作为外部设备的一部分, 仅用于长期保存信息. 由于内存容量很小, 用户必须花费很大精力将大程序预先分块存储.
由于磁盘存储器不是能随机访问的存储器 -> 不能被一般指令直接访问, 而 主存储器 的地址空间对于用户又太小, 现代虚拟存储系统在操作系统的支持下为用户另外设计了一个虚拟地址空间. 他将主存和外存看成一个整体 做管理. 用户可以对主存, 辅存统一编制, 这样形成的一个很大的地址空间, 称为虚拟存储系统.
2 - 存储系统的主要性能指标
三个参数 : 存储容量SSS, 存取时间TTT 和 单位容量价格CCC.
设一个存储系统(S,T,CS, T, CS,T,C) 由两种存储器M1M_1M1 和 M2M_2M2(S1,T1,C1S_1, T_1, C_1S1,T1,C1 and S2,T2,C2S_2, T_2, C_2S2,T2,C2)
存储容量SSS
对于Cache存储系统, 存储系统C 更接禁主存储器的容量, 故选择主存M2M_2M2进行变址, 对 Cache 在内部采用相连访问方式管理 -> S=S2S = S_2S=S2
对于虚拟存储系统, 它的地址空间比主存 大得多.
存取时间TTT
我们先引入一个概念 - 命中率HHH, 表示从速度较快的存储器访问到数据的机率. 存储器系统的存取时间与命中率HHH有关. 我们执行一组典型例程, 统计对M1,M2M_1, M_2M1,M2 的访问次数N1,N2N_1, N_2N1,N2, 命中率HHH即 :
H=N1N1+N2 H = \frac{N_1}{N_1 + N_2} H=N1+N2N1
整个存储器系统的存取时间可以用M1,M2M_1, M_2M1,M2 两个存储器的存取时间 T1,T2T_1, T_2T1,T2 和命中率HHH表示 :
T=H⋅T1+(1−H)⋅T2 T = H \cdot T_1 + (1-H) \cdot T_2 T=H⋅T1+(1−H)⋅T2
当命中率 H→1H \rightarrow 1H→1, T→T1T \rightarrow T_1T→T1 -> 财产权信托的速度接近于较快的M1M_1M1存储器的存取周期T1T_1T1
设存储器系统的访问效率为 :
e=T1T e=\frac{T_1}{T} e=TT1
存储器系统的速度与相对较快的哪个存储器的速度越接近, 访问效率就越高:
e=T1H⋅T1+(1−H)⋅T2=1H+(1−H)⋅T2T1 \begin{aligned} e & = \frac{T_1}{H \cdot T_1 + (1-H) \cdot T_2} \\ & = \frac{1}{H + (1-H) \cdot \frac{T_2}{T_1}} \end{aligned} e=H⋅T1+(1−H)⋅T2T1=H+(1−H)⋅T1T21
从上面我们得到的这个公示可以看出, 存储系统的访问效率主要与命中率和构成存储系统的两级存储器的速度之比有关. 因此, 如果要使存储系统的访问效率提高有两个途径: 1. 提高HHH; 2. 减少两级存储器的速度比.
单位容量的平均价格CCC
整个存储器系统的单位容量价格可由下式计算:
C=C1×S1+C2×S2S1+S2 C = \frac{C_1 \times S_1 + C_2 \times S_2}{S_1 + S_2} C=S1+S2C1×S1+C2×S