WO2017029766A1 - 情報処理回路 - Google Patents

情報処理回路 Download PDF

Info

Publication number
WO2017029766A1
WO2017029766A1 PCT/JP2015/073429 JP2015073429W WO2017029766A1 WO 2017029766 A1 WO2017029766 A1 WO 2017029766A1 JP 2015073429 W JP2015073429 W JP 2015073429W WO 2017029766 A1 WO2017029766 A1 WO 2017029766A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
simultaneous linear
information processing
input signal
linear equation
Prior art date
Application number
PCT/JP2015/073429
Other languages
English (en)
French (fr)
Inventor
徹 本谷
雄介 菅野
山岡 雅直
真 佐圓
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2017535224A priority Critical patent/JP6550465B2/ja
Priority to PCT/JP2015/073429 priority patent/WO2017029766A1/ja
Publication of WO2017029766A1 publication Critical patent/WO2017029766A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Definitions

  • the present invention relates to an information processing circuit.
  • Patent Document 1 discloses a technique for detecting an error generated on a circuit by arranging two identical circuits to operate in parallel and comparing their outputs.
  • An object of the present invention is to provide an information processing circuit capable of detecting an error with a circuit amount smaller than that of a double circuit.
  • An information processing circuit includes an arithmetic circuit that receives an input signal and a verification circuit that receives the input signal.
  • the arithmetic circuit outputs a numerical solution calculated based on the input signal to the verification circuit.
  • the verification circuit restores the numerical solution received from the arithmetic circuit to a restored input signal, determines the presence or absence of an error based on the restored restored input signal and the received input signal, Outputs the presence / absence judgment result.
  • FIG. 2 is a diagram illustrating an outline of a configuration example of an information processing circuit in Embodiment 1.
  • FIG. 3 is a diagram illustrating an outline of a configuration example of a simultaneous linear equation arithmetic circuit in Embodiment 1.
  • FIG. 3 is a diagram illustrating an outline of a configuration example of a simultaneous linear equation verification circuit according to Embodiment 1.
  • FIG. 3 is a timing chart of the information processing circuit in the first embodiment.
  • 3 is a timing chart of the information processing circuit in the first embodiment.
  • 3 is a timing chart of the information processing circuit in the first embodiment.
  • 3 is a timing chart of the information processing circuit in the first embodiment.
  • 3 is a timing chart of the information processing circuit in the first embodiment.
  • 3 is a state transition diagram illustrating an operation of the information processing circuit according to the first embodiment.
  • FIG. 6 is a state transition diagram illustrating the operation of the simultaneous linear equation checking circuit in the first embodiment.
  • FIG. 3 is a flowchart illustrating an outline of processing by the information processing circuit according to the first embodiment.
  • 3 is a flowchart showing an outline of processing by a simultaneous linear equation arithmetic circuit in the first embodiment.
  • 3 is a flowchart illustrating an outline of processing by a simultaneous linear equation verification circuit according to the first embodiment.
  • 6 is a diagram illustrating an outline of a configuration example of a simultaneous linear equation arithmetic circuit in Embodiment 2.
  • FIG. 10 is a flowchart illustrating an outline of processing using a CG method by a linear equation equation circuit according to Embodiment 2.
  • FIG. 10 is a diagram illustrating an outline of a configuration example of a simultaneous linear equation arithmetic circuit according to a third embodiment.
  • 12 is a flowchart illustrating an outline of processing using the SOR method by the simultaneous linear equation arithmetic circuit according to the third embodiment.
  • FIG. 10 is a diagram illustrating an outline of a configuration example of a simultaneous linear equation arithmetic circuit according to a fourth embodiment.
  • FIG. 20 is a diagram showing an outline of processing using LU decomposition by simultaneous linear equation arithmetic circuits in the fourth embodiment.
  • FIG. 10 is a diagram illustrating an outline of a configuration example of an information processing circuit in a fifth embodiment.
  • FIG. 10 is a diagram showing an outline of a configuration example of a nonlinear equation arithmetic circuit in a fifth embodiment.
  • FIG. 20 is a diagram showing an outline of a configuration example of a nonlinear equation verification circuit in a fifth embodiment.
  • 10 is a flowchart illustrating an overview of processing by an information processing circuit in a fifth embodiment.
  • 10 is a flowchart illustrating an outline of processing by a nonlinear equation arithmetic circuit according to a fifth embodiment.
  • 10 is a flowchart showing an outline of processing by a nonlinear equation verification circuit in the fifth embodiment.
  • FIG. 18 is a diagram illustrating an outline of a configuration example of an information processing circuit in a sixth embodiment.
  • FIG. 18 is a diagram illustrating an outline of a configuration example of an information processing circuit in a sixth embodiment.
  • FIG. 18 is a diagram illustrating an outline of a configuration example of an information processing circuit in a sixth embodiment.
  • FIG. 18 is a diagram illustrating an outline of a configuration example of an information processing circuit in a seventh embodiment.
  • FIG. 18 is a diagram illustrating an outline of a configuration example of an information processing circuit in a seventh embodiment.
  • FIG. 1 is a diagram illustrating an outline of a configuration example of the information processing circuit 100 according to the first embodiment.
  • the information processing circuit 100 includes an input line 101, an output line 102, a notification line 103, a simultaneous linear equation calculation circuit 104, and a simultaneous linear equation verification circuit 105.
  • the input line 101 includes a CLK for inputting a clock, an RST for inputting a reset signal, an IVLD for inputting an operation start signal, and an IDAT for inputting an input signal.
  • the input line 101 branches when it enters the information processing circuit 100 and is connected to the simultaneous linear equation arithmetic circuit 104 and the simultaneous linear equation verification circuit 105. That is, CLK, RST, IVLD, and IDAT of the input line 101 branch inside the information processing circuit 100 and are connected to the simultaneous linear equation arithmetic circuit 104 and the simultaneous linear equation verification circuit 105.
  • the output line 102 connected to the simultaneous linear equation arithmetic circuit 104 is composed of OVLD and ODAT.
  • the output line 102 branches inside the information processing circuit 100, one connected to the host system of the information processing circuit 100 and the other connected to the simultaneous linear equation verification circuit 105. That is, OVLD and ODAT of the output line 102 each branch inside the information processing circuit 100, one is connected to the host system of the information processing circuit 100, and the other is connected to the simultaneous linear equation checking circuit 105.
  • the simultaneous linear equation arithmetic circuit 104 outputs the coefficient matrix A and the right-hand vector b of the simultaneous linear equations, which are input signals, via the input line 101, and solves the following simultaneous linear equations (formula (1)).
  • the numerical solution x ′ is calculated.
  • Ax b
  • the simultaneous linear equation calculation circuit 104 outputs the numerical solution x ′ calculated based on the input signal as an output signal to the simultaneous linear equation verification circuit 105 via the output line 102 (an output line connected to the simultaneous linear equation verification circuit 105). In addition to outputting, the numerical solution x ′ is output to the host system of the information processing circuit 100 via the output line 102 (an output line connected to the host system).
  • the simultaneous linear equation verification circuit 105 receives the coefficient matrix A and the right-hand vector b of the simultaneous linear equations, which are input signals, via the input line 101.
  • the simultaneous linear equation verification circuit 105 receives the numerical solution x ′ calculated by the simultaneous linear equation calculation circuit 104 via the output line 102.
  • the simultaneous linear equation verification circuit 105 uses the coefficient matrix A, the right-hand vector b, and the numerical solution x ′, which are the input data, to verify the simultaneous linear equations expressed by the equation (2).
  • the simultaneous linear equation verification circuit 105 restores the numerical solution x ′ received from the simultaneous linear equation arithmetic circuit 104 to the restored right-hand vector b ′, which is the restored input signal, and the restored right-hand vector b ′ and the right-hand vector of the input signal.
  • the presence or absence of an error is determined by checking simultaneous linear equations based on b. Then, the simultaneous linear equation verification circuit 105 outputs an error determination result indicating a determination result of the presence / absence of an error to the upper system via the notification line 103.
  • the simultaneous linear equation verification circuit 105 restores the right side vector b ′ by performing a matrix vector product operation of the coefficient matrix A and the numerical solution x ′, and restores the right side vector b received in advance as an input signal.
  • the right side vector b ′ is compared.
  • the simultaneous linear equation verification circuit 105 calculates the norm
  • is compared with the allowable error epsilon.
  • the reason why the allowable error epsilon is introduced is that the real number calculation is affected by the rounding error.
  • the numerical solution x ′ of real number calculation such as simultaneous linear equations is different from the true solution x, and the right side vector b ′ restored by the real number calculation is different from the original right side vector b. Therefore, by introducing the allowable error epsilon, it is evaluated by the above-described equation (2) that the numerical solution x ′ exists in the vicinity of the true solution x.
  • the simultaneous linear equation checking circuit 105 has no error in the numerical solution x ′ when the expression (2) is satisfied (when
  • the simultaneous linear equation verification circuit 105 outputs an error determination result indicating a determination result of the presence / absence of an error to the upper system via the notification line 103.
  • FIG. 2 is a diagram showing an outline of a configuration example of the simultaneous linear equation arithmetic circuit 104 in the first embodiment.
  • the input line 101 and the output line 102 are connected to the bus 110.
  • the simultaneous linear equation calculation control unit 111, the calculation unit 112, and the calculation data holding unit 113 are connected to each other via a bus 110.
  • the arithmetic unit 112 includes a matrix vector product arithmetic unit 114, a scalar vector product arithmetic unit 115, and a plurality of units for performing processing necessary for obtaining the numerical solution x ′ (processing of S142 to S144, S147, and S148 described later).
  • the calculation data holding unit 113 has a storage area capable of storing primary data generated during the GMRES method calculation, and includes a queue 125 having a size equivalent to that of the calculation data holding unit 124 of the simultaneous linear equation verification circuit 105.
  • the arithmetic data holding unit 113 includes the queue 125 having the same size as the arithmetic data holding unit 124 of the simultaneous linear equation checking circuit 105 because the throughput of the simultaneous linear equation calculating circuit 104 and the simultaneous primary equation checking circuit 105 is high. This is for equality.
  • the simultaneous linear equation calculation control unit 111 performs state transition shown in FIG. 8 to be described later in response to a reset signal and a calculation start signal, and also receives input signals (coefficient matrix A and right-side vector b) to the calculation data holding unit 113. Temporarily save.
  • simultaneous linear equation calculation control unit 111 calls the calculation unit 112 in accordance with processing by the simultaneous linear equation calculation circuit 104 (to be described later, FIG. 11), and a calculation data holding unit 113 for data generated during the calculation. Save to and read from.
  • the simultaneous linear equation calculation control unit 111 outputs the numerical solution x ′ as an output signal from the output line 102 together with the calculation end signal.
  • FIG. 3 is a diagram showing an outline of a configuration example of the simultaneous linear equation verification circuit 105 according to the first embodiment.
  • An output line 102 for receiving the numerical solution x ′ of the simultaneous linear equations (Ax b), a notification line 103 for the simultaneous linear equation checking circuit 105 to notify the host system of the error determination result, a bus 110,
  • the system includes a simultaneous linear equation verification control unit 120, an arithmetic unit 123, and an arithmetic data holding unit 124.
  • the input line 101, the output line 102, and the notification line 103 are connected to the bus 110.
  • the simultaneous linear equation verification control unit 120, the arithmetic unit 123, and the arithmetic data holding unit 124 are connected to each other via the bus 110.
  • the simultaneous linear equation verification control unit 120, the arithmetic unit 123, and the arithmetic data holding unit 124 communicate arithmetic data and input / output signals with each other via the bus 110.
  • the operation unit 123 includes a matrix vector product operation unit 114, a vector product-sum operation unit 116, and a vector inner product operation for performing processing necessary for determining whether or not there is an error (the processing in S151 described later).
  • Unit 117 The operation unit 123 includes a matrix vector product operation unit 114, a vector product-sum operation unit 116, and a vector inner product operation for performing processing necessary for determining whether or not there is an error (the processing in S151 described later).
  • the calculation data holding unit 124 functions as a storage area for calculation intermediate data, and includes a queue 125 for storing input signals (coefficient matrix A and right-side vector b).
  • the simultaneous linear equation verification control unit 120 includes a comparison unit 121, and an allowable error 122 is stored in the comparison unit 121.
  • the simultaneous linear equation verification control unit 120 performs a state transition shown in FIG. 9 to be described later in response to the reset signal 1, the calculation start signal, and the calculation end signal. Temporarily save and retrieve.
  • the simultaneous linear equation verification control unit 120 calls the arithmetic unit 123 in accordance with processing by the simultaneous linear equation verification circuit 105 (described later, FIG. 12), and an arithmetic data holding unit 124 for data generated in the middle of the arithmetic operation. Save to and read from.
  • the simultaneous linear equation verification control unit 120 determines whether or not there is an error in the information processing circuit 100 from the comparison result, and outputs the error determination result from the notification line 103.
  • the circuit area of the information processing circuit 100 is Sm and the circuit area of the simultaneous linear equation calculation circuit 105 is Sv
  • the circuit area of the information processing circuit 100 is a value obtained by adding Sv to Sm (Sm + Sv). It is. Further, when the simultaneous linear equation arithmetic circuit 104 is duplicated, the circuit area is twice Sm (2 ⁇ Sm).
  • circuit area of the simultaneous linear equation verification control unit which is a component of the simultaneous linear equation verification circuit 105, is Sv0, the circuit area of the arithmetic unit 123 is Sv1, and the circuit area of the arithmetic data holding unit is Sv2, the following equation (4) ) Holds.
  • the arithmetic unit 112 of the simultaneous linear equation arithmetic circuit 104 is different from the arithmetic unit 123 of the simultaneous linear equation verification circuit 105 in that the inner product arithmetic unit 117, the Givens rotation arithmetic unit 118, and the backward substitution arithmetic unit 119 are used. And have. Therefore, the following equation (6) is established. Formula (6): Sm1> Sv1
  • the circuit area of the information processing circuit 100 of the present invention is smaller than the circuit area obtained by duplicating the simultaneous linear equation arithmetic circuit 104.
  • the information processing circuit 100 performs simultaneous linear equation calculations after performing simultaneous linear equation calculations, and therefore requires more time for error detection than duplexing. In other words, there is a trade-off relationship between execution time and circuit area, and it is necessary to design with this point in mind.
  • FIGS. 4, 5, 6, and 7 are timing charts of the information processing circuit 100 according to the first embodiment and are diagrams illustrating the front-rear relationship of each signal.
  • the information processing circuit 100 receives a clock 182 via the CLK of the input line 101, and the higher system, the simultaneous linear equation arithmetic circuit 104, and the simultaneous linear equation verification by the clock 182.
  • the circuit 105 operates in synchronization.
  • FIG. 4 shows the initialization of the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 which are internal circuits of the information processing circuit 100 when the reset signal 184 is input from the host system via the RST of the input line 101. It is a timing chart which shows the mode.
  • the simultaneous linear equation arithmetic circuit 104 initializes a storage area 185.
  • the simultaneous linear equation verification circuit 105 initializes an internal storage area 186. As a result, the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 become operable.
  • FIG. 5 is a timing chart showing how the simultaneous linear equation calculation circuit 104 starts calculation when the calculation start signal 187 is input from the host system via the IVLD of the input line 101.
  • the coefficient matrix A and the right-hand side vector b are received.
  • the simultaneous linear equation verification circuit 105 enters the idle state 183 upon receiving the calculation start signal 187 and receives the input signal 188 (coefficient matrix A and right-side vector b) via IDAT.
  • FIG. 6 is a timing chart showing how the simultaneous linear equation checking circuit 105 starts checking when the calculation end signal 190 is output from the simultaneous linear equation calculating circuit 104 via the OVLD of the output line 102.
  • the simultaneous linear equation calculation circuit 104 ends the calculation 189 of the simultaneous linear equations, whereby the simultaneous linear equation calculation circuit 104 outputs a calculation end signal 190 to the simultaneous primary equation verification circuit 105.
  • the simultaneous linear equation verification circuit 105 ends the idle state 183 and starts the simultaneous linear equation verification 192.
  • the simultaneous linear equation calculation circuit 104 outputs the output signal 191, that is, the numerical solution x ′ of the simultaneous linear equations to the simultaneous linear equation verification circuit 105 via the ODAT of the output line 102 after outputting the calculation end signal 190.
  • the simultaneous linear equation checking circuit 105 After receiving the output signal 191 (numerical solution x ′), the simultaneous linear equation checking circuit 105 performs checking 192 of the simultaneous linear equations.
  • FIG. 7 is a timing chart showing how the error determination result 193 is output when the simultaneous linear equation verification circuit 105 finishes the simultaneous linear equation verification 192.
  • the simultaneous linear equation verification circuit 105 outputs an error determination result 193 to the host system from the result of the simultaneous linear equation verification 192.
  • the host system receives this error determination result 193 and determines whether or not to continue processing using the output signal 191.
  • the simultaneous linear equation verification circuit 105 may output an error determination result 193 indicating that there is an error to the host system only when it is determined that there is an error. ⁇ State transition>
  • FIG. 8 is a state transition diagram showing the operation of the information processing circuit 100 according to the first embodiment.
  • State 170 is an initial state in which the information processing circuit 100 has stopped operating.
  • State 171 is an initialization state in which the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 of the information processing circuit 100 are initializing their internal storage areas.
  • State 172 is an idle state in which the information processing circuit 100 waits for input of an operation start signal 187 and an input signal 188 (coefficient matrix A and right-side vector b) from the host system.
  • State 173 is a state in which the simultaneous linear equation calculation circuit 104 of the information processing circuit 100 is performing the calculation 189.
  • State 174 is a state during verification in which the simultaneous linear equation verification circuit 105 of the information processing circuit 100 is performing verification 192.
  • the state 175 is a fail-safe state in which the host system has received the error determination result 193 indicating that there is an error from the simultaneous linear equation verification circuit 105, so the operation of the information processing circuit 100 is stopped and the processing by the alternative system is performed. is there. At this time, an error due to the single event upset has occurred in the information processing circuit 100.
  • the state transition 280 is performed from the state 170 (initial state) to the state 171 (initialized state).
  • the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 of the information processing circuit 100 end the initialization 185 of the respective storage areas, so that the state 171 (initialization) is automatically performed.
  • the information processing circuit 100 receives the reset signal 184 from the host system, so that the state transition 282 from the state 172 (idle state) to the state 171 (initialized state) occurs.
  • the information processing circuit 100 receives from the host system the calculation start signal 187 and the coefficient matrix A that is the input signal 188 and the right-hand vector b, so that the state 172 (idle state) to the state 173 ( The state transition 283 is made to the (calculating state).
  • the state transition 284 is performed from the state 173 (computed state) to the state 171 (initialized state).
  • the simultaneous linear equation calculation circuit 104 of the information processing circuit 100 ends the calculation 189, and the calculation end signal 190 and the output signal (numerical solution x ′) are sent to the host system and the simultaneous linear equation verification circuit 105. ) 191 is output, the state transition 285 is performed from the state 173 (the computing state) to the state 174 (the computing state).
  • the state transition 286 is performed from the state 174 (in the verification state) to the state 171 (the initialization state).
  • the simultaneous linear equation verification circuit 105 of the information processing circuit 100 ends the verification 192, and notifies the host system of the error determination result 193 indicating that there is no error.
  • the state transition 287 is made from the (under verification) state to the state 172 (idle state).
  • the simultaneous linear equation verification circuit 105 of the information processing circuit 100 ends the verification 192 and notifies the host system of the error determination result 193 indicating that there is an error.
  • the state transition 288 is performed from the checking state) to the state 175 (fail-safe state).
  • FIG. 9 is a state transition diagram showing the operation of the simultaneous linear equation verification circuit 105 in the first embodiment.
  • State 160 is an initial state where the simultaneous linear equation checking circuit 105 is not operated and is stopped.
  • the state 161 is an initialization state in which the simultaneous linear equation checking circuit 105 is performing initialization 185 of the storage area.
  • the state 162 is an idle state (idle state A) in which the simultaneous linear equation verification circuit 105 is waiting for an operation start signal 187 and an input signal 188 from the host system.
  • the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 included in the information processing circuit 100 perform the calculation start signal 187 and the input signal (coefficient matrix A and the right-hand side vector from the host system).
  • Wait for 188 input In the state 162 (idle state A), the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 included in the information processing circuit 100 perform the calculation start signal 187 and the input signal (coefficient matrix A and the right-hand side vector from the host system).
  • State 163 is an idle state (idle state B) in which the simultaneous linear equation checking circuit 105 is waiting for input of the operation end signal 190 and the output signal 191 from the simultaneous linear equation calculation circuit 104.
  • the simultaneous linear equation calculation circuit 104 included in the information processing circuit 100 calculates the output signal (numerical solution x ′) 191, and the simultaneous linear equation verification circuit 105 calculates simultaneous linear equations. Waiting for the input of the operation end signal 190 and the output signal 191 from the circuit 104.
  • the state 164 is a state during verification in which the simultaneous linear equation verification circuit 105 performs the verification 192 and performs the determination of the above-described equation (2).
  • the simultaneous linear equation verification circuit 105 receives the reset signal 184 from the host system, and thereby makes a state transition 290 from the state 160 (initial state) to the state 161 (initialized state).
  • the simultaneous linear equation checking circuit 105 ends the storage area initialization 185, so that the state transition 291 automatically changes from the state 161 (initialized state) to the state 162 (idle state A). To do.
  • the simultaneous linear equation verification circuit 105 receives the reset signal 184 from the host system, so that the state transition 292 is performed from the state 162 (idle state A) to the state 161 (initialized state).
  • the simultaneous linear equation verification circuit 105 receives the coefficient matrix A and the right-side vector b as the calculation start signal 187 and the input signal 188 from the host system, so that the state 162 (idle state A) State transition 293 from state to state 163 (idle state B). At this time, the simultaneous linear equation checking circuit 105 stores the input signal 188 in a queue in the storage area.
  • the simultaneous linear equation checking circuit 105 receives the operation end signal 190 and the numerical solution x ′ as the output signal 191 from the simultaneous linear equation arithmetic circuit 104, so that the state 162 (idle state A) State transition 294 from state to state 164 (in-verification state).
  • the simultaneous linear equation verification circuit 105 extracts the coefficient matrix A and the right-side vector b, which are the input signals 188, from the queue of the storage area and uses them for the calculation.
  • the simultaneous linear equation verification circuit 105 receives the reset signal 184 from the host system, so that the state transition 295 is performed from the state 163 (idle state B) to the state 161 (initialized state).
  • the simultaneous linear equation checking circuit 105 receives the calculation end signal 190 and the output signal 191 from the simultaneous primary equation calculating circuit 104, so that the state 163 (idling state B) to the state 164 (under checking). State transition 296 to (state). At this time, the simultaneous linear equation verification circuit 105 reads the input signal 188 from the queue in the storage area and uses it for the calculation.
  • the simultaneous linear equation verification circuit 105 receives the calculation start signal 187 and the input signal 188 from the host system, it remains in the state 163 (idle state B) (state transition 297). At this time, the simultaneous linear equation checking circuit 105 stores the input signal 188 in a queue in the storage area.
  • the simultaneous linear equation verification circuit 105 receives the reset signal 184 from the host system, so that the state transition 298 from the state 164 (in the verification state) to the state 161 (initialization state).
  • FIG. 10 is a flowchart showing an outline of processing by the information processing circuit 100 according to the first embodiment.
  • the information processing circuit 100 receives the coefficient matrix A and the right-hand vector b of simultaneous linear equations from the host system. Then, the simultaneous linear equation calculation circuit 104 and the simultaneous linear equation verification circuit 105 of the information processing circuit 100 receive the number matrix A and the right-side vector b via the input line 101.
  • the simultaneous linear equation checking circuit 105 outputs the error determination result 193 to the upper system via the notification line 103.
  • FIG. 11 is a flowchart showing an outline of the processing (S131) by the simultaneous linear equation arithmetic circuit 104 in the first embodiment.
  • the GMRES method is used as an algorithm for solving simultaneous linear equations.
  • a random value is set for the initial solution x0.
  • the simultaneous linear equation calculation circuit 104 initializes the loop variable i with 1.
  • the simultaneous linear equation arithmetic circuit 104 performs the orthonormalization of the vector v and the orthonormal basis ⁇ q0,..., Q (i ⁇ 1) ⁇ of the Krylov subspace, whereby the i-th normal An orthogonal basis vector qi is obtained.
  • This process requires inner product calculation and vector product-sum operation.
  • the simultaneous linear equation arithmetic circuit 104 performs QR decomposition of the Hessenberg matrix by Givens rotation.
  • the simultaneous linear equation arithmetic circuit 104 compares the maximum number of iterations k with the loop variable i. As a result of the comparison by the simultaneous linear equation calculation circuit 104, if i is less than k (i ⁇ k), the process proceeds to step 146 to repeat the loop. On the other hand, if the result of comparison by the simultaneous linear equation calculation circuit 104 is that i is equal to or greater than k (i ⁇ k), the process proceeds to step 147.
  • the simultaneous linear equation arithmetic circuit 104 obtains a k-th order simultaneous linear equation by backward substitution using the upper triangular matrix R obtained by QR decomposition of the Hessenberg matrix as a coefficient matrix.
  • the simultaneous linear equation calculation circuit 104 needs to perform vector product-sum calculation k times.
  • FIG. 12 is a flowchart showing an outline of the processing (S133) by the simultaneous linear equation verification circuit 105 in the first embodiment.
  • the simultaneous linear equation verification circuit 105 calculates the norm
  • the Euclidean norm is used as the norm, and the simultaneous linear equation verification circuit 105 stores the square root of the result of the inner product operation of the vectors b and b as a norm
  • the simultaneous linear equation verification circuit 105 calculates the distance between the numerical solution x ′ output from the simultaneous linear equation calculation circuit 104 and the true solution x of the simultaneous linear equations using a residual norm
  • the arithmetic unit 123 of the simultaneous linear equation checking circuit 105 obtains the relative error
  • the simultaneous linear equation verification circuit 105 determines in S152 that there is no error in the arithmetic unit.
  • the simultaneous linear equation checking circuit 105 that is a checking circuit restores the numerical solution output from the simultaneous linear equation calculating circuit 104 that is an arithmetic circuit, and the input signal (right side) By restoring to the vector b ′) and determining the presence or absence of an error based on the restored input signal after restoration and the received input signal (right-side vector b), it is possible to detect an error even if the circuit amount is reduced.
  • the coefficient matrix A is a dense matrix
  • a direct method that makes it easy to obtain a solution by decomposing the matrix into a simple matrix product is used.
  • an iterative method is used as the solution method, in which the numerical solution x ′ is approximated to the true solution x by iteratively calculating a function mainly including a matrix vector product.
  • the iterative method is roughly divided into two types: a stationary iterative method and a non-stationary iterative method.
  • the non-stationary iteration method is widely used as a high-speed method for reaching a solution in N iterations at most when the vector length is N.
  • the non-stationary iteration method used when the coefficient matrix A is sparse and asymmetric is the GMRES method
  • the non-stationary iteration method used when the coefficient matrix A is sparse and symmetric positive definite is the CG method. is there.
  • the second embodiment of the present invention will be described with reference to FIGS. 13 and 14 mainly on differences from the first embodiment. ⁇ Detailed configuration>
  • FIG. 13 is a diagram showing an outline of a configuration example of the simultaneous linear equation arithmetic circuit 104 in the second embodiment.
  • the simultaneous linear equation arithmetic circuit 104 shown in FIG. 13 has a circuit configuration for realizing processing using the CG method (described later, FIG. 14).
  • the arithmetic unit 112 includes a matrix vector product arithmetic unit 114, a vector product-sum arithmetic unit 116, a vector inner product arithmetic unit 117, and an incomplete LU decomposition preprocessing unit 206 in order to process arithmetic operations required in the CG method. Have.
  • FIG. 14 is a flowchart showing an outline of processing using the CG method by the simultaneous linear equation arithmetic circuit 104 in the second embodiment.
  • the number of iterations in the iterative method depends on the eigenvalue distribution of the coefficient matrix A.
  • the general iteration method preprocesses the matrix.
  • the simultaneous linear equation arithmetic circuit 104 solves the following equations (9) and (10).
  • Formula (9): AMy b
  • Formula (10): My x
  • the simultaneous linear equation arithmetic circuit 104 initializes the loop variable i with 1.
  • the simultaneous linear equation calculation circuit 104 generates a gradient vector p by calculating a matrix vector product of the coefficient matrix A and the orthogonal vector r, and expands the Krylov subspace.
  • the simultaneous linear equation calculation circuit 104 updates the orthogonal basis vector and the solution vector by vector inner product calculation and vector product-sum calculation.
  • the simultaneous linear equation calculation circuit 104 updates the gradient vector by vector inner product calculation and vector product-sum calculation.
  • the simultaneous linear equation arithmetic circuit 104 performs convergence determination by confirming whether the value of the inner product obtained in S204 is below the allowable error.
  • the convergence is determined by determining the following equation (11) using the numerical solution x (i) of the i-th iteration. If the simultaneous linear equation calculation circuit 104 determines that the convergence has occurred (S206—YES), the process ends. On the other hand, when the simultaneous linear equation calculation circuit 104 determines that the convergence has not been achieved (S206—NO), the process proceeds to S207.
  • the simultaneous linear equation arithmetic circuit 104 which is an arithmetic circuit, solves the simultaneous linear equations using an iterative method, thereby achieving the same effect as in the first embodiment.
  • the time until an error is detected can be shortened.
  • the simultaneous linear equation arithmetic circuit 104 uses the CG method, and even if the coefficient matrix A is a sparse matrix and a symmetric positive definite value, Easy to solve. (Embodiment 3)
  • the SOR method is used as an algorithm for obtaining.
  • the SOR method is one of the stationary iteration methods, and the speed is inferior to that of the non-stationary iteration method, but it is known for easy programming.
  • the third embodiment of the present invention will be described with reference to FIGS. 15 and 16 mainly on differences from the first embodiment. ⁇ Detailed configuration>
  • FIG. 15 is a diagram illustrating an outline of a configuration example of the simultaneous linear equation arithmetic circuit 104 according to the third embodiment.
  • the simultaneous linear equation arithmetic circuit 104 shown in FIG. 15 has a circuit configuration for realizing processing using the SOR method (described later, FIG. 16). That is, the arithmetic unit 112 of the simultaneous linear equation arithmetic circuit 104 performs an operation corresponding to a matrix vector product, an operation corresponding to a vector sum-of-products operation, and an operation corresponding to matrix preprocessing, thereby obtaining an update vector of the solution vector.
  • a matrix preprocessing unit 213 for determining r is included.
  • the formula (8): 2 ⁇ Sm> Sm + Sv is also established in the third embodiment. That is, the circuit area of the information processing circuit 100 according to the third embodiment that solves the CG method is smaller than the circuit area of the information processing circuit 100 that solves the conventional CG method. ⁇ Flowchart>
  • FIG. 16 is a flowchart showing an outline of processing using the SOR method by the simultaneous linear equation arithmetic circuit 104 in the third embodiment.
  • the simultaneous linear equation arithmetic circuit 104 initializes the loop variable i with 1.
  • the simultaneous linear equation calculation circuit 104 performs an operation corresponding to a matrix vector product, an operation corresponding to a vector sum-of-products operation, and an operation corresponding to matrix preprocessing, thereby updating the solution vector.
  • a vector (residual) r is obtained.
  • the simultaneous linear equation arithmetic circuit 104 multiplies the update vector by the acceleration parameter and adds it to the solution vector by vector product-sum operation.
  • the simultaneous linear equation arithmetic circuit 104 performs convergence determination by determining the following equation (11) using the numerical solution x (i) of the i-th iteration. If the simultaneous linear equation calculation circuit 104 determines that the convergence has occurred (S213-YES), the process ends. On the other hand, when the simultaneous linear equation calculation circuit 104 determines that the convergence has not been achieved (S213-NO), the process proceeds to S214.
  • the simultaneous linear equation arithmetic circuit 104 which is an arithmetic circuit, solves the simultaneous linear equations using the SOR method, thereby achieving the same effect as in the first embodiment.
  • programming necessary for realizing the information processing circuit 100 is facilitated. (Embodiment 4)
  • LU decomposition the coefficient matrix A is decomposed into an upper triangular matrix L and a lower triangular matrix U.
  • FIG. 17 is a diagram illustrating an outline of a configuration example of the simultaneous linear equation arithmetic circuit 104 according to the fourth embodiment.
  • the simultaneous linear equation calculation circuit 104 shown in FIG. 17 has a circuit configuration for realizing processing (described later, FIG. 18) using LU decomposition by the simultaneous linear equation calculation circuit 104. That is, the arithmetic unit 112 of the simultaneous linear equation arithmetic circuit 104 includes a scalar vector product arithmetic unit 223 and a vector product arithmetic unit for performing processing for decomposing the coefficient matrix A into an upper triangular matrix L and a lower triangular matrix U. 224 and a matrix sum operation unit 225.
  • the formula (8): 2 ⁇ Sm> Sm + Sv is also established in the fourth embodiment. That is, the circuit area of the information processing circuit 100 according to the fourth embodiment that solves the CG method is smaller than the circuit area of the simultaneous linear equation arithmetic circuit 104 that solves the conventional CG method. ⁇ Flowchart>
  • FIG. 18 is a diagram showing an outline of processing using LU decomposition by the simultaneous linear equation arithmetic circuit 104 in the fourth embodiment.
  • the simultaneous linear equation arithmetic circuit 104 decomposes the coefficient matrix A into an upper triangular matrix L and a lower triangular matrix U by a known technique. At this time, the simultaneous linear equation calculation circuit 104 performs a scalar vector product calculation, a vector vector product calculation, and a matrix sum calculation.
  • the simultaneous linear equation arithmetic circuit 104 which is an arithmetic circuit, solves the simultaneous linear equations by LU decomposition, so that the coefficient matrix A is solved when it is a dense matrix. Make it easier to ask for. (Embodiment 5)
  • Formula (11): y f (x)
  • FIG. 19 is a diagram illustrating an outline of a configuration example of the information processing circuit 100 according to the fifth embodiment.
  • the information processing circuit 100 includes an input line 101, an output line 102, a notification line 103, a nonlinear equation calculation circuit 230, and a nonlinear equation verification circuit 231.
  • the input line 101 branches when entering the information processing circuit 100 and is connected to the nonlinear equation calculation circuit 230 and the nonlinear equation verification circuit 231.
  • the output line 102 connected to the non-linear equation arithmetic circuit 230 branches inside the information processing circuit 100, one is connected to the host system of the information processing circuit 100, and the other is connected to the non-linear equation checking circuit 231.
  • the nonlinear equation verification circuit 231 outputs an error determination from the notification line 103.
  • FIG. 20 is a diagram showing an outline of a configuration example of the nonlinear equation arithmetic circuit 230 according to the fifth embodiment.
  • FIG. 21 is a diagram illustrating an outline of a configuration example of the nonlinear equation verification circuit 231 according to the fifth embodiment.
  • An output line 102 for receiving the numerical solution x ′ of the nonlinear equation (y f (x)) output from the circuit 230, and a notification line 103 for the nonlinear equation verification circuit 231 to notify the host system of the error determination result.
  • Bus 110 nonlinear equation verification control unit 242, arithmetic unit 123, and arithmetic data holding unit 124.
  • the arithmetic unit 123 evaluates the non-linear equation g (x (i + 1)) with the newly obtained solution vector, and the non-linear equation evaluation arithmetic unit 243 and the vector for performing an operation necessary for calculating the norm. It has a product-sum operation unit 116 and a vector inner product operation unit 117. ⁇ Flowchart>
  • FIG. 22 is a flowchart showing an outline of processing by the information processing circuit 100 according to the fifth embodiment.
  • the information processing circuit 100 receives parameters of the left side vector y of the nonlinear equation and the function f of the nonlinear equation from the IDAT of the input line 101.
  • the nonlinear equation verification circuit 231 outputs the error determination result 193 to the upper system via the notification line 103.
  • FIG. 23 is a flowchart showing an outline of the processing (S233) by the nonlinear equation arithmetic circuit 230 in the fifth embodiment.
  • the nonlinear equation calculation circuit 230 initializes the loop variable i with 1.
  • g (x) 0
  • the nonlinear equation (11) has a solution.
  • the nonlinear equation calculation circuit 230 generates a Jacobian matrix Jg obtained by partial differentiation of the function g (x) by x, and obtains an update vector r by solving the following equation (12).
  • the nonlinear equation calculation circuit 230 evaluates the nonlinear equation g (x (i + 1)) with the newly obtained solution vector, and calculates the norm.
  • the nonlinear equation calculation circuit 230 evaluates
  • FIG. 24 is a flowchart showing an outline of the processing (S131) by the nonlinear equation verification circuit 231 in the fifth embodiment.
  • the nonlinear equation verification circuit 231 compares the norm (
  • the nonlinear equation verification circuit 231 determines that the norm (
  • the nonlinear equation verification circuit 231 determines that there is no error in the arithmetic unit.
  • the nonlinear equation verification circuit 231 determines that an error exists in the arithmetic unit.
  • the circuit area of the nonlinear equation verification circuit 231 is smaller than the circuit area of the nonlinear equation calculation circuit 230. Therefore, the circuit area of the information processing circuit 100 of the fifth embodiment is smaller than the information processing circuit in which the nonlinear equation calculation circuit 230 is duplicated.
  • the nonlinear equation calculation circuit 230 that is an arithmetic circuit calculates a numerical solution by solving the nonlinear equation, and the nonlinear equation verification circuit 231 that is a verification circuit is restored.
  • the nonlinear equation verification circuit 231 that is a verification circuit is restored.
  • the sixth embodiment is different from the first embodiment in that the information processing circuit 100 according to the sixth embodiment includes a post-processing circuit 250.
  • the difference between the sixth embodiment of the present invention and the first embodiment will be described below mainly with reference to FIG.
  • the information processing circuit 100 includes an input line 101, an output line 102, a notification line 103, an output line 251, a simultaneous linear equation arithmetic circuit 104, a simultaneous linear equation verification circuit 105, And a post-processing circuit 250.
  • the post-processing circuit 250 is provided at a position immediately before (before) the output line 102 of the simultaneous linear equation arithmetic circuit 104 exits from the information processing circuit 100, and is connected to the simultaneous linear equation arithmetic circuit 104 via the output line 102.
  • the simultaneous linear equation calculation circuit 104 outputs an output signal (numerical solution x ′) to the post-processing circuit 250.
  • the post-processing circuit 250 performs post-processing that is an operation different from that of the simultaneous linear equation verification circuit 105 (operation that is impossible with the simultaneous linear equation verification circuit 105), and outputs the calculation result via the output line 251.
  • the post-processing circuit 250 performs a predetermined process on the output signal (numerical solution x ′) and then outputs a signal that is a calculation result via the output line 251.
  • the information processing circuit 100 may have a control line 252 as shown in FIG.
  • the simultaneous linear equation verification circuit 105 and the post-processing circuit 250 are connected via the control line 252.
  • the simultaneous linear equation verification circuit 105 outputs an output signal (numerical solution x ′) to the post-processing circuit 250 through the control line 252 until the verification of the simultaneous linear equations (or nonlinear equations) is completed.
  • the post-processing circuit 250 can latch the calculation result of the simultaneous linear equation calculation circuit 104 and output it simultaneously with the error determination result of the notification line 103.
  • the post-processing circuit 250 of the information processing circuit 100 may be provided between the simultaneous linear equation arithmetic circuit 104 and the simultaneous linear equation verification circuit 105.
  • the simultaneous linear equation calculation circuit 104 and the post-processing circuit 250 are connected via the output line 102.
  • the simultaneous linear equation arithmetic circuit 104 outputs an output signal (numerical solution x ′) to the post-processing circuit 250.
  • the post-processing circuit 250 can process the simultaneous linear equation checking circuit 105 based on the output numerical solution when the numerical solution output from the simultaneous linear equation calculating circuit 104 is not data that can be processed by the simultaneous linear equation checking circuit 105. And the generated data is output to the simultaneous linear equation verification circuit 105.
  • the simultaneous linear equation calculation circuit 104 outputs a numerical solution to the post-processing circuit 250, and the post-processing circuit 250 performs a different operation from the simultaneous linear equation verification circuit 105.
  • the operation result that can be processed by the simultaneous linear equation verification circuit 105 is output once by the output line 102, and the operation that cannot be processed by the simultaneous linear equation verification circuit 105 (the operation different from the simultaneous linear equation verification circuit 105) ) Can be processed by the post-processing circuit 250.
  • the simultaneous linear equation calculation circuit 104 outputs a numerical solution to the post-processing circuit 250.
  • the post-processing circuit 250 is output when the output numerical solution is not data that can be processed by the simultaneous linear equation checking circuit 105.
  • Based on the numerical solution data that can be processed by the simultaneous linear equation checking circuit 105 is generated, and the generated data is output to the simultaneous linear equation checking circuit 105, whereby an output signal (numerical solution) output by the simultaneous linear equation calculating circuit 104 is output. Even if x ′) is not data that can be processed by the simultaneous linear equation verification circuit 105, the simultaneous linear equation verification circuit 105 can perform verification. (Embodiment 7)
  • the difference between the seventh embodiment and the first embodiment is that the information processing circuit 100 according to the seventh embodiment has a post-processing circuit 250.
  • the difference between the seventh embodiment of the present invention and the first embodiment will be described below mainly with reference to FIG.
  • the pre-processing circuit 254 is provided immediately before (before) the input signal is input to the simultaneous linear equation checking circuit 105.
  • the preprocessing circuit 254 generates a preprocessed input signal by performing preprocessing on the input signal. Then, the preprocessing circuit 254 outputs the generated preprocessed input signal to the simultaneous linear equation checking circuit 105.
  • the simultaneous linear equation calculation circuit 104 outputs a numerical solution calculated based on the input signal to the simultaneous linear equation verification circuit 105.
  • the simultaneous linear equation verification circuit 105 restores the numerical solution output by the simultaneous linear equation arithmetic circuit 104 to the restored input signal, and checks whether there is an error based on the restored restored input signal and the received preprocessed input signal. Judgment and output the judgment result of the presence or absence of error.
  • a preprocessing circuit 254 may be provided immediately before (before) the input signal is input to the simultaneous linear equation calculation circuit 104.
  • the process for increasing the accuracy of the input data is executed by both the simultaneous linear equation arithmetic circuit 104 and the simultaneous linear equation verification circuit 105.
  • the information processing circuit 100 shown in FIG. 29 is provided with a preprocessing circuit 254 that performs processing for increasing the accuracy of input data before the simultaneous linear equation calculation circuit 104, so that the simultaneous linear equation verification circuit 105 performs preprocessing. Can be reduced, and the circuit amount of the simultaneous linear equation verification circuit 105 can be reduced.
  • the preprocessing circuit 254 performs preprocessing on the input signal to generate a preprocessed input signal, and outputs the generated preprocessed input signal to the simultaneous linear equation calculation circuit 104.
  • the simultaneous linear equation calculation circuit 104 outputs a numerical solution calculated based on the preprocessed input signal to the simultaneous linear equation verification circuit 105.
  • the simultaneous linear equation verification circuit 105 restores the numerical solution received via the simultaneous linear equation arithmetic circuit 104 to the restored input signal, and determines whether there is an error based on the restored restored input signal and the received input signal. , Outputs the determination result of the presence or absence of error.
  • the preprocessing circuit 254 performs preprocessing on the input signal, and outputs the preprocessed input signal after the preprocessing to the simultaneous linear equation checking circuit 105.
  • the simultaneous linear equation checking circuit 105 can perform the check.
  • the preprocessing circuit 254 performs preprocessing on the input signal that is input to generate a preprocessed input signal, and outputs the generated preprocessed input signal to the simultaneous linear equation arithmetic circuit 104.
  • the number of units that perform preprocessing can be reduced from the simultaneous linear equation checking circuit 105, and the circuit amount of the simultaneous linear equation checking circuit 105 can be reduced.
  • the present invention is not limited to the above-described embodiments, and includes various modifications.
  • the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to one having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. .
  • each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files that realize each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • SSD Solid State Drive

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Retry When Errors Occur (AREA)

Abstract

入力信号を受け取る演算回路と、前記入力信号を受け取る検算回路と、を有し、前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力し、前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力することで、回路を2重化するよりも少ない回路量でエラー検出が可能になる。

Description

情報処理回路
 本発明は、情報処理回路に関する。
 近年、半導体のビット内情報が反転するシングルイベントアップセットの問題が顕在化している。これは半導体製造技術の進歩にともなうプロセスルールの微細化により、半導体の臨界電荷量が減少しているためである。臨界電荷量とはデータの反転を引き起こすために必要な電荷量であり、例えば高エネルギーの中性子放射線が半導体に衝突し反応することで臨界電荷量を上回る。臨界電荷量を上回るとデータ(ビット内情報)が反転し、シングルイベントアップセットが生じる。産業応用を目的とする組込システムには高い信頼性が求められており、演算回路上に発生するシングルイベントアップセットの影響を低減するための技術開発が必要となる。特開平5-308399号公報(特許文献1)には、同一の回路を2つ並べて並列に動作させ、その出力を比較することで回路上に発生したエラーを検出する技術が開示されている。
特開平5-308399号公報
 特許文献1に開示されている技術では、エラー検出により故障を未然に防ぐことができ、システムの信頼性が向上する。しかしながら、特許文献1に開示されている技術では、回路を2重化することで2倍の回路量が必要となり、ハードウェアの実装コストが大きくなるという問題点あった。本発明の目的は、回路を2重化するよりも少ない回路量でエラー検出が可能な情報処理回路を提供することである。
 本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
 本発明の一実施の形態の情報処理回路は、入力信号を受け取る演算回路と、前記入力信号を受け取る検算回路とを有する。また、前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力する。また、前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する。
 本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
 本発明の代表的な実施の形態によれば、回路を2重化するよりも少ない回路量でエラー検出が可能な情報処理回路を実現できる。
実施の形態1における情報処理回路の構成例の概要を示す図である。 実施の形態1における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態1における連立一次方程式検算回路の構成例の概要を示す図である。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路の動作を示す状態遷移図である。 実施の形態1における連立一次方程式検算回路の動作を示す状態遷移図である。 実施の形態1における情報処理回路による処理の概要を示すフローチャートである。 実施の形態1における連立一次方程式演算回路による処理の概要を示すフローチャートである。 実施の形態1における連立一次方程式検算回路による処理の概要を示すフローチャートである。 実施の形態2における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態2における立一次方程式演算回路によるCG法を用いた処理の概要を示すフローチャートである。 実施の形態3における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態3における連立一次方程式演算回路によるSOR法を用いた処理の概要を示すフローチャートである。 実施の形態4における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態4における連立一次方程式演算回路によるLU分解を用いた処理の概要を示す図である。 実施の形態5における情報処理回路の構成例の概要を示す図である。 実施の形態5における非線形方程式演算回路の構成例の概要を示す図である。 実施の形態5における非線形方程式検算回路の構成例の概要を示す図である。 実施の形態5における情報処理回路による処理の概要を示すフローチャートである。 実施の形態5における非線形方程式演算回路による処理の概要を示すフローチャートである。 実施の形態5における非線形方程式検算回路による処理の概要を示すフローチャートである。 実施の形態6における情報処理回路の構成例の概要を示す図である。 実施の形態6における情報処理回路の構成例の概要を示す図である。 実施の形態6における情報処理回路の構成例の概要を示す図である。 実施の形態7における情報処理回路の構成例の概要を示す図である。 実施の形態7における情報処理回路の構成例の概要を示す図である。
(実施の形態1)
 以下、本発明の実施の形態1を、図1~図12を用いて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
 <全体構成>
 図1は、実施の形態1における情報処理回路100の構成例の概要を示す図である。図1に示されるように、情報処理回路100は、入力線101と、出力線102と、通知線103と、連立一次方程式演算回路104と、連立一次方程式検算回路105とを有する。
 入力線101は、クロックを入力するためのCLKと、リセット信号を入力するためのRSTと、演算開始信号を入力するためのIVLDと、入力信号を入力するためのIDATとからなる。
 入力線101は、情報処理回路100に入ると分岐し、連立一次方程式演算回路104と連立一次方程式検算回路105とに接続する。すなわち、入力線101のCLKとRSTとIVLDとIDATは、それぞれが情報処理回路100の内部で分岐し、連立一次方程式演算回路104と連立一次方程式検算回路105とに接続する。
 連立一次方程式演算回路104と接続する出力線102は、OVLDとODATとからなる。また、出力線102は、情報処理回路100の内部で分岐し、一方が情報処理回路100の上位システムに接続し、他方が連立一次方程式検算回路105に接続する。すなわち、出力線102のOVLDとODATとは、それぞれが情報処理回路100の内部で分岐し、一方が情報処理回路100の上位システムに接続し、他方が連立一次方程式検算回路105に接続する。
 連立一次方程式演算回路104は、入力線101を介して、入力信号である連立一次方程式の係数行列Aと右辺ベクトルbとが出力され、以下の連立一次方程式(式(1))を解くことで数値解x’を演算する。
式(1):Ax=b
 そして、連立一次方程式演算回路104は、入力信号に基づき演算した数値解x’を出力信号として出力線102(連立一次方程式検算回路105と接続する出力線)を介して連立一次方程式検算回路105へ出力するとともに、数値解x’を出力線102(上位システムと接続する出力線)を介して情報処理回路100の上位システムへ出力する。
 連立一次方程式検算回路105は、入力線101を介して入力信号である連立一次方程式の係数行列Aと右辺ベクトルbとを受け取る。また、連立一次方程式検算回路105は、出力線102を介して、連立一次方程式演算回路104によって演算された数値解x’を受け取る。連立一次方程式検算回路105は、これら入力データである、係数行列Aと右辺ベクトルbと数値解x’を用いて、式(2)に表される連立一次方程式の検算を行う。
式(2):||b-Ax’||<epsilon
 連立一次方程式検算回路105は、連立一次方程式演算回路104から受け取った数値解x’を復元後入力信号である右辺ベクトルb’へと復元し、復元した右辺ベクトルb’と、入力信号の右辺ベクトルbとに基づき連立一次方程式の検算を行うことで、エラーの有無を判定する。そして、連立一次方程式検算回路105は、エラーの有無の判定結果を示すエラー判定結果を、通知線103を介して上位システムへ出力する。例えば、連立一次方程式検算回路105は、係数行列Aと数値解x’との行列ベクトル積の演算を行うことで右辺ベクトルb’を復元し、入力信号として予め受け取っていた右辺ベクトルbと復元した右辺ベクトルb’とを比較する。また、連立一次方程式検算回路105は、演算で得られた右辺ベクトルb’と受け取った右辺ベクトルbを比較するために、それらの差分のノルム||b-b’||を演算し、演算したノルム||b-b’||と、許容誤差epsilonと比較する。
 ここで、許容誤差epsilonを導入した理由は、実数演算が丸め誤差の影響を受けるためである。連立一次方程式などの実数演算の数値解x’は真の解xとは異なり、また実数演算によって復元した右辺ベクトルb’は本来の右辺ベクトルbと異なる。したがって許容誤差epsilonを導入することで、数値解x’が真の解xの近傍に存在することを上述した式(2)により評価する。連立一次方程式検算回路105は、式(2)が成立する場合(||b-b’||が、許容誤差epsilon未満である場合)には数値解x’に誤りがなく、したがって連立一次方程式演算回路104にエラーが無いと判定する。逆に式(2)が成立しない場合(||b-b’||が、許容誤差epsilon以上である場合)には、連立一次方程式検算回路105は、数値解x’に誤りが存在し、したがって連立一次方程式演算回路104にエラーが有ると判定する。連立一次方程式検算回路105は、エラーの有無の判定結果を示すエラー判定結果を、通知線103を介して上位システムへ出力する。
 <詳細構成>
 図2は、実施の形態1における連立一次方程式演算回路104の構成例の概要を示す図である。
 図2に示されるように、連立一次方程式演算回路104は、連立一次方程式(Ax=b)の係数行列Aと右辺ベクトルbを入力するための入力線101と、数値解x’を出力するための出力線102と、バス110と、連立一次方程式演算制御ユニット111と、演算ユニット112と、演算データ保持ユニット113とを有する。
 入力線101と出力線102とは、バス110に接続されている。また、連立一次方程式演算制御ユニット111と演算ユニット112と演算データ保持ユニット113とはバス110を介して相互に接続されている。
 演算ユニット112は、数値解x’を求めるのに必要な処理(後述する、S142~S144、S147、S148の処理)を行うための、行列ベクトル積演算ユニット114とスカラーベクトル積演算ユニット115と複数のベクトルの積和演算ユニット116とベクトルの内積演算ユニット117とギブンス回転演算ユニット118と後退代入演算ユニット119とを有する。
 演算データ保持ユニット113は、GMRES法演算途中で発生する一次データを保存可能な記憶領域を持ち、連立一次方程式検算回路105の演算データ保持ユニット124と同等の大きさのキュー125を備える。なお、演算データ保持ユニット113が、連立一次方程式検算回路105の演算データ保持ユニット124と同等の大きさのキュー125を備えるのは、連立一次方程式演算回路104と連立一次方程式検算回路105のスループットが同等のためである。
 連立一次方程式演算制御ユニット111は、リセット信号や演算開始信号に応じて、後述する図8に示す状態遷移を行うほか、演算データ保持ユニット113に対して入力信号(係数行列Aと右辺ベクトルb)の一時的な保存を行う。
 また、連立一次方程式演算制御ユニット111は、連立一次方程式演算回路104による処理(後述、図11)に応じて、演算ユニット112の呼び出しを行い、演算の途中で生じたデータの演算データ保持ユニット113への保存や読み出しを行う。
 また、連立一次方程式演算制御ユニット111は、演算の結果として数値解x’が演算されると、演算終了信号とともに数値解x’を出力信号として出力線102から出力させる。
 図3は、実施の形態1における連立一次方程式検算回路105の構成例の概要を示す図である。
 図3に示されるように、連立一次方程式検算回路105は、連立一次方程式(Ax=b)の係数行列Aと右辺ベクトルbを入力するための入力線101と、連立一次方程式演算回路104が出力する連立一次方程式(Ax=b)の数値解x’を受け取るための出力線102と、連立一次方程式検算回路105がエラー判定結果を上位システムに通知するための通知線103と、バス110と、連立一次方程式検算制御ユニット120と、演算ユニット123と、演算データ保持ユニット124とを有する。
 入力線101と出力線102と通知線103とは、バス110に接続されている。また、連立一次方程式検算制御ユニット120と演算ユニット123と演算データ保持ユニット124とは、バス110を介して相互に接続されている。そして、連立一次方程式検算制御ユニット120と演算ユニット123と演算データ保持ユニット124とは、バス110を介して相互に演算データや入出力信号の通信を行う。
 演算ユニット123は、エラーの有無を判定するのに必要な処理(後述する、S151の処理)を行うための、行列ベクトル積演算ユニット114と、ベクトルの積和演算ユニット116と、ベクトルの内積演算ユニット117とを有する。
 演算データ保持ユニット124は、演算の中間データの記憶領域として機能し、入力信号(係数行列Aと右辺ベクトルb)を蓄積するためのキュー125を備える。
 連立一次方程式検算制御ユニット120は、比較ユニット121を含み、比較ユニット121には、許容誤差122が保存されている。
 連立一次方程式検算制御ユニット120は、リセット信号1や演算開始信号や演算終了信号に応じて、後述する図9に示す状態遷移を行うほか、演算データ保持ユニット124に対して入力信号や出力信号の一時的な保存と読み出しを行う。
 また、連立一次方程式検算制御ユニット120は、連立一次方程式検算回路105による処理(後述、図12)に応じて、演算ユニット123の呼び出しを行い、演算の中間で生じたデータの演算データ保持ユニット124への保存や読み出しを行う。
 また、連立一次方程式検算制御ユニット120は、比較結果から情報処理回路100中のエラーの有無を判定し、エラー判定結果を通知線103から出力する。
 以下、実施の形態1の情報処理回路100の回路面積について説明する。実施の形態1における連立一次方程式演算回路104の回路面積をSmとし、連立一次方程式検算回路105の回路面積をSvとすると、情報処理回路100の回路面積はSmにSvを加算した値(Sm+Sv)である。また、連立一次方程式演算回路104を2重化した場合の回路面積はSmの2倍(2×Sm)である。
 連立一次方程式演算回路104の構成要素である連立一次方程式演算制御ユニット111の回路面積をSm0、演算ユニット112の回路面積をSm1、演算データ保持ユニットの回路面積をSm2とすると次の式(3)が成り立つ。
式(3):Sm=Sm0+Sm1+Sm2
 また、連立一次方程式検算回路105の構成要素である連立一次方程式検算制御ユニットの回路面積をSv0、演算ユニット123の回路面積をSv1、演算データ保持ユニットの回路面積をSv2とすると次の式(4)が成り立つ。
式(4):Sv=Sv0+Sv1+Sv2
 連立一次方程式演算回路104による処理(後述、図11)と連立一次方程式検算回路105による処理(後述、図12)を比較することで、連立一次方程式検算制御ユニット120よりも連立一次方程式演算制御ユニット111のほうが複雑な演算制御を行っていることがわかる。したがって次の式(5)が成り立つ。
式(5):Sm0>Sv0
 また、連立一次方程式演算回路104の演算ユニット112は、連立一次方程式検算回路105の演算ユニット123に対して、複数のベクトルの内積演算ユニット117と、ギブンス回転演算ユニット118と、後退代入演算ユニット119とを有する。したがって次の式(6)が成り立つ。
式(6):Sm1>Sv1
 GMRES法では数値解x’を得るためにはk本のベクトルを保存する記憶領域が必要であることがわかっている。これに対して、検算に必要な記憶領域は1本のベクトルが保存できればよい。連立一次方程式演算回路と連立一次方程式検算回路のスループットが等しくキューの大きさが等しいことを考慮すれば、次の式(7)が成り立つ。
式(7):Sm2>Sv2
 そして、式(3)、式(4)、式(5)、式(6)、式(7)から、次の式(8)が成り立つ。
式(8):2×Sm>Sm+Sv
 したがって、本発明の情報処理回路100の回路面積は、連立一次方程式演算回路104を2重化した回路面積よりも小さい。
 なお、本発明の情報処理回路100は連立一次方程式の演算を行った後に連立一次方程式の検算を行うため、エラー検出のための時間が2重化と比較して多い。つまり、実行時間と回路面積にトレードオフの関係があり、その点に留意して設計する必要がある。
 <情報処理回路のタイミングチャート>
 図4、図5、図6、図7は実施の形態1における情報処理回路100のタイミングチャートであり、各信号の前後関係を示す図である。図4~図7に示されるように情報処理回路100には入力線101のCLKを介してクロック182が入力されており、このクロック182により上位システムと連立一次方程式演算回路104と連立一次方程式検算回路105は同期して動作する。
 図4は入力線101のRSTを介してリセット信号184が上位システムから入力された場合の、情報処理回路100の内部回路である連立一次方程式演算回路104と連立一次方程式検算回路105との初期化の様子を示すタイミングチャートである。リセット信号184を受け取ると、連立一次方程式演算回路104は、記憶領域の初期化185を行う。また、リセット信号184を受け取ると、連立一次方程式検算回路105は、内部の記憶領域の初期化186を行う。これによって、連立一次方程式演算回路104と連立一次方程式検算回路105とが演算可能な状態となる。
 図5は、入力線101のIVLDを介して演算開始信号187が上位システムから入力された場合の、連立一次方程式演算回路104が演算を開始する様子を示すタイミングチャートである。演算開始信号187を受け取ると、連立一次方程式演算回路104は、連立一次方程式の演算189を開始するとともに、入力線101のIDATを介して入力信号188すなわち、上述した連立一次方程式(Ax=b)の係数行列Aと右辺ベクトルbとを受け取る。
 連立一次方程式検算回路105は、演算開始信号187を受け取ることでアイドル状態183となるとともに、IDATを介して入力信号188(係数行列Aと右辺ベクトルb)を受け取る。
 図6は、出力線102のOVLDを介して演算終了信号190が連立一次方程式演算回路104から出力された場合の、連立一次方程式検算回路105が検算を開始する様子を示すタイミングチャートである。連立一次方程式演算回路104が連立一次方程式の演算189を終了することで、連立一次方程式演算回路104は、演算終了信号190を連立一次方程式検算回路105へ出力する。このとき、連立一次方程式検算回路105は、アイドル状態183を終了し、連立一次方程式の検算192を開始する。
 連立一次方程式演算回路104は、演算終了信号190を出力した後に出力線102のODATを介して出力信号191すなわち連立一次方程式の数値解x’を、連立一次方程式検算回路105へ出力する。連立一次方程式検算回路105は出力信号191(数値解x’)を受け取った後に連立一次方程式の検算192を行う。
 図7は、連立一次方程式検算回路105が連立一次方程式の検算192を終了した場合の、エラー判定結果193を出力する様子を示すタイミングチャートである。連立一次方程式検算回路105は連立一次方程式の検算192の結果からエラー判定結果193を上位システムへ出力する。上位システムはこのエラー判定結果193を受けて出力信号191を用いた処理を続行するか否かを決定する。なお、連立一次方程式検算回路105は、エラーがあると判定する場合のみ、エラーがあることを示すエラー判定結果193を上位システムへ出力するようにしても良い。
 <状態遷移>
 図8は、実施の形態1における情報処理回路100の動作を示す状態遷移図である。
 状態170は、情報処理回路100が動作を停止している、いわば初期状態である。
 状態171は、情報処理回路100の連立一次方程式演算回路104および連立一次方程式検算回路105が、それぞれの内部の記憶領域の初期化を行っている初期化状態である。
 状態172は、情報処理回路100が、上位システムからの演算開始信号187および入力信号188(係数行列Aと右辺ベクトルb)の入力を待っているアイドル状態である。
 状態173は、情報処理回路100の連立一次方程式演算回路104が、演算189を行っている演算中状態である。
 状態174は、情報処理回路100の連立一次方程式検算回路105が、検算192を行っている検算中状態である。
 状態175は、上位システムが連立一次方程式検算回路105からエラーがあることを示すエラー判定結果193を受け取ったため、情報処理回路100の動作を停止し代替システムによる処理を行っている、フェイルセーフ状態である。このとき情報処理回路100には、シングルイベントアップセットによるエラーが発生している。
 状態170(初期状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態170(初期状態)から状態171(初期化状態)に状態遷移280する。
 状態171(初期化状態)にて、情報処理回路100の連立一次方程式演算回路104および連立一次方程式検算回路105がそれぞれの記憶領域の初期化185を終了することで、自動で状態171(初期化状態)から状態172(アイドル状態)に状態遷移281する。
 状態172(アイドル状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態172(アイドル状態)から状態171(初期化状態)に状態遷移282する。
 状態172(アイドル状態)にて、情報処理回路100が上位システムから演算開始信号187および入力信号188である係数行列Aと右辺ベクトルbとを受け取ることで、状態172(アイドル状態)から状態173(演算中状態)に状態遷移283する。
 状態173(演算中状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態173(演算中状態)から状態171(初期化状態)に状態遷移284する。
 状態173(演算中状態)にて、情報処理回路100の連立一次方程式演算回路104が演算189を終了し、上位システムおよび連立一次方程式検算回路105に演算終了信号190と出力信号(数値解x’)191を出力することで、状態173(演算中状態)から状態174(検算中状態)に状態遷移285する。
 状態174(検算中状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態174(検算中状態)から状態171(初期化状態)に状態遷移286する。
 状態174(検算中状態)にて、情報処理回路100の連立一次方程式検算回路105が検算192を終了し、エラー無とのエラー判定結果193を上位システムに通知することで、自動的に状態174(検算中状態)から状態172(アイドル状態)に状態遷移287する。
 状態174(検算中状態)にて、情報処理回路100の連立一次方程式検算回路105が検算192を終了し、エラーがあることを示すエラー判定結果193を上位システムに通知したことで、状態174(検算中状態)から状態175(フェイルセーフ状態)に状態遷移288する。
 図9は、実施の形態1における連立一次方程式検算回路105の動作を示す状態遷移図である。
 状態160は、連立一次方程式検算回路105が動作せず停止している、いわば初期状態である。
 状態161は、連立一次方程式検算回路105が記憶領域の初期化185を行っている初期化状態である。
 状態162は、連立一次方程式検算回路105が上位システムからの演算開始信号187および入力信号188の入力を待っているアイドル状態(アイドル状態A)である。なお、状態162(アイドル状態A)では、情報処理回路100が有する連立一次方程式演算回路104および連立一次方程式検算回路105は、上位システムからの演算開始信号187および入力信号(係数行列Aと右辺ベクトルb)188の入力を待つ。
 状態163は、連立一次方程式検算回路105が連立一次方程式演算回路104からの演算終了信号190および出力信号191の入力を待っているアイドル状態(アイドル状態B)である。なお、状態163(アイドル状態B)では、情報処理回路100が有する連立一次方程式演算回路104が出力信号(数値解x’)191を演算しており、連立一次方程式検算回路105は連立一次方程式演算回路104からの演算終了信号190および出力信号191の入力を待っている。
 状態164は、連立一次方程式検算回路105が検算192を行い、上述した式(2)の判定を行っている検算中状態である。
 状態160(初期状態)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態160(初期状態)から状態161(初期化状態)に状態遷移290する。
 状態161(初期化状態)にて、連立一次方程式検算回路105が記憶領域の初期化185を終了することで、自動で状態161(初期化状態)から状態162(アイドル状態A)に状態遷移291する。
 状態162(アイドル状態A)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態162(アイドル状態A)から状態161(初期化状態)に状態遷移292する。
 状態162(アイドル状態A)にて、連立一次方程式検算回路105が上位システムから演算開始信号187および入力信号188である係数行列Aと右辺ベクトルbとを受け取ることで、状態162(アイドル状態A)から状態163(アイドル状態B)に状態遷移293する。このとき連立一次方程式検算回路105は入力信号188を記憶領域のキューに保存する。
 状態162(アイドル状態A)にて、連立一次方程式検算回路105が連立一次方程式演算回路104から演算終了信号190および出力信号191である数値解x’を受け取ることで、状態162(アイドル状態A)から状態164(検算中状態)に状態遷移294する。このとき連立一次方程式検算回路105は記憶領域のキューから入力信号188である係数行列Aと右辺ベクトルbとを取り出して演算に利用する。
 状態163(アイドル状態B)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態163(アイドル状態B)から状態161(初期化状態)に状態遷移295する。
 状態163(アイドル状態B)にて、連立一次方程式検算回路105が連立一次方程式演算回路104から演算終了信号190および出力信号191を受け取ることで、状態163(アイドル状態B)から状態164(検算中状態)に状態遷移296する。このとき連立一次方程式検算回路105は記憶領域のキューから入力信号188を読みだして演算に利用する。
 状態163(アイドル状態B)にて、連立一次方程式検算回路105が上位システムから演算開始信号187および入力信号188を受け取った場合、状態163(アイドル状態B)にとどまる(状態遷移297)。このとき連立一次方程式検算回路105は入力信号188を記憶領域のキューに保存する。
 状態164(検算中状態)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態164(検算中状態)から状態161(初期化状態)に状態遷移298する。
 状態164(検算中状態)にて、連立一次方程式検算回路105が検算192を終了しエラー判定結果193を上位システムに通知することで、自動的に状態164(検算中状態)から状態162(アイドル状態A)に状態遷移299する。
 <フローチャート>
 図10は、実施の形態1における情報処理回路100による処理の概要を示すフローチャートである。
 まず、S130にて、情報処理回路100が、上位システムから連立一次方程式の係数行列Aと右辺ベクトルbとを受け取る。そして、入力線101を介して情報処理回路100の連立一次方程式演算回路104と連立一次方程式検算回路105が、数行列Aと右辺ベクトルbとを受け取る。
 次に、S131にて、連立一次方程式演算回路104による処理(後述、図11)が実行される。そして、連立一次方程式演算回路104は、係数行列Aと右辺ベクトルbとに基づいて、連立一次方程式(Ax=b)の数値解x’を演算する。
 次に、S132にて、連立一次方程式演算回路104が、演算結果である、連立一次方程式(Ax=b)の数値解x’を、出力線102を介して、上位システムに出力するとともに連立一次方程式検算回路105に出力する。
 次に、S133にて、連立一次方程式検算回路105による処理(後述、図12)が実行される。
 次に、S134にて、連立一次方程式検算回路105が、エラー判定結果193を、通知線103を介して上位システムに出力する。
 図11は、実施の形態1における連立一次方程式演算回路104による処理(S131)の概要を示すフローチャートである。実施の形態1では、連立一次方程式を解くためのアルゴリズムとして、GMRES法を用いる。GMRES法とは、行列ベクトル積を繰り返すことでKrylov部分空間の基底を拡張しながら、そのKrylov部分空間の中から連立一次方程式(Ax=b)の解を効率的に探索するアルゴリズムである。すなわち、図11に示される連立一次方程式演算回路104による処理は、GMRES法のアルゴリズムに基づくものである。
 まず、S140にて、連立一次方程式演算回路104は、適当な初期解x0からその残差r0=b-Ax0を計算し、1本目の基底ベクトルq0=r0/||r0||を生成する。なお、初期解x0には、ランダムな値が設定される。
 次に、S141にて、連立一次方程式演算回路104は、ループ変数iを1で初期化する。
 次に、S142にて、連立一次方程式演算回路104は、連立一次方程式の係数行列Aと(i-1)本目の基底ベクトルq(i-1)の行列ベクトル積v=Aq(i-1)を行うことでKrylov部分空間の基底を拡張する。
 次に、S143にて、連立一次方程式演算回路104は、ベクトルvとKrylov部分空間の正規直交基底{q0、…、q(i-1)}の正規直交化を行うことで、i本目の正規直交基底ベクトルqiを求める。この処理では、内積演算とベクトルの積和演算が必要となる。
 次に、S144にて、連立一次方程式演算回路104は、ギブンス回転によるヘッセンベルグ行列のQR分解を行う。
 次に、S145にて、連立一次方程式演算回路104は、最大反復回数kとループ変数iとを比較する。そして、連立一次方程式演算回路104が比較した結果、iがk未満であければ(i<k)ループを繰り返すためにステップ146に進む。一方、連立一次方程式演算回路104が比較した結果、iがk以上であれば(i≧k)ステップ147に進む。
 次に、S146にて、連立一次方程式演算回路104は、ループ変数iをインクリメント(i=i+1)する。S146の次は、S142へ戻る。
 S145にてiがk以上であると判定する場合、S147にて、連立一次方程式演算回路104は、生成した正規直交基底の一次結合で連立一次方程式(Ax=b)の数値解x’を求めるために、基底それぞれの係数{y0、…、yk}を求める。このために、連立一次方程式演算回路104は、ヘッセンベルグ行列をQR分解した上三角行列Rを係数行列とする、k次連立一次方程式を後退代入で求める。
 次に、S148にて、連立一次方程式演算回路104は、生成した正規直交基底とそれぞれの係数の和により連立一次方程式(Ax=b)の数値解x’を求める。このためには、連立一次方程式演算回路104は、ベクトルの積和演算をk回行う必要がある。
 図12は、実施の形態1における連立一次方程式検算回路105による処理(S133)の概要を示すフローチャートである。
 まず、S150にて、連立一次方程式検算回路105は、右辺ベクトルbのノルム||b||を演算する。ノルムにはユークリッドノルムを用い、連立一次方程式検算回路105は、ベクトルbとbの内積演算の演算結果の平方根をノルム||b||として保存する。また、連立一次方程式検算回路105は、連立一次方程式演算回路104が出力した数値解x’と連立一次方程式の真の解xの距離を、残差ノルム||r||により演算する。なお、連立一次方程式検算回路105は、残差(r=b-Ax)を行列ベクトル積とベクトル和の演算によって求める。
 次に、S151にて、連立一次方程式検算回路105の演算ユニット123は、相対誤差||r||/||b||をスカラー値の浮動小数点数の除算によって求め、相対誤差||r||/||b||と許容誤差epsilonとを比較する。情報処理回路100で用いられる浮動小数点数はIEEE754で定義される倍精度浮動小数点数であり、許容誤差epsilon=1.0e-8程度に設定する。相対誤差||r||/||b||が許容誤差epsilonを満足する場合(相対誤差が許容誤差未満である場合)は、ステップ152に進む。一方、相対誤差が許容誤差を逸脱する場合(相対誤差が許容誤差以上である場合)はステップ153に進む。
 相対誤差が許容誤差未満である場合、S152にて、連立一次方程式検算回路105は、演算器にエラーが存在しないと判定する。
 一方、相対誤差が許容誤差以上である場合、S153にて、連立一次方程式検算回路105は、演算器にエラーが存在すると判定する。
 <実施の形態1の効果>
 以上説明した実施の形態1における情報処理回路100によれば、検算回路である連立一次方程式検算回路105が、演算回路である連立一次方程式演算回路104が出力する数値解を復元後入力信号(右辺ベクトルb’)へ復元し、復元した復元後入力信号と受け取った入力信号(右辺ベクトルb)とに基づきエラーの有無を判定ことで、回路量を減らしても、エラー検出が可能になる。例えば、連立一次方程式演算回路104を二つ設けた場合と比較して、一方の連立一次方程式演算回路104から、複数のベクトルの内積演算ユニット117と、ギブンス回転演算ユニット118と、後退代入演算ユニット119とを除外してもエラー検出が可能になる。
(実施の形態2)
 連立一次方程式(Ax=b)はその係数行列Aの種類に応じて解法を適切に選択する必要がある。係数行列Aが密行列の場合は、解法として、行列を簡易な行列の積となるように分解することで解を求めやすくする直接法を用いる。また、係数行列Aが疎行列の場合は、解法として、行列ベクトル積を主とする関数を反復計算することで数値解x’を真の解xに近付ける反復法を用いる。
 反復法は、定常反復法と非定常反復法の2種類に大別される。非定常反復法はベクトル長がNの場合に、高々N回の反復で解に至る高速な手法として広く用いられている。また、係数行列Aが疎行列でかつ非対称の場合に用いられる非定常反復法がGMRES法であり、係数行列Aが疎行列でかつ対称正定値の場合に用いられる非定常反復法がCG法である。
 実施の形態1では、連立一次方程式演算回路104がGMRES法で連立一次方程式(Ax=b)の解を求めているのに対し、実施の形態2では、連立一次方程式(Ax=b)の解を求めるためのアルゴリズムとしてCG法を用いている点で異なる。以下、本発明の実施の形態2を実施の形態1と異なる点を主に図13、図14を用いて説明する。
 <詳細構成>
 図13は、実施の形態2における連立一次方程式演算回路104の構成例の概要を示す図である。
 図13に示される連立一次方程式演算回路104は、CG法を用いた処理(後述、図14)を実現する回路構成となっている。
 演算ユニット112は、CG法で必要となる演算を処理するために、行列ベクトル積演算ユニット114とベクトルの積和演算ユニット116とベクトルの内積演算ユニット117と不完全LU分解前処理ユニット206とを有する。
 なお、実施の形態1と同様に、実施の形態2においても上述した、式(8):2×Sm>Sm+Svが成立する。すなわち、従来のCG法を解く情報処理回路100の回路面積と比較しても、CG法を解く実施の形態2の情報処理回路100の回路面積の方が小さい。
 <フローチャート>
 図14は、実施の形態2における連立一次方程式演算回路104によるCG法を用いた処理の概要を示すフローチャートである。
 まず、S200にて、連立一次方程式演算回路104は、適当な初期解x0からその残差r0=b-Ax0を計算し、1本目の直交ベクトルを生成する。ここで、反復法における反復回数は、係数行列Aの固有値分布に依存することが知られており、固有値分布を改善することで反復回数が減少し、高速に連立一次方程式を解くことが可能である。したがって、一般的な反復法では行列を前処理する。行列を前処理する場合、連立一次方程式演算回路104は、次の式(9)と式(10)とを解く。
式(9):AMy=b
式(10):My=x
 行列AMの固有値が縮退することで反復回数が削減される。行列の前処理を行う場合、アルゴリズムの中でMz(i)=r(i)を解く必要がある。このステップでは、Mz0=r0を解く。
 次に、S201にて、連立一次方程式演算回路104は、ループ変数iを1で初期化する。
 次に、S202にて、連立一次方程式演算回路104は、係数行列Aと直交ベクトルrの行列ベクトル積の演算により勾配ベクトルpを生成し、Krylov部分空間を拡張する。
 次に、S203にて、連立一次方程式演算回路104は、ベクトルの内積演算とベクトルの積和演算により、直交基底ベクトルと解ベクトルを更新する。
 次に、S204にて、連立一次方程式演算回路104は、不完全LU分解によりMz(i)=r(i)を解くことで、係数行列Aの前処理を行う。
 次に、S205にて、連立一次方程式演算回路104は、ベクトルの内積演算とベクトルの積和演算により、勾配ベクトルを更新する。
 次に、S206にて、連立一次方程式演算回路104は、S204で求めた内積の値が許容誤差を下回っているかを確認することで収束判定を行う。内積の値に丸め誤差が蓄積されている場合は、i反復目の数値解x(i)を用いて次の式(11)を判定することで収束判定を行う。連立一次方程式演算回路104が、収束したと判定する場合(S206-YES)、処理を終了する。一方、連立一次方程式演算回路104が、収束していないと判定する場合(S206-NO)、S207へ進む。
式(11):||b-Ax(i)||/||b||<epsilon
 次に、S207にて、連立一次方程式演算回路104は、ループ変数iをインクリメント(i=i+1)する。S207の次は、S202へ戻る。
 <実施の形態2の効果>
 以上説明した実施の形態2における情報処理回路100によれば、演算回路である連立一次方程式演算回路104が、反復法を用いて連立一次方程式を解くことで、実施の形態1と同様の効果に加えてエラー検出されるまでの時間を短くできる。
 また、連立一次方程式演算回路104が、CG法を用いることで、実施の形態1と同様の効果に加えて係数行列Aが疎行列でかつ対称正定値の場合であっても、連立一次方程式を解きやすくなる。
(実施の形態3)
 実施の形態1では、連立一次方程式演算回路104がGMRES法で連立一次方程式(Ax=b)の解を求めているのに対し、実施の形態3では、連立一次方程式(Ax=b)の解を求めるアルゴリズムとしてSOR法を用いている点で異なる。SOR法は定常反復法の一つで、速度は非定常反復法に劣るものの、プログラミングが容易なことで知られている。以下、本発明の実施の形態3を実施の形態1と異なる点を主に図15、図16を用いて説明する。
 <詳細構成>
 図15は、実施の形態3における連立一次方程式演算回路104の構成例の概要を示す図である。図15に示される連立一次方程式演算回路104は、SOR法を用いた処理(後述、図16)を実現する回路構成となっている。すなわち、連立一次方程式演算回路104の演算ユニット112は、行列ベクトル積に相当する演算とベクトルの積和演算に相当する演算と行列の前処理に相当する演算を行うことで、解ベクトルの更新ベクトルrを求める行列前処理ユニット213を含む。
 なお、実施の形態1と同様に、実施の形態3においても式(8):2×Sm>Sm+Svが成立する。すなわち、従来のCG法を解く情報処理回路100の回路面積と比較して、CG法を解く実施の形態3の情報処理回路100の回路面積の方が小さい。
 <フローチャート>
 図16は、実施の形態3における連立一次方程式演算回路104によるSOR法を用いた処理の概要を示すフローチャートである。
 まず、S210にて、連立一次方程式演算回路104は、ループ変数iを1で初期化する。
 次に、S211にて、連立一次方程式演算回路104は、行列ベクトル積に相当する演算とベクトルの積和演算に相当する演算と行列の前処理に相当する演算を行うことで、解ベクトルの更新ベクトル(残差)rを求める。
 次に、S212にて、連立一次方程式演算回路104は、ベクトルの積和演算により、更新ベクトルに加速パラメータを乗算して解ベクトルに加算する。
 次に、S213にて、連立一次方程式演算回路104は、i反復目の数値解x(i)を用いて次の式(11)を判定することで収束判定を行う。連立一次方程式演算回路104が、収束した判定する場合(S213-YES)、処理を終了する。一方、連立一次方程式演算回路104が、収束していないと判定する場合(S213-NO)、S214へ進む。
式(11):||b-Ax(i)||/||b||<epsilon
 次に、S214にて、連立一次方程式演算回路104は、ループ変数iをインクリメント(i=i+1)する。S214の次は、S211へ戻る。
 <実施の形態3の効果>
 以上説明した実施の形態3における情報処理回路100によれば、演算回路である連立一次方程式演算回路104が、SOR法を用いて連立一次方程式を解くことで、実施の形態1と同様の効果に加えて、情報処理回路100を実現するのに必要なプログラミングが容易になる。
(実施の形態4)
 実施の形態1では、連立一次方程式演算回路104がGMRES法で連立一次方程式(Ax=b)の解を求めているのに対し、実施の形態4では、連立一次方程式演算回路104がLU分解により連立一次方程式(Ax=b)を解いている点で異なる。LU分解とは、係数行列Aを、上三角行列Lと下三角行列Uとに分解する。分解後にまずLy=bの簡単な連立一次方程式を前進代入で解き、次にUx=yの簡単な連立一次方程式を後退代入で解く。以下、本発明の実施の形態4を実施の形態1と異なる点を主に図17、図18を用いて説明する。
 <詳細構成>
 図17は、実施の形態4における連立一次方程式演算回路104の構成例の概要を示す図である。図17に示される連立一次方程式演算回路104は、連立一次方程式演算回路104によるLU分解を用いた処理(後述、図18)を実現するための回路構成となっている。すなわち、連立一次方程式演算回路104の演算ユニット112は、係数行列Aを、上三角行列Lと下三角行列Uとに分解する処理を行うための、スカラーベクトル積演算ユニット223と、ベクトル積演算ユニット224と行列和演算ユニット225とを含む。また、連立一次方程式演算回路104の演算ユニット112は、前進代入によりLy=bの簡単な連立一次方程式を解く前進代入演算ユニット226を含む。また、連立一次方程式演算回路104の演算ユニット112は、後退代入によりUx=yの簡単な連立一次方程式を解く後退代入演算ユニット119を含む。
 なお、実施の形態1と同様に、実施の形態4においても式(8):2×Sm>Sm+Svが成立する。すなわち、従来のCG法を解く連立一次方程式演算回路104の回路面積と比較して、CG法を解く実施の形態4の情報処理回路100の回路面積の方が小さい。
 <フローチャート>
 図18は、実施の形態4における連立一次方程式演算回路104によるLU分解を用いた処理の概要を示す図である。
 まず、S220にて、連立一次方程式演算回路104は、公知の技術により、係数行列Aを、上三角行列Lと下三角行列Uとに分解する。このとき、連立一次方程式演算回路104は、スカラーベクトル積の演算や、ベクトルベクトル積の演算や、行列和の演算を行う。
 次に、S221にて、連立一次方程式演算回路104は、前進代入によりLy=bの簡単な(上三角行列の)連立一次方程式を解く。
 次に、S222にて、連立一次方程式演算回路104は、後退代入によりUx=yの簡単な(下三角行列の)連立一次方程式を解く。
 <実施の形態4の効果>
 以上説明した実施の形態4における情報処理回路100によれば、演算回路である連立一次方程式演算回路104が、LU分解により連立一次方程式を解くことで、係数行列Aが密行列の場合にて解を求めやすくする。
(実施の形態5)
 実施の形態1では、情報処理回路100が線形方程式である連立一次方程式(Ax=b)を解いていたのに対し、実施の形態5では情報処理回路100が下記の式(11)に示す非線形方程式を解く点で異なる。
式(11):y=f(x)
 この非線形方程式である式(11)においては左辺ベクトルyと関数形fが既知であり情報処理回路100の入力となる。実施の形態5では、ニュートン法を用いて非線形方程式である式(11)を解くことで、解ベクトルxを求める。以下、本発明の実施の形態5を実施の形態1と異なる点を主に図19~図24を用いて説明する。
 <全体構成>
 図19は、実施の形態5における情報処理回路100の構成例の概要を示す図である。図19に示されるように、情報処理回路100は、入力線101と、出力線102と、通知線103と、非線形方程式演算回路230と、非線形方程式検算回路231とを有する。
 入力線101は、情報処理回路100に入ると分岐し、非線形方程式演算回路230と非線形方程式検算回路231とに接続する。
 非線形方程式演算回路230と接続する出力線102は、情報処理回路100の内部で分岐し、一方が情報処理回路100の上位システムに接続し、他方が非線形方程式検算回路231に接続する。
 非線形方程式検算回路231は、通知線103からエラー判定を出力する。
 非線形方程式である式(11):y=f(x)を解く情報処理回路100のタイミングチャートと状態遷移図は、連立一次方程式(Ax=b)を解く情報処理回路100と同様である。そして、上述した連立一次方程式演算回路104を非線形方程式演算回路230に置き換え、上述した連立一次方程式検算回路105を非線形方程式検算回路231に置き換えるのみで情報処理回路100が実現可能である。
 <詳細構成>
 図20は、実施の形態5における非線形方程式演算回路230の構成例の概要を示す図である。図20に示されるように、非線形方程式演算回路230は、非線形方程式(y=f(x))の左辺ベクトルyと非線形方程式の関数fのパラメータを入力するための入力線101と、非線形方程式演算回路230が出力する非線形方程式(y=f(x))の数値解x’を受け取るための出力線102と、バス110と、非線形方程式演算制御ユニット247と、演算ユニット112と、演算データ保持ユニット113を有する。
 演算ユニット112は、新たに導入した非線形方程式を評価する処理と、関数g(x)をxで偏微分したヤコビ行列Jgを生成し、後述する式(12)を解くことで更新ベクトルrを求める処理と、ベクトルの積和演算によりx(i+1)=x(i)-rの演算で解ベクトルを更新する処理と、新たに得た解ベクトルで非線形方程式g(x(i+1))を評価しノルムを演算する処理とを実現するための、非線形方程式評価演算ユニット243とベクトルの積和演算ユニット116とベクトルの内積演算ユニット117とヤコビ行列生成ユニット248と連立一次方程式演算ユニット249を有する。
 図21は、実施の形態5における非線形方程式検算回路231の構成例の概要を示す図である。図21に示されるように、非線形方程式検算回路231は、非線形方程式(y=f(x))の左辺ベクトルyと非線形方程式の関数fのパラメータを入力するための入力線101と、非線形方程式演算回路230が出力する非線形方程式(y=f(x))の数値解x’を受け取るための出力線102と、非線形方程式検算回路231がエラー判定結果を上位システムに通知するための通知線103と、バス110と、非線形方程式検算制御ユニット242と、演算ユニット123と、演算データ保持ユニット124とを有する。
 演算ユニット123は、新たに得た解ベクトルで非線形方程式g(x(i+1))を評価し、ノルムを演算するために必要な演算を行うための、非線形方程式評価演算ユニット243とベクトルの積和演算ユニット116とベクトルの内積演算ユニット117とを有する。
 <フローチャート>
 図22は、実施の形態5における情報処理回路100による処理の概要を示すフローチャートである。図22は、実施の形態5に示される処理では、ニュートン法を用いて非線形方程式である式(y=f(x))を解く処理の概要を示す。
 まず、S232にて、情報処理回路100は、入力線101のIDATから非線形方程式の左辺ベクトルyと非線形方程式の関数fとのパラメータを受け取る。
 次に、S233にて、非線形方程式演算回路230により処理(後述、図23)が実行される。
 次に、S234にて、非線形方程式演算回路230が、演算結果である、非線形方程式(y=f(x))の数値解x’を、出力線102を介して、上位システムに出力するとともに、非線形方程式検算回路231に出力する。
 次に、S235にて、非線形方程式検算回路231による処理(後述、図24)が実行される。
 次に、S236にて、非線形方程式検算回路231が、エラー判定結果193を、通知線103を介して上位システムに出力する。
 図23は、実施の形態5における非線形方程式演算回路230による処理(S233)の概要を示すフローチャートである。
 まず、S240にて、非線形方程式演算回路230は、ループ変数iを1で初期化する。
 次に、S241にて、非線形方程式演算回路230は、新たに導入した非線形方程式g(x(i))=y-f(x(i))を評価する。g(x)=0のとき非線形方程式(11)は解を持つ。
 次に、S242にて、非線形方程式演算回路230は、関数g(x)をxで偏微分したヤコビ行列Jgを生成し、次の式(12)を解くことで更新ベクトルrを求める。
g(x(i)) = Jgr … (12)
 次に、S243にて、非線形方程式演算回路230は、ベクトルの積和演算により、x(i+1)=x(i)-rの演算で解ベクトルを更新する。
 次に、S244にて、非線形方程式演算回路230は、新たに得た解ベクトルで非線形方程式g(x(i+1))を評価し、ノルムを演算する。
 次に、S245にて、非線形方程式演算回路230は、||g(x(i+1))||<epsilonを評価する。||g(x(i+1))||が許容誤差を満足すると判定する場合(S245-YES)処理を終了する。一方、非線形方程式演算回路230が、許容誤差を満足しないと判定する場合(S245-NO)、S246に進む。
 次に、S246にて、非線形方程式演算回路230は、ループ変数iをインクリメント(i=i+1)する。S246の次は、S241へ戻る。
 図24は、実施の形態5における非線形方程式検算回路231による処理(S131)の概要を示すフローチャートである。
 まず、S240にて、非線形方程式検算回路231は、非線形方程式演算回路230の数値解x’を受け取り、非線形方程式の評価演算とベクトルの積和演算により、g(x’)=y-f(x’)の演算を行う。次にそのノルムである||g(x’)||の評価をベクトルの内積演算により行う。
 次に、S241にて、非線形方程式検算回路231は、ノルム(||g(x’)||)を許容誤差epsilonと比較することで、ノルム(||g(x’)||)が許容誤差を満足するか否かを判定する。非線形方程式検算回路231が、ノルム(||g(x’)||)が許容誤差を満足する(ノルムが許容誤差未満である場合)と判定する場合(S241-YES)、S242へ進む。一方、非線形方程式検算回路231が、ノルム(||g(x’)||)が許容誤差を満足しない(ノルムが許容誤差以上である場合)と判定する場合(S241-NO)、S243へ進む。
 相対誤差が許容誤差未満である場合、S242にて、非線形方程式検算回路231は、演算器にエラーが存在しないと判定する。
 一方、相対誤差が許容誤差以上である場合、S243にて、非線形方程式検算回路231は、演算器にエラーが存在すると判定する。
 なお、実施の形態5においても、実施の形態1と同様にして、非線形方程式検算回路231の回路面積は非線形方程式演算回路230の回路面積よりも小さい。従って非線形方程式演算回路230を2重化した情報処理回路よりも、実施の形態5の情報処理回路100の回路面積の方が小さい。
 <実施の形態5の効果>
 以上説明した実施の形態5における情報処理回路100によれば、演算回路である非線形方程式演算回路230が非線形方程式を解くことで数値解を演算し、検算回路である非線形方程式検算回路231が復元した復元後入力信号と受け取った入力信号とに基づき非線形方程式の検算を行うことで、非線形方程式演算回路230を二つ設けた情報処理回路100よりも回路量を減らしてもエラー検出が可能になる。
(実施の形態6)
 実施の形態6が実施の形態1と異なる点は、実施の形態6の情報処理回路100が後処理回路250を有している点である。以下、本発明の実施の形態6を実施の形態1と異なる点を主に図25を用いて説明する。
 図25に示されるように、情報処理回路100は、入力線101と、出力線102と、通知線103と、出力線251と、連立一次方程式演算回路104と、連立一次方程式検算回路105と、後処理回路250とを有する。
 後処理回路250は、連立一次方程式演算回路104の出力線102が情報処理回路100から出る直前(手前)の位置に設けられ、出力線102を介して連立一次方程式演算回路104と接続される。
 連立一次方程式演算回路104は、出力信号(数値解x’)を後処理回路250に出力する。
 後処理回路250は、連立一次方程式検算回路105と異なる演算(連立一次方程式検算回路105では不可能な演算)である後処理を行い、演算結果を出力線251を介して出力する。例えば、後処理回路250は、出力信号(数値解x’)に所定の処理を加えてから出力線251を介して演算結果である信号を出力する。
 なお、図26に示されるように、情報処理回路100が、制御線252を有するようにしても良い。この場合、連立一次方程式検算回路105と後処理回路250とは、制御線252を介して接続される。また、連立一次方程式検算回路105は、連立一次方程式(または非線形方程式)の検算が終了するまで、出力信号(数値解x’)を、制御線252を介して後処理回路250へ出力する。これによって、例えば、後処理回路250が連立一次方程式演算回路104の演算結果をラッチし、通知線103のエラー判定結果と同時に出力可能になる。
 また、図27に示されるように、情報処理回路100の後処理回路250が連立一次方程式演算回路104と連立一次方程式検算回路105との間に設けられるようにしても良い。この場合、連立一次方程式演算回路104と後処理回路250とは、出力線102を介して接続される。
 連立一次方程式演算回路104は、出力信号(数値解x’)を後処理回路250へ出力する。
 後処理回路250は、連立一次方程式演算回路104から出力された数値解が連立一次方程式検算回路105で処理可能なデータでない場合に、出力された数値解を基づき連立一次方程式検算回路105で処理可能なデータを生成し、生成したデータを連立一次方程式検算回路105へ出力する。
 <実施の形態6の効果>
 以上説明した実施の形態6における情報処理回路100によれば、連立一次方程式演算回路104が数値解を後処理回路250へ出力し、後処理回路250が連立一次方程式検算回路105と異なる演算を行い、演算結果を出力することで、連立一次方程式検算回路105で処理可能な演算結果を出力線102でいったん出力し、連立一次方程式検算回路105で処理できない演算(連立一次方程式検算回路105と異なる演算)を後処理回路250で処理可能になる。
 また、連立一次方程式演算回路104は、数値解を後処理回路250へ出力し、後処理回路250は、出力された数値解が連立一次方程式検算回路105で処理可能なデータでない場合に、出力された数値解を基づき連立一次方程式検算回路105で処理可能なデータを生成し、生成したデータを連立一次方程式検算回路105へ出力することで、連立一次方程式演算回路104が出力する出力信号(数値解x’)が連立一次方程式検算回路105で処理可能なデータでない場合であっても、連立一次方程式検算回路105で検算可能になる。
(実施の形態7)
 実施の形態7が実施の形態1と異なる点は、実施の形態7の情報処理回路100が後処理回路250を有している点である。以下、本発明の実施の形態7を実施の形態1と異なる点を主に図28を用いて説明する。
 図28に示されるように、前処理回路254は、入力信号が連立一次方程式検算回路105に入力される直前(手前)に設けられる。前処理回路254は、入力された入力信号に対する前処理を行うことで、前処理後入力信号を生成する。そして、前処理回路254は、生成した前処理後入力信号を連立一次方程式検算回路105へ出力する。
 連立一次方程式演算回路104は、入力信号に基づき演算した数値解を連立一次方程式検算回路105へ出力する。
 連立一次方程式検算回路105は、連立一次方程式演算回路104が出力する数値解を復元後入力信号へ復元し、復元した復元後入力信号と、受け取った前処理後入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する。
 なお、図29に示されるように、入力信号が連立一次方程式演算回路104に入力される直前(手前)に前処理回路254が設けられるようにしても良い。
 ここで、連立一次方程式演算回路104が、入力線101を介して受け取る入力データを用いて連立一次方程式の演算するためには、入力データを高精度化させるための処理などが前処理回路で必要な場合がある。一方で、こうした入力データを高精度化させるための処理は連立一次方程式検算回路105では必要ない。
 例えば、実施の形態1では、入力データを高精度化させるための処理は、連立一次方程式演算回路104と連立一次方程式検算回路105の両方で実行されている。
 図29に示される情報処理回路100は、入力データを高精度化させるための処理をする前処理回路254を連立一次方程式演算回路104の手前に設けることで、連立一次方程式検算回路105から前処理を行うユニットを削減でき連立一次方程式検算回路105の回路量を減少できる。
 この場合、前処理回路254は、入力信号に対する前処理を行うことで、前処理後入力信号を生成し、生成した前処理後入力信号を連立一次方程式演算回路104へ出力する。
 連立一次方程式演算回路104は、前処理後入力信号に基づき演算した数値解を連立一次方程式検算回路105へ出力する。
 連立一次方程式検算回路105は、連立一次方程式演算回路104を介して受け取る数値解を復元後入力信号へ復元し、復元した復元後入力信号と、受け取った入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する。
 <実施の形態7の効果>
 以上説明した実施の形態7における情報処理回路100によれば、前処理回路254が入力信号に対する前処理を行い、前処理を行った後の前処理後入力信号を連立一次方程式検算回路105へ出力することで、入力データが、連立一次方程式検算回路105で処理可能なデータでない場合であっても、連立一次方程式検算回路105で検算可能になる。
 また、前処理回路254が、入力された入力信号に対する前処理を行うことで、前処理後入力信号を生成し、生成した前処理後入力信号を連立一次方程式演算回路104へ出力することで、連立一次方程式検算回路105から前処理を行うユニットを削減でき連立一次方程式検算回路105の回路量を減少できる。
 以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれている。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
100…情報処理回路、104…連立一次方程式演算回路、105…連立一次方程式検算回路、
230…非線形方程式演算回路、231…非線形方程式検算回路。

Claims (14)

  1.  入力信号を受け取る演算回路と、前記入力信号を受け取る検算回路と、を有し、
     前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力し、
     前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する、
     情報処理回路。
  2.  請求項1に記載の情報処理回路において、
     前記演算回路は、連立一次方程式を解くことで前記数値解を演算し、
     前記検算回路は、復元した前記復元後入力信号と受け取った前記入力信号とに基づき前記連立一次方程式の検算を行う、
     情報処理回路。
  3.  請求項2に記載の情報処理回路において、
     前記演算回路は、反復法を用いて前記連立一次方程式を解く、
     情報処理回路。
  4.  請求項3に記載の情報処理回路において、
     前記演算回路は、GMRES法を用いて前記連立一次方程式を解く、
     情報処理回路。
  5.  請求項3に記載の情報処理回路において、
     前記演算回路は、CG法を用いて前記連立一次方程式を解く、
     情報処理回路。
  6.  請求項3に記載の情報処理回路において、
     前記演算回路は、SOR法を用いて前記連立一次方程式を解く、
     情報処理回路。
  7.  請求項2に記載の情報処理回路において、
     前記演算回路は、直接法を用いて前記連立一次方程式を解く、
     情報処理回路。
  8.  請求項2に記載の情報処理回路において、
     前記演算回路は、LU分解を用いて前記連立一次方程式を解く、
     情報処理回路。
  9.  請求項1に記載の情報処理回路において、
     前記演算回路は、非線形方程式を解くことで前記数値解を演算し、
     前記検算回路は、復元した前記復元後入力信号と受け取った前記入力信号とに基づき前記非線形方程式の検算を行う、
     情報処理回路。
  10.  請求項9に記載の情報処理回路において、
     前記演算回路は、ニュートン法を用いて前記非線形方程式を解く、
     情報処理回路。
  11.  請求項1に記載の情報処理回路において、
     前記演算回路と接続される後処理回路をさらに有し、
     前記演算回路は、前記数値解を前記後処理回路へ出力し、
     前記後処理回路は、前記検算回路と異なる演算を行い、演算結果を出力する、
     情報処理回路。
  12.  請求項1に記載の情報処理回路において、
     前記演算回路と接続される後処理回路をさらに有し、
     前記演算回路は、前記数値解を前記後処理回路へ出力し、
     前記後処理回路は、出力された前記数値解が前記検算回路で処理可能なデータでない場合に、前記数値解に基づき前記検算回路で処理可能なデータを生成し、生成した前記データを前記検算回路へ出力する、
     情報処理回路。
  13.  入力信号を受け取る演算回路と、前記入力信号を受け取る前処理回路と、前記前処理回路および前記演算回路と接続される検算回路と、を有し、
     前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力し、
     前記前処理回路は、受け取った入力信号に対する前処理を行うことで、前処理後入力信号を生成し、生成した前処理後入力信号を前記検算回路へ出力し、
     前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と、受け取った前記前処理後入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する、
     情報処理回路。
  14.  入力信号を受け取る前処理回路と、前記入力信号を受け取る検算回路と、を有し、
     前記前処理回路は、前記入力信号に対する前処理を行い、前処理を行った後の前処理後入力信号を演算回路へ出力し、
     前記演算回路は、前記前処理後入力信号に基づき演算した数値解を前記検算回路へ出力し、
     前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と、受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する、
     情報処理回路。
PCT/JP2015/073429 2015-08-20 2015-08-20 情報処理回路 WO2017029766A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017535224A JP6550465B2 (ja) 2015-08-20 2015-08-20 情報処理回路
PCT/JP2015/073429 WO2017029766A1 (ja) 2015-08-20 2015-08-20 情報処理回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/073429 WO2017029766A1 (ja) 2015-08-20 2015-08-20 情報処理回路

Publications (1)

Publication Number Publication Date
WO2017029766A1 true WO2017029766A1 (ja) 2017-02-23

Family

ID=58051487

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/073429 WO2017029766A1 (ja) 2015-08-20 2015-08-20 情報処理回路

Country Status (2)

Country Link
JP (1) JP6550465B2 (ja)
WO (1) WO2017029766A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109626A (ja) * 2017-12-15 2019-07-04 株式会社富士通アドバンストエンジニアリング 疎行列ベクトル積演算装置及び疎行列ベクトル積演算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520348A (ja) * 1991-07-12 1993-01-29 Matsushita Electric Ind Co Ltd 並列演算装置
JPH0981610A (ja) * 1995-09-12 1997-03-28 Toshiba Corp シミュレーション方法及びその装置
JP2009266230A (ja) * 2008-04-25 2009-11-12 Intel Corp パラレル処理を利用した連立一次方程式を解くための装置、システム及び方法
JP2012521591A (ja) * 2009-03-24 2012-09-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 連立1次方程式を処理するための装置およびコンピュータ・プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3883856B2 (ja) * 2001-11-30 2007-02-21 日本信号株式会社 信号処理系の故障診断方法および装置
JP4576535B2 (ja) * 2006-04-03 2010-11-10 国立大学法人 筑波大学 収束求解アルゴリズム性能表示装置および収束求解アルゴリズム性能表示方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520348A (ja) * 1991-07-12 1993-01-29 Matsushita Electric Ind Co Ltd 並列演算装置
JPH0981610A (ja) * 1995-09-12 1997-03-28 Toshiba Corp シミュレーション方法及びその装置
JP2009266230A (ja) * 2008-04-25 2009-11-12 Intel Corp パラレル処理を利用した連立一次方程式を解くための装置、システム及び方法
JP2012521591A (ja) * 2009-03-24 2012-09-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 連立1次方程式を処理するための装置およびコンピュータ・プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIROSHI HIRAYAMA: "Double-double Type Quadruple Precision Arithmetic Library for C++ Languages and its Application", IPSJ SIG NOTES, HIGH PERFORMANCE COMPUTING (HPC), 2014-HPC-143, 24 February 2014 (2014-02-24), pages 1 - 7 *
TAKAO SAKURAI ET AL.: "Development and Evaluation of Sparse Matrix Solver with Numerical Policy Interface", INFORMATION PROCESSING SOCIETY OF JAPAN SYMPOSIUM, HIGH PERFORMANCE COMPUTING TO KEISAN KAGAKU SYMPOSIUM (HPCS, 19 January 2011 (2011-01-19), pages 109 - 117 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109626A (ja) * 2017-12-15 2019-07-04 株式会社富士通アドバンストエンジニアリング 疎行列ベクトル積演算装置及び疎行列ベクトル積演算方法

Also Published As

Publication number Publication date
JP6550465B2 (ja) 2019-07-24
JPWO2017029766A1 (ja) 2018-04-05

Similar Documents

Publication Publication Date Title
Zhao et al. FT-CNN: Algorithm-based fault tolerance for convolutional neural networks
Chen et al. Stochastic computational models for accurate reliability evaluation of logic circuits
Elliott et al. Quantifying the impact of single bit flips on floating point arithmetic
Drozd et al. Checkability of the digital components in safety-critical systems: problems and solutions
Du et al. Soft error resilient QR factorization for hybrid system with GPGPU
Wu et al. Fault tolerant matrix-matrix multiplication: correcting soft errors on-line
US20140195785A1 (en) Formal verification of a logic design
Fornasier et al. Anisotropic diffusion in consensus-based optimization on the sphere
Stoyanov et al. Numerical analysis of fixed point algorithms in the presence of hardware faults
Schöll et al. Efficient algorithm-based fault tolerance for sparse matrix operations
Castro-Gonzalez et al. Accurate solution of structured least squares problems via rank-revealing decompositions
Stempkovsky et al. CICADA: a new tool to design circuits with correction and detection abilities
WO2017029766A1 (ja) 情報処理回路
Shumsky Redundancy relations for fault diagnosis in nonlinear uncertain systems
Agullo et al. Interpolation-restart strategies for resilient eigensolvers
Schöll et al. Low-overhead fault-tolerance for the preconditioned conjugate gradient solver
Kadric et al. Energy reduction through differential reliability and lightweight checking
Efanov et al. Ways to set up a concurrent error detection system for logical circuits without memory
Aponte-Moreno et al. Ftxac: Leveraging the approximate computing paradigm in the design of fault-tolerant embedded systems to reduce overheads
Sargsyan et al. Fault resilient domain decomposition preconditioner for PDEs
Schöll et al. Efficient on-line fault-tolerance for the preconditioned conjugate gradient method
Hahanova Developing method of vector synthesis deductive logic for computer systems fault analysis
Siládi et al. Adapted parallel Quine-McCluskey algorithm using GPGPU
Devadze et al. Extraction of a computer-certified ODE solver
Schöll et al. Applying efficient fault tolerance to enable the preconditioned conjugate gradient solver on approximate computing hardware

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15901748

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017535224

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15901748

Country of ref document: EP

Kind code of ref document: A1