(57)【要約】  ネットワーク帯域幅を効率的に利用するために、複数の遠隔読み取りミス要求及び/又は複数の排他的アクセス要求を単一のネットワーク・パケットに合成する機能。この合成は、ネットワーク構成における複数のプロセッサについて存在するものである。対照的に、他の解決策は、複数のネットワーク・パケットを介して複数の遠隔読み取りミス要求及び/又は複数の排他的アクセス要求を個々に送信することによってネットワーク帯域幅を非効率的に利用している。
2007528078.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサのネットワークに対する単一のネットワーク・パケットに複数の読み取りミス要求を合成する方法であって、
前記複数の読み取りミス要求毎にミス・アドレス・ファイル（ＭＡＦ）にエントリを生成する工程と、
所定数のサイクル、前記複数の読み取りミス要求をＭＡＦコントローラが転送することを遅延させる工程と、
同じプロセッサ宛の前記複数の読み取りミス要求を単一のネットワーク・パケットに合成する工程と、
前記単一のネットワーク・パケットを前記同じプロセッサに転送する工程とを備えることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、前記同じプロセッサ宛の前記複数の読み取りミス要求は、バーストにおいて、科学アプリケーションにおけるアレイを介してプログラム・ストリームからか、又はデータベース・プログラム内のＢ＋ツリーの葉ノードを介して生じることを特徴とする方法。
【請求項３】
請求項１記載の方法であって、前記ネットワークは、キャッシュ・コヒーレント共有メモリ構成であることを特徴とする方法。
【請求項４】
複数のプロセッサのネットワークに対する単一のネットワーク・パケットに複数の読み取りミス要求を合成する方法であって、
前記複数の読み取りミス要求毎にミス・アドレス・ファイル（ＭＡＦ）にエントリを生成する工程と、
所定数のサイクル、前記複数の読み取りミス要求をＭＡＦコントローラが転送することを遅延させる工程と、
同じプロセッサ宛であり、バースト内で生じる前記複数の読み取りミス要求を単一のネットワーク・パケットに合成する工程と、
前記単一のネットワーク・パケットを前記同じプロセッサに転送する工程とを備えることを特徴とする方法。
【請求項５】
請求項４記載の方法であって、バースト内で生じる前記複数の読み取りミス要求は、科学アプリケーションにおけるアレイを介してプログラム・ストリームからか、又はデータベース・プログラム内のＢ＋ツリーの葉ノードを介して来ることを特徴とする方法。
【請求項６】
請求項４記載の方法であって、前記ネットワークは、キャッシュ・コヒーレント共有メモリ構成であることを特徴とする方法。
【請求項７】
複数のプロセッサのネットワークに対する単一のネットワーク・パケットに複数の排他的アクセス要求を合成する方法であって、
キャッシュ・ブロックを局所キャッシュに書き込むために、前記複数のプロセッサのうちの少なくとも１つによる複数の排他的アクセス要求を識別する工程と、
前記ネットワークにおいて送信する対象の単一のネットワーク・パケットに前記複数の排他的アクセス要求を合成する工程とを備えることを特徴とする方法。
【請求項８】
請求項７記載の方法であって、前記複数の排他的アクセス要求が、前記ネットワーク内のホーム・ノードによって付与されることを特徴とする方法。
【請求項９】
システムであって、
ネットワーク及びメモリに結合された複数のプロセッサであって、
記憶動作を終了するとマージ・バッファ内のエントリにデータを書き込み、
マージ・バッファ内のエントリの割り当てを解除し、前記複数のプロセッサのうちの同じプロセッサにマッピングされた、マージ・バッファ内の複数のエントリを識別し、
前記複数のプロセッサのうちの前記同じプロセッサにマッピングされた、前記マージ・バッファ内の前記複数のエントリを合成する
ためのマージ・バッファを各プロセッサが有する複数のプロセッサを備えることを特徴とするシステム。
【請求項１０】
請求項９記載のシステムであって、前記ネットワークは、複数のキャッシュ・エージェント及びホーム・エージェントの間のポイント・ツー・ポイント・リンクであることを特徴とするシステム。
【請求項１１】
請求項９記載のシステムであって、キャッシュ・コヒーレント共有メモリ・マルチプロセッサ・システムであることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に共有メモリ・システムに関し、特にコヒーレンス・メッセージの合体に関する。
【背景技術】
【０００２】
より強力なコンピュータ及び通信製品に対する需要によって、共有メモリ構成における複数のプロセッサを備えた高速ネットワークがもたらされた。例えば、ネットワークは、キャッシュ・コヒーレンス・プロトコルを用いてお互いに通信する多数のプロセッサ及びメモリ・モジュールをサポートする。そうしたシステムでは、遠隔メモリ・モジュール（又は別のプロセッサのキャッシュ）への、プロセッサのキャッシュ・ミス及びそれによるミス応答は、ネットワーク・パケット内にカプセル化され、適切なプロセッサ又はメモリに配信される。データベース・サーバなどの多くの並列アプリケーションの性能は、こうしたミス要求及びミス応答をどれだけすばやく、かつどれだけ多くシステムによって処理することが可能であるかによって変わってくる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
よって、低レーテンシ及び高帯域幅でパケットを配信するためのネットワークに対する必要性が存在している。
【課題を解決するための手段】
【０００４】
技術的内容は、特許請求の範囲に具体的に、請求項として規定している。しかし、特許請求の範囲記載の技術的内容（動作の編成及び方法について）はその目的、特徴及び利点とともに、以下の詳細な説明を参照する（添付図面とともに検討する）ことによって最も深く理解することができる。
【発明を実施するための最良の形態】
【０００５】
以下の詳細な説明では、特許請求の範囲記載の技術的内容が徹底的に理解されるようにするために、数多くの具体的な詳細を記載する。しかし、特許請求の範囲記載の技術的内容をこうした具体的な詳細なしで実施することができることを当業者は理解するであろう。一方、周知の方法、手順、部品及び回路は、特許請求の範囲記載の技術的内容を分かりにくくしないようにするために、詳細に説明していない。
【０００６】
現在の技術開発の分野として、低レーテンシ及び高帯域幅でパケットを配信するネットワークに関するものがある。現在、コヒーレンス・プロトコル・メッセージを搬送する、従来技術のネットワークのパケットは、通常、容量が小さいが、それは、単純なコヒーレンス情報（例えば、肯定応答又は要求のメッセージ）又は小容量キャッシュ・ブロック（例えば、64バイト）を搬送するからである。よって、コヒーレント・プロトコルによるネットワーク帯域幅の利用は通常、非効率的である。更に、より斬新な高性能コヒーレンス・プロトコルは、帯域幅利用度を更に低下させ得る。
【０００７】
対照的に、特許請求の範囲記載の技術的内容は、複数の論理コヒーレンス・メッセージを単一のネットワーク・パケットに合成して、ネットワーク・パケットを移動させるというオーバヘッドをならすことを容易にするものである。一局面では、特許請求の範囲記載の技術的内容によって、利用可能なネットワーク帯域幅を効果的に利用することができる。一実施例では、特許請求の範囲記載の技術的内容によって、複数の遠隔読み取りミス要求が単一のネットワーク・パケットに合成される。第２の実施例では、特許請求の範囲記載の技術的内容によって、複数の遠隔書き込みミス要求が単一のネットワーク・パケットに合成される。特許請求の範囲記載の技術的内容は、図１及び図２のそれぞれによって示される前述の実施例の何れをもサポートするものである。更に、特許請求の範囲記載の技術的内容によって、システムが、図３に関してシステム内に示す前述の実施例の一方又は両方を利用することが容易になる。
【実施例】
【０００８】
図１は、特許請求の範囲記載の技術的内容によって遠隔読み取りミス要求を合成する方法の流れ図である。通常の遠隔読み取りミス動作は、プロセッサが読み取りミスに対処することによって始まる。よって、システムはミス要求をミス・アドレス・ファイル（MAF）に入力する。通常、MAFは複数のミス要求を保持する。その後、MAFコントローラはミス要求を個々にネットワークに送信する。最終的には、システム・ネットワークは、ネットワーク・パケットによって各要求に応答する。応答を受信すると、MAFコントローラは、当初ミス要求に関連したキャッシュ・ブロックをキャッシュに戻し、相当するMAFエントリの割り当てを解除する。
【０００９】
特許請求の範囲記載の技術的内容によって、MAFコントローラで論理読み取りミス要求を単一のネットワーク・パケットに合成することが提示されている。一実施例では、読み取りミス要求は、同じプロセッサ宛のものであり、バースト内で生じるミス要求について合成される。バーストは、科学アプリケーションにおけるアレイを介してプログラム・ストリームから、又は、データベース・プログラム内のB+ツリーの葉ノードを介して生じ得る。しかし、特許請求の範囲記載の技術的内容は前述の、バーストの例に限定されるものでない。読み取りミス要求がビデオ及びゲームのアプリケーション、他の科学アプリケーション等によってバースト内で生成されることをもたらす広い範囲にわたるプログラム又はアプリケーションを当業者は認識するものである。
【００１０】
一実施例では、ミス要求を認めると、MAFコントローラは、所定数のサイクル待ってからキャッシュ・ミス要求をネットワークに転送することができる。一方、この遅延の間に、同じプロセッサ宛の他のミス要求が到着し得る。よって、同じプロセッサ宛の読み取りミス要求群を１つのネットワーク・パケットに合成し、ネットワークに転送することができる。
【００１１】
図２は、特許請求の範囲記載の技術的内容によって書き込みミス要求を合成する方法の流れ図である。通常、マイクロプロセッサは、作動時記憶動作をバファリングするための記憶キューを利用する。よって、記憶の完了後（終了後）、合体マージ・バッファへのデータの書き込みがあり、このバッファはキャッシュ・ブロック・サイズの複数の領域を有する。マージ・バッファにデータを書き込む記憶動作の場合、データを書き込むマッチング・ブロックを見つける必要がある。さもなければ、新たなブロックが割り当てられる。マージ・バッファが一杯の場合、バッファから、ブロックの割り当てを解除する（ブロックを解放する）必要がある。プロセッサは、マージ・バッファからキャッシュにブロックをもう一度書き込む必要がある場合、このキャッシュ・ブロックを局所キャッシュに書き込むための「排他的」アクセスをまず要求しなければならない。局所キャッシュが既に排他的アクセスを有する場合、プロセッサは終了している。そうでない場合、この排他的アクセスはホーム・ノードによって付与されなければならず、これは遠隔プロセッサにある場合が多い。
【００１２】
特許請求の範囲記載の技術的内容は、キャッシュ・ブロックへの書き込みは、バースト内で生じ得る、かつ/又は、順次アドレスへのものであるということを利用している。例えば、書き込みは多くの場合、ディレクトリ・ベースのプロトコルにおいて、同じ宛先プロセッサにマッピングされ得る。よって、マージ・バッファからブロックの割り当てを解除する必要がある場合、同じ宛先プロセッサにマッピングされるブロックを識別するために、マージ・バッファのサーチが開始される。同じ宛先プロセッサへマッピングされる複数のブロックを識別すると、特許請求の範囲の技術的内容によって、排他的アクセス要求を単一のネットワーク・パケットに合成することが容易になり、これがネットワークに送信される。よって、１つの単一のネットワーク・パケットは複数の排他的なアクセス要求について送信される。対照的に、従来技術は、アクセス要求毎にネットワーク・パケットを送信することを教示している。
【００１３】
一実施例では、遠隔ディレクトリ・コントローラは、複数のプロセッサからの合体書き込みミス要求を処理している間に、デッドロック状態に達することがあり得る。例えば、ブロックA、B及びCに対する要求をプロセッサ１から受信し、ブロックB、C及びDに対する要求をプロセッサ２から受信し両方の要求に応じる場合、以下の状態が生じ得る。プロセッサ１に対するブロックAの書き込み許可が獲得され、プロセッサ２に対するブロックBの書き込み許可が獲得されることになる。よって、第２の合体要求に対して既にロックアウトされているので遠隔ディレクトリ・コントローラがブロックBを得ることが可能でないため、デッドロック状態が存在している。前述のデッドロック状態の場合、一実施例では、解決策は、要求が必要とするブロックが何れも先行未処理合体書き込み要求に既にある場合に、ディレクトリ・コントローラでの合体書き込み要求全ての処理を阻止することである。
【００１４】
図３は、図１及び図２の一方又は両方の実施例を用い得るシステムを示すシステム図である。マルチプロセッサ・システムは、複数のプロセッサを有するシステム（例えば、コンピュータ・システム、リアル・タイム・モニタリング・システム等）の部類を表すことが意図されている。別のマルチプロセッサ・システムは、より多くの構成部分、より少ない構成部分、及び/又は別の構成部分を含み得る。場合によっては、本明細書及び特許請求の範囲記載内容は単一プロセッサ・システムにもマルチプロセッサ・システムにも適用することが可能である。一実施例では、システムは、マルチプロセッサを備えた共有キャッシュ・コヒーレント共有メモリ構成である。例えば、システムは１６個のプロセッサをサポートすることができる。前述のように、システムは図１及び図２に関して表す実施例の一方又は両方をサポートする。一実施例では、プロセッサ・エージェントは、I/O及びメモリ・エージェント、並びに他のプロセッサ・エージェントにネットワーク・クラウドを介して結合される。例えば、ネットワーク・クラウドはバスであり得る。
【００１５】
別の実施例では、図４はポイント・ツー・ポイント・システムを表す。特許請求の範囲記載の技術内容は、２つの実施例（２つのプロセッサ（Ｐ）を備えた実施例及び４つのプロセッサ（Ｐ）を備えた実施例）を備える。何れの実施例でも、各プロセッサはメモリ（Ｍ）に結合され、ネットワーク・ファブリック（リンク層、プロトコル層、ルーティング層、トランスポート層の何れか又は全てを備え得る）を介して各プロセッサに接続される。上記ファブリックによって、ポイント・ツー・ポイント・ネットワークの場合の、一プロトコル（ホーム・エージェント又はキャッシング・エージェント）から別のプロトコルへのメッセージの伝送が容易になる。前述のように、ネットワーク・ファブリックのシステムは図１及び図２に関して表した実施例の何れか又は両方をサポートする。
【００１６】
特許請求の範囲記載の技術的内容を、特定の実施例を参照して説明したが、この説明は限定的な意味合いで解されることを意味するものでない。本願開示の実施例の種々の修正、並びに、特許請求の範囲記載の技術的内容の別の実施例は、特許請求の範囲記載の技術的内容の説明を参照すると当業者に明らかになるであろう。よって、特許請求の範囲記載の技術的内容の趣旨又は範囲から逸脱することなく前述の修正を行うことが可能であることが想定されている。
【図面の簡単な説明】
【００１７】
【図１】特許請求の範囲記載の技術的内容によって遠隔読み取りミス要求を合成する方法の流れ図である。
【図２】特許請求の範囲記載の技術的内容によって書き込みミス要求を合成する方法の流れ図である。
【図３】図１若しくは図２、又は両方の実施例を用い得るシステムを示すシステム図である。
【図４】図１若しくは図２、又は両方の実施例を用い得るシステムを示すシステム図である。
【図１】
2007528078.tif 000003
【図２】
2007528078.tif 000004
【図３】
2007528078.tif 000005
【図４】
2007528078.tif 000006
【国際調査報告】
2007528078.tif 000007
2007528078.tif 000008
2007528078.tif 000009
2007528078.tif 000010
2007528078.tif 000011