JP3921367B2 - データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム - Google Patents

データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム Download PDF

Info

Publication number
JP3921367B2
JP3921367B2 JP2001294241A JP2001294241A JP3921367B2 JP 3921367 B2 JP3921367 B2 JP 3921367B2 JP 2001294241 A JP2001294241 A JP 2001294241A JP 2001294241 A JP2001294241 A JP 2001294241A JP 3921367 B2 JP3921367 B2 JP 3921367B2
Authority
JP
Japan
Prior art keywords
data
processing
unit
circuit
generated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001294241A
Other languages
English (en)
Other versions
JP2003099409A (ja
Inventor
崇雄 戸井
亨 粟島
義幸 宮沢
典嗣 中村
太郎 藤井
浩一朗 古田
真人 本村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
NEC Informatec Systems Ltd
Original Assignee
NEC Corp
NEC Informatec Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, NEC Informatec Systems Ltd filed Critical NEC Corp
Priority to JP2001294241A priority Critical patent/JP3921367B2/ja
Priority to US10/252,564 priority patent/US7120903B2/en
Publication of JP2003099409A publication Critical patent/JP2003099409A/ja
Application granted granted Critical
Publication of JP3921367B2 publication Critical patent/JP3921367B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Description

【0001】
【発明の属する技術分野】
本発明は、並列演算装置のオブジェクトプログラムをデータ生成するデータ処理装置および方法、そのデータ処理装置のためのコンピュータプログラム、このコンピュータプログラムがデータ格納されている情報記憶媒体、オブジェクトプログラムに対応して動作する並列演算装置、この並列演算装置とデータ処理装置とを具備しているデータ処理システム、に関する。
【0002】
【従来の技術】
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるCPU(Central Processing Unit)やMPU(Micro Processor Unit)と呼称される製品が実用化されている。
【0003】
このようなプロセッサユニットを利用したデータ処理システムでは、複数の動作命令が記述された各種のオブジェクトコードと各種の処理データとがメモリデバイスに格納され、プロセッサユニットはメモリデバイスから動作命令や処理データを順番にデータ読出して複数のデータ処理を逐次実行する。
【0004】
このため、一個のプロセッサユニットで各種のデータ処理を実現できるが、そのデータ処理では複数のデータ処理を順番に逐次実行する必要があり、その逐次処理ごとにプロセッサユニットがメモリデバイスから動作命令をデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。
【0005】
一方、実行するデータ処理が一つに限定されている場合には、そのデータ処理を実行するように論理回路をハードウェアで形成すれば、プロセッサユニットがメモリデバイスから複数の動作命令を順番にデータ読出して複数のデータ処理を順番に逐次実行するような必要はない。このため、複雑なデータ処理を高速に実行することが可能であるが、当然ながら一つのデータ処理しか実行することができない。
【0006】
つまり、オブジェクトコードを切換自在としたデータ処理システムでは、各種のデータ処理を実行できるが、ハードウェアの構成が固定されているのでデータ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、オブジェクトコードを変更できないので一つのデータ処理しか実行できない。
【0007】
このような課題を解決するため、本出願人はソフトウェアに対応してハードウェアの構成が変化するプロセッサユニットとして並列演算装置を創案し、特願2000−043202号として出願した。この並列演算装置では、小規模の多数の処理回路と配線回路とがマトリクス配列されており、このマトリクス回路部に状態管理部が並設されている。
【0008】
複数の処理回路は、個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数の配線回路は、個々にデータ設定される動作命令に対応して複数の処理回路の接続関係を個々に切換制御する。つまり、並列演算装置は複数の処理回路と複数の配線回路との動作命令を切り換えることでハードウェアの構成が変化するので、各種のデータ処理を実行することができ、ハードウェアとして小規模の多数の処理回路が簡単なデータ処理を並列に実行するので、データ処理を高速に実行することができる。
【0009】
そして、上述のような複数の処理回路と複数の配線回路との動作命令からなるコンテキストを状態管理部がオブジェクトコードに対応して動作サイクルごとに順次切り換えるので、並列演算装置はオブジェクトコードに対応して並列処理を連続的に実行することができる。
【0010】
なお、このようにコンテキストを複数サイクルで順次切り換える並列演算装置としては、例えば、“Purdue University”の“Lawrence Snyder”が“IEEE Computer, vol.15, No.1, Jan. 1982, pp47-56”に発表した“Introduction to the Configurable, Highly Parallel Computer”や、本出願人が特許出願した“特開2000−138579号”“特開200−224025号”“特開2000−232354号”“特開2000−232162号”などがある。
【0011】
【発明が解決しようとする課題】
上述のような並列演算装置は、オブジェクトコードに内包されているコンテキストを状態管理部が動作サイクルごとに順次切り換えるので、マトリクス配列されている複数の処理回路と複数の配線回路とがコンテキストに対応して動作サイクルごとに並列動作することができる。
【0012】
しかし、このような並列演算装置は構造と動作との両方が従来のCPUなどとは根本的に相違しているため、そのオブジェクトコードをソースコードから従来の手法で単純にデータ生成することはできず、そのオブジェクトコードをソースコードから適切にデータ生成する技術は確立されていない。
【0013】
本発明は上述のような課題に鑑みてなされたものであり、コンテキストを順次切り換える並列演算装置のオブジェクトプログラムを良好にデータ生成できるデータ処理装置および方法、そのデータ処理装置のためのコンピュータプログラム、このコンピュータプログラムがデータ格納されている情報記憶媒体、そのオブジェクトプログラムに対応して動作する並列演算装置、この並列演算装置とデータ処理装置とを具備しているデータ処理システム、を提供することを目的とする。
【0014】
【課題を解決するための手段】
本発明のデータ処理装置は、ソース入力手段、条件記憶手段、オブジェクト生成手段、オブジェクト出力手段、を具備しており、並列演算装置の一連のオブジェクトコードを一連のソースコードからデータ生成する。その並列演算装置は、複数の処理回路と複数の配線回路とがマトリクス配列されており、複数の処理回路は個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数の配線回路は個々にデータ設定される動作命令に対応して複数の処理回路の接続関係を個々に制御する。この並列演算装置は、複数の処理回路と複数の配線回路との動作命令からなるコンテキストが動作サイクルごとに切り換わるので、これを実現するオブジェクトコードを本発明のデータ処理装置がソースコードからデータ生成する。
【0015】
本発明のデータ処理装置では、条件記憶手段に並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されており、並列演算装置の動作記述のソースコードがソース入力手段にデータ入力される。このデータ入力されたソースコードから制約条件により並列演算装置のコンテキストを動作サイクルごとに順次切り換える一連のオブジェクトコードをオブジェクト生成手段がデータ生成し、このデータ生成された一連のオブジェクトコードをオブジェクト出力手段がデータ出力することにより、
並列演算装置の動作記述のソースコードから、並列演算装置のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードがデータ生成される。
【0016】
また、本発明の他の形態としては、並列演算装置がマトリクス回路部と状態管理部とを別個に具備しており、複数の処理回路と複数の配線回路とがマトリクス配列されているマトリクス回路部のコンテキストを状態管理部が動作サイクルごとに順次切り換える。このような並列演算装置のオブジェクトコードをデータ生成する本発明の他の形態のデータ処理装置では、オブジェクト生成手段が制約条件により一連のソースコードから一連のオブジェクトコードをデータ生成するときにマトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離することにより、
並列演算装置のマトリクス回路部と状態管理部とに別個に対応したオブジェクトコードがデータ生成される。
【0017】
また、オブジェクト生成手段がグラフ生成手段とスケジュール生成手段とを具備しており、グラフ生成手段が一連のソースコードを言語解析してDFGをデータ生成し、このデータ生成されたDFGから制約条件によりスケジュール生成手段が複数段階の動作状態をスケジューリングしたCDFGをデータ生成することにより、
並列演算装置の動作記述のソースコードから、その順次遷移する複数段階の動作状態をスケジューリングしたCDFGがデータ生成される。
【0018】
また、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新するようにスケジュール生成手段がCDFGをデータ生成することにより、
このCDFGからデータ生成されるオブジェクトコードに対応して動作する並列演算装置では、マトリクス回路部は、オブジェクトコードの多数のコンテキストを所定個数までデータ記憶して対応動作を順次実行し、状態管理部は、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを新規のコンテキストにデータ更新する。
【0019】
また、スケジュール生成手段でデータ生成されたCDFGから制約条件により記述生成手段が複数段階の動作状態のRTL記述をマトリクス回路部と状態管理部とに分離してデータ生成することにより、
並列演算装置のRTL記述がマトリクス回路部と状態管理部とに別個に対応してデータ生成される。
【0020】
また、記述生成手段でデータ生成されたマトリクス回路部のRTL記述からリスト生成手段が複数段階の動作状態ごとに制約条件により処理回路のネットリストをデータ生成することにより、
並列演算装置の処理回路のネットリストが順次遷移する複数段階の動作状態ごとにデータ生成される。
【0021】
また、並列演算装置は、複数の処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備しており、データ処理装置は、記述生成手段でデータ生成されたマトリクス回路部のRTL記述から複数段階の動作状態ごとにリスト生成手段が制約条件により処理回路の複数種類の回路資源のネットリストをデータ生成することにより、
並列演算装置の処理回路のネットリストがビット数の相違する複数種類の回路資源ごとにデータ生成される。
【0022】
また、複数段階の動作状態に対応した状態管理部のオブジェクトコードがオブジェクト記憶手段に事前にデータ登録されており、リスト生成手段でデータ生成されたマトリクス回路部のネットリストに対応して記述生成手段でデータ生成された状態管理部のRTL記述を状態変換手段がオブジェクトコードにデータ変換し、このデータ変換された状態管理部のオブジェクトコードをオブジェクト出力手段がデータ出力することにより、
状態管理部のオブジェクトコードがマトリクス回路部のネットリストに対応してデータ生成される。
【0023】
また、並列演算装置は、複数の処理回路の各々に処理データがmbデータのmb回路資源とnbデータのnb回路資源とを具備しており、データ処理装置は、RTL記述からリスト生成手段が制約条件により処理回路のm/nb回路資源のネットリストをデータ生成することにより、
並列演算装置の処理回路のネットリストがm/nb回路資源ごとにデータ生成される。
【0024】
また、リスト生成手段は、RTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmb回路資源とZ個のnb回路資源とに割り付けることにより、
“xb”のデータ処理がm/nb回路資源に適正な個数ずつ割り付けられる。
【0025】
また、リスト生成手段が“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出することにより、
“xb”のデータ処理はビット数が多数のmb回路資源に極力割り付けられ、余数部分のみビット数が少数のnb回路資源に割り付けられる。
【0026】
また、リスト生成手段は余数が所定の閾値より少数の場合に整数“Z”を算出して余数が閾値以上の場合は“Y”に“1”を加算して“Z=0”とすることにより、
mb回路資源に極力割り付けられた“xb”のデータ処理の余数部分が、ビット数に対応してm/nb回路資源の適切な一方に割り付けられる。
【0027】
また、条件記憶手段にデータ登録されている制約条件の“nb”が“1(bit)”からなることにより、
mb回路資源に割り付けられた“xb”のデータ処理の余数部分が何ビットであってもnb回路資源に割り付けられる。
【0028】
また、オブジェクト記憶手段に処理回路の各種のオブジェクトコードも事前にデータ登録されており、リスト生成手段でデータ生成されたネットリストを処理配置手段がマトリクス配列されている複数の処理回路に複数サイクルのコンテキストごとに割り付け、この処理回路に割り付けられたネットリストをコード変換手段が対応するオブジェクトコードにデータ変換することにより、
並列演算装置の複数の処理回路のオブジェクトコードが複数サイクルのコンテキストごとにデータ生成される。
【0029】
また、オブジェクト記憶手段に配線回路のオブジェクトコードも事前にデータ登録されており、コード変換手段でデータ変換された処理回路のオブジェクトコードに対応して配線変換手段が配線回路のネットリストを対応するオブジェクトコードにデータ変換することにより、
並列演算装置の複数の処理回路の接続関係を個々に切換制御する複数の配線回路のオブジェクトコードもデータ生成される。
【0030】
また、並列演算装置は、複数の処理回路の各々がレジスタファイルを具備しており、そのレジスタファイルが処理回路の処理データを一時保持する。データ処理装置は、連続する複数サイクルのコンテキストで処理データが連携するネットリストを処理配置手段がマトリクス回路部の一定位置のレジスタファイルに共通に割り付けることにより、
並列演算装置の連続する複数サイクルのコンテキストで連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードがデータ生成される。
【0031】
また、処理配置手段が最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをレジスタファイルなどに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたレジスタファイルの連続する複数サイクルのコンテキストでの位置を一致させることにより、
また、処理配置手段が最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での位置を固定してから、他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、
また、処理配置手段が最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、
連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードのデータ生成が所定のデータ処理で実行される。
【0032】
また、順次遷移する複数段階の動作状態から状態検出手段が制約条件により一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を状態合成手段が一つのコンテキストに割り付けることにより、
複数の動作状態が一つのコンテキストとして並列演算装置に一度にデータ設定される。
【0033】
また、遷移段階が連続している複数の動作状態を状態検出手段が検出することにより、
連続する複数の動作状態が一つのコンテキストとして並列演算装置にデータ設定される。
【0034】
本発明の第一の並列演算装置は、マトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作し、そのコンテキストがコード格納手段にデータ格納されているオブジェクトコードに対応して動作サイクルごとに順次切り換わる。このコード格納手段に本発明のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されていることにより、
このデータ格納されているオブジェクトコードに対応して複数サイクルのコンテキストが順次切り換わる。
【0035】
本発明の第二の並列演算装置は、マトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作し、そのコンテキストがオブジェクト入力手段に外部入力されるオブジェクトコードに対応して動作サイクルごとに順次切り換わる。このオブジェクト入力手段に本発明のデータ処理装置でデータ生成されたオブジェクトコードが外部入力されることにより、
この外部入力されるオブジェクトコードに対応して複数サイクルのコンテキストが順次切り換わる。
【0036】
本発明の第一のデータ処理システムでは、本発明のデータ処理装置でデータ生成されたオブジェクトコードが本発明の並列演算装置に外部入力されることにより、
データ処理装置に外部入力されるソースコードに対応して並列演算装置が順次切り換わる複数サイクルのコンテキストで並列演算を実行する。
【0037】
本発明の第二のデータ処理システムでは、並列演算装置がマトリクス回路部と状態管理部とを別個に具備しており、データ処理装置がソースコードからデータパスと有限状態マシンとを分離してオブジェクトコードをデータ生成する。そのデータパスとマトリクス回路部とが対応しているとともに有限状態マシンと状態管理部とが対応していることにより、
並列演算装置のハードウェア構造に対応したソフトウェア構造にオブジェクトコードがデータ処理装置でデータ生成される。
【0038】
また、本発明で云う各種手段は、その機能を実現するように形成されていれば良く、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置の内部に実現された所定の機能、これらの組み合わせ、等を許容する。また、本発明で云う各種手段は、個々に独立した存在である必要もなく、ある手段が他の手段の一部であるようなことも許容する。
【0039】
また、本発明で云う情報記憶媒体とは、データ処理装置に各種処理を実行させるためのコンピュータプログラムが事前に格納されたハードウェアであれば良く、例えば、データ処理装置を一部とする装置に固定されているROM(Read Only Memory)やHDD(Hard Disc Drive)、データ処理装置を一部とする装置に交換自在に装填されるCD(Compact Disc)−ROMやFD(Floppy Disc)、等を許容する。
【0040】
また、本発明で云うデータ処理装置とは、コンピュータプログラムをデータ読取して対応するデータ処理を実行できるハードウェアであれば良く、例えば、CPU(Central Processing Unit)を主体として、これにROMやRAM(Random Access Memory)やI/F(Interface)ユニット等の各種デバイスが接続されたハードウェアなどを許容する。
【0041】
なお、本発明でコンピュータプログラムに対応した各種動作をデータ処理装置に実行させることは、各種デバイスをデータ処理装置に動作制御させることなども許容する。例えば、データ処理装置に各種データをデータ保存させることは、データ処理装置が一部として具備しているRAM等の情報記憶媒体に各種データを格納すること、データ処理装置に交換自在に装填されているFD等の情報記憶媒体に各種データを格納すること、等を許容する。
【0042】
【発明の実施の形態】
本発明の実施の一形態を図面を参照して以下に説明する。まず、本形態の並列演算装置であるアレイ型プロセッサ100は、図4および図5(a)に示すように、オブジェクト入力手段であるI/Fユニット101、コード格納手段であるコードメモリ102、状態管理部103、データ分配部104、マトリクス回路部105、データメモリ106、を具備しており、マトリクス回路部105には、複数の処理回路であるプロセッサエレメント107、複数の配線回路であるスイッチエレメント108、多数のmbバス109、多数のnbバス110、等がマトリクス配列されている。
【0043】
また、同図(b)に示すように、プロセッサエレメント107は、インストラクションメモリ111、インストラクションデコーダ112、mb回路資源であるmbレジスタファイル113、nb回路資源であるnbレジスタファイル114、mb回路資源でありmb演算器であるmbALU115、nb回路資源でありnb演算器であるnbALU116、内部配線資源117、等を各々具備しており、スイッチエレメント108は、バスコネクタ121、入力制御回路122、出力制御回路123、等を各々具備している。
【0044】
I/Fユニット101は、後述するデータ処理装置300が接続され、このデータ処理装置300から一連のオブジェクトコードが外部入力される。コードメモリ102は、RAM等の情報記憶媒体からなり、外部入力されたオブジェクトコードをデータ記憶する。
【0045】
このオブジェクトコードは、詳細には後述するが、マトリクス回路部105にマトリクス配列された複数のプロセッサエレメント107と複数のスイッチエレメント108との動作命令が、順次切り換わる動作サイクルごとのコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理部103の動作命令が、順次遷移する動作状態としてデータ設定されている。
【0046】
この状態管理部103は、コードメモリ102でデータ記憶された一連のオブジェクトコードから動作サイクルごとにコンテキストをデータ読出し、その動作命令から複数のプロセッサエレメント107と複数のスイッチエレメント108とのインストラクションポインタを各々発生する。
【0047】
本形態ではスイッチエレメント108のインストラクションメモリが隣接するプロセッサエレメント107のインストラクションメモリ111で兼用されているので、状態管理部103は、発生したプロセッサエレメント107とスイッチエレメント108との一組のインストラクションポインタを対応するプロセッサエレメント107のインストラクションメモリ111に供給する。
【0048】
このインストラクションメモリ111はプロセッサエレメント107とスイッチエレメント108との複数の動作命令が事前に格納されており、状態管理部103から供給される二つのインストラクションポインタでプロセッサエレメント107とスイッチエレメント108との動作命令が指定される。インストラクションデコーダ112は、インストラクションポインタで指定された動作命令をデコードし、スイッチエレメント108、内部配線資源117、m/nbALU115,116、等の動作を制御する。
【0049】
mbバス109は“8(bit)”の処理データであるmbデータを伝送し、nbバス110は“1(bit)”の処理データであるnbデータを伝送するので、スイッチエレメント108は、インストラクションデコーダ112の動作制御に対応してm/nbバス109,110による複数のプロセッサエレメント107の接続関係を制御する。
【0050】
より詳細には、スイッチエレメント108のバスコネクタ121は、mbバス109とnbバス110とが四方から連通しており、このように連通している複数のmbバス109の相互の接続関係と連通する複数のnbバス110の相互の接続関係とを制御する。
【0051】
このため、本形態のアレイ型プロセッサ100は、コードメモリ102にデータ設定されたオブジェクトコードに対応して状態管理部103がマトリクス回路部105のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに複数のプロセッサエレメント107は個々に設定自在なデータ処理で並列動作する。
【0052】
なお、ここでは説明を簡略化するために各部が平面状に配列されている構造を例示しているが、実際には、上述のm/nbバス109,110とスイッチエレメント108とプロセッサエレメント107とを積層構造で重複させて形成するようなことも可能である。
【0053】
入力制御回路122は、mbバス109からmbレジスタファイル113やmbALU115へのデータ入力の接続関係と、nbバス110からnbレジスタファイル114やnbALU116へのデータ入力の接続関係とを制御し、出力制御回路123は、mbレジスタファイル113やmbALU115からmbバス109へのデータ出力の接続関係と、nbレジスタファイル114やnbALU116からnbバス110へのデータ出力の接続関係とを制御する。
【0054】
データ分配部104は、外部入力される一連の処理データをmbデータとnbデータとに分配し、このm/nbデータをスイッチエレメント108により接続関係が制御されたm/nbバス109,110から複数のプロセッサエレメント107の特定の一部に適宜入力する。
【0055】
このプロセッサエレメント107の内部配線資源117は、インストラクションデコーダ112の動作制御に対応して、プロセッサエレメント107の内部でのmbレジスタファイル113およびmbALU115の接続関係とnbレジスタファイル114およびnbALU116の接続関係とを制御する。
【0056】
mbレジスタファイル113は、内部配線資源117に制御される接続関係に対応して、mbバス109などから入力されるmbデータを一時保持してmbALU115などに出力する。nbレジスタファイル114は、内部配線資源117に制御される接続関係に対応して、nbバス110などから入力されるnbデータを一時保持してnbALU116などに出力する。
【0057】
mbALU115は、インストラクションデコーダ112の動作制御に対応したデータ処理をmbデータで実行し、nbALU116は、インストラクションデコーダ112の動作制御に対応したデータ処理をnbデータで実行する。なお、プロセッサエレメント107は、上述のように内蔵されているm/nbレジスタファイル113,114でm/nbデータをデータ読書するが、必要により外部のデータメモリ106でも処理データをデータ読書する。
【0058】
そして、本形態のアレイ型プロセッサ100を一部とした本形態のデータ処理システム200は、図1に示すように、アレイ型プロセッサ100、データ処理装置300、ソース供給手段201、オブジェクト供給手段202、データ入力手段203、等を具備している。
【0059】
また、本形態のデータ処理装置300は、図3に示すように、コンピュータの主体となるハードウェアとしてCPU301を具備しており、このCPU301には、バスライン302により、ROM303、RAM304、HDD305、FD306が交換自在に装填されるFDD(FD Drive)307、CD−ROM308が交換自在に装填されるCDドライブ309、キーボード310、マウス311、ディスプレイ312、I/Fユニット313、等のハードウェアが接続されている。
【0060】
本形態のデータ処理装置300では、ROM303、RAM304、HDD305、交換自在なFD306、交換自在なCD−ROM308、等のハードウェアが情報記憶媒体に相当し、これらの少なくとも一個にCPU301のためのコンピュータプログラムや各種データがソフトウェアとして格納されている。
【0061】
例えば、CPU301に各種のデータ処理を実行させるコンピュータプログラムは、FD306やCD−ROM308に事前に格納されている。このようなソフトウェアはHDD305に事前にインストールされており、データ処理装置300の起動時にRAM304に複写されてCPU301にデータ読取される。
【0062】
このようにCPU301が適正なコンピュータプログラムをデータ読取して各種のデータ処理を実行することにより、本形態のデータ処理装置300は、図1に示すように、ソース入力手段211、条件記憶手段212、オブジェクト生成手段213、オブジェクト出力手段214、等の各種手段を各種機能として論理的に具備している。
【0063】
データ処理システム200のソース供給手段201は、例えば、ソースコードが格納されたFD306からなり、C言語などの高級言語でアレイ型プロセッサ100が動作記述された一連のソースコードをデータ処理装置300のソース入力手段211に供給する。
【0064】
このデータ処理装置300のソース入力手段211は、RAM304に格納されているコンピュータプログラムに対応してCPU301がFDD307を動作制御する機能などに相当し、ソース供給手段201からソースコードがデータ入力される。
【0065】
条件記憶手段212は、上述のコンピュータプログラムに対応してCPU301がデータ認識するHDD305の記憶エリアなどに相当し、アレイ型プロセッサ100の物理構造や物理特性などに対応した各種の制約条件が事前にデータ登録されている。
【0066】
オブジェクト生成手段213は、CPU301がコンピュータプログラムに対応して所定のデータ処理を実行する機能などに相当し、ソース入力手段211にデータ入力されたソースコードから条件記憶手段212の制約条件により、アレイ型プロセッサ100のマトリクス回路部105のコンテキストを順次切り換える一連のオブジェクトコードをデータ生成する。
【0067】
なお、オブジェクト生成手段213は、前述のようにアレイ型プロセッサ100に状態管理部103とマトリクス回路部105とが別個に形成されているので、この構造を反映した制約条件によりソースコードからオブジェクトコードをデータ生成するとき、図4に示すように、マトリクス回路部105に対応したデータパスと状態管理部103に対応した有限状態マシンとを分離する。
【0068】
また、詳細には後述するが、オブジェクト生成手段213は多段階の各種処理によりソースコードからオブジェクトコードをデータ生成し、その多段階の各種処理で条件記憶手段212から必要な制約条件を適宜参照するので、この条件記憶手段212にはオブジェクト生成手段213の各種処理に必要充分なデータ内容で各種の制約条件がデータ設定されている。
【0069】
オブジェクト出力手段214は、CPU301がコンピュータプログラムに対応してI/Fユニット313のデータ出力を制御する機能などに相当し、オブジェクト生成手段213でデータ生成された一連のオブジェクトコードをデータ処理システム200のオブジェクト供給手段202にデータ出力する。
【0070】
このオブジェクト供給手段202は、データ処理装置300のI/Fユニット313とアレイ型プロセッサ100の状態管理部103とを接続した接続コネクタ(図示せず)などに相当し、データ処理装置300がデータ出力するオブジェクトコードをアレイ型プロセッサ100のI/Fユニット101にデータ入力する。
【0071】
このアレイ型プロセッサ100のI/Fユニット101には、前述のようにコードメモリ102が接続されているので、このコードメモリ102でオブジェクトコードがデータ保持される。データ入力手段203は、例えば、所定のデータ発生回路(図示せず)からなり、一連の処理データを発生してアレイ型プロセッサ100のデータ分配部104に入力する。
【0072】
本形態のデータ処理装置300のオブジェクト生成手段213は、図2に示すように、グラフ生成手段221、スケジュール生成手段222、記述生成手段223、リスト生成手段224、オブジェクト記憶手段225、状態変換手段226、処理配置手段227、コード変換手段228、配線変換手段229、等の各種手段からなる。
【0073】
グラフ生成手段221は、前述のC言語などで記述された一連のソースコードを言語解析してDFGをデータ生成し、スケジュール生成手段222は、グラフ生成手段221でデータ生成されたDFGから所定の制約条件により、図6に示すように、アレイ型プロセッサ100の順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成する。
【0074】
より詳細には、図7に示すように、例えば、ソースコードに処理データが連携する複数のデータ処理が記述されているとき、図8に示すように、その複数のデータ処理が因果関係に対応して連携されたDFGが既存の手法でデータ生成される。
【0075】
このようなDFGからCDFGがデータ生成されるとき、アレイ型プロセッサ100のプロセッサエレメント107の個数やm/nbデータバス109,110の遅延時間などが制約条件として参照され、図9(a)に示すように、これに対応してDFGの複数のデータ処理が順次遷移する複数段階の動作状態に順番にスケジューリングされる。
【0076】
このようにDFGの複数のノードが順番にスケジューリングされるとき、一つの動作状態で一度に並列実行される複数のデータ処理の個数が、制約条件であるプロセッサエレメント107の個数を超過する場合、その超過するデータ処理は次段の動作状態に移行される。
【0077】
また、一つの動作状態で一度に連続実行される複数のデータ処理の累積時間が制約条件である動作状態のクロック間隔を超過する場合、そのクロック間隔を超過するデータ処理から以後のデータ処理は次段の動作状態に移行される。同様に、ある動作状態で連続に実行される複数のデータ処理に、ポート入力/出力、メモリアクセスや複数サイクル演算、などのように動作サイクルを跨ぐデータ処理が存在する場合、そのデータ処理が発生する時点で動作状態は次段に移行される。
【0078】
ここで、上述の演算個数とプロセッサエレメント107の個数との対比で動作状態を移行させるスケジューリングを以下に具体的に説明する。まず、本形態のアレイ型プロセッサ100がプロセッサエレメント107を二個だけ具備しており、比較対象とする従来のアレイ型プロセッサ(図示せず)が加算器と減算器とを一個ずつ具備していると想定する。
【0079】
この場合、従来のアレイ型プロセッサは、一つの動作状態で一つの加算処理と一つの減算処理とを並列実行できるが、一つの動作状態で二つの加算処理や二つの減算処理を並列実行することはできない。一方、本形態のアレイ型プロセッサ100は、一つの動作状態で二つのデータ処理を並列実行することができ、その二つのデータ処理としては加算処理や減算処理などを自在に設定することができる。
【0080】
そして、図8に示すように、DFGに二つの加算処理が並列に存在し、これらの加算処理の出力データを入力データとする二つの減算処理が並列に存在する場合、従来のアレイ型プロセッサへのスケジューリング処理では、図9(b)に示すように、第一状態で第一の加算処理を実行し、第二状態で第一の減算処理と第二の加算処理とを並列実行し、第三状態で第二の減算処理を実行するようにCDFGがデータ生成される。
【0081】
一方、本形態のデータ処理装置300による本形態のアレイ型プロセッサ100へのスケジューリング処理では、同図(a)に示すように、第一状態に二個のプロセッサエレメント107で第一第二の加算処理を並列実行し、第二状態に第一第二の減算処理を並列実行するようにCDFGがデータ生成される。
【0082】
さらに、CDFGが制約条件であるポート入力に対応してスケジューリングされるとともに、制約条件である遅延時間に対応してスケジューリングされる場合を以下に簡単に説明する。まず、制約条件として一つの動作状態にポート入力が一つしか存在しない場合、図10に示すように、ソースコードに複数のポート入力が記述されていると、図11に示すように、ソースコードの第一行目と第三行目とのポート入力はCDFGで別個の動作状態にスケジューリングされる。
【0083】
また、一つの動作状態に許容される遅延時間が“30(nsec)”、加算処理の所要時間が“10(nsec)”、乗算処理の所要時間が“20(nsec)”、の場合、図10に示すように、ソースコードの第二行目に一つの加算処理と二つの乗算処理とが記述されていると、図11に示すように、その一つの加算処理と第一の乗算処理とは一つの動作状態にスケジューリングされるが、第二の乗算処理は次段の動作状態にスケジューリングされる。
【0084】
なお、本形態のアレイ型プロセッサ100は、実際には前述のようにプロセッサエレメント107が演算器として8ビットのALU115と1ビットのALU116のみ具備しているので、32ビットの一つのデータ処理などは制約条件により四個の8ビットのALU115で並列実行される。
【0085】
この場合、一つの動作状態にスケジューリングされた32ビットの一つのデータ処理に対応して制約条件である8ビットのALU115の個数から四個が減算されるので、例えば、これが不足する場合には32ビットの一つのデータ処理は次段の動作状態に移行される。
【0086】
また、本形態ではプロセッサエレメント107の各々がm/nbALU115,116を具備しているので、これに対応した制約条件により演算処理はmbALU115とnbALU116とに配分されてスケジューリングされる。さらに、プロセッサエレメント107にm/nbALU115,116以外にデータ処理を実行する回路資源が存在する場合、これも制約条件に組み込まれてスケジューリングに利用される。
【0087】
記述生成手段223は、スケジュール生成手段222でデータ生成されたCDFGから、所定の制約条件により複数段階の動作状態のRTL記述をマトリクス回路部105と状態管理部103とに分離してデータ生成する。このとき、プロセッサエレメント107やスイッチエレメント108の処理能力などが制約条件として参照され、図9(a)および図12に示すように、データ処理やデータ転送を実行するm/nbALU115,116などが割り付けられる。
【0088】
ただし、この時点での割り付けは、どの処理がアレイ型プロセッサ100のどの種類の回路資源により実行されるかを区分するに留まり、どのデータ処理をどのm/nbALU115,116が実行するかを決定することはなく、複数段階の動作状態で連携する処理データをデータ保持するm/nbレジスタファイル113,114の位置を決定することもない。また、この割り付けではトライアンドエラーなどにより、複数段階の動作状態ごとに使用する回路資源が最少となる組み合わせがデータ生成される。
【0089】
リスト生成手段224は、記述生成手段223でデータ生成されたマトリクス回路部105のRTL記述から所定の制約条件により、複数段階の動作状態ごとのプロセッサエレメント107のネットリストを、図13に示すように、m/nbALU115,116などのm/nb回路資源ごとにデータ生成する。
【0090】
より具体的には、RTL記述に“mb”より多数の“xb(x-(bit)”のデータ処理が存在する場合、リスト生成手段224は、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出する。これで“x=Ym+Zn”を満足する自然数“Y”と“Z”とを検出し、“xb”のデータ処理をY個のmbALU115およびmbレジスタファイル113とZ個のnbALU116およびnbレジスタファイル114とに割り付ける。
【0091】
オブジェクト記憶手段225は、CPU301がデータ認識するHDD305の記憶エリアなどに相当し、状態管理部103の複数段階の動作状態に対応した各種のオブジェクトコードと、マトリクス回路部105のプロセッサエレメント107やスイッチエレメント108の各種のオブジェクトコードと、が事前にデータ登録されている。
【0092】
状態変換手段226は、リスト生成手段224でデータ生成されたマトリクス回路部105のネットリストに対応して、記述生成手段223でデータ生成された状態管理部103のRTL記述を対応するオブジェクトコードにデータ変換する。
【0093】
処理配置手段227は、リスト生成手段224で複数段階の動作状態ごとにデータ生成されたマトリクス回路部105のネットリストを、マトリクス配列されている複数のプロセッサエレメント107に複数サイクルのコンテキストごとに割り付ける。
【0094】
このとき、処理配置手段227は、図14に示すように、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをm/nbレジスタファイル113,114などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたm/nbレジスタファイル113,114の連続する複数サイクルのコンテキストでの位置を一致させることにより、図15に示すように、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部105の一定位置のm/nbレジスタファイル113,114に共通に割り付ける。
【0095】
その場合、連続する複数サイクルのコンテキストで処理データが連携するm/nbレジスタファイル113,114のネットリストは、同一の名称が付与されることで連携が表現される。また、上述のコンテキストごとでのネットリストの配置と、複数のコンテキストでのネットリストの配置とは、例えば、シミュレーテッド・アニーリング手法などの既存の反復改良アルゴリズムを適用することにより、反復処理で最適化される。
【0096】
ただし、この処理配置手段227でのネットリストの配置はコンテキストごとに実行され、あるコンテキストに配置できないネットリストを他のコンテキストに移行させる処理などは実行されない。このため、あるコンテキストに必要なネットリストの全部を配置できない事態が処理配置手段227で発生すると、例えば、これを処理配置手段227がスケジュール生成手段222にデータ通知することにより、その通知データも制約条件としてスケジュール生成手段222がCDFGを再度生成する。
【0097】
また、ここでは説明を簡単とするために一個のm/nbレジスタファイル113,114がm/nbデータを一つだけ一時保持する場合を例示しているが、例えば、m/nbレジスタファイル113,114が相違するアドレスで複数のm/nbデータを独立にデータ読書できる場合には、一つのコンテキストでデータ書込とデータ読出とが同時に発生しないならば一個のm/nbレジスタファイル113,114が複数のコンテキストで複数のm/nbデータをデータ読書することが可能である。
【0098】
コード変換手段228は、処理配置手段227でプロセッサエレメント107に割り付けられたネットリストを対応するオブジェクトコードにデータ変換し、配線変換手段229は、コード変換手段228でデータ変換されたプロセッサエレメント107のオブジェクトコードに対応してスイッチエレメント108のネットリストをオブジェクトコードにデータ変換する。
【0099】
上述したデータ処理装置300の各種手段は、必要によりFDD307やI/Fユニット312等のハードウェアを利用して実現されるが、その主体はRAM304等の情報記憶媒体に格納されたソフトウェアに対応して、データ処理装置300のハードウェアであるCPU301が機能することにより実現されている。
【0100】
このようなソフトウェアは、例えば、アレイ型プロセッサ100の物理構造や物理特性などに対応した各種の制約条件をHDD305などにデータ記憶させる処理、FD306の格納データをFDD107にデータ読出させることなどでアレイ型プロセッサ100の動作記述のソースコードをデータ入力する処理、このデータ入力されたソースコードから制約条件によりアレイ型プロセッサ100のオブジェクトコードをデータ生成する処理、このデータ生成されたオブジェクトコードをI/Fユニット313などからデータ出力する処理、等のデータ処理をCPU301等に実行させるためのコンピュータプログラムとしてRAM304等の情報記憶媒体に格納されている。
【0101】
さらに、上述のソースコードからオブジェクトコードをデータ生成するデータ処理のソフトウェアは、状態管理部103のオブジェクトコードとマトリクス回路部105のオブジェクトコードとをHDD305などにデータ記憶させる処理、C言語などで記述された一連のソースコードを言語解析してDFGをデータ生成する処理、このデータ生成されたDFGから所定の制約条件によりアレイ型プロセッサ100の順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成する処理、このデータ生成されたCDFGから所定の制約条件により複数段階の動作状態のRTL記述をマトリクス回路部105と状態管理部103とに分離してデータ生成する処理、このデータ生成されたマトリクス回路部105のRTL記述から所定の制約条件により複数段階の動作状態ごとのプロセッサエレメント107のネットリストをm/nbALU115,116などのm/nb回路資源ごとにデータ生成する処理、このデータ生成されたマトリクス回路部105のネットリストに対応して状態管理部103のRTL記述を対応するオブジェクトコードにデータ変換する処理、複数段階の動作状態ごとにデータ生成されたマトリクス回路部105のネットリストをマトリクス配列されている複数のプロセッサエレメント107に複数サイクルのコンテキストごとに割り付ける処理、このプロセッサエレメント107に割り付けられたネットリストを対応するオブジェクトコードにデータ変換する処理、このデータ変換されたプロセッサエレメント107のオブジェクトコードに対応してスイッチエレメント108のネットリストをオブジェクトコードにデータ変換する処理、等のデータ処理をCPU301等に実行させるためのコンピュータプログラムとしてRAM304等の情報記憶媒体に格納されている。
【0102】
なお、上述のようなコンピュータプログラムは、例えば、CD−ROM108などの情報記憶媒体にデータ格納されてデータ処理装置300にデータ供給されるが、その情報記憶媒体には条件記憶手段212の制約条件やオブジェクト記憶手段225のオブジェクトコードも構造データとしてデータ格納することが可能である。
【0103】
上述のような構成において、本形態のデータ処理システム200では、アレイ型プロセッサ100の動作記述のソースコードがソース供給手段201からデータ処理装置300にデータ供給されると、このデータ処理装置300はソースコードをオブジェクトコードに変換してアレイ型プロセッサ100にデータ供給する。
【0104】
このアレイ型プロセッサ100はデータ供給されたオブジェクトコードをデータ記憶するので、この状態でデータ入力手段203から一連の処理データが入力されると、その入力された処理データをオブジェクトコードに対応してデータ処理する。
【0105】
より詳細には、本形態のデータ処理装置300には、アレイ型プロセッサ100の物理構造や物理特性などに対応した各種の制約条件と、状態管理部103やプロセッサエレメント107やスイッチエレメント108の各種のオブジェクトコードと、がデータ登録される。
【0106】
このような状態で、本形態のデータ処理装置300では、図16に示すように、C言語などでアレイ型プロセッサ100が動作記述された一連のソースコードがデータ入力されると(ステップS1)、図7および図8に示すように、そのソースコードが言語解析されてDFGがデータ生成される(ステップS2)。
【0107】
つぎに、アレイ型プロセッサ100のプロセッサエレメント107の個数やm/nbデータバス109,110の遅延時間などが、DFGからCDFGをデータ生成するための制約条件としてデータ読出され(ステップS3)、図6および図9(a)に示すように、この制約条件によりDFGからアレイ型プロセッサ100の順次遷移する複数段階の動作状態をスケジューリングしたCDFGがデータ生成される(ステップS4)。
【0108】
つぎに、プロセッサエレメント107やスイッチエレメント108の処理能力などが、CDFGからRTL記述をデータ生成するための制約条件としてデータ読出され(ステップS5)、図12に示すように、この制約条件によりCDFGのデータ処理にm/nbALU115,116などが割り付けられ、複数段階の動作状態のRTL記述がマトリクス回路部105と状態管理部103とに分離されてデータ生成される(ステップS6)。
【0109】
つぎに、m/nbレジスタファイル113,114やm/nbALU115,116のビット数などが、RTL記述からネットリストをデータ生成するための制約条件としてデータ読出され(ステップS7)、図13に示すように、この制約条件によりマトリクス回路部105のRTL記述から複数段階の動作状態ごとのプロセッサエレメント107のネットリストがm/nbALU115,116などのm/nb回路資源ごとにデータ生成される(ステップS8)。
【0110】
このように複数段階の動作状態ごとにマトリクス回路部105のネットリストがデータ生成されると、これに対応して状態管理部103のRTL記述が対応するオブジェクトコードにデータ変換されるので(ステップS9)、これで状態管理部103のオブジェクトコードがデータ生成される。
【0111】
つぎに、複数段階の動作状態ごとにデータ生成されたマトリクス回路部105のネットリストが、マトリクス配列されている複数のプロセッサエレメント107に複数サイクルのコンテキストごとに割り付けられ(ステップS10)、このプロセッサエレメント107に割り付けられたネットリストが対応するオブジェクトコードにデータ変換されるので(ステップS11)、これでプロセッサエレメント107のオブジェクトコードがデータ生成される。
【0112】
このようにプロセッサエレメント107のオブジェクトコードがデータ生成されると、これに対応してスイッチエレメント108のネットリストがオブジェクトコードにデータ変換される(ステップS12)。これでスイッチエレメント108のオブジェクトコードもデータ生成されるので、状態管理部103とプロセッサエレメント107とスイッチエレメント108とに対応したアレイ型プロセッサ100のオブジェクトコードが完成することになる(ステップS13)。
【0113】
このようにデータ処理装置300でデータ生成されたオブジェクトコードは、前述のようにアレイ型プロセッサ100にデータ設定されるので、このアレイ型プロセッサ100では、状態管理部103が外部入力されるオブジェクトコードを保持してプロセッサエレメント107ごとのインストラクションポインタを発生し、このインストラクションポインタでプロセッサエレメント107ごとにインストラクションメモリ111に格納されている複数の動作命令から一つが指定される。
【0114】
この指定された動作命令がインストラクションデコーダ112でデコードされ、スイッチエレメント108による複数のプロセッサエレメント107の接続関係、内部配線資源117によるプロセッサエレメント107の内部での接続関係、m/nbALU115,116のデータ処理、等が制御されるので、これで本形態のアレイ型プロセッサ100は、オブジェクトコードに対応したデータ処理を実行するハードウェアの状態となる。
【0115】
このような状態で、データ入力手段203から外部入力される一連の処理データがデータ分配部104でmbデータとnbデータとに分配され、上述のように接続関係とデータ処理とが制御された複数のプロセッサエレメント107ごとにmbALU115とnbALU116とでデータ処理される。
【0116】
本形態のアレイ型プロセッサ100は、上述のようにオブジェクトコードに対応してプロセッサエレメント107ごとに“8(bit)”からなるmbデータと“1(bit)”からなるnbデータとのデータ処理を並列に実行できるので、外部入力される一連の処理データのビット数が変化しても、これをビット数の多少により的確に配分して良好な効率で並列処理することができる。
【0117】
また、本形態のアレイ型プロセッサ100は、プロセッサエレメント107ごとに形成されているm/nbレジスタファイル113,114が入力されるm/nbデータを一時保持して出力するので、プロセッサエレメント107ごとにm/nbALU115,116でデータ処理されるm/nbデータを各々専用のm/nbレジスタファイル114により無駄なく一時保持することができる。
【0118】
しかも、本形態のアレイ型プロセッサ100は、“nb”が“1(bit)”からなるので、nbALU116により最少ビットでのデータ処理を実行することができ、処理データのビット数が各種に変化しても確実にデータ処理を実行することができる。
【0119】
また、本形態のデータ処理システム200は、アレイ型プロセッサ100に処理データを入力するとき、ソースコードをデータ処理装置300に供給してオブジェクトコードをアレイ型プロセッサ100にデータ入力することができるので、アレイ型プロセッサ100の動作状態を各種にリアルタイムに切り換えることができる。
【0120】
本形態のデータ処理システム200では、上述のようにアレイ型プロセッサ100はマトリクス回路部105と状態管理部103とを別個に具備しており、データ処理装置300はアレイ型プロセッサ100の動作記述の一連のソースコードからデータパスと有限状態マシンとを分離して一連のオブジェクトコードをデータ生成する。
【0121】
そして、そのデータパスとアレイ型プロセッサ100のマトリクス回路部105とが対応しており、有限状態マシンと状態管理部103とが対応しているので、データ処理装置300のソフトウェアとアレイ型プロセッサ100のハードウェアとの整合性が良好である。
【0122】
本形態のアレイ型プロセッサ100は、その構造および動作が従来のCPUなどとは根本的に相違するので、そのオブジェクトコードの構造も従来のCPUなどとは根本的に相違している。しかし、本形態のデータ処理装置300は、前述のように一般的な手法でアレイ型プロセッサ100の動作状態が記述されたソースコードから、アレイ型プロセッサ100のオブジェクトコードを良好にデータ生成することができるので、本形態のアレイ型プロセッサ100を良好に動作させることができる。
【0123】
特に、本形態のデータ処理装置300は、ソースコードからDFGをデータ生成して複数段階の動作状態ごとのCDFGにスケジューリングし、そのCDFGからデータ生成したネットリストを複数サイクルのコンテキストごとに割り付けるので、アレイ型プロセッサ100のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードをデータ生成することができる。
【0124】
しかも、ソースコードからオブジェクトコードをデータ生成するときに有限状態マシンとデータパスとを分離するので、マトリクス回路部105と状態管理部103とを別個に具備しているアレイ型プロセッサ100のオブジェクトコードを良好にデータ生成することができる。
【0125】
さらに、マトリクス回路部105のRTL記述からプロセッサエレメント107のm/nbの回路資源のネットリストをデータ生成するので、mbデータ用とnbデータ用とに記述内容が分別されたアレイ型プロセッサ100のオブジェクトコードを良好にデータ生成することができる。
【0126】
しかも、RTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmbALU115とZ個のnbALU116とに割り付けるので、“xb”のデータ処理をm/nbALU115,116に適正な個数ずつ割り付けることができる。
【0127】
特に、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出するので、“xb”のデータ処理をビット数が多数のmbALU115に極力割り付けることができ、余数部分のみビット数が少数のnbALU116に割り付けることができる。しかも、上述の“nb”が“1(bit)”なので、mbALU115に割り付けられた“xb”のデータ処理の余数部分が何ビットであってもnbALU116に割り付けることができる。
【0128】
また、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部105の一定位置のm/nbレジスタファイル113,114に共通に割り付けるので、アレイ型プロセッサ100の連続する複数サイクルのコンテキストで連携する処理データを一定位置のm/nbレジスタファイル113,114にデータ保持させるオブジェクトコードをデータ生成することができる。
【0129】
特に、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをm/nbレジスタファイル113,114などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたm/nbレジスタファイル113,114の連続する複数サイクルのコンテキストでの位置を一致させるので、連携する処理データを一定位置のm/nbレジスタファイル113,114にデータ保持させるオブジェクトコードを所定のデータ処理でデータ生成することができる。
【0130】
なお、本形態のデータ処理装置300のソースコードからオブジェクトコードをデータ生成するコンピュータプログラムはアレイ型プロセッサ100と一対一に対応しているので、そのコンピュータプログラムがデータ格納されたCD−ROM108などの情報記憶媒体は一個以上のアレイ型プロセッサ100とセットで販売することが好適である。
【0131】
その場合、条件記憶手段212の制約条件やオブジェクト記憶手段225のオブジェクトコードもアレイ型プロセッサ100に対応するので、その制約条件やオブジェクトコードを構造データとしてコンピュータプログラムとともに情報記憶媒体にデータ格納することが好適である。
【0132】
また、アレイ型プロセッサ100として複数種類の製品を販売するような場合、複数種類のアレイ型プロセッサ100で共通する一つのコンピュータプログラムを一個の情報記憶媒体にデータ格納して販売し、複数種類のアレイ型プロセッサ100を選択的に販売するときに、対応する制約条件やオブジェクトコードがデータ格納された複数種類の情報記憶媒体をともに販売することが好適である。
【0133】
なお、本発明は上記形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、上記形態ではソースコードからオブジェクトコードをデータ生成する一連の処理動作をデータ処理装置300が一つのコンピュータプログラムに対応して実行することを例示したが、ソースコードからRTL記述をデータ生成するデータ処理装置およびコンピュータプログラム、RTL記述からネットリストをデータ生成するデータ処理装置およびコンピュータプログラム、ネットリストからオブジェクトコードをデータ生成するデータ処理装置およびコンピュータプログラム、を別個とすることも可能である。
【0134】
また、上記形態ではRTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmbALU115とZ個のnbALU116とに割り付けるとき、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出することにより、“xb”のデータ処理をビット数が多数のmbALU115に極力割り付け、余数部分のみビット数が少数のnbALU116に割り付けることを例示した。
【0135】
しかし、これでは“nb”が“1(bit)”で“mb”が“32(bit)”の場合に、“30(bit)”のデータ処理が30個のnbALU116で実行されるようなことが発生する。そこで、これを解消するためには、データ処理をm/nbALU115,116に割り付ける所定の閾値をデータ設定し、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数が閾値より少数の場合に整数“Z”を算出し、余数が閾値以上の場合は“Y”に“1”を加算して“Z=0”とすることが好適である。
【0136】
この場合、mbALU115に極力割り付けられた“xb”のデータ処理の余数部分を、ビット数に対応してm/nbALU115,116の適切な一方に割り付けることができるので、例えば、“nb”が“1(bit)”で“mb”が“32(bit)”の場合に、“9(bit)”以上のデータ処理はmbALU115で実行して“8(bit)”以下のデータ処理はnbALU116で実行するようなことが可能となる。
【0137】
さらに、上記形態ではアレイ型プロセッサ100が“8(bit)”からなる“mb”と“1(bit)”からなる“nb”との二種類の回路資源を具備していることを例示したが、このような回路資源の種類の個数やビット数も各種に設定することが可能である。
【0138】
このような場合でも、適切な制約条件がデータ登録されることにより、データ処理装置300はアレイ型プロセッサ100に適切なオブジェクトコードをデータ生成することができる。例えば、アレイ型プロセッサがmbALU115しか具備しないならば、前述の“x”を“m”で除算した結果の整数部分“Y”を算出し、その余数が存在しないならば“xb”のデータ処理を“x=Ym”なるY個のmbALU115に割り付け、余数が存在するならば“x≒(Y+1)m”なる(Y+1)個のmbALU115に割り付けることが好適である。
【0139】
また、上記形態ではアレイ型プロセッサ100のプロセッサエレメント107がm/nbALU115,116でデータ処理を実行することを例示したが、これら以外にデータ処理を実行する回路資源をプロセッサエレメント107に形成することも可能である。
【0140】
例えば、少なくともマスク回路によりmbデータとnbデータとのデータ操作を実行するDMU(Data Manipulation Unit)なる回路資源をプロセッサエレメント107に形成することも可能であり、このようなアレイ型プロセッサ100を本出願人は特願2001−263804号として出願している。このような場合でも、その回路資源に対応して制約条件をデータ設定することにより、データ処理装置300はアレイ型プロセッサ100のオブジェクトコードを適切にデータ生成することができる。
【0141】
さらに、上記形態ではアレイ型プロセッサ100がマトリクス回路部105に配列されたプロセッサエレメント107のみでデータ処理を実行することを例示したが、マトリクス回路部105の外側に専用の演算回路を形成することも可能である。
【0142】
例えば、一般に乗算器は回路規模が過大なので、マトリクス回路部105の外部に配置して必要によりプロセッサエレメント107からアクセスさせることが可能である。このような場合でも、その回路資源に対応して制約条件をデータ設定することにより、データ処理装置300はアレイ型プロセッサ100のオブジェクトコードを適切にデータ生成することができる。ただし、上述のようにプロセッサエレメント107がマトリクス回路部105の外部回路にアクセスするときは、これがDFGをCDFGにスケジューリングするときの状態遷移の制約条件となる。
【0143】
さらに、上記形態では処理回路であるプロセッサエレメント107が演算器であるm/nbALU115,116からなるアレイ型プロセッサ100を並列演算装置として例示したが、この並列演算装置を処理回路がLUT(Look Up Table)からなるDRL(Dynamic Reconfigurable Logic)とすることも可能である。
【0144】
上記形態のアレイ型プロセッサ100では、プロセッサエレメント107にデータ設定する動作命令をデータ更新することでハードウェア構成を変更するが、DRLではLUTの登録内容をデータ更新することでハードウェア構成を変更するので、これを実現するオブジェクトコードをデータ処理装置300でデータ生成することが可能である。
【0145】
また、上記形態ではスイッチエレメント108のインストラクションメモリが隣接するプロセッサエレメント107のインストラクションメモリ111で兼用されており、状態管理部103がプロセッサエレメント107とスイッチエレメント108との一組のインストラクションポインタを対応するプロセッサエレメント107のインストラクションメモリ111に供給することを例示した。
【0146】
しかし、プロセッサエレメント107のインストラクションメモリ111とは別個にスイッチエレメント108が自身専用のインストラクションメモリを具備し、状態管理部103がプロセッサエレメント107とスイッチエレメント108とのインストラクションポインタを対応するプロセッサエレメント107とスイッチエレメント108とのインストラクションメモリ111等に別個に供給することも可能である。
【0147】
また、プロセッサエレメント107のインストラクションメモリをスイッチエレメント108のインストラクションメモリで兼用し、状態管理部103がプロセッサエレメント107とスイッチエレメント108との一組のインストラクションポインタを対応するスイッチエレメント108のインストラクションメモリに供給することも可能である。
【0148】
さらに、上記形態ではアレイ型プロセッサ100に状態管理部103が一個のみ形成されていることを例示したが、これを複数としてプロセッサエレメント107を所定個数ずつ管理させることも可能である。このような場合、複数の状態管理部103を代表する一個が統合管理することや、複数の状態管理部103を統合管理する上位管理部(図示せず)を形成することが好適である。
【0149】
また、上記形態では連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部105の一定位置のm/nbレジスタファイル113,114に共通に割り付けるため、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをm/nbレジスタファイル113,114などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたm/nbレジスタファイル113,114の連続する複数サイクルのコンテキストでの位置を一致させることを例示した。
【0150】
しかし、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるm/nbレジスタファイル113,114のマトリクス回路部105での位置を固定してから、他のネットリストを他のm/nbレジスタファイル113,114などに複数サイクルのコンテキストごとに割り付けることも可能である。
【0151】
また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるm/nbレジスタファイル113,114のマトリクス回路部105での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のm/nbレジスタファイル113,114などに複数サイクルのコンテキストごとに割り付けることも可能である。
【0152】
これらの場合、コンテキストごとの回路資源の使用範囲を削減することができるので、図17(a)に示すように、マトリクス回路部105に配列されているプロセッサエレメント107が少数でもコンテキストごとにネットリストを割り付けることが可能となる。
【0153】
なお、同図(b)に示すように、従来のFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)では、上述のような複数サイクルのコンテキストごとのネットリストを一面の回路資源に割り付けることになるので、多数の専用の回路資源が必要であり、一度形成したハードウェアを変更できないのでデータ処理の汎用性もない。
【0154】
しかし、本形態のアレイ型プロセッサ100では、オブジェクトコードによりハードウェアを変更できるのでデータ処理の汎用性が良好であり、一連のデータ処理を複数サイクルのコンテキストごとに時分割に実行するので、一面に配列された回路資源の回路規模が削減されている。
【0155】
さらに、上記形態では状態管理部103で管理される順次遷移する複数段階の動作状態とマトリクス回路部105で順次切り換えられる動作サイクルごとのコンテキストとが一対一に対応することを例示したが、例えば、制約条件により複数段階の動作状態から一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を一つのコンテキストに割り付けることも可能である。
【0156】
例えば、図15に示すように、連続する二つのコンテキストに割り付けられた連続する二つの動作状態で、m/nbレジスタファイル113,114の位置は共通しているがm/nbALU115,116の位置が重複していない場合、図18に示すように、その連続する二つの動作状態は一つのコンテキストに割り付けることが可能である。
【0157】
より具体的には、前述のように動作状態のスケジューリングは複数種類の制約条件に対応して実行され、メモリアクセスなどが発生した場合には割り付けるm/nbALU115,116の割付個数に関係なく動作状態が移行するので、図19(a)に示すように、m/nbALU115,116の割付個数が少数の動作状態が発生することがある。このようにデータ生成された複数の動作状態を複数のコンテキストに一対一に割り付けると、あるコンテキストではアレイ型プロセッサ100に配列されているm/nbALU115,116の極一部しか動作しない状態が発生する。
【0158】
そこで、連続する複数の動作状態でm/nbALU115,116の割付個数を順次積算し、その積算個数が所定の許容個数を超過するごとにコンテキストを移行すれば、同図(b)に示すように、複数のコンテキストの各々に極力多数のm/nbALU115,116を割り付けることができる。
【0159】
例えば、第一から第三の動作状態が第一のコンテキストに割り付けられ、第五および第六の動作状態が第三のコンテキストに割り付けられた場合、そのオブジェクトプログラムに対応して動作するアレイ型プロセッサ100では、図20に示すように、第一の動作サイクルでは第一のコンテキストの第一の動作状態のデータ処理が実行され、第二の動作サイクルでは第一のコンテキストの第二の動作状態のデータ処理が実行され、第三の動作サイクルでは第一のコンテキストの第三の動作状態のデータ処理が実行される。
【0160】
第四の動作サイクルでは第一のコンテキストが第二のコンテキストに切り換えられて第四の動作状態のデータ処理が実行され、第五の動作サイクルでは第二のコンテキストが第三のコンテキストに切り換えられて第五の動作状態のデータ処理が実行される。
【0161】
上述のように複数の動作状態を一つのコンテキストに割り付けると、アレイ型プロセッサ100でのデータ処理の所要時間は一つの動作状態を一つのコンテキストに割り付けた場合と同一であるが、オブジェクトコードにデータ設定されるコンテキストの個数が削減されるので、オブジェクトコードのデータ容量を圧縮することができる。
【0162】
さらに、アレイ型プロセッサ100のオブジェクトコードを一時保持するコードメモリ102の記憶容量も削減することができ、状態管理部103によるマトリクス回路部105のコンテキストの切換回数も削減できるので、その消費電力も縮小することができる。
【0163】
また、上記には一つのコンテキストに連続する二つの動作状態を割り付けることを例示したが、二つ以上の動作状態を割り付けることも可能であり、図21および図22に示すように、連続しない複数の動作状態を割り付けることも可能である。この場合は、状態管理部103によるマトリクス回路部105のコンテキストの切換回数は削減できない場合もあるが、オブジェクトコードにデータ設定されるコンテキストの個数は削減することができる。
【0164】
さらに、上記形態ではデータ処理装置300でデータ生成されたオブジェクトコードがアレイ型プロセッサ100に一時保持されることを例示したが、例えば、データ処理装置300がデータ生成するオブジェクトコードに対応してアレイ型プロセッサ100がリアルタイムに動作することも不可能ではない。
【0165】
また、上記形態ではコードメモリ102に一時保持されたオブジェクトコードに対応して、状態管理部103が動作サイクルごとにマトリクス回路部105のコンテキストを切換制御することを例示したが、マトリクス回路部105が複数のコンテキストをデータ記憶して動作サイクルごとに一つずつ対応動作を実行することも可能である。
【0166】
このとき、状態管理部103はマトリクス回路部105にデータ記憶された複数のコンテキストの全部を複数サイクルごとにデータ更新することも可能であるが、マトリクス回路部105がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に、対応動作が実行されたコンテキストを状態管理部103が新規のコンテキストにデータ更新することも可能である。この場合、マトリクス回路部105は所定個数のコンテキストしかデータ保持しないが、コンテキストの対応動作を個数に制限なく連続的に実行することができる。
【0167】
例えば、図23に示すように、マトリクス回路部105が第一から第六のコンテキストをデータ保持して順番にデータ処理を実行する場合、第四のコンテキストのデータ処理を実行しているときには、状態管理部103はデータ処理が終了した第一から第三のコンテキストをデータ更新することができる。
【0168】
ただし、図22に示すように、一つのコンテキストを複数の動作サイクルで繰り返し使用するような場合もあるので、例えば、図24に示すように、マトリクス回路部105がデータ保持した第一から第六のコンテキストのデータ処理を順番に実行してから、第一から第三のコンテキストのデータ処理を再度実行するような場合には、状態管理部103はデータ処理が終了した第四から第五のコンテキストをデータ更新することができる。
【0169】
上述のような動作をアレイ型プロセッサ100に実行させるためには、マトリクス回路部105がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に、対応動作が実行されたコンテキストを状態管理部103が新規のコンテキストにデータ更新するように、データ処理装置300がCDFGをデータ生成すれば、このCDFGからデータ生成されたオブジェクトコードに対応してアレイ型プロセッサ100に上述の動作を実行させることができる。
【0170】
さらに、上記形態ではRAM304等に格納されているコンピュータプログラムに対応してCPU301が動作することにより、データ処理装置300の各種機能として各種手段が論理的に実現されることを例示した。しかし、このような各種手段の各々を固有のハードウェアとして形成することも可能であり、一部をソフトウェアとしてRAM304等に格納するとともに一部をハードウェアとして形成することも可能である。
【0171】
【発明の効果】
本発明のデータ処理装置では、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されており、データ入力される並列演算装置の動作記述のソースコードから制約条件により並列演算装置のコンテキストを動作サイクルごとに順次切り換える一連のオブジェクトコードをデータ生成し、このデータ生成された一連のオブジェクトコードをデータ出力することにより、
並列演算装置の動作記述のソースコードから、並列演算装置のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードをデータ生成することができる。
【0172】
また、本発明の他の形態としては、制約条件により一連のソースコードから一連のオブジェクトコードをデータ生成するときにマトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離することにより、
並列演算装置のマトリクス回路部と状態管理部とに別個に対応したオブジェクトコードをデータ生成することができる。
【0173】
また、一連のソースコードを言語解析してDFGをデータ生成し、このデータ生成されたDFGから制約条件により複数段階の動作状態をスケジューリングしたCDFGをデータ生成することにより、
並列演算装置の動作記述のソースコードから、その順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成することができる。
【0174】
また、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新するようにCDFGをデータ生成することにより、
このCDFGからデータ生成されたオブジェクトコードに対応して並列演算装置を動作させると、マトリクス回路部がオブジェクトコードの多数のコンテキストを所定個数までデータ記憶して対応動作を順次実行している最中に、その対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新させることができる。
【0175】
また、データ生成されたCDFGから制約条件により複数段階の動作状態のRTL記述をマトリクス回路部と状態管理部とに分離してデータ生成することにより、
並列演算装置のマトリクス回路部と状態管理部とに別個に対応したRTL記述をデータ生成することができる。
【0176】
また、データ生成されたマトリクス回路部のRTL記述から複数段階の動作状態ごとに制約条件により処理回路のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストを順次遷移する複数段階の動作状態ごとにデータ生成することができる。
【0177】
また、データ生成されたマトリクス回路部のRTL記述から複数段階の動作状態ごとに制約条件により処理回路の複数種類の回路資源のネットリストをデータ生成することにより、
並列演算装置の処理回路のネットリストをビット数の相違する複数種類の回路資源ごとにデータ生成することができる。
【0178】
また、複数段階の動作状態に対応した状態管理部のオブジェクトコードが事前にデータ登録されており、データ生成されたマトリクス回路部のネットリストに対応してデータ生成された状態管理部のRTL記述をオブジェクトコードにデータ変換し、このデータ変換された状態管理部のオブジェクトコードをデータ出力することにより、
状態管理部のオブジェクトコードをマトリクス回路部のネットリストに対応してデータ生成することができる。
【0179】
また、RTL記述から制約条件により処理回路のm/nb回路資源のネットリストをデータ生成することにより、
並列演算装置の処理回路のネットリストをm/nb回路資源ごとにデータ生成することができる。
【0180】
また、RTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmb回路資源とZ個のnb回路資源とに割り付けることにより、
“xb”のデータ処理をm/nb回路資源に適正な個数ずつ割り付けることができる。
【0181】
また、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出することにより、
“xb”のデータ処理をビット数が多数のmb回路資源に極力割り付けることができ、余数部分のみビット数が少数のnb回路資源に割り付けることができる。
【0182】
また、余数が所定の閾値より少数の場合に整数“Z”を算出して余数が閾値以上の場合は“Y”に“1”を加算して“Z=0”とすることにより、
mb回路資源に極力割り付けられた“xb”のデータ処理の余数部分を、ビット数に対応してm/nb回路資源の適切な一方に割り付けることができる。
【0183】
また、データ登録されている制約条件の“nb”が“1(bit)”からなることにより、
mb回路資源に割り付けられた“xb”のデータ処理の余数部分が何ビットであってもnb回路資源に割り付けることができる。
【0184】
また、処理回路の各種のオブジェクトコードも事前にデータ登録されており、複数段階の動作状態ごとにデータ生成されたネットリストをマトリクス配列されている複数の処理回路に複数サイクルのコンテキストごとに割り付け、この処理回路に割り付けられたネットリストを対応するオブジェクトコードにデータ変換することにより、
並列演算装置の複数の処理回路のオブジェクトコードを複数サイクルのコンテキストごとにデータ生成することができる。
【0185】
また、配線回路のオブジェクトコードも事前にデータ登録されており、データ変換された処理回路のオブジェクトコードに対応して配線回路のネットリストを対応するオブジェクトコードにデータ変換することにより、
並列演算装置の複数の処理回路の接続関係を個々に切換制御する複数の配線回路のオブジェクトコードもデータ生成することができる。
【0186】
また、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部の一定位置のレジスタファイルに共通に割り付けることにより、
並列演算装置の連続する複数サイクルのコンテキストで連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードをデータ生成することができる。
【0187】
また、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをレジスタファイルなどに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたレジスタファイルの連続する複数サイクルのコンテキストでの位置を一致させることにより、
また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での位置を固定してから、他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、
また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、
連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードを所定のデータ処理でデータ生成することができる。
【0188】
また、順次遷移する複数段階の動作状態から制約条件により一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を一つのコンテキストに割り付けることにより、
複数の動作状態を一つのコンテキストとして並列演算装置に一度にデータ設定することができる。
【0189】
また、遷移段階が連続している複数の動作状態を検出することにより、
連続する複数の動作状態を一つのコンテキストとして並列演算装置にデータ設定することができる。
【0190】
本発明の第一の並列演算装置では、本発明のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されており、そのオブジェクトコードに対応して動作サイクルごとにコンテキストが順次切り換わり、この順次切り換わるコンテキストに対応してマトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作することにより、
本発明のデータ処理装置でデータ生成されてデータ格納されたオブジェクトコードに対応して動作サイクルごとに複数の処理回路を並列動作させることができる。
【0191】
本発明の第二の並列演算装置では、本発明のデータ処理装置でデータ生成された外部入力され、そのオブジェクトコードに対応して動作サイクルごとにコンテキストが順次切り換わり、この順次切り換わるコンテキストに対応してマトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作することにより、
本発明のデータ処理装置でデータ生成されて外部入力されるオブジェクトコードに対応して動作サイクルごとに複数の処理回路を並列動作させることができる。
【0192】
本発明の第一のデータ処理システムでは、本発明のデータ処理装置でデータ生成されたオブジェクトコードが本発明の並列演算装置に外部入力されることにより、
データ処理装置に外部入力されるソースコードに対応して並列演算装置に順次切り換わる複数サイクルのコンテキストで並列演算を実行させることができる。
【0193】
本発明の第二のデータ処理システムでは、データ処理装置がソースコードからオブジェクトコードをデータパスと有限状態マシンとに分離してデータ生成し、そのデータパスと並列演算装置のマトリクス回路部とが対応しているとともに有限状態マシンと状態管理部とが対応していることにより、
並列演算装置のハードウェア構造に対応したソフトウェア構造にオブジェクトコードをデータ処理装置でデータ生成することができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態のデータ処理システムの論理構造を示す模式的なブロック図である。
【図2】データ処理装置の論理構造を示す模式的なブロック図である。
【図3】データ処理装置の物理構造を示すブロック図である。
【図4】ソースコードの記述内容と並列演算装置であるアレイ型プロセッサのハードウェアとの対応関係を示す模式図である。
【図5】 (a)はアレイ型プロセッサの全体構造を示す模式的なブロック図、(b)は処理回路であるプロセッサエレメントの内部構造を示す模式的なブロック図である。
【図6】CDFGの状態遷移とアレイ型プロセッサのコンテキスト切換との対応関係を示す模式図である。
【図7】ソースコードの具体例を示す模式図である。
【図8】DFGの具体例を示す模式図である。
【図9】 (a)は本形態のアレイ型プロセッサのCDFGの具体例を示す模式図、(b)は従来のアレイ型プロセッサのCDFGの具体例を示す模式図である。
【図10】他のソースコードの具体例を示す模式図である。
【図11】他のCDFGの具体例を示す模式図である。
【図12】CDFGのデータ処理に回路資源が割り付けられた状態を示す模式図である。
【図13】“xb”のデータ処理が“m/nb”の回路資源に割り付けられる状態を示す模式図である。
【図14】連続する二つのコンテキストごとにネットリストが割り付けられた状態を示す模式図である。
【図15】連続する二つのコンテキストのネットリストが連携された状態を示すを示す模式図である。
【図16】データ処理装置によるデータ処理方法を示すフローチャートである。
【図17】 (a)は本形態のアレイ型プロセッサの二つのコンテキストにネットリストが割り付けられた状態を示す模式図、(b)は従来の並列演算装置の一面にネットリストが割り付けられた状態を示す模式図である。
【図18】連続する二つの動作状態のネットリストが一つのコンテキストに割り付けられた状態を示す模式図である。
【図19】m/nbALUの割付個数による動作状態とコンテキストとの対応関係を示す模式図である。
【図20】連続する複数の動作状態が一つのコンテキストに割り付けられた状態を示す模式図である。
【図21】m/nbALUの割付個数による動作状態とコンテキストとの対応関係を示す模式図である。
【図22】連続しない複数の動作状態が一つのコンテキストに割り付けられた状態を示す模式図である。
【図23】連続する複数のコンテキストの一つがアクティブな状態を示す模式図である。
【図24】連続する複数のコンテキストがアクティブな状態を示す模式図である。
【符号の説明】
100 アレイ型プロセッサ
103 状態管理部
107 プロセッサエレメント
108 スイッチエレメント
113 mb回路資源であるmbレジスタファイル
114 nb回路資源であるnbレジスタファイル
115 mb回路資源であるmbALU
116 nb回路資源であるnbALU
200 データ処理システム200
201 ソース供給手段
202 オブジェクト供給手段
203 データ入力手段
211 ソース入力手段211211
212 条件記憶手段
213 オブジェクト生成手段
214 オブジェクト出力手段
221 グラフ生成手段
222 スケジュール生成手段
223 記述生成手段
224 リスト生成手段
225 オブジェクト記憶手段
226 状態変換手段
227 処理配置手段
228 コード変換手段
229 配線変換手段
300 データ処理装置
301 コンピュータの主体であるCPU
303 情報記憶媒体であるROM
304 情報記憶媒体であるRAM
305 情報記憶媒体であるHDD
306 情報記憶媒体であるFD
308 情報記憶媒体であるCD−ROM

Claims (20)

  1. 処理データのビット数が相互に相違する複数種類の回路資源を各々が具備していて個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のRTL記述から前記回路資源のネットリストをデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記並列演算装置のRTL記述がデータ入力される記述入力手段と、
    この記述入力手段にデータ入力された前記RTL記述から前記制約条件により前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段と、
    このリスト生成手段でデータ生成された前記ネットリストをデータ出力するリスト出力手段と、を具備するデータ処理装置。
  2. 前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備し
    複数段階の前記動作状態に対応した前記状態管理部の各種の前記オブジェクトコードが事前にデータ登録されたオブジェクト記憶手段と、
    前記リスト生成手段でデータ生成された前記マトリクス回路部のネットリストに対応して前記記述生成手段でデータ生成された前記状態管理部のRTL記述を対応する前記オブジェクトコードにデータ変換する状態変換手段と、
    この状態変換手段でデータ変換された前記状態管理部の前記オブジェクトコードをデータ出力するオブジェクト出力手段と、を具備する請求項1に記載のデータ処理装置。
  3. 前記並列演算装置は、複数の前記処理回路の各々に処理データがmb(m-(bit):“m”は“2”以上の所定の自然数)データのmb回路資源とnb(n-(bit):“n”は“m”より少数の所定の自然数)データのnb回路資源とを具備し、
    前記リスト生成手段は、前記RTL記述から前記制約条件により前記処理回路のm/nb回路資源のネットリストをデータ生成する請求項1又は2に記載のデータ処理装置。
  4. 前記リスト生成手段は、前記RTL記述の“xb(x-(bit):“x”は“m”より多数の所定の自然数)”のデータ処理をx=Ym+Zn(“Y”と“Z”とは所定の自然数)なるY個のmb回路資源とZ個のnb回路資源とに割り付ける請求項3に記載のデータ処理装置。
  5. 前記リスト生成手段は、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出する請求項4に記載のデータ処理装置。
  6. 前記リスト生成手段は、前記余数が所定の閾値より少数の場合に前記整数“Z”を算出し、前記余数が前記閾値以上の場合は前記“Y”に“1”を加算して“Z=0”とする請求項5に記載のデータ処理装置。
  7. 前記条件記憶手段にデータ登録されている前記制約条件の“nb”が“1(bit)”からなる請求項4ないし6の何れか一項に記載のデータ処理装置。
  8. 前記オブジェクト記憶手段は、前記処理回路の各種の前記オブジェクトコードも事前にデータ登録されており、前記リスト生成手段でデータ生成された前記ネットリストを前記制約条件によりマトリクス配列されている複数の前記処理回路に複数サイクルの前記コンテキストごとに割り付ける処理配置手段と、
    この処理配置手段で前記処理回路に割り付けられた前記ネットリストを対応する前記オブジェクトコードにデータ変換するコード変換手段と、を具備する請求項1ないし7の何れか一項に記載のデータ処理装置。
  9. 前記オブジェクト記憶手段は、前記配線回路の各種の前記オブジェクトコードも事前にデータ登録されており、前記コード変換手段でデータ変換された前記処理回路のオブジェクトコードに対応して前記配線回路の前記ネットリストを前記オブジェクトコードにデータ変換する配線変換手段と、を具備する請求項8に記載のデータ処理装置。
  10. 順次遷移する複数段階の前記動作状態から前記制約条件により一つの前記コンテキストに割り付けられる複数を検出する状態検出手段と、
    この状態検出手段で検出された複数の前記動作状態を一つの前記コンテキストに割り付ける状態合成手段と、を具備する請求項1ないし9の何れか一項に記載のデータ処理装置。
  11. 前記状態検出手段は遷移段階が連続している複数の前記動作状態を検出する請求項10に記載のデータ処理装置。
  12. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路がマトリクス配列されており、コード格納手段にデータ格納されているオブジェクトコードに対応して動作する並列演算装置であって、
    前記コード格納手段に請求項2ないし8の何れか一項に記載のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されている並列演算装置。
  13. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路がマトリクス配列されており、オブジェクト入力手段に外部入力されるオブジェクトコードに対応して動作する並列演算装置であって、
    前記オブジェクト入力手段に請求項2ないし8の何れか一項に記載のデータ処理装置でデータ生成されたオブジェクトコードが外部入力される並列演算装置。
  14. 請求項2ないし8の何れか一項に記載のデータ処理装置と、このデータ処理装置でデータ生成されたオブジェクトコードが外部入力される請求項13に記載の並列演算装置と、を具備するデータ処理システム。
  15. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置の動作記述の一連のソースコードから複数の前記処理回路と複数の前記配線回路との順次切り換わる動作サイクルごとの前記動作命令からなるコンテキストを少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記ソースコードがデータ入力されるソース入力手段と、
    このソース入力手段にデータ入力された前記ソースコードから前記制約条件により順次切り換わる動作サイクルごとの前記コンテキストに対応した順次遷移する複数段階の動作状態を検出して前記オブジェクトコードをデータ生成するオブジェクト生成手段と、
    このオブジェクト生成手段でデータ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段と、
    前記オブジェクト生成手段は、前記ソースコードを言語解析してDFG(Data Flow Graph)をデータ生成するグラフ生成手段と、このグラフ生成手段でデータ生成されたDFGから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたCDFG(Control DFG)をデータ生成するスケジュール生成手段と、
    前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備し、
    前記スケジュール生成手段でデータ生成された前記CDFGから前記制約条件により複数段階の前記動作状態のRTL(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段を有し、
    前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備し、
    前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のRTL記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段を有し、
    複数段階の前記動作状態に対応した前記状態管理部の各種の前記オブジェクトコードが事前にデータ登録されたオブジェクト記憶手段と、
    前記リスト生成手段でデータ生成された前記マトリクス回路部のネットリストに対応して前記記述生成手段でデータ生成された前記状態管理部のRTL記述を対応する前記オブジェクトコードにデータ変換する状態変換手段と、
    この状態変換手段でデータ変換された前記状態管理部の前記オブジェクトコードをデータ出力するオブジェクト出力手段と、を具備しているデータ処理装置。
  16. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置の動作記述の一連のソースコードから複数の前記処理回路と複数の前記配線回路との順次切り換わる動作サイクルごとの前記動作命令からなるコンテキストを少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記ソースコードがデータ入力されるソース入力手段と、
    このソース入力手段にデータ入力された前記ソースコードから前記制約条件により順次切り換わる動作サイクルごとの前記コンテキストに対応した順次遷移する複数段階の動作状態を検出して前記オブジェクトコードをデータ生成するオブジェクト生成手段と、
    このオブジェクト生成手段でデータ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段と、
    前記オブジェクト生成手段は、前記ソースコードを言語解析してDFG(Data Flow Graph)をデータ生成するグラフ生成手段と、このグラフ生成手段でデータ生成されたDFGから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたCDFG(Control DFG)をデータ生成するスケジュール生成手段と、
    前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備し、
    前記スケジュール生成手段でデータ生成された前記CDFGから前記制約条件により複数段階の前記動作状態のRTL(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段を有し、
    前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備し、
    前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のRTL記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段を有し、
    前記並列演算装置は、複数の前記処理回路の各々に処理データがmb(m-(bit):“m”は“2”以上の所定の自然数)データのmb回路資源とnb(n-(bit):“n”は“m”より少数の所定の自然数)データのnb回路資源とを具備しており、前記リスト生成手段は、前記RTL記述から前記制約条件により前記処理回路のm/nb回路資源のネットリストをデータ生成するデータ処理装置。
  17. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置の動作記述の一連のソースコードから複数の前記処理回路と複数の前記配線回路との順次切り換わる動作サイクルごとの前記動作命令からなるコンテキストを少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記ソースコードがデータ入力されるソース入力手段と、
    このソース入力手段にデータ入力された前記ソースコードから前記制約条件により順次切り換わる動作サイクルごとの前記コンテキストに対応した順次遷移する複数段階の動作状態を検出して前記オブジェクトコードをデータ生成するオブジェクト生成手段と、
    このオブジェクト生成手段でデータ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段と、
    前記オブジェクト生成手段は、前記ソースコードを言語解析してDFG(Data Flow Graph)をデータ生成するグラフ生成手段と、このグラフ生成手段でデータ生成されたDFGから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたCDFG(Control DFG)をデータ生成するスケジュール生成手段と、
    前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備し、
    前記スケジュール生成手段でデータ生成された前記CDFGから前記制約条件により複数段階の前記動作状態のRTL(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段を有し、
    前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備し、
    前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のRTL記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段を有し、
    複数段階の前記動作状態に対応した前記状態管理部の各種の前記オブジェクトコードが事前にデータ登録されたオブジェクト記憶手段と、
    前記リスト生成手段でデータ生成された前記ネットリストを前記制約条件によりマトリクス配列されている複数の前記処理回路に複数サイクルの前記コンテキストごとに割り付ける処理配置手段と、
    この処理配置手段で前記処理回路に割り付けられた前記ネットリストを対応する前記オブジェクトコードにデータ変換するコード変換手段と、を具備しているデータ処理装置。
  18. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のCDFGをソースコードからデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記ソースコードがデータ入力されるソース入力手段と、
    このソース入力手段にデータ入力される前記ソースコードを言語解析してDFGをデータ生成するグラフ生成手段と、
    このグラフ生成手段でデータ生成されたDFGから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたCDFGをデータ生成するスケジュール生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備しており、
    前記スケジュール生成手段でデータ生成された前記CDFGから前記制約条件により複数段階の前記動作状態のRTL(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備、
    前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のRTL記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段と、を具備し、
    複数段階の前記動作状態に対応した前記状態管理部の各種の前記オブジェクトコードが事前にデータ登録されたオブジェクト記憶手段と、
    前記リスト生成手段でデータ生成された前記マトリクス回路部のネットリストに対応して前記記述生成手段でデータ生成された前記状態管理部のRTL記述を対応する前記オブジェクトコードにデータ変換する状態変換手段と、
    この状態変換手段でデータ変換された前記状態管理部の前記オブジェクトコードをデータ出力するオブジェクト出力手段と、を具備する記載のデータ処理装置。
  19. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のCDFGをソースコードからデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記ソースコードがデータ入力されるソース入力手段と、
    このソース入力手段にデータ入力される前記ソースコードを言語解析してDFGをデータ生成するグラフ生成手段と、
    このグラフ生成手段でデータ生成されたDFGから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたCDFGをデータ生成するスケジュール生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備し、
    前記スケジュール生成手段でデータ生成された前記CDFGから前記制約条件により複数段階の前記動作状態のRTL(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備し、
    前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のRTL記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路の各々に処理データがmb(m-(bit):“m”は“2”以上の所定の自然数)データのmb回路資源とnb(n-(bit):“n”は“m”より少数の所定の自然数)データのnb回路資源とを具備し、
    前記リスト生成手段は、前記RTL記述から前記制約条件により前記処理回路のm/nb回路資源のネットリストをデータ生成するデータ処理装置。
  20. 個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数の処理回路と個々にデータ設定される動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されている並列演算装置のCDFGをソースコードからデータ生成するデータ処理装置であって、
    前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
    前記ソースコードがデータ入力されるソース入力手段と、
    このソース入力手段にデータ入力される前記ソースコードを言語解析してDFGをデータ生成するグラフ生成手段と、
    このグラフ生成手段でデータ生成されたDFGから前記制約条件により複数段階に順次遷移する前記動作状態をスケジューリングしたCDFGをデータ生成するスケジュール生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路と複数の前記配線回路とがマトリクス配列されているマトリクス回路部と、前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、を別個に具備し、
    前記スケジュール生成手段でデータ生成された前記CDFGから前記制約条件により複数段階の前記動作状態のRTL(Register Transfer Level)記述を前記マトリクス回路部と前記状態管理部とに分離してデータ生成する記述生成手段と、を具備し、
    前記並列演算装置は、複数の前記処理回路の各々が処理データのビット数が相互に相違する複数種類の回路資源を具備し、
    前記オブジェクト生成手段は、前記記述生成手段でデータ生成された前記マトリクス回路部のRTL記述から前記制約条件により複数段階の前記動作状態ごとに前記処理回路の複数種類の回路資源のネットリストをデータ生成するリスト生成手段と、を具備し、
    複数段階の前記動作状態に対応した前記状態管理部の各種の前記オブジェクトコードが事前にデータ登録されたオブジェクト記憶手段と、
    前記リスト生成手段でデータ生成された前記ネットリストを前記制約条件によりマトリクス配列されている複数の前記処理回路に複数サイクルの前記コンテキストごとに割り付ける処理配置手段と、
    この処理配置手段で前記処理回路に割り付けられた前記ネットリストを対応する前記オブジェクトコードにデータ変換するコード変換手段と、を具備しているデータ処理装置。
JP2001294241A 2001-09-26 2001-09-26 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム Expired - Lifetime JP3921367B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001294241A JP3921367B2 (ja) 2001-09-26 2001-09-26 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
US10/252,564 US7120903B2 (en) 2001-09-26 2002-09-24 Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001294241A JP3921367B2 (ja) 2001-09-26 2001-09-26 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006270702A Division JP4787711B2 (ja) 2006-10-02 2006-10-02 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並びにデータ処理システム

Publications (2)

Publication Number Publication Date
JP2003099409A JP2003099409A (ja) 2003-04-04
JP3921367B2 true JP3921367B2 (ja) 2007-05-30

Family

ID=19115884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001294241A Expired - Lifetime JP3921367B2 (ja) 2001-09-26 2001-09-26 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム

Country Status (2)

Country Link
US (1) US7120903B2 (ja)
JP (1) JP3921367B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021234B2 (en) 2009-01-30 2015-04-28 Nec Corporation Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
US9201996B2 (en) 2012-06-22 2015-12-01 Renesas Electronics Corporation Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program
US9292284B2 (en) 2012-07-10 2016-03-22 Renesas Electronics Corporation Parallel arithmetic device, data processing system with parallel arithmetic device, and data processing program

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6602501B1 (en) * 1999-08-12 2003-08-05 Agensys, Inc. C-type lectin transmembrane antigen expressed in human prostate cancer and uses thereof
AU2001245720A1 (en) * 2000-03-15 2001-09-24 Arc International Plc Method and apparatus for processor code optimization using code compression
JP3921367B2 (ja) * 2001-09-26 2007-05-30 日本電気株式会社 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
US7278137B1 (en) * 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
US7043682B1 (en) * 2002-02-05 2006-05-09 Arc International Method and apparatus for implementing decode operations in a data processor
JP2005078177A (ja) * 2003-08-28 2005-03-24 Nec Electronics Corp 並列演算装置
JP3990332B2 (ja) * 2003-08-29 2007-10-10 日本電気株式会社 データ処理システム
JP4502650B2 (ja) 2004-02-03 2010-07-14 日本電気株式会社 アレイ型プロセッサ
JP4728581B2 (ja) 2004-02-03 2011-07-20 日本電気株式会社 アレイ型プロセッサ
US7464375B2 (en) * 2004-06-24 2008-12-09 International Business Machines Corporation Method for flattening hierarchically structured flows
JP4619252B2 (ja) * 2005-09-29 2011-01-26 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
JP4909588B2 (ja) 2005-12-28 2012-04-04 日本電気株式会社 情報処理装置及び再構成デバイスの利用方法
JP5131188B2 (ja) 2006-04-05 2013-01-30 日本電気株式会社 データ処理装置
JP4844406B2 (ja) * 2007-01-25 2011-12-28 富士ゼロックス株式会社 データ処理装置、画像処理装置、及びデータ処理プログラム
JP4633073B2 (ja) * 2007-02-26 2011-02-16 日本電気株式会社 データ処理システム
WO2009044635A1 (ja) * 2007-10-03 2009-04-09 Nec Corporation データ処理装置および方法
JP2009157440A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 高位合成装置、高位合成システム、及び高位合成方法
US8732142B2 (en) * 2008-03-31 2014-05-20 Intel Corporation Generation of suggestions to correct data race errors
JP4635082B2 (ja) * 2008-09-30 2011-02-16 株式会社東芝 マルチプロセッサシステム及びグルーピング方法
JP5169697B2 (ja) * 2008-09-30 2013-03-27 日本電気株式会社 動作合成装置、動作合成方法並びにプログラム
GB2464703A (en) * 2008-10-22 2010-04-28 Advanced Risc Mach Ltd An array of interconnected processors executing a cycle-based program
WO2011024504A1 (ja) 2009-08-25 2011-03-03 日本電気株式会社 データ処理装置
JP2012243086A (ja) * 2011-05-19 2012-12-10 Renesas Electronics Corp 半導体集積回路装置
FR2978263A1 (fr) * 2011-07-18 2013-01-25 Modae Technologies Procede de synthese de haut niveau d'une application
CN103198193B (zh) * 2013-04-12 2015-12-02 北京大学 基于一阶模态幅值斜率的压气机旋转失速预测方法及系统
JP6255880B2 (ja) 2013-10-10 2018-01-10 株式会社ソシオネクスト 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
CN104123178B (zh) * 2014-07-25 2017-05-17 南京大学 基于图形处理器的并行化约束检测方法
JP2024024312A (ja) 2022-08-09 2024-02-22 ルネサスエレクトロニクス株式会社 プロセッサ、およびコンパイラ

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3702986A (en) * 1970-07-06 1972-11-14 Texas Instruments Inc Trainable entropy system
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
US4943912A (en) * 1987-10-13 1990-07-24 Hitachi, Ltd. Parallel processor system having control processor and array control apparatus for selectively activating different processors
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
US5598344A (en) * 1990-04-06 1997-01-28 Lsi Logic Corporation Method and system for creating, validating, and scaling structural description of electronic device
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
CA2129882A1 (en) * 1993-08-12 1995-02-13 Soheil Shams Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same
JPH08101861A (ja) 1994-09-30 1996-04-16 Toshiba Corp 論理回路合成装置
JPH10256383A (ja) 1997-03-12 1998-09-25 Toshiba Corp 半導体装置及びその回路構成方法
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
JP3576837B2 (ja) * 1998-10-30 2004-10-13 日本電気株式会社 プログラマブルロジックlsiの基本セル及び基本セル2次元アレイ
JP3444216B2 (ja) 1999-01-28 2003-09-08 日本電気株式会社 プログラマブルデバイス
JP3269526B2 (ja) * 1999-02-09 2002-03-25 日本電気株式会社 プログラマブルロジックlsi
JP3616518B2 (ja) 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
US6678646B1 (en) 1999-12-14 2004-01-13 Atmel Corporation Method for implementing a physical design for a dynamically reconfigurable logic circuit
JP2001236385A (ja) 2000-02-21 2001-08-31 Toshiba Corp 無線式記憶媒体システムと駅務システム
JP3528922B2 (ja) * 2001-08-31 2004-05-24 日本電気株式会社 アレイ型プロセッサ、データ処理システム
JP3921367B2 (ja) * 2001-09-26 2007-05-30 日本電気株式会社 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021234B2 (en) 2009-01-30 2015-04-28 Nec Corporation Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
US9201996B2 (en) 2012-06-22 2015-12-01 Renesas Electronics Corporation Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program
US9292284B2 (en) 2012-07-10 2016-03-22 Renesas Electronics Corporation Parallel arithmetic device, data processing system with parallel arithmetic device, and data processing program

Also Published As

Publication number Publication date
US20030061601A1 (en) 2003-03-27
US7120903B2 (en) 2006-10-10
JP2003099409A (ja) 2003-04-04

Similar Documents

Publication Publication Date Title
JP3921367B2 (ja) データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
EP3698313B1 (en) Image preprocessing for generalized image processing
KR102562715B1 (ko) 다수의 프로세서들 및 뉴럴 네트워크 가속기를 갖는 뉴럴 네트워크 프로세싱 시스템
US11429848B2 (en) Host-directed multi-layer neural network processing via per-layer work requests
EP1038253B1 (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
Hauser Augmenting a microprocessor with reconfigurable hardware
KR101080465B1 (ko) 데이터 처리 장치
US7350054B2 (en) Processor having array of processing elements whose individual operations and mutual connections are variable
US11714780B2 (en) Compiler flow logic for reconfigurable architectures
JP2005182654A (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
US20190130270A1 (en) Tensor manipulation within a reconfigurable fabric using pointers
US10943039B1 (en) Software-driven design optimization for fixed-point multiply-accumulate circuitry
Bondalapati et al. Reconfigurable computing: Architectures, models and algorithms
US20200167309A1 (en) Reconfigurable fabric configuration using spatial and temporal routing
Touiza et al. A novel methodology for accelerating bitstream relocation in partially reconfigurable systems
Jain et al. Coarse Grained FPGA Overlay for Rapid Just-In-Time Accelerator Compilation
JP4787711B2 (ja) データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並びにデータ処理システム
EP1818842A1 (en) Apparatus and methods for parallelizing integrated circuit computer-aided design software
Skliarova et al. Hardware/software co-design
JPH11232077A (ja) 情報処理システム
US11960853B2 (en) Folded integer multiplication for field-programmable gate arrays
WO2019113021A1 (en) Tensor manipulation within a reconfigurable fabric using pointers
Koch et al. Building Partially Reconfigurable Systems: Methods and Tools
WO2019040339A1 (en) RECONFIGURABLE MATRIX DATA ROUTING
Moghaddam et al. Design and Implementation of High Performance Architectures with Partially Reconfigurable CGRAs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041115

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041129

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060201

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060802

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060914

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061018

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070123

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070219

R150 Certificate of patent or registration of utility model

Ref document number: 3921367

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100223

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140223

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350