存储器
局部性原理
一个编写良好的计算机程序常常具有良好的局部性(locality)。也就是,它们倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
- 时间局部性(temporal locality): 在一个具有良好时间局部性的程序中,被引用过一次的内存位置很可能在不远的将来再被多次引用
- 空间局部性(spatial locality): 在一个具有良好空间局部性的程序中,如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置。
分类
计算机系统中的作用
- 主存储器/内存: 主机的一部分,用于存放系统当前正在执行的数据和程序(临时存储器)
- 辅助存储器/外存: 为外部设备,用于存放不用的数据和程序(永久存储器)
存储介质
- 半导体器件: 半导体存储器(RAM,ROM,主存)
- 磁性材料: 磁表面存储器(磁盘,磁带,辅存)
- 光介质: 光盘存储器(辅存)
存取方式
- 随机存取: 按地址访问,存取时间与存储单元的位置无关(主存)
- 顺序存取: 按地址访问,存取时间与存储单元的位置有关(磁盘,磁带)
- 相联存取: 可以按内容(Content)或标签(Tag)访问存储单元
读写方式
- 只读存储器(ROM,Read-Only Memory)
- 随机存取存储器(RAM,Random-Access Memory)
信息的可保存性
- 永久记忆存储器/非易失性存储器: 断电后仍能保存信息(ROM,辅存)
- 非永久记忆存储器/易失性存储器: 断电后信息丢失(主存中的RAM)
性能指标
- 存储器容量: 存储器中所有存储单元的总数目(存储器可容纳的二进制信息量),描述单位通常为 字节 或 位
- 位是构成存储器的最小单位,字节是数据存储的基本单位
- 单元地址是内存单元的唯一标志
- 量化单位: 通常用 KB, MB, GB, TB 表示(B=8位,1个字节),其中 , , ,
- 总容量 = 存储单元个数 * 存储单元字长 (bit) 或 总容量 = 存储单元个数 * 存储单元字长 / 8 (Byte)
- 存储速度
- 存取时间(Memory Access Time): 启动一次存储器操作到完成该操作所需的全部时间,时间越短,性能越好(单位: ns)
- 存取周期(Memory Cycle Time): 存储器进行连续两次独立存储器操作所需的最小间隔时间(通常存储周期不小于存取时间)
- 存储器带宽: 单位时间内从存储器读出的二进制数信息量,一般用 B/S(字节/秒)或 b/S(位/秒)表示
- 存储器价格: 以每个数据位的价格来衡量
- 设存储器的容量为S,价格为C,则位价为C/S
- 包含存储元件以及为该存储器操作服务的外围电路的价格
- 可靠性: 表示存储器正常工作(正确存取)的性能
层次结构
背景
- 存储技术: 不同存储技术的访问时间差异很大。速度较快的技术每字节的成本要比速度较慢的技术高,而且容量较小。CPU 和主存之间的速度差距在增大
- 计算机软件: 一个编写良好的计算机程序常常具有良好的局部性
层次结构图
- L0 - L4 在主机内,往下的存储器位于主机外部
- 存储器层次结构的本质是,每一层存储设备都是较低一层的缓存
- 缓存和主存之间主要需要解决速度不匹配问题, 主存和辅存之间主要需要解决容量不匹配问题
- 缓存和主存使用的是实地址(物理地址), 主存和辅存之间使用虚地址(逻辑地址)
性能特性比较
存储器层次 | 通用寄存器 | Cache | 主存储器 | 磁盘存储器 | 脱机存储器 |
---|---|---|---|---|---|
存储周期 | <10ns | 10 ~ 60 ns | 60 ~ 300ns | 10 ~ 30 ms | 2 ~ 20 min |
存储容量 | <512B | 8KB ~ 2MB | 32MB ~ 1GB | 1GB ~ 1TB | 5GB ~ 10TB |
价格 | 很高 | 较高 | 高 | 较低 | 低 |
材料工艺 | ECL | SRAM | DRAM | 磁表面 | 磁、光等 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Forgotten Area!