(57)【特許請求の範囲】
【請求項１】
メインプロセッサから、パラレル設定可能なノードを介して複数のサブプロセッサにデータを転送する方法であって、
該メインプロセッサが、最小ホップ数を各々が与える複数のマルチキャストツリーを予め記憶しており、該サブプロセッサの接続可能数から該ノードのポート数を決定すると共に、該ポート数に対応した該最小ホップ数のマルチキャストツリーを選択し、このマルチキャストツリーにおいて、該最小ホップ数でグループ化された各グループ内で該最小ホップ数を維持するように決定されたパスに沿って該ノードを介して各サブプロセッサに所定のデータを転送することを特徴とした方法。
【請求項２】
メインプロセッサと、
パラレル設定可能なノードと、
該ノードを介して該メインプロセッサに接続される複数のサブプロセッサと、を備え、
該メインプロセッサが、最小ホップ数を各々が与える複数のマルチキャストツリーを予め記憶しており、該サブプロセッサの接続可能数から該ノードのポート数を決定すると共に、該ポート数に対応した該最小ホップ数のマルチキャストツリーを選択し、このマルチキャストツリーにおいて、該最小ホップ数でグループ化された各グループ内で該最小ホップ数を維持するように決定されたパスに沿って該ノードを介して各サブプロセッサに所定のデータを転送することを特徴としたデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送方法及び装置に関し、特に伝送装置等のプロセッサのファームウェアおよびデータを旧版から新版へ更新する際のソフトウェア・ダウンロード方法及びこれを用いた装置に関するものである。
【０００２】
近年のネットワーク・システムにおいては、各地域に分散するプロセッサに対してファームウェアを旧版から新版へ更新する際、監視端末からの遠隔操作によるダウンロード機能が要求されている。
このため、各プロセッサに不揮発性の読み書き可能なメモリデバイスを持たせ、これにファームウェア・プログラムやデータベース等を書き込むようなソフトウェア・ダウンロード機能が提供されている。
【０００３】
今後、システムの複雑化とともにダウンロード対象のファームウェア数およびファームウェアのプログラムサイズも増加する傾向にあるため、旧版から新版への更新を円滑に実行し、装置の立ち上げ時間を短縮する必要がある。
【０００４】
【従来の技術】
図15は、従来のデータ転送方法及びこれを用いた装置としてのマルチプロセッサシステムを概念的に示したものである。
この例において、メインプロセッサ1は、n個のサブプロセッサ3_1〜3_n（以下、符号「3」で総称することがある。）に、片方向設定ノードとしてのリピータハブ5_1, 5_21〜5_2p-1（以下、符号「5」で総称することがある。）を介して例えば100BASE-FXにより接続されている。
【０００５】
すなわち、メインプロセッサ1は、ポート数pを有するリピータハブ5_1からｐ-1個のリピータハブ5に接続され、そして、これらのリピータハブ5は、さらにそれぞれp−1個のサブプロセッサに接続されており、以ってリピータハブ5は全体でn個のサブプロセッサ3に接続されている。
【０００６】
そして、メインプロセッサ1は、各サブプロセッサ3の運用状態を、自局に内蔵するデータベースから参照し、接続されている監視端末4からのダウンロード要求コマンドを受けて、運用中または運用予定のサブプロセッサ3へダウンロードを行う。
【０００７】
図16は、このような従来のマルチプロセッサシステムにおけるデータ転送のシーケンスが示されている。なお、この図では、サブプロセッサ31及び32のみを例示し、また図15に示したリピータハブ5は説明の便宜上省略されている。
まず、メインプロセッサ1は、監視端末4からファイル転送要求S20またはダウンロード要求S21を受けると、内蔵しているメモリデバイス6のRAMディスクに対してデータ書込S22を行う。
【０００８】
これに応答して、メモリデバイス6のRAMディスクはデータ読出S23をメインプロセッサ1に対して行うと共に、データ書込S24をメモリデバイス6のフラッシュメモリに対して行い、さらにRAMディスクからFTPデータ転送S25を例えばサブプロセッサ3_1にまず行う。そして、このFTPデータ転送の完了通知S26を同様にしてサブプロセッサ3_1に送る。
【０００９】
サブプロセッサ3_1では、そのCPUからフラッシュメモリに対してデータ書込S27を行うと、フラッシュメモリからサムチェックS28がCPUに返される。これと共に、フラッシュメモリはFTPデータ転送の結果がOKである通知S29をメインプロセッサ1に対して行う。
【００１０】
同様にして、メインプロセッサ1のメモリデバイス6は、別のサブプロセッサ3_2に対しても、FTPデータ転送S30を行い、FTPデータ転送完了通知S31をサブプロセッサ3_2のCPUに送ると、サブプロセッサ3_2のCPUはそのフラッシュメモリに対してデータ書込S32を行うと共に、上記と同様にサムチェックS33をCPUに返し、このFTPデータ転送の結果通知S34をサブプロセッサ3_2のCPUからメインプロセッサ1に送る。
【００１１】
このように、FTPデータ転送技術を用いて、メインプロセッサ1からサブプロセッサ3へポイント−ポイントでデータ転送している。
一方、データをダウンロード（転送）する際、ブロードキャスト(UDP)送信により複数のサブプロセッサに同時にダウンロードを行う方法があるが、この方法では、UDPのプロトコルでは送達確認ができないため、結局、アプリケーションレベルでの送達確認の処理が必要となり、またUDPではパケットの特性上、TCPに比べて信頼性が低いから使用することはできない。
【００１２】
従って上記のように、ポイント-ポイントでデータ転送することになる。
【００１３】
【発明が解決しようとする課題】
このように、メインプロセッサから複数のサブプロセッサへポイント−ポイントでデータ転送しているが、この場合にメインプロセッサのCPUの処理能力が高く、LAN回線の転送レートも非常に高い場合は問題ないが、安価なメインプロセッサを使用してコスト削減するような場合には、サブプロセッサの数が多い程全てのサブプロセッサに対してのダウンロードが終了するまでに膨大な時間を要してしまう。
【００１４】
例えば、100Kbpsで2Mバイトのデータを176台のサブプロセッサに対してダウンロードする場合、1サブプロセッサあたり約20秒かかり、全サブプロセッサの転送には、単純計算で58分(約1時間)が必要となる。
このようにダウンロードに膨大な時間がかかるため、顧客へのサービス提供が遅れ、ビジネスチャンスを逸してしまうという問題があった。
【００１５】
従って本発明は、メインプロセッサから複数のサブプロセッサへデータ転送する方法及びこの方法を用いた装置において、安価なプロセッサを使用しても、データ転送に要する時間を大幅に削減できるようにすることを目的とする。
【００１６】
【課題を解決するための手段】
上記の目的を達成するため、本発明では、メインプロセッサから、パラレル設定可能なノードを介して複数のサブプロセッサにデータを転送する方法であって、該メインプロセッサが、最小ホップ数を各々が与える複数のマルチキャストツリーを予め記憶しており、該サブプロセッサの接続可能数から該ノードのポート数を決定すると共に、該ポート数に対応した該最小ホップ数のマルチキャストツリーを選択し、このマルチキャストツリーにおいて、該最小ホップ数でグループ化された各グループ内で該最小ホップ数を維持するように決定されたパスに沿って該ノードを介して各サブプロセッサに所定のデータを転送することを特徴とした方法が提供される。
【００１７】
また、本発明では、メインプロセッサと、パラレル設定可能なノードと、該ノードを介して該メインプロセッサに接続される複数のサブプロセッサと、を備え、該メインプロセッサが、最小ホップ数を各々が与える複数のマルチキャストツリーを予め記憶しており、該サブプロセッサの接続可能数から該ノードのポート数を決定すると共に、該ポート数に対応した該最小ホップ数のマルチキャストツリーを選択し、このマルチキャストツリーにおいて、該最小ホップ数でグループ化された各グループ内で該最小ホップ数を維持するように決定されたパスに沿って該ノードを介して各サブプロセッサに所定のデータを転送することを特徴としたデータ転送装置が提供される。
【００１９】
今、上記のサブプロセッサの接続可能数をNとし、該ポート数をpとすると、該最大サブプロセッサ数Nmaxが、(p-1)2で２n（nは自然数）に一番近い数であり、該グループ数Ngrが(log2Nmax)+1であり、各グループ内のサブプロセッサ数Nsubが２**(log2Nmax-グループ番号)(**はべき乗を示す)であればよい。
【００２０】
さらに、上記のメインプロセッサは、各グループ毎にサブプロセッサのアクセス順序を決めておき、該ノードを経由したメインプロセッサ−サブプロセッサ間及びサブプロセッサ同士間のパスを決定することができる。
さらに、上記のノードとしてスイッチングハブを用いることができる。
【００２１】
図1には、上記の本発明に係るデータ転送方法を実現する装置としてのマルチプロセッサシステムの概念構成が示されている。この図1の概念構成は、図15に示した従来例の概念構成と比較すると分かるように、リピータハブ5_1, 5_21〜5_2p-1の代わりに、それぞれノードとしてのスイッチングハブ2_1, 2_21〜2_2p-1（以下、符号「2」で総称することがある。）を用いている点が異なっている。
【００２２】
すなわち、このスイッチングハブ2は、ストア・フォワード専用方式のパラレル設定可能なノードであるため、複数のポート間で転送を行う場合に互いに影響されることがないという特徴があり、メインプロセッサ1からサブプロセッサ3への転送を、スイッチングハブ経由でパラレル処理することにより、データ転送時間を短縮するものである。
【００２３】
図1に示す概念構成を分かり易くするため、図2に示すマルチプロセッサシステムでは、ポート数p=5のスイッチングハブ2_1の1つのポートをメインプロセッサ1に接続し、同じくポート数p=5のスイッチングハブ2_21〜2_24の各1つのポートをそのスイッチングハブ2_1の残りのp-1個のポートに接続する。
【００２４】
そして各スイッチングハブ2_21〜2_24の残りの4個のポートには、それぞれ4台のサブプロセッサ3_1〜3_4, 3_5〜3_8, 3_9〜3_12,及び3_13〜3_16がそれぞれ接続され、最終的に5個のスイッチングハブを用いて16台のサブプロセッサを接続している。
【００２５】
このような構成において、本発明の特徴である、メインプロセッサ1が、サブプロセッサ3の接続可能数からノード（スイッチングハブ）2のポート数を決定し、該ポート数に対応した最小ホップ数のマルチキャストツリーを選択し、このマルチキャストツリーに沿って各サブプロセッサ3に所定のデータを転送することについて、以下に図を参照して説明する。
【００２６】
まず、図2に示したマルチプロセッサシステムから、データ転送を実際に行うためのマルチキャストツリーがどのように選択されるかを説明する。
メインプロセッサ1は、図3のフローチャートに示すように、監視端末4からのダウンロードコマンド(COPY-MEMコマンド)などのソフトウエアダウンロ−ド指示を受けると（ステップS1）、メインプロセッサ1内のデータベースを検索する（ステップS2）。
【００２７】
このデータベースには、図4に示すような種々の数のサブプロセッサから成るマルチキャストツリーが予め格納されており、以下のステップS3〜S5により、これらのマルチキャストの最も好ましいものが選択されることになる。なお、図中の数字はデータ転送のホップ数を示している。
【００２８】
マルチキャストツリーの選択及びグループ数の算出（ステップS3）
図4(1)〜(3)…に示す各マルチキャストツリーは、サブプロセッサ数2n（nは自然数）に応じて全てのツリー構造の中でそれぞれ最もホップ数（グループ数）が少なく好ましいもの（ダウンロード時間が少ないもの）として選択されたものである。
【００２９】
例えば、同図(1)に示すように、サブプロセッサ数が8台(n=3)の場合には4つのグループに分け、第1のグループは4台で構成し、このグループ内では2回のデータ転送で済み、第2のグループでは1回のデータ転送で済む。また第3及び第4のグループではメインプロセッサ1から直接それぞれ1回のデータ転送が行われるだけである。
【００３０】
従って、この場合にはデータ転送を行う回数、すなわちホップ数は“4”となる。
同様にして、同図(2)に示すようにサブプロセッサ数が16台(n=4)の場合には、5つのグループに分け、第1のグループは3回のデータ転送で済み、第2のグループは2回のデータ転送で済み、そして第3のグループは1回のデータ転送で済む。第4及び第5のグループは同図(1)の場合と同様にメインプロセッサ1から直接それぞれ1回データ転送を受けるだけである。
【００３１】
また、同図(3)に示すように、サブプロセッサ数が32台(n=5)の場合には、6つのグループに分け、第1のグループは4回のデータ転送で済み、第2のグループは3回のデータ転送、第3のグループは2回のデータ転送、第4のグループは1回のデータ転送で済む事になる。第5及び第6のグループは上記と同様にそれぞれ1回ずつである。
なお、最後のグループにおいては、常にデータ転送回数及びサブプロセッサの数は固定値“1”である。
【００３２】
このように、ホップ数とグループ数とは対応している。
このようなマルチキャストツリーをどのように選択するかを示したものが図5のフローチャートである。
まず、メインプロセッサ1は局データより、接続可能なサブプロセッサ数Nを検索する（ステップS11）。なお、図4に示したマルチキャストツリーを構成するサブプロセッサ数Nmaxが2nであり、実際にメインプロセッサ1が接続可能なサブプロセッサ3の台数Nとは異なる場合が当然存在する。これについては後述する。
【００３３】
次に、スイッチングハブ2のポート数pを初期値=1に設定し（ステップS12）、ステップS13でN＞(p−1)2であるか否かを判定し、“yes”の場合にはポート数pを“1”だけインクリメント（ステップS14）するが、“no”の場合には、N=(p−1)2であることが判明したので、この時のポート数pを(p−1)2に代入して一番近い最大サブプロセッサ数Nmax=2nを検索する（ステップS15）。
【００３４】
すなわち、これらのステップS12〜S15においては、図示の例の如く、▲１▼N＝16の場合には、(p−1)2=(5−1)2=16で、ポート数P=5となり、この場合一番近い最大サブプロセッサ数Nmax=2nは16で最初に設定したサブプロセッサ数Nと一致する。
一方、▲２▼N=196の場合には、(p−1)2=(15−1)2=196で、p=15となるので、この場合のサブプロセッサ数Nmax=2nは128＜Nmax＜256であるが、より多い方として最大値=256が必要であり、最初に設定したサブプロセッサ数Nより大きな値（小さくなることはない。）になる。
【００３５】
このようにして最大のサブプロセッサ数Nmaxが求められると、これに該当するマルチキャストツリーを図4に示した種々のマルチキャストツリーの中から選択する。
すなわち、サブプロセッサ数=8の場合には、Nmax=8のツリーを選択し（ステップS16）、サブプロセッサ数=16の場合にはNmax=16のマルチキャストツリーを選択し（ステップS17）、サブプロセッサ数=32の場合にはNmax=32のマルチキャストツリーを選択し、同様にしてサブプロセッサ数が2nの場合には、Nmax=2nのマルチキャストツリーを選択することになる（ステップS18）。
【００３６】
そしてこのようにして選択されたマルチキャストツリーにおいて、上記のNmaxの値からグループ数Ngr及び各グループのプロセッサ数Nsubを図示の算出式により求めることができる。
この結果、例えばサブプロセッサ数=8の場合にはグループ数Ngr=4となり、この各グループのサブプロセッサ数はNsub=4, 2, 1, 1となり、図4(1)に示したサブプロセッサ数Nmax=8の場合と一致することが分かる。なお、いずれのグループにおいても、最後のグループについては常に“1”が固定値として与えられるのでグループ数=ホップ数となる。
【００３７】
グループ化検索（ステップS4）
上記のようにマルチキャストツリーの選択とグループ数、及び各グループのサブプロセッサ数の算出を行った後、今度は図6に示すグループ化を行う。
ここでは、上記のようにマルチキャストホップ数でグループ化されたサブプロセッサを算出したグループ数Ngrと各グループ内のサブプロセッサ数Nsubが既に算出されているので、選択したマルチキャストツリーのプロセッサ数Nmaxの値に従い、各グループ毎にサブプロセッサを点線で示すようにサブプロセッサ3_1〜3_16までシーケンシャルにこのサブプロセッサ番号を割り当てて行く。
【００３８】
すなわち、この図6のグループ化概念図に対応する図4(2)においては、16台のサブプロセッサがホップ毎に数字で示されているだけであるが、図6では、これらの各グループの各サブプロセッサが、図2に例示したマルチプロセッサシステムにおけるサブプロセッサのどこに該当するのかをハントしながら決定している。
【００３９】
サブプロセッサのパス接続（ステップS5）
図6に示したように、図4(2)に示すサブプロセッサと図2に示すサブプロセッサとの対応関係を決めた後、今度はどのような順序でデータ転送（ソフトウエアダウンロード）を行うかを決める必要があり、図7はこのような場合のパス接続の概念を示したものである。
【００４０】
すなわち、図7の例では、まずメインプロセッサ1からスイッチングハブ2_1及び2_21を経由してサブプロセッサ3_1にデータ転送を行う。これが第1ホップである。
データ転送を受けたサブプロセッサ3_1は、スイッチングハブ2_21を経由してサブプロセッサ3_2に対してデータ転送を行う。これと同時に、メインプロセッサ1はスイッチングハブ2_1及び2_23を経由してサブプロセッサ3_9にデータ転送を行う。これが第2ホップであり、2台のサブプロセッサに同時にデータ転送が行われる。
【００４１】
第3ホップでは、データ転送を受けたサブプロセッサ3_2が、スイッチングハブ2_21を経由してサブプロセッサ3_3に対しデータ転送を行い、これと同時にサブプロセッサ3_1がスイッチングハブ2_21, 2_1,及び2_22を経由してサブプロセッサ3_6に対してデータ転送を行う。さらに、サブプロセッサ3_9はスイッチングハブ2_23を経由してサブプロセッサ3_10にデータ転送を行い、さらにメインプロセッサ1はスイッチングハブ2_1及び2_24を経由してサブプロセッサ3_13にデータ転送を行う。従って、第3ホップでは4台のサブプロセッサに同時にデータ転送が行われる。
【００４２】
第4ホップにおいては、サブプロセッサ3_3からスイッチングハブ2_21を経由してサブプロセッサ3_4にデータ転送が行われ、サブプロセッサ3_2からスイッチングハブ2_21, 2_1,及び2_22を経由してサブプロセッサ3_5にデータ転送が行われ、サブプロセッサ3_6からスイッチングハブ2_22を経由してサブプロセッサ3_7にデータ転送が行われ、サブプロセッサ3_1からスイッチングハブ2_21, 2_1,及び2_22を経由してサブプロセッサ3_8にデータ転送が行われる。さらに、サブプロセッサ3_10からスイッチングハブ2_23を経由してサブプロセッサ3_11にデータ転送が行われ、サブプロセッサ3_9からスイッチングハブ2_23を経由してサブプロセッサ3_12へデータ転送が行われる。そして、サブプロセッサ3_13からスイッチングハブ2_24を経由してサブプロセッサ3_14にデータ転送が行われ、さらにメインプロセッサ1からスイッチングハブ2_1及び2_24を経由してサブプロセッサ3_15へデータ転送が行われる。従って第4ホップでは8台のサブプロセッサにデータ転送が同時に行われることになる。
【００４３】
そして最後の第5ホップにおいては、メインプロセッサ1からスイッチングハブ2_1及び2_24を経由してサブプロセッサ3_16にデータ転送が行われる。
このようにして、全てのデータ転送が5回で終了することになる。
このようにデータ転送の手順が決まった後、メインプロセッサ1はデータの転送（ダウンロード）を実行する（ステップS6）。
【００４４】
このようなデータ転送方法及び装置により、メインプロセッサの処理能力が高くなくても、各サブプロセッサにこの処理を分散させ、本発明によるパス接続を使用すれば従来の方法及び装置より転送方法を格段に高速化させることが可能となる。
【００４５】
【発明の実施の形態】
図8は、図7に示すように、メインプロセッサ1が各サブプロセッサ3に対してパス接続を行った後、データの転送をする際のフォーマットを示したものである。この転送データはメインプロセッサからサブプロセッサへの転送データまたはサブプロセッサからサブプロセッサへの転送データのいずれも配信するものであり、両者の区別は、フォーマットの番号“0”に記載されている“Notification Code”（通知情報種別）により判別が可能になっている。その他、“Sequence ID”（シーケンスNO.；01h〜64h）、“FromCPU”（送信元プロセッサ；0001h〜00B0h：Subプロセッサ00FEh：メインプロセッサ）、“To CPU”（送信先プロセッサ；0001h〜00B0h：Subプロセッサ00FEh：メインプロセッサ）、“User Information”（ユーザー判別情報）、“Frame Page”（フレームページ番号）、“Total Frame Page”（総フレームページ数）、そして“data”（データ部；パス情報他、各種データ転送）で構成されている。
【００４６】
図9は、本発明に係るデータ転送方法を実現する装置としてのマルチプロセッサシステムにおけるメインプロセッサ1とサブプロセッサ3のソフトウエア構成例を示したものである。
まずメインプロセッサ1においては、CPY-MEMコマンド処理構造11として、CPY-MEMコマンド処理部12と構成計算部13とグループ作成部14とパス作成部15とサブプロセッサ通信部16と送信データ作成部17とデータ送信部18とを有しており、グループ作成部14及びサブプロセッサ通信部16はパス/マップデータ19を保有し、パス作成部15はグループデータ20を保有し、そして送信データ作成部17及びデータ送信部18は送信データ21を保有している。
【００４７】
サブプロセッサ3においては、CPY-MEMコマンド処理構造31として、CPY-MEMコマンド処理部32とメイン/サブプロセッサ通信部33とデータ送信部34とデータ受信部35とを有し、プロセッサ通信部33はパス/マップデータ36及びグループデータ37を保有し、データ送信部34は送信データ38を保有し、そしてデータ受信部35は受信データ39を保有している。
【００４８】
なお、図4に示したマルチキャストツリーはパス/マップデータ19及び36に予め格納されている。また、コマンド処理部12及び32は点線で示すように上記の全てのデータの処理に関っている。
図10は、メインプロセッサ1が各サブプロセッサ3にデータ転送を行う時のシーケンス例を示したものである。この転送シーケンスは、図16に示した従来例の転送シーケンスにおいて、メインプロセッサ1のメモリデバイス6から各サブプロセッサ3へFTPデータ転送を行うステップS41及びFTPデータ転送完了通知ステップS42の代わりに、例えばサブプロセッサ3_1からサブプロセッサ3_2に対してFTPデータ転送（ステップS30）を行い、且つFTPデータ転送完了通知（ステップS31）を行う点が異なっている。
【００４９】
すなわち、従来例においてはメインプロセッサから全てのサブプロセッサに対してダウンロードを行っていたが、本発明ではサブプロセッサから受信したグループデータ及びパスデータに従って該当するサブプロセッサにダウンロードを実施するようにしている点が異なっている。但し、ダウンロード処理結果については従来通りメインプロセッサに通知を返信する（ステップS29, S34）。
【００５０】
図11〜図14は、サブプロセッサが64台の場合のデータ転送を扱った実施例を示している。
この実施例においても、まず図11に示すように、メインプロセッサ1内のデータベースを基に、図3のステップS3、すなわち図5に示したツリー選択及びグループ数及び各グループのサブプロセッサ数の算出を行う。
【００５１】
そして、この情報を基に図12に示すグループ化を、図6と同様に実施する。
そして、図13に示すようにパスツリーを図3のステップS5、すなわち図7と同様に実施してパス接続を行う。
図14には、メインプロセッサ1からサブプロセッサ3へ、及びサブプロセッサ3からサブプロセッサ3へのデータの送受信タイミングが示されている。すなわち各サブプロセッサ3は図13に示したパスに従い、受信したデータをさらに次のサブプロセッサへ転送する。このように受信と送信を繰り返すが、末端のサブプロセッサについては受信のみで送信を行わない場合がある。
【００５２】
この結果、サブプロセッサ64台でのCPU占有率はおよそ26%となり、大きく負荷分散されることが分かる。
また、この例では、サブプロセッサ3_1の負荷が一番高くなっており、定常的に他のタスク処理などにより、付加が非常に高いことが事前に判明している場合は、上記のステップS3〜S5のデータ転送を実施した後に、休んでいるサブプロセッサへその役割を交換する処理を行うこともできる（パスの入れ換え）ため、性能の最適化を事前に予測する措置を講じることが可能となる。
【００５３】
（付記１）
メインプロセッサから、パラレル設定可能なノードを介して複数のサブプロセッサにデータを転送する方法であって、
該メインプロセッサが、該サブプロセッサの接続可能数から該ノードのポート数を決定し、該ポート数に対応した最小ホップ数のマルチキャストツリーを選択し、該マルチキャストツリーに沿って各サブプロセッサに所定のデータを転送することを特徴とした方法。
【００５４】
（付記２）付記1において、
該メインプロセッサが、最小ホップ数を与える複数のマルチキャストツリーを予め記憶しており、該ポート数により決定される最大サブプロセッサ数を有する一つの該マルチキャストツリーを選択し、該マルチキャストツリーをさらに、該ホップ数でグループ化し、各グループ内のパスを決定することを特徴とした方法。
【００５５】
（付記３）付記2において、
該サブプロセッサの接続可能数をNとし、該ポート数をpとすると、該最大サブプロセッサ数Nmaxが(p-1)2で与えられる2n（nは自然数）に一番近い最大数であり、該グループ化の数Ngrが(log2Nmax)+1であり、各グループ内のサブプロセッサ数Nsubが2**(log2Nmax-グループ番号)(**はべき乗を示す)であることを特徴とした方法。
【００５６】
（付記４）付記1から3のいずれか一つにおいて、
該メインプロセッサが、各グループ毎にサブプロセッサのアクセス順序を決めておき、該ノードを経由したメインプロセッサ−サブプロセッサ間及びサブプロセッサ同士間のパスを決定することを特徴とした方法。
【００５７】
（付記５）付記1から4のいずれか一つにおいて、
該ノードが、スイッチングハブであることを特徴とした方法。
（付記６）
メインプロセッサと、
パラレル設定可能なノードと、
該ノードを介して該メインプロセッサに接続される複数のサブプロセッサと、を備え、
該メインプロセッサが、該サブプロセッサの接続可能数から該ノードのポート数を決定し、該ポート数に対応した最小ホップ数のマルチキャストツリーを選択し、該マルチキャストツリーに沿って各サブプロセッサに所定のデータを転送することを特徴としたデータ転送装置。
【００５８】
（付記７）付記６において、
該メインプロセッサが、最小ホップ数を与える複数のマルチキャストツリーを予め記憶しており、該ポート数により決定される最大サブプロセッサ数を有する一つの該マルチキャストツリーを選択し、該マルチキャストツリーをさらに、該ホップ数でグループ化し、各グループ内のパスを決定することを特徴としたデータ転送装置。
【００５９】
（付記８）付記7において、
該サブプロセッサの接続可能数をNとし、該ポート数をpとすると、該最大サブプロセッサ数Nmaxが(p-1)2で与えられる2n（nは自然数）に一番近い最大数であり、該グループ化の数Ngrが(log2Nmax)+1であり、各グループ内のサブプロセッサ数Nsubが２**(log2Nmax-グループ番号)(**はべき乗を示す)であることを特徴としたデータ転送装置。
【００６０】
（付記９）付記6から8のいずれか一つにおいて、
該メインプロセッサが、各グループ毎にサブプロセッサのアクセス順序を決めておき、該ノードを経由したメインプロセッサ−サブプロセッサ間及びサブプロセッサ同士間のパスを決定することを特徴としたデータ転送装置。
【００６１】
（付記１０）付記6から9のいずれか一つにおいて、
該ノードが、スイッチングハブであることを特徴としたデータ転送装置。
【００６２】
【発明の効果】
以上述べたように本発明に係るデータ転送方法及び装置によれば、以下のような効果が得られる。
【００６３】
(1)本発明を採用することにより、従来例よりデータをダウンロードする時間を、大幅に短縮することができる。これは、サブプロセッサの数が多くなればなるほど効果を発揮する。
従来例と本発明を比べると下記のようになり（ホップ数で示す）、その効果が大きいことが分かる。
・サブプロサセッサ数=16個→従来例=16ホップ、 本発明=5ホップ→3.2倍
・サブプロサセッサ数=32個→従来例=32ホップ、 本発明=7ホップ→4.5倍
・サブプロサセッサ数=64個→従来例=64ホップ、 本発明=9ホップ→7.1倍
・サブプロサセッサ数=n 個→〜以降、上記の如く指数関数的に処理能力が向上する。
【図面の簡単な説明】
【図１】本発明に係るデータ方法及び装置の概念構成を示したブロック図である。
【図２】図1に示した概念構成において16台のサブプロセッサを用いた場合のマルチプロセッサシステムを示したブロック図である。
【図３】本発明に係るデータ転送方法及び装置の概念動作を示したフローチャート図である。
【図４】本発明に係るデータ転送方法及び装置に用いるマルチキャストツリーの一般化概念を示したブロック図である。
【図５】本発明に係るデータ転送方法及び装置においてツリー選択及びグループ数算出を行う場合の概念を示したフローチャート図である。
【図６】本発明に係るデータ転送方法及び装置におけるグループ化の概念を示した図である。
【図７】本発明に係るデータ転送方法及び装置におけるパス接続の概念を示した図である。
【図８】本発明に係るデータ転送方法および装置におけるメインプロセッサとサブプロセッサ間のデータ転送時のフォーマットを示した図である。
【図９】本発明に係るデータ転送方法及び装置に用いられるメインプロセッサとサブプロセッサのソフトウエア構成例を示したブロック図である。
【図１０】本発明に係るデータ転送方法及び装置におけるデータ転送シーケンス例を示した図である。
【図１１】本発明に係るデータ転送方法及び装置において64台のサブプロセッサを用いた場合のグループ数の算出例を示した図である。
【図１２】図12のマルチキャストツリーにおけるグループ化を示した図である。
【図１３】図13におけるグループ化の後、パス接続を行った例を示した図である。
【図１４】図14におけるパス接続を行った後のデータの送信/受信タイミングを示した図である。
【図１５】従来例の概念構成例を示したブロック図である。
【図１６】従来例のデータ転送シーケンスを示した図である。
【符号の説明】
1  メインプロセッサ
2（2_1, 2_21〜2_2P-1）ノード（スイッチングハブ）
3（3_1〜3_n）サブプロセッサ
4  監視端末
図中、同一符号は同一又は相当部分を示す。
【図１】
0003986316.tif 000002
【図２】
0003986316.tif 000003
【図３】
0003986316.tif 000004
【図４】
0003986316.tif 000005
【図５】
0003986316.tif 000006
【図６】
0003986316.tif 000007
【図７】
0003986316.tif 000008
【図８】
0003986316.tif 000009
【図９】
0003986316.tif 000010
【図１０】
0003986316.tif 000011
【図１１】
0003986316.tif 000012
【図１２】
0003986316.tif 000013
【図１３】
0003986316.tif 000014
【図１４】
0003986316.tif 000015
【図１５】
0003986316.tif 000016
【図１６】
0003986316.tif 000017