(57)【特許請求の範囲】
【請求項１】
プログラムを実行する中央処理装置と、
前記中央処理装置の仮想アドレス空間における仮想アドレスを物理アドレスへアドレス変換すると共に記憶保護を行うためのメモリ管理部と、
前記中央処理装置のアクセスによって設定された転送制御情報に従ってデータ転送制御を行う転送制御装置と、を有するデータプロセッサであって、
前記メモリ管理部は、前記アドレス変換に用いるアドレス変換データ対と、当該アドレス変換データ対に対応する仮想アドレスを用いるプログラム処理を識別するための識別情報とを有する変換エントリデータを、複数保持するためのアドレス変換バッファを有し、
前記転送制御装置は、前記転送制御情報を設定するときにおける前記中央処理装置のプログラム処理を識別するための識別情報を保持するための識別情報記憶部と、前記転送制御装置の転送権限の変更の可否を設定可能な権限変更設定レジスタとを有し、前記転送制御情報に従って転送対象の物理アドレスを生成するとき、当該物理アドレスに対応する識別情報が前記識別情報記憶部の識別情報に一致することを転送開始の条件とし、
前記識別情報は、前記中央処理装置の動作モードが、特権モードかユーザモードかを示す動作モード識別子を含み、
前記転送制御装置は、前記権限変更設定レジスタの設定に基づいて、前記動作モード識別子を変更可能に構成される、データプロセッサ。
【請求項２】
前記転送制御装置は、前記権限変更設定レジスタに、転送権限の変更を可とする設定がされているときには、前記動作モード識別子を特権モードからユーザモードに変更する、請求項１記載のデータプロセッサ。
【請求項３】
前記識別情報は、前記中央処理装置が実行するプログラムによる処理を識別するプロセス識別子を含む、請求項１または請求項２記載のデータプロセッサ。
【請求項４】
前記識別情報は、前記プログラムの実行を管理する上位ソフトウェアを識別するドメイン識別子を含む、請求項３記載のデータプロセッサ。
【請求項５】
前記転送制御装置は、前記転送制御情報に従って転送対象の物理アドレスを生成するときに用いるアドレス変換サブバッファを有し、前記アドレス変換サブバッファは、前記アドレス変換バッファが保持する情報のサブセットを保持する、請求項１記載のデータプロセッサ。
【請求項６】
前記転送制御装置が前記転送制御情報に従って転送対象の物理アドレスを生成するとき、必要な前記変換エントリデータが前記アドレス変換サブバッファに保持されていない場合には、前記転送制御装置は当該必要な前記変換エントリデータを前記メモリ管理部に要求し、前記メモリ管理部は前記要求に応答する前記変換エントリデータを前記転送制御装置に与える、請求項５記載のデータプロセッサ。
【請求項７】
前記中央処理装置と、前記メモリ管理部と、前記転送制御装置と、を一組とするセットを複数セット有し、
前記転送制御装置に対する前記転送制御情報の設定は、前記セット内の前記中央処理装置のみ可能とされる、請求項１または請求項２記載のデータプロセッサ。
【請求項８】
前記中央処理装置と前記メモリ管理部を一組とするセットを複数セット有し、
前記転送制御装置は、前記各セットに共通利用され、前記転送制御情報に従って転送対象の物理アドレスを生成するときに、前記転送制御装置に対し前記転送制御情報の設定を行った前記中央処理装置の種別を保持し、前記アドレス変換サブバッファに必要な前記変換エントリデータが保持されていない場合には、当該必要な前記変換エントリデータを前記種別に応ずる前記中央処理装置が属するセットの前記メモリ管理部に要求する、請求項６記載のデータプロセッサ。
【請求項９】
プログラムを実行する中央処理装置と、
前記中央処理装置のアクセスによって設定された転送制御情報に従ってデータ転送制御を行う転送制御装置と、
前記中央処理装置のアドレス空間に配置されてアクセス対象にされる回路が接続されるアクセス保護装置と、を有するデータプロセッサであって、
前記転送制御装置は、前記転送制御情報を設定するときにおける前記中央処理装置のプログラム処理を識別するための識別情報を保持するための識別情報記憶部と、前記転送制御装置の転送権限の変更の可否を設定可能な権限変更設定レジスタとを有し、
前記識別情報は、前記中央処理装置の動作モードが、特権モードかユーザモードかを示す動作モード識別子を含み、
前記転送制御装置は、前記権限変更設定レジスタの設定に基づいて、前記動作モード識別子を変更可能に構成され、
前記アクセス保護装置は、アドレスと当該アドレスを用いるプログラム処理を識別する識別情報との情報対を複数対保持するための変換バッファを有し、前記転送制御情報に従って前記転送制御装置から出力されたアドレスに対応する情報対の識別情報が当該アドレスに伴って出力された識別情報に一致することを条件にアクセス対象回路に対するアクセスを許容する、データプロセッサ。
【請求項１０】
前記転送制御装置は、前記権限変更設定レジスタに、転送権限の変更を可とする設定がされているときには、前記動作モード識別子を特権モードからユーザモードに変更する、請求項９記載のデータプロセッサ。
【請求項１１】
前記識別情報は、前記中央処理装置が実行するプログラムによる処理を識別するプロセス識別子を含む、請求項１０記載のデータプロセッサ。
【請求項１２】
前記識別情報は、前記プログラムの実行を管理する上位ソフトウェアを識別するドメイン識別子を含む、請求項１１記載のデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データプロセッサに係り、特にデータプロセッサに内蔵されるＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）による記憶保護機能に関し、例えばシングルチップのマイクロコンピュータユニットに適用して有効な技術に関する。
【背景技術】
【０００２】
今日のデータプロセッサ、特に組み込み機器用途のマイコンでは、汎用的処理を行う中央処理装置（以下、「ＣＰＵ」という。）と、特定処理向けの複数の周辺ＩＰコアを１チップに構成し、これらによって複数のアプリケーションソフトウェアが動作するようなシステムを構成する手法が用いられている。このようなシステムでは、複数のプログラムが一つのメインメモリ上の領域を分割して利用することとなる。
【０００３】
データプロセッサ内のＣＰＵにおいて、ソフトウェアバグ、ハードウェアバグ、一時的なハード障害（α線によるソフトエラー等）及び悪意あるソフトウェア等によって本来意図しないアクセスが、他のプログラムが利用しているメモリ領域に対して発生することがある（以下、「不正アドレスアクセス」という）。特に組み込み機器用途では、ソフトウェアバグによる製品の不良が問題となることが多い。
【０００４】
前述の不正アドレスアクセスによる他のプログラムに対する悪影響を防止するために、プログラム毎にアクセス可能なアドレス範囲を設定し、不正アドレスアクセスの遮断を行う装置が必要となる。一般に、ＣＰＵが実行するプログラムは、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）が、仮想記憶によるメモリ管理を行い、プロセス空間上の仮想アドレスとメインメモリの物理アドレスのアドレス変換を行うとともに、不正アドレスアクセスの遮断（以下、「記憶保護」という。）を行う。前記記憶保護は、仮想アドレスと、それに対応するＣＰＵの動作モードやＣＰＵが実行するプログラムによる処理を識別するプロセス識別子（以下、「プロセスＩＤ」という。）、及び前記プログラムの実行を管理する上位ソフトウェアを識別するドメイン識別子（以下、「ドメインＩＤ」という。）等の識別情報に基づいて行われる。
【０００５】
しかしながら、ＤＭＡＣを有するシステムにおいては、ＤＭＡＣは、ＣＰＵやＭＭＵ等を含むプロセッサコアの外部に存在し、ＣＰＵ等からのアクセス要求に基づいてアドレス設定等がされ、それに基づいてアクセスを実行するので、そのアクセスに対しＭＭＵの記憶保護が働かない。ＤＭＡＣのアクセスに対して記憶保護を行う技術として例えば、下記の特許文献１乃至特許文献３において開示がある。
【０００６】
特許文献１では、ＣＰＵやＤＭＡＣ等のバスマスタデバイスとメインメモリ等のスレーブデバイスとの間のバス上にある制御回路部、又はバスマスタデバイスとバスの間のアドレス線及び制御線上に、不正アドレスアクセス遮断機構を設置する。前記不正アドレスアクセス遮断機構は、バスマスタデバイスのスレーブデバイスに対するアクセスが許可されるアドレス範囲が予め設定され、バスマスタデバイスによるアクセスに際し、当該バスマスタが出力するアドレスが、上記のアドレス範囲に含まれるかを判定することにより、不正アドレスアクセスの遮断を行う。
【０００７】
特許文献２は、ＣＰＵとＭＭＵと、ＣＰＵの実行するプログラムの処理の一部を代替して処理する外部デバイスを有し、前記外部デバイスがＤＭＡＣを有するシステムに関するものである。外部デバイスが、前述のプログラムの処理の一部を代替して処理する場合において、その処理に必要なデータの読み出しと処理を行ったデータの書き込みにＤＭＡＣを用いる。前記外部デバイスは、前記ＤＭＡＣに転送条件を設定するとき、転送元と転送先の仮想アドレスに対応する物理アドレスと権限情報を取得し、アクセスの権限があるか否かを判定する。
【０００８】
特許文献３では、ＣＰＵ、ＭＭＵ及びＤＭＡＣからなるシステムにおいて、ＤＭＡＣにはデータ転送可能な転送元と転送先との組合せの態様がリソースセレクト情報として予め設定される。ＤＭＡＣは、データの転送に際し、ＣＰＵからのデータ転送要求に係る転送元及び転送先のアドレス情報と、上記リソースセレクト情報とが整合するか否かを判定することで記憶保護を行う。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−３３４４１０号公報
【特許文献２】特開２００８−１０２８５０号公報
【特許文献３】特開平１０−２８９１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１では、前記不正アドレスアクセス遮断機構は前記アドレス範囲に基づいて記憶保護を行っており、ＣＰＵの動作モードやプロセスＩＤ、及びドメインＩＤ等の識別情報に基づいた、より信頼性の高い記憶保護ではない。また、特許文献２では、ＤＭＡＣがＣＰＵの動作モードやプロセスＩＤ、及びドメインＩＤ等の識別情報を持たないため、ＤＭＡＣに設定された、すべてのアドレス範囲おいて記憶保護が実行される保証はない。すなわち、ＤＭＡＣに対し直接設定するアドレスに対して記憶保護を行い、範囲が指定されたアドレスの全範囲に対して記憶保護が行われる訳ではない。更に、特許文献３では、ＭＭＵとは別に記憶保護の設定をする必要があり、ソフトウェアのコストが大きくなってしまう。
【００１１】
本発明の目的は、ＣＰＵからの転送条件の設定に従ったデータ転送制御に際し、信頼性の高い記憶保護を行うデータプロセッサを提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
すなわち、データの転送制御を行う転送制御装置はメモリ管理部で記憶保護に利用される識別情報を保持する。前記転送制御装置はＣＰＵの設定にしたがって転送用のアドレスを生成するとき、転送用のアドレスに対応した識別情報と転送条件設定時のＣＰＵの識別情報との一致を条件に転送開始を開始する。
【発明の効果】
【００１５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、ＣＰＵからの転送条件の設定にしたがったデータ転送制御に際し、信頼性の高い記憶保護を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１に係るデータプロセッサ１０のブロック図である。
【図２】本発明の実施の形態１に係るＣＰＵ１０１が実行するプログラムと、そのプログラムの動作モード、プロセスＩＤ、及びドメインＩＤの対応関係を例示した説明図である。
【図３】本発明の実施の形態１に係るＴＬＢ１０３に格納される変換エントリデータを例示した説明図である。
【図４】本発明の実施の形態１に係るＣＰＵ１０１がメインメモリ１０６へアクセスする際のフローチャートである。
【図５】本発明の実施の形態１に係るＤＭＡＣ１０５の内部構成を示すブロック図である。
【図６】本発明の実施の形態１に係るＤＭＡＣ１０５によるデータ転送の際のフローチャートである。
【図７】本発明の実施の形態２に係るデータプロセッサ２０のブロック図である。
【図８】本発明の実施の形態３に係るデータプロセッサ３０のブロック図である。
【図９】本発明の実施の形態４に係るデータプロセッサ４０のブロック図である。
【図１０】本発明の実施の形態４に係るプロセッサコア５００からメインメモリ１０６にアクセスする際のフローチャートである。
【図１１】本発明の実施の形態４に係るＤＭＡＣ５０１がメインメモリ１０６にアクセスする際のフローチャートである。
【発明を実施するための形態】
【００１８】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１９】
〔１〕本発明の代表的な実施の形態に係るデータプロセッサ（１０、２０、３０）は、プログラムを実行する中央処理装置（１０１）と、前記中央処理装置の仮想アドレス空間における仮想アドレスを物理アドレスへアドレス変換すると共に記憶保護を行うためのメモリ管理部（１１５）と、前記中央処理装置のアクセスによって設定された転送制御情報に従ってデータ転送制御を行う転送制御装置（１０５、１０５Ａ、１０５Ｂ、７００）と、を有するデータプロセッサであって、前記メモリ管理部は、前記アドレス変換に用いるアドレス変換データ対と、当該アドレス変換データ対に対応する仮想アドレスを用いるプログラム処理を識別するための識別情報と、を有する変換エントリデータ（３００）を、複数保持するためのアドレス変換バッファ（１０３）を有し、前記転送制御装置は、前記転送制御情報を設定するときにおける前記中央処理装置のプログラム処理を識別するための識別情報を保持するための識別情報記憶部（４０４）を有し、前記転送制御情報に従って転送対象の物理アドレスを生成するとき、当該物理アドレスに対応する識別情報が前記識別情報記憶部の識別情報に一致することを転送開始の条件とする。これによれば、前記転送制御装置が物理アドレスを生成する毎に、当該物理アドレスに対応する前記識別情報と転送条件設定時における前記中央処理装置の識別情報の一致を確認するから、信頼性の高い記憶保護、すなわち設定された転送条件に従ったすべての転送アドレスに対する記憶保護を行うことができる。
【００２０】
〔２〕項１のデータプロセッサにおいて、前記識別情報は、前記中央処理装置が実行するプログラムによる処理を識別するプロセス識別子を含む。これによれば、プロセス毎の識別情報に基づいた記憶保護を行うから、より信頼性の高い記憶保護を行うことができる。
【００２１】
〔３〕項２のデータプロセッサにおいて、前記識別情報は、前記プログラムの実行を管理する上位ソフトウェアを識別するドメイン識別子を含む。これによれば、プロセス毎の識別情報とドメイン毎の識別情報に基づいた記憶保護を行うから、より信頼性の高い記憶保護を行うことができる。
【００２２】
〔４〕項２又は項３のデータプロセッサにおいて、前記識別情報は、前記中央処理装置の動作モードが、特権モードかユーザモードかを示す動作モード識別子を更に含む。これによれば、プロセス毎の識別情報とドメイン毎の識別情報に加え、動作モードに基づいた記憶保護を行うから、より信頼性の高い記憶保護を行うことができる。
【００２３】
〔５〕項１のデータプロセッサにおいて、前記転送制御装置は、前記転送制御情報に従って転送対象の物理アドレスを生成するときに用いるアドレス変換サブバッファ（４０５）を有し、前記アドレス変換サブバッファは、前記アドレス変換バッファが保持する情報のサブセットを保持する。これによれば、前記転送制御装置は、前記メモリ管理部が記憶保護に用いる前記識別情報のサブセットを用いて記憶保護を行うから、前記メモリ管理部と同様の信頼性の高い記憶保護を行うことができる。
【００２４】
〔６〕項５のデータプロセッサにおいて、前記転送制御装置が前記転送制御情報に従って転送対象の物理アドレスを生成するとき、必要な前記変換エントリデータが前記アドレス変換サブバッファに保持されていない場合には、前記転送制御装置は当該必要な前記変換エントリデータを前記メモリ管理部に要求し、前記メモリ管理部は前記要求に応答する前記変換エントリデータを前記転送制御装置に与える。これにより、前記識別情報のサブセットを、前記アドレス変換サブバッファに容易に設定することができる。
【００２５】
〔７〕項１のデータプロセッサにおいて、前記中央処理装置と、前記メモリ管理部と、前記転送制御装置と、を一組とするセットを複数セット有し、前記転送制御装置に対する前記転送制御情報の設定は、前記セット内の前記中央処理装置のみ可能とされる。これによれば、複数の前記セットを有するシステムにおいても、項１と同様の作用を奏する。
【００２６】
〔８〕項６のデータプロセッサにおいて、前記中央処理装置と前記メモリ管理部を一組とするセット（１００Ａ、１００Ｂ）を複数セット有し、前記転送制御装置は、前記各セットに共通利用され、前記転送制御情報に従って転送対象の物理アドレスを生成するときに、前記転送制御装置に対し前記転送制御情報の設定を行った前記中央処理装置の種別を保持し、前記アドレス変換サブバッファに必要な前記変換エントリデータが保持されていない場合には、当該必要な前記変換エントリデータを前記種別に応ずる前記中央処理装置が属するセットの前記メモリ管理部に要求する。これによれば、複数の前記セットが一つの転送制御装置を共通利用するシステムにおいても、項６と同様の効果を奏する。
【００２７】
〔９〕本発明の代表的な実施の形態に係るデータプロセッサ（４０）は、プログラムを実行する中央処理装置と、前記中央処理装置のアクセスによって設定された転送制御情報に従ってデータ転送制御を行う転送制御装置（５０１）と、前記中央処理装置のアドレス空間に配置されてアクセス対象にされる回路（１０６）が接続されるアクセス保護装置（５０４）と、を有するデータプロセッサであって、前記アクセス保護装置は、アドレスと当該アドレスを用いるプログラム処理を識別する識別情報との情報対を複数対保持するための変換バッファ（５０２）を有し、前記転送制御情報に従って前記転送制御装置から出力されたアドレスに対応する情報対の識別情報が当該アドレスに伴って出力された識別情報に一致することを条件にアクセス対象回路（１０６）に対するアクセスを許容する。これによれば、アクセス保護装置が前記識別情報に基づいてアクセス制御を行うから、前記転送制御装置に記憶保護機能を持たせることなしに信頼性の高いアクセス制御が可能となる。
【００２８】
〔１０〕項９のデータプロセッサにおいて、前記識別情報は、前記中央処理装置が実行するプログラムによる処理を識別するプロセス識別子を含む。これによれば、プロセス毎の識別情報に基づいたアクセス制御を行うから、より信頼性の高いアクセス制御を行うことができる。
【００２９】
〔１１〕項１０のデータプロセッサにおいて、前記識別情報は、前記プログラムの実行を管理する上位ソフトウェアを識別するドメイン識別子を含む。これによれば、プロセス毎の識別情報とドメイン毎の識別情報に基づいたアクセス制御を行うから、より信頼性の高いアクセス制御を行うことができる。
【００３０】
〔１２〕項１０又は項１１のデータプロセッサにおいて、前記識別情報は、前記中央処理装置の動作モードが、特権モードかユーザモードかを示す動作モード識別子を更に含む。これによれば、プロセス毎の識別情報とドメイン毎の識別情報に加え、動作モードに基づいたアクセス制御を行うから、より信頼性の高いアクセス制御を行うことができる。
【００３１】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３２】
《実施の形態１》
図１は、シングルチップのマイクロコンピュータに係るデータプロセッサを示す。同図に示されるデータプロセッサ１０は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００３３】
データプロセッサ１０は、プロセッサコア１００、転送制御装置（以下、「ＤＭＡＣ」という。）１０５、割り込みコントローラ１０４、メインメモリ１０６、及びシステムバス１０７から構成され、夫々のブロックはシステムバス１０７に接続されている。なお、図示はしないが、例えば、前記システムバス１０７には、Ｉ／Ｏ回路、及びその他の周辺回路も接続されている。
【００３４】
前記プロセッサコア１００は、中央処理装置（以下、「ＣＰＵ」という。）１０１と、メモリ管理部１１５から構成され、メモリ管理部１１５は、ＭＭＵ１０２とアドレス変換バッファ（以下、「ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）」という。）１０３を有する。
【００３５】
前記ＣＰＵ１０１は複数のプログラムを実行する。夫々のプログラムはアクセス可能なアドレス範囲が異なり、夫々のプログラムは、動作モード、プロセスＩＤ、及びドメインＩＤの組み合わせを持っている。動作モードとは、上位ソフトウェアによるプログラムとユーザプログラムを区別するために用いられるものであり、例えば、上位ソフトウェアであるオペレーティングシステムのプログラムは特権モードで表され、ユーザプログラムはユーザモードで表される。ドメインＩＤは、前記プログラムの実行を管理する上位ソフトウェアを識別するものであり、複数のオペレーティングシステムが動作する場合に、夫々のオペレーティングシステムを区別するために用いられ、それぞれのオペレーティングシステムに番号が割り振られている。プロセスＩＤは、同じオペレーティングシステム上で動作するユーザプログラムを区別するために用いられ、それぞれのプログラムに番号が割り振られている。これらの情報を、ＣＰＵ１０１のプログラム処理を識別するための識別情報とする。
【００３６】
図２は、前記ＣＰＵ１０１が実行するプログラムと、そのプログラムの動作モード、プロセスＩＤ、及びドメインＩＤの対応関係を例示したものである。例えば、図２に示される前記プログラムとの対応関係を示す２０４の部分において、プログラム０は動作モードが特権モード、プロセスＩＤが“０”、ドメインＩＤが“０”であることを示し、プログラム１は動作モードがユーザモード、プロセスＩＤが“１”ドメインＩＤが“０”であることを示している。図２において、前記ＣＰＵ１０１が前記識別情報を格納するレジスタを有しており、例えば、前記ＣＰＵ１０１が参照符号２０５で示されるプログラム０を実行するときには、レジスタ２０１、レジスタ２０２及びレジスタ２０３に動作モード、プロセスＩＤ及びドメインＩＤを格納する。
【００３７】
前記ＴＬＢ１０３は、仮想アドレスから物理アドレスへのアドレス変換に用いるアドレス変換データ対と、当該アドレス変換データ対に対応する仮想ページの管理情報を含んだ情報（以下、「変換エントリデータ」という。）を保持し、連想メモリとして構成される。前記仮想ページの管理情報には、前記識別情報が含まれる。
【００３８】
図３は、前記ＴＬＢ１０３に格納される変換エントリデータを例示したものである。図３では、例えば、前記アドレス変換データ対となる仮想アドレスと物理アドレス、及びそれらに対応する仮想ページ管理情報３０１が、変換エントリデータ３００として格納されている。前記仮想ページ管理情報３０１は、仮想ページのページサイズ、キャッシュを有効にするかどうかを示すキャッシュ属性等の他に、前記識別情報である動作モード、プロセスＩＤ、ドメインＩＤを含んでいる。
【００３９】
前記ＭＭＵ１０２は、前記ＣＰＵ１０１の前記メインメモリ１０６に対するアクセス要求を受け、そのアクセスを制御する。前記ＭＭＵ１０２の動作概要について図４を用いて詳細に説明する。
【００４０】
図４は、ＣＰＵ１０１がメインメモリ１０６にアクセスする際のフローチャートである。
【００４１】
まず、ＣＰＵ１０１がメインメモリ１０６へのアクセスを要求する（Ｓ１０１）。ＭＭＵ１０２は、前記ＣＰＵ１０１からそのアクセス要求に応答する仮想アドレスを受け取る。前記ＭＭＵ１０２は、その仮想アドレスの一部をインデックスとして、ＴＬＢ１０３に格納されている当該仮想アドレスに対応する仮想ページの変換エントリデータを検索する（Ｓ１０２）。前記ＴＬＢ１０３に必要な変換エントリデータがない場合には、前記ＭＭＵ１０２はＴＬＢミス例外を発生させるために、割り込みコントローラ１０４に割り込み要求１１６を与え、前記割り込みコントローラ１０４は前記ＣＰＵ１０１に対して割り込み信号１１４により割り込みをかける（Ｓ１０３）。なお、割り込みの際には、前記ＣＰＵ１０１に対して割り込み要因も併せて通知される。前記割り込み信号１１４を受け取った前記ＣＰＵ１０１は、例えば前記メインメモリ１０６へアクセスして必要な仮想ページの変換エントリデータを前記ＴＬＢ１０３に格納する（Ｓ１０４）。前記ＴＬＢ１０３に必要な変換エントリデータがある場合には、前記ＭＭＵ１０２は当該変換エントリデータを用いて仮想アドレスを物理アドレスに変換する（Ｓ１０５）。また、前記ＭＭＵ１０２は前記アドレス変換の際に、当該物理アドレスに対応する前記識別情報と前記ＣＰＵ１０１のレジスタ２０１、レジスタ２０２及びレジスタ２０３に格納されている識別情報を比較してアクセス権限の有無を確認する（Ｓ１０６）。このとき、アクセス権限に違反していなければ、前記ＭＭＵ１０２は変換された物理アドレスと識別情報等をシステムバス１０７に出力する（Ｓ１０７）。一方、アクセス権限に違反している場合には、前記ＭＭＵ１０２はＴＬＢ保護違反例外を発生させるために、割り込みコントローラ１０４に割り込み要求１１７を与える。前記割り込み要求１１７を受け取った前記割り込みコントローラ１０４は前記ＣＰＵ１０１に対して割り込み信号１１４を与えることで、アクセス権限違反が発生したことを通知するとともに、前記ＣＰＵ１０１に所定の例外を実行させて前記アクセスを停止させる（Ｓ１０８）。
【００４２】
次にＤＭＡＣ１０５について説明する。
【００４３】
図５はＤＭＡＣ１０５の内部構成を示すブロック図である。ＤＭＡＣ１０５は、転送設定レジスタ４０１、転送用バッファ４０２、制御部４０３、識別情報レジスタ４０４、及びマイクロＴＬＢ４０５を有する。また、前記転送設定レジスタ４０１は、アドレスレジスタ４０６、権限変更設定レジスタ４０７、ＤＭＡＣイネーブルレジスタ４０８等から構成される。
【００４４】
ＣＰＵ１０１はＤＭＡＣ１０５による転送を要求する際、システムバス１０７を介して転送条件の情報である転送制御情報をＤＭＡＣ１０５に与え、転送設定レジスタ４０１内のアドレスレジスタ４０６に転送条件を設定する。前記転送制御情報は、例えば転送元・転送先アドレス、転送データ語長等である。このとき、前記制御部４０３は、権限変更設定レジスタ４０７に前記ＤＭＡＣ１０５の転送権限の変更の有無を設定する。例えば、ユーザプログラムがオペレーティングシステムプログラムに代替させて、ＤＭＡＣ１０５の転送条件の設定と起動を行う場合には、後述する前記識別情報レジスタ４０４に取り込んだ前記識別情報に含まれる動作モードを特権モードからユーザモードに変更することを示すイネーブルビットを前記権限変更設定レジスタ４０７に設定する。
【００４５】
前記転送条件の設定後に、前記ＣＰＵ１０１が前記ＤＭＡＣ１０５の転送開始を表す起動ビットを前記ＤＭＡＣイネーブルレジスタ４０８に設定することによって前記ＤＭＡＣ１０５を起動する。このとき前記制御部４０３は、前記起動ビットが設定されたときの前記ＣＰＵ１０１の前記識別情報を前記識別情報レジスタ４０４に格納する。この際、前記権限変更設定レジスタ４０７にイネーブルビットが設定されている場合には、前記識別情報レジスタ４０４に取り込んだ前記識別情報に含まれる動作モードが特権モードからユーザモードに変更される。すなわち、前記ＤＭＡＣ１０５の転送条件の設定はオペレーティングシステムプログラムにより特権モードで行われ、この状態が前記識別情報レジスタ４０４に設定されてしまうので、動作モードを特権モードからユーザモードに変更する必要がある。
【００４６】
前記マイクロＴＬＢ４０５は、前記ＴＬＢ１０３が格納する前記変換エントリデータのサブセットを保持し、連想メモリを構成する。
【００４７】
前述のように前記起動ビットが前記ＤＭＡＣイネーブルレジスタ４０８に設定されると、ＤＭＡＣ１０５によるデータ転送が開始される。前記制御部４０３は、前記ＣＰＵ１０１に条件設定された仮想アドレスに基づいてマイクロＴＬＢ４０５に格納されている当該仮想アドレスに対応する変換エントリデータを検索してアドレス変換を行うと共に、当該アドレスに対応する前記識別情報と前記識別情報レジスタ４０４に格納された識別情報を比較することで記憶保護を行う。この記憶保護機能について図６を用いて詳細に説明する。
【００４８】
図６は、ＤＭＡＣ１０５によるデータ転送の際のフローチャートである。
【００４９】
まず、ＣＰＵ１０１は、ＤＭＡＣ１０５への転送要求に際し、前記転送制御情報１０９を与え、ＤＭＡＣ１０５の設定を行う（Ｓ２０１）。このとき、ユーザプログラムがオペレーティングシステムプログラムに代替させて、前記ＤＭＡＣ１０５の転送条件の設定と起動を行う場合であるか否かを前記制御部４０３が判別する（Ｓ２０２）。そうである場合には、前記制御部４０３は前記権限変更レジスタ４０７にイネーブルビットを設定して、転送権限を特権モードからユーザモードに変更する設定を行う（Ｓ２０３）。その後、ＣＰＵ１０１が前記起動ビットを前記ＤＭＡＣイネーブルレジスタ４０８に設定することによってＤＭＡＣ１０５を起動させる（Ｓ２０４）。一方、ユーザプログラムがＤＭＡＣ１０５の設定を直接行う場合には、前記権限変更レジスタ４０７に設定することなく、ステップ２０４に進む。
【００５０】
ステップ２０４の際、前記制御部４０３は前記起動ビットを設定したときの前記ＣＰＵ１０１の識別情報を前記識別情報レジスタ４０４に格納する（Ｓ２０５）。このとき、前記権限変更レジスタ４０７にイネーブルビットが設定されていれば、動作モードを特権モードからユーザモードに変更する。次に前記制御部４０３は、前記ＣＰＵ１０１に条件設定された仮想アドレスの一部をインデックスとし、マイクロＴＬＢ４０５に格納されている当該仮想アドレスに対応する仮想ページの変換エントリデータを検索する（Ｓ２０６）。このとき前記マイクロＴＬＢ４０５に必要な変換エントリデータがない場合には、前記制御部４０３は、前記ＭＭＵ１０２に対し当該変換エントリデータを要求する信号１１０を与える（Ｓ２０７）。前記要求信号１１０を受け取った前記ＭＭＵ１０２は、ＴＬＢ１０３内を検索し（Ｓ２０８）、該当する変換エントリデータがあれば前記ＴＬＢ１０３から前記マイクロＴＬＢ４０５に当該変換エントリデータ１１１をコピーする（Ｓ２１１）。該当する変換エントリデータがなかった場合には、前述と同様にＴＬＢミス例外を発生させて（Ｓ２０９）、必要な仮想ページの変換エントリデータを、前記ＴＬＢ１０３に登録する（Ｓ２１０）。その後、登録された当該変換エントリデータについて、前記ＭＭＵ１０２が前記ＴＬＢ１０３内を再度検索し（Ｓ２０８）、当該変換エントリデータ１１１を前記ＴＬＢ１０３から前記マイクロＴＬＢ４０５にコピーする（Ｓ２１１）。
【００５１】
前記マイクロＴＬＢ４０５に必要な変換エントリデータがあった場合、またはステップ２１１において前記ＴＬＢ１０３から前記マイクロＴＬＢ４０５に必要な変換エントリデータがコピーされた場合には、前記制御部４０３は当該変換エントリデータを用いて仮想アドレスを物理アドレスに変換する（Ｓ２１２）。このとき、前記制御部４０３は当該物理アドレスに対応する前記識別情報と前記識別情報レジスタ４０４に格納されている前記起動ビット設定時の前記ＣＰＵ１０１の識別情報とを比較する（Ｓ２１３）。このとき、前記識別情報が一致していれば転送を開始し（Ｓ２１４）、前記ＤＭＡＣ１０５は対応する物理アドレス等をシステムバス１０７に出力する。一方、前記識別情報が一致しなかった場合には、前記制御部４０３はデータ転送を停止し、ＴＬＢ保護違反例外を発生させるため、割り込みコントローラ１０４に割り込み要求１１３を与える。前記割り込み要求１１３を受け取った前記割り込みコントローラ１０４は前記ＣＰＵ１０１に対して割り込み信号１１４を与えることで、アクセス権限違反が発生したことを通知する（Ｓ２１５）。
【００５２】
以上より、実施の形態１によれば、前記ＤＭＡＣ１０５が物理アドレスを生成する毎に、当該物理アドレスに対応する前記識別情報と転送条件設定時における前記ＣＰＵ１０１の識別情報の一致を確認するから、設定された転送条件に従ったすべての転送アドレスに対する記憶保護といった、信頼性の高い記憶保護を行うことができる。また、前記識別情報として、動作モード、プロセスＩＤ、ドメインＩＤを利用することで、より信頼性の高い記憶保護が実現できる。さらに、前記ＤＭＡＣ１０５は前記ＭＭＵ１０２で記憶保護に利用される識別情報のサブセットを利用し、前記ＭＭＵ１０２の機能を流用するから、ソフトウェアコストを低く抑えることができる。
【００５３】
《実施の形態２》
図７は本発明に係るデータプロセッサの別の実施の形態として、シングルチップのマイクロコンピュータに係るデータプロセッサを示す。同図に示されるデータプロセッサ２０は特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００５４】
図７に示すデータプロセッサ２０における構成要素について、実施の形態１と同様の機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００５５】
前記データプロセッサ２０は、プロセッサコア１００Ａ及びＤＭＡＣ１０５Ａと、プロセッサコア１００Ｂ及びＤＭＡＣ１０５Ｂを夫々一組としたセットを有し、夫々のセットがシステムバス１０７に接続されている。図７では２個の前記セットを代表的に明示しており、これらのセットの数には特に制限はない。
【００５６】
前記プロセッサコア１００Ａ、１００Ｂは実施の形態１に係るプロセッサコア１００と同様の構成要素を含んでいる。また、前記ＤＭＡＣ１０５Ａ，１０５Ｂは実施の形態１に係るＤＭＡＣ１０５と同様の構成要素を含んでいる。
【００５７】
前記データプロセッサ２０において、前記ＤＭＡＣ１０５Ａの転送条件の設定、及び起動指示は同一セット内のＣＰＵ１０１Ａによってのみ行われる。また、前記ＤＭＡＣ１０５Ａ内のマイクロＴＬＢ４０５には同一セット内の前記ＴＬＢ１０３に格納される前記変換エントリデータのサブセットが格納される。
【００５８】
前記プロセッサコア１００Ａは同一セット内の前記ＤＭＡＣ１０５Ａにデータ転送の要求をし、当該ＤＭＡＣ１０５Ａは当該プロセッサコア１００Ａの設定に基づいてアドレス変換と記憶保護によるデータの転送を行う。前記プロセッサコア１００Ｂと前記ＤＭＡＣ１０５Ｂについても上記と同様である。
【００５９】
前記ＤＭＡＣ１０５Ａ、１０５Ｂに対する転送条件等の具体的な設定方法、及び前記ＤＭＡＣ１０５Ａ、１０５Ｂによるデータ転送の一連の処理は実施の形態１と同様である。
【００６０】
以上実施の形態２によれば、プロセッサコアとＤＭＡＣのセットが複数ある場合においても、実施の形態１と同様の作用を奏する。
【００６１】
《実施の形態３》
図８は、本発明に係るデータプロセッサの別の実施の形態として、シングルチップのマイクロコンピュータに係るデータプロセッサを示す。同図に示されるデータプロセッサ３０は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００６２】
図８に示すデータプロセッサ３０における構成要素について、実施の形態１と同様の機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００６３】
前記データプロセッサ３０はプロセッサコア１００Ｃ、１００Ｄを有し、夫々の前記プロセッサコア１００Ｃ、１００Ｄが１つのＤＭＡＣ７００を共通利用している。夫々のブロックはシステムバス１０７に接続されている。図８では２個のプロセッサコア１００Ｃ、１００Ｄを代表的に明示しており、プロセッサコアの数には特に制限はない。
【００６４】
前記プロセッサコア１００Ｃ、１００Ｄは実施の形態１に係るプロセッサコア１００と同様の構成要素を含んでいる。
【００６５】
前記ＤＭＡＣ７００は実施の形態１に係るＤＭＡＣ１０５の構成要素に加え、ＣＰＵ識別情報レジスタ７０１とセレクタ７０２を更に有する。
【００６６】
いずれかの前記プロセッサコア１００Ｃ、１００ＤにおけるＣＰＵ１０１が、前記ＤＭＡＣ７００に転送要求をし、前記ＤＭＡＣイネーブルレジスタ４０８に起動ビットが設定されたとき、前記制御部４０３は当該ＣＰＵ１０１の識別情報を前記識別情報レジスタ４０４に格納するとともに、いずれのＣＰＵ１０１によって前記ＤＭＡＣ７００が起動されたのかを示すＣＰＵ識別情報を前記ＣＰＵ識別情報レジスタ７０１に格納する。
【００６７】
前記マイクロＴＬＢ４０５には、前記ＴＬＢ１０３に格納されている前記変換エントリデータのサブセットに加え、いずれのプロセッサコア１００Ｃ、１００Ｄに対応する前記ＴＬＢ１０３の変換エントリデータのサブセットであるのかを示すＣＰＵ識別情報も格納される。
【００６８】
前記ＤＭＡＣ７００が起動すると、前述のように、前記制御部４０３は前記ＣＰＵ１０１からの転送要求に係る仮想アドレスの一部をインデックスとし、前記マイクロＴＬＢ４０５に格納されている当該仮想アドレスに対応する仮想ページの変換エントリデータを検索する。この際、前記制御部４０３は前記ＣＰＵ識別情報レジスタ７０１に格納されているＣＰＵ識別情報に一致する変換エントリデータを検索する。このとき、必要とする変換エントリデータがマイクロＴＬＢ４０５にない場合には、セレクタ７０２が前記ＣＰＵ識別情報レジスタ７０１に格納されているＣＰＵ識別情報に該当するプロセッサコア１００Ｃ、１００Ｄを選択して、当該選択したプロセッサコア１００Ｃ、１００Ｄ内のＭＭＵ１０２に対し、必要な変換エントリデータを要求する信号７０４Ｃ、７０４Ｄを与える。当該信号が与えられた前記ＭＭＵ１０２は、必要な変換エントリデータをマイクロＴＬＢ４０５に与える。例えば、前記プロセッサコア１００Ｄが前記ＤＭＡＣ７００に転送要求をした場合に、必要とする変換エントリデータが前記マイクロＴＬＢ４０５になかった場合は、前記セレクタ７０２が、前記プロセッサコア１００Ｄの前記ＭＭＵ１０２に対し、必要な変換エントリデータを要求する信号７０４Ｄを与え、当該信号を受けとったプロセッサコア１００Ｄの前記ＭＭＵ１０２は、必要な変換エントリデータを前記マイクロＴＬＢ４０５に与える。
【００６９】
その他の前記ＤＭＡＣ７００によるデータ転送の処理は、実施の形態１と同様である。
【００７０】
以上実施の形態３によれば、複数のプロセッサコアを有する場合においても実施の形態１と同様の作用を奏する。
【００７１】
《実施の形態４》
図９は、本発明に係るデータプロセッサの別の実施の形態として、シングルチップのマイクロコンピュータに係るデータプロセッサを示す。同図に示されるデータプロセッサ４０は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００７２】
図９に示すデータプロセッサ４０における構成要素について、実施の形態１と同様の機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００７３】
データプロセッサ４０は、プロセッサコア５００、ＤＭＡＣ５０１、アクセス保護装置５０４を有し、夫々のブロックはシステムバス１０７に接続され、メインメモリ１０６はアクセス保護装置５０４を介してシステムバス１０７に接続されている。なお、図示はしないが、例えば、前記システムバス１０７には、Ｉ／Ｏ回路、及びその他の周辺回路も接続されている。
【００７４】
図９に示されるデータプロセッサ４０において、プロセッサコア５００は実施の形態１乃至３とは異なり、ＭＭＵによる記憶保護を採用していない。前記アクセス保護装置５０４が、前記プロセッサコア５００及び前記ＤＭＡＣ５０１等による前記メインメモリ１０６へのアクセスを制御する。
【００７５】
前記プロセッサコア５００は、実施の形態１に係るプロセッサコア１００の構成要素からメモリ管理部１１５を除いた構成であり、前記プロセッサコア５００が前記メインメモリ１０６にアクセスリクエストを出すとき、転送用のアドレスや転送対象のデータ等とともに、そのときの前記プロセッサコア５００内の前記ＣＰＵ１０１の動作モード、ドメインＩＤ及びプロセスＩＤを含む識別情報を前記システムバス１０７上に出力する。
【００７６】
前記ＤＭＡＣ５０１は、実施の形態１に係るＤＭＡＣ１０５の構成要素からマイクロＴＬＢ４０５を除いた構成である。前記ＤＭＡＣ５０１は、実施の形態１と同様に前記ＣＰＵ１０１からの前記起動ビットの設定時に、そのときの当該ＣＰＵ１０１の前記識別情報を取り込む。そして、前記メインメモリ１０６にアクセスリクエストを出すとき、転送用のアドレスや転送対象のデータ等とともに、前記取り込んだＣＰＵ１０１の識別情報を前記システムバス１０７上に出力する。
【００７７】
前記アクセス保護装置５０４は、変換バッファ５０２と保護制御部５０３を有する。
【００７８】
前記変換バッファ５０２は、転送用のアドレスと当該アドレスに対応する前記識別情報との情報対を複数対保持する。前記変換バッファ５０２への前記情報対の設定は、例えばパワーオンリセット時に行われる。
【００７９】
前記保護制御部５０３は、前記プロセッサコア５００及び前記ＤＭＡＣ５０１からアクセスリクエストを受け取ると、当該リクエストに係る転送用アドレスに対応する前記情報対の識別情報と、当該リクエストに含まれる前記識別情報が一致したときに、当該アクセスを許可する。このアクセス制御について、図１０及び図１１を用いて詳細に説明する。
【００８０】
図１０は、プロセッサコア５００からメインメモリ１０６にアクセスする際のフローチャートである。
【００８１】
前記プロセッサコア５００のＣＰＵ１０１が前記メインメモリ１０６にアクセスを開始すると（Ｓ３０１）、前記ＣＰＵ１０１はシステムバス１０７上に、アクセスリクエストとして転送用のアドレスや転送対象のデータ等とともに、そのときの前記ＣＰＵ１０１の前記識別情報を出力する（Ｓ３０２）。そして、アクセス保護装置５０４が、システムバス１０７上に出力された当該リクエストを受け取る（Ｓ３０３）。当該リクエストを受け取った前記アクセス保護装置５０４内の保護制御部５０３は、当該リクエストに係る転送用アドレスに対応する前記情報対の識別情報と、当該リクエストに含まれる前記識別情報を比較する（Ｓ３０４）。比較した結果、前記識別情報が一致した場合には、前記保護制御部５０３は、当該リクエストをメインメモリ１０６に対して出力し（Ｓ３０５）、当該リクエストに対しての前記メインメモリ１０６からのレスポンスを前記プロセッサコア５００に出力する（Ｓ３０６）。前記識別情報が一致しなかった場合には、前記保護制御部５０３は当該リクエストを前記メインメモリ１０６に対して出力せず、アクセス権限違反が発生したことを示すエラーのレスポンスを前記プロセッサコア５００に対して出力する（Ｓ３０７）。
【００８２】
次に、プロセッサコア５００がＤＭＡＣ５０１を起動して、ＤＭＡＣ５０１がメインメモリ１０６にアクセスする場合について図１１を用いて説明する。
【００８３】
図１１は、ＤＭＡＣ５０１がメインメモリ１０６にアクセスする際のフローチャートである。
【００８４】
プロセッサコア５００内のＣＰＵ１０１がＤＭＡＣ５０１の転送条件を設定し、前記ＤＭＡＣ５０１を起動して、前記ＣＰＵ１０１の前記識別情報を取り込む処理の流れ（Ｓ２０１〜Ｓ２０５）は、実施の形態１に係る図６のフローチャートと同様である。
【００８５】
前記ＤＭＡＣ５０１が前記識別情報を取り込んだ後、前記ＤＭＡＣ５０１は設定された転送条件に従ってメインメモリ１０６にアクセスを開始する。前記ＤＭＡＣ５０１は、アクセスリクエストとして転送用のアドレスや転送対象のデータ等と起動時に取り込んだ前記ＣＰＵ１０１の前記識別情報をシステムバス１０７上に出力する（Ｓ４０４）。そして、アクセス保護装置５０４が、前記システムバス１０７上に出力された当該リクエストを受け取る（Ｓ４０５）。当該リクエストを受け取った前記アクセス保護装置５０４内の保護制御部５０３は、当該リクエストに係る転送用アドレスに対応する前記情報対の識別情報と、当該リクエストに含まれる前記識別情報を比較する（Ｓ４０６）。比較した結果、前記識別情報が一致した場合には、前記保護制御部５０３は、当該リクエストを前記メインメモリ１０６に対して出力し（Ｓ４０７）、当該リクエストに対しての前記メインメモリ１０６からのレスポンスを前記ＤＭＡＣ５０１に出力する（Ｓ４０８）。前記識別情報が一致しなかった場合には、前記保護制御部５０３は当該リクエストを前記メインメモリ１０６に対して出力せず、アクセス権限違反が発生したことを示すエラーのレスポンスを前記ＤＭＡＣ５０１に対して出力する（Ｓ４０９）。エラーのレスポンスを受けとった前記ＤＭＡＣ５０１はデータ転送を中止し、割り込みコントローラ１０４に割り込み要求５１０を与える。前記割り込み要求５１０を受け取った前記割り込みコントローラ１０４は前記プロセッサコア５００に対して割り込み信号５１１を与えることで、アクセス権限違反が発生したことを通知する（Ｓ４１０）。
【００８６】
以上実施の形態４によれば、前記アクセス保護装置５０４が前記識別情報に基づいてアクセス制御を行うから、前記ＤＭＡＣ５０１に記憶保護機能を持たせることなしに信頼性の高いアクセス制御が可能となる。
【００８７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８８】
例えば、実施の形態１乃至４はマルチオペレーティングシステムに適用することに限定するものではなく、単一のオペレーティングシステムや上位ソフトウェアで管理されないソフトウェアにも適用することができ、その場合は識別情報としてのドメインＩＤは不要となる。
【００８９】
実施の形態１乃至４では、シングルチップのデータプロセッサに適用することを例に説明したが、外部メモリを利用したマルチチップのデータプロセッサに適用することもできる。また、アクセス対象はメインメモリに限定されず、他の周辺回路のレジスタやその他のメモリであってもよい。
【００９０】
実施の形態４において、プロセッサコアがＭＭＵによる記憶保護機能を備えるか否かは必須の条件ではない。
【符号の説明】
【００９１】
１０  データプロセッサ
２０  データプロセッサ
３０  データプロセッサ
４０  データプロセッサ
１００  プロセッサコア
１００Ａ  プロセッサコア
１００Ｂ  プロセッサコア
１００Ｃ  プロセッサコア
１００Ｄ  プロセッサコア
１０１  ＣＰＵ
１０２  ＭＭＵ
１０３  ＴＬＢ
１０４  割り込みコントローラ
１０５  ＤＭＡＣ
１０５Ａ  ＤＭＡＣ
１０５Ｂ  ＤＭＡＣ
１０６  メインメモリ
１０７  システムバス
１０８  ＣＰＵからメインメモリへのアクセスリクエスト、レスポンス
１０９  ＤＭＡＣの転送条件、起動指示、識別情報
１１０  仮想ページの変換エントリデータの要求
１１１  仮想ページの変換エントリデータ
１１２  ＤＭＡＣからメインメモリへのアクセスリクエスト、レスポンス
１１３  ＴＬＢ保護違反例外のための割り込み要求
１１４  割り込み信号
１１５  メモリ管理部
１１６  ＴＬＢミス例外のための割り込み要求
１１７  ＴＬＢ保護違反例外のための割り込み要求
２０１  動作モードレジスタ
２０２  プロセスＩＤレジスタ
２０３  ドメインＩＤレジスタ
２０４  プログラムとそのプログラムの動作モード、プロセスＩＤ、及びドメインＩＤの対応関係
２０５  ＣＰＵ１０１で動作しているプログラム
３００  変換エントリデータ
３０１  仮想ページ管理情報
４０１  転送設定レジスタ
４０２  転送用バッファ
４０３  制御部
４０４  識別情報レジスタ
４０５  マイクロＴＬＢ
４０６  アドレスレジスタ
４０７  権限変更設定レジスタ
４０８  ＤＭＡＣイネーブルレジスタ
５００  プロセッサコア
５０１  ＤＭＡＣ
５０２  変換バッファ
５０３  保護制御部
５０４  アクセス保護装置
５０６  ＣＰＵメインメモリへのアクセスリクエスト及びそれに対するレスポンス、識別情報
５０７  ＤＭＡＣの転送条件、起動指示、識別情報
５０８  ＤＭＡＣからメインメモリへのアクセスリクエスト及びそれに対するレスポンス
５０９  アクセス保護装置からメインメモリへのアクセスリクエスト及びそれに対するレスポンス
５１０  割り込み要求
５１１  割り込み信号
７００  ＤＭＡＣ
７０１  ＣＰＵ識別情報レジスタ
７０２  セレクタ
７０３  ＤＭＡＣの転送条件、起動指示、識別情報
７０４Ｃ  プロセッサ１００Ｃに対する仮想ページの変換エントリデータの要求
７０４Ｄ  プロセッサ１００Ｄに対する仮想ページの変換エントリデータの要求
【図１】
0005433349.tif 000002
【図２】
0005433349.tif 000003
【図３】
0005433349.tif 000004
【図４】
0005433349.tif 000005
【図５】
0005433349.tif 000006
【図６】
0005433349.tif 000007
【図７】
0005433349.tif 000008
【図８】
0005433349.tif 000009
【図９】
0005433349.tif 000010
【図１０】
0005433349.tif 000011
【図１１】
0005433349.tif 000012