JP2010231645A - Arithmetic processing unit - Google Patents

Arithmetic processing unit Download PDF

Info

Publication number
JP2010231645A
JP2010231645A JP2009080265A JP2009080265A JP2010231645A JP 2010231645 A JP2010231645 A JP 2010231645A JP 2009080265 A JP2009080265 A JP 2009080265A JP 2009080265 A JP2009080265 A JP 2009080265A JP 2010231645 A JP2010231645 A JP 2010231645A
Authority
JP
Japan
Prior art keywords
data
arithmetic
calculation
selector
circuit
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.)
Pending
Application number
JP2009080265A
Other languages
Japanese (ja)
Inventor
Shinichi Ogawa
真一 小川
Hiroshi Okubo
博 大久保
Yasuyoshi Ito
泰善 伊藤
Junichiro Ueno
潤一郎 上野
Yukihiro Karube
行洋 軽部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Fujitsu Advanced Engineering Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Advanced Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Fujitsu Advanced Engineering Ltd filed Critical Fujitsu Ltd
Priority to JP2009080265A priority Critical patent/JP2010231645A/en
Publication of JP2010231645A publication Critical patent/JP2010231645A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve processing speed when arithmetic processing is implemented by hardware. <P>SOLUTION: An arithmetic processing unit includes a first circuit that executes arithmetic processing corresponding to a predetermined operation expression using at least any one of a plurality of arithmetic circuits, a memory, a first data storage part that stores first data including information about an arithmetic circuit to be used, a second data storage part that stores second data including an address showing an area in the memory in which operation data to be used in the arithmetic operation is stored, a sequencer that reads the first data stored in the first data storage part and outputs it to the first circuit, and a scheduler that reads the second data stored in the second data storage part and reads the operation data from the memory according to the read second data to output it to the first circuit. Each of the arithmetic circuits includes a computing unit that executes a calculation corresponding to a predetermined operator on input data and outputs an operation result to the other arithmetic circuits, and selectors for selecting data to be used as input data and outputting it to the computing unit. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本技術は、動的再構成演算回路を利用して数値演算処理を行う分野の技術に関する。   The present technology relates to a technology in the field of performing numerical arithmetic processing using a dynamic reconfiguration arithmetic circuit.

例えば、高度な科学計算には、Fortranなどの高級言語が用いられる。このFortranなどの高級言語は、本来ソフトウェア処理を目的とした言語であるが、処理の一部を例えばFPGA(Field Programmable Gate Array)などのプログラム可能なハードウェアに置き換えるなどして、処理の高速化が図られている。   For example, high-level languages such as Fortran are used for advanced scientific calculations. A high-level language such as Fortran is originally a language intended for software processing, but speeds up processing by replacing part of the processing with programmable hardware such as FPGA (Field Programmable Gate Array). Is planned.

例えば、(1)x=a÷b−c、(2)x=(a+b)×c、(3)x=a−b+cという3つの演算式についての処理をハードウェアで実現するためには、図18(a)乃至(c)に示すような回路をFPGAに実装する必要がある。なお、図18(a)は、演算式(1)に対応する回路、図18(b)は、演算式(2)に対応する回路、図18(c)は、演算式(3)に対応する回路をそれぞれ示す。すなわち、演算式毎に当該演算式に対応する回路を実装しなければならない。なお、Fortranなどの高級言語では、演算式が複雑になる場合があり、その計算が複雑になるにつれて、回路規模が大きくなる。一方で、FPGAなどのハードウェアのリソースには限りがあり、回路規模が大きくなると、全ての演算式に対応する回路をFPGAに実装することができない。   For example, in order to realize the processing for three arithmetic expressions (1) x = a ÷ b−c, (2) x = (a + b) × c, and (3) x = a−b + c by hardware, Circuits as shown in FIGS. 18A to 18C need to be mounted on the FPGA. 18A is a circuit corresponding to the arithmetic expression (1), FIG. 18B is a circuit corresponding to the arithmetic expression (2), and FIG. 18C corresponds to the arithmetic expression (3). Each circuit is shown. That is, a circuit corresponding to the arithmetic expression must be mounted for each arithmetic expression. In a high-level language such as Fortran, the arithmetic expression may be complicated, and the circuit scale increases as the calculation becomes complicated. On the other hand, hardware resources such as FPGA are limited, and when the circuit scale becomes large, circuits corresponding to all arithmetic expressions cannot be mounted on the FPGA.

このようなリソース制限に係る問題への対応として、演算式を細分化し、図19に示すような、四則演算器を繰り返し利用できる回路を用いて処理を行う技術が知られている。図19では、加算器、減算器、乗算器及び除算器の4つの演算器が設けられており、メモリから読み出されたデータ(図19におけるIN1及びIN2)が各演算器に入力されるようになっている。そして、セレクタが、外部信号(図19におけるOP)に基づき、各演算器からの演算結果のうち、メモリに書き込む演算結果を選択するようになっている。例えば、上記演算式(1)であれば、(1−1)x1=a÷b、(1−2)x=x1−cという2段階の処理に分けられ、1段階目の処理においては、各演算器から出力される演算結果のうち除算器からの演算結果をメモリに書き込み、2段階目の処理においては、減算器からの演算結果をメモリに書き込む。 As a countermeasure to such a problem related to resource limitation, a technique is known in which a calculation formula is subdivided and processing is performed using a circuit that can repeatedly use four arithmetic units as shown in FIG. In FIG. 19, four arithmetic units, an adder, a subtracter, a multiplier, and a divider, are provided so that data (IN1 and IN2 in FIG. 19) read from the memory is input to each arithmetic unit. It has become. Then, the selector selects a calculation result to be written in the memory from the calculation results from the respective arithmetic units based on the external signal (OP in FIG. 19). For example, the arithmetic expression (1) is divided into two steps of (1-1) x 1 = a ÷ b and (1-2) x = x 1 -c. Writes the calculation result from the divider among the calculation results output from each calculator, and writes the calculation result from the subtractor to the memory in the second stage of processing.

特開平11−203145号公報JP-A-11-203145 特開2007−172569号公報JP 2007-172569 A 特許第2879070号公報Japanese Patent No. 2879070

しかしながら、従来技術では、メモリからの読み込みとメモリへの書き込みが毎回発生するため、処理速度の向上が図れないという問題がある。   However, the conventional technique has a problem that the processing speed cannot be improved because reading from the memory and writing to the memory occur each time.

従って、本技術の目的は、ソフトウェアによる演算処理をハードウェアで実現する場合において、処理速度の向上を図るための技術を提供することである。   Accordingly, an object of the present technology is to provide a technology for improving the processing speed when the arithmetic processing by software is realized by hardware.

本演算処理装置は、複数の演算回路を有し、当該複数の演算回路のうち少なくともいずれかを用いて所定の演算式に対応する演算処理を行う動的再構成演算回路と、演算データを格納するメモリと、所定の演算式に対応する演算処理において使用すべき演算回路に関する情報を含むシーケンスデータを所定の演算式毎に格納するシーケンスデータ格納部と、所定の演算式に対応する演算処理において使用すべき演算データを格納している、メモリ内の領域を示すアドレスを含むスケジュールデータを格納するスケジュールデータ格納部と、演算開始指示を受け付けた場合、シーケンスデータ格納部からシーケンスデータを読み出し、動的再構成演算回路に出力するシーケンサと、演算開始指示を受け付けた場合、スケジュールデータ格納部からスケジュールデータを読み出し、当該スケジュールデータに従ってメモリから演算データを読み出して動的再構成演算回路に出力するスケジューラとを有する。そして、上で述べた複数の演算回路の各々は、入力データに対して所定の演算子に対応する計算を実施し、演算結果データを他の演算回路に出力する演算器と、スケジューラからの演算データと他の演算回路からの演算結果データとのうち、シーケンスデータに基づき入力データとして使用すべきデータを選択し、演算器に出力するセレクタとを有する。   The arithmetic processing apparatus includes a plurality of arithmetic circuits, a dynamic reconfiguration arithmetic circuit that performs arithmetic processing corresponding to a predetermined arithmetic expression using at least one of the arithmetic circuits, and stores arithmetic data A sequence data storage unit that stores, for each predetermined arithmetic expression, sequence data including information relating to an arithmetic circuit to be used in the arithmetic processing corresponding to the predetermined arithmetic expression, and an arithmetic process corresponding to the predetermined arithmetic expression The schedule data storage unit that stores the calculation data to be used and stores the schedule data including the address indicating the area in the memory, and when the calculation start instruction is received, the sequence data is read from the sequence data storage unit If a sequencer that outputs to a static reconfiguration arithmetic circuit and an operation start instruction are accepted, the schedule data storage unit Read the schedule data, and a scheduler for outputting read the operation data from the memory to the dynamically reconfigurable processor circuit in accordance with the schedule data. Each of the plurality of arithmetic circuits described above performs a calculation corresponding to a predetermined operator on the input data, outputs an operation result data to another arithmetic circuit, and an operation from the scheduler. A selector that selects data to be used as input data based on sequence data from the data and operation result data from another arithmetic circuit and outputs the selected data to the arithmetic unit.

ソフトウェアによる演算処理をハードウェアで実現する場合において、処理速度の向上を図ることができる。   In the case where arithmetic processing by software is realized by hardware, the processing speed can be improved.

本実施の形態に係るシステム概要図である。It is a system outline figure concerning this embodiment. 本実施の形態に係るシステムにおける演算部の構成図である。It is a block diagram of the calculating part in the system which concerns on this Embodiment. 演算部内の演算マクロの構成図である。It is a block diagram of the calculation macro in a calculating part. スケジュールテーブルに格納されるスケジュールデータの一例を示す図である。It is a figure which shows an example of the schedule data stored in a schedule table. スケジュールデータを説明するための図である。It is a figure for demonstrating schedule data. シーケンステーブルに格納されるシーケンスデータの一例を示す図である。It is a figure which shows an example of the sequence data stored in a sequence table. シーケンスデータを説明するための図である。It is a figure for demonstrating sequence data. シーケンスデータを説明するための図である。It is a figure for demonstrating sequence data. シーケンスデータの一例を示す図である。It is a figure which shows an example of sequence data. 演算式a÷b−cの処理を実行する場合におけるデータの流れを示す図である。It is a figure which shows the flow of data in the case of performing the process of arithmetic expression a / bc. シーケンスデータの一例を示す図である。It is a figure which shows an example of sequence data. 演算式(a+b)×cの処理を実行する場合におけるデータの流れを示す図である。It is a figure which shows the flow of data in the case of performing the process of arithmetic expression (a + b) * c. シーケンスデータの一例を示す図である。It is a figure which shows an example of sequence data. 演算式a−b+cの処理を実行する場合におけるデータの流れを示す図である。It is a figure which shows the flow of data in the case of performing the process of arithmetic expression ab + c. 本実施の形態に係るシステムの処理フローを示す図である。It is a figure which shows the processing flow of the system which concerns on this Embodiment. 本実施の形態に係るシステムの処理フローを示す図である。It is a figure which shows the processing flow of the system which concerns on this Embodiment. 本実施の形態に係るシステムの処理フローを示す図である。It is a figure which shows the processing flow of the system which concerns on this Embodiment. 従来技術を説明するための図である。It is a figure for demonstrating a prior art. 従来技術を説明するための図である。It is a figure for demonstrating a prior art.

本技術の一実施の形態に係るシステム概要を図1に示す。例えば社内LAN(Local Area Network)又はインターネットのようなネットワーク1には、ユーザ端末(図1では、ユーザ端末A及びB)と、本実施の形態における主要な処理を実施する演算処理装置3とが接続されている。なお、ユーザ端末の数は2台に限定されない。   A system overview according to an embodiment of the present technology is shown in FIG. For example, in a network 1 such as an in-house LAN (Local Area Network) or the Internet, a user terminal (user terminals A and B in FIG. 1) and an arithmetic processing device 3 that performs main processing in the present embodiment are provided. It is connected. Note that the number of user terminals is not limited to two.

演算処理装置3は、演算処理に使用すべき演算データ又は演算結果を格納するメモリ31と、後で説明するスケジュールデータを格納するスケジュールテーブル32と、後で説明するシーケンスデータを格納するシーケンステーブル33と、スケジューラ35からの指示に応じてメモリ31へアクセスするメモリコントローラ34と、スケジュールテーブル32からスケジュールデータを読み出し、スケジュールデータに従って演算データの読み出しや演算結果の書き込みなどの処理を実施するスケジューラ35と、シーケンステーブル33からシーケンスデータを読み出し、演算部37に出力するシーケンサ36と、スケジューラ35及びシーケンサ36からのデータに基づき演算処理を実施し、演算結果をスケジューラ35に出力する演算部37とを有する。なお、演算部37は、FPGAなどのプログラム可能なハードウェアで構成される。   The arithmetic processing unit 3 includes a memory 31 for storing arithmetic data or arithmetic results to be used for arithmetic processing, a schedule table 32 for storing schedule data to be described later, and a sequence table 33 for storing sequence data to be described later. A memory controller 34 that accesses the memory 31 in accordance with an instruction from the scheduler 35, a scheduler 35 that reads schedule data from the schedule table 32, and performs processing such as calculation data reading and calculation result writing according to the schedule data The sequence data is read out from the sequence table 33 and output to the calculation unit 37. The calculation process is performed based on the data from the scheduler 35 and the sequencer 36, and the calculation result is output to the scheduler 35. And a part 37. Note that the arithmetic unit 37 is configured by programmable hardware such as an FPGA.

図2及び図3を用いて演算部37の具体的な構成を説明する。図2は、演算部37の構成図である。図2に示すように、演算部37は、複数の演算マクロ(図2では、演算マクロA、演算マクロB、演算マクロC、演算マクロD、・・・)を含む。そして、スケジューラ35からの演算データが、各演算マクロに入力されるようになっている。さらに、演算マクロの演算結果データが、他の演算マクロに出力されるようになっている。例えば、演算マクロA(加算マクロ)には、スケジューラ35からの演算データと、他の演算マクロ(図2では、演算マクロB、演算マクロC、演算マクロD、・・・)からの演算結果データとが入力され、演算マクロA(加算マクロ)は、演算結果データを他の演算マクロ(演算マクロB、演算マクロC、演算マクロD、・・・)へ出力する。また、最終的な演算結果(すなわち、所定の演算式の演算結果)がスケジューラ35に出力されるようになっている。   A specific configuration of the calculation unit 37 will be described with reference to FIGS. 2 and 3. FIG. 2 is a configuration diagram of the calculation unit 37. As shown in FIG. 2, the arithmetic unit 37 includes a plurality of arithmetic macros (in FIG. 2, arithmetic macro A, arithmetic macro B, arithmetic macro C, arithmetic macro D,...). Calculation data from the scheduler 35 is input to each calculation macro. Further, the calculation result data of the calculation macro is output to another calculation macro. For example, the operation macro A (addition macro) includes operation data from the scheduler 35 and operation result data from other operation macros (operation macro B, operation macro C, operation macro D,... In FIG. 2). Are input, and the operation macro A (addition macro) outputs the operation result data to other operation macros (operation macro B, operation macro C, operation macro D,...). Further, a final calculation result (that is, a calculation result of a predetermined calculation formula) is output to the scheduler 35.

図3に、演算マクロの構成図を示す。なお、図3は、加算マクロの構成図を示す。加算マクロは、セレクタ3701A乃至3704Aと、フリップフロップ回路(以下、FFと呼ぶ)3705A及び3706Aと、加算器3710とで構成される。そして、セレクタ3701A乃至3704Aの各々には、シーケンサ36からのシーケンスデータが入力されるようになっている。そして、セレクタでは、入力されたデータのうち、シーケンスデータによって指定されたデータを出力するようになっている。なお、図3における点線の矢印が、シーケンサ36からのシーケンスデータを表す。   FIG. 3 shows a configuration diagram of the operation macro. FIG. 3 shows a configuration diagram of the addition macro. The addition macro includes selectors 3701A to 3704A, flip-flop circuits (hereinafter referred to as FFs) 3705A and 3706A, and an adder 3710. The sequence data from the sequencer 36 is input to each of the selectors 3701A to 3704A. The selector outputs data specified by the sequence data among the input data. 3 represents sequence data from the sequencer 36.

図3において、セレクタ3701A及び3702Aには、スケジューラ35からの演算データが入力されるようになっている。なお、図3では、スケジューラ35からの入力の数は4つであるが、入力の数はこれに限定されない。そして、セレクタ3701Aは、スケジューラ35からの演算データのうち、シーケンスデータにて指定されたデータをFF3705Aを介してセレクタ3703Aに出力する。同様に、セレクタ3702Aは、スケジューラ35からの演算データのうち、シーケンスデータにて指定されたデータをFF3706Aを介してセレクタ3704Aに出力する。   In FIG. 3, the calculation data from the scheduler 35 is input to the selectors 3701A and 3702A. In FIG. 3, the number of inputs from the scheduler 35 is four, but the number of inputs is not limited to this. Then, the selector 3701A outputs the data designated by the sequence data among the operation data from the scheduler 35 to the selector 3703A via the FF 3705A. Similarly, the selector 3702A outputs the data designated by the sequence data among the calculation data from the scheduler 35 to the selector 3704A via the FF 3706A.

一方、セレクタ3703Aには、FF3705Aからの演算データと、他の演算マクロからの演算結果データとが入力されるようになっている。なお、図3では、他の演算マクロからの入力の数は3つであるが、入力の数はこれに限定されない。そして、セレクタ3703Aは、FF3705Aからの演算データと、他の演算マクロからの演算結果データとのうち、シーケンスデータにて指定されたデータを加算器3710に出力する。同様に、セレクタ3704Aには、FF3706Aからの演算データと、他の演算マクロからの演算結果データとが入力されるようになっている。なお、図3では、他の演算マクロからの入力の数は3つであるが、入力の数はこれに限定されない。そして、セレクタ3704Aは、FF3706Aからの演算データと、他の演算マクロからの演算結果データとのうち、シーケンスデータにて指定されたデータを加算器3710に出力する。   On the other hand, the selector 3703A receives the operation data from the FF 3705A and the operation result data from another operation macro. In FIG. 3, the number of inputs from other arithmetic macros is three, but the number of inputs is not limited to this. Then, selector 3703A outputs the data specified by the sequence data among the operation data from FF 3705A and the operation result data from another operation macro to adder 3710. Similarly, calculation data from the FF 3706A and calculation result data from other calculation macros are input to the selector 3704A. In FIG. 3, the number of inputs from other arithmetic macros is three, but the number of inputs is not limited to this. Then, selector 3704A outputs the data designated by the sequence data, out of the operation data from FF 3706A and the operation result data from another operation macro, to adder 3710.

そして、加算器3710は、セレクタ3703Aからのデータとセレクタ3704Aからのデータとを用いて加算処理を実施し、演算結果データを他の演算マクロに出力する。   Adder 3710 performs addition processing using the data from selector 3703A and the data from selector 3704A, and outputs the operation result data to another operation macro.

なお、上では加算マクロを例に説明したが、基本的な構成は、減算マクロ、乗算マクロ、除算マクロの場合も同様である。ただし、減算マクロ、乗算マクロ、除算マクロの場合には、加算器3710の代わりに、減算処理を実施する減算器3720、乗算処理を実施する乗算器3730、除算処理を実施する除算器3740をそれぞれ有する。   Although the addition macro has been described above as an example, the basic configuration is the same for the subtraction macro, multiplication macro, and division macro. However, in the case of a subtraction macro, a multiplication macro, and a division macro, instead of the adder 3710, a subtracter 3720 that performs subtraction processing, a multiplier 3730 that performs multiplication processing, and a divider 3740 that performs division processing, respectively. Have.

図4に、スケジュールテーブル32に格納されるスケジュールデータの一例を示す。図4の例では、スケジュールデータには、コマンド種別(CMD)と、バッファ番号(BUF No)と、先頭アドレス(AS1)と、最終アドレス(AE1)と、連続領域の第1の間隔(ARPT1)と、連続領域の第2の間隔(ARPT2)と、ARPT1の連続加算回数(NRPT1)と、ARPT2の連続加算回数(NRPT2)と、連続領域のワード数(NCW)とが含まれる。ここで、連続領域とは、読み出し又は書き込みの対象となる領域を指す。   FIG. 4 shows an example of schedule data stored in the schedule table 32. In the example of FIG. 4, the schedule data includes a command type (CMD), a buffer number (BUF No), a head address (AS1), a last address (AE1), and a first interval (ARPT1) of continuous areas. And the second interval (ARPT2) of the continuous area, the number of continuous additions of ARPT1 (NRPT1), the number of continuous additions of ARPT2 (NRPT2), and the number of words (NCW) of the continuous area. Here, the continuous area refers to an area to be read or written.

コマンド種別(CMD)には、例えばデータ・リードやデータ・ライトなどを表す値(図4では16進数)が設定される。例えば上位4ビットが「0000」であれば、データ・リードを表し、上位4ビットが「0001」であれば、データ・ライトを表す。図4の例では、1行目から3行目までがデータ・リードに関するスケジュールデータであり、4行目はデータ・ライトに関するスケジュールデータとなっている。また、先頭アドレス(AS1)には、連続領域(連続領域が複数ある場合には先頭の連続領域)の先頭アドレスが設定される。また、最終アドレス(AE1)には、連続領域(連続領域が複数ある場合には先頭の連続領域)の末尾を示すアドレスが設定される。例えば、図5に示すように連続領域501乃至506がある場合、先頭アドレス(AS1)には、連続領域501の先頭アドレスが設定され、最終アドレス(AE1)には、連続領域501の末尾を示すアドレスが設定される。また、第1の間隔(ARPT1)には、ある連続領域から次の連続領域までの間隔(先頭アドレス間の間隔)が設定される。図5の例では、連続領域501と連続領域502との間隔、連続領域502と連続領域503との間隔、連続領域504と連続領域505との間隔及び連続領域505と連続領域506との間隔は全て同じ間隔になっており、この間隔が、第1の間隔(ARPT1)として設定される。また、第2の間隔(ARPT2)には、ある連続領域から次の連続領域までの間隔であって、第1の間隔(ARPT1)とは異なる間隔が設定される。図5の例では、連続領域503と連続領域504との間隔が、第2の間隔(ARPT2)として設定される。なお、第1の間隔(ARPT1)で配置される連続領域(図5では、連続領域501乃至503)へのアクセスにおいては、現在のアドレスに第1の間隔(ARPT1)を加算して次の連続領域にアクセスすることになり、この加算回数が、ARPT1の連続加算回数(NRPT1)に設定される。同様に、現在のアドレスに第2の間隔(ARPT2)を加算して次の連続領域にアクセスする場合に、この加算回数が、ARPT2の連続加算回数(NRPT2)に設定される。また、連続領域のワード数(NCW)には、連続領域のサイズが設定される。例えば、データ・ライトのコマンドの場合には、先頭アドレス(AS1)及び連続領域のワード数(NCW)によって、書き込み先の領域を特定する。   In the command type (CMD), for example, a value (hexadecimal number in FIG. 4) representing data read or data write is set. For example, if the upper 4 bits are “0000”, it indicates data read, and if the upper 4 bits are “0001”, it indicates data write. In the example of FIG. 4, the first to third lines are schedule data related to data read, and the fourth line is schedule data related to data write. In addition, the head address (AS1) is set with the head address of the continuous area (the head continuous area when there are a plurality of continuous areas). In the final address (AE1), an address indicating the end of the continuous area (or the leading continuous area when there are a plurality of continuous areas) is set. For example, as shown in FIG. 5, when there are continuous areas 501 to 506, the start address (AS1) is set with the start address of the continuous area 501 and the final address (AE1) indicates the end of the continuous area 501. An address is set. The first interval (ARPT1) is set with an interval from one continuous area to the next continuous area (interval between head addresses). In the example of FIG. 5, the interval between the continuous region 501 and the continuous region 502, the interval between the continuous region 502 and the continuous region 503, the interval between the continuous region 504 and the continuous region 505, and the interval between the continuous region 505 and the continuous region 506 are All have the same interval, and this interval is set as the first interval (ARPT1). The second interval (ARPT2) is an interval from one continuous region to the next continuous region, and is different from the first interval (ARPT1). In the example of FIG. 5, the interval between the continuous region 503 and the continuous region 504 is set as the second interval (ARPT2). When accessing a continuous area (the continuous areas 501 to 503 in FIG. 5) arranged at the first interval (ARPT1), the first interval (ARPT1) is added to the current address and the next continuous. The area is accessed, and the number of additions is set to the number of continuous additions (NRPT1) of ARPT1. Similarly, when the next continuous area is accessed by adding the second interval (ARPT2) to the current address, the number of additions is set as the number of consecutive additions of ARPT2 (NRPT2). Further, the size of the continuous area is set as the number of words (NCW) in the continuous area. For example, in the case of a data write command, the write destination area is specified by the head address (AS1) and the number of words in the continuous area (NCW).

図6に、シーケンステーブル33に格納されるシーケンスデータの一例を示す。なお、図6は、図7に示すような、加算マクロと減算マクロと乗算マクロと除算マクロとを1つずつ有する演算部37に、所定の演算式の処理を実行させるためのシーケンスデータの一例を示す。図6の例では、シーケンステーブル33には、演算式の番号((1)No)と、当該演算式の種類((2)type)と、加算マクロ内のセレクタに対する選択信号((3)Select For ADD)と、減算マクロ内のセレクタに対する選択信号((4)Select For SUB)と、乗算マクロ内のセレクタに対する選択信号((5)Select For MULT)と、除算マクロ内のセレクタに対する選択信号((6)Select For DIV)と、入力ポートに対するdelay値((7)CALCIN_DLAY)と、ループ時のスキップ間隔((8)SKIP_INTERVAL)と、初回にスキップするか否かを表すデータ((9)SKIP_WORK)とが含まれる。なお、入力ポートに対するdelay(7)には、入力ポートaに対するdelay(7a)と、入力ポートbに対するdelay(7b)と、入力ポートcに対するdelay(7c)と、入力ポートdに対するdelay(7d)とが含まれる。   FIG. 6 shows an example of sequence data stored in the sequence table 33. 6 shows an example of sequence data for causing the arithmetic unit 37 having one addition macro, one subtraction macro, one multiplication macro, and one division macro to execute processing of a predetermined arithmetic expression as shown in FIG. Indicates. In the example of FIG. 6, the sequence table 33 includes the number of the arithmetic expression ((1) No), the type of the arithmetic expression ((2) type), and a selection signal ((3) Select for the selector in the addition macro. For ADD), a selection signal for the selector in the subtraction macro ((4) Select For SUB), a selection signal for the selector in the multiplication macro ((5) Select For MULT), and a selection signal for the selector in the division macro ( (6) Select For DIV), delay value for input port ((7) CALCIN_DLAY), skip interval during loop ((8) SKIP_INTERVAL), and data indicating whether or not to skip for the first time ((9) SKIP_WORK ) And The delay (7) for the input port includes a delay (7a) for the input port a, a delay (7b) for the input port b, a delay (7c) for the input port c, and a delay (7d) for the input port d. And are included.

また、加算マクロ内のセレクタに対する選択信号(3)には、セレクタ3701Aに対する選択信号(3a)と、セレクタ3702Aに対する選択信号(3b)と、セレクタ3703Aに対する選択信号(3c)と、セレクタ3704Aに対する選択信号(3d)とが含まれる。また、減算マクロ内のセレクタに対する選択信号(4)には、セレクタ3701Bに対する選択信号(4a)と、セレクタ3702Bに対する選択信号(4b)と、セレクタ3703Bに対する選択信号(4c)と、セレクタ3704Bに対する選択信号(4d)とが含まれる。さらに、乗算マクロ内のセレクタに対する選択信号(5)には、セレクタ3701Cに対する選択信号(5a)と、セレクタ3702Cに対する選択信号(5b)と、セレクタ3703Cに対する選択信号(5c)と、セレクタ3704Cに対する選択信号(5d)とが含まれる。また、除算マクロ内のセレクタに対する選択信号(6)には、セレクタ3701Dに対する選択信号(6a)と、セレクタ3702Dに対する選択信号(6b)と、セレクタ3703Dに対する選択信号(6c)と、セレクタ3704Dに対する選択信号(6d)とが含まれる。   The selection signal (3) for the selector in the addition macro includes a selection signal (3a) for the selector 3701A, a selection signal (3b) for the selector 3702A, a selection signal (3c) for the selector 3703A, and a selection for the selector 3704A. Signal (3d). The selection signal (4) for the selector in the subtraction macro includes a selection signal (4a) for the selector 3701B, a selection signal (4b) for the selector 3702B, a selection signal (4c) for the selector 3703B, and a selection for the selector 3704B. Signal (4d). Further, the selection signal (5) for the selector in the multiplication macro includes a selection signal (5a) for the selector 3701C, a selection signal (5b) for the selector 3702C, a selection signal (5c) for the selector 3703C, and a selection for the selector 3704C. Signal (5d). The selection signal (6) for the selector in the division macro includes a selection signal (6a) for the selector 3701D, a selection signal (6b) for the selector 3702D, a selection signal (6c) for the selector 3703D, and a selection for the selector 3704D. Signal (6d).

なお、本実施の形態では、例えば図8に示すように、あるセレクタに対する選択信号sに「0」が設定されている場合には、そのセレクタは、入力ポートaから入力されたデータを出力データxとして出力する。また、選択信号が「1」の場合には、セレクタは、入力ポートbから入力されたデータを出力データxとして出力する。さらに、選択信号が「2」の場合には、セレクタは、入力ポートcから入力されたデータを出力データxとして出力する。また、選択信号が「3」の場合には、セレクタは、入力ポートdから入力されたデータを出力データxとして出力する。   In the present embodiment, for example, as shown in FIG. 8, when “0” is set in the selection signal s for a certain selector, the selector converts the data input from the input port a to the output data. Output as x. When the selection signal is “1”, the selector outputs data input from the input port b as output data x. Further, when the selection signal is “2”, the selector outputs data input from the input port c as output data x. When the selection signal is “3”, the selector outputs data input from the input port d as output data x.

例えば、演算式a÷b−cの処理を実行する場合の演算部37の動作を図9及び図10を用いて説明する。なお、図9は、演算式a÷b−cの処理を実行させるためのシーケンスデータを示す。そして、図9に示すようなシーケンスデータによって演算式a÷b−cの処理を実行する場合における、演算部37内のデータの流れを図10に示す。なお、図10において、入力ポートa、b及びcは、スケジューラ35からの入力を示す。   For example, the operation of the arithmetic unit 37 when executing the processing of arithmetic expression a ÷ bc will be described with reference to FIGS. FIG. 9 shows sequence data for executing the processing of arithmetic expression a ÷ bc. FIG. 10 shows the flow of data in the arithmetic unit 37 when the processing of the arithmetic expression a ÷ bc is executed with the sequence data as shown in FIG. In FIG. 10, input ports a, b, and c indicate inputs from the scheduler 35.

例えば、図9において、除算マクロ内のセレクタ3701Dに対する選択信号(6a)には「0」が設定されており、セレクタ3702Dに対する選択信号(6b)には「1」が設定されている。従って、図10に示すように、セレクタ3701Dは、選択信号(6a)に従って、入力ポートaから入力されたデータ(データaと呼ぶ)を選択し、FF3705Dを介してセレクタ3703Dに出力する。また、セレクタ3702Dは、選択信号(6b)に従って、入力ポートbから入力されたデータ(データbと呼ぶ)を選択し、FF3706Dを介してセレクタ3704Dに出力する。   For example, in FIG. 9, “0” is set to the selection signal (6a) for the selector 3701D in the division macro, and “1” is set to the selection signal (6b) for the selector 3702D. Therefore, as shown in FIG. 10, the selector 3701D selects the data (referred to as data a) input from the input port a according to the selection signal (6a), and outputs it to the selector 3703D via the FF 3705D. The selector 3702D selects data (referred to as data b) input from the input port b in accordance with the selection signal (6b), and outputs the data to the selector 3704D via the FF 3706D.

また、図9において、セレクタ3703Dに対する選択信号(6c)には「3」が設定されており、セレクタ3704Dに対する選択信号(6d)にも「3」が設定されている。従って、図10に示すように、セレクタ3703Dは、選択信号(6c)に従って、FF3705Dからのデータaを選択し、除算器3740に出力する。また、セレクタ3704Dは、選択信号(6d)に従って、FF3706Dからのデータbを選択し、除算器3740に出力する。そして、除算器3740は、セレクタ3703Dからのデータaとセレクタ3704Dからのデータbとを用いて、a÷bを計算する。   In FIG. 9, “3” is set to the selection signal (6c) for the selector 3703D, and “3” is also set to the selection signal (6d) for the selector 3704D. Therefore, as shown in FIG. 10, the selector 3703D selects the data a from the FF 3705D according to the selection signal (6c) and outputs it to the divider 3740. Further, the selector 3704D selects the data b from the FF 3706D according to the selection signal (6d) and outputs it to the divider 3740. Then, the divider 3740 calculates a ÷ b using the data a from the selector 3703D and the data b from the selector 3704D.

一方、図9において、減算マクロ内のセレクタ3702Bに対する選択信号(4b)には「2」が設定されている。従って、セレクタ3702Bは、選択信号(4b)に従って、入力ポートcから入力されたデータ(データcと呼ぶ)を選択し、FF3706Bを介してセレクタ3704Bに出力する。なお、図9において、入力ポートcに対するdelay(7c)には「10」が設定されているため、セレクタ3702Bは、この値分遅延させてから出力する。   On the other hand, in FIG. 9, “2” is set in the selection signal (4b) for the selector 3702B in the subtraction macro. Accordingly, the selector 3702B selects the data (referred to as data c) input from the input port c according to the selection signal (4b), and outputs it to the selector 3704B via the FF 3706B. In FIG. 9, since “10” is set in delay (7c) for the input port c, the selector 3702B outputs the output after delaying by this value.

また、図9において、減算マクロ内のセレクタ3703Bに対する選択信号(4c)には「2」が設定されており、セレクタ3704Bに対する選択信号(4d)には「3」が設定されている。従って、セレクタ3703Bは、選択信号(4c)に従って、除算器3740からのデータ(すなわち、a÷bの結果。データdと呼ぶ。)を選択し、減算器3720に出力する。また、セレクタ3704Bは、選択信号(4d)に従って、FF3706Bからのデータcを選択し、減算器3720に出力する。そして、減算器3720は、セレクタ3703Bからのデータdとセレクタ3704Bからのデータcとを用いて、d−cを計算する。そして、d−c(=a÷b−c)の計算結果が減算器3720からスケジューラ35に出力される。   In FIG. 9, “2” is set to the selection signal (4c) for the selector 3703B in the subtraction macro, and “3” is set to the selection signal (4d) for the selector 3704B. Accordingly, the selector 3703B selects the data from the divider 3740 (that is, the result of a ÷ b, referred to as data d) according to the selection signal (4c), and outputs it to the subtractor 3720. Further, the selector 3704B selects the data c from the FF 3706B according to the selection signal (4d) and outputs it to the subtractor 3720. Then, the subtracter 3720 calculates dc using the data d from the selector 3703B and the data c from the selector 3704B. Then, the calculation result of dc (= a ÷ bc) is output from the subtracter 3720 to the scheduler 35.

次に、別の例として、演算式(a+b)×cの処理を実行する場合の演算部37の動作を図11及び図12を用いて説明する。なお、図11は、演算式(a+b)×cの処理を実行させるためのシーケンスデータを示す。そして、図11に示すようなシーケンスデータによって演算式(a+b)×cの処理を実行する場合における、演算部37内のデータの流れを図12に示す。なお、図12において、入力ポートa、b及びcは、スケジューラ35からの入力を示す。   Next, as another example, the operation of the calculation unit 37 when executing the processing of the calculation formula (a + b) × c will be described with reference to FIGS. 11 and 12. FIG. 11 shows sequence data for executing the processing of the arithmetic expression (a + b) × c. FIG. 12 shows the flow of data in the arithmetic unit 37 when the processing of the arithmetic expression (a + b) × c is executed with the sequence data as shown in FIG. In FIG. 12, input ports a, b, and c indicate inputs from the scheduler 35.

例えば、図11において、加算マクロ内のセレクタ3701Aに対する選択信号(3a)には「0」が設定されており、セレクタ3702Aに対する選択信号(3b)には「1」が設定されている。従って、図12に示すように、セレクタ3701Aは、選択信号(3a)に従って、入力ポートaから入力されたデータ(データaと呼ぶ)を選択し、FF3705Aを介してセレクタ3703Aに出力する。また、セレクタ3702Aは、選択信号(3b)に従って、入力ポートbから入力されたデータ(データbと呼ぶ)を選択し、FF3706Aを介してセレクタ3704Aに出力する。   For example, in FIG. 11, “0” is set to the selection signal (3a) for the selector 3701A in the addition macro, and “1” is set to the selection signal (3b) for the selector 3702A. Therefore, as shown in FIG. 12, the selector 3701A selects the data (referred to as data a) input from the input port a according to the selection signal (3a), and outputs it to the selector 3703A via the FF 3705A. The selector 3702A selects data (referred to as data b) input from the input port b according to the selection signal (3b), and outputs the data to the selector 3704A via the FF 3706A.

また、図11において、セレクタ3703Aに対する選択信号(3c)には「3」が設定されており、セレクタ3704Aに対する選択信号(3d)にも「3」が設定されている。従って、図12に示すように、セレクタ3703Aは、選択信号(3c)に従って、FF3705Aからのデータaを選択し、加算器3710に出力する。また、セレクタ3704Aは、選択信号(3d)に従って、FF3706Aからのデータbを選択し、加算器3710に出力する。そして、加算器3710は、セレクタ3703Aからのデータaとセレクタ3704Aからのデータbとを用いて、a+bを計算する。   In FIG. 11, “3” is set to the selection signal (3c) for the selector 3703A, and “3” is also set to the selection signal (3d) for the selector 3704A. Accordingly, as shown in FIG. 12, the selector 3703A selects the data a from the FF 3705A according to the selection signal (3c), and outputs it to the adder 3710. Further, the selector 3704A selects the data b from the FF 3706A according to the selection signal (3d) and outputs it to the adder 3710. Adder 3710 calculates a + b using data a from selector 3703A and data b from selector 3704A.

一方、図11において、乗算マクロ内のセレクタ3702Cに対する選択信号(5b)には「2」が設定されている。従って、セレクタ3702Cは、選択信号(5b)に従って、入力ポートcから入力されたデータ(データcと呼ぶ)を選択し、FF3706Cを介してセレクタ3704Cに出力する。なお、図11において、入力ポートcに対するdelay(7c)には「5」が設定されているため、セレクタ3702Cは、この値分遅延させてから出力する。   On the other hand, in FIG. 11, “2” is set in the selection signal (5b) for the selector 3702C in the multiplication macro. Accordingly, the selector 3702C selects the data (referred to as data c) input from the input port c according to the selection signal (5b), and outputs it to the selector 3704C via the FF 3706C. In FIG. 11, since “5” is set in delay (7c) for the input port c, the selector 3702C delays this value before outputting.

また、図11において、乗算マクロ内のセレクタ3703Cに対する選択信号(5c)には「0」が設定されており、セレクタ3704Cに対する選択信号(5d)には「3」が設定されている。従って、セレクタ3703Cは、選択信号(5c)に従って、加算器3710からのデータ(すなわち、a+bの結果。データeと呼ぶ。)を選択し、乗算器3730に出力する。また、セレクタ3704Cは、選択信号(5d)に従って、FF3706Cからのデータcを選択し、乗算器3730に出力する。そして、乗算器3730は、セレクタ3703Cからのデータeとセレクタ3704Cからのデータcとを用いて、e×cを計算する。そして、e×c(=(a+b)×c)の計算結果が乗算器3730からスケジューラ35に出力される。   In FIG. 11, “0” is set to the selection signal (5c) for the selector 3703C in the multiplication macro, and “3” is set to the selection signal (5d) for the selector 3704C. Therefore, the selector 3703C selects the data from the adder 3710 (that is, the result of a + b, referred to as data e) in accordance with the selection signal (5c), and outputs it to the multiplier 3730. The selector 3704C selects the data c from the FF 3706C according to the selection signal (5d), and outputs it to the multiplier 3730. Multiplier 3730 calculates e × c using data e from selector 3703C and data c from selector 3704C. Then, a calculation result of e × c (= (a + b) × c) is output from the multiplier 3730 to the scheduler 35.

さらに、別の例として、演算式a−b+cの処理を実行する場合の演算部37の動作を図13及び図14を用いて説明する。なお、図13は、演算式a−b+cの処理を実行させるためのシーケンスデータを示す。そして、図13に示すようなシーケンスデータによって演算式a−b+cの処理を実行する場合における、演算部37内のデータの流れを図14に示す。なお、図14において、入力ポートa、b及びcは、スケジューラ35からの入力を示す。   As another example, the operation of the calculation unit 37 when executing the processing of the calculation expression a−b + c will be described with reference to FIGS. 13 and 14. FIG. 13 shows sequence data for executing the processing of the arithmetic expression a−b + c. FIG. 14 shows the flow of data in the arithmetic unit 37 when the processing of the arithmetic expression a−b + c is executed with the sequence data as shown in FIG. In FIG. 14, input ports a, b, and c indicate inputs from the scheduler 35.

例えば、図13において、減算マクロ内のセレクタ3701Bに対する選択信号(4a)には「0」が設定されており、セレクタ3702Bに対する選択信号(4b)には「1」が設定されている。従って、図14に示すように、セレクタ3701Bは、選択信号(4a)に従って、入力ポートaから入力されたデータ(データaと呼ぶ)を選択し、FF3705Bを介してセレクタ3703Bに出力する。また、セレクタ3702Bは、選択信号(4b)に従って、入力ポートbから入力されたデータ(データbと呼ぶ)を選択し、FF3706Bを介してセレクタ3704Bに出力する。   For example, in FIG. 13, “0” is set to the selection signal (4a) for the selector 3701B in the subtraction macro, and “1” is set to the selection signal (4b) for the selector 3702B. Therefore, as shown in FIG. 14, the selector 3701B selects the data (referred to as data a) input from the input port a according to the selection signal (4a), and outputs it to the selector 3703B via the FF 3705B. The selector 3702B selects data (referred to as data b) input from the input port b according to the selection signal (4b), and outputs the data to the selector 3704B via the FF 3706B.

また、図13において、セレクタ3703Bに対する選択信号(4c)には「3」が設定されており、セレクタ3704Dに対する選択信号(4d)にも「3」が設定されている。従って、図14に示すように、セレクタ3703Bは、選択信号(4c)に従って、FF3705Bからのデータaを選択し、減算器3720に出力する。また、セレクタ3704Bは、選択信号(4d)に従って、FF3706Bからのデータbを選択し、減算器3720に出力する。そして、減算器3720は、セレクタ3703Bからのデータaとセレクタ3704Bからのデータbとを用いて、a−bを計算する。   In FIG. 13, “3” is set to the selection signal (4c) for the selector 3703B, and “3” is also set to the selection signal (4d) for the selector 3704D. Therefore, as shown in FIG. 14, the selector 3703B selects the data a from the FF 3705B according to the selection signal (4c) and outputs it to the subtractor 3720. The selector 3704B selects the data b from the FF 3706B according to the selection signal (4d), and outputs it to the subtractor 3720. Then, the subtractor 3720 calculates a−b by using the data a from the selector 3703B and the data b from the selector 3704B.

一方、図13において、加算マクロ内のセレクタ3702Aに対する選択信号(3b)には「2」が設定されている。従って、セレクタ3702Aは、選択信号(3b)に従って、入力ポートcから入力されたデータ(データcと呼ぶ)を選択し、FF3706Aを介してセレクタ3704Aに出力する。なお、図13において、入力ポートcに対するdelay(7c)には「5」が設定されているため、セレクタ3702Aは、この値分遅延させてから出力する。   On the other hand, in FIG. 13, “2” is set in the selection signal (3b) for the selector 3702A in the addition macro. Accordingly, the selector 3702A selects the data (referred to as data c) input from the input port c according to the selection signal (3b), and outputs it to the selector 3704A via the FF 3706A. In FIG. 13, since “5” is set in delay (7c) for the input port c, the selector 3702A delays this value before outputting.

また、図13において、加算マクロ内のセレクタ3703Aに対する選択信号(3c)には「0」が設定されており、セレクタ3704Aに対する選択信号(3d)には「3」が設定されている。従って、セレクタ3703Aは、選択信号(3c)に従って、減算器3720からのデータ(すなわち、a−bの結果。データfと呼ぶ。)を選択し、加算器3710に出力する。また、セレクタ3704Aは、選択信号(3d)に従って、FF3706Aからのデータcを選択し、加算器3710に出力する。そして、加算器3710は、セレクタ3703Aからのデータfとセレクタ3704Aからのデータcとを用いて、f+cを計算する。そして、f+c(=a−b+c)の計算結果が加算器3710からスケジューラ35に出力される。   In FIG. 13, “0” is set to the selection signal (3c) for the selector 3703A in the addition macro, and “3” is set to the selection signal (3d) for the selector 3704A. Accordingly, the selector 3703A selects the data from the subtractor 3720 (that is, the result of ab, referred to as data f) according to the selection signal (3c), and outputs it to the adder 3710. The selector 3704A selects the data c from the FF 3706A according to the selection signal (3d), and outputs the data c to the adder 3710. Adder 3710 then calculates f + c using data f from selector 3703A and data c from selector 3704A. Then, the calculation result of f + c (= a−b + c) is output from the adder 3710 to the scheduler 35.

なお、上で説明したスケジュールデータ及びシーケンスデータは、プログラムから作成される場合もあれば、人手によって作成される場合もある。   The schedule data and sequence data described above may be created from a program or may be created manually.

次に、図15乃至図17を用いて、図1に示したシステムの処理について説明する。なお、ここでは、予め作成されたスケジュールデータ及びシーケンスデータが、ユーザ端末に格納されているものとする。まず、ユーザは、処理を開始する前段階として、必要なデータを演算処理装置3に設定する。具体的には、ユーザは、ユーザ端末を操作して、演算処理装置3にアクセスする。そして、ユーザは、ユーザ端末を操作して、処理に使用する演算データを演算処理装置3に送信する。演算処理装置3は、ユーザ端末から演算データを受信し、メモリ31に格納する(図15:ステップ(S1))。また、ユーザは、ユーザ端末を操作して、スケジュールデータを演算処理装置3に送信する。演算処理装置3は、ユーザ端末からスケジュールデータを受信し、スケジュールテーブル32に格納する(ステップ(S2))。また、ユーザは、ユーザ端末を操作して、シーケンスデータを演算処理装置3に送信する。演算処理装置3は、ユーザ端末からシーケンスデータを受信し、シーケンステーブル33に格納する(ステップ(S3))。これで、前段階の処理は、完了したことになる。   Next, processing of the system shown in FIG. 1 will be described with reference to FIGS. Here, it is assumed that schedule data and sequence data created in advance are stored in the user terminal. First, the user sets necessary data in the arithmetic processing unit 3 as a stage before starting the processing. Specifically, the user accesses the arithmetic processing device 3 by operating the user terminal. And a user operates a user terminal and transmits the arithmetic data used for a process to the arithmetic processing apparatus 3. FIG. The arithmetic processing device 3 receives the arithmetic data from the user terminal and stores it in the memory 31 (FIG. 15: step (S1)). Further, the user operates the user terminal to transmit schedule data to the arithmetic processing device 3. The arithmetic processing unit 3 receives the schedule data from the user terminal and stores it in the schedule table 32 (step (S2)). In addition, the user operates the user terminal to transmit the sequence data to the arithmetic processing device 3. The arithmetic processing unit 3 receives the sequence data from the user terminal and stores it in the sequence table 33 (step (S3)). This completes the previous process.

そして、ユーザは、ユーザ端末を操作して、演算開始指示を演算処理装置3に送信する(図16:ステップ(S4))。演算処理装置3は、ユーザ端末からの演算開始指示を受信し、当該演算開始指示をスケジューラ35とシーケンサ36とに出力する。   Then, the user operates the user terminal to transmit a calculation start instruction to the calculation processing device 3 (FIG. 16: Step (S4)). The arithmetic processing device 3 receives a calculation start instruction from the user terminal and outputs the calculation start instruction to the scheduler 35 and the sequencer 36.

そして、スケジューラ35は、演算開始指示を受信すると、スケジュールテーブル32からスケジュールデータを読み出す(図17:ステップ(S5))。例えば図4に示したスケジュールデータでは、1行目から3行目までがデータ・リード、4行目がデータ・ライトとなっており、図4に示したようなスケジュールデータがスケジュールテーブル32に格納されている場合には、4レコード分のスケジュールデータが読み出される。また、シーケンサ36は、演算開始指示を受信すると、シーケンステーブル33から1レコード分のシーケンスデータを読み出す(ステップ(S6))。   When the scheduler 35 receives the calculation start instruction, the scheduler 35 reads the schedule data from the schedule table 32 (FIG. 17: Step (S5)). For example, in the schedule data shown in FIG. 4, the first to third lines are data read and the fourth line is data write, and the schedule data as shown in FIG. If it is, the schedule data for 4 records is read out. When the sequencer 36 receives the calculation start instruction, the sequencer 36 reads sequence data for one record from the sequence table 33 (step (S6)).

そして、スケジューラ35は、読み出したスケジュールデータに従って、メモリコントローラ34を介してメモリ31から演算データを読み出し(ステップ(S7))、読み出した演算データを演算部37に出力する(ステップ(S8))。具体的には、スケジューラ35は、データ・リードに関するスケジュールデータに従って、演算データを読み出す。例えば、データ・リードに関する、3レコード分のスケジュールデータが読み出された場合には、各レコードについて、当該レコードの設定に従って、演算データが読み出され、入力ポートa、b又はcを介して演算部37に出力される。   Then, the scheduler 35 reads calculation data from the memory 31 via the memory controller 34 in accordance with the read schedule data (step (S7)), and outputs the read calculation data to the calculation unit 37 (step (S8)). Specifically, the scheduler 35 reads out the calculation data according to the schedule data regarding the data read. For example, when schedule data for three records related to data read is read, the calculation data is read for each record according to the setting of the record, and is calculated via the input port a, b, or c. Is output to the unit 37.

また、シーケンサ36は、読み出した1レコード分のシーケンスデータを演算部37に出力する(ステップ(S9))。   The sequencer 36 outputs the read sequence data for one record to the calculation unit 37 (step (S9)).

そして、演算部37は、入力された演算データ及びシーケンスデータに従って演算処理を実行する(ステップ(S10))。すなわち、シーケンスデータに含まれる各選択信号に従って、演算部37における演算マクロ内の各セレクタが上で述べたような動作を行うことにより、所定の演算式に対応する演算処理を実行する。   And the calculating part 37 performs a calculation process according to the input calculation data and sequence data (step (S10)). That is, according to each selection signal included in the sequence data, each selector in the calculation macro in the calculation unit 37 performs the operation as described above, thereby executing a calculation process corresponding to a predetermined calculation expression.

そして、演算部37は、シーケンスデータに基づく演算処理が完了すると、最終的な演算結果である演算式結果データをスケジューラ35に出力する(ステップ(S11))。スケジューラ35は、演算部37から演算式結果データを受信する。そして、スケジューラ35は、スケジュールデータに従って、メモリコントローラ34を介してメモリ31に演算式結果データを書き込む(ステップ(S12))。具体的には、ステップ(S5)において読み出した、データ・ライトに関するスケジュールデータに従い、当該スケジュールデータの先頭アドレス(AS1)及び連続領域のワード数(NCW)によって特定される領域に演算式結果データを書き込む。そして、スケジューラ35、シーケンサ36及び演算部37は、スケジュールデータ及びシーケンスデータに従って、ステップ(S7)乃至ステップ(S12)の処理を繰り返す。なお、シーケンスデータにおける(8)SKIP_INTERVALと、(9)SKIP_WORKとを適切に設定しておくことで、所定の間隔毎に処理をスキップさせるようなことも可能である。   Then, when the arithmetic processing based on the sequence data is completed, the arithmetic unit 37 outputs arithmetic expression result data as a final arithmetic result to the scheduler 35 (step (S11)). The scheduler 35 receives arithmetic expression result data from the arithmetic unit 37. Then, the scheduler 35 writes arithmetic expression result data to the memory 31 via the memory controller 34 in accordance with the schedule data (step (S12)). Specifically, according to the schedule data related to data / write read in step (S5), the calculation result data is stored in the area specified by the start address (AS1) of the schedule data and the number of words in the continuous area (NCW). Write. Then, the scheduler 35, the sequencer 36, and the calculation unit 37 repeat the processing from step (S7) to step (S12) according to the schedule data and the sequence data. Note that (8) SKIP_INTERVAL and (9) SKIP_WORK in the sequence data can be appropriately set to skip the processing at predetermined intervals.

そして、ユーザは、全ての演算処理が完了した後、ユーザ端末を操作して、演算処理装置3のメモリ31から処理結果を取得し、表示装置等に表示する(ステップ(S13))。なお、処理途中のデータをユーザ端末の表示装置等に表示させるようにしてもよい。   Then, after all the arithmetic processing is completed, the user operates the user terminal, acquires the processing result from the memory 31 of the arithmetic processing device 3, and displays it on the display device or the like (step (S13)). In addition, you may make it display the data in the middle of a process on the display apparatus of a user terminal.

以上のような処理を実施することにより、演算データの読み出しと演算回路の再構成とを、それぞれスケジュールデータとシーケンスデータとに設定できるので、自由度が高くなり、合理的に演算処理を実現することができる。例えばループ処理において所定の間隔毎に処理をスキップさせるような場合には、シーケンスデータを適切に設定することで実現可能である。   By carrying out the processing as described above, it is possible to set calculation data readout and calculation circuit reconfiguration to schedule data and sequence data, respectively, so that the degree of freedom is increased and rational calculation processing is realized. be able to. For example, when the processing is skipped at predetermined intervals in the loop processing, it can be realized by appropriately setting the sequence data.

以上本技術の一実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、図4に示したスケジュールデータや図6に示したシーケンスデータの構成は一例であって、上で述べたような演算データの読み出し、演算回路の再構成などを実現できれば、他の構成を採用することも可能である。   Although one embodiment of the present technology has been described above, the present invention is not limited to this. For example, the configuration of the schedule data shown in FIG. 4 and the sequence data shown in FIG. 6 is an example, and other configurations can be used as long as the operation data can be read and the operation circuit can be reconfigured as described above. It is also possible to adopt.

以上本実施の形態をまとめると以下のようになる。   The present embodiment can be summarized as follows.

本演算処理装置は、複数の演算回路を有し、当該複数の演算回路のうち少なくともいずれかを用いて所定の演算式に対応する演算処理を行う動的再構成演算回路と、演算データを格納するメモリと、所定の演算式に対応する演算処理において使用すべき演算回路に関する情報を含むシーケンスデータを所定の演算式毎に格納するシーケンスデータ格納部と、所定の演算式に対応する演算処理において使用すべき演算データを格納している、メモリ内の領域を示すアドレスを含むスケジュールデータを格納するスケジュールデータ格納部と、演算開始指示を受け付けた場合、シーケンスデータ格納部からシーケンスデータを読み出し、動的再構成演算回路に出力するシーケンサと、演算開始指示を受け付けた場合、スケジュールデータ格納部からスケジュールデータを読み出し、当該スケジュールデータに従ってメモリから演算データを読み出して動的再構成演算回路に出力するスケジューラとを有する。そして、上で述べた複数の演算回路の各々は、入力データに対して所定の演算子に対応する計算を実施し、演算結果データを他の演算回路に出力する演算器と、スケジューラからの演算データと他の演算回路からの演算結果データとのうち、シーケンスデータに基づき入力データとして使用すべきデータを選択し、演算器に出力するセレクタとを有する。   The arithmetic processing apparatus includes a plurality of arithmetic circuits, a dynamic reconfiguration arithmetic circuit that performs arithmetic processing corresponding to a predetermined arithmetic expression using at least one of the arithmetic circuits, and stores arithmetic data A sequence data storage unit that stores, for each predetermined arithmetic expression, sequence data including information relating to an arithmetic circuit to be used in the arithmetic processing corresponding to the predetermined arithmetic expression, and an arithmetic process corresponding to the predetermined arithmetic expression The schedule data storage unit that stores the calculation data to be used and stores the schedule data including the address indicating the area in the memory, and when the calculation start instruction is received, the sequence data is read from the sequence data storage unit If a sequencer that outputs to a static reconfiguration arithmetic circuit and an operation start instruction are accepted, the schedule data storage unit Read the schedule data, and a scheduler for outputting read the operation data from the memory to the dynamically reconfigurable processor circuit in accordance with the schedule data. Each of the plurality of arithmetic circuits described above performs a calculation corresponding to a predetermined operator on the input data, outputs an operation result data to another arithmetic circuit, and an operation from the scheduler. A selector that selects data to be used as input data based on sequence data from the data and operation result data from another arithmetic circuit and outputs the selected data to the arithmetic unit.

このようにすれば、演算回路内の演算器は、演算結果を他の演算回路に出力するので、メモリへのアクセスの回数が低減され、処理速度の向上を図ることができる。また、動的再構成演算回路を使用しているので、ハードウェアのリソース制限も問題にはならない。   According to this configuration, since the arithmetic unit in the arithmetic circuit outputs the arithmetic result to another arithmetic circuit, the number of accesses to the memory is reduced, and the processing speed can be improved. Further, since the dynamic reconfiguration arithmetic circuit is used, the hardware resource limitation is not a problem.

また、上で述べた動的再構成演算回路が、シーケンスデータに基づき演算結果データのうち所定の演算式に対応する演算処理の結果に該当する演算式結果データを選択し、スケジューラに出力する回路を有するようにしてもよい。   In addition, the dynamic reconfiguration arithmetic circuit described above selects the arithmetic expression result data corresponding to the result of the arithmetic processing corresponding to the predetermined arithmetic expression from the operation result data based on the sequence data, and outputs it to the scheduler You may make it have.

さらに、上で述べたスケジュールデータが、演算式結果データの格納先となる、メモリ内の領域を示すアドレスを含む場合もある。そして、上で述べたスケジューラが、スケジュールデータに従って動的再構成演算回路からの演算式結果データをメモリに書き込むようにしてもよい。   Furthermore, the schedule data described above may include an address indicating an area in the memory where the arithmetic expression result data is stored. Then, the scheduler described above may write the arithmetic expression result data from the dynamic reconfiguration arithmetic circuit in the memory according to the schedule data.

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。   The following supplementary notes are further disclosed with respect to the embodiments including the above examples.

(付記1)
複数の演算回路を有し、当該複数の演算回路のうち少なくともいずれかを用いて所定の演算式に対応する演算処理を行う動的再構成演算回路と、
演算データを格納するメモリと、
前記所定の演算式に対応する演算処理において使用すべき前記演算回路に関する情報を含むシーケンスデータを前記所定の演算式毎に格納するシーケンスデータ格納部と、
前記所定の演算式に対応する演算処理において使用すべき前記演算データを格納している、前記メモリ内の領域を示すアドレスを含むスケジュールデータを格納するスケジュールデータ格納部と、
演算開始指示を受け付けた場合、前記シーケンスデータ格納部から前記シーケンスデータを読み出し、前記動的再構成演算回路に出力するシーケンサと、
前記演算開始指示を受け付けた場合、前記スケジュールデータ格納部から前記スケジュールデータを読み出し、当該スケジュールデータに従って前記メモリから前記演算データを読み出して前記動的再構成演算回路に出力するスケジューラと、
を有し、
前記複数の演算回路の各々は、
入力データに対して所定の演算子に対応する計算を実施し、演算結果データを他の演算回路に出力する演算器と、
前記スケジューラからの前記演算データと前記他の演算回路からの演算結果データとのうち、前記シーケンスデータに基づき前記入力データとして使用すべきデータを選択し、前記演算器に出力するセレクタと、
を有する演算処理装置。
(Appendix 1)
A dynamic reconfiguration arithmetic circuit that has a plurality of arithmetic circuits and performs arithmetic processing corresponding to a predetermined arithmetic expression using at least one of the plurality of arithmetic circuits;
A memory for storing calculation data;
A sequence data storage unit that stores, for each of the predetermined arithmetic expressions, sequence data including information on the arithmetic circuit to be used in the arithmetic processing corresponding to the predetermined arithmetic expression;
A schedule data storage unit for storing schedule data including an address indicating an area in the memory, which stores the calculation data to be used in the calculation process corresponding to the predetermined calculation formula;
When receiving a calculation start instruction, a sequencer that reads the sequence data from the sequence data storage unit and outputs the sequence data to the dynamic reconfiguration arithmetic circuit;
When the calculation start instruction is accepted, the scheduler reads the schedule data from the schedule data storage unit, reads the calculation data from the memory according to the schedule data, and outputs the calculation data to the dynamic reconfiguration calculation circuit;
Have
Each of the plurality of arithmetic circuits is
An arithmetic unit that performs a calculation corresponding to a predetermined operator on the input data and outputs the operation result data to another arithmetic circuit;
A selector that selects data to be used as the input data based on the sequence data from among the calculation data from the scheduler and calculation result data from the other calculation circuit, and outputs to the calculator
An arithmetic processing unit having

(付記2)
前記動的再構成演算回路は、
前記シーケンスデータに基づき前記演算結果データのうち前記所定の演算式に対応する演算処理の結果に該当する演算式結果データを選択し、前記スケジューラに出力する回路
を有する付記1記載の演算処理装置。
(Appendix 2)
The dynamic reconfiguration arithmetic circuit is:
The arithmetic processing apparatus according to claim 1, further comprising a circuit that selects arithmetic expression result data corresponding to a result of arithmetic processing corresponding to the predetermined arithmetic expression from the arithmetic result data based on the sequence data, and outputs the selected arithmetic expression result data to the scheduler.

(付記3)
前記スケジュールデータが、前記演算式結果データの格納先となる、前記メモリ内の領域を示すアドレスを含み、
前記スケジューラは、前記スケジュールデータに従って前記動的再構成演算回路からの前記演算式結果データを前記メモリに書き込む
ことを特徴とする付記2記載の演算処理装置。
(Appendix 3)
The schedule data includes an address indicating an area in the memory that is a storage destination of the arithmetic expression result data,
The arithmetic processing device according to claim 2, wherein the scheduler writes the arithmetic expression result data from the dynamic reconfiguration arithmetic circuit in the memory according to the schedule data.

1 ネットワーク 3 演算処理装置
31 メモリ 32 スケジュールテーブル
33 シーケンステーブル 34 メモリコントローラ
35 スケジューラ 36 シーケンサ
37 演算部
DESCRIPTION OF SYMBOLS 1 Network 3 Arithmetic processor 31 Memory 32 Schedule table 33 Sequence table 34 Memory controller 35 Scheduler 36 Sequencer 37 Operation part

Claims (3)

複数の演算回路を有し、当該複数の演算回路のうち少なくともいずれかを用いて所定の演算式に対応する演算処理を行う動的再構成演算回路と、
演算データを格納するメモリと、
前記所定の演算式に対応する演算処理において使用すべき前記演算回路に関する情報を含むシーケンスデータを前記所定の演算式毎に格納するシーケンスデータ格納部と、
前記所定の演算式に対応する演算処理において使用すべき前記演算データを格納している、前記メモリ内の領域を示すアドレスを含むスケジュールデータを格納するスケジュールデータ格納部と、
演算開始指示を受け付けた場合、前記シーケンスデータ格納部から前記シーケンスデータを読み出し、前記動的再構成演算回路に出力するシーケンサと、
前記演算開始指示を受け付けた場合、前記スケジュールデータ格納部から前記スケジュールデータを読み出し、当該スケジュールデータに従って前記メモリから前記演算データを読み出して前記動的再構成演算回路に出力するスケジューラと、
を有し、
前記複数の演算回路の各々は、
入力データに対して所定の演算子に対応する計算を実施し、演算結果データを他の演算回路に出力する演算器と、
前記スケジューラからの前記演算データと前記他の演算回路からの演算結果データとのうち、前記シーケンスデータに基づき前記入力データとして使用すべきデータを選択し、前記演算器に出力するセレクタと、
を有する演算処理装置。
A dynamic reconfiguration arithmetic circuit that has a plurality of arithmetic circuits and performs arithmetic processing corresponding to a predetermined arithmetic expression using at least one of the plurality of arithmetic circuits;
A memory for storing calculation data;
A sequence data storage unit that stores, for each of the predetermined arithmetic expressions, sequence data including information on the arithmetic circuit to be used in the arithmetic processing corresponding to the predetermined arithmetic expression;
A schedule data storage unit for storing schedule data including an address indicating an area in the memory, which stores the calculation data to be used in the calculation process corresponding to the predetermined calculation formula;
When receiving a calculation start instruction, a sequencer that reads the sequence data from the sequence data storage unit and outputs the sequence data to the dynamic reconfiguration arithmetic circuit;
When the calculation start instruction is accepted, the scheduler reads the schedule data from the schedule data storage unit, reads the calculation data from the memory according to the schedule data, and outputs the calculation data to the dynamic reconfiguration calculation circuit;
Have
Each of the plurality of arithmetic circuits is
An arithmetic unit that performs a calculation corresponding to a predetermined operator on the input data and outputs the operation result data to another arithmetic circuit;
A selector that selects data to be used as the input data based on the sequence data from among the calculation data from the scheduler and calculation result data from the other calculation circuit, and outputs to the calculator
An arithmetic processing unit having
前記動的再構成演算回路は、
前記シーケンスデータに基づき前記演算結果データのうち前記所定の演算式に対応する演算処理の結果に該当する演算式結果データを選択し、前記スケジューラに出力する回路
を有する請求項1記載の演算処理装置。
The dynamic reconfiguration arithmetic circuit is:
The arithmetic processing device according to claim 1, further comprising: a circuit that selects arithmetic expression result data corresponding to a result of arithmetic processing corresponding to the predetermined arithmetic expression from the arithmetic result data based on the sequence data, and outputs the selected arithmetic expression result data to the scheduler. .
前記スケジュールデータが、前記演算式結果データの格納先となる、前記メモリ内の領域を示すアドレスを含み、
前記スケジューラは、前記スケジュールデータに従って前記動的再構成演算回路からの前記演算式結果データを前記メモリに書き込む
ことを特徴とする請求項2記載の演算処理装置。
The schedule data includes an address indicating an area in the memory that is a storage destination of the arithmetic expression result data,
The arithmetic processing apparatus according to claim 2, wherein the scheduler writes the arithmetic expression result data from the dynamic reconfiguration arithmetic circuit in the memory according to the schedule data.
JP2009080265A 2009-03-27 2009-03-27 Arithmetic processing unit Pending JP2010231645A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009080265A JP2010231645A (en) 2009-03-27 2009-03-27 Arithmetic processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009080265A JP2010231645A (en) 2009-03-27 2009-03-27 Arithmetic processing unit

Publications (1)

Publication Number Publication Date
JP2010231645A true JP2010231645A (en) 2010-10-14

Family

ID=43047373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009080265A Pending JP2010231645A (en) 2009-03-27 2009-03-27 Arithmetic processing unit

Country Status (1)

Country Link
JP (1) JP2010231645A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112200310A (en) * 2020-08-28 2021-01-08 厦门星宸科技有限公司 Intelligent processor, data processing method and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6474617A (en) * 1987-09-17 1989-03-20 Tsukuba Univ Floating-point arithmetic system
JPH10269059A (en) * 1997-03-27 1998-10-09 Sharp Corp Data processor
JP2002328881A (en) * 2001-04-26 2002-11-15 Sharp Corp Image processor, image processing method and portable video equipment
JP2006018453A (en) * 2004-06-30 2006-01-19 Fujitsu Ltd Semiconductor device
JP2006031127A (en) * 2004-07-12 2006-02-02 Fujitsu Ltd Reconfiguratable arithmetic unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6474617A (en) * 1987-09-17 1989-03-20 Tsukuba Univ Floating-point arithmetic system
JPH10269059A (en) * 1997-03-27 1998-10-09 Sharp Corp Data processor
JP2002328881A (en) * 2001-04-26 2002-11-15 Sharp Corp Image processor, image processing method and portable video equipment
JP2006018453A (en) * 2004-06-30 2006-01-19 Fujitsu Ltd Semiconductor device
JP2006031127A (en) * 2004-07-12 2006-02-02 Fujitsu Ltd Reconfiguratable arithmetic unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112200310A (en) * 2020-08-28 2021-01-08 厦门星宸科技有限公司 Intelligent processor, data processing method and storage medium
CN112200310B (en) * 2020-08-28 2023-11-24 星宸科技股份有限公司 Intelligent processor, data processing method and storage medium

Similar Documents

Publication Publication Date Title
KR20030064239A (en) Image processing device and method, and compiler used in image processing device
JP2006018413A (en) Processor and pipeline reconfiguration control method
JP4801605B2 (en) SIMD type microprocessor
JP2007272671A (en) Motion composition device, debugging device, write device and circuit design support system and method
JPH03286332A (en) Digital data processor
JPWO2011036918A1 (en) Data rearrangement circuit, variable delay circuit, fast Fourier transform circuit, and data rearrangement method
JP2010231645A (en) Arithmetic processing unit
CN103077069B (en) The method and device that instruction resolves
JP2002229970A (en) Simd product sum operation method, sum of product sum arithmetic circuit and semiconductor integrated circuit device
JP2009157613A (en) Reconfigurable circuit
JP2013239120A (en) Image processing device
JP2008198003A (en) Array type processor
JPH09305401A (en) Computer and compiler
JP2006293538A (en) Calculation system
JP6553694B2 (en) Processor element, programmable device and control method of processor element
JP5813484B2 (en) VLIW processor, instruction structure and instruction execution method
JPH1078868A (en) Data processor
JP2885197B2 (en) Arithmetic processing device and arithmetic processing method
JP6141073B2 (en) Information processing apparatus and information processing apparatus control method
JP4388643B2 (en) Multi-channel signal processor
JP2005267362A (en) Image processing method using simd processor and image processor
JP2006515446A (en) Data processing system with Cartesian controller that cross-references related applications
JP2008310719A (en) Block transfer instruction execution device and block transfer method
JP2001092658A (en) Data processing circuit and data processor
JP2015022588A (en) Conversion program and conversion method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130409