JP7031349B2 - ノード - Google Patents

ノード Download PDF

Info

Publication number
JP7031349B2
JP7031349B2 JP2018025269A JP2018025269A JP7031349B2 JP 7031349 B2 JP7031349 B2 JP 7031349B2 JP 2018025269 A JP2018025269 A JP 2018025269A JP 2018025269 A JP2018025269 A JP 2018025269A JP 7031349 B2 JP7031349 B2 JP 7031349B2
Authority
JP
Japan
Prior art keywords
memory control
synchronization
memory
control device
devices
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.)
Active
Application number
JP2018025269A
Other languages
English (en)
Other versions
JP2019139719A (ja
Inventor
憲行 安藤
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2018025269A priority Critical patent/JP7031349B2/ja
Publication of JP2019139719A publication Critical patent/JP2019139719A/ja
Application granted granted Critical
Publication of JP7031349B2 publication Critical patent/JP7031349B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、複数のCPUとメモリ等を有するノード、およびノードにおける同期制御方法に関する。
計算機において、メモリに対するストアアクセスとロードアクセスとに依存関係がある場合、ストアアクセスの完了を待ってロードアクセスを行う必要がある。このように先行のアクセスの完了を判断し、後続のアクセスを制御することは、オーダリング制御あるいは同期制御と呼ばれている。
例えば特許文献1に、複数のCPU(Central Processing Unit)でメモリを共有するマルチプロセッサシステムにおいて、メモリに対する或るCPUからのストアアクセスと別CPUからのロードアクセスとの間の同期制御方法が開示されている。
特開平11-167557号公報
ところで、メモリに対するアクセスはCPUからだけでなくDMA(Direct Memory Access)転送装置から行われる場合がある。例えば、複数のCPUと各CPUからアクセス可能は複数のメモリとDMA転送装置とを有する複数のノードが、ノード間通信路を通じて相互に接続された並列計算機システムがある。そのような計算機システムにおける各ノードでは、他のノードから受信したデータをDMA転送装置がノード内の各メモリにストアし、そのストアしたデータをノード内の各CPUがロードすることを保証する場合、同期制御が必要になる。しかしながら、そのようなDMA転送装置と複数のCPUとの間に適用可能な同期制御を記載した文献は知られていない。そのため、DMA転送装置と複数のCPUとの間の同期を適切に制御する方法の実現が望まれている。
本発明の目的は、DMA転送装置と複数のCPUとの間の同期を適切に制御する方法の実現が望まれている、という課題を解決するノードを提供することにある。
本発明の一形態に係るノードは、
1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUおよび前記複数のメモリ制御装置に1対1に接続された複数の同期レジスタとを備え、
前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されており、
n番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するDMA転送装置を備え、
前記複数のCPUのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
また本発明の他の形態に係るノードは、
1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUと1番の前記メモリ制御装置との間に接続された同期レジスタとを備え、
前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されており、
n番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するDMA転送装置を備え、
前記複数のCPUのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
また本発明の他の形態に係る同期制御方法は、
1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUおよび前記複数のメモリ制御装置に1対1に接続された複数の同期レジスタと、n番の前記メモリ制御装置に接続されたDMA転送装置とを備え、前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
前記DMA転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
前記複数のCPUのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
また本発明の他の形態に係る同期制御方法は、
1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUと1番の前記メモリ制御装置との間に接続された同期レジスタと、n番の前記メモリ制御装置に接続されたDMA転送装置とを備え、前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
前記DMA転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
前記複数のCPUのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する。
本発明は、上述したような構成を有することにより、DMA転送装置とCPU間の同期時間の高速化が可能である。
本発明の第1の実施形態に係るノードのブロック図である。 本発明の第1の実施形態に係るノードのメモリ制御装置の構成例を示すブロック図である。 本発明に関連するノードのブロック図である。 本発明の第2の実施形態に係るノードのブロック図である。 本発明の第3の実施形態に係るノードのブロック図である。 本発明の第4の実施形態に係るノードのブロック図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係るノード100のブロック図である。図1を参照すると、ノード100は、1番からn番までの複数のCPU110-1~110-nと、1番からn番までの複数のメモリ制御装置120-1~120-nと、1番からn番までの複数のRAM等のメモリ装置130-nと、1番からn番までの複数の同期レジスタ140-1~140-nと、DMA転送装置150とを含んで構成されている。以下、同じ複数の構成要素の何れであるかを特定しない場合、CPU110などのように、符号のハイフン以下を省略して記載する。
同じ番号のCPU110とメモリ制御装置120とメモリ装置130と同期レジスタ140とは1対1に対応している。CPU110とそれに対応するメモリ制御装置120とは信号線161で接続されている。メモリ制御装置120とそれに対応するメモリ装置130とは信号線162で接続されている。CPU110およびメモリ制御装置120とそれに対応する同期レジスタ140とは信号線163および信号線164で接続されている。
また、複数のメモリ制御装置120は、線状に接続されている。即ち、複数のメモリ制御装置120は、1番からn番まで番号順に信号線165で一列に接続されている。さらに、n番のメモリ制御装置120-nとDMA転送装置150は信号線165-nで接続されている。また、DMA転送装置150は、図示しない他のノードのDMA転送装置とノード間通信路166で接続されている。
複数のメモリ装置130には、1つのメモリ空間をn分割した各分割領域のメモリアドレスが割り当てられている。それぞれのメモリ装置130に対するアクセスは、対応するメモリ制御装置120により制御される。即ち、メモリ制御装置120は、CPU110およびDMA転送装置150から受信したメモリアクセスリクエストに従って、対応するメモリ装置130のアクセスを制御する。また、メモリ制御装置120は、受信したメモリアクセスリクエストに含まれるメモリアドレスに基づいて、対応するメモリ装置130をアクセスするか、隣接するメモリ制御装置120へメモリアクセスリクエストを転送するかを判断する。このようにして、DMA転送装置150から信号線165-nに送出されたメモリアクセスリクエストおよびCPU110から信号線161に送出されたメモリアクセスリクエストは、アクセス先のメモリ装置130に接続されたメモリ制御装置120まで中継される。
例えば、n番のCPU110-nからn番のメモリ装置130-nのメモリアドレスを含むメモリアクセスリクエストが信号線161-nに送出されると、そのメモリアクセスリクエストを信号線161-nを通じて受信したメモリ制御装置120-nは、そのメモリアクセスリクエストに従ってメモリ装置130-nをアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置120-nは、メモリ装置130-nからリードしたデータを含むリプライデータをリクエスト元のCPU110-nへ信号線161-nを通じて返却する。
また、例えば、n番のCPU110-nから1番のメモリ装置130-1のメモリアドレスを含むメモリアクセスリクエストが信号線161-nに送出されると、そのメモリアクセスリクエストを信号線161-nを通じて受信したメモリ制御装置120-nは、そのメモリアクセスリクエストのメモリアドレスに従って信号線165-n-1を通じて隣接するメモリ制御装置120-n-1に転送する。信号線165-n-1を通じてメモリアクセスリクエストを受信したメモリ制御装置120-n-1も同様の判断を行う。このようにして、メモリアクセスリクエストは最終的に信号線165-1を通じてメモリ制御装置120-1に到達する。そして、メモリ制御装置120-1は、そのメモリアクセスリクエストに従ってメモリ装置130-1をアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置120-1は、メモリ装置130-1からリードしたデータを含むリプライデータをリクエスト元のCPU110-nに返却するために信号線165-1を通じて隣接するメモリ制御装置120-2へ送出する。メモリ制御装置120-2は、返却先がCPU110-nであるため、受信したリプライデータを、信号線165-2を通じて隣接するメモリ制御装置120-3へ送出する。このようにして、リプライデータは最終的に信号線165-n-1を通じてメモリ制御装置120-nに到達し、このメモリ制御装置120-nから信号線161-1を通じて要求元のCPU110-nに返却される。
以上のようにして、一般的に、k番目のCPU110-kがj番目のメモリ装置130-jをアクセスするとき、そのメモリアクセスリクエストおよびリプライデータは、j≦kのときは、j番以上、k番以下のメモリ制御装置120を経由し、j>kのときは、k番以上、j番以下のメモリ制御装置120を経由する。
他方、DMA転送装置150からn番のメモリ装置130-nのメモリアドレスを含むメモリアクセスリクエストが信号線165-nに送出されると、そのメモリアクセスリクエストを、信号線165-nを通じて受信したメモリ制御装置120-nは、そのメモリアクセスリクエストに従ってメモリ装置130-nをアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置120-nは、メモリ装置130-nからリードしたデータを含むリプライデータをリクエスト元のDMA転送装置150へ信号線165-nを通じて返却する。
また、DMA転送装置150から例えば1番のメモリ装置130-1のメモリアドレスを含むメモリアクセスリクエストが信号線165-nに送出されると、そのメモリアクセスリクエストを、信号線165-nを通じて受信したメモリ制御装置120-nは、そのメモリアクセスリクエストのメモリアドレスに従って信号線165-n-1を通じて隣接するメモリ制御装置120-n-1に転送する。信号線165-n-1を通じてメモリアクセスリクエストを受信したメモリ制御装置120-n-1も同様の判断を行う。このようにして、メモリアクセスリクエストは最終的に信号線165-1を通じてメモリ制御装置120-1に到達する。そして、メモリ制御装置120-1は、そのメモリアクセスリクエストに従ってメモリ装置130-1をアクセスする。そして、リードアクセスリクエストのときは、メモリ制御装置120-1は、メモリ装置130-1からリードしたデータを含むリプライデータをリクエスト元のDMA転送装置150に返却するために信号線165-1を通じて隣接するメモリ制御装置120-2へ送出する。メモリ制御装置120-2は、返却先がDMA転送装置150であるため、受信したリプライデータを、信号線165-2を通じて隣接するメモリ制御装置120-3へ送出する。このようにして、リプライデータは最終的に信号線165-n-1を通じてメモリ制御装置120-nに到達し、このメモリ制御装置120-nから信号線165-nを通じて要求元のDMA転送装置150に返却される。
以上のようにして、一般的に、DMA転送装置150がj番目のメモリ装置130-jをアクセスするとき、そのメモリアクセスリクエストおよびリプライデータは、j番以上のメモリ制御装置120を経由する。
また、DMA転送装置150は、メモリ装置130に対する一連のストアアクセスリクエストとその後に行われるCPU110のロードアクセスリクエストとの同期をとる場合、一連のストアアクセスリクエストの完了後に、同期リクエストを信号線165-nに送出するように構成されている。
また、メモリ制御装置120は、信号線165を通じて同期リクエストを受信すると、同期リクエストのコピーを、信号線164を通じて対応する同期レジスタ140に送出すると共に、自装置よりも番号の小さなメモリ制御装置120が隣接している場合、受信した同期リクエストのコピーを、信号線165を通じて隣接するメモリ制御装置120へ送出するように構成されている。同期レジスタ140は、同期リクエストを、信号線164を通じて受信すると、同期フラグをON(オン)にするように構成されている。そのため、DMA転送装置150から信号線165-nに同期リクエストが送出されると、先ず、メモリ制御装置120-nは信号線165-nを通じて同期リクエストを受信し、同期レジスタ140-nに同期リクエストを送出すると共に同期リクエストを信号線165-n-1を通じて隣接するメモリ制御装置120-n-1に転送する。その結果、同期レジスタ140-nの同期フラグがONになる。また、メモリ制御装置120-n-1は、同期リクエストを受信すると、それを同期レジスタ140-n-1に送出し、さらに隣接するメモリ制御装置120-n-2へ同期リスエストを転送する。その結果、同期レジスタ140-n-1の同期フラグがONになる。このようにして、最終的にメモリ制御装置120-1まで同期リクエストが転送され、同期レジスタ140-n-3~140-1の同期フラグがONされる。
CPU110は、DMA転送装置150がメモリ装置130にストアしたデータをロードする場合、信号線163を通じて対応する同期レジスタ140の同期フラグがONになるのを待ち合わせる。そして、CPU110は、対応する同期レジスタ140の同期フラグがONになると、メモリ装置130に対するロードアクセスリクエストを送出するように構成されている。
要するに、本実施形態に係るノード100は、以下のように構成され、動作する。
同期レジスタ140は、CPU110毎に各々分散させて構成され、各同期レジスタ140はCPU110とメモリ制御装置120に接続される。
DMA転送装置150が発行したストアリクエストは、メモリ制御装置120を経由して、各メモリ装置130に到達し、メモリ書き込み動作がされる。この後、ライトアクセスを完了したことを示すストアリプライをDMA転送装置150に返却する処理は行わない。
DMA転送装置150は、全てのストアリクエストを発行したならば、ストアリクエストを発行したメモリ制御装置120の接続パスと同一パスを使用し、各同期レジスタ140に対し、全てのストアアクセスが完了したことを示す、同期レジスタ140のフラグONの操作リクエスト(同期リクエスト)を発行する。なお、ストアリクエストと、同期レジスタフラグON操作リクエスト(同期リクエスト)で、メモリ制御装置120の接続パス上での追い抜きは起こらない構成である。
各メモリ制御装置120は、同期レジスタフラグON操作リクエスト(同期リクエスト)が到達したならば、これを、左隣りのメモリ制御装置120に伝達すると共に、同期レジスタフラグON操作リクエスト(同期リクエスト)のコピーを、自身のメモリ制御装置120に接続される同期レジスタ140に通達する。
同期レジスタ140は、同期レジスタフラグON操作リクエスト(同期リクエスト)を受け取ったならば、自身の同期レジスタのフラグをONにする。なお、各同期レジスタ140は、同一内容であるが、上記動作での同期レジスタのフラグをONになるタイミングは、各同期レジスタで異なり、DMA転送装置150に一番近いn番の同期レジスタ140-nが一番早くフラグがONになることができ、DMA転送装置150に一番遠い1番の同期レジスタ140-1が一番遅くフラグがONになる。
各CPU110は、各CPU110に接続された同期レジスタ140のフラグを読み出すことで、DMA転送のストア処理が完了したことを認識することでき、その後、各CPU110は、各メモリ装置130にストアされたデータのロード処理を開始する。
例えば、n番のCPU110-nは、n番の同期レジスタ140-nの同期フラグがONになったことを確認し、各メモリ装置130のロードアクセスを開始する。この時、n-1番のメモリ装置130-n-1、…、1番のメモリ装置130-1のDMA転送装置150からのメモリストア処理は完了していないタイミングであっても、n番のCPU110-nは、DMA転送装置150によってストアされたデータをn-1番のメモリ装置130-n-1、…、1番のメモリ装置130-1から読み出すことができる。その理由は、DMA転送装置150からのメモリストアとn番のCPU110-nのロードアクセスは、同一のメモリ制御装置120間のパスを使用するので、n番のCPU110-nのロードアクセスがDMA転送装置150からのメモリストアを追い抜くことは無いためである。その結果、DMA転送装置150からの1番のメモリ装置130-1、…、n-1番のメモリ装置130-n-1にストアされたストアアクセスのデータを、n番のCPU110-nは確実に読み出すことができる。
図2は、メモリ制御装置120の構成例を示すブロック図である。なお、メモリ制御装置120は、図2に示した構成に限定されず、その他各種の構成を採用することが可能である。
図2を参照すると、メモリ制御装置120は、スイッチ121とメモリコントローラ122とを含んで構成されている。スイッチ121は、信号線161を通じて対応するCPU110に接続され、信号線164を通じて対応する同期レジスタ140に接続され、信号線165を通じて他のメモリ制御装置120またはDMA転送装置150に接続され、内部信号線123を通じてメモリコントローラ122に接続されている。スイッチ121は、信号線161、165を通じて入力されるストアリクエストやロードリクエスト等のリクエストを解析し、リクエスト先が対応するメモリ装置130であれば内部信号線123を通じてリクエストをメモリコントローラ122に送出し、それ以外はリクエスト先に応じて左右のメモリ制御装置120にリクエストを転送する。また、スイッチ121は、信号線165を通じて左右のメモリ制御装置120から入力されるリプライおよび内部信号線123を通じてメモリコントローラ122から入力されるリプライを解析し、リプライ先が対応するCPU110であれば信号線161を通じてリプライを対応するCPU110に送出し、それ以外はリプライ先に応じて左右のメモリ制御装置120あるいはDMA転送装置150にリプライを転送する。さらに、スイッチ121は、右側の信号線165を通じて同期リクエストを入力すると、そのコピーをとり、2つの同一の同期リクエストの一方を、信号線164を通じて対応する同期レジスタ140へ送出し、他方を左側の信号線165を通じて隣接するメモリ制御装置120へ転送する。
メモリコントローラ122は、スイッチ121から内部信号線123を通じて入力されるリクエストに従って信号線162で接続されたメモリ装置130をアクセスする。またメモリコントローラ122は、メモリ装置130からリードデータを入力すると、リプライ先のアドレスを含むリプライを、内部信号線123を通じてスイッチ121へ送出する。
次に、本実施形態のノード100の効果を説明する。
図3は、本発明に関連するノード200の構成を示す。図3を参照すると、ノード200は、複数のCPU210と、複数のメモリ制御装置220と、複数のメモリ装置230と、同期レジスタ240と、DMA転送装置250とを含んで構成されている。同期レジスタ240は、DMA転送装置250および全てのCPU210からアクセス可能である。また各メモリ制御装置220は、ストアアクセスのリプライを返却するように構成されている。
DMA転送装置250は、各メモリ装置230に対して発行した全てのストアアクセスが完了したことを、ストアアクセスのリプライの個数をカウントすることで認識する。即ち、発行ストアアクセス数とストアリプライ数が等しいならば、発行した全てのストアリクエストがアクセス完了したと認識する。そして、DMA転送装置250は、発行した全てのストアリクエストの完了を認識すると、同期レジスタ240の同期フラグをONにする。各CPU210は、同期レジスタ240の同期フラグを確認し、ONになっていれば、DMA転送装置250によってストアされたデータを各メモリ装置230からロードアクセスする処理を開始する。
図3に示した関連技術では、全てのストアアクセスのリプライをDMA転送装置250は待つ必要がある。特に、メモリ制御装置220-1からのリプライは多くのメモリ制御装置220によって中継されるためDMA転送装置250に到着するまでに時間を要する。その結果、同期制御のオーバヘッド時間が増大するという課題がある。
これに対して本実施形態に係るノード100では、前述したように、各CPU110に対し、各CPU110に対応する同期レジスタ140を、CPU110とメモリ制御装置120間に接続させている。また、DMA転送装置150は、メモリストアアクセスを発行後、継続して同期レジスタ140への書き込みのために同期リクエストを発行する。この同期リクエストもメモリストアアクセスと同一のパスを使用する(メモリストアアクセスと同期リクエストの追い越しは起きない構成である)。各メモリ制御装置120は、各配下のメモリ装置130に対しメモリストアが完了したならば、続いて入力される同期リクエストを同期レジスタ140に送出し、その結果、同期レジスタ140の同期フラグがONにされる。各CPU110は、CPU配下の同期レジスタ140の内容をリードすることで、DMA転送装置150が発行したメモリストアアクセスが完了したことを認識し、該メモリストア内容の読出し処理を行うことができる。各CPU110に対応する同期レジスタ140は、同一のコピーとなるが、上述した通り、同期レジスタ140の同期フラグをONするタイミングは、DMA転送装置150からのストアアクセスが、同期レジスタ配下のメモリ制御装置120でのメモリストア完了タイミングであり、同期レジスタ140へのライトアクセスタイミングは各々異なるタイミングになる(DMA転送装置から近いものから早く同期レジスタへのライトが行われる)。
以上の結果、本実施形態に係るノード100は、全てのストアアクセスのリプライを待って同期レジスタ240の同期フラグをONする図3に示した関連技術と比較して、同期制御のオーバヘッド時間を大幅に短縮することができる。即ち、DMA転送装置とCPU間の同期時間の高速化の効果が得られる。
[第2の実施形態]
図4は本発明の第2の実施形態に係るノード300のブロック図であり、図1と同一符号は同一部分を示す。ノード300は、全てのCPU110で共通な1個の同期レジスタ140を1番のメモリ制御装置120-1と全CPU110との間に接続している点で、各CPU110に個別に同期レジスタ140を設けている図1の実施形態と相違する。
DMA転送装置150は、全てのストアリクエストの送出を完了後、1番のメモリ制御装置120-1に向けて同期レジスタフラグON操作リクエスト(同期リクエスト)を送出する。同期レジスタフラグON操作リクエスト(同期リクエスト)は、n番のメモリ制御装置120-n、n-1番のメモリ制御装置120-n-1、…、2番のメモリ制御装置120-2を通過し、1番のメモリ制御装置120-1に到着する。1番のメモリ制御装置120-1は、到着した同期レジスタフラグON操作リクエスト(同期リクエスト)を同期レジスタ140に送出する。同期レジスタ140は、同期レジスタフラグON操作リクエスト(同期リクエスト)が入力されると、同期レジスタ内の同期フラグをONにする。各CPU110は、同期レジスタ140の同期フラグがONになったことを確認し、DMA転送装置150がストアしたデータをロードするために各メモリ装置130のロードアクセスを開始する。
DMA転送装置150からのストアリクエストと、同期レジスタフラグON操作リクエスト(同期リクエスト)は、n番のメモリ制御装置120-n、…、1番のメモリ制御装置120-1の間において追い越しは発生せず、同期レジスタ140に同期レジスタフラグON操作リクエスト(同期リクエスト)が到着したタイミングにおいては、全てのストアリクエストは完了していることが保障されている。そのため、CPU110が同期レジスタ140の同期フラグのONを確認した後、読出しを開始することで、DMA転送装置150がメモリ装置130にストアしたデータを、各CPU110は確実に読み出すことができる。
本実施形態に係るノード300は、全てのストアアクセスのリプライを待って同期レジスタ240の同期フラグをONする図3に示した関連技術と比較して、同期制御のオーバヘッド時間を短縮することができる。但し、番号の大きなCPU、例えばn番のCPU110-nに関しては、同期制御のオーバヘッド時間は図1の構成より長くなる。その理由は、図1の構成では同期リクエストがメモリ制御装置120-nを通過して同期レジスタ140-nに到達し同期フラグがONされるタイミング以降であればロードアクセスを開始することができるのに対して、図4の構成では、同期リクエストがさらにn-1のメモリ制御装置120-n-1、…、1番のメモリ制御装置120-1を通過して同期レジスタ140に到着し同期フラグがONされるタイミングまでロードアクセスを開始することができないためである。
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
[第3の実施形態]
図5を参照すると、本発明の第3の実施形態に係るノード400は、1番からn番までの複数のCPU410と、複数のCPU410に1対1に接続された1番からn番までの複数のメモリ制御装置420と、複数のメモリ制御装置420に1対1に接続された複数のメモリ装置430と、複数のCPU410および複数のメモリ制御装置420に1対1に接続された複数の同期レジスタ440とを備えている。また、複数のメモリ制御装置420は、1番からn番まで番号順に一列に接続されている。そして、DMA転送装置450が、n番のメモリ制御装置420-nに接続されている。
DMA転送装置450は、複数のメモリ制御装置420を経由して複数のメモリ装置430をライトアクセスした後、複数のメモリ制御装置420を経由して同期レジスタ440に上記ライトアクセスが完了したことを示す値を設定するように構成されている。また、複数のCPU410のそれぞれは、対応する同期レジスタ440の上記値を参照して上記ライトアクセスされたデータのリードアクセスの可否を決定するように構成されている。
このように構成されたノード400は、DMA転送装置450が各メモリ装置430にデータをストアし、そのストアしたデータを各CPU410がロードすることを保証する場合、以下のような同期制御を行う。即ち、DMA転送装置450は、複数のメモリ制御装置420を経由して複数のメモリ装置430をライトアクセスした後、複数のメモリ制御装置420を経由して同期レジスタ440に上記ライトアクセスが完了したことを示す値を設定する。複数のCPU410のそれぞれは、対応する同期レジスタ440の値を参照して上記ライトアクセスされたデータのリードアクセスの可否を決定する。
図3に示した関連技術では、DMA転送装置250は、全てのストアアクセスのリプライを待ち合わせ、全てのストアアクセスのリプライが到着してから同期レジスタ240の同期フラグをONにする。しかし、メモリ制御装置220-1からのリプライは多くのメモリ制御装置220によって中継されるためDMA転送装置250に到着するまでに時間を要する。その結果、同期レジスタ240の同期フラグをONするタイミングが遅れ、その分だけ同期制御のオーバヘッド時間が増大するという課題がある。
これに対して本実施形態に係るノード400では、DMA転送装置450は、複数のメモリ制御装置420を経由して複数のメモリ装置430をライトアクセスした後、全てのストアアクセスのリプライを待たずに、複数のメモリ制御装置420を経由して同期レジスタ440に上記ライトアクセスが完了したことを示す値を設定する。そして、各CPU410は、対応する同期レジスタ440の値を確認して、ロードアクセスを開始する。その際、DMA転送装置450のライトアクセスに係るリクエストをCPU410のロードアクセスに係るリクエストが追い越すことはない。その結果、同期レジスタ440に上記ライトアクセスが完了したことを示す値を早期に設定できる分だけ、同期制御のオーバヘッド時間を図3に示した関連技術に比べて短縮することができる。
[第4の実施形態]
図6を参照すると、本発明の第4の実施形態に係るノード500は、1番からn番までの複数のCPU510と、複数のCPU510に1対1に接続された1番からn番までの複数のメモリ制御装置520と、複数のメモリ制御装置520に1対1に接続された複数のメモリ装置530と、複数のCPU510と1番のメモリ制御装置520との間に接続された同期レジスタ540とを備えている。また、複数のメモリ制御装置520は、1番からn番まで番号順に一列に接続されている。そして、n番のメモリ制御装置520-nにDMA転送装置550が接続されている。
DMA転送装置550は、複数のメモリ制御装置520を経由して複数のメモリ装置530をライトアクセスした後、複数のメモリ制御装置520を経由して同期レジスタ540に上記ライトアクセスが完了したことを示す値を設定するように構成されている。また、複数のCPU510のそれぞれは、同期レジスタ540の値を参照して上記ライトアクセスされたデータのリードアクセスの可否を決定するように構成されている。
このように構成されたノード500は、DMA転送装置550が各メモリ装置530にデータをストアし、そのストアしたデータを各CPU510がロードすることを保証する場合、以下のような同期制御を行う。即ち、DMA転送装置550は、複数のメモリ制御装置520を経由して複数のメモリ装置530をライトアクセスした後、複数のメモリ制御装置520を経由して同期レジスタ540に上記ライトアクセスが完了したことを示す値を設定する。複数のCPU510のそれぞれは、同期レジスタ540の値を参照してライトアクセスされたデータのリードアクセスの可否を決定する。
図3に示した関連技術では、DMA転送装置250は、全てのストアアクセスのリプライを待ち合わせ、全てのストアアクセスのリプライが到着してから同期レジスタ240の同期フラグをONにする。しかし、メモリ制御装置120-1からのリプライは多くのメモリ制御装置120によって中継されるためDMA転送装置250に到着するまでに時間を要する。その結果、同期レジスタ240の同期フラグをONするタイミングが遅れ、その分、同期制御のオーバヘッド時間が増大するという課題がある。
これに対して本実施形態に係るノード500では、DMA転送装置550は、複数のメモリ制御装置520を経由して複数のメモリ装置530をライトアクセスした後、全てのストアアクセスのリプライを待たずに、複数のメモリ制御装置520を経由して同期レジスタ540に上記ライトアクセスが完了したことを示す値を設定する。そして、各CPU510は、同期レジスタ540の値を確認して、ロードアクセスを開始する。その際、DMA転送装置550のライトアクセスに係るリクエストをCPU510のロードアクセスに係るリクエストが追い越すことはない。その結果、同期レジスタ540に上記ライトアクセスが完了したことを示す値を早期に設定できる分だけ、同期制御のオーバヘッド時間を図3に示した関連技術に比べて短縮することができる。
本発明は、並列計算機の同期制御に利用でき、特にDMA転送装置によるストアメモリアクセスとCPUによるロードメモリアクセスの同期制御に利用できる。
100…ノード
110-1~110-n…CPU
120-1~120-n…メモリ制御装置
130-1~130-n…メモリ装置
140…同期レジスタ
140-1~140-n…同期レジスタ
150…DMA転送装置
161-1~161-n…信号線
162-1~162-n…信号線
163-1~163-n…信号線
164-1~164-n…信号線
165-1~165-n…信号線
166…ノード間通信路
200…ノード
210-1~210-n…CPU
220-1~220-n…メモリ制御装置
230-1~230-n…メモリ装置
214…同期レジスタ
250…DMA転送装置
300…ノード
400…ノード
410-1~410-n…CPU
420-1~420-n…メモリ制御装置
430-1~430-n…メモリ装置
440-1~440-n…同期レジスタ
450…DMA転送装置
500…ノード
510-1~510-n…CPU
520-1~520-n…メモリ制御装置
530-1~530-n…メモリ装置
540…同期レジスタ
550…DMA転送装置

Claims (8)

  1. 1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUおよび前記複数のメモリ制御装置に1対1に接続された複数の同期レジスタとを備え、
    前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されており、
    n番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するDMA転送装置を備え、
    前記複数のCPUのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
    ノード。
  2. 前記n番の前記メモリ制御装置は、前記DMA転送装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストをコピーし、同じ2つの前記同期リクエストの一方を対応する前記同期レジスタに送出し、他方を隣接する前記メモリ制御装置へ送出するように構成され、
    前記n番の前記メモリ制御装置および前記1番の前記メモリ制御装置以外の前記メモリ制御装置のそれぞれは、隣接する前記メモリ制御装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストをコピーし、同じ2つの前記同期リクエストの一方を対応する前記同期レジスタに送出し、他方を反対側で隣接する前記メモリ制御装置へ送出するように構成され
    前記1番の前記メモリ制御装置は、隣接する前記メモリ制御装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストを前記同期レジスタに送出するように構成されている、
    請求項1に記載のノード。
  3. 前記DMA転送装置から前記n番の前記メモリ制御装置に入力された前記複数のメモリ制御装置を経由する前記ライトアクセスのためのストアリクエストと前記同期レジスタに前記値を設定する同期リクエストとは、複数の前記メモリ制御装置を経由する途中で追い越しは起こらないように構成されている、
    請求項1または2に記載のノード。
  4. 1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUおよび前記複数のメモリ制御装置に1対1に接続された複数の同期レジスタと、n番の前記メモリ制御装置に接続されたDMA転送装置とを備え、前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
    前記DMA転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
    前記複数のCPUのそれぞれは、対応する前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
    同期制御方法。
  5. 前記n番の前記メモリ制御装置は、前記DMA転送装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストをコピーし、同じ2つの前記同期リクエストの一方を対応する前記同期レジスタに送出し、他方を隣接する前記メモリ制御装置へ送出し、
    前記n番の前記メモリ制御装置および前記1番の前記メモリ制御装置以外の前記メモリ制御装置のそれぞれは、隣接する前記メモリ制御装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストをコピーし、同じ2つの前記同期リクエストの一方を対応する前記同期レジスタに送出し、他方を反対側で隣接する前記メモリ制御装置へ送出し、
    前記1番の前記メモリ制御装置は、隣接する前記メモリ制御装置から前記同期レジスタに前記値を設定する同期リクエストが入力されると、前記同期リクエストを前記同期レジスタに送出する、
    請求項4に記載の同期制御方法。
  6. 前記ノードは、前記DMA転送装置から前記n番の前記メモリ制御装置に入力された前記複数のメモリ制御装置を経由する前記ライトアクセスのためのストアリクエストと前記同期レジスタに前記値を設定する同期リクエストとは、複数の前記メモリ制御装置を経由する途中で追い越しは起こらないように構成されている、
    請求項4または5に記載の同期制御方法。
  7. 1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUと1番の前記メモリ制御装置との間に接続された同期レジスタとを備え、
    前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されており、
    n番の前記メモリ制御装置に接続され、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定するDMA転送装置を備え、
    前記複数のCPUのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
    ノード。
  8. 1番からn番までの複数のCPUと、前記複数のCPUに1対1に接続された1番からn番までの複数のメモリ制御装置と、前記複数のメモリ制御装置に1対1に接続された複数のメモリ装置と、前記複数のCPUと1番の前記メモリ制御装置との間に接続された同期レジスタと、n番の前記メモリ制御装置に接続されたDMA転送装置とを備え、前記複数のメモリ制御装置は、1番からn番まで番号順に一列に接続されている、ノードが実行する同期制御方法であって、
    前記DMA転送装置は、複数の前記メモリ制御装置を経由して複数の前記メモリ装置をライトアクセスした後、複数の前記メモリ制御装置を経由して前記同期レジスタに前記ライトアクセスが完了したことを示す値を設定し、
    前記複数のCPUのそれぞれは、前記同期レジスタの前記値を参照して前記ライトアクセスされたデータのリードアクセスの可否を決定する、
    同期制御方法。
JP2018025269A 2018-02-15 2018-02-15 ノード Active JP7031349B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018025269A JP7031349B2 (ja) 2018-02-15 2018-02-15 ノード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018025269A JP7031349B2 (ja) 2018-02-15 2018-02-15 ノード

Publications (2)

Publication Number Publication Date
JP2019139719A JP2019139719A (ja) 2019-08-22
JP7031349B2 true JP7031349B2 (ja) 2022-03-08

Family

ID=67695358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018025269A Active JP7031349B2 (ja) 2018-02-15 2018-02-15 ノード

Country Status (1)

Country Link
JP (1) JP7031349B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100327923A1 (en) 2009-06-29 2010-12-30 Mosaid Technologies Incorporated Bridging device having a frequency configurable clock domain
JP2016095881A (ja) 2007-11-26 2016-05-26 スパンション エルエルシー 記憶システム及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095881A (ja) 2007-11-26 2016-05-26 スパンション エルエルシー 記憶システム及び方法
US20100327923A1 (en) 2009-06-29 2010-12-30 Mosaid Technologies Incorporated Bridging device having a frequency configurable clock domain
JP2012531635A (ja) 2009-06-29 2012-12-10 モサイド・テクノロジーズ・インコーポレーテッド 周波数構成可能クロックドメインを有するブリッジデバイス(bridgingdevice)

Also Published As

Publication number Publication date
JP2019139719A (ja) 2019-08-22

Similar Documents

Publication Publication Date Title
AU598857B2 (en) Move-out queue buffer
EP0712076A2 (en) System for distributed multiprocessor communication
US20070038792A1 (en) Systems, methods, and computer program products for arbitrating access to a shared resource based on quality-of-service information associated with a resource request
US11907814B2 (en) Data path for GPU machine learning training with key value SSD
CN101706760B (zh) 矩阵转置自动控制电路系统及矩阵转置方法
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US8478946B2 (en) Method and system for local data sharing
JP7031349B2 (ja) ノード
JP2010152585A (ja) 複数バスを有するシステムlsi
US12086638B2 (en) Topology of accelerators
US8117626B2 (en) Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP5383159B2 (ja) バス中継装置及び制御方法
US7788466B2 (en) Integrated circuit with a plurality of communicating digital signal processors
JP2587586B2 (ja) データ転送方法
US20100153610A1 (en) Bus arbiter and bus system
US7000089B2 (en) Address assignment to transaction for serialization
KR100841130B1 (ko) 상호접속 네트워크를 통한 효율적인 순서화 저장을 위한방법 및 장치
JP2780662B2 (ja) マルチプロセッサシステム
US20240078046A1 (en) Computer system and method for data access
JP2008009763A (ja) 情報処理装置及びバス制御方法
JPH07334469A (ja) 信号処理装置
US10666727B2 (en) Distributed processing network operations
JP2004287963A (ja) 検索要求を並列処理する検索装置、検索方法、及びプログラム
EP0923031A1 (en) Method for reading data from a shared memory in a multiprocessor computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220207

R151 Written notification of patent or utility model registration

Ref document number: 7031349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151