(57)【特許請求の範囲】
【請求項１】
複数のノード間が所定のプロトコルで接続されるデータ通信システムの各ノードで生ずるライト命令のデットロックを回避する方法であって、
複数の前記ノードのうちの任意の送信ノードからライト命令を受け取った任意の受信ノードにおいて、前記ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成し、
生成された前記到達保証情報を前記受信ノードから前記送信ノードへ返すことを特徴とするデータ通信システムのデットロック回避方法。
【請求項２】
複数のノードをＰＣＩ Expressスイッチを介して接続するデータ処理システムのデットロック回避方法であって、
複数の前記ノードのうちの任意の送信ノードからライト命令を受け取った、任意の受信ノードにおいて、前記ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成し、
生成された前記到達保証情報を前記受信ノードから前記送信ノードへ返すことを特徴とするデータ処理システムのデットロック回避方法。
【請求項３】
前記識別情報は、ライト命令到達保証専用のタグＩＤであることを特徴とする請求項２記載のデータ処理システムのデットロック回避方法。
【請求項４】
データ通信システムのノードであって、
ライト命令を受信ノードへ送信する送信手段と、
前記ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を前記受信ノードから受信する受信手段と、
該受信手段によって受信した前記到達保証情報に基づいて前記ライト命令の処理完了を認識する認識手段とを備えてなることを特徴とするデータ通信システムのノード。
【請求項５】
データ通信システムのノードであって、
送信ノードからライト命令を受け取る受信手段と、
該受信手段で受け取ったライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成する生成手段と、
該生成手段によって生成された前記到達保証情報を前記送信ノードへ送信する送信手段とを備えてなることを特徴とするデータ通信システムのノード。
【請求項６】
複数のノードと、複数の前記ノード間が所定のプロトコルで接続されるデータ通信システムであって、
複数の前記ノードのうちの送信ノードを請求項４記載のノードで構成し、複数の前記ノードのうちの受信ノードを請求項５記載のノードで構成したことを特徴とするデータ通信システム。
【請求項７】
データ処理システムのノードであって、
ライト命令を受信ノードへ送信する送信手段と、
前記ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を前記受信ノードから受信する受信手段と、
該受信手段によって受信した前記到達保証情報に基づいて前記ライト命令の処理完了を認識する認識手段とを備えてなることを特徴とするデータ処理システムのノード。
【請求項８】
データ処理システムのノードであって、
送信ノードからライト命令を受け取る受信手段と、
該受信手段で受け取ったライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成する生成手段と、
該生成手段によって生成された前記到達保証情報を前記送信ノードへ送信する送信手段とを備えてなることを特徴とするデータ処理システムのノード。
【請求項９】
複数のノードと、複数の前記ノード間を接続するＰＣＩ Expressスイッチとを有するデータ処理システムであって、
複数の前記ノードのうちの送信ノードを請求項７記載のノードで構成し、複数の前記ノードのうちの受信ノードを請求項８記載のノードで構成したことを特徴とするデータ処理システム。
【請求項１０】
コンピュータに請求項１記載のデータ通信システムのデットロック回避方法を実行させることを特徴とする制御プログラム。
【請求項１１】
コンピュータに請求項２又は３記載のデータ処理システムのデットロック回避方法を実行させることを特徴とする制御プログラム。
【請求項１２】
コンピュータを、請求項４又は５記載のデータ通信システムのノードとして機能させることを特徴とする制御プログラム。
【請求項１３】
コンピュータを、請求項７又は８記載のデータ処理システムのノードとして機能させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ通信システムのデットロック回避方法及びそのシステム、データ処理システムのデットロック回避方法及びそのシステム並びにその制御プログラムに関し、詳しくはデータ通信システムのデットロック回避に有効なデータ通信システムでのデットロック回避方法及びそのシステム、データ処理システムのデットロック回避方法及びそのシステム並びにその制御プログラムに関する。
【背景技術】
【０００２】
データ処理システムの信頼性がより高度に要求されるにつれて、そのシステムでデータが確実にメモリに書き込まれたか否かを保証することが極めて重要になる。
例えば、パーソナルコンピュータシステムでは、ＣＰＵ（Central Processing Ｕnit）と入出力装置との間のデータ転送にシリアル転送インタフェースであるＰＣＩ Express（Peripheral Component Interconnect Express）が広く用いられている。このＰＣＩ Expressは、データをメモリに書き込むときにその書き込みの到達保証をする手段を備えていない。
【０００３】
特許文献１には、書き込みの到達保証を行う１つの技術的手段が開示されている。この技術的手段は、ライト命令のアドレス内にライト転送元のノード情報を埋め込み、ライト命令を受け取った受信ノードがアドレス情報に基づいてライト命令送信元にライト命令を送出することをその特徴部分として有する。
そのシステムの構成例を示せば、図３に示すようになる。ノード４１からノード４２へデータを書き込むとき、ノード４１のＤＭＡ Engine４１１からＰＣＩ Expressスイッチ４３を介してノード４２のバッファ４２２へライト命令が転送されてデータのメモリ４２３への書き込みを行うように構成されている。この書き込みにおいて、上述した特徴部分が機能して書き込みの到達保証を為さんとするものである。
【特許文献１】特開２００６−３０２２５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１に開示される技術的手段には、書き込みの到達保証が図れるとはいうものの、ライト命令のデットロツクが発生する可能性がある。
それは、自己のＤＭＡ Engineから大量のライト命令が発行される状態が発生すると、それだけで、自己のバッファが一杯になり、ＰＣＩ Express４３を介して送り込まれる他のノードからのライト命令を受け付けられなくなり、メモリへのライト命令も発行できず、ライト命令がデットロックしてしまうという技術的問題である。
この問題は、ＰＣＩ ExpressのTransaction Ordering Rulesでの同じTraffic Class（以下、ＴＣという）に属するライト命令は、Relaxed Ordering Attribute Bitを設定しない場合には、同じＴＣに属するライト命令を追い越すことができないことに起因する。
【０００５】
上記問題を解決する手段としては、書き込み到達保証のためのライト命令とメモリへのライト命令とを別のＴＣに割り当てるようにするか、それぞれの命令を完全に別の通路を通るようにするか、若しくはＤＭＡ Engineから来るすべてのライト命令を溜め込むことができるバッファを設ける方法がある。
しかし、これらの手段は、ハードウェア量の大幅な増大を招来してしまうという技術的課題が生ずる。
【０００６】
この発明は、上述の事情に鑑みてなされたもので、データ通信システムのデットロック回避を達成し得るデータ通信システムのデットロック回避方法及びそのシステム、データ処理システムのデットロック回避方法及びそのシステム並びにその制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、この発明の第１の構成は、複数のノード間が所定のプロトコルで接続されるデータ通信（処理）システムの各ノードで生ずるライト命令のデットロックを回避する方法に係り、複数の前記ノードのうちの任意の送信ノードからライト命令を受け取った任意の受信ノードにおいて、前記ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成し、生成された前記到達保証情報を前記受信ノードから前記送信ノードへ返すことを特徴としている。
【０００８】
この発明の第２の構成は、データ通信（処理）システムのノードに係り、ライト命令を受信ノードへ送信する送信手段と、前記ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を前記受信ノードから受信する受信手段と、該受信手段によって受信した前記到達保証情報に基づいて前記ライト命令の処理完了を認識する認識手段とを備えてなることを特徴としている。
【０００９】
この発明の第３の構成は、データ通信（処理）システムのノードに係り、送信ノードからライト命令を受け取る受信手段と、該受信手段で受け取ったライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成する生成手段と、該生成手段によって生成された前記到達保証情報を前記送信ノードへ送信する送信手段とを備えてなることを特徴としている。
【発明の効果】
【００１３】
この発明によれば、データ通信（処理）システムの各ノードで生ずるライト命令のデットロックを回避するために、複数のノードのうちの任意の送信ノードからライト命令を受け取った任意の受信ノードにおいて、ライト命令の実行結果に基づいて、メモリへのライト完了情報であってライト命令以外の命令との区別をし得る識別情報と書き込んだデータの冗長コードとを含み、かつ、ライト命令を追い越すことができる到達保証情報を生成し、生成された到達保証情報を受信ノードから送信ノードへ返すようにしたので、デットロックを起こすことなく、また、ハードウェア量を増大させることなく、ライト命令に対する到達保証を達成することができる。
さらに、到達保証受信のデータとして書き込みデータの冗長コードを組み込んでいるので、データの書き込みを確認することができ、それゆえ、書いたデータの信頼性を高めることができる。
【発明を実施するための最良の形態】
【００１４】
この発明は、データ通信システムの各ノードで生ずるライト命令のデットロックを回避するために、受信ノードにおいてライト命令に対する到達保証情報であってライト命令以外の命令との区別をし得る識別情報を含む到達保証情報を生成することと、生成された到達保証情報を受信ノードから送信ノードへ返送することを含んで構成される。
【実施形態１】
【００１５】
図１は、この発明の実施形態１であるデータ処理システムの電気的構成の細部を示すブロック図、また、図２は、同データ処理システムの動作例を説明する図である。
この実施例のデータ処理システム１は、複数のノードの中の任意の送信ノードから他の受信ノードへライト命令が発行されたときに該ライト命令に対する確実な応答を返すようにしたシステムに係り、図１に示すように、データ処理システム１の各ノードＮｉ（ｉ＝１，２，…，Ｎ）は、ヘッダ解析部Ｎｉ１は、メモリ制御部Ｎｉ２は、レスポンス生成部Ｎｉ３及びＤＭＡ統御部（ＤＭＡ Engine）Ｎｉ４から概略構成され、これらのノードＮｉの各各は、ＰＣＩ ＥｘｐｒｅｓｓスイッチＳＷを介して接続可能に構成されている。
【００１６】
ヘッダ解析部Ｎｉ１は、受信パケットのヘッダの解析及び該解析に基づくメモリライト命令の発行、レスポンス生成部Ｎｉ３へのレスポンス生成要求及びRequester  ＩＤ情報（送信ノードＩＤ情報）の送出、並びに受信ノードからの応答に書き込み到達保証専用のＴａｇ ＩＤ［識別情報］を持ったCompletion With Data（以下、Cpl ＩＤという）又はCompletion (以下、Cplという)｛到達保証情報｝である場合にＤＭＡ Engine Ｎｉ４に対する書き込み完了の通知を行う機能部である。
メモリ制御部Ｎｉ２は、ヘッダ解析部Ｎｉ１からのライト命令の実行と、その実行完了及び書き込んだデータの冗長コードのレスポンス生成部Ｎｉ３への通知とを行う機能部である。
【００１７】
レスポンス生成部Ｎｉ３は、ヘッダ解析部Ｎｉ１からのレスポンス生成要求の受け付け後にメモリ制御部Ｎｉ２からライト命令完了報告を受け付けたら、書き込み到達保証専用のＴａｇ ＩＤ及び冗長コーを付与したCplＩＤ又はCplを送信ノード（送信ノードＩＤ情報で識別されるノード）へ送信する機能部である。
ＤＭＡ Engine  Ｎｉ４は、ヘッダ解析部Ｎｉ１からライト完了命令を受け付けたときに冗長コードの検査、該検査により書き込んだデータに間違いがなければライト完了、ライト完了命令の受け付けなし又は冗長コードに誤りがあったときエラーありの検出を行う機能部である。
【００１８】
データ処理システム１の各ノードＮｉの、ヘッダ解析部Ｎｉ１、メモリ制御部Ｎｉ２、レスポンス生成部Ｎｉ３及びＤＭＡ Engine  Ｎｉ４は、プログラムで制御可能に構成されている。
【００１９】
次に、図１乃至図３を参照して、この実施形態の動作について説明する。
ノードＮ１のメモリのデータをノードＮ２のメモリにコピーする例について説明する。
この例の説明の都合上、ノードＮ１のＢus Ｎumber（Ｂus Ｎum）を０、Device Ｎumber（Device Ｎum）を０、Ｆunction Ｎumber（Ｆunction Ｎum）を０とし、ノードＮ２のＢus Ｎumber（Ｂus Ｎum）を２、Device Ｎumber（Device Ｎum）を０、Ｆunction Ｎumber（Ｆunction Ｎum）を０とする。また、ノードＮ１の書き込み保証用のTag ＩＤを１６とする（この例では、書き込み保証用のTag ＩＤを１つしか定義していないが、書き込み保証用のTag ＩＤは１つである必要はない）。
【００２０】
ファームウェアの命令によって起動されたＤＭＡ Engineは、ノードＮ１のメモリからデータをリードし、ノードＮ２のメモリに対してライトを行う。
ノードＮ１からライト命令を受け取ったノードＮ２のヘッダ解析部Ｎ２１は、メモリへのライト命令であるので、Requester ＩＤ情報（この場合Ｂus Ｎumber＝１、Device Ｎumber＝０、Ｆunction Ｎumber＝０）をレスポンス生成部Ｎ２３に通達し、同時にメモリ制御部Ｎ２２に対してライト命令を発行する。
この時、レスポンス生成部Ｎ２３に通達したRequester ＩＤ情報とライト命令との間の相関が保たれるようにライト命令にタグを付けておく。
【００２１】
メモリ制御部Ｎ２２には、メモリへのライトを行い、無事完了したらレスポンス生成部Ｎ２３に対して完了したライト命令及び書き込んだデータの冗長コードを通知する。
ライトの完了を受け取ったレスポンス生成部Ｎ２３は、当該ライトに対する到達保証を行うためにTag ＩＤを１６としたCplＩＤ又はCplをヘッダ解析部Ｎ２１から渡されたRequester ＩＤ情報で識別されるノードであるノードＮ１にＰＣＩ ExpressスイッチＳＷを介して送信する。
こうして送られて来るCplＩＤ又はCplは、Transaction Ordering Rulesによれば、ライト命令を追い越すことができる。
したがって、上述したようなバッファのライト命令の蓄積量が増大して一杯になったとしてもライト命令がデットロツクすることはない。また、このデットロツク回避のためのハードウェア量の増大も生じない。
【００２２】
CplＩＤを受け取ったノードＮ１のヘッダ解析部Ｎ１１は、Cpl ＩＤのTag ＩＤが１６であることからライト命令に対する到達保証命令であると判断し、ＤＭＡ Engine Ｎ１4に対してライト命令が完了したことを報告する。
完了報告を受けたＤＭＡは、冗長コードをチェックし、問題がなければファームウェアに対してライトの完了を報告する。
【００２３】
このように、この実施形態の構成によれば、ライト命令に対する到達保証をCpl ＩＤ又はCpl で行うようにしたので、デットロックを起こすことなく、また、ハードウェア量を増大させることなく、ライト命令に対する到達保証を達成することができる。さらに、Ｃp１ＩＤ又はCplのデータとして書き込みデータの冗長コードを組み込み確認することにより書いたデータの信頼性を高めることができる。
【００２４】
以上、この発明の実施例を、図面を参照して詳述してきたが、この発明の具体的な構成は、これらの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。
例えば、Tag ＩＤは、ライト命令の実行結果に応じてこれを識別し得る識別情報として構成されてもよい。
また、ＰＣＩ Express以外のプロトコルで、ライト命令に対する応答の規定を定めてないプロトコルでもこの発明を実施することができる。
【産業上の利用可能性】
【００２５】
ここに開示しているデータ通信システムのデットロック回避方法及びそのシステム並びにその制御プログラムは、ライト命令に対する応答の規定を書く通信プロトコルで動作する各種の通信システムの中で利用し得る。
【図面の簡単な説明】
【００２６】
【図１】この発明の実施形態１であるデータ処理システムの電気的構成の細部を示すブロック図である。
【図２】同データ処理システムの動作例を説明する図である。
【図３】従来のＰＣＩ Expressを用いたデータ処理システムの電気的構成を示すブロック図である。
【符号の説明】
【００２７】
１      データ処理システム（データ通信システム）
Ｎｉ１      ヘッダ解析部（受信手段）
Ｎｉ２      メモリ制御部（生成手段の一部）
Ｎｉ３      レスポンス生成部（生成手段の残部、送信手段）
Ｎｉ４      ＤＭＡ Engine（送信手段、認識手段）
ＳＷ      ＰＣＩ Expressスイッチ
【図１】
0005151567.tif 000002
【図２】
0005151567.tif 000003
【図３】
0005151567.tif 000004