WO2016199220A1 - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法 Download PDF

Info

Publication number
WO2016199220A1
WO2016199220A1 PCT/JP2015/066581 JP2015066581W WO2016199220A1 WO 2016199220 A1 WO2016199220 A1 WO 2016199220A1 JP 2015066581 W JP2015066581 W JP 2015066581W WO 2016199220 A1 WO2016199220 A1 WO 2016199220A1
Authority
WO
WIPO (PCT)
Prior art keywords
spin
ising
interaction
ising model
spins
Prior art date
Application number
PCT/JP2015/066581
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/066581 priority Critical patent/WO2016199220A1/ja
Priority to JP2017522787A priority patent/JP6476292B2/ja
Priority to US15/735,033 priority patent/US10896241B2/en
Publication of WO2016199220A1 publication Critical patent/WO2016199220A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Definitions

  • the present invention relates to an information processing apparatus and a control method thereof, and is particularly suitable for application to an information processing apparatus that solves a minimization problem by performing a ground state search of an Ising model.
  • 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 the given spin arrangement, interaction coefficient, and external magnetic field coefficient.
  • the energy function of the Ising model is generally expressed by the following equation.
  • ⁇ i and ⁇ j are values of the i-th and j-th spins
  • J i, j are interaction coefficients between the i-th and j-th spins
  • h i is an external magnetic field coefficient for the i-th spin
  • represents the arrangement of spins.
  • the first term is to calculate the energy due to the interaction between spins.
  • the Ising model is expressed as an undirected graph, and 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. Therefore, in the first term, the influence of the interaction coefficient is calculated for combinations of ⁇ i and ⁇ j that satisfy i ⁇ j.
  • the second term is to calculate the energy due to the external magnetic field for each spin.
  • the ground state search of the Ising model is an optimization problem for obtaining a spin arrangement that minimizes the energy function (generally called a Hamiltonian) of the Ising model. It is known that the ground state search of the Ising model represented by a non-planar graph is NP-hard. In recent years, an apparatus for searching for a ground state has been proposed to solve this problem efficiently (Patent Document 1).
  • the graph structure (Ising model) that can be expressed by the hardware configuration is limited.
  • the converted Ising model is in a form specific to the optimization problem, and therefore the converted Ising model is always mapped to the apparatus of the cited document 1. It is not always possible. Therefore, when dealing with various optimization problems, realization of hardware capable of searching the ground state of an arbitrary Ising model is required.
  • the present invention has been made in view of the above points, and intends to propose an information processing apparatus that can be manufactured inexpensively and easily, and that can search the ground state of an arbitrary Ising model, and a control method thereof.
  • each of the information processing apparatuses that calculate the ground state that is the spin array that minimizes the energy of the problem that is the Ising model or the approximate solution of the ground state as the solution of the problem, each 1 Alternatively, a plurality of semiconductor chips that hold a plurality of spin values and simulate the interaction between the spins, an interchip wiring that connects between the necessary semiconductor chips, and the semiconductor chips are controlled, A control unit that causes each semiconductor chip to perform an interaction operation, and the control unit converts the problem data into a plurality of the semiconductors without changing the ground state spin array of the Ising model of the problem. Convert to lattice Ising model data that can be expressed by the chip, and divide the converted lattice Ising model data And to assign each of the number of the semiconductor chips.
  • the information processing apparatus Controls a plurality of semiconductor chips each holding a value of one or a plurality of spins and simulating the interaction between the spins, an inter-chip wiring connecting each of the necessary semiconductor chips, and each semiconductor chip Then, each of the semiconductor chips has a control unit that executes an interaction calculation, and the control unit changes the problem data without changing the spin arrangement of the ground state of the Ising model of the problem.
  • the ground state of an arbitrary Ising model can be searched.
  • the number of spins that interact with the spin in which another semiconductor chip holds a value can be reduced.
  • chips that connect between semiconductor chips The amount of wiring between the wires can be reduced.
  • (A) And (B) is a graph with which it uses for description of the Ising model conversion method by this Embodiment. It is a conceptual diagram which shows the structural example of a lattice Ising model. (A) And (B) is a conceptual diagram with which it uses for description of the determination method of each coefficient of the lattice Ising model by this Embodiment. It is a block diagram which shows the example of a connection between Ising chips. It is a conceptual diagram with which it uses for description of the division
  • Ising model extended to a directed graph a model expressed by the following expression (2), which is an extension of the Ising model, is hereinafter referred to as an Ising model.
  • the Ising model shown in the equation (1) is that the interaction shown in the directed graph is allowed in the equation (2).
  • the Ising model can be drawn as an undirected graph in graph theory. This is because the interaction of the Ising model does not distinguish between the interaction coefficient J i, j from the i-th spin to the j- th spin and the interaction coefficient J j, i from the j-th spin to the i-th spin. .
  • the present embodiment also deals with the Ising model converted into a directed graph.
  • an Ising model of an undirected graph is handled by an Ising model of a directed graph, it is possible to simply define the same interaction coefficient in both directions of J i, j and J j, i .
  • the energy value of the equation (2) is twice that of the energy function of the equation (1).
  • reference numeral 1 denotes an information processing device according to this embodiment as a whole.
  • the information processing apparatus 1 includes a personal computer, a workstation, a server, or the like, and includes a CPU (Central Processing Unit) 3, a memory 4, a storage device 5, and a plurality of multi-chips 6 connected via a system bus 2. Prepare.
  • CPU Central Processing Unit
  • the CPU 3 is a processor that controls the operation of the information processing apparatus 1 as a whole.
  • the memory 4 is composed of, for example, a volatile semiconductor memory, and is used for storing various programs.
  • the storage device 5 is composed of, for example, a hard disk device or an SSD (Solid State Drive), and is used for holding programs and data for a long period of time.
  • the storage device 5 stores problem data 7 of a single and Ising model problem to be solved by the information processing apparatus 1, and the memory 4 stores a problem conversion program 8 and a multi-izing chip.
  • a control program 9 is stored.
  • the problem conversion program converts the Ising model of such a problem into a single grid Ising model, which will be described later with reference to FIG. 11, as necessary, and divides the problem into a plurality of subproblems as necessary.
  • Is a program for allocating to each multi-izing chip 6.
  • the multi-izing chip control program 9 is a program for performing control for solving the corresponding partial problem in each multi-izing chip 6.
  • a subproblem is a single Ising model form problem that is itself independent of other subproblems.
  • a program for converting problem data that is not in the Ising model format into problem data 7 in the Ising model format may be stored in the memory 4.
  • the multi-ising chip 6 is dedicated hardware for performing a ground state search of the Ising model.
  • a GPU Graphics Processing Unit
  • a GPU Graphics Processing Unit
  • screen rendering processing is an extension that is mounted on the information processing apparatus 1. Take the form of a card.
  • the multi-izing chip 6 includes an interface 10, an Ising chip group 11, and a control unit 12, and is connected to the CPU 3 (FIG. 1) via the interface 10 and the system bus 2 (FIG. 1). Send and receive commands and information between them.
  • the Ising chip group 11 includes a plurality of Ising chips 13 each of which is dedicated hardware for performing a ground state search of the Ising model.
  • the Ising chips 13 are connected by an inter-chip wiring 14, and the Ising chips 13 transmit and receive necessary information via the inter-chip wiring 14.
  • the control unit 12 has a function of controlling each Ising chip 13 constituting the Ising chip group 11, and includes a controller 15, an interaction clock generator 16, and a random number generator 17.
  • the controller 15 is a processor that controls the operation of the entire multi-ising chip 6, and the Ising chip group 11 according to commands given from the CPU 3 (FIG. 1) of the information processing apparatus 1 via the system bus 2 (FIG. 1) and the interface 10. It controls the operation of each Ising chip 13 that constitutes, and the interaction clock generator 16 and random number generator 17.
  • the interaction clock generator 16 is a clock generator that generates an interaction clock described later.
  • the interaction clock generated by the interaction clock generator 16 is given to each Ising chip 13 constituting the Ising chip group 11.
  • the random number generator 17 generates a random number composed of a random bit string for preventing the ground state search executed in each Ising chip 13 from falling into a local optimum solution as will be described later.
  • the random number generated by the random number generator 17 is given to each Ising chip 13.
  • FIG. 3 shows a schematic configuration of the Ising chip 13.
  • the Ising chip 13 includes a spin array 20, an input / output (I / O) address decoder 21, an I / O driver 22, an interaction address decoder 23, and an interchip connection unit 24. Is done.
  • the Ising chip 13 is described on the assumption that it is mounted as a CMOS (Complementary Metal-Oxide Semiconductor) integrated circuit that is widely used at present.
  • CMOS Complementary Metal-Oxide Semiconductor
  • the Ising chip 13 includes an address bus 31, a data bus 32, an R / W control line 33, and an I / O clock line 34 as an SRAM compatible interface 30 for reading / writing to the spin array 20.
  • the Ising chip 13 also includes an interaction address line 36 and an interaction clock line 37 as an interaction control interface 35 for controlling the ground state search of the Ising model.
  • the Ising chip 13 all of the spin ⁇ i , interaction coefficient J i, j, and external magnetic field coefficient h i of the Ising model are expressed by information stored in the memory cells in the spin array 20. Setting of the initial state of the spin ⁇ i and reading of the solution after completion of the ground state search are performed via the SRAM compatible interface 30. The Ising chip 13 also reads / writes the interaction coefficient J i, j and the external magnetic field coefficient h i for setting the Ising model to be searched for the ground state in the spin array 20 via the SRAM compatible interface 30.
  • an address is given to the spin ⁇ i , the interaction coefficient J i, j and the external magnetic field coefficient h i in the spin array 20.
  • the corresponding address is given from the controller 15 to the I / O address decoder 21 via the address bus 31.
  • the R / W control signal for controlling the reading / writing of the spin ⁇ i , the interaction coefficient J i, j and the external magnetic field coefficient h i is sent from the controller 15 via the R / W control line 33 to the I / O driver 22. Given to.
  • the I / O address decoder 21 activates the word line of the spin array 20 based on the address given via the address bus 31, and the I / O driver 22 is given via the R / W control line 33. Based on the R / W control signal, the corresponding bit line in the spin array 20 is driven. As a result, the initial value of the spin ⁇ i given through the data bus 32 and the set values of the interaction coefficient J i, j and the external magnetic field coefficient h i are set in the spin array 20 or after the ground state search is completed. Are read from the spin array 20 and output to the outside via the data bus 32.
  • the address bus 31, the data bus 32, and the R / W control line 33 constituting the SRAM compatible interface 30 are synchronized with the I / O clock supplied from the control unit 12 to the Ising chip 13 via the I / O clock line 34.
  • the interface does not have to be a synchronous interface, and may be an asynchronous interface. This embodiment will be described on the assumption that the interface is a synchronous interface.
  • the Ising chip 13 realizes an interaction between spins in the spin array 20 in order to perform a ground state search.
  • the interaction control interface 35 controls this interaction from the outside. More specifically, the Ising chip 13 inputs an address for designating a spin group that performs an interaction given from the controller 15 through an interaction address line 36 and an interaction clock input through an interaction clock line 37. The interaction is performed in synchronization with the interaction clock from the generator 16.
  • the interaction address decoder 23 reads / writes the interaction coefficient J i, j and the external magnetic field coefficient h i with respect to the spin array 20 based on the address given through the interaction address line 36.
  • the Ising chip 13 has a random number injection line 38 for injecting a random number that inverts the value of the memory cell expressing the spin of the Ising model as will be described later.
  • the random number generated by the random number generator 17 described above with reference to FIG. 2 is applied to the spin array 20 via the random number injection line 38.
  • the inter-chip connection unit 24 functions as an interface for transmitting and receiving a necessary spin ⁇ i value to and from the Ising chip 13 disposed adjacently. Details of the inter-chip connection unit 24 will be described later.
  • the spin array 20 is a spin that realizes the retention of one spin ⁇ i , the associated interaction coefficient J i, j and the external magnetic field coefficient h i , and the ground state search operation.
  • a unit is a basic structural unit, and a number of spin units are arranged.
  • FIG. 4 shows an example in which an Ising model having a three-dimensional lattice topology is configured by arranging a plurality of spin units 40.
  • the example of FIG. 4 is a three-dimensional lattice 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. It is not related to the present invention.
  • 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.
  • a spin (vertex) of degree 5 at the maximum is required.
  • the maximum order 6 is required.
  • the value of adjacent spins (for example, ⁇ j , ⁇ k , ⁇ l , ⁇ m , ⁇ n when there are five adjacent spins) is input to one spin unit 40 shown in FIG. For this reason, the spin unit 40 has a memory cell for holding these input adjacent spin values.
  • the spin unit 40 has an interaction coefficient between the external magnetic field coefficient and the adjacent spin described above (interaction coefficients J j, i , J k, i , J l with the adjacent five spins). , I , J m, i , J n, i ), respectively.
  • FIGS. 7 and 8 show a configuration example of the spin unit 40.
  • the spin unit 40 has two side surfaces, and will be described separately for convenience in FIGS. 7 and 8.
  • one spin unit 40 includes both the configurations of FIGS. 7 and 8.
  • 7 shows a circuit for realizing the interaction between the spin units 40
  • FIG. 8 shows memory cells N, IS0, IS1, IU0, IU1, IL0, IL1, IR0, IR1, ID0, ID1 of the spin unit 40.
  • the spin unit 40 has a plurality of 1-bit memory cells N, IS0, IS1, and IU0 in order to hold the Ising model spin ⁇ i , interaction coefficients J j, i to J n, i, and external magnetic field coefficient h i. , IU1, IL0, IL1, IR0, IR1, ID0, ID1, IF0, and IF1.
  • the memory cells IS0 and IS1, the memory cells IU0 and IU1, the memory cells IL0 and IL1, the memory cells IR0 and IR1, the memory cells ID0 and ID1, and the memory cells IF0 and IF1 each play a role. Therefore, they are collectively abbreviated as memory cell pairs ISx, IUx, ILx, IRx, IDx or IFx as appropriate (see FIG. 5).
  • the spin unit 40 represents the i-th spin.
  • the memory cell N is a memory cell for expressing spin, and holds a spin value.
  • the spin value is + 1 / ⁇ 1 (+1 is also expressed as “up” and “ ⁇ 1” is also expressed as “down”), but this corresponds to 0/1, which is a binary value that the memory cell can hold. For example, +1 corresponds to 1 and ⁇ 1 corresponds to 0.
  • FIG. 5 shows the correspondence between the memory cell pairs ISx, IUx, ILx, IRx, IDx, and IFx included in the spin unit 40 and the topology of the Ising model shown in FIG.
  • the memory cell pair ISx stores an external magnetic field coefficient.
  • the memory cell pairs IUx, ILx, IRx, IDx, and IFx each store an interaction coefficient.
  • the memory cell pair IUx has an upper spin ( ⁇ 1 in the Y-axis direction)
  • the memory cell pair ILx has a left spin ( ⁇ 1 in the X-axis direction)
  • the memory cell pair IRx has a right spin (X-axis direction).
  • +1 memory cell pair IDx stores the lower spin (+1 in the Y-axis direction)
  • memory cell pair IFx stores the interaction coefficient with the spin connected in the depth direction (+1 or -1 in the Z-axis direction).
  • the Ising model is regarded as a directed graph, it will have a coefficient of influence of other spins on its own spin when viewed from one spin.
  • the coefficient of influence of the own spin on other spins belongs to each other spin. That is, the spin unit 40 is connected to a maximum of five spins.
  • the external magnetic field coefficient and the interaction coefficient correspond to three values of + 1/0 / -1. Therefore, in order to represent the external magnetic field coefficient and the interaction coefficient, a 2-bit memory cell is required.
  • the memory cell pairs ISx, IUx, ILx, IRx, IDx, and IFx are combinations of two memory cells with the last digits 0 and 1 (for example, memory cells IS0 and IS1 in the case of the memory cell pair ISx), + 1 / 3 values of 0 / -1 are expressed.
  • + 1 / ⁇ 1 is expressed by the memory cell IS1, +1 when the value held by the memory cell IS1 is 1, and ⁇ 1 when the value held by the memory cell IS1 is 0. Represents.
  • the memory cells N, IS0, IS1, IU0, IU1, IL0, IL1, IR0, IR1, ID0, ID1, IF0, and IF1 in the spin unit 40 must be readable / writable from the outside of the Ising chip 13, respectively.
  • the spin unit 40 has a bit line 41 and a word line 42, respectively.
  • the spin units 40 are tiled on the semiconductor substrate and the bit lines 41 and the word lines 42 are connected, and the I / O address decoder 21 and the I / O By driving, controlling, or reading these spin units 40 with the O driver 22, the memory cells in the spin unit 40 are read by the SRAM compatible interface 30 of the Ising chip 13 in the same manner as a general SRAM (Static Random Access Memory). / Can be written.
  • SRAM Static Random Access Memory
  • the spin unit represented in FIG. 9 corresponds to which vertex in the topology of the three-dimensional lattice.
  • the spin unit represented in FIG. 9 corresponds to which vertex in the topology of the three-dimensional lattice.
  • FIG. 9 In order to arrange 3 ⁇ 3 ⁇ 2 3D lattice vertices on a 2D plane, it is arranged so that each lattice vertex of the lattice vertex array in the Z axis direction is inserted in the interval of the lattice vertex array in the X axis direction. Yes.
  • Nx0z, Nx1z, and Nx2z are arranged in the Y-axis direction (the lower side of the drawing is the positive direction of the Y-axis) on the two-dimensional plane of FIG. 9, but the X-axis direction (the right side of the drawing is the positive side of the X-axis).
  • spin units whose Z-axis direction coordinates are 0 and 1 are alternately arranged, such as N0y0, N0y1, N1y0, N1y1, N2y0, and N2y1.
  • the spin unit 40 has a circuit for calculating the interaction and determining the next spin state independently for each spin unit 40.
  • the spin unit 40 has signal lines EN, NU, NL, NR, ND, NF, ON, and RND as interfaces with the outside.
  • the signal line EN is an interface for inputting a switching signal permitting the spin update of the spin unit 40.
  • the signal line ON is an interface for outputting the spin value of the spin unit 40 to another spin unit 40 (unit adjacent in the topology of FIG. 4).
  • the signal lines NU, NL, NR, ND, and NF are interfaces for inputting spin values held by other spin units 40 (adjacent units in the topology of FIG. 4).
  • the signal line NU is the upper spin ( ⁇ 1 in the Y axis direction)
  • the signal line NL is the left spin ( ⁇ 1 in the X axis direction)
  • the signal line NR is the right spin (+1 in the X axis direction)
  • the signal line ND is an input from a spin (+1 in the Y-axis direction)
  • the signal line NF is an input from a spin (+1 or ⁇ 1 in the Z-axis direction) connected in the depth direction.
  • the spin unit 40 determines the next state of the spin so as to minimize the energy between adjacent spins, which is a positive value when looking at the product of the adjacent spins and the interaction coefficient and the external magnetic field coefficient. Is equivalent to determining which is the dominant or negative value.
  • the i-th spin sigma i as a spin ⁇ j, ⁇ k, ⁇ l , the sigma m and 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 logic circuit 46 shown in FIG. 7 is a circuit for performing the above-described interaction.
  • the XNOR circuit 47 obtains the exclusive OR (XNOR) of the adjacent spin state and the values held in the memory cells IU1, IL1, IR1, ID1, and IF1 indicating the interaction coefficient + 1 / ⁇ 1. . This makes it possible to calculate the next state of the spin that minimizes the energy when only that interaction is seen (assuming that +1 is encoded as 1 and -1 is encoded as 0).
  • the next state of the spin can be determined by determining by the majority logic in the majority logic circuit 44 which of the outputs of the XNOR circuit 47 is + 1 / ⁇ 1. Can do. Assuming that the external magnetic field coefficient always corresponds to the interaction coefficient with the spin of state +1, the value of the external magnetic field coefficient simply becomes a value to be input to the majority logic circuit 44 that determines the next state of the spin.
  • the value of the bit (bits held in the bit cells IS0, IU0, IL0, IR0, ID0, and IF0, respectively) that determines the enablement of the coefficient
  • the majority logic circuit 44 is simultaneously inputted with a copy of a value to be a candidate for the next spin state described above or its inversion. For example, when the bit value held by the memory cell IS0 is 0, the bit value held by the memory cell IS1 and the inverted value of the bit value held by the memory cell IS1 are simultaneously input to the majority logic circuit 44. Therefore, there is no influence of the external magnetic field coefficient (the external magnetic field coefficient corresponds to 0). When the bit value held by the memory cell IS0 is 1, the bit value held by the memory cell IS1 and the same value (duplicate) as that value are simultaneously input to the majority logic circuit 44. .
  • the ground state search of the applied Ising model can be realized by minimizing the energy due to the interaction between the spins described above, but this alone may lead to a local optimal solution. Basically, since there is only movement in the direction of decreasing energy, once it falls into the local optimum solution, it cannot get out of it and does not reach the global optimum solution. Therefore, as an action to escape from the local optimum solution, the spin unit 40 has the RND line 49 as an interface in order to probabilistically invert the value of the memory cell expressing the spin.
  • the random number given to the spin array 20 (FIG. 3) from the random number generator 17 (FIG. 2) via the random number injection line 38 (FIG. 3) is transmitted via the RND line 49 as described above.
  • the spin value is probabilistically inverted.
  • a lattice Ising model (hereinafter referred to as a lattice Ising model) can be expressed as the multi-Issing chip 6 (FIG. 1).
  • An Ising model ground state search method according to the present embodiment in which a semiconductor chip is applied and a ground state of an arbitrary Ising model is searched using the multi-Ising chip 6 will be described.
  • FIGS. 10A and 10B and FIG. 11 show the procedure of such an Ising model conversion method.
  • the problem data 7 representing the Ising model shown in FIG. 10A is regarded as an interaction having a coefficient of “0” between spins having no interaction, whereby the Ising model of the complete graph shown in FIG. Convert to data.
  • the Ising model shown in FIG. 10B is converted into a non-planar stepped lattice Ising model shown in FIG. 11 without changing the ground state.
  • the Ising model shown in FIG. 10A may be directly converted to the lattice Ising model shown in FIG.
  • the spins of the spin set are arranged as shown in FIG. In FIG. 11, the spin number indicates which spin corresponds to the spin in the original Ising model (FIG. 10A or 10B).
  • the spin group marked “1” corresponds to a spin set representing spin 1 in the original Ising model.
  • the spin 1 of the original Ising model and the spin set 1 of the Ising model shown in FIG. 11 are expected to have the same value in each ground state.
  • the problem data 7 can be converted into a lattice Ising model composed of as few spins and interspin connections as possible.
  • the configuration of the Ising model in FIG. 11 will be described in more detail.
  • the upper left spin of the layer on the back side in the Z-axis direction is the origin (coordinates (0, 0, 0))
  • the X coordinates of the spins sequentially adjacent in the X-axis direction of this spin 1,...
  • Y coordinates of the spins adjacent in the Y-axis direction of the origin spin are respectively 1, 2,...
  • Z-coordinate of the near layer in the Z-axis direction is 1.
  • spins “1” are respectively arranged, (1,0,0), (1,1,0), (1,2 , 0), (1,3,0), and (1,4,0)
  • spins “2” are arranged, respectively, (3,1,0), (3,2,0), (3,0
  • Spins “3” are placed at the positions (3,0) and (3,4,0), respectively, and at the positions (4,2,0), (4,3,0) and (4,4,0).
  • the spin “4” is arranged, and the spin “5” is arranged at the positions (5, 3, 0) and (5, 4, 0).
  • the spin “2” is arranged at the positions (0, 0, 1) and (1, 0, 1), respectively (0 , 1, 1), (1, 1, 1), and (2, 1, 1)
  • spins “3” are respectively arranged, and (0, 2, 1), (1, 2, 1),
  • Spins “4” are placed at positions 2, 2, 1) and (3, 2, 1), respectively, and (0, 3, 1), (1, 3, 1), (2, 3, 1)
  • Spins “6” are arranged at the positions (3, 3, 1), respectively (0, 4, 1), (1, 4, 1), (2, 4, 1), (3,4, 1).
  • spins “6” are arranged at the positions (4, 4, 1), respectively.
  • the sides connecting the spins that interact with each other are indicated by bold lines, and the sides connecting the spins that do not interact with each other are indicated by thin lines. That is, in the lattice Ising model of FIG. 11, only the spins adjacent to each other in the Y-axis direction interact in the layer on the back side in the Z-axis direction, and the adjacent layers in the Z-axis direction are adjacent to each other in the X-axis direction. Only the spins interact with each other, and the spins adjacent in the Z-axis direction interact with each other in the back layer and the near layer in the Z-axis direction. However, when a side having an interaction coefficient set to “0” is added in order to generate the complete graph of FIG. 10B, the side connecting the spins that do not interact with the lattice Ising model shown in FIG. Exists. For this reason, there is a possibility that the interaction coefficient becomes 0 even in the side connecting the spins indicated by the bold line.
  • the spins of the spin set are arranged in the lattice graph as shown in FIG. That is, the spins of each spin set are arranged so as to extend only in a specific direction in each layer.
  • FIG. 12A shows an Ising model before conversion. Actually, there is an interaction between the spins 1 to n, but it is not shown for the sake of simplicity. In the following, the interaction between spin 0 and spin i is represented as J i . Further, the external magnetic field coefficient at spin 0 is set to h 0 .
  • FIG. 12B shows the Ising model after conversion.
  • a spin set is introduced, and the spin 0 is expressed by the same number of spins (0 1 ,..., 0 n ) as the spins 1 to n that interact with the spin 0.
  • the interaction coefficients between the spins 0 1 to 0 n and the spins 1 to n in this spin set are sequentially set as b 1 ,..., B n ⁇ 1 , and the spins 0 1 to the external magnetic field coefficient at 0 n a 1, «, is set to a n.
  • the interaction between the spin set representing spin 0 and the spin i in the Ising model after conversion is defined as J i .
  • sign (x) is a function that is +1 when x is positive and -1 when it is 0 or less.
  • each Ising model of FIG. 10A or 10B is converted into the lattice Ising model shown in FIG. 11 without changing the ground state.
  • the value of the coefficient can be determined and set.
  • spin unit 40 provided at the end of the Ising chip 13 in order to perform wiring between the spin unit 40 provided at the end of the Ising chip 13 and the corresponding spin unit 40 in the other Ising chip 13, for example, as shown in FIG.
  • Corresponding spin units 40 provided at the chip end portions of each Ising chip 13 need to be connected to each other via a connection portion 50 constituting a part of the inter-chip connection portion 24 (FIG. 3) via the inter-chip wiring 14.
  • the “spin unit 40 provided at the end of the chip” here refers to the spin unit 40 in which the spin unit 40 that holds the adjacent spin value in the Ising model of FIG. Point to.
  • connection part 50 and the inter-chip wiring 14 are formed so as to connect all the corresponding spin units 40 provided at the chip ends of the adjacent Ising chips 13, as shown in FIG.
  • the number of connection parts 50 and the amount of wiring of the inter-chip wiring 14 become too large, resulting in an increase in cost and difficulty in mounting.
  • FIG. 14 shows a lattice Ising model obtained by converting the Ising model having six spins using the conversion method described above with reference to FIGS. If a single Ising chip 13 does not have the necessary number of spin units 40 to represent the entire lattice Ising model, the lattice Ising model is divided into a plurality of regions as shown in FIG. Data in these areas may be assigned to a plurality of Ising chips 13.
  • FIG. 14 shows an example in which the lattice Ising model is divided into four areas AR1 to AR4, and the data of these areas AR1 to AR4 are allocated (mapped) to Ising chip 1 to Ising chip 4, respectively.
  • the Ising chip 13 called “Ising chip 1” and the Ising chip 13 called “Ising chip 2” are at least in the area AR1.
  • the spin units 40 expressing the spins arranged in (1, 2, 1) and the spin units 40 expressing the spins arranged in (2, 1, 1) of the area AR2 and in the area AR1 What is necessary is just to connect between the spin unit 40 expressing the spin arranged at (1, 2, 1) and the spin unit 40 expressing the spin arranged at (2, 2, 1) in the area AR2. .
  • the Ising chip 13 called “Ising chip 1” is provided with a spin provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 2”. Every other spin unit 40 of the units 40 (the spin unit 40 expressing the spins arranged in the above (1, 2, 1) and the spin arranged in (1, 2, 1)) Connection unit 50 is provided in association with each other.
  • every other spin unit 40 (described above) of the spin units 40 provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 1”. And a spin unit 40 expressing a spin arranged at (2,1,1) and a spin unit 40 expressing a spin arranged at (2,2,1). 50 is provided.
  • the connection between the Ising chip 13 called “Ising chip 1” and the Ising chip 13 called “Ising chip 2” is connected to the spin unit 40 expressing the spins arranged in (1, 2, 1) in the area AR1. Between the connection unit 50 connected to the unit 50 and the spin unit 40 expressing the spin arranged in (2, 1, 1) of the area AR2, and (1, 2, 1) in the area AR1.
  • the “Isling chip 1” includes the spin unit 40 expressing the spin and the connection between the spin unit 40 expressing the spin arranged in (2, 2, 1) in the area AR2 and the connection portion 50 connected thereto.
  • the corresponding connecting portions 50 of the Ising chip 13 and the Ising chip 13 called “Ising chip 2” are connected to each other.
  • the number of wirings between the Ising chip 13 called “Ising chip 1” and the Ising chip 13 called “Ising chip 2” can be reduced as compared with FIG.
  • spin unit 40 provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 4”. Every other spin unit 40 (including the spin unit 40 expressing the spin arranged at (1, 3, 1) described above and the spin unit 40 expressing the spin arranged at (1, 4, 1) ) Are provided in association with each other.
  • every other spin unit 40 (described above) of the spin units 40 provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 3”. And a spin unit 40 expressing a spin arranged at (2, 3, 1) and a spin unit 40 expressing a spin arranged at (2, 4, 1). 50 is provided.
  • the connection between the Ising chip 13 called “Ising chip 3” and the Ising chip 13 called “Ising chip 4” is connected to the spin unit 40 representing the spins arranged in (1, 3, 1) in the area AR3. Between part 50 and connection part 50 connected to spin unit 40 expressing the spin arranged in (2, 3, 1) of area AR4, and (1, 4, 1) in area AR3
  • the “Ising chip 3” includes the spin unit 40 expressing the spin and the connection between the spin unit 40 expressing the spin arranged in (2, 4, 1) in the area AR4 and the connecting portion 50 connected thereto.
  • the connecting portions 50 corresponding to the Ising chip 13 and the Ising chip 13 called “Ising chip 4” are connected to each other. Thereby, in the present embodiment, the number of wirings between the Ising chip 13 called “Ising chip 3” and the Ising chip 13 called “Ising chip 4” can be reduced as compared with FIG.
  • the Ising chip 13 called “Ising chip 1” and the Ising chip 13 called “Ising chip 3” are at least in the area AR1.
  • the spin units 40 expressing the spins arranged at (0, 2, 0) between the spin units 40 expressing the spins arranged at (0, 3, 0) in the area AR3, and in the area AR1.
  • What is necessary is just to connect between the spin unit 40 expressing the spin arranged at (1, 2, 0) and the spin unit 40 expressing the spin arranged at (1, 3, 0) in the area AR3. .
  • the Ising chip 13 called “Ising chip 1” is provided with a spin provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 3”. Every other spin unit 40 of the units 40 (the spin unit 40 expressing the spin arranged at the above (0, 2, 0) and the spin arranged at (1, 2, 0)) Connection unit 50 is provided in association with each other.
  • every other spin unit 40 (described above) of the spin units 40 provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 1”. And a spin unit 40 expressing a spin arranged at (0, 3, 0) and a spin unit 40 expressing a spin arranged at (1, 3, 0). 50 is provided.
  • the connection between the Ising chip 13 called “Ising chip 1” and the Ising chip 13 called “Ising chip 3” is connected to the spin unit 40 expressing the spins arranged in (0, 2, 0) in the area AR1. Between the unit 50 and the connection unit 50 connected to the spin unit 40 expressing the spin arranged at (0, 3, 0) in the area AR3, and at (1, 2, 0) in the area AR1.
  • the “Ising chip 1” includes the spin unit 40 expressing the spin and the connection between the spin unit 40 expressing the spin arranged at (1, 3, 0) in the area AR3 and the connection portion 50 connected thereto.
  • the corresponding connecting portions 50 of the Ising chip 13 and the Ising chip 13 called “Ising chip 3” are connected to each other. Thereby, in the present embodiment, the number of wirings between the Ising chip 13 called “Ising chip 1” and the Ising chip 13 called “Ising chip 3” can be reduced as compared with FIG.
  • spin unit 40 provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 4”. Every other spin unit 40 (including a spin unit 40 expressing a spin arranged at (2, 2, 0) and a spin unit 40 expressing a spin arranged at (3, 2, 0). ) Are provided in association with each other.
  • every other spin unit 40 (described above) of the spin units 40 provided at the end of the chip adjacent to the Ising chip 13 called “Ising chip 3”. And a spin unit 40 expressing a spin arranged at (2, 3, 0) and a spin unit 40 expressing a spin arranged at (3, 3, 0). 50 is provided.
  • connection between the Ising chip 13 called “Ising chip 2” and the Ising chip 13 called “Ising chip 4” is connected to the spin unit 40 expressing the spins arranged in (2, 2, 0) in the area AR2. Between the connection unit 50 connected to the unit 50 and the spin unit 40 expressing the spin arranged in (2, 3, 0) of the area AR4, and (3, 2, 0) in the area AR2. Between the connection unit 50 connected to the spin unit 40 expressing the spin and the connection unit 50 connected to the spin unit 40 expressing the spin arranged at (3, 3, 0) in the area AR4. In addition, the corresponding connecting portions 50 of the Ising chip 13 called “Ising chip 2” and the Ising chip 13 called “Ising chip 4” are connected to each other. Thus, in the present embodiment, the number of wirings between the Ising chip 13 called “Ising chip 2” and the Ising chip 13 called “Ising chip 4” can be reduced as compared with FIG.
  • FIG. 17 shows the connection relationship between the Ising chips 13 in the multi-Ising chip 6 together with FIGS. 15 and 16.
  • FIG. 17 in order to avoid complication of the drawing, the connection relationship between the three Ising chips 13 “Ising chip 1” to “Ising chip 3” is shown. Omitted.
  • FIG. 18 shows a processing procedure of the ground state search process executed by the CPU 3 (FIG. 1) in the information processing apparatus 1.
  • the CPU 3 uses the problem converting program 8 (FIG. 1) for step SP1 and the necessary multi-izing chip for the subsequent processing (step SP2 to step SP13) based on the multi-izing chip control program 9 (FIG. 1).
  • the ground state search is executed in these Ising chips 13. Note that the processing in step SP1 and the processing in steps SP2 to SP13 may be executed at different timings.
  • the CPU 3 controls the Ising chip 13 in each multi-ising chip 6 and the spin unit 40 in the Ising chip 13 via the controller 15 (FIG. 2) in the multi-ising chip 6. For the sake of simplicity, the description will be made ignoring the presence of the controller 15.
  • the problem data 7 (FIG. 1) is converted into data in the lattice Ising model format described above with reference to FIG. 11 (SP1).
  • the CPU 3 sets the interaction coefficient and the external magnetic field coefficient of the lattice Ising model after conversion in each spin unit 40 in each Ising chip 13 of the necessary Multi Ising chip 6 (SP2).
  • the CPU 3 determines a spin value to be held by each spin unit by a random number, and sets the spin value of each spin unit 40 in each Ising chip 13 in the Ising chip 13 in the multi-izing chip 6 so that the determined spin value is obtained.
  • the value is initialized (SP3).
  • the CPU 3 sets a probability (hereinafter referred to as a bit probability) that “1” appears in a random number generated by the random number generator 17 (FIG. 2) in each predetermined multi-izing chip 6 (SP4). ).
  • a bit probability a probability that “1” appears in a random number generated by the random number generator 17 (FIG. 2) in each predetermined multi-izing chip 6 (SP4).
  • the bit probability in the random number generated by the random number generator 17 is set high, and then the bit probability is lowered stepwise.
  • the spin value held by each spin unit 40 can be easily reversed at the initial stage, and thereafter, the spin value can be gradually difficult to reverse (easily converge to “0” or “1”).
  • step SP4 the bit probabilities at the above-described stages are set.
  • the CPU 3 sets the number of times of execution of the interaction calculation for each predetermined bit probability (SP5), and thereafter, in order to synchronize the timing between the Ising chips 13, each connecting portion 50 ( The counters in FIGS. 13 to 15 are reset (the count value is set to “0”) (SP6).
  • the CPU 3 drives the interaction clock generator 16 (FIG. 2) of the multi-Ising chip 6 to execute the interaction operation in each spin unit 40 in each Ising chip 13 once (SP7), Thereafter, it is determined whether or not the interaction operation has been executed for the number of times set for the current bit probability (SP8). If the CPU 3 obtains a negative result in this determination, it returns to step SP7, and thereafter repeats the processing of step SP7 and step SP8.
  • step SP8 When the CPU 3 eventually obtains an affirmative result in step SP8 by performing the interaction operation for the set number of times for the currently set bit probability, the CPU 3 performs the interaction operation for each bit probability set in step SP5. It is determined whether or not all execution has been completed (SP9).
  • the CPU 3 If the CPU 3 obtains a negative result in this determination, it updates the bit probability to a predetermined bit probability lower than the current bit probability (SP10), and then sets the number of interaction operations to be executed thereafter for the bit probability. Update to a predetermined number of times (SP11). Then, the CPU 3 returns to step SP7, and thereafter repeats the processing of step SP7 to step SP11.
  • SP10 current bit probability
  • SP11 predetermined number of times
  • step SP9 When the CPU 3 eventually obtains an affirmative result in step SP9 by completing the execution of all the interaction operations for each bit probability set in step SP5, the CPU 3 in the Ising chip 13 in the target multi-izing chip 6 at that time.
  • the spin value held by each spin unit 40 is read (SP12).
  • the CPU 3 compares the spin unit stored in the memory 4 with data representing the correspondence relationship between the original Ising model and determines the value of each spin in the original Ising model from the read spin value (SP13).
  • the ground state of the Ising model is not always obtained by the above ground state search process.
  • all the spins in the spin set may not have the same value. Therefore, in such a case, the value of the spin corresponding to the original Ising model is determined by selecting the value with the larger number of spins in each spin set. Further, if the tendency of becoming a ground state value for each spin is different, the majority may be determined by weighting according to the tendency.
  • the CPU 3 thereafter ends this ground state search process.
  • FIG. 19 shows specific processing contents of the CPU 3 in SP1 of FIG.
  • the problem data 7 is recorded in the memory 4 (FIG. 1), for example, in the format shown on the left side of FIG.
  • the first column and the second column of each row represent spins
  • the third column represents an interaction coefficient between these spins.
  • the third column represents the external magnetic field coefficient of the spins.
  • the CPU 3 first inputs problem data 7 (SP20). Then, the CPU 3 searches for the ground state of the Ising model using a plurality of Ising chips 13 and has a graph structure in which the input problem data 7 has no interaction as shown in FIG. If so, the coefficient at that point is set to “0”, and the problem data 7 is converted into intermediate data (the right side of FIG. 20A) representing the Ising model of a complete graph as shown in FIG. 10B (SP21). ).
  • the CPU 3 converts the intermediate data obtained in step SP20 into output data as shown on the left side of FIG. 20B representing the lattice Ising model described above with reference to FIG. 11 (SP22).
  • the output data obtained by this conversion is expressed in the same format as the problem data 7, for example.
  • the CPU 3 divides the output data obtained in step SP22 as necessary into Ising models of a scale that can be expressed by each of the multi-ising chips 6 (FIG. 1) (SP23).
  • the CPU 3 records the output data in the memory 4 (SP24). Further, since the concept of spin set is used in the conversion process of step SP22, one spin is represented by the original Ising model, and a plurality of spins are represented by the Ising model represented by the output data. Therefore, the CPU 3 also records in the memory 4 the data on the right side of FIG. 20 (B) indicating which spin corresponds to the spin of the original Ising model in the lattice Ising model represented by the output data obtained in step SP22 ( SP24). On the right side of FIG. 20B, the original Ising model spin 1 corresponds to the spins 1 to 5 in the converted Ising model.
  • step SP24 the CPU 3 obtains the interaction coefficient and the external magnetic field coefficient for the partial problem obtained by dividing the problem after conversion as necessary, in each Ising chip 13 of the required multi-izing chip 6. Is set for each of the spin units 40 (SP24), and then the processing of FIG. 19 is terminated and the processing returns to the ground state search processing of FIG.
  • FIG. 21 shows an example of expressing a complete graph with a spin number of “7” using a spin set for a multi-izing chip 6 that can express a lattice Ising model composed of a three-layer lattice graph.
  • the upper left spin of the layer on the back side in the Z-axis direction is the origin (coordinates (0, 0, 0))
  • the X coordinates of the spins sequentially adjacent in the X-axis direction are respectively , 1,...
  • Y coordinates of spins adjacent in the Y-axis direction of the origin spin are respectively 1, 2,...
  • And Z-coordinate of the near layer in the Z-axis direction is 1.
  • the spin arrangement in the innermost layer in the Z-axis direction (the layer whose Z coordinate is “0”) and the middle layer in the Z-axis direction (the layer whose Z coordinate is “1”) are This is the same as the two-layer lattice Ising model described above with reference to FIG.
  • the sides connecting the spins that interact with each other are indicated by bold lines, and the sides connecting the spins that do not interact with each other are indicated by thin lines. That is, in the lattice Ising model of FIG. 21, in the innermost layer in the Z-axis direction, only the spins adjacent to each other in the Y-axis direction interact with each other, and in the intermediate layer in the Z-axis direction, adjacent to the X-axis direction. Only the spins that interact with each other, and in the layer on the near side in the Z-axis direction, the spins adjacent to each other in the X-axis direction or the Y-axis direction interact with each other, and the inner layer and the middle layer in the Z-axis direction. And between the layers on the near side, adjacent spins in the Z-axis direction interact.
  • the problem data 7 includes a plurality of Ising chips so as not to change the ground state spin arrangement of the Ising model in question.
  • searching for a ground state of an arbitrary Ising model by converting the data of the stepped lattice Ising model that can be expressed by 13 and dividing the data of the lattice Ising model and assigning the data to each Ising chip 13.
  • the spins in which a certain Ising chip 13 holds a value the number of spins that interact with the spin in which another semiconductor chip holds a value can be reduced.
  • the Ising chips 13 are connected to each other. Therefore, the amount of wiring between chips can be reduced.
  • an information processing apparatus that can be manufactured inexpensively and easily and can search for the ground state of an arbitrary Ising model can be realized.
  • connection unit 50 is associated with each other spin unit 40 of the spin units 40 provided at the chip end of the Ising chip 13.
  • the present invention is not limited to this, and the spin unit 40 of the Ising chip 13 is connected to the corresponding connecting portions 50 of the other Ising chips 13.
  • the connection unit 50 is provided in association with only the spin unit 40 that interacts with the spin whose value is held by the spin unit 40 in the other Ising chip 13, and these connection units 50 correspond to the other Ising chips 13. You may make it connect with the connection part 50 to each. By doing so, the amount of wiring between the Ising chips 13 can be further reduced.
  • the present invention can be widely applied to semiconductor devices that perform the ground state search of the Ising model.
  • SYMBOLS 1 Information processing apparatus, 3 ... CPU, 6 ... Multi-ising chip, 7 ... Problem data, 8 ... Problem conversion program, 9 ... Multi-ising chip control program, 13 ... Ising chip, 14 ... Interchip wiring, 20... Spin array, 24... Interchip connection, 40... Spin unit, 50.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Electromagnetism (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multi Processors (AREA)
  • Hall/Mr Elements (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置及びその制御方法を提案する。 【解決手段】 それぞれ1又は複数のスピンの値を保持し、スピン間の相互作用を模擬する複数の半導体チップと、必要な半導体チップ間をそれぞれ接続するチップ間配線と、各半導体チップに相互作用演算をそれぞれ実行させる制御部とを情報処理装置に設け、制御部が、問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の半導体チップにより表現可能な格子状のイジングモデルのデータに変換し、変換した格子状のイジングモデルのデータを分割して複数の半導体チップにそれぞれ割り当て、各半導体チップに相互作用演算をそれぞれ実行させるようにした。

Description

情報処理装置及びその制御方法
 本発明は情報処理装置及びその制御方法に関し、特に、イジングモデルの基底状態探索を行うようにして最低化問題を解く情報処理装置に適用して好適なものである。
 イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/-1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数、及び、スピン毎にある外部磁場係数で定義される。
 イジングモデルは与えられたスピン配列、相互作用係数、及び、外部磁場係数から、その時のエネルギーを計算することが出来る。イジングモデルのエネルギー関数は一般的に次式で表わされる。
Figure JPOXMLDOC01-appb-M000009
 なお、σ,σはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hはi番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。
 (1)式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。そのため、第一項ではi<jを満たすσ,σの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。
 イジングモデルの基底状態探索はイジングモデルのエネルギー関数(一般にハミルトニアンとも呼ばれる)を最小化するスピン配列を求める最適化問題である。非平面グラフで表されるイジングモデルの基底状態探索はNP困難であることが知られている。近年この問題を効率的に解くため基底状態を探索する装置が提案されている(特許文献1)。
特開2012-217518号公報
 ところで、かかる特許文献1に開示された装置では、ハードウェア構成によって表現可能なグラフ構造(イジングモデル)が限定される。しかしながら、最適化問題をイジングモデルの基底状態探索問題に変換した場合、変換後のイジングモデルがその最適化問題に固有の形態となるため、変換後のイジングモデルを常に引用文献1の装置にマッピングできるとは限らない。よって、様々な最適化問題への対応を考えると、任意のイジングモデルの基底状態探索が可能なハードウェアの実現が要求される。
 完全グラフを表現可能なハードウェアによれば、この課題は解決される。しかしこの場合、ハードウェア内の配線が複雑になり、スケーラビリティおよびエネルギー効率が低下するだけでなく、安価かつ容易に製造できないという問題がある。
 そこで基底状態を変化させることなく、基底状態を求めたいイジングモデルを、ハードウェアが表現可能なグラフで表されるイジングモデルに変換することが求められる。特に、半導体装置のような固体素子でハードウェアを構成するとき、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの記憶装置に代表されるようなアレイ構造で実現される。そのため任意のイジングモデルを基底状態不変で格子イジングモデルに変換することが望ましい。
 本発明は以上の点を考慮してなされたもので、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置及びその制御方法を提案しようとするものである。
 かかる課題を解決するため本発明においては、イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置において、それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部とを有し、前記制御部が、前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換し、変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てるようにした。
 また本発明においては、イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置の制御方法において、前記情報処理装置は、それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部とを有し、前記制御部が、前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換する第1のステップと、前記制御部が、変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てる第2のステップと、前記制御部が、各前記半導体チップに前記相互作用演算をそれぞれ実行させる第3のステップとを設けるようにした。
 本情報処理装置及びその制御方法によれば、任意のイジングモデルの基底状態を探索することができる。また、ある半導体チップが値を保持するスピンのうち、他の半導体チップが値を保持するスピンに相互作用を及ぼすスピンの数を低減させることができるため、結果として、半導体チップ間を接続するチップ間配線の配線量を抑えることができる。
 本発明によれば、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置及びその制御方法を実現できる。
本実施の形態による情報処理装置の全体構成を示すブロック図である。 マルチイジングチップの構成を示すブロック図である。 イジングチップの構成を示すブロック図である。 3次元格子のスピンアレイの構成の一例を説明する概念図である。 スピンアレイの構成の説明に供する概念図である。 スピンアレイの構成の説明に供する概念図である。 スピンユニットの構成を示すブロック図である。 スピンユニットの構成を示すブロック図である。 イジングチップ上のスピンユニットの配置例を示すブロック図である。 (A)及び(B)は、本実施の形態によるイジングモデル変換方法の説明に供するグラフである。 格子イジングモデルの構成例を示す概念図である。 (A)及び(B)は、本実施の形態による格子イジングモデルの各係数の決定方法の説明に供する概念図である。 イジングチップ間の接続例を示すブロック図である。 格子イジングモデルのデータの複数のイジングチップへの分割割当て方法の説明に供する概念図である。 本実施の形態によるイジングチップ間の接続例を示すブロック図である。 本実施の形態によるイジングチップ間の接続例を示すブロック図である。 本実施の形態によるイジングチップ間の接続例を示すブロック図である。 基底状態探索処理の処理手順を示すフローチャートである。 本実施の形態によるイジングモデル変換処理の処理手順を示すフローチャートである。 (A)及び(B)は、本実施の形態によるイジングモデル変換処理の説明に供する概念図である。 3層の格子グラフからなる格子イジングモデルの構成例を示す概念図である。
 以下図面について、本発明の一実施の形態を詳述する。
 (1)有向グラフに拡張したイジングモデル
 本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
Figure JPOXMLDOC01-appb-M000010
 (1)式で示したイジングモデルとの違いは、(2)式では有向グラフで示されるような相互作用が許されることにある。一般的にイジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jとj番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
 本発明はイジングモデルを拡張し、Ji,jとJj,iを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも(1)式のエネルギー関数に対して(2)式のエネルギー関数ではエネルギーの値が2倍になる。
(2)本実施の形態による情報処理装置の構成
(2-1)情報処理装置の全体構成
 図1において、1は全体として本実施の形態による情報処理装置を示す。この情報処理装置1は、パーソナルコンピュータやワークステーション又はサーバなどから構成され、システムバス2を介して接続されたCPU(Central Processing Unit)3、メモリ4、記憶装置5及び複数のマルチイジングチップ6を備える。
 CPU3は、情報処理装置1全体の動作制御を司るプロセッサである。またメモリ4は、例えば揮発性の半導体メモリから構成され、各種プログラムを記憶するために利用される。記憶装置5は、例えばハードディスク装置やSSD(Solid State Drive)などから構成され、プログラムやデータを長期間保持するために利用される。
 本実施の形態の場合、記憶装置5には、本情報処理装置1が解くべき単一かつイジングモデル形式の問題の問題データ7が格納され、メモリ4には、問題変換プログラム8及びマルチイジングチップ制御プログラム9が格納される。問題変換プログラムは、かかる問題のイジングモデルを必要に応じて図11について後述する単一の格子イジングモデルに変換すると共に、この問題を必要に応じて複数の部分問題に分割し、これらの部分問題を個々のマルチイジングチップ6にそれぞれ振り分けるプログラムである。またマルチイジングチップ制御プログラム9は、個々のマルチイジングチップ6において対応する部分問題を解くための制御を行うためのプログラムである。部分問題は、それ自体が他の部分問題と独立した単一のイジングモデル形式の問題である。
 なお、イジングモデル形式でない問題データをイジングモデル形式の問題データ7に変換するプログラムをメモリ4に格納しておくようにしてもよい。このようにすることによりイジングモデル形式でない問題についても対応可能となり、本情報処理装置1の有用性を向上させることができる。
 マルチイジングチップ6は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるGPU(Graphics Processing Unit)のように、情報処理装置1に装着する拡張カードの形態を取る。
 マルチイジングチップ6は、図2に示すように、インタフェース10、イジングチップ群11及び制御部12を備えて構成され、インタフェース10及びシステムバス2(図1)を介してCPU3(図1)との間でコマンドや情報の送受を行う。
 イジングチップ群11は、それぞれがイジングモデルの基底状態探索を行う専用のハードウェアである複数のイジングチップ13から構成される。イジングチップ13間はチップ間配線14により接続されており、このチップ間配線14を介してイジングチップ13同士が必要な情報を送受する。
 制御部12は、イジングチップ群11を構成する各イジングチップ13を制御する機能を有し、コントローラ15、相互作用クロック生成器16及び乱数発生器17を備えて構成される。
 コントローラ15は、マルチイジングチップ6全体の動作制御を司るプロセッサであり、情報処理装置1のCPU3(図1)からシステムバス2(図1)及びインタフェース10を介して与えられるコマンドに従ってイジングチップ群11を構成する各イジングチップ13の動作や、相互作用クロック生成器16及び乱数発生器17を制御する。
 また相互作用クロック生成器16は、後述する相互作用クロックを生成するクロック生成器である。相互作用クロック生成器16により生成された相互作用クロックは、イジングチップ群11を構成する各イジングチップ13にそれぞれ与えられる。乱数発生器17は、後述のように各イジングチップ13において実行される基底状態探索が局所最適解に陥るのを防止するためのランダムなビット列でなる乱数を発生させる。乱数発生器17により発生された乱数は、各イジングチップ13にそれぞれ与えられる。
(2-2)イジングチップの構成
 図3は、イジングチップ13の概略構成を示す。この図3に示すように、イジングチップ13は、スピンアレイ20、I/O(Input/output)アドレスデコーダ21、I/Oドライバ22、相互作用アドレスデコーダ23及びチップ間接続部24を備えて構成される。本実施の形態では、イジングチップ13は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
 イジングチップ13は、スピンアレイ20にリード/ライトを行うためのSRAM互換インタフェース30としてアドレスバス31、データバス32、R/W制御線33及びI/Oクロック線34を備える。またイジングチップ13は、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース35として、相互作用アドレス線36及び相互作用クロック線37も備える。
 イジングチップ13では、イジングモデルのスピンσ、相互作用係数Ji,j及び外部磁場係数hをすべてスピンアレイ20内のメモリセルに記憶する情報で表現する。スピンσの初期状態の設定や基底状態探索完了後の解読み出しはSRAM互換インタフェース30を介して行う。またイジングチップ13では、基底状態を探索すべきイジングモデルをスピンアレイ20に設定するための相互作用係数Ji,j及び外部磁場係数hのリード/ライトもSRAM互換インタフェース30を介して行う。
 そのため、スピンアレイ20内のスピンσ、相互作用係数Ji,j及び外部磁場係数hにはアドレスが付与されている。そしてイジングチップ13にスピンσ、相互作用係数Ji,j又は外部磁場係数hをリード/ライトする場合、対応するアドレスがコントローラ15からアドレスバス31を介してI/Oアドレスデコーダ21に与えられ、これらスピンσ、相互作用係数Ji,j及び外部磁場係数hのリード/ライトを制御するR/W制御信号がコントローラ15からR/W制御線33を介してI/Oドライバ22に与えられる。
 かくしてI/Oアドレスデコーダ21は、アドレスバス31を介して与えられたアドレスに基づいてスピンアレイ20のワード線をアクティベートし、I/Oドライバ22は、R/W制御線33を介して与えられたR/W制御信号に基づいてスピンアレイ20内の対応するビット線を駆動する。これによりデータバス32を介して与えられたスピンσの初期値や、相互作用係数Ji,j及び外部磁場係数hの設定値がスピンアレイ20に設定され、又は、基底状態探索完了後の解がスピンアレイ20から読み出されてデータバス32を介して外部に出力される。
 なお、SRAM互換インタフェース30を構成するアドレスバス31、データバス32及びR/W制御線33は、I/Oクロック線34を介して制御部12からイジングチップ13に与えられるI/Oクロックに同期して動作する。ただし、本発明においてインタフェースが同期式である必要はなく、非同期式のインタフェースでも良い。本実施の形態では、同期式のインタフェースであるという前提で説明を行う。
 また、イジングチップ13は、基底状態探索を行うために、スピンアレイ20の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース35である。具体的に、イジングチップ13は、コントローラ15から与えられる相互作用を行うスピン群を指定するアドレスを相互作用アドレス線36を介して入力し、相互作用クロック線37を介して入力される相互作用クロック生成器16からの相互作用クロックに同期して相互作用を行う。相互作用アドレスデコーダ23は、相互作用アドレス線36を介して与えられたアドレスに基づいてスピンアレイ20に対する相互作用係数Ji,j及び外部磁場係数hのリード/ライトを行う。
 加えて、イジングチップ13は、後述のようにイジングモデルのスピンを表現するメモリセルの値を確率的に反転させる乱数を注入するための乱数注入線38を有している。図2について上述した乱数発生器17により発生された乱数は、この乱数注入線38を介してスピンアレイ20に与えられる。
 チップ間接続部24は、隣接して配置されたイジングチップ13との間で必要なスピンσの値を送受する際のインタフェースとして機能する。チップ間接続部24の詳細については後述する。
(2-3)スピンアレイの構成
 スピンアレイ20は、1個のスピンσ並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
 図4は、スピンユニット40を複数個並べることで、3次元格子状のトポロジを持つイジングモデルを構成する例を示している。図4の例は、3(X軸方向)×3(Y軸方向)×2(Z軸方向)の大きさの3次元格子である。座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、図面奥行き方向をZ軸としているが、この座標軸は実施の形態の説明上便宜的に必要なだけであり、本発明とは関係しない。3次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図4の3次元格子状のトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数5のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数6が必要となる。
 図4に示す1個のスピンユニット40には、隣接するスピン(例えば隣接するスピンが5個の場合σ,σ,σ,σ,σ)の値が入力される。このためスピンユニット40は、これら入力する隣接するスピンの値を保持するためのメモリセルを有している。またスピンユニット40は、かかるスピンの値に加え、外部磁場係数と、上述した隣接するスピンとの相互作用係数(隣接する5スピンとの相互作用係数Jj,i,Jk,i,Jl,i,Jm,i,Jn,i)とをそれぞれ保持するメモリセルをも有している。
(2-4)スピンユニットの構成
 スピンユニット40の一構成例を図7及び図8を用いて説明する。スピンユニット40は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット40は図7及び図8の構成の双方を含む。図7はスピンユニット40間の相互作用を実現するための回路を示し、図8はスピンユニット40が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ13外からアクセスするためのインタフェースであるビット線41とワード線42とに注目してスピンユニット40の構成を図示したものである。
 スピンユニット40は、イジングモデルのスピンσ、相互作用係数Jj,i~Jn,i及び外部磁場係数hを保持するために、複数の1ビットのメモリセルN,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と略記する(図5参照)。
 ここで、スピンユニット40はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/-1(+1を上、-1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、-1を0に対応させる。
 図5を用いて、スピンユニット40が有するメモリセル対ISx,IUx,ILx,IRx,IDx及びIFxと、図4に示したイジングモデルのトポロジとの対応関係を示す。メモリセル対ISxは外部磁場係数を記憶する。また、メモリセル対IUx,ILx,IRx,IDx及びIFxは、それぞれ相互作用係数を記憶する。具体的に、メモリセル対IUxは上側のスピン(Y軸方向で-1)、メモリセル対ILxは左側のスピン(X軸方向で-1)、メモリセル対IRxは右側のスピン(X軸方向で+1)、メモリセル対IDxは下側のスピン(Y軸方向で+1)、メモリセル対IFxは奥行き方向に接続するスピン(Z軸方向で+1ないしは-1)との相互作用係数をそれぞれ記憶する。
 また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット40は最大で5個のスピンと接続される。本実施の形態のイジングチップ13では、外部磁場係数及び相互作用係数として+1/0/-1の3値に対応する。そのため、外部磁場係数及び相互作用係数を表わすためには、それぞれ2ビットのメモリセルが必要となる。
 メモリセル対ISx,IUx,ILx,IRx,IDx及びIFxは、末尾の数字が0と1の2つのメモリセル(例えばメモリセル対ISxの場合にはメモリセルIS0及びIS1)の組合せで、+1/0/-1の3値を表現する。例えば、メモリセル対ISxの場合には、メモリセルIS1で+1/-1を表現し、メモリセルIS1が保持する値が1の時は+1、メモリセルIS1が保持する値が0の時には-1を表す。
 これに加えて、メモリセルIS0が保持する値が0の時には外部磁場係数を0と見なし、メモリセルIS0が保持する値が1の時にはメモリセルIS1が保持する値で決まる+1/-1のいずれかを外部磁場係数とする。外部磁場係数が0の時は外部磁場係数をディセーブルしていると考えれば、メモリセルIS0に保持された値は外部磁場係数のイネーブルビットであると言うことができる(IS0=1の時に、外部磁場係数がイネーブルされる)。相互作用係数を記憶するメモリセル対IUx,ILx,IRx,IDx及びIFxも同様に係数とビットの値とを対応させている。
 スピンユニット40内のメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0及びIF1は、それぞれイジングチップ13の外部からリード/ライト可能でなければならない。そのために、図8に示すように、スピンユニット40はビット線41とワード線42とをそれぞれ有している。
 そしてイジングチップ13では、図9に示すように、スピンユニット40が半導体基板上にタイル状に並べられてビット線41とワード線42とが接続されており、I/Oアドレスデコーダ21とI/Oドライバ22でこれらのスピンユニット40を駆動、制御又は読み出しすることにより、一般的なSRAM(Static Random Access Memory)と同様にスピンユニット40内のメモリセルをイジングチップ13のSRAM互換インタフェース30でリード/ライトすることができるようになされている。
 なお図9上で表現されているスピンユニット(NxyzというようにX軸、Y軸及びZ軸上の位置によって符号を付与している)が、3次元格子のトポロジでどの頂点に対応するかを図6に示す。3×3×2の3次元格子頂点を2次元平面上に配置するために、X軸方向の格子頂点配列の間隔にZ軸方向の格子頂点配列の各格子頂点を挿入するように配置している。すなわち、図9の2次元平面上でのY軸方向(図面下側がY軸の正方向)にはNx0z,Nx1z,Nx2zというように配置されるが、X軸方向(図面右側がX軸の正方向)にはN0y0,N0y1,N1y0,N1y1,N2y0,N2y1というように、Z軸方向座標が0と1のスピンユニットが交互に配置される。
 またスピンユニット40は同時に更新を行うために、相互作用を計算して次のスピンの状態を決定するための回路を、スピンユニット40毎に独立して持っている。図7では、スピンユニット40は、外部とのインタフェースとして、信号線EN,NU,NL,NR,ND,NF,ON及びRNDを有する。信号線ENは、当該スピンユニット40のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ43を制御することで、メモリセルNに保持されたスピンの値を、後述の多数決論理回路44からOR回路45を介してセレクタ43に与えられる値に更新することができる。
 信号線ONは、当該スピンユニット40のスピンの値を他のスピンユニット40(図4のトポロジで隣接するユニット)に出力するインタフェースである。信号線NU,NL,NR,ND及びNFは、それぞれ他のスピンユニット40(図4のトポロジで隣接するユニット)が保持するスピンの値を入力するためのインタフェースである。信号線NUは上側のスピン(Y軸方向で-1)、信号線NLは左側のスピン(X軸方向で-1)、信号線NRは右側のスピン(X軸方向で+1)、信号線NDは下側のスピン(Y軸方向で+1)、信号線NFは奥行き方向に接続するスピン(Z軸方向で+1ないしは-1)からの入力である。
 スピンユニット40では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を見たときに、正の値と負の値のどちらが支配的か判断することと等価である。例えば、i番目スピンσに、スピンσ,σ,σ,σ及びσが隣接しているとして、スピンσの次状態は以下のように決まる。
 まず、隣接スピンの値はσ=+1,σ=-1,σ=+1,σ=-1,σ=+1とし、相互作用係数はJj,i=+1,Jk,i=+1,Jl,i=+1,Jm,i=-1,Jn,i=-1、外部磁場係数h=+1とする。このとき、相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べると、σ×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番目スピンの次状態を決定することができる。
 図7に示した論理回路46は、上述の相互作用を行うための回路である。まず、隣接スピンの状態と、相互作用係数の+1/-1を示すメモリセルIU1,IL1,IR1,ID1,IF1が保持する値との排他的論理和の否定(XNOR)をXNOR回路47で求める。これにより、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、-1は0にエンコードされているものとする)。
 もし、相互作用係数が+1/-1だけであれば、XNOR回路47の出力のうち+1/-1のどちらが多いかを多数決論理回路44において多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理回路44に入力すべき値となる。
 次に、係数0の実現方法について考える。n入力の多数決論理f(I1,I2,I3,……,In)があるとき、以下の命題は真であると言える。まず、入力I1,I2,I3,……,Inの複製I’1,I’2,I’3,……,I’nがあるとする(任意のkについて、Ik=I’kである)。このとき、f(I1,I2,I3,……,In)の出力は、複製もあわせて入力したf(I1,I2,I3,……,In,I’1,I’2,I’3,……,I’n)と等しい。つまり、各入力変数をそれぞれ2個ずつ入れても、出力は不変である。さらに、入力I1,I2,I3,……,Inの他に、もう一つの入力Ixと、その反転!Ixがあるとする。このとき、f(I1,I2,I3,……,In,Ix,!Ix)の出力は、f(I1,I2,I3,……,In)と等しい。つまり、入力変数とその反転を入力すると、多数決においてその入力変数の影響をキャンセルするように働く。多数決論理のこの性質を利用して係数0を実現する。
 具体的には、図7に示すように、XOR回路48を利用して、係数のイネーブルを決めるビット(ビットセルIS0,IU0,IL0,IR0,ID0及びIF0にそれぞれ保持されたビット)の値により、多数決論理回路44に、先に述べたスピン次状態の候補となる値の複製か、その反転を同時に入力する。例えば、メモリセルIS0が保持するビットの値が0の場合、メモリセルIS1が保持するビットの値と、メモリセルIS1が保持するビットの値を反転させた値が同時に多数決論理回路44に入力されるので、外部磁場係数の影響は無い(外部磁場係数が0に相当する)ことになる。また、メモリセルIS0が保持するビットの値が1の場合には、メモリセルIS1が保持するビットの値と、その値と同じ値(複製)が同時に多数決論理回路44に入力されることになる。
 上述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することができるが、これだけでは局所最適解に陥ってしまう可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことができず、大域最適解に到達しない。そのため、局所最適解から脱出するための作用として、スピンを表現するメモリセルの値を確率的に反転されるために、スピンユニット40はインタフェースとしてRND線49を有する。
 そしてスピンユニット40には、上述のように乱数発生器17(図2)から乱数注入線38(図3)を介してスピンアレイ20(図3)に与えられた乱数がこのRND線49を介して与えられ、この乱数がOR回路45に入力することで、スピンの値が確率的に反転される。
(3)格子イジングモデルを利用した任意のイジングモデルの基底状態探索方式
 次に、マルチイジングチップ6(図1)として格子状のイジングモデル(以下、これを格子イジングモデルと呼ぶ)を表現可能な半導体チップを適用し、このマルチイジングチップ6を利用して、任意のイジングモデルの基底状態を探索する本実施の形態によるイジングモデル基底状態探索方式について説明する。
(3-1)任意のイジングモデルの格子イジングモデルへの変換方法
 複数のスピンを1つのスピンを表す集合(以下、これをスピン集合と呼ぶ)と見なしてイジングモデルを変換することにより、基底状態のスピン配列を変化させずにイジングモデルの構造を変化させる方法が知られている。この方法を利用して、任意のイジングモデルを表す問題データ7(図1)を、基底状態となるスピン配列が不変であることを保証しつつ、マルチイジングチップ6が表現可能な格子イジングモデルに変換するイジングモデル変換方法について説明する。
 図10(A)及び(B)並びに図11は、このようなイジングモデル変換方法の手順を表す。まず、図10(A)に示すイジングモデルを表す問題データ7を、相互作用がないスピン間を係数が「0」の相互作用と見なすことで、図10(B)に示す完全グラフのイジングモデルのデータに変換する。次に、図10(B)で示されたイジングモデルを、基底状態を変化させることなく図11に示す非平面の階段状の格子イジングモデルに変換する。ただし、図10(A)に示すイジングモデルを、直接、図11に示す格子イジングモデルに変換するようにしても良い。
 図10(B)の完全グラフを図11のような2層の格子グラフからなる階段状の格子イジングモデルに変換する場合、スピン集合のスピンをこの図11の通りに配置する。なお、図11において、スピンの番号は、そのスピンが元のイジングモデル(図10(A)又は(B))でどのスピンに対応するものであるかを表す。「1」と記されたスピン群は元のイジングモデルにおけるスピン1を表すスピン集合に相当する。元のイジングモデルのスピン1及び図11に示すイジングモデルのスピン集合1は、それぞれの基底状態における値が同値になることを期待する。このように変換後の格子イジングモデルが階段状となるようにスピン集合のスピンを配置することにより、問題データ7をなるべく少ないスピン及びスピン間接続からなる格子イジングモデルに変換することができる。
 ここで、図11のイジングモデルの構成をより詳しく説明する。なお、以下においては、図11において、Z軸方向の奥側の層の左上のスピンを原点(座標(0,0,0))とし、このスピンのX軸方向に順次隣接するスピンのX座標をそれぞれ1,2,……、原点のスピンのY軸方向に順次隣接するスピンのY座標をそれぞれ1,2,……、Z軸方向の手前側の層のZ座標を1とする。
 図11に示す格子イジングモデルでは、Z軸方向の奥側の層(Z座標が「0」の層)において、(0,0,0)、(0,1,0)、(0,2,0)、(0,3,0)及び(0,4,0)の位置にスピン「1」がそれぞれ配置され、(1,0,0)、(1,1,0)、(1,2,0)、(1,3,0)及び(1,4,0)の位置にスピン「2」がそれぞれ配置され、(3,1,0)、(3,2,0)、(3,3,0)及び(3,4,0)の位置にスピン「3」がそれぞれ配置され、(4,2,0)、(4,3,0)及び(4,4,0)の位置にスピン「4」がそれぞれ配置され、(5,3,0)及び(5,4,0)の位置にスピン「5」がそれぞれ配置される。
 またZ軸方向の手前側の層(Z座標が「1」の層)において、(0,0,1)及び(1,0,1)の位置にスピン「2」がそれぞれ配置され、(0,1,1)、(1,1,1)及び(2,1,1)の位置にスピン「3」がそれぞれ配置され、(0,2,1)、(1,2,1)、(2,2,1)及び(3,2,1)の位置にスピン「4」がそれぞれ配置され、(0,3,1)、(1,3,1)、(2,3,1)及び(3,3,1)の位置にスピン「6」がそれぞれ配置され、(0,4,1)、(1,4,1)、(2,4,1)、(3,4,1)及び(4,4,1)の位置にスピン「6」がそれぞれ配置される。
 さらに図11では、相互作用を及ぼすスピン間を結ぶ辺は太線で、また相互作用を及ばさないスピン間を結ぶ辺は細線で示している。つまり、図11の格子イジングモデルでは、Z軸方向の奥側の層では、Y軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の手前の層では、X軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の奥側の層及び手前側の層間では、Z軸方向に隣接するスピン同士が相互作用を及ぼす。ただし、図10(B)の完全グラフを生成するため、相互作用係数を「0」に設定した辺を追加した場合、図11に示す格子イジングモデルには相互作用を及ぼさないスピン間を結ぶ辺が存在する。そのため太線で示したスピン間を結ぶ辺でも相互作用係数が0になる可能性はある。
 スピン数Nの完全グラフの場合、1つのスピンに対してN-1の相互作用が存在する。しかし立体の格子グラフは最大でも次数が6である。そのためN>8の完全グラフは、そのままでは格子グラフで表現できない。そこでスピン集合を導入してスピン当たりの次数を削減するのである。
 すべてのスピン間の相互作用を担保するため、格子グラフでは図11に示すようにスピン集合のスピンを配置する。つまり各層にて特定の方向のみに延びるよう各スピン集合のスピンを配置するということである。図11は、Z=1ではX方向、Z=0ではY方向のみに各スピン集合のスピンを延ばして配置した例である。
(3-2)変換後の格子イジングモデルにおける各係数の決定方法
 任意のイジングモデルを基底状態を変化させないように格子イジングモデルへ変換するためには、図11の格子イジングモデルを生成するときに相互作用係数や外部磁場係数を適切に定めることが求められる。
 そこで、図12(A)及び(B)を用いて、図10(A)又は(B)のイジングモデルを図11の格子イジングモデルに変換する際の、当該格子イジングモデルにおける各係数の決定方法について説明する。
 図12(A)は変換前のイジングモデルである。実際にはスピン1~nの間にも相互作用があるが、説明の簡潔化のため図示していない。以下においては、スピン0とスピンiと間の相互作用をJと表す。またスピン0における外部磁場係数をhとする。
 図12(B)は変換後のイジングモデルである。このイジングモデルでは、スピン集合を導入し、スピン0を、当該スピン0に相互作用を及ぼすスピン1~nと同じ数のスピン(0,……,0)で表現している。また図12(B)では、このスピン集合内の各スピン0~0及びスピン1~n間の相互作用係数を順番にb,……,bn-1とし、各スピン0~0における外部磁場係数をa,……,aとしている。変換後のイジングモデルでスピン0を表すスピン集合とスピンiの間の相互作用はJと定める。
 図12(B)に示すイジングモデルにおいて、当該イジングモデルが基底状態のときに局所最適解であることを考慮すると、|J|+|a|>|b|のとき基底状態でスピン0と0i+1の値が等しくなる。ゆえにこの不等式を満たすように相互作用を定めると、基底状態で0=0=…=0となる。またa+a+…+a=hのとき、変換前及び変換後の基底状態において、スピン0とスピン0の値が等しくなる。よって、この2つの条件を満たすよう相互作用係数J~Jと外部磁場係数a~aとをそれぞれ設定することにより、基底状態を変化させることなくイジングモデルのグラフ構造を変化させることができる。
 上述の方法に加えて、次式
Figure JPOXMLDOC01-appb-M000011
で定義される定数Cを用いて係数を定める方法も存在する。
 具体的には、この定数Cを用いて変換後の相互作用係数J~J及び外部磁場係数a~aを以下の通り定める。
Figure JPOXMLDOC01-appb-M000012
 ただし(4)式において、sign(x)はxが正のとき+1、0以下のとき‐1となる関数である。このように係数を定めると変換前及び変換後の基底状態が等しくなる。
 前述のいずれかの方法を用いることにより、図10(A)又は(B)のイジングモデルを、基底状態を変化させることなく図11に示す格子イジングモデルに変換する際の当該格子イジングモデルの各係数の値を決定し、設定することができる。
(3-3)イジングチップ間の配線方式
 次に、かかる格子イジングモデルを表現可能なマルチイジングチップ6内の各イジングチップ13(図2)間の配線方式について説明する。
 単一のイジングチップ13に多数のスピンユニット40(図7及び図8)を搭載しようとすると、イジングチップ13のチップサイズが増大し、コスト増につながる。このためマルチイジングチップ6に多数のスピンユニット40を搭載するに際しては、マルチイジングチップ6に規模がそれほど大きくないイジングチップ13を複数実装し、これらをチップ間配線により接続する方法がコスト上昇を抑える上で効果的である。
 この場合、イジングチップ13の端部に設けられたスピンユニット40と、他のイジングチップ13内の対応するスピンユニット40との間で配線を施すために、例えば図13に示すように、隣接する各イジングチップ13のチップ端部にそれぞれ設けられた対応するスピンユニット40同士を、チップ間接続部24(図3)の一部を構成する接続部50とチップ間配線14を介して接続する必要がある。なお、ここで言う「チップ端部に設けられたスピンユニット40」とは、図4のイジングモデルで隣接するスピンの値を保持するスピンユニット40が他のイジングチップ13に設けられたスピンユニット40を指す。
 しかしながら、隣接するイジングチップ13のチップ端部に設けられたすべての対応するスピンユニット40同士をそれぞれ接続するよう接続部50やチップ間配線14(図2)を形成すると、この図13に示すように、接続部50の数やチップ間配線14の配線量が大きくなり過ぎるためにコストの上昇や実装上の困難が生じる。
 一方、図14は、スピン数が6個のイジングモデルを図10及び図11について上述した変換方法を利用して変換した格子イジングモデルを表す。仮に、単一のイジングチップ13が格子イジングモデル全体を表現するために必要な数量のスピンユニット40を持たない場合には、この図14に示すように格子イジングモデルを複数の領域に分割し、これら領域のデータを複数のイジングチップ13に割り当てれば良い。図14では、格子イジングモデルを4つの領域AR1~AR4に分割し、これら領域AR1~AR4のデータをそれぞれイジングチップ1~イジングチップ4に割り当てた(マッピングした)例を示している。
 このときX方向の領域間(つまり「イジングチップ1」というイジングチップ13で表現される領域AR1及び「イジングチップ2」というイジングチップ13で表現される領域AR2間と、「イジングチップ3」というイジングチップ13で表現される領域AR3及び「イジングチップ4」というイジングチップ13で表現される領域AR4間)では、いずれもZ軸方向の手前側の層内の相互作用のみが存在する。
 このため領域AR1及び領域AR2間については、領域AR1内の(1,1,1)に配置されたスピン及び領域AR2内の(2,1,1)に配置されたスピン間の相互作用と、領域AR1内の(1,2,1)に配置されたスピン及び領域AR2内の(2,2,1)に配置されたスピン間の相互作用とだけを考慮すれば良く、領域AR3及び領域AR4間については、領域AR3内の(1,3,1)に配置されたスピン及び領域AR4内の(2,3,1)に配置されたスピン間の相互作用と、領域AR3内の(1,4,1)に配置されたスピン及び領域AR4内の(2,4,1)に配置されたスピン間の相互作用とだけを考慮すれば良い。
 従って、図14のように複数のイジングチップ13で格子イジングモデルを表現するに際しては、「イジングチップ1」というイジングチップ13と、「イジングチップ2」というイジングチップ13とについては、少なくとも領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR2の(2,1,1)に配置されたスピンを表現するスピンユニット40間と、領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR2内の(2,2,1)に配置されたスピンを表現するスピンユニット40間とを接続すれば良い。
 そこで、本実施の形態の場合、「イジングチップ1」というイジングチップ13については、図15に示すように、「イジングチップ2」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(1,2,1)に配置されたスピンを表現するスピンユニット40と、(1,2,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 また、「イジングチップ2」というイジングチップ13については、「イジングチップ1」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,1,1)に配置されたスピンを表現するスピンユニット40と、(2,2,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 そして「イジングチップ1」というイジングチップ13及び「イジングチップ2」というイジングチップ13間は、領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50及び、領域AR2の(2,1,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR2内の(2,2,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ1」というイジングチップ13及び「イジングチップ2」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ1」というイジングチップ13及び「イジングチップ2」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
 同様に、本実施の形態の場合、「イジングチップ3」というイジングチップ13については、「イジングチップ4」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(1,3,1)に配置されたスピンを表現するスピンユニット40と、(1,4,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 また、「イジングチップ4」というイジングチップ13については、「イジングチップ3」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,3,1)に配置されたスピンを表現するスピンユニット40と、(2,4,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 そして「イジングチップ3」というイジングチップ13及び「イジングチップ4」というイジングチップ13間は、領域AR3内の(1,3,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50及び、領域AR4の(2,3,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR3内の(1,4,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR4内の(2,4,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ3」というイジングチップ13及び「イジングチップ4」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ3」というイジングチップ13及び「イジングチップ4」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
 一方、Y方向の領域間(領域AR1及び領域AR3間と、領域AR2及び領域AR4間)では、いずれもZ軸方向の奥側の層内の相互作用のみが存在する。
 このため領域AR1及び領域AR3間については、領域AR1内の(0,2,0)に配置されたスピン及び領域AR3内の(0,3,0)に配置されたスピン間の相互作用と、領域AR1内の(1,2,0)に配置されたスピン及び領域AR3内の(1,3,0)に配置されたスピン間の相互作用とだけを考慮すれば良く、領域AR2及び領域4間については、領域AR2内の(2,2,0)に配置されたスピン及び領域AR4内の(2,3,0)に配置されたスピン間の相互作用と、領域AR2内の(3,2,0)に配置されたスピン及び領域4内の(3,3,0)に配置されたスピン間の相互作用とだけを考慮すれば良い。
 従って、図14のように複数のイジングチップ13で格子イジングモデルを表現するに際しては、「イジングチップ1」というイジングチップ13と、「イジングチップ3」というイジングチップ13とについては、少なくとも領域AR1内の(0,2,0)に配置されたスピンを表現するスピンユニット40と、領域AR3内の(0,3,0)に配置されたスピンを表現するスピンユニット40間と、領域AR1内の(1,2,0)に配置されたスピンを表現するスピンユニット40、及び、領域AR3内の(1,3,0)に配置されたスピンを表現するスピンユニット40間とを接続すれば良い。
 そこで、本実施の形態の場合、「イジングチップ1」というイジングチップ13については、図17に示すように、「イジングチップ3」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(0,2,0)に配置されたスピンを表現するスピンユニット40と、(1,2,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 また、「イジングチップ3」というイジングチップ13については、「イジングチップ1」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(0,3,0)に配置されたスピンを表現するスピンユニット40と、(1,3,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 そして「イジングチップ1」というイジングチップ13及び「イジングチップ3」というイジングチップ13間は、領域AR1内の(0,2,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50及び、領域AR3の(0,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR1内の(1,2,0)に配置されたスピンを表現するスピンユニット40、及び、領域AR3内の(1,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ1」というイジングチップ13及び「イジングチップ3」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ1」というイジングチップ13及び「イジングチップ3」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
 同様に、本実施の形態の場合、「イジングチップ2」というイジングチップ13については、「イジングチップ4」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,2,0)に配置されたスピンを表現するスピンユニット40と、(3,2,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 また、「イジングチップ4」というイジングチップ13については、「イジングチップ3」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,3,0)に配置されたスピンを表現するスピンユニット40と、(3,3,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
 そして「イジングチップ2」というイジングチップ13及び「イジングチップ4」というイジングチップ13間は、領域AR2内の(2,2,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50、及び、領域AR4の(2,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR2内の(3,2,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50、及び、領域AR4内の(3,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ2」というイジングチップ13及び「イジングチップ4」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ2」というイジングチップ13及び「イジングチップ4」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
 なお図15及び図16を併せた、マルチイジングチップ6におけるイジングチップ13間の接続関係を図17に示す。なお図17では、図面の煩雑化を避けるため、「イジングチップ1」~「イジングチップ3」という3つのイジングチップ13間の接続関係を示しており、「イジングチップ4」というイジングチップ13については、省略している。マルチイジングチップ6においてイジングチップ13間をこのように接続することによって、イジングチップ13間の配線を図13に比べて1/2に削減することができる。
(3-4)イジングチップの制御手順
 図18は、本情報処理装置1においてCPU3(図1)により実行される基底状態探索処理の処理手順を示す。CPU3は、ステップSP1については問題変換プログラム8(図1)に基づき、これ以降の処理(ステップSP2~ステップSP13)についてはマルチイジングチップ制御プログラム9(図1)に基づいて、必要なマルチイジングチップ6(図2)のコントローラ15(図2)を介して当該マルチイジングチップ6内のイジングチップ13を制御することにより、これらのイジングチップ13において基底状態探索を実行させる。なお、ステップSP1の処理と、ステップSP2~ステップSP13の処理とを別々のタイミングで実行するようにしてもよい。
 またCPU3は、各マルチイジングチップ6内のイジングチップ13や、イジングチップ13内のスピンユニット40をマルチイジングチップ6内のコントローラ15(図2)を介して制御するが、以下においては理解の容易化のため、コントローラ15の存在を無視して説明を行う。
 CPU3は、ユーザからの指示等によりこの基底状態探索処理を開始すると、まず、問題データ7(図1)を図11について上述した格子イジングモデルの形式のデータに変換する(SP1)。
 続いて、CPU3は、変換後の格子イジングモデルの相互作用係数及び外部磁場係数を必要なマルチイジングチップ6の各イジングチップ13内の各スピンユニット40にそれぞれ設定する(SP2)。
 次いで、CPU3は、各スピンユニットが保持すべきスピンの値を乱数によりそれぞれ決定し、決定したスピンの値となるようにかかるマルチイジングチップ6における各イジングチップ13内の各スピンユニット40のスピンの値を初期化する(SP3)。
 さらにCPU3は、予め定められた各マルチイジングチップ6内の乱数発生器17(図2)が発生する乱数において「1」が出現する確率(以下、これをビット確率と呼ぶ)を設定する(SP4)。本実施の形態の場合、初期時には乱数発生器17が発生する乱数におけるビット確率を高く設定し、その後、段階的にビット確率を下げてゆく。これにより初期時には各スピンユニット40が保持するスピンの値を反転し易くする一方、その後は徐々に当該スピンの値が反転し難く(「0」又は「1」に収束し易く)することができる。このためステップSP4では、上述の各段階におけるビット確率が設定される。
 さらにCPU3は、予め定められたビット確率毎の相互作用演算の実行回数をそれぞれ設定し(SP5)、この後、イジングチップ13間でのタイミングを合わせるため、各イジングチップ13における各接続部50(図13~図15)内のカウンタをリセット(カウント値を「0」にセット)する(SP6)。
 続いて、CPU3は、マルチイジングチップ6の相互作用クロック生成器16(図2)を駆動するなどして各イジングチップ13内の各スピンユニット40における相互作用演算を1回実行させ(SP7)、この後、現在のビット確率について設定された回数分だけ相互作用演算を実行し終えたか否かを判断する(SP8)。そしてCPU3は、この判断で否定結果を得るとステップSP7に戻り、この後、ステップSP7及びステップSP8の処理を繰り返す。
 そしてCPU3は、やがて現在設定されているビット確率について設定された回数分の相互作用演算を実行し得ることによりステップSP8で肯定結果を得ると、ステップSP5で設定したビット確率毎の相互作用演算をすべて実行し終えたか否かを判断する(SP9)。
 CPU3は、この判断で否定結果を得ると、ビット確率を現在のビット確率よりも低い予め定められたビット確率に更新すると共に(SP10)、その後実行すべき相互作用演算の回数をそのビット確率について予め定められた回数に更新する(SP11)。そしてCPU3は、ステップSP7に戻り、この後、ステップSP7~ステップSP11の処理を繰り返す。
 そしてCPU3は、やがてステップSP5で設定されたビット確率毎の相互作用演算をすべて実行し終えることによりステップSP9で肯定結果を得ると、そのとき対象としているマルチイジングチップ6における各イジングチップ13内の各スピンユニット40がそれぞれ保持するスピンの値を読み出す(SP12)。
 またCPU3は、メモリ4に記憶したスピンユニットと元のイジングモデルの対応関係を表すデータと照合して、読み出したスピン値から元のイジングモデルにおける各スピンの値を決定する(SP13)。
 上述の計算で基底状態が得られているならば、各スピン集合内に含まれるスピンは全て同値になる(例えば図11のスピン1の値はすべて同値になる)。これは上述の処理によって係数設定することで担保される。従って、この場合には、各スピン集合から1つずつスピンの値を読み出すことで、元のイジングモデルにおける各スピンの値を決定する。
 ただし、以上までの基底状態探索処理によって必ずしもイジングモデルの基底状態が得られるとは限らない。そして、この場合にはスピン集合内で全てのスピンが同値にならない可能性がある。そこで、このような場合には、各スピン集合でスピン数の多い方の値を選ぶことで元のイジングモデルの対応するスピンの値を決定する。また、スピンごとに基底状態の値になりやすくなる傾向が異なるならば、その傾向に従って重み付けしてかかる多数決を行うようにしても良い。
 そしてCPU3は、この後、この基底状態探索処理を終了する。
 図19は、図18のSP1におけるCPU3の具体的な処理内容を示す。なお本実施の形態の場合、問題データ7は、例えば図20(A)の左側に示す形式でメモリ4(図1)に記録される。図20(A)において、各行の1列目及び2列目はそれぞれスピン、3列目はこれらスピン間の相互作用係数を表す。また1列目及び2列目のスピンが等しい行は、3列目がそのスピンの外部磁場係数を表す。
 CPU3は、まず、問題データ7を入力する(SP20)。そしてCPU3は、複数のイジングチップ13を用いてイジングモデルの基底状態を探索する場合であって、かつ入力した問題データ7が図10(A)のような相互作用のない箇所を持つグラフ構造を有する場合には、その箇所の係数を「0」として、問題データ7を図10(B)のような完全グラフのイジングモデルを表す中間データ(図20(A)の右側)に変換する(SP21)。
 そしてCPU3は、ステップSP20で得られた中間データを図11について上述した格子イジングモデルを表す図20(B)の左側に示すような出力データに変換する(SP22)。この変換により得られた出力データは、例えば問題データ7と同様の形式で表現される。
 続いて、CPU3は、ステップSP22で得られた出力データを、マルチイジングチップ6(図1)の各々が表現可能な規模のイジングモデルに必要に応じて分割する(SP23)。
 そしてCPU3は、この後、この出力データをメモリ4に記録する(SP24)。またステップSP22の変換処理ではスピン集合という考え方を用いるため、元のイジングモデルでは1つのスピンが、出力データの表すイジングモデルでは複数のスピンで表される。そこでCPU3は、ステップSP22で得られた出力データの表す格子イジングモデルにおいて、どのスピンが元のイジングモデルのスピンと対応するかを表す図20(B)の右側のデータもメモリ4に記録する(SP24)。なお図20(B)の右側では、元のイジングモデルのスピン1が、変換後のイジングモデルではスピン1~5に相当することを表す。
 さらにCPU3は、ステップSP24において、必要に応じて変換後の問題を分割することにより得られた部分問題についての相互作用係数、及び、外部磁場係数を、必要なマルチイジングチップ6の各イジングチップ13内の各スピンユニット40にそれぞれ設定し(SP24)、この後この図19の処理を終了して図18の基底状態探索処理に戻る。
(3-5)3層以上の格子イジングモデルへの変換
 上述の説明では、任意のイジングモデルを2層の格子グラフを持つイジングモデルに変換する方法について詳述した。これと同様にスピン集合を配置することで、3層以上の格子グラフを表現可能なマルチイジングチップ6に対して、空間的に効率良く変換することが可能である。
 図21は、3層の格子グラフからなる格子イジングモデルを表現可能なマルチイジングチップ6に対して、スピン集合を用いてスピン数が「7」の完全グラフを表現する場合の一例を示す。以下においては、図21において、Z軸方向の奥側の層の左上のスピンを原点(座標(0,0,0))とし、このスピンのX軸方向に順次隣接するスピンのX座標をそれぞれ1,2,……、原点のスピンのY軸方向に順次隣接するスピンのY座標をそれぞれ1,2,……、Z軸方向の手前側の層のZ座標を1とする。
 図21に示す格子イジングモデルでは、Z軸方向の最も奥側の層(Z座標が「0」の層)及びZ軸方向の中間の層(Z座標が「1」の層)におけるスピン配列は図11について上述した2層の格子イジングモデルと同じである。
 そして手前側の層(Z座標が「2」の層)において、(0,0,2)、(0,1,2)、(0,2,2)、(0,3,2)及び(0,4,2)の位置と、(1,4,2)の位置とにスピン「7」がそれぞれ配置される。
 また図21では、図11と同様に、相互作用を及ぼすスピン間を結ぶ辺は太線で、また相互作用を及ばさないスピン間を結ぶ辺は細線で示している。つまり、図21の格子イジングモデルでは、Z軸方向の最も奥側の層では、Y軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の中間の層では、X軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の手前側の層では、X軸方向又はY軸方向に隣接するスピン同士が相互作用を及ぼし、Z軸方向の奥側の層、中間の層及び手前側の層間では、Z軸方向に隣接するスピン同士が相互作用を及ぼす。
(4)本実施の形態の効果
 以上のように本実施の形態の情報処理装置1では、問題データ7を、当該問題のイジングモデルの基底状態のスピン配列を変化させないように、複数のイジングチップ13により表現可能な階段状の格子イジングモデルのデータに変換し、当該格子イジングモデルのデータを分割して各イジングチップ13に割り当てるようにしたことにより、任意のイジングモデルの基底状態を探索することができる。また、あるイジングチップ13が値を保持するスピンのうち、他の半導体チップが値を保持するスピンに相互作用を及ぼすスピンの数を低減させることができるため、結果として、イジングチップ13間を接続するチップ間配線の配線量を抑えることができる。かくするにつき、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置を実現できる。
(5)他の実施の形態
 なお上述の実施の形態おいては、問題のイジングモデルを図11や図21について上述した形態の格子イジングモデルに変換するようにした場合について述べたが、本発明はこれに限らず、問題のイジングモデルを、その基底状態のスピン配列を変化させずに、複数のイジングチップ13により表現可能な格子イジングモデルに変換するのであれば、格子イジングモデルの形態としては、この他種々の形態を広く適用することができる。
 また上述の実施の形態においては、イジングチップ13間の配線方式として、イジングチップ13のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40にそれぞれ対応付けて接続部50を設け、これらの接続部50を他のイジングチップ13の対応する接続部50とそれぞれ接続するようにした場合について述べたが、本発明はこれに限らず、イジングチップ13内のスピンユニット40のうち、他のイジングチップ13内のスピンユニット40が値を保持するスピンと相互作用を及ぼすスピンユニット40にのみ対応付けて接続部50を設け、これらの接続部50を他のイジングチップ13の対応する接続部50とそれぞれ接続するようにしても良い。このようにすることによって、より一層とイジングチップ13間の配線量を抑えることができる。
 本発明はイジングモデルの基底状態探索を行う半導体装置に広く適用することができる。
1……情報処理装置、3……CPU、6……マルチイジングチップ、7……問題データ、8……問題変換プログラム、9……マルチイジングチップ制御プログラム、13……イジングチップ、14……チップ間配線、20……スピンアレイ、24……チップ間接続部、40……スピンユニット、50……接続部。
 

Claims (12)

  1.  イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置において、
     それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、
     必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、
     各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部と
     を備え、
     前記制御部は、
     前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換し、
     変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てる
     ことを特徴とする情報処理装置。
  2.  前記制御部は、
     前記問題のデータを完全グラフのイジングモデルを表す中間データに変換し、
     当該中間データを前記格子状のイジングモデルのデータに変換する
     ことを特徴とする請求項1に記載の情報処理装置。
  3.  前記制御部は、
     前記問題のイジングモデルの各第1のスピンを、当該第1のスピンに相互作用を及ぼす第2のスピンと同じ数の第3のスピンの集合にそれぞれ置き換え、当該第3のスピンの集合を前記格子状のイジングモデルが全体として階段状となるように配置するようにして、当該問題のデータを前記格子状のイジングモデルのデータに変換する
     ことを特徴とする請求項1に記載の情報処理装置。
  4.  前記制御部は、
     i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJとし、i番目の前記第3のスピンにおける外部磁場係数をaとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をhとして、次式
    Figure JPOXMLDOC01-appb-M000001
    及び、次式
    Figure JPOXMLDOC01-appb-M000002
    を満たすように、前記格子状のイジングモデルの各相互作用係数及び各外部磁場係数をそれぞれ設定する
     ことを特徴とする請求項3に記載の情報処理装置。
  5.  前記制御部は、
     i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJとし、i番目の前記第3のスピンにおける外部磁場係数をaとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をhとして、次式
    Figure JPOXMLDOC01-appb-M000003
    で定義される定数Cを用いて、i番目の前記第3のスピンについての相互作用係数J及び外部磁場係数aを次式
    Figure JPOXMLDOC01-appb-M000004
    を満たすように設定する
     ことを特徴とする請求項3に記載の情報処理装置。
  6.  前記制御部は、
     前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値である場合には、当該値を当該第1のスピンの値として決定し、
     前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値でない場合には、スピン数が多い方の値を当該第1のスピンの値として決定する
     ことを特徴とする請求項3に記載の情報処理装置。
  7.  イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置の制御方法において、
     前記情報処理装置は、
     それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、
     必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、
     各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部と
     を有し、
     前記制御部が、前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換する第1のステップと、
     前記制御部が、変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てる第2のステップと、
     前記制御部が、各前記半導体チップに前記相互作用演算をそれぞれ実行させる第3のステップと
     を備えることを特徴とする情報処理装置の制御方法。
  8.  前記第1のステップにおいて、前記制御部は、
     前記問題のデータを完全グラフのイジングモデルを表す中間データに変換し、
     当該中間データを前記格子状のイジングモデルのデータに変換する
     ことを特徴とする請求項7に記載の情報処理装置の制御方法。
  9.  前記第1のステップにおいて、前記制御部は、
     前記問題のイジングモデルの各第1のスピンを、当該第1のスピンに相互作用を及ぼす第2のスピンと同じ数の第3のスピンの集合にそれぞれ置き換え、当該第3のスピンの集合を前記格子状のイジングモデルが全体として階段状となるように配置するようにして、当該問題のデータを前記格子状のイジングモデルのデータに変換する
     ことを特徴とする請求項7に記載の情報処理装置の制御方法。
  10.  前記第1のステップにおいて、前記制御部は、
     i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJとし、i番目の前記第3のスピンにおける外部磁場係数をaとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をhとして、次式
    Figure JPOXMLDOC01-appb-M000005
    及び、次式
    Figure JPOXMLDOC01-appb-M000006
    を満たすように、前記格子状のイジングモデルの各相互作用係数及び各外部磁場係数をそれぞれ設定する
     ことを特徴とする請求項9に記載の情報処理装置の制御方法。
  11.  前記第1のステップにおいて、前記制御部は、
     i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJとし、i番目の前記第3のスピンにおける外部磁場係数をaとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をhとして、次式
    Figure JPOXMLDOC01-appb-M000007
    で定義される定数Cを用いて、i番目の前記第3のスピンについての相互作用係数J及び外部磁場係数aを次式
    Figure JPOXMLDOC01-appb-M000008
    を満たすように設定する
     ことを特徴とする請求項9に記載の情報処理装置の制御方法。
  12.  前記第3のステップにおいて、前記制御部は、
     前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値である場合には、当該値を当該第1のスピンの値として決定し、
     前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値でない場合には、スピン数が多い方の値を当該第1のスピンの値として決定する
     ことを特徴とする請求項9に記載の情報処理装置の制御方法。
PCT/JP2015/066581 2015-06-09 2015-06-09 情報処理装置及びその制御方法 WO2016199220A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2015/066581 WO2016199220A1 (ja) 2015-06-09 2015-06-09 情報処理装置及びその制御方法
JP2017522787A JP6476292B2 (ja) 2015-06-09 2015-06-09 情報処理装置及びその制御方法
US15/735,033 US10896241B2 (en) 2015-06-09 2015-06-09 Information processing device and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/066581 WO2016199220A1 (ja) 2015-06-09 2015-06-09 情報処理装置及びその制御方法

Publications (1)

Publication Number Publication Date
WO2016199220A1 true WO2016199220A1 (ja) 2016-12-15

Family

ID=57503133

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/066581 WO2016199220A1 (ja) 2015-06-09 2015-06-09 情報処理装置及びその制御方法

Country Status (3)

Country Link
US (1) US10896241B2 (ja)
JP (1) JP6476292B2 (ja)
WO (1) WO2016199220A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019078777A (ja) * 2017-10-19 2019-05-23 日本電信電話株式会社 ポッツモデルの計算装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515121B1 (en) * 2016-04-12 2019-12-24 Tableau Software, Inc. Systems and methods of using natural language processing for visual analysis of a data set
US11030207B1 (en) 2016-04-12 2021-06-08 Tableau Software, Inc. Updating displayed data visualizations according to identified conversation centers in natural language commands
JP7093009B2 (ja) * 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7239826B2 (ja) * 2019-06-18 2023-03-15 富士通株式会社 サンプリング装置およびサンプリング方法
JP2021082165A (ja) * 2019-11-22 2021-05-27 富士通株式会社 構造探索方法、構造探索プログラム、及び構造探索装置
WO2023211517A2 (en) * 2021-11-22 2023-11-02 University Of Rochester System and method for multi-chip ising machine architectures
CN115907005B (zh) * 2023-01-05 2023-05-12 华南理工大学 一种基于片上网络的大规模全连接伊辛模型退火处理电路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008525873A (ja) * 2004-12-23 2008-07-17 ディー−ウェイブ システムズ,インコーポレイテッド 量子デバイスを備えるアナログプロセッサ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007006144A1 (en) * 2005-07-11 2007-01-18 D-Wave Systems Inc. Systems, methods and apparatus for factoring numbers
CN101978368A (zh) * 2008-03-24 2011-02-16 D-波系统公司 用于模拟处理的系统、装置与方法
JP2012217518A (ja) 2011-04-05 2012-11-12 Hitachi Ltd 人間行動分析システム及び方法
US9495644B2 (en) * 2013-07-24 2016-11-15 D-Wave Systems Inc. Systems and methods for improving the performance of a quantum processor by reducing errors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008525873A (ja) * 2004-12-23 2008-07-17 ディー−ウェイブ システムズ,インコーポレイテッド 量子デバイスを備えるアナログプロセッサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019078777A (ja) * 2017-10-19 2019-05-23 日本電信電話株式会社 ポッツモデルの計算装置

Also Published As

Publication number Publication date
US20180300287A1 (en) 2018-10-18
US10896241B2 (en) 2021-01-19
JPWO2016199220A1 (ja) 2018-05-24
JP6476292B2 (ja) 2019-02-27

Similar Documents

Publication Publication Date Title
JP6476292B2 (ja) 情報処理装置及びその制御方法
JP5922203B2 (ja) 半導体装置
JP5864684B1 (ja) 半導体装置
JP5865456B1 (ja) 半導体装置
JP6605610B2 (ja) 半導体装置
JP6177993B2 (ja) 半導体装置および情報処理装置
JP6496410B2 (ja) 情報処理装置及び方法
JP6295325B2 (ja) 半導体装置及び情報処理システム
JP6503072B2 (ja) 半導体システムおよび計算方法
JP6568222B2 (ja) 半導体システムおよび計算方法
JP5901712B2 (ja) 半導体装置および情報処理装置
JP2018206127A (ja) 情報処理装置
JP2019179364A (ja) 半導体装置、情報処理システム、および情報処理方法
JP5894645B1 (ja) 半導体装置及びその品質管理方法
JP5851570B1 (ja) 半導体装置
US20220004864A1 (en) Preventing glitch propagation
JP6207583B2 (ja) 半導体装置および情報処理方法
JP2020160755A (ja) 半導体装置
JP6914872B2 (ja) 情報処理装置および半導体集積回路装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017522787

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15735033

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15894905

Country of ref document: EP

Kind code of ref document: A1