(57)【要約】  コンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するための技法。一例では、第2のアクセス要求が第1のアクセス要求の後に順次に受信されるように、第1のアクセス要求および第2のアクセス要求が受信され得る。第1および第2のアクセス要求は、それぞれのマスタ識別子を含むことができる。第2のマスタ識別子が第1のマスタ識別子と等しい場合、第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられるように、第2のアクセス要求にアクセスが提供される。第2のマスタ識別子が第1のマスタ識別子と等しくない場合、第1のマスタ識別子に関連付けられた1つまたは複数のハードウェアブロックインターフェース値は、無効にされ得る。1つまたは複数のハードウェアブロックインターフェース値は、第2のマスタ識別子および対応する特権に関連付けられ得る。
2018507486.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム上のハードウェアブロックへの適応型アクセスを提供する方法であって、
アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信するステップであって、前記第2のアクセス要求が前記第1のアクセス要求の後に順次に受信され、前記第1のアクセス要求が第1のマスタ識別子を含み、前記第2のアクセス要求が第2のマスタ識別子を含む、ステップと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しいかどうかを決定するステップと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しい場合、前記第2のアクセス要求へのアクセスを提供するステップであって、前記第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられる、ステップと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しくない場合、前記第1のマスタ識別子に関連付けられた前記1つまたは複数のハードウェアブロックインターフェース値を無効にするステップと、
前記1つまたは複数のハードウェアブロックインターフェース値を、前記第2のマスタ識別子および対応する特権に関連付けるステップと
を備える、方法。
【請求項２】
前記第1のアクセス要求および前記第2のアクセス要求が、前記コンピュータシステム内のパブリックバスから受信される、請求項1に記載の方法。
【請求項３】
前記第1のマスタ識別子または前記第2のマスタ識別子のいずれかまたは両方が、ハイパーバイザ制御インターフェースに関連付けられる、請求項1に記載の方法。
【請求項４】
前記第1のアクセス要求および前記第2のアクセス要求が、信頼ゾーン実行環境、セキュアプロセッサ実行環境、モデム、およびハイパーバイザ実行環境からなるグループ内の1つまたは複数の実行環境から受信される、請求項1に記載の方法。
【請求項５】
前記第1のマスタ識別子が、第1の仮想マシン識別値であり、前記第2のマスタ識別子が、第2の仮想マシン識別値である、請求項1に記載の方法。
【請求項６】
マスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供する方法であって、
現在のアクセス所有者を決定するステップと、
前記マスタ側エンティティからメモリアクセスコマンドを受信するステップと、
前記マスタ側エンティティが前記現在のアクセス所有者である場合、前記マスタ側エンティティに関連付けられたドメインマスクに基づいて前記メモリアクセスコマンドを処理するステップと、
前記マスタ側エンティティが前記現在のアクセス所有者ではない場合、
すべての既存の鍵を無効にするステップと、
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定するステップと、
前記マスタ側エンティティに関連付けられた前記ドメインマスクに基づいて前記メモリアクセスコマンドを処理するステップと、
前記現在のアクセス所有者を前記マスタ側エンティティと等しく設定するステップと
を備える、方法。
【請求項７】
前記マスタ側エンティティがハイパーバイザである、請求項6に記載の方法。
【請求項８】
前記メモリアクセスコマンドが、ハイパーバイザマシンアイデンティティ(HVID)値を含む、請求項7に記載の方法。
【請求項９】
前記メモリアクセスコマンドが、メモリ保護ユニット(MPU)のリソースグループから受信される、請求項6に記載の方法。
【請求項１０】
前記メモリアクセスコマンドが、マシンアイデンティティ(MID)値を含む、請求項6に記載の方法。
【請求項１１】
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定するステップが、1つまたは複数のマルチプレクサモジュールに前記MID値を提供するステップと、前記1つまたは複数のマルチプレクサモジュールからドメイン識別子を受信するステップとを含む、請求項10に記載の方法。
【請求項１２】
コンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するためのシステムであって、
命令を記憶するためのメモリユニットと、
前記メモリユニットに結合されたプロセッサユニットと
を備え、前記プロセッサユニットが、
アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信することであって、前記第2のアクセス要求が前記第1のアクセス要求の後に順次に受信され、前記第1のアクセス要求が第1のマスタ識別子を含み、前記第2のアクセス要求が第2のマスタ識別子を含む、ことと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しいかどうかを決定することと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しい場合、前記第2のアクセス要求へのアクセスを提供することであって、前記第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられる、ことと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しくない場合、前記第1のマスタ識別子に関連付けられた前記1つまたは複数のハードウェアブロックインターフェース値を無効にすることと、
前記1つまたは複数のハードウェアブロックインターフェース値を、前記第2のマスタ識別子および対応する特権に関連付けることと
を行うように構成された、システム。
【請求項１３】
前記第1のアクセス要求および前記第2のアクセス要求が、前記コンピュータシステム内のパブリックバスから受信される、請求項12に記載のシステム。
【請求項１４】
前記第1のマスタ識別子または前記第2のマスタ識別子のいずれかまたは両方が、ハイパーバイザ制御インターフェースに関連付けられる、請求項12に記載のシステム。
【請求項１５】
前記第1のアクセス要求および前記第2のアクセス要求が、信頼ゾーン実行環境、セキュアプロセッサ実行環境、モデム、およびハイパーバイザ実行環境からなるグループ内の1つまたは複数の実行環境から受信される、請求項12に記載のシステム。
【請求項１６】
前記第1のマスタ識別子が、第1の仮想マシン識別値であり、前記第2のマスタ識別子が、第2の仮想マシン識別値である、請求項12に記載のシステム。
【請求項１７】
マスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するためのシステムであって、
命令を記憶するためのメモリユニットと、
前記メモリユニットに結合されたプロセッサユニットと
を備え、前記プロセッサユニットが、
現在のアクセス所有者を決定し、
前記マスタ側エンティティからメモリアクセスコマンドを受信し、
前記マスタ側エンティティが前記現在のアクセス所有者である場合、前記マスタ側エンティティに関連付けられたドメインマスクに基づいて前記メモリアクセスコマンドを処理し、
前記マスタ側エンティティが前記現在のアクセス所有者ではない場合、
すべての既存の鍵を無効にし、
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定し、
前記マスタ側エンティティに関連付けられた前記ドメインマスクに基づいて前記メモリアクセスコマンドを処理し、
前記現在のアクセス所有者を前記マスタ側エンティティと等しく設定するように構成された、システム。
【請求項１８】
前記マスタ側エンティティがハイパーバイザである、請求項17に記載のシステム。
【請求項１９】
前記メモリアクセスコマンドが、ハイパーバイザマシンアイデンティティ(HVID)値を含む、請求項18に記載のシステム。
【請求項２０】
前記メモリアクセスコマンドが、メモリ保護ユニット(MPU)のリソースグループから受信される、請求項17に記載のシステム。
【請求項２１】
前記メモリアクセスコマンドが、マシンアイデンティティ(MID)値を含む、請求項17に記載のシステム。
【請求項２２】
前記プロセッサユニットが、1つまたは複数のマルチプレクサモジュールに前記MID値を提供し、前記1つまたは複数のマルチプレクサモジュールからドメイン識別子を受信するように構成された、請求項21に記載のシステム。
【請求項２３】
コンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するための装置であって、
アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信するための手段であって、前記第2のアクセス要求が前記第1のアクセス要求の後に順次に受信され、前記第1のアクセス要求が第1のマスタ識別子を含み、前記第2のアクセス要求が第2のマスタ識別子を含む、手段と、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しいかどうかを決定するための手段と、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しい場合、前記第2のアクセス要求へのアクセスを提供するための手段であって、前記第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられる、手段と、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しくない場合、前記第1のマスタ識別子に関連付けられた前記1つまたは複数のハードウェアブロックインターフェース値を無効にするための手段と、
前記1つまたは複数のハードウェアブロックインターフェース値を、前記第2のマスタ識別子および対応する特権に関連付けるための手段と
を備える、装置。
【請求項２４】
前記第1のアクセス要求および前記第2のアクセス要求が、前記コンピュータシステム内のパブリックバスから受信される、請求項23に記載の装置。
【請求項２５】
前記第1のマスタ識別子または前記第2のマスタ識別子のいずれかまたは両方が、ハイパーバイザ制御インターフェースに関連付けられる、請求項23に記載の装置。
【請求項２６】
前記第1のアクセス要求および前記第2のアクセス要求が、信頼ゾーン実行環境、セキュアプロセッサ実行環境、モデム、およびハイパーバイザ実行環境からなるグループ内の1つまたは複数の実行環境から受信される、請求項23に記載の装置。
【請求項２７】
前記第1のマスタ識別子が、第1の仮想マシン識別値であり、前記第2のマスタ識別子は、第2の仮想マシン識別値である、請求項23に記載の装置。
【請求項２８】
マスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するための装置であって、
現在のアクセス所有者を決定するための手段と、
前記マスタ側エンティティからメモリアクセスコマンドを受信するための手段と、
前記マスタ側エンティティが前記現在のアクセス所有者である場合、前記マスタ側エンティティに関連付けられたドメインマスクに基づいて前記メモリアクセスコマンドを処理するための手段と、
前記マスタ側エンティティが前記現在のアクセス所有者ではない場合、
すべての既存の鍵を無効にするための手段と、
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定するための手段と、
前記マスタ側エンティティに関連付けられた前記ドメインマスクに基づいて前記メモリアクセスコマンドを処理するための手段と、
前記現在のアクセス所有者を前記マスタ側エンティティと等しく設定するための手段と
を備える、装置。
【請求項２９】
前記マスタ側エンティティがハイパーバイザである、請求項28に記載の装置。
【請求項３０】
前記メモリアクセスコマンドが、ハイパーバイザマシンアイデンティティ(HVID)値を含む、請求項29に記載の装置。
【請求項３１】
前記メモリアクセスコマンドは、メモリ保護ユニット(MPU)のリソースグループから受信される、請求項28に記載の装置。
【請求項３２】
前記メモリアクセスコマンドが、マシンアイデンティティ(MID)値を含む、請求項28に記載の装置。
【請求項３３】
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定するための手段が、1つまたは複数のマルチプレクサモジュールに前記MID値を提供するための手段と、前記前記1つまたは複数のマルチプレクサモジュールからドメイン識別子を受信するための手段とを含む、請求項32に記載の装置。
【請求項３４】
コンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するための命令を備えるプロセッサ可読記憶媒体であって、前記命令が、
アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信するためのコードであって、前記第2のアクセス要求が前記第1のアクセス要求の後に順次に受信され、前記第1のアクセス要求が第1のマスタ識別子を含み、前記第2のアクセス要求が第2のマスタ識別子を含む、コードと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しいかどうかを決定するためのコードと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しい場合、前記第2のアクセス要求へのアクセスを提供するためのコードであって、前記第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられる、コードと、
前記第2のマスタ識別子が前記第1のマスタ識別子と等しくない場合、前記第1のマスタ識別子に関連付けられた前記1つまたは複数のハードウェアブロックインターフェース値を無効にするためのコードと、
前記1つまたは複数のハードウェアブロックインターフェース値を、前記第2のマスタ識別子および対応する特権に関連付けるためのコードと
を備える、プロセッサ可読記憶媒体。
【請求項３５】
前記第1のアクセス要求および前記第2のアクセス要求が、前記コンピュータシステム内のパブリックバスから受信される、請求項34に記載のプロセッサ可読記憶媒体。
【請求項３６】
前記第1のマスタ識別子または前記第2のマスタ識別子のいずれかまたは両方が、ハイパーバイザ制御インターフェースに関連付けられる、請求項34に記載のプロセッサ可読記憶媒体。
【請求項３７】
前記第1のアクセス要求および前記第2のアクセス要求が、信頼ゾーン実行環境、セキュアプロセッサ実行環境、モデム、およびハイパーバイザ実行環境からなるグループ内の1つまたは複数の実行環境から受信される、請求項34に記載のプロセッサ可読記憶媒体。
【請求項３８】
前記第1のマスタ識別子が、第1の仮想マシン識別値であり、前記第2のマスタ識別子が、第2の仮想マシン識別値である、請求項34に記載のプロセッサ可読記憶媒体。
【請求項３９】
マスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するための命令を備えるプロセッサ可読記憶媒体であって、
現在のアクセス所有者を決定するためのコードと、
前記マスタ側エンティティからメモリアクセスコマンドを受信するためのコードと、
前記マスタ側エンティティが前記現在のアクセス所有者である場合、前記マスタ側エンティティに関連付けられたドメインマスクに基づいて前記メモリアクセスコマンドを処理するためのコードと、
前記マスタ側エンティティが前記現在のアクセス所有者ではない場合、
すべての既存の鍵を無効にするためのコードと、
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定するためのコードと、
前記マスタ側エンティティに関連付けられた前記ドメインマスクに基づいて前記メモリアクセスコマンドを処理するためのコードと、
前記現在のアクセス所有者を前記マスタ側エンティティと等しく設定するためのコードと
を備える、プロセッサ可読記憶媒体。
【請求項４０】
前記マスタ側エンティティがハイパーバイザである、請求項39に記載のプロセッサ可読記憶媒体。
【請求項４１】
前記メモリアクセスコマンドが、ハイパーバイザマシンアイデンティティ(HVID)値を含む、請求項40に記載のプロセッサ可読記憶媒体。
【請求項４２】
前記メモリアクセスコマンドが、メモリ保護ユニット(MPU)のリソースグループから受信される、請求項39に記載のプロセッサ可読記憶媒体。
【請求項４３】
前記メモリアクセスコマンドが、マシンアイデンティティ(MID)値を含む、請求項39に記載のプロセッサ可読記憶媒体。
【請求項４４】
前記マスタ側エンティティに関連付けられた前記ドメインマスクを決定するための前記コードが、1つまたは複数のマルチプレクサモジュールに前記MID値を提供するためのコードと、前記1つまたは複数のマルチプレクサモジュールからドメイン識別子を受信するためのコードとを含む、請求項43に記載のプロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアブロックのための適応型アクセス制御に関する。
【背景技術】
【０００２】
分散コンピューティングシステムは、処理容量に関する需要が増加するのでより優勢になりつつある。複数のコンピュータの処理容量の一部が共通のタスクのために割り振られるなど、様々な形の分散コンピューティングシステムが存在する。分散コンピューティングシステムは、異なる物理プロセッサ、異なる物理プロセッサの部分、複数のプロセッサに常駐する複数のオペレーティングシステム、単一のプロセッサに常駐する複数のオペレーティングシステム、これらのいずれかの2つ以上の組合せ、またはさらに他の構成を備えることができる。いくつかの分散コンピューティングシステムは、複数の処理ユニットと、高レベルオペレーティングシステムと、プロセッサとを含むことができ、これらは、異種であり(すなわち、関連せず)、信頼のクラスタを形成しない。セキュリティ特性を有するシステムでは、アクセス制御は、重要な機能である場合がある。アクセス制御を有するハードウェア(HW)リソースは、あるエンティティがインターフェースにアクセスすることを可能にするアクセス制御を実施するためにロッキング機構を使用することができる。いくつかの分散システムは、多くのインターフェースにわたる多くのマスタをサポートするために、仮想化ハードウェアを使用することができる。一般に、アクセス制御機構を構成することは、煩雑であり、リソースを管理するための集中スーパバイザまたはアドミニストレータと、リソースを割り振り、開放するためのスーパバイザとユーザとの間のプロトコルとを必要とする場合がある。いくつかの分散システムは、静的なリソース割り振りのみをサポートすることによってそのような複雑さを回避し、したがって、動的なリソース割り振りをサポートするハードウェアの能力を失う。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示によるコンピュータシステム上のハードウェアブロックへの適応型アクセスを提供する例示的な方法は、第2のアクセス要求が第1のアクセス要求の後に順次に受信され、第1のアクセス要求が第1のマスタ識別子を含み、第2のアクセス要求が第2のマスタ識別子を含むように、アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信するステップと、第2のマスタ識別子が第1のマスタ識別子と等しいかどうかを決定するステップと、第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられるように、第2のマスタ識別子が第1のマスタ識別子と等しい場合、第2のアクセス要求へのアクセスを提供するステップと、第2のマスタ識別子が第1のマスタ識別子と等しくない場合、第1のマスタ識別子に関連付けられた1つまたは複数のハードウェアブロックインターフェース値を無効にするステップと、1つまたは複数のハードウェアブロックインターフェース値を、第2のマスタ識別子および対応する特権に関連付けるステップとを含む。
【０００４】
そのような方法の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。第1のアクセス要求および第2のアクセス要求は、コンピュータシステム内のパブリックバスから受信され得る。第1のマスタ識別子または第2のマスタ識別子のいずれかまたは両方は、ハイパーバイザ制御インターフェースに関連付けられ得る。第1のアクセス要求および第2のアクセス要求は、信頼ゾーン実行環境、セキュアプロセッサ実行環境、モデム、およびハイパーバイザ実行環境からなるグループ内の1つまたは複数の実行環境から受信され得る。第1のマスタ識別子は、第1の仮想マシン識別値であり得、第2のマスタ識別子は、第2の仮想マシン識別値であり得る。
【０００５】
本開示によるマスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供する方法の一例は、現在のアクセス所有者を決定するステップと、マスタ側エンティティからメモリアクセスコマンドを受信するステップと、マスタ側エンティティが現在のアクセス所有者である場合、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するステップと、マスタ側エンティティが現在のアクセス所有者ではない場合、すべての既存の鍵を無効にするステップと、マスタ側エンティティに関連付けられたドメインマスクを決定するステップと、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するステップと、現在のアクセス所有者をマスタ側エンティティと等しく設定するステップとを含む。
【０００６】
そのような方法の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。マスタ側エンティティは、ハイパーバイザであり得、メモリアクセスコマンドは、ハイパーバイザマシンアイデンティティ(HVID: Hypervisor Machine Identity)値を含むことができる。メモリアクセスコマンドは、メモリ保護ユニット(MPU: Memory Protection Unit)のリソースグループから受信され得る。メモリアクセスコマンドは、マシンアイデンティティ(MID: Machine Identity)値を含むことができる。マスタ側エンティティに関連付けられたドメインマスクを決定するステップは、1つまたは複数のマルチプレクサにMID値を提供するステップと、1つまたは複数のマルチプレクサからドメイン識別子を受信するステップとを含むことができる。
【０００７】
本開示によるコンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するための例示的なシステムは、命令を記憶するためのメモリユニットと、メモリユニットに結合されたプロセッサユニットとを含み、プロセッサユニットは、第2のアクセス要求が第1のアクセス要求の後に順次に受信され、第1のアクセス要求が第1のマスタ識別子を含み、第2のアクセス要求が第2のマスタ識別子を含むように、アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信し、第2のマスタ識別子が第1のマスタ識別子と等しいかどうかを決定し、第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられるように、第2のマスタ識別子が第1のマスタ識別子と等しい場合、第2のアクセス要求へのアクセスを提供し、第2のマスタ識別子が第1のマスタ識別子と等しくない場合、第1のマスタ識別子に関連付けられた1つまたは複数のハードウェアブロックインターフェース値を無効にし、1つまたは複数のハードウェアブロックインターフェース値を、第2のマスタ識別子および対応する特権に関連付けるように構成される。
【０００８】
そのようなシステムの実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。第1のアクセス要求および第2のアクセス要求は、コンピュータシステム内のパブリックバスから受信され得る。第1のマスタ識別子または第2のマスタ識別子のいずれかまたは両方は、ハイパーバイザ制御インターフェースに関連付けられ得る。第1のアクセス要求および第2のアクセス要求は、信頼ゾーン実行環境、セキュアプロセッサ実行環境、モデム、およびハイパーバイザ実行環境からなるグループ内の1つまたは複数の実行環境から受信され得る。第1のマスタ識別子は、第1の仮想マシン識別値であり得、第2のマスタ識別子は、第2の仮想マシン識別値であり得る。
【０００９】
本開示によるマスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するためのシステムの一例は、命令を記憶するためのメモリユニットと、メモリユニットに結合されたプロセッサユニットとを含み、プロセッサユニットは、現在のアクセス所有者を決定し、マスタ側エンティティからメモリアクセスコマンドを受信し、マスタ側エンティティが現在のアクセス所有者である場合、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理し、マスタ側エンティティが現在のアクセス所有者ではない場合、すべての既存の鍵を無効にし、マスタ側エンティティに関連付けられたドメインマスクを決定し、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理し、現在のアクセス所有者をマスタ側エンティティと等しく設定するように構成される。
【００１０】
そのようなシステムの実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。マスタ側エンティティは、ハイパーバイザであり得、メモリアクセスコマンドは、ハイパーバイザマシンアイデンティティ(HVID)値を含むことができる。メモリアクセスコマンドは、メモリ保護ユニット(MPU)のリソースグループから受信され得る。メモリアクセスコマンドは、マシンアイデンティティ(MID)値を含むことができる。処理ユニットは、1つまたは複数のマルチプレクサにMID値を提供し、1つまたは複数のマルチプレクサからドメイン識別子を受信するように構成され得る。
【００１１】
本開示によるコンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するための装置の一例は、第2のアクセス要求が第1のアクセス要求の後に順次に受信され、第1のアクセス要求が第1のマスタ識別子を含み、第2のアクセス要求が第2のマスタ識別子を含むように、アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信するための手段と、第2のマスタ識別子が第1のマスタ識別子と等しいかどうかを決定するための手段と、第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられるように、第2のマスタ識別子が第1のマスタ識別子と等しい場合、第2のアクセス要求へのアクセスを提供するための手段と、第2のマスタ識別子が第1のマスタ識別子と等しくない場合、第1のマスタ識別子に関連付けられた1つまたは複数のハードウェアブロックインターフェース値を無効にするための手段と、1つまたは複数のハードウェアブロックインターフェース値を、第2のマスタ識別子および対応する特権に関連付けるための手段とを含む。
【００１２】
本開示によるマスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するための装置の一例は、現在のアクセス所有者を決定するための手段と、マスタ側エンティティからメモリアクセスコマンドを受信するための手段と、マスタ側エンティティが現在のアクセス所有者である場合、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するための手段と、マスタ側エンティティが現在のアクセス所有者ではない場合、すべての既存の鍵を無効にするための手段と、マスタ側エンティティに関連付けられたドメインマスクを決定するための手段と、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するための手段と、現在のアクセス所有者をマスタ側エンティティと等しく設定するための手段とを含む。
【００１３】
本開示によるコンピュータシステム上のハードウェアブロックへの適応型アクセスを提供するための命令を備える非一時的プロセッサ可読記憶媒体の一例は、第2のアクセス要求が第1のアクセス要求の後に順次に受信され、第1のアクセス要求が第1のマスタ識別子を含み、第2のアクセス要求が第2のマスタ識別子を含むように、アクセスコントローラを用いて第1のアクセス要求と第2のアクセス要求とを受信するためのコードと、第2のマスタ識別子が第1のマスタ識別子と等しいかどうかを決定するためのコードと、第1のマスタ識別子が1つまたは複数のハードウェアブロックインターフェース値に関連付けられるように、第2のマスタ識別子が第1のマスタ識別子と等しい場合、第2のアクセス要求へのアクセスを提供するためのコードと、第2のマスタ識別子が第1のマスタ識別子と等しくない場合、第1のマスタ識別子に関連付けられた1つまたは複数のハードウェアブロックインターフェース値を無効にするためのコードと、1つまたは複数のハードウェアブロックインターフェース値を、第2のマスタ識別子および対応する特権に関連付けるためのコードとを含む。
【００１４】
本開示によるマスタ側エンティティのアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するための命令を備える非一時的プロセッサ可読記憶媒体の一例は、現在のアクセス所有者を決定するためのコードと、マスタ側エンティティからメモリアクセスコマンドを受信するためのコードと、マスタ側エンティティが現在のアクセス所有者である場合、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するためのコードと、マスタ側エンティティが現在のアクセス所有者ではない場合、すべての既存の鍵を無効にするためのコードと、マスタ側エンティティに関連付けられたドメインマスクを決定するためのコードと、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するためのコードと、現在のアクセス所有者をマスタ側エンティティと等しく設定するためのコードとを含む。
【００１５】
本明細書で説明する項目および/または技法は、以下の機能のうちの1つまたは複数、および/または記載されていない他の機能を提供することができる。マスタ側エンティティは、スレーブ側ハードウェアメモリへのアクセスを開始する。識別情報(たとえば、マシンID(MID)、仮想マシンID(VMID: Virtual Machine ID)、または他の識別子)は、スレーブ側ハードウェアによって受信されるメモリアクセスコマンド内に含まれる。メモリアクセスは、識別情報に基づいて許可される。後続のコマンド内の識別情報の変化は、認識される。識別情報の変化に基づいて、以前の識別情報に関連付けられた記憶および状態情報は、消去および/または無効化される。適応型アクセス制御が提供される。ハードウェアレジスタ、または他のメモリデバイスは、異なるマスタに関連付けられたドメイン情報を記憶するために使用される。コマンドインターフェースに関連付けられた特権は、コマンド内に含まれる識別情報に基づいて適合される。同一のインターフェースと異なる識別情報とを有する仮想化ハードウェアは、スレーブ側メモリデバイスにアクセスすることができる。他の機能が提供されてもよく、本開示によるすべての実装形態が、論じた機能のすべては言うまでもなく、そのいずれかを提供しなければならないというわけではない。
【図面の簡単な説明】
【００１６】
【図１】分散コンピューティングシステムを示すブロック図である。
【図２】図1に示すシステムを実装するためのシステムオンアチップを示すブロック図である。
【図３】図1に示す暗号エンジンを実装するためのコンピュータシステムのブロック図である。
【図４】図3に示すマスタドメインテーブルとしてのアクセステーブルの一部の図である。
【図５】図1に示すシステム上に実装されたアクセスコントローラのブロック図である。
【図６】ハードウェアブロックの適応型アクセス制御のプロセスのブロックフロー図である。
【図７】トランザクション所有者の識別子に基づいてスレーブ側メモリリソースへのアクセスを提供するプロセスのブロックフロー図である。
【発明を実施するための形態】
【００１７】
ハードウェアブロック内のメモリへの安全なアクセスを提供するための技法について論じる。たとえば、マスタ側エンティティ(たとえば、CPU、DSP)は、スレーブ側ハードウェア内に記憶されたメモリへのアクセス(たとえば、読出しまたは書込み動作)を開始することができる。スレーブ側ハードウェアの例は、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、または他のハードウェア(HM)レジスタを含む。マスタ側アクセス制御は、マスタによって行われるメモリアクセスの制御であり、スレーブ側アクセス制御は、スレーブ側で行われるアクセスに対する制御である。システムメモリ管理ユニット(SMMU: System Memory Management Unit)は、マスタ側アクセス制御ソリューション(たとえば、ARM(登録商標) SMMUアーキテクチャ)において使用され得、メモリ保護ユニット(MPU)は、スレーブ側アクセス制御ソリューション(たとえば、ARM(登録商標) MPU領域)において使用され得る。
【００１８】
スレーブ側アクセス制御ソリューションでは、呼び出しエンティティのアイデンティティは、アクセスのための呼び出し内に含まれる呼び出し元情報に基づいて知られ得る。たとえば、マスタ側エンティティによって開始され、スレーブ側ハードウェアによって受信される呼び出しは、呼び出し元のアイデンティティを示すためのマシンID(MID)または仮想マシンID(VMID)を含むことができる。MIDに加えて、またはMIDの代わりに、呼び出し元識別情報は、マスタを識別するための追加ビットを含むことができる。一例として、3つのセキュアマスタは、セキュアプロセッサ(SP)、信頼ゾーン(NS)、およびモデム(MSA)であってもよく、3つの追加ビットは、マスタの各々を一意に識別するために使用され得る。指定ビット(たとえば、追加ビット)は、マスタの数、スレーブ側ハードウェアの処理能力、およびシステムセキュリティ計画などのシステム設計の考慮に基づいて使用され得る。指定ビットは、MIDを増強または置換することができる。スレーブ側ハードウェア内のMPUは、メモリリソースに対する呼び出し内に含まれるID情報(たとえば、指定ビット、MID、VMID)を読み出し、メモリアクセス呼び出しが承認されたかまたは拒絶されたかを決定するためにID情報を使用することができる。
【００１９】
一般に、SMMUを有するマスタ側アクセス制御アーキテクチャでは、SMMUは、呼び出しエンティティの仮想メモリアドレスを物理アドレスに変換するとき、呼び出しエンティティのアイデンティティを除去するように構成され得る。呼び出しエンティティは、たとえば、高レベルオペレーティングシステム(HLOS: High Level Operating System)、1つまたは複数の実行環境(EE: Execution Environment)、信頼ゾーン(TZ)、セキュアプロセッサ、モデム、または他の物理的および仮想ハードウェア構成物であり得る。SMMUは、仮想アドレス(呼び出しエンティティによって使用される)をハードウェアブロックが存在する物理アドレスに変換することができる。一例では、セキュリティハードウェアブロックは、個々のチャネルを各呼び出しエンティティに割り振ることができる。たとえば、チャネル1がHLOSに割り当てられる場合、HLOS領域の仮想アドレスのみがチャネル1に変換され、他の領域については、アドレスは、チャネル1に決して変換されない。アドレス空間の一部をそれらの仮想世界に公開することによって、異なるチャネルが異なる呼び出しエンティティに割り当てられ得る。SMMUソリューションでは、スレーブ側ハードウェアは、呼び出しエンティティがなんであるのかを知らない。スレーブ側ハードウェアは、識別情報を持たず、アクセスアドレスのみを有するので、呼び出しエンティティを識別することができない。
【００２０】
マスタ側(たとえば、SMMU)アクセス制御およびスレーブ側(たとえばMPU)アクセス制御がシステムアクセスを規制するために使用される間、しばしば、スレーブ側ハードウェア(HW)ブロックが呼び出し元を識別することが不可欠である。これは、スレーブ側ハードウェアが呼び出し元(たとえば、DMA、ディスクコントローラ、暗号エンジン)のために実行しなければならない場合、特にそうである。従来のソリューションでは、これは、特定のスレーブ側HWブロックのさらなる構成と、SMMUおよび/またはMPUの構成に対するカスタマイズ(たとえば、専用プログラミング)とを必要とする。加えて、このタイプのカスタマイズは、そのスレーブ側HWブロック(たとえば、DMA、ディスクコントローラ、暗号エンジン)と、それ(たとえば、SMMUまたはMPU)を保護するアクセス制御との間の厳密な同期を必要とする。エラーを起こしやすく複雑なローカル構成を回避するために、スレーブ側HWブロックは、その構成をシステムレベルアクセス制御(たとえば、MPU、SMMU)に適合させることができる。分散コンピューティングシステム内のスレーブ側ハードウェアは、(たとえば、指定ビット、MID、VMIDを監視することによって)マスタ側呼び出し元のエンティティIDを追跡/監視し、エンティティID情報に基づいて適応型ドメインアクセスを提供するように構成され得る。適応型アクセスは、以前のSMMUおよび/またはMPUベースのソリューションで必要とされるチャネル化に関連する同期の複雑さを低減することができる。
【００２１】
図1を参照すると、分散コンピューティングシステム10は、暗号化/復号エンジン、すなわち暗号エンジン12と、いくつかの実行環境(EE)30とを含み、EE30は、モデム14と、オーディオEE16と、ビデオEE18と、センサ/検出器EE20と、セキュアプロセッサEE22と、信頼ゾーンEE24と、高レベルオペレーティングシステム(HLOS)EE26と、1つまたは複数の他の実行環境28とを含む。他のEE28は、図示のEEに似た1つまたは複数のEEを含むことができ、たとえば、別のセンサ/検出器EE、別のビデオEEなどを含むことができる。EE30は、複数の実行環境(たとえば、仮想マシン)と対応するハードウェアリソースとを管理するのを助けるように構成されたハイパーバイザを含むことができる。センサ/検出器EE20は、カメラ、衛星測位システム(SPS: Satellite Positioning System)受信機、マイクロフォン、またはバイオメトリックセンサなどの様々なセンサのいずれかとすることができる。バイオメトリックセンサは、指紋センサ、心電図(ECG)センサ、脳波(EEG)センサ、その他などの様々なセンサのいずれかとすることができる。単純さのために、「EE」は、図内の箱からは省略されている。さらに、実行環境は、モジュールと呼ばれる場合がある。実行環境30の各々は、ハードウェア、ファームウェア、1つまたは複数のプロセッサ、またはこれらのうちのいずれかの組合せによって実施され得る。実行環境は、1つまたは複数のプロセッサ上で実行される仮想マシン(VM)アルゴリズムの1つまたは複数のインスタンスを管理するように構成されたハイパーバイザを含むことができる。複数のプロセッサが、実行環境を実施するのに使用され得、各実行環境は、1つまたは複数のプロセッサによって実施され、あるいは、実行環境30の1つまたは複数のグループ(すなわち、1グループあたり2つ以上の実行環境)のそれぞれが、単一のプロセッサによって実施される。単一のプロセッサが実行環境30のうちの複数(おそらくは実行環境30のすべて)を実施する場合に、実行環境30は、プロセッサによって実施される別個のオペレーティングシステムである。実行環境30は、一般的にはオペレーティングシステムまたは仮想マシンと呼ばれる場合がある。実行環境30は、それぞれの情報を処理し、機密の形においてそれらの間で情報を共有することのできるモジュールである。図示の実行環境30は、実行環境の例であり、他の実行環境が提供され得、かつ/または実行環境14、16、18、20、22、24、26、28のうちの1つまたは複数が、システム10から省略され得る。システム10は、様々な目的のために使用され得、本明細書で説明される技法は、実行環境の間で情報を安全に渡すためにシステム10の様々なアプリケーションのいずれにも適用可能である。
【００２２】
図2をも参照すると、図1内に示されたシステム10を実施するためのシステムオンアチップ(SoC)50は、プロセッサ52、メモリ54、センサ56、および暗号エンジン12を含む。プロセッサ52は、複数のプロセッサを含むことができ、センサ56は、複数のセンサを含むことができる。センサ56は、オプションであり、たとえば、感知(たとえば、測定)されるべきオーディオ情報、ビデオ情報、バイオメトリック情報、または他の情報がない場合に、省略され得る。さらに、センサ56(たとえば、センサ56が複数のセンサを含む場合に、1つまたは複数のセンサ)は、SoC50の外部に(すなわち、離れて)配置され得る。プロセッサ52は、好ましくはインテリジェントハードウェアデバイス、たとえば、ARM(登録商標)、Intel(登録商標) Corporation、またはAMD(登録商標)によって製造されまたは設計されるものなどの中央処理装置(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)、その他である。プロセッサ52は、SoC50内で分散され得る複数の別々の物理エンティティを含むことができる。プロセッサ52は、構成可能な領域を有するMPU(たとえば、ARM(登録商標) Cortex(商標)- M3など)を含むことができる。メモリ54は、ランダムアクセスメモリ(RAM)と読出し専用メモリ(ROM)とを含む。メモリ54は、実行されたときに本明細書で説明される様々な機能をプロセッサ52に実行させるように構成された命令を含むプロセッサ可読プロセッサ実行可能ソフトウェアコードであるソフトウェア58を記憶する非一時的プロセッサ可読記憶媒体である(この説明は、機能を実行するプロセッサ52だけに言及する場合があるが)。代替案では、ソフトウェア58は、プロセッサ52によって直接に実行可能であるのではなく、たとえばコンパイルされ実行されるときにプロセッサ52に機能を実行させるように構成され得る。プロセッサ52は、メモリ54に通信可能に結合される。暗号エンジン12は、実行環境からのマスタ側メモリアクセス呼び出しを受信し、エンティティID情報に基づいてトランザクション所有者を決定し、エンティティID情報に基づいて1つまたは複数のドメインへのアクセスを提供するように構成されたハードウェアブロックである。暗号エンジン12は、エンティティID情報に基づいて1つまたは複数のドメインへのアクセスを拒否し、トランザクション所有権の変更を決定し、トランザクション所有権変更に基づいてインターフェースの既存の構成を消去または無効化するように構成され得る。一実施形態では、暗号エンジン12は、暗号化鍵を記憶し、プレーンテキストを暗号化テキストに暗号化し、暗号化テキストを記憶し、暗号化テキストを再構成されたプレーンテキストに復号し、再構成されたプレーンテキストを記憶するようにも構成され得る。
【００２３】
プロセッサ52は、メモリ54および適当な場合にセンサ56とともに、実行環境30を実施するように構成される。実行環境30および暗号エンジン12のいずれかは、それ自体のプロセッサを有することができ、または、プロセッサ52およびメモリ54の処理機能の少なくとも一部を利用するように構成された仮想マシンとして構成され得る。メモリ54は、実行環境30の各々のための1つまたは複数のメモリを含むメモリのコレクションとすることができる。
【００２４】
メモリ54は、実行環境30のうちの複数の実行環境によって使用されるジョイントメモリ(joint memory)を含むことができる。このジョイントメモリは、共有メモリではないものとすることができる、すなわち、複数の実行環境30が、単一のメモリ位置に書き込むことができず、1つの実行環境30が、あるメモリ位置に書き込むことができず、別の実行環境30が、そのメモリ位置に読み取ることができるように、異なる実行環境30が、同一のメモリ位置にアクセスできないものとすることができる。したがって、実行環境30が情報を受信しまたは情報を提供することの指示は、その情報が実行環境30によってジョイントメモリから読み取られることまたはその情報が実行環境30によってジョイントメモリに提供されることと同等とすることができ、これによって実施され得る。ジョイントメモリは、たとえばメモリ位置への情報の記憶および/またはメモリ位置からの情報の読み取りのための、そのメモリ位置へのアクセスを制御するためのメモリ管理ユニットを含むことができる。
【００２５】
実行環境30は、たとえば、オーディオ、ビデオ、バイオメトリック、および/または他の情報を提供するために様々な情報を処理するマスタ側オペレーティングシステムまたは仮想マシンであり得る。実行環境30の各々は、暗号エンジン12に情報を提供するために暗号エンジン12に通信可能に結合され得る。たとえば、マスタ側実行環境は、秘密鍵バスまたは公開鍵バスを介して暗号エンジンに結合され得る。ハイパーバイザは、暗号エンジン12と、1つもしくは複数の仮想マシン、または他の実行環境30との間の通信を制御するために使用され得る。暗号エンジン12は、呼び出し内に含まれるID情報(たとえば、指定ビット、MID、VMID)に基づいてマスタ側メモリアクセス呼び出しにおける所有者(すなわち、呼び出しエンティティ)を安全に識別することができる。一例では、実行環境30はまた、暗号化鍵を含む情報を暗号エンジン12に提供することができ、または暗号エンジン12から情報を受信することができ、あるいは、実行環境30によって示される情報を暗号エンジン12に暗号化もしくは復号させるためのコマンドを提供することができる。
【００２６】
図3を参照し、さらに図1〜図2を参照すると、暗号エンジン12は、処理ロジック62と、ソフトウェア(SW)66ならびに概念的マスタおよびドメインテーブル(MDT)68とを含む内部メモリ64とを含むコンピュータシステムを用いて実装され得る。一般に、内部メモリ64は、実行環境30によってアクセス可能ではない。処理ロジック62は、好ましくは、マスタ側呼び出しエンティティに関連付けられた識別情報に基づいてトランザクション所有者を決定し、トランザクション所有権の変更を決定し、トランザクション所有権に基づいてドメインアクセスを許可/拒否/無効化するように構成されたインテリジェントハードウェア論理デバイスである。一例では、処理ロジック62は、ARM(登録商標)、Intel(登録商標) Corporation、またはAMD(登録商標)によって製造されまたは設計されるものなどの少なくとも1つの中央処理装置(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)、その他を備えることができる。処理ロジック62は、SoC50内で分散され得る複数の別々の物理エンティティを備えることができる。暗号エンジン12は、仮想システム(すなわち、仮想ハードウェア)として実装されてもよく、暗号エンジンの複数のインスタンスは、コンピュータシステム内で実行されていてもよい。一実施形態では、処理ロジック62は、マルチプレクサと、メモリアクセストランザクションにおける所有権の変更を検出するように構成された比較器モジュールとを備える1つまたは複数のアクセスコントローラ100a、100b、100c、100nを含むこともできる。内部メモリ64は、ランダムアクセスメモリ(RAM)と読出し専用メモリ(ROM)とを含むことができる。ソフトウェア66が含まれる場合、ソフトウェア66を記憶する内部メモリ64は、非一時的プロセッサ可読記憶媒体であり、ソフトウェア66は、実行されたとき、処理ロジック62に本明細書で説明する(説明は、機能を実行する処理ロジック62にのみ言及する場合があるが)様々な機能を実行させる命令を含むプロセッサ可読プロセッサ実行可能ソフトウェアコードである。代替的には、ソフトウェア66は、処理ロジック62によって直接実行可能でなくてもよく、たとえば、コンパイルされ、実行されたとき、処理ロジック62に機能を実行させるように構成されてもよい。処理ロジック62は、たとえば、概念的マスタおよびドメインテーブル68に関連付けられた情報にアクセスするために、内部メモリ64に通信可能に結合される。処理ロジック62は、単独で、または内部メモリ64と組み合わせて、本明細書で説明する機能、たとえば、マスタ側エンティティから(たとえば、MPUを介して)コマンド(たとえば、メモリアクセス呼び出し)を受信する機能と、呼び出しエンティティのアイデンティティに基づいてトランザクション所有者を決定する機能と、トランザクション所有者を現在の所有者(すなわち、以前のトランザクション所有者)と比較する機能と、トランザクション所有者と現在の所有者が同じである場合、(すなわち、概念的MDT68に基づいて)適切なアクセスを許可し、または所有権の変更がある(すなわち、トランザクション所有権と現在の所有者が同じではない)場合、現在のインターフェースが所有するすべて(たとえば、記憶、秘密、状態、特権(Privilege))を無効にする機能と、トランザクション所有者を現在の所有者として記憶する機能と、���在の所有者に適切なアクセスを許可する機能と実行するための手段を提供する。
【００２７】
図4を参照し、さらに図1を参照すると、概念的マスタおよびドメインテーブル68は、アクセステーブル70として示されている。アクセステーブル70は、アクセスコントローラ100a、100b、100c、100nによって利用されるハードウェアを介して実装され得る。一実施形態では、アクセステーブル70は、読出し専用メモリ(たとえば、内部メモリ64)内に記憶されたデータ構造であり得る。アクセステーブル70は、処理ロジック62(たとえば、ワンタイムプログラマブル(OTP: One Time Programmable)アレイ)内の他のプログラマブルメモリ構造において実装され得る。アクセステーブル70は、マスタインターフェース72(マスタID値を含む)と、ドメインエントリ74(ドメインID値を含む)とを含む。マスタは、コマンドを呼び出すように構成されたエンティティ(たとえば、鍵コマンドの鍵所有者、およびデータコマンドのデータ所有者)である。たとえば、モデム14、セキュアプロセッサ22、信頼ゾーンEE24、および他のEE28は、マスタである。マスタは、マスタID値のメンバーから構成される(membered)。マスタID値は、厳密であり、SoCにわたって固定され得る。値は、デバッグ動作およびブート動作のために、ならびに秘密鍵バスまたは公開鍵バスのために予約され得る。マスタID値の範囲は、ハイパーバイザインターフェースに割り当てられ、したがって、1つまたは複数のハイパーバイザアルゴリズムによって管理され得る。ドメインは、制御されたアクセスによる特定の目的のための領域を画定する特別アクセス制御設定によるアドレス空間である。一般に、マスタのサブセットのみがドメインにアクセスすることができる。ドメインは、ドメインID値を用いて番号付けされ得る。ドメインID値のうちのいくつかは、厳密であり、ハードウェアにおいて設定され、SoCにわたって固定され得る。他のドメインID値は、特定の実行環境および/またはアプリケーションのための一時的なドメインを作成するために、ハイパーバイザに使用するなどのために、柔軟であり得る。一実施形態では、鍵所有者は、ドメインID値をゼロに設定することによって、ドメインの選択を延期することができ、データ所有者は、ドメインを設定することができる。
【００２８】
一般に、アクセスコントローラ100a、100b、100c、100nの各々の背後に、鍵のテーブルが存在する。一旦コマンドがアクセスコントローラを通過すると、鍵は、暗号エンジン12内の鍵のテーブルに書き込まれ得る。暗号エンジン12は、受信されたコマンドに基づいてデータを復号するために、テーブル内の鍵のうちの1つを使用することができる。コマンドがアクセスコントローラを通過するのに失敗した場合、以前のマスタによって記憶された鍵は、無効化される。
【００２９】
アクセステーブル70は、特定のマスタID値76に関連付けられたドメインベクトル78(すなわち、ドメインマスク)を含む。アクセステーブル70は、マスタ特権を、それらがアクセスすることができるドメインにマッピングする。各インターフェースは、そのマスタ、およびアクセスすることができるドメインのマスクでタグ付けされる。特定のマスタID値76は、呼び出しエンティティのID(たとえば、指定ビット、MID、VMID)に対応することができる。ドメインベクトル78は、1つまたは複数のドメインへのアクセスがハイパーバイザによって管理され得ることを示すことができる。他のドメインベクトルは、マスタがどのドメインにアクセスすることができるのかを明示的に示すことができる。たとえば、信頼ゾーンEE24は、1のマスタID値を有するマスタであり得る。信頼ゾーンマスタの対応するドメインベクトルは、遅延ドメイン(0)と、信頼ゾーン(1)ドメインと、ハイパーバイザ(HV)(4)ドメインと、ビデオ(5)ドメインと、オーディオ(6)ドメインと、エンタープライズ(7)ドメインと、HLOS(8)ドメインとを含む。信頼ゾーンマスタのためのドメインマスクは、モデム(2)ゾーンと、セキュアプロセッサ(3)ドメインと、HV特別(ad hoc)(9〜15)ドメインとを除外する。動作中、ドメインベクトル78は、1の値が許容可能なドメインを示し、0の値が除外されたドメインを示すように一連のビットを備えることができる。アクセステーブル70、および特にドメインベクトルは、様々なハードウェアブロック(すなわち、メモリ位置、他の実行環境)をマスタに関連付けるための手段である。アクセステーブル70は、1つまたは複数のマルチプレクサモジュールがドメインベクトルを適切なマスタID値に関連付けるために使用され得るように、ソフトウェアおよび/または論理ハードウェアにおいて実装され得る。
【００３０】
図5を参照し、図1〜図4をさらに参照すると、例示的なアクセスコントローラ100のブロック図が示されている。アクセスコントローラ100は、図3に示すアクセスコントローラ100a、100b、100c、100nのうちの1つである。アクセスコントローラ100は、暗号エンジン12内に実装され、1つまたは複数のEE28からコマンド(たとえば、メモリアクセス呼び出し)を受信するように構成される。特に、コマンドは、1つもしくは複数のリソースグループ102または1つもしくは複数のハイパーバイザ104を介して受信され得る。リソースグループ102は、メモリ保護ユニット(MPU)の一部として含まれ得、リソースグループ102およびハイパーバイザ104からのメモリ呼び出しは、暗号エンジン12に動作可能に接続されたプライベートバス(図示せず)を介して受信され得る。ハイパーバイザ104によって生成されたメモリアクセス要求は、ハイパーバイザ構成インターフェース(HV Config I/F)106によって受信され得る。ハイパーバイザ構成インターフェース(HV Config I/F)106は、暗号エンジン12内(たとえば、プロセッサ/ハードウェアロジック62)で実装され得、HV制御インターフェースのための図4に示す特権方式を可能にするように構成される。HV Config I/F106は、ハイパーバイザ104が各インターフェース(たとえば、アクセスコントローラ100)ごとにHV_IF_Master126およびHV_DomainMask116の値を設定することを可能にする。一例では、アクセステーブル70は、マスタおよび対応するドメインベクトル78の集合を表す。アクセステーブル70に示す値は、第1のマルチプレクサモジュール128aおよび第2のマルチプレクサモジュール128bとして示すアクセスコントローラ100内の2つの4×1マルチプレクサモジュール、ならびに、インターフェースマスタおよびドメインマスクの対に対応するビットマップとして実装され得る。アクセスコントローラ100は、マスタおよびドメインマスクの4つの対に限定されない(すなわち、図5に示すように、他のマルチプレクサ、データ構造、およびメモリアクセス技法も、複数のマスタおよびドメインマスク(たとえば、4、8、11、16など)を実装するために使用され得る)。マルチプレクサモジュールは、リソースグループ102からの入力信号を受信し、マスタインターフェースと、対応するドメインマスクとを決定するように構成される。4つのドメインマスクは、特殊プロセッサドメインマスク(SP_DomainMask)110と、信頼ゾーンドメインマスク(TZ_DomainMask)112と、モデムドメインマスク(MSA_DomainMask)114と、ハイパーバイザドメインマスク(HV_DomainMask)116とを含むことができる。4つのマスタインターフェースは、セキュアプロセッサマスタインターフェース(SP_IF_Master)120と、信頼ゾーンマスタインターフェース(TZ_IF_Master)122と、モデムマスタインターフェース(MSA_IF_Master)124と、ハイパーバイザマスタインターフェース(HV_IF_Master)126とを含むことができる。HV Config I/F106は、ハイパーバイザ104が所有するすべてのインターフェースについてHV_IF_Master126およびHV_DomainMask116を構成する。たとえば、SMMUベースのアーキテクチャでは、SMMUは、ストリームマッピングテーブルを含むことができる。HV Config I/Fは、SMMUストリームマッピングテーブルを対応するドメインマスクと提携させるように構成される(すなわち、特権は、図4に示すようにハイパーバイザによって管理される)。
【００３１】
動作中、リソースグループ102および/またはハイパーバイザ104は、暗号エンジン12にコマンドを提供することができる。コマンドは、呼び出し元のアイデンティティに関する情報(たとえば、指定ビット、MID、VMID)を含む。コマンドは、トランザクション所有者140を決定するために、マルチプレクサモジュール128a、128bに提供され、マルチプレクサモジュール128a、128bで処理される。トランザクション所有者140は、第2のマルチプレクサモジュール128bによって出力されるトランザクションマスタインターフェース(Trans_IF_Master)130と、第1のマルチプレクサモジュール128aによって出力されるトランザクションドメインマスク(Trans_DomainMask)136とを含む。トランザクション所有者情報は、内部メモリ64内に記憶され得る。暗号エンジン12は、順次のコマンドにおけるインターフェース所有権の変更を検出するように構成される。一実施形態では、暗号エンジン12は、トランザクション所有者140と現在の所有者142との比較を実行するように構成された比較器回路132を含む。現在の所有者142は、IF_Master領域134と、DomainMask領域138とを含む。説明するように、現在の所有者142は、以前のコマンドのトランザクション所有者であってもよく、内部メモリ64内に記憶されてもよい。比較器回路132は、Trans_IF_Master130の値をIF_Master領域134の値と比較する。インターフェース所有権変更イベントは、Trans_IF_Master130およびIF_Master領域134の値が等しくない場合に検出される。インターフェース所有権変更イベントが生じたとき、暗号エンジン12は、トランザクション所有者140を現在の所有者142にコピーする(すなわち、IF_Master134=Trans_IF_Master130とDomainMask138=Trans_DomainMask136とを設定する)ように構成される。現在の所有者142が鍵グループインターフェースに関連付けられた鍵グループ所有者である場合、暗号エンジン12は、鍵グループ内のすべての鍵を無効化または削除する。無効化の結果として、鍵は、もはや将来のコマンドによって使用することはできないが、任意の進行中のコマンドは、古い鍵を使用し続けることができる。現在の所有者142がコマンドチャネルインターフェースに関連付けられたデータ所有者である場合、暗号エンジン12は、コマンドが実行されている間、コマンドチャネルをロックするように構成される。新しいコマンドは、以前のコマンドが完了したときにのみ承認される。所有権の変更のイベントは、アクセスが生じたときに生じ、MPUまたはHVが構成されるときに依存しない。所有権の変更のイベントを検出することは、暗号エンジンがさらなる構成なしにトランザクションに適応することを可能にするので、適応型アクセス制御を可能にする。この適応型制御ソリューションでは、(すなわち、SMMUまたはMPUソリューションのように)インターフェースを1つの所有者にロックするのではなく、HWブロックは、開いたままにされ、それにアクセスするマスタに安全に適応する。これは、MPUベースのソリューションにおけるロックされたインターフェースの複雑さ(たとえば、同期、インターフェースを開いたままにすることによる潜在的なセキュリティホール)を低減する。
【００３２】
図6を参照し、図1〜図5をさらに参照すると、ハードウェアブロックの適応型アクセス制御を提供するプロセス150は、図示のステージを含む。しかしながら、プロセス150は、単なる例であり、限定するものではない。プロセス150は、たとえば、ステージを追加すること、削除すること、再配置すること、組み合わせること、同時に実行すること、および/または単一のステージを複数のステージに分割することによって、変更され得る。プロセス150を説明するのを助けるために、信頼ゾーン実行環境24から第1のメモリアクセス要求を受信し、セキュアプロセッサ実行環境22から第2のメモリ要求を受信する具体例について説明する。この例は、図6内に示されていない動作を含み、そのような動作は、プロセス150の一部として要求されない。この例では、メモリアクセス要求は、パブリックバス(図示せず)に含まれるリソースグループ102に由来する。EE30のうちの1つまたは複数は、メモリ保護ユニット(MPU)を介してパブリックバスに動作可能に接続され得る。プロセス150の開始時における現在の所有者142の初期値は、信頼ゾーンインターフェースマスタ122および信頼ゾーンドメインマスク112(すなわち、IF_Master134=TZ_IF_Master122およびDomainMask138=TZ_DomainMask112)である。アクセスコントローラは、所有者の変更のイベントが生じたかどうかを決定するために、第1および第2のメモリアクセス要求を評価する。所有者の変更が検出されると、アクセスコントローラ100は、必要に応じてアクセスを消去、許可、および/または拒否するように構成される。ここで論じた例は、単なる例であり、システム10を限定するものではない。メモリアクセスコマンドは、任意の順序において実行環境30のいずれかによって送信され得る。
【００３３】
ステージ152において、プロセス150は、第2のアクセス要求が第1のアクセス要求の後に順次に受信されるように、暗号エンジンにおいて、アクセスコントローラ100を用いて第1のアクセス要求と第2のアクセス要求とを受信するステップを含み、第1のアクセス要求が第1のマスタ識別子を含み、第2のアクセス要求が第2のマスタ識別子を含む。第1および第2のアクセス要求は、プライベートバスまたはパブリックバスを介して暗号エンジン12に到達することができる。一例では、リソースグループ102は、パブリックバス上にあり、第1および第2のアクセス要求は、それぞれ、信頼ゾーン実行環境24およびセキュアプロセッサ実行環境22からのものである。第1および第2のアクセス要求は、マスタIDを示す一連の指定ビットなどのエンティティID情報を含む。マスタID情報は、アクセス要求がハイパーバイザベースの実行環境から発生した場合、マシンID(MID)または仮想マシンID(VMID)と同じであり得る。マルチプレクサモジュール128a、128bは、第1および第2のアクセス要求を受信し、要求内に含まれるエンティティID情報に基づいて、トランザクションドメインマスク136およびトランザクションインターフェースマスタ130をそれぞれ出力する。第1のアクセス要求を(すなわち、信頼ゾーン実行環境24から)受信すると、Trans_IF_Master130の値は、TZ_IF_Master122に対応する値(たとえば、図4に示しように1)に設定される。比較器回路132は、Trans_IF_Master130の値を現在の所有者142(すなわち、IF_Master134)の値と比較する。上記で説明したように、この例では、IF_Master134の初期値は、TZ_IF_Master122である。したがって、第1のアクセス要求のトランザクション所有者140は、現在の所有者142と等しく、メモリアクセスは、DomainMask138に従って許可される。
【００３４】
ステージ154において、アクセスコントローラ100は、第2のマスタが第1のマスタと等しいかどうかを決定するように構成される。例を続けると、暗号エンジン12は、リソースグループ102から第2のアクセス要求を受信する。第2の要求は、別のリソースグループを介して、またはハイパーバイザ104を介して到着した可能性がある。第2の要求は、第1のアクセス要求と同一の方法でマルチプレクサモジュール128a、128bに入力される。第2のアクセス要求は、セキュアプロセッサ実行環境22に由来するので、エンティティID情報は、第1のアクセス要求とは異なる。この場合、第1のマルチプレクサモジュール128aは、SP_DomainMask110値をトランザクション所有者140に出力し(すなわち、Trans_DomainMask136=SP_DomainMask110)、第2のマルチプレクサモジュール128bは、SP_IF_Master120値(たとえば、図4から3)をトランザクション所有者に出力する(すなわち、Trans_IF_Master130=SP_IF_Master120)。比較器回路132は、Trans_IF_Master130の値(たとえば、3)とIF_Master134の値(たとえば、1)とを比較する。この場合、第2のマスタは、第1のマスタと等しくないので、所有権の変更が決定される。
【００３５】
ステージ156において、暗号エンジン12は、第2のマスタ識別子が第1のマスタ識別子と等しい場合、第2のアクセス要求へのアクセスを提供するように構成され、第1のマスタ識別子は、1つまたは複数のハードウェアブロックインターフェース値に関連付けられる。比較器132は、Trans_IF_Master130の値を現在の所有者142(すなわち、IF_Master134)の値と比較する。値が等しい場合(すなわち、所有権の変更がなかった場合)、暗号エンジン12は、DomainMask138に従ってハードウェアブロックへのアクセスを提供する。たとえば、現在の所有者142が、現在のマスタ(すなわち、IF_Master)が信頼ゾーン実行環境24(すなわち、TZ_IF_Master)であることを示す場合、暗号エンジン12は、現在のドメインマスク(すなわち、DomainMask138)に基づくハードウェアブロックへのアクセスを許可する。アクセスは、1つまたは複数のハードウェアブロックインターフェースを介して有効にされ得る。この例では、以下のドメイン、すなわち、遅延ドメイン(0)、信頼ゾーン(1)、HV(4)、ビデオ(5)、オーディオ(6)、エンタープライズ(7)、およびHLOS(8)は、信頼ゾーンマスタに関連付けられているものとして、図4において「+」で示されている。
【００３６】
ステージ158において、暗号エンジン12は、第2のマスタ識別子が第1のマスタ識別子と等しくない場合、第1のマスタ識別子に関連付けられたハードウェアブロックインターフェース値を消去または無効にするように構成される。上記の例を続けると、第2のアクセス要求は、セキュアプロセッサ実行環境22から受信される。第2のマルチプレクサモジュール128bは、リソースグループ102から第2のアクセス要求を受信し、第2のアクセス要求内に含まれるID情報に基づいてSP_IF_Master120値を出力する。SP_IF_Master120は、トランザクション所有者140(すなわち、Trans_IF_Master130)として記憶され、現在のマスタ(すなわち、IF_Master134)の値と比較される。この例では、現在の所有者142の値は、第1のアクセス要求(すなわち、TZ_IF_Master122)に基づき、したがって、比較器回路132は、値が等しくないと決定する。この所有権の変更のイベントは、暗号エンジン12に現在のインターフェースが所有するすべてのもの(たとえば、鍵、記憶、秘密、状態、特権)を消去/削除/無効化させるように構成されたトリガである。この例では、TZ_IF_Master122に関連付けられたハードウェアインターフェース値は、無効化され、信頼ゾーンマスタに関連付けられたドメイン(たとえば、遅延ドメイン(0)、信頼ゾーン(1)、HV(4)、ビデオ(5)、オーディオ(6)、エンタープライズ(7)、およびHLOS(8))へのすべてのアクセスは、トランザクション所有者(たとえば、SP_IF_Master120)によってアクセスできない。
【００３７】
ステージ160において、暗号エンジン12は、ハードウェアブロックインターフェース値を第2のマスタ識別子および対応する特権に関連付けるように構成される。現在の所有者142(たとえば、IF_Master134およびDomainMask138)の値は、トランザクション所有者140(たとえば、Trans_IF_Master130およびTrans_DomainMask136)の値に設定される。例を続けると、現在の所有者142は、セキュアプロセッサ実行環境22に設定され、暗号エンジン12は、対応するドメイン(たとえば、図4に示すように遅延ドメイン(0)、セキュアプロセッサ(3)、HV(4)、ビデオ(5)、オーディオ(6)、エンタープライズ(7)、およびHLOS(8))に特権を提供するように構成される。プロセス150は、ドメインへのアクセスがアクセス要求内に含まれる識別情報に基づいて変更され得る適応型アクセス制御を可能にする。アクセスコントローラ100は、所有権の潜在的な変更について各アクセス要求を評価する。トランザクション所有者および現在の所有者が等しくない場合、現在アクセスされている安全なドメインは、トランザクション所有者にとってアクセス不可能になる。この適応型手法は、MPUソリューションにおけるロックされたインターフェースに関連する複雑さを低減することができる。
【００３８】
図7を参照し、図1〜図6をさらに参照すると、トランザクション所有者のアイデンティティに基づいてスレーブ側メモリリソースへのアクセスを提供するプロセス180は、図示のステージを含む。しかしながら、プロセス180は、単なる例であり、限定するものではない。プロセス180は、たとえば、段階を追加すること、削除すること、並べ替えること、組み合わせること、同時に実行すること、および/または単一の段階を複数の段階に分割することによって、変更され得る。
【００３９】
ステージ182において、アクセスコントローラ100は、マスタ側エンティティからメモリアクセスコマンドを受信するように構成される。アクセスコントローラ100は、暗号エンジン12内に常駐することができ、アクセスコマンドを受信するための手段としてプロセッサ/ハードウェアロジック62と内部メモリ64とを利用することができる。アクセスコマンドは、たとえば、リソースグループ102またはハイパーバイザ104に関連付けられたプライベートバスまたはパブリックバスを介して到達することができ、マスタ側エンティティを識別するための情報(たとえば、指定ビット、MID、VMID)を含む。
【００４０】
ステージ184において、アクセスコントローラ100は、現在のアクセス所有者を決定するように構成される。内部メモリ64は、現在のアクセス所有者情報(たとえば、現在の所有者変数)を記憶するように構成された1つまたは複数のレジスタを含むことができる。現在のアクセス所有者情報は、スレーブ側メモリリソースに現在アクセスしているマスタ側エンティティに関連付けられる。たとえば、現在のアクセス所有者情報は、実行環境30に関するMIDまたはVMIDに基づくことができ、ID情報は、内部メモリ64内に記憶され得る。プロセッサ/ハードウェアロジック62は、内部メモリを読み出し、現在の所有者を決定するための手段であり得る。
【００４１】
ステージ186において、アクセスコントローラ100は、マスタ側エンティティが現在のアクセス所有者であるかどうかを決定するように構成される。一例では、現在のアクセス所有者は、内部メモリ64内に記憶されたID値に基づき、メモリアクセスコマンドは、マスタ側エンティティに対応するID情報を含む。アクセスコントローラ100は、マスタ側エンティティが現在の所有者であるかどうかを決定するための手段として比較器回路132を利用することができる。すなわち、比較器回路132は、ステージ182において受信されたメモリアクセスコマンド内のマスタ側エンティティに関連付けられたID情報を、ステップ184において記憶された現在のアクセス所有者情報と比較することができる。マスタ側エンティティが現在のアクセス所有者である場合、プロセス180は、ステージ196に進む。そうでなければ、プロセスは、ステージ188に進む。
【００４２】
ステージ196において、暗号エンジン12は、マスタ側エンティティに関連付けられたドメインマスクに基づいて、受信されたメモリアクセスコマンドを処理するように構成される。暗号エンジン12内のプロセッサ/ハードウェアロジック62および対応するアクセステーブル70の値(たとえば、ROM内に記憶された、またはメモリユニット内にハードコーディングされたRTL)は、マスタ側エンティティに関連付けられたドメインマスクに基づいてメモリアクセスコマンドを処理するための手段として構成され得る。たとえば、図4を参照すると、概念的MDT68は、アクセステーブル70の少なくとも一部を含むことができる。ドメインエントリ74は、それらの対応するマスタインターフェース72に関連付けられる。暗号エンジン12は、アクセステーブル70に基づいてアクセスを許可または拒絶するように構成される。マスタ側エンティティがハイパーバイザ104に関連付けられている場合、HV Config I/F106は、アクセステーブル70内で指示される特権を管理するための手段である。HV Config I/F106は、第1のマルチプレクサモジュール128aに入力としてHV_DomainMask116を提供することができ、第2のマルチプレクサモジュール128bに入力としてHV_IF_Master126を提供することができる。したがって、これらの値は、トランザクション所有者140(たとえば、Trans_IF_Master130、Trans_DomainMask136)、および現在の所有者142(たとえば、IF_Master134、DomainMask138)として使用され得、前述のように比較器回路132に利用可能であり得る。一例では、ハイパーバイザ制御は、ハイパーバイザ104によってアクセス可能なレジスタまたはメモリ空間のセットを介して実施され得る。ドメインベクトル(たとえば、ドメインマスク)は、その空間の一部として含まれる。ハイパーバイザ104は、ハードウェアがそれらのマスタによって順次にアクセスされたときにその構成において作用することができるように、あらかじめマスタのためのドメインマスクを構成することによって、ハイパーバイザ104が監督するマスタのための特権を管理することができる。
【００４３】
ステップ188において、マスタ側エンティティが現在の所有者ではない(すなわち、所有権の変更のイベントが存在する)場合、暗号エンジン12は、すべての既存の鍵を無効化するように構成される。暗号エンジン12は、鍵が将来のコマンドに対して有効でないように、鍵のグループ内の鍵を無効化することができる。プロセッサ/ハードウェアロジック62および内部メモリ64は、既存の鍵を無効化するための手段であり得る。
【００４４】
ステージ190において、アクセスコントローラ100は、マスタ側エンティティに関連付けられたドメインマスクを決定するように構成される。メモリアクセスコマンドは、マスタ側エンティティを識別する情報(たとえば、指定ビット、MID、VMID)を含み、マルチプレクサモジュール128a、128bは、識別情報に基づいてドメインマスクを決定するための手段であり得る。たとえば、マルチプレクサモジュール128a、128bは、リソースグループ102からメモリアクセスコマンドを受信し、ドメインマスクID、または、暗号エンジン12がドメインベクトルを割り当てるために使用することができる他の情報を出力することができる。一例では、ドメインベクトルは、アクセステーブル70内のドメイン値に対応する1および0の値を含むことができる。第1のマルチプレクサモジュール128aから出力されたドメインマスク情報は、トランザクションドメインマスク変数(たとえば、Trans_DomainMask136)として内部メモリ64内に記憶され得る。
【００４５】
ステージ192において、暗号エンジン12は、受信されたメモリアクセスコマンドを処理するように構成される。アクセスコントローラ100は、マスタ側エンティティに関連付けられたドメインマスクを決定し、ドメインマスクに基づいて新しいコマンドを承認することができる。これは、暗号エンジン12が、受信したメモリアクセスコマンドを適応型の方法で処理するための手段であることを可能にする。すなわち、暗号エンジン12は、MPU(すなわち、従来のスレーブ側ソリューションにおける)またはSMMU(すなわち、従来のマスタ側ソリューションにおける)への追加の構成なしにトランザクションに適合することができる。ステージ194において、アクセスコントローラ100は、現在の所有者変数を、マスタ側エンティティに関連付けられた識別情報の値に設定することができる。プロセッサ/ハードウェアロジック62および内部メモリ64は、現在の所有者142の値をトランザクション所有者140(すなわち、マスタ側エンティティ)の値と等しくなるように設定する手段であり得る。
【００４６】
他の例および実装形態は、本開示および添付の特許請求の範囲の範囲および要旨の範囲内である。たとえば、ソフトウェアの性質により、上記で説明した機能は、プロセッサによって実行されるソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、またはこれらのうちのいずれかの組合せを使用して実装され得る。機能を実装する特徴はまた、機能の部分が異なる物理ロケーションにおいて実装されるように分散されることを含め、様々な位置に物理的に位置していてもよい。また、特許請求の範囲を含め、本明細書で使用する場合、「のうちの少なくとも1つ」で始まる項目の列挙において使用される「または」は、たとえば、「A、B、またはCのうちの少なくとも1つ」の列挙が、Aのみ、またはBのみ、またはCのみ、またはAB、またはAC、またはBC、またはABC(すなわち、AおよびBおよびC)、または2つ以上の同じ特徴を有する組合せ(たとえば、AA、AAB、ABBCなど)を意味するような選言的列挙を示す。
【００４７】
特許請求の範囲を含む本明細書で使用するとき、特に指示のない限り、機能または動作が項目または条件に「基づく」という言明は、機能または動作が記載された項目または条件に基づいており、記載された項目または条件に加えて1つまたは複数の項目および/または条件に基づくことができることを意味する。
【００４８】
さらに、情報がエンティティ「に」送られるもしくは送信されるという指示、または情報をエンティティ「に」送るもしくは送信することの言明は、通信の完了を必要としない。そのような指示または言明は、情報が送るエンティティから伝えられるが、情報の所期の受取側に達しないことを含む。所期の受取側は、情報を実際には受信しないにもかかわらず、それでも受信するエンティティ、たとえば受信する実行環境と呼ばれる場合がある。
【００４９】
特定の要件に従って、大幅な変更がなされ得る。たとえば、カスタマイズされたハードウェアが使用されることもあり、かつ/または特定の要素がハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方で実施されることがある。さらに、ネットワーク入出力デバイスなどの他のコンピューティングデバイスへの接続が使用されることがある。
【００５０】
本明細書で使用する「マシン可読媒体」および「コンピュータ可読媒体」という用語は、マシンに特定の様式で動作させるデータを提供することに関与する任意の媒体を指す。コンピュータシステムを使用して、様々なコンピュータ可読媒体は、実行のためにプロセッサに命令/コードを提供する際に用いられ得、かつ/またはそのような命令/コードを記憶し、かつ/もしくは担持する(たとえば、信号として)のに使用され得る。多くの実装形態において、コンピュータ可読媒体は、物理的および/または有形の記憶媒体である。そのような媒体は、不揮発性媒体および揮発性媒体を含むがこれに限定されない、多数の形態をとり得る。不揮発性媒体は、たとえば、光学ディスクおよび/または磁気ディスクを含む。揮発性媒体は、限定はしないが、ダイナミックメモリを含む。
【００５１】
物理的および/または有形のコンピュータ可読媒体の一般的な形態は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気媒体、CD-ROM、任意の他の光媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップもしくはカートリッジ、以下で説明する搬送波、または、コンピュータが命令および/もしくはコードを読み出すことができる任意の他の媒体を含む。
【００５２】
様々な形態のコンピュータ可読媒体が、実行のために1つまたは複数の命令の1つまたは複数のシーケンスを1つまたは複数のプロセッサに搬送することに関与することができる。単に例として、命令は最初に、リモートコンピュータの磁気ディスクおよび/または光学ディスク上で搬送され得る。リモートコンピュータは、命令をそのダイナミックメモリにロードし、コンピュータシステムによって受信および/または実行されるべき命令を、送信媒体を介して信号として送ることができる。
【００５３】
上記で論じた方法、システム、およびデバイスは、例である。様々な構成は、適宜、様々な手順または構成要素を省略し、置換し、または追加することができる。たとえば、代替構成において、方法は、説明された順序と異なる順序で実行されてよく、様々なステップが追加され、省略され、または結合されてよい。また、ある種の構成に関して説明された特徴は、様々な他の構成において組み合わせられてよい。構成の異なる態様および要素が、同様の形で組み合わされてよい。また、技術は進化し、したがって、要素の多くは例であり、本開示または特許請求の範囲の範囲を限定しない。
【００５４】
(実装形態を含む)例示的な構成の完全な理解を提供するために、特定の詳細が説明において与えられる。しかしながら、構成は、これらの具体的な詳細なしに実践される場合がある。たとえば、周知の回路、プロセス、アルゴリズム、構造、および技法が、構成を不明瞭にすることを避けるために、不必要な詳細なしで示されている。この説明は、例示的な構成のみを提供し、特許請求の範囲の範囲、適用可能性、または構成を限定しない。むしろ、構成の前述の説明は、説明した技法を実施するための説明を提供する。本開示の趣旨または範囲から逸脱することなく、要素の機能および構成において様々な変更が行われる場合がある。
【００５５】
また、構成は、フロー図またはブロック図として示されるプロセスとして説明されることがある。各々が順次プロセスとして動作を説明することがあるが、動作の多くは並行してまたは同時に実行されてよい。さらに、動作の順序は、並べ替えられてよい。プロセスは、図に含まれない追加の段階または機能を有してよい。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードにおいて実装されるとき、タスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などの非一時的コンピュータ可読媒体内に記憶され得る。プロセッサは、説明されたタスクを実行し得る。
【００５６】
互いに接続されているものとして、または互いに通信するものとして図面に示されたおよび/または本明細書で論じられた構成要素、機能、またはその他は、通信可能に結合される。すなわち、それらの構成要素は、それらの間の通信を可能にするために、直接または間接的に接続され得る。
【００５７】
いくつかの例示的な構成を説明してきたが、様々な変更、代替構成、および均等物が、本開示の要旨から逸脱することなく使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素であり得、他の規則が、本発明の応用例よりも優先してよく、または本発明の応用例を他の形で修正してよい。また、上記の要素が考慮される前に、その間に、またはその後に、複数の動作が行われてよい。したがって、上記の説明は特許請求の範囲の範囲を拘束しない。
【００５８】
さらに、2つ以上の発明が開示される場合がある。
【符号の説明】
【００５９】
10  分散コンピューティングシステム
12  暗号エンジン
14  モデム
16  オーディオEE
18  ビデオEE
20  センサ/検出器EE
22  セキュアプロセッサEE
24  信頼ゾーンEE
26  高レベルオペレーティングシステム(HLOS)EE
28  他の実行環境
30  実行環境(EE)
50  システムオンアチップ(SoC)
52  プロセッサ
54  メモリ
56  センサ
58  ソフトウェア
62  処理ロジック
64  内部メモリ
66  ソフトウェア
68  概念的マスタおよびドメインテーブル(MDT)
70  アクセステーブル
72  マスタインターフェース
74  ドメインエントリ
76  マスタID値
78  ドメインベクトル
100  アクセスコントローラ
100a  アクセスコントローラ
100b  アクセスコントローラ
100c  アクセスコントローラ
100n  アクセスコントローラ
102  リソースグループ
104  ハイパーバイザ
106  ハイパーバイザ構成インターフェース(HV Config I/F)
110  特殊プロセッサドメインマスク(SP_DomainMask)
112  信頼ゾーンドメインマスク(TZ_DomainMask)
114  モデムドメインマスク(MSA_DomainMask)
116  ハイパーバイザドメインマスク(HV_DomainMask)
120  セキュアプロセッサマスタインターフェース(SP_IF_Master)
122  信頼ゾーンマスタインターフェース(TZ_IF_Master)
124  モデムマスタインターフェース(MSA_IF_Master)
126  ハイパーバイザマスタインターフェース(HV_IF_Master)
128a  第1のマルチプレクサモジュール
128b  第2のマルチプレクサモジュール
130  トランザクションマスタインターフェース(Trans_IF_Master)
132  比較器回路
134  IF_Master領域
136  トランザクションドメインマスク(Trans_DomainMask)
138  DomainMask領域
140  トランザクション所有者
142  現在の所有者
【図１】
2018507486.tif 000003
【図２】
2018507486.tif 000004
【図３】
2018507486.tif 000005
【図４】
2018507486.tif 000006
【図５】
2018507486.tif 000007
【図６】
2018507486.tif 000008
【図７】
2018507486.tif 000009
【国際調査報告】
2018507486.tif 000010
2018507486.tif 000011