(57)【要約】【課題】  アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処するための技術を提供する。【解決手段】  複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されたテーブル（１７０）を含み、バスマスタ毎のアクセス主体情報とバスマスタから出力されたアドレス情報とに基づいて、バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定可能なアドレス監視部（１６０）を設ける。上記テーブルは、上記複数のバスマスタ間で共有されることから、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、上記テーブルの書き換えを行えば良い。これによって、複数のバスマスタが共通のバスに接続された場合において、アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処することができる。【選択図】        図１
2006091972.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタが共通接続されたバスを含むバスシステムであって、上記複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されたテーブルを含み、上記バスマスタ毎のアクセス主体情報と上記バスマスタから出力されたアドレス情報とに基づいて、上記バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定可能なアドレス監視部を備えて成るバスシステム。
【請求項２】
上記アドレス監視部は、上記バスを介して転送可能なパケットの転送先アドレスによって一意的に決まる転送先のハードウェアへ上記パケットを転送するためのルーティングを可能とするルータに内蔵される請求項１載のバスシステム。
【請求項３】
上記アドレス監視部は、上記バスを介して取り込まれたアクセス主体情報をデコード可能な第１デコーダと、
上記バスを介して入力されたアドレス情報をデコード可能な第２デコーダと、
上記第１デコーダの出力と上記第２デコーダの出力とによって特定されるアクセス権情報を検出可能な検出回路と、
上記検出回路の検出出力に基づいて、アクセス権の有無の判別情報を上記バスに出力可能な判別回路と、を含んで成る請求項２載のバスシステム。
【請求項４】
上記複数のバスマスタは、それぞれアクセス主体情報を必要に応じて上記バスに出力可能に保持するＩＤレジスタを含む請求項３載のバスシステム。
【請求項５】
請求項１乃至４何れか１項記載のバスシステムと、それに結合された上記複数のバスマスタとを含んで一つの半導体基板に形成された半導体集積回路。
【請求項６】
複数のバスマスタには中央処理装置が含まれ、上記アドレス監視部における上記テーブルは上記中央処理装置によって書き換え可能とされた請求項５記載の半導体集積回路。
【請求項７】
上記中央処理装置に含まれるアクセス主体情報は、上記中央処理装置がメモリ管理で使用されるプロセスＩＤとされた請求項６載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステム、さらにはバスに接続されたハードウェアのアクセス権限制御技術に関し、例えば半導体集積回路に適用して有効な技術に関する。
【背景技術】
【０００２】
メモリアドレス空間拡張装置において、タスクからの不正なアクセスによりデータ領域が書き換えられてしまうことを防止するための技術として、例えば特許文献１に記載された技術が知られている。それによれば、キャッシュ内に、実行中のタスク（または割り込み処理）に対するデータ領域へのアクセスの許可、不許可を定義したデータ領域アクセス権定義テーブルが設けられる。アドレス演算ユニットは、中央処理装置（ＣＰＵ）から入力されたＣＰＵアドレスからデータ領域ＩＤを抽出する。レジスタバンク制御ユニットは、キャッシュ内の上記定義テーブルを参照して、ＩＤレジスタに格納されている実行中のタスクのタスクＩＤ（または割り込み処理の割り込み番号）と上記抽出されたデータ領域ＩＤとからそのタスクのデータ領域へのアクセス権を判定する。アクセスが許可されていない場合は、システムエラーとされ、アクセスが許可されている場合は、上記ＣＰＵアドレスを拡張アドレスに変換する処理が行われる。
【０００３】
また、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）によりＤＭＡ転送を行うにあたって、メモリが割当てられていないアドレスや他の用途に使用されているアドレスなど不正なアドレスにデータ転送が実行されてしまうことを防止するための技術として、例えば特許文献２に記載された技術が知られている。それによれば、ＤＭＡＣを用いてＤＭＡ転送を行う場合、メモリ及び周辺回路間でのデータの転送処理に用いられるアドレス範囲を参照して、一方（転送元）のアドレスのストア領域に格納されているデータを順次読出して、他方（転送先）のアドレスのストア領域に転送していく。また、一方及び他方のアドレスを示すデータはＤＭＡＣ内のアドレスレジスタに格納されている。このとき、メモリ又は周辺回路に個別に割当てられた有効なアドレス範囲を予め有効アドレステーブルに格納しておき、転送処理を行う際にこの有効アドレステーブルに格納されたアドレス範囲と、各アドレスレジスタに格納した転送処理に用いるデータが示すアドレス範囲とを、監視部で比較して、転送処理に用いるデータが示すアドレス範囲が有効なアドレス範囲を逸脱した場合には、転送処理が中断されるようになっている。
【０００４】
【特許文献１】特開２００１−００５７２６号公報（図２）
【特許文献２】特開２００１−２９７０５４号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載された技術によれば、ＣＰＵにより、局所的にアクセス許可、不許可を判定し、上記特許文献２に記載された技術によれば、ＤＭＡＣにより、局所的にアクセス許可、不許可を判定しているため、そのようなＣＰＵやＤＭＡが共通のバスに接続される場合には、アクセス権判定の機能がＣＰＵやＤＭＡＣに分散され、アクセス権判定リソースが重複して存在するため、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、アクセス権判定リソースの同一性を維持するための書き換え作業が面倒となる。特に、最近のシステムでは、上記ＣＰＵやＤＭＡＣとは別に、ＭＰＥＧや、３次元グラフィックス、暗号化処理などの多数のバスマスタが共通のバスに接続されるようになってきているため、アクセス権判定の機能が各バスマスタに分散されることの不都合は更に顕著になる。
【０００６】
本発明の目的は、複数のバスマスタが共通のバスに接続された場合において、アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処可能な技術を提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、複数のバスマスタが共通接続されたバスを含むバスシステムにおいて、上記複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されたテーブルを含み、上記バスマスタ毎のアクセス主体情報と上記バスマスタから出力されたアドレス情報とに基づいて、上記バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定可能なアドレス監視部を設ける。
【００１０】
上記アドレス監視部は、上記バスマスタ毎のアクセス主体情報と上記バスマスタから出力されたアドレス情報とに基づいて、上記バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定する。上記テーブルは、上記複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されている。上記テーブルは、上記複数のバスマスタ間で共有されることから、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、上記テーブルの書き換えを行えば良い。つまり、アクセス権判定の機能が各バスマスタに分散されていないため、アクセス主体や各バスマスタのアドレス範囲の変更は、上記複数のバスマスタ間で共有された上記テーブルの書き換えでのみで容易に対処できる。
【００１１】
このとき上記アドレス監視部は、上記バスを介して転送可能なパケットの転送先アドレスによって一意的に決まる転送先のハードウェアへ上記パケットを転送するためのルーティングを可能とするルータに内蔵される。
【００１２】
上記アドレス監視部は、上記バスを介して取り込まれたアクセス主体情報をデコード可能な第１デコーダと、上記バスを介して入力されたアドレス情報をデコード可能な第２デコーダと、上記第１デコーダの出力と上記第２デコーダの出力とによって特定されるアクセス権情報を検出可能な検出回路と、上記検出回路の検出出力に基づいて、アクセス権の有無の判別情報を上記バスに出力可能な判別回路とを含んで構成することができる。
【００１３】
上記複数のバスマスタには、それぞれアクセス主体情報を必要に応じて上記バスに出力可能に保持するＩＤレジスタを設けることができる。
【００１４】
上記バスシステムと、それに結合された上記複数のバスマスタとを含んで半導体集積回路を形成することができる。
【００１５】
このとき、複数のバスマスタには中央処理装置が含まれ、上記アドレス監視部における上記テーブルは上記中央処理装置によって書き換え可能に構成することができる。
【００１６】
上記中央処理装置に含まれるアクセス主体情報は、上記中央処理装置がメモリ管理で使用されるプロセスＩＤとすることができる。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１８】
すなわち、複数のバスマスタが共通のバスに接続された場合において、アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処可能な技術を提供することができる。
【発明を実施するための最良の形態】
【００１９】
バスシステムのルータにアドレス監視手段を付加する実施形態が本発明を実施するための最良の形態である。ルータは、バスに渡されたパケットの転送先アドレスを見て当該アドレスから一意的にきまる転送先ハードウェアへパケットへ送る手段である。パケットは一般的に転送先アドレス、転送データ、その他制御信号で構成するが本実施の形態では、ＩＤ番号をパケットに設定できる。バスに流れるパケットは必ずルータを通るので本発明のアドレス監視手段を付加するには最適の機能単位である。
【００２０】
アドレス監視手段が保有するアクセス権テーブルはアドレス範囲毎にＩＤ番号総数のビットを持ちその各ビットはＩＤ番号に対応する。各ビットには当該アドレス範囲に対して当該ビットに対応するＩＤ番号の所有者がアクセス権を持つか否かを０または１の値で記憶する。アクセス権テーブルには２通りのアクセス方法がある。アクセス権テーブルはアドレスマッピングされていてソフトウェアで読み書き可能である。また、アドレス範囲によりアクセス権テーブルの列を選択し、ＩＤ番号によりアクセス権テーブルの列を選択し、当該列と当該行が交差した位置のビットを読むことが可能である。
【００２１】
バスマスタがバスに流すパケットには転送先アドレス、転送データ、その他制御コードに加えて本実施の形態ではＩＤ番号を設定できる。このようなパケットを流すバスの物理的構成としてアドレス信号線、データ信号線、その他制御信号線に加えてＩＤ番号を流すＩＤ番号信号線を追加する。尚、ＩＤ番号信号線を追加しないで制御信号線にＩＤ番号を流す方式も別に考えられる。
【００２２】
各バスマスタはＩＤ番号を記憶するＩＤレジスタを一つ持つ。ＩＤレジスタはアドレスがマッピングされていてソフトウェアで書き換え可能である。バスマスタが本来目的とする動作をする前にソフトウェアでＩＤレジスタにＩＤ番号を設定しておく。
【００２３】
バスマスタによりバスにパケットが流れるとパケットはルータを通り、ルータ内部のアドレス監視手段を通る。アドレス監視手段はパケットの転送先アドレスとＩＤ番号とを取得する。当該アドレスがテーブルのどのアドレス範囲に含まれるかを判定し当該ＩＤ番号に対応するビットの値を見る。当該ビットが０か１かの値によってエラーまたは正常を判断する。以下、本発明の実施形態をより具体的に説明する。
【００２４】
図１には、本発明にかかる半導体集積回路の一例とされるマイクロコンピュータが示される。このマイクロコンピュータは、特に制限されないが、公知の半導体製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。本実施例はバスマスタのＩＤレジスタに設定するＩＤ番号としてオペレーティングシステムが管理する仮想アドレス空間識別番号を使用している。
【００２５】
マイクロコンピュータ１００は、特に制限されないが、ＣＰＵコア１０１、ルータ１０３、外部Ｉ／Ｆ（外部インタフェース）１０４、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１０５、３ＤＧＣ（３−Ｄｉｍｅｎｓｉｏｎ  Ｇｒａｐｈｉｃｓ  Ｃｏｎｔｒｏｌｌｅｒ）１０６を含む。メモリ１０７は、特に制限されないが、マイクロコンピュータ１００の外部に配置されたＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）とされる。上記ＣＰＵコア１０１、ルータ１０３、外部Ｉ／Ｆ１０４、ＤＭＡＣ１０５、３ＤＧＣ１０６は、内蔵バス１０２によって、互いに信号のやり取り可能に結合される。上記メモリ１０７は、メモリバス１０８を介して外部Ｉ／Ｆ１０４に接続される。外部Ｉ／Ｆ１０４は、外部にメモリ１０７だけでなく、複数のメモリや、他の半導体集積回路を接続することも可能である。
【００２６】
ＣＰＵコア１０１は、予め設定されたプログラムに従って所定の演算処理を行う機能を有し、特に制限されないが、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）１１０と、ＩＤレジスタ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ  ｒｅｇｉｓｔｅｒ）１２０を含んで成る。ＭＭＵ１１０は、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）１１１と、ＰＴＥ．ＡＳＩＤ（Ｐａｇｅ  Ｔａｂｌｅ  Ｅｎｔｒｙ  ｒｅｇｉｓｔｅｒ’ｓ  Ａｄｄｒｅｓｓ  Ｓｐａｃｅ  ＩＤｅｎｔｉｆｉｃａｔｏｉｎ  ｐａｒｔ）１１２を含む。ＴＬＢ１１１は、６４個の行と各行の構成要素を示す列から成る。ＴＬＢ１１１の各行をエントリと呼び、１１７は第０エントリ、１１８は第１エントリである。以下第６３エントリまであるが、図１では省略されている。ＴＬＢ１１１の各列はＶａｌｉｄ１１３、ＡＳＩＤ（Ａｄｄｒｅｓｓ  Ｓｐａｃｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）１１４、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐａｇｅ  Ｎｕｍｂｅｒ）１１５、ＰＰＮ（Ｐｈｙｓｉｃａｌ  Ｐａｇｅ  Ｎｕｍｂｅｒ）１１６、その他のビットから成る。尚、その他のビットについては重要ではないため、その説明を省略する。
【００２７】
Ｖａｌｉｄ１１３の要素は１ビットから成り、当該ビットの値が１のエントリは使用中で有効な内容を持ち、当該ビットの値が０のエントリは使用されず無効な内容を持つ。ＡＳＩＤ１１４の要素はアドレス空間識別番号であり、ここでは８ビットの符号無し整数値とする。ＡＳＩＤ番号とはプロセス毎に持つ仮想アドレス空間を識別するための番号で一般的にはプロセスＩＤ番号などと呼ばれる。仮想アドレス空間はある決まったサイズのページ（Ｐａｇｅ）に分割する。そのサイズは２のべき乗の値で示され、１Ｍバイト、６４Ｍバイトなどのサイズから１つを選ぶ。ＶＰＮ１１５の要素は０番地から始まる仮想アドレス空間を当該ページサイズに分割した時に何番目のページであるかを示し、ＡＳＩＤ番号が示す仮想アドレス空間のうち使用中または使用する可能性の高いページ番号を記憶する。物理アドレス空間は仮想アドレス空間を分割したページのサイズと同じサイズで分割する。ＰＰＮ１１６の要素は０番地から始まる物理アドレス空間を当該ページサイズに分割した時に何番目のページであるかを示す。以上をまとめて１１７のエントリを説明すると、Ｖａｌｉｄビットが論理値“１”なので１１７のエントリは有効な値を持ち、ＡＳＩＤ番号が０１番の仮想アドレス空間のｘ番目のページを物理アドレス空間のｍ番目のページへ対応付けている。１１７のエントリが存在することにより、０１番の仮想アドレス空間識別番号（ＡＳＩＤ番号）を持つプロセスが仮想アドレス空間の第ｘ番目のページの第ｐ番目のワードをアクセスした時にＭＭＵ１１０が物理アドレス空間の第ｍ番目のページの第ｐ番目のワードへのアクセスに変換する。また、１１８のエントリはＶａｌｉｄビットが１なのでエントリが有効な値を持ち、ＡＳＩＤ番号がＦＥ番の仮想アドレス空間のｙ番目のページを物理アドレス空間のｎ番目のページへ対応付けている。１１８のエントリが存在することにより、ＦＥ番の仮想アドレス空間識別番号を持つプロセスが仮想アドレス空間の第ｙ番目のページの第ｑ番目のワードをアクセスした時にＭＭＵ１１０が物理アドレス空間の第ｎ番目のページの第ｑ番目のワードへのアクセスに変換する。
【００２８】
ＰＴＥ．ＡＳＩＤ１１２は、現在ＣＰＵコア１０１が実行中の仮想アドレス空間識別番号を格納する。ＰＴＥ．ＡＳＩＤは、ＰＴＥレジスタのＡＳＩＤ領域のことであり１つ以上のビットから成る。
【００２９】
ＩＤレジスタ１２０は、ＰＴＥ．ＡＳＩＤ１１２と同じ値を持つ。ＣＰＵコア１０１はバスマスタでありパケットをバスに出力するときにＩＤレジスタ１２０の値をＩＤ信号１３４へ出力する。
【００３０】
内蔵バス１０２はバスマスタが内蔵バスに出力したパケットを転送する仕組みである。パケットは、特に制限されないが、制御命令、転送先アドレス、転送データ、ＩＤ番号を含んで成る。これらは各々の制御信号１３１、アドレス信号１３２、データ信号１３３、ＩＤ信号１３４としてバスクロック１３０に同期して内蔵バス１０２で媒介される。これらの信号はＣＰＵコア１０１、ルータ１０３、外部Ｉ／Ｆ１０４、ＤＭＡＣ１０５、３ＤＧＣ１０６へ接続されている。ＣＰＵコア１０１、ルータ１０３、外部Ｉ／Ｆ１０４、ＤＭＡＣ１０５、３ＤＧＣ１０６には予め各々固有のアドレス範囲が割り付けられ、ルータ１０３はパケットをその転送先アドレスへ転送する機能を持つ。
【００３１】
外部Ｉ／Ｆ１０４は、制御信号１３１、アドレス信号１３２、データ信号１３３を含んで成るパケットを受け取り、ＳＲＡＭやＤＲＡＭなど、マイクロコンピュータの外部へ接続されているメモリの種類に対応した信号へ変換して外部バス１０８へ出力し、メモリ１０７の所定のアドレスをリードまたはライトする。外部Ｉ／Ｆ１０４は、バススレーブである。バススレーブはバスマスタが開始したパケットを受け取ることは可能だが、バススレーブからパケットを開始することは無く、受け取ったパケットに対するレスポンスパケットをバスに出力するだけである。レスポンスパケットの所有者はバスマスタであり、バススレーブはＩＤ番号を記憶する必要がなくＩＤレジスタも無い。
【００３２】
ＤＭＡＣ１０５は、ＣＰＵコア１０１の介在なしにメモリ１０７との間で行われるデータ転送を制御する機能（ダイレクトメモリアクセスコントロール機能）を有し、特に制限されないが、制御レジスタ１４０、転送元アドレスレジスタ１４１、転送先アドレスレジスタ１４２、転送バイト数レジスタ１４３、および、ＩＤレジスタ１２１を含んで成る。転送元アドレスレジスタ１４１、転送先アドレスレジスタ１４２、転送バイト数レジスタ１４３、および、ＩＤレジスタ１２１は、アドレスが割り付けられ、ＣＰＵコアで実行されるプログラムからアドレスを指定してデータをリードまたはライト可能である。ＤＭＡＣ１０５の転送元アドレスレジスタ１４１、転送先アドレスレジスタ１４２、転送バイト数レジスタ１４３を予めプログラムで書き込み、制御レジスタ１４０に転送方法などを予め指定した状態で、制御レジスタ１４０の開始フラグに１を立てる。すると転送先アドレスから転送元アドレスへ転送バイト数だけメモリ内容を転送する。ＩＤレジスタ１２１にはＤＭＡＣ１０５の制御を司るプロセスの仮想アドレス空間識別番号と同じＩＤ番号をＣＰＵコア１０１がドライバなどのプログラムで設定する。ＤＭＡＣ１０５はバスマスタであり、パケットをバスに出力するときにＩＤレジスタ１２１の値をＩＤ信号１３４へ出力する。
【００３３】
３ＤＧＣ１０６は、３次元グラフィック処理の制御機能を有し、特に制限されないが、制御レジスタ１５０、フレームアドレスレジスタ１５１、ＩＤレジスタ１２２を含んで成る。制御レジスタ１５０、フレームアドレスレジスタ１５１、ＩＤレジスタ１２２はアドレスが割り付けられ、ＣＰＵコアで実行されるプログラムからアドレスを指定してデータをリードまたはライト可能である。３ＤＧＣ１０６は制御レジスタ１５０に制御命令やパラメタを受け取り、フレームアドレスレジスタ１５１で示したメモリ領域の所定の位置にデータをリードまたはライト可能である。ＩＤレジスタ１２２には、３ＤＧＣ１０６の制御を司るプロセスの仮想アドレス空間識別番号と同じＩＤ番号をＣＰＵコア１０１がドライバなどのプログラムで設定する。３ＤＧＣ１０６はバスマスタでありパケットをバスに出力するときに、ＩＤレジスタ１２２の値をＩＤ信号１３４へ出力する。
【００３４】
ルータ１０３は、内蔵バス１０２を介して転送可能なパケットの転送先アドレスによって一意的に決まる転送先のハードウェアへ上記パケットを転送するためのルーティング機能を有する。そしてこのルータ１０３にはアドレス監視手段１６０が設けられている。このアドレス監視手段１６０は、入力されたアドレス信号に基づくアクセス権監視機能を有し、特に制限されないが、アドレスレジスタ１６１、ＩＤレジスタ１６２、アドレスデコーダ１６３、ＩＤデコーダ１６４、検出回路１６５、エラー判別回路１６６、および、アクセス権テーブル１７０を含んで成る。アクセス権テーブル１７０には、アドレスが割り付けられ、ＣＰＵコア１０１で実行されるプログラムからアドレスを指定してデータをリードまたはライト可能とされる。ルータ１０３がパケットを受け取ると、アドレス監視手段１６０は当該パケットのアドレス信号をアドレスレジスタ１６１へ記憶し、当該パケットのＩＤ信号をＩＤレジスタ１６２へ記憶する。次にアドレスレジスタ１６１の値がアドレスデコーダ１６３でデコードされ、その出力によってアクセス権テーブル１７０における一つの行が選択される。これと並行してＩＤレジスタ１６２の値がＩＤデコーダ１６４でデコードされ、その出力によってアクセス権テーブル１７０における一つの列が選択される。アクセス権テーブル１７０において選択された行と選択された列が交差する位置のビットの値を検出回路１６５が検出しエラー判別回路１６６へ入力する。エラー判別回路１６６は、論理値“１”が入力されたときはエラーを出力しないでルータの正常処理をそのまま続行させ、論理値“０”が入力されたときはエラー信号を内蔵バス１０２の制御信号１３１に出力する。ここで、上記アドレス監視手段１６０が、本発明におけるアドレス監視部に対応する。
【００３５】
図２には、上記マイクロコンピュータ１００における主要動作が示される。図２において、三角印で始まる手続きはハードウェアの動作とされ、丸印で始まる手続きはソフトウェアによる設定とされる。
【００３６】
システムリセット２０１では、マイクロコンピュータ１００に初めて電源を投入した場合やマイクロコンピュータ１００がリセット要求信号を受けたときにマイクロコンピュータ１００が初期状態にされる。
【００３７】
処理２０２はシステムリセット２０１の後のハードウェアによる初期化である。処理２０２の第１番の手続きはルータ１０２のアドレス監視手段１６０のアクセス権テーブル１７０の初期化である。ここでは従来のマイクロコンピュータと同様にアドレス監視手段１６０が無い場合と同じ動作になるように、アクセス権テーブル１７０の全ビットを論理値“１”に設定している。この場合、如何なるアドレスへの如何なるＩＤ番号によるアクセスも許可する設定である。尚、アクセス権テーブル１７０の初期値はシステムに依存して適宜変更してよい。処理２０２の第１番手続きの他にシステムリセット手続きが行われることは言うまでもない。
【００３８】
処理２０３はソフトウェアによる初期化である。
【００３９】
処理２０３の第１番手続きで例外処理ハンドラを含むＯＳの仮想アドレス空間識別番号を００に設定する。本例ではＣＰＵコア１０１のＩＤレジスタ１２０にＰＴＥ．ＡＳＩＤ１１２に格納されている現在の仮想アドレス空間識別番号の値をコピーして使用しているが、ＯＳを通常プロセスと区別するために仮想アドレス空間識別番号としてＯＳ専用の特別な値を割り付けることができる。
【００４０】
処理２０３の第２番手続きでハードウェアがＰＴＥ．ＡＳＩＤ１１２の値をＣＰＵコア１０１のＩＤレジスタ１２０へコピーする。
【００４１】
処理２０３の第３番手続きの第ａ手続きでＯＳが全アドレスをアクセスできるように初期化し、第ｂ手続きで−１（０ｘＦＦ）を含む未生成の仮想アドレス空間識別番号がどのアドレスもアクセスできないように初期化してる。
【００４２】
処理２０３の第４番手続きでＣＰＵコア１０１を除くバスマスタのＩＤレジスタに仮想アドレス空間識別番号として−1（０ｘＦＦ）を設定する。仮想アドレス空間識別番号−１（０ｘＦＦ）は仮想アドレス空間識別番号に使用しない特別な番号とする。本実施例ではＤＭＡＣ１０５のＩＤレジスタ１２１に−１（０ｘＦＦ）を設定し、３ＤＧＣ１０６のＩＤレジスタ１２２に−１（０ｘＦＦ）を設定する。
【００４３】
処理２０３の第５番手続きでアクセス権テーブル１７０をソフトウェアで排他的にリードまたはライトするときに取得するセマフォを生成する。ここでセマフォとは、複数のプロセスが同時実行されるマルチタスクＯＳにおいて同期をとるための仕組みであり、リソースの占有状態を管理する一種のフラグとされる。
【００４４】
処理２０３の第６番手続きでＣＰＵコア１０１以外のバスマスタのＩＤレジスタをソフトウェアで排他的にリードまたはライトするときに取得するセマフォを生成する。
【００４５】
処理２０３が終了するとＯＳの初期化が完了しＯＳが定常状態に入る。定常状態は基本的に無限ループであり、イベントや要求の発生に応じて所定の処理を行う。
【００４６】
判断２１０で新しいプロセスの生成要求が発生した場合に処理２２０を実行する。
【００４７】
処理２２０の第１番手続きで、未使用のＩＤ番号を生成し、新しいプロセスの仮想アドレス空間識別番号とする。
【００４８】
判断２１１で或るプロセスの仮想アドレス空間に切り替え要求が発生した場合に処理２２１を実行する。
【００４９】
処理２２１の第１番手続きで、当該プロセスのＩＤ番号をＰＴＥ．ＡＳＩＤ１１２に設定し仮想アドレス空間を当該プロセスへ切り替える。第２番手続きでハードウェアによりＰＴＥ．ＡＳＩＤ１１２の値をＩＤレジスタ１２０へコピーする。
【００５０】
判断２１２でＯＳの仮想アドレス空間に切り替え要求が発生した場合に処理２２２を実行する。
【００５１】
処理２２２の第１番手続きで、ＰＴＥ．ＡＳＩＤ１１２に０を設定し、仮想アドレス空間をＯＳへ切り替える。第２番手続きでハードウェアによりＰＴＥ．ＡＳＩＤ１１２の値をＩＤレジスタ１２０へコピーする。
【００５２】
判断２１３で物理メモリブロックを確保するイベントが発生した場合に、実際に物理メモリを確保する手続きに加えて処理２２３を実行する。物理メモリブロックを確保するイベントは、（１）ＯＳがアドレス空間の切り替え時にページフォルトが発生しないように予め仮想アドレス空間のページに物理アドレス空間のページを割り付ける時、（２）ページフォルトが発生しページフォルトが発生した仮想アドレス空間のページへ物理アドレス空間のページを割り付ける時、（３）物理アドレスプロックを獲得するシステムコールを呼んだ時、などに発生する。（１）と（２）の場合は当該仮想アドレス空間のＩＤ番号を使用する。（３）の場合はシステムコールを呼んだ仮想アドレス空間のＩＤ番号を使用する。
【００５３】
処理２２３の第１番手続きで、アクセス権テーブル１７０のセマフォを取得する。本セマフォは処理２０３の第５番手続きで生成されたものである。第２番手続きで、アクセス権テーブル１７０で確保した物理メモリブロックのアドレス範囲に対応する行と当該ＩＤ番号の列が交差するビットに１を設定する。第３番手続きでアクセス権テーブル１７０のセマフォを解放する。
【００５４】
判断２１４でＣＰＵコア１０１を除くバスマスタを確保するイベントが発生した場合に処理２２４を実行する。
【００５５】
処理２２４の第１番手続きで、当該バスマスタのセマフォを獲得する。因みに本セマフォは処理２０３の第６番手続きで生成されている。第２番手続きで当該バスマスタのＩＤレジスタに当該バスマスタを使用する仮想アドレス空間識別番号を設定する。この手続きで当該バスマスタは当該仮想アドレス空間と同じアクセス権を持つ。例えばバスマスタの一つであるＤＭＡＣ１０５は資源数が決まっているのでセマフォで管理しＤＭＡＣ１０５を獲得するためのドライバプログラムを作成する。本ドライバプログラムはＤＭＡＣ１０５のセマフォを獲得すると共にＤＭＡＣ１０５のＩＤレジスタ１２１にＤＭＡＣの確保主体であるプロセスの仮想アドレス空間識別番号を設定する。３ＤＧＣ１０６も同様である。
【００５６】
判断２１５でバスマスタが「ｘｘｘｘｘｘｘｘ番地」をアクセスするイベントが発生した場合、処理２２５をハードウェアが実行する。
【００５７】
処理２２５の第１番手続きでｘｘｘｘｘｘｘｘ番地をアドレス信号１３２へ出力し、バスマスタのＩＤレジスタの値をＩＤ信号１３４へ出力する。同時に制御信号を制御信号１３１でやり取りし、必要ならばデータをデータ信号１３３へ出力する。第２番手続きでルータ１０３は当該アドレスをアドレスレジスタ１６１に記憶し、当該ＩＤ信号の値をＩＤレジスタ１６２に記憶する。第３番手続きでアドレスレジスタ１６１の値をアドレスデコーダ１６３でデコードしアクセス権テーブル１７０の行を選択し、同時に、ＩＤレジスタ１６２の値をＩＤデコーダ１６４でデコードしアクセス権テーブル１７０の列を選択する。第４番手続きで当該行と当該列が交差した部分のビットの値を検出回路１６５で抽出しエラー判別回路１６６へ出力し、その値が１ならば正常動作を続け、その値が０ならばエラー信号を制御信号１３１へ出力する。
【００５８】
判断２１６で既存プロセスの消滅要求が発生した場合、処理２２６を実行する。
【００５９】
処理２２６の第１番手続きでルータ１０３のアドレス監視手段１６０のアクセス権テーブル１７０のセマフォを取得する。第２番手続きでアクセス権テーブル１７０の当該プロセスのＩＤ番号に対応した列のビットを０に設定し、当該ＩＤ番号によるアクセスを禁止する。第３番手続きで当該セマフォを解放する。
【００６０】
判断２１７でＣＰＵコア１０１を除くバスマスタを解放するイベントが発生した場合、処理２２７を実行する。
【００６１】
処理２２７の第１番手続きで当該バスマスタのＩＤレジスタに−１（０ｘＦＦ）を設定する。第２番手続きで処理２２４で獲得していたセマフォを解放し、当該バスマスタ固有の解放手続きがあればそれを実行する。
【００６２】
判断２１８でＯＳのシャットダウン要求が発生した場合、端子２３０へ移る。当該要求が無い場合は判断２１０へ戻り同じことを繰り返す。
【００６３】
図１のＴＬＢ１１１のエントリ１１７を見ると、プロセスの論理ページへの初期物理ページ割付け、または、ページフォルトのリカバリ処理により、仮想アドレス空間識別番号（ＡＳＩＤ）０１のプロセスの第ｘ番目の論理ページがメモリ１０７の第ｍ番目の物理ページに割り付けられている。同時にアクセス権テーブル１７０の第ｍ行の第０１列に１を設定することによりメモリ１０７の第ｍ番目の物理ページに仮想アドレス空間識別番号（ＡＳＩＤ）０１と同じＩＤ番号によるアクセスが許可されている。
【００６４】
同じく、ＴＬＢ１１１のエントリ１１８を見ると、プロセスの論理ページへの初期物理ページ割付、または、ページフォルトのリカバリ処理により、仮想アドレス空間識別番号（ＡＳＩＤ）ＦＥのプロセスの第ｙ番目の論理ページがメモリ１０７の第ｎ番目の物理ページに割り付けられている。同時にアクセス権テーブル１７０の第ｎ行の第ＦＥ列に１を設定することによりメモリ１０７の第ｎ番目の物理ページに仮想アドレス空間識別番号（ＡＳＩＤ）ＦＥと同じＩＤ番号によるアクセスが許可されている。
【００６５】
メモリ１０７の第ｋページはＴＬＢ１１１のエントリに特に記述していないが、仮想アドレス空間識別番号（ＡＳＩＤ）０１のプロセスがシステムコールによりアクセス権を獲得し、仮想アドレス空間識別番号（ＡＳＩＤ）ＦＥのプロセスもシステムコールによりアクセス権を獲得した結果、アクセス権テーブル１７０の第ｋ行目は第０１列と第ＦＥ列に１を設定していて、メモリ１０７の第ｋ番目の物理ページに仮想アドレス空間識別番号（ＡＳＩＤ）０１またはＦＥのいずれのＩＤ番号によるアクセスも許可されている。
【００６６】
アクセス権テーブル１７０の第００列はＩＤ番号が０のＯＳのアクセス権を示し、リソースが有効に存在するアドレス範囲全部に対応するビットに１が設定されている。
【００６７】
アクセス権テーブル１７０の第ＦＦ列はＩＤ番号が−１即ちＦＦのバスマスタのアクセス権を示す。ＩＤ番号として−１（ＦＦ）をもつバスマスタは全てのリソースへアクセス権を持たない。
【００６８】
図１のアクセス権テーブル１７０の状態では、ＣＰＵコア１０１のカレントプロセス（現在のプロセス）の仮想アドレス空間識別番号が０１のときはメモリ１０７の第ｍページと第ｋページがアクセスできる。ＣＰＵコア１０１のカレントプロセスの仮想アドレス空間識別番号がＦＥのときはメモリ１０７の第ｎページと第ｋページがアクセスできる。ＣＰＵコア１０１のカレントプロセスの仮想アドレス空間識別番号がｊのときはメモリ１０７の第ｍページ、第ｎページ、第ｋページのいずれもアクセスできない。ＣＰＵコア１０１のカレントプロセスの仮想アドレス空間識別番号が００のときは存在する全リソースへアクセスできる。ＣＰＵコア１０１のカレントプロセスの仮想アドレス空間識別番号がＦＦのときは全リソースへアクセスできない。
【００６９】
図１のアクセス権テーブル１７０の状態では、ＤＭＡＣ１０５のＩＤレジスタ１２１の値が０１のときはメモリ１０７の第ｍページと第ｋページがアクセスできる。ＤＭＡＣ１０５のＩＤレジスタ１２１の値がＦＥのときはメモリ１０７の第ｎページと第ｋページがアクセスできる。ＤＭＡＣ１０５のＩＤレジスタ１２１の値がｊのときはメモリ１０７の第ｍページ、第ｎページ、第ｋページのいずれもアクセスできない。ＤＭＡＣ１０５のＩＤレジスタ１２１の値が００のときは存在する全リソースへアクセスできる。ＤＭＡＣ１０５のＩＤレジスタ１２１の値がＦＦのときは全リソースへアクセスできない。
【００７０】
図１のアクセス権テーブル１７０の状態では、３ＤＧＣ１０６のＩＤレジスタ１２２の値が０１のときはメモリ１０７の第ｍページと第ｋページがアクセスできる。３ＤＧＣ１０６のＩＤレジスタ１２２の値がＦＥのときはメモリ１０７の第ｎページと第ｋページがアクセスできる。３ＤＧＣ１０６のＩＤレジスタ１２２の値がjのときははメモリ１０７の第ｍページ、第ｎページ、第ｋページのいずれもアクセスできない。３ＤＧＣ１０６のＩＤレジスタ１２２の値が００のときは存在する全リソースへアクセスできる。３ＤＧＣ１０６のＩＤレジスタ１２２の値がＦＦのときは全リソースへアクセスできない。
【００７１】
以上のようにＣＰＵコア１０１だけでなく、ＤＭＡＣ１０５や３ＤＧＣ１０６のような各バスマスタに対してもアクセス監視手段によりアクセス権の制御をすることができる。
【００７２】
図４には８バイトロードにおける正常ケースが示され、図５には８バイトロードにおけるエラーケースが示され、図６には８バイトストアにける正常ケースが示され、図７には８バイトストアにおけるエラーケースが示される。
【００７３】
内蔵バス１０２はバスクロック１３０に同期して転送を行う。１クロックサイクルで転送されるデータをセルという。パケットは１つ以上のセルから構成される。内蔵バス１０２において、転送を要求する回路をバスマスタというのに対して、転送に応答する回路をバススレーブという。内蔵バス上のトランザクションはバスマスタが要求内容を含むリクエストパケットをバススレーブに送信することにより開始される。バススレーブが応答内容を含むレスポンスパケットをバスマスタに送信することによりトランザクションが完了する。バスマスタとバススレーブの間に位置して、パケットを中継する回路がルータ１０３である。ルータ１０３は一つのバスマスタから受信したリクエストパケットを指定されたバススレーブへ転送する。また、ルータ１０３は一つのバススレーブから受信したレスポンスパケットをトランザクションを開始したバスマスタへ送信する。
【００７４】
clock（クロック）信号はバスクロック１３０に対応し、論理値“０”と論理値“１”とが一定周期で交互に繰返される。本clock信号の立ち上がりエッジに同期して、バスマスタやルータ、バススレーブに、後述するその他の信号が取り込まれる。
【００７５】
あるバスマスタからあるバススレーブへの一つのトランザクションは、（１）バスマスタからルータ１０３へ送信、（２）ルータ１０３からバススレーブへ送信、（３）バススレーブからルータ１０３へ送信、（４）ルータ１０３からバススレーブへ送信、の順に送信されることで完了する。但し、エラー判別回路１６６でエラーが検出された場合は（１）（４）のみが実行される。以下、上記（１）〜（４）の送信について詳述する。
【００７６】
上記（１）バスマスタからルータ１０３への送信においては、（１ａ）request（リクエスト）信号、（１ｂ）grant（グラント）信号、（１ｃ）end_of_packet（エンドオブパケット）信号、（１ｄ）address（アドレス）信号、（１ｅ）opcode（オペコード）信号、（１ｆ）data（データ）信号、（１ｇ）source（ソース）信号、（１ｈ）ＩＤ信号、が使用される。ここで、（１ａ）request信号はバスマスタのリクエストパケット転送に使用する信号のうち、（１ｄ）address信号、（１ｅ）opcode信号、（１ｆ）data信号、（１ｇ）source信号、（１ｈ）ＩＤ信号が有効な値を出力していることを示す。（１ｂ）grant信号は、ルータ１０３がリクエストパケットを受信可能であることをバスマスタに示す信号である。clock信号の立ち上がりエッジに於いて、（１ａ）request信号と（１ｂ）grant信号が共に論理値“１”の時にリクエストパケットのセルがバスマスタ（Ｍ）からルータ１０３（Ｒ）へ転送される。（１ａ）request信号が論理値“０”の時は転送されない（ルータ１０３が無視する）。（１ｃ）end_of_packet信号は、バスマスタがリクエストパケットの最後のセルを出力していることを示す。（１ｄ）address信号は、トランザクションの転送先アドレスを示す。（１ｅ）opcode信号はトランザクションの種類と転送サイズとを示す。本信号のエンコーディング例を図３のopcodeの列に示す。（１ｆ）data信号は、バスマスタからルータ１０３へ転送するデータである。（１ｇ）source信号は、ルータ１０３がレスポンスパケットを中継するときにレスポンスパケットの送信先を特定できるようにするためにバスマスタが出力する識別子である。（１ｈ）ＩＤ信号はバスマスタからルータ１０３へ転送するＩＤ番号である。
【００７７】
上記（２）ルータ１０３（Ｒ）からバススレーブ（Ｓ）への送信においては、（２ａ）request（リクエスト）信号、（２ｂ）grant（グラント）信号、（２ｃ）end_of_packet（エンドオブパケット）信号、（２ｄ）address（アドレス）信号、（２ｅ）opcode（オペコード）信号、（２ｆ）data（データ）信号、（２ｇ）source（ソース）信号、が使用される。ここで、（２ａ）request信号はルータ１０３からバススレーブへのリクエストパケット転送に使用する信号のうち、（２ｃ）end_of_packet信号、（２ｄ）address信号、（２ｅ）opcode信号、（２ｆ）data信号、（２ｇ）source信号が有効な値を出力していることを示す。（２ｂ）grant信号は、バススレーブがリクエストパケットを受信可能であることを示す。clock信号の立ち上がりエッジに於いて、（２ａ）request信号と（２ｂ）grant信号が共に論理値“１”の時にリクエストパケットのセルがルータ１０３からバススレーブへ転送される。本信号が論理値“０”の時は転送されない。（２ｃ）end_of_packet信号は、ルータ１０３がリクエストパケットの最後のセルを出力していることを示す。（２ｄ）address信号はトランザクションの転送先アドレスを示す。（２ｅ）opcode信号はトランザクションの種類と転送サイズとを示す。本信号のエンコーディング例を図３のopcodeの列に示す。（２ｆ）data信号は、ルータ１０３からバススレーブへ転送するデータである。（２ｇ）source信号は、ルータ１０３がレスポンスパケットを中継するときにレスポンスパケットの送信先を特定できるようにするためにバスマスタが出力する識別子である。
【００７８】
上記（３）バススレーブからルータ１０３への送信においては、（３ａ）response_request（レスポンスリクエスト）信号、（３ｂ）response_grant（レスポンスグラント）信号、（３ｃ）response_end_of_packet（レスポンスエンドオブパケット）信号、（３ｄ）response_opcode（レスポンスオペコード）信号、（３ｅ）response_data（レスポンスデータ）信号、（３ｆ）response_source（レスポンスソース）信号、が使用される。ここで、（３ａ）response_request信号は、バススレーブのレスポンスパケット転送に使用する信号のうち、（３ｄ）response_opcode信号、（３ｅ）response_data信号、（３ｆ）response_source信号が有効な値を出力していることを示す。clock信号の立ち上がりエッジに於いて、（３ａ）response_request信号と（３ｂ）response_grant  信号が共に論理値“１”の時にレスポンスパケットのセルがバススレーブからルータ１０３へ転送される。本信号が論理値“０”の時は転送されない（ルータ１０３が無視する）。（３ｂ）response_grant信号は、ルータ１０３がレスポンスパケットを受信可能であることを示す。clock信号の立ち上がりエッジに於いて、（３ａ）response_request信号と本（３ｂ）response_grant  信号が共に論理値“１”の時にレスポンスパケットのセルがバススレーブからルータ１０３へ転送される。本信号が論理値“０”の時は転送されない。（３ｃ）response_end_of_packet信号は、バススレーブがレスポンスパケットの最後のセルを出力していることを示す。本信号は論理値“１”の時に有効であり論理値“０”のときに無効である。（３ａ）response_request信号が論理値“０”のとき、本信号は論理値“０”に落とす。（３ｄ）response_opcode信号は、トランザクションの結果を示す。本信号のエンコード例を図３のresponse_opcodeの列に示す。（３ｅ）response_data信号は、バススレーブからルータ１０３へ転送されるデータである。（３ｆ）response_source信号は、ルータ１０３がレスポンスパケットをルーティングするときにレスポンスパケットの送信先バスマスタを特定できるようにするための識別子である。バススレーブは、リクエストパケット受信時に（２ｇ）source信号の値を保存し、対応するレスポンスパケットを送信する時に（３ｆ）response_source信号として出力する。
【００７９】
上記（４）ルータ１０３からバスマスタへの送信においては、（４ａ）response_valid（レスポンスバリッド）信号、（４ｂ）response_end_of_packet（レスポンスエンドオブパケット）信号、（４ｃ）response_opcode（レスポンスオペコード）信号、（４ｄ）response_data（レスポンスデータ）信号、（４ｅ）response_source（レスポンスソース）信号、が使用される。ここで、（４ａ）response_valid信号は、ルータ１０３からバスマスタへのレスポンスパケットに使用される（４ｂ）response_end_of_packet信号、（４ｃ）response_opcode信号、（４ｄ）response_data信号、（４ｅ）response_source信号が有効な値を出力していることを示す。clock信号の立ち上がりエッジに於いて、本（４ａ）response_valid信号が論理値“１”の時にレスポンスパケットのセルがルータ１０３からバスマスタ（Ｍ）へ転送される。（４ｂ）response_end_of_packet信号は、ルータ１０３がレスポンスパケットの最後のセルを出力していることを示す。本信号は論理値“１”の時に有効であり、論理値“０”のときに無効である。（４ｃ）response_opcode信号は、トランザクションの結果を示す。本信号のエンコード例を図３のresponse_opcodeの列に示す。特にアドレス監視手段１６０のエラー判別回路１６６でエラーが発生した場合にはエラーのコードを設定する。（４ｄ）response_data信号は、ルータ１０３からバスマスタへ転送されるデータである。（４ｅ）response_source信号は、対応するリクエストパケット送信時にバスマスタが出力した（１ｇ）source信号と同じ値である。
【００８０】
図１において内蔵バス１０２は、制御信号１３１、アドレス信号１３２、データ信号１３３、ＩＤ信号１３４で構成されている。ここで、制御信号１３１は、次の信号群の総称とされる。すなわち、制御信号１３１は、（１ａ）request信号、（１ｂ）grant信号、（１ｃ）end_of_packet信号、（１ｅ）opcode信号、（１ｇ）source信号、（２ａ）request信号、（２ｂ）grant信号、（２ｃ）end_of_packet信号、（２ｅ）opcode信号、（２ｇ）source信号、（３ａ）response_request信号、（３ｂ）response_grant信号、（３ｃ）response_end_of_packet信号、（３ｄ）response_opcode信号、（３ｆ）response_source信号、（４ａ）response_valid信号、（４ｂ）response_end_of_packet信号、（４ｃ）response_opcode信号、（４ｅ）response_source信号、の総称とされる。
【００８１】
アドレス信号１３２は、（１ｄ）address信号、（２ｄ）address信号の総称である。
【００８２】
データ信号１３３は、（１ｆ）data信号、（２ｆ）data信号、（３ｅ）response_data信号、（４ｄ）response_data信号、の総称である。
【００８３】
ＩＤ信号１３４は、（１ｈ）ＩＤ信号に対応する。
【００８４】
上記例によれば、以下の作用効果を得ることができる。
【００８５】
（１）上記アクセス権テーブル１７０は、ＣＰＵコア１０１、ＤＭＡＣ１０５、３ＤＧＣ１０６などの複数のバスマスタ間で共有されることから、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、ＣＰＵコア１０１の制御によって上記アクセス権テーブル１７０の書き換えを行えば良い。換言すれば、アクセス権判定の機能が各バスマスタに分散されていないため、アクセス主体や各バスマスタのアドレス範囲の変更は、上記複数のバスマスタ間で共有されたアクセス権テーブル１７０の書き換えでのみで容易に対処できる。
【００８６】
（２）ルータ１０３は、もともとパケットをその転送先アドレスへ転送する機能を有し、そのような機能を有するルータ１０３にアドレス監視手段１６０を設けることにより、各種レジスタなどの構成部品の共通化を図ることができるため、ルータ１０３とは別個にアドレス監視手段１６０を形成する場合に比べて素子数の低減を図ることができる。
【００８７】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８８】
例えば上記の例では、ＰＴＥ．ＡＳＩＤ１１２と別にＩＤレジスタ１２０を設け、ＰＴＥ．ＡＳＩＤ１１２が持つ値をＩＤレジスタ１２０へハードウェアを用いてコピーしているが、これを変形してＰＴＥ．ＡＳＩＤ１１２とＩＤレジスタ１２０とを同一のハードウェアリソースとする別の実施例を作ることができる。
【００８９】
また、ＰＴＥ．ＡＳＩＤ１１２からＩＤレジスタ１２０へハードウェアが自動コピーする代わりにＰＴＥ．ＡＳＩＤ１１２の値を参考にＩＤレジスタ１２０へソフトウェアまたはハードウェアでＩＤ番号を書き込むようにしても良い。この場合、ＩＤレジスタ１２０に設定するＩＤ番号は仮想アドレス空間識別番号の粒度と異なる粒度のＩＤ番号を設定できる。また、ＣＰＵコア１０１のＩＤレジスタ１２０、ＤＭＡＣ１０５のＩＤレジスタ１２１、３ＤＧＣ１０６のＩＤレジスタ１２２、ルータ１０３のアクセス権テーブル１７０の列で同じ粒度のＩＤ番号を使用する。
【００９０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。
【００９１】
本発明は、バスを含むことを条件に適用することができる。
【図面の簡単な説明】
【００９２】
【図１】本発明にかかる半導体集積回路の一例であるマイクロコンピュータの全体的な構成例ブロック図である。
【図２】上記マイクロコンピュータにおける主要動作を示すフローチャートである。
【図３】上記マイクロコンピュータにおけるｏｐｃｏｄｅ信号とｒｅｓｐｏｎｓｅ＿ｏｐｃｏｄｅ信号とのエンコード例の説明図である。
【図４】上記マイクロコンピュータにおける８バイトロードでアドレス監視手段により正常と判断される場合の動作タイミング図である。
【図５】上記マイクロコンピュータにおける８バイトロードでアドレス監視手段によりエラーと判断される場合の動作タイミング図である。
【図６】上記マイクロコンピュータにおける８バイトストアでアドレス監視手段により正常と判断される場合の動作タイミング図である。
【図７】上記マイクロコンピュータにおける８バイトストアでアドレス監視手段によりエラーと判断される場合の動作タイミング図である。
【符号の説明】
【００９３】
１００  マイクロコンピュータ
１０１  ＣＰＵコア
１０２  内蔵バス
１０３  ルータ
１０４  メモリＩ／Ｆ
１０５  ＤＭＡＣ
１０６  ３ＤＧＣ
１０７  メモリ
１０８  メモリバス
１１０  ＭＭＵ
１１１  ＴＬＢ
１１２  ＰＴＥ．ＡＳＩＤ
１１３  ＴＬＢ１１１のＶａｌｉｄ列
１１４  ＴＬＢ１１１のＡＳＩＤ列
１１５  ＴＬＢ１１１のＶＰＮ列
１１６  ＴＬＢ１１１のＰＰＮ列
１１７  ＴＬＢ１１１の第０エントリ
１１８  ＴＬＢ１１１の第１エントリ
１２０  ＣＰＵコア１０１のＩＤレジスタ
１２１  ＤＭＡＣ１０５のＩＤレジスタ
１２２  ３ＤＧＣ１０６のＩＤレジスタ
１３０  バスクロック
１３１  制御信号
１３２  アドレス信号
１３３  データ信号
１３４  ＩＤ信号
１４０  ＤＭＡＣ１０５の制御レジスタ
１４１  ＤＭＡＣ１０５の転送元アドレスレジスタ
１４２  ＤＭＡＣ１０５の転送先アドレスレジスタ
１４３  ＤＭＡＣ１０５の転送バイト数レジスタ
１５０  ３ＤＧＣ１０６の制御レジスタ
１５１  ３ＤＧＣ１０６のフレームアドレスレジスタ
１６０  アドレス監視手段
１６１  アドレスレジスタ
１６２  ＩＤレジスタ
１６３  アドレスデコーダ
１６４  ＩＤデコーダ
１６５  検出回路
１６６  エラー判別回路
１７０  アクセス権テーブル
【図１】
2006091972.tif 000003
【図２】
2006091972.tif 000004
【図３】
2006091972.tif 000005
【図４】
2006091972.tif 000006
【図５】
2006091972.tif 000007
【図６】
2006091972.tif 000008
【図７】
2006091972.tif 000009