(57)【要約】【課題】高速でアドレス変換を行うこと。【解決手段】ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）を物理アドレスＰＡに変換するためのオペランドＴＬＢデータを格納するＯＰ−ＴＬＢ１６１ａとＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）を物理アドレスＰＡに変換するためのインストラクションＴＬＢデータを格納するＩＦ−ＴＬＢ１６１ｂとが同一のＴＬＢ−ＲＡＭ１６０を共有してなるＴＬＢ１６１と、オペランドアクセスとインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させ、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡを待機レジスタ１９０に保持させて、オペランドアクセスの終了後、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）に基づいて、インストラクションアクセスを実行させる信号を生成する選択信号生成回路１１０とを備えている。【選択図】　　　図１
2004038806.tif 000002
【特許請求の範囲】
【請求項１】
オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、
前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、
前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段と、
を備えたことを特徴とするアドレス変換装置。
【請求項２】
前記オペランドアクセス制御手段は、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御手段は、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする請求項１に記載のアドレス変換装置。
【請求項３】
前記オペランドアクセス制御手段は、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項１または２に記載のアドレス変換装置。
【請求項４】
前記インストラクションアクセス制御手段は、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項１〜３のいずれか一つに記載のアドレス変換装置。
【請求項５】
オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを用いたアドレス変換方法であって、
前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御工程と、
前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御工程と、
を含むことを特徴とするアドレス変換方法。
【請求項６】
前記オペランドアクセス制御工程では、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御工程では、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする請求項５に記載のアドレス変換方法。
【請求項７】
前記オペランドアクセス制御工程では、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御工程では、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項５または６に記載のアドレス変換方法。
【請求項８】
前記インストラクションアクセス制御工程では、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項５〜７のいずれか一つに記載のアドレス変換方法。
【請求項９】
オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段とを備えた下位アドレス変換手段と、
前記オペランドアドレス変換バッファよりも高速アクセス可能であって、該オペランドアドレス変換バッファに格納されたオペランドアドレス変換データの一部を保持し、オペランドアクセスに応じて、オペランド仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位オペランドアドレス変換手段と、
前記インストラクションアドレス変換バッファよりも高速アクセス可能であって、該インストラクションアドレス変換バッファに格納されたインストラクションアドレス変換データの一部を保持し、インストラクションアクセスに応じて、インストラクション仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位インストラクションアドレス変換手段と、
を備えたことを特徴とする２階層アドレス変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想記憶方式のコンピュータシステムにおける仮想アドレスから物理アドレスへの変換を行うためのアドレス変換装置、アドレス変換方法および２階層アドレス変換装置に関するものであり、特に、高速でアドレス変換を行うことができるアドレス変換装置、アドレス変換方法および２階層アドレス変換装置に関するものである。
【０００２】
【従来の技術】
従来より、仮想記憶方式のコンピュータにおいては、仮想アドレス（Ｖｉｒｔｕａｌ　Ａｄｄｒｅｓｓ：ＶＡ）から物理アドレス（Ｐｈｙｓｉｃａｌ　Ａｄｄｒｅｓｓ：ＰＡ）へのアドレス変換を行うためのページテーブルと呼ばれる一覧表が用意されている。
【０００３】
ここで、図１０を参照して、上記アドレス変換について説明する。同図には、仮想記憶方式のコンピュータシステムが図示されている。このコンピュータシステムにおいて、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０は、主記憶装置２０にアクセスしつつ各種演算命令を実行するためのプロセッサである。
【０００４】
主記憶装置２０には、上述した仮想アドレスＶＡを物理アドレスＰＡに変換するためのページテーブル３０が格納されている。仮想アドレスＶＡは、コンピュータプログラムの中で指定されるアドレスである。一方、物理アドレスＰＡは、主記憶装置２０の物理的な記憶単位に付けられたアドレスである。
【０００５】
ページテーブル３０は、仮想アドレスＶＡと物理アドレスＰＡとを対応付けるテーブルである。なお、同図においては、仮想アドレスＶＡおよび物理アドレスＰＡは、「ａａａａ　００００　００００　００００」等のように１６進数で表現されている。
【０００６】
仮想アドレスＶＡは、図１１（ａ）に示したように、６４ビット構成＜６３：０＞（０ビット〜６３ビット）とされている。仮想アドレスＶＡ＜６３：０＞において、ＶＡ＜１２：０＞は、１３ビット構成のオフセット値（以下、Ｏｆｆ−ＳＥＴ＜１２：０＞と記載）である。
【０００７】
ＶＡ＜２１：１３＞は、９ビット構成のラムアクセスアドレス（以下、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞と記載）とされている。このＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞は、図１０に示した後述するＴＬＢ４０におけるアドレスを示しており、同図のＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞に対応している。
【０００８】
図１１（ａ）に戻り、ＶＡ＜６３：２２＞は、４２ビット構成のタグ（以下、ＴＬＢ−ＴＡＧ＜４１：０＞と記載：図１２（ａ）参照）とされており、ＴＬＢ４０（図１０参照）における索引として用いられる。また、図１１（ａ）に示したＴＬＢ−ＴＡＧ＜４１：０＞は、ＴＬＢ４０（図１０参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。
【０００９】
一方、図１０に示したページテーブル３０における物理アドレスＰＡは、図１１（ｂ）に示したように、４３ビット構成＜４２：０＞とされている。この物理アドレスＰＡ＜４２：０＞において、ＰＡ＜１２：０＞は、１３ビット構成のオフセット値（以下、Ｏｆｆ−ＳＥＴ＜１２：０＞と記載）とされており、図１１（ａ）に示したＯｆｆ−ＳＥＴ＜１２：０＞と同値である。ＰＡ＜４２：１３＞は、物理アドレスに対応するデータ（以下、ＴＬＢ−ＤＡＴＡ＜２９：０＞：図１２（ｂ）参照）とされている。
【００１０】
ここで、図１０に示したＴＬＢ４０が無い場合、原理的には、ＣＰＵ１０の命令処理部（図示略）は、アドレス変換が必要な度に、主記憶装置２０にアクセスし、仮想アドレスＶＡを用いて、ページテーブル３０を参照し、仮想アドレスＶＡを物理アドレスＰＡに変換しなければならない。
【００１１】
しかしながら、アドレス変換の度に主記憶装置２０にアクセスし、ページテーブル３０を参照していたのでは、アドレス変換に多くの処理時間を費やすことになり、処理速度の低下を招くという問題が発生する。
【００１２】
そこで、上記問題を回避するために、従来では、ＣＰＵ１０内の高速アクセス可能なＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）（図示略）にＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ　Ｌｏｏｋ−ａｓｉｄｅ　Ｂｕｆｆｅｒ：アドレス変換バッファ）４０を設けている。
【００１３】
このＴＬＢ４０は、例えば、５１２エントリを有している。ここで、ＴＬＢ４０においては、各値が「００００」、「２ａａａ　８０００　００００」等のように１６進数で表現されている。このＴＬＢ４０の各エントリには、ＲＡＭにおけるアドレスを示すＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞と、索引としてのＴＬＢ−ＴＡＧ＜４１：０＞（タグ）と、物理アドレスに対応するＴＬＢ−ＤＡＴＡ＜２９：０＞（データ）とがＴＬＢデータとして格納されている。
【００１４】
ＴＬＢ４０におけるＴＬＢ−ＴＡＧ＜４１：０＞は、仮想アドレスＶＡ（図１１（ａ）参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。また、ＴＬＢ４０におけるＴＬＢ−ＤＡＴＡ＜２９：０＞は、物理アドレスＰＡ（図１１（ｂ）参照）におけるＴＬＢ−ＤＡＴＡ＜２９：０＞に対応している。
【００１５】
上記構成において、主記憶装置２０へデータアクセスを行う場合、ＣＰＵ１０の命令処理部（図示略）は、命令コードに対応する仮想アドレスＶＡに含まれるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞（図１１（ａ）参照）を用いて、ＴＬＢ４０（図１０参照）を検索する。
【００１６】
つぎに、命令処理部（図示略）は、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞で示されるアドレスに格納されたＴＬＢ−ＴＡＧ＜４１：０＞（例えば、２ａａａ　８０００　００００）およびＴＬＢ−ＤＡＴＡ＜２９：０＞（例えば、００００　０７ｆ８）をＴＬＢ４０から読み出す。
【００１７】
つぎに、命令処理部は、上記ＴＬＢ−ＴＡＧ＜４１：０＞（例えば、２ａａａ　８０００　００００）と、仮想アドレスＶＡに含まれるＴＬＢ−ＴＡＧ＜４１：０＞（図１１（ａ）参照）とを比較する。
【００１８】
この場合、両者が一致したとすると、命令処理部は、ＨＩＴ（ＴＬＢヒット）として、ＴＬＢ４０から対応するＴＬＢ−ＤＡＴＡ＜２９：０＞（この場合、００００　０７ｆ８）を読み出し、図１１（ｂ）に示したように、このＴＬＢ−ＤＡＴＡ＜２９：０＞と、仮想アドレスＶＡに含まれるＯｆｆ−ＳＥＴ＜１２：０＞（図１１（ａ）参照）とを合成し、物理アドレスＰＡを生成する。
【００１９】
そして、命令処理部は、上記物理アドレスＰＡに基づいて、主記憶装置２０へのデータアクセスを行う。
【００２０】
また、命令処理部により、命令コードに基づいて命令が実行された後、実行結果データを主記憶装置２０に格納する場合にも、上述したＴＬＢ４０が参照され、仮想アドレスＶＡを物理アドレスＰＡに変換するためのアドレス変換処理が実行される。
【００２１】
また、ＴＬＢ４０のＴＬＢ−ＴＡＧ＜４１：０＞（図１０参照）と、仮想アドレスＶＡに含まれるＴＬＢ−ＴＡＧ＜４１：０＞（図１１（ａ）参照）とが一致しない場合（ＭＩＳＳ（ＴＬＢミス））には、ページテーブル３０が参照され、仮想アドレスＶＡが物理アドレスＰＡに変換される。
【００２２】
ＴＬＢミスの場合には、上記仮想アドレスＶＡ（図１１（ａ）参照）に含まれるＴＬＢ−ＴＡＧ＜４１：０＞と、物理アドレスＰＡ（図１１（ｂ）参照）に含まれるＴＬＢ−ＤＡＴＡ＜２９：０＞とを対とするＴＬＢデータが、ＴＬＢ４０に格納される。ここで格納先のアドレスは、仮想アドレスＶＡに含まれるＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞で示されるアドレスである。
【００２３】
これにより、次回以降で、当該仮想アドレスＶＡは、ＴＬＢ４０により物理アドレスＰＡに変換される。
【００２４】
ここで、仮想アドレスＶＡには、インストラクション仮想アドレスと、オペランド仮想アドレスという二種類が存在する。インストラクション仮想アドレスは、命令コードが格納された物理アドレスに対応している。従って、命令処理部が主記憶装置２０にアクセスし、命令コードを読み出す場合の仮想アドレスＶＡは、インストラクション仮想アドレスである。以下では、インストラクション仮想アドレスに関するアクセスをインストラクションアクセスと称する。
【００２５】
一方、オペランド仮想アドレスは、命令コードに基づいて命令が実行された場合に実行結果データを主記憶装置２０に対して読み込み／格納する場合の物理アドレスに対応している。従って、命令処理部が主記憶装置２０にアクセスし、実行結果データを格納する場合の仮想アドレスＶＡは、オペランド仮想アドレスである。以下では、オペランド仮想アドレスに関するアクセスをオペランドアクセスと称する。
【００２６】
同様にして、ＴＬＢ４０に格納されたＴＬＢデータも、オペランドＴＬＢデータと、インストラクションＴＬＢデータという二種類が存在する。オペランドＴＬＢデータは、上述したオペランド仮想アドレスに対応している。一方、インストラクションＴＬＢデータは、インストラクション仮想アドレスに対応している。
【００２７】
ここで、図１０においては、一つのＴＬＢ４０で、上述したオペランドＴＬＢデータとインストラクションＴＬＢデータとが混在している。ＴＬＢミスにより、ページテーブル３０にオペランドアクセスがあった場合には、ＴＬＢ４０にオペランドＴＬＢデータが格納される。
【００２８】
同様にして、ＴＬＢミスによりページテーブル３０にインストラクションアクセスがあった場合には、ＴＬＢ４０にインストラクションＴＬＢデータが格納される。
【００２９】
但し、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞が同じＴＬＢデータは、同じアドレス（番地）に格納される。従って、以前に格納されたＴＬＢデータは、インストラクションＴＬＢデータ、オペランドＴＬＢデータに関わらず、新しく格納されるＴＬＢデータに上書きされる。
【００３０】
【発明が解決しようとする課題】
ところで、従来においては、パイプライン制御の場合には、オペランドアクセスとインストラクションアクセスとが同時に発生するというアクセス衝突が発生する。
【００３１】
この場合には、一方のアクセスが有効とされ、他方のアクセスが破棄される。例えば、オペランドアクセスが有効の場合には、オペランドアクセスに対応させて、ＴＬＢ４０を用いたアドレス変換が実行される。一方、インストラクションアクセスについては、破棄されることによるタイムアウトの後、命令処理部によりリトライが行われるため、タイムアウトに伴う時間ロスにより、アドレス変換の処理速度が低下するという問題があった。
【００３２】
また、従来においては、図１０に示したＴＬＢ４０に、オペランドＴＬＢデータとインストラクションＴＬＢデータとが無差別に混在した状態で格納されているため、例えば、オペランドアクセスのＴＬＢミスが連続し、エントリの上書きが連続した場合、ＴＬＢ４０に占めるオペランドＴＬＢデータの割合が増える。
【００３３】
一方、インストラクションＴＬＢデータについては、ＴＬＢ４０に占めるインストラクションＴＬＢデータの割合が減少し、ＴＬＢヒット率が低下する。この場合には、ページテーブル３０へのアクセスが増えるため、結果的に処理速度が低下する。
【００３４】
本発明は、上記に鑑みてなされたもので、高速でアドレス変換を行うことができるアドレス変換装置、アドレス変換方法および２階層アドレス変換装置を提供することを目的とする。
【００３５】
【課題を解決するための手段】
上記目的を達成するために、本発明は、オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段と、を備えたことを特徴とする。
【００３６】
また、本発明は、オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを用いたアドレス変換方法であって、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御工程と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御工程と、を含むことを特徴とする。
【００３７】
かかる発明によれば、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【００３８】
また、本発明によれば、オペランドアドレス変換バッファとインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを設け、固定領域という制限を持たせたため、一方のアドレス変換バッファの容量が他方のアドレス変換バッファの容量よりも過剰に増えることが無くなり、アドレス変換のヒット率が安定するため、アドレス変換にかかる処理速度を安定化することができる。
【００３９】
また、本発明は、オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段とを備えた下位アドレス変換手段と、前記オペランドアドレス変換バッファよりも高速アクセス可能であって、該オペランドアドレス変換バッファに格納されたオペランドアドレス変換データの一部を保持し、オペランドアクセスに応じて、オペランド仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位オペランドアドレス変換手段と、前記インストラクションアドレス変換バッファよりも高速アクセス可能であって、該インストラクションアドレス変換バッファに格納されたインストラクションアドレス変換データの一部を保持し、インストラクションアクセスに応じて、インストラクション仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位インストラクションアドレス変換手段と、を備えたことを特徴とする。
【００４０】
この発明によれば、上位オペランドアドレス変換手段および上位インストラクションアドレス変換手段と、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させる下位アドレス変換手段とからなる２階層構成でアドレス変換を行うこととしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【００４１】
【発明の実施の形態】
以下、図面を参照して本発明にかかるアドレス変換装置、アドレス変換方法および２階層アドレス変換装置の実施の形態１および２について詳細に説明する。
【００４２】
（実施の形態１）
図１は、本発明にかかる実施の形態１の構成を示すブロック図である。この図には、仮想記憶方式のコンピュータシステムにおける仮想アドレスから物理アドレスへの変換を高速で行うためのアドレス変換装置１００が図示されている。なお、実際には、アドレス変換装置１００は、ＣＰＵ等のプロセッサの一部を構成している。
【００４３】
アドレス変換装置１００において、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ＜６３：０＞は、前述したオペランドアクセスに対応するオペランド仮想アドレスであり、図１１（ａ）に示した仮想アドレスＶＡと同一のデータ構造とされている。
【００４４】
一方、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ＜６３：０＞は、前述したインストラクションアクセスに対応するインストラクション仮想アドレスであり、仮想アドレスＶＡ（図１１（ａ）参照）と同一のデータ構造とされている。
【００４５】
アドレス変換装置１００では、後述するＴＬＢ１６１を用いて、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）やＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が、物理アドレスＰＡ（合成回路１８０の出力）に変換される。
【００４６】
図２は、図１に示したアドレス変換装置１００の前段に設けられた前段回路である。図２において、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）は、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡが出力されていること、すなわち、インストラクションアクセスが要求されていることを表す信号である。
【００４７】
このＩＦ＿ＧＯ（インストラクションアクセス要求信号）は、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が選択回路２３０から出力されるタイミングでラッチ回路１４０から出力され、選択信号生成回路１１０（図１参照）に入力される。
【００４８】
図２に示したフェッチポート２２０には、アクセスを要求されたポート０から順番にＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が待ち行列として格納される。選択部１４１は、フェッチポート２２０のポート０〜１５のうち実行できそうなポート（ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス））を選択する。
【００４９】
通常、選択部１４１は、最も優先されるポート（格納されたのが最も古いアドレスが格納されたポート）を選択する。但し、上記ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がアクセス中の場合、選択部１４１は、つぎに優先度が高いポートを選択する。また、当該ポートのアクセスが終了した場合には、当該ポートがクリアされる。
【００５０】
レジスタ２００の値は、現時点で最も優先されるべきＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がどのポートに格納されているかを示している。レジスタ２００が示すポートに対するアクセスが終了した場合、レジスタ２００は、値を１インクリメントする。例えば、今、レジスタ２００の値が０であるとし、当該ポート０に対するアクセスが終了すると、レジスタ２００は、値を０から１に更新する。
【００５１】
ここで、更新後の値１に対応するポート１に対するアクセスがすでに終了していた場合、レジスタ２００は、値を１から２にさらに更新する。例えば、レジスタ２００の値が０でポート０のアクセスが終了し、レジスタ２００の値が１に更新された場合であって、ポート１のアクセスがすでに終了していたとき（ポート０がアクセス中にポート１のアクセスが終了してしまったとき）、レジスタ２００は、値を１から２にさらに更新する。
【００５２】
比較回路２１０は、レジスタ２００の値と、選択部１４１で選択されたポートとを比較し、両信号が一致した場合、すなわち、選択部１４１で選択されたポートが現在有効なポートの中で最も優先されるべきポートである場合、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）を出力する。
【００５３】
つまり、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）が出力された場合には、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が、フェッチポート２２０でアクセスを待っているアドレスの中で最も優先されるアドレスであることを意味している。
【００５４】
また、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）は、図１に示した選択信号生成回路１１０に入力される。
【００５５】
選択信号生成回路１１０は、図３に示した第１の真理値表１１１ａに従って、入力信号の状態に応じて、選択信号としての出力信号を生成する回路である。入力信号は、ＯＰ＿ＧＯ（オペランドアクセス要求信号）、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）およびＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）である。
【００５６】
ＯＰ＿ＧＯ（オペランドアクセス要求信号）は、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が出力されていること、すなわち、オペランドアクセスが要求されていることを表す信号である。
【００５７】
ＩＦ＿ＧＯ（インストラクションアクセス要求信号）は、前述したように、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が出力されていること、すなわち、インストラクションアクセスが要求されていることを表す信号である。
【００５８】
ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）は、前述したように、フェッチポート２２０（図２参照）に格納されているＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）の中で最もアクセスが優先されるアドレスが選択されていることを表す信号である。このＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）が”１”である場合には、待機レジスタ１９０に格納された他のＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）よりも優先させるための信号となる。
【００５９】
ＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）は、待機レジスタ１９０に格納されているＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が有効であることを表す信号である。
【００６０】
一方、選択信号生成回路１１０の出力信号は、ＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）、ＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）、ＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）、ＷＲｅｇ＿Ｅ（格納許可信号）およびＷＲｅｇ＿ＶＬＤ＿ｉｎ（待機レジスタ有効信号）である。
【００６１】
ＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）は、後述する仮想アドレス選択回路１３０でＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）を選択させるための信号である。
【００６２】
ここで、第１の真理値表１１１ａ（図３参照）に示したように、ＯＰ＿ＧＯ（オペランドアクセス要求信号）およびＩＦ＿ＧＯ（インストラクションアクセス要求信号）が共に１である場合、すなわち、アクセス衝突が発生した場合には、オペランドアクセスを優先させるべく、ＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）が１とされる。
【００６３】
これは、インストラクションアクセスに比べて、オペランドアクセスのほうが、コンピュータシステムに要求されている切迫度が高く、システム性能の低下を防ぐためである。
【００６４】
ＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）は、仮想アドレス選択回路１３０でＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）を選択させるための信号である。
【００６５】
ＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）は、仮想アドレス選択回路１３０でＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）を選択させるための信号である。
【００６６】
ＷＲｅｇ＿Ｅ（格納許可信号）は、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）をＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）として待機レジスタ１９０に格納させることを許可するための信号である。
【００６７】
ＷＲｅｇ＿ＶＬＤ＿ｉｎ（待機レジスタ有効信号）は、待機レジスタ１９０に格納されているＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が有効であることを表す信号である。
【００６８】
なお、実施の形態１において、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）を用いない場合には、第１の真理値表１１１ａ（図３参照）に代えて、図４に示した第２の真理値表１１１ｂに基づいて、選択信号生成回路１１０が動作する。
【００６９】
図１に戻り、オア回路１２０は、ＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）とＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）とのオアをとり、領域選択信号ＡＲ＿ｓｅｌを出力する。
【００７０】
この領域選択信号ＡＲ＿ｓｅｌは、後述するＴＬＢ−ＲＡＭ１６０（ＴＬＢ１６１）におけるＯＰ（オペランド）領域１６０ａ（ＯＰ−ＴＬＢ１６１ａ）、ＩＦ（インストラクション）領域１６０ｂ（ＩＦ−ＴＬＢ１６１ｂ）のうち、いずれか一方を選択するための信号である。
【００７１】
具体的には、領域選択信号ＡＲ＿ｓｅｌが”１”である場合には、ＩＦ領域１６０ｂ（ＩＦ−ＴＬＢ１６１ｂ）が選択される。一方、領域選択信号ＡＲ＿ｓｅｌが”０”である場合には、ＯＰ領域１６０ａ（ＯＰ−ＴＬＢ１６１ａ）が選択される。
【００７２】
仮想アドレス選択回路１３０は、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）のうち、いずれかの仮想アドレスを選択するための回路である。
【００７３】
この仮想アドレス選択回路１３０は、アンド回路１３１、１３２、１３３およびオア回路１３４から構成されている。アンド回路１３１は、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）とＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）とのアンドをとる。
【００７４】
アンド回路１３２は、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）とＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）とのアンドをとる。アンド回路１３３は、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）とＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）とのアンドをとる。
【００７５】
オア回路１３４は、アンド回路１３１〜１３３の各出力のオアをとる。オア回路１３４の出力は、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）またはＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）であり、仮想アドレスＶＡ（図１１（ａ）参照）と同一のデータ構造とされている。
【００７６】
また、オア回路１３４の出力は、ラッチ回路１４２にラッチされる。さらに、ラッチ回路１４２の出力は、ラッチ回路１４３にラッチされる。
【００７７】
待機レジスタ１９０は、選択信号生成回路１１０からのＷＲｅｇ＿Ｅ（格納許可信号）に基づいて、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）をＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）として格納する。
【００７８】
ここで、待機レジスタ１９０にＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が格納される条件は、オペランドアクセスとインストラクションアクセスとのアクセス衝突が発生し、オペランドアクセスが優先され、インストラクションアクセスを待機させる場合等である。
【００７９】
ラムアクセスアドレス生成部１５０は、ＴＬＢ−ＲＡＭ１６０（ＴＬＢ１６１）のアドレスを示すＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）を生成する。
【００８０】
このＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）は、図５に示したように１０ビット構成とされており、ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞と領域選択信号ＡＲ＿ｓｅｌとから構成されている。ＲＡＭ−ＡＣＣＳ−ＡＤＲＳ＜８：０＞は、オア回路１３４（図１参照）からの仮想アドレスＶＡ＜２１：１３＞（図１１（ａ）参照）である。
【００８１】
領域選択信号ＡＲ＿ｓｅｌは、図１に示したＴＬＢ−ＲＡＭ１６０（ＴＬＢ１６１）におけるＯＰ（オペランド）領域１６０ａ（ＯＰ−ＴＬＢ１６１ａ）、ＩＦ（インストラクション）領域１６０ｂ（ＩＦ−ＴＬＢ１６１ｂ）のうち、いずれか一方を選択するための信号である。
【００８２】
ＴＬＢ−ＲＡＭ１６０には、ＴＬＢ１６１が設けられている。このＴＬＢ１６１は、図６に示したように、１０２４エントリ（０番地から１０２３番地）を有している。但し、ＴＬＢ−ＲＡＭ１６０は、ＯＰ領域１６０ａ（５１２エントリ）とＩＦ領域１６０ｂ（５１２エントリ）とに２分割されている。ここで、ＴＬＢ−ＲＡＭ１６０においては、各値が１６進数で表現されている。
【００８３】
ＯＰ領域１６０ａには、ＯＰ−ＴＬＢ１６１ａが設けられている。ＯＰ−ＴＬＢ１６１ａの各エントリには、ＴＬＢ−ＲＡＭ１６０におけるアドレス（エントリ）を示すＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）と、索引としてのＴＬＢ−ＴＡＧ＜４１：０＞（タグ）と、物理アドレスに対応するＴＬＢ−ＤＡＴＡ＜２９：０＞（データ）とがオペランドＴＬＢデータとして格納されている。なお、ＯＰ領域１６０ａには、オペランドＴＬＢデータのみが格納される。
【００８４】
ＯＰ−ＴＬＢ１６１ａにおけるＴＬＢ−ＴＡＧ＜４１：０＞は、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）としての仮想アドレスＶＡ（図１１（ａ）参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。また、ＯＰ−ＴＬＢ１６１ａにおけるＴＬＢ−ＤＡＴＡ＜２９：０＞は、物理アドレスＰＡ（図１１（ｂ）参照）におけるＴＬＢ−ＤＡＴＡ＜２９：０＞に対応している。
【００８５】
一方、ＩＦ領域１６０ｂには、ＩＦ−ＴＬＢ１６１ｂが設けられている。ＩＦ−ＴＬＢ１６１ｂの各エントリには、ＴＬＢ−ＲＡＭ１６０におけるアドレス（エントリ）を示すＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）と、索引としてのＴＬＢ−ＴＡＧ＜４１：０＞（タグ）と、物理アドレスに対応するＴＬＢ−ＤＡＴＡ＜２９：０＞（データ）とがインストラクションＴＬＢデータとして格納されている。なお、ＩＦ−ＴＬＢ１６１ｂには、インストラクションＴＬＢデータのみが格納される。
【００８６】
ＩＦ−ＴＬＢ１６１ｂにおけるＴＬＢ−ＴＡＧ＜４１：０＞は、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）としての仮想アドレスＶＡ（図１１（ａ）参照）におけるＴＬＢ−ＴＡＧ＜４１：０＞に対応している。また、ＩＦ−ＴＬＢ１６１ｂにおけるＴＬＢ−ＤＡＴＡ＜２９：０＞は、物理アドレスＰＡ（図１１（ｂ）参照）におけるＴＬＢ−ＤＡＴＡ＜２９：０＞に対応している。
【００８７】
図１に戻り、ラッチ回路１４４は、ＴＬＢ１６１からＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＴＡＧ＜４１：０＞を読み出し、これをラッチする。
【００８８】
ラッチ回路１４５は、ＴＬＢ１６１からＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＤＡＴＡ＜２９：０＞を読み出し、これをラッチする。
【００８９】
比較回路１７０は、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞と、ラッチ回路１４３からのＶＡ＜６３：２２＞（図１１（ａ）参照）とを比較し、両者が一致した場合、ＨＩＴ（ＴＬＢヒット）とする。ＴＬＢヒットの場合には、合成回路１８０は、ラッチ回路１４５からのＴＬＢ−ＤＡＴＡ＜２９：０＞と、ラッチ回路１４３からのＶＡ＜１２：０＞（図１１（ａ）参照）とを合成し、物理アドレスＰＡ＜４２：０＞を生成する。
【００９０】
一方、両者が一致しない場合、比較回路１７０は、ＭＩＳＳ（ＴＬＢミス）とする。この場合には、ページテーブル３０（図１０参照）が参照され、仮想アドレスＶＡが物理アドレスＰＡに変換される。
【００９１】
（オペランドアクセス）
つぎに、実施の形態１の動作について説明する。まず、オペランドアクセスのみの場合について説明する。この場合、図１に示したＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）がアンド回路１３１に入力されるとともに、”１”のＯＰ＿ＧＯ（オペランドアクセス要求信号）が選択信号生成回路１１０に入力される。
【００９２】
この場合、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）およびＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が共に”０”であるとすると、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）をアンド回路１３１へ出力する。
【００９３】
これにより、オア回路１３４からは、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が出力される。
【００９４】
つぎのタイミングでは、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）は、ラッチ回路１４２にラッチされる。
【００９５】
また、ラムアクセスアドレス生成部１５０は、図５に示したように、上記ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）に含まれるＲＡＭ−ＡＣＣＳ−ＡＤＤ＜８：０＞（ラムアクセスアドレス）と、領域選択信号ＡＲ＿ｓｅｌ（この場合、”０”）とからＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）を生成する。
【００９６】
この場合、領域選択信号ＡＲ＿ｓｅｌが”０”であるため、ＯＰ領域１６０ａ（ＯＰ−ＴＬＢ１６１ａ）が選択される。
【００９７】
つぎのタイミングでは、ラッチ回路１４２からのＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）がラッチ回路１４３にラッチされる。また、ラムアクセスアドレス生成部１５０で生成されたＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）を用いて、図６に示したＯＰ−ＴＬＢ１６１ａが参照され、当該ＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＴＡＧ＜４１：０＞がラッチ回路１４４にラッチされる。
【００９８】
また、ＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）を用いて、ＯＰ−ＴＬＢ１６１ａが参照され、当該ＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）に対応するＴＬＢ−ＤＡＴＡ＜２９：０＞がラッチ回路１４５にラッチされる。
【００９９】
これにより、比較回路１７０は、ラッチ回路１４３からのＶＡ＜６３：２２＞と、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞とを比較する。この場合、両者が一致したとすると、比較回路１７０は、ＨＩＴ（ＴＬＢヒット）とする。
【０１００】
さらに、合成回路１８０は、図１１（ｂ）に示したように、ラッチ回路１４３からのＶＡ＜１２：０＞と、ラッチ回路１４５からのＴＬＢ−ＤＡＴＡ＜２９：０＞とを合成し、物理アドレスＰＡ＜４２：０＞を生成する。そして、上記物理アドレスＰＡに基づいて、主記憶装置（図示略）へのデータアクセスが行われる。
【０１０１】
一方、ラッチ回路１４３からのＶＡ＜６３：２２＞と、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞とが一致しない場合、比較回路１７０は、ＭＩＳＳ（ＴＬＢミス）とする。
【０１０２】
この場合には、ページテーブル３０（図１０参照）が参照され、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が物理アドレスＰＡに変換される。
【０１０３】
さらに、ＴＬＢミスの場合には、上記ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）から得られるＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞およびＴＬＢ−ＴＡＧ＜４１：０＞と、物理アドレスＰＡ（図１１（ｂ）参照）に含まれるＴＬＢ−ＤＡＴＡ＜２９：０＞とを対としてオペランドＴＬＢデータとして、ＯＰ−ＴＬＢ１６１ａに格納される。
【０１０４】
これにより、次回以降で、当該ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）は、ＯＰ−ＴＬＢ１６１ａにより物理アドレスＰＡに変換される。
【０１０５】
（インストラクションアクセス）
つぎに、インストラクションアクセスのみの場合について説明する。この場合、図１に示したＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がアンド回路１３２および待機レジスタ１９０に入力されるとともに、”１”のＩＦ＿ＧＯ（インストラクションアクセス要求信号）が選択信号生成回路１１０に入力される。
【０１０６】
この場合、ＯＰ＿ＧＯ（オペランドアクセス要求信号）、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）およびＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が共に”０”であるとすると、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）をアンド回路１３２およびオア回路１２０へ出力する。
【０１０７】
これにより、オア回路１３４からは、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が出力される。オア回路１２０からは、”１”の領域選択信号ＡＲ＿ｓｅｌが出力される。
【０１０８】
つぎのタイミングでは、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）は、ラッチ回路１４２にラッチされる。
【０１０９】
また、ラムアクセスアドレス生成部１５０は、図５に示したように、上記ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）に含まれるＲＡＭ−ＡＣＣＳ−ＡＤＤ＜８：０＞（ラムアクセスアドレス）と、領域選択信号ＡＲ＿ｓｅｌ（この場合、”１”）とからＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）を生成する。
【０１１０】
この場合、領域選択信号ＡＲ＿ｓｅｌが”１”であるため、ＩＦ領域１６０ｂ（ＩＦ−ＴＬＢ１６１ｂ）が選択される。
【０１１１】
つぎのタイミングでは、ラッチ回路１４２からのＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がラッチ回路１４３にラッチされる。また、ラムアクセスアドレス生成部１５０で生成されたＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）が指定するアドレス（番地）に格納されているＴＬＢ−ＴＡＧ＜４１：０＞およびＴＬＢ−ＤＡＴＡ＜２９：０＞が読み出され、ラッチ回路１４４およびラッチ回路１４５にラッチされる。
【０１１２】
これにより、比較回路１７０は、ラッチ回路１４３からのＶＡ＜６３：２２＞と、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞とを比較する。この場合、両者が一致したとすると、比較回路１７０は、ＨＩＴ（ＴＬＢヒット）とする。
【０１１３】
さらに、合成回路１８０は、図１１（ｂ）に示したように、ラッチ回路１４３からのＶＡ＜１２：０＞と、ラッチ回路１４５からのＴＬＢ−ＤＡＴＡ＜２９：０＞とを合成し、物理アドレスＰＡ＜４２：０＞を生成する。そして、上記物理アドレスＰＡに基づいて、主記憶装置（図示略）から命令コードが読み出される。
【０１１４】
一方、ラッチ回路１４３からのＶＡ＜６３：２２＞と、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞とが一致しない場合、比較回路１７０は、ＭＩＳＳ（ＴＬＢミス）とする。
【０１１５】
この場合には、ページテーブル３０（図１０参照）が参照され、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が物理アドレスＰＡに変換される。
【０１１６】
さらに、ＴＬＢミスの場合には、上記ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）から得られるＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞およびＴＬＢ−ＴＡＧ＜４１：０＞と、物理アドレスＰＡ（図１１（ｂ）参照）に含まれるＴＬＢ−ＤＡＴＡ＜２９：０＞とを対としてインストラクションＴＬＢデータとして、ＩＦ−ＴＬＢ１６１ｂに格納される。
【０１１７】
これにより、次回以降で、当該ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）は、ＩＦ−ＴＬＢ１６１ｂにより物理アドレスＰＡに変換される。
【０１１８】
（アクセス衝突）
つぎに、パイプライン制御によりオペランドアクセスとインストラクションアクセスとが同時に発生した場合、すなわちアクセス衝突が発生した場合について説明する。この場合、図１に示したＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）がアンド回路１３１に入力されるとともに、”１”のＯＰ＿ＧＯ（オペランドアクセス要求信号）が選択信号生成回路１１０に入力される。
【０１１９】
さらに、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がアンド回路１３２に入力されるとともに、”１”のＩＦ＿ＧＯ（インストラクションアクセス要求信号）が選択信号生成回路１１０に入力される。
【０１２０】
この場合、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）およびＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が共に”０”であるとすると、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）をアンド回路１３１へ出力するとともに、”０”のＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）をアンド回路１３２へ出力する。
【０１２１】
すなわち、アクセス衝突が発生した場合には、インストラクションアクセスよりもオペランドアクセスが優先される。これにより、オア回路１３４からは、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）ＶＡが出力される。
【０１２２】
また、選択信号生成回路１１０からは、”１”のＷＲｅｇ＿Ｅ（格納許可信号）および”１”のＷＲｅｇ＿ＶＬＤ＿ｉｎ（待機レジスタ有効信号）が待機レジスタ１９０へ出力される。
【０１２３】
これにより、待機レジスタ１９０には、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）として格納される。
【０１２４】
以後、上述したオペランドアクセスの動作を経て、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が物理アドレスＰＡに変換されると、待機レジスタ１９０からは、”１”のＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が選択信号生成回路１１０へ出力されるとともに、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）がアンド回路１３３へ出力される。
【０１２５】
この場合、ＯＰ＿ＧＯ（オペランドアクセス要求信号）、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）およびＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）が共に”０”であるとすると、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）をアンド回路１３３およびオア回路１２０へ出力する。
【０１２６】
これにより、オア回路１３４からは、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が出力される。オア回路１２０からは、”１”の領域選択信号ＡＲ＿ｓｅｌが出力される。
【０１２７】
つぎのタイミングでは、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）は、ラッチ回路１４２にラッチされる。
【０１２８】
また、ラムアクセスアドレス生成部１５０は、図５に示したように、上記Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）に含まれるＲＡＭ−ＡＣＣＳ−ＡＤＤ＜８：０＞（ラムアクセスアドレス）と、領域選択信号ＡＲ＿ｓｅｌ（この場合、”１”）とからＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）を生成する。
【０１２９】
この場合、領域選択信号ＡＲ＿ｓｅｌが”１”であるため、ＩＦ領域１６０ｂ（ＩＦ−ＴＬＢ１６１ｂ）が選択される。
【０１３０】
つぎのタイミングでは、ラッチ回路１４２からのＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）がラッチ回路１４３にラッチされる。また、ラムアクセスアドレス生成部１５０で生成されたＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）が指定するアドレス（番地）に格納されているＴＬＢ−ＴＡＧ＜４１：０＞およびＴＬＢ−ＤＡＴＡ＜２９：０＞が読み出され、ラッチ回路１４４およびラッチ回路１４５にラッチされる。
【０１３１】
これにより、比較回路１７０は、ラッチ回路１４３からのＶＡ＜６３：２２＞と、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞とを比較する。この場合、両者が一致したとすると、比較回路１７０は、ＨＩＴ（ＴＬＢヒット）とする。
【０１３２】
さらに、合成回路１８０は、図１１（ｂ）に示したように、ラッチ回路１４３からのＶＡ＜１２：０＞と、ラッチ回路１４５からのＴＬＢ−ＤＡＴＡ＜２９：０＞とを合成し、物理アドレスＰＡ＜４２：０＞を生成する。そして、上記物理アドレスＰＡに基づいて、主記憶装置（図示略）から命令コードが読み出される。
【０１３３】
一方、ラッチ回路１４３からのＶＡ＜６３：２２＞と、ラッチ回路１４４からのＴＬＢ−ＴＡＧ＜４１：０＞とが一致しない場合、比較回路１７０は、ＭＩＳＳ（ＴＬＢミス）とする。
【０１３４】
この場合には、ページテーブル３０（図１０参照）が参照され、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が物理アドレスＰＡに変換される。
【０１３５】
さらに、ＴＬＢミスの場合には、上記Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）から得られるＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞およびＴＬＢ−ＴＡＧ＜４１：０＞と、物理アドレスＰＡ（図１１（ｂ）参照）に含まれるＴＬＢ−ＤＡＴＡ＜２９：０＞とを対としてインストラクションＴＬＢデータとして、ＩＦ−ＴＬＢ１６１ｂに格納される。
【０１３６】
これにより、次回以降で、当該Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）は、ＩＦ−ＴＬＢ１６１ｂにより物理アドレスＰＡに変換される。
【０１３７】
（ＩＦ＿ＧＯが入力された場合）
つぎに、待機レジスタ１９０にＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が格納されている状態で、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が物理アドレスＰＡに変換された後に、”１”のＩＦ＿ＧＯ（インストラクションアクセス要求信号）が選択信号生成回路１１０に入力された場合について説明する。
【０１３８】
この場合には、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）に対応するＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）よりも、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）のアドレス変換が優先される。
【０１３９】
すなわち、この場合には、ラッチ回路１４０（図２参照）からは、”１”のＩＦ＿ＧＯ（インストラクションアクセス要求信号）が選択信号生成回路１１０へ出力される。また、待機レジスタ１９０からは、”１”のＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が選択信号生成回路１１０へ出力される。なお、ＯＰ＿ＧＯ（オペランドアクセス要求信号）およびＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）は、共に”０”である。
【０１４０】
この場合、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）をアンド回路１３３へ出力する。また、選択信号生成回路１１０は、”０”のＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）をアンド回路１３２へ出力するとともに、”０”のＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）をアンド回路１３１へ出力する。
【０１４１】
これにより、オア回路１３４からは、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が出力される。
【０１４２】
また、選択信号生成回路１１０からは、”１”のＷＲｅｇ＿Ｅ（格納許可信号）および”１”のＷＲｅｇ＿ＶＬＤ＿ｉｎ（待機レジスタ有効信号）が待機レジスタ１９０へ出力される。
【０１４３】
これにより、待機レジスタ１９０には、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）として格納される。
【０１４４】
以後、前述した動作を経て、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が物理アドレスＰＡに変換されると、待機レジスタ１９０からは、”１”のＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が選択信号生成回路１１０へ出力されるとともに、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）がアンド回路１３３へ出力される。
【０１４５】
この場合、ＯＰ＿ＧＯ（オペランドアクセス要求信号）、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）およびＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）が共に”０”であるとすると、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）をアンド回路１３３およびオア回路１２０へ出力する。以後、前述した動作を経て、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が物理アドレスＰＡに変換される。
【０１４６】
（ＩＦ＿ＴＯＱが入力された場合）
つぎに、待機レジスタ１９０にＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が格納されている状態で、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が物理アドレスＰＡに変換された後に、”１”のＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）が選択信号生成回路１１０に入力された場合について説明する。
【０１４７】
この場合には、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）よりも、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）に対応するＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）のアドレス変換が優先される。
【０１４８】
すなわち、この場合には、比較回路２１０（図２参照）から”１”のＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）が選択信号生成回路１１０へ出力されるとともに、ラッチ回路１４０からも”１”のＩＦ＿ＧＯ（インストラクションアクセス要求信号）が選択信号生成回路１１０へ出力される。なお、ＯＰ＿ＧＯ（オペランドアクセス要求信号）は、”０”である。
【０１４９】
同時に、選択回路２３０（図２参照）からは、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がアンド回路１３２へ出力される。このとき、待機レジスタ１９０からは、”１”のＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）が選択信号生成回路１１０へ出力されるとともに、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）がアンド回路１３３へ出力される。
【０１５０】
選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）をアンド回路１３２およびオア回路１２０へ出力する。また、選択信号生成回路１１０は、”０”のＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）をアンド回路１３３へ出力する。
【０１５１】
これにより、オア回路１３４からは、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が出力される。オア回路１２０からは、”１”の領域選択信号ＡＲ＿ｓｅｌが出力される。
【０１５２】
つぎのタイミングでは、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）は、ラッチ回路１４２にラッチされる。以後、前述した動作を経て、ＴＬＢヒットの場合には、ＩＦ−ＴＬＢ１６１ｂに基づいて、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が物理アドレスＰＡに変換される。
【０１５３】
（ＩＦ＿ＴＯＱおよびＯＰ＿ＧＯが入力された場合）
つぎに、待機レジスタ１９０にＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が格納されている状態で、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が物理アドレスＰＡに変換された後に、”１”のＯＰ＿ＧＯ（オペランドアクセス要求信号）と、”１”のＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）とが選択信号生成回路１１０に同時に入力され、アクセス衝突が発生した場合について説明する。
【０１５４】
この場合には、待機レジスタ１９０に格納されたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が破棄され、代わりにＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）に対応するＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が格納され、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）のアドレス変換が優先される。
【０１５５】
この場合、アンド回路１３１には、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が入力されている。アンド回路１３２には、ＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）が入力されている。アンド回路１３３には、Ｗａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が入力されている。
【０１５６】
また、選択信号生成回路１１０には、ＯＰ＿ＧＯ（オペランドアクセス要求信号）、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）およびＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）およびＷＩＦ＿ＶＬＤ（待機レジスタ有効信号）（いずれも”１”）が入力される。
【０１５７】
これにより、選択信号生成回路１１０は、第１の真理値表１１１ａ（図３参照）に従って、”１”のＯＰ＿ＳＥＬ（オペランド仮想アドレス選択信号）、”０”のＩＦ＿ＳＥＬ（インストラクション仮想アドレス選択信号）および”０”のＷＩＦ＿ＳＥＬ（待機インストラクション仮想アドレス選択信号）をアンド回路１３１、アンド回路１３２およびアンド回路１３３へそれぞれ出力する。
【０１５８】
これにより、オア回路１３４からは、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が出力される。
【０１５９】
また、選択信号生成回路１１０からは、”１”のＷＲｅｇ＿Ｅ（格納許可信号）および”１”のＷＲｅｇ＿ＶＬＤ＿ｉｎ（待機レジスタ有効信号）が待機レジスタ１９０へ出力される。
【０１６０】
これにより、待機レジスタ１９０においては、先に格納されていたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が破棄され、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）に対応するＩＦ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（インストラクション仮想アドレス）がＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）として格納される。
【０１６１】
以後、上述したオペランドアクセスの動作を経て、ＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）が物理アドレスＰＡに変換されると、前述した動作を経て、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）に対応するＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）が物理アドレスＰＡに変換される。
【０１６２】
以上説明したように、実施の形態１によれば、ＯＰ−ＴＬＢ１６１ａへのオペランドアクセスとＩＦ−ＴＬＢ１６１ｂへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、待機レジスタ１９０に保持されたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）を物理アドレスＰＡに変換させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【０１６３】
また、実施の形態１によれば、ＯＰ−ＴＬＢ１６１ａとＩＦ−ＴＬＢ１６１ｂとがそれぞれ固定領域（５１２エントリ）をもって同一のＴＬＢ−ＲＡＭ１６０を共有してなるＴＬＢ１６１を設け、固定領域という制限を持たせたため、一方のアドレス変換バッファの容量が他方のアドレス変換バッファの容量よりも過剰に増えることが無くなり、アドレス変換のＴＬＢヒット率が安定するため、アドレス変換にかかる処理速度を安定化することができる。
【０１６４】
また、実施の形態１によれば、”０”の領域選択信号ＡＲ＿ｓｅｌ（オペランド選択フラグ）と、ＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）とに基づいて、ＯＰ−ＴＬＢ１６１ａへのオペランドアクセスを制御し、”１”の領域選択信号ＡＲ＿ｓｅｌ（インストラクション選択フラグ）と、ＲＡＭ−ＡＣＳ−ＡＤＤ＜９：０＞（ラムアクセスアドレス）とに基づいて、ＩＦ−ＴＬＢ１６１ｂへのインストラクションアクセスを制御することとしたのでＯＰ−ＴＬＢ１６１ａおよびＩＦ−ＴＬＢ１６１ｂへのアクセスを効率良く行うことができる。
【０１６５】
また、実施の形態１によれば、新規のオペランドアクセスと、待機レジスタ１９０に保持されたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）に対応するインストラクションアクセスとのアクセス衝突が発生した場合、新規のオペランドアクセスを優先的に実行させた後、待機レジスタ１９０に保持されたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）に対応するインストラクションアクセスを実行させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【０１６６】
また、実施の形態１によれば、ＩＦ＿ＴＯＱ（インストラクション待ち行列先頭優先信号）に対応するインストラクションアクセスと、待機レジスタ１９０に保持されたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）に対応するインストラクションアクセスとのアクセス衝突が発生した場合、前者のオペランドアクセスを優先的に実行させた後、待機レジスタ１９０に保持されたＷａｉｔ−ＩＦ＿ＶＡ（待機インストラクション仮想アドレス）に対応するインストラクションアクセスを実行させることとしたので、割り込みによるインストラクションアクセスを行うことができる。
【０１６７】
（実施の形態２）
図７は、本発明にかかる実施の形態２の構成を示すブロック図である。この図には、上位階層ＴＬＢとしての上位ＯＰアドレス変換部４００および上位ＩＦアドレス変換部５００と、下位階層ＴＬＢとしての下位アドレス変換部６００という２階層からなるアドレス変換装置３００が図示されている。なお、実際には、アドレス変換装置３００は、ＣＰＵ等のプロセッサの一部を構成している。
【０１６８】
下位アドレス変換部６００は、アドレス変換装置１００（図１参照）と同一の機能および構成を備えており、ＴＬＢ１６１（図１参照）と同一のＴＬＢ（図示略）を用いて、ページテーブル３０（図１０参照）のエントリを検索する。
【０１６９】
上位ＯＰアドレス変換部４００は、下位アドレス変換部６００のＴＬＢ（図示略）に格納されたオペランドＴＬＢデータのうち一部のオペランドＴＬＢデータをオペランドＴＬＢ（図示略）に格納している。
【０１７０】
この上位ＯＰアドレス変換部４００は、下位アドレス変換部６００に比べて高速処理が可能とされている。ＯＰ＿ＶＡ（オペランド仮想アドレス）は、オペランドアクセスに対応するオペランド仮想アドレスであり、図１１（ａ）に示した仮想アドレスＶＡと同一のデータ構造とされている。
【０１７１】
ＯＰ＿ＧＯ（オペランドアクセス要求信号）は、ＯＰ＿ＶＡ（オペランド仮想アドレス）が出力されていること、すなわち、オペランドアクセスが要求されていることを表す信号である。
【０１７２】
上位ＯＰアドレス変換部４００は、ＯＰ＿ＧＯ（オペランドアクセス要求信号）およびＯＰ＿ＶＡ（オペランド仮想アドレス）が入力された場合に、オペランドＴＬＢ（図示略）を検索し、ＨＩＴ（ＴＬＢヒット）すると、オペランドＴＬＢを用いて、ＯＰ＿ＶＡ（オペランド仮想アドレス）をＯＰ＿ＰＡ（オペランド物理アドレス）に変換する。
【０１７３】
また、上位ＯＰアドレス変換部４００は、ＭＩＳＳ（ＴＬＢミス）の場合、下位アドレス変換部６００にアドレス変換をさせるためのＯＰ＿ｍＴＬＢ＿ＧＯ（オペランドアクセス要求信号）を出力する。
【０１７４】
図８は、図７に示した上位ＯＰアドレス変換部４００の構成を示すブロック図である。同図において、タグＴＬＢ４０１およびデータＴＬＢ４０３は、上述したオペランドＴＬＢを構成している。
【０１７５】
タグＴＬＢ４０１は、３２（０〜３１）エントリとされており、、オペランドＴＬＢデータの一部であるＴＬＢ−ＴＡＧ＜４１：０＞（タグ）（図６参照）を格納している。一方、データＴＬＢ４０３は、タグＴＬＢ４０１と同様にして、３２（０〜３１）エントリとされており、オペランドＴＬＢデータの一部であるＴＬＢ−ＤＡＴＡ＜２９：０＞（図６参照）を格納している。
【０１７６】
比較回路４０２１〜４０２ｎ　は、タグＴＬＢ４０１の各エントリに対応して設けられ、各エントリに格納されているＴＬＢ−ＴＡＧ＜４１：０＞と、ＯＰ＿ＶＡ＜６３：２２＞（オペランド仮想アドレス）とをそれぞれ比較し、両者が一致した場合、ＨＩＴ（ＴＬＢヒット）とするための”１”のｍａｔｃｈ信号をアンド回路４０７へ出力する。
【０１７７】
アンド回路４０７は、ＯＰ＿ＧＯ（オペランドアクセス要求信号）とｍａｔｃｈ信号とのアンドをとり、”１”のｍａｔｃｈ信号の場合、ＨＩＴ（ＴＬＢヒット）とする。
【０１７８】
また、ＨＩＴ（ＴＬＢヒット）の場合、比較回路４０２１　〜４０２ｎ　のうち一致した比較回路から、選択信号ｓｅｌが選択回路４０６へ出力される。選択回路４０６は、データＴＬＢ４０３からのＴＬＢ−ＤＡＴＡ＜２９：０＞と、比較回路４０２１　〜４０２ｎ　のうちＨＩＴ（ＴＬＢヒット）に対応する比較回路からのＯＰ＿ＶＡ＜１２：０＞とを合成し、ＯＰ＿ＰＡ＜４２：０＞（オペランド物理アドレス）を生成する。
【０１７９】
図７に戻り、上位ＩＦアドレス変換部５００は、上位ＯＰアドレス変換部４００と同様の構成とされており、下位アドレス変換部６００のＴＬＢ（図示略）に格納されたインストラクションＴＬＢデータのうち一部のインストラクションＴＬＢデータをインストラクションＴＬＢ（図示略）に格納している。
【０１８０】
この上位ＩＦアドレス変換部５００は、下位アドレス変換部６００に比べて高速処理が可能とされている。ＩＦ＿ＶＡ（インストラクション仮想アドレス）は、インストラクションに対応するインストラクション仮想アドレスであり、図１１（ａ）に示した仮想アドレスＶＡと同一のデータ構造とされている。
【０１８１】
ＩＦ＿ＧＯ（インストラクションアクセス要求信号）は、ＩＦ＿ＶＡ（インストラクション仮想アドレス）が出力されていること、すなわち、インストラクションアクセスが要求されていることを表す信号である。
【０１８２】
上位ＩＦアドレス変換部５００は、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）およびＩＦ＿ＶＡ（インストラクション仮想アドレス）が入力された場合に、インストラクションＴＬＢ（図示略）を検索し、ＨＩＴ（ＴＬＢヒット）すると、インストラクションＴＬＢを用いて、ＩＦ＿ＶＡ（インストラクション仮想アドレス）をＩＦ＿ＰＡ（インストラクション物理アドレス）に変換する。
【０１８３】
また、上位ＩＦアドレス変換部５００は、ＭＩＳＳ（ＴＬＢミス）の場合、下位アドレス変換部６００にアドレス変換をさせるためのＩＦ＿ｍＴＬＢ＿ＧＯ（インストラクションアクセス要求信号）を出力する。
【０１８４】
ラッチ回路７００は、上位ＯＰアドレス変換部４００でＭＩＳＳ（ＴＬＢミス）の情報をラッチし、これをＯＰ＿ｍＴＬＢ＿ＧＯ（オペランドアクセス要求信号）として、下位アドレス変換部６００へ出力する。ラッチ回路７０１は、ＯＰ＿ＶＡ（オペランド仮想アドレス）をラッチする。
【０１８５】
ラッチ回路７０２は、上位ＩＦアドレス変換部５００でＭＩＳＳ（ＴＬＢミス）の情報をラッチし、これをＩＦ＿ｍＴＬＢ＿ＧＯ（インストラクションアクセス要求信号）として、下位アドレス変換部６００へ出力する。ラッチ回路７０３は、ＩＦ＿ＶＡ（インストラクション仮想アドレス）をラッチする。
【０１８６】
下位アドレス変換部６００は、ＯＰ＿ｍＴＬＢ＿ＧＯ（オペランドアクセス要求信号）およびＯＰ＿ＶＡ（オペランド仮想アドレス）が入力された場合、ＴＬＢ（図示略）を検索する。
【０１８７】
なお、図７に示したＯＰ＿ＧＯ（オペランドアクセス要求信号）およびＯＰ＿ＶＡ（オペランド仮想アドレス）は、図１に示したＯＰ＿ＧＯ（オペランドアクセス要求信号）およびＯＰ＿ＡＣＳ＿ＡＤＤ＿ＶＡ（オペランド仮想アドレス）に対応している。
【０１８８】
また、下位アドレス変換部６００は、ＯＰ＿ＶＡ（オペランド仮想アドレス）をＯＰ＿ＰＡ（オペランド物理アドレス）に変換できた場合、すなわち、オペランドアクセスに関してＨＩＴ（ＴＬＢヒット）の場合、ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）およびＯＰ＿ｕＴＬＢ＿ＷＲＴ（オペランドＴＬＢデータライト信号）を上位ＯＰアドレス変換部４００へ出力する。
【０１８９】
ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）は、図９に示したように、ＨＩＴ（ＴＬＢヒット）に対応するＴＬＢ−ＴＡＧ＜４１：０＞およびＴＬＢ−ＤＡＴＡ＜２９：０＞から構成されている。
【０１９０】
ＯＰ＿ｕＴＬＢ＿ＷＲＴ（オペランドＴＬＢデータライト信号）は、オペランドアクセスに対応するＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）を上位ＯＰアドレス変換部４００のオペランドＴＬＢ（タグＴＬＢ４０１、データＴＬＢ４０３：図８参照）へライトすべきことを指示するための信号である。
【０１９１】
ここで、図８に示したアンド回路４０５にＯＰ＿ｕＴＬＢ＿ＷＲＴ（オペランドＴＬＢデータライト信号）が入力された場合、エントリカウンタ４０４の出力とのアンドがとられ、アンド回路４０５からは、エントリに対応するＥｎｔｒｙ＿ＳＥＴ　ｅｎｂｌ信号がタグＴＬＢ４０１およびデータＴＬＢ４０３へ出力される。
【０１９２】
Ｅｎｔｒｙ＿ＳＥＴ　ｅｎｂｌ信号がタグＴＬＢ４０１に入力されると、タグＴＬＢ４０１のエントリには、ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）に含まれるＴＬＢ−ＴＡＧ＜４１：０＞が格納される。また、Ｅｎｔｒｙ＿ＳＥＴ　ｅｎｂｌ信号がデータＴＬＢ４０３に入力されると、データＴＬＢ４０３のエントリには、ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）に含まれるＴＬＢ−ＤＡＴＡ＜２９：０＞が格納される。
【０１９３】
図７に戻り、下位アドレス変換部６００は、ＩＦ＿ＶＡ（インストラクション仮想アドレス）をＩＦ＿ＰＡ（インストラクション物理アドレス）に変換できた場合、すなわち、インストラクションアクセスに関してＨＩＴ（ＴＬＢヒット）の場合、ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）およびＩＦ＿ｕＴＬＢ＿ＷＲＴ（インストラクションＴＬＢデータライト信号）を上位ＩＦアドレス変換部５００へ出力する。
【０１９４】
ＩＦ＿ｕＴＬＢ＿ＷＲＴ（インストラクションＴＬＢデータライト信号）は、インストラクションアクセスに対応するＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）を上位ＩＦアドレス変換部５００のインストラクションＴＬＢ（図示略）へライトすべきことを指示するための信号である。
【０１９５】
（オペランドアクセス）
つぎに、実施の形態２の動作について説明する。まず、オペランドアクセスのみの場合について説明する。
【０１９６】
この場合、図７に示したＯＰ＿ＶＡ（オペランド仮想アドレス）およびＯＰ＿ＧＯ（オペランドアクセス要求信号）が上位ＯＰアドレス変換部４００に入力されると、上位ＯＰアドレス変換部４００では、ＯＰ＿ＶＡ＜６３：２２＞と、オペランドＴＬＢに格納されたＴＬＢ−ＴＡＧ＜４１：０＞とが比較される。
【０１９７】
この場合、両者が一致したとすると、ＨＩＴ（ＴＬＢヒット）とされ、上位ＯＰアドレス変換部４００では、ＯＰ＿ＶＡ＜１２：０＞と、オペランドＴＬＢに格納されたＴＬＢ−ＤＡＴＡ＜２９：０＞とが合成され、ＯＰ＿ＰＡ＜４２：０＞（オペランド物理アドレス）が出力される。
【０１９８】
そして、上記ＯＰ＿ＰＡ（オペランド物理アドレス）に基づいて、主記憶装置（図示略）に対するデータの読み出しまたは書き込みが行われる。
【０１９９】
一方、上位ＯＰアドレス変換部４００で、ＯＰ＿ＶＡ＜６３：２２＞と、ＴＬＢ−ＴＡＧ＜４１：０＞とが一致しない場合、ＭＩＳＳ（ＴＬＢミス）とされる。これにより、ラッチ回路７００には、ＯＰ＿ｍＴＬＢ＿ＧＯ（オペランドアクセス要求信号）がラッチされ、ラッチ回路７０１には、ＯＰ＿ＶＡ（オペランド仮想アドレス）がラッチされる。
【０２００】
そして、つぎのタイミングでは、ＯＰ＿ｍＴＬＢ＿ＧＯ（オペランドアクセス要求信号）およびＯＰ＿ＶＡ（オペランド仮想アドレス）が下位アドレス変換部６００に入力され、下位アドレス変換部６００では、アドレス変換装置１００（図１参照）と同様にして、ＯＰ＿ＶＡ（オペランド仮想アドレス）に基づいて、ＴＬＢが検索される。
【０２０１】
ここで、オペランドアクセスに関してＨＩＴ（ＴＬＢヒット）の場合、下位アドレス変換部６００は、ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）およびＯＰ＿ｕＴＬＢ＿ＷＲＴ（オペランドＴＬＢデータライト信号）を上位ＯＰアドレス変換部４００へ出力する。
【０２０２】
これにより、上位ＯＰアドレス変換部４００では、オペランドＴＬＢにＴＬＢ−ＴＡＧ＜４１：０＞およびＴＬＢ−ＤＡＴＡ＜２９：０＞が格納される。次回以降で、当該ＯＰ＿ＶＡ（オペランド仮想アドレス）は、上位ＯＰアドレス変換部４００でＯＰ＿ＰＡ（オペランド物理アドレス）に変換される。
【０２０３】
（インストラクションアクセス）
つぎに、インストラクションアクセスのみの場合について説明する。この場合、図７に示したＩＦ＿ＶＡ（インストラクション仮想アドレス）およびＩＦ＿ＧＯ（インストラクションアクセス要求信号）が上位ＩＦアドレス変換部５００に入力されると、上位ＩＦアドレス変換部５００では、ＩＦ＿ＶＡ＜６３：２２＞と、インストラクションＴＬＢに格納されたＴＬＢ−ＴＡＧ＜４１：０＞が比較される。
【０２０４】
この場合、両者が一致したとすると、ＨＩＴ（ＴＬＢヒット）とされ、上位ＩＦアドレス変換部５００では、ＩＦ＿ＶＡ＜１２：０＞と、インストラクションＴＬＢに格納されたＴＬＢ−ＤＡＴＡ＜２９：０＞とが合成され、ＩＦ＿ＰＡ＜４２：０＞（インストラクション物理アドレス）が出力される。
【０２０５】
そして、上記ＩＦ＿ＰＡ（インストラクション物理アドレス）に基づいて、主記憶装置（図示略）から命令コードが読み出される。
【０２０６】
一方、上位ＩＦアドレス変換部５００で、ＩＦ＿ＶＡ＜６３：２２＞と、ＴＬＢ−ＴＡＧ＜４１：０＞とが一致しない場合、ＭＩＳＳ（ＴＬＢミス）とされる。これにより、ラッチ回路７０２には、ＩＦ＿ｍＴＬＢ＿ＧＯ（インストラクションアクセス要求信号）がラッチされ、ラッチ回路７０３には、ＩＦ＿ＶＡ（インストラクション仮想アドレス）がラッチされる。
【０２０７】
そして、つぎのタイミングでは、ＩＦ＿ｍＴＬＢ＿ＧＯ（インストラクションアクセス要求信号）およびＩＦ＿ＶＡ（インストラクション仮想アドレス）が下位アドレス変換部６００に入力され、下位アドレス変換部６００では、アドレス変換装置１００（図１参照）と同様にして、ＩＦ＿ＶＡ（インストラクション仮想アドレス）に基づいて、ＴＬＢが検索される。
【０２０８】
ここで、インストラクションアクセスに関してＨＩＴ（ＴＬＢヒット）の場合、下位アドレス変換部６００は、ＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹ（ＴＬＢデータ）およびＩＦ＿ｕＴＬＢ＿ＷＲＴ（インストラクションＴＬＢデータライト信号）を上位ＩＦアドレス変換部５００へ出力する。
【０２０９】
これにより、上位ＩＦアドレス変換部５００では、インストラクションＴＬＢにＴＬＢ−ＴＡＧ＜４１：０＞およびＴＬＢ−ＤＡＴＡ＜２９：０＞が格納される。次回以降で、当該ＩＦ＿ＶＡ（インストラクション仮想アドレス）は、上位ＩＦアドレス変換部５００でＩＦ＿ＰＡ（インストラクション物理アドレス）に変換される。
【０２１０】
（アクセス衝突）
つぎに、パイプライン制御によりオペランドアクセスとインストラクションアクセスとが同時に発生した場合、すなわちアクセス衝突が発生した場合について説明する。
【０２１１】
この場合には、図７に示したＯＰ＿ＧＯ（オペランドアクセス要求信号）およびＯＰ＿ＶＡ（オペランド仮想アドレス）が上位ＯＰアドレス変換部４００に入力されるとともに、ＩＦ＿ＧＯ（インストラクションアクセス要求信号）およびＩＦ＿ＶＡ（インストラクション仮想アドレス）が上位ＩＦアドレス変換部５００に入力される。
【０２１２】
この場合、上位ＯＰアドレス変換部４００および上位ＩＦアドレス変換部５００においては、独立的に動作するため、共にＴＬＢヒットの場合、並列的にアドレス変換が可能となる。
【０２１３】
以上説明したように、実施の形態２によれば、上位ＯＰアドレス変換部４００および上位ＩＦアドレス変換部５００と、オペランドアクセスとインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、待機レジスタ（図示略）に保持された待機インストラクション仮想アドレスを物理アドレスに変換させる下位アドレス変換部６００とからなる２階層構成でアドレス変換を行うこととしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【０２１４】
以上本発明にかかる実施の形態１および２について図面を参照して詳述してきたが、具体的な構成例はこれらの実施の形態１および２に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０２１５】
（付記１）オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、
前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、
前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段と、
を備えたことを特徴とするアドレス変換装置。
【０２１６】
（付記２）前記オペランドアクセス制御手段は、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御手段は、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする付記１に記載のアドレス変換装置。
【０２１７】
（付記３）前記オペランドアクセス制御手段は、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記１または２に記載のアドレス変換装置。
【０２１８】
（付記４）前記インストラクションアクセス制御手段は、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記１〜３のいずれか一つに記載のアドレス変換装置。
【０２１９】
（付記５）複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスとオペランドアクセスとのアクセス衝突が発生した場合、前記オペランドアクセス制御手段は、前記オペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記保持されたインストラクション仮想アドレスを破棄し、前記高優先度インストラクションアクセスに対応するインストラクション仮想アドレスを保持させ、前記オペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応する高優先度インストラクションアクセスを実行させることを特徴とする付記１〜４のいずれか一つに記載のアドレス変換装置。
【０２２０】
（付記６）前記インストラクションアクセス制御手段は、前記インストラクションアクセスに対応するインストラクション仮想アドレスが保持された状態で、新たなインストラクションアクセスの要求があった場合、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを優先的に実行し、新たなインストラクションアクセスに対応するインストラクション仮想アドレスを保持させ、先のインストラクションアクセスの終了後、保持された前記インストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記１〜５のいずれか一つに記載のアドレス変換装置。
【０２２１】
（付記７）オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを用いたアドレス変換方法であって、
前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御工程と、
前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御工程と、
を含むことを特徴とするアドレス変換方法。
【０２２２】
（付記８）前記オペランドアクセス制御工程では、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御工程では、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする付記７に記載のアドレス変換方法。
【０２２３】
（付記９）前記オペランドアクセス制御工程では、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御工程では、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記７または８に記載のアドレス変換方法。
【０２２４】
（付記１０）前記インストラクションアクセス制御工程では、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記７〜９のいずれか一つに記載のアドレス変換方法。
【０２２５】
（付記１１）オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段とを備えた下位アドレス変換手段と、
前記オペランドアドレス変換バッファよりも高速アクセス可能であって、該オペランドアドレス変換バッファに格納されたオペランドアドレス変換データの一部を保持し、オペランドアクセスに応じて、オペランド仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位オペランドアドレス変換手段と、
前記インストラクションアドレス変換バッファよりも高速アクセス可能であって、該インストラクションアドレス変換バッファに格納されたインストラクションアドレス変換データの一部を保持し、インストラクションアクセスに応じて、インストラクション仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位インストラクションアドレス変換手段と、
を備えたことを特徴とする２階層アドレス変換装置。
【０２２６】
（付記１２）前記オペランドアクセス制御手段は、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御手段は、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする付記１１に記載の２階層アドレス変換装置。
【０２２７】
（付記１３）前記オペランドアクセス制御手段は、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記１１または１２に記載の２階層アドレス変換装置。
【０２２８】
（付記１４）複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記１１〜１３のいずれか一つに記載の２階層アドレス変換装置。
【０２２９】
【発明の効果】
以上説明したように、本発明によれば、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができるという効果を奏する。
【０２３０】
また、本発明によれば、オペランドアドレス変換バッファとインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを設け、固定領域という制限を持たせたため、一方のアドレス変換バッファの容量が他方のアドレス変換バッファの容量よりも過剰に増えることが無くなり、アドレス変換のヒット率が安定するため、アドレス変換にかかる処理速度を安定化することができるという効果を奏する。
【０２３１】
また、本発明によれば、オペランド選択フラグと、オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、インストラクション選択フラグと、インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することとしたのでオペランドアドレス変換バッファおよびインストラクションアドレス変換バッファへのアクセスを効率良く行うことができるという効果を奏する。
【０２３２】
また、本発明によれば、新規のオペランドアクセスと、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、新規のオペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができるという効果を奏する。
【０２３３】
また、本発明によれば、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、高優先度インストラクションアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることとしたので、割り込みによるインストラクションアクセスを行うことができるという効果を奏する。
【０２３４】
また、本発明によれば、上位オペランドアドレス変換手段および上位インストラクションアドレス変換手段と、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させる下位アドレス変換手段とからなる２階層構成でアドレス変換を行うこととしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる実施の形態１の構成を示すブロック図である。
【図２】同実施の形態１の構成を示すブロック図である。
【図３】図１に示した選択信号生成回路１１０における第１の真理値表１１１ａを示す図である。
【図４】図１に示した選択信号生成回路１１０における第２の真理値表１１１ｂを示す図である。
【図５】図１に示したＲＡＭ−ＡＣＳ−ＡＤＤのデータ構造を示す図である。
【図６】図１に示したＴＬＢ−ＲＡＭ１６０の構成を示す図である。
【図７】本発明にかかる実施の形態２の構成を示すブロック図である。
【図８】図７に示した上位ＯＰアドレス変換部４００の構成を示すブロック図である。
【図９】図７に示したＰＡＧＥ＿ＴＡＢＬＥ＿ＥＮＴＲＹのデータ構造を示す図である。
【図１０】従来のアドレス変換を説明するブロック図である。
【図１１】仮想アドレスＶＡおよび物理アドレスＰＡのデータ構造を示す図である。
【図１２】ＴＬＢ−ＴＡＧおよびＴＬＢ−ＤＡＴＡのデータ構造を示す図である。
【符号の説明】
１００　アドレス変換装置
１１０　選択信号生成回路
１３０　仮想アドレス選択回路
１５０　ラムアクセスアドレス生成部
１６０　ＴＬＢ−ＲＡＭ
１６０ａ　ＯＰ領域
１６０ｂ　ＩＦ領域
１６１　ＴＬＢ
１６１ａ　ＯＰ−ＴＬＢ
１６１ｂ　ＩＦ−ＴＬＢ
１７０　比較回路
１８０　合成回路
１９０　待機レジスタ
３００　アドレス変換装置
４００　上位ＯＰアドレス変換部
５００　上位ＩＦアドレス変換部
６００　下位アドレス変換部
【図１】
2004038806.tif 000003
【図２】
2004038806.tif 000004
【図３】
2004038806.tif 000005
【図４】
2004038806.tif 000006
【図５】
2004038806.tif 000007
【図６】
2004038806.tif 000008
【図７】
2004038806.tif 000009
【図８】
2004038806.tif 000010
【図９】
2004038806.tif 000011
【図１０】
2004038806.tif 000012
【図１１】
2004038806.tif 000013
【図１２】
2004038806.tif 000014