説明

メモリアクセス制御装置、メモリアクセス制御方法、及びメモリアクセス制御用プログラム

【課題】マルチキャスト転送のデータ転送先のメモリ制御部からデータ転送元のメモリ制御部へのマルチキャスト転送のリプライを不用とし、リプライによるネットワークの負荷を無くす。
【解決手段】メモリとメモリ制御部とネットワークを保持したメモリ分散方式のシステムにおいて、メモリ制御部内に受信したマルチキャスト転送の数を示す命令数カウンタを設けて、ソフトウェアが複数のマルチキャスト転送を実行後にデータ転送先の命令数カウンタを読み出してマルチキャスト転送の終了を認識する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリアクセス制御装置に関し、特にマルチキャスト転送を制御するメモリアクセス制御装置に関する。
【背景技術】
【0002】
図1に、従来のマルチキャスト転送機能を持つメモリアクセス制御装置の例を示す。このメモリアクセス制御装置は、ノード1(1−x、x=1〜A:Aはノード数)と、ネットワーク2を含む。
【0003】
ノード1(1−x、x=1〜A)は、ソフトウェアが管理する最小単位である。
【0004】
ノード1(1−x、x=1〜A)の各々は、メモリ制御部11(11−i、i=1〜n:nは任意)と、メモリ12(12−i、i=1〜n)と、ソフトウェア13(13−x、x=1〜A)を含む。
【0005】
メモリ制御部11(11−i、i=1〜n)は、ノード1(1−x、x=1〜A)内でメモリのアクセス制御を行う。
【0006】
メモリ12(12−i、i=1〜n)は、メモリ制御部11(11−i、i=1〜n)の各々が管理する分散メモリである。ここでは、メモリ制御部11(11−i、i=1〜n)とメモリ12(12−i、i=1〜n)は、1対1で対応している。
【0007】
ソフトウェア13(13−x、x=1〜A)は、ノード1(1−x、x=1〜A)を管理する。
【0008】
ネットワーク2は、ノード1(1−x、x=1〜A)に関係無く、メモリ制御部11(11−i、i=1〜n)の各々の間を接続する通信回線、及びネットワーク機器である。
【0009】
メモリ制御部11(11−i、i=1〜n)の各々は、命令送出部111(111−i、i=1〜n)と、命令受付部112(112−i、i=1〜n)と、リプライ生成部113(113−i、i=1〜n)と、リプライ受付部114(114−i、i=1〜n)と、リプライ数カウンタ115(115−i、i=1〜n)と、エラー情報レジスタ116(116−i、i=1〜n)を含む。
【0010】
メモリ制御部11−1は、ノード1−1内のマルチキャスト転送のデータ転送元である。命令送出部111−1は、メモリ制御部11−1の配下のメモリ12−1からデータを読み出してネットワーク2へ送出する。
【0011】
ネットワーク2は、マルチキャスト転送のデータをコピーして、ノード1−2〜1−n内のデータ転送先であるメモリ制御部11−2〜11−nへ送出する。
【0012】
また、ネットワーク2は、故障等によりデータ転送が正常に行われない場合には、マルチキャスト転送のデータにエラー情報を付与してメモリ制御部11−2〜11−nへ送出する。故障等によりデータ転送が正常に行われない場合とは、マルチキャスト転送のデータ転送元であるメモリ制御部11−1や、データを転送するネットワーク2が、自身や経路上において発生している異常を知らせるためのエラー情報をマルチキャスト転送のデータに付与して送出する場合のように、データの正当性が保証できない場合を示す。例えば、ECC(Error Correcting Code)において、2ビット以上の誤りを含む場合等が考えられる。なお、故障等によりデータ転送が正常に行われない場合には、メモリ制御部11−2〜11−nが故障した場合は含まれないものとする。メモリ制御部11−2〜11−n自体が、転送されるデータを受信できないためである。
【0013】
メモリ制御部11−2〜11−nは、ノード1−2〜1−n内のデータ転送先である。命令受付部112−2〜112−nは、マルチキャスト転送のデータを受信すると、メモリ制御部11−2〜11−nの配下のメモリ12−2〜12−nに受信されたデータを記憶し、リプライ生成部113−2〜113−nにリプライ生成要求を通知する。
【0014】
リプライ生成部113−2〜113−nは、リプライ生成要求に応じて、データ転送元であるメモリ制御部11−1へリプライ(応答)を返却する。
【0015】
リプライ受付部114−1は、リプライ(応答)を受信すると、リプライ数カウンタ115−1を「+1」(increment)する。
【0016】
また、リプライ受付部114−1は、データ転送にエラー情報が付与されていた場合には、エラー情報レジスタ116−1にエラー情報を登録する。
【0017】
このように、従来、図1に示すマルチキャスト転送機能を持つメモリアクセス制御装置のような大規模構成で高信頼性のマルチプロセッサシステムでは、データ転送先がデータ転送元へリプライ(応答)を返却する必要があった。
【0018】
例えば、マルチキャスト転送機能を持つメモリアクセス制御装置の一例として、特開平08−329030号公報(特許文献1)に、マルチプロセッサシステムにおけるプロセッサ通信制御が開示されている。この従来のマルチキャスト転送機能を持つメモリアクセス制御装置では、マルチキャスト転送によりデータを送出するプロセッサと、データ転送先のプロセッサと、データ転送先のプロセッサ内のデータ転送元へリプライを返却するリプライ通信送出制御部とから構成されており、マルチキャスト転送のデータを受信したプロセッサは、必ずデータ転送元へリプライを返却する必要がある。
【0019】
このような従来の技術には、以下のような問題点がある。
【0020】
第1の問題点は、マルチキャスト転送の転送先が多い大規模構成の場合にはリプライ数が大量に発生してしまうことである。そのために転送経路に負荷をかけてしまい性能が低下してしまう。また、マルチキャスト転送のデータを送出したプロセッサは受信したリプライを処理する必要があるため、プロセッサ自身の命令処理性能が低下する可能性がある。
【0021】
また、第2の問題点は、ソフトウェアが1つのマルチキャスト転送を行う度にマルチキャスト転送の完了確認を行う必要があることである。そのためにソフトウェアの動作が煩雑になってしまう。
【0022】
また、第3の問題点は、データ転送先のメモリを管理するそれぞれのソフトウェアが個別に管理内でのマルチキャスト転送の完了を確認できないことである。そのためにマルチキャスト転送を行ったソフトウェアが他のソフトウェアにマルチキャスト転送の完了を通知する必要がある。
【0023】
なお、関連する技術として、特開2002−324013号公報(特許文献2)に、データ転送システムの受信側装置が開示されている。この関連技術では、1パケット分のデータを受信すると、受信したデータ数が調べられる。データ数が正しければ、そのデータをメモリに格納し、全データの受信が終了するまで処理を繰り返す。データ数が誤っていれば、送信側装置へ同じデータの再送を要求する。再送されたデータを受信すると、再度、そのデータ数が調べられる。データ数が正しければ、そのデータをメモリに格納する。一方、再送されたデータのデータ数が誤っていれば、送信側装置へパケット方式とは異なる方式でリセットコマンドを送信する。リセットコマンドの送信後、エラー処理を実行し、この処理を終了する。
【先行技術文献】
【特許文献】
【0024】
【特許文献1】特開平08−329030号公報
【特許文献2】特開2002−324013号公報
【発明の概要】
【発明が解決しようとする課題】
【0025】
従来は、マルチキャスト転送のデータ転送先のメモリ制御部は、データ転送元のメモリ制御部へリプライを返却していた。
【0026】
また、データ転送元のメモリ制御部は、内部に1つのマルチキャスト転送に対するリプライの受信数をカウントするリプライ数カウンタを持っていた。
【0027】
また、ソフトウェアは、マルチキャスト転送を実行する度にデータ転送元のリプライ数カウンタを読み出してマルチキャスト転送の終了を認識していた。
【0028】
このために、ソフトウェアは、マルチキャスト転送を実行する度に終了確認を行う必要がある。
【0029】
また、全てのデータ転送先からデータ転送元へのリプライが、ネットワークに負荷をかけていた。
【課題を解決するための手段】
【0030】
本発明のメモリアクセス制御装置は、メモリと、前記メモリのアクセス制御を行い、マルチキャスト転送による前記メモリへのアクセスに対するリプライの送受信を防止するメモリ制御手段と、前記メモリ及び前記メモリ制御手段を管理するソフトウェアの実行手段とを含む。
【0031】
前記メモリ制御手段は、前記メモリからデータを読み出して、データ転送先にマルチキャスト転送で前記データを送信する命令送出手段と、マルチキャスト転送のデータを受信する命令受付手段と、前記命令受付手段により受信されたマルチキャスト転送の数を示す命令数カウンタと、前記命令受付手段により受信されたマルチキャスト転送のデータに付与されたエラー情報を登録するためのエラー情報レジスタとを具備する。
【0032】
前記実行手段は、前記ソフトウェアを実行し、複数のマルチキャスト転送を実行した後に、前記ソフトウェアのシーケンスのチェックポイント毎に、データ転送先のメモリ制御手段が持つ命令数カウンタとエラー情報レジスタを読み出して、マルチキャスト転送の終了と転送の成否を認識する。
【0033】
本発明のメモリアクセス制御方法では、メモリのアクセス制御を行い、マルチキャスト転送による前記メモリへのアクセスに対するリプライの送受信を防止する。また、前記メモリからデータを読み出して、データ転送先にマルチキャスト転送で前記データを送信する。また、マルチキャスト転送のデータを受信する。また、前記受信されたマルチキャスト転送の数を示す命令数カウンタを保持する。また、前記受信されたマルチキャスト転送のデータに付与されたエラー情報をエラー情報レジスタに登録する。また、前記メモリ及び前記メモリ制御手段を管理するソフトウェアを実行し、複数のマルチキャスト転送を実行した後に、前記ソフトウェアのシーケンスのチェックポイント毎に、データ転送先のメモリ制御手段が持つ命令数カウンタとエラー情報レジスタを読み出して、マルチキャスト転送の終了と転送の成否を認識する。
【0034】
本発明のメモリアクセス制御用プログラムは、メモリのアクセス制御を行い、マルチキャスト転送による前記メモリへのアクセスに対するリプライの送受信を防止するステップと、前記メモリからデータを読み出して、データ転送先にマルチキャスト転送で前記データを送信するステップと、マルチキャスト転送のデータを受信するステップと、前記受信されたマルチキャスト転送の数を示す命令数カウンタを保持するステップと、前記受信されたマルチキャスト転送のデータに付与されたエラー情報をエラー情報レジスタに登録するステップと、前記メモリ及び前記メモリ制御手段を管理するソフトウェアが実行された場合、複数のマルチキャスト転送を実行した後に、前記ソフトウェアのシーケンスのチェックポイント毎に、データ転送先のメモリ制御手段が持つ命令数カウンタとエラー情報レジスタを読み出して、マルチキャスト転送の終了と転送の成否を認識するステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【0035】
大規模構成で高信頼性のマルチプロセッサシステムにおいて、マルチキャスト転送のリプライ(応答)が不用となる。
【図面の簡単な説明】
【0036】
【図1】従来のメモリアクセス制御装置の構成例を示す概念図である。
【図2】本発明のメモリアクセス制御装置の構成例を示す概念図である。
【図3】本発明のメモリアクセス制御装置におけるデータ転送の例を示す図である。
【図4A】本発明のメモリアクセス制御装置におけるデータ転送のタイミングの例を示す図である。
【図4B】従来のメモリアクセス制御装置におけるデータ転送のタイミングの例を示す図である。
【図5】本発明のメモリアクセス制御装置におけるソフトウェアの動作フローの例を示す図である。
【発明を実施するための形態】
【0037】
以下に、本発明の実施形態について添付図面を参照して説明する。
図2に示すように、本発明のメモリアクセス制御装置は、ノード1(1−x、x=1〜A:Aはノード数)と、ネットワーク2を含む。
【0038】
ノード1(1−x、x=1〜A)は、ソフトウェアが管理する最小単位である。
【0039】
ノード1(1−x、x=1〜A)の各々は、メモリ制御部11(11−i、i=1〜n:nは任意)と、メモリ12(12−i、i=1〜n)と、ソフトウェア13(13−x、x=1〜A)を含む。
【0040】
メモリ制御部11(11−i、i=1〜n)は、ノード1(1−x、x=1〜A)内でメモリのアクセス制御を行う。
【0041】
メモリ12(12−i、i=1〜n)は、メモリ制御部11(11−i、i=1〜n)の各々が管理する分散メモリである。ここでは、メモリ制御部11(11−i、i=1〜n)とメモリ12(12−i、i=1〜n)は、1対1で対応している。
【0042】
ソフトウェア13(13−x、x=1〜A)は、ノード1(1−x、x=1〜A)を管理する。ソフトウェア13(13−x、x=1〜A)の例として、ノード1(1−x、x=1〜A)として機能する仮想マシン(Virtual Machine(VM))環境等が考えられる。なお、ソフトウェア13(13−x、x=1〜A)は、当該ソフトウェアを実行するCPU(Central Processing Unit)等のハードウェア装置を示す。すなわち、ここでいうソフトウェア13(13−x、x=1〜A)は、ソフトウェアとハードウェア装置を含む概念である。但し、実際には、これらの例に限定されない。
【0043】
ネットワーク2は、ノード1(1−x、x=1〜A)に関係無く、メモリ制御部11(11−i、i=1〜n)の各々の間を接続する通信回線、及びネットワーク機器である。
【0044】
メモリ制御部11(11−i、i=1〜n)の各々は、命令送出部111(111−i、i=1〜n)と、命令受付部112(112−i、i=1〜n)と、エラー情報レジスタ116(116−i、i=1〜n)と、命令数カウンタ117(117−i、i=1〜n)を含む。
【0045】
メモリ制御部11−1は、ノード1−1内のマルチキャスト転送のデータ転送元である。命令送出部111−1は、メモリ制御部11−1の配下のメモリ12−1からデータを読み出してネットワーク2へ送出する。
【0046】
ネットワーク2は、マルチキャスト転送のデータをコピーして、ノード1−2〜1−n内のデータ転送先であるメモリ制御部11−2〜11−nへ送出する。
【0047】
また、ネットワーク2は、故障等によりデータ転送が正常に行われない場合には、マルチキャスト転送のデータにエラー情報を付与してメモリ制御部11−2〜11−nへ送出する。
【0048】
メモリ制御部11−2〜11−nは、ノード1−2〜1−n内のデータ転送先である。命令受付部112−2〜112−nは、マルチキャスト転送のデータを受信すると、メモリ制御部11−2〜11−nの配下のメモリ12−2〜12−nに受信されたデータを記憶し、命令数カウンタ117−2〜117−nを「+1」(increment)する。すなわち、命令数カウンタ117(117−i、i=1〜n)は、受信されたマルチキャスト転送の数を示す。ここでは、説明の簡略化のため、命令数カウンタ117(117−i、i=1〜n)は、カウントされた数の数値情報自体を示すものとする。
【0049】
また、命令受付部112−2〜112−nは、データ転送にエラー情報が付与されていた場合には、エラー情報レジスタ116−2〜116−nにエラー情報を登録する。ここでは、説明の簡略化のため、エラー情報レジスタ116(116−i、i=1〜n)は、エラー情報等の登録された情報自体を示すものとする。
【0050】
ソフトウェア13−1は、データ転送元のノード1−1を管理する。
【0051】
ソフトウェア13−1は、複数のマルチキャスト転送を実行した後に、ノード1−2〜1−n内のデータ転送先であるメモリ制御部11−2〜11−n内の命令数カウンタ117−2〜117−nとエラー情報レジスタ116−2〜116−nを読み出してマルチキャスト転送の終了と転送の成否を認識する。
【0052】
また、データ転送先のノード1−2〜1−Aを管理する各ソフトウェア13−2〜13−Aが、自身が管理するノード1−2〜1−A内でのマルチキャスト転送の終了の認識を行う場合、各ソフトウェア13−2〜13−Aは、複数のマルチキャスト転送を実行された後に、それぞれのソフトウェア13−2〜13−Aが管理するメモリ制御部11−2〜11−n内の命令数カウンタ117−2〜117−nと、エラー情報レジスタ116−2〜116−nからデータを読み出して、マルチキャスト転送の終了と転送の成否を認識する。
【0053】
次に、図3の転送図、図4Aのタイムチャート、及び図5のソフトウェア動作フローを参照して、本実施形態の動作について説明する。
【0054】
なお、図3の転送図、及び図4Aのタイムチャートは、データ転送元のメモリ制御部11−1と、データ転送先の2つのメモリ制御部(メモリ制御部11−2及び11−n)とでマルチキャスト転送を行う場合について示している。また、図4Bのタイムチャートは、図1に示すような、従来のマルチキャスト転送機能を持つメモリアクセス制御装置でマルチキャスト転送を行う場合について示している。図4Bのタイムチャートは、図4Aのタイムチャートとの比較のために示している。
【0055】
図4A及び図4Bのタイムチャートにおいて、「M1」〜[M4]は、命令を示す。また、図4Bのタイムチャートにおいて、「RPY」は、リプライを示す。
【0056】
<データ転送が正常に行われる場合>
最初に、図4Aのタイムチャートを参照して、データ転送が正常に行われる場合の動作を説明する。
【0057】
(1)時刻「T2」
ノード1−1内のデータ転送元であるメモリ制御部11−1内の命令送出部111−1は、時刻「T2」において、配下のメモリから読み出したデータをネットワーク2へ送出する。
【0058】
(2)時刻「T3」
ネットワーク2は、時刻「T3」において、メモリ制御部11−1から受信したデータをコピーしてノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−nへ送出する。
【0059】
(3)時刻「T4」
ノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−n内の命令受付部112−2及び112−nは、時刻「T4」において、ネットワーク2からのデータを、メモリ制御部11−2及び11−nの配下のメモリ12−2及び12−nへ送出する。
【0060】
(4)時刻「T5」
メモリ制御部11−2及び11−n内の命令数カウンタ117−2及び117−nは、時刻「T5」において、命令受付部112−2及び112−nからメモリ12−2及び12−nへのデータ送出を契機に「+1」する。
【0061】
<従来事例1>
また、図4Bのタイムチャートを参照して、同時刻での、従来のマルチキャスト転送機能を持つメモリアクセス制御装置でデータ転送が行われる場合の動作を説明する。
【0062】
(1)時刻「T2」
ノード1−1内のデータ転送元であるメモリ制御部11−1内の命令送出部111−1は、時刻「T2」において、配下のメモリから読み出したデータをネットワーク2へ送出する。
【0063】
(2)時刻「T3」
ネットワーク2は、時刻「T3」において、メモリ制御部11−1から受信したデータをコピーしてノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−nへ送出する。
【0064】
(3)時刻「T4」
ノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−n内の命令受付部112−2及び112−nは、時刻「T4」において、ネットワーク2からのデータを、メモリ制御部11−2及び11−nの配下のメモリ12−2及び12−nへ送出する。ここまでは、本発明と同じである。従来のメモリアクセス制御装置では、これと同時に、命令受付部112−2及び112−nは、リプライ生成部113−2及び113−nにリプライ生成要求を通知する。
【0065】
(4)時刻「T5」
リプライ生成部113−2及び113−nは、時刻「T5」において、リプライ生成要求に応じて、リプライ「RPY(2)」及び「RPY(n)」を生成し、データ転送元であるメモリ制御部11−1へリプライ「RPY(2)」及び「RPY(n)」を返却するために、ネットワーク2に送出する。
【0066】
(5)時刻「T6」
ネットワーク2は、時刻「T6」において、リプライ生成部113−2から受け取ったリプライ「RPY(2)」をメモリ制御部11−1へ転送する。
【0067】
(6)時刻「T7」
データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、時刻「T7」において、リプライ「RPY(2)」に応じて、リプライ数カウンタ115−1を「+1」する。このとき、リプライ数カウンタ115−1の値は、「0」から「1」になる。また、ネットワーク2は、時刻「T7」において、リプライ生成部113−nから受け取ったリプライ「RPY(n)」をメモリ制御部11−1へ転送する。
【0068】
(7)時刻「T8」
データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、時刻「T8」において、リプライ「RPY(n)」に応じて、リプライ数カウンタ115−1を「+1」する。このとき、リプライ数カウンタ115−1の値は、「1」から「2」になる。
【0069】
<データ転送が正常に行われない場合>
次に、図4Aのタイムチャートを参照して、故障によりネットワーク2からメモリ制御部11−2へのデータ転送が正常に行われない場合の動作を説明する。
【0070】
(1)時刻「T13」
ノード1−1内のデータ転送元であるメモリ制御部11−1内の命令送出部111−1は、時刻「T13」において、配下のメモリから読み出したデータをネットワーク2へ送出する。
【0071】
(2)時刻「T14」
ネットワーク2は、時刻「T14」において、メモリ制御部11−1から受信したデータをコピーしてノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−nへ送出する。同時に、ネットワーク2は、故障によりメモリ制御部11−2へのデータ転送が正常に行われない場合、メモリ制御部11−2へのデータにエラー情報を付与して送出する。
【0072】
(3)時刻「T15」
ノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−n内の命令受付部112−2及び112−nは、時刻「T15」において、ネットワーク2からのデータを、メモリ制御部11−2及び11−nの配下のメモリ12−2及び12−nへ送出する。
【0073】
(4)時刻「T16」
メモリ制御部11−2内の命令数カウンタ117−2は、時刻「T16」において、命令受付部112−2からメモリ12−2へのデータ送出を契機に「+1」する。
【0074】
(5)時刻「T16」
また、メモリ制御部11−2内のエラー情報レジスタ116−2は、時刻「T16」において、エラー情報を受信したことを契機にエラー情報を保持する。
【0075】
(6)時刻「T16」
更に、メモリ制御部11−n内の命令数カウンタ117−nは、時刻「T16」において、命令受付部112−nからメモリ12−nへのデータ送出を契機に「+1」する。
【0076】
<従来事例2>
また、図4Bのタイムチャートを参照して、同時刻での、従来のマルチキャスト転送機能を持つメモリアクセス制御装置でデータ転送が行われる場合の動作を説明する。ここでの動作は、基本的に、<従来事例1>と同じである。
【0077】
(1)時刻「T13」
ノード1−1内のデータ転送元であるメモリ制御部11−1内の命令送出部111−1は、時刻「T13」において、配下のメモリから読み出したデータをネットワーク2へ送出する。
【0078】
(2)時刻「T14」
ネットワーク2は、時刻「T14」において、メモリ制御部11−1から受信したデータをコピーしてノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−nへ送出する。また、ネットワーク2は、故障等によりデータ転送が正常に行われない場合には、メモリ制御部11−1から受信したデータにエラー情報を付与してメモリ制御部11−2及び11−nへ送出する。
【0079】
(3)時刻「T15」
ノード1−1及び1−A内のデータ転送先であるメモリ制御部11−2及び11−n内の命令受付部112−2及び112−nは、時刻「T15」において、ネットワーク2からのデータを、メモリ制御部11−2及び11−nの配下のメモリ12−2及び12−nへ送出する。ここまでは、本発明と同じである。従来のメモリアクセス制御装置では、これと同時に、命令受付部112−2及び112−nは、リプライ生成部113−2及び113−nにリプライ生成要求を通知する。
【0080】
(4)時刻「T16」
リプライ生成部113−2及び113−nは、時刻「T16」において、リプライ生成要求に応じて、リプライ「RPY(2)」及び「RPY(n)」を生成し、データ転送元であるメモリ制御部11−1へリプライ「RPY(2)」及び「RPY(n)」を返却するために、ネットワーク2に送出する。なお、リプライ生成部113−2及び113−nは、ネットワーク2からのデータにエラー情報が付与されている場合、エラー情報レジスタ116−2及び116−nにエラー情報を登録する。また、メモリ制御部11−2及び11−nは、故障等によりメモリ制御部11−2及び11−nへのデータ転送が正常に行われなかった場合には、リプライ「RPY(2)」及び「RPY(n)」にエラー情報を付与して、メモリ制御部11−1へ送出する。これにより、データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、リプライ「RPY(2)」及び「RPY(n)」を受信する。
【0081】
(5)時刻「T17」
ネットワーク2は、時刻「T17」において、リプライ生成部113−2から受け取ったリプライ「RPY(2)」をメモリ制御部11−1へ転送する。
【0082】
(6)時刻「T18」
データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、時刻「T18」において、リプライ「RPY(2)」に応じて、リプライ数カウンタ115−1を「+1」する。このとき、リプライ数カウンタ115−1の値は、「0」から「1」になる。また、データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、リプライ「RPY(2)」にエラー情報が付与されている場合、エラー情報レジスタ116−1にエラー情報を登録する。更に、ネットワーク2は、時刻「T18」において、リプライ生成部113−nから受け取った「RPY(n)」をメモリ制御部11−1へ転送する。
【0083】
(7)時刻「T19」
データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、時刻「T19」において、リプライ「RPY(n)」に応じて、リプライ数カウンタ115−1を「+1」する。このとき、リプライ数カウンタ115−1の値は、「1」から「2」になる。また、データ転送元であるメモリ制御部11−1内のリプライ受付部114−1は、リプライ「RPY(n)」にエラー情報が付与されている場合、エラー情報レジスタ116−1にエラー情報を登録する。
【0084】
図5のソフトウェア動作フローは、ソフトウェア(13−x、x=1〜A)の制御の例を示す。
【0085】
(1)手順1
ソフトウェア13(13−x、x=1〜A)は、メモリ制御部11(11−i、i=1〜n)にマルチキャスト転送の発行を指示する。このとき、メモリ制御部11(11−i、i=1〜n)の命令送出部111(111−i、i=1〜n)は、マルチキャスト転送の発行指示に応じて、配下のメモリ12(12−i、i=1〜n)から読み出したデータをネットワーク2へ送出する。
【0086】
(2)手順2
ソフトウェア13(13−x、x=1〜A)は、当該ソフトウェアのシーケンスがチェックポイントであるか確認する。ソフトウェア13(13−x、x=1〜A)は、当該ソフトウェアのシーケンスがチェックポイントでない場合には、再度、メモリ制御部11(11−i、i=1〜n)にマルチキャスト転送の発行を指示する。すなわち、ソフトウェア13(13−x、x=1〜A)は、当該ソフトウェアのシーケンスがチェックポイントとなるまで、メモリ制御部11(11−i、i=1〜n)に対して、マルチキャスト転送の発行指示を繰り返す。
【0087】
(3)手順3
ソフトウェア13(13−x、x=1〜A)は、当該ソフトウェアのシーケンスがチェックポイントである場合、マルチキャスト転送のデータ転送先の各メモリ制御部11(11−i、i=1〜n)内のエラー情報レジスタ116(116−i、i=1〜n)と命令数カウンタ117(117−i、i=1〜n)を読み出す。
【0088】
(4)手順4
ソフトウェア13(13−x、x=1〜A)は、読み出した全ての命令数カウンタが、発行したマルチキャスト転送の数(期待値)と一致したか確認する。ソフトウェア13(13−x、x=1〜A)は、読み出した全ての命令数カウンタが、発行したマルチキャスト転送の数(期待値)と不一致である場合には、再度、マルチキャスト転送のデータ転送先の各メモリ制御部11(11−i、i=1〜n)内のエラー情報レジスタ116(116−i、i=1〜n)と命令数カウンタ117(117−i、i=1〜n)を読み出す。
【0089】
(5)手順5
ソフトウェア13(13−x、x=1〜A)は、読み出した全ての命令数カウンタが、発行したマルチキャスト転送の数(期待値)と一致した場合には、読み出した全てのエラー情報レジスタ116(116−i、i=1〜n)のエラー情報の内容を確認する。このとき、ソフトウェア13(13−x、x=1〜A)は、読み出した全てのエラー情報レジスタ116(116−i、i=1〜n)のエラー情報がエラー無しである場合には正常終了と認識して終了し、1つでもエラーが存在した場合には異常終了と認識してエラー処理を行う。
【0090】
本発明により、マルチキャスト転送のリプライ(応答)が不用となる。このため、リプライによるネットワークの負荷を無くすことができる。
【0091】
また、本発明により、複数のマルチキャスト転送の実行に対して1回の(命令数カウンタ及びエラー情報レジスタ)の期待値確認で転送の終了を認識できる。このため、ソフトウェアの動作が簡略化できる。
【0092】
更に、本発明により、データ転送先のメモリを管理するそれぞれのソフトウェアが個別に管理内でのマルチキャスト転送の終了を確認できる。このため、ソフトウェアの動作が簡略化できる。
【0093】
本発明は、1:n転送を行うメモリアクセス制御装置に適用できる。
【0094】
本発明のメモリアクセス制御装置は、マルチキャスト転送のリプライを無くしたことを特徴とする。
【0095】
本発明のメモリアクセス制御装置は、マルチキャスト転送の命令数をカウントする機能を備えたことを特徴とする。
【0096】
本発明のメモリアクセス制御装置は、複数のマルチキャスト転送の完了確認を1度に行えることを特徴とする。
【0097】
本発明のメモリアクセス制御装置は、各ソフトウェアが個別に管理内でのマルチキャスト転送の完了を認識できることを特徴とする。
【0098】
本発明のメモリアクセス制御装置は、マルチキャスト転送のネットワーク負荷の軽減機能を保有したことを特徴としている。
【0099】
本発明のメモリアクセス制御装置は、メモリとメモリ制御部とネットワークを保持したメモリ分散方式のシステムにおいて、メモリ制御部内に受信したマルチキャスト転送の数を示す命令数カウンタを設けて、ソフトウェアが複数のマルチキャスト転送を実行後にデータ転送先の命令数カウンタを読み出してマルチキャスト転送の終了を認識することを特徴としている。
【0100】
本発明のメモリアクセス制御装置は、マルチキャスト転送のデータ転送先のメモリ制御部からデータ転送元のメモリ制御部へのマルチキャスト転送のリプライを不用とし、リプライによるネットワークの負荷を無くすことを特徴としている。
【0101】
すなわち、本発明のメモリアクセス制御装置は、データ転送先のメモリ制御部内に、受信したマルチキャスト転送の数を示す命令数カウンタと、データ転送が正常に行われなかった場合のエラー情報を示すエラー情報レジスタを持ち、ソフトウェアが複数のマルチキャスト転送を実行後にデータ転送先の命令数カウンタとエラー情報レジスタを読み出すことでマルチキャスト転送の終了及び転送エラーを認識する。
【0102】
本発明のメモリアクセス制御装置では、パケット内データ数ではなく、命令数をカウントすることにより、ソフトウェアによる転送完了確認は、命令毎ではなく、プログラムのチェックポイントでのみ行えば良いため、転送完了確認によるプロセッサ間ネットワーク上の負荷を軽減できる。
【0103】
また、従来技術では、複数の命令のパケットが混在して受信する様な場合にチェックできなかったが、本発明では、異なる命令のパケットが混在しても転送完了確認が可能である。
【0104】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【0105】
1(−x、x=1〜A)… ノード
11(−i、i=1〜n)… メモリ制御部
111(−i、i=1〜n)… 命令送出部
112(−i、i=1〜n)… 命令受付部
113(−i、i=1〜n)… リプライ生成部
114(−i、i=1〜n)… リプライ受付部
115(−i、i=1〜n)… リプライ数カウンタ
116(−i、i=1〜n)… エラー情報レジスタ
117(−i、i=1〜n)… 命令数カウンタ
12(−i、i=1〜n)… メモリ
13(−x、x=1〜A)… ソフトウェア
2… ネットワーク

【特許請求の範囲】
【請求項1】
メモリと、
前記メモリのアクセス制御を行い、マルチキャスト転送による前記メモリへのアクセスに対するリプライの送受信を防止するメモリ制御手段と、
前記メモリ及び前記メモリ制御手段を管理するソフトウェアの実行手段と
を含み、
前記メモリ制御手段は、
前記メモリからデータを読み出して、データ転送先にマルチキャスト転送で前記データを送信する命令送出手段と、
マルチキャスト転送のデータを受信する命令受付手段と、
前記命令受付手段により受信されたマルチキャスト転送の数を示す命令数カウンタと、
前記命令受付手段により受信されたマルチキャスト転送のデータに付与されたエラー情報を登録するためのエラー情報レジスタと
を具備し、
前記実行手段は、前記ソフトウェアを実行し、複数のマルチキャスト転送を実行した後に、前記ソフトウェアのシーケンスのチェックポイント毎に、データ転送先のメモリ制御手段が持つ命令数カウンタとエラー情報レジスタを読み出して、マルチキャスト転送の終了と転送の成否を認識する
メモリアクセス制御装置。
【請求項2】
請求項1に記載のメモリアクセス制御装置であって、
前記実行手段は、
前記メモリ制御手段にマルチキャスト転送の発行を指示する手段と、
前記ソフトウェアのシーケンスがチェックポイントであるか確認する手段と、
前記ソフトウェアのシーケンスがチェックポイントでない場合、前記ソフトウェアのシーケンスがチェックポイントとなるまで、前記メモリ制御手段に対して、マルチキャスト転送の発行指示を繰り返す手段と、
前記ソフトウェアのシーケンスがチェックポイントである場合、マルチキャスト転送のデータ転送先のメモリ制御手段が持つエラー情報レジスタと命令数カウンタを読み出す手段と、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と一致したか確認する手段と、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と不一致である場合には、再度、前記マルチキャスト転送のデータ転送先の前記エラー情報レジスタと前記命令数カウンタを読み出す手段と、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と一致した場合には、前記読み出された全てのエラー情報レジスタのエラー情報がエラー無しである場合には正常終了と認識して終了し、1つでもエラーが存在した場合には異常終了と認識してエラー処理を行う手段と
を具備する
メモリアクセス制御装置。
【請求項3】
請求項1又は2に記載のメモリアクセス制御装置であって、
前記命令送出手段は、
前記メモリからデータを読み出してネットワークへ送出する手段
を具備し、
前記ネットワークは、
マルチキャスト転送のデータをコピーして、データ転送先であるメモリ制御手段へ送出する手段と、
マルチキャスト転送のデータ転送が正常に行われない場合には、前記エラー情報を付与してデータ転送先であるメモリ制御手段へ送出する手段と
を具備する
メモリアクセス制御装置。
【請求項4】
メモリのアクセス制御を行い、マルチキャスト転送による前記メモリへのアクセスに対するリプライの送受信を防止し、
前記メモリからデータを読み出して、データ転送先にマルチキャスト転送で前記データを送信し、
マルチキャスト転送のデータを受信し、
前記受信されたマルチキャスト転送の数を示す命令数カウンタを保持し、
前記受信されたマルチキャスト転送のデータに付与されたエラー情報をエラー情報レジスタに登録し、
前記メモリ及び前記メモリ制御手段を管理するソフトウェアを実行し、複数のマルチキャスト転送を実行した後に、前記ソフトウェアのシーケンスのチェックポイント毎に、データ転送先のメモリ制御手段が持つ命令数カウンタとエラー情報レジスタを読み出して、マルチキャスト転送の終了と転送の成否を認識する
メモリアクセス制御方法。
【請求項5】
請求項4に記載のメモリアクセス制御方法であって、
マルチキャスト転送の発行を指示し、
前記ソフトウェアのシーケンスがチェックポイントであるか確認し、
前記ソフトウェアのシーケンスがチェックポイントでない場合、前記ソフトウェアのシーケンスがチェックポイントとなるまで、前記メモリ制御手段に対して、マルチキャスト転送の発行指示を繰り返し、
前記ソフトウェアのシーケンスがチェックポイントである場合、マルチキャスト転送のデータ転送先が持つエラー情報レジスタと命令数カウンタを読み出し、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と一致したか確認し、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と不一致である場合には、再度、前記マルチキャスト転送のデータ転送先の前記エラー情報レジスタと前記命令数カウンタを読み出し、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と一致した場合には、前記読み出された全てのエラー情報レジスタのエラー情報がエラー無しである場合には正常終了と認識して終了し、1つでもエラーが存在した場合には異常終了と認識してエラー処理を行う
メモリアクセス制御方法。
【請求項6】
請求項4又は5に記載のメモリアクセス制御方法であって、
前記メモリからデータを読み出してネットワークへ送出し、
前記ネットワーク上で、マルチキャスト転送のデータをコピーして、データ転送先であるメモリ制御手段へ送出し、
前記ネットワーク上で、マルチキャスト転送のデータ転送が正常に行われない場合には、前記エラー情報を付与してデータ転送先であるメモリ制御手段へ送出する
メモリアクセス制御方法。
【請求項7】
メモリのアクセス制御を行い、マルチキャスト転送による前記メモリへのアクセスに対するリプライの送受信を防止するステップと、
前記メモリからデータを読み出して、データ転送先にマルチキャスト転送で前記データを送信するステップと、
マルチキャスト転送のデータを受信するステップと、
前記受信されたマルチキャスト転送の数を示す命令数カウンタを保持するステップと、
前記受信されたマルチキャスト転送のデータに付与されたエラー情報をエラー情報レジスタに登録するステップと、
前記メモリ及び前記メモリ制御手段を管理するソフトウェアが実行された場合、複数のマルチキャスト転送を実行した後に、前記ソフトウェアのシーケンスのチェックポイント毎に、データ転送先のメモリ制御手段が持つ命令数カウンタとエラー情報レジスタを読み出して、マルチキャスト転送の終了と転送の成否を認識するステップと
をコンピュータに実行させるための
メモリアクセス制御用プログラム。
【請求項8】
請求項7に記載のメモリアクセス制御用プログラムであって、
マルチキャスト転送の発行を指示するステップと、
前記ソフトウェアのシーケンスがチェックポイントであるか確認するステップと、
前記ソフトウェアのシーケンスがチェックポイントでない場合、前記ソフトウェアのシーケンスがチェックポイントとなるまで、前記メモリ制御手段に対して、マルチキャスト転送の発行指示を繰り返すステップと、
前記ソフトウェアのシーケンスがチェックポイントである場合、マルチキャスト転送のデータ転送先が持つエラー情報レジスタと命令数カウンタを読み出すステップと、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と一致したか確認するステップと、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と不一致である場合には、再度、前記マルチキャスト転送のデータ転送先の前記エラー情報レジスタと前記命令数カウンタを読み出すステップと、
前記読み出された全ての命令数カウンタが、前記発行されたマルチキャスト転送の数と一致した場合には、前記読み出された全てのエラー情報レジスタのエラー情報がエラー無しである場合には正常終了と認識して終了し、1つでもエラーが存在した場合には異常終了と認識してエラー処理を行うステップと
を更にコンピュータに実行させるための
メモリアクセス制御用プログラム。
【請求項9】
請求項7又は8に記載のメモリアクセス制御用プログラムであって、
前記メモリからデータを読み出してネットワークへ送出するステップと、
前記ネットワーク上で、マルチキャスト転送のデータをコピーして、データ転送先であるメモリ制御手段へ送出するステップと、
前記ネットワーク上で、マルチキャスト転送のデータ転送が正常に行われない場合には、前記エラー情報を付与してデータ転送先であるメモリ制御手段へ送出するステップと
を更にコンピュータに実行させるための
メモリアクセス制御用プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate