(57)【特許請求の範囲】
【請求項１】
変換ルックアサイド・バッファ（ＴＬＢ）を介して明示アドレスを物理アドレスに変換する方法であって、該ＴＬＢは、Ｎ個のエントリから構成されており、それぞれのエントリは、有効ビット、物理ページ番号、該物理ページ番号に対応する仮想タグ、該物理ページ番号に関連づけられた間接アドレスを有するエントリ空間タグ、および、空間レジスタ・ファイルにおける空間レジスタについて、該空間レジスタに記憶された間接アドレスと前記エントリ空間タグの間接アドレスとが合致するかどうかを示す合致ビットを記憶する合致ビット記憶セルを備えており、該方法は、
（ａ）前記明示アドレスを、少なくとも、インデックスおよびＴＬＢインデックスに分割するステップと、
（ｂ）前記ＴＬＢインデックスを、前記仮想タグと比較するステップと、
（ｃ）前記インデックスに対応する空間レジスタについて、前記合致ビット記憶セルを参照するステップと、
（ｄ）前記ＴＬＢの同じエントリ内で、前記ステップ（ｂ）の比較において前記ＴＬＢインデックスと前記仮想タグが等しく、かつ、前記ステップ（ｃ）において参照した前記合致ビット記憶セルに記憶された合致ビットが前記合致を示していれば、ＴＬＢヒットを生成するステップと、
（ｅ）前記ＴＬＢヒットが起こったエントリの前記物理ページ番号を、物理アドレスの一部として供給するステップと、
を含む、方法。
【請求項２】
（i）前記空間レジスタに間接アドレスを書き込むステップと、
（ii）前記空間レジスタに書き込まれた前記間接アドレスを、前記エントリ空間タグと比較するステップと、
（iii）前記ステップ（ii）の比較の結果を示す合致ビットを、該空間レジスタの前記合致ビット記憶セルに記憶するステップと、
を実行することにより、前記合致ビット記憶セルに前記合致ビットが記憶されるようにする、
請求項１に記載の方法。
【請求項３】
前記書き込むステップ（i）、前記比較するステップ（ii）、および前記記憶するステップ（iii）は、前記空間レジスタ・ファイルにおける空間レジスタのそれぞれについて繰り返される、請求項２に記載の方法。
【請求項４】
前記空間レジスタが更新される時、または前記ＴＬＢのエントリが置き換えられる時、前記比較するステップ（ii）および前記記憶するステップ（iii）が実行される、
請求項２に記載の方法。
【請求項５】
前記インデックスのビット数はNであり、
前記参照するステップ（ｃ）は、２のN乗個の前記合致ビット記憶セルのうちの１つを選択することを含む、
請求項４に記載の方法。
【請求項６】
前記分割するステップ（ａ）は、さらに、
前記明示アドレスを、前記インデックスおよび基底に分割し、該基底を、前記ＴＬＢインデックスおよびオフセットに分割することを含む、
請求項１に記載の方法。
【請求項７】
前記比較するステップ（ｂ）は、さらに、
前記ＴＬＢインデックスを、前記ＴＬＢのすべてのエントリの前記仮想タグと比較することを含む、
請求項１に記載の方法。
【請求項８】
前記ＴＬＢは、さらに、前記エントリごとに、該エントリの前記合致ビット記憶セルに対応する空間レジスタを示す上位インデックス・タグを有しており、
前記参照するステップ（ｃ）は、さらに、
前記インデックスを、該上位インデックス・タグと比較し、
該インデックスが該上位インデックス・タグに等しければ、該上位インデックス・タグが設けられたエントリの前記合致ビット記憶セルを参照する、
ことを含む、請求項１に記載の方法。
【請求項９】
アドレス空間内の明示アドレスであって、インデックス、ＴＬＢインデックス、およびオフセットからなる明示アドレスを、物理アドレスに変換するためのアドレス変換装置であって、
対応するインデックス値の間接アドレスをそれぞれが有する複数の空間レジスタを含む空間レジスタ・ファイルと、
有効ビット、物理ページ番号、該物理ページ番号に対応する仮想タグ、該物理ページ番号に関連づけられた間接アドレスを有するエントリ空間タグを、それぞれが有するＮ個のＴＬＢエントリから構成されるメモリと、
前記ＴＬＢエントリのそれぞれに設けられた合致ビット・メモリ手段であって、前記空間レジスタ・ファイルの空間レジスタについて、該空間レジスタに含まれる間接アドレスと該ＴＬＢエントリの前記エントリ空間タグの間接アドレスとが合致するかどうかを示す合致ビットを記憶する合致ビット・メモリ手段と、
前記ＴＬＢインデックスのみを前記仮想タグと比較するＴＬＢインデックス比較手段と、
前記インデックスに対応する空間レジスタについて、前記合致ビット・メモリ手段を参照する参照手段と、
同じ前記ＴＬＢエントリ内において、前記物理ページ番号に対応する前記仮想タグと、前記ＴＬＢインデックスとが等しく、かつ、前記参照した合致ビット・メモリ手段の合致ビットが、前記合致を示す時、該物理ページ番号を、前記物理アドレスの一部として供給する供給手段と、
を備える、アドレス変換装置。
【請求項１０】
前記ＴＬＢインデックス比較手段は、前記仮想タグにのみ接続される第１の入力、前記ＴＬＢインデックスにのみ接続される第２の入力、および出力を持つ第１の比較器を備える、
請求項９に記載のアドレス変換装置。
【請求項１１】
さらに、
前記空間レジスタ・ファイルに接続され、前記空間レジスタの内容を修正する空間レジスタ書込みデータ・バスと、
前記エントリ空間タグに接続される第１の入力、前記空間レジスタ書込みデータ・バスに接続される第２の入力、および出力を持つ第２の比較器と、を備え、
前記合致ビット・メモリ手段は、前記第２の比較器の前記出力に接続される入力、および出力を有し、該第２の比較器によって生成された結果を記憶するよう構成されており、
前記参照手段は、前記合致ビット・メモリ手段の前記出力に接続される、
請求項９に記載のアドレス変換装置。
【請求項１２】
前記合致ビット・メモリ手段は、
前記第２の比較器の出力に接続されるデータ入力、書込み入力、および出力を持つ単一ビットの記憶セルと、
前記インデックスに接続されるセレクト入力、更新空間レジスタ制御ラインに接続されるイネーブル入力、および出力を持つデコーダであって、該出力の個数は、前記単一ビットの記憶セルの個数に等しい、デコーダと、
を備え、前記デコーダの出力のそれぞれは、対応する前記単一ビットの記憶セルの前記書込み入力に接続される、
請求項１１に記載のアドレス変換装置。
【請求項１３】
前記参照手段は、対応する前記単一ビットの記憶セルにそれぞれが接続される入力、前記インデックスに接続され、該入力のうちの１つを選択するセレクト入力、および前記供給手段に接続される出力、を持つマルチプレクサを備え、前記対応する前記単一ビットの記憶セルにそれぞれが接続される前記入力の個数は、該単一ビットの記憶セルの個数に等しい、
請求項１２に記載のアドレス変換装置。
【請求項１４】
前記供給手段は、さらに、
データ・バスと、
前記有効ビットに接続される第１の入力、前記ＴＬＢインデックス比較手段の出力に接続される第２の入力、前記参照手段の出力に接続される第３の入力、およびＴＬＢヒットを生成する出力を持つ３入力ＡＮＤゲートと、
前記データ・バスに接続され、前記ＴＬＢヒットが前記ＴＬＢに存在しない時に該データ・バスをプルダウンする受動引き下げ回路と、
前記有効ビットおよび前記物理ページ番号に接続される入力、前記３入力ＡＮＤゲートの出力に接続されるイネーブル入力、および前記データ・バスに接続され、前記ＴＬＢヒットが存在する時に前記物理アドレスの一部として物理ページ番号を供給する出力を持つ３態励振器と、
を備える、請求項１１に記載のアドレス変換装置。
【請求項１５】
前記ＴＬＢエントリは、さらに、該ＴＬＢエントリの前記合致ビット・メモリ手段に対応する空間レジスタを示す上位インデックス・タグを有しており、
前記参照手段は、さらに、前記インデックスのビットに接続される第１の入力、前記上位インデックス・タグに接続される第２の入力、および前記供給手段に接続される出力を持つ第３の比較器を備える、
請求項１０に記載のアドレス変換装置。
【請求項１６】
前記合致ビット・メモリ手段は、
データ入力、書込みイネーブル入力、およびデータ出力を持つ単一ビットの合致ビット記憶セルと、
対応する前記空間レジスタが変更される時に、該単一ビットの合致ビット記憶セルを更新する更新手段と、
を備える、請求項１１に記載のアドレス変換装置。
【請求項１７】
前記更新手段は、さらに、
前記第２の比較器の出力に接続される第１の入力、挿入エントリ・ラインに接続される第２の入力、および前記単一ビットの合致ビット記憶セルのデータ入力に接続される出力を持つ第１のＯＲゲートと、
前記挿入エントリ・ラインに接続される第１の入力、第２の入力、および前記単一ビットの合致ビット記憶セルの書込みイネーブル入力に接続される出力を持つ第２のＯＲゲートと、
更新空間レジスタ制御ラインに接続される第１の入力、第２の入力、および前記第２のＯＲゲートの第２の入力に接続される出力を持つＡＮＤゲートと、
を備える、請求項１６に記載のアドレス変換装置。
【請求項１８】
前記供給手段は、さらに、
データ・バスと、
前記有効ビットに接続される第１の入力、前記ＴＬＢインデックス比較手段の出力に接続される第２の入力、前記第３の比較器の出力に接続される第３の入力、前記合致ビット・メモリ手段の出力に接続される第４の入力、およびＴＬＢヒットを生成する出力を持つ４入力ＡＮＤゲートと、
前記データ・バスに接続され、前記ＴＬＢにヒットが存在しない時に該データ・バスをプルダウンする受動引き下げ回路と、
前記物理ページ番号に接続されるデータ入力、前記４入力ＡＮＤゲートに接続されるイネーブル入力、および前記データ・バスに接続され、前記ＴＬＢヒットが存在する時に前記物理アドレスの一部として前記物理ページ番号を供給する出力を持つ３態励振器と、
を備える、請求項１５に記載のアドレス変換装置。
【請求項１９】
間接アドレスを記憶する空間レジスタ・ファイルを有する仮想記憶システムにおいて、基底ビットおよびインデックス・ビットを持つ明示アドレスの物理アドレスへのＴＬＢ変換を高速化する方法であって、ＴＬＢにおけるエントリは、物理ページ番号、該物理ページ番号に対応する仮想タグ、該物理ページ番号に関連づけられた間接アドレスを有するエントリ空間タグ、および、前記空間レジスタ・ファイルにおける空間レジスタについて、該空間レジスタに記憶された間接アドレスと前記エントリ空間タグの間接アドレスとが合致するかどうかを示す合致ビットを記憶する合致ビット記憶セルを備えており、
（ｉ）前記ＴＬＢのエントリが更新される度に、該エントリの前記エントリ空間タグを更新するステップと、
（ii）新しい間接アドレスで、前記空間レジスタ・ファイルを更新するステップと、
（iii）前記新しい間接アドレスを、前記ＴＬＢにおけるそれぞれのエントリの前記エントリ空間タグと比較するステップと、
（iv）後続の前記ＴＬＢ変換の際に使用するために、前記ステップ（iii）の比較の結果を、関連付けられた前記合致ビット記憶セルに記憶するステップと、を含み、
該方法は、さらに、前記明示アドレスを前記物理アドレスにＴＬＢ変換するための一連のステップであって、
（ａ）前記明示アドレスの基底ビットにおけるＴＬＢインデックスを、前記仮想タグと比較するステップと、
（ｂ）前記明示アドレスの前記インデックス・ビットに対応する空間レジスタについて、前記合致ビット記憶セルを参照するステップと、
（ｃ）前記ＴＬＢの同じエントリ内で、前記ステップ（ａ）の比較において前記ＴＬＢインデックスと前記仮想タグが等しく、かつ、前記ステップ（ｂ）において参照した前記合致ビット記憶セルに記憶された合致ビットが前記合致を示していれば、ＴＬＢヒットを生成するステップと、
（ｄ）前記ＴＬＢヒットが起こったエントリの前記物理ページ番号を、物理アドレスの一部として供給するステップと、を含む、方法。
【請求項２０】
明示アドレスを物理アドレスに変換するアドレス変換装置であって、該明示アドレスは、第１のインデックスおよび第２のインデックスを有し、該装置は、物理ページ番号、該物理ページ番号に対応する仮想タグ、該物理ページ番号に関連づけられた間接アドレスを有するエントリ空間タグ、をそれぞれが持つＮ個のエントリを有する変換ルックアサイド・バッファ（ＴＬＢ）を備えており、該エントリのそれぞれは、少なくとも、
前記エントリ空間タグの間接アドレスを、空間レジスタの間接アドレスと比較する第２の比較器と、
前記空間レジスタについて、前記第２の比較器による比較結果を示す合致ビットを記憶する合致ビット記憶セルと、を備えており、
前記エントリのそれぞれは、さらに、
前記明示アドレスを前記物理アドレスに変換する際に用いる第１の比較器、参照ユニット、および出力ユニットを備えており、
該第１の比較器は、前記第２のインデックスを前記仮想タグと比較し、
該参照ユニットは、前記第１のインデックスに対応する空間レジスタについて、前記合致ビット記憶セルを参照し、
該出力ユニットは、前記第２のインデックスと、前記物理ページ番号に対応する前記仮想タグとが等しく、かつ、前記参照した合致ビット記憶セルの合致ビットが、前記エントリ空間タグの間接アドレスと前記空間レジスタの間接アドレスとの合致を示す時、該物理ページ番号を前記物理アドレスの一部として出力する、よう構成されている、
アドレス変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にコンピュータ記憶システムのアーキテクチャに関するもので、特に、区画された仮想アドレス空間を有する記憶システムの処理能力の向上に関するものである。
【０００２】
【従来技術】
仮想記憶は、コンピュータの物理メモリの有効性を増大させるために使われる記憶システムである。仮想記憶は、ユーザの論理アドレスを物理アドレスにマップ（すなわち対応づけ）し、そのため、プログラムの一定部分が、論理アドレスと異なる物理アドレスに存在することができる。
【０００３】
実際、多くのコンピュータの論理アドレス空間は、物理アドレス空間より非常に大きい。例えば、バイト単位アドレスのコンピュータが３２ビットのアドレスを使用する場合、その論理アドレス空間は、２32、すなわち４ＧＢの記憶位置を持つ。コンピュータの多くは３２ビット・アドレスを使用しているとはいえ、大きな物理メモリを装備したコンピュータは少ない。仮想記憶の出現までは、オペレーティング・システムがプログラムのサイズを物理メモリのサイズに制限したか、あるいは、プログラマがオーバーレイまたはそれと同様の技術を使用してプログラムの最大物理サイズを減少させねばならなかった。
【０００４】
仮想記憶システムにおいては、オペレーティング・システムは、ある１時点でプログラムの一部だけを主メモリにロードする。プログラムの活動部分がメモリ参照を要求すると、ＣＰＵは、コンピュータがあたかも仮想記憶機能を有していないかのように正確に実効アドレスに分解する。しかし、ＣＰＵは実効アドレスをその主メモリ・システムへ直接送付せず、仮想記憶ハードウェアの一部であるメモリ・マップに送出する。メモリ・マップは仮想アドレスを物理アドレスに変換するシステムである。仮想記憶技術の的確な概要が、R. Baronおよび L. Higbie両氏著の" Computer Architecture, Chapter 4 (Addison-Wesley Publishing Company, 1992)"に記載されている。
【０００５】
ページング方式とセグメント方式は、実効アドレスを物理アドレスにマップする技術の例である。ページング・システムにおいては、仮想記憶ハードウェアが、物理アドレスを、ページ番号および該ページ内のワード・オフセットという２つの部分に分割する。高位ビットがページ番号を形成し、低位ビットがオフセットを形成するようにアドレスのビットが分割される。システムが、あるページをメモリにロードする時、常にそのページをページ境界の先頭に置く。複数ページを持つ物理メモリの単位は、ページ・フレームと呼ばれる。
【０００６】
デマンド・ページ仮想記憶システムにおいて、メモリ・マップはページ・マップと呼ばれる。ページ・マップの一部として、オペレーティング・システムは、ページ・テーブルを維持する。ページ・テーブルは、各々が特定ページに関する情報を保有する数多くの（ページ・テーブル）エントリからなる。従って、仮想ページ番号は、ページ・テーブルに対するオフセット値の役目を果たす。ページ・テーブルの典型的エントリには、妥当性ビット、ダーティ・ビット、保護ビットおよび当該ページに関するページ・フレーム番号が含まれる。
【０００７】
ほとんどのページング・システムは、そのページ・テーブルを主メモリに置き、ハードウェアが、メモリ上のページ・テーブル位置をポイントするページ・テーブル基底レジスタを備える。ページ・テーブルが主メモリに置かれる場合、各々の主メモリ・アクセスは、潜在的には、第２のメモリ・アクセスというオーバーヘッドを必要とする。すなわち、アドレス指定するハードウェアは、ページ・テーブルを調べてメモリ参照のためのページ・フレーム番号を入手しなければならない。付加的オーバーヘッドを回避するため、一部のハードウエア・システムは、変換ルックアサイド・バッファ（Translation Look-aside Bufferの頭文字をとって以下単にＴＬＢと呼称する場合がある）と呼ばれる小規模のキャッシュ・メモリを、ページ・マップの一部として維持し、ＴＬＢに、ページ・テーブルと本質的に同一の情報を保持する。それに加えて、ＴＬＢは、仮想ページ番号を保持するので、仮想ページ番号を対応するページ・フレーム番号にマップすることができる。一般的に、ＴＬＢは、最も最近アクセスされたページに関するエントリだけを保持する。
【０００８】
実効アドレスは、仮想記憶のアドレス変換メカニッズムを使用せず、基底変位およびインデックス付けのような命令提供アドレス・モードを使用してメモリ上の命令または変数を参照するためにＣＰＵが生成するアドレスである。これは、コンパイラの論理アドレスと通常同じであるが、コンピュータの物理アドレスと同じではない。
【０００９】
従来技術においては、実効アドレスは、明示アドレスおよび間接アドレスと呼ばれる少くとも２つの部分から構成される。明示アドレス部分は、インデックスと呼ばれるべきもので、空間レジスタ・ファイルへのインデックスとしての役目を果たす。空間レジスタ・ファイルの内容が間接アドレスを形成する。
【００１０】
実効アドレスは、間接アドレス・ビットおよび明示アドレス・ビットの連結によって形成され、インデックス・ビットのすべてを含むもの、一部を含むもの、あるいは全く含まないものもある。実効アドレス（ページ・オフセット・ビットでない）のビットの殆どは、物理アドレスの部分を形成するページ・フレーム番号またはセグメント基底アドレスを記憶する変換ルックアサイド・バッファ（ＴＬＢ）へアクセスするために伝統的に使用される。ＴＬＢエントリは、その値がＴＬＢにアクセスするために使われる実効アドレスと等しければ合致すると言われる。
【００１１】
【発明が解決しようとする課題】
従来技術のメカニズムは、空間レジスタがアクセスされ、完全な実効アドレスが使用可能となるまで、ＴＬＢアクセスを開始しない。このような空間レジスタ・ファイルおよびそれに続くＴＬＢへの逐次アクセスは、ＴＬＢの臨界経路(critical path)を増大し、ひいては、メモリ・システム処理能力全体を低下させる。更に、ＴＬＢが、パイプライン型コンピュータ設計において臨界経路である場合、その設計の動作頻度は同様に低下し、システム処理能力全体の低下につながる。従って、仮想記憶アーキテクチャを実施する方法および装置の改善が要求されている。
【００１２】
【課題を解決するための手段】
ＴＬＢの仮想アドレスから物理アドレスへの変換時間を減少させることが本発明の目的である。本発明は、臨界的アドレス変換シーケンスの間に実行される空間レジスタのフェッチおよびそれに引き続く比較動作を取り除くことによって、この目的を達成する。それに代え、本発明は、空間タグおよび合致ビット記憶セルを各ＴＬＢエントリに含め、空間レジスタの内容と空間タグに保持されるＴＬＢエントリに対応する間接アドレスとの比較を事前に実行してその結果を合致ビットに記憶し、次に、メモリ変換プロセスの過程で、合致ビット記憶の内容を選択し、先行した比較の結果を標示する。このように、合致ビット記憶の使用によって、アドレス変換プロセスの過程において空間レジスタをアクセスする必要性が取り除かれ、これによって、アドレス変換の時間が大幅に短縮される。
【００１３】
より具体的には、本発明は、間接アドレスおよび明示アドレスからなる実効仮想アドレスを物理アドレスに変換する方法を提供する。この方法には、各々が仮想タグ、有効ビット、物理ページ番号およびエントリ空間タグを持つＮ個のエントリとして構成されるＴＬＢの作成、上記明示アドレスの１つのインデックスおよびＴＬＢインデックスへの分割、上記ＴＬＢインデックスと上記仮想タグの比較、上記ＴＬＢの比較に先行て実行される上記間接アドレスと上記エントリ空間タグの比較、上記ＴＬＢインデックス比較および上記間接アドレス比較の両方が同一のＴＬＢエントリについてともに肯定的である場合におけるＴＬＢヒットの生成、および物理アドレスの一部として、上記ＴＬＢヒットが発生したＴＬＢエントリの物理ページ番号の供給が含まれる。
【００１４】
更に、本発明は、アドレス空間内にあってインデックス、変換ルックアサイド・バッファすなわちＴＬＢのインデックスおよびオフセットを含む明示アドレスを物理アドレスに変換するアドレス変換装置を提供する。該変換装置は、各々が対応するインデックス値に対する間接アドレスを有する複数の空間レジスタを含む空間レジスタ・ファイルと、各々がエントリ空間タグ、仮想タグ、有効ビットおよび物理ページ番号を含むＮ個のＴＬＢエントリとして構成されるメモリと、上記ＴＬＢインデックスのみを上記仮想タグと比較するＴＬＢインデックス比較手段と、上記物理ページ番号に対応する仮想タグと上記ＴＬＢインデックスが等しく、かつ、上記インデックスに対応する上記間接アドレスと上記物理ページ番号に対応する上記エントリ空間タグが等しい時、該物理ページ番号を物理アドレスの一部として供給する手段を備える。
【００１５】
【発明の実施の形態】
従来技術による２種類の変換ルックアサイド・バッファ（すなわちＴＬＢ）設計が、図１および図２に示されている。図１に示されるＴＬＢ２２は、中央処理装置（ＣＰＵ）から送られる仮想アドレスである明示アドレス１０を含む。明示アドレスは、インデックス・ビット１２および基底ビット１３という２つの隣接するビット・フィールドからなる。典型的には、３２ビット明示アドレスの場合、インデックス・ビットは２ビットで基底ビットは３０ビットである。インデックス・ビット１２は、間接アドレスを保持する空間レジスタ１４の１つを選択するため、空間レジスタの１つのバンクをインデックスする。空間レジスタは、現行プロセスの個別アドレス・セグメントに対するポインタである。例えば、空間レジスタは、ユーザ・プログラム空間、ユーザ・データ空間、大域データ空間およびスーパーバイザ空間をポイントすることができる。
【００１６】
選択された空間レジスタは、実効アドレス(effective address)１８を形成するため基底ビット１３と連結される間接アドレス１６を提供する。実効アドレス１８は、仮想ページ番号２０とページ・オフセット（図示されてない）に分割される。ページ・オフセットにおけるビットの数は、従来技術で知られるとおり、ページのサイズによって決定され、仮想ページ番号２０のビットの数は、ＴＬＢ２２における（Ｎ個の）エントリの各々をアドレスするに十分なものでなければならない。例えば、２０４８バイトのページ・サイズ、３２ビットの明示アドレスおよび３２ビットの間接アドレスの場合に関しては、ページ・オフセットは１１ビットからなり、仮想ページ番号２０は、５１ビットからなる。
【００１７】
ＴＬＢ２２は、Ｎ個のエントリを持つ完全連想メモリとして構成されている。各エントリは、１つの仮想ページ番号から物理ページ番号への変換に加えてその他のアクセス情報を保持することができるもので、多数の個別フィールドから構成される。例えば、図１のＴＬＢエントリ０は、仮想ページ番号２４、有効ビット２８、物理ページ番号３６およびその他アクセス情報３８からなる。エントリ中の各フィールドのビット数は、特に仮想および物理アドレス空間のサイズによって決まる。しかし、仮想ページ番号２４のビット数は、仮想ページ番号２０のビット数、例えば５１ビットと一致しなければならない。エントリＮ−１のケースにおける比較器４４、ＡＮＤゲート４８および励振器５０によって図示されているように、付加的ハードウェアが、各テーブル・エントリに対して備えられる。
【００１８】
エントリが有効である、すなわち、有効ビット２８が論理高位状態にあると仮定すると、物理ページ番号３６は、仮想ページ番号２４に等しい仮想ページ番号２０を持つ実効アドレス１８に対する仮想アドレスから物理アドレスへの変換の成果である。その他の情報３８は、例えば、アクセス識別子のような関連エントリに関する付加情報を含む。
【００１９】
図１では単一ブロックとして示されているが、ＴＬＢ２２は、速度、シリコン面積およびコストを最適化するため別々のメモリ・ブロックから構成することもできる。例えば、仮想ページ番号エントリは、別々のより高速のメモリに記憶することができる。ＳＲＡＭを選択して、ＴＬＢアドレス変換が単一ＣＰＵクロック・サイクル内で発生できるようにするのが理想的である。しかし、後述するように、この設計を使用して単一サイクル・アクセス時間で処理するようにすることは必ずしも可能でない。従って、ロード遅延スロットの追加が必要とされるか、さもなければ、（処理能力の観点から割高ではあるが）クロック・サイクルを長くすることもできる。
【００２０】
従来技術ＴＬＢの第２の実施形態が図２に示されている。図２の実施形態は、インデックス・ビット１２が実効アドレスに含まれている点を除き図１のものと同一である。実効アドレスにインデックス・ビット１２を含めるため、ＴＬＢの仮想ページ番号のビット数は、インデックス・ビットの数だけ増加しなければならない。従って、ＴＬＢメモリのサイズと比較器のサイズは比例して増加しなければならず、その結果一層遅いＴＬＢとなる。しかし、図２の実施形態による仮想アドレス空間は、図１のものより大きい。
【００２１】
動作について述べれば、ＴＬＢ２２は、仮想ページ番号２０をＴＬＢ２２に記憶される仮想ページ番号のすべてと同時に比較する。ページ番号２０がエントリのページ番号と一致し、エントリが有効であれば、対応する物理ページ番号が選選択される。例えば、仮想ページ番号２０は、比較器２６によってエントリ０の仮想ページ番号２４と比較される。仮想ページ番号２４は、対応する物理ページ番号３６を識別する「タグ」としてのはたらきをする。比較器２６の出力は、ライン２７を通してＡＮＤゲート３０に接続される。有効ビット２８がまたＡＮＤゲート３０に接続される。ＡＮＤゲート３０の出力は、ライン３１を通して３態励振器３２のイネーブル入力に接続される。比較器２６の出力および有効ビットが両方とも高位状態であれば、そのエントリ位置において「ヒット」が存在する。「ヒット」があるならば、３態励振器３２はイネーブル（使用可能化）され、ＴＬＢデータ３４がバス４０上へ送出される。バス４０へ送出されるデータは、明示アドレス１０に関する物理アドレス変換５３である。物理アドレス変換５３は、ＴＬＢヒット・ビット５４、物理ページ番号５６およびその他のアクセス情報５８からなる。ＴＬＢヒット・ビット５４は、エントリ２３の有効ビット２８に対応する。「ヒット」がＴＬＢ２２に存在しない場合、受動引き下げ手段を使用してＴＬＢヒット・ビット５４を低位に設定する。
【００２２】
図１および図２いずれのＴＬＢを使ってもアドレス変換の実行に必要な時間は、個々の遅延のすべての和に等しい。図１および図２のＴＬＢ設計の並列性には限界がある。仮想ページ番号タグを（各エントリ毎に）ＴＬＢエントリのアクセス中仮想ページ番号アドレスと比較する動作が、唯一の並列処理であり、その他はすべて順次処理される。
【００２３】
図１および図２の従来技術ＴＬＢ設計に関するアドレス変換シーケンスが、図３に示されている。図３のシーケンスは、図１のエントリ０を参照して示されているが、シーケンスはすべてのエントリについて同じである。明示アドレス１０が有効な場合、アドレス変換は時間Ｔ0で開始する。明示アドレス１０のインデックス・ビット１２が、空間レジスタ１４をインデックスする。レジスタ読み取りアクセスのため時間Ｔ1が経過後、間接アドレス１６が空間レジスタから出力され実効アドレス１８が形成される。時間Ｔ2経過後、比較器２６からの出力が有効となる。次に、エントリの有効ビット２８がセットされていると仮定すると、ＡＮＤゲート３０を通過する遅延時間Ｔ3が存在する。ＡＮＤゲート３０の出力が有効になった後、ＴＬＢデータ３４がデータ・バス４０上へ送出されるまで遅延Ｔ4の時間を要する。従ってアドレス変換時間Ｔは、Ｔ＝Ｔ1＋Ｔ2＋Ｔ3＋Ｔ4である。空間レジスタ読み取りアクセス時間Ｔ1および比較器遅延時間Ｔ2が全変換時間Ｔの主要因子である。本発明は、詳細に後述するように、これら２つの因子の両方を最小にすることによって、仮想アドレスから物理アドレスへの変換時間を大幅に減少させるものである。
【００２４】
図４には、本発明に従うＴＬＢ３５が図示されているが、このＴＬＢでは、インデックス・ビット１２が実効アドレス６０に含まれていない。ＴＬＢ３５は、図１の従来技術のＴＬＢに対応するものではあるが、ＴＬＢ３５に関する変換時間は大幅に減少される。図４に示されるＴＬＢ３５の参照符号は、図１の各部分に付けられたものと同じである。本発明では、ＴＬＢエントリに記憶される仮想ページ番号から間接アドレス１６を取り除くことによって変換時間Ｔが減少される。変換時間Ｔから、空間レジスタ読取りアクセス時間Ｔ1を削除し、比較するビット数が激減するため比較器を経由する遅延Ｔ2が大幅に減少する。
【００２５】
明示アドレス１０が図１の場合と同様にインデックス・ビット１２と基底ビット１３に分解される。しかし、図１と相違して、間接アドレス１６は、実効アドレス６０を形成するため基底ビット１３に付加されず、その代わり、実効アドレス６０は、単に明示アドレス１０の中の基底ビット１３から構成される。実効アドレスは、ＴＬＢインデックス６２とオフセットＯに分割される。ＴＬＢインデックス６２は、実効アドレスの上位Ｋビットからなる。ＴＬＢインデックス６２のビット数Kは、次の方程式によって決定される。
K=E-I-log2(N)
但し、E=明示アドレスのビット数、I=インデックスのビット数およびN=ページのサイズ、である。本発明の好ましい実施形態においては、E=32、I=2、N=2048、K=19である。
【００２６】
ＴＬＢ３５のＴＬＢエントリは、従来技術のＴＬＢと異なる。例えば、ＴＬＢエントリ０は、物理ページ番号３６、その他の情報３８および上述の従来技術のその他の関連コンポーネントに加えて、仮想タグ６３、エントリ空間タグ７２、合致ビット記憶セルＭ０−Ｍ３およびマルチプレクサ９８を含む。ＴＬＢ３５の各エントリは本質的に同一であるので、以下においてＴＬＢエントリ５５を例として説明するが、当業者がそのようなエントリＮ個を有するＴＬＢ３５を構築することは可能であろう。
【００２７】
ＴＬＢエントリ５５に含まれるエントリ空間タグ７２は、物理ページ番号３６に関連づけられる間接アドレス７４を記憶する。間接アドレス７４は、比較器７６の第１の入力に接続される。空間レジスタ書込みデータ・バス７８が、比較器７６の第２の入力に接続される。比較器出力は、合致ビット記憶セルＭ０、Ｍ１，Ｍ２、Ｍ３へライン８０を経由して接続される。
【００２８】
各合致ビット記憶セルは、個別にアドレス可能な単一のビット記憶セルである。記憶セルを更新する方法は、図５を参照して後述する。合致ビット記憶セルの数は、空間レジスタ１４の数と等しい。各記憶セルは、特定の空間レジスタと関連づけられる。図４に示される実施形態においては、４つの空間レジスタがあり、従って、４つの合致ビット記憶セルがある。各合致ビット記憶セルは、エントリ空間タグ７２が対応する空間レジスタ・ファイルのエントリと合致するか否かをその状態によって標示する。
【００２９】
合致ビット記憶セルＭ０、Ｍ１，Ｍ２、Ｍ３の出力は、合致ビット・ライン９６、９４、９２および９０を経由してマルチプレクサ９８の入力に接続される。マルチプレクサ９８のセレクト入力が、インデックス・ビット１２に接続される。このように、従来技術と同様に、インデックス・ビット１２が空間レジスタを選択するために使われるとはいえ、本発明のこの実施形態では、インデックス・ビット１２は、対応する合致ビット記憶セルの出力を選択する。
【００３０】
マルチプレクサ９８の出力は、ライン７０を経由して３入力ＡＮＤゲート６６の入力に接続される。有効ビット２８もまたＡＮＤゲート６６の入力に接続される。ＡＮＤゲート６６の３番目の入力は、比較器６４の出力に接続される。比較器６４の入力は、ＴＬＢインデックス６２および仮想タグ６３に接続される。ＡＮＤゲート６６の出力は、３態励振器３２のイネーブル入力に接続される。選択された合致ビットが高位状態で、タグ６３がＴＬＢインデックス６２と等しく、かつ有効ビット２８が高位状態である場合、３態励振器３２はイネーブル（使用可能化）される。
【００３１】
従来技術に対するＴＬＢ３５の長所の１つは、間接アドレス比較が先行して実行される点である。この長所は、以下の合致記憶セルの詳細な説明で明らかとなろう。図５において、典型的ＴＬＢエントリについての合致ビット記憶セルＭ０−Ｍ３および関連回路が示されている。図４で示されたコンポーネントに加えて、イネーブル入力１０２を持つ従来技術の２対４デコーダ９９が追加されている。好ましい実施形態では、デコーダ９９のセレクト入力１０４がインデックス・ビット１２に接続されるが、その他の信号を使用して空間レジスタ１４のどれが更新されいるかを同様に示すこともできる。イネーブル入力１０２は、更新空間レジスタ制御ライン１００に接続され、空間レジスタ１４が更新される時該制御ラインは必ずイネーブルされる。デコーダ９９の出力は、記憶セルＭ０，Ｍ１，Ｍ２，Ｍ３の書込み入力にそれぞれ接続される。図４には４つの記憶セルだけが示されているけれども、記憶セルの番号と空間レジスタの番号との間に１対１の対応関係が存在する限りは、本発明は、いかなる数の記憶セルにも拡張できる。
【００３２】
デコーダ９９によって、空間レジスタが更新される時は必ず、ライン８０上にある比較器７６の出力が選択された記憶セルに書き込まれることが可能となる。プロセスがメモリからスワップ・アウトされるたびに、典型的には空間レジスタが更新される。選択される記憶セルは、インデックス・ビット１２の状態によって決定される。このようにして、空間レジスタが更新される時はいつも対応する記憶セルが更新される。
【００３３】
選択された記憶セル各々に書かれる値はエントリ空間タグ７２の内容および対応する空間レジスタに書かれたデータに従う。空間レジスタが更新すなわち書き込まれる時、要求された空間レジスタ・データが、空間レジスタ書込みデータ・バス７８上へ送出され、更新空間レジスタ制御ライン１００がイネーブルされる。次に、空間レジスタの１つに書き込まれているレジスタ・データ・バス７８上のデータと、タグ７２が比較器７６によって比較される。この比較の結果が、現在更新されつつある空間レジスタに対応する記憶セルに上述の通り書き込まれる。
【００３４】
空間レジスタ書込みデータ・バス７８、更新空間レジスタ制御ライン１００およびインデックス・ビット１２が、本質的に同様の形態で各エントリに接続されているので、各エントリにおける１つの記憶セルが同時に更新される。このように、図５に示される実施形態では、図４の４つの空間レジスタ各々への１回の書込みで、ＴＬＢ３５における合致ビット記憶セルのすべてが更新される。
【００３５】
比較の結果が一旦記憶セルに記憶されると、インデックス・ビット１２が有効となった後１回のマルチプレクサ遅延ＴM内でそれら結果が使用可能となる。空間レジスタ１４の内容が修正される時だけでなくＴＬＢエントリが置き換えられる時も、記憶セルおよび空間レジスタ１４は更新される。アドレス変換時間に対する処理速度の効果は、以下のタイミング・シーケンスの詳細な説明によって明白になるであろう。
【００３６】
図６は、図４のＴＬＢ３５を使う仮想アドレスから物理アドレスへの変換に関するタイミング図である。変換シーケンスはエントリ０に関して記述されるが、シーケンスはＮ個のエントリすべてについて同一である。明示アドレスが有効になる時間Ｔ0で変換シーケンスは開始する。その時点から、仮想タグ比較器６４は、マルチプレクサ９８と並列して動作する。典型的には、図６に示されるように、比較器６４を通過する遅延時間Ｔ2'は、マルチプレクサ９８を通過する遅延時間ＴMより大きい。空間レジスタ読み取りによって遅延時間Ｔ1'が完全に除かれている点に注意する必要がある。この点だけで、全アドレス変換時間Ｔ'の相当な減少につながる。
【００３７】
全アドレス変換時間Ｔ'の更なる減少が、比較器６４を通過する遅延時間Ｔ2'の減少によって達成される。仮想タグ６３は、従来技術の仮想ページ番号よりかなり小さい。これは、仮想タグ６３から間接アドレス１６を除外した結果である。その代わり、先に述べたように、間接アドレスはエントリ空間タグ７２に記憶され、ＴＬＢアクセスに先行して比較される。従来技術において知られている通り、比較器６４を通過する遅延時間は、入力ビット数にほぼ比例する。好ましい実施形態では、仮想タグ６３はわずか１９ビットだけを有する。対照的に、従来技術の（図１の）ＴＬＢ２２は同じアドレス空間について５１ビットの仮想ページ番号を有する。従って、比較器６４を通過する遅延時間Ｔ2'は、図１の比較器２６を通過する遅延時間Ｔ2より大幅に少ない。比較器を通過する遅延時間Ｔ2'における減少が、上記読取りアクセス時間Ｔ1の排除とともに、本発明に従って、全変換時間Ｔ'の顕著な減少を実現する。
【００３８】
比較器の出力が有効になった後、マルチプレクサ９８の出力もまた時間Ｔ2'において有効であると仮定すれば、ＡＮＤゲート６６を通過する遅延時間Ｔ3'が存在する。３入力ＡＮＤゲート６６を通過する遅延時間Ｔ3'は従来技術の２入力ＡＮＤゲート３０を通過する遅延時間Ｔ3よりわずかに大きいけれども、この増加は、上述の減少によって相殺される。ＡＮＤゲート６６の出力が有効となると、３態励振器３２は、バス４０上へＴＬＢデータ３４を送出するため時間Ｔ4を必要とする。これは、従来技術に必要とされたものと同じ時間Ｔ4である。このように、ＴＬＢ３５に関する全変換時間Ｔ'は、Ｔ'= Ｔ2'+Ｔ3'+Ｔ4(ＴM＜Ｔ2'と仮定)という式で表される。全時間Ｔ'は、図１の従来技術のＴＬＢによって必要とされる全時間Ｔより大幅に少ない。
【００３９】
同じ発明の原理を、図７に示されているＴＬＢ設計１１５に拡張することができる。このＴＬＢ１１５では、インデックス・ビット１２が実効アドレス１１４に含まれる。図５のＴＬＢと同様に、各ＴＬＢエントリの構成は同一である。従って、以下では、１つのＴＬＢエントリ１１７を詳細に説明するが、それによってＴＬＢ１１５全体が説明されることとなる。
【００４０】
ＴＬＢエントリ１１７は、エントリ空間タグ７２、仮想タグ１２０、有効ビット２８、物理ページ番号３６およびその他アクセス情報３８を含む。仮想タグ１２０は、上位インデックス・タグ１２４および下位仮想タグ１２２という２つの隣接するタグを含む。下位仮想タグ１２２およびＴＬＢインデックス１１６が、従来技術の形態で比較器１３４へ入力として接続される。ビット数の観点から、比較器１３４のサイズは、図４の比較器６４と同じである。従って、比較器１３４を通過する遅延時間は同じである。比較器１２１は、インデックス・ビット１１８に接続された第１の入力、上位インデックス・タグ１２４に接続された第２の入力、および１つの出力を持つ。インデックス・ビット１１８がインデックス・ビット１２とは異なった形態で図示されているが、それらは実際には同じラインである。
【００４１】
しかし、ＴＬＢエントリ１１７は、比較器７６の結果を記憶するためただ１つの合致ビット記憶セル１４６を有する。合致記憶セル１４６は、図４のＴＬＢエントリ５５で使われている合致記憶セルＭ０−Ｍ３と同様のはたらきをする。記憶セル１４６は、データ入力、書込みイネーブル入力およびデータ出力を持つ。記憶セルに関連する論理機構によって、以下に記述するように対応する空間レジスタが修正される時記憶セルが更新される。
【００４２】
更新論理機構は、ライン８０を通して比較器７６の出力に接続される第１の入力を持つ挿入エンチリ・ライン１４２に接続される第２の入力、および、ライン１５０を通して記憶セル１４６のデータ入力に接続される１つの出力を備えたＯＲゲート１４８を含む。更新論理機構は、また、挿入エントリ・ライン１４２に接続される第１の入力、第２の入力、およびライン１４４を通して記憶セルの書込みイネーブル入力に接続される出力を備えた第２のＯＲゲート１４０を含む。最後に、更新論理機構は、更新空間レジスタ制御ライン１００に接続される第１の入力、比較器１２１の出力に接続される第２の入力、および、ライン１３８を通してＯＲゲート１４０の第２の入力に接続される出力を備えたＡＮＤゲート１３２を含む。
【００４３】
更新論理機構は、挿入エントリ・ライン１４２および更新空間レジスタ制御ライン１００の制御のもと動作する。上述の通り、更新空間レジスタ制御ライン１００は、空間レジスタ１４が更新されるとイネーブルされる。一方、挿入エントリ・ライン１４２は、特定のＴＬＢエントリ１１７が修正される時イネーブルされる。このように、ＴＬＢエントリのそれぞれは、図７に示されるように、固有の挿入エントリ・ラインを持つ。
【００４４】
ＯＲゲート１４８は、記憶セル１４６のデータ入力に提示される値を制御する。記憶セル１４６のデータ入力における値は、挿入エントリ・ライン１４２かまたは比較器７６の出力がイネーブルされる時、イネーブルされる。しかしながら、ライン１５０上で入力される記憶セル１４６のデータ入力における値は、ライン１４４上の信号がイネーブルされる時のみ記憶セルに記憶されるであろう。ライン１４４上の信号は、ＡＮＤゲート１３２およびＯＲゲート１４０によって制御される。
【００４５】
ライン１４４上の信号がイネーブルされる２つのケースがある。第１は、挿入エントリ・ライン１４２上の信号がイネーブルされる時、すなわちＴＬＢエントリ１１７が更新される時である。これは、また、記憶セルのデータ入力における信号がイネーブルされるケースでもある。このようにして、ＴＬＢエントリ１１７が修正される毎に、対応する合致記憶セル１４６がイネーブル状態に更新される。ＴＬＢ取り逃がしを処理するオペレーティング・システムのトラップに続いて空間レジスタ１４に記憶された間接アドレスの１つを合致する動作を行うことがＴＬＢエントリについては保証されているので、ＴＬＢ合致記憶セル１４６は自動的にイネーブル状態へセットされる。
【００４６】
第２のケースは、ライン１４４の信号がイネーブルされ、従って、記憶セル１４６が更新され、ＡＮＤゲート１３２の出力がイネーブルされる場合である。ＡＮＤゲートの出力は、更新空間レジスタ・ライン１００上の信号がイネーブルされ、比較器１２１からの出力信号がイネーブルされる時イネーブルされる。更新空間レジスタ１００上の信号は空間レジスタが更新されつつある時イネーブルされる。比較器１２１の出力は、上位インデックス・タグ１２４がインデックス・ビット１１８と等しい時イネーブルされる。インデックス・ビット１１８は、更新空間レジスタ信号がイネーブルされる時書き込まれている特定のレジスタ番号を示す。このようにして、上位インデックス・タグ１２４に対応する空間レジスタが更新される時、合致記憶セルが更新される。
【００４７】
第２のケースの記憶セルに記憶される値は、比較器７６の出力によって決定される。上述のように、空間レジスタが更新される時、空間レジスタの新しい値が、空間レジスタ書込みデータ・バス７８上の空間レジスタに書き込まれる。書込みデータ・バス７８上のデータが、比較器７６によってエントリ空間レジスタ７２と同時に比較される。両者が等しければ、比較器７６の出力がライン８０上でイネーブルされ、合致記憶セル１４６は、イネーブルされた値に更新される。両者が等しくなければ、セル１４６は、非イネーブル値に更新される。
【００４８】
ＴＬＢエントリ１１７におけるＴＬＢ「ヒット」は、４入力ＡＮＤゲート１３０において決定される。ＡＮＤゲート１３０への４つの入力すべてがイネーブルされる時、ＴＬＢヒットが発生する。第１の入力は、有効ビット２８に接続される。第２の入力は、ライン１３６を通して比較器１３４の出力に接続される。第３の入力は、比較器１２１の出力に接続される。第４の入力は、ライン１３７を通して合致記憶セル１４６の出力に接続される。ＡＮＤゲートの出力は、３態励振器３２のイネーブル入力に接続される。このようにして、ヒットがある時、ＴＬＢエントリの内容は、データバス４０上へ送出される。さもなければ、受動プルダウン・ネットワーク４２が、論理的低位にデータバス４０を保つ。従って、ヒットがあれば、有効ビット、すなわちバス４０上の最上位ビットがそれを標示する。
【００４９】
合致記憶セルが上述のようにそれらの適切な値へセットされると、アドレス変換は次のように進む。明示アドレスは、インデックス１２および基底１３に分割される。次に、基底１３は、ＴＬＢインデックス１１６およびオフセット（図示されていない）に分割される。ＴＬＢインデックス１１６が仮想タグ１２２と比較される。同時に、上位インデックス・タグ１２４が、明示アドレス１０のインデックス・ビット１２と同一であるインデックス・ビット１１８と比較される。以下の条件が単一のＴＬＢエントリ内で満たされると、この実施形態に関してＴＬＢヒットが発生する。すなわち、（比較器１３４による）ＴＬＢインデックス比較と（比較器１２１による）インデックス比較がともに肯定的であり、有効ビット２８がイネーブルされ、対応する合致記憶セル１４６の値がイネーブルされていることである。ＴＬＢヒットが発生すると、ＴＬＢヒットが発生したＴＬＢエントリの物理ページ番号が、物理アドレスの一部として、すなわち実際の物理ページ番号として、供給される。
【００５０】
ＴＬＢ１１５に関するタイミング・シーケンスは、本質的には図６に示されるものと同じである。従って、上述された本発明原理は、典型的なコンピュータに活用される共通アドレス指定方式の両者に関して、メモリ・システム処理能力の向上を生み出す。
【００５１】
いくつかの実施形態に関連して本発明の原理を記述したが、そのような原理を逸脱することなく本発明の構成を修正することが可能なことは明白であろう。例えば、発明の別の実施形態において、２ビットのインデクス・ビットを使用して３つの空間レジスタからの選択を行うこともできるであろう。この場合、インデックス・ビットの１つは実行アドレスの一部であるが、他方はそうでない。インデックス・ビットは、ＴＬＢアドレス検査において明示アドレスのビットとともに使われる。各ＴＬＢエントリは、２つのアドレス・ビットb0、b1および制御ビットc0、c1を持つ。制御ビットは、該当するＴＬＢエントリを選択するために使われるＴＬＢ照合にアドレスb0、b1を使用するか否かを示す。空間レジスタおよびアドレス・ビットb0、b1ならびに制御ビットc0、c1の間の対応関係は次の表１に示される通りである。表において、"x"はいずれでもよいことを示す。
【００５２】
【表１】
0003666689.tif 000002
この代替実施形態も他の実施形態と同様に、異なるサイズに一般化することができる。
【００５３】
本発明には、例として次のような実施様態が含まれる。
（１）間接アドレスおよび明示アドレスからから構成される実効仮想アドレスを物理アドレスに変換する方法であって、(A)各々が仮想タグ、有効ビット、物理ページ番号およびエントリ空間タグを持つＮ個のエントリとして構成される変換ルックアサイド・バッファすなわちＴＬＢを作成するステップと、(B)上記明示アドレスを１つのインデックスとＴＬＢインデックスに分割するステップと、(C)上記ＴＬＢインデックスを上記仮想タグと比較するステップと、(D)上記比較ステップ(C)に先行して、上記間接アドレスを上記エントリ空間タグと比較するステップと、(E)上記ＴＬＢインデックス比較および上記間接アドレス比較の両方が同一のＴＬＢエントリについてともに肯定的である場合に、ＴＬＢヒットを生成するステップと、(F)上記ＴＬＢヒットが生成されたＴＬＢエントリの物理ページ番号を物理アドレスの一部として供給するステップと、を含む方法。
（２）間接アドレスをエントリ空間タグと比較する上記ステップ(D)が、間接アドレスを空間レジスタに書き込むステップと、空間レジスタに書き込まれた上記間接アドレスをエントリ空間タグと比較するステップと、その比較結果を記憶するステップと、を含む上記（１）に記載の方法。
（３）上記（２）の書込み、比較および記憶の各ステップが、空間レジスタ・ファイルの空間レジスタそれぞれ毎に繰り返される、上記（２）に記載の方法。
（４）空間レジスタが更新される時、またはＴＬＢエントリが置き換えられる時には必ず上記（２）の比較および記憶の各ステップが実行される、上記（２）に記載の方法。
（５）Ｎを上記インデックスのビット数として、２のＮ乗個の合致ビットのうちの１ビットを選択するステップを含む、上記（４）に記載の方法。
（６）明示アドレスを分割する上記ステップ(B)が、明示アドレスをインデックスおよび基底に分割すること、および、基底をＴＬＢインデックスおよびオフセットに分割することを含む、上記（１）に記載の方法。
（７）ＴＬＢインデックスを比較する上記ステップ(C)が、ＴＬＢインデックスをすべてのＴＬＢエントリの仮想タグと比較することを含む上記（１）に記載の方法。
（８）ＴＬＢインデックスを比較する上記ステップ(C)が、ＴＬＢインデックスを上位インデックス・タグと比較することを含む、上記（１）に記載の方法。
【００５４】
（９）アドレス空間内にあってインデックス、変換ルックアサイド・バッファすなわちＴＬＢのインデックスおよびオフセットを含む明示アドレスを物理アドレスに変換するアドレス変換装置であって、各々が対応するインデックス値に対する間接アドレスを有する複数の空間レジスタを含む空間レジスタ・ファイルと、各々がエントリ空間タグ、仮想タグ、有効ビットおよび物理ページ番号を含むＮ個のＴＬＢエントリとして構成されるメモリと、上記ＴＬＢインデックスのみを上記仮想タグと比較するＴＬＢインデックス比較手段と、上記物理ページ番号に対応する仮想タグと上記ＴＬＢインデックスが等しく、かつ、上記インデックスに対応する上記間接アドレスと上記物理ページ番号に対応する上記エントリ空間タグが等しい時、該物理ページ番号を物理アドレスの一部として供給する手段と、を備えるアドレス変換装置。
（１０）上記仮想タグにのみ接続する第１の入力、上記ＴＬＢインデックスにのみ接続する第２の入力および出力を持つ第１の比較器を上記比較手段が含む、上記（９）に記載のアドレス変換装置。
（１１）上記供給手段が、空間レジスタ・バンクに接続し、上記空間レジスタの内容を修正する空間レジスタ書込みデータ・バスと、上記エントリ空間タグに接続する第１の入力、上記空間レジスタ書込みデータ・バスに接続する第２の入力および出力を持つ第２の比較器と、上記第２の比較器の上記出力に接続する入力および出力を有する比較器によって生成される結果を記憶する合致ビット・メモリ手段と、上記合致ビット記憶の上記出力に接続し、上記インデックスに対応する合致ビットを選択する選択手段と、を含む、上記（９）に記載のアドレス変換装置。
（１２）上記合致ビット記憶手段が、各々が上記第２の比較器の出力に接続するデータ入力、書込み入力および出力を持つ第１の複数の単一ビット記憶セルと、上記インデックスに接続するセレクト入力、更新空間レジスタ制御ラインに接続するイネーブル入力および第１の複数の出力を持つデコーダを含み、上記デコーダの出力の各々が対応する記憶セルの上記書込み入力に接続する、上記（１１）に記載のアドレス変換装置。
（１３）上記選択手段が、各々が対応する記憶セルに接続する第１の複数の入力、インデックスに接続し、上記第１の複数の入力の１つを選択するセレクト入力、および上記供給手段に接続する出力を持つマルチプレクサを含む、上記（１２）に記載のアドレス変換装置。
【００５５】
（１４）上記供給手段が、データ・バスと、上記有効ビットに接続する第１の入力、上記ＴＬＢインデックス比較手段の出力に接続する第２の入力、上記選択手段の出力に接続する第３の入力、およびＴＬＢヒットを生成する出力を持つ３入力ＡＮＤゲートと、上記データ・バスに接続し、ヒットがＴＬＢに存在しない時上記データ・バスの信号を下位レベルに引きさげる受動引き下げネットワーク手段と、上記有効ビットおよび上記物理ページ番号に接続する入力と、上記３入力ＡＮＤゲートの出力に接続するイネーブル入力と、上記データ・バスに接続し、ＴＬＢヒットが存在する時、物理的アドレスの一部として物理ページ番号を供給するための出力を備える３態励振器を含む上記（１１）に記載のアドレス変換装置。
（１５）上記選択手段が、上記インデックス・ビットに接続する第１の入力、
上位インデックス・タグに接続する第２の入力、および供給手段に接続する出力を持つ第２の比較器を含む、上記（１０）に記載のアドレス変換装置。
（１６）上記合致ビット記憶手段が、データの入力、書込みイネーブル入力およびデータ出力を持つ単一ビット合致記憶セルと、対応する空間レジスタが修正される時上記メモリ・セルを更新する手段と、を含む、上記（１１）に記載のアドレス変換装置。
（１７）上記（１６）における更新手段が、上記第２の比較器の出力に接続する第１の入力、挿入エントリ・ラインに接続する第２の入力、および上記記憶セルのデータ入力に接続する出力を有する第１のＯＲゲートと、上記挿入エントリ・ラインに接続する第１の入力、第２の入力、上記記憶セルの書込みイネーブル入力に接続する出力を有する第２のＯＲゲートと、更新空間レジスタ制御ラインに接続する第１の入力、第２の入力、および上記第２のＯＲゲートの第２の入力に接続する出力を有するＡＮＤゲートと、を含む上記（１６）に記載のアドレス変換装置。
（１８）上記供給手段が、データ・バスと、上記有効ビットに接続する第１の入力、上記ＴＬＢインデックス比較手段の出力に接続する第２の入力、上記第２の比較器の出力に接続する第３の入力、上記合致記憶セルの出力に接続する第４の入力、およびＴＬＢヒットを生成する出力を有する４入力ＡＮＤゲートと、上記データ・バスに接続し、ＴＬＢにヒットが存在しない時データ・バスの信号レベルを引き下げる受動引き下げネットワーク手段と、物理ページ番号に接続するデータ入力、上記４入力ＡＮＤゲートに接続するイネーブル入力、および上記データ・バスに接続し、ＴＬＢヒットがある時物理アドレスの一部として物理ページ番号を供給する出力を有する３態励振器と、を含む上記（１８）に記載のアドレス変換装置。
【００５６】
（１９）間接アドレスを記憶する空間レジスタ・ファイルを有する仮想記憶システムにおいて、基底ビットおよびインデックス・ビットを含む明示アドレスの物理アドレスへの変換を高速化する方法であって、変換ルックアサイド・バッファすなわちＴＬＢの各エントリに関連づけられたエントリ空間タグを作成するステップと、対応するＴＬＢエントリが更新される時は必ずエントリ空間タグを更新するステップと、新しい間接アドレスを用いて上記空間レジスタ・ファイルを更新するステップと、新しい間接アドレスをエントリ空間タグと比較するステップと、後続のＴＬＢアクセス時における使用に備えて関連合致ビット記憶セルに上記比較ステップの結果を記憶するステップと、を含む方法。
（２０）インデクス・ビットの内容に応じて合致ビット記憶セルを選択するステップを更に含む、上記（１９）に記載の方法。
（２１）間接アドレス、および第１のインデックスならびに第２のインデックスを有する明示アドレスを含む仮想アドレスを物理アドレスに変換するため、各々がエントリ空間タグ、仮想タグおよび仮想ページ番号を持つＮ個のエントリを有する変換ルックアサイド・バッファすなわちＴＬＢを備え持つアドレス変換装置であって、上記ＴＬＢエントリの各々は更に少なくとも、上記第２のインデックスを上記仮想タグと比較する第１の比較器と、Ｎ個のエントリの各々のエントリ空間タグを間接アドレスと比較する第２の比較器と、物理ページ番号に対応する第２のインデックスと仮想タグが等しく、かつ、第１のインデックスに対応する間接アドレスと物理ページ番号に対応するエントリ空間タグが等しい時、物理ページ番号を物理アドレスの一部として出力する出力装置とを備える、アドレス変換装置。
（２２）第１の比較器による比較に先行して第２の比較器による比較が完了する、上記（２１）に記載のアドレス変換装置。
【００５７】
【発明の効果】
本発明に従う変換ルックアサイド・バッファの構成およびそれに関連する動作の改良によって、仮想記憶システムにおける仮想アドレスから物理アドレスへの変換に要する時間が大幅に短縮される。
【図面の簡単な説明】
【図１】インデックス・ビットが実効アドレスに含められていない従来技術のＴＬＢシステムのブロック図である。
【図２】インデックス・ビットが実効アドレスの一部を形成している従来技術のＴＬＢシステムのブロック図である。
【図３】図１および図２の従来技術ＴＬＢの動作のタイミングを示すブロック図である。
【図４】インデックス・ビットが実効アドレスに含められていない本発明に従う新ＴＬＢシステムのブロック図である。
【図５】図４のＴＬＢシステムの合致ビット記憶回路の詳細を示す図である。
【図６】本発明に従う仮想アドレス変換のタイミングを示すブロック図である。
【図７】インデックス・ビットが実効アドレスに含まれている本発明のＴＬＢシステムのブロック図である。
【符号の説明】
１０                  明示アドレス
１２、１１８          インデックス
１３                  基底ビット
１４                  空間レジスタ
１６、７４            間接アドレス
１８、６０、１１４    実効アドレス
２０、２４            仮想ページ番号
２２、３５、１１５    変換ルックアサイド・バッファまたはＴＬＢ
２３、５５、７５、１１７    ＴＬＢエントリ
２６、４４、６４、７６、１２１、１３４    比較器
２７、３１、４５、６８、７０、８０、１２２、１３６、１３７、１３８、１４４、１５０    ライン
２８、４６            有効ビット
３０、４８、１３２    ＡＮＤゲート
３２、５０            ３態励振器
３４、５２            ＴＬＢデータ
３６、５６            物理ページ番号
３８、５８            その他アクセス情報
４０                  バス
４２                  受動引き下げ手段
５４                  ＴＬＢヒット
５６                  変換後物理アドレス
６２、１１６          ＴＬＢインデックス
６３、１２０          仮想タグ
６６                  ３入力ＡＮＤゲート
７２                  エントリ空間タグ
７８                  空間レジスタ書込みデータ
９０、９２、９４、９６    合致ビット・ライン
９８                  マルチプレクサ
９９                  デコーダ
１００                更新空間レジスタ制御ライン
１０２                イネーブル入力
１０４                セレクト入力
１２２                下位インデックス・タグ
１２４                上位インデックス・タグ
１３０                ４入力ＡＮＤゲート
１４０、１４８        ＯＲゲート
１４２                挿入エントリ・ライン
１４６、Ｍ０、Ｍ１、Ｍ２、Ｍ３    合致ビット記憶セル
Ｏ                    オフセット
【図１】
0003666689.tif 000003
【図２】
0003666689.tif 000004
【図３】
0003666689.tif 000005
【図４】
0003666689.tif 000006
【図５】
0003666689.tif 000007
【図６】
0003666689.tif 000008
【図７】
0003666689.tif 000009