JP2017157020A - 制御回路、情報処理装置、および情報処理装置の制御方法 - Google Patents

制御回路、情報処理装置、および情報処理装置の制御方法 Download PDF

Info

Publication number
JP2017157020A
JP2017157020A JP2016040064A JP2016040064A JP2017157020A JP 2017157020 A JP2017157020 A JP 2017157020A JP 2016040064 A JP2016040064 A JP 2016040064A JP 2016040064 A JP2016040064 A JP 2016040064A JP 2017157020 A JP2017157020 A JP 2017157020A
Authority
JP
Japan
Prior art keywords
data
node
request
access request
time
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.)
Granted
Application number
JP2016040064A
Other languages
English (en)
Other versions
JP6578992B2 (ja
Inventor
雅紀 荒津
Masaki Aratsu
雅紀 荒津
誠之 岡田
Masayuki Okada
誠之 岡田
仁 ▲高▼橋
仁 ▲高▼橋
Hitoshi Takahashi
隆宏 野尻
Takahiro Nojiri
隆宏 野尻
雅紀 日下田
Masaki Higeta
雅紀 日下田
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 JP2016040064A priority Critical patent/JP6578992B2/ja
Publication of JP2017157020A publication Critical patent/JP2017157020A/ja
Application granted granted Critical
Publication of JP6578992B2 publication Critical patent/JP6578992B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】更新ノードからの応答がタイムアウト時間よりも遅延した場合でも、装置を適切に動作させるとともに、装置の性能低下を低減する。
【解決手段】制御回路は、アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信すると、資源を確保し、アクセス要求によるアクセス先のデータついての複数のノードのいずれかによる更新状態を含む管理情報を参照する。いずれかのノードがアクセス先のデータを更新している場合には、制御回路は、データを更新しているノードに更新されたデータの返送要求を送信するとともに第1の時間の計時を開始する。そして、更新されたデータの返送要求に対する応答を受信する前に第1の時間が経過した場合に、制御回路は、アクセス要求元のノードにエラー応答を返信するとともに第2の時間の計時を開始する。そして、第2の時間が経過した場合に、制御回路は資源を解放する。
【選択図】図9

Description

本発明は、制御回路、情報処理装置、および情報処理装置の制御方法に関する。
ディレクトリ方式のキャッシュ一貫性(コヒーレンシ)制御を用いたマルチプロセッサシステムとして、cache−coherent NonUniform Memory
Access(cc−NUMA)を例示できる。cc−NUMAで例示されるマルチプロセッサシステムにおいては、ノードと呼ばれるサブシステムごとにメモリが設けられる。
それぞれのノードは、プロセッサ等の演算部、制御部等を有し、例えば要求元として、所望のデータが保存されるメモリを管理するノード(以下、要求先のノード)にアクセスする。要求先のノードは、Dynamic Random Access Memory(DRAM)などのメモリに格納されたデータブロックそれぞれに付随する形でキャッシュ持ち出し情報であるディレクトリを保持する。ディレクトリとは、ノードが管理するメモリのデータブロックをどのノードが持ち出してキャッシュに保持しているか等を示す情報である。そして、要求先のノードは、要求に応答するためのメモリアクセスの際に、ディレクトリを読み出してキャッシュ一貫性をチェックする。キャッシュ一貫性があるとは、複数のノードのキャッシュ間でデータの不一致が生じていないことをいう。以上のような制御をディレクトリ方式のキャッシュ一貫性制御という。
例えば、要求先のノードは、ディレクトリを読み出した結果、他のノード(以下、更新ノード)がアクセス対象のメモリのデータを更新している場合には、更新ノードからアクセス対象のメモリのデータを取得し、要求元のノードからの要求に対する処理を実行する。そして、要求先のノードは、取得したデータをメモリに書き戻す。このようなディレクトリ方式のキャッシュ一貫性制御では、要求先のノードが更新ノードへのデータ取得要求に対する応答を待っている状態でタイムアウト時間の経過を検出することがある。すると、要求先のノードは、要求元のノードに対してエラーを通知するとともに、要求を処理するために確保しておいた資源の解放などの処理を実行する。
特開平8―320827号公報 特開2007−4834号公報
しかし、タイムアウト時間の設定が適切でない場合、要求先のノードがエラー応答や資源の解放を行った後に更新ノードから返送データ等の応答を受け取る事象が発生し、受けとった応答の処理が問題となる場合がある。そこで、エラー応答後、あるいは資源の解放後に応答を受けとらないようにするため、応答待ち処理に対するタイムアウト時間が長く設定されることがある。しかし、タイムアウト時間が長く設定されると、システムの性能低下につながるおそれもある。したがって、応答待ちに対するタイムアウト時間を適切に設定することは、装置の性能とトレードオフの関係にあり困難な問題となる。
開示の実施形態は、複数ノードを有する情報処理装置において、データを更新しているノードからの応答がタイムアウト時間よりも遅延した場合でも、情報処理装置を適切に動
作させるとともに、情報処理装置の性能低下を低減することを目的とする。
開示の技術の一側面は、複数のノードを有する情報処理装置の各ノードでそれぞれのメモリを管理する制御回路によって例示される。この制御回路は、アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信すると、受信したアクセス要求を処理するための資源を確保し、受信したアクセス要求によるアクセス先のデータついての前記複数のノードのいずれかによる更新状態を含む管理情報を参照する。いずれかのノードが前記アクセス先のデータを更新している場合には、制御回路は、データを更新しているノードに更新されたデータの返送要求を送信するとともに第1の時間の計時を開始する。そして、更新されたデータの返送要求に対する応答を受信する前に第1の時間が経過した場合に、制御回路は、前記アクセス要求元のノードにエラー応答を返信するとともに第2の時間の計時を開始する。そして、第2の時間が経過した場合に、制御回路は資源を解放する。
本制御回路によれば、複数ノードを有する情報処理装置において、データを更新しているノードからの応答がタイムアウト時間よりも遅延した場合でも、情報処理装置を適切に動作させるとともに、情報処理装置の性能低下を低減することができる。
実施の形態のマルチプロセッサシステムの構成を例示する図である。 比較例のマルチプロセッサシステムの構成を例示する図である。 比較例においてデータがノード外に持ち出されていなかった場合の処理を例示する図である。 比較例においてデータがノード外に持ち出されていた場合の処理を例示する図である。 比較例において返送要求先のノードが故障していた場合の処理例である。 比較例において返送要求先のノードが故障していた場合の処理例である。 比較例において返送要求先のノードが故障していた場合の処理例である。 比較例において返送要求先のノードが故障していた場合の処理例である。 実施の形態1におけるシステムコントローラの詳細構成を例示する図である。 実施の形態1のマルチプロセッサによる処理を例示する図である。 実施の形態1のマルチプロセッサによる処理を例示する図である。 実施の形態1のマルチプロセッサによる処理を例示する図である。 実施の形態1のマルチプロセッサによる処理を例示する図である。 実施の形態2に係るシステムコントローラの構成を例示する図である。 実施の形態2のマルチプロセッサによる処理を例示する図である。 実施の形態2のマルチプロセッサによる処理を例示する図である。 実施の形態3に係るシステムコントローラの構成を例示する図である。
以下、図面を参照して、一実施の形態に係るマルチプロセッサシステム1について説明する。以下の実施の形態の構成は例示であり、マルチプロセッサシステム1は実施の形態の構成には限定されない。
図1に、本実施の形態のマルチプロセッサシステム1の構成を例示する。マルチプロセッサシステム1は、Node#1からNode#3の3つのノードを有する。例えば、Node#1は、プロセッサ(Precessor)#1、システムコントローラ(System Contoroller)#1、メモリ(Memory)#1を有する。Nod
e#2、Node#3の構成も、Node#1と同様である。すなわち、Node#kは、プロセッサ(Precessor)#k、システムコントローラ(System Contoroller)#k、メモリ(Memory)#kを有する。ここで、kは整数1、2、3、・・・、nである。すなわち、本実施の形態においてノード数が3個に限定される訳ではなく、正の整数nであるとする。各ノード#kにおいて、それぞれのシステムコントローラ#kは、プロセッサ#1乃至#n等のいずれかから、メモリ#kへのアクセス要求を受け取り、アクセス要求にしたがった処理を実行する。各システムコントローラ#kは、ディレクトリ方式のキャッシュ一貫性制御を実行する。
[比較例]
<比較例の構成図>
図2は、比較例のマルチプロセッサシステム301の構成を例示する図である。比較例のマルチプロセッサシステム301は、ディレクトリ方式のキャッシュ一貫性制御を実行する。図2においては、ノード#1のシステムコントローラ#1の構成が例示されている。ただし、ノード#2、#3、・・・、#nのシステムコントローラ#2、#3、・・・、#nも、システムコントローラ#1と同様の構成である。
図2のように、システムコントローラ#1は、プロセッサインタフェース21、メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25、およびタイマ26を有する。プロセッサインタフェース21は、プロセッサ#1乃至#nのいずれかからメモリ#1へのアクセス要求を受け、アクセス要求に対応する処理を実行する。そして、プロセッサインタフェース21は、処理を完了すると、アクセス要求に対する応答データをアクセス要求元のプロセッサ#1乃至#nに返信する。以下、アクセス要求元をリクエスタともいう。
メモリリクエストキュー22は、メモリ#1へのRead/Write要求の待ち行列を保持する先入れ先出しの記憶手段である。メモリデータバッファ23は、Read要求に対するメモリ#1からの応答データ、ディレクトリ等を保持する一時的な記憶手段である。
データ返送リクエストキュー24は、ノード#1以外のノード、すなわち他のノード#2乃至#nのプロセッサ#2乃至#nへのデータの返送要求の待ち行列を保持し、先入れ先出しの制御でデータの返送要求を発行する。データの返送要求とは、他のノード#2乃至#nのプロセッサ#2乃至#nのうち、メモリ#1のデータをキャッシュしているプロセッサ#kからデータを取得するための要求である。ここで、メモリ#1のデータをキャッシュしているプロセッサ#kが、キャッシュしているデータを更新している場合がある。そこで、データ返送リクエストキュー24は、他のノード#2乃至#nのうち、データを更新しているプロセッサ#kからデータを取得するのである。すなわち、システムコントローラ#1は、プロセッサインタフェース21を介して、メモリ#1上のデータに対するアクセス要求を受け付けると、メモリ#1上のデータをキャッシュしている他のノード#2乃至#nのプロセッサ#2乃至#nから、更新されたデータを取得する。そして、更新されたデータをメモリ#1に反映した後、アクセス要求に対応する処理を実行する。
返送データバッファ25は、データの返送要求に対するプロセッサ#2乃至#nからの応答データを保持する一時的な記憶手段である。タイマ26は、データ返送リクエストキュー24からいずれかのプロセッサにデータ返送リクエストが送信されたときに起動され、計測を開始する計時手段である。タイマ26による計時時間が所定の設定時間に達すると、タイムアウトが発生する。タイムアウトが発生すると、データ返送要求の対象となったメモリ#1上のデータへのアクセス要求を発行したプロセッサにエラー応答が通知される。
<比較例の処理>
図3、4に、図2のマルチプロセッサシステム301によるディレクトリ方式のキャッシュ一貫性制御の方法を例示する。ディレクトリ方式の制御では、ノード外からいずれかのメモリ(例えば、メモリ#1)にアクセス要求があって、例えばアクセス対象のデータがノード外のプロセッサ(例えば、プロセッサ#3)にキャッシュされた場合に、キャッシュされている状態が記録される。すなわち、システムコントローラ#1は、データをキャッシュしたプロセッサ#3を一意に識別できる情報(プロセッサ#3の物理IDなど)をディレクトリに書き込んで保持する。また、システムコントローラ#1は、メモリ#1へのアクセス要求を受けるたびに、アクセス対象のデータに対応するディレクトリを読み出し、そのデータがノード外に持ち出されているか否かを確認する。このような処理は、他のノードのシステムコントローラ#2、#3等でも同様に実行される。
そしてノード外に持ち出されているかどうかにより、以下の2つの応答が行なわれる。なお、いずれかのメモリのデータがいずれかのプロセッサにキャッシュされていることを、データがプロセッサに持ち出されている、ともいう。
<<データがノード外に持ち出されていなかった場合>>
図3は、データがノード外に持ち出されていなかった場合の処理を例示する。ノード#2のシステムコントローラ#2は、リクエスト元のプロセッサ#1(以下、リクエスタともいう)からアクセス要求を受け付け、アクセス要求に対応するディレクトリ情報をメモリ#2から読み出し、確認する(処理A1)。図3の例では、メモリ#2上のデータが最新であることが保証された場合が想定されている。
ノード#2のシステムコントローラ#2は、メモリ#2からアクセス要求対象のデータを取得し、取得したデータで要求元のプロセッサ#1に応答する(処理A2)。
<<アクセスデータがノード外に持ち出されていた場合>>
図4は、データがノード外に持ち出されていた場合の処理を例示する。図4で処理B1は、処理A1と同様であり、ノード#2のシステムコントローラ#2は、リクエスト元のプロセッサ#1からアクセス要求を受け付け、アクセス要求に対応するディレクトリ情報をメモリ#2から読み出し、確認する(処理B1)。図4の例では、メモリ#2上のデータが最新でないことが確認された場合が想定されている。
ノード#2のシステムコントローラ#2は、持ち出し先のプロセッサ#3に対してデータ返送要求を発行する(処理B2)。持ち出し先のプロセッサ#3は、ノード#2のシステムコントローラ#2にデータを返送する。ノード#2のシステムコントローラ#2は、返送されたデータを取得する(処理B3)。
ノード#2のシステムコントローラ#2は、更新されたデータでアクセス要求に対応する処理を実行し、要求元のプロセッサ#1に応答する。例えば、プロセッサ#1の要求がメモリ#1のデータの読み出し要求である場合、更新されたデータをプロセッサ#1に送信する。そして、ノード#2のシステムコントローラ#2は、取得したデータでメモリ#2のデータとディレクトリを更新し、最新の状態にする(処理B4)。
各ノード#kのシステムコントローラ#kは、複数ノード間でキャッシュ一貫性制御のため、図3または図4で示したやりとりを実行する。ところで、ノード#kのシステムコントローラ#kが何らかのリクエスト系トランザクションを持ち出し先のプロセッサに発行した後、持ち出し先のプロセッサ、または通信経路で故障が生じた場合、通常はデータが消失する。その結果、要求元ノードのプロセッサはアクセス要求に対応する応答データ
を受け取れない。
図5は、返送要求先のノード#3が故障していた場合の処理例である。この例ではリクエスト元のプロセッサがノード#1のプロセッサ#1、リクエスト先のノードがノード#
2、持ち出し先のプロセッサがノード#3のプロセッサ#3である。図5で、処理C1、C2は、図4の処理B1、B2と同様である。ただし、ノード#3のプロセッサ#3が故障していることが仮定されている。
処理C3で、システムコントローラ#2内のタイマ26は、一定期間待っても持ち出し先のプロセッサ#3から応答データが受け取れないため、タイムアウトを検出する。システムコントローラ#2は、通信経路またはノード#3で故障が発生したと判断してトランザクションを打ち切る。そして、システムコントローラ#2は、処理C4で、リクエスト元ノード(すなわち、ノード#1)のプロセッサ#1に対してアクセスエラー応答を行い、システム動作を継続する。またシステムコントローラ#2はトランザクションが占有していた資源を解放する。さらに、システムコントローラ#2は、持ち出し先であるプロセッサ#3に持ち出されて更新されたデータを破棄した上で、更新前のデータによってメモリ#2のデータとディレクトリを更新する。この更新の結果、メモリ#2が最新化する。
図6から図8は、比較例のマルチプロセッサシステム301において生じる問題を例示する。図5と同様、ノード#2のシステムコントローラ#2は、リクエスト元のプロセッサ#1から1つ目のアクセス要求を受け付ける(処理D1)。次に、システムコントローラ#2は、プロセッサ#1からのアクセス要求を処理するための資源1を確保する(処理D2)。ここで、資源1は、例えば、図2に例示するメモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25等のエントリである。
次に、システムコントローラ#2は、メモリ#2からディレクトリを読み出し、確認する(処理D3)。処理D3の例では、メモリ#2上のデータが最新でないことが確認された場合が想定されている。そこで、システムコントローラ#2は、持ち出し先のプロセッサ#3に対してデータ返送要求を発行する(処理D4)。処理D5からD8は、図5の処理C3、C4と同様である。すなわち、タイムアウトが発生し、システムコントローラ#2は、プロセッサ#1に対してアクセスエラー応答を行い、トランザクションが占有していた資源1を解放する。なお、処理D6、D7、D8以降の処理は、図7に例示される。
次に、システムコントローラ#2は、ノード#4のプロセッサ#4から2つ目のアクセス要求を受け付ける(処理D9)。ここで、2つ目のアクセス要求は、1つ目のアクセス要求と同一アドレスに対するアクセス要求であると仮定する。
処理D10、D11は、1つ目のアクセス要求に対する処理D2、D3と同様である。すなわち、システムコントローラ#2は、資源1を確保し、メモリ#2のディレクトリを確認する。ところが図8の例では、処理D12において、1つの目のアクセス要求を処理するために発行した持ち出し先へのデータ返送要求(処理D4のデータ返送要求)に対して、返送データが持ち出し先のプロセッサ#3から遅延して応答される。また、1つ目のアクセス要求に対する処理で確保された資源1と、2つ目のアクセス要求に対する処理で確保された資源1が同一の資源であると仮定する。システムコントローラ#2は、処理D8において資源1を解放している。したがって、2つ目のアクセス要求(プロセッサ#4からのアクセス要求)を処理するために資源1が利用され得る(処理D10)。しかし、処理D12では、2つ目のアクセス要求を処理している途中に、1つ目のアクセス要求処理時に発行されたデータ返送要求に対して、持ち出し先プロセッサ#3から遅れてデータが返送される。すると、システムコントローラ#2は、1つ目のアクセス要求に対して遅
れて返送されたデータを2つめのアクセス要求のリクエスタ(プロセッサ#4)に返してしまう(処理D13)。このため、本来廃棄されるはずのデータが2つめのアクセス要求のリクエスタ(プロセッサ#4)に返送され、データ化けが発生する。なお、正常な処理としては、処理D13の例では、システムコントローラ#2は、メモリ#2から読み出したデータを2つ目のアクセス要求のリクエスタ(プロセッサ#4)に送信するはずであったのである。
以上のような誤動作は、例えばタイムアウト時間の設定が誤った場合に生じ得る。つまり、処理が打ち切られた後に応答パケットを受け取る事象が発生する。すると、処理D13、D14のように、マルチプロセッサシステム301では、メモリ#2上のデータ化けのような誤動作が発生することがあり得る。
一方、データ化けが起きないように余裕を持ったタイムアウト時間の設定を行うために、例えば持ち出し先プロセッサ#3からデータが返送される処理D12のタイミングまで時間設定を伸ばす場合を考える。このようにすれば、データ化けは発生しなくなるが、2つ目のリクエスタ(プロセッサ#4)から受け付けた2つ目のアクセス要求(処理D9)が最初のアクセス要求(処理D1)と同一のアドレスであった場合、最初のアクセス要求のメモリへのディレクトリの更新や1つ目のリクエスタへのデータ応答が完了するまで、2つ目のアクセス要求(D処理9)を待たせなければならない。つまり、同一アドレス宛などアクセス要求の処理順序が決まっている場合、タイマ26のタイムアウト時間の設定が伸ばされた分だけ、システム性能が低下する。
タイマ26のタイムアウト、すなわちタイムアウト時間の計時によって他ノードからの応答待ち処理を打ち切るような制御方法が採用される場合、タイムアウト時間はシステムの様々な故障ケースを網羅して決定されることとなり、複数の故障ケースでの条件を満たすタイムアウト時間を設定することは困難な場合が多い。すなわち、図6から図8に例示した処理のように、マルチプロセッサシステム301において、データ化けのような誤動作を発生させることなく性能低下も起きないようにすることは困難な問題である。
[実施の形態1]
以下、図9から図13を参照して、実施の形態1に係るマルチプロセッサシステム1を例示する。実施の形態1のマルチプロセッサシステム1は、応答待ちのタイムアウト時間を適切に設定出来なかった場合に発生するデータ化けのような誤動作を防ぎつつ、システム性能の低下を抑制するエラー制御処理を例示する。マルチプロセッサシステム1は複数のノードを有する情報処理装置の一例である。
<実施の形態1の構成>
図9は、実施の形態1におけるマルチプロセッサシステム1のシステムコントローラの詳細構成を例示する図である。図9では、図2のマルチプロセッサシステム301とは異なり、データ返送監視用のタイマ26とは独立して資源解放監視タイマ(以後、ポストタイマ27と呼ぶ。)を設けている。マルチプロセッサシステム1は、上記比較例のマルチプロセッサシステム301で発生するデータ化けのような誤動作を防ぎつつ、システム性能の低下を抑制できるエラー制御方式を実現する。システムコントローラは、各ノードでそれぞれのメモリを管理する制御回路の一例である。
図9に例示したシステムコントローラの各構成要素は、ハードウェアのデジタル回路である。システムコントローラは、図9に例示したプロセッサインタフェース21、メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25、タイマ26、ポストタイマ27等の各構成要素を有する。また、システムコントローラは、これらの構成要素を制御する制御回路を有し、以下に述べる
処理を実行する。システムコントローラの制御回路は、集積回路(IC)、その他のデジタル回路である。また、システムコントローラの少なくとも一部にアナログ回路が含まれても良い。集積回路は、Large Scale Integration(LSI)、Application Specific Integrated Circuit(ASIC),プログラマブルロジックデバイス(PLD)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。シス
テムコントローラは、プロセッサと集積回路との組み合わせであっても良い。組み合わせは、例えば、マイクロコントローラ(MCU)、SoC(System-on-a-chi
p)、システムLSI、チップセットなどと呼ばれる。タイマ26は第1のタイマの一例である。ポストタイマ27は第2のタイマの一例である。
マルチプロセッサシステム1は、データ返送要求時にタイマ26が第1の所定時間を計時し、タイムアウトが発生すると、プロセッサインタフェース21にタイムアウトが通知される。プロセッサインタフェース21は、タイムアウトの通知を受けると、アクセス要求元のプロセッサにエラー応答を返す。
ただし、実施の形態1では、タイマ26によるタイムアウトの通知とともに、ポストタイマ27が起動される。そして、ポストタイマ27が第2の所定時間を計時してタイムアウトが発生するまでの時間、メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25において、資源(例えば、資源1と呼ぶ)は確保されたままとなる。なお、資源1はプロセッサ#1乃至#nのいずれかであるアクセス要求元(以下、第1のリクエスタと呼ぶ)のプロセッサからのアクセス要求を処理するために確保されたものである。そして、資源1は、ポストタイマ27による第2の所定時間計時後に解放される。仮に、第2の所定時間計時前に、第1のリクエスタ以外のプロセッサ(以下、第2のリクエスタと呼ぶ)から2つ目のアクセス要求が、1つ目のアクセス要求と同一のメモリアドレスをアクセス先としてプロセッサインタフェース21で受け付けられたとする。2つ目のアクセス要求が受け付けられたとき、1つ目のアクセス要求に対する資源1は確保されたままであるので、2つ目のアクセス要求に対する資源2は、資源1と重複することがない。したがって、実施の形態1のシステムコントローラは、比較例のマルチプロセッサシステム301で述べたようなデータ化けを防止できる。
さらに、実施の形態1では、1つ目のアクセス要求を処理するためにデータ返送要求がプロセッサ#2乃至#nに対して行われる。そして、タイマ26による第1の時間経過後(タイムアウト後)、ポストタイマ27による第2の所定時間計時前までの間に、返送データバッファ25が返送データを受信した場合、受信された返送データが破棄される。したがって、第1の時間経過によるタイムアウトによってエラー応答とメモリの更新がなされた後、遅れて返送された返送データが1つ目のアクセス要求を処理するために確保されている資源1によって処理されることがない。その結果、ポストタイマ27による第2の所定時間計時前までの間に資源1が遅れて返送された返送データを処理することによる誤動作の発生が抑止される。第1の時間は、タイマ26がタイムアウトする時間であり、データ返送要求を待つ処理のタイムアウト時間ということができる。
<実施の形態1の処理>
以下、図10から図13により、実施の形態1のマルチプロセッサ1による処理を説明する。以下の処理は、アクセス要求の対象であるメモリのアクセス先アドレスのデータがノード外に持ち出されていた場合の処理である。まず、図10における処理P1乃至P5は、図6の処理D1乃至D5と同様である。また、図11における処理P6乃至P7は、図7における処理D6乃至D7と同様である。なお、図10から図13は、システムコントローラ#2の処理を例示する。ただし、これらの処理は、システムコントローラ#kに
共通に処理ということができる。
処理P1は、アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信することの一例である。処理P2は、アクセス要求を処理するための資源を確保することの一例である。処理P3では、システムコントローラ#2は、メモリ#2からアクセス要求先のデータとディレクトリを読み出し、読み出したデータが他のノードのプロセッサによって持ち出され、持ち出し先で更新されているか否かを判定する。処理P3は、アクセス要求によるアクセス先のデータついての前記複数のノードのいずれかによる更新状態を含む管理情報を参照することの一例である。ディレクトリは更新状態を含む管理情報の一例である。処理P4では、データ持出先のノード#3のプロセッサ#3にデータ返送要求が送信されるとともに、タイマ26が起動される。処理P4は、第1の時間の計時を開始することの一例である。処理P5は、更新されたデータの返送要求に対する応答を受信する前に前記第1の時間が経過した場合を例示する。処理P6は、アクセス要求元のノードにエラー応答を返信することの一例である。
実施の形態1では、リクエスタであるプロセッサ#1へのアクセスエラー応答(処理P6)後、さらに、ディレクトリの更新(処理P7)により、メモリ#2上のデータが最新となった後に、ポストタイマ27が起動される(処理P8)。タイマ1が第1所定時間を計時し、タイムアウトを検出した後、ポストタイマ27は、処理P1で受け付けた1つ目のアクセス要求を処理するための資源1をさらに確保を継続する確保時間を計時する。処理P8は、第2の時間の計時を開始することの一例である。
そして、システムコントローラ#2が2つ目のアクセス要求を受け付ける(処理P9)。2つ目のアクセス要求は、例えば、プロセッサ#4からのものであり、1つ目のアクセ
ス要求と同じアドレスへなされる読み出し要求であるとする。すると、システムコントローラ#2は、資源を獲得する(処理P10)。すなわち、システムコントローラ#2は、処理P9で受け付けたアクセス要求を処理するため、メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、データ返送バッファ25、タイマ26、ポストタイマ27などの資源を獲得する。この例で獲得した資源は、資源2と呼ぶことにする。
次に、処理が図12に移動する。システムコントローラ#2は、資源2のメモリリクエストキュー22から、アクセス要求に対応するディレクトリの情報(以下、単にディレクトリという)をメモリ#2に対し要求し、メモリ#2よりディレクトリを資源2のメモリデータバッファ23に受け取る(処理P11)。そして、例えば、受け取ったディレクトリからメモリ上のデータが最新であることが判明する。すると、システムコントローラ#2は、2つ目のリクエスタであるプロセッサ#4へメモリ#2から読み出したデータを応答する(処理P12)。
次に、システムコントローラ#2は、資源2のメモリリクエストキュー22のデータでプロセッサ#4に応答したことを基に、メモリ#2のディレクトリを更新する(処理P13)。さらに、システムコントローラ#2は、資源2を解放する(処理P14)。
ここで、例えば、持ち出し先プロセッサ#3から、1つ目のアクセス要求時のデータ返送要求に対して、資源1のデータ返送バッファ25に遅れてデータが返送されてきたとする。すると、システムコントローラ#2は、ポストタイマ27の起動から第2の所定時間が経過していないため、応答データ(応答パケットとも呼ぶ)を破棄する(処理P15)。処理P15は、第2のタイマによる計時時間が第2の所定時間に達する前に前記更新されたデータの返送要求に対する応答を受信した場合に前記受信した応答を破棄することの一例である。
破棄により古いデータが使用されることはなくなる。そして、システムコントローラ#2は、資源1のポストタイマ27の起動から第2の所定時間が経過したとき、資源1を解放する(図13、処理P16)。処理P16は、第2の時間が経過した場合に、前記資源を解放することの一例である。
比較例のマルチプロセッサ301では、図7のディレクトリ更新(処理D7)の後に、システムコントローラ#2が資源1を解放していた(図7の処理D8)。一方、実施の形態1では、システムコントローラ#2はポストタイマ27を起動し、ポストタイマ27の起動から第2の所定時間が経過するまで資源1の解放を抑止する。資源1が解放されない状態で次のアクセス要求があったとしても、システムコントローラ#2は別の資源(図12では資源2)を確保し、処理を行うことになる。
また、実施の形態1において、マルチプロセッサシステム1のシステムコントローラ#2は、ポストタイマ27の起動から第2の所定時間経過するまでに何らかのデータを受け取った場合は、そのデータを破棄する(処理P15)。すなわち、実施の形態1では、タイマ26とは独立したポストタイマ27を導入し、予期できないタイミングで応答データが遅延して受信された場合でも、ポストタイマ27の起動から一定時間経過するまでは以下の処理が実行される。
(1)システムコントローラ#2は、1つ目のアクセス要求を処理するために行われたメモリ#2へのデータ返送要求に対する返送データを受け取ったとしても、受け取ったデータを破棄する。
(2)2つ目のアクセス要求があっても、1つ目のアクセス要求時に確保された資源(資源1)が使用されずに、別資源(資源2)が使用される。
したがって、実施形態1のシステムコントローラでは、以上の(1)(2)の処理により、比較例のマルチプロセッサ301で発生していたように、資源1が古いデータで書き替えられることによるデータ化けが防止できる。
また、実施の形態1のマルチプロセッサ1では、比較例のマルチプロセッサ301で問題点となる性能低下の問題を抑制できる。つまり、実施の形態1では、図11の処理P7のタイミングでメモリへのディレクトリの更新が完了する。そのため次のアクセス要求が新たなリクエスタ(例えば、プロセッサ#4)からメモリ#2の同一アドレスに対してあった場合でも、システムコントローラ#2は、2つ目のアクセス要求(処理P9)のタイミングで、新たなリクエスタからのアクセス要求に対する処理を開始することができる。なお、比較例のマルチプロセッサシステム301では、誤動作防止のため、2つ目のアクセス要求は、例えば図8の処理D13まで待たせることになる。したがって、実施の形態1では、マルチプロセッサシステム301と比較してシステム性能の低下が抑制される。実施の形態1では、タイマ26とポストタイマ27の併用によって、以上の処理を実現できる。
[実施の形態2]
図14から図16を参照して、実施の形態2に係るマルチプロセッサシステム1を説明する。実施の形態2では、システムコントローラの他の構成例と制御シーケンス例とが示される。
<実施の形態2の構成>
図14に実施の形態2に係るシステムコントローラ#2の構成を例示する。ただし、他のシステムコントローラ#k(k=1、3、・・・・、n)も図14と同様である。図14のように、実施の形態2では、システムコントローラ#2は、プロセッサインタフェー
ス21、使用エントリ決定部30、複数(m個)の要求処理エントリ、メモリリクエストキュー22、データ返送リクエストキュー24、応答調停部31を有する。すなわち、図14では、図9と比較して、使用エントリ決定部30、複数(m個)の要求処理エントリ、ディレクトリバッファ33、および応答調停部31が例示される。ただし、実施の形態2のシステムコントローラの他の構成要素および各構成要素を制御する制御回路は、図9での説明と同様であるので、詳細な説明を省略する。すなわち、図14に例示したシステムコントローラの各構成は、ハードウェアのデジタル回路である。プロセッサインタフェース21の処理は、図9の場合と同様である。プロセッサインタフェース21は、インタフェース部の一例である。
また、各要求処理エントリは、エントリ制御部32、ディレクトリバッファ33、メモリデータバッファ23、返送データバッファ25、タイマ26、ポストタイマ27、およびポストタイマ制御部28を有する。すなわち、実施の形態2では、複数(m個)のエントリが並列的に動作する。要求処理エントリは受け付けたアクセス要求を処理するための資源をそれぞれ有する複数のエントリの一例である。尚、メモリデータバッファ23、返送データバッファ25は2つに分けずに1つのバッファに統合しても良い。
システムコントローラ#2のプロセッサインタフェース21は、複数のプロセッサ#1乃至#nからメモリ#2へのアクセス要求を受け付けて調停し、処理が完了した順に、アクセス要求元のプロセッサ#1乃至#nに応答を行う。
使用エントリ決定部30は、受信したメモリ#2へのアクセス要求を処理するため、要求処理エントリを1つ選択し、選択したエントリにおいて資源を確保し、選択した要求処理エントリにアクセス要求を転送する。使用エントリ決定部30は、受け付けたアクセス要求に対して前記複数のエントリの1つを割り当てる使用エントリ決定部の一例である。
メモリリクエストキュー22は、各要求処理エントリからのメモリ#2へのRead/Write要求を調停し、順にメモリ#2に対して発行する。データ返送リクエストキュー24は、各要求処理エントリからのデータ返送要求を調停し、順にノード外の宛先プロセッサ#2乃至#nに発行する。
応答調停部31は、各要求処理エントリのエントリ制御部32からリクエスタに発行される応答とデータバッファのデータを関係づける。そして、応答調停部31は、要求処理エントリ間の調停を行って、関係づけた応答とデータとを順番にプロセッサインタフェース21に転送する。
エントリ制御部32は、各要求処理エントリにおいて、メモリ#2へのRead/Write要求の発行、メモリ#2のデータを持ち出しているプロセッサ#2乃至#nへのデータ返送要求の発行、および応答調停部31への応答を行う。
ディレクトリバッファ33は、メモリ#2から応答されたディレクトリの情報を格納するバッファである。メモリデータバッファ23は、メモリ#2から応答されたReadデータを格納するバッファである。返送データバッファ25は、ノード外のプロセッサ#2乃至#nからの返送データを格納するバッファである。
タイマ26は、エントリ制御部32のデータ返送要求発行と同時に起動されるタイマである。タイマ起動から第1の所定時間以内に返送データを受信できない場合、プロセッサ
インタフェース21およびポストタイマ27に対してタイムアウトが通知される。
ポストタイマ27は、タイマ26からのタイムアウト通知により起動されるタイマであ
る。ポストタイマ制御部28は、ポストタイマ27の起動から第2の所定時間以内に返送データを受信した場合は、受信した返送データを破棄する。また、ポストタイマ制御部28は、ポストタイマ27の起動から一定時間経過後に要求処理エントリ内のリソースを解放する。
<実施の形態2の処理>
図15および図16に、実施の形態2におけるシステムコントローラ(例えばノード#2のシステムコントローラ#2)の動作シーケンスを例示する。システムコントローラ#2は、例えばノード#1のプロセッサ#1からメモリへのアクセス要求(要求1とする)を受信する(S1)。S1の処理は、アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信することの一例である。
システムコントローラ#2は要求1と同一アドレスへのメモリへのアクセス要求(要求0とする)が存在するか否かを確認する(S2)。S2で、要求0が存在する場合、システムコントローラは要求0で獲得しているエントリ(エントリ0とする)のポストタイマ27が起動しているかを確認する(S3)。S3でポストタイマ27が起動していない場合、システムコントローラ#2はエントリ0の処理が終わるのを待つ(S4)。S4でのエントリ0の処理には、メモリ#2上のディレクトリとデータの更新が含まれる。S4で処理が完了すると、システムコントローラ#2はS5の処理へ進める。なお、S3でポストタイマ27が起動している場合も、システムコントローラ#2はS5の処理へ進める。なお、S3でポストタイマ27が起動している場合が、1つ目のリクエスタからのアクセス要求時にエラー応答がなされ、ポストタイマ27が第2所定時間を計時するまで、1つ目のアクセス要求処理のための資源が確保されている場合に相当する。したがって、図15のシーケンスによれば、複数のリクエスタからのアクセス要求が同一のメモリのアドレスになされても、適正に処理が実行される。
そして、システムコントローラ#2は空きエントリから1つを選んで獲得する(S5)
。なお、システムコントローラ#2はエントリ1の資源を確保する。S5の処理は、アクセス要求を処理するための資源を確保することの一例である。ここではエントリ1が選ばれたとする。次に、システムコントローラ#2はメモリ#2からディレクトリと読み出し対象のデータを読み出す(S6)。さらに、システムコントローラ#2は取得したディレクトリと読み出し対象のデータをエントリ1のディレクトリバッファ33、メモリデータバッファ23にそれぞれ格納する(S7)。以下、図16により説明を継続する。
システムコントローラ#2はエントリ1のディレクトリバッファ33のディレクトリ情報をデコードしてメモリ上のデータが最新か確認する(S8)。S8の処理は、アクセス要求によるアクセス先のデータついての前記複数のノードのいずれかによる更新状態を含む管理情報を参照することの一例である。ディレクトリは、更新状態を含む管理情報の一例である。S8の判定で、メモリ#2上のデータが最新でない場合、システムコントローラ#2はデータを持ち出しているノード外プロセッサ(例えば、ノード#3のプロセッサ#3)にデータ返送要求を発行する(S9)。S9の処理は、いずれかのノードが前記アクセス先のデータを更新している場合には、前記データを更新しているノードに更新されたデータの返送要求を送信することの一例である。次に、システムコントローラ#2はエントリ1のタイマ26を起動する(S10)。S10の処理は、第1の時間の計時を開始することの一例である。
そして、システムコントローラ#2は、タイマ26が第1の所定時間を計時し、タイムアウトする前に、返送データを受け取ったか否かを判定する(S11)。S11で返送データを受け取った場合、システムコントローラ#2は持出し先のプロセッサ#3から返送データを受け取り、エントリ1のメモリデータバッファ23および返送データバッファ2
5に上書きして、データを更新する(S12)。さらに、システムコントローラ#2は、エントリ1のタイマ26を停止する(S13)。そして、システムコントローラ#2は、S14の処理に進む。S8の判定で、メモリ#2上のデータが最新の場合も、システムコントローラ#2はS14の処理に進む。
そして、システムコントローラ#2は、アクセス要求元のプロセッサ#1にエントリ1のメモリデータバッファ23に格納されているデータによって応答する(S14)。さらに、システムコントローラ#2は、ディレクトバッファ33を更新し、メモリ#2にディレクトバッファ33とメモリデータバッファ23のデータを書き込む。すなわち、システムコントローラ#2は、メモリ#2上のディレクトリの情報とデータを更新する(S15)。さらに、システムコントローラ#2は、エントリ1の資源を開放して処理を完了する。
一方、S11の判定で、システムコントローラ#2が持出し先のプロセッサ#3から返送データを受け取れない場合、タイマ26が第1の所定時間を計時し、タイムアウトを検
出する(S17)。S17は、更新されたデータの返送要求に対する応答を受信する前に前記第1の時間が経過した場合の一例である。
すると、システムコントローラ#2は、アクセス要求元のプロセッサ#1にアクセスエラー応答を発行する(S18)。S18の処理は、アクセス要求元のノードにエラー応答を返信することの一例である。さらに、システムコントローラ#2は、メモリ#2にデータを書き込む。すなわち、システムコントローラは、メモリ#2上のディレクトリとデータを更新する(S19)。すなわち、システムコントローラは、持出しプロセッサ#3によるデータ更新前のデータが最新のデータとなるように、ディレクトリを更新する。
そして、システムコントローラ#2は、エントリ1のポストタイマ27を起動する(S20)。S20の処理は第2の時間の計時を開始することの一例である。次に、システムコントローラ#2はエントリ1のポストタイマ27の起動から第2の所定時間経過する前に持出し先のプロセッサ#3から返送データを受け取ったか否かを判定する(S21)。S21で返送データを受け取った場合には、システムコントローラ#2は、返送データを破棄する(S22)。S22の処理は、第2の時間が経過する前に前記更新されたデータの返送要求に対する応答を受信した場合に前記受信した応答を破棄することの一例である。
そして、エントリ1のポストタイマ27の起動から第2の所定時間経過したときに、ポストタイマ27は、第2の所定時間経過が経過したことをポストタイマ制御部28に通知する(S23)。そして、ポストタイマ制御部28は、エントリ1の資源を開放して処理を完了する(S24)。S24の処理は、第2の時間が経過した場合に、前記資源を解放することの一例である。尚、システムコントローラ#2は、マルチプロセッサシステム1の信頼性を高める目的で、S22で返送データを破棄する代わりに動作継続不能なエラーとして持出し先のプロセッサ#3の動作を停止させるように制御しても良い。
以上述べたように、実施形態2のシステムコントローラによっても、実施形態1で述べたのと同様、以下の処理が実行される。
(1)システムコントローラは、該当資源(資源1)が1つ目のアクセス要求を処理するために行われたメモリへのデータ返送要求に対する返送データを受け取ったとしてもそのデータを破棄する。
(2)2つ目のアクセス要求があっても、1つ目のアクセス要求時に確保された資源(資源1)が使用されずに、別資源(資源2)が使用される。
したがって、実施の形態2のマルチプロセッサ1は、応答待ちのタイムアウト時間の設定を誤った場合に発生するデータ化けのような誤動作の発生を防ぎ、かつシステム性能の低下も防ぐことができる。すなわち、実施の形態2のマルチプロセッサ1は、予期しないタイミングで応答される応答パケット遅延が発生した場合にも同じアドレスへの再アクセス処理を待たせない仕組みを実現する。また、実施の形態2のマルチプロセッサ1は、アクセスエラー応答と同時にポストタイマ27を起動し、ポストタイマ27の起動から一定時間経過するまでは応答パケットを破棄することで予期しないタイミングでのアクセス応答によるデータ化けを防止する。また、実施の形態2のマルチプロセッサ1は、ポストタイマ27が一定時間経過後に初めて資源を解放することで、データ化けのような致命的な誤動作を防止とシステム性能低下の防止というトレードオフの関係を両立させる。実施の形態1では、タイマ26とポストタイマ27の併用によって、以上の処理を実現できる。
さらに、実施の形態2のマルチプロセッサ1は、複数個の要求処理エントリを有し、各要求処理エントリは、エントリ制御部32、ディレクトリバッファ33、メモリデータバッファ23、返送データバッファ25、タイマ26、ポストタイマ27、およびポストタイマ制御部28等の資源を有する。したがって、実施の形態2では、複数(m個)のエントリが並列的に動作して、データ化けのような誤動作の防止とシステム性能低下の防止を両立することができる。システムコントローラは、複数のエントリを持つことで、互いに依存関係のないアクセス要求を並列して処理できる。
[実施の形態3]
上記実施の形態1および実施の形態2では、タイマ26とポストタイマ27の2つのタイマにより、データ返送要求に対するタイムアウト検出のための第1の時間の計時、資源確保の期間としての第2の時間の計時を実行した。しかし、第1の時間および第2の時間を同一のタイマ26で計時してもよい。実施の形態3では、ポストタイマ27を用いないで、実施の形態1および実施の形態2と同様の処理を実行するマルチプロセッサシステム1について説明する。実施の形態3の他の構成要素は、実施の形態1あるいは実施の形態2と同様である。そこで、実施の形態1あるいは実施の形態2と同一の構成要素については、同一の符号を付してその説明を省略する。
図17に実施の形態3に係るマルチプロセッサシステム1を例示する。図17には、図9と同様、システムコントローラ#1の詳細が例示されている。実施の形態3に係るシステムコントローラ#1は、実施の形態1と同様、プロセッサインタフェース21、メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25、タイマ26等の各構成と、各構成を制御する制御回路を有する。ただし、実施の形態3では、ポストタイマ27は設けられていない。ポストタイマ27に代えて、実施の形態3に係るシステムコントローラ#1は、監視回路29を有する。
システムコントローラ#1は、実施の形態1および実施の形態2と同様、アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信すると、受信したアクセス要求を処理するための資源(メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25、タイマ26等)を確保する。
監視回路29は、タイマ26が第1の時間を計時し、タイムアウトを検出すると、タイマ26に第2の時間を設定し、タイマ26を再起動する。また、監視回路29は、タイマ26が第2の時間によりタイムアウトすると、確保されていた資源を解放する。また、監視回路29は、タイムアウトするまでの間、返送データバッファ25に、返送データが受信されると、破棄するように、返送データバッファ25に返送データ送受信抑止制御を実行する。例えば、監視回路29は、返送データバッファ25のイネーブル端子がディスエーブルとなるように、制御信号を返送データバッファ25に通知すればよい。
以上のような実施の形態3の構成によれば、実施の形態1、2のようなポストタイマ27をシステムコントローラ#1が有していない場合でも、実施の形態1、2と同様の制御実行できる。ポストタイマ27の代わりに、監視回路29を設けることで、タイマの数を削減できる。
なお、上記実施の形態3では、実施の形態1と同様、要求処理エントリを有しないシステムコントローラによる処理を説明した。しかし、実施の形態3の構成を実施の形態2に適用できることは容易に理解できる。すなわち、タイマ26によって、データ返送要求に対する応答のタイムアウトを検知し、さらに、監視回路29がタイマ26に第2の時間を設定して再起動すればよい。このような構成によって、実施の形態2においても、ポストタイマ27を用いないで、タイマ26と監視回路29とによってデータ返送の遅延に伴う誤動作を抑止する処理が実行可能となる。
[変形例]
上記実施の形態1から実施の形態3では、なお、図1、図9、図14のように、システムコントローラと、プロセッサとが別体で、例えば異なるチップに形成されている。しかしながら、システムコントローラと、プロセッサとが一体で形成されてもよい。例えば、システムコントローラの処理を実行するハードウェア回路、プロセッサインタフェース21、メモリリクエストキュー22、メモリデータバッファ23、データ返送リクエストキュー24、返送データバッファ25、タイマ26、ポストタイマ27、ポストタイマ制御部28等がプロセッサ内に含まれるようにしてもよい。
1、301 マルチプロセッサシステム
21 プロセッサインタフェース
22 メモリリクエストキュー
23 メモリデータバッファ
24 データ返送リクエストキュー
25 返送データバッファ
26 タイマ
27 ポストタイマ
28 ポストタイマ制御部
29 監視回路
30 使用エントリ決定部
31 応答調停部
32 エントリ制御部

Claims (8)

  1. 複数のノードを有する情報処理装置の各ノードでそれぞれのメモリを管理する制御回路であって、
    アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信すると、前記アクセス要求を処理するための資源を確保し、前記アクセス要求によるアクセス先のデータついての前記複数のノードのいずれかによる更新状態を含む管理情報を参照し、いずれかのノードが前記アクセス先のデータを更新している場合には、前記データを更新しているノードに更新されたデータの返送要求を送信するとともに第1の時間の計時を開始し、前記更新されたデータの返送要求に対する応答を受信する前に前記第1の時間が経過した場合に、前記アクセス要求元のノードにエラー応答を返信するとともに第2の時間の計時を開始し、前記第2の時間が経過した場合に、前記資源を解放する制御回路。
  2. 前記制御回路は、前記第2の時間が経過する前に前記更新されたデータの返送要求に対する応答を受信した場合に前記受信した応答を破棄する請求項1に記載の制御回路。
  3. 第1のタイマと、
    第2のタイマと、をさらに備え、
    前記第1のタイマにより前記第1の時間を計時し、前記第2のタイマにより前記第2の時間を計時する請求項1または2に記載の制御回路。
  4. タイマを備え、
    前記タイマにより前記第1の時間を計時し、前記第1の時間の経過後、前記タイマを再設定することで前記第2の時間を計時する請求項1または2に記載の制御回路。
  5. 前記制御回路は、
    前記アクセス要求を受け付けるインタフェース部と、
    前記受け付けたアクセス要求を処理するための資源をそれぞれ有する複数のエントリと、
    前記受け付けたアクセス要求に対して前記複数のエントリの1つを割り当てる使用エントリ決定部と、をさらに備える請求項1から4のいずれか1項に記載の制御回路。
  6. 前記資源は、
    アクセス要求をそれぞれ保持する複数のエントリを有する保持部であることを特徴とする請求項1から5のいずれか1項に記載の制御回路。
  7. 複数のノードを有する情報処理装置であって、
    前記複数のノードのそれぞれは、
    メモリと、
    前記メモリを管理する制御回路と、を備え、
    前記制御回路は、
    アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信すると、前記アクセス要求を処理するための資源を確保し、前記アクセス要求によるアクセス先のデータついての前記複数のノードのいずれかによる更新状態を含む管理情報を参照し、いずれかのノードが前記アクセス先のデータを更新している場合には、前記データを更新しているノードに更新されたデータの返送要求を送信するとともに第1の時間の計時を開始し、前記更新されたデータの返送要求に対する応答を受信する前に前記第1の時間が経過した場合に、前記アクセス要求元のノードにエラー応答を返信するとともに第2の時間の計時を開始し、前記第2の時間が経過した場合に、前記資源を解放する情報処理装置。
  8. 複数のノードを有する情報処理装置の制御方法であって、
    アクセス要求元のノードから自ノードのメモリへのアクセス要求を受信すると、前記アクセス要求を処理するための資源を確保し、前記アクセス要求によるアクセス先のデータついての前記複数のノードのいずれかによる更新状態を含む管理情報を参照し、いずれかのノードが前記アクセス先のデータを更新している場合には、前記データを更新しているノードに更新されたデータの返送要求を送信するとともに第1の時間の計時を開始し、前記更新されたデータの返送要求に対する応答を受信する前に前記第1の時間が経過した場合に、前記アクセス要求元のノードにエラー応答を返信するとともに第2の時間の計時を開始し、前記第2の時間が経過した場合に、前記資源を解放する、情報処理装置の制御方法。
JP2016040064A 2016-03-02 2016-03-02 制御回路、情報処理装置、および情報処理装置の制御方法 Active JP6578992B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016040064A JP6578992B2 (ja) 2016-03-02 2016-03-02 制御回路、情報処理装置、および情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016040064A JP6578992B2 (ja) 2016-03-02 2016-03-02 制御回路、情報処理装置、および情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2017157020A true JP2017157020A (ja) 2017-09-07
JP6578992B2 JP6578992B2 (ja) 2019-09-25

Family

ID=59810276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016040064A Active JP6578992B2 (ja) 2016-03-02 2016-03-02 制御回路、情報処理装置、および情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6578992B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10340227A (ja) * 1996-07-01 1998-12-22 Sun Microsyst Inc ローカル・グローバル・アドレス・スペース及びマルチアクセス・モードを用いたマルチプロセッサ・コンピュータ・システム
JP2000112910A (ja) * 1998-06-30 2000-04-21 Internatl Business Mach Corp <Ibm> 非一様メモリ・アクセス・コンピュ―タ・システム及びその操作方法
JP2002305535A (ja) * 2001-01-11 2002-10-18 Internatl Business Mach Corp <Ibm> データを転送する信頼できるプロトコルを提供する方法および装置
JP2006277762A (ja) * 1998-05-08 2006-10-12 Fujitsu Ltd 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JP2007004834A (ja) * 2006-10-10 2007-01-11 Fujitsu Ltd マルチプロセッサ装置及びそのメモリアクセス方法
JP2007199999A (ja) * 2006-01-26 2007-08-09 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2008204245A (ja) * 2007-02-21 2008-09-04 Ricoh Co Ltd データ通信装置、画像処理システムおよびデータ通信方法
JP2012182721A (ja) * 2011-03-02 2012-09-20 Ricoh Co Ltd 画像形成装置およびその制御方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10340227A (ja) * 1996-07-01 1998-12-22 Sun Microsyst Inc ローカル・グローバル・アドレス・スペース及びマルチアクセス・モードを用いたマルチプロセッサ・コンピュータ・システム
US5887138A (en) * 1996-07-01 1999-03-23 Sun Microsystems, Inc. Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
JP2006277762A (ja) * 1998-05-08 2006-10-12 Fujitsu Ltd 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JP2000112910A (ja) * 1998-06-30 2000-04-21 Internatl Business Mach Corp <Ibm> 非一様メモリ・アクセス・コンピュ―タ・システム及びその操作方法
JP2002305535A (ja) * 2001-01-11 2002-10-18 Internatl Business Mach Corp <Ibm> データを転送する信頼できるプロトコルを提供する方法および装置
JP2007199999A (ja) * 2006-01-26 2007-08-09 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2007004834A (ja) * 2006-10-10 2007-01-11 Fujitsu Ltd マルチプロセッサ装置及びそのメモリアクセス方法
JP2008204245A (ja) * 2007-02-21 2008-09-04 Ricoh Co Ltd データ通信装置、画像処理システムおよびデータ通信方法
JP2012182721A (ja) * 2011-03-02 2012-09-20 Ricoh Co Ltd 画像形成装置およびその制御方法

Also Published As

Publication number Publication date
JP6578992B2 (ja) 2019-09-25

Similar Documents

Publication Publication Date Title
JP6944983B2 (ja) ハイブリッドメモリ管理
JP3871305B2 (ja) マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
US9065706B2 (en) Information processing apparatus, computer-readable recording medium, and control method
US5282272A (en) Interrupt distribution scheme for a computer bus
US5572703A (en) Method and apparatus for snoop stretching using signals that convey snoop results
US7162666B2 (en) Multi-processor system having a watchdog for interrupting the multiple processors and deferring preemption until release of spinlocks
JP4474570B2 (ja) キャッシュコヒーレンシ制御方法
US5271020A (en) Bus stretching protocol for handling invalid data
US9529594B2 (en) Miss buffer for a multi-threaded processor
JPH09114795A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムにおいてプロセッサをインターフェイスする並列型マスタ要求クラス構造
US8850129B2 (en) Memory ordered store system in a multiprocessor computer system
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
US8645632B2 (en) Speculative writestream transaction
WO2012112335A1 (en) Broadcast protocol for a network of caches
JP6578992B2 (ja) 制御回路、情報処理装置、および情報処理装置の制御方法
JP4376787B2 (ja) イベント通知方法、デバイス及びプロセッサシステム
CN114356839B (zh) 处理写操作的方法、设备、处理器及设备可读存储介质
JP4644647B2 (ja) 情報処理装置及び情報処理装置の制御方法
JPWO2006001051A1 (ja) マルチプロセッサ装置及びその制御方法
JP5966759B2 (ja) 演算処理装置および演算処理装置の制御方法
US9959173B2 (en) Node, arithmetic processing device, and arithmetic processing method
JP4452707B2 (ja) マルチプロセッサ装置及びそのメモリアクセス方法
JP2005242929A (ja) 共有メモリのアクセス方法及びデータ処理装置
JP2007048314A (ja) データ転送システムにおける送信装置及び受信装置,データ転送システム並びにデータ転送システムのバス制御方法
WO2012093475A1 (ja) 情報転送装置および情報転送装置の情報転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190812

R150 Certificate of patent or registration of utility model

Ref document number: 6578992

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150