JP2002519785A - マルチプロセッサコンピュータシステムのための分割ディレクトリベースのキャッシュコヒーレンシ技術 - Google Patents

マルチプロセッサコンピュータシステムのための分割ディレクトリベースのキャッシュコヒーレンシ技術

Info

Publication number
JP2002519785A
JP2002519785A JP2000557196A JP2000557196A JP2002519785A JP 2002519785 A JP2002519785 A JP 2002519785A JP 2000557196 A JP2000557196 A JP 2000557196A JP 2000557196 A JP2000557196 A JP 2000557196A JP 2002519785 A JP2002519785 A JP 2002519785A
Authority
JP
Japan
Prior art keywords
memory
computer system
processors
coherency
cache
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.)
Withdrawn
Application number
JP2000557196A
Other languages
English (en)
Other versions
JP2002519785A5 (ja
Inventor
バートニ,ジョナサン・エル
バートン,リー・エイ
Original Assignee
エス・アール・シィ・コンピューターズ・インコーポレイテッド
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 エス・アール・シィ・コンピューターズ・インコーポレイテッド filed Critical エス・アール・シィ・コンピューターズ・インコーポレイテッド
Publication of JP2002519785A publication Critical patent/JP2002519785A/ja
Publication of JP2002519785A5 publication Critical patent/JP2002519785A5/ja
Withdrawn 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
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers

Abstract

(57)【要約】 分割ディレクトリベースのキャッシュコヒーレンシ技術はメモリ内の2次ディレクトリを利用してマルチプロセッサコンピュータシステム(60)内の2つ以上のプロセッサ(16)キャッシュがメモリ(50)の同じラインを含むときを表示するために用いられるビットマスクを実現し、これによりコヒーレンシ動作を実行するために必要とされる検索およびコヒーレンシシステムをサポートするために必要なメモリ(50)の全体的なサイズを低減する。この技術は、メモリのライン(104)へのコヒーレンシタグ(106)の付加を含み、これにより各プロセッサ(16)キャッシュ(102)を読出してメモリのライン(104)がキャッシュ(102)に含まれるかどうかを見る必要なしにその状態を追跡することが可能になる。この態様では、比較的短いキャッシュコヒーレンシコマンドのみが、主データ経路バスによる代わりに(セブリングリングを含み得る)通信ネットワーク(68)により伝送される必要があり、このため主バスがキャッシュコヒーレンシデータ伝送によって減速されることがなくなり、一方で他のキャッシュコヒーレンシ技術に特有の帯域幅限界を除去する。開示される技術をさらに拡張してマルチプロセッサ同期化のための要件と互換性のあるバスベースのシステムのバスロック能力を組込んでもよい。

Description

【発明の詳細な説明】
【0001】
【関連の特許出願との相互参照】
この発明は、「メモリサブシステムに複数個のメモリアルゴリズムプロセッサ
を組込むマルチプロセッサコンピュータアーキテクチャ」(“Multiprocessor C
omputer Architecture Incorporating a Plurality of Memory Algorithm Proce
ssors in the Memory Subsystem”)と題する1997年12月17日出願の連
続番号第08/992,763号と、「マルチプロセッシングコンピュータシス
テムのためのスケーラブル単一システム画像オペレーティングソフトウェアアー
キテクチャ」(“Scalable Single System Image Operating Software Architec
ture for a Multi-Processing Computer System”)と題する1998年1月2
0日出願の連続番号第09/008,871号と、「共有メモリ資源を有するマ
ルチプロセッサコンピュータシステムにおける動的優先権競合解決のためのシス
テムおよび方法」(“System and Method for Dynamic Priority Conflict Reso
lution in a Multi-Processor Computer System Having Shared Memory Resourc
es”)と題する1998年2月3日出願の連続番号第09/018,032号と
であって、そのすべてがこの発明の譲受人であるコロラド州コロラドスプリング
のエス・アール・シィ・コンピューターズ・インコーポレイテッド(SRC Com
puters, Inc.)に譲渡された米国特許出願に開示された主題に関し、それらの開
示はこの引用により特にここに援用される。
【0002】
【発明の背景】
この発明は、一般的には、マルチプロセッサコンピュータシステムの分野に関
する。特定的には、この発明は、マルチプロセッサコンピュータシステムのため
の分割ディレクトリベースのキャッシュコヒーレンシ技術に関する。
【0003】 低コストの高性能マイクロプロセッサの到来は、大規模なマルチプロセッサコ
ンピュータを実現可能にした。一般的には、これらのマイクロプロセッサは、キ
ャッシュ指向である;すなわち、それらは、頻繁に用いられるメモリデータのア
クセスレイテンシおよび帯域幅を改良するために、プロセッサの近傍の高速記憶
装置に主メモリの内容のサブセットを維持する。このローカルメモリは、あるプ
ロセッサがそのローカルキャッシュを変更することによってメモリの一要素を変
更したにもかかわらずその後その変更がそのメモリを共有するすべてのプロセッ
サに伝搬されなければ、整合性が保たれなくなる可能性がある。そのようなキャ
ッシュの正確な構造は、システム設計によって大きく異なる。
【0004】 このキャッシュの問題は、「共有メモリ」および「区分メモリ」としてしばし
ば知られる2つの基本的アーキテクチャを導いた。共有メモリシステムでは、ア
ルゴリズムを用いて共有データの整合性を維持する。典型的には、商業的に成功
したシステムでは、整合性はハードウェアによって実現され、ソフトウェアには
見えない。そのようなシステムは、「キャッシュコンシステント」と呼ばれ、製
造されるほぼすべてのマルチプロセッサコンピュータシステムの基礎となってい
る。他方で、区分メモリ方式は、メモリの共有を全く認めないか、またはごく少
数のプロセッサによってのみ共有を認め、これにより問題を大きく簡素化する。
そのようなコンピュータシステムでは、ネットワークでコンピュータシステムの
群を接続し、システム上で稼動するアプリケーションソフトウェアに大抵は見え
るようにされているメッセージ転送パラダイムを用いることによって、より大き
な構成が作り出される。
【0005】 キャッシュコヒーレントシステムの開発は、いくつかの基本的設計課題をもた
らした。大規模なシステムでは、データ伝送および速度の限界が、キャッシュコ
ヒーレンシをうまく達成することを困難にしている。通信チャネルをわたって伝
送されるコヒーレンシ操作は、従来、低帯域幅によって制限され、このため全体
のシステム速度を低減してきた。多数のプロセッサを含む大規模システムは、正
確かつ高速のキャッシュコヒーレンシ実現を必要とする。
【0006】 これを考慮して、プロセッサ間でメモリの整合性あるビューを維持するために
はいくつかの基本的問題を解決しなければならない。まず、プロセッサは、プロ
セッサにメモリ内容の読出または変更の許可を与える調停プロトコルに従わなけ
ればならない。この機能を実行するために、コヒーレンシプロトコルは、原子ユ
ニットとして扱われる固定の「ライン」(典型的には32バイト、64バイトま
たは128バイトのサイズのメモリのサブセクション)にメモリを分割する。典
型的には、各ラインは、書込を可能にする「排他的モード」で単一のプロセッサ
に割当てられるか、「読出専用モード」で1つ以上のプロセッサに割当てられる
か、またはそのラインは現在キャッシュされていないかのどれかである。プロセ
ッサは、ラインをメモリからロードする際、排他的または読出専用モードでライ
ンを要求する必要がある。これをサポートするために、ラインの状態が分析され
る間、キャッシュはメモリサブシステムが要求の完了を遅延させることを許容し
なければならず、この操作はプロセッサキャッシュ上でシステムがその操作の完
了を待っている間に行われる。
【0007】 必要なときにあるプロセッサから別のプロセッサへラインを転送するプロセス
は、多くの方法で行うことができる。これらの方式の1つは、「無効化ベース」
と言われ、既存のマルチプロセッサコンピュータシステムに最も頻繁に用いられ
る技術である。そのようなシステムでは、あるラインの内容が変更されるときに
は、それらラインは他のプロセッサのキャッシュから除去される。別の方式は、
あるラインが変更されるときそのラインを含むすべてのキャッシュを更新するこ
ととする。
【0008】 キャッシュコヒーレンシを与える最もよくある方法は、「スヌーピーバス」方
式の使用によるものである。そのようなシステムでは、それらはすべて通常1つ
または2つの少数のバスにより行なわれるので、すべてのプロセッサがすべての
メモリトランザクションを監視することができる。この方式は、バスがメモリか
らプロセッサへの、必要とされるデータ帯域幅を供給することができないために
、大規模のシステムでは使用不可能である。
【0009】 そのような場合には、「ディレクトリ」方式が最もよく用いられる。そのよう
なシステムは、データベースを用いてラインが割当てられているプロセッサを記
録する。メモリ上のトランザクションは、ディレクトリを調べてどのようなコヒ
ーレンシ操作が問題のラインの割当に必要とされるかを決定することを必要とす
る。ディレクトリを保つ方法はさまざまである。
【0010】 多くの方式がディレクトリの内容を記録するために提案されてきた。ほとんど
が、ディレクトリ照会がなされるときに時間的に高くつく検索を必要とするか、
またはラインを含むキャッシュの正確な組がディレクトリハードウェアに記録す
るには大きすぎるときにはブロードキャスティングを用いる。この文脈では、「
ブロードキャスティング」とは、システム内のすべてのプロセッサにメッセージ
を送信することを意味するものであって、しばしば、この方式の通信をサポート
する特別なハードウェア的特徴を用いる。ブロードキャスティングに伴う困難は
、スイッチベースのネットワークは容易にそのような操作をサポートせず、その
キャッシュ内容に関連しない要求ではプロセッサに割込みをかけるコストが高く
なり得ることである。
【0011】 更新されるべきラインを無効にするためには、ラインを含むすべてのキャッシ
ュに、接触しなければならず、これはどのプロセッサに接触するべきかについて
の決定を必要とする。ラインを割当てたプロセッサのリストが一旦ディレクトリ
から作られると、各プロセッサには、キャッシュからラインを除去しかつメモリ
へいかなる変更も送信するようそれに指示するメッセージが送信されなければな
らない。この操作は、マイクロプロセッサキャッシュハードウェアによってサポ
ートされなければならない。
【0012】
【発明の概要】
共有メモリ資源のキャッシュコヒーレントビューをプロセッサに与えるために
、マルチプロセッサコンピュータシステム内のプロセッサのすべてが、有用な予
め定義された順序ですべてのメモリ変更を見なければならない。以下により詳細
に記載される好ましい実施例に開示されるマイクロプロセッサのクラス(たとえ
ば、カリフォルニア州サンタクララのインテル社(Intel Corporation)によっ
て開発されたDeschutesTMマイクロプロセッサ)については、コヒーレンシモデ
ルは「総合記憶順序」と呼ばれる。これは、所与のプロセッサによってなされた
すべてのメモリ変更が、その特定のプロセッサによってそれらがなされた順序で
見え、システム内のすべてのプロセッサにその順序で見えるということを意味す
る。同様に、読出動作は、競合する書込動作と交わらない。
【0013】 しかし、ここに開示されるキャッシュコヒーレンシ技術は、この特定のコヒー
レンシモデルに限定されるものではなく、実際には、キャッシュ通信ネットワー
クでのプロセッサへのメモリへの接続によりすべての現在のモデルをサポートす
ることができる。
【0014】 しかしながら、プロセッサはそのようなシステム内のすべてのトランザクショ
ンを見ることができないので、この発明は、あまり複雑でないディレクトリルッ
クアップを備える妥当なコストの完全なディレクトリを含むことを企図する。所
望であれば、この方式を拡張して所与の用途のために何らかのブロードキャステ
ィングを伴うさらに小さいディレクトリを可能にすることができる。
【0015】 コヒーレンシを与えるために、この発明の技術は、ディレクトリの一部を保持
するようメモリの各ラインに関連付けられるさらなるデータ記憶装置(「コヒー
レンシタグ」)を必要とする。加えて、2次ディレクトリ領域が各メモリコント
ローラのために用いられる。この2次ディレクトリは、広く共有されるラインの
ために用いられるエントリからなる。開示される実施例では、そのようなエント
リの各々がシステム上のあらゆるプロセッサについて1ビットを含み、このビッ
トがそのプロセッサが問題のラインを保持しているかどうかを示すことが想定さ
れる。ビットマスクに加えて、ある用途では、マスク内でセットされたビットの
数のカウントを維持することが所望されるかもしれない。
【0016】 ここに開示されるのは、メモリ内の2次ディレクトリを利用して、マルチプロ
セッサコンピュータシステム内の2つ以上のプロセッサキャッシュがメモリの同
じラインを含むときを表示するために用いられるビットマスクを実現する分割デ
ィレクトリベースのキャッシュコヒーレンシ技術である。この技術はそれにより
、コヒーレンシ操作を行なうために必要とされる検索の複雑さと、コヒーレンシ
システムをサポートするために必要なメモリの全体的なサイズを低減する。この
技術は、メモリのラインへの「コヒーレンシタグ」の付加を含み、このためその
状態を、各プロセッサのキャッシュを読出してメモリのラインがそのキャッシュ
内に含まれるかどうかを見る必要なしに、追跡することができる。開示される技
術は、マルチプロセッサ同期化のための要件と互換性のあるバスベースのシステ
ムの「バスロック」能力を組込むようさらに拡張されてもよい。
【0017】 ここに特に開示されるのは、各々が関連付けられたデータキャッシュを有する
複数個のプロセッサを含むマルチプロセッサコンピュータシステムである。この
システムはさらに、主メモリと、主メモリと複数個のプロセッサを双方向に結合
してその間のデータの通信を可能にする通信ネットワークとを含む。主メモリは
、少なくとも1つの、複数のエントリを有するディレクトリを含み、エントリの
各々は、コンピュータシステム内の複数個のプロセッサの各々に対するビットロ
ケーションを含む。
【0018】 ここにさらに開示されるのは、主メモリを含み、複数個のプロセッサの各々が
関連付けられたデータキャッシュを有するマルチプロセッサコンピュータシステ
ムにおいてキャッシュコヒーレンシを維持するための方法である。この方法は、
主メモリに複数個のプロセッサを結合する通信ネットワークを設けるステップと
、主メモリ内に少なくとも1つの、複数のエントリを有するディレクトリを設け
るステップと、コンピュータシステムの複数個のプロセッサの各々についてディ
レクトリ内のビットロケーションを指定するステップとを含む。
【0019】 添付の図面と関連付けて好ましい実施例の以下の記載を参照することによって
、この発明の前述および他の特徴および目的ならびにそれらを獲得する態様は、
より明らかとなり、この発明自体が最もよく理解されるであろう。
【0020】
【好ましい実施例の説明】
ここで図1Aを参照すると、この発明の分割ディレクトリベースのキャッシュ
コヒーレンシ技術の可能性ある実現のための代表的コンピュータシステム60ア
ーキテクチャが示される。なお、開示されるキャッシュコヒーレンシ技術は究極
的には、さまざまなシステム要素間の通信がいかに実現されるかに依存するもの
ではないので、例示される代表的な実施例に示される相互接続は、さまざまな代
替の実現化例で設けられてもよい。
【0021】 図示の特定のコンピュータシステム60は、以下により詳細に記載するように
、単一または複数の通信資源を含む通信ネットワーク68を介して、(共有メモ
リ資源またはシステム主メモリを含む)複数個のメモリバンク500から50N
相互接続される複数個のプロセッサ160から16Nを含む。プロセッサ160
ら16Nはまた、先の図2に関して記載され示されるように複数のメモリスイッ
チ520から52N、プロセッサスイッチ540から54Nおよび相互接続するトラ
ンクライン140から14Nを含む相互接続スイッチ70によってメモリバンク5
0から50Nに相互接続される。各メモリバンク500から50Nは、データ部分
640から64Nに対応するコヒーレンシ情報を含む部分620から62Nならびに
2次ディレクトリ660から66Nをそれぞれ含む。
【0022】 単に例として、仮定のコンピュータシステム60は、グローバルな主メモリま
たは共有メモリ資源を形成するためにラインレベルでインターリーブされた16
個のメモリバンク(またはユニット)500から5015および16個のプロセッ
サ160から1615を含んでもよい。なお、ここに開示されるキャッシュコヒー
レンシ技術は、任意の数のプロセッサおよび任意のサイズの任意の数のメモリユ
ニットに適用可能である。例示のコンピュータシステム60の各プロセッサ16
に関連付けられるキャッシュは、4ウェイセットアソシアティブの態様で409
6個のラインを含むものとしてモデル化されている。したがって、各メモリユニ
ット50は1/16のグローバルメモリに対応付けられるので、各メモリユニッ
ト50は、任意の所与の時点でいずれか1つのプロセッサ16キャッシュに存在
する多くとも256個のラインを有することが可能である。コンピュータシステ
ム60に16個のプロセッサ16があるとすると、各メモリユニット50に対す
るディレクトリ66は、4096個のプロセッサ−ライン対を超える必要がない
【0023】 さらに図1Bを参照すると、キャッシュ通信ネットワーク681がセブリング
リング相互接続を用いて実現されている別の例示のコンピュータシステム80ア
ーキテクチャが示される。図3について先に記載されたものに対応する構造は同
様に番号付けされ、これらに対してはその前にした説明で十分であろう。
【0024】 キャッシュ通信ネットワーク681は、キャッシュコヒーレンシコマンドがメ
モリ50とプロセッサ16との間で伝送可能であるような媒体を与える。設計さ
れるようなリングを用いることによって、主データパスを介する共有読出は遅延
されない。これは、キャッシュコヒーレンシチェックを伴わない場合と同様のシ
ステム性能を与える。このリングはまた、伝送されるべきキャッシュコヒーレン
シコマンドについての高データ帯域幅を与える。
【0025】 コンピュータシステム80では、キャッシュ通信ネットワーク681は、プロ
セッサ16とメモリ50との間でキャッシュコヒーレンシコマンドを伝送し、プ
ロセッサ16とメモリ50との間のデータ転送は、相互接続スイッチ70を用い
て伝送される。セブリングリング相互接続を利用するコンピュータシステム80
は、優れた帯域幅、スケーラビリティ、使用の容易さ、および比較的低いコスト
実現という点でかなりの利益をもたらす。
【0026】 ここでさらに図2を参照すると、先の図のマルチプロセッサコンピュータシス
テムの一部100が示され、2つのプロセッサキャッシュがメモリデータの同じ
ラインを含むような状況におけるこの発明のキャッシュコヒーレンシ技術を例示
する。図示のとおり、例示される2つのプロセッサ161、162の各々は、関連
付けられたキャッシュ1021および1022を含み、その各々が同じメモリライ
ン(「ラインA」)104を含む。この同じメモリライン104は、コンピュー
タシステム主メモリ50内にも維持され、それとともに関連付けられたコヒーレ
ンシタグ106を有する。メモリ50はまた、対応するカウント110を備える
、図示の例示の実現化例では2048個の16ビットのエントリを含む2次ディ
レクトリ108を含む。
【0027】 各メモリライン104のコヒーレンシタグ106は、長さが12ビットであっ
て、第1のビット(またはいずれか他のビット)が「フラグ」を構成し、残りの
ビットが2次ディレクトリ108の特定のエントリのポインタとしての役割を果
たしてもよい。2次ディレクトリ108は、記載される例では16個の、コンピ
ュータシステムのためのプロセッサ16の最大数と同じ幅である。
【0028】 動作時に、メモリ50内の各ラインに関係付けられるのは、この発明のキャッ
シュコヒーレンシ技術の実現のために用いられる「コヒーレンシタグ」106と
呼ばれる12ビットの付加的記憶装置である。フラグ(この例では、ビット1)
がセットされている場合、2つのプロセッサキャッシュ102は、同じメモリラ
イン104(ラインA)を含み、したがってライン104は「読出専用モード」
で割当てられている。この場合にはコヒーレンシタグ106の下位11ビットは
、2次ディレクトリ108のエントリを指す。
【0029】 2次ディレクトリ108内のマスク内のセットされたビットの各々は、メモリ
ライン104を保持するプロセッサ16に対応する。したがって、各2次ディレ
クトリ108のエントリは、16ビット(この例では各プロセッサ16について
1ビット)を含む。そのようなエントリは、少なくとも2つのプロセッサ16が
ライン104を保持するときにのみ必要とされるので、2次ディレクトリ108
が含む必要があるのは2048エントリのみである。
【0030】 加えて、ライン104を保持するセットされたプロセッサ16の数のカウント
110を設けてもよい。このカウント110は、2次ディレクトリ108に並列
のアレイに保持されてもよく、または代替的に、空間が利用可能であれば、カウ
ントはコヒーレンシタグ106内に保持可能である。
【0031】 ここでさらに図3を参照すると、図2のマルチプロセッサコンピュータシステ
ムの対応する部分120が示され、単一のプロセッサ16キャッシュ1021
みがメモリデータの所与のメモリライン104(ラインA)を含み、たとえばキ
ャッシュ1022がラインAを含まないような状況を例示する。この図では、図
5について先に記載され示されたものと同様の構造は同様に番号付けされ、これ
に対してはその前にした説明で十分であろう。
【0032】 この例では、コヒーレンシタグ106は、ビット1「フラグ」位置に「0」を
含み、ビット2位置およびビット3位置の両方に「1」を含む。ビット2位置内
の「1」は、メモリラインがプロセッサ16キャッシュ102の1つに保持され
ているかどうかを示すために使用可能であり、ビット3位置内の「1」は、ライ
ンが「読出専用」または「排他的」モードのいずれかにあるかどうかを示す。ビ
ット4およびビット5は、「バスロック」および「ビジーフラグ」表示に対応し
得る。メモリライン104が単一のキャッシュ102にのみ保持されるならばビ
ット6から8は使用されず、ビット9から12は、メモリライン104を含む単
一のプロセッサ16、この例示の例ではプロセッサ161(ビット9〜12=“
0001”)を特定する。
【0033】 この例示では、フラグ(すなわち、第1のビット)がセットされていない場合
には、第2のビットが、ライン104が正確に1つのキャッシュ102に保持さ
れているかどうかを示す。ラインがキャッシュ102に保持されているならば、
第3のビットを使用してラインがプロセッサ16によって「読出専用」または「
排他的」モードで保持されているかどうかを特定する。他の4ビットは、ライン
104を保持するプロセッサ16を特定するために用いられる。したがって、ラ
イン104の状態は、コヒーレンシタグ106および2次ディレクトリ108を
用いて完全に表わすことができ、コヒーレンシタグ106のルックアップおよび
おそらく2次ディレクトリ108エントリ以外は、いかなる検索もする必要がな
い。
【0034】 例示され記載されるこの発明の実施例では、コヒーレンシタグは以下のタプル
である: <sde,active,exclusive,procid,addr> ただし、sdeフラグは、アクティブ2次ディレクトリエントリが使用中であ
ることを示し、 activeは、ラインがあるキャッシュ内でアクティブであることを示し、 exclusiveは、ラインの所有権状態を示すブーリアンであり、 procidは、ラインを保持する単一のプロセッサを特定し、 addrは、もし割当てられているならば、2次ディレクトリエントリのアド
レスを特定する。
【0035】 この発明のキャッシュコヒーレンシ技術の特定の実現化例が詳細に示され記載
されたが、この情報を記憶しかつ再編成する多くの方法が代わりに利用されても
よい。しかしながら、いかなる合理的な実現化例でも、コヒーレンシタグ106
は、大きなシステムの場合にはディレクトリエントリ全体よりも遥かに小さい。
このコヒーレンシタグ106は、もし必要とされるならばディレクトリエントリ
を指すために使用可能であり、メモリライン104が多くても1つのキャッシュ
102に割当てられる場合、全コヒーレンシ情報のために使用可能である。加え
て、以下により詳細に記載するように、ライン104が遷移状態にあるかまたは
多くても1つのキャッシュ102に保持されるとき、他の情報をコヒーレンシタ
グ106に記憶することができる。
【0036】 あるプロセッサ16が2つ以上のプロセッサ16によって共有されるメモリラ
イン104への排他的アクセスを要求するトランザクション、および無効化操作
を要求する他のトランザクションにおいては、コヒーレンシタグ106を拡張す
ることが有用だろう。この場合には、要求されるデータは、相互接続スイッチ7
0(図3および図4)を介して、即座に戻されることが可能であるが、プロセッ
サ16は、メモリライン104がメモリライン104を保持するすべてのキャッ
シュ102から除去されるまで処理を妨げられなければならない。上述したよう
なコヒーレンシタグ106は、ビジーフラグ(すなわちビット5)で増強可能で
あり、このため、処理されるラインのリストとの比較を要求せずに、ライン10
4のいかなる要求にも待つように言うことができる。無効化がすべて受取られる
と、新しいコヒーレンシタグ106が書込可能になり、メモリライン104はビ
ジー状態から離脱可能となる。
【0037】 コヒーレンシタグ106の他の使用が可能であり、かなり有利である。たとえ
ば、マルチプロセッサコンピュータシステムは、同期プリミティブを必要とする
。インテルのDeschutesTMプロセッサ16アーキテクチャは、原子的態様で読出
動作および書込動作のシーケンスを実行するためにプロセッサ16がメモリ50
への排他的アクセスを獲得することを可能にする「バスロック」能力を実現する
。大きなネットワークベースのシステムでは、そのようなロックを実現すること
は、困難で性能の犠牲が高くつくであろう。バスロック能力は主に、1つのメモ
リラインまたは2つの連続するメモリラインを読出し、テストし、次に任意で変
更するために用いられる。バスロックをシミュレートするために、コヒーレンシ
タグ106内の1ビット(すなわちビット4)が、ロックされたラインのための
「フラグ」として使用可能である。原子動作のためのラインが読出されロックさ
れると、プロセッサ16は、値をテストし、書込操作を発行し、次にロックを解
除可能である。インテルのロッキングプリミティブは多くとも2つのラインに接
する(かつこれら2つのラインは連続していなければならない)ので、「デッド
ロック」または「ライブロック」条件は実際のプログラムでは可能ではない。
【0038】 前述したように、キャッシュコヒーレンシを実行するために用いられてきた先
行技術の方式のほとんどは、大きなマルチプロセッサコンピュータシステムアー
キテクチャには役に立たない。この発明のキャッシュコヒーレンシ技術は、これ
らの限界を克服する。この発明の技術は、メモリのラインを含むプロセッサキャ
ッシュのリストを生成するディレクトリ方式を用いる。
【0039】 ここに開示されるこの発明の具体的な実施例では、総合記憶順序が所望され、
かつキャッシュコヒーレンシシステムがキャッシュ内容のモデル化を可能にする
のに十分なプロセッサの制御を提供するものと想定される。これを達成するため
の多くの他の方法が可能であり、開示される技術はそれらのすべてに適用可能で
ある。
【0040】 図4Aおよび図4Bをさらに参照すると、この発明に従う対称的マルチプロセ
ッシングコンピュータシステム10が示される。例示のコンピュータシステム1
0は、関連部分では、任意の数の相互接続されたセグメント120から1215
含むが、この発明の原理は同様に、多数のプロセッサを有するいかなるスケーラ
ブルなシステムにも適用可能である。さまざまなセグメント120から1215
、以下により詳細に記載するとおり、複数のトランクライン140から1415
介して結合される。
【0041】 セグメント12の各々は、サービスプロセッサ160から163(サービスプロ
セッサ160はマスタブートデバイスとしてさらに機能する)および計算プロセ
ッサ180から1815の形をとる複数の機能的に異なる処理要素を含む。サービ
スプロセッサ16は、複数のペリフェラル・コンポーネント・インターコネクト
(「PCI」)インターフェイスモジュール20に結合され、図示の実施例では
、各サービスプロセッサは、2つのそのようなモジュール20に結合され、サー
ビスプロセッサ16がセグメント12のI/O機能のすべてを実行することを可
能にする。
【0042】 サービスプロセッサ16はさらに、コンピュータシステム10のセグメント1
2の少なくとも1つにシステムコンソール24を結合するためのシリアルインタ
ーフェイス22を含む。システムコンソール24は、コンピュータシステム10
のユーザがコンピュータシステム10にブート情報をダウンロードし、装置を構
成し、状態を監視しかつ診断機能を実行することを可能にするよう動作する。い
くつのセグメント12がコンピュータシステム10内に構成されようとも、必要
とされるシステムコンソール24は1つのみである。
【0043】 ブートデバイス26(たとえば、ユタ州ロイのアイオメガ社(Iomega Corpora
tion)から入手可能なJAZ(登録商標)リムーバブルディスクコンピュータ大
容量記憶装置)も、PCIモジュール20の1つを介してマスタブートサービス
プロセッサ160に結合される。サービスプロセッサ161から163に結合され
るPCIモジュール20がセグメント12をたとえばディスクアレイ200から
285などのすべての他の周辺デバイスに結合するために利用されるが、そのい
ずれか1つ以上は、たとえばイーサネット(登録商標)接続と置換されてもよい
【0044】 コンピュータシステム10は、商業ベースの、ハイパフォーマンスコンピュー
ティング(「HPC」)の特異性を適合させるため幾分改良された、洗練された
ハードウェアおよびビルディングブロックを含む。ハードウェアの側では、コン
ピュータシステム10のための基本ユニットはセグメント12である。各セグメ
ント12は、計算およびサービスプロセッサ18、16エレメント、メモリ、電
源およびクロスバースイッチアセンブリを含む。コンピュータシステム10は、
エンドユーザが1から16個の相互接続されたセグメント12からなるシステム
を構成することができるという点で「スケーラブル」である。各セグメント12
は、合計20個のプロセッサ:16個の計算プロセッサ18および4個のサービ
スプロセッサ16を含む。好ましい実施例では、計算プロセッサ18は、4個の
プロセッサ(たとえば、DeschutesTMマイクロプロセッサ)および12個のイン
ターフェイスチップ(すなわち、計算プロセッサ18 1個あたり3個)を含む
別個のアセンブリ上に存在してもよい。各計算プロセッサ18は、300MHz
より大きいクロックレートの内部プロセッサおよび100MHzよりも大きいク
ロック速度のシステムを有し、インターフェイスチップは、以下により詳細に記
載され示されるようにメモリに接続するメモリスイッチと計算プロセッサ18と
の間の接続を与える。
【0045】 サービスプロセッサ16は、コンピュータシステム10についてのすべての入
力および出力に責任のあるサービスプロセッサアセンブリ上に含まれてもよい。
サービスプロセッサアセンブリの各々は、プロセッサ(計算プロセッサ18と同
じタイプ)、3個のインターフェイスチップ、128MバイトのI/Oバッファ
、および2つの双方向PCIバスを含む。各PCIバスは、単一のコネクタを有
する。すべてのI/Oポートは、プロセッサへの優先順位が等しいDMA能力を
有する。PCIモジュール20は、どのサービスプロセッサ16がそれらととも
に用いられるかに依存して、2つの目的を果たす。マスタブートサービスプロセ
ッサ160上のPCIコネクタは、ブートデバイス26に接続するために用いら
れる。シリアルポート22は、システムコンソール24に接続される。通常のサ
ービスプロセッサ161から163上のPCIモジュール20は、すべての他の周
辺装置のために用いられる。サポートされるPCIベースの相互接続のいくつか
は、スモールコンピュータシステムインターフェイス(「SCSI」)、光ファ
イバ・データ・分配・インターフェイス(「FDDI」)、ハイパフォーマンス
・パラレル・インターフェイス(「HPPI」)などを含む。各PCIバスは、
対応する商業ベースのホストアダプタを有する。
【0046】 前述の特許出願に詳細に記載されるとおり、計算機能からサービス機能を分離
することにより、多数の処理とオペレーティングシステムデューティおよび外部
周辺装置のサービスとの同時実行が可能になる。
【0047】 さらにここで図5を参照すると、図1Aおよび図1Bのコンピュータシステム
10のための相互接続ストラテジーが、16個のトランクライン140から141 5 によって相互接続される16個のセグメント120から1215を採用する実現化
例においてより詳細に示される。図示のとおり、各々が計算プロセッサ180
ら1815のそれぞれ1つに割当てられている複数のメモリバンク500から501 5 (結果としてセグメント12の1個当たり16個のメモリバンク50となり、
16個のセグメント12からなるコンピュータシステム10では合計で256個
のメモリバンク50となる)は、コンピュータシステムの一部を形成し、トラン
クライン140から1415に、同様の数のメモリスイッチ520から5215を介し
てそれぞれ結合される。メモリバンク500から5015に利用されるメモリは、
シンクロナス・スタティック・ランダム・アクセス・メモリ(「SSRAM」)
または他の好適な高速メモリデバイスであってもよい。また図示のとおり、セグ
メント120から1215の各々は、たとえば、同様の数のプロセッサスイッチ5
0から5415の対応する1つを介してトランクライン140から1415に結合さ
れる20個のプロセッサ(4個のサービスプロセッサ160から163および16
個の計算プロセッサ180から1815)を含む。
【0048】 各セグメント12は、クロスバースイッチを介してすべての他のセグメント1
2に相互接続する。コンピュータシステム10のクロスバースイッチ技術は、セ
グメント12がセグメント境界にわたって、および個々のセグメント12内で均
一なメモリアクセス回数を有することを可能にする。それはまた、コンピュータ
システム10がシステム内のメモリのすべてについて単一のメモリアクセスプロ
トコルを採用することを可能にする。クロスバースイッチは、プロセッサおよび
メモリが物理的にどこに位置していようとも、高速のフィールドプログラマブル
ゲートアレイ(「FPGA」)を利用してメモリとプロセッサとの間の相互接続
経路を与え得る。このクロスバースイッチは、あらゆるセグメント12を相互接
続し、異なったセグメント12に位置するプロセッサおよびメモリが均一のレイ
テンシで通信することを可能にする。好ましい実施例では、各クロスバースイッ
チは、再構成時間を含めて、1層当たり1クロックのレイテンシを有する。32
0個のプロセッサ16、18を利用する16個のセグメント12からなるコンピ
ュータシステム10では、必要とされるクロスバー層はたった2つである。
【0049】 前述したとおり、コンピュータシステム10は、好ましくは、それが6ナノ秒
のコンポーネントサイクル時間を呈するために、メモリバンク50のためにSS
RAMを利用してもよい。各メモリバンク50は、64から256Mバイトのメ
モリをサポートする。各計算プロセッサ18は、1つのメモリバンク50をサポ
ートし、各メモリバンク50は256ビット幅であって、32パリティビットを
加えて合計288ビット幅である。加えて、メモリバンク50のサイズをキャッ
シュラインのサイズに一致するよう設計し、1キャッシュライン全体についてバ
ンクアクセスが1回ですむようにしてもよい。アドレスパケットおよびデータパ
ケットに対するパリティチェックを完了することによって読出および書込メモリ
エラー訂正を行ってもよい。
【0050】 アドレスパケットについてのパリティチェックは、読出機能および書込機能の
両方について同じであってもよく、新しいパリティビットと古いパリティビット
とが比較され、メモリ読出または書込が続行すべきかアボートすべきかを決定す
る。メモリ「書込」が生じるとき、パリティチェックがメモリに到着したデータ
パケットの各々について行なわれてもよい。これらのデータパケットの各々は、
それに付加される8ビットのパリティコードを有する。データパケットがメモリ
に到着すると、新しい8ビットのパリティコードがデータパケットのために生成
され、古いパリティコードと新しいパリティコードとが比較される。この比較の
結果、2つのタイプのコード:単一ビット誤り(「SBE」)または2ビットま
たは複数ビット誤り(「DBE」)の1つが得られる。単一ビット誤りは、それ
がメモリに入るより前にデータパケット上で訂正可能である。2ビットまたは複
数ビット誤りの場合には、データパケットはメモリに書込まれず、プロセッサに
戻って報告され、これがデータパケット参照を再試行する。メモリ「読出」が生
じるとき、メモリから読出されたデータパケットの各々は、8ビットのパリティ
コードを生成する。このパリティコードは、データとともにプロセッサに転送さ
れる。プロセッサは、各データパケットに対して単一エラー訂正および二重エラ
ー検出(「SECDED」)を実行する。
【0051】 特定のマルチプロセッサコンピュータシステムアーキテクチャ、ディレクトリ
構造およびコヒーレンシタグ内容と関連付けてこの発明の原理が前述されたが、
前の説明は例としてのみなされたものであり、この発明の範囲を限定するもので
はないことが明らかに理解される。特定的には、前の開示の教示は、当業者には
他の変形を示唆するものであることが認められる。そのような変形は、それ自体
既に知られており、かつここに既に記載された特徴に加えてまたはそれに代えて
使用可能である他の特徴を含み得る。クレームは、特徴の特定の組合せに従って
この出願において規定されるが、この開示の範囲は、明示的もしくは非明示的に
開示されるいかなる新規の特徴もしくは特徴のいかなる新規の組合せまたはいか
なる一般化またはその変形をも含み、これは、そういったものがいずれかのクレ
ームにここでクレームされているのと同じ発明に関するかどうかにかかわらず、
それがこの発明によって対処される同じ技術的課題のいずれかまたはすべてを軽
減するかどうかにかかわらず、当業者には明らかであろう。出願人は、この出願
またはそこから派生されるいかなるさらなる出願の審査手続中にそのような特徴
および/またはそのような特徴の組合せに従って新しいクレームを規定する権利
をこれにより留保する。
【図面の簡単な説明】
【図1A】 この発明のキャッシュコヒーレンシ技術を実現する例示のマル
チプロセッサコンピュータシステムの機能ブロック図である。
【図1B】 キャッシュ通信ネットワークがセブリングリング相互接続スト
ラテジーを利用してプロセッサとメモリとの間でキャッシュコヒーレンシコマン
ドを伝送する、この発明のキャッシュコヒーレンシ技術を実現するマルチプロセ
ッサコンピュータシステムの代替の実施例の機能ブロック図である。
【図2】 2つのプロセッサキャッシュがメモリデータの同じラインを含む
、先行する図のマルチプロセッサコンピュータシステムの例示の図である。
【図3】 単一のプロセッサキャッシュがメモリデータの所与のラインを含
む、図2のマルチプロセッサコンピュータシステムのさらなる例示の図である。
【図4A】 同様の数のトランクラインによって互いに結合される1から1
6個のセグメントを含み、各セグメントがメモリおよびクロスバースイッチアセ
ンブリに加えて複数の計算プロセッサおよびサービスプロセッサを含む、この発
明の実施例に従うコンピュータシステムを例示する機能ブロックシステム外観図
である。
【図4B】 同様の数のトランクラインによって互いに結合される1から1
6個のセグメントを含み、各セグメントがメモリおよびクロスバースイッチアセ
ンブリに加えて複数の計算プロセッサおよびサービスプロセッサを含む、この発
明の実施例に従うコンピュータシステムを例示する機能ブロックシステム外観図
である。
【図5】 合計320個のプロセッサが共有メモリ資源(または主メモリ)
を含む256個のメモリバンクのいずれかにアクセスすることを可能にする、図
4Aおよび図4Bのコンピュータシステムのための相互接続ストラテジーの簡素
化された機能ブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 バートン,リー・エイ アメリカ合衆国、80814 コロラド州、デ ィバイド、セダー・マウンテン・ロード、 966 Fターム(参考) 5B005 JJ22 KK14 MM01 NN42 PP11 PP21 PP28 5B045 DD01 DD13 【要約の続き】 レンシ技術に特有の帯域幅限界を除去する。開示される 技術をさらに拡張してマルチプロセッサ同期化のための 要件と互換性のあるバスベースのシステムのバスロック 能力を組込んでもよい。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサコンピュータシステムであって、 複数個のプロセッサを含み、前記複数個のプロセッサの各々は関連付けられた
    データキャッシュを有し、さらに、 主メモリと、 前記複数個のプロセッサを前記主メモリと双方向に結合してその間のデータの
    通信を可能にする通信ネットワークとを含み、 前記主メモリはその中に複数のエントリを有する少なくとも1つのディレクト
    リを含み、前記エントリの各々は、前記コンピュータシステム内の前記複数個の
    プロセッサの各々に対するビットロケーションを含む、マルチプロセッサコンピ
    ュータシステム。
  2. 【請求項2】 前記通信ネットワークはセブリングリングを含む、請求項1
    に記載のマルチプロセッサコンピュータシステム。
  3. 【請求項3】 前記主メモリは同様の数のメモリユニットを含む、請求項1
    に記載のマルチプロセッサコンピュータシステム。
  4. 【請求項4】 前記主メモリは、各メモリラインと関連付けられる複数のビ
    ットロケーションを含むコヒーレンシタグをさらに含む、請求項1に記載のマル
    チプロセッサコンピュータシステム。
  5. 【請求項5】 前記コヒーレンシタグは、その第1の状態および第2の状態
    を有するフラグビットを含み、前記第1の状態は、前記複数個のプロセッサの前
    記関連付けられたデータキャッシュの2つが前記主メモリ内の所与のメモリライ
    ンを含むことを示す、請求項4に記載のマルチプロセッサコンピュータシステム
  6. 【請求項6】 前記コヒーレンシタグ内の前記ビットロケーションの少なく
    とも一部が、前記複数個のプロセッサの前記関連付けられたデータキャッシュの
    どれが前記所与のメモリラインを保持しているかを示す前記少なくとも1つのデ
    ィレクトリ内のロケーションを指す、請求項4に記載のマルチプロセッサコンピ
    ュータシステム。
  7. 【請求項7】 前記複数個のプロセッサの前記関連付けられたデータキャッ
    シュがのいくつが前記所与のメモリラインを保持しているかを示すカウントをさ
    らに含む、請求項6に記載のマルチプロセッサコンピュータシステム。
  8. 【請求項8】 前記フラグビットがその前記第2の状態にあるとき、前記コ
    ヒーレンシタグ内の前記ビットロケーションの一部が、前記複数個のプロセッサ
    の前記関連付けられたデータキャッシュの1つのみが前記所与のメモリラインを
    含むことを示す、請求項5に記載のマルチプロセッサコンピュータシステム。
  9. 【請求項9】 前記コヒーレンシタグは、前記所与のメモリラインが前記複
    数個のプロセッサの前記関連付けられたデータキャッシュの少なくとも1つに保
    持されているかどうかを示す少なくとも1つの前記ビットロケーションをさらに
    含む、請求項8に記載のマルチプロセッサコンピュータシステム。
  10. 【請求項10】 前記コヒーレンシタグは、前記所与のメモリラインが読出
    専用または排他的モードにあるかどうかを示す前記ビットロケーションの少なく
    とも1つをさらに含む、請求項8に記載のマルチプロセッサコンピュータシステ
    ム。
  11. 【請求項11】 前記コヒーレンシタグは、バスロック条件を示す前記ビッ
    トロケーションの少なくとも1つをさらに含む、請求項8に記載のマルチプロセ
    ッサコンピュータシステム。
  12. 【請求項12】 前記コヒーレンシタグは、ビジー条件を示す前記ビットロ
    ケーションの少なくとも1つをさらに含む、請求項8に記載のマルチプロセッサ
    コンピュータシステム。
  13. 【請求項13】 複数個のプロセッサの各々が関連付けられたデータキャッ
    シュを有する、主メモリを含むマルチプロセッサコンピュータシステムにおいて
    キャッシュコヒーレンシを維持するための方法であって、 前記複数個のプロセッサを前記主メモリに結合する通信ネットワークを設ける
    ステップと、 前記主メモリ内に少なくとも1つの、複数のエントリを有するディレクトリを
    設けるステップと、 前記コンピュータシステム内の前記複数個のプロセッサの各々について前記少
    なくとも1つのディレクトリ内のビットロケーションを指定するステップとを含
    む、方法。
  14. 【請求項14】 前記設けるステップはセブリングリングによって実行され
    る、請求項13に記載の方法。
  15. 【請求項15】 前記主メモリ内の各メモリラインにコヒーレンシタグを付
    加するステップをさらに含む、請求項13に記載の方法。
  16. 【請求項16】 前記付加するステップは、各メモリラインと関連付けられ
    る複数のビットロケーションを用いて実行される、請求項15に記載の方法。
  17. 【請求項17】 その第1の状態および第2の状態を有する前記コヒーレン
    シタグ内にフラグビットを指定するステップと、 前記フラグビットを利用して前記複数個のプロセッサと関連付けられる前記デ
    ータキャッシュの2つが前記主メモリ内の所与のメモリラインを含むことを示す
    ステップとをさらに含む、請求項15に記載の方法。
  18. 【請求項18】 前記コヒーレンシタグ内の前記ビットロケーションの少な
    くとも一部を利用して前記少なくとも1つのディレクトリ内のロケーションを指
    すステップと、 前記少なくとも1つのディレクトリ内の前記ロケーションに基づいて前記複数
    個のプロセッサの前記関連付けられたデータキャッシュのどれが前記所与のメモ
    リラインを保持するかを示すステップとをさらに含む、請求項15に記載の方法
  19. 【請求項19】 前記複数個のプロセッサの前記関連付けられたデータキャ
    ッシュのいくつが前記所与のメモリラインを保持するかを示すカウントを維持す
    るステップをさらに含む、請求項18に記載の方法。
  20. 【請求項20】 前記フラグビットを代替的に利用して前記複数個のプロセ
    ッサの前記関連付けられたデータキャッシュの1つのみが前記所与のメモリライ
    ンを保持することを示すステップと、 前記複数個のプロセッサの前記関連付けられたデータキャッシュのどれが前記
    所与のメモリラインを保持するかを示すステップとをさらに含む、請求項17に
    記載の方法。
  21. 【請求項21】 前記所与のメモリラインが前記複数個のプロセッサの前記
    関連付けられたデータキャッシュの少なくとも1つに保持されているかどうかを
    示すものとして前記コヒーレンシタグ内の前記ビットロケーションの少なくとも
    1つを指定するステップをさらに含む、請求項20に記載の方法。
  22. 【請求項22】 前記所与のメモリラインが読出専用または排他的モードに
    あるかどうかを示すものとして前記コヒーレンシタグ内の前記ビットロケーショ
    ンの少なくとも1つを指定するステップをさらに含む、請求項20に記載の方法
  23. 【請求項23】 バスロック条件を示すものとして前記コヒーレンシタグ内
    の前記ビットロケーションの少なくとも1つを指定するステップをさらに含む、
    請求項20に記載の方法。
  24. 【請求項24】 ビジー条件を示すものとして前記コヒーレンシタグ内の前
    記ビットロケーションの少なくとも1つを指定するステップをさらに含む、請求
    項20に記載の方法。
JP2000557196A 1998-06-30 1999-04-13 マルチプロセッサコンピュータシステムのための分割ディレクトリベースのキャッシュコヒーレンシ技術 Withdrawn JP2002519785A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/108,088 1998-06-30
US09/108,088 US6295598B1 (en) 1998-06-30 1998-06-30 Split directory-based cache coherency technique for a multi-processor computer system
PCT/US1999/008065 WO2000000891A1 (en) 1998-06-30 1999-04-13 Split directory-based cache coherency technique for a multi-processor computer system

Publications (2)

Publication Number Publication Date
JP2002519785A true JP2002519785A (ja) 2002-07-02
JP2002519785A5 JP2002519785A5 (ja) 2006-06-01

Family

ID=22320225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000557196A Withdrawn JP2002519785A (ja) 1998-06-30 1999-04-13 マルチプロセッサコンピュータシステムのための分割ディレクトリベースのキャッシュコヒーレンシ技術

Country Status (5)

Country Link
US (1) US6295598B1 (ja)
EP (1) EP1092188A4 (ja)
JP (1) JP2002519785A (ja)
CA (1) CA2335307A1 (ja)
WO (1) WO2000000891A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113291A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 データ転送回路及びデータ転送方法
JP2013206395A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd 演算処理装置、演算処理装置の制御方法及び情報処理装置

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526110B1 (en) * 1999-09-14 2003-02-25 Mitsubishi Electric Research Laboratories Inc. Embedded RAM based digital signal processor
US6587964B1 (en) * 2000-02-18 2003-07-01 Hewlett-Packard Development Company, L.P. Transparent software emulation as an alternative to hardware bus lock
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
JP3787491B2 (ja) * 2000-11-20 2006-06-21 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク装置
US6925634B2 (en) * 2001-01-24 2005-08-02 Texas Instruments Incorporated Method for maintaining cache coherency in software in a shared memory system
FR2820850B1 (fr) * 2001-02-15 2003-05-09 Bull Sa Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur
US6965972B2 (en) * 2002-09-25 2005-11-15 International Business Machines Corporation Real time emulation of coherence directories using global sparse directories
US6868485B1 (en) * 2002-09-27 2005-03-15 Advanced Micro Devices, Inc. Computer system with integrated directory and processor cache
US7096323B1 (en) 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US8516179B2 (en) * 2003-12-03 2013-08-20 Digital Rna, Llc Integrated circuit with coupled processing cores
US7711901B2 (en) * 2004-02-13 2010-05-04 Intel Corporation Method, system, and apparatus for an hierarchical cache line replacement
US7299339B2 (en) * 2004-08-30 2007-11-20 The Boeing Company Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework
US8135910B2 (en) * 2005-02-11 2012-03-13 International Business Machines Corporation Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
US8037474B2 (en) * 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US7522168B2 (en) * 2005-09-27 2009-04-21 Sony Computer Entertainment Inc. Cell processor task and data management
US7734827B2 (en) * 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US8316220B2 (en) * 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US7975269B2 (en) * 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US7506123B1 (en) * 2005-09-27 2009-03-17 Sony Computer Entertainment Inc. Method and system for performing memory copy function on a cell processor
US8141076B2 (en) * 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US20070094336A1 (en) * 2005-10-24 2007-04-26 Microsoft Corporation Asynchronous server synchronously storing persistent data batches
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
US7475193B2 (en) * 2006-01-18 2009-01-06 International Business Machines Corporation Separate data and coherency cache directories in a shared cache in a multiprocessor system
US20070168620A1 (en) * 2006-01-19 2007-07-19 Sicortex, Inc. System and method of multi-core cache coherency
US7991963B2 (en) * 2007-12-31 2011-08-02 Intel Corporation In-memory, in-page directory cache coherency scheme
US8325601B2 (en) * 2009-05-08 2012-12-04 Canon Kabushiki Kaisha Reliable network streaming of a single data stream over multiple physical interfaces
US8396960B2 (en) * 2009-05-08 2013-03-12 Canon Kabushiki Kaisha Efficient network utilization using multiple physical interfaces
US8880716B2 (en) * 2009-05-08 2014-11-04 Canon Kabushiki Kaisha Network streaming of a single data stream simultaneously over multiple physical interfaces
US8068514B2 (en) * 2009-05-22 2011-11-29 Canon Kabushiki Kaisha Efficient bandwidth utilization when streaming data over multiple network interfaces
US8356109B2 (en) 2010-05-13 2013-01-15 Canon Kabushiki Kaisha Network streaming of a video stream over multiple communication channels
JP5121896B2 (ja) 2010-08-11 2013-01-16 株式会社東芝 マルチコアプロセッサシステムおよびマルチコアプロセッサ
US20130111149A1 (en) * 2011-10-26 2013-05-02 Arteris SAS Integrated circuits with cache-coherency
US20130157639A1 (en) 2011-12-16 2013-06-20 SRC Computers, LLC Mobile electronic devices utilizing reconfigurable processing techniques to enable higher speed applications with lowered power consumption
US10741226B2 (en) 2013-05-28 2020-08-11 Fg Src Llc Multi-processor computer architecture incorporating distributed multi-ported common memory modules
US9153311B1 (en) 2014-05-27 2015-10-06 SRC Computers, LLC System and method for retaining DRAM data when reprogramming reconfigurable devices with DRAM memory controllers
US9530483B2 (en) 2014-05-27 2016-12-27 Src Labs, Llc System and method for retaining dram data when reprogramming reconfigurable devices with DRAM memory controllers incorporating a data maintenance block colocated with a memory module or subsystem
US9866498B2 (en) * 2014-12-23 2018-01-09 Intel Corporation Technologies for network packet cache management
US10445271B2 (en) 2016-01-04 2019-10-15 Intel Corporation Multi-core communication acceleration using hardware queue device
WO2018001495A1 (en) * 2016-06-30 2018-01-04 Huawei Technologies Co., Ltd. Systems and methods for managing databases
US11119926B2 (en) 2017-12-18 2021-09-14 Advanced Micro Devices, Inc. Region based directory scheme to adapt to large cache sizes
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

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5191652A (en) * 1989-11-10 1993-03-02 International Business Machines Corporation Method and apparatus for exploiting communications bandwidth as for providing shared memory
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
JPH0619785A (ja) 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
JP2809961B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 マルチプロセッサ
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy
US5634110A (en) * 1995-05-05 1997-05-27 Silicon Graphics, Inc. Cache coherency using flexible directory bit vectors
US5680576A (en) * 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
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
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US5829035A (en) * 1995-12-22 1998-10-27 Apple Computer, Inc. System and method for preventing stale data in multiple processor computer systems
US5900015A (en) * 1996-08-09 1999-05-04 International Business Machines Corporation System and method for maintaining cache coherency using path directories
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6633958B1 (en) * 1997-11-17 2003-10-14 Silicon Graphics, Inc. Multiprocessor computer system and method for maintaining cache coherence utilizing a multi-dimensional cache coherence directory structure

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113291A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 データ転送回路及びデータ転送方法
JP5035469B2 (ja) * 2009-03-31 2012-09-26 富士通株式会社 データ転送回路及びデータ転送方法
US8819323B2 (en) 2009-03-31 2014-08-26 Fujitsu Limited Data transfer circuit and data transfer method
JP2013206395A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd 演算処理装置、演算処理装置の制御方法及び情報処理装置
US9436613B2 (en) 2012-03-29 2016-09-06 Fujitsu Limited Central processing unit, method for controlling central processing unit, and information processing apparatus

Also Published As

Publication number Publication date
CA2335307A1 (en) 2000-01-06
WO2000000891A1 (en) 2000-01-06
EP1092188A4 (en) 2003-04-16
EP1092188A1 (en) 2001-04-18
US6295598B1 (en) 2001-09-25

Similar Documents

Publication Publication Date Title
JP2002519785A (ja) マルチプロセッサコンピュータシステムのための分割ディレクトリベースのキャッシュコヒーレンシ技術
KR100324975B1 (ko) 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US7024521B2 (en) Managing sparse directory evictions in multiprocessor systems via memory locking
US6640289B2 (en) Software controlled cache line ownership affinity enhancements in a multiprocessor environment
US5749095A (en) Multiprocessing system configured to perform efficient write operations
JP3849951B2 (ja) 主記憶共有型マルチプロセッサ
JP3722415B2 (ja) 効率的なバス機構及びコヒーレンス制御を有する繰り返しチップ構造を有するスケーラブル共用メモリ・マルチプロセッサ・コンピュータ・システム
JP2512651B2 (ja) メモリ共有マルチプロセッサ
US6279084B1 (en) Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
KR100348947B1 (ko) 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템
US6536000B1 (en) Communication error reporting mechanism in a multiprocessing computer system
US7395379B2 (en) Methods and apparatus for responding to a request cluster
EP0817072A2 (en) A multiprocessing system configured to store coherency state within multiple subnodes of a processing node
KR20010101193A (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템
US7003633B2 (en) Methods and apparatus for managing probe requests
JP2008525904A (ja) 異なるキャッシュロケーション長を有するキャッシュにおいてキャッシュコヒーレンシを保持するためのシステム及び方法
US20040088496A1 (en) Cache coherence directory eviction mechanisms in multiprocessor systems
US20040088495A1 (en) Cache coherence directory eviction mechanisms in multiprocessor systems
US20040088494A1 (en) Cache coherence directory eviction mechanisms in multiprocessor systems
JPH0810447B2 (ja) メモリ共有マルチプロセッサが使用する全ての物理的アドレスのデータ両立性を保持する方法
KR100348956B1 (ko) 재실행 요구를 촉진하여 대기시간을 감소시키는 비균일 메모리액세스 데이터 프로세싱 시스템
JP2001147858A (ja) ハイブリッドコヒーレンスプロトコル
US7103726B2 (en) Methods and apparatus for managing probe requests
US7249224B2 (en) Methods and apparatus for providing early responses from a remote data cache

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060329

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060329

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070627