2021年3月末にArmが発表した最新命令セット「Armv9」。このArmv9について、これまでに公開された技術文書などを基に、現時点(2021年4月中旬)で判明していることをまとめた。
既報の通り、英Armは2021年3月30日に「Armv9」の命令セットの存在を発表した。その発表内容は先の記事にまとまっているが、これまでに公開された技術文書などを基に、現時点で判明している内容をご紹介したい。
まずはArmv9全体について。そもそも、Armの命令セット自体が、今までは極端なことを言えば「新しい機能が入るたびにバージョンが上がる」(図1)という感じだったので、現行の最新命令セット「Armv8」にはサブバージョンがたくさんある。
これはArmv9になっても同じように見えるが(図2)、実際は既に「Armv9.2」まで定義されていることが明らかになっており、しかもちょっと複雑な状況になっている。
ArmがWebサイトで公開している“Armv8.x and Armv9.x extensions and features”によれば、Armv9のサブバージョンは以下のような形での実装になるらしい(なお、アプリケーションプロセッサ向けの「Aプロファイル」について言えば、引き続き32bitのAAach32のサポートもArmv9世代では行われるとしていた)。
それぞれの命令セットの違いを、Armv8のサブバージョンと併せてもう少し分かりやすく書くと以下のようになる。
これらとは別に、v9.0-A~v9.2-AはCCAとSVE2のサポートが追加されている「らしい」。らしい、というのはこれらがv9.0-Aから実装されているのか、それとも将来のバージョン(v9.3-A以降?)で実装されるか、は現時点で明示されていないからだ。先に挙げた“Armv8.x and Armv9.x extensions and features”に、この2つがないあたりはちょっと怪しい感じである。
ちなみに、先の速報記事で出てきたメモリタギング拡張機能(図3)は、正確に言えばv8.5-A/v9.0-Aで追加された機能であり、必ずしもArmv9だけの機能ではない。実はこれは以前から発表されていた機能でもあり、その意味ではあまり新しいわけではないのだが。
Copyright © ITmedia, Inc. All Rights Reserved.