(57)【要約】【課題】エントリのヒット率の低下を抑制できるようにする。【解決手段】仮想アドレスと物理アドレスとの対応関係を示すアドレス情報がそれぞれ記憶される複数のＣＡＭ回路を有するＣＡＭ部と、新たなアドレス情報を記憶させる場合に書込みポインタが示しているＣＡＭ回路にアドレス情報の書込みを指示する書込み制御部とを有するマイクロＴＬＢにおいて、書込みポインタが示しているＣＡＭ回路に記憶されているアドレス情報が、アドレス変換に使用されたことが示されている場合には書込みポインタをインクリメントするようにして、アドレス情報の使用が示されたＣＡＭ回路に新たなアドレス情報が書込まれることを回避して最近使用されているアドレス情報を保持し、ヒット率の低下を抑制する。【選択図】図３
2013073271.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求が指定する仮想アドレスを物理アドレスに変換するアドレス変換装置において、
仮想アドレスと物理アドレスとの対応関係を示すアドレス情報と、アドレス情報がアドレス変換に使用されたか否かを示す使用情報とを対応付けて記憶するエントリを複数有する記憶部と、
新たなアドレス情報を記憶させるエントリを示すポインタ値を保持するポインタ部と、
前記ポインタ部が保持するポインタ値をインクリメントするインクリメント部と、
新たなアドレス情報を前記記憶部に記憶する場合、前記ポインタ部が保持するポインタ値が示しているエントリを参照し、参照したエントリの使用情報が、該エントリに対応するアドレス情報がアドレス変換に使用されたことを示す場合には前記インクリメント部に前記ポインタ値をインクリメントさせ、インクリメントされたポインタ値が示すエントリに前記新たなアドレス情報を記憶させる制御部と、
を有することを特徴とするアドレス変換装置。
【請求項２】
前記制御部は、
前記対応関係を示すアドレス情報がアドレス変換に使用済みである旨を前記参照した使用情報が示すとき、前記アドレス情報がアドレス変換に未使用である旨を示すように前記参照した使用情報を変更することを特徴とする請求項１記載のアドレス変換装置。
【請求項３】
前記制御部は、前記複数のエントリの各々に対応する制御回路を有し、
前記制御回路は、
前記アドレス情報の書込みが要求され、かつ対応する前記エントリが前記ポインタ値が示しているエントリである場合に、該アドレス情報の前記エントリに対する書込み信号を出力する書込み発生回路と、
対応する前記エントリの使用情報が、該エントリに対応するアドレス情報がアドレス変換に使用されたことを示す場合に、状態ビットがセットされるラッチ回路と、
前記ラッチ回路の前記状態ビットがセットされており、かつ対応する前記エントリが前記ポインタ値が示しているエントリである場合に、前記ポインタ値をインクリメントさせるインクリメント信号を出力する出力回路とを有し、
前記ラッチ回路は、前記インクリメント信号が出力されると前記状態ビットをクリアすることを特徴とする請求項１記載のアドレス変換装置。
【請求項４】
前記制御部は、前記複数のエントリの各々に対応する制御回路を有し、
前記制御回路は、
前記アドレス情報の書込みが要求され、かつ対応する前記エントリが前記ポインタ値が示しているエントリである場合に、該アドレス情報の前記エントリに対する書込み信号を出力する書込み発生回路と、
対応する前記エントリの使用情報が、該エントリに対応するアドレス情報がアドレス変換に使用されたことを示し、かつ対応する前記エントリが前記ポインタ値が示しているエントリである場合に、前記ポインタ値をインクリメントさせるインクリメント信号を出力する出力回路とを有することを特徴とする請求項１記載のアドレス変換装置。
【請求項５】
前記エントリは、
前記書込み信号に応じて、前記アドレス情報が有する前記仮想アドレスが書込まれ記憶する第１のラッチ回路と、
前記書込み信号に応じて、前記アドレス情報が有する前記物理アドレスが書込まれ記憶する第２のラッチ回路と、
前記アクセス要求が指定する仮想アドレスが前記第１のラッチ回路に記憶されている仮想アドレスと一致するか否かを判定するとともに、判定結果に応じて前記使用情報を出力する判定回路とを有し、
前記判定回路にて前記仮想アドレスが一致すると判定された場合には、前記第２のラッチ回路に記憶されている物理アドレスを出力することを特徴とする請求項３又は４記載のアドレス変換装置。
【請求項６】
アドレス変換に使用する前記アドレス情報の検索は、前記複数のエントリについて並列して実行することを特徴とする請求項１〜５の何れか１項に記載のアドレス変換装置。
【請求項７】
仮想アドレスと物理アドレスとの対応関係を示すアドレス情報と、アドレス情報がアドレス変換に使用されたかを示す使用情報とを対応付けてそれぞれ記憶するエントリを複数有する記憶部を備えた情報処理装置における、アクセス要求に含まれる仮想アドレスを物理アドレスに変換するアドレス変換装置の制御方法において、
新たなアドレス情報を前記記憶部に記憶する場合、前記情報処理装置の制御部が、新たなアドレス情報を記憶するエントリを示すポインタ値が示しているエントリを参照し、
参照したエントリの使用情報が、参照したエントリに記憶されているアドレス情報がアドレス変換に使用済みであることを示す場合、前記ポインタ値をインクリメントし、
インクリメントされたポインタ値が示すエントリに、前記新たなアドレス情報を記憶させることを特徴とするアドレス変換装置の制御方法。
【請求項８】
供給される命令コードをデコードする命令デコード部と、
前記命令デコード部による命令コードのデコード結果に基づいて、実行する命令を発行する命令発行部と、
前記命令発行部から発行された命令を実行する命令実行部と、
前記命令実行部からのアクセス要求に含まれる仮想アドレスを物理アドレスに変換するアドレス変換装置と、を有し、
前記アドレス変換装置は、
仮想アドレスと物理アドレスとの対応関係を示すアドレス情報と、アドレス情報がアドレス変換に使用されたか否かを示す使用情報とを対応付けて記憶するエントリを複数有する記憶部と、
新たなアドレス情報を記憶させるエントリを示すポインタ値を保持するポインタ部と、
前記ポインタ部が保持するポインタ値をインクリメントするインクリメント部と、
新たなアドレス情報を前記記憶部に記憶する場合、前記ポインタ部が保持するポインタ値が示しているエントリを参照し、参照したエントリの使用情報が、該エントリに対応するアドレス情報がアドレス変換に使用されたことを示す場合には前記インクリメント部に前記ポインタ値をインクリメントさせ、インクリメントされたポインタ値が示すエントリに前記新たなアドレス情報を記憶させる制御部と、を有することを特徴とする演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置に関する。
【背景技術】
【０００２】
計算機で複数のプロセスが動作する場合には、それぞれのプロセスの動作するアドレス空間が独立し、複数のプロセスの使用するアドレス空間が実際の物理メモリが提供可能なアドレス空間を越えても実行できるようにしておく必要がある。そのために仮想記憶が利用されており、仮想記憶においてプロセッサによるメインメモリ等へのアクセスは、プロセッサから出力された仮想アドレス（ＶＡ：Virtual Address）を物理アドレス（ＰＡ：Physical Address）に変換して行われる。
【０００３】
アクセスのたびにメインメモリに格納されたアドレス変換テーブルを参照して、仮想アドレスから物理アドレスへの変換を行うと、アドレス変換に多大な時間を要してしまう。物理アドレスへの変換の高速化を図るために、仮想アドレスから物理アドレスへのアドレス変換テーブルの情報の一部を保持（キャッシュ）するアドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）を設ける方法がある。
【０００４】
さらに、キャッシュと同様に、容量が小さい（エントリ数が少ない）が高速にアクセス可能なマイクロＴＬＢと、低速かつ大容量（エントリ数が多い）のメインＴＬＢとからなる２階層でＴＬＢが構成されるようになってきた。この構成では、プロセッサからメインメモリ等へのアクセス時には、マイクロＴＬＢ、メインＴＬＢ、メインメモリの順でアドレス変換テーブルに係る情報が参照されてアドレス変換が行われる。
【０００５】
図７は、ＦＩＦＯ（First In First Out）制御方式を用いたマイクロＴＬＢの一例を示す図である。図７に示すマイクロＴＬＢでは、ＦＩＦＯ方式でポインタ（書込みポインタ信号）が指し示す記憶部に、新しいエントリ（仮想アドレスと物理アドレスの対応関係を示すアドレス情報）の書込みにより、新しいエントリの登録が行われる。図７において、１０１はＣＡＭ（Content Addressable Memory：連想メモリ）部であり、１０２は書込み制御部である。
【０００６】
ＣＡＭ部１０１は、複数のＣＡＭ回路１０３−ｉを有する。なお、ｉは添え字であり、ｉ＝１、２、３、…、Ｎの自然数である（以下においても同様）。ＣＡＭ回路１０３−ｉの各々は、１エントリ分のアドレス情報、すなわち１の仮想アドレス及びそれに対応する物理アドレスが記憶される。
【０００７】
ＣＡＭ回路１０３−ｉは、書込みイネーブル信号ＷＥＮ−ｉがアクティブになると、供給されているアドレス情報（新たにエントリとして登録する仮想アドレスＷＶＡ及び物理アドレスＷＰＡ）が内部のラッチ回路にそれぞれ書込まれ、登録される。また、ＣＡＭ回路１０３−ｉは、登録されている仮想アドレスとデータ等に係るアクセス要求において指定された仮想アドレスＡＶＡとが一致する場合には、ヒット信号Ｈｉｔ−ｉを出力するとともに、登録されている物理アドレスを物理アドレスＰＡＤ−ｉとして出力する。
【０００８】
書込み制御部１０２は、書込み制御回路１０４−ｉ、ＦＩＦＯカウンタラッチ回路１０５、ＦＩＦＯカウンタインクリメント回路１０６、及び書込み選択回路１０７を有する。書込み制御回路１０４−ｉは、入力される書込みポインタ信号ＷＰＳ−ｉ及び書込み信号ＷＳがともにアクティブの場合に、出力する書込みイネーブル信号ＷＥＮ−ｉをアクティブにする。
【０００９】
ＦＩＦＯカウンタラッチ回路１０５は、書込み信号ＷＳを受けると、ＦＩＦＯカウンタインクリメント回路１０６の出力をラッチして出力する。ＦＩＦＯカウンタインクリメント回路１０６は、ＦＩＦＯカウンタラッチ回路１０５から出力されるカウント値を１だけインクリメントして出力する。
【００１０】
書込み選択回路１０７は、ＦＩＦＯカウンタラッチ回路１０５から出力されるカウント値をデコードして、書込みポインタ信号ＷＰＳ−１〜ＷＰＳ−Ｎの内のいずれか１つの書込みポインタ信号ＷＰＳ−ｉをアクティブにする。このアクティブにされた書込みポインタ信号ＷＰＳ−ｉが、次に情報が書込まれる記憶部（ＣＡＭ回路１０３−ｉ）を指し示す書込みポインタに相当する。
【００１１】
図７に示すマイクロＴＬＢにおいて、新しいエントリ（アドレス情報）の書込みは、以下のようにして行われる。エントリの書込み命令（アクティブな書込み信号ＷＳ）を受けると、書込み制御回路１０４−ｉにより、書込みポインタ（アクティブな書込みポインタ信号ＷＰＳ−ｉ）が指し示すＣＡＭ回路１０３−ｉへの書込みイネーブル信号ＷＥＮ−ｉがアクティブになる。書込みイネーブル信号ＷＥＮ−ｉがアクティブになると、それを受けるＣＡＭ回路１０３−ｉ内のラッチ回路に、新たにエントリとして登録する仮想アドレスＷＶＡ及び物理アドレスＷＰＡを有するアドレス情報が書込まれ、登録される。
【００１２】
また、アドレス情報の登録と同時に、次のアドレス情報の書込みに備えて、ＦＩＦＯカウンタラッチ回路１０５は、インクリメントしたポインタ情報であるカウント値をラッチする。これにより、次の書込みが発生した場合には、先ほどアドレス情報が書込まれたＣＡＭ回路１０３−ｉの次の順に位置されるＣＡＭ回路１０３−ｉにアドレス情報が書込まれる。以降、同様に書込みが発生する毎に書込みポインタがインクリメントされ、所定の順序でＣＡＭ回路１０３−ｉへのアドレス情報の書込みが行われる。
【００１３】
仮想記憶における各ページのページ置換処理において、その処理量に応じた優先度をページ毎に設定し、優先度に基づく所定時間内にアクセスされた否かに応じてページ置換の対象を決定する方法が提案されている。
また、各エントリについて、エントリが有効であるかを示すビットとエントリが使用されたかを示すビットとを持つＴＬＢが記載されている。このＴＬＢでは、有効でないエントリがない場合には、使用を示さないエントリを置換し、全エントリが有効で使用を示す場合には、最近アクセスされたエントリ以外は使用されていないことを示すようにビット値を変えることで擬似的にＬＲＵ（least-recently-used）方式を実現している。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平７−１５２６５２号公報
【特許文献２】米国特許第５８０２５６８号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１５】
図７に示したようなＦＩＦＯ制御方式を用いたマイクロＴＬＢにおいて、エントリの書込みは、すでに登録されているエントリの読出し頻度にかかわらず、順番にエントリを書換えることによって行われている。そのため、頻繁に使用されているエントリであっても、そのエントリが登録されている記憶部（ＣＡＭ回路）を書込みポインタが指し示せば、新しいエントリが上書きされることで消されてしまう。これにより、マイクロＴＬＢの参照時にミスヒットする（エントリがヒットしない）ことが多くなり、性能が低下してしまう。また、擬似的なＬＲＵ方式を採用すると、複雑な制御を行うためにＬＲＵ制御に係る回路規模、すなわち実装面積が大きくなるという問題がある。
【００１６】
１つの側面では、本発明は、エントリのヒット率の低下を抑制することを目的とする。
【課題を解決するための手段】
【００１７】
アドレス変換装置の一態様は、仮想アドレスと物理アドレスとの対応関係を示すアドレス情報と、アドレス情報がアドレス変換に使用されたか否かを示す使用情報とを対応付けて記憶するエントリを複数有する記憶部と、新たなアドレス情報を記憶させるエントリを示すポインタ値を保持するポインタ部と、ポインタ部が保持するポインタ値をインクリメントするインクリメント部と、新たなアドレス情報を記憶部に記憶する場合、ポインタ値が示しているエントリを参照し、参照したエントリの使用情報が、該エントリに対応するアドレス情報がアドレス変換に使用されたことを示す場合にはインクリメント部にポインタ値をインクリメントさせ、インクリメントされたポインタ値が示すエントリに新たなアドレス情報を記憶させる制御部とを有する。
【発明の効果】
【００１８】
発明の１態様においては、エントリのヒット率の低下を抑制することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態における演算処理装置を含む情報処理装置の構成例を示す図である。
【図２】本実施形態におけるＴＬＢ部の構成例を示す図である。
【図３】本実施形態におけるマイクロＴＬＢ部の構成例を示す図である。
【図４】本実施形態におけるＣＡＭ回路の構成例を示す図である。
【図５】第１の実施形態における書込み制御回路の構成例を示す図である。
【図６】第２の実施形態における書込み制御回路の構成例を示す図である。
【図７】ＦＩＦＯ制御方式を用いたマイクロＴＬＢの一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を図面に基づいて説明する。
【００２１】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、本実施形態における情報処理装置の構成例を示す図である。
図１において、１１は演算処理装置としてのＣＰＵ（Central Processing Unit）であり、１８はメインメモリ（主記憶部）である。ＣＰＵ１１は、命令発行部１２と、命令実行部１３と、一次キャッシュ１５及びアドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）部１６を有する一次キャッシュ部１４と、二次キャッシュ部１７とを有する。ＣＰＵ１１（命令発行部１２、命令実行部１３、一次キャッシュ部１４、二次キャッシュ部１７）は、例えば１つのチップに形成され、図示しないバス等を介してメインメモリ１８と接続されている。
【００２２】
命令発行部１２及び命令実行部１３により、ＣＰＵ１１が実行する命令の流れの制御や演算が行われる。命令発行部１２は、記憶装置から供給される命令コードをデコードし、その結果に基づき命令実行部１３が実行すべき命令を発行する。命令実行部１３は、命令発行部１２から発行された命令を実行する。例えば、命令実行部１３は、記憶装置からデータを読み込み、命令発行部１２からの命令に従って演算し演算結果を出力する。一次キャッシュ１５、二次キャッシュ部１７、メインメモリ１８は、命令発行部１２や命令実行部１３が読み込むコードやデータ等を記憶する記憶装置である。
【００２３】
一次キャッシュ１５は、命令発行部１２や命令実行部１３からの要求に対して高速に応答可能である。二次キャッシュ部１７には、一次キャッシュ１５に記憶容量の点で記憶することができない情報（命令コード、データ等）のうち、利用頻度が比較的高い情報が記憶される。また、二次キャッシュ部１７に記憶容量の点で記憶することができない情報（命令コード、データ等）は、メインメモリ１８に記憶される。
【００２４】
また、メインメモリ１８には、仮想アドレスから物理アドレスへのアドレス変換テーブル（仮想アドレスと物理アドレスの対応関係を示すアドレス情報）が記憶されている。ＴＬＢ部１６は、この仮想アドレスから物理アドレスへのアドレス変換テーブルの情報の一部を保持（キャッシュ）し、命令発行部１２や命令実行部１３から出力された仮想アドレスを物理アドレスに変換する。
【００２５】
命令発行部１２や命令実行部１３からデータ等の読み込みが要求されると、ＴＬＢ部１６にて仮想アドレスを物理アドレスに変換し、物理アドレスを用いて記憶装置（一次キャッシュ１５、二次キャッシュ部１７、メインメモリ１８）に対してアクセスを行う。そして、対応するデータ等が一次キャッシュ１５に存在する場合には、一次キャッシュ１５から命令発行部１２や命令実行部１３に供給される。
【００２６】
対応するデータ等が一次キャッシュ１５に存在しない場合には、二次キャッシュ部１７を検索し、二次キャッシュ部１７に存在すれば、二次キャッシュ部１７から一次キャッシュ１５を介して命令発行部１２や命令実行部１３にデータ等が供給される。対応するデータ等が二次キャッシュ部１７にも存在しない場合には、メインメモリ１８から二次キャッシュ部１７及び一次キャッシュ１５を介して命令発行部１２や命令実行部１３にデータ等が供給される。
【００２７】
図２は、ＴＬＢ部１６の構成例を示す図である。本実施形態におけるＴＬＢ部１６は、データキャッシュと同様に２階層の構造が用いられ、マイクロＴＬＢ部２１及びメインＴＬＢ部２２を有する。
【００２８】
マイクロＴＬＢ部２１は、容量が小さい（エントリ数が少ない）が高速にアクセス可能なＴＬＢである。マイクロＴＬＢ部２１は、高速性が要求されるため、例えば参照方式としてフルアソシアティブ方式が用いられ、ラッチを使ったＣＡＭ（Content Addressable Memory：連想メモリ）等を用いて構成される。また、メインＴＬＢ部２２は、マイクロＴＬＢ部２１よりも低速かつ大容量（エントリ数が多い）のＴＬＢ部である。メインＴＬＢ部２２は、例えば参照方式としてセットアソシアティブ方式が用いられ、ＳＲＡＭ（Static Random Access Memory）等を用いて構成される。
【００２９】
命令発行部１２や命令実行部１３から要求が発行されると、ＴＬＢ部１６は、要求において指定された仮想アドレスＶＡを用いてアドレス情報を検索して、仮想アドレスＶＡを物理アドレスＰＡに変換する。まず、マイクロＴＬＢ部２１が検索され、指定された仮想アドレスＶＡに係るアドレス情報があれば、そのアドレス情報が有する物理アドレスＰＡの情報（仮想アドレスＶＡに対応する物理アドレスＰＡ）が、変換後の物理アドレスＰＡとして出力される。
【００３０】
マイクロＴＬＢ部２１を検索した結果、指定された仮想アドレスＶＡに係る情報がマイクロＴＬＢ部２１にない場合には、仮想アドレスＶＡがメインＴＬＢ部２２に供給され、供給された仮想アドレスＶＡを用いてメインＴＬＢ部２２が検索される。指定された仮想アドレスＶＡに係るアドレス情報がメインＴＬＢ部２２にあれば、そのアドレス情報が有する物理アドレスＰＡの情報がマイクロＴＬＢ部２１に出力され、マイクロＴＬＢ部２１に登録される。そして、再度マイクロＴＬＢ部２１が検索され、指定された仮想アドレスＶＡに対応する物理アドレスＰＡの情報がマイクロＴＬＢ部２１から出力される。
【００３１】
図３は、マイクロＴＬＢ部２１の構成例を示す図である。図３に示すマイクロＴＬＢ部２１は、ＦＩＦＯ（First In First Out）制御方式の書込みポインタを使用する。図３に示すマイクロＴＬＢ部２１では、書込みポインタ（書込みポインタ信号）が指し示す記憶部（ＣＡＭ回路３３−ｉ）に、仮想アドレスと物理アドレスの対応関係を示すアドレス情報についての新しいエントリが書込まれ、登録が行われる。また、書込みポインタが指し示す記憶部へ新しいエントリを書込むと、書込みポインタを１つ進めて次に書込みを行う記憶部を指し示す。なお、以下の説明において、ｉは添え字であり、ｉ＝１、２、３、…、Ｎの自然数である。
【００３２】
図３に示すように、マイクロＴＬＢ部２１は、ＣＡＭ（Content Addressable Memory：連想メモリ）部３１及び書込み制御部３２を有する。ＣＡＭ部３１は、それぞれが１エントリ分のアドレス情報、すなわち１の仮想アドレス及び当該仮想アドレスに対応する物理アドレスが記憶される複数のＣＡＭ回路３３−ｉを有する。
【００３３】
ＣＡＭ回路３３−ｉには、エントリとして書込むことにより登録するアドレス情報の仮想アドレスＷＶＡ及び物理アドレスＷＰＡが入力され、データ等に係るアクセス要求において指定される仮想アドレスＡＶＡが入力される。また、ＣＡＭ回路３３−ｉには、書込みイネーブル信号ＷＥＮ−ｉが入力される。例えば、仮想アドレスＷＶＡ及び物理アドレスＷＰＡはメインＴＬＢ２１より供給され、仮想アドレスＡＶＡは命令発行部１２や命令実行部１３より供給される。また、ＣＡＭ回路３３−ｉは、エントリがヒットしたか（エントリが仮想アドレスの変換に使用されたか）を示すヒット信号Ｈｉｔ−ｉを出力するとともに、物理アドレスＰＡＤ−ｉを出力する。
【００３４】
ＣＡＭ回路３３−ｉの構成例を図４に示す。ＣＡＭ回路３３−ｉは、アドレスラッチ回路４１、４２、マッチ回路４３、及びセレクタ回路４４を有する。アドレスラッチ回路４１は、エントリとして書込まれるアドレス情報の仮想アドレスＷＶＡ及び書込みイネーブル信号ＷＥＮ−ｉが入力される。アドレスラッチ回路４１は、書込みイネーブル信号ＷＥＮ−ｉがアクティブになると供給されている仮想アドレスＷＶＡをラッチするとともに、ラッチしている仮想アドレスＷＶＡを出力する。
【００３５】
また、アドレスラッチ回路４２は、エントリとして書込まれるアドレス情報の物理アドレスＷＰＡ及び書込みイネーブル信号ＷＥＮ−ｉが入力される。アドレスラッチ回路４２は、書込みイネーブル信号ＷＥＮ−ｉがアクティブになると供給されている物理アドレスＷＰＡをラッチするとともに、ラッチしている物理アドレスＷＰＡを出力する。
【００３６】
マッチ回路４３は、ＣＡＭ回路３３−ｉに登録されているエントリの仮想アドレスとアクセス要求において指定される仮想アドレスＡＶＡとが一致するか否かを判定する。マッチ回路４３は、アドレスラッチ回路４１によりラッチされている仮想アドレスＷＶＡが入力されるとともに、アクセス要求において指定される仮想アドレスＡＶＡが入力される。マッチ回路４３は、ラッチされている仮想アドレスＷＶＡと指定された仮想アドレスＡＶＡが一致すると判定した場合には、出力するヒット信号Ｈｉｔ−ｉをアクティブにする。
【００３７】
セレクタ回路４４は、アドレスラッチ回路４２によりラッチされている物理アドレスＷＰＡ及びマッチ回路４３から出力されるヒット信号Ｈｉｔ−ｉが入力される。セレクタ回路４４は、ヒット信号Ｈｉｔ−ｉがアクティブである場合には、ラッチされている物理アドレスＷＰＡを物理アドレスＰＡＤ−ｉとして出力する。
【００３８】
このように、ＣＡＭ回路３３−ｉでは、書込みイネーブル信号ＷＥＮ−ｉがアクティブになることで、アドレスラッチ回路４１、４２にアドレス情報の仮想アドレスＷＶＡ及び物理アドレスＷＰＡがそれぞれ書込まれ、記憶される。また、エントリの参照時に、入力される仮想アドレスＡＶＡと登録されている仮想アドレスとが一致する場合には、ヒット信号Ｈｉｔ−ｉがアクティブにされ、登録されている物理アドレスが仮想アドレスＡＶＡに対応する物理アドレスとして出力される。
【００３９】
図３に戻り、書込み制御部３２は、新たなアドレス情報をＣＡＭ部３１に記憶させる際に、書込みポインタが指し示すＣＡＭ回路３３−ｉに対しアドレス情報の書込みを指示する。書込み制御部３２は、書込み制御回路３４−ｉ、ＦＩＦＯカウンタラッチ回路３５、ＦＩＦＯカウンタインクリメント回路３６、インクリメント発生回路３７、及び書込み選択回路３８を有する。
【００４０】
書込み制御回路３４−ｉは、書込みポインタ信号ＷＰＳ−ｉ、アドレス情報の書込みを要求する書込み信号ＷＳ、及びＣＡＭ回路３３−ｉから出力されるヒット信号Ｈｉｔ−ｉが入力される。書込み制御回路３４−ｉは、入力される書込みポインタ信号ＷＰＳ−ｉ、書込み信号ＷＳ、及びヒット信号Ｈｉｔ−ｉに応じて、書込みイネーブル信号ＷＥＮ−ｉ及びインクリメント信号ＩＮＣ−ｉを制御して出力する。
【００４１】
ＦＩＦＯカウンタラッチ回路３５は、書込み信号ＷＳやインクリメント発生回路３７の出力信号を受けると、ＦＩＦＯカウンタインクリメント回路３６の出力をラッチして出力する。ＦＩＦＯカウンタインクリメント回路３６は、ＦＩＦＯカウンタラッチ回路３５から出力されるカウント値を１だけインクリメントして出力する。
【００４２】
インクリメント発生回路３７は、書込み制御回路３４−ｉから出力されるインクリメント信号ＩＮＣ−ｉに基づいて、ＦＩＦＯカウンタラッチ回路３５に対しＦＩＦＯカウンタインクリメント回路３６の出力のラッチを指示する。インクリメント発生回路３７は、インクリメント信号ＩＮＣ−１〜ＩＮＣ−Ｎの内のいずれかがアクティブである場合には、ＦＩＦＯカウンタラッチ回路３５に対しＦＩＦＯカウンタインクリメント回路３６の出力のラッチを指示する。これにより、インクリメント信号ＩＮＣ−１〜ＩＮＣ−Ｎがアクティブになると、ＦＩＦＯカウンタラッチ回路３５から出力されるカウント値がインクリメントされることとなる。
【００４３】
書込み選択回路３８は、ＦＩＦＯカウンタラッチ回路３５から出力されるカウント値をデコードして、書込みポインタ信号ＷＰＳ−１〜ＷＰＳ−Ｎの内のいずれか１つの書込みポインタ信号ＷＰＳ−ｉをアクティブにする。このアクティブにされた書込みポインタ信号ＷＰＳ−ｉが、次に情報が書込まれる記憶部（ＣＡＭ回路３３−ｉ）を指し示す書込みポインタに相当する。
【００４４】
図５は、書込み制御回路３４−ｉの構成例を示す図である。書込み制御回路３４−ｉは、書込み発生回路５１、ユーズドビット（ＵＳＥＤ−ＢＩＴ）ラッチ回路５２、及びユーズドビット回路５３を有する。書込み発生回路５１は、書込みポインタ信号ＷＰＳ−ｉ及び書込み信号ＷＳが入力される。書込み発生回路５１は、入力される書込みポインタ信号ＷＰＳ−ｉ及び書込み信号ＷＳがともにアクティブである場合に、出力する書込みイネーブル信号ＷＥＮ−ｉをアクティブにする。
【００４５】
ユーズドビットラッチ回路５２は、ＣＡＭ回路３３−ｉから出力されるヒット信号Ｈｉｔ−ｉがアクティブになったこと、すなわちＣＡＭ回路３３−ｉにエントリとして登録されているアドレス情報が使用されたことを記憶する回路である。ユーズドビットラッチ回路５２は、登録されているアドレス情報が使用されたことを示すユーズドビット（ＵＳＥＤ−ＢＩＴ）を有するとともに、ユーズドビットの状態を出力信号Ｓ１により出力する。
【００４６】
ユーズドビットラッチ回路５２は、ヒット信号Ｈｉｔ−ｉがアクティブになったとき、すなわちＣＡＭ回路３３−ｉに登録されているアドレス情報が使用されたときにユーズドビットをセットし、出力信号Ｓ１をアクティブにする。また、ユーズドビットラッチ回路５２は、ユーズドビット回路５３の出力信号Ｓ２（インクリメント信号ＩＮＣ−ｉ）がアクティブになったときにユーズドビットをクリアし、出力信号Ｓ１をインアクティブにする。
【００４７】
つまり、ユーズドビットラッチ回路５２は、ヒット信号Ｈｉｔ−ｉがアクティブになると、ユーズドビットをセットして出力信号Ｓ１をアクティブにし、その状態をユーズドビット回路５３の出力信号Ｓ２がアクティブになるまで維持する。そして、ユーズドビットラッチ回路５２は、出力信号Ｓ２がアクティブになるとユーズドビットをクリアし出力信号Ｓ１をインアクティブにする。
【００４８】
ユーズドビット回路５３は、書込みポインタ信号ＷＰＳ−ｉ及びユーズドビットラッチ回路５２の出力信号Ｓ１が入力される。ユーズドビット回路５３は、入力される書込みポインタ信号ＷＰＳ−ｉ及びユーズドビットラッチ回路５２の出力信号Ｓ１がともにアクティブである場合に、出力するインクリメント信号ＩＮＣ−ｉ（出力信号Ｓ２）をアクティブにする。ユーズドビット回路５３は、例えば書込みポインタ信号ＷＰＳ−ｉ及びユーズドビットラッチ回路５２の出力信号Ｓ１を入力とし、インクリメント信号ＩＮＣ−ｉ（出力信号Ｓ２）を出力とする論理積演算回路（ＡＮＤ回路）である。
【００４９】
次に、本実施形態におけるマイクロＴＬＢ部２１に係る動作について説明する。
まず、データ等に係るアクセス要求において指定された仮想アドレスを物理アドレスに変換するためにエントリを参照する場合の動作について説明する。
アクセス要求において指定された仮想アドレスＡＶＡが各ＣＡＭ回路３３−ｉに入力され、その仮想アドレスＡＶＡと登録されているエントリの仮想アドレスとが一致するか否かがマッチ回路４３により判定される。その結果、仮想アドレスＡＶＡと登録されているエントリの仮想アドレスとが一致する場合には、ヒット信号Ｈｉｔ−ｉがアクティブにされ、登録されている物理アドレスが仮想アドレスＡＶＡに対応する物理アドレスとして出力される。一方、仮想アドレスＡＶＡと登録されているエントリの仮想アドレスとが一致しない場合には、ヒット信号Ｈｉｔ−ｉはインアクティブである。なお、このエントリの参照動作は、ＣＡＭ回路３３−ｉのすべてについて並列に行われる。
【００５０】
次に、マイクロＴＬＢ部２１に新しいエントリとしてアドレス情報を書込む場合の動作について説明する。
エントリの書込み命令を受ける（書込み信号ＷＳがアクティブにされる）と、書込み制御回路３４−ｉにより、書込みポインタ（アクティブな書込みポインタ信号ＷＰＳ−ｉ）が指し示すＣＡＭ回路３３−ｉへの書込みイネーブル信号ＷＥＮ−ｉがアクティブになる。書込みイネーブル信号ＷＥＮ−ｉがアクティブになると、それを受けるＣＡＭ回路３３−ｉ内のアドレスラッチ回路４１に仮想アドレスＷＶＡが書込まれ、アドレスラッチ回路４２に物理アドレスＷＰＡが書込まれる。このようにして、新たに登録するアドレス情報の仮想アドレスＷＶＡ及び物理アドレスＷＰＡがＣＡＭ回路３３−ｉに記憶される。
【００５１】
ここで、書込み制御部３２による書込みポインタ（書込みポインタ信号）に係る制御について説明する。
前述したＣＡＭ回路３３−ｉへの新たなアドレス情報の書込みによる登録と同時に、次の書込みに備えて、ＦＩＦＯカウンタラッチ回路３５は、１つカウントアップしたポインタ情報（カウント値）をラッチする。これにより、先ほどアドレス情報が書込まれたＣＡＭ回路３３−ｉの次に新たなエントリを登録すべきＣＡＭ回路３３−ｉを指し示す書込みポインタ信号ＷＰＳ−ｉが、書込み選択回路３８によりアクティブにされる。
【００５２】
このアクティブにされた書込みポインタ信号ＷＰＳ−ｉが入力される書込み制御回路３４−ｉにおいてユーズドビットがセットされている場合には、書込み制御回路３４−ｉは、インクリメント信号ＩＮＣ−ｉをアクティブにするとともに、ユーズドビットをクリアする。書込み制御回路３４−ｉのインクリメント信号ＩＮＣ−ｉがアクティブになることで、インクリメント発生回路３７から信号が出力され、ＦＩＦＯカウンタラッチ回路３５は、１だけインクリメントしたポインタ情報（カウント値）をラッチする。すなわち、書込みポインタがさらに１つ進み、さらに次の順に位置するＣＡＭ回路３３−ｉを指し示す書込みポインタ信号ＷＰＳ−ｉが、書込み選択回路３８によりアクティブにされる。以下、同様にしてユーズドビットがセットされている場合には、書込みポインタを１つ先に進めていき、ユーズドビットがセットされていないところまで書込みポインタを進める。ここで、ユーズドビットがセットされている場合に、書込みポインタを１つ先に進めるとともに、ユーズドビットをクリアするのは、書込みポインタが永久に進んでしまうことを回避するためである。
【００５３】
なお、新たなエントリの書込み前に、アクティブな書込みポインタ信号ＷＰＳ−ｉが指し示すＣＡＭ回路３３−ｉのエントリがヒットした場合には、ヒット信号Ｈｉｔ−ｉがアクティブになることで、ユーズドビットがセットされる。これにより、書込みポインタが１つ進んで、次に新たなエントリを登録すべきＣＡＭ回路３３−ｉを指し示す書込みポインタ信号ＷＰＳ−ｉがアクティブにされる。
【００５４】
第１の実施形態によれば、ＣＡＭ回路３３−ｉのエントリがヒットした場合、すなわちＣＡＭ回路３３−ｉのエントリが使用された場合には、それに対応する書込み制御回路３４−ｉにおいてエントリが使用されたことを示すユーズドビットをセットする。また、書込みポインタ（アクティブな書込みポインタ信号ＷＰＳ−ｉ）が指し示すＣＡＭ回路３３−ｉに対応するユーズドビットがセットされている（あるいはセットされた）場合には、書込みポインタが次に進められる。これにより、制御を複雑にすることなく、ＦＩＦＯ制御方式による簡単な制御のままで、最近使用されたエントリが書換え（上書き消去）の対象になることを回避することができる。したがって、最近使用されたエントリが新たなエントリの書込みにより上書き消去されることを回避するためのＬＲＵ制御を簡単な構成で実現でき、エントリのヒット率の低下を抑制することができる。
【００５５】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
第２の実施形態は、書込み制御部３２内の書込み制御回路３４−ｉの構成が前述した第１の実施形態とは異なり、その他の構成等については同様である。そこで、以下では、第２の実施形態における書込み制御回路３４−ｉについて説明し、他の説明は省略する。
【００５６】
図６は、第２の実施形態における書込み制御回路３４−ｉの構成例を示す図である。書込み制御回路３４−ｉは、書込み発生回路６１、及びユーズドビット（ＵＳＥＤ−ＢＩＴ）回路６２を有する。書込み発生回路６１は、書込みポインタ信号ＷＰＳ−ｉ及び書込み信号ＷＳが入力される。書込み発生回路６１は、入力される書込みポインタ信号ＷＰＳ−ｉ及び書込み信号ＷＳがともにアクティブである場合に、出力する書込みイネーブル信号ＷＥＮ−ｉをアクティブにする。
【００５７】
ユーズドビット回路６２は、書込みポインタ信号ＷＰＳ−ｉ及びＣＡＭ回路３３−ｉから出力されるヒット信号Ｈｉｔ−ｉが入力される。ユーズドビット回路６２は、入力される書込みポインタ信号ＷＰＳ−ｉ及びヒット信号Ｈｉｔ−ｉがともにアクティブである場合に、出力するインクリメント信号ＩＮＣ−ｉをアクティブにする。ユーズドビット回路６２は、例えば書込みポインタ信号ＷＰＳ−ｉ及びヒット信号Ｈｉｔ−ｉを入力とし、インクリメント信号ＩＮＣ−ｉを出力とするＡＮＤ回路である。
【００５８】
図６に示すように書込み制御回路３４−ｉを構成することで、アクティブな書込みポインタ信号ＷＰＳ−ｉが指し示すＣＡＭ回路３３−ｉのエントリがヒットしてヒット信号Ｈｉｔ−ｉがアクティブになると、インクリメント信号ＩＮＣ−ｉがアクティブになる。これにより、書込みポインタが１つ進んで、次に新たなエントリを登録すべきＣＡＭ回路３３−ｉを指し示す書込みポインタ信号ＷＰＳ−ｉがアクティブにされる。したがって、ＦＩＦＯ制御方式による簡単な制御のままで、最近使用されたエントリが新たなエントリの書込みにより上書き消去されることを回避するためのＬＲＵ制御を簡単な構成で実現でき、エントリのヒット率の低下を抑制することができる。また、第１の実施形態のようなユーズドビットを保持するラッチ回路を設ける必要がないので回路面積を低減できるとともに、ラッチ回路に対するセットやクリアの動作も不要であるのでより簡単な回路構成でＬＲＵ制御を実現することができる。
【００５９】
以上のように、開示のアドレス変換装置は、ポインタ値が示しているエントリの使用情報が、そのエントリに対応するアドレス情報がアドレス変換に使用されたことを示す場合にはポインタ値がインクリメントされるので、そのエントリへのアドレス情報の書込みは行われずに、記憶されているアドレス情報が保持される。したがって、複雑な制御を行うことなく、最近使用されたアドレス情報が上書き消去されることを回避するためのＬＲＵ制御を簡単な構成で実現でき、ＬＲＵにおけるヒット率の低下を抑制することができる。
【００６０】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６１】
１１  ＣＰＵ（プロセッサ）
１２  命令発行部
１３  命令実行部
１４  一次キャッシュ部
１５  一次キャッシュ
１６  ＴＬＢ部
１７  二次キャッシュ部
１８  メインメモリ
２１  マイクロＴＬＢ部
２２  メインＴＬＢ部
３１  ＣＡＭ部
３２  書込み制御部
３３  ＣＡＭ回路
３４  書込み制御回路
３５  ＦＩＦＯカウンタラッチ回路
３６  ＦＩＦＯカウンタインクリメント回路
３７  インクリメント発生回路
３８  書込み選択回路
【図１】
2013073271.tif 000003
【図２】
2013073271.tif 000004
【図３】
2013073271.tif 000005
【図４】
2013073271.tif 000006
【図５】
2013073271.tif 000007
【図６】
2013073271.tif 000008
【図７】
2013073271.tif 000009