JP2000339221A - 変換装置のエントリを無効化するシステム及び方法 - Google Patents

変換装置のエントリを無効化するシステム及び方法

Info

Publication number
JP2000339221A
JP2000339221A JP2000135310A JP2000135310A JP2000339221A JP 2000339221 A JP2000339221 A JP 2000339221A JP 2000135310 A JP2000135310 A JP 2000135310A JP 2000135310 A JP2000135310 A JP 2000135310A JP 2000339221 A JP2000339221 A JP 2000339221A
Authority
JP
Japan
Prior art keywords
address
entry
processor
invalidating
class bits
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.)
Pending
Application number
JP2000135310A
Other languages
English (en)
Inventor
Chan Albert
アルバート・チャン
Edward John Silha
エドワード・ジョン・シルハ
Larry Edward Thatcher
ラリー・エドワード・サッチャー
Wai-Yan Yun Gu
グ・ワイ−ヤン・ユン
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
Original Assignee
International Business Machines Corp
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 filed Critical International Business Machines Corp
Publication of JP2000339221A publication Critical patent/JP2000339221A/ja
Pending 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
    • 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

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)

Abstract

(57)【要約】 【課題】 本発明によりERATエントリの一部を無効
にする装置及び方法が提供される。 【解決手段】 マイクロプロセッサ内で動作中のオペレ
ーティング・システムによりプログラムが置き換えられ
ると、置き換えられたプログラムに関連付けられ、有効
/実アドレス変換装置内に存在するエントリだけが置き
換えられる。有効/実アドレス変換装置内の、オペレー
ティング・システムと共有ライブラリに関連付けられた
エントリ、及びマイクロプロセッサ内で動作中の他のソ
フトウェア装置は無効化されない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはデータ
処理システムに関し、特にプロセッサのアドレスの変換
に関する
【0002】
【従来の技術】データ処理システムは、独立したプログ
ラムをいくつか同時に実行できるオペレーティング・シ
ステム(OS)を備える。これらのプログラムはしばし
ば仮想アドレス指定を用いる。仮想アドレス指定を用い
る理由(実メモリの効率的利用等)は周知の通りであ
る。
【0003】このようなシステムの場合、各プログラム
は64ビットの有効アドレス(EA)空間全てにアクセ
スすることができ、仮想アドレス(VA)空間は、オペ
レーティング・システムが独立した仮想アドレス空間領
域を各プログラムに割当てられるように比較的大きく
(80ビット等)しなければならない。オペレーティン
グ・システムは通常、プログラムが起動したときにプロ
グラムによって排他的に使用するために、この64ビッ
ト有効アドレス空間のいくつかの領域を専用仮想アドレ
ス空間領域に関連付ける。2番目のプログラムはこれら
の領域にアクセスできない。この有効アドレス空間の他
の領域は、他のいくつかまたは全てのプログラムからア
クセスできる共有仮想アドレス空間領域に関連付けられ
る。これら共有領域は通常、オペレーティング・システ
ムの部分部分及びサブルーチン・ライブラリを含む。
【0004】ロード命令やストア命令が実行されると
き、または命令がフェッチされるとき、メモリにアクセ
スするためには、有効アドレスを仮想アドレスに変換し
てから実アドレス(RA)に変換する必要がある。有効
アドレスから仮想アドレスへの変換はしばしば、セグメ
ント・ルックアサイド・バッファ(SLB)またはセグ
メント・レジスタを使って実行され、その内容は有効ア
ドレスの上位ビットのいくつかに取って代わる。得られ
る仮想アドレスはその後、プロセッサが変換ルックアサ
イド・バッファ(TLB)またはページ・テーブルを検
索するときプロセッサにより実アドレスに変換される。
TLBは、仮想アドレスを変換するために最近使用され
たページ・テーブル・エントリの内容のキャッシュであ
る。
【0005】プロセッサ実行頻度及びTLBアレイ・サ
イズが大きくなるため、2ステップのアドレス変換プロ
セスを実行すると、プロセッサの性能がかなり低下し得
る。アドレス変換に伴う性能のペナルティを少なくする
ため、プロセッサはルックアサイド・バッファ機構(E
RAT)を使用して有効アドレスを実アドレスに直接変
換する。これらのアレイは、有効アドレスから実アドレ
スへの最近の変換の結果を含むキャッシュである。ER
ATアレイは、TLBアレイより小さいので高速であ
り、ERATアレイを使用すれば中間の変換ステップが
不要になる。
【0006】図5を参照する。プログラム403が実行
されるとき、プログラム403が占有するのは、OS4
01により割当てられるメモリ空間の一部のみである。
また、複数のプログラム403によって使用される共通
ライブラリ402にもメモリ空間が必要である。新しい
プログラムがロードされると、いくつかのSLBエント
リの内容が変更される。そのために有効アドレスと仮想
アドレスの関係が変化する。その結果、ERAT内で置
き換えられたプログラムに伴う有効アドレスから実アド
レスへの変換は無効になる。SLBのエントリにこのよ
うな変化が生じると、ERAT内の正確に一致するエン
トリを見つける術はなくなる。従って、従来技術は、E
RATエントリを全て無効にしていた。このような解決
法の問題は、ERAT内にOS401または共通ライブ
ラリ402にのみ関係するエントリがあり得ることであ
る。ERATのエントリが全て無効にされると、OS4
01とライブラリ402に関係するエントリも無効にさ
れる。これはマイクロプロセッサの効率と速度に影響を
与える。マイクロプロセッサが前のエントリを使って動
作を継続できるのではなく、OS401とライブラリ4
02に関係する新しいエントリをERATに入力する必
要があるからである。
【0007】
【発明が解決しようとする課題】従って、ERATエン
トリの一部を無効にする装置及び方法が求められる。
【0008】
【課題を解決するための手段】本発明は、前記の必要に
応えるために、マイクロプロセッサのロード/ストア装
置及び命令フェッチ装置でERATの一部を選択的に無
効にするシステム及び方法を提供するものである。セグ
メント・ルックアサイド・バッファの各エントリに1つ
またはそれ以上のクラス・ビットを関連付ける。次に、
SLBのエントリが無効にされるとき、ERATにメッ
セージを送り、ERAT内の対応するエントリを選択的
に無効にする。これは、受信したクラス・ビットとER
ATエントリとのCAM比較により行える。
【0009】
【発明の実施の形態】以下では、本発明が充分に理解さ
れるように、特定のワード、バイト長等、具体的且つ詳
細な説明を行っているが、当業者には明らかなように、
本発明は、そのような詳細がなくとも実施することは可
能である。他の例では、周知の回路をブロック図の形で
示しているが、これは不要な説明を加えることによって
本発明を曖昧にすることを避けるためである。ほとんど
の箇所で、タイミングに関する詳細等は、本発明の充分
な理解には必要ない限り、また関連技術にかかわる当業
者のスキルの範囲内にある限りは省略している。
【0010】各図については、図示している要素は必ず
しも実寸によらず、同様の要素は同じ参照符号により示
している。
【0011】本発明を実施するための代表的なハードウ
ェア環境を図1に示す。この図は、ワークステーション
113の代表的なハードウェア構成であり、本発明に従
って、中央処理装置(CPU)110、及びシステム・
バス112を介して相互接続される他の複数の装置を備
える。CPU110は、後述するように本発明のロード
/ストア装置201を備える。ワークステーション11
3はランダム・アクセス・メモリ(RAM)114、読
出し専用メモリ(ROM)116、ディスク装置12
0、テープ・ドライブ140等の周辺装置をバス112
に接続する入出力(I/O)アダプタ118、キーボー
ド124、マウス126、その他、タッチスクリーン装
置(図示せず)等の装置をバス112に接続するユーザ
・インタフェース・アダプタ122、ワークステーショ
ン113をデータ処理ネットワークに接続する通信アダ
プタ134、バス112をディスプレイ装置138に接
続するディスプレイ・アダプタ136を含む。CPU1
10には、ここには図示していないが、実行回路、バス
・インタフェース装置、算術論理装置、その他、マイク
ロプロセッサ内に一般的に使用される回路等、ロード/
ストア装置201以外の回路も追加できる。CPU11
0はまた単一の集積回路にあってもよい。
【0012】図2、図3は、本発明に従って構成したロ
ード/ストア(L/S)装置201を示す。L/S装置
201はCPU110内に置かれ、CPU110は、代
表的なマイクロプロセッサ・アーキテクチャに従って構
成することができる。
【0013】L/S装置201は、マシン・サイクル当
たり2つのロード命令またはストア命令を発行できるよ
うに2つのパイプラインを備える。レジスタ202乃至
205は、周知の方法で固定小数点装置(FXU)0、
及び1(図示せず)からオペランドを受け取る。64ビ
ット加算器206は、レジスタ202及び203から受
け取ったオペランドを加算し、64ビット加算器207
はレジスタ204及び205からのオペランドを加算
し、64ビット有効アドレスのペアが生成される。これ
ら有効アドレスはそれぞれレジスタ208及び209に
出力される。レジスタ208及び209は有効アドレス
(EA)を取得する。レジスタ208及び209は次
に、両方ともロード・ミス・キュー(LMQ)218、
LRQ220、ストア・リオーダ・キュー(SRQ)2
22にデータを送る。LMQ218、LRQ220、S
RQ222は全てアドレス・チェックを行うため、レジ
スタ216及び217からの実アドレス(RA)の他に
EAの一部を必要とする。また、有効アドレスは、タグ
・アレイ210、211にアクセスするためデコードさ
れ、L1キャッシュ236にヒットがあるかミスがある
かが判定される。ミスがある場合、アドレスはレジスタ
212、213を通してL2キャッシュ(図示せず)に
送られる。
【0014】更に、有効アドレスは、加算器206及び
207から送られてデコードされ、それぞれ有効/実ア
ドレス変換器(ERAT)214及び215にアクセス
する。ERAT214及び215はレジスタ216及び
217を通して変換アドレスを出力する。
【0015】更に、加算器206及び207からの有効
アドレスは、L1キャッシュ236内のデコーダにより
デコードされてから、ロード操作のためにL1キャッシ
ュ236にアクセスする。L1キャッシュ236にヒッ
トがあると、L1キャッシュ236からレジスタ23
7、238にデータが読出され、フォーマッタ240、
241によりフォーマットされてから結果バスを介して
返され、レジスタ・ファイル(RegFile)(図示せず)
に送られる。L1キャッシュ236から読出されるキャ
ッシュ・ラインはまた、オペランドとしての結果に依存
する操作のためレジスタ202乃至205に返される。
【0016】基本的には、L/S装置201内で実行さ
れる3つのサイクルは、実行サイクル(加算が実行され
る)、アクセス・サイクル(アレイへのアクセスが実行
される)、結果サイクル(データのフォーマットと転送
が実行される)である。
【0017】キャッシュ・ミスがあった場合、結果はL
2キャッシュ(図示せず)にまで送られる。ロード・ミ
ス・キュー(LMQ)218はL2キャッシュ(図示せ
ず)からのロード・データの戻りを待機する。そのキャ
ッシュ・ラインに関連するデータはL1キャッシュ23
6にロードされる。
【0018】これらのロード操作は投機的且つ順不同に
実行することができる。ストア命令も順不同に実行でき
る。ストア命令は、変換器の変換操作を通して実行され
た後、命令の実行が完了した後にL1キャッシュ236
に記憶するため、ストア・データ・キュー(SDQ)2
21に挿入される。従って、ストア命令は順不同に実行
されるが、L1キャッシュ236には順に書込まれる。
【0019】ストア・リオーダ・キュー(SRQ)22
2は、実行されているストア命令を追跡する。SRQ2
22はストア命令をキューに維持し、ストア・データ・
キュー(SDQ)221でデータがいつ使用できるか、
またストア命令がいつ完了前の状態になるかを判定す
る。その後、L1キャッシュ236への記憶が完了す
る。
【0020】レジスタ223、225乃至229、23
7乃至238の多くはタイミングのために使用される。
【0021】L1キャッシュ236内のキャッシュ・ラ
インは、キャッシュ・ラインの有効アドレスをもとにア
クセスされる。RAタグ・アレイ233は、キャッシュ
・ラインがL1キャッシュ236のどこに書込まれたか
を追跡する。フォーマット・ブロック231はSDQ2
21からデータを得、そのデータを適宜回転させ、スト
ア命令の実行後にL1キャッシュ236の対応するバイ
ト位置に書込む。回転ブロック224、230は蓄積交
換のために使用される。従って、ストア・キューにあっ
て完了前ではないのでまだキューに書込まれていないス
トア命令が存在し、且つそのとき、そのデータを必要と
する比較的新しいロード命令が受信された場合、データ
は実行されているロード命令に送られる。
【0022】回転ブロック239は、L2キャッシュ
(図示せず)から受信されたデータを、L1キャッシュ
・ミスに応じて回転させ、L2キャッシュからのデータ
を結果バスへ送り、対応するレジスタ・ファイルに転送
するために使用される。
【0023】ブロック219は、複数の専用レジスタ
(SPR)を含み、専用レジスタ命令の結果としてデー
タを記憶し、通常のパイプラインに入るようにこれらの
レジスタからデータを読出す。これらSPRは、エラー
・ステータス、メイン・メモリ内のエラー位置、その
他、LSU構成情報等の情報を含む。
【0024】レジスタ235は、タイミングのために実
装され、L2キャッシュ(図示せず)からのデータを入
れる。フォーマット・ブロック240及び241は、キ
ャッシュ・データを、レジスタ・ファイルのロード結果
に対応するバイト位置にフォーマット(またはシフト)
する。
【0025】図4を参照する。命令フェッチ装置35
0、ロード/ストア(L/S)装置(LSU)201、
LSU変換装置300の一部が示してある。命令フェッ
チ装置350はCPU110の一部として実装される。
LSU変換装置300は、LSU201と同じ空間に物
理的に実装できる。図は、データERAT214(D−
ERAT0)、215(D−ERAT1)に関係するL
SU201の部分部分である。命令フェッチ装置305
の命令ERAT301(I−ERAT1)も示してあ
る。ミス・リクエスト・レジスタ304、306及び3
08は、レジスタ303、305及び307のEAを、
LSU変換装置300のアービトレーション・レジスタ
313に対して有効にする。レジスタ303、305及
び307は、装置350及び201により受信された有
効アドレスをLSU変換装置300内のレジスタ310
乃至312に与える。アービトレーション・レジスタ3
13は、これらのアドレスの1つを選択してSLB31
4に送る。SLB314はCAMとして実装することが
できる。SLBは一連のレジスタとみなすことができ、
その内容は、そのために明示的に設計された命令の実行
により変更される。また、ソフトウェアにより、セグメ
ント変換情報をメモリ常駐テーブルに置くこともでき
る。メモリ常駐テーブルはプロセッサが必要に応じて検
索する。このような実装形態のとき、プロセッサは、最
新のセグメント変換をキャッシュするため使用するSL
Bを含む。ソフトウェアはSLBの内容を直接書込むこ
とはなく、必要なときにエントリを無効化する。SPR
319はCPU制御情報を含む。変換装置SPRは、メ
イン・メモリのページ・テーブル位置、ページ・テーブ
ルのサイズ、その他の必要な変換情報等、変換方法に関
する情報を含む。
【0026】前記のように、CPU110内で動作する
オペレーティング・システム(OS)401は通常、仮
想アドレス空間の専用領域を実メモリを同時に占有し得
る複数のプログラムのそれぞれに割当てる。また、共通
のプログラムやライブラリも実メモリを占有し、仮想ア
ドレス空間の割当て済み領域は、プログラムに割当てら
れた専用領域から切り離される。このモデルをサポート
するため、実アドレス空間は有効アドレス空間よりも大
きい。あるプログラムの実行がCPU110で保留され
たとき、そのプログラムに割当てられた専用仮想アドレ
ス領域は、プログラムが再びディスパッチされるまで保
存される。プログラムに割当てられた専用アドレス領域
が解放されるのは、プログラムが実行を完了するか、ま
たは中断した場合だけである。TLBアレイは仮想/実
変換データを含み、プログラムに割当てられる専用領域
は切り離されているので、1つのプログラムが保留さ
れ、第2のプログラムがCPU110で実行を開始する
ときにTLBは無効化されない。
【0027】プログラムが実行されるとき、通常は、メ
モリ・サブシステムからデータをロードし記憶する必要
がある。CPU110内で使用される有効アドレスから
仮想アドレスへの変換がSLB314により必要になる
のはこの時点である。仮想アドレスはそのとき、変換ル
ックアサイド・バッファ(TLB)315により実アド
レスに変換される。またメモリには、仮想アドレスを実
アドレスに変換するためページ・テーブルを使用でき
る。従って、TLB315内に変換データが存在しない
場合、変換データはページ・テーブルに行く。ページ・
テーブルの変換が実行されると、その変換結果はTLB
315に書込まれる。ただし、LSU変換装置300内
で実装されるプロセスは比較的遅い。その結果、LSU
201内には比較的小型で高速なERAT214及び2
15が実装され、比較的高速な有効/実アドレス変換が
実行される。CPU110は、必要な変換結果がERA
Tアレイにある場合はERATアレイを使用して有効ア
ドレスを実アドレスに変換する。なければ、CPU11
0はセグメント変換機構、TLB及びページ・テーブル
を使用して有効アドレスを実アドレスに変換し、変換結
果を対応するERATアレイにキャッシュする。前記の
ように、ERATアレイの内容は、かなり大きいTLB
アレイの内容よりも短時間でアクセスできる。更に、E
RATアレイを使用すると、変換プロセスの時間を長く
する結果になる有効アドレスから仮想アドレスへの中間
変換を実行する必要がなくなる。
【0028】変換装置はERATミスにより起動し、結
果はERATの再ロードになる。ERATミスが発生す
ると、変換装置は、通常はERATを再ロードするため
SLB/TLBルックアップのみを必要とする変換を行
う。TLBミスの場合、ページ・テーブルがアクセスさ
れてTLBが再ロードされる。
【0029】1例として、前記の装置がどのように動作
するか、また本発明が従来技術の問題をどのように克服
しているかを説明する。あるプログラム403がオペレ
ーティング・システム401内で実行されているとす
る。プログラムがロード操作を実行し、よってデータ値
がレジスタにロードされるとき、ERAT214、21
5のうちの1つに、ロード操作の有効アドレスに一致す
るエントリがあった場合、ERAT214、215のう
ち1つはロード操作のため有効/実アドレス変換を行
う。SLB/TLB/ページ・テーブル変換をERAT
アレイ検索と並行して開始するか、またはERATアレ
イに必要な変換結果がなかった場合にのみ開始すること
もできる。
【0030】ここで、新しいプログラムがオペレーティ
ング・システム401にロードされたとする。その際、
SLB314内で新しいエントリを割当て、先に述べた
SLB314内の有効アドレスと実アドレスの関係が変
化する。置き換えられたプログラムに関係するERAT
301、214、215内の有効アドレスから実アドレ
スへの変換のエントリは無効になる。同時にプログラム
が変更されると、SLB無効化信号SLBIEがSLB
314により受信され、SLBエントリ314全てが無
効化される。従来技術では、ERAT内のエントリを選
択的に無効化する術はなかった。従って、ERAT内の
全てのエントリが無効化された。しかし、前記のよう
に、置き換えられたプログラム403にのみ関係するの
ではなく、共有ライブラリ402に関係するエントリ、
またはオペレーティング・システム401にも関係する
エントリがERAT内にあり得る。従来技術では、これ
らのエントリは無効化され、使用できなくなった。本発
明は、これら他のERATエントリも有効にしておく手
段を考慮している。
【0031】本発明は、この独自機能を、SLB314
の各エントリに関連付けられるクラス・ビットを通して
実装している。SLBIE信号がSLB314から受信
されると、SLB314内のエントリが無効と指示され
る(有効ビットがクリアされる)。またSLBIE信号
により指定されるクラス・ビットがERAT301、2
14、215に送られる。次に、クラス・ビットと、E
RAT301、214、215のエントリに関連付けら
れたクラス・ビットが比較される。これは、図6に示す
ようにCAM比較により行える。一致がある場合、ER
AT301、214及び215内の対応するエントリが
無効にされる(周知の回路により有効ビットが立てられ
る)。クラス・ビットに一致しないエントリは無効化さ
れず、従ってERAT301、214及び215に有効
な状態のまま残る。
【0032】クラス・ビットには1つ以上のビットを使
用できる。クラス・ビットは、有効アドレス空間のどの
部分にSLBエントリが割当てられているかによって、
またはコールが実行されてSLBエントリが作成された
ときに決定することができる。基本的には、異なるクラ
ス・ビットをOS401、共有ライブラリ402、及び
常駐プログラム403に関連付けることができる。有効
アドレスの変換結果が対応するERATアレイに含まれ
ないとき、変換結果は、セグメント変換機構、TLB及
び可能ならページ・テーブルを使用して求められる。変
換結果が求められると、変換結果は対応するERATエ
ントリ(キャッシュされている)にロードされる。キャ
ッシュされる情報は、仮想ページの有効アドレス、関連
付けられた実メモリ・ページの実アドレス、保護ビット
及び有効アドレスを変換したSLBエントリからコピー
されたクラス・ビットを含む。プログラムが置き換えら
れると、ERAT301、314、215内の、置き換
えられたプログラムのクラス・ビットと同じクラス・ビ
ットを持つエントリだけが無効にされる。
【0033】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0034】(1)有効アドレスから実アドレスへのア
ドレス変換装置と、前記アドレス変換装置のエントリを
選択的に無効化する回路と、を含む、プロセッサ。 (2)前記無効化回路は、前記アドレス変換装置のエン
トリの全数未満を無効化することができる、前記(1)
記載のプロセッサ。 (3)前記無効化回路は、前記アドレス変換装置のエン
トリそれぞれに関連付けられた1つまたはそれ以上のク
ラス・ビットと、選択された1つまたはそれ以上のクラ
ス・ビットを持つ前記アドレス変換装置のエントリのみ
を無効化する回路と、を含む、前記(2)記載のプロセ
ッサ。 (4)前記プロセッサにより実行されているプログラム
に関係する有効アドレスを仮想アドレスに変換するよう
動作可能な、エントリを持つセグメント・ルックアサイ
ド・バッファと、前記セグメント・ルックアサイド・バ
ッファのエントリに割当てられた1つまたはそれ以上の
クラス・ビットのセットと、前記セグメント・ルックア
サイド・バッファのエントリを無効化する回路と、前記
1つまたはそれ以上のクラス・ビットのセットを、前記
アドレス変換装置のエントリそれぞれに関連付けられた
前記1つまたはそれ以上のクラス・ビットと比較する回
路と、前記セグメント・ルックアサイド・バッファのエ
ントリに割当てられた前記1つまたはそれ以上のクラス
・ビットのセットに一致する1つまたはそれ以上のクラ
ス・ビットを持つ前記アドレス変換装置のエントリのみ
を無効化する回路と、を含む、前記(3)記載のプロセ
ッサ。 (5)前記アドレス変換装置は前記プロセッサのロード
/ストア装置に存在する、前記(4)記載のプロセッ
サ。 (6)別のプログラムがディスパッチされて前記プロセ
ッサ上で実行されるか、またはオペレーティング・シス
テムが有効アドレスから仮想アドレスへのマッピングを
変更したときに、前記セグメント・ルックアサイド・バ
ッファのエントリが無効化される、前記(5)記載のプ
ロセッサ。 (7)プロセッサで実行される方法であって、アドレス
変換装置で有効アドレスを実アドレスに変換するステッ
プと、前記アドレス変換装置のエントリのうち特定のエ
ントリを選択的に無効化するステップと、を含む、方
法。 (8)前記選択的無効化ステップは、前記アドレス変換
装置のエントリの全数未満を無効化するステップを含
む、前記(7)記載の方法。 (9)前記選択的無効化ステップは、セグメント・ルッ
クアサイド・バッファにおいて、前記プログラムにより
実行されているプログラムに関係する有効アドレスを仮
想アドレスに変換するステップと、1つまたはそれ以上
のクラス・ビットのセットを前記セグメント・ルックア
サイド・バッファのエントリに割当てて変換ステップを
実行するステップと、前記セグメント・ルックアサイド
・バッファのエントリを無効化するステップと、前記1
つまたはそれ以上のクラス・ビットのセットを、前記ア
ドレス変換装置のエントリそれぞれに割当てられた1つ
またはそれ以上のクラス・ビットと比較するステップ
と、前記セグメント・ルックアサイド・バッファのエン
トリに割当てられた前記1つまたはそれ以上のクラス・
ビットのセットに一致する1つまたはそれ以上のクラス
・ビットを持つ前記アドレス変換装置のエントリのみを
無効化するステップと、を含む、前記(7)記載の方
法。 (10)データ処理システムであって、プロセッサと、
メモリ・サブシステムと、入力装置と、出力装置と、前
記プロセッサを前記メモリ・サブシステム、前記入力装
置、及び前記出力装置に接続するバス・システムと、を
含み、前記プロセッサは更に、有効アドレスを実アドレ
スに変換するよう動作可能な、複数のエントリを持つ有
効アドレスから実アドレスへの変換装置を備えるロード
/ストア装置と、前記アドレス変換装置のエントリを選
択的に無効化する回路と、を含む、データ処理システ
ム。 (11)前記無効化回路は、前記アドレス変換装置のエ
ントリの全数未満を無効化するよう動作可能な、前記
(10)記載のデータ処理システム。 (12)前記無効化回路は、前記アドレス変換装置のエ
ントリそれぞれに関連付けられた1つまたはそれ以上の
クラス・ビットと、一致する1つまたはそれ以上のクラ
ス・ビットを持つ前記アドレス変換装置のエントリのみ
を無効化する回路と、を含む、前記(10)記載のデー
タ処理システム。 (13)前記プロセッサにより実行されているプログラ
ムに関係する有効アドレスを仮想アドレスに変換するよ
う動作可能な、エントリを持つセグメント・ルックアサ
イド・バッファと、前記セグメント・ルックアサイド・
バッファのエントリに割当てられた1つまたはそれ以上
のクラス・ビットのセットと、前記セグメント・ルック
アサイド・バッファのエントリを無効化する回路と、前
記1つまたはそれ以上のクラス・ビットのセットを、前
記アドレス変換装置のエントリそれぞれに関連付けられ
た前記1つまたはそれ以上のクラス・ビットと比較する
回路と、前記セグメント・ルックアサイド・バッファの
エントリに割当てられた前記1つまたはそれ以上のクラ
ス・ビットのセットに一致する1つまたはそれ以上のク
ラス・ビットを持つ前記アドレス変換装置のエントリの
みを無効化する回路と、を含む、前記(12)記載のデ
ータ処理システム。 (14)別のプログラムがディスパッチされて前記プロ
セッサ上で実行されるか、またはオペレーティング・シ
ステムが有効アドレスから仮想アドレスへのマッピング
を変更したときに、前記セグメント・ルックアサイド・
バッファのエントリが無効化される、前記(13)記載
のデータ処理システム。
【図面の簡単な説明】
【図1】本発明に従って構成したデータ処理システムの
図である。
【図2】本発明に従って構成したロード/ストア装置の
図である。
【図3】本発明に従って構成したロード/ストア装置の
図である。
【図4】変換装置の図である。
【図5】オペレーティング・システム、共通(共有)ラ
イブラリ、プログラム間のメモリ空間割当てを示す図で
ある。
【図6】ERATのエントリを選択的に無効化する実施
例の図である。
【符号の説明】
110 中央処理装置(CPU) 112 システム・バス 113 ワークステーション 114 ランダム・アクセス・メモリ(RAM) 116 読出し専用メモリ(ROM) 118 入出力(I/O)アダプタ 120 ディスク装置 122 ユーザ・インタフェース・アダプタ 124 キーボード 126 マウス 134 通信アダプタ 136 ディスプレイ・アダプタ 138 ディスプレイ装置 140 テープ・ドライブ 201 ロード/ストア装置 202、203、204、205、208、209、2
16、217、223、225、226、227、22
8、229、237、238、303、305、30
7、304、306、308、310、311、312
レジスタ 206、207 64ビット加算器 214、215、301 有効/実アドレス変換器(E
RAT) 218 ロード・ミス・キュー(LMQ) 220 LRQ 221 SDQ 222 ストア・リオーダ・キュー(SRQ) 231 フォーマット・ブロック 233 RAタグ・アレイ 236 L1キャッシュ 240、241 フォーマッタ 300 LSU変換装置 319 SPR 350 命令フェッチ装置 401 OS 402 共有ライブラリ 403 常駐プログラム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アルバート・チャン アメリカ合衆国10598、ニューヨーク州ヨ ークタウン・ハイツ、ハノバー・ストリー ト 980 (72)発明者 エドワード・ジョン・シルハ アメリカ合衆国78759、テキサス州オース ティン、パイレニース・ドライブ 11509 (72)発明者 ラリー・エドワード・サッチャー アメリカ合衆国78759、テキサス州オース ティン、ランチ・ロード、ディ・ケイ 11507 (72)発明者 グ・ワイ−ヤン・ユン アメリカ合衆国78731、テキサス州オース ティン、ゴールド・フラワー・ホロー 4700

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】有効アドレスから実アドレスへのアドレス
    変換装置と、 前記アドレス変換装置のエントリを選択的に無効化する
    回路と、 を含む、プロセッサ。
  2. 【請求項2】前記無効化回路は、前記アドレス変換装置
    のエントリの全数未満を無効化することができる、請求
    項1記載のプロセッサ。
  3. 【請求項3】前記無効化回路は、 前記アドレス変換装置のエントリそれぞれに関連付けら
    れた1つまたはそれ以上のクラス・ビットと、 選択された1つまたはそれ以上のクラス・ビットを持つ
    前記アドレス変換装置のエントリのみを無効化する回路
    と、 を含む、請求項2記載のプロセッサ。
  4. 【請求項4】前記プロセッサにより実行されているプロ
    グラムに関係する有効アドレスを仮想アドレスに変換す
    るよう動作可能な、エントリを持つセグメント・ルック
    アサイド・バッファと、 前記セグメント・ルックアサイド・バッファのエントリ
    に割当てられた1つまたはそれ以上のクラス・ビットの
    セットと、 前記セグメント・ルックアサイド・バッファのエントリ
    を無効化する回路と、 前記1つまたはそれ以上のクラス・ビットのセットを、
    前記アドレス変換装置のエントリそれぞれに関連付けら
    れた前記1つまたはそれ以上のクラス・ビットと比較す
    る回路と、 前記セグメント・ルックアサイド・バッファのエントリ
    に割当てられた前記1つまたはそれ以上のクラス・ビッ
    トのセットに一致する1つまたはそれ以上のクラス・ビ
    ットを持つ前記アドレス変換装置のエントリのみを無効
    化する回路と、 を含む、請求項3記載のプロセッサ。
  5. 【請求項5】前記アドレス変換装置は前記プロセッサの
    ロード/ストア装置に存在する、請求項4記載のプロセ
    ッサ。
  6. 【請求項6】別のプログラムがディスパッチされて前記
    プロセッサ上で実行されるか、またはオペレーティング
    ・システムが有効アドレスから仮想アドレスへのマッピ
    ングを変更したときに、前記セグメント・ルックアサイ
    ド・バッファのエントリが無効化される、請求項5記載
    のプロセッサ。
  7. 【請求項7】プロセッサで実行される方法であって、 アドレス変換装置で有効アドレスを実アドレスに変換す
    るステップと、 前記アドレス変換装置のエントリのうち特定のエントリ
    を選択的に無効化するステップと、 を含む、方法。
  8. 【請求項8】前記選択的無効化ステップは、前記アドレ
    ス変換装置のエントリの全数未満を無効化するステップ
    を含む、請求項7記載の方法。
  9. 【請求項9】前記選択的無効化ステップは、 セグメント・ルックアサイド・バッファにおいて、前記
    プログラムにより実行されているプログラムに関係する
    有効アドレスを仮想アドレスに変換するステップと、 1つまたはそれ以上のクラス・ビットのセットを前記セ
    グメント・ルックアサイド・バッファのエントリに割当
    てて変換ステップを実行するステップと、 前記セグメント・ルックアサイド・バッファのエントリ
    を無効化するステップと、 前記1つまたはそれ以上のクラス・ビットのセットを、
    前記アドレス変換装置のエントリそれぞれに割当てられ
    た1つまたはそれ以上のクラス・ビットと比較するステ
    ップと、 前記セグメント・ルックアサイド・バッファのエントリ
    に割当てられた前記1つまたはそれ以上のクラス・ビッ
    トのセットに一致する1つまたはそれ以上のクラス・ビ
    ットを持つ前記アドレス変換装置のエントリのみを無効
    化するステップと、 を含む、請求項7記載の方法。
  10. 【請求項10】データ処理システムであって、 プロセッサと、 メモリ・サブシステムと、 入力装置と、 出力装置と、 前記プロセッサを前記メモリ・サブシステム、前記入力
    装置、及び前記出力装置に接続するバス・システムと、
    を含み、前記プロセッサは更に、 有効アドレスを実アドレスに変換するよう動作可能な、
    複数のエントリを持つ有効アドレスから実アドレスへの
    変換装置を備えるロード/ストア装置と、 前記アドレス変換装置のエントリを選択的に無効化する
    回路と、 を含む、データ処理システム。
  11. 【請求項11】前記無効化回路は、前記アドレス変換装
    置のエントリの全数未満を無効化するよう動作可能な、
    請求項10記載のデータ処理システム。
  12. 【請求項12】前記無効化回路は、 前記アドレス変換装置のエントリそれぞれに関連付けら
    れた1つまたはそれ以上のクラス・ビットと、 一致する1つまたはそれ以上のクラス・ビットを持つ前
    記アドレス変換装置のエントリのみを無効化する回路
    と、 を含む、請求項10記載のデータ処理システム。
  13. 【請求項13】前記プロセッサにより実行されているプ
    ログラムに関係する有効アドレスを仮想アドレスに変換
    するよう動作可能な、エントリを持つセグメント・ルッ
    クアサイド・バッファと、 前記セグメント・ルックアサイド・バッファのエントリ
    に割当てられた1つまたはそれ以上のクラス・ビットの
    セットと、 前記セグメント・ルックアサイド・バッファのエントリ
    を無効化する回路と、 前記1つまたはそれ以上のクラス・ビットのセットを、
    前記アドレス変換装置のエントリそれぞれに関連付けら
    れた前記1つまたはそれ以上のクラス・ビットと比較す
    る回路と、 前記セグメント・ルックアサイド・バッファのエントリ
    に割当てられた前記1つまたはそれ以上のクラス・ビッ
    トのセットに一致する1つまたはそれ以上のクラス・ビ
    ットを持つ前記アドレス変換装置のエントリのみを無効
    化する回路と、 を含む、請求項12記載のデータ処理システム。
  14. 【請求項14】別のプログラムがディスパッチされて前
    記プロセッサ上で実行されるか、またはオペレーティン
    グ・システムが有効アドレスから仮想アドレスへのマッ
    ピングを変更したときに、前記セグメント・ルックアサ
    イド・バッファのエントリが無効化される、請求項13
    記載のデータ処理システム。
JP2000135310A 1999-05-20 2000-05-09 変換装置のエントリを無効化するシステム及び方法 Pending JP2000339221A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/315,543 US6338128B1 (en) 1999-05-20 1999-05-20 System and method for invalidating an entry in a translation unit
US09/315543 1999-05-20

Publications (1)

Publication Number Publication Date
JP2000339221A true JP2000339221A (ja) 2000-12-08

Family

ID=23224905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000135310A Pending JP2000339221A (ja) 1999-05-20 2000-05-09 変換装置のエントリを無効化するシステム及び方法

Country Status (4)

Country Link
US (1) US6338128B1 (ja)
JP (1) JP2000339221A (ja)
KR (1) KR100373576B1 (ja)
TW (1) TW517187B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6901540B1 (en) * 1999-11-08 2005-05-31 International Business Machines Corporation TLB parity error recovery
US6678807B2 (en) * 2000-12-21 2004-01-13 Intel Corporation System and method for multiple store buffer forwarding in a system with a restrictive memory model
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US7389400B2 (en) * 2005-12-15 2008-06-17 International Business Machines Corporation Apparatus and method for selectively invalidating entries in an address translation cache
RU2433456C2 (ru) * 2006-04-19 2011-11-10 Квэлкомм Инкорпорейтед Виртуально маркированный кэш команд с поведением физически маркированного
US7802055B2 (en) * 2006-04-19 2010-09-21 Qualcomm Incorporated Virtually-tagged instruction cache with physically-tagged behavior
US8627047B2 (en) 2008-02-15 2014-01-07 International Business Machines Corporation Store data forwarding with no memory model restrictions
US10599569B2 (en) 2016-06-23 2020-03-24 International Business Machines Corporation Maintaining consistency between address translations in a data processing system
US11226902B2 (en) * 2019-09-30 2022-01-18 International Business Machines Corporation Translation load instruction with access protection
US11620235B1 (en) 2021-10-04 2023-04-04 International Business Machines Corporation Validation of store coherence relative to page translation invalidation
US11748267B1 (en) * 2022-08-04 2023-09-05 International Business Machines Corporation Concurrent processing of translation entry invalidation requests in a processor core

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5535351A (en) * 1994-04-04 1996-07-09 Motorola, Inc. Address translator with by-pass circuit and method of operation
US5530824A (en) * 1994-04-04 1996-06-25 Motorola, Inc. Address translation circuit
EP0690386A1 (en) * 1994-04-04 1996-01-03 International Business Machines Corporation Address translator and method of operation
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5930832A (en) * 1996-06-07 1999-07-27 International Business Machines Corporation Apparatus to guarantee TLB inclusion for store operations
US6175898B1 (en) * 1997-06-23 2001-01-16 Sun Microsystems, Inc. Method for prefetching data using a micro-TLB
US6021481A (en) * 1997-11-10 2000-02-01 International Business Machines Corporation Effective-to-real address cache managing apparatus and method
US6044447A (en) * 1998-01-30 2000-03-28 International Business Machines Corporation Method and apparatus for communicating translation command information in a multithreaded environment

Also Published As

Publication number Publication date
KR100373576B1 (ko) 2003-02-26
TW517187B (en) 2003-01-11
KR20010049340A (ko) 2001-06-15
US6338128B1 (en) 2002-01-08

Similar Documents

Publication Publication Date Title
JP2684196B2 (ja) ワークステーシヨン
US7073044B2 (en) Method and apparatus for sharing TLB entries
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
EP0548315B1 (en) Translation buffer for virtual machines with address space match
US6681311B2 (en) Translation lookaside buffer that caches memory type information
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
EP0734553B1 (en) Split level cache
AU631420B2 (en) Processing of memory access exceptions with pre-fetched instructions within the instruction pipeline of a memory system based digital computer
US4797814A (en) Variable address mode cache
CN104854568B (zh) 用于更新远程处理节点中的地址转换数据结构的转换管理指令
JP4065660B2 (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
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
JPH0711793B2 (ja) マイクロプロセッサ
CN104937568B (zh) 用于多页尺寸转换后备缓冲器(tlb)的装置和方法
JP2000353127A (ja) 改善されたコンピュータ・メモリ・アドレス変換システム
JP2008542948A (ja) コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
EP4537209B1 (en) Partial-address-translation-invalidation request
KR100308675B1 (ko) 캐쉬어드레스발생방법
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040203