連載
» 2021年04月21日 10時00分 公開

謎の多い「Armv9」について今分かっていることをまとめるArm最新動向報告(14)(2/3 ページ)

[大原雄介,MONOist]

2018年から見え隠れしていた「Armv9」

 Armv9そのものの話で言うと、かつてArmはもう少し前にこれを投入する予定だったもようだ。実際、2018年の「Arm TechCon」では、サーバ向けプロセッサコア「Neoverse」のセッション資料の中に、既にArmv9の文字が見える(図4)。また富士通の「A64FX」にしても、「もう少し後だったらArmv9が使えたのだが」という関係者(1人しかいないが)の談話があったりするあたり、少なくとも2018年当時はArmv9は比較的すぐに投入される予定だったように思われる。

図4 図4 一番右、Next InfrastructureのNetworkが“CMN for v9”になっており、このタイミングでは「Armv9」ベースのCPUで「Neoverse」が構成される予定だった(クリックで拡大)
図5 図5 Armのイアン・スマイス氏(VP Solutions Marketing, Client Line of Business)。「Armv9」のオンライン説明会でも質疑応答の担当者の一人として参加していた

 ただし、2019年にはArmv9の話が全く消え(「COMPUTEX」の折にイアン・スマイス(Ian Smythe)氏(図5)に「Armv9は……」と聞きかけた瞬間に聞こえないフリをし始めたのは記憶に新しい)、「Poseidon Platform」そのものも2022年以降に投入が切り替わった。おそらくは当初予定より2年ほど後ろにずれたのだと思うが、その理由自体は不明である。

 当初はこんな風にArmv8.5-A〜v8.7-AとArmv9.0-A〜9.2-Aがオーバーラップすることは考えていなかったと思うので、ここで追加されたもろもろのセキュリティ対策について「Armv9ではなくArmv8で用意しろ」という声が顧客から多く上がったため、というあたりが実情ではないかと思う。

「Armv9」の新機能となる「CCA」と「Realm」

 さて次はArmv9で追加された新機能について。まず新たに追加されたのがCCA(Confidential Compute Architecture)である。これはRealm(レルム)と呼ばれる新しい実行領域が追加され、これを利用することで安全に実行できるようになる、という話は速報記事で説明があった通りである。

 CCAやRealmの詳細は2021年中旬に発表になるとされるが、端的に言えばあるThread Context(そのThreadが動作するために必要なリソース全体)をコンテナ化し、そのコンテナを独立して稼働させられるような環境をCPU内部にハードウェア的に提供するもの、と筆者は理解している。この結果として、非セキュアなアプリケーションであっても、セキュアな状態に保たれる(というか、仮にその非セキュアなアプリケーションが何らかの手法で侵入されてしまっても、その影響はコンテナの中にとどまり、外部にアクセスできないのでシステム全体としては安全が保たれる)というのがRealmの基本的なコンセプトに見える。問題は、外部との通信をどうするかであって、説明の中ではページテーブル(Page Table)を共有できる(つまり同じ物理メモリ領域を複数のRealmで自身の仮想空間にマッピングできる)という話であった。

 このRealmと、例えば従来のArmのセキュリティ拡張機能である「Trust Zone」の違いは、当該スレッド(orプロセス)のデータを保護できるか否かというあたりにありそうだ。Trust Zoneは、そもそもそのスレッドが保有しているデータ(それこそ個人データだったりカード情報だったり)を保護し、これが盗まれないようにするための技術であり、このためアプリケーションもこれに応じた記述の仕方が要求される。一方でRealmは、その当該スレッドが攻撃されることそのものは避けられないが、その影響をシステム全体に及ぼさない(そのスレッド内で完結させる)のが目的のように思える。

 このあたりの話はあくまで筆者の理解なので、ひょっとすれば間違っている可能性もある。その辺を含めて2021年中に詳細が出てくるとされるので、これを待ちたい。

Copyright © ITmedia, Inc. All Rights Reserved.