TEE/GlobalPlatform - TEE/GlobalPlatform - 2024.2 日本語 - UG1642

AI エンジン システム ソフトウェア ドライバー リファレンス マニュアル (UG1642)

Document ID
UG1642
Release Date
2024-11-13
Version
2024.2 日本語

AI エンジンがセキュアとしてコンフィギュレーションされており、非セキュアなアプリケーションがこのセキュアな AI エンジン上でサービスを要求する必要がある場合、GlobalPlatform 規格を使用できます。これは、セキュアなデジタル サービスおよびデバイスを実現するための標準規格です。

GlobalPlatform は、非営利会員主導の技術協会で、脅威や攻撃からデバイスを十分に保護できるセキュアなフレームワークを標準化しています。これにより、AI エンジンはエンド ユーザーにセキュアなデジタル サービスを提供できるようになります。TEE は、GlobalPlatform のプロジェクトの 1 つです。

TEE (信頼できる実行環境) とは、リッチなオペレーティング システムと並行して動作する環境で、このリッチな環境に対してセキュリティ サービスを提供します。TEE はセキュアな機能を備えた実行環境を提供し、その機能は TEE 内部で動作する信頼されたアプリケーションだけでなく、外部のクライアント アプリケーションからも利用できます。

TEE はクライアント アプリケーションと信頼されたアプリケーション (クライアント アプリケーションの認証、クライアント アプリケーションからのアトミック フィールド アクセス、クライアント アプリケーションのマルチスレッディングなど) の間に共有メモリを提供します。次の図に、TEE クライアント API アーキテクチャを示します。

図 1. TEE クライアント API アーキテクチャ

AI エンジン アプリケーションの場合、特権レジスタやシステム ポリシーにアクセスする必要があるため、AI エンジンの一部の動作はセキュア環境で実行する必要があります。現在、非セキュアなアプリケーションが PLM に対して要求を送信するには、EEMI が提供するインターフェイスを使用します。TEE は、非セキュアなクライアント アプリケーションが、セキュアな信頼されたアプリケーションの実行場所にかかわらず、そのサービスを利用できるようにするための、より汎用的なソリューションを提供します。これにより、信頼されたアプリケーションは PLM だけでなく、APU のセキュア EL0、RPU、PSM でも動作できるようになります。

Linux カーネルには、TEE コンテキスト、コンテキスト内の TEE セッション、信頼されたアプリケーションとクライアント アプリケーションの間の共有メモリ、および信頼されたアプリケーションからのリモート プロシージャ コール (RPC) をユーザーが管理するための TEE ドライバー フレームワークがあります。リファレンス用として、オープンソースの OP-TEE 実装が提供されています。

AI エンジン アプリケーションの場合、FPGA マネージャーを使用して FPGA 領域ごとに TEE コンテキストを開くことができます。各 FPGA 領域には、AI エンジンのみのパーティション、AI エンジンと PL のパーティション、または PL のみのパーティションを含めることができます。各 AI エンジン アプリケーションは、AI エンジンの TEE コンテキストでセッションを開くことができます。AI エンジンの TEE セッションを使用して、AI エンジン アプリケーションは信頼されたアプリケーションにコマンドを送信し、実行時に AI エンジンのサービスを要求できます。AI エンジン ハードウェアと通信してクライアント アプリケーションの要求に応えるには、AI エンジン ドライバーは信頼されたアプリケーション内で動作する必要があります。Linux ユーザー空間などの非セキュアなコンテキストのアプリケーションからセキュア環境で動作する AI エンジン ドライバーへサービス要求を渡すには、AI エンジン クライアント ドライバーが必要です。

TEE を使用した場合の長所は、次のとおりです。

  • ソリューションが GlobalPlatform 仕様に従っている。GlobalPlatform は、IoT、コネクテッド カー、スマートフォン、タブレットなど多くの製品で採用されています。標準化された仕様に従うことで、各種プラットフォームや OS 間でソリューションの移植が容易になります。
  • 信頼されていないクライアントが信頼されたアプリケーションから安全な方法でサービスを要求できる。
  • 信頼されていないクライアントどうしを分離できる。
  • 異なるアプリケーション間 (異なるプロセッサや VM で動作しているアプリケーション間を含む) で演算リソースを動的に割り当てるという問題を 1 つのソリューションで解決可能。

TEE を使用した場合の短所は、次のとおりです。

  • ソリューションが複雑。AMD Versal™ を使用する開発者は新しいコンポーネントを習得する必要があり、クライアント開発者もその新しいコンポーネントの習得が必要になることがあります。
  • ソリューションにメンテナンスが必要。
  • 単純なシングル ユーザーの場合でも余分なコンテキスト スイッチが必要になり、ソリューション実行時のオーバーヘッドが大きい。