(57)【要約】【課題】下位層から上位層への二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止すること。【解決手段】仮想アドレスＶＡを物理アドレスＰＡに変換するためのＴＬＢデータを格納する上位ＴＬＢ１７０と、アクセスに応じて、上位ＴＬＢ１７０を用いて仮想アドレスＶＡを物理アドレスＰＡに変換させ、変換不可の場合、アドレス変換を後段に依頼する上位アドレス変換部１００ｂと、上位アドレス変換部１００ｂからのアドレス変換の依頼に応じ、下位ＴＬＢ１５０を用いて、仮想アドレスＶＡを物理アドレスＰＡに変換させる下位アドレス変換部１００ａと、ライトデータＷＤと同一のライトデータＷＤが既に上位ＴＬＢ１７０に書き込まれている場合、上位ＴＬＢ１７０に対する当該ＴＬＢデータの書き込みを禁止させるための”１”のライト無効信号ｕＴＬＢ＿ＷＤＩＳを出力するシフトレジスタ１９０とを備えている。【選択図】　　　図１
2004038808.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスを物理アドレスに変換するためのアドレス変換データを格納する上位アドレス変換バッファと、
アクセスに応じて、前記上位アドレス変換バッファを用いて仮想アドレスを物理アドレスに変換させ、変換不可の場合、アドレス変換の制御を後段に依頼する上位制御手段と、
前記上位制御手段からのアドレス変換の依頼に応じ、前記仮想アドレスを物理アドレスに変換するための制御を行う下位制御手段と、
前記変換に用いられたアドレス変換データを前記上位アドレス変換バッファに書き込む書込制御手段と、
前記上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止する書込禁止手段と、
を備えたことを特徴とする２階層アドレス変換装置。
【請求項２】
前記書込禁止手段は、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データが格納されている位置の情報を前記履歴情報として保持しており、前記下位制御手段で変換に用いられた当該アドレス変換データの格納アドレスと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする請求項１に記載の２階層アドレス変換装置。
【請求項３】
前記書込禁止手段は、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データを前記履歴情報として保持しており、前記下位制御手段で変換に用いられた当該アドレス変換データと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする請求項１に記載の２階層アドレス変換装置。
【請求項４】
前記書込禁止手段は、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データの一部を前記履歴情報として保持しており、前記下位制御手段で変換に用いられた当該アドレス変換データの一部と前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする請求項１に記載の２階層アドレス変換装置。
【請求項５】
前記上位制御手段は、先入れ先出し制御により前記上位アドレス変換バッファにアクセスすることを特徴とする請求項１〜４のいずれか一つに記載の２階層アドレス変換装置。
【請求項６】
アクセスに応じて、仮想アドレスを物理アドレスに変換するためのアドレス変換データを格納する上位アドレス変換バッファを用いて仮想アドレスを物理アドレスに変換させ、変換不可の場合、アドレス変換の制御を後段に依頼する上位制御工程と、
前記上位制御工程でのアドレス変換の依頼に応じ、前記仮想アドレスを物理アドレスに変換するための制御を行う下位制御工程と、
前記変換に用いられたアドレス変換データを前記上位アドレス変換バッファに書き込む書込制御工程と、
前記上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止する書込禁止工程と、
を含むことを特徴とする２階層アドレス変換方法。
【請求項７】
前記書込禁止工程では、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データが格納されている位置の情報を前記履歴情報として保持しており、前記下位制御工程で変換に用いられた当該アドレス変換データの格納アドレスと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする請求項６に記載の２階層アドレス変換方法。
【請求項８】
前記書込禁止工程では、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データを前記履歴情報として保持しており、前記下位制御工程で変換に用いられた当該アドレス変換データと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする請求項６に記載の２階層アドレス変換方法。
【請求項９】
前記書込禁止工程では、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データの一部を前記履歴情報として保持しており、前記下位制御工程で変換に用いられた当該アドレス変換データの一部と前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする請求項６に記載の２階層アドレス変換方法。
【請求項１０】
前記上位制御工程では、先入れ先出し制御により前記上位アドレス変換バッファにアクセスすることを特徴とする請求項６〜９のいずれか一つに記載の２階層アドレス変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想記憶方式のコンピュータシステムにおける仮想アドレスから物理アドレスへの変換を行うための２階層アドレス変換装置および２階層アドレス変換方法に関するものであり、特に、下位層から上位層への二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができる２階層アドレス変換装置および２階層アドレス変換方法に関するものである。
【０００２】
【従来の技術】
従来より、仮想記憶方式のコンピュータにおいては、仮想アドレス（Ｖｉｒｔｕａｌ　Ａｄｄｒｅｓｓ：ＶＡ）から物理アドレス（Ｐｈｙｓｉｃａｌ　Ａｄｄｒｅｓｓ：ＰＡ）へのアドレス変換を行うためのページテーブルと呼ばれる一覧表が用意されている。
【０００３】
ここで、図７を参照して、上記アドレス変換について説明する。同図には、仮想記憶方式のコンピュータシステムが図示されている。このコンピュータシステムにおいて、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０は、主記憶装置２０にアクセスしつつ各種演算命令を実行するためのプロセッサである。
【０００４】
主記憶装置２０には、上述した仮想アドレスＶＡを物理アドレスＰＡに変換するためのページテーブル３０が格納されている。仮想アドレスＶＡは、コンピュータプログラムの中で指定されるアドレスである。一方、物理アドレスＰＡは、主記憶装置２０の物理的な記憶単位に付けられたアドレスである。
【０００５】
ページテーブル３０は、仮想アドレスＶＡと物理アドレスＰＡとを対応付けるテーブルである。なお、同図においては、仮想アドレスＶＡおよび物理アドレスＰＡは、「ａａａａ　００００　００００　００００」等のように１６進数で表現されている。
【０００６】
仮想アドレスＶＡは、図８（ａ）に示したように、６４ビット構成＜６３：０＞（０ビット〜６３ビット）とされている。仮想アドレスＶＡ＜６３：０＞において、ＶＡ＜１２：０＞は、１３ビット構成のオフセット値（以下、Ｏｆｆ−ＳＥＴ＜１２：０＞と記載）である。
【０００７】
ＶＡ＜２１：１３＞は、９ビット構成のラムアクセスアドレス（以下、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞と記載）とされている。このＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞は、図７に示した後述するＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ　Ｌｏｏｋ−ａｓｉｄｅ　Ｂｕｆｆｅｒ：アドレス変換バッファ）４０におけるアドレスを示しており、同図のＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞に対応している。
【０００８】
図８（ａ）に戻り、ＶＡ＜６３：２２＞は、４２ビット構成のタグ（以下、ＴＬＢ−ＴＡＧ＜４１：０＞と記載：図９（ａ）参照）とされており、ＴＬＢ４０（図７参照）における索引として用いられる。また、図８（ａ）に示したＴＬＢ−ＴＡＧ＜４１：０＞は、ＴＬＢ４０（図７参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。
【０００９】
一方、図７に示したページテーブル３０における物理アドレスＰＡは、図８（ｂ）に示したように、４３ビット構成＜４２：０＞とされている。この物理アドレスＰＡ＜４２：０＞において、ＰＡ＜１２：０＞は、１３ビット構成のオフセット値（以下、Ｏｆｆ−ＳＥＴ＜１２：０＞と記載）とされており、図８（ａ）に示したＯｆｆ−ＳＥＴ＜１２：０＞と同値である。ＰＡ＜４２：１３＞は、物理アドレスに対応するデータ（以下、ＴＬＢ−ＤＡＴＡ＜２９：０＞：図９（ｂ）参照）とされている。
【００１０】
ここで、図７に示したＴＬＢ４０が無い場合、原理的には、ＣＰＵ１０の命令処理部（図示略）は、アドレス変換が必要な度に、主記憶装置２０にアクセスし、仮想アドレスＶＡを用いて、ページテーブル３０を参照し、仮想アドレスＶＡを物理アドレスＰＡに変換しなければならない。
【００１１】
しかしながら、アドレス変換の度に主記憶装置２０にアクセスし、ページテーブル３０を参照していたのでは、アドレス変換に多くの処理時間を費やすことになり、処理速度の低下を招くという問題が発生する。
【００１２】
そこで、上記問題を回避するために、従来では、ＣＰＵ１０内の高速アクセス可能なＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）（図示略）にＴＬＢ（アドレス変換バッファ）４０を設けている。
【００１３】
このＴＬＢ４０は、例えば、５１２エントリを有している。ここで、ＴＬＢ４０においては、各値が「００００」、「２ａａａ　８０００　００００」等のように１６進数で表現されている。このＴＬＢ４０の各エントリには、ＲＡＭにおけるアドレス（エントリ）を示すＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞と、索引としてのＴＬＢ−ＴＡＧ＜４１：０＞（タグ）と、物理アドレスに対応するＴＬＢ−ＤＡＴＡ＜２９：０＞（データ）とがＴＬＢデータとして格納されている。
【００１４】
ＴＬＢ４０におけるＴＬＢ−ＴＡＧ＜４１：０＞は、仮想アドレスＶＡ（図８（ａ）参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。また、ＴＬＢ４０におけるＴＬＢ−ＤＡＴＡ＜２９：０＞は、物理アドレスＰＡ（図８（ｂ）参照）におけるＴＬＢ−ＤＡＴＡ＜２９：０＞に対応している。
【００１５】
上記構成において、主記憶装置２０から命令コードを読み出す場合、ＣＰＵ１０の命令処理部（図示略）は、上記命令コードに対応する仮想アドレスＶＡに含まれるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（図８（ａ）参照）をＲＡＭのアクセスアドレスとして図７に示したＴＬＢ４０を参照する。
【００１６】
これにより、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（図８（ａ）参照）で示されたアドレスに格納されている、ＴＬＢ−ＴＡＧ＜４１：０＞およびＴＬＢ−ＤＡＴＡ＜２９：０＞が読み出される。
【００１７】
つぎに、命令処理部は、上記ＴＬＢ−ＴＡＧ＜４１：０＞と、仮想アドレスＶＡに含まれるＴＬＢ−ＴＡＧ＜４１：０＞（図８（ａ）参照）とを比較する。
【００１８】
この場合、両者が一致したとすると、命令処理部は、ＨＩＴ（ＴＬＢヒット）として、上記ＴＬＢ−ＤＡＴＡ＜２９：０＞と、仮想アドレスＶＡに含まれるＯｆｆ−ＳＥＴ＜１２：０＞（図８（ａ）参照）とを合成し、物理アドレスＰＡを生成する。
【００１９】
そして、命令処理部は、上記物理アドレスＰＡに基づいて、主記憶装置２０から当該命令コードを読み出す。
【００２０】
また、命令処理部により、命令コードに基づいて命令が実行された後、実行結果データを主記憶装置２０に格納する場合にも、上述したＴＬＢ４０が参照され、仮想アドレスＶＡを物理アドレスＰＡに変換するためのアドレス変換処理が実行される。
【００２１】
また、ＴＬＢ４０のＴＬＢ−ＴＡＧ＜４１：０＞（図７参照）と、仮想アドレスＶＡに含まれるＴＬＢ−ＴＡＧ＜４１：０＞（図８（ａ）参照）とが一致しない場合（ＭＩＳＳ（ＴＬＢミス））には、ページテーブル３０が参照され、仮想アドレスＶＡが物理アドレスＰＡに変換される。
【００２２】
ＴＬＢミスの場合には、上記仮想アドレスＶＡ（図８（ａ）参照）に含まれるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞およびＴＬＢ−ＴＡＧ＜４１：０＞と、物理アドレスＰＡ（図８（ｂ）参照）に含まれるＴＬＢ−ＤＡＴＡ＜２９：０＞とを対としてＴＬＢデータとして、ＴＬＢ４０に格納される。
【００２３】
これにより、次回以降で、当該仮想アドレスＶＡは、ＴＬＢ４０により物理アドレスＰＡに変換される。なお、ＴＬＢ４０に空きが無い場合には、例えば、最も古いＴＬＢデータが格納されたエントリに上書きされる。
【００２４】
ここで、従来では、ＴＬＢを下位階層と上位階層という２階層として、アドレス変換の高速化を実現するための２階層アドレス変換装置が用いられている。図１０は、従来の２階層アドレス変換装置５０の構成を示すブロック図である。
【００２５】
同図に示した２階層アドレス変換装置５０は、下位アドレス変換部５１および上位アドレス変換部５２という２階層構成とされている。なお、実際には、２階層アドレス変換装置５０は、ＣＰＵ等のプロセッサの一部を構成している。下位アドレス変換部５１は、ＴＬＢ４０（図１参照）と同一の構成とされた下位ＴＬＢ（図示略）を用いて、仮想アドレスを物理アドレスに変換する。
【００２６】
上位アドレス変換部５２は、下位アドレス変換部５１の下位ＴＬＢ（図示略）に格納されたＴＬＢデータのうち一部のＴＬＢデータを格納している。この上位アドレス変換部５２は、下位アドレス変換部５１に比べて高速処理が可能とされている。
【００２７】
ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）は、上位アドレス変換部５２へ仮想アドレスＶＡ（図８（ａ）参照）が出力されていること、すなわち、上位アドレス変換部５２へのアクセスが要求されていることを表す信号である。
【００２８】
上位アドレス変換部５２は、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）および仮想アドレスＶＡが入力された場合に、仮想アドレスＶＡに含まれるＴＬＢ−ＴＡＧ＜４１：０＞（図８（ａ）参照）を用いて、上位ＴＬＢ（図示略）を検索し、ＨＩＴ（上位ＴＬＢヒット）すると、上位ＴＬＢを用いて、仮想アドレスＶＡを物理アドレスＰＡに変換する。
【００２９】
また、上位アドレス変換部５２は、上位ＴＬＢで検索ヒットしなかった場合、すなわち、ＭＩＳＳ（上位ＴＬＢミス）の場合、下位アドレス変換部５１にアドレス変換をさせるためのｍＴＬＢ＿ＧＯ（下位アクセス要求信号）を出力する。
【００３０】
下位アドレス変換部５１は、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）および仮想アドレスＶＡが入力された場合、下位ＴＬＢ（図示略）を検索して、仮想アドレスＶＡをＰＡ（物理アドレス）に変換する。
【００３１】
また、下位アドレス変換部５１は、仮想アドレスＶＡを物理アドレスＰＡに変換できた場合、すなわち、下位アクセスに関してＨＩＴ（下位ＴＬＢヒット）の場合、ライトイネーブル信号ＷＥおよびライトデータＷＤを上位アドレス変換部５２へ出力する。
【００３２】
ライトデータＷＤは、図１１に示したように、ＨＩＴ（下位ＴＬＢヒット）に対応する仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞から構成されている。一方、ライトイネーブル信号ＷＥは、ライトデータＷＤを上位アドレス変換部５２の上位ＴＬＢへライトすべきことを指示するための信号である。
【００３３】
また、下位アドレス変換部５１で仮想アドレスＶＡを物理アドレスＰＡに変換できなかった場合、すなわち、下位アクセスに関してＭＩＳＳ（下位ＴＬＢミス）の場合には、ページテーブル（図示略）によりアドレス変換が実行される。
【００３４】
上記構成において、図１０に示した仮想アドレスＶＡおよびｕＴＬＢ＿ＧＯ（上位アクセス要求信号）が上位アドレス変換部５２に入力されると、上位アドレス変換部５２では、ＶＡ＜６３：１３＞（図８（ａ）参照）と、上位ＴＬＢ（図示略）に格納された仮想アドレスＶＡ＜６３：１３＞（図９（ａ）参照）とが比較される。
【００３５】
この場合、両者が一致したとすると、ＨＩＴ（上位ＴＬＢヒット）とされ、上位アドレス変換部５２では、ＶＡ＜１２：０＞と、ＴＬＢに格納されたＴＬＢ−ＤＡＴＡ＜２９：０＞とが合成され、図８（ｂ）に示したＰＡ＜４２：０＞（物理アドレス）が出力される。
【００３６】
そして、上記ＰＡ（物理アドレス）に基づいて、主記憶装置（図示略）から命令コードが読み出される。
【００３７】
一方、上位アドレス変換部５２で、両者が一致しない場合、ＭＩＳＳ（上位ＴＬＢミス）とされる。これにより、上位アドレス変換部５２からは、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）が下位アドレス変換部５１へ出力される。また、下位アドレス変換部５１には、仮想アドレスＶＡが入力される。
【００３８】
下位アドレス変換部５１では、上位アドレス変換部５２と同様にして、仮想アドレスＶＡに基づいて、下位ＴＬＢ（図示略）が検索される。
【００３９】
ここで、仮想アドレスＶＡを物理アドレスＰＡに変換できた場合、すなわち、アクセスに関してＨＩＴ（下位ＴＬＢヒット）の場合、下位アドレス変換部５１は、ライトイネーブル信号ＷＥおよび図１１に示したライトデータＷＤ（仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞）を上位アドレス変換部５２へ出力する。
【００４０】
これにより、上位アドレス変換部５２では、ライトデータＷＤから得られる仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞が上位ＴＬＢに格納される。次回以降で、当該仮想アドレスＶＡは、上位アドレス変換部５２で物理アドレスＰＡに変換される。
【００４１】
【発明が解決しようとする課題】
ところで、前述したように、従来の２階層アドレス変換装置５０においては、２回以上連続して、ＭＩＳＳ（上位ＴＬＢミス）が発生する同一の仮想アドレスＶＡおよびｕＴＬＢ＿ＧＯ（上位アクセス要求信号）が上位アドレス変換部５２へ入力されると、同一のライトデータＷＤ（仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞）が上位ＴＬＢに重複した状態で格納され、マルチヒットを発生させるという問題があった。
【００４２】
すなわち、１回目の仮想アドレスＶＡおよびｕＴＬＢ＿ＧＯ（上位アクセス要求信号）が上位アドレス変換部５２に入力され、ＭＩＳＳ（上位ＴＬＢミス）により、下位アドレス変換部５１へｍＴＬＢ＿ＧＯ（下位アクセス要求信号）および仮想アドレスＶＡが入力されると、下位アドレス変換部５１では、下位ＴＬＢが検索され、この場合、ＨＩＴ（下位ＴＬＢヒット）となる。
【００４３】
これにより、下位アドレス変換部５１からライトデータＷＤ（仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞）が上位アドレス変換部５２へ出力され、上位ＴＬＢに格納される。
【００４４】
しかしながら、１回目の仮想アドレスＶＡおよびｕＴＬＢ＿ＧＯ（上位アクセス要求信号）が上位アドレス変換部５２に入力されてからライトデータＷＤが上位アドレス変換部５２に入力されるまでの間（上位ＴＬＢへ上記ライトデータＷＤがライトされる前）に上記仮想アドレスＶＡと同一の、２回目の仮想アドレスＶＡおよびｕＴＬＢ＿ＧＯ（上位アクセス要求信号）が入力されると、２回連続でＭＩＳＳ（上位ＴＬＢミス）となる。
【００４５】
これにより、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）および上記仮想アドレスＶＡが下位アドレス変換部５１に入力され、下位アドレス変換部５１では、下位ＴＬＢが検索され、２回連続でＨＩＴ（下位ＴＬＢヒット）となる。
【００４６】
つぎに、下位アドレス変換部５１から１回目と同一の、２回目のライトデータＷＤ（仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞）が上位アドレス変換部５２へ出力され、上位ＴＬＢに格納される。
【００４７】
ここで、上位ＴＬＢには、１回目のライトデータＷＤと２回目のライトデータＷＤという、同一のライトデータＷＤが重複して格納されている。この状態で、３回目に仮想アドレスＶＡおよびｕＴＬＢ＿ＧＯ（上位アクセス要求信号）が上位アドレス変換部５２へ入力されると、マルチヒットとなりエラーとされる。
【００４８】
本発明は、上記に鑑みてなされたもので、下位層から上位層への二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができる２階層アドレス変換装置および２階層アドレス変換方法を提供することを目的とする。
【００４９】
【課題を解決するための手段】
上記目的を達成するために、本発明は、仮想アドレスを物理アドレスに変換するためのアドレス変換データを格納する上位アドレス変換バッファと、アクセスに応じて、前記上位アドレス変換バッファを用いて仮想アドレスを物理アドレスに変換させ、変換不可の場合、アドレス変換の制御を後段に依頼する上位制御手段と、前記上位制御手段からのアドレス変換の依頼に応じ、前記仮想アドレスを物理アドレスに変換するための制御を行う下位制御手段と、前記変換に用いられたアドレス変換データを前記上位アドレス変換バッファに書き込む書込制御手段と、前記上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止する書込禁止手段と、を備えたことを特徴とする。
【００５０】
また、本発明は、アクセスに応じて、仮想アドレスを物理アドレスに変換するためのアドレス変換データを格納する上位アドレス変換バッファを用いて仮想アドレスを物理アドレスに変換させ、変換不可の場合、アドレス変換の制御を後段に依頼する上位制御工程と、前記上位制御工程でのアドレス変換の依頼に応じ、前記仮想アドレスを物理アドレスに変換するための制御を行う下位制御工程と、前記変換に用いられたアドレス変換データを前記上位アドレス変換バッファに書き込む書込制御工程と、前記上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止する書込禁止工程と、を含むことを特徴とする。
【００５１】
かかる発明によれば、上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することとしたので、上位アドレス変換バッファへのアドレス変換データの二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができる。
【００５２】
【発明の実施の形態】
以下、図面を参照して本発明にかかる２階層アドレス変換装置および２階層アドレス変換方法の一実施の形態について詳細に説明する。
【００５３】
図１は、本発明にかかる一実施の形態の構成を示すブロック図である。この図には、仮想記憶方式のコンピュータシステムにおける仮想アドレスから物理アドレスへの変換を高速で行うための２階層アドレス変換装置１００が図示されている。なお、実際には、２階層アドレス変換装置１００は、ＣＰＵ等のプロセッサの一部を構成している。
【００５４】
同図に示した２階層アドレス変換装置１００は、下位アドレス変換部１００ａおよび上位アドレス変換部１００ｂという２階層構成とされている。下位アドレス変換部１００ａでは、後述する下位ＴＬＢ１５０を用いて、仮想アドレスＶＡ（図８（ａ）参照）が物理アドレスＰＡ（図８（ｂ）参照）に変換される。
【００５５】
一方、上位アドレス変換部１００ｂは、下位アドレス変換部１００ａの下位ＴＬＢ１５０に格納されたＴＬＢデータのうち一部のＴＬＢデータを格納している。この上位アドレス変換部１００ｂは、下位アドレス変換部１００ａに比べて高速処理が可能とされている。
【００５６】
ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）は、仮想アドレスＶＡ（図８（ａ）参照）が出力されていること、すなわち、上位アドレス変換部１００ｂへの上位アクセスが要求されていることを表す信号である。
【００５７】
この上位アドレス変換部１００ｂでは、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）および仮想アドレスＶＡが入力された場合に、仮想アドレスＶＡ＜６３：１３＞を用いて、後述する上位ＴＬＢ１７０が検索され、ｕＴＬＢ＿ＨＩＴ（上位ＴＬＢヒット）すると、上位ＴＬＢ１７０を用いて、仮想アドレスＶＡが物理アドレスＰＡに変換される。
【００５８】
また、上位アドレス変換部１００ｂでは、上位ＴＬＢ１７０で検索ヒットしなかった場合、すなわち、ｕＴＬＢ＿ＭＩＳＳ（上位ＴＬＢミス）の場合、下位アドレス変換部１００ａにアドレス変換をさせるためのｍＴＬＢ＿ＧＯ（下位アクセス要求信号）がアンド回路１３０から出力される。
【００５９】
下位アドレス変換部１００ａでは、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）および仮想アドレスＶＡが入力された場合、後述する下位ＴＬＢ１５０が検索され、仮想アドレスＶＡがＰＡ（物理アドレス）に変換される。
【００６０】
また、下位アドレス変換部１００ａでは、仮想アドレスＶＡが物理アドレスＰＡに変換された場合、すなわち、下位アクセスに関してｍＴＬＢ＿ＨＩＴ（下位ＴＬＢヒット）の場合、ライトイネーブル信号ＷＥおよびライトデータＷＤ（図１１参照）が上位アドレス変換部１００ｂへ出力される。
【００６１】
ライトデータＷＤは、図１１に示したように、ｍＴＬＢ＿ＨＩＴ（下位ＴＬＢヒット）に対応する仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞から構成されている。一方、ライトイネーブル信号ＷＥは、ライトデータＷＤを上位アドレス変換部１００ｂの上位ＴＬＢ１７０へライトすべきことを指示するための信号である。
【００６２】
また、下位アドレス変換部１００ａで仮想アドレスＶＡが物理アドレスＰＡに変換できなかった場合、すなわち、下位アクセスに関して、ｍＴＬＢ＿ＭＩＳＳ（下位ＴＬＢミス）の場合には、ページテーブル（図示略）に対してアドレス変換データが参照される。
【００６３】
２階層アドレス変換装置１００においては、ラッチ回路１０１〜１２３が設けられており、各種データや信号がタイミングＴ１〜Ｔ６で同図左から右へシフトされる。ラッチ回路１０１〜１０３は、タイミングＴ２に対応している。ラッチ回路１０４〜１０８は、タイミングＴ３に対応している。
【００６４】
また、ラッチ回路１０９〜１１２は、タイミングＴ４に対応している。ラッチ回路１１３〜１１７は、タイミングＴ５に対応している。ラッチ回路１１８〜１２３は、タイミングＴ６に対応している。
【００６５】
下位ＴＬＢ−ＲＡＭ１４０には、下位ＴＬＢ１５０が設けられている。この下位ＴＬＢ１５０は、図２に示したように、複数エントリ（例えば、１０２４エントリ）を有している。ここで、下位ＴＬＢ１５０においては、各値が１６進数で表現されている。
【００６６】
下位ＴＬＢ１５０の各エントリには、下位ＴＬＢ−ＲＡＭ１４０におけるアドレス（エントリ）を示すＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）と、索引としてのＴＬＢ−ＴＡＧ＜４１：０＞（タグ）と、物理アドレスに対応するＴＬＢ−ＤＡＴＡ＜２９：０＞（データ）とが下位ＴＬＢデータとして格納されている。
【００６７】
この下位ＴＬＢ１５０におけるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞は、仮想アドレスＶＡ（図８（ａ）参照）におけるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞に対応している。
【００６８】
また、下位ＴＬＢ１５０におけるＴＬＢ−ＴＡＧ＜４１：０＞は、仮想アドレスＶＡ（図８（ａ）参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。また、下位ＴＬＢ１５０におけるＴＬＢ−ＤＡＴＡ＜２９：０＞は、物理アドレスＰＡ（図８（ｂ）参照）におけるＴＬＢ−ＤＡＴＡ＜２９：０＞に対応している。
【００６９】
図１に戻り、上位ＴＬＢ−ＣＡＭ（ＴＬＢ−Ｃｏｎｔｅｎｔ　Ａｄｄｒｅｓｓａｂｌｅ　Ｍｅｍｏｒｙ）１６０には、上位ＴＬＢ１７０が設けられている。この上位ＴＬＢ１７０は、図３に示したように、３２（０〜３１）エントリを有している。この上位ＴＬＢ−ＣＡＭ１６０は、下位ＴＬＢ−ＲＡＭ１４０に比べて高速アクセスが可能とされている。
【００７０】
上位ＴＬＢ１７０は、下位ＴＬＢ１５０（図２参照）に格納された上位ＴＬＢデータのうち一部を上位ＴＬＢデータとして格納している。
【００７１】
具体的には、上位ＴＬＢ１７０の各エントリには、下位アドレス変換部１００ａ（図１参照）でｍＴＬＢ＿ＨＩＴ（下位ＴＬＢヒット）の場合に入力されるライトデータＷＤおよびライトイネーブル信号ＷＥに基づいて、仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞が格納される。
【００７２】
ライトデータＷＤが格納されるエントリは、格納の度にカウントアップされるカウンタ１６１の出力とライトイネーブル信号ＷＥとのアンドをとるアンド回路１６２により指定される。この上位ＴＬＢ−ＣＡＭ１６０では、ＦＩＦＯ（Ｆｉｒｓｔ　Ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）制御（先入れ先出し制御）が実現されている。
【００７３】
ラッチ回路１０３には、仮想アドレスＶＡに含まれるＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）がラッチされる。このＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）は、仮想アドレスＶＡ＜６３：１３＞（図８（ａ）参照）であり、上位ＴＬＢ１７０の検索に用いられる。
【００７４】
図１に戻り、ラッチ回路１１６は、下位ＴＬＢ１５０（図２参照）からＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＴＡＧ＜４１：０＞を読み出し、これをラッチする。
【００７５】
ラッチ回路１１７は、下位ＴＬＢ１５０からＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＤＡＴＡ＜２９：０＞を読み出し、これをラッチする。
【００７６】
比較回路１８０は、ラッチ回路１１６からのＴＬＢ−ＴＡＧ＜４１：０＞と、ラッチ回路１１３からのＶＡ＜６３：２２＞（図８（ａ）参照）とを比較し、両者が一致した場合、ＨＩＴ（下位ＴＬＢヒット）とする。アンド回路１３２は、ＨＩＴ（下位ＴＬＢヒット）が入力された場合、物理アドレスＰＡ＜４２：１３＞（ＴＬＢ−ＤＡＴＡ＜２９：０＞と等しい）を出力する。
【００７７】
ラッチ回路１２２は、仮想アドレスＶＡ＜６３：１３＞（図８（ａ）参照）と物理アドレスＰＡ＜４２：１３＞（図８（ｂ）参照）とをライトデータＷＤ（図１１参照）としてラッチし、このライトデータＷＤを上位ＴＬＢ１７０へ出力する。
【００７８】
アンド回路１３３は、ＨＩＴ（下位ＴＬＢヒット）とラッチ回路１１４にラッチされたｍＴＬＢ＿ＧＯ（下位アクセス要求信号）とのアンドをとる。ラッチ回路１２１は、アンド回路１３３でアンド条件が満たされた場合、ｍＴＬＢ＿ＨＩＴ（下位ＴＬＢヒット）とする。
【００７９】
アンド回路１３５は、ノット回路２０１の出力（ＭＩＳＳ（下位ＴＬＢミス）と、ラッチ回路１１４にラッチされたｍＴＬＢ＿ＧＯ（下位アクセス要求信号）とのアンドをとる。ラッチ回路１２３は、アンド回路１３５でアンド条件が満たされた場合、ｍＴＬＢ＿ＭＩＳＳ（下位ＴＬＢミス）とする。
【００８０】
ラッチ回路１１１、ラッチ回路１１５およびラッチ回路１２０には、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（図８（ａ）参照）がそれぞれラッチされる。ラッチ回路１２０は、タイミングＴ６で図４に示したようにＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞をＬＯＣ＿ＮＵＭ（位置データ）としてラッチする。
【００８１】
ＬＯＣ＿ＮＵＭ（位置データ）は、下位ＴＬＢ１５０において現タイミングで検索対象とされた下位ＴＬＢデータが格納されていた位置（アドレス）を表すデータである。
【００８２】
シフトレジスタ１９０は、下位アドレス変換部１００ａから上位アドレス変換部１００ｂに対する同一ライトデータＷＤの二重書き込み転送によるマルチヒットを防止する目的で設けられている。
【００８３】
このシフトレジスタ１９０は、現タイミングより過去４タイミング分のＬＯＣ＿ＮＵＭ（位置データ）を格納する機能と、過去のＬＯＣ＿ＮＵＭ（位置データ）と現タイミングのＬＯＣ＿ＮＵＭ（位置データ）とを比較し一致した場合、”１”のライト禁止信号ｕＴＬＢ＿ＷＤＩＳを出力する機能とを備えている。
【００８４】
”１”のライト禁止信号ｕＴＬＢ＿ＷＤＩＳは、下位アドレス変換部１００ａから上位アドレス変換部１００ｂに対するライトデータＷＤのライトを禁止するための信号である。
【００８５】
シフトレジスタ１９０は、図５に示したように、４段シフト構成のレジスタ１９１〜１９４と、これらに対応する比較回路１９５〜１９８と、オア回路１９９とから構成されている。
【００８６】
レジスタ１９１〜１９４は、ＬＯＣ＿ＮＵＭ（位置データ）に対応する９ビットのレジスタである。これらのレジスタ１９１〜１９４においては、過去４タイミング分のＬＯＣ＿ＮＵＭ（位置データ）が格納されており、タイミング毎にＬＯＣ＿ＮＵＭ（位置データ）が同図左から右へシフトされる。
【００８７】
比較回路１９５は、現タイミングのＬＯＣ＿ＮＵＭ（位置データ）と、レジスタ１９１に格納された過去１タイミング前のＬＯＣ＿ＮＵＭ（位置データ）とを比較し、両者が一致した場合、１信号を出力する。
【００８８】
比較回路１９６は、現タイミングのＬＯＣ＿ＮＵＭ（位置データ）と、レジスタ１９２に格納された過去２タイミング前のＬＯＣ＿ＮＵＭ（位置データ）とを比較し、両者が一致した場合、１信号を出力する。
【００８９】
比較回路１９７は、現タイミングのＬＯＣ＿ＮＵＭ（位置データ）と、レジスタ１９３に格納された過去３タイミング前のＬＯＣ＿ＮＵＭ（位置データ）とを比較し、両者が一致した場合、１信号を出力する。
【００９０】
比較回路１９８は、現タイミングのＬＯＣ＿ＮＵＭ（位置データ）と、レジスタ１９４に格納された過去４タイミング前のＬＯＣ＿ＮＵＭ（位置データ）とを比較し、両者が一致した場合、１信号を出力する。
【００９１】
オア回路１９９は、比較回路１９５〜１９８の出力信号のオアをとり、いずれか一つの比較回路より１信号が入力された場合、”１”のライト禁止信号ｕＴＬＢ＿ＷＤＩＳを出力する。
【００９２】
図１に戻り、ノット回路２００は、上記ライト禁止信号ｕＴＬＢ＿ＷＤＩＳを反転（１→０または１→０）させる。アンド回路１３４は、ｍＴＬＢ＿ＨＩＴ（下位ＴＬＢヒット）と、ノット回路２００の出力信号とのアンドをとり、ライトイネーブル信号ＷＥを出力する。
【００９３】
つぎに、一実施の形態の動作について図６に示したタイムチャートを参照しつつ説明する。以下では、上位アドレス変換部１００ｂで２回連続してＭＩＳＳ（上位ＴＬＢミス）が発生した場合であっても、下位アドレス変換部１００ａから上位アドレス変換部１００ｂに対する同一ライトデータＷＤの二重書き込みが禁止されるという、動作について説明する。
【００９４】
図６において、最上段の「１」〜「１８」は、総合タイミングを表す。ＩＮＩＴＩＡＬ＿ＡＣＣＳ（１回目アクセス、上位ＴＬＢヒット）は、上位アドレス変換部１００ｂへの１回目のアクセスを表す。ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳ（２回目アクセス、上位ＴＬＢミス）は、上位アドレス変換部１００ｂへの２回目のアクセスを表す。
【００９５】
ＮＥＸＴ＿ＨＩＴ＿ＡＣＣＳ（３回目アクセス、上位ＴＬＢヒット）は、上位アドレス変換部１００ｂへの３回目のアクセスを表す。なお、１回目〜３回目のアクセスにおいては、同一の仮想アドレスＶＡが用いられているものとする。
【００９６】
図６に示したＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ１（総合タイミング「１」）では、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）および仮想アドレスＶＡが２階層アドレス変換装置１００に入力される。
【００９７】
ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ２では、上位ＴＬＢ１７０にアクセス（ｕＴＬＢ＿ＡＣＣＳ）され、検索結果がＭＩＳＳ（ｕＴＬＢ＿ＭＩＳＳ）とされる。
【００９８】
すなわち、タイミングＴ２（ｕＴＬＢ＿ＡＣＣＳ）では、ラッチ回路１０１に仮想アドレスＶＡがラッチされ、ラッチ回路１０３にＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）がラッチされる。また、ラッチ回路１０２には、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）がラッチされる。
【００９９】
また、図３に示した上位ＴＬＢ１７０では、格納されている仮想アドレスＶＡ＜６３：１３＞と、ＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）（ＶＡ＜６３：１３＞（図８（ａ）参照））とが比較される。この場合には、両者が一致せず、ＭＩＳＳ（上位ＴＬＢミス）とされる。
【０１００】
図６に示したＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ３では、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）が出力される。すなわち、図１に示したラッチ回路１０４には、仮想アドレスＶＡがラッチされ、ラッチ回路１０５には、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）がラッチされる。
【０１０１】
また、ラッチ回路１０６には、ＭＩＳＳ（下位ＴＬＢミス）の信号がラッチされ、アンド回路１３０からは、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）が出力される。
【０１０２】
ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ４では、下位ＴＬＢ１５０にアクセス（ｍＴＬＢ＿ＡＣＣＳ）される。すなわち、ラッチ回路１０９には、仮想アドレスＶＡがラッチされ、ラッチ回路１１０には、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）がラッチされる。
【０１０３】
また、ラッチ回路１１１およびラッチ回路１１２には、仮想アドレスＶＡに含まれるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）（図８（ａ）参照）がラッチされる。
【０１０４】
ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ５では、検索結果がＨＩＴ（ｍＴＬＢ＿ＨＩＴ）とされる。すなわち、タイミングＴ５では、ラッチ回路１１２にラッチされたＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）を用いて、図２に示した下位ＴＬＢ１５０が検索され、当該ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＴＡＧ＜４１：０＞がラッチ回路１１６にラッチされる。
【０１０５】
また、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）を用いて、下位ＴＬＢ１５０が検索され、当該ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＤＡＴＡ＜２９：０＞がラッチ回路１１７にラッチされる。
【０１０６】
これにより、比較回路１８０は、ラッチ回路１１３からのＶＡ＜６３：２２＞と、ラッチ回路１１６からのＴＬＢ−ＴＡＧ＜４１：０＞とを比較する。この場合、両者が一致したとすると、比較回路１８０は、ＨＩＴ（下位ＴＬＢヒット）とする。アンド回路１３３は、ＨＩＴ（下位ＴＬＢヒット）とラッチ回路１１４にラッチされたｍＴＬＢ＿ＧＯ（下位アクセス要求信号）とのアンドをとる。
【０１０７】
また、ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ５（総合タイミング「５」）と同一のタイミングでは、上位アドレス変換部１００ｂへの２回目のアクセス（ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳ）が行われる。
【０１０８】
すなわち、ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ１（総合タイミング「５」）では、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）および仮想アドレスＶＡが出力される。
【０１０９】
ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ２（総合タイミング「６」）では、上位ＴＬＢ１７０にアクセス（ｕＴＬＢ＿ＡＣＣＳ）される。この時点では、下位アドレス変換部１００ａからのライトデータＷＤが上位ＴＬＢ１７０にライトされていないため、検索結果が再びＭＩＳＳ（ｕＴＬＢ＿ＭＩＳＳ）とされる。
【０１１０】
すなわち、タイミングＴ２（ｕＴＬＢ＿ＡＣＣＳ）では、前述したＩＮＩＴＩＡＬ＿ＡＣＣＳの場合と同様にして、ラッチ回路１０１に仮想アドレスＶＡがラッチされ、ラッチ回路１０３にＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）がラッチされる。また、ラッチ回路１０２には、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）がラッチされる。
【０１１１】
また、図３に示した上位ＴＬＢ１７０では、エントリに格納されている仮想アドレスＶＡ＜６３：１３＞と、ＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）（ＶＡ＜６３：１３＞（図８（ａ）参照））とが比較される。この場合には、両者が一致せず、ＭＩＳＳ（上位ＴＬＢミス）とされる。
【０１１２】
一方、ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ６（ｕＴＬＢ＿ＷＲＴ）では、ラッチ回路１２２には、仮想アドレスＶＡ＜６３：１３＞と物理アドレスＰＡ＜４２：１３＞とがライトデータＷＤ（図１１参照）としてラッチされる。
【０１１３】
また、上述したＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ６およびＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ２と同一のタイミングでは、上位アドレス変換部１００ｂへの３回目のアクセス（ＮＥＸＴ＿ＨＩＴ＿ＡＣＣＳ）が行われる。
【０１１４】
すなわち、ＮＥＸＴ＿ＨＩＴ＿ＡＣＣＳのタイミングＴ１（総合タイミング「６」）では、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）および仮想アドレスＶＡが出力される。
【０１１５】
ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ６では、図５に示したシフトレジスタ１９０の比較回路１９５〜１９８のそれぞれで、現タイミングのＬＯＣ＿ＮＵＭ（位置データ）と、レジスタ１９１〜１９４に格納された過去４タイミング分のＬＯＣ＿ＮＵＭ（位置データ）とが比較される。この場合、全ての比較結果が不一致であり、比較回路１９５〜１９８からは、０信号が出力される。
【０１１６】
これにより、オア回路１９９からは、”０”のライト禁止信号ｕＴＬＢ＿ＷＤＩＳが出力され、この”０”ライト禁止信号ｕＴＬＢ＿ＷＤＩＳは、図１に示したノット回路２００により反転され、アンド回路１３４からは、”１”のライトイネーブル信号ＷＥが上位ＴＬＢ１７０へ出力される。
【０１１７】
また、ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ６では、ラッチ回路１２２から上位ＴＬＢ１７０へライトデータＷＤが出力される。これにより、図３に示した上位ＴＬＢ１７０においては、”１”のライトイネーブル信号ＷＥが入力されることにより、カウンタ１６１およびアンド回路１６２により指定されたエントリにライトデータＷＤ（仮想アドレスＶＡ＜６３：１３＞および物理アドレスＰＡ＜４２：１３＞）が格納される。タイミングＴ７以降においては、当該エントリに格納されたライトデータＷＤが有効となる。
【０１１８】
また、ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ３では、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）が出力される。すなわち、図１に示したラッチ回路１０４には、仮想アドレスＶＡがラッチされ、ラッチ回路１０５には、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）がラッチされる。
【０１１９】
また、ラッチ回路１０６には、ＭＩＳＳ（下位ＴＬＢミス）の信号がラッチされ、アンド回路１３０からは、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）が出力される。
【０１２０】
また、ＮＥＸＴ＿ＨＩＴ＿ＡＣＣＳのタイミングＴ２（総合タイミング「７」）では、上位ＴＬＢ１７０にアクセス（ｕＴＬＢ＿ＡＣＣＳ）され、検索結果がＨＩＴ（ｕＴＬＢ＿ＨＩＴ）とされる。
【０１２１】
すなわち、タイミングＴ２（ｕＴＬＢ＿ＡＣＣＳ）では、ラッチ回路１０１に仮想アドレスＶＡがラッチされ、ラッチ回路１０３にＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）がラッチされる。また、ラッチ回路１０２には、ｕＴＬＢ＿ＧＯ（上位アクセス要求信号）がラッチされる。
【０１２２】
また、図３に示した上位ＴＬＢ１７０では、エントリに格納されている仮想アドレスＶＡ＜６３：１３＞と、ＣＡＭ−ＡＣＣＳ−ＡＤＲＳ（キャムアクセスアドレス）（ＶＡ＜６３：１３＞（図８（ａ）参照））とが比較される。
【０１２３】
また、タイミングＴ２（ｕＴＬＢ＿ＡＣＣＳ）では、上位ＴＬＢ１７０における比較結果が一致となり、ＨＩＴ（上位ＴＬＢヒット）とされる。
【０１２４】
ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ８（ＬＯＣ＿ＮＵＭ＿Ｒｅｇ）では、図５に示したシフトレジスタ１９０のレジスタ１９１〜１９４において格納ＬＯＣ＿ＮＵＭ（位置データ）が左から右へシフトされる。
【０１２５】
また、ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ４（総合タイミング「８」）では、下位ＴＬＢ１５０にアクセス（ｍＴＬＢ＿ＡＣＣＳ）される。すなわち、ラッチ回路１０９には、仮想アドレスＶＡがラッチされ、ラッチ回路１１０には、ｍＴＬＢ＿ＧＯ（下位アクセス要求信号）がラッチされる。
【０１２６】
また、ラッチ回路１１１およびラッチ回路１１２には、仮想アドレスＶＡに含まれるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）（図８（ａ）参照）がラッチされる。
【０１２７】
また、ＮＥＸＴ＿ＨＩＴ＿ＡＣＣＳのタイミングＴ３では、ラッチ回路１０８からは、物理アドレスＰＡが出力される。
【０１２８】
また、ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ９（ＬＯＣ＿ＮＵＭ＿Ｒｅｇ）では、図５に示したシフトレジスタ１９０のレジスタ１９１〜１９４において格納ＬＯＣ＿ＮＵＭ（位置データ）が左から右へシフトされる。
【０１２９】
また、ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ４では、検索結果がＨＩＴ（ｍＴＬＢ＿ＨＩＴ）とされる。すなわち、タイミングＴ４では、ラッチ回路１１２にラッチされたＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）を用いて、図２に示した下位ＴＬＢ１５０が検索され、当該ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＴＡＧ＜４１：０＞がラッチ回路１１６にラッチされる。
【０１３０】
また、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）を用いて、下位ＴＬＢ１５０が検索され、当該ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＤＡＴＡ＜２９：０＞がラッチ回路１１７にラッチされる。
【０１３１】
これにより、比較回路１８０は、ラッチ回路１１３からのＶＡ＜６３：２２＞と、ラッチ回路１１６からのＴＬＢ−ＴＡＧ＜４１：０＞とを比較する。この場合、両者が一致したとすると、比較回路１８０は、ＨＩＴ（下位ＴＬＢヒット）とする。アンド回路１３３は、ＨＩＴ（下位ＴＬＢヒット）とラッチ回路１１４にラッチされたｍＴＬＢ＿ＧＯ（下位アクセス要求信号）とのアンドをとる。
【０１３２】
また、ＩＮＩＴＩＡＬ＿ＡＣＣＳのタイミングＴ１０（ＬＯＣ＿ＮＵＭ＿Ｒｅｇ）では、図５に示したシフトレジスタ１９０のレジスタ１９１〜１９４において格納ＬＯＣ＿ＮＵＭ（位置データ）が左から右へシフトされる。
【０１３３】
このとき、レジスタ１９４には、４タイミング前に下位ＴＬＢ１５０でＨＩＴ（ｍＴＬＢ＿ＨＩＴ）した場合のＬＯＣ＿ＮＵＭ（位置データ）が格納されている。
【０１３４】
これにより、シフトレジスタ１９０の比較回路１９５〜１９８のそれぞれで、現タイミング（ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳ）のＬＯＣ＿ＮＵＭ（位置データ）と、レジスタ１９１〜１９４に格納された過去４タイミング分のＬＯＣ＿ＮＵＭ（位置データ）とが比較される。この場合、比較回路１９８の比較結果が一致となるため、比較回路１９８からは、１信号が出力される。
【０１３５】
そして、オア回路１９９からは、”１”のライト禁止信号ｕＴＬＢ＿ＷＤＩＳが出力され、この”１”のライト禁止信号ｕＴＬＢ＿ＷＤＩＳは、図１に示したノット回路２００により反転され、アンド回路１３４からは、”０”のライトイネーブル信号ＷＥ（ライト禁止信号）が上位ＴＬＢ１７０へ出力される。
【０１３６】
これにより、ＮＥＸＴ＿ＭＩＳＳ＿ＡＣＣＳのタイミングＴ６では、上位ＴＬＢ１７０に対する同一ライトデータＷＤの二重書き込みが禁止される。
【０１３７】
図６に示したように、シフトレジスタ１９０に過去４タイミング分のＬＯＣ＿ＮＵＭ（位置データ）が保持されるため、上位ＴＬＢ−ＣＡＭ１６０への１回目のアクセス（ｕＴＬＢ＿ＡＣＣＳ：総合タイミング「２」）から４タイミング以内で上位ＴＬＢ−ＣＡＭ１６０への２回目のアクセスがあった場合には、上位ＴＬＢ１７０に対する同一のライトデータＷＤの二重書き込みが禁止されるため、マルチヒットが防止される。
【０１３８】
また、図６に示したように、上位ＴＬＢ−ＣＡＭ１６０への１回目のアクセス（ｕＴＬＢ＿ＡＣＣＳ：総合タイミング「２」）から５タイミング以降で上位ＴＬＢ−ＣＡＭ１６０への３回目のアクセスがあった場合には、上位ＴＬＢ１７０でＨＩＴ（上位ＴＬＢヒット）し、通常動作とされる。
【０１３９】
以上説明したように、一実施の形態によれば、上位ＴＬＢ１７０へのライトデータＷＤの書き込みに関する過去の履歴をシフトレジスタ１９０でチェックし、当該ライトデータＷＤと同一のデータが既に上位ＴＬＢ１７０に書き込まれている場合、上位ＴＬＢ１７０に対する当該ライトデータＷＤの書き込みを禁止することとしたので、上位ＴＬＢ１７０へのアドレス変換データの二重書き込みを防ぎ、上位アドレス変換部１００ｂのアドレス変換におけるマルチヒットを防止することができる。
【０１４０】
また、一実施の形態によれば、ＦＩＦＯ（先入れ先出し）制御により上位ＴＬＢ１７０にアクセスすることとしたので、アクセス制御にかかる構成を簡単にすることができる。
【０１４１】
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０１４２】
例えば、一実施の形態においては、ＬＯＣ＿ＮＵＭ（位置データ）の比較結果に基づいてライトデータＷＤの二重書き込みを防止する例について説明したが、ＬＯＣ＿ＮＵＭ（位置データ）に代えて、ライトデータＷＤや下位ＴＬＢデータの一部を用いて比較を行うようにしてもよい。
【０１４３】
（付記１）仮想アドレスを物理アドレスに変換するためのアドレス変換データを格納する上位アドレス変換バッファと、
アクセスに応じて、前記上位アドレス変換バッファを用いて仮想アドレスを物理アドレスに変換させ、変換不可の場合、アドレス変換の制御を後段に依頼する上位制御手段と、
前記上位制御手段からのアドレス変換の依頼に応じ、前記仮想アドレスを物理アドレスに変換するための制御を行う下位制御手段と、
前記変換に用いられたアドレス変換データを前記上位アドレス変換バッファに書き込む書込制御手段と、
前記上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止する書込禁止手段と、
を備えたことを特徴とする２階層アドレス変換装置。
【０１４４】
（付記２）前記書込禁止手段は、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データが格納されている位置の情報を前記履歴情報として保持しており、前記下位制御手段で変換に用いられた当該アドレス変換データの格納アドレスと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする付記１に記載の２階層アドレス変換装置。
【０１４５】
（付記３）前記書込禁止手段は、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データを前記履歴情報として保持しており、前記下位制御手段で変換に用いられた当該アドレス変換データと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする付記１に記載の２階層アドレス変換装置。
【０１４６】
（付記４）前記書込禁止手段は、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データの一部を前記履歴情報として保持しており、前記下位制御手段で変換に用いられた当該アドレス変換データの一部と前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする付記１に記載の２階層アドレス変換装置。
【０１４７】
（付記５）前記上位制御手段は、先入れ先出し制御により前記上位アドレス変換バッファにアクセスすることを特徴とする付記１〜４のいずれか一つに記載の２階層アドレス変換装置。
【０１４８】
（付記６）アクセスに応じて、仮想アドレスを物理アドレスに変換するためのアドレス変換データを格納する上位アドレス変換バッファを用いて仮想アドレスを物理アドレスに変換させ、変換不可の場合、アドレス変換の制御を後段に依頼する上位制御工程と、
前記上位制御工程でのアドレス変換の依頼に応じ、前記仮想アドレスを物理アドレスに変換するための制御を行う下位制御工程と、
前記変換に用いられたアドレス変換データを前記上位アドレス変換バッファに書き込む書込制御工程と、
前記上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止する書込禁止工程と、
を含むことを特徴とする２階層アドレス変換方法。
【０１４９】
（付記７）前記書込禁止工程では、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データが格納されている位置の情報を前記履歴情報として保持しており、前記下位制御工程で変換に用いられた当該アドレス変換データの格納アドレスと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする付記６に記載の２階層アドレス変換方法。
【０１５０】
（付記８）前記書込禁止工程では、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データを前記履歴情報として保持しており、前記下位制御工程で変換に用いられた当該アドレス変換データと前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする付記６に記載の２階層アドレス変換方法。
【０１５１】
（付記９）前記書込禁止工程では、過去に前記上位アドレス変換バッファに書き込まれたアドレス変換データの一部を前記履歴情報として保持しており、前記下位制御工程で変換に用いられた当該アドレス変換データの一部と前記履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、前記上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することを特徴とする付記６に記載の２階層アドレス変換方法。
【０１５２】
（付記１０）前記上位制御工程では、先入れ先出し制御により前記上位アドレス変換バッファにアクセスすることを特徴とする付記６〜９のいずれか一つに記載の２階層アドレス変換方法。
【０１５３】
（付記１１）前記履歴情報は、予め設定された所定期間、保持されることを特徴とする付記６〜１０のいずれか一つに記載の２階層アドレス変換方法。
【０１５４】
【発明の効果】
以上説明したように、本発明によれば、上位アドレス変換バッファへのアドレス変換データの書き込みに関する履歴情報を参照し、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれている場合、上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することとしたので、上位アドレス変換バッファへのアドレス変換データの二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができるという効果を奏する。
【０１５５】
また、本発明によれば、過去に上位アドレス変換バッファに書き込まれたアドレス変換データが格納されている位置の情報を履歴情報として保持しており、当該アドレス変換データの格納アドレスと履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することとしたので、上位アドレス変換バッファへのアドレス変換データの二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができるという効果を奏する。
【０１５６】
また、本発明によれば、過去に上位アドレス変換バッファに書き込まれたアドレス変換データを履歴情報として保持しており、当該アドレス変換データと履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することとしたので、上位アドレス変換バッファへのアドレス変換データの二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができるという効果を奏する。
【０１５７】
また、本発明によれば、過去に上位アドレス変換バッファに書き込まれたアドレス変換データの一部を履歴情報として保持しており、当該アドレス変換データの一部と履歴情報とを比較し、一致の場合、当該アドレス変換データと同一のアドレス変換データが既に上位アドレス変換バッファに書き込まれているとして、上位アドレス変換バッファに対する当該アドレス変換データの書き込みを禁止することとしたので、上位アドレス変換バッファへのアドレス変換データの二重書き込みを防ぎ、上位層のアドレス変換におけるマルチヒットを防止することができるという効果を奏する。
【０１５８】
また、本発明によれば、先入れ先出し制御により上位アドレス変換バッファにアクセスすることとしたので、アクセス制御にかかる構成を簡単にすることができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる一実施の形態の構成を示すブロック図である。
【図２】図１に示した下位ＴＬＢ−ＲＡＭ１４０の構成を示す図である。
【図３】図１に示した上位ＴＬＢ−ＣＡＭ１６０の構成を示す図である。
【図４】図１に示したＬＯＣ＿ＮＵＭのデータ構造を示す図である。
【図５】図１に示したシフトレジスタ１９０の構成を示す図である。
【図６】同一実施の形態の動作を説明するタイムチャートである。
【図７】従来のアドレス変換を説明するブロック図である。
【図８】仮想アドレスＶＡおよび物理アドレスＰＡのデータ構造を示す図である。
【図９】ＴＬＢ−ＴＡＧおよびＴＬＢ−ＤＡＴＡのデータ構造を示す図である。
【図１０】従来の２階層アドレス変換装置５０の構成を示すブロック図である。
【図１１】図１および図１０に示したライトデータＷＤのデータ構造を示す図である。
【符号の説明】
１００　２階層アドレス変換装置
１００ａ　下位アドレス変換部
１００ｂ　上位アドレス変換部
１４０　下位ＴＬＢ−ＲＡＭ
１５０　下位ＴＬＢ
１６０　上位ＴＬＢ−ＣＡＭ
１７０　上位ＴＬＢ
１８０　比較回路
１９０　シフトレジスタ
【図１】
2004038808.tif 000003
【図２】
2004038808.tif 000004
【図３】
2004038808.tif 000005
【図４】
2004038808.tif 000006
【図５】
2004038808.tif 000007
【図６】
2004038808.tif 000008
【図７】
2004038808.tif 000009
【図８】
2004038808.tif 000010
【図９】
2004038808.tif 000011
【図１０】
2004038808.tif 000012
【図１１】
2004038808.tif 000013