(57)【要約】【課題】ハードウェア追加を必要とせず、リード命令の滞留を解消することができるデータ転送方法を提供することである。【解決手段】本発明は、リード命令処理部（６）のリード命令退避手段（１３）で、他ノードからリード命令を受信した時にリード命令を格納するバッファ（９）の空き状態を判定する。バッファ（９）が一杯の場合には、リード命令退避手段（１３）でリード命令を主記憶装置（８）に書き込む命令を生成、ライトポインタ（１４）で主記憶装置（８）のライトアドレスを生成した後、リード命令書込／読出生成手段（１６）からリード命令を書き込むための命令を主記憶装置（８）に送出する。【選択図】図１
2010231719.tif 000002
【特許請求の範囲】
【請求項１】
他ノードからリード命令を受信時に、前記リード命令を格納するバッファの空き状態を判定し、前記バッファが一杯でリード命令を格納できない状態であった場合には、前記リード命令を主記憶装置に書き込むことを特徴とするデータ転送方法。
【請求項２】
前記リード命令を前記主記憶装置に書き込む際、リード命令退避手段で前記リード命令を前記主記憶装置に書き込む命令を生成し、ライトポインタで前記主記憶装置へライトアドレスを生成した後、リード命令書込／読出生成手段から前記リード命令を書き込むための命令を前記主記憶装置に対して送出することを特徴とする請求項１に記載のデータ転送方法。
【請求項３】
前記バッファに空きができた時に、前記主記憶装置に書き込まれた前記リード命令を前記バッファに格納することを特徴とする請求項１または２に記載のデータ転送方法。
【請求項４】
前記主記憶装置に書き込まれた前記リード命令を前記バッファに格納する際、リード命令退避手段で前記リード命令を前記主記憶装置から読み出す命令を生成し、リードポインタで前記主記憶装置のリードアドレスを生成した後、リード命令書込／読出生成手段から前記リード命令を書き込むための命令を前記主記憶装置に送出し、前記主記憶装置から前記リード命令を前記バッファに格納することを特徴とする請求項３に記載のデータ転送方法。
【請求項５】
請求項１乃至４のうちのいずれか１項に記載のデータ転送方法を用いることを特徴とするデータ転送システム。
【請求項６】
請求項１乃至４のうちのいずれか１項に記載のデータ転送方法を用いることを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送方法に関する。
【背景技術】
【０００２】
図２は、従来のデータ転送方法を説明するブロック図である。
【０００３】
図２において、１−０、・・・、１−Ｙはノードであり、２はネットワークであり、３−０、・・・、３−ｎはバッファであり、４はクロスバであり、５は演算処理装置であり、６はリード命令処理部であり、７はアドレス生成部であり、８は主記憶装置であり、９はリード命令格納バッファであり、１０はアドレス保持レジスタであり、１１はアダーであり、１２はデータ読み出し命令生成手段である。図２において、ノード（１−Ｙ）のリード命令を二点鎖線で示し、ノード（１−Ｘ）のリード命令を一点鎖線で示す。
【０００４】
従来は、ノード（１−ｎ）からノード（１−Ｘ）とノード（１−Ｙ）にリード命令を発行した場合、リード命令を受信したノード（１−Ｘ）のリード命令処理部（６）ではアドレス生成部（７）のリード命令処理状態を判断し処理中の命令がない場合にリード命令を送出、アドレス生成部（７）ではアドレスを生成し読み出し命令生成手段（１２）において命令を生成した後、主記憶装置（８）に送出する。アドレス生成部（７）では転送データ長分のアドレスと命令を生成するため、転送データ長に応じたアドレス生成時間が必要である。このためリード命令処理部（６）では、複数のリード命令を受信した場合、先行命令がアドレス生成部（７）で処理中の時には後続命令をバッファ（９）で保持し、アドレス生成部（７）での処理が終了後、順次リード命令をアドレス生成部（７）に送出する。
【０００５】
特許文献１には、キューが満杯になったときにキューに空きが生じるまで待たされることなく、キューへのデータ出力を行うことができるキュー装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−３６８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のような従来のデータ転送方法では、ノード（１−Ｘ）で多数のノード間リード命令を受信した場合、ノード（１−Ｘ）のリード命令処理部（６）のリード命令を格納するバッファ（９）が一杯の状態では、リード命令がネットワーク（２）のバッファ（３）（図２では、バッファ（３−ｎ））に滞留する。バッファ（３）において後続に同一ノードからノード（１−Ｙ）に発行したリード命令がある場合、ノード（１−Ｙ）のリード命令処理部がリード命令を受信可能な状態であっても、先行するノード（１−Ｘ）に向かうリード命令が滞留しているために、ノード（１−Ｙ）のリード命令がネットワーク（２）に滞留してしまうという課題があった。
【０００８】
特許文献１に記載の発明では、キュー装置のほかにデータ退避バッファやそのデータ退避バッファとのインタフェース等のハードウェア追加が必要であるという問題があった。
【０００９】
本発明は上記の点にかんがみてなされたもので、ハードウェア追加を必要とせず、リード命令の滞留を解消することができるデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するにあたり、本発明は、リード命令処理部（６）のリード命令退避手段（１３）で、他ノードからリード命令を受信した時にリード命令を格納するバッファ（９）の空き状態を判定する。バッファ（９）が一杯の場合には、リード命令退避手段（１３）でリード命令を主記憶装置（８）に書き込む命令を生成、ライトポインタ（１４）で主記憶装置（８）のライトアドレスを生成した後、リード命令書込／読出生成手段（１６）からリード命令を書き込むための命令を主記憶装置（８）に送出する。バッファ（９）に空きができた時には、リード命令退避手段（１３）で主記憶装置（８）からリード命令を読み出す命令を生成、リードポインタ（１５）で主記憶装置（８）のリードアドレスを生成した後、リード命令書込／読出生成手段（１６）からリード命令を書き込むための命令を主記憶装置（８）に送出する。読み出したリード命令はバッファ（９）に格納し、アドレス生成部（７）で処理中の命令が無いときにバッファ（９）から読み出した後に順次送出する。命令の順序を保証するため、主記憶装置（８）にリード命令を書き込んだ場合、以降のリード命令は同様に一度主記憶装置（８）に書き込んだ後、バッファ（９）に読み出してからアドレス生成部（７）に送出する制御を行う。
【００１１】
このようにして本発明では、ノード（１−Ｘ）に多数のリード命令が集中しリード命令を格納するバッファ（９）が一杯の状態であっても、リード命令を一時的に主記憶装置（８）に退避することで、ノード（１−ｎ）からノード（１−Ｘ）に発行されたリード命令がネットワーク（２）のバッファ（３−ｎ）に滞留することがないため、後続にノード（１−Ｙ）に発行したリード命令があってもネットワーク（２）に滞留することがなく送出することが可能となる。
【発明の効果】
【００１２】
本発明によれば、以下のような効果を奏する。
【００１３】
すなわち、本発明によれば、ノード（１−Ｘ）で多数のリード命令を受信しリード命令処理部（６）のリード命令を格納するバッファ（９）が一杯の状態であっても、リード命令を一時的に主記憶装置（８）に退避することで、ノード（１−ｎ）からノード（１−Ｘ）に発行されたリード命令がネットワーク（２）のバッファ（３−ｎ）に滞留することがないため、バッファ（３−ｎ）において後続にノード（１−Ｙ）に発行したリード命令があってもバッファ（３−ｎ）に滞留することなく送出が可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明によるデータ転送方法の一実施形態を説明するブロック図である。
【図２】従来のデータ転送方法を説明するブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１６】
本発明は、ネットワークを介して複数ノードが接続され、各ノードに演算処理装置と主記憶装置を備え、演算処理装置に他ノードからリード命令を受信した時に主記憶装置からのデータ読み出し命令を発行するリード命令処理部とリード命令のアドレスを生成するアドレス生成部を備える計算機システムにおいて、他ノードからリード命令を受信した時、リード命令処理部ではアドレス生成部でのリード命令処理状態を判断し、処理中の命令が無い時にアドレス生成部に対してリード命令を送出する。
【００１７】
アドレス生成部では転送データ長分のアドレス生成を行うが、処理時間が長く連続で命令を受け付けられないため、リード命令処理部で連続してリード命令を受信した場合には、後続のリード命令はバッファに保持しておき、アドレス生成部で先行リード命令のアドレス生成が終了後、順次リード命令をバッファから読み出しアドレス生成部に送出する。
【００１８】
リード命令処理部にてバッファが一杯となり後続リード命令を受信してもバッファに格納できなくなった場合には、リード命令を一旦主記憶装置に書き込むための命令を生成する。
【００１９】
アドレス生成部での先行するリード命令のアドレス生成が終わったら、リード命令処理部ではバッファからリード命令を読み出しアドレス生成部に送出するが、この時にバッファに空きができるので、主記憶装置に書き込んだリード命令を読み出すための命令を発行、読み出したリード命令をバッファへ格納した後、アドレス生成部での処理状況に応じてリード命令をアドレス生成部に送出することを特徴とする。
【００２０】
図１は、本発明によるデータ転送方法の一実施形態を説明するブロック図である。
【００２１】
図１において、１−０、・・・、１−Ｙはノードであり、２はネットワークであり、３−０、・・・、３−ｎはバッファであり、４はクロスバであり、５は演算処理装置であり、６はリード命令処理部であり、７はアドレス生成部であり、８は主記憶装置であり、９はリード命令格納バッファであり、１０はアドレス保持レジスタであり、１１はアダーであり、１２はデータ読み出し命令生成手段であり、１３はリード命令退避手段であり、１４はライトポインタであり、１５はリードポインタであり、１６はリード命令書込／読出生成手段であり、１７はリード命令退避制御部である。図１において、ノード（１−Ｙ）のリード命令を二点鎖線で示し、ノード（１−Ｘ）のリード命令を一点鎖線で示す。
【００２２】
図１において、リード命令処理部（６）では他ノードからリード命令を受信時、リード命令退避手段（１３）によりリード命令を格納するバッファ（９）の空き状態を判定する。バッファ（９）が一杯でリード命令を格納できない状態であった場合には、リード命令退避手段（１３）でリード命令を主記憶装置（８）に書き込む命令を生成、ライトポインタ（１４）で主記憶装置（８）へライトアドレスを生成した後、リード命令書込／読出生成手段（１６）からリード命令を書き込むための命令を主記憶装置（８）に対して送出する。バッファ（９）に空きができた時には、リード命令退避手段（１３）でリード命令を主記憶装置（８）から読み出す命令を生成、リードポインタ（１５）で主記憶装置（８）のリードアドレスを生成した後、リード命令書込／読出生成手段（１６）からリード命令を書き込むための命令を主記憶装置（８）に送出し、主記憶装置（８）からリード命令を読み出しバッファ（９）に格納する。
【００２３】
次に、図１のリード命令を受信するノード（１−Ｘ）の動作についてさらに詳しく説明する。
【００２４】
ノード（１−Ｘ）のリード命令処理部（６）ではアドレス生成部（７）でのリード命令処理状態を判断し、処理中の命令が無い時にアドレス生成部（７）に対してリード命令を送出する。アドレス生成部（７）では転送データ長分のアドレス生成を行い処理時間が長く連続で命令を受け付けられないため、リード命令処理部（６）で連続してリード命令を受信した場合には、後続のリード命令はバッファ（９）に保持しておき、アドレス生成部（７）で先行のリード命令のアドレス生成が終了後、順次リード命令をバッファ（９）から読み出しアドレス生成部（７）に送出する。バッファ（９）が一杯でリード命令を格納できない状態であった場合には、リード命令退避手段（１３）でリード命令を主記憶装置（８）に書き込むリード命令を書き込むための命令を生成、ライトポインタ（１４）で主記憶装置（８）のアドレスを生成した後、リード命令処理部（６）よりリード書き込み命令を主記憶装置（８）に対して送出する。バッファ（９）に空きができた時には、リード命令退避手段（１３）でリード命令を主記憶装置（８）から読み出すリード命令を読み出すための命令を生成、リードポインタ（１５）で主記憶装置（８）のアドレスを生成した後、リード読み出し命令を主記憶装置（８）に対して送出する。主記憶装置（８）からリード命令を読み出しバッファ（９）に格納する。
【００２５】
以上説明した本発明によれば、ノード（１−Ｘ）で多数のリード命令を受信しリード命令処理部（６）のリード命令を格納するバッファ（９）が一杯の状態であっても、リード命令を一時的に主記憶装置（８）に退避することで、ノード（１−ｎ）からノード（１−Ｘ）に発行されたリード命令がネットワーク（２）のバッファ（３−ｎ）に滞留することがないため、バッファ（３−ｎ）において後続にノード（１−Ｙ）に発行したリード命令があってもバッファ（３−ｎ）に滞留することなく送出が可能となる。
【００２６】
なお、計算機システムを構成するノード数、演算処理装置、主記憶装置の台数に制限は無く、本発明のブロック図の限りではない。
【産業上の利用可能性】
【００２７】
本発明は、ネットワークに接続されたノード間のデータ転送方法に適用可能である。
【符号の説明】
【００２８】
１−０、・・・、１−Ｙ  ノード
２  ネットワーク
３−０、・・・、３−ｎ  バッファ
４  クロスバ
５  演算処理装置
６  リード命令処理部
７  アドレス生成部
８  主記憶装置
９  リード命令格納バッファ
１０  アドレス保持レジスタ
１１  アダー
１２  データ読み出し命令生成手段
１３  リード命令退避手段
１４  ライトポインタ
１５  リードポインタ
１６  リード命令書込／読出生成手段
１７  リード命令退避制御部
【図１】
2010231719.tif 000003
【図２】
2010231719.tif 000004