Armは本日、自動運転車と車載エンターテインメントの実現を目指したCortex-A65AEプロセッサコアを発表する。しかし、発売前に垣間見た情報の中に、非常に興味深い点が隠されている。
これはArm初の同時マルチスレッドCPUコアになるとのことです。つまり、Intelのハイパースレッディング機能や、AMDおよびMIPSプロセッサの同様のハードウェアスレッディングと同様に、各コアが2つの独立したスレッドを同時に実行できるということです。
これは、Arm が同時マルチスレッド (SMT) に抵抗し、代わりに big.LITTLE 構成で多数のコアを束ねることを選択したため重要です。つまり、小さなコアのクラスターでアプリを実行し、大きなコアのクラスターでパワーを上げて集中的な作業のバーストを処理するのです。
Cortex-A65AE の機能 ... クリックして拡大 (出典: Arm)
ソフトバンク傘下のArmはSMTを検討しており、2010年頃から断続的にブループリントへの追加を検討してきたものの、結局このアイデアは却下され、複数のシングルスレッドコアを採用することに落ち着いた。同社は2013年にSMTに満足していない理由を説明した論文[PDF]を発表し、モバイルアプリではパフォーマンス向上と消費電力の観点からSMTは理にかなっていないものの、他の設定ではメリットがある可能性があると指摘している。
すべてのアプリケーションがSMTによってパフォーマンスが向上するわけではありません。利用可能なコアごとに複数のスレッドを実行することでパフォーマンスが向上するアプリケーションもありますが、全くメリットがない、あるいはSMTによってパフォーマンスが低下するプログラムもあります。SMTは通常、CPUコアの機能を分割することで機能します。整数演算ユニットや浮動小数点演算ユニットなどの様々なエンジンを、コアで同時に実行される2つの独立したスレッドに振り分けます。その結果、コアのアイドル状態になる部分が減り、理想的には1秒あたりに実行されるソフトウェア命令の数が増えます。
アームはノートPCグレードのCortex-A76 CPUに「ハンドルを握れ。これでロボットに乗る脳だ」と告げる
続きを読む
さて、Armは現在、低消費電力デバイスやスマートフォンアプリだけにターゲットを定めているわけではありません。Cortex AEシリーズを自動車に組み込み、エンターテイメントディスプレイに電力を供給したり、自動運転システム内のセンサーや制御コードを実行したりしたいと考えています。同社は今年初め、64ビットArmv8-A Cortex-A76AE(AEはAutomotive Enhancedの略)を発表し、現在は64ビット7nmマルチスレッドCortex-A65AEを売り出しています。
A65AEの複数のハードウェアスレッド(コアごとに2つ)は、最終的なシステムオンチップ(SoC)がカメラフィードやLiDAR信号などのセンサーデータを毎秒より多く取り込み、リアルタイムで分析するのを支援することで、自動運転ソフトウェアがハンドルを切るかブレーキを踏むかなど、より迅速かつ正確な予測を行えるようになる。Armはこれを高スループットCPU設計と表現しており、複数のスレッドが同時にセンサーデータと位置情報を処理し、コンピューターが情報に基づいた迅速な判断を下せるようにしている。これは、これらの車において、スムーズで安全な乗り心地と、ぎくしゃくした乗り心地の違いを生む可能性がある。
自動運転車の実現可能性という厄介な問題はひとまず脇に置いておき、基盤となるチップ技術に焦点を当てましょう。この技術は他のCortex-Aのブループリントにも採用される可能性があります。政治的、技術的、心理的な理由、あるいはその両方が混ざり合った理由が何であれ、真の自動運転車が登場するのは5年から30年先かもしれません。
チップジラのどんでん返し
面白いことに、Arm が SMT を採用しているのとちょうど同じように、Intel も将来の x86-64 チップ向けに独自の big.LITTLE バージョンを開発しているだけでなく、セキュリティ上の理由から、特にソフトウェアがその恩恵を受けていない場合は、Intel のハイパースレッディング機能を無効にすることを推奨する人もいます。
明確に言えば、ArmはCortex-A65AEが、完全自動運転のロボットカー(実現するかどうかは定かではない)には程遠い、次世代の先進運転支援システム(いわゆるスーパークルーズコントロール)の頭脳となると考えている。実際、Armの自動車部門副社長であるラクシュミ・マンディヤム氏は本日、Cortex-A65AEが「安全な大規模自動運転の導入に向けたドライバーの信頼強化」に貢献すると語る。目指すのは、自動運転車の売り込みに入る前に、人々が安心して頼れるスーパークルーズコントロール支援システムを構築することだ。
A76AEと同様に、A65AEは様々な業界標準機能とスプリットロック機能を備えています。ロックモードでは、2つのコアがペアになり、クロックサイクルごとにロックステップで同じ命令を同時に実行します。片方のコアがもう一方のコアと異なる動作をした場合、これは宇宙線によるトランジスタゲートの反転など、ランダムなハードウェアエラーが発生したことを示し、この不具合を自動的に検出して回復させることができます。
そのため、A65AEコアのグループをロックモードで実行し、安全上重要なエンジン制御コード(故障が許されない)を実行し、他のコアをスプリットモードで実行することでパフォーマンスを向上させることができます。車両制御に関する最終決定は、理想的にはロックステップモードでコード内で行われます。A64AE CPUコアは、アクセラレータコヒーレンシポートを介して機械学習プロセッサなどの接続されたアクセラレータとインターフェースし、ニューラルネットワーク推論などの特殊なタスクを高速化することもできます。
センサーデータは複数のスレッドを介してパイプされる
Armは、例えばA65AE CPUコアがセンサーデータを入力し処理し、その情報をA76AEコアとA65AEコアの2つのクラスターに渡して、学習済みの自動運転AIモデルに実行させるシステムを想定しています。接続されたアクセラレータが推論とヒューリスティックス処理を高速化し、最終的にA76AEコアのクラスターがハンドル操作で最終判断を下します。CPUコアの最終的な速度と構成は、システムオンチップ(SoC)設計者に委ねられます。目安として、車載用途以外のA76コアは3GHzが上限となります。
A65AEはクラスターあたり最大8コアにグループ化できることが分かっています。つまり、クラスターあたり16個のハードウェアスレッド、つまりロックステップモードで動作している場合は8個のロックされたスレッドになります。つまり、SMTを有効にしてもロックモードは無効になりません。ロックされたSMTモードは、ランダムな偏差が生じないようにスレッドをペアリングします。
以下は、分割モードの 16 スレッドからロック モードの 8 スレッドまで、A65AE クラスター内の 8 つのコア間でハードウェア スレッドがどのように共有されるかを示した表のセットです。
SMT を有効にしたロックおよび分割モードでのスレッドとコアの配置... 出典: Arm engineering
アーキテクチャに関する詳細は来年初めに明らかになる予定ですが、現時点では、これはちょっとした予告であり、マルチスレッドについての意外な言及です。
半導体設計者がCortex-A65AEのライセンスを取得し、システムオンチップを2020年に製造・販売開始することが期待されています。本日中に発表が行われる予定です。®