(57)【要約】      （修正有）【課題】ＤＭＡ転送装置と複数のＣＰＵとの間の同期を適切に制御する方法を提供する。【解決手段】ノード１００は、１番からｎ番までの複数のＣＰＵと、複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、複数のＣＰＵおよび複数のメモリ制御装置に１対１に接続された複数の同期レジスタと、ｎ番のメモリ制御装置に接続されたＤＭＡ転送装置１５０とを備える。複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続され、ＤＭＡ転送装置は、複数のメモリ制御装置を経由して複数のメモリ装置をライトアクセスした後、複数のメモリ制御装置を経由して同期レジスタにライトアクセスの完了を示す値を設定する。複数のＣＰＵのそれぞれは、対応する同期レジスタの値を参照してライトアクセスされたデータのリードアクセスの可否を決定する。【選択図】図１
2019139719.tif 000002
【特許請求の範囲】
【請求項１】
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵおよび前記複数のメモリ制御装置に１対１に接続された複数の同期レジスタとを備え、
前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されており、
ｎ番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するＤＭＡ転送装置を備え、
前記複数のＣＰＵのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
ノード。
【請求項２】
前記メモリ制御装置のそれぞれは、隣接する前記メモリ制御装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストをコピーし、同じ２つの前記同期リクエストの一方を対応する前記同期レジスタに送出し、他方を反対側で隣接する前記メモリ制御装置へ送出するように構成されている、
請求項１に記載のノード。
【請求項３】
前記ＤＭＡ転送装置から前記ｎ番の前記メモリ制御装置に入力された前記複数のメモリ制御装置を経由する前記ライトアクセスのためのストアリクエストと前記同期レジスタに前記値を設定する同期リクエストとは、複数の前記メモリ制御装置を経由する途中で追い越しは行いように構成されている、
請求項１または２に記載のノード。
【請求項４】
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵおよび前記複数のメモリ制御装置に１対１に接続された複数の同期レジスタと、ｎ番の前記メモリ制御装置に接続されたＤＭＡ転送装置とを備え、前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
前記ＤＭＡ転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
前記複数のＣＰＵのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
同期制御方法。
【請求項５】
前記メモリ制御装置のそれぞれは、隣接する前記メモリ制御装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストをコピーし、同じ２つの前記同期リクエストの一方を対応する前記同期レジスタに送出し、他方を反対側で隣接する前記メモリ制御装置へ送出する、
請求項４に記載の同期制御方法。
【請求項６】
前記ノードは、前記ＤＭＡ転送装置から前記ｎ番の前記メモリ制御装置に入力された前記複数のメモリ制御装置を経由する前記ライトアクセスのためのストアリクエストと前記同期レジスタに前記値を設定する同期リクエストとは、複数の前記メモリ制御装置を経由する途中で追い越しは行いように構成されている、
請求項４または５に記載の同期制御方法。
【請求項７】
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵと１番の前記メモリ制御装置との間に接続された同期レジスタとを備え、
前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されており、
ｎ番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するＤＭＡ転送装置を備え、
前記複数のＣＰＵのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
ノード。
【請求項８】
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵと１番の前記メモリ制御装置との間に接続された同期レジスタと、ｎ番の前記メモリ制御装置に接続されたＤＭＡ転送装置とを備え、前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
前記ＤＭＡ転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
前記複数のＣＰＵのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
同期制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵとメモリ等を有するノード、およびノードにおける同期制御方法に関する。
【背景技術】
【０００２】
計算機において、メモリに対するストアアクセスとロードアクセスとに依存関係がある場合、ストアアクセスの完了を待ってロードアクセスを行う必要がある。このように先行のアクセスの完了を判断し、後続のアクセスを制御することは、オーダリング制御あるいは同期制御と呼ばれている。
【０００３】
例えば特許文献１に、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）でメモリを共有するマルチプロセッサシステムにおいて、メモリに対する或るＣＰＵからのストアアクセスと別ＣＰＵからのロードアクセスとの間の同期制御方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１６７５５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、メモリに対するアクセスはＣＰＵからだけでなくＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送装置から行われる場合がある。例えば、複数のＣＰＵと各ＣＰＵからアクセス可能は複数のメモリとＤＭＡ転送装置とを有する複数のノードが、ノード間通信路を通じて相互に接続された並列計算機システムがある。そのような計算機システムにおける各ノードでは、他のノードから受信したデータをＤＭＡ転送装置がノード内の各メモリにストアし、そのストアしたデータをノード内の各ＣＰＵがロードすることを保証する場合、同期制御が必要になる。しかしながら、そのようなＤＭＡ転送装置と複数のＣＰＵとの間に適用可能な同期制御を記載した文献は知られていない。そのため、ＤＭＡ転送装置と複数のＣＰＵとの間の同期を適切に制御する方法の実現が望まれている。
【０００６】
本発明の目的は、ＤＭＡ転送装置と複数のＣＰＵとの間の同期を適切に制御する方法の実現が望まれている、という課題を解決するノードを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一形態に係るノードは、
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵおよび前記複数のメモリ制御装置に１対１に接続された複数の同期レジスタとを備え、
前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されており、
ｎ番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するＤＭＡ転送装置を備え、
前記複数のＣＰＵのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
【０００８】
また本発明の他の形態に係るノードは、
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵと１番の前記メモリ制御装置との間に接続された同期レジスタとを備え、
前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されており、
ｎ番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するＤＭＡ転送装置を備え、
前記複数のＣＰＵのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
【０００９】
また本発明の他の形態に係る同期制御方法は、
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵおよび前記複数のメモリ制御装置に１対１に接続された複数の同期レジスタと、ｎ番の前記メモリ制御装置に接続されたＤＭＡ転送装置とを備え、前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
前記ＤＭＡ転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
前記複数のＣＰＵのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
【００１０】
また本発明の他の形態に係る同期制御方法は、
１番からｎ番までの複数のＣＰＵと、前記複数のＣＰＵに１対１に接続された１番からｎ番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に１対１に接続された複数のメモリ装置と、前記複数のＣＰＵと１番の前記メモリ制御装置との間に接続された同期レジスタと、ｎ番の前記メモリ制御装置に接続されたＤＭＡ転送装置とを備え、前記複数のメモリ制御装置は、１番からｎ番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
前記ＤＭＡ転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
前記複数のＣＰＵのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
【発明の効果】
【００１１】
本発明は、上述したような構成を有することにより、ＤＭＡ転送装置とＣＰＵ間の同期時間の高速化が可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るノードのブロック図である。
【図２】本発明の第１の実施形態に係るノードのメモリ制御装置の構成例を示すブロック図である。
【図３】本発明に関連するノードのブロック図である。
【図４】本発明の第２の実施形態に係るノードのブロック図である。
【図５】本発明の第３の実施形態に係るノードのブロック図である。
【図６】本発明の第４の実施形態に係るノードのブロック図である。
【発明を実施するための形態】
【００１３】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１は、本発明の第１の実施形態に係るノード１００のブロック図である。図１を参照すると、ノード１００は、１番からｎ番までの複数のＣＰＵ１１０−１〜１１０−ｎと、１番からｎ番までの複数のメモリ制御装置１２０−１〜１２０−ｎと、１番からｎ番までの複数のＲＡＭ等のメモリ装置１３０−ｎと、１番からｎ番までの複数の同期レジスタ１４０−１〜１４０−ｎと、ＤＭＡ転送装置１５０とを含んで構成されている。以下、同じ複数の構成要素の何れであるかを特定しない場合、ＣＰＵ１１０などのように、符号のハイフン以下を省略して記載する。
【００１４】
同じ番号のＣＰＵ１１０とメモリ制御装置１２０とメモリ装置１３０と同期レジスタ１４０とは１対１に対応している。ＣＰＵ１１０とそれに対応するメモリ制御装置１２０とは信号線１６１で接続されている。メモリ制御装置１２０とそれに対応するメモリ装置１３０とは信号線１６２で接続されている。ＣＰＵ１１０およびメモリ制御装置１２０とそれに対応する同期レジスタ１４０とは信号線１６３および信号線１６４で接続されている。
【００１５】
また、複数のメモリ制御装置１２０は、線状に接続されている。即ち、複数のメモリ制御装置１２０は、１番からｎ番まで番号順に信号線１６５で一列に接続されている。さらに、ｎ番のメモリ制御装置１２０−ｎとＤＭＡ転送装置１５０は信号線１６５−ｎで接続されている。また、ＤＭＡ転送装置１５０は、図示しない他のノードのＤＭＡ転送装置とノード間通信路１６６で接続されている。
【００１６】
複数のメモリ装置１３０には、１つのメモリ空間をｎ分割した各分割領域のメモリアドレスが割り当てられている。それぞれのメモリ装置１３０に対するアクセスは、対応するメモリ制御装置１２０により制御される。即ち、メモリ制御装置１２０は、ＣＰＵ１１０およびＤＭＡ転送装置１５０から受信したメモリアクセスリクエストに従って、対応するメモリ装置１３０のアクセスを制御する。また、メモリ制御装置１２０は、受信したメモリアクセスリクエストに含まれるメモリアドレスに基づいて、対応するメモリ装置１３０をアクセスするか、隣接するメモリ制御装置１２０へメモリアクセスリクエストを転送するかを判断する。このようにして、ＤＭＡ転送装置１５０から信号線１６５−ｎに送出されたメモリアクセスリクエストおよびＣＰＵ１１０から信号線１６１に送出されたメモリアクセスリクエストは、アクセス先のメモリ装置１３０に接続されたメモリ制御装置１２０まで中継される。
【００１７】
例えば、ｎ番のＣＰＵ１１０−ｎからｎ番のメモリ装置１３０−ｎのメモリアドレスを含むメモリアクセスリクエストが信号線１６１−ｎに送出されると、そのメモリアクセスリクエストを信号線１６１−ｎを通じて受信したメモリ制御装置１２０−ｎは、そのメモリアクセスリクエストに従ってメモリ装置１３０−ｎをアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置１２０−ｎは、メモリ装置１３０−ｎからリードしたデータを含むリプライデータをリクエスト元のＣＰＵ１１０−ｎへ信号線１６１−ｎを通じて返却する。
【００１８】
また、例えば、ｎ番のＣＰＵ１１０−ｎから１番のメモリ装置１３０−１のメモリアドレスを含むメモリアクセスリクエストが信号線１６１−ｎに送出されると、そのメモリアクセスリクエストを信号線１６１−ｎを通じて受信したメモリ制御装置１２０−ｎは、そのメモリアクセスリクエストのメモリアドレスに従って信号線１６５−ｎ−１を通じて隣接するメモリ制御装置１２０−ｎ−１に転送する。信号線１６５−ｎ−１を通じてメモリアクセスリクエストを受信したメモリ制御装置１２０−ｎ−１も同様の判断を行う。このようにして、メモリアクセスリクエストは最終的に信号線１６５−１を通じてメモリ制御装置１２０−１に到達する。そして、メモリ制御装置１２０−１は、そのメモリアクセスリクエストに従ってメモリ装置１３０−１をアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置１２０−１は、メモリ装置１３０−１からリードしたデータを含むリプライデータをリクエスト元のＣＰＵ１１０−ｎに返却するために信号線１６５−１を通じて隣接するメモリ制御装置１２０−２へ送出する。メモリ制御装置１２０−２は、返却先がＣＰＵ１１０−ｎであるため、受信したリプライデータを、信号線１６５−２を通じて隣接するメモリ制御装置１２０−３へ送出する。このようにして、リプライデータは最終的に信号線１６５−ｎ−１を通じてメモリ制御装置１２０−ｎに到達し、このメモリ制御装置１２０−ｎから信号線１６１−１を通じて要求元のＣＰＵ１１０−ｎに返却される。
【００１９】
以上のようにして、一般的に、ｋ番目のＣＰＵ１１０−ｋがｊ番目のメモリ装置１３０−ｊをアクセスするとき、そのメモリアクセスリクエストおよびリプライデータは、ｊ≦ｋのときは、ｊ番以上、ｋ番以下のメモリ制御装置１２０を経由し、ｊ＞ｋのときは、ｋ番以上、ｊ番以下のメモリ制御装置１２０を経由する。
【００２０】
他方、ＤＭＡ転送装置１５０からｎ番のメモリ装置１３０−ｎのメモリアドレスを含むメモリアクセスリクエストが信号線１６５−ｎに送出されると、そのメモリアクセスリクエストを、信号線１６５−ｎを通じて受信したメモリ制御装置１２０−ｎは、そのメモリアクセスリクエストに従ってメモリ装置１３０−ｎをアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置１２０−ｎは、メモリ装置１３０−ｎからリードしたデータを含むリプライデータをリクエスト元のＤＭＡ転送装置１５０へ信号線１６５−ｎを通じて返却する。
【００２１】
また、ＤＭＡ転送装置１５０から例えば１番のメモリ装置１３０−１のメモリアドレスを含むメモリアクセスリクエストが信号線１６５−ｎに送出されると、そのメモリアクセスリクエストを、信号線１６５−ｎを通じて受信したメモリ制御装置１２０−ｎは、そのメモリアクセスリクエストのメモリアドレスに従って信号線１６５−ｎ−１を通じて隣接するメモリ制御装置１２０−ｎ−１に転送する。信号線１６５−ｎ−１を通じてメモリアクセスリクエストを受信したメモリ制御装置１２０−ｎ−１も同様の判断を行う。このようにして、メモリアクセスリクエストは最終的に信号線１６５−１を通じてメモリ制御装置１２０−１に到達する。そして、メモリ制御装置１２０−１は、そのメモリアクセスリクエストに従ってメモリ装置１３０−１をアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置１２０−１は、メモリ装置１３０−１からリードしたデータを含むリプライデータをリクエスト元のＤＭＡ転送装置１５０に返却するために信号線１６５−１を通じて隣接するメモリ制御装置１２０−２へ送出する。メモリ制御装置１２０−２は、返却先がＤＭＡ転送装置１５０であるため、受信したリプライデータを、信号線１６５−２を通じて隣接するメモリ制御装置１２０−３へ送出する。このようにして、リプライデータは最終的に信号線１６５−ｎ−１を通じてメモリ制御装置１２０−ｎに到達し、このメモリ制御装置１２０−ｎから信号線１６５−ｎを通じて要求元のＤＭＡ転送装置１５０に返却される。
【００２２】
以上のようにして、一般的に、ＤＭＡ転送装置１５０がｊ番目のメモリ装置１３０−ｊをアクセスするとき、そのメモリアクセスリクエストおよびリプライデータは、ｊ番以上のメモリ制御装置１２０を経由する。
【００２３】
また、ＤＭＡ転送装置１５０は、メモリ装置１３０に対する一連のストアアクセスリクエストとその後に行われるＣＰＵ１１０のロードアクセスリクエストとの同期をとる場合、一連のストアアクセスリクエストの完了後に、同期リクエストを信号線１６５−ｎに送出するように構成されている。
【００２４】
また、メモリ制御装置１２０は、信号線１６５を通じて同期リクエストを受信すると、同期リクエストのコピーを、信号線１６４を通じて対応する同期レジスタ１４０に送出すると共に、自装置よりも番号の小さなメモリ制御装置１２０が隣接している場合、受信した同期リクエストのコピーを、信号線１６５を通じて隣接するメモリ制御装置１２０へ送出するように構成されている。同期レジスタ１４０は、同期リクエストを、信号線１６４を通じて受信すると、同期フラグをＯＮ（オン）にするように構成されている。そのため、ＤＭＡ転送装置１５０から信号線１６５−ｎに同期リクエストが送出されると、先ず、メモリ制御装置１２０−ｎは信号線１６５−ｎを通じて同期リクエストを受信し、同期レジスタ１４０−ｎに同期リクエストを送出すると共に同期リクエストを信号線１６５−ｎ−１を通じて隣接するメモリ制御装置１２０−ｎ−１に転送する。その結果、同期レジスタ１４０−ｎの同期フラグがＯＮになる。また、メモリ制御装置１２０−ｎ−１は、同期リクエストを受信すると、それを同期レジスタ１４０−ｎ−１に送出し、さらに隣接するメモリ制御装置１２０−ｎ−２へ同期リスエストを転送する。その結果、同期レジスタ１４０−ｎ−１の同期フラグがＯＮになる。このようにして、最終的にメモリ制御装置１２０−１まで同期リクエストが転送され、同期レジスタ１４０−ｎ−３〜１４０−１の同期フラグがＯＮされる。
【００２５】
ＣＰＵ１１０は、ＤＭＡ転送装置１５０がメモリ装置１３０にストアしたデータをロードする場合、信号線１６３を通じて対応する同期レジスタ１４０の同期フラグがＯＮになるのを待ち合わせる。そして、ＣＰＵ１１０は、対応する同期レジスタ１４０の同期フラグがＯＮになると、メモリ装置１３０に対するロードアクセスリクエストを送出するように構成されている。
【００２６】
要するに、本実施形態に係るノード１００は、以下のように構成され、動作する。
【００２７】
同期レジスタ１４０は、ＣＰＵ１１０毎に各々分散させて構成され、各同期レジスタ１４０はＣＰＵ１１０とメモリ制御装置１２０に接続される。
【００２８】
ＤＭＡ転送装置１５０が発行したストアリクエストは、メモリ制御装置１２０を経由して、各メモリ装置１３０に到達し、メモリ書き込み動作がされる。この後、ライトアクセスを完了したことを示すストアリプライをＤＭＡ転送装置１５０に返却する処理は行わない。
【００２９】
ＤＭＡ転送装置１５０は、全てのストアリクエストを発行したならば、ストアリクエストを発行したメモリ制御装置１２０の接続パスと同一パスを使用し、各同期レジスタ１４０に対し、全てのストアアクセスが完了したことを示す、同期レジスタ１４０のフラグＯＮの操作リクエスト（同期リクエスト）を発行する。なお、ストアリクエストと、同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）で、メモリ制御装置１２０の接続パス上での追い抜きは起こらない構成である。
【００３０】
各メモリ制御装置１２０は、同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）が到達したならば、これを、左隣りのメモリ制御装置１２０に伝達すると共に、同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）のコピーを、自身のメモリ制御装置１２０に接続される同期レジスタ１４０に通達する。
【００３１】
同期レジスタ１４０は、同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）を受け取ったならば、自身の同期レジスタのフラグをＯＮにする。なお、各同期レジスタ１４０は、同一内容であるが、上記動作での同期レジスタのフラグをＯＮになるタイミングは、各同期レジスタで異なり、ＤＭＡ転送装置１５０に一番近いｎ番の同期レジスタ１４０−ｎが一番早くフラグがＯＮになることができ、ＤＭＡ転送装置１５０に一番遠い１番の同期レジスタ１４０−１が一番遅くフラグがＯＮになる。
【００３２】
各ＣＰＵ１１０は、各ＣＰＵ１１０に接続された同期レジスタ１４０のフラグを読み出すことで、ＤＭＡ転送のストア処理が完了したことを認識することでき、その後、各ＣＰＵ１１０は、各メモリ装置１３０にストアされたデータのロード処理を開始する。
【００３３】
例えば、ｎ番のＣＰＵ１１０−ｎは、ｎ番の同期レジスタ１４０−ｎの同期フラグがＯＮになったことを確認し、各メモリ装置１３０のロードアクセスを開始する。この時、ｎ−１番のメモリ装置１３０−ｎ−１、…、１番のメモリ装置１３０−１のＤＭＡ転送装置１５０からのメモリストア処理は完了していないタイミングであっても、ｎ番のＣＰＵ１１０−ｎは、ＤＭＡ転送装置１５０によってストアされたデータをｎ−１番のメモリ装置１３０−ｎ−１、…、１番のメモリ装置１３０−１から読み出すことができる。その理由は、ＤＭＡ転送装置１５０からのメモリストアとｎ番のＣＰＵ１１０−ｎのロードアクセスは、同一のメモリ制御装置１２０間のパスを使用するので、ｎ番のＣＰＵ１１０−ｎのロードアクセスがＤＭＡ転送装置１５０からのメモリストアを追い抜くことは無いためである。その結果、ＤＭＡ転送装置１５０からの１番のメモリ装置１３０−１、…、ｎ−１番のメモリ装置１３０−ｎ−１にストアされたストアアクセスのデータを、ｎ番のＣＰＵ１１０−ｎは確実に読み出すことができる。
【００３４】
図２は、メモリ制御装置１２０の構成例を示すブロック図である。なお、メモリ制御装置１２０は、図２に示した構成に限定されず、その他各種の構成を採用することが可能である。
【００３５】
図２を参照すると、メモリ制御装置１２０は、スイッチ１２１とメモリコントローラ１２２とを含んで構成されている。スイッチ１２１は、信号線１６１を通じて対応するＣＰＵ１１０に接続され、信号線１６４を通じて対応する同期レジスタ１４０に接続され、信号線１６５を通じて他のメモリ制御装置１２０またはＤＭＡ転送装置１５０に接続され、内部信号線１２３を通じてメモリコントローラ１２２に接続されている。スイッチ１２１は、信号線１６１、１６５を通じて入力されるストアリクエストやロードリクエスト等のリクエストを解析し、リクエスト先が対応するメモリ装置１３０であれば内部信号線１２３を通じてリクエストをメモリコントローラ１２２に送出し、それ以外はリクエスト先に応じて左右のメモリ制御装置１２０にリクエストを転送する。また、スイッチ１２１は、信号線１６５を通じて左右のメモリ制御装置１２０から入力されるリプライおよび内部信号線１２３を通じてメモリコントローラ１２２から入力されるリプライを解析し、リプライ先が対応するＣＰＵ１１０であれば信号線１６１を通じてリプライを対応するＣＰＵ１１０に送出し、それ以外はリプライ先に応じて左右のメモリ制御装置１２０あるいはＤＭＡ転送装置１５０にリプライを転送する。さらに、スイッチ１２１は、右側の信号線１６５を通じて同期リクエストを入力すると、そのコピーをとり、２つの同一の同期リクエストの一方を、信号線１６４を通じて対応する同期レジスタ１４０へ送出し、他方を左側の信号線１６５を通じて隣接するメモリ制御装置１２０へ転送する。
【００３６】
メモリコントローラ１２２は、スイッチ１２１から内部信号線１２３を通じて入力されるリクエストに従って信号線１６２で接続されたメモリ装置１３０をアクセスする。またメモリコントローラ１２２は、メモリ装置１３０からリードデータを入力すると、リプライ先のアドレスを含むリプライを、内部信号線１２３を通じてスイッチ１２１へ送出する。
【００３７】
次に、本実施形態のノード１００の効果を説明する。
【００３８】
図３は、本発明に関連するノード２００の構成を示す。図３を参照すると、ノード２００は、複数のＣＰＵ２１０と、複数のメモリ制御装置２２０と、複数のメモリ装置２３０と、同期レジスタ２４０と、ＤＭＡ転送装置２５０とを含んで構成されている。同期レジスタ２４０は、ＤＭＡ転送装置２５０および全てのＣＰＵ２１０からアクセス可能である。また各メモリ制御装置２２０は、ストアアクセスのリプライを返却するように構成されている。
【００３９】
ＤＭＡ転送装置２５０は、各メモリ装置２３０に対して発行した全てのストアアクセスが完了したことを、ストアアクセスのリプライの個数をカウントすることで認識する。即ち、発行ストアアクセス数とストアリプライ数が等しいならば、発行した全てのストアリクエストがアクセス完了したと認識する。そして、ＤＭＡ転送装置２５０は、発行した全てのストアリクエストの完了を認識すると、同期レジスタ２４０の同期フラグをＯＮにする。各ＣＰＵ２１０は、同期レジスタ２４０の同期フラグを確認し、ＯＮになっていれば、ＤＭＡ転送装置２５０によってストアされたデータを各メモリ装置２３０からロードアクセスする処理を開始する。
【００４０】
図３に示した関連技術では、全てのストアアクセスのリプライをＤＭＡ転送装置２５０は待つ必要がある。特に、メモリ制御装置２２０−１からのリプライは多くのメモリ制御装置２２０によって中継されるためＤＭＡ転送装置２５０に到着するまでに時間を要する。その結果、同期制御のオーバヘッド時間が増大するという課題がある。
【００４１】
これに対して本実施形態に係るノード１００では、前述したように、各ＣＰＵ１１０に対し、各ＣＰＵ１１０に対応する同期レジスタ１４０を、ＣＰＵ１１０とメモリ制御装置１２０間に接続させている。また、ＤＭＡ転送装置１５０は、メモリストアアクセスを発行後、継続して同期レジスタ１４０への書き込みのために同期リクエストを発行する。この同期リクエストもメモリストアアクセスと同一のパスを使用する（メモリストアアクセスと同期リクエストの追い越しは起きない構成である）。各メモリ制御装置１２０は、各配下のメモリ装置１３０に対しメモリストアが完了したならば、続いて入力される同期リクエストを同期レジスタ１４０に送出し、その結果、同期レジスタ１４０の同期フラグがＯＮにされる。各ＣＰＵ１１０は、ＣＰＵ配下の同期レジスタ１４０の内容をリードすることで、ＤＭＡ転送装置１５０が発行したメモリストアアクセスが完了したことを認識し、該メモリストア内容の読出し処理を行うことができる。各ＣＰＵ１１０に対応する同期レジスタ１４０は、同一のコピーとなるが、上述した通り、同期レジスタ１４０の同期フラグをＯＮするタイミングは、ＤＭＡ転送装置１５０からのストアアクセスが、同期レジスタ配下のメモリ制御装置１２０でのメモリストア完了タイミングであり、同期レジスタ１４０へのライトアクセスタイミングは各々異なるタイミングになる（ＤＭＡ転送装置から近いものから早く同期レジスタへのライトが行われる）。
【００４２】
以上の結果、本実施形態に係るノード１００は、全てのストアアクセスのリプライを待って同期レジスタ２４０の同期フラグをＯＮする図３に示した関連技術と比較して、同期制御のオーバヘッド時間を大幅に短縮することができる。即ち、ＤＭＡ転送装置とＣＰＵ間の同期時間の高速化の効果が得られる。
【００４３】
[第２の実施形態]
図４は本発明の第２の実施形態に係るノード３００のブロック図であり、図１と同一符号は同一部分を示す。ノード３００は、全てのＣＰＵ１１０で共通な１個の同期レジスタ１４０を１番のメモリ制御装置１２０−１と全ＣＰＵ１１０との間に接続している点で、各ＣＰＵ１１０に個別に同期レジスタ１４０を設けている図１の実施形態と相違する。
【００４４】
ＤＭＡ転送装置１５０は、全てのストアリクエストの送出を完了後、１番のメモリ制御装置１２０−１に向けて同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）を送出する。同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）は、ｎ番のメモリ制御装置１２０−ｎ、ｎ−１番のメモリ制御装置１２０−ｎ−１、…、２番のメモリ制御装置１２０−２を通過し、１番のメモリ制御装置１２０−１に到着する。１番のメモリ制御装置１２０−１は、到着した同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）を同期レジスタ１４０に送出する。同期レジスタ１４０は、同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）が入力されると、同期レジスタ内の同期フラグをＯＮにする。各ＣＰＵ１１０は、同期レジスタ１４０の同期フラグがＯＮになったことを確認し、ＤＭＡ転送装置１５０がストアしたデータをロードするために各メモリ装置１３０のロードアクセスを開始する。
【００４５】
ＤＭＡ転送装置１５０からのストアリクエストと、同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）は、ｎ番のメモリ制御装置１２０−ｎ、…、１番のメモリ制御装置１２０−１の間において追い越しは発生せず、同期レジスタ１４０に同期レジスタフラグＯＮ操作リクエスト（同期リクエスト）が到着したタイミングにおいては、全てのストアリクエストは完了していることが保障されている。そのため、ＣＰＵ１１０が同期レジスタ１４０の同期フラグのＯＮを確認した後、読出しを開始することで、ＤＭＡ転送装置１５０がメモリ装置１３０にストアしたデータを、各ＣＰＵ１１０は確実に読み出すことができる。
【００４６】
本実施形態に係るノード３００は、全てのストアアクセスのリプライを待って同期レジスタ２４０の同期フラグをＯＮする図３に示した関連技術と比較して、同期制御のオーバヘッド時間を短縮することができる。但し、番号の大きなＣＰＵ、例えばｎ番のＣＰＵ１１０−ｎに関しては、同期制御のオーバヘッド時間は図１の構成より長くなる。その理由は、図１の構成では同期リクエストがメモリ制御装置１２０−ｎを通過して同期レジスタ１４０−ｎに到達し同期フラグがＯＮされるタイミング以降であればロードアクセスを開始することができるのに対して、図４の構成では、同期リクエストがさらにｎ−１のメモリ制御装置１２０−ｎ−１、…、１番のメモリ制御装置１２０−１を通過して同期レジスタ１４０に到着し同期フラグがＯＮされるタイミングまでロードアクセスを開始することができないためである。
【００４７】
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【００４８】
[第３の実施形態]
図５を参照すると、本発明の第３の実施形態に係るノード４００は、１番からｎ番までの複数のＣＰＵ４１０と、複数のＣＰＵ４１０に１対１に接続された１番からｎ番までの複数のメモリ制御装置４２０と、複数のメモリ制御装置４２０に１対１に接続された複数のメモリ装置４３０と、複数のＣＰＵ４１０および複数のメモリ制御装置４２０に１対１に接続された複数の同期レジスタ４４０とを備えている。また、複数のメモリ制御装置４２０は、１番からｎ番まで番号順に一列に接続されている。そして、ＤＭＡ転送装置４５０が、ｎ番のメモリ制御装置４２０−ｎに接続されている。
【００４９】
ＤＭＡ転送装置４５０は、複数のメモリ制御装置４２０を経由して複数のメモリ装置４３０をライトアクセスした後、複数のメモリ制御装置４２０を経由して同期レジスタ４４０に上記ライトアクセスが完了したことを示す値を設定するように構成されている。また、複数のＣＰＵ４１０のそれぞれは、対応する同期レジスタ４４０の上記値を参照して上記ライトアクセスされたデータのリードアクセスの可否を決定するように構成されている。
【００５０】
このように構成されたノード４００は、ＤＭＡ転送装置４５０が各メモリ装置４３０にデータをストアし、そのストアしたデータを各ＣＰＵ４１０がロードすることを保証する場合、以下のような同期制御を行う。即ち、ＤＭＡ転送装置４５０は、複数のメモリ制御装置４２０を経由して複数のメモリ装置４３０をライトアクセスした後、複数のメモリ制御装置４２０を経由して同期レジスタ４４０に上記ライトアクセスが完了したことを示す値を設定する。複数のＣＰＵ４１０のそれぞれは、対応する同期レジスタ４４０の値を参照して上記ライトアクセスされたデータのリードアクセスの可否を決定する。
【００５１】
図３に示した関連技術では、ＤＭＡ転送装置２５０は、全てのストアアクセスのリプライを待ち合わせ、全てのストアアクセスのリプライが到着してから同期レジスタ２４０の同期フラグをＯＮにする。しかし、メモリ制御装置２２０−１からのリプライは多くのメモリ制御装置２２０によって中継されるためＤＭＡ転送装置２５０に到着するまでに時間を要する。その結果、同期レジスタ２４０の同期フラグをＯＮするタイミングが遅れ、その分だけ同期制御のオーバヘッド時間が増大するという課題がある。
【００５２】
これに対して本実施形態に係るノード４００では、ＤＭＡ転送装置４５０は、複数のメモリ制御装置４２０を経由して複数のメモリ装置４３０をライトアクセスした後、全てのストアアクセスのリプライを待たずに、複数のメモリ制御装置４２０を経由して同期レジスタ４４０に上記ライトアクセスが完了したことを示す値を設定する。そして、各ＣＰＵ４１０は、対応する同期レジスタ４４０の値を確認して、ロードアクセスを開始する。その際、ＤＭＡ転送装置４５０のライトアクセスに係るリクエストをＣＰＵ４１０のロードアクセスに係るリクエストが追い越すことはない。その結果、同期レジスタ４４０に上記ライトアクセスが完了したことを示す値を早期に設定できる分だけ、同期制御のオーバヘッド時間を図３に示した関連技術に比べて短縮することができる。
【００５３】
[第４の実施形態]
図６を参照すると、本発明の第４の実施形態に係るノード５００は、１番からｎ番までの複数のＣＰＵ５１０と、複数のＣＰＵ５１０に１対１に接続された１番からｎ番までの複数のメモリ制御装置５２０と、複数のメモリ制御装置５２０に１対１に接続された複数のメモリ装置５３０と、複数のＣＰＵ５１０と１番のメモリ制御装置５２０との間に接続された同期レジスタ５４０とを備えている。また、複数のメモリ制御装置５２０は、１番からｎ番まで番号順に一列に接続されている。そして、ｎ番のメモリ制御装置５２０−ｎにＤＭＡ転送装置５５０が接続されている。
【００５４】
ＤＭＡ転送装置５５０は、複数のメモリ制御装置５２０を経由して複数のメモリ装置５３０をライトアクセスした後、複数のメモリ制御装置５２０を経由して同期レジスタ５４０に上記ライトアクセスが完了したことを示す値を設定するように構成されている。また、複数のＣＰＵ５１０のそれぞれは、同期レジスタ５４０の値を参照して上記ライトアクセスされたデータのリードアクセスの可否を決定するように構成されている。
【００５５】
このように構成されたノード５００は、ＤＭＡ転送装置５５０が各メモリ装置５３０にデータをストアし、そのストアしたデータを各ＣＰＵ５１０がロードすることを保証する場合、以下のような同期制御を行う。即ち、ＤＭＡ転送装置５５０は、複数のメモリ制御装置５２０を経由して複数のメモリ装置５３０をライトアクセスした後、複数のメモリ制御装置５２０を経由して同期レジスタ５４０に上記ライトアクセスが完了したことを示す値を設定する。複数のＣＰＵ５１０のそれぞれは、同期レジスタ５４０の値を参照してライトアクセスされたデータのリードアクセスの可否を決定する。
【００５６】
図３に示した関連技術では、ＤＭＡ転送装置２５０は、全てのストアアクセスのリプライを待ち合わせ、全てのストアアクセスのリプライが到着してから同期レジスタ２４０の同期フラグをＯＮにする。しかし、メモリ制御装置１２０−１からのリプライは多くのメモリ制御装置１２０によって中継されるためＤＭＡ転送装置２５０に到着するまでに時間を要する。その結果、同期レジスタ２４０の同期フラグをＯＮするタイミングが遅れ、その分、同期制御のオーバヘッド時間が増大するという課題がある。
【００５７】
これに対して本実施形態に係るノード５００では、ＤＭＡ転送装置５５０は、複数のメモリ制御装置５２０を経由して複数のメモリ装置５３０をライトアクセスした後、全てのストアアクセスのリプライを待たずに、複数のメモリ制御装置５２０を経由して同期レジスタ５４０に上記ライトアクセスが完了したことを示す値を設定する。そして、各ＣＰＵ５１０は、同期レジスタ５４０の値を確認して、ロードアクセスを開始する。その際、ＤＭＡ転送装置５５０のライトアクセスに係るリクエストをＣＰＵ５１０のロードアクセスに係るリクエストが追い越すことはない。その結果、同期レジスタ５４０に上記ライトアクセスが完了したことを示す値を早期に設定できる分だけ、同期制御のオーバヘッド時間を図３に示した関連技術に比べて短縮することができる。
【産業上の利用可能性】
【００５８】
本発明は、並列計算機の同期制御に利用でき、特にＤＭＡ転送装置によるストアメモリアクセスとＣＰＵによるロードメモリアクセスの同期制御に利用できる。
【符号の説明】
【００５９】
１００…ノード
１１０−１〜１１０−ｎ…ＣＰＵ
１２０−１〜１２０−ｎ…メモリ制御装置
１３０−１〜１３０−ｎ…メモリ装置
１４０…同期レジスタ
１４０−１〜１４０−ｎ…同期レジスタ
１５０…ＤＭＡ転送装置
１６１−１〜１６１−ｎ…信号線
１６２−１〜１６２−ｎ…信号線
１６３−１〜１６３−ｎ…信号線
１６４−１〜１６４−ｎ…信号線
１６５−１〜１６５−ｎ…信号線
１６６…ノード間通信路
２００…ノード
２１０−１〜２１０−ｎ…ＣＰＵ
２２０−１〜２２０−ｎ…メモリ制御装置
２３０−１〜２３０−ｎ…メモリ装置
２１４…同期レジスタ
２５０…ＤＭＡ転送装置
３００…ノード
４００…ノード
４１０−１〜４１０−ｎ…ＣＰＵ
４２０−１〜４２０−ｎ…メモリ制御装置
４３０−１〜４３０−ｎ…メモリ装置
４４０−１〜４４０−ｎ…同期レジスタ
４５０…ＤＭＡ転送装置
５００…ノード
５１０−１〜５１０−ｎ…ＣＰＵ
５２０−１〜５２０−ｎ…メモリ制御装置
５３０−１〜５３０−ｎ…メモリ装置
５４０…同期レジスタ
５５０…ＤＭＡ転送装置
【図１】
2019139719.tif 000003
【図２】
2019139719.tif 000004
【図３】
2019139719.tif 000005
【図４】
2019139719.tif 000006
【図５】
2019139719.tif 000007
【図６】
2019139719.tif 000008