(57)【要約】  記載の例において、システムオンチップ（ＳｏＣ）（１００）及びＳｏＣでメッセージを送信する方法が、単一連続メモリにストアされたファイアウォールブロック（１０８）メモリに対するそれぞれのポインタを用いるイニシエータ側ファイアウォールブロック（１０６）及びレシーバ側ファイアウォールブロックメモリの位置の判定を含む。単一メモリ内のポインタのアドレスはファイアウォールブロック（１０６、１０８）のそれぞれの固有ファイアウォール識別子に依存する。排他的セキュリティ構成コントローラ（１１６）が、メッセージを送信機能ブロック（１０２）から受信機能ブロック（１０２）に送信するために用いられるシステムバス（１０４）から電気的に分離されたセキュリティバス（１１４）を介してファイアウォールブロックを構成するためにポインタを用いる。イニシエータ側ファイアウォールブロックはメッセージにイニシエータ側ファイアウォールブロックの構成設定に依存するメッセージ識別子を追加する。レシーバ側ファイアウォールブロックは、メッセージ識別子及びレシーバ側ファイアウォールブロックの構成設定に依存して受信する機能ブロックがメッセージにアクセスするための許可を制御する。
2021525908.tif 000002
【特許請求の範囲】
【請求項１】
システムオンチップ（ＳｏＣ）であって、
複数の機能ブロック、
前記機能ブロックに接続されるシステムバスであって、前記システムバスを介して、前記機能ブロックのうちの他の機能ブロックにメッセージを送信すること又は前記機能ブロックのうちの他の機能ブロックからメッセージを受信することの少なくとも一方を行うように構成される、前記システムバス、
複数のイニシエータ側ファイアウォールブロックであって、前記イニシエータ側ファイアウォールブロックのうちの異なる複数のイニシエータ側ファイアウォールブロックが、前記機能ブロックのうちの異なる機能ブロックに対応しており、前記イニシエータ側ファイアウォールブロックが、それぞれのイニシエータ側ファイアウォールブロックの構成設定をストアするように構成されるそれぞれのイニシエータ側メモリを有し、前記機能ブロックの送信する一つが送信されたメッセージを受信する機能ブロックに送信するときに、前記送信する機能ブロックに対応する前記イニシエータ側ファイアウォールブロックが、前記対応するイニシエータ側ファイアウォールブロックの前記構成設定に少なくとも部分的に依存して、前記送信されたメッセージに識別子を追加するように構成される、前記イニシエータ側ファイアウォールブロック、
複数のレシーバ側ファイアウォールブロックであって、前記レシーバ側ファイアウォールブロックのうちの異なるレシーバ側ファイアウォールブロックが、前記機能ブロックのうちの異なる機能ブロックに対応しており、前記レシーバ側ファイアウォールブロックが、それぞれのレシーバ側ファイアウォールブロックの構成設定をストアするように構成されるそれぞれのレシーバ側ファイアウォールブロックメモリを有し、前記レシーバ側ファイアウォールブロックが、前記受信する機能ブロックが前記送信されたメッセージを受信するときに、前記受信する機能ブロックに対応する前記レシーバ側ファイアウォールブロックが、前記対応するレシーバ側ファイアウォールブロックの前記構成設定に及び前記識別子に少なくとも部分的に依存して、前記送信されたメッセージが、前記受信する機能ブロックによってアクセスされるための許可を認めるか又は拒否するように構成される、前記複数のレシーバ側ファイアウォールブロック、
前記システムバスから電気的に分離されるセキュリティバスであって、前記イニシエータ側ファイアウォールブロック及びレシーバ側ファイアウォールブロックに結合される、前記セキュリティバス、及び
前記セキュリティバスに結合されるように構成され、前記セキュリティバスを用いて全ての前記イニシエータ側ファイアウォールブロックメモリ及び全ての前記レシーバ側ファイアウォールブロックメモリにストアされる構成設定を排他的に制御するように構成される、単一のセキュリティ構成コントローラ、
を含む、ＳｏＣ。
【請求項２】
請求項１に記載のＳｏＣであって、前記識別子が前記送信機能ブロックに固有に対応する、ＳｏＣ。
【請求項３】
請求項１に記載のＳｏＣであって、前記機能ブロックが、前記セキュリティバスを介して互いにメッセージを送信しないように構成される、ＳｏＣ。
【請求項４】
請求項１に記載のＳｏＣであって、前記イニシエータ側ファイアウォールブロックの各々及び前記レシーバ側ファイアウォールブロックの各々が、前記ＳｏＣ内で固有であるファイアウォール識別子を有するように構成される、ＳｏＣ。
【請求項５】
請求項４に記載のＳｏＣであって、
ＳｏＣシステムが複数の前記ＳｏＣを含み、
前記ファイアウォール識別子が、前記ＳｏＣシステムにおける異なるＳｏＣ上にある前記イニシエータ側ファイアウォールブロック及び／又はレシーバ側ファイアウォールブロックが、同一の設計を有しており同一の設計機能ブロックに対応する場合に、同一のファイアウォール識別子を有するように割り当てられる、
ＳｏＣ。
【請求項６】
請求項４に記載のＳｏＣであって、メモリ要素の連続的なブロックであるメモリを含み、
前記メモリが、前記メモリ内のアドレスにおける前記ＳｏＣ上の前記イニシエータ側ファイアウォールブロックの各々及びレシーバ側ファイアウォールブロックの各々の位置に対するポインタをストアするように構成されており、前記アドレスが、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれに対応しており、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれのファイアウォール識別子によって判定される、
ＳｏＣ。
【請求項７】
システムオンチップ（ＳｏＣ）であって、
複数の機能ブロックであって、前記機能ブロックの各々が、前記機能ブロックのうちの他の機能ブロックへメッセージを送信する及び／又は前記機能ブロックのうちの他の機能ブロックからメッセージを受信するように構成される、前記複数の機能ブロック、
複数のイニシエータ側ファイアウォールブロックであって、前記イニシエータ側ファイアウォールブロックのうちの異なるイニシエータ側ファイアウォールブロックが、前記機能ブロックのうちの異なる機能ブロックに対応しており、前記イニシエータ側ファイアウォールブロックが、それぞれのイニシエータ側ファイアウォールブロックの構成設定をストアするように構成されるそれぞれのイニシエータ側ファイアウォールメモリを有し、前記イニシエータ側ファイアウォールブロックが、前記機能ブロックの送信する一つが受信する機能ブロックに送信されたメッセージを送信するときに、前記送信する機能ブロックに対応する前記イニシエータ側ファイアウォールが、前記対応するイニシエータ側ファイアウォールブロックの前記構成設定に少なくとも部分的に依存して、前記送信されたメッセージに識別子を追加するように構成される、前記複数のイニシエータ側ファイアウォールブロック、
複数のレシーバ側ファイアウォールブロックであって、前記レシーバ側ファイアウォールブロックのうちの異なるレシーバ側ファイアウォールブロックが、前記機能ブロックのうちの異なる機能ブロックに対応しており、前記レシーバ側ファイアウォールブロックが、それぞれのレシーバ側ファイアウォールブロックの構成設定をストアするように構成されるそれぞれのレシーバ側ファイアウォールブロックメモリを有し、前記レシーバ側ファイアウォールブロックが、前記受信する機能ブロックが前記送信されたメッセージを受信するときに、前記受信する機能ブロックに対応する前記レシーバ側ファイアウォールブロックが、前記対応する前記レシーバ側ファイアウォールブロックの前記構成設定に及び前記識別子に少なくとも部分的に依存して、前記送信されたメッセージが、前記受信する機能ブロックによってアクセスされるための許可を認めるか又は拒否するように構成され、前記イニシエータ側ファイアウォールブロックの各々及び前記レシーバ側ファイアウォールブロックの各々が、前記ＳｏＣ内で固有であるファイアウォール識別子を有するように構成される、前記複数のレシーバ側ファイアウォールブロック、及び
メモリ要素の連続的ブロックであるメモリ、
を含み、
前記メモリが、前記メモリ内のアドレスにおける前記ＳｏＣ上の前記イニシエータ側ファイアウォールブロックの各々及びレシーバ側ファイアウォールブロックの各々の位置に対するポインタをストアするように構成されており、前記アドレスが、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれに対応しており、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれのファイアウォール識別子によって判定される、
ＳｏＣ。
【請求項８】
請求項７に記載のＳｏＣであって、前記識別子が前記送信機能ブロックに固有に対応する、ＳｏＣ。
【請求項９】
請求項７に記載のＳｏＣであって、
ＳｏＣシステムが複数の前記ＳｏＣを含み、
前記ファイアウォール識別子が、前記ＳｏＣシステムにおける異なるＳｏＣ上にある前記イニシエータ側ファイアウォールブロック及び／又はレシーバ側ファイアウォールブロックが、同一の設計を有しており同一の設計前記機能ブロックに対応する場合に、同一のファイアウォール識別子を有するように割り当てられる、
ＳｏＣ。
【請求項１０】
請求項７に記載のＳｏＣであって、
前記機能ブロックに結合されるシステムバスであって、前記機能ブロックが、前記システムバスを介して前記メッセージを送信及び受信するように構成される、前記システムバス、
前記システムバスから電気的に分離されるセキュリティバスであって、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックに結合される、前記セキュリティバス
前記セキュリティバスを用いて、全ての前記イニシエータ側ファイアウォールブロックメモリ及び全てのレシーバ側ファイアウォールブロックメモリにストアされる前記構成設定を排他的に制御するように構成される、単一のセキュリティ構成コントローラ、
をさらに含む、ＳｏＣ。
【請求項１１】
請求項１０に記載のＳｏＣであって、前記機能ブロックが、前記セキュリティバスを介して互いにメッセージを送信しないように構成される、ＳｏＣ。
【請求項１２】
システムオンチップ（ＳｏＣ）であって、
複数の機能ブロック、
前記機能ブロックに結合されるシステムバスであって、前記システムバスを介して、前記機能ブロックのうちの他の機能ブロックにメッセージに送信する及び／又は前記機能ブロックのうちの他の機能ブロックからメッセージを受信するように構成される、前記システムバス、
を含み、
前記機能ブロックのうちの一つが、
イニシエータ側ファイアウォールブロックであって、前記イニシエータ側ファイアウォールブロックの構成設定をストアするように構成されるイニシエータ側メモリを含み、前記イニシエータ側ファイアウォールブロックが、前記イニシエータ側ファイアウォールブロックの前記構成設定に少なくとも部分的に依存して、前記機能ブロックのうちの送信する機能ブロックを前記機能ブロックのうちの受信する機能ブロックに送信することにより、送信されたメッセージに識別子を追加するように構成される、前記イニシエータ側ファイアウォールブロックと、
レシーバ側ファイアウォールブロックであって、前記レシーバ側ファイアウォールブロックの構成設定をストアするように構成されるレシーバ側メモリを含み、前記レシーバ側ファイアウォールブロックが、前記レシーバ側ファイアウォールブロックの前記構成設定と前記識別子とに少なくとも部分的に依存して、前記受信されたメッセージが前記受信する機能ブロックによってさらにアクセスされるための許可を選択的に認めるか又は拒否するように構成される、前記レシーバ側ファイアウォールブロックと、
の一つ又はそれ以上を含み、
前記ＳｏＣが更に、
前記システムバスから電気的に分離されるセキュリティバスであって、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックに結合される、前記セキュリティバス、及び
前記セキュリティバスに結合されるように構成され、前記セキュリティバスを用いて、全ての前記イニシエータ側ファイアウォールブロックメモリ及び全ての前記レシーバ側ファイアウォールブロックメモリにストアされるべき前記構成設定を排他的に制御するように構成するように構成される、単一のセキュリティ構成コントローラ、
を含む、ＳｏＣ。
【請求項１３】
請求項１２に記載のＳｏＣであって、前記識別子が前記送信機能ブロックに固有に対応する、ＳｏＣ。
【請求項１４】
請求項１２に記載のＳｏＣであって、前記機能ブロックが、前記セキュリティバスを介して互いにメッセージを送信しないように構成される、ＳｏＣ。
【請求項１５】
請求項１２に記載のＳｏＣであって、前記イニシエータ側ファイアウォールブロックの各々及び前記レシーバ側ファイアウォールブロックの各々が、前記ＳｏＣ内で固有であるファイアウォール識別子を有するように構成される、ＳｏＣ。
【請求項１６】
請求項１５に記載のＳｏＣであって、
ＳｏＣシステムが複数の前記ＳｏＣを含み、
前記ファイアウォール識別子が、前記ＳｏＣシステムにおける異なるＳｏＣ上にある前記イニシエータ側ファイアウォールブロック及び／又はレシーバ側ファイアウォールブロックが、同一の設計を有しており同一の設計機能ブロックに対応する場合に、同一のファイアウォール識別子を有するように割り当てられる、
ＳｏＣ。
【請求項１７】
請求項１５に記載のＳｏＣであって、メモリ要素の連続的なブロックであるメモリを更に含み、
前記メモリが、前記メモリ内のアドレスにおける前記ＳｏＣ上の前記イニシエータ側ファイアウォールブロックの各々及びレシーバ側ファイアウォールブロックの各々の位置に対するポインタをストアするように構成されており、
前記アドレスが、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれに対応しており、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれのファイアウォール識別子によって判定される、
ＳｏＣ。
【請求項１８】
システムオンチップ（ＳｏＣ）においてメッセージを送信するための方法であって、
イニシエータ側ファイアウォールブロックのイニシエータ側メモリの位置とレシーバ側ファイアウォールブロックのレシーバ側メモリとを判定することであって、連続的メモリ要素を含む単一メモリにストアされた前記イニシエータ側メモリ及びレシーバ側ブロックに対するそれぞれのポインタを用いて判定することであって、前記単一メモリ内の前記ポインタのアドレスが、前記イニシエータ側ファイアウォールブロック及び前記レシーバ側ファイアウォールブロックのそれぞれの固有ファイアウォール識別子に少なくとも部分的に依存して判定されること、
排他的セキュリティ構成コントローラと、前記それぞれのポインタと、システムバスから電気的に分離されるセキュリティバスとを用いて、前記イニシエータ側ファイアウォールブロックの一つ又は複数の構成設定及び前記レシーバ側ファイアウォールブロックの一つ又は複数の構成設定を構成すること、
前記システムバスを用いて、送信する機能ブロックから受信する機能ブロックにメッセージを送信すること、
前記イニシエータ側ファイアウォールブロックを用いて前記メッセージにメッセージ識別子を追加することであって、前記識別子が、前記イニシエータ側ファイアウォールブロックの前記構成設定に少なくとも部分的に依存して追加されること、及び
前記メッセージ識別子と前記レシーバ側ファイアウォールブロックの前記構成設定とに少なくとも部分的に依存して、前記受信する機能ブロックが、前記レシーバ側ファイアウォールブロックを用いて、前記メッセージへのさらなるアクセスするための許可を認めること又は拒否すること、
を含む、方法。
【請求項１９】
請求項１８に記載の方法であって、前記メッセージ識別子が、前記送信機能ブロックに固有に対応する、方法。
【請求項２０】
請求項１８に記載の方法であって、前記機能ブロックが、前記セキュリティバスを介して互いにメッセージを送信しないように構成される、方法。
【請求項２１】
請求項１８に記載の方法であって、前記イニシエータ側ファイアウォールブロックの前記ファイアウォール識別子及び前記レシーバ側ファイアウォールブロックの前記ファイアウォール識別子が、それぞれ、前記ＳｏＣ内で固有である、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概して、集積回路（ＩＣ）デバイスにおけるハードウェアベースセキュリティに関し、より詳細には、ハードウェアベースセキュリティのメモリ及びバスアーキテクチャに関する。
【背景技術】
【０００２】
システムオンチップ（ＳｏＣ）は、異なる機能を有する異なる機能ブロック、典型的には、異なる機能ブロック内の異なるサブブロック、を備える複数の機能ブロックを含む。例えば、ＳｏＣ上の機能ブロック又はサブブロック（便宜上、本明細書では集合的に「機能ブロック」と呼ぶ）は、一つ又は複数のマイクロコントローラ、マイクロプロセッサ、又はデジタルシグナルプロセッサ（ＤＳＰ）コアと、読み出し専用メモリ（ＲＯＭ）又はランダムアクセスメモリ（ＲＡＭ）などのメモリブロックと、クロック信号生成器と、入力/出力（Ｉ／Ｏ）インタフェースと、アナログインタフェースと、電圧レギュレータ及び電力管理回路と、知的財産（ＩＰ）コアと含み得る。ハードウェアベースのセキュリティ、即ち、機能ブロック間のメッセージフローのハードウェアレベルでの制御が、（例えば）メッセージコンテンツ、メモリコンテンツ、デバイス機能、及びデバイスＩ／Ｏ及び対応する通信許可への不正なアクセスを得ることを試みる攻撃者に対してＳｏＣを強化するために用いられ得る。
【発明の概要】
【０００３】
記載される例において、システムオンチップ（ＳｏＣ）、及びＳｏＣにおいてメッセージを送信するための方法が、単一の連続的メモリにストアされたファイアウォールブロックメモリに対するそれぞれのポインタを用いて、イニシエータ側ファイアウォールブロックとレシーバ側ファイアウォールブロックメモリの位置を判定することを含む。単一メモリ内のポインタのアドレスは、ファイアウォールブロックのそれぞれの固有のファイアウォール識別子に依存する。排他的セキュリティ構成コントローラが、システムバスから電気的に分離されたセキュリティバスを介してファイアウォールブロックを構成するためにこういったポインタを用いる。システムバスは、送信機能ブロックから受信機能ブロックにメッセージを送信するために用いられる。イニシエータ側ファイアウォールブロックは、メッセージ識別子を追加する。メッセージ識別子は、イニシエータ側ファイアウォールブロックの構成設定に依存する。レシーバ側ファイアウォールブロックは、メッセージ識別子とレシーバ側ファイアウォールブロックの構成設定とに応じて、受信機能ブロックがメッセージにアクセスするための許可を制御する。
【図面の簡単な説明】
【０００４】
【図１】ＳｏＣの機能ブロックレイアウトの例を示す。
【０００５】
【図２】ファイアウォールブロックの種々のメモリにアクセスするために用いられるメモリの例示マップを示す。
【０００６】
【図３】ＳｏＣにおいて機能ブロック間でメッセージを送信するためのプロセスの例を示す。
【発明を実施するための形態】
【０００７】
ロバストなシステムオンチップ（ＳｏＣ）ハードウェアベースセキュリティは、互いに異なる機能ブロックのハードウェア強化相互分離を用い得る。即ち、対応するセキュリティレベルで機能ブロックによって、又はＳｏＣの対応するセキュア領域内で送信されるメッセージは、異なるセキュリティレベルにおける機能ブロック内の又はＳｏＣの異なるセキュア領域内のリソースへのアクセスを制限される必要がある。制約は、例えば、それぞれのメッセージ、送信機能ブロック、受信機能ブロックの特性（許可、暗号、及び暗号鍵アクセシビリティなど）に依存し得る。
【０００８】
図１は、ＳｏＣ１００の機能ブロックレイアウトの例を示す。図１に示すように、ＳｏＣ１００内の様々な機能ブロック１０２が、デバイスバス１０４によって互いに接続されている。幾つかの機能ブロック１０２が示されている。ＳｏＣ内の機能ブロック１０２の数は変えることができる。デバイスバス１０４は、様々な非セキュリティ及び非セキュリティ例外機能ブロック１０２を接続する一つ又は複数のバスを指す。典型的な従来技術の実施例では、デバイスバス１０４は、セキュリティ及びセキュリティ例外ブロックにも接続する。機能ブロック１０２間のメッセージは概して、デバイスバス１０４を介して伝達される。一部（又は全て）の機能ブロック１０２は、イニシエータ側ファイアウォールブロック１０６を含み、これらは、他の機能ブロック１０２への送信のためにメッセージを準備するために、メッセージにセキュリティ関連の内容（メッセージ及び暗号を発信した機能ブロック１０２の識別子（ＩＤ）など）を適用する。一部（又は全て）の機能ブロック１０２は、レシーバ側ファイアウォールブロック１０８を含み、これらは（対応するイニシエータ側ファイアウォールブロック１０６によってメッセージに添付されたＩＤをチェックすることなどによって）メッセージを受け取るそれぞれの機能ブロック１０２が（例えば、メッセージの内容を実行するため、又はメッセージをダウンストリーム受信者に渡すために）メッセージにアクセスする許可があるかどうか、及び許可が確認された場合にそのようなアクセスを可能にする許可があるかどうかを判定し得る。それぞれの機能ブロック１０２によるアクセスは、（ａ）対応するレシーバ側ファイアウォールブロック１０８内に含まれるリソース、及び／又は、（ｂ）メッセージが機能ブロック１０２に対するアクセス許可を有するかどうかを判定する際に、対応するレシーバ側ファイアウォールブロック１０８によって利用されたリソース以外の（に加えて）、機能ブロック１０２のリソースによって作用されるメッセージに対する許可を指す。一つ又は複数の機能ブロック１０２は、同じ機能ブロック１０２内のイニシエータ側ファイアウォールブロック１０６及び／又はレシーバ側ファイアウォールブロック１０８に接続される例外プローブブロック１１０も含む。例外プローブブロック１１０は、それぞれの例外プローブブロック１１０の構成情報をストアするメモリ要素を含む。
【０００９】
イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォールブロック１０８は、（補助）セキュリティ制御ブロック１１２によって制御される。セキュリティ制御ブロック１１２は、互いに接続され、セキュリティ制御バス１１４によって、イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォールブロック１０８を制御するように接続される。イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォール１０８（総称して「ファイアウォールブロック」１０６、１０８）は、それぞれのファイアウォールブロック１０６、１０８のための構成情報をストアするメモリ要素を含む。また、セキュリティ制御ブロック１１２は、それぞれのセキュリティ制御ブロック１１２のための構成情報をストアするメモリ要素を含み、セキュリティ制御ブロック１１２のための構成情報は、典型的には、セキュリティの目的のためにハードウェア設計によって事前設定される。構成情報は、異なる許可レベル（ユーザー、スーパバイザ、デバッグモードなど）がメッセージに適用されるかどうかやそれがどのように成されるかなどを判定し得る。セキュリティ制御バス１１４は、セキュリティ制御バス１１４への無許可のアクセスを防止するために、デバイスバス１０４から電気的に分離されている（即ち、セキュリティ制御バス１１４は、特に、セキュリティンフラストラクチャーを接続するために専用である。メッセージはセキュリティ制御バス１１４を介して機能ブロック１０２間で送信されない）。したがって、セキュリティ制御バス１１４相互接続は、デバイスバス１０４の相互接続とは独立している。セキュリティ制御ブロック１１２は、単一の排他的デバイス管理及びセキュリティ制御ブロック１１６によって制御される。ＤＭＳＣブロック１１６は、セキュリティ制御ブロック１１２を制御するように、及び、セキュリティ制御バス１１４によって、（セキュリティ制御ブロック１１２を介して）イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォールブロック１０８を制御するように接続される。「単一の排他的」ブロックであるＤＭＳＣブロック１１６は、ＤＭＳＣ機能性の複数の独立して動作する場所（loci）がない（したがって、「複数」ではなく「単一の」ＤＭＳＣブロック１１６がある）ように接続されているＤＭＳＣ機能性の基礎となるデバイス構造を指す。これは、セキュリティ制御ブロック１１２から見て、ＤＭＳＣ機能性が並列ではなく直列に接続されていることからわかる。ＤＭＳＣブロック１１６は、ファイアウォールブロック１０６、１０８のメモリ要素にストアされた構成データに変化をもたらすことができる。
【００１０】
図１に示すように、ファイアウォールブロック１０６、１０８は概して、ハードウェアベースのセキュリティを用いるＳｏＣ１００にわたって分布される。独立したセキュリティ制御バス１１４と共に、ＳｏＣ１００のセキュリティインフラストラクチャーのための統合された制御としてＤＭＳＣブロック１１６を用いることにより、ソフトウェアが、イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォール１０８（合わせて、ファイアウォールブロック１０６、１０８）のメモリ要素を、図２に関してさらに説明されるように、単一の統合された連続的なメモリ領域を含むものとして見ることができるように、メモリを構成することが可能となる。
【００１１】
例外プローブブロック１１０は、イニシエータ側ファイアウォールブロック１０６又はレシーバ側ファイアウォールブロック１０８において例外がいつ発生するかを判定する。例外プローブブロック１１０は、例外制御ブロック１１８によって制御される。例外プローブブロック１１０は、例外プローブブロック１１０の構成情報をストアするメモリ要素を含む。例外制御ブロック１１８は、互いに接続され、例外制御バス１２０によって例外プローブブロック１１０を制御するように接続される。例外制御バス１２０は、例外制御バス１２０への無許可の接近を防止するために、デバイスバス１０４から及びセキュリティ制御バス１１４から電気的に分離される。
【００１２】
イニシエータ側ファイアウォールブロック１０６は、例えば、固有のセキュリティＩＤを、機能ブロック１０２間のメッセージのセキュリティ属性に割り当てる、及び／又は、機能ブロック１０２間のメッセージのセキュリティ属性をアサートするように構成し得る。レシーバ側ファイアウォールブロック１０８は、例えば、ソース機能ブロック１０２に対応する許可、又は対応する宛先機能ブロック１０２へのアクセスが許されている（又は許されていない）メッセージの他の特性を設定するように構成し得る。
【００１３】
図２は、ファイアウォールブロック１０６、１０８の様々なメモリにアクセスするために用いられるメモリ２００の例示のマップを示す。メモリ２００は、ＳｏＣ１００のメモリ内の固定範囲に及ぶ。メモリ２００は、ファイアウォールブロック１０６、１０８の様々なメモリの位置に対するポインタをストアする複数のメモリ領域２０２（例えば、特定のＳｏＣ１００の要件に応じて分割される）を含む。異なるメモリ領域２０２が、ファイアウォールブロック１０６、１０８の異なるタイプの機能（異なるサブシステム）に対応するメモリの位置に対するポインタを含む。例えば、メモリ領域２０２は、イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォールブロック１０８に対するセキュリティ構成データ、セキュリティ制御ブロック１１２に対するセキュリティ構成データ、イニシエータ側ファイアウォールブロック１０６及びレシーバ側ファイアウォールブロック１０８に対する例外構成データ、ブート制御構成データ、エミュレーション構成データ、仮想化構成データ、及びサービス品質（ＱｏＳ）構成データに対応し得る（それらへのアクセスを可能にするポインタを含み得る）。したがって、メモリ２００は、（ａ）ソフトウェアと（ｂ）ファイアウォールブロック１０６、１０８構成メモリとの間の媒介物（middleman）として機能する。
【００１４】
各ファイアウォールブロック１０６、１０８には、異なるＩＤが割り当てられる。同一のイニシエータ側ファイアウォールブロック１０６設計及び同一のレシーバ側ファイアウォールブロック１０８設計が、複数のＳｏＣ１００を含むプラットフォームにわたって用いられ得る。これにより、同一プラットフォームにおける全てのＳｏＣ１００内の全てのファイアウォールブロック１０６、１０８に対してＩＤがグローバルに（globally）割り当てられ得、そのため、（例えば、機能ブロック１０２の特定のサブシステムタイプに対して）同一位置にあり、或るプラットフォームにおける異なるＳｏＣ内の同一設計されたファイアウォールブロック１０６、１０８が、同一のＩＤを受信できるようにする。同じＩＤを有することにより、或るプラットフォームにおける異なるＳｏＣ内の同一位置にあり、同一設計されたファイアウォールブロック１０６、１０８のメモリ要素が、ソフトウェアによって同じ方式で呼び出されることが可能になる。ＩＤをグローバルに割り当てることで、或るプラットフォームにわたってＳｏＣにおけるファイアウォールブロック１０６、１０８の構成を簡素化し得る。多くの場合、同一設計されたファイアウォールブロック１０６、１０８を同一構成にすることは利点となる。これは、異なるＳｏＣ上のファイアウォールブロック１０６、１０８に同じ方式でアクセスする能力によって促進される。また、ＩＤのグローバルな割り当ては、複数のタイプのファイアウォールブロック１０６、１０８があるとき、ファイアウォールブロック１０６、１０８の構成の一貫した視点の（構成メモリが、ファイアウォールブロック１０６、１０８ＩＤに基づいて一貫してかつ予測可能にアドレス指定可能である）ソフトウェアを提供することを可能にする。構成メモリのこの一貫性した視点は、ファイアウォールブロック１０６、１０８の数がプラットフォームにわたってＳｏＣ毎に変わる場合にも提供され得る（ファイアウォールブロック１０６、１０８のタイプ（ブート制御又はＱｏＳなど）のために事前割り当てされたアドレス空間は、用いられているそのタイプのファイアウォールブロック１０６、１０８の数に対応するようにサイズを調整され得る）。
【００１５】
ファイアウォールブロック１０６、１０８のタイプには、例えば、メモリ領域ファイアウォールブロック及びチャネル化されたファイアウォールブロックが含まれ得る。メモリ領域ファイアウォールブロックは、例えば、全体として機能ブロック（メモリ）を提供し得、対応するメモリの異なる領域に対して異なる許可を有効にし得る。例えば、Ｈｏｓｔ−１が、或るメモリ領域のファイアウォールブロックの背後にあるメモリに対する完全なアクセス権を有し得、一方、Ｈｏｓｔ−２がそのメモリ領域ファイアウォールブロックの背後にあるメモリのウィンドウビューしか有さない。チャネル化されたファイアウォールブロックは、典型的には、メモリのそれぞれの比較的細かく分割された部分へのより多くの数のファイアウォール構造ゲーティングアクセスを備えて、細かく分割される。
【００１６】
ＩＤは、レジスタ転送レベル（ＲＴＬ）構成ファイルにエンコードされ得、それぞれのＳｏＣに対してＩＤが固定される。ＲＴＬ自動化スクリプトを用いて、以下で説明するように、それぞれのＩＤに対応するメモリアドレスを判定し得る。
【００１７】
各ファイアウォールブロック１０６、１０８ＩＤは、セキュリティ構成データをストアする各メモリ領域２０２に対して、（対応するＳｏＣ１００上で）そのファイアウォールブロック１０６、１０８に固有に対応するメモリアドレス２０４を作成するために用いられ得る。これは、事前定義された数値的計算を用いて行うことができる。例えば、異なるファイアウォールブロック１０６、１０８のための構成データをストアしているメモリ領域２０２内のメモリ要素に対するポインタは、一つのファイアウォールブロック１０６、１０８のためのストアされたポインタ情報の第１のビットが、別のファイアウォールブロック１０６、１０８のための隣接してストアされたポインタ情報の第１のビットから１０２４ビット離れるようにアドレス指定され得る。したがって、ファイアウォールブロック１０６、１０８のための例示の４８のビットアドレスは、次のように計算されるように構成され得る。「ｘ」（ｘ≧０）と番号付けされたファイアウォールブロック１０６、１０８の場合、アドレス＝０×４５００＿００００＋ｘ×１０２４である。これは、ソフトウェアが、ＳｏＣにわたって分布されるのではなく、単一のコンパクトなメモリ空間に配置されているかのようにセキュリティアセットメモリにアクセスし得るように、統合された連続的なセキュア構成データのためのメモリマップを作成するために用いられ得る。
【００１８】
これは、例外制御ブロック１１０のための構成メモリに対するポインタをストアするメモリ領域２０２のためにも成され得る。例外制御ブロック１１８及び例外プローブブロック１１０は、デバイスバス１０４及びセキュリティ制御バス１１４から電気的に分離される例外制御バス１２０によって接続され、例外プローブブロック１１０の構成は、単一のマスター例外制御ブロック１２２によって制御される（ＤＭＳＣブロック１１６によるファイアウォールブロック１０６、１０８の構成の制御と同様）。異なるグループのブロックの構成メモリに対するポインタは、異なるベースアドレスを有するメモリ領域２０２にストアされ、異なるグループのブロックは、それぞれのブロックに対応するそれぞれのメモリ領域２０２内でメモリアドレスを生成するために、異なるそれぞれのＩＤ範囲を有する。
【００１９】
統合された連続的なメモリマップがあると、システムからシステムへ再利用される設計（これはハードウェア設計リソースを節約し得る）を有するファイアウォールブロック１０６、１０８のために設計されたソフトウェアが、システムからシステムへ再利用されることも可能になる。例えば、４つのイニシエータ側ファイアウォールブロック１０６及び２つのレシーバ側ファイアウォールブロック１０８を用いる第１のＳｏＣと、６つのイニシエータ側ファイアウォールブロック１０６及び５つのレシーバ側ファイアウォールブロック１０８を用いる第２のＳｏＣとを考える。第１のＳｏＣからのファイアウォールブロック１０６、１０８設計が第２のＳｏＣのために再利用される場合、第２のＳｏＣのためのセキュリティ構成ソフトウェアは、第１のＳｏＣのためのセキュリティ構成ソフトウェアを再利用し得、（ファイアウォールブロック１０６、１０８に対して）新たに追加された２つのイニシエータ側ファイアウォールブロック１０６（６‐４）及び３つのレシーバ側ファイアウォールブロック１０８（５‐２）に対処するためのコードを追加するだけでよい。これは、ソフトウェア設計リソースを節約し、設計コスト、複雑度を低減し、対応する製品を市場に出すためにかかる時間を短縮し得る。複雑度の低減は、設計誤差の尤度を減らすことができ、コスト及び製品発売開始までの時間をさらに低減し得る。
【００２０】
図３は、ＳｏＣにおける機能ブロック間でメッセージを送信するためのプロセス３００の例を示す。工程３０２において、単一の排他的セキュリティ構成コントローラが、イニシエータ側ブロックのイニシエータ側ファイアウォールメモリの位置と、レシーバ側ファイアウォールブロックのレシーバ側コントローラの位置とを要求する。工程３０４において、これらの位置は、連続的メモリ要素を含む単一メモリにストアされた、イニシエータ側メモリとレシーバ側メモリとに対するそれぞれのポインタを用いて判定される。単一メモリ内のポインタのアドレスが、イニシエータ側ファイアウォールブロックのそれぞれの固有のファイアウォール識別子及びレシーバ側ファイアウォールブロックのそれぞれの固有のファイアウォール識別子に少なくとも部分的に依存して判定される。工程３０６において、セキュリティ構成コントローラと、それぞれのポインタと、システムバスから電気的に分離されたセキュリティバスとを用いて、イニシエータ側ファイアウォールブロックの一つ又は複数の構成設定と、レシーバ側ファイアウォールブロックの一つ又は複数の構成設定とが構成される。工程３０８において、システムバスを用いて、送信機能ブロックから受信機能ブロックにメッセージが送信される。工程３１０において、イニシエータ側ファイアウォールブロックを用いてメッセージ識別子がメッセージに追加され、この識別子はイニシエータ側ファイアウォールブロックの構成設定に少なくとも部分的に依存して追加される。工程３１２において、レシーバ側ファイアウォールブロックを用いたメッセージへの受信機能ブロックによる更なるアクセスの許可が、メッセージ識別子とレシーバ側ファイアウォールブロックの構成設定とに少なくとも部分的に依存して認められるか又は拒否される。
【００２１】
幾つかの実施例において、グローバルに割り当てられたファイアウォールブロック識別子を用いると、チップサポートライブラリ（ＣＳＬ）の作成が簡素化される。
【００２２】
幾つかの実施例において、メモリにおけるＩＤ範囲が、将来の拡張のために確保される。
【００２３】
幾つかの実施例において、複数の異なるセキュリティレベルに対応する複数のセキュアワールドがＳｏＣ内に共存する。幾つかの実施例において、異なるセキュアワールドが用いられるかどうか、及び異なるセキュアワールドがどのように用いられるかが、ファイアウォールブロック構成情報によって判定される。
【００２４】
幾つかの実施例において、一つ又は複数のファイアウォールブロックが機能ブロック内に含まれない。
【００２５】
幾つかの実施例において、ＤＭＳＣブロックが、一度に一つのファイアウォールブロックの一つの構成を設定する。幾つかの実施例において、ＤＭＳＣブロックは、一度に複数ファイアウォールブロックの一つの構成を設定する。幾つかの実施例において、ＤＭＳＣブロックは、一度に一つのファイアウォールブロックの複数の構成を設定する。幾つかの実施例において、ＤＭＳＣブロックは、一度に複数ファイアウォールブロックの複数の構成を設定する。
【００２６】
幾つかの実施例において、ＤＭＳＣブロックは、セキュリティ制御ブロックの構成情報を設定し得る。
【００２７】
本発明の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
【図１】
2021525908.tif 000003
【図２】
2021525908.tif 000004
【図３】
2021525908.tif 000005
【国際調査報告】
2021525908.tif 000006