新たな省電力化への取り組み
Physical Register File
だが、こうしてデータパスを256bit化することは、消費電力が増えるという新たな問題を生む。倍のデータ量を一度に転送するわけだから、これは避けようがない。この増えた消費電力の分の埋め合わせとして、新たに搭載された省電力機構が「Physical Register File」である。ちなみに直訳すると「物理レジスタファイル」になるが、これは正しい訳とはいえない。
図3は、Nehalem世代までのパイプラインを簡略化した図である。黒い矢印が処理の流れで、赤い矢印がデータの流れを意味する。ここで「何かしらのLoad命令が実行され、その結果をつかって演算を行ない、最後にStore命令で結果を書き戻す」というシーケンスを考えると、以下のような処理になる。
- ①最初のLoad命令が実行され、メモリーからデータを取り込む。取り込んだ結果は、とりあえずメモリーコントローラーの内部バッファ「C」に蓄えられる。
- ②Load命令の完了にともない、取り込んだ結果をRetirement Unitに戻す。この際内部バッファ「C」からRegister File「A」に値をコピーする。
- ③次の命令が実行される場合、Scheduleで実行タイミングが確定した段階で、Execute Unitの内部バッファ「B」にその値をコピーする。
- ④Execute Unitはその値を元に演算を行ない、結果をBに書き戻す。
- ⑤実行が終わると、結果は再びRetirement Unitに戻される。このタイミングで内部バッファ「B」からRegister File「A」に値をコピーする。
- ⑥Store命令でメモリーに書き戻すため、「A」の内容をメモリーコントローラーのバッファ「C」にコピーする。
- ⑦「C」の内容をメモリーに書きだして終了。
この処理を見ると、②/③/⑤/⑥の過程で、CPU内部のユニット間でデータのコピーが発生している。これだけの回数データのコピーをすれば、それは消費電力が増えるというものである。
ではPhysical Register Fileを使うとどうなるのか?(図4) こちらは「レジスタは1ヵ所にまとめて移動しない」のが特徴である。上と同じ処理はこうなる。
- ①「Allocate」でレジスタ「A」を利用することを確定し、それをポインタ領域(Pointer)に設定する。
- ②Load命令では、まずポインタにアクセスして書き込む場所を確定する。
- ③Load命令を実行して、「A」に値を格納する。
- ④次の演算命令のために、Allocateはポインタを更新。
- ⑤演算命令もまずポインタをアクセスする。
- ⑥「A」に値が入っていることを確認後、値を取り込む。
- ⑦結果を「A」に書き戻す。
- ⑧Store命令のために、Allocateはポインタを更新。
- ⑨Store命令はポインタを参照する。
- ⑩その内容をメモリーに書き出して終了。
この場合、何度かポインタ参照は発生するが、バッファ間でのデータコピーが一切なくなるため、これにともなう消費電力を削減できるメリットがある。
この連載の記事
-
第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史 -
第758回
PC
モデムをつなぐのに必要だったRS-232-CというシリアルI/F 消え去ったI/F史 - この連載の一覧へ