Cache/主存及主存/辅存层次:理解计算机存储体系
Cache/主存及主存/辅存层次:理解计算机存储体系
·
Cache/主存及主存/辅存层次:理解计算机存储体系
|
🌺The Begin🌺点点关注,收藏不迷路🌺
|
一、计算机存储层次概述
计算机存储系统采用分层结构,每一层都通过特定的技术手段,在速度、容量、成本之间取得平衡:
寄存器 → Cache → 主存(RAM) → 辅存(磁盘) → 磁带/光盘
↑ ↑ ↑ ↑
最快 高速 中等 大容量
最小 缓存 速度 低速
最贵 主存 廉价
二、Cache-主存层次
1. 主要作用
- 解决速度矛盾:缓和CPU高速与主存相对低速之间的速度不匹配
- 原理:利用程序的局部性原理
- 时间局部性:刚被访问的数据很可能再次被访问
- 空间局部性:相邻的数据很可能被一起访问
2. 实现方式
- 纯硬件实现:对程序员透明,完全由硬件自动管理
- 关键硬件:
- SRAM(静态随机存储器):速度快、成本高、集成度低
- Cache控制器:管理数据在Cache和主存间的移动
3. Cache工作原理
CPU请求数据时:
1. 首先在Cache中查找(命中→立即返回)
2. 未命中→从主存读取
3. 同时将该数据及相邻数据读入Cache(利用空间局部性)
4. Cache命中率
- 公式:命中率 = 命中次数 / 总访问次数
- 影响因素:
- Cache容量(容量↑ → 命中率↑)
- 映射策略(直接映射、组相联、全相联)
- 替换算法(LRU、FIFO、随机)
三、主存-辅存层次
1. 主要作用
- 解决容量矛盾:逻辑扩大主存空间,使程序可以使用比实际物理内存更大的空间
- 实现虚拟存储:为每个进程提供独立的、连续的地址空间
2. 实现方式
- 软硬件结合实现
- 硬件:MMU(内存管理单元)、TLB(快表)
- 软件:操作系统(页表管理、页面置换算法)
3. 虚拟存储原理
虚拟地址空间 → MMU转换 → 物理地址空间
(程序视角) (实际内存)
当访问的页面不在内存时:
1. 产生缺页中断
2. 操作系统从磁盘调入页面
3. 如有必要,淘汰一个旧页面(页面置换)
四、两大层次对比
| 对比项 | Cache-主存层次 | 主存-辅存层次 |
|---|---|---|
| 主要目的 | 提高访问速度 | 扩大存储容量 |
| 解决矛盾 | CPU-主存速度差 | 主存容量有限 |
| 实现方式 | 纯硬件 | 软硬件结合 |
| 管理单位 | 块/行(Block/Line) | 页/段(Page/Segment) |
| 透明性 | 对系统和用户均透明 | 对用户透明,系统管理 |
| 数据交换 | 硬件自动完成 | 操作系统控制 |
| 典型速度比 | 5-10倍差距 | 1000-10000倍差距 |
五、关键技术细节
Cache关键技术
-
映射方式:
- 直接映射:简单,易冲突
- 全相联映射:灵活,成本高
- 组相联映射:折中方案(最常用)
-
写策略:
- 写直达:同时写Cache和主存(一致性好,速度慢)
- 写回:只写Cache,淘汰时才写回主存(速度快)
虚拟存储关键技术
-
地址转换:
- 页式管理:固定大小页面
- 段式管理:按逻辑模块划分
- 段页式:结合两者优点
-
页面置换算法:
- OPT(最佳置换):理论最优
- FIFO(先进先出):简单,可能Belady异常
- LRU(最近最少使用):效果较好,常用
六、性能指标
Cache性能
- 平均访问时间:
T_avg = Hit_time + Miss_rate × Miss_penalty - Cache命中时间:通常1-3个时钟周期
- 缺失代价:通常10-100个时钟周期
虚拟存储性能
- 有效访问时间:
EAT = (1-p) × 内存访问时间 + p × 缺页处理时间 - 缺页率p:对性能影响极大
七、现代发展
Cache的演进
-
多级Cache:L1、L2、L3缓存
- L1:分离指令Cache和数据Cache
- L2:统一Cache
- L3:多核共享
-
智能预取:预测未来要访问的数据提前加载
虚拟存储扩展
- 大页支持:减少页表项数量
- 内存压缩:提高有效内存容量
- 交换分区优化:SSD作为交换设备
八、实际应用示例
程序优化建议
// 优化Cache利用率:提高空间局部性
int sum_array(int arr[100][100]) {
int sum = 0;
// 按行访问(连续内存)→ Cache友好
for(int i=0; i<100; i++) {
for(int j=0; j<100; j++) {
sum += arr[i][j];
}
}
// 按列访问 → Cache不友好(频繁缺失)
return sum;
}
九、总结要点
-
两大层次,两个目标:
- Cache:加速(解决CPU等待问题)
- 虚拟存储:扩容(解决内存不足问题)
-
核心原理:
- Cache:局部性原理 + 硬件自动管理
- 虚拟存储:分页/分段 + 操作系统管理
-
性能关键:
- Cache:命中率决定性能
- 虚拟存储:缺页率决定性能
重要结论:Cache-主存层次使存储系统看起来更快,主存-辅存层次使存储系统看起来更大,两者结合让计算机既拥有接近Cache的速度,又拥有接近磁盘的容量。
理解存储层次是优化程序性能、理解操作系统内存管理、设计高效系统的关键基础。

|
🌺The End🌺点点关注,收藏不迷路🌺
|
更多推荐



所有评论(0)