JP2009206611A - Dynamically reconfigurable operation unit, and semiconductor device - Google Patents
Dynamically reconfigurable operation unit, and semiconductor device Download PDFInfo
- Publication number
- JP2009206611A JP2009206611A JP2008044547A JP2008044547A JP2009206611A JP 2009206611 A JP2009206611 A JP 2009206611A JP 2008044547 A JP2008044547 A JP 2008044547A JP 2008044547 A JP2008044547 A JP 2008044547A JP 2009206611 A JP2009206611 A JP 2009206611A
- Authority
- JP
- Japan
- Prior art keywords
- output
- input
- logical operation
- operation unit
- logical
- 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.)
- Granted
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
Description
この発明は、動的に演算回路を構成することのできる動的再構成可能演算装置に関するものである。 The present invention relates to a dynamically reconfigurable arithmetic device capable of dynamically configuring an arithmetic circuit.
従来の動的再構成可能演算装置として、DSP(Digital Signal Processor)のような汎用性と、専用回路のような高い性能を併せ持つことのできる動的再構成デバイスがあった。このような従来の動的再構成デバイスでは、演算ユニットであるALU(Arithmetic Logic Unit)と、DMU(Data Management Unit)、レジスタファイル、バスセレクタ、命令メモリなどが含まれるプロセッサエレメント(PE)を2次元アレイ状に並べている。そして、命令メモリ内に格納された個々の命令コードにより、ALU/DMUで実行されるべき演算や、PE間の接続関係を指定していた(例えば、非特許文献1参照)。 As a conventional dynamic reconfigurable arithmetic device, there has been a dynamic reconfigurable device capable of having both versatility such as a DSP (Digital Signal Processor) and high performance such as a dedicated circuit. In such a conventional dynamic reconfiguration device, an arithmetic unit ALU (Arithmetic Logic Unit) and two processor elements (PE) including a DMU (Data Management Unit), a register file, a bus selector, an instruction memory, and the like are provided. They are arranged in a dimensional array. And the operation which should be performed by ALU / DMU and the connection relationship between PE were specified by each instruction code stored in the instruction memory (for example, refer nonpatent literature 1).
しかしながら、上記従来の動的再構成可能演算装置のように、ALUを含む複数のプロセッサエレメントの組み合わせで構成する場合、多様なアプリケーションを実現できる柔軟性がある反面、回路規模が大きくなってしまう問題があり、また、アプリケーションによっては、多種多様な処理が必要ではないものもあるため面積効率が悪くなるという問題があった。 However, when configured with a combination of a plurality of processor elements including an ALU as in the above-described conventional dynamic reconfigurable arithmetic device, there is a problem that a variety of applications can be realized, but the circuit scale increases. In addition, depending on the application, there is a problem that the area efficiency is deteriorated because there are some applications that do not require various kinds of processing.
この発明は上記のような課題を解決するためになされたもので、面積効率の高い動的再構成可能演算装置を得ることを目的とする。 The present invention has been made to solve the above-described problems, and an object of the present invention is to obtain a dynamic reconfigurable arithmetic device with high area efficiency.
この発明に係る動的再構成可能演算装置は、それぞれが、2入力の値の論理演算を行う複数の第1論理演算ユニットと、複数の第1論理演算ユニットの出力のうち二つの出力を入力として論理演算を行う複数の第2論理演算ユニットと、複数の第2論理演算ユニットの出力のうち二つの出力を入力として論理演算を行う複数の第3論理演算ユニットと、複数の第3論理演算ユニットの二つの出力を入力として論理演算を行う第4論理演算ユニットと、複数の第1論理演算ユニットの出力のうち一つの出力と複数の第2論理演算ユニットの出力のうち一つの出力とを選択する複数の第1接続選択手段と、複数の第1論理演算ユニットの出力のうち一つの出力と複数の第2論理演算ユニットの出力のうち一つの出力と複数の第3論理演算ユニットの出力のうち一つの出力とを選択する第2接続選択手段と、複数の第1論理演算ユニットの出力のうち一つの出力と複数の第2論理演算ユニットの出力のうち一つの出力と複数の第3論理演算ユニットの出力のうち一つの出力と第4論理演算ユニットの出力とを選択する第3接続選択手段とを備えたものである。 The dynamic reconfigurable arithmetic device according to the present invention inputs a plurality of first logical arithmetic units each performing a logical operation of two-input values and two outputs of the outputs of the plurality of first logical arithmetic units. A plurality of second logic operation units that perform logic operations, a plurality of third logic operation units that perform logic operations using two outputs of the outputs of the plurality of second logic operation units as inputs, and a plurality of third logic operations A fourth logical operation unit that performs a logical operation using the two outputs of the unit as an input, and one output among a plurality of first logical operation units and one output among a plurality of second logical operation units. A plurality of first connection selecting means to select, one output among the outputs of the plurality of first logic operation units, one output among the outputs of the plurality of second logic operation units, and a plurality of third logic operation units Second connection selecting means for selecting one of the outputs; one output among the outputs of the plurality of first logic operation units; one output among the outputs of the plurality of second logic operation units; And a third connection selecting means for selecting one of the outputs of the three logical operation units and the output of the fourth logical operation unit.
この発明の動的再構成可能演算装置は、複数の第1論理演算ユニットと、複数の第2論理演算ユニットと、複数の第3論理演算ユニットと、第4論理演算ユニットとをツリー状に接続し、これらの論理演算ユニットの出力を、複数の第1接続選択手段と、第2接続選択手段と、第3接続選択手段とによって選択的に切り替えるようにしたので、例えば、8並列の1段の論理演算、4並列の2段の論理演算、2並列の3段の論理演算、4段の論理演算といった論理演算が選択的に実行でき、論理演算に特化した面積効率の高い動的再構成可能演算装置を得ることができる。 The dynamic reconfigurable arithmetic device according to the present invention connects a plurality of first logic operation units, a plurality of second logic operation units, a plurality of third logic operation units, and a fourth logic operation unit in a tree shape. Since the outputs of these logical operation units are selectively switched by a plurality of first connection selection means, second connection selection means, and third connection selection means, for example, one stage in 8 parallels Logic operations such as 4-parallel 2-stage logic operations, 2-parallel 3-stage logic operations, 4-stage logic operations can be selectively executed, and area-specific dynamic re-operation specialized for logic operations A configurable computing device can be obtained.
実施の形態1.
図1は、この発明の実施の形態1による動的再構成可能演算装置を示す構成図である。
図において、動的再構成可能演算装置は、論理演算ユニット100〜107,200〜203,300,301,400、セレクタ500〜503を備えており、これらがツリー状に構成されている。論理演算ユニット100〜107,200〜203,300,301,400は、それぞれが2入力の論理演算ユニットであり、外部から与えられるセレクト信号sel100〜sel107、sel200〜sel203、sel300、sel301、sel400に基づいて、それぞれ論理演算ユニット内に備えた複数種類の論理演算素子の出力をそれぞれの論理演算ユニットの出力として選択するように構成されている(論理演算ユニット内の構成については後述する)。ここで、論理演算ユニット100〜107が第1論理演算ユニットに対応し、論理演算ユニット200〜203が第2論理演算ユニット、論理演算ユニット300,301が第3論理演算ユニット、論理演算ユニット400が第4論理演算ユニットに対応している。
FIG. 1 is a block diagram showing a dynamically reconfigurable arithmetic device according to
In the figure, the dynamically reconfigurable arithmetic unit includes logical
論理演算ユニット100には、入力データ100aと入力データ100bが入力されるように構成されている。同様に、論理演算ユニット101には、入力データ101aと入力データ101bが、論理演算ユニット102には、入力データ102aと入力データ102bが、論理演算ユニット103には、入力データ103aと入力データ103bが、論理演算ユニット104には、入力データ104aと入力データ104bが、論理演算ユニット105には、入力データ105aと入力データ105bが、論理演算ユニット106には、入力データ106aと入力データ106bが、論理演算ユニット107には、入力データ107aと入力データ107bが、それぞれ接続される。出力100c〜107cは、それぞれ、論理演算ユニット100〜107の出力である。
The
論理演算ユニット200には、論理演算ユニット100の出力100cと論理演算ユニット101の出力101cが入力される。同様に、論理演算ユニット201には、論理演算ユニット102の出力102cと論理演算ユニット103の出力103cが、論理演算ユニット202には、論理演算ユニット104の出力104cと論理演算ユニット105の出力105cが、論理演算ユニット203には、論理演算ユニット106の出力106cと論理演算ユニット107の出力107cが、それぞれ接続される。出力200a〜203aは、それぞれ、論理演算ユニット200〜203の出力である。
The
論理演算ユニット300には、論理演算ユニット200の出力200aと論理演算ユニット201の出力201aが入力される。同様に、論理演算ユニット301には、論理演算ユニット202の出力202aと論理演算ユニット203の出力203aが入力される。出力300a,301aは、それぞれ論理演算ユニット300,301の出力である。
論理演算ユニット400には、論理演算ユニット300の出力300aと論理演算ユニット301の出力301aが入力される。出力400aは、論理演算ユニット400の出力である。
The
The
セレクタ500は、2to1セレクタであり、外部から与えられる1ビットのセレクト信号sel500に基づいて、論理演算ユニット200の出力200aと論理演算ユニット104の出力104cのうち一方を選択するように構成されている。同様に、セレクタ501は、セレクト信号sel501に基づいて、論理演算ユニット201の出力201aと論理演算ユニット105の出力105cのうち一方を選択する。出力500a,501aは、セレクタ500,501の選択出力である。また、これらセレクタ500,501が第1接続選択手段に対応している。
The
セレクタ502は、3to1セレクタであり、外部から与えられる2ビットのセレクト信号sel502に基づいて、論理演算ユニット300の出力300a、論理演算ユニット202の出力202a、論理演算ユニット106の出力106cのうちいずれかを選択するように構成されている。出力502aは、セレクタ502の出力である。セレクタ503は、4to1セレクタであり、外部から与えられる2ビットのセレクト信号sel503に基づいて、論理演算ユニット400の出力400a、論理演算ユニット301の出力301a、論理演算ユニット203の出力203a、論理演算ユニット107の出力107cのうちいずれかを選択するように構成されている。出力503aは、セレクタ503の出力である。また、セレクタ502が第2接続選択手段に、セレクタ503が第3接続選択手段に対応している。
The
図2は、論理演算ユニット100〜107,200〜203,300,301,400の内部の構成を示す図である。すなわち、図2に示す論理演算ユニット1が図1の各論理演算ユニット100〜107,200〜203,300,301,400に対応し、図2中のセレクト信号SELが、図1におけるセレクト信号sel100〜107,200〜203,300,301,400に対応している。
FIG. 2 is a diagram illustrating an internal configuration of the
論理演算ユニット1は、NOT演算子2、2入力EXOR演算子3、2入力OR演算子4、2入力AND演算子5、セレクタ6を備えている。NOT演算子2は、入力データINBの否定を演算し、出力2aを出力する。2入力EXOR演算子3は、入力データINAと入力データINBの排他的論理和を演算し、出力3aを出力する。2入力OR演算子4は、入力データINAと入力データINBの論理和を演算し、出力4aを出力する。2入力AND演算子5は、入力データINAと入力データINBの論理積を演算し、出力5aを出力する。セレクタ6は、4to1のセレクタであり、外部から与えられる2ビットのセレクト信号SELに基づいて、上記演算子出力2a〜5aを選択し、論理演算ユニット1の出力として出力OUTを出力する。
The
このように構成された動的再構成可能演算装置では、入力データ100aと100bが入力された論理演算ユニット100からは、外部から入力される2ビットのセレクト信号sel100により選択された論理演算出力100cが得られる。同様に、入力データ101aと101bが入力された論理演算ユニット101からは、セレクト信号sel101により選択された論理演算出力101cが得られ、入力データ102aと102bが入力された論理演算ユニット102からは、セレクト信号sel102により選択された論理演算出力102cが得られ、入力データ103aと103bが入力された論理演算ユニット103からは、セレクト信号sel103により選択された論理演算出力103cが得られ、入力データ104aと104bが入力された論理演算ユニット104からは、セレクト信号sel104により選択された論理演算出力104cが得られ、入力データ105aと105bが入力された論理演算ユニット105からは、セレクト信号sel105により選択された論理演算出力105cが得られ、入力データ106aと106bが入力された論理演算ユニット106からは、セレクト信号sel106により選択された論理演算出力106cが得られ、入力データ107aと107bが入力された論理演算ユニット107からは、セレクト信号sel107により選択された論理演算出力107cが得られる。
In the dynamically reconfigurable arithmetic unit configured as described above, the
続いて、論理演算ユニット100,101で得られた論理演算出力100cと101cが論理演算ユニット200に入力され、2ビットのセレクト信号sel200により選択された論理演算出力100cと101cの論理演算出力200aが得られる。同様に、論理演算ユニット102,103で得られた論理演算出力102cと103cが入力された論理演算ユニット201からは、セレクト信号sel201により選択された論理演算出力102cと103cの論理演算出力201aが得られ、論理演算ユニット104,105で得られた論理演算出力104cと105cが入力された論理演算ユニット202からは、セレクト信号sel202により選択された論理演算出力104cと105cの論理演算出力202aが得られ、論理演算ユニット106,107で得られた論理演算出力106cと107cが入力された論理演算ユニット203からは、セレクト信号sel203により選択された論理演算出力106cと107cの論理演算出力203aが得られる。
Subsequently, the
続いて、論理演算ユニット200,201で得られた論理演算出力200aと201aが論理演算ユニット300に入力され、2ビットのセレクト信号sel300により選択された論理演算出力200aと201aの論理演算出力300aが得られる。同様に、論理演算ユニット202,203で得られた論理演算出力202aと203aが入力された論理演算ユニット301からは、セレクト信号sel301により選択された論理演算出力202aと203aの論理演算出力301aが得られる。
Subsequently, the
続いて、論理演算ユニット300,301で得られた論理演算出力300aと301aが論理演算ユニット400に入力され、2ビットのセレクト信号sel400により選択された論理演算出力300aと301aの論理演算出力400aが得られる。
Subsequently, the
また、上記演算で得られた論理演算出力200aと104cがセレクタ500に入力され、外部から入力される1ビットのセレクト信号sel500により選択され、セレクタ出力500aが得られる。同様に、論理演算出力201aと105cが入力されたセレクタ501からは、1ビットのセレクト信号sel501により選択されたセレクタ出力501aが得られ、論理演算出力300a,202a,106cが入力されたセレクタ502からは、2ビットのセレクト信号sel502により選択されたセレクタ出力502aが得られ、論理演算出力400a,301a,203a,107cが入力されたセレクタ503からは、2ビットのセレクト信号sel503により選択されたセレクタ出力503aが得られる。
なお、以上の演算で得られた論理演算出力100c,101c,102c,103c,セレクタ出力501a〜503aは、いずれも外部に出力することができる。
Further, the
Note that the
次に、実施の形態1の動的再構成可能演算装置における128ビット排他的論理和演算を行う場合の具体例について説明する。
図3−1および図3−2は、8並列排他的論理和演算時の回路構成を示す説明図である。
1つの論理演算ユニットで16ビットの演算ができるものとすると、128ビットの2入力論理演算を行うためには、論理演算ユニットが8並列で必要となる。128ビットの2入力をINAとINBとすると、論理演算ユニット100の一方の入力100aにINAの112〜127ビット目を入力し、もう一方の入力100bにINBの112〜127ビット目を入力する。なお、図中、例えば[127:112]が112〜127ビット目のデータといったように、[b:a]がa〜bビット目のデータを表している。同様に、論理演算ユニット101の入力101aと101bにはそれぞれINAとINBの96〜111ビット目を入力し、論理演算ユニット102の入力102aと102bにはそれぞれINAとINBの80〜95を入力し、論理演算ユニット103の入力103aと103bにはそれぞれINAとINBの64〜79を入力し、論理演算ユニット104の入力104aと104bにはそれぞれINAとINBの48〜63を入力し、論理演算ユニット105の入力105aと105bにはそれぞれINAとINBの32〜47ビット目を入力し、論理演算ユニット106の入力106aと106bにはそれぞれINAとINBの16〜31ビット目を入力し、論理演算ユニット107の入力107aと107bにはそれぞれINAとINBの0〜15ビット目を入力する。
Next, a specific example in the case of performing a 128-bit exclusive OR operation in the dynamically reconfigurable arithmetic device of the first embodiment will be described.
FIGS. 3A and 3B are explanatory diagrams illustrating a circuit configuration at the time of 8-parallel exclusive OR operation.
Assuming that a single logical operation unit can perform a 16-bit operation, in order to perform a 128-bit 2-input logical operation, 8 logical operation units are required in parallel. Assuming that the two 128-bit inputs are INA and INB, the 112th to 127th bits of INA are input to one
また、論理演算ユニット100〜107において、それぞれEXOR演算子の出力を選択するようにセレクト信号sel100〜107を設定することで、論理演算ユニット100の出力100cからは、INAとINBの排他的論理和演算出力OUTの112〜127ビット目が出力される。同様に、論理演算ユニット101の出力101cからはOUTの96〜111ビット目が出力され、論理演算ユニット102の出力102cからはOUTの80〜95ビット目が出力され、論理演算ユニット103の出力103cからはOUTの64〜79ビット目が出力され、論理演算ユニット104の出力104cからはOUTの48〜63ビット目が出力され、論理演算ユニット105の出力105cからはOUTの32〜47ビット目が出力され、論理演算ユニット106の出力106cからはOUTの16〜31ビット目が出力され、論理演算ユニット107の出力107cからはOUTの0〜15ビット目が出力される。
In addition, by setting the select signals sel100 to 107 so as to select the output of the EXOR operator in the
続いて、論理演算ユニット104〜107の出力104c〜107cは、それぞれセレクタ500〜503に入力される。セレクタ500では、セレクト信号sel500により出力104cが選択され、セレクタ出力500aからはINAとINBの排他的論理和演算出力OUTの48〜63ビット目が出力される。同様に、セレクタ501では、セレクト信号sel501により出力105cが選択され、セレクタ出力501aからはOUTの32〜47ビット目が出力され、セレクタ502では、セレクト信号sel502により出力106cが選択され、セレクタ出力502aからはOUTの16〜31ビット目が出力され、セレクタ503では、セレクト信号sel503により出力107cが選択され、セレクタ出力503aからはOUTの0〜16ビット目が出力される。以上により、128ビットの2入力INAとINBの排他的論理和演算出力OUTが求められる。
Subsequently, the
次に、4並列の4入力論理和演算の動作例を説明する。
図4−1および図4−2は、4入力論理和演算を4並列で動作させる場合の回路構成を示す説明図である。
4入力の論理和演算を行うには、2入力の論理演算ユニットが1段目に2個、2段目に1個、計3個必要となる。従って、図4−1および図4−2に示す1段目に8個の論理演算ユニットが配置されている回路構成では、4並列に4入力論理和演算を行うことができる。
Next, an operation example of 4-parallel 4-input OR operation will be described.
FIGS. 4A and 4B are explanatory diagrams illustrating a circuit configuration in a case where 4-input OR operation is performed in parallel.
In order to perform a 4-input OR operation, two 2-input logic operation units are required, ie, two in the first stage and one in the second stage. Therefore, in the circuit configuration in which eight logical operation units are arranged in the first stage shown in FIG. 4A and FIG. 4B, four-input OR operation can be performed in parallel.
まず、論理演算ユニット100の一方の入力100aにはINA0、もう一方の入力100bにはINA1を入力し、OR演算子の出力を選択するようにsel100を設定することにより、論理演算ユニット100の出力100cとしてINA0とINA1の論理和演算出力が得られる。同様に、入力101aにINA2、入力101bにINA3を入力し、OR演算子の出力を選択するようにsel101を設定した論理演算ユニット101からは、INA2とINA3の論理和演算出力101cが得られ、入力102aにINB0、入力102bにINB1を入力し、OR演算子の出力を選択するようにsel102を設定した論理演算ユニット102からは、INB0とINB1の論理和演算出力102cが得られ、入力103aにINB2、入力103bにINB3を入力し、OR演算子の出力を選択するようにsel103を設定した論理演算ユニット103からは、INB2とINB3の論理和演算出力103cが得られ、入力104aにINC0、入力104bにINC1を入力し、OR演算子の出力を選択するようにsel104を設定した論理演算ユニット104からは、INC0とINC1の論理和演算出力104cが得られ、入力105aにINC2、入力105bにINC3を入力し、OR演算子の出力を選択するようにsel105を設定した論理演算ユニット105からは、INC2とINC3の論理和演算出力105cが得られ、入力106aにIND0、入力106bにIND1を入力し、OR演算子の出力を選択するようにsel106を設定した論理演算ユニット106からは、IND0とIND1の論理和演算出力106cが得られ、入力107aにIND2、入力107bにIND3を入力し、OR演算子の出力を選択するようにsel107を設定した論理演算ユニット107からは、IND2とIND3の論理和演算出力107cが得られる。
First, INA0 is input to one
続いて、論理演算ユニット200の一方の入力に論理演算ユニット100の出力100cを入力し、もう一方の入力に論理演算ユニット101の出力101cを入力し、OR演算子の出力を選択するようにsel200を設定することにより、論理演算ユニット200の出力200aとして、100cと101cの論理和演算出力、すなわち、INA0、INA1、INA2、INA3の論理和演算出力が得られる。同様に、論理演算ユニット102の出力102cと論理演算ユニット103の出力103cを入力し、OR演算子の出力を選択するようにsel201を設定した論理演算ユニット201からは、102cと103cの論理和演算出力、すなわち、INB0、INB1、INB2、INB3の論理和演算出力201aが得られ、論理演算ユニット104の出力104cと論理演算ユニット105の出力105cを入力し、OR演算子の出力を選択するようにsel202を設定した論理演算ユニット202からは、104cと105cの論理和演算出力、すなわち、INC0、INC1、INC2、INC3の論理和演算出力202aが得られ、論理演算ユニット106の出力106cと論理演算ユニット107の出力107cを入力し、OR演算子の出力を選択するようにsel203を設定した論理演算ユニット203からは、106cと107cの論理和演算出力、すなわち、IND0、IND1、IND2、IND3の論理和演算出力203aが得られる。
Subsequently, the
続いて、一方の入力に論理演算ユニット200の出力200aを入力し、もう一方の入力に論理演算ユニット104の出力104cを入力したセレクタ500には、出力200aを選択するようにセレクト信号sel500を設定することにより、OUTAとして、論理演算ユニット200の出力200a、すなわち、INA0、INA1、INA2、INA3の論理和演算出力が得られる。同様に、論理演算ユニット201の出力201aと論理演算ユニット105の出力105cを入力したセレクタ501には、出力201aを選択するようにセレクト信号sel501を設定することにより、OUTBとして、論理演算ユニット201の出力201a、すなわち、INB0、INB1、INB2、INB3の論理和演算出力が得られる。論理演算ユニット300の出力300a、論理演算ユニット202の出力202a、論理演算ユニット106の出力106cを入力したセレクタ502には、出力202aを選択するようにセレクト信号sel502を設定することにより、OUTCとして、論理演算ユニット202の出力202a、すなわち、INC0、INC1、INBC、INC3の論理和演算出力が得られる。論理演算ユニット400の出力400a、論理演算ユニット301の出力301a、論理演算ユニット203の出力203a、論理演算ユニット107の出力107cを入力したセレクタ503には、出力203aを選択するようにセレクト信号sel503を設定することにより、OUTDとして、論理演算ユニット203の出力203a、すなわち、IND0、IND1、IND2、IND3の論理和演算出力が得られる。以上により、4入力の論理和演算出力OUTA〜OUTDが4並列同時に出力される。
Subsequently, in the
次に、2並列の8入力論理積演算の動作例を説明する。
図5−1および図5−2は、8入力論理積演算を2並列で動作させる場合の回路構成を示す説明図である。
8入力の論理積演算を行うには、2入力の論理演算ユニットが1段目に4個、2段目に2個、3段目に1個必要となる。従って、図5−1および図5−2に示す1段目に8個の論理演算ユニットが配置されている回路構成では、2並列に8入力論理積演算を行うことができる。
Next, an operation example of 2-parallel 8-input AND operation will be described.
FIGS. 5A and 5B are explanatory diagrams illustrating a circuit configuration in the case of operating two 8-input AND operations in parallel.
In order to perform an 8-input AND operation, four 2-input logical operation units are required in the first stage, two in the second stage, and one in the third stage. Therefore, in the circuit configuration in which eight logical operation units are arranged in the first stage shown in FIGS. 5A and 5B, two-input 8-input AND operations can be performed in parallel.
まず、論理演算ユニット100の一方の入力100aにはINA0、もう一方の入力100bにはINA1を入力し、AND演算子の出力を選択するようにsel100を設定することにより、論理演算ユニット100の出力100cとしてINA0とINA1の論理積演算出力が得られる。同様に、入力101aにINA2、入力101bにINA3を入力し、AND演算子の出力を選択するようにsel101を設定した論理演算ユニット101からは、INA2とINA3の論理積演算出力101cが得られ、入力102aにINA4、入力102bにINA5を入力し、AND演算子の出力を選択するようにsel102を設定した論理演算ユニット102からは、INA4とINA5の論理積演算出力102cが得られ、入力103aにINA6、入力103bにINA7を入力し、AND演算子の出力を選択するようにsel103を設定した論理演算ユニット103からは、INA6とINA7の論理積演算出力103cが得られ、入力104aにINB0、入力104bにINB1を入力し、AND演算子の出力を選択するようにsel104を設定した論理演算ユニット104からは、INB0とINB1の論理積演算出力104cが得られ、入力105aにINB2、入力105bにINB3を入力し、AND演算子の出力を選択するようにsel105を設定した論理演算ユニット105からは、INB2とINB3の論理積演算出力105cが得られ、入力106aにINB4、入力106bにINB5を入力し、AND演算子の出力を選択するようにsel106を設定した論理演算ユニット106からは、INB4とINB5の論理積演算出力106cが得られ、入力107aにINB6、入力107bにINB7を入力し、AND演算子の出力を選択するようにsel107を設定した論理演算ユニット107からは、INB6とINB7の論理積演算出力107cが得られる。
First, INA0 is input to one
続いて、論理演算ユニット200の一方の入力に論理演算ユニット100の出力100cを入力し、もう一方の入力に論理演算ユニット101の出力101cを入力し、AND演算子の出力を選択するようにsel200を設定することにより、論理演算ユニット200の出力200aとして、100cと101cの論理積演算出力、すなわち、INA0、INA1、INA2、INA3の論理積演算出力が得られる。同様に、論理演算ユニット102の出力102cと論理演算ユニット103の出力103cを入力し、AND演算子の出力を選択するようにsel201を設定した論理演算ユニット201からは、102cと103cの論理積演算出力、すなわち、INA4、INA5、INA6、INA7の論理積演算出力201aが得られ、論理演算ユニット104の出力104cと論理演算ユニット105の出力105cを入力し、AND演算子の出力を選択するようにsel202を設定した論理演算ユニット202からは、104cと105cの論理積演算出力、すなわち、INB0、INB1、INB2、INB3の論理積演算出力202aが得られ、論理演算ユニット106の出力106cと論理演算ユニット107の出力107cを入力し、AND演算子の出力を選択するようにsel203を設定した論理演算ユニット203からは、106cと107cの論理積演算出力、すなわち、INB4、INB5、INB6、INB7の論理積演算出力203aが得られる。
Subsequently, the
続いて、論理演算ユニット300の一方の入力に論理演算ユニット200の出力200aを入力し、もう一方の入力に論理演算ユニット201の出力201aを入力し、AND演算子の出力を選択するようにsel300を設定することにより、論理演算ユニット300の出力300aとして、200aと201aの論理積演算出力、すなわち、INA0、INA1、INA2、INA3、INA4、INA5、INA6、INA7の論理積演算出力が得られる。同様に、論理演算ユニット202の出力202aと論理演算ユニット203の出力203aを入力し、AND演算子の出力を選択するようにsel301を設定した論理演算ユニット301からは、202aと203aの論理積演算出力、すなわち、INB0、INB1、INB2、INB3、INB4、INB5、INB6、INB7の論理積演算出力301aが得られる。
Subsequently, the
続いて、一つの入力に論理演算ユニット300の出力300aを入力し、一つの入力に論理演算ユニット202の出力202a、一つの入力に論理演算ユニット106の出力106cを入力したセレクタ502には、出力300aを選択するようにセレクト信号sel502を設定することにより、OUTAとして、論理演算ユニット300の出力300a、すなわち、INA0、INA1、INA2、INA3、INA4、INA5、INA6、INA7の論理積演算出力が得られる。同様に、論理演算ユニット400の出力400a、論理演算ユニット301の出力301a、論理演算ユニット203の出力203a、論理演算ユニット107の出力107cを入力したセレクタ503には、出力301aを選択するようにセレクト信号sel503を設定することにより、OUTBとして、論理演算ユニット301の出力301a、すなわち、INB0、INB1、INB2、INB3、INB4、INB5、INB6、INB7の論理積演算出力が得られる。以上により、8入力の論理積演算出力OUTA、OUTBが2並列同時に出力される。
Subsequently, the
次に、16入力論理積演算の動作例を説明する。
図6−1および図6−2は、16入力論理積演算時の回路構成を示す説明図である。
図6−1および図6−2に示す2入力の論理演算ユニットが1段目に8個配置されている回路構成では、16入力までの論理演算が可能である。
Next, an operation example of 16-input AND operation will be described.
FIGS. 6A and 6B are explanatory diagrams illustrating a circuit configuration at the time of 16-input AND operation.
In the circuit configuration in which eight 2-input logical operation units shown in FIGS. 6A and 6B are arranged in the first stage, logical operations up to 16 inputs can be performed.
まず、論理演算ユニット100の一方の入力100aにはIN0、もう一方の入力100bにはIN1を入力し、AND演算子の出力を選択するようにsel100を設定することにより、論理演算ユニット100の出力100cとしてIN0とIN1の論理積演算出力が得られる。同様に、入力101aにIN2、入力101bにIN3を入力し、AND演算子の出力を選択するようにsel101を設定した論理演算ユニット101からは、IN2とIN3の論理積演算出力101cが得られ、入力102aにIN4、入力102bにIN5を入力し、AND演算子の出力を選択するようにsel102を設定した論理演算ユニット102からは、IN4とIN5の論理積演算出力102cが得られ、入力103aにIN6、入力103bにIN7を入力し、AND演算子の出力を選択するようにsel103を設定した論理演算ユニット103からは、IN6とIN7の論理積演算出力103cが得られ、入力104aにIN8、入力104bにIN9を入力し、AND演算子の出力を選択するようにsel104を設定した論理演算ユニット104からは、IN8とIN9の論理積演算出力104cが得られ、入力105aにIN10、入力105bにIN11を入力し、AND演算子の出力を選択するようにsel105を設定した論理演算ユニット105からは、IN10とIN11の論理積演算出力105cが得られ、入力106aにIN12、入力106bにIN13を入力し、AND演算子の出力を選択するようにsel106を設定した論理演算ユニット106からは、IN12とIN13の論理積演算出力106cが得られ、入力107aにIN14、入力107bにIN15を入力し、AND演算子の出力を選択するようにsel107を設定した論理演算ユニット107からは、IN14とIN15の論理積演算出力107cが得られる。
First, IN0 is input to one
続いて、論理演算ユニット200の一方の入力に論理演算ユニット100の出力100cを入力し、もう一方の入力に論理演算ユニット101の出力101cを入力し、AND演算子の出力を選択するようにsel200を設定することにより、論理演算ユニット200の出力200aとして、100cと101cの論理積演算出力、すなわち、IN0、IN1、IN2、IN3の論理積演算出力が得られる。同様に、論理演算ユニット102の出力102cと論理演算ユニット103の出力103cを入力し、AND演算子の出力を選択するようにsel201を設定した論理演算ユニット201からは、102cと103cの論理積演算出力、すなわち、IN4、IN5、IN6、IN7の論理積演算出力201aが得られ、論理演算ユニット104の出力104cと論理演算ユニット105の出力105cを入力し、AND演算子の出力を選択するようにsel202を設定した論理演算ユニット202からは、104cと105cの論理積演算出力、すなわち、IN8、IN9、IN10、IN11の論理積演算出力202aが得られ、論理演算ユニット106の出力106cと論理演算ユニット107の出力107cを入力し、AND演算子の出力を選択するようにsel203を設定した論理演算ユニット203からは、106cと107cの論理積演算出力、すなわち、IN12、IN13、IN14、IN15の論理積演算出力203aが得られる。
Subsequently, the
続いて、論理演算ユニット300の一方の入力に論理演算ユニット200の出力200aを入力し、もう一方の入力に論理演算ユニット201の出力201aを入力し、AND演算子の出力を選択するようにsel300を設定することにより、論理演算ユニット300の出力300aとして、出力200aと出力201aの論理積演算出力、すなわち、IN0、IN1、IN2、IN3、IN4、IN5、IN6、IN7の論理積演算出力が得られる。同様に、論理演算ユニット202の出力202aと論理演算ユニット203の出力203aを入力し、AND演算子の出力を選択するようにsel301を設定した論理演算ユニット301からは、出力202aと出力203aの論理積演算出力、すなわち、IN8、IN9、IN10、IN11、IN12、IN13、IN14、IN15の論理積演算出力301aが得られる。
Subsequently, the
続いて、論理演算ユニット400の一方の入力に論理演算ユニット300の出力300aを入力し、もう一方の入力に論理演算ユニット301の出力301aを入力し、AND演算子の出力を選択するようにsel400を設定することにより、論理演算ユニット400の出力400aとして、出力300aと出力301aの論理積演算出力、すなわち、IN0、IN1、IN2、IN3、IN4、IN5、IN6、IN7、IN8、IN9、IN10、IN11、IN12、IN13、IN14、IN15の論理積演算出力が得られる。
Subsequently, the
続いて、一つの入力に論理演算ユニット400の出力400aを入力し、一つの入力に論理演算ユニット301の出力301aを入力し、一つの入力に論理演算ユニット203の出力203a、一つの入力に論理演算ユニット107の出力107cを入力したセレクタ503には、出力400aを選択するようにセレクト信号sel503を設定することにより、OUTとして、IN0、IN1、IN2、IN3、IN4、IN5、IN6、IN7、IN8、IN9、IN10、IN11、IN12、IN13、IN14、IN15の論理積演算出力が得られる。以上により、16入力の論理積演算出力OUTが出力される。
Subsequently, the
上記のように、実施の形態1の回路は、ツリー状に構成することで回路の小型化を図ることが可能であるのと同時に、1段の論理演算であれば8並列に、2段の論理演算であれば4並列に、3段の論理演算であれば2並列に実行可能であり、処理の高速化を図ることが可能である。 As described above, the circuit of the first embodiment can be reduced in size by configuring it in a tree shape. At the same time, if one-stage logic operation is performed, two parallel stages are provided. If it is a logical operation, it can be executed in four parallels, and if it is a three-stage logical operation, it can be executed in two parallels, and the processing speed can be increased.
以上のように、実施の形態1の動的再構成可能演算装置によれば、それぞれが、2入力の値の論理演算を行う複数の第1論理演算ユニットと、複数の第1論理演算ユニットの出力のうち二つの出力を入力として論理演算を行う複数の第2論理演算ユニットと、複数の第2論理演算ユニットの出力のうち二つの出力を入力として論理演算を行う複数の第3論理演算ユニットと、複数の第3論理演算ユニットの二つの出力を入力として論理演算を行う第4論理演算ユニットと、複数の第1論理演算ユニットの出力のうち一つの出力と複数の第2論理演算ユニットの出力のうち一つの出力とを選択する複数の第1接続選択手段と、複数の第1論理演算ユニットの出力のうち一つの出力と複数の第2論理演算ユニットの出力のうち一つの出力と複数の第3論理演算ユニットの出力のうち一つの出力とを選択する第2接続選択手段と、複数の第1論理演算ユニットの出力のうち一つの出力と複数の第2論理演算ユニットの出力のうち一つの出力と複数の第3論理演算ユニットの出力のうち一つの出力と第4論理演算ユニットの出力とを選択する第3接続選択手段とを備えたので、面積効率の高い動的再構成可能演算装置を得ることができる。 As described above, according to the dynamically reconfigurable arithmetic device of the first embodiment, each of a plurality of first logical operation units that perform a logical operation of two-input values and a plurality of first logical operation units. A plurality of second logical operation units that perform logical operations using two outputs as inputs, and a plurality of third logical operation units that perform logical operations using two outputs among the outputs of the plurality of second logical operation units A fourth logic operation unit that performs a logical operation using two outputs of the plurality of third logic operation units as inputs, and one output of the plurality of first logic operation units and a plurality of second logic operation units. A plurality of first connection selecting means for selecting one of the outputs; one output among the outputs of the plurality of first logic operation units and one of the outputs of the plurality of second logic operation units; of A second connection selecting means for selecting one of the outputs of the three logic operation units; one of the outputs of the plurality of first logic operation units and one of the outputs of the plurality of second logic operation units; Since there is provided a third connection selection means for selecting one of the outputs and the outputs of the plurality of third logic operation units and the output of the fourth logic operation unit, the area reconfigurable operation device having high area efficiency Can be obtained.
また、実施の形態1の動的再構成可能演算装置によれば、論理演算ユニットは、複数種類の論理演算素子と、複数種類の論理演算素子の出力のうち一つの出力を論理演算ユニットの出力として選択する接続選択手段とを備えたので、種々の演算を行う動的再構成可能演算装置を容易に実現することができる。 In addition, according to the dynamically reconfigurable arithmetic device of the first embodiment, the logical operation unit outputs one output among a plurality of types of logical operation elements and the outputs of the plurality of types of logical operation elements. And a connection selection means for selecting as a dynamic reconfigurable arithmetic device that performs various calculations can be easily realized.
また、実施の形態1の動的再構成可能演算装置によれば、論理演算ユニットが備える複数種類の論演算素子を、AND、OR、NOT、EXORとしたので、例えば、8並列排他的論理和演算や4並列4入力論理和演算、あるいは2並列8入力論理積演算や16入力論理積演算といった論理演算を実現することができる。 Further, according to the dynamically reconfigurable arithmetic device of the first embodiment, since the plurality of types of logical operation elements included in the logical operation unit are AND, OR, NOT, and EXOR, for example, 8 parallel exclusive OR Logical operations such as operations, 4-parallel 4-input OR operations, 2-parallel 8-input AND operations, and 16-input AND operations can be realized.
実施の形態2.
実施の形態2は、実施の形態1の構成において論理演算ユニット100〜107の一方の入力側に記憶素子であるレジスタと第4接続選択手段であるセレクタとを備えたものである。
図7−1および図7−2は、実施の形態2における動的再構成可能演算装置を示す構成図である。
図示の動的再構成可能演算装置は、論理演算ユニット100〜107,200〜203,300,301,400,セレクタ500〜503,700〜707,レジスタ600〜607を備えている。ここで、レジスタ600〜607は、それぞれセレクタ700〜707を介して論理演算ユニット100〜107の一方の入力に接続される記憶素子であり、予め所定の値が設定されている。セレクタ700〜707は、2to1のセレクタであり、一方の入力をレジスタ600〜607の出力600a〜607aとして、もう一方の入力を入力データ100b〜107bとし、セレクタ出力700a〜707aを論理演算ユニット100〜107の入力となるように接続されている。これ以外の構成は、実施の形態1の構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
Embodiment 2. FIG.
The second embodiment includes a register as a storage element and a selector as a fourth connection selection means on one input side of the
FIGS. 7A and 7B are configuration diagrams illustrating the dynamically reconfigurable arithmetic device according to the second embodiment.
The illustrated dynamically reconfigurable arithmetic unit includes logical
レジスタ600〜607には、必要に応じて予め値を設定する。入力データ100bとレジスタ600の出力600aがセレクタ700に入力され、外部から入力される1ビットのセレクト信号sel700により選択され、セレクタ出力700aが得られる。同様に、入力データ101bとレジスタ601の出力601aが入力されたセレクタ701からは、セレクト信号sel701により選択されたセレクタ出力701aが得られ、入力データ102bとレジスタ602の出力602aが入力されたセレクタ702からは、セレクト信号sel702により選択されたセレクタ出力702aが得られ、入力データ103bとレジスタ603の出力603aが入力されたセレクタ703からは、セレクト信号sel703により選択されたセレクタ出力703aが得られ、入力データ104bとレジスタ604の出力604aが入力されたセレクタ704からは、セレクト信号sel704により選択されたセレクタ出力704aが得られ、入力データ105bとレジスタ605の出力605aが入力されたセレクタ705からは、セレクト信号sel705により選択されたセレクタ出力705aが得られ、入力データ106bとレジスタ606の出力606aが入力されたセレクタ706からは、セレクト信号sel706により選択されたセレクタ出力706aが得られ、入力データ107bとレジスタ607の出力607aが入力されたセレクタ707からは、セレクト信号sel707により選択されたセレクタ出力707aが得られる。
Values are set in advance in the
続いて、入力データ100aと上記の演算で得られたセレクタ出力700aが入力された論理演算ユニット100からは、外部から入力される2ビットのセレクト信号sel100により選択された論理演算出力100cが得られる。同様に、入力データ101aとセレクタ出力701aが入力された論理演算ユニット101からは、セレクト信号sel101により選択された論理演算出力101cが得られ、入力データ102aとセレクタ出力702aが入力された論理演算ユニット102からは、セレクト信号sel102により選択された論理演算出力102cが得られ、入力データ103aとセレクタ出力703aが入力された論理演算ユニット103からは、セレクト信号sel103により選択された論理演算出力103cが得られ、入力データ104aとセレクタ出力704aが入力された論理演算ユニット104からは、セレクト信号sel104により選択された論理演算出力104cが得られ、入力データ105aとセレクタ出力705aが入力された論理演算ユニット105からは、セレクト信号sel105により選択された論理演算出力105cが得られ、入力データ106aとセレクタ出力706aが入力された論理演算ユニット106からは、セレクト信号sel106により選択された論理演算出力106cが得られ、入力データ107aとセレクタ出力707aが入力された論理演算ユニット107からは、セレクト信号sel107により選択された論理演算出力107cが得られる。
Subsequently, from the
次に、実施の形態2におけるAESのMix‐Column演算の動作例を説明する。
AESとは、Advanced Encryption Standardの略で、共通鍵暗号化方式の名称である。AESのプロセスのひとつにMix‐Column演算があり、Mix‐Column演算は、数式1に示す行列演算で表される。
AES is an abbreviation for Advanced Encryption Standard and is the name of a common key encryption method. One of the AES processes is a Mix-Column operation. The Mix-Column operation is expressed by a matrix operation shown in
これを多項式に展開すると、数式2〜5で表される。
S′0={02}・S0+{03}・S1+{01}・S2+{01}・S3 (数式2)
S′1={01}・S0+{02}・S1+{03}・S2+{01}・S3 (数式3)
S′2={01}・S0+{01}・S1+{02}・S2+{03}・S3 (数式4)
S′3={03}・S0+{01}・S1+{01}・S2+{02}・S3 (数式5)
係数は1、2、3のみであるため、数式2〜5は、数式6〜9のように表すことができる。
S′0=(S0+S0)+(S1+S1+S1)+S2+S3 (数式6)
S′1=S0+(S1+S1)+(S2+S2+S2)+S3 (数式7)
S′2=S0+S1+(S2+S2)+(S3+S3+S3) (数式8)
S′3=(S0+S0+S0)+S1+S2+(S3+S3) (数式9)
ここで、Mix‐Column演算で扱われるのはガロア体であるため、加算“+”は排他的論理和演算となる。従って、数式6〜9は、論理演算子を用いて数式10〜13のように表される。
S ′ 0 = {02} · S 0 + {03} · S 1 + {01} · S 2 + {01} · S 3 (Formula 2)
S ′ 1 = {01} · S 0 + {02} · S 1 + {03} · S 2 + {01} · S 3 (Formula 3)
S ′ 2 = {01} · S 0 + {01} · S 1 + {02} · S 2 + {03} · S 3 (Formula 4)
S ′ 3 = {03} · S 0 + {01} · S 1 + {01} · S 2 + {02} · S 3 (Formula 5)
Since the coefficients are only 1, 2, and 3, Equations 2 to 5 can be expressed as
S ′ 0 = (S 0 + S 0 ) + (S 1 + S 1 + S 1 ) + S 2 + S 3 (Formula 6)
S ′ 1 = S 0 + (S 1 + S 1 ) + (S 2 + S 2 + S 2 ) + S 3 (Formula 7)
S ′ 2 = S 0 + S 1 + (S 2 + S 2 ) + (S 3 + S 3 + S 3 ) (Formula 8)
S ′ 3 = (S 0 + S 0 + S 0 ) + S 1 + S 2 + (S 3 + S 3 ) (Formula 9)
Here, since it is a Galois field that is handled in the Mix-Column operation, the addition “+” is an exclusive OR operation. Therefore,
図8−1および図8−2は、実施の形態2におけるAESのMix‐Column演算の数式10の回路構成を示す説明図である。
まず、レジスタ600,601,602,603,604,606に定数0を設定する。また、入力105bにはS1を、入力107bにはS0を入力する。
続いて、セレクタ700の一方の入力に100bを入力し、もう一方の入力にレジスタ600の出力600aを入力し、レジスタ出力600aを選択するようにセレクト信号sel700を設定することで、セレクタ700の出力700aからはレジスタ出力600a、すなわち定数0が得られる。同様に、入力101bとレジスタ出力601aが入力されるセレクタ701に、レジスタ出力601aを選択するようにセレクト信号sel701を設定することで、出力701aからレジスタ出力601a、すなわち定数0が得られ、入力102bとレジスタ出力602aが入力されるセレクタ702に、レジスタ出力602aを選択するようにセレクト信号sel702を設定することで、出力702aからレジスタ出力602a、すなわち定数0が得られ、入力103bとレジスタ出力603aが入力されるセレクタ703に、レジスタ出力603aを選択するようにセレクト信号sel703を設定することで、出力703aからレジスタ出力603a、すなわち定数0が得られ、入力104bとレジスタ出力604aが入力されるセレクタ704に、レジスタ出力604aを選択するようにセレクト信号sel704を設定することで、出力704aからレジスタ出力604a、すなわち定数0が得られ、入力105bとレジスタ出力605aが入力されるセレクタ705に、入力105bを選択するようにセレクト信号sel705を設定することで、出力705aから入力105b、すなわちS1が得られ、入力106bとレジスタ出力606aが入力されるセレクタ706に、レジスタ出力606aを選択するようにセレクト信号sel706を設定することで、出力706aからレジスタ出力606a、すなわち定数0が得られ、入力107bとレジスタ出力607aが入力されるセレクタ707に、入力107bを選択するようにセレクト信号sel707を設定することで、出力707aから入力107b、すなわちS0が得られる。
FIGS. 8A and 8B are explanatory diagrams illustrating a circuit configuration of
First, a constant 0 is set in the
Subsequently, 100b is input to one input of the selector 700, the
続いて、論理演算ユニット100の一方の入力100aにはある値を、もう一方の入力にはセレクタ出力700aを入力し、AND演算子の出力を選択するようにsel100を設定することにより、論理演算ユニット100の出力100cとして、ある値と700a、すなわち定数0の論理積演算出力、すなわち定数0が得られる。また、論理演算ユニット101の一方の入力101aにはS3を、もう一方の入力にはセレクタ出力701aを入力し、OR演算子の出力を選択するようにsel101を設定することにより、論理演算ユニット101の出力101cとして、S3と701a、すなわち定数0の論理和演算出力、すなわちS3が得られる。また、論理演算ユニット102の一方の入力102aにはある値を、もう一方の入力にはセレクタ出力702aを入力し、AND演算子の出力を選択するようにsel102を設定することにより、論理演算ユニット102の出力102cとして、ある値と702a、すなわち定数0の論理積演算出力、すなわち定数0が得られる。論理演算ユニット103の一方の入力103aにはS2を、もう一方の入力にはセレクタ出力703aを入力し、OR演算子の出力を選択するようにsel103を設定することにより、論理演算ユニット103の出力103cとして、S2と703a、すなわち定数0の論理和演算出力、すなわちS2が得られる。
Subsequently, a certain value is input to one
また、論理演算ユニット104の一方の入力104aにはS1を、もう一方の入力にはセレクタ出力704aを入力し、OR演算子の出力を選択するようにsel104を設定することにより、論理演算ユニット104の出力104cとして、S1と704a、すなわち定数0の論理和演算出力、すなわちS1が得られる。論理演算ユニット105の一方の入力105aにはS1を、もう一方の入力にはセレクタ出力705aを入力し、EXOR演算子の出力を選択するようにsel105を設定することにより、論理演算ユニット105の出力105cとして、S1と705a、すなわちS1の排他的論理和演算出力(S1 ∧ S1)が得られる。なお、∧は排他的論理和の演算子を示している。また、論理演算ユニット106の一方の入力106aにはある値を、もう一方の入力にはセレクタ出力706aを入力し、AND演算子の出力を選択するようにsel106を設定することにより、論理演算ユニット106の出力106cとして、ある値と706a、すなわち定数0の論理積演算出力、すなわち定数0が得られる。論理演算ユニット107の一方の入力107aにはS0を、もう一方の入力にはセレクタ出力707aを入力し、EXOR演算子の出力を選択するようにsel107を設定することにより、論理演算ユニット107の出力107cとして、S0と707a、すなわちS0の排他的論理和演算出力(S0 ∧ S0)が得られる。
Moreover, the S 1 to one
続いて、論理演算ユニット200の一方の入力に論理演算ユニット100の出力100cを入力し、もう一方の入力に論理演算ユニット101の出力101cを入力し、EXOR演算子の出力を選択するようにsel200を設定することにより、論理演算ユニット200の出力200aとして、100cと101cの排他的論理和演算出力、すなわち、定数0とS3の排他的論理和演算出力、すなわちS3が得られる。同様に、論理演算ユニット102の出力102cと論理演算ユニット103の出力103cを入力し、EXOR演算子の出力を選択するようにsel201を設定した論理演算ユニット201からは、102cと103cの排他的論理和演算出力、すなわち、定数0とS2の排他的論理和演算出力201a、すなわちS2が得られ、論理演算ユニット104の出力104cと論理演算ユニット105の出力105cを入力し、EXOR演算子の出力を選択するようにsel202を設定した論理演算ユニット202からは、104cと105cの排他的論理和演算出力、すなわち、S1と(S1 ∧ S1)の排他的論理和演算出力202a、すなわち(S1 ∧ S1 ∧ S1)が得られ、論理演算ユニット106の出力106cと論理演算ユニット107の出力107cを入力し、EXOR演算子の出力を選択するようにsel203を設定した論理演算ユニット203からは、106cと107cの排他的論理和演算出力、すなわち、定数0と(S0 ∧ S0)の排他的論理和演算出力203a、すなわち(S0 ∧ S0)が得られる。
Subsequently, the
続いて、論理演算ユニット300の一方の入力に論理演算ユニット200の出力200aを入力し、もう一方の入力に論理演算ユニット201の出力201aを入力し、EXOR演算子の出力を選択するようにsel300を設定することにより、論理演算ユニット300の出力300aとして、200aと201aの排他的論理和演算出力、すなわち、S3とS2の排他的論理和演算出力(S2 ∧ S3)が得られる。同様に、論理演算ユニット202の出力202aと論理演算ユニット203の出力203aを入力し、EXOR演算子の出力を選択するようにsel301を設定した論理演算ユニット301からは、202aと203aの排他的論理和演算出力、すなわち、(S1 ∧ S1 ∧ S1)と(S0 ∧ S0)の排他的論理和演算出力301a、すなわち(S0 ∧ S0) ∧ (S1 ∧ S1 ∧ S1)が得られる。
Subsequently, the
続いて、論理演算ユニット400の一方の入力に論理演算ユニット300の出力300aを入力し、もう一方の入力に論理演算ユニット301の出力301aを入力し、EXOR演算子の出力を選択するようにsel400を設定することにより、論理演算ユニット400の出力400aとして、300aと301a、すなわち、(S2 ∧ S3)と(S0 ∧ S0) ∧ (S1 ∧ S1 ∧ S1)の排他的論理和演算出力、すなわち、(S0 ∧ S0) ∧ (S1 ∧ S1 ∧ S1) ∧ (S2 ∧ S3)が得られる。
Subsequently, the
続いて、一つの入力に論理演算ユニット400の出力400aを入力し、一つの入力に論理演算ユニット301の出力301aを入力し、一つの入力に論理演算ユニット203の出力203a、一つの入力に論理演算ユニット107の出力107cを入力したセレクタ503に、400aを選択するようにセレクト信号sel503を設定することにより、数式10の出力S′0として、(S0 ∧ S0) ∧ (S1 ∧ S1 ∧ S1) ∧ (S2 ∧ S3)が得られる。
数式11〜13についても同様に演算出力を得られる。
Subsequently, the
The calculation output can be similarly obtained for the mathematical expressions 11 to 13.
以上のように、実施の形態2の動的再構成可能演算装置によれば、任意の値を保持する複数の記憶素子と、複数の記憶素子の出力と所定の入力とを選択する第4接続選択手段を設け、複数の第1論理演算ユニットは第4接続選択手段の選択結果を、2入力のうちの一方の入力とするようにしたので、第1論理演算ユニットへの入力データとして毎回入力しなければならないような場合でもこれを省略することができ、データ入力によるサイクル数の削減やバス幅の削減を図ることができる。 As described above, according to the dynamically reconfigurable computing device of the second embodiment, the plurality of storage elements that hold arbitrary values, and the fourth connection that selects the outputs and the predetermined inputs of the plurality of storage elements Since the selection means is provided, and the plurality of first logical operation units are set so that the selection result of the fourth connection selection means is one of the two inputs, it is input every time as input data to the first logical operation unit. This can be omitted even if it must be done, and the number of cycles and the bus width can be reduced by data input.
実施の形態3.
図9は、実施の形態3における半導体装置を示すものである。
図9において、半導体装置7は、実施の形態1または実施の形態2の動的再構成可能演算装置8と、動的再構成可能演算装置8に入力される演算前のデータあるいは演算後のデータのうち少なくとも一方のデータを格納する入出力データバッファ9を備える。このような半導体装置7は、所定の演算処理を指定するプロセッサであるCPU10と、半導体装置7が処理するデータを格納するメモリ11とバスライン12を介して接続されている。
Embodiment 3 FIG.
FIG. 9 shows a semiconductor device according to the third embodiment.
In FIG. 9, the
CPU10は、動的再構成可能演算装置8において処理する入力データを、ある単位分、メモリ11からバスライン12を介して入出力データバッファ9に格納する。動的再構成可能演算装置8は、CPU10からの指示により、入出力データバッファ9から入力データを読み込み、演算を開始する。演算が終了すると、動的再構成可能演算装置8から入出力データバッファ9へ演算後のデータが書き込まれる。ある単位分の演算が終了すると、CPU10は入出力データバッファ9に格納されている演算後のデータを、バスライン12を介してメモリ11に書き込む。
The
以上のように、実施の形態3の半導体装置によれば、動的再構成可能演算装置は、所定の演算処理を指定するプロセッサからの指示に基づいて、その指示に対応した演算処理を行うと共に、動的再構成可能演算装置に入力される演算前のデータまたは演算後のデータのうち、少なくとも一方のデータを格納するバッファを設けたので、プロセッサとの接続が容易な半導体装置を実現することができる。 As described above, according to the semiconductor device of the third embodiment, the dynamically reconfigurable arithmetic device performs arithmetic processing corresponding to the instruction based on the instruction from the processor specifying the predetermined arithmetic processing. Since a buffer for storing at least one of pre-computed data and post-computed data input to the dynamically reconfigurable computing device is provided, a semiconductor device that can be easily connected to the processor is realized. Can do.
1,100〜107,200〜203,300,301,400 論理演算ユニット、2 NOT演算子、3 EXOR演算子、4 OR演算子、5 AND演算子、6 セレクタ、7 半導体装置、8 動的再構成可能演算装置、9 入出力データバッファ、10 CPU、11 メモリ、12 バスライン、100a〜107a,100b〜107b 論理演算ユニットの入力、100c〜107c,200a〜203a,300a,301a,400a 論理演算ユニットの出力、500〜503,700〜707 セレクタ、600〜607 レジスタ、600a〜607a レジスタ出力、700a〜707a セレクタ出力。 1, 100 to 107, 200 to 203, 300, 301, 400 Logical operation unit, 2 NOT operator, 3 EXOR operator, 4 OR operator, 5 AND operator, 6 selector, 7 semiconductor device, 8 dynamic re Configurable arithmetic unit, 9 input / output data buffer, 10 CPU, 11 memory, 12 bus lines, 100a to 107a, 100b to 107b, logical operation unit input, 100c to 107c, 200a to 203a, 300a, 301a, 400a logical operation unit Output, 500-503, 700-707 selector, 600-607 register, 600a-607a register output, 700a-707a selector output.
Claims (5)
前記複数の第1論理演算ユニットの出力のうち二つの出力を入力として論理演算を行う複数の第2論理演算ユニットと、
前記複数の第2論理演算ユニットの出力のうち二つの出力を入力として論理演算を行う複数の第3論理演算ユニットと、
前記複数の第3論理演算ユニットの二つの出力を入力として論理演算を行う第4論理演算ユニットと、
前記複数の第1論理演算ユニットの出力のうち一つの出力と前記複数の第2論理演算ユニットの出力のうち一つの出力とを選択する複数の第1接続選択手段と、
前記複数の第1論理演算ユニットの出力のうち一つの出力と前記複数の第2論理演算ユニットの出力のうち一つの出力と前記複数の第3論理演算ユニットの出力のうち一つの出力とを選択する第2接続選択手段と、
前記複数の第1論理演算ユニットの出力のうち一つの出力と前記複数の第2論理演算ユニットの出力のうち一つの出力と前記複数の第3論理演算ユニットの出力のうち一つの出力と前記第4論理演算ユニットの出力とを選択する第3接続選択手段とを備えた動的再構成可能演算装置。 A plurality of first logical operation units each performing a logical operation of two-input values;
A plurality of second logic operation units that perform a logic operation using two outputs of the outputs of the plurality of first logic operation units as inputs;
A plurality of third logic operation units that perform a logic operation using two outputs of the outputs of the plurality of second logic operation units as inputs;
A fourth logical operation unit that performs a logical operation using two outputs of the plurality of third logical operation units as inputs;
A plurality of first connection selecting means for selecting one output among the outputs of the plurality of first logic operation units and one output among the outputs of the plurality of second logic operation units;
One output among the outputs of the plurality of first logic operation units, one output among the outputs of the plurality of second logic operation units, and one output among the outputs of the plurality of third logic operation units are selected. Second connection selection means for
One output of the outputs of the plurality of first logic operation units, one output of the outputs of the plurality of second logic operation units, one output of the outputs of the plurality of third logic operation units, and the first A dynamically reconfigurable arithmetic device comprising: third connection selection means for selecting an output of a four logic arithmetic unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008044547A JP5241268B2 (en) | 2008-02-26 | 2008-02-26 | Dynamically reconfigurable computing device and semiconductor device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008044547A JP5241268B2 (en) | 2008-02-26 | 2008-02-26 | Dynamically reconfigurable computing device and semiconductor device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009206611A true JP2009206611A (en) | 2009-09-10 |
JP5241268B2 JP5241268B2 (en) | 2013-07-17 |
Family
ID=41148486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008044547A Active JP5241268B2 (en) | 2008-02-26 | 2008-02-26 | Dynamically reconfigurable computing device and semiconductor device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5241268B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021145132A1 (en) * | 2020-01-14 | 2021-07-22 | Yoda-S株式会社 | Computation device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09294069A (en) * | 1996-03-01 | 1997-11-11 | Agency Of Ind Science & Technol | Programmable lsi and its arithmetic method |
JP2005235004A (en) * | 2004-02-20 | 2005-09-02 | Altera Corp | Multiplier-accumulator block mode splitting |
JP2007286827A (en) * | 2006-04-14 | 2007-11-01 | Handotai Rikougaku Kenkyu Center:Kk | Optical flow processor |
JP2009038758A (en) * | 2007-08-03 | 2009-02-19 | Mitsubishi Electric Corp | Dynamically reconfigurable arithmetic device and semiconductor device |
-
2008
- 2008-02-26 JP JP2008044547A patent/JP5241268B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09294069A (en) * | 1996-03-01 | 1997-11-11 | Agency Of Ind Science & Technol | Programmable lsi and its arithmetic method |
JP2005235004A (en) * | 2004-02-20 | 2005-09-02 | Altera Corp | Multiplier-accumulator block mode splitting |
JP2007286827A (en) * | 2006-04-14 | 2007-11-01 | Handotai Rikougaku Kenkyu Center:Kk | Optical flow processor |
JP2009038758A (en) * | 2007-08-03 | 2009-02-19 | Mitsubishi Electric Corp | Dynamically reconfigurable arithmetic device and semiconductor device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021145132A1 (en) * | 2020-01-14 | 2021-07-22 | Yoda-S株式会社 | Computation device |
JPWO2021145132A1 (en) * | 2020-01-14 | 2021-07-22 | ||
JP7265806B2 (en) | 2020-01-14 | 2023-04-27 | Yoda-S株式会社 | Arithmetic unit |
Also Published As
Publication number | Publication date |
---|---|
JP5241268B2 (en) | 2013-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101218560B (en) | Apparatus and method for configurable processing | |
US10417004B2 (en) | Pipelined cascaded digital signal processing structures and methods | |
CN106610813B (en) | Method and apparatus for executing product series operation in Multiplier Accumulators block | |
JP2866606B2 (en) | Rotary priority selection circuit for instruction execution order | |
EP2490144B1 (en) | Programmable cryptography integrated circuit | |
US7350054B2 (en) | Processor having array of processing elements whose individual operations and mutual connections are variable | |
US11734216B2 (en) | Cascade communications between FPGA tiles | |
US7460666B2 (en) | Combinational circuit, encryption circuit, method for constructing the same and program | |
US20210182074A1 (en) | Apparatus and method to switch configurable logic units | |
JP2016076165A (en) | Arithmetic circuit and method for controlling arithmetic circuit | |
JP5241268B2 (en) | Dynamically reconfigurable computing device and semiconductor device | |
GB2424503A (en) | Active memory device including a processor array | |
US20040091105A1 (en) | Apparatus for hyperelliptic-curve cryptography processing | |
JP5193358B2 (en) | Polynomial data processing operations | |
KR101977873B1 (en) | Hardware-implemented modular inversion module | |
JP5046779B2 (en) | Dynamic reconfiguration processor | |
JP5196905B2 (en) | Dynamically reconfigurable computing device and semiconductor device | |
US20130339412A1 (en) | Data processing apparatus and method | |
WO2021258954A1 (en) | Data processing apparatus and data processing method | |
JP3562373B2 (en) | Zero judgment signal generation circuit | |
JP2004220377A (en) | Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it | |
US7260594B2 (en) | Arithmetic logic unit over finite field GF(2m) | |
US20210026600A1 (en) | Apparatus and method for performing an index operation | |
JP4859536B2 (en) | Data converter | |
CN118278023A (en) | Multistage data comparison method and device based on isomorphic encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121212 |
|
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: 20130305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130402 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160412 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |