Cache技术和虚拟存储技术都是为了提高访存速度以及提高计算机的性能,但两者的实现方法和目标是不同的。
·目标不同。Cache主要是提高内存的速度,即减少CPU和内存的速度差;而虚拟存储技术主要是扩大存储容量,降低存储器的价格。
·实现方法不同。Cache主要用硬件实现,Cache的存在与否程序员可以完全不知道;而虚拟存储技术主要用软件实现,系统程序员必须了解所采用的虚拟存储技术及其映射和调度算法。
·不命中时的损失不同。Cache不命中,则可直接访问主存储器,损失较小;而内存储器不命中,则要改为访问外存储器,这是程序的切换,时间较长,损失较大。
1.Cache技术
Cache技术的目标是通过提高存储速度来提高计算机的性能。而CPU与主存储器的速度差随着CPU速度的迅速提高而越来越大。Cache技术就是一种用较低成本缩小这种速度差的技术。
(1)命中率
对于多级存储系统,需要厘清命中率、访问效率和等效存取时间的关系。
考虑如图5.3所示的两级存储系统。某一段时间内的访问次数分别为N1、N2,存取时间分别为T1、T2,则存储器1的命中率H为
访问的平均时间T为
若命中率H接近1,平均访问时间T就接近于存储器1的访问时间T1。若定义存储器的访问效率为
则有(www.daowen.com)
可见,这种两级存储系统的访问效率e和命中率H及两者的速度比T2/T1有关。
通常存取速度比T2/T1是5倍左右。若要使e大于0.9,则命中率H应大于97.2%。程序执行的局部性特点保证只要存储器1具有适当容量,就可以提高命中率,从而达到提高存取速度,使存储系统的平均存取速度接近于存储器1的最快存取速度的目的。
图5.3 两级存储系统图
Cache和主存储器之间的速度关系一般是4~10倍,若速度差太大,应采用多级Cache。
(2)Mapping技术与地址变换
Cache映射到主存储器的方法有很多,主要有全相联映射、直接映射和组相联映射。其中最常用的是组相联映射。
(3)Cache的替换算法
要提高Cache的命中率,要求运行的程序和数据都在Cache内,若访问的内容不在Cache内,就要用Cache内容进行替换。常用的算法有随机替换算法、先进先出(FIFO)算法、最近最少使用(LRU)算法和最久没有使用(LFU)算法。其中使用堆栈算法进行LRU算法,是非常成熟的广泛应用的技术。
(4)更新算法——Cache和主存储器一致性的问题
访问内存储器主要是访问Cache,为了保证主存储器和Cache的一致性,必须通过更新算法来解决。
2.虚拟存储技术
内存储器和外存储器构成了一个两级系统。该系统和由Cache与主存储器构成的系统从原理上看没有什么差别,但因为实现方法、目标、命中率的损失不同而具有它的特殊性。在主存储器一辅存层次的概念上增加附加的软硬件,构成了一种新的存储系统——虚拟存储器(virtual memory),它是一种存储管理的概念,而非一种物理存在的存储器。虚拟存储技术的基础是系统有联机工作(即随时可以读写)的海量存储器,该海量存储器和内存储器构成虚拟存储器,它的容量是海量存储器的容量,而速度接近于内存储器的速度。虚拟存储器主要用软件实现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。