JP5375876B2 - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
JP5375876B2
JP5375876B2 JP2011112553A JP2011112553A JP5375876B2 JP 5375876 B2 JP5375876 B2 JP 5375876B2 JP 2011112553 A JP2011112553 A JP 2011112553A JP 2011112553 A JP2011112553 A JP 2011112553A JP 5375876 B2 JP5375876 B2 JP 5375876B2
Authority
JP
Japan
Prior art keywords
address
block
snoop
blocks
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
JP2011112553A
Other languages
English (en)
Other versions
JP2011154735A (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 JP2011112553A priority Critical patent/JP5375876B2/ja
Publication of JP2011154735A publication Critical patent/JP2011154735A/ja
Application granted granted Critical
Publication of JP5375876B2 publication Critical patent/JP5375876B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • 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ブロックと、前記複数のプロセッサブロックと前記複数のI/Oブロックとの間に介在するアドレス結合装置とを有するマルチプロセッサシステムであって、前記アドレス結合装置は、前記I/Oブロックの各々に対応して設けあれる、複数のアドレススヌープ回路と、前記複数のプロセッサブロックのいずれかから入力したアドレスを、当該アドレス結合装置に設けられた前記複数のアドレススヌープ回路のうち各アドレススヌープ回路にスヌープアドレスとしてブロードキャストする手段とを備え、前記スヌープアドレスを受信した前記各アドレススヌープ回路は、自身に対応するI/Oブロックが入力したスヌープアドレスに対して応答する必要があるか否かを判別するマルチプロセッサシステムによっても達成できる。
本発明によれば、多数のI/Oブロックをプロセッサブロックから独立させてマルチプロセッサシステムに容易に実装可能であると共に、マルチプロセッサシステムの性能の上限の低下(レイテンシの増加)を防止可能なアドレススヌープ方法及びマルチプロセッサシステムを実現することができる。
本発明になるマルチプロセッサシステムの一実施例の要部を示すブロック図である。 マルチプロセッサシステムのパーティション構成を説明する図である。 アドレススヌープ回路の要部を含むアドレス結合装置の構成を示すブロック図である。 コンフィグレーションアクセスを行う場合のCPUブロックの管理ソフトウェアとアドレス結合装置との関係を説明するブロック図である。 マルチプロセッサシステムの処理を説明するフローチャートである。
一般的なマルチプロセッサシステムの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項記載のマルチプロセッサシステム。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
1 マルチプロセッサシステム
11−1〜11−L CPUブロック
12 データ結合装置
13 アドレス結合装置
14−1〜14−M I/Oブロック
132−1〜132−M スヌープ回路
201 アドレスチェック部
202 キャッシュステータス生成部
203 I/Oブロック向けリクエスト生成部

Claims (8)

  1. 複数のプロセッサブロックと、
    複数のI/Oブロックと、
    前記複数のプロセッサブロックと前記複数のI/Oブロックとの間に介在するアドレス結合装置とを有するマルチプロセッサシステムであって、
    前記アドレス結合装置は、
    前記I/Oブロックの各々に対応して設けられる、複数のアドレススヌープ回路と、
    前記複数のプロセッサブロックのいずれかから入力したアドレスを、当該アドレス結合装置に設けられた前記複数のアドレススヌープ回路のうちアドレススヌープ回路にスヌープアドレスとしてブロードキャストする手段とを備え、
    前記スヌープアドレスを受信した前記アドレススヌープ回路は、自身に対応するI/Oブロックが入力したスヌープアドレスに対して応答する必要があるか否かを判別することを特徴とする、マルチプロセッサシステム。
  2. 前記各アドレススヌープ回路は、
    対応するI/Oブロックに対するアクセスが確定した場合、当該I/Oブロックに前記アドレスを通知することを特徴とする、請求項1記載のマルチプロセッサシステム。
  3. 前記アドレス結合装置は、
    前記スヌープアドレスを、ブロードキャストスヌープアドレスとして全てのプロセッサブロックにブロードキャストするキャッシュステータス生成手段を更に備えることを特徴とする、請求項1記載のマルチプロセッサシステム。
  4. 前記キャッシュステータス生成手段は、
    I/Oブロックが応答する必要が無い場合には、キャッシュステータスとしてノーヒット応答をプロセッサブロックへ出力し、
    いずれかのI/Oブロックが応答する必要がある場合には、キャッシュステータスとしてヒット応答をプロセッサブロックへ出力することを特徴とする、請求項記載のマルチプロセッサシステム。
  5. 前記各アドレススヌープ回路は、
    入力するスヌープアドレスのコマンド種と、前記アドレス結合装置が保持するアドレス情報とから、入力したスヌープアドレスに対して対応するI/Oブロックが応答しべきであるか否かを判定することを特徴とする、請求項1乃至4のいずれかに記載のマルチプロセッサシステム。
  6. 前記アドレス結合装置は更に、
    前記複数のプロセッサブロックのいずれか及び前記複数のI/Oブロックのいずれかから入力したアドレスを保持するバッファと、
    前記バッファが保持するアドレスを選択する選択部とを備えることを特徴とする、請求項1記載のマルチプロセッサシステム。
  7. 前記各アドレススヌープ回路は、
    いずれかのI/Oブロックにヒット応答をしたキャッシュステータスに対して他のプロセッサブロックからのアクセス抑止があるか否かを判定し、
    他のプロセッサブロックからのアクセス抑止が無いと判定した場合には、I/Oブロック向けのリクエストを生成して対応するI/Oブロックに対して出力することを特徴とする、請求項1乃至6のいずれかに記載のマルチプロセッサシステム。
  8. 各プロセッサブロックと前記アドレス結合装置との間は第1のビット幅の信号線で接続され、各I/Oブロックと前記アドレス結合装置との間は前記第1のビット幅とは異なる第2のビット幅の信号線で接続されたことを特徴とする、請求項1記載のマルチプロセッサシステム。
JP2011112553A 2011-05-19 2011-05-19 マルチプロセッサシステム Expired - Fee Related JP5375876B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2011154735A JP2011154735A (ja) 2011-08-11
JP5375876B2 true JP5375876B2 (ja) 2013-12-25

Family

ID=44540593

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP5375876B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659710A (en) * 1995-11-29 1997-08-19 International Business Machines Corporation Cache coherency method and system employing serially encoded snoop responses
JP3864509B2 (ja) * 1997-08-19 2007-01-10 株式会社日立製作所 マルチプロセッサシステム
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
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
JP2001282764A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd マルチプロセッサシステム
US6820174B2 (en) * 2002-01-18 2004-11-16 International Business Machines Corporation Multi-processor computer system using partition group directories to maintain cache coherence
US7146468B2 (en) * 2002-04-24 2006-12-05 Ip-First, Llc. Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache
US6986013B2 (en) * 2002-12-05 2006-01-10 International Business Machines Corporation Imprecise cache line protection mechanism during a memory clone operation

Also Published As

Publication number Publication date
JP2011154735A (ja) 2011-08-11

Similar Documents

Publication Publication Date Title
JP4956900B2 (ja) アドレススヌープ方法及びマルチプロセッサシステム
US6799252B1 (en) High-performance modular memory system with crossbar connections
US8185695B2 (en) Snoop filtering mechanism
US7600080B1 (en) Avoiding deadlocks in a multiprocessor system
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
JP3765586B2 (ja) 多重プロセッサコンピューターシステムのアーキテクチャ
WO2012077400A1 (ja) マルチコアシステム、及びそのコアのデータ読み出し方法
US7380102B2 (en) Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response
EP1412871B1 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
JP5265827B2 (ja) ハイブリッドコヒーレンスプロトコル
US20040044877A1 (en) Computer node to mesh interface for highly scalable parallel processing system
US11449489B2 (en) Split transaction coherency protocol in a data processing system
US7043612B2 (en) Compute node to mesh interface for highly scalable parallel processing system and method of exchanging data
JP5375876B2 (ja) マルチプロセッサシステム
US20010037426A1 (en) Interrupt handling via a proxy processor
JP4715219B2 (ja) 共有メモリ装置
US10642760B2 (en) Techniques for command arbitation in symmetric multiprocessor systems
US7167955B1 (en) System and method for testing and initializing directory store memory
EP2189909B1 (en) Information processing unit and method for controlling the same
US6735654B2 (en) Method and apparatus for efficiently broadcasting transactions between an address repeater and a client
JP2001273191A (ja) コンピュータシステム
JP3983926B2 (ja) マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム
WO2014006732A1 (ja) データ訂正方法、マルチプロセッサシステム、及びプロセッサ
JP2015170313A (ja) 演算処理装置および演算処理装置の制御方法
JP2005148910A (ja) データ二重化装置及び方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130226

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: 20130827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130909

R150 Certificate of patent or registration of utility model

Ref document number: 5375876

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