説明

共有システムリソースのセマフォベースの保護のためのシステムおよび方法

【課題】共有システムリソースのセマフォベースの保護のためのシステムおよび方法を提供する。
【解決手段】データアクセス構成要素は、各々が共有システムリソースに対するアクセスを要求するアクセス要求を発行するように構成される。データアクセス構成要素は、前記共有システムリソースに領域記述子が関連付けられる。セマフォモジュールは、前記共有システムリソースについてのセマフォを実装するように、および、前記複数のデータアクセス構成要素のいずれかが前記共有システムリソースについての前記セマフォをロックした場合、いずれのデータアクセス構成要素が前記共有システムリソースについての前記セマフォをロックしたかを示すセマフォ信号を生成するように構成される。メモリ保護ユニットは、前記セマフォ信号および前記領域記述子に基づいて前記アクセス要求を認可または拒否するように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の主題の実施形態は、共有システムリソースに対するアクセスを制御するための方法および装置に関する。
【背景技術】
【0002】
現行の電子システムでは、共有メモリ領域に対する同時アクセスを制御するための機構を提供するために、セマフォが使用されている。適切に使用されると、セマフォは、共有メモリ領域が同時にではなく順次アクセスされることを確実にすることを助け、それによって、共有メモリ領域が一貫性を持って(コヒーレントに)維持されることができる。例えば、マルチプロセッサシステムでは、プロセッサが共有メモリ領域にアクセスする(例えば、更新または書き込み)前に、プロセッサは、ソフトウェア規則(software convention)によって、共有メモリ領域に関連付けられるセマフォが現在別のプロセッサによってロックされているか否かを判定するように要求される場合がある。共有メモリ領域に関連付けられるセマフォが現在別のプロセッサによってロックされていない場合、プロセッサはセマフォをロックして、共有メモリ領域にアクセスすることができ、他のプロセッサはその共有メモリ領域に対する同時アクセスを避ける必要がある。セマフォをロックしているプロセッサのみが共有メモリ領域にアクセスして、その後、アクセスが完了した後にセマフォのロックを解除(アンロック)することができる。セマフォがアンロックされると、別のプロセッサが、共有メモリ領域に対するアクセスを確保するためにセマフォをロックするよう試みることができる。
【0003】
なお、先行技術文献である特許文献1には、共通メモリ保護方式について記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許5,634,038号
【発明の概要】
【発明が解決しようとする課題】
【0005】
プロセッサが正しい様式でセマフォを使用する場合にのみ、適切なシステム操作が保証される。より具体的には、プロセッサの各々は共有メモリ領域に対するアクセスを行うのと併せて、セマフォのロックおよびアンロックに関連付けられる非明示的なプロトコルに従わなければならない。プログラミング・エラーまたは悪意のあるソフトウェアのいずれかのために、要求されるプロトコルに従うことに失敗することによって、自身が多数のエラー状態(例えば、データの破損、システムのハングアップ、システムクラッシュなど)のうちのいずれかにあることが明らかとなる。プロセッサ産業において、システム障害の耐性に対する要求は高まり続けている。
【課題を解決するための手段】
【0006】
上記問題点を解決するために、請求項1に記載の発明は、電子システムであって、各々が共有システムリソースに対するアクセスを要求するアクセス要求を発行するように構成される複数のデータアクセス構成要素であって、前記共有システムリソースに領域記述子が関連付けられる複数のデータアクセス構成要素と、前記共有システムリソースについてのセマフォを実装するように、および、前記複数のデータアクセス構成要素のいずれかが前記共有システムリソースについての前記セマフォをロックした場合、いずれのデータアクセス構成要素が前記共有システムリソースについての前記セマフォをロックしたかを示すセマフォ信号を生成するように構成されるセマフォモジュールと、前記セマフォ信号および前記領域記述子に基づいて前記アクセス要求を認可または拒否するように構成されるメモリ保護ユニットとを備えることを要旨とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子システムにおいて、前記セマフォモジュールは、前記セマフォをセマフォレジスタにおいて記憶される状態インジケータを有するステートマシンとして実装し、前記ステートマシンはアンロック状態および複数のロック状態を有し、前記複数のロック状態の各々は、前記セマフォをロックした前記複数のデータアクセス構成要素のうちの1つに対応し、前記セマフォ信号には前記状態インジケータが反映される、ことを要旨とする。
【0008】
請求項3に記載の発明は、請求項1に記載の電子システムにおいて、前記セマフォモジュールは、セマフォレジスタにおいて、前記共有システムリソースがアンロックされていることのインジケータと、前記共有システムリソースをロックしたデータアクセス構成要素の識別情報のインジケータとから成る群から選択されるインジケータを記憶することによって、前記セマフォを実装する、ことを要旨とする。
【0009】
請求項4に記載の発明は、請求項3に記載の電子システムにおいて、前記メモリ保護ユニットは、前記領域記述子を記憶するための少なくとも1つの領域記述子レジスタであって、前記領域記述子は、前記共有システムリソースについて、前記共有システムリソースのためのアドレス範囲、および、前記複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可を指定する、少なくとも1つの領域記述子レジスタと、前記セマフォモジュールからの前記セマフォ信号および前記少なくとも1つの領域記述子レジスタからの前記デフォルトアクセス許可を受け取るため、および、前記セマフォ信号に基づいて前記デフォルトアクセス許可を場合によって変更することによって前記複数のデータアクセス構成要素に対する有効アクセス許可を生成するためのアクセス評価回路とを備える、ことを要旨とする。
【0010】
請求項5に記載の発明は、請求項4に記載の電子システムにおいて、前記アクセス評価回路は、前記複数のデータアクセス構成要素の各々に対して、データアクセス構成要素に対するデフォルトアクセス許可の各アクセスタイプの論理部を備え、該論理部は、各アクセスタイプに対するデフォルトアクセス許可入力およびイネーブル入力を有し、各アクセスタイプについて、前記デフォルトアクセス許可入力は、前記少なくとも1つの領域記述子レジスタからアクセスタイプのデフォルトアクセス許可を示す信号を受け取るように結合され、前記イネーブル入力は、前記セマフォ信号が、前記データアクセス構成要素が前記セマフォをロックしたことを示す場合はイネーブル信号を受け取るように、かつ、前記セマフォ信号が、前記データアクセス構成要素が前記セマフォをロックしたことを示さない場合はディセーブル信号を受け取るように結合され、各アクセスタイプの前記論理部は、前記イネーブル信号が受け取られた場合は前記デフォルトアクセス許可を示す信号を伝達し、各アクセスタイプの前記論理部は、前記ディセーブル信号が受け取られた場合は前記アクセスタイプに関するアクセスが拒否されることを示す有効アクセス許可を伝達する、ことを要旨とする。
【0011】
請求項6に記載の発明は、請求項5に記載の電子システムにおいて、前記アクセス評価回路は、前記セマフォモジュールから前記セマフォ信号を受け取るように、かつ、前記セマフォがイネーブルの場合は、前記セマフォをロックした前記データアクセス構成要素のインジケータに基づいて前記イネーブル信号または前記ディセーブル信号を生成するように構成されるデコーダをさらに備え、前記セマフォをロックした前記データアクセス構成要素の前記インジケータは前記セマフォ信号により伝達される、ことを要旨とする。
【0012】
請求項7に記載の発明は、請求項4に記載の電子システムにおいて、前記アクセス評価回路は、データアクセス構成要素によって為されたアクセス要求に関連付けられたアドレスを受け取るように構成されており、前記アクセス要求は、前記少なくとも1つの領域記述子レジスタから開始アドレスおよび終了アドレスを受け取るように、要求されるアクセスタイプを指定し、前記開始アドレスおよび前記終了アドレスは前記アクセス要求により指定される前記アドレスが前記アドレスの範囲内に入るか否かを判定するように、かつ、前記有効アクセス許可に基づいて、前記データアクセス構成要素が前記要求されるアクセスタイプの実行を許可されるか否かを判定するように前記共有システムリソースが及ぶアドレスの範囲を決定する、ことを要旨とする。
【0013】
請求項8に記載の発明は、請求項1に記載の電子システムにおいて、前記複数のデータアクセス構成要素、前記セマフォモジュール、前記メモリ保護ユニット、および前記共有システムリソースと結合されるシステム相互接続をさらに備え、前記アクセス要求は前記複数のデータアクセス構成要素から前記システム相互接続を通じて前記メモリ保護ユニットに通信される、ことを要旨とする。
【0014】
請求項9に記載の発明は、請求項8に記載の電子システムにおいて、セマフォレジスタとアクセス評価回路との間のハードウェア接続をさらに備え、前記ハードウェア接続は前記システム相互接続とは異なり、前記セマフォ信号は前記ハードウェア接続を通じて前記セマフォレジスタと前記アクセス評価回路との間で通信される、ことを要旨とする。
【0015】
請求項10に記載の発明は、請求項1に記載の電子システムにおいて、前記共有システムリソースは、単一メモリロケーション、複数のメモリロケーションからなるメモリロケーションのブロック、レジスタ、複数のレジスタ、周辺メモリロケーション、および複数の周辺メモリロケーションから成る群から選択される、ことを要旨とする。
【0016】
請求項11に記載の発明は、メモリ保護ユニットであって、領域記述子を記憶するための領域記述子レジスタであって、前記領域記述子は、共有システムリソースについて、該共有システムリソースのためのアドレス範囲、および複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可を指定する、領域記述子レジスタと、前記領域記述子レジスタに結合されるアクセス評価回路であって、該アクセス評価回路は、前記デフォルトアクセス許可およびセマフォ信号を受け取るように構成されており、前記セマフォ信号に基づいて前記デフォルトアクセス許可を潜在的に変更することによって前記複数のデータアクセス構成要素に対する有効アクセス許可を生成するように、かつ、前記有効アクセス許可に基づいて前記複数のデータアクセス構成要素が要求されるアクセスの実行を許可されるか否かを判定するように前記セマフォ信号は、複数のデータアクセス構成要素のいずれが前記共有システムリソースに関連付けられるセマフォをロックしたかを示す、アクセス評価回路とを備えることを要旨とする。
【0017】
請求項12に記載の発明は、請求項11に記載のメモリ保護ユニットにおいて、前記アクセス評価回路は、前記複数のデータアクセス構成要素のうちの1つのデータアクセス構成要素によって為されたアクセス要求に関連付けられるアドレスを受け取るように、かつ、前記領域記述子レジスタから開始アドレスおよび終了アドレスを受け取るように構成され、前記アクセス要求により指定される前記アドレスが前記アドレスの範囲内に入るか否かを判定するように前記開始アドレスおよび前記終了アドレスは前記共有システムリソースが及ぶアドレスの範囲を決定する、ことを要旨とする。
【0018】
請求項13に記載の発明は、請求項11に記載のメモリ保護ユニットにおいて、前記アクセス評価回路は、前記複数のデータアクセス構成要素の各々に対して、データアクセス構成要素に関連付けられるデフォルトアクセス許可の各アクセスタイプの論理部を備え、該論理部は、各アクセスタイプに対するデフォルトアクセス許可入力およびイネーブル入力を有し、各アクセスタイプについて、前記デフォルトアクセス許可入力は、前記領域記述子レジスタからアクセスタイプに対するデフォルトアクセス許可を示す信号を受け取るように結合され、前記イネーブル入力は、前記セマフォ信号が、前記データアクセス構成要素が前記セマフォをロックしたことを示す場合はイネーブル信号を受け取るように、かつ、前記セマフォ信号が、別のデータアクセス構成要素が前記セマフォをロックしたことを示す場合はディセーブル信号を受け取るように結合され、各アクセスタイプの前記論理部は、前記イネーブル信号が受け取られた場合は前記デフォルトアクセス許可を示す信号を伝達し、各アクセスタイプの前記論理部は前記ディセーブル信号が受け取られた場合は前記アクセスタイプに関するアクセスが拒否されたことを示す有効アクセス許可を伝達する、ことを要旨とする。
【0019】
請求項14に記載の発明は、請求項13に記載のメモリ保護ユニットにおいて、前記アクセス評価回路は、セマフォモジュールから前記セマフォ信号を受け取るように、かつ、前記セマフォをロックした前記データアクセス構成要素のインジケータに基づいて前記イネーブル信号または前記ディセーブル信号を生成するように構成されるデコーダをさらに備え、前記セマフォをロックした前記データアクセス構成要素の前記インジケータは前記セマフォ信号により伝達される、ことを要旨とする。
【0020】
請求項15に記載の発明は、複数のデータアクセス構成要素を有する電子システムにおいて共有システムリソースに対するアクセスを提供する方法であって、前記共有システムリソースの領域記述子を領域記述子レジスタにおいて記憶する工程であって、前記領域記述子によって前記複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可が指定され、前記領域記述子によって前記共有システムリソースに関連付けられたセマフォが識別される、前記工程と、前記共有システムリソースに関連付けられた前記セマフォをロックしたデータアクセス構成要素が存在する場合、該データアクセス構成要素の識別情報を示すセマフォ信号をセマフォモジュールとのハードウェア接続を通じて受け取る工程と、前記デフォルトアクセス許可および前記セマフォ信号に基づいて前記複数のデータアクセス構成要素に対する有効アクセス許可を生成する工程、とを備えており、特定のデータアクセス構成要素が前記セマフォをロックしたことを前記セマフォ信号が示す場合、他のデータアクセス構成要素に対する前記デフォルトアクセス許可によってアクセスが許可されることが指定される場合であっても、前記有効アクセス許可を生成され、前記共有システムリソースに対するアクセスが拒否されることを他のデータアクセス構成要素に対して示すようになることを要旨とする。
【0021】
請求項16に記載の発明は、請求項15に記載の方法において、前記領域記述子は、前記共有システムリソースに関連付けられる前記セマフォがイネーブルされるか否かのインジケータも有し、前記有効アクセス許可を生成する前記工程は、前記セマフォがイネーブルされない場合は実行されない、ことを要旨とする。
【0022】
請求項17に記載の発明は、請求項15に記載の方法において、前記有効アクセス許可に基づいて前記複数のデータアクセス構成要素からのアクセス要求を認可または拒否する工程をさらに備える、ことを要旨とする。
【0023】
請求項18に記載の発明は、請求項15に記載の方法において、セマフォレジスタにおいて、前記共有システムリソースがアンロックされているというインジケータ、および、前記共有システムリソースをロックしたロック要求データアクセス構成要素の識別情報のインジケータから成る群から選択されるインジケータを記憶する工程と、前記セマフォ信号として、前記ロック要求データアクセス構成要素の前記識別情報の前記インジケータを生成する工程とをさらに備える、ことを要旨とする。
【0024】
請求項19に記載の発明は、請求項18に記載の方法において、前記セマフォはアンロック状態、または複数のロック状態のうちの1つにあることができ、ロック状態は前記複数のデータアクセス構成要素の各々に関連付けられ、前記方法は、前記セマフォレジスタにおいて、前記共有システムリソースがアンロックされているという前記インジケータを記憶することによって、前記セマフォを前記アンロック状態に初期化する工程と、前記ロック要求データアクセス構成要素から書き込み要求を受け取る工程と、前記セマフォを、前記ロック要求データアクセス構成要素に関連付けられるロック状態に遷移させる工程とを備え、前記ロック状態に遷移させる工程は、前記セマフォレジスタにおいて前記ロック要求データアクセス構成要素の前記識別情報の前記インジケータを記憶する工程を備え、前記セマフォ信号は、前記セマフォレジスタにおいて記憶されている前記インジケータを伝達する、ことを要旨とする。
【0025】
請求項20に記載の発明は、請求項15に記載の方法において、前記有効アクセス許可を生成する工程は、前記複数のデータアクセス構成要素のうちのデータアクセス構成要素について、前記領域記述子が記憶されている前記領域記述子レジスタから前記デフォルトアクセス許可を受け取る工程であって、前記デフォルトアクセス許可は、前記データアクセス構成要素が1つまたは複数のアクセスタイプの実行を許可されるか否かを示す、前期工程と、前記セマフォ信号に基づいて、前記データアクセス構成要素が前記セマフォをロックしたか否かを判定する工程と、前記データアクセス構成要素が前記セマフォをロックしていた場合、前記データアクセス構成要素に対する前記有効アクセス許可を、前記デフォルトアクセス許可と同一のものとして生成する工程と、前記データアクセス構成要素が前記セマフォをロックしていない場合、前記1つまたは複数のアクセスタイプが前記データアクセス構成要素に対して許可されていないことを示すように、前記データアクセス構成要素に対する前記有効アクセス許可を生成する工程とを備える、ことを要旨とする。
【図面の簡単な説明】
【0026】
【図1】例示的な実施形態による電子システムの簡略化されたブロック図。
【図2】例示的な実施形態によるセマフォモジュールの簡略化されたブロック図。
【図3】例示的な実施形態によるセマフォステートマシンの図。
【図4】例示的な実施形態による、複数のセマフォ状態を通じて遷移する方法のフローチャート。
【図5】例示的な実施形態による領域記述子の例示的なフォーマットの図。
【図6】例示的な実施形態によるメモリ保護ユニットの簡略化されたブロック図。
【図7】例示的な実施形態による有効アクセス許可生成論理部の簡略化されたブロック図。
【図8】例示的な実施形態による、セマフォによって実施されメモリ保護ユニットによって保護される共有システムリソースに対するアクセス要求を認可または拒否するための方法のフローチャート。
【図9】例示的な実施形態による、セマフォによって影響を与えられるメモリ保護ユニットを備える電子システムを製造するための方法のフローチャート。
【発明を実施するための形態】
【0027】
本明細書に記載される実施形態は、共有システムリソースのセマフォアクセス制御を実施するための方法および装置を含む。さまざまな実施形態が、一貫性を持たない様式で共有メモリにアクセスしようと試みるおそれがある、誤りのある、または悪意のあるソフトウェアが絶えず存在する危険性があるにもかかわらず、マルチプロセッサシステムにおける一貫性を持ったメモリアクセスをよりよく保証することができる。下記により詳細に説明されるように、セマフォはソフトウェアにおいて、共有システムリソースのための領域記述子に明示的に関連付けられることができる。基本的に、各領域記述子は、共有システムリソースを定義する1つまたは複数のアドレスの範囲、および、共有システムリソースに関する、さまざまなシステム構成要素(例えば、プロセッサまたは他の構成要素)に対するデフォルトアクセス許可を指定する。システム構成要素が共有システムリソースを定義するアドレス範囲内に入るアドレスにアクセスするための要求を発行すると、メモリ保護ユニットは、システム構成要素がアクセスを実行するための適切な許可を有するか否かを判定する。システム構成要素がアクセスを実行するための適切な許可を有する場合、メモリ保護ユニットはアクセス要求を認可することができる。システム構成要素がアクセスを実行するための適切な許可を有しない場合、メモリ保護ユニットはアクセス要求を拒否することができる。
【0028】
一実施形態によれば、メモリ保護ユニットは、セマフォモジュールから信号を受け取り、この信号は、システム構成要素が共有システムリソースに関連付けられるセマフォをロックしているか否かを示す。セマフォ信号に基づいて、セマフォを適切にロックしているシステム構成要素のみが共有システムリソースに対するアクセス要求を認可され得ることを確実にするために、メモリ保護ユニットは、対応する領域記述子においてコード化されているデフォルトアクセス許可を変更することができてもよい。
【0029】
さまざまな実施形態は、多数のシステムアーキテクチャのいずれかにおいて実装されることができ、図1は、特定の例示的な実施形態による電子システム100の簡略化されたブロック図を示す。システム100は、複数のデータアクセス構成要素102、103、104(DAC)(本明細書においては「マスタ」とも称される)と、システムバス106と、セマフォモジュール108と、メモリ保護ユニット110(MPU)と、1つまたは複数のランダム・アクセス・メモリ112(RAM)(例えば、静的RAM(SRAM))と、読み出し専用フラッシュアレイ114と、1つまたは複数の周辺機器モジュール120、122と、1つまたは複数の周辺機器用バス124、126とを備える。
【0030】
DAC102〜104、セマフォモジュール108、MPU110、RAM112、フラッシュアレイ114、および周辺機器モジュール120、122の間の通信は、一実施形態によれば、システムバス106および周辺機器用バス124、126を介して実装される。例えば、DAC102〜104は、バスマスタとして機能することができ(例えば、DAC102〜104はマスタポートを介してシステムバス106に接続される)、RAM112、フラッシュアレイ114、および周辺機器用モジュール120、122はスレーブとして機能することができる(例えば、RAM112、フラッシュアレイ114、および周辺機器用バス124はスレーブポートを介してシステムバス106に接続される)。バスマスタとして、DAC102〜104は、システムバス106を介してメモリロケーション(例えば、RAM112およびフラッシュアレイ114)にアクセスするよう試みることができる。同様に、DAC102〜104は、システムバス106および周辺機器用バス124、126を介して周辺機器モジュール120、122、セマフォモジュール108、およびMPU110にアクセスすることができる。各DAC102〜104は、固有のバスマスタ番号を有し、これは、DAC102〜104がメモリロケーションまたは他のモジュールに対するアクセス試行を行うときにDAC102〜104がシステムバス106上で(アクセスアドレスとともに)提示することができる。他の実施形態では、通信バス構造は図1に描かれているものとは異なってもよい。
【0031】
本明細書において用語「バス」が使用されているが、「バス」は基本的に、システムエンティティ間でデータ、制御信号、または他の信号の通信を容易にする、システムエンティティ間の一種の相互接続であることが理解されるべきである。従って、本明細書における用語「バス」の使用は限定であるように意図されるものではなく、システムエンティティ間の通信を提供するのに十分であるさまざまなタイプの相互接続のいずれかとして広範に解釈されるべきである。例えば、システムバス106(または「相互接続」)および周辺機器用バス124、126(または「相互接続」)は、例えば、32ビット幅バスであることができ、ただし、システムバス106および/または周辺機器用バス124、126は代替的により広いまたはより狭いものであってもよい。バス106、124、126の各々は、バスプロトコル変換、バス幅変換、動作周波数変換、または他の信号変更を実行するために、バスコントローラ(図示せず)を実装することができ、ただしこれは必須ではない。加えて、バス106、124、126の各々は、アドレス線、データ線、およびさまざまな制御線(例えば、読み出し/書き込み制御信号線、バスクロック線、転送サイズ信号線、および/または待ち信号線)を備える。逆に、周辺機器用バス124、126は、後により詳細に説明されるように、DAC102〜104(例えば、プロセッサコア)が、さまざまな周辺機器レジスタ(例えば、周辺機器120、122のレジスタ)ならびにセマフォモジュール108およびMPU110のプログラミングモデルレジスタ(例えば、図2のレジスタ202〜204、および図6の602、604)にアクセスすることを可能にするバスプロトコルを提供する。
【0032】
本明細書において使用される場合、用語「データアクセス構成要素」および「DAC」は、共有システムリソースとのデータ転送を開始するソフトウェア命令を実行するように適合されているプログラム可能ハードウェアモジュールを意味する。「共有システムリソース」は、複数のDAC102〜104(例えば、RAM112、フラッシュアレイ114、および周辺機器120、122の複数の範囲のアドレス指定可能ロケーションおよび/または単一のアドレス指定可能ロケーション)によってアクセスされることが可能である、任意のメモリロケーション(複数の場合もあり)、レジスタ(複数の場合もあり)、および周辺機器(複数の場合もあり)を備える。
【0033】
DAC102〜104は、プロセッサコア(例えば、マイクロコントローラ、マイクロプロセッサ、および/もしくはデジタル信号プロセッサ(DSP))、非コア処理要素、直接メモリアクセス(DMA)ユニット、ならびに/または、DAC102〜104と共有システムリソースとの間のデータ転送を開始するソフトウェア命令を実行するようにプログラム可能であり、そのように適合されている他のハードウェアモジュールを備える群から選択されるハードウェアモジュールの任意の組み合わせを含むことができる。図1に示されるように、システム100は、任意の数NのDAC102〜104を備えることができ、Nは2以上の整数である。例えば、一実施形態では、DAC102〜104は複数のプロセッサコアを備え(すなわち、システム100は「マルチコア」システムである)、このような実施形態は下記により詳細に論じられる。しかしながら、本明細書の図面および記載は、マルチコアシステムの実施形態を論じるものであり得るが、本発明の主題の範囲は、単一のプロセッサコアのみを備える電子システム、プロセッサコアを含まない電子システム、および/または他の種類の処理要素のさまざまな組み合わせを備える電子システムを備えることは理解されるべきである。さらに、電子システム100は3つのDAC102〜104を有するものとして示されているが、他の実施形態では、電子システムは3つよりも多いかまたは少ないDACを含んでもよい。
【0034】
DAC102〜104は、とりわけ、共有システムリソースに対するアクセスを要求することができるソフトウェア命令(例えば、機械可読コード)を実行するように適合されている。共有システムリソースにアクセスするために、DAC102〜104は、システムバス106を介してアクセス要求を発行する。アクセス要求は、アクセスタイプ(例えば、読み出し、書き込み、または実行)、および共有システムリソースに対応する少なくとも1つのアドレスを指定する。
【0035】
アクセス要求を発行する前に、各DAC102〜104は、共有システムリソースに関連付けられるセマフォをロックする(または「その所有権を得る」)よう試みる。一実施形態によれば、セマフォモジュール108は、複数のこのようなセマフォを実装するように構成され、DAC102〜104は、このセマフォをロックおよびロック解除(アンロック)するためにセマフォモジュール108と対話する。各セマフォの状態(例えば、特定のDAC102〜104によってアンロックまたはロックされている)は、セマフォ「ゲート」(またはセマフォレジスタ)(例えば、図2のセマフォゲート202〜204)において維持される。この状態には、いずれかのDAC102〜104が現在セマフォをロックオンしているか(存在する場合)が反映される。
【0036】
セマフォをロックするよう試みるために、「ロック要求」DAC102〜104は、値(例えば、ロック要求DACの識別情報を表す符号化(エンコード)された値)を、システムバス106および周辺機器用バス126を介して特定のセマフォレジスタに書き込むよう試みることができる。セマフォモジュール108は、セマフォがアイドル状態にある場合にのみ、この値がセマフォレジスタに書き込まれることを許可することになる。セマフォがアイドル状態にない場合(例えば、別のDAC102〜104が既にセマフォをロックしている場合)、セマフォモジュール108は、セマフォレジスタを、ロック要求DAC102〜104が書き込むよう試みていた値によって更新しないことになる。ロック要求DAC102〜104がセマフォのロックに成功したか否かを判定するために、ロック要求DAC102〜104は、書き込みを試みていた同じセマフォレジスタから(システムバス106および周辺機器用バス126を介して)値を読み出す。読み出された値が、ロック要求DAC102〜104がセマフォレジスタに書き込みを試みていた値と同じである場合、ロック要求DAC102〜104はセマフォのロックに成功している。読み出された値が、ロック要求DAC102〜104がセマフォレジスタに書き込みを試みていた値と異なる場合、ロック要求DAC102〜104は、セマフォをロックすることができなかった(例えば、別のDAC102〜104が既にセマフォをロックしていた)と推測することができる。
【0037】
DAC102〜104が共有システムリソースに関連付けられるセマフォを適切にロックした場合、DAC102〜104は、共有システムリソースにアクセスする試行において、システムバス106を介して、さまざまなアクセスタイプ(例えば、読み出し、書き込み、および/または実行)のアクセス要求を発行することができる。アクセス要求を発行するために、例えば、DAC102〜104は、システムバス106のアドレス線上でアドレスを提供し、これは、共有システムリソース(例えば、RAM112、フラッシュアレイ114、または周辺機器120、122)におけるロケーションを特定する。また書き込みタイプのアクセス要求のために、DAC102〜104は、システムバス106のデータ線上でデータ値を提供する。読み出しタイプのデータアクセス要求のために、DAC102〜104は、システムバス106のデータ線からデータ値を、このようなデータ値が提供されるときに読み出すよう試みることができる。システムバス106上でアドレスを提供することに加えて、DAC102〜104は、システムバス106上でその固有のバスマスタ番号も提供する。
【0038】
MPU110は、共有システムリソースの指定された領域を、これらの指定領域に入るDAC102〜104からのアクセス要求を評価することによって、保護するように構成される。例えば、図1に示されている実施形態では、RAM112および周辺機器120、122のいくつかまたはすべては、MPU110において保護されている共有システムリソースであるとみなされ、従ってMPU110はこれらのリソースに対するアクセスを制御することができる。対照的に、示されている実施形態では、読み出し専用フラッシュアレイ114はMPU110によって保護されておらず、ただし、別の実施形態では保護されていてもよい。MPU110は、さまざまな種類の共有システムリソースのうちのいずれかを保護することができ、図1に示されている特定の構成は例示のみを目的としている。用語「メモリ保護ユニット」およびMPUが本明細書において使用されているが、MPU110は、周辺機器アクセス、および/または、厳密には「メモリ」とはみなされない場合がある他のシステムリソースに対するアクセスも保護することができることが理解されるべきである。従って、MPU110は、より広範に「共有リソース保護ユニット」とみなされることができる。
【0039】
下記により詳細に説明されるように、DAC102〜104がMPU110によって保護されている共有システムリソースにアクセスする試行においてアクセス要求を発行するとき、MPU110は、共有システムリソースに関連付けられ得る任意のセマフォの状態の知識とともに、共有システムリソースに対応する「領域記述子」においてコード化されているアクセス許可に基づいて、要求されているアクセスが許可されるかまたは拒否されるかを判定する。領域記述子は、MPU110の領域記述子レジスタ(例えば、図6のレジスタ602、604)に記憶されている。下記により詳細に説明されるように、さまざまな時点において(例えば、システム初期化またはリセット、通常動作、および他の時間の間)、DAC102〜104のうちの1つまたは複数が、領域記述子を、システムバス106および周辺機器用バス126を介して領域記述子レジスタに書き込むことができる。これも下記により詳細に説明されるように、各領域記述子は、或る領域のための開始アドレス、その領域のための終了アドレス、DAC102〜104の各々に関するデフォルトアクセス許可、その領域に関連付けられるセマフォの識別子、および他の情報を備えることができる。
【0040】
一実施形態では、MPU110は、セマフォ信号に基づいて、領域記述子においてコード化されているデフォルトアクセス許可を変更できる。より詳細には、MPU110は、セマフォモジュール108とMPU110との間のハードウェア接続130上で提供されるセマフォ信号を通じて、特定の領域記述子に関連付けられるセマフォ(例えば、領域記述子において特定されるセマフォ)の状態の知識を得る。下記により詳細に説明されるように、MPU110は、領域記述子レジスタ(例えば、図6のレジスタ602、604)に記憶されているデフォルトアクセス許可を、セマフォ信号に基づいて変更する回路を備えることができる。より詳細には、MPU110は、共有リソースの所与の領域に関するデフォルトアクセス許可を、その領域に関連付けられるセマフォの状態に基づいて動的に変更することができる。セマフォの状態に基づくアクセス許可の変更は、一実施形態では、完全にハードウェアにおいて実施される。従って、アクセス要求の評価の文脈では、いかなるシステム構成要素も、ソフトウェアを介してセマフォのステータスを要求する必要がなく、またはいかなるシステム構成要素も、ソフトウェアを介してセマフォのステータスを報告する必要がない。MPU110を、領域記述子においてコード化されているアクセス許可をセマフォ信号に基づいて変更するように構成することによって、システム100はセマフォのハードウェア強化を実施することができる。従って、誤りのあるまたは悪意のあるコードが共有システムリソースを一貫性を持たずに変更する可能性が大幅に低減されることができる。
【0041】
ハードウェア接続130は、システムバス106および周辺機器用バス124、126から区別され、さまざまなセマフォの状態(例えば、セマフォレジスタの内容)をリアルタイムで搬送するように構成される。より詳細には、セマフォモジュール108によって管理されるセマフォの各々の状態が、接続130を介してMPU110に出力される。後により詳細に説明されるように、MPU110におけるアクセス評価回路(例えば、図6のアクセス評価論理部610、612)が、必要に応じて、接続130上で搬送される、特定のセマフォに対応する信号を選択する。
【0042】
既に述べたように、周辺機器モジュール120、122は、MPU110によってアクセス保護を提供される共有システムリソースであるとみなされることができる。より詳細には、一実施形態では、1つまたは複数の周辺機器モジュール120、122は、周辺機器用バス124に動作可能に接続され、これは、DAC102〜104が、プログラミングモデルおよび/または周辺機器モジュール120、122のさまざまなレジスタにアクセスすることを可能にするバスプロトコルを提供する。周辺機器モジュール120、122は、例えば、限定ではないが、いくつか例を挙げると、巡回冗長検査(CRC)計算モジュール、チェックサム計算モジュール、シリアル周辺機器インタフェース(SPI)、ユニバーサル非同期受信機/送信機(UART)、カウンタ、タイマ、メモリコントローラ、ディスプレイコントローラ(例えば、液晶ディスプレイ(LCD)コントローラ)、ユーザインタフェースコントローラ(例えば、キーパッド、タッチスクリーン、および/またはポインタコントローラ)、割り込みコントローラ、パワーオンリセット生成器を備える群から選択される任意の1つまたは複数の周辺機器を備えることができる。電子システム100は同様に、さまざまな他の周辺機器を備えることができる。
【0043】
図1のシステム100は例示のみを目的として提供されること、および、図1に描かれているものより多い、少ない、および異なる構成要素を備えるシステムにおいてさまざまな実施形態が実施されてもよいことが理解されるべきである。例えば、電子システム100は、とりわけ、読み出し専用メモリ(ROM)、1つまたは複数のタイミングソース、外部インタフェース、汎用入出力(GPIO)ポート、アナログインタフェース、追加のまたは異なるバス、電圧調整器、および/または電力管理回路も備えることができる。一実施形態では、システム100は、DAC102〜104、システムバス106、セマフォモジュール108、MPU110、RAM112、フラッシュアレイ114、周辺機器モジュール120、122、および周辺機器用バス124、126を備えるシステム・オン・チップを表す。しかしながら、さまざまな実施形態は代替的に、DAC102〜104、システムバス106、セマフォモジュール108、MPU110、RAM112、フラッシュアレイ114、周辺機器モジュール120、122、および周辺機器用バス124、126のいずれかまたはすべてが単一のパッケージ内に封入される別個のチップ上に実装される、システム・イン・パッケージにおいて使用されてもよい。さらに他の実施形態では、DAC102〜104、システムバス106、セマフォモジュール108、MPU110、RAM112、フラッシュアレイ114、周辺機器モジュール120、122、および周辺機器用バス124、126のいずれかまたはすべてが別個にパッケージされる構成要素として実装されてもよい。
【0044】
図2は、例示的な実施形態によるセマフォモジュール200(例えば、図1のセマフォモジュール108)の簡略化されたブロック図である。セマフォモジュール200はスレーブ周辺機器デバイスであり、ハードウェアによって実装されたゲートまたはセマフォレジスタ202、203、204の形態の複数(M個)のセマフォを実装する。例えば、特定の実施形態では、セマフォモジュール200は16個のセマフォを実装することができ、それに応じて16個のセマフォレジスタ202〜204を備える。代替的には、セマフォモジュール200は、より多いまたはより少ないセマフォを実装してもよい。いずれにせよ、各セマフォは、共有システムリソースの異なる領域に対して専用とされることができる。領域は互いに区別され得るものであり、または、あまり一般的でないシナリオでは、領域のいくつかは重なっていてもよい。下記により詳細に説明されるように、各セマフォの領域に対する割り当てはソフトウェアにおいて構成可能である。より詳細には、共有システムリソースの各領域記述子は、領域記述子によってカバーされる領域に割り当てられるセマフォの識別情報(例えば、セマフォレジスタ202〜204)を備えることができる。
【0045】
セマフォレジスタ202〜204は各々、有限ステートマシンとして機能し、任意の所与の時点においてセマフォレジスタ202〜204内に記憶されている値は、セマフォの現在の状態を反映する。より詳細には、セマフォレジスタ202〜204内に記憶されている値は、セマフォをロックオンしているDACがある場合、いずれのDACが現在セマフォをロックオンしているかを反映する。特定の実施形態では、各セマフォレジスタ202〜204は、2つのDACのいずれか(例えば、2つのCPUのいずれか)に任意の所与のセマフォをロックすることを許可するように設計される2ビットの3ステートのステートマシンを実装する。他の実施形態では、各セマフォレジスタ202〜204は、yビットのzステートのステートマシンを実装することができ、ここで、yは2よりも大きく、zは3よりも大きい。このような実施形態では、セマフォステートマシンは、3つ以上のDACのうちのいずれか1つ(例えば、図1のN個のDAC102〜104のうちのいずれか1つ)がセマフォをロックすることを許可するように設計されることができる。
【0046】
一実施形態では、セマフォモジュール200はメモリマッピングされるモジュールであり、これは、周辺機器用バス226(例えば、図1の周辺機器用バス126)に対するインタフェースおよび少なくとも1つの割り込み出力を備える。図3および図4とともに下記により詳細に説明されるように、DAC(例えば、図1のDAC102〜104のうちの1つ)は、セマフォモジュール200に対して、セマフォレジスタ202〜204のうちの特定の1つを特定するオフセットを含む書き込みアドレスを用いて書き込み動作を実行することによって、セマフォをロックまたはアンロックするよう試みることができる。DACは書き込みアドレス(またはアドレスオフセット)およびデータを、システムバス(例えば、図1のシステムバス106)および周辺機器用バス226(例えば、図1の周辺機器用バス126)を介してセマフォモジュール200に搬送する。DACは、DACが以前に書き込みを試みたセマフォレジスタ202〜204から値を読み返すことによって、DACがセマフォの状態のセット(例えば、セマフォのロックまたはアンロック)に成功したか否かを検証するよう試みることができる。DACが、セマフォレジスタ202〜204に対する書き込みを試みたものと同じ値を読み返すことに成功すると、DACは、セマフォ状態をセットすることに成功したと想定することができる。セマフォモジュール200の他の構成要素を論じる前に、セマフォステートマシンおよびその動作のための方法が図3および図4とともに説明される。
【0047】
図3は、例示的な実施形態によるセマフォステートマシン300である。図3のステートマシン300は、2つのDACが特定のセマフォの所有権を求めて競合し得る例示的なシステムに関連する。既に論じたように、他の実施形態では、3つ以上のDACがセマフォおよび共有システムリソースにアクセスすることができてもよい。当業者であれば、ステートマシン300、および、図4の、複数のセマフォ状態を通じて遷移するための方法を、3つ以上のDACがセマフォおよび共有システムリソースにアクセスすることができるシステムに適用するために変える方法を理解されよう。しかしながら、説明および理解を容易にする目的で、ステートマシン300および図4の方法は、共有システムリソースを求めて競合する2つのみのDACを有するシステムを対象とする。例示的な実施形態は限定として解釈されるべきではない。
【0048】
上記で論じたように、一実施形態によれば、各セマフォレジスタ(例えば、図2のレジスタ202〜204の各々)は、2つのDACのいずれか(例えば、2つのCPUのいずれか)に任意の所与のセマフォをロックすることを許可するように設計される2ビットの3ステートのステートマシンを実装する。状態のうちの1つ(すなわち、2ビットによって表される値のうちの1つに対応する)は「アイドル」または「アンロック」状態である。他方の状態(すなわち、2ビットによって表される他方の値に対応する)は、任意の所与の時点において2つのDACのうちのいずれがセマフォをロックしているかを示す。
【0049】
システム起動またはリセット時に、ステートマシン300は「アイドル」または「アンロック」状態302にある。例えば、ステートマシン300は、対応するセマフォレジスタ(例えば、図2のレジスタ202)内に「00」の値が記憶されているときにアイドル状態302にあり得る。ステートマシン300は、適切なロック値の書き込みが、セマフォをロックすることができるDACのうちの1つから為されない限り、アイドル状態のままであってよい。例えば、DAC1(例えば、図1のDAC1 102)は、DAC1ロック値(例えば、「01」)をセマフォレジスタ内に書き込むよう試みることができ、これは、アイドル状態302から「DAC1ロック」状態304への遷移を開始する。代替的に、アイドル状態302にあるとき、DAC2(例えば、図1のDAC2 103)は、DAC2ロック値(例えば、「10」)をセマフォレジスタ内に書き込むよう試みることができ、これは、アイドル状態302から「DAC2ロック」状態306への遷移を開始する。
【0050】
ステートマシン300は、それぞれ、DAC1またはDAC2がアンロック値(例えば、「00」)をセマフォレジスタ内に書き込むよう試みない限り、DAC1ロック状態304またはDAC2ロック状態306のままである。DAC1ロック状態304またはDAC2ロック状態306にあるとき(すなわち、DAC1またはDAC2がセマフォをロックしているとき)、セマフォモジュール200(図2)は、セマフォをロックしていない任意のDACによって提供される任意の値によってセマフォレジスタを上書きすることを拒絶することになる。例えば、DAC1ロック状態304にあるとき、セマフォモジュール200は、DAC2によって提供される任意の値によってセマフォレジスタを上書きすることを拒絶することになる。同様に、DAC2ロック状態306にあるとき、セマフォモジュール200は、DAC1によって提供される任意の値によってセマフォレジスタを上書きすることを拒絶することになる。セマフォをロックしているDACがアンロック値(例えば、「00」)をセマフォレジスタ内に書き込むと、ステートマシン300はDAC1ロック状態304またはDAC2ロック状態306のいずれかからアイドル状態302に遷移する。
【0051】
上記の記載は、2つのDACのいずれかがセマフォをロックすることができる実施形態に関連し、当業者であれば、本明細書における記載に基づいて、上述の実施形態を、3つ以上のDACがセマフォをロックすることができるシステムに適用するために変える方法を理解されよう。さらに他の実施形態では、セマフォモジュール200は、DAC102〜104が、別のDAC102〜104によって既にロックされていたセマフォに対する書き込みを試みた場合は、DAC102〜104に対するロック書き込み失敗通知を実施することができる。そのような実施形態では、各セマフォレジスタ202〜204は、失敗したロック試行を記録するように設計されるyビットのzステートのステートマシンを実装することができ、ゲートロックおよびアンロックに基づいて遷移する。
【0052】
図4は、例示的な実施形態による、複数のセマフォ状態(例えば、図3の状態302、304、306)を通じてセマフォを遷移させるための方法のフローチャートである。方法は、ブロック302において開始し、システム起動またはリセットとともに、セマフォはアイドル(またはアンロック)状態(例えば、図3の状態302)にセット(またはリセット)される。例えば、既に述べたように、これは、セマフォに対応するセマフォレジスタ内にアイドル状態に関連付けられるアイドル値(例えば、「00」)を記憶することによって達成されることができる。アイドル状態にあるとき、セマフォモジュール(例えば、図1のセマフォモジュール108)は、セマフォ状態インジケータ(本明細書においては「セマフォ信号」とも称される)を、ハードウェア接続(例えば、図1、図2、図6、図7のハードウェア接続130、 230〜232、 650、 652、 750)を介してMPU(例えば、図1のMPU110)に提供する。セマフォ状態インジケータはセマフォがアイドル状態にあることを示す。一実施形態によれば、セマフォ状態インジケータは、セマフォレジスタ内の実際の値に対応し、ただし、それらは、符号化された、デコードされた、または代替の値に対応することもできる。
【0053】
セマフォは、ブロック404においてDAC(「DACy」)からロック試行が受け取られない限り、アイドル状態のままである。例えば、ロック試行は、DACyが、そのDACに関連付けられるロック値(例えば、「01」または「10」)をセマフォレジスタ内に書き込むよう試みることを含むことができる。値は例えば、DACyに割り当てられるバスマスタ番号であることができる。ロック試行が受け取られると、ブロック406において、セマフォモジュールはセマフォが現在アンロックされているか否かを判定する。これは、セマフォがアイドル状態にあり、従ってアンロックされていることを示す、適切なアイドル状態値(例えば、「00」)が現在セマフォレジスタ内に記憶されているか否かを判定することを含むことができる。
【0054】
セマフォが現在アンロックされていないという判定が為されると、セマフォモジュールはブロック408において、DACyによって提供されるロック値をセマフォレジスタ内に記憶することを拒絶することによって、ロック試行を拒否することができる。DACyが続いてセマフォレジスタを読み出すと、DACyは、読み出した値を、DACyが書き込みを試みたロック値と比較し、ロック試行が失敗したと判定することができる。一実施形態では、DACyはそのとき「スピン待ち」ループに入ることができ、DACyは最終的にDACyがその書き込み試行に成功するまで、繰り返しそのロック値をセマフォレジスタ内に書き込むよう試行する。代替の実施形態では、DACyから失敗したロック試行を受け取った後、セマフォがアンロックされると、セマフォモジュールはアンロックインジケータ(例えば、割り込み通知)をDACyに提供することができる。
【0055】
再びブロック406を参照して、セマフォが現在アンロックされているとの判定が為されると、セマフォモジュールはロック値をセマフォレジスタ内に書き込み、従ってアイドル状態から、セマフォがDACyによってロックされている状態(例えば、図3の状態304または306)への遷移を実行する。DACyロック状態にある間、セマフォモジュールは、セマフォ状態インジケータをハードウェア接続(例えば、図1、図2、図6、図7の接続130、 230〜232、 650、 652、 750)を介してMPUに提供し、ここで、セマフォ状態は、セマフォがDACyによってロックされていることを示す。後により詳細に説明されるように、これは、MPUに、DACyによる、セマフォに関連付けられる共有システムリソースへのアクセス要求を、DACyに対するデフォルトアクセス許可に従ってハンドリングさせ、さらに、MPUに、DACy以外のDACによる共有システムリソースへのアクセス要求を、それらのデフォルトアクセス許可にかかわらず拒否させる。DACyロック状態にある間、セマフォモジュールは、いかなる他のDACがセマフォレジスタ内にロック値を書き込むことを許可することも拒絶する。
【0056】
ブロック412において、アンロック試行が受け取られたとの判定が為されない限り、セマフォはDACyロック状態のままである。例えば、アンロック試行は、DAC(例えば、DACyまたは何らかの他のDAC)による、アイドル値(例えば、「00」)をセマフォレジスタ内に書き込むための試行であることができる。アンロック試行が受け取られると、セマフォモジュールは、ブロック414において、アンロック試行がDACyによって為されたか否かを判定する。アンロック試行がDACyによって為されない場合、ブロック416において、アイドル値をセマフォレジスタ内に記憶することを拒絶することによって、アンロック試行は拒否される。
【0057】
セマフォモジュールが、DACyによってアンロック試行が為されたと判定すると、セマフォモジュールはアイドル値をセマフォレジスタ内に書き込み、従って、ブロック418において、DACyロック状態(例えば、図3の状態304または306)からアイドル状態(例えば、図3の状態302)への遷移を実行する。ここでも、アイドル状態にある間、セマフォモジュールは、セマフォ状態インジケータをハードウェア接続を介してMPUに提供し、ここで、セマフォ状態インジケータは、セマフォがアンロックされていることを示す。一実施形態によれば、セマフォがDACyによってロックされていた間に別のDACによってセマフォをロックしようとする失敗した(拒否された)試みが為されていた場合、セマフォモジュールはその試行を為したDACにアンロックインジケータ(例えば、割り込み通知)を提供することもできる。その後、本方法は図示されるように反復する。
【0058】
再び図2を参照して、セマフォステートマシンを実装するセマフォレジスタ202〜204に加えて、セマフォモジュール200は一実施形態では、DAC判定比較器210、書き込みデータ比較器212、各セマフォレジスタ202〜204に関連付けられる組み合わせ論理部214、 215、 216、マルチプレクサ220(MUX)、割り込みモジュール222、およびアドレスデコードモジュール224を備える。DAC(例えば、図1のDAC102〜104のうちの1つ)がセマフォレジスタ202〜204のうちの1つに対する書き込みを試みるとき、DACは書き込みデータ(例えば、アイドル値またはロック値)およびセマフォレジスタに割り当てられるアドレスをシステムバス(例えば、図1のバス106)上に提供し、書き込みデータおよびアドレスは、周辺機器用バス226(例えば、図1のバス126)を介してセマフォモジュール200に搬送される。アドレスデコード論理部224は、アドレスを解析し、アドレスがセマフォレジスタ202〜204のうちの1つに対応するか否かを判定するように構成される。アドレスがセマフォレジスタ202〜204のうちの1つの対応する場合、書き込み試行の有効性および性質を判定するためにさまざまな解析が実行される。
【0059】
例えば、一実施形態では、DAC判定比較器210は、書き込み試行(または周辺機器用バスサイクル)が有効なDAC(すなわち、セマフォ状態遷移に作用することを許可されているDAC)によって開始されたものであるか否かを判定するように構成される。書き込み試行(または周辺機器用バスサイクル)が有効なDAC(すなわち、セマフォ状態遷移に作用することを許可されているDAC)によって開始されたものでない場合、書き込み試行は無視される。加えて、書き込みデータ比較器212は、DACが書き込みを試みているデータが有効な値(例えば、アイドル値(例えば、「00」)または有効なロック値(例えば、或るDACに対する「01」および別のDACに対する「10」))に対応するか否かを判定するように構成される。ここでも、書き込みデータ比較器212は、DACが書き込みを試みているデータが有効な値(例えば、アイドル値(例えば、「00」)または有効なロック値(例えば、或るDACに対する「01」および別のDACに対する「10」))に対応しない場合、書き込み試行は無視される。
【0060】
DAC判定比較器210および書き込みデータ比較器212からの出力は、組み合わせ論理部214〜216に提供される。組み合わせ論理部214〜216は、セマフォレジスタ202〜204内での記憶のために適切に構成された値を作成するために、比較器出力を評価する。上記で詳細に論じられたように、セマフォレジスタ202〜204内の値は、セマフォがアンロックされていること、またはDACのうちの1つによってロックされていることを示す。加えて、(セマフォレジスタ202〜204内に記憶されている値によって示されるような)状態情報を表すセマフォ信号は、ハードウェア接続230〜232(例えば、図1、図6、図7のハードウェア接続130、 650、 652、 750)を介してMPU(例えば、図1のMPU110)に提供される。一実施形態では、ハードウェア接続230〜232は、下記により詳細に説明されるように、MPUがそのデフォルトアクセス許可の変更を実行する必要があるビットのみに対応する信号を提供するように構成される。換言すれば、任意のDACが対応するセマフォをロックしていることを示すビットが提供される限り、セマフォレジスタ202〜204内に記憶されている値全体がセマフォ信号においてMPUに提供される必要はない。
【0061】
MUX220は、セマフォレジスタ202〜204のための読み出し経路を提供する。より詳細には、DACからの読み出し要求(例えば、書き込み操作の有効性検証のために為される)に応答して、MUX220は一実施形態では、単一のセマフォレジスタ202〜204内に含まれる値を周辺機器用バス226に提供する。代替の実施形態では、MUX220は、連結した複数のセマフォレジスタ202〜204を表す値を周辺機器用バス226に提供することができる。例えば、各セマフォレジスタ202〜204が1バイト(すなわち、8ビット)幅であり、周辺機器用バスが1ワード(すなわち、32ビット)幅である実施形態では、MUX220は、4つのセマフォレジスタ202〜204内の値を連結することができ、この連結された値を周辺機器用バス226に提供することができる。このようにして、DACは単一の読み出し操作によって複数のセマフォレジスタ202〜204の状態(すなわち、セマフォレジスタ値)を読み出すことができる。複数のセマフォレジスタの状態が単一のアクセスにおいて読み出されることができるが、一実施形態では、単一のセマフォレジスタのみが一度の書き込み操作を介して更新されることができる。
【0062】
割り込みモジュール222は、割り込み通知(またはアンロックインジケータ)を、セマフォが別のDACによってロックされていた間にセマフォをロックする試みに失敗した可能性があるDACに提供するように構成される。一実施形態によれば、割り込み通知は、各DACに対してイネーブルまたはディセーブルされることができる。割り込み通知が或るDACに対してイネーブルされると、割り込みモジュール222はそのDACに関するロック試行失敗を追跡し、セマフォレジスタ202〜204内の値をモニタリングし、DACがロックに失敗したセマフォがアンロックになると(すなわち、アイドル状態に遷移すると)、DACに割り込みを提供する。
【0063】
既に論じたように、MPU(例えば、図1のMPU110)は、セマフォモジュール(例えば、図1のセマフォモジュール108)から、DACが共有システムリソースに関連付けられるセマフォをロックしたか否かを示す信号を受け取る。セマフォ信号に基づいて、セマフォを適切にロックしているDACのみが共有システムリソースに対するアクセス要求を認可され得ることを確実にするために、MPUは、共有システムリソースに関する領域記述子においてコード化されているデフォルトアクセス許可を変更することができる。
【0064】
図5は、例示的な実施形態による領域記述子500の例示的なフォーマットの図である。領域記述子500は特定のフォーマットおよび配列を有するものとして示され、8つのDACに対するアクセス許可を指定するように設計されているが、領域記述子は図5に示されているものから著しく異なるフォーマットを有してもよいことが理解されるべきである。例えば、領域記述子フィールドのいくつかは異なる長さを有してもよく、かつ/または異なるワードおよび/もしくは1つのワードにおける異なるロケーションに配置されてもよい。加えて、領域記述子500は8つのDACに対するアクセス許可を指定するように適合されるが、領域記述子は8つよりも多いまたは少ないDACに対するアクセス許可を指定してもよいことが理解されるべきである。
【0065】
図5の例示的な実施形態では、領域記述子500は4つの32ビットワード502、503、504、505を備える。第1のワード502は、共有システムリソースの領域の開始アドレスのためのフィールド510を備える。より詳細には、フィールド510は、共有システムリソースの0−モジュロ(modulo)−32バイトの開始アドレスの最上位ビットを定義することができる。同様に、第2のワード503は、共有システムリソースの領域の終了アドレスのためのフィールド511を備える。より詳細には、フィールド511は、共有システムリソースの0−モジュロ−32バイトの終了アドレスの最上位ビットを定義することができる。開始および終了アドレスはともに、共有システムリソースによって包含されるアドレスの範囲を決定する。
【0066】
領域記述子500は、第3のワード504も備え、第3のワード504は、デフォルトアクセス許可フィールド520、 521、 522、 523、 524、 525、 526、 527を備える。デフォルトアクセス許可フィールド520〜527の各々は、単一のDAC(例えば、図1のDAC102〜104のうちの1つ)に対するデフォルトアクセス許可を含むことができる。いくつかのデフォルトアクセス許可フィールド(例えば、フィールド524〜527)は、単純に、読み出し(R)および書き込み(W)許可フィールドを備え、これらは図5においては「DyRE」(DACy読み出しイネーブル用)および「DyWE」(DACy書き込みイネーブル用)のフォーマットを有するものとして示されている。読み出し許可は、オペランド(データ)フェッチを使用して、参照されるメモリアドレスにアクセスできることを指す。書き込み許可は、記憶(データ)命令を使用して、参照されるメモリアドレスを更新できることを指す。デフォルトアクセス許可フィールド524〜527は、非プロセッサタイプのDAC(例えば、データ移動エンジンおよび他のモジュール)に対する読み出しおよび書き込み許可を定義するのによく適している。一実施形態によれば、DyREビットが領域記述子500においてセットされると、MPU(例えば、図1のMPU110)は、対応するDAC(すなわち、DACy)が、図6とともにより詳細に論じられるように、そのような許可が対応するセマフォの状態に基づいて変更されない限り、読み出し操作を実行することを許可することになる。DyREビットがクリアされると、対応するDACによって試行されるいかなる読み出しも、(例えば、アクセスエラーによって)終了し、読み出しは実行されない。同様に、DyWEビットが領域記述子500においてセットされると、MPUは、対応するDAC(すなわち、DACy)が、同じく図6とともにより詳細に論じられるように、そのような許可が対応するセマフォの状態に基づいて変更されない限り、書き込み操作を実行することを許可することになる。DyWEビットがクリアされると、対応するDACによって試行されるいかなる書き込みも、(例えば、アクセスエラーによって)終了し、書き込みは実行されない。
【0067】
デフォルトアクセス許可フィールド524〜527と対照的に、デフォルトアクセス許可フィールド(例えば、フィールド520〜523)は、プロセッサタイプのDAC(例えば、プロセッサコア)のために構成されることができ、従って、さらに実行(X)許可フィールドを備えることができる。実行許可は、命令フェッチを使用して、参照されるメモリアドレスを読み出すことができることを指す。プロセッサタイプのDACは、ユーザモード(UM)および管理者モード(SM)において操作されることができ、従って、これらのDACに対するデフォルトアクセス許可は、図5に示されるように、異なる複数のUMおよびSM許可を備えることができる。「ユーザモード」は、特定のシステム制御機能および入出力動作を実行することを禁止される、プロセッサの動作モードを指し、「管理者モード」は、特定のシステム制御機能および入出力動作を実行することができる、プロセッサの動作モードを指す。ユーザモードと管理者モードとの間には他の差異も存在し得る。一実施形態では、ユーザモードにおいて、アクセス許可ビットとアクセスタイプとの間に一対一の対応が存在する(例えば、読み出しイネーブル、書き込みイネーブル、および実行イネーブルの各々に対して1ビットが割り当てられる)。逆に、管理者モードでは、許可は2ビットにおいて符号化され得る。例えば、「00」の値は読み出し、書き込み、および実行が許可されることに対応することができ、「01」の値は読み出しおよび実行が許可されるが書き込みは許可されないことに対応することができ、「10」の値は読み出しおよび書き込みが許可されるが実行が許可されないことに対応することができ、「11」の値は、アクセス制御がユーザモードにおいてDACに対して定義されたものと同じである状態に対応することができる。
【0068】
上記に加えて、一実施形態では、プロセス識別子イネーブルフィールド(PE)が、プロセッサタイプアクセス許可フィールド(520〜523)に含まれることができる。DyPEビットがセットされると、領域記述子の対応するフィールドにおいて(例えば、領域記述子500の第4のワード505のフィールド530、532において)定義されるプロセス識別子およびマスクが領域ヒット評価内に備えられる。クリアされると、領域ヒット評価はプロセス識別子またはマスクと関連がなくなる。
【0069】
領域記述子500の第4のワード505は、プロセス識別子(PID)フィールド530、PIDマスクフィールド532、セマフォ識別子(SEM ID)フィールド534、セマフォイネーブル(SEME)フィールド536、および領域記述子有効(VLD)フィールド538を備える。加えて、第4のワード505は、1つまたは複数の確保済み(または割り当てられていない)ビットまたはフィールド540を備えることができる。
【0070】
PIDフィールド530は、プロセス識別子を収容するのに使用されることができ、プロセス識別子は、領域記述子において現在のアクセスがヒットするか否か(例えば、DyPEビットがPEフィールドにおいて(例えば、第3のワード504において)セットされるとき)の判定のために備えられてもよい。このフィールドは、PIDマスクフィールド532内のPIDマスクと組み合わされる。PIDマスクフィールド532はマスキング能力を提供し、それによって、複数のプロセス識別子が領域ヒット判定の一部として備えられることができる。例えば、PID/PIDマスクの組み合わせとDACから駆動される現在のPID値とを比較するとき、PIDマスクフィールド532におけるPIDマスクビット「i」がアサートされることは、PIDフィールド530内のPID「i」ビットが無視されることを意味する。イネーブルされると、現在のPIDに対するPID/PIDマスク比較は、領域記述子「ヒット」を判定するために、開始および終了アドレス比較と組み合わされる。
【0071】
セマフォ識別子フィールド534は、いずれのセマフォが(例えば、図2のセマフォレジスタ202〜204のうちのいずれが)領域記述子に関連付けられるかのインジケータを記憶するのに使用される。例えば、セマフォ識別子は、セマフォレジスタ、またはセマフォの各々の特異なインジケータとなり得る何らかの他の値に関連付けられるアドレスオフセットに対応することができる。下記により詳細に説明されるように、MPU(例えば、図6のMPU600)は、デフォルトアクセス許可への可能性のある変更を行うプロセスの間にセマフォ識別子フィールド534において示されるセマフォレジスタからのセマフォ信号を評価するアクセス評価回路(例えば、図6のアクセス評価論理部610、612)を備える。SEMEフィールド536は、対応する領域記述子のアクセス評価論理部においてセマフォが備えられることを可能にするために使用される。一実施形態によれば、「適切にイネーブルされる」セマフォは、そのために、対応する領域記述子においてSEMEフィールド536がアサートされるセマフォである。
【0072】
領域記述子500は複数のワードを備え、従って領域記述子の更新は(例えば、図6の領域記述子レジスタ602、604における領域記述子を更新するための)複数の書き込み動作を備えることになるため、領域記述子の更新中に一貫性が維持されることを確実にするためにVLDフィールド538が提供される。一実施形態では、VLDフィールド538は、セットされると、領域記述子500全体が一貫性を持った値を含むことを示すフラグを備える。(例えば、1)VLDフラグを直接クリアするソフトウェアによって、または2)MPUハードウェアによって、これは通常最初の3つのワード502〜504のいずれかが書き込まれているときに発生する、のいずれかで)フラグがクリアされると、MPUはアクセス許可判定を為すときに領域記述子に依存することを回避することになる。
【0073】
図6は、例示的な実施形態によるMPU600(例えば、図1のMPU110)の簡略化されたブロック図である。MPU600は、共有システムリソースの指定された領域を、これらの指定領域に入るアドレスを含み得るDAC(例えば、図1のDAC102〜104)からのアクセス要求を評価することによって、保護するように構成される。より詳細には、共有システムリソースの各保護領域について、MPU600は、セマフォ信号およびその領域に対応する領域記述子に基づいてDACからのアクセス要求を認可または拒否するように構成されることができる。
【0074】
既に論じたように、共有システムリソースは、領域記述子(例えば、図5の領域記述子500)を用いて定義されることができ、領域記述子は、(例えば、図5のセマフォ識別子フィールド534における)領域記述子に関連付けられるセマフォの指定および(例えば、図5のSEMEフィールド536における)セマフォイネーブルインジケータも含み得る。MPU600は、複数、R個の領域記述子602、604を備え、ここで、領域記述子は領域記述子レジスタ602、604の各々に記憶されることができる。MPU600は、一実施形態では、アクセス評価回路(例えば、複数のアクセス評価論理ブロック610、612)、アドレスデコード論理部630、およびマルチプレクサ632(MUX)も備える。特定の実施形態によれば、MPU600は、各々16個の、領域記述子レジスタ602、604およびアクセス評価論理ブロック610、612を備える。しかしながら、他の実施形態では、MPU600は、より多いまたはより少ない領域記述子レジスタ602、604およびアクセス評価論理ブロック610、612を備えてもよいことが理解されるべきである。
【0075】
一実施形態によれば、各領域記述子レジスタ602、604は、4ワードフォーマットの領域記述子(例えば、図5の領域記述子500)に対応する4つのワードから成る。代替の実施形態では、領域記述子レジスタ602、604と領域記述子とは異なるフォーマット(例えば、ワードがより多いまたはより少ないなど)を有してもよい。システム起動時または通常動作中に、MPU600が保護する役割を担う共有システムリソースの各領域に関連付けられる領域記述子は、領域記述子レジスタ602、604において書き込まれる。より詳細には、MPU600を構成する役割を担うDACは、各領域記述子レジスタ602、604のワード(例えば、図5のワード502〜505)を識別するオフセットを有する書き込みアドレスを用いて、一連の書き込み動作をMPU600に対して実行する。DACは書き込みアドレス(またはアドレスオフセット)および領域記述子ワードを、システムバス(例えば、図1のシステムバス106)および周辺機器用バス626(例えば、図1の周辺機器用バス126)を介してMPU600に搬送する。アドレスデコード論理部630は、アドレスを解析し、アドレスが領域記述子レジスタ602、604に対応するか否かを判定するように構成される。アドレスが領域記述子レジスタ602、604に対応する場合、領域記述子ワードは対応する領域記述子レジスタ602に書き込まれる。一実施形態によれば、領域記述子レジスタ602、604に記憶されている領域記述子は、マルチプレクサ632および周辺機器用バス626を介して読み出されることもできる。
【0076】
領域記述子レジスタ602、604が領域記述子を用いて書き込まれた後、DACは共有システムリソースへのアクセスを試みることができる。より詳細には、DAC(例えば、図1のDAC102〜104のうちの1つ)が共有システムリソース(例えば、図1のRAM112、周辺機器120、122、またはフラッシュ114におけるアドレス指定可能なロケーション)に対するアクセスを行うよう試みるとき、DACはシステムバス606(例えば、図1のバス106)上でその共有システムリソースのためのアドレスを提供する。DACは、システムバス606上でその固有のバスマスタ番号も提供する。
【0077】
アクセス評価論理部610、612は、システムバス606からアドレスおよびバスマスタ番号を、および、領域記述子レジスタ602、604から領域記述子を受け取る。加えて、アクセス評価論理部610、612は、セマフォモジュール(例えば、図1、図2のセマフォモジュール108、200)から、MPU600とセマフォモジュールとの間のハードウェア接続650、652(例えば、図1、図2、図7の接続130、230〜232、750)を介してセマフォ信号を受け取る。
【0078】
アクセス要求がシステムバス606上で提示される場合、アクセス評価論理部610、612は最初に、アクセス要求に関連付けられるアドレスが、MPU600によって保護される共有システムリソースの領域(すなわち、領域記述子レジスタ602、604における領域記述子の少なくとも1つによって定義される領域)に入るか否かの判定を行う。この判定とともに、各領域レジスタについて、アクセス評価論理部610、612は、対応する領域記述子レジスタ602、604から開始アドレスおよび終了アドレスを受け取り、アクセス評価論理部610、612は、アクセス要求により指定されるアドレスが、領域記述子の及ぶアドレスの範囲(すなわち、開始アドレスと終了アドレスとの間)に入るか否かを判定する。
【0079】
アクセス要求に関連付けられるアドレスが特定の領域記述子レジスタ602、604に記憶されている特定の領域記述子の及ぶアドレスの範囲内に入るとき、アクセス評価論理部610、612は、アクセス要求を行ったDACが保護されている共有システムリソースに対するアクセスを実行することを許可されているか否かを判定する。より詳細には、DACがシステムバス606上で提供したバスマスタ番号に基づいて、アクセス評価論理部610、612は、DACが、アクセス要求により指定される、要求されているアクセスタイプ(例えば、読み出し、書き込み、または実行)のアクセスの実行を許可されているか否かを判定する。
【0080】
一実施形態によれば、この判定とともに、アクセス評価論理部610、612は、対応する領域記述子(すなわち、対応する領域記述子レジスタ602、604において記憶されている)により指定されるデフォルトアクセス許可、および、アクセス要求アドレスが入る領域に関連付けられる、適切にイネーブルされるセマフォ(すなわち、対応する領域記述子レジスタ602、604の領域記述子により指定されるセマフォおよびその関連イネーブル)に対応するセマフォ信号(すなわち、ハードウェア接続650、652により搬送される信号)に基づいて、「有効アクセス許可」を生成する。換言すれば、アクセス評価論理部610、612は、セマフォモジュールから受け取られたセマフォ信号(すなわち、ハードウェア接続650、652により搬送される信号)、および、領域記述子レジスタ602、604からのデフォルトアクセス許可を解析するとともに、セマフォ信号に基づいてデフォルトアクセス許可を変更することによって、DACに対する有効アクセス許可を生成するように構成されることができる。一実施形態では、アクセス評価論理部610、612は、有効アクセス許可を生成するように構成される、有効アクセス許可生成論理部640、642を備える。
【0081】
図7は、例示的な実施形態による有効アクセス許可生成論理部700(例えば、図6の有効アクセス許可生成論理部640、642)の簡略化されたブロック図である。有効アクセス許可生成論理部700は、デフォルトアクセス許可720、727とは異なる場合がある有効アクセス許可760、762を生成するために、領域記述子レジスタにおいてコード化されているデフォルトアクセス許可720、727を、セマフォ信号に基づいて変更するように構成されることができる。これを試みるために、有効アクセス許可生成論理部700は、領域記述子レジスタ(例えば、図6の領域記述子レジスタ602)、セマフォモジュールとMPUとの間のハードウェア接続750(例えば、図1、図2、図6のハードウェア接続130、 230〜232、 650、 652)、およびシステムバス752(例えば、図1、図6のシステムバス106、606)に結合される。有効アクセス許可生成論理部700は、一実施形態では、デコーダ702、および、そのデフォルトアクセス許可720、727が領域記述子レジスタにおいてコード化されている各DACのための有効許可論理ブロック704、706を備える。
【0082】
関連付けられる領域記述子におけるSEMEフラグ735(例えば、図5のSEME536)によって示されるように、有効アクセス許可生成論理部700に関連付けられるセマフォがイネーブルされていないとき、有効アクセス許可生成論理部700は完全にバイパスされることができるか、または有効アクセス許可生成論理部700は、変更することなく(例えば、セマフォの状態にかかわらず)単純にデフォルトアクセス許可720、727を出力することができる。しかしながら、SEMEフラグ735によって示されるように、セマフォがイネーブルされていた場合、有効アクセス許可生成論理部700は、デフォルトアクセス許可720、727を変更することができる。
【0083】
既に示唆したように、ハードウェア接続750においてセマフォモジュールによって搬送されるセマフォ信号は、複数のセマフォに関連付けられるセマフォ信号を備えることができる。しかしながら、特定の領域記述子に関連付けられるセマフォからのセマフォ信号のみが、その領域記述子に関する、有効アクセス許可生成論理部700によって実行される解析に関連する。従って、デコーダ702は、それが結合される領域記述子レジスタからセマフォ識別子734(例えば、図5のセマフォ識別子534)を受け取るように構成される。SEMEフラグ735(例えば、図5のSEMEフラグ536)が、セマフォがイネーブルされていることを示すとき、デコーダ702は、ハードウェア接続750において提供される、識別されたセマフォに対応するセマフォ信号を選択する。
【0084】
選択されたセマフォ信号、および、アクセスを試みているDAC(例えば、システムバス752によりバスマスタ番号によって示されるような)の識別情報に基づいて、デコーダ702はさらに、イネーブル線740、742によりイネーブル/ディセーブル信号を生成するように構成され、この信号は有効許可論理ブロック704、706に提供される。有効許可論理ブロック704、706は、イネーブル/ディセーブル信号およびデフォルトアクセス許可720、727に基づいて有効許可760、762を生成するように構成される。一実施形態によれば、有効許可論理ブロック704、706は、その許可が領域記述子レジスタにおいてコード化されている各DACについて、デフォルトアクセス許可フィールド(例えば、図5のデフォルトアクセス許可フィールド520〜527)に関連付けられる。既に論じたように、いくつかのデフォルトアクセス許可フィールド(例えば、図5のフィールド520〜523)は読み出し、書き込み、および実行許可フィールドを備えることができ、一方で他のデフォルトアクセス許可フィールド(例えば、図5のフィールド524〜527)は単純に読み出しおよび書き込み許可フィールドを備えることができる。有効許可論理ブロック704は、読み出し、書き込み、および実行許可を含むデフォルトアクセス許可フィールド720を評価するように構成される論理ブロックに対応し、有効許可論理ブロック706は、読み出しおよび書き込み許可のみを含むデフォルトアクセス許可フィールド727を評価するように構成される論理ブロックに対応する。有効許可論理ブロックは、任意の可能な組み合わせのアクセス許可タイプを評価するように構成されることができること、および、図7の例は説明を目的として提供されており、限定ではないことが理解されるべきである。
【0085】
一実施形態によれば、各有効許可論理ブロック704、706は、特定のDACに関して指定される各タイプのデフォルトアクセス許可を評価するように構成される論理部を備える。論理部に提供されるイネーブル/ディセーブル信号740、742の状態に基づいて、論理部は、対応するデフォルトアクセス許可と同じ有効アクセス許可を生成するか(例えば、イネーブル/ディセーブル信号がイネーブル状態にあるとき)、または、対応するデフォルトアクセス許可にかかわらず、特定のタイプのアクセスが拒否されることを示す有効アクセス許可を生成する(例えば、イネーブル/ディセーブル信号がディセーブル状態にあるとき)かのいずれかに構成される。従って、特定のDACに対するデフォルトアクセス許可が、特定のアクセスタイプが許可されることを指定する場合であっても、そのアクセスタイプに対する有効アクセス許可は、イネーブル/ディセーブル信号がディセーブル状態にある場合はそのアクセスタイプがそのDACに関しては拒否されることを指定することになる。
【0086】
一実施形態では、各有効許可論理ブロック704、706は、DACに対するデフォルトアクセス許可720、727により指定される各アクセスタイプのための論理部(例えば、ANDゲート736、または、等価の結果を生成することが可能な他の論理部)を備える。各ANDゲート736は、デフォルトアクセス許可入力(例えば、入力737)およびイネーブル入力(例えば、入力738)を有する。領域記述子レジスタから特定のアクセスタイプのデフォルトアクセス許可720を示す信号を受け取るために、デフォルトアクセス許可入力737が結合される。逆に、イネーブル/ディセーブル信号740、742を受け取るために、イネーブル入力738が結合される。デコーダ702が、セマフォ信号がそのアクセス許可が評価されているDACが領域記述子に関連付けられる適切にイネーブルされたセマフォをロックしたと示していると判断するとき、イネーブル/ディセーブル信号740、742はイネーブル状態にある。その場合、ANDゲート736は、デフォルトアクセス許可720、727においてコード化されている特定のアクセスタイプのデフォルトアクセス許可720、727を、そのアクセスタイプに対して有効なアクセス許可760、762であると伝達する。逆に、デコーダ702が、セマフォ信号がそのアクセス許可が評価されているDACが領域記述子に関連付けられる適切にイネーブルされたセマフォをロックしたと示していないと判断するとき、イネーブル/ディセーブル信号740、742はディセーブル状態にある。その場合、ANDゲート736は、デフォルトアクセス許可720、727においてコード化されている特定のアクセスタイプのデフォルトアクセス許可720、727を、そのアクセスタイプに対して有効なアクセス許可760、762であると伝達しない。代わりに、ANDゲート736は、そのアクセスタイプがそのDACに関して拒否されたことを示す有効アクセス許可760、762を伝達する。
【0087】
例えば、デコーダ702によって選択されたセマフォ信号が、適切にイネーブルされたセマフォがアイドル状態(例えば、図3の状態302)にあることを示すとき、DACはいずれも現在セマフォをロックしていない。DACは共有システムリソースのその割り当てられる領域がアクセされる前にセマフォをロックすることを要求されるため、セマフォがアイドル状態にある間はその領域に対するいかなるアクセスも拒否される。従って、一実施形態では、選択されたセマフォ信号が、適切にイネーブルされたセマフォがアイドル状態にあると示すとき、デコーダ702は、すべての有効許可論理ブロック704、706についてイネーブル線740、742においてディセーブル信号を生成する。これは、有効許可論理ブロック704、706に、デフォルトアクセス許可720、727が対応する領域記述子レジスタにより指定されている場合があるにもかかわらず、DACのいずれもが要求されたアクセスを実行するための適切なアクセス許可を有していないことを示す有効許可760、762を生成させる効果を有する。
【0088】
逆に、DACが適切にイネーブルされたセマフォをロックしているとき(すなわち、セマフォが図3の状態304、306のうちの1つのようなロック状態にある)、セマフォ信号はセマフォをロックしたDACの識別情報を伝達するかまたは示す。このような場合、デコーダ702は、セマフォ信号において識別されるDACに対応するイネーブル線740,742のいずれに対してもイネーブル信号を生成し、他のすべてのイネーブル線740、742に対してディセーブル信号を生成する。これは、有効許可論理ブロック704、706のうちの1つ(すなわち、セマフォをロックしたDACに対するデフォルトアクセス許可720、727に結合されるブロック704、706)に、そのDACに対する対応するデフォルトアクセス許可720、727と同じ、DACに対する有効許可760、762を生成させる効果を有する。加えて、これは、すべての他の有効許可論理ブロック704、706に、デフォルトアクセス許可720、727が対応する領域記述子レジスタにより指定されている場合があるにもかかわらず、(セマフォをロックしているものを除く)他のDACのいずれもがいかなる要求されたアクセスを実行するためのアクセス許可も有していないことを示す有効許可760、762を生成させる効果を有する。このようにして、セマフォに関連付けられるメモリ領域のハードウェアの施行がMPUによって提供される。
【0089】
本明細書に記載される構成は、共有システムリソースが、それらが一貫性を持たなくなる(例えば、複数のDACが共有システムリソースの領域にシリアル化されていない書き込みを行うとき)ように変更される状況を回避するように意図されている。従って、一実施形態では、特定のDACがセマフォをロックしたとき、すべての他のDACの有効アクセス許可は無視され、上記のようにすべてのアクセスタイプに関するアクセス権が拒否される。同様に、セマフォがアイドル状態にあるとき、すべてのDACの有効アクセス許可が、すべてのアクセスタイプについて無視される。一番の関心事は、共有システムリソースの領域への一貫性を持たない書き込みである。いくつかの事例において、セマフォをロックしていなかったDACに、読み出しタイプのアクセス(および場合によっては実行タイプのアクセス)を許可することが有益であり得る(または、少なくとも害が少ないかもしくは害がない)。従って、代替の実施形態では、或るアクセスタイプのみ(例えば、書き込みタイプのアクセス)が、有効許可論理ブロック704、706によって無視されてもよく、一方で他のアクセスタイプは無視されない(例えば、これらのアクセスタイプに対する有効許可は、対応するデフォルトアクセスタイプと同じものが生成される)。本明細書の記載に基づいて、有効アクセス許可を生成するために、システムが、デフォルトアクセス許可により指定された特定のアクセスタイプのみを潜在的に変更し得ることを企図するように、記載されている装置および方法の実施形態を変更する方法が、当業者には理解されよう。
【0090】
既に論じたように、デフォルトアクセス許可は、各アクセスタイプと、そのアクセスタイプが許可または拒否されているか否かのインジケータ(例えば、各アクセスタイプに対するイネーブルビット)との間の一対一対応によって提供されることができる。逆に、デフォルトアクセス許可は符号化されてもよい。このような場合、符号化デフォルトアクセス許可に対応する有効許可論理ブロックは、各アクセスタイプと、そのアクセスタイプが許可または拒否されているか否かのインジケータ(例えば、このインジケータはANDゲート736に提供される)との間の一対一対応を伝達するために符号化アクセス許可をデコードするように構成される追加のデコード回路(図示せず)を備えることができる。
【0091】
図8は、例示的な実施形態による、適切にイネーブルされたセマフォによって実施されMPUによって保護される共有システムリソースに対するアクセス要求を許可または拒否するための方法のフローチャートである。簡潔にするために、本方法は、単一の領域記述子(下記の領域記述子z)によって定義される共有システムリソースの単一領域の保護の文脈において記載される。この例では、領域記述子は、特定のセマフォ(下記のセマフォx)が保護領域に関連付けられる(すなわち、セマフォの識別情報がその領域記述子により指定される)こと、および、特定のDAC(下記のDACy)が領域記述子によって包含される領域へのアクセス試行を行うことを指定する。本明細書の記載に基づいて、本方法は、上記のような、共有システムリソースの複数の領域が複数のセマフォを使用して保護されることを可能にし、ここで、アクセスは複数のDACによって要求されることができるシステムを企図するように拡張可能であることを当業者は理解されよう。
【0092】
本方法は、ブロック802において、MPU(例えば、図6のMPU600)の領域記述子レジスタ(例えば、図6のレジスタ602、604のうちの1つ)の中に領域記述子zを記憶することによって開始する。このプロセスは、既に論じたように、例えば、システムの起動、リセット、および/または通常システム動作の文脈において実行されることができ、領域記述子レジスタへの一連の連続したワード幅の書き込みを実行することを伴う場合がある。この例によれば、領域記述子は、セマフォxに対する(例えば、図5のセマフォ識別子フィールド534における)セマフォ識別子と、セマフォイネーブルフィールド(例えば、図5のSEME536)と、DACyに対する(例えば、図5のデフォルト許可フィールド520〜527における)デフォルトアクセス許可を備える、複数のDACに対するデフォルトアクセス許可とを備える。
【0093】
システムが構成されると、ブロック804において、セマフォモジュール(例えば、図1のセマフォモジュール108)がセマフォモジュールとMPUとの間のハードウェア接続(例えば、図1のハードウェア接続130)によりセマフォ信号を継続的に提供する。セマフォ信号は、領域記述子zによって定義される領域に割り当てられるセマフォxの状態を備える、領域に割り当てられる各セマフォの状態を伝達する。
【0094】
任意の時点で、ブロック806において、MPUは、DACyからアクセス要求を受け取ることができ、MPUは、アクセス要求が、領域記述子zによって包含されるアドレスの範囲内に入るアドレスを指定していると判定することができる。アクセス要求は特定のアクセスタイプ(例えば、読み出し、書き込み、または実行)も指定する。
【0095】
ブロック808において、セマフォが領域記述子zによって包含されるアドレスの範囲についてイネーブルされているとき(例えば、図5のSEMEフィールド536において示されているように)、MPUは、領域記述子zにおいてコード化されているアクセス許可を有するすべてのDACに対する有効アクセス許可を生成する。既に論じたように、これは、MPU(より具体的には図7のデコーダ702)が、セマフォモジュールからセマフォxに対応するセマフォ信号を選択すること、および、有効アクセス許可を生成するように構成されるMPU論理部(例えば、図7の有効許可論理ブロック704、706)にイネーブル/ディセーブル信号を提供することを伴う。既に論じたように、セマフォ信号がセマフォxがアイドル状態にあることを示すとき、一実施形態では、イネーブル/ディセーブル信号のすべてがディセーブル状態にあるように生成される。逆に、セマフォ信号が、DACがセマフォxをロックしたと示すとき、そのDACに対するイネーブル/ディセーブル信号はイネーブル状態にあるように生成され、一方ですべての他のDACに対するイネーブル/ディセーブル信号はディセーブル状態にあるように生成される。それに応じて、セマフォxをロックしたDACに対する有効アクセス許可は、そのDACに対するデフォルトアクセス許可と同じであることになり、すべての他のDACに対する有効アクセス許可は、すべてのタイプのアクセスが拒否されることを示すことになる。代替の実施形態では、上述のように、すべての他のDACに対する有効アクセス許可は、何らかのタイプのアクセス(例えば、読み出しタイプ)が、対応するデフォルトアクセス許可と同じであるように許可され得ることを示してもよい。セマフォがイネーブルされていない場合、有効アクセス許可は、デフォルトアクセス許可と等しいようにセットされる。
【0096】
ブロック810において、DACyに対するアクセス許可(すなわち、セマフォがイネーブルされているときは有効アクセス許可、またはセマフォがイネーブルされていないときはデフォルトアクセス許可)がDACyからのアクセス要求により指定されるアクセスタイプを許可するか否かの判定が(例えば、MPU600によって)為される。アクセスタイプを許可する場合、MPUはブロック812において、要求されたアクセスが行われることを許可する。一実施形態によれば、これは、MPUが、要求されたアクセスが許可されたことを示す制御信号を、共有システムリソースに関連付けられるコントローラに提供することを含む。例えば、バスプロトコルが、MPUを通じてルーティングされる、各サイクルおよび各転送の有効性を定義する制御信号(または制御ベクトル)を提供することができる。MPUが、アクセスが許可された(すなわち、有効アクセス許可が要求されたアクセスを許可した)と判定すると、MPUは、共有システムリソースのコントローラに制御信号を提供することができる。逆に、MPUが(ブロック810において)、DACyに対する有効アクセス許可が、DACyからのアクセス要求により指定されるアクセスタイプを許可しないと判定すると、ブロック814において、MPUはアクセスを拒否(または禁止)することができる。一実施形態によれば、これは、MPUが、要求されたアクセスが拒否されたことを示す制御信号を、共有システムリソースに関連付けられるコントローラに提供することを含む。例えば、上記のバスプロトコルが実施されると、MPUは、共有システムリソースのコントローラへの制御信号の通常送信を禁止することができる(例えば、MPUは代わりに「アイドル」制御信号をコントローラに渡してもよい)。要求されたアクセスが評価され、許可または拒否のいずれかが為された後、本方法は図示されるように反復されることができる。
【0097】
図9は、例示的な実施形態による、セマフォによって影響を与えられるメモリ保護ユニットを備える電子システム(例えば、図1のシステム100)を製造するための方法のフローチャートである。説明される方法は、一実施形態によるシステムと従来のシステムとの間の実際のハードウェアの差異をさらに明らかにするように意図されている。従って、本方法は、1つまたは複数の半導体基板上の能動または受動構成要素の製造に関するさまざまな半導体製造プロセスを伴うが、これらの半導体製造プロセスに関連する詳細は本明細書には記載されない。本明細書の記載に基づいて、下記に記載するさまざまな方法工程を実行するために従来の半導体製造プロセスを適用する方法が当業者には分かるであろう。加えて、特定の順序の製造工程が図9において記載および図示されているが、工程の順序は異なってもよいこと、および/または工程のいくつかは同時に実行されてもよいことが理解されるべきである。
【0098】
方法は、ブロック902において、1つまたは複数の半導体基板を提供することによって開始する。すべてのシステム構成要素(例えば、図1のDAC102〜104、システムバス106、セマフォモジュール108、MPU110、RAM112、フラッシュアレイ114、周辺機器モジュール120、122、および周辺機器用バス124、126)が同じ基板上に備えられるシステム・オン・チップでは、単一の半導体基板が提供されることができる。逆に、システム・イン・パッケージまたはシステム構成要素が別個にパッケージされるシステムでは、複数の半導体基板が提供されることができる。
【0099】
ブロック904、906、および908において、複数のDAC(例えば、DAC102〜104)、通信バス(例えば、バス106、124、126)、1つまたは複数のスレーブデバイス(例えば、RAM112、フラッシュアレイ114、周辺機器モジュール120、122)、セマフォモジュール(例えば、図1、図2のセマフォモジュール108、200)、およびMPU(例えば、図1、図6のMPU110、600)が、従来の半導体処理技法を使用して基板(複数の場合もあり)上に製造される。既に詳細に記載したように、セマフォモジュールは、セマフォ状態レジスタ(例えば、図2のセマフォ状態レジスタ202〜204)を含み、MPUは、領域記述子レジスタ(例えば、図6の領域記述子レジスタ602、604)およびアクセス評価論理部(例えば、図6のアクセス評価論理部610、612)を備える。
【0100】
ブロック910において、ハードウェア接続(例えば、図1、図2、図6、図7のハードウェア接続130、230〜232、650、652、750)が、セマフォモジュールにおけるセマフォ状態レジスタ(複数の場合もあり)とMPUにおけるアクセス評価論理部との間に提供される。システム・オン・チップでは、ハードウェア接続は、システムがその上に製造される単一の基板に制限され得る。セマフォモジュールおよびMPUが異なる基板上に製造されるシステム・イン・パッケージでは、ハードウェア接続は、基板間に延在する導体、ならびに、セマフォモジュールおよびMPU基板上の導体を備える。セマフォモジュールおよびMPUが別個にパッケージされたデバイスにおいて備えられるシステムでは、ハードウェア接続は、セマフォモジュールからセマフォモジュールパッケージのパッケージ相互接続(例えば、ピン、ランド、ボール、バンプなど)までの導体、および、MPUからMPUパッケージのパッケージ相互接続までの導体を備える。その上に別個にパッケージされたセマフォモジュールおよびMPUが設置されるプリント回路基板は、セマフォモジュールとMPUとの間のハードウェア接続を確立するために、対応するパッケージ相互接続間の追加の導体を備える。上記に詳細に論じたように、ハードウェア接続は、セマフォの状態が、ソフトウェアの介在なしにMPUに直接伝達され、従って、MPUがセマフォ状態に基づいて有効アクセス許可を生成することを可能にする。さらなる処理工程の後、方法は終了することができる。
【0101】
このように、共有システムリソースに対するアクセスを制御するための方法および装置のさまざまな実施形態が上記で説明されてきた。電子システムの一実施形態は、複数のDACと、セマフォモジュールと、MPUとを備える。複数のDACの各々は、共有システムリソースに対するアクセスを要求するアクセス要求を発行するように構成される。領域記述子は、共有システムリソースに関連付けられる。セマフォモジュールは、共有システムリソースのためのセマフォを実装するとともに、複数のDACが存在する場合は、そのいずれが共有システムリソースについてのセマフォをロックしたかを示すセマフォ信号を生成するように構成される。MPUは、セマフォ信号および領域記述子に基づいてアクセス要求を認可または拒否するように構成される。
【0102】
MPUの一実施形態は、領域記述子レジスタおよびアクセス評価論理部を備える。領域記述子レジスタは領域記述子を記憶するためのものである。領域記述子は、共有システムリソースについて、共有システムリソースのためのアドレス範囲、および、複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可を指定する。アクセス評価論理部は領域記述子レジスタに結合される。アクセス評価論理部は、デフォルトアクセス許可およびセマフォ信号を受け取るように構成され、セマフォ信号は、存在する場合は、複数のDACのいずれが共有システムリソースに関連付けられるセマフォをロックしたかを示す。アクセス評価論理部は、セマフォ信号に基づいてデフォルトアクセス許可を変えることによって複数のDACに対する有効アクセス許可を生成するとともに、有効アクセス許可に基づいて複数のDACが要求されたアクセスを実行することを許可されているか否かを判定するようにも構成されることができる。
【0103】
複数のDACを備える電子システムにおいて共有システムリソースへのアクセスを提供するための方法の一実施形態は、共有システムリソースのための領域記述子を領域記述子レジスタに記憶することを備える。領域記述子は、複数のDACの各々に対するデフォルトアクセス許可を指定し、領域記述子は、共有システムリソースに関連付けられるセマフォを識別する。本方法は、セマフォモジュールとのハードウェア接続を通じて、存在する場合は、共有システムリソースに関連付けられるセマフォをロックしたDACの識別情報を示すセマフォ信号を受け取ることと、デフォルトアクセス許可およびセマフォ信号に基づいて複数のDACに対する有効アクセス許可を生成することとをさらに備える。セマフォ信号が、特定のDACがセマフォをロックしたことを示す場合、他のDACに対するデフォルトアクセス許可がアクセスが許可されることを指定している場合であっても、他のDACに対しては共有システムリソースに対するアクセスが拒否されることを示すための有効アクセス許可が生成される。
【0104】
さまざまな実施形態の原理が特定のシステム、装置、および方法に関連して上記で説明されてきたが、この説明は例示のみを目的として為されており、本発明の主題の範囲に対する限定としてではないことは明瞭に理解されたい。さらに、本明細書において採用されている表現または専門用語は説明を目的としており、限定ではない。
【0105】
特定の実施形態の上記の記載は、他者が、現在の知識を適用することによって、一般的な概念から逸脱することなくさまざまな用途のためにそれを容易に変更および/または適合することができるだけ十分にさまざまな実施形態の一般的な性質を公開している。従って、このような適合および変更は開示されている実施形態の均等物の意図および範囲内にある。本発明の主題は、すべてのこのような代替形態、変更形態、均等物、および変形形態を、添付の特許請求の範囲の精神および広い範囲内に入るものとして包含する。

【特許請求の範囲】
【請求項1】
電子システムであって、
各々が共有システムリソースに対するアクセスを要求するアクセス要求を発行するように構成される複数のデータアクセス構成要素であって、前記共有システムリソースに領域記述子が関連付けられる複数のデータアクセス構成要素と、
前記共有システムリソースについてのセマフォを実装するように、および、前記複数のデータアクセス構成要素のいずれかが前記共有システムリソースについての前記セマフォをロックした場合、いずれのデータアクセス構成要素が前記共有システムリソースについての前記セマフォをロックしたかを示すセマフォ信号を生成するように構成されるセマフォモジュールと、
前記セマフォ信号および前記領域記述子に基づいて前記アクセス要求を認可または拒否するように構成されるメモリ保護ユニットとを備える、電子システム。
【請求項2】
前記セマフォモジュールは、前記セマフォをセマフォレジスタにおいて記憶される状態インジケータを有するステートマシンとして実装し、前記ステートマシンはアンロック状態および複数のロック状態を有し、前記複数のロック状態の各々は、前記セマフォをロックした前記複数のデータアクセス構成要素のうちの1つに対応し、前記セマフォ信号には前記状態インジケータが反映される、請求項1に記載の電子システム。
【請求項3】
前記セマフォモジュールは、セマフォレジスタにおいて、前記共有システムリソースがアンロックされていることのインジケータと、前記共有システムリソースをロックしたデータアクセス構成要素の識別情報のインジケータとから成る群から選択されるインジケータを記憶することによって、前記セマフォを実装する、請求項1に記載の電子システム。
【請求項4】
前記メモリ保護ユニットは、
前記領域記述子を記憶するための少なくとも1つの領域記述子レジスタであって、前記領域記述子は、前記共有システムリソースについて、前記共有システムリソースのためのアドレス範囲、および、前記複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可を指定する、少なくとも1つの領域記述子レジスタと、
前記セマフォモジュールからの前記セマフォ信号および前記少なくとも1つの領域記述子レジスタからの前記デフォルトアクセス許可を受け取るため、および、前記セマフォ信号に基づいて前記デフォルトアクセス許可を場合によって変更することによって前記複数のデータアクセス構成要素に対する有効アクセス許可を生成するためのアクセス評価回路とを備える、請求項3に記載の電子システム。
【請求項5】
前記アクセス評価回路は、前記複数のデータアクセス構成要素の各々に対して、
データアクセス構成要素に対するデフォルトアクセス許可の各アクセスタイプの論理部を備え、該論理部は、各アクセスタイプに対するデフォルトアクセス許可入力およびイネーブル入力を有し、各アクセスタイプについて、前記デフォルトアクセス許可入力は、前記少なくとも1つの領域記述子レジスタからアクセスタイプのデフォルトアクセス許可を示す信号を受け取るように結合され、前記イネーブル入力は、前記セマフォ信号が、前記データアクセス構成要素が前記セマフォをロックしたことを示す場合はイネーブル信号を受け取るように、かつ、前記セマフォ信号が、前記データアクセス構成要素が前記セマフォをロックしたことを示さない場合はディセーブル信号を受け取るように結合され、各アクセスタイプの前記論理部は、前記イネーブル信号が受け取られた場合は前記デフォルトアクセス許可を示す信号を伝達し、各アクセスタイプの前記論理部は、前記ディセーブル信号が受け取られた場合は前記アクセスタイプに関するアクセスが拒否されることを示す有効アクセス許可を伝達する、請求項4に記載の電子システム。
【請求項6】
前記アクセス評価回路は、
前記セマフォモジュールから前記セマフォ信号を受け取るように、かつ、前記セマフォがイネーブルの場合は、前記セマフォをロックした前記データアクセス構成要素のインジケータに基づいて前記イネーブル信号または前記ディセーブル信号を生成するように構成されるデコーダをさらに備え、前記セマフォをロックした前記データアクセス構成要素の前記インジケータは前記セマフォ信号により伝達される、請求項5に記載の電子システム。
【請求項7】
前記アクセス評価回路は、データアクセス構成要素によって為されたアクセス要求に関連付けられたアドレスを受け取るように構成されており、前記アクセス要求は、前記少なくとも1つの領域記述子レジスタから開始アドレスおよび終了アドレスを受け取るように、要求されるアクセスタイプを指定し、前記開始アドレスおよび前記終了アドレスは前記アクセス要求により指定される前記アドレスが前記アドレスの範囲内に入るか否かを判定するように、かつ、前記有効アクセス許可に基づいて、前記データアクセス構成要素が前記要求されるアクセスタイプの実行を許可されるか否かを判定するように前記共有システムリソースが及ぶアドレスの範囲を決定する、請求項4に記載の電子システム。
【請求項8】
前記複数のデータアクセス構成要素、前記セマフォモジュール、前記メモリ保護ユニット、および前記共有システムリソースと結合されるシステム相互接続をさらに備え、前記アクセス要求は前記複数のデータアクセス構成要素から前記システム相互接続を通じて前記メモリ保護ユニットに通信される、請求項1に記載の電子システム。
【請求項9】
セマフォレジスタとアクセス評価回路との間のハードウェア接続をさらに備え、前記ハードウェア接続は前記システム相互接続とは異なり、前記セマフォ信号は前記ハードウェア接続を通じて前記セマフォレジスタと前記アクセス評価回路との間で通信される、請求項8に記載の電子システム。
【請求項10】
前記共有システムリソースは、単一メモリロケーション、複数のメモリロケーションからなるメモリロケーションのブロック、レジスタ、複数のレジスタ、周辺メモリロケーション、および複数の周辺メモリロケーションから成る群から選択される、請求項1に記載の電子システム。
【請求項11】
メモリ保護ユニットであって、
領域記述子を記憶するための領域記述子レジスタであって、前記領域記述子は、共有システムリソースについて、該共有システムリソースのためのアドレス範囲、および複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可を指定する、領域記述子レジスタと、
前記領域記述子レジスタに結合されるアクセス評価回路であって、該アクセス評価回路は、前記デフォルトアクセス許可およびセマフォ信号を受け取るように構成されており、前記セマフォ信号に基づいて前記デフォルトアクセス許可を潜在的に変更することによって前記複数のデータアクセス構成要素に対する有効アクセス許可を生成するように、かつ、前記有効アクセス許可に基づいて前記複数のデータアクセス構成要素が要求されるアクセスの実行を許可されるか否かを判定するように前記セマフォ信号は、複数のデータアクセス構成要素のいずれが前記共有システムリソースに関連付けられるセマフォをロックしたかを示す、アクセス評価回路とを備える、メモリ保護ユニット。
【請求項12】
前記アクセス評価回路は、前記複数のデータアクセス構成要素のうちの1つのデータアクセス構成要素によって為されたアクセス要求に関連付けられるアドレスを受け取るように、かつ、前記領域記述子レジスタから開始アドレスおよび終了アドレスを受け取るように構成され、前記アクセス要求により指定される前記アドレスが前記アドレスの範囲内に入るか否かを判定するように前記開始アドレスおよび前記終了アドレスは前記共有システムリソースが及ぶアドレスの範囲を決定する、請求項11に記載のメモリ保護ユニット。
【請求項13】
前記アクセス評価回路は、前記複数のデータアクセス構成要素の各々に対して、
データアクセス構成要素に関連付けられるデフォルトアクセス許可の各アクセスタイプの論理部を備え、該論理部は、各アクセスタイプに対するデフォルトアクセス許可入力およびイネーブル入力を有し、各アクセスタイプについて、前記デフォルトアクセス許可入力は、前記領域記述子レジスタからアクセスタイプに対するデフォルトアクセス許可を示す信号を受け取るように結合され、前記イネーブル入力は、前記セマフォ信号が、前記データアクセス構成要素が前記セマフォをロックしたことを示す場合はイネーブル信号を受け取るように、かつ、前記セマフォ信号が、別のデータアクセス構成要素が前記セマフォをロックしたことを示す場合はディセーブル信号を受け取るように結合され、各アクセスタイプの前記論理部は、前記イネーブル信号が受け取られた場合は前記デフォルトアクセス許可を示す信号を伝達し、各アクセスタイプの前記論理部は前記ディセーブル信号が受け取られた場合は前記アクセスタイプに関するアクセスが拒否されたことを示す有効アクセス許可を伝達する、請求項11に記載のメモリ保護ユニット。
【請求項14】
前記アクセス評価回路は、セマフォモジュールから前記セマフォ信号を受け取るように、かつ、前記セマフォをロックした前記データアクセス構成要素のインジケータに基づいて前記イネーブル信号または前記ディセーブル信号を生成するように構成されるデコーダをさらに備え、前記セマフォをロックした前記データアクセス構成要素の前記インジケータは前記セマフォ信号により伝達される、請求項13に記載のメモリ保護ユニット。
【請求項15】
複数のデータアクセス構成要素を有する電子システムにおいて共有システムリソースに対するアクセスを提供する方法であって、
前記共有システムリソースの領域記述子を領域記述子レジスタにおいて記憶する工程であって、前記領域記述子によって前記複数のデータアクセス構成要素の各々に対するデフォルトアクセス許可が指定され、前記領域記述子によって前記共有システムリソースに関連付けられたセマフォが識別される、前記工程と、
前記共有システムリソースに関連付けられた前記セマフォをロックしたデータアクセス構成要素が存在する場合、該データアクセス構成要素の識別情報を示すセマフォ信号をセマフォモジュールとのハードウェア接続を通じて受け取る工程と、
前記デフォルトアクセス許可および前記セマフォ信号に基づいて前記複数のデータアクセス構成要素に対する有効アクセス許可を生成する工程、とを備えており、特定のデータアクセス構成要素が前記セマフォをロックしたことを前記セマフォ信号が示す場合、他のデータアクセス構成要素に対する前記デフォルトアクセス許可によってアクセスが許可されることが指定される場合であっても、前記有効アクセス許可を生成され、前記共有システムリソースに対するアクセスが拒否されることを他のデータアクセス構成要素に対して示すようになる、方法。
【請求項16】
前記領域記述子は、前記共有システムリソースに関連付けられる前記セマフォがイネーブルされるか否かのインジケータも有し、前記有効アクセス許可を生成する前記工程は、前記セマフォがイネーブルされない場合は実行されない、請求項15に記載の方法。
【請求項17】
前記有効アクセス許可に基づいて前記複数のデータアクセス構成要素からのアクセス要求を認可または拒否する工程をさらに備える、請求項15に記載の方法。
【請求項18】
セマフォレジスタにおいて、前記共有システムリソースがアンロックされているというインジケータ、および、前記共有システムリソースをロックしたロック要求データアクセス構成要素の識別情報のインジケータから成る群から選択されるインジケータを記憶する工程と、
前記セマフォ信号として、前記ロック要求データアクセス構成要素の前記識別情報の前記インジケータを生成する工程とをさらに備える、請求項15に記載の方法。
【請求項19】
前記セマフォはアンロック状態、または複数のロック状態のうちの1つにあることができ、ロック状態は前記複数のデータアクセス構成要素の各々に関連付けられ、前記方法は、
前記セマフォレジスタにおいて、前記共有システムリソースがアンロックされているという前記インジケータを記憶することによって、前記セマフォを前記アンロック状態に初期化する工程と、
前記ロック要求データアクセス構成要素から書き込み要求を受け取る工程と、
前記セマフォを、前記ロック要求データアクセス構成要素に関連付けられるロック状態に遷移させる工程とを備え、前記ロック状態に遷移させる工程は、前記セマフォレジスタにおいて前記ロック要求データアクセス構成要素の前記識別情報の前記インジケータを記憶する工程を備え、前記セマフォ信号は、前記セマフォレジスタにおいて記憶されている前記インジケータを伝達する、請求項18に記載の方法。
【請求項20】
前記有効アクセス許可を生成する工程は、前記複数のデータアクセス構成要素のうちのデータアクセス構成要素について、
前記領域記述子が記憶されている前記領域記述子レジスタから前記デフォルトアクセス許可を受け取る工程であって、前記デフォルトアクセス許可は、前記データアクセス構成要素が1つまたは複数のアクセスタイプの実行を許可されるか否かを示す、前期工程と、
前記セマフォ信号に基づいて、前記データアクセス構成要素が前記セマフォをロックしたか否かを判定する工程と、
前記データアクセス構成要素が前記セマフォをロックしていた場合、前記データアクセス構成要素に対する前記有効アクセス許可を、前記デフォルトアクセス許可と同一のものとして生成する工程と、
前記データアクセス構成要素が前記セマフォをロックしていない場合、前記1つまたは複数のアクセスタイプが前記データアクセス構成要素に対して許可されていないことを示すように、前記データアクセス構成要素に対する前記有効アクセス許可を生成する工程とを備える、請求項15に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−97794(P2013−97794A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2012−234264(P2012−234264)
【出願日】平成24年10月24日(2012.10.24)
【出願人】(504199127)フリースケール セミコンダクター インコーポレイテッド (806)
【Fターム(参考)】