(57)【特許請求の範囲】
【請求項１】
入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で前記処理データを分散処理するデータ処理システムであって、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、を有しており、
前記アレイ型プロセッサのデータパス部に他の前記データ処理装置で処理された処理データの少なくとも一部が伝送され、
前記アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他の前記データ処理装置に伝送されるとともに前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部が他の前記データ処理装置に伝送され、
前記アレイ型プロセッサが、各種データを更新自在に一時記憶するデータメモリも有しており、
複数の前記プロセッサエレメントの少なくとも一部が前記命令コードを更新自在に一時保持するインストラクションメモリを有しており、
前記状態管理部が、多数ビットのアドレスデータを前記インストラクションメモリへの前記命令コードのデータ格納に必要な少数ビットの複数のアドレスデータにデコードするインストラクションデコーダを有しており、
入力される多数ビットの前記アドレスデータを前記状態管理部まで伝送する少数の大容量バスと、
前記状態管理部から複数の前記プロセッサエレメントまで少数ビットの前記アドレスデータを伝送する多数の小容量バスと、を有しており、
このデータメモリを前記アレイ型プロセッサと他の前記データ処理装置とが共有するデータ処理システム。
【請求項２】
入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で前記処理データを分散処理するデータ処理システムであって、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、を有しており、
前記アレイ型プロセッサのデータパス部に他の前記データ処理装置で処理された処理データの少なくとも一部が伝送されるとともに他の前記データ処理装置が前記データ処理に対応して発行するイベントデータの少なくとも一部が前記状態管理部に伝送され、
前記アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他の前記データ処理装置に伝送され、
前記アレイ型プロセッサが、各種データを更新自在に一時記憶するデータメモリも有しており、
複数の前記プロセッサエレメントの少なくとも一部が前記命令コードを更新自在に一時保持するインストラクションメモリを有しており、
前記状態管理部が、多数ビットのアドレスデータを前記インストラクションメモリへの前記命令コードのデータ格納に必要な少数ビットの複数のアドレスデータにデコードするインストラクションデコーダを有しており、
入力される多数ビットの前記アドレスデータを前記状態管理部まで伝送する少数の大容量バスと、
前記状態管理部から複数の前記プロセッサエレメントまで少数ビットの前記アドレスデータを伝送する多数の小容量バスと、を有しており、
このデータメモリを前記アレイ型プロセッサと他の前記データ処理装置とが共有するデータ処理システム。
【請求項３】
入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で前記処理データを分散処理するデータ処理システムであって、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、を有しており、
前記アレイ型プロセッサのデータパス部に他の前記データ処理装置で処理された処理データの少なくとも一部が伝送されるとともに他の前記データ処理装置が前記データ処理に対応して発行するイベントデータの少なくとも一部が前記状態管理部に伝送され、
前記アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他の前記データ処理装置に伝送されるとともに前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部が他の前記データ処理装置に伝送され、
前記アレイ型プロセッサが、各種データを更新自在に一時記憶するデータメモリも有しており、
複数の前記プロセッサエレメントの少なくとも一部が前記命令コードを更新自在に一時保持するインストラクションメモリを有しており、
前記状態管理部が、多数ビットのアドレスデータを前記インストラクションメモリへの前記命令コードのデータ格納に必要な少数ビットの複数のアドレスデータにデコードするインストラクションデコーダを有しており、
入力される多数ビットの前記アドレスデータを前記状態管理部まで伝送する少数の大容量バスと、
前記状態管理部から複数の前記プロセッサエレメントまで少数ビットの前記アドレスデータを伝送する多数の小容量バスと、を有しており、
このデータメモリを前記アレイ型プロセッサと他の前記データ処理装置とが共有するデータ処理システム。
【請求項４】
入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で前記処理データを分散処理するデータ処理システムであって、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、を有しており、
前記アレイ型プロセッサのデータパス部に他の前記データ処理装置で処理された処理データの少なくとも一部が伝送され、
前記アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他の前記データ処理装置に伝送されるとともに前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部が他の前記データ処理装置に伝送され、
前記アレイ型プロセッサが、各種データを更新自在に一時記憶するデータメモリも有しており、
前記アレイ型プロセッサは、他の前記データ処理装置による前記データメモリのデータ読出に対応してアドレスデータを発行するアドレス発行回路と、このアドレス発行回路で発行された前記アドレスデータで前記データメモリから読み出された読出データを出力するデータ読出回路と、を別個に有しており、
前記アドレス発行回路と前記データ読出回路とが前記データパス部の両側に分散配置されており、
このデータメモリを前記アレイ型プロセッサと他の前記データ処理装置とが共有するデータ処理システム。
【請求項５】
入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で前記処理データを分散処理するデータ処理システムであって、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、を有しており、
前記アレイ型プロセッサのデータパス部に他の前記データ処理装置で処理された処理データの少なくとも一部が伝送されるとともに他の前記データ処理装置が前記データ処理に対応して発行するイベントデータの少なくとも一部が前記状態管理部に伝送され、
前記アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他の前記データ処理装置に伝送され、
前記アレイ型プロセッサが、各種データを更新自在に一時記憶するデータメモリも有しており、
前記アレイ型プロセッサは、他の前記データ処理装置による前記データメモリのデータ読出に対応してアドレスデータを発行するアドレス発行回路と、このアドレス発行回路で発行された前記アドレスデータで前記データメモリから読み出された読出データを出力するデータ読出回路と、を別個に有しており、
前記アドレス発行回路と前記データ読出回路とが前記データパス部の両側に分散配置されており、
このデータメモリを前記アレイ型プロセッサと他の前記データ処理装置とが共有するデータ処理システム。
【請求項６】
入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で前記処理データを分散処理するデータ処理システムであって、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、を有しており、
前記アレイ型プロセッサのデータパス部に他の前記データ処理装置で処理された処理データの少なくとも一部が伝送されるとともに他の前記データ処理装置が前記データ処理に対応して発行するイベントデータの少なくとも一部が前記状態管理部に伝送され、
前記アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他の前記データ処理装置に伝送されるとともに前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部が他の前記データ処理装置に伝送され、
前記アレイ型プロセッサが、各種データを更新自在に一時記憶するデータメモリも有しており、
前記アレイ型プロセッサは、他の前記データ処理装置による前記データメモリのデータ読出に対応してアドレスデータを発行するアドレス発行回路と、このアドレス発行回路で発行された前記アドレスデータで前記データメモリから読み出された読出データを出力するデータ読出回路と、を別個に有しており、
前記アドレス発行回路と前記データ読出回路とが前記データパス部の両側に分散配置されており、
このデータメモリを前記アレイ型プロセッサと他の前記データ処理装置とが共有するデータ処理システム。
【請求項７】
前記アレイ型プロセッサは、他の前記データ処理装置により読み出される前記イベントデータが前記状態管理部により格納されることと、前記状態管理部により読み出される前記イベントデータが他の前記データ処理装置により格納されることと、の少なくとも一方を実行する同期制御回路を有している請求項１ないし６の何れか一項に記載のデータ処理システム。
【請求項８】
前記アレイ型プロセッサは、自身と他の前記データ処理装置との１個に前記データメモリを排他使用させる排他制御回路を有している請求項１ないし７の何れか一項に記載のデータ処理システム。
【請求項９】
前記データメモリが前記データパス部に分散された複数のメモリユニットからなり、
これら複数のメモリユニットを１個の前記データメモリとして他の前記データ処理装置に認識させる仮想認識手段を前記アレイ型プロセッサが有している請求項１ないし８の何れか一項に記載のデータ処理システム。
【請求項１０】
複数の前記メモリユニットの少なくとも一部は、データ読出／書込を受け付けるアクセスポートとアドレスデータごとの記憶エリアとが各々複数のマルチポートメモリからなり、前記アレイ型プロセッサと他の前記データ処理装置とによるデータ読出／書込を互いに異なる前記アクセスポートと前記記憶エリアとで同時に受け付ける請求項１ないし９の何れか一項に記載のデータ処理システム。
【請求項１１】
複数の前記メモリユニットの少なくとも一部が複数の前記プロセッサエレメントの少なくとも一部に内蔵されており、
複数の前記プロセッサエレメントの一部が前記メモリユニットを使用しているときに他部の前記プロセッサエレメントで使用されていない前記メモリユニットを他の前記データ処理装置が使用する請求項９に記載のデータ処理システム。
【請求項１２】
複数の前記プロセッサエレメントの少なくとも一部が処理データを一時保持するレジスタファイルを有しており、複数の前記メモリユニットの少なくとも一部が前記レジスタファイルからなる請求項９または１１に記載のデータ処理システム。
【請求項１３】
複数の前記プロセッサエレメントの少なくとも一部が前記命令コードを更新自在に一時保持するインストラクションメモリを有しており、複数の前記メモリユニットの少なくとも一部が前記インストラクションメモリからなる請求項９または１１に記載のデータ処理システム。
【請求項１４】
前記アレイ型プロセッサは、複数の前記スイッチエレメントにより切換制御されて複数の前記プロセッサエレメントの処理データが伝送されるデータバスを有しており、このデータバスに前記プロセッサエレメントと並列に複数の前記メモリユニットの少なくとも一部が接続されている請求項９または１１ないし１３の何れか一項に記載
のデータ処理システム。
【請求項１５】
前記アレイ型プロセッサは、複数の前記スイッチエレメントにより切換制御されて複数の前記プロセッサエレメントの処理データが伝送されるデータバスと、入力される前記命令コードが複数の前記プロセッサエレメントまで伝送される命令バスと、を別個に有しており、
他の前記データ処理装置が使用する前記メモリユニットの読出／書込データが前記命令バスで伝送される請求項９ないし１４の何れか一項に記載のデータ処理システム。
【請求項１６】
請求項１または４に記載のデータ処理システムのアレイ型プロセッサであって、
個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、各種データを更新自在に一時記憶するデータメモリと、このデータメモリを他の前記データ処理装置に共有させるメモリ共有手段と、を有しており、
前記データパス部は、他の前記データ処理装置で処理された処理データの少なくとも一部が伝送され、処理した処理データの少なくとも一部を他の前記データ処理装置に伝送し、
前記状態管理部は、前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部を他の前記データ処理装置に伝送する、アレイ型プロセッサ。
【請求項１７】
請求項２または５に記載のデータ処理システムのアレイ型プロセッサであって、
個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、各種データを更新自在に一時記憶するデータメモリと、このデータメモリを他の前記データ処理装置に共有させるメモリ共有手段と、を有しており、
前記データパス部は、他の前記データ処理装置で処理された処理データの少なくとも一部が伝送され、処理した処理データの少なくとも一部を他の前記データ処理装置に伝送し、
前記状態管理部は、他の前記データ処理装置がデータ処理に対応して発行するイベントデータの少なくとも一部が伝送される、アレイ型プロセッサ。
【請求項１８】
請求項３または６に記載のデータ処理システムのアレイ型プロセッサであって、
個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の前記命令コードからなるコンテキストを前記コンピュータプログラムと前記イベントデータとに対応して順次切り換える状態管理部と、各種データを更新自在に一時記憶するデータメモリと、このデータメモリを他の前記データ処理装置に共有させるメモリ共有手段と、を有しており、
前記データパス部は、他の前記データ処理装置で処理された処理データの少なくとも一部が伝送され、処理した処理データの少なくとも一部を他の前記データ処理装置に伝送し、
前記状態管理部は、他の前記データ処理装置がデータ処理に対応して発行するイベントデータの少なくとも一部が伝送され、前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部を他の前記データ処理装置に伝送する、アレイ型プロセッサ。
【請求項１９】
請求項１または３に記載のデータ処理システムの他の前記データ処理装置であって、
コンピュータプログラムが事前にデータ設定されている情報記憶媒体と、処理データとイベントデータとが入力されるデータ入力手段と、入力される前記処理データを前記コンピュータプログラムと前記イベントデータとに対応してデータ処理するデータ処理手段と、このデータ処理手段で処理された処理データとイベントデータとを出力するデータ出力手段と、前記処理データなどの各種データを一時記憶するデータ記憶手段と、を有しており、
前記データ入力手段は、前記処理データの少なくとも一部とイベントデータとを前記アレイ型プロセッサから入力し、
前記データ処理手段は、前記データ処理の少なくとも一部に対応して新規のイベントデータを発行し、
前記データ出力手段は、前記処理データの少なくとも一部を前記アレイ型プロセッサに出力し、
前記各種データの少なくとも一部を前記アレイ型プロセッサのデータメモリに一時記憶させる、データ処理装置。
【請求項２０】
請求項２または４に記載のデータ処理システムの他の前記データ処理装置であって、
コンピュータプログラムが事前にデータ設定されている情報記憶媒体と、処理データとイベントデータとが入力されるデータ入力手段と、入力される前記処理データを前記コンピュータプログラムと前記イベントデータとに対応してデータ処理するデータ処理手段と、このデータ処理手段で処理された処理データとイベントデータとを出力するデータ出力手段と、前記処理データなどの各種データを一時記憶するデータ記憶手段と、を有しており、
前記データ入力手段は、前記処理データの少なくとも一部を前記アレイ型プロセッサから入力し、
前記データ処理手段は、前記データ処理の少なくとも一部に対応して新規のイベントデータを発行し、
前記データ出力手段は、前記処理データの少なくとも一部と新規に発行された前記イベントデータとを前記アレイ型プロセッサに出力し、
前記各種データの少なくとも一部を前記アレイ型プロセッサのデータメモリに一時記憶させる、データ処理装置。
【請求項２１】
請求項３または６に記載のデータ処理システムの他の前記データ処理装置であって、
コンピュータプログラムが事前にデータ設定されている情報記憶媒体と、処理データとイベントデータとが入力されるデータ入力手段と、入力される前記処理データを前記コンピュータプログラムと前記イベントデータとに対応してデータ処理するデータ処理手段と、このデータ処理手段で処理された処理データとイベントデータとを出力するデータ出力手段と、前記処理データなどの各種データを一時記憶するデータ記憶手段と、を有しており、
前記データ入力手段は、前記処理データの少なくとも一部とイベントデータとを前記アレイ型プロセッサから入力し、
前記データ処理手段は、前記データ処理の少なくとも一部に対応して新規のイベントデータを発行し、
前記データ出力手段は、前記処理データの少なくとも一部と新規に発行された前記イベントデータとを前記アレイ型プロセッサに出力し、
前記各種データの少なくとも一部を前記アレイ型プロセッサのデータメモリに一時記憶させる、データ処理装置。
【請求項２２】
請求項１６に記載のアレイ型プロセッサのためのコンピュータプログラムであって、
前記データパス部に他の前記データ処理装置で処理された処理データの少なくとも一部を入力させる処理と、
前記データパス部に処理した処理データの少なくとも一部を他の前記データ処理装置に出力させる処理と、
前記状態管理部に前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部を他の前記データ処理装置に出力させる処理と、
前記データメモリを他の前記データ処理装置に共有させる処理と、
を前記アレイ型プロセッサに実行させるためのコンピュータプログラム。
【請求項２３】
請求項１７に記載のアレイ型プロセッサのためのコンピュータプログラムであって、
前記データパス部に他の前記データ処理装置で処理された処理データの少なくとも一部を入力させる処理と、
前記データパス部に処理した処理データの少なくとも一部を他の前記データ処理装置に出力させる処理と、
前記状態管理部に他の前記データ処理装置がデータ処理に対応して発行するイベントデータの少なくとも一部を入力させる処理と、
前記データメモリを他の前記データ処理装置に共有させる処理と、
を前記アレイ型プロセッサに実行させるためのコンピュータプログラム。
【請求項２４】
請求項１８に記載のアレイ型プロセッサのためのコンピュータプログラムであって、
前記データパス部に他の前記データ処理装置で処理された処理データの少なくとも一部を入力させる処理と、
前記データパス部に処理した処理データの少なくとも一部を他の前記データ処理装置に出力させる処理と、
前記状態管理部に他の前記データ処理装置がデータ処理に対応して発行するイベントデータの少なくとも一部を入力させる処理と、
前記状態管理部に前記データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部を他の前記データ処理装置に出力させる処理と、
前記データメモリを他の前記データ処理装置に共有させる処理と、を前記アレイ型プロセッサに実行させるためのコンピュータプログラム。
【請求項２５】
請求項１９に記載のデータ処理装置のためのコンピュータプログラ  前記処理データの少なくとも一部とイベントデータとを前記アレイ型プロセッサから入力する処理と、
前記データ処理の少なくとも一部に対応して新規のイベントデータを発行する処理と、
前記処理データの少なくとも一部を前記アレイ型プロセッサに出力する処理と、
前記各種データの少なくとも一部を前記アレイ型プロセッサのデータメモリに一時記憶させる処理と、
を前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項２６】
請求項２０に記載のデータ処理装置のためのコンピュータプログラムであって、
前記処理データの少なくとも一部を前記アレイ型プロセッサから入力する処理と、
前記データ処理の少なくとも一部に対応して新規のイベントデータを発行する処理と、
前記処理データの少なくとも一部と新規に発行された前記イベントデータとを前記アレイ型プロセッサに出力する処理と、
前記各種データの少なくとも一部を前記アレイ型プロセッサのデータメモリに一時記憶させる処理と、
を前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項２７】
請求項２１に記載のデータ処理装置のためのコンピュータプログラムであって、
前記処理データの少なくとも一部とイベントデータとを前記アレイ型プロセッサから入力する処理と、
前記データ処理の少なくとも一部に対応して新規のイベントデータを発行する処理と、
前記処理データの少なくとも一部と新規に発行された前記イベントデータとを前記アレイ型プロセッサに出力する処理と、
前記各種データの少なくとも一部を前記アレイ型プロセッサのデータメモリに一時記憶させる処理と、
を前記データ処理装置に実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、並列に接続されている複数のデータ処理装置でデータ処理を分担するデータ処理システムに関し、特に、複数のデータ処理装置の少なくとも１個がアレイ型プロセッサからなるデータ処理システムに関する。
【０００２】
【従来の技術】
現在、各種のデータ処理を自在に実行できるデータ処理装置としては、いわゆるＣＰＵ(Central Processing Unit)またはＭＰＵ(Micro Processor Unit)と呼称される製品などが実用化されている。
【０００３】
さらに、このような複数のデータ処理装置を並列に接続して煩雑なデータ処理を分担するデータ処理システムも実用化されており、このようなデータ処理システムとしては、同一構造の複数のデータ処理装置を接続した同種結合タイプと、構造が相違する複数のデータ処理装置を接続した異種結合タイプとがある。
【０００４】
同種結合タイプのデータ処理システムでは、１つのデータ処理を同一構造の複数のデータ処理装置で分担するので、高い並列度でデータ処理を実行することができる。異種結合タイプのデータ処理システムでは、１つのデータ処理を複数種類のデータ処理装置で分担するので、データ処理装置ごとに得意のデータ処理を実行することができる。
【０００５】
このようなデータ処理システムに利用されるＭＰＵなどのデータ処理装置は、ソフトウェアに対応して各種のデータ処理を実行できるが、一連のデータ処理を順番に逐次実行する必要があり、その逐次処理ごとに命令コードをデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。
【０００６】
一方、１つのデータ処理に対応してハードウェアで形成した論理回路は、そのデータ処理を高速に実行することが可能であるが、ソフトウェアを変更できないので１つのデータ処理しか実行できない。このような課題を解決するため、本出願人はソフトウェアに対応してデータパスの構成が変化するデータ処理装置としてアレイ型プロセッサを発案し、特願2000-043202号、特願平2001-263804号、特願平2001-294241号、として出願した。このアレイ型プロセッサでは、小規模の複数のプロセッサエレメントと複数のスイッチエレメントとがデータパス部にマトリクス配列されており、この１個のデータパス部に１個の状態管理部が並設されている。
【０００７】
複数のプロセッサエレメントは、個々にデータ設定される命令コードに対応してデータ処理を個々に実行し、複数のスイッチエレメントは、個々にデータ設定される命令コードに対応して複数のプロセッサエレメントの接続関係を個々に切換制御する。
【０００８】
つまり、アレイ型プロセッサは、複数のプロセッサエレメントと複数のスイッチエレメントとの命令コードを切り換えることでデータパスの構成が変化するので、ソフトウェアに対応して各種のデータ処理を実行することができ、ハードウェアとして小規模の複数のプロセッサエレメントが簡単なデータ処理を並列に実行するので、データ処理を高速に実行することができる。
【０００９】
そして、上述のような複数のプロセッサエレメントと複数のスイッチエレメントとの命令コードからなるコンテキストを状態管理部がコンピュータプログラムに対応して動作サイクルごとに順次切り換えるので、アレイ型プロセッサはコンピュータプログラムに対応して並列処理を連続的に実行することができる。そこで、本出願人は複数のデータ処理装置を並列に接続したデータ処理システムに、上述のようなアレイ型プロセッサを適用することを発案した。
【００１０】
【発明が解決しようとする課題】
しかし、アレイ型プロセッサは構造と動作との両方が従来のデータ処理装置とは根本的に相違しているため、複数のデータ処理装置を並列に接続したデータ処理システムに単純に適用することはできず、単純に適用してもアレイ型プロセッサと他のデータ処理装置とを良好に連動させてデータ処理を分担させることはではない。
【００１１】
また、上述のようなデータ処理システムでは多量の処理データを使用するので、大容量のデータメモリを複数のデータ処理装置と共通の外部バスに接続することなどが必要となる。しかし、これでは単純に回路規模が増大することになり、ハードウェアの使用効率も良好でない。
【００１２】
本発明は上述のような課題に鑑みてなされたものであり、並列に接続された複数のデータ処理装置の少なくとも１個がアレイ型プロセッサで良好に動作するデータ処理システムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明の一のデータ処理システムは、入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置の少なくとも１個がアレイ型プロセッサからなる。
【００１４】
このアレイ型プロセッサは、個々にデータ設定される命令コードに対応してデータ処理を個々に実行する複数のプロセッサエレメントと個々にデータ設定される命令コードに対応して複数のプロセッサエレメントの接続関係を個々に切換制御する複数のスイッチエレメントとがマトリクス配列されているデータパス部と、このデータパス部の命令コードからなるコンテキストをコンピュータプログラムとイベントデータとに対応して順次切り換える状態管理部と、を有している。
【００１５】
そして、他のデータ処理装置で処理された処理データの少なくとも一部をアレイ型プロセッサのデータパス部に伝送させ、他のデータ処理装置がデータ処理に対応して発行するイベントデータの少なくとも一部を状態管理部に伝送させる。また、アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部を他のデータ処理装置に伝送させ、データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部を他のデータ処理装置に伝送させる。
【００１６】
さらに、アレイ型プロセッサが各種データを更新自在に一時記憶するデータメモリも有しており、このデータメモリをアレイ型プロセッサと他のデータ処理装置とに共有させる。
【００１７】
【発明の実施の形態】
本発明のデータ処理システムは、入力される処理データを事前にデータ設定されているコンピュータプログラムと入力されるイベントデータとに対応してデータ処理する複数のデータ処理装置が並列に接続されており、これら複数のデータ処理装置で処理データを分散処理する。
【００１８】
本発明の実施の形態のデータ処理システムでは、複数のデータ処理装置の少なくとも１個がアレイ型プロセッサからなり、このアレイ型プロセッサが、データパス部と状態管理部とを有している。データパス部は、複数のプロセッサエレメントと複数のスイッチエレメントとがマトリクス配列されており、プロセッサエレメントは、個々にデータ設定される命令コードに対応してデータ処理を個々に実行し、スイッチエレメントは、個々にデータ設定される命令コードに対応して複数のプロセッサエレメントの接続関係を個々に切換制御する。状態管理部は、データパス部の命令コードからなるコンテキストをコンピュータプログラムとイベントデータとに対応して順次切り換える。
【００１９】
そして、他のデータ処理装置で処理された処理データの少なくとも一部がアレイ型プロセッサのデータパス部に伝送されるとともに、他のデータ処理装置がデータ処理に対応して発行するイベントデータの少なくとも一部が状態管理部に伝送される。また、アレイ型プロセッサのデータパス部で処理された処理データの少なくとも一部が他のデータ処理装置に伝送されるとともに、データパス部がデータ処理に対応して発生するイベントデータの少なくとも一部が他のデータ処理装置に伝送される。つまり、アレイ型プロセッサと他のデータ処理装置とが処理データを相互通信するとともに、そのデータ処理に対応したイベントデータも相互通信する。さらに、アレイ型プロセッサが有するデータメモリを他のデータ処理装置も共有することにより、データ処理システムとしてアレイ型プロセッサのデータメモリが有効に利用される。
【００２０】
また、他の実施の形態としては、アレイ型プロセッサの同期制御回路に状態管理部により格納されるイベントデータが他のデータ処理装置により読み出され、他のデータ処理装置により格納されるイベントデータが状態管理部により読み出されることにより、アレイ型プロセッサと他のデータ処理装置とが状態管理部によりイベントデータを相互通信する。
【００２２】
また、他の実施の形態としては、アレイ型プロセッサと他のデータ処理装置との１個に排他制御回路がデータメモリを排他使用させることにより、アレイ型プロセッサと他のデータ処理装置とで共有されるデータメモリが排他使用される。
【００２３】
また、他の実施の形態としては、データメモリがデータパス部に分散された複数のメモリユニットからなり、これら複数のメモリユニットを１個のデータメモリとして他のデータ処理装置に認識させる仮想認識手段をアレイ型プロセッサが有していることにより、アレイ型プロセッサの複数のメモリユニットが他のデータ処理装置に１個のデータメモリとして利用される。
【００２４】
また、他の実施の形態としては、複数のメモリユニットの少なくとも一部は、データ読出／書込を受け付けるアクセスポートとアドレスデータごとの記憶エリアとが各々複数のマルチポートメモリからなり、アレイ型プロセッサと他のデータ処理装置とによるデータ読出／書込を互いに異なるアクセスポートと記憶エリアとで同時に受け付けることにより、マルチポートのデータメモリがアレイ型プロセッサと他のデータ処理装置とに同時に使用される。
【００２５】
また、他の実施の形態としては、複数のメモリユニットの少なくとも一部が複数のプロセッサエレメントの少なくとも一部に内蔵されており、複数のプロセッサエレメントの一部がメモリユニットを使用しているときに他部のプロセッサエレメントで使用されていないメモリユニットを他のデータ処理装置が使用することにより、複数のメモリユニットの一部がアレイ型プロセッサに使用されていても他部が他のデータ処理装置に使用される。
【００２６】
また、他の実施の形態としては、複数のプロセッサエレメントの少なくとも一部が処理データを一時保持するレジスタファイルを有しており、複数のメモリユニットの少なくとも一部がレジスタファイルからなることにより、アレイ型プロセッサの複数のプロセッサエレメントに必須のレジスタファイルが他のデータ処理装置に共有される。
【００２７】
また、他の実施の形態としては、複数のプロセッサエレメントの少なくとも一部が命令コードを更新自在に一時保持するインストラクションメモリを有しており、複数のメモリユニットの少なくとも一部がインストラクションメモリからなることにより、アレイ型プロセッサの複数のプロセッサエレメントに必須のインストラクションメモリが他のデータ処理装置に共有される。
【００２８】
また、他の実施の形態としては、アレイ型プロセッサは、複数のスイッチエレメントにより切換制御されて複数のプロセッサエレメントの処理データが伝送されるデータバスを有しており、このデータバスにプロセッサエレメントと並列に複数のメモリユニットの少なくとも一部が接続されていることにより、アレイ型プロセッサでプロセッサエレメントの処理データの保持に利用されるメモリユニットが他のデータ処理装置に共有される。
【００２９】
また、他の実施の形態としては、複数のプロセッサエレメントの少なくとも一部が命令コードを更新自在に一時保持するインストラクションメモリを有しており、アレイ型プロセッサは、複数のスイッチエレメントにより切換制御されて複数のプロセッサエレメントの処理データが伝送されるデータバスと、入力される命令コードが複数のプロセッサエレメントまで伝送される命令バスと、を別個に有しており、他のデータ処理装置が使用するメモリユニットの読出／書込データが命令バスで伝送されることにより、アレイ型プロセッサでデータ処理の最中には利用されない命令バスで他のデータ処理装置にメモリユニットが利用される。
【００３０】
また、他の実施の形態としては、入力される多数ビットのアドレスデータを少数の大容量バスが状態管理部まで伝送し、状態管理部のインストラクションデコーダが多数ビットのアドレスデータを少数ビットの複数のアドレスデータにデコードし、状態管理部から複数のプロセッサエレメントまで多数の小容量バスが少数ビットのアドレスデータを伝送し、複数のプロセッサエレメントのインストラクションメモリがアドレスデータに対応して命令コードをデータ格納することにより、多数のプロセッサエレメントにアドレスデータが少数のバスで伝送される。
【００３１】
また、他の実施の形態としては、アレイ型プロセッサは、他のデータ処理装置によるデータ読出に対応して共有されるデータメモリのアドレスデータを発行するアドレス発行回路と、このアドレス発行回路で発行されたアドレスデータでデータメモリから読み出された読出データを出力するデータ読出回路と、を別個に有しており、アドレス発行回路とデータ読出回路とがデータパス部の両側に分散配置されていることにより、データパス部のデータメモリにアドレスデータが到達する時間と、データメモリの読出データがデータ読出回路に到達する時間と、の合計が一定となる。
【００３２】
なお、本発明で云う各種手段は、その機能を実現するように形成されていれば良く、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置の内部に実現された所定の機能、これらの組み合わせ、等で良い。また、本発明で云う各種手段は、個々に独立した存在である必要もなく、ある手段が他の手段の一部であるようなことも可能である。
【００３３】
また、本発明で云う情報記憶媒体とは、データ処理装置に各種処理を実行させるためのコンピュータプログラムが事前に格納されたハードウェアであれば良く、例えば、データ処理装置を一部とする装置に固定されているＲＯＭ(Read Only Memory)およびＨＤＤ(Hard Disc Drive)、データ処理装置を一部とする装置に交換自在に装填されるＣＤ(Compact Disc)−ＲＯＭおよびＦＤ(Flexible Disc-cartridge)、等で良い。
【００３４】
また、本発明で云うデータ処理装置とは、コンピュータプログラムをデータ読取して対応するデータ処理を実行できるハードウェアであれば良く、例えば、ＭＰＵを主体として、これに、ＲＯＭ、ＲＡＭ(Random Access Memory)、Ｉ／Ｆ(Interface)ユニット、等の各種デバイスが接続されたハードウェアなどで良い。
【００３５】
また、本発明で云うイベントデータとは、例えば、アレイ型プロセッサの状態管理部にデータパス部または他のデータ処理装置が伝送する場合には、その状態管理部が管理している現在の状態を遷移させるためのデータからなり、アレイ型プロセッサの状態管理部が他のデータ処理装置に伝送する場合には、その状態管理部が管理している現在の状態を他のデータ処理装置に通知するためのデータからなる。
【００３６】
［実施例の構成］
本実施例のデータ処理システム１０００は、図１に示すように、複数のデータ処理装置として１個のアレイ型プロセッサ１００と１個のＭＰＵ２００とを有しており、これらのアレイ型プロセッサ１００とＭＰＵ２００とが外部バス３００とデータライン３０１とで互いに接続されている。
【００３７】
また、データ処理システム１０００では、アレイ型プロセッサ１００のコンピュータプログラムが格納されているプログラムメモリ３０２と、ＭＰＵ２００のコンピュータプログラムが格納されているプログラムメモリ３０３と、が各々専用に設けられており、これらが外部バス３００に接続されている。
【００３８】
アレイ型プロセッサ１００は、自身のコンピュータプログラムをプログラムメモリ３０２からデータ読出し、そのコンピュータプログラムに対応してデータ処理を実行する。そのとき、入力される処理データがデータパス部１０６でデータ処理されて出力され、そのデータ処理に対応してデータパス部１０６でイベントデータが発行される。
【００３９】
また、ＭＰＵ２００は、Ｉ／Ｆ回路、プロセッサコア、内部レジスタ、等のハードウェアを有しており（図示せず）、プログラムメモリ３０３に格納されているコンピュータプログラムに対応して動作することにより、データ入力手段、データ処理手段、データ記憶手段、データ出力手段、等の各種手段が各種機能として論理的に形成されている。
【００４０】
データ入力手段は、コンピュータプログラムに対応してプロセッサコアがＩ／Ｆ回路の入力データを認識する機能に相当し、処理データとイベントデータとが入力される。データ処理手段は、プロセッサコアがデータ処理を実行する機能に相当し、入力される処理データをコンピュータプログラムとイベントデータとに対応してデータ処理する。
【００４１】
データ記憶手段は、プロセッサコアが処理データを内部レジスタに格納する機能に相当し、処理データなどの各種データを一時記憶する。データ出力手段は、プロセッサコアがＩ／Ｆ回路のデータ出力を制御する機能に相当し、処理された処理データとイベントデータとを出力する。
【００４２】
ただし、データ処理システム１０００のＭＰＵ２００は、処理データの少なくとも一部とイベントデータとをアレイ型プロセッサ１００から入力し、データ処理の少なくとも一部に対応して新規のイベントデータを発行し、処理データの少なくとも一部と新規に発行されたイベントデータとをアレイ型プロセッサ１００に出力する。さらに、ＭＰＵ２００は、前述のようにデータ記憶手段で各種データを一時記憶するが、その各種データの少なくとも一部をアレイ型プロセッサ１００に一時記憶させる。
【００４３】
アレイ型プロセッサ１００は、Ｉ／Ｆ回路１０１、プロセッサコア１０２、仮想認識手段でありアドレス発行回路であるメモリコントローラ１０３、データ読出回路であるリードマルチプレクサ１０４、等を有しており、プロセッサコア１０２は、図１および図３に示すように、状態管理部１０５とデータパス部１０６とを有している。
【００４４】
データパス部１０６は、図２および図３に示すように、複数のプロセッサエレメント１０７、複数のスイッチエレメント１０８、データバスの一部である多数のｍｂ(ｍ-bit)バス１０９、データバスの一部である多数のｎｂ(ｎ-bit)バス１１０、等を有しており、複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８とがマトリクス配列されて多数のｍ／ｎｂバス１０９，１１０によりマトリクス接続されている。
【００４５】
また、図２(ｂ)に示すように、プロセッサエレメント１０７は、メモリ制御回路１１１、メモリユニットでありデータメモリの一部であるインストラクションメモリ１１２、インストラクションデコーダ１１３、メモリユニットでありデータメモリの一部であるｍｂレジスタファイル１１５、メモリユニットでありデータメモリの一部であるｎｂレジスタファイル１１６、ｍｂＡＬＵ(Arithmetic and Logical Unit)１１７、ｎｂＡＬＵ１１８、内部可変配線（図示せず）、等を各々有しており、スイッチエレメント１０８は、バスコネクタ１２１、入力制御回路１２２、出力制御回路１２３、等を各々有している。
【００４６】
Ｉ／Ｆユニット１０１は、図１および図４に示すように、プロトコル制御部１３１、メモリアクセス部１３２、同期制御回路１３３、を有しており、プロトコル制御部１３１は、外部バス３００とメモリアクセス部１３２とに接続されている。さらに、このメモリアクセス部１３２は、メモリコントローラ１０３とリードマルチプレクサ１０４と同期制御回路１３３とに接続されており、この同期制御回路１３３は、プロセッサコア１０２のデータパス部１０６に接続されている。
【００４７】
プロトコル制御部１３１は、外部バス３００と共通のバスプロトコルがデータ設定されており、このバスプロトコルに対応して外部バス３００と各種データを通信するとともに、より単純な手法でメモリアクセス部１３２と各種データを通信する。
【００４８】
このメモリアクセス部１３２は、図１に示すように、ＭＰＵ２００から外部バス３００を介してプロトコル制御部１３１に入力される各種データをメモリコントローラ１０３とデータパス部１０６と同期制御回路１３３とに伝送し、これらから伝送される各種データをプロトコル制御部１３１から外部バス３００を介してＭＰＵ２００に出力する。
【００４９】
同期制御回路１３３は、図４に示すように、外部データレジスタ１３５と内部データレジスタ１３６とを有しており、ＭＰＵ２００から外部バス３００を介してプロトコル制御部１３１に入力されるイベントデータを外部データレジスタ１３５で一時保持し、状態管理部１０５によりデータ書込されるイベントデータを内部データレジスタ１３６で一時保持する。
【００５０】
図１に示すように、同期制御回路１３３の外部データレジスタ１３５で一時保持されたイベントデータはデータパス部１０６を介して状態管理部１０５にデータ読取され、内部データレジスタ１３６で一時保持されたイベントデータはＭＰＵ２００にデータ読取される。
【００５１】
メモリコントローラ１０３は、Ｉ／Ｆユニット１０１のメモリアクセス部１３２から伝送される各種データをプロセッサコア１０２の状態管理部１０５とデータパス部１０６とに伝送し、リードマルチプレクサ１０４はデータパス部１０６から読み出された読出データをメモリアクセス部１３２に伝送する。
【００５２】
より詳細には、図３に示すように、状態管理部１０５は、インストラクションデコーダ１３８、遷移テーブルメモリ１３９、インストラクションメモリ１４０、を有しており、そのインストラクションデコーダ１３８とメモリコントローラ１０３とは大容量バスである命令バス１４１で接続されている。
【００５３】
また、プロセッサエレメント１０７は、例えば、４行４列に配列されており、メモリコントローラ１０３からリードマルチプレクサ１０４まで並列に接続された４行の命令バス１４２が１行ごとに４列のプロセッサエレメント１０７のメモリ制御回路１１１に接続されている。
【００５４】
さらに、状態管理部１０５の１個のインストラクションデコーダ１３８には４列の小容量バスであるアドレスバス１４３が接続されており、このアドレスバス１４３が１列ごとに４行のプロセッサエレメント１０７のメモリ制御回路１１１に接続されている。なお、命令バス１４１は、例えば、“20(bit)”の多数ビットのバス幅に形成されており、命令バス１４２およびアドレスバス１４３は、例えば、“８(bit)”の少数ビットのバス幅に形成されている。
【００５５】
リードマルチプレクサ１０４は、図５に示すように、４個のゲート回路１４５、１個のマルチプレクサ１４６、１個のオアゲート１４７、を有しており、４行の命令バス１４２が４個のゲート回路１４５に個々に接続されるとともに１個のオアゲート１４７に接続されている。４個のゲート回路１４５は１個のマルチプレクサ１４６に接続されており、このマルチプレクサ１４６はオアゲート１４７とともにＩ／Ｆユニット１０１のメモリアクセス部１３２に接続されている。
【００５６】
アレイ型プロセッサ１００は、複数のプロセッサエレメント１０７ごとに命令コードを一時保持するインストラクションメモリ１１２とｍ／ｎｂの処理データを一時保持するｍ／ｎｂレジスタファイル１１５，１１６とが形成されているが、これらを１個のデータメモリとしてＭＰＵ２００に認識させる。
【００５７】
プログラムメモリ３０２にデータ格納されているアレイ型プロセッサ１００のコンピュータプログラムは、データパス部１０６にマトリクス配列された複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８との命令コードが、順次切り換わるコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理部１０５の命令コードが、順次遷移する動作状態としてデータ設定されている。
【００５８】
このため、状態管理部１０５は、図３に示すように、上述のような自身の命令コードがインストラクションメモリ１４０にデータ格納されており、複数の動作状態を順次遷移させる遷移ルールが遷移テーブルメモリ１３９にデータ格納されている。
【００５９】
状態管理部１０５は、遷移テーブルメモリ１３９の遷移ルールに対応して動作状態を順次遷移させ、インストラクションメモリ１４０の命令コードに対応して複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８とのインストラクションポインタを各々発生する。
【００６０】
図２(ｂ)に示すように、スイッチエレメント１０８は、隣接するプロセッサエレメント１０７のインストラクションメモリ１１２を共用しているので、状態管理部１０５は、発生したプロセッサエレメント１０７とスイッチエレメント１０８との１組のインストラクションポインタを対応するプロセッサエレメント１０７のインストラクションメモリ１１２に供給する。
【００６１】
このインストラクションメモリ１１２には、プロセッサエレメント１０７とスイッチエレメント１０８との複数の命令コードがデータ格納されているので、状態管理部１０５から供給される２つのインストラクションポインタでプロセッサエレメント１０７とスイッチエレメント１０８との命令コードが指定される。インストラクションデコーダ１１３は、インストラクションポインタで指定された命令コードをデコードし、スイッチエレメント１０８、内部可変配線、ｍ／ｎｂＡＬＵ１１７，１１８、等の動作を制御する。
【００６２】
ｍｂバス１０９はｍｂである“８(bit)”の処理データを伝送し、ｎｂバス１１０はｎｂである“１(bit)”の処理データを伝送するので、スイッチエレメント１０８は、インストラクションデコーダ１１３の動作制御に対応してｍ／ｎｂバス１０９，１１０による複数のプロセッサエレメント１０７の接続関係を制御する。
【００６３】
より詳細には、スイッチエレメント１０８のバスコネクタ１２１は、ｍｂバス１０９とｎｂバス１１０とが四方から連通しており、このように連通している複数のｍｂバス１０９の互いの接続関係と連通する複数のｎｂバス１１０の互いの接続関係とを制御する。
【００６４】
このため、アレイ型プロセッサ１００は、プログラムメモリ３０２にデータ設定されたコンピュータプログラムに対応して状態管理部１０５がデータパス部１０６のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに複数のプロセッサエレメント１０７は個々に設定自在なデータ処理で並列動作する。
【００６５】
入力制御回路１２２は、図２(ｂ)に示すように、ｍｂバス１０９からｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７へのデータ入力の接続関係と、ｎｂバス１１０からｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８へのデータ入力の接続関係とを制御する。
【００６６】
出力制御回路１２３は、ｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７からｍｂバス１０９へのデータ出力の接続関係と、ｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８からｎｂバス１１０へのデータ出力の接続関係とを制御する。
【００６７】
プロセッサエレメント１０７の内部可変配線は、インストラクションデコーダ１１３の動作制御に対応して、プロセッサエレメント１０７の内部でのｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７の接続関係とｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８の接続関係とを制御する。
【００６８】
ｍｂレジスタファイル１１５は、内部可変配線に制御される接続関係に対応して、ｍｂバス１０９などから入力されるｍｂの処理データを一時保持してｍｂＡＬＵ１１７などに出力する。ｎｂレジスタファイル１１６は、内部可変配線に制御される接続関係に対応して、ｎｂバス１１０などから入力されるｎｂの処理データを一時保持してｎｂＡＬＵ１１８などに出力する。
【００６９】
ｍｂＡＬＵ１１７は、インストラクションデコーダ１１３の動作制御に対応したデータ処理をｍｂの処理データで実行し、ｎｂＡＬＵ１１８は、インストラクションデコーダ１１３の動作制御に対応したデータ処理をｎｂの処理データで実行するので、処理データのビット数に対応してｍ／ｎｂのデータ処理が適宜実行される。
【００７０】
このデータパス部１０６での処理結果は必要により状態管理部１０５にイベントデータとしてフィードバックされるので、この状態管理部１０５は入力されたイベントデータにより動作状態を次の動作状態に遷移させるとともにデータパス部１０６のコンテキストを次のコンテキストに切り換える。
【００７１】
［実施例の動作］
上述のような構成において、本実施例のデータ処理システム１０００では、ＭＰＵ２００がメインプロセッサとして機能するとともにアレイ型プロセッサ１００がコプロセッサとして機能することにより、そのアレイ型プロセッサ１００とＭＰＵ２００とのデータ処理が連動する。
【００７２】
その場合、アレイ型プロセッサ１００およびＭＰＵ２００は、プログラムメモリ３０２，３０３から自身のコンピュータプログラムをデータ読出して対応する処理動作を実行することにより、データライン３０１から入力される処理データを処理し、処理した処理データをデータライン３０１に出力する。ただし、アレイ型プロセッサ１００は一般的なＭＰＵ２００とは構造が相違するため、その処理動作も特異である。
【００７３】
より詳細には、前述のようにアレイ型プロセッサ１００のコンピュータプログラムは、複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８との命令コードが順次切り換わるコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理部１０５の命令コードが順次遷移する動作状態としてデータ設定されている。
【００７４】
このようなコンピュータプログラムに対応して動作するアレイ型プロセッサ１００では、状態管理部１０５が動作状態を順次遷移させるとともに、データパス部１０６のコンテキストを動作サイクルごとに順次切り換える。このため、その動作サイクルごとに複数のプロセッサエレメント１０７が個々に設定自在なデータ処理で並列動作し、その複数のプロセッサエレメント１０７の接続関係を複数のスイッチエレメント１０８が切換制御する。
【００７５】
このとき、データパス部１０６での処理結果は必要により状態管理部１０５にイベントデータとしてフィードバックされるので、この状態管理部１０５は入力されたイベントデータにより動作状態を次の動作状態に遷移させるとともにデータパス部１０６のコンテキストを次のコンテキストに切り換える。
【００７６】
なお、上述の説明では、状態管理部１０５とプロセッサエレメント１０７とのインストラクションメモリ１４０，１１２の命令コードが事前にデータ格納されている状態を想定した。しかし、このようなインストラクションメモリ１１２の命令コードをデータ更新することもでき、これはＭＰＵ２００がアレイ型プロセッサ１００に実行することもでき、アレイ型プロセッサ１００がスタンドアロンで実行することもできる。
【００７７】
より具体的には、状態管理部１０５とプロセッサエレメント１０７とスイッチエレメント１０８との命令コードは、必要によりＭＰＵ２００またはプロセッサエレメント１０７によりプログラムメモリ３０２からデータ読出されて外部バス３００からＩ／Ｆユニット１０１に入力され、そのメモリアクセス部１３２からメモリコントローラ１０３に伝送される。
【００７８】
このメモリコントローラ１０３から状態管理部１０５まで、その状態管理部１０５の命令コードが命令バス１４１でデータ伝送され、メモリコントローラ１０３からプロセッサエレメント１０７まで、そのプロセッサエレメント１０７と隣接するスイッチエレメント１０８との１対の命令コードが命令バス１４２でデータ伝送される。
【００７９】
このとき、状態管理部１０５では、データ転送された命令コードがインストラクションデコーダ１３８でデコードされてインストラクションメモリ１４０にデータ格納され、複数の動作状態の遷移ルールが遷移テーブルメモリ１３９にデータ格納される。さらに、インストラクションメモリ１４０には複数の動作状態に対応した複数の命令コードがデータ格納されるので、その複数のアドレスデータもメモリコントローラ１０３から状態管理部１０５に伝送される。
【００８０】
また、状態管理部１０５に命令バス１４１で伝送される命令コードには、命令コードがデータ格納されるインストラクションメモリ１４０のアドレスデータもエンコードされてデータ設定されているので、これがインストラクションデコーダ１３８でデコードされ、４列のアドレスバス１４３から選択された１つで一列のプロセッサエレメント１０７に伝送される。
【００８１】
同時に、プロセッサエレメント１０７のインストラクションメモリ１１２に命令コードがデータ格納されるとき、メモリコントローラ１０３により４行の命令バス１４２から１つが選択されて命令コードが伝送される。これで１個のプロセッサエレメント１０７に命令コードとアドレスデータとが伝送されるので、そのアドレスデータに対応したインストラクションメモリ１１２の１つのアドレス空間に命令コードがデータ格納される。
【００８２】
上述のようにして状態管理部１０５に複数の動作状態の遷移ルールと複数の命令コードとがデータ格納され、データパス部１０６に複数のコンテキストがデータ格納されると、アレイ型プロセッサ１００は前述のような処理動作を実行できる状態となる。
【００８３】
データ処理システム１０００では、ＭＰＵ２００は、自身のコンピュータプログラムに対応して入力される処理データを処理したとき、その処理データの少なくとも一部をデータライン３０１からアレイ型プロセッサ１００のデータパス部１０６に伝送するとともに、そのデータ処理に対応して発行するイベントデータの少なくとも一部を外部バス３００から状態管理部１０５に伝送する。
【００８４】
また、アレイ型プロセッサ１００は、コンピュータプログラムに対応してデータ処理を実行するとき、データパス部１０６で処理された処理データの少なくとも一部をデータライン３０１からＭＰＵ２００に伝送するとともに、データパス部１０６のデータ処理に対応して発行されるイベントデータの少なくとも一部を外部バス３００からＭＰＵ２００に伝送する。
【００８５】
このようにアレイ型プロセッサ１００とＭＰＵ２００とが処理データを共有することにより、一連のデータ処理をアレイ型プロセッサ１００とＭＰＵ２００とで分担することができる。同時に、アレイ型プロセッサ１００とＭＰＵ２００とがイベントデータを通信することにより、各々で独立して実行するデータ処理を同期させることができる。
【００８６】
なお、ここで云う同期とは、アレイ型プロセッサ１００とＭＰＵ２００とが所定タイミングに処理データを通信できることを意味しており、アレイ型プロセッサ１００とＭＰＵ２００とが各々独立に実行するデータ処理の速度や段階などが一致することは意味していない。
【００８７】
ただし、上述のようにアレイ型プロセッサ１００とＭＰＵ２００とがイベントデータを通信する手段として、データ処理システム１０００では複数方式が実現されている。例えば、図１に示すように、同期制御回路１３３はイベントデータとなる制御信号を状態管理部１０５に直接に発行する機能を有しており、そのイベントデータを発行させる同期制御回路１３３のアドレスデータは外部バス３００に割り当てられている。
【００８８】
そこで、ＭＰＵ２００がアレイ型プロセッサ１００にイベントデータを通達する場合、ＭＰＵ２００が外部バス３００から同期制御回路１３３の内蔵レジスタ（図示せず）の所定アドレスに所定データを格納すると、これに対応して同期制御回路１３３から状態管理部１０５にイベントデータとなる制御信号が発行される。
【００８９】
このような制御信号としては、アレイ型プロセッサ１００の動作実行と動作停止とを制御する二値のラン信号、状態管理部１０５を初期化する二値のリセット信号、等が用意されている。例えば、ＭＰＵ２００がアレイ型プロセッサ１００の命令コードを更新する場合、ＭＰＵ２００がイベントデータを同期制御回路１３３に伝送することで二値のラン信号を動作実行から動作停止に変更し、これで停止したアレイ型プロセッサ１００の命令コードを更新してからラン信号を動作実行に変更する。
【００９０】
この場合、ＭＰＵ２００はアレイ型プロセッサ１００に、インストラクションメモリ１１２，１４０に一時保持できる個数より多数の命令コードで一連のデータ処理を実行させることができ、実行しているデータ処理を所望タイミングで別個のデータ処理に変更することもできる。
【００９１】
また、ＭＰＵ２００がアレイ型プロセッサ１００に通達するイベントデータを外部バス３００から同期制御回路１３３の外部データレジスタ１３５に格納すると、例えば、そのイベントデータはデータパス部１０６の処理動作により状態管理部１０５まで伝送される。
【００９２】
このとき、状態管理部１０５が動的に切換制御しているデータパス部１０６の接続経路によりイベントデータを伝送することと、状態管理部１０５がデータパス部１０６に静的に確保している接続経路によりイベントデータを伝送することが可能である。また、同期制御回路１３３の外部データレジスタ１３５に格納されたイベントデータを、前述の制御信号と同様に専用の信号ライン(図示せず)で状態管理部１０５まで伝送することも可能である。
【００９３】
ただし、同期制御回路１３３の外部データレジスタ１３５に外部からイベントデータが格納されても、それを状態管理部１０５とデータパス部１０６とは認識できない。そこで、イベントデータが外部データレジスタ１３５に外部から格納されると、これを通達するリクエスト信号が同期制御回路１３３からデータパス部１０６と状態管理部１０５とに専用の信号ラインで伝送される。
【００９４】
そして、このリクエスト信号に対応して状態管理部１０５などに外部データレジスタ１３５からイベントデータが読み出されると、その読出完了とリクエスト信号の初期化依頼とを通達するアクノリッジ信号が状態管理部１０５などから同期制御回路１３３に専用の信号ラインで伝送される。
【００９５】
また、アレイ型プロセッサ１００がＭＰＵ２００にイベントデータを通達する場合、同期制御回路１３３の内部データレジスタ１３６にイベントデータを格納する。すると、利用者の所望により初期設定される同期制御回路１３３の二値の割込設定が“許可”の場合は、同期制御回路１３３からＭＰＵ２００にイベントデータとして割込信号が発行され、割込設定が“禁止”の場合は、ＭＰＵ２００がポーリング動作などにより同期制御回路１３３のイベントデータを読み出す。
【００９６】
上述のように割込設定が“許可”でアレイ型プロセッサ１００からＭＰＵ２００に割込信号が発行される場合、ＭＰＵ２００には、少なくとも割込ハンドラと割込信号とを対応させてコンピュータプログラムでデータ設定しておき、アレイ型プロセッサ１００には、少なくともイベントデータと割込信号とを対応させてコンピュータプログラムでデータ設定しておく。
【００９７】
ＭＰＵ２００は、割込信号により割込ハンドラが起動されると割込原因を探索するので、これでアレイ型プロセッサ１００の同期制御回路１３３を検出して割込原因であるイベントデータを読み出し、このイベントデータに対応した割込処理を実行する。
【００９８】
このようなイベントデータではアレイ型プロセッサ１００の状態管理部１０５の動作状態をデータ設定してＭＰＵ２００に通達することができるので、ＭＰＵ２００はアレイ型プロセッサ１００の動作状態に同期した割込処理を実行することができる。
【００９９】
また、アレイ型プロセッサ１００は、状態管理部１０５がイベントデータとして前述のラン信号を動作実行から動作停止に変更することでも同期制御回路１３３が割込信号を発行するので、この場合はＭＰＵ２００は割込処理により動作停止したアレイ型プロセッサ１００に各種操作を実行することができ、割込処理の完了タイミングなどでアレイ型プロセッサ１００を動作開始させることができる。
【０１００】
さらに、ＭＰＵ２００はイベントデータの読出完了や割込処理の所定タイミングなどでアレイ型プロセッサ１００にイベントデータとして応答信号の返信やラン信号の変更などを実行するので、これでアレイ型プロセッサ１００もＭＰＵ２００に同期したデータ処理を再開できる。
【０１０１】
また、アレイ型プロセッサ１００の割込設定が“禁止”で、同期制御回路１３３に格納されたイベントデータをＭＰＵ２００が読み出す場合、ＭＰＵ２００は、定期的なポーリング動作によりアレイ型プロセッサ１００からイベントデータを読み出すことができ、特定の処理動作により所望タイミングにアレイ型プロセッサ１００からイベントデータを読み出すこともできる。
【０１０２】
なお、ＭＰＵ２００が特定の処理動作によりアレイ型プロセッサ１００からイベントデータを読み出す場合も、ＭＰＵ２００はアレイ型プロセッサ１００からイベントデータを読み出せるまでポーリング動作を繰り返す。このイベントデータを読み出すポーリング動作をＭＰＵ２００が適切なタイミングに実行すれば動作遅延が防止され、ＭＰＵ２００が割込処理でイベントデータを読み出せばアレイ型プロセッサ１００の状態を即座に認識することができる。
【０１０３】
また、データ処理システム１０００では、前述のようにアレイ型プロセッサ１００の複数のプロセッサエレメント１０７の各々がインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６とを有しているが、これらを１個のデータメモリとしてＭＰＵ２００に認識させる。
【０１０４】
より具体的には、アレイ型プロセッサ１００のメモリコントローラ１０３には、複数のプロセッサエレメント１０７のインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６とが１個のデータメモリのメモリ空間として定義されている。
【０１０５】
このため、ＭＰＵ２００はアレイ型プロセッサ１００に分散された多数のインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６とを１個のデータメモリとして認識することになり、煩雑なデータ管理を必要とすることなくデータ読出／書込を実行することができる。
【０１０６】
データ処理システム１０００では、データメモリとなるｍ／ｎｂレジスタファイル１１５，１１６とインストラクションメモリ１１２とはデータ読出／書込を受け付けるアクセスポートとアドレスデータごとの記憶エリアとが各々複数のマルチポートメモリからなるので、アレイ型プロセッサ１００とＭＰＵ２００によるデータ読出／書込を別個のアクセスポートと記憶エリアとで同時に実行することができる。
【０１０７】
また、アレイ型プロセッサ１００は、前述のように複数コンテキストに対応した命令コードがインストラクションメモリ１１２に命令バス１４２から格納され、プロセッサエレメント１０７の演算処理とスイッチエレメント１０８の接続制御とで一連のデータ処理が実行されているとき、ｍ／ｎｂの処理データを伝送するｍ／ｎｂバス１０９，１１０は略常に使用されるが、命令バス１４２はインストラクションメモリ１１２まで命令コードを伝送する極短時間しか使用されない。
【０１０８】
そこで、データ処理システム１０００では、ＭＰＵ２００がアレイ型プロセッサ１００のデータメモリにデータ読出／書込を実行するとき、その読出／書込データを命令バス１４２で伝送することにより、既存のハードウェアを有効利用して専用のハードウェアの追加を無用としている。
【０１０９】
ここで、上述のようにＭＰＵ２００がアレイ型プロセッサ１００のデータメモリを使用する場合の処理動作を以下に順番に詳述する。まず、ＭＰＵ２００がアレイ型プロセッサ１００のデータメモリにデータ書込を実行する場合、その書込データは外部バス３００からメモリアクセス部１３２に伝送される。
【０１１０】
このとき、ＭＰＵ２００から書込データのアドレスデータなどもメモリアクセス部１３２に送信されるので、図６(ａ)に示すように、このメモリアクセス部１３２からメモリコントローラ１０３に、データ書込のリクエスト信号、書込データのデータサイズとアドレスデータ、ライトイネーブル信号、が送信される。
【０１１１】
すると、そのデータ書込が可能なときにメモリコントローラ１０３がメモリアクセス部１３２にアクノリッジ信号を返信するので、このアクノリッジ信号を受信したメモリアクセス部１３２がバリッド信号とともに書込データをメモリコントローラ１０３に送信する。
【０１１２】
このメモリコントローラ１０３は、図７に示すように、命令バス１４１により状態管理部１０５に、例えば、“20(bit)”からなる多数ビットのアドレスデータをライトイネーブル信号およびバイトイネーブル信号とともに送信するので、そのアドレスデータが状態管理部１０５のインストラクションデコーダ１３８で、例えば、“８(bit)”からなる少数ビットのアドレスデータにデコードされてライトイネーブル信号とともに複数のアドレスバス１４３の１つに送信される。
【０１１３】
同時に、メモリコントローラ１０３は、メモリアクセス部１３２から受信した多数ビットの書込データを、例えば、“８(bit)”からなる所定ビットの複数に必要により分割し、その書込データをバイトイネーブル信号とともに複数の命令バス１４２の１つに送信する。
【０１１４】
上述のように１つのアドレスバス１４３にライトイネーブル信号が送信されるとともに１つの命令バス１４２にバイトイネーブル信号が送信されることで１個のプロセッサエレメント１０７が選択されるので、そのプロセッサエレメント１０７のインストラクションメモリ１１２にアドレスデータに対応して書込データが書き込まれる。
【０１１５】
一方、ＭＰＵ２００がアレイ型プロセッサ１００のデータメモリからデータ読出を実行する場合も、図６(ｂ)に示すように、メモリアクセス部１３２からメモリコントローラ１０３に、データ読出のリクエスト信号、読出データのデータサイズとアドレスデータ、が送信される。
【０１１６】
このとき、ライトイネーブル信号が送信されないことでメモリコントローラ１０３はデータ書込でなくデータ読出であることを認識し、そのデータ読出が可能なときにメモリアクセス部１３２にアクノリッジ信号を返信するので、このアクノリッジ信号を受信したメモリアクセス部１３２はバリッド信号をメモリコントローラ１０３に送信する。
【０１１７】
このメモリコントローラ１０３は、図７に示すように、命令バス１４１により状態管理部１０５に、“20(bit)”などの多数ビットのアドレスデータをリードイネーブル信号およびバイトイネーブル信号とともに送信するので、その多数ビットのアドレスデータが状態管理部１０５のインストラクションデコーダ１３８で“８(bit)”などの少数ビットのアドレスデータにデコードされてリードイネーブル信号とともに複数のアドレスバス１４３の１つに送信される。
【０１１８】
同時に、メモリコントローラ１０３は複数の命令バス１４２の１つにバイトイネーブル信号とバリッド信号と“８(bit)”などの所定ビットの読出データとを送信するので、リードイネーブル信号とバイトイネーブル信号とで選択された１個のプロセッサエレメント１０７のインストラクションメモリ１１２から、アドレスデータに対応して読出データが読み出される。
【０１１９】
図５に示すように、この読出データはリードイネーブル信号とともに命令バス１４２でリードマルチプレクサ１０４まで送信され、図８に示すように、このリードマルチプレクサ１０４から必要により１つの多数ビットの読出データとしてメモリアクセス部１３２に送信されるので、図６(ｂ)に示すように、このメモリアクセス部１３２がバリッド信号とともに読出データを外部バス３００からＭＰＵ２００に送信する。
【０１２０】
［本実施例の作用］
本実施例のデータ処理システム１０００では、上述のようにアレイ型プロセッサ１００とＭＰＵ２００とが処理データを相互通信し、そのデータ処理に対応したイベントデータも相互通信するので、アレイ型プロセッサ１００とＭＰＵ２００とが良好に連動してデータ処理を分担することができる。特に、アレイ型プロセッサ１００とＭＰＵ２００とが同期制御回路１３３を利用してイベントデータを相互通信するので、簡単な構造で確実にアレイ型プロセッサ１００とＭＰＵ２００とがデータ処理を連動させることができる。
【０１２１】
本実施例のデータ処理システム１０００では、上述のようにアレイ型プロセッサ１００の多数のインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６からなるデータメモリをＭＰＵ２００も共有するので、そのデータメモリを有効に利用することができる。
【０１２２】
それでいて、アレイ型プロセッサ１００の内部に分散された多数のインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６とを１個のデータメモリとしてメモリコントローラ１０３がＭＰＵ２００に認識させるので、ＭＰＵ２００に煩雑なデータ管理を必要とすることなくアレイ型プロセッサ１００のデータメモリを活用させることができる。
【０１２３】
また、ＭＰＵ２００にデータメモリとして共用させるｍ／ｎｂレジスタファイル１１５，１１６とインストラクションメモリ１１２とはアレイ型プロセッサ１００に必須のハードウェアなので、データ処理システム１０００では、ＭＰＵ２００と共用するデータメモリをアレイ型プロセッサ１００に新規に追加する必要がない。
【０１２４】
しかも、入力される命令コードが複数のプロセッサエレメント１０７のインストラクションメモリ１１２まで伝送される命令バス１４２でＭＰＵ２００が使用するメモリユニットの読出／書込データが伝送されるので、アレイ型プロセッサ１００でデータ処理の最中には利用されない命令バス１４２でＭＰＵ２００にメモリユニットを利用させることができる。
【０１２５】
さらに、アレイ型プロセッサ１００とＭＰＵ２００とは、マルチポートメモリからなるｍ／ｎｂレジスタファイル１１５，１１６にデータ読出／書込を互いに異なるアクセスポートと記憶エリアとで同時に実行するので、同一のデータメモリをアレイ型プロセッサ１００とＭＰＵ２００とが同時に使用することができる。
【０１２６】
また、１つの大容量の命令バス１４１で伝送される多数ビットのアドレスデータを、状態管理部１０５のインストラクションデコーダ１３８で少数ビットの複数のアドレスデータにデコードしてから、多数の小容量のアドレスバス１４３で複数のプロセッサエレメント１０７まで伝送する。このため、アレイ型プロセッサ１００は、アドレスデータを多数のプロセッサエレメント１０７に少数のバス１４１，１４３で伝送することができ、回路規模が削減されている。
【０１２７】
また、ＭＰＵ２００によるデータ読出に対応して共有されるデータメモリのアドレスデータを発行するメモリコントローラ１０３と、このメモリコントローラ１０３が発行したアドレスデータでデータメモリから読み出された読出データを出力するリードマルチプレクサ１０４と、がデータパス部１０６の両側に分散配置されている。
【０１２８】
このため、データパス部１０６のデータメモリにアドレスデータが到達する時間と、データメモリからリードマルチプレクサ１０４に読出データが到達する時間と、の合計が一定となるので、ＭＰＵ２００がアレイ型プロセッサ１００のデータメモリを利用するときの所要時間を一定とすることができる。
【０１２９】
［本実施例の変形例］
本発明は上述の実施例に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形が可能である。例えば、本実施例ではアレイ型プロセッサ１００の多数のプロセッサエレメント１０７の各々に内蔵されているインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６とがデータメモリとしてＭＰＵ２００に共用されることを例示したが、その一方のみをデータメモリとしてＭＰＵ２００に利用させることも可能である。また、本実施例のアレイ型プロセッサ１００は、状態管理部１０５にもインストラクションメモリ１４０が存在するので、これをデータメモリの一部としてＭＰＵ２００に利用させることも可能である。
【０１３０】
また、ｍ／ｎｂＡＬＵ１１７，１１８などを有していないメモリユニット（図示せず）を多数のプロセッサエレメント１０７の一部と換装し、そのメモリユニットをデータメモリの少なくとも一部としてＭＰＵ２００に共用させることも可能である。この場合でも、メモリユニットの読出／書込データは専用バスでなく命令バス１４２で伝送できるので、既存のハードウェアを有効利用して回路規模の増大を防止することができる。
【０１３１】
さらに、本実施例ではデータ処理システム１０００として１個のアレイ型プロセッサ１００に１個のＭＰＵ２００が接続されている構造を例示した。しかし、このＭＰＵ２００を、ＡＳＩＣ(Application Specific Integrated Circuit)、ＦＰＧＡ(Field Programmable Gate Array)、ＶＬＩＷ(Very Long Instruction Word)プロセッサ、アレイ型プロセッサ、等に換装することも可能である。
【０１３２】
また、２個以上のデータ処理装置を接続してデータ処理システムを形成することも可能であり、そのデータ処理装置として２種類以上を混在させることも可能である。さらに、本実施例ではアレイ型プロセッサ１００とＭＰＵ２００とが直接的に接続されている構造を例示したが、各種のデバイスを経由させることも可能である。
【０１３３】
また、本実施例ではデータメモリとなるインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６とがマルチポートメモリからなることにより、アレイ型プロセッサ１００とＭＰＵ２００によるデータ書込を同時に実行できることを例示したが、このようなデータメモリをシングルポートメモリで形成することも可能である。
【０１３４】
例えば、インストラクションメモリ１１２がシングルポートメモリからなる場合、アレイ型プロセッサ１００とＭＰＵ２００によるデータ書込を同時に実行することはできない。しかし、アレイ型プロセッサ１００は、多数のプロセッサエレメント１０７がマトリクス配列されているので、全部のプロセッサエレメント１０７がインストラクションメモリ１１２を常時使用するとも限らない。
【０１３５】
そこで、データ処理システム１０００では、アレイ型プロセッサ１００が複数のプロセッサエレメント１０７の一部がインストラクションメモリ１１２を使用しているときに、他部のプロセッサエレメント１０７で使用されていないインストラクションメモリ１１２をＭＰＵ２００が使用することもできる。
【０１３６】
ただし、上述のようにＭＰＵ２００がアレイ型プロセッサ１００のデータメモリを使用する場合でも、アレイ型プロセッサ１００とＭＰＵ２００とのメモリ使用の競合を解決しておく必要はある。しかし、本実施例のデータ処理システム１０００では、前述のようにアレイ型プロセッサ１００とＭＰＵ２００とがイベントデータの通信により互いの状態を認識してデータ処理を連動できるので、これで競合を解決してメモリ共用を実現することができる。
【０１３７】
さらに、本実施例ではアレイ型プロセッサ１００とＭＰＵ２００とが専用の同期制御回路１３３でイベントデータを相互通信することで、インストラクションメモリ１１２およびｍ／ｎｂレジスタファイル１１５，１１６などのデータメモリを排他使用することを例示した。しかし、図９に示すように、排他制御回路４０１をインストラクションメモリ１１２およびｍ／ｎｂレジスタファイル１１５，１１６などのデータメモリに接続することで排他使用を実現することも可能である。
【０１３８】
この方式を以下に説明する。まず、同期制御回路１３３も排他制御回路４０１も使用せずにアレイ型プロセッサ１００とＭＰＵ２００とがデータメモリを共用することを想定し、アレイ型プロセッサ１００とＭＰＵ２００とに、互いに同期させる処理を実行したときにデータメモリの特定の領域の数値を“１”だけインクリメントし、その数値が“２”になると同期を確認すると定義する。
【０１３９】
そして、共用するインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６との各々の特定アドレスに“０”をデフォルト設定しておき、そのデータメモリを使用したデータ処理を完了したアレイ型プロセッサ１００とＭＰＵ２００とが上記の“０”をデータ読出して“１”をデータ書込する。すると、後段のデータ処理を実行したアレイ型プロセッサ１００かＭＰＵ２００は、データメモリから“１”をデータ読出して“２”にデータ更新することになるので、これでデータ処理の同期を確認できることになる。
【０１４０】
しかし、上記手法ではデータ処理を実行するアレイ型プロセッサ１００とＭＰＵ２００とがデータメモリから“０”をデータ読出してから“１”をデータ書込するので、一方が“０”をデータ読出してから“１”をデータ書込するまでの時間に他方が“０”をデータ読出して“１”をデータ書込すると、両方が“１”をデータ書込したまま“２”を確認することなく待機することになる。
【０１４１】
そこで、データメモリの排他使用を通知するアトミック信号をメモリコントローラ１０３から排他制御回路４０１に発行させ、その排他使用の可否を排他制御回路４０１からメモリコントローラ１０３に返信させる。アレイ型プロセッサ１００とＭＰＵ２００との一方がデータメモリを使用しているときは他方のメモリアクセスは拒絶されるので、データメモリをアレイ型プロセッサ１００とＭＰＵ２００とに確実に排他使用させることが可能となる。
【０１４２】
なお、上述の排他制御回路４０１を使用する手法は、インストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６との各々に排他制御回路４０１を追加するとともに命令バス１４２も増設する必要があるが、アレイ型プロセッサ１００とＭＰＵ２００とのメモリ使用の待機時間を短縮することができる。
【０１４３】
一方、前述の同期制御回路１３３を使用する手法は、アレイ型プロセッサ１００とＭＰＵ２００とのメモリ使用に幾分かの待機時間が発生するが、回路規模の増大を抑制することができる。つまり、上述した２つの手法は互いに一長一短があるため、データ処理システム１０００を実施する場合には各種条件を考慮して最適な一方を選択することが好適である。
【０１４４】
また、本実施例ではアレイ型プロセッサ１００とＭＰＵ２００とのデータ処理を同期させるため、同期制御回路１３３と状態管理部１０５とがデータパス部１０６を介してイベントデータを相互通信することを例示した。しかし、イベントデータに相当する状態管理部１０５の制御信号を同期制御回路１３３が直接に発行するとともに、イベントデータに相当する状態管理部１０５の状態データを同期制御回路１３３に直接に通達することも可能である。
【０１４５】
この場合、状態管理部１０５によるアレイ型プロセッサ１００の管理状態をＭＰＵ２００に直接に通達することができ、ＭＰＵ２００が発行するイベントデータを状態管理部１０５によるアレイ型プロセッサ１００の管理状態に直接に反映させることができる。
【０１４６】
ただし、この手法ではＭＰＵ２００からアレイ型プロセッサ１００に通達されるイベントデータが多数の場合、その個数が状態管理部１０５でデータ保持できる動作状態の個数に制限されることがある。また、同期制御回路１３３と状態管理部１０５とのデータ通信にデータパス部１０６が関与しないので、データパス部１０６が状態管理部１０５に発行するイベントデータと同期制御回路１３３が状態管理部１０５に通達する制御信号とを整合させる工夫が必要となる。
【０１４７】
つまり、この手法も同期制御回路１３３と状態管理部１０５とがデータパス部１０６を介してイベントデータを相互通信する手法および排他制御回路４０１を使用する手法に対して一長一短があるので、やはりデータ処理システム１０００を実施する場合には各種条件を考慮して選択することが好適である。
【０１４８】
さらに、本実施例では同期制御回路１３３がメモリアクセス部１３２とデータパス部１０６との中間に位置することを例示したが、この同期制御回路１３３は機能が実現される範囲で各種の位置に配置することが可能である。また、本実施例ではインストラクションメモリ１１２とｍ／ｎｂレジスタファイル１１５，１１６との読出／書込データを命令バス１４２で伝送することを例示したが、これをｍ／ｎｂバス１０９，１１０で伝送することも可能である。
【０１４９】
さらに、本実施例ではアレイ型プロセッサ１００が“８(bit)”からなる“ｍｂ”と“１(bit)”からなる“ｎｂ”との２種類の回路資源を有していることを例示したが、このような回路資源の種類の個数およびビット数も各種に設定することが可能である。
【０１５０】
また、本実施例ではスイッチエレメント１０８が隣接するプロセッサエレメント１０７のインストラクションメモリ１１２を共用しており、状態管理部１０５がプロセッサエレメント１０７とスイッチエレメント１０８との１組のインストラクションポインタを対応するプロセッサエレメント１０７のインストラクションメモリ１１２に供給することを例示した。
【０１５１】
しかし、プロセッサエレメント１０７のインストラクションメモリ１１２とは別個にスイッチエレメント１０８が自身専用のインストラクションメモリを有し、状態管理部１０５がプロセッサエレメント１０７とスイッチエレメント１０８とのインストラクションポインタを対応するプロセッサエレメント１０７とスイッチエレメント１０８とのインストラクションメモリ１１２等に別個に供給することも可能である。
【０１５２】
また、プロセッサエレメント１０７がスイッチエレメント１０８のインストラクションメモリを共用し、状態管理部１０５がプロセッサエレメント１０７とスイッチエレメント１０８との１組のインストラクションポインタを対応するスイッチエレメント１０８のインストラクションメモリに供給することも可能である。
【０１５３】
さらに、本実施例ではアレイ型プロセッサ１００の各部が平面状に配列されている構造を例示した。しかし、例えば、ｍ／ｎｂバス１０９，１１０とスイッチエレメント１０８とプロセッサエレメント１０７とを積層構造で重複させて形成するようなことも可能である。
【０１５４】
また、本実施例ではアレイ型プロセッサ１００に状態管理部１０５が１個のみ形成されていることを例示した。しかし、これを複数としてプロセッサエレメント１０７を所定個数ずつ管理させることも可能である。このような場合、複数の状態管理部１０５を代表する１個が統合管理することや、複数の状態管理部１０５を統合管理する上位管理部(図示せず)を形成することが好適である。
【０１５５】
【発明の効果】
請求項１ないし３の何れか一項に記載の発明では、アレイ型プロセッサと他のデータ処理装置とが処理データを相互通信し、そのデータ処理に対応したイベントデータも相互通信するので、アレイ型プロセッサと他のデータ処理装置とが良好に連動してデータ処理を分担することができる。さらに、請求項４に記載の発明では、簡単な構造で確実にアレイ型プロセッサと他のデータ処理装置とがイベントデータを相互通信することができる。
【０１５６】
請求項１ないし３および５に記載の発明では、アレイ型プロセッサのデータメモリを他のデータ処理装置も共有するので、データ処理システムとしてアレイ型プロセッサのデータメモリを有効に利用することができ、回路規模の増大を防止してハードウェアの使用効率を向上させることができる。
【０１５７】
さらに、請求項６に記載の発明では、アレイ型プロセッサと他のデータ処理装置とで共有されるデータメモリの使用の競合を解消することができ、請求項７に記載の発明では、アレイ型プロセッサの複数のメモリユニットを他のデータ処理装置に１個のデータメモリとして利用させることができ、請求項８に記載の発明では、同一のデータメモリをアレイ型プロセッサと他のデータ処理装置とが同時に使用することができ、請求項９に記載の発明では、アレイ型プロセッサと他のデータ処理装置とがメモリユニットを同時に使用することができ、請求項１０に記載の発明では、アレイ型プロセッサの複数のプロセッサエレメントに必須のレジスタファイルを他のデータ処理装置がデータメモリとして利用することができ、請求項１１に記載の発明では、アレイ型プロセッサに必須のハードウェアを他のデータ処理装置がデータメモリとして利用することができ、請求項１２に記載の発明では、アレイ型プロセッサでプロセッサエレメントの処理データの保持に利用できるメモリユニットを他のデータ処理装置がデータメモリとして利用することができ、請求項１３に記載の発明では、アレイ型プロセッサでデータ処理の最中には利用されない命令バスで他のデータ処理装置にメモリユニットを利用させることができ、請求項１４に記載の発明では、アドレスデータを多数のプロセッサエレメントに少数のバスで伝送することができ、請求項１５に記載の発明では、他のデータ処理装置がアレイ型プロセッサのデータメモリを利用するときの所要時間を一定とすることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のデータ処理システムの論理構造を示す模式的なブロック図である。
【図２】アレイ型プロセッサのｍ／ｎｂバスなどの物理構造を示すブロック図である。
【図３】命令バスなどの物理構造を示すブロック図である。
【図４】同期制御回路とメモリアクセス部との通信データなどを示す模式図である。
【図５】リードマルチプレクサの内部構造を示すブロック図である。
【図６】データメモリにデータ読出／書込するときのメモリアクセス部の各種データを示すタイムチャートである。
【図７】データメモリにデータ読出／書込するときのメモリコントローラの各種データを示すタイムチャートである。
【図８】データメモリからデータ読出するときのリードマルチプレクサの各種データを示すタイムチャートである。
【図９】変形例の要部を示すブロック図である。
【符号の説明】
１００    アレイ型プロセッサ
１０３    仮想認識手段でありアドレス発行回路であるメモリコントローラ
１０４    データ読出回路であるリードマルチプレクサ
１０５    状態管理部
１０６    データパス部
１０７    プロセッサエレメント
１０８    スイッチエレメント
１０９    データバスの一部であるｍｂバス
１１０    データバスの一部であるｎｂバス
１１２，１４０    メモリユニットでありデータメモリの一部であるインストラクションメモリ
１１５    メモリユニットでありデータメモリの一部であるｍｂレジスタファイル
１１６    メモリユニットでありデータメモリの一部であるｎｂレジスタファイル
１３２    メモリアクセス部
１３３    同期制御回路
１４１    大容量バスである命令バス
１４２    命令バス
１４３    小容量バスであるアドレスバス
２００    データ処理装置であるＭＰＵ
３０２，３０３    情報記憶媒体であるプログラムメモリ
【図１】
0003693013.tif 000002
【図２】
0003693013.tif 000003
【図３】
0003693013.tif 000004
【図４】
0003693013.tif 000005
【図５】
0003693013.tif 000006
【図６】
0003693013.tif 000007
【図７】
0003693013.tif 000008
【図８】
0003693013.tif 000009
【図９】
0003693013.tif 000010