☞在三级存储体系中,cache-主存和主存-辅存这两个存储层次有许多相同点。
(1)出发点相同 二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。
(2)原理相同 都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。
注:局部性原理指分支局部性,空间局部性,时间局部性。
☞但 cache-主存和主存-辅存这两个存储层次也有许多不同之处。
(1)侧重点不同 cache 主要解决主存与 CPU 的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。
(2)数据通路不同 CPU 与 cache 和主存之间均可以有直接访问通路,cache 不命中时可直接访问主存;而虚存所依赖的辅存与 CPU 之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU 最终还是要访问主存。
注:调页指以页式存数据
(3)透明性不同 cache 的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)。
(4)未命中时的损失不同 由于主存的存取时间是 cache 的存取时间的 5~10 倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于 cache 未命中时的损失。