JP3045952B2 - フルアソシアティブ・アドレス変換器 - Google Patents

フルアソシアティブ・アドレス変換器

Info

Publication number
JP3045952B2
JP3045952B2 JP7311939A JP31193995A JP3045952B2 JP 3045952 B2 JP3045952 B2 JP 3045952B2 JP 7311939 A JP7311939 A JP 7311939A JP 31193995 A JP31193995 A JP 31193995A JP 3045952 B2 JP3045952 B2 JP 3045952B2
Authority
JP
Japan
Prior art keywords
address
translation
data
identifier
entry
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 - Lifetime
Application number
JP7311939A
Other languages
English (en)
Other versions
JPH09120374A (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.)
International Business Machines Corp
Motorola Solutions Inc
Original Assignee
International Business Machines Corp
Motorola Inc
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 International Business Machines Corp, Motorola Inc filed Critical International Business Machines Corp
Publication of JPH09120374A publication Critical patent/JPH09120374A/ja
Application granted granted Critical
Publication of JP3045952B2 publication Critical patent/JP3045952B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはデジタ
ル・コンピューティング・システムに関し、特に、アド
レス変換方法及び装置に関する。さらに特定するなら
ば、本発明は、高速変換でありながらミス・ペナルティ
ーの低減を実現するフルアソシアティブ・アドレス変換
バッファに関する。
【0002】
【従来の技術】現在のデータ処理システムは、通常、ア
ドレス変換方式を組み込んでいる。アドレス変換とは、
データ処理システムのデータ・プロセッサにより操作さ
れるメモリ・アドレスを、データ処理システムのメモリ
・システムに与えられたアドレスに対してマッピングす
るプロセスである。一般的に、データ処理システムのデ
ータ・プロセッサにより操作されるアドレスは、「有効
アドレス」又は「論理アドレス」と称される。それに対
して、データ処理システムの通信バスに与えられたアド
レスは、「実アドレス」又は「物理アドレス」と称され
る。
【0003】アドレス変換方式は、少なくとも3つの理
由により、データ処理システムの性能を向上させる。第
1の理由は、主メモリの特定領域について所与の有用な
機能を規定するためにアドレス変換方式を用いることが
できる点である。このような機能の例としては、所定の
オペレーティング・モードにある間システムのデータ・
プロセッサによる入出力装置に対する書き込みを禁止し
たり、主メモリの他の領域がデータ・プロセッサのメモ
リ・キャッシュ内にキャッシュされることを制限したり
することが挙げられる。さらに、複数のソフトウェア・
アプリケーションを、互いに他のプログラムを損なうお
それもなく同時にデータ・プロセッサのメモリ内に常駐
させることもできる。第2の理由は、アドレス変換方式
によってデータ・プロセッサが、システムのランダム・
アクセス・メモリ(RAM)よりも大きなプログラムを
実行できることである。これらの極めて大きいプログラ
ムの多くは、永久記憶装置(ハード・ディスク駆動装
置、磁気テープ駆動装置等)に記憶される。これらの極
めて大きいプログラムの中の小さな部分が、必要に応じ
てこのシステムのRAM内へ呼び出される。この機能は
「仮想メモリ」と称される。第3の理由は、マルチプロ
セッサ・データ処理(MP)システムにおける複数のデ
ータ・プロセッサが、メモリに記憶された同じデータへ
容易にアクセスできる点である。MPシステムにおける
各データ・プロセッサは、メモリ内の同じ場所へアクセ
スするために異なるアドレスを用いることができる。こ
の機能は、単一のデータ・プロセッサをもつデータ処理
システムにおいて実行される複数のプログラムによって
も利用することができる。
【0004】アドレス変換方式には3つの基本のタイプ
がある。すなわち、ページング方式、セグメンテーショ
ン方式、及びページング/セグメンテーション組合わせ
方式である。これらの3つの方式は、周知のようにそれ
ぞれ長所と短所とがある。
【0005】ページング方式によるアドレス変換では、
主メモリが多数の固定の大きさのブロック(ページ)に
分割される。データ・プロセッサにより発生される各有
効アドレスの所定の数のアドレス・ビット(通常、最上
位ビット)が、メモリ内の選択されたページを識別す
る。各有効アドレスの残りの数のアドレス・ビット(通
常、最下位ビット)は、選択されたページ内のバイトを
識別する。ページは、比較的小さいことが多い。従っ
て、ページ変換データは嵩が大きく、テーブルに記憶さ
れる。
【0006】セグメンテーション方式によるアドレス変
換では、主メモリが、多数の可変の大きさのブロック
(セグメント)に分割される。データ・プロセッサによ
り発生される各有効アドレスの最上位ビット及び最下位
ビットは、それぞれセグメント及び選択されたセグメン
ト内のバイトを識別する。本来は、データ処理システム
のオペレーティング・システムのプログラム・コード、
そのアプリケーション・プログラム・コード、そのアプ
リデーション・プログラム・データ、及びそのポインタ
・スタックは、主メモリ内の4つのセグメントのうちの
それぞれ異なる1つへマッピングされていた。その結
果、セグメントの大きさは、ページの大きさよりも数桁
のオーダー程も大きくなってしまった。セグメント変換
データは、比較的小さいため、レジスタ・ファイル又は
テーブルのいずれかに記憶することができる。
【0007】ページング/セグメンテーション組合わせ
方式によるアドレス変換では、やはり主メモリがページ
に分割される。しかしながら各有効アドレスは、主メモ
リの特定のページへマッピングされる前にセグメンテー
ション方式によって中間アドレスすなわち「仮想アドレ
ス」へマッピングされる。ここで再び、有効アドレスの
最下位ビットが、選択されたページ内のバイトを識別す
るために用いられる。ある種のページング/セグメンテ
ーション組合わせ方式においては、ページ及びセグメン
トの双方が、固定の大きさのブロックである。Powe
rPCアーキテクチャでは、全てが固定の大きさである
ようなページング/セグメンテーション組合わせ方式を
用いる。
【0008】データ・プロセッサは、通常、メモリ・ア
クセスを行う前に各有効アドレスを実アドレスへ変換す
る。このことからアドレス変換回路は、しばしばデータ
・プロセッサの重要な「速度パス」に置かれる。不都合
なことに、公知のページング/セグメンテーション組合
わせ方式は、データ処理サイクル時間の進歩によって、
許容限界に達しつつある。一般的に、ページング/セグ
メンテーション組合わせ方式は、シリアル式又はパラレ
ル式のいずれかの実施態様で説明することができる。シ
リアル式の実施態様では、有効アドレスの最上位ビット
(ESID)は、仮想セグメント識別子(VSID)を
選択するためのセグメント・レジスタ・ファイルもしく
はテーブルへのインデックスとして用いられる。そして
選択されたVSIDは、仮想アドレスを形成するべく有
効アドレスの残りのビットと連結される。仮想アドレス
の最上位ビットは、実ページ番号(RPN)を選択する
ためにページ・テーブルへのインデックスとして用いら
れる。そして選択されたRPNは、実アドレスを形成す
るために仮想アドレスの残りのビットと連結される。
【0009】有効アドレスのパラレル式の実施態様で
は、有効アドレスは、仮想セグメント識別子(VSI
D)を選択するべくセグメント・レジスタ・ファイル/
テーブルへのインデックスとして用いられると同時に、
1又は複数のVSID−RPNの対を選択するべくペー
ジ・テーブルへのインデックスとして用いられる。その
後、データ・プロセッサは、セグメント・テーブルから
のVSIDを、ページ・テーブルからの各VSIDと比
較する。これらの比較のうち1つが適合すれば、変換
「ヒット」が生じ、適合するVSIDに対応するRPN
を、仮想アドレスの残りのビットと連結することにより
実アドレスを形成する。
【0010】これらの実施例は、双方とも比較的遅い。
第1の実施態様は、2つの順次テーブル参照を必要とす
る。第2の実施態様は、続いて比較を行う単一のテーブ
ル参照を必要とする。
【0011】
【発明が解決しようとする課題】従って、ミス・ペナル
ティを低減しかつ高速変換を実現するフルアソシアティ
ブ・アドレス変換バッファが必要とされることは、明ら
かである。
【0012】本発明の目的の1つは、高性能のデジタル
・コンピューティング・システムを提供することであ
る。
【0013】本発明の別の目的は、高性能のアドレス変
換方法及び装置を提供することである。
【0014】本発明の更なる目的は、高速変換及びミス
・ペナルティの低減を実現するフルアソシアティブ・ア
ドレス変換バッファを提供することである。
【0015】
【課題を解決するための手段】上記の目的は、以降に記
載のとおり実現される。多数のエントリを含むフルアソ
シアティブ・アドレス変換器が設けられる。多数のエン
トリの各々は、受信した有効アドレスを実アドレスへと
変換する。受信した有効アドレスの各々は、セグメント
識別子とページ識別子とを含む。フルアソシアティブ・
アドレス変換器内の各エントリは、有効アドレス・セグ
メント識別子から仮想アドレス・セグメント識別への第
1の変換と、仮想アドレス・ページ識別子から実アドレ
ス・ページ識別子への第2の変換とを含む。第1の有効
ビット・セルは、有効アドレス・セグメント識別子から
仮想アドレス・セグメント識別子への第1の変換の有効
性を示す有効性ビットを記憶するために設けられる。第
2の有効ビット・セルは、仮想アドレス・ページ識別子
から実アドレス・ページ識別子への第2の変換の有効性
を示す有効性ビットを記憶するために設けられる。プロ
セス・コンテキスト・スイッチは、エントリのそれぞれ
の部分のみを無効とし、それによってコンテキスト・ス
イッチに関連するミス・ペナルティを低減することがで
きる。
【0016】
【発明の実施の形態】図1は、本発明を構成するデータ
・プロセッサ10のブロック図である。データ・プロセ
ッサ10は、ページング/セグメンテーション組合わせ
方式によるアドレス変換を用いることによりその性能を
改善するデータ・プロセッサである。データ・プロセッ
サ10は、有効アドレス−実アドレス変換器(ERA
T)において最近使用された64個のアドレス変換をバ
ッファする。このERATは、高速でありかつフルアソ
シアティブ内容アドレス指定可能メモリ(CAM)をベ
ースとする構造である。ERATは、セグメント及びペ
ージの粒度に関する変換マッピング無効化をサポートす
る。中間の仮想アドレス変換ステップを排除することに
より、本発明のERATは、従来のセグメント・テーブ
ル及びページ・テーブルの構造よりも小さくかつ高速で
ある。このようにデータ・プロセッサ10は、単一ステ
ップのアドレス変換方式の速度を実現しながら、同時に
ページング/セグメンテーション組合わせ方式の精巧さ
を実現する。さらに、本発明のERATは、高速変換と
ミス・ペナルティの低減とを実現するための個別のセグ
メント及びページ無効化を備えるフルアソシアティブ・
キャッシュ構造である。
【0017】さらに図1を参照すると、バス・インタフ
ェース・ユニット(BIU)12は、データ・プロセッ
サ10とデータ処理システムの残りの部分(図示せず)
との間のデータの流れを制御する。BIU12は、命令
キャッシュ14及びデータ・キャッシュ16へと接続さ
れる。データ・キャッシュ16については、図2を参照
してさらに詳細に示す。命令キャッシュ14は、命令フ
ェッチ・ユニット18へ命令ストリームを供給する。命
令フェッチ・ユニット18は、個々の命令を適切な実行
ユニットへと送る。図1中に示されたデータ・プロセッ
サ10は、ブランチ・ユニット20と、固定小数点実行
ユニットA22と、固定小数点実行ユニットB24と、
複合固定小数点実行ユニット26と、ロード/記憶実行
ユニット28と、浮動小数点実行ユニット30とを有す
る。固定小数点実行ユニットA22、固定小数点実行ユ
ニットB24、複合固定小数点実行ユニット26、及び
ロード/記憶実行ユニット28の各々は、その結果を、
汎用アーキテクチャ・レジスタ・ファイル32(以降、
「GPR」及び「GPRファイル」と称する)及び第1
のリネーム・バッファ34に対して読み取り及び書き込
みを行う。
【0018】浮動小数点実行ユニット26及びロード/
記憶実行ユニット28は、それぞれその結果を、浮動小
数点アーキテクチャ・レジスタ・ファイル36(以降、
「FPR」及び「FPRファイル」と称する)及び第2
のリネーム・バッファ38に対して読み取り及び書き込
みを行う。
【0019】開示の本発明を備えていないデータ・プロ
セッサ10のオペレーションは、周知である。一般的に
ブランチ・ユニット20は、所与のデータ・レジスタの
内容及び命令そのものが与えられたならば、プログラミ
ングされた命令の中のいずれのシーケンスが適切である
か否かを判断する。命令キャッシュ14は、命令フェッ
チ・ユニット18に対してプログラミングされた命令の
シーケンスを与える。もし命令キャッシュ14が要求さ
れた命令を含んでいなければ、それらの命令をデータ・
プロセッサ10の外部の主メモリ・システム(図示せ
ず)から取ってくる。
【0020】命令フェッチ・ユニット18は、様々な実
行ユニット20、22、24、26、28、及び30に
対してプログラミングされた命令シーケンスの個々の命
令を出す。上記の実行ユニットの各々は、特定のクラス
の命令のうちの1又は複数の命令を実行する。各実行ユ
ニットの特定のクラスの命令は、一般的に、実行ユニッ
トの名前により示される。例えば、固定小数点実行ユニ
ットA及びBは、固定小数点表記のオペランドに関する
単純な数学的オペレーション、例えば、加算、減算、A
ND操作、OR操作、EXOR操作等を実行する。複合
固定小数点実行ユニット26は、固定小数点表記のオペ
ランドに関するより複雑な数学的オペレーション、例え
ば、乗算、除算等を実行する。浮動小数点実行ユニット
30は、浮動小数点表記のオペランドに関する数学的オ
ペレーション、例えば乗算や除算を実行することが好ま
しい。
【0021】固定小数点実行ユニットA及びB並びに複
合固定小数点実行ユニット26の各々は、そのオペレー
ションの結果を、第1のリネーム・バッファ34内の指
定されたエントリへ戻す。第1のリネーム・バッファ3
4は、その結果を発生した命令より以前の全ての命令が
それぞれのGPRファイル・エントリを更新したとき、
第1のリネーム・バッファ34内のエントリによりGP
Rファイル32のエントリを周期的に更新する。命令フ
ェッチ・ユニット18は、この更新操作を調整する。第
1のリネーム・バッファ34及びGPRファイル32の
双方とも、固定小数点実行ユニットA及びB並びに複合
固定小数点実行ユニット26に対して、オペランドを供
給することができる。
【0022】浮動小数点実行ユニット30は、そのオペ
レーションの結果を、第2のリネーム・バッファ38内
の指定されたエントリへ戻す。第2のリネーム・バッフ
ァ38は、その結果を発生した命令より以前の全ての命
令がそれぞれのFPRファイル・エントリを更新したと
き、第2のリネーム・バッファ38内のエントリにより
FPRファイル36のエントリを周期的に更新する。命
令フェッチ・ユニット18は、この更新操作も調整す
る。第2のリネーム・バッファ38及びFPRファイル
36の双方とも、浮動小数点実行ユニット30に対し
て、オペランドを供給することができる。
【0023】ロード/記憶ユニット28は、GPRファ
イル32、第1のリネーム・バッファ34、FPRファ
イル36、又は第2のリネーム・バッファ38に記憶さ
れたデータを読み取り、そして選択されたデータをデー
タ・キャッシュ16へ書き込む。このデータは、開示の
本発明とは関係なくデータ・プロセッサ10のオペレー
ティング特性に依存して外部メモリ・システム(図示せ
ず)に書き込むこともできる。それに対して、ロード/
記憶ユニット28は、データ・キャッシュ16に記憶さ
れたデータを読み取り、そして読み取ったデータを、G
PRファイル32、第1のリネーム・バッファ34、F
PRファイル36、又は第2のリネーム・バッファ38
へ書き込む。データ・キャッシュ16が、要求されたデ
ータを含まなければ、データ・プロセッサ10の外部の
主メモリ・システムからBIU12を介して取ってくる
ことになる。
【0024】次に、開示のデータ・キャッシュを備える
データ・プロセッサ10のオペレーションについて、図
2及び図3を参照して説明する。一般的に、データ・プ
ロセッサ10は、RISCプロセッサである。データ・
プロセッサ10は、各命令を更に小さいステップのシー
ケンスに分割することにより高性能を実現する。分割さ
れた各ステップは、他の命令のステップと時間において
重なっていてもよい。このような手法は、「パイプライ
ン」として知られている。
【0025】以上述べた実施例では、各命令が、5個の
ステップに分割される。すなわち、フェッチ、ディスパ
ッチ、実行、書き戻し、及び完了の各ステップである。
命令キャッシュ14内のメモリ管理回路(図示せず)
は、フェッチ・ステップにおいて、命令フェッチ・ユニ
ット18又はブランチ・ユニット20により識別された
メモリ・アドレスにおいて始まる1又は複数の命令を取
り出す。命令フェッチ・ユニット18は、許容できない
データ依存性がないことを判断し、そしてディスパッチ
・ステップにおける命令の結果を格納するためのリネー
ム・バッファ・エントリを確保した後、各命令を適切な
実行ユニットへと経路指定する。
【0026】特定の実行ユニットの各々は、実行ステッ
プにおいてそのプログラミングされた命令を実行し、結
果がある場合は書き戻しステップにおいてその結果を、
確保されたリネーム・バッファ・エントリへ書き込む。
最後に、命令フェッチ・ユニット18は、特定の命令よ
り以前の全ての命令が上記のようにアーキテクチャ・レ
ジスタ・ファイルを更新した後、リネーム・バッファ内
に記憶されたその特定の命令の結果によりアーキテクチ
ャ・レジスタ・ファイルを更新する。一般的に各命令ス
テップは、1つのマシン・クロック・サイクルを要す
る。しかしながら、いくつかの命令は、実行するために
2以上のクロック・サイクルを必要とする一方、他の命
令は5個のステップ全てを必要としない場合もある。さ
らに、特定の命令の書き戻しステップと完了ステップと
の間には遅延が生じる場合がある。これは、様々な命令
が完了するために要する時間のばらつきに起因する。
【0027】図2は、図1中に示したデータ・キャッシ
ュ16のブロック図である。命令キャッシュ14及びデ
ータ・キャッシュ16は、本質的に似ている。双方の構
造間の相違は、主としてその中に記憶された情報の利用
に依存する。ブロック・アドレス変換器(BAT)4
2、有効アドレス−実アドレス変換器(ERAT)4
4、及びデータ・アレイ46が、データ・プロセッサ1
0の各クロック・サイクルの間にロード/記憶ユニット
28からデータ・アクセスの有効アドレスを受信する。
2×1マルチプレクサ(MUX)48は、構築された方
式に従ってBAT42又はERAT44により発生され
たアドレス変換出力を選択する。
【0028】アドレス変換と並行して、データ・アレイ
46は、キャッシュ・ラインと提示された有効アドレス
に関連する実アドレス・タグとを出力する。比較器50
は、マルチプレクサ48によるアドレス変換出力と、デ
ータ・アレイ46による実アドレス・タグ出力とを受け
取る。アドレス変換出力と実アドレス・タグとが論理的
に等しければ、ロード/記憶ユニット28へのデータ出
力は、まさに要求されたデータである。この場合、比較
器50はDCACHE HITを出力する。アドレス変
換出力と実アドレス・タグとが論理的に等しくない場
合、ロード/記憶ユニット28へのデータ出力は、要求
されたデータではない。この場合、比較器50は、DC
ACHE HITを出力しない。後者の場合、BIU1
2は、メモリ・システムからデータを受信した後、その
データをデータ・アレイ46へ書き込むことになる。
【0029】BAT42及びERAT44は、ロード/
記憶ユニット28により与えられた64ビットの有効ア
ドレスの上位52ビットを変換しようと試みる。無事に
変換されれば、BAT42及びERAT44は、与えら
れた有効アドレスに対応する実アドレスの上位28ビッ
ト、すなわち実ページ番号(RPN)を発生する。BA
T42及びERAT44もまた、各々、無事変換された
ことを示すヒット信号を出すことになる。BAT42
は、有効アドレスを無事変換したならば、制御信号であ
るBAT HITを出す。ERAT44は、有効アドレ
スを無事変換したならば、制御信号であるERAT H
ITを出す。そして、特定の有効アドレスの全部で40
ビットの実アドレスは、有効アドレスのRPNと、有効
アドレスの下位12ビットとを連結することにより発生
される。
【0030】PowerPCアーキテクチャにおいて
は、いずれの場合も、ERAT44によるアドレス変換
よりも、BAT42によるアドレス変換の方が先に行わ
れる。従って、制御信号BAT HITが出されるとき
これを受け取ることによってマルチプレクサ48は、B
AT42により発生されたRPNを出力する。それに対
して、制御信号BAT HITが出されないとき、マル
チプレクサ48は、ERAT44により発生されたRP
Nを出力する。ERAT44については、図3を参照し
て後に詳述する。
【0031】データ・アレイ46は、物理的にインデッ
クスを付けられたセミアソシアティブ・キャッシュであ
り、8ウェイ・セットアソシアティブ・キャッシュとし
て機能する。データ・アレイ46は、好適には、512
個のキャッシュ・ラインを含み、各キャッシュ・ライン
が4個の4倍ワード・データを記憶する。512個のキ
ャッシュ・ラインは、32個のカムレットをもつ2つの
バンクからなる構造とされる。各カムレットは、8個の
キャッシュ・ラインを含む。4個の4倍ワード毎のデー
タを、特定のカムレットにおける8個の異なるキャッシ
ュ・ラインのいずれか1つへマッピングすることができ
る。データ・アレイ46中の各キャッシュ・ラインは、
実アドレス・タグを内容アドレス指定メモリ(CAM)
に記憶し、有効アドレス・タグも内容アドレス指定メモ
リ(CAM)に記憶し、そして4個の4倍ワード・デー
タをスタティック・ランダム・アクセス・メモリ(SR
AM)のビット・セルの行に記憶する。各実アドレス・
タグは、キャッシュ・ライン・エントリの実アドレスの
上位28ビットを含む。各有効アドレス・タグは、キャ
ッシュ・ライン・エントリの有効アドレスの上位8ビッ
トを含む。
【0032】データ・アレイ46は、ロード/記憶ユニ
ット28から与えられた各有効アドレスについて、その
有効アドレス・ビット(52:57)により1つのカム
レットを指示するインデックスとなる。同時に、データ
・アレイ46は、有効アドレス・ビット44:51を、
選択された1つのカムレット内の8個の有効アドレス・
タグの1つと適合させようとする。選択されたカムレッ
トにおいて有効アドレス・タグの一致が見つけられたな
らば、有効アドレスのヒットが生じ、データ・アレイ4
6は、制御信号として有効アドレス・ヒット信号を出力
する。
【0033】この場合、データ・アレイ46は、関連す
る512個のビットをロード/記憶ユニット28へ出力
する。この時点で、有効アドレス・ヒットは、唯一可能
なヒットである。前述のように、比較器50は、マルチ
プレクサ48からの出力RPNと選択されたカムレット
の実アドレス・タグとを比較することにより、各有効ア
ドレス・ヒットが実際のデータ・キャッシュ・ヒットで
あるか否かを判断する。選択されたカムレットの有効ア
ドレス・タグが適合しないと判断されたならば、キャッ
シュ・ミスが生じ、データ・アレイ46は、制御信号と
して有効アドレス・ヒット信号を出さない。この場合、
BIU12は、RPNと与えられた有効アドレスの12
個の最下位ビットとを連結することにより生成された4
0ビットの実アドレスにて始まるデータを要求する。
【0034】図3は、図2中に示されたERAT44の
ブロック図を示す。記述された本発明の実施例では、E
RAT44は、64個の最近使用された有効アドレス−
実アドレス変換をキャッシュするために用いられる。こ
れらの64個の変換は、いずれも、中間の仮想アドレス
変換を必要とせずに単一の参照オペレーションにてアク
セスすることができる。
【0035】図示の通り、ERAT44は、64エント
リ内容アドレス指定メモリ(CAM)構造64を有す
る。その各エントリは、有効アドレス・セグメント識別
子(ESID)を記憶するために第1の適合ラインへ接
続される36個のCAMセルを含む。第2の64エント
リCAM構造76は、64個のエントリをもち、各々、
有効ページ識別子(EPI)を記憶する第2の適合ライ
ンへ接続される16個のCAMセルを含む。最後に、第
3の64エントリCAM構造78は、仮想セグメント識
別子(VSID)を記憶するための52個のCAMセル
をもつエントリを含む。
【0036】前述のように、有効アドレスのESID
は、有効アドレスの上位36ビットである。有効アドレ
スのページ識別子(EPI)は、有効アドレスの次の上
位16ビットである。当業者であれば、CAM構造の各
セルが、通常、適合ラインへ接続され、CAMセルの各
カテゴリがその個々の適合ラインを独立に解放(ディス
チャージ)できることは、自明であろう。このように、
ERAT44の各エントリは、1つの有効ページ番号
を、RPNデータ・アレイ62に記憶された実ページ番
号(RPN)へマッピングすることができる。マッピン
グされた有効アドレスの上位36ビットは、ESID
CAM64のエントリ内に記憶され、次の上位16ビッ
トは、EPI CAM76に記憶される。その後、RP
Nを有効アドレスの下位12ビットと連結することによ
り、実アドレスがRPNから発生される。さらにERA
T44の各エントリは、得られるページの属性に関する
様々な状態ビットも含んでおり、これは、WIM/Mi
scデータ・アレイ60に記憶される。
【0037】ERAT44は、5つの機能を実行する。
すなわち、変換、ミスの後の再充填、セグメント参照バ
ッファのエントリ無効化(SLBIE)、テーブル参照
バッファのエントリ無効化(TLBIE)、及びセグメ
ント参照バッファの全無効化(SLBIA)である。B
IU12、データ・キャッシュ16、及び命令フェッチ
・ユニット18は、ERAT44がいずれの機能を実行
するかを決定するために用いられる様々な制御信号を発
生する。
【0038】データ・キャッシュ16がロード又は記憶
のオペレーションを実行するとき、ERAT44が変換
オペレーションを実行する。変換オペレーションにおい
てERAT44は、その命令のメモリ場所の有効アドレ
スに対応するRPNを出力しようとする。ERAT44
は、先ず、有効アドレスの上位36ビットをESIDC
AMアレイ64及びセグメント参照バッファ80に対し
て適用することにより、必要なマッピングを有している
か否かを判断する。これは、VSID CAMアレイ7
8を探索するために用いられる仮想セグメント識別子へ
の変換のためである。さらに、次の上位16ビットが、
EPI CAMアレイ76に対して適用される。
【0039】特定の有効なエントリのESID及びEP
Iが、双方とも入力された有効アドレスに適合するなら
ば、各CAM構造に関連する第1及び第2の適合ライン
は、プレチャージ状態のままとなる。そして、この特定
のエントリのワード・ライン・ドライバが、エントリの
ワード・ラインを出し、RPNデータ・アレイ62内の
対応するデータ・フィールドのビット・セルを出力ビッ
ト・ラインへ結合する。ライン・ヒット信号LINE_
hitもまた、RPN出力が有効であることを示すため
に発生される。
【0040】本発明の重要な特徴は、別々の有効性を示
すビットが、ERAT44に含まれる様々なマッピング
に関連することである。図示の通り、V_ESIDビッ
ト66は、ESIDからVSIDへのマッピングの有効
性を示すために設けられる。同様に、V_VSIDビッ
ト74は、VPNからRPNへのマッピングの有効性を
示すために設けられる。このように、本発明のフルアソ
シアティブ・アドレス変換バッファにおいては、次の条
件が満たされた場合にのみ変換ヒットが生じる。すなわ
ち、有効アドレスの最上位36ビットが、ESID C
AMアレイ64内のタグに適合しかつ対応するV_ES
IDビットが「1」である条件、そして次の上位16ビ
ットがEPI CAMアレイ76内のタグに適合しかつ
対応するV_VSIDビットが「1」である条件であ
る。これらの条件を満たす場合、双方の適合ラインは、
プレチャージ状態に留まり、そしてこれら2つの適合ラ
インは、ワード・ラインを発生するべく論理的に組み合
わされる。前述のように、このワード・ラインは、RP
Nデータ・アレイ62からのRPNの出力及びアレイ6
0内の関連状態ビットをアクティブとする。
【0041】当業者であれば、特定のエントリのESI
D及びEPIのいずれか又は双方が入力有効アドレスに
適合しなければ、第1及び第2の適合ラインのいずれか
または双方が解放されることになる。この場合、特定の
エントリのワード・ライン・ドライブは、ワード・ライ
ンを出さない。もしいずれのエントリも適合するマッピ
ングを含まないならば、いずれのワード・ライン・ドラ
イバ回路もワード・ラインを出さず、ミスが生じる。し
かしながら、EPI CAMアレイ76内に適合があれ
ば、その比較において少なくとも1つの適合があること
を示すためにEPI_hit信号が発生される。よっ
て、もし変換に失敗したならば、EPI_hitの状態
は、SLB80により発生された変換されたVSIDを
用いて第2の探索を行う必要があるか否かを判断するべ
く用いることができる。この場合、ERAT44への探
索は、SLB80からのVSID出力をVSID CA
Mアレイ78の内容と比較することによりアクティブに
され、次の上位16ビットはEPI CAMアレイ76
の内容と比較され、そしてV_VSIDビットの状態が
決定される。これらの3つの条件が満たされるならば、
ESID CAMアレイ64内の対応するエントリに再
び適切なESIDを入れ、V_ESIDビットが「1」
にセットされる。同じサイクル中に、RPNが読み取ら
れ、キャッシュ・ライン・タグ出力からのRPN出力に
対して比較される。もしこの更新探索に失敗したなら
ば、ハードウェアTLBテーブル・ウォークが出され
る。TLBテーブル・ウォークが完了すると、「割り当
て」サイクルが、ERAT44中の最も前に使用された
(LRU)ラインを決定するために用いられ、全体のラ
インが再入力される。
【0042】ERAT44は、命令フェッチ・ユニット
18がセグメント参照バッファ無効化エントリ(SLB
IE)命令をデコードするときには、必ずSLBIEオ
ペレーションを実行する。SLBIEオペレーションに
おいてERAT44は、指定されたセグメントすなわち
ESIDに関係する全てのマッピングを無効化する。所
与の時点においてERAT44内には、特定のESID
に関係する任意の数のマッピングが存在する可能性があ
る。ERAT44は、指定されたESIDをESID
CAMアレイ64内の各エントリに適用することによ
り、指定されたセグメントに対応する全てのマッピング
を識別する。EPI適合ライン信号は、このオペレーシ
ョン中は無視される。もし入力されたESIDが、特定
のエントリのESID CAMアレイ64内の特定のエ
ントリの内容と適合するならば、エントリの適合ライン
は、プレチャージ状態に留まる。そしてその特定のエン
トリのワード・ライン・ドライバが、そのエントリにつ
いてのワード・ラインを出し、対応するV_ESIDビ
ットを無効エントリに対応する電圧レベルへ結合させ
る。そしてこの電圧レベルは無効エントリのV_ESI
Dビットへ書き込まれる。
【0043】さらにERAT44は、命令フェッチ・ユ
ニット18がテーブル参照バッファ無効化エントリ(T
LBIE)命令をデコードするときには、必ずTLBI
Eオペレーションを実行する。TLBIEオペレーショ
ンにおいてERAT44は、指定されたページすなわち
EPIに関係する全てのマッピングを無効化する。所与
の時点においてERAT44内には、特定のEPIに関
係する任意の数のマッピングが存在する可能性がある。
ERAT44は、指定されたEPIをEPICAMアレ
イ76内の各エントリに適用することにより、指定され
たページに対応する全てのマッピングを識別する。この
オペレーション中、ERAT44は、ESID適合ライ
ン信号を無視する。もし入力されたEPIが、EPI
CAMアレイ76内のエントリの内容と適合するなら
ば、そのエントリの第2の適合ラインは、プレチャージ
状態に留まる。そしてこの特定のエントリのワード・ラ
イン・ドライバは、そのエントリのワード・ラインを出
し、対応するV_VSIDビットを無効エントリに対応
する電圧レベルへ結合する。この電圧レベルは、無効エ
ントリのV_VSIDビットへ書き込まれる。
【0044】本発明の重要な特徴によれば、ESIDと
VSIDとの間のマッピング及びVPNからRPNへの
マッピングに対して、ERAT44内に別々の有効ビッ
トを設けることにより、セグメント参照バッファ全無効
化(SLBIA)オペレーションの性能において従来の
システムに優る実質的な有利性が提供される。このよう
なオペレーションは、命令フェッチ・ユニット18がS
LBIA命令をデコードしたときに発生する。SLBI
Aオペレーションにおいて、ERAT44は、ESID
CAMアレイ64内の全てのエントリについてのV_
ESIDビットをリセットする。ERAT44内の全て
のエントリをフラッシュしないことにより、高速の有効
アドレス−実アドレス変換を直接的に行うことが可能と
なり、かつプロセス・コンテキスト・スイッチに起因し
て生じるミス・ペナルティが低減されることになる。従
って、例えば、システム内のデータが、第1のプロセス
から第2のプロセスへ転送されようとする場合、EPI
CAMアレイ76内のエントリの無効化を伴わないセ
グメント参照バッファ・エントリの無効化によって、E
RAT44を再入力するために要する時間を実質的に少
なくできる。
【0045】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0046】(1)セグメント識別子とページ識別子と
を含む有効アドレスを受信し、受信した該有効アドレス
を実アドレスへと変換する各エントリからなる複数のエ
ントリを有するアドレス変換器であって、該エントリの
各々が、有効アドレス・セグメント識別子から仮想アド
レス・セグメント識別子への第1の変換と、仮想アドレ
ス・ページ識別子から実アドレス・ページ識別子への第
2の変換と、前記有効アドレス・セグメント識別子から
前記仮想アドレス・セグメント識別子への前記第1の変
換の有効性を示す有効性ビットを記憶する第1の有効ビ
ット・セルと、プロセス・コンテキスト・スイッチが前
記複数のエントリの各々の一部分のみを無効化する場合
に、前記仮想アドレス・ページ識別子から前記実アドレ
ス・ページ識別子への前記変換の有効性を示す有効性ビ
ットを記憶する第2の有効ビット・セルとを含むアドレ
ス変換器。 (2)第1の変換タグを記憶し、そして該第1の変換タ
グと受信したアドレス・セグメント識別子とが論理的に
等価である場合に、第1の制御信号を発生する第1の複
数の内容アドレス指定可能メモリ・ビット・セルを含む
上記(1)に記載のアドレス変換器。 (3)第2の変換タグを記憶し、そして該第2の変換タ
グと受信したアドレス・ページ識別子とが論理的に等価
である場合に、第2の制御信号を発生する第2の複数の
内容アドレス指定可能メモリ・ビット・セルを含む上記
(1)に記載のアドレス変換器。 (4)受信した有効アドレス・セグメン識別子を仮想ア
ドレス・セグメント識別子へと変換するためのセグメン
ト参照バッファを含む上記(3)に記載のアドレス変換
器。 (5)第3の変換タグを記憶し、そして該第3の変換タ
グと前記変換された仮想アドレス・セグメント識別子と
が論理的に等価である場合に、第3の制御信号を発生す
る第3の複数の内容アドレス指定可能メモリ・ビット・
セルを含む請求項4に記載のアドレス変換器。 (6)各エントリが、実アドレス・ページ識別子を記憶
するための複数のビット・セルをさらに含む上記(5)
に記載のアドレス変換器。
【図面の簡単な説明】
【図1】本発明により構築されたデータ・プロセッサの
ブロック図である。
【図2】図1のデータ・プロセッサのデータ・キャッシ
ュのブロック図である。
【図3】図2中に示した有効アドレス−実アドレス変換
器のブロック図である。
【符号の説明】
10 データ・プロセッサ 12 バス・インタフェース・ユニット 14 命令キャッシュ 16 データ・キャッシュ 18 命令フェッチ・ユニット 20 ブランチ・ユニット 22、24 固定小数点実行ユニット 26 複合固定小数点実行ユニット 28 ロード/記憶ユニット 30 浮動小数点実行ユニット 32 GPR 34、38 リネーム・バッファ 36 FPR
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 594083818 モトローラ・インコーポレイテッド アメリカ合衆国60196、イリノイ州シャ ームバーク、イースト・アルゴンクイ ン・ロード1303、サ−ド・フロワー (72)発明者 ブラッド・ビー・ビーバーズ アメリカ合衆国78748、テキサス州、オ ースチン、ショットガン・レーン 2904 (72)発明者 ルー・チュア−ウァン アメリカ合衆国78730、テキサス州、オ ースチン、ラブ・バード・レーン 4020 (72)発明者 ペイ・チュン・ピーター・リュウ アメリカ合衆国78750、テキサス州、オ ースチン、ロウ・ブリッジ・レーン 10812 (72)発明者 チー・ジュィ・ペン アメリカ合衆国78759、テキサス州、オ ースチン、マウンテン・パス・サークル 8836 (56)参考文献 特開 昭62−208147(JP,A) 特開 平5−53917(JP,A) 特開 平7−319772(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/10

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】セグメント識別子とページ識別子とを含む
    有効アドレスを受信し、受信した該有効アドレスを実ア
    ドレスへと変換する各エントリからなる複数のエントリ
    を有するアドレス変換器であって、該エントリの各々
    が、 有効アドレス・セグメント識別子から仮想アドレス・セ
    グメント識別子への第1の変換と、 仮想アドレス・ページ識別子から実アドレス・ページ識
    別子への第2の変換と、 前記有効アドレス・セグメント識別子から前記仮想アド
    レス・セグメント識別子への前記第1の変換の有効性を
    示す有効性ビットを記憶する第1の有効ビット・セル
    と、 プロセス・コンテキスト・スイッチが前記複数のエント
    リの各々の一部分のみを無効化する場合に、前記仮想ア
    ドレス・ページ識別子から前記実アドレス・ページ識別
    子への前記変換の有効性を示す有効性ビットを記憶する
    第2の有効ビット・セルとを含むアドレス変換器。
  2. 【請求項2】第1の変換タグを記憶し、そして該第1の
    変換タグと受信したアドレス・セグメント識別子とが論
    理的に等価である場合に、第1の制御信号を発生する第
    1の複数の内容アドレス指定可能メモリ・ビット・セル
    を含む請求項1に記載のアドレス変換器。
  3. 【請求項3】第2の変換タグを記憶し、そして該第2の
    変換タグと受信したアドレス・ページ識別子とが論理的
    に等価である場合に、第2の制御信号を発生する第2の
    複数の内容アドレス指定可能メモリ・ビット・セルを含
    む請求項1に記載のアドレス変換器。
  4. 【請求項4】受信した有効アドレス・セグメン識別子を
    仮想アドレス・セグメント識別子へと変換するためのセ
    グメント参照バッファを含む請求項3に記載のアドレス
    変換器。
  5. 【請求項5】第3の変換タグを記憶し、そして該第3の
    変換タグと前記変換された仮想アドレス・セグメント識
    別子とが論理的に等価である場合に、第3の制御信号を
    発生する第3の複数の内容アドレス指定可能メモリ・ビ
    ット・セルを含む請求項4に記載のアドレス変換器。
  6. 【請求項6】各エントリが、実アドレス・ページ識別子
    を記憶するための複数のビット・セルをさらに含む請求
    項5に記載のアドレス変換器。
JP7311939A 1994-12-09 1995-11-30 フルアソシアティブ・アドレス変換器 Expired - Lifetime JP3045952B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US353007 1989-05-17
US08/353,007 US5682495A (en) 1994-12-09 1994-12-09 Fully associative address translation buffer having separate segment and page invalidation

Publications (2)

Publication Number Publication Date
JPH09120374A JPH09120374A (ja) 1997-05-06
JP3045952B2 true JP3045952B2 (ja) 2000-05-29

Family

ID=23387361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7311939A Expired - Lifetime JP3045952B2 (ja) 1994-12-09 1995-11-30 フルアソシアティブ・アドレス変換器

Country Status (2)

Country Link
US (1) US5682495A (ja)
JP (1) JP3045952B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937436A (en) * 1996-07-01 1999-08-10 Sun Microsystems, Inc Network interface circuit including an address translation unit and flush control circuit and method for checking for invalid address translations
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
TW371756B (en) * 1998-05-04 1999-10-11 United Microelectronis Corp Projection memory of selective updating
JP4315488B2 (ja) * 1998-06-30 2009-08-19 ソニー株式会社 データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法
US6338128B1 (en) * 1999-05-20 2002-01-08 International Business Machines Corp. System and method for invalidating an entry in a translation unit
US6510508B1 (en) 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
US9483295B2 (en) 2014-03-31 2016-11-01 International Business Machines Corporation Transparent dynamic code optimization
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9256546B2 (en) 2014-03-31 2016-02-09 International Business Machines Corporation Transparent code patching including updating of address translation structures
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9720661B2 (en) 2014-03-31 2017-08-01 International Businesss Machines Corporation Selectively controlling use of extended mode features
US9858058B2 (en) 2014-03-31 2018-01-02 International Business Machines Corporation Partition mobility for partitions with extended code
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
US9569115B2 (en) 2014-03-31 2017-02-14 International Business Machines Corporation Transparent code patching
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor
GB2565338B (en) 2017-08-10 2020-06-03 Mips Tech Llc Fault detecting and fault tolerant multi-threaded processors
US11645178B2 (en) 2018-07-27 2023-05-09 MIPS Tech, LLC Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE37305E1 (en) * 1982-12-30 2001-07-31 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US4602368A (en) * 1983-04-15 1986-07-22 Honeywell Information Systems Inc. Dual validity bit arrays
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
JPH0769868B2 (ja) * 1986-09-25 1995-07-31 松下電器産業株式会社 高速アドレス変換装置
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
US5099415A (en) * 1989-02-15 1992-03-24 International Business Machines Guess mechanism for virtual address translation
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US5263140A (en) * 1991-01-23 1993-11-16 Silicon Graphics, Inc. Variable page size per entry translation look-aside buffer
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5428759A (en) * 1992-03-30 1995-06-27 Unisys Corporation Associative memory system having segment and page descriptor content-addressable memories
US5455922A (en) * 1992-07-28 1995-10-03 International Business Machines Corporation Dynamic validity facility for fast purging of translation bypass buffers

Also Published As

Publication number Publication date
JPH09120374A (ja) 1997-05-06
US5682495A (en) 1997-10-28

Similar Documents

Publication Publication Date Title
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
US4695950A (en) Fast two-level dynamic address translation method and means
US5895501A (en) Virtual memory system for vector based computer systems
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
EP0851357B1 (en) Method and apparatus for preloading different default address translation attributes
US5493660A (en) Software assisted hardware TLB miss handler
JP3666689B2 (ja) 仮想アドレス変換方法
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
WO1996012231A1 (en) A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US12141076B2 (en) Translation support for a virtual cache
US6351797B1 (en) Translation look-aside buffer for storing region configuration bits and method of operation
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US10810134B2 (en) Sharing virtual and real translations in a virtual cache
US5539892A (en) Address translation lookaside buffer replacement apparatus and method with user override
JPH07295889A (ja) アドレス変換回路
JP2930071B2 (ja) 情報処理装置およびプロセッサ
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US6301647B1 (en) Real mode translation look-aside buffer and method of operation
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JP3618868B2 (ja) 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム
US5687350A (en) Protocol and system for performing line-fill address during copy-back operation
JPH0327940B2 (ja)
US6134699A (en) Method and apparatus for detecting virtual address parity error for a translation lookaside buffer
JP2564377B2 (ja) キャッシュメモリを備えた情報処理装置
JPH0235543A (ja) ページテーブルエントリ無効化装置