(57)【要約】【課題】  並列演算装置にマトリクス配列された処理回路のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードを一般的な動作記述のソースコードから生成する。【解決手段】  事前にデータ登録されている並列演算装置の物理構造などに対応した制約条件により、データ入力される並列演算装置の動作記述のソースコードからＤＦＧを生成してＣＤＦＧにスケジューリングし、ＣＤＦＧからＲＴＬ記述を生成して有限状態マシンをオブジェクトコードに変換するとともにデータパスをネットリストに変換し、ネットリストからコンテキストごとに処理回路のオブジェクトコードを生成する。【選択図】  図１
2006351047.tif 000002
【特許請求の範囲】
【請求項１】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置の動作記述の一連のソースコードから複数の前記処理回路と複数の前記配線回路との順次切り換わる動作サイクルごとの前記動作命令からなるコンテキストを少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置であって、前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、前記ソースコードがデータ入力されるソース入力手段と、このソース入力手段にデータ入力された前記ソースコードから前記制約条件により順次切り換わる動作サイクルごとの前記コンテキストに対応した順次遷移する複数段階の動作状態を検出して前記オブジェクトコードをデータ生成するオブジェクト生成手段と、このオブジェクト生成手段でデータ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段と、を具備しているデータ処理装置。
【請求項２】
前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備しており、前記オブジェクト生成手段は、前記制約条件により前記ソースコードから前記オブジェクトコードをデータ生成するときに前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離する請求項１に記載のデータ処理装置。
【請求項３】
前記オブジェクト生成手段は、前記ソースコードを言語解析してＤＦＧ(Data Flow Graph)をデータ生成するグラフ生成手段と、このグラフ生成手段でデータ生成されたＤＦＧから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたＣＤＦＧ(Control DFG)をデータ生成するスケジュール生成手段と、を具備している請求項１または２に記載のデータ処理装置。
【請求項４】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のＣＤＦＧをソースコードからデータ生成するデータ処理装置であって、前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、前記ソースコードがデータ入力されるソース入力手段と、このソース入力手段にデータ入力される前記ソースコードを言語解析してＤＦＧをデータ生成するグラフ生成手段と、このグラフ生成手段でデータ生成されたＤＦＧから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたＣＤＦＧをデータ生成するスケジュール生成手段と、を具備しているデータ処理装置。
【請求項５】
前記条件記憶手段は、前記制約条件として少なくとも前記処理回路の個数に対応した所定の閾値がデータ登録されており、前記グラフ生成手段は、前記ソースコードから複数のデータ処理が因果関係に対応して連携された前記ＤＦＧをデータ生成し、前記スケジュール生成手段は、前記ＤＦＧの複数の前記データ処理を前記因果関係に対応した順番で複数段階の前記動作状態にスケジューリングし、この動作状態をスケジューリングされる前記データ処理の個数が前記閾値を超過するごとに次段に移行させる請求項３または４に記載のデータ処理装置。
【請求項６】
前記条件記憶手段は、前記制約条件として前記処理回路の処理データのビット数もデータ登録されており、前記グラフ生成手段は、前記ソースコードから前記データ処理に処理データのビット数がデータ設定された前記ＤＦＧをデータ生成し、前記スケジュール生成手段は、前記動作状態ごとにスケジューリングされる前記データ処理に使用される前記処理回路の個数を前記ビット数の比率で算出して前記閾値から減算する請求項５に記載のデータ処理装置。
【請求項７】
前記条件記憶手段は、前記制約条件として前記処理回路と前記配線回路との遅延時間と前記動作サイクルの所要時間とがデータ登録されており、前記スケジュール生成手段は、前記ＤＦＧの複数の前記データ処理を前記因果関係に対応した順番で複数段階の前記動作状態にスケジューリングし、この動作状態をスケジューリングされる前記データ処理に使用される前記処理回路と前記配線回路との遅延時間の累積結果が前記所要時間を超過するごとに次段に移行させる請求項３または４に記載のデータ処理装置。
【請求項８】
前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されていて前記オブジェクトコードの多数の前記コンテキストを所定個数までデータ記憶して対応動作を順次実行するマトリクス回路部と、このマトリクス回路部がデータ記憶した所定個数の前記コンテキストの一つで対応動作を実行している最中に対応動作が実行された前記コンテキストを新規の前記コンテキストにデータ更新する状態管理部と、を別個に具備しており、前記スケジュール生成手段は、前記マトリクス回路部がデータ記憶した所定個数の前記コンテキストの一つで対応動作を実行している最中に対応動作が実行された前記コンテキストを前記状態管理部が新規の前記コンテキストにデータ更新するように前記ＣＤＦＧをデータ生成する請求項３ないし７の何れか一項に記載のデータ処理装置。
【請求項９】
前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備しており、前記スケジュール生成手段でデータ生成された前記ＣＤＦＧから前記制約条件により複数段階の前記動作状態のＲＴＬ(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段も具備している請求項３ないし８の何れか一項に記載のデータ処理装置。
【請求項１０】
前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のＲＴＬ記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路のネットリストをデータ生成するリスト生成手段も具備している請求項９に記載のデータ処理装置。
【請求項１１】
前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備しており、前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のＲＴＬ記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段も具備している請求項９に記載のデータ処理装置。
【請求項１２】
並列演算装置の個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部のネットリストから順次切り換わる複数サイクルのコンテキストごとのオブジェクトコードをデータ生成するデータ処理装置であって、前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、前記処理回路の各種の前記オブジェクトコードが事前にデータ登録されているオブジェクト記憶手段と、前記ネットリストを前記制約条件によりマトリクス配列されている複数の前記処理回路に複数サイクルの前記コンテキストごとに割り付ける処理配置手段と、この処理配置手段で前記処理回路に割り付けられた前記ネットリストを対応する前記オブジェクトコードにデータ変換するコード変換手段と、このコード変換手段でデータ変換された複数の前記処理回路の前記オブジェクトコードをデータ出力するオブジェクト出力手段と、を具備しているデータ処理装置。
【請求項１３】
前記オブジェクト記憶手段は、前記配線回路の各種の前記オブジェクトコードも事前にデータ登録されており、前記コード変換手段でデータ変換された前記処理回路のオブジェクトコードに対応して前記配線回路の前記ネットリストを前記オブジェクトコードにデータ変換する配線変換手段も具備している請求項１２に記載のデータ処理装置。
【請求項１４】
前記並列演算装置は、前記処理回路の各々が処理データを一時保持するレジスタファイルを具備しており、前記処理配置手段は、連続する複数サイクルの前記コンテキストで前記処理データが連携する前記ネットリストを前記マトリクス回路部の一定位置の前記レジスタファイルに共通に割り付ける請求項１３に記載のデータ処理装置。
【請求項１５】
前記処理配置手段は、最初に複数サイクルの前記コンテキストごとに前記処理データの連携に関係なく前記ネットリストを前記レジスタファイルなどに割り付けてから、この割付位置を調整して前記処理データが連携する前記ネットリストが割り付けられた前記レジスタファイルの連続する複数サイクルの前記コンテキストでの位置を一致させる請求項１４に記載のデータ処理装置。
【請求項１６】
前記処理配置手段は、最初に複数サイクルの前記コンテキストで前記処理データが連携する前記ネットリストが共通に割り付けられる前記レジスタファイルの前記マトリクス回路部での位置を固定してから、他の前記ネットリストを他の前記レジスタファイルなどに複数サイクルの前記コンテキストごとに割り付ける請求項１４に記載のデータ処理装置。
【請求項１７】
前記処理配置手段は、最初に複数サイクルの前記コンテキストで前記処理データが連携する前記ネットリストが共通に割り付けられる前記レジスタファイルの前記マトリクス回路部での相対位置を設定してから、この相対位置を維持したまま他の前記ネットリストを他の前記レジスタファイルなどに複数サイクルの前記コンテキストごとに割り付ける請求項１４に記載のデータ処理装置。
【請求項１８】
順次遷移する複数段階の前記動作状態から前記制約条件により一つの前記コンテキストに割り付けられる複数を検出する状態検出手段と、この状態検出手段で検出された複数の前記動作状態を一つの前記コンテキストに割り付ける状態合成手段と、も具備している請求項１ないし１６の何れか一項に記載のデータ処理装置。
【請求項１９】
前記状態検出手段は遷移段階が連続している複数の前記動作状態を検出する請求項１７に記載のデータ処理装置。
【請求項２０】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置の動作記述の一連のソースコードから複数の前記処理回路と複数の前記配線回路との順次切り換わる動作サイクルごとの前記動作命令からなるコンテキストを少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置のデータ処理方法であって、前記ソースコードのデータ入力を受け付けるソース入力工程と、事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により前記ソースコードから順次切り換わる動作サイクルごとの前記コンテキストに対応した順次遷移する複数段階の動作状態を検出して前記オブジェクトコードをデータ生成するオブジェクト生成工程と、このオブジェクト生成工程でデータ生成された前記オブジェクトコードをデータ出力するオブジェクト出力工程と、を具備しているデータ処理方法。
【請求項２１】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のＣＤＦＧをソースコードからデータ生成するデータ処理装置のデータ処理方法であって、前記ソースコードがデータ入力されるソース入力工程と、このソース入力工程でデータ入力された前記ソースコードを言語解析してＤＦＧをデータ生成するグラフ生成工程と、このグラフ生成工程でデータ生成されたＤＦＧから事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により複数段階の前記動作状態をスケジューリングしたＣＤＦＧをデータ生成するスケジュール生成工程と、を具備しているデータ処理方法。
【請求項２２】
処理データのビット数が相互に相違する複数種類の回路資源を各々が具備していて個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のＲＴＬ記述から前記回路資源のネットリストをデータ生成するデータ処理装置のデータ処理方法であって、前記並列演算装置のＲＴＬ記述がデータ入力される記述入力工程と、事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により前記ＲＴＬ記述から前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成工程と、このリスト生成工程でデータ生成された前記ネットリストをデータ出力するリスト出力工程と、を具備しているデータ処理方法。
【請求項２３】
並列演算装置の個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部のネットリストから順次切り換わる複数サイクルのコンテキストごとのオブジェクトコードをデータ生成するデータ処理装置のデータ処理方法であって、事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により前記ネットリストをマトリクス配列されている複数の前記処理回路に複数サイクルの前記コンテキストごとに割り付ける処理配置工程と、この処理配置工程で前記処理回路に割り付けられた前記ネットリストを事前にデータ登録されている各種の前記オブジェクトコードに選択的にデータ変換するコード変換工程と、このコード変換手段でデータ変換された複数の前記処理回路の前記オブジェクトコードをデータ出力するオブジェクト出力工程と、を具備しているデータ処理方法。
【請求項２４】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置の動作記述の一連のソースコードから複数の前記処理回路と複数の前記配線回路との順次切り換わる動作サイクルごとの前記動作命令からなるコンテキストを少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置のためのコンピュータプログラムであって、前記ソースコードのデータ入力を受け付けるソース入力処理と、事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により前記ソースコードから順次切り換わる動作サイクルごとの前記コンテキストに対応した順次遷移する複数段階の動作状態を検出して前記オブジェクトコードをデータ生成するオブジェクト生成処理と、このオブジェクト生成処理でデータ生成された前記オブジェクトコードをデータ出力するオブジェクト出力処理と、を前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項２５】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のＣＤＦＧをソースコードからデータ生成するデータ処理装置のためのコンピュータプログラムであって、前記ソースコードがデータ入力されるソース入力処理と、このソース入力処理でデータ入力された前記ソースコードを言語解析してＤＦＧをデータ生成するグラフ生成処理と、このグラフ生成処理でデータ生成されたＤＦＧから事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により複数段階の前記動作状態をスケジューリングしたＣＤＦＧをデータ生成するスケジュール生成処理と、を前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項２６】
処理データのビット数が相互に相違する複数種類の回路資源を各々が具備していて個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のＲＴＬ記述から前記回路資源のネットリストをデータ生成するデータ処理装置のためのコンピュータプログラムであって、前記並列演算装置のＲＴＬ記述がデータ入力される記述入力処理と、事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により前記ＲＴＬ記述から前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成処理と、このリスト生成処理でデータ生成された前記ネットリストをデータ出力するリスト出力処理と、を前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項２７】
並列演算装置の個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部のネットリストから順次切り換わる複数サイクルのコンテキストごとのオブジェクトコードをデータ生成するデータ処理装置のためのコンピュータプログラムであって、事前にデータ登録されている前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件により前記ネットリストをマトリクス配列されている複数の前記処理回路に複数サイクルの前記コンテキストごとに割り付ける処理配置処理と、この処理配置処理で前記処理回路に割り付けられた前記ネットリストを事前にデータ登録されている各種の前記オブジェクトコードに選択的にデータ変換するコード変換処理と、このコード変換手段でデータ変換された複数の前記処理回路の前記オブジェクトコードをデータ出力するオブジェクト出力処理と、を前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項２８】
データ処理装置のためのコンピュータプログラムがデータ格納されている情報記憶媒体であって、請求項２３ないし２６の何れか一項に記載のコンピュータプログラムがデータ格納されている情報記憶媒体。
【請求項２９】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路がマトリクス配列されており、コード格納手段にデータ格納されているオブジェクトコードに対応して動作する並列演算装置であって、前記コード格納手段に請求項１ないし３または１２ないし１８の何れか一項に記載のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されている並列演算装置。
【請求項３０】
個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路がマトリクス配列されており、オブジェクト入力手段に外部入力されるオブジェクトコードに対応して動作する並列演算装置であって、前記オブジェクト入力手段に請求項１ないし３または１２ないし１８の何れか一項に記載のデータ処理装置でデータ生成されたオブジェクトコードが外部入力される並列演算装置。
【請求項３１】
請求項１ないし３または１２ないし１８の何れか一項に記載のデータ処理装置と、このデータ処理装置でデータ生成されたオブジェクトコードが外部入力される請求項３８に記載の並列演算装置と、を具備しているデータ処理システム。
【請求項３２】
複数の処理回路と複数の配線回路とがマトリクス配列されているマトリクス回路部と、このマトリクス回路部の動作命令を動作サイクルごとに順次切り換える状態管理部と、を別個に具備している並列演算装置と、この並列演算装置の動作記述の一連のソースコードからデータパスと有限状態マシンとを分離して一連のオブジェクトコードをデータ生成するデータ処理装置と、を具備しており、前記並列演算装置の前記マトリクス回路部と前記データパスとが対応しているとともに前記状態管理部と前記有限状態マシンとが対応しているデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列演算装置のオブジェクトプログラムをデータ生成するデータ処理装置および方法、そのデータ処理装置のためのコンピュータプログラム、このコンピュータプログラムがデータ格納されている情報記憶媒体、オブジェクトプログラムに対応して動作する並列演算装置、この並列演算装置とデータ処理装置とを具備しているデータ処理システム、に関する。
【背景技術】
【０００２】
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるＣＰＵ(Central Processing Unit)やＭＰＵ(Micro Processor Unit)と呼称される製品が実用化されている。
【０００３】
このようなプロセッサユニットを利用したデータ処理システムでは、複数の動作命令が記述された各種のオブジェクトコードと各種の処理データとがメモリデバイスに格納され、プロセッサユニットはメモリデバイスから動作命令や処理データを順番にデータ読出して複数のデータ処理を逐次実行する。
【０００４】
このため、一個のプロセッサユニットで各種のデータ処理を実現できるが、そのデータ処理では複数のデータ処理を順番に逐次実行する必要があり、その逐次処理ごとにプロセッサユニットがメモリデバイスから動作命令をデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。
【０００５】
一方、実行するデータ処理が一つに限定されている場合には、そのデータ処理を実行するように論理回路をハードウェアで形成すれば、プロセッサユニットがメモリデバイスから複数の動作命令を順番にデータ読出して複数のデータ処理を順番に逐次実行するような必要はない。このため、複雑なデータ処理を高速に実行することが可能であるが、当然ながら一つのデータ処理しか実行することができない。
【０００６】
つまり、オブジェクトコードを切換自在としたデータ処理システムでは、各種のデータ処理を実行できるが、ハードウェアの構成が固定されているのでデータ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、オブジェクトコードを変更できないので一つのデータ処理しか実行できない。
【０００７】
このような課題を解決するため、本出願人はソフトウェアに対応してハードウェアの構成が変化するプロセッサユニットとして並列演算装置を創案し、特願２０００−０４３２０２号として出願した。この並列演算装置では、小規模の多数の処理回路と配線回路とがマトリクス配列されており、このマトリクス回路部に状態管理部が並設されている。
【０００８】
複数の処理回路は、個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数の配線回路は、個々にデータ設定される動作命令に対応して複数の処理回路の接続関係を個々に切換制御する。つまり、並列演算装置は複数の処理回路と複数の配線回路との動作命令を切り換えることでハードウェアの構成が変化するので、各種のデータ処理を実行することができ、ハードウェアとして小規模の多数の処理回路が簡単なデータ処理を並列に実行するので、データ処理を高速に実行することができる。
【０００９】
そして、上述のような複数の処理回路と複数の配線回路との動作命令からなるコンテキストを状態管理部がオブジェクトコードに対応して動作サイクルごとに順次切り換えるので、並列演算装置はオブジェクトコードに対応して並列処理を連続的に実行することができる。
【００１０】
なお、このようにコンテキストを複数サイクルで順次切り換える並列演算装置としては、例えば、“Purdue University”の“Lawrence Snyder”が非特許文献１に発表した“Introduction to the Configurable, Highly Parallel Computer”や、本出願人が特許出願した特許文献１、特許文献２、特許文献３、特許文献４などがある。
【特許文献１】特開２０００−１３８５７９号
【特許文献２】特開２００−２２４０２５号
【特許文献３】特開２０００−２３２３５４号
【特許文献４】特開２０００−２３２１６２号
【非特許文献１】IEEE Computer, vol.15, No.1, Jan. 1982, pp47-56
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述のような並列演算装置は、オブジェクトコードに内包されているコンテキストを状態管理部が動作サイクルごとに順次切り換えるので、マトリクス配列されている複数の処理回路と複数の配線回路とがコンテキストに対応して動作サイクルごとに並列動作することができる。
【００１２】
しかし、このような並列演算装置は構造と動作との両方が従来のＣＰＵなどとは根本的に相違しているため、そのオブジェクトコードをソースコードから従来の手法で単純にデータ生成することはできず、そのオブジェクトコードをソースコードから適切にデータ生成する技術は確立されていない。
【００１３】
本発明は上述のような課題に鑑みてなされたものであり、コンテキストを順次切り換える並列演算装置のオブジェクトプログラムを良好にデータ生成できるデータ処理装置および方法、そのデータ処理装置のためのコンピュータプログラム、このコンピュータプログラムがデータ格納されている情報記憶媒体、そのオブジェクトプログラムに対応して動作する並列演算装置、この並列演算装置とデータ処理装置とを具備しているデータ処理システム、を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明のデータ処理装置は、ソース入力手段、条件記憶手段、オブジェクト生成手段、オブジェクト出力手段、を具備しており、並列演算装置の一連のオブジェクトコードを一連のソースコードからデータ生成する。その並列演算装置は、複数の処理回路と複数の配線回路とがマトリクス配列されており、複数の処理回路は個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数の配線回路は個々にデータ設定される動作命令に対応して複数の処理回路の接続関係を個々に制御する。この並列演算装置は、複数の処理回路と複数の配線回路との動作命令からなるコンテキストが動作サイクルごとに切り換わるので、これを実現するオブジェクトコードを本発明のデータ処理装置がソースコードからデータ生成する。
【００１５】
本発明のデータ処理装置では、条件記憶手段に並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されており、並列演算装置の動作記述のソースコードがソース入力手段にデータ入力される。このデータ入力されたソースコードから制約条件により並列演算装置のコンテキストを動作サイクルごとに順次切り換える一連のオブジェクトコードをオブジェクト生成手段がデータ生成し、このデータ生成された一連のオブジェクトコードをオブジェクト出力手段がデータ出力することにより、並列演算装置の動作記述のソースコードから、並列演算装置のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードがデータ生成される。
【００１６】
また、本発明の他の形態としては、並列演算装置がマトリクス回路部と状態管理部とを別個に具備しており、複数の処理回路と複数の配線回路とがマトリクス配列されているマトリクス回路部のコンテキストを状態管理部が動作サイクルごとに順次切り換える。このような並列演算装置のオブジェクトコードをデータ生成する本発明の他の形態のデータ処理装置では、オブジェクト生成手段が制約条件により一連のソースコードから一連のオブジェクトコードをデータ生成するときにマトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離することにより、並列演算装置のマトリクス回路部と状態管理部とに別個に対応したオブジェクトコードがデータ生成される。
【００１７】
また、オブジェクト生成手段がグラフ生成手段とスケジュール生成手段とを具備しており、グラフ生成手段が一連のソースコードを言語解析してＤＦＧをデータ生成し、このデータ生成されたＤＦＧから制約条件によりスケジュール生成手段が複数段階の動作状態をスケジューリングしたＣＤＦＧをデータ生成することにより、並列演算装置の動作記述のソースコードから、その順次遷移する複数段階の動作状態をスケジューリングしたＣＤＦＧがデータ生成される。
【００１８】
また、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新するようにスケジュール生成手段がＣＤＦＧをデータ生成することにより、このＣＤＦＧからデータ生成されるオブジェクトコードに対応して動作する並列演算装置では、マトリクス回路部は、オブジェクトコードの多数のコンテキストを所定個数までデータ記憶して対応動作を順次実行し、状態管理部は、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを新規のコンテキストにデータ更新する。
【００１９】
また、スケジュール生成手段でデータ生成されたＣＤＦＧから制約条件により記述生成手段が複数段階の動作状態のＲＴＬ記述をマトリクス回路部と状態管理部とに分離してデータ生成することにより、並列演算装置のＲＴＬ記述がマトリクス回路部と状態管理部とに別個に対応してデータ生成される。
【００２０】
また、記述生成手段でデータ生成されたマトリクス回路部のＲＴＬ記述からリスト生成手段が複数段階の動作状態ごとに制約条件により処理回路のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストが順次遷移する複数段階の動作状態ごとにデータ生成される。
【００２１】
また、並列演算装置は、複数の処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備しており、データ処理装置は、記述生成手段でデータ生成されたマトリクス回路部のＲＴＬ記述から複数段階の動作状態ごとにリスト生成手段が制約条件により処理回路の複数種類の回路資源のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストがビット数の相違する複数種類の回路資源ごとにデータ生成される。
【００２２】
また、複数段階の動作状態に対応した状態管理部のオブジェクトコードがオブジェクト記憶手段に事前にデータ登録されており、リスト生成手段でデータ生成されたマトリクス回路部のネットリストに対応して記述生成手段でデータ生成された状態管理部のＲＴＬ記述を状態変換手段がオブジェクトコードにデータ変換し、このデータ変換された状態管理部のオブジェクトコードをオブジェクト出力手段がデータ出力することにより、状態管理部のオブジェクトコードがマトリクス回路部のネットリストに対応してデータ生成される。
【００２３】
また、並列演算装置は、複数の処理回路の各々に処理データがｍｂデータのｍｂ回路資源とｎｂデータのｎｂ回路資源とを具備しており、データ処理装置は、ＲＴＬ記述からリスト生成手段が制約条件により処理回路のｍ／ｎｂ回路資源のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストがｍ／ｎｂ回路資源ごとにデータ生成される。
【００２４】
また、リスト生成手段は、ＲＴＬ記述の“ｘｂ”のデータ処理を“ｘ＝Ｙｍ＋Ｚｎ”なるＹ個のｍｂ回路資源とＺ個のｎｂ回路資源とに割り付けることにより、“ｘｂ”のデータ処理がｍ／ｎｂ回路資源に適正な個数ずつ割り付けられる。
【００２５】
また、リスト生成手段が“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出してから、その余数を“ｎ”で除算した結果の整数“Ｚ”を算出することにより、“ｘｂ”のデータ処理はビット数が多数のｍｂ回路資源に極力割り付けられ、余数部分のみビット数が少数のｎｂ回路資源に割り付けられる。
【００２６】
また、リスト生成手段は余数が所定の閾値より少数の場合に整数“Ｚ”を算出して余数が閾値以上の場合は“Ｙ”に“１”を加算して“Ｚ＝０”とすることにより、ｍｂ回路資源に極力割り付けられた“ｘｂ”のデータ処理の余数部分が、ビット数に対応してｍ／ｎｂ回路資源の適切な一方に割り付けられる。
【００２７】
また、条件記憶手段にデータ登録されている制約条件の“ｎｂ”が“１(bit)”からなることにより、ｍｂ回路資源に割り付けられた“ｘｂ”のデータ処理の余数部分が何ビットであってもｎｂ回路資源に割り付けられる。
【００２８】
また、オブジェクト記憶手段に処理回路の各種のオブジェクトコードも事前にデータ登録されており、リスト生成手段でデータ生成されたネットリストを処理配置手段がマトリクス配列されている複数の処理回路に複数サイクルのコンテキストごとに割り付け、この処理回路に割り付けられたネットリストをコード変換手段が対応するオブジェクトコードにデータ変換することにより、並列演算装置の複数の処理回路のオブジェクトコードが複数サイクルのコンテキストごとにデータ生成される。
【００２９】
また、オブジェクト記憶手段に配線回路のオブジェクトコードも事前にデータ登録されており、コード変換手段でデータ変換された処理回路のオブジェクトコードに対応して配線変換手段が配線回路のネットリストを対応するオブジェクトコードにデータ変換することにより、並列演算装置の複数の処理回路の接続関係を個々に切換制御する複数の配線回路のオブジェクトコードもデータ生成される。
【００３０】
また、並列演算装置は、複数の処理回路の各々がレジスタファイルを具備しており、そのレジスタファイルが処理回路の処理データを一時保持する。データ処理装置は、連続する複数サイクルのコンテキストで処理データが連携するネットリストを処理配置手段がマトリクス回路部の一定位置のレジスタファイルに共通に割り付けることにより、並列演算装置の連続する複数サイクルのコンテキストで連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードがデータ生成される。
【００３１】
また、処理配置手段が最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをレジスタファイルなどに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたレジスタファイルの連続する複数サイクルのコンテキストでの位置を一致させることにより、また、処理配置手段が最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での位置を固定してから、他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、また、処理配置手段が最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードのデータ生成が所定のデータ処理で実行される。
【００３２】
また、順次遷移する複数段階の動作状態から状態検出手段が制約条件により一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を状態合成手段が一つのコンテキストに割り付けることにより、複数の動作状態が一つのコンテキストとして並列演算装置に一度にデータ設定される。
【００３３】
また、遷移段階が連続している複数の動作状態を状態検出手段が検出することにより、連続する複数の動作状態が一つのコンテキストとして並列演算装置にデータ設定される。
【００３４】
本発明の第一の並列演算装置は、マトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作し、そのコンテキストがコード格納手段にデータ格納されているオブジェクトコードに対応して動作サイクルごとに順次切り換わる。このコード格納手段に本発明のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されていることにより、このデータ格納されているオブジェクトコードに対応して複数サイクルのコンテキストが順次切り換わる。
【００３５】
本発明の第二の並列演算装置は、マトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作し、そのコンテキストがオブジェクト入力手段に外部入力されるオブジェクトコードに対応して動作サイクルごとに順次切り換わる。このオブジェクト入力手段に本発明のデータ処理装置でデータ生成されたオブジェクトコードが外部入力されることにより、この外部入力されるオブジェクトコードに対応して複数サイクルのコンテキストが順次切り換わる。
【００３６】
本発明の第一のデータ処理システムでは、本発明のデータ処理装置でデータ生成されたオブジェクトコードが本発明の並列演算装置に外部入力されることにより、データ処理装置に外部入力されるソースコードに対応して並列演算装置が順次切り換わる複数サイクルのコンテキストで並列演算を実行する。
【００３７】
本発明の第二のデータ処理システムでは、並列演算装置がマトリクス回路部と状態管理部とを別個に具備しており、データ処理装置がソースコードからデータパスと有限状態マシンとを分離してオブジェクトコードをデータ生成する。そのデータパスとマトリクス回路部とが対応しているとともに有限状態マシンと状態管理部とが対応していることにより、並列演算装置のハードウェア構造に対応したソフトウェア構造にオブジェクトコードがデータ処理装置でデータ生成される。
【００３８】
また、本発明で云う各種手段は、その機能を実現するように形成されていれば良く、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置の内部に実現された所定の機能、これらの組み合わせ、等を許容する。また、本発明で云う各種手段は、個々に独立した存在である必要もなく、ある手段が他の手段の一部であるようなことも許容する。
【００３９】
また、本発明で云う情報記憶媒体とは、データ処理装置に各種処理を実行させるためのコンピュータプログラムが事前に格納されたハードウェアであれば良く、例えば、データ処理装置を一部とする装置に固定されているＲＯＭ(Read Only Memory)やＨＤＤ(Hard Disc Drive)、データ処理装置を一部とする装置に交換自在に装填されるＣＤ(Compact Disc)−ＲＯＭやＦＤ(FLEXIBLE Disc)、等を許容する。
【００４０】
また、本発明で云うデータ処理装置とは、コンピュータプログラムをデータ読取して対応するデータ処理を実行できるハードウェアであれば良く、例えば、ＣＰＵ(Central Processing Unit)を主体として、これにＲＯＭやＲＡＭ(Random Access Memory)やＩ／Ｆ(Interface)ユニット等の各種デバイスが接続されたハードウェアなどを許容する。
【００４１】
なお、本発明でコンピュータプログラムに対応した各種動作をデータ処理装置に実行させることは、各種デバイスをデータ処理装置に動作制御させることなども許容する。例えば、データ処理装置に各種データをデータ保存させることは、データ処理装置が一部として具備しているＲＡＭ等の情報記憶媒体に各種データを格納すること、データ処理装置に交換自在に装填されているＦＤ等の情報記憶媒体に各種データを格納すること、等を許容する。
【発明の効果】
【００４２】
本発明のデータ処理装置では、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されており、データ入力される並列演算装置の動作記述のソースコードから制約条件により並列演算装置のコンテキストを動作サイクルごとに順次切り換える一連のオブジェクトコードをデータ生成し、このデータ生成された一連のオブジェクトコードをデータ出力することにより、並列演算装置の動作記述のソースコードから、並列演算装置のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードをデータ生成することができる。
【００４３】
また、本発明の他の形態としては、制約条件により一連のソースコードから一連のオブジェクトコードをデータ生成するときにマトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離することにより、並列演算装置のマトリクス回路部と状態管理部とに別個に対応したオブジェクトコードをデータ生成することができる。
【００４４】
また、一連のソースコードを言語解析してＤＦＧをデータ生成し、このデータ生成されたＤＦＧから制約条件により複数段階の動作状態をスケジューリングしたＣＤＦＧをデータ生成することにより、並列演算装置の動作記述のソースコードから、その順次遷移する複数段階の動作状態をスケジューリングしたＣＤＦＧをデータ生成することができる。
【００４５】
また、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新するようにＣＤＦＧをデータ生成することにより、このＣＤＦＧからデータ生成されたオブジェクトコードに対応して並列演算装置を動作させると、マトリクス回路部がオブジェクトコードの多数のコンテキストを所定個数までデータ記憶して対応動作を順次実行している最中に、その対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新させることができる。
【００４６】
また、データ生成されたＣＤＦＧから制約条件により複数段階の動作状態のＲＴＬ記述をマトリクス回路部と状態管理部とに分離してデータ生成することにより、並列演算装置のマトリクス回路部と状態管理部とに別個に対応したＲＴＬ記述をデータ生成することができる。
【００４７】
また、データ生成されたマトリクス回路部のＲＴＬ記述から複数段階の動作状態ごとに制約条件により処理回路のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストを順次遷移する複数段階の動作状態ごとにデータ生成することができる。
【００４８】
また、データ生成されたマトリクス回路部のＲＴＬ記述から複数段階の動作状態ごとに制約条件により処理回路の複数種類の回路資源のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストをビット数の相違する複数種類の回路資源ごとにデータ生成することができる。
【００４９】
また、複数段階の動作状態に対応した状態管理部のオブジェクトコードが事前にデータ登録されており、データ生成されたマトリクス回路部のネットリストに対応してデータ生成された状態管理部のＲＴＬ記述をオブジェクトコードにデータ変換し、このデータ変換された状態管理部のオブジェクトコードをデータ出力することにより、状態管理部のオブジェクトコードをマトリクス回路部のネットリストに対応してデータ生成することができる。
【００５０】
また、ＲＴＬ記述から制約条件により処理回路のｍ／ｎｂ回路資源のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストをｍ／ｎｂ回路資源ごとにデータ生成することができる。
【００５１】
また、ＲＴＬ記述の“ｘｂ”のデータ処理を“ｘ＝Ｙｍ＋Ｚｎ”なるＹ個のｍｂ回路資源とＺ個のｎｂ回路資源とに割り付けることにより、“ｘｂ”のデータ処理をｍ／ｎｂ回路資源に適正な個数ずつ割り付けることができる。
【００５２】
また、“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出してから、その余数を“ｎ”で除算した結果の整数“Ｚ”を算出することにより、“ｘｂ”のデータ処理をビット数が多数のｍｂ回路資源に極力割り付けることができ、余数部分のみビット数が少数のｎｂ回路資源に割り付けることができる。
【００５３】
また、余数が所定の閾値より少数の場合に整数“Ｚ”を算出して余数が閾値以上の場合は“Ｙ”に“１”を加算して“Ｚ＝０”とすることにより、ｍｂ回路資源に極力割り付けられた“ｘｂ”のデータ処理の余数部分を、ビット数に対応してｍ／ｎｂ回路資源の適切な一方に割り付けることができる。
【００５４】
また、データ登録されている制約条件の“ｎｂ”が“１(bit)”からなることにより、ｍｂ回路資源に割り付けられた“ｘｂ”のデータ処理の余数部分が何ビットであってもｎｂ回路資源に割り付けることができる。
【００５５】
また、処理回路の各種のオブジェクトコードも事前にデータ登録されており、複数段階の動作状態ごとにデータ生成されたネットリストをマトリクス配列されている複数の処理回路に複数サイクルのコンテキストごとに割り付け、この処理回路に割り付けられたネットリストを対応するオブジェクトコードにデータ変換することにより、並列演算装置の複数の処理回路のオブジェクトコードを複数サイクルのコンテキストごとにデータ生成することができる。
【００５６】
また、配線回路のオブジェクトコードも事前にデータ登録されており、データ変換された処理回路のオブジェクトコードに対応して配線回路のネットリストを対応するオブジェクトコードにデータ変換することにより、並列演算装置の複数の処理回路の接続関係を個々に切換制御する複数の配線回路のオブジェクトコードもデータ生成することができる。
【００５７】
また、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部の一定位置のレジスタファイルに共通に割り付けることにより、並列演算装置の連続する複数サイクルのコンテキストで連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードをデータ生成することができる。
【００５８】
また、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをレジスタファイルなどに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたレジスタファイルの連続する複数サイクルのコンテキストでの位置を一致させることにより、また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での位置を固定してから、他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードを所定のデータ処理でデータ生成することができる。
【００５９】
また、順次遷移する複数段階の動作状態から制約条件により一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を一つのコンテキストに割り付けることにより、複数の動作状態を一つのコンテキストとして並列演算装置に一度にデータ設定することができる。
【００６０】
また、遷移段階が連続している複数の動作状態を検出することにより、連続する複数の動作状態を一つのコンテキストとして並列演算装置にデータ設定することができる。
【００６１】
本発明の第一の並列演算装置では、本発明のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されており、そのオブジェクトコードに対応して動作サイクルごとにコンテキストが順次切り換わり、この順次切り換わるコンテキストに対応してマトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作することにより、本発明のデータ処理装置でデータ生成されてデータ格納されたオブジェクトコードに対応して動作サイクルごとに複数の処理回路を並列動作させることができる。
【００６２】
本発明の第二の並列演算装置では、本発明のデータ処理装置でデータ生成された外部入力され、そのオブジェクトコードに対応して動作サイクルごとにコンテキストが順次切り換わり、この順次切り換わるコンテキストに対応してマトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作することにより、本発明のデータ処理装置でデータ生成されて外部入力されるオブジェクトコードに対応して動作サイクルごとに複数の処理回路を並列動作させることができる。
【００６３】
本発明の第一のデータ処理システムでは、本発明のデータ処理装置でデータ生成されたオブジェクトコードが本発明の並列演算装置に外部入力されることにより、データ処理装置に外部入力されるソースコードに対応して並列演算装置に順次切り換わる複数サイクルのコンテキストで並列演算を実行させることができる。
【００６４】
本発明の第二のデータ処理システムでは、データ処理装置がソースコードからオブジェクトコードをデータパスと有限状態マシンとに分離してデータ生成し、そのデータパスと並列演算装置のマトリクス回路部とが対応しているとともに有限状態マシンと状態管理部とが対応していることにより、並列演算装置のハードウェア構造に対応したソフトウェア構造にオブジェクトコードをデータ処理装置でデータ生成することができる。
【発明を実施するための最良の形態】
【００６５】
本発明の実施の一形態を、図面を参照して以下に説明する。まず、本形態の並列演算装置であるアレイ型プロセッサ１００は、図４および図５(ａ)に示すように、オブジェクト入力手段であるＩ／Ｆユニット１０１、コード格納手段であるコードメモリ１０２、状態管理部１０３、データ分配部１０４、マトリクス回路部１０５、データメモリ１０６、を具備しており、マトリクス回路部１０５には、複数の処理回路であるプロセッサエレメント１０７、複数の配線回路であるスイッチエレメント１０８、多数のｍｂバス１０９、多数のｎｂバス１１０、等がマトリクス配列されている。
【００６６】
また、同図(ｂ)に示すように、プロセッサエレメント１０７は、インストラクションメモリ１１１、インストラクションデコーダ１１２、ｍｂ回路資源であるｍｂレジスタファイル１１３、ｎｂ回路資源であるｎｂレジスタファイル１１４、ｍｂ回路資源でありｍｂ演算器であるｍｂＡＬＵ１１５、ｎｂ回路資源でありｎｂ演算器であるｎｂＡＬＵ１１６、内部配線資源１１７、等を各々具備しており、スイッチエレメント１０８は、バスコネクタ１２１、入力制御回路１２２、出力制御回路１２３、等を各々具備している。
【００６７】
Ｉ／Ｆユニット１０１は、後述するデータ処理装置３００が接続され、このデータ処理装置３００から一連のオブジェクトコードが外部入力される。コードメモリ１０２は、ＲＡＭ等の情報記憶媒体からなり、外部入力されたオブジェクトコードをデータ記憶する。
【００６８】
このオブジェクトコードは、詳細には後述するが、マトリクス回路部１０５にマトリクス配列された複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８との動作命令が、順次切り換わる動作サイクルごとのコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理部１０３の動作命令が、順次遷移する動作状態としてデータ設定されている。
【００６９】
この状態管理部１０３は、コードメモリ１０２でデータ記憶された一連のオブジェクトコードから動作サイクルごとにコンテキストをデータ読出し、その動作命令から複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８とのインストラクションポインタを各々発生する。
【００７０】
本形態ではスイッチエレメント１０８のインストラクションメモリが隣接するプロセッサエレメント１０７のインストラクションメモリ１１１で兼用されているので、状態管理部１０３は、発生したプロセッサエレメント１０７とスイッチエレメント１０８との一組のインストラクションポインタを対応するプロセッサエレメント１０７のインストラクションメモリ１１１に供給する。
【００７１】
このインストラクションメモリ１１１はプロセッサエレメント１０７とスイッチエレメント１０８との複数の動作命令が事前に格納されており、状態管理部１０３から供給される二つのインストラクションポインタでプロセッサエレメント１０７とスイッチエレメント１０８との動作命令が指定される。インストラクションデコーダ１１２は、インストラクションポインタで指定された動作命令をデコードし、スイッチエレメント１０８、内部配線資源１１７、ｍ／ｎｂＡＬＵ１１５，１１６、等の動作を制御する。
【００７２】
ｍｂバス１０９は“８(bit)”の処理データであるｍｂデータを伝送し、ｎｂバス１１０は“１(bit)”の処理データであるｎｂデータを伝送するので、スイッチエレメント１０８は、インストラクションデコーダ１１２の動作制御に対応してｍ／ｎｂバス１０９，１１０による複数のプロセッサエレメント１０７の接続関係を制御する。
【００７３】
より詳細には、スイッチエレメント１０８のバスコネクタ１２１は、ｍｂバス１０９とｎｂバス１１０とが四方から連通しており、このように連通している複数のｍｂバス１０９の相互の接続関係と連通する複数のｎｂバス１１０の相互の接続関係とを制御する。
【００７４】
このため、本形態のアレイ型プロセッサ１００は、コードメモリ１０２にデータ設定されたオブジェクトコードに対応して状態管理部１０３がマトリクス回路部１０５のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに複数のプロセッサエレメント１０７は個々に設定自在なデータ処理で並列動作する。
【００７５】
なお、ここでは説明を簡略化するために各部が平面状に配列されている構造を例示しているが、実際には、上述のｍ／ｎｂバス１０９，１１０とスイッチエレメント１０８とプロセッサエレメント１０７とを積層構造で重複させて形成するようなことも可能である。
【００７６】
入力制御回路１２２は、ｍｂバス１０９からｍｂレジスタファイル１１３やｍｂＡＬＵ１１５へのデータ入力の接続関係と、ｎｂバス１１０からｎｂレジスタファイル１１４やｎｂＡＬＵ１１６へのデータ入力の接続関係とを制御し、出力制御回路１２３は、ｍｂレジスタファイル１１３やｍｂＡＬＵ１１５からｍｂバス１０９へのデータ出力の接続関係と、ｎｂレジスタファイル１１４やｎｂＡＬＵ１１６からｎｂバス１１０へのデータ出力の接続関係とを制御する。
【００７７】
データ分配部１０４は、外部入力される一連の処理データをｍｂデータとｎｂデータとに分配し、このｍ／ｎｂデータをスイッチエレメント１０８により接続関係が制御されたｍ／ｎｂバス１０９，１１０から複数のプロセッサエレメント１０７の特定の一部に適宜入力する。
【００７８】
このプロセッサエレメント１０７の内部配線資源１１７は、インストラクションデコーダ１１２の動作制御に対応して、プロセッサエレメント１０７の内部でのｍｂレジスタファイル１１３およびｍｂＡＬＵ１１５の接続関係とｎｂレジスタファイル１１４およびｎｂＡＬＵ１１６の接続関係とを制御する。
【００７９】
ｍｂレジスタファイル１１３は、内部配線資源１１７に制御される接続関係に対応して、ｍｂバス１０９などから入力されるｍｂデータを一時保持してｍｂＡＬＵ１１５などに出力する。ｎｂレジスタファイル１１４は、内部配線資源１１７に制御される接続関係に対応して、ｎｂバス１１０などから入力されるｎｂデータを一時保持してｎｂＡＬＵ１１６などに出力する。
【００８０】
ｍｂＡＬＵ１１５は、インストラクションデコーダ１１２の動作制御に対応したデータ処理をｍｂデータで実行し、ｎｂＡＬＵ１１６は、インストラクションデコーダ１１２の動作制御に対応したデータ処理をｎｂデータで実行する。なお、プロセッサエレメント１０７は、上述のように内蔵されているｍ／ｎｂレジスタファイル１１３，１１４でｍ／ｎｂデータをデータ読書するが、必要により外部のデータメモリ１０６でも処理データをデータ読書する。
【００８１】
そして、本形態のアレイ型プロセッサ１００を一部とした本形態のデータ処理システム２００は、図１に示すように、アレイ型プロセッサ１００、データ処理装置３００、ソース供給手段２０１、オブジェクト供給手段２０２、データ入力手段２０３、等を具備している。
【００８２】
また、本形態のデータ処理装置３００は、図３に示すように、コンピュータの主体となるハードウェアとしてＣＰＵ３０１を具備しており、このＣＰＵ３０１には、バスライン３０２により、ＲＯＭ３０３、ＲＡＭ３０４、ＨＤＤ３０５、ＦＤ３０６が交換自在に装填されるＦＤＤ(FD Drive)３０７、ＣＤ−ＲＯＭ３０８が交換自在に装填されるＣＤドライブ３０９、キーボード３１０、マウス３１１、ディスプレイ３１２、Ｉ／Ｆユニット３１３、等のハードウェアが接続されている。
【００８３】
本形態のデータ処理装置３００では、ＲＯＭ３０３、ＲＡＭ３０４、ＨＤＤ３０５、交換自在なＦＤ３０６、交換自在なＣＤ−ＲＯＭ３０８、等のハードウェアが情報記憶媒体に相当し、これらの少なくとも一個にＣＰＵ３０１のためのコンピュータプログラムや各種データがソフトウェアとして格納されている。
【００８４】
例えば、ＣＰＵ３０１に各種のデータ処理を実行させるコンピュータプログラムは、ＦＤ３０６やＣＤ−ＲＯＭ３０８に事前に格納されている。このようなソフトウェアはＨＤＤ３０５に事前にインストールされており、データ処理装置３００の起動時にＲＡＭ３０４に複写されてＣＰＵ３０１にデータ読取される。
【００８５】
このようにＣＰＵ３０１が適正なコンピュータプログラムをデータ読取して各種のデータ処理を実行することにより、本形態のデータ処理装置３００は、図１に示すように、ソース入力手段２１１、条件記憶手段２１２、オブジェクト生成手段２１３、オブジェクト出力手段２１４、等の各種手段を各種機能として論理的に具備している。
【００８６】
データ処理システム２００のソース供給手段２０１は、例えば、ソースコードが格納されたＦＤ３０６からなり、Ｃ言語などの高級言語でアレイ型プロセッサ１００が動作記述された一連のソースコードをデータ処理装置３００のソース入力手段２１１に供給する。
【００８７】
このデータ処理装置３００のソース入力手段２１１は、ＲＡＭ３０４に格納されているコンピュータプログラムに対応してＣＰＵ３０１がＦＤＤ３０７を動作制御する機能などに相当し、ソース供給手段２０１からソースコードがデータ入力される。
【００８８】
条件記憶手段２１２は、上述のコンピュータプログラムに対応してＣＰＵ３０１がデータ認識するＨＤＤ３０５の記憶エリアなどに相当し、アレイ型プロセッサ１００の物理構造や物理特性などに対応した各種の制約条件が事前にデータ登録されている。
【００８９】
オブジェクト生成手段２１３は、ＣＰＵ３０１がコンピュータプログラムに対応して所定のデータ処理を実行する機能などに相当し、ソース入力手段２１１にデータ入力されたソースコードから条件記憶手段２１２の制約条件により、アレイ型プロセッサ１００のマトリクス回路部１０５のコンテキストを順次切り換える一連のオブジェクトコードをデータ生成する。
【００９０】
なお、オブジェクト生成手段２１３は、前述のようにアレイ型プロセッサ１００に状態管理部１０３とマトリクス回路部１０５とが別個に形成されているので、この構造を反映した制約条件によりソースコードからオブジェクトコードをデータ生成するとき、図４に示すように、マトリクス回路部１０５に対応したデータパスと状態管理部１０３に対応した有限状態マシンとを分離する。
【００９１】
また、詳細には後述するが、オブジェクト生成手段２１３は多段階の各種処理によりソースコードからオブジェクトコードをデータ生成し、その多段階の各種処理で条件記憶手段２１２から必要な制約条件を適宜参照するので、この条件記憶手段２１２にはオブジェクト生成手段２１３の各種処理に必要充分なデータ内容で各種の制約条件がデータ設定されている。
【００９２】
オブジェクト出力手段２１４は、ＣＰＵ３０１がコンピュータプログラムに対応してＩ／Ｆユニット３１３のデータ出力を制御する機能などに相当し、オブジェクト生成手段２１３でデータ生成された一連のオブジェクトコードをデータ処理システム２００のオブジェクト供給手段２０２にデータ出力する。
【００９３】
このオブジェクト供給手段２０２は、データ処理装置３００のＩ／Ｆユニット３１３とアレイ型プロセッサ１００の状態管理部１０３とを接続した接続コネクタ(図示せず)などに相当し、データ処理装置３００がデータ出力するオブジェクトコードをアレイ型プロセッサ１００のＩ／Ｆユニット１０１にデータ入力する。
【００９４】
このアレイ型プロセッサ１００のＩ／Ｆユニット１０１には、前述のようにコードメモリ１０２が接続されているので、このコードメモリ１０２でオブジェクトコードがデータ保持される。データ入力手段２０３は、例えば、所定のデータ発生回路(図示せず)からなり、一連の処理データを発生してアレイ型プロセッサ１００のデータ分配部１０４に入力する。
【００９５】
本形態のデータ処理装置３００のオブジェクト生成手段２１３は、図２に示すように、グラフ生成手段２２１、スケジュール生成手段２２２、記述生成手段２２３、リスト生成手段２２４、オブジェクト記憶手段２２５、状態変換手段２２６、処理配置手段２２７、コード変換手段２２８、配線変換手段２２９、等の各種手段からなる。
【００９６】
グラフ生成手段２２１は、前述のＣ言語などで記述された一連のソースコードを言語解析してＤＦＧをデータ生成し、スケジュール生成手段２２２は、グラフ生成手段２２１でデータ生成されたＤＦＧから所定の制約条件により、図６に示すように、アレイ型プロセッサ１００の順次遷移する複数段階の動作状態をスケジューリングしたＣＤＦＧをデータ生成する。
【００９７】
より詳細には、図７に示すように、例えば、ソースコードに処理データが連携する複数のデータ処理が記述されているとき、図８に示すように、その複数のデータ処理が因果関係に対応して連携されたＤＦＧが既存の手法でデータ生成される。
【００９８】
このようなＤＦＧからＣＤＦＧがデータ生成されるとき、アレイ型プロセッサ１００のプロセッサエレメント１０７の個数やｍ／ｎｂデータバス１０９，１１０の遅延時間などが制約条件として参照され、図９(ａ)に示すように、これに対応してＤＦＧの複数のデータ処理が順次遷移する複数段階の動作状態に順番にスケジューリングされる。
【００９９】
このようにＤＦＧの複数のノードが順番にスケジューリングされるとき、一つの動作状態で一度に並列実行される複数のデータ処理の個数が、制約条件であるプロセッサエレメント１０７の個数を超過する場合、その超過するデータ処理は次段の動作状態に移行される。
【０１００】
また、一つの動作状態で一度に連続実行される複数のデータ処理の累積時間が制約条件である動作状態のクロック間隔を超過する場合、そのクロック間隔を超過するデータ処理から以後のデータ処理は次段の動作状態に移行される。同様に、ある動作状態で連続に実行される複数のデータ処理に、ポート入力／出力、メモリアクセスや複数サイクル演算、などのように動作サイクルを跨ぐデータ処理が存在する場合、そのデータ処理が発生する時点で動作状態は次段に移行される。
【０１０１】
ここで、上述の演算個数とプロセッサエレメント１０７の個数との対比で動作状態を移行させるスケジューリングを以下に具体的に説明する。まず、本形態のアレイ型プロセッサ１００がプロセッサエレメント１０７を二個だけ具備しており、比較対象とする従来のアレイ型プロセッサ(図示せず)が加算器と減算器とを一個ずつ具備していると想定する。
【０１０２】
この場合、従来のアレイ型プロセッサは、一つの動作状態で一つの加算処理と一つの減算処理とを並列実行できるが、一つの動作状態で二つの加算処理や二つの減算処理を並列実行することはできない。一方、本形態のアレイ型プロセッサ１００は、一つの動作状態で二つのデータ処理を並列実行することができ、その二つのデータ処理としては加算処理や減算処理などを自在に設定することができる。
【０１０３】
そして、図８に示すように、ＤＦＧに二つの加算処理が並列に存在し、これらの加算処理の出力データを入力データとする二つの減算処理が並列に存在する場合、従来のアレイ型プロセッサへのスケジューリング処理では、図９(ｂ)に示すように、第一状態で第一の加算処理を実行し、第二状態で第一の減算処理と第二の加算処理とを並列実行し、第三状態で第二の減算処理を実行するようにＣＤＦＧがデータ生成される。
【０１０４】
一方、本形態のデータ処理装置３００による本形態のアレイ型プロセッサ１００へのスケジューリング処理では、同図(ａ)に示すように、第一状態に二個のプロセッサエレメント１０７で第一第二の加算処理を並列実行し、第二状態に第一第二の減算処理を並列実行するようにＣＤＦＧがデータ生成される。
【０１０５】
さらに、ＣＤＦＧが制約条件であるポート入力に対応してスケジューリングされるとともに、制約条件である遅延時間に対応してスケジューリングされる場合を以下に簡単に説明する。まず、制約条件として一つの動作状態にポート入力が一つしか存在しない場合、図１０に示すように、ソースコードに複数のポート入力が記述されていると、図１１に示すように、ソースコードの第一行目と第三行目とのポート入力はＣＤＦＧで別個の動作状態にスケジューリングされる。
【０１０６】
また、一つの動作状態に許容される遅延時間が“30(nsec)”、加算処理の所要時間が“10(nsec)”、乗算処理の所要時間が“20(nsec)”、の場合、図１０に示すように、ソースコードの第二行目に一つの加算処理と二つの乗算処理とが記述されていると、図１１に示すように、その一つの加算処理と第一の乗算処理とは一つの動作状態にスケジューリングされるが、第二の乗算処理は次段の動作状態にスケジューリングされる。
【０１０７】
なお、本形態のアレイ型プロセッサ１００は、実際には前述のようにプロセッサエレメント１０７が演算器として８ビットのＡＬＵ１１５と１ビットのＡＬＵ１１６のみ具備しているので、３２ビットの一つのデータ処理などは制約条件により四個の８ビットのＡＬＵ１１５で並列実行される。
【０１０８】
この場合、一つの動作状態にスケジューリングされた３２ビットの一つのデータ処理に対応して制約条件である８ビットのＡＬＵ１１５の個数から四個が減算されるので、例えば、これが不足する場合には３２ビットの一つのデータ処理は次段の動作状態に移行される。
【０１０９】
また、本形態ではプロセッサエレメント１０７の各々がｍ／ｎｂＡＬＵ１１５，１１６を具備しているので、これに対応した制約条件により演算処理はｍｂＡＬＵ１１５とｎｂＡＬＵ１１６とに配分されてスケジューリングされる。さらに、プロセッサエレメント１０７にｍ／ｎｂＡＬＵ１１５，１１６以外にデータ処理を実行する回路資源が存在する場合、これも制約条件に組み込まれてスケジューリングに利用される。
【０１１０】
記述生成手段２２３は、スケジュール生成手段２２２でデータ生成されたＣＤＦＧから、所定の制約条件により複数段階の動作状態のＲＴＬ記述をマトリクス回路部１０５と状態管理部１０３とに分離してデータ生成する。このとき、プロセッサエレメント１０７やスイッチエレメント１０８の処理能力などが制約条件として参照され、図９(ａ)および図１２に示すように、データ処理やデータ転送を実行するｍ／ｎｂＡＬＵ１１５，１１６などが割り付けられる。
【０１１１】
ただし、この時点での割り付けは、どの処理がアレイ型プロセッサ１００のどの種類の回路資源により実行されるかを区分するに留まり、どのデータ処理をどのｍ／ｎｂＡＬＵ１１５，１１６が実行するかを決定することはなく、複数段階の動作状態で連携する処理データをデータ保持するｍ／ｎｂレジスタファイル１１３，１１４の位置を決定することもない。また、この割り付けではトライアンドエラーなどにより、複数段階の動作状態ごとに使用する回路資源が最少となる組み合わせがデータ生成される。
【０１１２】
リスト生成手段２２４は、記述生成手段２２３でデータ生成されたマトリクス回路部１０５のＲＴＬ記述から所定の制約条件により、複数段階の動作状態ごとのプロセッサエレメント１０７のネットリストを、図１３に示すように、ｍ／ｎｂＡＬＵ１１５，１１６などのｍ／ｎｂ回路資源ごとにデータ生成する。
【０１１３】
より具体的には、ＲＴＬ記述に“ｍｂ”より多数の“ｘｂ(ｘ-(bit)”のデータ処理が存在する場合、リスト生成手段２２４は、“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出してから、その余数を“ｎ”で除算した結果の整数“Ｚ”を算出する。これで“ｘ＝Ｙｍ＋Ｚｎ”を満足する自然数“Ｙ”と“Ｚ”とを検出し、“ｘｂ”のデータ処理をＹ個のｍｂＡＬＵ１１５およびｍｂレジスタファイル１１３とＺ個のｎｂＡＬＵ１１６およびｎｂレジスタファイル１１４とに割り付ける。
【０１１４】
オブジェクト記憶手段２２５は、ＣＰＵ３０１がデータ認識するＨＤＤ３０５の記憶エリアなどに相当し、状態管理部１０３の複数段階の動作状態に対応した各種のオブジェクトコードと、マトリクス回路部１０５のプロセッサエレメント１０７やスイッチエレメント１０８の各種のオブジェクトコードと、が事前にデータ登録されている。
【０１１５】
状態変換手段２２６は、リスト生成手段２２４でデータ生成されたマトリクス回路部１０５のネットリストに対応して、記述生成手段２２３でデータ生成された状態管理部１０３のＲＴＬ記述を対応するオブジェクトコードにデータ変換する。
【０１１６】
処理配置手段２２７は、リスト生成手段２２４で複数段階の動作状態ごとにデータ生成されたマトリクス回路部１０５のネットリストを、マトリクス配列されている複数のプロセッサエレメント１０７に複数サイクルのコンテキストごとに割り付ける。
【０１１７】
このとき、処理配置手段２２７は、図１４に示すように、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをｍ／ｎｂレジスタファイル１１３，１１４などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたｍ／ｎｂレジスタファイル１１３，１１４の連続する複数サイクルのコンテキストでの位置を一致させることにより、図１５に示すように、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部１０５の一定位置のｍ／ｎｂレジスタファイル１１３，１１４に共通に割り付ける。
【０１１８】
その場合、連続する複数サイクルのコンテキストで処理データが連携するｍ／ｎｂレジスタファイル１１３，１１４のネットリストは、同一の名称が付与されることで連携が表現される。また、上述のコンテキストごとでのネットリストの配置と、複数のコンテキストでのネットリストの配置とは、例えば、シミュレーテッド・アニーリング手法などの既存の反復改良アルゴリズムを適用することにより、反復処理で最適化される。
【０１１９】
ただし、この処理配置手段２２７でのネットリストの配置はコンテキストごとに実行され、あるコンテキストに配置できないネットリストを他のコンテキストに移行させる処理などは実行されない。このため、あるコンテキストに必要なネットリストの全部を配置できない事態が処理配置手段２２７で発生すると、例えば、これを処理配置手段２２７がスケジュール生成手段２２２にデータ通知することにより、その通知データも制約条件としてスケジュール生成手段２２２がＣＤＦＧを再度生成する。
【０１２０】
また、ここでは説明を簡単とするために一個のｍ／ｎｂレジスタファイル１１３，１１４がｍ／ｎｂデータを一つだけ一時保持する場合を例示しているが、例えば、ｍ／ｎｂレジスタファイル１１３，１１４が相違するアドレスで複数のｍ／ｎｂデータを独立にデータ読書できる場合には、一つのコンテキストでデータ書込とデータ読出とが同時に発生しないならば一個のｍ／ｎｂレジスタファイル１１３，１１４が複数のコンテキストで複数のｍ／ｎｂデータをデータ読書することが可能である。
【０１２１】
コード変換手段２２８は、処理配置手段２２７でプロセッサエレメント１０７に割り付けられたネットリストを対応するオブジェクトコードにデータ変換し、配線変換手段２２９は、コード変換手段２２８でデータ変換されたプロセッサエレメント１０７のオブジェクトコードに対応してスイッチエレメント１０８のネットリストをオブジェクトコードにデータ変換する。
【０１２２】
上述したデータ処理装置３００の各種手段は、必要によりＦＤＤ３０７やＩ／Ｆユニット３１２等のハードウェアを利用して実現されるが、その主体はＲＡＭ３０４等の情報記憶媒体に格納されたソフトウェアに対応して、データ処理装置３００のハードウェアであるＣＰＵ３０１が機能することにより実現されている。
【０１２３】
このようなソフトウェアは、例えば、アレイ型プロセッサ１００の物理構造や物理特性などに対応した各種の制約条件をＨＤＤ３０５などにデータ記憶させる処理、ＦＤ３０６の格納データをＦＤＤ１０７にデータ読出させることなどでアレイ型プロセッサ１００の動作記述のソースコードをデータ入力する処理、このデータ入力されたソースコードから制約条件によりアレイ型プロセッサ１００のオブジェクトコードをデータ生成する処理、このデータ生成されたオブジェクトコードをＩ／Ｆユニット３１３などからデータ出力する処理、等のデータ処理をＣＰＵ３０１等に実行させるためのコンピュータプログラムとしてＲＡＭ３０４等の情報記憶媒体に格納されている。
【０１２４】
さらに、上述のソースコードからオブジェクトコードをデータ生成するデータ処理のソフトウェアは、状態管理部１０３のオブジェクトコードとマトリクス回路部１０５のオブジェクトコードとをＨＤＤ３０５などにデータ記憶させる処理、Ｃ言語などで記述された一連のソースコードを言語解析してＤＦＧをデータ生成する処理、このデータ生成されたＤＦＧから所定の制約条件によりアレイ型プロセッサ１００の順次遷移する複数段階の動作状態をスケジューリングしたＣＤＦＧをデータ生成する処理、このデータ生成されたＣＤＦＧから所定の制約条件により複数段階の動作状態のＲＴＬ記述をマトリクス回路部１０５と状態管理部１０３とに分離してデータ生成する処理、このデータ生成されたマトリクス回路部１０５のＲＴＬ記述から所定の制約条件により複数段階の動作状態ごとのプロセッサエレメント１０７のネットリストをｍ／ｎｂＡＬＵ１１５，１１６などのｍ／ｎｂ回路資源ごとにデータ生成する処理、このデータ生成されたマトリクス回路部１０５のネットリストに対応して状態管理部１０３のＲＴＬ記述を対応するオブジェクトコードにデータ変換する処理、複数段階の動作状態ごとにデータ生成されたマトリクス回路部１０５のネットリストをマトリクス配列されている複数のプロセッサエレメント１０７に複数サイクルのコンテキストごとに割り付ける処理、このプロセッサエレメント１０７に割り付けられたネットリストを対応するオブジェクトコードにデータ変換する処理、このデータ変換されたプロセッサエレメント１０７のオブジェクトコードに対応してスイッチエレメント１０８のネットリストをオブジェクトコードにデータ変換する処理、等のデータ処理をＣＰＵ３０１等に実行させるためのコンピュータプログラムとしてＲＡＭ３０４等の情報記憶媒体に格納されている。
【０１２５】
なお、上述のようなコンピュータプログラムは、例えば、ＣＤ−ＲＯＭ１０８などの情報記憶媒体にデータ格納されてデータ処理装置３００にデータ供給されるが、その情報記憶媒体には条件記憶手段２１２の制約条件やオブジェクト記憶手段２２５のオブジェクトコードも構造データとしてデータ格納することが可能である。
【０１２６】
上述のような構成において、本形態のデータ処理システム２００では、アレイ型プロセッサ１００の動作記述のソースコードがソース供給手段２０１からデータ処理装置３００にデータ供給されると、このデータ処理装置３００はソースコードをオブジェクトコードに変換してアレイ型プロセッサ１００にデータ供給する。
【０１２７】
このアレイ型プロセッサ１００はデータ供給されたオブジェクトコードをデータ記憶するので、この状態でデータ入力手段２０３から一連の処理データが入力されると、その入力された処理データをオブジェクトコードに対応してデータ処理する。
【０１２８】
より詳細には、本形態のデータ処理装置３００には、アレイ型プロセッサ１００の物理構造や物理特性などに対応した各種の制約条件と、状態管理部１０３やプロセッサエレメント１０７やスイッチエレメント１０８の各種のオブジェクトコードと、がデータ登録される。
【０１２９】
このような状態で、本形態のデータ処理装置３００では、図１６に示すように、Ｃ言語などでアレイ型プロセッサ１００が動作記述された一連のソースコードがデータ入力されると(ステップＳ１)、図７および図８に示すように、そのソースコードが言語解析されてＤＦＧがデータ生成される(ステップＳ２)。
【０１３０】
つぎに、アレイ型プロセッサ１００のプロセッサエレメント１０７の個数やｍ／ｎｂデータバス１０９，１１０の遅延時間などが、ＤＦＧからＣＤＦＧをデータ生成するための制約条件としてデータ読出され(ステップＳ３)、図６および図９(ａ)に示すように、この制約条件によりＤＦＧからアレイ型プロセッサ１００の順次遷移する複数段階の動作状態をスケジューリングしたＣＤＦＧがデータ生成される(ステップＳ４)。
【０１３１】
つぎに、プロセッサエレメント１０７やスイッチエレメント１０８の処理能力などが、ＣＤＦＧからＲＴＬ記述をデータ生成するための制約条件としてデータ読出され(ステップＳ５)、図１２に示すように、この制約条件によりＣＤＦＧのデータ処理にｍ／ｎｂＡＬＵ１１５，１１６などが割り付けられ、複数段階の動作状態のＲＴＬ記述がマトリクス回路部１０５と状態管理部１０３とに分離されてデータ生成される(ステップＳ６)。
【０１３２】
つぎに、ｍ／ｎｂレジスタファイル１１３，１１４やｍ／ｎｂＡＬＵ１１５，１１６のビット数などが、ＲＴＬ記述からネットリストをデータ生成するための制約条件としてデータ読出され(ステップＳ７)、図１３に示すように、この制約条件によりマトリクス回路部１０５のＲＴＬ記述から複数段階の動作状態ごとのプロセッサエレメント１０７のネットリストがｍ／ｎｂＡＬＵ１１５，１１６などのｍ／ｎｂ回路資源ごとにデータ生成される(ステップＳ８)。
【０１３３】
このように複数段階の動作状態ごとにマトリクス回路部１０５のネットリストがデータ生成されると、これに対応して状態管理部１０３のＲＴＬ記述が対応するオブジェクトコードにデータ変換されるので(ステップＳ９)、これで状態管理部１０３のオブジェクトコードがデータ生成される。
【０１３４】
つぎに、複数段階の動作状態ごとにデータ生成されたマトリクス回路部１０５のネットリストが、マトリクス配列されている複数のプロセッサエレメント１０７に複数サイクルのコンテキストごとに割り付けられ(ステップＳ１０)、このプロセッサエレメント１０７に割り付けられたネットリストが対応するオブジェクトコードにデータ変換されるので(ステップＳ１１)、これでプロセッサエレメント１０７のオブジェクトコードがデータ生成される。
【０１３５】
このようにプロセッサエレメント１０７のオブジェクトコードがデータ生成されると、これに対応してスイッチエレメント１０８のネットリストがオブジェクトコードにデータ変換される(ステップＳ１２)。これでスイッチエレメント１０８のオブジェクトコードもデータ生成されるので、状態管理部１０３とプロセッサエレメント１０７とスイッチエレメント１０８とに対応したアレイ型プロセッサ１００のオブジェクトコードが完成することになる(ステップＳ１３)。
【０１３６】
このようにデータ処理装置３００でデータ生成されたオブジェクトコードは、前述のようにアレイ型プロセッサ１００にデータ設定されるので、このアレイ型プロセッサ１００では、状態管理部１０３が外部入力されるオブジェクトコードを保持してプロセッサエレメント１０７ごとのインストラクションポインタを発生し、このインストラクションポインタでプロセッサエレメント１０７ごとにインストラクションメモリ１１１に格納されている複数の動作命令から一つが指定される。
【０１３７】
この指定された動作命令がインストラクションデコーダ１１２でデコードされ、スイッチエレメント１０８による複数のプロセッサエレメント１０７の接続関係、内部配線資源１１７によるプロセッサエレメント１０７の内部での接続関係、ｍ／ｎｂＡＬＵ１１５，１１６のデータ処理、等が制御されるので、これで本形態のアレイ型プロセッサ１００は、オブジェクトコードに対応したデータ処理を実行するハードウェアの状態となる。
【０１３８】
このような状態で、データ入力手段２０３から外部入力される一連の処理データがデータ分配部１０４でｍｂデータとｎｂデータとに分配され、上述のように接続関係とデータ処理とが制御された複数のプロセッサエレメント１０７ごとにｍｂＡＬＵ１１５とｎｂＡＬＵ１１６とでデータ処理される。
【０１３９】
本形態のアレイ型プロセッサ１００は、上述のようにオブジェクトコードに対応してプロセッサエレメント１０７ごとに“８(bit)”からなるｍｂデータと“１(bit)”からなるｎｂデータとのデータ処理を並列に実行できるので、外部入力される一連の処理データのビット数が変化しても、これをビット数の多少により的確に配分して良好な効率で並列処理することができる。
【０１４０】
また、本形態のアレイ型プロセッサ１００は、プロセッサエレメント１０７ごとに形成されているｍ／ｎｂレジスタファイル１１３，１１４が入力されるｍ／ｎｂデータを一時保持して出力するので、プロセッサエレメント１０７ごとにｍ／ｎｂＡＬＵ１１５，１１６でデータ処理されるｍ／ｎｂデータを各々専用のｍ／ｎｂレジスタファイル１１４により無駄なく一時保持することができる。
【０１４１】
しかも、本形態のアレイ型プロセッサ１００は、“ｎｂ”が“１(bit)”からなるので、ｎｂＡＬＵ１１６により最少ビットでのデータ処理を実行することができ、処理データのビット数が各種に変化しても確実にデータ処理を実行することができる。
【０１４２】
また、本形態のデータ処理システム２００は、アレイ型プロセッサ１００に処理データを入力するとき、ソースコードをデータ処理装置３００に供給してオブジェクトコードをアレイ型プロセッサ１００にデータ入力することができるので、アレイ型プロセッサ１００の動作状態を各種にリアルタイムに切り換えることができる。
【０１４３】
本形態のデータ処理システム２００では、上述のようにアレイ型プロセッサ１００はマトリクス回路部１０５と状態管理部１０３とを別個に具備しており、データ処理装置３００はアレイ型プロセッサ１００の動作記述の一連のソースコードからデータパスと有限状態マシンとを分離して一連のオブジェクトコードをデータ生成する。
【０１４４】
そして、そのデータパスとアレイ型プロセッサ１００のマトリクス回路部１０５とが対応しており、有限状態マシンと状態管理部１０３とが対応しているので、データ処理装置３００のソフトウェアとアレイ型プロセッサ１００のハードウェアとの整合性が良好である。
【０１４５】
本形態のアレイ型プロセッサ１００は、その構造および動作が従来のＣＰＵなどとは根本的に相違するので、そのオブジェクトコードの構造も従来のＣＰＵなどとは根本的に相違している。しかし、本形態のデータ処理装置３００は、前述のように一般的な手法でアレイ型プロセッサ１００の動作状態が記述されたソースコードから、アレイ型プロセッサ１００のオブジェクトコードを良好にデータ生成することができるので、本形態のアレイ型プロセッサ１００を良好に動作させることができる。
【０１４６】
特に、本形態のデータ処理装置３００は、ソースコードからＤＦＧをデータ生成して複数段階の動作状態ごとのＣＤＦＧにスケジューリングし、そのＣＤＦＧからデータ生成したネットリストを複数サイクルのコンテキストごとに割り付けるので、アレイ型プロセッサ１００のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードをデータ生成することができる。
【０１４７】
しかも、ソースコードからオブジェクトコードをデータ生成するときに有限状態マシンとデータパスとを分離するので、マトリクス回路部１０５と状態管理部１０３とを別個に具備しているアレイ型プロセッサ１００のオブジェクトコードを良好にデータ生成することができる。
【０１４８】
さらに、マトリクス回路部１０５のＲＴＬ記述からプロセッサエレメント１０７のｍ／ｎｂの回路資源のネットリストをデータ生成するので、ｍｂデータ用とｎｂデータ用とに記述内容が分別されたアレイ型プロセッサ１００のオブジェクトコードを良好にデータ生成することができる。
【０１４９】
しかも、ＲＴＬ記述の“ｘｂ”のデータ処理を“ｘ＝Ｙｍ＋Ｚｎ”なるＹ個のｍｂＡＬＵ１１５とＺ個のｎｂＡＬＵ１１６とに割り付けるので、“ｘｂ”のデータ処理をｍ／ｎｂＡＬＵ１１５，１１６に適正な個数ずつ割り付けることができる。
【０１５０】
特に、“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出してから、その余数を“ｎ”で除算した結果の整数“Ｚ”を算出するので、“ｘｂ”のデータ処理をビット数が多数のｍｂＡＬＵ１１５に極力割り付けることができ、余数部分のみビット数が少数のｎｂＡＬＵ１１６に割り付けることができる。しかも、上述の“ｎｂ”が“１(bit)”なので、ｍｂＡＬＵ１１５に割り付けられた“ｘｂ”のデータ処理の余数部分が何ビットであってもｎｂＡＬＵ１１６に割り付けることができる。
【０１５１】
また、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部１０５の一定位置のｍ／ｎｂレジスタファイル１１３，１１４に共通に割り付けるので、アレイ型プロセッサ１００の連続する複数サイクルのコンテキストで連携する処理データを一定位置のｍ／ｎｂレジスタファイル１１３，１１４にデータ保持させるオブジェクトコードをデータ生成することができる。
【０１５２】
特に、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをｍ／ｎｂレジスタファイル１１３，１１４などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたｍ／ｎｂレジスタファイル１１３，１１４の連続する複数サイクルのコンテキストでの位置を一致させるので、連携する処理データを一定位置のｍ／ｎｂレジスタファイル１１３，１１４にデータ保持させるオブジェクトコードを所定のデータ処理でデータ生成することができる。
【０１５３】
なお、本形態のデータ処理装置３００のソースコードからオブジェクトコードをデータ生成するコンピュータプログラムはアレイ型プロセッサ１００と一対一に対応しているので、そのコンピュータプログラムがデータ格納されたＣＤ−ＲＯＭ１０８などの情報記憶媒体は一個以上のアレイ型プロセッサ１００とセットで販売することが好適である。
【０１５４】
その場合、条件記憶手段２１２の制約条件やオブジェクト記憶手段２２５のオブジェクトコードもアレイ型プロセッサ１００に対応するので、その制約条件やオブジェクトコードを構造データとしてコンピュータプログラムとともに情報記憶媒体にデータ格納することが好適である。
【０１５５】
また、アレイ型プロセッサ１００として複数種類の製品を販売するような場合、複数種類のアレイ型プロセッサ１００で共通する一つのコンピュータプログラムを一個の情報記憶媒体にデータ格納して販売し、複数種類のアレイ型プロセッサ１００を選択的に販売するときに、対応する制約条件やオブジェクトコードがデータ格納された複数種類の情報記憶媒体をともに販売することが好適である。
【０１５６】
なお、本発明は上記形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、上記形態ではソースコードからオブジェクトコードをデータ生成する一連の処理動作をデータ処理装置３００が一つのコンピュータプログラムに対応して実行することを例示したが、ソースコードからＲＴＬ記述をデータ生成するデータ処理装置およびコンピュータプログラム、ＲＴＬ記述からネットリストをデータ生成するデータ処理装置およびコンピュータプログラム、ネットリストからオブジェクトコードをデータ生成するデータ処理装置およびコンピュータプログラム、を別個とすることも可能である。
【０１５７】
また、上記形態ではＲＴＬ記述の“ｘｂ”のデータ処理を“ｘ＝Ｙｍ＋Ｚｎ”なるＹ個のｍｂＡＬＵ１１５とＺ個のｎｂＡＬＵ１１６とに割り付けるとき、“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出してから、その余数を“ｎ”で除算した結果の整数“Ｚ”を算出することにより、“ｘｂ”のデータ処理をビット数が多数のｍｂＡＬＵ１１５に極力割り付け、余数部分のみビット数が少数のｎｂＡＬＵ１１６に割り付けることを例示した。
【０１５８】
しかし、これでは“ｎｂ”が“１(bit)”で“ｍｂ”が“３２(bit)”の場合に、“３０(bit)”のデータ処理が３０個のｎｂＡＬＵ１１６で実行されるようなことが発生する。そこで、これを解消するためには、データ処理をｍ／ｎｂＡＬＵ１１５，１１６に割り付ける所定の閾値をデータ設定し、“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出してから、その余数が閾値より少数の場合に整数“Ｚ”を算出し、余数が閾値以上の場合は“Ｙ”に“１”を加算して“Ｚ＝０”とすることが好適である。
【０１５９】
この場合、ｍｂＡＬＵ１１５に極力割り付けられた“ｘｂ”のデータ処理の余数部分を、ビット数に対応してｍ／ｎｂＡＬＵ１１５，１１６の適切な一方に割り付けることができるので、例えば、“ｎｂ”が“１(bit)”で“ｍｂ”が“３２(bit)”の場合に、“９(bit)”以上のデータ処理はｍｂＡＬＵ１１５で実行して“８(bit)”以下のデータ処理はｎｂＡＬＵ１１６で実行するようなことが可能となる。
【０１６０】
さらに、上記形態ではアレイ型プロセッサ１００が“８(bit)”からなる“ｍｂ”と“１(bit)”からなる“ｎｂ”との二種類の回路資源を具備していることを例示したが、このような回路資源の種類の個数やビット数も各種に設定することが可能である。
【０１６１】
このような場合でも、適切な制約条件がデータ登録されることにより、データ処理装置３００はアレイ型プロセッサ１００に適切なオブジェクトコードをデータ生成することができる。例えば、アレイ型プロセッサがｍｂＡＬＵ１１５しか具備しないならば、前述の“ｘ”を“ｍ”で除算した結果の整数部分“Ｙ”を算出し、その余数が存在しないならば“ｘｂ”のデータ処理を“ｘ＝Ｙｍ”なるＹ個のｍｂＡＬＵ１１５に割り付け、余数が存在するならば“ｘ≒(Ｙ＋１)ｍ”なる(Ｙ＋１)個のｍｂＡＬＵ１１５に割り付けることが好適である。
【０１６２】
また、上記形態ではアレイ型プロセッサ１００のプロセッサエレメント１０７がｍ／ｎｂＡＬＵ１１５，１１６でデータ処理を実行することを例示したが、これら以外にデータ処理を実行する回路資源をプロセッサエレメント１０７に形成することも可能である。
【０１６３】
例えば、少なくともマスク回路によりｍｂデータとｎｂデータとのデータ操作を実行するＤＭＵ(Data Manipulation Unit)なる回路資源をプロセッサエレメント１０７に形成することも可能であり、このようなアレイ型プロセッサ１００を本出願人は特願２００１−２６３８０４号として出願している。このような場合でも、その回路資源に対応して制約条件をデータ設定することにより、データ処理装置３００はアレイ型プロセッサ１００のオブジェクトコードを適切にデータ生成することができる。
【０１６４】
さらに、上記形態ではアレイ型プロセッサ１００がマトリクス回路部１０５に配列されたプロセッサエレメント１０７のみでデータ処理を実行することを例示したが、マトリクス回路部１０５の外側に専用の演算回路を形成することも可能である。
【０１６５】
例えば、一般に乗算器は回路規模が過大なので、マトリクス回路部１０５の外部に配置して必要によりプロセッサエレメント１０７からアクセスさせることが可能である。このような場合でも、その回路資源に対応して制約条件をデータ設定することにより、データ処理装置３００はアレイ型プロセッサ１００のオブジェクトコードを適切にデータ生成することができる。ただし、上述のようにプロセッサエレメント１０７がマトリクス回路部１０５の外部回路にアクセスするときは、これがＤＦＧをＣＤＦＧにスケジューリングするときの状態遷移の制約条件となる。
【０１６６】
さらに、上記形態では処理回路であるプロセッサエレメント１０７が演算器であるｍ／ｎｂＡＬＵ１１５，１１６からなるアレイ型プロセッサ１００を並列演算装置として例示したが、この並列演算装置を処理回路がＬＵＴ(Look Up Table)からなるＤＲＬ(Dynamic Reconfigurable Logic)とすることも可能である。
【０１６７】
上記形態のアレイ型プロセッサ１００では、プロセッサエレメント１０７にデータ設定する動作命令をデータ更新することでハードウェア構成を変更するが、ＤＲＬではＬＵＴの登録内容をデータ更新することでハードウェア構成を変更するので、これを実現するオブジェクトコードをデータ処理装置３００でデータ生成することが可能である。
【０１６８】
また、上記形態ではスイッチエレメント１０８のインストラクションメモリが隣接するプロセッサエレメント１０７のインストラクションメモリ１１１で兼用されており、状態管理部１０３がプロセッサエレメント１０７とスイッチエレメント１０８との一組のインストラクションポインタを対応するプロセッサエレメント１０７のインストラクションメモリ１１１に供給することを例示した。
【０１６９】
しかし、プロセッサエレメント１０７のインストラクションメモリ１１１とは別個にスイッチエレメント１０８が自身専用のインストラクションメモリを具備し、状態管理部１０３がプロセッサエレメント１０７とスイッチエレメント１０８とのインストラクションポインタを対応するプロセッサエレメント１０７とスイッチエレメント１０８とのインストラクションメモリ１１１等に別個に供給することも可能である。
【０１７０】
また、プロセッサエレメント１０７のインストラクションメモリをスイッチエレメント１０８のインストラクションメモリで兼用し、状態管理部１０３がプロセッサエレメント１０７とスイッチエレメント１０８との一組のインストラクションポインタを対応するスイッチエレメント１０８のインストラクションメモリに供給することも可能である。
【０１７１】
さらに、上記形態ではアレイ型プロセッサ１００に状態管理部１０３が一個のみ形成されていることを例示したが、これを複数としてプロセッサエレメント１０７を所定個数ずつ管理させることも可能である。このような場合、複数の状態管理部１０３を代表する一個が統合管理することや、複数の状態管理部１０３を統合管理する上位管理部(図示せず)を形成することが好適である。
【０１７２】
また、上記形態では連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部１０５の一定位置のｍ／ｎｂレジスタファイル１１３，１１４に共通に割り付けるため、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをｍ／ｎｂレジスタファイル１１３，１１４などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたｍ／ｎｂレジスタファイル１１３，１１４の連続する複数サイクルのコンテキストでの位置を一致させることを例示した。
【０１７３】
しかし、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるｍ／ｎｂレジスタファイル１１３，１１４のマトリクス回路部１０５での位置を固定してから、他のネットリストを他のｍ／ｎｂレジスタファイル１１３，１１４などに複数サイクルのコンテキストごとに割り付けることも可能である。
【０１７４】
また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるｍ／ｎｂレジスタファイル１１３，１１４のマトリクス回路部１０５での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のｍ／ｎｂレジスタファイル１１３，１１４などに複数サイクルのコンテキストごとに割り付けることも可能である。
【０１７５】
これらの場合、コンテキストごとの回路資源の使用範囲を削減することができるので、図１７(ａ)に示すように、マトリクス回路部１０５に配列されているプロセッサエレメント１０７が少数でもコンテキストごとにネットリストを割り付けることが可能となる。
【０１７６】
なお、同図(ｂ)に示すように、従来のＦＰＧＡ(Field Programmable Gate Array)やＡＳＩＣ(Application Specific Integrated Circuit)では、上述のような複数サイクルのコンテキストごとのネットリストを一面の回路資源に割り付けることになるので、多数の専用の回路資源が必要であり、一度形成したハードウェアを変更できないのでデータ処理の汎用性もない。
【０１７７】
しかし、本形態のアレイ型プロセッサ１００では、オブジェクトコードによりハードウェアを変更できるのでデータ処理の汎用性が良好であり、一連のデータ処理を複数サイクルのコンテキストごとに時分割に実行するので、一面に配列された回路資源の回路規模が削減されている。
【０１７８】
さらに、上記形態では状態管理部１０３で管理される順次遷移する複数段階の動作状態とマトリクス回路部１０５で順次切り換えられる動作サイクルごとのコンテキストとが一対一に対応することを例示したが、例えば、制約条件により複数段階の動作状態から一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を一つのコンテキストに割り付けることも可能である。
【０１７９】
例えば、図１５に示すように、連続する二つのコンテキストに割り付けられた連続する二つの動作状態で、ｍ／ｎｂレジスタファイル１１３，１１４の位置は共通しているがｍ／ｎｂＡＬＵ１１５，１１６の位置が重複していない場合、図１８に示すように、その連続する二つの動作状態は一つのコンテキストに割り付けることが可能である。
【０１８０】
より具体的には、前述のように動作状態のスケジューリングは複数種類の制約条件に対応して実行され、メモリアクセスなどが発生した場合には割り付けるｍ／ｎｂＡＬＵ１１５，１１６の割付個数に関係なく動作状態が移行するので、図１９(ａ)に示すように、ｍ／ｎｂＡＬＵ１１５，１１６の割付個数が少数の動作状態が発生することがある。このようにデータ生成された複数の動作状態を複数のコンテキストに一対一に割り付けると、あるコンテキストではアレイ型プロセッサ１００に配列されているｍ／ｎｂＡＬＵ１１５，１１６の極一部しか動作しない状態が発生する。
【０１８１】
そこで、連続する複数の動作状態でｍ／ｎｂＡＬＵ１１５，１１６の割付個数を順次積算し、その積算個数が所定の許容個数を超過するごとにコンテキストを移行すれば、同図(ｂ)に示すように、複数のコンテキストの各々に極力多数のｍ／ｎｂＡＬＵ１１５，１１６を割り付けることができる。
【０１８２】
例えば、第一から第三の動作状態が第一のコンテキストに割り付けられ、第五および第六の動作状態が第三のコンテキストに割り付けられた場合、そのオブジェクトプログラムに対応して動作するアレイ型プロセッサ１００では、図２０に示すように、第一の動作サイクルでは第一のコンテキストの第一の動作状態のデータ処理が実行され、第二の動作サイクルでは第一のコンテキストの第二の動作状態のデータ処理が実行され、第三の動作サイクルでは第一のコンテキストの第三の動作状態のデータ処理が実行される。
【０１８３】
第四の動作サイクルでは第一のコンテキストが第二のコンテキストに切り換えられて第四の動作状態のデータ処理が実行され、第五の動作サイクルでは第二のコンテキストが第三のコンテキストに切り換えられて第五の動作状態のデータ処理が実行される。
【０１８４】
上述のように複数の動作状態を一つのコンテキストに割り付けると、アレイ型プロセッサ１００でのデータ処理の所要時間は一つの動作状態を一つのコンテキストに割り付けた場合と同一であるが、オブジェクトコードにデータ設定されるコンテキストの個数が削減されるので、オブジェクトコードのデータ容量を圧縮することができる。
【０１８５】
さらに、アレイ型プロセッサ１００のオブジェクトコードを一時保持するコードメモリ１０２の記憶容量も削減することができ、状態管理部１０３によるマトリクス回路部１０５のコンテキストの切換回数も削減できるので、その消費電力も縮小することができる。
【０１８６】
また、上記には一つのコンテキストに連続する二つの動作状態を割り付けることを例示したが、二つ以上の動作状態を割り付けることも可能であり、図２１および図２２に示すように、連続しない複数の動作状態を割り付けることも可能である。この場合は、状態管理部１０３によるマトリクス回路部１０５のコンテキストの切換回数は削減できない場合もあるが、オブジェクトコードにデータ設定されるコンテキストの個数は削減することができる。
【０１８７】
さらに、上記形態ではデータ処理装置３００でデータ生成されたオブジェクトコードがアレイ型プロセッサ１００に一時保持されることを例示したが、例えば、データ処理装置３００がデータ生成するオブジェクトコードに対応してアレイ型プロセッサ１００がリアルタイムに動作することも不可能ではない。
【０１８８】
また、上記形態ではコードメモリ１０２に一時保持されたオブジェクトコードに対応して、状態管理部１０３が動作サイクルごとにマトリクス回路部１０５のコンテキストを切換制御することを例示したが、マトリクス回路部１０５が複数のコンテキストをデータ記憶して動作サイクルごとに一つずつ対応動作を実行することも可能である。
【０１８９】
このとき、状態管理部１０３はマトリクス回路部１０５にデータ記憶された複数のコンテキストの全部を複数サイクルごとにデータ更新することも可能であるが、マトリクス回路部１０５がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に、対応動作が実行されたコンテキストを状態管理部１０３が新規のコンテキストにデータ更新することも可能である。この場合、マトリクス回路部１０５は所定個数のコンテキストしかデータ保持しないが、コンテキストの対応動作を個数に制限なく連続的に実行することができる。
【０１９０】
例えば、図２３に示すように、マトリクス回路部１０５が第一から第六のコンテキストをデータ保持して順番にデータ処理を実行する場合、第四のコンテキストのデータ処理を実行しているときには、状態管理部１０３はデータ処理が終了した第一から第三のコンテキストをデータ更新することができる。
【０１９１】
ただし、図２２に示すように、一つのコンテキストを複数の動作サイクルで繰り返し使用するような場合もあるので、例えば、図２４に示すように、マトリクス回路部１０５がデータ保持した第一から第六のコンテキストのデータ処理を順番に実行してから、第一から第三のコンテキストのデータ処理を再度実行するような場合には、状態管理部１０３はデータ処理が終了した第四から第五のコンテキストをデータ更新することができる。
【０１９２】
上述のような動作をアレイ型プロセッサ１００に実行させるためには、マトリクス回路部１０５がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に、対応動作が実行されたコンテキストを状態管理部１０３が新規のコンテキストにデータ更新するように、データ処理装置３００がＣＤＦＧをデータ生成すれば、このＣＤＦＧからデータ生成されたオブジェクトコードに対応してアレイ型プロセッサ１００に上述の動作を実行させることができる。
【０１９３】
さらに、上記形態ではＲＡＭ３０４等に格納されているコンピュータプログラムに対応してＣＰＵ３０１が動作することにより、データ処理装置３００の各種機能として各種手段が論理的に実現されることを例示した。しかし、このような各種手段の各々を固有のハードウェアとして形成することも可能であり、一部をソフトウェアとしてＲＡＭ３０４等に格納するとともに一部をハードウェアとして形成することも可能である。
【図面の簡単な説明】
【０１９４】
【図１】本発明の実施の一形態のデータ処理システムの論理構造を示す模式的なブロック図である。
【図２】データ処理装置の論理構造を示す模式的なブロック図である。
【図３】データ処理装置の物理構造を示すブロック図である。
【図４】ソースコードの記述内容と並列演算装置であるアレイ型プロセッサのハードウェアとの対応関係を示す模式図である。
【図５】(ａ)はアレイ型プロセッサの全体構造を示す模式的なブロック図、(ｂ)は処理回路であるプロセッサエレメントの内部構造を示す模式的なブロック図である。
【図６】ＣＤＦＧの状態遷移とアレイ型プロセッサのコンテキスト切換との対応関係を示す模式図である。
【図７】ソースコードの具体例を示す模式図である。
【図８】ＤＦＧの具体例を示す模式図である。
【図９】(ａ)は本形態のアレイ型プロセッサのＣＤＦＧの具体例を示す模式図、(ｂ)は従来のアレイ型プロセッサのＣＤＦＧの具体例を示す模式図である。
【図１０】他のソースコードの具体例を示す模式図である。
【図１１】他のＣＤＦＧの具体例を示す模式図である。
【図１２】ＣＤＦＧのデータ処理に回路資源が割り付けられた状態を示す模式図である。
【図１３】“ｘｂ”のデータ処理が“ｍ／ｎｂ”の回路資源に割り付けられる状態を示す模式図である。
【図１４】連続する二つのコンテキストごとにネットリストが割り付けられた状態を示す模式図である。
【図１５】連続する二つのコンテキストのネットリストが連携された状態を示すを示す模式図である。
【図１６】データ処理装置によるデータ処理方法を示すフローチャートである。
【図１７】(ａ)は本形態のアレイ型プロセッサの二つのコンテキストにネットリストが割り付けられた状態を示す模式図、(ｂ)は従来の並列演算装置の一面にネットリストが割り付けられた状態を示す模式図である。
【図１８】連続する二つの動作状態のネットリストが一つのコンテキストに割り付けられた状態を示す模式図である。
【図１９】ｍ／ｎｂＡＬＵの割付個数による動作状態とコンテキストとの対応関係を示す模式図である。
【図２０】連続する複数の動作状態が一つのコンテキストに割り付けられた状態を示す模式図である。
【図２１】ｍ／ｎｂＡＬＵの割付個数による動作状態とコンテキストとの対応関係を示す模式図である。
【図２２】連続しない複数の動作状態が一つのコンテキストに割り付けられた状態を示す模式図である。
【図２３】連続する複数のコンテキストの一つがアクティブな状態を示す模式図である。
【図２４】連続する複数のコンテキストがアクティブな状態を示す模式図である。
【符号の説明】
【０１９５】
１００    アレイ型プロセッサ
１０３    状態管理部
１０７    プロセッサエレメント
１０８    スイッチエレメント
１１３    ｍｂ回路資源であるｍｂレジスタファイル
１１４    ｎｂ回路資源であるｎｂレジスタファイル
１１５    ｍｂ回路資源であるｍｂＡＬＵ
１１６    ｎｂ回路資源であるｎｂＡＬＵ
２００    データ処理システム
２０１    ソース供給手段
２０２    オブジェクト供給手段
２０３    データ入力手段
２１１    ソース入力手段
２１２    条件記憶手段
２１３    オブジェクト生成手段
２１４    オブジェクト出力手段
２２１    グラフ生成手段
２２２    スケジュール生成手段
２２３    記述生成手段
２２４    リスト生成手段
２２５    オブジェクト記憶手段
２２６    状態変換手段
２２７    処理配置手段
２２８    コード変換手段
２２９    配線変換手段
３００    データ処理装置
３０１    コンピュータの主体であるＣＰＵ
３０３    情報記憶媒体であるＲＯＭ
３０４    情報記憶媒体であるＲＡＭ
３０５    情報記憶媒体であるＨＤＤ
３０６    情報記憶媒体であるＦＤ
３０８    情報記憶媒体であるＣＤ−ＲＯＭ
【図１】
2006351047.tif 000003
【図２】
2006351047.tif 000004
【図３】
2006351047.tif 000005
【図４】
2006351047.tif 000006
【図５】
2006351047.tif 000007
【図６】
2006351047.tif 000008
【図７】
2006351047.tif 000009
【図８】
2006351047.tif 000010
【図９】
2006351047.tif 000011
【図１０】
2006351047.tif 000012
【図１１】
2006351047.tif 000013
【図１２】
2006351047.tif 000014
【図１３】
2006351047.tif 000015
【図１４】
2006351047.tif 000016
【図１５】
2006351047.tif 000017
【図１６】
2006351047.tif 000018
【図１７】
2006351047.tif 000019
【図１８】
2006351047.tif 000020
【図１９】
2006351047.tif 000021
【図２０】
2006351047.tif 000022
【図２１】
2006351047.tif 000023
【図２２】
2006351047.tif 000024
【図２３】
2006351047.tif 000025
【図２４】
2006351047.tif 000026