|
知识路径: > 计算机系统基础知识 > 硬件基础知识 > 存储系统 > 虚拟存储器基本工作原理、多级存储体系 > 高速缓存 >
|
相关知识点:3个
|
|
|
|
CPU工作时给出的是主存的地址,要从Cache存储器中读写信息,就需要将主存地址转换成Cache存储器的地址,这种地址的转换叫作地址映像。Cache的地址映像有以下三种方法:
|
|
|
(1)直接映像。直接映像是指主存的块与Cache块的对应关系是固定的,如下图所示。在这种映像方式下,由于主存中的块只能存放在Cache存储器的相同块号中,因此,只要主存地址中的主存区号与Cache中的主存区号相同,则表明访问Cache命中。一旦命中,根据主存地址中的区内块号立即可得到要访问的Cache存储器中的块,而块内地址就是主存地址中给出的低位地址。
|
|
|
|
|
直接映像方式的优点是地址变换很简单,缺点是灵活性差。例如,不同区号中块号相同的块无法同时调入Cache存储器,即使Cache中有空闲块也无法使用。
|
|
|
(2)全相联映像。全相联映像的示意图如下图所示。同样,主存与Cache存储器均分成容量相同的块。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。
|
|
|
|
|
进行地址变换时,利用主存地址高位表示的主存块号与Cache中保存的主存块号进行比较,若相同即为命中。这时根据块号就可知道要访问的是哪一块。Cache存储器的块找到后,块内地址就是主存的低位地址。这时便可以读写Cache块中的内容。在变换时,当找到主存块号命中时,还必须知道主存的这一块存到了Cache的哪一块里面。
|
|
|
全相联映像的主要优点是主存的块调入Cache的位置不受限制,十分灵活。其主要缺点是无法从主存块号中直接获得所对应Cache的块号,变换比较复杂,速度比较慢。
|
|
|
(3)组相联映像。这种方式是前面两种方式的折衷。具体做法是将Cache中的块再分成组。例如,假定Cache有16块,再将每两块分为1组,则Cache的块就分为8组。主存同样分区,每区16块,再将每两块分为1组,则每区的块就分为8组。
|
|
|
组相联映像就是规定组采用直接映像方式而块采用全相联映像方式。也就是说,主存任何区的0组只能存到Cache的0组中,1组只能存到Cache的1组中,依此类推。组内的块则采用全相联映像方式,即一组内的块可以任意存放。也就是说,主存一组中的任一块可以存入Cache相应组的任一块中。
|
|
|
这种方式下,通过直接映像方式来决定组号,在一组内再用全相联映像方式来决定Cache中的块号。由主存地址高位决定主存区号与Cache中区号比较可决定是否命中。主存后面的地址即为组号。
|
|
|