JP4522817B2 - システム制御装置、情報処理装置及び情報処理装置の制御方法。 - Google Patents

システム制御装置、情報処理装置及び情報処理装置の制御方法。 Download PDF

Info

Publication number
JP4522817B2
JP4522817B2 JP2004309116A JP2004309116A JP4522817B2 JP 4522817 B2 JP4522817 B2 JP 4522817B2 JP 2004309116 A JP2004309116 A JP 2004309116A JP 2004309116 A JP2004309116 A JP 2004309116A JP 4522817 B2 JP4522817 B2 JP 4522817B2
Authority
JP
Japan
Prior art keywords
snoop
local
global
request
retry
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
JP2004309116A
Other languages
English (en)
Other versions
JP2006120029A (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 JP2004309116A priority Critical patent/JP4522817B2/ja
Priority to EP05250463.6A priority patent/EP1650667B1/en
Priority to EP10155672A priority patent/EP2196912B1/en
Priority to US11/045,077 priority patent/US7590686B2/en
Publication of JP2006120029A publication Critical patent/JP2006120029A/ja
Application granted granted Critical
Publication of JP4522817B2 publication Critical patent/JP4522817B2/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
    • 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

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)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、スケーラブルマルチプロセッサシステムのスヌープ処理の性能改善を図るマルチプロセッサシステム制御装置、スケーラブルノード、スケーラブルマルチプロセッサシステム、マルチプロセッサシステム制御方法に関するものである。
図9は、従来のスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。従来のスケーラブルマルチプロセッサシステムは、直接または間接的に相互接続可能なスケーラブルノードであるノード101を複数備える。図9(a)は直接接続の場合を示しており、ノード間は直接接続される。図9(b)は間接接続の場合を示しており、ノード101間はXB(Cross Bar)2で接続される。
図10は、従来のノードの構成の一例を示すブロック図である。従来のスケーラブルマルチプロセッサシステムにおけるノード101は、CPU(Central Processing Unit)3、IO(Input/Output)4、SC(System Controller)105、MAC(Memory Access Controller)6、メインメモリ7からなる。SC105はローカルノードのCPU3、IO4、MAC6に接続されるとともに、他ノードのSC105またはXB2に接続される。また、SC105はスヌープ処理を行うためのスヌープ処理部112を備える。MAC6はメインメモリ7に接続される。
ノード間でメモリを共有する例として、CC−NUMA(Cache Coherent Non-Uniform Memory Access)が挙げられる。ここで、CC−NUMAの動作の概要について説明する。CPU3やIO4からデータの要求が発行されると、まずスヌープ処理部112はローカルノード内の他のCPU3のキャッシュやメインメモリ7に要求データが存在するかどうかのスヌープ処理を行う。これをローカルスヌープと呼ぶ。
ローカルスヌープの結果、ローカルノード内に要求データが存在しない場合、もしくはビジー等によりデータの応答が不可能である場合、スヌープ処理部112は全ノード101に対して要求をブロードキャストし、全ノード同時にスヌープを行う。これをグローバルスヌープと呼ぶ。
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献1が知られている。
特開平7−28748号公報 (第3−4頁、図1)
上述したグローバルスヌープにおいて、要求のアクセス先のアドレス領域が先行の要求によりビジーとなっている場合、先行の要求が終わるまでグローバルスヌープのリトライを繰り返していた。従って、特定のアドレス領域に要求が集中すると、処理に時間がかかっていた。
さらに、グローバルスヌープを待つためのキューは有限であるため、このキューが満杯の場合、後続の要求はブロードキャストすることができなくなる。従って、アクセス先のアドレス領域がビジーでない要求であっても、グローバルスヌープのキューが満杯だと待たされてしまう。つまり、アクセスが集中していないアドレス領域に対する処理が、アクセスが集中するアドレス領域の処理のために、遅くなるという問題があった。
本発明は上述した問題点を解決するためになされたものであり、スヌープリトライの性能を改善するマルチプロセッサシステム制御装置、スケーラブルノード、スケーラブルマルチプロセッサシステム、マルチプロセッサシステム制御方法を提供することを目的とする。
上述した課題を解決するため、本発明は、複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、自ノードからのデータの要求を保持する複数のローカルポートと、前記ローカルポートに保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープ部と、前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストキューと、他ノードからブロードキャストされた要求を保持する複数のグローバルポートと、前記グローバルポートに保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープ部と、前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ローカルポートへリトライ指示を出すローカルリトライモードの2つのリトライモードを持ち、所定の条件に従って前記2つのリトライモードを切り替える、複数のリトライモード制御部とを備えたものである。
また、本発明に係るマルチプロセッサシステム制御装置において、前記ローカルポートは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするものである。
また、本発明は、スケーラブルノードであって、本発明に係るマルチプロセッサシステム制御装置と、前記マルチプロセッサシステム制御装置にデータの要求を行う複数のCPUと、データを保持し、前記マルチプロセッサシステム制御装置からの要求に応じて保持したデータを読み出すメインメモリとを備えたものである。
また、本発明は、スケーラブルマルチプロセッサシステムであって、上述した本発明に係るスケーラブルノードを複数備えたものである。
また、本発明は、複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、自ノードからのデータの要求を保持する複数のローカルポートステップと、前記ローカルポートステップで保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープステップと、前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストステップと、他ノードからブロードキャストされた要求を保持する複数のグローバルポートステップと、前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ローカルポートステップへのリトライ指示を出すローカルリトライモードの2つのリトライモードを持ち、所定の条件に従って前記2つのリトライモードを切り替える、複数のリトライモード制御ステップとを備えたものである。
なお、ローカルスヌープ部とは実施の形態におけるローカルスヌープパイプライン30のことである。また、グローバルスヌープ部とは実施の形態におけるグローバルスヌープパイプライン60のことである。
本発明によれば、グローバルスヌープ待ちのキューを空け、後続の要求のグローバルスヌープを可能とすることにより、後続の要求の遅延を防ぐことができ、結果としてメモリアクセスの性能を向上させることがきる。
以下、本発明の実施の形態について図面を参照しつつ説明する。
図1は、本発明に係るスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。図9と同様、図1(a)は直接接続の場合、図1(b)は間接接続の場合を示す。本発明に係るスケーラブルマルチプロセッサシステムは、図9におけるノード101の代わりにノード1を備える。
図2は、本発明に係るノードの構成の一例を示すブロック図である。本発明に係るノード1は、図10におけるSC105の代わりにSC5を備える。また、本発明に係るSC5は、図10におけるスヌープ処理部112の代わりにスヌープ処理部12を備える。また、本発明に係るSC5は、新たに複数のリトライモード制御部13を備える。リトライモード制御部13はノード毎に対応するため、スケーラブルマルチプロセッサシステムにおけるノード数nだけ用意する。
図3は、本発明に係るスヌープ処理部の構成の一例を示すブロック図である。スヌープ処理部12は、複数のローカルポート21、プライオリティ決定部22、ローカルスヌープパイプライン30、複数のブロードキャストキュー41、プライオリティ決定部42,複数のグローバルポート群50、プライオリティ決定部53、グローバルスヌープパイプライン60で構成される。ここで、グローバルポート群50の数はノード毎に対応するため、ノード数nである。1つのグローバルポート群50は、複数のグローバルポート51、プライオリティ決定部52で構成される。グローバルポート51はノード毎にg個ずつ用意されており、全部でg×n個用意されている。
次に、スヌープ処理部12の動作について説明する。図4は、本発明に係るスヌープ処理部の動作の一例を示すフローチャートである。ここでは、データの要求の発行元のノードにおけるスヌープ処理部12の動作に従って説明する。また、リトライモード制御部13は、スヌープ処理部12にリトライモードの指示を渡す。リトライモードとして、グローバルリトライモードとローカルリトライモードがあり、初期状態をグローバルリトライモードとする。また、スヌープ処理部12は、リトライモード制御部13に状態変数を渡す。
CPU3からSC5へのデータの要求は、まずローカルポート21と呼ばれる、ローカルスヌープ待ちのキューにセットされる。プライオリティ決定部22は、ローカルポート21にセットされた要求に対してプライオリティを決定し、プライオリティを獲得した要求を、ローカルスヌープを実行するためのパイプラインであるローカルスヌープパイプライン30に投入し、ローカルスヌープを行う(S2)。
次に、ローカルスヌープの結果、ローカル解決をしたか否かの判断を行う(S3)。ローカル解決をしていれば(S3,Y)、このフローを終了する。一方、ローカル解決をしていなければ(S3,N)、ブロードキャスト待ちの要求を保持するためのブロードキャストキュー41に、要求をセットする。ここで、ローカルポート21は要求を保持し続ける。グローバルスヌープの処理が確定した段階でグローバルスヌープパイプライン60からリセット指示が出るので、このときローカルポート21は解放される。ローカルポート21に長時間、要求を保持することから、ローカルポート21が満杯となってCPU3やIO4からの後続の要求が送出できなくなることを防ぐために、ローカルポートの個数はCPU3、IO4の要求発行可能数と等しくする。
次に、ローカルスヌープで処理を確定できない要求は、ブロードキャストキュー41においてプライオリティ決定部42によりプライオリティを獲得後、すべてのノード1のSC5にブロードキャストされる(S5)。要求がブロードキャストされると、ブロードキャストキュー41は解放される。
他のSCからブロードキャストされて受信した要求は、グローバルスヌープの実行を待つ要求を保持するためのグローバルポート51にセットされる。プライオリティ決定部52は、1つのグローバルポート群51の中のすべてのグローバルポート51からの出力にプライオリティを与える。プライオリティ決定部53はすべてのグローバルポート群51からの出力にプライオリティを与え、プライオリティを獲得した要求を、グローバルスヌープを実行するためのパイプラインであるグローバルスヌープパイプライン60に投入し、グローバルスヌープを行う(S7)。グローバルスヌープはすべてのSCで同時に実行される。グローバルスヌープの結果、要求データが処理可能か否かの判断を行う(S8)。
要求データが処理可能であれば(S8,Y)、グローバルスヌープパイプライン60からのリセット指示に従って、グローバルポート51は解放され、このフローは終了する。このとき、要求を発行したノードのSCでは、グローバルスヌープパイプライン60からのリセット指示に従って、ローカルポート21に保持されている同一の要求も解放される。
一方、要求データが先行の要求によるビジーのため処理できない場合(S8,N)、リトライモードがローカルリトライモードであるか否かの判断を行う(S11)。
ローカルリトライモードでない、すなわちグローバルリトライモードである場合(S11,N)、処理S7へ戻り、グローバルポート51からグローバルスヌープのためのプライオリティにリトライし、再びグローバルスヌープパイプライン60に投入される。
一方、ローカルリトライモードである場合(S11,Y)、グローバルスヌープパイプライン60からリトライ指示が出されると、グローバルポート51からリトライせず、リトライ指示に対応するグローバルポート51を解放する。
一方、リトライ指示を受けた要求の発行元ノードのSCでは、処理S2に戻り、ローカルポート21に保持されている要求をリトライする。
リトライ指示に対応するグローバルポートが解放されたことにより、ブロードキャストキューでグローバルポートが解放されるのを待っていた後続の要求がブロードキャストされて、グローバルポートにセットされてグローバルスヌープが実行される。
図5は、本発明に係るリトライモード制御部の動作の一例を示すフローチャートである。上述したように、初期状態はグローバルリトライモードとする(S21)。
次に、1つのノードに対応するグローバルポート群52の、すべてのグローバルポート51が満杯になったか否かの判断を行う(S22)。満杯になっていない場合(S22,N)、処理S21に戻る。一方、満杯になった場合(S22,Y)、満杯になったすべての要求がリトライを繰り返すという状況が所定の期間続くか否かの判断を行う(S23)。所定の期間続いていない場合(S23,N)、処理S21に戻る。一方、所定の期間続いた場合(S23,Y)、グローバルリトライモードからローカルリトライモードに移行する(S24)。次に、ローカルリトライモードが所定の期間続いたか否かの判断を行う(S25)。所定の期間続いていない場合(S25,N)、処理S24へ戻る。一方、所定の期間続いた場合(S25,Y)、このフローを終了し、再びこのフローを実行する、すなわちグローバルリトライモードとなる。
次に、上述したリトライモード制御部の動作を実現するための構成の具体例について説明する。図6は、本発明に係るリトライモード制御部の構成の一例を示す回路図である。この回路は、リトライモード(RETRY_MODE信号)の状態を示す1bitのフリップフロップ81と、グローバルポートが満杯の状態である期間とローカルリトライモードの期間とをカウントするための(S+1)ビットのカウンター値(CT[S:0])を示すフリップフロップ82とを備える。
次に、図6に示すリトライモード制御部の動作について説明する。フリップフロップ81のリトライモードが、”0”のときはグローバルリトライモードであり、”1”のときがローカルリトライモードである。パワーオンリセット直後はフリップフロップ81のリトライモード、フリップフロップ82のカウンター値、ともに”0”であり、グローバルリトライモードである。グローバルポートすべてに要求がセットされるとカウンター値のインクリメントが開始される。グローバルポートのいずれかがリセットされると、カウンター値はリセットされる。カウンター値がリセットされずに、設定された値に達すると、リトライモードのビットを反転し、ローカルリトライモードに移行する。このときカウンター値はリセットされる。
ローカルリトライモードのときは、カウンターは常時インクリメントされ、設定された値に達すると、リトライモードのビットを反転し、再びグローバルリトライモードに戻る。このときもカウンターはリセットされる。
上述したリトライモード制御部13がスヌープ処理部12の状態を知るために、ローカルポート21とグローバルポート51のそれぞれに(VALID,HOLD)のビットを設け、ポートの状態を示し、これらの状態変数を対応するリトライモード制御部13へ渡す。ローカルポート21における(VALID,HOLD)を(LV,LH)と呼び、グローバルポート51における(VALID,HOLD)を(GV,GH)と呼ぶことにする。LVはローカルポート21のVALIDビットでローカルポート21に有効な要求がセットされていることを示す。LHはローカルポート21のHOLDビットでローカルスヌープパイプライン30に投入済みであることを示す。GVはグローバルポート51のVALIDビットでグローバルポート51に有効な要求がセットされていることを示す。GHはグローバルポート51のHOLDビットでグローバルスヌープ実行中であることを示す。
このうち、LV、GV、GHは、従来のローカルポートとグローバルポートにも用いられていたビットであり、LHは本発明のローカルリトライ制御を実現するために新たに設けられたビットである。
ローカルポート21とグローバルポート51はそれぞれ、上述した状態変数(VALID,HOLD)を制御するための状態変数制御回路を備える。図7は、本発明に係る状態変数制御回路の構成の一例を示す回路図である。初期状態は(VALID,HOLD)=(0,0)である。ポートに要求をセットする際、SET信号でフリップフロップ91の出力であるVALIDをセットする。また、スヌープのためのプライオリティを獲得したことを示すPRIO_TKN信号を受け取ると、フリップフロップ92の出力であるHOLDをセットする。また、リトライを示すRETRY信号を受け取ると、HOLD信号をリセットする。パワーオンリセット等によりRESET信号を受け取ると、VALIDとHOLDを共にリセットする。
次に、要求毎の状態変数(LV,LH,GV,GH)の遷移について説明する。図8は、本発明に係る状態変数(LV,LH,GV,GH)の遷移の一例を表す状態遷移図である。まず、パワーオンリセット後は(0,0,0,0)である。CPU3またはIO4からSC5へ要求が発行され、ローカルポート21にセットされると、LVがセットされ状態変数は(1,0,0,0)になる。要求がローカルスヌープのプライオリティを獲得するとLHがセットされ状態変数は(1,1,0,0)になる。
ローカルスヌープでローカル解決した場合、LVとLHはリセットされ、状態変数は(0,0,0,0)になり処理が完了する。一方、ローカルスヌープでローカル解決できない場合、要求はブロードキャストされ、グローバルポート51にセットされる。このときGVをセットするので状態変数は(1,1,1,0)となる。その後、要求がグローバルスヌープのプライオリティを獲得するとGHがセットされ、状態変数は(1,1,1,1)になる。
グローバルスヌープにより要求の処理が確定するとローカルポート21、グローバルポート51ともに(VALID,HOLD)がリセットされ、状態変数は(0,0,0,0)となる。
グローバルスヌープでのビジーによりリトライが指示された場合、グローバルリトライモードであれば、GHをリセットし、グローバルスヌープのプライオリティに再び参加する。このとき状態変数は(1,1,1,0)になる。ローカルリトライモードであれば、グローバルポートの(VALID,HOLD)とローカルポートのHOLDをリセットし、ローカルスヌープの手前から処理をやり直す。このときの状態変数は(1,0,0,0)である。
なお、本発明においてローカルスヌープの機構は必須ではなく、CPU3からの要求を直接ブロードキャストするようなシステムにも適用可能である。このようなシステムにおいて、ローカルポート21の代わりにブロードキャストキュー41が要求を保持し、ローカルリトライモードでグローバルスヌープパイプライン60からリトライ指示が出されると、ブロードキャストキュー41に保持されている要求のブロードキャストをリトライする。
(付記1) 複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、
自ノードからのデータの要求を保持する複数のローカルポートと、
前記ローカルポートに保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープ部と、
前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストキューと、
他ノードからブロードキャストされた要求を保持する複数のグローバルポートと、
前記グローバルポートに保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープ部と、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ローカルポートへリトライ指示を出すローカルリトライモードの2つのリトライモードを持ち、所定の条件に従って前記2つのリトライモードを切り替える、複数のリトライモード制御部と、
を備えてなるマルチプロセッサシステム制御装置。
(付記2) 付記1に記載のマルチプロセッサシステム制御装置において、
前記ローカルポートは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御装置。
(付記3) 付記1または付記2に記載のマルチプロセッサシステム制御装置において、
前記ローカルポートの数は、自ノード内のCPUやIOからの要求発行可能数に等しいことを特徴とするマルチプロセッサシステム制御装置。
(付記4) 複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードに備えられ、データの要求に対する処理を行うマルチプロセッサシステム制御装置であって、
自ノードからのデータの要求を保持し、他ノードへブロードキャストするブロードキャストキューと、
他ノードからの要求を保持する複数のグローバルポートと、
前記グローバルポートに保持された要求についてスヌープを行うグローバルスヌープ部と、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートへリトライ指示を出すグローバルリトライモードと前記ブロードキャストキューへリトライ指示を出すローカルリトライモードの2つのリトライモードを持ち、所定の条件に従って前記2つのリトライモードを切り替える、複数のリトライモード制御部と、
を備えてなるマルチプロセッサシステム制御装置。
(付記5) 付記4に記載のマルチプロセッサシステム制御装置において、
前記ブロードキャストキューは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御装置。
(付記6) 付記1乃至付記5のいずれかに記載のマルチプロセッサシステム制御装置において、
前記リトライモード制御部は、前記グローバルスヌープモードにおいて、1つのノードに対応するすべてのグローバルポートが使用中でリトライを行う状態が所定の期間続いた場合に、前記ローカルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御装置。
(付記7) 付記1乃至付記6のいずれかに記載のマルチプロセッサシステム制御装置において、
前記リトライモード制御部は、前記ローカルスヌープモードが所定の期間続いた場合に、前記グローバルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御装置。
(付記8) 付記1乃至付記7のいずれかに記載のマルチプロセッサシステム制御装置において、
前記リトライモード制御部の数は、ノード数と等しいことを特徴とするマルチプロセッサシステム制御装置。
(付記9) 付記1乃至付記8のいずれかに記載のマルチプロセッサシステム制御装置と、
前記マルチプロセッサシステム制御装置にデータの要求を行う複数のCPUと、
データを保持し、前記マルチプロセッサシステム制御装置からの要求に応じて保持したデータを読み出すメインメモリと、
を備えてなるスケーラブルノード。
(付記10) 付記9に記載のスケーラブルノードを複数備えてなるスケーラブルマルチプロセッサシステム。
(付記11) 複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、
自ノードからのデータの要求を保持する複数のローカルポートステップと、
前記ローカルポートステップで保持された要求についてのスヌープであるローカルスヌープを行うローカルスヌープステップと、
前記ローカルスヌープの結果、要求データが処理できない場合に、前記ローカルスヌープを行った要求を保持し、他ノードへブロードキャストするブロードキャストステップと、
他ノードからブロードキャストされた要求を保持する複数のグローバルポートステップと、
前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ローカルポートステップへのリトライ指示を出すローカルリトライモードの2つのリトライモードを持ち、所定の条件に従って前記2つのリトライモードを切り替える、複数のリトライモード制御ステップと、
を備えてなるマルチプロセッサシステム制御方法。
(付記12) 付記11に記載のマルチプロセッサシステム制御方法において、
前記ローカルポートステップは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御方法。
(付記13) 付記11または付記12に記載のマルチプロセッサシステム制御方法において、
前記ローカルポートステップの数は、自ノード内のCPUやIOからの要求発行可能数に等しいことを特徴とするマルチプロセッサシステム制御方法。
(付記14) 複数のノードを備えたスケーラブルマルチプロセッサシステムにおいて、各ノードでのデータの要求に対する処理を行うマルチプロセッサシステム制御方法であって、
自ノードからのデータの要求を保持し、他ノードへブロードキャストするブロードキャストステップと、
他ノードからの要求を保持する複数のグローバルポートステップと、
前記グローバルポートステップで保持された要求についてのスヌープであるグローバルスヌープを行うグローバルスヌープステップと、
前記グローバルスヌープの結果として要求データが処理できない場合に出すリトライ指示について、前記グローバルポートステップへのリトライ指示を出すグローバルリトライモードと前記ブロードキャストステップへのリトライ指示を出すローカルリトライモードの2つのリトライモードを持ち、所定の条件に従って前記2つのリトライモードを切り替える、複数のリトライモード制御ステップと、
を備えてなるマルチプロセッサシステム制御方法。
(付記15) 付記14に記載のマルチプロセッサシステム制御方法において、
前記ブロードキャストステップは、前記ローカルスヌープにより要求データが解決するか、前記グローバルスヌープにより要求データが解決するまで、前記自ノードからのデータの要求を保持することを特徴とするマルチプロセッサシステム制御方法。
(付記16) 付記11乃至付記15のいずれかに記載のマルチプロセッサシステム制御方法において、
前記リトライモード制御ステップは、前記グローバルスヌープモードにおいて、1つのノードに対応するすべてのグローバルポートステップが使用中でリトライを行う状態が所定の期間続いた場合に、前記ローカルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御方法。
(付記17) 付記11乃至付記16のいずれかに記載のマルチプロセッサシステム制御方法において、
前記リトライモード制御ステップは、前記ローカルスヌープモードが所定の期間続いた場合に、前記グローバルスヌープモードに移行することを特徴とするマルチプロセッサシステム制御方法。
(付記18) 付記11乃至付記17のいずれかに記載のマルチプロセッサシステム制御方法において、
前記リトライモード制御ステップの数は、ノード数と等しいことを特徴とするマルチプロセッサシステム制御方法。
本発明に係るスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。 本発明に係るノードの構成の一例を示すブロック図である。 本発明に係るスヌープ処理部の構成の一例を示すブロック図である。 本発明に係るスヌープ処理部の動作の一例を示すフローチャートである。 本発明に係るリトライモード制御部の動作の一例を示すフローチャートである。 本発明に係るリトライモード制御部の構成の一例を示す回路図である。 本発明に係る状態変数制御回路の構成の一例を示す回路図である。 本発明に係る状態変数(LV,LH,GV,GH)の遷移の一例を表す状態遷移図である。 従来のスケーラブルマルチプロセッサシステムの構成の一例を示すブロック図である。 従来のノードの構成の一例を示すブロック図である。
符号の説明
1,101 ノード、2 XB、3 CPU、4 IO、5,105 SC、6 MAC、7 メインメモリ、12,112 スヌープ処理部、13 リトライモード制御部、21 ローカルポート、22,42,52,53 プライオリティ決定部、30 ローカルスヌープパイプライン、41 ブロードキャストキュー、50 グローバルポート群、51 グローバルポート、60 グローバルスヌープパイプライン、81,82,91,92 フリップフロップ。

Claims (9)

  1. データを保持するキャッシュメモリを有するとともにデータの要求を行う演算処理装置と前記キャッシュメモリが保持するデータを記憶する記憶装置を含むノードを複数有する情報処理装置のいずれかのノードに備えられ、データの要求に対する処理を行うシステム制御装置において、
    前記複数のノードのうち前記システム制御装置を含む自ノードからのデータの要求を保持するローカルポートと、
    前記ローカルポートに保持された要求について、前記自ノードが備える演算処理装置のキャッシュメモリ又は記憶装置に対するスヌープであるローカルスヌープを行うローカルスヌープ部と、
    前記ローカルスヌープの結果、前記ローカルスヌープを行った求が処理できなかった場合に、前記ローカルスヌープを行った要求を保持するとともに保持した要求を他ノードへブロードキャストするブロードキャストキューと、
    他ノードからブロードキャストされた要求を保持するグローバルポートと、
    前記グローバルポートに保持された要求について、他ノードが備える複数の演算処理装置のキャッシュメモリ又は記憶装置に対するスヌープであるグローバルスヌープを行うグローバルスヌープ部と、
    処理ができなかった前記グローバルスヌープの要求について、前記ローカルポートに再度ローカルスヌープさせるローカルリトライ又は前記グローバルポートに再度グローバルスヌープさせるグローバルリトライを指示した結果前記ローカルリトライ又は前記グローバルリトライのいずれかのリトライが所定期間継続した場合、他のリトライを指示する複数のリトライ制御部と、
    有することを特徴とするシステム制御装置。
  2. 前記システム制御装置において、
    前記ローカルポートは、
    前記ローカルスヌープ又は前記グローバルスヌープ要求の処理が完了するまで、前記自ノードの要求を保持し続けることを特徴とする請求項1記載のシステム制御装置。
  3. 前記システム制御装置において、
    前記リトライ制御部の
    前記複数のノードの数と等しいことを特徴とす請求項1または請求項2記載のシステム制御装置。
  4. ノードを複数有する情報処理装置において、
    前記ノードは、
    データを保持するキャッシュメモリを有するとともにデータの要求を行う演算処理装置と、
    前記キャッシュメモリが保持するデータを記憶する記憶装置と、
    データの要求に対する処理を行うシステム制御装置とを有し、
    前記システム制御装置は、
    複数の前記ノードのうち前記システム制御装置を含む自ノードからのデータの要求を保持するローカルポートと、
    前記ローカルポートに保持された要求について、前記自ノードが備える演算処理装置のキャッシュメモリ又は記憶装置に対するスヌープであるローカルスヌープを行うローカルスヌープ部と、
    前記ローカルスヌープの結果、前記ローカルスヌープを行った要求が処理できなかった場合に、前記ローカルスヌープを行った要求を保持するとともに、保持した要求を他ノードへブロードキャストするブロードキャストキューと、
    他ノードからブロードキャストされた要求を保持するグローバルポートと、
    前記グローバルポートに保持された要求について、他ノードが備える複数の演算処理装置のキャッシュメモリ又は記憶装置に対するスヌープであるグローバルスヌープを行うグローバルスヌープ部と、
    処理ができなかった前記グローバルスヌープの要求について、前記ローカルポートに再度ローカルスヌープさせるローカルリトライ又は前記グローバルポートに再度グローバルスヌープさせるグローバルリトライを指示した結果、前記ローカルリトライ又は前記グローバルリトライのいずれかのリトライが所定期間継続した場合、他のリトライを指示する複数のリトライ制御部と、
    を有することを特徴とする情報処理装置。
  5. 前記情報処理装置において、
    前記ローカルポート
    前記ローカルスヌープ又は前記グローバルスヌープ要求処理が完了するまで前記自ノードの要求を保持し続けることを特徴とする請求項4記載の情報処理装置
  6. 前記情報処理装置において、
    前記リトライ制御部の数は、
    前記ノードの数と等しいことを特徴とする請求項4または請求項5記載の情報処理装置。
  7. データを保持するキャッシュメモリを有するとともにデータの要求を行う演算処理装置と前記キャッシュメモリが保持するデータを記憶する記憶装置を含むノードを複数有する情報処理装置のいずれかのノードに備えられ、データの要求に対する処理を行うとともに互いに接続された第1及び第2のシステム制御装置を有する情報処理装置の制御方法において、
    前記第1のシステム制御装置が有するローカルポートが、前記複数のノードのうち前記第1のシステム制御装置を含む第1のノードからのデータの要求を保持するステップと、
    前記第1のシステム制御装置が有するローカルスヌープ部が、前記ローカルポートに保持された要求について、前記第1のノードが備える演算処理装置のキャッシュメモリ又は記憶装置に対するスヌープであるローカルスヌープを行うステップと、
    前記ローカルスヌープの結果、前記ローカルスヌープを行った要求が処理できなかった場合に、前記第1のシステム制御装置が有するブロードキャストキューが、前記ローカルスヌープを行った要求を保持するとともに、保持した要求を他ノードへブロードキャストするステップと、
    前記第2のシステム制御装置が有するグローバルポートが、前記第1のシステム制御装置からブロードキャストされた要求を保持するステップと、
    前記第2のシステム制御装置が有するグローバルスヌープ部が、前記グローバルポートに保持された要求について、前記第2のシステム制御装置を含む第2のノードが備える複数の演算処理装置のキャッシュメモリ又は記憶装置に対するスヌープであるグローバルスヌープを行うステップと、
    前記第1のシステム制御装置が有するリトライ制御部が、処理ができなかった前記グローバルスヌープの要求について、前記ローカルポートに再度ローカルスヌープさせるローカルリトライ又は前記グローバルポートに再度グローバルスヌープさせるグローバルリトライを指示するステップと、
    前記第1のシステム制御装置が有するリトライ制御部が、前記ローカルリトライ又は前記グローバルリトライを指示した結果、前記ローカルリトライ又は前記グローバルリトライのいずれかのリトライが所定期間継続した場合、他のリトライを指示するステップと、
    を有することを特徴とする情報処理装置の制御方法。
  8. 前記情報処理装置の制御方法において、
    前記ローカルポートは、
    前記ローカルスヌープ又は前記グローバルスヌープの要求の処理が完了するまで、前記第1のノードの要求を保持し続けることを特徴とする請求項7記載の情報処理装置の制御方法。
  9. 前記情報処理装置の制御方法において、
    前記リトライ制御部の数は、
    前記複数のノードの数と等しいことを特徴とする請求項7または請求項8記載の情報処理装置の制御方法。
JP2004309116A 2004-10-25 2004-10-25 システム制御装置、情報処理装置及び情報処理装置の制御方法。 Expired - Fee Related JP4522817B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004309116A JP4522817B2 (ja) 2004-10-25 2004-10-25 システム制御装置、情報処理装置及び情報処理装置の制御方法。
EP05250463.6A EP1650667B1 (en) 2004-10-25 2005-01-28 Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
EP10155672A EP2196912B1 (en) 2004-10-25 2005-01-28 Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
US11/045,077 US7590686B2 (en) 2004-10-25 2005-01-31 Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004309116A JP4522817B2 (ja) 2004-10-25 2004-10-25 システム制御装置、情報処理装置及び情報処理装置の制御方法。

Publications (2)

Publication Number Publication Date
JP2006120029A JP2006120029A (ja) 2006-05-11
JP4522817B2 true JP4522817B2 (ja) 2010-08-11

Family

ID=35788752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004309116A Expired - Fee Related JP4522817B2 (ja) 2004-10-25 2004-10-25 システム制御装置、情報処理装置及び情報処理装置の制御方法。

Country Status (3)

Country Link
US (1) US7590686B2 (ja)
EP (2) EP1650667B1 (ja)
JP (1) JP4522817B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4695367B2 (ja) * 2004-08-31 2011-06-08 富士通株式会社 情報処理装置,制御装置及び情報処理装置の制御方法
US7395376B2 (en) * 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US7360032B2 (en) * 2005-07-19 2008-04-15 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
JP4373485B2 (ja) 2006-02-28 2009-11-25 富士通株式会社 情報処理装置及び該制御方法
WO2007099614A1 (ja) 2006-02-28 2007-09-07 Fujitsu Limited システムコントローラおよびキャッシュ制御方法
JP4912789B2 (ja) * 2006-08-18 2012-04-11 富士通株式会社 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法
JP2009223759A (ja) 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置,メモリ制御方法およびメモリ制御装置
JP5321203B2 (ja) * 2009-03-31 2013-10-23 富士通株式会社 システム制御装置、情報処理システムおよびアクセス処理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728748A (ja) * 1993-07-09 1995-01-31 Hitachi Ltd バス制御機構及び計算機システム
JP2982868B2 (ja) * 1997-04-14 1999-11-29 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ待ち時間を短縮する方法およびコンピュータ・システム
JP2000293390A (ja) * 1999-04-01 2000-10-20 Hitachi Ltd 多重化情報処理システム
US20030005236A1 (en) * 2001-06-29 2003-01-02 International Business Machines Corporation Imprecise snooping based invalidation mechanism

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584101B2 (en) * 1998-12-04 2003-06-24 Pmc-Sierra Ltd. Communication method for packet switching systems
US20050262309A1 (en) * 2004-04-28 2005-11-24 Frey Robert T Proactive transfer ready resource management in storage area networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728748A (ja) * 1993-07-09 1995-01-31 Hitachi Ltd バス制御機構及び計算機システム
JP2982868B2 (ja) * 1997-04-14 1999-11-29 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ待ち時間を短縮する方法およびコンピュータ・システム
JP2000293390A (ja) * 1999-04-01 2000-10-20 Hitachi Ltd 多重化情報処理システム
US20030005236A1 (en) * 2001-06-29 2003-01-02 International Business Machines Corporation Imprecise snooping based invalidation mechanism

Also Published As

Publication number Publication date
US20060090041A1 (en) 2006-04-27
US7590686B2 (en) 2009-09-15
JP2006120029A (ja) 2006-05-11
EP1650667A2 (en) 2006-04-26
EP2196912B1 (en) 2012-01-25
EP1650667B1 (en) 2015-11-18
EP1650667A3 (en) 2009-04-15
EP2196912A1 (en) 2010-06-16

Similar Documents

Publication Publication Date Title
US6785776B2 (en) DMA exclusive cache state providing a fully pipelined input/output DMA write mechanism
US6029204A (en) Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries
JP5558982B2 (ja) アトミックなセマフォ操作を行う方法および装置
JP5498505B2 (ja) データバースト間の競合の解決
JP2007041781A (ja) リコンフィグ可能な集積回路装置
EP1650667B1 (en) Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
US20070076246A1 (en) Image processing apparatus
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
JP2007207026A (ja) Dma転送装置
JP4457047B2 (ja) マルチプロセッサシステム
CN116880773B (zh) 一种内存扩展装置及数据处理方法、系统
WO2007096979A1 (ja) 情報処理装置およびデータ転送方法
US20070073977A1 (en) Early global observation point for a uniprocessor system
EP3398071B1 (en) Systems, methods, and apparatuses for distributed consistency memory
US8230117B2 (en) Techniques for write-after-write ordering in a coherency managed processor system that employs a command pipeline
JP2008046890A (ja) マルチプロセッサシステム
JP2006085428A (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
US6782456B2 (en) Microprocessor system bus protocol providing a fully pipelined input/output DMA write mechanism
US6826643B2 (en) Method of synchronizing arbiters within a hierarchical computer system
JP2001167058A (ja) 情報処理装置
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
JP2008511890A (ja) アトミック・オペレーションを用いて情報単位を変更する方法及び装置
JP2008217623A (ja) データプロセッサ
JP4818820B2 (ja) バスシステムおよびバススレーブならびにバス制御方法
JPH05282242A (ja) バス制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4522817

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees