(57)【特許請求の範囲】
【請求項１】
１以上のプロセッシングコアを有するコンピュータシステムにおいて、メモリインターコネクト及び入出力（ＩＯ）インターコネクトが、１以上のＩＯデバイスにＩＯインターフェースを提供する段階と、
ターゲットリソースにアクセスするべくイニシエータデバイスによって開始されるトランザクションが、前記イニシエータデバイスと関連付けられるアクセス権を規定する一連の不変のセキュリティ属性を含み、前記セキュリティ属性が前記ターゲットリソースについて規定されるアクセスポリシーに対して評価される、セキュアなアクセスメカニズムを有効にする段階と、
前記アクセスポリシーによって前記イニシエータデバイスが前記ターゲットリソースへアクセスすることが許可されることを、前記一連の不変のセキュリティ属性が示す場合には、前記トランザクションを処理することを許可する段階とを備え、
前記プロセッシングコア及びメモリリソースが、前記メモリインターコネクトを介してアクセスされ、
前記ＩＯインターコネクトは、前記メモリインターコネクトのコンポーネントに連結され、
前記一連の不変のセキュリティ属性のそれぞれのセキュリティ属性は、不変である方法。
【請求項２】
前記コンピュータシステム内でトランザクションが開始されることに応答して、
前記一連の不変のセキュリティ属性を生成するシステムハードウェアを採用する段階を更に備える請求項１に記載の方法。
【請求項３】
アクセスポリシーが、読み出し及び書き込みポリシーレジスタを介して有効にされる請求項１又は２に記載の方法。
【請求項４】
アクセスポリシーデータへのアクセスを制御する１つの信頼できるエンティティを採用する段階を更に備える請求項１から３の何れか一項に記載の方法。
【請求項５】
前記メモリインターコネクトは、メモリコヒーレンシを採用するメモリファブリックを有する請求項１から４の何れか一項に記載の方法。
【請求項６】
前記ＩＯインターコネクトは、ＩＯファブリックを有する請求項１から５の何れか一項に記載の方法。
【請求項７】
前記コンピュータシステムは、前記メモリインターコネクトを有するメモリファブリック、及び、前記ＩＯインターコネクトを有するＩＯファブリックを備えるシステムオンチップ（ＳｏＣ）を含む請求項１から５の何れか一項に記載の方法。
【請求項８】
アクセスロールに関連付けられたアクセス権を規定する当該アクセスロールを、前記システム内の前記イニシエータデバイスにそれぞれ割り当てることにより、前記セキュアなアクセスメカニズムを有効にする段階を更に備え、
所定のイニシエータデバイスによって開始されるトランザクションと共に提供される前記一連の不変のセキュリティ属性は、前記イニシエータデバイスと関連付けられた前記アクセスロールを特定する情報を含む請求項１から７の何れか一項に記載の方法。
【請求項９】
前記メモリインターコネクトのコンポーネント及び前記ＩＯインターフェースのコンポーネントのうちの少なくとも１つが、第１プロトコルを採用し、
前記コンピュータシステムは、第２プロトコルを採用するインターフェースコンポーネントを有し、
前記方法は更に、
前記第１プロトコルと前記第２プロトコルの間で不変のセキュリティ属性をマッピングする段階を更に備える請求項１から８の何れか一項に記載の方法。
【請求項１０】
メモリが動作可能に連結されてもよいメモリインターフェースを有するメモリファブリックと、
前記メモリファブリックに動作可能に連結される１以上のプロセッシングコアと、
複数の入出力（ＩＯ）デバイスに対するインターフェースを有し、インターフェースを介して前記メモリファブリックに動作可能に連結されるＩＯファブリックと、
システムオンチップ（ＳｏＣ）内のターゲットリソースにアクセスするべく、イニシエータデバイスによって開始されるトランザクションと関連付けられたリソースアクセスリクエストが、前記イニシエータデバイスと関連付けられたアクセス権を規定する一連の不変のセキュリティ属性を含み、前記トランザクションが許可されているかを判断するべく、前記ターゲットリソースに対して規定されたアクセスポリシーに対して前記セキュリティ属性が評価される、セキュアなアクセスメカニズムとを備え、
前記イニシエータデバイスは、前記システムオンチップ内の内部デバイス及び前記システムオンチップのインターフェースに動作可能に連結されるＩＯデバイスを含む、前記システムオンチップを介してトランザクションを開始できるデバイスを含み、
ターゲットリソースは、前記システムオンチップ内に含まれるメモリリソース及びレジスタリソース、前記メモリファブリック及び前記ＩＯファブリックと連結されたメモリ、及び、前記ＩＯデバイスを介してアクセス可能なメモリリソース及びレジスタリソースを含み、
前記一連の不変のセキュリティ属性のそれぞれのセキュリティ属性は、不変であるシステムオンチップ。
【請求項１１】
トランザクションに関連付けられた前記一連の不変のセキュリティ属性に基づいて、ターゲットリソースへの読み出し又は書き込みアクセスを伴う前記トランザクションが許可されているかを判断するのに使用される、読み出し及び書き込み許可データを格納する読み出し及び書き込みポリシーレジスタを更に備える請求項１０に記載のシステムオンチップ。
【請求項１２】
前記読み出し及び書き込みポリシーレジスタを設定することが許される信頼できるエンティティを特定するデータを格納する制御ポリシーレジスタを更に備える請求項１１に記載のシステムオンチップ。
【請求項１３】
前記システムオンチップを介してターゲットリソースにアクセスすることを伴うイニシエータデバイスによって開始されるトランザクションそれぞれについて、一連の不変のセキュリティ属性を生成するハードウェアベースのメカニズムを更に備える請求項１０から１２の何れか一項に記載のシステムオンチップ。
【請求項１４】
前記メモリファブリック及び前記ＩＯファブリックは、第１プロトコルを採用し、
前記システムオンチップは、
第２プロトコルを採用し、対応するインターフェース又はブリッジを介して、前記メモリファブリック又は前記ＩＯファブリックのうちの１つに連結されるバスと、
前記第１プロトコルと前記第２プロトコルとの間で、セキュリティ属性情報をマッピングするマッピングメカニズムとを更に備える請求項１０から１３の何れか一項に記載のシステムオンチップ。
【請求項１５】
アクセス権が対応するロールと関連付けられ、イニシエータデバイスそれぞれにアクセスロールが割り当てられ、前記イニシエータデバイスと関連付けられた前記アクセスロールが、当該イニシエータデバイスによって開始されるトランザクションと関連付けられた前記一連の不変のセキュリティ属性のうち少なくとも一つの不変のセキュリティ属性によって特定されてもよい、ロールベースのアクセススキームを、前記セキュアなアクセスメカニズムが採用する請求項１０から１４の何れか一項に記載のシステムオンチップ。
【請求項１６】
メモリインターフェース及びコアインターフェースを含むメモリファブリック、及び、
インターフェースを介して前記メモリファブリックと動作可能に連結される入出力（ＩＯ）ファブリックを有するシステムオンチップ（ＳｏＣ）と、
前記メモリインターフェースを介して前記メモリファブリックと動作可能に連結されるメモリと、
前記ＩＯファブリックに動作可能に連結される複数のＩＯデバイスとを備えるコンピュータシステムであって、
前記コアインターフェースを介して１以上のプロセッシングコアが前記メモリファブリックに動作可能に連結され、
前記システムオンチップは更に、
前記システムオンチップ内のターゲットリソースにアクセスするべく、イニシエータデバイスによって開始されるトランザクションと関連付けられるリソースアクセスリクエストが、前記イニシエータデバイスと関連付けられるアクセス権を規定する一連の不変のセキュリティ属性を含み、前記トランザクションが許可されるかを判断するべく、前記ターゲットリソースに対して規定されたアクセスポリシーに対して前記セキュリティ属性が評価される、セキュアなアクセスメカニズムを有し、
前記イニシエータデバイスは、前記システムオンチップ内の内部デバイス及び前記ＩＯファブリックにインターフェース接続するＩＯデバイスを含む、前記システムオンチップを介してトランザクションを開始できるデバイスを含み、
前記ターゲットリソースは、前記システムオンチップ内に含まれるメモリリソース及びレジスタリソース、前記メモリファブリック及び前記ＩＯファブリックと連結されたメモリ、及び、前記ＩＯデバイスを介してアクセス可能なメモリリソース及びレジスタリソースを含み、
前記一連の不変のセキュリティ属性のそれぞれのセキュリティ属性は、不変であるコンピュータシステム。
【請求項１７】
前記メモリファブリック及び前記ＩＯファブリックは、第１プロトコルを採用し、
前記システムは、
第２プロトコルを採用し、ブリッジを介して前記ＩＯファブリックと動作可能に連結されるバスと、
前記第１プロトコルと前記第２プロトコルとの間で、不変のセキュリティ属性データをマッピングする前記ブリッジ内のマッパとを更に備える請求項１６に記載のコンピュータシステム。
【請求項１８】
前記コンピュータシステム内のイニシエータデバイスによって開始されるトランザクションそれぞれについて一連の不変のセキュリティ属性を生成するハードウェアベースのメカニズムを更に備える請求項１６又は１７に記載のコンピュータシステム。
【請求項１９】
アクセスポリシーを有効にするのに使用されるデータを格納する１以上の読み出し及び書き込みポリシーレジスタを更に備える請求項１６から１８の何れか一項に記載のコンピュータシステム。
【請求項２０】
前記一連の不変のセキュリティ属性は、システムハードウェアによって自動的に生成され、変更されない請求項１６から１９の何れか一項に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータシステムに関し、これに限定されないが、より詳細には、システムオンチップを含むコンピュータシステムにおけるリソースアクセス制御を実行する方法に関する。
【背景技術】
【０００２】
コンピュータシステムに関するセキュリティの問題は、かつてないほど増えている。ウィルス、トロイの木馬等は、多くのコンピュータユーザーにとってよく知られた脅威である。脅威はいたるところに蔓延していることから、産業全体でこの問題に対処するべく、アンチウィルス、アンチスパイウェア、ファイヤーウォールソフトウェア等のセキュリティ関連ソフトウェアが開発され使用されている。
【０００３】
セキュリティ攻撃の多くは、ソフトウェアレベルを攻撃対象としており、様々なオペレーティングシステム又はファイルリソースへアクセスするように設計されている。例えば、隠された態様でウィルスを含む実行可能プログラムをダウンロードすることにより、ウィルスは、コンピュータシステムのファイルに感染する。この種の攻撃を防ぐべく、ウィルス対策ソフトウェアを使用して、ダウンロードされたファイルを"スキャン"し、周知のコード又は疑いのあるコードがないか探す。セキュリティの脅威が存在することから、多くのユーザはセキュリティ対策ソフトウェアを採用している。
【０００４】
頻度は少ないが、セキュリティ攻撃は、ハードウェアレベルでも存在する。しかしながら、コンフィギュレーションレジスタ、レンジレジスタ等のシステムレベルのハードウェアリソース及びアセットにアクセスされるのを防ぐような、セキュリティ対策ソフトウェアと同等なものが存在しない。その結果、システム設計者は、重要なシステムリソースへのアクセスを制御する様々なハードウェア及びファームウェアベースのセキュリティ対策を設計する。これは、システムベースで行われ、その結果、設計、デバッグ及び検証作業が反復することとなり、また、システム設計全体にわたるセセキュリティ管理の一貫性が損なわれる。
【０００５】
本発明の上記の側面及び付随する多くの利点について、以下の詳細な説明及び添付の図面を参照することにより明らかとなるであろう。図面において、特に指定されていない限り、同様な参照番号は、同様な要素を指している。
【図面の簡単な説明】
【０００６】
【図１】システムオンチップのアーキテクチャの例、及び、システム内のデバイスによって開始されるトランザクションに関係する対応する通信経路を示した、概略的なシステム図である。
【図２】本発明の一実施形態に係るポリシーレジスタを採用した安全なアクセスメカニズムの概観を示した図である。
【図３】本発明の一実施形態に係る読み出し及び書き込みポリシーレジスタのセットの一例を示した図である。
【図４】本発明の一実施形態に係る制御ポリシーレジスタの一例を示した図である。
【図５】独自のプロトコルを実装するバス、及び、独自のプロトコルとＳｏＣファブリックに採用されたプロトコルとの間のセキュリティ属性をマップするマッパとを更に含む図１のＳｏＣを示した図である。
【図６】本発明の一実施形態に係る、図１のＳｏＣを使用したトランザクション及び関連した安全なアクセスの実行メカニズム設備を示した図である。
【発明を実施するための形態】
【０００７】
リソースアクセス制御を実行する方法及び装置の実施形態について以下に記載する。以下の詳細な説明では、本発明を理解するために多くの詳細事項が記される。しかしながら、これら詳細事項のうちの１以上、その他の方法、構成要素、材料等がなくとも本発明を実施可能であることは、当業者にとって明らかである。また、本発明を不明瞭にしない目的から、他の場合においては、周知の構造、材料又はオペレーション等の詳細な説明を省略している。
【０００８】
本明細書において、本発明の"一実施形態"又は"ある実施形態"とは、実施形態に関連する特定の特徴、構造及び特性が、少なくとも本発明の実施形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている"一実施形態において"又は"ある実施形態において"という表現は、必ずしも同一の実施形態を示していない。更に、特定の特徴、構造又は特性を、１以上の実施形態において任意の好適な態様で組み合わせてもよい。
【０００９】
システムオンチップ（ＳｏＣ）１００の例に対応するアーキテクチャが図１に示されている。ＳｏＣ１００は、それぞれメモリファブリック１０６に連結されたローカルキャッシュ１０４を有する１以上のプロセッサコア１０２を備える。ＳｏＣ１００はまた、メモリ１１０に連結される１以上のアクセラレータ１０８を備え、メモリ１１０は、コアインターフェース１１２を介してメモリファブリック１０６に連結される。メモリファブリック１０６は、メモリインターフェース１１４及びサウス・フェーシング・インターフェース１１６を有する。メモリインターフェース１１４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）１１８との通信を提供する。
【００１０】
サウス・フェーシング・インターフェース１１６は、メモリファブリックとＩＯファブリック１２０との間の相互接続を提供する。ＩＯファブリック１２０は、それぞれメモリ１２６及び１２８に連結されているデバイス１２２及び１２４で例示されている様々なＩＯデバイスとの入力／出力（Ｉ／Ｏ）通信をサポートする。ＩＯファブリック１２０はまた、スタティックランダムアクセスメモリ（ＳＲＡＭ）１３０と、残りのシステム構成要素との間のインターフェースも提供する。
【００１１】
ＳｏＣ１００が動作する間、様々なシステム構成要素が、そのほかの構成要素／デバイスによって提供される／保持されるＳｏＣアセットにアクセスしてもよい。例えば、プロセッサ１０２は、それぞれ通信経路デバイス１３２、１３４、１３６、１３８、１４０及び１４２で示されているように、ＤＲＡＭ１１８、アクセラレータ１０８、メモリ１１０、デバイス１２４、メモリ１２８及びＳＲＭ１３０にアクセスしてもよい。同様に、通信経路１４４、１４６、１４８、１５０及び１５２で示されるように、デバイス及びメモリリソースのようなその他のアセットに、様々なＩＯデバイスがアクセスしてもよい。
【００１２】
プロセスコア、アクセラレータ及びデバイスは、互いに通信を行って、ＳｏＣ１００が扱うワークロードを処理する。コア、アクセラレータ及びデバイスと関連付けられたメモリ及び記憶リソース、並びに、ＤＲＡＭ１１８、ＳＲＡＭ１３０等の共有メモリリソースにアクセスすることにより、通信を一部、簡易にすることができる。このような、システムリソースアクセス要求を開始する構成要素は、本明細書では、"イニシエータ（initiator）"と称される。
【００１３】
図１のアーキテクチャに示されるように、プロセッサコア１０２及びアクセラレータ１０８のようなイニシエータの一部は、ＳｏＣ１００に組み込まれた内部構成要素を含み、ＩＯデバイス１２２及び１２４のようなそのほかのイニシエータは、特定の機能に応じて、ＳｏＣの内部に又は外部に構成されてもよい。ＳｏＣの外部に構成されるものとして、ＳｏＣ内の内部又は外部のイニシエータを介して、内部又は外部リソースにアクセスしてもよいソフトウェア及びファームウェアエンティティがある。このように、信頼性が異なるワークロードが、同時に実行される場合がある。
【００１４】
ＳｏＣ１００は、コンフィギュレーションレジスタ、レンジレジスタ等のハードウェアアセット及びハードウェアを備え、これらを、認証されていないアクセスから守る必要がある。現在、このようなデータ及びハードウェアアセットへのアクセスの制御は、アドホックで及び断片的な態様で、ＳｏＣの特定の設計者によって各ＳｏＣに対して行われている。このように、ＳｏＣファブリックにおける総合的なサポート、及び、イニシエータの優先順位を一義的に決定するインターフェースが存在しなかった。
【００１５】
近年、ＳｏＣアーキテクチャが進化し、内部（例えば、メモリファブリック１０６を介して）及び外部（例えば、ＩＯファブリック１２０を介して）メモリリソースの両方にわたる一貫性をサポートするメモリ及びＩＯファブリックが導入された。これは、メモリアクセス及びコヒーレンシ（一貫性）フレームワークを通じて簡易化できる。ある実施形態では、このフレームワークは、一貫性を保った態様でリソースへの安全なアクセスをサポートするべく、ＳｏＣアーキテクチャ全体にわたって実装されてもよくユニフォームアクセス制御アーキテクチャを規定するのに使用される。一実施形態において、メモリファブリック１０６及びＩＯファブリック１２０は、インテル（登録商標）クイックパスインターコネクト（ＱＰＩ）フレームワークを採用する。一般的に、メモリファブリック及びＩＯファブリックはそれぞれ、対応する制御ロジックとのインターコネクトを備え、インターコネクトに接続されたデバイスとリソース間のトランザクションを簡易にしている。
【００１６】
一実施形態において、セキュリティ属性が、サブジェクト／イニシエータに割り当てられ、イニシエータのアクセス権（すなわち、読み出し、書き込み、アクセス不可等）を決定するのに使用される。このイニシエータのセキュリティ属性、すなわち、ＳＡＩは、アクセスの決定を行うのに使用されるイニシエータの不変の特性を表している。一実施形態において、これらセキュリティ属性は、ＳｏＣハードウェアによって生成され、この属性が全てのトランザクションに付加される。一実施形態において、ポリシーを実装するのに、読み出し及び書き込みアクセスポリシーレジスタが採用される。更に、一実施形態において、どのエンティティが、読み出し及び書き込みポリシーレジスタを設定できるかを決定するのに、制御ポリシーレジスタが採用される。
【００１７】
図２には、ＳＡＩベースのセキュリティスキームの実装例の概略が示されている。この例では、イニシエータＩ０，Ｉ１，…Ｉｎが、オブジェクトＯ０，Ｏ１，…Ｏｎにアクセスする例が示されている。メモリファブリック１０６に連結されたオブジェクトへのアクセス（すなわち、ファブリックベースのアクセス）に対するアクセス制御は、メモリファブリック読み出し及び書き込みポリシーレジスタ２００及び２０２によって提供される。同様に、ＩＯデバイスのような外部ターゲット（すなわち、ターゲットベースのアクセス）にアクセスするためのアクセス制御は、読み出し及び書き込みポリシーレジスタ２０４及び２０６によって提供される。
【００１８】
図２の例では、サブジェクトＳ０が、メモリファブリック１０６に連結されたオブジェクトＯ０（図示せず）への読み出しアクセスを実行したいと望む。イニシエータＩ０，Ｉ１，…Ｉｎにはそれぞれ、関連付けられたポリシーレジスタを介してＳＡＩセキュリティスキームによって有効とされる、各イニシエータのアクセス権を規定する一連のセキュリティ属性ＳＡが割り当てられる。サブジェクトに適用可能な一連のセキュリティ属性ＳＡを有効にする情報は、以下に詳細に説明するように、サブジェクトによって送信されるアクセスメッセージと共に転送される。ポリシーレジスタは、対応するオブジェクトへのアクセスを安全に制御するセキュリティ属性データを格納する。イニシエータサブジェクトのセキュリティ属性が、オブジェクトへアクセスするためのセキュリティ属性と一致する場合には、トランザクションを実行することが許可される。反対に、イニシエータサブジェクトが、適切なセキュリティ属性を有さない場合（アクセスメッセージと共に転送されるＳＡＩ情報を介して特定される）、トランザクションは拒否され、対応するメッセージがイニシエータサブジェクトに戻される。
【００１９】
［アクセスコントロールアーキテクチャ］
上記したように、イニシエータのセキュリティ属性（ＳＡＩ）という言葉は、アクセスの決定に使用されるサブジェクト又はイニシエータの不変な特性を表すべく規定される。一実施形態において、これら属性は、ハードウェアエンティティによって生成され、対応するサブジェクト又はイニシエータによって開始されるトランザクション毎に添付される。ソースＩＤとは異なり、ＳＡＩは、ブリッジで変換されず、ポリシーが適用される時点まで維持される。ポリシーレジスタは、アセットへの読み出し及び書き込みアクセスのためのポリシーを規定し、このようなポリシーを設定又は更新できるエンティティは制限される。一実施形態において、アクセス制御アーキテクチャは、次のような構成要素から構成される：ＳＡＩ、ＳＡＩジェネレータ、ＳＡＩマッパ、読み出しポリシーレジスタ、書き込みポリシーレジスタ及び制御ポリシーレジスタ。一実施形態では、外部ポートにおいてＳＡＩを有効にするのにラッパ（wrapper）を使用して、アクセスが適切に特性化されるのを確かにする。
【００２０】
［ＳＡＩ］
イニシエータのセキュリティ属性、すなわち、ＳＡＩは、ＳｏＣプラットフォーム内のターゲットへのアクセスを決定するのにチェックされるイニシエータ（及びサブジェクト）の変更されない特性を表す。一実施形態では、このような特性として、ロール（role：役割）、デバイスモード及びシステムモードが含まれる。イニシエータは、これら特性の任意の組み合わせを有してもよい。１つのロールが、同様な権限を有するサブジェクト／イニシエータのグループに割り当てられる。ロールは定性的なものであり、ＳｏＣ設計者によって割り当てられる。一実施形態において、サブジェクト／イニシエータへのロールのマッピングは、以下のうちの任意のものであってもよい。
Ｒ［０．．ｎ］→Ｓ［０．．ｎ］：サブジェクト／イニシエータがそれぞれ、固有のロールを有する。
Ｒ［０］→Ｓ［０．．ｎ］：複数のサブジェクト／イニシエータが同一の役割の元でグループ化される。
Ｒ［０．．ｎ］→Ｓ［０］：複数の役割が、同じサブジェクト／イニシエータに割り当てられる。
【００２１】
デバイスモードは動的であり、デバイスの現在の内部モードをキャプチャする。例えば、このモードは、セキュアモード又は通常モードであってもよい。システムモードは、動的であり、プロセッサコアによって駆動されるモードを示す。一実施形態において、プロセッサコアは、インテル３２又は６４ビットアーキテクチャに基づく、ＩＡコア（当技術分野ではＩＡとして知られている）である。例えば、システムモードは、ＳＭＭ（システム管理モード）又はセキュアモードにあってもよい。また、マルチスレッドイニシエータの場合、現在のスレッドを示すためのコンテキスト属性が規定され、これらの属性は、ＳＡＩを伴う。
【００２２】
［ＳＡＩジェネレータ］
ＳＡＩは、ＳｏＣハードウェアによって生成されたエンコーディングであり、ロール（Role）、デバイス（Device）及びシステムモード（System Mode）を含む入力パラメータを有する関数によって生成される。ＳＡＩの解釈は、ＳｏＣそれぞれに固有のものであり、ＳｏＣ設計者によって規定される。実装の一例として、７ビットＳＡＩエンコーディングの例の場合、ビット６に１が設定されると、プロセッサコアによるアクセスを示す。ビット６に０が設定されると、ビット５から０を、デバイスアクセスのエンコーディングに使用することができる。例えば、1000001bは、ＩＡコアアクセスを表し、0010000bはデバイスアクセスを表す。無論、これは一例に過ぎず、ＳＡＩエンコーディングに使用されるビットの数及びフォーマットは、設計者によって設定されてもよい。
【００２３】
［ＳＡＩマッパ］
一部のＳｏＣにおけるＩ／Ｏデバイスは、非ベンダファブリック（すなわち、ＳｏＣのベンダのものではない）又はレガシーベンダファブリックに接続される。例えば、一部のＳｏＣは、ＯＣＰ（オープンコアプロトコル）、ＡＭＢＡ（アドバンスト・マイクロコントローラ・バス・アーキテクチャ）、ＩＯＳＦ（インテル・オンチップシステムファブリック）又はその他の独自のバスプロトコルを組み込んでもよい。ＳＡＩマッパは、セキュリティ属性、又は、ＳｏＣベンダの標準ファブリックにおけるエージェントによって生成されるトランザクションに添付されるＳＡＩを、ＳｏＣ固有のデバイスドメイン（例えば、ＯＣＰドメイン）に変換可能なセキュリティ属性へとマッピングする。同様に、非ベンダファブリックにおけるデバイスによって生成されたアップストリームトランザクションについて、デバイスによって生成されたセキュリティ属性を、メモリ／コヒーレンシ及びＩＯＳＦドメインに変換可能なＳＡＩに変換する必要がある。典型的には、これらマッパは、１つのファブリックプロトコルを別のプロトコルへとマッピングするブリッジに実装される。ある実施形態では、このようなマッパは、ハードウェアにセキュアな態様でマッピングされ、操作不可能である。
【００２４】
ＳＡＩマッパの実装例が、図５に示されている。この例では、ＯＣＰ、ＡＭＢＡ、ＩＯＳＦのような非ベンダ又はレガシーベンダバス５００が、ブリッジ５０２を介して、ＩＯファブリック１２０に連結されている。メモリ５０６を伴う１以上のデバイス５０４が、バス５００と連結されており、これらのデバイスへのアクセスは、バス５０２によって実装されるプロトコルに従う。一方、ＳｏＣ１００におけるメモリファブリック１０６及びＩＯファブリック１２０に接続されたアセット及びリソースにアクセスするトランザクションに対して、異なるプロトコルが実装される。バス５００及びＳｏＣ１００に接続されたデバイス間のトランザクションを簡易にするべく、ブリッジ５０２は、ＳＡＩマッパ５０８を採用して、２つのプロトコル間のＳＡＩデータをマッピングする。
【００２５】
［読み出し及び書き込みポリシーレジスタ］
読み出し及び書き込みポリシーレジスタは、ＳｏＣ設計者によって各イニシエータについて規定される読み出し及び書き込み許可を含む。トランザクションを伴うＳＡＩは、ポリシーレジスタに対してインデックスとして機能する。一例として、一実施形態では、３２ビット読み出し及び書き込みポリシーレジスタが、メモリファブリックに規定される。図３には、一対の読み出し及び書き込みポリシーレジスタ３００及び３０２が示されており、ここで、１はアクセスが許可されることを示し、０はアクセスが拒否されることを示す。一般的に、ＳＡＩ幅は、ｎビットである。ｎの値は、世代毎に異なってもよく、製品間で異なってもよい。一実施形態において、エンコーディング空間は、２＾（ｎ−１）であり、ｎビットのうちの１つが、コア対デバイスエンコーディングを差別化するのに使用される。３２ビットレジスタを使用したのは一例に過ぎず、実際のエンコーディングは通常、製品固有のものとなる。ＳＡＩのイニシエータへの割り当ては、製品毎に柔軟に行われる。例えば、イニシエータ毎に１つのＳＡＩが存在してもよいし、イニシエータ毎に複数のＳＡＩが存在してもよいし、複数のイニシエータを１つのＳＡＩにグループ化してもよい。
【００２６】
前述の例では、３２ビットレジスタを使用したビットベクトルを採用していいたが、これは、読み出し及び書き込みの許可を有効にする一技術に過ぎない。長い又は短いビットベクトルを採用したスキーム、１以上のレジスタを使用して実装される許可ルールの階層を含むメカニズム、又は、同類記憶メカニズム（analogous storage mechanism）、を含むその他の技術を採用してもよく、その他の様々な許可ロジックがハードウェア、マイクロコード、ファームウェア等を介して実装されてもよい。
【００２７】
［制御ポリシーレジスタ］
制御ポリシーレジスタの制御は、読み出し及び書き込みポリシーレジスタを設定することが許可される信頼できるエンティティを規定する。制御ポリシーレジスタは、自己参照レジスタであり、制御ポリシーレジスタに規定されるＳＡＩは、読み出し及び書き込みレジスタポリシーを修正する及び制御ポリシーレジスタのコンテンツを上書きすることが許可される。制御ポリシーレジスタを設定するのに、１つの信頼性の高いエンティティを許可することにより、その他のエージェント全てに対してポリシーレジスタへのアクセスがロックされる実装となる。制御ポリシーレジスタ内のＳＡＩにより特定されるエンティティは、電源投入／リセット時に読み込まれた初期値を超えて、ポリシーレジスタを設定することができる複数のエージェントのセットに拡張することを選択してもよく、又は、信頼できるエンティティが、制御ポリシーレジスタに０を書き込んで、次のシステムリセット／電源投入までロックしてもよい。このように、ＳｏＣの設計者にとっては、次のリセットまでポリシーレジスタをロックダウンすることを実装できる、又は、実行時に信頼できるエンティティによってポリシーを更新させることができる、という柔軟性が与えられる。３２ビット制御ポリシーレジスタ４００の例が、図４に示されている。
【００２８】
図６には、メモリへのデバイスアクセスを安全に実行する一例が示されている。この例では、デバイス１２２は、ＤＲＡＭ１１８にアクセスするトランザクション（例えば、読み出し又は書き込み）を開始する。Ｉ／Ｏブリッジ１５２において、適切なＳＡＩがブリッジハードウェアを介して生成され、これらＳＡＩが、本例では、メモリファブリック１０６内のポリシーレジスタ１５６である適用可能なセキュリティエンティティに到達するまで、トランザクションメッセージと共にインターフェースを越えて転送される。ポリシーレジスタ１５６では、トランザクションの種類、例えば、読み出し又は書き込みに応じて、適用可能なポリシーレジスタについて、ＳＡＩがチェックされ評価される。
【００２９】
上記で開示されたＳＡＩの安全な（セキュアな）アクセス実行スキームは、現在の方法に対して、多くの利点を提供する。本スキームによれば、ＳｏＣ設計全体にわたって一貫性を有するように採用可能なＳＡＩジェネレータ、ＳＡＩマッパ、ポリシーレジスタ等の均一アクセス制御構成要素を規定する。スキームは、均一な態様でＳｏＣファブリックに適用される。トランザクションの各々と、変化しない属性であるＳＡＩを関連付けることにより、このような利点を得ることができる。トランザクションメッセージの既存のフォーマット内のＳＡＩデータを転送することにより、ＱＰＩのような既存のインターコネクトフレームワーク内で、更なるアクセスセキュリティ対策をサポートすることができる。ＳｏＣは、メモリ、単一コアレジスタ、Ｉ／ＯデバイスのようなＳｏＣアセットをターゲットとする全てのイニシエータによって生成されるトランザクションに対するアクセス制御を実行するべく、ＳＡＩ情報を利用することができる。ＳＡＩを利用して、特定のＩ／Ｏデバイスがメモリ領域に独占的にアクセスすることを可能にする、又は、プロセッサが特定のモードで動作している時にＳｏＣアセットへの独占的なアクセスを可能にすることができる。アクセス制御アーキテクチャは、一貫性を有するモジュールのフレームワーク内で、全てのアクセス制御決定を評価することが可能となる有力で新規な理論的枠組みである。複数のインターコネクトにわたって一貫性を持ってＳＡＩ情報を使用することにより、イニシエータのセキュリティロールが、トランザクションをバッファするマイクロアーキテクチャ構造全てにわたって即時に利用可能となることから、アクセス制御アサーションの設計、デバッグ及び検証を簡単に行うことができる。
【００３０】
本発明の例示された実施形態の上記の記載及び要約書の記載は、開示された形態に厳密に限定することを意図していない。本発明の特定の実施形態及び実施例は、例示するために記載されており、本発明の範囲内において様々な等価な変更が可能であり、そのような変更は当業者であれば認識できる。
【００３１】
このような変更は、上記の詳細な説明に沿って行うことができる。添付の特許請求の範囲で使用されている言葉は、本発明を、明細書及び図面に開示された特定の実施形態に限定すると解釈されるべきではない。確立された特許請求の範囲の解釈に従って、添付の特許請求の範囲によって本発明の範囲が決定されるべきである。
【図１】
0005636501.tif 000002
【図２】
0005636501.tif 000003
【図３】
0005636501.tif 000004
【図４】
0005636501.tif 000005
【図５】
0005636501.tif 000006
【図６】
0005636501.tif 000007