CPUコア
図2はSandy BridgeのCPUコアの内部構造である。基本的な構造はNehalem/Westmere(32nmプロセスのCore iシリーズ、以下略)世代のアーキテクチャーを踏襲しており、4命令同時フェッチ/デコードのインオーダー部と、6命令分の実行ポートを持つアウトオブオーダー部の組み合わせとなっている。
ただし、当然ながら細かいところでは、いろいろと相違点がある。まずインオーダー部(図2ではスケジューラーより上側)に関しては、従来から引き続いて「Loop Stream Detector」(LSD)※1という仕組みが設けられている。
※1 プログラム中の繰り返し構造を認識し、小規模なループであれば命令デコーダーを動かさずに内部バッファから命令を供給する。
Nehalem世代の場合、このLSDは28μOp(マイクロオプス、CPU内部で実際に処理される小命令)分のバッファを持っていたが、Sandy Bridgeではこれが一挙に1500μOp分まで大幅拡張された。これに加えて、「分岐予測も従来より強化された」という話であるが、その点については詳細不明である。
デコーダーに関してはもうひとつ、新たに「Zeroing Idioms」という機構も搭載された(図2ではAllocateの辺りに含まれる)。これは、実行ユニットを動かすまでもない命令※2は、命令を発行せずに処理を済ませてしまうというものだ。これにより、実行ユニットの効率向上と省電力化の両方を狙う。
※2 例えば「XOR AX,AX」といった、AXレジスターをクリアするだけの命令。
続くアウトオブオーダー部も見てみよう。先述のとおり、6命令分の実行ポートという構成や、ALUが3ポート、LSU(Load Store Unit)が3ポートという配分などは、Nehalem世代と同じである。その意味では、Sandy Bridgeのアウトオブオーダー部は「Nehalemのアウトオブオーダー部を改良したもの」と言っても差し支えない。その改良点であるが、大きく目立つものとして以下の2点が挙げられる。
- AVX命令の実装
- Load/Store Addressのスループットを倍に強化
まずAVXの実装について説明しよう。図3のようにALUはPort 0、1、5に割り当てられている。Nehalem世代の場合、整数演算ならば汎用レジスターを、整数演算のSSE命令ならばSSEレジスターをInteger型(整数型)として、浮動小数点演算のSSE命令ならばSSEレジスターをFloat/Double型(浮動小数点型)として、それぞれ扱うようになっている。
AVX命令では、このSSEレジスターへの操作をそのまま流用するように実装されている。そのためAVXレジスターは256bit幅にも関わらず、128bit幅のSSE演算ユニットを使って、計算できるようになったわけだ。
例えば、Port 1でAVXの加算命令を行なう場合、まず前半128bit分をSSEのInteger用インターフェース(I/F)「SSE INT ADD」を流用して演算結果を書き込む。次に、SSE Float/Double用のI/F「FP ADD」を流用して、後半128bit分の演算結果を書き込む、という処理を行なう。演算ユニットそのものを256bit化するのは、性能面ではメリットがあっても、消費電力や回路規模の増大の観点から好ましくない、と判断したようだ。
なおAVXの詳細については、こちらの記事も参照していただきたい。
この連載の記事
-
第13回
PCパーツ
マザーないけど…… Sandy Bridgeの「Core i3」がデビュー! -
第12回
PCパーツ
不具合によりP67/H67搭載マザーが全ショップで販売停止中 -
第11回
マザーボード
インテル、Intel 6チップセットのエラーを公表 -
第10回
PCパーツ
Sandy Bridge発売日にインテルがイベントを開催 -
第9回
マザーボード
「Sandy Bridge」対応マザーボード一斉発売!【その他編】 -
第8回
マザーボード
「Sandy Bridge」対応マザーボード一斉発売!【Intel編】 -
第7回
マザーボード
「Sandy Bridge」対応マザーボード一斉発売!【Gigabyte編】 -
第6回
デジタル
「Sandy Bridge」対応マザーボード一斉発売!【ASRock編】 -
第5回
マザーボード
「Sandy Bridge」対応マザーボード一斉発売!【ASUSTeK編】 -
第4回
PCパーツ
自作ユーザー集結! インテル新CPUが深夜に販売解禁! -
第3回
自作PC
ついに登場! 新型Core i7/i5シリーズの価格をチェック - この連載の一覧へ