(57)【要約】【課題】メモリ管理ユニットが参照するテーブルを不要とする。【解決手段】アドレス変換用データ生成ユニット１３は、論理アドレスの上位アドレスから、論理アドレスを物理アドレスに変換するために利用される変換アドレスを生成するものである。アドレス変換用データ生成ユニット１３は、論理アドレスから物理アドレスへの変換に関して或る共通の属性を有する論理アドレスの範囲を示す設定情報を予め記憶する設定レジスタ部１６と、論理アドレスの上位アドレスと、設定情報が示す論理アドレスの範囲とを比較して、論理アドレスの上位アドレスが含まれる論理アドレスの範囲を特定する比較部３２〜３４と、特定した論理アドレスの範囲に対応する共通の属性を示す属性情報を含む変換アドレスを生成する変換アドレス生成部３５・３６とを備える。【選択図】図１
2007207123.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスの上位アドレスから、前記論理アドレスを物理アドレスに変換するために利用されるアドレス変換用データを生成するアドレス変換用データ生成装置であって、
論理アドレスから物理アドレスへの変換に関して或る共通の属性を有する論理アドレスの範囲を示す設定情報を予め記憶する設定情報記憶手段と、
前記論理アドレスの上位アドレスと、前記設定情報が示す論理アドレスの範囲とを比較して、前記論理アドレスの上位アドレスが含まれる論理アドレスの範囲を特定するアドレス比較手段と、
特定した論理アドレスの範囲に対応する前記共通の属性を示す属性情報を含むアドレス変換用データを生成する変換用データ生成手段とを備えることを特徴とするアドレス変換用データ生成装置。
【請求項２】
前記共通の属性は、前記論理アドレスから前記物理アドレスに変換する場合に、デフォルトの属性情報とは異なる属性情報を割り当てることを示すものを含むことを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項３】
前記共通の属性は、前記論理アドレスに対応する前記物理アドレスが有効ではないことを示すものを含むことを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項４】
前記共通の属性は、前記論理アドレスから前記物理アドレスに変換する場合に、異なったアドレスへのマッピングが必要であることを示すものを含むことを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項５】
前記設定情報は、論理アドレスから変換した物理アドレスのデータにアクセスする場合に受ける制約を示す制約情報をさらに含むことを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項６】
前記制約情報は、キャッシュの使用方法を示すキャッシュ設定情報、アクセス権限の区分を示すドメイン設定情報、およびアクセス制限を示すアクセス制限情報の中の少なくとも１つを含むことを特徴とする請求項５に記載のアドレス変換用データ生成装置。
【請求項７】
前記アドレス比較手段により前記論理アドレスの範囲が特定できなかった場合、前記変換用データ生成手段は、前記論理アドレスと同一の物理アドレスに変換することを示す属性情報を含むアドレス変換用データを生成することを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項８】
前記アドレス比較手段により前記論理アドレスの範囲が特定できなかった場合、前記変換用データ生成手段は、デフォルトの属性情報を含むアドレス変換用データを生成することを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項９】
前記論理アドレスの上位アドレスのアドレス長が長いものと短いものとで、前記アドレス比較手段および前記変換用データ生成手段の動作を切り替える切替手段をさらに備えることを特徴とする請求項１に記載のアドレス変換用データ生成装置。
【請求項１０】
論理アドレスから物理アドレスに変換する情報処理装置であって、
請求項１ないし９の何れか１項に記載のアドレス変換用データ生成装置と、
前記論理アドレスを取得し、前記論理アドレスの上位アドレスを含む参照アドレスを前記アドレス変換用データ生成装置に送信することにより、前記アドレス変換用データ生成装置からアドレス変換用データを受信し、受信したアドレス変換用データと前記論理アドレスとに基づいて前記物理アドレスを生成するメモリ管理ユニットとを備えることを特徴とする情報処理装置。
【請求項１１】
前記メモリ管理ユニットおよび前記アドレス変換用データ生成装置は、１個のＬＳＩ上に設けられ、該ＬＳＩの内部バスによって接続されていることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
論理アドレスの上位アドレスから、前記論理アドレスを物理アドレスに変換するために利用されるアドレス変換用データを生成するアドレス変換用データ生成装置であって、
論理アドレスから物理アドレスへの変換に関して或る共通の属性を有する論理アドレスの範囲を示す設定情報を予め記憶する設定情報記憶手段を備えるアドレス変換用データ生成装置の制御方法であって、
前記論理アドレスの上位アドレスと、前記設定情報が示す論理アドレスの範囲とを比較して、前記論理アドレスの上位アドレスが含まれる論理アドレスの範囲を特定するステップと、
特定した論理アドレスの範囲に対応する前記共通の属性を示す属性情報を含むアドレス変換用データを生成する変換用データ生成ステップとを含むことを特徴とするアドレス変換用データ生成装置の制御方法。
【請求項１３】
請求項１２に記載のアドレス変換用データ生成装置の制御方法における各ステップをコンピュータに実行させることを特徴とするアドレス変換用データ生成装置制御プログラム。
【請求項１４】
請求項１３に記載のアドレス変換用データ生成装置制御プログラムを記録したことを特徴とするコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理アドレスの上位アドレスから、前記論理アドレスを物理アドレスに変換するために利用されるアドレス変換用データを生成するアドレス変換用データ生成装置およびその制御方法、情報処理装置、アドレス変換用データ生成装置制御プログラム、ならびに該プログラムを記録した記録媒体に関するものである。
【背景技術】
【０００２】
メモリ管理ユニットを備えたＣＰＵ（Central Processing Unit）は、メモリ上に用意されたテーブルを参照し、アクセスしようとする論理アドレスに対応する物理アドレスと、該物理アドレスの記憶領域の属性とを取得して、アドレス変換と、場合によってはアクセス制限とを行う。
【特許文献１】特開２００２−３５８２３６号公報（２００２年１２月１３日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、上記テーブルは外部メモリ上に作成され、メモリ管理ユニットによって参照される。このため、外部メモリは、上記テーブルによって記憶容量が圧迫されることになる。また、ＣＰＵが或る論理アドレスのデータにアクセスしようとする度に外部メモリを参照することになるので、外部メモリに対するアクセスが増加し、外部メモリに配置されたソフトウェアの処理速度を圧迫することになる。
【０００４】
また、ＬＳＩ（Large Scale Integrated）の内部クロックの周波数を変更している時など、外部メモリへのアクセスが不可能なタイミングがあり得る。一方、メモリ管理ユニットによるテーブル参照は、ソフトウェアによる制御が困難であるため、メモリ管理ユニットによる外部メモリへのアクセスを一時的に禁止することが困難である。このため、外部メモリへのアクセスが不可能なタイミングでメモリ管理ユニットが外部メモリにアクセスすることにより、情報処理装置に支障をきたす可能性がある。
【０００５】
特許文献１には、メモリ管理ユニットのテーブル参照回数を低減させる方法が記載されている。しかしながら、依然として、外部メモリ上にメモリ管理ユニットのためのテーブルを作成する必要があり、上述の外部メモリの記憶容量を圧迫するという問題点を解決するには至っていない。また、外部メモリへのテーブル参照を無くすことはできないため、内部クロックの周波数を変更している時などに、外部メモリへのアクセスを抑制するものでもない。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、メモリ管理ユニットが参照するテーブルを外部メモリに作成する必要がないアドレス変換用データ生成装置などを提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明に係るアドレス変換用データ生成装置は、論理アドレスの上位アドレスから、前記論理アドレスを物理アドレスに変換するために利用されるアドレス変換用データを生成するアドレス変換用データ生成装置であって、論理アドレスから物理アドレスへの変換に関して或る共通の属性を有する論理アドレスの範囲を示す設定情報を予め記憶する設定情報記憶手段と、前記論理アドレスの上位アドレスと、前記設定情報が示す論理アドレスの範囲とを比較して、前記論理アドレスの上位アドレスが含まれる論理アドレスの範囲を特定するアドレス比較手段と、特定した論理アドレスの範囲に対応する前記共通の属性を示す属性情報を含むアドレス変換用データを生成する変換用データ生成手段とを備えることを特徴としている。
【０００８】
上記の構成によると、論理アドレスの上位アドレスと、設定情報記憶手段が記憶する設定情報が示す論理アドレスの範囲とを比較し、比較結果に基づいて、属性情報を含むアドレス変換用データを生成している。したがって、本発明に係るアドレス変換用データ生成装置は、設定情報を記憶するレジスタと、アドレス比較とアドレス変換用データの生成とを行う処理ユニットとを備えれば良く、論理アドレスの上位アドレスのそれぞれに対応するアドレス変換用データを格納したテーブルを利用する必要がない。その結果、外部メモリ上に上記テーブルを配置する必要がなく、外部メモリを他のソフトウェアによって効率的に利用することができる。また、内部クロックの周波数を変更している時などに、外部メモリへのテーブル参照を行うことが無いので、システムの安定性が向上する。
【０００９】
なお、前記共通の属性の例としては、前記論理アドレスから前記物理アドレスに変換する場合に、デフォルトの属性情報とは異なる属性情報を割り当てることを示すもの、前記論理アドレスに対応する前記物理アドレスが有効ではないことを示すもの、および、前記論理アドレスから前記物理アドレスに変換する場合に、異なったアドレスへのマッピングが必要であることを示すものが挙げられる。
【００１０】
ここで、デフォルトの属性情報とは、例えば、論理アドレスと物理アドレスとが等しく、かつキャッシュは無効であり、かつライトバックは行わず、かつアクセス制限は無いとする属性情報である。また、物理アドレスが有効ではないとは、該物理アドレスに対応する記憶領域が存在しないか、或いは、該記憶領域が存在するが該記憶領域へのアクセスが禁止されているものである。
【００１１】
共通の属性として、前記論理アドレスに対応する前記物理アドレスが有効ではないものを利用する場合、論理アドレスが無効アドレスであることを示す属性情報を含むアドレス変換用データを作成してメモリ管理ユニットに送信することにより、例外等を発生し、動的メモリ割り当てや、ソフトの不具合検出を、メモリ上のテーブルを参照することなく使用することができる。
【００１２】
本発明に係るアドレス変換用データ生成装置では、論理アドレスから変換した物理アドレスのデータにアクセスする場合に受ける制約を示す制約情報をさらに含むことが好ましい。この場合、論理アドレスから物理アドレスへの変換だけでなく、主記憶装置へのアクセス制御を行うことができる。
【００１３】
なお、前記制約情報の例としては、キャッシュの使用方法を示すキャッシュ設定情報、アクセス権限の区分を示すドメイン設定情報、およびアクセス制限を示すアクセス制限情報が挙げられる。キャッシュ設定情報を利用する場合、キャッシュ使用領域とキャッシュ未使用領域との設定を、メモリ上のテーブルを参照することなく設定できる。また、ドメイン設定情報を利用する場合、各タスクによるメモリの分割管理等に使用する、アクセス権限の区分を示すドメイン設定を、メモリ上のテーブルを参照することなく設定できる。
【００１４】
本発明に係るアドレス変換用データ生成装置では、前記アドレス比較手段により前記論理アドレスの範囲が特定できなかった場合、前記変換用データ生成手段は、前記論理アドレスと同一の物理アドレスに変換することを示す属性情報を含むアドレス変換用データを生成してもよい。また、本発明に係るアドレス変換用データ生成装置では、前記アドレス比較手段により前記論理アドレスの範囲が特定できなかった場合、前記変換用データ生成手段は、デフォルトの属性情報を含むアドレス変換用データを生成してもよい。
【００１５】
これらの場合、詳細に分割管理する必要の無いペリフェラル等に対して、特に設定を行わなくても、ソフトウェアから見れば、メモリ管理ユニットを介さず物理アドレスを直接操作するのと同等のアクセスが可能となり、ソフトウェアを簡略化できる。また、レジスタの個数も削減できシステムＬＳＩのコストを圧迫することも無い。
【００１６】
本発明に係るアドレス変換用データ生成装置では、前記論理アドレスの上位アドレスのアドレス長が長いものと短いものとで、前記アドレス比較手段および前記変換用データ生成手段の動作を切り替える切替手段をさらに備えることが好ましい。この場合、例えば１ＭＢ単位や１ｋＢ単位でのアドレス変換などのような、多種多様なアドレス変換を実現できる。
【００１７】
なお、論理アドレスから物理アドレスに変換する情報処理装置であって、上記構成のアドレス変換用データ生成装置と、前記論理アドレスを取得し、前記論理アドレスの上位アドレスを含む参照アドレスを前記アドレス変換用データ生成装置に送信することにより、前記アドレス変換用データ生成装置からアドレス変換用データを受信し、受信したアドレス変換用データと前記論理アドレスとに基づいて前記物理アドレスを生成するメモリ管理ユニットとを備える情報処理装置であれば、上述と同様の作用効果を奏することができる。
【００１８】
また、前記メモリ管理ユニットおよび前記アドレス変換用データ生成装置は、１個のＬＳＩ上に設けられ、該ＬＳＩの内部バスによって接続されていることが好ましい。この場合、頻繁にアクセスされるテーブル参照を、非常に短時間で完了させることができ、システムのパフォーマンスを向上させることができる。また、外部メモリにテーブルを参照すること無く動作可能であり、外部バスの負荷容量を駆動するための消費電力を削減でき、低消費電力を達成できる。
【００１９】
本発明に係るアドレス変換用データ生成装置の制御方法は、論理アドレスの上位アドレスから、前記論理アドレスを物理アドレスに変換するために利用されるアドレス変換用データを生成するアドレス変換用データ生成装置であって、論理アドレスから物理アドレスへの変換に関して或る共通の属性を有する論理アドレスの範囲を示す設定情報を予め記憶する設定情報記憶手段を備えるアドレス変換用データ生成装置の制御方法であって、前記論理アドレスの上位アドレスと、前記設定情報が示す論理アドレスの範囲とを比較して、前記論理アドレスの上位アドレスが含まれる論理アドレスの範囲を特定するステップと、特定した論理アドレスの範囲に対応する前記共通の属性を示す属性情報を含むアドレス変換用データを生成する変換用データ生成ステップとを含むことを特徴としている。
【００２０】
上記の方法によると、論理アドレスの上位アドレスと、設定情報記憶手段が記憶する設定情報が示す論理アドレスの範囲とを比較し、比較結果に基づいて、属性情報を含むアドレス変換用データを生成している。したがって、上述のように、論理アドレスの上位アドレスのそれぞれに対応するアドレス変換用データを格納したテーブルを利用する必要がない。その結果、外部メモリ上に上記テーブルを配置する必要がなく、外部メモリを他のソフトウェアによって効率的に利用することができる。また、内部クロックの周波数を変更している時などに、外部メモリへのテーブル参照を行うことが無いので、システムの安定性が向上する。
【００２１】
なお、上記アドレス変換用データ生成装置の制御方法における各ステップをアドレス変換用データ生成装置制御プログラムによりコンピュータ上で実行させることができる。さらに、上記アドレス変換用データ生成装置制御プログラムをコンピュータ読取り可能な記録媒体に記憶させることにより、任意のコンピュータ上で上記アドレス変換用データ生成装置制御プログラムを実行させることができる。
【発明の効果】
【００２２】
以上のように、本発明に係るアドレス変換用データ生成装置は、設定情報を記憶するレジスタと、アドレス比較とアドレス変換用データの生成とを行う処理ユニットとを備えれば良く、論理アドレスの上位アドレスのそれぞれに対応するアドレス変換用データを格納したテーブルを利用する必要がないので、外部メモリを他のソフトウェアによって効率的に利用することができ、また、内部クロックの周波数を変更している時などに、外部メモリへのテーブル参照を行うことが無いので、システムの安定性が向上できるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
本発明の一実施形態について図１〜図４を参照しつつ説明する。図１は、本実施形態である情報処理装置の概略構成を示している。この情報処理装置１０は、１個のＬＳＩの内部に形成されている。図示のように、情報処理装置１０は、ＣＰＵ１１、ＭＭＵ１２、およびアドレス変換用データ生成ユニット１３を、高速バス１４を介して相互に接続した構成である。
【００２４】
ＣＰＵ１１は、コンピュータの中心部分であり、各種の情報を処理するものである。また、ＭＭＵ１２は、仮想記憶などのメモリ管理機能を、ＣＰＵ１１とは独立したハードウェアで実現するものである。
【００２５】
本実施形態では、ＭＭＵ１２は、ＣＰＵ１１が指定した論理アドレスを取得して物理アドレスに変換し、変換した物理アドレスを高速バス１４に送信する。これにより、高速バス１４に接続された主記憶装置または周辺装置が、上記物理アドレスに対応する記憶領域に記憶されたデータを読み出してＣＰＵ１１に送信し、ＣＰＵ１１が、受信したデータに関して各種の処理を行う。或いは、高速バス１４に接続された主記憶装置または周辺装置が、上記物理アドレスに対応する記憶領域に対しデータを書き込む。なお、以下では、ＣＰＵ１１が、主記憶装置からデータを読み出し、或いは主記憶装置にデータを書き込む場合に限定して説明する。
【００２６】
アドレス変換用データ生成ユニット１３は、ＭＭＵ１２が論理アドレスを物理アドレスに変換する場合に必要な各種情報を含む変換用データをＭＭＵ１２に提供するものであり、従来のテーブルを格納したＲＡＭ（random access memory）に対応するものである。図示のように、アドレス変換用データ生成ユニット１３は、上記変換用データを作成する変換用データ作成部１５と、上記変換用データを作成するのに必要な各種データを保存する設定レジスタ部１６とを備える構成である。変換用データ作成部１５は、高速バス１４に接続している。一方、設定レジスタ部１６は、制御バス１７およびバスブリッジ１８を介して高速バス１４に接続している。
【００２７】
次に、ＣＰＵ１１、ＭＭＵ１２、およびアドレス変換用データ生成ユニット１３の詳細について、図２〜図４を参照しつつ説明する。図２は、ＣＰＵ１１およびＭＭＵ１２の概略構成を示している。なお、ＣＰＵ１１およびＭＭＵ１２は一体に構成されていても良い。
【００２８】
ＣＰＵ１１は、論理アドレス生成部２０、データ生成・取得部２１、および例外処理部２２を備える構成である。また、ＭＭＵ１２は、論理アドレス取得部２３、参照アドレス生成部２４、変換用データ取得部２５、変換用データバッファ２６、物理アドレス生成部２７、および無効アドレス通知部２８を備える構成である。
【００２９】
ＣＰＵ１１の論理アドレス生成部２０は、取得すべきデータが記憶された仮想記憶領域を指定する論理アドレスを生成するものである。論理アドレス生成部２０は、生成した論理アドレスをＭＭＵ１２の論理アドレス取得部２３に送信する。
【００３０】
論理アドレス取得部２３は、論理アドレスから物理アドレスに変換するのに必要な変換用データが変換用データバッファ２６に無い場合に、ＣＰＵ１１から論理アドレスを取得するものである。論理アドレス取得部２３は、取得した論理アドレスの一部または全部を、参照アドレス生成部２４に送信する。
【００３１】
参照アドレス生成部２４は、論理アドレス取得部２３から受信した論理アドレスに基づいて、第１参照アドレスを生成するものである。参照アドレス生成部２４は、生成した第１参照アドレスを、高速バス１４を介してアドレス変換用データ生成ユニット１３に送信する。これにより、アドレス変換用データ生成ユニット１３が第１変換用データを生成して、高速バス１４を介してＭＭＵ１２に送信する。上記第１変換用データは、ＭＭＵ１２における変換用データ取得部２５にて取得し、変換用データバッファ２６にて一時記憶される。
【００３２】
さらに、参照アドレス生成部２４は、変換用データバッファ２６にて一時記憶される第１変換用データに含まれる属性情報に基づいて、より狭いアドレス範囲（例えば１ｋＢの記憶領域のアドレス範囲）でのアドレス変換等の検討が必要であるか否かを判断する。
【００３３】
より狭いアドレス範囲での検討が必要であると判断した場合、参照アドレス生成部２４は、変換用データバッファ２６にて一時記憶される第１変換用データの一部を上記論理アドレスの一部に変更し、これを第２参照アドレスとして、高速バス１４を介してアドレス変換用データ生成ユニット１３に送信する。これにより、アドレス変換用データ生成ユニット１３が第２変換用データを生成して、高速バス１４を介してＭＭＵ１２に送信する。上記第２変換用データは、ＭＭＵ１２における変換用データ取得部２５にて取得し、変換用データバッファ２６にて一時記憶される。なお、参照アドレスの詳細については後述する。
【００３４】
物理アドレス生成部２７は、変換用データバッファ２６にて一時記憶された第１変換用データまたは第２変換用データに含まれる属性情報に基づいて、上記論理アドレスに対応する物理アドレスが有効な物理アドレスであるか否かを判断する。ここで、有効な物理アドレスとは、具体的には、該物理アドレスに対応する記憶領域が実際に存在し、かつ、該記憶領域へのアクセスが許可されているものである。一方、有効ではない物理アドレスとは、該物理アドレスに対応する記憶領域が存在しないか、或いは、該記憶領域が存在するが該記憶領域へのアクセスが禁止されているものである。
【００３５】
有効な物理アドレスであると判断した場合、物理アドレス生成部２７は、論理アドレス取得部２３から取得した論理アドレスと、変換用データバッファ２６にて一時記憶された第１変換用データまたは第２変換用データとに基づいて物理アドレスを生成する。物理アドレス生成部２７は、生成した物理アドレスを、情報処理装置１０の外部に設けられた主記憶装置Ｍに高速バス１４を介して送信する。これにより、主記憶装置Ｍは、上記物理アドレスに対応する記憶領域に記憶されたデータを読み出して、ＣＰＵ１１に送信する。或いは、主記憶装置Ｍは、上記物理アドレスに対応する記憶領域に対し、ＣＰＵ１１から高速バス１４を介して受信したデータを書き込む。
【００３６】
無効アドレス通知部２８は、変換用データバッファ２６にて一時記憶された第２変換用データに含まれる属性情報に基づいて、上記論理アドレスに対応する物理アドレスが有効な物理アドレスであるか否かを判断する。有効な物理アドレスでは無いと判断した場合、無効アドレス通知部２８は、ＣＰＵ１１の論理アドレス生成部２０が生成した論理アドレスが、対応する物理アドレスが有効ではない無効アドレスである旨を、ＣＰＵ１１の例外処理部２２に通知する。
【００３７】
ＣＰＵ１１のデータ生成・取得部２１は、主記憶装置Ｍへのデータを生成すると共に、主記憶装置Ｍからのデータを取得するものである。これにより、ＣＰＵ１１は、あたかも、論理アドレス生成部２０が生成した論理アドレスに対応する論理記憶領域に記憶されたデータを取得することができる。また、ＣＰＵ１１は、あたかも、上記論理アドレスに対応する論理記憶領域に対し、データを記憶させることができる。
【００３８】
例外処理部２２は、ＭＭＵ１２の無効アドレス通知部２８からの通知に基づき、例外処理を行うものである。
【００３９】
図３は、アドレス変換用データ生成ユニット１３の概略構成を示している。図示のように、変換用データ作成部１５は、参照アドレス取得部３０、モード変更部３１、エリア比較部３２、フォルト比較部３３、マップ比較部３４、第１変換用データ生成部３５、第２変換用データ生成部３６、および選択部３７を備える構成である。また、設定レジスタ部１６は、エリア設定レジスタ部４０、フォルト設定レジスタ部４１、およびマップ設定レジスタ部４２を備える構成である。
【００４０】
まず、設定レジスタ部１６の各構成について説明する。エリア設定レジスタ部４０は、ＭＭＵ１２から送信される参照アドレスによって示される論理アドレスの範囲のうち、論理アドレスから物理アドレスへのアドレス変換に関してデフォルトの属性情報と異なる属性情報を付与したい範囲（以下、この範囲を「エリア設定範囲」と称する。）が設定されてレジスタに保存されている。
【００４１】
また、フォルト設定レジスタ部４１は、上記参照アドレスによって示される論理アドレスの範囲のうち、対応する物理アドレスが有効ではない範囲（以下、この範囲を「フォルト設定範囲」と称する。）が設定されてレジスタに保存されている。また、マップ設定レジスタ部４２は、上記エリア設定範囲のうち、上記論理アドレスに対応する物理アドレスとは異なる物理アドレスに変換したい範囲（以下、この範囲を「マップ設定範囲」と称する。）が設定されてレジスタに保存されている。
【００４２】
なお、各レジスタ部４０〜４２の設定値は、メモリ管理を静的に行うＯＳ（Operating System）の場合では起動時に設定される一方、メモリ管理を動的に行うＯＳの場合ではメモリの割当てを変更するたびに設定される。
【００４３】
次に、変換用データ作成部１５の各構成について説明する。参照アドレス取得部３０は、ＭＭＵ１２から参照アドレスを取得するものである。参照アドレス取得部３０は、取得した参照アドレスを、モード変更部３１、エリア比較部３２、フォルト比較部３３、マップ比較部３４、第１変換用データ生成部３５、および第２変換用データ生成部３６に送信する。
【００４４】
モード変更部３１は、参照アドレス取得部３０から受信した参照アドレスが第１参照アドレスであるか第２参照アドレスであるかを判断し、第１参照アドレスである場合に第１モードに変更し、第２参照アドレスである場合に第２モードに変更する旨のモード信号を生成するものである。モード変更部３１は、生成したモード信号を、エリア比較部３２、フォルト比較部３３、マップ比較部３４、および選択部３７に送信する。
【００４５】
ここで、第１モードとは、広い範囲でのアドレス比較、例えば１ＭＢ単位でのアドレス比較を、エリア比較部３２およびフォルト比較部３３に行わせるモードである。一方、第２モードとは、より狭い範囲でのアドレス比較、例えば１ｋＢ単位でのアドレス比較を、エリア比較部３２、フォルト比較部３３、およびマップ比較部３４に行わせるモードである。
【００４６】
エリア比較部３２は、参照アドレス取得部３０から受信した参照アドレスによって示される論理アドレスの範囲と、エリア設定レジスタ部４０にて設定されたエリア設定範囲とを比較する。エリア比較部３２は、比較結果を第１変換用データ生成部３５および第２変換用データ生成部３６に通知する。
【００４７】
フォルト比較部３３は、上記参照アドレスによって示される論理アドレスの範囲と、フォルト設定レジスタ部４１にて設定されたフォルト設定範囲とを比較する。フォルト比較部３３は、比較結果を第１変換用データ生成部３５および第２変換用データ生成部３６に通知する。
【００４８】
マップ比較部３４は、上記参照アドレスによって示される論理アドレスの範囲と、マップ設定レジスタ部４２にて設定されたマップ設定範囲とを比較する。マップ比較部３４は、比較結果を第１変換用データ生成部３５および第２変換用データ生成部３６に通知する。
【００４９】
選択部３７は、モード変更部３１から受信するモード信号に基づいて、第１モードの場合に、第１変換用データ生成部３５が生成した第１変換用データをＭＭＵ１２に送信し、第２モードの場合に、第２変換用データ生成部３６が生成した第２変換用データをＭＭＵ１２に送信するように選択する。このため、第１参照アドレスに基づいて第１変換用データ生成部３５が生成する第１変換用データがＭＭＵ１２に送信され、第２参照アドレスに基づいて第２変換用データ生成部３６が生成する第２変換用データがＭＭＵ１２に送信されることになる。
【００５０】
第１変換用データ生成部３５は、参照アドレス取得部３０から受信した参照アドレスと、エリア比較部３２およびフォルト比較部３３のそれぞれから受信した各比較結果とに基づいて、第１変換用データを生成するものである。すなわち、第１変換用データ生成部３５は、上記参照アドレスによって示される論理アドレスの範囲が、エリア設定範囲であるか否かと、フォルト設定範囲であるか否かとに基づいて、第１変換用データを生成する。
【００５１】
より詳細には、上記参照アドレスによって示される論理アドレスの範囲が、エリア設定範囲でもフォルト設定範囲でも無い場合、上記論理アドレスの範囲は、デフォルトの属性情報から属性情報を変更する必要のない範囲である。したがって、論理アドレスと等しい物理アドレスを示し、デフォルトの属性情報を付与した第１変換用データを第１変換用データ生成部３５が生成することになる。
【００５２】
一方、上記参照アドレスによって示される論理アドレスの範囲がエリア設定範囲である場合、第１モードでのアドレス比較では本当にエリア設定範囲であるか否かが確定しないため、第２モードでのアドレス比較が必要である。したがって、第２モードでの変換動作をＭＭＵ１２に促す情報を第２参照アドレスとしてアドレス変換用データ生成ユニット１３を参照するよう第２参照アドレスを付与したデータを第１変換用データ生成部３５が生成することになる。
【００５３】
一方、上記参照アドレスによって示される論理アドレスの範囲がフォルト設定範囲である場合、論理アドレスに対応する物理アドレスが有効ではないことになる。しかしながら、この場合でも、第１モードでのアドレス比較では本当にフォルト設定範囲であるか否かが確定しないため、第２モードでのアドレス比較が必要である。そこで、この場合には、上記参照アドレスによって示される論理アドレスの範囲がエリア設定範囲である上述の場合と同様の第１変換用データを第１変換用データ生成部３５が生成すればよい。
【００５４】
第２変換用データ生成部３６は、参照アドレス取得部３０から受信した参照アドレスと、エリア比較部３２、フォルト比較部３３、およびマップ比較部３４のそれぞれから受信した各比較結果とに基づいて、第２変換用データを生成するものである。すなわち、第２変換用データ生成部３６は、上記参照アドレスによって示される論理アドレスの範囲が、フォルト設定範囲であるか否かと、エリア設定範囲であるか否かと、エリア設定範囲である場合にマップ設定範囲であるか否かとに基づいて、第２変換用データを生成する。
【００５５】
より詳細には、上記参照アドレスによって示される論理アドレスの範囲が、エリア設定範囲でもフォルト設定範囲でも無い場合、上記論理アドレスの範囲は、デフォルトの属性情報から属性情報を変更する必要のない範囲である。したがって、論理アドレスと等しい物理アドレスを示し、デフォルトの属性情報を付与した第２変換用データを第２変換用データ生成部３６が生成することになる。
【００５６】
一方、上記参照アドレスによって示される論理アドレスの範囲がエリア設定範囲であって、マップ設定範囲では無い場合、論理アドレスに対応する物理アドレスが存在し、かつアクセス制限などの制約情報を参照する必要がある。したがって、論理アドレスと等しい物理アドレスを示し、上記制約情報を付与した第２変換用データを第２変換用データ生成部３６が生成することになる。
【００５７】
一方、上記参照アドレスによって示される論理アドレスの範囲がエリア設定範囲であって、マップ設定範囲である場合、マッピングにより論理アドレスと異なる物理アドレスに変換することが必要になる。したがって、上記論理アドレスの範囲の属性情報と、マッピングによる移動先の物理アドレスの情報とを含む第２変換用データを第２変換用データ生成部３６が生成することになる。
【００５８】
一方、上記参照アドレスによって示される論理アドレスの範囲がフォルト設定範囲である場合、論理アドレスに対応する物理アドレスが有効ではないことになる。したがって、論理アドレスは無効アドレスであることを示す属性情報を含む第２変換用データを第２変換用データ生成部３６が生成することになる。
【００５９】
図４は、上記構成の情報処理装置１０における処理動作の流れを示している。図示のように、まず、ＭＭＵ１２は、ＣＰＵ１１から取得した論理アドレスから第１参照アドレスを生成してアドレス変換用データ生成ユニット１３に送信する（ステップＳ１０（以下「Ｓ１０」と略称することがある。他のステップについても同様である。））。
【００６０】
次に、アドレス変換用データ生成ユニット１３は、ＭＭＵ１２から取得した第１参照アドレスによって示される論理アドレスの範囲がエリア設定範囲またはフォルト設定範囲に該当するか否かを判断する（Ｓ１１）。エリア設定範囲およびフォルト設定範囲の何れにも該当しない場合、ＭＭＵ１２は、論理アドレスを物理アドレスとして高速バス１４に送信する。これにより、ＣＰＵ１１は、論理アドレスが示す論理記憶領域に記憶されたデータを主記憶装置Ｍから取得する。或いは、ＣＰＵ１１は、主記憶装置Ｍに対しデータを上記論理記憶領域に記憶させる。その後、処理動作を終了する。
【００６１】
一方、エリア設定範囲およびフォルト設定範囲の一方に該当する場合、アドレス変換用データ生成ユニット１３は、第１変換用データを生成してＭＭＵ１２に送信する（Ｓ１３）。次に、ＭＭＵ１２は、受信した第１変換用データと上記論理アドレスとに基づいて第２参照アドレスを生成してアドレス変換用データ生成ユニット１３に送信する（Ｓ１４）。
【００６２】
次に、アドレス変換用データ生成ユニット１３は、ＭＭＵ１２から取得した第２参照アドレスによって示される論理アドレスの範囲がフォルト設定範囲に該当するか否かを判断する（Ｓ１５）。フォルト設定範囲に該当する場合、ＣＰＵ１１から取得した論理アドレスに対応する物理アドレスが有効ではないため、ＣＰＵ１１は例外処理を行う（Ｓ１６）。その後、処理動作を終了する。
【００６３】
一方、フォルト設定範囲に該当しない場合、アドレス変換用データ生成ユニット１３は、第２変換用データを生成してＭＭＵ１２に送信する（Ｓ１７）。次に、ＭＭＵ１２は、受信した第２変換用データと上記論理アドレスとに基づいて物理アドレスを生成して主記憶装置Ｍに送信する（Ｓ１８）。これにより、ＣＰＵ１１は、論理アドレスが示す論理記憶領域に記憶されたデータを主記憶装置Ｍから取得する。或いは、ＣＰＵ１１は、主記憶装置Ｍに対しデータを上記論理記憶領域に記憶させる。その後、処理動作を終了する。
【００６４】
したがって、本実施形態のアドレス変換用データ生成ユニット１３は、設定情報を記憶する設定レジスタ部１６と、アドレス比較と変換用データの生成とを行う変換用データ生成部１５とを備えれば良く、論理アドレスの上位アドレスのそれぞれに対応する変換用データを格納したテーブルを利用する必要がない。その結果、外部メモリ上に上記テーブルを配置する必要がなく、外部メモリを他のソフトウェアによって効率的に利用することができる。また、内部クロックの周波数を変更している時などに、外部メモリへのテーブル参照を行うことが無いので、システムの安定性が向上する。
【実施例】
【００６５】
次に、上記実施形態の情報処理装置１０の具体例について、図５〜図１１を参照しつつ説明する。図５は、アドレス変換用データ生成ユニット１３の回路例を示している。
【００６６】
図５に示されるように、アドレス変換用データ生成ユニット１３の設定レジスタ部１６では、エリア設定レジスタ部４０が６４個のＡｒｅａ設定レジスタを、フォルト設定レジスタ部４１が１６個のＦａｕｌｔ設定レジスタを、かつマップ設定レジスタ部４２が１６個のＭａｐ設定レジスタをそれぞれ備えている。図６（ａ）〜（ｃ）は、それぞれ、６４個のＡｒｅａ設定レジスタ４０、１６個のＭａｐ設定レジスタ４２、および１６個のＦａｕｌｔ設定レジスタ４１に格納されるデータの内容を示している。
【００６７】
一方、アドレス変換用データ生成ユニット１３の変換用データ作成部１５では、モード変更部３１がアドレスデコーダを備えている。また、変換用データ作成部１５では、高速バス１４のアドレス信号を比較するため、エリア比較部３２が６４個のＡｒｅａ比較器５０を、フォルト比較部３３が１６個のＦａｕｌｔ比較器５１を、かつマップ比較部３４が１６個のＭａｐ比較器５２をそれぞれ備えている。
【００６８】
また、変換用データ作成部１５では、第１変換用データ生成部３５が第１記述子演算器を備え、第２変換用データ生成部３６が第２記述子演算器を備え、かつ選択部３７がセレクタを備えている。
【００６９】
アドレスデコーダ３１が、高速バス１４のアドレス信号が第１のアドレス範囲に入っていると判別した時、セレクタ３７が第１記述子演算器３５の出力を高速バス１４のデータバスへ出力する。
【００７０】
一方、アドレスデコーダ３１が、高速バス１４のアドレス信号が第２のアドレス範囲に入っていると判別した時、セレクタ３７が第２記述子演算器３６の出力を高速バス１４のデータバスへ出力する。また、Ａｒｅａ比較器５０およびＦａｕｌｔ比較器５１のモードを変更し、１ＭＢ単位の比較から１ｋＢ単位の比較に変更する。
【００７１】
次に、本実施例のＭＭＵ１２およびアドレス変換用データ生成ユニット１３における処理動作と各種データの変遷とについて、図５〜図９を参照しつつ説明する。まず、本実施例におけるＭＭＵ１２の動作について図７を参照しつつ説明する。本実施例のＭＭＵ１２では、２つの変換動作のみをサポートし、その変換動作について説明する。なお、ＭＭＵ１２は、通常のＭＭＵが備えるその他各種機能を備えることもできる。
【００７２】
図７は、ＭＭＵ１２が行うアドレスの変換動作を示しており、上部が１ＭＢ単位の変換動作を示しており、下部が１ｋＢ単位の変換動作を示している。図示のように、まず、ＭＭＵ１２は、内部のレジスタにて変換テーブルベースを予め設定しておく。次に、ＣＰＵ１１が論理アドレスで外部アドレス空間を参照しようとすると、ＭＭＵ１２は、論理アドレスから物理アドレスへの変換のため、メモリ上にテーブルが存在するものとして、テーブルを参照しようとする。
【００７３】
この時、ＭＭＵ１２は、テーブルの第１参照アドレスとして、３１ビット目〜１４ビット目を変換テーブルベース、１３ビット目〜２ビット目を論理アドレスの３１ビット目〜２０ビット目のテーブルインデクス、１ビット目〜０ビット目を「００」として、テーブル中の第１記述子を参照する。この変換テーブルベースを、前記アドレス変換用データ生成ユニット１３における第１のアドレス範囲の先頭アドレスに設定しておくと、アドレス変換用データ生成ユニット１３から生成される第１記述子をＭＭＵ１２が参照できる。
【００７４】
ＭＭＵ１２は、第１記述子の１ビット目〜０ビット目が「００」であれば、Ｆａｕｌｔ例外を生成し、アクセスしようとしたアドレスが無効アドレスであることをＣＰＵ１１に知らせ、ＣＰＵ１１を例外処理に分岐させる。
【００７５】
一方、第１記述子の１ビット目〜０ビット目が「１０」であれば、ＭＭＵ１２は、１ＭＢ単位のアドレス変換であると解釈し、３１ビット目〜２０ビット目が物理アドレスの３１ビット目〜２０ビット目、１１ビット目〜１０ビット目がアクセス制限を定めたＡＰ設定、８ビット目〜５ビット目がアクセス権限の区分を示すドメイン設定、かつ３ビット目〜２ビット目がキャッシュの使用方法を定めたＣＢ設定と解釈する。最終的に、ＭＭＵ１２は、３１ビット目〜２０ビット目を、第１記述子で与えられた物理アドレスの３１ビット目〜２０ビット目とし、１９ビット目〜０ビット目を、論理アドレスの１９ビット目〜０ビット目としたアドレスを、高速バス１４を介して主記憶装置Ｍに送信する。これにより、ＣＰＵ１１は、論理アドレスから物理アドレスに１ＭＢ単位で変換されたアドレスにアクセス可能となる。
【００７６】
なお、第１記述子の１ビット目〜０ビット目が「１１」であれば、ＭＭＵ１２は、さらに第２記述子を参照する。この場合、ＭＭＵ１２は、テーブルの第２参照アドレスとして、第１記述子の３１ビット目〜１２ビット目を、第２記述子のテーブル先頭アドレスとし、論理アドレスの１９ビット目〜１０ビット目を、テーブルインデクスとしてアドレスの１１ビット目〜２ビット目として、テーブル中の第２記述子を参照する。このとき、アドレス変換用データ生成ユニット１３が生成する第１記述子の３１ビット目〜１２ビット目を、第２のアドレス範囲となるようにしているため、アドレス変換用データ生成ユニット１３から生成される第２記述子をＭＭＵ１２が参照できる。
【００７７】
ＭＭＵ１２は、第２記述子の１ビット目〜０ビット目が「００」であれば、Ｆａｕｌｔ例外を生成し、アクセスしようとしたアドレスが無効アドレスであることをＣＰＵ１１に知らせ、ＣＰＵ１１を例外処理に分岐させる。
【００７８】
一方、第２記述子の１ビット目〜０ビット目が「１１」であれば、ＭＭＵ１２は、１ｋＢ単位のアドレス変換であると解釈し、３１ビット目〜１０ビット目が物理アドレスの３１ビット目〜１０ビット目、５ビット目〜４ビット目がアクセス制限を定めたＡＰ設定、かつ３ビット目〜２ビット目がキャッシュの使用方法を定めたＣＢ設定と解釈する。最終的に、ＭＭＵ１２は、３１ビット目〜１０ビット目を、第２記述子で与えられた物理アドレスの３１ビット目〜１０ビット目とし、９ビット目〜０ビット目を、論理アドレスの９ビット目〜０ビット目としたアドレスを、高速バス１４を介して主記憶装置Ｍに送信する。これにより、ＣＰＵ１１は、論理アドレスから物理アドレスに１ｋＢ単位で変換されたアドレスにアクセス可能となる。
【００７９】
次に、本実施例におけるアドレス変換用データ生成ユニット１３の動作について、図８および図９を参照しつつ説明する。
【００８０】
アドレス変換用データ生成ユニット１３は、上述のように、アドレスデコーダ３１が、高速バス１４のアドレス信号が第１のアドレス範囲に入っていると判別した時、Ａｒｅａ比較器５０およびＦａｕｌｔ比較器５１が１ＭＢ単位の比較を行って、セレクタ３７が第１記述子演算器３５の出力を高速バス１４のデータバスへ出力する。
【００８１】
Ａｒｅａ設定レジスタ４０のＡｒｅａＯＮ設定は、対応するＡｒｅａ比較器５０が作動するか否かを選択するものである。ＡｒｅａＯＮ設定により作動することを選択されたＡｒｅａ比較器５０は、入力された高速バス１４のアドレス信号を、図６（ａ）に示されるＡｒｅａＳｔａｒｔ設定とＡｒｅａＬｅｎ設定とを用いて比較する。
【００８２】
具体的には、Ａｒｅａ比較器５０は、高速バス１４のアドレス信号３２ビットの１３ビット目〜２ビット目を３１ビット目〜２０ビット目と考えたアドレスが、ＡｒｅａＳｔａｒｔ設定２２ビットのうち上位１２ビットから、ＡｒｅａＳｔａｒｔ設定２２ビットにＡｒｅａＬｅｎ設定１６ビットを加算した数の上位１２ビットまでの範囲に入っていれば、比較結果として、対応するＡＨＩＴ信号をＨｉｇｈにし、それ以外のときはＬｏｗにする。すなわち、Ａｒｅａ比較器５０は、論理アドレスが、ＡｒｅａＳｔａｒｔ設定で示されるアドレスからＡｒｅａＬｅｎ設定で示される長さの範囲に、１ＭＢ単位で入っていればＡＨＩＴをＨｉｇｈに、入っていなければＬｏｗにする。
【００８３】
Ｆａｕｌｔ設定レジスタ４１のＦａｕｌｔＯＮ設定は、対応するＦａｕｌｔ比較器５１を作動するか否かを選択するものである。ＦａｕｌｔＯＮ設定により作動することを選択されたＦａｕｌｔ比較器５１は、入力された高速バス１４のアドレス信号を、図６（ｃ）に示されるＦａｕｌｔＳｔａｒｔ設定とＦａｕｌｔＬｅｎ設定とを用いて比較する。
【００８４】
具体的には、Ｆａｕｌｔ比較器５１は、高速バス１４のアドレス信号３２ビットの１３ビット目〜２ビット目を３１ビット目〜２０ビット目と考えたアドレスが、ＦａｕｌｔＳｔａｒｔ設定から、ＦａｕｌｔＳｔａｒｔ設定の上位１２ビットにＦａｕｌｔＬｅｎ設定１８ビットを加算した数までの範囲に入っていれば、比較結果として、対応するＦＨＩＴ信号をＨｉｇｈにし、それ以外のときはＬｏｗにする。すなわち、Ｆａｕｌｔ比較器５１は、論理アドレスが、ＦａｕｌｔＳｔａｒｔ設定で示されるアドレスからＦａｕｌｔＬｅｎ設定で示される長さの範囲に、１ＭＢ単位で入っていればＦＨＩＴをＨｉｇｈに、入っていなければＬｏｗにする。
【００８５】
Ｍａｐ設定レジスタ４２のＭａｐＯＮ設定は、対応するＭａｐ比較器５２を作動するか否かを選択するものである。ＭａｐＯｎ設定により作動することを選択されたＭａｐ比較器５２は、入力された高速バス１４のアドレス信号を、図６（ｂ）に示されるＭａｐＳｔａｒｔ設定とＭａｐＬｅｎ設定とを用いて比較する。
【００８６】
具体的には、Ｍａｐ比較器５２は、高速バス１４のアドレス信号３２ビットの１３ビット目〜２ビット目を３１ビット目〜２０ビット目と考えたアドレスが、ＭａｐＳｔａｒｔ設定から、ＭａｐＳｔａｒｔ設定にＭａｐＬｅｎ設定１６ビットを加算した数までの範囲に入っていれば、比較結果として、対応するＭＨＩＴ信号をＨｉｇｈにし、それ以外の時はＬｏｗにする。すなわち、Ｍａｐ比較器５２は、論理アドレスが、ＭａｐＳｔａｒｔ設定で示されるアドレスからＭａｐＬｅｎ設定で示される長さの範囲に、１ｋＢ単位で入っていればＭＨＩＴをＨｉｇｈに、入っていなければＬｏｗにする。
【００８７】
ここで、Ａｒｅａ設定は、互いに排他に設定するものとする。すなわち、Ａｒｅａ比較器５０で設定するアドレス範囲が互いに重ならないように設定し、２つ以上のＡＨＩＴ信号が同時にＨｉｇｈとはならないように設定するものとする。同様に、Ｆａｕｌｔ設定も、互いに排他に設定するものとし、Ｍａｐ設定も、互いに排他に設定するものとする。
【００８８】
さらに、Ｆａｕｌｔ設定およびＡｒｅａ設定も、排他に設定するものとする。すなわち、ＡＨＩＴ信号およびＦＨＩＴ信号は、２つ以上同時にＨｉｇｈとはならないように設定するものとする。さらに、Ｍａｐ設定をする領域については、何れかのＡｒｅａ設定と共有設定とする。すなわち、何れかのＭＨＩＴ信号がＨｉｇｈになる時は必ず、何れかのＡＨＩＴ信号がＨｉｇｈになるように設定するものとする。
【００８９】
図８は、高速バス１４から第１記述子演算器３５に入力されるアドレス信号と、第１記述子演算器３５から高速バス１４に第１記述子として出力されるデータ信号とを示している。図示のように、第１記述子演算器３５は、全てのＡＨＩＴ信号がＬｏｗであり、かつ、全てのＦＨＩＴ信号がＬｏｗである場合、高速バス１４のアドレス信号の１３ビット目〜２ビット目を第１記述子の３１ビット目〜２０ビット目とし、１９ビット目〜０ビット目を定数「００００００００１１０００００１００１０」として出力する。
【００９０】
また、第１記述子演算器３５は、ＡＨＩＴ信号の何れかがＨｉｇｈである場合、ＴａｂｌｅＩｎｄｅｘ番目のＡＨＩＴ信号がＨｉｇｈであるとすると、第２のアドレス範囲の先頭アドレスの上位２０ビットに、ＴａｂｌｅＩｎｄｅｘを加算したものを３１ビット目〜１２ビット目とし、８ビット目〜５ビット目をＡＨＩＴがＨｉｇｈとなっているＡｒｅａのＡｒｅａＤｏｍ設定とし、１１ビット目〜９ビット目を定数「０００」とし、４ビット目〜０ビット目を定数「１００１１」として出力する。
【００９１】
また、第１記述子演算器３５は、ＦＨＩＴ信号の何れかがＨｉｇｈである場合、ＴａｂｌｅＩｎｄｅｘ番目のＦＨＩＴ信号がＨｉｇｈであるとすると、第２のアドレス範囲の先頭アドレスの上位２０ビットに、ＴａｂｌｅＩｎｄｅｘを加算したものを３１ビット目〜１２ビット目とし、１１ビット目〜０ビット目を定数「０００００００１００１１」として出力する。
【００９２】
ここで、第２のアドレス範囲の先頭アドレスは、第１のアドレス範囲の先頭アドレスに０ｘ０１００＿００００加算したものとしている。
【００９３】
アドレス変換用データ生成ユニット１３は、上述のように、アドレスデコーダ３１が、高速バス１４のアドレス信号が第２のアドレス範囲に入っていると判別した時、Ａｒｅａ比較器５０およびＦａｕｌｔ比較器５１が１ｋＢ単位の比較を行って、セレクタ３７が第２記述子演算器３６の出力を高速バス１４のデータバスへ出力する。
【００９４】
すなわち、ＡｒｅａＯＮ設定により作動することを選択されたＡｒｅａ比較器５０は、高速バス１４のアドレス信号３２ビットの１１ビット目〜２ビット目をアドレスの１９ビット目〜１０ビット目と考え、高速バス１４のアドレス信号３２ビットの３１ビット目〜２０ビット目からＴｒａｎｓｌａｔｉｏｎＢａｓｅと０ｘ０１００＿００００とを減算したものをアドレスの３１ビット目〜２０ビット目と考えたアドレスが、ＡｒｅａＳｔａｒｔ設定２２ビットから、ＡｒｅａＳｔａｒｔ設定２２ビットにＡｒｅａＬｅｎ設定１６ビットを加算した数の範囲に入っていれば、対応するＡＨＩＴ信号をＨｉｇｈにし、それ以外のときはＬｏｗにする。すなわち、上記Ａｒｅａ比較器５０は、論理アドレスが、ＡｒｅａＳｔａｒｔ設定で示されるアドレスからＡｒｅａＬｅｎ設定で示される長さの範囲に、１ｋＢ単位で入っていればＡＨＩＴをＨｉｇｈに、入っていなければＬｏｗにする。
【００９５】
また、ＦａｕｌｔＯＮ設定により作動することを選択されたＦａｕｌｔ比較器５１は、高速バス１４のアドレス信号３２ビットの１１ビット目〜２ビット目をアドレスの１９ビット目〜１０ビット目と考え、高速バス１４のアドレス信号３２ビットの３１ビット目〜２０ビット目からＴｒａｎｓｌａｔｉｏｎＢａｓｅと０ｘ０１００＿００００とを減算したものをアドレスの３１ビット目〜２０ビット目と考えたアドレスが、ＦａｕｌｔＳｔａｒｔ設定から、ＦａｕｌｔＳｔａｒｔ設定にＦａｕｌｔＬｅｎ設定１８ビットを加算した数までの範囲に入っていれば、対応するＦＨＩＴ信号をＨｉｇｈにし、それ以外のときはＬｏｗにする。すなわち、上記Ｆａｕｌｔ比較器５１は、論理アドレスが、ＦａｕｌｔＳｔａｒｔ設定で示されるアドレスからＦａｕｌｔＬｅｎ設定で示される長さの範囲に、１ｋＢ単位で入っていればＦＨＩＴをＨｉｇｈに、入っていなければＬｏｗにする。
【００９６】
一方、ＭａｐＯｎ設定により作動することを選択されたＭａｐ比較器５２は、高速バス１４のアドレス信号３２ビットの１１ビット目〜２ビット目をアドレスの１９ビット目〜１０ビット目と考え、高速バス１４のアドレス信号３２ビットの３１ビット目〜２０ビット目からＴｒａｎｓｌａｔｉｏｎＢａｓｅと０ｘ０１００＿００００とを減算したものをアドレスの３１ビット目〜２０ビット目と考えたアドレスが、ＭａｐＳｔａｒｔ設定から、ＭａｐＳｔａｒｔ設定にＭａｐＬｅｎ設定を加算した数までの範囲に入っていれば、対応するＭＨＩＴ信号をＨｉｇｈにし、それ以外の時はＬｏｗにする。すなわち、上記Ｍａｐ比較器５２は、論理アドレスが、ＭａｐＳｔａｒｔ設定で示されるアドレスからＭａｐＬｅｎ設定で示される長さの範囲に、１ｋＢ単位で入っていればＭＨＩＴをＨｉｇｈに、入っていなければＬｏｗにする。
【００９７】
図９は、高速バス１４から第２記述子演算器３６に入力されるアドレス信号と、第２記述子演算器３６から高速バス１４に第２記述子として出力されるアドレス信号とを示している。図示のように、第２記述子演算器３６は、全てのＡＨＩＴ信号がＬｏｗであり、かつ、全てのＦＨＩＴ信号がＬｏｗである場合、３１ビット目〜２０ビット目を、高速バス１４のアドレス信号の２３ビット目〜１２ビット目とし、１９ビット目〜１０ビット目を、高速バス１４のアドレス信号の１１ビット目〜２ビット目とし、９ビット目〜０ビット目を定数「００００１１００１１」として出力する。
【００９８】
また、第２記述子演算器３６は、何れかのＡＨＩＴ信号がＨｉｇｈであり、かつ全てのＭＨＩＴ信号がＬｏｗである場合、３１ビット目〜２０ビット目を、高速バス１４のアドレス信号の２３ビット目〜１２ビット目とし、１９ビット目〜１０ビット目を、高速バス１４のアドレス信号の１１ビット目〜２ビット目とし、５ビット目〜４ビット目をＡＨＩＴがＨｉｇｈとなっているＡｒｅａのＡｒｅａＡＰ設定とし、３ビット目〜２ビット目をＡＨＩＴがＨｉｇｈとなっているＡｒｅａのＡｒｅａＣａｃｈｅ設定とし、９ビット目〜６ビット目を定数「００００」とし、１ビット目〜０ビット目を定数「１１」として出力する。
【００９９】
また、第２記述子演算器３６は、何れかのＭＨＩＴ信号がＨｉｇｈである場合、３１ビット目〜１０ビット目を、ＭＨＩＴがＨｉｇｈとなっているＭａｐのＭａｐＰｈｙ設定と高速バス１４のアドレス信号の１１ビット目〜２ビット目を加算したものとし、５ビット目〜４ビット目をＡＨＩＴがＨｉｇｈとなっているＡｒｅａのＡｒｅａＡＰ設定とし、３ビット目〜２ビット目をＡＨＩＴがＨｉｇｈとなっているＡｒｅａのＡｒｅａＣａｃｈｅ設定とし、９ビット目〜６ビット目を定数「００００」とし、１ビット目〜０ビット目を定数「１１」として出力する。
【０１００】
また、第２記述子演算器３６は、何れかのＦＨＩＴ信号がＨｉｇｈである場合、３１ビット目〜２０ビット目を、高速バス１４のアドレス信号の２３ビット目〜１２ビット目とし、１９ビット目〜１０ビット目を、高速バス１４のアドレス信号の１１ビット目〜２ビット目とし、９ビット目〜０ビット目を定数「００００１１００００」として出力する。
【０１０１】
次に、ＣＰＵ１１、すなわち高速バス１４から見たアドレス変換用データ生成ユニット１３の動作について図１０を参照しつつ説明する。図１０は、高速バス１４から見たアドレス変換用データ生成ユニット１３のアドレスマップを示している。図示のように、ＭＭＵ１２において、第１のアドレス範囲の先頭アドレスであるＴｒａｎｓｌａｔｉｏｎＢａｓｅを変換テーブルベースとして設定しておくことにより、第１記述子への参照は、第１のアドレス範囲である１６ｋＢ空間へのアクセスとなり、ＭＭＵ１２は、第１記述子演算器３５からの出力をテーブルと解釈して動作する。
【０１０２】
このとき、Ａｒｅａ設定およびＦａｕｌｔ設定の何れにもＨｉｔしなかった場合、図８に示されるように、第１記述子の１ビット目〜０ビット目が「１０」となるので、１ＭＢ単位の変換と解釈される。また、第１記述子の３１ビット目〜２０ビット目は、ＭＭＵ１２からの第１参照アドレスの１３ビット目〜２ビット目を返している。これにより、論理アドレスの３１ビット目〜２０ビット目と、物理アドレスの３１ビット目〜２０ビット目とが同一となり、論理アドレスと物理アドレスとは等しくなる。したがって、Ａｒｅａ設定、Ｆａｕｌｔ設定などを特に設定しない領域は、論理アドレスと物理アドレスとが等しいものとして動作する。
【０１０３】
一方、Ａｒｅａ設定およびＦａｕｌｔ設定の何れかにＨｉｔした場合、図８に示されるように、第１記述子の１ビット目〜０ビット目は「１１」となるので、ＭＭＵ１２は、第２記述子を参照する。このとき、第１記述子の３１ビット目〜１２ビット目を、第２のアドレス範囲の先頭アドレスの上位２０ビットに、ＴａｂｌｅＩｎｄｅｘを加算したものとしているため、図１０に示されるように、第２記述子への参照は、３２ＭＢ空間の内、後半の１６ＭＢ空間の範囲となる。
【０１０４】
次に、１ｋＢ単位のアドレス変換動作について図１１を参照しつつ説明する。図１１は、第１記述子から第２記述子へのアドレスマッピングを示している。上述のように、ＭＭＵ１２は、第１記述子を１ＭＢ単位に参照し、さらに詳細な１ｋＢ単位のアドレス変換のために、第２記述子を参照している。このとき、図８に示されるように、ＦｉｎｅＰａｇｅＢａｓｅＡｄｄｒｅｓｓとして、ＴａｂｌｅＩｎｄｅｘを加算したものを第１記述子としてＭＭＵ１２に返している。したがって、第２記述子への参照は、図１１に示されるように、第１記述子のそれぞれに対応した、第２記述子のアドレス領域への参照となる。
【０１０５】
この参照も、上述のように、アドレス変換用データ生成ユニット１３における第２のアドレス範囲へのアクセスとなる。このとき、全てのＡＨＩＴ信号およびＦＨＩＴ信号がＬｏｗである場合、すなわち、１ＭＢ単位ではＡｒｅａ設定またはＦａｕｌｔ設定にＨｉｔしたが、１ｋＢ単位ではＡｒｅａ設定およびＦａｕｌｔ設定の何れにもにＨｉｔしなかった場合、図９に示されるように、第２記述子の３１ビット目〜２０ビット目を、ＦｉｎｅＰａｇｅＢａｓｅＡｄｄｒｅｓｓの２３ビット目〜１２ビット目としている。この第２記述子に対応する第１記述子は、図８に示されるように、第２のアドレス範囲の先頭アドレスの上位２０ビットに、ＴａｂｌｅＩｎｄｅｘを加算したものを３１ビット目〜１２ビット目としているから、図１１に従うと、これは論理アドレスの１９ビット目〜１０ビット目と同一であり、結局、論理アドレスと物理アドレスとが同一として解釈される。
【０１０６】
一方、何れかのＡＨＩＴ信号がＨｉｇｈとなり、全てのＭＨＩＴ信号がＬｏｗである場合、すなわち、何れかのＡｒｅａ設定にＨｉｔしたが、Ｍａｐ設定にはＨｉｔしなかった場合、同様に論理アドレスと物理アドレスが同一として解釈される。またこのとき、高速バス１４のアドレス信号３２ビットの１１ビット目〜２ビット目をアドレスの１９ビット目〜１０ビット目と考え、高速バス１４のアドレス信号３２ビットの３１ビット目〜２０ビット目からＴｒａｎｓｌａｔｉｏｎＢａｓｅと０ｘ０１００＿００００とを減算したものをアドレスの３１ビット目〜２０ビット目と考えたアドレスを、Ａｒｅａ比較器５０に使用しているため、第２記述子で出力されるＡｒｅａＡＰ設定、ＡｒｅａＣａｃｈｅ設定は、該当論理アドレスのＡｒｅａＡＰ設定、ＡｒｅａＣａｃｈｅ設定となる。
【０１０７】
一方、何れかのＦＨＩＴ信号がＨｉｇｈである場合、すなわち、何れかのＦａｕｌｔ設定にＨｉｔした場合、ＭＭＵ１２は、第２記述子の１ビット目〜０ビット目が「００」であるため、Ｆａｕｌｔ例外を生成し、アクセスしようとしたアドレスが無効アドレスであることをＣＰＵ１１に知らせ、ＣＰＵ１１を例外処理に分岐させる。
【０１０８】
他方、何れかのＭＨＩＴ信号がＨｉｇｈである場合、すなわち、何れかのＭａｐ設定にＨｉｔした場合、第２記述子の３１ビット目〜１０ビット目を、ＭＨＩＴがＨｉｇｈとなっているＭａｐのＭａｐＰｈｙ設定と、高速バス１４のアドレス信号の１１ビット目〜２ビット目とを加算したものとしており、論理アドレスのＭａｐＳｔａｒｔが物理アドレスのＭａｐＰｈｙに変換されると解釈される。また、第２記述子で出力されるＡｒｅａＡＰ設定、ＡｒｅａＣａｃｈｅ設定は、該当論理アドレスのＡｒｅａＡＰ設定、ＡｒｅａＣａｃｈｅ設定となる。
【０１０９】
図１０および図１１に示されるアドレスマップを参照すると、従来のアドレス変換用テーブルを全てＲＡＭに展開した場合、アドレス変換用テーブルがＲＡＭの１６ｋＢ＋１６ＭＢを占有することになる。これは、約数億個のトランジスタ規模に相当する。これに対し、本実施例のアドレス変換用データ生成ユニット１３を論理回路によって構成する場合、約数十万個のトランジスタ規模になることが予想される。したがって、本発明に係るアドレス変換用データ生成ユニット１３は、従来のアドレス変換用テーブルよりも回路規模を著しく縮小できる。
【０１１０】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０１１１】
例えば、本発明は以下のように構成することもできる。
【０１１２】
すなわち、本発明に係るアドレス変換用データ生成装置は、前記メモリ管理ユニットは、大きい領域でのアドレス変換情報と属性情報を与えるテーブルの参照と、小さい領域でのアドレス変換情報と属性情報を与えるテーブルの参照とを複数回行う事を特徴とし、前記アドレス設定情報を設定しないアドレス領域に対して、論理アドレスと物理アドレスが同一となるようテーブル内容を、１回目のテーブル参照である大きい領域でのテーブルの参照で該アドレス変換情報を与える構成であってもよい。
【０１１３】
また、本発明に係るアドレス変換用データ生成装置は、前記メモリ管理ユニットは、大きい領域でのアドレス変換情報と属性情報を与えるテーブルの参照と、小さい領域でのアドレス変換情報と属性情報を与えるテーブルの参照とを複数回行う事を特徴とし、前記アドレス設定情報および属性情報を設定しないアドレス領域に対して、特定のデフォルトの属性情報を、１回目のテーブル参照である大きい領域でのテーブルの参照で該属性情報を与える構成であってもよい。
【０１１４】
また、本発明に係るアドレス変換用データ生成装置は、前記メモリ管理ユニットは、大きい領域でのアドレス変換情報と属性情報を与えるテーブルの参照と、小さい領域でのアドレス変換情報と属性情報を与えるテーブルの参照とを複数回行う事を特徴とし、２回目以降もアドレス変換用データ生成装置をテーブル参照させるために、テーブルアドレス情報を該テーブル参照以前のテーブル内容に与える構成であってもよい。
【０１１５】
また、本発明に係るアドレス変換用データ生成装置は、前記メモリ管理ユニットは、大きい領域でのアドレス変換情報と属性情報を与えるテーブルの参照と、小さい領域でのアドレス変換情報と属性情報を与えるテーブルの参照とを複数回行う事を特徴とし、テーブル内容に与えられる次回の参照すべきテーブルアドレス情報を、該テーブル参照時の論理アドレス区分に応じた固定のテーブルアドレス情報とする構成であってもよい。
【０１１６】
また、本発明に係るアドレス変換用データ生成装置は、前記メモリ管理ユニットは、大きい領域でのアドレス変換情報と属性情報を与えるテーブルの参照と、小さい領域でのアドレス変換情報と属性情報を与えるテーブルの参照とを複数回行う事を特徴とし、テーブル内容に与えられる次回の参照すべきテーブルアドレス情報を、該テーブル参照時の論理アドレス区分に応じた固定のテーブルアドレス情報とする事を特徴とし、該テーブルアドレスと参照された論理アドレス区分とから論理アドレスを逆算して属性情報設定を検索する構成であってもよい。
【０１１７】
本発明によれば、大きい領域でのアドレス変換情報と属性情報を与えるテーブルの参照と、小さい領域でのアドレス変換情報と属性情報を与えるテーブルの参照とを複数回行うメモリ管理ユニットにおいて、前記アドレス設定情報を設定しないアドレス領域に対して、論理アドレスと物理アドレスが同一となるようテーブル内容と、特定のデフォルトの属性情報を、１回目のテーブル参照である大きい領域でのテーブルの参照で該アドレス変換情報および属性情報を与える事ができる。これにより、詳細に分割管理する必要の無いペリフェラル等に対して、メモリ管理ユニットのテーブル参照を１回のみに限定でき、パフォーマンスを圧迫する事も無い。
【０１１８】
また本発明によれば、２回目以降のテーブル参照を、アドレス変換用データ生成装置自身をテーブル参照させる事ができ、テーブル内容に与えられる次回の参照すべきテーブルアドレス情報を、該テーブル参照時の論理アドレス区分に応じた固定のテーブルアドレス情報とする事ができ、該テーブルアドレスと参照された論理アドレス区分とから論理アドレスを逆算して属性情報設定を検索する事ができる。これにより、メモリ管理ユニットのテーブル参照が必ずアドレス変換用データ生成装置を参照する事を保証でき、また、複数回のテーブル参照における、論理アドレスの逆算が簡単となり、回路を簡単化できる。
【０１１９】
最後に、ＭＭＵ１２およびアドレス変換用データ生成ユニット１３の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０１２０】
すなわち、ＭＭＵ１２およびアドレス変換用データ生成ユニット１３は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）またはＲＡＭ、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるＭＭＵ１２およびアドレス変換用データ生成ユニット１３の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記ＭＭＵ１２およびアドレス変換用データ生成ユニット１３に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１２１】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０１２２】
また、ＭＭＵ１２およびアドレス変換用データ生成ユニット１３を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【０１２３】
本発明に係るアドレス変換用データ生成装置では、設定情報を記憶するレジスタと、アドレス比較とアドレス変換用データの生成とを行う処理ユニットとを備えれば良く、論理アドレスの上位アドレスのそれぞれに対応するアドレス変換用データを格納したテーブルを利用する必要がないので、或るデータから別のデータに変換するための変換テーブルを主記憶装置に記憶させる必要がある情報処理装置にも適用できる。
【図面の簡単な説明】
【０１２４】
【図１】本発明の一実施形態である情報処理装置の概略構成を示すブロック図である。
【図２】上記情報処理装置におけるＣＰＵおよびＭＭＵの概略構成を示すブロック図である。
【図３】上記情報処理装置におけるアドレス変換用データ生成ユニットの概略構成を示すブロック図である。
【図４】上記情報処理装置における処理動作の流れを示すフローチャートである。
【図５】上記アドレス変換用データ生成ユニットの一例を示す回路図である。
【図６】同図（ａ）〜（ｃ）は、それぞれ、上記アドレス変換用データ生成ユニットにおけるＡｒｅａ設定レジスタ、Ｍａｐ設定レジスタ、およびＦａｕｌｔ設定レジスタに格納されるデータの内容を表形式で示す図である。
【図７】上記ＭＭＵが行うアドレスの変換動作によるアドレス信号の遷移例を示す図である。
【図８】上記アドレス変換用データ生成ユニットの第１記述子演算器におけるアドレス信号の変換例を示す図である。
【図９】上記アドレス変換用データ生成ユニットの第２記述子演算器におけるアドレス信号の変換例を示す図である。
【図１０】高速バスから見た上記アドレス変換用データ生成ユニットのアドレスマップを示す図である。
【図１１】上記アドレス変換用データ生成ユニットにおける第１記述子から第２記述子へのアドレスマッピングを示す図である。
【符号の説明】
【０１２５】
１０    情報処理装置
１１    ＣＰＵ
１２    ＭＭＵ（メモリ管理ユニット）
１３    アドレス変換用データ生成ユニット（アドレス変換用データ生成装置）
１４    高速バス（内部バス）
１６    設定レジスタ部（設定情報記憶手段）
３１    モード変更部（切替手段）
３２    エリア比較部（アドレス比較手段）
３３    フォルト比較部（アドレス比較手段）
３４    マップ比較部（アドレス比較手段）
３５    第１変換アドレス生成部（変換用データ生成手段）
３６    第２変換アドレス生成部（変換用データ生成手段）
３７    選択部（切替手段）
【図１】
2007207123.tif 000003
【図２】
2007207123.tif 000004
【図３】
2007207123.tif 000005
【図４】
2007207123.tif 000006
【図５】
2007207123.tif 000007
【図６】
2007207123.tif 000008
【図７】
2007207123.tif 000009
【図８】
2007207123.tif 000010
【図９】
2007207123.tif 000011
【図１０】
2007207123.tif 000012
【図１１】
2007207123.tif 000013