【コラム】
コンピュータアーキテクチャの話
138 キャッシュアクセスの2つの考え方
2008/11/18
- プログラミング
- メモリ
- DRAM
- パイプライン
- 分岐命令
- データハザード
- 命令フェッチ
- ストールサイクル数
- 制御ハザード
- パイプラインフラッシュ
- アドレス
- NOP
- IPC
- パイプライン実行
- パイプライン処理
- デコードステージ
- 割り込み
- キャッシュ
- 例外処理
- トラップ
- Instruction Per Cycle
- アクセスタイム
- ロード
- サイクル
- オーバレイ
- ストア
- アクセス
- ローカルメモリ
- 予測
- メモリアクセス
- メインメモリ
- XOR
- 空間的局所性
- 局所性
- インデックス
- Locality
- 時間的局所性
- Spatial Locality
- キャッシュアクセス
- Full Associative Cache
- フルアソシアティブキャッシュ
- Wired OR
キャッシュアクセスの構造
プロセサからメモリアクセス要求が出されると、そのアドレスのデータがキャッシュメモリに格納されているかどうか、格納されている場合は、どのキャッシュラインに入っているかを高速に判定する必要があるが、キャッシュはメインメモリのあちこちのアドレスのデータを格納するので、これは必ずしも簡単ではない。
このやり方として、大きく分けて2つの考え方がある。1つは、プロセサからアクセス要求が出されたアドレスと、キャッシュ内のすべてのキャッシュラインのタグを比較し、上位アドレスが一致したラインがあればヒットであり、そのキャッシュラインのデータを使うという方式である。
この方式は、検索方法としては理想的であるが、すべてのタグに比較回路を付ける必要があり、ハードウェアの物量と消費電力が大きい点が問題である。
もう1つの考え方は、アドレスの一部をインデックスとして使用し、あるアドレスのデータとタグのペアは、キャッシュの固定した部分にしか格納できないという制約を付け、探索範囲を1カ所から数カ所程度に限定することにより検索を容易にする方式である。
この方式は検索は容易であるが、メインメモリ上のアドレスにより使用できるキャッシュラインが決まってしまうので、キャッシュの利用率が低下し、ヒット率が低下するという問題がある。
フルアソシアティブキャッシュ
この理想的に、すべてのキャッシュラインのタグとプロセサからアクセス要求されたアドレスを比較するのがフルアソシアティブ(Full Associative)キャッシュ、あるいは連想キャッシュという方式である。
フルアソシアティブキャッシュは、図4.5に示すように、それぞれのタグの上位アドレス部とプロセサからのアドレスの一致を検出する回路を設け、一致したキャッシュラインはAND回路を開いて、そのデータ部の内容を出力する。
なお、図4.5では通常のXOR回路が書かれているが、この部分はタグの上位アドレス部の数十ビットの一致を検出する回路が必要となる。また、データアレイの出力側のAND回路は、データアレイのサイズだけのビット幅の並列のAND回路が必要である。また、図中の○はOR機能をもつ接続(Wired OR)を示している。
そして、一致回路の出力をバッファしてWired ORすることにより、プロセサからのアドレスがキャッシュ内に存在したというヒット状態を示す信号を生成している。このヒット信号が"1"の場合はデータ出力を使用し、この信号が"0"の場合は、どのキャッシュラインのタグとも一致しなかった、つまり、キャッシュ内に要求されたデータが存在しないことを意味しているので、この信号を使ってメインメモリ(あるいは下位のキャッシュ)へのアクセス動作を開始する。
このフルアソシアティブキャッシュ方式は、どのキャッシュラインにもメインメモリ上の任意のアドレスのデータを格納することができ、格納位置の自由度が高いという利点があるが、タグの比較回路がチップ面積、消費電力の点で大きな負担になるという問題点がある。このため、ライン数が多い大容量のデータや命令キャッシュとしてフルアソシアティブキャッシュ方式のキャッシュが用いられることは稀である。
一方、小容量のキャッシュでは、格納位置の自由度が高く、総メモリ容量の割りにはヒット率が高いという利点があり、後述のアドレス変換テーブルなどのプロセサ内の小容量のキャッシュとしては、フルアソシアティブキャッシュ方式が良く用いられている。
ヘッドライン
- Firefoxパスワード管理を簡単にする5つのエクステンション[17:41 7/13]セキュリティ
- NIMSと理研、グラフェンシートによる結合量子ドット素子の作製に成功[17:40 7/13]エレクトロニクス
- 日本HP、自動負荷テストソフト「HP LoadRunner software 9.5」を発表[16:00 7/13]ソフトウェアテスト
- FirefoxにHTML 5パーサ、Java→C++自動変換で性能改善3%[15:03 7/13]JavaScript / CSS / HTML
- HTML Purifier 4登場、XSS対策およびHTMLスタンダード[14:01 7/13]JavaScript / CSS / HTML
- エンデバー、天候不良のため4度目の打ち上げ延期が決定[11:43 7/13]サイエンス
- 【レビュー】BOOK REVIEW - ITスペシャリスト向けの言葉で説明する、論理思考テクニックの解説書[10:00 7/13]SE力
- 【インタビュー】新FlashファミリがWeb開発のワークフローを変える - Adobeエバンジェリスト[09:00 7/13]プログラミング
- 【レポート】普及期に入ったサーバ仮想化の現状と課題[09:00 7/13]システム管理
- 【連載】にわか管理者のためのActive Directory入門 第52回 オブジェクト一覧のエクスポートとインポート[09:00 7/13]システム管理








