JP4787711B2 - Data processing apparatus and method, computer program, information storage medium, and data processing system - Google Patents
Data processing apparatus and method, computer program, information storage medium, and data processing system Download PDFInfo
- Publication number
- JP4787711B2 JP4787711B2 JP2006270702A JP2006270702A JP4787711B2 JP 4787711 B2 JP4787711 B2 JP 4787711B2 JP 2006270702 A JP2006270702 A JP 2006270702A JP 2006270702 A JP2006270702 A JP 2006270702A JP 4787711 B2 JP4787711 B2 JP 4787711B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- context
- circuits
- data processing
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Description
本発明は、並列演算装置のオブジェクトプログラムをデータ生成するデータ処理装置および方法、そのデータ処理装置のためのコンピュータプログラム、このコンピュータプログラムがデータ格納されている情報記憶媒体、オブジェクトプログラムに対応して動作する並列演算装置、この並列演算装置とデータ処理装置とを具備しているデータ処理システム、に関する。 The present invention relates to a data processing apparatus and method for generating an object program for a parallel processing device, a computer program for the data processing apparatus, an information storage medium in which the computer program stores data, and an operation corresponding to the object program The present invention relates to a parallel processing device, and a data processing system including the parallel processing device and a data processing device.
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるCPU(Central Processing Unit)やMPU(Micro Processor Unit)と呼称される製品が実用化されている。 At present, products called so-called CPUs (Central Processing Units) and MPUs (Micro Processor Units) have been put into practical use as processor units that can freely execute various data processing.
このようなプロセッサユニットを利用したデータ処理システムでは、複数の動作命令が記述された各種のオブジェクトコードと各種の処理データとがメモリデバイスに格納され、プロセッサユニットはメモリデバイスから動作命令や処理データを順番にデータ読出して複数のデータ処理を逐次実行する。 In such a data processing system using a processor unit, various object codes in which a plurality of operation instructions are described and various processing data are stored in a memory device, and the processor unit receives operation instructions and processing data from the memory device. Data is read in order and a plurality of data processes are sequentially executed.
このため、一個のプロセッサユニットで各種のデータ処理を実現できるが、そのデータ処理では複数のデータ処理を順番に逐次実行する必要があり、その逐次処理ごとにプロセッサユニットがメモリデバイスから動作命令をデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。 For this reason, various data processing can be realized by one processor unit. However, in the data processing, it is necessary to sequentially execute a plurality of data processing in order, and the processor unit receives operation instructions from the memory device for each sequential processing. Since it is necessary to read, it is difficult to execute complicated data processing at high speed.
一方、実行するデータ処理が一つに限定されている場合には、そのデータ処理を実行するように論理回路をハードウェアで形成すれば、プロセッサユニットがメモリデバイスから複数の動作命令を順番にデータ読出して複数のデータ処理を順番に逐次実行するような必要はない。このため、複雑なデータ処理を高速に実行することが可能であるが、当然ながら一つのデータ処理しか実行することができない。 On the other hand, when the data processing to be executed is limited to one, if the logic circuit is formed by hardware so as to execute the data processing, the processor unit sequentially outputs a plurality of operation instructions from the memory device. There is no need to read and execute a plurality of data processes sequentially. For this reason, it is possible to execute complicated data processing at high speed, but of course, only one data processing can be executed.
つまり、オブジェクトコードを切換自在としたデータ処理システムでは、各種のデータ処理を実行できるが、ハードウェアの構成が固定されているのでデータ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、オブジェクトコードを変更できないので一つのデータ処理しか実行できない。 That is, in the data processing system in which the object code can be switched, various types of data processing can be executed. However, since the hardware configuration is fixed, it is difficult to execute the data processing at high speed. On the other hand, a logic circuit made up of hardware can execute data processing at high speed, but only one data process can be executed because the object code cannot be changed.
このような課題を解決するため、本出願人はソフトウェアに対応してハードウェアの構成が変化するプロセッサユニットとして並列演算装置を創案し、特願2000−043202号として出願した。この並列演算装置では、小規模の多数の処理回路と配線回路とがマトリクス配列されており、このマトリクス回路部に状態管理部が並設されている。 In order to solve such a problem, the present applicant has created a parallel arithmetic unit as a processor unit whose hardware configuration changes corresponding to software, and has filed an application as Japanese Patent Application No. 2000-04-3202. In this parallel processing device, a large number of small processing circuits and wiring circuits are arranged in a matrix, and a state management unit is arranged in parallel in the matrix circuit unit.
複数の処理回路は、個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数の配線回路は、個々にデータ設定される動作命令に対応して複数の処理回路の接続関係を個々に切換制御する。つまり、並列演算装置は複数の処理回路と複数の配線回路との動作命令を切り換えることでハードウェアの構成が変化するので、各種のデータ処理を実行することができ、ハードウェアとして小規模の多数の処理回路が簡単なデータ処理を並列に実行するので、データ処理を高速に実行することができる。 A plurality of processing circuits individually execute data processing corresponding to operation instructions set individually, and a plurality of wiring circuits are connected to a plurality of processing circuits corresponding to operation instructions set individually. The relationship is controlled individually. In other words, since the hardware configuration is changed by switching operation instructions between a plurality of processing circuits and a plurality of wiring circuits in the parallel processing device, various data processing can be executed, and a large number of small-scale hardware can be executed. Since the processing circuit executes simple data processing in parallel, the data processing can be executed at high speed.
そして、上述のような複数の処理回路と複数の配線回路との動作命令からなるコンテキストを状態管理部がオブジェクトコードに対応して動作サイクルごとに順次切り換えるので、並列演算装置はオブジェクトコードに対応して並列処理を連続的に実行することができる。 Then, since the state management unit sequentially switches the context made up of the operation instructions of the plurality of processing circuits and the plurality of wiring circuits as described above corresponding to the object code for each operation cycle, the parallel arithmetic device corresponds to the object code. Parallel processing can be executed continuously.
なお、このようにコンテキストを複数サイクルで順次切り換える並列演算装置としては、例えば、“Purdue University”の“Lawrence Snyder”が非特許文献1に発表した“Introduction to the Configurable, Highly Parallel Computer”や、本出願人が特許出願した特許文献1、特許文献2、特許文献3、特許文献4などがある。
上述のような並列演算装置は、オブジェクトコードに内包されているコンテキストを状態管理部が動作サイクルごとに順次切り換えるので、マトリクス配列されている複数の処理回路と複数の配線回路とがコンテキストに対応して動作サイクルごとに並列動作することができる。 In the parallel arithmetic device as described above, since the state management unit sequentially switches the context included in the object code for each operation cycle, a plurality of processing circuits and a plurality of wiring circuits arranged in a matrix correspond to the context. Can be operated in parallel every operation cycle.
しかし、このような並列演算装置は構造と動作との両方が従来のCPUなどとは根本的に相違しているため、そのオブジェクトコードをソースコードから従来の手法で単純にデータ生成することはできず、そのオブジェクトコードをソースコードから適切にデータ生成する技術は確立されていない。 However, since such a parallel computing device is fundamentally different from the conventional CPU in both structure and operation, the object code cannot be simply generated from the source code by the conventional method. However, a technique for appropriately generating the object code from the source code has not been established.
本発明は上述のような課題に鑑みてなされたものであり、コンテキストを順次切り換える並列演算装置のオブジェクトプログラムを良好にデータ生成できるデータ処理装置および方法、そのデータ処理装置のためのコンピュータプログラム、このコンピュータプログラムがデータ格納されている情報記憶媒体、そのオブジェクトプログラムに対応して動作する並列演算装置、この並列演算装置とデータ処理装置とを具備しているデータ処理システム、を提供することを目的とする。 The present invention has been made in view of the above-described problems, and provides a data processing apparatus and method capable of satisfactorily generating data for an object program of a parallel processing apparatus that sequentially switches contexts, a computer program for the data processing apparatus, An object of the present invention is to provide an information storage medium in which a computer program stores data, a parallel processing device that operates in accordance with the object program, and a data processing system including the parallel processing device and the data processing device. To do.
本発明の第1のデータ処理装置は、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置の動作が高級言語で記述された一連のソースコードから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置であって、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、ソースコードがデータ入力されるソース入力手段と、データ入力されたソースコードから、動作状態ごとにコンテキストを順次切り換えるオブジェクトコードを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するオブジェクト生成手段と、データ生成されたオブジェクトコードをデータ出力するオブジェクト出力手段と、を具備している。 A first data processing apparatus according to the present invention includes a plurality of processing circuits that individually execute data processing in response to first operation instructions that are individually set with data, and a plurality of processes that correspond to first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control circuit connection relations are arranged in a matrix, and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to the second operation command A context including a first operation instruction for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched from a series of source codes in which the operation of the parallel processing device separately provided is described in a high-level language. A data processing device that generates data of a series of object codes including at least two operation instructions, at least a physical structure and physical characteristics of a parallel processing device The condition storage means in which the constraint conditions corresponding to the data are registered in advance, the source input means for inputting the source code data, and the object code for sequentially switching the context for each operation state from the data input source code, The data path corresponding to the matrix circuit part and the finite state machine corresponding to the state management part are separated, and the object generation means for generating data and the data generated object code are output as data so as to satisfy the constraints. Object output means.
本発明の第2のデータ処理装置は、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置の動作が高級言語で記述された一連のソースコードから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの並列処理回路のRTL(Register Transfer Level)記述をデータ生成するデータ処理装置であって、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、ソースコードがデータ入力されるソース入力手段と、データ入力されたソースコードから、動作状態ごとにコンテキストを順次切り換えるRTL記述を、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するRTL生成手段と、データ生成されたRTL記述をデータ出力するRTL出力手段と、を具備している。 A second data processing apparatus according to the present invention includes a plurality of processing circuits that individually execute data processing corresponding to first operation instructions that are individually set with data, and a plurality of processes that correspond to first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control circuit connection relations are arranged in a matrix, and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to the second operation command RTL (Register Transfer Level) of a parallel processing circuit for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched from a series of source codes in which the operation of a parallel processing device separately provided is described in a high-level language A data processing device for generating a description of data, in which a constraint description corresponding to at least the physical structure and physical characteristics of the parallel processing device is registered in advance. Means, source input means for inputting source code data, and RTL description for sequentially switching the context for each operation state from the inputted source code, corresponding to the data path corresponding to the matrix circuit section and the state management section RTL generating means for generating data and RTL output means for outputting data of the generated RTL description are provided so as to satisfy the constraint condition by separating from the finite state machine.
本発明の第3のデータ処理装置は、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置のRTL記述から、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの、並列演算装置が備える回路資源のネットリストをデータ生成するデータ処理装置であって、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、RTL記述がデータ入力されるRTL入力手段と、データ入力されたRTL記述から、動作状態ごとにコンテキストを順次切り換えるネットリストを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するネットリスト生成手段と、データ生成されたネットリストをデータ出力するネットリスト出力手段と、を具備している。 A third data processing apparatus according to the present invention includes a plurality of processing circuits that individually execute data processing corresponding to first operation instructions set individually and a plurality of processes corresponding to the first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control circuit connection relations are arranged in a matrix, and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to the second operation command Is a data processing device that generates data from a RTL description of a parallel processing device that is separately provided for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched. The condition storage means in which the constraint conditions corresponding to at least the physical structure and the physical characteristics of the parallel processing device are registered in advance, and the RTL description is the data input Separating the data path corresponding to the matrix circuit part and the finite state machine corresponding to the state management part from the RTL input means to be inputted and the netlist for sequentially switching the context for each operation state from the RTL description inputted with data, In order to satisfy the constraint conditions, a net list generating unit for generating data and a net list output unit for outputting the data generated net list are provided.
本発明の第4のデータ処理装置は、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置が備える回路資源のネットリストから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包した一連のオブジェクトコードをデータ生成するデータ処理装置であって、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、ネットリストがデータ入力されるネットリスト入力手段と、データ入力されたネットリストから、動作状態ごとにコンテキストを順次切り換えるオブジェクトコードを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するオブジェクト生成手段と、データ生成されたオブジェクトコードをデータ出力するオブジェクト出力手段と、を具備している。 A fourth data processing apparatus according to the present invention includes a plurality of processing circuits that individually execute data processing corresponding to first operation instructions that are individually set with data, and a plurality of processes that correspond to first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control circuit connection relations are arranged in a matrix, and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to the second operation command At least a context including a first operation instruction and a second operation instruction for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched from a net list of circuit resources included in the parallel processing device separately including A data processing device that generates data for a series of included object codes, and is a constraint corresponding to at least the physical structure and physical characteristics of the parallel processing device Matrix circuit unit including condition storage means in which data is registered in advance, netlist input means for netlist data input, and object code for sequentially switching contexts for each operation state from the data input netlist An object generation means for generating data and an object output means for outputting data of the generated object code so as to satisfy a constraint condition by separating a data path corresponding to the finite state machine and a finite state machine corresponding to the state management unit And.
本発明のデータ処理方法は、条件記憶手段、ソース入力手段、オブジェクト生成手段、及びオブジェクト出力手段を備えるデータ処理装置がオブジェクトコードを生成するデータ処理方法であって、条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、ソース入力手段が、並列演算装置の動作が高級言語で記述された一連のソースコードをデータ入力する工程と、オブジェクト生成手段が、データ入力されたソースコードから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包し、動作状態ごとにコンテキストを順次切り換える一連のオブジェクトコードを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成する工程と、オブジェクト出力手段が、データ生成されたオブジェクトコードをデータ出力する工程と、を具備している。 Data processing method of the present invention, the condition storage means, the source input means, the object generation means, and a data processing apparatus having an object output means is a data processing method for generating object code, the condition storage means, individually A plurality of processing circuits that individually execute data processing in response to a first operation command that is set with data, and a plurality of wirings that individually switch and control connection relationships between the plurality of processing circuits in response to the first operation command At least a physical structure of a parallel processing device separately including a matrix circuit unit in which circuits are arranged in a matrix and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle corresponding to the second operation command and has physical properties and constraints corresponding to is the data registered, the source input means, serial in operation a high-level language parallel operation device A series of source code and a step of data input, the object generation means, from the source code data input from the first operation instruction for each successively cut switched operating state of a plurality of processing circuits and a plurality of printed circuit A series of object codes that include at least a context and a second operation instruction, and sequentially switch contexts for each operation state, by separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit The step of generating data so as to satisfy the constraint conditions, and the step of outputting the object code generated by the object output means are provided.
データ処理方法は、条件記憶手段、ソース入力手段、RTL生成手段、及びRTL出力手段を備えるデータ処理装置がRTL記述を生成するデータ処理方法であって、条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、ソース入力手段が、並列演算装置の動作が高級言語で記述された一連のソースコードをデータ入力する工程と、RTL生成手段が、データ入力されたソースコードから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包し、動作状態ごとにコンテキストを順次切り換える一連のRTL記述を、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成する工程と、RTL出力手段が、データ生成されたRTL記述をデータ出力する工程と、を具備している。 Data processing method, the condition storage means, a data processing method source input means, RTL generation means, and the data processing apparatus provided with RTL output means generates the RTL description, the condition storage means, are individually data set A plurality of processing circuits that individually execute data processing in response to the first operation command and a plurality of wiring circuits that individually switch and control connection relations between the plurality of processing circuits in response to the first operation command. At least a physical structure and physical characteristics of a parallel processing device separately including a matrix circuit unit arranged in matrix and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to the second operation instruction DOO and the corresponding constraint is data registered in the source input means, a set of source code that operation of the parallel arithmetic unit written in a high-level language A step of over data input, RTL generation means, from the source code data inputted, consists of a first operation instruction for each successively cut switched operating state of a plurality of processing circuits and a plurality of printed circuit context and the second A series of RTL descriptions that include at least operation instructions and sequentially switch contexts for each operation state are separated from the data path corresponding to the matrix circuit portion and the finite state machine corresponding to the state management portion, and the constraint conditions are satisfied. as such, the steps of data generation, the RTL output means, comprising the steps of data output RTL description is data generated, a.
データ処理方法は、条件記憶手段、RTL入力手段、ネットリスト生成手段、及びネットリスト出力手段を備えるデータ処理装置がネットリストを生成するデータ処理方法であって、条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、RTL入力手段が、並列演算装置の動作が高級言語で記述された一連のRTL記述をデータ入力する工程と、ネットリスト生成手段が、データ入力されたRTL記述から、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとにコンテキストを順次切り換える、並列演算装置が備える回路資源のネットリストを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成する工程と、ネットリスト出力手段が、データ生成されたネットリストをデータ出力する工程と、を具備している。 Data processing method, the condition storing means, RTL input means, the net list generating means, and a data processing method in which the data processing apparatus comprising a netlist output means generates a netlist, in the condition storage means, each data A plurality of processing circuits that individually execute data processing corresponding to the set first operation command and a plurality of wiring circuits that individually switch and control connection relations between the plurality of processing circuits corresponding to the first operation command And at least a physical structure of a parallel processing unit separately including a matrix circuit unit in which the matrix circuit unit is arranged in matrix and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle corresponding to the second operation instruction constraint condition corresponding to the physical properties are data registration, RTL input means, a series of operations of the parallel arithmetic unit written in a high-level language A step of data enter the TL description, the net list generating means, the RTL description is a data input, sequentially switches the context for each successively cut switched operating state of a plurality of processing circuits and a plurality of wiring circuits, a parallel arithmetic unit A step of generating data so as to satisfy a constraint condition by separating a data path corresponding to a matrix circuit unit and a finite state machine corresponding to a state management unit from a net list of circuit resources provided; and a net list output unit There are provided a step of data outputting netlist data generated, a.
本発明のデータ処理方法は、条件記憶手段、ネットリスト入力手段、オブジェクト生成手段、及びオブジェクト出力手段を備えるデータ処理装置がオブジェクトコードを生成するデータ処理方法であって、条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、ネットリスト入力手段が、並列演算装置の動作が高級言語で記述された一連のネットリストをデータ入力する工程と、オブジェクト生成手段が、データ入力されたネットリストから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包し、動作状態ごとにコンテキストを順次切り換える一連のオブジェクトコードを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成する工程、オブジェクト出力手段が、データ生成されたオブジェクトコードをデータ出力する工程と、を具備している。 Data processing method of the present invention is a condition storage means, the netlist input means, the object generation means, and a data processing method in which data processing apparatus having an object output means generates an object code, a condition storage means, the individual A plurality of processing circuits that individually execute data processing in response to a first operation command set in the data and a plurality of processing circuits that individually switch and control connection relations between the plurality of processing circuits in response to the first operation command. At least a physical unit of a parallel processing device comprising: a matrix circuit unit in which wiring circuits are arranged in a matrix; and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to the second operation command. structure and physical characteristics and constraints corresponding to are data registered netlist input means, the operation of the parallel arithmetic unit A step of a sequence of data input to the netlist described in grade language, the object generation means, from the netlist data input, for each successively cut switched operating state of a plurality of processing circuits and a plurality of wiring circuits first A series of object codes including at least a context including the operation instructions and a second operation instruction, and sequentially switching the context for each operation state, a data path corresponding to the matrix circuit unit, and a finite state machine corresponding to the state management unit was separated, so as to satisfy the constraint conditions, the process of data generation, the object output means, comprising the steps of data output object code data generated, a.
本発明のコンピュータプログラムは、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置の動作が高級言語で記述された一連のソースコードから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包した一連のオブジェクトコードをデータ生成するために、コンピュータを、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、ソースコードをデータ入力するソース入力手段、データ入力されたソースコードから、動作状態ごとにコンテキストを順次切り換えるオブジェクトコードを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を参照し、データ生成するオブジェクト生成手段、データ生成されたオブジェクトコードをデータ出力するオブジェクト出力手段、を具備するデータ処理装置として機能させるためのコンピュータプログラムである。 The computer program of the present invention has a connection relationship between a plurality of processing circuits that individually execute data processing corresponding to a first operation instruction that is individually set with data and a plurality of processing circuits that correspond to the first operation instruction. A matrix circuit section in which a plurality of wiring circuits that individually control switching are arranged in a matrix, and a state management section that sequentially switches the context of the matrix circuit section for each operation cycle in response to the second operation command A context and a second operation instruction including a first operation instruction for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched from a series of source codes in which the operation of the parallel arithmetic device is described in a high-level language the set of object code that is at least contained to data generation, and the computer, at least the physical structure and physical JP parallel operation device Corresponding to the matrix circuit section, the condition storage means for registering the constraint conditions corresponding to the data, the source input means for inputting the source code data, and the object code for sequentially switching the context for each operation state from the data input source code Data processing comprising: an object generation means for generating data by separating a data path and a finite state machine corresponding to the state management unit, referring to a constraint condition, and an object output means for outputting the generated object code as data It is a computer program for functioning as a device .
本発明のコンピュータプログラムは、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置の動作が高級言語で記述された一連のソースコードから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの並列処理回路のRTL記述をデータ生成するために、コンピュータを、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、ソースコードをデータ入力するソース入力手段、データ入力されたソースコードから、動作状態ごとにコンテキストを順次切り換えるRTL記述を、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するRTL生成手段、データ生成されたRTL記述をデータ出力するRTL出力手段、を具備するデータ処理装置として機能させるためのコンピュータプログラムである。 The computer program of the present invention has a connection relationship between a plurality of processing circuits that individually execute data processing corresponding to a first operation instruction that is individually set with data and a plurality of processing circuits that correspond to the first operation instruction. A matrix circuit section in which a plurality of wiring circuits that individually control switching are arranged in a matrix, and a state management section that sequentially switches the context of the matrix circuit section for each operation cycle in response to the second operation command from a series of source code operation of the parallel arithmetic unit written in a high-level language, RTL description of a parallel processing circuit for each successively cut switched operating state of a plurality of processing circuits and a plurality of wiring circuits for data generation, co the computer, condition storage means for data registration constraint condition corresponding to at least the physical structure and physical properties of the parallel arithmetic unit, data source RTL description that sequentially switches context for each operation state from the source input means that inputs data, separates the data path corresponding to the matrix circuit part and the finite state machine corresponding to the state management part, A computer program for causing a data processing apparatus to function as an RTL generation unit that generates data and an RTL output unit that outputs data generated RTL descriptions so as to satisfy the constraint conditions.
本発明のコンピュータプログラムは、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置のRTL記述から、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの、並列演算装置が備える回路資源のネットリストをデータ生成するために、コンピュータを、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、RTL記述をデータ入力するRTL入力手段、データ入力されたRTL記述から、動作状態ごとにコンテキストを順次切り換えるネットリストを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するネットリスト生成手段、データ生成されたネットリストをデータ出力するネットリスト出力手段、を具備するデータ処理装置として機能させるためのコンピュータプログラムである。 The computer program of the present invention has a connection relationship between a plurality of processing circuits that individually execute data processing corresponding to a first operation instruction that is individually set with data and a plurality of processing circuits that correspond to the first operation instruction. A matrix circuit section in which a plurality of wiring circuits that individually control switching are arranged in a matrix, and a state management section that sequentially switches the context of the matrix circuit section for each operation cycle in response to the second operation command from RTL description of the parallel arithmetic unit, for each successively cut switched operating state of a plurality of processing circuits and a plurality of wiring circuits, a netlist of a circuit resources provided in the parallel arithmetic unit for data generation, the computer, the parallel operation Condition storage means for registering constraints corresponding to at least the physical structure and physical characteristics of the device, RTL input for inputting RTL description data Means, from the RTL description that has been input data, the netlist that sequentially switches the context for each operation state, the data path corresponding to the matrix circuit part and the finite state machine corresponding to the state management part are separated, and the constraint conditions are satisfied As described above, the present invention is a computer program for functioning as a data processing apparatus including a net list generation unit that generates data and a net list output unit that outputs data of the generated net list.
本発明のコンピュータプログラムは、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部を別個に備える並列演算装置が備える回路資源のネットリストから、複数の処理回路と複数の配線回路との順次切り換わる動作状態ごとの第1の動作命令からなるコンテキスト及び第2の動作命令を少なくとも内包した一連のオブジェクトコードをデータ生成するために、コンピュータを、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、ネットリストをデータ入力するネットリスト入力手段、データ入力されたネットリストから、動作状態ごとにコンテキストを順次切り換えるオブジェクトコードを、マトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離して、制約条件を満足するように、データ生成するオブジェクト生成手段、データ生成されたオブジェクトコードをデータ出力するオブジェクト出力手段、を具備するデータ処理装置として機能させるためのコンピュータプログラムである。 The computer program of the present invention has a connection relationship between a plurality of processing circuits that individually execute data processing corresponding to a first operation instruction that is individually set with data and a plurality of processing circuits that correspond to the first operation instruction. A matrix circuit section in which a plurality of wiring circuits that individually control switching are arranged in a matrix, and a state management section that sequentially switches the context of the matrix circuit section for each operation cycle in response to the second operation command A series including at least a context including a first operation instruction and a second operation instruction for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched from a net list of circuit resources included in the parallel arithmetic device. to the object code data generation, control of the computer, corresponding to at least the physical structure and physical properties of the parallel arithmetic unit Condition storage means for registering condition data, netlist input means for inputting netlist data, object code for sequentially switching contexts for each operation state from the data input netlist, data paths and states corresponding to the matrix circuit section As a data processing apparatus comprising an object generation means for generating data and an object output means for outputting data of the generated object code so as to satisfy a constraint condition by separating from a finite state machine corresponding to the management unit It is a computer program for making it function.
本発明の情報記憶媒体は、上記のコンピュータプログラムをデータ格納している。 The information storage medium of the present invention stores the above computer program as data .
本発明のデータ処理システムは、上記第1または第4のデータ処理装置と、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と第1の動作命令に対応して複数の処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応してマトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、上記第1または第4のデータ処理装置によってデータ出力されたオブジェクトコードがデータ格納されている記憶部を備える並列演算装置と、を具備している。 The data processing system according to the present invention includes the first or fourth data processing apparatus, a plurality of processing circuits that individually execute data processing in response to a first operation command for which data is individually set, and a first processing circuit. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control connection relations of a plurality of processing circuits corresponding to the operation command are arranged in a matrix, and a context of the matrix circuit unit corresponding to the second operation command A state management unit that sequentially switches for each operation cycle; and a parallel processing unit that includes a storage unit in which the object code output by the first or fourth data processing device is stored.
また、本発明で云う各種手段は、その機能を実現するように形成されていれば良く、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置の内部に実現された所定の機能、これらの組み合わせ、等を許容する。また、本発明で云う各種手段は、個々に独立した存在である必要もなく、ある手段が他の手段の一部であるようなことも許容する。 The various means referred to in the present invention need only be formed so as to realize the function. For example, dedicated hardware that exhibits a predetermined function, a data processing apparatus provided with a predetermined function by a computer program A predetermined function implemented in the data processing apparatus by a computer program, a combination thereof, or the like is permitted. Further, the various means referred to in the present invention do not have to be individually independent, and one means is allowed to be a part of another means.
また、本発明で云う情報記憶媒体とは、データ処理装置に各種処理を実行させるためのコンピュータプログラムが事前に格納されたハードウェアであれば良く、例えば、データ処理装置を一部とする装置に固定されているROM(Read Only Memory)やHDD(Hard Disc Drive)、データ処理装置を一部とする装置に交換自在に装填されるCD(Compact Disc)−ROMやFD(FLEXIBLE Disc)、等を許容する。 The information storage medium referred to in the present invention may be hardware in which a computer program for causing the data processing apparatus to execute various processes is stored in advance. Fixed ROM (Read Only Memory), HDD (Hard Disc Drive), CD (Compact Disc) -ROM, FD (FLEXIBLE Disc), etc. that can be exchangeably loaded in a device that includes a data processing device. Allow.
また、本発明で云うデータ処理装置とは、コンピュータプログラムをデータ読取して対応するデータ処理を実行できるハードウェアであれば良く、例えば、CPU(Central Processing Unit)を主体として、これにROMやRAM(Random Access Memory)やI/F(Interface)ユニット等の各種デバイスが接続されたハードウェアなどを許容する。 The data processing apparatus referred to in the present invention may be any hardware that can read computer programs and execute corresponding data processing. For example, a CPU (Central Processing Unit) is mainly used as a ROM or RAM. (Random Access Memory) and hardware to which various devices such as I / F (Interface) units are connected are allowed.
なお、本発明でコンピュータプログラムに対応した各種動作をデータ処理装置に実行させることは、各種デバイスをデータ処理装置に動作制御させることなども許容する。例えば、データ処理装置に各種データをデータ保存させることは、データ処理装置が一部として具備しているRAM等の情報記憶媒体に各種データを格納すること、データ処理装置に交換自在に装填されているFD等の情報記憶媒体に各種データを格納すること、等を許容する。 In the present invention, causing the data processing apparatus to execute various operations corresponding to the computer program also allows the data processing apparatus to control operations of the various devices. For example, storing various data in the data processing device means storing the various data in an information storage medium such as a RAM provided as a part of the data processing device or loading the data processing device in a replaceable manner. It is allowed to store various data in an information storage medium such as an FD.
本発明のデータ処理装置では、並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されており、データ入力される並列演算装置の動作記述のソースコードから制約条件により並列演算装置のコンテキストを動作サイクルごとに順次切り換える一連のオブジェクトコードをデータ生成し、このデータ生成された一連のオブジェクトコードをデータ出力することにより、並列演算装置の動作記述のソースコードから、並列演算装置のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードをデータ生成することができる。 In the data processing device of the present invention, constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel arithmetic device are registered in advance, and the data is input according to the constraint conditions from the source code of the operation description of the parallel arithmetic device. Data is generated for a series of object codes that sequentially switch the context of the parallel processing device for each operation cycle, and by outputting the generated series of object codes, parallel computation is performed from the source code of the behavior description of the parallel processing device. Data can be generated for object code that sequentially switches the device context for each operation cycle.
また、本発明の他の形態としては、制約条件により一連のソースコードから一連のオブジェクトコードをデータ生成するときにマトリクス回路部に対応したデータパスと状態管理部に対応した有限状態マシンとを分離することにより、並列演算装置のマトリクス回路部と状態管理部とに別個に対応したオブジェクトコードをデータ生成することができる。 As another form of the present invention, a data path corresponding to the matrix circuit part and a finite state machine corresponding to the state management part are separated when generating a series of object codes from a series of source codes due to constraints. By doing so, it is possible to generate object codes corresponding to the matrix circuit unit and the state management unit of the parallel processing device separately.
また、一連のソースコードを言語解析してDFGをデータ生成し、このデータ生成されたDFGから制約条件により複数段階の動作状態をスケジューリングしたCDFGをデータ生成することにより、並列演算装置の動作記述のソースコードから、その順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成することができる。 In addition, the DFG data is generated by language analysis of a series of source codes, and a CDFG in which a plurality of stages of operation states are scheduled according to the constraint condition is generated from the generated DFG. From the source code, it is possible to generate data of a CDFG that schedules a plurality of stages of operation states that sequentially transition.
また、マトリクス回路部がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新するようにCDFGをデータ生成することにより、このCDFGからデータ生成されたオブジェクトコードに対応して並列演算装置を動作させると、マトリクス回路部がオブジェクトコードの多数のコンテキストを所定個数までデータ記憶して対応動作を順次実行している最中に、その対応動作が実行されたコンテキストを状態管理部が新規のコンテキストにデータ更新させることができる。 Further, the CDFG is updated so that the state management unit updates the data of the context in which the corresponding operation is executed while the corresponding operation is being executed in one of the predetermined number of contexts stored in the matrix circuit unit by data. When the parallel arithmetic unit is operated corresponding to the object code generated from the CDFG by generating the data, the matrix circuit unit stores a large number of contexts of the object code to a predetermined number and sequentially executes the corresponding operation. In the meantime, the state management unit can update the data of the context in which the corresponding operation has been executed to a new context.
また、データ生成されたCDFGから制約条件により複数段階の動作状態のRTL記述をマトリクス回路部と状態管理部とに分離してデータ生成することにより、並列演算装置のマトリクス回路部と状態管理部とに別個に対応したRTL記述をデータ生成することができる。 In addition, by separating the RTL description of the operation state of a plurality of stages from the generated CDFG into a matrix circuit unit and a state management unit according to the constraint condition, data is generated, so that the matrix circuit unit and the state management unit of the parallel processing device It is possible to generate RTL descriptions that individually correspond to the data.
また、データ生成されたマトリクス回路部のRTL記述から複数段階の動作状態ごとに制約条件により処理回路のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストを順次遷移する複数段階の動作状態ごとにデータ生成することができる。 In addition, a plurality of stages in which the processing circuit netlist of the parallel processing device is sequentially shifted by generating data from the RTL description of the generated matrix circuit unit for each operation state in a plurality of stages according to the constraint condition. Data can be generated for each operation state.
また、データ生成されたマトリクス回路部のRTL記述から複数段階の動作状態ごとに制約条件により処理回路の複数種類の回路資源のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストをビット数の相違する複数種類の回路資源ごとにデータ生成することができる。 In addition, by generating a netlist of a plurality of types of circuit resources of the processing circuit from the RTL description of the generated matrix circuit unit for each operation state at a plurality of stages according to constraints, the netlist of the processing circuit of the parallel processing device is generated. Can be generated for each of a plurality of types of circuit resources having different numbers of bits.
また、複数段階の動作状態に対応した状態管理部のオブジェクトコードが事前にデータ登録されており、データ生成されたマトリクス回路部のネットリストに対応してデータ生成された状態管理部のRTL記述をオブジェクトコードにデータ変換し、このデータ変換された状態管理部のオブジェクトコードをデータ出力することにより、状態管理部のオブジェクトコードをマトリクス回路部のネットリストに対応してデータ生成することができる。 In addition, the object code of the state management unit corresponding to the operation states in a plurality of stages is registered in advance, and the RTL description of the state management unit generated by the data corresponding to the net list of the matrix circuit unit that has generated the data is stored. By converting the data into an object code and outputting the converted object code of the state management unit, the object code of the state management unit can be generated corresponding to the net list of the matrix circuit unit.
また、RTL記述から制約条件により処理回路のm/nb回路資源のネットリストをデータ生成することにより、並列演算装置の処理回路のネットリストをm/nb回路資源ごとにデータ生成することができる。 In addition, by generating a net list of m / nb circuit resources of the processing circuit from the RTL description according to constraints, it is possible to generate a net list of processing circuits of the parallel processing device for each m / nb circuit resource.
また、RTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmb回路資源とZ個のnb回路資源とに割り付けることにより、“xb”のデータ処理をm/nb回路資源に適正な個数ずつ割り付けることができる。 Also, by assigning “xb” data processing in the RTL description to Y mb circuit resources “x = Ym + Zn” and Z nb circuit resources, “xb” data processing becomes m / nb circuit resources. Appropriate number can be assigned.
また、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出することにより、“xb”のデータ処理をビット数が多数のmb回路資源に極力割り付けることができ、余数部分のみビット数が少数のnb回路資源に割り付けることができる。 Also, by calculating the integer part “Y” of the result of dividing “x” by “m”, and then calculating the integer “Z” of the result of dividing the remainder by “n”, the “xb” Data processing can be allocated as much as possible to mb circuit resources having a large number of bits, and only the remainder can be allocated to nb circuit resources having a small number of bits.
また、余数が所定の閾値より少数の場合に整数“Z”を算出して余数が閾値以上の場合は“Y”に“1”を加算して“Z=0”とすることにより、mb回路資源に極力割り付けられた“xb”のデータ処理の余数部分を、ビット数に対応してm/nb回路資源の適切な一方に割り付けることができる。 Further, when the remainder is smaller than a predetermined threshold, an integer “Z” is calculated, and when the remainder is greater than or equal to the threshold, “1” is added to “Y” to make “Z = 0”, thereby obtaining the mb circuit. The remainder part of the data processing of “xb” allocated to resources as much as possible can be allocated to an appropriate m / nb circuit resource corresponding to the number of bits.
また、データ登録されている制約条件の“nb”が“1(bit)”からなることにより、mb回路資源に割り付けられた“xb”のデータ処理の余数部分が何ビットであってもnb回路資源に割り付けることができる。 In addition, since “nb” of the constraint condition in which data is registered is composed of “1 (bit)”, the nb circuit can be used regardless of how many bits are left in the data processing of “xb” allocated to the mb circuit resource. Can be allocated to resources.
また、処理回路の各種のオブジェクトコードも事前にデータ登録されており、複数段階の動作状態ごとにデータ生成されたネットリストをマトリクス配列されている複数の処理回路に複数サイクルのコンテキストごとに割り付け、この処理回路に割り付けられたネットリストを対応するオブジェクトコードにデータ変換することにより、並列演算装置の複数の処理回路のオブジェクトコードを複数サイクルのコンテキストごとにデータ生成することができる。 In addition, various object codes of the processing circuit are registered in advance, and a net list generated for each operation state of a plurality of stages is allocated to a plurality of processing circuits arranged in a matrix for each context of a plurality of cycles. By converting the netlist assigned to this processing circuit into the corresponding object code, the object code of the plurality of processing circuits of the parallel processing device can be generated for each context of a plurality of cycles.
また、配線回路のオブジェクトコードも事前にデータ登録されており、データ変換された処理回路のオブジェクトコードに対応して配線回路のネットリストを対応するオブジェクトコードにデータ変換することにより、並列演算装置の複数の処理回路の接続関係を個々に切換制御する複数の配線回路のオブジェクトコードもデータ生成することができる。 In addition, the object code of the wiring circuit is registered in advance, and by converting the net list of the wiring circuit into the corresponding object code corresponding to the object code of the processing circuit subjected to the data conversion, Data can also be generated for the object codes of a plurality of wiring circuits that individually switch and control the connection relationships of the plurality of processing circuits.
また、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部の一定位置のレジスタファイルに共通に割り付けることにより、並列演算装置の連続する複数サイクルのコンテキストで連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードをデータ生成することができる。 In addition, by allocating a netlist in which processing data is linked in a continuous multiple cycle context to a register file in a fixed position in the matrix circuit unit, the processing data linked in the continuous multiple cycle context of the parallel processing unit is fixed. Data can be generated for the object code to be temporarily stored in the register file at the position.
また、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをレジスタファイルなどに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたレジスタファイルの連続する複数サイクルのコンテキストでの位置を一致させることにより、また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での位置を固定してから、他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるレジスタファイルのマトリクス回路部での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のレジスタファイルなどに複数サイクルのコンテキストごとに割り付けることにより、連携する処理データを一定位置のレジスタファイルに一時保持させるオブジェクトコードを所定のデータ処理でデータ生成することができる。 In addition, after assigning a netlist to a register file or the like regardless of the linkage of processing data for each context of multiple cycles, a series of register files to which a netlist to which processing data is linked is assigned by adjusting this allocation position By fixing the position in the matrix circuit part of the register file to which the netlist to which the processing data is linked in the multiple cycle context is first assigned in common, By assigning other netlists to other register files, etc. for each context of multiple cycles, and in the matrix circuit part of the register file to which the netlist to which processing data is linked in the context of multiple cycles is first assigned in common relative position The object code that temporarily holds the associated processing data in the register file at a fixed position by assigning other netlists to other register files etc. for each context of multiple cycles while maintaining this relative position after setting. Data can be generated by predetermined data processing.
また、順次遷移する複数段階の動作状態から制約条件により一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を一つのコンテキストに割り付けることにより、複数の動作状態を一つのコンテキストとして並列演算装置に一度にデータ設定することができる。 In addition, a plurality of operation states that are sequentially transitioned are detected from a plurality of operation states that are assigned to one context according to a constraint condition, and the plurality of operation states that are detected are assigned to one context, whereby the plurality of operation states are assigned to one context. As described above, data can be set in the parallel arithmetic device at one time.
また、遷移段階が連続している複数の動作状態を検出することにより、連続する複数の動作状態を一つのコンテキストとして並列演算装置にデータ設定することができる。 In addition, by detecting a plurality of operation states in which transition stages are continuous, it is possible to set data in the parallel computing device as a plurality of continuous operation states as one context.
本発明の第一の並列演算装置では、本発明のデータ処理装置でデータ生成されたオブジェクトコードがデータ格納されており、そのオブジェクトコードに対応して動作サイクルごとにコンテキストが順次切り換わり、この順次切り換わるコンテキストに対応してマトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作することにより、本発明のデータ処理装置でデータ生成されてデータ格納されたオブジェクトコードに対応して動作サイクルごとに複数の処理回路を並列動作させることができる。 In the first parallel processing device of the present invention, the object code generated by the data processing device of the present invention is stored, and the context is sequentially switched for each operation cycle corresponding to the object code. A plurality of processing circuits arranged in a matrix corresponding to the context to be switched operate in parallel with individually configurable data processing, thereby corresponding to the object code generated and stored by the data processing apparatus of the present invention Thus, a plurality of processing circuits can be operated in parallel for each operation cycle.
本発明の第二の並列演算装置では、本発明のデータ処理装置でデータ生成された外部入力され、そのオブジェクトコードに対応して動作サイクルごとにコンテキストが順次切り換わり、この順次切り換わるコンテキストに対応してマトリクス配列されている複数の処理回路が個々に設定自在なデータ処理で並列動作することにより、本発明のデータ処理装置でデータ生成されて外部入力されるオブジェクトコードに対応して動作サイクルごとに複数の処理回路を並列動作させることができる。 In the second parallel processing device of the present invention, externally generated data generated by the data processing device of the present invention is used, and contexts are sequentially switched for each operation cycle corresponding to the object code, and this sequentially switched context is supported. A plurality of processing circuits arranged in a matrix are operated in parallel with individually configurable data processing, so that data is generated by the data processing device of the present invention and each operation cycle corresponds to an object code inputted externally. A plurality of processing circuits can be operated in parallel.
本発明の第一のデータ処理システムでは、本発明のデータ処理装置でデータ生成されたオブジェクトコードが本発明の並列演算装置に外部入力されることにより、データ処理装置に外部入力されるソースコードに対応して並列演算装置に順次切り換わる複数サイクルのコンテキストで並列演算を実行させることができる。 In the first data processing system of the present invention, the object code generated by the data processing apparatus of the present invention is externally input to the parallel processing apparatus of the present invention, so that the source code input to the data processing apparatus is externally input. Correspondingly, parallel operations can be executed in a context of a plurality of cycles that are sequentially switched to the parallel operation device.
本発明の第二のデータ処理システムでは、データ処理装置がソースコードからオブジェクトコードをデータパスと有限状態マシンとに分離してデータ生成し、そのデータパスと並列演算装置のマトリクス回路部とが対応しているとともに有限状態マシンと状態管理部とが対応していることにより、並列演算装置のハードウェア構造に対応したソフトウェア構造にオブジェクトコードをデータ処理装置でデータ生成することができる。 In the second data processing system of the present invention, the data processing device generates data by separating the object code from the source code into the data path and the finite state machine, and the data path corresponds to the matrix circuit unit of the parallel processing device. In addition, since the finite state machine and the state management unit correspond to each other, the object code can be generated by the data processing device in the software structure corresponding to the hardware structure of the parallel processing device.
本発明の実施の一形態を、図面を参照して以下に説明する。まず、本形態の並列演算装置であるアレイ型プロセッサ100は、図4および図5(a)に示すように、オブジェクト入力手段であるI/Fユニット101、コード格納手段であるコードメモリ102、状態管理部103、データ分配部104、マトリクス回路部105、データメモリ106、を具備しており、マトリクス回路部105には、複数の処理回路であるプロセッサエレメント107、複数の配線回路であるスイッチエレメント108、多数のmbバス109、多数のnbバス110、等がマトリクス配列されている。
An embodiment of the present invention will be described below with reference to the drawings. First, as shown in FIG. 4 and FIG. 5A, the
また、同図(b)に示すように、プロセッサエレメント107は、インストラクションメモリ111、インストラクションデコーダ112、mb回路資源であるmbレジスタファイル113、nb回路資源であるnbレジスタファイル114、mb回路資源でありmb演算器であるmbALU115、nb回路資源でありnb演算器であるnbALU116、内部配線資源117、等を各々具備しており、スイッチエレメント108は、バスコネクタ121、入力制御回路122、出力制御回路123、等を各々具備している。
Further, as shown in FIG. 5B, the
I/Fユニット101は、後述するデータ処理装置300が接続され、このデータ処理装置300から一連のオブジェクトコードが外部入力される。コードメモリ102は、RAM等の情報記憶媒体からなり、外部入力されたオブジェクトコードをデータ記憶する。
The I /
このオブジェクトコードは、詳細には後述するが、マトリクス回路部105にマトリクス配列された複数のプロセッサエレメント107と複数のスイッチエレメント108との動作命令が、順次切り換わる動作サイクルごとのコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理部103の動作命令が、順次遷移する動作状態としてデータ設定されている。
As will be described later in detail, this object code is set as data as a context for each operation cycle in which operation instructions of the plurality of
この状態管理部103は、コードメモリ102でデータ記憶された一連のオブジェクトコードから動作サイクルごとにコンテキストをデータ読出し、その動作命令から複数のプロセッサエレメント107と複数のスイッチエレメント108とのインストラクションポインタを各々発生する。
The
本形態ではスイッチエレメント108のインストラクションメモリが隣接するプロセッサエレメント107のインストラクションメモリ111で兼用されているので、状態管理部103は、発生したプロセッサエレメント107とスイッチエレメント108との一組のインストラクションポインタを対応するプロセッサエレメント107のインストラクションメモリ111に供給する。
In this embodiment, since the instruction memory of the
このインストラクションメモリ111はプロセッサエレメント107とスイッチエレメント108との複数の動作命令が事前に格納されており、状態管理部103から供給される二つのインストラクションポインタでプロセッサエレメント107とスイッチエレメント108との動作命令が指定される。インストラクションデコーダ112は、インストラクションポインタで指定された動作命令をデコードし、スイッチエレメント108、内部配線資源117、m/nbALU115,116、等の動作を制御する。
The
mbバス109は“8(bit)”の処理データであるmbデータを伝送し、nbバス110は“1(bit)”の処理データであるnbデータを伝送するので、スイッチエレメント108は、インストラクションデコーダ112の動作制御に対応してm/nbバス109,110による複数のプロセッサエレメント107の接続関係を制御する。
Since the
より詳細には、スイッチエレメント108のバスコネクタ121は、mbバス109とnbバス110とが四方から連通しており、このように連通している複数のmbバス109の相互の接続関係と連通する複数のnbバス110の相互の接続関係とを制御する。
More specifically, in the bus connector 121 of the
このため、本形態のアレイ型プロセッサ100は、コードメモリ102にデータ設定されたオブジェクトコードに対応して状態管理部103がマトリクス回路部105のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに複数のプロセッサエレメント107は個々に設定自在なデータ処理で並列動作する。
For this reason, in the
なお、ここでは説明を簡略化するために各部が平面状に配列されている構造を例示しているが、実際には、上述のm/nbバス109,110とスイッチエレメント108とプロセッサエレメント107とを積層構造で重複させて形成するようなことも可能である。
Here, in order to simplify the description, a structure in which each part is arranged in a planar shape is illustrated. However, in practice, the above-described m /
入力制御回路122は、mbバス109からmbレジスタファイル113やmbALU115へのデータ入力の接続関係と、nbバス110からnbレジスタファイル114やnbALU116へのデータ入力の接続関係とを制御し、出力制御回路123は、mbレジスタファイル113やmbALU115からmbバス109へのデータ出力の接続関係と、nbレジスタファイル114やnbALU116からnbバス110へのデータ出力の接続関係とを制御する。
The input control circuit 122 controls the data input connection relationship from the
データ分配部104は、外部入力される一連の処理データをmbデータとnbデータとに分配し、このm/nbデータをスイッチエレメント108により接続関係が制御されたm/nbバス109,110から複数のプロセッサエレメント107の特定の一部に適宜入力する。
The
このプロセッサエレメント107の内部配線資源117は、インストラクションデコーダ112の動作制御に対応して、プロセッサエレメント107の内部でのmbレジスタファイル113およびmbALU115の接続関係とnbレジスタファイル114およびnbALU116の接続関係とを制御する。
The internal wiring resource 117 of the
mbレジスタファイル113は、内部配線資源117に制御される接続関係に対応して、mbバス109などから入力されるmbデータを一時保持してmbALU115などに出力する。nbレジスタファイル114は、内部配線資源117に制御される接続関係に対応して、nbバス110などから入力されるnbデータを一時保持してnbALU116などに出力する。
The
mbALU115は、インストラクションデコーダ112の動作制御に対応したデータ処理をmbデータで実行し、nbALU116は、インストラクションデコーダ112の動作制御に対応したデータ処理をnbデータで実行する。なお、プロセッサエレメント107は、上述のように内蔵されているm/nbレジスタファイル113,114でm/nbデータをデータ読書するが、必要により外部のデータメモリ106でも処理データをデータ読書する。
The
そして、本形態のアレイ型プロセッサ100を一部とした本形態のデータ処理システム200は、図1に示すように、アレイ型プロセッサ100、データ処理装置300、ソース供給手段201、オブジェクト供給手段202、データ入力手段203、等を具備している。
As shown in FIG. 1, the data processing system 200 according to the present embodiment, in which the
また、本形態のデータ処理装置300は、図3に示すように、コンピュータの主体となるハードウェアとしてCPU301を具備しており、このCPU301には、バスライン302により、ROM303、RAM304、HDD305、FD306が交換自在に装填されるFDD(FD Drive)307、CD−ROM308が交換自在に装填されるCDドライブ309、キーボード310、マウス311、ディスプレイ312、I/Fユニット313、等のハードウェアが接続されている。
As shown in FIG. 3, the
本形態のデータ処理装置300では、ROM303、RAM304、HDD305、交換自在なFD306、交換自在なCD−ROM308、等のハードウェアが情報記憶媒体に相当し、これらの少なくとも一個にCPU301のためのコンピュータプログラムや各種データがソフトウェアとして格納されている。
In the
例えば、CPU301に各種のデータ処理を実行させるコンピュータプログラムは、FD306やCD−ROM308に事前に格納されている。このようなソフトウェアはHDD305に事前にインストールされており、データ処理装置300の起動時にRAM304に複写されてCPU301にデータ読取される。
For example, computer programs that cause the
このようにCPU301が適正なコンピュータプログラムをデータ読取して各種のデータ処理を実行することにより、本形態のデータ処理装置300は、図1に示すように、ソース入力手段211、条件記憶手段212、オブジェクト生成手段213、オブジェクト出力手段214、等の各種手段を各種機能として論理的に具備している。
As described above, when the
データ処理システム200のソース供給手段201は、例えば、ソースコードが格納されたFD306からなり、C言語などの高級言語でアレイ型プロセッサ100が動作記述された一連のソースコードをデータ処理装置300のソース入力手段211に供給する。
The
このデータ処理装置300のソース入力手段211は、RAM304に格納されているコンピュータプログラムに対応してCPU301がFDD307を動作制御する機能などに相当し、ソース供給手段201からソースコードがデータ入力される。
The
条件記憶手段212は、上述のコンピュータプログラムに対応してCPU301がデータ認識するHDD305の記憶エリアなどに相当し、アレイ型プロセッサ100の物理構造や物理特性などに対応した各種の制約条件が事前にデータ登録されている。
The
オブジェクト生成手段213は、CPU301がコンピュータプログラムに対応して所定のデータ処理を実行する機能などに相当し、ソース入力手段211にデータ入力されたソースコードから条件記憶手段212の制約条件により、アレイ型プロセッサ100のマトリクス回路部105のコンテキストを順次切り換える一連のオブジェクトコードをデータ生成する。
The object generation unit 213 corresponds to a function of the
なお、オブジェクト生成手段213は、前述のようにアレイ型プロセッサ100に状態管理部103とマトリクス回路部105とが別個に形成されているので、この構造を反映した制約条件によりソースコードからオブジェクトコードをデータ生成するとき、図4に示すように、マトリクス回路部105に対応したデータパスと状態管理部103に対応した有限状態マシンとを分離する。
As described above, since the
また、詳細には後述するが、オブジェクト生成手段213は多段階の各種処理によりソースコードからオブジェクトコードをデータ生成し、その多段階の各種処理で条件記憶手段212から必要な制約条件を適宜参照するので、この条件記憶手段212にはオブジェクト生成手段213の各種処理に必要充分なデータ内容で各種の制約条件がデータ設定されている。
As will be described in detail later, the object generation unit 213 generates object code data from the source code through various multi-stage processes, and appropriately refers to necessary constraint conditions from the
オブジェクト出力手段214は、CPU301がコンピュータプログラムに対応してI/Fユニット313のデータ出力を制御する機能などに相当し、オブジェクト生成手段213でデータ生成された一連のオブジェクトコードをデータ処理システム200のオブジェクト供給手段202にデータ出力する。
The object output unit 214 corresponds to a function of the
このオブジェクト供給手段202は、データ処理装置300のI/Fユニット313とアレイ型プロセッサ100の状態管理部103とを接続した接続コネクタ(図示せず)などに相当し、データ処理装置300がデータ出力するオブジェクトコードをアレイ型プロセッサ100のI/Fユニット101にデータ入力する。
The
このアレイ型プロセッサ100のI/Fユニット101には、前述のようにコードメモリ102が接続されているので、このコードメモリ102でオブジェクトコードがデータ保持される。データ入力手段203は、例えば、所定のデータ発生回路(図示せず)からなり、一連の処理データを発生してアレイ型プロセッサ100のデータ分配部104に入力する。
Since the
本形態のデータ処理装置300のオブジェクト生成手段213は、図2に示すように、グラフ生成手段221、スケジュール生成手段222、記述生成手段223、リスト生成手段224、オブジェクト記憶手段225、状態変換手段226、処理配置手段227、コード変換手段228、配線変換手段229、等の各種手段からなる。
As shown in FIG. 2, the object generation unit 213 of the
グラフ生成手段221は、前述のC言語などで記述された一連のソースコードを言語解析してDFGをデータ生成し、スケジュール生成手段222は、グラフ生成手段221でデータ生成されたDFGから所定の制約条件により、図6に示すように、アレイ型プロセッサ100の順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成する。
The
より詳細には、図7に示すように、例えば、ソースコードに処理データが連携する複数のデータ処理が記述されているとき、図8に示すように、その複数のデータ処理が因果関係に対応して連携されたDFGが既存の手法でデータ生成される。 More specifically, as shown in FIG. 7, for example, when a plurality of data processes in which the processing data is linked are described in the source code, the plurality of data processes correspond to the causal relationship as shown in FIG. 8. As a result, the DFG linked together is generated by an existing method.
このようなDFGからCDFGがデータ生成されるとき、アレイ型プロセッサ100のプロセッサエレメント107の個数やm/nbデータバス109,110の遅延時間などが制約条件として参照され、図9(a)に示すように、これに対応してDFGの複数のデータ処理が順次遷移する複数段階の動作状態に順番にスケジューリングされる。
When CDFG data is generated from such DFG, the number of
このようにDFGの複数のノードが順番にスケジューリングされるとき、一つの動作状態で一度に並列実行される複数のデータ処理の個数が、制約条件であるプロセッサエレメント107の個数を超過する場合、その超過するデータ処理は次段の動作状態に移行される。
As described above, when a plurality of nodes of the DFG are scheduled in order, if the number of the plurality of data processes executed in parallel at one time in one operation state exceeds the number of
また、一つの動作状態で一度に連続実行される複数のデータ処理の累積時間が制約条件である動作状態のクロック間隔を超過する場合、そのクロック間隔を超過するデータ処理から以後のデータ処理は次段の動作状態に移行される。同様に、ある動作状態で連続に実行される複数のデータ処理に、ポート入力/出力、メモリアクセスや複数サイクル演算、などのように動作サイクルを跨ぐデータ処理が存在する場合、そのデータ処理が発生する時点で動作状態は次段に移行される。 In addition, when the cumulative time of multiple data processes that are continuously executed at one time in one operating state exceeds the clock interval of the operating state, which is a constraint, the data processing from the data processing exceeding that clock interval to the next Transition to stage operating state. Similarly, if multiple data processes that are executed continuously in a certain operating state include data processes that cross operation cycles, such as port input / output, memory access, and multi-cycle operations, the data processing occurs. At this point, the operating state is shifted to the next stage.
ここで、上述の演算個数とプロセッサエレメント107の個数との対比で動作状態を移行させるスケジューリングを以下に具体的に説明する。まず、本形態のアレイ型プロセッサ100がプロセッサエレメント107を二個だけ具備しており、比較対象とする従来のアレイ型プロセッサ(図示せず)が加算器と減算器とを一個ずつ具備していると想定する。
Here, the scheduling for shifting the operation state by comparing the number of operations described above with the number of
この場合、従来のアレイ型プロセッサは、一つの動作状態で一つの加算処理と一つの減算処理とを並列実行できるが、一つの動作状態で二つの加算処理や二つの減算処理を並列実行することはできない。一方、本形態のアレイ型プロセッサ100は、一つの動作状態で二つのデータ処理を並列実行することができ、その二つのデータ処理としては加算処理や減算処理などを自在に設定することができる。
In this case, the conventional array type processor can execute one addition process and one subtraction process in parallel in one operation state, but can execute two addition processes and two subtraction processes in parallel in one operation state. I can't. On the other hand, the
そして、図8に示すように、DFGに二つの加算処理が並列に存在し、これらの加算処理の出力データを入力データとする二つの減算処理が並列に存在する場合、従来のアレイ型プロセッサへのスケジューリング処理では、図9(b)に示すように、第一状態で第一の加算処理を実行し、第二状態で第一の減算処理と第二の加算処理とを並列実行し、第三状態で第二の減算処理を実行するようにCDFGがデータ生成される。 Then, as shown in FIG. 8, when two addition processes exist in parallel in the DFG and two subtraction processes using the output data of these addition processes as input data exist in parallel, the conventional array processor is used. In the scheduling process, as shown in FIG. 9B, the first addition process is executed in the first state, the first subtraction process and the second addition process are executed in parallel in the second state, CDFG data is generated so as to execute the second subtraction process in the three states.
一方、本形態のデータ処理装置300による本形態のアレイ型プロセッサ100へのスケジューリング処理では、同図(a)に示すように、第一状態に二個のプロセッサエレメント107で第一第二の加算処理を並列実行し、第二状態に第一第二の減算処理を並列実行するようにCDFGがデータ生成される。
On the other hand, in the scheduling process to the
さらに、CDFGが制約条件であるポート入力に対応してスケジューリングされるとともに、制約条件である遅延時間に対応してスケジューリングされる場合を以下に簡単に説明する。まず、制約条件として一つの動作状態にポート入力が一つしか存在しない場合、図10に示すように、ソースコードに複数のポート入力が記述されていると、図11に示すように、ソースコードの第一行目と第三行目とのポート入力はCDFGで別個の動作状態にスケジューリングされる。 Further, the case where the CDFG is scheduled corresponding to the port input as a constraint condition and scheduled according to the delay time as the constraint condition will be briefly described below. First, when there is only one port input in one operation state as a constraint condition, if a plurality of port inputs are described in the source code as shown in FIG. 10, the source code is shown in FIG. The first row and third row port inputs are scheduled to separate operating states in the CDFG.
また、一つの動作状態に許容される遅延時間が“30(nsec)”、加算処理の所要時間が“10(nsec)”、乗算処理の所要時間が“20(nsec)”、の場合、図10に示すように、ソースコードの第二行目に一つの加算処理と二つの乗算処理とが記述されていると、図11に示すように、その一つの加算処理と第一の乗算処理とは一つの動作状態にスケジューリングされるが、第二の乗算処理は次段の動作状態にスケジューリングされる。 Also, if the delay time allowed for one operating state is “30 (nsec)”, the time required for addition processing is “10 (nsec)”, and the time required for multiplication processing is “20 (nsec)”, As shown in FIG. 10, when one addition process and two multiplication processes are described in the second line of the source code, as shown in FIG. 11, the one addition process and the first multiplication process Is scheduled in one operating state, but the second multiplication process is scheduled in the next operating state.
なお、本形態のアレイ型プロセッサ100は、実際には前述のようにプロセッサエレメント107が演算器として8ビットのALU115と1ビットのALU116のみ具備しているので、32ビットの一つのデータ処理などは制約条件により四個の8ビットのALU115で並列実行される。
In the
この場合、一つの動作状態にスケジューリングされた32ビットの一つのデータ処理に対応して制約条件である8ビットのALU115の個数から四個が減算されるので、例えば、これが不足する場合には32ビットの一つのデータ処理は次段の動作状態に移行される。
In this case, four are subtracted from the number of 8-
また、本形態ではプロセッサエレメント107の各々がm/nbALU115,116を具備しているので、これに対応した制約条件により演算処理はmbALU115とnbALU116とに配分されてスケジューリングされる。さらに、プロセッサエレメント107にm/nbALU115,116以外にデータ処理を実行する回路資源が存在する場合、これも制約条件に組み込まれてスケジューリングに利用される。
In this embodiment, each of the
記述生成手段223は、スケジュール生成手段222でデータ生成されたCDFGから、所定の制約条件により複数段階の動作状態のRTL記述をマトリクス回路部105と状態管理部103とに分離してデータ生成する。このとき、プロセッサエレメント107やスイッチエレメント108の処理能力などが制約条件として参照され、図9(a)および図12に示すように、データ処理やデータ転送を実行するm/nbALU115,116などが割り付けられる。
The
ただし、この時点での割り付けは、どの処理がアレイ型プロセッサ100のどの種類の回路資源により実行されるかを区分するに留まり、どのデータ処理をどのm/nbALU115,116が実行するかを決定することはなく、複数段階の動作状態で連携する処理データをデータ保持するm/nbレジスタファイル113,114の位置を決定することもない。また、この割り付けではトライアンドエラーなどにより、複数段階の動作状態ごとに使用する回路資源が最少となる組み合わせがデータ生成される。
However, the allocation at this point is not limited to which process is executed by which type of circuit resource of the
リスト生成手段224は、記述生成手段223でデータ生成されたマトリクス回路部105のRTL記述から所定の制約条件により、複数段階の動作状態ごとのプロセッサエレメント107のネットリストを、図13に示すように、m/nbALU115,116などのm/nb回路資源ごとにデータ生成する。
As shown in FIG. 13, the
より具体的には、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とに割り付ける。
More specifically, when there are more “xb (x− (bit))” data processes than “mb” in the RTL description, the
オブジェクト記憶手段225は、CPU301がデータ認識するHDD305の記憶エリアなどに相当し、状態管理部103の複数段階の動作状態に対応した各種のオブジェクトコードと、マトリクス回路部105のプロセッサエレメント107やスイッチエレメント108の各種のオブジェクトコードと、が事前にデータ登録されている。
The object storage means 225 corresponds to a storage area of the
状態変換手段226は、リスト生成手段224でデータ生成されたマトリクス回路部105のネットリストに対応して、記述生成手段223でデータ生成された状態管理部103のRTL記述を対応するオブジェクトコードにデータ変換する。
The
処理配置手段227は、リスト生成手段224で複数段階の動作状態ごとにデータ生成されたマトリクス回路部105のネットリストを、マトリクス配列されている複数のプロセッサエレメント107に複数サイクルのコンテキストごとに割り付ける。
The
このとき、処理配置手段227は、図14に示すように、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをm/nbレジスタファイル113,114などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたm/nbレジスタファイル113,114の連続する複数サイクルのコンテキストでの位置を一致させることにより、図15に示すように、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部105の一定位置のm/nbレジスタファイル113,114に共通に割り付ける。
At this time, as shown in FIG. 14, the
その場合、連続する複数サイクルのコンテキストで処理データが連携するm/nbレジスタファイル113,114のネットリストは、同一の名称が付与されることで連携が表現される。また、上述のコンテキストごとでのネットリストの配置と、複数のコンテキストでのネットリストの配置とは、例えば、シミュレーテッド・アニーリング手法などの既存の反復改良アルゴリズムを適用することにより、反復処理で最適化される。 In this case, the netlists of the m / nb register files 113 and 114 in which the processing data cooperate in the context of a plurality of consecutive cycles are expressed by giving the same name. In addition, the arrangement of the netlist for each context described above and the arrangement of the netlist for a plurality of contexts are optimal in an iterative process by applying an existing iterative improvement algorithm such as a simulated annealing method. It becomes.
ただし、この処理配置手段227でのネットリストの配置はコンテキストごとに実行され、あるコンテキストに配置できないネットリストを他のコンテキストに移行させる処理などは実行されない。このため、あるコンテキストに必要なネットリストの全部を配置できない事態が処理配置手段227で発生すると、例えば、これを処理配置手段227がスケジュール生成手段222にデータ通知することにより、その通知データも制約条件としてスケジュール生成手段222がCDFGを再度生成する。
However, the placement of the netlist by the
また、ここでは説明を簡単とするために一個のm/nbレジスタファイル113,114がm/nbデータを一つだけ一時保持する場合を例示しているが、例えば、m/nbレジスタファイル113,114が相違するアドレスで複数のm/nbデータを独立にデータ読書できる場合には、一つのコンテキストでデータ書込とデータ読出とが同時に発生しないならば一個のm/nbレジスタファイル113,114が複数のコンテキストで複数のm/nbデータをデータ読書することが可能である。
Further, here, in order to simplify the explanation, a case where one m /
コード変換手段228は、処理配置手段227でプロセッサエレメント107に割り付けられたネットリストを対応するオブジェクトコードにデータ変換し、配線変換手段229は、コード変換手段228でデータ変換されたプロセッサエレメント107のオブジェクトコードに対応してスイッチエレメント108のネットリストをオブジェクトコードにデータ変換する。
The
上述したデータ処理装置300の各種手段は、必要によりFDD307やI/Fユニット312等のハードウェアを利用して実現されるが、その主体はRAM304等の情報記憶媒体に格納されたソフトウェアに対応して、データ処理装置300のハードウェアであるCPU301が機能することにより実現されている。
The various means of the
このようなソフトウェアは、例えば、アレイ型プロセッサ100の物理構造や物理特性などに対応した各種の制約条件をHDD305などにデータ記憶させる処理、FD306の格納データをFDD107にデータ読出させることなどでアレイ型プロセッサ100の動作記述のソースコードをデータ入力する処理、このデータ入力されたソースコードから制約条件によりアレイ型プロセッサ100のオブジェクトコードをデータ生成する処理、このデータ生成されたオブジェクトコードをI/Fユニット313などからデータ出力する処理、等のデータ処理をCPU301等に実行させるためのコンピュータプログラムとしてRAM304等の情報記憶媒体に格納されている。
Such software includes, for example, processing for storing various constraints corresponding to the physical structure and physical characteristics of the
さらに、上述のソースコードからオブジェクトコードをデータ生成するデータ処理のソフトウェアは、状態管理部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等の情報記憶媒体に格納されている。
Further, the data processing software for generating the object code from the source code described above is described in a process for storing the object code of the
なお、上述のようなコンピュータプログラムは、例えば、CD−ROM108などの情報記憶媒体にデータ格納されてデータ処理装置300にデータ供給されるが、その情報記憶媒体には条件記憶手段212の制約条件やオブジェクト記憶手段225のオブジェクトコードも構造データとしてデータ格納することが可能である。
Note that the computer program as described above is stored in an information storage medium such as the CD-
上述のような構成において、本形態のデータ処理システム200では、アレイ型プロセッサ100の動作記述のソースコードがソース供給手段201からデータ処理装置300にデータ供給されると、このデータ処理装置300はソースコードをオブジェクトコードに変換してアレイ型プロセッサ100にデータ供給する。
With the configuration as described above, in the data processing system 200 of this embodiment, when the source code of the operation description of the
このアレイ型プロセッサ100はデータ供給されたオブジェクトコードをデータ記憶するので、この状態でデータ入力手段203から一連の処理データが入力されると、その入力された処理データをオブジェクトコードに対応してデータ処理する。
Since this
より詳細には、本形態のデータ処理装置300には、アレイ型プロセッサ100の物理構造や物理特性などに対応した各種の制約条件と、状態管理部103やプロセッサエレメント107やスイッチエレメント108の各種のオブジェクトコードと、がデータ登録される。
More specifically, the
このような状態で、本形態のデータ処理装置300では、図16に示すように、C言語などでアレイ型プロセッサ100が動作記述された一連のソースコードがデータ入力されると(ステップS1)、図7および図8に示すように、そのソースコードが言語解析されてDFGがデータ生成される(ステップS2)。
In this state, in the
つぎに、アレイ型プロセッサ100のプロセッサエレメント107の個数やm/nbデータバス109,110の遅延時間などが、DFGからCDFGをデータ生成するための制約条件としてデータ読出され(ステップS3)、図6および図9(a)に示すように、この制約条件によりDFGからアレイ型プロセッサ100の順次遷移する複数段階の動作状態をスケジューリングしたCDFGがデータ生成される(ステップS4)。
Next, data such as the number of
つぎに、プロセッサエレメント107やスイッチエレメント108の処理能力などが、CDFGからRTL記述をデータ生成するための制約条件としてデータ読出され(ステップS5)、図12に示すように、この制約条件によりCDFGのデータ処理にm/nbALU115,116などが割り付けられ、複数段階の動作状態のRTL記述がマトリクス回路部105と状態管理部103とに分離されてデータ生成される(ステップS6)。
Next, the processing capability of the
つぎに、m/nbレジスタファイル113,114やm/nbALU115,116のビット数などが、RTL記述からネットリストをデータ生成するための制約条件としてデータ読出され(ステップS7)、図13に示すように、この制約条件によりマトリクス回路部105のRTL記述から複数段階の動作状態ごとのプロセッサエレメント107のネットリストがm/nbALU115,116などのm/nb回路資源ごとにデータ生成される(ステップS8)。
Next, the number of bits of the m / nb register files 113, 114 and m /
このように複数段階の動作状態ごとにマトリクス回路部105のネットリストがデータ生成されると、これに対応して状態管理部103のRTL記述が対応するオブジェクトコードにデータ変換されるので(ステップS9)、これで状態管理部103のオブジェクトコードがデータ生成される。
Thus, when the net list of the
つぎに、複数段階の動作状態ごとにデータ生成されたマトリクス回路部105のネットリストが、マトリクス配列されている複数のプロセッサエレメント107に複数サイクルのコンテキストごとに割り付けられ(ステップS10)、このプロセッサエレメント107に割り付けられたネットリストが対応するオブジェクトコードにデータ変換されるので(ステップS11)、これでプロセッサエレメント107のオブジェクトコードがデータ生成される。
Next, the net list of the
このようにプロセッサエレメント107のオブジェクトコードがデータ生成されると、これに対応してスイッチエレメント108のネットリストがオブジェクトコードにデータ変換される(ステップS12)。これでスイッチエレメント108のオブジェクトコードもデータ生成されるので、状態管理部103とプロセッサエレメント107とスイッチエレメント108とに対応したアレイ型プロセッサ100のオブジェクトコードが完成することになる(ステップS13)。
When the object code of the
このようにデータ処理装置300でデータ生成されたオブジェクトコードは、前述のようにアレイ型プロセッサ100にデータ設定されるので、このアレイ型プロセッサ100では、状態管理部103が外部入力されるオブジェクトコードを保持してプロセッサエレメント107ごとのインストラクションポインタを発生し、このインストラクションポインタでプロセッサエレメント107ごとにインストラクションメモリ111に格納されている複数の動作命令から一つが指定される。
Since the object code generated by the
この指定された動作命令がインストラクションデコーダ112でデコードされ、スイッチエレメント108による複数のプロセッサエレメント107の接続関係、内部配線資源117によるプロセッサエレメント107の内部での接続関係、m/nbALU115,116のデータ処理、等が制御されるので、これで本形態のアレイ型プロセッサ100は、オブジェクトコードに対応したデータ処理を実行するハードウェアの状態となる。
The designated operation instruction is decoded by the
このような状態で、データ入力手段203から外部入力される一連の処理データがデータ分配部104でmbデータとnbデータとに分配され、上述のように接続関係とデータ処理とが制御された複数のプロセッサエレメント107ごとにmbALU115とnbALU116とでデータ処理される。
In this state, a series of processing data externally input from the
本形態のアレイ型プロセッサ100は、上述のようにオブジェクトコードに対応してプロセッサエレメント107ごとに“8(bit)”からなるmbデータと“1(bit)”からなるnbデータとのデータ処理を並列に実行できるので、外部入力される一連の処理データのビット数が変化しても、これをビット数の多少により的確に配分して良好な効率で並列処理することができる。
As described above, the
また、本形態のアレイ型プロセッサ100は、プロセッサエレメント107ごとに形成されているm/nbレジスタファイル113,114が入力されるm/nbデータを一時保持して出力するので、プロセッサエレメント107ごとにm/nbALU115,116でデータ処理されるm/nbデータを各々専用のm/nbレジスタファイル114により無駄なく一時保持することができる。
In addition, the
しかも、本形態のアレイ型プロセッサ100は、“nb”が“1(bit)”からなるので、nbALU116により最少ビットでのデータ処理を実行することができ、処理データのビット数が各種に変化しても確実にデータ処理を実行することができる。
Moreover, in the
また、本形態のデータ処理システム200は、アレイ型プロセッサ100に処理データを入力するとき、ソースコードをデータ処理装置300に供給してオブジェクトコードをアレイ型プロセッサ100にデータ入力することができるので、アレイ型プロセッサ100の動作状態を各種にリアルタイムに切り換えることができる。
In addition, when the processing data is input to the
本形態のデータ処理システム200では、上述のようにアレイ型プロセッサ100はマトリクス回路部105と状態管理部103とを別個に具備しており、データ処理装置300はアレイ型プロセッサ100の動作記述の一連のソースコードからデータパスと有限状態マシンとを分離して一連のオブジェクトコードをデータ生成する。
In the data processing system 200 of the present embodiment, the
そして、そのデータパスとアレイ型プロセッサ100のマトリクス回路部105とが対応しており、有限状態マシンと状態管理部103とが対応しているので、データ処理装置300のソフトウェアとアレイ型プロセッサ100のハードウェアとの整合性が良好である。
Since the data path corresponds to the
本形態のアレイ型プロセッサ100は、その構造および動作が従来のCPUなどとは根本的に相違するので、そのオブジェクトコードの構造も従来のCPUなどとは根本的に相違している。しかし、本形態のデータ処理装置300は、前述のように一般的な手法でアレイ型プロセッサ100の動作状態が記述されたソースコードから、アレイ型プロセッサ100のオブジェクトコードを良好にデータ生成することができるので、本形態のアレイ型プロセッサ100を良好に動作させることができる。
Since the
特に、本形態のデータ処理装置300は、ソースコードからDFGをデータ生成して複数段階の動作状態ごとのCDFGにスケジューリングし、そのCDFGからデータ生成したネットリストを複数サイクルのコンテキストごとに割り付けるので、アレイ型プロセッサ100のコンテキストを動作サイクルごとに順次切り換えるオブジェクトコードをデータ生成することができる。
In particular, the
しかも、ソースコードからオブジェクトコードをデータ生成するときに有限状態マシンとデータパスとを分離するので、マトリクス回路部105と状態管理部103とを別個に具備しているアレイ型プロセッサ100のオブジェクトコードを良好にデータ生成することができる。
Moreover, since the finite state machine and the data path are separated when the object code is generated from the source code, the object code of the
さらに、マトリクス回路部105のRTL記述からプロセッサエレメント107のm/nbの回路資源のネットリストをデータ生成するので、mbデータ用とnbデータ用とに記述内容が分別されたアレイ型プロセッサ100のオブジェクトコードを良好にデータ生成することができる。
Further, since the net list of the m / nb circuit resources of the
しかも、RTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmbALU115とZ個のnbALU116とに割り付けるので、“xb”のデータ処理をm/nbALU115,116に適正な個数ずつ割り付けることができる。
Moreover, since “xb” data processing in the RTL description is assigned to
特に、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出するので、“xb”のデータ処理をビット数が多数のmbALU115に極力割り付けることができ、余数部分のみビット数が少数のnbALU116に割り付けることができる。しかも、上述の“nb”が“1(bit)”なので、mbALU115に割り付けられた“xb”のデータ処理の余数部分が何ビットであってもnbALU116に割り付けることができる。
In particular, since the integer part “Y” obtained by dividing “x” by “m” is calculated and then the integer “Z” obtained by dividing the remainder by “n” is calculated, the data of “xb” Processing can be assigned as much as possible to the
また、連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部105の一定位置のm/nbレジスタファイル113,114に共通に割り付けるので、アレイ型プロセッサ100の連続する複数サイクルのコンテキストで連携する処理データを一定位置のm/nbレジスタファイル113,114にデータ保持させるオブジェクトコードをデータ生成することができる。
In addition, since the netlist in which the processing data is linked in the context of a plurality of continuous cycles is commonly allocated to the m / nb register files 113 and 114 at a fixed position in the
特に、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをm/nbレジスタファイル113,114などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたm/nbレジスタファイル113,114の連続する複数サイクルのコンテキストでの位置を一致させるので、連携する処理データを一定位置のm/nbレジスタファイル113,114にデータ保持させるオブジェクトコードを所定のデータ処理でデータ生成することができる。 In particular, after assigning a netlist to the m / nb register files 113, 114, etc., regardless of the linkage of processing data for each context of a plurality of cycles, the netlist to which the processing data is linked is assigned by adjusting the allocation position. Since the positions of the m / nb register files 113 and 114 in the context of a plurality of consecutive cycles are matched, an object code for holding the associated processing data in the m / nb register files 113 and 114 at a predetermined position is set as a predetermined code. Data can be generated by data processing.
なお、本形態のデータ処理装置300のソースコードからオブジェクトコードをデータ生成するコンピュータプログラムはアレイ型プロセッサ100と一対一に対応しているので、そのコンピュータプログラムがデータ格納されたCD−ROM108などの情報記憶媒体は一個以上のアレイ型プロセッサ100とセットで販売することが好適である。
Since the computer program for generating object code from the source code of the
その場合、条件記憶手段212の制約条件やオブジェクト記憶手段225のオブジェクトコードもアレイ型プロセッサ100に対応するので、その制約条件やオブジェクトコードを構造データとしてコンピュータプログラムとともに情報記憶媒体にデータ格納することが好適である。
In that case, since the constraint condition of the
また、アレイ型プロセッサ100として複数種類の製品を販売するような場合、複数種類のアレイ型プロセッサ100で共通する一つのコンピュータプログラムを一個の情報記憶媒体にデータ格納して販売し、複数種類のアレイ型プロセッサ100を選択的に販売するときに、対応する制約条件やオブジェクトコードがデータ格納された複数種類の情報記憶媒体をともに販売することが好適である。
In addition, when a plurality of types of products are sold as the
なお、本発明は上記形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、上記形態ではソースコードからオブジェクトコードをデータ生成する一連の処理動作をデータ処理装置300が一つのコンピュータプログラムに対応して実行することを例示したが、ソースコードからRTL記述をデータ生成するデータ処理装置およびコンピュータプログラム、RTL記述からネットリストをデータ生成するデータ処理装置およびコンピュータプログラム、ネットリストからオブジェクトコードをデータ生成するデータ処理装置およびコンピュータプログラム、を別個とすることも可能である。
In addition, this invention is not limited to the said form, A various deformation | transformation is accept | permitted in the range which does not deviate from the summary. For example, in the above embodiment, it is exemplified that the
また、上記形態ではRTL記述の“xb”のデータ処理を“x=Ym+Zn”なるY個のmbALU115とZ個のnbALU116とに割り付けるとき、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数を“n”で除算した結果の整数“Z”を算出することにより、“xb”のデータ処理をビット数が多数のmbALU115に極力割り付け、余数部分のみビット数が少数のnbALU116に割り付けることを例示した。
Further, in the above embodiment, when the data processing of “xb” in the RTL description is assigned to
しかし、これでは“nb”が“1(bit)”で“mb”が“32(bit)”の場合に、“30(bit)”のデータ処理が30個のnbALU116で実行されるようなことが発生する。そこで、これを解消するためには、データ処理をm/nbALU115,116に割り付ける所定の閾値をデータ設定し、“x”を“m”で除算した結果の整数部分“Y”を算出してから、その余数が閾値より少数の場合に整数“Z”を算出し、余数が閾値以上の場合は“Y”に“1”を加算して“Z=0”とすることが好適である。
However, in this case, when “nb” is “1 (bit)” and “mb” is “32 (bit)”, data processing of “30 (bit)” is executed by 30
この場合、mbALU115に極力割り付けられた“xb”のデータ処理の余数部分を、ビット数に対応してm/nbALU115,116の適切な一方に割り付けることができるので、例えば、“nb”が“1(bit)”で“mb”が“32(bit)”の場合に、“9(bit)”以上のデータ処理はmbALU115で実行して“8(bit)”以下のデータ処理はnbALU116で実行するようなことが可能となる。
In this case, the remainder of “xb” data processing allocated to the
さらに、上記形態ではアレイ型プロセッサ100が“8(bit)”からなる“mb”と“1(bit)”からなる“nb”との二種類の回路資源を具備していることを例示したが、このような回路資源の種類の個数やビット数も各種に設定することが可能である。
Further, in the above embodiment, the
このような場合でも、適切な制約条件がデータ登録されることにより、データ処理装置300はアレイ型プロセッサ100に適切なオブジェクトコードをデータ生成することができる。例えば、アレイ型プロセッサがmbALU115しか具備しないならば、前述の“x”を“m”で除算した結果の整数部分“Y”を算出し、その余数が存在しないならば“xb”のデータ処理を“x=Ym”なるY個のmbALU115に割り付け、余数が存在するならば“x≒(Y+1)m”なる(Y+1)個のmbALU115に割り付けることが好適である。
Even in such a case, the
また、上記形態ではアレイ型プロセッサ100のプロセッサエレメント107がm/nbALU115,116でデータ処理を実行することを例示したが、これら以外にデータ処理を実行する回路資源をプロセッサエレメント107に形成することも可能である。
In the above embodiment, the
例えば、少なくともマスク回路によりmbデータとnbデータとのデータ操作を実行するDMU(Data Manipulation Unit)なる回路資源をプロセッサエレメント107に形成することも可能であり、このようなアレイ型プロセッサ100を本出願人は特願2001−263804号として出願している。このような場合でも、その回路資源に対応して制約条件をデータ設定することにより、データ処理装置300はアレイ型プロセッサ100のオブジェクトコードを適切にデータ生成することができる。
For example, a circuit resource called DMU (Data Manipulation Unit) for executing data manipulation of mb data and nb data by at least a mask circuit can be formed in the
さらに、上記形態ではアレイ型プロセッサ100がマトリクス回路部105に配列されたプロセッサエレメント107のみでデータ処理を実行することを例示したが、マトリクス回路部105の外側に専用の演算回路を形成することも可能である。
Further, in the above embodiment, the
例えば、一般に乗算器は回路規模が過大なので、マトリクス回路部105の外部に配置して必要によりプロセッサエレメント107からアクセスさせることが可能である。このような場合でも、その回路資源に対応して制約条件をデータ設定することにより、データ処理装置300はアレイ型プロセッサ100のオブジェクトコードを適切にデータ生成することができる。ただし、上述のようにプロセッサエレメント107がマトリクス回路部105の外部回路にアクセスするときは、これがDFGをCDFGにスケジューリングするときの状態遷移の制約条件となる。
For example, since the circuit scale of a multiplier is generally excessive, it can be arranged outside the
さらに、上記形態では処理回路であるプロセッサエレメント107が演算器であるm/nbALU115,116からなるアレイ型プロセッサ100を並列演算装置として例示したが、この並列演算装置を処理回路がLUT(Look Up Table)からなるDRL(Dynamic Reconfigurable Logic)とすることも可能である。
Furthermore, in the above embodiment, the
上記形態のアレイ型プロセッサ100では、プロセッサエレメント107にデータ設定する動作命令をデータ更新することでハードウェア構成を変更するが、DRLではLUTの登録内容をデータ更新することでハードウェア構成を変更するので、これを実現するオブジェクトコードをデータ処理装置300でデータ生成することが可能である。
In the array-
また、上記形態ではスイッチエレメント108のインストラクションメモリが隣接するプロセッサエレメント107のインストラクションメモリ111で兼用されており、状態管理部103がプロセッサエレメント107とスイッチエレメント108との一組のインストラクションポインタを対応するプロセッサエレメント107のインストラクションメモリ111に供給することを例示した。
In the above embodiment, the instruction memory of the
しかし、プロセッサエレメント107のインストラクションメモリ111とは別個にスイッチエレメント108が自身専用のインストラクションメモリを具備し、状態管理部103がプロセッサエレメント107とスイッチエレメント108とのインストラクションポインタを対応するプロセッサエレメント107とスイッチエレメント108とのインストラクションメモリ111等に別個に供給することも可能である。
However, separately from the
また、プロセッサエレメント107のインストラクションメモリをスイッチエレメント108のインストラクションメモリで兼用し、状態管理部103がプロセッサエレメント107とスイッチエレメント108との一組のインストラクションポインタを対応するスイッチエレメント108のインストラクションメモリに供給することも可能である。
Further, the instruction memory of the
さらに、上記形態ではアレイ型プロセッサ100に状態管理部103が一個のみ形成されていることを例示したが、これを複数としてプロセッサエレメント107を所定個数ずつ管理させることも可能である。このような場合、複数の状態管理部103を代表する一個が統合管理することや、複数の状態管理部103を統合管理する上位管理部(図示せず)を形成することが好適である。
Furthermore, in the above embodiment, it is exemplified that only one
また、上記形態では連続する複数サイクルのコンテキストで処理データが連携するネットリストをマトリクス回路部105の一定位置のm/nbレジスタファイル113,114に共通に割り付けるため、最初に複数サイクルのコンテキストごとに処理データの連携に関係なくネットリストをm/nbレジスタファイル113,114などに割り付けてから、この割付位置を調整して処理データが連携するネットリストが割り付けられたm/nbレジスタファイル113,114の連続する複数サイクルのコンテキストでの位置を一致させることを例示した。
Further, in the above embodiment, since the netlist in which the processing data is linked in the context of a plurality of continuous cycles is assigned in common to the m / nb register files 113 and 114 at a fixed position in the
しかし、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるm/nbレジスタファイル113,114のマトリクス回路部105での位置を固定してから、他のネットリストを他のm/nbレジスタファイル113,114などに複数サイクルのコンテキストごとに割り付けることも可能である。
However, after fixing the position in the
また、最初に複数サイクルのコンテキストで処理データが連携するネットリストが共通に割り付けられるm/nbレジスタファイル113,114のマトリクス回路部105での相対位置を設定してから、この相対位置を維持したまま他のネットリストを他のm/nbレジスタファイル113,114などに複数サイクルのコンテキストごとに割り付けることも可能である。
In addition, the relative position in the
これらの場合、コンテキストごとの回路資源の使用範囲を削減することができるので、図17(a)に示すように、マトリクス回路部105に配列されているプロセッサエレメント107が少数でもコンテキストごとにネットリストを割り付けることが可能となる。
In these cases, the range of use of circuit resources for each context can be reduced, so that as shown in FIG. 17A, even if there are a small number of
なお、同図(b)に示すように、従来のFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)では、上述のような複数サイクルのコンテキストごとのネットリストを一面の回路資源に割り付けることになるので、多数の専用の回路資源が必要であり、一度形成したハードウェアを変更できないのでデータ処理の汎用性もない。 Note that, as shown in FIG. 4B, in the conventional FPGA (Field Programmable Gate Array) and ASIC (Application Specific Integrated Circuit), the netlist for each of the multiple cycles of context as described above is allocated to one circuit resource. Therefore, a large number of dedicated circuit resources are required, and once formed hardware cannot be changed, there is no versatility of data processing.
しかし、本形態のアレイ型プロセッサ100では、オブジェクトコードによりハードウェアを変更できるのでデータ処理の汎用性が良好であり、一連のデータ処理を複数サイクルのコンテキストごとに時分割に実行するので、一面に配列された回路資源の回路規模が削減されている。
However, in the
さらに、上記形態では状態管理部103で管理される順次遷移する複数段階の動作状態とマトリクス回路部105で順次切り換えられる動作サイクルごとのコンテキストとが一対一に対応することを例示したが、例えば、制約条件により複数段階の動作状態から一つのコンテキストに割り付けられる複数を検出し、この検出された複数の動作状態を一つのコンテキストに割り付けることも可能である。
Furthermore, in the above-described form, it has been exemplified that the operation states of the sequential stages managed by the
例えば、図15に示すように、連続する二つのコンテキストに割り付けられた連続する二つの動作状態で、m/nbレジスタファイル113,114の位置は共通しているがm/nbALU115,116の位置が重複していない場合、図18に示すように、その連続する二つの動作状態は一つのコンテキストに割り付けることが可能である。
For example, as shown in FIG. 15, in two consecutive operating states assigned to two consecutive contexts, the positions of the m / nb register files 113 and 114 are the same, but the positions of the m /
より具体的には、前述のように動作状態のスケジューリングは複数種類の制約条件に対応して実行され、メモリアクセスなどが発生した場合には割り付けるm/nbALU115,116の割付個数に関係なく動作状態が移行するので、図19(a)に示すように、m/nbALU115,116の割付個数が少数の動作状態が発生することがある。このようにデータ生成された複数の動作状態を複数のコンテキストに一対一に割り付けると、あるコンテキストではアレイ型プロセッサ100に配列されているm/nbALU115,116の極一部しか動作しない状態が発生する。
More specifically, as described above, the scheduling of the operation state is executed according to a plurality of types of constraint conditions, and the operation state regardless of the number of allocated m /
そこで、連続する複数の動作状態でm/nbALU115,116の割付個数を順次積算し、その積算個数が所定の許容個数を超過するごとにコンテキストを移行すれば、同図(b)に示すように、複数のコンテキストの各々に極力多数のm/nbALU115,116を割り付けることができる。
Therefore, if the allocated number of m /
例えば、第一から第三の動作状態が第一のコンテキストに割り付けられ、第五および第六の動作状態が第三のコンテキストに割り付けられた場合、そのオブジェクトプログラムに対応して動作するアレイ型プロセッサ100では、図20に示すように、第一の動作サイクルでは第一のコンテキストの第一の動作状態のデータ処理が実行され、第二の動作サイクルでは第一のコンテキストの第二の動作状態のデータ処理が実行され、第三の動作サイクルでは第一のコンテキストの第三の動作状態のデータ処理が実行される。 For example, when the first to third operation states are assigned to the first context and the fifth and sixth operation states are assigned to the third context, the array type processor that operates corresponding to the object program At 100, as shown in FIG. 20, in the first operation cycle, data processing of the first operation state of the first context is executed, and in the second operation cycle, the second operation state of the first context is executed. Data processing is executed, and in the third operation cycle, data processing in the third operation state of the first context is executed.
第四の動作サイクルでは第一のコンテキストが第二のコンテキストに切り換えられて第四の動作状態のデータ処理が実行され、第五の動作サイクルでは第二のコンテキストが第三のコンテキストに切り換えられて第五の動作状態のデータ処理が実行される。 In the fourth operation cycle, the first context is switched to the second context and the data processing of the fourth operation state is executed, and in the fifth operation cycle, the second context is switched to the third context. Data processing in the fifth operation state is executed.
上述のように複数の動作状態を一つのコンテキストに割り付けると、アレイ型プロセッサ100でのデータ処理の所要時間は一つの動作状態を一つのコンテキストに割り付けた場合と同一であるが、オブジェクトコードにデータ設定されるコンテキストの個数が削減されるので、オブジェクトコードのデータ容量を圧縮することができる。
As described above, when a plurality of operation states are assigned to one context, the time required for data processing in the
さらに、アレイ型プロセッサ100のオブジェクトコードを一時保持するコードメモリ102の記憶容量も削減することができ、状態管理部103によるマトリクス回路部105のコンテキストの切換回数も削減できるので、その消費電力も縮小することができる。
Further, the storage capacity of the
また、上記には一つのコンテキストに連続する二つの動作状態を割り付けることを例示したが、二つ以上の動作状態を割り付けることも可能であり、図21および図22に示すように、連続しない複数の動作状態を割り付けることも可能である。この場合は、状態管理部103によるマトリクス回路部105のコンテキストの切換回数は削減できない場合もあるが、オブジェクトコードにデータ設定されるコンテキストの個数は削減することができる。
Further, although the above has exemplified the assignment of two consecutive operation states to one context, it is also possible to assign two or more operation states, as shown in FIG. 21 and FIG. It is also possible to assign the operation state. In this case, the number of context switching of the
さらに、上記形態ではデータ処理装置300でデータ生成されたオブジェクトコードがアレイ型プロセッサ100に一時保持されることを例示したが、例えば、データ処理装置300がデータ生成するオブジェクトコードに対応してアレイ型プロセッサ100がリアルタイムに動作することも不可能ではない。
Furthermore, although the object code generated by the
また、上記形態ではコードメモリ102に一時保持されたオブジェクトコードに対応して、状態管理部103が動作サイクルごとにマトリクス回路部105のコンテキストを切換制御することを例示したが、マトリクス回路部105が複数のコンテキストをデータ記憶して動作サイクルごとに一つずつ対応動作を実行することも可能である。
In the above embodiment, the
このとき、状態管理部103はマトリクス回路部105にデータ記憶された複数のコンテキストの全部を複数サイクルごとにデータ更新することも可能であるが、マトリクス回路部105がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に、対応動作が実行されたコンテキストを状態管理部103が新規のコンテキストにデータ更新することも可能である。この場合、マトリクス回路部105は所定個数のコンテキストしかデータ保持しないが、コンテキストの対応動作を個数に制限なく連続的に実行することができる。
At this time, the
例えば、図23に示すように、マトリクス回路部105が第一から第六のコンテキストをデータ保持して順番にデータ処理を実行する場合、第四のコンテキストのデータ処理を実行しているときには、状態管理部103はデータ処理が終了した第一から第三のコンテキストをデータ更新することができる。
For example, as shown in FIG. 23, when the
ただし、図22に示すように、一つのコンテキストを複数の動作サイクルで繰り返し使用するような場合もあるので、例えば、図24に示すように、マトリクス回路部105がデータ保持した第一から第六のコンテキストのデータ処理を順番に実行してから、第一から第三のコンテキストのデータ処理を再度実行するような場合には、状態管理部103はデータ処理が終了した第四から第五のコンテキストをデータ更新することができる。
However, as shown in FIG. 22, there is a case where one context is repeatedly used in a plurality of operation cycles. For example, as shown in FIG. 24, the first to sixth data held by the
上述のような動作をアレイ型プロセッサ100に実行させるためには、マトリクス回路部105がデータ記憶した所定個数のコンテキストの一つで対応動作を実行している最中に、対応動作が実行されたコンテキストを状態管理部103が新規のコンテキストにデータ更新するように、データ処理装置300がCDFGをデータ生成すれば、このCDFGからデータ生成されたオブジェクトコードに対応してアレイ型プロセッサ100に上述の動作を実行させることができる。
In order to cause the
さらに、上記形態ではRAM304等に格納されているコンピュータプログラムに対応してCPU301が動作することにより、データ処理装置300の各種機能として各種手段が論理的に実現されることを例示した。しかし、このような各種手段の各々を固有のハードウェアとして形成することも可能であり、一部をソフトウェアとしてRAM304等に格納するとともに一部をハードウェアとして形成することも可能である。
Furthermore, in the above embodiment, it is exemplified that various means are logically realized as various functions of the
100 アレイ型プロセッサ
103 状態管理部
107 プロセッサエレメント
108 スイッチエレメント
113 mb回路資源であるmbレジスタファイル
114 nb回路資源であるnbレジスタファイル
115 mb回路資源であるmbALU
116 nb回路資源であるnbALU
200 データ処理システム
201 ソース供給手段
202 オブジェクト供給手段
203 データ入力手段
211 ソース入力手段
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
100
116 nbALU which is nb circuit resource
200
303 ROM as an information storage medium
304 RAM as an information storage medium
305 HDD as information storage medium
306 FD as an information storage medium
308 CD-ROM as information storage medium
Claims (18)
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
前記ソースコードがデータ入力されるソース入力手段と、
前記データ入力された前記ソースコードから、前記動作状態ごとに前記コンテキストを順次切り換える前記オブジェクトコードを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するオブジェクト生成手段と、
前記データ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段と、
を具備しているデータ処理装置。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device comprising: a matrix circuit unit in which a plurality of wiring circuits are arranged in a matrix; and a state management unit that sequentially switches a context of the matrix circuit unit in response to a second operation instruction for each operation cycle. Context including the first operation instruction for each operation state in which a plurality of processing circuits and a plurality of the wiring circuits are sequentially switched from a series of source codes whose operations are described in a high-level language, and the second operation instruction A data processing device for generating data of a series of object codes including at least
Condition storage means in which constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device are registered in advance,
Source input means for inputting the source code data;
The object code for sequentially switching the context for each operation state is separated from the source code inputted with the data by separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit. Object generation means for generating data so as to satisfy the constraint conditions;
Object output means for outputting the data of the generated object code;
A data processing apparatus comprising:
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
前記ソースコードがデータ入力されるソース入力手段と、
前記データ入力された前記ソースコードから、前記動作状態ごとに前記コンテキストを順次切り換える前記RTL記述を、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するRTL生成手段と、
前記データ生成された前記RTL記述をデータ出力するRTL出力手段と、
を具備しているデータ処理装置。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device comprising: a matrix circuit unit in which a plurality of wiring circuits are arranged in a matrix; and a state management unit that sequentially switches a context of the matrix circuit unit in response to a second operation instruction for each operation cycle. RTL (Register Transfer Level) description of the parallel processing circuit is generated for each operation state in which the plurality of processing circuits and the plurality of wiring circuits are sequentially switched from a series of source codes whose operations are described in a high-level language. A data processing device,
Condition storage means in which constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device are registered in advance,
Source input means for inputting the source code data;
The RTL description for sequentially switching the context for each operation state is separated from the source code inputted with the data by separating the data path corresponding to the matrix circuit portion and the finite state machine corresponding to the state management portion. RTL generation means for generating data so as to satisfy the constraint conditions;
RTL output means for outputting the data-generated RTL description;
A data processing apparatus comprising:
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
前記RTL記述がデータ入力されるRTL入力手段と、
前記データ入力された前記RTL記述から、前記動作状態ごとに前記コンテキストを順次切り換える前記ネットリストを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するネットリスト生成手段と、
前記データ生成された前記ネットリストをデータ出力するネットリスト出力手段と、
を具備しているデータ処理装置。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device comprising: a matrix circuit unit in which a plurality of wiring circuits are arranged in a matrix; and a state management unit that sequentially switches a context of the matrix circuit unit in response to a second operation instruction for each operation cycle. A data processing device that generates a netlist of circuit resources included in the parallel processing device for each operation state in which a plurality of processing circuits and a plurality of wiring circuits are sequentially switched from an RTL description,
Condition storage means in which constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device are registered in advance,
RTL input means for inputting data of the RTL description;
The netlist for sequentially switching the context for each operation state is separated from the RTL description inputted with the data, by separating the data path corresponding to the matrix circuit portion and the finite state machine corresponding to the state management portion. Netlist generating means for generating data so as to satisfy the constraint conditions;
Netlist output means for outputting data of the generated netlist;
A data processing apparatus comprising:
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件が事前にデータ登録されている条件記憶手段と、
前記ネットリストがデータ入力されるネットリスト入力手段と、
前記データ入力された前記ネットリストから、前記動作状態ごとに前記コンテキストを順次切り換える前記オブジェクトコードを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するオブジェクト生成手段と、
前記データ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段と、
を具備しているデータ処理装置。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device that separately includes a matrix circuit section in which a plurality of wiring circuits are arranged in a matrix and a state management section that sequentially switches the context of the matrix circuit section in response to a second operation instruction for each operation cycle A series including at least a context including the first operation instruction and the second operation instruction for each operation state in which the plurality of processing circuits and the plurality of wiring circuits are sequentially switched from a net list of circuit resources provided. A data processing device for generating object code data,
Condition storage means in which constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device are registered in advance,
Netlist input means for inputting the netlist data;
The object code for sequentially switching the context for each operation state is separated from the data input netlist by separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit. Object generation means for generating data so as to satisfy the constraint conditions;
Object output means for outputting the data of the generated object code;
A data processing apparatus comprising:
請求項1乃至4のいずれか一項に記載のデータ処理装置。 The constraint conditions include the number of the plurality of processing circuits, the number of input ports of the processing circuit, the presence or absence of usable circuit resources of the processing circuit, the processing capability of the processing circuit or the wiring circuit, and the number of wiring circuits 5. The data processing apparatus according to claim 1, comprising at least one of a delay time, the number of bits of the circuit resource, and a clock interval for switching the operation state. 6.
前記条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と前記第1の動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応して前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、
前記ソース入力手段が、前記並列演算装置の動作が高級言語で記述された一連のソースコードをデータ入力する工程と、
前記オブジェクト生成手段が、前記データ入力された前記ソースコードから、複数の前記処理回路と複数の前記配線回路との順次切り換わる動作状態ごとの前記第1の動作命令からなるコンテキスト及び前記第2の動作命令を少なくとも内包し、前記動作状態ごとに前記コンテキストを順次切り換える一連の前記オブジェクトコードを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成する工程と、
前記オブジェクト出力手段が、前記データ生成された前記オブジェクトコードをデータ出力する工程と、
を具備しているデータ処理方法。 Condition storage unit, a data processing method source input means, the object generation means, and the data processing apparatus comprising an object output means for generating an object code,
The condition storage means includes a plurality of processing circuits that individually execute data processing in response to first operation instructions set individually, and a plurality of processing circuits that correspond to the first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control connection relations are arranged in a matrix; and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to a second operation command; The constraint condition corresponding to at least the physical structure and the physical characteristics of the parallel processing device separately provided is registered as data,
The source input means, the steps of operation of the parallel arithmetic unit for data entry a set of source code written in a high level language,
The object generation means, wherein the data input the source code consists of the first operation command for each sequential cutting switched operating state of the plurality of the processing circuit and a plurality of the wiring circuit context and the second A series of the object code including at least an operation instruction and sequentially switching the context for each operation state, separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit, Generating data so as to satisfy the constraints;
The object output means, the steps of data output the object code the is data generated,
A data processing method comprising:
前記条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と前記第1の動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応して前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、
前記ソース入力手段が、前記並列演算装置の動作が高級言語で記述された一連のソースコードをデータ入力する工程と、
前記RTL生成手段が、前記データ入力された前記ソースコードから、複数の前記処理回路と複数の前記配線回路との順次切り換わる動作状態ごとの前記第1の動作命令からなるコンテキスト及び前記第2の動作命令を少なくとも内包し、前記動作状態ごとに前記コンテキストを順次切り換える一連の前記RTL記述を、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成する工程と、
前記RTL出力手段が、前記データ生成された前記RTL記述をデータ出力する工程と、
を具備しているデータ処理方法。 Condition storage unit, a data processing method source input means, RTL generation means, and the data processing apparatus provided with RTL output means generates the RTL description,
The condition storage means includes a plurality of processing circuits that individually execute data processing in response to first operation instructions set individually, and a plurality of processing circuits that correspond to the first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control connection relations are arranged in a matrix; and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to a second operation command; The constraint condition corresponding to at least the physical structure and the physical characteristics of the parallel processing device separately provided is registered as data,
The source input means, the steps of operation of the parallel arithmetic unit for data entry a set of source code written in a high level language,
The RTL generation means, wherein the data input the source code consists of the first operation command for each sequential cutting switched operating state of the plurality of the processing circuit and a plurality of the wiring circuit context and the second A series of RTL descriptions that include at least an operation instruction and sequentially switch the context for each operation state, separate a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit, Generating data so as to satisfy the constraints;
The RTL output means for outputting the data-generated RTL description;
A data processing method comprising:
前記条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と前記第1の動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応して前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、
前記RTL入力手段が、前記並列演算装置の動作が高級言語で記述された一連のRTL記述をデータ入力する工程と、
前記ネットリスト生成手段が、前記データ入力された前記RTL記述から、複数の前記処理回路と複数の前記配線回路との順次切り換わる動作状態ごとに前記コンテキストを順次切り換える、前記並列演算装置が備える回路資源の前記ネットリストを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成する工程と、
前記ネットリスト出力手段が、前記データ生成された前記ネットリストをデータ出力する工程と、
を具備しているデータ処理方法。 Condition storage unit, RTL input means, the net list generating means, and a data processing method in which the data processing apparatus comprising a netlist output means generates a netlist,
The condition storage means includes a plurality of processing circuits that individually execute data processing in response to first operation instructions set individually, and a plurality of processing circuits that correspond to the first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control connection relations are arranged in a matrix; and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to a second operation command; The constraint condition corresponding to at least the physical structure and the physical characteristics of the parallel processing device separately provided is registered as data,
The RTL input means, the steps of operation of the parallel arithmetic unit for data entry a set of RTL descriptions written in high-level language,
The net list generating means, wherein the data input the RTL description, sequentially switching the context for each successively cut switched operating state of the plurality of the processing circuit and a plurality of said wiring circuit, the parallel operation device comprises circuitry Separating the data netlist of resources from a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit, and generating data so as to satisfy the constraints;
The netlist output means, the steps of data output the netlist said the data generated,
A data processing method comprising:
前記条件記憶手段には、個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と前記第1の動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応して前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部とを別個に具備する並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件がデータ登録されており、
前記ネットリスト入力手段が、並列演算装置の動作が高級言語で記述された一連のネットリストをデータ入力する工程と、
前記オブジェクト生成手段が、前記データ入力された前記ネットリストから、複数の前記処理回路と複数の前記配線回路との順次切り換わる動作状態ごとの前記第1の動作命令からなるコンテキスト及び前記第2の動作命令を少なくとも内包し、前記動作状態ごとに前記コンテキストを順次切り換える一連の前記オブジェクトコードを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成する工程、
前記オブジェクト出力手段が、前記データ生成された前記オブジェクトコードをデータ出力する工程と、
を具備しているデータ処理方法。 Condition storage unit, a data processing method netlist input means, the object generation means, and the data processing apparatus comprising an object output means for generating an object code,
The condition storage means includes a plurality of processing circuits that individually execute data processing in response to first operation instructions set individually, and a plurality of processing circuits that correspond to the first operation instructions. A matrix circuit unit in which a plurality of wiring circuits that individually switch and control connection relations are arranged in a matrix; and a state management unit that sequentially switches the context of the matrix circuit unit for each operation cycle in response to a second operation command; The constraint condition corresponding to at least the physical structure and the physical characteristics of the parallel processing device separately provided is registered as data,
The netlist input means, the steps of data input a series of netlist operation of the parallel arithmetic unit written in a high-level language,
The object generation means, wherein the data input the netlist, composed of the first operation command for each sequential cutting switched operating state of the plurality of the processing circuit and a plurality of the wiring circuit context and the second A series of the object code including at least an operation instruction and sequentially switching the context for each operation state, separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit, Generating data so as to satisfy the constraints,
The object output means, the steps of data output the object code the is data generated,
A data processing method comprising:
請求項6乃至9のいずれか一項に記載のデータ処理方法。 The constraint conditions include the number of the plurality of processing circuits, the number of input ports of the processing circuit, the presence or absence of usable circuit resources of the processing circuit, the processing capability of the processing circuit or the wiring circuit, and the number of wiring circuits The data processing method according to any one of claims 6 to 9, including at least one of a delay time, the number of bits of the circuit resource, and an interval of clocks for switching the operation state.
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、
前記ソースコードをデータ入力するソース入力手段、
前記データ入力された前記ソースコードから、前記動作状態ごとに前記コンテキストを順次切り換える前記オブジェクトコードを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を参照し、データ生成するオブジェクト生成手段、
前記データ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段、
を具備するデータ処理装置として機能させるためのコンピュータプログラム。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device comprising: a matrix circuit unit in which a plurality of wiring circuits are arranged in a matrix; and a state management unit that sequentially switches a context of the matrix circuit unit in response to a second operation instruction for each operation cycle. Context including the first operation instruction for each operation state in which a plurality of processing circuits and a plurality of the wiring circuits are sequentially switched from a series of source codes whose operations are described in a high-level language, and the second operation instruction a set of object code that is at least contained to data generation, and the computer,
Condition storage means for registering data of constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device;
Source input means for inputting the source code as data;
The object code for sequentially switching the context for each operation state is separated from the source code inputted with the data by separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit. , An object generation means for generating data referring to the constraint condition,
An object output means for outputting the data of the generated object code;
A computer program for causing a data processing apparatus to function.
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、
前記ソースコードをデータ入力するソース入力手段、
前記データ入力された前記ソースコードから、前記動作状態ごとに前記コンテキストを順次切り換える前記RTL記述を、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するRTL生成手段、
前記データ生成された前記RTL記述をデータ出力するRTL出力手段、
を具備するデータ処理装置として機能させるためのコンピュータプログラム。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device comprising: a matrix circuit unit in which a plurality of wiring circuits are arranged in a matrix; and a state management unit that sequentially switches a context of the matrix circuit unit in response to a second operation instruction for each operation cycle. operation from a series of source code written in a high level language, RTL description of the parallel processing circuit of each successively cut switched operating state of the plurality of the processing circuit and a plurality of the wiring circuit to data generation, computer The
Condition storage means for registering data of constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device;
Source input means for inputting the source code as data;
The RTL description for sequentially switching the context for each operation state is separated from the source code inputted with the data by separating the data path corresponding to the matrix circuit portion and the finite state machine corresponding to the state management portion. RTL generation means for generating data so as to satisfy the constraint conditions,
RTL output means for outputting the data-generated RTL description;
A computer program for causing a data processing apparatus to function.
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、
前記RTL記述をデータ入力するRTL入力手段、
前記データ入力された前記RTL記述から、前記動作状態ごとに前記コンテキストを順次切り換える前記ネットリストを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するネットリスト生成手段、
前記データ生成された前記ネットリストをデータ出力するネットリスト出力手段、
を具備するデータ処理装置として機能させるためのコンピュータプログラム。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device comprising: a matrix circuit unit in which a plurality of wiring circuits are arranged in a matrix; and a state management unit that sequentially switches a context of the matrix circuit unit in response to a second operation instruction for each operation cycle. from RTL description, for each successively cut switched operating state of the plurality of the processing circuit and a plurality of said wiring circuit, a netlist of a circuit resource the parallel operation device comprises for data generation, the computer,
Condition storage means for registering data of constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device;
RTL input means for inputting data of the RTL description;
The netlist for sequentially switching the context for each operation state is separated from the RTL description inputted with the data, by separating the data path corresponding to the matrix circuit portion and the finite state machine corresponding to the state management portion. , Netlist generation means for generating data so as to satisfy the constraint conditions,
Netlist output means for outputting data of the generated netlist;
A computer program for causing a data processing apparatus to function.
前記並列演算装置の少なくとも物理構造と物理特性とに対応した制約条件をデータ登録する条件記憶手段、
前記ネットリストをデータ入力するネットリスト入力手段、
前記データ入力された前記ネットリストから、前記動作状態ごとに前記コンテキストを順次切り換える前記オブジェクトコードを、前記マトリクス回路部に対応したデータパスと前記状態管理部に対応した有限状態マシンとを分離して、前記制約条件を満足するように、データ生成するオブジェクト生成手段、
前記データ生成された前記オブジェクトコードをデータ出力するオブジェクト出力手段、
を具備するデータ処理装置として機能させるためのコンピュータプログラム。 Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. A parallel processing device that separately includes a matrix circuit section in which a plurality of wiring circuits are arranged in a matrix and a state management section that sequentially switches the context of the matrix circuit section in response to a second operation instruction for each operation cycle A series including at least a context including the first operation instruction and the second operation instruction for each operation state in which the plurality of processing circuits and the plurality of wiring circuits are sequentially switched from a net list of circuit resources provided. to the object code data generation, the computer,
Condition storage means for registering data of constraint conditions corresponding to at least the physical structure and physical characteristics of the parallel computing device;
Net list input means for inputting data into the net list;
The object code for sequentially switching the context for each operation state is separated from the data input netlist by separating a data path corresponding to the matrix circuit unit and a finite state machine corresponding to the state management unit. Object generation means for generating data so as to satisfy the constraint conditions;
An object output means for outputting the data of the generated object code;
A computer program for causing a data processing apparatus to function.
請求項11乃至14のいずれか一項に記載のコンピュータプログラム。 The constraint conditions include the number of the plurality of processing circuits, the number of input ports of the processing circuit, the presence or absence of usable circuit resources of the processing circuit, the processing capability of the processing circuit or the wiring circuit, and the number of wiring circuits The computer program according to claim 11, comprising at least one of a delay time, the number of bits of the circuit resource, and an interval of clocks for switching the operation state.
個々にデータ設定される第1の動作命令に対応してデータ処理を個々に実行する複数の処理回路と前記第1の動作命令に対応して複数の前記処理回路の接続関係を個々に切換制御する複数の配線回路とがマトリクス配列されているマトリクス回路部と、第2の動作命令に対応して前記マトリクス回路部のコンテキストを動作サイクルごとに順次切り換える状態管理部と、前記データ処理装置によってデータ出力された前記オブジェクトコードがデータ格納されている記憶部を備える並列演算装置と、
を具備しているデータ処理システム。 A data processing device according to claim 1 or 4,
Switching control is individually performed for connection relations between a plurality of processing circuits that individually execute data processing corresponding to the first operation command set individually and a plurality of processing circuits corresponding to the first operation command. a matrix circuit in which a plurality of wiring circuits are arranged in a matrix of, a state management unit in response to the second operation command switch sequentially for each operation cycle a context of the matrix circuit, the data by the data processing device A parallel computing device including a storage unit in which the output object code is stored ;
A data processing system comprising:
請求項17に記載のデータ処理システム。 The constraint conditions include the number of the plurality of processing circuits, the number of input ports of the processing circuit, the presence or absence of usable circuit resources of the processing circuit, the processing capability of the processing circuit or the wiring circuit, and the number of wiring circuits The data processing system according to claim 17, comprising at least one of a delay time, the number of bits of the circuit resource, and a clock interval for switching the operation state.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006270702A JP4787711B2 (en) | 2006-10-02 | 2006-10-02 | Data processing apparatus and method, computer program, information storage medium, and data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006270702A JP4787711B2 (en) | 2006-10-02 | 2006-10-02 | Data processing apparatus and method, computer program, information storage medium, and data processing system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001294241A Division JP3921367B2 (en) | 2001-09-26 | 2001-09-26 | Data processing apparatus and method, computer program, information storage medium, parallel processing apparatus, data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006351047A JP2006351047A (en) | 2006-12-28 |
JP4787711B2 true JP4787711B2 (en) | 2011-10-05 |
Family
ID=37646740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006270702A Expired - Lifetime JP4787711B2 (en) | 2006-10-02 | 2006-10-02 | Data processing apparatus and method, computer program, information storage medium, and data processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4787711B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010087098A1 (en) | 2009-01-30 | 2010-08-05 | 日本電気株式会社 | Parallel computing device, information processing system, parallel computing method, and information processing device |
JP5985900B2 (en) * | 2012-06-22 | 2016-09-06 | ルネサスエレクトロニクス株式会社 | Behavioral synthesis device, data processing system including behavioral synthesis device, and behavioral synthesis program |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04250570A (en) * | 1991-01-28 | 1992-09-07 | Fujitsu Ltd | Data control system by high-level composition |
JPH08101861A (en) * | 1994-09-30 | 1996-04-16 | Toshiba Corp | Logic circuit synthesizing device |
US5794062A (en) * | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
GB2317245A (en) * | 1996-09-12 | 1998-03-18 | Sharp Kk | Re-timing compiler integrated circuit design |
JPH10256383A (en) * | 1997-03-12 | 1998-09-25 | Toshiba Corp | Semiconductor device and circuit constitution method thereof |
JP3743487B2 (en) * | 1999-07-14 | 2006-02-08 | 富士ゼロックス株式会社 | Programmable logic circuit device, information processing system, method for reconfiguring circuit into programmable logic circuit device, and method for compressing circuit information for programmable logic circuit device |
JP2001142922A (en) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | Design method for semiconductor integrated circuit device |
US6678646B1 (en) * | 1999-12-14 | 2004-01-13 | Atmel Corporation | Method for implementing a physical design for a dynamically reconfigurable logic circuit |
JP3722351B2 (en) * | 2000-02-18 | 2005-11-30 | シャープ株式会社 | High level synthesis method and recording medium used for the implementation |
-
2006
- 2006-10-02 JP JP2006270702A patent/JP4787711B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2006351047A (en) | 2006-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3921367B2 (en) | Data processing apparatus and method, computer program, information storage medium, parallel processing apparatus, data processing system | |
EP3698313B1 (en) | Image preprocessing for generalized image processing | |
JP7337053B2 (en) | Static Block Scheduling in Massively Parallel Software-Defined Hardware Systems | |
US11429848B2 (en) | Host-directed multi-layer neural network processing via per-layer work requests | |
US10515135B1 (en) | Data format suitable for fast massively parallel general matrix multiplication in a programmable IC | |
JP4893309B2 (en) | Data processing apparatus having reconfigurable logic circuit | |
US11714780B2 (en) | Compiler flow logic for reconfigurable architectures | |
US20190130270A1 (en) | Tensor manipulation within a reconfigurable fabric using pointers | |
US20030046513A1 (en) | Arrayed processor of array of processing elements whose individual operations and mutual connections are variable | |
US10943039B1 (en) | Software-driven design optimization for fixed-point multiply-accumulate circuitry | |
US10678509B1 (en) | Software-driven design optimization for mapping between floating-point and fixed-point multiply accumulators | |
US20200167309A1 (en) | Reconfigurable fabric configuration using spatial and temporal routing | |
US20190213289A1 (en) | Method and apparatus for implementing an application aware system on a programmable logic device | |
US11036827B1 (en) | Software-defined buffer/transposer for general matrix multiplication in a programmable IC | |
JP4787711B2 (en) | Data processing apparatus and method, computer program, information storage medium, and data processing system | |
Touiza et al. | A novel methodology for accelerating bitstream relocation in partially reconfigurable systems | |
JP2006185423A (en) | Custom lsi development platform, method and program for generating instruction set architecture and logic circuit configuration information | |
Zamacola et al. | An integrated approach and tool support for the design of fpga-based multi-grain reconfigurable systems | |
JP2006302132A (en) | Signal processor, reconfigurable logic circuit device and reconfigurable sequential circuit | |
Skliarova et al. | Hardware/software co-design | |
Asgari et al. | Efficiently solving partial differential equations in a partially reconfigurable specialized hardware | |
Shahsavani et al. | Efficient compilation and mapping of fixed function combinational logic onto digital signal processors targeting neural network inference and utilizing high-level synthesis | |
WO2006116045A2 (en) | Variable precision processor | |
WO2019113021A1 (en) | Tensor manipulation within a reconfigurable fabric using pointers | |
RU2819403C1 (en) | Vector computing core |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070123 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20080606 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080624 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20090601 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100607 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110318 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110324 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110613 |
|
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: 20110628 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110715 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4787711 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: 20140722 Year of fee payment: 3 |
|
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 |