“Cache-主存”和“主存-辅存”存储层次的对比分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“Cache-主存”和“主存-辅存”存储层次的对比分析
作者:包得海火克华
来源:《电脑学习》2010年第06期
摘要:本文对“Cache-主存”和“主存-辅存”为两种存储层次依据的原理和基本思想、引入的目的、硬件组成、失效开销、映像规则、查找方法、替换算法、写策略等多个方面进行了对比分析。
以加深对存储层次的理解,提高对层次结构设计思想的认识。
关键词:存储器;存储层次;虚拟存储技术;“Caehe-主存”;“主存-辅存”。
中图分类号:TP333
文献标识码:A
文章编号:1002-2422(2010)06-0110-03
1对比分析
1.1依据的原理和基本思想
程序在运行时遵循局部性原理。
程序的局部性原理表现在两个方面:
(1)时间局部性:如果一个存储项被访问,则可能该项很快再次被访问。
(2)空间局部性:如果一个存储项被访问,则该项及临近项也可能很快被访问。
“Cache-主存”和“主存-辅存”两种存储层次正是基于局部性原理,以“快速实现常见事件”为指导思想来解决存储器容量、速度和价格的矛盾。
两者都将CPU频繁访问的数据和指令存放在速度较高的存储介质中,而将不频繁访问的数据和指令存放在速度较慢但容量较大、价格较低的存储介质中,从而形成了存储器的层次结构。
1.2引入的目的
理想的存储系统应该具有能满足计算要求的容量和与CPU相匹配的速度。
近年来,CPU性能提高的很快,但主存性能的提高却相对较慢,如图1所示。
因此CPU和主存之间在性能上的差距越来越大。
现代计算机都采用Cache来解决这个问题。
就是在CPU和主存之间增加一级或两级速度高、容量较小且每位价格高的高速缓冲存储器。
借助于辅存软硬件,在与主存构成一个有机的整体,以弥补主存速度的不足。
引入“主存-辅存”层次的目的是为了弥补主存容量的不足。
是在主存外面增加一个容量更大,每位价格更低、速度更慢的存储器(称为辅存,一般是硬盘),依靠辅助软硬件的作用,构成一个整体。
“主存-辅存”层次常被用来实现虚拟存储器,向编程人员提供大量的存储空间。
1.3硬件组成
现代计算机,主存都是采用DRAM做成的,而几乎所有的Cache,都采用SRAM,所有的辅存都采用了磁表面存储设备和光盘存储设备。
DRAM的优点之一是单管动态存储元来存储一位信息,其元件数量少,集成度高。
但读取所在位的数据时,会破坏其中的信息,为防止信息丢失,须定期刷新。
其设计的重点是大容量,地址线不能被复用。
为防止信息在读出时被破坏,SRAM中每位使用4至6个晶体管,其访问时间和存储周期没有差别,不需要刷新。
SRAM的存储周期比DRAM的短,但单位价格较贵。
磁表面存储器和光盘存储器的优点是存储容量大,价格低,可重复使用,记录位可以长期保存而不丢失,甚至可以脱机存档,是非破坏性读出,光盘还具有储存密度高等优点。
其主要缺点是存取速度较慢,数据传输率低,机械结构复杂,对工作环境要求较高。
1.4失效开销
从速度上看,目前Cache的访问时间一般是主存的访问时间的1/4到1/100,而主存的访问速度要比磁盘的访问速度快10万倍。
从实现方式的角度看,“Cache-主存”存储层次主要由专用硬件实现,查找转换速度快,而“主存-辅存”存储层次主要由软件实现,查找转换的过程相对较慢。
从所处位置上看,相对辅存主存在物理位置上更加靠近CPU,Cache未能命准时,CPU可直接访问主存,但主存未能命准时,对辅存的访问必须先通过主存,这样从辅存传送一个信息块所需的时间远大于直接从主存传送一个信息块所需的时间。
以上这些原因致使CPU访问不命准时,处理“主存-辅存”存储层次的失效开销远大于处理“Cache-主存”存储层次的失效开销。
1.5映像规则
地址映像的方法很多,常用的有全相联映像、直接相联映像、组相联映像、段相联映像等多种。
选用何种映像方法除了看所用的地址映像和变换硬件能否有高的速度、低的价格以及是否便于实现之外,还要看这种映像方法带来的块(页/段)的冲突概率是否低,空间的利用率是否高等。
全相联映像的主要优点是块的冲突概率最低。
只有当Cache或主存中装满后,才有可能出现块的冲突,所以,Cache和主存的空间利用率最高。
但是,由于其相联存储器容量最大,实现代价相对较大,而且目前Cache的容量已经很大,这样,查表速度比较难以提高。
相比之下,直接映像法所需的硬件简单,成本低。
但Cache的块冲突概率很高,且Cache的空间利用率很低,而组相联映像既能减少块的冲突概率,提高Cache和主存空间的利用率,又能使地址映像机构及地址变换的速度比起全相联映像法要简单和快速。
因此,绝大多数计算机都采用两路组相联或四路组相联。
如表1所示。
相联度越高(即n的值越大),Cache空间的利用率就越高,块冲突概率就越低,因而Cache的失效率就越低。
虽然从降低失效率的角度来看,n的值越大越好,但在后面将看到,增大n值并不一
定能使整个计算机系统的性能提高,而且还会使Cache的实现复杂度和代价增大。
因此,绝大多数计算机都采用直接映象、两路组相联或四路组相联。
特别是直接映像,采用得最多。
因为,“主存一辅存”存储层次的失效开销非常大,操作系统设计者为减少平均访问时间,总是设法降低失效率。
因此,操作系统允许将块放在主存的任意位置,即采用全相联映像。
1.6查找方法
虚拟存储器通过增设地址映像表机构来实现程序在主存中的定位。
这种定位技术把程序分成若干较小的段或页,用相应的映像表机构来指明该程序的某段或某页是否已装入主存。
若已装入主存,则应同时指明其在主存中所处的开始位置;如果未装入主存,则去辅存中调段或页,并建立起程序空间和实存空间的地址映像关系。
这样,程序执行时通过查映像表将程序(虚)地址变换成实际主存地址再访问主存。
但是,“Cache-主存”存储层次中,不宜采用类似虚拟存储器的地址映像表法来存储地址映像关系,因为这种地址映像需要大容量的随机访问存储器来构成,从而代价大、速度慢,所以基本上都采用目录表硬件方式来实现地址的变化和查找。
1.7替换算法
命中率、辅助软硬件成本及是否便于实现是确定替换算法的主要因素。
目前常用的替换算法有随机算法、先进先出、近期最少使用法、最久未使用法等。
在“主存-辅存”存储层次中,因其失效开销非常大,系统设计者必须设法降低失效率,为此现在大多数系统中都采用了基于局部性原理,失效率低、实现相对简单的NRU算法。
而“Cache-主存”存储层次中,NRU和随机法分别因失效率底和实现简单而被广泛采用。
1.8写策略
按照存储层次的要求,Cache内容应是主存部分内容的一个副本,但是在处理机要和主存交换信息时,有时会出现主存内容跟不上Cache对应内容的变化的现象,产生所谓的Cache与主存内容的不一致性问题。
这是可能会导致系统出错,为了保证正确性,主存内容必须更新。
至于何时更新,这正是写策略所要解决的问题。
写策略主要有两种:
(1)全写法,或称写直达法。
即写操作将数据同时写入Cache和主存。
(2)写回法,即写Cache时不写主存,仅当被写Cache数据块要被替换出去时才写回主存。
同样,“主存一辅存”存储层次中也存在主存与辅存内容不一致性问题。
但由于主存的下一级是磁盘,而磁盘的访问时间相对较长,所以,目前还没有一个虚拟存储器操作系统在CPU执行“写”操作时将数据穿过主存直接写入磁盘,虚拟存储器总是采用写回策略。
由于访问磁盘的开销非常大,虚拟存储器通常使用“脏”位设置的办法,来保证只有被修改过了的块才被写回磁盘,这样就可以避免对,一级存储器的不必要的访问。
2结束语
以上对比可知,“Cache-主存”和“主存-辅存”两个存储层次依据的原理和基本思想是相同的,而这两个存储层次的引入目的不同,所选硬件的组成材料不同。
其失效开销也存在着较大差异,正是这些因素影响了在映像规则、替换算法、查找方法、失效时CPU的状态等方面的设计决策。
参考文献
[1]Todd Jobson's Blog Reflections.Santa Clara,CA,USA:Sun Microsystems,2007.
[2]李学干.计算机系统结构.西安:西安电子科技大学出版社,2000.
[3]陆鑫达.计算机系统结构.北京:高等教育出版社,1996.
[4]白中英.计算机组成原理.北京:科学出版社,2002.
[5]孟静.操作系统.北京:高等教育出版社,2001.
[6]汤子瀛,哲凤屏,等.计算机操作系统.西安:西安电子科技大学出版社,1996.。