(57)【要約】【課題】アドレス変換すべき有効ビット数をユーザが指定しなくても、効率よくＴＬＢにアドレス変換テーブルをキャッシュする。【解決手段】アドレス変換装置（１０）は、ＴＬＢ（２０）と、アドレス変換テーブルを参照して、ＴＬＢ（２０）に格納された対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントし、当該連続アドレス数をアドレスおよび物理アドレスの対に対応付けて格納するとともに、変換対象アドレスがＴＬＢ（２０）に格納された論理アドレスから連続アドレス数の範囲に含まれるか否かを判定し、変換対象アドレスがその範囲に含まれる場合、当該論理アドレスと変換対象アドレスとの差分を、当該論理アドレスと対をなす物理アドレスに加算して、変換物理アドレスを算出するアドレス変換制御部（３０）と、を備えている。【選択図】図１
2011018182.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスを物理アドレスに変換するアドレス変換装置であって、
ＴＬＢ（Translation Look-aside Buffer）と、
アドレス変換テーブルを参照して、前記ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントし、当該連続アドレス数を前記論理アドレスおよび物理アドレスの対に対応付けて格納するとともに、変換対象アドレスが前記ＴＬＢに格納された論理アドレスから連続アドレス数の範囲に含まれるか否かを判定し、前記変換対象アドレスが前記範囲に含まれる場合、当該論理アドレスと前記変換対象アドレスとの差分を、当該論理アドレスと対をなす物理アドレスに加算して、変換物理アドレスを算出するアドレス変換制御部と、を備えている
ことを特徴とするアドレス変換装置。
【請求項２】
論理アドレスを物理アドレスに変換するアドレス変換装置であって、
ＴＬＢ（Translation Look-aside Buffer）と、
アドレス変換テーブルを参照して、前記ＴＬＢに格納された下位ｎビットが全て同じ論理値である対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントし、当該連続アドレス数を２ｎ−１に丸めて前記論理アドレスおよび物理アドレスの対に対応付けて格納するとともに、変換対象アドレスと前記ＴＬＢに格納された論理アドレスとを、下位ｎビットを除いて比較し、これらが一致する場合、当該論理アドレスと対をなす物理アドレスの下位ｎビットを前記変換対象アドレスの下位ｎビットに置換して、変換物理アドレスを算出するアドレス変換制御部と、を備えている
ことを特徴とするアドレス変換装置。
【請求項３】
請求項１および２のうち何れか１つのアドレス変換装置において、
前記アドレス変換制御部は、前記ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを基準にして当該基準をインクリメントし、当該インクリメントしたアドレスが前記アドレス変換テーブルに含まれる場合、前記連続アドレス数をカウントアップする
ことを特徴とするアドレス変換装置。
【請求項４】
請求項１および２のうち何れか１つのアドレス変換装置において、
前記アドレス変換制御部は、前記ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを基準にして当該基準をデクリメントし、当該デクリメントしたアドレスが前記アドレス変換テーブルに含まれる場合、前記連続アドレス数をカウントアップする
ことを特徴とするアドレス変換装置。
【請求項５】
請求項１および２のうち何れか１つのアドレス変換装置において、
前記アドレス変換制御部は、前記ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを第１の基準および第２の基準にして前記第１の基準をインクリメントし、当該インクリメントしたアドレスが前記アドレス変換テーブルに含まれる場合、前記連続アドレス数をカウントアップする一方、前記第２の基準をデクリメントし、当該デクリメントしたアドレスが前記アドレス変換テーブルに含まれる場合、前記連続アドレス数をカウントアップし、前記ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを前記第１の基準と前記第２の基準との間における連続アドレス空間の先頭または末尾のアドレスに置き換える
ことを特徴とするアドレス変換装置。
【請求項６】
請求項１および２のうち何れか１つのアドレス変換装置において、
前記アドレス変換制御部は、アドレス変換が要求されていないアイドル時に、前記連続アドレス数をカウントして前記ＴＬＢに格納する
ことを特徴とするアドレス変換装置。
【請求項７】
請求項１および２のうち何れか１つのアドレス変換装置において、
当該アドレス変換装置は、ＤＭＡ転送制御装置である
ことを特徴とするアドレス変換装置。
【請求項８】
請求項１乃至７のうち何れか１つのアドレス変換装置と、
アドレス変換テーブルを保持する外部メモリと、を備え、
前記アドレス変換装置は、前記外部メモリにおけるアドレス変換テーブルを参照して、連続アドレス数をカウントして前記アドレス変換装置におけるＴＬＢに格納する
ことを特徴とする半導体装置。
【請求項９】
論理アドレスを物理アドレスに変換するアドレス変換方法であって、
アドレス変換テーブルを参照して、ＴＬＢ（Translation Look-aside Buffer）に格納された対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントするステップと、
前記連続アドレス数を前記論理アドレスおよび物理アドレスの対に対応付けるステップと、
変換対象アドレスが前記ＴＬＢに格納された論理アドレスから連続アドレス数の範囲に含まれるか否かを判定するステップと、
前記変換対象アドレスが前記範囲に含まれる場合、前記ＴＬＢに格納された論理アドレスと前記変換対象アドレスとの差分を、当該論理アドレスと対をなす物理アドレスに加算して、変換物理アドレスを算出するステップと、を備えている
ことを特徴とするアドレス変換方法。
【請求項１０】
論理アドレスを物理アドレスに変換するアドレス変換方法であって、
アドレス変換テーブルを参照して、ＴＬＢ（Translation Look-aside Buffer）に格納された下位ｎビットが全て同じ論理値である対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントするステップと、
前記連続アドレス数を２ｎ−１に丸めて前記論理アドレスおよび物理アドレスの対に対応付けるステップと、
変換対象アドレスと前記ＴＬＢに格納された前記論理アドレスとを、下位ｎビットを除いて比較するステップと、
前記比較結果が一致を示す場合、当該論理アドレスと対をなす物理アドレスの下位ｎビットを前記変換対象アドレスの下位ｎビットに置換して、変換物理アドレスを算出するステップと、を備えている
ことを特徴とするアドレス変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアドレス変換装置に関し、特に、ＴＬＢ（Translation Look-aside Buffer）を用いてアドレス変換する技術に関するものである。
【背景技術】
【０００２】
一般に、コンピュータ上でプログラムが使用する論理アドレスを物理アドレスに変換するためのアドレス変換機構としてＴＬＢが用いられている。ＴＬＢに格納された１エントリによって変換可能なアドレス空間の広さ、すなわちブロック長は固定的である。そのため、連続した論理アドレスとこれに対応する連続した物理アドレスとをＴＬＢに格納する場合でも連続する数分のＴＬＢエントリが必要となり、ＴＬＢエントリが冗長的に使用される。ＴＬＢに格納するアドレス数が多くなると、変換するアドレスを検索する時間が長くなり、アドレス変換速度の向上が妨げられる。したがって、ＴＬＢに格納するアドレス数を少なくすることが望ましい。
【０００３】
そこで、アドレス数を削減する手段の一つとして、ＴＬＢを階層化して、上位層から下位層に向かってアドレス空間が狭くなるように、ＴＬＢの各層にアドレス変換すべき有効ビット数をユーザが指定できるアドレス変換装置が開示されている（例えば、特許文献１参照）。これによれば、連続した論理アドレス空間に対し、より大きな連続した物理アドレス空間が対応しているときは有効ビット数がより大きく設定された上位層のＴＬＢを使用することにより、ＴＬＢに格納するアドレス数を削減することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３６０２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のアドレス変換装置では、アドレス変換すべき有効ビット数をユーザが把握していることが前提である。また、有効ビット数はアプリケーション毎に異なるため、アプリケーション毎に割り当てられるＴＬＢを動的に変更するのは困難である。すなわち、あるアプリケーションが使用するＴＬＢを、他のアプリケーションが使用できるとは限らず、ＴＬＢの使用効率が低下するおそれがある。
【０００６】
本発明は、かかる点に鑑みてなされたものであり、アドレス変換すべき有効ビット数をユーザが指定しなくても効率よくＴＬＢにアドレス変換テーブルをキャッシュすることを課題とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するため、本発明によって次のような手段を講じた。すなわち、論理アドレスを物理アドレスに変換するアドレス変換装置として、ＴＬＢと、アドレス変換テーブルを参照して、ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントし、当該連続アドレス数を論理アドレスおよび物理アドレスの対に対応付けて格納するとともに、変換対象アドレスがＴＬＢに格納された論理アドレスから連続アドレス数の範囲に含まれるか否かを判定し、変換対象アドレスが当該範囲に含まれる場合、当該論理アドレスと変換対象アドレスとの差分を、当該論理アドレスと対をなす物理アドレスに加算して、変換物理アドレスを算出するアドレス変換制御部と、を備えているものとする。
【０００８】
これによると、ＴＬＢに格納された論理アドレスおよび物理アドレスの対毎にアドレス空間の広さを示す連続アドレス数が設定され、変換対象アドレスがアドレス空間に含まれる場合にＴＬＢヒットとなる。これにより、アドレス変換すべきビット数をユーザが指定しなくても、アドレス空間の広さを動的に設定することができる。また、アドレスが連続する場合に、アドレスをＴＬＢに効率良く格納することができる。
【０００９】
また、論理アドレスを物理アドレスに変換するアドレス変換装置として、アドレス変換テーブルを参照して、ＴＬＢに格納された下位ｎビットが全て同じ論理値である対をなす論理アドレスおよび物理アドレスに連続する連続アドレス数をカウントし、当該連続アドレス数を２ｎ−１に丸めて論理アドレスおよび物理アドレスの対に対応付けて格納するとともに、変換対象アドレスとＴＬＢに格納された論理アドレスとを、下位ｎビットを除いて比較し、これらが一致する場合、当該論理アドレスと対をなす物理アドレスの下位ｎビットを変換対象アドレスの下位ｎビットに置換して、変換物理アドレスを算出するアドレス変換制御部と、を備えているものとする。
【００１０】
これによると、ＴＬＢに格納された論理アドレスおよび物理アドレスの対毎にアドレス空間の広さを示す連続アドレス数が設定され、変換対象アドレスがアドレス空間に含まれる場合にＴＬＢヒットとなる。これにより、アドレス変換すべきビット数をユーザが指定しなくても、アドレス空間の広さを動的に設定することができる。さらに、アドレス変換の際に変換対象アドレスおよび論理アドレスの下位ｎビットを除いた残りを比較して、これらが一致する場合に、物理アドレスの下位ｎビットが置き換えられる。これにより、比較対象および変換対象のビット数が減少し、アドレス変換の速度を向上させることができる。
【００１１】
具体的には、アドレス変換制御部は、ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを基準にして当該基準をインクリメント又はデクリメントし、当該インクリメント又はデクリメントしたアドレスが、アドレス変換テーブルに含まれる場合、連続アドレス数をカウントアップする。
【００１２】
具体的には、アドレス変換制御部は、アドレス変換制御部は、ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを第１および第２の基準にして第１の基準をインクリメントし、当該インクリメントしたアドレスがアドレス変換テーブルに含まれる場合、連続アドレス数をカウントアップする一方、第２の基準をデクリメントし、当該デクリメントしたアドレスがアドレス変換テーブルに含まれる場合、連続アドレス数をカウントアップし、前記ＴＬＢに格納された対をなす論理アドレスおよび物理アドレスを前記第１の基準と前記第２の基準との間における連続アドレス空間の先頭または末尾のアドレスに置き換える。これによると、連続するアドレスを先頭または末尾から網羅することができるから、アドレスをＴＬＢにさらに効率良く格納することができる。
【００１３】
好ましくは、アドレス変換制御部は、アドレス変換が要求されていないアイドル時に、連続アドレス数をカウントしてＴＬＢに格納するものとする。これによると、ＴＬＢを用いたアドレス変換のパフォーマンスを損なうことなく連続アドレス数をＴＬＢに格納することができる。
【発明の効果】
【００１４】
本発明によると、アドレス変換すべきビット数をユーザが意識しなくても効率よくＴＬＢにアドレス変換テーブルをキャッシュすることができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係るアドレス変換装置の構成図である。
【図２】ＴＬＢに格納されたアドレスの変換処理の例を説明する図である。
【図３】ＴＬＢに格納されたアドレスの変換処理の別の例を説明する図である。
【図４】ＴＬＢに格納されたアドレスの変換処理のさらに別の例を説明する図である。
【図５】第２の実施形態に係る半導体装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【００１７】
＜第１の実施形態＞
図１は、第１の実施形態に係るアドレス変換装置１０の構成図である。アドレス変換装置１０において、アドレス変換制御部２０は、外部のアドレス変換テーブル３０を参照して、対をなす論理アドレスおよび物理アドレスをＴＬＢ５０に格納する。さらに、対をなす論理アドレスおよび物理アドレスに連続するアドレスの数を示す連続アドレス数を、論理アドレスおよび物理アドレスの対に対応付けてＴＬＢ５０に格納する。また、アドレス変換制御部２０はＴＬＢ５０を参照し、例えばコンピュータ上でプログラムから要求される論理アドレス（変換対象アドレス）を、変換対象アドレスに対応する物理アドレス（変換物理アドレス）に変換する。
【００１８】
以下、論理アドレス、物理アドレスおよび連続アドレス数のＴＬＢ５０への格納処理と、その格納処理に応じたアドレス変換処理とを説明する。
【００１９】
−第１の例−
アドレス変換制御部２０は、アドレス変換テーブル３０を参照し、論理アドレスおよび対応する物理アドレスをＴＬＢ５０に格納し、これらアドレスを基準にして連続アドレス数をカウントする。具体的には、これら基準をインクリメントした論理アドレスおよび物理アドレスがアドレス変換テーブル３０に含まれる場合には、連続アドレス数をインクリメントする。これを、基準をインクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。
【００２０】
例えば、図２に示すように、基準となる論理アドレス0x00004および物理アドレス0x00124をＴＬＢ５０に格納し、連続アドレス数を０からカウントする。基準をインクリメントした論理アドレス0x00005および物理アドレス0x00125は、アドレス変換テーブル３０に含まれるため、連続アドレス数をインクリメントする。さらに基準をインクリメントした論理アドレス0x00006および物理アドレス0x00126は、アドレス変換テーブル３０に含まれるため、連続アドレス数をインクリメントする。これを、基準をインクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。すると、インクリメントした論理アドレス0x00009および物理アドレス0x00129はアドレス変換テーブル３０に含まれないため、基準のインクリメントを終了して連続アドレス数は４となる。
【００２１】
次に、アドレス変換制御部２０によるアドレス変換処理について説明する。アドレス変換制御部２０は、変換対象アドレスがＴＬＢ５０に格納された論理アドレスからその論理アドレスに対応付けられた連続アドレス数の範囲に含まれるか否かを判定する。含まれる場合には、ＴＬＢヒットとなり、変換対象アドレスと論理アドレスとの差分を物理アドレスに加算する。
【００２２】
例えば、変換対象アドレスを0x00007とする。論理アドレス0x00004に対応付けられた連続アドレス数は４であるため、変換対象アドレス0x00007は、論理アドレス0x00004から0x00008の範囲に含まれておりＴＬＢヒットとなる。したがって、アドレス変換制御部２０は、変換対象アドレス0x00007と論理アドレス0x00004との差分である３を、物理アドレス0x000124に加算して、変換物理アドレス0x000127を算出する。
【００２３】
以上により、アドレス変換すべきビット数をユーザが意識しなくても、連続するアドレス空間を示す連続アドレス数を動的に設定することができる。また、アドレスが連続する場合にアドレスをＴＬＢ５０に効率良く格納することができる。
【００２４】
−第２の例−
アドレス変換制御部２０は、基準をデクリメントした論理アドレスおよび物理アドレスがアドレス変換テーブル３０に含まれる場合には、連続アドレス数をインクリメントする。これを、基準をデクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。
【００２５】
例えば、図３に示すように、アドレス変換制御部２０は、論理アドレス0x00008および物理アドレス0x00128をＴＬＢ５０に格納し、連続アドレス数を０からカウントする。基準をデクリメントした論理アドレス0x00007および物理アドレス0x00127はアドレス変換テーブル３０に含まれるため、連続アドレス数をインクリメントする。さらに基準をデクリメントした論理アドレス0x00006および物理アドレス0x00126は、アドレス変換テーブル３０に含まれるため、連続アドレス数をインクリメントする。これを、基準をデクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。すると、デクリメントした論理アドレス0x00003および物理アドレス0x00123はアドレス変換テーブル３０に含まれないため、基準のデクリメントを終了して連続アドレス数は４となる。
【００２６】
次に、アドレス変換制御部２０によるアドレス変換処理について説明する。例えば、変換対象アドレスを0x00007とする。論理アドレス0x00008に対応付けられた連続アドレス数は４であるため、変換対象アドレス0x00007は、論理アドレス0x00008から0x00004の範囲に含まれておりＴＬＢヒットとなる。したがって、アドレス変換制御部２０は、変換対象アドレス0x00007と論理アドレス0x00008との差分である−１を、物理アドレス0x000128に加算して、変換物理アドレス0x000127を算出する。
【００２７】
以上により、アドレス変換すべきビット数をユーザが意識しなくても、連続するアドレス空間を示す連続アドレス数を動的に設定することができる。また、アドレスが連続する場合にアドレスをＴＬＢ５０に効率良く格納することができる。
【００２８】
−第３の例−
アドレス変換制御部２０は、基準をインクリメントした論理アドレスおよび物理アドレスがアドレス変換テーブル３０に含まれる場合には、連続アドレス数をインクリメントする。これを、基準をインクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。
【００２９】
また、これら基準を元に戻して、基準をデクリメントした論理アドレスおよび物理アドレスがアドレス変換テーブル３０に含まれる場合には、連続アドレス数をインクリメントする。これを、基準をデクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。 
【００３０】
例えば、図２において、アドレス変換制御部２０は、論理アドレスおよび物理アドレスにそれぞれ0x00004、0x00124ではなく0x00005、0x00125を格納したとする。連続アドレス数は０からカウントする。基準をインクリメントした論理アドレス0x00006および物理アドレス0x00126はアドレス変換テーブル３０に含まれているため、連続アドレス数をインクリメントする。これを、基準をインクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。すると、インクリメントした論理アドレス0x00009および物理アドレス0x00129はアドレス変換テーブル３０に含まれないため、基準のインクリメントを終了して連続アドレス数は３となる。
【００３１】
その後、基準を論理アドレス0x00005および物理アドレス0x00125に戻し、基準をデクリメントした論理アドレス0x00004および物理アドレス0x00124はアドレス変換テーブル３０に含まれているため、連続アドレス数をインクリメントする。これを、基準をデクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。すると、基準をデクリメントした論理アドレス0x00003および物理アドレス0x00123はアドレス変換テーブル３０に含まれないため、基準のデクリメントを終了して連続アドレス数は４となる。これとともに、ＴＬＢ５０に格納した論理アドレス0x00005および物理アドレス0x00125を論理アドレス0x00004および物理アドレス0x00124で上書きする。アドレス変換処理については、上記第１または第２の例と同様であるため省略する。
【００３２】
以上により、連続するアドレスを先頭アドレスから網羅できるため、アドレスをＴＬＢ５０にさらに効率良く格納することができる。なお、デクリメントを行った後でインクリメントしてもよい。この場合、ＴＬＢ５０に格納した論理アドレス0x00005および物理アドレス0x00125を論理アドレス0x00008および物理アドレス0x00128で上書きすればよい。
【００３３】
−第４の例−
アドレス変換制御部２０は、基準をインクリメントした論理アドレスおよび物理アドレスがアドレス変換テーブル３０に含まれる場合には、連続アドレス数をインクリメントする。これを、基準をインクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返し、連続アドレス数を２ｎ−１に丸める。なお、対をなす論理アドレスおよび物理アドレスの下位ｎビットは全て同一の論理値である。
【００３４】
例えば、図４に示すように、アドレス変換制御部２０は、論理アドレス0x00004および物理アドレス0x00124をＴＬＢ５０に格納し、連続アドレス数を０からカウントする。基準をインクリメントした論理アドレス0x00005および物理アドレス0x00125は、アドレス変換テーブル３０に含まれるため、連続アドレス数をインクリメントする。さらに、基準をインクリメントした論理アドレス0x00006および物理アドレス0x00126は、アドレス変換テーブル３０に含まれるため、連続アドレス数をインクリメントする。これを、基準をインクリメントしたアドレスがアドレス変換テーブル３０に含まれなくなるまで繰り返す。すると、インクリメントした論理アドレス0x00009および物理アドレス0x00129はアドレス変換テーブル３０に含まれないため、基準のインクリメントを終了して連続アドレス数は４となるが、ｎ＝２のときの２ｎ−１に該当する３に丸める。
【００３５】
次に、アドレス変換制御部２０によるアドレス変換処理について説明する。アドレス変換制御部２０は、変換対象アドレスとＴＬＢ５０に格納された論理アドレスとを、下位ｎビットを除いて比較する。そして、それらが一致する場合に、比較したアドレスの下位ｎビットを置き換える。
【００３６】
例えば、変換対象アドレスを0x00006とする。論理アドレス0x00004に対応付けられた連続アドレス数は３であるため、下位２ビットを除外する。すなわち、アドレス変換制御部２０は、変換対象アドレス0x00006の下位２ビット「10」を除外したビットと論理アドレス0x00004の下位２ビット「00」を除外したビットとを比較する。その結果、それらのビットは一致するため、ＴＬＢヒットとなる。そして、物理アドレス0x00124の下位２ビット「00」を変換対象アドレス0x00006の下位２ビット「10」で置き換えて変換物理アドレス0x00126を算出する。
【００３７】
以上により、アドレス変換の際に、比較対象および変換対象のビット数が減少するため、アドレス変換処理の速度を向上させることができる。なお、基準をデクリメントして連続アドレス数をカウントしてもよい。
【００３８】
上記各例において、アドレス変換制御部２０はアドレス変換要求されていないアイドル時に、連続アドレス数をカウントしてＴＬＢ５０に格納することが好ましい。これにより、アドレス変換のパフォーマンスを損なうことなく連続アドレス数をカウントすることができる。
【００３９】
また、アドレス変換制御部２０は、連続アドレス数をカウントする際に、アドレス変換テーブル３０を参照して、所定のアドレス空間に対応する論理アドレスおよび物理アドレスの対を一括して読み込んで一時的に保存するようにしてもよい。この場合、一時保存した対をなすアドレスから、連続アドレス数をカウントすればよい。
【００４０】
また、連続アドレス数を１からカウントするようにしてもよい。この場合、連続アドレス数が１のときは、ＴＬＢ５０に格納された対をなす論理アドレスおよび物理アドレスのみがアドレス空間となり、連続アドレス数が２以上のときは、その数に応じて連続するアドレス空間となる。
【００４１】
また、基準のインクリメントやデクリメントに係る数は１でなくてもよい。例えば、２でもよい。
【００４２】
また、ＴＬＢ５０には、論理アドレス、物理アドレスおよび連続アドレス数以外の情報として例えば、連続するアドレスが存在するか否かを示すフラグを格納してもよい。
【００４３】
また、上記第４の例については、ＴＬＢ５０に格納された論理アドレスおよび物理アドレスの下位ｎビットが全て同一の論理値である必要があるが、他の例ついてはその必要がない。
【００４４】
＜第２の実施形態＞
図５は、第２の実施形態に係る半導体装置４０の概略構成を示すブロック図である。集積回路４４は入出力バス４６を介して外部メモリ４７とデータの入出力を行う。アドレス変換装置１０およびＤＭＡ転送制御装置１０Ａは、外部メモリ４７に保持されたアドレス変換テーブル３０を参照して、アドレス変換装置１０およびＤＭＡ転送制御装置１０ＡのＴＬＢ５０に論理アドレスおよび物理アドレスを格納するとともに、連続アドレス数をカウントする。メモリコントローラ４５は、アドレス変換装置１０およびＤＭＡ転送制御装置１０Ａを制御する。なお、アドレス変換装置１０およびＤＭＡ転送制御装置１０Ａは図１に示したアドレス変換装置である。ＤＭＡ転送では基本的に連続したアドレスが使われるため、アドレス変換テーブルをＴＬＢ５０へより効率良くキャッシュすることができる。
【００４５】
本実施形態によると、アドレス変換装置１０およびＤＭＡ転送制御装置１０Ａによってアドレス変換テーブルをＴＬＢ５０に効率良くキャッシュすることができる。したがって、ＴＬＢヒットミスが減少する。これにより、転送速度の遅い外部メモリ４７にアドレス変換テーブル３０を保持しても、ＴＬＢヒットミスによるアドレス変換処理の速度低下を抑制することができる。
【産業上の利用可能性】
【００４６】
本発明に係るアドレス変換装置は、アドレス変換すべきビット数をユーザが意識することなくアドレス変換テーブルを効率よくキャッシュすることができるため、パソコン等のメモリ装置に有用である。
【符号の説明】
【００４７】
１０    アドレス変換装置
１０Ａ  ＤＭＡ転送制御装置
２０    アドレス変換制御部
３０    アドレス変換テーブル
４０    半導体装置
４７    外部メモリ
５０    ＴＬＢ（Translation Look-aside Buffer）
【図１】
2011018182.tif 000003
【図２】
2011018182.tif 000004
【図３】
2011018182.tif 000005
【図４】
2011018182.tif 000006
【図５】
2011018182.tif 000007