後藤弘茂のWeekly海外ニュース
NVIDIAのARMコア「Denver」などがHot Chipsで発表
(2014/8/13 06:00)
動的な最適化を行なうDenverマイクロアーキテクチャ
ARMアーキテクチャで、IntelのPC向けCPUのHaswell(ハズウェル)クラスのパフォーマンスを達成する……ただしモバイルデバイスに載せられる電力で。これが、NVIDIAの64-bit ARMコア「Denver(デンバー)」のコンセプトだ。では、どうやってハイパフォーマンスと省電力を両立させるのか。NVIDIAは米クパチーノで開催されている半導体チップ関連の学会「Hot Chips 26(A Symposium on High Performance Chips)」(米国時間8月10~12日)で、Denverのアーキテクチャの一部を明らかにした。簡単にサマリーをレポートする。
Denverは7個の実行ユニットを持つスーパースカラCPUだ。通常のスーパースカラCPUは、動的なスケジューリング機構でオンザフライで命令をアウトオブオーダで並べ変え、並列に実行する。しかし、実行できる命令は、命令デコーダがデコードできる命令帯域に制約される。例えば、ARMのCortex-A15は8実行ユニットを備えるが、命令デコーダは3命令/サイクルで、ピークのIPC(Instruction-per-Clock)は3 IPCとなる。
それに対して、Denverはハードウェアデコーダでデコードして実行した命令を、動的に最適化。最適化したマイクロ命令をオプティマイゼーションキャッシュに保存する。そして、同じパスを実行する時には、オプティマイゼーションキャッシュから最適化されたコードを取り出して実行する。Denverのハードウェアデコーダは2命令/サイクルだが、最適化して並列度を高めたコードを実行する際にはピークで7以上のIPCを達成できる。
最適化を行なうために、オプティマイゼーションキャッシュは、命令実行のパスを条件分岐の方向を含めてトレースして保存するトレースキャッシュになっていると見られるが、NVIDIAは明らかにしていない。また、最適化をどういったポリシーで行なうのか、段階的に行なうのかといった情報も、今回は明らかにしなかった。
Denverの実行ユニットの構成はリッチで、2個のロード/ストアユニットはロードとストアの両用で、整数演算ユニットは4個もある。2個のロード/ストアユニットと単純命令の整数演算ユニットが命令発行ポートを共有する仕組みになっている。パイプラインは、分岐予測ミスで13サイクルで、Cortex-A15の15サイクルより短く、その分、予測ミスのペナルティが少なく効率が高い。電力制御では、新たにCC4と呼ぶコアクラスタのリテンション省電力ステイトが追加された。
TransmetaのEfficeonやIntelのPARROTと似たアイデア
NVIDIAが公開したパフォーマンスベンチでは、2.5GHzのDenverで、Haswell(ハズウェル)ベースのCeleron 2955U(1.4GHz)と競っている。クロックで比較計算すると、DenverはHaswellの6割程度のパフォーマンスとなる。Denverがモバイル用途に適用できるコアであることを考えると、この比率は高い。ただし、デスクトップPCの性能レンジも考えると、PCプロセッサ相当と謳うには少し無理があるかも知れない。
再実行されるパスに動的な最適化をかけて並列度を上げたコードを生成するという点では、DenverはかつてのTransmetaの「Efficeon」と似ている。実際、NVIDIAは旧Transmetaから関連する知的所有権を得ており、旧Transmetaのエンジニアも流れているという。ただし、NVIDIAは命令デコーダをハードウェアで実装しており異なる。過去の当コーナーでのDenverのソフトウェアデコーダという推定は間違えていた。現在分かる範囲では、Denverは、Intelが10年ほど前に発表した「Power AwaReness thRough selective dynamically Optimized Traces(PARROT)」コンセプトに近い。
ちなみに、Hot Chipsのプレゼンテーションに名を連ねているNVIDIAの開発スタッフを見ると、NVIDIAが2006年に買収した、Intel系の人脈のプロセッサ設計ベンチャStexarのスタッフが中核となっていることが分かる。Hot Chipsでプレゼンテーションを行なったDarrell Boggs氏は、元Pentium 4のリードアーキテクトの1人で、Stexarのチーフアーキテクトだった。StexarはPentium 4の開発チームのエンジニア達が抜けて作ったベンチャー企業で、Pentium 4開発チームがあるオレゴンがベースだった。NVIDIAはこの会社をすぐに買収して、NVIDIAのオレゴンサイトとしてプロセッサエンジニアを集めてきた。買収した当時は、NVIDIAがx86 CPUの開発を目指しているといった報道もされた。
富士通とNECがそれぞれハイパフォーマンスCPUを発表
Hot Chipsでは、パフォーマンスCPUの発表も相次いだ。
NECはベクタスーパーコンピュータ向けのベクタプロセッサ「SX-ACE Processor」を発表した。マルチコアアーキテクチャで、ワンチップに4コアを搭載する。各CPUコアにベクタ演算用の「VPU(Vector Processing Unit)」とスカラ演算用の「SPU(Scalar Processing Unit)」を1個ずつと、1MBのキャッシュ「ADB(Assignable Data Buffer)」を搭載する。VPUは16-wayの並列ユニットで16サイクルかけて256オペレーションを実行するベクタマシンだ。チップ単体のベクタ性能はピークで256GFLOPS、メモリはDDR3で帯域は256GB/sec。製造プロセス技術は28nmで動作周波数は1GHz。
富士通はポストK(京)世代のHPC(High Performance Computing)向けプロセッサ「SPARC64 XIfx」の概要を発表した。京コンピュータに使われた8CPUコアの「SPARC64 VIIIfx」から発展して、32コアを搭載。各CPUコアはのSIMD(Single Instruction, Multiple Data)ユニットは256-bitへとベクタ幅を倍増された。拡張SIMD命令を含むHPC向けの新命令拡張「HPC-ACE2」を加えた。HPC-ACE2にはインダイレクトロード/ストア命令なども加えられている。
メモリにはMicron Technologyの積層メモリHMC(Hybrid Memory Cube)を採用、メモリ容量は32GBでメモリ帯域は双方向に各240GB/secを達成する。メモリ容量を稼ぐためにHMCのインターフェイスを4分割して使っており、外部インターフェイスとスタック内インターフェイスが分離されているHMCの特性を活かしている。チップのピークパフォーマンスは1.1TFLOPS。GPUを統合したコンシューマ向けCPU並の性能だが、SPARC64 XIfxはKコンピュータ同様にGPUコアのようなアクセラレータは搭載しない。製造プロセス技術は20nmで2.2GHz、ダイサイズはまだ公開しないという。
プロセッサに広帯域メモリを提供するHBM
チップスタッキングも今回のHot Chipsの重要なテーマの1つだった。SK Hynixは、JEDEC(半導体の標準化団体)規格のハイパフォーマンススタックDRAMのHBM(High Bandwidth Memory)についてのプレゼンテーションを行なった。その中で、SK Hynixはいくつかの新しい技術内容や将来のビジョンを明らかにした。
DRAMではデータを保持するために一定時間置きにデータをリフレッシュする動作が必要となり、リフレッシュモードの間はアクセスができない。しかし、HBMではリフレッシュをバンク単位で行なうことで、リフレッシュ中でも他のバンクへのリード/ライトができるようにした。ちなみに、IntelのHaswell eDRAMも同じ機能を持っている。また、HBMは、RASとCASのコマンドバスを分離して、RASとCASのコマンドを並列できるようにした。
HBMで必須となったベースインターフェイスダイについては、将来コンセプトとしてDDR系DRAMなどのインターフェイスを実装するなどのビジョンを明らかにした。また、2020年以降までHBMの広帯域化と大容量化を進める方向性も明らかにした。ちなみに、DRAMについては、Samsungが前週のFlash Memory Summitなどで、2020年以降までDRAMの微細化を継続する方向性とそのための方法を明らかにしている。
HBMは帯域の面では魅力が大きい。しかし、TSVインタポーザとインターフェイスダイが必須となっており、TSVのコストを含めて高コストで、なおかつサプライチェーンの変更が必要とハードルが高い。Hot Chipsでは、それに対するアンチテーゼの提案もThruChipから行なわれた。次の記事で、他のHot Chipsの発表の概要をレポートしたい。