このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第538回

AtomベースのSmall CoreがTremontと判明 インテル CPUロードマップ

2019年11月25日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

実行ユニット数は7つ
SandyBridge程度の性能を省電力で実現

 さて次はBack End。まずはInteger Unit側である。先ほども書いた通りユニット数は7つで、ALU×3、AGU×2、分岐×1、Store Data×1という構成だ。相変わらずAGU(つまりLoad Data)とStore Dataを別々のユニットとするのは、もはやインテルの伝統かもしれない。

従来のCore系は、Branch UnitをALUとポート共有の形にしており、これを分離しているのが興味深い

 Issue Portは6つで、2つのAGUは1つのRSで共用となるのは理屈にかなっているとは思う。この7つの実行ユニットという構成は、世代的に言えばSandyBridgeとHaswellの中間くらいに位置する。

 IvyBridgeがALU×3+AGPU×2+Store Data×1、HaswellがALU×4+AGPU×3+Store Data×1になっており、性能的にはSandyBridgeあたりに近い程度である。

 ただSandyBridgeに比べて分岐ユニットが別になっているほか、SandyBridge/HaswellともにALUとFPUが同一のポートを利用していたのに対し、TremontではFPUは別のIssue Portを使う形になっており、よりすっきりした効率の良さそうな構成になっている。

 逆に言うと、この構成のままではx86換算で平均3命令/サイクル以上は望めそうにない。もちろんうまく組み合わせればピーク性能はもう少し上がるが、平均して4命令/サイクルを狙ったHaswell以降や、5命令/サイクルを視野に入れたSunnyCoveには遠くおよばない。要するに平均してSandyBridge程度のIPCを、省電力で実現するというのが目標と思われる。

 Tremontはまた、ベクトル演算にも割り切りが見られる。まずAVXに関しては実装していない。これは別にTremontだけでなくGoldmont PlusまでのAtomコアに共通の機能であるが、実際最新版のIntel 64 and IA-32 Architectures Software Developer Manualsを確認しても、SSEはサポートされているがAVX/AVX2/AVX512をサポートするプロセッサーとしてTremontが挙がっていない(Volume 1のChapter 5)。

SSEはサポートするがAVXは実装しないなど、ベクトル演算にも割り切りが見られる

 AVXが未実装なのは、「AVX命令を使うプログラムはSunnyCoveを利用すれば良い」という割り切りと考えられる。

 その代わり、特にネットワーク用途やNASのコントローラーの場合には暗号化/復号化処理が多くなることを考えてか、AES128/256対応の暗号化アクセラレーターに加え、GFNI(ガロア体演算)という新しい命令セットを追加した。今のところこれはTremontのみに実装されており、SunnyCoveですら未サポートとなっている。

 ガロア体演算はリードソロモンや楕円体暗号などで利用される演算手法で、これを高速化するのが目的と考えられる。SSEの場合は128bit幅ということもあり、Load/Storeユニットというかデータパスにそれほど負担をかけないため、省電力性が確保できる、というあたりもAVXをサポートしない理由の1つだろう。

 なお、上の画像には記されていないが、MOVDIRI(Direct Store)という命令が新たに追加されている。これはWrite-combiningをバイパス、データをData Cache/L2 Cacheに書き込むことなく直接メモリーに書き出すというもので、特に外部のアクセラレーターなどと煩雑にやり取りをする際に書き込み完了までの時間を短縮する効果がある。Tremontがネットワーク向け機器の用途などを想定していることをうかがわせる新命令である。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン