検索
連載

キャッシュメモリの基礎福田昭のデバイス通信 ARMが語る、最先端メモリに対する期待(6)(3/3 ページ)

今回は、キャッシュメモリについて解説する。キャッシュの考え方はとてもシンプルだが、実装となるとさまざまな方法があって複雑だ。今回は、3つのキャッシュアクセス構造について説明しよう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

実用的な構造は「セットアソシアティブ方式」

 そこで、フルアソシアティブ方式とダイレクトマッピング方式の中間的な方式である「セットアソシアティブ(Set Associative)方式」が、ほとんどのCPUアーキテクチャが採用するキャッシュ構造となっている。

 セットアソシアティブ方式では、インデックスを利用してマッピングするという点では、ダイレクトマッピング方式と変わらない。ただし、同じインデックスに対応するキャッシュラインを複数個、用意する。最も単純な構造では、同じインデックスに対して2個のキャッシュラインを準備しておく。この同じインデックスに対応するキャッシュラインのグループを「ウエイ」と呼ぶ。そしてウエイの数に応じてグループを特定する。例えば2個のキャッシュラインを同じインデックスに用意した場合は「2ウエイ」となり、1つのグループを「ウエイ0」、もう1つのグループを「ウエイ1」と呼んで区別する。なおウエイ数は2個(2ウエイ)とは限らない。4ウエイ、8ウエイといったキャッシュ構造も採用されている。

 具体的なキャッシュアクセス動作は以下のようになる。CPUがアクセス要求を出したアドレスからは、まずインデックスに対応するラインを探す。当然ながらウエイ数と同じだけの候補が見つかる。あるいは、対応するラインが見つからない(「キャッシュミス」、あるいは「ミス」と呼ぶ)。候補が見つかった場合は、上位アドレスの違いから、どのウエイのラインが対応するか、あるいはどのウエイのラインも対応していないかを判断する。

2ウエイ・セットアソシアティブ方式の概念図
2ウエイ・セットアソシアティブ方式の概念図(クリックで拡大) 出典:ARM

(次回に続く)

⇒「福田昭のデバイス通信」連載バックナンバー一覧

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る