(57)【要約】【課題】ハードウェアコストを抑えながら、データ転送の速度を大幅に向上させる。【解決手段】計算ノードを並列接続する際のインタフェースとなるコミュニケータチップ２は、通信手段６〜９、ＤＭＡ転送シーケンサ１０、オンチップルータ１１、およびメモリ１２を備える。ＤＭＡ転送シーケンサ１０は、接続された他のコミュニケータチップに内蔵されたＤＭＡ転送シーケンサに対して制御パケットを送信し、該ＤＭＡ転送シーケンサの動作を指定する。また、コミュニケータチップ、あるいは計算ノードとの間のデータ転送を制御する通信手段６〜９は、ＤＭＡ制御回路６ａ〜９ａを備える。これらＤＭＡ制御回路６ａ〜９ａは、ＤＭＡ転送シーケンサ１０に対して、ＤＭＡ転送完了時にＤＭＡ転送が完了したことを示すＤＭＡ終了割り込み信号を供給する。【選択図】図２
2012027671.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算ノードを並列に接続するインタフェースとして用いられる半導体集積回路装置であって、
ＤＭＡ転送を実行するＤＭＡコントローラを有し、前記計算ノード、または他の前記半導体集積回路装置とのデータ転送を制御する通信インタフェースとなる通信手段と、
前記通信手段に設けられたＤＭＡコントローラに対してアクセスし、前記通信手段によるＤＭＡ転送を制御するＤＭＡ転送制御部と、
前記通信手段、および前記ＤＭＡ転送制御部が相互に行うアクセスを中継するルータ部とを備え、
前記ＤＭＡ転送制御部は、
前記通信手段を介して接続された他の前記半導体集積回路装置に設けられたＤＭＡ転送制御部に対して制御パケットを送信し、他の前記半導体集積回路装置におけるＤＭＡ転送制御部の動作を指定し、
各々の前記ＤＭＡコントローラは、
ＤＭＡ転送が終了した際に、前記ＤＭＡ転送制御部に対して、ＤＭＡ転送完了時にＤＭＡ転送が完了したことを示すＤＭＡ終了割り込み信号を供給することを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を並列接続した際のデータ転送技術に関し、特に、ＤＭＡ(Direct Memory Access)転送を用いたデータ転送に有効な技術に関する。
【背景技術】
【０００２】
ユビキタス情報社会の高度な情報処理の要請に応える技術として、たとえば、複数のパーソナルコンピュータなどの計算機をネットワークで接続して連動させる並列コンピュータシステムが知られている。
【０００３】
この並列コンピュータシステムには、複数の計算機を結合させるインタフェースが設けられており、該インタフェースを介して結合された計算機にデータ転送を行っている。この種のインタフェースとしては、たとえば、ネットワークスイッチが知られており、複数のＰＣＩ  Ｅｘｐｒｅｓｓチャネルを有するＰＣＩ  Ｅｘｐｒｅｓｓスイッチが製品化されている。
【０００４】
その他に、ＤＭＡＣ(Direct Memory Access Controller)を備えた半導体集積回路装置を用いて、ソフトウエアによるＤＭＡ転送を制御するものが知られている。また、この種の半導体集積回路装置においては、データの転送性能を改善する技術として、ＲＤＭＡ(Remote DMA)がある。
【０００５】
ＲＤＭＡは、自半導体集積回路装置に搭載されたＤＭＡＣのみならず、他の半導体集積回路装置に搭載されたＤＭＡＣも活用して、半導体集積回路装置間インタフェースを経由する転送の転送性能を改善する技術である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、上記のような並列コンピュータシステムにおけるデータ転送技術では、次のような問題点があることが本発明者により見い出された。
【０００７】
すなわち、ネットワークスイッチを用いたデータ転送技術では、複数のデータストリームを同時に転送する場合に、転送データ同士の混合が生じ、転送性能が悪化してしまうという問題点がある。
【０００８】
また、インタフェースのボトルネックの影響が、広がり易い問題点がある（Hot SpotによるTree Saturationの発生）。
【０００９】
たとえば、６つのノードが２つのネットワークスイッチによって接続されたシステムにおいて、特定のノードにデータ転送が集中すると、特定のノードに接続されたインタフェースがボトルネックとなり、このボトルネックの影響が別のインタフェースに波及する。
【００１０】
波及する理由は、ボトルネックのインタフェースが、他のインタフェースからの転送処理を受け付けにくくなるためである。このボトルネック波及により、アクセスが集中する特定のノードを経由しない転送まで、転送性能が低下してしまう。
【００１１】
なお、このボトルネック発生を抑制するために大容量のバッファを用いる方法では、ボトルネックを抑制できる代わりに、最大レイテンシが悪化する。これは、大容量バッファに最後に到着したデータは、バッファに先に到着したデータが処理されない限り処理されないためである。
【００１２】
また、ＤＭＡＣによるデータ転送技術では、転送性能、およびコストの問題点がある。これは、ＤＭＡＣの起動および停止処理を、プロセッサがソフトウエアを実行することで行うために生じる。
【００１３】
第一に、処理時間がかかるために、転送性能が低いこと、第二に、プロセッサや該プロセッサが実行するソフトウエアを格納するメモリが必要であるため、半導体集積回路装置の開発や製造にかかるコストが高いことである。
【００１４】
本発明の目的は、ハードウェアコストを抑えながら、データ転送の速度を大幅に向上させることのできる技術を提供することにある。
【００１５】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１７】
本発明は、複数の計算ノードを並列に接続するインタフェースとして用いられる半導体集積回路装置であって、ＤＭＡ転送を実行するＤＭＡコントローラを有し、該計算ノード、または他の半導体集積回路装置とのデータ転送を制御する通信インタフェースとなる通信手段と、該通信手段に設けられたＤＭＡコントローラに対してアクセスし、通信手段によるＤＭＡ転送を制御するＤＭＡ転送制御部と、通信手段、およびＤＭＡ転送制御部が相互に行うアクセスを中継するルータ部とを備え、ＤＭＡ転送制御部は、通信手段を介して接続された他の半導体集積回路装置に設けられたＤＭＡ転送制御部に対して制御パケットを送信し、ＤＭＡ転送制御部の動作を指定し、各々のＤＭＡコントローラは、ＤＭＡ転送が終了した際に、ＤＭＡ転送制御部に対して、ＤＭＡ転送完了時にＤＭＡ転送が完了したことを示すＤＭＡ終了割り込み信号を供給するものである。
【発明の効果】
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１９】
（１）データ転送をハードウェアによって制御するので、データ転送の性能を大幅に向上させることができる。
【００２０】
（２）データ転送に必要なソフトウェアや該ソフトウェアを処理する処理装置などを不要にすることができるので、システムの開発期間を短縮し、コストを低減することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態１による計算システムの一例を示すブロック図である。
【図２】図１の計算システムに設けられたコミュニケータチップのより詳しい構成の一例を示すブロック図である。
【図３】図２のコミュニケータチップに設けられたＤＭＡ転送シーケンサの構成の一例を示すブロック図である。
【図４】図１の計算システムにおける各機能モジュールとアドレスの関係を示すアドレスマップの一例を示す説明図である。
【図５】図１の計算システムに設けられたコミュニケータチップにおけるオンチップルータのルーティングテーブルの一例を示す説明図である。
【図６】図１の計算システムにおける処理の一例を示す説明図である。
【図７】図３のＤＭＡ転送シーケンサに設けられた転送先中継アドレスレジスタの設定の一例を示す説明図である。
【図８】図３のＤＭＡ転送シーケンサに設けられた通信手段選択レジスタの設定の一例を示す説明図である。
【図９】図３のＤＭＡ転送シーケンサに設けられた転送先属性レジスタの設定の一例を示す説明図である。
【図１０】図３のＤＭＡ転送シーケンサに設けられた制御・割り込み要求パケット転送先アドレス設定レジスタの設定の一例を示す説明図である。
【図１１】図３のＤＭＡ転送シーケンサに設けられた応答・割り込み要求パケット転送先アドレス設定レジスタにおける設定の一例を示す説明図である。
【図１２】図３のＤＭＡ転送シーケンサに設けられたＤＭＡＣ制御アドレスレジスタの設定の一例を示す説明図である。
【図１３】図６に示した処理におけるフローチャートである。
【図１４】本発明の実施の形態１による計算システムの他の構成例を示す説明図である。
【図１５】本発明の実施の形態２による計算システムの各機能モジュールとアドレスの関係を示すアドレスマップの一例を示す説明図である。
【図１６】本発明の他の実施の形態による計算システムにおける処理の一例を示したフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２３】
（実施の形態１）
図１は、本発明の実施の形態１による計算システムの一例を示すブロック図、図２は、図１の計算システムに設けられたコミュニケータチップのより詳しい構成の一例を示すブロック図、図３は、図２のコミュニケータチップに設けられたＤＭＡ転送シーケンサの構成の一例を示すブロック図、図４は、図１の計算システムにおける各機能モジュールとアドレスの関係を示すアドレスマップの一例を示す説明図、図５は、図１の計算システムに設けられたコミュニケータチップにおけるオンチップルータのルーティングテーブルの一例を示す説明図、図６は、図１の計算システムにおける処理の一例を示す説明図、図７は、図３のＤＭＡ転送シーケンサに設けられた転送先中継アドレスレジスタの設定の一例を示す説明図、図８は、図３のＤＭＡ転送シーケンサに設けられた通信手段選択レジスタの設定の一例を示す説明図、図９は、図３のＤＭＡ転送シーケンサに設けられた転送先属性レジスタの設定の一例を示す説明図、図１０は、図３のＤＭＡ転送シーケンサに設けられた制御・割り込み要求パケット転送先アドレス設定レジスタの設定の一例を示す説明図、図１１は、図３のＤＭＡ転送シーケンサに設けられた応答・割り込み要求パケット転送先アドレス設定レジスタにおける設定の一例を示す説明図、図１２は、図３のＤＭＡ転送シーケンサに設けられたＤＭＡＣ制御アドレスレジスタの設定の一例を示す説明図、図１３は、図６に示した処理におけるフローチャート、図１４は、本発明の実施の形態１による計算システムの他の構成例を示す説明図である。
【００２４】
本実施の形態１において、計算システム１は、図１に示すように、たとえば、パーソナルコンピュータなどからなる複数の計算ノードＮ０〜Ｎ３、およびコミュニケータチップ２〜５から構成されている。
【００２５】
計算ノードＮ０には、コミュニケータチップ２が接続されており、同様に、計算ノードＮ１〜Ｎ３には、コミュニケータチップ３〜５がそれぞれ接続されている。
【００２６】
コミュニケータチップ２〜５は、たとえば、４チャンネルのＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを有しており、計算ノードＮ０〜Ｎ３を結合させるインタフェースであり、該計算ノードＮ０〜Ｎ３にデータ転送を行う。
【００２７】
これらコミュニケータチップ２〜５には、通信手段６〜９それぞれが設けられている。コミュニケータチップ２〜５の通信手段６には、計算ノードＮ０〜Ｎ３がそれぞれ接続されている。
【００２８】
コミュニケータチップ２の通信手段７には、コミュニケータチップ３の通信手段８が接続されており、コミュニケータチップ２の通信手段８には、コミュニケータチップ５の通信手段７が接続されている。
【００２９】
また、コミュニケータチップ３の通信手段７には、コミュニケータチップ４の通信手段８が接続されており、コミュニケータチップ３の通信手段９には、コミュニケータチップ５の通信手段９が接続されている。コミュニケータチップ４の通信手段７には、コミュニケータチップ５の通信手段８が接続されている。
【００３０】
図２は、コミュニケータチップ２のより詳しい構成の一例を示すブロック図である。
【００３１】
コミュニケータチップ２は、図示するように、通信手段６〜９、ＤＭＡ転送シーケンサ１０、オンチップルータ１１、およびメモリ１２を備えた構成となっている。
【００３２】
ＤＭＡ転送制御部となるＤＭＡ転送シーケンサ１０は、ルータ部となるオンチップルータ１１を介して通信手段６〜９に内蔵されたＤＭＡ制御回路６ａ，７ａ，８ａ，９ａに対してアクセスを行うことにより、通信手段６〜９によるＤＭＡ転送を制御する。
【００３３】
ＤＭＡ転送シーケンサ１０は、通信手段６〜９を介して、通信インタフェースを介して接続されたコミュニケータチップ３〜５に内蔵されたＤＭＡ転送シーケンサに対して制御パケットを送信し、該ＤＭＡ転送シーケンサの動作を指定する。
【００３４】
通信手段６〜９は、コミュニケータチップ２、他のコミュニケータチップ３〜５、あるいは計算ノードＮ０〜Ｎ３との間のデータ転送を制御する通信手段であり、前述したようにＤＭＡ（Direct Memory Access）制御回路（ＤＭＡＣ）６ａ，７ａ，８ａ，９ａをそれぞれ内蔵する。
【００３５】
ＤＭＡコントローラであるＤＭＡ制御回路６ａ，７ａ，８ａ，９ａは、ＤＭＡ転送シーケンサ１０に対して、ＤＭＡ転送完了時にＤＭＡ転送が完了したことを示すＤＭＡ終了割込み信号を供給する。オンチップルータ１１は、通信手段６〜９、ＤＭＡ転送シーケンサ１０、およびメモリ１２が相互に行うアクセスを中継する中継回路である。
【００３６】
メモリ１２は、通信手段６〜９が書き込むデータを格納する記憶手段であり、たとえば、ＲＡＭ(Random Access Memory)などによって構成される。なお、メモリ１２は、必ずしもコミュニケータチップに設ける必要はなく、たとえば、コミュニケータチップからアクセスできる外部チップでもよい。
【００３７】
図２では、コミュニケータチップ２の構成例について示したが、コミュニケータチップ３〜５においても、図２と同様の構成となっている。
【００３８】
続いて、ＤＭＡ転送シーケンサについて図面を参照して説明する。
【００３９】
図３は、ＤＭＡ転送シーケンサ１０の構成の一例を示すブロック図である。
【００４０】
ＤＭＡ転送シーケンサ１０は、図示するように、シーケンス制御部１３、イニシエータ制御部１４、レジスタ部１５、ならびにターゲット制御部１６を備えた構成となっている。
【００４１】
シーケンス制御部１３は、通信手段６〜９へのアクセスを行うためのリクエストパケットを生成し、該リクエストパケットをイニシエータ制御部１４に供給する回路である。また、シーケンス制御部１３は、通信手段６〜９からのＤＭＡ終了割り込み信号を取り込む。
【００４２】
イニシエータ制御部１４は、シーケンス制御部１３から供給されるリクエストパケットを、オンチップルータ１１に送信する回路である。レジスタ部１５は、転送元アドレスレジスタ、４つの転送先中継アドレスレジスタ、転送先最終アドレスレジスタ、転送サイズレジスタ、通信手段選択レジスタ、転送先属性レジスタ、４つの制御・割り込み要求パケット転送先アドレス設定レジスタ、４つの応答・割り込み要求パケット転送先アドレス設定レジスタ、および４つのＤＭＡＣ制御アドレスレジスタを含む回路である。
【００４３】
転送元アドレスレジスタは、通信手段６〜９に内蔵されるＤＭＡ制御回路６ａ，７ａ，８ａ，９ａ（図２）がＤＭＡ転送を実行する際に、データを読み出すアドレスの先頭を示す値を格納するためのレジスタである。
【００４４】
転送元アドレスレジスタに格納された値は、ＤＭＡ転送シーケンサが通信手段６〜９のＤＭＡ制御回路６ａ，７ａ，８ａ，９ａを起動するときに、ＤＭＡ転送シーケンサから通信手段６〜９に供給される。
【００４５】
４つの転送先中継アドレスレジスタは、それぞれ通信手段６〜９に内蔵されるＤＭＡ制御回路６ａ，７ａ，８ａ，９ａがＤＭＡ転送を実行するときに、データを書き込むアドレスの先頭を示す値を格納するためのレジスタである。
【００４６】
転送先中継アドレスレジスタに格納された値は、ＤＭＡ転送シーケンサが通信手段６〜９のＤＭＡ制御回路６ａ，７ａ，８ａ，９ａを起動するときに、ＤＭＡ転送シーケンサから通信手段６〜９に供給される。
【００４７】
転送先最終アドレスレジスタは、一連の転送の転送先アドレスの先頭を示す値を格納するためのレジスタである。この転送先最終アドレスレジスタに格納された値は、ＤＭＡ転送シーケンサが通信手段６〜９を介して、ＤＭＡ転送シーケンサ１０に制御パケットを送信するときに、該ＤＭＡ転送シーケンサ１０から通信手段６〜９に供給される。
【００４８】
転送サイズレジスタは、通信手段６〜９に内蔵されるＤＭＡ制御回路６ａ，７ａ，８ａ，９ａがＤＭＡ転送を実行するときに、データの総量を示す値を格納するためのレジスタである。転送サイズレジスタに格納された値は、ＤＭＡ転送シーケンサ１０が通信手段６〜９のＤＭＡ制御回路を起動するときに、ＤＭＡ転送シーケンサ１０から通信手段６〜９に供給される。
【００４９】
４つの制御・割り込み要求パケット転送先アドレス設定レジスタは、ＤＭＡ転送シーケンサ１０が通信手段６〜９を介して、他のＤＭＡ転送シーケンサ１０に制御パケットを送信するときと、ＤＭＡ転送シーケンサ１０が通信手段６〜９に割り込み要求パケットを送信するときのアドレスを格納するレジスタである。
【００５０】
４つの応答・割り込み要求パケット転送先アドレス設定レジスタは、ＤＭＡ転送シーケンサ１０が通信手段６〜９を介して、他のＤＭＡ転送シーケンサ１０に応答パケットを送信するときと、ＤＭＡ転送シーケンサ１０が通信手段６〜９に割り込み要求パケットを送信するときのアドレスを格納するレジスタである。
【００５１】
４つのＤＭＡＣ制御アドレスレジスタは、ＤＭＡ転送シーケンサ１０が通信手段６〜９に内蔵されたＤＭＡ制御回路６ａ，７ａ，８ａ，９ａを制御するときのアドレスを格納するレジスタである。
【００５２】
ターゲット制御部１６は、通信手段６〜９によって行われるＤＭＡ転送シーケンサ１０へのアクセスを受信する回路である。このターゲット制御部１６は、アクセスの内容に応じて、レジスタ部１５に含まれる各レジスタに保持されている値の更新や読み出し、レジスタ部に含まれる各レジスタへのアクセスの有無をシーケンス制御部１３に通知する機能を有する。
【００５３】
続いて、図１の計算ノードＮ０から計算ノードＮ１のアドレスＨ‘１０００００００に、Ｈ’４００バイトのデータを転送するときのコミュニケータチップ２〜５と各計算ノードＮ０，Ｎ１の処理について説明する。
【００５４】
図４は、計算システム１の各機能モジュールとアドレスの関係を示すアドレスマップの一例を示す説明図である。
【００５５】
図示するように、計算ノードＮ０に対してアクセスするときのアドレス範囲は、Ｈ‘００００００００〜Ｈ’００ＦＦＦＦＦＦである。
【００５６】
また、図５は、コミュニケータチップ２〜５におけるオンチップルータ１１のルーティングテーブルの一例を示す説明図である。
【００５７】
図５に示すルーティングテーブルにおいては、アクセス対象に最短距離でアクセスするために、アドレスと通信手段６〜９が関係付けられている。たとえば、コミュニケータチップ２からコミュニケータチップ３のメモリ１２にアクセスする場合であると、最短アクセス経路は、コミュニケータチップ２のオンチップルータ１１、コミュニケータチップ２の通信手段７、コミュニケータチップ３の通信手段８、コミュニケータチップ３のオンチップルータ１１、コミュニケータチップ３のメモリ１２の順であるため、コミュニケータチップ２のオンチップルータ１１は、コミュニケータチップ３のメモリ１２に関連付けられたアドレス領域Ｈ‘１１００００００〜Ｈ’１１ＦＦＦＦＦＦを、コミュニケータチップ２の通信手段７に関連付ける。
【００５８】
図６は、計算ノードＮ０から、コミュニケータチップ２、およびコミュニケータチップ３を経由して計算ノードＮ１にデータを送信するときに、コミュニケータチップ２とコミュニケータチップ３とに含まれる各機能モジュールが実行する処理の一例を示す説明図である。
【００５９】
計算ノード間のデータ転送は、データ転送の起点となる計算ノードＮ０により起動される。転送処理に先立って、各通信手段６〜９とＤＭＡ転送シーケンサ１０の初期設定を行う。
【００６０】
各コミュニケータチップ２，３におけるＤＭＡ転送シーケンサ１０の転送元アドレスレジスタには、各コミュニケータチップのメモリの開始アドレスを設定する。たとえば、コミュニケータチップ２のＤＭＡ転送シーケンサ１０の転送元アドレスレジスタには、該コミュニケータチップ２のメモリアドレスの先頭アドレスであるＨ‘０１００００００を設定する。
【００６１】
図７は、コミュニケータチップ２〜５のＤＭＡ転送シーケンサ１０に設けられた４つの転送先中継アドレスレジスタの設定の一例を示す説明図である。
【００６２】
たとえば、コミュニケータチップ２のＤＭＡ転送シーケンサの転送先中継アドレスレジスタには、該コミュニケータチップ２の通信手段７を介して接続されたコミュニケータチップ３のメモリアドレスの先頭アドレスであるＨ‘１１００００００を設定する。
【００６３】
ＤＭＡ転送シーケンサ１０の通信手段選択レジスタには、アドレスと通信手段の対応関係を設定する。各コミュニケータチップのＤＭＡ転送シーケンサの転送先中継アドレスレジスタＲ０〜Ｒ３には、それぞれ通信手段６〜９を介して接続されたコミュニケータチップのメモリの開始アドレスを設定する。
【００６４】
図８は、コミュニケータチップ２〜５におけるＤＭＡ転送シーケンサ１０の通信手段選択レジスタの設定の一例を示す説明図である。通信手段選択レジスタは、アドレス範囲と通信手段の関係を保持する。
【００６５】
図９は、コミュニケータチップ２〜５におけるＤＭＡ転送シーケンサ１０の転送先属性レジスタの設定の一例を示す説明図である。
【００６６】
転送先属性レジスタは、アドレス範囲と転送先属性の関係を保持する。ここでいう転送先属性とは、アドレスで指定される転送先が、コミュニケータチップであるか計算ノードであるかである。
【００６７】
本実施の形態１において、図１に示したように、各コミュニケータチップ２〜５の通信手段６には、計算ノードＮ０〜Ｎ３がそれぞれ接続され、各コミュニケータチップ２〜５の通信手段７，８，９にはコミュニケータチップ２〜５がそれぞれ接続されるため、図９のように設定する。
【００６８】
図１０は、コミュニケータチップ２〜５におけるＤＭＡ転送シーケンサ１０の制御・割り込み要求パケット転送先アドレス設定レジスタの設定の一例を示す説明図である。
【００６９】
制御・割り込み要求パケット転送先アドレス設定レジスタは、ＤＭＡ転送シーケンサ１０が送信する制御パケットの送信先アドレス、あるいはＤＭＡ転送シーケンサ１０が送信する割り込み要求パケットの送信先アドレスを保持する。
【００７０】
ここでは、図９に設定したように、通信手段６には計算ノードＮ０〜Ｎ３がそれぞれ接続されるため、４つの制御・割り込み要求パケット転送先アドレス設定レジスタのうち、通信手段６に対応する部分には、通信手段６の割り込み要求レジスタのアドレスが設定され、制御・割り込み要求パケット転送先アドレス設定レジスタの通信手段７〜９に対応する部分には、ＤＭＡ転送シーケンサ１０の制御パケット受信アドレスが設定される。
【００７１】
図１１は、コミュニケータチップ２〜５におけるＤＭＡ転送シーケンサ１０の応答・割り込み要求パケット転送先アドレス設定レジスタにおける設定の一例を示す説明図である。
【００７２】
ＤＭＡ転送シーケンサ１０の応答・割り込み要求パケット転送先アドレス設定レジスタは、ＤＭＡ転送シーケンサ１０が送信する応答パケットの送信先アドレスあるいはＤＭＡ転送シーケンサ１０が送信する割り込み要求パケットの送信先アドレスを保持する。
【００７３】
ここでは、図８に示したように、通信手段６には計算ノードＮ０〜Ｎ３がそれぞれ接続されるため、４つの応答・割り込み要求パケット転送先アドレス設定レジスタのうち、通信手段６に対応する部分には、通信手段６の割り込み要求レジスタのアドレスが設定され、応答・割り込み要求パケット転送先アドレス設定レジスタの通信手段７〜９に対応する部分にはＤＭＡ転送シーケンサ１０の応答パケット受信アドレスが設定される。
【００７４】
図１２は、コミュニケータチップ２〜５のＤＭＡ転送シーケンサ１０のＤＭＡＣ制御アドレスレジスタの設定の一例を示す説明図である。
【００７５】
ＤＭＡＣ制御アドレスレジスタは、ＤＭＡ転送シーケンサ１０が通信手段６〜９に内蔵されたＤＭＡ制御回路６ａ，７ａ，８ａ，９ａの制御レジスタにアクセスするときの送信先アドレスを保持する。
【００７６】
次に、図６に示した処理に一例について、図１３のフローチャートを用いてより詳しく説明する。
【００７７】
図６の処理例は、上述したように、計算ノードＮ０から、コミュニケータチップ２、およびコミュニケータチップ３を経由して計算ノードＮ１にデータを送信するときに、コミュニケータチップ２とコミュニケータチップ３とに含まれる各機能モジュールが実行する処理の一例を示している。
【００７８】
まず、計算ノードＮ０は、コミュニケータチップ２のメモリ１２に被転送データを格納する（ステップＳ１０１）。計算ノードＮ０は、コミュニケータチップ２のＤＭＡ転送シーケンサ１０に、制御パケットを送信する。
【００７９】
この制御パケットには、転送先アドレスと転送サイズが含まれる。転送先アドレスは、計算ノードＮ１を示す値であって、コミュニケータチップ２のＤＭＡ転送シーケンサ１０の転送先最終アドレスレジスタに格納され、転送サイズは、ＤＭＡ転送シーケンサ１０の転送サイズレジスタに書き込まれる（ステップＳ１０２）。
【００８０】
コミュニケータチップ２のＤＭＡ転送シーケンサ１０は、制御パケット受信後、コミュニケータチップ２の通信手段７に内蔵されたＤＭＡ制御回路７ａを起動する（ステップＳ１０３）。
【００８１】
このとき、ＤＭＡ転送のソースアドレスは、ＤＭＡ転送シーケンサ１０に含まれる転送元アドレスレジスタの値（Ｈ‘０１００００００）である。ＤＭＡ転送のデスティネーションアドレス、およびサイズは、図７に示したように、それぞれ転送先中継アドレス（Ｈ‘１１００００００）、および転送サイズレジスタ（Ｈ’４００）の値が使用される。
【００８２】
ここで、ＤＭＡ転送の転送先（デスティネーション）アドレスとして、転送先最終アドレスレジスタの値ではなく、転送先中継アドレスレジスタＲ１の値を用いるのは、コミュニケータチップ２による転送は、一連の転送の最終ターゲットである計算ノードＮ１を目指すものではなく、コミュニケータチップ２から通信手段７を介して接続されたコミュニケータチップ３のメモリ１２を目指すものであるためである。
【００８３】
通信手段７のＤＭＡ制御レジスタのアドレスは、ＤＭＡ転送の転送先アドレスに基づいて図１２に示す４つのＤＭＡＣ制御アドレスレジスタより決定する。たとえば、コミュニケータチップ２から計算ノードＮ１への転送は、コミュニケータチップ２の通信手段７を介して行われるため、ＤＭＡ転送シーケンサ１０は、通信手段７のＤＭＡ制御レジスタを示すアドレスを、ＤＭＡＣ制御アドレスレジスタから生成する。
【００８４】
コミュニケータチップ２の通信手段７は、ＤＭＡ転送シーケンサ１０から供給された転送元アドレスからデータを読み出し、読み出されたデータをＤＭＡ転送シーケンサ１０から供給された転送先アドレスに書き込むことを、読み出し、および書き込まれたデータの総量がＤＭＡ転送シーケンサ１０から供給された転送サイズに一致するまで繰り返すことにより、ＤＭＡ転送を行う（ステップＳ１０４）。
【００８５】
コミュニケータチップ２の通信手段７は、ＤＭＡ転送終了時にコミュニケータチップ２のＤＭＡ転送シーケンサ１０に対してＤＭＡ終了割り込み信号を供給し、ＤＭＡ転送の終了を通知する（ステップＳ１０５）。
【００８６】
コミュニケータチップ２のＤＭＡ転送シーケンサ１０は、ＤＭＡ終了割り込み信号が供給された後に、通信手段７のＤＭＡＣ制御レジスタと、ＤＭＡＣステータスレジスタをクリアすることにより、通信手段７からＤＭＡ転送シーケンサへのＤＭＡ終了割り込み信号の供給を停止する。ＤＭＡＣ制御レジスタ、ＤＭＡＣステータスレジスタのクリア処理のためのアドレスは、ステップＳ１０３の処理と同様に、ＤＭＡ転送の転送先アドレスに基づいてＤＭＡ転送シーケンサ１０が決定する（ステップＳ１０６）。
【００８７】
コミュニケータチップ２が送信したデータを受信するチップは、計算ノードではなくコミュニケータチップ３であるため、コミュニケータチップ２のＤＭＡ転送シーケンサ１０は、コミュニケータチップ３のＤＭＡ転送シーケンサ１０に制御パケットを送信する（ステップＳ１０７）。
【００８８】
ＤＭＡ転送シーケンサ１０は、コミュニケータチップ２が送信したデータを受信するチップがコミュニケータチップ３であることを、図９に示した転送先属性レジスタの設定値によって検出する。
【００８９】
この制御パケットには、転送先アドレスと転送サイズとが含まれる。このときの制御パケット送信先アドレスは、ＤＭＡ転送の転送先アドレスに基づいて、４つの転送先中継アドレスレジスタの格納値のうちからＤＭＡ転送シーケンサ１０が選択して決定する。
【００９０】
たとえば、コミュニケータチップ２から計算ノードＮ１への転送の場合、コミュニケータチップ２のＤＭＡ転送シーケンサ１０が送信する制御パケットは、図８に示した通信手段選択レジスタの設定値に基づいて通信手段７に転送される。
【００９１】
このため、図１０の制御・割り込み要求パケット転送先設定レジスタのうち、通信手段７に対応する部分に設定された値（Ｈ‘１６００００００）が制御パケット送信先アドレスとなる。
【００９２】
コミュニケータチップ２のＤＭＡ転送シーケンサ１０は、コミュニケータチップ２の通信手段６の割り込みパケット送信レジスタにライトアクセスを行い、計算ノードＮ０に対する割り込みパケット送信を要求する（ステップＳ１０８）。
【００９３】
割り込みパケット送信により、コミュニケータチップ２のメモリ１２に計算ノードＮ０が書き込んだデータが、コミュニケータチップ３に転送された旨を計算ノードＮ０に通知する。
【００９４】
このとき、ＤＭＡ転送シーケンサ１０が割り込み要求パケットを送信するときのアドレスは、ＤＭＡ転送シーケンサ１０に対して制御パケットを送信したモジュールと、図１０に示した制御・割り込み要求パケット転送先設定レジスタの設定によって決定される。
【００９５】
本実施の形態１では、計算ノードＮ０がコミュニケータチップ２のＤＭＡ転送シーケンサ１０に対して送信した制御パケットは、コミュニケータチップ２の通信手段６を介してＤＭＡ転送シーケンサ１０に転送されるため、コミュニケータチップ２のＤＭＡ転送シーケンサ１０は、４つの応答・割り込み要求パケット転送先設定レジスタの設定の通信手段６に対応する設定値Ｈ‘０２００２０００を割り込み要求パケットの送信先アドレスとする。
【００９６】
コミュニケータチップ２の通信手段６は、計算ノードＮ０に対して割り込みパケットを送信する。計算ノードＮ０は、通信手段６からの割り込みパケットを受信することにより、計算ノードＮ０がコミュニケータチップ２のメモリ１２に格納したデータが、コミュニケータチップ２からコミュニケータチップ３に転送されたことを検出する（ステップＳ１０９）。
【００９７】
コミュニケータチップ３のＤＭＡ転送シーケンサ１０は、コミュニケータチップ２のＤＭＡ転送シーケンサ１０が送信した制御パケットを受信することにより、コミュニケータチップ３の通信手段６に内蔵されたＤＭＡ制御回路６ａを起動する（ステップＳ１１０）。
【００９８】
このとき、ＤＭＡ転送のソースアドレスは、ＤＭＡ転送シーケンサに含まれる転送元アドレスレジスタの値（Ｈ‘１１００００００）である。ＤＭＡ転送のデスティネーションアドレス、およびサイズは、それぞれ転送先アドレス（Ｈ‘１０００００００）、ならびに転送サイズレジスタ（Ｈ’４００）の値が使用される。
【００９９】
ここで、ＤＭＡ転送のデスティネーションアドレスとして、４つの転送先中継アドレスレジスタではなく、転送先最終アドレスレジスタの値を用いるのは、コミュニケータチップ３による転送は、一連の転送の最終ターゲットである計算ノードＮ１を目指すものであるためである。
【０１００】
ＤＭＡ転送シーケンサ１０は、コミュニケータチップ３が送信したデータを受信するチップが計算ノードであることを、図９に示した転送先属性レジスタの設定値によって検出する。
【０１０１】
通信手段６のＤＭＡ制御レジスタのアドレスは、ＤＭＡ転送の転送先アドレスに基づいて、図１２のＤＭＡＣ制御アドレスレジスタより決定する。コミュニケータチップ３から計算ノードＮ１への転送は、コミュニケータチップ３の通信手段６を介して行われるため、ＤＭＡ転送シーケンサは、通信手段６のＤＭＡ制御レジスタを示すアドレスを、ＤＭＡＣ制御アドレスレジスタから生成する。
【０１０２】
コミュニケータチップ３の通信手段６は、ＤＭＡ転送シーケンサ１０から供給された転送元アドレスからデータを読み出し、読み出されたデータをＤＭＡ転送シーケンサ１０から供給された転送先アドレスに書き込むことを、読み出し、および書き込まれたデータの総量がＤＭＡ転送シーケンサ１０から供給された転送サイズに一致するまで繰り返すことにより、ＤＭＡ転送を行う（ステップＳ１１１）。
【０１０３】
コミュニケータチップ３の通信手段６は、ＤＭＡ転送終了時にコミュニケータチップ３のＤＭＡ転送シーケンサ１０に対してＤＭＡ終了割り込み信号を供給し、ＤＭＡ転送の終了を通知する（ステップＳ１１２）。
【０１０４】
コミュニケータチップ３のＤＭＡ転送シーケンサ１０は、ＤＭＡ終了割込み信号が供給された後に、通信手段６のＤＭＡＣ制御レジスタと、ＤＭＡＣステータスレジスタをクリアすることにより、通信手段６からＤＭＡ転送シーケンサ１０へのＤＭＡ終了割り込み信号の供給を停止する。このレジスタのクリア処理のためのアドレスは、ステップＳ１１０の処理と同様に、ＤＭＡ転送の転送先アドレスに基づいてＤＭＡ転送シーケンサが決定する（ステップＳ１１３）。
【０１０５】
コミュニケータチップ３が送信したデータを受信するのは、コミュニケータチップではなく計算ノードであるため、ＤＭＡ転送終了割り込み信号のアサートを検出したコミュニケータチップ３のＤＭＡ転送シーケンサ１０は、コミュニケータチップ３の通信手段６の割り込みパケット送信レジスタにライトアクセスを行い、計算ノードＮ１に対する割り込みパケット送信を要求する（ステップＳ１１４）。割り込みパケット送信により、計算ノードＮ１にデータ転送が完了した旨を通知する。
【０１０６】
このときの割り込み要求パケット送信先アドレスは、ＤＭＡ転送の転送先アドレスに基づいてＤＭＡ転送シーケンサが決定する。たとえば、コミュニケータチップ３から計算ノードＮ１への転送の場合、コミュニケータチップ３のＤＭＡ転送シーケンサが送信する制御パケットは、図８に示した通信手段選択レジスタの設定値に基づいて通信手段６に転送される。
【０１０７】
このため、図１０の制御・割り込み要求パケット転送先設定レジスタのうち、通信手段６に対応する部分に設定された値（Ｈ‘１２００２０００）が割り込み要求パケット送信先アドレスとなる。
【０１０８】
コミュニケータチップ３の通信手段６は、計算ノードＮ１に対して割り込みパケットを送信する（ステップＳ１１５）。
【０１０９】
コミュニケータチップ３のＤＭＡ転送シーケンサ１０は、コミュニケータチップ２のＤＭＡ転送シーケンサ１０に応答パケットを送信する（ステップＳ１１６）。応答パケット送信により、コミュニケータチップ３のメモリ１２にコミュニケータチップ２が書き込んだデータが、計算ノードＮ１への転送された旨をコミュニケータチップ２に通知する。
【０１１０】
このとき、ＤＭＡ転送シーケンサ１０が応答パケットを送信するときのアドレスは、ＤＭＡ転送シーケンサ１０に対して制御パケットを送信したモジュールと、図１１に示した応答・割り込み要求パケット転送先設定レジスタの設定によって決定される。
【０１１１】
本実施の形態１では、コミュニケータチップ３のＤＭＡ転送シーケンサ１０がコミュニケータチップ２のＤＭＡ転送シーケンサ１０に対して送信した応答パケットは、コミュニケータチップ３の通信手段８を介してＤＭＡ転送シーケンサ１０に転送されるため、コミュニケータチップ３のＤＭＡ転送シーケンサ１０は、応答・割り込み要求パケット転送先設定レジスタの設定の通信手段８に対応する設定値Ｈ‘０６０００１００を応答パケットの送信先アドレスとする。
【０１１２】
計算ノードＮ１は、割り込みパケットを受信することにより、計算ノードＮ０から計算ノードＮ１までの一連のＤＭＡによるＤＭＡ転送が完了したことを検出する。以上により、計算ノードＮ０から計算ノードＮ１までのＤＭＡ転送が完了となる。
【０１１３】
このように、計算ノードＮ０から計算ノードＮ１へのデータ転送処理において、コミュニケータチップ２、およびコミュニケータチップ３は、それぞれのチップが内蔵するＤＭＡ転送シーケンサ１０によってＤＭＡ転送処理の起動・停止を行う。
【０１１４】
よって、各コミュニケータチップに、ＣＰＵやそのＣＰＵが実行するソフトウエアを格納するためのメモリなどを不要とすることができる。
【０１１５】
それにより、本実施の形態１によれば、データ転送を転送ＤＭＡ転送シーケンサ１０を用いて行うことにより、計算ノードＮ０〜Ｎ３間のデータ転送性能を大幅に向上させながら、コストを低減することができる。
【０１１６】
また、本実施の形態１においては、計算ノードＮ０〜Ｎ３を４つのコミュニケータチップ２〜５を介して接続した計算システム１について記載したが、これら計算ノードの数、およびコミュニケータチップの数は、５つ以上、あるいは３つ以下であってもよい。
【０１１７】
図１４は、計算システム１の他の構成例を示す説明図である。
【０１１８】
この場合、計算システム１は、計算ノードＮ０〜Ｎ１５、およびコミュニケータチップ１７〜３２から構成されている。コミュニケータチップ１７〜３２には、図１と同様に、通信手段６〜９がそれぞれ設けられている。
【０１１９】
コミュニケータチップ１７〜３２の通信手段６には、計算ノードＮ０〜Ｎ１５がそれぞれ接続されている。コミュニケータチップ１７，２０，２１，２４，２５，２８，２９，３２の通信手段７には、コミュニケータチップ１８，１９，２２，２３，２６，２７，３０，３１の通信手段８がそれぞれ接続されている。
【０１２０】
コミュニケータチップ１７の通信手段９には、コミュニケータチップ３１の通信手段９が接続されており、コミュニケータチップ１８の通信手段９には、コミュニケータチップ３２の通信手段９が接続されている。
【０１２１】
コミュニケータチップ１７の通信手段８には、コミュニケータチップ１９の通信手段７が接続されており、コミュニケータチップ１９の通信手段９には、コミュニケータチップ２１の通信手段９が接続されている。
【０１２２】
コミュニケータチップ２１の通信手段８には、コミュニケータチップ２３の通信手段７が接続されており、コミュニケータチップ１８の通信手段７には、コミュニケータチップ２０の通信手段８が接続されている。
【０１２３】
コミュニケータチップ２０の通信手段９には、コミュニケータチップ２２の通信手段９が接続されており、コミュニケータチップ２２の通信手段７には、コミュニケータチップ２４の通信手段８が接続されている。
【０１２４】
コミュニケータチップ２５の通信手段８には、コミュニケータチップ２７の通信手段７が接続されており、コミュニケータチップ２７の通信手段９には、コミュニケータチップ２９の通信手段９が接続されている。
【０１２５】
コミュニケータチップ２９の通信手段８には、コミュニケータチップ３１の通信手段７が接続されており、コミュニケータチップ２６の通信手段７には、コミュニケータチップ２８の通信手段８が接続されている。
【０１２６】
コミュニケータチップ２８の通信手段９には、コミュニケータチップ３０の通信手段９が接続されており、コミュニケータチップ３０の通信手段７には、コミュニケータチップ３２の通信手段８が接続されている。
【０１２７】
また、コミュニケータチップ１７〜３２の内部構成は、図２と同様であり、これらコミュニケータチップ１７〜３２の動作についても、図１３と同様であるので、説明は省略する。
【０１２８】
（実施の形態２）
図１５は、本発明の実施の形態２による計算システムの各機能モジュールとアドレスの関係を示すアドレスマップである。
【０１２９】
本実施の形態２においては、前記実施の形態１の計算システム１（図１）において、複数のＤＭＡ転送を同時に処理する際の一例を示す。
【０１３０】
この場合、あるＤＭＡ転送の過程で、各コミュニケータチップのメモリに格納されたデータが、別のＤＭＡ転送によって破壊されることがないように、コミュニケータチップのメモリの管理を行う必要がある。
【０１３１】
そこで、本実施の形態２では、各コミュニケータチップ２〜５（図１）のメモリ１２（図２）をそれぞれ１６個の領域に分割して管理するものとする。この場合、前記実施の形態１の図４に示した計算システム１の各機能モジュールとアドレスの関係を示すアドレスマップにおいて、各コミュニケータチップに内蔵されたメモリに対応付けられたアドレス領域を、図１５に示すように１６分割する。
【０１３２】
各コミュニケータチップには、ＤＭＡ転送シーケンサ１０（図２）を１６個搭載する。そして、各ＤＭＡ転送シーケンサ１０の転送先中継アドレスレジスタには、各ＤＭＡ転送シーケンサ１０が通信手段のＤＭＡ制御回路に行わせるＤＭＡ転送のソースアドレスが、ＤＭＡ転送シーケンサ毎に異なるようにする。
【０１３３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１３４】
たとえば、前記実施の形態１では、計算ノードＮ０から、コミュニケータチップ２、およびコミュニケータチップ３を経由して計算ノードＮ１にデータを転送する例について記載したが、１つのコミュニケータチップ２を介して任意の計算ノード間にデータ転送を行う構成であってもよい。
【０１３５】
図１６は、計算ノードＮ０から、コミュニケータチップ２を経由して計算ノードＮ１にデータを転送する処理の一例を示したフローチャートである。
【０１３６】
この場合、図１６におけるステップＳ２０１〜Ｓ２０９の処理が、図１３のステップＳ１０１〜Ｓ１０９の処理と同様の処理であるので、説明は省略する。
【産業上の利用可能性】
【０１３７】
本発明は、複数の計算機を並列接続する際のインタフェースとして用いられる半導体集積回路装置におけるデータ転送技術に適している。
【符号の説明】
【０１３８】
１  計算システム
２  コミュニケータチップ
３  コミュニケータチップ
４  コミュニケータチップ
５  コミュニケータチップ
６  通信手段
６ａ  ＤＭＡ制御回路
７  通信手段
７ａ  ＤＭＡ制御回路
８  通信手段
８ａ  ＤＭＡ制御回路
９  通信手段
９ａ  ＤＭＡ制御回路
１０  ＤＭＡ転送シーケンサ
１１  オンチップルータ
１２  メモリ
１３  シーケンス制御部
１４  イニシエータ制御部
１５  レジスタ部
１６  ターゲット制御部
１７〜３２  コミュニケータチップ
Ｎ０  計算ノード
Ｎ１  計算ノード
Ｎ２  計算ノード
Ｎ３  計算ノード
【図１】
2012027671.tif 000003
【図２】
2012027671.tif 000004
【図３】
2012027671.tif 000005
【図４】
2012027671.tif 000006
【図５】
2012027671.tif 000007
【図６】
2012027671.tif 000008
【図７】
2012027671.tif 000009
【図８】
2012027671.tif 000010
【図９】
2012027671.tif 000011
【図１０】
2012027671.tif 000012
【図１１】
2012027671.tif 000013
【図１２】
2012027671.tif 000014
【図１３】
2012027671.tif 000015
【図１４】
2012027671.tif 000016
【図１５】
2012027671.tif 000017
【図１６】
2012027671.tif 000018