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

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

Info

Publication number
JP6882681B2
JP6882681B2 JP2017136131A JP2017136131A JP6882681B2 JP 6882681 B2 JP6882681 B2 JP 6882681B2 JP 2017136131 A JP2017136131 A JP 2017136131A JP 2017136131 A JP2017136131 A JP 2017136131A JP 6882681 B2 JP6882681 B2 JP 6882681B2
Authority
JP
Japan
Prior art keywords
information processing
request
processing device
ring bus
unit
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.)
Active
Application number
JP2017136131A
Other languages
English (en)
Other versions
JP2019020808A (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 JP2017136131A priority Critical patent/JP6882681B2/ja
Priority to US16/008,095 priority patent/US10459841B2/en
Publication of JP2019020808A publication Critical patent/JP2019020808A/ja
Application granted granted Critical
Publication of JP6882681B2 publication Critical patent/JP6882681B2/ja
Active 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、情報処理システム、情報処理装置、及び情報処理システムの制御方法に関する。
図11に、複数のノードを環状に接続するリングバスRINGを介して複数のノード(情報処理装置)110が接続された情報処理システムを示す。各ノード110は、CPU(Central Processing Unit)111、メモリ112、メモリコントローラ113、及びクロスバ部(XB)114を有する。CPU111は、演算処理を行うとともに、リクエストを発行する。メモリコントローラ113は、受信したリクエストに応じて、メモリ112に対しデータの書き込み(データライト)や読み出し(データリード)を行う。クロスバ部(XB)114は、リングバスRINGを介して伝送されるリクエスト等のパケットの宛先判定を行い、パケットの伝送制御を行う。
クロスバ部(XB)114同士がリング状に接続されており、各ノード110は、リングバスRINGを介して接続される任意のノードのメモリ112にアクセス可能である。各ノード110のクロスバ部(XB)114は、他ノード宛のリクエストを保持部であるキュー(バッファ)Q11、Q12に格納し、調停部115で調停を取って次段の他ノードに送信する。また、クロスバ部(XB)114は、自ノード宛のリクエストをキュー(バッファ)Q21、Q22に格納し、調停部116で調停を取ってメモリコントローラ113に送信する。このようにして各ノード110は、自ノード宛のリクエストを受け取って処理を行い、自ノード宛ではないリクエストを次段の他ノードに送信する。
ここで、図11に示したようなリングバスRINGを介して接続される複数のノード110を有する情報処理システムでは、あるノードがビジー状態になり前段のノードからのリクエストの受信を抑止すると、前段のノードにリクエストが溜まっていき、最終的には最初にビジー状態となったノードの次段のノードもビジー状態となって、デッドロックが発生する。
例えば、図11に示したノード(A)110−Aからノード(C)110−Cへのメモリアクセスリクエストにおいて、ノード(C)110−Cのメモリコントローラ113−Cの処理が遅く、ノード(B)110−Bがビジー状態になると、ノード(A)110−Aの他ノードからのリクエストも発行できなくなる。そして、ノード(A)110−Aがビジー状態になると、ノード(D)110−Dの他ノードからのリクエストも発行できなくなりビジー状態となってデッドロックが発生する。このようにリングバスRINGを介して接続される複数のノード110を有する情報処理システムでは、あるノードがビジー状態になることによってデッドロックが発生してしまうことがある。
デッドロックの状況を検出したときに、キューではなく、メモリにリクエストを格納することでデッドロックの状況を解決する技術が提案されている(例えば、特許文献1参照)。
特開2000−67023号公報
1つの側面では、本発明の目的は、リングバスを介して接続される複数の情報処理装置を有する情報処理システムにおいて、デッドロックの発生を防止することにある。
情報処理システムの一態様は、環状のバスであるリングバスを介して接続される複数の情報処理装置を有し、情報処理装置は、リングバスを介して受信する他の情報処理装置への第1のリクエストを格納する複数のエントリを有する第1の保持部と、第1の保持部に格納した第1のリクエスト及び自身が発行する他の情報処理装置への第2のリクエストを次段の情報処理装置へ順次送信する送信部と、第1の保持部におけるエントリの使用可能数を制御する制御部と、第2のリクエストの送信を制御する抑止部とを有する。制御部は、第1の保持部におけるエントリの使用数が第1の閾値以上である状態が第1の時間より長く継続し、かつ次段の情報処理装置へのリクエストの送信が抑止された状態が第2の時間より長く継続した場合、第1の保持部におけるエントリの使用可能数を第1の閾値より大きい第2の閾値に変更し、抑止信号を出力し、抑止部は、抑止信号に応じて、リングバスへの第2のリクエストの送信を抑止する。
発明の一態様においては、リングバスを介して接続される複数の情報処理装置を有する情報処理システムにおいて、デッドロックの発生を防止することができる。
図1は、第1の実施形態における情報処理システムの構成例を示す図である。 図2は、第1の実施形態におけるノードの構成例を示す図である。 図3は、第1の実施形態におけるリモートキューを説明する図である。 図4は、第1の実施形態におけるデッドロック制御部の構成例を示す図である。 図5は、第1の実施形態におけるデッドロック制御部の動作例を示すフローチャートである。 図6は、第1の実施形態におけるノードの動作例を示すフローチャートである。 図7は、第2の実施形態における情報処理システムの構成例を示す図である。 図8は、第2の実施形態におけるノードの構成例を示す図である。 図9は、第3の実施形態における情報処理システムの構成例を示す図である。 図10は、第3の実施形態におけるノードの構成例を示す図である。 図11は、情報処理システムの構成例を示す図である。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態における情報処理システムの構成例を示す図である。第1の実施形態における情報処理システムは、複数のノードを環状に接続するリングバスRINGを介して接続される複数の情報処理装置としてのノード10を有する。図2にノード10内部の構成例を示す。
本実施形態では、あるノード10から発行されたリクエストは単方向(一方の方向のみ)に伝搬し、本例では、ノードA、B、C、D、A、B、・・・の方向に伝搬するものとするが、逆であってもよい。なお、図1には、4つのノード10−A〜10−DがリングバスRINGを介して接続される構成を示しているが、これに限定されるものではなく、リングバスRINGを介して接続されるノードの数は任意の複数である。
図2は、第1の実施形態におけるノード10の構成例を示す図である。ノード10は、CPU(Central Processing Unit)11、メモリ12、メモリコントローラ13、及びクロスバ部(XB)14を有する。なお、図2においては、説明の便宜上、ノード10が有する機能部として、CPU11、メモリ12、メモリコントローラ13、及びクロスバ部(XB)14を示したが、他の機能部を有していてもよい。
CPU11は、演算処理を行うとともに、リクエストを発行する。メモリコントローラ13は、受信したリクエストに応じて、メモリ12に対しデータの書き込み(データライト)や読み出し(データリード)を行う。クロスバ部(XB)14は、リングバスRINGを介して伝送されるリクエスト等のパケットの宛先判定を行い、パケットの伝送制御を行う。また、クロスバ部(XB)14は、デッドロック状態の検出を行い、デッドロックが発生することを防止するための制御を行う。
クロスバ部(XB)14は、それぞれ保持部に該当する4つのキュー(バッファ)Q11、Q12、Q21、Q22、調停部(セレクタ)15、18、デッドロック制御部16、及び抑止部17を有する。クロスバ部(XB)14に入力されたリクエストREQF、REQNは、リクエスト内の宛先(発行先)情報に基づいてキュー(バッファ)Q11、Q12、Q21、Q22の何れかに格納される。キュー(バッファ)Q11、Q12、Q21、Q22は、それぞれ複数のエントリを有する。
第1の保持部としてのリモートキューQ11は、前段の(1つ前の)他ノードから受信するリクエストREQFの内の他ノード宛のリクエストを格納するキューである。リモートキューQ11は、リクエストがエントリに書き込まれたときに信号Q11Wを出力(値“1”に)し、リクエストがエントリから読み出されたときに信号Q11Rを出力(値“1”に)する。
ここで、リモートキューQ11は、図3に一例を示すように、通常モード及びデッドロック解消モードで動作時に使用される通常エントリ301とデッドロック解消モードで動作時に使用される拡張エントリ302とを有する。つまり、リモートキューQ11は、通常モードでは、通常エントリ301である閾値Aの個数のエントリが使用可能となり、デッドロック解消モードでは、通常エントリ301と拡張エントリ302とを合わせた閾値Bの個数のエントリが使用可能となる。なお、デッドロック解消モードでの動作時に、使用しているエントリ数が閾値C未満となると、デッドロック解消モードから通常モードに遷移する。
第2の保持部としてのローカルキューQ12は、自ノードのCPU11が発行したリクエストREQNの内の他ノード宛のリクエストを格納するキューである。リモートキューQ11及びローカルキューQ12に格納されたリクエストは、調停部15での調停後、リクエストREQSとして次段の(1つ後の)他ノードに送信される。なお、調停部15は、次段の他ノードから入力されるビジー信号BSYIが“1”である場合、次段の他ノードへのリクエストの送信を抑止する。
キューQ21は、前段の他ノードから受信するリクエストREQFの内の自ノードのメモリ12に対するリクエストを格納するキューである。キューQ22は、自ノードのCPU11が発行したリクエストREQNの内の自ノードのメモリ12に対するリクエストを格納するキューである。キューQ21、Q22に格納されたリクエストは、調停部18での調停後、メモリコントローラ13に送信される。
デッドロック制御部16は、次段の他ノードから入力されるビジー信号BSYI及びリモートキューQ11から出力される信号Q11W、Q11Rに基づいて、デッドロック状態であるか否かを判定する。デッドロック制御部16は、デッドロック状態であると判定した場合、デッドロック解消モードへ遷移して、自ノードからのリクエストのリングバスへの新規発行を抑止する抑止信号QASを出力(値“1”に)する。また、デッドロック制御部16は、リモートキューQ11で使用しているエントリ数が使用可能なエントリ数に達した場合、前段の他ノードにビジー信号BSYOを出力(値“1”に)する。
抑止部17は、デッドロック制御部16から出力される抑止信号QASに応じて、ローカルキューQ12から調停部15へのリクエストの転送を制御する。抑止部17は、抑止信号QASの値が“1”である場合、ローカルキューQ12から調停部15へのリクエストの転送を抑止し、リングバスへの新規リクエストの発行を抑止する。
図4は、第1の実施形態におけるデッドロック制御部16の構成例を示す図である。デッドロック制御部16は、カウンタ401、402、411、論理和演算回路(OR回路)403、404、閾値保持回路405、412、413、414、比較回路406、407、415、416、417、論理積演算回路(AND回路)408、フラグ保持回路409、及びセレクタ418を有する。
カウンタ401は、次段の他ノードからビジー信号BSYIが出力されている(値が“1”である)期間をカウントしてカウント値CNTAを出力する。また、カウンタ402は、自ノードからビジー信号BSYOを出力している(値が“1”である)期間をカウントしてカウント値CNTBを出力する。カウンタ401は、例えばビジー信号BSYIが“1”である場合、図示しないクロック信号の1サイクル毎にカウント値CNTAを1増加させ、OR回路403の出力が“1”となった場合、カウント値CNTAを0にクリアする。また、カウンタ402は、例えばビジー信号BSYOが“1”である場合、図示しないクロック信号の1サイクル毎にカウント値CNTBを1増加させ、OR回路404の出力が“1”となった場合、カウント値CNTBを0にクリアする。
OR回路403には、ビジー信号BSYIの反転信号及びAND回路408の出力が入力され、OR回路404には、ビジー信号BSYOの反転信号及びAND回路408の出力が入力される。したがって、カウンタ401は、ビジー信号BSYIが“0”である場合、又はAND回路408の出力が“1”となった場合、カウント値CNTAを0にクリアし、カウンタ402は、ビジー信号BSYOが“0”である場合、又はAND回路408の出力が“1”となった場合、カウント値CNTBを0にクリアする。
閾値保持回路405は、閾値Tを保持する。比較回路406は、カウンタ401から出力されるカウント値CNTAと閾値保持回路405により保持される閾値Tとを比較して比較結果を出力する。比較回路406は、カウント値CNTAが閾値Tより大きい場合、出力を“1”にし、カウント値CNTAが閾値T以下である場合、出力を“0”にする。また、比較回路407は、カウンタ402から出力されるカウント値CNTBと閾値保持回路405により保持される閾値Tとを比較して比較結果を出力する。比較回路407は、カウント値CNTBが閾値Tより大きい場合、出力を“1”にし、カウント値CNTBが閾値T以下である場合、出力を“0”にする。
AND回路408は、比較回路406、407の出力、及び抑止信号QASの反転信号が入力され、その演算結果を出力する。すなわち、AND回路408は、カウント値CNTA、CNTBがともに閾値Tより大きく、かつ抑止信号QASが“0”である場合、出力を“1”にし、そうでない場合、出力を“0”にする。
フラグ保持回路409は、デッドロック解消モードであるか否かを示すフラグを保持するとともに、フラグに応じた抑止信号QASを出力する。フラグ保持回路409は、AND回路408の出力が“1”になったとき、フラグを“1”(デッドロック解消モードである)に設定し、比較回路417の出力が“1”になったとき、フラグを“0”(デッドロック解消モードでない)に設定する。また、フラグ保持回路409は、フラグが“1”であれば出力する抑止信号QASを“1”にし、フラグが“0”であれば出力する抑止信号QASを“0”にする。
ここで、比較回路417の出力は、リモートキューQ11で使用しているエントリ数が閾値C未満であるときに“1”となる。したがって、フラグ保持回路409は、抑止信号QASが“0”であって、かつカウント値CNTA、CNTBがともに閾値Tより大きくなった場合、フラグを“1”に設定し、リモートキューQ11で使用しているエントリ数が閾値C未満になった場合、フラグを“0”に設定する。
カウンタ411は、リモートキューQ11でのエントリの使用数をカウントしてカウント値CNTCを出力する。カウンタ411は、リモートキューQ11からの信号Q11Wが“1”になるとカウント値CNTCを1増加させ、リモートキューQ11からの信号Q11Rが“1”になるとカウント値CNTCを1減少させる。閾値保持回路412は閾値Aを保持し、閾値保持回路413は閾値Bを保持し、閾値保持回路414は閾値Cを保持する。ここで、図3に示したように、閾値Aは通常モードにおけるリモートキューQ11のエントリの使用可能数であり、閾値Bはデッドロック解消モードにおけるリモートキューQ11のエントリの使用可能数であり、閾値Cはデッドロック解消モードから通常モードへ遷移する条件となるリモートキューQ11のエントリ数である。
比較回路415〜417は、カウンタ411から出力されるカウント値CNTCと、閾値保持回路412〜414により保持される閾値A〜Cとを比較して比較結果を出力する。比較回路415は、カウント値CNTCが閾値A以上である場合、出力を“1”にし、カウント値CNTCが閾値A未満である場合、出力を“0”にする。比較回路416は、カウント値CNTCが閾値B以上である場合、出力を“1”にし、カウント値CNTCが閾値B未満である場合、出力を“0”にする。また、比較回路417は、カウント値CNTCが閾値C未満である場合、出力を“1”にし、カウント値CNTCが閾値C以上である場合、出力を“0”にする。
セレクタ418は、抑止信号QASに応じて、比較回路415の出力又は比較回路416の出力の一方の出力をビジー信号BSYOとして出力する。セレクタ418は、抑止信号QASが“0”である場合、比較回路415の出力をビジー信号BSYOとして出力し、抑止信号QASが“1”である場合、比較回路416の出力をビジー信号BSYOとして出力する。
すなわち、通常モードにおいては、カウント値CNTCと閾値Aとの比較結果がビジー信号BSYOとして出力され、デッドロック解消モードにおいては、カウント値CNTCと閾値Bとの比較結果がビジー信号BSYOとして出力される。これにより、通常モードにおいて、リモートキューQ11のエントリの使用数が閾値Aになると前段の他ノードから自ノードへのリクエストの送信が抑止される。また、デッドロック解消モードにおいて、リモートキューQ11のエントリの使用数が閾値Bになると前段の他ノードから自ノードへのリクエストの送信が抑止される。
次に、図5を参照してデッドロック制御部16の動作を説明する。図5は、デッドロック制御部16の動作例を示すフローチャートである。各ノード10のデッドロック制御部16が、図5に示す動作をそれぞれ実行する。
まず、ステップS501にて、デッドロック制御部16は、デッドロック状態であるか否かの判定を行う。デッドロック制御部16は、通常モードにおいて、カウンタ401、402のカウント値CNTA、CNTBがともに閾値Tより大きい場合、デッドロック状態であると判定し、ステップS502へ進む。つまり、デッドロック制御部16は、通常モードにおいて、ビジー信号BSYI、BSYOが閾値Tよりも長く継続して出力されている場合、自ノード及び次段の他ノードのリモートキューQ11が詰まっているとしてデッドロック状態であると判定する。
次に、ステップS502にて、デッドロック制御部16は、フラグ保持回路409により保持される、デッドロック解消モードであることを示すフラグを“1”に変更し、デッドロック解消モード(エントリ拡張モード)へ遷移する。続いて、ステップS503にて、デッドロック制御部16は、フラグ保持回路409により保持されるフラグを“1”に変更したことに伴って、抑止信号QASを“1”にして自ノードからリングバスへの新規リクエストの発行を抑止する。
また、ステップS504にて、デッドロック制御部16は、リモートキューQ11におけるエントリの使用可能数が増加(拡張)されたことを受けて、ビジー信号BSYOを“0”にしてリングバスを介したリクエストの受け付け抑止状態を解除し、前段の他ノードからのリクエストを受け付ける。そして、ステップS505にて、デッドロック制御部16は、リクエストが順次処理され、リモートキューQ11におけるエントリの使用数が閾値C未満になるまで待つ。リモートキューQ11におけるエントリの使用数が閾値C未満になると、ステップS506にて、デッドロック制御部16は、フラグ保持回路409により保持されるフラグを“0”に変更し、デッドロック解消モードから通常モードへ遷移する。
図6は、第1の実施形態におけるノードの動作例を示すフローチャートである。なお、図6においては、リングバスRINGを介してリクエストを転送するときのノード10の動作を示している。
ステップS601にて、ノード10のクロスバ部(XB)14は、前段の他ノードから自ノード宛ではないリクエストを受信すると、受信したリクエストをリモートキューQ11に格納する。このとき、リモートキューQ11から出力される信号Q11Wが“1”となり、デッドロック制御部16が有するカウンタ411のカウント値CNTCが1増加する。
次に、ステップS602にて、クロスバ部(XB)14は、次段の他ノードから入力されるビジー信号BSYIが“1”であるか否かを判定する。ビジー信号BSYIが“1”ではないと判定した場合、ステップS603にて、クロスバ部(XB)14は、リモートキューQ11が調停部15での調停に勝利することで、リモートキューQ11に格納されているリクエストを次段の他ノードへ発行し、ステップS601へ戻る。このとき、リモートキューQ11から出力される信号Q11Rが“1”となり、デッドロック制御部16が有するカウンタ411のカウント値CNTCが1減少する。
一方、ステップS602での判定の結果、ビジー信号BSYIが“1”であると判定した場合、ステップS604にて、デッドロック制御部16は、リモートキューQ11におけるエントリの使用数が閾値A以上であるか否かを判定する。その結果、リモートキューQ11におけるエントリの使用数が閾値A以上である場合、ステップS605へ進み、そうでない場合、ステップS601へ戻る。
ステップS605にて、デッドロック制御部16は、カウンタ401、402のカウント値CNTA、CNTBがともに閾値Tより大きいか否かを判定する。すなわち、デッドロック制御部16は、デッドロック状態であるか否かを判定する。その結果、カウンタ401、402のカウント値CNTA、CNTBの少なくとも一方が閾値T以下である、すなわちデッドロック状態でないと判定した場合、ステップS602へ戻る。
一方、カウンタ401、402のカウント値CNTA、CNTBがともに閾値Tより大きい、すなわちデッドロック状態であると判定した場合、デッドロック制御部16は、フラグ保持回路409により保持される、デッドロック解消モードであることを示すフラグを“1”に変更する。これにより、デッドロック制御部16は、デッドロック解消モードに遷移して、拡張エントリ302を使用可能にする。
次に、ステップS607にて、クロスバ部(XB)14は、次段の他ノードから入力されるビジー信号BSYIが“1”であるか否かを判定する。ビジー信号BSYIが“1”ではないと判定すると、ステップS608にて、クロスバ部(XB)14は、リモートキューQ11が調停部15での調停に勝利することで、リモートキューQ11に格納されているリクエストを次段の他ノードへ発行する。このとき、リモートキューQ11から出力される信号Q11Rが“1”となり、デッドロック制御部16が有するカウンタ411のカウント値CNTCが1減少する。
続いてステップS609にて、デッドロック制御部16は、リモートキューQ11におけるエントリの使用数が閾値C未満であるか否かを判定する。その結果、リモートキューQ11におけるエントリの使用数が閾値未満でない場合、ステップS607へ戻り、エントリの使用数が閾値未満である場合、ステップS610へ進む。ステップS610にて、デッドロック制御部16は、フラグ保持回路409により保持される、デッドロック解消モードであることを示すフラグを“0”に変更する。これにより、デッドロック制御部16は、通常モードに遷移して、拡張エントリ302を使用不可にする。そして、ステップS601へ戻る。
第1の実施形態によれば、デッドロック制御部16が、デッドロック状態であると判定した場合、リングバスへの新規のリクエストの発行を抑止する。また、リモートキューQ11にて使用可能なエントリ数を増加することで、前段のノードからのリクエストを受信可能にする。これにより、各ノード10のリモートキューQ11に格納されたリクエストを循環可能にし、デッドロック状態を解消してデッドロックの発生を防止することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
図7は、第2の実施形態における情報処理システムの構成例を示す図である。第2の実施形態における情報処理システムは、第1の実施形態と同様に複数のノード(A〜D)10−A〜10−Dが複数のノードを環状に接続するリングバスRINGを介して接続され、さらにノード(A)10−Aに対してリングバスRING外からリクエストを発行するノード(E)10−Eが接続される。
なお、第2の実施形態におけるノード(A〜E)10−A〜10−Eのうち、ノード(B〜E)10−B〜10−Eの構成は、図2に示した第1の実施形態におけるノード10の構成と同様であるので説明は省略し、以下では第2の実施形態におけるノード(A)10−Aについて説明する。図8は、第2の実施形態におけるノード(A)10−Aの構成例を示す図である。図8において、図2に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
ノード10−Aは、CPU11、メモリ12、メモリコントローラ13、及びクロスバ部(XB)14を有する。また、クロスバ部(XB)14は、それぞれ保持部に該当する4つのキュー(バッファ)Q11、Q12、Q21、Q22、調停部(セレクタ)15、18、デッドロック制御部16、及び抑止部17に加え、さらに2つのキューQ13、Q23を有する。キューQ13、Q23もそれぞれ複数のエントリを有する。
キューQ13は、ノード(E)10−Eから受信するリクエストREQEの内の他ノード宛のリクエストを格納するキューである。キューQ11〜Q13に格納されたリクエストは、調停部15での調停後、リクエストREQSとして次段の他ノードに送信される。なお、調停部15は、次段の他ノードから入力されるビジー信号BSYIが“1”である場合、次段の他ノードへのリクエストの送信を抑止する。
また、キューQ23は、ノード(E)10−Eから受信するリクエストREQEの内の自ノードのメモリ12に対するリクエストを格納するキューである。キューQ21〜Q23に格納されたリクエストは、調停部18での調停後、メモリコントローラ13に送信される。
抑止部19は、デッドロック制御部16から出力される抑止信号QASに応じて、キューQ13から調停部15へのリクエストの転送を制御する。抑止部19は、抑止信号QASの値が“1”である場合、ローカルキューQ13から調停部15へのリクエストの転送を抑止し、リングバスへの新規リクエストの発行を抑止する。つまり、第2の実施形態では、抑止信号QASの値が“1”である(デッドロック解消モードである)場合、キューQ12、Q13から調停部15へのリクエストの転送を抑止し、リングバスへの新規リクエストの発行を抑止する。
第2の実施形態によれば、デッドロック状態と判定したときに、リングバスRING外のノード(E)10−EからリングバスRINGに対して発行されるリクエストを、自身のCPU11が発行するリクエストと同様にローカルのリクエストとして抑止することで、第1の実施形態と同様の効果が得られる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
図9は、第3の実施形態における情報処理システムの構成例を示す図である。第3の実施形態における情報処理システムは、複数のノードを環状に接続するリングバスRING0を介してノード(A〜D)10−A〜10−Dが接続されるとともに、さらにリングバスRING0とは異なるリングバスRING1を介してノード(A)10−A及びノード(E〜G)10−E〜10−Gが接続される。
すなわち、第3の実施形態における情報処理システムでは、ノード(A)10−Aは、2つのリングバスRING0、RING1に接続されている。なお、図9において、破線で示すように、リングバスRING0に接続されるノード(A〜D)10−A〜10−DからリングバスRING1のみに接続されるノード(E〜G)10−E〜10−G宛へのリクエストは発行可能であるが、リングバスRING1のみに接続されるノード(E〜G)10−E〜10−GからリングバスRING0のみに接続されるノード(B〜D)10−B〜10−D宛へのリクエストは発行可能ではないものとする。
なお、第3の実施形態におけるノード(A〜G)10−A〜10−Gのうち、ノード(B〜G)10−B〜10−Gの構成は、図2に示した第1の実施形態におけるノード10の構成と同様であるので説明は省略し、以下では第3の実施形態におけるノード(A)10−Aについて説明する。図10は、第3の実施形態におけるノード(A)10−Aの構成例を示す図である。図10において、図2及び図8に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。また、図10において、添え字“0”を付加した構成要素は、リングバスRING0に係る構成要素であり、添え字“1”を付加した構成要素は、リングバスRING1に係る構成要素であることを示す。
ノード10−Aは、CPU11、メモリ12、メモリコントローラ13、クロスバ部(XB)14−0、14−1、及び転送部31を有する。クロスバ部(XB)14−0は、図2に示したノード10のクロスバ部(XB)14と同様に構成され、リングバスRING0を介して転送されるリクエストを処理する。また、クロスバ部(XB)14−1は、キューQ13、Q23にかえてキューQ14、Q24を有し、図8に示したノード10−Aのクロスバ部(XB)14と同様に構成され、リングバスRING1を介して転送されるリクエストを処理する。
転送部31は、リングバスRING0を介して入力されるリクエストREQF−0を、リクエスト内の宛先(発行先)情報に基づいてリングバスRING0又はリングバスRING1の一方に転送する。転送部31は、入力されるリクエストREQF−0がリングバスRING0に接続されたノード宛のリクエストである場合、他ノードからのリクエストREQF−00としてクロスバ部(XB)14−0に出力する。また、転送部31は、入力されるリクエストREQF−0がリングバスRING1に接続されたノード宛のリクエストである場合、他ノードからのリクエストREQF−01としてクロスバ部(XB)14−1に出力する。
第3の実施形態によれば、リングバスRING0に接続されたノード宛のリクエストは第1の実施形態と同様に処理し、リングバスRING0に接続されたノードからリングバスRING1に接続されたノード宛のリクエストは第2の実施形態と同様にローカルのリクエストとして処理する。これにより、他のノードに対するリクエストを順次処理することが可能となり、デッドロックの発生を防止することができる。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
10 ノード(情報処理装置)
11 CPU
12 メモリ
13 メモリコントローラ
14 クロスバ部
15、18 調停部
16 デッドロック制御部
17、19 抑止部
31 転送部
Q11、Q12、Q13、Q21、Q22、Q23 キュー(バッファ)
401、402、411 カウンタ
403、404 論理和演算回路
405、412〜414 閾値保持回路
406、407、415〜417 比較回路
408 論理積演算回路
409 フラグ保持回路
418 セレクタ

Claims (9)

  1. 環状のバスであるリングバスを介して接続される複数の情報処理装置を有する情報処理システムにおいて、
    前記情報処理装置は、
    前記リングバスを介して受信する他の情報処理装置への第1のリクエストを格納する複数のエントリを有する第1の保持部と、
    前記第1の保持部に格納した前記第1のリクエスト及び自身が発行する他の情報処理装置への第2のリクエストを次段の情報処理装置へ順次送信する送信部と、
    前記第1の保持部における前記エントリの使用数が第1の閾値以上である状態が第1の時間より長く継続し、かつ次段の情報処理装置への前記リクエストの送信が抑止された状態が第2の時間より長く継続した場合、前記第1の保持部における前記エントリの使用可能数を前記第1の閾値より大きい第2の閾値に変更し、抑止信号を出力する制御部と、
    前記抑止信号に応じて、前記リングバスへの前記第2のリクエストの送信を抑止する抑止部とを有することを特徴とする情報処理システム。
  2. 前記制御部は、前記第1の保持部における前記エントリの使用可能数が前記第2の閾値であり、かつ前記第1の保持部における前記エントリの使用数が前記第1の閾値より小さい第3の閾値未満になった場合、前記第1の保持部における前記エントリの使用可能数を前記第1の閾値に変更することを特徴とする請求項1記載の情報処理システム。
  3. 前記第2のリクエストを格納する複数のエントリを有する第2の保持部を有し、
    前記抑止部は、前記第2の保持部から前記送信部への前記第2のリクエストの送信を抑止することを特徴とする請求項1又は2記載の情報処理システム。
  4. 前記情報処理装置は、
    前記第1の保持部における前記エントリの使用数が前記第1の保持部における前記エントリの使用可能数以上である場合、前段の情報処理装置から自身への前記リクエストの送信を抑止させることを特徴とする請求項1〜3の何れか1項に記載の情報処理システム。
  5. 前記第2のリクエストを発行する発行部と、
    自身への前記第1のリクエスト及び前記第2のリクエストに応じて処理を行う処理部とを有することを特徴とする請求項1〜4の何れか1項に記載の情報処理システム。
  6. 前記リングバスに接続された情報処理装置に接続される前記リングバスの外部の情報処理装置を有し、
    前記外部の情報処理装置に接続される前記リングバスに接続された情報処理装置の抑止部は、前記抑止信号に応じて、前記第2のリクエスト及び前記外部の情報処理装置から受信したリクエストの前記リングバスへの送信を抑止することを特徴とする請求項1〜5の何れか1項に記載の情報処理システム。
  7. 第1の前記リングバスに接続される複数の情報処理装置と、
    前記第1のリングバスとは異なる第2のリングバスに接続される複数の情報処理装置とを有し、
    前記第1のリングバスから前記第2のリングバスに対してリクエストが発行可能であり、
    前記第1のリングバス及び前記第2のリングバスに接続される情報処理装置の抑止部は、前記第2のリングバスに係る前記抑止信号に応じて、前記第2のリクエスト及び前記第1のリングバスから受信したリクエストの前記第2のリングバスへの送信を抑止することを特徴とする請求項1〜6の何れか1項に記載の情報処理システム。
  8. 環状のバスであるリングバスを介して他の情報処理装置に接続される情報処理装置において、
    前記リングバスを介して受信する他の情報処理装置への第1のリクエストを格納する複数のエントリを有する第1の保持部と、
    前記第1の保持部に格納した前記第1のリクエスト及び自身が発行する他の情報処理装置への第2のリクエストを次段の情報処理装置へ順次送信する送信部と、
    前記第1の保持部における前記エントリの使用数が第1の閾値以上である状態が第1の時間より長く継続し、かつ次段の情報処理装置への前記リクエストの送信が抑止された状態が第2の時間より長く継続した場合、前記第1の保持部における前記エントリの使用可能数を前記第1の閾値より大きい第2の閾値に変更し、抑止信号を出力する制御部と、
    前記抑止信号に応じて、前記リングバスへの前記第2のリクエストの送信を抑止する抑止部とを有することを特徴とする情報処理装置。
  9. 環状のバスであるリングバスを介して接続される複数の情報処理装置を有する情報処理システムの制御方法において、
    前記複数の情報処理装置の内の第1の情報処理装置の第1の保持部が、前記リングバスを介して受信する他の情報処理装置への第1のリクエストを格納し、
    前記第1の情報処理装置の送信部が、前記第1の保持部に格納した前記第1のリクエスト及び自身が発行する他の情報処理装置への第2のリクエストを次段の情報処理装置へ順次送信し、
    前記第1の情報処理装置の制御部が、前記第1の保持部におけるエントリの使用数が第1の閾値以上である状態が第1の時間より長く継続し、かつ次段の情報処理装置への前記リクエストの送信が抑止された状態が第2の時間より長く継続した場合、前記第1の保持部における前記エントリの使用可能数を前記第1の閾値より大きい第2の閾値に変更し、抑止信号を出力し、
    前記第1の情報処理装置の抑止部が、前記抑止信号に応じて、前記リングバスへの前記第2のリクエストの送信を抑止することを特徴とする情報処理システムの制御方法。
JP2017136131A 2017-07-12 2017-07-12 情報処理システム、情報処理装置、及び情報処理システムの制御方法 Active JP6882681B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017136131A JP6882681B2 (ja) 2017-07-12 2017-07-12 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US16/008,095 US10459841B2 (en) 2017-07-12 2018-06-14 Information processing apparatus, information processing system, and method of controlling information processing apparatus, configured to form ring-shaped bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017136131A JP6882681B2 (ja) 2017-07-12 2017-07-12 情報処理システム、情報処理装置、及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2019020808A JP2019020808A (ja) 2019-02-07
JP6882681B2 true JP6882681B2 (ja) 2021-06-02

Family

ID=64999454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017136131A Active JP6882681B2 (ja) 2017-07-12 2017-07-12 情報処理システム、情報処理装置、及び情報処理システムの制御方法

Country Status (2)

Country Link
US (1) US10459841B2 (ja)
JP (1) JP6882681B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580058B1 (en) * 2021-08-30 2023-02-14 International Business Machines Corporation Hierarchical ring-based interconnection network for symmetric multiprocessors

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63292747A (ja) * 1987-05-25 1988-11-30 Hitachi Ltd バツフア管理方式
JPH07210365A (ja) * 1994-01-24 1995-08-11 Ricoh Co Ltd 画像形成装置
US6490630B1 (en) 1998-05-08 2002-12-03 Fujitsu Limited System and method for avoiding deadlock in multi-node network
JP3846710B2 (ja) * 2002-04-09 2006-11-15 日本電気株式会社 フロー制御装置
US7849256B2 (en) * 2006-07-11 2010-12-07 Advanced Micro Devices, Inc. Memory controller with ring bus for interconnecting memory clients to memory devices
JP5550261B2 (ja) * 2009-05-29 2014-07-16 キヤノン株式会社 リングバスを用いたデータ処理装置、データ処理方法およびプログラム
JP5932242B2 (ja) * 2011-05-20 2016-06-08 キヤノン株式会社 情報処理装置、通信方法、及びプログラム
JP6139857B2 (ja) * 2012-01-26 2017-05-31 キヤノン株式会社 データ処理装置、入力制御装置、及び制御方法

Also Published As

Publication number Publication date
JP2019020808A (ja) 2019-02-07
US10459841B2 (en) 2019-10-29
US20190018776A1 (en) 2019-01-17

Similar Documents

Publication Publication Date Title
US7558895B2 (en) Interconnect logic for a data processing apparatus
US8855112B2 (en) NoC system and input switching device
EP1775897B1 (en) Interleaving in a NoC (Network on Chip) employing the AXI protocol
US10282343B2 (en) Semiconductor device
CN110059043B (zh) 数据处理器及用于控制数据处理器的方法
EP2038744B1 (en) Method and system of grouping interrupts from a time-dependent data storage means
JPS61214694A (ja) データ伝送のスイッチング装置
JP6882681B2 (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP4322659B2 (ja) シリアル伝送制御装置、コンピュータシステム、および、シリアル伝送制御方法
KR20040054721A (ko) 컴퓨터 시스템의 입력/출력 노드에서 태깅 및 중재 매카니즘
JP5993267B2 (ja) 画像処理装置
JP6853479B2 (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP5304888B2 (ja) 調停方法、調停回路、及び調停回路を備えた装置
KR102549085B1 (ko) 버스 제어회로
JP7041339B2 (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP2007087247A (ja) バス制御システム
JP2019087046A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
EP2405362A1 (en) A connection arrangement
US20160292093A1 (en) Bus system including bridge circuit for connecting interlock bus and split bus
JP2016082363A (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
JP2007199859A (ja) データ転送システム
JP6295700B2 (ja) 調停回路及び調停回路の処理方法
JP6823259B2 (ja) バス制御回路、情報処理装置及びバス制御回路の制御方法
JPH0561812A (ja) 情報処理システム
JP2018032320A (ja) バスシステム及びバスシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6882681

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150