2直接映象及其变换 1)规则:主存中每一块只能映像到 Cache中唯一 个特定位置,如图所示,主存的第i只能映像到 第imod2"c块位置上。如图435所示:
2.直接映象及其变换 1)规则:主存中每一块只能映像到Cache中唯一一 个特定位置,如图所示,主存的第i块只能映像到 第i mod2 ncb块位置上。如图4.35所示:
主存 块0 0区 Cache 块位置0 块2cb+0 1区 块22cb 2区 图435直接映象规则 2mb-b-1区 2 mb
…… Cache 块位置 0 1 2 ncb - 1 主存块01 2nmb- 1 … 2 ncb - 1 块 2 ncb + 0 2 ncb… +1 2 · 2 ncb - 1 块 2 · 2 ncb … +0 3 · 2 ncb … - 1 … 0 区 1 区 2 区 2 nmb - ncb 图 4.35 直接映象规则 - 1 区
2)变换过程 主存块号块内地址 主存地址 区号 nmb mi m Cache地址 cb cr 由 不等 中/失效(相联比较 2 cb 相等 选 0 访 Cache 2c项 图436直接映象的 2-cb-1 地址变换过程 区 (按地址访问存贮器)
2)变换过程 主存块号 块内地址 主存地址 nm nmb nmr ncb ncr Cache地址 nc … 2 ncb项 相联比较 不等 块失效 区号 … 0 1 2 ncb -1 • • 相等 访Cache 区号 (按地址访问存贮器) 由 2 ncb 中 选 1 图 4.36 直接映象的 地址变换过程
3)优缺点 优点: a)所需硬件简单,只需要容量较小的按地址访问 的区号标志表存贮器和少量外比较电路,因此 成本低。 b)访问 Cache与访问区号表、比较区号是否相符 的操作是同时进行的。当 Cache命中时就意味着 省去了地址变换所花费的时间
3)优缺点 优点: a)所需硬件简单,只需要容量较小的按地址访问 的区号标志表存贮器和少量外比较电路,因此 成本低。 b)访问Cache与访问区号表、比较区号是否相符 的操作是同时进行的。当Cache命中时就意味着 省去了地址变换所花费的时间
缺点:直接映象法最致命的缺点就是 Cache的块 冲突率很高。只要有两个或两个以上经常使用的块 恰好被映象到 Cache的同一个块位置时,就会使得 Cache的命中率急剧下降。而且,即使此时 Cache 中有大量的空闲块存在,仍然会发生块失效和块冲 突,无法使用 Cache中的空闲块,所以, Cache的 利用率很低。正是因为这个原因才使得目前采用直 接映象的 Cache存贮器很少了
缺点:直接映象法最致命的缺点就是Cache的块 冲突率很高。只要有两个或两个以上经常使用的块 恰好被映象到Cache的同一个块位置时,就会使得 Cache的命中率急剧下降。而且,即使此时Cache 中有大量的空闲块存在,仍然会发生块失效和块冲 突,无法使用Cache中的空闲块,所以,Cache的 利用率很低。正是因为这个原因才使得目前采用直 接映象的Cache存贮器很少了
3组相联映象及其变换 1)思想:简要说明如下图437所示,将 Cache空间 和主存空间都分组,每组S块(S=2)。 Cache一共 2"个块,分成Q组(Q=2,整个 Cache是一区。 主存分成与 Cache一样大小的2个区,其地址按 区号、组号、组内块号、块内地址分成对应的4个 字段。主存地址的组号、组内块号分别用q、S字 段表示,它们的宽度和位置与 Cache地址的q、s 是一致的
3.组相联映象及其变换 1)思想:简要说明如下图4.37所示,将Cache空间 和主存空间都分组,每组S块(S=2 s )。Cache一共 2 ncb个块,分成Q组(Q= 2q ),整个Cache是一区。 主存分成与Cache一样大小的2 nd个区,其地址按 区号、组号、组内块号、块内地址分成对应的4个 字段。主存地址的组号、组内块号分别用q、s ' 字 段表示,它们的宽度和位置与Cache地址的q、s 是一致的
2)规则:组相联映象指的是各组之间直接映象,但 组内各块间则是全相联映象。如图43所示
2)规则:组相联映象指的是各组之间直接映象,但 组内各块间则是全相联映象。如图4.37所示
-ncb 1位2位 1位1位2位 组号内块号块内地 no nn号组号阻内块号内地址 mr 主存 块 Cache 第0组 0块位置0 第0组 0-12-34 3 第0区 2 ( Cache容量) 第1组 7-13 第1组 0 10-1|2第组 iT-13 组内全相联 1z-10 第1区 组间直接相联 ( Cache容量 13 图437组相联映象规则、上二2)第1组 3
组号 q 组内块号 s 块内地址 ncr 组号 q 组内块号 s' 块内地址 nmr 区号 nd 1位 2位 1位 1位 2位 ncb nmb nc nm 块位置0 块0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 9 10 11 12 13 14 15 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 第0组 第0组 第1组 第1组 第0组 第1组 第0区 (Cache容量) 第1区 (Cache容量) Cache 主存 组内全相联 组间直接相联 图4.37 组相联映象规则
3)讨论 当组相联映象的S值大到等于 Cache的块数即s=ncb) 时就变成了全相联映象,而当S值小到只有1块即无s 字段)时就变成了直接映象。因此全相联映象和直接映 象只是组相联映象的两个极端。在 Cache空间大小及 块的大小都已经确定的情况下, Cache的总块数就定 了,但结构设计者仍可以对S和Q值进行选择。Q和S 的选取主要依据对块冲突概率、块失效率、映象表复 杂性和成本、查表速度等的折衷权衡。组内块数S愈 多,块冲突概率和块失效率愈低,映象表愈复杂、成 本愈高,查表速度愈慢。所以通常采用在典型工作负 荷下进行模拟而定
3)讨论 当组相联映象的S值大到等于Cache的块数(即s= ncb) 时就变成了全相联映象,而当S值小到只有1块(即无s 字段)时就变成了直接映象。因此全相联映象和直接映 象只是组相联映象的两个极端。在Cache空间大小及 块的大小都已经确定的情况下,Cache的总块数就定 了,但结构设计者仍可以对S和Q值进行选择。Q和S 的选取主要依据对块冲突概率、块失效率、映象表复 杂性和成本、查表速度等的折衷权衡。组内块数S愈 多,块冲突概率和块失效率愈低,映象表愈复杂、成 本愈高,查表速度愈慢。所以通常采用在典型工作负 荷下进行模拟而定
4)地址变换 区号丁组号组内块号块内地址 d n mr nts 直接 直接 组中选 块失效(相状比会)相等 不等 组号组内块号内地址 s n nc 2行 相联比较 表的总容量为 2cb=20·2行 s s
4)地址变换 组号 q 组内块号 s' 块内地址 nmr 区号 nd 组号 q 组内块号 s 块内地址 ncr nm nc 直接 直接 相联比较 不等 块失效 相等 • 相联比较 nd s' s • nd +s' 表的总容量为 2 ncb = 2 q·2 s行 2 q 组 中 选 1 2 s行