キャッシュにハーバード・アーキテクチャーを
採用する損得
最後にハーバード・アーキテクチャーの話に触れておこう。もともと語源の由来は、米ハーバード大が購入した(製造はIBM)「Harvard Mark I」というリレー式計算機に、この技術が採用されたことに起因する。
本来のハーバード・アーキテクチャーの意味は、「命令とデータの物理的な分離」である。CPU一般の話として、基本的に命令やデータはすべてメモリーに置かれている。これがひとつの場所に置かれていると、例えば命令を読み込み中にはデータへのアクセスはできないし、逆にデータへのアクセス中に次の命令を読み出すこともできない(当初はこれが一般的な方法であり、これをノイマンズ・アーキテクチャーと呼ぶ)。
ハーバード・アーキテクチャーでは命令格納用メモリーとデータ格納用メモリーを物理的に分割する。データアクセスしながら次の命令の取り込みもできるようにすることで、メモリー帯域がボトルネックになる、という問題を解決したわけだ。
とはいえ、この方式だと物理的に2つの記憶領域が必要になるため、コスト面では不利である。結果として、高性能が必要とされる用途はともかく、マイコンなどでは長らくハーバード・アーキテクチャーは無視されてきた。
しかし、プロセッサーにも高速化のためにキャッシュが搭載できるようになったことで、命令用のキャッシュとデータ用のキャッシュを分離すれば、キャッシュへのアクセスがボトルネックになる心配がなくなることに、どこかのエンジニアが気がついた。その結果、Pentium世代以降のx86プロセッサーのほとんどが、1次キャッシュにハーバード・アーキテクチャーを採用している。
例外はCyrixの「M2」シリーズで、これは64KBのユニファイド・キャッシュ(命令/データを区別しない)方式だった(関連記事)。ハーバード・アーキテクチャーの欠点は、常に2つのキャッシュがフルに使われるとは限らないことだ。命令かデータのどちらか一方に、もう少しキャッシュを割り当てた方が高速になる、というシーンがランダムに現れるのが一般的であり、結果としてユニファイド・キャッシュの方が効果的に1次キャッシュを使えるという信念に基づいた選択であった。
ただし、そうなると当然パイプラインで命令フェッチとデータフェッチが競合するケースがありえる。これを避けるために、1次キャッシュと命令フェッチの間に256Byteのバッファを挟む形で回避していた。つまり、これが事実上の命令1次キャッシュとして作用していたようなものである。
もっとも、ハーバード・アーキテクチャーですべてを構成すると、必要なキャッシュがどんどん増えてゆくし、実際利用効率もよくない。そのため2次キャッシュ以降はユニファイド・キャッシュの構成になっているのが一般的だし、(先も述べたとおり)Core iシリーズでは2次TLBすらユニファイド構成になっている。このあたりの損得もまた、判断が難しいところなのだ。
この連載の記事
-
第769回
PC
HDDのコントローラーとI/Fを一体化して爆発的に普及したIDE 消え去ったI/F史 -
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ -
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ -
第759回
PC
プリンター接続で業界標準になったセントロニクスI/F 消え去ったI/F史 - この連載の一覧へ