现代的存储器体系结构是这样的:
越往上访问速度越快,更小,成本也越高。越往下访问速度越慢,更大,成本也越低。
在最高层(L0)是少量快速的CPU寄存器,CPU可以在一个时钟周期内访问他们。接下来是一个或多个小型到中型的基于SRAM高速缓存存储器。可以在几个CPU时间周期内访问他们。然后是基于DRAM的主存,可以在几十到几百个时钟周期内访问它们。接下来是慢速但是容量很大的本地磁盘。最后有些系统甚至包括一层附加到远程服务器上的磁盘要通过网络来访问他们。
高速缓存存储器缓存了主存的指令和数据。而主存建立了散列表,用来缓存磁盘的逻辑块。磁盘又以文件的形式缓存了来自网络的数据。
缓存是建立在当前层与下一层之间的一种关系。下一层包含了所要的数据,当前层从下一层提取数据。当从当前层提取到了数据,则缓存命中。若不成功则缓存不命中。从下一层取出数据以及与数据相近的数据,放入当前层并读取。若当前层层数已满,则要执行替换操作。
CPU中有至少2级的缓存,也就是L1和L2。L1缓存,也称内部缓存;和L2缓存,也称外部缓存。有一些比较好的CPU上面则会有第三级的缓存,也就是L3,L3的用途是补充L2用的。L1,L2,L3层的缓存完全由内置在缓存中的硬件逻辑来管理。在一个虚拟存储器系统中,DRAM主存作为存储在磁盘上的数据块缓存。是由操作系统软件和CPU上的地址翻译硬件共同管理的。对于一个具有像afs这样的分布式文件系统的机器来说,本地磁盘作为缓存它是由运行在本地机器上的afs客户端进程管理。