JP2565648B2 - 変換索引バッファのコヒーレンス維持方法及びシステム - Google Patents

変換索引バッファのコヒーレンス維持方法及びシステム

Info

Publication number
JP2565648B2
JP2565648B2 JP5207505A JP20750593A JP2565648B2 JP 2565648 B2 JP2565648 B2 JP 2565648B2 JP 5207505 A JP5207505 A JP 5207505A JP 20750593 A JP20750593 A JP 20750593A JP 2565648 B2 JP2565648 B2 JP 2565648B2
Authority
JP
Japan
Prior art keywords
lookaside buffer
translation lookaside
instruction
processor
processors
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
JP5207505A
Other languages
English (en)
Other versions
JPH06187241A (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
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 JPH06187241A publication Critical patent/JPH06187241A/ja
Application granted granted Critical
Publication of JP2565648B2 publication Critical patent/JP2565648B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般的には改良型マルチ
プロセッサデータ処理システムに関し、より特定化する
ならば、マルチプロセッサデータ処理システムにおいて
メモリコヒーレンスを維持する改良方法とシステムに関
する。なおより特定化するならば本発明は、マルチプロ
セッサデータ処理システムにおいてプロセッサ間割込み
を利用せずに変換索引バッファ(TLB)のコヒーレン
スを維持する改良方法とシステムに関する。
【0002】
【従来の技術】最近の技術を利用したデータ処理システ
ムの設計者は、同様のシステムのパーフォマンスを向上
させるよう絶えず試みてきた。データ処理システム効率
を向上させる1つの技法は、短いサイクル時間と低いサ
イクル当たりの命令(CPI)比を達成することであ
る。向上したデータ処理システムへ上記技術を適用した
優れた例は、International Busin
ess MachinesCorporationのR
ISCシステム6000(RS/6000)というコン
ピュータである。RS/6000システムはマルチユー
ザ商用環境と同様に、数値的に高度な工学・科学への適
用で優れた性能を発揮するよう設計されている。RS/
6000のプロセッサはマルチスカラ形式のインプリメ
ンテーションを採用しており、これはマルチ命令を発生
させ、それらを同時に実行させることを意味する。
【0003】マルチ命令の同時発生と実行には、高度な
命令バンド幅を有する並列実行可能な独立機能ユニット
が必要である。RS/6000システムは現実にパイプ
ライン方式の別々の分岐、固定点及び浮動点の処理ユニ
ットを利用してマルチ命令の発生と実行を達成してい
る。そのようなシステムで重大なパイプライン上の遅延
ペナルティは、条件分岐命令の実行から生じる。条件分
岐命令とは、1つ乃至それ以上の命令処理の選択結果に
応じてアプリケーション中で指定された条件分岐の選択
指示命令である。このように、条件分岐命令がパイプラ
インキューを経由してそのキューの実行位置へ伝搬する
時刻までのランタイム遅延を避けるため、その条件分岐
決定前に、条件分岐命令後のキュー命令を実行する必要
がある。
【0004】マルチスカラプロセッサシステムで発生す
る1つの遅延源は、そのようなシステムが典型的には同
時にマルチタスクを実行する事実にある。それらの各マ
ルチタスクは典型的に、そのタスク実行に利用する有効
または仮想アドレス空間を有する。そのような有効また
は仮想アドレス空間内の配置は、システムメモリを実ア
ドレスへ”変換する”アドレスを含む。実アドレスの単
一空間に、マルチスカラプロセッサシステムの複数の有
効または仮想アドレスを変換することは時に一般的であ
る。これらのアドレスをシステムメモリの実アドレスへ
変換する必要があるため、各マルチタスクによる有効ま
たは仮想アドレスの利用は、マルチスカラプロセッサシ
ステムに補足的遅延を発生させ、そのため適切な命令や
データがメモリから回収させ、マルチスカラプロセッサ
システムを形成する複数の独立な機能ユニットの1つへ
ディスパッチする命令キューに配置させる。
【0005】マルチスカラプロセッサシステムの有効ま
たは仮想アドレスメモリがシステムメモリの実アドレス
へすぐに変換される1つの技術は、いわゆる”変換索引
バッファ”(TLB)の利用にある。変換索引バッファ
(TLB)とは、変換アルゴリズムを利用し生成され
た、有効または仮想メモリアドレスと実メモリアドレス
間の変換関係を含むバッファである。変換索引バッファ
(TLB)デバイスの利用がアドレス間変換を行う妥当
な有効手法を提供する一方、密結合対称型マルチプロセ
ッサシステムにおいてそのようなバッファを利用すると
バッファ間のコヒーレンスに問題が生じる。マルチプロ
セッサが通常システムの実メモリを読書きするデータ処
理システムにおいて、そのメモリシステムがコヒーレン
ト状態で動作するよう注意を払わねばならない。つま
り、マルチプロセッサ動作の結果、メモリシステムがイ
ンコヒーレントになってはならない。そのようなマルチ
プロセッサデータ処理システムの各プロセッサは典型的
に、アドレス変換用の変換索引バッファ(TLB)を含
み、システムメモリの局面の一部として、コヒーレンス
を維持するようマルチプロセッサシステム中のあるプロ
セッサの単一変換索引バッファ(TLB)への変化を各
変換索引バッファ(TLB)へ注意深く首尾一貫して変
換する必要がある。
【0006】前記マルチプロセッサの変換索引バッファ
(TLB)のコヒーレンス維持は、全ての変換索引バッ
ファ(TLB)の改良に対し、プロセッサ間割込みとソ
フトウエア同期を利用し典型的に達成される。これらの
アプローチはマルチプロセッサシステムにわたったコヒ
ーレンスを保証するために利用できる。しかしながら、
割込みとソフトウエア同期の利用必要性は、マルチプロ
セッサコンピュータシステムで実質的なパーフォマンス
低下となる。
【0007】それゆえ、マルチプロセッサデータ処理シ
ステムにおいてプロセッサ間割込みを利用せずに変換索
引バッファのコヒーレンスを維持する利用方法とシステ
ムが必要であることは明らかである。
【0008】
【発明が解決しようとする課題】それゆえ本発明の1つ
の目的は、改良型マルチプロセッサデータ処理システム
を提供することである。
【0009】本発明のもう1つの目的は、マルチプロセ
ッサデータ処理システムにおいてメモリコヒーレンス維
持の改良方法とシステムを提供することである。
【0010】さらに本発明のもう1つの目的は、マルチ
プロセッサデータ処理システムにおいてプロセッサ間割
込みを利用せずに変換索引バッファのコヒーレンスを維
持する改良方法とシステムを提供することである。
【0011】
【課題を解決するための手段】前記課題は以下で記述さ
れるように達成される。変換索引バッファ(TLB)
は、有効または仮想アドレスをシステムメモリの実アド
レスへ効率的に変換するデータ処理システムでしばしば
利用される。全システムメモリにアクセスするマルチプ
ロセッサを含むシステムでは、各プロセッサは有効アド
レスを実アドレスへ変換する変換索引バッファ(TL
B)を含んでおり、それゆえ全変換索引バッファ(TL
B)間のコヒーレンスが維持されねばならない。マルチ
プロセッサシステムのいずれかのプロセッサによる変換
索引バッファ無効化(TLBI)命令の実行に応じた一
意的バス構造を同報通信するため、ここで明らかにされ
た方法とシステムを利用する。各プロセッサの保留中
変換索引バッファ無効化(TLBI)命令が無いことの
みに応じて、そのバスに沿った他のプロセッサによりそ
のバス構造が受理される。このように、同報通信された
変換索引バッファ無効化(TLBI)命令は、システム
の全プロセッサによってその命令が受理されれば、マル
チプロセッサシステムの他のプロセッサによって実行の
みが行われる。システムの全プロセッサで、変換索引バ
ッファ無効化(TLBI)命令を実行開始後、保留中の
命令実行は変換索引バッファ無効化(TLBI)命令が
実行される後まで一時的に中断させられる。それゆえ、
メモリキューの全読書き操作がコヒーレンスを達成する
まで命令実行を保留する。次に、利用アドレスがなおも
妥当であることを保証するため、改良型変換索引バッフ
ァ(TLB)を利用して全ての保留命令とプリフェッチ
命令を再フェッチする。
【0012】本発明の補足的な話題、特徴及び利点と同
様に、上記内容を引き続き詳細な記述で明らかにする。
【0013】
【実施例】ここで以下の図に関連し、特に図1では、本
発明の方法とシステムのインプリメンテーションのため
利用される、マルチプロセッサデータ処理システム6を
描写した高レベルブロックダイヤグラムが描写されてい
る。描写されているように、マルチプロセッサデータ処
理システム6は、バス8を利用してシステムメモリ18
へ各々結合されたマルチスカラプロセッサ10を利用し
て構築される。マルチプロセッサデータ処理システム6
といった密結合対称型マルチプロセッサシステムで、マ
ルチプロセッサデータ処理システム6の各プロセッサ1
0はメモリ18への読書きのため利用される。このよう
に、メモリ18のデータと命令がコヒーレンスであり続
けるよう保証するため、システムとインタロックを利用
せねばならない。
【0014】図1に描写され、ここでより詳細に説明さ
れるように、マルチプロセッサデータ処理システム6の
各プロセッサ10は、命令またはデータ用の有効または
仮想アドレスをシステムメモリ18の実アドレスへ効率
的に変換するため利用される、変換索引バッファ(TL
B)を含んでいる。変換索引バッファ(TLB)がメモ
リ空間を構成するという事実の観点から、その正確な操
作を保証するため、マルチプロセッサデータ処理システ
ム6の各変換索引バッファ(TLB)間のコヒーレンス
を維持することが重要である。
【0015】ここで図2では、図1のマルチプロセッサ
データ処理システム6を提供するため利用するマルチス
カラプロセッサ10の高レベルブロックダイヤグラムが
描写されている。描写されているように、マルチスカラ
プロセッサ10はマルチスカラプロセッサ10によりデ
ータ、命令やシステムメモリ18(図1を見よ)から読
書きされる同様のものを格納するため利用するメモリキ
ュー36を含むのが望ましい。メモリキュー36内に格
納されるデータや命令はキャッシュ/メモリインタフェ
ース20を利用して、当技術の専門家に公知の方法でア
クセスされる。キャッシュメモリシステムの整列と利用
は、データ処理技術で公知の専門技術であり、本実施例
で記載しない。しかしながら、最近の関連キャッシュ技
術を利用してメモリアクセスの大きな割合を、キャッシ
ュ/メモリインタフェース20に一時的に格納されたデ
ータを利用して達成することを、当技術の専門家は認識
すると思われる。
【0016】キャッシュ/メモリインタフェース20か
らの命令は典型的には、複数のキュー位置をなるべく含
むよう命令キュー22へロードされる。マルチスカラコ
ンピュータシステムの典型的実施例では、命令キューは
8個のキュー位置を含み、それゆえ与えられたサイクル
内でキャッシュ/メモリインタフェース20が何個の妥
当な命令を通過させたか、命令キュー22でいくらの空
間が利用できるかにより、0乃至8個の命令を命令キュ
ー22へロードする。
【0017】同様のマルチスカラプロセッサシステムで
典型的なように、命令キュー22はマルチ実行ユニット
へ命令をディスパッチさせるため利用される。図2に描
写されているように、マルチスカラプロセッサ10は浮
動点プロセッサユニット24、固定点プロセッサユニッ
ト26と分岐プロセッサユニット28を含む。このよう
に、命令キュー22は1サイクル内で0乃至3個の命令
を各実行ユニットの1つへディスパッチさせる。
【0018】命令キュー22よりディスパッチされる順
次命令に加えて、いわゆる”条件分岐命令”を分岐プロ
セッサによる実行のため命令キュー22へロードする。
条件分岐命令とは、1つ乃至それ以上の順次命令処理の
選択結果に応じてアプリケーションで選択される付随条
件分岐を指定した命令である。マルチスカラプロセッサ
10といったパイプライン型プロセッサシステムでのラ
ンタイム遅延を最小化する試みでは、命令キュー22の
条件分岐命令の存在が検出され、その条件分岐命令の結
果が予測される。当技術の専門家にとって公知のよう
に、条件分岐を”選択せず”と予測した時、命令キュー
の順次命令は単に現在のパスに沿って継続され、変更さ
れる命令はない。しかしながら、分岐発生予測が間違い
の場合、命令キューは後続プログラムオーダ中に条件分
岐命令を持つ順次命令を除去せねばならず、目的命令を
フェッチせねばならない。代りに、条件分岐命令を”選
択する”と予測した場合、その予測が正しいと決定され
るならば後続の条件分岐のため目的命令をフェッチし、
利用する。そしてもちろん”選択する”と予測した場
合、目的命令を除去し、後続のプログラムオーダ中に条
件分岐命令を持つ順次命令を回収せねばならない。
【0019】記述したように、マルチスカラプロセッサ
10はまた条件レジスタ32を含むことが望ましい。マ
ルチスカラプロセッサ10で処理される順次命令結果を
利用する際に発生するさまざまな比較結果を一時的に格
納するため、条件レジスタ32を利用する。このよう
に、浮動点プロセッサユニット24、固定点プロセッサ
ユニット26と分岐プロセッサユニット28は条件レジ
スタ32に全て結合されている。条件レジスタ32のあ
る特定条件の状態を検出し、分岐開始条件の発生に応じ
て目的命令をフェッチする目的でその際利用される目的
アドレスを生成するため、前記状態を分岐プロセッサユ
ニット28へ結合する。
【0020】その後、分岐プロセッサユニット28はフ
ェッチャ30へ目的アドレスを結合する。フェッチャ3
0は、後続の条件分岐に必要な目的命令のフェッチアド
レスを計算し、キャッシュ/メモリインタフェース20
へそれらのフェッチアドレスを結合する。当技術の専門
家が認識しているように、それらのフェッチアドレスに
関連する目的アドレスがキャッシュ/メモリインタフェ
ース20に存在している場合、それらの目的命令は命令
キュー22へロードされる。代りに、その目的命令はメ
モリ18よりフェッチされ、その後それらの目的命令を
フェッチするため必要な遅延の後、キャッシュ/メモリ
インタフェース20から命令キュー22へロードされ
る。
【0021】当技術の専門家が認識しているように、マ
ルチスカラプロセッサ10の各タスクは典型的に有効メ
モリまたはそれと共に仮想メモリ空間に関連し、各タス
クのインプリメントに必要な命令は有効または仮想アド
レスを利用してその空間内に配置される。このようにフ
ェッチャ30は、各タスクにより利用される有効アドレ
スからの命令のため実アドレスを決定できなければなら
ない。以上に述べたように、フェッチャ30の前記イン
プリメンテーションでは典型的に、有効または仮想命令
アドレスから実命令アドレスを決定するため、複雑な変
換索引バッファ(TLB)、シーケンスレジスタとマル
チ変換アルゴリズムを結合させるか、代りにそのような
複雑な変換能力を有するメモリ管理ユニット(MMU)
へアクセスするため同様な命令フェッチャを必要とす
る。
【0022】また、メモリ管理ユニット(MMU)がマ
ルチスカラプロセッサ10に描写されている。より詳細
にこのことが記述されるように、メモリ管理ユニット
は、マルチスカラプロセッサ10で各有効アドレスをシ
ステムメモリの実アドレスへ変換するために利用され
る、変換索引バッファ(TLB)と、全ての必要なレジ
スタと、変換アルゴリズムを含むことが望ましい。フェ
ッチユニットでは典型的にメモリ管理ユニット(MM
U)をアクセスする優先権が非常に低く、それゆえメモ
リ管理ユニット(MMU)を利用し実命令アドレスを得
る時に多少の遅延が予測される。
【0023】ここで図3では、図2の変換索引バッファ
(TLB)とマルチスカラプロセッサ10のメモリ管理
ユニット(MMU)を描写したより詳細なブロックダイ
ヤグラムが描写されている。図3に描写されているよう
に、キャッシュ/メモリインタフェース20、フェッチ
ャ30とメモリ管理ユニット34間の関係が描写されて
いる。公知のメモリ管理ユニットにおいて典型的なよう
に、メモリ管理ユニット(MMU)は実質的に整列済の
変換索引バッファ(TLB)40を含む。当技術の専門
家は、有効または仮想アドレスを実アドレスへ変換する
かなり高速化技術として変換索引バッファ(TLB)を
時に利用することを認識すると思われる。また、PTE
変換器42とBAT変換器44がメモリ管理ユニット
(MMU)34に存在する。PTE変換器42はむしろ
ページテーブル型変換のインプリメントに利用され、B
AT変換器44はアドレスブロック型変換形式の変換に
利用される。ページテーブル型変換が、首尾一貫して配
列されたメモリページを持つシステムで発生する一方、
アドレスブロック型変換が例えばメモリが28キロバイ
トブロック乃至8メガバイトの範囲のサイズを有する定
義済アドレスブロックに帰する点で、これら2つの変換
アルゴリズムが実質的に異なっていることを、当技術の
専門家は認識すると思われる。
【0024】このように図3に関連し、PTE変換器4
2に接続した変換索引バッファ(TLB)40を利用す
ることで、マルチスカラプロセッサ10(図2を見よ)
のページテーブル型変換を利用して全有効アドレスをシ
ステムメモリの実アドレスへ変換することを、当技術の
専門家は認識すると思われる。もちろん、当技術の専門
家はまた、セグメントレジスタが同様な変換に対しても
また利用されることを認識すると思われる。代りに、ア
ドレスブロック型変換はBAT変換器44のみを利用し
達成される。描写されている方法によるマルチ変換アル
ゴリズムの提供によって、マルチスカラプロセッサ10
の各有効または仮想アドレスをメモリ管理ユニット(M
MU)34を利用してシステムメモリの実アドレスへ変
換する。
【0025】当技術の専門家が認識するように、フェッ
チャ30がフェッチアドレスを、分岐プロセッサユニッ
ト28によって選択された目的命令のために、キャッシ
ュ/メモリインタフェース20へ結合するために利用さ
れる。分岐プロセッサユニット28からフェッチャ30
に結合された各目的アドレスに対して、フェッチアドレ
スが決定され、キャッシュ/メモリインタフェース20
に結合される。本発明が描写する実施例では、メモリ管
理ユニット34の変換索引バッファ(TLB)をアクセ
スすることでこれらのアドレスがしばしば決定される。
マルチプロセッサデータ処理システム6の各マルチスカ
ラプロセッサ10中のコヒーレンスを維持するため、各
マルチスカラプロセッサ10の各変換索引バッファ(T
LB)40間のコヒーレンスを維持する必要があること
は明らかである。
【0026】ここで図4では、図1のマルチプロセッサ
データ処理システムのあるマルチスカラプロセッサによ
る変換索引バッファ無効化(TLBI)命令の起動を描
写した高レベルフローチャートが描写されている。有効
または仮想アドレスをシステムメモリの実アドレスへ変
換するためさもなくば利用される、変換索引バッファ
(TLB)のエントリを無効化するため、変換索引バッ
ファ無効化(TLBI)命令がデータ処理システムに生
じることを、当技術の専門家は認識すると思われる。も
ちろん、同様の状況はシステムメモリのデータや命令の
再配置の結果、または有効または仮想アドレスとシステ
ムメモリの実アドレス間の変換関係を改良する何らかの
他の操作結果として発生する。
【0027】図4に描写されているように、そのプロセ
スはブロック50で始まり、ブロック52へその後進
む。ブロック52は図1のマルチスカラデータ処理シス
テム6のマルチスカラプロセッサの固定点プロセッサユ
ニットで変換索引バッファ無効化(TLBI)命令が”
実行”位置にあるか否かの決定手段を描写している。こ
の状況が発生しなければ、変換索引バッファ無効化(T
LBI)命令が、システムの固定点プロセッサユニット
中で”実行”位置にあると検出される時刻まで、その過
程が単に繰返されるだけである。変換索引バッファ無効
化(TLBI)命令を検出後、その過程はブロック54
へ進む。ブロック54は、局所マルチスカラプロセッサ
10の変換索引バッファ(TLB)上での局所的変換索
引バッファ無効化(TLBI)命令のパーフォマンスを
描写している。その後、その過程はブロック56へ進
む。
【0028】ブロック56は局所マルチスカラプロセッ
サ10によるバスアクセスのための仲裁(アービトレー
ション)を描写し、その後その過程はブロック58へ進
む。ブロック58は、アクセスがバス8(図1を見よ)
に保証されているか否かの決定手順を描写し、アクセス
が保証されていなければ、再びバスアクセス仲裁を試み
るよう繰返しブロック56へ復帰する。ブロック58で
決定されたように、バス8へのアクセス獲得後、その過
程はブロック60へ進む。ブロック60は、された
変換索引バッファ無効化(TLBI)命令と関連付けら
れる変換索引バッファ無効化(TLBI)命令のバス構
造をバス8を経由して他のプロセッサに同報通信する描
写である。当業者ならば前記内容参照すれば、トラン
ザクションコード拡張セットを用いて既存のメモリバス
構造を利できること、及び、変換索引バッファ無効化
(TLBI)命令は、インデックス”に基づいた無効
処理にすることもできるし、又は、変換索引バッファ無
効化(TLBI)命令により無効にされるページの仮
アドレス全体を同報通信するようにすることもできると
いうことを認識すると思われる。
【0029】次に、その過程はブロック62へ進む。マ
ルチプロセッサ処理システム6のマルチスカラプロセッ
サシステムの1つが、同報通信する変換索引バッファ無
効化(TLBI)命令のバス構造を受理しなかったこと
を指示する、”リトライ”メッセージが検出されている
か否かの決定手順をブロック62は描写している。この
発生により、上記方法で変換索引バッファ無効化(TL
BI)命令のバス構造の同報通信を再度試みるため繰返
しその過程がブロック56へ復帰する。しかしながら、
イベント中に”リトライ”メッセージが検出されなけれ
ば、このことはマルチスカラデータ処理システム6中の
各マルチスカラ処理システムが変換索引バッファ無効化
(TLBI)命令のバス構造の同報通信を受理したこと
を示し、その過程はこの時、ブロック64へ進む。再度
ブロック64は、バスアクセスのための局所マルチスカ
ラプロセッサによる仲裁を描写し、その過程はこの時ブ
ロック66へ進む。ブロック66はバスへのアクセスが
得られているか否かの決定手順を描写している。アクセ
スが得られていなければ、バスアクセスが獲得される時
刻まで、その過程はブロック64へ繰返し復帰する。
【0030】ロック68は、バスへのアクセス獲得
後、マルチプロセッサデータ処理システム10内で最初
に命令を実行したプロセッサによって”同期”信号
報通信されることをブロック68は描写している。この
信号は、マルチプロセッサデータ処理システムの各マル
チスカラプロセッサが変換索引バッファ無効化(TLB
I)命令を実行したか否かを決定するため利用される。
【0031】ここでブロック70で、イベント中に”リ
トライ”メッセージが検出されていることはマルチプロ
セッサデータ処理システム6中の1つ乃至それ以上のプ
ロセッサが変換索引バッファ無効化(TLBI)命令完
了に失敗したことを示し、マルチプロセッサデータ処理
システム6中の全マルチスカラプロセッサが変換索引バ
ッファ無効化(TLBI)命令を実行している確証を得
るよう再度試みるため、その過程はブロック64へ繰返
し復帰する。各プロセッサがその命令を実行完了した指
示を受信後、その過程はブロック72へ進み、復帰す
る。
【0032】ここで図5では、本発明の方法とシステム
に従って、図1のマルチプロセッサデータ処理システム
にわたる変換索引バッファ無効化(TLBI)命令の処
理を描写した高レベル論理フローチャートが描写されて
いる。描写されているように、この過程はブロック10
0で始まり、その後ブロック102へ進む。ブロック1
02は、バス8に沿って同報通信される変換索引バッフ
ァ無効化(TLBI)命令のバス構造がマルチプロセッ
サデータ処理システム6のマルチスカラプロセッサにお
いて検出されているか否かの決定手順を描写している。
検出されていなければ、このイベントが発生する時刻ま
でその過程を単に繰返す。
【0033】さらにブロック102で、イベント中に変
換索引バッファ無効化(TLBI)命令バス構造が検出
されていなければ、その過程はブロック104へ進む。
以前の変換索引バッファ無効化(TLBI)命令がなお
保留中で、また実行完了にないことを示す、”TLB
保留”フラグがセットさせているか否かの決定手順を
ブロック104は表現する。フラグがセットされていれ
ば、現行マルチプロセッサが変換索引バッファ無効化
(TLBI)命令のバス構造を受理していないことを示
す”リトライ”メッセージの言明を表現するブロック1
06へその過程が進む。その後、その過程はブロック1
08へ進み、復帰する。
【0034】再びブロック104でイベント中に”TL
BI保留”フラグがセットさせていなければ、その過程
はブロック110へ進む。変換索引バッファ無効化(T
LBI)命令のバス構造がもう1つのプロセッサで受理
されなかったことを示す”リトライ”メッセージを、マ
ルチプロセッサデータ処理システム6の他のマルチスカ
ラプロセッサが言明したか否かの決定手順をブロック1
10は表現する。言明されたならば、その過程はブロッ
ク112へ進む。ブロック112は、変換索引バッファ
無効化(TLBI)命令のバス構造の無視を表現し、こ
の時その過程はブロック108へ進み、復帰する。
【0035】再びブロック110で、イベント中に”T
LBI保留”フラグがセットさせておらず、マルチプロ
セッサデータ処理システム6の他のプロセッサが1つ
も”リトライ”メッセージを言明していなければ、その
過程はブロック114へ進む。ブロック114は、”T
LBI保留”フラグのセットを表現し、変換索引バッフ
ァ無効化(TLBI)命令の実行過程を始める。
【0036】ここでブロック116で、そこで描写され
ている過程はマルチスカラプロセッサ命令のディスパッ
中断と、そのプロセッサ内キューで保留中の命令のア
ドレス格納を表現している。次に、その過程はブロック
118へ進む。なんらの保留中の命令もすぐに実行状態
にないことを示す、浮動点プロセッサの”実行”位置が
クリアされたか否かの決定手順をブロック118は表現
する。クリアされていなければ、この条件が発生時刻ま
でその過程が単に繰返される。
【0037】なおもブロック118で、固定点プロセッ
サの”実行”位置がクリアさせていることを決定後、そ
の過程はブロック120へ進む。このマルチスカラプロ
セッサに対する固定点プロセッサの”実行”位置へ関連
変換索引バッファ無効化”TLBI”命令を挿入するこ
とをブロック120は表現する。その時その過程はブロ
ック122へ進む。ブロック122は変換索引バッファ
無効化(TLBI)命令の局所パーフォマンスを表現す
る。
【0038】次に、本発明の重要な特徴に従って、その
過程はブロック124へ進む。ブロック124は、メモ
リキュー36の全操作がコヒーレンスを達成しているか
否かの決定手順を表現する。つまり、マルチプロセッサ
データ処理システム6の各マルチスカラプロセッサはメ
モリキュー36内で保留中とされている読書き操作を認
識している。メモリキュー36(図2を見よ)の全操作
がコヒーレンスを達成していないイベントでは、この条
件が発生する時刻までその過程を単に繰返す。その後、
メモリキュー36の全操作がコヒーレンスを達成した
後、その過程はブロック126へ進む。
【0039】ブロック126は、命令キューのプレフェ
ッチバッファ除去を表現している。前記内容参照時に、
そのフェッチャが必然的に命令キューより高速に実行
し、結果として変換索引バッファ無効化(TLBI)命
令実行によって無効化されたアドレスからの命令をフェ
ッチャがプレフェッチすることを、当技術の専門家は認
識すると思われる。それゆえ、変換索引バッファ(TL
B)の変更発生後、それらのバッファに配置された全命
令がフェッチされることを保証する命令キュープレフェ
ッチバッファを除去する必要がある。
【0040】次に、その過程はブロック128へ進む。
改良型変換索引バッファ(TLB)を利用した、このマ
ルチスカラプロセッサから格納保留中の命令のアドレス
への分岐をブロック128は、表現する。上述のよう
に、この過程は変換索引バッファ(TLB)の最新デー
タを利用して、そのプロセッサの実行位置に置かれた命
令が回収されていることを保証することが必要である。
その後、”TLBI保留”フラグがクリアされ、標準的
なディスパッチと命令実行が再開される。その後、その
過程はブロック130へ進み、復帰する。
【0041】最後に図6では、本発明の方法とシステム
に従って、図1のマルチプロセッサデータ処理システム
にわたる変換索引バッファ無効化(TLBI)命令の同
期を描写した高レベル論理フローチャートが描写されて
いる。描写されているように、この過程はブロック80
で始まり、その後ブロック82へ進む。ブロック82
は、マルチプロセッサデータ処理システム6のマルチス
カラプロセッサによる”同期”信号の検出を描写してい
る。イベント中にこの信号が検出されていなければ、同
期”信号が検出される時刻までその過程を単に繰返す。
【0042】”同期”信号検出後、その過程はブロック
84へ進む。変換索引バッファ無効化(TLBI)命令
が現在のマルチスカラプロセッサ内で保留状態か否かの
決定手順をブロック84は描写する。プロセッサの”T
LBI保留”フラグの状態をチェックすることで、この
ことを達成するのが望ましい。そのイベント中で”TL
BI保留”のフラグがセットさせていなければ、その過
程は単にブロック88へ進み、復帰する。代りに、”T
LBI保留”のフラグがセットさせていれば、その過程
はブロック86へ進む。本変換索引バッファ無効化(T
LBI)命令についてマルチプロセッサデータ処理シス
テムにわたりまだ同期が達成されていないことを示す、
このプロセッサによる”リトライ”メッセージ言明をブ
ロック86は表現する。
【0043】上記内容の参照時には、当技術の専門家
は、以下のことを認識すると思われる。ここでの本発明
が、マルチプロセッサシステム中の変換索引バッファ
(TLB)のコヒーレンスを維持するための方法とシス
テムを提示し、しかも上記マルチプロセッサシステムは
プロセッサ間割込みとソフトウエア同期を必要とせず、
各マルチスカラプロセッサにより受理されねばならない
各変換索引バッファ無効化(TLBI)命令に関連する
バス構造の同報通信による達成と、各マルチスカラプロ
セッサのメモリキューと命令キューの操作を無効化し、
その後変換索引バッファ(TLB)を利用し完了させる
保証による達成で、上記マルチプロセッサシステムの各
変換索引バッファ(TLB)で真のコヒーレンスが実現
される。変換索引バッファ無効化(TLBI)命令をマ
ルチスカラプロセッサの実行パイプラインへ挿入するこ
とで、次の命令への効率的分岐を変換索引バッファ無効
化(TLBI)命令実行終了時に発生させ、放棄される
予定でプリフェッチ中であり新しい前後関係下で再フェ
ッチされる後続の命令を許可する。
【0044】
【発明の効果】本発明により、改良型マルチプロセッサ
データ処理システムが提供され、マルチプロセッサデー
タ処理システムにおいてメモリコヒーレンス維持の改良
方法とシステムが提供される。
【図面の簡単な説明】
【図1】本発明の方法とシステムのインプリメンテーシ
ョンに利用されるマルチプロセッサデータ処理システム
を描写した高レベルブロックダイヤグラムである。
【図2】図1中のマルチプロセッサデータ処理システム
のあるマルチスカラプロセッサを描写した高レベルブロ
ックダイヤグラムである。
【図3】図2中のマルチスカラプロセッサの変換索引バ
ッファ(TLB)とメモリ管理ユニット(MMU)を描
写したより詳細なブロックダイヤグラムである。
【図4】本発明の方法とシステムに従って、図1のマル
チプロセッサデータ処理システムのあるマルチスカラプ
ロセッサで変換索引バッファ(TLB)の起動を描写し
た高レベル論理フローチャートである。
【図5】本発明の方法とシステムに従って、図1のマル
チプロセッサデータ処理システムにわたり変換索引バッ
ファ無効化(TLBI)命令の処理を描写した高レベル
論理フローチャートである。
【図6】本発明の方法とシステムに従って、図1のマル
チプロセッサデータ処理システムにわたり変換索引バッ
ファ無効化(TLBI)命令の同期を描写した高レベル
論理フローチャートである。
【符号の説明】
6 マルチプロセッサデータ処理システム 8 バス 10 マルチスカラプロセッサ 18 システムメモリ 20 キャッシュ/メモリインタフェース 22 命令キュー 24 浮動点プロセッサユニット 26 固定点プロセッサユニット 28 分岐プロセッサユニット 30 フェッチャ 32 条件レジスタ 34 メモリ管理ユニット 36 メモリキュー 40 変換索引バッファ(TLB) 42 PTE変換器 44 BAT変換器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ステファン・ムヒク アメリカ合衆国78759 テキサス州、オ ースティン、アルバーストーン・ウェイ 8606 (56)参考文献 特開 平1−109452(JP,A) 特開 昭63−201854(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】システムメモリと、バス経由で共に結合さ
    れた複数プロセッサとを有し、 記複数プロセッサの各々がマルチ命令を実行するマル
    チプロセッサユニットと、前記システムメモリの読書き
    操作を実行するメモリ管理ユニットと、命令又はデータ
    有効アドレスを該システムメモリの実アドレスへ変換
    る変換索引バッファ(TLB)とを有するマルチプロ
    セッサコンピュータシステムにおいて、 前記複数プロセッサのうちの選択された1つのプロセッ
    サで変換索引バッファ無効化命令実行されるのに応じ
    て、前記バス経由で変換索引バッファ無効化を示すバス
    構造を他のプロセッサに同報通信する同報通信段階と、実行保留中の 変換索引バッファ無効化命令が無いことの
    みに応じて前記複数プロセッサのうち前記変換索引バッ
    ファ無効化命令を実行したプロセッサ以外のプロセッサ
    で前記変換索引バッファ無効化を示すバス構造を受理す
    る受理段階と、前記複数プロセッサの一つにおいて前記変換索引バッフ
    ァ無効化を示すバス構造を受理しないことに応じて、該
    受理しないプロセッサにより前記バス経由でリトライ・
    メッセージを他のプロセッサに同報通信する段階と、 前記変換索引バッファ無効化命令を実行したプロセッサ
    以外の 全プロセッサで前記変換索引バッファ無効化を示
    バス構造受理されることのみ応じて、全プロセッ
    で該変換索引バッファ無効化命令を実行する実行段階
    とを含む、 変換索引バッファのコヒーレンスを維持する維持方法。
  2. 【請求項2】前記変換索引バッファ無効化命令の実行
    留を設定するのに応じて、各前記複数プロセッサ内で保
    留中の命令の実行を中断させる中断段階をさらに含む、 請求項1に記載の変換索引バッファのコヒーレンスを維
    持する維持方法。
  3. 【請求項3】前記変換索引バッファ無効化命令の実行
    留を設定するのに応じて、前記保留中の命令のアドレス
    を一時的に格納する格納段階をさらに含む、 請求項2に記載の変換索引バッファのコヒーレンスを維
    持する維持方法。
  4. 【請求項4】実行保留中の命令の中断後、記変換索引
    バッファ無効化命令を前記複数プロセッサ内のプロセッ
    サユニットへ挿入する挿入段階をさらに含む、請求項3
    に記載の変換索引バッファのコヒーレンスを維持する維
    持方法。
  5. 【請求項5】システムメモリと、バス経由で共に結合さ
    れた複数プロセッサとを有し、 記複数プロセッサの各々がマルチ命令を実行するマル
    チプロセッサユニットと、前記システムメモリの読書き
    操作を実行するメモリ管理ユニットと、命令又はデータ
    有効アドレスを該システムメモリの実アドレスへ変換
    る変換索引バッファ(TLB)とを有するマルチプロ
    セッサコンピュータシステムにおいて、 前記複数プロセッサのうちの選択された1つのプロセッ
    サで変換索引バッファ無効化命令実行されるのに応じ
    て、前記バス経由で変換索引バッファ無効化を示すバス
    構造を他のプロセッサに同報通信する同報通信手段と、実行保留中の 変換索引バッファ無効化命令が無いことの
    みに応じて前記複数プロセッサのうち前記変換索引バッ
    ファ無効化命令を実行したプロセッサ以外のプロセッサ
    で前記変換索引バッファ無効化を示すバス構造を受理す
    る手段と、前記複数プロセッサの一つにおいて前記変換索引バッフ
    ァ無効化を示すバス構造を受理しないことに応じて、該
    受理しないプロセッサにより前記バス経由でリトライ・
    メッセージを他のプロセッサに同報通信する手段と、 前記変換索引バッファ無効化命令を実行したプロセッサ
    以外の 全プロセッサで前記変換索引バッファ無効化を示
    バス構造受理されることのみ応じて、全プロセッ
    で該変換索引バッファ無効化命令を実行する実行手段
    とを含む、 変換索引バッファのコヒーレンスを維持するための維持
    システム。
  6. 【請求項6】前記変換索引バッファ無効化命令の実行
    留を設定するのに応じて、各前記複数プロセッサ内で保
    留中の命令の実行を中断させる中断手段をさらに含む、 請求項5に記載の変換索引バッファのコヒーレンスを維
    持する維持システム。
  7. 【請求項7】前記変換索引バッファ無効化命令の実行
    留を設定するのに応じて、前記保留中の命令のアドレス
    を一時的に格納する格納手段をさらに含む、 請求項6に記載の変換索引バッファのコヒーレンスを維
    持する維持システム。
  8. 【請求項8】実行保留中の命令の中断後、記変換索引
    バッファ無効化命令を前記複数プロセッサ内のプロセッ
    サユニットへ挿入する挿入手段をさらに含む、請求項7
    に記載の変換索引バッファのコヒーレンスを維持する維
    持システム。
JP5207505A 1992-10-09 1993-08-23 変換索引バッファのコヒーレンス維持方法及びシステム Expired - Lifetime JP2565648B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/959,189 US5437017A (en) 1992-10-09 1992-10-09 Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
US959189 1992-10-09

Publications (2)

Publication Number Publication Date
JPH06187241A JPH06187241A (ja) 1994-07-08
JP2565648B2 true JP2565648B2 (ja) 1996-12-18

Family

ID=25501759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5207505A Expired - Lifetime JP2565648B2 (ja) 1992-10-09 1993-08-23 変換索引バッファのコヒーレンス維持方法及びシステム

Country Status (4)

Country Link
US (1) US5437017A (ja)
EP (1) EP0592121B1 (ja)
JP (1) JP2565648B2 (ja)
DE (1) DE69327288T2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530824A (en) * 1994-04-04 1996-06-25 Motorola, Inc. Address translation circuit
US5535351A (en) * 1994-04-04 1996-07-09 Motorola, Inc. Address translator with by-pass circuit and method of operation
JP2625385B2 (ja) * 1994-06-30 1997-07-02 日本電気株式会社 マルチプロセッサシステム
US5630087A (en) * 1994-11-02 1997-05-13 Sun Microsystems, Inc. Apparatus and method for efficient sharing of virtual memory translations
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US5787476A (en) * 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
JP2842313B2 (ja) * 1995-07-13 1999-01-06 日本電気株式会社 情報処理装置
JP2830833B2 (ja) * 1996-04-30 1998-12-02 日本電気株式会社 プロセッサ間通信方法及びそれに用いるプロセッサ
US5944818A (en) * 1996-06-28 1999-08-31 Intel Corporation Method and apparatus for accelerated instruction restart in a microprocessor
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5906001A (en) * 1996-12-19 1999-05-18 Intel Corporation Method and apparatus for performing TLB shutdown operations in a multiprocessor system without invoking interrup handler routines
US6490658B1 (en) * 1997-06-23 2002-12-03 Sun Microsystems, Inc. Data prefetch technique using prefetch cache, micro-TLB, and history file
EP1004075A4 (en) * 1997-08-11 2001-01-17 Transmeta Corp MEMORY PROTECTION DEVICE FOR PROTECTION AGAINST TRANSLATED COMMANDS FOR A MICROPROCESSOR
CN100392618C (zh) * 1997-08-11 2008-06-04 全斯美达有限公司 保护计算机内存储器被写入的系统、方法和设备
US6105113A (en) * 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US6021481A (en) * 1997-11-10 2000-02-01 International Business Machines Corporation Effective-to-real address cache managing apparatus and method
US6370632B1 (en) * 1997-11-18 2002-04-09 Intrinsity, Inc. Method and apparatus that enforces a regional memory model in hierarchical memory systems
US6119204A (en) * 1998-06-30 2000-09-12 International Business Machines Corporation Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
JP2000067009A (ja) 1998-08-20 2000-03-03 Hitachi Ltd 主記憶共有型マルチプロセッサ
US6490671B1 (en) * 1999-05-28 2002-12-03 Oracle Corporation System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system
US6363336B1 (en) * 1999-10-13 2002-03-26 Transmeta Corporation Fine grain translation discrimination
US7509391B1 (en) * 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6711671B1 (en) * 2000-02-18 2004-03-23 Hewlett-Packard Development Company, L.P. Non-speculative instruction fetch in speculative processing
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US6604185B1 (en) * 2000-07-20 2003-08-05 Silicon Graphics, Inc. Distribution of address-translation-purge requests to multiple processors
US6931510B1 (en) * 2000-07-31 2005-08-16 Sun Microsystems, Inc. Method and system for translation lookaside buffer coherence in multiprocessor systems
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US6804741B2 (en) * 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7617378B2 (en) * 2003-04-28 2009-11-10 International Business Machines Corporation Multiprocessor system with retry-less TLBI protocol
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US7543291B2 (en) * 2003-08-01 2009-06-02 Hewlett-Packard Development Company, L.P. Processor purging system and method
US7421565B1 (en) * 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7069389B2 (en) * 2003-11-26 2006-06-27 Microsoft Corporation Lazy flushing of translation lookaside buffers
US20050273575A1 (en) * 2004-06-02 2005-12-08 Mukherjee Shubhendu S Mechanism to invalidate data translation buffer entries a multiprocessor system
US7281116B2 (en) * 2004-07-30 2007-10-09 Hewlett-Packard Development Company, L.P. Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes
US20060186119A1 (en) * 2005-02-23 2006-08-24 Yu Zheng Collapsible structures with liners
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US7454590B2 (en) * 2005-09-09 2008-11-18 Sun Microsystems, Inc. Multithreaded processor having a source processor core to subsequently delay continued processing of demap operation until responses are received from each of remaining processor cores
US7383415B2 (en) * 2005-09-09 2008-06-03 Sun Microsystems, Inc. Hardware demapping of TLBs shared by multiple threads
US7739476B2 (en) * 2005-11-04 2010-06-15 Apple Inc. R and C bit update handling
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
US8112174B2 (en) * 2008-02-25 2012-02-07 International Business Machines Corporation Processor, method and computer program product for fast selective invalidation of translation lookaside buffer
US8412911B2 (en) * 2009-06-29 2013-04-02 Oracle America, Inc. System and method to invalidate obsolete address translations
GB2499168B (en) * 2010-11-26 2014-04-16 Ibm Cache coherency control method, system, and program
US8595464B2 (en) 2011-07-14 2013-11-26 Oracle International Corporation Dynamic sizing of translation lookaside buffer for power reduction
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US9697137B2 (en) * 2014-11-14 2017-07-04 Cavium, Inc. Filtering translation lookaside buffer invalidations
US9665505B2 (en) 2014-11-14 2017-05-30 Cavium, Inc. Managing buffered communication between sockets
US9870328B2 (en) * 2014-11-14 2018-01-16 Cavium, Inc. Managing buffered communication between cores
US20160378812A1 (en) * 2015-06-25 2016-12-29 International Business Machines Corporation Reduction of bind breaks
US10318430B2 (en) * 2015-06-26 2019-06-11 International Business Machines Corporation System operation queue for transaction
US9898416B2 (en) 2015-12-22 2018-02-20 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9928119B2 (en) 2015-12-22 2018-03-27 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9830198B2 (en) 2015-12-22 2017-11-28 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9575815B1 (en) 2015-12-22 2017-02-21 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9715459B2 (en) 2015-12-22 2017-07-25 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9779028B1 (en) 2016-04-01 2017-10-03 Cavium, Inc. Managing translation invalidation
US10599461B2 (en) * 2017-09-19 2020-03-24 Microsoft Technology Licensing, Llc Nested hypervisor memory virtualization
US10754790B2 (en) * 2018-04-26 2020-08-25 Qualcomm Incorporated Translation of virtual addresses to physical addresses using translation lookaside buffer information
US11327759B2 (en) * 2018-09-25 2022-05-10 Marvell Asia Pte, Ltd. Managing low-level instructions and core interactions in multi-core processors
US10977183B2 (en) 2018-12-11 2021-04-13 International Business Machines Corporation Processing a sequence of translation entry invalidation requests with regard to draining a processor core
US10740239B2 (en) 2018-12-11 2020-08-11 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10817434B2 (en) 2018-12-19 2020-10-27 International Business Machines Corporation Interruptible translation entry invalidation in a multithreaded data processing system
US11537519B1 (en) 2021-07-29 2022-12-27 International Business Machines Corporation Marking in-flight requests affected by translation entry invalidation in a data processing system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60254346A (ja) * 1984-05-31 1985-12-16 Toshiba Corp マルチプロセツサシステム
JPS63201854A (ja) * 1987-02-18 1988-08-19 Hitachi Ltd アドレス変換バツフア無効化方式
JPH01109452A (ja) * 1987-10-22 1989-04-26 Fujitsu Ltd 変換索引バッファ情報の消去制御方式
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5113514A (en) * 1989-08-22 1992-05-12 Prime Computer, Inc. System bus for multiprocessor computer system
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols

Also Published As

Publication number Publication date
EP0592121B1 (en) 1999-12-15
JPH06187241A (ja) 1994-07-08
DE69327288D1 (de) 2000-01-20
US5437017A (en) 1995-07-25
EP0592121A1 (en) 1994-04-13
DE69327288T2 (de) 2000-06-08

Similar Documents

Publication Publication Date Title
JP2565648B2 (ja) 変換索引バッファのコヒーレンス維持方法及びシステム
US4701844A (en) Dual cache for independent prefetch and execution units
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
JP2769097B2 (ja) アドレス変換方法及びデータ処理装置
US5377336A (en) Improved method to prefetch load instruction data
Hsu et al. Prefetching in supercomputer instruction caches
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
US7065632B1 (en) Method and apparatus for speculatively forwarding storehit data in a hierarchical manner
EP0381447A2 (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
EP0380846A2 (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipeline computer system
JP3549079B2 (ja) キャッシュ制御の命令プリフェッチ方法
EP0457403A2 (en) Multilevel instruction cache, method for using said cache, method for compiling instructions for said cache and micro computer system using such a cache
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
US5835949A (en) Method of identifying and self-modifying code
US5621896A (en) Data processor with unified store queue permitting hit under miss memory accesses
WO2004086219A9 (en) Method and apparatus for branch prediction based on branch targets
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US5978905A (en) Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions
US5606675A (en) Data processor for invalidating prefetched instruction or branch history information
US6332187B1 (en) Cumulative lookahead to eliminate chained dependencies
US5794027A (en) Method and apparatus for managing the execution of instructons with proximate successive branches in a cache-based data processing system
JPH0340047A (ja) キヤツシユ・ライン・ストア方法
EP0156307A2 (en) Pipelined processor having dual cache memories
US6675287B1 (en) Method and apparatus for store forwarding using a response buffer data path in a write-allocate-configurable microprocessor
JPH0651982A (ja) 演算処理装置