Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6143577B2 - Semiconductor integrated circuit and operation method of semiconductor integrated circuit - Google Patents
[go: Go Back, main page]

JP6143577B2 - Semiconductor integrated circuit and operation method of semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit and operation method of semiconductor integrated circuit Download PDF

Info

Publication number
JP6143577B2
JP6143577B2 JP2013133931A JP2013133931A JP6143577B2 JP 6143577 B2 JP6143577 B2 JP 6143577B2 JP 2013133931 A JP2013133931 A JP 2013133931A JP 2013133931 A JP2013133931 A JP 2013133931A JP 6143577 B2 JP6143577 B2 JP 6143577B2
Authority
JP
Japan
Prior art keywords
flag
address
signal
arithmetic unit
data
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.)
Active
Application number
JP2013133931A
Other languages
Japanese (ja)
Other versions
JP2015011375A (en
Inventor
喬 花井
喬 花井
晋一 須藤
晋一 須藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor Corp
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 Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Priority to JP2013133931A priority Critical patent/JP6143577B2/en
Publication of JP2015011375A publication Critical patent/JP2015011375A/en
Application granted granted Critical
Publication of JP6143577B2 publication Critical patent/JP6143577B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Description

本発明は、半導体集積回路および半導体集積回路の動作方法に関する。   The present invention relates to a semiconductor integrated circuit and a method for operating the semiconductor integrated circuit.

データ処理等を実行する動的再構成回路を含む半導体集積回路は、演算部に搭載される演算器の機能および演算器間の接続を切り替えることで、複数種のデータ処理を実行可能である。この種の半導体集積回路は、例えば、実行するデータ処理の状態毎に、分岐処理の実行により遷移する可能性のある状態を順位付けして保持し、保持した順位付けの情報を実際の状態の遷移に応じて更新する(例えば、特許文献1参照)。あるいは、この種の半導体集積回路は、実行するデータ処理の状態毎に分岐処理時の分岐先を示す情報を保持し、保持された情報に応じて回路を再構成する(例えば、特許文献2参照)。   A semiconductor integrated circuit including a dynamic reconfiguration circuit that executes data processing and the like can execute a plurality of types of data processing by switching the function of the arithmetic unit mounted in the arithmetic unit and the connection between the arithmetic units. For example, this type of semiconductor integrated circuit ranks and holds states that may be changed by execution of branch processing for each state of data processing to be executed, and stores the ranking information held in the actual state. It is updated according to the transition (see, for example, Patent Document 1). Alternatively, this type of semiconductor integrated circuit holds information indicating a branch destination at the time of branch processing for each state of data processing to be executed, and reconfigures the circuit according to the held information (for example, see Patent Document 2). ).

国際公開第2009/096247号International Publication No. 2009/096247 特開2006−65788号公報JP 2006-65788 A

しかしながら、3以上の分岐処理の1つを条件判定に応じて選択して演算部を再構成する場合、分岐処理毎に条件判定を実行するため、分岐処理の数が多いほど条件判定に掛かる時間は長くなる。   However, when one of the three or more branch processes is selected according to the condition determination and the arithmetic unit is reconfigured, the condition determination is executed for each branch process. Therefore, as the number of branch processes increases, the time taken for the condition determination Becomes longer.

本件開示の半導体集積回路および半導体集積回路の動作方法は、条件判定の結果に応じて演算部が実行する処理を従来に比べて早く開始し、半導体集積回路の性能を向上することを目的とする。   An object of the semiconductor integrated circuit and the semiconductor integrated circuit operating method disclosed herein is to start processing executed by an arithmetic unit according to a result of a condition determination earlier than before, and to improve the performance of the semiconductor integrated circuit. .

一つの観点によれば、半導体集積回路は、再構成可能な複数の演算器を含む演算部と、複数の演算器による論理演算の結果をそれぞれ示す複数のフラグ信号に応じて、演算部の回路構成を示す複数のコンフィグレーションデータのいずれかを選択し、選択したコンフィグレーションデータを演算部に出力する制御部とを有する。   According to one aspect, the semiconductor integrated circuit includes an arithmetic unit including a plurality of reconfigurable arithmetic units, and a circuit of the arithmetic unit according to a plurality of flag signals respectively indicating a result of a logical operation by the plurality of arithmetic units. A control unit that selects any one of a plurality of configuration data indicating the configuration and outputs the selected configuration data to a calculation unit;

別の観点によれば、再構成可能な複数の演算器を含む演算部を含む半導体集積回路の動作方法は、複数の演算器による論理演算の結果をそれぞれ示す複数のフラグ信号に応じて、演算部の回路構成を示す複数のコンフィグレーションデータのいずれかを選択し、選択したコンフィグレーションデータを演算部に出力する。   According to another aspect, an operation method of a semiconductor integrated circuit including an arithmetic unit including a plurality of reconfigurable arithmetic units is calculated according to a plurality of flag signals respectively indicating a result of a logical operation by the plurality of arithmetic units. One of a plurality of configuration data indicating the circuit configuration of the unit is selected, and the selected configuration data is output to the arithmetic unit.

本件開示の半導体集積回路および半導体集積回路の動作方法は、条件判定の結果に応じて演算部が実行する処理を従来に比べて早く開始することができ、半導体集積回路の性能を向上することができる。   According to the semiconductor integrated circuit and the semiconductor integrated circuit operating method disclosed in the present disclosure, the processing executed by the arithmetic unit according to the condition determination result can be started earlier than before, and the performance of the semiconductor integrated circuit can be improved. it can.

半導体集積回路の一実施形態を示す図である。It is a figure which shows one Embodiment of a semiconductor integrated circuit. 図1に示した半導体集積回路の動作の例を示す図である。FIG. 2 is a diagram illustrating an example of the operation of the semiconductor integrated circuit illustrated in FIG. 1. 半導体集積回路の別の実施形態を示す図である。It is a figure which shows another embodiment of a semiconductor integrated circuit. 図3に示した演算器アレイの例を示す図である。It is a figure which shows the example of the arithmetic unit array shown in FIG. 図4に示したフラグ演算器の例を示す図である。It is a figure which shows the example of the flag calculator shown in FIG. 図4に示したフラグ演算器の例を示す図である。It is a figure which shows the example of the flag calculator shown in FIG. 図3に示したコンフィグレーションメモリの例を示す図である。It is a figure which shows the example of the configuration memory shown in FIG. 図3に示した演算器アレイに実行させる処理の例を示す図である。It is a figure which shows the example of the process performed by the arithmetic unit array shown in FIG. 図8に示したコンテキストCTXJを実行する演算器アレイの回路構成の例を示す図である。It is a figure which shows the example of the circuit structure of the arithmetic unit array which performs context CTXJ shown in FIG. 図9に示した回路構成におけるデータの値、フラグ信号および実行されるデータ処理の関係を示す図である。FIG. 10 is a diagram showing the relationship between data values, flag signals, and data processing to be executed in the circuit configuration shown in FIG. 9. 図8に示した処理を実行する半導体集積回路の動作の例を示す図である。It is a figure which shows the example of operation | movement of the semiconductor integrated circuit which performs the process shown in FIG. 図8に示した処理を実行する半導体集積回路の動作の別の例を示す図である。FIG. 9 is a diagram showing another example of the operation of the semiconductor integrated circuit that executes the process shown in FIG. 8. 図3に示した演算器アレイに実行させる処理の別の例を示す図である。It is a figure which shows another example of the process performed by the arithmetic unit array shown in FIG. 図13に示したコンテキストCTXJを実行する演算器アレイの回路構成の例を示す図である。It is a figure which shows the example of a circuit structure of the arithmetic unit array which performs context CTXJ shown in FIG. 図14に示した回路構成におけるデータの値、フラグ信号および実行されるデータ処理の関係を示す図である。FIG. 15 is a diagram showing the relationship between data values, flag signals, and executed data processing in the circuit configuration shown in FIG. 14. 図13に示した処理を実行する半導体集積回路の動作の例を示す図である。It is a figure which shows the example of operation | movement of the semiconductor integrated circuit which performs the process shown in FIG. 図3に示した演算器アレイに実行させる処理のさらなる別の例を示す図である。It is a figure which shows another example of the process performed by the arithmetic unit array shown in FIG. 図17に示したコンテキストCTXJを実行する演算器アレイの回路構成の例を示す図である。It is a figure which shows the example of the circuit structure of the arithmetic unit array which performs context CTXJ shown in FIG. 図18に示した回路構成におけるデータの値、フラグ信号および実行されるデータ処理の関係を示す図である。It is a figure which shows the relationship between the value of data in the circuit structure shown in FIG. 18, a flag signal, and the data processing performed. 図17に示した処理を実行する半導体集積回路の動作の例を示す図である。FIG. 18 is a diagram illustrating an example of an operation of a semiconductor integrated circuit that executes the process illustrated in FIG. 17. 図3に示した半導体集積回路の動作の別の例を示す図である。FIG. 4 is a diagram showing another example of the operation of the semiconductor integrated circuit shown in FIG. 3. 半導体集積回路図の別の例を示す図である。It is a figure which shows another example of a semiconductor integrated circuit diagram. 図22に示した演算器アレイの例を示す図である。It is a figure which shows the example of the arithmetic unit array shown in FIG. 図22に示した演算器アレイに実行させる処理の例を示す図である。It is a figure which shows the example of the process performed by the arithmetic unit array shown in FIG. 図24に示した処理を実行する半導体集積回路の動作の例を示す図である。FIG. 25 is a diagram showing an example of the operation of a semiconductor integrated circuit that executes the process shown in FIG. 24. 図22に示した演算器アレイに実行させる処理の別の例を示す図である。It is a figure which shows another example of the process performed by the arithmetic unit array shown in FIG. 図26に示した処理を実行する半導体集積回路の動作の例を示す図である。FIG. 27 is a diagram illustrating an example of the operation of a semiconductor integrated circuit that executes the processing illustrated in FIG. 26.

以下、図面を用いて実施形態を説明する。信号が伝達される信号線および端子には、信号名と同じ符号を使用する。複数ビットの信号が伝達される信号線は、太線で示す。   Hereinafter, embodiments will be described with reference to the drawings. The same reference numerals as the signal names are used for signal lines and terminals through which signals are transmitted. A signal line through which a multi-bit signal is transmitted is indicated by a bold line.

図1は、半導体集積回路の一実施形態を示す。この実施形態の半導体集積回路SEM1は、演算部2および制御部4を有する。演算部2は、コンフィグレーションデータCFG(CFG0、CFG1)に応じて動的に再構成可能であり、論理演算の結果に応じてフラグ信号FLG(FLG0、FLG1)を出力する複数の演算器OP(OP0、OP1)を有する。制御部4は、複数のフラグ信号FLGに応じて、演算部2の回路を再構成する複数のコンフィグレーションデータCFG(CFG0、CFG1)のいずれかを選択し、選択したコンフィグレーションデータCFGを演算部2に出力する。   FIG. 1 shows an embodiment of a semiconductor integrated circuit. The semiconductor integrated circuit SEM1 of this embodiment includes a calculation unit 2 and a control unit 4. The arithmetic unit 2 can be dynamically reconfigured according to the configuration data CFG (CFG0, CFG1), and a plurality of arithmetic units OP (outputting flag signals FLG (FLG0, FLG1) according to the result of the logical operation). OP0, OP1). The control unit 4 selects one of a plurality of configuration data CFG (CFG0, CFG1) for reconfiguring the circuit of the calculation unit 2 according to the plurality of flag signals FLG, and the selected configuration data CFG is calculated by the calculation unit. Output to 2.

例えば、制御部4は、フラグ信号FLGに応じて、コンフィグレーションデータCFGのいずれかを選択する選択信号SELを出力する。コンフィグレーションデータCFG0、CFG1がメモリに格納される場合、選択信号SELは、コンフィグレーションデータCFG0、CFG1が格納される記憶領域を示すアドレスを含む。なお、コンフィグレーションデータCFG0、CFG1を格納するメモリは、半導体集積回路SEM1の外部に配置されてもよい。   For example, the control unit 4 outputs a selection signal SEL for selecting one of the configuration data CFG according to the flag signal FLG. When the configuration data CFG0 and CFG1 are stored in the memory, the selection signal SEL includes an address indicating a storage area in which the configuration data CFG0 and CFG1 are stored. Note that the memory for storing the configuration data CFG0 and CFG1 may be disposed outside the semiconductor integrated circuit SEM1.

例えば、制御部2は、真を示すフラグ信号FLGに対応するコンフィグレーションデータCFGを選択する。例えば、演算部2は、フラグ信号FLG0の優先度をフラグ信号FLG1の優先度より高く設定し、複数の演算器OPのうち、論理演算の結果を他の演算器OPより優先させる演算器OPの出力をフラグ信号FLG0として出力してもよい。この場合、制御部4は、フラグ信号FLG0、FLG1の両方が真を示す場合に、優先度が高いフラグ信号FLG0に対応するコンフィグレーションデータCFGを選択する選択信号SELを出力する。   For example, the control unit 2 selects the configuration data CFG corresponding to the flag signal FLG indicating true. For example, the arithmetic unit 2 sets the priority of the flag signal FLG0 higher than the priority of the flag signal FLG1, and among the plurality of arithmetic units OP, the arithmetic unit OP prioritizes the result of the logical operation over the other arithmetic units OP. The output may be output as the flag signal FLG0. In this case, the control unit 4 outputs a selection signal SEL for selecting the configuration data CFG corresponding to the flag signal FLG0 having a high priority when both the flag signals FLG0 and FLG1 indicate true.

図2は、図1に示した半導体集積回路SEM1の動作の例を示す。すなわち、図2は、半導体集積回路の動作方法の一実施形態を示す。なお、かぎ括弧で囲った動作は、演算部が1つのフラグ信号FLGを出力し、制御部が1つのフラグ信号FLGに基づいて、コンフィグレーションデータCFGを選択する別の半導体集積回路の動作を示す。   FIG. 2 shows an example of the operation of the semiconductor integrated circuit SEM1 shown in FIG. That is, FIG. 2 shows an embodiment of a method for operating a semiconductor integrated circuit. The operation enclosed in square brackets indicates the operation of another semiconductor integrated circuit in which the arithmetic unit outputs one flag signal FLG and the control unit selects configuration data CFG based on one flag signal FLG. .

半導体集積回路SEM1の演算部2は、条件判定用のコンフィグレーションデータCFGJ1により回路が予め再構成されており、演算器OP0、OP1による条件判定を実行する(図2(a))。この例では、演算器OP0は、演算部2に供給されるデータxが”0”であるか否かを判定し、演算器OP1は、データxが”1”であるか否かを判定する。例えば、演算部2に供給されるデータxが”1”の場合、演算部2は、演算器OP0の出力に対応するフラグ信号FLG0を出力しない(例えば、フラグ信号FLG0は偽を示す)(図2(b))。一方、演算部2は、演算器OP1に対応するフラグ信号FLG1を出力する(例えば、フラグ信号FLG1は真を示す)(図2(c))。   In the arithmetic unit 2 of the semiconductor integrated circuit SEM1, the circuit is reconfigured in advance by configuration data CFGJ1 for condition determination, and the condition determination is performed by the arithmetic units OP0 and OP1 (FIG. 2A). In this example, the calculator OP0 determines whether the data x supplied to the calculator 2 is “0”, and the calculator OP1 determines whether the data x is “1”. . For example, when the data x supplied to the arithmetic unit 2 is “1”, the arithmetic unit 2 does not output the flag signal FLG0 corresponding to the output of the arithmetic unit OP0 (for example, the flag signal FLG0 indicates false) (FIG. 2 (b)). On the other hand, the computing unit 2 outputs a flag signal FLG1 corresponding to the computing unit OP1 (for example, the flag signal FLG1 indicates true) (FIG. 2 (c)).

制御部4は、フラグ信号FLG0、FLG1に基づいて、真を示すフラグ信号FLG1に対応するコンフィグレーションデータCFG1を選択して演算部2に転送する(図2(d))。演算部2は、コンフィグレーションデータCFG1に基づいて回路を再構成した後、データxが”1”の場合の処理を実行する(図2(e))。   Based on the flag signals FLG0 and FLG1, the control unit 4 selects the configuration data CFG1 corresponding to the flag signal FLG1 indicating true and transfers it to the calculation unit 2 (FIG. 2 (d)). The arithmetic unit 2 reconfigures the circuit based on the configuration data CFG1, and then executes processing when the data x is “1” (FIG. 2E).

これに対して、演算部が1つのフラグ信号FLGを出力する場合、まず、演算部の演算器OPは、データxが”0”であるか否かを判定する(図2(f))。データxは”1”であるため、フラグ信号FLGは出力されない(図2(g))。制御部は、フラグ信号FLGに基づいて、条件判定用のコンフィグレーションデータCFGJ2を選択して演算部に転送する(図2(h))。演算部は、コンフィグレーションデータCFGJ2に基づいて回路を再構成した後、演算器OPにより、データxが”1”であるか否かを判定する。   On the other hand, when the arithmetic unit outputs one flag signal FLG, first, the arithmetic unit OP of the arithmetic unit determines whether or not the data x is “0” (FIG. 2 (f)). Since the data x is “1”, the flag signal FLG is not output (FIG. 2G). Based on the flag signal FLG, the control unit selects configuration data CFGJ2 for condition determination and transfers it to the calculation unit (FIG. 2 (h)). The arithmetic unit reconfigures the circuit based on the configuration data CFGJ2, and then determines whether or not the data x is “1” by the arithmetic unit OP.

演算部に供給されるデータxは”1”であるため、演算部は、フラグ信号FLGを出力する(図2(i))。制御部は、フラグ信号FLGに基づいて、コンフィグレーションデータCFG1を選択して演算部に転送する(図2(j))。演算部は、コンフィグレーションデータCFG1に基づいて回路を再構成した後、データxが”1”の場合の処理を実行する(図2(k))。   Since the data x supplied to the calculation unit is “1”, the calculation unit outputs the flag signal FLG (FIG. 2 (i)). Based on the flag signal FLG, the control unit selects the configuration data CFG1 and transfers it to the calculation unit (FIG. 2 (j)). The arithmetic unit reconfigures the circuit based on the configuration data CFG1, and then executes a process when the data x is “1” (FIG. 2 (k)).

図2に示したように、この実施形態では、複数のフラグ信号FLG0、FLG1に応じてコンフィグレーションデータCFGが選択される。すなわち、複数の演算器OP0、OP1による複数の論理演算(条件判定)の結果に基づいて、演算部2を再構成するコンフィグレーションデータCFGを選択することができる。この結果、1つのフラグ信号FLGに応じてコンフィグレーションデータCFGを選択する場合に比べて、条件判定に掛かる時間を短縮でき、条件判定の結果に応じて演算部2が実行する処理を早く開始できる。これにより、半導体集積回路SEM1の性能を向上することができる。換言すれば、動的に再構成可能な演算部を有する半導体集積回路SEM1において、条件判定の結果に応じて再構成される演算部2の回路を、図2の括弧内に示した動作より早く構築することができる。   As shown in FIG. 2, in this embodiment, configuration data CFG is selected according to a plurality of flag signals FLG0 and FLG1. That is, the configuration data CFG for reconfiguring the computing unit 2 can be selected based on the results of a plurality of logical operations (condition determination) by the plurality of computing units OP0 and OP1. As a result, the time required for the condition determination can be shortened compared to the case where the configuration data CFG is selected according to one flag signal FLG, and the processing executed by the calculation unit 2 can be started earlier according to the result of the condition determination. . Thereby, the performance of the semiconductor integrated circuit SEM1 can be improved. In other words, in the semiconductor integrated circuit SEM1 having the dynamically reconfigurable arithmetic unit, the circuit of the arithmetic unit 2 reconfigured according to the result of the condition determination is faster than the operation shown in parentheses in FIG. Can be built.

以上、図1および図2に示した実施形態では、1つのフラグ信号FLGに応じてコンフィグレーションデータCFGを選択する場合に比べて、条件判定に掛かる時間を短縮することができる。この結果、条件判定の結果に応じて演算部2が実行する処理を早く開始でき、半導体集積回路SEM1の性能を向上することができる。   As described above, in the embodiment shown in FIGS. 1 and 2, it is possible to reduce the time required for the condition determination as compared with the case where the configuration data CFG is selected according to one flag signal FLG. As a result, the processing executed by the calculation unit 2 can be started quickly according to the result of the condition determination, and the performance of the semiconductor integrated circuit SEM1 can be improved.

図3は、半導体集積回路の別の実施形態を示す。図1および図2に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。   FIG. 3 shows another embodiment of the semiconductor integrated circuit. Elements that are the same as or similar to those described in the embodiment shown in FIGS. 1 and 2 are given the same reference numerals, and detailed descriptions thereof are omitted.

この実施形態の半導体集積回路SEM2は、システムバスSBUSを介してMCU(Micro Control Unit)20、メモリ30および周辺回路40に接続される。半導体集積回路SEM2は、共有メモリ12、シーケンサ14、コンフィグレーションメモリ16A、16Bおよび演算器アレイ18を有し、例えば、クロック信号に同期して動作する。   The semiconductor integrated circuit SEM2 of this embodiment is connected to an MCU (Micro Control Unit) 20, a memory 30, and a peripheral circuit 40 via a system bus SBUS. The semiconductor integrated circuit SEM2 includes a shared memory 12, a sequencer 14, configuration memories 16A and 16B, and an arithmetic unit array 18, and operates in synchronization with a clock signal, for example.

システムバスSBUSは、MCU20と、半導体集積回路SEM2、メモリ30および周辺回路40との間の通信に使用される。例えば、半導体集積回路SEM2、MCU20、メモリ30、周辺回路40およびシステムバスSBUSは、システムSYS2に搭載される。なお、MCU20、メモリ30、周辺回路40およびシステムバスSBUSは、半導体集積回路SEM2内に配置されてもよい。   The system bus SBUS is used for communication between the MCU 20 and the semiconductor integrated circuit SEM2, the memory 30, and the peripheral circuit 40. For example, the semiconductor integrated circuit SEM2, the MCU 20, the memory 30, the peripheral circuit 40, and the system bus SBUS are mounted on the system SYS2. The MCU 20, the memory 30, the peripheral circuit 40, and the system bus SBUS may be arranged in the semiconductor integrated circuit SEM2.

MCU20は、例えば、メモリ30に格納されたプログラムを実行することで、半導体集積回路SEM2および周辺回路40の動作を制御するとともに、システムSYS2の全体の動作を制御する。MCU20は、演算器アレイ18に構築する回路のデータをコンフィグレーションメモリ16Aに書き込み、コンフィグレーションメモリ16Aのアドレスを示す情報をコンフィグレーションメモリ16Bに書き込む。また、MCU20は、演算器アレイ18に演算させるデータを共有メモリ12に書き込み、演算器アレイ24による演算により得られ、共有メモリ12に書き込まれたデータを共有メモリ12から読み出す。   The MCU 20 executes, for example, a program stored in the memory 30 to control the operations of the semiconductor integrated circuit SEM2 and the peripheral circuit 40, and also controls the overall operation of the system SYS2. The MCU 20 writes data of a circuit constructed in the arithmetic unit array 18 to the configuration memory 16A, and writes information indicating an address of the configuration memory 16A to the configuration memory 16B. Further, the MCU 20 writes data to be calculated by the arithmetic unit array 18 to the shared memory 12, and reads out the data obtained by the calculation by the arithmetic unit array 24 and written to the shared memory 12 from the shared memory 12.

メモリ30は、フラッシュメモリやSRAM(Static Random Access Memory)等であり、MCU20が実行するプログラムや、MCU20および周辺回路40で使用するデータを記憶する。周辺回路40は、通信回路、タイマ、AD(Analog to Digital)変換器およびDA(Digital to Analog)変換器等である。   The memory 30 is a flash memory, SRAM (Static Random Access Memory), or the like, and stores a program executed by the MCU 20 and data used by the MCU 20 and the peripheral circuit 40. The peripheral circuit 40 is a communication circuit, a timer, an AD (Analog to Digital) converter, a DA (Digital to Analog) converter, or the like.

共有メモリ12は、MCU20および演算器アレイ18によりアクセス可能であり、例えば、SRAMである。共有メモリ12は、演算器アレイ18により演算するデータ(演算データ、すなわち入力データ)および演算器アレイ18による演算により得られたデータ(演算結果データ、すなわち出力データ)を保持する。   The shared memory 12 is accessible by the MCU 20 and the arithmetic unit array 18 and is, for example, an SRAM. The shared memory 12 holds data (calculation data, that is, input data) calculated by the calculator array 18 and data (calculation result data, that is, output data) obtained by calculation by the calculator array 18.

共有メモリ12は、書き込み要求を示す制御信号、アドレス信号およびデータ(演算データ)を、システムバスSBUSを介してMCU20から受けた場合、受けた演算データをアドレス信号が示す領域に書き込む。共有メモリ12は、読み出し要求を示す制御信号およびアドレス信号を、システムバスSBUSを介してMCU20から受けた場合、アドレス信号が示す領域に保持したデータ(演算結果データ)をMCU20に出力する。   When the shared memory 12 receives a control signal, an address signal, and data (calculation data) indicating a write request from the MCU 20 via the system bus SBUS, the shared memory 12 writes the received calculation data in an area indicated by the address signal. When the shared memory 12 receives a control signal and an address signal indicating a read request from the MCU 20 via the system bus SBUS, the shared memory 12 outputs data (operation result data) held in an area indicated by the address signal to the MCU 20.

また、共有メモリ12は、読み出し要求を示す制御信号CNTおよびアドレス信号ADを演算器アレイ18から受けた場合、アドレス信号ADが示す領域に保持した演算データを演算器アレイ18に出力する。共有メモリ12は、書き込み要求を示す制御信号CNT、アドレス信号ADおよびデータ(演算結果データ)を演算器アレイ18から受けた場合、受けた演算結果データをアドレス信号ADが示す領域に書き込む。   Further, when the shared memory 12 receives the control signal CNT indicating the read request and the address signal AD from the arithmetic unit array 18, the shared memory 12 outputs the arithmetic data held in the area indicated by the address signal AD to the arithmetic unit array 18. When the shared memory 12 receives the control signal CNT, the address signal AD, and the data (calculation result data) indicating the write request from the arithmetic unit array 18, the shared memory 12 writes the received calculation result data in the area indicated by the address signal AD.

コンフィグレーションメモリ16Aは、演算器アレイ18に構築される回路のデータを記憶する複数の記憶領域を有する。回路のデータは、各回路の機能を示す情報および回路間の接続を示す情報を含む。コンフィグレーションメモリ16Aは、読み出し要求を示す制御信号CNTaおよびアドレス信号ADaをシーケンサ14から受けた場合、演算器アレイ18に構築する回路のデータRDTをコンフィグレーションデータCFGとして演算器アレイ18に出力する。   The configuration memory 16 </ b> A has a plurality of storage areas for storing data of circuits constructed in the arithmetic unit array 18. The circuit data includes information indicating the function of each circuit and information indicating a connection between the circuits. When the configuration memory 16A receives the control signal CNTa indicating the read request and the address signal ADa from the sequencer 14, the configuration memory 16A outputs the data RDT of the circuit constructed in the arithmetic unit array 18 to the arithmetic unit array 18 as configuration data CFG.

コンフィグレーションメモリ16Bは、シーケンサ14のレジスタREG0−REG7に格納する8組のアドレスADa、ADb、分岐制御フラグBRAおよび終了フラグENDSを記憶する複数の記憶領域を有する。コンフィグレーションメモリ16Bは、読み出し要求を示す制御信号CNTbおよびアドレス信号ADbをシーケンサ14から受けた場合、アドレス信号ADbに対応する記憶領域に格納されたアドレスADa、ADb、分岐制御フラグBRAおよび終了フラグENDSの値を出力する。   The configuration memory 16B has a plurality of storage areas for storing eight sets of addresses ADa and ADb, a branch control flag BRA, and an end flag ENDS stored in the registers REG0 to REG7 of the sequencer 14. When the configuration memory 16B receives the control signal CNTb indicating the read request and the address signal ADb from the sequencer 14, the configuration memory 16B stores the addresses ADa, ADb, the branch control flag BRA, and the end flag ENDS stored in the storage area corresponding to the address signal ADb. The value of is output.

コンフィグレーションメモリ16A、16Bに保持されるデータは、シーケンサ14が動作を開始する前に、半導体集積回路SEM2が搭載されるシステムの仕様に応じて、システムバスSBUSを介してMCU20から書き込まれる。コンフィグレーションメモリ16A、16Bの例は、図7に示す。   The data held in the configuration memories 16A and 16B is written from the MCU 20 via the system bus SBUS according to the specifications of the system in which the semiconductor integrated circuit SEM2 is mounted before the sequencer 14 starts operation. An example of the configuration memories 16A and 16B is shown in FIG.

シーケンサ14は、制御回路CNTL、レジスタREG(REG0、REG1、REG2、REG3、REG4、REG5、REG6、REG7)、セレクタSSEL1、SSEL2およびインクリメンタINCを有する。シーケンサ14は、複数のフラグ信号FLGに応じて、演算器アレイ18の回路構成を示す複数のコンフィグレーションデータCFGのいずれかを選択し、選択したコンフィグレーションデータCFGを演算器アレイ18に出力する制御部の一例である。   The sequencer 14 includes a control circuit CNTL, a register REG (REG0, REG1, REG2, REG3, REG4, REG5, REG6, REG7), selectors SSEL1, SSEL2, and an incrementer INC. The sequencer 14 selects one of a plurality of configuration data CFG indicating the circuit configuration of the arithmetic unit array 18 according to the plurality of flag signals FLG, and outputs the selected configuration data CFG to the arithmetic unit array 18. It is an example of a part.

制御回路CNTLは、例えばステートマシンを含み、演算器アレイ18の構成の変更(コンテキストの切り替え)を制御する。制御回路CNTLによるコンテキストの切り替え制御は、コンフィグレーションメモリ16BからレジスタREGに書き込まれるレジスタデータREGDに応じて決定される。   The control circuit CNTL includes, for example, a state machine, and controls the configuration change (context switching) of the arithmetic unit array 18. The context switching control by the control circuit CNTL is determined according to the register data REGD written from the configuration memory 16B to the register REG.

制御回路CNTLは、コンフィグレーションメモリ16Aから演算器アレイ18にコンフィグレーションデータCFGを転送するタイミングを示すトリガ信号TRGと、演算器アレイ18の動作を一時的に停止するストール信号STLとを生成する機能を有する。   The control circuit CNTL generates a trigger signal TRG indicating the timing at which the configuration data CFG is transferred from the configuration memory 16A to the arithmetic unit array 18 and a stall signal STL for temporarily stopping the operation of the arithmetic unit array 18. Have

制御回路CNTLは、演算器アレイ18によるデータ処理(コンテキスト)の完了を示す終了信号ENDおよびフラグ信号FLG(FLG0、FLG1、FLG2、FLG3、FLG4、FLG5、FLG6、FLG7)を演算器アレイ18から受ける。各フラグ信号FLGは、演算器アレイ18による論理演算(条件判定)の結果(真または偽)を示す。なお、フラグ信号FLGの数は、2つ以上であればよい。   The control circuit CNTL receives from the arithmetic unit array 18 an end signal END indicating completion of data processing (context) by the arithmetic unit array 18 and a flag signal FLG (FLG0, FLG1, FLG2, FLG3, FLG4, FLG5, FLG6, FLG7). . Each flag signal FLG indicates a result (true or false) of a logical operation (condition determination) by the arithmetic unit array 18. The number of flag signals FLG may be two or more.

制御回路CNTLは、終了信号ENDに応答して、コンフィグレーションメモリ16Aに制御信号CNTaを出力し、コンフィグレーションメモリ16Bに制御信号CNTbを出力する。制御回路CNTLは、演算器アレイ18の動作を一時的に停止する場合、ストール信号STLを演算器アレイ18に出力する。   In response to the end signal END, the control circuit CNTL outputs the control signal CNTa to the configuration memory 16A and outputs the control signal CNTb to the configuration memory 16B. The control circuit CNTL outputs a stall signal STL to the arithmetic unit array 18 when the operation of the arithmetic unit array 18 is temporarily stopped.

また、制御回路CNTLは、フラグ信号FLGに基づいてセレクタSSEL1に選択信号BS1を出力する。例えば、制御回路CNTLは、真を示すフラグ信号FLGに対応するレジスタREGを選択する選択信号BS1を出力する。真を示す複数のフラグ信号FLGがある場合、制御回路CNTLは、優先度が他のフラグ信号FLGより高いフラグ信号FLGに対応するレジスタREGを選択する選択信号BS1を出力する。例えば、優先度は、フラグ信号FLGの番号が小さいほど高く設定される。演算器アレイ18での論理演算の結果と、フラグ信号FLGの優先度との対応付けは、図4で説明するように、演算器アレイ18内のネットワーク回路NWFにより実行される。なお、制御回路CNTLは、リセット状態の分岐制御フラグBRAを受けている期間、選択信号BS1を”0”に固定し、レジスタREG0に格納された情報をセレクタSSEL1に選択させる。   The control circuit CNTL outputs a selection signal BS1 to the selector SSEL1 based on the flag signal FLG. For example, the control circuit CNTL outputs a selection signal BS1 for selecting the register REG corresponding to the flag signal FLG indicating true. When there are a plurality of flag signals FLG indicating true, the control circuit CNTL outputs a selection signal BS1 for selecting the register REG corresponding to the flag signal FLG having a higher priority than the other flag signals FLG. For example, the priority is set higher as the number of the flag signal FLG is smaller. The association between the result of the logical operation in the arithmetic unit array 18 and the priority of the flag signal FLG is executed by the network circuit NWF in the arithmetic unit array 18 as described in FIG. The control circuit CNTL fixes the selection signal BS1 to “0” during the period when the branch control flag BRA in the reset state is received, and causes the selector SSEL1 to select the information stored in the register REG0.

各レジスタREG0−REG7は、制御回路CNTLからの制御信号CNTbおよびアドレス信号ADbに応じてコンフィグレーションメモリ16Bから読み出されるレジスタデータREGDに含まれる8組のアドレス値をそれぞれ保持する。各レジスタREG0−REG7が保持する1組のアドレス値は、コンフィグレーションメモリ16AにアクセスするアドレスADaおよびコンフィグレーションメモリ16BにアクセスするアドレスADbとして使用される。例えば、レジスタREG0−REG7は、フラグ信号FLG0−FLG7にそれぞれ対応しており、フラグ信号FLGと同様に、番号が小さいほど優先度が高い。   Each of the registers REG0 to REG7 holds eight sets of address values included in the register data REGD read from the configuration memory 16B according to the control signal CNTb and the address signal ADb from the control circuit CNTL. One set of address values held by the registers REG0 to REG7 is used as an address ADa for accessing the configuration memory 16A and an address ADb for accessing the configuration memory 16B. For example, the registers REG0 to REG7 correspond to the flag signals FLG0 to FLG7, respectively. Like the flag signal FLG, the lower the number, the higher the priority.

なお、コンフィグレーションメモリ16Bが、次の読み出し要求を受けるまでレジスタデータREGDを保持する保持回路を有する場合、シーケンサ14は、レジスタREG0−REG7を持たなくてもよい。この場合、レジスタデータREGDは、セレクタSSEL1の入力端子に供給される。   If the configuration memory 16B has a holding circuit that holds the register data REGD until the next read request is received, the sequencer 14 may not have the registers REG0 to REG7. In this case, the register data REGD is supplied to the input terminal of the selector SSEL1.

セレクタSSEL1は、フラグ信号FLGに基づいて制御回路CNTLが生成する選択信号BS1に応じて、レジスタREG0−REG7からそれぞれ出力されるアドレスADa、ADbの1組を選択する。セレクタSSEL1は、選択したアドレスADa、ADbをコンフィグレーションメモリ16A、16Bに出力する。そして、アドレスADaが示すコンフィグレーションメモリ16Aの記憶領域から、次に実行されるコンテキストを示すコンフィグレーションデータCFGが読み出される。また、アドレスADbが示すコンフィグレーションメモリ16Bの記憶領域から、レジスタREG0−REG7に新たに格納される8組のアドレスADa、ADb、分岐制御フラグBRAおよび終了フラグENDSの値が読み出される。   The selector SSEL1 selects one set of addresses ADa and ADb output from the registers REG0 to REG7 in accordance with the selection signal BS1 generated by the control circuit CNTL based on the flag signal FLG. The selector SSEL1 outputs the selected addresses ADa and ADb to the configuration memories 16A and 16B. Then, configuration data CFG indicating a context to be executed next is read from the storage area of the configuration memory 16A indicated by the address ADa. Also, the values of eight sets of addresses ADa, ADb, branch control flag BRA, and end flag ENDS newly stored in the registers REG0 to REG7 are read from the storage area of the configuration memory 16B indicated by the address ADb.

すなわち、シーケンサ14は、演算器アレイ18による複数の条件判定の結果を示すフラグ信号FLG0−FLG7に応じて、演算器アレイ18に次に再構成させる回路を8種類のうちから決定する機能を有する。これにより、図8に示すcase文または図13に示すif文に相当する多分岐の条件判定を、一度に実行することが可能になり、演算器アレイ18の書き換え頻度を従来に比べて削減することが可能になる。さらに、フラグ信号FLG0−FLG7に優先度を割り当てることにより、複数のフラグ信号FLGが真を示す場合にも、セレクタSSEL1により、正しいレジスタREGを選択することができる。   That is, the sequencer 14 has a function of determining the circuit to be reconfigured next in the arithmetic unit array 18 from eight types in accordance with flag signals FLG0 to FLG7 indicating the results of the plurality of condition determinations by the arithmetic unit array 18. . As a result, it becomes possible to execute the multi-branch condition determination corresponding to the case statement shown in FIG. 8 or the if statement shown in FIG. 13 at a time, and the rewrite frequency of the arithmetic unit array 18 is reduced as compared with the conventional case. It becomes possible. Furthermore, by assigning priority to the flag signals FLG0 to FLG7, the correct register REG can be selected by the selector SSEL1 even when a plurality of flag signals FLG indicate true.

分岐制御フラグBRAは、フラグ信号FLGに基づく条件分岐を実行する場合にセット(=”1”)され、フラグ信号FLGに基づく条件分岐を実行しない場合にリセット(=”0”)される。例えば、終了フラグENDSは、条件判定用のコンテキストを実行する場合にリセットされ、条件判定により選択された演算用のコンテキストを実行する場合にセットされる。制御回路CNTLは、終了フラグENDSがセットされた場合、所望のデータ処理が実行され、演算結果が得られた後にシーケンサ14の動作を停止する。   The branch control flag BRA is set (= "1") when a conditional branch based on the flag signal FLG is executed, and is reset (= "0") when a conditional branch based on the flag signal FLG is not executed. For example, the end flag ENDS is reset when the context for condition determination is executed, and is set when the context for calculation selected by the condition determination is executed. When the end flag ENDS is set, the control circuit CNTL performs desired data processing and stops the operation of the sequencer 14 after the calculation result is obtained.

インクリメンタINCは、レジスタREG0に格納されたアドレス値ADaを保持し、保持したアドレス値ADaをセレクタSSEL2に出力する。また、インクリメンタINCは、分岐制御フラグBRAがリセットされた場合に、保持しているアドレスADaを順次に”1”ずつ増加し、増加したアドレス値ADaをセレクタSSEL2に出力する。インクリメンタINCは、有効フラグBRAが無効を示す場合に、コンフィグレーションメモリ16Bから出力されるアドレスADaの1つを順次に更新する更新回路の一例である。なお、インクリメンタINCは、アドレス値ADaを”1”ずつ減少させてもよい。



The incrementer INC holds the address value ADa stored in the register REG0, and outputs the held address value ADa to the selector SSEL2. Further, when the branch control flag BRA is reset, the incrementer INC sequentially increases the held address ADa by “1” and outputs the increased address value ADa to the selector SSEL2. The incrementer INC is an example of an update circuit that sequentially updates one of the addresses ADa output from the configuration memory 16B when the valid flag BRA indicates invalidity. The incrementer INC may decrease the address value ADa by “1”.



セレクタSSEL2は、分岐制御フラグBRAのセット中にセレクタSSEL1から出力されるアドレス値ADaを選択し、分岐制御フラグBRAのリセット中にインクリメンタINCから出力されるアドレス値ADaを選択する。すなわち、シーケンサ14は、フラグ信号FLGの論理に応じた条件分岐の処理を実行しない場合、レジスタREG0に保持されたアドレスADaを順次に更新して、コンフィグレーションメモリ16AからコンフィグレーションデータCFGを読み出す。   The selector SSEL2 selects the address value ADa output from the selector SSEL1 while the branch control flag BRA is set, and selects the address value ADa output from the incrementer INC while the branch control flag BRA is reset. That is, when the sequencer 14 does not execute the conditional branch process according to the logic of the flag signal FLG, the sequencer 14 sequentially updates the address ADa held in the register REG0 and reads the configuration data CFG from the configuration memory 16A.

演算器アレイ18は、ネットワーク回路NWD、複数の演算器OP、複数のフラグ演算器FOP、ネットワーク回路NWFおよびフラグ演算器DFOPを有する。演算器アレイ18は、演算器OP、フラグ演算器FOP、フラグ演算器DFOPをネットワーク回路NWD、NWFを介して連結することで、所定のデータ処理手順(データフロー)を実現する演算モジュールである。演算器アレイ18は、演算器OP、フラグ演算器FOP、フラグ演算器DFOPの動作仕様、演算器OPとフラグ演算器FOP間の接続仕様をMCU20の動作中に切り替え可能である。すなわち、演算器アレイ18は、動的再構成回路である。演算器アレイ18は、再構成可能な複数の演算器OP、FOPを含む演算部の一例である。なお、演算器アレイ18に搭載される演算器OPおよびフラグ演算器FOPの数は、設計仕様(回路規模・消費電力・演算内容)に応じて決定される。演算器アレイ18の例は、図4に示す。   The computing unit array 18 includes a network circuit NWD, a plurality of computing units OP, a plurality of flag computing units FOP, a network circuit NWF, and a flag computing unit DFOP. The arithmetic unit array 18 is an arithmetic module that realizes a predetermined data processing procedure (data flow) by connecting the arithmetic unit OP, the flag arithmetic unit FOP, and the flag arithmetic unit DFOP via the network circuits NWD and NWF. The computing unit array 18 can switch the operation specifications of the computing unit OP, the flag computing unit FOP, and the flag computing unit DFOP and the connection specifications between the computing unit OP and the flag computing unit FOP during the operation of the MCU 20. That is, the arithmetic unit array 18 is a dynamic reconfiguration circuit. The computing unit array 18 is an example of a computing unit including a plurality of reconfigurable computing units OP and FOP. Note that the number of computing units OP and flag computing units FOP mounted on the computing unit array 18 is determined according to design specifications (circuit scale, power consumption, and computation contents). An example of the arithmetic unit array 18 is shown in FIG.

図4は、図3に示した演算器アレイ18の例を示す。演算器アレイ18は、図3に示したネットワーク回路NWD、n個(nは正の整数)の演算器OP、m個(mは正の整数)のフラグ演算器FOP、ネットワーク回路NWF、フラグ演算器DFOP、カウンタACOUNTおよびメモリ制御回路MCNTを有する。   FIG. 4 shows an example of the arithmetic unit array 18 shown in FIG. The arithmetic unit array 18 includes the network circuit NWD shown in FIG. 3, n (n is a positive integer) arithmetic unit OP, m (m is a positive integer) flag arithmetic unit FOP, network circuit NWF, flag calculation A DFOP, a counter ACOUNT, and a memory control circuit MCNT.

ネットワーク回路NWDは、各演算器OPにデータを出力するデータ出力端子DO(DO0[1:0]、...、DOn[1:0])と、各演算器OPからデータを受けるデータ入力端子DI(DI0、...、DIn)とを有する。データ出力端子DOの符号”[1:0]”の数値は、ポート番号を示す。例えば、各データ出力端子DOは、64ビット(32ビットのポートが2つ)であり、各データ入力端子DIは、32ビット(32ビットのポートが1つ)である。   The network circuit NWD includes a data output terminal DO (DO0 [1: 0],..., DOn [1: 0]) for outputting data to each arithmetic unit OP, and a data input terminal for receiving data from each arithmetic unit OP. DI (DI0,..., DIn). The numerical value “[1: 0]” of the data output terminal DO indicates the port number. For example, each data output terminal DO is 64 bits (two 32-bit ports), and each data input terminal DI is 32 bits (one 32-bit port).

また、ネットワーク回路NWDは、図3に示した共有メモリ12からデータを受けるデータ入力端子DIM(DIM0、...、DIMp)と、共有メモリ12にデータを出力するデータ出力端子DOM(DOM0、...、DIMp)とを有する。例えば、各データ入力端子DIMおよび各データ出力端子DOMは、32ビット(すなわち、”p”は、”31”)である。   The network circuit NWD includes data input terminals DIM (DIM0,..., DIMp) that receive data from the shared memory 12 shown in FIG. 3 and data output terminals DOM (DOM0,. ., DIMp). For example, each data input terminal DIM and each data output terminal DOM are 32 bits (that is, “p” is “31”).

そして、ネットワーク回路NWDは、トリガ信号TRGに同期して受信するコンフィグレーションメモリ16AからからのコンフィグレーションデータCFGに応じて、演算器OP間の接続仕様を変更する。ネットワーク回路NWDは、接続仕様を変更した後、共有メモリ12から受ける入力データDIMを出力データDOとして所定の演算器OPに転送する。   The network circuit NWD changes the connection specifications between the arithmetic units OP according to the configuration data CFG from the configuration memory 16A received in synchronization with the trigger signal TRG. After changing the connection specification, the network circuit NWD transfers the input data DIM received from the shared memory 12 as output data DO to a predetermined computing unit OP.

各演算器OPは、ネットワーク回路NWDからの出力データDOを受けるデータ入力ポートDI[1:0]と、演算により得られたデータを出力するデータ出力ポートDOとを有する。データ入力端子DIの符号”[1:0]”の数値は、ポート番号を示す。例えば、各演算器OPは、2つのデータ入力ポートDI(DI[1]、DI[0])と1つのデータ出力ポートDOとを有するが、データ入力ポートDIおよびデータ出力ポートDOの数は、演算器OPの仕様に応じて変更可能であり、図4に示す例に限定されない。   Each computing unit OP has a data input port DI [1: 0] that receives output data DO from the network circuit NWD, and a data output port DO that outputs data obtained by the computation. The numerical value “[1: 0]” of the data input terminal DI indicates a port number. For example, each computing unit OP has two data input ports DI (DI [1], DI [0]) and one data output port DO, and the number of data input ports DI and data output ports DO is: It can be changed according to the specification of the arithmetic unit OP, and is not limited to the example shown in FIG.

また、各演算器OPは、ネットワーク回路NWFからの一対のフラグ信号AFO(AFO0、...、AFOn)を受けるフラグ入力端子FI1、FI0と、ネットワーク回路NWFにフラグ信号AFIを出力するフラグ出力端子FOとを有する。各フラグ入力端子FI1、FI0およびフラグ出力端子FOは、2ビットである。   Each arithmetic unit OP also receives flag input terminals FI1 and FI0 that receive a pair of flag signals AFO (AFO0,..., AFOn) from the network circuit NWF, and a flag output terminal that outputs the flag signal AFI to the network circuit NWF. FO. Each of the flag input terminals FI1 and FI0 and the flag output terminal FO is 2 bits.

そして、各演算器OPは、トリガ信号TRGに同期して受信するコンフィグレーションデータCFGに応じて、例えば、四則演算のいずれかまたは複数種の論理演算のいずれかを実行する演算器に切り替えられる。演算器OPは、入力ポートDI0、DI1の少なくとも一方で受けるデータを演算し、演算結果を出力ポートDOまたはフラグ出力端子FOに出力する。算術演算の結果は、出力ポートDOに出力され、比較処理または符号判定の結果はフラグ信号としてフラグ出力端子FOに出力される。   Then, each computing unit OP is switched to, for example, a computing unit that performs any of the four arithmetic operations or a plurality of types of logical operations in accordance with the configuration data CFG received in synchronization with the trigger signal TRG. The computing unit OP computes data received by at least one of the input ports DI0 and DI1, and outputs the computation result to the output port DO or the flag output terminal FO. The result of the arithmetic operation is output to the output port DO, and the result of the comparison process or sign determination is output to the flag output terminal FO as a flag signal.

なお、各演算器OPは、フラグ入力端子FI1、FI0で受ける他の演算器OPまたはフラグ演算器FOPからのフラグ信号に基づいて、データ入力ポートDI[1:0]で受けるデータの一方を選択するセレクタとして動作させてもよい。演算器OPは、ストール信号STLを受けている期間、動作を停止する。   Each computing unit OP selects one of the data received at the data input port DI [1: 0] based on the flag signal from the other computing unit OP or the flag computing unit FOP received at the flag input terminals FI1 and FI0. It may be operated as a selector. The arithmetic unit OP stops operating while receiving the stall signal STL.

各フラグ演算器FOPは、ネットワーク回路NWFを介して演算器OPまたは他のフラグ演算器FOPからフラグ信号を受けるフラグ入力端子FI1、FI0と、フラグ演算の結果を出力するフラグ出力端子FOとを有する。各フラグ入力端子FI1、FI0およびフラグ出力端子FOは、2ビットである。   Each flag calculator FOP has flag input terminals FI1 and FI0 that receive a flag signal from the calculator OP or another flag calculator FOP via the network circuit NWF, and a flag output terminal FO that outputs the result of the flag calculation. . Each of the flag input terminals FI1 and FI0 and the flag output terminal FO is 2 bits.

フラグ演算器FOPは、フラグ信号の論理積または論理和の処理を実行することで、複数の演算器OP、FOPの判定結果に基づく条件判定を可能にする。そして、各フラグ演算器FOPは、トリガ信号TRGに同期して受信するコンフィグレーションデータCFGに応じて、複数種の論理演算のいずれかを実行するフラグ演算器に切り替えられる。各フラグ演算器FOPは、クロック信号に同期してフラグ演算を実行し、演算結果をフラグ出力端子FOに出力する。フラグ演算器FOPは、ストール信号STLを受けている期間、動作を停止する。   The flag arithmetic unit FOP executes a logical product or logical sum processing of flag signals, thereby enabling condition determination based on the determination results of the plurality of arithmetic units OP and FOP. Each flag computing unit FOP is switched to a flag computing unit that executes one of a plurality of types of logical operations in accordance with configuration data CFG received in synchronization with the trigger signal TRG. Each flag calculator FOP executes a flag calculation in synchronization with the clock signal, and outputs the calculation result to the flag output terminal FO. The flag calculator FOP stops its operation while receiving the stall signal STL.

ネットワーク回路NWFは、各演算器OPにフラグ信号を出力する2ビットのフラグ出力端子AFO1、AFO0(AFO01、AFO00、...、AFOn1、AFOn0)を有する。ネットワーク回路NWFは、各演算器OPからフラグ信号を受けるフラグ入力端子AFI(AFI0、...、AFIn)とを有する。また、ネットワーク回路NWFは、各フラグ演算器FOPにフラグ信号を出力する2ビットのフラグ出力端子FFO1、FFO0(FFO01、FFO00、...、FFOm1、FFOm0)を有する。ネットワーク回路NWFは、各フラグ演算器FOPからフラグ信号を受ける1ビットのフラグ入力端子FFI(FFI0、...、FFIm)とを有する。各フラグ出力端子AFO1、AFO0、フラグ入力端子AFI、フラグ出力端子FFO1、FFO0およびフラグ入力端子FFIは、2ビットである。   The network circuit NWF has 2-bit flag output terminals AFO1, AFO0 (AFO01, AFO00,..., AFOn1, AFOn0) for outputting a flag signal to each arithmetic unit OP. The network circuit NWF has flag input terminals AFI (AFI0,..., AFIn) that receive flag signals from the respective arithmetic units OP. Further, the network circuit NWF has 2-bit flag output terminals FFO1, FFO0 (FFO01, FFO00,..., FFOm1, FFOm0) for outputting a flag signal to each flag calculator FOP. The network circuit NWF has a 1-bit flag input terminal FFI (FFI0,..., FFIm) that receives a flag signal from each flag calculator FOP. Each of the flag output terminals AFO1 and AFO0, the flag input terminal AFI, the flag output terminals FFO1 and FFO0, and the flag input terminal FFI are 2 bits.

そして、ネットワーク回路NWFは、コンフィグレーションデータCFGに応じて、演算器OPまたはフラグ演算器FOPのフラグ出力端子FOを、他の演算器OPまたはフラグ演算器FOPのフラグ入力端子FIに接続する機能を有する。また、ネットワーク回路NWFは、コンフィグレーションデータCFGに応じて、演算器OPおよびフラグ演算器FOPのフラグ出力端子FOを、フラグ端子FLG(FLG0−FLG7)のいずれかに接続する機能を有する。   The network circuit NWF has a function of connecting the flag output terminal FO of the computing unit OP or the flag computing unit FOP to the flag input terminal FI of another computing unit OP or the flag computing unit FOP according to the configuration data CFG. Have. The network circuit NWF has a function of connecting the calculator OP and the flag output terminal FO of the flag calculator FOP to any one of the flag terminals FLG (FLG0 to FLG7) according to the configuration data CFG.

すなわち、ネットワーク回路NWFは、トリガ信号TRGに同期して受信するコンフィグレーションデータCFGに応じて、演算器OPとフラグ演算器FOPとの間の接続仕様およびフラグ端子FLGへのフラグ信号の転送仕様を変更する機能を有する。ネットワーク回路NWFは、演算器OP、FOPの出力とフラグ信号FLGを出力するフラグ端子FLGとを優先度に応じて接続する接続部の一例である。   That is, the network circuit NWF has a connection specification between the arithmetic unit OP and the flag arithmetic unit FOP and a transfer specification of the flag signal to the flag terminal FLG according to the configuration data CFG received in synchronization with the trigger signal TRG. Has the function to change. The network circuit NWF is an example of a connection unit that connects the outputs of the arithmetic units OP and FOP and the flag terminal FLG that outputs a flag signal FLG according to priority.

図3で説明したように、フラグ信号FLG0−FLG7の優先度は、番号が小さいほど高い。ネットワーク回路NWFは、任意の演算器OPまたはフラグ演算器FOPの出力を、優先度に応じてフラグ端子FLG0−FLG7のいずれかに接続することができる。この結果、優先度が設定されたフラグ信号FLG0−FLG7をネットワーク回路NWFからシーケンサ14に出力することができ、シーケンサ14による優先度の判定処理を省くことができる。   As described in FIG. 3, the priority of the flag signals FLG0 to FLG7 is higher as the number is smaller. The network circuit NWF can connect the output of an arbitrary arithmetic unit OP or flag arithmetic unit FOP to any one of flag terminals FLG0 to FLG7 according to the priority. As a result, flag signals FLG0 to FLG7 in which priorities are set can be output from the network circuit NWF to the sequencer 14, and the priority determination processing by the sequencer 14 can be omitted.

フラグ演算器DFOPは、トリガ信号TRGに同期して受信するコンフィグレーションデータCFGに応じて、通常モードあるいはデフォルトモードのいずれかで動作する。フラグ演算器DFOPは、通常モード中に、2ビットのフラグ入力端子FI7で受けるフラグ信号FLG7をフラグ出力端子FOからフラグ信号FLG7として出力する。フラグ演算器DFOPは、デフォルトモード中に、2ビットのフラグ入力端子FI6−FI0でそれぞれ受けるフラグ信号FLG6−FLG0が偽または無効を示す場合、真を示すフラグ信号FLG7を出力する。また、フラグ演算器DFOPは、デフォルトモード中に、フラグ入力端子FI6−FI0で受けるフラグ信号FLG6−FLG0のいずれかが真を示す場合、偽を示すフラグ信号FLG7を出力する。   The flag calculator DFOP operates in either the normal mode or the default mode according to the configuration data CFG received in synchronization with the trigger signal TRG. The flag calculator DFOP outputs the flag signal FLG7 received at the 2-bit flag input terminal FI7 as the flag signal FLG7 from the flag output terminal FO during the normal mode. Flag calculator DFOP outputs flag signal FLG7 indicating true when flag signals FLG6-FLG0 received at 2-bit flag input terminals FI6-FI0 respectively indicate false or invalid during the default mode. Further, flag calculator DFOP outputs flag signal FLG7 indicating false when any of flag signals FLG6-FLG0 received at flag input terminals FI6-FI0 indicates true during the default mode.

フラグ演算器DFOPは、演算器OP、FOPから出力される複数のフラグ信号FLG0−FLG6のいずれも偽を示す場合に、真を示すフラグ信号FLG7をシーケンサ14に出力するフラグ制御回路の一例である。フラグ演算器DFOPの例は、図6に示す。   The flag calculator DFOP is an example of a flag control circuit that outputs a flag signal FLG7 indicating true to the sequencer 14 when any of the plurality of flag signals FLG0 to FLG6 output from the calculators OP and FOP indicates false. . An example of the flag calculator DFOP is shown in FIG.

例えば、各フラグ信号FLGは、2ビットであり、上位ビットで真または偽を示し、下位ビットで有効または無効を示す。比較処理または符号判定の結果が真(true)の場合、フラグ信号FLGは、2進数の”11”に設定され、比較処理または符号判定の結果が偽(false)の場合、フラグ信号FLGは、2進数の"10”に設定される。フラグ信号FLGの出力を伴わない演算が実行される場合、フラグ信号FLGは、無効を示す2進数の”00”または”01”に設定される。以下の説明では、フラグ信号FLGの値を示す2桁の数値は、2進数である。   For example, each flag signal FLG is 2 bits, the upper bits indicate true or false, and the lower bits indicate valid or invalid. When the result of the comparison process or sign determination is true, the flag signal FLG is set to binary “11”. When the result of the comparison process or sign determination is false, the flag signal FLG is It is set to the binary number “10”. When an operation that does not involve the output of the flag signal FLG is executed, the flag signal FLG is set to “00” or “01”, which is a binary number indicating invalidity. In the following description, the 2-digit numerical value indicating the value of the flag signal FLG is a binary number.

この実施形態では、演算器アレイ18は、優先度が予め設定された複数のフラグ信号FLGを出力し、フラグ信号FLGの優先度に応じて、次に実行するコンテキストをシーケンサ14に選択させる。これにより、次に演算を実行するコンテキストを決定するための条件判定で使用されるクロックサイクル数を従来に比べて減らすことができ、演算器アレイ18の動作効率を向上することができる。   In this embodiment, the arithmetic unit array 18 outputs a plurality of flag signals FLG having priorities set in advance, and causes the sequencer 14 to select a context to be executed next in accordance with the priorities of the flag signals FLG. As a result, the number of clock cycles used in the condition determination for determining the context for executing the next operation can be reduced as compared with the conventional case, and the operation efficiency of the arithmetic unit array 18 can be improved.

カウンタACOUNTは、コンテキストの実行に応じて、例えば、メモリ制御回路MCNTが生成するアドレス信号ADの増分を示すインデックス信号IDXを生成する。また、カウンタACOUNTは、コンテキストの処理に掛かるサイクル数をカウントし、実行中のコンテキストの終了を判定した場合に、終了信号ENDを出力する。カウンタACOUNTは、トリガ信号TRGに同期して受信するコンフィグレーションデータCFGに応じて、インデックス信号IDXの値や増分、終了信号ENDの生成仕様や生成タイミングが変更される。また、カウンタACOUNTは、ストール信号STLを受けている期間、動作を停止する。   The counter ACOUNT generates, for example, an index signal IDX indicating an increment of the address signal AD generated by the memory control circuit MCNT according to the execution of the context. The counter ACOUNT counts the number of cycles required for context processing, and outputs an end signal END when determining the end of the context being executed. The counter ACOUNT changes the value and increment of the index signal IDX and the generation specification and generation timing of the end signal END according to the configuration data CFG received in synchronization with the trigger signal TRG. Further, the counter ACOUNT stops its operation while receiving the stall signal STL.

メモリ制御回路MCNTは、コンフィグレーションデータCFGに含まれるアドレス信号ADの基準値と、カウンタACOUNTからのインデックス信号IDXの値とからアドレス信号ADを生成し、制御信号CNTとともに図3に示した共有メモリ12に出力する。そして、メモリ制御回路MCNTにより共有メモリ12の動作を制御することで、ネットワーク回路NWDを介して、共有メモリ12と演算器アレイ18との間でデータが授受される。メモリ制御回路MCNTは、トリガ信号TRGに同期して受信するコンフィグレーションデータCFGに応じて、アドレス信号ADおよび制御信号CNTの生成タイミング等を変更可能である。   The memory control circuit MCNT generates the address signal AD from the reference value of the address signal AD included in the configuration data CFG and the value of the index signal IDX from the counter ACOUNT, and the shared memory shown in FIG. 3 together with the control signal CNT. 12 is output. Then, by controlling the operation of the shared memory 12 by the memory control circuit MCNT, data is exchanged between the shared memory 12 and the arithmetic unit array 18 via the network circuit NWD. The memory control circuit MCNT can change the generation timing of the address signal AD and the control signal CNT according to the configuration data CFG received in synchronization with the trigger signal TRG.

図5は、図4に示したフラグ演算器FOPの例を示す。フラグ演算器FOPは、フリップフロップFF1、極性反転器PRVS0、PRVS1、セレクタSEL0、SEL1およびフラグ演算部FLGOPを有する。   FIG. 5 shows an example of the flag calculator FOP shown in FIG. The flag calculator FOP includes a flip-flop FF1, polarity inverters PRVS0 and PRVS1, selectors SEL0 and SEL1, and a flag calculator FLGOP.

フリップフロップFF1は、トリガ信号TRGの有効レベル中にクロック信号CLKに同期して3ビットのコンフィグレーションデータCFGを受信し、受信したコンフィグレーションデータCFGを制御信号C[2:0]として出力する。   The flip-flop FF1 receives the 3-bit configuration data CFG in synchronization with the clock signal CLK during the effective level of the trigger signal TRG, and outputs the received configuration data CFG as the control signal C [2: 0].

極性反転器PRVS0は、入力端子FI0[1:0]で受けるフラグ信号の極性を反転し、極性反転器PRVS1は、入力端子FI1[1:0]で受けるフラグ信号の極性を反転する。例えば、極性反転器PRVS0、PRVS1は、真を示すフラグ信号”11”を、偽を示すフラグ信号”10”に変換し、偽を示すフラグ信号”10”を、真を示すフラグ信号”11”に変換する。フラグ演算器FOPにフラグ信号の極性を反転する機能を設けることで、例えば、図13に示すif文のネスト処理に相当する処理で使用するフラグ演算器FOPの数を、フラグ信号の極性を反転する機能を持たない場合に比べて削減できる。   The polarity inverter PRVS0 inverts the polarity of the flag signal received at the input terminal FI0 [1: 0], and the polarity inverter PRVS1 inverts the polarity of the flag signal received at the input terminal FI1 [1: 0]. For example, the polarity inverters PRVS0 and PRVS1 convert the flag signal “11” indicating true into a flag signal “10” indicating false, the flag signal “10” indicating false, and the flag signal “11” indicating true. Convert to By providing the flag computing unit FOP with a function for inverting the polarity of the flag signal, for example, the number of flag computing units FOP used in the processing equivalent to the nesting processing of the if statement shown in FIG. This can be reduced compared to the case without the function.

セレクタSEL0は、制御信号C[0]がハイレベルの場合に入力端子FI0[1:0]で受けるフラグ信号を選択し、制御信号C[0]がロウレベルの場合に極性反転器PRVS0により極性が反転されたフラグ信号を選択する。そして、セレクタSEL0は、選択した信号をフラグ信号FI0としてフラグ演算部FLGOPに出力する。   The selector SEL0 selects the flag signal received at the input terminal FI0 [1: 0] when the control signal C [0] is high level, and the polarity is inverted by the polarity inverter PRVS0 when the control signal C [0] is low level. Select the inverted flag signal. Then, the selector SEL0 outputs the selected signal as the flag signal FI0 to the flag calculation unit FLGOP.

セレクタSEL1は、制御信号C[1]がハイレベルの場合に入力端子FI1[1:0]で受けるフラグ信号を選択し、制御信号C[1]がロウレベルの場合に極性反転器PRVS1により極性が反転されたフラグ信号を選択する。そして、セレクタSEL1は、選択した信号をフラグ信号FI1としてフラグ演算部FLGOPに出力する。   The selector SEL1 selects a flag signal received at the input terminal FI1 [1: 0] when the control signal C [1] is high level, and the polarity is inverted by the polarity inverter PRVS1 when the control signal C [1] is low level. Select the inverted flag signal. Then, the selector SEL1 outputs the selected signal as the flag signal FI1 to the flag calculation unit FLGOP.

フラグ演算部FLGOPは、例えば、制御信号C[2]がハイレベル(”1”)の場合にフラグ信号FI0、FI1の論理積(AND)をフラグ信号FO[1:0]として出力する。フラグ演算部FLGOPは、例えば、制御信号C[2]がロウレベル(”0”)の場合にフラグ信号FI0、FI1の論理和(OR)をフラグ信号FO[1:0]として出力する。フラグ演算部FLGOPは、フラグ信号FI0、FI1の少なくとも一方が無効(”00”または”01”)の場合、無効を示すフラグ信号FO[1:0](”00”)を出力する。   For example, when the control signal C [2] is at a high level (“1”), the flag calculation unit FLGOP outputs the logical product (AND) of the flag signals FI0 and FI1 as the flag signal FO [1: 0]. For example, when the control signal C [2] is at a low level (“0”), the flag calculation unit FLGOP outputs the logical sum (OR) of the flag signals FI0 and FI1 as the flag signal FO [1: 0]. When at least one of the flag signals FI0 and FI1 is invalid (“00” or “01”), the flag calculation unit FLGOP outputs a flag signal FO [1: 0] (“00”) indicating invalidity.

図6は、図4に示したフラグ演算器DFOPの例を示す。フラグ演算器DFOPは、フリップフロップFF2、アンド回路AND1、AND0、オア回路OR、ノア回路NORおよびセレクタSEL3、SEL2を有する。   FIG. 6 shows an example of the flag calculator DFOP shown in FIG. The flag calculator DFOP includes a flip-flop FF2, AND circuits AND1, AND0, an OR circuit OR, a NOR circuit NOR, and selectors SEL3, SEL2.

フリップフロップFF2は、トリガ信号TRGの有効レベル中にクロック信号CLKに同期して9ビットのコンフィグレーションデータCFGを受信し、受信したコンフィグレーションデータCFGを制御信号C[8:0]として出力する。   The flip-flop FF2 receives the 9-bit configuration data CFG in synchronization with the clock signal CLK during the effective level of the trigger signal TRG, and outputs the received configuration data CFG as the control signal C [8: 0].

アンド回路AND1(AND10、AND11、AND12、AND13、AND14、AND15、AND16、AND17)は、フラグ信号FLG0−FLG7の上位ビットを受ける。アンド回路AND1j(jは、0から7のいずれか)は、フラグ信号FLGjの上位ビットFIj[1]と制御信号C[j]の論理積をフラグ信号FGj1として出力する。制御信号C[j]は、上位ビットFIj[1]を条件判定に使用する場合(入力が有効の場合)、ハイレベルに設定され、上位ビットFIj[1]を条件判定に使用しない場合(入力が無効の場合)、ロウレベルに設定される。すなわち、アンド回路AND1jは、条件判定に使用しないフラグ信号FLGjをマスクするマスク回路として機能する。   The AND circuit AND1 (AND10, AND11, AND12, AND13, AND14, AND15, AND16, AND17) receives the upper bits of the flag signals FLG0 to FLG7. The AND circuit AND1j (j is any one of 0 to 7) outputs a logical product of the upper bit FIj [1] of the flag signal FLGj and the control signal C [j] as the flag signal FGj1. The control signal C [j] is set to a high level when the upper bit FIj [1] is used for condition determination (when input is valid), and the upper bit FIj [1] is not used for condition determination (input). Is set to low level. That is, the AND circuit AND1j functions as a mask circuit that masks the flag signal FLGj that is not used for condition determination.

オア回路ORは、フラグ信号FGj1の少なくとも1つがハイレベルの場合、ハイレベルを出力し、全てのフラグ信号FGj1がロウレベルの場合、ロウレベルを出力する。換言すれば、オア回路ORは、フラグ信号FGj1の少なくとも1つがフラグ信号FLGの有効状態を示すときに、有効状態を示す信号をセレクタSEL3に出力する。   The OR circuit OR outputs a high level when at least one of the flag signals FGj1 is at a high level, and outputs a low level when all the flag signals FGj1 are at a low level. In other words, the OR circuit OR outputs a signal indicating the valid state to the selector SEL3 when at least one of the flag signals FGj1 indicates the valid state of the flag signal FLG.

セレクタSEL3は、制御信号C[8]がハイレベルの場合にオア回路ORの出力を選択し、制御信号C[8]がロウレベルの場合にフラグ信号FLG7の上位ビットFI7[1]を選択する。そして、セレクタSEL3は、選択した信号をフラグ信号FLG7の上位ビットとして出力端子FO1に出力する。   The selector SEL3 selects the output of the OR circuit OR when the control signal C [8] is at a high level, and selects the upper bit FI7 [1] of the flag signal FLG7 when the control signal C [8] is at a low level. Then, the selector SEL3 outputs the selected signal to the output terminal FO1 as the upper bits of the flag signal FLG7.

アンド回路AND0(AND00、AND01、AND02、AND03、AND04、AND05、AND06、AND07)は、フラグ信号FLG0−FLG7の下位ビットを受ける。アンド回路AND0k(kは、0から7のいずれか)は、フラグ信号FLGkの下位ビットFIk[0]と制御信号C[k]の論理積をフラグ信号FGk0として出力する。制御信号C[k]は、下位ビットFIk[0]を条件判定に使用する場合(入力が有効の場合)、ハイレベルに設定され、下位ビットFIk[0]を条件判定に使用しない場合(入力が無効の場合)、ロウレベルに設定される。すなわち、アンド回路AND0jは、条件判定に使用しないフラグ信号FLGkをマスクするマスク回路として機能する。   The AND circuit AND0 (AND00, AND01, AND02, AND03, AND04, AND05, AND06, AND07) receives the lower bits of the flag signals FLG0-FLG7. The AND circuit AND0k (k is one of 0 to 7) outputs a logical product of the lower bits FIk [0] of the flag signal FLGk and the control signal C [k] as the flag signal FGk0. The control signal C [k] is set to a high level when the lower bit FIk [0] is used for condition determination (when the input is valid), and when the lower bit FIk [0] is not used for condition determination (input). Is set to low level. That is, the AND circuit AND0j functions as a mask circuit that masks the flag signal FLGk that is not used for condition determination.

ノア回路NORは、フラグ信号FGk0の少なくとも1つがハイレベルの場合、ロウレベルを出力し、全てのフラグ信号FGk1がロウレベルの場合、ハイレベルを出力する。換言すれば、ノア回路NORは、全てのフラグ信号FGk1が偽(false)を示す場合、真(true)を示す信号をセレクタSEL0に出力する。また、ノア回路NORは、フラグ信号FGk1の少なくとも1つが真を示す場合、偽を示す信号をセレクタSEL2に出力する。   The NOR circuit NOR outputs a low level when at least one of the flag signals FGk0 is at a high level, and outputs a high level when all the flag signals FGk1 are at a low level. In other words, the NOR circuit NOR outputs a signal indicating true to the selector SEL0 when all the flag signals FGk1 indicate false. The NOR circuit NOR outputs a signal indicating false to the selector SEL2 when at least one of the flag signals FGk1 indicates true.

セレクタSEL2は、制御信号C[8]がハイレベルの場合にノア回路NORの出力を選択し、制御信号C[8]がロウレベルの場合にフラグ信号FLG7の下位ビットFI70を選択する。そして、セレクタSEL2は、選択した信号をフラグ信号FLG7の下位ビットとして出力端子FO0に出力する。   The selector SEL2 selects the output of the NOR circuit NOR when the control signal C [8] is at a high level, and selects the lower bit FI70 of the flag signal FLG7 when the control signal C [8] is at a low level. Then, the selector SEL2 outputs the selected signal to the output terminal FO0 as the lower bit of the flag signal FLG7.

フラグ演算器DFOPは、通常モードまたはデフォルトモードで動作する。通常モードでは、制御信号C[8]はロウレベルに設定され、セレクタSEL3、SEL2は、フラグ信号FI7[1]、FI7[0]をそれぞれ選択する。そして、フラグ演算器DFOPは、ネットワーク回路NWFからのフラグ信号FLG7を、フラグ信号FLG7としてシーケンサ14(図3)に出力する。   The flag calculator DFOP operates in the normal mode or the default mode. In the normal mode, the control signal C [8] is set to the low level, and the selectors SEL3 and SEL2 select the flag signals FI7 [1] and FI7 [0], respectively. Then, the flag calculator DFOP outputs the flag signal FLG7 from the network circuit NWF to the sequencer 14 (FIG. 3) as the flag signal FLG7.

デフォルトモードでは、セレクタSEL3、SEL2は、ハイレベルの制御信号C[8]を受けて、オア回路ORおよびノア回路NORの出力をそれぞれ選択する。そして、フラグ演算器DFOPは、ネットワーク回路NWFからのフラグ信号FLG0−FLG6が全て偽(false)のときに真(true)を示すフラグ信号FLG7(”11”)をシーケンサ14に出力する。また、フラグ演算器DFOPは、ネットワーク回路NWFからのフラグ信号FLG0−FLG6のいずれかが真のときに偽を示すフラグ信号FLG7(”10”)を出力する。   In the default mode, the selectors SEL3 and SEL2 receive the high level control signal C [8] and select the outputs of the OR circuit OR and the NOR circuit NOR, respectively. The flag calculator DFOP outputs a flag signal FLG7 (“11”) indicating true to the sequencer 14 when all the flag signals FLG0 to FLG6 from the network circuit NWF are false. The flag calculator DFOP outputs a flag signal FLG7 (“10”) indicating false when any of the flag signals FLG0 to FLG6 from the network circuit NWF is true.

図7は、図3に示したコンフィグレーションメモリ16A、16Bの例を示す。例えば、コンフィグレーションメモリ16Aは、演算器アレイ18に回路を構築するコンフィグレーションデータCFGを記憶する32個の記憶領域を有する。コンフィグレーションデータCFGは、例えば、数百ビットであり、図4に示した演算器OP、フラグ演算器FOP、DFOP、ネットワーク回路NWD、NWF、カウンタACOUNTおよびメモリ制御回路MCNTの機能を設定する情報を含む。すなわち、コンフィグレーションデータCFGは、演算器アレイ18が実行するコンテキストCTXの仕様を含む。   FIG. 7 shows an example of the configuration memories 16A and 16B shown in FIG. For example, the configuration memory 16A has 32 storage areas for storing configuration data CFG for constructing a circuit in the arithmetic unit array 18. The configuration data CFG is, for example, several hundred bits, and includes information for setting the functions of the arithmetic unit OP, flag arithmetic units FOP, DFOP, network circuits NWD, NWF, counter ACOUNT, and memory control circuit MCNT shown in FIG. Including. That is, the configuration data CFG includes the specification of the context CTX executed by the arithmetic unit array 18.

コンフィグレーションメモリ16Aの32個の記憶領域は、5ビットのアドレスADaにより識別可能である。そして、コンフィグレーションメモリ16Aは、制御信号CNTaに応じて読み出し動作を実行し、アドレス信号ADaにより示される記憶領域から読み出した情報を図7に三角形で示した読み出し回路を介して、コンフィグレーションデータCFGとして出力する。なお、コンフィグレーションメモリ16Aは、6ビットのアドレスにより64種類の回路の仕様を記憶してもよく、4ビットのアドレスにより16種類の回路の仕様を記憶してもよい。コンフィグレーションメモリ16Aは、複数のコンフィグレーションデータCFGを保持する複数の記憶領域を含み、アドレスADaによりアクセスされる第1記憶部の一例である。   The 32 storage areas of the configuration memory 16A can be identified by a 5-bit address ADa. Then, the configuration memory 16A executes a read operation according to the control signal CNTa, and reads the information read from the storage area indicated by the address signal ADa via the read circuit indicated by a triangle in FIG. Output as. Note that the configuration memory 16A may store 64 types of circuit specifications using 6-bit addresses, and may store 16 types of circuit specifications using 4-bit addresses. The configuration memory 16A is an example of a first storage unit that includes a plurality of storage areas that hold a plurality of configuration data CFGs and is accessed by an address ADa.

例えば、コンフィグレーションメモリ16Bは、図3に示したレジスタREG0−REG7に転送する8組のアドレスADa、ADb、分岐制御フラグBRAおよび終了フラグENDSを記憶する16個の記憶領域を有する。コンフィグレーションメモリ16Bの16個の記憶領域は、4ビットのアドレスADbにより識別可能である。   For example, the configuration memory 16B has 16 storage areas for storing eight sets of addresses ADa and ADb, a branch control flag BRA, and an end flag ENDS transferred to the registers REG0 to REG7 shown in FIG. The 16 storage areas of the configuration memory 16B can be identified by a 4-bit address ADb.

コンフィグレーションメモリ16Bの各記憶領域は、レジスタREG0−REG7に対応する8組のアドレスADa、ADbを記憶する8個のサブ領域と、分岐制御フラグBRAおよび終了フラグENDSを記憶する2個のフラグ領域とを有する。例えば、各サブ領域は、9ビット(ADa=5ビット、ADb=4ビット)であり、各フラグ領域は、1ビットであり、各記憶領域は、74ビットである。そして、コンフィグレーションメモリ16Bは、制御信号CNTbに応じて読み出し動作を実行し、アドレス信号ADbにより示される記憶領域から読み出した情報を図7に三角形で示した読み出し回路を介して、レジスタデータREGDとして出力する。コンフィグレーションメモリ16Bは、複数組のアドレスADa、ADbを記憶する複数の記憶領域を含み、アドレスADbによりアクセスされる第2記憶部の一例である。   Each storage area of the configuration memory 16B has eight sub areas for storing eight sets of addresses ADa and ADb corresponding to the registers REG0 to REG7, and two flag areas for storing a branch control flag BRA and an end flag ENDS. And have. For example, each sub-area is 9 bits (ADa = 5 bits, ADb = 4 bits), each flag area is 1 bit, and each storage area is 74 bits. Then, the configuration memory 16B executes a read operation in accordance with the control signal CNTb, and reads the information read from the storage area indicated by the address signal ADb as register data REGD via the read circuit indicated by a triangle in FIG. Output. The configuration memory 16B is an example of a second storage unit that includes a plurality of storage areas that store a plurality of sets of addresses ADa and ADb and is accessed by the address ADb.

なお、図7に示すように、コンフィグレーションデータCFGと演算器アレイ18の回路構成を切り替えるレジスタデータREGDとは、互いに独立したコンフィグレーションメモリ16A、16Bに格納される。これにより、図21で説明するように、半導体集積回路SEM2に搭載するメモリの容量を従来に比べて削減でき、半導体集積回路SEM2の回路規模を従来に比べて削減できる。   As shown in FIG. 7, the configuration data CFG and the register data REGD for switching the circuit configuration of the arithmetic unit array 18 are stored in the configuration memories 16A and 16B independent of each other. As a result, as will be described with reference to FIG. 21, the capacity of the memory mounted on the semiconductor integrated circuit SEM2 can be reduced as compared with the conventional case, and the circuit scale of the semiconductor integrated circuit SEM2 can be reduced as compared with the conventional case.

なお、コンフィグレーションメモリ16A、16Bの代わりに、コンフィグレーションデータCFG、8個のアドレスAD、制御フラグBRAおよび終了フラグENDSを記憶する32個の記憶領域を有するコンフィグレーションメモリを配置してもよい。この場合、図3に示したレジスタREG0−REG7は、コンフィグレーションメモリから読み出される8個のアドレスADをそれぞれ保持する。シーケンサ14は、条件判定の結果を示すフラグ信号FLG0−FLG7に応じて、レジスタREG0−REG7のいずれかに保持されたアドレスADを選択する。そして、選択したアドレスADおよび1つの制御信号をコンフィグレーションメモリに出力し、コンフィグレーションメモリからコンフィグレーションデータCFG、8個のアドレスAD、制御フラグBRAおよび終了フラグENDSを読み出す。   Instead of the configuration memories 16A and 16B, a configuration memory having 32 storage areas for storing the configuration data CFG, the eight addresses AD, the control flag BRA, and the end flag ENDS may be arranged. In this case, the registers REG0 to REG7 shown in FIG. 3 each hold eight addresses AD read from the configuration memory. The sequencer 14 selects the address AD held in any of the registers REG0 to REG7 in response to the flag signals FLG0 to FLG7 indicating the result of the condition determination. Then, the selected address AD and one control signal are output to the configuration memory, and the configuration data CFG, eight addresses AD, the control flag BRA, and the end flag ENDS are read from the configuration memory.

図8は、図3に示した演算器アレイ18に実行させる処理の例を示す。この例では、半導体集積回路SEM2内の演算器アレイ18は、コンフィグレーションデータCFGの受信に基づいて、条件判定を実行する回路(コンテキストCTXJ)を構築する。例えば、演算器アレイ18は、コンテキストCTXJの処理を実行し、共有メモリ12から受けるデータ”x”が、”0”、”1”、”2”、”3”のいずれであるかを判定する。すなわち、コンテキストCTXJは、図8に示したC言語等のswitch文に相当する処理を実行する。演算器アレイ18は、判定結果をフラグ信号FLG0−FLG3、FLG7としてシーケンサ14に出力する。この例では、条件判定は4回実行され、分岐先が5つあるため、5つのフラグ信号FLG0−FLG3、FLG7が使用される。フラグ信号FLG4−FLG6は、無効を示すレベルに設定される。   FIG. 8 shows an example of processing to be executed by the arithmetic unit array 18 shown in FIG. In this example, the arithmetic unit array 18 in the semiconductor integrated circuit SEM2 constructs a circuit (context CTXJ) that performs condition determination based on reception of the configuration data CFG. For example, the arithmetic unit array 18 executes the process of the context CTXJ and determines whether the data “x” received from the shared memory 12 is “0”, “1”, “2”, or “3”. . That is, the context CTXJ executes a process corresponding to a switch statement such as C language shown in FIG. The arithmetic unit array 18 outputs the determination result to the sequencer 14 as flag signals FLG0 to FLG3 and FLG7. In this example, the condition determination is executed four times and there are five branch destinations, so five flag signals FLG0 to FLG3 and FLG7 are used. Flag signals FLG4-FLG6 are set to a level indicating invalidity.

シーケンサ14は、フラグ信号FLG0−FLG3、FLG7の値に基づいて、演算器アレイ18が次に処理を実行する回路を構築するコンフィグレーションデータCFGをコンフィグレーションメモリ16Aから読み出す。演算器アレイ18は、コンフィグレーションメモリ16Aから読み出されるコンフィグレーションデータCFGを用いて、次に処理を実行する回路(コンテキストCTX0−CTX4のいずれか)を構築する。   The sequencer 14 reads from the configuration memory 16A the configuration data CFG for constructing a circuit that the arithmetic unit array 18 performs next processing based on the values of the flag signals FLG0 to FLG3 and FLG7. The arithmetic unit array 18 uses the configuration data CFG read from the configuration memory 16A to construct a circuit (any one of the contexts CTX0 to CTX4) that performs the next process.

例えば、フラグ信号FLG0−FLG3、FLG7の値が、”x=0”を示す場合、演算器アレイ18は、コンテキストCTX0(処理A)を実行する回路に構築される。例えば、”x=0”は、フラグ信号FLG0の真、フラグ信号FLG1−FLG3、FLG7の偽により示される。フラグ信号FLG0−FLG3、FLG7の値が、”x=1”を示す場合、演算器アレイ18は、コンテキストCTX1(処理B)を実行する回路に構築される。例えば、”x=1”は、フラグ信号FLG1の真、フラグ信号FLG0、FLG2、FLG3、FLG7の偽により示される。   For example, when the values of the flag signals FLG0 to FLG3 and FLG7 indicate “x = 0”, the arithmetic unit array 18 is constructed in a circuit that executes the context CTX0 (processing A). For example, “x = 0” is indicated by the trueness of the flag signal FLG0 and the falseness of the flag signals FLG1 to FLG3 and FLG7. When the values of the flag signals FLG0 to FLG3 and FLG7 indicate “x = 1”, the arithmetic unit array 18 is constructed in a circuit that executes the context CTX1 (processing B). For example, “x = 1” is indicated by true of the flag signal FLG1 and false of the flag signals FLG0, FLG2, FLG3, and FLG7.

フラグ信号FLG0−FLG3、FLG7の値が、”x=2”を示す場合、演算器アレイ18は、コンテキストCTX2(処理C)を実行する回路に構築される。例えば、”x=2”は、フラグ信号FLG2の真、フラグ信号FLG0、FLG1、FLG3、FLG7の偽により示される。フラグ信号FLG0−FLG3、FLG7の値が、”x=3”を示す場合、演算器アレイ18は、コンテキストCTX3(処理D)を実行する回路に構築される。例えば、”x=3”は、フラグ信号FLG3の真、フラグ信号FLG0−FLG2、FLG7の偽により示される。   When the values of the flag signals FLG0 to FLG3 and FLG7 indicate “x = 2”, the arithmetic unit array 18 is constructed in a circuit that executes the context CTX2 (processing C). For example, “x = 2” is indicated by true of the flag signal FLG2 and false of the flag signals FLG0, FLG1, FLG3, and FLG7. When the values of the flag signals FLG0 to FLG3 and FLG7 indicate “x = 3”, the arithmetic unit array 18 is constructed in a circuit that executes the context CTX3 (processing D). For example, “x = 3” is indicated by true of the flag signal FLG3 and false of the flag signals FLG0 to FLG2 and FLG7.

一方、フラグ信号FLG0−FLG3、FLG7の値が、”x=0”、”x=1”、”x=2”、”x=3”のいずれでもないことを示す場合、演算器アレイ18内の回路は、処理Eを実行するコンテキストCTX4に構築される。例えば、”x=0”、”x=1”、”x=2”、”x=3”のいずれでもないことは、フラグ信号FLG7の真、フラグ信号FLG0−FLG3の偽により示される。そして、演算器アレイ18は、コンテキストCTXJの実行後に、FLG0−FLG3、FLG7の値に基づいて新たに構築したコンテキストCTX0−CTX4のいずれかの処理を実行する。   On the other hand, if the flag signals FLG0-FLG3, FLG7 indicate that none of “x = 0”, “x = 1”, “x = 2”, “x = 3” Is constructed in a context CTX4 for executing the process E. For example, the fact that none of “x = 0”, “x = 1”, “x = 2”, and “x = 3” is indicated by the flag signal FLG7 being true and the flag signals FLG0 to FLG3 being false. Then, after the execution of the context CTXJ, the arithmetic unit array 18 executes any one of the contexts CTX0 to CTX4 newly constructed based on the values of FLG0 to FLG3 and FLG7.

図3に示した半導体集積回路SEM2では、条件判定の結果に応じて複数の処理のいずれかが選択的に実行される場合に、実行するデータ処理を1つの条件判定用のコンテキストCTXJにより決定することができる。すなわち、実行するデータ処理の決定のために複数の条件判定用のコンテキストCTXが構築されないため、条件判定からデータ処理の実行が開始されるまでのタイミングを従来に比べて早くすることができる。この結果、半導体集積回路SEM2の性能を従来に比べて向上することができる。   In the semiconductor integrated circuit SEM2 shown in FIG. 3, when any one of a plurality of processes is selectively executed according to the result of the condition determination, the data process to be executed is determined by one condition determination context CTXJ. be able to. That is, since a plurality of condition determination contexts CTX are not constructed for determining the data processing to be executed, the timing from the condition determination to the start of the data processing can be made earlier than before. As a result, the performance of the semiconductor integrated circuit SEM2 can be improved as compared with the conventional one.

図9は、図8に示したコンテキストCTXJを実行する演算器アレイ18の回路構成の例を示す。図9は、コンフィグレーションデータCFGの受信に基づいて、演算器アレイ18が、条件判定を実行する回路(コンテキストCTXJ)に構築された状態を示す。換言すれば、図9は、所定の演算を順次に実行する演算フロー(データフローとも称される)を示す。   FIG. 9 shows an example of the circuit configuration of the arithmetic unit array 18 that executes the context CTXJ shown in FIG. FIG. 9 shows a state in which the arithmetic unit array 18 is constructed in a circuit (context CTXJ) that performs condition determination based on reception of the configuration data CFG. In other words, FIG. 9 shows a calculation flow (also referred to as a data flow) for sequentially executing a predetermined calculation.

例えば、ネットワーク回路NWDは、コンフィグレーションデータCFGに基づいて、データ”x”を出力する共有メモリ12のデータ端子RDTを、演算器OP0、OP1、OP2、OP3のデータ入力端子DI0に接続する。演算器OP0は、コンフィグレーションデータCFGに基づいて、データ入力端子DI0で受けたデータ”x”が”0”であるか否かを判定する回路に構築される。演算器OP0は、データ”x”が”0”である場合、フラグ出力端子FOから真(true)を示すフラグ信号(”11”)を出力し、データ”x”が”0”でない場合、フラグ出力端子FOから偽(false)を示すフラグ信号(”10”)を出力する。   For example, the network circuit NWD connects the data terminal RDT of the shared memory 12 that outputs data “x” to the data input terminal DI0 of the arithmetic units OP0, OP1, OP2, and OP3 based on the configuration data CFG. The arithmetic unit OP0 is constructed as a circuit for determining whether or not the data “x” received at the data input terminal DI0 is “0” based on the configuration data CFG. The arithmetic unit OP0 outputs a flag signal (“11”) indicating true from the flag output terminal FO when the data “x” is “0”, and the data “x” is not “0”. A flag signal (“10”) indicating false is output from the flag output terminal FO.

コンフィグレーションデータCFGにより回路が構築された演算器OP1、OP2、OP3は、演算器OP0と同様に動作する。すなわち、演算器OP1は、データ”x”が”1”である場合、フラグ出力端子FOから真を示すフラグ信号を出力し、データ”x”が”1”でない場合、フラグ出力端子FOから偽を示すフラグ信号を出力する。演算器OP2は、データ”x”が”2”である場合、フラグ出力端子FOから真を示すフラグ信号を出力し、データ”x”が”2”でない場合、フラグ出力端子FOから偽を示すフラグ信号を出力する。演算器OP3は、データ”x”が”3”である場合、フラグ出力端子FOから真を示すフラグ信号を出力し、データ”x”が”3”でない場合、フラグ出力端子FOから偽を示すフラグ信号を出力する。なお、図8に示したswitch文に相当する処理を実行する場合、複数の演算器OP(OP0−OP3の2つ以上)は、真を示すフラグ信号を重複して出力しない。   The arithmetic units OP1, OP2, and OP3 whose circuits are constructed by the configuration data CFG operate in the same manner as the arithmetic unit OP0. That is, the arithmetic unit OP1 outputs a flag signal indicating true from the flag output terminal FO when the data “x” is “1”, and false from the flag output terminal FO when the data “x” is not “1”. A flag signal indicating is output. The arithmetic unit OP2 outputs a flag signal indicating true from the flag output terminal FO when the data “x” is “2”, and indicates false from the flag output terminal FO when the data “x” is not “2”. Outputs a flag signal. The arithmetic unit OP3 outputs a flag signal indicating true from the flag output terminal FO when the data “x” is “3”, and indicates false from the flag output terminal FO when the data “x” is not “3”. Outputs a flag signal. Note that when the processing corresponding to the switch statement shown in FIG. 8 is executed, the plurality of computing units OP (two or more of OP0 to OP3) do not output the flag signals indicating true redundantly.

ネットワーク回路NWFは、コンフィグレーションデータCFGに基づいて、演算器OP0、OP1、OP2、OP3のフラグ出力端子FOをシーケンサ14のフラグ端子FLG0、FLG1、FLG2、FLG3にそれぞれ接続する。ネットワーク回路NWFは、演算器OP0、OP1、OP2、OP3のフラグ出力端子FOをフラグ演算器DFOPのシーケンサ14のフラグ入力端子FI0、FI1、FI2、FI3にそれぞれ接続する。ネットワーク回路NWFは、フラグ信号が無効であることを示す値(”00”)をシーケンサ14の空きのフラグ端子FLG4−FLG6にそれぞれ出力する。   The network circuit NWF connects the flag output terminals FO of the arithmetic units OP0, OP1, OP2, and OP3 to the flag terminals FLG0, FLG1, FLG2, and FLG3 of the sequencer 14 based on the configuration data CFG. The network circuit NWF connects the flag output terminals FO of the arithmetic units OP0, OP1, OP2, and OP3 to the flag input terminals FI0, FI1, FI2, and FI3 of the sequencer 14 of the flag arithmetic unit DFOP, respectively. The network circuit NWF outputs a value (“00”) indicating that the flag signal is invalid to the vacant flag terminals FLG4 to FLG6 of the sequencer 14, respectively.

フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、図6に示したフラグ入力端子FI3[1:0]−FI0[1:0]を有効にし、フラグ入力端子FI7[1:0]−FI4[1:0]を無効にする。フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、図6に示したオア回路ORの出力を、セレクタSEL3を介してフラグ出力端子FO[1]に接続する。また、フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、ノア回路NORの出力を、セレクタSEL2を介してフラグ出力端子FO[0]に接続する。換言すれば、図6に示したフラグ演算器DFOPのフリップフロップFFは、コンフィグレーションデータCFGに基づいて、制御信号C[8:0]の値を16進数で”10F”に設定し、デフォルトモードで動作する。   Based on the configuration data CFG, the flag calculator DFOP enables the flag input terminals FI3 [1: 0] -FI0 [1: 0] shown in FIG. 6, and the flag input terminals FI7 [1: 0] -FI4. Disable [1: 0]. Based on the configuration data CFG, the flag calculator DFOP connects the output of the OR circuit OR shown in FIG. 6 to the flag output terminal FO [1] via the selector SEL3. Also, the flag calculator DFOP connects the output of the NOR circuit NOR to the flag output terminal FO [0] via the selector SEL2 based on the configuration data CFG. In other words, the flip-flop FF of the flag calculator DFOP shown in FIG. 6 sets the value of the control signal C [8: 0] to “10F” in hexadecimal based on the configuration data CFG, and sets the default mode Works with.

そして、フラグ演算器DFOPは、フラグ入力端子FI3[0]−FI0[0]で受けるフラグ信号FLG3−FLG0が全て偽を示す場合、図6に示した論理にしたがって、真を示すフラグ信号FLG7をフラグ出力端子FO[0]から出力する。これにより、いずれの判定条件にも該当しない場合の処理を選択するフラグ信号FLGの論理を、演算器OPやフラグ演算器FOPを用いて生成する場合に比べて簡易に生成することができる。   When the flag signals FLG3 to FLG0 received at the flag input terminals FI3 [0] to FI0 [0] all indicate false, the flag calculator DFOP outputs the flag signal FLG7 indicating true according to the logic shown in FIG. Output from the flag output terminal FO [0]. As a result, the logic of the flag signal FLG for selecting a process when none of the determination conditions is met can be generated more easily than when the logic is generated using the calculator OP or the flag calculator FOP.

シーケンサ14は、フラグ信号FLG0−FLG3、FLG7の論理に基づいて、図3に示した選択信号BS1を生成する。また、シーケンサ14は、レジスタREG0−REG3、REG7に保持されたアドレスADa、ADbの組のいずれかをセレクタSSEL1で選択し、選択したアドレスADa、ADbを制御信号CNTa、CNTbとともにコンフィグレーションメモリ16A、16Bに出力する。   The sequencer 14 generates the selection signal BS1 shown in FIG. 3 based on the logic of the flag signals FLG0 to FLG3 and FLG7. Further, the sequencer 14 selects one of a set of addresses ADa and ADb held in the registers REG0 to REG3 and REG7 by the selector SSEL1, and selects the selected addresses ADa and ADb together with the control signals CNTa and CNTb in the configuration memory 16A, To 16B.

図9に示す例では、図8に示したコンテキストCTXJの実行前に、フラグ信号FLG0−FLG3、FLG7に対応するレジスタREG0−REG3、REG7(図3)に、有効なアドレスADaがそれぞれ格納される。例えば、レジスタREG0−REG3、REG7は、コンテキストCTX0−CTX4に対応するコンフィグレーションデータCFGが格納されたコンフィグレーションメモリ16AのアドレスADaをそれぞれ保持する。   In the example shown in FIG. 9, before execution of the context CTXJ shown in FIG. 8, valid addresses ADa are stored in registers REG0-REG3, REG7 (FIG. 3) corresponding to the flag signals FLG0-FLG3, FLG7, respectively. . For example, the registers REG0 to REG3 and REG7 respectively hold the address ADa of the configuration memory 16A in which the configuration data CFG corresponding to the contexts CTX0 to CTX4 is stored.

そして、フラグ信号FLG0−FLG7の論理に基づいて、コンフィグレーションメモリ16Aから新たなコンフィグレーションデータCFGが読み出され、演算器アレイ18は、次に処理を実行する回路(図8に示したコンテキストCTX0−CTX4のいずれか)を構築する。   Then, based on the logic of the flag signals FLG0 to FLG7, new configuration data CFG is read from the configuration memory 16A, and the arithmetic unit array 18 performs a circuit (context CTX0 shown in FIG. 8) for executing the next processing. -Any of CTX4).

図10は、図9に示した回路構成におけるデータxの値、フラグ信号FLGおよび実行されるデータ処理の関係を示す。データxの値が”0”、”1”、”2”、”3”の場合、フラグ信号FLG0、FLG1、FLG2、FLG3が、網掛けで示すようにそれぞれ真(”11”)に設定される。そして、真を示すフラグ信号FLGに応じてコンフィグレーションデータCFGが演算器アレイ18に転送され、コンテキストCTX0、CTX1、CTX2、CTX3のいずれかが実行される。   FIG. 10 shows the relationship between the value of the data x, the flag signal FLG, and the data processing to be executed in the circuit configuration shown in FIG. When the value of the data x is “0”, “1”, “2”, “3”, the flag signals FLG0, FLG1, FLG2, FLG3 are set to true (“11”) as indicated by shading. The Then, the configuration data CFG is transferred to the arithmetic unit array 18 according to the flag signal FLG indicating true, and any one of the contexts CTX0, CTX1, CTX2, and CTX3 is executed.

データxの値が”0”、”1”、”2”、”3”のいずれでもない場合、フラグ信号FLG7が真(”11”)に設定され、コンフィグレーションデータCFGが演算器アレイ18に転送され、コンテキストCTX4が実行される。   When the value of the data x is not “0”, “1”, “2”, or “3”, the flag signal FLG7 is set to true (“11”), and the configuration data CFG is input to the arithmetic unit array 18. The context CTX4 is executed.

図11は、図8に示した処理を実行する半導体集積回路SEM2の動作の例を示す。図11に示す例では、演算器アレイ18は、デフォルトモードで動作するため、図6に示したフラグ演算器DFOPのセレクタSEL3、SEL2は、オア回路ORおよびノア回路NORの出力をそれぞれ選択する。レジスタREG0−REG3、REG7には、コンテキストCTX0−CTX4のコンフィグレーションデータCFGが格納されたコンフィグレーションメモリ16A、16BのアドレスADa、ADbが予め格納される(図11(a))。   FIG. 11 shows an example of the operation of the semiconductor integrated circuit SEM2 that executes the processing shown in FIG. In the example shown in FIG. 11, since the arithmetic unit array 18 operates in the default mode, the selectors SEL3 and SEL2 of the flag arithmetic unit DFOP shown in FIG. 6 select the outputs of the OR circuit OR and the NOR circuit NOR, respectively. In the registers REG0 to REG3 and REG7, the addresses ADa and ADb of the configuration memories 16A and 16B in which the configuration data CFG of the contexts CTX0 to CTX4 are stored are stored in advance (FIG. 11A).

この例では、1番目から5番目のクロックサイクルで、図8に示したコンテキストCTXJが実行され、6番目以降のクロックサイクルで、コンテキストCTX2が実行される(図11(b)、(c))。すなわち、コンテキストCTXJの条件判定の結果に基づいて、演算器アレイ18にコンテキストCTX2の回路が構築され、処理Cが実行される。コンテキストCTXJに対応する回路は、1番目のクロックサイクルより前に演算器アレイ18に転送される。図11に示す例では、フラグ信号FLGに基づく条件分岐が実行されるため、図3に示した分岐制御フラグBRAの値は”1”にセットされる。また、図3に示した終了フラグENDSの値は、コンテキストCTX2の実行の終了に応答するコンフィグレーションメモリ16Bの読み出し動作により”1”にセットされる。   In this example, the context CTXJ shown in FIG. 8 is executed in the first to fifth clock cycles, and the context CTX2 is executed in the sixth and subsequent clock cycles (FIGS. 11B and 11C). . That is, based on the result of the condition determination of the context CTXJ, the context CTX2 circuit is constructed in the arithmetic unit array 18 and the process C is executed. The circuit corresponding to the context CTXJ is transferred to the arithmetic unit array 18 before the first clock cycle. In the example shown in FIG. 11, since the conditional branch based on the flag signal FLG is executed, the value of the branch control flag BRA shown in FIG. 3 is set to “1”. Also, the value of the end flag ENDS shown in FIG. 3 is set to “1” by the read operation of the configuration memory 16B in response to the end of execution of the context CTX2.

2番目のクロックサイクルにおいて、共有メモリ12のデータ端子RDTからデータx(=2)が読み出され、読み出されたデータxは、ネットワーク回路NWDを介して演算器OP0−OP3に供給される(図11(d))。2番目のクロックサイクルまで、フラグ信号FLG0−FLG7は、無効のレベル(”00”または”01”)に設定される(図11(e))。フラグ演算器DFOPは、無効のフラグ信号FLG0−FLG6の下位ビットFI7[0]−FI0[0]を受け、ノア回路NORから出力されるハイレベル”1”をフラグ信号FLG7の下位ビットFI7[0]として出力する(図11(f))。   In the second clock cycle, data x (= 2) is read from the data terminal RDT of the shared memory 12, and the read data x is supplied to the arithmetic units OP0-OP3 via the network circuit NWD ( FIG. 11 (d)). Until the second clock cycle, the flag signals FLG0 to FLG7 are set to an invalid level ("00" or "01") (FIG. 11 (e)). The flag calculator DFOP receives the lower bits FI7 [0] -FI0 [0] of the invalid flag signals FLG0-FLG6, and outputs the high level “1” output from the NOR circuit NOR to the lower bits FI7 [0] of the flag signal FLG7. ] (FIG. 11 (f)).

3番目のクロックサイクルにおいて、演算器OP0−OP3は、図9に示した条件判定をそれぞれ実行し、実行結果を示すフラグ信号FLG0−FLG3をそれぞれ出力する(図11(g))。この例では、演算器OP2は、真(”11”)を示すフラグ信号FLG2を出力し、演算器OP0、OP1、OP3は、偽(”10”)を示すフラグ信号FLG0、FLG1、FLG3をそれぞれ出力する。   In the third clock cycle, the arithmetic units OP0-OP3 execute the condition determination shown in FIG. 9 and output flag signals FLG0-FLG3 indicating the execution results, respectively (FIG. 11 (g)). In this example, the arithmetic unit OP2 outputs a flag signal FLG2 indicating true (“11”), and the arithmetic units OP0, OP1, and OP3 output flag signals FLG0, FLG1, and FLG3 indicating false (“10”), respectively. Output.

フラグ演算器DFOPは、フラグ信号FLG0−FLG6の値に応じて、偽(”10”)を示すフラグ信号FLG7を出力する(図11(h))。演算器アレイ18は、フラグ信号FLG0−FLG7の出力とともに終了信号ENDを出力する(図11(i))。シーケンサ14の制御回路CNTLは、真を示すフラグ信号FLG2に応答して、選択信号BS1を”2”に設定する(図11(j))。   The flag calculator DFOP outputs a flag signal FLG7 indicating false (“10”) according to the values of the flag signals FLG0 to FLG6 (FIG. 11 (h)). The arithmetic unit array 18 outputs the end signal END together with the output of the flag signals FLG0 to FLG7 (FIG. 11 (i)). The control circuit CNTL of the sequencer 14 sets the selection signal BS1 to “2” in response to the flag signal FLG2 indicating true (FIG. 11 (j)).

4番目のクロックサイクルにおいて、シーケンサ14のセレクタSSEL1は、選択信号BS1に応じてレジスタREG2が保持するアドレス値ADa2、ADb2をコンフィグレーションメモリ16A、16Bに出力する(図11(k))。制御回路CNTLは、コンフィグレーションメモリ16Aへの読み出し要求を示す制御信号CNTaと、コンフィグレーションメモリ16Bへの読み出し要求を示す制御信号CNTbとを出力する(図11(l)、(m))。   In the fourth clock cycle, the selector SSEL1 of the sequencer 14 outputs the address values ADa2 and ADb2 held by the register REG2 to the configuration memories 16A and 16B according to the selection signal BS1 (FIG. 11 (k)). The control circuit CNTL outputs a control signal CNTa that indicates a read request to the configuration memory 16A and a control signal CNTb that indicates a read request to the configuration memory 16B (FIGS. 11 (l) and 11 (m)).

5番目のクロックサイクルにおいて、コンフィグレーションメモリ16Aは、アドレス値ADa2が示す記憶領域からコンテキストCTX2を示すコンフィグレーションデータCFGを出力する(図11(n))。コンフィグレーションメモリ16Bは、アドレス値ADb2が示す記憶領域からレジスタデータREGDを出力する(図11(o))。制御回路CNTLは、コンフィグレーションメモリ16AからのコンフィグレーションデータCFGの出力に合わせて、トリガ信号TRGをハイレベルに設定する(図11(p))。   In the fifth clock cycle, the configuration memory 16A outputs the configuration data CFG indicating the context CTX2 from the storage area indicated by the address value ADa2 (FIG. 11 (n)). The configuration memory 16B outputs the register data REGD from the storage area indicated by the address value ADb2 (FIG. 11 (o)). The control circuit CNTL sets the trigger signal TRG to the high level in accordance with the output of the configuration data CFG from the configuration memory 16A (FIG. 11 (p)).

そして、6番目のクロックサイクルにおいて、演算器アレイ18は、トリガ信号TRGのハイレベルに応じてコンフィグレーションデータCFGを取り込み、コンテキストCTX2を実行する回路を構築する(図11(q))。演算器アレイ18は、6番目のクロックサイクルで構築した回路を動作させて、コンテキストCTX2(処理C)を7番目のクロックサイクルから実行する。   Then, in the sixth clock cycle, the arithmetic unit array 18 takes in the configuration data CFG in accordance with the high level of the trigger signal TRG and constructs a circuit for executing the context CTX2 (FIG. 11 (q)). The arithmetic unit array 18 operates the circuit constructed in the sixth clock cycle, and executes the context CTX2 (processing C) from the seventh clock cycle.

図12は、図8に示した処理を実行する半導体集積回路SEM2の動作の別の例を示す。図11と同様の動作については、図11と同じ符号を付し、詳細な説明は省略する。この例では、図8に示したコンテキストCTXJの条件判定の結果に基づいて、演算器アレイ18にコンテキストCTX4の回路が構築され、処理Eが実行される。   FIG. 12 shows another example of the operation of the semiconductor integrated circuit SEM2 that executes the processing shown in FIG. The same operations as those in FIG. 11 are denoted by the same reference numerals as those in FIG. In this example, a circuit of the context CTX4 is constructed in the arithmetic unit array 18 based on the result of the condition determination of the context CTXJ shown in FIG.

3番目のクロックサイクルにおいて、演算器OP0−OP3は、図9に示した条件判定をそれぞれ実行し、実行結果を示すフラグ信号FLG0−FLG3をそれぞれ出力する(図12(g))。この例では、演算器OP0−OP3は、偽(”10”)を示すフラグ信号FLG0−FLG3をそれぞれ出力する。このため、フラグ演算器DFOPは、フラグ信号FLG0−FLG6の値に応じて、真(”11”)を示すフラグ信号FLG7を出力する(図12(h))。シーケンサ14の制御回路CNTLは、真を示すフラグ信号FLG7に応答して、選択信号BS1を”7”に設定する(図12(j))。   In the third clock cycle, the arithmetic units OP0-OP3 execute the condition determination shown in FIG. 9 and output flag signals FLG0-FLG3 indicating the execution results, respectively (FIG. 12 (g)). In this example, the arithmetic units OP0 to OP3 output flag signals FLG0 to FLG3 indicating false (“10”), respectively. Therefore, the flag calculator DFOP outputs a flag signal FLG7 indicating true (“11”) according to the values of the flag signals FLG0 to FLG6 (FIG. 12 (h)). The control circuit CNTL of the sequencer 14 sets the selection signal BS1 to “7” in response to the flag signal FLG7 indicating true (FIG. 12 (j)).

4番目のクロックサイクルにおいて、シーケンサ14のセレクタSSEL1は、選択信号BS1に応じてレジスタREG7が保持するアドレス値ADa7、ADb7をコンフィグレーションメモリ16A、16Bに出力する(図12(k))。制御回路CNTLは、コンフィグレーションメモリ16Aへの読み出し要求を示す制御信号CNTaと、コンフィグレーションメモリ16Bへの読み出し要求を示す制御信号CNTbとを出力する(図12(l)、(m))。   In the fourth clock cycle, the selector SSEL1 of the sequencer 14 outputs the address values ADa7 and ADb7 held by the register REG7 to the configuration memories 16A and 16B according to the selection signal BS1 (FIG. 12 (k)). The control circuit CNTL outputs a control signal CNTa indicating a read request to the configuration memory 16A and a control signal CNTb indicating a read request to the configuration memory 16B (FIGS. 12L and 12M).

5番目のクロックサイクルにおいて、コンフィグレーションメモリ16Aは、アドレス値ADa4が示す記憶領域からコンテキストCTX4を示すコンフィグレーションデータCFGを出力する(図12(n))。コンフィグレーションメモリ16Bは、アドレス値ADb4が示す記憶領域からレジスタデータREGDを出力する(図12(o))。   In the fifth clock cycle, the configuration memory 16A outputs the configuration data CFG indicating the context CTX4 from the storage area indicated by the address value ADa4 (FIG. 12 (n)). The configuration memory 16B outputs the register data REGD from the storage area indicated by the address value ADb4 (FIG. 12 (o)).

そして、6番目のクロックサイクルにおいて、演算器アレイ18は、トリガ信号TRGのハイレベルに応じてコンフィグレーションデータCFGを取り込み、コンテキストCTX4を実行する回路を構築する(図12(q))。演算器アレイ18は、6番目のクロックサイクルで構築した回路を動作させて、コンテキストCTX4(処理E)を7番目のクロックサイクルから実行する。   Then, in the sixth clock cycle, the arithmetic unit array 18 takes in the configuration data CFG in accordance with the high level of the trigger signal TRG, and constructs a circuit that executes the context CTX4 (FIG. 12 (q)). The arithmetic unit array 18 operates the circuit constructed in the sixth clock cycle, and executes the context CTX4 (processing E) from the seventh clock cycle.

図13は、図3に示した演算器アレイ18に実行させる処理の別の例を示す。図8と同様の処理については、詳細な説明は省略する。   FIG. 13 shows another example of processing to be executed by the arithmetic unit array 18 shown in FIG. Detailed description of the same processing as in FIG. 8 is omitted.

この例では、演算器アレイ18は、コンテキストCTXJ(条件判定)の処理を実行し、図13に示したC言語等のif文に相当する処理を実行する。例えば、演算器アレイ18は、データxが”100”より大きく、データy、zの積が”1000”より小さい場合、コンテキストCTX0(処理A)を実行する。演算器アレイ18は、データxが”100”より大きく、データy、zの積が”1000”以上の場合、コンテキストCTX1(処理B)を実行する。演算器アレイ18は、データxが”100”以下の場合、コンテキストCTX2(処理C)を実行する。   In this example, the arithmetic unit array 18 executes a process of context CTXJ (condition determination), and executes a process corresponding to an if statement such as C language shown in FIG. For example, when the data x is larger than “100” and the product of the data y and z is smaller than “1000”, the arithmetic unit array 18 executes the context CTX0 (processing A). When the data x is larger than “100” and the product of the data y and z is “1000” or more, the arithmetic unit array 18 executes the context CTX1 (Process B). When the data x is “100” or less, the arithmetic unit array 18 executes the context CTX2 (processing C).

演算器アレイ18は、データx、y、zの判定結果をフラグ信号FLG0、FLG1、FLG7としてシーケンサ14に出力する。この例では、条件判定は2回実行され、分岐先が3つあるため、3つのフラグ信号FLG0、FLG1、FLG7が使用される。フラグ信号FLG2−FLG6は、無効を示すレベルに設定される。フラグ信号FLG0、FLG1、FLG7を生成する論理は、図14で説明する。   The arithmetic unit array 18 outputs the determination result of the data x, y, z to the sequencer 14 as flag signals FLG0, FLG1, FLG7. In this example, the condition determination is executed twice, and since there are three branch destinations, three flag signals FLG0, FLG1, and FLG7 are used. Flag signals FLG2-FLG6 are set to a level indicating invalidity. The logic for generating the flag signals FLG0, FLG1, and FLG7 will be described with reference to FIG.

シーケンサ14は、フラグ信号FLG0、FLG1、FLG7の値に基づいて、演算器アレイ18が次に処理を実行する回路を構築するコンフィグレーションデータCFGをコンフィグレーションメモリ16Aから読み出す。演算器アレイ18は、コンテキストCTXJの実行結果に応じてコンフィグレーションメモリ16Aから読み出されるコンフィグレーションデータCFGを用いて、次に処理を実行する回路(コンテキストCTX0−CTX2のいずれか)を構築する。   The sequencer 14 reads from the configuration memory 16A the configuration data CFG for constructing a circuit that the arithmetic unit array 18 performs next processing based on the values of the flag signals FLG0, FLG1, and FLG7. The arithmetic unit array 18 uses the configuration data CFG read from the configuration memory 16A in accordance with the execution result of the context CTXJ to construct a circuit (any one of the contexts CTX0 to CTX2) to be executed next.

図14は、図13に示したコンテキストCTXJを実行する演算器アレイ18の回路構成の例を示す。図9と同様の処理については、詳細な説明は省略する。   FIG. 14 shows an example of the circuit configuration of the arithmetic unit array 18 that executes the context CTXJ shown in FIG. Detailed description of the same processing as in FIG. 9 is omitted.

図14は、図13と同様に、コンフィグレーションデータCFGの受信に基づいて、演算器アレイ18が、条件判定を実行する回路(コンテキストCTXJ)に構築された状態を示す。   FIG. 14 shows a state in which the arithmetic unit array 18 is constructed in a circuit (context CTXJ) that executes condition determination based on reception of the configuration data CFG, as in FIG.

例えば、ネットワーク回路NWDは、コンフィグレーションデータCFGに基づいて、データ”x”を出力する共有メモリ12のデータ端子RDTを、演算器OP0のデータ入力端子DI0に接続し、データ”y”、”z”を出力する共有メモリ12のデータ端子RDTを、演算器OP1のデータ入力端子DI0、DI1に接続する。演算器OP0は、コンフィグレーションデータCFGに基づいて、データ入力端子DI0で受けたデータ”x”が”100”より大きいか否かを判定する回路に構築される。演算器OP0は、データ”x”が”100”より大きい場合、フラグ出力端子FOから真(true)を示す”11”を出力し、データ”x”が”100”以下の場合、フラグ出力端子FOから偽(false)を示す”10”を出力する。   For example, the network circuit NWD connects the data terminal RDT of the shared memory 12 that outputs the data “x” to the data input terminal DI0 of the arithmetic unit OP0 based on the configuration data CFG, and the data “y”, “z” The data terminal RDT of the shared memory 12 that outputs "" is connected to the data input terminals DI0 and DI1 of the arithmetic unit OP1. The arithmetic unit OP0 is constructed as a circuit for determining whether or not the data “x” received at the data input terminal DI0 is larger than “100” based on the configuration data CFG. The arithmetic unit OP0 outputs “11” indicating true from the flag output terminal FO when the data “x” is larger than “100”, and the flag output terminal when the data “x” is “100” or less. “10” indicating false is output from the FO.

演算器OP1は、コンフィグレーションデータCFGに基づいて、データ入力端子DI0で受けたデータ”y”とデータ入力端子DI1で受けたデータ”z”との積を求め、求めた積をデータ出力端子DOから出力する回路に構築される。演算器OP2は、コンフィグレーションデータCFGに基づいて、演算器OP1から出力されるデータ”y”、”z”の積が”1000”より小さいか否かを判定する回路に構築される。演算器OP2は、データ”y”、”z”の積が”1000”より小さい場合、フラグ出力端子FOから真を示す”11”を出力し、データ”y”、”z”の積が”1000”以上の場合、フラグ出力端子FOから偽を示す”10”を出力する。   The computing unit OP1 obtains the product of the data “y” received at the data input terminal DI0 and the data “z” received at the data input terminal DI1 based on the configuration data CFG, and the obtained product is obtained as the data output terminal DO. It is constructed in the circuit that outputs from. The computing unit OP2 is constructed in a circuit that determines whether the product of the data “y” and “z” output from the computing unit OP1 is smaller than “1000” based on the configuration data CFG. When the product of the data “y” and “z” is smaller than “1000”, the arithmetic unit OP2 outputs “11” indicating true from the flag output terminal FO, and the product of the data “y” and “z” is “ In the case of 1000 or more, “10” indicating false is output from the flag output terminal FO.

フラグ演算器FOP0は、コンフィグレーションデータCFGに基づいて、演算器OP0、OP2のフラグ出力端子FOから出力されるフラグ信号の論理積を判定する回路に構築される。フラグ演算器FOP0は、演算器OP0、OP2のフラグ出力端子FOから真が出力される場合、フラグ出力端子FOから真を示すフラグ信号を出力する。フラグ演算器FOP0は、演算器OP0、OP2のフラグ出力端子FOの少なくとも一方から偽が出力される場合、偽を示すフラグ信号を出力する。   The flag calculator FOP0 is constructed as a circuit that determines the logical product of the flag signals output from the flag output terminals FO of the calculators OP0 and OP2 based on the configuration data CFG. The flag calculator FOP0 outputs a flag signal indicating true from the flag output terminal FO when true is output from the flag output terminals FO of the calculators OP0 and OP2. The flag calculator FOP0 outputs a flag signal indicating false when false is output from at least one of the flag output terminals FO of the calculators OP0 and OP2.

フラグ演算器FOP1は、演算器OP0のフラグ出力端子FOから出力されるフラグ信号をフラグ入力端子FI0で受け、演算器OP2のフラグ出力端子FOから出力されるフラグ信号をフラグ入力端子FI1で受ける。そして、フラグ演算器FOP1は、コンフィグレーションデータCFGに基づいて、演算器OP0のフラグ出力端子FOから出力されるフラグ信号と、演算器OP2のフラグ出力端子FOから出力されるフラグ信号を反転した信号の論理積を判定する回路に構築される。図14において、フラグ演算器FOP1内に示した符号”/FI1”は、フラグ入力端子FI1で受けるフラグ信号の論理を反転することを示す。   The flag calculator FOP1 receives a flag signal output from the flag output terminal FO of the calculator OP0 at the flag input terminal FI0, and receives a flag signal output from the flag output terminal FO of the calculator OP2 at the flag input terminal FI1. The flag calculator FOP1 is a signal obtained by inverting the flag signal output from the flag output terminal FO of the calculator OP0 and the flag signal output from the flag output terminal FO of the calculator OP2 based on the configuration data CFG. It is constructed in a circuit that determines the logical product of. In FIG. 14, the symbol “/ FI1” shown in the flag calculator FOP1 indicates that the logic of the flag signal received at the flag input terminal FI1 is inverted.

フラグ演算器FOP1は、演算器OP0のフラグ出力端子FOから真が出力され、演算器OP2のフラグ出力端子FOから偽が出力される場合、フラグ出力端子FOから真を示すフラグ信号を出力する。フラグ演算器FOP1は、演算器OP0のフラグ出力端子FOから偽が出力され、あるいは演算器OP2のフラグ出力端子FOから真が出力される場合、フラグ出力端子FOから偽を示すフラグ信号を出力する。   The flag calculator FOP1 outputs a flag signal indicating true from the flag output terminal FO when true is output from the flag output terminal FO of the calculator OP0 and false is output from the flag output terminal FO of the calculator OP2. The flag calculator FOP1 outputs a flag signal indicating false from the flag output terminal FO when false is output from the flag output terminal FO of the calculator OP0 or when true is output from the flag output terminal FO of the calculator OP2. .

図5に示したように、フラグ演算器FOP1は、極性反転器PRVS0、PRVS1を有するため、他のフラグ演算器FOPを使用することなく、演算器OP2から出力されるフラグ信号FLGを反転した値を用いて、条件判定を実行することができる。すなわち、極性反転器PRVS0、PRVS1を持たないフラグ演算器が使用される場合に比べて、条件判定に使用するフラグ演算器FOPの数を減らすことができる。条件判定に使用するフラグ演算器FOPの数が減る場合、演算器アレイ18に搭載するフラグ演算器FOPの数を減らすことが可能になり、演算器アレイ18の回路規模が削減可能になる。   As shown in FIG. 5, since the flag calculator FOP1 includes the polarity inverters PRVS0 and PRVS1, a value obtained by inverting the flag signal FLG output from the calculator OP2 without using another flag calculator FOP. The condition determination can be executed using. That is, the number of flag calculators FOP used for condition determination can be reduced as compared with the case where a flag calculator without the polarity inverters PRVS0 and PRVS1 is used. When the number of flag calculators FOP used for condition determination decreases, the number of flag calculators FOP mounted on the calculator array 18 can be reduced, and the circuit scale of the calculator array 18 can be reduced.

なお、図13に示したif文に相当する処理を実行する場合、複数のフラグ演算器FOP0、FOP1は、真を示すフラグ信号FOを重複して出力しない。   When the processing corresponding to the “if” statement shown in FIG. 13 is executed, the plurality of flag calculators FOP0 and FOP1 do not output the flag signal FO indicating true redundantly.

ネットワーク回路NWFは、コンフィグレーションデータCFGに基づいて、フラグ演算器FOP0、FOP1のフラグ出力端子FOをシーケンサ14のフラグ端子FLG0、FLG1にそれぞれ接続する。ネットワーク回路NWFは、演算器OP0のフラグ出力端子FOをフラグ演算器FOP0、FOP1のフラグ入力端子FI0に接続し、演算器OP2のフラグ出力端子FOをフラグ演算器FOP0、FOP1のフラグ入力端子FI1に接続する。   The network circuit NWF connects the flag output terminals FO of the flag calculators FOP0 and FOP1 to the flag terminals FLG0 and FLG1 of the sequencer 14 based on the configuration data CFG. The network circuit NWF connects the flag output terminal FO of the arithmetic unit OP0 to the flag input terminals FI0 of the flag arithmetic units FOP0 and FOP1, and the flag output terminal FO of the arithmetic unit OP2 to the flag input terminals FI1 of the flag arithmetic units FOP0 and FOP1. Connecting.

また、ネットワーク回路NWFはフラグ演算器FOP0、FOP1のフラグ出力端子FOをフラグ演算器DFOPのシーケンサ14のフラグ端子FLG0、FLG1に接続する。ネットワーク回路NWFは、フラグ信号が無効であることを示す値(”00”)をシーケンサ14の空きのフラグ端子FLG3−FLG6にそれぞれ出力する。   The network circuit NWF connects the flag output terminals FO of the flag calculators FOP0 and FOP1 to the flag terminals FLG0 and FLG1 of the sequencer 14 of the flag calculator DFOP. The network circuit NWF outputs a value (“00”) indicating that the flag signal is invalid to the vacant flag terminals FLG3 to FLG6 of the sequencer 14, respectively.

フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、図6に示したフラグ入力端子FI1[1:0]−FI0[1:0]を有効にし、フラグ入力端子FI7[1:0]−FI2[1:0]を無効にする。フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、デフォルトモードで動作し、図6に示したオア回路ORおよびノア回路NORの出力をフラグ信号FLG7として出力する。そして、フラグ演算器DFOPは、フラグ入力端子FI1[0]−FI0[0]で受けるフラグ信号FLG1−FLG0が全て偽を示す場合、真を示すフラグ信号FLG7を出力する。   Based on the configuration data CFG, the flag calculator DFOP enables the flag input terminals FI1 [1: 0] -FI0 [1: 0] shown in FIG. 6, and the flag input terminals FI7 [1: 0] -FI2 Disable [1: 0]. The flag calculator DFOP operates in the default mode based on the configuration data CFG, and outputs the outputs of the OR circuit OR and the NOR circuit NOR shown in FIG. 6 as the flag signal FLG7. Flag operation unit DFOP outputs flag signal FLG7 indicating true when flag signals FLG1-FLG0 received at flag input terminals FI1 [0] -FI0 [0] all indicate false.

シーケンサ14は、図9での説明と同様に動作する。すなわち、シーケンサ14は、フラグ信号FLG0−FLG7の論理に基づいて、コンフィグレーションメモリ16Aから新たなコンフィグレーションデータCFGを読み出し、演算器アレイ18は、次に処理を実行する回路(図13に示したコンテキストCTX0−CTX2のいずれか)を構築する。   The sequencer 14 operates in the same manner as described with reference to FIG. That is, the sequencer 14 reads new configuration data CFG from the configuration memory 16A based on the logic of the flag signals FLG0 to FLG7, and the arithmetic unit array 18 is a circuit that executes the next processing (shown in FIG. 13). Any of the contexts CTX0 to CTX2) is constructed.

図15は、図14に示した回路構成におけるデータx、y、zの値、フラグ信号FLGおよび実行されるデータ処理の関係を示す図である。条件判定の結果が真である場合、対応するフラグ信号FLG0、FLG1は、網掛けで示すようにそれぞれ真(”11”)に設定される。そして、図10と同様に、真を示すフラグ信号FLGに応じたコンフィグレーションデータCFGが演算器アレイ18に転送され、コンテキストCTX0、CTX1のいずれかが実行される。   FIG. 15 is a diagram showing the relationship between the values of data x, y, z, the flag signal FLG, and the data processing to be executed in the circuit configuration shown in FIG. When the result of the condition determination is true, the corresponding flag signals FLG0 and FLG1 are set to true (“11”) as shown by shading. Then, similarly to FIG. 10, the configuration data CFG corresponding to the flag signal FLG indicating true is transferred to the arithmetic unit array 18, and one of the contexts CTX0 and CTX1 is executed.

条件判定の結果がいずれも偽である場合、フラグ信号FLG7が真に設定され、真を示すフラグ信号FLG7に応じたコンフィグレーションデータCFGが演算器アレイ18に転送され、コンテキストCTX2が実行される。   When the result of the condition determination is false, the flag signal FLG7 is set to true, the configuration data CFG corresponding to the flag signal FLG7 indicating true is transferred to the arithmetic unit array 18, and the context CTX2 is executed.

図16は、図13に示した処理を実行する半導体集積回路SEM2の動作の例を示す。図11と同様の動作については、詳細な説明は省略する。この例では、図13に示したコンテキストCTXJの条件判定の結果に基づいて、演算器アレイ18にコンテキストCTX1の回路が構築され、処理Bが実行される。コンテキストCTXJに対応する回路は、1番目のクロックサイクルより前に演算器アレイ18に転送される。   FIG. 16 shows an example of the operation of the semiconductor integrated circuit SEM2 that executes the processing shown in FIG. Detailed description of the same operations as those in FIG. 11 is omitted. In this example, the circuit of the context CTX1 is constructed in the arithmetic unit array 18 based on the result of the condition determination of the context CTXJ shown in FIG. The circuit corresponding to the context CTXJ is transferred to the arithmetic unit array 18 before the first clock cycle.

2番目のクロックサイクルにおいて、共有メモリ12からデータx(=120)、y(=20)、z(=60)が読み出され、読み出されたデータx、y、zは、ネットワーク回路NWDを介して演算器OP0、OP1に供給される(図16(a))。   In the second clock cycle, the data x (= 120), y (= 20), z (= 60) is read from the shared memory 12, and the read data x, y, z passes through the network circuit NWD. To the arithmetic units OP0 and OP1 (FIG. 16A).

3番目のクロックサイクルにおいて、演算器OP0は、図9に示した条件判定を実行し、真を示す”11”を出力する(図16(b))。演算器OP1は、図9に示した演算を実行し、実行結果(”1200”)を出力する(図16(c))。   In the third clock cycle, the arithmetic unit OP0 executes the condition determination shown in FIG. 9 and outputs “11” indicating true (FIG. 16B). The calculator OP1 executes the calculation shown in FIG. 9 and outputs the execution result (“1200”) (FIG. 16C).

4番目のクロックサイクルにおいて、演算器OP2は、図9に示した条件判定を実行し、偽を示す”10”を出力する(図16(d))。フラグ演算器FOP0、FOP1は、図9に示した条件判定を実行し、偽(”10”)を示すフラグ信号FLG0と、真(”11”)を示すフラグ信号FLG1とをそれぞれ出力する(図16(e)、(f))。フラグ演算器DFOPは、フラグ信号FLG0−FLG6の値に応じて、偽(”10”)を示すフラグ信号FLG7を出力する(図16(g))。シーケンサ14の制御回路CNTLは、真を示すフラグ信号FLG1に応答して、選択信号BS1を”1”に設定する(図16(h))。   In the fourth clock cycle, the arithmetic unit OP2 executes the condition determination shown in FIG. 9 and outputs “10” indicating false (FIG. 16D). The flag calculators FOP0 and FOP1 execute the condition determination shown in FIG. 9, and respectively output a flag signal FLG0 indicating false (“10”) and a flag signal FLG1 indicating true (“11”) (FIG. 9). 16 (e), (f)). The flag calculator DFOP outputs a flag signal FLG7 indicating false (“10”) according to the values of the flag signals FLG0 to FLG6 (FIG. 16 (g)). The control circuit CNTL of the sequencer 14 sets the selection signal BS1 to “1” in response to the flag signal FLG1 indicating true (FIG. 16 (h)).

5番目のクロックサイクルにおいて、シーケンサ14のセレクタSSEL1は、選択信号BS1に応じてレジスタREG1が保持するアドレス値ADa1、ADb1をコンフィグレーションメモリ16A、16Bに出力する(図16(i))。そして、図11と同様に、コンフィグレーションメモリ16AからコンテキストCTX1を示すコンフィグレーションデータCFGが読み出される(図16(j))。演算器アレイ18は、コンフィグレーションデータCFGに基づいて、9番目のクロックサイクルにコンテキストCTX1を実行する回路を構築し、コンテキストCTX1(処理B)が、8番目のクロックサイクルから実行される(図16(k))。   In the fifth clock cycle, the selector SSEL1 of the sequencer 14 outputs the address values ADa1 and ADb1 held by the register REG1 to the configuration memories 16A and 16B according to the selection signal BS1 (FIG. 16 (i)). As in FIG. 11, configuration data CFG indicating the context CTX1 is read from the configuration memory 16A (FIG. 16 (j)). The arithmetic unit array 18 constructs a circuit that executes the context CTX1 in the ninth clock cycle based on the configuration data CFG, and the context CTX1 (processing B) is executed from the eighth clock cycle (FIG. 16). (K)).

図17は、図3に示した演算器アレイ18に実行させる処理のさらなる別の例を示す。図8および図13と同様の処理については、詳細な説明は省略する。   FIG. 17 shows still another example of processing to be executed by the arithmetic unit array 18 shown in FIG. Detailed description of the same processing as in FIGS. 8 and 13 is omitted.

この例では、演算器アレイ18は、コンテキストCTXJ(条件判定)の処理を実行し、図17に示したC言語等のif文に相当する処理を実行する。例えば、演算器アレイ18は、データxが”100”より大きく、データy、zの積が”1000”より小さい場合、コンテキストCTX0(処理A)を実行する。演算器アレイ18は、データxが”100”より大きく、データy、zの積が”1000”以上の場合、コンテキストCTX1(処理B)を実行する。   In this example, the arithmetic unit array 18 executes a process of context CTXJ (condition determination), and executes a process corresponding to an if statement such as C language shown in FIG. For example, when the data x is larger than “100” and the product of the data y and z is smaller than “1000”, the arithmetic unit array 18 executes the context CTX0 (processing A). When the data x is larger than “100” and the product of the data y and z is “1000” or more, the arithmetic unit array 18 executes the context CTX1 (Process B).

演算器アレイ18は、データxが”100”以下で、データyが”200”より小さい場合、コンテキストCTX2(処理C)を実行する。演算器アレイ18は、データxが”100”以下で、データyが”200”以上の場合、コンテキストCTX3(処理D)を実行する。   When the data x is “100” or less and the data y is smaller than “200”, the arithmetic unit array 18 executes the context CTX2 (processing C). When the data x is “100” or less and the data y is “200” or more, the arithmetic unit array 18 executes the context CTX3 (Process D).

演算器アレイ18は、データx、y、zの判定結果をフラグ信号FLG0、FLG1、FLG2、FLG7としてシーケンサ14に出力する。この例では、条件判定は3回実行され、分岐先が4つあるため、4つのフラグ信号FLG0、FLG1、FLG2、FLG7が使用される。フラグ信号FLG3−FLG6は、無効を示すレベルに設定される。フラグ信号FLG0、FLG1、FLG2、FLG7を生成する論理は、図18で説明する。   The arithmetic unit array 18 outputs the determination result of the data x, y, z to the sequencer 14 as flag signals FLG0, FLG1, FLG2, FLG7. In this example, the condition determination is executed three times and there are four branch destinations, so four flag signals FLG0, FLG1, FLG2, and FLG7 are used. Flag signals FLG3-FLG6 are set to a level indicating invalidity. The logic for generating the flag signals FLG0, FLG1, FLG2, and FLG7 will be described with reference to FIG.

図18は、図17に示したコンテキストCTXJを実行する演算器アレイ18の回路構成の例を示す。図9および図14と同様の処理については、詳細な説明は省略する。   FIG. 18 shows an example of the circuit configuration of the arithmetic unit array 18 that executes the context CTXJ shown in FIG. Detailed description of the same processing as in FIGS. 9 and 14 is omitted.

図18は、図14と同様に、コンフィグレーションデータCFGの受信に基づいて、演算器アレイ18が、条件判定を実行する回路(コンテキストCTXJ)に構築された状態を示す。図18は、データyの値を判定しフラグ信号FLG2を出力する演算器OP3が追加されること、および演算器OP3から出力されるフラグ信号FLG2がフラグ演算器DFOPのフラグ入力端子FI2に接続されることを除き、図14と同様である。   FIG. 18 shows a state in which the arithmetic unit array 18 is constructed in a circuit (context CTXJ) that executes condition determination based on the reception of the configuration data CFG, as in FIG. FIG. 18 shows that the operation unit OP3 that determines the value of the data y and outputs the flag signal FLG2 is added, and the flag signal FLG2 output from the operation unit OP3 is connected to the flag input terminal FI2 of the flag operation unit DFOP. This is the same as FIG.

演算器OP3は、コンフィグレーションデータCFGに基づいて、データ”y”が”200”より小さいか否かを判定する回路に構築される。演算器OP3は、データ”y”が”200”より小さい場合、フラグ出力端子FOから真を示す”11”を出力し、データ”y”が”200”以上の場合、フラグ出力端子FOから偽を示す”10”を出力する。   The arithmetic unit OP3 is constructed in a circuit that determines whether or not the data “y” is smaller than “200” based on the configuration data CFG. The arithmetic unit OP3 outputs “11” indicating true from the flag output terminal FO when the data “y” is smaller than “200”, and false from the flag output terminal FO when the data “y” is “200” or more. “10” is output.

フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、図6に示したフラグ入力端子FI2[1:0]−FI0[1:0]を有効にし、フラグ入力端子FI7[1:0]−FI3[1:0]を無効にする。フラグ演算器DFOPは、コンフィグレーションデータCFGに基づいて、デフォルトモードで動作し、図6に示したオア回路ORおよびノア回路NORの出力をフラグ信号FLG7として出力する。そして、フラグ演算器DFOPは、フラグ入力端子FI2[0]−FI0[0]で受けるフラグ信号FLG2−FLG0が全て偽を示す場合、真を示すフラグ信号FLG7を出力する。   Based on the configuration data CFG, the flag calculator DFOP enables the flag input terminals FI2 [1: 0] -FI0 [1: 0] shown in FIG. 6, and the flag input terminals FI7 [1: 0] -FI3. Disable [1: 0]. The flag calculator DFOP operates in the default mode based on the configuration data CFG, and outputs the outputs of the OR circuit OR and the NOR circuit NOR shown in FIG. 6 as the flag signal FLG7. Flag operation unit DFOP outputs flag signal FLG7 indicating true when flag signals FLG2-FLG0 received at flag input terminals FI2 [0] -FI0 [0] all indicate false.

図19は、図18に示した回路構成におけるデータx、y、zの値、フラグ信号FLGおよび実行されるデータ処理の関係を示す図である。条件判定の結果が真である場合、対応するフラグ信号FLG0、FLG1、FLG2は、網掛けで示すようにそれぞれ真(”11”)に設定される。そして、図15と同様に、真を示すフラグ信号FLGに応じたコンフィグレーションデータCFGが演算器アレイ18に転送され、コンテキストCTX0、CTX1、CTX2のいずれかが実行される。   FIG. 19 is a diagram showing the relationship between the values of data x, y, and z, flag signal FLG, and data processing to be executed in the circuit configuration shown in FIG. When the result of the condition determination is true, the corresponding flag signals FLG0, FLG1, and FLG2 are set to true (“11”) as indicated by shading. As in FIG. 15, the configuration data CFG corresponding to the flag signal FLG indicating true is transferred to the arithmetic unit array 18 and any one of the contexts CTX0, CTX1, and CTX2 is executed.

なお、データxが”100”より大きく、データy、zの積が”1000”より小さく、データyが”200”より小さい場合、2つのフラグ信号FLG0、FLG2が真(”11”)に設定される。また、データxが”100”より大きく、データy、zの積が”1000”以上であり、データyが”200”より小さい場合、2つのフラグ信号FLG1、FLG2が真(”11”)に設定される。真を示す複数のフラグ信号FLG0、FLG2(またはFLG1、FLG2)が生成される場合、図20に示すように、制御回路CNTLは、優先度がフラグ信号FLG2より高いフラグ信号FLG0(またはFLG1)に対応する選択信号BS1を出力する。   When the data x is larger than “100”, the product of data y and z is smaller than “1000”, and the data y is smaller than “200”, the two flag signals FLG0 and FLG2 are set to true (“11”). Is done. When the data x is larger than “100”, the product of the data y and z is “1000” or more and the data y is smaller than “200”, the two flag signals FLG1 and FLG2 are true (“11”). Is set. When a plurality of flag signals FLG0 and FLG2 (or FLG1 and FLG2) indicating true are generated, the control circuit CNTL sets the flag signal FLG0 (or FLG1) having a higher priority than the flag signal FLG2 as shown in FIG. The corresponding selection signal BS1 is output.

条件判定の結果がいずれも偽である場合、フラグ信号FLG7が真に設定され、真を示すフラグ信号FLG7に応じたコンフィグレーションデータCFGが演算器アレイ18に転送され、コンテキストCTX3が実行される。   When the result of the condition determination is false, the flag signal FLG7 is set to true, the configuration data CFG corresponding to the flag signal FLG7 indicating true is transferred to the arithmetic unit array 18, and the context CTX3 is executed.

図20は、図17に示した処理を実行する半導体集積回路SEM2の動作の例を示す。図11および図16と同様の動作については、詳細な説明は省略する。   FIG. 20 shows an example of the operation of the semiconductor integrated circuit SEM2 that executes the processing shown in FIG. Detailed descriptions of operations similar to those in FIGS. 11 and 16 are omitted.

この例では、データxの値は”100”より大きく、データy、zの積は、”1000”以上であるため、図16と同様に、フラグ信号FLG1が真(”11”)に設定される(図20(a))。さらに、データyの値は”200”より小さいため、フラグ信号FLG2が真(”11”)に設定される(図20(b))。   In this example, since the value of the data x is larger than “100” and the product of the data y and z is “1000” or more, the flag signal FLG1 is set to true (“11”) as in FIG. (FIG. 20A). Further, since the value of the data y is smaller than “200”, the flag signal FLG2 is set to true (“11”) (FIG. 20B).

制御回路CNTLは、真を示す複数のフラグ信号FLGを受けた場合、優先度の高い(すなわち、番号の小さい)フラグ信号FLGにしたがって動作する。この例では、制御回路CNTLは、真を示すフラグ信号FLG2を無視し、番号がフラグ信号FLG2より小さいフラグ信号FLG1に基づいて選択信号BS1を”1”に設定する。そして、半導体集積回路SEM2は、6番目のクロックサイクル以降、図16と同様に動作する。   When the control circuit CNTL receives a plurality of flag signals FLG indicating true, the control circuit CNTL operates in accordance with a flag signal FLG having a high priority (ie, a low number). In this example, the control circuit CNTL ignores the flag signal FLG2 indicating true, and sets the selection signal BS1 to “1” based on the flag signal FLG1 whose number is smaller than the flag signal FLG2. The semiconductor integrated circuit SEM2 operates in the same manner as in FIG. 16 after the sixth clock cycle.

フラグ信号FLG0−FLG7に優先度を設定することにより、真を示す複数のフラグ信号FLG0−FLG7が出力される場合にも、正しいコンフィグレーションデータCFGに基づいて演算器アレイ18の回路を再構成することができる。換言すれば、真を示す複数のフラグ信号FLG0−FLG7が出力される場合にも、演算器アレイ18の回路が、誤ったコンフィグレーションデータCFGにより再構成されることはなく、演算器アレイ18は誤動作しない。   By setting the priority to the flag signals FLG0 to FLG7, the circuit of the arithmetic unit array 18 is reconfigured based on the correct configuration data CFG even when a plurality of flag signals FLG0 to FLG7 indicating true are output. be able to. In other words, even when a plurality of flag signals FLG0 to FLG7 indicating true are output, the circuit of the arithmetic unit array 18 is not reconfigured by erroneous configuration data CFG, and the arithmetic unit array 18 Does not malfunction.

図21は、図3に示した半導体集積回路SEM2の動作の別の例を示す。図11と同様の動作については、図11と同じ符号を付し、詳細な説明は省略する。この例では、コンテキストCTX0による条件判定の結果に基づいて、コンテキストCTX3が実行され、コンテキストCTX3による条件判定の結果に基づいて、コンテキストCTX6が実行される。コンテキストCTX6以降は、分岐制御フラグBRAがロウレベルにリセットされ、条件判定によらず、アドレスADaが順次にインクリメントされ、コンフィグレーションメモリ16AからコンフィグレーションデータCFGが読み出される。   FIG. 21 shows another example of the operation of the semiconductor integrated circuit SEM2 shown in FIG. The same operations as those in FIG. 11 are denoted by the same reference numerals as those in FIG. In this example, the context CTX3 is executed based on the result of the condition determination by the context CTX0, and the context CTX6 is executed based on the result of the condition determination by the context CTX3. After the context CTX6, the branch control flag BRA is reset to the low level, the address ADa is sequentially incremented regardless of the condition determination, and the configuration data CFG is read from the configuration memory 16A.

まず、1番目から5番目のクロックサイクルでは、図11と同様に、シーケンサ14は、真を示すフラグ信号FLG2に基づいて、レジスタREG2に格納されたアドレスADa3、ADb3を選択する(図21(a)、(b))。そして、6番目のクロックサイクルにおいて、コンフィグレーションメモリ16Aから読み出されるコンテキストCTX3を示すコンフィグレーションデータCFGにより、演算器アレイ18の回路が更新される(図21(c))。   First, in the first to fifth clock cycles, as in FIG. 11, the sequencer 14 selects the addresses ADa3 and ADb3 stored in the register REG2 based on the flag signal FLG2 indicating true (FIG. 21 (a)). ), (B)). Then, in the sixth clock cycle, the circuit of the arithmetic unit array 18 is updated with the configuration data CFG indicating the context CTX3 read from the configuration memory 16A (FIG. 21 (c)).

なお、レジスタREG0、REG3、REG7等に格納されたアドレスADb1は、コンフィグレーションメモリ16Aに格納されたコンフィグレーションデータCFGをアドレスADaの順に読み出す場合に共通に使用される。コンフィグレーションメモリ16BのアドレスADb1が示す記憶領域には、リセット状態を示す分岐制御フラグBRAと、ダミーのアドレスADa、ADbが格納される。   Note that the address ADb1 stored in the registers REG0, REG3, REG7 and the like is commonly used when the configuration data CFG stored in the configuration memory 16A is read in the order of the address ADa. In the storage area indicated by the address ADb1 of the configuration memory 16B, a branch control flag BRA indicating a reset state and dummy addresses ADa and ADb are stored.

7番目から9番目のクロックサイクルでは、シーケンサ14は、真を示すフラグ信号FLG0に基づいて、レジスタREG0に格納されたアドレスADa6、ADb1を選択する(図21(d)、(e))。ここで、8番目のクロックサイクルまで、コンフィグレーションメモリ16Bから読み出される分岐制御フラグBRAはハイレベルであるため、図3に示したセレクタSSEL2は、セレクタSSEL1の出力を選択する。すなわち、シーケンサ14は、フラグ信号FLGに応じて選択されるレジスタREGに格納されたアドレスADa、ADbを出力する。   In the seventh to ninth clock cycles, the sequencer 14 selects the addresses ADa6 and ADb1 stored in the register REG0 based on the flag signal FLG0 indicating true (FIGS. 21D and 21E). Here, since the branch control flag BRA read from the configuration memory 16B is high until the eighth clock cycle, the selector SSEL2 shown in FIG. 3 selects the output of the selector SSEL1. That is, the sequencer 14 outputs the addresses ADa and ADb stored in the register REG selected according to the flag signal FLG.

この例では、9番目のクロックサイクルでコンフィグレーションメモリ16Bから読み出されたレジスタデータREGDに含まれる分岐制御フラグBRAは、リセット状態(ロウレベル)である(図21(f))。シーケンサ14は、トリガ信号TRGに同期して分岐制御フラグBRAの値を受信し、フラグ信号FLGの値に拘わらず選択信号BS1を”0”に設定する(図21(g))。   In this example, the branch control flag BRA included in the register data REGD read from the configuration memory 16B in the ninth clock cycle is in a reset state (low level) (FIG. 21 (f)). The sequencer 14 receives the value of the branch control flag BRA in synchronization with the trigger signal TRG, and sets the selection signal BS1 to “0” regardless of the value of the flag signal FLG (FIG. 21 (g)).

図3に示したインクリメンタINCは、分岐制御フラグBRAのハイレベルからロウレベルへの変化に応じて、レジスタREG0に格納されたアドレスADa(この例ではADa6)を取り込み、コンテキストCTXの実行毎にアドレスADaをインクリメントする(図21(h)、(i))。例えば、インクリメンタINCは、終了信号ENDのハイレベルに同期してアドレスADaを増加する。   The incrementer INC shown in FIG. 3 takes in the address ADa (ADa6 in this example) stored in the register REG0 in accordance with the change of the branch control flag BRA from the high level to the low level, and the address every time the context CTX is executed. ADa is incremented (FIGS. 21 (h) and (i)). For example, the incrementer INC increases the address ADa in synchronization with the high level of the end signal END.

そして、分岐制御フラグBRAがロウレベルの間、セレクタSSEL2は、レジスタREG0−REG7に格納されたアドレスADaではなく、インクリメンタINCにより生成されるアドレスADaをコンフィグレーションメモリ16Aに出力する。分岐制御フラグBRAがロウレベルの間、選択信号BS1は”0”に設定されるため、シーケンサ14は、レジスタREG0に格納されたアドレスADbをコンフィグレーションメモリ16Bに出力する(図21(j))。   While the branch control flag BRA is at the low level, the selector SSEL2 outputs the address ADa generated by the incrementer INC to the configuration memory 16A instead of the address ADa stored in the registers REG0 to REG7. Since the selection signal BS1 is set to “0” while the branch control flag BRA is at the low level, the sequencer 14 outputs the address ADb stored in the register REG0 to the configuration memory 16B (FIG. 21 (j)).

分岐制御フラグBRAがリセット状態を示す場合に、セレクタSSEL1の動作は停止し、アドレスADaは、インクリメンタINCにより順次に生成される。これにより、アドレスADaの各ビットの論理レベルが変化する可能性を低くすることができ、アドレスADaの変化に伴って発生する電源ノイズを抑制することができる。   When the branch control flag BRA indicates a reset state, the operation of the selector SSEL1 is stopped, and the address ADa is sequentially generated by the incrementer INC. As a result, the possibility that the logical level of each bit of the address ADa changes can be reduced, and power supply noise generated with the change of the address ADa can be suppressed.

コンフィグレーションメモリ16AからコンフィグレーションデータCFGをアドレスADaの順に読み出す場合、条件判定の結果を用いない。この場合、コンフィグレーションメモリ16Bに格納された情報は、複数のコンテキストCTXにより共通に使用することが可能になる。この結果、コンフィグレーションメモリ16BのアドレスADbの範囲をコンフィグレーションメモリ16AのアドレスADaの範囲に比べて小さくできる。換言すれば、条件判定の結果を用いずに次に実行するコンテキストCTXが決定できる場合、図3に示した半導体集積回路SEM2に搭載するメモリの容量は、コンフィグレーションメモリ16A、16Bを1つのメモリで実現する場合に比べて削減できる。   When the configuration data CFG is read from the configuration memory 16A in the order of the address ADa, the result of the condition determination is not used. In this case, the information stored in the configuration memory 16B can be commonly used by a plurality of contexts CTX. As a result, the range of the address ADb in the configuration memory 16B can be made smaller than the range of the address ADa in the configuration memory 16A. In other words, when the context CTX to be executed next can be determined without using the result of the condition determination, the capacity of the memory mounted in the semiconductor integrated circuit SEM2 shown in FIG. This can be reduced compared to the case where it is realized with

図22は、半導体集積回路SEMの別の例を示す。図3に示した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。半導体集積回路SEM3は、共有メモリ12、シーケンサ14A、コンフィグレーションメモリ16および演算器アレイ18Aを有する。共有メモリ12は、図3と同一または同様である。半導体集積回路SEM3は、図3と同様に、MCU20、メモリ30および周辺回路40に接続されるシステムバスSBUSに接続される。すなわち、半導体集積回路SEM3、MCU20、メモリ30、周辺回路40およびシステムバスSBUSは、システムSYS3に搭載される。   FIG. 22 shows another example of the semiconductor integrated circuit SEM. Elements that are the same as or similar to those shown in FIG. 3 are given the same reference numerals, and detailed descriptions thereof are omitted. The semiconductor integrated circuit SEM3 includes a shared memory 12, a sequencer 14A, a configuration memory 16, and an arithmetic unit array 18A. The shared memory 12 is the same as or similar to that shown in FIG. The semiconductor integrated circuit SEM3 is connected to the system bus SBUS connected to the MCU 20, the memory 30, and the peripheral circuit 40, as in FIG. That is, the semiconductor integrated circuit SEM3, the MCU 20, the memory 30, the peripheral circuit 40, and the system bus SBUS are mounted on the system SYS3.

演算器アレイ18Aは、ネットワーク回路NWD、複数の演算器OP、複数のフラグ演算器FOPおよびネットワーク回路NWF2を有する。演算器アレイ18Aは、図3に示した演算器アレイ18のフラグ演算器DFOPを持たない。また、演算器アレイ18Aのネットワーク回路NWF2は、1つのフラグ信号FLG(2ビット)を生成する。   The arithmetic unit array 18A includes a network circuit NWD, a plurality of arithmetic units OP, a plurality of flag arithmetic units FOP, and a network circuit NWF2. The arithmetic unit array 18A does not have the flag arithmetic unit DFOP of the arithmetic unit array 18 shown in FIG. The network circuit NWF2 of the arithmetic unit array 18A generates one flag signal FLG (2 bits).

例えば、コンフィグレーションメモリ16は、図3に示したコンフィグレーションメモリ16Aと同様に、5ビットのアドレス端子ADと、数百ビットのデータ端子RDTと、データ端子RDTから出力される数百ビットのデータを保持する記憶領域とを有する。データ端子RDTから出力される数百ビットのデータであるコンフィグレーションデータCFGは、コンテキストCTXの仕様を示す情報と、図3に示したレジスタデータREGDの情報とを含む。   For example, like the configuration memory 16A shown in FIG. 3, the configuration memory 16 has a 5-bit address terminal AD, a data terminal RDT of several hundred bits, and data of several hundred bits output from the data terminal RDT. And a storage area for holding Configuration data CFG, which is data of several hundred bits output from the data terminal RDT, includes information indicating the specification of the context CTX and information of the register data REGD shown in FIG.

シーケンサ14Aは、制御回路CNTL2、レジスタREG(REG0、REG1)およびセレクタSSEL3を有する。制御回路CNTL2は、トリガ信号TRGおよびストール信号STLを演算器アレイ18に出力し、演算器アレイ18から終了信号ENDおよび1つのフラグ信号FLGを受ける。フラグ信号FLGは、演算器アレイ18内の演算器により論理演算による結果(真または偽)を示す。また、制御回路CNTL2は、フラグ信号FLGおよび終了信号ENDに基づいて、コンフィグレーションメモリ16に制御信号CNTを出力し、セレクタSSEL3に選択信号BS2を出力する。制御回路CNTL2は、1つのフラグ信号FLGの真、偽に応じて選択信号BS2を生成する。   The sequencer 14A includes a control circuit CNTL2, a register REG (REG0, REG1), and a selector SSEL3. The control circuit CNTL2 outputs the trigger signal TRG and the stall signal STL to the arithmetic unit array 18, and receives the end signal END and one flag signal FLG from the arithmetic unit array 18. The flag signal FLG indicates the result (true or false) of the logical operation by the arithmetic units in the arithmetic unit array 18. The control circuit CNTL2 outputs a control signal CNT to the configuration memory 16 based on the flag signal FLG and the end signal END, and outputs a selection signal BS2 to the selector SSEL3. The control circuit CNTL2 generates the selection signal BS2 according to whether one flag signal FLG is true or false.

各レジスタREG0、REG1は、制御回路CNTL2からの制御信号CNTおよびセレクタSSEL3からのアドレス信号ADに応じてコンフィグレーションメモリ16から読み出されるレジスタデータREGDを保持する。各レジスタREG0−REG1は、保持したレジスタデータREGDをセレクタSSEL3に出力する。各レジスタREG0−REG1に保持されたレジスタデータREGDの値は、コンフィグレーションメモリ16のアクセスに使用されるアドレスADの値を含む。   Each of the registers REG0 and REG1 holds register data REGD read from the configuration memory 16 in response to the control signal CNT from the control circuit CNTL2 and the address signal AD from the selector SSEL3. Each of the registers REG0 to REG1 outputs the held register data REGD to the selector SSEL3. The value of the register data REGD held in each of the registers REG0 to REG1 includes the value of the address AD used for accessing the configuration memory 16.

セレクタSSEL3は、真のフラグ信号FLGに対応する選択信号BS2の値に応じてレジスタREG0を選択し、偽のフラグ信号FLGに対応する選択信号BS2に応じてレジスタREG1を選択する。そして、セレクタSSEL2は、選択したレジスタREGに格納されたアドレスADをコンフィグレーションメモリ16に出力する。   The selector SSEL3 selects the register REG0 according to the value of the selection signal BS2 corresponding to the true flag signal FLG, and selects the register REG1 according to the selection signal BS2 corresponding to the false flag signal FLG. Then, the selector SSEL2 outputs the address AD stored in the selected register REG to the configuration memory 16.

図23は、図22に示した演算器アレイ18Aの例を示す。演算器アレイ18Aは、図4と同様のネットワーク回路NWD、n個(nは正の整数)の演算器OP、m個(mは正の整数)のフラグ演算器FOP、カウンタACOUNTおよびメモリ制御回路MCNTと、ネットワーク回路NWF2とを有する。ネットワーク回路NWF2は、コンフィグレーションデータCFGに基づいて、演算器OPまたはフラグ演算器FOPのいずれかのフラグ出力端子FOから出力されるフラグをフラグ信号FLGとして出力する。すなわち、演算器アレイ18Aは、図4に示したフラグ演算器DFOPを持たないこと、および1つのフラグ信号FLGを出力することを除き、図4に示した演算器アレイ18と同様である。   FIG. 23 shows an example of the arithmetic unit array 18A shown in FIG. The arithmetic unit array 18A includes a network circuit NWD similar to that in FIG. 4, n (n is a positive integer) arithmetic units OP, m (m is a positive integer) flag arithmetic unit FOP, a counter ACOUNT, and a memory control circuit. It has MCNT and network circuit NWF2. The network circuit NWF2 outputs a flag output from the flag output terminal FO of either the arithmetic unit OP or the flag arithmetic unit FOP as the flag signal FLG based on the configuration data CFG. That is, the arithmetic unit array 18A is the same as the arithmetic unit array 18 shown in FIG. 4 except that it does not have the flag arithmetic unit DFOP shown in FIG. 4 and outputs one flag signal FLG.

図24は、図22に示した演算器アレイ18Aに実行させる処理の例を示す。演算器アレイ18Aが実行する処理は、図8に示した処理と同様である。すなわち、演算器アレイ18Aは、共有メモリ12から受けるデータ”x”の値に応じて、処理A、処理B、処理C、処理D、処理Eのいずれかを実行する。   FIG. 24 shows an example of processing executed by the arithmetic unit array 18A shown in FIG. The processing executed by the arithmetic unit array 18A is the same as the processing shown in FIG. That is, the arithmetic unit array 18A executes one of the process A, the process B, the process C, the process D, and the process E according to the value of the data “x” received from the shared memory 12.

但し、演算器アレイ18Aは、1つのフラグ信号FLGの真、偽に基づいて演算器アレイ18A内の回路を順次に更新し、実行する処理が処理A、処理B、処理C、処理D、処理Eのいずれであるかを1つずつ判定する。このため、演算器アレイ18Aは、図8より多いコンテキストCTXJ1、CTXJ2、CTXJ3、CTXJ4(条件判定)の処理を実行する。   However, the arithmetic unit array 18A sequentially updates the circuits in the arithmetic unit array 18A based on whether one flag signal FLG is true or false, and the processing to be executed is processing A, processing B, processing C, processing D, processing E is judged one by one. For this reason, the arithmetic unit array 18A executes processing of contexts CTXJ1, CTXJ2, CTXJ3, and CTXJ4 (condition determination) more than in FIG.

例えば、データ”x”の値が”2”で処理Cが実行される場合、演算器アレイ18A内の回路は、条件判定のために2回書き換えられる。また、データ”x”の値が”0”、”1”、”2”、”3”のいずれにも該当せず、処理Eが実行される場合、演算器アレイ18A内の回路は、条件判定のために4回書き換えられる。   For example, when the value of the data “x” is “2” and the process C is executed, the circuit in the arithmetic unit array 18A is rewritten twice for condition determination. When the value of the data “x” does not correspond to any of “0”, “1”, “2”, and “3” and the process E is executed, the circuit in the arithmetic unit array 18A It is rewritten four times for judgment.

図25は、図24に示した処理を実行する半導体集積回路SEM3の動作の例を示す。図11と同様の動作については、詳細な説明は省略する。シーケンサ14Aは、演算器アレイ18Aから1つのフラグ信号FLGを受け、一度に1つの条件判定を実行する。このため、2番目、6番目、10番目のクロックサイクルにおいて、共有メモリ12のデータ端子RDTからデータx(=2)が読み出される(図25(a)、(b)、(c))。   FIG. 25 shows an example of the operation of the semiconductor integrated circuit SEM3 that executes the processing shown in FIG. Detailed description of the same operations as those in FIG. 11 is omitted. The sequencer 14A receives one flag signal FLG from the arithmetic unit array 18A, and executes one condition determination at a time. Therefore, in the second, sixth, and tenth clock cycles, data x (= 2) is read from the data terminal RDT of the shared memory 12 (FIGS. 25A, 25B, and 25C).

演算器アレイ18Aは、3番目のクロックサイクルで、データxが”0”でないことを判定し、7番目のクロックサイクルで、データxが”1”でないことを判定する(図25(d)、(e))。演算器アレイ18Aは、11番目のクロックサイクルで、データxが”2”であることを判定し、15番目のクロックサイクルからコンテキストCTX2(処理C)を実行する(図25(f)、(g))。   The arithmetic unit array 18A determines that the data x is not “0” in the third clock cycle, and determines that the data x is not “1” in the seventh clock cycle (FIG. 25 (d), (E)). The arithmetic unit array 18A determines that the data x is “2” in the eleventh clock cycle, and executes the context CTX2 (processing C) from the fifteenth clock cycle (FIG. 25 (f), (g )).

図25において、コンテキストCTX2の実行が開始されるタイミングは、図11において、コンテキストCTX2の実行が開始されるタイミングより、8クロックサイクル遅い。すなわち、図3に示した半導体集積回路SEM2は、図22に示した半導体集積回路SEM3に比べて、コンテキストCTX2を8クロックサイクル早く開始できる。   In FIG. 25, the timing at which execution of the context CTX2 is started is eight clock cycles later than the timing at which execution of the context CTX2 is started in FIG. That is, the semiconductor integrated circuit SEM2 shown in FIG. 3 can start the context CTX2 earlier by 8 clock cycles than the semiconductor integrated circuit SEM3 shown in FIG.

図26は、図22に示した演算器アレイ18Aに実行させる処理の別の例を示す。演算器アレイ18Aが実行する処理は、図13に示した処理と同様である。すなわち、演算器アレイ18Aは、図13と同様のC言語等のif文に相当する処理を実行する。   FIG. 26 shows another example of processing to be executed by the arithmetic unit array 18A shown in FIG. The processing executed by the arithmetic unit array 18A is the same as the processing shown in FIG. That is, the arithmetic unit array 18A executes a process corresponding to an if statement such as C language similar to FIG.

但し、演算器アレイ18Aは、1つのフラグ信号FLGの真、偽に基づいて演算器アレイ18A内の回路を順次に更新し、実行する処理が処理A、処理B、処理Cのいずれであるかを1つずつ判定する。このため、演算器アレイ18Aは、図13より多いコンテキストCTXJ1、CTXJ2(条件判定)の処理を実行する。   However, the arithmetic unit array 18A sequentially updates the circuits in the arithmetic unit array 18A based on whether one flag signal FLG is true or false, and whether the processing to be executed is processing A, processing B, or processing C. Are determined one by one. For this reason, the arithmetic unit array 18A executes processing of contexts CTXJ1 and CTXJ2 (condition determination) more than in FIG.

図27は、図26に示した処理を実行する半導体集積回路SEM3の動作の例を示す。図11および図25と同様の動作については、詳細な説明は省略する。シーケンサ14Aは、演算器アレイ18Aから1つのフラグ信号FLGを受け、一度に1つの条件判定を実行する。このため、2番目、7番目のクロックサイクルにおいて、共有メモリ12のデータ端子RDTからデータx、y、zが読み出される(図27(a)、(b))。   FIG. 27 shows an example of the operation of the semiconductor integrated circuit SEM3 that executes the processing shown in FIG. Detailed descriptions of operations similar to those in FIGS. 11 and 25 are omitted. The sequencer 14A receives one flag signal FLG from the arithmetic unit array 18A, and executes one condition determination at a time. Therefore, in the second and seventh clock cycles, the data x, y, z are read from the data terminal RDT of the shared memory 12 (FIGS. 27A and 27B).

演算器アレイ18Aは、3番目のクロックサイクルで、コンテキストCTXJ1による判定が偽(”10”)であることを検出し、8番目のクロックサイクルで、コンテキストCTXJ2による判定が真(”11”)であることを検出する(図27(c)、(d))。そして、演算器アレイ18Aは、12番目のクロックサイクルからコンテキストCTX1(処理B)を実行する(図27(e))。図27において、コンテキストCTX1の実行が開始されるタイミングは、図16において、コンテキストCTX1の実行が開始されるタイミングより、4クロックサイクル遅い。すなわち、図3に示した半導体集積回路SEM2は、図22に示した半導体集積回路SEM3に比べて、コンテキストCTX1を4クロックサイクル早く開始できる。   The arithmetic unit array 18A detects that the determination by the context CTXJ1 is false ("10") in the third clock cycle, and the determination by the context CTXJ2 is true ("11") in the eighth clock cycle. It is detected (FIG. 27 (c), (d)). Then, the arithmetic unit array 18A executes the context CTX1 (processing B) from the 12th clock cycle (FIG. 27E). In FIG. 27, the timing at which the execution of the context CTX1 is started is four clock cycles later than the timing at which the execution of the context CTX1 is started in FIG. That is, the semiconductor integrated circuit SEM2 illustrated in FIG. 3 can start the context CTX1 four clock cycles earlier than the semiconductor integrated circuit SEM3 illustrated in FIG.

以上、図3から図21に示した実施形態においても、図1および図2に示した実施形態と同様に、条件判定の結果に応じて演算器アレイ18が実行する処理を早く開始でき、半導体集積回路SEM2の性能を向上することができる。   As described above, in the embodiment shown in FIGS. 3 to 21 as well as the embodiment shown in FIGS. 1 and 2, the processing executed by the arithmetic unit array 18 can be started quickly according to the result of the condition determination. The performance of the integrated circuit SEM2 can be improved.

さらに、コンフィグレーションデータCFGと演算器アレイ18の回路構成を切り替えるレジスタデータREGDとは、互いに独立したコンフィグレーションメモリ16A、16Bに格納される。これにより、半導体集積回路SEM2に搭載するメモリの容量を従来に比べて削減でき、半導体集積回路SEM2の回路規模を従来に比べて削減できる。   Further, the configuration data CFG and the register data REGD for switching the circuit configuration of the arithmetic unit array 18 are stored in the configuration memories 16A and 16B independent of each other. Thereby, the capacity of the memory mounted on the semiconductor integrated circuit SEM2 can be reduced as compared with the conventional one, and the circuit scale of the semiconductor integrated circuit SEM2 can be reduced as compared with the conventional one.

フラグ信号FLG0−FLG7に優先度を設定することにより、真を示す複数のフラグ信号FLG0−FLG7が出力される場合にも、正しいコンフィグレーションデータCFGに基づいて演算器アレイ18の回路を再構成することができる。換言すれば、真を示す複数のフラグ信号FLG0−FLG7が出力される場合にも、演算器アレイ18の回路が、誤ったコンフィグレーションデータCFGにより再構成されることはなく、演算器アレイ18は誤動作しない。   By setting the priority to the flag signals FLG0 to FLG7, the circuit of the arithmetic unit array 18 is reconfigured based on the correct configuration data CFG even when a plurality of flag signals FLG0 to FLG7 indicating true are output. be able to. In other words, even when a plurality of flag signals FLG0 to FLG7 indicating true are output, the circuit of the arithmetic unit array 18 is not reconfigured by erroneous configuration data CFG, and the arithmetic unit array 18 Does not malfunction.

ネットワーク回路NWFにより、演算器OP、FOPの出力を、優先度に応じてフラグ端子FLG0−FLG7のいずれかに接続し、優先度が割り当てられたフラグ信号FLGを出力することで、シーケンサ14による優先度の判定処理を省くことができる。   The network circuit NWF connects the outputs of the arithmetic units OP and FOP to any of the flag terminals FLG0 to FLG7 according to the priority, and outputs the flag signal FLG to which the priority is assigned. The degree determination process can be omitted.

フラグ演算器DFOPは、フラグ信号FLG0−FLG6が偽を示す場合に、真を示すフラグ信号FLG7を出力する。これにより、いずれの判定条件にも該当しない場合の処理を選択するフラグ信号FLGの論理を、演算器OPやフラグ演算器FOPを用いて生成する場合に比べて簡易に生成することができる。   The flag calculator DFOP outputs a flag signal FLG7 indicating true when the flag signals FLG0 to FLG6 indicate false. As a result, the logic of the flag signal FLG for selecting a process when none of the determination conditions is met can be generated more easily than when the logic is generated using the calculator OP or the flag calculator FOP.

分岐制御フラグBRAがリセット状態を示す場合に、セレクタSSEL1の動作は停止し、アドレスADaは、インクリメンタINCにより順次に生成される。これにより、アドレスADaの各ビットの論理レベルが変化する可能性を低くでき、アドレスADaの変化に伴って発生する電源ノイズを抑制できる。   When the branch control flag BRA indicates a reset state, the operation of the selector SSEL1 is stopped, and the address ADa is sequentially generated by the incrementer INC. As a result, the possibility that the logic level of each bit of the address ADa changes can be reduced, and the power supply noise generated with the change of the address ADa can be suppressed.

以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。   From the above detailed description, features and advantages of the embodiments will become apparent. This is intended to cover the features and advantages of the embodiments described above without departing from the spirit and scope of the claims. Also, any improvement and modification should be readily conceivable by those having ordinary knowledge in the art. Therefore, there is no intention to limit the scope of the inventive embodiments to those described above, and appropriate modifications and equivalents included in the scope disclosed in the embodiments can be used.

2…演算部;4…制御部;12…共有メモリ;14、14A…シーケンサ;16A、16B…コンフィグレーションメモリ;18、18A…演算器アレイ;20…MCU;30…メモリ;40…周辺回路;ACOUNT…カウンタ;ADa、ADb…アドレス信号;BRA…分岐制御フラグ;CFG…コンフィグレーションデータ;CNTL…制御回路;DFOP…フラグ演算器;END…終了信号;ENDS…終了フラグ;FLG…フラグ信号;FLGOP…フラグ演算部;FOP…フラグ演算器;INC…インクリメンタ;MCNT…メモリ制御回路;NWD、MWF…ネットワーク回路;OP…演算器;PRVS0、PRVS1…極性反転器;REG…レジスタ;REGD…レジスタデータ;SBUS…システムバス;SEM1、SEM2、SEM3…半導体集積回路;SSEL1、SSEL2、SSEL3…セレクタ;STL…ストール信号;TRG…トリガ信号   2 ... arithmetic unit; 4 ... control unit; 12 ... shared memory; 14, 14A ... sequencer; 16A, 16B ... configuration memory; 18, 18A ... arithmetic unit array; 20 ... MCU; ACOUNT ... Counter; ADa, ADb ... Address signal; BRA ... Branch control flag; CFG ... Configuration data; CNTL ... Control circuit; DFOP ... Flag calculator; END ... End signal; ENDS ... End flag; FLG ... Flag signal; ... Flag operation unit; FOP ... Flag operation unit; INC ... Incrementor; MCNT ... Memory control circuit; NWD, MWF ... Network circuit; OP ... Operation unit; PRVS0, PRVS1 ... Polarity inverter; REG ... Register; REGD ... Register data ; SBUS ... System bus; SEM1, SE 2, SEM3 ... semiconductor integrated circuit; SSEL1, SSEL2, SSEL3 ... selector; STL ... stall signal; TRG ... trigger signal

Claims (6)

再構成可能な複数の演算器を含む演算部と、
複数の前記演算器による論理演算の結果をそれぞれ示す複数のフラグ信号に応じて、前記演算部の回路構成を示す複数のコンフィグレーションデータのいずれかを選択し、選択したコンフィグレーションデータを前記演算部に出力する制御部と
前記複数のコンフィグレーションデータを保持する複数の記憶領域を含み、第1アドレスによりアクセスされる第1記憶部と、
複数組の前記第1アドレスおよび第2アドレスを記憶する複数の記憶領域を含み、前記第2アドレスによりアクセスされる第2記憶部と
を備え
前記制御部は、前記第2記憶部から出力される複数組の前記第1アドレスおよび前記第2アドレスのいずれかの組を、前記フラグ信号に応じて選択し、選択した前記第1アドレスを前記第1記憶部に出力し、選択した前記第2アドレスを前記第2記憶部に出力する第1セレクタを備えることを特徴とする半導体集積回路。
A computing unit including a plurality of reconfigurable computing units;
In response to a plurality of flag signals indicating the results of logical operations by a plurality of the arithmetic units, one of a plurality of configuration data indicating a circuit configuration of the arithmetic unit is selected, and the selected configuration data is selected from the arithmetic unit. a control unit for outputting a,
A first storage unit including a plurality of storage areas for holding the plurality of configuration data and accessed by a first address;
A plurality of storage areas for storing a plurality of sets of the first address and the second address, and a second storage unit accessed by the second address ,
The control unit selects one of a plurality of sets of the first address and the second address output from the second storage unit according to the flag signal, and selects the selected first address the semiconductor integrated circuit is output to the first storage unit, and wherein the Rukoto comprises a first selector for outputting the second address selected in the second storage unit.
前記演算部は、前記演算器から出力される複数の前記フラグ信号のいずれも偽を示す場合に、真を示すフラグ信号を前記制御部に出力するフラグ制御回路を備えること
を特徴とする請求項1記載の半導体集積回路。
The said calculating part is provided with the flag control circuit which outputs the flag signal which shows true to the said control part, when all of the said several flag signals output from the said calculator show false. 2. The semiconductor integrated circuit according to 1.
前記制御部は、真を示す前記フラグ信号に対応して、前記第2記憶部から出力される複数組の前記第1アドレスおよび前記第2アドレスのいずれかの組を選択するとともに、真を示す複数の前記フラグ信号を受けた場合、真を示す複数の前記フラグ信号のうち、他のフラグ信号より優先度が高い前記フラグ信号の1つに対応する前記第1アドレスおよび前記第2アドレスの組を選択すること
を特徴とする請求項記載の半導体集積回路。
The control unit selects one of the plurality of sets of the first address and the second address output from the second storage unit in response to the flag signal indicating true, and indicates true When receiving a plurality of flag signals, a set of the first address and the second address corresponding to one of the flag signals having a higher priority than the other flag signals among the plurality of flag signals indicating true The semiconductor integrated circuit according to claim 1 , wherein: is selected.
前記演算部は、前記演算器の出力と前記フラグ信号を出力するフラグ端子とを前記優先度に応じて接続する接続部を備えること
を特徴とする請求項記載の半導体集積回路。
The semiconductor integrated circuit according to claim 3 , wherein the arithmetic unit includes a connection unit that connects an output of the arithmetic unit and a flag terminal that outputs the flag signal according to the priority.
前記第2記憶部の前記各記憶領域は、前記フラグ信号に応じた前記コンフィグレーションデータを選択する動作を有効にする有効フラグを記憶する領域を備え、
前記制御部は、
前記有効フラグが無効を示す場合に、前記第2記憶部から出力される前記第アドレスの1つを順次に更新する更新回路と、
前記有効フラグが有効を示す場合に、前記第1セレクタから出力される前記第アドレスを選択し、前記有効フラグが無効を示す場合に、前記更新回路から出力される前記第アドレスを選択し、選択した第アドレスを前記第記憶部に出力する第2セレクタと
を備えることを特徴とする請求項ないし請求項のいずれか1項記載の半導体集積回路。
Each of the storage areas of the second storage unit includes an area for storing a valid flag for validating an operation of selecting the configuration data according to the flag signal,
The controller is
An update circuit for sequentially updating one of the first addresses output from the second storage unit when the valid flag indicates invalid;
When the valid flag indicates valid, the first address output from the first selector is selected, and when the valid flag indicates invalid, the first address output from the update circuit is selected. the semiconductor integrated circuit according to any one of claims 1 to 4, characterized in that it comprises a second selector for outputting a first address selected in the first storage unit.
再構成可能な複数の演算器を含む演算部と、第1記憶部と、第2記憶部とを含む半導体集積回路の動作方法であって、
複数の前記演算器による論理演算の結果をそれぞれ示す複数のフラグ信号に応じて、前記演算部の回路構成を示す複数のコンフィグレーションデータのいずれかを選択し、
選択したコンフィグレーションデータを前記演算部に出力することと、
第1アドレスにより前記第1記憶部にアクセスすることであって、前記第1記憶部は前記複数のコンフィグレーションデータを保持する複数の記憶領域を含むことと、
第2アドレスにより前記第2記憶部にアクセスすることであって、前記第2記憶部は、複数組の前記第1アドレスおよび前記第2アドレスを記憶する複数の記憶領域を含むことと、
前記第2記憶部から出力される複数組の前記第1アドレスおよび前記第2アドレスのいずれかの組を、前記フラグ信号に応じて選択し、選択した前記第1アドレスを前記第1記憶部に出力し、選択した前記第2アドレスを前記第2記憶部に出力することと
含むことを特徴とする半導体集積回路の動作方法。
An operation method of a semiconductor integrated circuit including an arithmetic unit including a plurality of reconfigurable arithmetic units, a first storage unit, and a second storage unit ,
In response to a plurality of flag signals each indicating a result of a logical operation by a plurality of the arithmetic units, one of a plurality of configuration data indicating a circuit configuration of the arithmetic unit is selected.
Outputting the selected configuration data to the computing unit ;
Accessing the first storage unit by a first address, wherein the first storage unit includes a plurality of storage areas for holding the plurality of configuration data;
Accessing the second storage unit by a second address, wherein the second storage unit includes a plurality of storage areas for storing a plurality of sets of the first address and the second address;
One of a plurality of sets of the first address and the second address output from the second storage unit is selected according to the flag signal, and the selected first address is stored in the first storage unit. outputs, operation method of a semiconductor integrated circuit, characterized in that it comprises and outputting the second selected address in the second storage unit.
JP2013133931A 2013-06-26 2013-06-26 Semiconductor integrated circuit and operation method of semiconductor integrated circuit Active JP6143577B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013133931A JP6143577B2 (en) 2013-06-26 2013-06-26 Semiconductor integrated circuit and operation method of semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013133931A JP6143577B2 (en) 2013-06-26 2013-06-26 Semiconductor integrated circuit and operation method of semiconductor integrated circuit

Publications (2)

Publication Number Publication Date
JP2015011375A JP2015011375A (en) 2015-01-19
JP6143577B2 true JP6143577B2 (en) 2017-06-07

Family

ID=52304519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013133931A Active JP6143577B2 (en) 2013-06-26 2013-06-26 Semiconductor integrated circuit and operation method of semiconductor integrated circuit

Country Status (1)

Country Link
JP (1) JP6143577B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486892B (en) * 2020-12-15 2024-07-26 泰和电路科技(惠州)有限公司 Calculation method of the bond IC control calculator

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6476264A (en) * 1987-09-18 1989-03-22 Fujitsu Ltd Interruption control system in multiprocessor system
JP4594666B2 (en) * 2004-07-12 2010-12-08 富士通株式会社 Reconfigurable computing device

Also Published As

Publication number Publication date
JP2015011375A (en) 2015-01-19

Similar Documents

Publication Publication Date Title
JP6708552B2 (en) Pipelined configurable processor
US5247627A (en) Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
WO2001022589A1 (en) Configuration state memory for functional blocks on a reconfigurable chip
US8138788B2 (en) Reconfigurable device
JP5609326B2 (en) Clock divider circuit
US8484520B2 (en) Processor capable of determining ECC errors
US7908453B2 (en) Semiconductor device having a dynamically reconfigurable circuit configuration
US9329621B2 (en) Variable clocked serial array processor
JP6143577B2 (en) Semiconductor integrated circuit and operation method of semiconductor integrated circuit
US7734896B2 (en) Enhanced processor element structure in a reconfigurable integrated circuit device
CN107340992B (en) Fixed point data screening circuit
JP2006011825A (en) Reconfigurable arithmetic device and semiconductor device
CN102789190B (en) Column address allocator circuit suitable for programming different types of FPGA circuits
US20060004980A1 (en) Address creator and arithmetic circuit
US20120254491A1 (en) Priority arbitration control within interconnect circuitry
KR100840030B1 (en) Programmable logic circuit
JP7498166B2 (en) System and method for selectively bypassing address generation hardware in a processor instruction pipeline - Patents.com
JP4437439B2 (en) Data processing device
JP5701930B2 (en) Semiconductor device
US20240345984A1 (en) Scalable and modular bus controller including page memory pld architecture
JPH10326248A (en) DMA controller
JP2002236606A (en) Memory control circuit
CN119002861A (en) A matrix multiplication accelerator
JP2015014833A (en) Reconfigurable LSI
JP2011242995A (en) Semiconductor device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20160118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170307

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: 20170426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170509

R150 Certificate of patent or registration of utility model

Ref document number: 6143577

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371