(57)【要約】【課題】  マスタ・デバイス、スレーブ・デバイスの種類や数を問わず適用できる汎用的でスケーラブルなアクセス保護機構を有するコンピュータ・システム及びその処理方法を提供する。【解決手段】  ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタ１１１を有し、かつトランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出するマスタ・デバイス１１０と、  アクセスを許可する第２のプロセスＩＤを保持し、かつ第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れるスレーブ・デバイス１２０とを有するコンピュータ・システム。【選択図】  図１
2010250470.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有し、かつトランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出するマスタ・デバイスと、
アクセスを許可する第２のプロセスＩＤを保持し、かつ第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れるスレーブ・デバイスとを有することを特徴とするコンピュータ・システム。
【請求項２】
前記システム・バスは、少なくともアドレス・バスとプロセスＩＤバスを有し、
前記マスタ・デバイスは、前記トランザクションを開始する際にアクセス先アドレスを前記アドレス・バスに出力し、前記第１のプロセスＩＤを前記プロセスＩＤバスに出力することを特徴とする請求項１に記載のコンピュータ・システム。
【請求項３】
前記スレーブ・デバイスは、前記第１のプロセスＩＤと前記第２のプロセスＩＤとを比較して一致したときのみアクセスを許可する判定手段を有することを特徴とする請求項１又は２に記載のコンピュータ・システム。
【請求項４】
前記判定手段は、前記第１のプロセスＩＤと前記第２のプロセスＩＤとを比較する比較手段と、比較の結果一致したときのみ許可信号を受け取るデコーダとを有することを特徴とする請求項３に記載のコンピュータ・システム。
【請求項５】
前記デコーダは、前記アドレス・バスに出力された前記アクセス先アドレスが、前記スレーブ・デバイスに割り付けられたアドレス範囲に含まれ、かつ前記比較手段から許可信号を受け取ったときに、前記トランザクションに正常に応答することを決定して前記アクセスを許可することを特徴とする請求項４に記載のコンピュータ・システム。
【請求項６】
前記マスタ・デバイスはマイクロプロセッサであり、前記スレーブ・デバイスはＭＰＵを備えたメモリであり、
前記ＭＰＵは、前記システム・バスと前記メモリの間に位置し、かつ前記第２のレジスタを有し、
前記トランザクション発生時、前記ＭＰＵは前記アドレス・バス上の値が所定のアドレス範囲にあり、かつ前記第１のプロセスＩＤと前記第２のプロセスＩＤとが一致したときに前記メモリへのアクセスを許可することを特徴とする請求項２から５のいずれか１項に記載のコンピュータ・システム。
【請求項７】
前記マイクロプロセッサの第１のレジスタには、前記マイクロプロセッサ上で動作するオペレーティング・システムが現在実行中のソフトウェア・プロセスの番号をそのまま設定することを特徴とする請求項６に記載のコンピュータ・システム。
【請求項８】
前記マイクロプロセッサの第１のレジスタには、前記マイクロプロセッサ上で動作するオペレーティング・システムが現在実行中のソフトウェア・プロセスに関連づけた値を設定することを特徴とする請求項６に記載のコンピュータ・システム。
【請求項９】
前記マスタ・デバイス及び前記スレーブ・デバイスは、周辺デバイスとメモリとの間に接続されたＤＭＡＣであり、
前記ＤＭＡＣは前記マスタ・デバイスとして動作して、前記第１のレジスタに格納されている前記第１のプロセスＩＤを前記システム・バス上に送出して前記トランザクションを開始し、前記周辺デバイスから読み出されたデータを前記ＤＭＡＣの内部の転送データ・レジスタに書き込み、
前記ＤＭＡＣは再度、前記マスタ・デバイスとして動作して、前記転送データ・レジスタの値を前記システム・バスに出力して前記メモリへの書き込みトランザクションを開始することを特徴とする請求項１に記載のコンピュータ・システム。
【請求項１０】
前記第１のレジスタの値は、マイクロプロセッサ上のソフトウェアが初期設定することを特徴とする請求項９に記載のコンピュータ・システム。
【請求項１１】
前記第１のレジスタは、マイクロプロセッサが前記ＤＭＡＣのレジスタをアクセスしたときに、前記システム・バス上の値を自動取得することを特徴とする請求項９に記載のコンピュータ・システム。
【請求項１２】
前記ＤＭＡＣの内部レジスタ群をスレーブ・デバイスとして扱い、
前記第１のレジスタの初期設定中は、前記ＤＭＡＣは前記スレーブ・デバイスとして動作し、前記マスタ・デバイスとして動作しているマイクロプロセッサからのアクセスを受け入れることを特徴とする請求項９に記載のコンピュータ・システム。
【請求項１３】
前記スレーブ・デバイスは、複数の前記第２のプロセスＩＤを保持し、
前記スレーブ・デバイスは、前記第１のプロセスＩＤと前記複数の第２の第２のプロセスＩＤの内のいずれか一つの値とが所定の関係を満たすときに、前記トランザクションを受け入れることを特徴とする請求項１に記載のコンピュータ・システム。
【請求項１４】
前記スレーブ・デバイスは第２のレジスタを有し、
前記第２のプロセスＩＤはこの第２のレジスタに格納されていることを特徴とする請求項１に記載のコンピュータ・システム。
【請求項１５】
前記第２のプロセスＩＤは固定値であることを特徴とする請求項１に記載のコンピュータ・システム。
【請求項１６】
ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有するマスタ・デバイスと、アクセスを許可する第２のプロセスＩＤを保持するスレーブ・デバイスと、マスタ・デバイスとスレーブ・デバイスに接続されたシステム・バスとを有するコンピュータ・システムにおいて、
トランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出することを特徴とするマスタ・デバイス。
【請求項１７】
ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有するマスタ・デバイスと、アクセスを許可する第２のプロセスＩＤを保持するスレーブ・デバイスと、マスタ・デバイスとスレーブ・デバイスに接続されたシステム・バスとを有するコンピュータ・システムにおいて、
第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れることを特徴とするスレーブ・デバイス。
【請求項１８】
前記スレーブ・デバイスは第２のレジスタを有し、
前記第２のプロセスＩＤはこの第２のレジスタに格納されていることを特徴とする請求項１７に記載のスレーブ・デバイス。
【請求項１９】
前記第２のプロセスＩＤは固定値であることを特徴とする請求項１７に記載のスレーブ・デバイス。
【請求項２０】
ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有するマスタ・デバイスと、アクセスを許可する第２のプロセスＩＤを保持するスレーブ・デバイスと、マスタ・デバイスとスレーブ・デバイスに接続されたシステム・バスとを有するコンピュータ・システムの処理方法において、
マスタ・デバイスは、トランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出し、
スレーブ・デバイスは、第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れることを特徴とするコンピュータ・システムの処理方法。
【請求項２１】
前記スレーブ・デバイスは、前記第１のプロセスＩＤと前記第２のプロセスＩＤとを比較して一致したときのみアクセスを許可することを特徴とする請求項２０に記載のコンピュータ・システムの処理方法。
【請求項２２】
前記マスタ・デバイスは、前記システム・バスのアドレス・バスにアクセス先アドレスを出力し、
前記スレーブ・デバイスは、前記アクセス先アドレスが、割り付けられたアドレス範囲に含まれかつ前記比較が一致したときに、前記トランザクションに正常に応答することを決定して前記アクセスを許可することを特徴とする請求項２１に記載のコンピュータ・システムの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・システム及びコンピュータ・システムの処理方法に関し、特に、アクセス保護機構を備えたコンピュータ・システム及びコンピュータ・システムの処理方法に関する。
【背景技術】
【０００２】
現在、ＰＣなどの汎用コンピュータ・システムか、携帯電話やカーナビなどの組込みコンピュータ・システムかを問わず、コンピュータ・システムに要求される性能は増加し、要求される機能は複雑化している。
【０００３】
高い要求性能を満たすため、マイクロプロセッサを介さずに高速データ転送を行うダイレクト・メモリ・アクセス・コントローラ(Direct Memory Access Controller、 以下、ＤＭＡＣという）を備えたり、複数のマイクロプロセッサやアクセラレータ（特定機能を高速に処理する専用ハードウェア）を備え並列動作させるシステムが増えている。
【０００４】
また、複雑な機能を実現するため、マルチタスク・オペレーティング・システムの制御下で複数のソフトウェア・プロセス（以下、単にプロセスという）を並行動作させるシステムが普通になってきた。
【０００５】
車載や医療向けの機器など高い信頼性が求められるコンピュータ・システム上で、複数のプロセスを並行動作させる場合、あるプロセスのソフトウェアに内在する論理バグやノイズによる誤動作などが原因となって発生する不正なアドレス空間へのアクセス（読み出しまたは書き込み）が他のプロセスの状態を破壊しないよう保護する機構（以下、単に保護機構という）を導入することが必須である。ここで、プロセスの状態とは、そのプロセスが使用するメモリの内容や周辺デバイスの状態（内部状態を含む）を意味する。
【０００６】
既存のコンピュータ・システム及び既存のコンピュータ・システムの保護機構についての関連技術としては、特許文献として、特開平０６−２３６３００号公報（特許文献１）、特開平１０−２４０６２３号公報（特許文献２）、特開平０１−２６５３４１号公報（特許文献３）、特開昭６３−０２９８４９号公報（特許文献４）、特開２００７−０１１５８０号公報（特許文献５）、特表平１１−５０１１４１号公報（特許文献６）等がある。
【０００７】
また、非特許文献として、Infineon、 TC1767 User's Manual V1.0、インターネット＜http://www.infineon.com/dgdl/TC1767_UM_V1.0.pdf?folderId=db3a3043156fd5730115b892639c0e97&fileId=db3a30431be39b97011bff530d517bcd＞（非特許文献１）、標準技術集インターネット＜URL:http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/handoutai_ip/1-3-9.htm＞（非特許文献２）、非特許文献１に同じ、p.11-73（非特許文献３）等がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０６−２３６３００号公報
【特許文献２】特開平１０−２４０６２３号公報
【特許文献３】特開平０１−２６５３４１号公報
【特許文献４】特開昭６３−０２９８４９号公報
【特許文献５】特開２００７−０１１５８０号公報
【特許文献６】特表平１１-５０１１４１号公報
【非特許文献】
【０００９】
【非特許文献１】Infineon、 TC1767 User's Manual V1.0、インターネット＜http://www.infineon.com/dgdl/TC1767_UM_V1.0.pdf?folderId=db3a3043156fd5730115b892639c0e97&fileId=db3a30431be39b97011bff530d517bcd＞
【非特許文献２】標準技術集インターネット＜URL:http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/handoutai_ip/1-3-9.htm＞
【非特許文献３】Infineon、 TC1767 User's Manual V1.0、インターネット＜http://www.infineon.com/dgdl/TC1767_UM_V1.0.pdf?folderId=db3a3043156fd5730115b892639c0e97&fileId=db3a30431be39b97011bff530d517bcd＞ p.11-73
【発明の概要】
【発明が解決しようとする課題】
【００１０】
既存の保護機構では、マスタ・デバイスがマイクロプロセッサであり、かつスレーブ・デバイスがメモリであるときはＭＭＵやＭＰＵといった汎用的な仕組みが用意されており、例えばメモリ容量が異なる構成においても同一の保護機構がそのまま使える。
【００１１】
以下、マイクロプロセッサやＤＭＡＣなどトランザクションを開始するデバイスをマスタ・デバイス、マスタ・デバイスが開始したトランザクションのアクセス対象をスレーブ・デバイスと呼ぶことにする。
【００１２】
しかし、マスタ・デバイスがＤＭＡＣであるか、もしくはスレーブ・デバイスが周辺デバイスである場合に一般的に用いられている許可ビット・レジスタ方式には汎用性が欠けており、例えば、周辺デバイスが追加された場合には許可ビットを追加して保護機構全体を再設計する必要がある。また、ほぼ必ず設計ごとに保護機構が異なりソフトウェア互換性がないため、制御ソフトウェアを変更する必要もある。
【００１３】
このように許可ビット・レジスタ方式には汎用性に欠け、再利用性に難があるため、バスマスタの種類を問わず適用できる統一性を備え、スレーブ・デバイス数が変化しても適用できるスケーラビリティを兼ね備えた保護機構が求められている。
【００１４】
本発明の目的は、上述した課題であるマスタ・デバイス、スレーブ・デバイスの種類や数を問わず適用できる汎用的でスケーラブルなアクセス保護機構を有するコンピュータ・システム及びその処理方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明のコンピュータ・システムでは、ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有し、かつトランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出するマスタ・デバイスと、
アクセスを許可する第２のプロセスＩＤを保持し、かつ第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れるスレーブ・デバイスとを有する。
【００１６】
以下、メモリや入出力デバイスなどのアクセス対象のアドレスを指定してデータを読み書きするという一ひとまとまりの通信をトランザクションと呼ぶ。
【００１７】
また、本発明のマスタ・デバイスでは、ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有するマスタ・デバイスと、アクセスを許可する第２のプロセスＩＤを保持するスレーブ・デバイスと、マスタ・デバイスとスレーブ・デバイスに接続されたシステム・バスとを有するコンピュータ・システムにおいて、トランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出する。
【００１８】
また、本発明のスレーブ・デバイスでは、ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有するマスタ・デバイスと、アクセスを許可する第２のプロセスＩＤを保持するスレーブ・デバイスと、マスタ・デバイスとスレーブ・デバイスに接続されたシステム・バスとを有するコンピュータ・システムにおいて、第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れる。
【００１９】
また、本発明のコンピュータ・システムの処理方法では、ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有するマスタ・デバイスと、アクセスを許可する第２のプロセスＩＤを保持するスレーブ・デバイスと、マスタ・デバイスとスレーブ・デバイスに接続されたシステム・バスとを有するコンピュータ・システムの処理方法において、
マスタ・デバイスは、トランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出し、
スレーブ・デバイスは、第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、トランザクションを受け入れる。
【発明の効果】
【００２０】
本発明によれば、マスタ・デバイスやスレーブ・デバイスの種類や数を問わない汎用かつスケーラブルなアクセス保護機構が実現できる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態のコンピュータ・システムを示すブロック図である。
【図２】本発明の実施の形態のスレーブ・デバイスを示すブロック図である。
【図３】本発明の実施の形態のマイクロプロセッサとＭＰＵを示すブロック図である。
【図４】本発明の実施の形態のＤＭＡＣを示すブロック図である。
【図５】本発明の実施の形態のマスタ・デバイスの動作概略を示すフローチャートである。
【図６】本発明の実施の形態のマイクロプロセッサの動作概略を示すフローチャートである。
【図７】本発明の実施の形態のＭＰＵの動作概略を示すフローチャートである。
【図８】既存のコンピュータ・システムを示すブロック図である。
【図９】既存のマイクロプロセッサとＭＰＵを表すブロック図である。
【図１０】既存のＤＭＡＣを示すブロック図である。
【図１１】既存のマスタ・デバイスの動作概略を示すフローチャートである。
【図１２】既存のマイクロプロセッサの動作概略を示すフローチャートである。
【図１３】既存のＭＰＵの動作概略を示すフローチャートである。
【発明を実施するための形態】
【００２２】
（既存のコンピュータ・システム）
まず、最初に、本発明の理解が容易になるように、既存のコンピュータ・システムとその保護機構を図８から１３を参照しながら説明する。
【００２３】
まず、既存のコンピュータ・システムのシステム・バス周辺の構造と動作を説明する。
【００２４】
コンピュータ・システムのハードウェアは、ソフトウェアを実行するマイクロプロセッサ、ソフトウェアやデータを記憶するメモリ、周辺デバイスなどから構成されている。ここで周辺デバイスとは入出力デバイスやアクセラレータなどを意味する。
【００２５】
図８に示すように、これらのコンピュータ・システムの構成要素間では、システム・バス経由でデータのアクセス（読み出しまたは書き込み）が行われる。システム・バスはアクセス先のアドレスを指定するアドレス・バス８０３、アドレス・バスで指定されたアドレスに位置するデータを転送するデータ・バス８０１、アクセスの種類を指定するなどの管理を行うための制御バス８０２などから成る。
【００２６】
ここで、上述のように、メモリや入出力デバイスなどのアクセス対象のアドレスを指定してデータを読み書きするという一ひとまとまりの通信をトランザクションと呼ぶ。また、マイクロプロセッサやＤＭＡＣなどトランザクションを開始するデバイスをマスタ・デバイス８１０、マスタ・デバイスが開始したトランザクションのアクセス対象をスレーブ・デバイス８２０と呼ぶ。
【００２７】
マスタ・デバイス、スレーブ・デバイスとはシステム・バス上での機能を表しているため、デバイスによっては両方の機能を備える場合がある。例えば、ＤＭＡＣはスレーブ・デバイスとしてマクロプロセッサから初期設定された後、マスタ・デバイスとしての動作を開始し、他のスレーブ・デバイス（周辺デバイスやメモリ等）をアクセスする。
【００２８】
次に、トランザクションの手順の概略を図１１に示す。
【００２９】
まず、マスタ・デバイス８１０は、トランザクションを開始すると（ステップ１１０１）、アクセス先アドレスをアドレス・バス８０３に出力する（ステップ１１０２）。
【００３０】
次に、トランザクションの種類を判定し（ステップ１１０３）、それがデータ読み出しの場合、マスタ・デバイス８１０は、このトランザクションがデータ読み出しであることを示す制御信号を制御バス８０２に出力する（ステップ１１０４）。
【００３１】
最後に、マスタ・デバイス８１０は、アクセス対象のスレーブ・デバイス８２０がデータ・バス８０１上に出力したデータを取得する（ステップ１１０５）。
【００３２】
または、トランザクションの種類がデータ書き込みの場合、マスタ・デバイス８１０が書き込みデータをデータ・バス８０１に出力する（ステップ１１０６）。
【００３３】
最後に、マスタ・デバイス８１０は、このトランザクションがデータ書き込みであることを示す制御信号を制御バス８０２に出力する（ステップ１１０７）。
【００３４】
既存のスレーブ・デバイスの動作を、周辺デバイスを例にとり説明する。既存の周辺デバイスはシステム・バスに接続され、マスタ・デバイス８１０が開始したトランザクションの対象アドレスをアドレス・デコーダで比較し、自身のアドレスと一致した場合にトランザクションの対象として選択され、例えば、周辺デバイスの内部レジスタのアクセスを許可する。
【００３５】
次に、既存のコンピュータ・システムの保護機構について説明する。
【００３６】
既存技術では、マスタ・デバイスとスレーブ・デバイスの組み合わせによって異なる保護機構が用いられてきた。
【００３７】
マスタ・デバイスがマイクロプロセッサで、スレーブ・デバイスがメモリの場合、保護機構としてメモリ・プロテクション・ユニット(Memory Protection Unit、 以下ＭＰＵという)かメモリ・マネージメント・ユニット(Memory Management Unit、 以下ＭＭＵという）が導入されることが多い。
【００３８】
ＭＰＵは特定のプロセスに対し決められたメモリ範囲のみアクセスを許可することで、あるプロセスの状態を他のプロセスから参照・変更できないようにする保護機構である。ＭＰＵは低コストな組込みマイクロプロセッサで採用されることが多い。既存のＭＰＵの例としては上記特許文献１、特許文献２に挙げたようなものがある。
【００３９】
既存の典型的なＭＰＵの構成を図９を参照しながら説明する。
【００４０】
既存のマイクロプロセッサ９１０は、システム・バスに接続され、ＭＰＵ９２０によって保護されたメモリ９３０上のプログラムを実行したり、メモリ９３０や周辺デバイス上のデータをアクセスするためバス・トランザクションを生成する。
【００４１】
図１２にマイクロプロセッサ９１０がバス・トランザクションを生成する手順を示す。
【００４２】
最初に、バス・トランザクション生成の目的を判定し（ステップ１２０２）、プログラム実行のために、次に実行する機械語命令を取得することが目的であれば、バス・インターフェース・ユニット(Bus Interface Unit、 以下ＢＩＵという）９１１は、その命令の位置を示すプログラム・カウンタ(Program Counter、 以下ＰＣという）９１３の値をアドレス・バスに出力する（ステップ１２０３）。
【００４３】
あるいは、データ・アクセスが目的であれば、汎用レジスタや命令語中の即値をもとにアドレス・ジェネレータ(Address Generator、以下ＡＧという）９１２が生成したアクセス先のアドレス値をシステム・バスに出力する（ステップ１２０４）。
【００４４】
以降の手順（ステップ１２０５からステップ１２０９）は図１１と同様である。
【００４５】
ＭＰＵ９２０はシステム・バスとメモリ９３０の間に位置し、上限アドレス・レジスタ９２２と下限アドレス・レジスタ９２３を持つ。
【００４６】
次に、ＭＰＵの動作を図１３に示す。
【００４７】
トランザクション発生時、ＭＰＵ９２０はシステム・バス上のアドレス・バス９０３上の値と上限アドレス・レジスタ９２２、下限アドレス・レジスタ９２３の値を比較器９２１で比較し、アドレス・バス上の値が下限アドレス・レジスタの値以上で（ステップ１３０２）、上限アドレス・レジスタの値以下のとき（ステップ１３０３）、メモリへのアクセスを許可し（ステップ１３０４）、それ以外の場合は許可しない（ステップ１３０５）。
【００４８】
ＭＰＵ９２０はメモリ９３０の内容をきめ細かく保護できるように、上限アドレス・レジスタ９２２と下限アドレス・レジスタ９２３の組を複数持つことがある。あるいは、上記特許文献３に示すように、ソフトウェアがプロセスＩＤをＭＰＵ９２０に明示的に書き込むことにより、上限アドレス・レジスタ９２２と下限アドレス・レジスタ９２３の組を選択する機構を持ち、プロセスごとに独立した保護領域を持てるようにした例がある。あるいは、アクセスを許可するメモリ領域の上下限アドレスを設定するのではなく、アクセスを禁止するメモリ領域の上下限アドレスを設定する実装もあり得る。
【００４９】
汎用プロセッサ（ｘ８６、ＭＩＰＳ、ＰｏｗｅｒＰＣ、ＳＰＡＲＣなど）では、マスタ・デバイスがマイクロプロセッサで、スレーブ・デバイスがメモリの場合、保護機構としてＭＭＵが導入されることが多い（非特許文献２）。
【００５０】
ＭＭＵでは、論理メモリ空間を４Ｋバイトなどのページ単位に分割し、ページごとに対応する物理メモリのアドレスやアクセス許可属性を設定する。これらの設定を納めたテーブルは各プロセス別に主記憶メモリ上に用意されるが、マイクロプロセッサはこのテーブルの一部を、高速化のためにマイクロプロセッサ内部のトランスレーション・ルックアサイド・バッファ(Translation Lookaside Buffer、 以下ＴＬＢという）にキャッシュして利用する。
【００５１】
マスタ・デバイスがマイクロプロセッサで、スレーブ・デバイスが周辺デバイスの場合、周辺デバイスごとにアクセス許可・不許可を設定するビットマップを格納するレジスタを用いる方式の保護機構（以下、許可ビット・レジスタ方式という）がある。通常、固定アドレスに割り付けられ、小さいアドレス空間（数十バイト程度）を占有するという周辺デバイスの特性から、ＭＭＵまたはＭＰＵによる保護機構より許可ビット・レジスタ方式が適している。
【００５２】
他の、より汎用的な方法としては、Ｉ／Ｏアドレス１バイトごとに１ビットの許可ビット・テーブルを主記憶上に持つ方式がある（特許文献４）。ただし、アクセスごとに上記テーブルを参照するため、効率が悪いという問題がある。
【００５３】
マスタ・デバイスが周辺デバイスの場合、許可ビット・レジスタ方式をメモリにも拡張した方式が用いられることがある。固定的なメモリ領域や周辺デバイスごとにアクセス許可・不許可を設定するビットマップを格納するレジスタを用いた例がある（非特許文献３）。
【００５４】
既存の保護機構では、マスタ・デバイスがマイクロプロセッサであり、かつスレーブ・デバイスがメモリであるときはＭＭＵやＭＰＵといった汎用的な仕組みが用意されており、例えば、メモリ容量が異なる構成においても同一の保護機構がそのまま使える。
【００５５】
しかし、マスタ・デバイスがＤＭＡＣであるか、もしくはスレーブ・デバイスが周辺デバイスである場合に一般的に用いられている許可ビット・レジスタ方式には汎用性が欠けており、例えば、周辺デバイスが追加された場合には許可ビットを追加して保護機構全体を再設計する必要がある。また、ほぼ必ず設計ごとに保護機構が異なりソフトウェア互換性がないため、制御ソフトウェアを変更する必要もある。
【００５６】
このように許可ビット・レジスタ方式には汎用性に欠け、再利用性に難があるため、バスマスタの種類を問わず適用できる統一性を備え、スレーブ・デバイス数が変化しても適用できるスケーラビリティを兼ね備えた保護機構が求められている。
【００５７】
本発明の実施の形態は、コンピュータ・システムにおいて、マスタ・デバイス、スレーブ・デバイスの種類や数を問わず適用できる、汎用的でスケーラブルなアクセス保護機構を提供する。
【００５８】
このため、本発明の実施の形態では、マスタ・デバイスは現在実行中のソフトウェアのプロセスＩＤ値を格納するレジスタを備え、システム・バス上にトランザクションを生成するとき、アクセス先アドレスと同時にプロセスＩＤを送出する。ターゲット・デバイスはアクセスを許可するプロセスＩＤを格納するレジスタを備え、プロセスＩＤが一致するトランザクションのみ受け入れる。
【００５９】
（本発明の実施の形態）
次に、本発明の実施の形態について図を参照して説明する。
【００６０】
最初に、第１の実施の形態として、図１を参照しながら、本発明のコンピュータ・システムのマスタ・デバイスの動作を説明する。
【００６１】
本発明のシステム・バスはアクセス先のアドレスを指定するアドレス・バス１０３、アドレス・バス１０３で指定されたアドレスに位置するデータを転送するデータ・バス１０１、アクセスの種類を指定するなどの管理を行うための制御バス１０２に加えトランザクション・プロセス識別子(Transaction Process Identifier)・バス(以下、ＴＰＩＤバスという）１０４から成る。
【００６２】
本発明の実施の形態のシステム・バスに接続されるマスタ・デバイス１１０はプロセス識別子(Process Identifier)・レジスタ１１１（以下、ＰＩＤレジスタという）を持つ。
【００６３】
システム・バス上に接続されたマスタ・デバイス１１０がトランザクションを生成し、スレーブ・デバイス１２０をアクセスする手順を図５に示す。
【００６４】
まず、マスタ・デバイス１１０は、トランザクションを開始すると（ステップ５０１）、アクセス先アドレスをアドレス・バス１０３に出力（ステップ５０２）し、ＰＩＤレジスタ１１１の値をＴＰＩＤバス１０４に出力する（ステップ５０３）。
【００６５】
次に、トランザクションの種類を判定し（ステップ５０４）、それがデータ読み出しの場合、マスタ・デバイス１１０は、このトランザクションがデータ読み出しであることを示す制御信号を制御バス１０２に出力する（ステップ５０５）。
【００６６】
最後に、マスタ・デバイス１１０は、アクセス対象のスレーブ・デバイス１２０がデータ・バス１０１上に出力したデータを取得する（ステップ５０６）。
【００６７】
また、トランザクションの種類がデータ書き込みの場合、マスタ・デバイス１１０が書き込みデータをデータ・バス１０１に出力する（ステップ５０７）。
【００６８】
最後に、マスタ・デバイス１１０は、このトランザクションがデータ書き込みであることを示す制御信号を制御バスに出力する（ステップ５０８）。
【００６９】
これらの手順は典型的なバス・トランザクションの概略を例として示したもので、準拠するバスプロトコルによっては、アドレス、データ、制御信号、ＴＰＩＤの出力順序が前後する場合がある。バスの利用権調停や、トランザクションの延長やキャンセル、その他の付加機能のための制御が追加される場合もある。
【００７０】
次に、本発明の第２の実施の形態として、図２を参照しながら、もっとも単純なスレーブ・デバイスとして、固定アドレスに割り付けられた周辺デバイス（入出力デバイスなど）の例を説明する。
【００７１】
本発明の第２の実施の形態のスレーブ・デバイス２１０中の比較器２１２は、トランザクション中にマスタ・デバイスがＴＰＩＤバス２０４に出力した値と、スレーブ・デバイス２１０自身が持つＴＰＩＤレジスタ２１１の値を比較し、一致したときのみ許可信号をデコーダ２１３に通知する。
【００７２】
デコーダ２１３はトランザクション中にマスタ・デバイスがアドレス・バス２０３に出力したアドレス値が、スレーブ・デバイスが割り付けられたアドレス範囲に含まれ、かつ比較器２１２から許可信号が通知されているとき、そのトランザクションに正常に応答することを決定し、内部レジスタ２１４へのアクセスを許可する等の動作を行う。
【００７３】
次に、図３を参照しながら、本発明の実施の形態の保護機構を持つバスマスタ・デバイスとしてマイクロプロセッサ、本発明の実施の形態の保護機構を持つスレーブ・デバイスとしてＭＰＵを備えたメモリの動作を説明する。
【００７４】
本発明の実施の形態の保護機構を持つマイクロプロセッサ３１０は、次に実行する機械語命令の位置を示すプログラム・カウンタ(Program Counter、 以下、ＰＣという）３１３、データ・アクセス対象のアドレスを生成するアドレス・ジェネレータ(Address Generator、 以下、ＡＧという）３１２、現在実行中のプロセス番号に関連づけられた値を格納するＰＩＤレジスタ３１４を持つ。
【００７５】
次に、本発明の実施の形態のマイクロプロセッサ３１０がトランザクションを生成する手順を図６に示す。
【００７６】
バス・トランザクション生成の目的を判定し（ステップ６０２）、プログラム実行のために、次に実行する機械語命令を取得することが目的であれば、バス・インターフェース・ユニット(Bus Interface Unit、 以下、ＢＩＵという）３１１は、その命令の位置を示すＰＣ３１３の値をアドレス・バス３０３に出力（ステップ６０３）するとともに、ＰＩＤレジスタ３１４の値をＴＰＩＤバス３０４に出力する（ステップ６０４）。
【００７７】
また、データ・アクセスが目的であれば、ＡＧ３１２が生成したアクセス先のアドレス値をシステム・バスに出力（ステップ６０５）するとともに、ＰＩＤレジスタ３１４の値をＴＰＩＤバス３０４に出力する（ステップ６０６）。
【００７８】
以降の手順（ステップ６０５からステップ６１１）は図５のステップ５０４からステップ５０８と同様である。
【００７９】
次に、本発明の第３の実施の形態として、本発明の実施の形態のマスタ・デバイスの別の例であるＤＭＡＣについて、図４を参照しながら説明する。
【００８０】
ＤＭＡＣは、初期設定後はマイクロプロセッサ上のソフトウェアの介在なしに、自律的に高速なデータ転送を行う機構である。
【００８１】
ここで、本発明の第３の実施の形態の理解を容易にするために、既存のＤＭＡＣの例を図１０に示す。
【００８２】
これは１９７０年代から使われているＩｎｔｅｌ８２５７の主要部分を抜き出したものである。このＤＭＡＣは転送元アドレス・レジスタ１０１２、転送先アドレス・レジスタ１０１３、転送回数レジスタ１０１４を持つ。これらのレジスタの値はマイクロプロセッサ上のソフトウェアにより初期設定される。
【００８３】
既存のＤＭＡＣによるトランザクションの例として、転送元が周辺デバイスで転送先がメモリである場合を考える。この場合、転送元の周辺デバイスからの専用信号線の指示によりＤＭＡが開始される。
【００８４】
まず、ＤＭＡＣ１０１０はマスタ・デバイスとして動作し、バス・インターフェース・ユニット(Bus Interface Unit、 以下、ＢＩＵという）１０１１は転送元アドレス・レジスタ１０１２の値をアドレス・バス１００３に出力して周辺デバイスにデータ読み出しを要求することにより、トランザクションを開始する。周辺デバイスから読み出されたデータはＤＭＡＣ１０１０内部の転送データ・レジスタ１０１５に書き込まれる。
【００８５】
次に、再度、ＤＭＡＣ１０１０はマスタ・デバイスとして動作し、転送先アドレス・レジスタ１０１３の値をＢＩＵ１０１１経由でアドレス・バス１００３に、転送データ・レジスタ１０１５の値をデータ・バス１００１に出力することで、メモリへの書き込みトランザクションを開始する。
【００８６】
メモリへの書き込みトランザクション終了後、転送先アドレス・レジスタ１０１３の値は更新される。以上の操作を転送回数レジスタ１０１４に設定された回数だけ繰り返す。ＤＭＡＣ１０１０には通常、種々の動作モードや動作タイミングの設定、ステータス通知のためのレジスタや信号端子が存在するが、以上の説明では簡単のために省略してある。
【００８７】
次に、図４を参照して、本発明の実施の形態の保護機構を持つＤＭＡＣを示す。
【００８８】
本発明のＤＭＡＣ４１０は、転送元アドレス・レジスタ４１２、転送先アドレス・レジスタ４１３、転送回数レジスタ４１４に加え、ＴＰＩＤレジスタ４１６を持つ。これらのレジスタの値はマイクロプロセッサ上のソフトウェアにより初期設定される。
【００８９】
本発明の実施の形態のＤＭＡＣによるトランザクションの例として、転送元が周辺デバイスで転送先がメモリである場合を考える。この場合、転送元の周辺デバイスからの通知によりＤＭＡが開始される。通知の手段としては、周辺デバイスからＤＭＡＣへの専用信号線を敷設する等が考えられる。
【００９０】
まず、ＤＭＡＣ４１０はマスタ・デバイスとして動作し、ＢＩＵ４１１は転送元アドレス・レジスタ４１２の値をアドレス・バス４０３に、ＴＰＩＤレジスタ４１６の値をＴＰＩＤバス４０４に出力して周辺デバイスにデータ読み出しを要求することにより、トランザクションを開始する。周辺デバイスから読み出されたデータはＤＭＡＣ４１０内部の転送データ・レジスタ４１５に書き込まれる。
【００９１】
次に、再度、ＤＭＡＣ４１０はマスタ・デバイスとして動作し、転送先アドレス・レジスタ４１３の値をアドレス・バス４０３に、転送データ・レジスタ４１５の値をデータ・バス４０１に、ＴＰＩＤレジスタ４１６の値をＴＰＩＤバス４０４に出力することで、メモリへの書き込みトランザクションを開始する。
【００９２】
メモリへの書き込みトランザクション終了後、転送先アドレス・レジスタ４１３の値は更新される。以上の操作を転送回数レジスタ４１４に設定された回数だけ繰り返す。
【００９３】
なお、本発明の実施の形態は、ＤＭＡＣ４１０の実装細部の差異を問わず一般的に適用できる。例えば、図４では、簡単のためにＤＭＡチャネル数が１であるとして説明したが、複数のＤＭＡチャネルを持つＤＭＡＣでも同様の議論が可能である。複数のＤＭＡチャネルを持つとき、全ＤＭＡチャネルで共通のＴＰＩＤレジスタ４１６を持つ構成、チャネルごとに独立したＴＰＩＤレジスタ４１６を持つ構成が考えられる。また、図４では、転送先のメモリ領域を、転送先アドレス・レジスタ４１３と転送回数レジスタ４１４により示すとしたが、転送先開始アドレス・レジスタと転送先終了アドレス・レジスタにより示すこともできる。
【００９４】
さらに、図４では、データを転送データ・レジスタ４１５経由で転送する構成としたが、周辺デバイスからメモリに直接データ転送する構成も考えられる。
【００９５】
また、ＴＰＩＤレジスタ４１６の値を、データ転送元向けとデータ転送先向けに、独立して持つ構成も考えられる。
【００９６】
また、図４において、ＴＰＩＤレジスタ４１６の値はマイクロプロセッサ上のソフトウェアが初期設定するとしたが、別の構成では、マイクロプロセッサがＤＭＡＣ４１０上のレジスタ（転送元アドレス・レジスタ、転送先アドレス・レジスタ、転送回数レジスタ、モード設定レジスタ、コマンド・レジスタ、ステータス・レジスタ等）のうちいずれかをアクセスしたときの、ＴＰＩＤバス４０４上の値を自動取得する構成も可能である。
【００９７】
以上の説明ではＤＭＡＣ４１０の初期設定はマイクロプロセッサ上のソフトウェアが行うとしたが、マイクロプロセッサと共有するメモリまたはＤＭＡＣが持つ専用メモリ上に置かれたマイクロ・プログラム（デスクリプタと呼ばれることもある）をＤＭＡＣが直接解釈することによって設定する構成も可能である。
【００９８】
ＤＭＡＣ４１０の内部レジスタ群を図２に示したスレーブ・デバイスとして扱い、保護機構で守ることが可能である。図４に示したＤＭＡＣ４１０では、マイクロプロセッサ上のソフトウェアが、転送元アドレス・レジスタ４１２、転送先アドレス・レジスタ４１３、転送回数レジスタ４１４、ＴＰＩＤレジスタ４１６を初期設定するとした。これらのレジスタの初期設定中は、ＤＭＡＣ４１０はスレーブ・デバイスとして動作しており、バスマスタ・デバイスとして動作しているマイクロプロセッサからのアクセスを受け入れている。そのため、図２に示したように、スレーブ・デバイスとしてのＴＰＩＤレジスタを持ちこれらのレジスタを保護することが可能である。
【００９９】
図４に関する議論はバスマスタ機能を持つ周辺デバイスに一般的に適用できる。
【０１００】
本発明の保護機構を持つバスマスタ・デバイスは、アクセス先のメモリ・アドレスの値をアドレス・バスに、ＴＰＩＤレジスタの値をＴＰＩＤバスに、その他必要な信号をシステム・バスに出力することでメモリへのトランザクションを開始する。
【０１０１】
次に、本発明の第４の実施の形態として、本発明の実施の形態の保護機構を備えたスレーブ・デバイスの例であるＭＰＵについて、再度図３を参照しながら説明する。
【０１０２】
このＭＰＵ３２０はシステム・バスとメモリ３３０の間に位置し、既存のＭＰＵ（図９）が持つ上限アドレス・レジスタ３２２と下限アドレス・レジスタ３２３に加えＴＰＩＤレジスタ３２４を持つ。
【０１０３】
次に、ＭＰＵ３２０の動作を図７に示す。
【０１０４】
トランザクション発生時、ＭＰＵ３２０はシステム・バス上のアドレス・バス３０３上の値と上限アドレス・レジスタ３２２、下限アドレス・レジスタ３２３の値を比較器３２１で比較し、アドレス・バス上の値が下限アドレス・レジスタの値以上で（ステップ７０２）、上限アドレス・レジスタの値以下で（ステップ７０３）、かつＴＰＩＤバス３０４上の値がＴＰＩＤレジスタ３２４と一致したとき（ステップ７０４）のみメモリへのアクセスを許可し（ステップ７０５）、それ以外の場合は許可しない（ステップ７０６）。
【０１０５】
トランザクション発生時、ＭＰＵ３２０はシステム・バス上のアドレス・バス３０３の値と上限アドレス・レジスタ３２２、下限アドレス・レジスタ３２３の値を比較し、アドレス・バス３０３の値が上限アドレス・レジスタの値以下で、下限アドレス・レジスタの値以上のとき、メモリへのアクセスを許可し、それ以外の場合は遮断する。
【０１０６】
既存のＭＰＵでも、単一バスマスタ・システムであれば、プロセス切り替え時にＭＰＵのレジスタ（上限アドレス・レジスタ、下限アドレス・レジスタ等）を入れ替えれば、他のプロセスの不正アクセスから保護できる。しかし、この方式ではプロセス切替時に、ＭＰＵレジスタ入替が必要になるためプロセス切替時間が長くなり、リアルタイム・システムに適さないという問題がある。
【０１０７】
また、今後主流になるであろうマルチプロセッサ・システム、または１個以上のマイクロプロセッサと１個以上のバスマスタ機能を持つアクセラレータを持つコンピュータ・システムでは、生成したプロセスが異なるトランザクションがシステム・バス上で細粒度で混在することになり、既存のＭＰＵでは対応できなくなるが、本発明の実施の形態のＭＰＵ３２０（図３）では保護が可能である。
【０１０８】
本発明の実施の形態によれば、マスタ・デバイスやスレーブ・デバイスの種類によらず、アクセス保護を実現できる。例えば、マスタ・デバイスがマイクロプロセッサであっても、ＤＭＡＣやアクセラレータのような周辺デバイスであっても、スレーブ・デバイスがメモリであっても入出力デバイスのような周辺デバイスであっても、同一の機構でアクセス保護が行える。
【０１０９】
また、本発明の実施の形態によれば、システム・バス上に接続されるマスタ・デバイスやスレーブ・デバイスの数によらず同一の機構が行える。例えば、マイクロプロセッサが複数個存在する場合でも同一のアクセス保護機構で対応できる。また、スレーブ・デバイスの数が増加しても、既存部分の設計変更を行う必要がない。
【０１１０】
このように、本発明の実施の形態によればマスタ・デバイスやスレーブ・デバイスの種類や数を問わない、汎用かつスケーラブルなアクセス保護機構が実現できる。
【０１１１】
以上、本発明の実施の形態について具体的に説明したが、本発明は上述の実施形態に限定されるものではなく、本発明技術的思想に基づく各種の変形が可能である。
【０１１２】
例えば、マイクロプロセッサ３１０のＰＩＤレジスタ３１４（図３）には、マイクロプロセッサ３１０上で動作するオペレーティング・システムが、現在実行中のソフトウェア・プロセスの番号をそのまま設定する構成、または、そのソフトウェア・プロセスに関連づけた値を設定する構成が可能である。後者の場合、マスタ・デバイスのＰＩＤレジスタ、ＴＰＩＤバス、スレーブ・デバイスのＴＰＩＤレジスタや比較器などのビット長を、同時にアクティブとなるプロセス数をカバーするのに充分な長さにまで削減できる。
【０１１３】
また、システム・バス上でＴＰＩＤバス１０４が専用の信号線で実現されているとしたが、ひとつのトランザクションにひとつのＴＰＩＤ値が付与されていれば、システム・バス実装の細部は問わない。例えば、物理的に同じ信号線を用い、時分割多重によりアドレス値とＴＰＩＤ値を伝達するシステム・バス構成も可能である。
【０１１４】
また、ひとつのスレーブ・デバイス２１０はひとつのＴＰＩＤレジスタ２１１（図２）を持つとした。しかし、ひとつのスレーブ・デバイス２１０が複数のＴＰＩＤレジスタ２１１を持ち、ＴＰＩＤバス２０４上の値がいずれかのＴＰＩＤレジスタ２１１の値と一致したときにそのスレーブ・デバイス２１０にアクセスを許可する構成も可能である。また、ひとつのスレーブ・デバイス２１０が機能別に複数のＴＰＩＤレジスタ２１１を持ち、機能別に細かくアクセスを制御する構成も可能である。
【０１１５】
また、ＴＰＩＤバス２０４上の値がスレーブ・デバイス２１０のＴＰＩＤレジスタ２１１の値と一致することをアクセス許可条件としたが、他の比較条件をアクセス許可条件とする構成も可能である。例えば、ＴＰＩＤバス２０４上の値がスレーブ・デバイス２１０のＴＰＩＤレジスタ２１１の値より大きいとき、大きいか等しいとき、小さいとき、小さいか等しいときにアクセスを許可する構成も可能である。
【０１１６】
また、スレーブ・デバイス２１０はＴＰＩＤバス２０４上の値とＴＰＩＤレジスタ２１１の値を比較した結果に基づきアクセス許可するとしたが、ＴＰＩＤレジスタ２１１を持たず固定値と比較した結果に基づきアクセス許可する構成も可能である。
【０１１７】
例えば、マイクロプロセッサが特権モード状態にあることをＴＰＩＤの特定値で示し、スレーブ・デバイス２１０はその特定のＴＰＩＤ値でのアクセスを許可する構成も可能である。さらに、ＴＰＩＤバス２０４上の値と固定値との比較結果、ＴＰＩＤバス２０４上の値とＴＰＩＤレジスタ２１１の値の比較結果の双方を勘案し、アクセスを許可する構成も可能である。
【０１１８】
また、スレーブ・デバイス２１０は、自身が割り付けられたアドレスとアドレス・バス２０３上の値を比較するデコーダ２１３と、ＴＰＩＤレジスタ２１１の値とＴＰＩＤバス２０４上の値を比較する比較器２１２を別に持つとしたが、これらの働きは似ているため、デコーダ２１３と比較器２１２を一体化した構成も可能である。
【０１１９】
また、デコーダ２１３と比較器２１２をスレーブ・デバイス２１０ごとに持つとしたが、複数のスレーブ・デバイスのデコーダと比較器の一部もしくは全部を一体化した集中制御型の構成も可能である。さらにマスタ・デバイスのＰＩＤレジスタも一体化した構成も可能である。
【０１２０】
また、メモリの保護機構としてＭＰＵを取り上げ、ＴＰＩＤによる保護機構を説明したが、メモリの保護機構としてＭＭＵを採用する本発明の保護機構も可能である。ＭＭＵを備えるマイクロプロセッサは、通常ＰＩＤレジスタを持ち、ＴＬＢのヒット率向上のために内部的に利用しているので、そのＰＩＤレジスタの値をシステム・バスに取り出すだけで本発明の保護機構を備えたマスタ・デバイスとすることができる。
【０１２１】
実際のコンピュータ・システムでは、マイクロプロセッサは図３の基本的な構成要素に加え、高速化や低電力化のために数々のキャッシュ機構、予測機構を備えているため、次に実行する機械語命令のアドレスを示すＰＣ値だけでなく、さらに将来のＰＣ値を予測した値がアドレス・バスに出力されることがある。このときのＴＰＩＤバスには、予測の元となったＰＣ値が属するプロセス番号に関連づけた値を出力する。
【符号の説明】
【０１２２】
１０１  データ・バス
１０２  制御バス
１０３  アドレス・バス
１０４  ＴＰＩＤバス
１１０  マスタ・デバイス
１１１  ＰＩＤレジスタ
１２０  スレーブ・デバイス
２０１  データ・バス
２０２  制御バス
２０３  アドレス・バス
２０４  ＴＰＩＤバス
２１０  スレーブ・デバイス
２１１  ＴＰＩＤレジスタ
２１２  比較器
２１３  デコーダ
２１４  内部レジスタ
３０１  データ・バス
３０２  制御バス
３０３  アドレス・バス
３０４  ＴＰＩＤバス
３１０  マイクロプロセッサ
３１１  ＢＩＵ
３１２  ＡＧ
３１３  ＰＣ
３１４  ＰＩＤレジスタ
３２０  ＭＰＵ
３２１  比較器
３２２  上限アドレス・レジスタ
３２３  下限アドレス・レジスタ
３２４  ＴＰＩＤレジスタ
３３０  メモリ
３３１  デコーダ
３４１  許可信号
４０１  データ・バス
４０２  制御バス
４０３  アドレス・バス
４０４  ＴＰＩＤバス
４１０  ＤＭＡＣ
４１１  ＢＩＵ
４１２  転送元アドレス・レジスタ
４１３  転送先アドレス・レジスタ
４１４  転送回数・レジスタ
４１５  転送データ・レジスタ
４１６  ＴＰＩＤレジスタ
８０１  データ・バス
８０２  制御バス
８０３  アドレス・バス
８１０  マスタ・デバイス
８２０  スレーブ・デバイス
９０１  データ・バス
９０２  制御バス
９０３  アドレス・バス
９１０  マイクロプロセッサ
９１１  ＢＩＵ
９１２  ＡＧ
９１３  ＰＣ
９２０  ＭＰＵ
９２１  比較器
９２２  上限アドレス・レジスタ
９２３  下限アドレス・レジスタ
９３０  メモリ
９３１  デコーダ
９４１  許可信号
１００１  データ・バス
１００２  制御バス
１００３  アドレス・バス
１０１０  ＤＭＡＣ
１０１１  ＢＩＵ
１０１２  転送元アドレス・レジスタ
１０１３  転送先アドレス・レジスタ
１０１４  転送回数・レジスタ
１０１５  転送データ・レジスタ
【図１】
2010250470.tif 000003
【図２】
2010250470.tif 000004
【図３】
2010250470.tif 000005
【図４】
2010250470.tif 000006
【図５】
2010250470.tif 000007
【図６】
2010250470.tif 000008
【図７】
2010250470.tif 000009
【図８】
2010250470.tif 000010
【図９】
2010250470.tif 000011
【図１０】
2010250470.tif 000012
【図１１】
2010250470.tif 000013
【図１２】
2010250470.tif 000014
【図１３】
2010250470.tif 000015
【手続補正書】
【提出日】平成22年8月23日(2010.8.23)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有し、かつトランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出するマスタ・デバイスと、
アクセスを許可する第２のプロセスＩＤを保持し、かつ第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、前記マスタ・デバイスが生成したトランザクションを受け入れるスレーブ・デバイスとを有し、
前記システム・バスは、少なくともアドレス・バスとプロセスＩＤバスを有し、
前記マスタ・デバイスは、前記トランザクションを開始する際にアクセス先アドレスを前記アドレス・バスに出力し、前記第１のプロセスＩＤを前記プロセスＩＤバスに出力し、
前記マスタ・デバイスはマイクロプロセッサであり、前記スレーブ・デバイスはＭＰＵを備えたメモリであり、
前記ＭＰＵは、前記システム・バスと前記メモリの間に位置し、かつ前記第２のレジスタを有し、
前記トランザクション発生時、前記ＭＰＵは前記アドレス・バス上の値が所定のアドレス範囲にあり、かつ前記第１のプロセスＩＤと前記第２のプロセスＩＤとが一致したときに前記メモリへのアクセスを許可することを特徴とするコンピュータ・システム。
【請求項２】
前記スレーブ・デバイスは、前記第１のプロセスＩＤと前記第２のプロセスＩＤとを比較して一致したときのみアクセスを許可する判定手段を有することを特徴とする請求項１に記載のコンピュータ・システム。
【請求項３】
ソフトウエア・プロセス番号に関連づけられた第１のプロセスＩＤを格納する第１のレジスタを有し、かつトランザクションを生成するときに、システム・バス上に第１のプロセスＩＤを送出するマスタ・デバイスと、
アクセスを許可する第２のプロセスＩＤを保持し、かつ第１のプロセスＩＤと第２のプロセスＩＤとが所定の関係を満たすときに、前記マスタ・デバイスが生成したトランザクションを受け入れるスレーブ・デバイスとを有し、
前記スレーブ・デバイスは、前記第１のプロセスＩＤと前記第２のプロセスＩＤとを比較して一致したときのみアクセスを許可する判定手段を有し、
前記マスタ・デバイスはマイクロプロセッサであり、前記スレーブ・デバイスはＭＰＵを備えたメモリであり、
前記ＭＰＵは、前記システム・バスと前記メモリの間に位置し、かつ前記第２のレジスタを有し、
前記トランザクション発生時、前記ＭＰＵは前記アドレス・バス上の値が所定のアドレス範囲にあり、かつ前記第１のプロセスＩＤと前記第２のプロセスＩＤとが一致したときに前記メモリへのアクセスを許可することを特徴とするコンピュータ・システム。
【請求項４】
前記判定手段は、前記第１のプロセスＩＤと前記第２のプロセスＩＤとを比較する比較手段と、比較の結果一致したときのみ許可信号を受け取るデコーダとを有することを特徴とする請求項２又は３に記載のコンピュータ・システム。
【請求項５】
前記デコーダは、前記アドレス・バスに出力された前記アクセス先アドレスが、前記スレーブ・デバイスに割り付けられたアドレス範囲に含まれ、かつ前記比較手段から許可信号を受け取ったときに、前記トランザクションに正常に応答することを決定して前記アクセスを許可することを特徴とする請求項４に記載のコンピュータ・システム。
【請求項６】
前記マイクロプロセッサの第１のレジスタには、前記マイクロプロセッサ上で動作するオペレーティング・システムが現在実行中のソフトウェア・プロセスの番号をそのまま設定することを特徴とする請求項１から５のいずれか１項に記載のコンピュータ・システム。
【請求項７】
前記マイクロプロセッサの第１のレジスタには、前記マイクロプロセッサ上で動作するオペレーティング・システムが現在実行中のソフトウェア・プロセスに関連づけた値を設定することを特徴とする請求項１から５のいずれか１項に記載のコンピュータ・システム。
【請求項８】
前記マスタ・デバイス及び前記スレーブ・デバイスは、周辺デバイスとメモリとの間に接続されたＤＭＡＣであり、
前記ＤＭＡＣは前記マスタ・デバイスとして動作して、前記第１のレジスタに格納されている前記第１のプロセスＩＤを前記システム・バス上に送出して前記トランザクションを開始し、前記周辺デバイスから読み出されたデータを前記ＤＭＡＣの内部の転送データ・レジスタに書き込み、
前記ＤＭＡＣは再度、前記マスタ・デバイスとして動作して、前記転送データ・レジスタの値を前記システム・バスに出力して前記メモリへの書き込みトランザクションを開始することを特徴とする請求項１から５のいずれか１項に記載のコンピュータ・システム。
【請求項９】
前記第１のレジスタの値は、マイクロプロセッサ上のソフトウェアが初期設定することを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１０】
前記第１のレジスタは、マイクロプロセッサが前記ＤＭＡＣのレジスタをアクセスしたときに、前記システム・バス上の値を自動取得することを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１１】
前記ＤＭＡＣの内部レジスタ群をスレーブ・デバイスとして扱い、
前記第１のレジスタの初期設定中は、前記ＤＭＡＣは前記スレーブ・デバイスとして動作し、前記マスタ・デバイスとして動作しているマイクロプロセッサからのアクセスを受け入れることを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１２】
前記スレーブ・デバイスは、複数の前記第２のプロセスＩＤを保持し、
前記スレーブ・デバイスは、前記第１のプロセスＩＤと前記複数の第２の第２のプロセスＩＤの内のいずれか一つの値とが所定の関係を満たすときに、前記トランザクションを受け入れることを特徴とする請求項１から５のいずれか１項に記載のコンピュータ・システム。
【請求項１３】
前記スレーブ・デバイスは第２のレジスタを有し、
前記第２のプロセスＩＤはこの第２のレジスタに格納されていることを特徴とする請求項１から５のいずれか１項に記載のコンピュータ・システム。
【請求項１４】
前記第２のプロセスＩＤは固定値であることを特徴とする請求項１から５のいずれか１項に記載のコンピュータ・システム。