後藤弘茂のWeekly海外ニュース
ARMの2016年フラッグシップCPU「Cortex-A72」
(2015/4/24 14:48)
Cortex-A57を発展させたCortex-A72
ARMは2016年のハイエンドCPU IPとして「Cortex-A72」を推進している。Cortex-A72は、Cortex-A57の後継となる、ARMの自社コアでは最高性能のCPUコアだ。高いシングルスレッド性能を、低い消費電力で達成する。Cortex-A72が主なターゲットとするプロセス技術は、14/16nmノードのFinFET 3Dトランジスタプロセスだ。しかし、現世代のCortex-A57と比較すると、同じプロセスノードでもCortex-A72の方が性能が高く、なおかつダイエリアも小さいという。
Cortex-A72の性能をCortex-A57と比較したのが下のチャートだ。SIMD/浮動小数点演算系はユニットを大幅に再設計したことで性能が大きく上がっている。しかし、整数演算でも性能は向上している。
Cortex-A72の基本設計は、Cortex-A57とよく似ている。Cortex-A57は、Cortex-A15をベースにしているため、Cortex-A15からCortex-A72は、設計の基本が共通している点が多い。いずれも、3命令デコードで、8実行パイプラインのアウトオブオーダーマシンだ。しかし、アーキテクチャをよく見ると、世代毎に大幅に改良されていることが分かる。Cortex-A72は、Cortex-A15から始まるARMの高性能CPUアーキテクチャの完成形と言っていいかも知れない。
命令デコードは3命令/サイクルのまま各所を改良
下はCortex-A72のコア全体のブロック図だ。大まかな構造は、すでに述べた通り、Cortex-A57から大きくは変わらない。CPUコアの面積は、TSMC(Taiwan Semiconductor Manufacturing Company)の16FF+で1.15平方mmと極めて小さい。設計はコンパクトだが、各所がCortex-A57よりチューンされており、IPC(Instruction-per-Clock)が向上したほか、同プロセス時の動作周波数の上限も若干上がっている。
PDF版はこちら
Cortex-A72の実行パイプラインの上流では、分岐予測(Branch Prediction)が大きく変わった。ARMは、Cortex-A15以来、Cortex-A12/17も含めて「bi-mode(バイモード)プレディクタ」を採用して来た。しかし、今回のCortex-A72では、bi-modeアルゴリズムを外した。分岐予測機構の詳細は明らかにされていないが、アルゴリズムは一新され、予測精度が向上したという。
BTB(Branch Target Buffer)は2K-4K、より小容量でアクセスが速いmicro BTBは64エントリで、ニアブランチはmicro BTBで拾うという2段階のアプローチになっている。これらのバッファの数字はCortex-A57から変わらず。ただし、micro BTBのタグ構造が変わり、より効率的になった。
L1命令キャッシュは48KBで3-wayセットアソシエイティブと、少し変則的になっている。Translation Lookaside Buffer (TLB)はL1命令キャッシュのITLBが48エントリ、L2 TLBが1,024エントリの2層となっている。TLBはサーバーなどのアプリケーションでは負荷がかかる部分であるため、前世代のCortex-A57より拡張されている。フェッチと平行する分岐予測のステージは、従来のCortex-A57と同じ5ステージを取っている。
Cortex-A72の命令デコードのピーク帯域は、Cortex-A15/57と同じ3命令/サイクルに留まる。命令デコード幅を広げると、CPUの複雑度がぐっと高まるためだと見られる。しかし、命令デコード効率を上げることで、平均の命令デコード数を上げている。また、ARMは命令デコード&レジスタリネーミングを大幅に再設計し、この部分をコンパクトにしたという。
ディスパッチできる命令数が各サイクル3 Micro-OPsから5に拡大
パイプラインステージは、命令デコードで3サイクル、次のリネーミングなどで2サイクル。フェッチから命令デコードとリネームまでで、合計10サイクルとなる。Cortex-A57までと同様に、ARMとしては深いパイプラインで、より高い周波数を達成しやすい。
3-wayの命令デコーダからは、各サイクルに最高で3マイクロオプス(Micro-OPs:内部命令)を出力できる。3個のMicro-OPsは、レジスタリネーミングステージ群を経て、ディスパッチユニットに発行される。ここまでは、3 Micro-OPs/サイクルだが、次のディスパッチユニットで、さらに細かな命令に分割(crack)される。ディスパッチステージからは、各実行パイプに付属する専用のキューへとディスパッチされる。
Cortex-A57から大きく変わった点は、ディスパッチユニットからイシューキューへの命令ディスパッチが5 Micro-OPsになったこと。Cortex-A15/A57まではここが3 Micro-OPs/サイクルだったのでボトルネックになりがちだったが、Cortex-A72では5 Micro-OPsへと拡張されたことで、8本の実行パイプラインをよりフィルしやすくなった。言い換えれば、実行パイプラインの稼働効率が上がった。
PDF版はこちら
このあたりの仕組みは、IntelやAMDのパフォーマンスCPU系列と似ている。IntelやAMDの場合は、CISC(Complex Instruction Set Computer)のx86命令なので、CISCフォーマットから複合したフューズドMicro-OPsへと変換、ディスパッチフェイズでフューズドMicro-OPsを分解してイシューポートに送るのは利にかなっている。
RISC(Reduced Instruction Set Computer)のCortex-A72の場合は、ARMはARMv8の64-bitアーキテクチャ「AArch64」命令で、アーキテクチャ命令同士を融合させて1つの融合内部命令(フューズドMicro-OPs)にするインストラクションフュージョンをサポートした。これによってディスパッチ時に分解できるMicro-OPsを増やし、命令スケジューラの負担を軽減している。
ディスパッチステージでは、主にレジスタファイルアクセスの電力と面積の削減を行なっている。レジスタファイルの構成の変更はポート共有で、レジスタファイルのリードポート数を減らし、レジスタ回りの面積を減らし、電力を削減している。アウトオブオーダウインドウは、Cortex-A57と同じ128命令で、リネームレジスタのサイズも同じ。
SIMD/浮動小数点パイプラインを再設計してレイテンシを大幅短縮
各実行ユニットに対するイシューキューは、それぞれのイシューポート毎に独立したリザベーションステーション方式となっている。各ポート毎に8 Micro-OPs分のキューを持つ。
実行パイプラインの構成は、Cortex-A15/57をほぼ継承しており、合計8パイプだ。シンプル命令の実行クラスタが2つ、分岐ユニットが1、乗算や除算など複雑な命令のクラスタが1つ、SIMD(Single Instruction, Multiple Data)/FPU命令のクラスタが2つ、ロード/ストアのクラスタが2つの構成となっている。
実行パイプラインで目立つ変更はSIMDパイプラインを大幅に設計変更、実行レイテンシを大幅に短縮したことだ。具体的には、浮動小数点乗算(FMUL)は5サイクルから3サイクルに、浮動小数点加算(FADD)は4サイクルから3サイクルに、浮動小数点積和算(FMAC)は9サイクルから6サイクルに短縮された。Cortex-A57では、SIMDパイプの最長レイテンシは9サイクルだったのが、Cortex-A72では6サイクルへと減っている。このほか、CVTユニットやRadix-16 FP除算ユニットの性能も上がっている。実行レイテンシが短縮されたことで、アウトオブオーダウインドウを広げなくても、実質的にアウトオブオーダ実行の効率が上がっているという。
PDF版はこちら
さらに、データフォワードを強化してゼロサイクルのフォワーディングパスを増やした。依存性のある命令が連続する場合でも、ゼロサイクルデータフォワーディングで続けて実行できるチャンスが増えた。
ロード/ストアではプリフェッチやTLBを改良
Cortex-A72のロード/ストアパイプは2本で、各サイクルに1ストアと1ロードが可能。ロードのL1ヒットレイテンシは4サイクルでCortex-A57と変わらない。しかし、L1アクセスの消費電力は低減され、また、データ先読みのプリフェッチも改良された。Cortex-A57では、プリフェッチはL1とL2で個別に管理されていたが、Cortex-A72ではL1とL2を統合的に管理するプリフェッチャとなった。それに伴い、従来、共有L2コントロールユニット側に配置されていたプリフェッチャは、各CPUコア側に移動している。
L1データキャッシュは32KBで、2-wayセットアソシエイティブ、64バイトライン。L1データキャッシュのTLBは、従来はロードとストアで分割されていたが、Cortex-A72では統合された。共有L2キャッシュは最大4MBまでサポートされるようになり、L2 TLBのサイズも1,024エントリにまで拡張された。
また、L2キャッシュのアービトレータには、スレイブユニットを通じて「Accelerator Coherency Port (ACP)」からのアクセスがオプションでサポートされている。これは、アクセラレータユニットが、CPUキャッシュに対してコヒーレンシアクセスをできるようにするためのポートだ。コヒーレンシは、片方向となっている。アクセラレータはCPUキャッシュをスヌープできるが、CPU側はアクセラレータをスヌープできない。
全体を見ると、Cortex-A72はコアを小さく保ったまま性能を上げるという点に集中したアーキテクチャであることが分かる。このあたりは、コアの大型化を許容するIntelと大きく異なる。こなれていなかったSIMD/浮動小数点演算ユニットの再設計など、実行性能を上げやすいところに力が入っている。ARMはCortex-A72を、ハイエンドのモバイルだけでなく、低電力サーバーの市場にも推進して行くつもりだ。
楽天市場 売れ筋ランキング
Amazon売れ筋ランキング
Anker Soundcore Life P2 Mini【完全ワイヤレスイヤホン / Bluetooth5.3対応 / IPX5防水規格 / 最大32時間音楽再生 / 専用アプリ対応】ブラック
¥4,490
Anker Soundcore P40i (Bluetooth 5.3) 【完全ワイヤレスイヤホン/ウルトラノイズキャンセリング 2.0 / マルチポイント接続 / 最大60時間再生 / PSE技術基準適合】ブラック
¥7,990
イヤホン bluetooth ワイヤレスイヤホン 48時間の再生時間 重低音 LEDディスプレイ表示 小型/軽量 IPX7防水 ブルートゥース 接続瞬時 Hi-Fi ブルートゥースイヤホン Type-C 急速充電 ぶるーとぅーすイヤホン iPhone/Android/Pad適用 スポーツ/通勤/通学/WEB会議 (ホワイト)
¥39,999
【VGP 2025 金賞】EarFun Air Pro 4 ワイヤレスイヤホン Bluetooth 5.4/50dBアダプティブ式 ハイブリッドANC/最先端チップ「QCC3091」aptX Losslessに対応/ハイレゾ LDAC対応/Snapdragon Sound™ に対応/Auracast™に対応/52時間連続再生【6マイクAI 通話/PSE認証済み】 装着検出機能 (ブラック)
¥9,990
EarPods with 3.5 mm Headphone Plug
¥2,668
by Amazon 天然水 ラベルレス 500ml ×24本 富士山の天然水 バナジウム含有 水 ミネラルウォーター ペットボトル 静岡県産 500ミリリットル (Smart Basic)
¥1,173
by Amazon 炭酸水 ラベルレス 500ml ×24本 強炭酸水 ペットボトル 500ミリリットル (Smart Basic)
¥1,409
コカ・コーラ い・ろ・は・す天然水ラベルレス 560ml ×24本
¥2,131
キリン 自然が磨いた天然水 ラベルレス 水 2リットル 9本 国産 天然水 ミネラルウォーター ペットボトル 軟水
¥2,722
い・ろ・は・すラベルレス 2LPET ×8本 【Amazon.co.jp限定】
¥1,168
葬送のフリーレン(14) (少年サンデーコミックス)
¥583
薬屋のひとりごと 15巻 (デジタル版ビッグガンガンコミックス)
¥770
無職転生 ~異世界行ったら本気だす~ 22 (MFコミックス フラッパーシリーズ)
¥733
ブルーロック(33) (週刊少年マガジンコミックス)
¥594
黄泉のツガイ 9巻 (デジタル版ガンガンコミックス)
¥590