JP2000231536A - 状態ベースのトランザクション・スケジューリングを有する回路及び方法 - Google Patents

状態ベースのトランザクション・スケジューリングを有する回路及び方法

Info

Publication number
JP2000231536A
JP2000231536A JP11340733A JP34073399A JP2000231536A JP 2000231536 A JP2000231536 A JP 2000231536A JP 11340733 A JP11340733 A JP 11340733A JP 34073399 A JP34073399 A JP 34073399A JP 2000231536 A JP2000231536 A JP 2000231536A
Authority
JP
Japan
Prior art keywords
transaction
transactions
circuit
cache
unit
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
JP11340733A
Other languages
English (en)
Inventor
Farnaz Mounes-Toussi
ファーナズ・モウネス−トウシ
Donald Lee Freerksen
ドナルド・リー・フリークセン
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 JP2000231536A publication Critical patent/JP2000231536A/ja
Pending 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols

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)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 データ処理システムにおいて、改善されたト
ランザクション・スケジューリングを提供する方法及び
回路構成を提供すること。 【解決手段】 データ処理システムにおいてトランザク
ションをスケジュールする際、状態情報にもとづき、特
定のトランザクションを他のトランザクションよりも優
先させるデータ処理システム、回路構成、及び方法が提
供される。1実施例では、多くの共用メモリ・システム
において、変更状態を有するキャッシュ・データが、非
変更状態を有するキャッシュ・データよりも頻繁にアク
セスされるとの認識の結果、変更キャッシュ・データに
関連付けられるトランザクションが、非変更キャッシュ
・データに関連付けられるトランザクションよりも優先
され、それによりこうした変更トランザクションの待ち
時間が低減される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、コンピュー
タ及び他のデータ処理システムに関して、特に、データ
処理システム内のソース・ユニットと宛先ユニット間の
トランザクションのスケジューリングに関する。
【0002】
【従来の技術】コンピュータ技術は驚くほどのペースで
進歩しており、コンピュータの"頭脳"であるマイクロプ
ロセッサ及びコンピュータにより処理される情報を記憶
するメモリの両方の性能において、様々な改善がされて
いる。
【0003】一般に、マイクロプロセッサは、コンピュ
ータ・プログラムを形成する命令のシーケンスを実行す
ることにより動作する。命令は通常、固有のアドレスに
より識別される複数の記憶位置を有するメモリ・システ
ムに記憶される。メモリ・アドレスは集合的に、マイク
ロプロセッサによりアクセスされ得るメモリ・アドレス
のアドレス指定可能範囲を表す"メモリ・アドレス空間"
を定義する。
【0004】コンピュータ・プログラムを形成する命令
及びそれらの命令により作用されるデータの両方は、し
ばしばメモリ・システム内に記憶され、コンピュータ・
プログラムの実行中に、必要に応じて、マイクロプロセ
ッサにより検索される。しかしながら、マイクロプロセ
ッサのスピードは、メモリ素子のスピードに比較して増
加し、メモリからの命令及びデータの検索が、しばしば
性能上の重大なボトルネックとなるようになった。この
ボトルネックを低減するために、例えば静的ランダム・
アクセス・メモリ(SRAM)素子などの、最速の使用
可能なメモリ素子を使用することが望ましい。しかしな
がら、メモリ・スピード及びメモリ容量の両方は、通
常、コストに直接関係し、その結果、多くのコンピュー
タ設計は、メモリ・スピード及び容量とコストを調和さ
せなければならない。
【0005】こうした調和を図るための有力な方法は、
システム性能に対する影響を最小に維持しながら、コス
ト低減のために、メモリ・システム内で複数"レベル"の
メモリを使用することである。しばしば、コンピュータ
は、ハードディスク・ドライブまたは他の外部記憶装置
などの、比較的大容量の低速且つ安価な大容量記憶シス
テム、ダイナミック・ランダム・アクセス・メモリ素子
(DRAM)または他の揮発性メモリ記憶素子を使用す
る中間主メモリ及びSRAMなどにより実現される1つ
以上の高速の限られた容量のキャッシュ・メモリまたは
キャッシュに依存する。1つ以上のメモリ制御装置が、
しばしば"キャッシュ・ライン"として知られる、様々な
メモリ・レベル間のメモリ・アドレスのセグメントか
ら、情報をスワップするために使用され、要求されるメ
モリ・アドレスが、マイクロプロセッサによりアクセス
可能な最速のキャッシュ・メモリ内に記憶される頻度を
最大化しようとする。メモリ・アクセス要求が、キャッ
シュ・メモリ内にキャッシュされていないメモリ・アド
レスをアクセスしようとする都度、"キャッシュ・ミス"
が発生する。キャッシュ・ミスの結果、メモリ・アドレ
スのキャッシュ・ラインは通常、比較的低速の下位レベ
ルのメモリから検索されなければならず、しばしば重大
な性能障害を伴う。
【0006】コンピュータ性能を向上する別の方法は、
互いに並列に動作する複数のマイクロプロセッサを使用
し、異なるタスクを同時に実行することである。しばし
ば、複数のマイクロプロセッサは同一のメモリ・システ
ムの少なくとも一部を供用し、マイクロプロセッサが協
働して、より複雑なタスクを実行することを可能にす
る。複数のマイクロプロセッサは通常、システム・バス
や相互接続ネットワークなどにより、お互いに、及び共
用メモリに結合される。しかしながら、同一のメモリ・
システムを共用することにより、共用メモリ・システム
内の様々なメモリ・レベル間で、"コヒーレンス"を維持
する問題、すなわちシステム内に、特定のデータの複数
の変更されたコピーが存在しないことを保証する問題が
発生する。
【0007】例えば、所与のマルチプロセッサ環境で
は、各マイクロプロセッサは、そのマイクロプロセッサ
によってだけアクセス可能な1つ以上の専用のキャッシ
ュ・メモリ、例えばレベル1(L1)データ/命令キャ
ッシュ、レベル2(L2)キャッシュ及びライン・フィ
ル・バッファや遷移バッファなどの1つ以上のバッファ
を有し得る。更に、2つ以上のマイクロプロセッサが同
様に、特定のキャッシュを共用し得る。その結果、任意
の所与のメモリ・アドレスが、共用メモリ・システム内
の任意の数の構成要素内に時々記憶され得る。
【0008】コヒーレンスは、システムの異なる構成要
素に記憶されるデータのステータスを示す"状態"情報を
維持することにより、多くのシステムにおいて維持され
る。しばしばこの情報は、各構成要素に局所的に記憶さ
れる。更に、状態情報の量を低減するために、複数のメ
モリ・アドレスがしばしば、共通状態を有するラインま
たはブロック内に一緒にグループ化される。
【0009】例えば、多くのシステムが、構成要素内に
記憶されるデータに、4つの状態、すなわち変更、排
他、共用及び無効の1つをタグ付けするMESIコヒー
レンス・プロトコルを使用する。変更状態は、特定のメ
モリ・アドレス・グループの有効データが構成要素内に
記憶され、その構成要素がデータの最新のコピーを有す
る、すなわち、存在する他の全てのデータは、もはや有
効でないことを示す。排他状態は、特定のメモリ・アド
レス・グループの有効データが構成要素内にだけ記憶さ
れるが、データは共用メモリ内のコピーに対して変更さ
れていないことを示す。共用状態は、特定のメモリ・ア
ドレス・グループの有効データが構成要素内に記憶され
るが、データの他の有効コピーが、主メモリを含む他の
構成要素内にも存在することを示す。無効状態は、特定
のメモリ・アドレス・グループの有効データが構成要素
内に記憶されておらず、有効データが主メモリ内に記憶
され得ることを示す。
【0010】多くの従来の実施例では、共用メモリ・シ
ステム内のメモリ・アドレスへのアクセスは、トランザ
クションを介して処理される。これは通常、所定のオペ
レーションを実行するために、ソース・ユニットから宛
先ユニットに伝送される情報のパケットである。例え
ば、別々の要求トランザクション及び応答トランザクシ
ョンが、キャッシュ・コヒーレンスを維持し、システム
内の異なる構成要素間でデータの転送を開始するために
使用され得る。要求トランザクションは、マイクロプロ
セッサなどのソース・ユニットにより開始され、例えば
ロードまたは読出し要求、或いはストアまたは書込み要
求などのように、特定のメモリ・アドレスに記憶される
データへのアクセスを要求する。1つ以上の宛先ユニッ
ト、例えば別のマイクロプロセッサ、キャッシュ、また
はシステム・バス・インタフェース・ユニットが、要求
を受信し処理する。各宛先ユニットは次に、応答トラン
ザクションを原始ソース・ユニットに逆に発行すること
により、ソース・ユニットとして機能し、これは通常、
要求されたメモリ・アドレスの状態情報にもとづき、要
求データがそのユニットに割当てられているか否かを示
す。また、要求データがそのユニットに割当てられてい
る場合、データは通常、応答トランザクションにおいて
要求元ユニットに返却される。更に、しばしば、システ
ム内の各構成要素の状態情報が、実行されるオペレーシ
ョンに応答して更新される。
【0011】トランザクション・ベースの共用メモリ・
システムにおいて発生する1つの問題は、複数のソース
・ユニット及び宛先ユニットにより、複数のトランザク
ションが所与の時期に、異なるユニット間のインタフェ
ースを介して送信され、処理される必要が有り得ること
である。その結果、トランザクションをスケジュールす
るための特定の機構が一般に要求される。
【0012】従来のスケジューリング機構は一般に、特
定の形態の公正アルゴリズムを実現する。例えば、トラ
ンザクションは到着順にサービスされるように、送信及
び処理され、同時に到来するトランザクションは、ラウ
ンドロビン式にまたはランダムにスケジュールされる。
時制以外、明示的な優先順位付けは、一般にトランザク
ションのスケジューリングにおいて使用されない。
【0013】
【発明が解決しようとする課題】純粋に公正なアルゴリ
ズムは、全てのトランザクションが結局共用メモリ・シ
ステム内で処理されることを保証するが、多くの場合、
こうしたアルゴリズムは適度な性能を提供するだけであ
る。その結果、従来の実施例に勝る改善された性能を提
供する、改善されたスケジューリング・アルゴリズムが
要望される。
【0014】
【課題を解決するための手段】本発明は、データ処理シ
ステムにおいてトランザクションをスケジューリングす
るとき、状態情報にもとづき、特定のトランザクション
を他のトランザクションよりも優先させるデータ処理シ
ステム、回路構成及び方法を提供することにより、従来
技術に関連するこれらの及び他の問題を解決する。特定
の実施例にもとづき、特定の状態に関連する特定のタイ
プのトランザクションを、異なるトランザクションより
も優先させることにより、単純な公正アルゴリズムより
も待ち時間が低減され、それによりシステム性能全体が
向上する。
【0015】本発明に従うトランザクション・スケジュ
ーラは、第1及び第2のトランザクションの少なくとも
1つに関連する状態情報にもとづき、第1の伝送を第2
の伝送よりも優先させることにより、ソース・ユニット
から宛先ユニットに、第1のトランザクションの伝送を
スケジュールするように構成される。状態情報は、トラ
ンザクションの焦点であるデータの現状態、及びトラン
ザクションの結果として生じるデータの将来の状態にも
とづき、特定のトランザクションに関連付けられる。更
に、一部の実施例では、状態情報がトランザクション・
スケジューラにより考慮される唯一の要因である必要が
ない。代わりに、例えば全てのトランザクションの前進
を保証するために、公正さなどの追加の考慮が成され得
る。
【0016】本発明に従う状態ベースのトランザクショ
ン・スケジューリングは、多数のアプリケーションにお
いて使用され得る。例えば、多くの共用メモリ・システ
ムにおいて、変更状態を有するキャッシュ・データは、
非変更状態、例えば排他状態または共用状態を有するキ
ャッシュ・データよりも頻繁にアクセスされる。その結
果、変更キャッシュ・データに関連付けられるトランザ
クションを優先させることにより、より頻繁な変更トラ
ンザクションがより容易に使用可能になり、しばしば、
こうしたトランザクションがより迅速に、且つ待ち時間
が低減されて処理される。こうした優先順位付けは、頻
繁でない非変更トランザクションにとっては、待ち時間
の増加をもたらし得るが、システムの全体的なトランザ
クション待ち時間は通常、優先された変更トランザクシ
ョンの多大な頻度により低減される。状態ベースのトラ
ンザクション・スケジューリングの他の潜在的なアプリ
ケーションは、本開示を参照することにより、より明ら
かとなろう。
【0017】本発明を特徴付けるこれらの及び他の利点
及び特徴は、本明細書の特許請求の範囲の中で述べられ
る。しかしながら、本発明並びにその利用を通じて獲得
される利点及び目的をより理解するために、本発明の実
施例を示す付随の図面を参照することにする。
【0018】
【発明の実施の形態】本発明の実施例は、少なくとも1
つのトランザクションに関連する状態情報にもとづき、
ある保留のトランザクションを、別のトランザクション
よりも優先させることにより作用する。トランザクショ
ンは、データ処理システム内のソース・ユニットと宛先
ユニット間で転送される任意の数のコマンドを表す。ト
ランザクションの例には、要求、返答、応答、同報など
が含まれる。更に、トランザクションは、ソース・ユニ
ット及び宛先ユニット間でトランザクションが転送され
る特定のインタフェースに応じて、パケット、コマンド
/事象のシーケンスなどとしてフォーマットされ得る。
【0019】ソース・ユニットは特に、トランザクショ
ンを発行できる任意のタイプの電子構成要素を表し、宛
先ユニットは特に、トランザクションを受信及び処理で
きる任意のタイプの電子構成要素を表す。更に、電子構
成要素は、ソース・ユニット及び宛先ユニットの両方と
して機能し得る。ソース・ユニットまたは宛先ユニット
として機能する電子構成要素の例には、プロセッサ、メ
モリ制御装置、バス制御装置、バス・アービタ、キャッ
シュ、キャッシュ制御装置、キャッシュ・ディレクト
リ、遷移キャッシュ、スヌープ応答論理、ネットワーク
制御装置、主メモリ、または任意のタイプの完全アソシ
アティブ・バッファまたはセット・アソシアティブ・バ
ッファが含まれる。
【0020】更に、ソース・ユニット及び宛先ユニット
が、同一の集積回路素子内、或いは同一のコンピュータ
内で互いに相互接続される別々の集積回路素子内、また
はローカル・エリア・ネットワーク、広域ネットワー
ク、大域ネットワークなどのネットワークを介して、互
いに接続される別々の集積回路素子内に配置され得るこ
とが理解されよう。更に、一部の実施例では、任意のソ
ース・ユニットまたは宛先ユニットが、2つ以上の集積
回路素子により実現され得る。また、任意の数のインタ
フェースが、様々なバス・アーキテクチャ、直接接続、
様々なネットワーク及びトポロジなどを含む、ソース・
ユニット及び宛先ユニットを相互接続するために使用さ
れ得る。
【0021】本発明に従うトランザクション・スケジュ
ーラは、任意の数のソース・ユニットから任意の数の宛
先ユニットに、トランザクションをスケジュールするた
めに使用され得る。更に、トランザクション・スケジュ
ーリングは、全体的にまたは部分的に、データ処理シス
テム内の異なる構成要素内で実現され得る。例えば、ト
ランザクション・スケジューラは、少なくとも部分的に
ソース・ユニット内に配置され、ソース・ユニットから
のトランザクションの送信をスケジュールする。トラン
ザクション・スケジューラはまた、少なくとも部分的に
宛先ユニット内に配置され、宛先ユニットへのトランザ
クションの受信をゲートする。トランザクション・スケ
ジューラはまた、少なくとも部分的に、1つ以上のソー
ス・ユニットと1つ以上の宛先ユニット間のインタフェ
ースに接続される中間構成要素内に配置され、ソース・
ユニットと宛先ユニット間のトランザクションの伝送を
ゲートする。また、トランザクション・スケジューリン
グは、例えば各ソース・ユニット内など、複数のユニッ
ト間に分配され得て、様々なユニット間の通信のため
に、オペレーションのスケジューリングを調整する機構
を含み得る。
【0022】前述のように、本発明に従うトランザクシ
ョン・スケジューラは、状態情報にもとづき、トランザ
クションを優先させることにより、トランザクションを
スケジュールするように構成される。状態情報の1つの
基本的なカテゴリは、共用メモリ・システム内でコヒー
レンスを維持するために使用される状態情報であり、こ
れが本開示が以降で注目する状態情報のカテゴリであ
る。しかしながら、ページ・フォルト、キャッシュ可能
対キャッシュ不能、及びライト・スルー対ストア・イン
などの、他のカテゴリの状態情報も使用され得る。
【0023】コヒーレンス・ベースの状態情報には、例
えば、MESIプロトコルに従い定義される変更状態、
排他状態、共用状態及び無効状態の他に、所有者、共用
所有者、保留、充填などの、他の状態が含まれ得る。以
下で詳述する実施例では、共用状態、排他状態及び無効
状態が共同で、"非変更"状態と見なされ、変更状態を他
の3つの状態から区別する。この変更状態と非変更状態
間の区別が、実施例において、データ処理システムの性
能を向上するために使用される。
【0024】特に、シミュレーション分析を通じて、多
くのマルチプロセッサ共用メモリ・システムにおいて、
変更キャッシュ・ブロックへのアクセスの回数は、通
常、非変更キャッシュ・ブロックへのアクセスの回数よ
りも大きいことが判明している。例えば表1は、4つの
プロセッサP0、P1、P2及びP3と、64バイトのブロ
ック・サイズを有する無限の書込み無効タイプ・キャッ
シュを有する仮想システム上でシミュレートされた幾つ
かの既知のベンチマークにおける、変更キャッシュ・ブ
ロック及び非変更キャッシュ・ブロックの参照の割合を
リストする。
【表1】
【0025】BUKベンチマークは、パーチクル法コー
ドで使用される分類オペレーションをテストし、整数計
算スピード及び通信性能をテストする。浮動小数点演算
は含まれないが、多大なデータ通信が要求される。CG
Mベンチマークは共役傾斜法を用いて、疎行列ベクトル
乗算により、大きく、疎で対称の正の確定行列の最も小
さな固有値の近似を計算する。MGRIDベンチマーク
は3DポアッソンPDEを解き、一般に短距離及び長距
離の高度な構造化通信の両方をテストするために使用さ
れる。RADIXベンチマークは反復整数基数分類アル
ゴリズムであり、FFTベンチマークは高速フーリエ変
換アルゴリズムである。LUベンチマークは、稠密行列
を下三角行列及び上三角行列の積に因数分解する。前記
ベンチマークの各々は周知である。例えば、Saini、Sub
hashらによる"NAS Parallel Benchmarks Results 3-9
5"、Report NAS-95-011(4/95)、及びWoo、Steven Cam
eronらによる"The SPLASH-2 Programs: Characterizati
on and Methodological Considerations"、Proceedings
of 22nd Annual International Symposium on Compute
r Architecture、pp. 24-36(6/95)を参照されたい。
【0026】表1から明らかなように、BUKベンチマ
ークの場合のプロセッサP1、P2及びP3を除くあらゆ
る例において、変更キャッシュ・ブロックが非変更キャ
ッシュ・ブロックよりも頻繁にアクセスされる。従っ
て、変更トランザクションを非変更トランザクションよ
りも優先させることにより、ほとんどの状況において性
能が改善されることがわかる。
【0027】状態情報は、特定のトランザクションの焦
点であるデータの現状態にもとづき、或いは特定のトラ
ンザクションの結果生じるデータの将来の状態にもとづ
き、そのトランザクションに関連付けられる。例えば、
後述の実施例では、あるトランザクションがその完了時
に、変更状態のキャッシュ・ラインまたはブロックをも
たらす場合、そのトランザクションは変更トランザクシ
ョンと見なされ、変更状態に関連付けられる。あるトラ
ンザクションが共用状態または排他状態のキャッシュ・
ラインまたはブロックをもたらす場合、そのトランザク
ションは非変更トランザクションと見なされる。トラン
ザクションを状態に関連付ける他の方法も使用され得
る。
【0028】例えば、データ転送を開始し、キャッシュ
・コヒーレンスを維持するために、別々の要求トランザ
クション及び応答トランザクションの使用を仮定する
と、変更要求は変更状態のキャッシュ・ラインをもたら
す要求と見なされる。例えば、キャッシュをミスするア
トミック可能ストアまたは非アトミック・キャッシュ可
能ストア、或いは変更状態以外の任意の状態のキャッシ
ュ・ラインをヒットするアトミック・キャッシュ可能ス
トアまたは非アトミック・キャッシュ可能ストアがそれ
に該当する。同様に、変更応答は、変更されるまたは変
更されるであろうキャッシュ・ラインを提供するため
に、或いは所有権を確認するために使用される応答と見
なされ、例えばストア・ミスに対する応答、またはスヌ
ープによるキャッシュ・ライン・ライトバックが、それ
に該当する。更に、スヌープされたロードまたはストア
・ミスが変更キャッシュ・ラインをヒットする、変更介
入または直接キャッシュ間転送も、変更トランザクショ
ンと見なされ得る。
【0029】非変更要求は、共用状態または排他状態の
キャッシュ・ラインをもたらす要求と見なされ、例えば
キャッシュをミスするアトミック・キャッシュ可能ロー
ド、または非アトミック・キャッシュ可能ロードがそれ
に該当する。非変更応答は、変更されないであろうキャ
ッシュ・ラインを提供するために使用される応答と見な
され、例えばロード・ミスに対する応答、またはキャッ
シュ・ライン・ライトバック・スヌープがそれに該当す
る。更に、スヌープされたロードまたはストア・ミスが
非変更状態のキャッシュ・ラインをヒットする、共用介
入、または直接キャッシュ間転送も非変更トランザクシ
ョンと見なされ得る。
【0030】一部の実施例では、あるタイプのトランザ
クションを他のトランザクションよりも優先させること
が好ましい。しかしながら、他の実施例では、状態ベー
スの優先順位付けに加え、副次的に公正概念も組み込む
ことにより、優先されないトランザクションに対する過
度な待ち時間を防止することが好ましい。例えば、状態
ベースのスケジューリング・アルゴリズムを補足するた
めに、例えばラウンドロビン・アルゴリズム、FIFO
アルゴリズム、最長処理時間優先アルゴリズム、最短処
理時間優先アルゴリズム、ランダム・アルゴリズム、及
び最終被サービス装置にもとづく可変割込み優先アルゴ
リズムなどの、異なる公正アルゴリズムが使用され得
る。更に、後述の説明は、2つの状態クラス間の優先順
位付けに注目するが、他の実施例では、3つ以上の異な
るクラス状態にもとづき、トランザクションを優先させ
る追加の優先順位付けも使用され得る。本開示を参照す
ることにより、当業者であれば、スケジューリング・ア
ルゴリズムの他の方式及び変形も明らかとなろう。
【0031】付随の図面を通じて、同一の参照番号は同
一のパーツを表す。図1は、本発明に従う典型的なデー
タ処理システム10の一般的な構成を示す。システム1
0は、ネットワーク・サーバ、中級コンピュータ、メイ
ンフレーム・コンピュータなどの、多数のマルチユーザ
・コンピュータ・システムを総称的に示す。しかしなが
ら、本発明は他のデータ処理システムにおいても実現さ
れ、例えばワークステーション、デスクトップ・コンピ
ュータ、ポータブル・コンピュータなどの、スタンドア
ロン・コンピュータ・システムまたは単一ユーザ・コン
ピュータ・システムにおいて、或いは埋め込み制御装置
などの他のコンピュータ装置において実現され得る。デ
ータ処理システム10の1つの好適な実施例は、IBM
から販売されるAS/400コンピュータなどの中級コ
ンピュータである。
【0032】データ処理システム10は一般にシステム
・バス12を含み、これは複数の電子構成要素を、例え
ば主メモリ24により表される共用メモリ・システムに
接続する。ここで電子構成要素には、中央処理ユニット
(CPU)14、16、18、及びシステム・バスをI
/O装置22などの1つ以上の入出力装置に接続する入
出力制御装置20などが含まれる。データ処理システム
10は一般に、複数のメモリ・アドレスを含むアドレス
指定可能メモリ・アドレス空間を含む。こうしたメモリ
・アドレスに記憶される実際のデータは、主メモリ24
に保持されるか、或いは選択的に、主メモリ24と例え
ば図示されない直接アクセス記憶装置(DASD)との
間でページングされ得る。更に、メモリ空間内のメモリ
・アドレスの選択部分のコピーが、システム・バス12
に接続される様々な電子構成要素14乃至20内で見出
される、様々なメモリ内に複製され得る。システム・バ
ス12は共用メモリ・インタフェースとして作用し、様
々な電子構成要素が主メモリ24を共用することを可能
にし、この点で、各電子構成要素によるシステム・バス
へのアクセスを選択的に制御し、構成要素間の衝突の発
生を回避するために、一般にバス・アービタ26が使用
される。しかしながら、他の実施例では、バス・アービ
タが分散式に実現され、好適な論理がシステム・バスに
接続される各構成要素内に配置される。
【0033】キャッシングのために、メモリ・アドレス
空間は複数のキャッシュ・ラインに、すなわち常にキャ
ッシュとの間で1単位としてスワップされるメモリ・ア
ドレスの連続シーケンスに区分化される。メモリ・アド
レスを定義されたキャッシュ・ラインに編成することに
より、キャッシュ内のメモリ・アドレスの復号が多大に
単純化され、それによりキャッシュ性能が多大に改善す
る。しかしながら、メモリ・アドレスのシーケンスがキ
ャッシュ・ラインを形成することを表明することによ
り、メモリ・アドレスのシーケンスが実際に所与の時刻
にキャッシュされるか否かは含意されない。
【0034】CPU14はシステム・バス制御装置30
を含み、これはシステム・バスと1つ以上のローカル・
メモリ間のインタフェースを提供する。これらのローカ
ル・メモリには、キャッシュ・ディレクトリ34を有す
るレベル1(L1)データ・キャッシュ32、統合キャ
ッシュ制御装置38及びキャッシュ・ディレクトリ39
及びオフチップ・キャッシュ・メモリ素子40を有する
レベル2(L2)キャッシュ36、及びキャッシュ・デ
ィレクトリ44を有する遷移キャッシュ42が含まれ
る。L1命令キャッシュ(図示せず)も提供され、L1
データ・キャッシュ32が代わりに、結合式データ/命
令キャッシュとして実現されてもよい。更に、様々なキ
ャッシュのいずれかが、(例えばキャッシュ32、42
と共に)共通の集積回路素子内に完全に統合されるか、
或いはCPU14とは別々の集積回路素子上に、(例え
ばキャッシュ36と共に)部分的にまたは完全に統合さ
れ得る。更に、CPU14は、命令ユニット、固定小数
点ユニット、浮動小数点ユニットなどの、図1では理解
を容易にするために省略された多数の追加の構成要素を
使用する。一般に、多彩な好適なハードウェア構成が代
わりに使用され得る。
【0035】データ処理システム10は、任意の構成要
素14乃至20が、他のこうした構成要素内に記憶され
た情報をアクセスするメモリ・アクセス要求を発行する
ことを可能にし、それに応答して、メモリ・アクセス要
求により影響される各メモリ内のメモリ・アドレスの状
態を更新する、スヌープ・コヒーレンス機構を実現す
る。共用メモリ・システム内に記憶されるメモリ・アド
レスへの読出しアクセスまたは書込みアクセスを要求す
るソース・ユニットから、メモリ・アクセス要求トラン
ザクションが発行される。これらのトランザクションは
宛先ユニットにより受信され、宛先ユニットは、要求の
対象となる各メモリ内のメモリ・アドレスの状態を判断
し、様々なメモリの状態を表す好適なローカル応答信号
を出力し、これが応答トランザクションとして機能す
る。要求データは通常、それが応答側メモリから入手可
能な場合、こうした応答に関連して提供される。更に、
要求トランザクションに応答して、各メモリ内のメモリ
・アドレスの状態が一般に更新される。
【0036】動作上、データ処理システム10は多重レ
ベル・コヒーレンス機構を通じて、コヒーレンスを維持
する。この機構は、ソース構成要素内の様々なメモリ
間、及び必要に際して、共用メモリ・システム内の複数
の構成要素間で転送される適切な要求及び応答にもとづ
く。コヒーレンスは、最初に所与の構成要素内でローカ
ル・レベルに維持され、次に、システム内の全ての構成
要素間でより大域的なレベルに維持される。
【0037】例えば、プロセッサにより処理されるロー
ド命令が、L1データ・キャッシュ32をミスすると仮
定しよう。この場合、ロード・ミスがロード・トランザ
クションとして遷移キャッシュ42に渡され、遷移キャ
ッシュがロード・トランザクションをL2キャッシュ3
6に転送する。例えば、ロードがまたL2キャッシュを
ミスすると仮定しよう。ロード・トランザクションに対
する応答が、遷移キャッシュに戻され、その結果、遷移
キャッシュはロード・トランザクションをシステム・バ
ス制御装置30に転送する。システム・バス制御装置は
次に、ロード・トランザクションをバス・アービタ26
に転送することにより、システム・バスへのアクセスを
要求し、バス・アービタがシステム・バス制御装置に、
システム・バスへのアクセスを許可する。ロード・トラ
ンザクションは次に主メモリに転送され、主メモリがト
ランザクションをサービスし、応答トランザクションを
介して、要求データをシステム・バス制御装置30に転
送する。システム・バス制御装置は次に、データを別の
応答トランザクションを介して遷移キャッシュに転送
し、遷移キャッシュは追加の応答トランザクションを介
して、データをL1キャッシュ及びL2キャッシュに転
送する。これでロード・ミスの処理が完了する。ストア
・ミスも、一旦要求データがL1キャッシュ及びL2キ
ャッシュに配置されると、データがストア・トランザク
ションからの書込みデータにより更新される以外は、同
様に処理される。
【0038】共用メモリ・システム内の様々なメモリの
分散的性質を仮定すると、多数のトランザクションがシ
ステムの異なるポイントにおいて同時に保留となり得
る。結果的に、各構成要素内で、及び異なる構成要素間
でこれらのトランザクションを経路指定するトランザク
ション処理が要求される。例えばCPU14により表さ
れるように、各構成要素内において、L1キャッシュ3
2、L2キャッシュ36及び遷移キャッシュ42の各々
は、トランザクションを発行するソース・ユニットとし
て、及び他のキャッシュからのトランザクションが受信
される宛先ユニットとして機能する。更に、各キャッシ
ュ32、36及び42は、任意の所与のキャッシュに対
して保留の複数のトランザクション間の衝突を処理す
る、トランザクション・スケジューリング論理を要求す
る。従って、構成要素32、36及び42の各々に対す
るこの結合機能は、トランザクション・スケジューラ/
ソース・ブロック及び宛先ブロック50、52及び54
により、それぞれ表される。
【0039】構成要素の間で、トランザクション処理機
能は、システム・バス12に接続される様々な構成要素
間で分散される。例えばCPU14の場合、システム・
バス制御装置30が、トランザクション・スケジューラ
/ソース・ブロック及び宛先ブロック56を含む。シス
テム・バス上の他の構成要素には、機能的にブロック5
6に類似の論理回路が含まれ、例えばバス・アービタ2
6では、トランザクション・スケジューラ/ソース・ブ
ロック及び宛先ブロック58が含まれる。主メモリ2
4、CPU16及び18、及びI/O構成要素20など
の、他の構成要素内で使用されるトランザクション処理
回路は図示されていない。こうした追加の回路は、構成
的にCPU14及びバス・アービタ26内で実現される
回路に類似であるが、一部の構成要素は専らソースとし
て、または宛先として機能し得る。
【0040】前述の説明から明らかなように、数えきれ
ないほどの代替ハードウェア構成が、本発明に従うトラ
ンザクション・スケジューリング機構を実現するために
使用され得る。更に、周知のように、こうしたハードウ
ェア構成は、1つ以上の集積回路素子と、言うまでもな
く他のサポート回路を含む回路構成において、実現され
得る。集積回路素子などは一般に、素子上の回路構成の
レイアウトを定義する1つ以上のコンピュータ・データ
・ファイルを用いて設計及び形成され、これをここでは
ハードウェア定義プログラムと呼ぶことにする。プログ
ラムは一般に、設計ツールにより生成され、その後製造
の間に、半導体ウエハに適用される回路構成を定義する
レイアウト・マスクを作成するために使用される。通
常、プログラムは、VHDL、ヴェリログ、EDIFな
どの、ハードウェア定義言語(HDL)を用いて所定の
形式で提供される。本発明は、完全機能の集積回路素子
において、及びこうした素子を使用するデータ処理シス
テムにおいて実現される回路構成の状況において述べら
れるが、当業者であれば、本発明に従う回路構成がプロ
グラム製品として、様々な形態で分配され得ること、並
びに本発明が分配を実際に達成するために使用される特
定タイプの信号担持媒体に関係無しに、同様に適用され
得ることが理解できよう。信号担持媒体の例には、揮発
性メモリ素子及び不揮発性メモリ素子、フロッピー・デ
ィスク、ハードディスク・ドライブ、CD−ROM及び
DVDなどの記録可能タイプの媒体、並びにデジタル通
信リンク及びアナログ通信リンクなどの、伝送タイプの
媒体が含まれる。
【0041】各ブロック50乃至58により、トランザ
クション・スケジューリングは、あるクラスのトランザ
クションを、別のクラスのトランザクションよりも優先
させることにより実行される。図示の実施例では、この
スケジューリングは、ブロック50乃至58の間で分散
され、複数のトランザクションがシステムの異なる領域
において同時に処理されることを可能にする。他の実施
例では、トランザクション・スケジューリングが、例え
ば全てのトランザクションが通過する単一のルータに集
中化される。しかしながら、スケジューリングを分散す
ることにより、一般に、より大きなトランザクション・
スループットが実現される。従って、例えば、ストア・
ミス及びロード・ミスの両方がL1キャッシュ内で保留
の場合、ストア・ミスのロード・ミスに対する優先順位
付けにより、ロード・ミス以前にストア・ミスが開始さ
れるように処理される。しかしながら、ロード・ミスを
開始する前にストア・ミスが完了することは要求されな
い。
【0042】図1のブロック50乃至58のいずれかに
おいて好適に使用されるトランザクション・スケジュー
ラが、図2に示される。トランザクション・スケジュー
ラ70内の主要な設計論理回路は、復号/優先論理ブロ
ック72とディスパッチ論理ブロック74とに区分化さ
れる。ソース・ユニットから宛先ユニットへの伝送にと
って好適な新たなトランザクションが、76で示され、
復号/優先論理ブロック72及びデマルチプレクサ78
に提供される。後者は、論理ブロック72からの制御信
号に応答して、トランザクションを2つの先入れ先出し
(FIFO)キュー80、82の1つに経路指定する。
キュー80、82は、それぞれ変更キュー及び非変更キ
ューを表し、それぞれ保留の変更トランザクション及び
非変更トランザクションを記憶する。各キュー80、8
2はマルチプレクサ84に出力され、マルチプレクサは
ディスパッチ論理74からの制御信号に応答して、キュ
ーの1つの保留のトランザクション(被ディスパッチ・
トランザクション85として示される)を出力する。論
理ブロック72、74の各々は、カウンタ86、88の
セットを使用する。カウンタ86は、変更キュー80内
の保留のトランザクションの数のカウントを保持する、
変更トランザクション・カウンタ"CntM"であり、カ
ウンタ88は、非変更キュー82内の保留のトランザク
ションの数のカウントを保持する、非変更トランザクシ
ョン・カウンタ"CntN"である。また、優先順位制御
信号がブロック72からブロック74に出力され、ディ
スパッチ論理がトランザクションを優先順位付けする様
子を制御する。
【0043】図3は、復号/優先論理ブロック72の好
適なプログラム・フローのフロー図100を示す。新た
なトランザクション76の受信に応答して、ブロック1
02が最初に、新たなトランザクションが変更トランザ
クションまたは非変更トランザクションのいずれかを判
断する。これは通常、前述のように、トランザクション
・タイプ及びトランザクションの期待される結果の状態
を参照することによる。トランザクションが変更トラン
ザクションの場合、制御がブロック104に移行し、適
切な制御信号をデマルチプレクサ78(図2)にアサー
トすることにより、トランザクションを変更キューに転
送する。次に、変更カウンタがブロック106で増分さ
れ、変更キュー80内の別の保留のトランザクションを
示す。ブロック102に戻り、新たなトランザクション
が非変更トランザクションの場合、制御がブロック10
8に移行し、適切な制御信号をデマルチプレクサ78に
アサートすることにより、トランザクションを非変更キ
ューに転送し、次にブロック110で、非変更カウンタ
を増分する。
【0044】トランザクションが変更トランザクション
または非変更トランザクションかに関わらず、制御はブ
ロック106、110のいずれかから、ブロック112
に移行し、キューの現状態にもとづき、変更トランザク
ション及び非変更トランザクションのいずれを優先させ
るかを決定する。特に、ブロック112は、状態ベース
のスケジューリング・アルゴリズムを実現し、図示の実
施例では公正ファクタを組み込み、非変更トランザクシ
ョンの待ち時間が、受け入れ不能なレベルを超えないよ
うに保証する。次に、スケジューリング・アルゴリズム
の結果にもとづき、ブロック114、116のいずれか
が実行され、変更トランザクションまたは非変更トラン
ザクションのいずれかを優先させる。これで論理ブロッ
ク72による新たなトランザクションの処理が完了す
る。
【0045】この実施例では、スケジューリング・アル
ゴリズムは、変更カウンタの値を非変更カウンタの値と
比較することにより実行される。一方のタイプのトラン
ザクションを、他方よりも異なる度合いだけ優遇するよ
うに、この比較を調整することが好ましい。これは例え
ば、非変更カウンタの値をスケーリング・ファクタTに
よりスケーリングすることによる。スケーリング・ファ
クタは、シミュレーションまたは経験分析にもとづき、
変更待ち時間及び非変更待ち時間の間の所望のトレード
オフを提供するように選択される。比較は、例えば変更
トランザクション及び非変更トランザクションの相対待
ち時間のモニタリングに応答して、異なる作業負荷に対
して性能を最適化するように、動的に変更され得る。ス
ケーリング・ファクタは所与の設計に配線されるか、例
えば異なる作業負荷に対して特定の設計を適応させるよ
うに、プログラマブルである。1実施例として、スケー
リング・ファクタのプログラミングのために使用される
内部レジスタを提供することが好ましい。
【0046】別の実施例では、他のスケジューリング・
アルゴリズムが使用され得る。例えば、常に変更トラン
ザクションを優先させるアルゴリズムが使用される。他
の公正ベースのアルゴリズムも使用され得る。例えば、
非変更カウンタだけがモニタリングされ、保留の非変更
トランザクションの数が、保留の変更トランザクション
の数に関係無しに、受け入れ可能な最大未満に維持され
る。更に、代わりに前述の他の任意の公正概念が、スケ
ジューリング・アルゴリズムに組み込まれ得る。
【0047】図4は、図2のディスパッチ論理ブロック
74の好適なプログラム・フローのフロー図120を示
す。始動に際してブロック122が実行され、変更カウ
ンタ及び非変更カウンタを0に初期化する。次に、エン
ドレス・ループがブロック124で開始され、キュー8
0、82(図2)のそれぞれ内で保留のトランザクショ
ンを連続的にディスパッチする。ブロック124は、非
ゼロ値が変更カウンタ内に記憶されているか否かを判断
することにより、任意のトランザクションが変更キュー
内で保留か否かを判断する。保留のトランザクションが
変更キュー内に存在しない第1の状況を仮定すると、ブ
ロック124は変更カウンタに記憶される値が0と判断
し、制御をブロック126に渡し、非ゼロ値が非変更カ
ウンタ内に記憶されるか否かを判断する。
【0048】非変更カウンタが0の値を含む場合、非変
更キュー内に保留のトランザクションは存在せず制御は
ブロック124に戻る。しかしながら、非ゼロ値が返却
される場合には、保留の非変更トランザクションがディ
スパッチされるのを待機中である。更に、ブロック12
4から、保留の衝突する変更トランザクションも存在し
ないことが知れる。従って、制御はブロック128に移
行し、適切な制御信号をマルチプレクサ84にアサート
することにより、次の非変更トランザクションを非変更
キューからディスパッチする。この時、トランザクショ
ンはキューからフラッシュされ、ブロック130が実行
されて、非変更カウンタを減分し、キューからのトラン
ザクションの除去を示す。制御は次にブロック124に
戻る。
【0049】ブロック124を再度参照し、非ゼロ値が
変更カンタ内に記憶されている場合、制御はブロック1
32に移行し、非ゼロ値が非変更カウンタ内に記憶され
ているか否かを判断する。非変更カウンタが0の値を含
む場合、非変更キュー内に保留のトランザクションは存
在せず、従って衝突が存在しないことが知れ、次の保留
の変更トランザクションが衝突無しにディスパッチされ
得る。従って、制御はブロック134に移行し、変更キ
ューから次の変更トランザクションをディスパッチす
る。これは通常、適切な制御信号をマルチプレクサ84
にアサートすることによる。この時、トランザクション
がキューからフラッシュされ、ブロック136が実行さ
れて、変更カウンタを減分し、キューからのトランザク
ションの除去を示す。制御は次にブロック124に戻
る。
【0050】ブロック132に戻り、非ゼロ値が非変更
カウンタから戻される場合、変更トランザクション及び
非変更トランザクションの両方が、ディスパッチされる
のを待機中である。従って、制御はブロック138に移
行し、どちらのタイプのトランザクションが、現在復号
/優先論理により優先されるかにもとづき(図2のブロ
ック72からブロック74への優先制御信号により表さ
れる)、衝突を解決する。変更トランザクションが優先
される場合、ブロック138が制御をブロック134に
渡し、変更トランザクションが前述のようにディスパッ
チされる。しかしながら、非変更トランザクションが優
先される場合、ブロック138は制御をブロック128
に渡し、代わりに非変更トランザクションがディスパッ
チされる。
【0051】ここで述べられるトランザクション・スケ
ジューリング機構は、本発明に従う任意の数の共用メモ
リ・システムにおいて使用され得る。図1に関連して示
される環境に加え、他の幾つかの好適な環境が図5及び
図6に示される。例えば、図5に示されるデータ処理シ
ステム140は、バス/相互接続ネットワーク150を
介して主メモリ148に接続される、複数の装置14
2、144及び146を含む。データ処理システム14
0は、全ての素子が共通の主メモリを共用するメモリ・
システム・アーキテクチャの1例であり、従って、素子
142、144及び146内の任意のメモリ間で、コヒ
ーレンスが維持されなければならない。この環境では、
各素子142、144及び146は通常、ソース・ユニ
ット及び宛先ユニットの両方として機能し、素子内の様
々なメモリ間のコヒーレンスを維持する。この状況で
は、主メモリ148は通常、宛先ユニットとしてだけ機
能する。本発明に従う好適なトランザクション・スケジ
ューリング回路が、バスまたは相互接続ネットワーク1
50内に配置されるか、1つ以上の素子142乃至素子
146及び主メモリ148間で分散され、必要に際し
て、共用メモリ・システムにおけるコヒーレンスの維持
を担う。
【0052】図6は、各素子に割当てられる特定タイプ
のメモリにもとづく分散メモリ・システム・アーキテク
チャ及び共用メモリ・システム・アーキテクチャ、及び
キャッシュ専用メモリ・アクセス(COMA)・システ
ム・アーキテクチャの両方を表す、別のデータ処理シス
テム160の例を示す。システム160は複数の素子1
62、164及び166を含み、これらはバス/相互接
続ネットワーク168を介して互いに相互接続される。
しかしながら、共通の主メモリを共用するのではなく、
各素子はそれ自身のメモリに関連付けられる。例えば、
素子162はメモリ170に、素子164はメモリ17
2に、及び素子166はメモリ174に関連付けられ
る。各メモリ170、172、174が主メモリの一部
として実現される場合、システムは分散メモリ・システ
ム・アーキテクチャ及び共用メモリ・システム・アーキ
テクチャを表す。しかしながら、各メモリ170、17
2、174がキャッシュ・メモリとして実現される場
合、システムはキャッシュ専用メモリ・アクセス(CO
MA)・メモリ・システム・アーキテクチャを表し、そ
のオペレーションは周知である。いずれの場合にも、前
述の共用メモリ・アーキテクチャの場合同様、各素子1
62、164及び166は、メモリ170、172及び
174同様、ソース・ユニットまたは宛先ユニットとし
て機能する。更に、当業者には明らかなように、トラン
ザクション・スケジューリング回路が、任意のこうした
素子、メモリ及びネットワーク168間で分散され得
る。
【0053】更に前述のように、トランザクション・ス
ケジューリングは、多重レベル形式で実現され得る。そ
れにより、複数の素子が所与の電子素子または集積回路
素子内に集積され、こうした素子内に集積された複数の
メモリ間で、コヒーレンスが維持される。図7は、例え
ば単一集積回路素子を表す回路構成180を示し、そこ
では複数の素子182、184及び186が、バス/ネ
ットワーク・インタフェース・ブロック188とインタ
フェースするように定義される。図7の回路構成180
はアーキテクチャの点で、例えば図1のCPU14に類
似である。従って、回路構成180は、図5乃至図6の
データ処理システム140または160内の任意の素子
内で使用され、こうした多重レベル・トランザクション
・スケジューリング機構を提供する。
【0054】本発明に従うトランザクション・スケジュ
ーリングは、他の環境でも利用され得る。例えば、ロー
カル・エリア・ネットワークまたは広域ネットワークな
どのネットワーク環境が、状態ベースのトランザクショ
ン・スケジューリングから利益を被り得る。本開示から
当業者には明らかなように、記憶領域ネットワークなど
の他の環境も、状態ベースのトランザクション・スケジ
ューリングから利益を被り得る。
【0055】本発明の趣旨及び範囲から逸れることな
く、様々な追加の変更が、図示の実施例に対して可能で
ある。従って、本発明は本明細書の特許請求の範囲に沿
うものである。
【0056】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0057】(1)a)第1のトランザクションを発行
するように構成されるソース・ユニットと、 b)前記第1のトランザクションを受信するように構成
される宛先ユニットと、 c)前記第1及び第2のトランザクションの少なくとも
1つに関連付けらる状態情報にもとづき、前記第1のト
ランザクションを前記第2のトランザクションよりも優
先させることにより、前記ソース・ユニットから前記宛
先ユニットへの、前記第1のトランザクションの伝送を
スケジュールするように構成されるトランザクション・
スケジューラとを含む、回路。 (2)前記ソース・ユニットが前記第2のトランザクシ
ョンを発行するように構成され、前記トランザクション
・スケジューラが前記ソース・ユニットに接続され、該
ソース・ユニットによる前記第1のトランザクションの
伝送を、該ソース・ユニットによる前記第2のトランザ
クションの伝送よりも優先させる、前記(1)記載の回
路。 (3)前記トランザクション・スケジューラが前記宛先
ユニットに接続され、該宛先ユニットによる前記第1の
トランザクションの受信を、該宛先ユニットによる前記
第2のトランザクションの受信よりも優先させる、前記
(1)記載の回路。 (4)前記第2のトランザクションを発行するように構
成される第2のソース・ユニットを含む、前記(3)記
載の回路。 (5)前記トランザクション・スケジューラが中間ソー
ス・ユニット及び宛先ユニットに接続され、前記トラン
ザクション・スケジューラが前記第1及び第2のトラン
ザクションを受信し、前記第1のトランザクションを、
前記第2のトランザクションを送信する前に、前記宛先
ユニットに送信するように構成される、前記(1)記載
の回路。 (6)前記ソース・ユニット及び宛先ユニットが互いに
共用メモリ・システム内で接続され、前記第1のトラン
ザクションが、前記共用メモリ・システム内でコヒーレ
ンスを維持するために使用されるコヒーレンス・トラン
ザクションである、前記(1)記載の回路。 (7)前記状態情報が、前記第1及び第2のトランザク
ションの少なくとも1つの完了時に、前記宛先ユニット
内に記憶される少なくとも1つのメモリ・アドレスの変
更状態を示す、前記(6)記載の回路。 (8)前記トランザクション・スケジューラが、前記第
1のトランザクションが、前記宛先ユニット内に記憶さ
れるメモリ・アドレスの前記変更状態を生じる変更トラ
ンザクションであり、前記第2のトランザクションが、
前記宛先ユニット内に記憶されるメモリ・アドレスの非
変更状態を生じる非変更トランザクションであることに
応答して、前記第1のトランザクションを前記第2のト
ランザクションよりも優先させる、前記(7)記載の回
路。 (9)前記第1のトランザクションが、メモリ・アクセ
ス要求トランザクション及びメモリ・アクセス応答トラ
ンザクションを含むグループから選択される、前記
(6)記載の回路。 (10)前記トランザクション・スケジューラが、公正
さが満足される場合だけ、前記第1のトランザクション
を前記第2のトランザクションよりも優先させるように
構成される、前記(1)記載の回路。 (11)前記トランザクション・スケジューラが、プロ
グラマブル・スケジューリング・アルゴリズムを使用
し、前記第1のトランザクションを前記第2のトランザ
クションよりも優先させるように構成される、前記
(1)記載の回路。 (12)前記トランザクション・スケジューラのための
前記プログラマブル・スケジューリング・アルゴリズム
を調整するために使用される、スケーリング・ファクタ
を記憶するように構成される、プログラマブル・レジス
タを含む、前記(11)記載の回路。 (13)前記ソース・ユニット及び宛先ユニットの各々
が、プロセッサ、メモリ制御装置、バス制御装置、バス
・アービタ、キャッシュ、キャッシュ制御装置、キャッ
シュ・ディレクトリ、遷移キャッシュ、スヌープ応答論
理、ネットワーク制御装置、主メモリ、完全アソシアテ
ィブ・バッファ及びセット・アソシアティブ・バッファ
を含むグループから選択される、前記(1)記載の回
路。 (14)前記ソース・ユニット及び宛先ユニットが、同
一の集積回路素子内に配置される、前記(1)記載の回
路。 (15)前記ソース・ユニット及び宛先ユニットが、別
々の集積回路素子内に配置される、前記(1)記載の回
路。 (16)a)各々がソース・ユニット及び宛先ユニット
の少なくとも1つとして構成される、複数の構成要素を
含む共用メモリ・システムであって、前記ソース・ユニ
ットが、変更トランザクション及び非変更トランザクシ
ョンの少なくとも1つを発行し、前記共用メモリ・シス
テム内のコヒーレンスを維持するように構成され、前記
宛先ユニットが前記ソース・ユニットからトランザクシ
ョンを受信するように構成される、共用メモリ・システ
ムと、 b)少なくとも1つの前記変更トランザクションを、前
記非変更トランザクションよりも優先させることによ
り、少なくとも1つの前記ソース・ユニットから、少な
くとも1つの前記宛先ユニットへの伝送をスケジュール
するように構成されるトランザクション・スケジューラ
とを含む、回路。 (17)前記トランザクション・スケジューラが、 a)少なくとも1つの前記ソース・ユニットにより発行
された、保留の前記変更トランザクション及び前記非変
更トランザクションをそれぞれ受信するように構成され
る、変更キュー及び非変更キューと、 b)前記キューに接続され、保留の前記非変更トランザ
クションのカウントが所定のしきい値を越えない場合に
限り、前記変更トランザクションを前記非変更トランザ
クションよりも優先させるように構成される、トランザ
クション・ディスパッチ論理回路とを含む、前記(1
6)記載の回路。 (18)前記トランザクション・ディスパッチ論理回路
が、保留の前記非変更トランザクションのカウントを、
保留の前記変更トランザクションのカウントと比較する
ことにより、前記所定のしきい値を越えない保留の前記
非変更トランザクションのカウントを決定するように構
成される、前記(17)記載の回路。 (19)前記トランザクション・ディスパッチ論理回路
が、保留の前記非変更トランザクションのカウントが前
記所定のしきい値を越えないとき、保留の前記変更トラ
ンザクション及び非変更トランザクションのカウントの
少なくとも1つを、プログラマブル・スケーリング・フ
ァクタによりスケーリングするように構成される、前記
(18)記載の回路。 (20)前記構成要素の各々が、メモリ、キャッシュ、
プロセッサ、バス制御装置及びバス・アービタを含むグ
ループから選択される、前記(16)記載の回路。 (21)a)バス・アービタにより制御されるシステム
・バスを介して、共用メモリに接続される、各々が少な
くとも1つのキャッシュを含む複数のプロセッサであっ
て、前記プロセッサ、前記共用メモリ及び前記バス・ア
ービタが、ソース・ユニット及び宛先ユニットの少なく
とも1つとして構成され、各前記ソース・ユニットが、
変更トランザクション及び非変更トランザクションの少
なくとも1つを発行し、前記共用メモリ・システム内の
コヒーレンスを維持するように構成され、各前記宛先ユ
ニットが、前記ソース・ユニットからトランザクション
を受信するように構成され、 b)前記プロセッサ、前記共用メモリ及び前記バス・ア
ービタの少なくとも1つ内に配置され、少なくとも1つ
の前記変更トランザクションを前記非変更トランザクシ
ョンよりも優先させることにより、少なくとも1つの前
記ソース・ユニットから、少なくとも1つの前記宛先ユ
ニットへのトランザクションの伝送をスケジュールする
ように構成される、トランザクション・スケジューリン
グ論理とを含む、データ処理システム。 (22)トランザクションをスケジュールする方法であ
って、 a)少なくとも1つのソース・ユニットから第1及び第
2のトランザクションを受信するステップと、 b)少なくとも1つの宛先ユニット内において、前記第
1及び第2のトランザクションの少なくとも1つに関連
付けられる状態情報にもとづき、前記第1のトランザク
ションの処理を、前記第2のトランザクションの処理よ
りも優先させるステップとを含む、方法。 (23)前記優先させるステップが、同一の前記ソース
・ユニットからの前記第1及び第2のトランザクション
の伝送順序を制御するステップを含む、前記(22)記
載の方法。 (24)前記優先させるステップが、同一の前記宛先ユ
ニットにより受信される前記第1及び第2のトランザク
ションの処理順序を制御するステップを含む、前記(2
2)記載の方法。 (25)前記受信するステップが、第1のソース・ユニ
ットから前記第1のトランザクションを受信し、第2の
ソース・ユニットから前記第2のトランザクションを受
信するステップを含み、前記優先させるステップが、共
通のインタフェースを介する前記第1及び第2のトラン
ザクションの伝送順序を制御するステップを含む、前記
(22)記載の方法。 (26)前記ソース・ユニット及び宛先ユニットが互い
に共用メモリ・システム内で接続され、前記第1及び第
2のトランザクションが、前記共用メモリ・システム内
でコヒーレンスを維持するために使用されるコヒーレン
ス・トランザクションである、前記(22)記載の方
法。 (27)前記優先させるステップが、前記第1のトラン
ザクションが変更トランザクションか非変更トランザク
ションかを判断するステップを含む、前記(26)記載
の方法。 (28)前記優先させるステップが、公正さが満足され
るか否かを判断するステップを含む、前記(22)記載
の方法。 (29)前記ソース・ユニット及び宛先ユニットの各々
が、プロセッサ、メモリ制御装置、バス制御装置、バス
・アービタ、キャッシュ、キャッシュ制御装置、キャッ
シュ・ディレクトリ、遷移キャッシュ、スヌープ応答論
理、ネットワーク制御装置、主メモリ、完全アソシアテ
ィブ・バッファ及びセット・アソシアティブ・バッファ
を含むグループから選択される、前記(22)記載の方
法。 (30)共用メモリ・システムにおいて発行されるトラ
ンザクションをスケジュールする方法であって、 a)複数のソース・ユニットの少なくとも1つからトラ
ンザクションを受信するステップと、 b)複数の宛先ユニットの少なくとも1つにおいて、少
なくとも1つの変更トランザクションの処理を、非変更
トランザクションの処理よりも優先させるステップとを
含む、方法。
【図面の簡単な説明】
【図1】本発明に従うデータ処理システムのブロック図
である。
【図2】図1のデータ処理システムにおいて好適に使用
されるトランザクション・スケジューラのブロック図で
ある。
【図3】図2の復号/優先論理により実行されるオペレ
ーションのシーケンスを示すフロー図である。
【図4】図2のディスパッチ論理により実行されるオペ
レーションのシーケンスを示すフロー図である。
【図5】本発明に従う使用にとって好適な、共用主メモ
リ・アーキテクチャを使用する第1の共用メモリ環境の
ブロック図である。
【図6】本発明に従う使用にとって好適な、分散メモリ
・アーキテクチャまたは共用メモリ・アーキテクチャ、
またはキャッシュ専用メモリ・アクセス(COMA)・
メモリ・アーキテクチャを使用する、第1の共用メモリ
環境のブロック図である。
【図7】本発明に従う複数ソース/宛先ユニットを実現
する集積回路素子のブロック図である。
【符号の説明】
10、140、160 データ処理システム 12 システム・バス 14、16、18 中央処理ユニット(CPU) 20 入出力制御装置 22 I/O装置 24、148 主メモリ 26 バス・アービタ 30 システム・バス制御装置 34、39、44 キャッシュ・ディレクトリ 42 遷移キャッシュ 74 ディスパッチ論理 78 デマルチプレクサ 80 変更キュー 82 非変更キュー 84 マルチプレクサ 150、168 バス/相互接続ネットワーク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ファーナズ・モウネス−トウシ アメリカ合衆国55414−0633、ミネソタ州 ミネアポリス、ピー・オー・ボックス 14633、サウス・イースト、エリー・スト リート 513 (72)発明者 ドナルド・リー・フリークセン アメリカ合衆国55901、ミネソタ州ロチェ スター、ノース・ウエスト、フォーティフ ォース・コート 412

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】a)第1のトランザクションを発行するよ
    うに構成されるソース・ユニットと、 b)前記第1のトランザクションを受信するように構成
    される宛先ユニットと、 c)前記第1及び第2のトランザクションの少なくとも
    1つに関連付けらる状態情報にもとづき、前記第1のト
    ランザクションを前記第2のトランザクションよりも優
    先させることにより、前記ソース・ユニットから前記宛
    先ユニットへの、前記第1のトランザクションの伝送を
    スケジュールするように構成されるトランザクション・
    スケジューラとを含む、回路。
  2. 【請求項2】前記ソース・ユニットが前記第2のトラン
    ザクションを発行するように構成され、前記トランザク
    ション・スケジューラが前記ソース・ユニットに接続さ
    れ、該ソース・ユニットによる前記第1のトランザクシ
    ョンの伝送を、該ソース・ユニットによる前記第2のト
    ランザクションの伝送よりも優先させる、請求項1記載
    の回路。
  3. 【請求項3】前記トランザクション・スケジューラが前
    記宛先ユニットに接続され、該宛先ユニットによる前記
    第1のトランザクションの受信を、該宛先ユニットによ
    る前記第2のトランザクションの受信よりも優先させ
    る、請求項1記載の回路。
  4. 【請求項4】前記第2のトランザクションを発行するよ
    うに構成される第2のソース・ユニットを含む、請求項
    3記載の回路。
  5. 【請求項5】前記トランザクション・スケジューラが中
    間ソース・ユニット及び宛先ユニットに接続され、前記
    トランザクション・スケジューラが前記第1及び第2の
    トランザクションを受信し、前記第1のトランザクショ
    ンを、前記第2のトランザクションを送信する前に、前
    記宛先ユニットに送信するように構成される、請求項1
    記載の回路。
  6. 【請求項6】前記ソース・ユニット及び宛先ユニットが
    互いに共用メモリ・システム内で接続され、前記第1の
    トランザクションが、前記共用メモリ・システム内でコ
    ヒーレンスを維持するために使用されるコヒーレンス・
    トランザクションである、請求項1記載の回路。
  7. 【請求項7】前記状態情報が、前記第1及び第2のトラ
    ンザクションの少なくとも1つの完了時に、前記宛先ユ
    ニット内に記憶される少なくとも1つのメモリ・アドレ
    スの変更状態を示す、請求項6記載の回路。
  8. 【請求項8】前記トランザクション・スケジューラが、
    前記第1のトランザクションが、前記宛先ユニット内に
    記憶されるメモリ・アドレスの前記変更状態を生じる変
    更トランザクションであり、前記第2のトランザクショ
    ンが、前記宛先ユニット内に記憶されるメモリ・アドレ
    スの非変更状態を生じる非変更トランザクションである
    ことに応答して、前記第1のトランザクションを前記第
    2のトランザクションよりも優先させる、請求項7記載
    の回路。
  9. 【請求項9】前記第1のトランザクションが、メモリ・
    アクセス要求トランザクション及びメモリ・アクセス応
    答トランザクションを含むグループから選択される、請
    求項6記載の回路。
  10. 【請求項10】前記トランザクション・スケジューラ
    が、公正さが満足される場合だけ、前記第1のトランザ
    クションを前記第2のトランザクションよりも優先させ
    るように構成される、請求項1記載の回路。
  11. 【請求項11】前記トランザクション・スケジューラ
    が、プログラマブル・スケジューリング・アルゴリズム
    を使用し、前記第1のトランザクションを前記第2のト
    ランザクションよりも優先させるように構成される、請
    求項1記載の回路。
  12. 【請求項12】前記トランザクション・スケジューラの
    ための前記プログラマブル・スケジューリング・アルゴ
    リズムを調整するために使用される、スケーリング・フ
    ァクタを記憶するように構成される、プログラマブル・
    レジスタを含む、請求項11記載の回路。
  13. 【請求項13】前記ソース・ユニット及び宛先ユニット
    の各々が、プロセッサ、メモリ制御装置、バス制御装
    置、バス・アービタ、キャッシュ、キャッシュ制御装
    置、キャッシュ・ディレクトリ、遷移キャッシュ、スヌ
    ープ応答論理、ネットワーク制御装置、主メモリ、完全
    アソシアティブ・バッファ及びセット・アソシアティブ
    ・バッファを含むグループから選択される、請求項1記
    載の回路。
  14. 【請求項14】前記ソース・ユニット及び宛先ユニット
    が、同一の集積回路素子内に配置される、請求項1記載
    の回路。
  15. 【請求項15】前記ソース・ユニット及び宛先ユニット
    が、別々の集積回路素子内に配置される、請求項1記載
    の回路。
  16. 【請求項16】a)各々がソース・ユニット及び宛先ユ
    ニットの少なくとも1つとして構成される、複数の構成
    要素を含む共用メモリ・システムであって、前記ソース
    ・ユニットが、変更トランザクション及び非変更トラン
    ザクションの少なくとも1つを発行し、前記共用メモリ
    ・システム内のコヒーレンスを維持するように構成さ
    れ、前記宛先ユニットが前記ソース・ユニットからトラ
    ンザクションを受信するように構成される、共用メモリ
    ・システムと、 b)少なくとも1つの前記変更トランザクションを、前
    記非変更トランザクションよりも優先させることによ
    り、少なくとも1つの前記ソース・ユニットから、少な
    くとも1つの前記宛先ユニットへの伝送をスケジュール
    するように構成されるトランザクション・スケジューラ
    とを含む、回路。
  17. 【請求項17】前記トランザクション・スケジューラ
    が、 a)少なくとも1つの前記ソース・ユニットにより発行
    された、保留の前記変更トランザクション及び前記非変
    更トランザクションをそれぞれ受信するように構成され
    る、変更キュー及び非変更キューと、 b)前記キューに接続され、保留の前記非変更トランザ
    クションのカウントが所定のしきい値を越えない場合に
    限り、前記変更トランザクションを前記非変更トランザ
    クションよりも優先させるように構成される、トランザ
    クション・ディスパッチ論理回路とを含む、請求項16
    記載の回路。
  18. 【請求項18】前記トランザクション・ディスパッチ論
    理回路が、保留の前記非変更トランザクションのカウン
    トを、保留の前記変更トランザクションのカウントと比
    較することにより、前記所定のしきい値を越えない保留
    の前記非変更トランザクションのカウントを決定するよ
    うに構成される、請求項17記載の回路。
  19. 【請求項19】前記トランザクション・ディスパッチ論
    理回路が、保留の前記非変更トランザクションのカウン
    トが前記所定のしきい値を越えないとき、保留の前記変
    更トランザクション及び非変更トランザクションのカウ
    ントの少なくとも1つを、プログラマブル・スケーリン
    グ・ファクタによりスケーリングするように構成され
    る、請求項18記載の回路。
  20. 【請求項20】前記構成要素の各々が、メモリ、キャッ
    シュ、プロセッサ、バス制御装置及びバス・アービタを
    含むグループから選択される、請求項16記載の回路。
  21. 【請求項21】a)バス・アービタにより制御されるシ
    ステム・バスを介して、共用メモリに接続される、各々
    が少なくとも1つのキャッシュを含む複数のプロセッサ
    であって、前記プロセッサ、前記共用メモリ及び前記バ
    ス・アービタが、ソース・ユニット及び宛先ユニットの
    少なくとも1つとして構成され、各前記ソース・ユニッ
    トが、変更トランザクション及び非変更トランザクショ
    ンの少なくとも1つを発行し、前記共用メモリ・システ
    ム内のコヒーレンスを維持するように構成され、各前記
    宛先ユニットが、前記ソース・ユニットからトランザク
    ションを受信するように構成され、 b)前記プロセッサ、前記共用メモリ及び前記バス・ア
    ービタの少なくとも1つ内に配置され、少なくとも1つ
    の前記変更トランザクションを前記非変更トランザクシ
    ョンよりも優先させることにより、少なくとも1つの前
    記ソース・ユニットから、少なくとも1つの前記宛先ユ
    ニットへのトランザクションの伝送をスケジュールする
    ように構成される、トランザクション・スケジューリン
    グ論理とを含む、データ処理システム。
  22. 【請求項22】トランザクションをスケジュールする方
    法であって、 a)少なくとも1つのソース・ユニットから第1及び第
    2のトランザクションを受信するステップと、 b)少なくとも1つの宛先ユニット内において、前記第
    1及び第2のトランザクションの少なくとも1つに関連
    付けられる状態情報にもとづき、前記第1のトランザク
    ションの処理を、前記第2のトランザクションの処理よ
    りも優先させるステップとを含む、方法。
  23. 【請求項23】前記優先させるステップが、同一の前記
    ソース・ユニットからの前記第1及び第2のトランザク
    ションの伝送順序を制御するステップを含む、請求項2
    2記載の方法。
  24. 【請求項24】前記優先させるステップが、同一の前記
    宛先ユニットにより受信される前記第1及び第2のトラ
    ンザクションの処理順序を制御するステップを含む、請
    求項22記載の方法。
  25. 【請求項25】前記受信するステップが、第1のソース
    ・ユニットから前記第1のトランザクションを受信し、
    第2のソース・ユニットから前記第2のトランザクショ
    ンを受信するステップを含み、前記優先させるステップ
    が、共通のインタフェースを介する前記第1及び第2の
    トランザクションの伝送順序を制御するステップを含
    む、請求項22記載の方法。
  26. 【請求項26】前記ソース・ユニット及び宛先ユニット
    が互いに共用メモリ・システム内で接続され、前記第1
    及び第2のトランザクションが、前記共用メモリ・シス
    テム内でコヒーレンスを維持するために使用されるコヒ
    ーレンス・トランザクションである、請求項22記載の
    方法。
  27. 【請求項27】前記優先させるステップが、前記第1の
    トランザクションが変更トランザクションか非変更トラ
    ンザクションかを判断するステップを含む、請求項26
    記載の方法。
  28. 【請求項28】前記優先させるステップが、公正さが満
    足されるか否かを判断するステップを含む、請求項22
    記載の方法。
  29. 【請求項29】前記ソース・ユニット及び宛先ユニット
    の各々が、プロセッサ、メモリ制御装置、バス制御装
    置、バス・アービタ、キャッシュ、キャッシュ制御装
    置、キャッシュ・ディレクトリ、遷移キャッシュ、スヌ
    ープ応答論理、ネットワーク制御装置、主メモリ、完全
    アソシアティブ・バッファ及びセット・アソシアティブ
    ・バッファを含むグループから選択される、請求項22
    記載の方法。
  30. 【請求項30】共用メモリ・システムにおいて発行され
    るトランザクションをスケジュールする方法であって、 a)複数のソース・ユニットの少なくとも1つからトラ
    ンザクションを受信するステップと、 b)複数の宛先ユニットの少なくとも1つにおいて、少
    なくとも1つの変更トランザクションの処理を、非変更
    トランザクションの処理よりも優先させるステップとを
    含む、方法。
JP11340733A 1999-01-05 1999-11-30 状態ベースのトランザクション・スケジューリングを有する回路及び方法 Pending JP2000231536A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/225,883 US6425060B1 (en) 1999-01-05 1999-01-05 Circuit arrangement and method with state-based transaction scheduling
US09/225883 1999-01-05

Publications (1)

Publication Number Publication Date
JP2000231536A true JP2000231536A (ja) 2000-08-22

Family

ID=22846664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11340733A Pending JP2000231536A (ja) 1999-01-05 1999-11-30 状態ベースのトランザクション・スケジューリングを有する回路及び方法

Country Status (4)

Country Link
US (1) US6425060B1 (ja)
JP (1) JP2000231536A (ja)
TW (1) TW449724B (ja)
WO (1) WO2000041076A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002159449A (ja) * 2000-11-28 2002-06-04 Toshiba Medical System Co Ltd 医用検査装置
JP2008515055A (ja) * 2004-09-30 2008-05-08 インテル・コーポレーション トランザクショナルなメモリアクセスのハイブリッドハードウェア・ソフトウェア実現のための方法及び装置

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278290A (ja) * 1999-03-29 2000-10-06 Matsushita Electric Ind Co Ltd ネットワーク管理システム
US7529799B2 (en) * 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US7406554B1 (en) 2000-07-20 2008-07-29 Silicon Graphics, Inc. Queue circuit and method for memory arbitration employing same
US6816947B1 (en) * 2000-07-20 2004-11-09 Silicon Graphics, Inc. System and method for memory arbitration
US7069391B1 (en) * 2000-08-30 2006-06-27 Unisys Corporation Method for improved first level cache coherency
US8671460B1 (en) * 2000-09-25 2014-03-11 Fisher-Rosemount Systems, Inc. Operator lock-out in batch process control systems
US6842830B2 (en) * 2001-03-31 2005-01-11 Intel Corporation Mechanism for handling explicit writeback in a cache coherent multi-node architecture
US7287649B2 (en) * 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
GB2376390B (en) * 2001-06-05 2003-08-06 3Com Corp Asic system architecture including data aggregation technique
US7394823B2 (en) 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
US7206879B2 (en) 2001-11-20 2007-04-17 Broadcom Corporation Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US7100001B2 (en) * 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US6965973B2 (en) 2002-05-15 2005-11-15 Broadcom Corporation Remote line directory which covers subset of shareable CC-NUMA memory space
US7003631B2 (en) 2002-05-15 2006-02-21 Broadcom Corporation System having address-based intranode coherency and data-based internode coherency
US7266587B2 (en) 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US6993631B2 (en) 2002-05-15 2006-01-31 Broadcom Corporation L2 cache maintaining local ownership of remote coherency blocks
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
US20040153611A1 (en) * 2003-02-04 2004-08-05 Sujat Jamil Methods and apparatus for detecting an address conflict
US20040267919A1 (en) * 2003-06-30 2004-12-30 International Business Machines Corporation Method and system for providing server management peripheral caching using a shared bus
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7089381B2 (en) * 2003-09-24 2006-08-08 Aristos Logic Corporation Multiple storage element command queues
US7366851B2 (en) * 2004-08-19 2008-04-29 International Business Machines Corporation Processor, method, and data processing system employing a variable store gather window
US20060070042A1 (en) * 2004-09-24 2006-03-30 Muratori Richard D Automatic clocking in shared-memory co-simulation
US7760625B2 (en) * 2004-10-14 2010-07-20 Tokyo Denki University Exchange node and exchange node control method
US7885958B2 (en) * 2006-02-27 2011-02-08 International Business Machines Corporation Method, apparatus and computer program product for organizing hierarchical information
EP2133797B1 (en) * 2007-02-28 2012-04-11 NEC Corporation Dma transfer device and method
US7983890B2 (en) * 2007-06-18 2011-07-19 Massachusetts Institute Of Technology Method and apparatus performing automatic mapping for a multi-processor system
US8719506B2 (en) 2011-11-21 2014-05-06 Apple Inc. Push mechanism for quality of service (QoS) support in coherency port
US10152711B2 (en) 2012-07-31 2018-12-11 Worldpay, Llc Systems and methods for arbitraged enhanced payment processing
US9135174B2 (en) * 2012-11-27 2015-09-15 International Business Machines Corporation Coherent attached processor proxy supporting master parking
US9069674B2 (en) 2012-11-27 2015-06-30 International Business Machines Corporation Coherent proxy for attached processor
US9442852B2 (en) 2012-11-27 2016-09-13 International Business Machines Corporation Programmable coherent proxy for attached processor
US9053058B2 (en) 2012-12-20 2015-06-09 Apple Inc. QoS inband upgrade
US8938587B2 (en) 2013-01-11 2015-01-20 International Business Machines Corporation Data recovery for coherent attached processor proxy
US9021211B2 (en) 2013-01-11 2015-04-28 International Business Machines Corporation Epoch-based recovery for coherent attached processor proxy
US8990513B2 (en) 2013-01-11 2015-03-24 International Business Machines Corporation Accelerated recovery for snooped addresses in a coherent attached processor proxy
US9606922B2 (en) 2013-03-01 2017-03-28 International Business Machines Corporation Selection of post-request action based on combined response and input from the request source
US9999398B2 (en) 2013-09-04 2018-06-19 Roche Diabetes Care, Inc. Presenting data generated by a continuous glucose monitor
US10387314B2 (en) * 2015-08-25 2019-08-20 Oracle International Corporation Reducing cache coherence directory bandwidth by aggregating victimization requests
US10073629B2 (en) * 2016-12-13 2018-09-11 International Business Machines Corporation Memory transaction prioritization
US11119926B2 (en) * 2017-12-18 2021-09-14 Advanced Micro Devices, Inc. Region based directory scheme to adapt to large cache sizes
JP7013294B2 (ja) * 2018-03-19 2022-01-31 キオクシア株式会社 メモリシステム
US10705959B2 (en) 2018-08-31 2020-07-07 Advanced Micro Devices, Inc. Region based split-directory scheme to adapt to large cache sizes
US10922237B2 (en) * 2018-09-12 2021-02-16 Advanced Micro Devices, Inc. Accelerating accesses to private regions in a region-based cache directory scheme
US11995007B1 (en) * 2022-11-18 2024-05-28 Silicon Laboratories Inc. Multi-port, multi-protocol varied size RAM controller

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55147744A (en) * 1979-05-07 1980-11-17 Hitachi Ltd Memory controlling unit
JPS59154548A (ja) * 1983-02-22 1984-09-03 Hitachi Ltd 記憶制御方式
JPH06501123A (ja) * 1991-07-08 1994-01-27 セイコーエプソン株式会社 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ
JPH07319753A (ja) * 1994-05-23 1995-12-08 Nec Corp バスサイクルのマルチプレクス方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155843A (en) * 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US5881303A (en) 1996-07-01 1999-03-09 Sun Microsystems, Inc. Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode
US6000012A (en) * 1996-12-09 1999-12-07 International Business Machines Corporation Method and apparatus for prioritizing and routing commands from a command source to a command sink
US5930819A (en) * 1997-06-25 1999-07-27 Sun Microsystems, Inc. Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55147744A (en) * 1979-05-07 1980-11-17 Hitachi Ltd Memory controlling unit
JPS59154548A (ja) * 1983-02-22 1984-09-03 Hitachi Ltd 記憶制御方式
JPH06501123A (ja) * 1991-07-08 1994-01-27 セイコーエプソン株式会社 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ
JPH07319753A (ja) * 1994-05-23 1995-12-08 Nec Corp バスサイクルのマルチプレクス方式

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002159449A (ja) * 2000-11-28 2002-06-04 Toshiba Medical System Co Ltd 医用検査装置
JP2008515055A (ja) * 2004-09-30 2008-05-08 インテル・コーポレーション トランザクショナルなメモリアクセスのハイブリッドハードウェア・ソフトウェア実現のための方法及び装置
JP4774056B2 (ja) * 2004-09-30 2011-09-14 インテル・コーポレーション トランザクショナルなメモリアクセスのハイブリッドハードウェア・ソフトウェア実現のための方法及び装置
US10102123B2 (en) 2004-09-30 2018-10-16 Intel Corporation Hybrid hardware and software implementation of transactional memory access
US10180903B2 (en) 2004-09-30 2019-01-15 Intel Corporation Hybrid hardware and software implementation of transactional memory access
US10268579B2 (en) 2004-09-30 2019-04-23 Intel Corporation Hybrid hardware and software implementation of transactional memory access

Also Published As

Publication number Publication date
US6425060B1 (en) 2002-07-23
TW449724B (en) 2001-08-11
US20020038407A1 (en) 2002-03-28
WO2000041076A3 (en) 2000-11-23
WO2000041076A2 (en) 2000-07-13

Similar Documents

Publication Publication Date Title
JP2000231536A (ja) 状態ベースのトランザクション・スケジューリングを有する回路及び方法
US7047374B2 (en) Memory read/write reordering
US8407432B2 (en) Cache coherency sequencing implementation and adaptive LLC access priority control for CMP
US8521982B2 (en) Load request scheduling in a cache hierarchy
US6279084B1 (en) Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
US6249520B1 (en) High-performance non-blocking switch with multiple channel ordering constraints
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
EP0817071B1 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
JP3900481B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システムを操作する方法、メモリ制御装置、メモリ・システム、該メモリ・システムを含むノード及びnumaコンピュータ・システム
US7890708B2 (en) Prioritization of out-of-order data transfers on shared data bus
KR100404608B1 (ko) 대칭형 멀티프로세서용 버스식 캐시-코히런스 프로토콜을지원하기 위해 분산 시스템 구조를 이용하는 방법 및 장치
US7243194B2 (en) Method to preserve ordering of read and write operations in a DMA system by delaying read access
US20020146022A1 (en) Credit-based flow control technique in a modular multiprocessor system
JPH09114736A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ
US6351791B1 (en) Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
US12001351B2 (en) Multiple-requestor memory access pipeline and arbiter
KR100387541B1 (ko) 멀티프로세서 시스템에서 캐쉬 코히어런시 유지 방법, 멀티프로세서 시스템 및 노드 제어기
US8015364B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
CA2924881A1 (en) Computing architecture with peripherals
Strauss et al. Flexible snooping: Adaptive forwarding and filtering of snoops in embedded-ring multiprocessors
US8135910B2 (en) Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
WO2020243067A1 (en) Memory pipeline control in a hierarchical memory system
US11016913B1 (en) Inter cluster snoop latency reduction
US6467032B1 (en) Controlled reissue delay of memory requests to reduce shared memory address contention
US20090006777A1 (en) Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031203

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20031218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20031218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040630

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040708