WO2017033337A1 - 情報処理方法及び装置 - Google Patents

情報処理方法及び装置 Download PDF

Info

Publication number
WO2017033337A1
WO2017033337A1 PCT/JP2015/074263 JP2015074263W WO2017033337A1 WO 2017033337 A1 WO2017033337 A1 WO 2017033337A1 JP 2015074263 W JP2015074263 W JP 2015074263W WO 2017033337 A1 WO2017033337 A1 WO 2017033337A1
Authority
WO
WIPO (PCT)
Prior art keywords
analog
circuit
processing
spin
data
Prior art date
Application number
PCT/JP2015/074263
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 PCT/JP2015/074263 priority Critical patent/WO2017033337A1/ja
Priority to JP2017536156A priority patent/JP6636529B2/ja
Publication of WO2017033337A1 publication Critical patent/WO2017033337A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the present invention relates to an analog computer that realizes a problem to be solved in an information processing apparatus as an apparatus having a structure corresponding thereto.
  • Emergence is the appearance of a property that is not just a simple sum of the properties of the part.
  • the behavior formed by local synaptic connections between neurons realizes some kind of information processing as a whole (for example, Patent Document 3).
  • Examples of emergent calculation models include genetic algorithms and swarm intelligence.
  • many calculation models based on local interactions can be said to be emergent.
  • the above-described analog computer has attracted attention again for realizing an emergent calculation model (for example, Patent Document 4).
  • Patent Document 5 describes a Ising model using the fact that a spin arrangement in a state with the minimum energy is regarded as a kind of optimization problem in a model that explains the behavior of a magnetic body by statistical physics called the Ising model.
  • This is a kind of analog computer in which a CMOS circuit having a similar structure is formed on a semiconductor substrate.
  • An analog computer is configured by arranging a number of elements corresponding to the components of a calculation model on a space (for example, on a semiconductor substrate when realized as a semiconductor element). For this reason, variations in the manufacture of the elements become a problem.
  • a neural network even if the elements simulate the same neuron, the characteristics differ from element to element due to variations in manufacturing.
  • the behavior is affected by individual differences in the input / output characteristics of the device. Therefore, a circuit that compensates for individual differences between elements has been added (for example, Patent Document 6).
  • one of information processing apparatuses executes a step of measuring and recording variation in characteristics of an analog computer in an information processing apparatus including one or more analog computers. It is an information processing apparatus characterized by having a function.
  • a numerical value storage memory that stores a numerical value to be processed or a result of the processing, a coefficient storage memory that stores a coefficient used for the processing, and at least a part of the processing using the numerical value and the coefficient
  • the information processing apparatus includes a characteristic data storage memory that stores characteristic data indicating characteristic variations of a plurality of analog processing circuits. This information processing apparatus stores problem data as numerical values or coefficients in a numerical value storage memory and a coefficient storage memory, and reads out the numerical values stored in the numerical value storage memory as solution data after one or more processes by the analog processing circuit.
  • the problem data before storing the problem data, the problem data is converted based on the characteristic data, and after the solution data is read, the solution data is converted based on the characteristic data.
  • a first numerical value storage memory a first coefficient storage memory, a first analog processing circuit, a second numerical value storage memory, and a second coefficient storage memory And a second analog processing circuit.
  • the second analog processing circuit performs processing using the numerical value stored in the first numerical value storage memory and the coefficient stored in the second coefficient storage memory, and the processing result is stored in the second numerical value storage memory.
  • Another example of the specific configuration of the present invention includes a processing device, a storage device, an input device, and an output device.
  • the input device receives the problem data, and stores the problem data received by the processing device in the storage device.
  • the processing device reads the problem data stored in the storage device, converts the read problem data based on the characteristic data, and stores it in the numerical value storage memory and coefficient storage memory of the calculation unit.
  • the processing device reads solution data from the numerical value storage memory after a plurality of processes by the analog processing circuit of the calculation unit, converts the solution data read based on the characteristic data, and outputs the solution data to the storage device or the output device.
  • Another example of the specific configuration of the present invention is to measure the characteristic variation of a plurality of analog processing circuits under the control of the processing device, and store the measurement result as characteristic data in the characteristic data storage memory.
  • the characteristic data storage memory may use a part of the above storage device.
  • a dedicated memory may be provided.
  • the position of the characteristic data storage memory in the device is not limited.
  • Another example of a specific configuration of the present invention includes an inspection circuit that inspects the processing contents of a plurality of analog processing circuits, and a digital processing circuit that digitally executes processing equivalent to the processing by the analog processing circuits. Then, the processing of the analog processing circuit is replaced with the digital processing circuit based on the inspection result of the inspection circuit.
  • the digital processing circuit may use a part of the above processing device.
  • a dedicated logic circuit may be provided. The position of the digital processing circuit within the device is not limited.
  • the inspection circuit As an example of the inspection by the inspection circuit, two analog values generated in the processing of the analog processing circuit are inspected, and when the difference between the analog values is smaller than the first threshold and larger than the second threshold, the analog There is one that replaces the processing of the processing circuit with the digital processing circuit.
  • the problem data is problem data for obtaining the spin arrangement of the Ising model or problem data for obtaining the state of the neurons of the neural network.
  • Another aspect of the present invention is a numerical value storage memory that stores a numerical value that is a processing target or a processing result, a coefficient storage memory that stores a coefficient used for processing, and at least a part of processing using the numerical value and the coefficient Is an information processing apparatus including a plurality of analog processing circuits that execute analog processing.
  • the information processing apparatus includes an inspection circuit that inspects the processing contents of the plurality of analog processing circuits, and a digital processing circuit that digitally executes processing equivalent to the processing by the analog processing circuit. Based on the result, the processing of the analog processing circuit is replaced with a digital processing circuit.
  • the inspection by the inspection circuit inspects the difference between two analog values (for example, voltage values) generated in the processing of the analog processing circuit, and the difference between the analog values is predetermined.
  • the processing of the analog processing circuit is replaced with the digital processing circuit.
  • the digital processing circuit a general-purpose microprocessor may be used, or a dedicated logic circuit may be used.
  • the method in an information processing method using an information processing apparatus including one or more analog computers, includes measuring a characteristic variation of the analog computer and recording it as characteristic variation data. Is an information processing method.
  • the analog computer obtains the spin arrangement of the Ising model, and the conversion of the input data inverts the sign of the interaction coefficient of the Ising model or the value of the external magnetic field coefficient.
  • the interpretation of the output data is the inversion of the spin value.
  • the analog computer has an inspection unit that performs the evaluation for each structural unit for evaluating the influence of the characteristic variation, and malfunctions by reading the inspection result from the inspection unit. Detect possible structural units.
  • a logic circuit included in the information processing apparatus temporarily substitutes the processing performed by the structural unit.
  • FIG. 3 is a block diagram for explaining an example of the configuration of unit components constituting the analog computer shown in FIG. 2. It is a model figure explaining an example of the calculation model which the analog computer shown in FIG. 2 simulates.
  • FIG. 5 is a model diagram for explaining a correspondence relationship between unit components shown in FIG. 3 and a calculation model shown in FIG. 4.
  • FIG. 4 is a circuit diagram illustrating an example of a configuration of a circuit that is used in the unit components of FIG. 3 and that causes manufacturing variations.
  • FIG. 3 is a block diagram explaining an example of a configuration of a circuit that is used in the unit components of FIG. 3 and that causes manufacturing variations.
  • FIG. 7 is a circuit diagram illustrating an example of a configuration of a circuit used in combination with the circuit of FIG. 6. It is a time chart explaining an example of the operation
  • 2 is a flowchart illustrating an example of operations performed by the information processing apparatus of FIG. 1 in order to realize information processing while avoiding manufacturing variations.
  • FIG. 2 is a conceptual diagram illustrating an example of data recorded with characteristic variations held by the information processing apparatus of FIG. 1.
  • 2 is a flowchart for explaining an example of an operation performed by the information processing apparatus of FIG. 1 in order to realize measurement of characteristic variation.
  • FIG. 3 is a model diagram for explaining an example of data input to the analog computer of FIG. 2 in order to realize measurement of characteristic variation.
  • FIG. 14 It is a block diagram explaining an example of a structure of the analog computer to which this invention is applied. It is a circuit diagram explaining an example of a structure of the test
  • inspection circuit shown in FIG. 14 is a flowchart illustrating an example of a procedure for the information processing apparatus of FIG. 1 to control the analog computer of FIG. It is a circuit diagram explaining another example of a structure of the test
  • notations such as “first”, “second”, and “third” are attached to identify the constituent elements, and do not necessarily limit the number or order.
  • a number for identifying a component is used for each context, and a number used in one context does not necessarily indicate the same configuration in another context. Further, it does not preclude that a component identified by a certain number also functions as a component identified by another number.
  • the information processing apparatus 100 includes an Ising model computer 200 (FIG. 2) having a structure similar to the Ising model.
  • the information processing apparatus 100 realizes information processing by avoiding manufacturing variations of MOSFET (Metal-Oxide-Semiconductor Field-Effect-Transistor) groups (FIG. 6) constituting the Ising model computer 200. .
  • MOSFET Metal-Oxide-Semiconductor Field-Effect-Transistor
  • the Ising model that the Ising model computer 200 is trying to simulate is briefly described.
  • the Ising model is a statistical mechanics model for explaining the behavior of magnetic materials.
  • the Ising model is defined by a spin that takes a binary value of + 1 / -1 (or 0/1, up / down), an interaction coefficient indicating the interaction between the spins, and an external magnetic field coefficient for each spin. .
  • the Ising model can calculate the energy at that time from a given spin arrangement, interaction coefficient, and external magnetic field coefficient.
  • the energy function of the Ising model is generally expressed by the following equation. Where ⁇ i and ⁇ j are the values of the i-th and j-th spins, J i and j are the interaction coefficients between the i-th and j-th spins, h i is the external magnetic field coefficient for the i-th spin, ⁇ I, j> represents a combination of two adjacent sites, and ⁇ represents a spin arrangement.
  • Calculating the ground state of the Ising model is an optimization problem for obtaining an array of spins that minimizes the energy function of the Ising model.
  • FIG. 1 is a diagram illustrating an example of the configuration of an information processing apparatus 100 that includes an Ising model computer 200 (details will be described later) and controls the Ising model computer 200 to perform information processing.
  • an Ising model computer 200 (details will be described later) and controls the Ising model computer 200 to perform information processing.
  • an accelerator configured with Ising model computers 200A and 200B is mounted on a personal computer that is generally used at present.
  • Ising model computers 200A and 200B they are simply referred to as reference numeral 200.
  • the information processing apparatus 100 has a central processing unit (CPU) 110, a temporary storage device (RAM) 120, and a fixed storage device (HDD) 160, and these are connected by a system bus 130.
  • a network interface controller (NIC) 140 is connected via the system bus 130, and the information processing apparatus 100 can communicate with other information processing apparatuses via the inter-device network 190.
  • the input / output controller 150 is connected to the system bus 130, and one or more Ising model computers (two Ising model computers 200A and 200B in the example of FIG. 1) are connected to the system bus 130.
  • the input / output controller 150 converts the protocol on the system bus 130 according to the interface of the Ising model computer 200.
  • Software for example, the control program 121 operating on the CPU 110 of the information processing apparatus 100 generally reads / writes to a specific address (so-called MMIO, MemoryeMapped I / O), and an input / output controller
  • the Ising model computer 200 can be controlled via 150.
  • the information processing apparatus 100 is typically considered to be a personal computer that is generally used at present. Therefore, the information processing apparatus 100 includes a display device such as a display and an input device such as a keyboard, and can be operated interactively by the user.
  • An analog computer such as the Ising model computer 200 is an arithmetic accelerator (accelerator) for a personal computer, and is added as a kind of peripheral device.
  • a graphics accelerator also referred to as GPU
  • PCI Express registered trademark
  • the Ising model computer 200 is also implemented in a similar form.
  • the Ising model computer 200 can be configured as, for example, one or more semiconductor integrated circuit devices (Ising chips).
  • the problem data 161 is stored in the HDD 160.
  • the problem data 161 may be input directly from the input device.
  • the problem data 161 is an Ising model that can be solved by the Ising model computer, and is stored on the HDD 160 as a list of interaction coefficients and external magnetic field coefficients that define the Ising model, for example. That is, the problem data 161 lists the interaction coefficients J i and j and the external magnetic field coefficients h i shown in Equation 1.
  • the control program 121 is a program executed by the CPU 110 and is a program for controlling the Ising model computer 200 based on the problem data 161 and the characteristic data 162.
  • the execution result of the control program 121 is an answer to the problem defined by the problem data 161 generated by the Ising model computer 200.
  • the characteristic measurement program 122 is a program executed by the CPU 110, and is a program for measuring manufacturing variations of the Ising model computer 200.
  • the characteristic measurement program 122 records the measurement result as characteristic data 162.
  • FIG. 2 is an example of a configuration diagram of the Ising model computer 200 of the present embodiment.
  • the Ising model computer 200 includes a spin array 210, an I / O driver 220, an I / O address decoder 230, an interaction address decoder 240, a random number generator 250, and a bit adjuster 251.
  • the Ising model computer in the present embodiment will be described assuming that it is implemented as a CMOS (Complementary Metal-Oxide-Semiconductor) integrated circuit that is widely used at present, but it can also be realized by other solid-state devices.
  • the spin array 210 is constituted by a semiconductor memory array. There is no limitation on the type of memory, but here, an example using SRAM (Static Random Access Memory) capable of high speed operation will be described.
  • the Ising model computer 200 can be driven by an SRAM compatible interface 222 for reading / writing the spin array 210.
  • the SRAM compatible interface includes an address bus 290, a data bus 291, an R / W control line 293, and an I / O clock 292.
  • the Ising model computer 200 may include another memory 270 such as a nonvolatile memory for control and the like.
  • the spin ⁇ i , the interaction coefficient J i , j and the external magnetic field coefficient h i of the Ising model are all expressed by information stored in the memory cells in the spin array 210. Reading / writing of these values to the memory cells of the spin array is performed by the I / O address decoder 230 and the I / O driver 220 via the SRAM compatible interface 222.
  • an address is given to the memory cell in the spin array 210. Further, the spin ⁇ i , the interaction coefficient J i , j , and the external magnetic field coefficient h i of the spin array 210 are associated with the address of the memory cell.
  • a technique for reading / writing information to / from a memory cell at an arbitrary address is the same as a known semiconductor memory control technique.
  • the address bus 290, the data bus 291 and the R / W control line 293 constituting the SRAM compatible interface operate in synchronization with a clock input to the I / O clock 292.
  • the interface does not have to be synchronous, and may be an asynchronous interface.
  • the Ising model computer 200 realizes an interaction between spins in the spin array 210 in order to perform a ground state search.
  • the interaction is to read the value of the memory cell of the spin array 210, calculate the local energy in the vicinity of the spin corresponding to the memory cell from the read value, and calculate the energy of the spin that decreases the energy.
  • This interaction is controlled from the outside by an interaction control interface. Specifically, an address for specifying a spin group to perform the interaction is input as an interaction address 280, and the clock input to the interaction clock 281 is used as a clock. Synchronize and interact. Internally, the interaction address decoder 240 generates a clock for updating a group of spins corresponding to the interaction address 280 in the spin array 210 from the interaction address 280 and the interaction clock 281.
  • the interaction is not necessarily realized by a clock synchronous circuit, and may be an asynchronous circuit.
  • the role of the interaction clock 281 is not an input of the clock but an enable signal that permits execution of the interaction.
  • the ground state search of the applied Ising model can be realized by energy minimization due to the interaction between spins, which will be described later, but this alone may lead to a local optimal solution. Since the interaction circuit 310 described below basically has only a movement in the direction of reducing the local energy, once it falls into the local optimum solution, it cannot escape from it and does not reach the global optimum solution. Therefore, in order to escape from the local optimal solution, a process that allows a transition that increases energy with a predetermined probability is introduced.
  • the spin value is inverted with a probability determined by the virtual temperature T.
  • the temperature T is obtained by comparing the ground state search process with physical annealing. At the initial stage of the ground state search, the temperature is set to a high temperature, a local search is performed while gradually decreasing the temperature, and cooling is finally performed until the temperature becomes zero.
  • a random number generator 250 and a random number generation clock 260 are used to invert the spin value with a predetermined probability.
  • the random number generator 250 generates a random number every clock of the random number generation clock 260.
  • the bit adjuster 251 adjusts the output bit from the random number generator 250 so as to invert the spin value with a high probability at the initial stage of the ground state search and to invert the spin value with a low probability at the final stage. .
  • 1 is large at the beginning of the ground state search, and 0 is at the end of the ground state search. Adjust the output to generate more.
  • the spin array 210 in the Ising model computer 200 corresponds to the Ising model and simulates it.
  • the spin array 210 includes, as a basic structural unit, a spin unit 300 (FIG. 3) that realizes the retention of one spin, the associated interaction coefficient, and the external magnetic field coefficient, and ground state search processing.
  • FIG. 3 is a block diagram showing an example of the configuration of unit components of the spin array 210.
  • FIG. 4 is an example of the Ising model, and the unit component in FIG. 3 simulates one spin unit.
  • FIG. 4 By arranging a plurality of spin units 300 shown in FIG. 3, an Ising model having a three-dimensional lattice topology as shown in FIG. 4 is formed.
  • the example of FIG. 4 is a three-dimensional lattice (18 spins in total) having a size of 3 (X-axis direction) ⁇ 3 (Y-axis direction) ⁇ 2 (Z-axis direction).
  • the definition of the coordinate axis is the X-axis in the right direction of the drawing, the Y-axis in the downward direction of the drawing, and the Z-axis in the depth direction of the drawing (the same applies to the following drawings).
  • This coordinate axis is only necessary for the convenience of description of the embodiment, and is not related to the invention.
  • a topology other than a three-dimensional lattice for example, a tree-like topology, it is expressed by the number of stages of the tree separately from the coordinate axes.
  • One spin unit 300 shown in FIG. 3 includes adjacent spins (for example, when there are five adjacent spins on the upper side, the lower side, the left side, the right side, and the depth side) ⁇ j , ⁇ k , ⁇ l , ⁇ m , ⁇
  • the value of n is input.
  • the spin unit 300 has J j, i , J k, i , J l, i , J m, i , which are the interaction coefficients with the adjacent spins. It has a memory cell that holds J n, i (an interaction coefficient with 5 adjacent spins). In the example of FIG. 3, the memory cell holding the interaction coefficient is placed on the input side, but can be placed on the output side.
  • the Ising model generally has an interaction expressed by an undirected graph.
  • J i, j ⁇ ⁇ i ⁇ ⁇ j exists as a term representing the interaction, and this indicates the interaction from the i-th spin to the j-th spin.
  • the general Ising model does not distinguish between the interaction from the i-th spin to the j-th spin and the interaction from the j-th spin to the i-th spin. That is, J i, j and J j, i are the same.
  • J i, j and J j, i are the same.
  • the Ising model computer 200 of this embodiment is extended to a directed graph, and the interaction from the i-th spin to the j-th spin and the interaction from the j-th spin to the i-th spin are made asymmetric. Is shown.
  • the interaction coefficients held by this spin unit are J j, i , J k, i , J l, i , J m, i 1 , J n, i are mutual reciprocals from adjacent j-th, k-th, l-th, m-th and n-th spins ⁇ j , ⁇ k , ⁇ l , ⁇ m , ⁇ n to i-th spin ⁇ i It determines the action.
  • an arrow (interaction) corresponding to an interaction coefficient included in the spin unit 300 changes from a spin outside the spin unit 300 shown in the figure to a spin inside the spin unit 300.
  • an arrow (interaction) corresponding to an interaction coefficient included in the spin unit 300 changes from a spin outside the spin unit 300 shown in the figure to a spin inside the spin unit 300.
  • the spin unit 300 holds the Ising model spin ⁇ i , interaction coefficients J j, i , J k, i , J l, i , J m, i , J n, i and external magnetic field coefficient h i.
  • a plurality of 1-bit memory cells are provided. This 1-bit memory cell is shown in FIG. 3 as SPIN holding spin ⁇ i , IS0 and IS1 holding external magnetic field coefficient h i , IU0, IU1, IL0, IL1, IR0, IR1, holding interaction coefficients. These are illustrated as ID0, ID1, IF0, and IF1.
  • IS0 and IS1, IU0 and IU1, IL0 and IL1, IR0 and IR1, ID0 and ID1, and IF0 and IF1 each play a role in one set, and therefore ISx, IUx, and ILx, respectively. , IRx, IDx, and IFx.
  • each memory cell included in the spin unit 300 a known SRAM memory cell can be used.
  • the memory cell has a data holding unit composed of two CMOS inverters. By controlling the gate of the pass gate transistor connected in series with the inverter with the word line and connecting the source / drain path to the bit line, data reading / writing to the data holding unit is realized.
  • the memory cell structure is not limited to this, and any structure that can store at least two values may be used.
  • other memories such as DRAM and flash memory can be used.
  • each memory cell is an SRAM memory cell that can store 1 bit.
  • multi-valued memory cells may be used.
  • the multi-valued memory cell one memory cell may be physically used, or a plurality of 1-bit memory cells may be used to store a plurality of bits.
  • the degree of freedom of the coefficient values that can be used increases.
  • the circuit scale and processing time increase. Therefore, an appropriate memory may be selected according to the type of problem to be solved and the application.
  • the spin unit 300 represents the i-th spin.
  • the memory cell SPIN is a memory cell for expressing the spin ⁇ i and holds the spin value.
  • the spin value is + 1 / ⁇ 1 (+1 is also expressed as “up” and ⁇ 1 is also expressed as “bottom”). In this specification, +1 corresponds to 1 and ⁇ 1 corresponds to 0, but the opposite may be possible.
  • FIG. 5 shows the correspondence between the memory cells of the spin unit 300 and the topology of the Ising model shown in FIG. ISx represents an external magnetic field coefficient.
  • IUx, ILx, IRx, IDx, and IFx each represent an interaction coefficient.
  • IUx is the upper spin (-1 in the Y axis direction)
  • ILx is the left spin (-1 in the X axis direction)
  • IRx is the right spin (+1 in the X axis direction)
  • IDx is the lower spin (Y axis).
  • IFx indicates an interaction coefficient with the spin (+1 or ⁇ 1 in the Z-axis direction) connected in the depth direction.
  • the Ising model when viewed from a certain spin, it has a coefficient of the influence of other spins on the own spin.
  • the coefficient of influence of the own spin on other spins belongs to each other spin. That is, the spin unit 300 is connected to a maximum of 5 spins.
  • One spin unit determines the spin value by interaction with five spins and the influence of a total of six external magnetic fields.
  • each of the memory cells ISx, IUx, ILx, IRx, IDx, and IFx is a combination of two memory cells whose end numbers are 0 and 1 (for example, IS0 and IS1 in the case of ISx). , + 1/0 / ⁇ 1.
  • + 1 / -1 is expressed by IS1
  • +1 is expressed when IS1 is 1
  • -1 is expressed when 0.
  • the spin unit 300 is driven, controlled, and read by the I / O address decoder 230 and the I / O driver 220, so that the memory cells in the spin unit 300 are compatible with the SRAM of the Ising model computer 200, as in a general SRAM. It can be read / written by the interface.
  • next state of the spin is determined so as to minimize the energy between the adjacent spins, which is a positive value when the product of the adjacent spins and the interaction coefficient and the external magnetic field coefficient are evaluated. Equivalent to judging which negative value is dominant.
  • the i-th spin sigma i as a spin ⁇ j, ⁇ k, ⁇ l , ⁇ m, the sigma n are adjacent, next state of the spin sigma i is determined as follows.
  • the external magnetic field coefficient may always be read as an interaction coefficient with a spin having a value of +1.
  • the local energy between the i-th spin and the adjacent spin is obtained by multiplying the above-described coefficient by the value of the i-th spin and further inverting the sign.
  • the local energy with respect to the j-th spin is -1 when the i-th spin is +1, and +1 when the i-th spin is -1. Therefore, the i-th spin is +1. It works in the direction to reduce the local energy here.
  • the interaction circuit 310 illustrated in the spin unit 300 of FIG. 3 shows an outline when a circuit for performing the above-described operation is expressed as a logic circuit.
  • XNOR exclusive OR
  • the next state of the spin that minimizes the energy when only the interaction is seen is (+1 is encoded as 1 and -1 is encoded as 0).
  • the interaction coefficient is only + 1 / ⁇ 1
  • the next state of the spin can be determined by determining which of the outputs is + 1 / ⁇ 1 by majority logic.
  • the value of the external magnetic field coefficient is simply a value to be input to the majority logic circuit 311 that determines the next state of the spin.
  • the output of the majority logic circuit 311 is input to the memory cell SPIN as the next state.
  • the random pulse train that is output in the bit adjustment period 251 is to randomly change the next state input to the memory cell SPIN according to the condition, and to prevent falling into a local solution during the calculation. Is.
  • the coefficient 0 is realized by not voting + 1 / ⁇ 1 as described above in the majority logic (represented by a switch in the interaction circuit 310). If the interaction circuit 310 is configured as a logic circuit, it is necessary to configure a majority logic circuit having a disable terminal corresponding to this switch corresponding to each input.
  • a circuit having an analog operation is a circuit that handles an electric signal that changes continuously.
  • the force that pulls the spin upward (+1) and the force that pulls the spin downward ( ⁇ 1) are expressed by the amount of current drawn, and the difference is amplified to determine the spin direction. That is, it can be said that the magnitude of the interaction between the spins is expressed in a similar manner by the flow rate of the current on the electronic circuit.
  • FIG. 6 is a circuit constituting the interaction circuit 310 based on an analog operation, in which a force that pulls the spin toward the +1 side is expressed as a current draw amount (FIG. 6A, CT side circuit), and ⁇ 1.
  • 6 is a circuit (referred to as a CB side circuit in FIG. 6B) that expresses the pulling force to the side as the amount of current drawn.
  • FIG. 7 is a diagram for explaining an example of the configuration of a circuit used in combination with the circuit of FIG. 6 in the interaction circuit 310 based on an analog operation.
  • FIG. 8 is a time chart for explaining an example of the operation realized by the circuits of FIGS.
  • the two circuits shown in FIG. 6 and the circuit of FIG. 7 that amplifies the output from these two circuits are operated according to the timing chart shown in FIG. 8, thereby realizing a function corresponding to the interaction circuit 310. I can do it.
  • a signal for supplying a value stored in each memory cell in FIG. 3 is indicated by a signal name with T added to the end of the name of the memory cell (for example, IS0).
  • the value 0/1 stored in is referred to as IS0T).
  • a signal obtained by inverting the signal is indicated by a signal name obtained by adding B to the end of the name of the memory cell (for example, a signal obtained by inverting IS0T is referred to as IS0B).
  • adjacent spin values are expressed as NUT (upper side), NLT (left side), NRT (right side), and NDT (lower side).
  • NFT there is an NFT in the depth direction, which is omitted due to the paper width of the drawing.
  • the circuit diagram of FIG. 6 it can be seen that the same configuration is repeated in the circuits related to NUT to NDT, but the portion related to NFT can be configured in the same manner.
  • the inverted value is expressed as NUB, NLB, NRB, NDB (there is NFB corresponding to NFT, but it is omitted in the figure).
  • CT is a line which makes a pair with CB which will be described later.
  • CT and CB are P-type MOSFETs driven by a clock signal CLKI and connected to the power supply voltage. When CLKI is LOW, the P-type MOSFET is turned on and CT and CB are precharged.
  • CT and CB are grounded to the ground by the N-type MOSFET driven by the clock signal CLKI at the bottom stage after passing through several N-type MOSFETs. That is, CT and CB are precharged when CLKI is LOW, and when CLKI is HIGH, the precharged charges are extracted to the ground through some of the N-type MOSFETs described above.
  • the number of N-type MOSFET groups in the path from the power supply voltage to the ground represents the force that pulls the spin to the +1 side in CT, and the spin in the CB represents ⁇ 1. Express the pulling force to the side.
  • the explanation will focus on the CT side that pulls the spin to the +1 side.
  • the external magnetic field coefficient is +1
  • the interaction coefficient regarding the interaction with the upper adjacent spin, the upper adjacent spin is +1 (NUT is 1) and the interaction coefficient is +1 (IU1T is 1) or the upper adjacent spin.
  • the basic idea of the circuit is the same as that on the CT side, except for the conditions for current flow. That is, the signal input to the gate of the N-type MOSFET is different.
  • FIG. 8 illustrates an operation realized by the circuits of FIGS. 6 and 7 as a timing chart.
  • the timing chart of FIG. 8 shows the voltage of the main signal lines of FIG. 6 and FIG. 7 in the interaction operation (the period during which this operation is performed is called an interaction period) performed by the circuits of FIG. 6 and FIG.
  • the time is shown on the axis and the time is shown on the horizontal axis.
  • the interaction period is divided into two phases, ie, a current period and a determination period.
  • CT and CB are precharged, and at the beginning of the current period, both signal levels are HIGH.
  • CLKI becomes HIGH
  • precharge is completed, and current flows from CT and CB to the ground through the N-type MOSFET group.
  • a voltage drop occurs in CT and CB in accordance with the force pulling to the +1 side (CT side) and the force pulling to the ⁇ 1 side (CB side).
  • CT side +1 side
  • CB side the force pulling to the ⁇ 1 side
  • the configuration examples of the circuits in FIGS. 6 to 8 are examples. For example, not limited to FIGS. 7 to 8, various known circuit configurations for measuring the voltage difference between CT and CB can be employed.
  • this state is referred to as an antagonistic state.
  • the antagonistic state there is no change in energy regardless of whether the spin direction is +1 or -1.
  • the spin direction is often randomly selected in the antagonistic state.
  • the previous spin value is often held in the sense of maintaining the current state.
  • the degree of voltage drop between CT and CB is different due to the above manufacturing variation problem, and one of them always has a lower voltage, that is, it always wins the majority. . Therefore, it can be said that the value of spin in the antagonistic state (hereinafter referred to as the antagonistic value) is determined by the manufacturing variation.
  • the problem of the antagonistic state is not limited to the examples shown in FIGS. 6 to 8, but can be said to be an essential problem for analog computers in particular. This is because even if the manufacturing variation as described above is suppressed as much as possible, in the antagonistic state, a minute variation appears as a phenomenon that the spin value is fixedly determined as either +1 or ⁇ 1 in the output result of the sense amplifier. is there.
  • Non-Patent Document 1 As manufacturing variation factors of transistors (mainly MOSFETs are used here), mainly dimensional errors in the manufacturing process, RDF (Random Doppant Fluctuation, see Non-Patent Document 1 for details, for example), and RTN (Random Brass Noise), For details, see Non-Patent Document 2, for example.
  • the dimensional error in the manufacturing process is a problem that the characteristics of the transistor differ due to an error in forming a geometric figure constituting a circuit on a semiconductor substrate by a technique such as photolithography. Error.
  • RDF is a random variation in the position and density of impurity atoms that occurs when doping impurities (Donor or Acceptor, generically Doppant) during semiconductor manufacturing, and this causes variations in the threshold voltage of the transistor. Variations due to RDF are determined at the time of manufacture, and then hardly change during the lifetime of the transistor. In addition, when the size of the transistor itself is large, the effect appears to be relatively small due to random variations in the position and density of the impurity atoms, and the effect appears to be large as miniaturization progresses. come. Among the miniaturization processes, especially for a transistor that needs to keep the threshold voltage variation low, measures such as increasing the gate length are taken to reduce the influence of RDF by increasing the gate area.
  • RTN is a phenomenon in which variations in threshold voltage occur dynamically when carriers are trapped and released by an insulating film (such as an oxide film) at the gate of a transistor.
  • an insulating film such as an oxide film
  • RTN phenomena with various time constants are combined and observed as threshold voltage variations.
  • the time constant is considered to be determined by some factor at the time of manufacture. However, since the time constant is extremely short to long, it becomes a factor that makes screening during manufacture difficult. Differences from RDF include the fact that RTN has a stronger degree of influence with miniaturization than RDF and that the threshold voltage is dynamically changed.
  • the Ising model computer 300 shown in the present embodiment is manufactured by a process of a generation of about 65 nm, a static influence that is estimated to be caused by a dimensional error or RDF.
  • the dynamic variation considered to be the influence of RTN has not yet been realized.
  • the present inventors measure the characteristics of each individual in advance, and modify the problem that is input to each individual based on the measurement result, thereby adapting to the characteristic variations of the elements that constitute each individual. Devised.
  • the characteristics of each individual need only be measured once, it is possible to measure at the time of shipment from the factory and to provide the individual corresponding to the information to the customer.
  • the handling of the characteristic variation in the present embodiment is realized by the control program 121 and the characteristic measurement program 122 of the information processing apparatus 100 that controls the Ising model computer 200.
  • FIG. 9 is a flowchart showing the operation of the control program 121.
  • the operation based on this flowchart is as follows.
  • information processing by the control program 121 that is software is realized by using hardware resources of the information processing apparatus 100 such as the CPU 110, the RAM 120, and the HDD 160.
  • the CPU 110 performs overall control and calculation, and also controls read / write to the RAM 120 and HDD 160. These are the same in other flowcharts described below.
  • Step 901 This flowchart is a procedure for solving the Ising model by the Ising model computer 200. Prior to the execution of this flowchart, it is assumed that the user has prepared the problem data 161 on the HDD 160 by inputting it via an input device.
  • the information processing apparatus 100 includes a plurality of Ising model computers 200A and 200B. However, the CPU 110 selects an Ising model computer that allows the user to solve the problem data 161, or the CPU 110 appropriately selects in step 901. Shall.
  • the Ising model computer 200 refers to the Ising model computer selected in step 901.
  • Step 902 It is checked whether or not the characteristic data 162 corresponding to the Ising model computer 200 included in the information processing apparatus 100 exists on the HDD 160. If not, the characteristic data 162 is generated in step 903. If it exists, step 903 is not executed and the processing transitions to step 904. Details of the characteristic data 162 will be described later.
  • Step 903 and Step 904 The characteristic measurement program 162 is executed to generate characteristic data 162 corresponding to the Ising model computers 200A and 200B. Details of the characteristic measurement program 162 will be described later.
  • Step 905 Based on the characteristic data 162, the problem data 161 is converted so as to avoid characteristic variation. Details of the conversion performed in this step will be described later.
  • the converted problem data is referred to as post-conversion problem data.
  • Step 906 The converted problem data is input to the Ising model computer 200. Specifically, the interaction coefficient and the external magnetic field coefficient constituting the post-conversion problem data are written into the memory cell group constituting the Ising model computer 200. This writing is realized by the input / output controller 150 controlling the SRAM compatible interface 222 of the Ising model computer 200. Therefore, in step 906, the CPU 110 controls the input / output controller 150 by means such as MMIO.
  • Step 907 The solution is instructed to the Ising model computer 200. Specifically, the interaction address 280, the interaction clock 281 and the random number generation clock 260 of the Ising model computer 200 are controlled. Since this control is also directly performed by the input / output controller 150, the CPU 110 controls the input / output controller 150 by means such as MMIO.
  • Step 908 The result obtained by the Ising model computer 200, that is, the spin array is read out.
  • the CPU 110 controls the input / output controller 150 by means such as MMIO.
  • Step 909 The spin array read in step 908 is converted to obtain a solution to the problem data 161 (referred to as a spin array after inverse conversion). Since the problem solved by the Ising model computer 200 is the converted problem data, the solution obtained in step 908 is the solution of the converted problem data. It is necessary to interpret this solution as a solution of the problem data 161 before conversion.
  • the spin array obtained by this interpretation is a spin array after inverse transformation. Details of the interpretation method will be described later.
  • Step 910 Present the spin array after inverse transformation to the user as a solution result.
  • the solution result may be stored in the HDD 160 of the information processing apparatus 100 or may be output to the outside via the output device as it is.
  • FIG. 10 shows an example of the configuration of the characteristic data 161.
  • the characteristic data 161 is a list showing the antagonistic value of each spin in this embodiment. Since the antagonistic value is different for each individual Ising model computer, the characteristic data 161 has an entry for each individual (individual information entries 1010 and 1020). For example, the characteristics of the Ising model computer 200A are stored in the individual information entry 1010, and the characteristics of the Ising model computer 200B are stored in the individual information entry 1020.
  • Each entry has a configuration such as a serial number portion 1011, a time stamp 1012, and an antagonistic value recording portion 1013, for example, in the example of the individual information entry 1010. Since the individual information entry 1010 corresponds to an individual of the Ising model computer, information for identifying the individual of the Ising model computer, that is, a serial number is included in the individual information entry, thereby associating the individual information entry 1010 with the individual. Further, according to the study by the present inventors, the characteristic of the antagonistic value is almost determined at the time of manufacture, but it cannot be said that there is no secular change. Therefore, the information constituting the individual information entry 1010 in the time stamp 1012 Stores the date and time of the measurement. The antagonistic value is recorded in the antagonistic value recording unit 1013 with the antagonistic value of each spin of the Ising model computer 200 together with the coordinates of each spin (in this example, the X coordinate, the Y coordinate, and the Z coordinate).
  • FIG. 11 shows the operation of the characteristic measurement program 162 for generating the characteristic data 161 as a flowchart. The operation based on this flowchart is as follows.
  • Step 1101 This flowchart is a procedure for measuring the antagonistic value of each spin of the Ising model computer 200.
  • the information processing apparatus 100 includes a plurality of Ising model computers 200A and 200B, but this procedure is executed for each Ising model computer (may be executed in parallel).
  • Step 1102 Create a problem (measurement model) for measuring the antagonistic value.
  • An example of a model for causing an antagonistic state is shown in FIG.
  • the model of FIG. 12 has +1 and ⁇ 1 interactions with spins at both ends (Y-axis direction + 1 and Z-axis direction + 1), respectively, in order to know the antagonistic value of a certain spin, and the spin values at both ends. Are each set to +1 to generate an antagonistic state.
  • this model when an interaction is performed once at a temperature of 0 (a state in which random spin inversion is not performed), the spin of interest shifts to +1 or ⁇ 1 depending on manufacturing variations.
  • the antagonistic value of one spin for example, as shown in FIG. 12, when one spin adjacent to each other in the Y direction and the Z direction is used, the other spins excluding those spins are By including the same interaction in one measurement model, it can be measured simultaneously.
  • Step 1103 The measurement model created in step 1102 is input to the Ising model computer 200.
  • the input method is the same as in step 906.
  • Step 1104 The Ising model computer 200 is instructed to execute a solution so as to execute an interaction for each of the spins to be measured in the measurement model.
  • the spin to be measured is set in an antagonistic state by the measurement model.
  • the temperature is 0. That is, the random spin inversion is suppressed by stopping the random number generation clock 260 or changing the setting of the random number generator 250 or the bit adjuster 251.
  • Step 1105 Read the spin arrangement from the Ising model computer 200. The method is similar to step 908.
  • Step 1106 Of the spin arrangement read in Step 1105, the value of the spin to be measured in the measurement model generated in Step 1102 is recorded in the characteristic data 161 as the antagonistic value of the spin.
  • Step 1107 It is determined whether all spin antagonistic values have been measured. If measurement of all the spins is not completed, a measurement model for measuring the remaining spins is generated, and the process returns to step 1102 to perform measurement again. When the measurement of all spins is completed, the process proceeds to step 1108.
  • Step 1108 After completing the generation of the characteristic data 161, the characteristic measurement program 162 ends.
  • the characteristic data 161 is held in the RAM 120 or the HDD 160 so that the control program 121 can be used. Alternatively, it may be stored in a nonvolatile memory 270 such as a flash memory in the Ising model computer 200. If the Ising model computer 200 has its own characteristic data 161, the characteristic data 161 can be used even when the Ising model computer 200 is used in another information processing apparatus.
  • the Ising model (problem data) is converted based on the antagonistic value shown in the characteristic data 161 and the spin value (hereinafter referred to as desired value) that should be at the time of the antagonistic, and in combination with step 909, the spin at the time of the antagonistic Convert the model so that the value is the desired value.
  • the antagonistic value of the i-th spin is u i
  • the desired value of the i-th spin is e i .
  • the interaction coefficient J i, j is converted into J i, j ⁇ u i ⁇ u j ⁇ e i ⁇ e j .
  • the external magnetic field coefficient hi is converted to h i ⁇ u i ⁇ e i .
  • step 909 as a conversion paired with step 905, the spin value read in step 908 is converted into a solution of the model before conversion.
  • step 905 and step 909 the conversion performed in step 905 and step 909 is such that when the antagonistic value is determined by the manufacturing variation of the element, the value at the time of the antagonistic state can be converted into the desired value by post-processing in step 909.
  • step 905 it can be said that the sign of the coefficient is switched.
  • step 909 the desired value can be obtained by changing the sign of the spin that is the solution.
  • the desired value needs to be determined.
  • the desired value is +1 if the external magnetic field coefficient h i of each spin is positive, and the desired value is ⁇ 1 if it is negative. This is based on the idea of giving priority to the external magnetic field when an antagonistic state occurs as the sum of the interaction and the external magnetic field (or the idea that the external magnetic field is a minute amount larger than the interaction).
  • the value may be stored in the HDD 160 in association with the problem data 161, for example. Alternatively, it may be input separately from the problem data 161 and stored in the RAM 120 so that the control program 121 can be used.
  • the same problem is generally solved several times to obtain the best solution among them.
  • a desired value is determined at random, and an attempt is made to solve the problem multiple times.
  • random data may be stored in advance or may be generated each time.
  • the desired value is not determined in advance
  • the basic processing flow is the same as the example shown in FIG. 9, but the desired value is randomly changed during the processing 904 for converting the problem data.
  • the process 909 for converting the spin arrangement a conversion process corresponding to the problem data is performed.
  • the timing for changing the desired value is arbitrary, but if the change cycle is shortened, the effect becomes large, but the processing becomes complicated.
  • the desired value is randomly changed.
  • a method of changing the value alternately may be considered.
  • the Ising model computer 200 having a structure similar to the Ising model is shown as an example.
  • the present invention can be similarly applied to a neuro computer having a structure similar to a neural network.
  • the neural network receives the firing state of other neurons (for example, expressed by the numerical values 0 and 1), and multiplies the firing state of other neurons by the synapse connection coefficient between the neurons and whether or not the own neuron fires. The sum is calculated and the sum is passed through a threshold function and determined by its output.
  • this operation is implemented with an analog electronic circuit, it has a structure similar to the Ising model computer of this embodiment (if the ignition state is read as the spin value and the synapse coupling coefficient is interpreted as the interaction coefficient, the structure is almost the same as the Ising model. Become).
  • the configuration of the interaction circuit can basically use the configuration shown in FIG. 6, the firing state instead of the spin value NUT and the like, and the synapse instead of the interaction coefficient IU1T. What is necessary is just to input a coupling coefficient.
  • Example 2 considers the case where variations other than the antagonistic state are also considered in the Ising model computer 200.
  • the first embodiment an implementation corresponding to the problem that the spin value that appears when the interaction is antagonized falls due to variations in the manufacturing characteristics of the MOSFET in the interaction circuit 310 of the Ising model computer 200 falls in a fixed direction.
  • the method shown in the first embodiment is a method that corresponds to the control of the Ising model computer 200 and the information processing apparatus 100 including the same without adding an additional circuit for compensating for the interaction circuit 310. It was.
  • Example 2 discloses an example of a configuration that can cope with the case where the influence of manufacturing variation is further increased and the influence affects not only the antagonistic state but also other interactions.
  • the variation in the current (I DS ) between the drains of the MOSFET depends on the channel length (L) and the channel width (W), and is known to be proportional to 1 / ⁇ (W ⁇ L). . Therefore, in order to suppress the variation of 1 / n of the I DS must doubled n the (W / L). This indicates that the suppression of variation and miniaturization (high integration) are in a contradictory relationship.
  • the value ranges of the interaction coefficient and the external magnetic field coefficient were +1 to ⁇ 1.
  • the interaction and the external magnetic field are combined, and six types of force are applied to one spin (total of six types in the external magnetic field in addition to five types in the vertical and horizontal depth directions of the interaction).
  • the force directed to +1 and the force directed to -1 were half, the antagonistic state was reached, and the response to the manufacturing variation in this antagonistic state was Example 1.
  • the spin is directed in a direction where the force is larger.
  • the force directed to +1 and the force directed to -1 are not halved, it is naturally expected that the spin is directed in a direction where the force is larger.
  • the force is pulled by a force of 3 on the +1 side and 2 on the -1 side in the 5 directions of interaction.
  • the circuit since the current difference between the CT side circuit and the CB side circuit is 1/6, in this case, if a current of 1/6 or more is further passed as a result of the current variation of the MOSFET of the CB side circuit, the circuit does not operate correctly. Alternatively, there is a problem in that the amount of current flowing on the CT side is small due to variations and the amount on the CB side is large.
  • the interaction coefficient and the external magnetic field coefficient are +1 to ⁇ 1 and there are six types of forces including the interaction coefficient and the external magnetic field coefficient, the above problem does not occur.
  • the relationship between the aforementioned variation and the channel width / channel length shows how much area efficiency is reduced in a complicated design.
  • the coefficient width is +3 to -3, three times as many transistors are required for each of the CT side circuit and the CB side circuit as compared with the current design.
  • an antagonistic state occurs, there are 9 to 9 cases in which the coefficient + 3 / -3 is used in each of three directions.
  • the difference is reduced to 1/3. That is, the characteristic variation of the MOSFET must be reduced to 1/3, and for that purpose, the size of the MOSFET must be increased 9 times.
  • the number of MOSFETs must be increased in order to suppress the variation in characteristics of the MOSFETs, and the number of MOSFETs is increased in order to realize originally complex interactions.
  • the number of transistors in addition to the size 9 times to suppress the characteristic variation, the number of transistors is originally 3 times to realize complex interaction, so a total area of 27 times is required. . For this reason, it becomes a factor which remarkably inhibits scalability.
  • this embodiment shows an example corresponding to the case of obvious variations in I DS Besides the antagonistic state. For example, even though a 3 to 2 cases not antagonistic state, the I DS variations in MOSEFT the CT side or CB side, so that the side draw at second force than a side draw in the third force would be misidentified as strong An example is shown to deal with various cases.
  • FIG. 13 is a configuration diagram of an analog computer 1300 according to the embodiment of the present embodiment.
  • This analog computer 1300 is assumed to be incorporated and used in a part of an apparatus such as the information processing apparatus 100, similarly to the Ising model computer 200A of the first embodiment.
  • FIG. 13 is described as an analog computer that abstracts the Ising model computer 200 of the first embodiment.
  • the analog computer 1300 includes analog calculation units 1310A to 1310A (referred to simply as 1310 when it is not necessary to distinguish between A and E), an analog arithmetic circuit 1311, a storage element 1312, an inspection circuit 1313, and an inter-unit interface 1320. , And an inspection interface 1330.
  • the Ising model computer 200 corresponds to the analog computer 1300
  • the spin unit 300 corresponds to the analog calculation unit 1310.
  • the interaction circuit 310 corresponds to, for example, the analog arithmetic circuit 1311 whose specific examples are shown in FIGS.
  • a memory cell array in the spin unit 300 corresponds to the storage element 1312
  • a transmission line that transmits the spin value of the adjacent spin unit between the spin units corresponds to the inter-unit interface 1320.
  • the inter-unit interface 1320 and the inspection interface 1330 have a bus-like topology in FIG. 13, but this topology is arbitrary. In the case of the Ising model computer 200 of the first embodiment, it can be said that the inter-unit interface has a three-dimensional lattice-like topology.
  • the inspection circuit 1313 detects a case where the processing result of the analog arithmetic circuit 1311 may be erroneous, and outputs the result to the inspection interface 1330. There are two cases where the processing result of the analog arithmetic circuit 1311 is incorrect. The first is the already described antagonistic state. Second, although it is not in an antagonistic state (that is, there is no error if there is no manufacturing variation of the analog arithmetic circuit 1311), the pulling force on the +1 side and the pulling force on the -1 side are close, so depending on the manufacturing variation This is a case where there is a possibility of erroneous determination. It is possible to estimate to some extent how much manufacturing variation will occur from process generation and MOSFET design parameters.
  • a combination of a simple inspection circuit 1313 incorporated in the analog computer 1300 and the overall control of the information processing apparatus 100 including the analog computer 1300 can suppress an increase in the amount of the analog computer 1300.
  • FIG. 14 shows an example of the configuration of the inspection circuit 1313.
  • the inspection circuit 1313 detects whether or not the voltage difference between the CT side circuit and the CB side circuit is within a certain range in order to detect the above-described two cases at once. If it falls within a certain range, it is determined that there is a possibility of malfunction. As a specific example, when the voltage difference between the CT side circuit and the CB side circuit is smaller than a predetermined threshold, it is determined that there is a possibility of malfunction.
  • the range in which the voltage difference is allowed can be set by estimating how much manufacturing variation occurs.
  • the sense amplifier 14 has a basic structure of the latch type sense amplifier of FIG.
  • the sense amplifier functions to amplify the voltage difference between the two types of signals (CT and CB).
  • CT and CB the driving force of the MOSFET 1401 shown in FIG. 14
  • the voltage difference is gradually amplified and the gradient has a small voltage difference. It becomes moderate. By detecting this gentle gradient, it is detected whether the voltage difference is within an allowable range.
  • FIG. 15 is a time chart when the inspection circuit 1313 is operated.
  • the structure and operation of the inspection circuit 1313 will be described in detail with reference to FIG. Similar to the time chart of FIG. 8, current is drawn from the pre-charged CT / CB by the MOSFET group whose ON / OFF is determined by the adjacent spin value, interaction coefficient, and external magnetic field coefficient, causing a voltage drop in CT / CB. Let After that, the sense amplifier is operated by setting CLKIB to HIGH. However, since the driving force of the MOSFET 1401 is suppressed as described above, the slope of the voltage appearing at CLT and CLB becomes gentle.
  • the inspection circuit 1313 is realized by detecting that the slope is less than a constant.
  • a buffer having a threshold value and an exclusive OR (XOR) circuit are used in this embodiment.
  • the output OUTA from the XOR is observed at a timing when CLKIB is delayed by a minute time ⁇ t.
  • the possibility of malfunction can be inspected depending on whether the observed level of OUTA is HIGH or LOW.
  • an edge trigger type flip-flop (FF) may be driven with CLKIB delayed by ⁇ t.
  • the structure of the inspection circuit 1313 is similar to the sense amplifier of FIG. 7, it can also be used as a sense amplifier.
  • FIG. 14 is merely an example, and a circuit for measuring the voltage difference between CT and CB may be provided completely separate from the sense amplifier. In this case, various known circuit configurations for measuring voltage can be employed.
  • FIG. 16 is a flowchart showing the operation of the information processing apparatus 100 corresponding to the malfunction of the analog computer 1300 using the test circuit 1313.
  • Step 1601 In this flow, the processing performed in Step 907 in the control of the Ising model computer 200 (control of the analog computer 1300 in this embodiment) by the information processing apparatus 100 shown in FIG. A detailed flow of control using the circuit 1313 is shown.
  • Step 1602 Each of the analog calculation units 1310A to 1310B included in the analog computer 1300 is operated once to execute the calculation.
  • Step 1603 As a result of the calculation performed in Step 1602, the inspection circuit 1313 checks whether the possibility of malfunction of the analog arithmetic unit 1311 is detected. If the possibility of malfunction is not detected, the process proceeds to step 1607. If the possibility of malfunction is detected, the process proceeds to step 1604.
  • Step 1604 If there is a malfunction, the information obtained from the test circuit 1313 via the test interface 1330 is used to identify the analog calculation unit 1310 that may have malfunctioned, and the unit and the memory elements around the unit (For example, in the case of the Ising model computer 200 of the first embodiment, only the spin value of the adjacent spin needs to be read).
  • Step 1605 The calculation that should be performed by the analog calculation unit 1310 that has malfunctioned is performed on the CPU 110 of the information processing apparatus 100 by using the information obtained in Step 1604.
  • the CPU of the information processing apparatus 100 may be used as the alternative CPU, but a dedicated CPU or a logic circuit may be provided in or in association with the analog computer 1300.
  • a dedicated CPU or a logic circuit may be provided in or in association with the analog computer 1300.
  • the dedicated CPU may be programmable by software, or can be realized by hardware such as FPGA (Field Programmable Gate Array) and ASIC (Application Specific Integrated Circuit). Moreover, you may comprise with exclusive hardware.
  • a circuit corresponding to the interaction circuit 310 shown in FIG. 3 can be used as a digital arithmetic circuit.
  • the analog arithmetic circuit 1311 may be replaced with this digital arithmetic circuit.
  • the digital arithmetic circuit can be provided outside or inside the analog computer 1300. If one digital arithmetic circuit is provided for a plurality of analog arithmetic circuits 1311, an effect of reducing the circuit scale can be obtained.
  • Step 1606 The calculation result of step 1605 is written back to the storage device 1312 of the corresponding analog calculation unit 1310.
  • Step 1607 It is confirmed whether a predetermined number of operations to be performed in this flow is satisfied. If not, return to Step 1602 and repeat.
  • Step 1608 When the predetermined number of operations is satisfied, this flow is finished.
  • the CPU 110 of the information processing apparatus 100 temporarily plays the role of the analog arithmetic circuit 1311 only at that time.
  • the information processing apparatus 100 as a whole can perform processing without malfunction.
  • the CPU 110 serving as a substitute for the analog computer unit 1310 may be provided in the analog computer 1300.
  • FIG. 17 is a diagram illustrating another example of the configuration of the inspection circuit 1313.
  • the inspection circuit 1313 may be mounted like an inspection circuit 1700 illustrated in FIG.
  • an OUTA signal (output from the XOR) is taken into a flip-flop with clock signals with different timings generated by two types of delay circuits (first delay circuit and second delay circuit).
  • first delay circuit generates a clock signal whose clock rises at time t
  • second delay circuit generates a clock signal whose clock rises at time t + ⁇ t.
  • the magnitude of the voltage difference can be detected by appropriately setting the time t of the first delay circuit and the time t + ⁇ t of the second delay circuit.
  • the inspection circuit 1313 detects all when the voltage difference is small, but the inspection circuit 1700 determines that there is no problem when the voltage difference is smaller than the predetermined value and larger than the predetermined value. If there is a potential difference, it can be detected that there is a problem.
  • the embodiment is shown by way of an example of the Ising model computer 200 having a similar structure to the Ising model.
  • the present invention is similarly applied to a neuro computer having a similar structure to the neural network. This is possible as in the first embodiment.
  • the present invention is not limited to the above-described embodiment, and includes various modifications.
  • 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.
  • Information processing apparatus 200 Ising model computer 300: Spin unit 1300: Analog computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)

Abstract

 素子の製造ばらつきの影響を回避して情報処理を実現する手段を提供することを目的とすることを目的とする。 1個以上のアナログ計算機を含む情報処理装置において、アナログ計算機の特性ばらつきを計測して記録するステップを有することを特徴とする情報処理装置が開示される。

Description

情報処理方法及び装置
 本発明は情報処理装置において、求解すべき問題をそれに対応した構造の装置として実現したアナログ計算機に関するものである。
 現在主流の計算機は、トランジスタをスイッチ素子として捉えて構成したデジタル計算機である。一方で、トランジスタなどの素子が持つ特性をより直接的に利用して情報処理を実現するアナログ計算機がある。アナログ計算機の代表的なものに演算増幅器を用いて微分方程式を解くものがかつて盛んに用いられた(例えば、特許文献1)。しかし、アナログ電子回路の実装に起因する精度の制限から、デジタル計算機上での数値計算法に取って替わられた(例えば、特許文献2)。
 ところで、近年、ニューラルネットワークに代表される創発型の計算モデルが広く用いられている。創発とは部分の性質の単純な総和にとどまらない性質が全体として現れることである。ニューラルネットワークであればニューロン間の局所的なシナプス結合によって成される振舞いが、全体としてはある種の情報処理を実現している(例えば、特許文献3)。創発型の計算モデルとして、例えば他に遺伝的アルゴリズムや群知能があげられる。また、局所的な相互作用に基づく計算モデルであれば創発型と言えるものは多い。創発型の計算モデルの特徴として、一般的にそれを実現する個々の操作の精度が多少低くても、大局的には影響を及ぼさないことがあげられる。この特徴に基づいて、前述したアナログ計算機が創発型の計算モデルを実現する上で再度注目を浴びている(例えば、特許文献4)。また、特許文献5はイジングモデルと呼ばれる統計物理学で磁性体の振舞いを説明するモデルにおいて、エネルギー最小の状態のスピン配列を求めることが一種の最適化問題として捉えられることを用いて、イジングモデルと相似な構造のCMOS回路を半導体基板上の形成したアナログ計算機の一種である。
 アナログ計算機は計算モデルの構成要素と対応する素子を多数個空間上(例えば半導体素子として実現する場合には半導体基板上)に並べて構成する。そのため、素子の製造時のばらつきが問題となる。ニューラルネットワークを実現する場合、同じニューロンを模擬する素子であったとしても、製造時のばらつきによって素子毎に特性が異なる。アナログ計算機ではその振舞いが素子の入出力特性の個体差に影響を受ける。そこで、素子の個体差を補償するような回路を付加することが行われている(例えば、特許文献6)。
特開昭61-285583号 特開平2-226186号 特開2002-8032号 特開2007-66258号 PCT/JP2014/073226 特開平10-116309号
Stolk, P. A., Widdershoven, F. P. & Klaassen, D. B. M. Modeling statistical dopant fluctuations in MOS transistors. IEEE Trans. on Electron Devices 45, 1960-1971 (1998). Miki, H. et. al. Understanding short-term BTI behavior through comprehensive observation of gate-voltage dependence of RTN in highly scaled high-κ/metal-gate pFETs. In Symp. on VLSI Tech. 148-149 (IEEE, 2011).
 本発明では、アナログ計算機を備える情報処理装置において、アナログ計算機を構成する素子の特性ばらつきの影響を回避することのできる情報処理装置を提供することを目的とする。
 上記課題を解決するために、代表的な本発明の情報処理装置の一つは、1個以上のアナログ計算機を含む情報処理装置において、アナログ計算機の特性ばらつきを計測して記録するステップを実行する機能を有することを特徴とする情報処理装置である。
 本発明の他の一側面は、処理の対象もしくは処理の結果となる数値を格納する数値格納メモリと、処理に用いる係数を格納する係数格納メモリと、数値と係数を用いて処理の少なくとも一部をアナログ的に実行するアナログ処理回路と、を複数組備える情報処理装置である。この情報処理装置は、複数のアナログ処理回路の特性ばらつきを示す特性データを格納する特性データ格納メモリを備える。この情報処理装置は、問題データを数値または係数として数値格納メモリと係数格納メモリに格納し、アナログ処理回路による1または複数回の処理の後、数値格納メモリに格納された数値を解データとして読み出すように動作する。
 本発明の好ましい態様では、問題データを格納する前に、特性データに基づいて問題データを変換し、解データを読み出した後に、特性データに基づいて解データを変換する。
 本発明の具体的な構成の一例としては、第1の数値格納メモリと、第1の係数格納メモリと、第1のアナログ処理回路と、第2の数値格納メモリと、第2の係数格納メモリと、第2のアナログ処理回路と、を有する計算ユニットを備る。第2のアナログ処理回路が、第1の数値格納メモリに格納された数値と、第2の係数格納メモリに格納された係数を用いて処理を行い、第2の数値格納メモリに処理の結果を格納する。
 本発明の具体的な構成の他の一例とは、処理装置、記憶装置、入力装置、出力装置を備える。入力装置が問題データを受付け、処理装置が受付けた問題データを記憶装置に格納する。処理装置が記憶装置に格納されている問題データを読み出し、特性データに基づいて読み出した問題データを変換し、計算ユニットの数値格納メモリと係数格納メモリに格納する。処理装置は、計算ユニットのアナログ処理回路による複数回の処理の後、数値格納メモリから解データ読み出し、特性データに基づいて読み出した解データを変換し、記憶装置または出力装置に出力する。
 本発明の具体的な構成の他の一例は、処理装置の制御により、複数のアナログ処理回路の特性ばらつきを測定し、測定結果を特性データとして特性データ格納メモリに格納する。特性データ格納メモリは、上記の記憶装置の一部を利用してもよい。また、専用のメモリを設けてもよい。特性データ格納メモリの装置内の位置は限定されない。
 本発明の具体的な構成の他の一例は、複数のアナログ処理回路の処理内容を検査する検査回路と、アナログ処理回路による処理と同等の処理をデジタル的に実行するデジタル処理回路と、を有し、検査回路の検査結果に基づいて、アナログ処理回路の処理をデジタル処理回路に代替させる。デジタル処理回路は、上記の処理装置の一部を利用してもよい。また、専用の論理回路を設けてもよい。デジタル処理回路の装置内の位置は限定されない。
 検査回路による検査の例としては、アナログ処理回路の処理において生成される2つのアナログ値を検査して、アナログ値の差が第1の閾値より小さく、第2の閾値より大きい場合に、前記アナログ処理回路の処理を前記デジタル処理回路に代替させるものがある。
 本発明の具体的な適用例としては、問題データは、イジングモデルのスピン配列を求めるための問題データ、あるいは、ニューラルネットワークのニューロンの状態を求めるための問題データである。
 本発明の他の一側面は、処理の対象もしくは処理の結果となる数値を格納する数値格納メモリと、処理に用いる係数を格納する係数格納メモリと、数値と係数を用いて少なくとも一部の処理をアナログ的に実行するアナログ処理回路と、を複数組備える情報処理装置である。この情報処理装置は、記複数のアナログ処理回路の処理内容を検査する検査回路と、アナログ処理回路による処理と同等の処理をデジタル的に実行するデジタル処理回路と、を有し、検査回路の検査結果に基づいて、アナログ処理回路の処理をデジタル処理回路に代替させる。
 本発明の具体的な一例を示すと、検査回路による検査は、アナログ処理回路の処理において生成される2つのアナログ値(例えば電圧値)の差を検査するものであり、アナログ値の差が所定の条件下にある場合、アナログ処理回路の処理をデジタル処理回路に代替させる。デジタル処理回路としては、汎用のマイクロプロセッサを用いてもよいし、専用の論理回路を用いてもよい。
 本発明の他の一側面は、1個以上のアナログ計算機を含む情報処理装置を用いた情報処理方法において、アナログ計算機の特性ばらつきを計測して特性ばらつきデータとして記録するステップ、を有することを特徴とする情報処理方法である。
 本発明のさらに具体的な構成例では、特性ばらつきデータを参照して、アナログ計算機に入力するデータを変換するステップと、特性ばらつきデータを参照して、アナログ計算機から出力されたデータを解釈するステップとを有する。
 本発明のさらに具体的な構成例では、アナログ計算機はイジングモデルのスピン配列を求めるものであり、入力するデータの変換は、イジングモデルの相互作用係数乃至は外部磁場係数の値の符号を反転させるものであり、出力されたデータの解釈は、スピン値の反転である。
 本発明のさらに具体的な構成例では、アナログ計算機は特性ばらつきの影響を評価する構成単位毎に、その評価を行う検査部を有しており、検査部からの検査結果を読み出すことで、誤動作の可能性のある構成単位を検出する。
 本発明のさらに具体的な構成例では、誤動作の可能性のある構成単位を検出したときに、情報処理装置が有する論理回路が当該構成単位の担う処理を一時的に代替する。
 本発明によれば、素子の製造ばらつきがあるアナログ計算機を利用して、回路物量の大幅な増加なく、その影響を回避した情報処理を実現することが出来る。
本発明を適用した情報処理装置の構成の一例を説明するブロック図である。 本発明によって製造ばらつきを回避して情報処理を実現するアナログ計算機の構成の一例を説明するブロック図である。 図2に示すアナログ計算機を構成する単位構成要素の構成の一例を説明するブロック図である。 図2に示すアナログ計算機が模擬する計算モデルの一例を説明するモデル図である。 図3に示す単位構成要素と、図4に示す計算モデルとの対応関係を説明するモデル図である。 図3の単位構成要素中で用いられている回路であり、製造ばらつきが生じる回路の構成の一例を説明する回路図である。 図6の回路と合わせて用いられる回路の構成の一例を説明する回路図である。 図6及び図7の回路によって実現される動作の一例を説明するタイムチャートである。 製造ばらつきを回避して情報処理を実現するために、図1の情報処理装置が行う動作の一例を説明する流れ図である。 図1の情報処理装置が保持する特性ばらつきを記録したデータの一例を説明する概念図である。 特性ばらつきの計測を実現するために、図1の情報処理装置が行う動作の一例を説明する流れ図である。 特性ばらつきの計測を実現するために、図2のアナログ計算機に入力されるデータの一例を説明するモデル図である。 本発明を適用したアナログ計算機の構成の一例を説明するブロック図である。 図13に示したアナログ計算機の検査回路の構成の一例を説明する回路図である。 図14に示した検査回路の動作の一例を説明するタイムチャートである。 図1の情報処理装置が図13のアナログ計算機を制御する手順の一例を説明する流れ図である。 図13に示したアナログ計算機の検査回路の構成の他の一例を説明する回路図である。
 以下、実施例を図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
 以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
 本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
 図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
 本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
 実施例1では、本発明を適用した情報処理装置100(図1)を説明する。情報処理装置100はイジングモデルに相似した構造を持つイジングモデル計算機200(図2)を備える。情報処理装置100は本発明を適用することにより、イジングモデル計算機200を構成するMOSFET(Metal―Oxide―Semiconductor Field―Effect―Transistor)群(図6)の製造ばらつきを回避して情報処理を実現する。
 なお、本実施例を説明する上で、イジングモデル計算機200が模擬しようとしているイジングモデルについて簡単に説明する。
 イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/-1(ないしは,0/1,上/下)の2値をとるスピンと,スピン間の相互作用を示す相互作用係数,および,スピン毎にある外部磁場係数で定義される。
 イジングモデルは与えられたスピン配列,相互作用係数,および,外部磁場係数から,その時のエネルギーを計算することが出来る。イジングモデルのエネルギー関数は一般的に次式で表わされる。なお,σ,σはそれぞれi番目とj番目のスピンの値,Jはi番目とj番目のスピンの間の相互作用係数,hはi番目のスピンに対する外部磁場係数,<i,j>は隣接する2つのサイトの組合せ,σはスピンの配列を表わすものとする。
Figure JPOXMLDOC01-appb-M000001
 イジングモデルの基底状態を求めるというのは,イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。
 図1はイジングモデル計算機200(詳細は後述)を備え、イジングモデル計算機200を制御して情報処理を行う情報処理装置100の構成の一例を説明する図である。
 情報処理装置100の典型例としては、現在一般的に用いられているパーソナルコンピュータに、イジングモデル計算機200A、Bで構成されたアクセラレータを装着したものである。なお、2個のイジングモデル計算機200A、Bを特に区別する必要が無い時には、単に符号200として参照する。
 情報処理装置100は、中央処理装置(CPU)110、一時記憶装置(RAM)120、固定記憶装置(HDD)160、を有し、これらがシステムバス130で結合されている。また、システムバス130経由でネットワークインタフェースコントローラ(NIC)140が接続され、情報処理装置100は装置間ネットワーク190を経由して他の情報処理装置と通信を行うことが可能である。
 加えて、システムバス130に入出力コントローラ150が接続され、その先に1個ないしは複数個のイジングモデル計算機(図1の例では、2個のイジングモデル計算機200A、B)が接続される。
 入出力コントローラ150はシステムバス130上のプロトコルを、イジングモデル計算機200のインタフェースに合せて変換するものである。情報処理装置100のCPU110上で動作するソフトウェア(例えば制御プログラム121)は、一般的には特定のアドレスに対してリード/ライトを行うことで(いわゆるMMIO、Memory Mapped I/O)、入出力コントローラ150を経由して、イジングモデル計算機200を制御することが出来る。
 情報処理装置100は、典型的には現在一般的に用いられているパーソナルコンピュータのようなものが一実装形態として考えられる。よって、情報処理装置100はディスプレイなどの表示装置とキーボードなどの入力装置を備え、ユーザが対話的に操作することが可能なものである。そして、イジングモデル計算機200などのアナログ計算機は、パーソナルコンピュータに対する演算加速装置(アクセラレータ)であり、一種の周辺機器として付加される。例えば、現在のパーソナルコンピュータでは表示装置での描画処理を高速化するためのアクセラレータとしてグラフィックスアクセラレータ(GPUとも呼ばれる)をPCI Express(登録商標)などのインタフェースで接続する拡張ボードとして付加することが多いが、イジングモデル計算機200もこれに似た形態で実装される。イジングモデル計算機200は例えば、1つまたは複数の半導体集積回路装置(イジングチップ)として構成することができる。
 情報処理装置100でイジングモデル計算機200に問題を解かせようとする場合には、例えばHDD160に問題データ161を格納しておく。あるいは、問題データ161は入力装置から直接入力してもよい。問題データ161とは、イジングモデル計算機が求解可能なイジングモデルであり、例えばイジングモデルを定義する相互作用係数と外部磁場係数のリストとしてHDD160上に保持される。つまり、問題データ161は数1に示した相互作用係数Jと外部磁場係数hを列挙したものである。
 制御プログラム121はCPU110が実行するプログラムであり、問題データ161と特性データ162に基づいてイジングモデル計算機200を制御するプログラムである。制御プログラム121の実行結果はイジングモデル計算機200が生成した問題データ161で定義される問題に対する答えである。
 特性計測プログラム122はCPU110が実行するプログラムであり、イジングモデル計算機200の製造ばらつきを計測するプログラムである。特性計測プログラム122は計測結果を特性データ162として記録する。
 図2は、本実施例のイジングモデル計算機200の構成図の例である。イジングモデル計算機200はスピンアレイ210、I/Oドライバ220、I/Oアドレスデコーダ230、および、相互作用アドレスデコーダ240、乱数発生器250、ビット調整器251から構成される。
 本実施例でのイジングモデル計算機は、現在広く用いられているCMOS(Complementary Metal―Oxide―Semiconductor)集積回路として実装されることを想定して説明するが、他の固体素子でも実現可能である。本実施例では、スピンアレイ210は半導体メモリアレイで構成されている。メモリの種類は問わないが、ここでは高速動作可能なSRAM(Static Random Access Memory)を用いた例で説明する。イジングモデル計算機200は、スピンアレイ210にリード/ライトを行うための、SRAM互換インタフェース222によって駆動可能である。SRAM互換インタフェースは、アドレスバス290、データバス291、R/W制御線293、および、I/Oクロック292を含む。また、イジングモデル計算機200は、制御等のために不揮発メモリ等の他のメモリ270を備えていてもよい。
 イジングモデル計算機200では、イジングモデルのスピンσ、相互作用係数J、および、外部磁場係数hを、全てスピンアレイ210内のメモリセルに記憶する情報で表現する。これらの値のスピンアレイのメモリセルへのリード/ライトは、SRAM互換インタフェース222を介して、I/Oアドレスデコーダ230及びI/Oドライバ220で行う。
 基底状態を探索すべきイジングモデルをイジングモデル計算機200に設定するために、スピンアレイ210内のメモリセルにはアドレスが付与されている。また、スピンアレイ210のスピンσ、相互作用係数J、および、外部磁場係数hは、メモリセルのアドレスに対応付けられている。任意のアドレスのメモリセルに情報をリード/ライトする手法は、公知の半導体メモリの制御技術と同様である。
 なお、SRAM互換インタフェースを構成するアドレスバス290、データバス291、および、R/W制御線293は、I/Oクロック292に入力されるクロックに同期して動作する。但し、本発明においてインタフェースが同期式である必要性は無く、非同期式のインタフェースでも良い。
 また、イジングモデル計算機200は基底状態探索を行うために、スピンアレイ210の内部でスピン間の相互作用を実現する。ここで、相互作用とは、スピンアレイ210のメモリセルの値を読み出し、読み出した値から当該メモリセルに対応するスピン近傍での局所的なエネルギーを計算し、エネルギーが小さくなるような当該スピンの値を決定し、決定した当該スピンの値をメモリセルに書き込む一連の処理をいう。
 この相互作用を外部から制御するのが相互作用制御インタフェースであり、具体的には相互作用を行うスピン群を指定するアドレスを相互作用アドレス280で入力し、相互作用クロック281に入力されるクロックに同期して相互作用を行う。内部的には、相互作用アドレスデコーダ240が、相互作用アドレス280と相互作用クロック281から、スピンアレイ210内の相互作用アドレス280に対応する一群のスピンを更新するためのクロックを生成する。
 なお、相互作用は必ずしもクロック同期回路で実現される必要はなく、非同期回路であっても構わない。この場合、相互作用クロック281の役割はクロックの入力ではなく、相互作用の実行を許可するイネーブル信号であるものとする。
 後述するスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することが出来るが、これだけでは局所最適解に陥ってしまう可能性がある。後述の相互作用回路310では基本的に、局所的なエネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことが出来ず、大域最適解に到達しない。そのため、局所最適解から脱出するために、所定の確率でエネルギーを大きくする遷移を許容する処理を取り入れる。
 本実施例では、スピンの値を仮想的な温度Tで決まる確率で反転させることにした。ここで温度Tは基底状態探索の過程を物理的なアニーリングに例えたものである。基底状態探索の初期では高い温度とし、徐々に温度を下げながら局所的な探索を行い、最終的に温度がゼロとなる状態まで冷却していく。
 本実施例では、スピンの値を所定確率で反転させるために、乱数発生器250と乱数発生クロック260を用いる。乱数発生器250は乱数発生クロック260の1クロック毎に乱数を発生させる。ビット調整器251は、基底状態探索の初期では高い確率でスピンの値を反転させ、終期では低い確率でスピンの値を反転させるように、乱数発生器250からの出力ビットを調整するものである。具体的には、乱数発生器250の出力から所定ビット数を取り出し、多入力のAND回路またはOR回路で演算することにより、基底状態探索の初期では1が多く、基底状態探索の終期では0が多く発生するように出力を調整する。
 イジングモデル計算機200内のスピンアレイ210は、イジングモデルに対応し、これを模擬するものである。スピンアレイ210は、1個のスピンとそれに付随する相互作用係数、及び、外部磁場係数の保持と、基底状態探索処理を実現するスピンユニット300(図3)を基本構成単位としている。
 図3は、スピンアレイ210の単位構成要素の構成の一例を示すブロック図である。
 図4は、イジングモデルの一例であり、図3の単位構成要素が1つのスピンユニットを模擬する。
 図3に示すスピンユニット300を複数個並べることで、図4に示すような3次元格子状のトポロジを持つイジングモデルを構成する。図4の例は、3(X軸方向)×3(Y軸方向)×2(Z軸方向)の大きさの3次元格子(合計18スピン)である。
 座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、図面奥行き方向をZ軸としている(以下の図面でも同様)。この座標軸は実施例の説明上便宜的に必要なだけであり、発明とは関係しない。3次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。
 図4の3次元格子状のトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数5のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数6が必要となる。
 図3に示す1個のスピンユニット300は隣接するスピン(例えば隣接するスピンが上側、下側、左側、右側、奥行側の5個の場合)σj,σ,σ,σ,σの値が入力される。また、スピンユニット300はスピンσと外部磁場係数hに加え、前記した隣接するスピンとの相互作用係数であるJj,i,Jk,i,Jl,i,Jm,i,Jn,i(隣接する5スピンとの相互作用係数)を保持するメモリセルを有している。なお、図3の例では相互作用係数を保持するメモリセルは入力側に置いているが、出力側に置くこともできる。
 ところで、イジングモデルは一般的に無向グラフで表現される相互作用を有している。前記した(数1)では、相互作用を表わす項として、Ji,j×σ×σがあるが、これはi番目スピンからj番目スピンへの相互作用を示している。この時、一般的なイジングモデルではi番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。つまり、Ji,jとJj,iは同一である。また、一般的なイジングモデルでは、イジングモデル全体のエネルギーを数1に従って計算するときには、どちらか一方の方向しかエネルギーの計算に含めなくてよい。
 しかし、本実施例のイジングモデル計算機200では、このイジングモデルを有向グラフに拡張し、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を非対称にする例を示している。
 そのため、1個のスピンユニット300をi番目スピンσiを含むユニットと考えた時に、このスピンユニットが保持する相互作用係数であるJj,i,Jk,i,Jl,i,Jm,i,Jn,iは、隣接するj番目、k番目、l番目、m番目、n番目のスピンσj,σ,σ,σ,σから、i番目スピンσへの相互作用を決めるものである。
 このことは、図4において、スピンユニット300に含まれている相互作用係数が対応する矢印(相互作用)が、図示されているスピンユニット300の外部のスピンから、スピンユニット300の内部のスピンに向かっていることに対応している。
 スピンユニット300は、イジングモデルのスピンσ、相互作用係数Jj,i,Jk,i,Jl,i,Jm,i,Jn,iおよび、外部磁場係数hを保持するために、1ビットのメモリセルを複数個備えている。この1ビットのメモリセルは図3中に、スピンσを保持するSPIN,外部磁場係数hを保持するIS0,IS1,相互作用係数を保持するIU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1として図示されているものである。なお、IS0とIS1、IU0とIU1、IL0とIL1、IR0とIR1、ID0とID1、および、IF0とIF1はそれぞれ2個1組で役割を果たすものであるため、それぞれまとめてISx,IUx,ILx,IRx,IDx,および、IFxと略記する。
 スピンユニット300が有する各メモリセルの構造の一例としては、公知のSRAMメモリのセルを利用することができる。すなわち、メモリセルはCMOSインバータ2個で構成されるデータ保持部を有する。インバータと直列に接続されるパスゲートトランジスタのゲートをワード線で制御し、ソース・ドレイン経路をビット線に接続することで、データ保持部へのデータ読み書きを実現する。もっとも、メモリセル構造はこれに限られず、少なくとも2値を記憶できる構成であればよい。例えば、DRAMやフラッシュメモリのような他のメモリを用いることができる。
 図3の例では、各メモリセルは1ビット格納できるSRAMメモリセルとしている。しかし、多値化したメモリセルを用いてもよい。多値化したメモリセルは、物理的に1つのメモリセルを用いてもよいし、複数の1ビットメモリセルを用いて複数ビットを格納できるように構成してもよい。メモリセルを多値化すると、使用できる係数の値の自由度が広がる。一方、回路規模や処理時間は拡大する。したがって、解くべき問題の種類や用途に応じて、適切なメモリを選択すればよい。
 ここで、スピンユニット300はi番目のスピンを表現するものとして説明を行う。メモリセルSPINはスピンσを表現するためのメモリセルでありスピンの値を保持する。スピンの値はイジングモデルでは+1/-1(+1を上、-1を下とも表現する)であるが、これをメモリセルの2値である1/0に対応させる。本明細書では、+1を1、-1を0に対応させることにするが、逆の対応でもかまわない。
 図5を用いて、スピンユニット300が有するメモリセルと、図4に示したイジングモデルのトポロジとの対応関係を示す。ISxは外部磁場係数を表現する。また、IUx,ILx,IRx,IDx,IFxはそれぞれ相互作用係数を表現する。IUxは上側のスピン(Y軸方向で-1)、ILxは左側のスピン(X軸方向で-1)、IRxは右側のスピン(X軸方向で+1)、IDxは下側のスピン(Y軸方向で+1)、IFxは奥行き方向に接続するスピン(Z軸方向で+1ないしは-1)との相互作用係数を示している。また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット300は最大で5個のスピンと接続される。1個のスピンユニットは5個のスピンとの相互作用と、1個の外部磁場の合計6個の影響によって、スピンの値を決める。
 本実施例のイジングモデル計算機200では、外部磁場係数、及び、相互作用係数は、+1/0/-1の3値に対応する。そのため、外部磁場係数、および、相互作用係数を表わすためには、少なくともそれぞれ2ビットのメモリセルが必要となる。図3に示すスピンユニット300において、メモリセルISx,IUx,ILx,IRx,IDx,IFxは、末尾の数字が0と1の2つのメモリセル(例えばISxの場合にはIS0とIS1)の組合せで、+1/0/-1の3値を表現する。例えば、ISxの場合には、IS1で+1/-1を表現し、IS1が1の時は+1,0の時には-1を表現する。これに加えて、IS0が0の時には外部磁場係数を0と見なし、IS0が1の時にはIS1で決まる+1/-1のいずれかを外部磁場係数とする。外部磁場係数が0の時は外部磁場係数をディセーブルしていると考えれば、IS0は外部磁場係数のイネーブルビットであると言うことができる(IS0=1の時に、外部磁場係数がイネーブルされる)。相互作用係数を表現するIUx,ILx,IRx,IDx,IFxも同様に係数とビットの値を対応させている。
 スピンユニット300は、I/Oアドレスデコーダ230とI/Oドライバ220で駆動、制御、読み出しすることで、一般的なSRAMと同様に、スピンユニット300内のメモリセルをイジングモデル計算機200のSRAM互換インタフェースでリード/ライトすることが出来る。
 スピンユニット300では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を評価した時に、正の値と負の値のどちらが支配的か判断することと等価である。例えば、i番目スピンσに、スピンσj,σ,σ,σ,σが隣接しているとして、スピンσの次状態は以下のように決まる。まず、隣接スピンの値はσj=+1,σ=-1,σ=+1,σ=-1,σ=+1とし、相互作用係数はJj,i=+1,Jk,i=+1,Jl,i=+1,Jm,i=-1,Jn,i=-1、外部磁場係数h=+1とする。このとき、相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べると、σj×Jj,i=+1,σ×Jk,i=-1,σ×Jl,i=+1,σ×Jm,i=+1,σ×Jn,i=-1,h=+1となる。外部磁場係数は、常に値が+1のスピンとの相互作用係数と読み替えて良い。
 ここで、i番目のスピンと隣接スピンとの間での局所的なエネルギーは、前述した係数にそれぞれi番目スピンの値を乗じて、さらに符号を反転させたものになる。例えば、j番目スピンとの間での局所的なエネルギーは、i番目スピンを+1とした時には-1、i番目スピンを-1としたときには+1となるので、i番目スピンを+1にするほうが、ここでの局所的なエネルギーを小さくする方向に働く。
 このような局所的なエネルギーを全ての隣接スピン間と外部磁場係数について考えた時に、i番目スピンを+1/-1のどちらにしたほうがエネルギーを小さくできるかを計算する。これは、先程示した相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べたものにおいて、+1と-1のどちらが多いか数えれば良い。先程の例では、+1が4個、-1が2個である。仮に、i番目スピンを+1とするとエネルギーの総和は-2、i番目スピンを-1とするとエネルギーの総和は+2になる。よって、+1の個数が多い時にはi番目スピンの次状態を+1とし、-1の個数が多い時にはi番目スピンの次状態を-1にするという多数決で、エネルギーを最小化するi番目スピンの次状態を決定することが出来る。
 図3のスピンユニット300に図示する相互作用回路310は、前記した動作を行うための回路を、論理回路として表現した場合の概略を示している。まず、隣接スピンの状態と相互作用係数の+1/-1を示すメモリセルとの排他的論理和の否定(XNOR)で、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、-1は0にエンコードされているものとする)。もし、相互作用係数が+1/-1だけであれば、この出力のうち+1/-1のどちらが多いか多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理回路311に入力すべき値となる。
 多数決論理回路311の出力は、次状態としてメモリセルSPINに入力される。なお、前述のように、ビット調整期251の出力となるランダムパルス列は、条件に応じてメモリセルSPINに入力される次状態をランダムに変更し、演算途中で局所解に陥ることを防ぐためのものである。
 次に、係数0は多数決論理に上記のような+1/-1の投票をしない(相互作用回路310内のスイッチで表現される)ことで実現する。もし相互作用回路310を論理回路として構成する場合には、このスイッチに対応するようなディセーブル端子を各入力に対応して持つ多数決論理回路を構成する必要がある。
 相互作用回路310のような回路をAND,OR,NOTのような論理ゲートの組み合わせだけで作ることは回路的なコストが大きい。よって、本実施例では図6~図8に示すような一部アナログ的な動作を持つ回路で、相互作用回路310を実現する例を示している。アナログ的な動作を持つ回路とは、連続的に変化する電気信号を取り扱う回路である。ここでは、スピンを上向き(+1)に引っ張る力と、スピンを下向きに(-1)に引っ張る力を電流の引き込み量で表現し、その差を増幅することで、スピンの向きを決定する。つまり、スピン間の相互作用の大きさを電子回路上の電流の流量で相似的に表現していると言うことができる。
 図6は、アナログ的動作による相互作用回路310を構成する回路であり、スピンを+1側に引っ張る力を電流の引き込み量として表現する回路(図6(a)、CT側回路)と、-1側に引っ張る力を電流の引き込み量として表現する回路(図6(b)、CB側回路と称する)である。
 図7は、アナログ的動作による相互作用回路310で、図6の回路と合わせて用いられる回路の構成の一例を説明する図である。
 図8は図6及び図7の回路によって実現される動作の一例を説明するタイムチャートである。
 図6記載のこの二つの回路と、この二つの回路からの出力を増幅する図7の回路を、図8に示すタイミングチャートに沿って動作させることによって、相互作用回路310に相当する機能を実現することが出来る。
 図6の回路の動作を説明する。説明においては、図6に示されるように、図3の各メモリセルに格納されている値を供給する信号を、そのメモリセルの名前の末尾にTを付加した信号名で示す(例えば、IS0に格納されている値0/1はIS0Tとして参照される)。また、その信号を反転した信号を、メモリセルの名前の末尾にBを付加した信号名で示す(例えば、IS0Tの反転した信号をIS0Bとする)。
 また、隣接するスピンの値をNUT(上側)、NLT(左側)、NRT(右側)、NDT(下側)で表現する。さらに、奥行方向のNFTがあるが、図面の紙幅の都合で割愛する。図6の回路図上はNUT~NDTに関する回路は同様の構成が繰り返し現れていることが見て取れるが、同様にNFTに関する部分も構成できる。なお、それぞれの信号について、その反転した値をNUB,NLB,NRB,NDBと表現する(NFTに対応してNFBもあるが、図では省略している)。
 図6において、CTは、後で説明するCBと対をなす線である。CT及びCBはクロック信号CLKIによって駆動されるP型MOSFETで電源電圧に接続され、CLKIがLOWの時にP型MOSFETがONとなって、CT及びCBはプリチャージされる。
 CT及びCBは、いくつかのN型MOSFETを経由した後に、最下段において、クロック信号CLKIによって駆動されるN型MOSFETでグラウンドに接地する。つまり、CT,CBはCLKIがLOWの時にプリチャージされ、CLKIがHIGHの時に前述したいくつかのN型MOSFETを通って、プリチャージされた電荷がグラウンドに引き抜かれる。
 CT,CBそれぞれにおいて、電源電圧からグラウンドに至る経路にあるN型MOSFET群がONになっている数が、CTにおいてはスピンを+1側に引っ張る力を表現し、CBにおいてはスピンを-1が側に引っ張る力を表現する。
 まずスピンを+1側に引っ張るCT側に注目して説明する。例えば、外部磁場係数が+1のとき、それはスピンを+1側に引っ張る力であるから、このことを回路で表現するために、IS1Tで駆動するN型MOSFETをCTからグラウンドに電流を流すように配置する。同様に、相互作用係数について考えると、上側に隣接するスピンとの相互作用については、上側の隣接スピンが+1(NUTが1)で相互作用係数が+1(IU1Tが1)、ないしは、上側の隣接スピンが+1(NUBが1)で相互作用係数が-1(IU1Bが1)の時にスピンを+1側に引っ張る力となるので、この条件の時にCTからグラウンドに向けて電流が流れるように、N型MOSFETを配置して、ゲートに適切な信号を入力する。なお、相互作用係数が0の場合には、この電流の流れを阻止すればよいので、下段にIS0Tで駆動されるN型MOSFETを設けている。ここでは上側に隣接するスピンとの相互作用について説明したが、それ以外の向きで隣接しているスピンとの相互作用も同様である。
 次にスピンを-1側に引っ張るCB側について説明する。回路の基本的な考え方はCT側と同じで、電流を流す条件だけが異なっている。つまり、N型MOSFETのゲートに入力される信号が違う。
 上記の構成、及び、動作によって、スピンを+1側に引っ張る力の総和に比例してCTからグラウンドに電流が流れ、スピンを-1側に引っ張る力の総和に比例してCBからグラウンドに電流が流れる。その結果、CTとCBの電圧はそれぞれ降下し、その降下量もスピンを+1側(CT)ないしは-1側(CB)に引っ張る力に比例する。ここで、CTとCBの電圧差を図7に示すラッチ型センスアンプで増幅し、その出力をスピンの次の値とする。なお、CLKIBはクロック信号CLKIの反転である。
 図8に図6と図7の回路で実現される動作を、タイミングチャートとして説明する。図8のタイミングチャートは、図6と図7の回路によってになわれる相互作用の動作(この動作を行う期間を相互作用期間と称する)における、図6及び図7の主要信号線の電圧を縦軸に示し、横軸に時間経過を示すものである。説明上、相互作用期間を電流期間と判定期間の2フェーズに分けて説明する。
 まず、相互作用期間に入る前に、CT及びCBはプリチャージされており、電流期間の始点に置いて、両者とも信号のレベルはHIGHにある。この電流期間ではCLKIがHIGHになることにより、プリチャージは終了し、CT及びCBからN型MOSFET群を通してグラウンドに電流が流れる。その結果、+1側に引っ張る力(CT側)と-1側に引っ張る力(CB側)それぞれに応じて、CTとCBに電圧降下が生じる。例えば、図8の例ではCBの方がより電圧降下が大きいと仮定する。つまり、-1側に引っ張る力の方が強いというケースである。
 その後、判定期間ではCLKIがLOWになることで、次の電流期間に向けたプリチャージが行われることに加えて、判定期間の始点におけるCT及びCBの電圧が図7に示すラッチ型センスアンプで増幅される。センスアンプはCLKI信号がHIGHの時にCT及びCBと接続しており、CLKIがLOWの時(つまりCLKIBがHIGHの時)にアンプとして動作を行う。このセンスアンプによる増幅結果はCLTとCLBとして現れ、この場合にはCLTがHIGH,CLBがLOWという信号により相互作用の結果を得る。図8のタイムチャートの場合には、電圧降下が相対的に大きいCLBが増幅されてLOWとなり、電圧降下が相対的に少ないCLTが増幅されてHIGHになる。CLB=LOW(CLT=HIGH)の時にスピンの値を+1側にすべき(+1側に引っ張る力が強い)であり、CLT=LOW(CLB=HIGH)の時にスピンの値を-1側にすべき(-1側に引っ張る力が強い)ということになる。
 なお、図6~図8の回路の構成例は一例である。例えば図7~図8に限らず、CTとCBの電圧差を測定する公知の種々の回路構成を採用することができる。
 発明者らが上記のアナログ回路を検討したところ、図6に示すN型MOSFET群の製造ばらつきが問題となることがわかった。後述する理由によって、各MOSFETの閾値電圧はばらつきを持ち、その結果としてソース-ドレイン間の電流特性にもばらつきを生じる。このことは、図6の回路においてスピンを+1側ないしは-1側に引っ張る力に、MOSFET毎の差が出てしまうということである。例えば、仮に図6のCT側において、NUTとIU1Tがゲートに接続されているMOSFETの方が他のMOSFETと比較してON時のドレイン間電流(IDS)が多く流れるように製造ばらつきがあった場合、NUTとIU1Tに対応する相互作用(上側に隣接するスピンと+1の係数で接続されているときに、スピンを+1側に向けようとする力)は、他の相互作用と比較して大きく影響することになってしまう。
 特にこの問題が顕在化するのは、+1側に向かう力と-1側に向かう力が拮抗した時(これ以降、この状態を拮抗状態と呼ぶ)である。拮抗状態では、スピンの向きを+1にしても-1にしてもエネルギーに変化は無い。一般的には、探索空間を広げる観点から、拮抗状態ではスピンの向きをランダムに選ぶことも多い。もしくは、エネルギーに変化が無いため現状維持という意味で、前のスピンの値を保持するようにすることも多い。ところが、上記の製造ばらつきの問題から、CTとCBの電圧降下の度合いが異なり、常にどちらか一方がより電圧が低くなる、つまり常に多数決の勝者になってしまうことが実験的にも分かっている。よって、拮抗状態のスピンの値(これ以降、これを拮抗値と呼ぶ)は製造ばらつきによって決まるといえる。
 拮抗状態の問題は図6~図8の例に限らず、特にアナログ計算機の本質的な課題であると言うことが出来る。なぜならば、前述したような製造ばらつきを極力抑えたとしても、拮抗状態では微小なばらつきがセンスアンプの出力結果ではスピン値が+1もしくは-1のどちらかに固定的に決まるという現象として現れるからである。
 トランジスタ(ここでは主にMOSFETが用いられる)の製造ばらつき要因として、主に製造プロセス上の寸法誤差、RDF(Random Dopant Fluctuation、詳細は例えば非特許文献1を参照)、及びRTN(Random Telegraph Noise、詳細は例えば非特許文献2を参照)がある。
 製造プロセス上の寸法誤差はフォトリソグラフィ等の技術によって半導体基板上に回路を構成する幾何学的図形を形成する際の誤差により、トランジスタの特性が異なってしまうという問題であり、製造時に決定する静的な誤差である。
 RDFは半導体製造時に不純物(DonorないしはAcceptor、総称してDopant)をドーピングするときに生じる、不純物原子の位置と密度のランダムなばらつきのことで、これによってトランジスタの閾値電圧にばらつきが生じる。RDFによるばらつきは製造時に決まり、その後トランジスタの寿命の中で変化することはほとんど無い。また、不純物原子の位置と密度のランダムなばらつきに起因するという点から、トランジスタ自体の大きさが大きい場合には、その影響は相対的に小さく見え、微細化の進展と共にその影響が大きく見えてくる。微細化プロセスの中でも、特に閾値電圧ばらつきを低く抑える必要があるトランジスタについては、ゲート長を長くするなど、ゲートの面積を大きく取って、RDFの影響を緩和する策がとられる。
 RTNはトランジスタのゲートにある絶縁膜(酸化膜など)にキャリアが捕縛、解放されることにより、動的に閾値電圧ばらつきが生じる現象である。キャリアの捕縛、解放が起こる時定数は様々であり、様々な時定数のRTN現象が合わさって閾値電圧ばらつきとして観測される。その時定数は製造時に何らかの要因で決まると考えられているが、時定数が極めて短いものから長いものまであるため、製造時のスクリーニングを困難にする要因となる。RDFとの違いとして、微細化に伴って影響を及ぼす度合いがRDFよりRTNの方が強いこと、閾値電圧の動的な変化を及ぼすことがあげられる。
 本発明者らが検討したところによれば、本実施例で示したイジングモデル計算機300を、65nm程度の世代のプロセスで製造した場合には、寸法誤差やRDFによると推定される静的な影響が主体的であり、RTNの影響と考えられるような動的なばらつきはまだ顕在化していない。
 そこで、本発明者らは、各個体の特性を事前に計測し、その計測結果に基づいて各個体に入力する問題を改変することで、各個体を構成する素子の特性ばらつきに適応するという技術を考案した。また、この方法では各個体の特性の計測は基本的に一度だけ行えばよいため、工場出荷時に計測して、その情報と対応する個体を共に顧客に提供するといった形態も可能である。
 本実施例における特性ばらつきへの対処は、イジングモデル計算機200を制御する情報処理装置100の制御プログラム121及び特性計測プログラム122によって実現される。
 図9は制御プログラム121の動作を示すフローチャートである。このフローチャートに基づく動作は以下の通りである。これらの動作は、ソフトウェアである制御プログラム121による情報処理が、CPU110、RAM120、HDD160等、情報処理装置100のハードウェア資源を用いて実現している。全体の制御や計算はCPU110が行い、RAM120、HDD160へのリード・ライトも制御する。これらは、以下の他のフローチャートでも同様である。
 ステップ901:本フローチャートはイジングモデルをイジングモデル計算機200で求解するための手順である。本フローチャートの実行に先立ち、ユーザは、入力装置を経由して入力する等して、問題データ161をHDD160上に用意したものとする。なお、情報処理装置100は複数のイジングモデル計算機200A,200Bを有しているが、ユーザが問題データ161を解かせるイジングモデル計算機を自分で選択するか、ステップ901の段階でCPU110が適宜選択するものとする。これ以降の説明でイジングモデル計算機200は、ステップ901で選択されたイジングモデル計算機のことを称するものとする。
 ステップ902:情報処理装置100が備えるイジングモデル計算機200に対応する特性データ162がHDD160上に存在するかを検査する。存在しない場合、ステップ903で特性データ162を生成する。存在する場合、ステップ903を実行せず、ステップ904に遷移する。なお、特性データ162の詳細は後述する。
 ステップ903及びステップ904:特性計測プログラム162を実行して、イジングモデル計算機200A、200Bに対応する特性データ162を生成する。なお、特性計測プログラム162の詳細は後述する。
 ステップ905:特性データ162を元にして、特性ばらつきを回避できるように問題データ161を変換する。このステップで行われる変換の詳細は後述する。変換した問題データは変換後問題データと称する。
 ステップ906:イジングモデル計算機200に変換後問題データを入力する。具体的には、変換後問題データを構成する相互作用係数と外部磁場係数を、イジングモデル計算機200を構成するメモリセル群に書き込む。この書込みは入出力コントローラ150がイジングモデル計算機200のSRAM互換インタフェース222を制御することで実現される。そのため、ステップ906ではCPU110がMMIO等の手段によって、入出力コントローラ150を制御する。
 ステップ907:イジングモデル計算機200に対して、求解を指示する。具体的には、イジングモデル計算機200の相互作用アドレス280、相互作用クロック281、及び、乱数発生クロック260を制御する。この制御も直接は入出力コントローラ150によって行われるので、CPU110はMMIO等の手段によって、入出力コントローラ150を制御する。
 ステップ908:イジングモデル計算機200が求解した結果、すなわちスピン配列を読み出す。ステップ906と同様にSRAM互換インタフェース222を制御するために、CPU110がMMIO等の手段で、入出力コントローラ150を制御する。
 ステップ909:ステップ908で読みだしたスピン配列を変換し、問題データ161に対する解を得る(逆変換後スピン配列と称する)。イジングモデル計算機200で解いた問題は変換後問題データであるから、ステップ908で得られる解は変換後問題データの解である。この解を、変換前の問題データ161の解として解釈する作業が必要である。この解釈によって得られたスピン配列が逆変換後スピン配列である。解釈の方法の詳細は後述する。
 ステップ910:逆変換後スピン配列を求解結果としてユーザに呈示する。また求解結果は、情報処理装置100のHDD160に格納してもよいし、そのまま出力装置を介して外部に出力してもよい。
 図10は特性データ161の構成の一例である。特性データ161は本実施例の場合、各スピンの拮抗値を示したリストである。拮抗値はイジングモデル計算機の個体毎に異なるため、特性データ161は個体毎のエントリ(個体情報エントリ1010,1020)を持つ。例えばイジングモデル計算機200Aの特性は個体情報エントリ1010に、イジングモデル計算機200Bの特性は個体情報エントリ1020に格納される。
 各エントリは、例えば個体情報エントリ1010の例で説明すると、シリアル番号部1011、タイムスタンプ1012、拮抗値記録部1013のよう構成をとる。個体情報エントリ1010はイジングモデル計算機の個体に対応することからイジングモデル計算機の個体を識別する情報、すなわちシリアル番号を個体情報エントリに含めることで、個体情報エントリ1010と個体との紐付けを行う。また、本発明者らの検討したところによれば、拮抗値の特性は製造時にほぼ決定されるが、経年変化が皆無とは言い切れないので、タイムスタンプ1012に個体情報エントリ1010を構成した情報を計測した日付及び時刻を格納する。拮抗値は拮抗値記録部1013に、イジングモデル計算機200の各スピンの拮抗値を、各スピンの座標(本例ではX座標、Y座標、Z座標)と共に記録している。
 図11に特性データ161を生成するための特性計測プログラム162の動作をフローチャートとして示す。このフローチャートに基づく動作は以下の通りである。
 ステップ1101:本フローチャートはイジングモデル計算機200の有する各スピンの拮抗値を計測するための手順である。なお、情報処理装置100は複数のイジングモデル計算機200A,200Bを有しているが、本手順はイジングモデル計算機それぞれに対して実行される(並行して実行しても良い)。
 ステップ1102:拮抗値を測定するための問題(測定用モデル)を作成する。拮抗状態を引き起こさせるためのモデルの例を図12に示す。
 図12のモデルは、あるスピンの拮抗値を知るために、その両端(Y軸方向+1とZ軸方向+1)のスピンとそれぞれ+1及び-1の相互作用を設け、かつ、両端のスピンの値はそれぞれ+1にして拮抗状態を生成するものである。このモデルにおいて、温度0(ランダムなスピン反転を行わない状態)の元に1回相互作用を行うと、注目しているスピンはその製造ばらつきによって+1ないしは-1に遷移する。なお、1個のスピンの拮抗値を計測するために、例えば図12に示すようにY方向とZ方向に隣接するスピンをそれぞれ1個ずつ用いると、それらのスピンを除いた他のスピンは、同様の相互作用を1つの測定用モデルに含めることで同時に計測することが出来る。例えば、図4に示したイジングモデルであれば、2個の測定用モデルを順次用いることで全てのスピンを測定できる。つまり1個目の測定用モデルでは、座標(X,Y,Z)=(0,0,0),(1,0,0),(2,0,0),(0,1,1),(1,1,1),(2,1,1),(0,2,0),(1,2,0),(2,2,0)を測定対象とする。そして、2個目の測定用モデルでは、座標(X,Y,Z)=(0,0,1),(1,0,1),(2,0,1),(0,1,0),(1,1,0),(2,1,0),(0,2,2),(1,2,2),(2,2,2)を測定対象とする。
 ステップ1103:ステップ1102で作成した測定用モデルをイジングモデル計算機200に入力する。入力の方法はステップ906と同様である。
 ステップ1104:イジングモデル計算機200に、当該測定用モデルで測定対象となっているスピンそれぞれについて、相互作用を実行するように求解を指示する。測定対象となっているスピンは、図12で説明したように、測定用モデルにより拮抗状態に設定されている。なお、温度は0とする。すなわち、乱数発生クロック260を止めるか、乱数発生器250ないしはビット調整器251の設定を変更するなどして、ランダムなスピン反転は抑止する。
 ステップ1105:イジングモデル計算機200からスピン配列を読み出す。その方法はステップ908と同様である。
 ステップ1106:ステップ1105で読みだしたスピン配列のうち、ステップ1102で生成した測定用モデルで測定対象となっているスピンの値を当該スピンの拮抗値として特性データ161に記録する。
 ステップ1107:全てのスピンの拮抗値を測定したかを判定する。もし、全てのスピンの測定が完了していなければ、その残りのスピンを測定するための測定モデルを生成して、再度測定を行うために、ステップ1102にも戻る。全てのスピンの測定が完了したら、ステップ1108に遷移する。
 ステップ1108:特性データ161の生成を完了した後に、特性計測プログラム162は終了する。特性データ161は、制御プログラム121が利用できるように、RAM120あるいはHDD160に保持する。あるいは、イジングモデル計算機200内のフラッシュメモリ等の不揮発メモリ270に格納しておいてもよい。イジングモデル計算機200に自分の特性データ161を持たせておけば、イジングモデル計算機200を他の情報処理装置で使用する場合でも、特性データ161を利用することができる。
 図9のステップ905に示した、問題データの変換について説明する。特性データ161に示された拮抗値と、拮抗時にあるべきスピン値(以降、希望値と呼ぶ)に基づいて、イジングモデル(問題データ)を変換し、ステップ909との組合せで、拮抗時のスピン値が希望値になるようにモデルを変換する。ここで、i番目スピンの拮抗値をu、i番目スピンの希望値をeとする。この時、相互作用係数Ji,jはJi,j×u×u×e×eに変換する。また、外部磁場係数hiはh×u×eに変換する。
 ステップ905と対になる変換としてステップ909では、ステップ908で読みだしたスピン値から、変換前のモデルの解に変換する。読みだしたスピン値をai、変換前の問題データの解としてのスピン値をσとした時、σ=a×u×eとする。
 具体的な例を説明する。図12に示すようなモデルで、上記のステップに基づいて、製造ばらつきに関わらず拮抗時には希望値が得られることを示す。3個のスピンσ、σ、σがあり、σの値を決める相互作用を考える。σとσは両方とも+1になっているものとする。拮抗状態を作るために相互作用係数J1,2は+1、J1,3は-1とする。測定によって得られた3個のスピンそれぞれの拮抗値はu=+1,u=+1,u=+1,希望値はe=-1,e=+1,e=+1とする。このモデルをそのままイジングモデル計算機に解かせると、σ=u=+1という答えが得られる。そこで、このモデルをステップ905に示すように変換すると、J1,2=+1×+1×+1×-1×+1=-1、J1,3=-1×+1×+1×-1×+1=+1というように変換される。この変換したモデルをイジングモデル計算機300に入力すると、やはり拮抗するのでa=+1という結果が得られる。この結果をステップ909に示すようにσ=+1×+1×-1と変換してσ=-1を得る。
 つまり、ステップ905とステップ909で行う変換は、素子の製造ばらつきによって拮抗値が決まっているときに、拮抗状態になった時の値をステップ909での後処理によって希望値に変換できるように、ステップ905で係数の正負を入れ替えていると言うことができる。そして、ステップ909で解となるスピンの正負を入れ替えることにより希望値を得ることができる。
 この方式では、希望値が決まっている必要がある。実用上は、各スピンの外部磁場係数hが正であれば希望値を+1、負であれば希望値を-1とする。これは、相互作用及び外部磁場の総和として拮抗状態が生じた場合に、外部磁場を優先するという考え方に基づいている(もしくは、外部磁場が相互作用より微小量大きいという考え方もできる)。希望値が決まっている場合には、その値を例えば問題データ161と関連付けてHDD160に保持しておけばよい。あるいは、問題データ161とは別に入力して、制御プログラム121が利用できるようにRAM120に保持しておいてもよい。
 もしくは、イジングモデル計算機200のようにランダム性を利用する解法では、一般的に同じ問題を複数回解いて、その中の最良解を得ることが多い。そのような場合には問題を解く毎に希望値をランダムに決めて、複数回問題を解くことを試行する。この場合も、本変換を用いず拮抗状態で拮抗値に固定されてしまう場合と比べて、大きな空間を探索することができるため、製造ばらつきの影響を回避して解の品質向上に寄与することができる。ランダム性を利用する場合には、予めランダムなデータを保持しておいてもよいし、その都度生成してもよい。
 また、希望値を予め決めない別の方式として、問題を1回解いている間に、その過程において希望値をランダムに変更する方式がある。このように求解の途中において、異なる希望値を与えて変換した問題データを入力すれば、一回の求解において、その過程において拮抗状態が生じることで探索すべき解空間が狭まってしまうことを防ぐことができる。この場合、基本的な処理の流れは図9に示す例と同様であるが、問題データを変換する処理904の間、途中で希望値がランダムに変更される。スピン配列を変換する処理909でも、問題データに対応した変換処理が行われる。希望値を変更するタイミングは任意であるが、変更の周期を短くすれば効果が大きくなる反面、処理が複雑になる。
 以上では希望値をランダムに変えることを想定したが、希望値が2値を取る場合は、交互に変更する方式も考えられる。
 なお、本実施例ではイジングモデルと相似な構造を持つイジングモデル計算機200を例として実施例を示したが、ニューラルネットワークと相似な構造を持つニューロ計算機についても同様に実施することができる。ニューラルネットワークでは、他のニューロンの発火状態(例えば、数値の0と1で表現される)を受け取り、自ニューロンが発火するかどうかを、他のニューロンの発火状態とニューロン間のシナプス結合係数を乗じたものの総和を計算し、総和を閾値関数に通してその出力で決定する。この動作をアナログ電子回路で実装しようとすると、本実施例のイジングモデル計算機と類似した構造を持つ(発火状態をスピン値、シナプス結合係数を相互作用係数と読みかえればイジングモデルとほぼ同じ構造となる)。
 ニューロ計算機の場合も相互作用回路(シナプス結合回路)の構成は、基本的に図6に示した構成が使用可能であり、スピン値NUT等の代わりに発火状態、相互作用係数IU1Tの代わりにシナプス結合係数を入力すればよい。
 実施例2は、イジングモデル計算機200で拮抗状態以外のばらつきも考慮する場合も考える。実施例1では、イジングモデル計算機200の相互作用回路310におけるMOSFETの製造特性ばらつきに起因する、相互作用が拮抗したときに顕在化するスピン値が固定的な方向に倒れてしまう問題に対応する実施例を示した。実施例1で示した方式は、相互作用回路310にそれを補償するための付加的な回路を加えること無く、イジングモデル計算機200とそれを含んだ情報処理装置100の制御で対応する方法であった。
 実施例2では、さらに製造ばらつきの影響が大きくなり、その影響が拮抗状態のみならず、それ以外の相互作用にも影響を及ぼすような場合に、対応できる構成の例を開示する。
 一般的にMOSFETのドレイン間電流(IDS)のばらつきは、チャネル長(L)とチャネル幅(W)に依存しており、1/√(W×L)に比例することが知られている。そこで、IDSのばらつきを1/nに抑制するためには、(W/L)をn倍にしなければならない。このことは、ばらつきの抑制と微細化(高集積化)が相反関係になることを示している。
 一方で、実施例1に示したイジングモデル計算機200よりも、複雑なイジングモデル(相互作用の関係を増やす、ないしは、相互作用係数・外部磁場係数の値域を広げる)に対応しようとすると、ばらつきの抑制に対してより厳しい要求が科される。
 例えば、実施例1のイジングモデル計算機200は、相互作用係数及び外部磁場係数の値域は+1~-1であった。また、相互作用と外部磁場を併せて、1個のスピンには6種類の力がかかっている(相互作用の上下左右奥行方向で5種に加えて外部磁場で合計6種)。この時、+1に向ける力と-1に向ける力が半々の時に拮抗状態となり、この拮抗状態における製造ばらつきへの対応が実施例1であった。
 ここで、例えば、+1に向ける力と-1に向ける力が半々で無い時は、当然より力が大きい方向にスピンが向くことが期待される。例えば、6種の力のうち外部磁場が無く、相互作用5方向で、+1側に3、-1側に2の力で引っ張られるという3対2のケースを考える。この時は、3の力がある+1側になるべきである。つまり、相互作用回路310ではCT側回路でより多くの電流が流れて、CTの電圧降下の幅が大きいはずである。
 しかし、そのためには、MOSFETの特性ばらつきが十分小さい範囲に収まっている必要がある。例えば相互作用回路310のCT側回路とCB側回路で最大に流れる電流(同時にONになりうる全てのMOSFETをONにした時の電流)を1とする。その時に、3対2であれば、理想的にはCT側回路は(1/6)×3=1/2の電流が、CB側回路は(1/6)×2=1/3の電流が流れる。つまり、CT側回路とCB側回路の電流差は1/6であるため、このケースではCB側回路のMOSFETの電流ばらつきの結果、1/6以上の電流をさらに流してしまうと正しく動作しない。もしくは、CT側の電流がばらつき起因で流れる量が少なく、CB側の方は逆に多いというような場合も問題になる。
 そのため、上記の問題が生じないように、IDSのばらつきを抑制できるようにMOSFETの大きさ(W,L)を決めて設計するわけだが、それも相互作用や外部磁場を複雑化すると問題になってくる。例えば、実施例1のように、相互作用係数と外部磁場係数が+1~-1で、相互作用係数と外部磁場係数を併せて6種の力がある場合に、上記の問題が生じない程度にIDSのばらつきをおさえることに成功した設計があるとしよう。この設計を元に、前述したばらつきとチャネル幅・チャネル長の関係で、複雑化させた設計で面積効率がどの程度落ちるかを示す。
 例えば、係数の幅を+3~-3にすると、現状の設計と比べてCT側回路、CB側回路それぞれ3倍の数のトランジスタが必要になる。現状では6種の力それぞれに4個のMOSFET(但し、同時にONになるのはそのうち2個)を用いているが、1種に4×3=12個のMOSFET(但し、同時にONになるのは最大6個)を必要とする。この構成では、拮抗状態が起きる時には係数+3/-3をそれぞれ3方向ずつで使う9対9のケースになる。そこで、拮抗状態一歩手前の9対8のケースについて考えると、CT側回路は(1/18)×9=9/18の電流が、CB側回路は(1/18)×8=8/18の電流が流れることになるので、その差は1/18である。係数+1~-1の場合と比べると、差が1/3に縮小している。つまり、MOSFETの特性ばらつきも1/3に収めなければならず、そのためにはMOSFETのサイズを9倍にしなければならない。
 このことから、相互作用が複雑になると、MOSFETの特性ばらつきを抑えるためにMOSFETを多くしなければならない上に、元々複雑な相互作用を実現するためにMOSFETの数が増えている。例えば上記の場合だと特性ばらつきを抑えるためのサイズ9倍に加えて、元々複雑な相互作用を実現するために3倍の数のトランジスタを用いているので、合計27倍の面積を必要とする。このため、スケーラビリティを著しく阻害する要因となる。
 そのため、本実施例では拮抗状態以外でもIDSのばらつきが顕在化する場合に対応する例を示す。例えば拮抗状態ではない3対2のケースであったとしても、CT側ないしはCB側のMOSEFTのIDSばらつきによって、3の力で引く側よりも2の力で引く側が強いと誤認されてしまうようなケースに対応するため例を示す。
 図13は本実施例の実施の形態であるアナログ計算機1300の構成図である。このアナログ計算機1300は実施例1のイジングモデル計算機200Aと同様に、情報処理装置100のような装置の一部に組み込まれて利用することを想定している。
 図13は説明の都合上、実施例1のイジングモデル計算機200を抽象化したアナログ計算機として説明する。そのアナログ計算機1300は、アナログ計算ユニット1310A~E(A~Eを特に区別する必要が無い時は、単に1310として参照する)、アナログ演算回路1311、記憶素子1312、検査回路1313、ユニット間インタフェース1320、検査インタフェース1330から構成されている。
 これは実施例1に照らし合わせれば、イジングモデル計算機200がアナログ計算機1300に対応し、スピンユニット300がアナログ計算ユニット1310に対応する。相互作用回路310が、例えば図6と図7で具体例を示したアナログ演算回路1311に対応する。また、スピンユニット300内のメモリセルアレイが記憶素子1312に対応し、スピンユニット間で隣接スピンユニットのスピン値を伝送する伝送線がユニット間インタフェース1320に対応する。なお、ユニット間インタフェース1320及び検査インタフェース1330は図13上ではバス状のトポロジになっているが、このトポロジは任意である。実施例1のイジングモデル計算機200の場合には、ユニット間インタフェースが3次元格子状のトポロジを持っていると言うことが出来る。
 検査回路1313は、アナログ演算回路1311の処理結果が誤る可能性がある場合を検出して、その結果を検査インタフェース1330に出力する。アナログ演算回路1311の処理結果が誤る場合とは、2種類のケースがある。第一には、既に述べた拮抗状態である。第二には、拮抗状態ではないものの(つまりアナログ演算回路1311の製造ばらつきが一切なければ誤ることはないものの)、+1側に引く力と-1側に引く力が近いため、製造ばらつきによっては誤判定する可能性があるケースである。どの程度の製造ばらつきが生じるかは、プロセスの世代やMOSFETの設計パラメータからある程度推定することが可能である。
 一般的に、アナログ演算回路1311のようなアナログ電子回路で生じる各種ばらつきは、それを打ち消すための回路を付加して補償することが多く行われているが、このような方法では、元の回路の2倍近い物量が必要となることも多く、スケーラビリティを下げる原因となる。
 そこで、本実施例では後述するように、アナログ計算機1300に組み込まれた簡単な検査回路1313と、アナログ計算機1300を含む情報処理装置100の全体制御の組み合わせで、アナログ計算機1300の物量増加を抑えて、前述したような状況に対処する。
 図14に検査回路1313の構成の一例を示す。検査回路1313では前述した2ケースを一括して検出するために、CT側回路とCB側回路の電圧差が一定の範囲内に収まっているかどうかを検出する。一定の範囲内に収まった場合には、誤動作の可能性ありと判断する。具体例としては、CT側回路とCB側回路の電圧差が所定閾値より小さい場合に誤動作の可能性ありと判定する。電圧差を許容する範囲は、どの程度の製造ばらつきが生じるかの見積によって設定できる。
 図14の検査回路1313は図7のラッチ型センスアンプを基本構造としている。センスアンプは2種類の信号(CTとCB)の電圧差を増幅する役割だが、図14に示すMOSFET1401の駆動力を下げると、電圧差の増幅が緩やかとなり、かつ、その勾配は電圧差が小さいほど緩やかなものとなる。この緩やかな勾配を検出することで、電圧差が許容範囲内かどうかを検出する。
 図15は検査回路1313を動作させた時のタイムチャートであるが、これを参照しながら検査回路1313の構造と動作を詳説する。図8のタイムチャートと同様に、プリチャージしたCT/CBから隣接スピン値、相互作用係数、及び、外部磁場係数でON/OFFが決まるMOSFET群で電流を引き抜き、CT/CBに電圧降下を生じさせる。その後、CLKIBをHIGHとしてセンスアンプを作動させるが、前述したようにMOSFET1401の駆動力をおさえているため、CLT、CLBに現れる電圧の傾きは緩やかなものとなる。さらに、CTとCBの電圧差が大きい場合と小さい場合を比較すると、小さい場合の方がより緩やかな電圧変化を見せる。よって、CTとCBの電圧差はCLTとCLBの電圧変化の傾きとして現れ、その傾きが一定より緩いことを検出することで、検査回路1313を実現する。
 傾きが一定より緩いことを検出するために、本実施例では閾値を持つバッファと排他的論理和(XOR)回路を用いる。XORからの出力OUTAを、CLKIBを微小時間Δt遅延させたタイミングで観測する。観測されたOUTAのレベルがHIGHかLOWかで誤動作の可能性を検査することができる。このタイミングで観測するためには、例えばエッジトリガ型のフリップフロップ(FF)をΔt遅延させたCLKIBで駆動すれば良い。
 なお、検査回路1313の構造が図7のセンスアンプと類似していることから分かるように、センスアンプと兼用することも可能である。なお、図14の例は一例であり、センスアンプと全く別個にCTとCBの電圧差を測定する回路を設けてもよい。この場合は、電圧を測定する公知の種々の回路構成を採用することができる。
 図16にこの検査回路1313を用いて、アナログ計算機1300の誤動作に対応する情報処理装置100の動作をフローチャートとして示す。
 ステップ1601:本フローは、実施例1の図9に示した情報処理装置100によるイジングモデル計算機200の制御(本実施例ではアナログ計算機1300の制御)のうち、ステップ907で行われる処理を、検査回路1313を用いて制御する詳細なフローを示すものである。
 ステップ1602:アナログ計算機1300が有する各アナログ計算ユニット1310A~1310Bをそれぞれ一回ずつ動作させて、演算を実行する。
 ステップ1603:ステップ1602で行った演算の結果、検査回路1313でアナログ演算ユニット1311の誤動作の可能性が検出されていないかを検査する。誤動作の可能性が検出されていなければ、ステップ1607に進む。誤動作の可能性が検出されていれば、ステップ1604に進む。
 ステップ1604:誤動作があった場合、検査回路1313から検査インタフェース1330を介して得られた情報で、誤動作があった可能性のあるアナログ計算ユニット1310を特定し、当該ユニット及び当該ユニット周辺の記憶素子の値を読み出す(例えば、実施例1のイジングモデル計算機200であれば、隣接スピンのスピン値だけを読み出せばよい)。
 ステップ1605:誤動作があったアナログ計算ユニット1310が行うべき演算を、ステップ1604で得た情報を用いて、情報処理装置100のCPU110上で代替して行う。
 なお代替するCPUは、情報処理装置100のCPUを使用してもよいが、アナログ計算機1300の中あるいはこれに付随して、専用のCPUあるいは論理回路を備えてもよい。アナログ計算機1300の中に配置する場合には、複数のアナログ演算回路1311に対して1つのCPUを備えるようにすれば、回路規模の縮小効果を得ることができる。
 専用のCPUはソフトウェアによりプログラム可能なものでもよいし、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウェアでも実現できる。また、専用のハードウェアで構成してもよい。専用のハードウェアとしては、例えば図3に示した相互作用回路310相当の回路を、デジタル演算回路として使用できる。アナログ演算回路1311に誤動作可能性のある場合には、このデジタル演算回路でアナログ演算回路1311を代替させればよい。デジタル演算回路は、アナログ計算機1300の外部あるいは内部に設けることができる。複数のアナログ演算回路1311に対して1つのデジタル演算回路を備えるようにすれば、回路規模の縮小効果を得ることができる。
 ステップ1606:ステップ1605の演算結果を、対応するアナログ計算ユニット1310の記憶装置1312に書き戻す。
 ステップ1607:本フローで行うべき所定の動作回数を満たしたかを確認する。満たしていなければ、ステップ1602に戻って繰り返す。
 ステップ1608:所定の動作回数を満たしたら、本フローを終了する。
 この動作フローによって、アナログ計算機ユニット1310が備えるアナログ演算回路1311において、製造ばらつきに起因する誤動作の可能性がある時、その時に限ってアナログ演算回路1311の役割を情報処理装置100のCPU110が一時的に代替することが出来るようになり、情報処理装置100全体として誤動作の無い処理が可能となる。
 なお、アナログ計算機ユニット1310の代替を担うCPU110は、アナログ計算機1300の中に備えても良い。
 図17は検査回路1313の構成の他の一例を説明する図である。検査回路1313を図17に示す検査回路1700のように実装しても良い。この検査回路1700では、二種類の遅延回路(第1遅延回路、第2遅延回路)で生成した異なるタイミングのクロック信号でOUTA信号(XORからの出力)をフリップフロップに取り込む。例えば、第1遅延回路が時刻tにおいてクロックが立ち上がるクロック信号を生成し、第2遅延回路が時刻t+Δtにおいてクロックが立ち上がるクロック信号を生成するものとする。
 そして、時刻t+Δt以降に2個のフリップフロップの出力(L1,L2)を観測すると、(L1,L2)=(0,0),(L1,L2)=(0,1),(L1,L2)=(1,1)の3通りがある。ここで、(0,0)のケースが最もCT側/CB側の電位差が小さく、逆に(1,1)はCT側/CB側の電位差が大きい。よって、L1とL2のXOR(2入力が不一致の時に1を出力)を取ると(0,1)のケースが抽出される(XORの出力に1が出る)が、このケースは電位差が(0,0)と(1,1)の中間程度にあると言える。
 よって、第1遅延回路の時刻tと、第2遅延回路の時刻t+Δtを適切に設定することで、電圧差の大小を検出することが出来る。これにより、検査回路1313では電圧差が小さい場合全てを検出していたが、検査回路1700では電圧差が所定より小さい場合、及び、所定より大きい場合は問題が無いと判断し、ある範囲内の電位差だった場合に問題があると検出することができる。
 この検査回路1700を用いると、実施例1と実施例2を組み合わせた実施の形態をとることもできる。つまり、検査回路1700で(L1,L2)=(0,0)が拮抗状態の時に現れるように時刻tとt+Δtを設定することで、拮抗状態(0,0)、誤判定の可能性がある状態(0,1)、誤判定の可能性が無い状態(1,1)の3状態を分けて検出することが可能で、イジングモデル計算機200に入力する問題は実施例1と同様にして生成しておき、拮抗状態に対する対処は実施例1と同様に行い、拮抗状態を超える電位差であり、かつ、その電位差が誤判定が無いと言いきれない程度に小さい場合には、実施例2記載の動作が行われるようにする。
 なお、本実施例も実施例1と同様にイジングモデルと相似な構造を持つイジングモデル計算機200を例として実施例を示したが、ニューラルネットワークと相似な構造を持つニューロ計算機についても同様に実施することができることは、実施例1と同様である。
 本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
 イジングモデルやニューラルネットワーク等の計算を行う技術分野に適用が可能である。
100:情報処理装置
200:イジングモデル計算機
300:スピンユニット
1300:アナログ計算機

Claims (15)

  1.  処理の対象もしくは処理の結果となる数値を格納する数値格納メモリと、
     前記処理に用いる係数を格納する係数格納メモリと、
     前記数値と前記係数を用いて前記処理の少なくとも一部をアナログ的に実行するアナログ処理回路と、
     を複数組備え、
     前記複数のアナログ処理回路の特性ばらつきを示す特性データを格納する特性データ格納メモリを備え、
     問題データを前記数値または前記係数として前記数値格納メモリと前記係数格納メモリに格納し、前記アナログ処理回路による1または複数回の処理の後、前記数値格納メモリに格納された数値を解データとして読み出す、
     情報処理装置。
  2.  前記問題データを格納する前に、前記特性データに基づいて前記問題データを変換し、
     前記解データを読み出した後に、前記特性データに基づいて前記解データを変換する、
     請求項1記載の情報処理装置。
  3.  第1の数値格納メモリと、第1の係数格納メモリと、第1のアナログ処理回路と、
     第2の数値格納メモリと、第2の係数格納メモリと、第2のアナログ処理回路と、
    を有する計算ユニットを備え、
     前記第2のアナログ処理回路が、前記第1の数値格納メモリに格納された数値と、前記第2の係数格納メモリに格納された係数を用いて処理を行い、前記第2の数値格納メモリに処理の結果を格納する、
     請求項2記載の情報処理装置。
  4.  処理装置、記憶装置、入力装置、出力装置を備え、
     前記入力装置が、前記問題データを受付け、
     前記処理装置が、前記受付けた問題データを前記記憶装置に格納し、
     前記処理装置が、前記記憶装置に格納されている前記問題データを読み出し、前記特性データに基づいて前記読み出した問題データを変換し、前記計算ユニットの数値格納メモリと前記係数格納メモリに格納し、
     前記処理装置が、前記アナログ処理回路による複数回の処理の後、前記計算ユニットの数値格納メモリから前記解データを読み出し、前記特性データに基づいて前記読み出した解データを変換し、前記記憶装置または前記出力装置に出力する、
     請求項3記載の情報処理装置。
  5.  前記処理装置の制御により、前記複数のアナログ処理回路の特性ばらつきを測定し、測定結果を前記特性データとして前記特性データ格納メモリに格納する、
     請求項4記載の情報処理装置。
  6.  前記複数のアナログ処理回路の処理内容を検査する検査回路と、
     前記アナログ処理回路による処理と同等の処理をデジタル的に実行するデジタル処理回路と、
     を有し、
     前記検査回路の検査結果に基づいて、前記アナログ処理回路の処理を前記デジタル処理回路に代替させる、
     請求項1記載の情報処理装置。
  7.  前記検査回路による検査は、前記アナログ処理回路の処理において生成される2つのアナログ値を検査するものであり、
     前記アナログ値の差が第1の閾値より小さく、第2の閾値より大きい場合に、前記アナログ処理回路の処理を前記デジタル処理回路に代替させる、
     請求項6記載の情報処理装置。
  8.  前記問題データは、
     イジングモデルのスピン配列を求めるための問題データ、あるいは、ニューラルネットワークのニューロンの状態を求めるための問題データである、
     請求項1記載の情報処理装置。
  9.  処理の対象もしくは処理の結果となる数値を格納する数値格納メモリと、
     前記処理に用いる係数を格納する係数格納メモリと、
     前記数値と前記係数を用いて少なくとも一部の処理をアナログ的に実行するアナログ処理回路と、
     を複数組備え、
     前記複数のアナログ処理回路の処理内容を検査する検査回路と、
     前記アナログ処理回路による処理と同等の処理をデジタル的に実行するデジタル処理回路と、
     を有し、
     前記検査回路の検査結果に基づいて、前記アナログ処理回路の処理を前記デジタル処理回路に代替させる、
     情報処理装置。
  10.  前記検査回路による検査は、前記アナログ処理回路の処理において生成される2つのアナログ値の差を検査するものであり、
     前記アナログ値の差が所定の条件下にある場合、前記アナログ処理回路の処理を前記デジタル処理回路に代替させる、
     請求項9記載の情報処理装置。
  11.  1個以上のアナログ計算機を含む情報処理装置を用いた情報処理方法において、
     前記アナログ計算機の特性ばらつきを計測して特性ばらつきデータとして記録するステップ、
     を有することを特徴とする情報処理方法。
  12.  前記特性ばらつきデータを参照して、前記アナログ計算機に入力するデータを変換するステップと、
     前記特性ばらつきデータを参照して、前記アナログ計算機から出力されたデータを解釈するステップと、
     を有することを特徴とする請求項11記載の情報処理方法。
  13.  前記アナログ計算機はイジングモデルのスピン配列を求めるものであり、
     前記入力するデータの変換は、イジングモデルの相互作用係数乃至は外部磁場係数の値の符号を反転させるものであり、
     前記出力されたデータの解釈は、スピン値の反転であることを特徴とする請求項12記載の情報処理方法。
  14.  前記アナログ計算機は特性ばらつきの影響を評価する構成単位毎に、その評価を行う検査部を有しており、
     前記検査部からの検査結果を読み出すことで、誤動作の可能性のある前記構成単位を検出することを特徴とする請求項11記載の情報処理方法。
  15.  前記誤動作の可能性のある構成単位を検出したときに、前記情報処理装置が有する論理回路が当該構成単位の担う処理を一時的に代替することを特徴とする請求項14記載の情報処理方法。
PCT/JP2015/074263 2015-08-27 2015-08-27 情報処理方法及び装置 WO2017033337A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2015/074263 WO2017033337A1 (ja) 2015-08-27 2015-08-27 情報処理方法及び装置
JP2017536156A JP6636529B2 (ja) 2015-08-27 2015-08-27 情報処理方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/074263 WO2017033337A1 (ja) 2015-08-27 2015-08-27 情報処理方法及び装置

Publications (1)

Publication Number Publication Date
WO2017033337A1 true WO2017033337A1 (ja) 2017-03-02

Family

ID=58101177

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/074263 WO2017033337A1 (ja) 2015-08-27 2015-08-27 情報処理方法及び装置

Country Status (2)

Country Link
JP (1) JP6636529B2 (ja)
WO (1) WO2017033337A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232786A (ja) * 1989-03-07 1990-09-14 Fujitsu Ltd ニューロコンピュータにおける可変積分パルスによる誤差吸収方式
JPH064691A (ja) * 1992-06-23 1994-01-14 Nippon Telegr & Teleph Corp <Ntt> アナログニューラルネットワーク素子の試験方法
JPH0626858A (ja) * 1992-07-10 1994-02-04 Olympus Optical Co Ltd 測距装置
WO2014192153A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 半導体装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232786A (ja) * 1989-03-07 1990-09-14 Fujitsu Ltd ニューロコンピュータにおける可変積分パルスによる誤差吸収方式
JPH064691A (ja) * 1992-06-23 1994-01-14 Nippon Telegr & Teleph Corp <Ntt> アナログニューラルネットワーク素子の試験方法
JPH0626858A (ja) * 1992-07-10 1994-02-04 Olympus Optical Co Ltd 測距装置
WO2014192153A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 半導体装置

Also Published As

Publication number Publication date
JPWO2017033337A1 (ja) 2018-08-02
JP6636529B2 (ja) 2020-01-29

Similar Documents

Publication Publication Date Title
CN109426698B (zh) 预测半导体集成电路良率的装置和半导体器件的制造方法
JP6006411B2 (ja) 半導体装置
US10796068B2 (en) Standard cell design system, standard cell design optimization method thereof, and semiconductor design system
Niki et al. A digitized replica bitline delay technique for random-variation-tolerant timing generation of SRAM sense amplifiers
JP6295325B2 (ja) 半導体装置及び情報処理システム
JP2010160787A (ja) パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
US20160064053A1 (en) Semiconductor device and information processing device
Agbo et al. Quantification of sense amplifier offset voltage degradation due to zero-and run-time variability
US8813006B1 (en) Accelerated characterization of circuits for within-die process variations
US9666252B2 (en) Semiconductor device for calculating an interaction model
Agbo et al. BTI impact on SRAM sense amplifier
TW201928986A (zh) 測試系統及其操作方法
Amrouch et al. Special session: Machine learning for semiconductor test and reliability
Agbo et al. Comparative BTI analysis for various sense amplifier designs
Agbo et al. BTI analysis of SRAM write driver
WO2016030938A1 (ja) シミュレーションシステム、及びシミュレーション方法
WO2017033337A1 (ja) 情報処理方法及び装置
JP2008066598A (ja) ソフトエラー率の計算方法、プログラム、半導体集積回路の設計方法及び設計装置、並びに半導体集積回路
Tsiligiannis et al. SRAM soft error rate evaluation under atmospheric neutron radiation and PVT variations
Cheng et al. A new march test for process-variation induced delay faults in srams
US8988957B2 (en) Sense amplifier soft-fail detection circuit
US20160064080A1 (en) Semiconductor device and information processing device
Ghosh et al. Bridge-Defect Prediction in SRAM Circuits Using Random Forest, XGBoost, and LightGBM Learners
Selvam et al. Low power and low voltage SRAM design for LDPC codes hardware applications
Barceló et al. An SET propagation EDA tool based on analytical glitch propagation model

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017536156

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

Country of ref document: EP

Kind code of ref document: A1