JP4956900B2 - アドレススヌープ方法及びマルチプロセッサシステム - Google Patents

アドレススヌープ方法及びマルチプロセッサシステム Download PDF

Info

Publication number
JP4956900B2
JP4956900B2 JP2005062661A JP2005062661A JP4956900B2 JP 4956900 B2 JP4956900 B2 JP 4956900B2 JP 2005062661 A JP2005062661 A JP 2005062661A JP 2005062661 A JP2005062661 A JP 2005062661A JP 4956900 B2 JP4956900 B2 JP 4956900B2
Authority
JP
Japan
Prior art keywords
address
block
snoop
processor
coupling device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005062661A
Other languages
English (en)
Other versions
JP2006244388A (ja
Inventor
広治 細江
孝一 小田原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005062661A priority Critical patent/JP4956900B2/ja
Priority to US11/259,605 priority patent/US7418559B2/en
Priority to EP05256911.8A priority patent/EP1701267B8/en
Priority to KR1020050116205A priority patent/KR100813789B1/ko
Priority to CN200510127445A priority patent/CN100587674C/zh
Publication of JP2006244388A publication Critical patent/JP2006244388A/ja
Application granted granted Critical
Publication of JP4956900B2 publication Critical patent/JP4956900B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

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)

Description

本発明は、アドレススヌープ方法及びマルチプロセッサシステムに係り、特に複数のプロセッサブロックと複数の入出力(I/O)ブロックとが結合装置を介して接続されたマルチプロセッサシステムにおけるアドレススヌープ処理を行うアドレススヌープ方法と、そのようなアドレススヌープ方法を用いるマルチプロセッサシステムに関する。
マルチプロセッサシステムは、複数のプロセッサブロックと複数のI/Oブロックとが結合装置を介して接続された構成を有する。各プロセッサブロックは、複数のプロセッサと複数のメモリとからなる。他方、各I/Oブロックは、ディスク装置等の記憶装置を含む。以下の説明では、便宜上、各プロセッサブロックが、複数のCPUと複数のキャッシュメモリとからなるCPUブロックで構成されているものとする。
従来のマルチプロセッサシステムでは、I/OブロックがCPUブロックと1対1で併設されるか、或いは、I/Oブロックが独立していても少数のI/Oブロックが複数のCPUブロックから共用される構成になっている。しかし、CPUブロック数に比例してキャッシュメモリ間のアクセスは増加し、CPUブロック数を増加させることは必ずしもマルチプロセッサシステムの性能向上には結びつかない。そこで、CPUブロックをI/Oブロックを介してインタコネクト(Interconnect)し、マルチプロセッサシステムの性能を増加させる方式が提案されている。
ところが、このような提案方式を採用しても、従来のマルチプロセッサシステムのようにCPUブロック数当たりのI/Oブロック数が制限されていたり、複数のCPUブロックでI/Oブロックを共用していると、マルチプロセッサシステムの性能は大幅に制限され、このような提案方式を採用する意味が無くなってしまう。
このため、I/Oブロックを多数実装し、各CPUブロックで使用可能なI/Oブロック数を増加させ、CPUブロックとI/Oブロックをフレキシブルに組み合わせて使用できる構成が望まれている。
プロセッサユニットが出力するメモリアクセスをインタコネクトネットワークを用いて他のキャッシュが監視する構成のマルチプロセッサシステムは、例えば特許文献1に記載されている。転送先ポートが異なる複数のユニキャストを同時に実行する機構を有するマルチプロセッサシステムは、例えば特許文献2に記載されている。又、ノード間相互結合ネットワークで接続されたマルチプロセッサシステムは、例えば特許文献3に記載されている。
特開平9−138782号公報 特開平9−138783号公報 特開2001−184321号公報
I/OブロックをCPUブロックから独立させてマルチプロセッサシステムに多数実装すると、各I/Oブロックで個別にアドレスをスヌープする必要が生じる。この場合、アドレス結合装置から各I/Oブロックに対して、アドレススヌープ処理に必要な信号を供給しなければならない。しかし、各I/Oブロックにアドレススヌープ処理に必要な信号を供給するためには、アドレス結合装置のLSI当たりのピン数を増加させたり、複数のLSIに機能を分割する等の実装上の工夫が必要になるので、実装を困難にすると共にコストの増加も招くという問題があった。又、マルチプロセッサシステム(特にアドレス結合装置及びI/Oブロック)の構成も複雑になるため、配線長の増加及び伝送遅延を招き、マルチプロセッサシステムの性能の上限を低下させる(レイテンシを増加させる)原因になるという問題もあった。
そこで、本発明は、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに容易に実装可能とすると共に、マルチプロセッサシステムの性能の上限の低下(レイテンシの増加)を防止可能なアドレススヌープ方法及びマルチプロセッサシステムを提供することを目的とする。
上記の課題は、複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムにおけるアドレススヌープ方法であって、任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とするアドレススヌープ方法によって達成できる。
上記の課題は、複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムであって、任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とするマルチプロセッサシステムによっても達成できる。
本発明によれば、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに容易に実装可能であると共に、マルチプロセッサシステムの性能の上限の低下(レイテンシの増加)を防止可能なアドレススヌープ方法及びマルチプロセッサシステムを実現することができる。
一般的なマルチプロセッサシステムのI/Oブロックには、マルチプロセッサシステム全体でコンシステンシを保つ必要のあるキャッシュメモリが実装されていないのが通常であり、スヌープしたアドレスに対して応答するキャッシュステータスの生成処理は、プロセッサブロックのアクセスに比べて単純である。本発明ではこの点に着目し、アドレス結合装置にI/Oブロックでキャッシュステータスを生成するのに必要な情報のコピーを保持し、I/Oブロックに対するアドレススヌープ処理をI/Oブロックに代わってアドレス結合装置で行うように構成する。
I/Oブロックには、そのI/Oブロックに対するアクセスが確定した場合だけそのアドレス情報を通知することにより、I/Oブロックとアドレス結合装置間の接続端子数を削減することができる。つまり、多数のI/Oブロックを接続可能なマルチプロセッサシステムを、アドレス結合装置内のLSI当たりのピン数を増加させずに実現することができる。このようにして、アドレス結合装置とI/Oブロックとの間の接続端子数や配線数及び配線長を減少させることができるので、多数のI/Oブロックの接続と、高密度な実装及びそれによる伝送遅延削減の両方を実現可能となる。
以下に、本発明になるアドレススヌープ方法及びマルチプロセッサシステムの各実施例を、図面と共に説明する。
図1は、本発明になるマルチプロセッサシステムの一実施例の要部を示すブロック図である。マルチプロセッサの本実施例は、本発明になるアドレススヌープ方法の一実施例を採用する。同図中、マルチプロセッサシステム1は、複数のCPUブロック11−1〜11−Lと、データ結合装置12と、アドレス結合装置13と、複数のI/Oブロック14−1〜14−Mからなる。ここで、L,Mは2以上の整数であり、本実施例では説明の便宜上L=M=8であるものとする。
各CPUブロック11−i(i=1〜L)は、複数のCPU110−1〜110−N、複数のキャッシュメモリ111−1〜111−O等からなる周知の構成を有する。ここで、N,Oは、2以上の整数であり、本実施例では説明の便宜上N=2,O=4である。尚、キャッシュ制御部等の図示は省略する。
データ結合装置12は、CPUブロック11−1〜11−LとI/Oブロック14−1〜15−M間のデータのやり取りを制御する周知の構成を有し、デコード部121,122等からなる。
アドレス結合装置13は、CPUブロック11−1〜11−LとI/Oブロック14−1〜15−M間のアドレスのやり取りを制御する構成を有し、キュー部131、M個のスヌープ回路132−1〜132−M等からなる。アドレス結合装置13のより詳細な構成については、図3と共に後述する。
各I/Oブロック14−1〜14−Mは、ディスク装置等の記憶装置等からなる周知の構成を有する。
本実施例では、各I/Oブロック14−1〜14−Mに対するアドレススヌープ処理は、全てアドレス結合装置13内で処理される。又、スヌープ回路132−1〜132−Mがアドレス結合装置13内に設けられているので、各I/Oブロック14−1〜14−M内にスヌープ回路を設ける場合と比較すると、アドレス結合装置13とI/Oブロック14−1〜14−Mとの間は少ない配線数で結合されている。
データ結合装置12は、アドレス結合装置13とは並列に接続されている。アドレス結合装置13により転送先の確定したデータは、データ結合装置12を介して転送先に送られる。各CPUブロック11−1〜11−Lとデータ結合装置12との間のバス上を流れるデータと、各I/Oブロック14−1〜14−Mとデータ結合装置12との間のバス上を流れるデータとは、いずれもヘッダ及びデータ本体からなるデータ構造を有する。ヘッダに書かれた転送先及びデータ長に従って、後続のデータ部に書かれたデータが転送されるようになっている。
上記の如き構成のマルチプロセッサ1では、データ結合装置12及びアドレス結合装置13により、CPUブロックとI/Oブロック間だけではなく、CPUブロック間及びI/Oブロック間も接続される。
図2は、マルチプロセッサシステム1のパーティション構成を説明する図である。同図中、図1と同一部分には同一符号を付し、その説明は省略する。
各CPUブロック11−1〜11−LとI/Oブロック14−1〜14−Mとは、任意の組み合わせでパーティションを構成可能である。異なるパーティション間でのアクセスは行われない。図2は、パーティションP0がCPUブロック11−1とI/Oブロック14−1,14−2の組み合わせで構成され、パーティションP1がCPUブロック11−2,11−3とI/Oブロック14−3の組み合わせで構成されている場合を示す。尚、パーティションP0には、アドレス結合装置13内の対応する2つのスヌープ回路132−1,132−2が含まれ、パーティションP1には、アドレス結合装置13内の対応する1つのスヌープ回路132−3が含まれる。
スヌープ回路132−1〜132−Mがアドレス結合装置13内に設けられているので、各I/Oブロック14−1〜14−M内にスヌープ回路を設ける場合と比較すると、アドレス結合装置13とI/Oブロック14−1〜14−Mとの間が少ない配線数で結合されているものの、パーティションを構成するCPUブロックとI/Oブロックの組み合わせをより大きな自由度で選択することができる。
図3は、アドレススヌープ回路132−jの要部を含むアドレス結合装置の構成を示すブロック図である。説明の便宜上、図3は、任意のCPUブロック11−jとI/Oブロック14−jに関わるアドレス結合装置13の要部を示す。
図3に示すように、アドレス結合装置13は、スヌープ回路132−j、バッファ134,135、選択回路136、キャッシュステータス合成部137、コマンドチェック部138及び動作オン・オフ部139からなる。バッファ134,135及び選択回路136は、図1に示すキュー部131を構成する。スヌープ回路132−jは、アドレスチェック部201、キャッシュステータス生成部202及びI/Oブロック向けリクエスト生成部203からなる。
本実施例では、例えば1つのCPUブロック11−jとアドレス結合装置13との間が95ビット幅の信号線(ECCを含む)で接続されている。95ビット幅のうち、アドレス結合装置13へのアドレスが16ビット、CPUブロック11−jへのスヌープアドレスが48ビット、アドレス結合装置13へのキャッシュステータスが13ビット、CPUブロック11−jへの合成されたキャッシュステータスが18ビットである。他方、1つのI/Oブロック14−jとアドレス結合装置13との間は、26ビット幅の信号線(ECCを含む)で接続されている。26ビット幅のうち、アドレス結合装置13へのアドレスが13ビット、I/Oブロック14−jへのリクエストが13ビットである。
基本的には、スヌープ回路132−jをI/Oブロック14−j内ではなくアドレス結合装置13に設けた構成となっており、更に、I/Oブロック14−jに対するアクセスが確定したリクエストを通知する機能がスヌープ回路132−jに追加されている。
CPUブロック11−j及びI/Oブロック14−jから入力されたアドレスは、ブロック毎に一旦対応するバッファ134,135内のキューに保存される。これらのアドレスは選択回路136により順次選択され、スヌープアドレスとして全CPUブロック11−1〜11−L及びアドレス結合装置13内に包含された全スヌープ回路132−1〜132−Mにブロードキャストされる。CPUブロック11−jは、スヌープアドレスからアクセスに必要な情報を得る。
I/Oブロック14−jが処理を行うのに必要な情報は、スヌープアドレスをスヌープ回路132−j内に保持しておいて生成する。I/Oブロック14−j宛てのリクエストは、スヌープアドレス全体ではなく、必要なアドレス情報部分のみを送れば良い。しかし、I/Oブロック14−jで処理が必要なアクセスの割合は全体から見て少ないため、簡単化のためにI/Oブロック14−jに送信する可能性のある全てのコマンドのデータを一度に包含できるコマンドフォーマットを用いることが望ましい。
I/Oブロック14−jは、数種類のコマンドフォーマットのリクエストを受け取るが、一般的なコマンドは例えば160ビットの情報からなる。このような一般的なコマンドを例えば10サイクルかけてアドレス結合装置13とI/Oブロック14−j間を伝送させる。コマンドがアドレス結合装置13内のスヌープアドレスバスを流れるときは、例えば150ビットのコマンドとなる。
スヌープ回路132−jの動作開始及び停止の指示は、I/Oブロック14−jから出されるコマンドに従って、コマンドチェック部138及び動作オン・オフ部139を介して設定される。このコマンドは、スヌープ動作のオン・オフを設定するのみで、バッファ135内のアドレスキューには保持されない。コマンドチェック部138は、I/Oブロック14−jから出力されるコマンドをチェックすることで、スヌープ回路132−jの動作開始又は動作停止の指示であるか否かを判定する。動作オン・オフ部139は、コマンドチェック部138によるコマンドのチェックの結果、動作開始の指示であればスヌープ回路132−jの動作開始を指示し、動作停止の指示であればスヌープ回路132−jの動作停止を指示する。
動作開始が指示されたスヌープ回路132−j内では、アドレスチェック部201がスヌープアドレスをチェックし、キャッシュステータス生成部202がI/Oブロック14−jに割り当てられたアドレス範囲の設定に従って、同じパーティションに属するCPUブロックに対するデータキャッシュの状態、即ち、アクセスがヒット(Hit)したか否かを示すキャッシュステータスを生成する。このI/Oブロック14−jから見たキャッシュステータスは、キャッシュステータス合成部137へ出力される。キャッシュステータス合成部137へは、I/Oブロック14−jと同じパーティションに属するCPUブロック(この場合、CPUブロック11−j等)からも、CPUブロックから見たキャッシュステータスが返される。
キャッシュステータス合成部137で合成されたキャッシュステータスは、全てのCPUブロック11−1〜11−L及びアドレス結合装置13内の全てのスヌープ回路132−1〜132−Mに再度ブロードキャストされる。合成されたキャッシュステータスは、各スヌープ回路132−1〜132−M内のI/Oブロック向けリクエスト生成部203に入力される。例えばI/Oブロック14−jで処理を行う必要がある場合は、アドレス結合装置13内のスヌープ回路132−jにおいてI/Oブロック向けリクエスト生成部203がそのリクエストを生成し、I/Oブロック14−jに転送する。
この場合、CPU11−jからのキャッシュステータスがアドレス結合装置13に再度入力されるまでは、スヌープアドレスは図3中太い破線で示すようにスヌープ回路132−j内に保持されている。具体的には、スヌープアドレスは、アドレスチェック部201内のレジスタ、I/Oブロック向けリクエスト生成部203内のレジスタ、又はスヌープ回路132−j内に別途設けられたレジスタ等に保持される。これは、最終的にスヌープ回路132−j内のI/Oブロック向けリクエスト生成部203がI/Oブロック14−jに対してリクエストを発行するときに、スヌープアドレスの情報が必要になるためである。尚、スヌープアドレスの入力から合成されたキャッシュステータスが入力されるまでの時間が、全CPUブロック11−1〜11−Lで固定サイクルになるように設計されている。
データ転送が発生する場合は、データ結合装置12を介して処理が継続するが、データ転送自体は本発明の要旨と直接関係がないので、周知のデータ転送技術を採用可能であるため、その説明は省略する。
本実施例では、スヌープ回路132−jからI/Oブロック14−jに対して発行するリクエストは、アドレスのフォーマットとは若干異なっており、I/Oブロック11−j等が必要とする情報のみを通知して配線数を削減している。I/Oブロック14−jからアドレス結合装置13への接続に関しても同様で、I/Oブロック14−jが発行しないコマンドのサポートは不要であるため、フォーマットを最適化して信号数を削減している。
次に、コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置13との関係について、図4と共に説明する。図4は、コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置13との関係を説明するブロック図である同図中、図3と同一部分には同一符号を付し、その説明は省略する。
通常のデータ転送は、データ結合装置12を介して行われるが、コンフィギュレーションアクセスを行うためのスヌープアドレスは、その中にデータを包含する形式になっている。
各CPUブロック11−1〜11−L(各CPU110−1〜110−N)の管理ソフトウェアは、アドレス結合装置13の構成を気にする必要は無い。本来、スヌープ回路は、I/Oブロック内に設けられるので、管理ソフトウェアは、各I/Oブロック14−1〜14−Mに対してアドレス範囲を通知するコンフィギュレーションアクセスを行う。このとき、本実施例では、各スヌープ回路132−1〜132−Mはアドレス結合装置13内に設けられているので、自回路内でアドレススヌープ処理を行うのに必要なデータが流れると、そのデータを保持、或いは、コピーして保持して、それ以降のアドレス範囲のチェックの際に使用する。保持、或いは、コピーして保持するデータは、アドレスチェック部201内のレジスタ、I/Oブロック向けリクエスト生成部203内のレジスタ、又はスヌープ回路132−j内に別途設けられたレジスタ等に保持される。図4は、I/Oブロック向けリクエスト生成部203内にデータのコピーが保持され、アドレスチェック部201におけるアドレス範囲のチェックの際にアドレス情報204として使用される場合を示す。
尚、I/Oブロック11−1〜11−Lに対するコンフィギュレーションアクセス自体は実行され、I/Oブロック14−1〜14−Mはそのコンフィギュレーションアクセスの情報を保持する。
このように、本実施例では、管理ソフトウェアを変更することなく、スヌープ回路がI/Oブロック内に設けられた構成のマルチプロセッサシステム用の管理ソフトウェアをそのまま使用することができる。
次に、マルチプロセッサシステム1の処理を、図5と共に説明する。図5は、マルチプロセッサシステム1の処理を説明するフローチャートである。尚、図5はある1つのスヌープアドレスに対する処理を表しているが、実際には各処理はパイプラインになっており、複数のスヌープアドレスが1つのスヌープ回路内を流れ行くこともあり得る。
図5中、ステップS1〜S8はスヌープ回路で実行される処理を示し、ステップS11,S12はCPUブロック又はI/Oブロックで実行される処理を示す。
例えば図3に示す場合のように、CPUブロック11−j及びI/Oブロック14−jからアドレス結合装置13に入力されたアドレスのうち1つが選択されると、スヌープアドレスとしてCPUブロック11−jに出力されると共に、スヌープ回路132−jに入力される。ステップS1は、このスヌープアドレスを入力する。ステップS2は、入力されたスヌープアドレスのコマンド種と、スヌープ回路132−j内に保持されているアドレス情報から、そのアクセスに対してI/Oブロック14−jが応答するべきであるか否か、即ち、アクセスがヒット(Hit)したか否かを判定する。I/Oブロック14−jが応答する必要が無く、ステップS2の判定結果がNOであると、ステップS3はキャッシュステータスとしてノーヒット(No Hit)応答をキャッシュステータス合成部137を介してCPUブロック11−jへ出力し、処理はステップS1へ戻る。
他方、アクセスがヒットしてステップS2の判定結果がYESであると、ステップS4はキャッシュステータスとしてヒット(Hit)応答をキャッシュステータス合成部137を介してCPUブロック11−jへ出力する。又、ステップS5は、該当I/Oブロック11−jに対してヒット応答をしたキャッシュステータスに対して、他のCPUブロックからのアクセス抑止がないか否か、即ち、グローバルヒット(Global Hit)であるか否かを判定する。他のCPUブロックからのアクセス抑止があり(グローバルヒットではなく)ステップS5の判定結果がNOであると、処理はステップS1へ戻る。他のCPUブロックからのアクセス抑止がなく(グローバルヒット)ステップS5の判定結果がYESであると、ステップS6は該当I/Oブロック14−j向けのリクエストを生成して実際にこのI/Oブロック14−jに対して出力する。
ステップS7は、生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであるか否かを判定する。ステップS7の判定結果がYESであると、ステップS8はスヌープ回路132−j内にそのデータを保持、或いは、コピーして保持し、処理はステップS1へ戻る。以降のアドレススヌープ処理は、ステップS8で保持されたデータによる新しい設定に従って行われる。
ステップS7の判定結果がNOであると、ステップS11及びS12の処理はアドレス結合装置13ではなく、CPUブロック11−j又はI/Oブロック14−jが判断して行われる。この判断は、CPUブロック11−jの場合はキャッシュステータスの受信時、I/Oブロック14−jの場合はリクエスト受信時に行われ、図5に示す処理におけるコンフィギュレーション操作との間で処理順序は関係無い。
ステップS11は、コマンドの内容をデコードし、データ転送が必要であるか否かを判定する。ステップS11の判定結果がNOであると、処理はステップS1へ戻る。他方、ステップS11の判定結果がYESであると、ステップS12はデータを持っている側のブロックからデータ結合装置13に出力操作を行う。つまり、リードコマンドであればデータを読み出される側のブロックがデータを出力し、ライトコマンドであればデータを書き込む側のブロックがデータを出力する。
コマンドの中には、リクエスト(パケット)内にデータを含むものもあり、そのようなコマンドの場合にはデータ結合装置12を使ったデータ転送は発生しない。コンフィギュレーションアクセスは、この種のコマンドに該当する。
本発明は、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに実装する場合に好適である。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1) 複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムにおけるアドレススヌープ方法であって、
任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とする、アドレススヌープ方法。
(付記2) 該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該任意の1つのプロセッサブロックに出力し、
該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定することを特徴とする、付記1記載のアドレススヌープ方法。
(付記3) 該任意の1つのI/Oブロックが応答する必要が無いと、キャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、
該任意の1つのI/Oブロックが応答する必要があると、キャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、付記2記載のアドレススヌープ方法。
(付記4) 該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して、他のプロセッサブロックからのアクセス抑止がないか否かを判定し、
該他のCPUブロックからのアクセス抑止がないと、該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、付記3記載のアドレススヌープ方法。
(付記5) 生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであると該アドレス結合装置内にそのデータを保持、或いは、コピーして保持し、以降のアドレススヌープ処理を保持されたデータによる新しい設定に従って行うことを特徴とする、付記4記載のアドレススヌープ方法。
(付記6) 該アドレス結合装置内にアドレススヌープ処理を行うアドレススヌープ回路を該I/Oブロックの数だけ対応させて設け、
各パーティションを、少なくとも1つのプロセッサブロックと、少なくとも1つのI/Oブロックと、該少なくとも1つのI/Oに対応する各アドレススヌープ回路とで構成可能としたことを特徴とする、付記1〜5のいずれか1項記載のアドレススヌープ方法。
(付記7) 複数のプロセッサと複数のメモリからなるプロセッサブロックが複数個アドレス結合装置を介して複数のI/Oブロックと接続された構成のマルチプロセッサシステムであって、
任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行うことを特徴とする、マルチプロセッサシステム。
(付記8) 該アドレス結合装置は、
該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該任意の1つのプロセッサブロックに出力するキャッシュステータス生成手段と、
該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定する手段とを備えたことを特徴とする、付記7記載のマルチプロセッサシステム。
(付記9) 該キャッシュステータス生成手段は、該任意の1つのI/Oブロックが応答する必要が無いとキャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、該任意の1つのI/Oブロックが応答する必要があるとキャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、付記8記載のマルチプロセッサシステム。
(付記10) 該キャッシュステータス生成手段は、該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して他のプロセッサブロックからのアクセス抑止がないか否かを判定し、該他のCPUブロックからのアクセス抑止がないと該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、付記9記載のマルチプロセッサシステム。
(付記11) 該アドレス結合装置は、
生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであると該アドレス結合装置内にそのデータを保持、或いは、コピーして保持する手段を備え、
以降のアドレススヌープ処理を保持されたデータによる新しい設定に従って行うことを特徴とする、付記10記載のマルチプロセッサシステム。
(付記12) 該アドレス結合装置は、
アドレススヌープ処理を行うアドレススヌープ回路を該I/Oブロックの数だけ対応させて備え、
各パーティションを、少なくとも1つのプロセッサブロックと、少なくとも1つのI/Oブロックと、該少なくとも1つのI/Oに対応する各アドレススヌープ回路とで構成可能としたことを特徴とする、付記7〜11のいずれか1項記載のマルチプロセッサシステム。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
本発明になるマルチプロセッサシステムの一実施例の要部を示すブロック図である。 マルチプロセッサシステムのパーティション構成を説明する図である。 アドレススヌープ回路の要部を含むアドレス結合装置の構成を示すブロック図である。 コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置との関係を説明するブロック図である。 マルチプロセッサシステムの処理を説明するフローチャートである。
符号の説明
1 マルチプロセッサシステム
11−1〜11−L CPUブロック
12 データ結合装置
13 アドレス結合装置
14−1〜14−M I/Oブロック
132−1〜132−M スヌープ回路
201 アドレスチェック部
202 キャッシュステータス生成部
203 I/Oブロック向けリクエスト生成部

Claims (12)

  1. 複数のプロセッサブロックがアドレス結合装置を介して複数のI/Oブロックと接続され、各プロセッサブロックが複数のプロセッサ及び複数のメモリを含む構成のマルチプロセッサシステムにおけるアドレススヌープ方法であって、
    任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置において行い、
    該アドレス結合装置はI/Oブロックへのアドレススヌープに対してのみ応答するか否かを判定し、
    該アドレススヌープ処理はプロセッサから入力される全てのコマンドに対して行われることを特徴とする、アドレススヌープ方法。
  2. 各プロセッサブロックと前記アドレス結合装置の間を第1のビット幅の信号線で接続し、各I/Oブロックと前記アドレス結合装置の間を前記第1のビット幅とは異なる第2のビット幅の信号線で接続することを特徴とする、請求項1記載のアドレススヌープ方法。
  3. 該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたアドレスのうち1つを選択してスヌープアドレスとして該アドレス結合装置から全てのプロセッサブロックへブロードキャストし、
    該スヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定することを特徴とする、請求項1又は2記載のアドレススヌープ方法。
  4. 該任意の1つのI/Oブロックが応答する必要が無いと、キャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、
    該任意の1つのI/Oブロックが応答する必要があると、キャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、請求項3記載のアドレススヌープ方法。
  5. 該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して、他のプロセッサブロックからのアクセス抑止がないか否かを前記選択されブロードキャストされたスヌープアドレスに従って判定し、
    該他のプロセッサブロックからのアクセス抑止がないと、該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、請求項4記載のアドレススヌープ方法。
  6. 生成したリクエストがアドレススヌープ処理に関わるデータを含むコンフィギュレーションアクセスであると該アドレス結合装置内にそのデータを保持、或いは、コピーして保持し、以降のアドレススヌープ処理を保持されたデータによる新しい設定に従って行うことを特徴とする、請求項5記載のアドレススヌープ方法。
  7. 複数のプロセッサブロックがアドレス結合装置を介して複数のI/Oブロックと接続され、各プロセッサブロックが複数のプロセッサ及び複数のメモリを含む構成のマルチプロセッサシステムであって、
    任意の1つのプロセッサブロックからアクセスリクエストが発生したときに、該アクセスリクエストに対して応答するか否かを判断するアドレススヌープ処理を、各I/Oブロックに代わって該アドレス結合装置内に設けられたスヌープ回路において行い、
    該アドレス結合装置はI/Oブロックへのアドレススヌープに対してのみ応答するか否かを判定し、
    該アドレススヌープ処理はプロセッサから入力される全てのコマンドに対して行われることを特徴とする、マルチプロセッサシステム。
  8. 各プロセッサブロックと前記アドレス結合装置との間は第1のビット幅の信号線で接続され、各I/Oブロックと前記アドレス結合装置との間は前記第1のビット幅とは異なる第2のビット幅の信号線で接続されたことを特徴とする、請求項7記載のマルチプロセッサシステム。
  9. 該アドレス結合装置は、
    該任意の1つのプロセッサブロック及び任意の1つのI/Oブロックから該アドレス結合装置に入力されたスヌープアドレスのうち1つを選択してブロードキャストスヌープアドレスとして全てのプロセッサブロックにブロードキャストするキャッシュステータス生成手段と、
    前記選択されたスヌープアドレスのコマンド種と、該アドレス結合装置内に保持されているアドレス情報から、該アクセスリクエストに対して該任意の1つのI/Oブロックが応答するべきであるか否かを判定する手段とを備えたことを特徴とする、請求項7又は8記載のマルチプロセッサシステム。
  10. 該キャッシュステータス生成手段は、該任意の1つのI/Oブロックが応答する必要が無いとキャッシュステータスとしてノーヒット応答を該任意の1つのプロセッサブロックへ出力し、該任意の1つのI/Oブロックが応答する必要があるとキャッシュステータスとしてヒット応答を該任意の1つのプロセッサブロックへ出力することを特徴とする、請求項9記載のマルチプロセッサシステム。
  11. 該キャッシュステータス生成手段は、該当I/Oブロックに対してヒット応答をしたキャッシュステータスに対して他のプロセッサブロックからのアクセス抑止がないか否かを前記選択されブロードキャストされたスヌープアドレスに従って判定し、該他のプロセッサブロックからのアクセス抑止がないと該当I/Oブロック向けのリクエストを生成して該当I/Oブロックに対して出力することを特徴とする、請求項10記載のマルチプロセッサシステム。
  12. 該アドレス結合装置は、
    アドレススヌープ処理を行うアドレススヌープ回路を該I/Oブロックの数だけ対応させて備え、
    各パーティションを、少なくとも1つのプロセッサブロックと、少なくとも1つのI/Oブロックと、該少なくとも1つのI/Oに対応する各アドレススヌープ回路とで構成可能としたことを特徴とする、請求項7〜11のいずれか1項記載のマルチプロセッサシステム。
JP2005062661A 2005-03-07 2005-03-07 アドレススヌープ方法及びマルチプロセッサシステム Expired - Fee Related JP4956900B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005062661A JP4956900B2 (ja) 2005-03-07 2005-03-07 アドレススヌープ方法及びマルチプロセッサシステム
US11/259,605 US7418559B2 (en) 2005-03-07 2005-10-27 Address snoop method and multi-processor system
EP05256911.8A EP1701267B8 (en) 2005-03-07 2005-11-08 Address snoop method and multi-processor system
KR1020050116205A KR100813789B1 (ko) 2005-03-07 2005-12-01 어드레스 스누프 방법 및 멀티프로세서 시스템
CN200510127445A CN100587674C (zh) 2005-03-07 2005-12-02 地址探测方法和多处理器***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005062661A JP4956900B2 (ja) 2005-03-07 2005-03-07 アドレススヌープ方法及びマルチプロセッサシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011112553A Division JP5375876B2 (ja) 2011-05-19 2011-05-19 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2006244388A JP2006244388A (ja) 2006-09-14
JP4956900B2 true JP4956900B2 (ja) 2012-06-20

Family

ID=36579175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005062661A Expired - Fee Related JP4956900B2 (ja) 2005-03-07 2005-03-07 アドレススヌープ方法及びマルチプロセッサシステム

Country Status (5)

Country Link
US (1) US7418559B2 (ja)
EP (1) EP1701267B8 (ja)
JP (1) JP4956900B2 (ja)
KR (1) KR100813789B1 (ja)
CN (1) CN100587674C (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713169B2 (en) 2018-01-17 2020-07-14 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10579527B2 (en) 2018-01-17 2020-03-03 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10387310B2 (en) * 2018-01-17 2019-08-20 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US11068407B2 (en) 2018-10-26 2021-07-20 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction
US10884740B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads
US11119781B2 (en) 2018-12-11 2021-09-14 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
CN111694770B (zh) * 2019-03-15 2022-12-02 杭州宏杉科技股份有限公司 一种处理io请求的方法及装置
US11106608B1 (en) 2020-06-22 2021-08-31 International Business Machines Corporation Synchronizing access to shared memory by extending protection for a target address of a store-conditional request
US11693776B2 (en) 2021-06-18 2023-07-04 International Business Machines Corporation Variable protection window extension for a target address of a store-conditional request

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JP3691134B2 (ja) 1995-11-15 2005-08-31 株式会社日立製作所 マルチプロセッサシステム
JP3661249B2 (ja) 1995-11-15 2005-06-15 株式会社日立製作所 マルチプロセッサシステム
US5659710A (en) * 1995-11-29 1997-08-19 International Business Machines Corporation Cache coherency method and system employing serially encoded snoop responses
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
US5923898A (en) 1997-05-14 1999-07-13 International Business Machines Corporation System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched
JP3864509B2 (ja) 1997-08-19 2007-01-10 株式会社日立製作所 マルチプロセッサシステム
KR100258883B1 (ko) * 1997-09-23 2000-06-15 구자홍 멀티 프로세서 시스템의 캐시 메모리 제어방법 및 장치
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
KR19990060119A (ko) * 1997-12-31 1999-07-26 구본준 캐시 제어장치
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6442597B1 (en) * 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
JP3959914B2 (ja) 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
KR100371140B1 (ko) * 2000-01-28 2003-02-07 한국전자통신연구원 캐시부착식 비균등분포적 메모리접근형병렬컴퓨터시스템의 캐시일관성을 유지하기 위한버스스누핑장치 및 방법
JP2001282764A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd マルチプロセッサシステム
US6810467B1 (en) 2000-08-21 2004-10-26 Intel Corporation Method and apparatus for centralized snoop filtering
US7222220B2 (en) * 2001-05-01 2007-05-22 Sun Microsystems, Inc. Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
US6820174B2 (en) * 2002-01-18 2004-11-16 International Business Machines Corporation Multi-processor computer system using partition group directories to maintain cache coherence
US6986013B2 (en) * 2002-12-05 2006-01-10 International Business Machines Corporation Imprecise cache line protection mechanism during a memory clone operation
US20040199722A1 (en) * 2003-04-03 2004-10-07 International Business Machines Corp. Method and apparatus for performing bus tracing in a data processing system having a distributed memory
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering

Also Published As

Publication number Publication date
CN1831789A (zh) 2006-09-13
CN100587674C (zh) 2010-02-03
KR100813789B1 (ko) 2008-03-13
JP2006244388A (ja) 2006-09-14
EP1701267A2 (en) 2006-09-13
EP1701267A3 (en) 2009-01-28
EP1701267B1 (en) 2017-06-14
KR20060097550A (ko) 2006-09-14
EP1701267B8 (en) 2017-08-02
US7418559B2 (en) 2008-08-26
US20060200633A1 (en) 2006-09-07

Similar Documents

Publication Publication Date Title
JP4956900B2 (ja) アドレススヌープ方法及びマルチプロセッサシステム
US6799252B1 (en) High-performance modular memory system with crossbar connections
US7600080B1 (en) Avoiding deadlocks in a multiprocessor system
US8185695B2 (en) Snoop filtering mechanism
US5749095A (en) Multiprocessing system configured to perform efficient write operations
US5958019A (en) Multiprocessing system configured to perform synchronization operations
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US6490661B1 (en) Maintaining cache coherency during a memory read operation in a multiprocessing computer system
WO2012077400A1 (ja) マルチコアシステム、及びそのコアのデータ読み出し方法
US20020044550A1 (en) Conserving system memory bandwidth during a memory read operation in a multiprocessing computer system
US6587926B2 (en) Incremental tag build for hierarchical memory architecture
JP2001184321A (ja) 主記憶共有型並列計算機及びそれに用いるノード制御装置
JPH1097513A (ja) マルチプロセッサ・コンピュータ・システム中のノード、及びマルチプロセッサ・コンピュータ・システム
EP1412871B1 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
JP2000250884A (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
US6587924B2 (en) Scarfing within a hierarchical memory architecture
JP5265827B2 (ja) ハイブリッドコヒーレンスプロトコル
US20040044821A1 (en) Compute node to mesh interface for highly scalable parallel processing system and method of exchanging data
JP5375876B2 (ja) マルチプロセッサシステム
JP4715219B2 (ja) 共有メモリ装置
US20010037426A1 (en) Interrupt handling via a proxy processor
US20040215899A1 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
US6735654B2 (en) Method and apparatus for efficiently broadcasting transactions between an address repeater and a client
JP2001273191A (ja) コンピュータシステム
US5737755A (en) System level mechanism for invalidating data stored in the external cache of a processor in a computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120305

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4956900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees