計算されたRISCについて話す:CPUの設計でArmよりも優れた仕事をできると思うなら、今がチャンスです

Table of Contents

計算されたRISCについて話す:CPUの設計でArmよりも優れた仕事をできると思うなら、今がチャンスです

TechConマイクロプロセッサ設計の Arm は、チップメーカーが自社の設計図のライセンスを取得し、特定の状況下で、最も神聖な聖典である CPU 命令セットを変更することを許可する予定です。

具体的には、ソフトバンク傘下の同社は、2020年初頭にCortex-M33から、顧客がArmv8-M CPUコアにカスタムソフトウェア命令を無料で追加できるようにする。

これらはマイクロコントローラグレードのRISCプロセッサコアです。センサー、ギズモ、ロボット、家電製品、産業機器などを制御する小型で低消費電力の頭脳を想像してみてください。タブレットやスマートフォンでアプリやゲームを実行する、パワフルな汎用Armv8-A CPUとは異なります。とはいえ、カスタム命令のサポートは将来的にAシリーズにも導入される可能性がありますが、現時点ではArmv8-Mシリーズに関するものです。

「これは、ソフトウェアがハードウェアと密接に連携するArmv8-MおよびRプロファイルコアには理にかなっています」と、Armのシニアディレクターであるトーマス・エンセルゲックス氏は今月初めにThe Registerに語った。「カスタム命令はArmv8-Mに導入されつつあります。将来的にはRクラスにも導入されるかもしれません。Aクラスも除外しているわけではありません。」

なぜこれが興味深いのか?それは、Arm CPUコアのライセンス取得初日、初週の第一ルールが「命令セットをいじってはいけない」だからだろう。かつてのライバルであるMIPSを分裂させたアーキテクチャのカスタマイズとそれに伴う断片化を避けるため、Armは一般的に、顧客が命令セットのコレクションを拡張することを許可しない。Armの公式ファミリーは一つしかなく、それ以外に存在しないからだ。

これまではそうでした。Armは、顧客のエンジニアが自社のシステムオンチップ内でArmv8-Mコア用のカスタム命令を定義し、それらの専用命令を、その演算を実行するために最適化された回路に接続できるようにしました。もちろん、結果として得られるプロセッサは、標準的なArm命令を期待通りに実行する必要があります。

エンジンを始動

しかし、なぜでしょうか?例えば、ニューラルネットワークで動作するアルゴリズムがあり、多数の命令にまたがる計算やデータ操作を高速に実行する必要がある場合、専用のエンジンでプロセス全体を高速に実行する単一の新しい命令を定義できます。これにより、この単一の命令を使用して、ハードウェアで複雑なタスクを実行できるようになります。

目標は、GPUやニューラルネットワーク処理ASICといった別のアクセラレータではなく、システムオンチップ内の専用カスタム回路に主要アルゴリズムの一部をオフロードすることで、高速化することです。このインコアアクセラレーションにより、クロックサイクル数と消費電力が削減されると期待されています。

では、どのように動作するのでしょうか?基本的に、Armv8-Mコアの命令セットを拡張したい場合は、CPUのデコードセクションを設定して、新しい命令を通常の実行ステージではなく、独自の実行ロジックにルーティングします。カスタム命令は何らかの方法でデータを操作する必要があります。コアの内部動作に干渉することはできないと理解しています。

重要なのは、フェッチされたカスタム命令から抽出された情報を運ぶデータラインやその他の信号のセットが、カスタムロジックブロックに提供されることです。その後、Verilogなどのハードウェア設計言語で命令を実装し、必要に応じてロジックゲートと入力データラインを使用します。

次に、カスタマイズされたエンジンからの出力信号を CPU の次のステージに提供し、ステータス フラグの設定、メモリまたはレジスタへの結果の書き込み、プログラム カウンターの更新などを処理します。

Armのカスタム命令フローの概要

カスタム命令の実行ロジックがCPUパイプラインのどこに当てはまるのか…クリックして拡大。出典:Arm

このように、CPU コアはステージ インターロック、書き戻し、およびその他のメカニズムを処理します。つまり、命令空間の一部を独自のものとして切り分け、カスタム アクセラレーション エンジンを提供されたデータ ラインと制御信号に接続するだけで済みます (この文中の「単に」というのは、かなりの重労働です)。

「お客様は、まるでFPGAを構成するかのように、RTLレベルまで掘り下げて、独自の魔法を組み込むことができます」とエンセルゲックス氏は述べた。「デコードステージは命令データをカスタムロジックに渡し、パイプラインはデータを取り出し、フラグを設定するなど、あらゆるインターロックとインターリーブ処理を担います。」

ちなみに、複数の命令やマイクロオペレーションを1つにまとめるなど、特殊なロジックの実装にサポートが必要な場合、Armは対応できません。ライセンス供与されたArmv8-Mブループリントには、データラインと制御ライン、そしてデコードステージの設定機能が無料で付属しています。マイクロプロセッサの設計に苦労する場合は、この特注のインコアハードウェアを別途作成してもらう必要があります。

Armのカスタム命令抽象化の概要

推奨されるアプリコードインターフェース...クリックして拡大

Armは、互換性のない命令セット拡張をメーカーが乱立させ、アーキテクチャの断片化を引き起こす事態をどう防ぐのでしょうか?Armは、皆さんがソフトウェアライブラリを使用することを祈りつつ、祈りを捧げるつもりです。

基本的に、チップメーカーは、標準化された方法で特別な命令にアクセスするライブラリと API を作成し、それらのフレームワークを開発者に提供して、開発者がシステムオンチップを購入して使用するように促されることになります。

例えば、羽ばたく鳥のようなドローンを制御するために設計されたVulture-9000 Armv8-Mベースのマイクロコントローラーを設計し、モーター駆動のための物理計算を高速化する特別な命令を組み込むことができます。当社のチップを搭載した鳥型ドローンを製造したい場合は、部品を一括注文していただければ、C/C++やRustなどの高水準言語からハードウェアを制御するためのライブラリセットを提供します。

これらのライブラリには、カスタム命令を使用するルーチンが含まれています。開発者は正確な詳細を知る必要はなく、カスタム命令を抽象化または非表示にする低レベル API を呼び出すファームウェアを作成するだけです。

いずれにせよ、それが計画です。また、これらの特殊命令がどのように販売され、文書化されるかは、カスタマイズ可能なArmv8-Mマイクロコントローラコアのライセンスを取得するシステムオンチップ設計者に委ねられることになります。

「カスタム命令はシリコンパートナーから提供されます」とエンセルゲックス氏は述べた。「これは私たちの管轄外です。どのようなアクセラレーションが組み込まれているかを伝えるのはシリコンパートナーの責任です。パートナーの取り組みを標準化したり分類したりするつもりはありません。実装方法や組み合わせは数十、数百通りある可能性があります。」

しかし、一体なぜArmはこんなことをしているのだろうか?一見明白な答えの一つは、RISC-V、OpenPower、そしてその他のオープンハードウェアの台頭だ。OpenSparcの足跡を辿るものだ。RISC-Vは、カスタマイズ可能なオープンソースの命令セット仕様であり、自由に利用できるCPUコアのエコシステムである。ArmにとってRISC-Vはますます頭痛の種となっており、新興のライバルに打ち勝つためにビジネスモデルの調整を迫られている。RISC-Vによって可能になることの一つは、Alibabaが行ったように命令セットを拡張することだが、RISC-Vの支持者たちは、これがMIPSのような断片化につながらないことを願っている。

パーティーに乱入する人々

IBMは、隣でRISC-Vの若者たちがパーティーをしているのを聞き、Power CPUのISAも無料にすることを決定した。

続きを読む

ますます多くのチップメーカーやエンジニアが Arm の技術を排除し、代わりにコンポーネントに低価格のカスタマイズされたロイヤリティフリーの RISC-V コアを組み込むことを検討、または決定しているため、Arm は、必要に応じて Armv8-M CPU をカスタマイズできるようにすることで、こうした技術者を自社のグループに呼び戻したいと考えています。

「これは間違いなく競争の激しい分野です」とエンセルゲックス氏は語り、Armは顧客がコプロセッサや外部アクセラレータを使用するよりも「より洗練された方法」でカスタマイズされた機能を実装できるようにしたいと考えていると付け加えた。「顧客はそれを求めており、私たちは彼らのニーズに応えています。」

ちなみに、Appleの最新iPhoneに搭載されているArm互換のA13システムオンチップには、機械学習や拡張現実(AR)アルゴリズムを高速化するAMXと呼ばれる行列演算コプロセッサが搭載されています。Armのカスタム命令プログラムを使えば、エンジニアは自社のプロセッサ向けに同様のカスタムエンジンを開発できます。

もう一つの答えは、それほど明白ではないものの、同様に興味深いものです。GoogleとそのTPUファミリーのように、多くの組織や企業が独自のカスタムアクセラレータを設計しています。これらのエンジンは、情報の流れを制御し、作業をスケジュールし、バスとインターフェースを制御するなどのタスクを実行するために、内部に小さな管理・保守コアを必要とします。Armは、顧客が指定したプロセスを高速化する能力を持つCPUコアのサブセットを、いわばシリコン代替として提供することで、この分野の中心であり続けたいと考えているのかもしれません。

参考までに、Armは「代替」ではなく「シャーシ」という用語を好んで使用しています。つまり、プロセッサ設計者の顧客ベースでは「CPUはシャーシである」ということになります。言い換えれば、ArmはArmv8-Mコアのライセンスを取得し、それを空洞化し、高度にカスタマイズ・最適化されたアクセラレータロジックを注入し、パイプラインステージやインターロック、その他の退屈だが必要な配管はそのままにして、RISC-V関連のことは全て忘れてほしいと考えているのです。

このカスタム・インストラクション・プログラムは、本日シリコンバレーで開催されるArm TechConカンファレンスで発表されます。この記事をお読みになる頃には、より詳しい技術情報がこちらに掲載されているかもしれません。®

TechCon のその他のニュースでは... Arm は、Mbed OS プロジェクトのガバナンスを変更し、チップ設計者に、その管理と開発方法に関するより大きな発言権を与えています。

WindRiver からは、C++17、Boost、Python、Rust、および通常のソフトウェア言語セットをサポートする組み込みリアルタイム OS VxWorks の新しいバージョンが提供されています。

UltraSoCは、2020年初頭にリリース予定のBus Sentinelと呼ばれるセキュリティブロックを売り込んでいます。これはシステムオンチップ(SoC)に組み込むことができます。システム起動後しばらく経ってから特定の制御レジスタの読み書きなど、内部アクセスを不正な動作から監視し、ブロックすることができます。

CCIX コンソーシアム (Arm、AMD、Xilinx、Qualcomm などのチップ設計者グループで、PCIe ベースの CPU アクセラレータ相互接続を作成するために結成) は本日、PCIe 5 をサポートし、転送速度 32GT/s を実現する CCIX ベース仕様リビジョン 1.1 バージョン 1.0 を発表しました。

Discover More