今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御
ここで,キャッシュに関して簡単におさらいします.キャッシュでは,メイン・メモリを数バイトから数十バイトの「ライン(あるいはブロック)」という単位で管理します.具体的には,キャッシュとメイン・メモリの間のデータ転送,キャッシュ上にデータがあるかどうか(ヒット/ミス・ヒット)を,すべてラインの単位で管理します(図2).以下で説明するプロセッサ間のデータのやり取りも,ラインの単位で処理されます.
図2 キャッシュはライン(ブロック)単位で管理する
ラインのサイズが4バイトのキャッシュの例.0xabc0番地から4バイトのデータがキャッシュにコピーされている状況を表す.このとき,CPUから0xabc2番地のデータをロードすると,このアドレスを含むラインがすでにキャッシュ上に存在する(ヒット)ので,キャッシュからデータを高速にロードできる.アドレスがキャッシュ上に存在しない場合(ミス・ヒット)は,メイン・メモリからキャッシュにデータを転送する必要がある.