実際のコアIPの例では、Cortex-A77は、Armv8.2-Aまでの機能はすべて実装しているが、Armv8.3-AとArmv8.4-Aの機能は一部しか実装していない。Armv8.4-Aをフル実装したCPUコアは、現状では現れていない。ISAのバージョンアップ条件が満たされずバージョンが進まない。Armv8.x-AアーキテクチャとCPUコアIPの関係PDF版はこちらただし、この状況は近い将来には変わると見られる。CPUコアでは次々世代の「Matterhorn(マッターホルン:英語読みではマッターホーン)」になって、Armv8.6-Aまでの多くの機能が一気に実装される。命令セット的には、Matterhornが大きな節目となる。ArmはCPUのコードネーム規則を、現在のギリシャ神話の神名から、山名にへとMatterhornから切り替えるが、コードネームと同様にCPUアーキテクチャも大きく切り替わる。CPU”となると見られる。MatterhornにはArmv8.3-Aからの積み残し分も含めたセキュリティ機能が一気に実装されるセキュリティ拡張にフォーカスしていた過去2年間のArmv8.x命令拡張かつては、Armの命令セットは段階的に機能が加えられると、同期してArmのCPUコアIPに実装されていた。Armv8.2-A以降は順調に実装されておらず、新機能の積み残しが重なっている。説明したように、そのため、CPUコアのISAバージョンがArmv8.2-Aから進んでいないように見える。積み残しが多い理由はなにか。それは、Armv8.2-A以降の機能の中身に関係している。過去3世代のArmv8.x拡張は、セキュリティに注力している。Armv8.4-Aと8.5-Aはほぼセキュリティ関連の拡張となっている。これは、MeltdownやSpectreからはじまるCPUマイクロアーキテクチャ上のセキュリティ問題に対策するためだ。サイドチャネルアタックの一種であるMeltdownやSpectreが、CPUベンダーに表面化したのが2017年。そのため、ArmだけでなくIntelやAMDも含めて、高性能CPUを開発するベンダーは、過去2~3年は、CPUアーキテクチャやマイクロアーキテクチャにセキュリティ機能を組み込むことに注視して来た。Armの場合は、Armプラットフォームへの依存度が高いGoogleが重要なパートナーとなり、アーキテクチャ上でのセキュリティ対策を進めてきた。それがArmv8.4-A(2017)やArmv8.5-A(2018)といった最新のISA小数点バージョンに組み込まれている。Armv8.x-Aアーキテクチャの発展PDF版はこちら上のArmv8.x-Aの各バージョンの新機能を見れば、セキュリティへの傾斜が一目瞭然だ。図では、SIMD/FP(浮動小数点)演算系の機能がグリーン色、セキュリティ系の機能がパープル色、システムやメモリ系の機能がカーキ色で示してある。セキュリティ機能は、Armv8.3-Aから始まり、Armv8.4-A/Armv8.5-Aで一気に増えている。(BTI)そして、これらのセキュリティ機能では、ソフトウェアパートナーとの調整が極めて重要となる。セキュリティ機能が揃い、パートナーとの検証が進み、実際のIPへと実装できる段階にまで持って行くまでに時間が必要だったと考えられる。セキュリティ拡張に穴がないかをパートナーと検証して完成させる必要がある。Tagging」が揃ったのはArmv8.5-Aであり、そこから実装へ2年と考えると、2020年のMatterhorn世代のコアからになるのも無理がないかもしれない。セキュリティから再び深層学習へとフォーカスが移るサイドチャネルアタック問題は、高性能CPUのアーキテクチャ開発を激変させた。それまでは、優れた高速化のテクニックを実装するだけだったのが、Meltdown/Spectre以降は、そのテクニックにセキュリティの問題がないかどうかをチェックする必要が生じるようになった。サイドチャネルアタックに対する、抜本的なセキュリティ機能をアーキテクチャ/マイクロアーキテクチャに組み込む必要が出てきた。高性能CPUベンダーは、2017年中盤以降は、この問題で奔走していた。Armだけでなく、IntelやAMDをはじめすべての高性能CPUベンダーの現在の目的は、サイドチャネルアタックから防護されたアーキテクチャの完成にある。Armv8-A命令セットの進化は、こうした状況を明確に示している。Armは、セキュリティ拡張はArmv8.5-Aで一区切りをつけて、Matterhornでの実装に向かっている。そのためか、次の命令拡張であるArmv8.6-Aはセキュリティではなく、深層学習対応にスポットを当てたものになった。Product)命令をサポートした。Data)演算での深層学習サポートを強めてきた。Armv8.6-Aでは、さらにマトリックス演算とBFloat16をサポートすることで、深層学習への傾斜を強める。CPUにマトリックス演算とBFloat16を持ってくる理由の1つは、エッジサイドでのトレーニング(学習)をサポートするためだ。クラウド側でのヘビーなトレーニングではなく、中間のエッジでの軽いトレーニングをサポートする。Armのマトリックス演算のbfloat16の例PDF版はこちらbfloat16のサポートがArmのCPUアーキテクチャでのAIサポートの目玉ちなみに、ArmのSIMD演算は、Armv8-Aは2本立てとなっている。Armv8の標準のSIMD命令は「NEON(aarch64ではASIMD)」。Armv8.xの要求仕様ではASIMDとSVEはどちらかというサポートになっており両方をサポートする必要はない。Armは当面はASIMDとSVEを並列進化させる路線で、マトリックス演算もASIMDとSVEの両方に実装される。現状では、SVEは、まだスーパーコンピュータスペースのみの命令となっており、ASIMDと置き換えるビジョンは見えていない。