(57)【特許請求の範囲】
【請求項１】
変換ルックアサイドバッファ（ＴＬＢ）およびページテーブルを有する種類の、仮想メモリから物理メモリへの変換装置を組み込んだ、基本データ幅を有するコンピュータ装置であって、
仮想タグを記憶する第１の記憶手段であって、前記仮想タグのビット数が前記コンピュータの前記基本データ幅を超えており、かつ、前記仮想タグが簡素化タグセクションを有し、かつ、前記簡素化タグセクションのビット数が前記コンピュータの前記基本データ幅以下であり、かつ前記仮想タグが、前記簡素化タグセクションから排除された仮想タグのビットを含む索引セクションを有する、第１の記憶手段と、
前記簡素化タグセクションのビットから出力ビットストリングを生成するように動作するハッシュ機能と、
前記索引セクションのビットと組み合わされた前記出力ビットストリングを含むページテーブル索引と、
簡素化タグ項目を含むページテーブルであって、前記簡素化タグ項目が、簡素化タグとそれに関連する物理ページアドレスとからなり、かつ、ＴＬＢミスの後に、前記ページテーブル索引が指す前記簡素化タグ項目を有する前記簡素化タグと、前記仮想タグの前記簡素化タグセクションとが比較されるものである、ページテーブルとを含む、コンピュータ装置。
【請求項２】
前記ページテーブルが少なくとも２Iの簡素化タグ項目を含み、その「I」が前記索引セクションのビット数に等しい、請求項１記載のコンピュータ装置。
【請求項３】
一連の項目を指すポインタ項目を前記ページテーブルが更に含み、その一連の項目が簡素化タグ項目を含む、請求項１記載のコンピュータ装置。
【請求項４】
変換ルックアサイドバッファ（ＴＬＢ）中の情報を更新するためのコンピュータ装置であって、
簡素化タグフィールドと索引フィールドと物理オフセットフィールドとを含む仮想アドレスを記憶する第１の記憶手段と、
簡素化タグフィールド中の情報にハッシュ処理を行ってタグ索引の出力を生成するためのハッシュ機能手段と、
前記タグ索引と前記索引フィールド中の情報とを含み、ページテーブル中の簡素化タグ項目を指す、ページテーブル索引と、
前記簡素化タグ項目中の情報を前記簡素化タグフィールド中の情報と比較し、前記簡素化タグ項目中の情報と前記簡素化タグフィールド中の情報とが一致する場合に、前記簡素化タグ項目に関連する物理ページ項目と、前記簡素化タグ項目に関連する仮想アドレスとが前記ＴＬＢに記憶される、比較器とを含み、
前記簡素化タグフィールドおよび前記簡素化タグ項目のサイズが、関連するコンピュータの基本データ幅以下であり、前記簡素化タグフィールドに前記索引フィールドを加えたものが前記関連するコンピュータの基本データ幅を超える、コンピュータ装置。
【請求項５】
変換ルックアサイドバッファ（ＴＬＢ）中の情報を更新するためのコンピュータ装置であって、
簡素化タグフィールドと索引フィールドと物理オフセットフィールドとを含む仮想アドレスを記憶する第１の記憶手段と、
簡素化タグフィールド中の情報にハッシュ処理を行ってタグ索引の出力を生成するための第１のハッシュ機能手段と、
前記索引フィールドの全情報と前記簡素化タグフィールドからの情報にハッシュ処理を行って結果を出力するための第２のハッシュ機能手段と、
前記タグ索引と前記第２のハッシュ機能手段の出力とを含み、ページテーブル中の簡素化タグ項目を指す、ページテーブル索引と、
前記簡素化タグ項目中の情報を前記簡素化タグフィールド中の情報と比較し、前記簡素化タグ項目中の情報と前記簡素化タグフィールド中の情報とが一致する場合に、前記簡素化タグ項目に関連する物理ページ項目と、前記簡素化タグ項目に関連する仮想アドレスとが前記ＴＬＢに記憶される、比較器とを含み、
前記簡素化タグフィールドおよび前記簡素化タグ項目のサイズが、関連するコンピュータの基本データ幅以下であり、前記簡素化タグフィールドに前記索引フィールドを加えたものが前記関連するコンピュータの基本データ幅を超える、コンピュータ装置。
【請求項６】
ＴＬＢミスを処理するためのコンピュータベースの装置であって、
仮想アドレスを介してアクセスされるデータページを記憶するための物理メモリ手段と、
前記仮想アドレスを前記物理メモリ手段中のデータの物理アドレスに変換するためのアドレス変換情報を記憶するＴＬＢと、
前記ＴＬＢに結合され、前記仮想アドレス内の第１フィールド中の情報にハッシュ処理を行うよう適合された、ＴＬＢミスハンドラであって、前記第１フィールドが、関連するコンピュータの基本データ幅以下の大きさを有しており、かつ、前記ＴＬＢミスハンドラは前記第１フィールドにハッシュ処理を行ってタグ索引を形成するものであり、かつ、前記ＴＬＢミスハンドラは前記タグ索引を前記仮想アドレス内の別個の第２フィールド中の情報と組み合わせてページテーブルへのオフセットポインタを形成するものであり、かつ、前記別個の第２フィールドは前記第１フィールドから排除された前記仮想アドレスの仮想ビットを含むものであり、かつ、前記ＴＬＢミスハンドラは前記オフセットポインタによって指されたページテーブル情報を、前記仮想アドレス内の前記第１フィールド中の情報と比較し、それら情報が一致した場合に、前記ページテーブルからの情報を前記ＴＬＢに記憶させるものである、ＴＬＢミスハンドラとを含む、コンピュータベースの装置。
【請求項７】
前記ページテーブルが少なくとも２Iの変換項目を含み、その「I」が前記別個の第２フィールドのビット数に等しい、請求項６記載のコンピュータベース装置。
【請求項８】
ＴＬＢミスを処理するためのコンピュータベースの装置であって、
仮想アドレスを介してアクセスされるデータページを記憶するための物理メモリ手段と、
前記仮想アドレスを前記物理メモリ手段中のデータの物理アドレスに変換するためのアドレス変換情報を記憶するＴＬＢと、
前記ＴＬＢに結合され、前記仮想アドレス内の第１フィールド中の情報にハッシュ処理を行うよう適合された、ＴＬＢミスハンドラであって、前記第１フィールドが、関連するコンピュータの基本データ幅以下の大きさを有しており、かつ、前記ＴＬＢミスハンドラは前記第１フィールドにハッシュ処理を行ってタグ索引を形成するものであり、かつ、前記ＴＬＢミスハンドラは前記仮想アドレス内の別個の第２フィールド中の情報に前記第１フィールドからの情報を加えたものにハッシュ処理を行ってハッシュ索引出力を形成するものであり、かつ、前記別個の第２フィールドは前記第１フィールドから排除された前記仮想アドレスの仮想ビットを含むものであり、かつ、前記ＴＬＢミスハンドラは前記タグ索引と前記ハッシュ索引出力とを組み合わせてページテーブルへのオフセットポインタを形成するものであり、かつ、前記ＴＬＢミスハンドラは前記オフセットポインタによって指されたページテーブル情報を、前記仮想アドレス内の前記第１フィールド中の情報と比較し、それら情報が一致した場合に、前記ページテーブルからの情報を前記ＴＬＢに記憶させるものである、ＴＬＢミスハンドラとを含む、コンピュータベースの装置。
【請求項９】
前記ページテーブルが少なくとも２Iの変換項目を含み、その「I」が前記ハッシュ索引出力のビット数に等しい、請求項８記載のコンピュータベース装置。
【請求項１０】
変換ルックアサイドバッファ（ＴＬＢ）中の情報を更新するためのコンピュータ装置であって、
簡素化タグフィールドと索引フィールドと物理オフセットフィールドとを含む仮想アドレスを記憶する第１の記憶手段と、
簡素化タグフィールドにハッシュ処理を行ってタグ索引の出力を生成するための第１のハッシュ機能手段と、
前記タグ索引と前記索引フィールドとを含み、ページテーブル中のハッシュタグ項目を指す、ページテーブル索引と、
前記仮想アドレスにハッシュ処理を行ってハッシュ結果を生成する第２のハッシュ機能手段と、
前記ハッシュタグ項目を前記ハッシュ結果と比較し、前記ハッシュタグ項目と前記ハッシュ結果とが一致する場合に、前記ハッシュタグ項目に関連する物理ページ項目が前記ＴＬＢに記憶される、比較器とを含む、コンピュータ装置。
【請求項１１】
前記ページテーブルが少なくとも２Iのハッシュタグ項目を含み、その「I」が前記索引フィールドのビット数に等しい、請求項１０記載のコンピュータ装置。
【請求項１２】
前記ハッシュタグが、それが関連するコンピュータの基本データ幅に等しい、請求項１０記載のコンピュータ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、仮想メモリを組み込んだコンピュータ装置の設計に関し、特に、仮想アドレスから物理アドレスへの変換操作に変換ルックアサイドバッファ（ＴＬＢ）を用いるコンピュータに関する。
【０００２】
【従来の技術】
従来のコンピュータ装置は、仮想メモリと呼ばれる技術を用いている。この仮想メモリは、実在するメモリよりも多くのメモリをシミュレートして、そのサイズに関わらずコンピュータが幾つかのプログラムを同時に実行できるようにするものである。並行ユーザプログラムは、オペレーティングシステムにより割り当てられた仮想アドレスを介してメインメモリアドレスにアクセスする。メインメモリ即ち物理アドレスに対する仮想アドレスのマッピングは、仮想アドレス変換として周知のプロセスである。この仮想メモリ変換は、プロセッサがメインメモリ中の所望情報にアクセスできるように多数の技法で実施可能なものである。
【０００３】
仮想アドレス空間および物理アドレス空間は、一般に、ページと呼ばれる等サイズのメモリブロックに分割され、ページテーブルにより、仮想アドレスと物理アドレスとの間の変換が行われる。ページテーブルは、多数の構造で編成することが可能である。「順マップ」テーブルは、変換を含むテーブル項目に対するポインタとして仮想ページ番号を用いて最も容易にアクセスされるものである。また「逆マップ」テーブルは、変換を含むテーブル項目に対するポインタとして物理ページ番号を用いて最も容易にアクセスされるものである。考え得る仮想ページ番号は、物理ページ番号よりも多く存在するので、順マップテーブルは、極めて大きくて疎となり得るが、仮想ページ番号が与えられれば、探索はかなり容易となる。逆マップテーブルは、物理メモリの各ページ毎に１つの項目を含んでいる。仮想ページに比べて物理ページの数が限られているので、逆マップテーブルは、一層効率の良い記憶構造となる傾向にあるが、仮想ページ番号だけしか与えられない場合にはアクセスが困難なものとなる。
【０００４】
各ページテーブル項目には、一般に、仮想アドレスおよび／または物理アドレスと、ページに関する保護およびステータス情報が含まれる。ステータスには、一般に、ページが受けたアクセスのタイプに関するステータスが含まれる。例えば、汚損(dirty)ビットはページ中のデータが修正されたことを示している。ページテーブルは、通常は大きいものであるので、メインメモリに格納される。従って、通常の各メモリアクセスには、実際には２つのアクセス、即ち変換を得るためのアクセスと物理記憶位置にアクセスするためのアクセスとが必要となる。
【０００５】
仮想アドレス変換をサポートする多くのコンピュータ装置は、変換ルックアサイドバッファ（ＴＬＢ）を利用している。このＴＬＢは、通常はプロセッサにまたはプロセッサに近接して設けられ、最近使用された仮想アドレスおよび物理アドレスの対を格納する小さくて高速の連想メモリである。ＴＬＢは、ページテーブル中に変換のサブセットを含み、はるかに迅速にアクセスが可能なものである。処理装置は、メインメモリからの情報を必要とする際にＴＬＢに仮想アドレスを送る。ＴＬＢは、その仮想アドレスのページ番号を受け取って物理ページ番号を返す。その物理ページ番号が低位のアドレス情報と組み合わせられて、メインメモリ中の所望のバイトまたはワードへのアクセスが行われる。
【０００６】
ほとんどの場合、ＴＬＢはページテーブル全体を格納することができないので、ＴＬＢを更新する手順を実施する必要がある。仮想ページにアクセスする際に、そのための変換がＴＬＢ中に存在しない場合には、ページテーブルにアクセスして、その仮想ページ番号から物理ページ番号への変換が決定され、その情報がＴＬＢに入力される。ページテーブルへのアクセスは、ＴＬＢへのアクセスの20倍も時間を要するものであり、従って、プログラム実行速度は、変換がＴＬＢにおいて利用されるよう維持することにより最適化される。
【０００７】
今日、ほとんどのコンピュータ装置は、何らかの種類の大量記憶装置（一般にはディスク）を利用して、コンピュータ中の物理ランダムアクセスメモリ（ＲＡＭ）を増補している。このメインメモリの増補により、メインメモリだけしか利用できない場合に比べて一層大きなプログラムを実行することが可能になる。更に、ディスクメモリは、ＲＡＭよりもかなり安価ではあるが、その数百倍も低速なものである。プログラムの長さに応じて、また他のプログラムとのメインメモリの競合に応じて、任意の時点で、プログラムの一部は、メインメモリ中に存在し、またディスクメモリ中に存在することが可能である。直ちにアクセスされる必要のあるプログラム部分がメインメモリに送り込まれる一方、現在利用しない部分はディスクメモリに残される。
【０００８】
例えば、１つのプログラムが、２Mbyteの長さを有し、１Mbyteのメインメモリを備えたコンピュータで使用される場合、そのプログラムにより用いられる仮想アドレスは２Mbyteとなる。メインメモリは、１Mbyteの情報しか保持することができないので、残りの１Mbyteのプログラム情報は、ディスクメモリ装置中に格納されることになる。従って、利用可能な物理メモリをプログラムの半分が満たしている場合、仮想アドレスの半分はメインメモリ中のプログラム情報にマッピング可能なものとなり、残りの半分は前記プログラム情報にマッピング不可能なものとなる。メインメモリ中の情報に対するアクセスは通常通り行われる。即ち、まずＴＬＢを参照して変換を備えているか否かを確認し、その変換を備えていない場合には、ページテーブル中の情報によりＴＬＢを更新し、次いで再度ＴＬＢを参照して変換情報を得ることになる。
【０００９】
メインメモリ中に存在しない情報へのアクセスが生じた場合、まずＴＬＢを参照して（そこには存在しない）変換を探す。次いでページテーブルを参照して変換情報を入手し、ＴＬＢの更新を行う。しかし、ページテーブルは、メインメモリ中の情報に関する変換だけしか備えておらず、従って、必要な変換情報を備えていないことになる。この状態はページフォルトと呼ばれる。ページフォルトに応じて、参照された仮想ページに物理ページが割り当てられ、この情報がページディレクトリに挿入される。全ての物理ページが既に他の仮想ページに関連づけられている場合には、ページフォルトハンドラが、現在参照中の仮想アドレスページにどの物理ページを再割当てするかを選択する必要がある。こうした選択のために、先入れ先出しおよび最低使用頻度アルゴリズム等の多くのアルゴルズムが存在する。ページフォルトハンドラは、一般にソフトウェアで実施されるが、ＴＬＢ更新プロセスは、当業界で周知のようにハードウェアまたはソフトウェアにより処理可能である。
【００１０】
図１は上述のプロセスを示すものである。ステップ112において、仮想アドレスがＴＬＢに提示される。その仮想アドレスについての変換がＴＬＢ中に存在する（ＴＬＢヒット）場合には、その変換で関連付けされた物理アドレスがＴＬＢから取り出されて、物理メモリへのアクセスに利用される（ステップ114）。また、該当する仮想アドレスがＴＬＢ中に存在しない（ＴＬＢミス）場合には、その仮想アドレスについての変換をページディレクトリ／テーブル中でルックアップする（ステップ116）。その変換がページディレクトリ中に存在する場合には、その情報がＴＬＢに挿入され（ステップ118）、仮想アドレスが再び提示される（ステップ112）。今度はＴＬＢヒットが生じるので、その結果として得られる物理アドレスを用いて、物理メモリに対するアクセスが行われる。
【００１１】
物理アドレスページが全く関連付けされていない仮想アドレスページ中に仮想アドレスが存在する場合には、そのページに関する項目はページディレクトリには存在せず、ページフォルトが発生することになる。この状況において、ソフトウェアページフォルトハンドラ（ステップ120）は、仮想ページに物理ページを割り当ててページテーブルを更新する。次いで、前記仮想アドレスがＴＬＢに再度提示されるが、ＴＬＢはまだ変換を備えていないのでＴＬＢミスとなり、ＴＬＢはページディレクトリにより更新されることになる。次いで前記仮想アドレスがＴＬＢに再度提示されると、今度はＴＬＢヒットが確認されるので、その結果として得られる物理アドレスを用いて物理メモリへのアクセスが行われる。
【００１２】
図２は、仮想アドレスの提示に応じて変換ルックアサイドバッファ（ＴＬＢ）中の項目にアクセスする単純化された方法を示すものである。例示を目的とするため、図示のＴＬＢは１つの項目しか有していないが、ＴＬＢは更に多くの項目を有するのが普通である。仮想アドレスはレジスタ201にロードされる。この仮想アドレスは、２つの部分、即ち仮想ページ番号203および物理オフセット205から構成される。物理オフセット205は、通常は、１ページ中の特定バイトを指定するアドレスの下位12ビット（ビット11〜0）である。レジスタ中の残りのビットは、仮想ページ番号を示している。
【００１３】
「ページオフセット」という用語は、当業界でよく用いられる用語であり、本発明の説明で用いる「物理オフセット」という用語と同義語である。物理ページ番号に変換を一意的に指定するのに別のビットを用いることが多い。こうしたビットには、例えば「アドレス空間識別子」ビットが含まれる。しかし、本発明の目的上、こうしたビットを全て、仮想ページ番号の一部とみなすこととする。
【００１４】
図示の例の場合、仮想ページ番号203は、ＴＬＢ比較器207に第１入力を供給する仮想タグとなる。ＴＬＢ209は、２つのリンク部分、即ちＴＬＢタグ211およびそれに関連付けされた物理ページ番号213を備えている。ＴＬＢタグ211はＴＬＢ比較器207に第２入力を供給し、ＴＬＢ比較器207はＴＬＢタグを仮想タグと比較する。それらのタグが一致する場合、比較器207はＴＬＢヒットを示し、物理ページ番号213が物理オフセット205と組み合わされて、物理（実）メモリアドレスが提供される。また、それらのタグが一致しない場合には、ＴＬＢミスが生じたことになり、図１に関連して説明したＴＬＢミスプロセスを用いてＴＬＢの更新が行われる。
【００１５】
図３は、仮想ページ番号が与えられた場合に物理ページ情報を取り出すプロセスを示すものであり、これは、ＴＬＢミスが生じた後にＴＬＢを更新するために必要なものである。上述のように、仮想／物理マッピングは、ページテーブル中に維持される。所与の仮想アドレスを物理アドレスに変換する１つの方法として、仮想アドレスについて多対１機能（ハッシュ）を実施してページテーブルへの索引を形成する、という方法がある。これにより、リンクされた項目リストへのポインタが得られる。これら項目は一致するものを求めて探索される。一致を判定するために、仮想ページ番号がページテーブル中の項目（仮想タグ）と比較される。その両者が等しい場合には、そのページテーブル項目により物理アドレスへの変換が提供される。
【００１６】
図示の例の場合、仮想ページ番号203についてハッシュ機能301が実行されて、索引が形成される。この索引はページテーブル303へのオフセットである。図示のように、索引は０であり、即ち、その索引はページテーブル中の最初の項目305を指している。ページテーブル中の各項目は複数部分から構成されるが、少なくとも仮想タグ307、物理ページ309、およびポインタ311を含んでいるのが普通である。仮想ページ番号203が仮想タグ307に等しい場合、物理ページ309により所望の物理（実）メモリページのアドレスが提供される。また、仮想ページ番号203が仮想タグ307と一致しない場合には、ポインタ311は、仮想／物理変換情報を格納しているメモリ中の項目チェーンを指す。２つ以上の仮想ページ番号を同じページテーブル項目にハッシュすることが可能なので、前記項目チェーンに含まれる追加情報が必要となる。
【００１７】
図示のように、ポインタ311はチェーンセグメント313を指す。このチェーンセグメントにはページテーブルと同じタイプの情報が含まれる。前述のように、仮想ページ番号203が次の仮想タグ315と比較され、それらが一致するか否かが確認される。それらが一致する場合には、その仮想タグ315と関連付けされた物理ページ317により、所望の物理メモリページのアドレスが得られる。また、それらが一致しない場合には、次いでポインタ319を検査して、次のチェーンセグメントを（もし存在すれば）探し出す。図示のように、ポインタ319が別のチェーンセグメントを示さない場合には、ページフォルトが生じたことになる。次いで、図１に関連して説明したように、ページフォルトソフトウェアプログラムを利用してページテーブルの更新が行われる。
【００１８】
上述の方法は、仮想タグがコンピュータの基本データパスサイズより小さい装置の場合、または、中央演算処理装置（ＣＰＵ）が１つしか存在しない装置の場合にうまく機能する。しかし、仮想タグがデータパスサイズより大きい場合には、仮想タグおよび仮想ページ番号が同じであるか否かを検査するために２つの比較を行う必要がある。この追加する比較ステップによりコンピュータ装置の処理速度が低下する。更に、複数のＣＰＵを利用した装置の場合には、或るＣＰＵにより検査中である同じページテーブル項目を別のＣＰＵが更新することが決してないように多大の注意を払わねばならない。さもなければ、第１のＣＰＵがページテーブル項目を修正すると同時に、それと同じページテーブル項目について第２のＣＰＵが第２の比較ステップを実施することが可能となってしまう。これは、許容できない結果であり、従って、競合が決して生じないようにするために別のハードウェアを追加する必要が生じることになる。
【００１９】
【発明が解決しようとする課題】
ページテーブル中の項目の検査時に、多数の比較ステップを必要とすることなく、コンピュータ装置の基本データパスより大きな仮想タグに対処し得る方法および装置が、当業界で所望されている。
【００２０】
【課題を解決するための手段】
本発明は、多数の比較操作を必要とすることなくコンピュータ装置の基本データパスより大きな仮想タグを利用する方法および装置を提供する。ページテーブル項目中にタグ全体を格納する代わりに、簡素化したタグ（以下、簡素化タグと称す）を格納することにより、多数の比較が回避される。この簡素化タグは、基本データパスサイズ以下の大きさを有し、従って、単一の比較操作しか必要としない。簡素化タグは、ビットの幾つかを除去して一層小さなタグを形成することにより、装置の仮想アドレスから形成される。ページテーブル項目の一意性を維持するために、仮想アドレスから除去されたビットを用いてページテーブルへの索引を形成する。
【００２１】
第２の好適実施例では、簡素化タグの形成に用いられないビットが仮想アドレスからの他のビットと組み合わされてハッシュ索引が形成される。このハッシュ索引により、ページテーブル中の項目の均一な配分が提供される。
【００２２】
第３の好適実施例では、仮想ページ番号ビットおよび索引ビットからハッシュタグが形成される。このハッシュタグは、コンピュータの基本データ幅以下の大きさを有し、簡素化タグの代わりにページテーブル中に格納される。ページテーブルへの索引は、ページテーブル項目の一意性を維持するように設計される。
【００２３】
【実施例】
本発明の基本的な特徴は、仮想ページ番号203を２つの部分に分割することにある。即ち、その第１部分が簡素化タグとなり、第２部分が索引として用いられる。簡素化タグは、タグに用いられるビットを、基本コンピュータデータパス幅以下に制限することにより形成される。例えば、コンピュータ装置が32ビットのデータ幅を有する場合には、簡素化タグは32ビット以下のビットを含むことになる。次いで簡素化タグの形成に使用されないビットが使用されて残余索引が形成される。
【００２４】
図４は、ＴＬＢミスの後に物理ページ情報を取り出すための本発明の好適実施例を示すものである。図示のように、仮想ページ番号203は、２つの部分、即ち、簡素化タグ401および残余索引403に分割される。簡素化タグ401は、コンピュータの基本データ幅以下のビットから構成される。簡素化タグの形成に使用されないビットにより残余索引403が形成される。従って、仮想ページ番号203の長さが36ビットの場合、コンピュータのデータ幅を32ビットと仮定すれば、簡素化タグ401は32ビットの長さを有し、残余索引403は4ビットの長さを有することになる。
【００２５】
簡素化タグ401についてハッシュ機能405が実行されてタグ索引407が生成される。このタグ索引407が、例えば連結により、残余索引403と組み合わされて、ページテーブル索引409が形成される。図示のように、ページテーブル索引409は１であり、ページテーブル413の第２項目411を指している。ページテーブル中の各項目は、図３に関連して上述したように複数部分から構成される。簡素化タグ401が簡素化タグ415に等しい場合には、物理ページ417により所望の物理（実）メモリページのアドレスが与えられる。また、簡素化タグ401,415が一致しない場合には、上述のように、ポインタ419を調べてチェーン中の次のリンクを（もし存在すれば）見つけ出す。
【００２６】
この方法および装置は、ページテーブルが最小数の索引を備えていることを必要とする。この例では、残余索引403のサイズが４ビットなので、ページテーブルは少なくとも16項目を備えていなければならない。しかし、ページテーブルは一般にはこれよりはるかに大きいサイズを有するので、前記制約によって問題が生じることはない。
【００２７】
図５は、本発明の第２好適実施例を示すものである。前述のように、仮想ページ番号203は、簡素化タグ401および残余索引403へと分割される。簡素化タグ401はコンピュータの基本データ幅と同じ幅である。その簡素化タグ401の形成に利用されないビットによって残余索引403が形成される。図示の例の場合、残余索引403は４ビットの長さを有し、簡素化タグ401は32ビットの長さを有している。
【００２８】
32ビットの簡素化タグ401がハッシュ機能405により処理されてタグ索引407が生成される。また、残余索引403と仮想タグ401からの「n」ビットとについて第２のハッシュ機能501が実行される。ここで、「n」は０から簡素化タグの最大ビット数までの値をとることができる。第２のハッシュ機能501の出力505が、例えば連結によりタグ索引407と組み合わせられてページテーブル索引507が形成される。
【００２９】
第２のハッシュ機能501を使用することにより、残余索引403のビットだけしか使用しない場合に比べて、ページテーブル索引の一層均一な配分が可能になる。この配分により、ページテーブルにへの最初の索引でヒットすることが理想的である。しかし、ページテーブルサイズに関する制約により、テーブルへの探索長が1.1であるのがより一般的であり、これにより、妥当なページテーブルサイズが得られることになる。
【００３０】
ページテーブル509の編成および機能は、基本的には図３および図４に関連して説明した通りである。しかし、ページテーブルのサイズは、第２のハッシュ機能の出力505のビット数により決定される。最小の場合、出力505は残余索引403におけるビット数から構成されることになる。残余索引の長さが４ビットで「n」＝０である最小の場合には、ページテーブルは、16項目を備え、図４に関連して説明したように機能することになる。また「n」＞０ の場合には、出力505が４ビットを超え、ページテーブルが２mの項目空間を有することになる。ここで、mは出力505のビット数である。「n」と「m」の間には必ずしも直接的な関係があるとは限らない。これは、第２のハッシュ機能が簡素化タグから任意数のビットを取り出して１つ以上の追加ビットを生成し、それを残余索引ビット403と組み合わせることができるからである。出力505のビット数が増すほど、ページテーブル中のページが一層均一に配分される。
【００３１】
簡素化タグからの「n」ビットは、ソフトウェアによって構成可能なものであり、ビット数と使用される特定のビットとをソフトウェアで選択するようにすることができる。これにより、仮想アドレス203がデータパスサイズよりはるかに大きく、それ故、ページテーブルサイズに関する制約が問題となる場合に望ましい、コンピュータ装置の効果的な構成が可能となる。
【００３２】
図６に本発明のもう１つの実施例を示す。ページテーブルのルックアッププロセスは、下記例外を除き、図４に関連して説明したものと基本的に同じである。
【００３３】
ページテーブル413は、図４の簡素化タグの代わりに「ハッシュタグ」601,603を含んでいる。これらのハッシュタグは、索引ビット403および仮想ページ番号ビット401を選択して該ビットにハッシュ機能を実行し、コンピュータの基本データ幅を超えることのない結果を得ることにより形成される。次いでそのハッシュ結果が、前述の簡素化タグの代わりにページテーブル中(601,603)に格納される。
【００３４】
動作時に、ページテーブル索引409が前述のように形成される。このページテーブル索引の形成と同時に、索引ビット403と仮想ページ番号ビット401とについてハッシュ機能607を実行することによりハッシュ結果605が形成される。このハッシュ機能は、ページテーブルに格納された全てのハッシュタグを生成するのに用いられたものと同じである。ページテーブル索引は、ページテーブル413中の項目411を指し、そのハッシュタグ603がハッシュ結果605と比較（609）される。ハッシュタグ603とハッシュ結果605とが一致する場合には、物理ページ417により所望の物理メモリページのアドレスが与えられる。またハッシュタグ603とハッシュ結果605とが一致しない場合には、ポインタ419を調べてチェーン中の次のリンクを（もし存在すれば）見つけ出すことになる。
【００３５】
このページテーブルタグの生成方法および装置は、仮想ページ番号中の高位ビットがゼロになることをコンピュータのオペレーティングシステムが保証できる場合に、特に有効なものとなる。例えば、仮想アドレス空間全体が必要とはならない場合には、幾つかのビットを常にゼロにすることができる。この方法および装置はまた、索引IDXのサイズの縮小を可能とするものであり、これによりページテーブルの最小サイズが縮小されるので、ページテーブルの効率が改善される。
【００３６】
図７は、本発明の範囲から逸脱することなく有効となる多くの考え得る代替的なページテーブル編成のうちの１つを示すものである。この例では、１ページテーブル中の１項目701が示されている。この項目は、３組(703,705,707)の簡素化タグ項目および物理ページ項目を備えている。このページテーブルに関する操作は、基本的には図４に関連して説明したものと同じである。但し、ポインタ715を調べて次のリンクを（もし存在すれば）見つけ出す前に、３つの簡素化タグ(709,711,713)を仮想ページ番号401と比較する、という点では異なっている。
【００３７】
上述の好適実施例は全て、大きな仮想アドレスの利用を可能にすると共に、多数の比較ステップの必要性をなくす、という利点を備えている。従って、本発明を実施したコンピュータは、従来の設計に付随した性能上の不利および問題を伴うこと無く、大アドレス空間という利点を享受することになる。これは、共通の物理メモリに各々がアクセスする多数のＣＰＵを用いた高性能コンピュータ装置にとっては特に重要な利点となる。
【００３８】
当業者であれば、本発明の他の態様は、本開示の本発明の詳細説明または実施例を考察することにより明らかであろう。詳細な説明および実施例は、単なる例示とみなされることを意図したものであり、本発明の真の思想およびその範囲は特許請求の範囲に示されている。
【００３９】
以下に本発明の実施態様を列挙する。
【００４０】
１．変換ルックアサイドバッファ（ＴＬＢ）およびページテーブルを有する種類の仮想メモリ／物理メモリ変換装置を組み込んだ、基本データ幅を有するコンピュータ装置であって、このコンピュータ装置が、
仮想タグを記憶する第１記憶手段であって、前記仮想タグのビット数が前記コンピュータの前記基本データ幅を超えている、前記第１記憶手段を備え、
前記仮想タグが簡素化タグセクションを有し、その簡素化タグセクションのビット数が前記コンピュータの前記基本データ幅以下であり、
前記仮想タグが、前記簡素化タグセクションから排除された前記仮想タグ中のビットを含む索引セクションを有し、更に、前記コンピュータ装置が、
前記簡素化タグセクション中のビットから出力ビットストリングを生成するハッシュ機能と、
前記出力ビットストリングのビットおよび前記索引セクションのビットを含むページテーブルオフセットと、
項目対を有するページテーブルであって、その各項目対が簡素化タグ項目を含み、その簡素化タグ項目が、簡素化タグとそれに関連する物理ページアドレスとからなる、前記ページテーブルとを備え、
ＴＬＢミスの後に、前記ページテーブルオフセットが、前記仮想タグの前記簡素化タグセクションと比較される前記ページテーブル中の前記簡素化タグ項目を指すようにしたことを特徴とする、前記コンピュータ装置。
【００４１】
２．前記ページテーブルが２Iの前記簡素化タグ項目を含み、その「I」が前記索引セクションのビット数に等しいことを特徴とする、前項１記載のコンピュータ装置。
【００４２】
３．一連の項目を指すポインタ項目を前記ページテーブルが更に含み、前記一連の項目が簡素化タグ項目を含むことを特徴とする、前項１記載のコンピュータ装置。
【００４３】
４．変換ルックアサイドバッファ中の情報を更新するコンピュータ装置であって、このコンピュータ装置が、
簡素化タグフィールドと索引フィールドと物理オフセットフィールドとを含む仮想アドレスを記憶する第１記憶手段と、
簡素化タグフィールド中の情報にハッシュ処理を行ってタグ索引の出力を生成するハッシュ機能手段と、
前記タグ索引と前記索引フィールド中の情報とを含み、ページテーブル中の簡素化タグ項目を指す、ページテーブル索引と、
前記簡素化タグ項目中の情報を前記簡素化タグフィールド中の情報と比較し、前記簡素化タグ項目中の情報と前記簡素化タグフィールド中の情報とが一致する場合に、前記簡素化タグ項目に関連する物理ページ項目と、前記簡素化タグ項目に関連する仮想アドレスとがＴＬＢに記憶されるようにする、比較器と
を備えることを特徴とする、前記コンピュータ装置。
【００４４】
５．前記簡素化タグフィールドおよび前記簡素化タグ項目のサイズが、関連するコンピュータの基本データ幅以下であり、前記簡素化タグフィールドに前記索引フィールドを加えたものが前記の関連するコンピュータの基本データ幅を超えることを特徴とする、前項４記載のコンピュータ装置。
【００４５】
６．前記ページテーブル索引が、前記タグ索引と第２のハッシュ機能からの出力とを含み、
前記第２のハッシュ機能への第１入力が、前記索引フィールド中の全情報を含み、前記第２のハッシュ機能への第２入力が、前記簡素化タグフィールドからの１ビットの情報を含む、
ということを特徴とする、前項４記載のプロセッサ装置。
【００４６】
７．ＴＬＢミスを処理するためのコンピュータベースの装置であって、この装置が、
仮想アドレスを介してアクセスされるデータページを記憶する物理メモリ手段と、
前記仮想アドレスを前記物理メモリ手段中のデータの物理アドレスに変換するためのアドレス変換情報を記憶するＴＬＢと、
そのＴＬＢに接続され、前記仮想アドレス内の第１フィールド中の情報にハッシュ処理を行うよう構成された、ＴＬＢミス操作手段であって、前記第１フィールドが、関連するコンピュータの基本データ幅以下の大きさを有してタグ索引を形成し、そのタグ索引を前記仮想アドレス内の別の第２フィールド中の情報と組み合わせてページテーブルへのオフセットポインタを形成する、前記ＴＬＢミス操作手段とを備え、
更に、そのＴＬＢミス操作手段が、前記オフセットポインタによって指されたページテーブル情報を、前記仮想アドレス内の前記第１フィールド中の情報と比較し、それら情報が一致した場合に、前記ページテーブルからの情報を前記ＴＬＢに記憶させるようにしたことを特徴とする、前記コンピュータベースの装置。
【００４７】
８．前記ＴＬＢミス操作手段が更に、前記の別の第２フィールド中の情報に前記第１フィールドからの１ビットの情報を加えたものにハッシュ処理を行うことによりハッシュ索引出力を形成するように構成されており、そのハッシュ索引出力を前記タグ索引と組み合わせて前記オフセットポインタを形成するようにしたことを特徴とする、前項７記載のコンピュータベースの装置。
【００４８】
９．前記ページテーブルが２Iの変換項目を含み、その「I」が前記ハッシュ索引出力のビット数に等しいことを特徴とする、前項８記載のコンピュータベース装置。
【００４９】
１０．変換ルックアサイドバッファ中の情報を更新するためのコンピュータ装置であって、このコンピュータ装置が、
簡素化タグフィールドと索引フィールドと物理オフセットフィールドとを含む仮想アドレスを記憶する第１記憶手段と、
簡素化タグフィールドにハッシュ処理を行ってタグ索引の出力を生成する第１ハッシュ機能手段と、
前記タグ索引と前記索引フィールドとを含み、ページテーブル中のハッシュタグ項目を指す、ページテーブル索引と、
前記仮想アドレスにハッシュ処理を行ってハッシュ結果を生成する第２ハッシュ機能手段と、
前記ハッシュタグ項目を前記ハッシュ結果と比較し、前記ハッシュタグ項目と前記ハッシュ結果とが一致する場合に、前記ハッシュタグ項目に関連する物理ページ項目がＴＬＢに記憶されるようにする、比較器と
を備えることを特徴とする、前記コンピュータ装置。
【００５０】
１１．前記ページテーブルが２Iのハッシュタグ項目を含み、その「I」が前記索引セクションのビット数に等しいことを特徴とする、前項１０記載のコンピュータ装置。
【００５１】
１２．前記ハッシュタグが、それが関連するコンピュータの基本データ幅に等しいことを特徴とする、前項１０記載のコンピュータ装置。
【００５２】
【発明の効果】
本発明は上述のように構成したので、ページテーブル中の項目の検査時に多数の比較ステップを要することなく、即ちコンピュータ装置の処理速度を低下させることなく、コンピュータ装置の基本データパスより大きな仮想タグに対処することが可能となる。
【図面の簡単な説明】
【図１】プログラムの実行中に提示される仮想アドレスに応答する従来の手順を示すフローチャートである。
【図２】変換ルックアサイドバッファ中の項目にアクセスするための従来の方法を示す機能ブロック図である。
【図３】ＴＬＢミスの後にＴＬＢの更新を行うために物理ページ情報を取り出すための従来の方法を示す機能ブロック図である。
【図４】索引ビットをハッシュタグと組み合わせてページテーブルへのアクセスを提供する本発明の第１好適実施例を示す機能ブロック図である。
【図５】ハッシュ索引ビットをハッシュタグと組み合わせてページテーブルへのアクセスを提供する本発明の第２好適実施例を示す機能ブロック図である。
【図６】ハッシュタグがページテーブル中に格納される本発明の第３好適実施例を示す機能ブロック図である。
【図７】代替的なページテーブル形式を示す説明図である。
【符号の説明】
203      仮想ページ番号
401,415  簡素化タグ
403      残余索引
405      ハッシュ機能
407      タグ索引
409      ページテーブル索引
413      ページテーブル
417      物理ページ
419      ポインタ
【図１】
0003640978.tif 000002
【図２】
0003640978.tif 000003
【図３】
0003640978.tif 000004
【図４】
0003640978.tif 000005
【図５】
0003640978.tif 000006
【図６】
0003640978.tif 000007
【図７】
0003640978.tif 000008