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

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

Info

Publication number
JPH06187241A
JPH06187241A JP5207505A JP20750593A JPH06187241A JP H06187241 A JPH06187241 A JP H06187241A JP 5207505 A JP5207505 A JP 5207505A JP 20750593 A JP20750593 A JP 20750593A JP H06187241 A JPH06187241 A JP H06187241A
Authority
JP
Japan
Prior art keywords
instruction
translation lookaside
lookaside buffer
processors
execution
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.)
Granted
Application number
JP5207505A
Other languages
English (en)
Other versions
JP2565648B2 (ja
Inventor
Charles Roberts Moore
チャールズ・ロバーツ・ムーア
John S Muhich
ジョン・ステファン・ムヒク
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

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)【要約】 【目的】 マルチプロセッサデータ処理システムにおい
て変換索引バッファのコヒーレンスを維持する方法と装
置の提供。 【構成】 全てのシステムメモリへアクセスするマルチ
プロセッサ10を含むシステムは、有効アドレスを実ア
ドレスへ変換する変換索引バッファ(TLB)40を各
プロセッサが含んでおり、全変換索引バッファ間のコヒ
ーレンスはそれゆえ維持されている。マルチプロセッサ
システム中のプロセッサによる変換索引バッファ無効化
(TLBI)命令の実行に応じて、バス8の一意なバス
構造を同報通信するためここで明らかにした方法とシス
テムを利用する。そのバス構造は、各プロセッサで保留
中の変換索引バッファ無効化命令が無いことのみに応じ
て、バスに沿った他のプロセッサにより受理される。

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は、バスブロック68
へのアクセス獲得後、マルチプロセッサデータ処理シス
テム10のプロセッサの最初の実行による”同期”信号
の同報通信をブロック68は描写している。この信号
は、マルチプロセッサデータ処理システムの各マルチス
カラプロセッサが変換索引バッファ無効化(TLBI)
命令を実行しているか否かを決定するため利用される。
【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
I未決定”フラグがセットさせているか否かの決定手順
をブロック104は表現する。フラグがセットされてい
れば、現行マルチプロセッサが変換索引バッファ無効化
(TLBI)命令のバス構造を受理していないことを示
す”リトライ”メッセージの言明を表現するブロック1
06へその過程が進む。その後、その過程はブロック1
08へ進み、復帰する。
【0034】再びブロック104でイベント中に”TL
BI未決定”フラグがセットさせていなければ、その過
程はブロック110へ進む。変換索引バッファ無効化
(TLBI)命令のバス構造がもう1つのプロセッサで
受理されなかったことを示す”リトライ”メッセージ
を、マルチプロセッサデータ処理システム6の他のマル
チスカラプロセッサが言明したか否かの決定手順をブロ
ック110は表現する。言明されたならば、その過程は
ブロック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は描写する。プロセッサの”
TLBI未決定”フラグの状態をチェックすることで、
このことを達成するのが望ましい。そのイベント中で”
TLBI未決定”のフラグがセットさせていなければ、
その過程は単にブロック88へ進み、復帰する。代り
に、”TLBI未決定”のフラグがセットさせていれ
ば、その過程はブロック86へ進む。本変換索引バッフ
ァ無効化(TLBI)命令についてマルチプロセッサデ
ータ処理システムにわたりまだ同期が達成されていない
ことを示す、このプロセッサによる”リトライ”メッセ
ージ言明をブロック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

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】システムメモリと、バス経由で共に結合さ
    れた複数プロセッサとを有し、 各前記複数プロセッサがマルチ命令を実行するマルチプ
    ロセッサユニットと、前記システムメモリの読書き操作
    を実行するメモリ管理ユニットと、有効アドレスを該シ
    ステムメモリの実アドレスへ変換する関連変換索引バッ
    ファとを有するマルチプロセッサコンピュータシステム
    において、 前記複数プロセッサから選択したある関連変換索引バッ
    ファ無効化命令の実行に応じて、前記バスに沿って変換
    索引バッファ無効化バス構造を同報通信する同報通信段
    階と、 変換索引バッファ無効化命令の実行未決定が無いことの
    みに応じて前記複数プロセッサのいずれか残り1個で前
    記変換索引バッファ無効化バス構造を受理する受理段階
    と、 残りの全プロセッサで前記複数プロセッサ間の変換索引
    バッファ無効化バス構造の受理にのみ応じて、残りの全
    プロセッサで該複数プロセッサ間の該関連変換索引バッ
    ファ無効化命令を実行する実行段階とを含む、変換索引
    バッファのコヒーレンスを維持する維持方法。
  2. 【請求項2】前記関連変換索引バッファ無効化命令の実
    行未決定に応じて、各前記複数プロセッサ内の未決定命
    令の実行を終了させる終了段階をさらに含む、請求項1
    に記載の変換索引バッファのコヒーレンスを維持する維
    持方法。
  3. 【請求項3】前記関連変換索引バッファ無効化命令の実
    行未決定に応じて、未決定命令のアドレスを一時的に格
    納する格納段階をさらに含む、請求項2に記載の変換索
    引バッファのコヒーレンスを維持する維持方法。
  4. 【請求項4】前記関連変換索引バッファ無効化命令を前
    記複数プロセッサ内のプロセッサユニットへ挿入する挿
    入段階と、引続き命令の実行未決定を終了させる終了段
    階をさらに含む、請求項3に記載の変換索引バッファの
    コヒーレンスを維持する維持方法。
  5. 【請求項5】システムメモリと、バス経由で共に結合さ
    れた複数プロセッサとを有し、 各前記複数プロセッサがマルチ命令を実行するマルチプ
    ロセッサユニットと、前記システムメモリの読書き操作
    を実行するメモリ管理ユニットと、有効アドレスを該シ
    ステムメモリの実アドレスへ変換する関連変換索引バッ
    ファとを有するマルチプロセッサコンピュータシステム
    において、 前記複数プロセッサから選択したある関連変換索引バッ
    ファ無効化命令の実行に応じて、前記バスに沿って変換
    索引バッファ無効化バス構造を同報通信する同報通信手
    段と、 変換索引バッファ無効化命令の実行未決定が無いことの
    みに応じて前記複数プロセッサのいずれか残り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
US959189 1992-10-09
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

Publications (2)

Publication Number Publication Date
JPH06187241A true JPH06187241A (ja) 1994-07-08
JP2565648B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326798A (ja) * 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> マルチプロセッサ・データ処理システム
WO2012070291A1 (ja) * 2010-11-26 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュコヒーレンシ制御の方法、システムおよびプログラム

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
CN100392618C (zh) * 1997-08-11 2008-06-04 全斯美达有限公司 保护计算机内存储器被写入的系统、方法和设备
KR100421687B1 (ko) * 1997-08-11 2004-03-10 트랜스메타 코포레이션 개선된 마이크로프로세서를 위한 변환 메모리 보호 장치
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
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
US7383415B2 (en) * 2005-09-09 2008-06-03 Sun Microsystems, Inc. Hardware demapping of TLBs shared by multiple threads
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
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
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
US9870328B2 (en) * 2014-11-14 2018-01-16 Cavium, Inc. Managing buffered communication between cores
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
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
US9715459B2 (en) 2015-12-22 2017-07-25 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
US9898416B2 (en) 2015-12-22 2018-02-20 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
US9830198B2 (en) 2015-12-22 2017-11-28 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
US10628202B2 (en) * 2017-09-19 2020-04-21 Microsoft Technology Licensing, Llc Hypervisor direct memory access
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201854A (ja) * 1987-02-18 1988-08-19 Hitachi Ltd アドレス変換バツフア無効化方式
JPH01109452A (ja) * 1987-10-22 1989-04-26 Fujitsu Ltd 変換索引バッファ情報の消去制御方式

Family Cites Families (7)

* 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 マルチプロセツサシステム
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201854A (ja) * 1987-02-18 1988-08-19 Hitachi Ltd アドレス変換バツフア無効化方式
JPH01109452A (ja) * 1987-10-22 1989-04-26 Fujitsu Ltd 変換索引バッファ情報の消去制御方式

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326798A (ja) * 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> マルチプロセッサ・データ処理システム
WO2012070291A1 (ja) * 2010-11-26 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュコヒーレンシ制御の方法、システムおよびプログラム
GB2499168A (en) * 2010-11-26 2013-08-07 Ibm Method, system and program for cache coherency control
JP5414912B2 (ja) * 2010-11-26 2014-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュコヒーレンシ制御の方法、システムおよびプログラム
GB2499168B (en) * 2010-11-26 2014-04-16 Ibm Cache coherency control method, system, and program

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2565648B2 (ja) 変換索引バッファのコヒーレンス維持方法及びシステム
JP2769097B2 (ja) アドレス変換方法及びデータ処理装置
US4701844A (en) Dual cache for independent prefetch and execution units
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
CA1325288C (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
US5377336A (en) Improved method to prefetch load instruction data
US5185871A (en) Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US6067616A (en) Branch prediction device with two levels of branch prediction cache
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
Hsu et al. Prefetching in supercomputer instruction caches
US5511175A (en) Method an apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US7133968B2 (en) Method and apparatus for resolving additional load misses in a single pipeline processor under stalls of instructions not accessing memory-mapped I/O regions
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
JP2006520964A5 (ja)
US5758120A (en) Method and system for increased system memory concurrency in a multi-processor computer system utilizing concurrent access of reference and change bits
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
US6115730A (en) Reloadable floating point unit
EP0156307A2 (en) Pipelined processor having dual cache memories
JPH0651982A (ja) 演算処理装置
IE901528A1 (en) Method and apparatus for controlling the conversion of¹virtual to physical memory addresses in a digital computer¹system
IE901525A1 (en) Processing of memory access exceptions with pre-fetched¹instructions within the instruction pipeline of a memory¹system based digital computer