この製品のアーキテクチャは、リージョンの内容が常に同期していることを保証することなく、リージョンをミラーリングする。
異なる値を持つミラー領域があると、機密情報が漏洩したり、システムが危険にさらされたりする可能性がある。
パフォーマンスを向上させるために、リソースを複製する必要があるかもしれない。キャッシュ・メモリはこのコンセプトの一般的な例であり、データ要素の「ローカル」コピーを高速キャッシュ・メモリに保持する。残念ながら、このスピード向上には欠点がある。同期が取れなくなると、計算結果はもはや真ではなくなる。
ハードウェア設計において、ミラーリングされるのはメモリだけではない。レジスタやメモリ領域、場合によっては演算ユニット全体など、ミラーリングされるエンティティは他にもたくさんある。例えば、マルチコア・プロセッサーの場合、各コアのすべてのメモリーアクセスが単一のメモリー管理ユニット(MMU)を経由すると、MMUが性能のボトルネックになる。このような場合、ローカルMMUを複製し、すべてのコアではなくコアのサブセットのみに対応させることで、性能問題を解決できる可能性がある。このようなローカルコピーは、"シャドーコピー "または "ミラーコピー "とも呼ばれる。
元のリソースが変更されなければ、ローカルの重複コピーが同期しなくなることは問題にならない。しかし、元のコピーの値が変更されることがあります。オリジナル・コピーが変更されると、ミラー化されたコピーも変更されなければなりません。
シャドウコピーがオリジナルコピーと同期しない可能性があるという状況は、以下のような複数のシナリオの結果として発生する可能性があります:
The product's architecture mirrors regions without ensuring that their contents always stay in sync.
Having mirrored regions with different values might result in the exposure of sensitive information or possibly system compromise.
In the interest of increased performance, one might need to duplicate a resource. A cache memory is a common example of this concept, which keeps a "local" copy of a data element in the high speed cache memory. Unfortunately, this speed improvement comes with a downside, since the product needs to ensure that the local copy always mirrors the original copy truthfully. If they get out of sync, the computational result is no longer true.
During hardware design, memory is not the only item which gets mirrored. There are many other entities that get mirrored, as well: registers, memory regions, and, in some cases, even whole computational units. For example, within a multi-core processor, if all memory accesses for each and every core goes through a single Memory-Management Unit (MMU) then the MMU will become a performance bottleneck. In such cases, duplicating local MMUs that will serve only a subset of the cores rather than all of them may resolve the performance issue. These local copies are also called "shadow copies" or "mirrored copies."
If the original resource never changed, local duplicate copies getting out of sync would never be an issue. However, the values of the original copy will sometimes change. When the original copy changes, the mirrored copies must also change, and change fast.
This situation of shadow-copy-possibly-out-of-sync-with-original-copy might occur as a result of multiple scenarios, including the following: