新たな省電力化への取り組み
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命令はポインタを参照する。
- ⑩その内容をメモリーに書き出して終了。
この場合、何度かポインタ参照は発生するが、バッファ間でのデータコピーが一切なくなるため、これにともなう消費電力を削減できるメリットがある。
この連載の記事
-
第776回
PC
COMPUTEXで判明したZen 5以降のプロセッサー戦略 AMD CPU/GPUロードマップ -
第775回
PC
安定した転送速度を確保できたSCSI 消え去ったI/F史 -
第774回
PC
日本の半導体メーカーが開発協力に名乗りを上げた次世代Esperanto ET-SoC AIプロセッサーの昨今 -
第773回
PC
Sound Blasterが普及に大きく貢献したGame Port 消え去ったI/F史 -
第772回
PC
スーパーコンピューターの系譜 本格稼働で大きく性能を伸ばしたAuroraだが世界一には届かなかった -
第771回
PC
277もの特許を使用して標準化した高速シリアルバスIEEE 1394 消え去ったI/F史 -
第770回
PC
キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史 -
第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ロードマップ - この連載の一覧へ