文档介绍:7存储系统
计算机存储系统的层次结构
计算机系统对存储器的要求是:容量大、速度
快、成本低,但由于各类存储器各具其特点,
即半导体存储器速度快、成本较高;磁表面存
储器容量大、成本低但速度慢,无法与CPU高
速处理信息的能力相匹配。因此,在计算机系
统中,通常采用三级存储器结构,即使用高速
缓冲存储器、主存储器和外存储器组成的结构。
CPU能直接访问的存储器称为内存储器,它包
括高速缓冲存储器和主存储器; CPU不能直接
访问外存储器,外存储器的信息必须调入内存
储器后才能为CPU进行处理。
Cache-主存-辅存三级存储层次如图所
示。其中Cache容量最小,辅存容量最大,
各层次中存放的内容都可以在下一层次
中找到。这种多层次结构已成为现代计
算机的典型存储结构。
Cache
CPU 高速缓冲
寄存器组存储器
主外
存设
主机
高速缓冲存储器
cache 存储器工作原理
掌握要点:
在一个较短的时间间隔内,CPU对局部范围的
存储器地址频繁访问,而对此地址范围之外的
地址访问很少,这种现象称程序访问的局部性。
存储器的理论依据
它是为了提高存储系统的存取速度而设立的,
其理论依据是程序访问的局部性原理。
存储器
cache 存储器是位于CPU和主存之间的一个容
量相对较小的存储器,它的工作速度倍于主存,
全部功能由硬件实现,并且对程序员是透明的
存储器的基本结构
设主存有2n个单元,地址码为n位,将主
存分块(block),每块有2b 个字节;Cache
也由同样大小的块组成,由于其容量小,
所以块的数目小得多,主存中只有一小
部分块的内容可存放在Cache中。
设n=m+b,则可得出:主存的块数M=
2m,块内字节数=2b。Cache地址码为(c
+b)位,Cache的块数为2c,块内字节数
与主存相同,。
主存的地址
主存块号
块标记 Cache 块号块内地址
m 位 b位
c 位 b位
Cache的地址格式
图4. 29 Cache和主存的地址的地址格式
当CPU发出读请求时,将主存地址的m-c位与
Cache某块的标记相比较,根据其比较结果是
否相等而区分出两种情况:当比较结果相等时,
说明需要的数已在Cache中,那么直接访问
Cache就行了,在CPU与Cache之间,通常一次
传送一个字块;当比较结果不相等时,说明需
要的数据尚未调入Cache,那么就要把该数据
所在的整个字块从主存一次调进来。前一种情
况称为访问Cache命中,后一种情况称为访问
Cache不命中。
块的大小称为“块长”。块长一般取一个主存周
期所能调出的信息长度。
Cache存储器中保存的字块是主存中相应字块
的一个副本。如果程序执行过程中要对该字
块的某个单元进行写操作,就会遇到如何保持
Cache与主存的一致性问题。通常有两种写入
方式:
(1)标志交换(flag-swap)方式或“写回法”。
这种方式是暂时只向Cache存储器写入,并用
标志加以注明,直到经过修改的字块被从
Cache中替换出来时才一次写入主存。这种方
式写操作速度快,但因在此以前,主存中的字
块未经随时修改而可能失效。
(2)写直达法
这种方式是每次写入Cache存储器时也同
时写入主存,使Cache和主存保持一致。
这种方式实现简单,且能随时保持主存
数据的正确性。但是,有可能要增加多
次不必要的向主存的写入。假如向Cache
存储器某一单元写入多少次,也要向主
存相应单元写入多少次。
当被修改的单元根本就不在Cache存储
器时,写操作直接对主存进行,而不写
入Cache存储器。