什么是目录方案?

目录方案有选择地仅向存储共享数据块的有效副本的那些缓存发送一致性命令。目录条目必须与每个数据块相关联。目录条目由一组指向缓存的指针组成,该缓存包含块的有效副本。脏位指定是否有任何持有缓存有权更新关联的数据块。

在识别目录方案中可以众所周知的三种主要方法如下 -

  • 全图目录方案

在全映射目录方案中,每个目录条目由与系统中缓存的数量一样多的指针组成。如果缓存 Ci 包含数据块的副本,则指针 Pi 指向 Ci,否则 Pi 指向自身。如果指针和缓存之间是一一对应的,一个简单的标志 Fi 就足以代替一个指针。

在这种称为存在标志向量的实现结构中,如果 Ci 包含有效副本,则标志 Fi 设置为真,否则, Fi 为假。有一个称为脏标志的额外标志,当设置了一个且仅一个存在位时,该标志被设置,指示关联的缓存有权更新数据块。

  • 有限的目录方案

与全映射目录方案相比,有限目录方案的目标是从根本上减少位开销。基于缓存的共享内存系统的特性表明,在绝大多数情况下,只有有限数量的缓存包含相同数据块的有效副本。

共享内存中目录项的结构与全映射方案非常相似。目录条目中的指针数 (k) 远小于共享内存系统中的处理器数 (n),并且这些指针是动态分配给那些包含相关数据块副本的缓存。

因此,简单的位不足以表示指针。在 n 处理器系统日志2 n 中,需要位来定义存在指针并因此为每个内存块存储 k 个指针。有限定向的位开销是$\frac{klog_{2}n}{block}$,而在全映射方案中它是 n/block。如果Klog 2 n<n iek< $\frac{n}{log_{2}n}$,则受限目录方案的位开销小于全映射方案。

  • 链式目录方案

链式目录方案是前两种方案之间的一个很好的折衷方案。它保留了中央目录帧的有限大小,甚至进一步将存在指针的数量限制为 1,然而驱逐变得不必要。

通过在缓存之间分配额外的存在指针来实现存在指针数量的动态扩展。每个缓存中的每个数据块都使用一个指针进行扩展,该指针用于链接数据块的有效副本。该方案的特点是它需要与数据块的有效副本一样多的存在指针。共享内存的目录条目中没有多余的存在指针。

以上是 什么是目录方案? 的全部内容, 来源链接: utcz.com/z/317344.html

回到顶部