10月8日から10月10日まで、サンノゼコンベンションセンター(SJCC)において「Arm TechCon 2019」が開催されている。最初のレポートでは、初日に開催された基調講演の内容からいくつか話題をご紹介したい。
ユーザーがカスタム命令を実装可能になった「Arm Custom Instruction」
さて、まず最初の発表は「Arm Custom Instruction」(Photo02)の発表である。すでにプレスリリースも出ているが、要するにユーザーがカスタム命令を組み込めるようにしたという仕組みで、これまで頑なに命令セットの公開を拒んできたArmの方針を考えると、天と地ほどの方向転換ということになる。
実装としては、かつてPower ISAで提供されてきたBook VLE(Variable Length Encoded)に近いものがある。Cortex-M33には最初から命令拡張用の機能が用意されており、ここでユーザー(つまりCortex-M33のIPを購入して自身でMCUを作ろうとしているベンダー)は独自の命令とそれの処理に必要な回路を組み込み、提供することが可能になっている。
実装はこんな感じ(Photo04)で、デコーダ段とWriteBack段には拡張命令用のStubがあらかじめ用意されており、なので実行ユニットを追加するだけで新命令が利用できるようになる、というわけだ。
この拡張命令については、それに対応するライブラリを組み合わせることで標準の開発環境でサポートされる(Photo05)という話で、カスタム命令を最小の手間で利用できるように配慮されている。
このカスタム命令については、まだ明確でない部分がかなりあるので、もう少し細かいことが分ったら改めてご紹介したい。
次々世代Cortex-A向け拡張命令
次は次々世代Cortex-A向けの拡張命令の話題だ。Ian Smithe氏(Photo06)より、次世代コア(Hercules)のさらに次となる、「Matterhorn」に関する話が出てきた。
このMatterhorn、まず「MatMul」と呼ばれる行列掛算を高速に実行できる拡張命令が搭載されるとする。ちなみに性能としては、GEMM(General Matrix Multiply)でHercules世代と比べても10倍に高速化される、と説明された。
ちなみに基調講演後にコチラで多少詳細が説明されているが、これを見る限りは汎用の数値演算ライブラリに加えてML命令も搭載されているそうで、話としては丁度IntelのAVX512のように、様々な拡張命令の集合体というあたりではないかと思われる。
加えて、このMatterhorn世代ではセキュリティ対策としてMemmory TaggingとかPointer Authentificationなどの対策が追加されたことも明らかにされた(Photo09)。