(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023075939
(43)【公開日】2023-05-31
(54)【発明の名称】動的割り振りのためのシステム、デバイスおよび方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20230524BHJP
【FI】
G06F9/50 150Z
G06F9/50 120Z
【審査請求】未請求
【請求項の数】25
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022184653
(22)【出願日】2022-11-18
(31)【優先権主張番号】10 2021 130 348.6
(32)【優先日】2021-11-19
(33)【優先権主張国・地域又は機関】DE
(71)【出願人】
【識別番号】599158797
【氏名又は名称】インフィニオン テクノロジーズ アクチエンゲゼルシャフト
【氏名又は名称原語表記】Infineon Technologies AG
【住所又は居所原語表記】Am Campeon 1-15, 85579 Neubiberg, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】サンディープ バンジプラン
(72)【発明者】
【氏名】グレン ファラル
(72)【発明者】
【氏名】アルブレヒト マイアー
(72)【発明者】
【氏名】フランク ヘルヴィヒ
(57)【要約】 (修正有)
【課題】共有リソースを含む半導体デバイスに関し、動的割り振りのための方法を提供する。
【解決手段】半導体チップの電子ハードウェア回路デバイスは、各々が対応するリソース割り振り状態を含む分割可能なハードウェアリソースを含む。論理制御回路は、ハードウェアリソース割り振り状態に基づいて、かつ許可されたエージェントからの入力に基づいて、ハードウェアリソースへのアクセスを制御する。半導体チップのプロセッサコアは、第1または第2のグループに属するアプリケーションを実装し、アプリケーションはそれぞれに割り当てられた対応するハードウェアリソースにアクセスして相互作用し、電子ハードウェア回路デバイスに、未割り当てハードウェアリソースを、特定のグループに属するアプリケーションのうちの1つ以上にのみ割り当てさせるように各々が許可および構成された、割り当てソフトウェアエージェントを実装する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
半導体チップであって、前記半導体チップは、
少なくとも1つの電子ハードウェア回路デバイスと、
プログラム命令を含むメモリと、
前記メモリおよび前記少なくとも1つの電子ハードウェア回路デバイスに結合された少なくとも1つのプロセッサコアと、
を備え、
前記少なくとも1つの電子ハードウェア回路デバイスは、
複数のハードウェアリソースと、
前記複数のハードウェアリソースへのアクセスを制御する論理制御回路と、
を備え、
前記複数のハードウェアリソースは、分割可能であり、各ハードウェアリソースは、対応するリソース割り振り状態を含み、前記対応するリソース割り振り状態は、それぞれのハードウェアリソースが割り当て済みかまたは未割り当てかを示し、割り当て済みの場合には割り当て済みのアプリケーション所有者を示し、
前記論理制御回路は、
前記ハードウェアリソースのそれぞれのリソース割り振り状態に基づいて、前記複数のハードウェアリソースのうちの1つ以上へのアクセスを提供または拒否し、
1つ以上の許可されたエージェントからの入力に基づいて、前記ハードウェアリソースの各々について前記リソース割り振り状態を指定する、
ように構成されており、
前記少なくとも1つのプロセッサは、前記プログラム命令を実行して、
第1のグループまたは第2のグループに属する複数のソフトウェアアプリケーションを実装することであって、前記複数のソフトウェアアプリケーションの各々は、それぞれのソフトウェアアプリケーションに割り当てられた少なくとも1つの対応するハードウェアリソースにアクセスして相互作用するように構成されていることと、
前記電子ハードウェア回路デバイスに、1つ以上の未割り当てハードウェアリソースを、前記第1のグループに属するソフトウェアアプリケーションのうちの1つ以上にのみ割り当てさせるように許可および構成された、第1の割り当てソフトウェアエージェントを実装することと、
前記電子ハードウェア回路デバイスに、1つ以上の未割り当てハードウェアリソースを、前記第2のグループに属するソフトウェアアプリケーションのうちの1つ以上にのみ割り当てさせるように許可および構成された、第2の割り当てソフトウェアエージェントを実装することと、
を行い、
割り当て済みのハードウェアリソースごとに、前記論理制御回路は、要求側ソフトウェアアプリケーションが前記ハードウェアリソースの現在割り当てられているソフトウェアアプリケーションである場合にのみ、前記要求側ソフトウェアアプリケーションが割り当て済みのハードウェアリソースに対する所有権の放棄を引き起こすことを可能にするようにさらに構成されている、
半導体チップ。
【請求項2】
前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記少なくとも1つのプロセッサコアによって別個のパーティション上に実装されている、
請求項1記載の半導体チップ。
【請求項3】
前記少なくとも1つのプロセッサコアは、複数の仮想マシンを実装するように構成されており、
別個のパーティション上に実装された前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記複数の仮想マシンのうちの第1の仮想マシン上に実装された第1の割り当てソフトウェアエージェントと、前記複数の仮想マシンのうちの第2の仮想マシン上に実装された第2の割り当てソフトウェアエージェントと、を含む、
請求項2記載の半導体チップ。
【請求項4】
前記少なくとも1つのプロセッサコアは、複数のプロセッサコアを含み、
別個のパーティション上に実装された前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記第1の割り当てソフトウェアエージェントが前記複数のプロセッサコアのうちの第1のプロセッサコア上に実装されることと、前記第2の割り当てソフトウェアエージェントが前記複数のプロセッサコアのうちの第2のプロセッサコア上に実装されることと、を含む、
請求項2記載の半導体チップ。
【請求項5】
前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、単一のプロセッサコア上に実装されており、前記単一のプロセッサコアは、複数のプロセッサパーティションを含み、
前記第1の割り当てソフトウェアエージェントは、前記複数のプロセッサパーティションのうちの第1のプロセッサパーティション上に実装されており、前記第2の割り当てソフトウェアエージェントは、前記複数のプロセッサパーティションのうちの第2のプロセッサパーティション上に実装されている、
請求項2記載の半導体チップ。
【請求項6】
前記第1のグループに属するソフトウェアアプリケーションおよび前記第2のグループに属するソフトウェアアプリケーションは、前記少なくとも1つのコアによって提供される別個のパーティション上にそれぞれ実装されている、
請求項2から5までのいずれか1項記載の半導体チップ。
【請求項7】
前記論理制御回路は、前記第1の割り当てソフトウェアエージェントが前記未割り当てハードウェアリソースのうちの1つ以上を前記第1のグループに属する複数のソフトウェアアプリケーションのうちの1つ以上のみに割り当てることを可能にするように構成されており、かつ、前記第2の割り当てソフトウェアエージェントが前記未割り当てハードウェアリソースのうちの1つ以上を前記第2のグループに属する複数のソフトウェアアプリケーションのうちの1つ以上のみに割り当てることを可能にするように構成されている、
請求項1から6までのいずれか1項記載の半導体チップ。
【請求項8】
前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記電子ハードウェア回路デバイスの前記未割り当てリソースを割り当てるために、1つ以上の一意のトランザクション識別情報コードを使用して、前記未割り当てハードウェアリソースのうちの1つ以上へのアクセスを要求するようにそれぞれ構成されている、
請求項1から7までのいずれか1項記載の半導体チップ。
【請求項9】
前記論理制御回路は、前記第1の割り当てソフトウェアエージェントまたは第2の割り当てソフトウェアエージェントによって提供された前記1つ以上の一意のトランザクション識別情報コードを検証することによって、前記第1の割り当てソフトウェアエージェントまたは第2の割り当てソフトウェアエージェントに前記未割り当てハードウェアリソースのうちの前記1つ以上へのアクセスを提供するように構成されている、
請求項1から8までのいずれか1項記載の半導体チップ。
【請求項10】
前記1つ以上の一意のトランザクション識別情報コードは、前記少なくとも1つのプロセッサコアによって実装される1つ以上のパーティションへの前記第1の割り当てソフトウェアエージェントまたは前記第2の割り当てソフトウェアエージェントのマッピングを示す、
請求項8または9記載の半導体チップ。
【請求項11】
割り当て済みのハードウェアリソースごとに、前記論理制御回路は、対応する現在割り当てられているソフトウェアアプリケーションのみが前記ハードウェアリソースにアクセスすることを可能にするようにさらに構成されている、
請求項1から10までのいずれか1項記載の半導体チップ。
【請求項12】
割り当て済みのハードウェアリソースごとに、前記対応するソフトウェアアプリケーションは、前記ソフトウェアアプリケーションを識別する1つ以上の一意のトランザクション識別情報コードを提供することによって、前記割り当て済みのハードウェアリソースにアクセスするように構成されており、
前記論理制御回路は、前記1つ以上のトランザクション識別情報コードに基づいて前記対応するソフトウェアアプリケーションを検証して、前記割り当て済みのハードウェアリソースへのアクセスを提供するように構成されている、
請求項1から11までのいずれか1項記載の半導体チップ。
【請求項13】
割り当て済みのハードウェアリソースごとに、前記論理制御回路は、対応する現在割り当てられているソフトウェアアプリケーションのみが前記ハードウェアリソース内のデータ移動または処理コンフィグレーションの指定を可能にするようにさらに構成されている、
請求項1から12までのいずれか1項記載の半導体チップ。
【請求項14】
少なくとも1つの電子ハードウェア回路デバイスは、複数の実行エンジンを含み、各実行エンジンは、1つ以上のタスクを実行する回路を含む、
請求項1から13までのいずれか1項記載の半導体チップ。
【請求項15】
前記ハードウェアリソースの各々は、タイムスライス方式で前記実行エンジンに結合されており、前記実行エンジンとのインタフェースを形成するように構成されている、
請求項14記載の半導体チップ。
【請求項16】
前記少なくとも1つの電子ハードウェア回路デバイスは、割り込みコントローラを含み、
前記ハードウェアリソースは、複数の割り込みを含む、
請求項1から15までのいずれか1項記載の半導体チップ。
【請求項17】
前記少なくとも1つの電子ハードウェア回路は、ダイレクトメモリアクセス(DMA)コントローラを含み、
前記ハードウェアリソースは、複数のDMAチャネルを含む、
請求項1から16までのいずれか1項記載の半導体チップ。
【請求項18】
前記ハードウェアリソースの各々は、そのそれぞれのリソース割り振り状態を示しかつそれぞれのデータコンフィグレーションを示す1つ以上のレジスタを含む、
請求項1から17までのいずれか1項記載の半導体チップ。
【請求項19】
前記半導体チップは、前記少なくとも1つの電子ハードウェア回路、前記メモリおよび前記少なくとも1つのプロセッサコアに結合されたシステムインタコネクトをさらに含む、
請求項1から18までのいずれか1項記載の半導体チップ。
【請求項20】
前記システムインタコネクトは、前記電子ハードウェア回路デバイスが前記第1の割り当てソフトウェアエージェントからの通信と前記第2の割り当てソフトウェアエージェントからの通信とを区別するために、前記電子ハードウェア回路デバイスと前記少なくとも1つのコアとの間の接続を提供するように構成されている、
請求項19記載の半導体チップ。
【請求項21】
前記論理制御回路は、ハードワイヤードハードウェア構成要素である、
請求項1から20までのいずれか1項記載の半導体チップ。
【請求項22】
前記半導体チップは、システムオンチップ設計である、
請求項1から21までのいずれか1項記載の半導体チップ。
【請求項23】
前記第1のグループの少なくとも1つのソフトウェアアプリケーションは、1つ以上のセキュリティ関連ソフトウェアタスクを実行するように構成されたセキュリティ関連ソフトウェアアプリケーションである、
請求項1から22までのいずれか1項記載の半導体チップ。
【請求項24】
前記第2のグループの少なくとも1つのソフトウェアアプリケーションは、1つ以上の所定の安全基準に従って実装される安全関連ソフトウェアアプリケーションである、
請求項1から23までのいずれか1項記載の半導体チップ。
【請求項25】
前記少なくとも1つの電子ハードウェア回路デバイスは、前記ハードウェアリソースのリセットを実行して、前記ハードウェアリソースの各々の前記リソース割り振り状態を未割り当てにするように構成されている、
請求項1から24までのいずれか1項記載の半導体チップ。
【発明の詳細な説明】
【技術分野】
【0001】
種々の実施形態は、概して、共有リソースを含む半導体デバイスに関する。
【背景技術】
【0002】
システムオンチップを含む半導体システムまたはデバイスは、リソースを共有するために必要とされる複数のアプリケーションを含むことができる。しかしながら、ソフトウェアアプリケーションタスクは、複数の異なるエンティティまたは企業によって開発されているため、リソースの割り当ての静的割り振りを使用することは不利になる可能性がある。しかしながら、アプリケーションソフトウェアまたはソフトウェアタスクへのリソースの動的割り振りは、かかるシステムまたはデバイスの安全性およびセキュリティを確保する観点から好適ではないことがある。
【0003】
図面において、同様の参照符号は概して種々の図を通して同じ部分を指す。図面は必ずしも縮尺通りに描かれてはおらず、概して本発明の基本方式を例示することに重点が置かれている。以下の説明において、本発明の種々の実施形態を次の各図面を参照して説明する。
【図面の簡単な説明】
【0004】
【
図1】本開示の少なくとも1つの例示的な実施形態による半導体デバイスを示す図である。
【
図2】本開示の少なくとも1つの例示的な実施形態によるハードウェア周辺デバイスを示す図である。
【
図3】本開示の少なくとも1つの例示的な実施形態によるリソースパーティションの状態図である。
【発明を実施するための形態】
【0005】
以下の詳細な説明は、例示として、本発明が実施されうる特定の詳細および実施形態を示す添付の図面を参照する。
【0006】
「例示的」なる語は、本明細書では、「例、事例、または例示としての役割を果たす」ことを意味するために使用される。「例示的」として本明細書で説明される任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
【0007】
本明細書または特許請求の範囲における「複数(plurality)」および「多数(multiple)」なる語は、1より大きい量を明示的に指す。本明細書または特許請求の範囲における用語「グループ(の)」、「セット(の)」、「コレクション(の)」、「シリーズ(の)」、「シーケンス(の)」、「グルーピング(の)」などは、1に等しいかまたは1より大きい量、すなわち1以上を指す。「複数(plurality)」または「多数(multiple)」を明示的に述べていない複数形で表現される任意の用語は、同様に、1に等しいかまたは1より大きい量を指す。「好適なサブセット」、「低減されたサブセット」および「より少ないサブセット」なる用語は、そのセットに等しくないセットのサブセット、すなわち、そのセットよりも少ない要素を含むセットのサブセットを指す。
【0008】
「少なくとも1つ」および「1つ以上」なる用語は、1に等しいかまたは1より大きい数量(例えば、1,2,3,4[...]など)を含むと理解されうる。
【0009】
本明細書で使用される場合、別段の指定がない限り、共通の対象物を説明するための序数の形容詞「第1」、「第2」、「第3」などの使用は、同様の対象物の異なるインスタンスが参照されていることを示すに過ぎず、このように説明された対象物が、時間的に、空間的に、ランク付けで、または任意の他の方法で、所与の順序でなければならないことを示唆することを意図するものではない。
【0010】
本明細書で使用される「データ」なる用語は、例えば、ファイル、ファイルの一部、ファイルのセット、信号またはストリーム、信号またはストリームの一部、信号またはストリームのセットなどとして提供される、任意の好適なアナログまたはデジタル形式の情報を含むと理解されうる。さらに、「データ」なる用語は、例えばポインタの形態の情報への参照を意味するために使用されうる。しかしながら、データなる用語は、前述の例に限定されず、種々の形態をとることができ、当技術分野で理解されるような任意の情報を表すことができる。
【0011】
「プロセッサ」または「処理回路」なる用語は、例えば、本明細書で使用される場合、データ、信号などを扱うことを可能にする任意の種類のエンティティとして理解されうる。データ、信号などは、プロセッサまたはコントローラによって実行される1つ以上の特定の機能に従って処理されうる。
【0012】
したがって、プロセッサまたはコントローラは、アナログ回路、デジタル回路、混合信号回路、論理回路、プロセッサ、マイクロプロセッサ、中央処理装置(CPU)、ニューロモーフィックコンピュータユニット(NCU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、集積回路、特定用途向け集積回路(ASIC)など、またはこれらの任意の組み合わせでありうるか、またはこれらを含みうる。以下でさらに詳細に説明される、それぞれの機能の任意の他の種類の実装形態もまた、プロセッサ、コントローラ、または論理回路として理解されうる。本明細書に詳述されるプロセッサ、コントローラ、または論理回路のうちの任意の2つ(以上)は、同等の機能性または同等物を伴う単一エンティティとして実現されてもよいし、逆に、本明細書に詳述される任意の単一のプロセッサ、コントローラ、または論理回路は、同等の機能性または同等物を伴う2つ(以上)の別個のエンティティとして実現されてもよいことを理解されたい。
【0013】
別段の定めがない限り、本明細書で使用される「回路」は、専用ハードウェアを含みうる任意の種類の論理実装エンティティとして理解される。したがって、回路は、アナログ回路、デジタル回路、混合信号回路、論理回路、集積回路、特定用途向け集積回路(「ASIC」)など、またはこれらの任意の組み合わせでありうる。以下でさらに詳細に説明される、それぞれの機能の任意の他の種類の実装形態もまた「回路」として理解されうる。本明細書で詳述される回路のうちの任意の2つ(以上)は、実質的に同等の機能を有する単一の回路として実現されてもよいことが理解される。逆に、本明細書で詳述される任意の単一の回路が、実質的に同等の機能を有する2つ(以上)の別個の回路として実現されてもよい。さらに、「回路」への言及は、単一の回路を集合的に形成する2つ以上の回路を指す場合がある。要素のセットまたは他の回路のセットが本明細書で説明することができ、「セット」なる用語は「1つ以上」として解釈されうる。
【0014】
本明細書で使用される場合、「信号」は、位相、振幅、周波数などの特性を変更するために信号が処理される信号チェーンを通して伝送または伝導されうる。信号は、かかる特性が適応化されても同じ信号と称されうる。概して、信号が同じ情報を符号化し続ける限り、その信号は同じ信号と見なすことができる。
【0015】
本明細書で使用されるように、値または他の情報を「示す」信号は、デジタルまたはアナログ信号であってよく、当該信号は、信号を受信する構成要素によって復号化され、かつ/またはその構成要素において応答動作を引き起こすことができる手法で、値または他の情報を符号化するか、または別の方式で通信する。信号は、受信構成要素によって受信される前に、コンピュータ可読記憶媒体に記憶またはバッファリングされうる。受信構成要素は、記憶媒体から信号を取り出すことができる。さらに、幾らかの量、状態、またはパラメータを「示す」「値」は、デジタル信号、アナログ信号、または値を符号化するか、別の方式で通信する記憶されたビットとして物理的に具現化されうる。
【0016】
要素が別の要素に「接続」または「結合」されていると言及される場合、電流および/または電磁放射(例えば信号)が要素によって形成された導電経路に沿って流れることができるよう、要素が他の要素に物理的に接続または結合されうることが理解されよう。介在する導電性要素、誘導性要素、または容量性要素は、各要素が互いに結合または接続されるものとして説明されるとき、要素と他の要素との間に存在しうる。さらに、互いに結合または接続されたとき、1つの要素が、物理的接触または介在構成要素なしに、他の要素において電圧もしくは電流の流れまたは電磁波の伝搬を誘導することが可能でありうる。さらに、電圧、電流または信号が要素に「印加される」と称される場合、電圧、電流、または信号は、物理的接続によって、または物理的接続を伴わない容量結合、電磁結合、もしくは誘導結合によって、要素に伝導されうる。
【0017】
本明細書で使用される場合、「メモリ」は、データまたは情報を取り出すために記憶することができる非一時的コンピュータ可読媒体として理解される。したがって、本明細書に含まれる「メモリ」への言及は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートストレージ、磁気テープ、ハードディスクドライブ、光学ドライブなど、またはそれらの任意の組み合わせを含む、揮発性または不揮発性メモリを指すものとして理解されうる。さらに、レジスタ、シフトレジスタ、プロセッサレジスタ、データバッファなども、本明細書ではメモリなる用語に包含される。「メモリ(memory)」または「1つのメモリ(a memory)」と称される単一の構成要素は、2つ以上の異なるタイプのメモリから構成することができ、したがって、1つ以上のタイプのメモリを含む集合的構成要素を指しうる。任意の単一のメモリ構成要素は、複数の集合的に等価なメモリ構成要素に分離されていてよく、逆もまた同様である。さらに、メモリは(図面などにおいて)1つ以上の他の構成要素とは別個のものとして示されていることがあるが、一般的な集積チップまたは埋め込みメモリを有するコントローラなどの他の構成要素と統合されていてもよい。
【0018】
「ソフトウェア」なる用語は、ファームウェアを含む任意のタイプの実行可能命令を指す。
【0019】
本開示の例示的な実施形態は、1つ以上のコンピュータ(例えば、コンピューティングデバイス、プロセッサ、プロセッサコアなど)が、記憶媒体(例えば、非一時的コンピュータ可読記憶媒体)に記録されたコンピュータ実行可能命令を読み出して実行して、本開示の本明細書で説明される実施形態のうちの1つ以上の機能を実行することによって実現されうる。コンピュータは、中央処理装置(CPU)、マイクロプロセッシングユニット(MPU)、または他の回路のうちの1つ以上を含むことができ、別個のコンピュータまたは別個のコンピュータプロセッサのネットワークを含みうる。コンピュータ実行可能命令は、例えばネットワークまたは不揮発性コンピュータ可読記憶媒体からコンピュータに提供されてもよい。記憶媒体は、例えば、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、分散コンピューティングシステムのストレージ、光学ドライブ(コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、またはブルーレイディスク(BD))、フラッシュメモリデバイス、メモリカードなどのうちの1つ以上を含みうる。例示として、本発明を実施することができる特定の詳細および実施形態を示す。
【0020】
本明細書で使用される場合、別段の指定がない限り、共通のオブジェクトを説明するための序数の形容詞「第1」、「第2」、「第3」などの使用は、同様の対象物の異なるインスタンスが参照されていることを示すに過ぎず、このように説明されている対象物が、時間的に、空間的に、ランク付けで、または任意の他の方法で、所与の順序でなければならないことを示唆することを意図するものではない。
【0021】
「半導体基板」または「半導体ダイ」なる用語は、半導体材料を含む任意の構造、例えば、エピタキシャル層を有するまたは有さないシリコン基板、埋め込み絶縁体層を含むシリコンオンインシュレータ基板、またはシリコンゲルマニウム層を有する基板を意味するように定義される。本明細書で使用される「集積回路」なる用語は、トランジスタ、ダイオード、抵抗器、コンデンサ、インダクタ、ならびに他の能動および受動半導体デバイスなどの複数の個々の回路要素を有する電子回路を指す。半導体基板または半導体ダイの内部および/または上部に形成される導電性領域は、導電性経路の一部であり、化学機械研磨などの平坦化プロセスによって処理されうる露出面を有する。導電性領域に適した材料は、例えば銅、アルミニウム、銅合金、または他の可動導電性材料を含みうるが、これらに限定されない。銅インタコネクトレベルは、半導体デバイスの第1のまたは任意の後続の金属インタコネクトレベルであってよい。
【0022】
図1は、半導体デバイス100の一例を示す図を含む。半導体デバイスは、半導体チップ、例えば種々のタスクまたはアプリケーションを走らせるかまたは実行するように構成された複数のハードウェア構成要素を含む単一の半導体チップでありうる。さらに、半導体チップは、システムオンチップとして実装されうる。すなわち、システム100全体が単一または共通の半導体基板に実装されうる。
【0023】
半導体デバイス100は、110a~110N(Nは任意の数)と指定されている複数のプロセッサコアを含みうる。デバイス100は複数のハードウェア周辺デバイスを含みうる。
図1に示されているように、デバイス100は、ダイレクトメモリアクセス(DMA)コントローラ120と、割り込みルータ130と、メモリまたはメモリデバイス140と、150a~150Mで示される他のハードウェア周辺機器と、を含む。
【0024】
加えて、デバイス100は、構成要素の全部または一部に結合して構成要素が互いに通信することを可能にするシステムインタコネクト160を含みうる。システムインタコネクト160は、種々の構成要素を区別するように、例えば異なるコア110間の信号または通信を区別するように構成されうる。したがって、異なるタイプまたは種類のソフトウェアアプリケーションからの信号または通信も、システムインタコネクト160を使用して区別することができる。
【0025】
図1には図示していないが、デバイス100の構成要素間の他の接続部が実現されてもよい。
【0026】
本発明の例示的な実施形態によれば、半導体デバイス100は、複数のアプリケーションを実装または実行するように構成されたシステムオンチップでありうる。より具体的には、1つ以上のプロセッサコア110a~110Nまたはプロセッサコア110は、アプリケーションを実行または実装することができる。プロセッサコア110は、メモリ140または他の好適な構成要素上に記憶されうるプログラム命令を実行して、複数のアプリケーションを実行することができる。
【0027】
いくつかのケースでは、半導体デバイス100は、1つ以上の安全規格またはプロトコルに従って動作するように設計されうる安全関連アプリケーションを実装することができる。さらに、デバイス100は、セキュリティベースまたはセキュリティ関連のアプリケーションを実装することもできる。セキュリティ関連アプリケーションは、いくつかの例を挙げると、認証、暗号化、鍵プロビジョニングなどのソフトウェアタスクを含むか、または実装することができる。
【0028】
デバイス100によって実装される異なるタイプのソフトウェアアプリケーション(例えば、安全およびセキュリティ関連アプリケーション)は、異なるエンティティまたは企業によって開発されている場合がある。したがって、ソフトウェアアプリケーションは、デバイス100上のコア110によって実行された場合に、その意味での信頼性を有さず、互いに連携して動作するように設計されていない可能性がある。デバイス100上で動作する複数のアプリケーションは、アクセスを必要とし、同じリソースのうちの一部、例えば、割り込みルータ、DMAなどを使用することができる。これは、アプリケーションおよびデバイス100の意図された機能を実行するためである。本発明の実施形態のハードウェアは、複数のソフトウェアアプリケーションが、リソースを割り当てて制御することができる包括的なハードウェアまたはソフトウェアインスタンスを必要とせずに、共有ハードウェアリソースを制御することを可能にする。単一のハードウェアまたはソフトウェアインスタンスが異なるソフトウェアアプリケーショングループを制御することができない場合、提案のハードウェアにより、かかる共通の割り当てエージェントがなくても、リソースが正確かつ確実に割り当てられることが可能となる。
【0029】
本開示の少なくとも1つの例示的な実施形態によれば、半導体デバイス100のプロセッサコア110上で実行するまたは走らせるアプリケーションは、異なるグループと見なされうる。一例では、ソフトウェアアプリケーションは、安全/非セキュリティアプリケーションにグループ化されるか、またはセキュリティアプリケーションにグループ化される。したがって、半導体デバイス100は、安全ソフトウェアアプリケーションがセキュリティソフトウェアアプリケーションからの干渉を受けないことを可能にするように構成されてよく、その逆も同様である。セキュリティアプリケーションは、同じ安全基準に従って開発されていなくてよく、さらに、セキュリティアプリケーションソフトウェアタスクが、機密性、干渉に対する完全性および同じセキュリティ基準に従って開発されていない非セキュリティアプリケーションソフトウェアタスクからのスプーフィングを防止する能力を保証する必要があるように構成されていてもよい。すなわち、半導体デバイス100は、特に共有リソースに関して、アプリケーションの1つのグループをアプリケーションの別のグループとの干渉から保護するように動作することができ、逆もまた同様である。
【0030】
少なくとも1つの例示的な実施形態では、本明細書で説明される異なるグループ化されたアプリケーションまたは割り当てソフトウェアエージェントは、互いに別個に実行または実装されうるものであり、例えば別個のパーティションで実装されうる。ハードウェアパーティションは、複数の方法で実現または実装することができる。ハードウェアパーティションは、アプリケーションを実装するハードウェアの区分を反映し、またはこれに対応することができる。ある場合には、パーティションは、コア110によって実装される仮想マシンでありうる。すなわち、コア110は、ハイパーバイザを実行して複数の仮想マシンを実装することができる。仮想マシンは、複数のソフトウェアアプリケーションを実行または実装することができる。1つのグループのソフトウェアアプリケーション/エージェント(例えば、安全アプリケーション)は、別のグループのソフトウェアアプリケーション/エージェント(例えば、セキュリティアプリケーション)を実行する仮想マシンとは異なる仮想マシン上で実行することができる。
【0031】
別の例では、コア110は、分割することができ、または分割された状態で使用することができる。かかる場合、1つ以上のコアは、ソフトウェアアプリケーション(例えば、安全アプリケーション)の1つのグループ(のみ)を実行することができ、1つ以上のコア110の別の異なるグループは、別のグループ(のみ)を実行することができる。
【0032】
さらに別の場合には、コア110内で分割を実現することができる。単一のコア110は、複数の(例えば、論理)パーティションに分割されうる。さらに、1つ以上のパーティションが特定のグループ(例えば、安全)からのソフトウェアアプリケーションまたはエージェントのみを実行するように構成することができ、別のまたは異なる1つ以上のパーティションをソフトウェアアプリケーション/エージェントの別のグループ(例えば、セキュリティ)からのソフトウェアアプリケーション/エージェントのみに構成することができる。
【0033】
さらに、デバイス100は、システムまたはデバイス周辺機器、例えばDMA、割り込みルータなどのうちの1つ以上に対して、例えば安全アプリケーションおよびセキュリティアプリケーションなどのアプリケーションのグループ間の干渉の自由度を保証するために、分割可能であってよい。すなわち、デバイス周辺機器のうちの一部のリソースは、分割され、少なくとも一時的に、特定のアプリケーションまたは構成要素に割り当て可能であってよい。
【0034】
図2は、例示的な電子ハードウェア回路デバイス200の図である。
図1を参照すると、電子ハードウェア回路デバイス200は、DMA120、割り込みルータ130であってよく、または任意の他の好適な周辺デバイスであってよい。周辺デバイスまたは電子ハードウェア回路デバイス200は、分割可能なリソースを含むハードウェアシステムデバイスでありうる。電子ハードウェア回路デバイス200は、他の構成要素と通信するためのスレーブインタフェースなどのインタフェース210を含みうる。
【0035】
加えて、
図2の例では、電子ハードウェア回路デバイス200のリソース240は、例えば、最大N個のリソースパーティション(RP)に分割されうる。各リソースまたはリソースパーティションは、電子ハードウェア回路デバイス200のハードウェア回路構成要素または回路であってよく、当該電子ハードウェア回路デバイス200は、電子ハードウェア回路デバイス200の実行態様または実行エンジン260とのインタフェースを形成するように構成されている。各リソースパーティションは、リソースパーティションが実行エンジン260とのインタフェースをどのように形成するかを示す構成または命令する構成を有することができる。構成は、パーティションによって受信されたデータが実行エンジンとともにどのように使用されるべきかを指定することができる。
【0036】
リソースまたはリソースパーティションRP240は、例えばソフトウェアアプリケーションに選択的にまたは動的に割り当てることができる。割り当て済みのソフトウェアアプリケーションは、リソースパーティション(RP)の所有者と称されうるか、または当該所有者であると見なされうる。アプリケーション所有者は、リソースパーティションを使用して、1つ以上のソフトウェアタスクを達成することができる。例えば、アプリケーションは、リソースパーティションの構成を修正または指定することができる。したがって、リソースパーティション240は、構成を示しうるストレージ要素構成要素、例えばレジスタを含みうる。さらに、ストレージ要素は、アプリケーションが割り当て済みか否かを示すことができ、割り当て済みの場合、その所有者を示すことができ、または未割り当てであることを示すことができる。
【0037】
論理制御回路220は、アクセスの制御ならびにハードウェアリソースパーティション240への所有者の分割および割り当てを担うことができる。さらに、論理制御回路220は、ハードウェアリソースへのアクセスの制御を担うか、またはハードウェアリソースへのアクセスを制御するように構成されうる。例えば、論理制御回路220は、複数のハードウェアリソースのうちの1つ以上へのアクセスを提供または拒否するように構成することができる。
【0038】
論理制御回路220は、ハードワイヤード電子部品でありうる。換言すれば、論理制御回路220は、恒久的な物理的構成要素として実現されうるが、その動作に関して電子的なリコンフィグレーションまたはリプログラム変更を行うことができない。したがって、論理制御回路220がどのように動作するかを支配する動作または規則は、物理的回路構成要素(例えば、トランジスタ)に組み込まれており、変更することはできない。
【0039】
各リソースまたはリソースパーティションは、割り振り状態に関連付けられるか、または割り振り状態を含みうる。一例では、割り振り状態または割り振り状態データは、リソースまたはリソースパーティションが(例えば、所有者に)割り当て済みであるかまたは未割り当てである(例えば、空いている)かを示すことができる。割り振り状態または割り振り状態データは、割り当て済みのリソースパーティションの各々の所有者をさらに示すことができる。各リソースパーティションの割り振り状態データは、1つ以上のレジスタに記憶されるなどの任意の好適なフォーマットで記憶されうる。
【0040】
最初に、またはハードウェア電子回路デバイスによって実行されるリセットの後に、リソースまたはリソースパーティションの各々のリソース割り振り状態は、未割り当てに更新または変更することができる。例えば、論理制御回路220は、システムリセットに応答して、割り当て状態またはリソース割り振り状態を未割り当てに変更するように構成することができる。
【0041】
本開示の例示的な実施形態によれば、論理制御回路220は、リソース割り振り状態を書き込むかまたは指定するように構成することができる。(例えば、半導体デバイス200によって開始される)リセットに応答して、例えば、論理制御回路220は、リソースパーティションの各々のリソース割り振り状態を未割り当て(例えば、所有者なし)に設定または変更することができる。
【0042】
さらに、論理制御回路220は、許可されたエンティティからの要求、命令、または通信に応答して、リソース割り振り状態を設定または指定するように構成することもできる。例えば、論理制御回路220は、許可されたエンティティ、アプリケーション、またはエージェントからの要求、命令(例えば、信号)に応答して、未割り当てリソースパーティションを特定の所有者に割り当てるように変更するように構成することができる。
【0043】
本開示の少なくとも1つの例示的な実施形態では、システム100は、エージェント、例えばソフトウェアまたはマスタ割り当てエージェントを実装することができる。これらの割り当てエージェントは、例えば、論理制御回路220を使用して、電子ハードウェア回路デバイス200の未割り当てまたは未割り振りのリソース/リソースパーティションに所有者を割り当てるように構成されている。これらの割り当てエージェントは、1つ以上のコア110によって実装または実行することができ、上記で説明したように、例えば別個のコア、仮想マシンなどに分割または分離することができる。
【0044】
電子ハードウェア回路デバイス200の論理制御回路220は、これらの割り当てエージェントが未割り当てリソースパーティション240を指定された所有者、例えばソフトウェアアプリケーションに割り当てるかまたはマッピングすることのみを可能にするように構成することができる。コア110は、それぞれがハードウェアリソースまたはリソースパーティション240をアプリケーションの特定のグループまたはタイプに属するアプリケーションに割り当てるように構成された複数の割り当てソフトウェアエージェントを実行することができる。すなわち、割り当てエージェントは、未割り当てリソースパーティション240に1つのタイプまたはグループのアプリケーションのみを割り当てるように制限または構成することができる。システムインタコネクト160は、通信または要求を(例えば、信号の形態で)提供して、電子ハードウェア回路200および論理制御回路220が異なるソフトウェアエージェントの異なるタイプのアプリケーションを区別することを可能にするように構成することができる。
【0045】
少なくとも1つの事例では、システムインタコネクト160は、特定のまたは事前定義された接続部上の特定のアプリケーションまたはコア110からの通信または要求を提供することができる。これらの接続部は、通信が電子ハードウェア回路デバイス200の特定のまたは既知のポート入力に提供されるように構成されうる。その結果、電子ハードウェア回路デバイス200は、要求または通信が発生した構成要素またはコアを認識することができる。当該情報は、要求または通信の発信者の検証、例えばこれらがアプリケーションまたはソフトウェアエージェントが属するグループから来たものであるどうかの検証に役立ちうる。例えば、特定の入力で受信された要求は、特定のソフトウェアエージェント(例えばセキュリティソフトウェアエージェント)からのものであることが認識されうる。
【0046】
加えて、各タイプのアプリケーションまたはソフトウェアエージェントによる要求または通信(例えば、信号)は、識別情報またはトランザクション識別情報(TAG-ID)を含みうる。また、TAG-IDを使用して、電子ハードウェア回路デバイス200により、電子ハードウェア回路デバイス200と相互作用するかまたはこれへのアクセスを要求するタイプのまたは特定のソフトウェアエージェントを検証/識別することができる。当該検証または識別に基づいて、電子ハードウェア回路デバイス200はアクセスを提供する。TAG-IDは、ソフトウェアアプリケーションまたはエージェントに一意に指定されうる。なお、TAG-IDは、静的に指定されてもよいし、他の場合には動的に指定されてもよい。
【0047】
したがって、TAG-IDは、ハードウェア、例えばコア、仮想マシン、アプリケーション、またはエージェントなどとハードウェアリソースパーティション(RP)との間のマッピングを提供するかまたはそのマッピングでありうる。
【0048】
少なくとも1つの例では、デバイス100は、コア110によって実行されうるセキュリティソフトウェア/マスタエージェントおよび非セキュリティまたは安全ソフトウェア/マスタエージェントを実装することができる。さらに、コア110は、セキュリティアプリケーションまたは非セキュリティ/安全アプリケーションのいずれかとして分類または識別されうる複数のアプリケーションを実行することもできる。論理制御回路220は、マスタエージェントの各々から、例えば信号の形態で、要求または命令を取得/受信することができる。リセットにもかかわらず、論理制御回路220の論理は、これらの許可されたソフトウェアエージェントが未割り当てリソースパーティションをアプリケーションに割り振るかまたは割り当てることのみを可能にしうる。すなわち、論理制御回路220は、セキュリティソフトウェアエージェントおよび非セキュリティ/安全ソフトウェアエージェントがそれぞれ所有者を未割り当てハードウェアリソースに割り当てることのみを可能にする。さらに、論理制御回路220の論理は、セキュリティおよび非セキュリティソフトウェアエージェントを用いて、未割り当てリソースパーティションをそのそれぞれのグループに割り当てることのみを可能にするかまたは保証することができる。TAG-IDは、論理または規則を実装するために論理制御回路220によって使用されうる。
【0049】
ソフトウェアエージェントからの有効なコマンドまたは要求に応答して、論理制御回路220は、未割り当てリソースのリソース割り振り状態を更新して、有効な所有権割り当てを反映する。したがって、過去に未割り当てのリソースパーティションのリソース割り振り状態は、論理制御回路220により「割り当て済み」に更新され、リソースパーティションの所有者がさらに指定される。さらに、リソース所有者トランザクション識別情報または「RP所有者TAG-ID」を要求において指定して、割り当て済みの所有者を識別することができ、リソースパーティションの割当者またはアプリケーション所有者であるアプリケーションのグループまたはタイプを示すこともできる。
【0050】
リソースパーティションの割り当て後、論理制御回路220は、割り振り状態データを使用して、リソースパーティションへのさらなるアクセスを制御する。具体的には、リソースパーティションの割り当て後、論理制御回路220は、指定されたアプリケーション所有者がリソースパーティションを制御すること、またはリソースパーティションとのインタフェースを形成することのみを可能にしうる。特に、論理制御回路220は、指定されるか、または割り当て済みのアプリケーション所有者のみがリソースパーティションを放棄することを可能にしうる。すなわち、論理制御回路220は、割り当て済みのアプリケーション所有者からの要求または命令のみを受け入れ、リソースパーティションを解放し、その割り振り状態を未割り当てに変更するように構成される。
【0051】
論理制御回路220は、割り当て済みの所有者がリソースパーティション240にアクセスすることのみを許可するようにさらに構成されうる。一例では、論理制御回路220は、現在割り当てられているリソース所有者が現在割り当てられているリソースの所有権を付与または放棄することを可能にするように構成することができる。すなわち、論理制御回路220は、割り当て済みのリソースパーティションの所有者(例えばアプリケーション所有者)から送信された要求またはコマンド(例えば信号)にのみ応答して、リソース割り振り状態を解放し、未割り当てに変更することができる。他の構成要素またはアプリケーションは、リソースパーティションを未割り当てにすることを許可されていない。かかる場合、許可されていない構成要素によるリソース解放要求(割り振り状態を「未割り当て」に変更する要求)または試行(例えば所有者として指定されていないアプリケーションによる要求)は、論理制御回路220によって拒否または無視される。
【0052】
リソースパーティション割り当て済みの所有者として指定されたアプリケーションは、論理回路220を介してリソースパーティションにアクセスすることができ、リソースパーティションを構成することができる。例えば、アプリケーション所有者は、データ移動、またはリソースパーティションに提供されるデータが電子ハードウェア回路200によってどのように処理または利用されるかを構成または指定することができる。リソースパーティション240はそれぞれ、電子ハードウェア回路200の実行エンジン260に(クロスバー250を介して)アクセスすることができる。
【0053】
実行エンジン260は、リソースパーティションにおいて指定された構成に従って、特定のタスクまたは処理を実行することができる。例えば、電子ハードウェア回路デバイス200がDMAコントローラである場合、実行エンジンは、DMAコントローラタスクを実行するように構成することができる。電子ハードウェア回路デバイス200が割り込みコントローラである場合、実行エンジンは、特定の割り込みルーチンを実行するように構成することができる。
【0054】
リソースパーティション240は、例えばクロスバースイッチ構成要素250を使用して、タイムスライス方式で実行エンジン260に個々にアクセスすることができる。他の周辺デバイスも実現可能であり、電子ハードウェア回路デバイス200は本明細書に記載の実施形態により動作するように適応化または修正されうる。
【0055】
種々の例では、半導体デバイス100は、2つのアプリケーショングループ、例えばセキュリティアプリケーションおよび非セキュリティアプリケーションを実装するものとして説明してきたが、これは、アプリケーショングループおよび対応する割り当てソフトウェアエージェントの数またはタイプが異なりうるため、単に例示的なものである。
【0056】
図3は、本明細書で説明される電子ハードウェア回路デバイスのリソースパーティション(RP)の可能な状態を示す状態
図300を示している。
図3の例では、リソースパーティション(RP)は、半導体デバイス100などの半導体デバイス内で動作しうる。したがって、半導体デバイスは、複数のソフトウェアアプリケーションを実装するコア110を含む。この例では、ソフトウェアアプリケーションは、2つの異なるアプリケーショングループまたはタイプ、すなわちセキュリティアプリケーションまたは非セキュリティアプリケーションのいずれか一方である。
【0057】
さらに、コア110は、2つの割り当てソフトウェアエージェント、セキュリティ割り当てソフトウェアエージェントおよび非セキュリティ割り当てソフトウェアエージェントを実装する。図示のように、初期イベントまたはリセットイベント310において、リソースパーティション(RP)は、未割り当て状態320へと遷移し、所有者なしで未割り当てとなる。当該未割り当て状態320において、RPは、2つの可能な状態のうちの1つに遷移することができる。一方の場合における遷移330は、非セキュリティ割り当てソフトウェアエージェントが非セキュリティアプリケーションをリソースパーティションRPの所有者として割り当てる際に生じる。したがって、RPは、非セキュリティ割り当て状態350へと遷移する。他方の場合における遷移340は、セキュリティ割り当てソフトウェアエージェントがセキュリティアプリケーションをリソースパーティションRPの所有者として割り当てる際に生じる。したがって、RPは、セキュリティ割り当て状態360へと遷移する。本明細書の実施形態において図示および説明しているように、各割り当てソフトウェアエージェントは、アプリケーションの特定のグループに属するアプリケーションのみを割り当てることができる。この例では、非セキュリティ割り当てソフトウェアエージェントは、リソースパーティションRPの所有者として非セキュリティソフトウェアアプリケーションのみを割り当てることができ、セキュリティ割り当てソフトウェアエージェントは、リソースパーティションRPの所有者としてセキュリティソフトウェアアプリケーションのみを割り当てることができる。
【0058】
リソースパーティションRPは、本明細書の実施形態で説明しているように、現在の割り当て済みのアプリケーション所有者が所有権を放棄または破棄するまで、割り当て状態、例えば非セキュリティ割り当て状態350またはセキュリティ割り当て状態360のいずれかに留まる。遷移370は、現在のリソースパーティション所有者である非セキュリティアプリケーションが所有権を放棄した際に生じる。したがって、リソースパーティションは、非セキュリティ割り当て状態350から未割り当て状態320へ遷移して戻る。同様に、遷移380は、現在のリソースパーティション所有者であるセキュリティアプリケーションが所有権を放棄した際に生じる。したがって、リソースパーティションは、非セキュリティ割り当て状態360から未割り当て状態320へ遷移して戻る。
【0059】
他の場合には、状態
図300は、半導体デバイスの異なる変形形態に対して、必要な変更を加えて適切に修正することができ、アプリケーショングループおよび割り当てソフトウェアエージェントの数が変更され、例えば必要な変更を加えて増大される。
【0060】
以下の例は、本開示のさらなる態様に関する。
【0061】
例1は、半導体チップであって、
分割可能なハードウェアリソースがそれぞれ対応するリソース割り振り状態を含み、前記対応するリソース割り振り状態は、それぞれのハードウェアリソースが割り当て済みかまたは未割り当てかを示し、割り当て済みの場合には割り当て済みのアプリケーション所有者を示す、複数のハードウェアリソースと、
前記複数のハードウェアリソースへのアクセスを制御し、かつ
前記ハードウェアリソースのそれぞれのリソース割り振り状態に基づいて、前記複数のハードウェアリソースのうちの1つ以上へのアクセスを提供または拒否し、
1つ以上の許可されたエージェントからの入力に基づいて、前記ハードウェアリソースの各々について前記リソース割り振り状態を指定する
ように構成された論理制御回路と、
を備えた少なくとも1つの電子ハードウェア回路デバイスと、
プログラム命令を含むメモリと、
前記メモリに結合され、前記少なくとも1つの電子ハードウェア回路デバイスに結合された少なくとも1つのプロセッサコアと、
を備え、前記少なくとも1つのプロセッサは、前記プログラム命令を実行して、
第1のグループまたは第2のグループに属する複数のソフトウェアアプリケーションを実装することであって、前記複数のアプリケーションの各々は、それぞれのアプリケーションに割り当てられた少なくとも1つの対応するハードウェアリソースにアクセスして相互作用するように構成されていることと、
前記電子ハードウェア回路デバイスに、1つ以上の未割り当てハードウェアリソースを、前記第1のグループに属するソフトウェアアプリケーションのうちの1つ以上にのみ割り当てさせるように許可および構成された、第1の割り当てソフトウェアエージェントを実装することと、
前記電子ハードウェア回路デバイスに、1つ以上の未割り当てハードウェアリソースを、前記第2のグループに属するアプリケーションのうちの1つ以上にのみ割り当てさせるように許可および構成された、第2の割り当てソフトウェアエージェントを実装することと、
を行い、
ここで、割り当て済みのハードウェアリソースごとに、前記論理制御回路は、要求側ソフトウェアアプリケーションが前記ハードウェアリソースの現在割り当てられているアプリケーションである場合にのみ、前記要求側ソフトウェアアプリケーションが割り当て済みのハードウェアリソースに対する所有権の放棄を引き起こすことを可能にするようにさらに構成されている、半導体チップである。
【0062】
例2は、例1の主題であり、前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記少なくとも1つのプロセッサコアによって別個のパーティション上に実装されていてよい。
【0063】
例3は、例2の主題であり、少なくとも1つのプロセッサコアは、複数の仮想マシンを実装するように構成されていてよく、
別個のパーティション上に実装された前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記複数の仮想マシンのうちの第1の仮想マシン上に実装された前記第1の割り当てソフトウェアエージェントと、前記複数の仮想マシンのうちの第2の仮想マシン上に実装された前記第2の割り当てソフトウェアエージェントと、を含む。
【0064】
例4は、例2の主題であり、少なくとも1つのプロセッサコアは、複数のプロセッサコアを含んでよく、
別個のパーティション上に実装された前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、前記第1の割り当てソフトウェアエージェントが前記複数のプロセッサコアのうちの第1のプロセッサコア上に実装されることと、前記第2の割り当てソフトウェアエージェントが前記複数のプロセッサコアのうちの第2のプロセッサコア上に実装されることと、を含む。
【0065】
例5は、例2の主題であり、前記第1の割り当てソフトウェアエージェントおよび前記第2の割り当てソフトウェアエージェントは、単一のプロセッサコア上に実装されていてよく、前記単一のプロセッサコアは複数のプロセッサパーティションを含み、
前記第1の割り当てソフトウェアエージェントは、前記複数のプロセッサパーティションのうちの第1のプロセッサパーティション上に実装されており、前記第2の割り当てソフトウェアエージェントは、前記複数のプロセッサパーティションのうちの第2のプロセッサパーティション上に実装されている。
【0066】
例6は、例2から5までのいずれかの主題であり、前記第1のグループに属するソフトウェアアプリケーションおよび前記第2のグループに属するアプリケーションが、前記少なくとも1つのコアによって提供される別個のパーティション上にそれぞれ実装されていてよい。
【0067】
例7は、前述の例のいずれかの主題であり、前記論理制御回路は、前記第1の割り当てソフトウェアエージェントが前記未割り当てハードウェアリソースのうちの1つ以上を前記第1のグループに属する複数のソフトウェアアプリケーションのうちの1つ以上に割り当てることのみを可能にするように構成されていてよく、かつ前記第2の割り当てソフトウェアエージェントが前記未割り当てハードウェアリソースのうちの1つ以上を前記第2のグループに属する複数のソフトウェアアプリケーションのうちの1つ以上に割り当てることのみを可能にするように構成されていてよい。
【0068】
例8は、前述の例のいずれかの主題であり、前記第1の割り当てソフトウェアエージェントおよび第2の割り当てソフトウェアエージェントは、前記電子ハードウェア回路デバイスの前記未割り当てリソースを割り当てるために、1つ以上の一意のトランザクション識別情報コードを使用して、前記未割り当てハードウェアリソースのうちの1つ以上へのアクセスを要求するようにそれぞれ構成されていてよい。
【0069】
例9は、前述の例のいずれかの主題であり、前記論理制御回路は、前記第1の割り当てソフトウェアエージェントまたは第2の割り当てソフトウェアエージェントによって提供された前記1つ以上の一意のトランザクション識別情報コードを検証することによって、前記第1の割り当てソフトウェアエージェントまたは第2の割り当てソフトウェアエージェントに前記未割り当てハードウェアリソースのうちの前記1つ以上へのアクセスを提供するように構成されていてよい。
【0070】
例10は、例8または9の主題であり、前記1つ以上の一意のトランザクション識別情報コードは、前記少なくとも1つのプロセッサコアによって実装される1つ以上のパーティションへの前記第1の割り当てソフトウェアエージェントまたは第2の割り当てソフトウェアエージェントのマッピングを示しうる。
【0071】
例11は、前述の例のいずれかの主題であり、割り当て済みのハードウェアリソースごとに、前記論理制御回路は、対応する現在割り当てられているソフトウェアアプリケーションのみが前記ハードウェアリソースにアクセスすることを可能にするようにさらに構成されていてよい。
【0072】
例12は、前述の例のいずれかの主題であり、割り当て済みのハードウェアリソースごとに、前記対応するアプリケーションは、前記アプリケーションを識別する1つ以上の一意のトランザクション識別情報コードを提供することによって、前記割り当て済みのハードウェアリソースにアクセスするように構成されていてよく、前記論理制御回路は、前記1つ以上のトランザクション識別情報コードに基づいて前記対応するソフトウェアアプリケーションを検証して、前記割り当て済みのハードウェアリソースへのアクセスを提供するように構成されている。
【0073】
例13は、前述の例のいずれかの主題であり、割り当て済みのハードウェアリソースごとに、前記論理制御回路は、対応する現在割り当てられているソフトウェアアプリケーションのみが前記ハードウェアリソース内のデータ移動または処理コンフィグレーションの指定を可能にするようにさらに構成されうる。
【0074】
例14は、前述の例のいずれかの主題であり、少なくとも1つの電子ハードウェア回路デバイスは複数の実行エンジンを含むことができ、各実行エンジンは、1つ以上のタスクを実行する回路を含む。
【0075】
例15は、例14の主題であり、前記ハードウェアリソースの各々は、タイムスライス方式で前記実行エンジンに結合されており、前記実行エンジンとのインタフェースを形成するように構成されうる。
【0076】
例16は、前述の例のいずれかの主題であり、少なくとも1つの電子ハードウェア回路デバイスは、割り込みコントローラをさらに含むことができ、ハードウェアリソースは複数の割り込みを含む。
【0077】
例17は、前述の例のいずれかの主題であり、少なくとも1つの電子ハードウェア回路はダイレクトメモリアクセス(DMA)コントローラを含むことができ、ハードウェアリソースは複数のDMAチャネルを含みうる。
【0078】
例18は、前述の例のいずれかの主題であり、前記ハードウェアリソースの各々は、そのそれぞれのリソース割り振り状態を示し、かつそれぞれのデータコンフィグレーションを示す1つ以上のレジスタを含む。
【0079】
例19は、前述の例のいずれかの主題であり、少なくとも1つの電子ハードウェア回路、メモリおよび少なくともプロセッサコアに結合されたシステムインタコネクトをさらに含みうる。
【0080】
例20は、例19の主題であり、前記システムインタコネクトは、前記電子ハードウェア回路デバイスが前記第1の割り当てソフトウェアエージェントからの通信と前記第2の割り当てソフトウェアエージェントからの通信とを区別するために、前記電子ハードウェア回路デバイスと前記少なくとも1つのコアとの間の接続を提供するように構成されうる。
【0081】
例21は、前述の例のいずれかの主題であり、論理制御回路は、ハードワイヤードハードウェア構成要素でありうる。
【0082】
例22は、前述の例のいずれかの主題であり、半導体チップは、システムオンチップ設計チップでありうる。
【0083】
例23は、前述の例のいずれかの主題であり、前記第1のグループの少なくとも1つのソフトウェアアプリケーションは、1つ以上のセキュリティ関連ソフトウェアタスクを実行するように構成されたセキュリティ関連ソフトウェアアプリケーションである。
【0084】
例24は、前述の例のいずれかの主題であり、前記第2のグループの少なくとも1つのソフトウェアアプリケーションは、1つ以上の所定の安全基準に従って実装される安全関連ソフトウェアアプリケーションである。
【0085】
例25は、前述の例のいずれかの主題であり、前記少なくとも1つの電子ハードウェア回路デバイスは、前記ハードウェアリソースのリセットを実行して、前記ハードウェアリソースの各々の前記リソース割り振り状態を未割り当てにするように構成されている。
【0086】
例26は、少なくとも1つの電子ハードウェア回路デバイスの少なくとも1つのプロセッサによって実行されるように構成された命令を含む非一時的コンピュータ可読媒体であり、前記ハードウェア回路デバイスは、分割可能なハードウェアリソースがそれぞれ対応するリソース割り振り状態を含み、前記対応するリソース割り振り状態がそれぞれのハードウェアリソースが割り当て済みかまたは未割り当てかを示し、割り当て済みの場合には割り当て済みのアプリケーション所有者を示す、複数のハードウェアリソースと、前記複数のハードウェアリソースへのアクセスを制御し、かつ前記ハードウェアリソースのそれぞれのリソース割り振り状態に基づいて、前記複数のハードウェアリソースのうちの1つ以上へのアクセスを提供または拒否し、1つ以上の許可されたエージェントからの入力に基づいて、前記ハードウェアリソースの各々について前記リソース割り振り状態を指定する、ように構成された論理制御回路と、を備え、前記命令は、実行される際に、前記少なくとも1つの電子ハードウェア回路デバイスの前記少なくとも1つのプロセッサに第1のグループまたは第2のグループに属する複数のソフトウェアアプリケーションを実装することであって、前記複数のアプリケーションの各々は、それぞれのアプリケーションに割り当てられた少なくとも1つの対応するハードウェアリソースにアクセスして相互作用するように構成されていることと、前記電子ハードウェア回路デバイスに、1つ以上の未割り当てハードウェアリソースを、前記第1のグループに属するソフトウェアアプリケーションのうちの1つ以上にのみ割り当てさせるように許可および構成された、第1の割り当てソフトウェアエージェントを実装することと、前記電子ハードウェア回路デバイスに、1つ以上の未割り当てハードウェアリソースを、前記第2のグループに属するアプリケーションのうちの1つ以上にのみ割り当てさせるように許可および構成された、第2の割り当てソフトウェアエージェントを実装することと、を行わせ、割り当て済みのハードウェアリソースごとに、前記論理制御回路は、要求側ソフトウェアアプリケーションが前記ハードウェアリソースの現在割り当てられているアプリケーションである場合にのみ、前記要求側ソフトウェアアプリケーションが割り当て済みのハードウェアリソースに対する所有権の放棄を引き起こすことを可能にするようにさらに構成されている。
【0087】
上記の例のいずれかの特徴のうちの1つ以上は、他の例のいずれか1つと好適にまたは適切に組み合わせることができることに留意されたい。
【0088】
前述の説明は、例としてのみ用いられており、特許請求の範囲に記載される本発明のより広い精神または範囲から逸脱することなく修正が行われうることが、当業者によって理解されるであろう。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味として見なされるべきである。
【0089】
したがって、本開示の範囲は、添付の特許請求の範囲によって示され、したがって、特許請求の範囲の均等物の意味および範囲内に入る全ての変更が包含されることが意図される。
【0090】
本明細書で詳述される方法の実装形態は、本質的に実証的であり、したがって、対応するデバイスにおいて実装されることが可能であると理解されることを理解されたい。同様に、本明細書で詳述されるデバイスの実装形態は、対応する方法として実装されることが可能であると理解されたい。したがって、本明細書で詳述される方法に対応するデバイスは、関連する方法の各態様を実行するように構成された1つ以上の構成要素を含みうることが理解される。
【0091】
上記の説明において定義された全ての頭字語は、本明細書に含まれる全ての請求項においてさらに保持される。
【外国語明細書】