关于存储器层次结构的四个问题:
Q1:一个块可以放在什么位置?
Q2:如何查找一个块?
Q3:当发生缺失时,应该替换哪个块?
Q4:写操作时会发生什么?
一、Cache的放置(映射规则)、查找、替换和写策略:
1. 放置策略(映射规则):直接映射、全相联映射和组相联映射。
2. 查找策略:Cache地址划分:标志字段(判断是否命中)+ 索引字段(选择组)+块内偏移(从块中选择需要的数据)
3. 替换策略:随机替换、LRU、FIFO
4. 写策略:写直达(Write Through)、写回(Write Back)
写失效时的策略:按写分配(内存的块先读到Cache中,再执行上个写命中时的操作),不按写分配(直接修改底层存储器中的块,而不将该块取到Cache中)。
二、内存的放置、查找、替换和写策略:
1. 放置策略:操作系统允许将块放在内存的任意位置,即全相联。
2. 查找策略:虚拟地址通过页表转换成物理地址,进行查找。
由于页表非常大,需要放在内存中。导致从存储器中访问数据至少需要访存两次,一次获得物理地址,另一次访问数据。利用局部性原理,将一部分页表放在硬件Cache中,称为TLB或快表,来加快地址转换。
3. 替换策略:LRU。
4. 写策略:写回。因为访问内存的下一级存储,即磁盘,延迟非常大。
三、虚存保护
计算机运行着多个进程,每个进程有自己的地址空间。虚存是一种存储器共享技术,把物理存储器分块并分配给不同的进程使用。因此需要一套保护机制,即只能让一个进程访问属于自己的地址空间。
进程保护的一个方法是权限控制,不同的进程拥有不同的权限。