ディレクトリのエントリは、ホームノードが管理するメモリ量(例えば4GB)をキャッシュラインサイズ(例えば64B)で割ったものとなり、この例では、64Mエントリを必要とする。

また、各キャッシュラインは複数のプロセサに格納されることがあるので、それぞれのエントリに、どのプロセサに格納されているかを示す情報を持つ必要がある。しかし、これが1024プロセサもある場合には、各1ビットのビットマップで持つとしても各エントリは128バイトとなり、ディレクトリ全体では16GBを必要とし、4GBの物理メモリでは格納できない。

このため、Origin 2000では2CPUを1ノードとして管理し、システム全体を8個のブロックに分割している。そして、すべての輸出先ノードが1つのブロックに収まっている場合は、3ビットのブロック番号と64ビットのビットマップでブロック内の輸出先のノード番号を記憶している。一方、輸出先が複数のブロックにまたがる場合は、ビットマップの1ビットが8ノードグループを表す形式を使用し、64ビットのビットマップで輸出先のグループを示す。そして、この場合は8ノードのグループ単位でスヌープを送るという方式を採っている。このような2つの格納方式の組み合わせで、単純にやると128バイトを必要とするエントリのサイズを8バイトに圧縮している。

しかし、このようにサイズを圧縮したとしても64Mエントリでは512MBという大きな容量を必要とするので、ディレクトリ本体はメインメモリに格納し、メモリコントローラにはディレクトリのキャシュを持つという構成が一般的である。

コモンバスを使用するシステムでは、メモリは1まとめでコモンバスに繋がっているので、どのアドレスをアクセスしてもアクセス時間は一定であり、このようなメモリアーキテクチャをUMA(Uniform Memory Architecture)と呼ぶ。それに対して、ノードごとにメモリを分散配置するなどの理由で、アクセスするメモリのアドレスによってアクセス時間が異なるシステムをNUMA(Non Uniform Memory Architecture)と呼ぶ。ディレクトリ方式では、自分のノードのメモリをアクセスする場合と比べて、それ以外のノードのメモリをアクセスする場合は、一旦、ホームノードに要求を送るため、メモリのアクセス時間が長くなるNUMAアーキテクチャである。そして、ディレクトリを使ってキャッシュ間のコヒーレンシを維持しているシステムは、ccNUMA(Cache Coherent NUMA)と呼ばれる。

昔のccNUMA方式のマシンでは、ローカルノードのメモリアクセスに比べて、リモートノードのメモリのアクセスには数倍以上の時間が掛かり、プログラムを作る上でメモリ配置を良く考えて、リモートメモリのアクセスが少なくなるようにしないと性能が大幅に低下するという問題があった。しかし、最近ではクロックの高速化に伴い、メモリアクセス時間と比較すると相対的にディレクトリ機構のアクセスに掛かる時間が小さくなり、このローカルとリモートのメモリアクセス時間の差が小さくなってきている。また、Opteronの例に見られるようにキャッシュコヒーレンスの方式としてはUMA系のブロードキャスト技術を使っていても、どのノードに存在するメモリをアクセスするかでデータの転送時間が変わり、アクセス時間が異なるというシステムが一般的になっている。一方、クロックが向上し、Opteronのように複数のチップを経由してメモリをアクセスしても、アクセス時間の増加は比較的小さくなっており、実用的な観点からは、UMAとccNUMAであまり差が無くなって来ている。

なお、IntelのQuick Path Interconnect(QPI)を用いるNehalemプロセサは、当初、このディレクトリベースのキャッシュコヒーレンス機構を用いると説明されてきたが、HotChips20での発表によると、ブロードキャストによるスヌープを用いており、AMDのccHT(cache coherent Hyper Transport)を用いるシステムと似通っているようである。