JP3970705B2 - アドレス変換装置、アドレス変換方法および2階層アドレス変換装置 - Google Patents

アドレス変換装置、アドレス変換方法および2階層アドレス変換装置 Download PDF

Info

Publication number
JP3970705B2
JP3970705B2 JP2002197952A JP2002197952A JP3970705B2 JP 3970705 B2 JP3970705 B2 JP 3970705B2 JP 2002197952 A JP2002197952 A JP 2002197952A JP 2002197952 A JP2002197952 A JP 2002197952A JP 3970705 B2 JP3970705 B2 JP 3970705B2
Authority
JP
Japan
Prior art keywords
instruction
address
access
operand
tlb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002197952A
Other languages
English (en)
Other versions
JP2004038806A (ja
Inventor
琢麻 千葉
強 本車田
巌 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002197952A priority Critical patent/JP3970705B2/ja
Priority to US10/330,322 priority patent/US6915406B2/en
Publication of JP2004038806A publication Critical patent/JP2004038806A/ja
Application granted granted Critical
Publication of JP3970705B2 publication Critical patent/JP3970705B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Description

【0001】
【発明の属する技術分野】
本発明は、仮想記憶方式のコンピュータシステムにおける仮想アドレスから物理アドレスへの変換を行うためのアドレス変換装置、アドレス変換方法および2階層アドレス変換装置に関するものであり、特に、高速でアドレス変換を行うことができるアドレス変換装置、アドレス変換方法および2階層アドレス変換装置に関するものである。
【0002】
【従来の技術】
従来より、仮想記憶方式のコンピュータにおいては、仮想アドレス(Virtual Address:VA)から物理アドレス(Physical Address:PA)へのアドレス変換を行うためのページテーブルと呼ばれる一覧表が用意されている。
【0003】
ここで、図10を参照して、上記アドレス変換について説明する。同図には、仮想記憶方式のコンピュータシステムが図示されている。このコンピュータシステムにおいて、CPU(Central Processing Unit)10は、主記憶装置20にアクセスしつつ各種演算命令を実行するためのプロセッサである。
【0004】
主記憶装置20には、上述した仮想アドレスVAを物理アドレスPAに変換するためのページテーブル30が格納されている。仮想アドレスVAは、コンピュータプログラムの中で指定されるアドレスである。一方、物理アドレスPAは、主記憶装置20の物理的な記憶単位に付けられたアドレスである。
【0005】
ページテーブル30は、仮想アドレスVAと物理アドレスPAとを対応付けるテーブルである。なお、同図においては、仮想アドレスVAおよび物理アドレスPAは、「aaaa 0000 0000 0000」等のように16進数で表現されている。
【0006】
仮想アドレスVAは、図11(a)に示したように、64ビット構成<63:0>(0ビット〜63ビット)とされている。仮想アドレスVA<63:0>において、VA<12:0>は、13ビット構成のオフセット値(以下、Off−SET<12:0>と記載)である。
【0007】
VA<21:13>は、9ビット構成のラムアクセスアドレス(以下、RAM−ACCS−ADRS<8:0>と記載)とされている。このRAM−ACCS−ADRS<8:0>は、図10に示した後述するTLB40におけるアドレスを示しており、同図のRAM−ACCS−ADRS<8:0>に対応している。
【0008】
図11(a)に戻り、VA<63:22>は、42ビット構成のタグ(以下、TLB−TAG<41:0>と記載:図12(a)参照)とされており、TLB40(図10参照)における索引として用いられる。また、図11(a)に示したTLB−TAG<41:0>は、TLB40(図10参照)におけるTLB−TAG<41:0>に対応している。
【0009】
一方、図10に示したページテーブル30における物理アドレスPAは、図11(b)に示したように、43ビット構成<42:0>とされている。この物理アドレスPA<42:0>において、PA<12:0>は、13ビット構成のオフセット値(以下、Off−SET<12:0>と記載)とされており、図11(a)に示したOff−SET<12:0>と同値である。PA<42:13>は、物理アドレスに対応するデータ(以下、TLB−DATA<29:0>:図12(b)参照)とされている。
【0010】
ここで、図10に示したTLB40が無い場合、原理的には、CPU10の命令処理部(図示略)は、アドレス変換が必要な度に、主記憶装置20にアクセスし、仮想アドレスVAを用いて、ページテーブル30を参照し、仮想アドレスVAを物理アドレスPAに変換しなければならない。
【0011】
しかしながら、アドレス変換の度に主記憶装置20にアクセスし、ページテーブル30を参照していたのでは、アドレス変換に多くの処理時間を費やすことになり、処理速度の低下を招くという問題が発生する。
【0012】
そこで、上記問題を回避するために、従来では、CPU10内の高速アクセス可能なRAM(Random Access Memory)(図示略)にTLB(Translation Look-aside Buffer:アドレス変換バッファ)40を設けている。
【0013】
このTLB40は、例えば、512エントリを有している。ここで、TLB40においては、各値が「0000」、「2aaa 8000 0000」等のように16進数で表現されている。このTLB40の各エントリには、RAMにおけるアドレスを示すRAM−ACCS−ADRS<8:0>と、索引としてのTLB−TAG<41:0>(タグ)と、物理アドレスに対応するTLB−DATA<29:0>(データ)とがTLBデータとして格納されている。
【0014】
TLB40におけるTLB−TAG<41:0>は、仮想アドレスVA(図11(a)参照)におけるTLB−TAG<41:0>に対応している。また、TLB40におけるTLB−DATA<29:0>は、物理アドレスPA(図11(b)参照)におけるTLB−DATA<29:0>に対応している。
【0015】
上記構成において、主記憶装置20へデータアクセスを行う場合、CPU10の命令処理部(図示略)は、命令コードに対応する仮想アドレスVAに含まれるRAM−ACCS−ADRS<8:0>(図11(a)参照)を用いて、TLB40(図10参照)を検索する。
【0016】
つぎに、命令処理部(図示略)は、RAM−ACCS−ADRS<8:0>で示されるアドレスに格納されたTLB−TAG<41:0>(例えば、2aaa 8000 0000)およびTLB−DATA<29:0>(例えば、0000 07f8)をTLB40から読み出す。
【0017】
つぎに、命令処理部は、上記TLB−TAG<41:0>(例えば、2aaa 8000 0000)と、仮想アドレスVAに含まれるTLB−TAG<41:0>(図11(a)参照)とを比較する。
【0018】
この場合、両者が一致したとすると、命令処理部は、HIT(TLBヒット)として、TLB40から対応するTLB−DATA<29:0>(この場合、0000 07f8)を読み出し、図11(b)に示したように、このTLB−DATA<29:0>と、仮想アドレスVAに含まれるOff−SET<12:0>(図11(a)参照)とを合成し、物理アドレスPAを生成する。
【0019】
そして、命令処理部は、上記物理アドレスPAに基づいて、主記憶装置20へのデータアクセスを行う。
【0020】
また、命令処理部により、命令コードに基づいて命令が実行された後、実行結果データを主記憶装置20に格納する場合にも、上述したTLB40が参照され、仮想アドレスVAを物理アドレスPAに変換するためのアドレス変換処理が実行される。
【0021】
また、TLB40のTLB−TAG<41:0>(図10参照)と、仮想アドレスVAに含まれるTLB−TAG<41:0>(図11(a)参照)とが一致しない場合(MISS(TLBミス))には、ページテーブル30が参照され、仮想アドレスVAが物理アドレスPAに変換される。
【0022】
TLBミスの場合には、上記仮想アドレスVA(図11(a)参照)に含まれるTLB−TAG<41:0>と、物理アドレスPA(図11(b)参照)に含まれるTLB−DATA<29:0>とを対とするTLBデータが、TLB40に格納される。ここで格納先のアドレスは、仮想アドレスVAに含まれるRAM−ACCS−ADRS<8:0>で示されるアドレスである。
【0023】
これにより、次回以降で、当該仮想アドレスVAは、TLB40により物理アドレスPAに変換される。
【0024】
ここで、仮想アドレスVAには、インストラクション仮想アドレスと、オペランド仮想アドレスという二種類が存在する。インストラクション仮想アドレスは、命令コードが格納された物理アドレスに対応している。従って、命令処理部が主記憶装置20にアクセスし、命令コードを読み出す場合の仮想アドレスVAは、インストラクション仮想アドレスである。以下では、インストラクション仮想アドレスに関するアクセスをインストラクションアクセスと称する。
【0025】
一方、オペランド仮想アドレスは、命令コードに基づいて命令が実行された場合に実行結果データを主記憶装置20に対して読み込み/格納する場合の物理アドレスに対応している。従って、命令処理部が主記憶装置20にアクセスし、実行結果データを格納する場合の仮想アドレスVAは、オペランド仮想アドレスである。以下では、オペランド仮想アドレスに関するアクセスをオペランドアクセスと称する。
【0026】
同様にして、TLB40に格納されたTLBデータも、オペランドTLBデータと、インストラクションTLBデータという二種類が存在する。オペランドTLBデータは、上述したオペランド仮想アドレスに対応している。一方、インストラクションTLBデータは、インストラクション仮想アドレスに対応している。
【0027】
ここで、図10においては、一つのTLB40で、上述したオペランドTLBデータとインストラクションTLBデータとが混在している。TLBミスにより、ページテーブル30にオペランドアクセスがあった場合には、TLB40にオペランドTLBデータが格納される。
【0028】
同様にして、TLBミスによりページテーブル30にインストラクションアクセスがあった場合には、TLB40にインストラクションTLBデータが格納される。
【0029】
但し、RAM−ACCS−ADRS<8:0>が同じTLBデータは、同じアドレス(番地)に格納される。従って、以前に格納されたTLBデータは、インストラクションTLBデータ、オペランドTLBデータに関わらず、新しく格納されるTLBデータに上書きされる。
【0030】
【発明が解決しようとする課題】
ところで、従来においては、パイプライン制御の場合には、オペランドアクセスとインストラクションアクセスとが同時に発生するというアクセス衝突が発生する。
【0031】
この場合には、一方のアクセスが有効とされ、他方のアクセスが破棄される。例えば、オペランドアクセスが有効の場合には、オペランドアクセスに対応させて、TLB40を用いたアドレス変換が実行される。一方、インストラクションアクセスについては、破棄されることによるタイムアウトの後、命令処理部によりリトライが行われるため、タイムアウトに伴う時間ロスにより、アドレス変換の処理速度が低下するという問題があった。
【0032】
また、従来においては、図10に示したTLB40に、オペランドTLBデータとインストラクションTLBデータとが無差別に混在した状態で格納されているため、例えば、オペランドアクセスのTLBミスが連続し、エントリの上書きが連続した場合、TLB40に占めるオペランドTLBデータの割合が増える。
【0033】
一方、インストラクションTLBデータについては、TLB40に占めるインストラクションTLBデータの割合が減少し、TLBヒット率が低下する。この場合には、ページテーブル30へのアクセスが増えるため、結果的に処理速度が低下する。
【0034】
本発明は、上記に鑑みてなされたもので、高速でアドレス変換を行うことができるアドレス変換装置、アドレス変換方法および2階層アドレス変換装置を提供することを目的とする。
【0035】
【課題を解決するための手段】
上記目的を達成するために、本発明は、オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段と、を備えたことを特徴とする。
【0036】
また、本発明は、オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを用いたアドレス変換方法であって、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御工程と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御工程と、を含むことを特徴とする。
【0037】
かかる発明によれば、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【0038】
また、本発明によれば、オペランドアドレス変換バッファとインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを設け、固定領域という制限を持たせたため、一方のアドレス変換バッファの容量が他方のアドレス変換バッファの容量よりも過剰に増えることが無くなり、アドレス変換のヒット率が安定するため、アドレス変換にかかる処理速度を安定化することができる。
【0039】
また、本発明は、オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段とを備えた下位アドレス変換手段と、前記オペランドアドレス変換バッファよりも高速アクセス可能であって、該オペランドアドレス変換バッファに格納されたオペランドアドレス変換データの一部を保持し、オペランドアクセスに応じて、オペランド仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位オペランドアドレス変換手段と、前記インストラクションアドレス変換バッファよりも高速アクセス可能であって、該インストラクションアドレス変換バッファに格納されたインストラクションアドレス変換データの一部を保持し、インストラクションアクセスに応じて、インストラクション仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位インストラクションアドレス変換手段と、を備えたことを特徴とする。
【0040】
この発明によれば、上位オペランドアドレス変換手段および上位インストラクションアドレス変換手段と、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させる下位アドレス変換手段とからなる2階層構成でアドレス変換を行うこととしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【0041】
【発明の実施の形態】
以下、図面を参照して本発明にかかるアドレス変換装置、アドレス変換方法および2階層アドレス変換装置の実施の形態1および2について詳細に説明する。
【0042】
(実施の形態1)
図1は、本発明にかかる実施の形態1の構成を示すブロック図である。この図には、仮想記憶方式のコンピュータシステムにおける仮想アドレスから物理アドレスへの変換を高速で行うためのアドレス変換装置100が図示されている。なお、実際には、アドレス変換装置100は、CPU等のプロセッサの一部を構成している。
【0043】
アドレス変換装置100において、OP_ACS_ADD_VA<63:0>は、前述したオペランドアクセスに対応するオペランド仮想アドレスであり、図11(a)に示した仮想アドレスVAと同一のデータ構造とされている。
【0044】
一方、IF_ACS_ADD_VA<63:0>は、前述したインストラクションアクセスに対応するインストラクション仮想アドレスであり、仮想アドレスVA(図11(a)参照)と同一のデータ構造とされている。
【0045】
アドレス変換装置100では、後述するTLB161を用いて、OP_ACS_ADD_VA(オペランド仮想アドレス)やIF_ACS_ADD_VA(インストラクション仮想アドレス)が、物理アドレスPA(合成回路180の出力)に変換される。
【0046】
図2は、図1に示したアドレス変換装置100の前段に設けられた前段回路である。図2において、IF_GO(インストラクションアクセス要求信号)は、IF_ACS_ADD_VAが出力されていること、すなわち、インストラクションアクセスが要求されていることを表す信号である。
【0047】
このIF_GO(インストラクションアクセス要求信号)は、IF_ACS_ADD_VA(インストラクション仮想アドレス)が選択回路230から出力されるタイミングでラッチ回路140から出力され、選択信号生成回路110(図1参照)に入力される。
【0048】
図2に示したフェッチポート220には、アクセスを要求されたポート0から順番にIF_ACS_ADD_VA(インストラクション仮想アドレス)が待ち行列として格納される。選択部141は、フェッチポート220のポート0〜15のうち実行できそうなポート(IF_ACS_ADD_VA(インストラクション仮想アドレス))を選択する。
【0049】
通常、選択部141は、最も優先されるポート(格納されたのが最も古いアドレスが格納されたポート)を選択する。但し、上記IF_ACS_ADD_VA(インストラクション仮想アドレス)がアクセス中の場合、選択部141は、つぎに優先度が高いポートを選択する。また、当該ポートのアクセスが終了した場合には、当該ポートがクリアされる。
【0050】
レジスタ200の値は、現時点で最も優先されるべきIF_ACS_ADD_VA(インストラクション仮想アドレス)がどのポートに格納されているかを示している。レジスタ200が示すポートに対するアクセスが終了した場合、レジスタ200は、値を1インクリメントする。例えば、今、レジスタ200の値が0であるとし、当該ポート0に対するアクセスが終了すると、レジスタ200は、値を0から1に更新する。
【0051】
ここで、更新後の値1に対応するポート1に対するアクセスがすでに終了していた場合、レジスタ200は、値を1から2にさらに更新する。例えば、レジスタ200の値が0でポート0のアクセスが終了し、レジスタ200の値が1に更新された場合であって、ポート1のアクセスがすでに終了していたとき(ポート0がアクセス中にポート1のアクセスが終了してしまったとき)、レジスタ200は、値を1から2にさらに更新する。
【0052】
比較回路210は、レジスタ200の値と、選択部141で選択されたポートとを比較し、両信号が一致した場合、すなわち、選択部141で選択されたポートが現在有効なポートの中で最も優先されるべきポートである場合、IF_TOQ(インストラクション待ち行列先頭優先信号)を出力する。
【0053】
つまり、IF_TOQ(インストラクション待ち行列先頭優先信号)が出力された場合には、IF_ACS_ADD_VA(インストラクション仮想アドレス)が、フェッチポート220でアクセスを待っているアドレスの中で最も優先されるアドレスであることを意味している。
【0054】
また、IF_TOQ(インストラクション待ち行列先頭優先信号)は、図1に示した選択信号生成回路110に入力される。
【0055】
選択信号生成回路110は、図3に示した第1の真理値表111aに従って、入力信号の状態に応じて、選択信号としての出力信号を生成する回路である。入力信号は、OP_GO(オペランドアクセス要求信号)、IF_GO(インストラクションアクセス要求信号)、IF_TOQ(インストラクション待ち行列先頭優先信号)およびWIF_VLD(待機レジスタ有効信号)である。
【0056】
OP_GO(オペランドアクセス要求信号)は、OP_ACS_ADD_VA(オペランド仮想アドレス)が出力されていること、すなわち、オペランドアクセスが要求されていることを表す信号である。
【0057】
IF_GO(インストラクションアクセス要求信号)は、前述したように、IF_ACS_ADD_VA(インストラクション仮想アドレス)が出力されていること、すなわち、インストラクションアクセスが要求されていることを表す信号である。
【0058】
IF_TOQ(インストラクション待ち行列先頭優先信号)は、前述したように、フェッチポート220(図2参照)に格納されているIF_ACS_ADD_VA(インストラクション仮想アドレス)の中で最もアクセスが優先されるアドレスが選択されていることを表す信号である。このIF_TOQ(インストラクション待ち行列先頭優先信号)が”1”である場合には、待機レジスタ190に格納された他のWait−IF_VA(待機インストラクション仮想アドレス)よりも優先させるための信号となる。
【0059】
WIF_VLD(待機レジスタ有効信号)は、待機レジスタ190に格納されているWait−IF_VA(待機インストラクション仮想アドレス)が有効であることを表す信号である。
【0060】
一方、選択信号生成回路110の出力信号は、OP_SEL(オペランド仮想アドレス選択信号)、IF_SEL(インストラクション仮想アドレス選択信号)、WIF_SEL(待機インストラクション仮想アドレス選択信号)、WReg_E(格納許可信号)およびWReg_VLD_in(待機レジスタ有効信号)である。
【0061】
OP_SEL(オペランド仮想アドレス選択信号)は、後述する仮想アドレス選択回路130でOP_ACS_ADD_VA(オペランド仮想アドレス)を選択させるための信号である。
【0062】
ここで、第1の真理値表111a(図3参照)に示したように、OP_GO(オペランドアクセス要求信号)およびIF_GO(インストラクションアクセス要求信号)が共に1である場合、すなわち、アクセス衝突が発生した場合には、オペランドアクセスを優先させるべく、OP_SEL(オペランド仮想アドレス選択信号)が1とされる。
【0063】
これは、インストラクションアクセスに比べて、オペランドアクセスのほうが、コンピュータシステムに要求されている切迫度が高く、システム性能の低下を防ぐためである。
【0064】
IF_SEL(インストラクション仮想アドレス選択信号)は、仮想アドレス選択回路130でIF_ACS_ADD_VA(インストラクション仮想アドレス)を選択させるための信号である。
【0065】
WIF_SEL(待機インストラクション仮想アドレス選択信号)は、仮想アドレス選択回路130でWait−IF_VA(待機インストラクション仮想アドレス)を選択させるための信号である。
【0066】
WReg_E(格納許可信号)は、IF_ACS_ADD_VA(インストラクション仮想アドレス)をWait−IF_VA(待機インストラクション仮想アドレス)として待機レジスタ190に格納させることを許可するための信号である。
【0067】
WReg_VLD_in(待機レジスタ有効信号)は、待機レジスタ190に格納されているWait−IF_VA(待機インストラクション仮想アドレス)が有効であることを表す信号である。
【0068】
なお、実施の形態1において、IF_TOQ(インストラクション待ち行列先頭優先信号)を用いない場合には、第1の真理値表111a(図3参照)に代えて、図4に示した第2の真理値表111bに基づいて、選択信号生成回路110が動作する。
【0069】
図1に戻り、オア回路120は、IF_SEL(インストラクション仮想アドレス選択信号)とWIF_SEL(待機インストラクション仮想アドレス選択信号)とのオアをとり、領域選択信号AR_selを出力する。
【0070】
この領域選択信号AR_selは、後述するTLB−RAM160(TLB161)におけるOP(オペランド)領域160a(OP−TLB161a)、IF(インストラクション)領域160b(IF−TLB161b)のうち、いずれか一方を選択するための信号である。
【0071】
具体的には、領域選択信号AR_selが”1”である場合には、IF領域160b(IF−TLB161b)が選択される。一方、領域選択信号AR_selが”0”である場合には、OP領域160a(OP−TLB161a)が選択される。
【0072】
仮想アドレス選択回路130は、OP_ACS_ADD_VA(オペランド仮想アドレス)、IF_ACS_ADD_VA(インストラクション仮想アドレス)、Wait−IF_VA(待機インストラクション仮想アドレス)のうち、いずれかの仮想アドレスを選択するための回路である。
【0073】
この仮想アドレス選択回路130は、アンド回路131、132、133およびオア回路134から構成されている。アンド回路131は、OP_ACS_ADD_VA(オペランド仮想アドレス)とOP_SEL(オペランド仮想アドレス選択信号)とのアンドをとる。
【0074】
アンド回路132は、IF_ACS_ADD_VA(インストラクション仮想アドレス)とIF_SEL(インストラクション仮想アドレス選択信号)とのアンドをとる。アンド回路133は、Wait−IF_VA(待機インストラクション仮想アドレス)とWIF_SEL(待機インストラクション仮想アドレス選択信号)とのアンドをとる。
【0075】
オア回路134は、アンド回路131〜133の各出力のオアをとる。オア回路134の出力は、OP_ACS_ADD_VA(オペランド仮想アドレス)、IF_ACS_ADD_VA(インストラクション仮想アドレス)またはWait−IF_VA(待機インストラクション仮想アドレス)であり、仮想アドレスVA(図11(a)参照)と同一のデータ構造とされている。
【0076】
また、オア回路134の出力は、ラッチ回路142にラッチされる。さらに、ラッチ回路142の出力は、ラッチ回路143にラッチされる。
【0077】
待機レジスタ190は、選択信号生成回路110からのWReg_E(格納許可信号)に基づいて、IF_ACS_ADD_VA(インストラクション仮想アドレス)をWait−IF_VA(待機インストラクション仮想アドレス)として格納する。
【0078】
ここで、待機レジスタ190にIF_ACS_ADD_VA(インストラクション仮想アドレス)が格納される条件は、オペランドアクセスとインストラクションアクセスとのアクセス衝突が発生し、オペランドアクセスが優先され、インストラクションアクセスを待機させる場合等である。
【0079】
ラムアクセスアドレス生成部150は、TLB−RAM160(TLB161)のアドレスを示すRAM−ACS−ADD<9:0>(ラムアクセスアドレス)を生成する。
【0080】
このRAM−ACS−ADD<9:0>(ラムアクセスアドレス)は、図5に示したように10ビット構成とされており、RAM−ACCS−ADRS<8:0>と領域選択信号AR_selとから構成されている。RAM−ACCS−ADRS<8:0>は、オア回路134(図1参照)からの仮想アドレスVA<21:13>(図11(a)参照)である。
【0081】
領域選択信号AR_selは、図1に示したTLB−RAM160(TLB161)におけるOP(オペランド)領域160a(OP−TLB161a)、IF(インストラクション)領域160b(IF−TLB161b)のうち、いずれか一方を選択するための信号である。
【0082】
TLB−RAM160には、TLB161が設けられている。このTLB161は、図6に示したように、1024エントリ(0番地から1023番地)を有している。但し、TLB−RAM160は、OP領域160a(512エントリ)とIF領域160b(512エントリ)とに2分割されている。ここで、TLB−RAM160においては、各値が16進数で表現されている。
【0083】
OP領域160aには、OP−TLB161aが設けられている。OP−TLB161aの各エントリには、TLB−RAM160におけるアドレス(エントリ)を示すRAM−ACS−ADD<9:0>(ラムアクセスアドレス)と、索引としてのTLB−TAG<41:0>(タグ)と、物理アドレスに対応するTLB−DATA<29:0>(データ)とがオペランドTLBデータとして格納されている。なお、OP領域160aには、オペランドTLBデータのみが格納される。
【0084】
OP−TLB161aにおけるTLB−TAG<41:0>は、OP_ACS_ADD_VA(オペランド仮想アドレス)としての仮想アドレスVA(図11(a)参照)におけるTLB−TAG<41:0>に対応している。また、OP−TLB161aにおけるTLB−DATA<29:0>は、物理アドレスPA(図11(b)参照)におけるTLB−DATA<29:0>に対応している。
【0085】
一方、IF領域160bには、IF−TLB161bが設けられている。IF−TLB161bの各エントリには、TLB−RAM160におけるアドレス(エントリ)を示すRAM−ACS−ADD<9:0>(ラムアクセスアドレス)と、索引としてのTLB−TAG<41:0>(タグ)と、物理アドレスに対応するTLB−DATA<29:0>(データ)とがインストラクションTLBデータとして格納されている。なお、IF−TLB161bには、インストラクションTLBデータのみが格納される。
【0086】
IF−TLB161bにおけるTLB−TAG<41:0>は、IF_ACS_ADD_VA(インストラクション仮想アドレス)としての仮想アドレスVA(図11(a)参照)におけるTLB−TAG<41:0>に対応している。また、IF−TLB161bにおけるTLB−DATA<29:0>は、物理アドレスPA(図11(b)参照)におけるTLB−DATA<29:0>に対応している。
【0087】
図1に戻り、ラッチ回路144は、TLB161からRAM−ACS−ADD<9:0>(ラムアクセスアドレス)に対応するTLB−TAG<41:0>を読み出し、これをラッチする。
【0088】
ラッチ回路145は、TLB161からRAM−ACS−ADD<9:0>(ラムアクセスアドレス)に対応するTLB−DATA<29:0>を読み出し、これをラッチする。
【0089】
比較回路170は、ラッチ回路144からのTLB−TAG<41:0>と、ラッチ回路143からのVA<63:22>(図11(a)参照)とを比較し、両者が一致した場合、HIT(TLBヒット)とする。TLBヒットの場合には、合成回路180は、ラッチ回路145からのTLB−DATA<29:0>と、ラッチ回路143からのVA<12:0>(図11(a)参照)とを合成し、物理アドレスPA<42:0>を生成する。
【0090】
一方、両者が一致しない場合、比較回路170は、MISS(TLBミス)とする。この場合には、ページテーブル30(図10参照)が参照され、仮想アドレスVAが物理アドレスPAに変換される。
【0091】
(オペランドアクセス)
つぎに、実施の形態1の動作について説明する。まず、オペランドアクセスのみの場合について説明する。この場合、図1に示したOP_ACS_ADD_VA(オペランド仮想アドレス)がアンド回路131に入力されるとともに、”1”のOP_GO(オペランドアクセス要求信号)が選択信号生成回路110に入力される。
【0092】
この場合、IF_GO(インストラクションアクセス要求信号)、IF_TOQ(インストラクション待ち行列先頭優先信号)およびWIF_VLD(待機レジスタ有効信号)が共に”0”であるとすると、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のOP_SEL(オペランド仮想アドレス選択信号)をアンド回路131へ出力する。
【0093】
これにより、オア回路134からは、OP_ACS_ADD_VA(オペランド仮想アドレス)が出力される。
【0094】
つぎのタイミングでは、OP_ACS_ADD_VA(オペランド仮想アドレス)は、ラッチ回路142にラッチされる。
【0095】
また、ラムアクセスアドレス生成部150は、図5に示したように、上記OP_ACS_ADD_VA(オペランド仮想アドレス)に含まれるRAM−ACCS−ADD<8:0>(ラムアクセスアドレス)と、領域選択信号AR_sel(この場合、”0”)とからRAM−ACS−ADD<9:0>(ラムアクセスアドレス)を生成する。
【0096】
この場合、領域選択信号AR_selが”0”であるため、OP領域160a(OP−TLB161a)が選択される。
【0097】
つぎのタイミングでは、ラッチ回路142からのOP_ACS_ADD_VA(オペランド仮想アドレス)がラッチ回路143にラッチされる。また、ラムアクセスアドレス生成部150で生成されたRAM−ACS−ADD<9:0>(ラムアクセスアドレス)を用いて、図6に示したOP−TLB161aが参照され、当該RAM−ACS−ADD<9:0>(ラムアクセスアドレス)に対応するTLB−TAG<41:0>がラッチ回路144にラッチされる。
【0098】
また、RAM−ACS−ADD<9:0>(ラムアクセスアドレス)を用いて、OP−TLB161aが参照され、当該RAM−ACS−ADD<9:0>(ラムアクセスアドレス)に対応するTLB−DATA<29:0>がラッチ回路145にラッチされる。
【0099】
これにより、比較回路170は、ラッチ回路143からのVA<63:22>と、ラッチ回路144からのTLB−TAG<41:0>とを比較する。この場合、両者が一致したとすると、比較回路170は、HIT(TLBヒット)とする。
【0100】
さらに、合成回路180は、図11(b)に示したように、ラッチ回路143からのVA<12:0>と、ラッチ回路145からのTLB−DATA<29:0>とを合成し、物理アドレスPA<42:0>を生成する。そして、上記物理アドレスPAに基づいて、主記憶装置(図示略)へのデータアクセスが行われる。
【0101】
一方、ラッチ回路143からのVA<63:22>と、ラッチ回路144からのTLB−TAG<41:0>とが一致しない場合、比較回路170は、MISS(TLBミス)とする。
【0102】
この場合には、ページテーブル30(図10参照)が参照され、OP_ACS_ADD_VA(オペランド仮想アドレス)が物理アドレスPAに変換される。
【0103】
さらに、TLBミスの場合には、上記OP_ACS_ADD_VA(オペランド仮想アドレス)から得られるRAM−ACS−ADD<9:0>およびTLB−TAG<41:0>と、物理アドレスPA(図11(b)参照)に含まれるTLB−DATA<29:0>とを対としてオペランドTLBデータとして、OP−TLB161aに格納される。
【0104】
これにより、次回以降で、当該OP_ACS_ADD_VA(オペランド仮想アドレス)は、OP−TLB161aにより物理アドレスPAに変換される。
【0105】
(インストラクションアクセス)
つぎに、インストラクションアクセスのみの場合について説明する。この場合、図1に示したIF_ACS_ADD_VA(インストラクション仮想アドレス)がアンド回路132および待機レジスタ190に入力されるとともに、”1”のIF_GO(インストラクションアクセス要求信号)が選択信号生成回路110に入力される。
【0106】
この場合、OP_GO(オペランドアクセス要求信号)、IF_TOQ(インストラクション待ち行列先頭優先信号)およびWIF_VLD(待機レジスタ有効信号)が共に”0”であるとすると、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のIF_SEL(インストラクション仮想アドレス選択信号)をアンド回路132およびオア回路120へ出力する。
【0107】
これにより、オア回路134からは、IF_ACS_ADD_VA(インストラクション仮想アドレス)が出力される。オア回路120からは、”1”の領域選択信号AR_selが出力される。
【0108】
つぎのタイミングでは、IF_ACS_ADD_VA(インストラクション仮想アドレス)は、ラッチ回路142にラッチされる。
【0109】
また、ラムアクセスアドレス生成部150は、図5に示したように、上記IF_ACS_ADD_VA(インストラクション仮想アドレス)に含まれるRAM−ACCS−ADD<8:0>(ラムアクセスアドレス)と、領域選択信号AR_sel(この場合、”1”)とからRAM−ACS−ADD<9:0>(ラムアクセスアドレス)を生成する。
【0110】
この場合、領域選択信号AR_selが”1”であるため、IF領域160b(IF−TLB161b)が選択される。
【0111】
つぎのタイミングでは、ラッチ回路142からのIF_ACS_ADD_VA(インストラクション仮想アドレス)がラッチ回路143にラッチされる。また、ラムアクセスアドレス生成部150で生成されたRAM−ACS−ADD<9:0>(ラムアクセスアドレス)が指定するアドレス(番地)に格納されているTLB−TAG<41:0>およびTLB−DATA<29:0>が読み出され、ラッチ回路144およびラッチ回路145にラッチされる。
【0112】
これにより、比較回路170は、ラッチ回路143からのVA<63:22>と、ラッチ回路144からのTLB−TAG<41:0>とを比較する。この場合、両者が一致したとすると、比較回路170は、HIT(TLBヒット)とする。
【0113】
さらに、合成回路180は、図11(b)に示したように、ラッチ回路143からのVA<12:0>と、ラッチ回路145からのTLB−DATA<29:0>とを合成し、物理アドレスPA<42:0>を生成する。そして、上記物理アドレスPAに基づいて、主記憶装置(図示略)から命令コードが読み出される。
【0114】
一方、ラッチ回路143からのVA<63:22>と、ラッチ回路144からのTLB−TAG<41:0>とが一致しない場合、比較回路170は、MISS(TLBミス)とする。
【0115】
この場合には、ページテーブル30(図10参照)が参照され、IF_ACS_ADD_VA(インストラクション仮想アドレス)が物理アドレスPAに変換される。
【0116】
さらに、TLBミスの場合には、上記IF_ACS_ADD_VA(インストラクション仮想アドレス)から得られるRAM−ACS−ADD<9:0>およびTLB−TAG<41:0>と、物理アドレスPA(図11(b)参照)に含まれるTLB−DATA<29:0>とを対としてインストラクションTLBデータとして、IF−TLB161bに格納される。
【0117】
これにより、次回以降で、当該IF_ACS_ADD_VA(インストラクション仮想アドレス)は、IF−TLB161bにより物理アドレスPAに変換される。
【0118】
(アクセス衝突)
つぎに、パイプライン制御によりオペランドアクセスとインストラクションアクセスとが同時に発生した場合、すなわちアクセス衝突が発生した場合について説明する。この場合、図1に示したOP_ACS_ADD_VA(オペランド仮想アドレス)がアンド回路131に入力されるとともに、”1”のOP_GO(オペランドアクセス要求信号)が選択信号生成回路110に入力される。
【0119】
さらに、IF_ACS_ADD_VA(インストラクション仮想アドレス)がアンド回路132に入力されるとともに、”1”のIF_GO(インストラクションアクセス要求信号)が選択信号生成回路110に入力される。
【0120】
この場合、IF_TOQ(インストラクション待ち行列先頭優先信号)およびWIF_VLD(待機レジスタ有効信号)が共に”0”であるとすると、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のOP_SEL(オペランド仮想アドレス選択信号)をアンド回路131へ出力するとともに、”0”のIF_SEL(インストラクション仮想アドレス選択信号)をアンド回路132へ出力する。
【0121】
すなわち、アクセス衝突が発生した場合には、インストラクションアクセスよりもオペランドアクセスが優先される。これにより、オア回路134からは、OP_ACS_ADD_VA(オペランド仮想アドレス)VAが出力される。
【0122】
また、選択信号生成回路110からは、”1”のWReg_E(格納許可信号)および”1”のWReg_VLD_in(待機レジスタ有効信号)が待機レジスタ190へ出力される。
【0123】
これにより、待機レジスタ190には、IF_ACS_ADD_VA(インストラクション仮想アドレス)がWait−IF_VA(待機インストラクション仮想アドレス)として格納される。
【0124】
以後、上述したオペランドアクセスの動作を経て、OP_ACS_ADD_VA(オペランド仮想アドレス)が物理アドレスPAに変換されると、待機レジスタ190からは、”1”のWIF_VLD(待機レジスタ有効信号)が選択信号生成回路110へ出力されるとともに、Wait−IF_VA(待機インストラクション仮想アドレス)がアンド回路133へ出力される。
【0125】
この場合、OP_GO(オペランドアクセス要求信号)、IF_GO(インストラクションアクセス要求信号)およびIF_TOQ(インストラクション待ち行列先頭優先信号)が共に”0”であるとすると、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のWIF_SEL(待機インストラクション仮想アドレス選択信号)をアンド回路133およびオア回路120へ出力する。
【0126】
これにより、オア回路134からは、Wait−IF_VA(待機インストラクション仮想アドレス)が出力される。オア回路120からは、”1”の領域選択信号AR_selが出力される。
【0127】
つぎのタイミングでは、Wait−IF_VA(待機インストラクション仮想アドレス)は、ラッチ回路142にラッチされる。
【0128】
また、ラムアクセスアドレス生成部150は、図5に示したように、上記Wait−IF_VA(待機インストラクション仮想アドレス)に含まれるRAM−ACCS−ADD<8:0>(ラムアクセスアドレス)と、領域選択信号AR_sel(この場合、”1”)とからRAM−ACS−ADD<9:0>(ラムアクセスアドレス)を生成する。
【0129】
この場合、領域選択信号AR_selが”1”であるため、IF領域160b(IF−TLB161b)が選択される。
【0130】
つぎのタイミングでは、ラッチ回路142からのWait−IF_VA(待機インストラクション仮想アドレス)がラッチ回路143にラッチされる。また、ラムアクセスアドレス生成部150で生成されたRAM−ACS−ADD<9:0>(ラムアクセスアドレス)が指定するアドレス(番地)に格納されているTLB−TAG<41:0>およびTLB−DATA<29:0>が読み出され、ラッチ回路144およびラッチ回路145にラッチされる。
【0131】
これにより、比較回路170は、ラッチ回路143からのVA<63:22>と、ラッチ回路144からのTLB−TAG<41:0>とを比較する。この場合、両者が一致したとすると、比較回路170は、HIT(TLBヒット)とする。
【0132】
さらに、合成回路180は、図11(b)に示したように、ラッチ回路143からのVA<12:0>と、ラッチ回路145からのTLB−DATA<29:0>とを合成し、物理アドレスPA<42:0>を生成する。そして、上記物理アドレスPAに基づいて、主記憶装置(図示略)から命令コードが読み出される。
【0133】
一方、ラッチ回路143からのVA<63:22>と、ラッチ回路144からのTLB−TAG<41:0>とが一致しない場合、比較回路170は、MISS(TLBミス)とする。
【0134】
この場合には、ページテーブル30(図10参照)が参照され、Wait−IF_VA(待機インストラクション仮想アドレス)が物理アドレスPAに変換される。
【0135】
さらに、TLBミスの場合には、上記Wait−IF_VA(待機インストラクション仮想アドレス)から得られるRAM−ACS−ADD<9:0>およびTLB−TAG<41:0>と、物理アドレスPA(図11(b)参照)に含まれるTLB−DATA<29:0>とを対としてインストラクションTLBデータとして、IF−TLB161bに格納される。
【0136】
これにより、次回以降で、当該Wait−IF_VA(待機インストラクション仮想アドレス)は、IF−TLB161bにより物理アドレスPAに変換される。
【0137】
(IF_GOが入力された場合)
つぎに、待機レジスタ190にWait−IF_VA(待機インストラクション仮想アドレス)が格納されている状態で、OP_ACS_ADD_VA(オペランド仮想アドレス)が物理アドレスPAに変換された後に、”1”のIF_GO(インストラクションアクセス要求信号)が選択信号生成回路110に入力された場合について説明する。
【0138】
この場合には、IF_GO(インストラクションアクセス要求信号)に対応するIF_ACS_ADD_VA(インストラクション仮想アドレス)よりも、Wait−IF_VA(待機インストラクション仮想アドレス)のアドレス変換が優先される。
【0139】
すなわち、この場合には、ラッチ回路140(図2参照)からは、”1”のIF_GO(インストラクションアクセス要求信号)が選択信号生成回路110へ出力される。また、待機レジスタ190からは、”1”のWIF_VLD(待機レジスタ有効信号)が選択信号生成回路110へ出力される。なお、OP_GO(オペランドアクセス要求信号)およびIF_TOQ(インストラクション待ち行列先頭優先信号)は、共に”0”である。
【0140】
この場合、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のWIF_SEL(待機インストラクション仮想アドレス選択信号)をアンド回路133へ出力する。また、選択信号生成回路110は、”0”のIF_SEL(インストラクション仮想アドレス選択信号)をアンド回路132へ出力するとともに、”0”のOP_SEL(オペランド仮想アドレス選択信号)をアンド回路131へ出力する。
【0141】
これにより、オア回路134からは、Wait−IF_VA(待機インストラクション仮想アドレス)が出力される。
【0142】
また、選択信号生成回路110からは、”1”のWReg_E(格納許可信号)および”1”のWReg_VLD_in(待機レジスタ有効信号)が待機レジスタ190へ出力される。
【0143】
これにより、待機レジスタ190には、IF_ACS_ADD_VA(インストラクション仮想アドレス)がWait−IF_VA(待機インストラクション仮想アドレス)として格納される。
【0144】
以後、前述した動作を経て、Wait−IF_VA(待機インストラクション仮想アドレス)が物理アドレスPAに変換されると、待機レジスタ190からは、”1”のWIF_VLD(待機レジスタ有効信号)が選択信号生成回路110へ出力されるとともに、Wait−IF_VA(待機インストラクション仮想アドレス)がアンド回路133へ出力される。
【0145】
この場合、OP_GO(オペランドアクセス要求信号)、IF_GO(インストラクションアクセス要求信号)およびIF_TOQ(インストラクション待ち行列先頭優先信号)が共に”0”であるとすると、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のWIF_SEL(待機インストラクション仮想アドレス選択信号)をアンド回路133およびオア回路120へ出力する。以後、前述した動作を経て、Wait−IF_VA(待機インストラクション仮想アドレス)が物理アドレスPAに変換される。
【0146】
(IF_TOQが入力された場合)
つぎに、待機レジスタ190にWait−IF_VA(待機インストラクション仮想アドレス)が格納されている状態で、OP_ACS_ADD_VA(オペランド仮想アドレス)が物理アドレスPAに変換された後に、”1”のIF_TOQ(インストラクション待ち行列先頭優先信号)が選択信号生成回路110に入力された場合について説明する。
【0147】
この場合には、Wait−IF_VA(待機インストラクション仮想アドレス)よりも、IF_TOQ(インストラクション待ち行列先頭優先信号)に対応するIF_ACS_ADD_VA(インストラクション仮想アドレス)のアドレス変換が優先される。
【0148】
すなわち、この場合には、比較回路210(図2参照)から”1”のIF_TOQ(インストラクション待ち行列先頭優先信号)が選択信号生成回路110へ出力されるとともに、ラッチ回路140からも”1”のIF_GO(インストラクションアクセス要求信号)が選択信号生成回路110へ出力される。なお、OP_GO(オペランドアクセス要求信号)は、”0”である。
【0149】
同時に、選択回路230(図2参照)からは、IF_ACS_ADD_VA(インストラクション仮想アドレス)がアンド回路132へ出力される。このとき、待機レジスタ190からは、”1”のWIF_VLD(待機レジスタ有効信号)が選択信号生成回路110へ出力されるとともに、Wait−IF_VA(待機インストラクション仮想アドレス)がアンド回路133へ出力される。
【0150】
選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のIF_SEL(インストラクション仮想アドレス選択信号)をアンド回路132およびオア回路120へ出力する。また、選択信号生成回路110は、”0”のWIF_SEL(待機インストラクション仮想アドレス選択信号)をアンド回路133へ出力する。
【0151】
これにより、オア回路134からは、IF_ACS_ADD_VA(インストラクション仮想アドレス)が出力される。オア回路120からは、”1”の領域選択信号AR_selが出力される。
【0152】
つぎのタイミングでは、IF_ACS_ADD_VA(インストラクション仮想アドレス)は、ラッチ回路142にラッチされる。以後、前述した動作を経て、TLBヒットの場合には、IF−TLB161bに基づいて、IF_ACS_ADD_VA(インストラクション仮想アドレス)が物理アドレスPAに変換される。
【0153】
(IF_TOQおよびOP_GOが入力された場合)
つぎに、待機レジスタ190にWait−IF_VA(待機インストラクション仮想アドレス)が格納されている状態で、OP_ACS_ADD_VA(オペランド仮想アドレス)が物理アドレスPAに変換された後に、”1”のOP_GO(オペランドアクセス要求信号)と、”1”のIF_TOQ(インストラクション待ち行列先頭優先信号)とが選択信号生成回路110に同時に入力され、アクセス衝突が発生した場合について説明する。
【0154】
この場合には、待機レジスタ190に格納されたWait−IF_VA(待機インストラクション仮想アドレス)が破棄され、代わりにIF_TOQ(インストラクション待ち行列先頭優先信号)に対応するIF_ACS_ADD_VA(インストラクション仮想アドレス)が格納され、OP_ACS_ADD_VA(オペランド仮想アドレス)のアドレス変換が優先される。
【0155】
この場合、アンド回路131には、OP_ACS_ADD_VA(オペランド仮想アドレス)が入力されている。アンド回路132には、IF_ACS_ADD_VA(インストラクション仮想アドレス)が入力されている。アンド回路133には、Wait−IF_VA(待機インストラクション仮想アドレス)が入力されている。
【0156】
また、選択信号生成回路110には、OP_GO(オペランドアクセス要求信号)、IF_GO(インストラクションアクセス要求信号)およびIF_TOQ(インストラクション待ち行列先頭優先信号)およびWIF_VLD(待機レジスタ有効信号)(いずれも”1”)が入力される。
【0157】
これにより、選択信号生成回路110は、第1の真理値表111a(図3参照)に従って、”1”のOP_SEL(オペランド仮想アドレス選択信号)、”0”のIF_SEL(インストラクション仮想アドレス選択信号)および”0”のWIF_SEL(待機インストラクション仮想アドレス選択信号)をアンド回路131、アンド回路132およびアンド回路133へそれぞれ出力する。
【0158】
これにより、オア回路134からは、OP_ACS_ADD_VA(オペランド仮想アドレス)が出力される。
【0159】
また、選択信号生成回路110からは、”1”のWReg_E(格納許可信号)および”1”のWReg_VLD_in(待機レジスタ有効信号)が待機レジスタ190へ出力される。
【0160】
これにより、待機レジスタ190においては、先に格納されていたWait−IF_VA(待機インストラクション仮想アドレス)が破棄され、IF_TOQ(インストラクション待ち行列先頭優先信号)に対応するIF_ACS_ADD_VA(インストラクション仮想アドレス)がWait−IF_VA(待機インストラクション仮想アドレス)として格納される。
【0161】
以後、上述したオペランドアクセスの動作を経て、OP_ACS_ADD_VA(オペランド仮想アドレス)が物理アドレスPAに変換されると、前述した動作を経て、IF_TOQ(インストラクション待ち行列先頭優先信号)に対応するWait−IF_VA(待機インストラクション仮想アドレス)が物理アドレスPAに変換される。
【0162】
以上説明したように、実施の形態1によれば、OP−TLB161aへのオペランドアクセスとIF−TLB161bへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、待機レジスタ190に保持されたWait−IF_VA(待機インストラクション仮想アドレス)を物理アドレスPAに変換させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【0163】
また、実施の形態1によれば、OP−TLB161aとIF−TLB161bとがそれぞれ固定領域(512エントリ)をもって同一のTLB−RAM160を共有してなるTLB161を設け、固定領域という制限を持たせたため、一方のアドレス変換バッファの容量が他方のアドレス変換バッファの容量よりも過剰に増えることが無くなり、アドレス変換のTLBヒット率が安定するため、アドレス変換にかかる処理速度を安定化することができる。
【0164】
また、実施の形態1によれば、”0”の領域選択信号AR_sel(オペランド選択フラグ)と、RAM−ACS−ADD<9:0>(ラムアクセスアドレス)とに基づいて、OP−TLB161aへのオペランドアクセスを制御し、”1”の領域選択信号AR_sel(インストラクション選択フラグ)と、RAM−ACS−ADD<9:0>(ラムアクセスアドレス)とに基づいて、IF−TLB161bへのインストラクションアクセスを制御することとしたのでOP−TLB161aおよびIF−TLB161bへのアクセスを効率良く行うことができる。
【0165】
また、実施の形態1によれば、新規のオペランドアクセスと、待機レジスタ190に保持されたWait−IF_VA(待機インストラクション仮想アドレス)に対応するインストラクションアクセスとのアクセス衝突が発生した場合、新規のオペランドアクセスを優先的に実行させた後、待機レジスタ190に保持されたWait−IF_VA(待機インストラクション仮想アドレス)に対応するインストラクションアクセスを実行させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【0166】
また、実施の形態1によれば、IF_TOQ(インストラクション待ち行列先頭優先信号)に対応するインストラクションアクセスと、待機レジスタ190に保持されたWait−IF_VA(待機インストラクション仮想アドレス)に対応するインストラクションアクセスとのアクセス衝突が発生した場合、前者のオペランドアクセスを優先的に実行させた後、待機レジスタ190に保持されたWait−IF_VA(待機インストラクション仮想アドレス)に対応するインストラクションアクセスを実行させることとしたので、割り込みによるインストラクションアクセスを行うことができる。
【0167】
(実施の形態2)
図7は、本発明にかかる実施の形態2の構成を示すブロック図である。この図には、上位階層TLBとしての上位OPアドレス変換部400および上位IFアドレス変換部500と、下位階層TLBとしての下位アドレス変換部600という2階層からなるアドレス変換装置300が図示されている。なお、実際には、アドレス変換装置300は、CPU等のプロセッサの一部を構成している。
【0168】
下位アドレス変換部600は、アドレス変換装置100(図1参照)と同一の機能および構成を備えており、TLB161(図1参照)と同一のTLB(図示略)を用いて、ページテーブル30(図10参照)のエントリを検索する。
【0169】
上位OPアドレス変換部400は、下位アドレス変換部600のTLB(図示略)に格納されたオペランドTLBデータのうち一部のオペランドTLBデータをオペランドTLB(図示略)に格納している。
【0170】
この上位OPアドレス変換部400は、下位アドレス変換部600に比べて高速処理が可能とされている。OP_VA(オペランド仮想アドレス)は、オペランドアクセスに対応するオペランド仮想アドレスであり、図11(a)に示した仮想アドレスVAと同一のデータ構造とされている。
【0171】
OP_GO(オペランドアクセス要求信号)は、OP_VA(オペランド仮想アドレス)が出力されていること、すなわち、オペランドアクセスが要求されていることを表す信号である。
【0172】
上位OPアドレス変換部400は、OP_GO(オペランドアクセス要求信号)およびOP_VA(オペランド仮想アドレス)が入力された場合に、オペランドTLB(図示略)を検索し、HIT(TLBヒット)すると、オペランドTLBを用いて、OP_VA(オペランド仮想アドレス)をOP_PA(オペランド物理アドレス)に変換する。
【0173】
また、上位OPアドレス変換部400は、MISS(TLBミス)の場合、下位アドレス変換部600にアドレス変換をさせるためのOP_mTLB_GO(オペランドアクセス要求信号)を出力する。
【0174】
図8は、図7に示した上位OPアドレス変換部400の構成を示すブロック図である。同図において、タグTLB401およびデータTLB403は、上述したオペランドTLBを構成している。
【0175】
タグTLB401は、32(0〜31)エントリとされており、、オペランドTLBデータの一部であるTLB−TAG<41:0>(タグ)(図6参照)を格納している。一方、データTLB403は、タグTLB401と同様にして、32(0〜31)エントリとされており、オペランドTLBデータの一部であるTLB−DATA<29:0>(図6参照)を格納している。
【0176】
比較回路4021〜402n は、タグTLB401の各エントリに対応して設けられ、各エントリに格納されているTLB−TAG<41:0>と、OP_VA<63:22>(オペランド仮想アドレス)とをそれぞれ比較し、両者が一致した場合、HIT(TLBヒット)とするための”1”のmatch信号をアンド回路407へ出力する。
【0177】
アンド回路407は、OP_GO(オペランドアクセス要求信号)とmatch信号とのアンドをとり、”1”のmatch信号の場合、HIT(TLBヒット)とする。
【0178】
また、HIT(TLBヒット)の場合、比較回路4021 〜402n のうち一致した比較回路から、選択信号selが選択回路406へ出力される。選択回路406は、データTLB403からのTLB−DATA<29:0>と、比較回路4021 〜402n のうちHIT(TLBヒット)に対応する比較回路からのOP_VA<12:0>とを合成し、OP_PA<42:0>(オペランド物理アドレス)を生成する。
【0179】
図7に戻り、上位IFアドレス変換部500は、上位OPアドレス変換部400と同様の構成とされており、下位アドレス変換部600のTLB(図示略)に格納されたインストラクションTLBデータのうち一部のインストラクションTLBデータをインストラクションTLB(図示略)に格納している。
【0180】
この上位IFアドレス変換部500は、下位アドレス変換部600に比べて高速処理が可能とされている。IF_VA(インストラクション仮想アドレス)は、インストラクションに対応するインストラクション仮想アドレスであり、図11(a)に示した仮想アドレスVAと同一のデータ構造とされている。
【0181】
IF_GO(インストラクションアクセス要求信号)は、IF_VA(インストラクション仮想アドレス)が出力されていること、すなわち、インストラクションアクセスが要求されていることを表す信号である。
【0182】
上位IFアドレス変換部500は、IF_GO(インストラクションアクセス要求信号)およびIF_VA(インストラクション仮想アドレス)が入力された場合に、インストラクションTLB(図示略)を検索し、HIT(TLBヒット)すると、インストラクションTLBを用いて、IF_VA(インストラクション仮想アドレス)をIF_PA(インストラクション物理アドレス)に変換する。
【0183】
また、上位IFアドレス変換部500は、MISS(TLBミス)の場合、下位アドレス変換部600にアドレス変換をさせるためのIF_mTLB_GO(インストラクションアクセス要求信号)を出力する。
【0184】
ラッチ回路700は、上位OPアドレス変換部400でMISS(TLBミス)の情報をラッチし、これをOP_mTLB_GO(オペランドアクセス要求信号)として、下位アドレス変換部600へ出力する。ラッチ回路701は、OP_VA(オペランド仮想アドレス)をラッチする。
【0185】
ラッチ回路702は、上位IFアドレス変換部500でMISS(TLBミス)の情報をラッチし、これをIF_mTLB_GO(インストラクションアクセス要求信号)として、下位アドレス変換部600へ出力する。ラッチ回路703は、IF_VA(インストラクション仮想アドレス)をラッチする。
【0186】
下位アドレス変換部600は、OP_mTLB_GO(オペランドアクセス要求信号)およびOP_VA(オペランド仮想アドレス)が入力された場合、TLB(図示略)を検索する。
【0187】
なお、図7に示したOP_GO(オペランドアクセス要求信号)およびOP_VA(オペランド仮想アドレス)は、図1に示したOP_GO(オペランドアクセス要求信号)およびOP_ACS_ADD_VA(オペランド仮想アドレス)に対応している。
【0188】
また、下位アドレス変換部600は、OP_VA(オペランド仮想アドレス)をOP_PA(オペランド物理アドレス)に変換できた場合、すなわち、オペランドアクセスに関してHIT(TLBヒット)の場合、PAGE_TABLE_ENTRY(TLBデータ)およびOP_uTLB_WRT(オペランドTLBデータライト信号)を上位OPアドレス変換部400へ出力する。
【0189】
PAGE_TABLE_ENTRY(TLBデータ)は、図9に示したように、HIT(TLBヒット)に対応するTLB−TAG<41:0>およびTLB−DATA<29:0>から構成されている。
【0190】
OP_uTLB_WRT(オペランドTLBデータライト信号)は、オペランドアクセスに対応するPAGE_TABLE_ENTRY(TLBデータ)を上位OPアドレス変換部400のオペランドTLB(タグTLB401、データTLB403:図8参照)へライトすべきことを指示するための信号である。
【0191】
ここで、図8に示したアンド回路405にOP_uTLB_WRT(オペランドTLBデータライト信号)が入力された場合、エントリカウンタ404の出力とのアンドがとられ、アンド回路405からは、エントリに対応するEntry_SET enbl信号がタグTLB401およびデータTLB403へ出力される。
【0192】
Entry_SET enbl信号がタグTLB401に入力されると、タグTLB401のエントリには、PAGE_TABLE_ENTRY(TLBデータ)に含まれるTLB−TAG<41:0>が格納される。また、Entry_SET enbl信号がデータTLB403に入力されると、データTLB403のエントリには、PAGE_TABLE_ENTRY(TLBデータ)に含まれるTLB−DATA<29:0>が格納される。
【0193】
図7に戻り、下位アドレス変換部600は、IF_VA(インストラクション仮想アドレス)をIF_PA(インストラクション物理アドレス)に変換できた場合、すなわち、インストラクションアクセスに関してHIT(TLBヒット)の場合、PAGE_TABLE_ENTRY(TLBデータ)およびIF_uTLB_WRT(インストラクションTLBデータライト信号)を上位IFアドレス変換部500へ出力する。
【0194】
IF_uTLB_WRT(インストラクションTLBデータライト信号)は、インストラクションアクセスに対応するPAGE_TABLE_ENTRY(TLBデータ)を上位IFアドレス変換部500のインストラクションTLB(図示略)へライトすべきことを指示するための信号である。
【0195】
(オペランドアクセス)
つぎに、実施の形態2の動作について説明する。まず、オペランドアクセスのみの場合について説明する。
【0196】
この場合、図7に示したOP_VA(オペランド仮想アドレス)およびOP_GO(オペランドアクセス要求信号)が上位OPアドレス変換部400に入力されると、上位OPアドレス変換部400では、OP_VA<63:22>と、オペランドTLBに格納されたTLB−TAG<41:0>とが比較される。
【0197】
この場合、両者が一致したとすると、HIT(TLBヒット)とされ、上位OPアドレス変換部400では、OP_VA<12:0>と、オペランドTLBに格納されたTLB−DATA<29:0>とが合成され、OP_PA<42:0>(オペランド物理アドレス)が出力される。
【0198】
そして、上記OP_PA(オペランド物理アドレス)に基づいて、主記憶装置(図示略)に対するデータの読み出しまたは書き込みが行われる。
【0199】
一方、上位OPアドレス変換部400で、OP_VA<63:22>と、TLB−TAG<41:0>とが一致しない場合、MISS(TLBミス)とされる。これにより、ラッチ回路700には、OP_mTLB_GO(オペランドアクセス要求信号)がラッチされ、ラッチ回路701には、OP_VA(オペランド仮想アドレス)がラッチされる。
【0200】
そして、つぎのタイミングでは、OP_mTLB_GO(オペランドアクセス要求信号)およびOP_VA(オペランド仮想アドレス)が下位アドレス変換部600に入力され、下位アドレス変換部600では、アドレス変換装置100(図1参照)と同様にして、OP_VA(オペランド仮想アドレス)に基づいて、TLBが検索される。
【0201】
ここで、オペランドアクセスに関してHIT(TLBヒット)の場合、下位アドレス変換部600は、PAGE_TABLE_ENTRY(TLBデータ)およびOP_uTLB_WRT(オペランドTLBデータライト信号)を上位OPアドレス変換部400へ出力する。
【0202】
これにより、上位OPアドレス変換部400では、オペランドTLBにTLB−TAG<41:0>およびTLB−DATA<29:0>が格納される。次回以降で、当該OP_VA(オペランド仮想アドレス)は、上位OPアドレス変換部400でOP_PA(オペランド物理アドレス)に変換される。
【0203】
(インストラクションアクセス)
つぎに、インストラクションアクセスのみの場合について説明する。この場合、図7に示したIF_VA(インストラクション仮想アドレス)およびIF_GO(インストラクションアクセス要求信号)が上位IFアドレス変換部500に入力されると、上位IFアドレス変換部500では、IF_VA<63:22>と、インストラクションTLBに格納されたTLB−TAG<41:0>が比較される。
【0204】
この場合、両者が一致したとすると、HIT(TLBヒット)とされ、上位IFアドレス変換部500では、IF_VA<12:0>と、インストラクションTLBに格納されたTLB−DATA<29:0>とが合成され、IF_PA<42:0>(インストラクション物理アドレス)が出力される。
【0205】
そして、上記IF_PA(インストラクション物理アドレス)に基づいて、主記憶装置(図示略)から命令コードが読み出される。
【0206】
一方、上位IFアドレス変換部500で、IF_VA<63:22>と、TLB−TAG<41:0>とが一致しない場合、MISS(TLBミス)とされる。これにより、ラッチ回路702には、IF_mTLB_GO(インストラクションアクセス要求信号)がラッチされ、ラッチ回路703には、IF_VA(インストラクション仮想アドレス)がラッチされる。
【0207】
そして、つぎのタイミングでは、IF_mTLB_GO(インストラクションアクセス要求信号)およびIF_VA(インストラクション仮想アドレス)が下位アドレス変換部600に入力され、下位アドレス変換部600では、アドレス変換装置100(図1参照)と同様にして、IF_VA(インストラクション仮想アドレス)に基づいて、TLBが検索される。
【0208】
ここで、インストラクションアクセスに関してHIT(TLBヒット)の場合、下位アドレス変換部600は、PAGE_TABLE_ENTRY(TLBデータ)およびIF_uTLB_WRT(インストラクションTLBデータライト信号)を上位IFアドレス変換部500へ出力する。
【0209】
これにより、上位IFアドレス変換部500では、インストラクションTLBにTLB−TAG<41:0>およびTLB−DATA<29:0>が格納される。次回以降で、当該IF_VA(インストラクション仮想アドレス)は、上位IFアドレス変換部500でIF_PA(インストラクション物理アドレス)に変換される。
【0210】
(アクセス衝突)
つぎに、パイプライン制御によりオペランドアクセスとインストラクションアクセスとが同時に発生した場合、すなわちアクセス衝突が発生した場合について説明する。
【0211】
この場合には、図7に示したOP_GO(オペランドアクセス要求信号)およびOP_VA(オペランド仮想アドレス)が上位OPアドレス変換部400に入力されるとともに、IF_GO(インストラクションアクセス要求信号)およびIF_VA(インストラクション仮想アドレス)が上位IFアドレス変換部500に入力される。
【0212】
この場合、上位OPアドレス変換部400および上位IFアドレス変換部500においては、独立的に動作するため、共にTLBヒットの場合、並列的にアドレス変換が可能となる。
【0213】
以上説明したように、実施の形態2によれば、上位OPアドレス変換部400および上位IFアドレス変換部500と、オペランドアクセスとインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、待機レジスタ(図示略)に保持された待機インストラクション仮想アドレスを物理アドレスに変換させる下位アドレス変換部600とからなる2階層構成でアドレス変換を行うこととしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができる。
【0214】
以上本発明にかかる実施の形態1および2について図面を参照して詳述してきたが、具体的な構成例はこれらの実施の形態1および2に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【0215】
(付記1)オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、
前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、
前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段と、
を備えたことを特徴とするアドレス変換装置。
【0216】
(付記2)前記オペランドアクセス制御手段は、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御手段は、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする付記1に記載のアドレス変換装置。
【0217】
(付記3)前記オペランドアクセス制御手段は、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記1または2に記載のアドレス変換装置。
【0218】
(付記4)前記インストラクションアクセス制御手段は、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記1〜3のいずれか一つに記載のアドレス変換装置。
【0219】
(付記5)複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスとオペランドアクセスとのアクセス衝突が発生した場合、前記オペランドアクセス制御手段は、前記オペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記保持されたインストラクション仮想アドレスを破棄し、前記高優先度インストラクションアクセスに対応するインストラクション仮想アドレスを保持させ、前記オペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応する高優先度インストラクションアクセスを実行させることを特徴とする付記1〜4のいずれか一つに記載のアドレス変換装置。
【0220】
(付記6)前記インストラクションアクセス制御手段は、前記インストラクションアクセスに対応するインストラクション仮想アドレスが保持された状態で、新たなインストラクションアクセスの要求があった場合、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを優先的に実行し、新たなインストラクションアクセスに対応するインストラクション仮想アドレスを保持させ、先のインストラクションアクセスの終了後、保持された前記インストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記1〜5のいずれか一つに記載のアドレス変換装置。
【0221】
(付記7)オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを用いたアドレス変換方法であって、
前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御工程と、
前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御工程と、
を含むことを特徴とするアドレス変換方法。
【0222】
(付記8)前記オペランドアクセス制御工程では、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御工程では、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする付記7に記載のアドレス変換方法。
【0223】
(付記9)前記オペランドアクセス制御工程では、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御工程では、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記7または8に記載のアドレス変換方法。
【0224】
(付記10)前記インストラクションアクセス制御工程では、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記7〜9のいずれか一つに記載のアドレス変換方法。
【0225】
(付記11)オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段とを備えた下位アドレス変換手段と、
前記オペランドアドレス変換バッファよりも高速アクセス可能であって、該オペランドアドレス変換バッファに格納されたオペランドアドレス変換データの一部を保持し、オペランドアクセスに応じて、オペランド仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位オペランドアドレス変換手段と、
前記インストラクションアドレス変換バッファよりも高速アクセス可能であって、該インストラクションアドレス変換バッファに格納されたインストラクションアドレス変換データの一部を保持し、インストラクションアクセスに応じて、インストラクション仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位インストラクションアドレス変換手段と、
を備えたことを特徴とする2階層アドレス変換装置。
【0226】
(付記12)前記オペランドアクセス制御手段は、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御手段は、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする付記11に記載の2階層アドレス変換装置。
【0227】
(付記13)前記オペランドアクセス制御手段は、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記11または12に記載の2階層アドレス変換装置。
【0228】
(付記14)複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする付記11〜13のいずれか一つに記載の2階層アドレス変換装置。
【0229】
【発明の効果】
以上説明したように、本発明によれば、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができるという効果を奏する。
【0230】
また、本発明によれば、オペランドアドレス変換バッファとインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを設け、固定領域という制限を持たせたため、一方のアドレス変換バッファの容量が他方のアドレス変換バッファの容量よりも過剰に増えることが無くなり、アドレス変換のヒット率が安定するため、アドレス変換にかかる処理速度を安定化することができるという効果を奏する。
【0231】
また、本発明によれば、オペランド選択フラグと、オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、インストラクション選択フラグと、インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することとしたのでオペランドアドレス変換バッファおよびインストラクションアドレス変換バッファへのアクセスを効率良く行うことができるという効果を奏する。
【0232】
また、本発明によれば、新規のオペランドアクセスと、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、新規のオペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることとしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができるという効果を奏する。
【0233】
また、本発明によれば、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、高優先度インストラクションアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることとしたので、割り込みによるインストラクションアクセスを行うことができるという効果を奏する。
【0234】
また、本発明によれば、上位オペランドアドレス変換手段および上位インストラクションアドレス変換手段と、オペランドアドレス変換バッファへのオペランドアクセスとインストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、オペランドアクセスを優先的に実行させた後、保持されたインストラクション仮想アドレスを物理アドレスに変換させる下位アドレス変換手段とからなる2階層構成でアドレス変換を行うこととしたので、リトライによる時間ロスが生じず、高速でアドレス変換を行うことができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明にかかる実施の形態1の構成を示すブロック図である。
【図2】同実施の形態1の構成を示すブロック図である。
【図3】図1に示した選択信号生成回路110における第1の真理値表111aを示す図である。
【図4】図1に示した選択信号生成回路110における第2の真理値表111bを示す図である。
【図5】図1に示したRAM−ACS−ADDのデータ構造を示す図である。
【図6】図1に示したTLB−RAM160の構成を示す図である。
【図7】本発明にかかる実施の形態2の構成を示すブロック図である。
【図8】図7に示した上位OPアドレス変換部400の構成を示すブロック図である。
【図9】図7に示したPAGE_TABLE_ENTRYのデータ構造を示す図である。
【図10】従来のアドレス変換を説明するブロック図である。
【図11】仮想アドレスVAおよび物理アドレスPAのデータ構造を示す図である。
【図12】TLB−TAGおよびTLB−DATAのデータ構造を示す図である。
【符号の説明】
100 アドレス変換装置
110 選択信号生成回路
130 仮想アドレス選択回路
150 ラムアクセスアドレス生成部
160 TLB−RAM
160a OP領域
160b IF領域
161 TLB
161a OP−TLB
161b IF−TLB
170 比較回路
180 合成回路
190 待機レジスタ
300 アドレス変換装置
400 上位OPアドレス変換部
500 上位IFアドレス変換部
600 下位アドレス変換部

Claims (9)

  1. オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、
    前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、
    前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段と、
    を備えたことを特徴とするアドレス変換装置。
  2. 前記オペランドアクセス制御手段は、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御手段は、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする請求項1に記載のアドレス変換装置。
  3. 前記オペランドアクセス制御手段は、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御手段は、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項1または2に記載のアドレス変換装置。
  4. 前記インストラクションアクセス制御手段は、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項1〜3のいずれか一つに記載のアドレス変換装置。
  5. オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファを用いたアドレス変換方法であって、
    前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御工程と、
    前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御工程と、
    を含むことを特徴とするアドレス変換方法。
  6. 前記オペランドアクセス制御工程では、オペランドアクセスの要求に応じて発行され前記オペランドアドレス変換バッファ側を選択するためのオペランド選択フラグと、前記オペランド仮想アドレスに含まれ前記オペランドアドレス変換バッファにおける前記オペランドアドレス変換データのアドレスとに基づいて、オペランドアドレス変換バッファへのオペランドアクセスを制御し、前記インストラクションアクセス制御工程では、インストラクションアクセスの要求に応じて発行され前記インストラクションアドレス変換バッファ側を選択するためのインストラクション選択フラグと、前記インストラクション仮想アドレスに含まれ前記インストラクションアドレス変換バッファにおける前記インストラクションアドレス変換データのアドレスとに基づいて、インストラクションアドレス変換バッファへのインストラクションアクセスを制御することを特徴とする請求項5に記載のアドレス変換方法。
  7. 前記オペランドアクセス制御工程では、新規のオペランドアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記新規のオペランドアクセスを優先的に実行させ、前記インストラクションアクセス制御工程では、前記新規のオペランドアクセスの終了後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項5または6に記載のアドレス変換方法。
  8. 前記インストラクションアクセス制御工程では、複数のインストラクションアクセスの中で優先度を高く設定された高優先度インストラクションアクセスと、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスとのアクセス衝突が発生した場合、前記高優先度インストラクションアクセスを優先的に実行させた後、前記保持されたインストラクション仮想アドレスに対応するインストラクションアクセスを実行させることを特徴とする請求項5〜7のいずれか一つに記載のアドレス変換方法。
  9. オペランド仮想アドレスを物理アドレスに変換するためのオペランドアドレス変換データを格納するオペランドアドレス変換バッファと、インストラクション仮想アドレスを物理アドレスに変換するためのインストラクションアドレス変換データを格納するインストラクションアドレス変換バッファとがそれぞれ固定領域をもって同一のメモリを共有してなるアドレス変換バッファと、前記オペランドアドレス変換バッファへのオペランドアクセスと前記インストラクションアドレス変換バッファへのインストラクションアクセスとのアクセス衝突が発生した場合、前記オペランドアクセスを優先的に実行させるとともに、前記インストラクションアクセスに対応するインストラクション仮想アドレスを保持させるオペランドアクセス制御手段と、前記オペランドアクセスの終了後、インストラクションアクセスを実行し、インストラクションアドレス変換バッファを用いて、保持された前記インストラクション仮想アドレスを物理アドレスに変換させるインストラクションアクセス制御手段とを備えた下位アドレス変換手段と、
    前記オペランドアドレス変換バッファよりも高速アクセス可能であって、該オペランドアドレス変換バッファに格納されたオペランドアドレス変換データの一部を保持し、オペランドアクセスに応じて、オペランド仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位オペランドアドレス変換手段と、
    前記インストラクションアドレス変換バッファよりも高速アクセス可能であって、該インストラクションアドレス変換バッファに格納されたインストラクションアドレス変換データの一部を保持し、インストラクションアクセスに応じて、インストラクション仮想アドレスを物理アドレスに変換し、変換不可の場合、前記下位アドレス変換手段へ変換を依頼する上位インストラクションアドレス変換手段と、
    を備えたことを特徴とする2階層アドレス変換装置。
JP2002197952A 2002-07-05 2002-07-05 アドレス変換装置、アドレス変換方法および2階層アドレス変換装置 Expired - Fee Related JP3970705B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002197952A JP3970705B2 (ja) 2002-07-05 2002-07-05 アドレス変換装置、アドレス変換方法および2階層アドレス変換装置
US10/330,322 US6915406B2 (en) 2002-07-05 2002-12-30 Address translation apparatus, address translation method, and two-layer address translation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002197952A JP3970705B2 (ja) 2002-07-05 2002-07-05 アドレス変換装置、アドレス変換方法および2階層アドレス変換装置

Publications (2)

Publication Number Publication Date
JP2004038806A JP2004038806A (ja) 2004-02-05
JP3970705B2 true JP3970705B2 (ja) 2007-09-05

Family

ID=29997094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002197952A Expired - Fee Related JP3970705B2 (ja) 2002-07-05 2002-07-05 アドレス変換装置、アドレス変換方法および2階層アドレス変換装置

Country Status (2)

Country Link
US (1) US6915406B2 (ja)
JP (1) JP3970705B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100560950B1 (ko) * 2004-04-20 2006-03-14 주식회사 하이닉스반도체 반도체 소자의 대기 신호 생성 회로
US7594094B2 (en) * 2006-05-19 2009-09-22 International Business Machines Corporation Move data facility with optional specifications
US7581074B2 (en) * 2006-05-19 2009-08-25 International Business Machines Corporation Facilitating use of storage access keys to access storage
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9824021B2 (en) * 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9569115B2 (en) * 2014-03-31 2017-02-14 International Business Machines Corporation Transparent code patching
US10521351B2 (en) * 2017-01-12 2019-12-31 International Business Machines Corporation Temporarily suppressing processing of a restrained storage operand request
US10621090B2 (en) 2017-01-12 2020-04-14 International Business Machines Corporation Facility for extending exclusive hold of a cache line in private cache
US10228991B2 (en) * 2017-06-28 2019-03-12 Qualcomm Incorporated Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151086A (ja) 1991-11-27 1993-06-18 Koufu Nippon Denki Kk アドレス変換バツフア回路
EP0813709B1 (en) * 1995-03-03 2007-10-17 Fujitsu Limited Parallel access micro-tlb to speed up address translation
JPH10177520A (ja) 1996-10-16 1998-06-30 Hitachi Ltd データプロセッサ及びデータ処理システム
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
US6119205A (en) * 1997-12-22 2000-09-12 Sun Microsystems, Inc. Speculative cache line write backs to avoid hotspots
US6298404B1 (en) 1998-11-13 2001-10-02 Ricoh Company, Ltd. Digital copier with an unified memory which stores computer instructions and image data
US6389527B1 (en) * 1999-02-08 2002-05-14 Kabushiki Kaisha Toshiba Microprocessor allowing simultaneous instruction execution and DMA transfer
US6560664B1 (en) * 2000-02-18 2003-05-06 Hewlett Packard Development Company, L.P. Method and apparatus for translation lookaside buffers to access a common hardware page walker
US6622218B2 (en) * 2000-06-10 2003-09-16 Hewlett-Packard Development Company, Lp. Cache coherence protocol engine and method for efficient processing of interleaved memory transactions in a multiprocessor system
US6728800B1 (en) * 2000-06-28 2004-04-27 Intel Corporation Efficient performance based scheduling mechanism for handling multiple TLB operations
EP1182551B1 (en) * 2000-08-21 2017-04-05 Texas Instruments France Address space priority arbitration

Also Published As

Publication number Publication date
US6915406B2 (en) 2005-07-05
US20040006679A1 (en) 2004-01-08
JP2004038806A (ja) 2004-02-05

Similar Documents

Publication Publication Date Title
US6161166A (en) Instruction cache for multithreaded processor
US7089370B2 (en) Apparatus and method for pre-fetching page data using segment table data
US7721023B2 (en) I/O address translation method for specifying a relaxed ordering for I/O accesses
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US20050091476A1 (en) Apparatus for supporting a logically partitioned computer system
JP3666689B2 (ja) 仮想アドレス変換方法
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US20050125592A1 (en) Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
JP2006146965A (ja) ペンディング要求間の仲裁方法
JP5328792B2 (ja) プロセッサの非常にアソシエティビティの高いキャッシュメモリ用のセカンドチャンス置換機構
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
JP3449487B2 (ja) 変換索引緩衝機構
JP3970705B2 (ja) アドレス変換装置、アドレス変換方法および2階層アドレス変換装置
US20090228667A1 (en) Performing a Least Recently Used (LRU) Algorithm for a Co-Processor
JP2768503B2 (ja) 仮想記憶アドレス空間アクセス制御方式
JPH0695972A (ja) ディジタルコンピュータシステム
GB2386441A (en) Bus interface selection by page table attributes
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
WO2016188392A1 (zh) 一种数据地址产生系统和方法
JP2013073271A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
US6298355B1 (en) Computer system
JP2008511882A (ja) 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法
JP2685455B2 (ja) データ処理装置
JP4116346B2 (ja) 演算処理装置及びそのアドレス変換方法
JPH1165930A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3970705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140615

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees