(57)【要約】      （修正有）【課題】複数のデータ処理ステージ間をバス接続した構成においても、処理効率を極力低下させることなくＰＥ間の同期が可能なデータ処理装置を提供する。【解決手段】各ＤＳＰステージ１に、複数のＰＥ３，ステージメモリ４及びイベントコントローラ５を備え、ＤＳＰステージ間をスロッテッドバスにより接続する。コントローラには、ＰＥからの処理完了イベント及び外部イベントが入力され、各イベントに応じて自ステージ１内のＰＥにタスク開始イベントを発生させる。アクセスポイント７は、ＰＥのステージメモリ４への書込みの履歴をアクセステーブル３３に記憶させ、ＰＥはステージメモリ４への一連のＭＡ（メモリアクセス）が終了したことを示すＥＡ（イベントアクセス）を実行する。ＥＡが行われると、テーブル３３の履歴に基づき、ＭＡが行われたステージメモリ４が属するステージ１のコントローラ５に処理完了イベントを入力するためのＥＡを実行する。【選択図】図１
2015185000.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッシングエレメント（３），１つ以上のステージメモリ（４）及びイベントコントローラ（５）からなる複数のデータ処理ステージ（１）と、
これら複数のデータ処理ステージ間を接続し、データ書き込み専用であるステージ間バス（２）とを備えて構成され、
自データ処理ステージ内の前記プロセッシングエレメントと前記ステージメモリとは、データ読み込み専用バス（６）で接続され、
前記プロセッシングエレメントと前記ステージ間バスとは、データ書き込み専用バス（８）で接続され、
前記イベントコントローラには、前記プロセッシングエレメントからの処理完了イベント及び外部において発生した外部イベントが入力され、
前記イベントコントローラは、前記入力される各イベントに応じて、自データ処理ステージ内のプロセッシングエレメントに対してタスク開始イベントを発生させ、
前記複数のデータ処理ステージと前記ステージ間バスとは、それぞれアクセスポイント（７）を介して接続されており、
前記アクセスポイントは、アクセステーブルを備え、前記プロセッシングエレメントが前記ステージメモリにデータの書き込み（以下、メモリアクセスと称す）を行うと、その書込みの履歴を前記アクセステーブルに記憶させ、
前記プロセッシングエレメントは、前記アクセスポイントを介して前記ステージメモリに一連のメモリアクセスを行った後に、そのメモリアクセスが終了したことを示すためのイベントアクセスを実行し、
前記アクセスポイントは、前記イベントアクセスが行われると、前記アクセステーブルに記憶されている履歴に基づき、前記メモリアクセスが行われたステージメモリが属するデータ処理ステージのイベントコントローラに、前記処理完了イベントを入力するためのイベントアクセスを実行することを特徴とするデータ処理装置。
【請求項２】
前記プロセッシングエレメントが行うイベントアクセスは、特定のアドレスに対する書き込み処理として実行されることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記アクセスポイントは、前記イベントアクセスが行われた際に、対応するプロセッシングエレメントが複数のステージメモリについてメモリアクセスを行っていると、それらに対応するデータ処理ステージに、順次イベントアクセスを行うことを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
各アクセスポイントは、前記複数のデータ処理ステージにイベントアクセスを行う際に、全てのデータ処理ステージにアクセスするための経路長が最短となるものを選択することを特徴とする請求項３記載のデータ処理装置。
【請求項５】
前記アクセスポイント及び前記ステージ間バスにより双方向バスが構成されており、且つ、前記メモリアクセスが行われているステージメモリの少なくとも１つが自データ処理ステージを起点とする一方向側にあり、少なくとも他の１つが他方向側にあると、
前記アクセスポイントは、自データ処理ステージを起点とする双方向にイベントアクセスを行うことを特徴とする請求項４記載のデータ処理装置。
【請求項６】
前記アクセスポイントは、他のアクセスポイントへのデータ転送が不能なビジー状態にある際に、前記メモリアクセス又は前記イベントアクセスが発生すると、それらのアクセスの発生を一時的に記憶するためのバッファ（４２）を備え、
同じデータ処理ステージ内のプロセッシングエレメントによるイベントアクセスが複数発生した際に、前記バッファに記憶されているメモリアクセスと、前記複数のイベントアクセスとの順序関係が変化しなければ、前記複数のイベントアクセスを統合して実行することを特徴とする請求項１から５の何れか一項に記載のデータ処理装置。
【請求項７】
前記複数のイベントアクセスの統合は、プロセッシングエレメント（ｉ）が先にイベントアクセス（ｉ）を、プロセッシングエレメント（ｊ；ｉ，ｊは任意の異なるステージ番号）が後にイベントアクセス（ｊ）を実行した際に、ビジー中にプロセッシングエレメント（ｊ）のメモリアクセスが発生していなければ、イベントアクセス（ｉ）にイベントアクセス（ｊ）を統合して実行することを特徴とする請求項６記載のデータ処理装置。
【請求項８】
前記複数のイベントアクセスの統合は、プロセッシングエレメント（ｉ）が先にイベントアクセス（ｉ）を、プロセッシングエレメント（ｊ；ｉ，ｊは任意の異なるステージ番号）が後にイベントアクセス（ｊ）を実行した際に、ビジー中にプロセッシングエレメント（ｉ）のメモリアクセスが発生していなければ、イベントアクセス（ｊ）にイベントアクセス（ｉ）を統合して実行することを特徴とする請求項６又は７記載のデータ処理装置。
【請求項９】
前記アクセスポイントは、前記ビジー状態が継続されている時間を計測し、前記ビジー状態の継続時間が一定時間以内であることを条件に、イベントアクセス（ｊ）にイベントアクセス（ｉ）を統合することを特徴とする請求項８記載のデータ処理装置。
【請求項１０】
前記複数のデータ処理ステージは、１つの上位階層を成すネットワークノードを構成しており、
前記ネットワークノードを複数用意し、それら複数のネットワークノード間を接続することで、上位階層ネットワークが構成されていることを特徴とする請求項１から９の何れか一項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上のプロセッシングエレメントを有する複数のデータ処理ステージ間を、バスにより接続してなるデータ処理装置に関する。
【背景技術】
【０００２】
複数のプロセッサがバスを介して相互に接続される分散共有メモリ（Non-Uniform Memory Access,ＮＵＭＡ）型構成のマルチコアシステムにおいては、個々のプロセッサが並列に処理を行うために、プロセッサ間において処理の同期をとる必要がある。プロセッサ間において同期をとるための技術は従来様々提案されており、例えば共有変数を用いた同期方式や（特許文献１）バリアを用いた同期方式（特許文献２）等がある。また、非同期的に発生するイベントを効率よく処理するため、メッセージを用いた同期方式も提案されている（特許文献３）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−３１２１６０号公報
【特許文献２】特開２０１３−１３７８３３号公報
【特許文献３】特開平７−２３７８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＮＵＭＡ型構成のシステムにおいて、共有変数やバリアを用いた同期方式を採用すると、複数のコアが共有変数やバリアレジスタにアクセスすることになる。したがって、コア数が増加するのに応じて処理効率が低下することになる。また、メッセージを送受信して同期をとる方式もコア数の増加に伴い同期制御が複雑化するため、同様に処理効率の低下に繋がる。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、複数のデータ処理ステージ間をバスにより接続した構成においても、処理効率を極力低下させることなくプロセッシングエレメント間の同期をとることが可能なデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のデータ処理装置によれば、各データ処理ステージに、１つ以上のプロセッシングエレメント，１つ以上のステージメモリ及びイベントコントローラを備え、複数のデータ処理ステージ間を、データ書き込み専用である双方向のステージ間バスにより接続する。自データ処理ステージ内において、プロセッシングエレメントとステージメモリとはデータ読み込み専用バスで接続され、プロセッシングエレメントとステージ間バスとは、データ書き込み専用バスで接続される。イベントコントローラには、プロセッシングエレメントからの処理完了イベント及び外部において発生した外部イベントが入力される。そして、イベントコントローラは、入力される各イベントに応じて、自データ処理ステージ内のプロセッシングエレメントに対してタスク開始イベントを発生させる。
【０００７】
また、複数のデータ処理ステージとステージ間バスとは、それぞれアクセスポイントを介して接続され、そのアクセスポイントは、プロセッシングエレメントがステージメモリにデータの書き込み（メモリアクセス）を行うと、その書込みの履歴をアクセステーブルに記憶させる。プロセッシングエレメントは、アクセスポイントを介してステージメモリに一連のメモリアクセスを行った後に、そのメモリアクセスが終了したことを示すためのイベントアクセスを実行する。
【０００８】
そして、アクセスポイントは、前記イベントアクセスが行われると、アクセステーブルに記憶されている履歴に基づき、メモリアクセスが行われたステージメモリが属するデータ処理ステージのイベントコントローラに、処理完了イベントを入力するためのイベントアクセスを実行する。これにより、イベントコントローラは、対応するプロセッシングエレメントに前述したタスク開始イベントを発生させる。
【０００９】
したがって、異なるデータ処理ステージ間において、プロセッシングエレメントがそれぞれ行う処理の同期を効率的に行うことができる。また、各アクセスポイントは、実際にプロセッシングエレメントによるメモリアクセスが行われたデータ処理ステージについてのみイベントアクセスを行うので、ステージ間バスの使用を最小限に抑制し、当該バスの帯域を有効に使用して処理効率を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態であり、データ処理装置の構成を示す機能ブロック図
【図２】アクセスポイントの構成を示す図
【図３】イベントコントローラの構成を示す図
【図４】ホスト及びＰＥによる一連の処理を示すフローチャート
【図５】アクセステーブルの一例を示す図
【図６】ＥＡデータフォーマットの一例を示す図
【図７】２つのＰＥがＭＡ及びＥＡを行う場合を示すタイミングチャート
【図８】ＰＥがＭＡ及びＥＡを行う場合に出力される、バスアドレス空間上のアドレスを示す図（その１）
【図９】ＰＥがＭＡ及びＥＡを行う場合に出力される、バスアドレス空間上のアドレスを示す図（その２）
【図１０】ＰＥがＭＡを行う場合に出力される、ＰＥアドレス空間上のアドレスを示す図
【図１１】ＰＥがＥＡを行う場合に出力される、ＰＥアドレス空間上のアドレスを示す図
【図１２】第２実施形態であり、同一のＰＥが複数のステージメモリにＭＡを行った場合のアクセステーブルを示す図
【図１３】ＥＡのマルチキャストを説明する図
【図１４】マルチキャストを行う際に使用するＥＡデータフォーマットの一例を示す図
【図１５】マルチキャストに対応したＲＸＣの処理手順を示すフローチャート
【図１６】第３実施形態であり、スロッテッドバスにおいて双方向にマルチキャストを行う例を示す図
【図１７】各ステージにＥＡを行うためのホップ数を示す図
【図１８】第４実施形態であり、単方向リングバスにおいてマルチキャストを行う例を示す図
【図１９】各ステージにＥＡを行うためのホップ数を示す図
【図２０】第５実施形態であり、双方向リングバスにおいてマルチキャストを行う例を示す図
【図２１】各ステージにＥＡを行うためのホップ数を示す図
【図２２】第６実施形態であり、ＴＸＣの構成を要部に付いて示す機能ブロック図
【図２３】複数のＥＡをマージする処理を示すタイミングチャート
【図２４】第７実施形態を示す図２３相当図
【図２５】第８実施形態を示す図２３相当図
【図２６】第９実施形態であり、第６〜第８実施形態の処理をそれぞれのケースに応じて実行し分けるための処理手順を示すフローチャート
【図２７】第１０実施形態であり、第１実施形態の構成に対応したネットワークを示す図
【図２８】ネットワークの階層を２段階にした場合の図２７相当図
【図２９】図２８の一例を示す図１相当図
【図３０】図２９の構成を、モデル化して示す図
【発明を実施するための形態】
【００１１】
（第１実施形態）
図１に示すように、本実施形態のデータ処理装置は、複数のＤＳＰ（Digital Signal Processing）ステージ１（１，２，…，Ｎ）を、双方向のスロッテッドバス２（１，２，…，Ｎ−１）により接続した構成である。各ＤＳＰステージ１（データ処理ステージ）は、複数のＰＥ３（１，２，…，ｎ）と、ステージメモリ４と、イベントコントローラ（ＥＶＴＣ）５とを備えている。各ＰＥ３とステージメモリ４とは、データ読み出し専用バス６を介して接続されている。尚、ＰＥ３は、例えばＤＳＰで構成されている。
【００１２】
各ＤＳＰステージ１は、アクセスポイント７を介してスロッテッドバス２（ステージ間バス）に接続されており、各ＰＥ３とアクセスポイント７とは、データ書き込み専用バス８を介して接続されている。また、アクセスポイント７とステージメモリ４とは、データ書き込み専用バス９を介して接続されている。スロッテッドバス２は、データを図中右方向に転送するための右方向バス２Ｒと、その右方向バス２Ｒとは独立して、データを図中左方向に転送するための左方向バス２Ｌとを備えている。
【００１３】
アクセスポイント７は、ＴＸＣ（送信コントローラ）３１，ＲＸＣ（受信コントローラ）３２及びアクセステーブル３３を備えている。ＴＸＣ３１は、データ書き込み専用バス８に接続されていると共にアクセステーブル３３に接続されており、ＲＸＣ３２は、データ書き込み専用バス９に接続されていると共に、データ書き込み専用バス１０を介してイベントコントローラ５に接続されている。
【００１４】
ＤＳＰステージ１（２）に対応するアクセスポイント７（２）は、入力バッファ１１（Ｌ，Ｒ），出力バッファ１４（Ｌ，Ｒ）を備えている。図中左隣のアクセスポイント７（１）より入力バッファ１１Ｌを介して入力されたデータは、出力バッファ１４Ｒを介して右隣の図示しないアクセスポイント７（３）に出力可能となっている。また、前記アクセスポイント７（３）より入力バッファ１１Ｒを介して入力されたデータは、出力バッファ１４Ｌを介してアクセスポイント７（１）に出力可能となっている。そして、ＴＸＣ３１の出力端子及びＲＸＣ３２の入力端子は、入力バッファ１１（Ｌ，Ｒ）の出力端子及び出力バッファ１４（Ｌ，Ｒ）の入力端子にそれぞれ接続されている。
【００１５】
また、アクセスポイント７（１）は、入力バッファ１１Ｒ，出力バッファ１４Ｒのみを備えており、アクセスポイント７（Ｎ）は、図示しないが入力バッファ１１Ｌ，出力バッファ１４Ｌのみを備えている。また、図示しないアクセスポイント７（３）〜７（Ｎ−１）は、アクセスポイント７（２）と同様の構成である。このように、スロッテッドバス２がアクセスポイント７を介して接続されることで、双方向リングバスが構成されている。
【００１６】
図２に示すように、アクセスポイント７（２）は、３つのデータ入力ポート及び３つのデータ出力ポートを備えており、それらに対応して３つの入力バッファ１１（Ｓ，Ｌ，Ｒ）及びデータラッチ１２（Ｓ，Ｌ，Ｒ）と、３つのマルチプレクサ１３（Ｓ，Ｌ，Ｒ）及び３つの出力バッファ１４（Ｓ，Ｌ，Ｒ）とを備えている。
【００１７】
ＤＳＰステージ１の書き込み専用バス８を介して入力されるデータは、入力バッファ１１Ｓを介してデータラッチ１２Ｓにラッチされ、データラッチ１２Ｓの出力端子は、３入力マルチプレクサ１３（Ｓ，Ｌ，Ｒ）の入力端子の１つに接続されている。図中の左側に接続されるスロッテッドバス２Ｒより入力されるデータは、入力バッファ１１Ｌを介してデータラッチ１２Ｌにラッチされ、データラッチ１２Ｌの出力端子は、右方向バス１５Ｒを介してマルチプレクサ１３（Ｓ，Ｌ，Ｒ）の入力端子の他の１つに接続されている。
【００１８】
図中の右側に接続されるスロッテッドバス２Ｌより入力されるデータは、入力バッファ１１Ｒを介してデータラッチ１２Ｒにラッチされ、データラッチ１２Ｒの出力端子は、左方向バス１５Ｌを介してマルチプレクサ１３（Ｓ，Ｌ，Ｒ）の入力端子の残りの１つに接続されている。そして、マルチプレクサ１３（Ｓ，Ｌ，Ｒ）の出力端子は、出力バッファ１４（Ｓ，Ｌ，Ｒ）の入力端子にそれぞれ接続されている。
【００１９】
出力バッファ１４（Ｓ，Ｌ，Ｒ）の出力端子は、ＤＳＰステージ１の書き込み専用バス９，アクセスポイント７の左側に接続されるスロッテッドバス２Ｌ，同右側に接続されるスロッテッドバス２Ｒに接続されている。尚、データラッチ１２のラッチ制御，マルチプレクサ１３の選択制御及び出力バッファ１４のイネーブル制御は、アクセスポイント７のデータ制御部（図示せず）によって行われる。入力されたデータを出力する方向は、当該データに付随するアドレスに応じて決定される。
【００２０】
以上の構成により、ＰＥ３が書き込み専用バス８に出力したデータは、マルチプレクサ１３Ｒ及び出力バッファ１４Ｒを介して右方向のスロッテッドバス２Ｒに出力可能であり、また、マルチプレクサ１３Ｌ及び出力バッファ１４Ｌを介して左方向のスロッテッドバス２Ｌに出力可能である。更に、マルチプレクサ１３Ｓ及び出力バッファ１４Ｌを介して、ＤＳＰステージ１の書き込み専用バス９にも出力可能であり、各ＰＥ３は、この経路で、自ＤＳＰステージ１のステージメモリ４にデータを書き込むことができる。
【００２１】
また、アクセスポイント４を介してデータを出力しようとした際に、他のステージ等が行う書込みとの衝突が発生した場合には、例えばラウンドロビンなどの調停方法により決定された優先順位に従い、データが順次出力される。
ここで、データラッチ１２Ｓ，マルチプレクサ１３Ｒ及び１３Ｌは、ＴＸＣ３１に対応する構成であり、データラッチ１２Ｌ及び１２Ｒ，マルチプレクサ１３Ｓは、ＲＸＣ３２に対応する構成である。
【００２２】
図３に示すように、イベントコントローラ５は、各ＰＥ３（１，２，…，ｎ）毎に設けられているＰＥイベント選択部２１（１，２，…，ｎ）と、完了イベントリスト部２２とを有しており、これらはそれぞれ同数のフリップフロップで構成されている。また、これらと同数のＮＡＮＤゲート２３があり、その入力端子の一方はＰＥイベント選択部２１側のフリップフロップの出力端子に接続され、入力端子の他方（負論理）は完了イベントリスト部２２側のフリップフロップの出力端子に接続されている。前記フリップフロップの入力端子は、ＲＸＣ３２と書き込み専用バス１０を介して接続されている。
【００２３】
そして、各ＮＡＮＤゲートの出力端子は、各ＰＥ３（１，２，…，ｎ）に対応した多入力ＡＮＤゲート２４（１，２，…，ｎ）の入力端子にそれぞれ接続されている。各ＡＮＤゲート２４（１，２，…，ｎ）の出力端子は、それぞれに対応して配置されているフリップフロップ２５（１，２，…，ｎ）の入力端子に接続されている。
【００２４】
各ＰＥ３がそれぞれタスクの処理を開始する際に、他のＰＥが先行して処理しているタスクの完了や、その他の外部イベントが完了している必要があるものを、予めＰＥイベント選択部２１により選択しておく。この選択は、予め後述するホストによって行われる。ここで選択されなかったイベントの出力はローレベルとなるから、対応するＮＡＮＤゲート２３の出力は、対応するイベントが完了せずともハイレベルとなる。一方、選択されたイベントの出力はローレベルとなるから、対応するＮＡＮＤゲート２３の出力は、対応するイベントが完了した際にハイレベルとなる。
【００２５】
したがって、ＰＥ３が予め選択したイベントの全てが完了すると、対応するＡＮＤゲート２４の出力がハイレベルとなり、フリップフロップ２５を介してＰＥ３にイベント開始（タスク開始イベント）が割り込みとして通知される。その通知を受けたＰＥ３は、自身が実行すべきタスクの処理を開始する。
【００２６】
次に、本実施形態の作用について説明する。図４における「ホスト」は、図１に示す「外部モジュール」に相当するもので、各ＤＳＰステージ１におけるＰＥ３によるタスクの実行を統括的に制御するもので、具体的には以降の実施形態において示す。ホストは、各ＤＳＰステージ１のイベントコントローラ５について、各ＰＥ３に対応するＰＥイベント選択部２１により完了待ちするイベントを選択する（Ｈ１）。続いて、各ＤＳＰステージ１の命令メモリ（図示しないが、各ＰＥ３に共通）にプログラムをロードし（Ｈ２）、ステージメモリ４にデータを入力し（Ｈ３）、タスク制御レジスタ（図示しないが、各ＰＥが個別に有している）にレジスタ値をロードする（Ｈ４）。
【００２７】
各ＰＥ３は、それぞれのタスクの実行を開始するイベントの条件が成立するまで待機している（Ｐ１）。選択された他のＰＥ３からの完了イベントが全て発生することで、自身に対してＰＥ開始イベントの割り込みが発生すると（ＹＥＳ）、当該ＰＥ３は自身に割り当てられたタスクの実行を開始する（Ｐ２）。そして、そのタスクの実行を完了すると、タスク完了イベントを発生させる。
【００２８】
前記イベントの発生は、ホストに対して通知される。するとホストは、イベントを発生させたＰＥ３が次に処理すべきタスクがあるか否かを判断し（Ｈ５）、次のタスクがあれば（ＹＥＳ）ステップＨ４に戻り、次に処理すべきタスクを示すレジスタ値を対応するタスク制御レジスタにロードする。一方、次に処理すべきタスクが無ければ（ＮＯ）、対応するＤＳＰステージ１のＰＥ３が次に実行すべきプログラムがあるか否かを判断する（Ｈ６）。前記プログラムがあれば（ＹＥＳ）、対応するＤＳＰステージ１内の全てのＰＥ３がそれぞれのタスクの実行を完了するまで待機し（Ｈ７）、その後ステップＨ２に戻って次のプログラムをロードする。前記プログラムが無ければ（ＮＯ）終了となる。以上が、データ処理装置による一連の処理の流れである。
【００２９】
次に、各ＰＥ３によるステージメモリ４へのメモリアクセス（以下、ＭＡと称す），及びイベントアクセス（以下、ＥＡと称す）について説明する。ＰＥ３は、データを書き込む対象のステージメモリ４にＭＡを行いデータを書き込んだ後にＥＡを行う。図５に示すように、アクセステーブル３３は、ＤＳＰステージ１の番号（１〜Ｎ）とＰＥ３の番号（１〜Ｍ）とのマトリクスで構成されている。例えばＰＥ３（１）がＤＳＰステージ１のメモリ４にアクセスすると、対応するマトリクス要素のフラグが「１」にセットされる。その後、ＰＥ３（１）がＥＡを行うと、前記フラグはＴＸＣ３１により「０」にクリアされる。
【００３０】
ＰＥ３は、予め割り付けられている特定のアドレスに書き込みを行うことでＥＡを実行する。すると、ＴＸＣ３１はアクセステーブル３３を参照し、対応するＰＥ３がその時点までに何れのステージメモリ４にアクセスを行っているかに応じて、図６に示すフォーマットのＥＡデータを発行する。ＥＡデータは例えば３２ビット構成であり、ＭＳＢ側の８ビットでＤＳＰステージ１の番号（１〜Ｎ）を指定し、残りの２４ビットでイベントを発生させるＰＥ３を指定する。すると、対応するＤＳＰステージ１のイベントコントローラ５において、対応するＰＥ３の完了イベントリスト部２２の１つにイベントフラグがセットされる。
【００３１】
図７に示すように、先ずＰＥ３（２）がＤＳＰステージ１（１）のメモリ４にＭＡを行い、次にＰＥ３（１）が同じステージメモリ４にＭＡを行い、続いてＰＥ３（２）が同じステージメモリ４にＭＡを行っている。その後、ＰＥ３（２）がＥＡを行うと、属するＤＳＰステージ１のＴＸＣ３１がアクセステーブル３３を参照する。すると、その時点までにＰＥ３（２）がＭＡを行っていたのはＤＳＰステージ１（１）であることが判るので、ＴＸＣ３１は、ＤＳＰステージ１（１）に対してＥＡを行う（ＥＡデータを発行する）。その結果、ＤＳＰステージ１（１）のイベントコントローラ５における、対応するＰＥ３の完了イベントリスト部２２の１つにイベントフラグがセットされる。その後、ＰＥ３（１）がＥＡを行うと、上記ＰＥ３（２）のケースと同様に処理される。
【００３２】
図８に示すように、ＰＥ３（１）がＤＳＰステージ１（１）のメモリ４にＭＡを行うと、ＴＸＣ３１を介して前記メモリ４に対する書き込みアドレス（バスアドレス空間上のアドレス）が出力され、その後ＰＥ３（１）がＥＡを行うと、ＴＸＣ３１によりＤＳＰステージ１（１）のイベントコントローラ５にアクセスするためのアドレスが出力される。また、図９に示すように、ＰＥ３（１）がＤＳＰステージ１（１）のメモリ４と、ＤＳＰステージ１（２）のメモリ４とにＭＡを行うと、ＴＸＣ３１を介してＤＳＰステージ１（１），１（２）それぞれのメモリ４に対する書き込みアドレスが出力され、その後ＰＥ３（１）がＥＡを行うと、ＴＸＣ３１によりＤＳＰステージ１（１），１（２）それぞれのイベントコントローラ５にアクセスするためのアドレスが出力される。
【００３３】
図１０に示すように、図８に示すケースでＤＳＰステージ１（１）のメモリ４に対する書き込みアドレスが出力されると、ＤＳＰステージ１（１）のＲＸＣ３２を介して、前記メモリ４にデータの書き込みが行われる。また、ＤＳＰステージ１（１）に対するＥＡが行われると、図１１に示すように、前記ＲＸＣ３２を介して、ＤＳＰステージ１（１）のイベントコントローラにおける完了イベントリスト部２２の１つにイベントフラグがセットされる。
【００３４】
以上のように本実施形態によれば、各ＤＳＰステージ１に、複数のＰＥ３，ステージメモリ４及びイベントコントローラ５を備え、複数のＤＳＰステージ１間をスロッテッドバス２により接続する。自ＤＳＰステージ１内において、ＰＥ３とステージメモリ４とを読み込み専用バス６で接続し、ＰＥ３とスロッテッドバス２とを書き込み専用バス８で接続する。イベントコントローラ５には、ＰＥ３からの処理完了イベント及び外部において発生した外部イベントが入力される。そして、イベントコントローラ５は、入力される各イベントに応じて、自ＤＳＰステージ１内のＰＥ３に対してタスク開始イベントを発生させる。
【００３５】
ＰＥ３は、ＤＳＰステージ１内では読み出し専用バス６を介してステージメモリ４から処理対象のデータを読み出して処理し、処理済みのデータを書き込み専用のスロッテッドバス２を介して他のＤＳＰステージ１のメモリ４に書き込むので、ＰＥ３−メモリ４間のデータ転送方向が固定化されている。また、メモリ４のコヒーレンシ管理は、各ＰＥ３が他のＤＳＰステージ１のメモリ４に書き込みを行った後、アクセスポイント７及びイベントコントローラ５を介して前記他のＤＳＰステージ１にイベントを発生させることで行われる。これにより、ハードウェア面積を削減し、且つ処理速度の向上を図ることができる。
【００３６】
更に、データを書き込む方向毎に独立した２つのバスからなる双方向スロッテッドバス２は単方向リングバスに比較して、ソフトウェアのパイプライン処理を行うための構成をより柔軟に構築できる。したがって、同一のハードウェアを用いて多様なアルゴリズムを実現でき、ハードウェアリソースをより効率的に使用することで消費電力を低減することも可能になる。
【００３７】
また、各ＤＳＰステージ１とスロッテッドバス２とを、それぞれアクセスポイント７を介して接続し、アクセスポイント７は、ＰＥ３がステージメモリ４にＭＡを行うと、その書込みの履歴をアクセステーブル３３に記憶させ、ＰＥ３はステージメモリ４に一連のＭＡを行った後、そのＭＡが終了したことを示すためのＥＡを実行する。そして、アクセスポイント７は、ＥＡが行われると、アクセステーブル３３に記憶されている履歴に基づき、ＭＡが行われたステージメモリ４が属するＤＳＰステージ１のイベントコントローラ５に処理完了イベントを入力するためのＥＡを実行する。これにより、イベントコントローラ５は、対応するＰＥ３に前述したタスク開始イベントを発生させる。
【００３８】
したがって、異なるＤＳＰステージ１の間においてＰＥ３がそれぞれ行う処理の同期を効率的に行うことができる。また、各アクセスポイント７は、実際にＰＥ３によるＭＡが行われたＤＳＰステージ１についてのみＥＡを行うので、スロッテッドバス２の使用を最小限に抑制し、当該バス２の帯域を有効に使用して処理効率を向上させることができる。そして、ＰＥ３は、ＥＡを特定のアドレスに対する書き込み処理として実行するので、ＥＡを極めて簡単な処理で実現できる。
【００３９】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図１２に示すように、ＰＥ３（１）がＤＳＰステージ１（１）からＤＳＰステージ１（４）までＭＡを行っていたものとする。この状態でＰＥ３（１）がＥＡを行うと、ＴＸＣ３１は、アクセステーブル３３を参照して、図１３に示すように（図中の丸数字はＤＳＰステージ１の番号を示す）、ＤＳＰステージ１（１）（src）からＤＳＰステージ１（４）（dist）まで順次ＥＡを行う。以降、この処理をマルチキャストと称する。
【００４０】
この場合、実行元ステージ１（１）のＴＸＣ３１は、図１４に示すＥＡデータを送信する。ＭＳＢであるビット３１をマルチキャストフラグの格納領域として用い、マルチキャストを行う際にはフラグ「１」をセットする。そして、ステージＩＤは、実行先の最終ステージ１のＩＤ（図１３のケースでは「４」）を指定する。
【００４１】
図１５に示すように、前記ＥＡデータを受信したステージ１のＲＸＣ３２は、先ずマルチキャストフラグを参照してマルチキャストか否かを判断し（Ｓ１）、マルチキャストでなければ（ＮＯ）その他の受信処理を実行する（Ｓ５）。一方、マルチキャストであれば（ＹＥＳ）、自ステージ１のイベントコントローラ５に対しＥＡを実行する（Ｓ２）。すなわち、ＥＡデータを受信した全てのステージ１のＲＸＣ３２は、ＥＡを実行する。そのＥＡが、イベントコントローラ５を介して自ステージ１のＰＥ３に伝達されるか否かは、事前にＰＥイベント選択部２１で選択されているか否かに応じて決まる。
【００４２】
次に、ＲＸＣ３２は、ＥＡデータで指定されているステージＩＤが自身のＩＤか否かを判断する（Ｓ３）。それが自身のＩＤであれば（ＹＥＳ）、ＥＡデータがマルチキャスト実行先の最終ステージ１まで到達したことを意味するので、その時点で処理を終了する。一方、自身のＩＤでなければ（ＮＯ）、ＥＡデータを自身の次のステージ１に転送してから（Ｓ４）処理を終了する。
【００４３】
以上のように第２実施形態によれば、アクセスポイント７のＴＸＣ３１は、ＥＡが行われた際に、対応するＰＥ３が複数のステージメモリ４についてＭＡを行っていると、それらに対応するＤＳＰステージ１に順次ＥＡを行うマルチキャストを実行する。すなわち、ＰＥ３は、複数のステージメモリ４についてＭＡを行った場合でもＥＡを１度だけ実行すれば良い。
【００４４】
（第３実施形態）
第３実施形態は、第１実施形態のように各ＤＳＰステージ１間がスロッテッドバス２で接続されており、ＥＡの実行元がアクセスポイント７（ＤＳＰステージ１）（４）であり、ＥＡの実行先がアクセスポイント７（２），（３），（５），（８）である場合にマルチキャストを行う例を示す。但し、スロッテッドバス２の両端にはループパスが無く、リングバスとしては構成されていない場合を想定する。この時、アクセスポイント７（４）を起点として、各アクセスポイント７（２），７（３），７（５），７（８）にアクセスするために必要なホップ数（バスの経路数）は、図１７に示すようになる。
【００４５】
したがって、アクセスポイント７（４）のＴＸＣ３１は、図１６に示すようにスロッテッドバス２の左方向においてアクセスポイント７（２）を指定してマルチキャストを行い、右方向においてアクセスポイント７（８）を指定してマルチキャストを行うようにすれば、ホップ数を最小にして全ての実行先のステージ１にＥＡを行うことができる。このようにＥＡの実行元アクセスポイント７を起点として、実行先であるアクセスポイント７について、左右方向のホップ数及びアクセス順序を考慮することで、マルチキャストを完了するために要する時間を最小にする。
【００４６】
以上のように第３実施形態によれば、各アクセスポイント７は、複数のＤＳＰステージ１にＥＡを行う際に、それら全てのＤＳＰステージ１にアクセスするための総経路長が最短となるものを選択する。具体的には、スロッテッドバス２及びアクセスポイント７により双方向バスが構成されており、且つ、ＭＡが行われているステージメモリ４の少なくとも１つが自ＤＳＰステージ１を起点とする一方向側にあり、少なくとも他の１つが他方向側にあると、ＥＡの実行元のアクセスポイント７は、自ＤＳＰステージ１を起点とする双方向にマルチキャストを行うことで、対象とする全てのＤＳＰステージ１にＥＡを行うための総経路長を最短にする。したがって、ＥＡの実行に要する時間を最小にして、処理効率を向上させることができる。
【００４７】
（第４実施形態）
第４実施形態は、第３実施形態のようにスロッテッドバス２を介して接続されているケースとは異なり、図１８に示すように単方向リングバスが構成されており、ＥＡの実行元がアクセスポイント７（１）であり、ＥＡの実行先がアクセスポイント７（２），（３），（５），（６）である場合にマルチキャストを行う例を示す。この時、アクセスポイント７（１）を起点として、各アクセスポイント７（２），７（３），７（５），７（６）にアクセスするために必要なホップ数は、図１９に示すようになる。したがって、アクセスポイント７（１）のＴＸＣ３１は、アクセスポイント７（６）を指定してマルチキャストを行えばよい。
【００４８】
（第５実施形態）
第５実施形態は、図２０に示すように双方向リングバスが構成されており、ＥＡの実行元がアクセスポイント７（１）であり、ＥＡの実行先がアクセスポイント７（２），（３），（７）である場合にマルチキャストを行う例を示す。双方向リングバスでは、あるアクセスポイント７を起点として、他のアクセスポイント７にアクセスするには、右回りの経路（ＣＷ）と左回りの経路（ＣＣＷ）とがある。そして、アクセスポイント７（１）を起点として、それぞれの径路を採ってアクセスポイント７（２），（３），（７）にアクセスするために必要なホップ数は、図２１に示すようになる。
【００４９】
この場合、アクセスポイント７（１）のＴＸＣ３１は、右方向でアクセスポイント７（３）を指定し、左方向でアクセスポイント７（７）を指定してそれぞれマルチキャストを行えばよい。
【００５０】
（第６実施形態）
第６実施形態では、同じＤＳＰステージ１に属する複数のＰＥ３によりＥＡが発生した際に、バス２が使用されている条件に応じて複数のＥＡをマージ（統合）する処理を示す。そのために、ＴＸＣ４１は、図２２に示すように、バッファ４２及びバッファコントローラ４３を備えている。バッファコントローラ４３には、他のステージのＴＸＣ４１がバス２を使用している際に、図示しないバスコントローラより出力されるビジー信号（Bus Busy）が入力されている。
【００５１】
そして、バッファコントローラ４３は、自ステージ１のＰＥ３がＭＡ又はＥＡを行った際にビジー信号がアクティブになっていると、前記ＭＡ又はＥＡをバス２に出力できないので、それをバッファ４２に格納して保持させる。また、バッファコントローラ４３は、バッファ４２に格納されているＭＡ，ＥＡの出力順を変更したり、ＥＡについては、前述したように複数のＥＡを統合するマージ処理を行う。
【００５２】
次に、第６実施形態の作用について説明する。図２３に示すように、ＰＥ３（ｉ），ＰＥ３（ｊ）は同じステージ１に属しており、時点（１）でＰＥ３（ｉ）がステージ１（１）にＭＡを行い（ＭＡ１）、時点（２）でＰＥ３（ｊ）もＭＡ１を行っている。時点（３）でＰＥ３（ｉ）がＥＡを行った際にビジー信号がアクティブになっているので、前記ＥＡはバッファ４２に格納される。続く時点（４）でＰＥ３（ｉ）がＭＡ２を行った際も同じ状況であり、前記ＭＡ２もバッファ４２に格納される。
【００５３】
次の時点（５）でＰＥ３（ｊ）がＥＡを行った際もビジー信号はアクティブであり、前記ＥＡもバッファ４２に格納される。この時、ＴＸＣ４１は、ＰＥ３（ｉ），ＰＥ３（ｊ）がＥＡを行う対象は何れもステージ１（１）であることが、アクセステーブル３３及びバッファ４２から判別できる。したがって、ＴＸＣ４１は、ＰＥ３（ｉ），ＰＥ３（ｊ）のＥＡをマージし、ビジー信号がインアクティブになった後の時点（６）でマージしたＥＡ１を発行する（Buffer Out）。
その後、時点（７）でＰＥ３（ｉ）が時点（４）のＭＡ２に対応するＥＡを行うが、先にバッファ４２に格納されていた前記ＭＡ２が先に行われ（時点（８））、前記ＥＡはその後に行われる（時点（９））。
【００５４】
以上のように第６実施形態によれば、他のアクセスポイント７へのデータ転送が不能なビジー状態にある際にＭＡ又はＥＡが発生すると、それらのアクセスの発生を一時的に記憶するためのバッファ４２を備え、ＴＸＣ４１は、自ステージ１内のＰＥ３によるＥＡが複数発生した際に、バッファ４２に記憶されているＭＡと、前記複数のＥＡとの順序関係が変化しなければ、それら複数のＥＡをマージして実行する。
具体的には、ＰＥ３（ｉ）が先にＥＡを行い、ＰＥ３（ｊ）が後にＥＡを実行した際に、ビジー中にＰＥ３（ｊ）のＭＡが発生していなければ、ＰＥ（ｉ）−ＥＡにＰＥ（ｊ）−ＥＡをマージして実行する。したがって、複数のＥＡを一括して行うことができ、処理効率を向上させることができる。
【００５５】
（第７実施形態）
第７実施形態は、複数のＥＡをマージする別のケースであ。図２４に示すように、時点（１）でＰＥ３（ｉ）がＭＡ１を行い、続いて時点（２）でＥＡを行っているが、この時ビジー信号がアクティブになっている。次に時点（３）でＰＥ３（ｊ）がＭＡ１を行い、続いて時点（４）でＥＡを行っているが、前記ＥＡを開始した直後までビジー信号はアクティブである。この時、バッファ４２では、ＰＥ（ｊ）−ＭＡ１を間に挟んで、その前後にＰＥ（ｉ）−ＥＡ，ＰＥ（ｊ）−ＥＡが格納されている。
【００５６】
すると、ＴＸＣ４１は、ＰＥ（ｉ）−ＥＡの実行を後回しにして先にＰＥ３（ｊ）−ＭＡ１を実行し（時点（５））、ＰＥ（ｉ）−ＥＡは後のＰＥ（ｊ）−ＥＡにマージして一括で実行する（時点（６））。
【００５７】
以上のように第７実施形態によれば、ＰＥ３（ｉ）が先にＥＡを行い、ＰＥ３（ｊ）が後にＥＡを実行した際に、ビジー中にＰＥ３（ｉ）のＭＡが発生していなければ、ＰＥ（ｉ）−ＥＡを後のＰＥ（ｊ）−ＥＡにマージして実行する。この場合も、複数のＥＡを一括して行うことで、処理効率を向上させることができる。
【００５８】
（第８実施形態）
第８実施形態は、第７実施形態と同様のケースについて、先に発行されたＥＡを後に発行されたＥＡにマージするために、ビジー状態の継続時間が一定時間以内であることを条件とした場合である。図２５に示すように、時点（１）〜（３）の実行順は第７実施形態と同様であるが、その後、ビジー信号がアクティブになっている期間が第７実施形態よりも長くなっている。
【００５９】
この時、ＴＸＣ４１は、時点（２）のＰＥ（ｉ）−ＥＡが終了した時点から、ビジー信号のアクティブ期間の計測を開始し、図中に示す「最大遅れ時間」が経過するか否かを監視する。最大遅れ時間が経過する前にＰＥ３（ｊ）がＥＡを開始すれば、第７実施形態と同様にＰＥ（ｉ）−ＥＡをＰＥ（ｊ）−ＥＡにマージして実行する。一方、最大遅れ時間が経過する前にＰＥ３（ｊ）がＥＡを開始しなければ、ビジー状態が解除された直後にＰＥ（ｉ）−ＥＡを実行する（時点（４））。すなわち、このケースでは、マージを行うためにＰＥ（ｉ）−ＥＡの実行待ちを継続すると処理効率を低下させてしまうので、マージによる一括処理を断念する。
【００６０】
以上のように第８実施形態によれば、ＴＸＣ４１は、ビジー状態が継続されている時間を計測し、その継続時間が一定時間以内であることを条件にＰＥ（ｉ）−ＥＡをＰＥ（ｊ）−ＥＡにマージする。したがって、ＥＡをマージする目的で処理待ち時間を浪費することを回避して、処理効率の低下を防止できる。
【００６１】
（第９実施形態）
第９実施形態は、第６〜第８実施形態の処理をそれぞれのケースに応じて実行し分けるための処理手順を示す。図２６において、ＴＸＣ４１は、自ステージ１からのＥＡを受け入れた際に、その時点でバッファ４２内に先方に統合可能である、先立って格納されているＥＡがあれば（Ｓ１１：ＹＥＳ）第６実施形態のようにＰＥ（ｉ）−ＥＡにＰＥ（ｊ）−ＥＡをマージして実行する（Ｓ１２）。
【００６２】
また、バッファ４２内に後方に統合可能である、後で格納されたＥＡがあれば（Ｓ１３：ＹＥＳ）第７実施形態のようにＰＥ（ｉ）−ＥＡをＰＥ（ｊ）−ＥＡにマージして実行する（Ｓ１４）。一方、後方に統合可能なＥＡが無ければ（Ｓ１３：ＮＯ）、最大遅れ時間が経過したか否かを判断し（Ｓ１５）、経過していなければ（ＮＯ）ステップＳ１３に戻る。最大遅れ時間が経過すると（ＹＥＳ）、ＥＡをマージせずにそのまま出力する（Ｓ１６）。
以上のように第９実施形態によれば、その時の処理状況に応じて、第６〜第８実施形態の処理を適切に実行して処理効率を向上させることができる。
【００６３】
（第１０実施形態）
例えば第１実施形態に示すデータ処理装置の構成は、各ＤＳＰステージ１が同じ階層（例えば階層（０））に属するノードとして、バス２を介して接続されることで１階層のネットワークを構成している。第１０実施形態では、図２７に示すような１つのネットワーク自体を１つの、階層（０）のＤＳＰステージと見なし、前記ネットワークに属するＤＳＰステージ１を階層が１つ下（例えば階層（−１））のノードと見なす。そして、図２８に示すように、複数の階層（０）のＤＳＰステージを、階層接続用のアクセスポイント（ＡＰ）で接続することで、より複雑なネットワークを構成する。
【００６４】
例えば図２９に示すように、アクセスポイント７（２）にＤＳＰステージ１（２）を接続する替わりに、ステージ内バス６２を介してアクセスポイント７（２−２），７（２−１）を接続する。そして、それぞれのアクセスポイント７（２−２），７（２−１）には、ＤＳＰステージ１（２−２），１（２−１）が接続されている。
【００６５】
また、図２９の構成を図２８と同様のモデルで示すと図３０のようになる。アクセスポイント７（２）が階層接続用ＡＰとなり、ＤＳＰステージ１（２−２），１（２−１）が階層（−１）のノードとなる。そして、２つのＤＳＰステージ１（２−２），１（２−１）を１つのＤＳＰステージ１（２）と見れば、そのＤＳＰステージ１（２）が階層（０）となる。
【００６６】
尚、図２９では説明を簡単にするため、ＤＳＰステージ１（２）だけを２つのＤＳＰステージ１（２−２），１（２−１）の集合として示したが、同様に、他のＤＳＰステージ１，例えばＤＳＰステージ１（１）等も２つのＤＳＰステージ１（１−２），１（１−１）の集合として構成可能である。階層（−１）のステージをサブステージと称すれば、サブステージは３つ以上あっても良く、そのように拡張して行けば図２８に示すモデルの構成に近付くことになる。
【００６７】
以上のように第１０実施形態によれば、複数のＤＳＰステージ１により１つの上位階層（０）のネットワークノードを構成し、そのネットワークノードを複数用意し、それらのノード間を接続することで上位階層ネットワークを構成したので、より複雑な処理に対応可能なネットワークを構成できる。
【００６８】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
各ＤＳＰステージ１に、ＰＥ３は少なくとも１つあれば良い。また、ステージメモリ４を２つ以上備えても良い。
外部イベントは、ホスト５３が発生させるイベントに限ることはない。
例えばスロッテッドバス２に接続されているＤＳＰステージ１の１つが、ホストの機能を実行しても良い。
【符号の説明】
【００６９】
図面中、１はＤＳＰステージ（データ処理ステージ）、２はスロッテッドバス（ステージ間バス）、３はプロセッシングエレメント、４はステージメモリ、５はイベントコントローラ、６はデータ読み出し専用バス、７はアクセスポイント、８は書き込み専用バスを示す。
【図１】
2015185000.tif 000003
【図２】
2015185000.tif 000004
【図３】
2015185000.tif 000005
【図４】
2015185000.tif 000006
【図５】
2015185000.tif 000007
【図６】
2015185000.tif 000008
【図７】
2015185000.tif 000009
【図８】
2015185000.tif 000010
【図９】
2015185000.tif 000011
【図１０】
2015185000.tif 000012
【図１１】
2015185000.tif 000013
【図１２】
2015185000.tif 000014
【図１３】
2015185000.tif 000015
【図１４】
2015185000.tif 000016
【図１５】
2015185000.tif 000017
【図１６】
2015185000.tif 000018
【図１７】
2015185000.tif 000019
【図１８】
2015185000.tif 000020
【図１９】
2015185000.tif 000021
【図２０】
2015185000.tif 000022
【図２１】
2015185000.tif 000023
【図２２】
2015185000.tif 000024
【図２３】
2015185000.tif 000025
【図２４】
2015185000.tif 000026
【図２５】
2015185000.tif 000027
【図２６】
2015185000.tif 000028
【図２７】
2015185000.tif 000029
【図２８】
2015185000.tif 000030
【図２９】
2015185000.tif 000031
【図３０】
2015185000.tif 000032