最近のCPUのボトルネックと、G5がイケてない理由
公開日:
:
最終更新日:2014/02/01
コラム・雑記
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
とある方から「最近のCPUのボトルネックって知ってる?」との問いかけ。答えは以下の引用のあたりらしい。
Core MAのアーキテクチャの場合、真の問題はじつはパイプラインのフロントエンドにある。命令フェッチ/命令プリデコード/命令デコードが、Core MAの大きなボトルネックになっている。
Core MAでは、32KBのL1命令キャッシュから命令フェッチユニット(Instruction Fetch Unit)が16 bytes単位のアライメントで命令をフェッチする。これは、32 bytesに命令フェッチを拡張しているAMDやCentaur Technologyの次のCPUと比べると狭い。AMDとCentaurは32 bytesのフェッチでなければ、実行パイプラインに十分な命令供給ができないケースがあると指摘している。
また、Core MAでは、プリデコーダがフェッチした命令群に対して、命令区分をマーキングする。プリデコーダは最大6個のx86命令を1サイクルでマークできるが、命令長やアドレス長を変化させる命令プリフィックスを使うと、途端に効率が悪化してしまう。
ARMあたりはここら辺に関して対策が施されている。ARM命令は32ビット固定長命令だけれど、ほとんどのARMプロセッサにおいて、16ビット固定命令長の「Thumb命令」がサポートされている。これによって、狭いバス幅でも実行効率が落ちにくい。多くの組み込み機器において、16ビット幅のバスの先に遅いメモリが接続されている場合が多い。Thumb命令は、組み込み向けならではの対策であるとも言える。
んで、PowerPCはここら辺が非常に弱いんだそうな。詳細については忘れたし、ググってみてもよく分からなかったので、どなたか補足希望。