(57)【要約】【課題】変換索引バッファを有するマイクロプロセッサにおいて、エントリ置換が実施できなくなることを防止する。【解決手段】変換索引バッファは、仮想アドレスから物理アドレスへの変換により得られるアドレス変換情報が登録される複数のエントリを有している。エントリは、登録されるアドレス変換情報の常駐が必要なときにセットされるプライオリティビットをそれぞれ有している。制御回路は、エントリの登録内容を入れ替えるエントリ置換が発生したときに、全てのエントリのプライオリティビットがセットされている場合、プライオリティビットに拘わらず、最古に参照されたエントリをエントリ置換の対象として選択する。このため、全てのエントリのプライオリティビットがセットされている場合であっても、エントリ置換を実施できる。【選択図】      図１
2004334267.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスから物理アドレスへの変換により得られるアドレス変換情報が登録される複数のエントリを有する変換索引バッファと、
前記変換索引バッファを制御する制御回路とを備え、
前記エントリは、登録されるアドレス変換情報の常駐が必要なときにセットされるプライオリティビットをそれぞれ備え、
前記制御回路は、前記エントリの登録内容を入れ替えるエントリ置換が発生したときに、全ての前記エントリの前記プライオリティビットがセットされている場合、前記プライオリティビットに拘わらず、最古に参照されたエントリをエントリ置換の対象として選択することを特徴とするマイクロプロセッサ。
【請求項２】
請求項１記載のマイクロプロセッサにおいて、
前記制御回路は、エントリ置換が発生したときに、少なくとも１つの前記エントリの前記プライオリティビットがリセットされている場合、前記プライオリティビットがリセットされている少なくとも１つの前記エントリのうち最古に参照されたエントリをエントリ置換の対象として選択することを特徴とするマイクロプロセッサ。
【請求項３】
請求項１記載のマイクロプロセッサにおいて、
前記マイクロプロセッサは、１つのＶＬＩＷ命令に配置された複数の命令を並列実行するＶＬＩＷ方式を採用するとともに、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したことを検出する検出回路を備え、
前記変換索引バッファは、２ウェイセットアソシアティブ方式を採用し、
前記制御回路は、前記検出回路により、同一のＶＬＩＷ命令内でのエントリ置換の連続発生が検出されたときに、前記プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択することを特徴とするマイクロプロセッサ。
【請求項４】
請求項３記載のマイクロプロセッサにおいて、
前記検出回路は、前回のエントリ置換が発生したときのＶＬＩＷ命令の格納先アドレスを保持する保持回路と、エントリ置換が発生したときのＶＬＩＷ命令の格納先アドレスと前記保持回路が保持しているアドレスとを比較する比較器と、前記比較器により、アドレスの一致が検出されたときにセットされるフラグとを備え、
前記制御回路は、前記フラグがセットされているときに、前記プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択することを特徴とするマイクロプロセッサ。
【請求項５】
請求項４記載のマイクロプロセッサにおいて、
前記フラグは、ＶＬＩＷ命令の格納先アドレスの遷移に応答してリセットされることを特徴とするマイクロプロセッサ。
【請求項６】
請求項５記載のマイクロプロセッサにおいて、
前記検出回路は、ＶＬＩＷ命令の格納先アドレスの遷移を検出するアドレス検出器を備え、
前記フラグは、前記アドレス検出器により、ＶＬＩＷ命令の格納先アドレスの遷移が検出されたときにリセットされることを特徴とするマイクロプロセッサ。
【請求項７】
請求項４記載のマイクロプロセッサにおいて、
プログラムの実行を中断させるために発生される複数の割込要求を管理する割込制御回路を備え、
前記フラグは、エントリ置換のための割込要求を除く割込要求の受諾に応答してリセットされることを特徴とするマイクロプロセッサ。
【請求項８】
請求項７記載のマイクロプロセッサにおいて、
前記割込制御回路は、受諾された割込要求の要因を検出する割込検出器を備え、
前記フラグは、前記割込検出器により、受諾された割込要求はエントリ置換のための割込要求ではないことが検出されたときにリセットされることを特徴とするマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサに関し、特に、変換索引バッファ（ＴＬＢ：Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄｅ  Ｂｕｆｆｅｒ）を有するマイクロプロセッサに関する。
【０００２】
【従来の技術】
仮想記憶方式のコンピュータでは、仮想アドレス（Ｖｉｒｔｕａｌ  Ａｄｄｒｅｓｓ）から物理アドレス（Ｐｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓ）への変換（アドレス変換）をプログラムの実行中に実施する必要がある。アドレス変換のためのハードウェア機構は、動的アドレス変換機構（ＤＡＴ：Ｄｙｎａｍｉｃ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ）と呼ばれる。ＤＡＴは、アドレス変換表（セグメントテーブル、ページテーブル等で構成されるテーブル）を参照することで、アドレス変換を実施する。アドレス変換表は、主記憶内に存在し、オペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によって管理される。アドレス変換表は、例えば、ある仮想ページ番号がどの物理ページ番号に対応するかを示す。
【０００３】
ＤＡＴがアドレス変換の実施毎にアドレス変換表を参照すると、アドレス変換のためのオーバヘッドが増大してしまう。このため、アドレス参照の局所性を考慮して、以前に利用されたアドレス変換情報（仮想ページ番号と物理ページ番号との対）を高速なメモリに登録しておくことが、一般的に行われる。このメモリは、変換索引バッファ（ＴＬＢ）またはアドレス変換バッファ（Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ  Ｂｕｆｆｅｒ）と呼ばれる。ＴＬＢは、アドレス変換情報が登録される複数のエントリを有している。
【０００４】
アドレス変換が実施されるときに、仮想アドレスに対応するアドレス変換情報がＴＬＢ内に存在しない場合、アドレス変換表を用いたアドレス変換により得られたアドレス変換情報を、エントリのいずれかに登録されているアドレス変換情報と入れ替える必要がある。すなわち、エントリ置換を実施する必要がある。エントリ置換の対象となるエントリの選択は、例えば、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムに基づいて実施される。すなわち、アドレス参照の局所性を考慮し、最古に参照されたエントリがエントリ置換の対象として選択される。
【０００５】
しかしながら、例えば、タイムスライス方式のＯＳにおいて、使用頻度の低いプログラムを実行した後に、使用頻度の高いプログラムを実行する場合、使用頻度の低いプログラムの実行中にエントリ置換が発生すると、その後、使用頻度の高いプログラムの実行中にエントリ置換が多発してしまう。すなわち、ＴＬＢの効果を十分に享受できなくなってしまう。
【０００６】
この問題を解決するために、エントリ置換の禁止（エントリロック）機能を有するＴＬＢが提案されている（例えば、特許文献１参照）。この種のＴＬＢでは、各エントリは、置換禁止ビットを有している。使用頻度の高い（リアルタイム性が要求されるなどの）プログラムのためのアドレス変換情報、すなわちＴＬＢに常駐させる必要のあるアドレス変換情報が登録されるエントリの置換禁止ビットがセットされる。置換禁止ビットがセットされているエントリは、エントリ置換の候補から除外される。
【０００７】
【特許文献１】
特開平４−３３８８４８号公報
【０００８】
【発明が解決しようとする課題】
前述のようなエントリロック機能を有するＴＬＢでは、エントリ置換が発生したときに、全てのエントリの置換禁止ビットがセットされている場合、エントリ置換を実施できなくなってしまう。このため、プログラムの実行が停止してしまう。すなわち、システムが正常に動作できなくなってしまう。
また、エントリロック用と非エントリロック用とに分割されたＴＬＢでは、アドレス変換の実施時に、両方のＴＬＢを同時に検索しなければならない。両方のＴＬＢを同時にアクセスするためには、ポート数を増やす（多ポート化する）等の対応が必要となり、回路構成が複雑になってしまう。このため、回路規模が増大してしまう。
【０００９】
さらに、例えば、２ウェイセットアソシアティブ方式のＴＬＢを有するＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）方式のマイクロプロセッサでは、ＴＬＢにおいて、同一のＶＬＩＷ命令内でエントリ置換が連続して発生すると、両ウェイのエントリのいずれかの置換禁止ビットがセットされていない場合でも、エントリ置換を実施できなくなってしまう場合がある。
【００１０】
本発明の目的は、ＴＬＢを有するマイクロプロセッサにおいて、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止することにある。
【００１１】
【課題を解決するための手段】
請求項１のマイクロプロセッサでは、変換索引バッファは、仮想アドレスから物理アドレスへの変換により得られるアドレス変換情報が登録される複数のエントリを有している。エントリは、登録されるアドレス変換情報の常駐が必要なときにセットされるプライオリティビットをそれぞれ有している。変換索引バッファを制御する制御回路は、エントリの登録内容を入れ替えるエントリ置換が発生したときに、全てのエントリのプライオリティビットがセットされている場合、プライオリティビットに拘わらず、最古に参照されたエントリをエントリ置換の対象として選択する。
【００１２】
全てのエントリのプライオリティビットがセットされている場合であっても、エントリ置換を実施できる。すなわち、エントリ置換が実施できなくなることを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
また、プライオリティビットに拘わらず、最も以前に参照されたエントリがエントリ置換の対象として選択されるため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
【００１３】
さらに、プライオリティビットを参照してエントリ置換の対象を選択することで、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止できる。
請求項２のマイクロプロセッサでは、制御回路は、エントリ置換が発生したときに、１つのエントリのプライオリティビットがリセットされている場合、プライオリティビットがリセットされているエントリをエントリ置換の対象として選択する。制御回路は、エントリ置換が発生したときに、複数のエントリのプライオリティビットがリセットされている場合、プライオリティビットがリセットされている複数のエントリのうち最古に参照されたエントリをエントリ置換の対象として選択する。
【００１４】
プライオリティビットがセットされているエントリは、エントリ置換の候補から除外されるため、常駐が必要なアドレス変換情報は変換索引バッファに常駐できる。すなわち、アドレス変換のためのオーバヘッドを低減できる。
また、プライオリティビットがリセットされている少なくとも１つのエントリのうち最も以前に参照されたエントリがエントリ置換の対象として選択される。このため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
【００１５】
請求項３のマイクロプロセッサでは、１つのＶＬＩＷ命令に配置された複数の命令を並列実行するＶＬＩＷ方式が採用されている。変換索引バッファは、２ウェイセットアソシアティブ方式を採用している。検出回路は、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したことを検出する。制御回路は、検出回路により、同一のＶＬＩＷ命令内でのエントリ置換の連続発生が検出されたときに、プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択する。
【００１６】
同一のＶＬＩＷ命令内でエントリ置換が連続して発生した場合であっても、エントリ置換を実施できる。すなわち、２ウェイセットアソシアティブ方式の変換索引バッファを有するＶＬＩＷ方式のマイクロプロセッサにおいても、エントリ置換が実施できなくなることを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
【００１７】
請求項４のマイクロプロセッサでは、検出回路は、保持回路、比較器およびフラグを有している。保持回路は、前回のエントリ置換が発生したときのＶＬＩＷ命令の格納先アドレスを保持する。比較器は、エントリ置換が発生したときのＶＬＩＷ命令の格納先アドレスと保持回路が保持しているアドレスとを比較する。フラグは、比較器により、アドレスの一致が検出されたときにセットされる。制御回路は、フラグがセットされているときに、プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択する。
【００１８】
比較器によるアドレスの比較結果に応じてフラグをセットするため、フラグを参照するだけで、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したか否かを判定できる。すなわち、フラグを設けることで、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したか否かを容易に認識できる。
請求項５のマイクロプロセッサでは、フラグは、ＶＬＩＷ命令の格納先アドレスの遷移に応答してリセットされる。フラグをリセットすることで、プライオリティビットを再度有効にできる。
【００１９】
請求項６のマイクロプロセッサでは、検出回路は、ＶＬＩＷ命令の格納先アドレスの遷移を検出するアドレス検出器を有している。フラグは、アドレス検出器により、ＶＬＩＷ命令の格納先アドレスの遷移が検出されたときにリセットされる。アドレス検出器を設けることで、フラグを容易にリセットできる。
請求項７のマイクロプロセッサでは、割込制御回路は、プログラムの実行を中断させるために発生される複数の割込要求を管理する。フラグは、エントリ置換のための割込要求を除く割込要求の受諾に応答してリセットされる。フラグをリセットすることで、プライオリティビットを再度有効にできる。
【００２０】
請求項８のマイクロプロセッサでは、割込制御回路は、受諾された割込要求の要因を検出する割込検出器を有している。フラグは、割込検出器により、受諾された割込要求はエントリ置換のための割込要求ではないことが検出されたときにリセットされる。割込検出器を設けることで、フラグを容易にリセットできる。
【００２１】
【発明の実施の形態】
以下、図面を用いて実施形態を説明する。
図１は、本発明のマイクロプロセッサの第１の実施形態を示している。この実施形態は、請求項１および請求項２に対応している。なお、図１は、マイクロプロセッサのアドレス変換に関する部分を示している。
マイクロプロセッサ１００は、仮想記憶方式を採用しており、ＣＰＵ１０および主記憶１８を有している。
【００２２】
ＣＰＵ１０は、ＤＡＴ１２（Ｄｙｎａｍｉｃ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ）を有し、主記憶１８内のプログラムに従って動作する。ＤＡＴ１２は、プログラムの実行中に仮想アドレスを物理アドレスに変換（アドレス変換）するハードウェア機構であり、ＴＬＢ１４（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄｅ  Ｂｕｆｆｅｒ）および制御回路１６を有している。
【００２３】
ＴＬＢ１４は、２ウェイセットアソシアティブ方式（セット数：ｎ）の連想メモリとして構成されている。ＴＬＢ１４は、アドレス変換により得られるアドレス変換情報が登録されるｎ個のエントリをウェイＷ０、Ｗ１毎に有している。エントリは、プライオリティビットＰＢをそれぞれ有している。プライオリティビットＰＢは、登録されるアドレス変換情報の常駐が必要なとき（優先度が高いとき）に”１”にセットされ、登録されるアドレス変換情報の常駐が比較的必要ないとき（優先度が低いとき）に”０”にリセットされる。
【００２４】
ＴＬＢ１４は、セット毎にＬＲＵビットＬＢを有している。ＬＲＵビットＬＢは、対応するセットにおいて、ウェイＷ０のエントリが参照されたときに”１”にセットされ、ウェイＷ１のエントリが参照されたときに”０”にリセットされる。
制御回路１６は、エントリ置換（エントリの登録内容の入れ替え）が発生したときに、仮想アドレスに対応するセットにおいて、ウェイＷ０のエントリのプライオリティビットＰＢとウェイＷ１のエントリのプライオリティビットＰＢとが共に”１”である場合（ケース１）、プライオリティビットＰＢを無視し、以前に参照されたエントリを置換対象エントリ（エントリ置換の対象）として選択する。ここで、アドレス変換表２０を用いたアドレス変換により得られたアドレス変換情報を、仮想アドレスに対応するセットにおけるエントリのいずれかに登録されているアドレス変換情報と入れ替えるエントリ置換は、仮想アドレスに対応するアドレス変換情報がＴＬＢ１４内に存在しない場合に発生する。
【００２５】
制御回路１６は、エントリ置換が発生したときに、仮想アドレスに対応するセットにおいて、ウェイＷ０のエントリのプライオリティビットＰＢとウェイＷ１のエントリのプライオリティビットＰＢとのいずれかが”０”である場合（ケース２）、プライオリティビットが”０”であるエントリを置換対象エントリとして選択する。
【００２６】
制御回路１６は、エントリ置換が発生したときに、仮想アドレスに対応するセットにおいて、ウェイＷ０のエントリのプライオリティビットＰＢとウェイＷ１のエントリのプライオリティビットＰＢとが共に”０”である場合（ケース３）、以前に参照されたエントリを置換対象エントリとして選択する。
制御回路１６の置換対象エントリの選択は、例えば、ＬＲＵアルゴリズムに基づいて実施される。すなわち、制御回路２２は、ケース１またはケース３において、仮想アドレスに対応するセットのＬＲＵビットＬＢが”１”である場合、ウェイＷ１のエントリを置換対象エントリとして選択する。制御回路２２は、ケース１またはケース３において、仮想アドレスに対応するセットのＬＲＵビットＬＢが”０”である場合、ウェイＷ０のエントリを置換対象エントリとして選択する。
【００２７】
主記憶１８は、各種プログラム、データなどと共に、アドレス変換表２０を格納している。アドレス変換表２０は、セグメントテーブル、ページテーブル等で構成される周知のテーブルである。
ここで、第１の実施形態におけるＴＬＢ制御について説明する。
図２は、第１の実施形態におけるＴＬＢ制御を示している。
【００２８】
以下のＴＬＢ制御は、ＣＰＵ１０が主記憶１８内のプログラム（オペレーティングシステム）に従って動作することで実施される。
ステップＳ１１０において、ＣＰＵ１０は、仮想アドレスに対応するアドレス変換情報がＴＬＢ１４内に存在するか否かを判定する。仮想アドレスに対応するアドレス変換情報がＴＬＢ１４内に存在する場合（ＴＬＢヒット）、即ちエントリ置換が発生しない場合、ＴＬＢ制御は完了する。仮想アドレスに対応するアドレス変換情報がＴＬＢ１４内に存在しない場合（ＴＬＢミス）、即ちエントリ置換が発生する場合、ＴＬＢ制御はステップＳ１２０に移行する。
【００２９】
ステップＳ１２０において、ＣＰＵ１０は、主記憶１８内のアドレス変換表２０を参照して、仮想アドレスから物理アドレスへの変換（アドレス変換）を実施する。この後、ＴＬＢ制御はステップＳ１３０に移行する。
ステップＳ１３０において、ＣＰＵ１０は、仮想アドレスに対応するセットにおいて、プライオリティビットＰＢが”０”であるエントリが１つ存在するか否かを判定する。プライオリティビットＰＢが”０”であるエントリが１つ存在する場合、ＴＬＢ制御はステップＳ１４０に移行する。全てのエントリのプライオリティビットＰＢが”０”である場合、または全てのエントリのプライオリティビットＰＢが”１”である場合、ＴＬＢ制御はステップＳ１５０に移行する。
【００３０】
ステップＳ１４０において、制御回路１６は、仮想アドレスに対応するセットにおいて、プライオリティビットＰＢが”０”であるエントリを置換対象エントリとして選択する。プライオリティビットＰＢが”１”であるエントリは、置換対象エントリとして選択されないため、常駐が必要なアドレス変換情報はＴＬＢ１４から追い出されない。このため、アドレス変換のためのオーバヘッドが低減される。この後、ＴＬＢ制御はステップＳ１６０に移行する。
【００３１】
ステップＳ１５０において、制御回路１６は、仮想アドレスに対応するセットにおいて、プライオリティビットＰＢに拘わらず、ＬＲＵビットＬＢを用いて（ＬＲＵアルゴリズムに基づいて）、以前に参照されたエントリを置換対象として選択する。全てのエントリのプライオリティビットＰＢが”１”である場合でも、置換対象エントリを選択するため、エントリ置換が実施できなくなることが防止される。プライオリティビットＰＢに拘わらず、以前に参照されたエントリが置換対象エントリとして選択されるため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大が抑制される。この後、ＴＬＢ制御はステップＳ１６０に移行する。
【００３２】
ステップＳ１６０において、ＣＰＵ１０は、ステップＳ１４０またはステップＳ１５０により選択された置換対象エントリに登録されているアドレス変換情報を追い出し、ステップＳ１２０により得られたアドレス変換情報を登録する。すなわち、エントリ置換が実施される。また、置換対象エントリのプライオリティビットＰＢは、アドレス変換表２０により、登録されるアドレス変換情報の常駐が指定されている場合、”１”にセットされる。置換対象エントリのプライオリティビットＰＢは、アドレス変換表２０により、登録されるアドレス変換情報の常駐が指定されていない場合、”０”にリセットされる。さらに、仮想アドレスに対応するセットのＬＲＵビットＬＢは、置換対象エントリがウェイＷ０のエントリである場合、”１”にセットされる。仮想アドレスに対応するセットのＬＲＵビットＬＢは、置換対象エントリがウェイＷ１のエントリである場合、”０”にリセットされる。これにより、ＴＬＢ制御は完了する。
【００３３】
以上、第１の実施形態では、次の効果が得られる。
全てのエントリのプライオリティビットＰＢが”１”である場合でも、エントリ置換を実施できる。すなわち、エントリ置換が実施できなくなることを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
【００３４】
最も以前に参照されたエントリがエントリ置換の対象として選択されるため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
プライオリティビットＰＢを参照してエントリ置換の対象を選択することで、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止できる。
【００３５】
プライオリティビットＰＢが”１”であるエントリは、エントリ置換の候補から除かれるため、常駐が必要なアドレス変換情報はＴＬＢ１４に常駐できる。すなわち、アドレス変換のためのオーバヘッドを低減できる。
図３は、本発明のマイクロプロセッサの第２の実施形態を示している。この実施形態は、請求項１〜請求項６に対応している。
【００３６】
マイクロプロセッサ２００は、１つのＶＬＩＷ命令に配置された複数の命令を並列的に実行するＶＬＩＷ方式を採用している。マイクロプロセッサ２００は、ＣＰＵ３０、割込制御回路ＩＮＴＣ１、ＳＤＲＡＭインタフェースＳＩＦを有している。
ＣＰＵ３０は、バスインタフェースＢＩＦ、システムユニットＳＵ、整数ユニットＩＵ、浮動小数点ユニットＦＵを有している。
【００３７】
バスインタフェースＢＩＦは、ＣＰＵ３０とマイクロプロセッサ２００内の周辺回路とのインタフェースとして動作する。
システムユニットＳＵは、ＤＡＴ１２ａ、命令キャッシュＩＣＡＣ、データキャッシュＤＣＡＣを有している。ＤＡＴ１２ａは、第１の実施形態のＴＬＢ１４および制御回路１６と同様のＴＬＢおよび制御回路を有している。命令キャッシュＩＣＡＣおよびデータキャッシュＤＣＡＣは、タグ領域とデータ領域とから構成され、ＴＬＢヒット時にアクセスの対象となるメモリである。
【００３８】
整数ユニットＩＵは、汎用処理のための整数命令を実行する。浮動小数点ユニットＦＵは、画像や音声などのメディア処理のための浮動小数点命令を実行する。
割込制御回路ＩＮＴＣ１は、プログラムの実行を中断させるために発生される複数の割込要求を管理する。ＳＤＲＡＭインタフェースＳＩＦは、ＳＤＲＡＭで構成される主記憶１８ａとのインタフェースとして動作する。主記憶１８ａは、第１の実施形態のアドレス変換表２０と同様のアドレス変換表を格納している。
【００３９】
図４は、第２の実施形態における割込制御回路の要部を示している。
割込制御回路ＩＮＴＣ１は、優先順位判定回路ＰＤＣおよび検出回路ＤＣ１を有している。
優先順位判定回路ＰＤＣは、活性化した割込要求信号を予め設定された優先順位やマスク情報を用いて受け付け、受け付けた割込要求信号に対応する割込コードＩＣＯＤＥを生成する。
【００４０】
検出回路ＤＣ１は、保持回路ＲＥＧ、論理積回路ＡＮＤ、比較器ＣＭＰ、アドレス検出器ＡＤおよびフラグＦを有している。
保持回路ＲＥＧは、例えば、ラッチ回路により構成され、ＴＬＢミス割込要求（エントリ置換のための割込要求）を示す割込要求信号ＴＬＢＩの非活性化に応答して、ＶＬＩＷ仮想アドレス（ＶＬＩＷ命令の格納先アドレス）ＶＶＡを取り込む。すなわち、保持回路ＲＥＧは、前回のＴＬＢミス時（エントリ置換が発生したとき）のＶＬＩＷ仮想アドレスを保持している。保持回路ＲＥＧは、保持しているアドレスＶＶＡ１を出力する。
【００４１】
論理積回路ＡＮＤは、割込要求信号ＴＬＢＩの活性化中に、ＶＬＩＷ仮想アドレスＶＶＡをアドレスＶＶＡ２として出力する。
比較器ＣＭＰは、アドレスＶＶＡ１とアドレスＶＶ２とを比較する。比較器ＣＭＰは、アドレスの一致を検出したときに、ワンショットパルス信号であるフラグセット信号ＦＳを出力する。
【００４２】
アドレス検出器ＡＤは、ＶＬＩＷ仮想アドレスＶＶＡの遷移を検出する。アドレス検出器ＡＤは、ＶＬＩＷ仮想アドレスＶＶＡの遷移を検出したときに、ワンショットパルス信号であるフラグリセット信号ＦＲ１を出力する。
フラグＦは、比較器ＣＭＰから出力されるフラグセット信号ＦＳの立ち上がりエッジに応答して、”１”にセットされる。フラグＦは、アドレス検出器ＡＤから出力されるフラグリセット信号ＦＲ１の立ち上がりエッジに応答して、”０”にリセットされる。これにより、フラグＦを参照するだけで、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したことが容易に認識される。
【００４３】
図５は、第２の実施形態におけるＴＬＢ制御を示している。
以下のＴＬＢ制御は、第１の実施形態と同様に、ＣＰＵ３０が主記憶１８ａ内のプログラム（オペレーティングシステム）に従って動作することで実施される。なお、図２で説明した処理と同一の処理には、同一の符号を付している。
まず、第１の実施形態と同様に、ステップＳ１１０、Ｓ１２０の処理が順次実施される。
【００４４】
ステップＳ２１０において、ＣＰＵ３０は、検出回路ＤＣ１のフラグＦが”１”であるか否かを判定する。フラグＦが”１”である場合、ＴＬＢ制御はステップＳ１５０に移行する。そして、第１の実施形態と同様に、ステップＳ１５０以降の処理が順次実施される。フラグＦが”０”である場合、ＴＬＢ制御はステップＳ１３０に移行する。そして、第１の実施形態と同様に、ステップＳ１３０以降の処理が順次実施される。
【００４５】
以上、第２の実施形態でも、第１の実施形態と同様の効果が得られる。さらに、同一のＶＬＩＷ命令内でエントリ置換が連続して発生した場合であっても、エントリ置換を実施できる。すなわち、２ウェイセットアソシアティブ方式のＴＬＢ１４を有するＶＬＩＷ方式のマイクロプロセッサ２００においても、エントリ置換が実施できなくなるのを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
【００４６】
比較器ＣＭＰによるアドレスの比較結果に応じてフラグＦをセットするため、フラグＦを参照するだけで、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したか否かを判定できる。すなわち、フラグＦを設けることで、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したか否かを容易に認識できる。
フラグＦをリセットすることで、プライオリティビットＰＢを再度有効にできる。アドレス検出器ＡＤを設けることで、フラグＦを容易にリセットできる。
【００４７】
図６は、本発明のマイクロプロセッサの第３の実施形態を示している。この実施形態は、請求項１〜請求項４、請求項７および請求項８に対応している。第２の実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明は省略する。
マイクロプロセッサ３００は、第２の実施形態の割込制御回路ＩＮＴＣ１に代えて、割込制御回路ＩＮＴＣ２を有している。その他の構成は、第２の実施形態のマイクロプロセッサ２００と同一である。
【００４８】
図７は、第３の実施形態における割込制御回路ＩＮＴＣ２の要部を示している。
割込制御回路ＩＮＴＣ２は、第２の実施形態の検出回路ＤＣ１に代えて、検出回路ＤＣ２を有している。検出回路ＤＣ２は、第２の実施形態のアドレス検出器ＡＤに代えて、割込検出器ＩＤを有している。その他の構成は、第２の実施形態の割込制御回路ＩＮＴＣ１と同一である。
【００４９】
割込検出器ＩＤは、優先順位判定回路ＰＤＣが生成した割込コードＩＣＯＤＥと割込要求信号ＴＬＢＩに対応する割込コードとの不一致を検出する。割込検出器ＩＤは、割込コードの不一致（受け付けられた割込要求信号は割込要求信号ＴＬＢＩではないこと）を検出したときに、ワンショットパルス信号であるフラグリセット信号ＦＲ２を出力する。
【００５０】
フラグＦは、比較器ＣＭＰから出力されるフラグセット信号ＦＳの立ち上がりエッジに応答して、”１”にセットされる。フラグＦは、割込検出器ＩＤから出力されるフラグリセット信号ＦＲ２の立ち上がりエッジに応答して、”０”にリセットされる。これにより、フラグＦを参照するだけで、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したことが容易に認識される。また、フラグＦがリセットされることで、プライオリティビットＰＢは、再度有効になる。
【００５１】
以上、第３の実施形態でも、第１および第２の実施形態と同様の効果が得られる。
なお、第１の実施形態では、ＴＬＢが２ウェイセットアソシアティブ方式で構成された例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、ＴＬＢは、４ウェイセットアソシアティブ方式で構成されてもよい。
【００５２】
図８は、４ウェイセットアソシアティブ方式のＴＬＢにおける置換対象エントリの選択を示している。
４つのウェイＷ０〜Ｗ３を有するＴＬＢは、セット毎に６ビットのＬＲＵビットＬＢ０１、ＬＢ０２、ＬＢ０３、ＬＢ１２、ＬＢ１３、ＬＢ２３を有している。ＬＲＵビットＬＢ０１は、ウェイＷ０のエントリとウェイＷ１のエントリとの関係を示している。ＬＲＵビットＬＢ０１が”１”であることは、ウェイＷ１のエントリがウェイＷ０のエントリより以前に参照されたことを表す。ＬＲＵビットＬＢ０１が”０”であることは、ウェイＷ０のエントリがウェイＷ１のエントリより以前に参照されたことを表す。同様に、ＬＲＵビットＬＢ０２、ＬＢ０３、ＬＢ１２、ＬＢ１３、ＬＢ２３は、ウェイＷ０のエントリとウェイＷ２のエントリとの関係、ウェイＷ０のエントリとウェイＷ３のエントリとの関係、ウェイＷ１のエントリとウェイＷ２のエントリとの関係、ウェイＷ１のエントリとウェイＷ３のエントリとの関係、ウェイＷ２のエントリとウェイＷ３のエントリとの関係をそれぞれ示している。仮想アドレスに対応するセットにおいて、ＬＲＵビットＬＢ０１、ＬＢ０２、ＬＢ０３、ＬＢ１２、ＬＢ１３、ＬＢ２３を用いることで、最も以前に参照されたエントリを置換対象エントリとして容易に選択できる。
【００５３】
また、例えば、仮想アドレスに対応するセットにおいて、ウェイＷ０のエントリのプライオリティビットＰＢのみがセットされた場合、図の右側に示すように、ウェイＷ０のエントリとは無関係のＬＲＵビットＬＢ１２、ＬＢ１３、ＬＢ２３のみを用いることで、ウェイＷ１〜Ｗ３のエントリのうち最も以前に参照されたエントリを置換対象エントリとして容易に選択できる。これにより、ウェイＷ０のエントリは、エントリ置換の候補から除外できる。図中、破線で示したＬＲＵビットＬＢ０１、ＬＢ０２、ＬＢ０３は、置換対象エントリの選択で使用されないことを示している。
【００５４】
第１の実施形態では、ＴＬＢがセットアソシアティブ方式で構成された例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、ＴＬＢは、フルアソシアティブ方式で構成されてもよい。
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【００５５】
【発明の効果】
請求項１のマイクロプロセッサでは、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止できる。すなわち、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。また、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
請求項２のマイクロプロセッサでは、常駐が必要なアドレス変換情報は変換索引バッファに常駐できる。すなわち、アドレス変換のためのオーバヘッドを低減できる。また、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
【００５６】
請求項３のマイクロプロセッサでは、２ウェイセットアソシアティブ方式の変換索引バッファを有するＶＬＩＷ方式のマイクロプロセッサにおいても、エントリ置換が実施できなくなることを防止できる。すなわち、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
請求項４のマイクロプロセッサでは、同一のＶＬＩＷ命令内でエントリ置換が連続して発生したか否かを容易に認識できる。
【００５７】
請求項５および請求項７のマイクロプロセッサでは、プライオリティビットを再度有効にできる。
請求項６および請求項８のマイクロプロセッサでは、フラグを容易にリセットできる。
【図面の簡単な説明】
【図１】本発明のマイクロプロセッサの第１の実施形態を示すブロック図である。
【図２】第１の実施形態におけるＴＬＢ制御を示すフローチャートである。
【図３】本発明のマイクロプロセッサの第２の実施形態を示すブロック図である。
【図４】第２の実施形態における割込制御回路の要部を示すブロック図である。
【図５】第２の実施形態におけるＴＬＢ制御を示すフローチャートである。
【図６】本発明のマイクロプロセッサの第３の実施形態を示すブロック図である。
【図７】第３の実施形態における割込制御回路の要部を示すブロック図である。
【図８】４ウェイセットアソシアティブ方式のＴＬＢにおける置換対象エントリの選択を示す説明図である。
【符号の説明】
１０、３０  ＣＰＵ
１２、１２ａ  動的アドレス変換機構（ＤＡＴ）
１４  変換索引バッファ（ＴＬＢ）
１６  制御回路
１８、１８ａ  主記憶
２０  アドレス変換表
１００、２００、３００  マイクロプロセッサ
ＡＤ  アドレス検出器
ＡＮＤ    論理積回路
ＢＩＦ    バスインタフェース
ＣＭＰ    比較器
ＤＣ１、ＤＣ２    検出回路
ＤＣＡＣ  データキャッシュ
Ｆ    フラグ
ＦＵ  浮動小数点ユニット
ＩＤ  割込検出器
ＩＣＡＣ  命令キャッシュ
ＩＮＴＣ１、ＩＮＴＣ２    割込制御回路
ＩＵ  整数ユニット
ＬＢ、ＬＢ０１、ＬＢ０２、ＬＢ０３、ＬＢ１２、ＬＢ１３、ＬＢ２３  ＬＲＵビット
ＰＢ  プライオリティビット
ＰＤＣ    優先順位判定回路
ＲＥＧ    保持回路
ＳＩＦ    ＳＤＲＡＭインタフェース
ＳＵ  システムユニット
Ｗ０、Ｗ１、Ｗ２、Ｗ３  ウェイ
【図１】
2004334267.tif 000003
【図２】
2004334267.tif 000004
【図３】
2004334267.tif 000005
【図４】
2004334267.tif 000006
【図５】
2004334267.tif 000007
【図６】
2004334267.tif 000008
【図７】
2004334267.tif 000009
【図８】
2004334267.tif 000010