内存层次结构详解
在现代计算机系统中,处理器速度、主存(DRAM)速度和二级存储(磁盘)速度之间的差距不断扩大,如何以处理器所需的速度提供数据和指令,同时满足现代应用对不断扩展的内存空间的需求,成为了一个极具挑战性的问题。为了解决这个问题,现代系统采用了基于速度、大小和成本的内存层次结构。
1. 内存层次结构概述
内存层次结构可以分为缓存层次结构和虚拟内存层次结构,如下面的表格所示:
| 层次 | 类型 | 速度 |
| ---- | ---- | ---- |
| 寄存器文件 | 寄存器 | 0.5 ns |
| L1缓存 | 缓存 | 5 ns |
| L2缓存 | 缓存 | 20 ns |
| L3缓存 | 缓存 | 200 ns |
| 主存 | DRAM | 无明确值 |
| 磁盘 | 二级存储 | 10 ms |
处理器和主存之间的速度差距呈指数级增长,这一问题被称为“内存墙”。为了缩小这一差距,系统采用了多级缓存,并且各级缓存的设计越来越复杂,以减少或隐藏缓存未命中的延迟。现代的无锁定(非阻塞)缓存能够同时处理多个缓存命中和未命中情况,还会在需要之前预取数据和指令。
在多处理器和多核系统中,由于共享资源的竞争、一致性需求以及互连网络带来的延迟,内存墙问题更加严重。不过,本文主要关注单核系统的内存架构。
缓存由缓存行组成,每个缓存行可以容纳一个相同大小的内存块。由于缓存比主存小得多,一个特定的缓存行可以被多个内存块共享,并且随着时间的推移可以包含不同的内存块。内存块到缓存行的映射方式是缓存的一个重要特性。当处理器在某个级别的缓存中找到所需地址时,称为
超级会员免费看
订阅专栏 解锁全文
2037

被折叠的 条评论
为什么被折叠?



