(57)【特許請求の範囲】
【請求項１】
変換ルックアサイドバッファ（ＴＬＢ）において、入力仮想アドレスに対応する物理的アドレスを格納するための複数個のメモリ位置が設けられており、前記メモリ位置の各々に関連しておりページ寸法の表示を格納する手段が設けられており、ページ寸法の前記表示に応答し出力アドレスとして前記物理的アドレスの可変ビット数を供給する手段が設けられており、前記出力アドレスの残りのビットは前記仮想アドレスのビットであることを特徴とするＴＬＢ。
【請求項２】
請求項１において、前記ページ寸法の表示を格納する手段が、仮想アドレスバスへ結合した入力端を具備すると共に前記メモリ位置のメモリアレイへ結合したマッチ出力端を具備する内容アドレス可能メモリ（ＣＡＭ）を有することを特徴とするＴＬＢ。
【請求項３】
請求項２において、前記可変ビット数を供給する手段が、前記メモリアレイへ結合した第一入力端と、前記仮想アドレスバスの一部へ結合した第二入力端と、前記ＣＡＭへ結合した選択入力端とを具備するマルチプレクサを有することを特徴とするＴＬＢ。
【請求項４】
請求項２において、前記ＣＡＭのエントリに対する位置のうちの少なくとも一部が、前記マッチ出力端の１つの上に０入力に対してマッチ信号、１入力に対してマッチ及び任意の入力に対してマッチを与える値を格納するための２個のビットを有することを特徴とするＴＬＢ。
【請求項５】
請求項２において、更に、前記マッチ出力のうちの各々を前記ＣＡＭ内の前記エントリの各々に対する読取り入力へ結合させる手段が設けられていることを特徴とするＴＬＢ。
【請求項６】
請求項５において、前記結合手段が複数個のマルチプレクサを有しており、各マルチプレクサがエントリに対する読取りラインに結合されている出力端と、前記エントリに対するマッチ出力へ結合されている第一入力端と、前記エントリに対する読取り入力に結合されている第二入力端とを具備することを特徴とするＴＬＢ。
【請求項７】
請求項４において、前記ＴＬＢの各エントリが１ビットのみが格納されている複数個の位置のうちの一部を有することを特徴とするＴＬＢ。
【請求項８】
請求項４において、更に、ページ寸法を表示する値を格納するマスクレジスタが設けられており、データバス及び前記マスクレジスタへ結合されている入力端を具備すると共に前記ＣＡＭのデータＩ／Ｏラインへ結合されている出力端を具備しており前記マスクレジスタ内の値に対応するエントリ内の位置へ常時マッチ値を書込むロジック手段が設けられていることを特徴とするＴＬＢ。
【請求項９】
変換ルックアサイドバッファ（ＴＬＢ）において、入力仮想アドレスに対応する物理的アドレスを格納するための複数個のメモリ位置を具備する物理的アレイが設けられており、仮想アドレスバスへ結合されている入力端を具備すると共に前記物理的アレイへ結合されているマッチ出力端を具備する内容アドレス可能メモリ（ＣＡＭ）が設けられており、前記ＣＡＭのエントリに対する位置のうちの少なくとも一部が前記マッチ出力端のうちの１つの上で０入力に対しマッチ信号を与えるための第一値と、１入力に対するマッチのための第二値と、任意の入力に対するマッチのための第三値とを格納するための２個のビットを有しており、前記ＣＡＭにおける前記第三値に応答して出力アドレスとして前記物理的アドレスの可変ビット数を供給する手段が設けられており、前記出力アドレスの残りのビットが前記仮想アドレスのビットであることを特徴とするＴＬＢ。
【請求項１０】
請求項９において、前記可変ビット数を供給する手段が、前記物理的アレイへ結合されている第一入力端と、前記仮想アドレスバスの一部へ結合されている第二入力端と、前記ＣＡＭへ結合されている選択入力端とを具備するマルチプレクサを有することを特徴とするＴＬＢ。
【請求項１１】
請求項９において、各々が２個のビットを有する前記ＣＡＭ内の前記位置が、第一ビット値とその反転とを格納するための第一メモリセルと、第二ビット値とその反転とを格納するための第二メモリセルと、仮想アドレスビットラインと、反転仮想アドレスビットラインと、前記第一メモリセル及び前記仮想アドレスビットライン上の信号に応答して前記マッチ出力のうちの１つへ信号を供給する第一手段と、前記第二メモリセル及び前記反転仮想アドレスビットライン上の信号に応答して前記マッチ出力のうちの前記１つへ信号を供給する第二手段とを有することを特徴とするＴＬＢ。
【請求項１２】
請求項１１において、前記第一供給手段が、前記仮想アドレスビットラインへ結合した第一制御リードと、マッチ出力端へ結合した第二リードと、第三リードとを具備する第一トランジスタを有すると共に、前記第一メモリセルへ結合した第一制御リードと、前記第一トランジスタの前記第三リードへ結合した第二リードと、接地へ結合した第三リードとを具備する第二トランジスタを有することを特徴とするＴＬＢ。
【請求項１３】
請求項１１において、更に、前記第一メモリセルに結合されている第一センスアンプが設けられており、且つ前記第二メモリセルへ結合されている第二センスアンプが設けられていることを特徴とするＴＬＢ。
【請求項１４】
請求項９において、更に、ページ寸法を表示する値を格納するマスクレジスタが設けられており、前記マスクレジスタ及びデータバスへ結合されている入力端を具備すると共に２個のビットを有する前記エントリに対する前記ＣＡＭのデータＩ／Ｏラインへ結合されている出力端を具備しており前記マスクレジスタ内の値に対応するエントリ内の位置へ常時マッチ値を書込むロジック手段が設けられていることを特徴とするＴＬＢ。
【請求項１５】
請求項９において、更に、前記マッチ出力端の各々を前記ＣＡＭ内の前記エントリの各々に対する読取り入力端へ結合させる手段が設けられていることを特徴とするＴＬＢ。
【請求項１６】
請求項１５において、前記結合手段が複数個のマルチプレクサを有しており、各マルチプレクサが、エントリ用の読取りラインへ結合した出力端と、前記エントリ用のマッチ出力端へ結合した第一入力端と、前記エントリ用の読取り入力端へ結合した第二入力端とを具備することを特徴とするＴＬＢ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、変換ルックアサイドバッファ（ＴＬＢ）に関するものである。
【０００２】
【従来の技術】
多数の最近のデータ処理装置は、ユーザの観察するメモリとそのメモリの実際上の物理的な表われとの間の区別を確立し且つ管理するために仮想−物理的アドレスマッピングに依存している。多数の理由から、ページ寸法はプロセサの特定の使用に対して異なるものであり、又メモリ空間内の異なった領域に対する単一の使用内においても異なるものであることが望ましい。ページ寸法は、ＴＬＢを介しての仮想アドレスから物理的アドレスへの変換においてマップされない状態を維持するアドレスの一部である。これらの理由のうちの不完全ではあるが代表的なもののリストは以下の如きものである。
【０００３】
（１）「最良」のページ寸法は、使用中の特定のオペレーティングシステムの関数である場合がある。このことは、例えば汎用、実時間、埋込み型制御等のような異なったタイプのオペレーティングシステムを検討する場合に特にいえる場合がある。しかしながら、それは、異なった汎用のオペレーティングシステムに対しても成立する場合がある。
【０００４】
（２）例え１つのオペレーティングシステム内であっても、異なったメモリ領域に対して異なったページ寸法を有するものであることが望ましい場合がある。特に、典型的なユーザプロセスが小型乃至中型のページ寸法、例えば４乃至１６キロバイトのものを所望する場合には、ビットマップ型ディスプレイターミナルをアップデートさせるプロセスは、非常に大きなページ寸法を必要とし、通常１メガバイトを超えたものを必要とする。
【０００５】
（３）同様に、非常に大きなデータ空間を有する科学的プログラム等のようなそれ程典型的なものでないが非常に重要な適用においては、ＴＬＢにおける「ミス」に起因する過剰なオーバーヘッドを発生することなしに、そのデータの全てに「到達」するために中型乃至は大型のページ寸法を必要とする。この場合において所望されるページ寸法は、６４キロバイト乃至１メガバイトの範囲内の場合がある。
【０００６】
（４）最後の例として、オペレーティングシステム自身がメモリ空間の全てにアクセスすることが可能であることを必要とし、且つ性能上の理由から、それが、この目的のために多数のＴＬＢエントリを使用しないことが必要である。なぜならば、その場合に、それらはユーザプロセスに対して使用可能なものではないからである。従って、オペレーティングシステムは、単に２、３の非常に大きなページを使用して全てのメモリをマップすることを所望する。
【０００７】
ＴＬＢを特定する場合に興味のあるその他の２つのパラメータは連想度及びエントリ数である。連想度は、連想なし（典型的に、直接マップ型と呼ばれる）から完全連想の範囲に亘ることが可能である。典型的な具体例では、連想度４（４ウエイセット連想と呼ばれる）未満のものを使用することはなく、且つ多くの具体例では完全連想である。連想度が高ければ高い程、マッピング衝突（即ち、ＴＬＢ内にインデックスさせるために使用されるアドレス部分に対して同一の値を有するためにＴＬＢ内に共存することが不可能な２つ又はそれ以上の物理的アドレスが存在すること）が発生する可能性は少ない。２ウエイセットＴＬＢにおいては、同一のインデックスを有する２つのエントリを有することが可能であり、４ウエイの場合は４つのエントリを有することが可能であり、且つ完全連想の場合には、インデックスは存在せず任意のエントリが任意のアドレスをマップすることが可能である。その他の全てのことが同じである場合には、完全連想が最も望ましいものである。
【０００８】
エントリ数は、単に、任意の時刻においてＴＬＢが維持することの可能な異なる仮想−物理的マッピングの数である。この数は、コンポーネント数、又はプリント回路基板面積、又はシリコン面積等で測定されるＴＬＢの物理的寸法によってほぼ完全に決定される。
【０００９】
フルカスタムＶＬＳＩにおいて実現されるプロセサにおいては、完全連想型のＴＬＢを構築することが可能である。このことの理由は、主に、完全連想型構成において達成することが可能な規則性の度合に起因するものである。ＴＬＢに対して基本的に単に２つの個別的な部分が存在している。即ち、内容アドレス可能メモリ（即ち、ＣＡＭ）部分と、物理的格納部分である。このことは、５つの部分を有するセット連想構成と対比される。即ち、これら５つの部分は、インデックスデコーダと、仮想格納部分と、比較器部分と、選択部分と、物理的格納部分とである。基本的に、完全連想型構成は、セット連想型構成の最初の４つの部分を単一のＣＡＭアレイへ結合させている。
【００１０】
【課題を解決するための手段】
本発明は、エントリ当たり可変ページ寸法を有する変換ルックアサイドバッファを提供している。各エントリは、仮想アドレスから物理的アドレスへ変換される異なったビット数を有することが可能である。ＴＬＢ内の各エントリは、そのエントリに対するページ寸法の表示を有している。その変換が行なわれる場合には、ページ寸法の表示が変換されるビット数を決定する。
【００１１】
好適には、本ＴＬＢは、内容アドレス可能メモリ（ＣＡＭ）からのマッチライン出力によりアクセスされる物理的メモリアレイを使用している。ＣＡＭ内の各エントリに対するメモリ位置の一部が、１ビットではなく２ビットの情報を格納する。このことは、４つの異なった状態を格納することを可能としている。通常のＣＡＭエントリにおいては、各位置内に１ビットが格納され２つの状態を与える。これら２つの状態は、そのビットが、仮想アドレス入力ビット上で１又は０の何れかとマッチ（合致）することを可能としている。４つの状態を格納できるので、１又は０とのマッチングに加えて、「常時マッチ」値を格納することが可能である。この「常時マッチ」値は、選択されたページ寸法内のＣＡＭにおけるエントリの位置内に書込まれる。従って、これらの位置は、その位置がページ寸法の外側である場合に仮想アドレスに対するマッチを与えるために使用することが可能であり、且つそれらがページ寸法内である場合には、無視することが可能である。
【００１２】
メモリアレイに対してマッチが出力を与える後に、ＣＡＭ内に格納されているページ寸法に従って、ロジック回路が、元の仮想アドレスをメモリアレイ出力の一部と置換する。該ページ寸法は、所望のページ寸法でプログラムされているマスクレジスタを使用してＣＡＭエントリ内に元々書込まれる（該マスクレジスタは、それに書込みが行なわれているエントリの部分をマスクするために使用され、「常時マッチ」値を書込ませる）。
【００１３】
【実施例】
図１は、本発明に基づくエントリ当たり可変ページ寸法のＴＬＢの一実施例を示している。内容アドレス可能メモリ（ＣＡＭ）１２は、２状態アレイ部分１４と４状態アレイ１６とを有している。ＣＡＭセルは、１ビットの情報を格納し、従って各セルは、論理１又は論理０の何れかとマッチすべくプログラムすることが可能である。ＣＡＭセルを２ビットの情報を格納するように調整することにより、第三のマッチング可能性を導入することが可能であり、それは「常時マッチ」と呼ぶことが可能な１又は０の何れかとのマッチである。第四の可能性が存在しており、それはマッチなしである。この可能性は、テスト又は性能解析のためにエントリをディスエーブルさせるために使用することが可能である。
【００１４】
本ＴＬＢのＣＡＭ部分は２つのセクションに分割されている。「下位」セクション１６は、２ビット即ち４状態ＣＡＭセルが設けられており、一方「上位」セクション１４は通常の単一ビット即ち２状態ＣＡＭセルが設けられている。これら２つのセクションの間の分割点は、ページ寸法の可変度合の範囲を決定する。一実施例においてはこの範囲は４キロバイト乃至１６メガバイトであるが、これは単に例示的なものであることに注意すべきである。
【００１５】
本ＴＬＢを介して正確な変換を達成するためには、「マッチ」したＴＬＢエントリ内にプログラムしたのはどの寸法ページであったかを決定することが必要である。マッチするエントリは、入力するアドレスがＴＬＢエントリ内に保持されているものと同一の２進パターンを有するものである。ページ寸法を決定するためには、その変換を表わすビットパターンが物理的格納アレイから読出されるのと同時的に、ＣＡＭアレイ内に収容されているビットパターンを「読取る」ことが必要である。そのＣＡＭ部分を読取った後に、どの位置が常時マッチへプログラムされたかを注意し、且つ変換されたアドレスにおける対応する位置が入力仮想アドレスを「パススルー（通り抜け）」し且つ関連する変換を破棄せねばならない。この点を別の観点から考察すると、ページ寸法が一層大きくなると、変換されないビットの数も対応して大きくなり、その場合の唯一の困難性は、ページ寸法がエントリ毎に可変のものであるから、そのページ寸法を動的に決定することが必要であるということである。
【００１６】
可変アドレスは、バス１８及び２０上でアレイ１４及び１６へ夫々供給される。バス１８及び２０上のアドレスがＣＡＭアレイ内の格納されているアドレスとマッチする場合には、マッチライン２２のうちの１つが活性化される。マッチライン２２は、物理的アレイ２４内の異なったエントリへ結合されている。マッチラインが活性化されるエントリは、物理的アドレスバス２６及び２８上にその出力を発生する。通常のＴＬＢ動作の場合には、両方のアドレス２６及び２８が物理的アドレスバス３０の一部として供給される。バス２６及び２８上の変換された部分がページであり、一方バス３２上の変換されていない部分はそのページ内の位置を与える。
【００１７】
２状態ＣＡＭアレイ１４は、各位置に対し単一ビットを与え、それが、入力仮想アドレスのそのビット位置の０又は１に対してビットを与えるべきであるか否かを表わす。４状態ＣＡＭアレイ１６は、０又は１でマッチするか、又は、それがどのようにプログラムされているかに依存して、常にマッチを発生させることが可能である。常にマッチを発生させるべくプログラムされている部分は、ページ位置ではなくページ内の位置を与えるバス３２の変換なしビットと関連する部分である。従って、これらのビットは、物理的アドレス２４からバス２８上の対応するビットでなく、マルチプレクス用ロジック３４を介してバス２０から供給される。バス２８からのものに対して置換されるべきバス２０からのビットに対する位置は、ＣＡＭアレイ１６内の状態を読取り且つデータＩ／Ｏライン３６上のページ寸法の表示をマルチプレクス用ロジック３４へ供給することにより決定される。次いで、マルチプレクス用ロジック３４が、「常時マッチ」にプログラムされているエントリ内の位置に対しバス２０からの入力を選択する。
【００１８】
４状態ＣＡＭアレイ１６のプログラミングは、マスクレジスタ３８及びマスクロジック４０を使用して行なわれる。マスクレジスタ３８は、現在使用されているページ寸法を表わす。現在稼動中のプログラムは、データバス３７からレジスタ３８内にページ寸法をエンタさせることが可能である。マスクロジック４０は、マスクレジスタ３８により表示される如きページ寸法内のビットに対応するデータバス３７のラインに対して、「常時マッチ」を表わすビットを置換する。
【００１９】
図２は図１のＣＡＭアレイ１４からの２状態ＣＡＭセル５０及びＣＡＭアレイ１６からの４状態ＣＡＭセル５２を示している。ＣＡＭセル５０は、仮想アドレス入力ビットライン５４を有しており、そのビットラインの反転がライン５６上に与えられる。該セルの格納部分は、一対のインバータ５８及び６０が一体的に結合されるノード６２及び６４として示されている。ノード６２はトランジスタ６６のゲートへ接続されている。トランジスタ６６は、トランジスタ７０を介して、マッチライン６８へ結合されている。トランジスタ６６及び７０がターンオンされると、マッチライン６８は低状態へプルされる。マッチライン６８は仮想アドレスの異なったビットに対応してそれに沿って位置された多数のセルを有しているので、それを低状態へプルする任意のセルはマッチが存在しないことを表わす。
【００２０】
デジタル１とのマッチが所望される場合には、ノード６４に１が格納され、その反転である０がノード６２に与えられる。このことは、トランジスタ６６をターンオフさせ、従って、ライン５４上に１の値が表われ且つトランジスタ７０が活性化される場合には、マッチライン６８は下降されることはない。同時に、ノード６４上の１の値はトランジスタ７２を活性化させる。トランジスタ７２は、ライン５４上の入力値が０である場合に、トランジスタ７４を介してマッチライン６０を低状態へプルし、その反転入力ライン５６に１の値を与え、トランジスタ７４を活性化させる。従って、セル５０内に１が格納される場合には、それは、０が仮想アドレスビットとして供給される場合に、マッチライン６８を低状態へプルするが、仮想アドレスビットとして１が供給される場合には、それを低状態へプルすることはない。
【００２１】
ノード６４上に０をプログラム即ち書込むことにより、０ビットがマッチに対して与えられる場合に、同様の結果を得ることが可能である。この場合には、０がノード６４上に存在し、その反転である１がノード６２上に与えられて、トランジスタ６６を活性化させる。理解される如く、０又は１の何れかに対してマッチが発生するためには、その値及びその反転の両方が格納されねばならず且つその値及びその反転の両方が仮想アドレス入力端上に供給されねばならない。該セルにプログラム即ち書込まれている状態は、センスアンプ８０によりトランジスタ７６及び７８を介して読取ることが可能である。トランジスタ７６及び７８は読取りライン８２により活性化される。
【００２２】
それと対比して、４状態ＣＡＭセル５２は２ビットの情報の格納を与え、第一ビット及びその反転がノード８６及び８４上に格納され、且つ第二ビット及びその反転がノード９０及び８８上に格納される。しかしながら、セル５０の場合と同様に、ライン９２上の仮想アドレス入力ビット及びライン９４上のその反転のみが必要とされるに過ぎない。ビットライン９２上の１の値と該セルとをマッチさせるためには、１がノード８４に格納され且つ０がノード８８に格納されねばならない。ノード８４における１は、その反転である０をノード８６に発生させ、その際にトランジスタ９６を脱活性化させ且つライン９２上に１が存在する場合にトランジスタ９８がマッチライン６８を低状態へプルすることを防止する。ライン９２上の１はライン９４上に０を発生させ、そのことはトランジスタ１００を活性化させることはない。しかしながら、ライン９２上に０の非マッチ値が表われると、１をライン９４上に与え、トランジスタ１００が活性化されてマッチライン６８を低状態へプルする。なぜならば、トランジスタ１０２がノード８８上の０の反転であるノード９０上の１により活性化されるからである。
【００２３】
同様に、ノード８４上に０の値を格納し且つノード８８上に１の値を格納することにより、入力０に対するマッチを発生させることを理解することが可能である。常時マッチ条件を得るためには、ノード８６とノード９０の両方に０を書込み、それらの反転である１をノード８４及び８８に書込む。従って、両方のトランジスタ９６及び１０２が常にオフとなり、従ってライン９２上にどのような値が印加され且つその反転がライン９４上に印加されようとも、マッチライン６８は高状態を維持し、マッチを表示する。「マッチなし」の最終的な値は、ノード８６及び９０上に１をプログラミング即ち書込むことにより与えることが可能である。一対のセンスアンプ１０４及び１０６は、トランジスタ１０８，１１０，１１２，１１４を介して格納されている２つのビットを読取るために使用され、それらのトランジスタのゲートは読取りライン８２へ結合されている。
【００２４】
本発明のセルをプログラミング即ち書込むための回路はスタンダードなものであり、本発明回路を簡単化するために図面中には図示していない。ライン６８上にマッチが発生された後に、図１のバス３６は、図１のマルチプレクス用ロジック３４がアレイ２４からのどのビットを使用するかを決定することが可能であるために、どのビット位置が「常時マッチ」であるようにプログラム即ち書込まれたかを表示せねばならない。この読取り動作は、マルチプレクサ１１６を介して読取りライン８２へマッチライン６８をフィードバックさせることにより達成される。各位置に対してのセンスアンプ１０４及び１０６の出力は、００がプログラム即ち書込まれたか否かを決定するために読取ることが可能である。マルチプレクサ１１６は、本回路の通常の読取りのために使用される別の入力端１１８を有している。
【００２５】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ限定されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。例えば、ページ寸法の表示の目的のためにのみ終端に付加的なビットを取付けて通常の２状態ＣＡＭアレイを使用することが可能である。これらの付加的なビットは、物理的アレイをアドレスするのと同一のマッチラインによりアドレスされる別のメモリを形成することも可能である。
【図面の簡単な説明】
【図１】  本発明の一実施例に基づくエントリ当たり可変ページ寸法のＴＬＢを示した概略図。
【図２】  図１のＣＡＭアレイ内のエントリにおける２状態及び４状態の位置を示した概略図。
【符号の説明】
１２  内容アドレス可能メモリ（ＣＡＭ）
１４  ２状態アレイ部分
１６  ４状態アレイ部分
２２  マッチライン
２４  物理的アレイ
２６，２８，３０  物理的アドレスバス
３４  マルチプレクス用ロジック
３６  データＩ／Ｏライン
３８  マスクレジスタ
４０  マスクロジック
【図１】
0003657622.tif 000002
【図２】
0003657622.tif 000003