(57)【要約】  安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置である。非線形演算を行う半導体装置は、メモリと、前記メモリからデータを読む読み出し部と、前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、前記多数決回路の出力を入力する書き込み回路と、を備え、前記多数決回路の前段で所定の信号の値を確率的に反転する。
2017033326.tif 000002
【特許請求の範囲】
【請求項１】
非線形演算を行う半導体装置であって、
メモリと、
前記メモリからデータを読む読み出し部と、
前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、
前記多数決回路の出力を入力する書き込み回路と、
を備え、
前記多数決回路の前段で所定の信号の値を確率的に反転する、半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記多数決回路の前段に乱数信号線を供給し、前記乱数信号線から印加される乱数信号に基づいて、前記多数決回路に入力される前記所定の信号の値を確率的に反転する、半導体装置。
【請求項３】
請求項１に記載の半導体装置において、
前記読み出し部は、前記メモリから確率的に記憶内容を反転させて読み出す、半導体装置。
【請求項４】
請求項１に記載の半導体装置において、
前記半導体装置は、前記メモリ、前記読み出し部、前記多数決回路および前記書き込み回路を制御する制御部を備え、
前記制御部は、前記メモリの値に依らず前記制御部で決定するパラメータＴを用いて計算するステップを有し、
前記ステップでは、
前記計算の結果に基づいて前記半導体装置内における前記所定の信号の値を確率的に反転し、
前記メモリの値で決定される値ｘを引数とする双曲線正接関数を含む以下の関数
【数２１】
2017033326.tif 000023
によって与えられる確率ｆ（ｘ，Ｔ）でランダムに「１」を出力する、半導体装置。
【請求項５】
相互作用モデルの計算を行う半導体装置であって、
それぞれ１または複数の値を保持する複数のメモリと、
前記複数のメモリからデータを読む読み出し部と、
前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、
前記多数決回路の出力を入力する書き込み回路と、
を備え、
前記多数決回路の前段で所定の信号の値を確率的に反転する、半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記半導体装置は、イジングモデルのエネルギーを最小とするスピンの配列である基底状態または当該基底状態の近似解を問題の解として算出する装置、または、前記イジングモデルのシミュレーションを実行する装置である、半導体装置。
【請求項７】
請求項６に記載の半導体装置において、
前記多数決回路の前段に乱数信号線を供給し、前記乱数信号線から印加される乱数信号に基づいて、前記多数決回路に入力される前記所定の信号の値を確率的に反転する、半導体装置。
【請求項８】
請求項６に記載の半導体装置において、
前記読み出し部は、前記メモリから確率的に記憶内容を読み出す、半導体装置。
【請求項９】
請求項６に記載の半導体装置において、
前記半導体装置は、前記メモリ、前記読み出し部、前記多数決回路および前記書き込み回路を制御する制御部を備え、
前記制御部は、前記メモリの値に依らず前記制御部で決定するパラメータＴを用いて計算するステップを有し、
前記ステップでは、
前記計算の結果に基づいて前記半導体装置内における前記所定の信号の値を確率的に反転し、
前記メモリの値で決定される値ｘを引数とする双曲線正接関数を含む以下の関数
【数２２】
2017033326.tif 000024
によって与えられる確率ｆ（ｘ，Ｔ）でランダムに「１」を出力する、半導体装置。
【請求項１０】
請求項７に記載の半導体装置において、
前記半導体装置は、前記メモリ、前記読み出し部、前記多数決回路および前記書き込み回路を制御する制御部を備え、
前記スピン間の相互作用の本数をＬ本とする場合に、
前記制御部は、前記制御部で決定するパラメータＴを用いて以下の式
【数２３】
2017033326.tif 000025
によって計算される確率ｐで「１」となるランダムな信号を前記乱数信号線に供給する、半導体装置。
【請求項１１】
ＣＰＵ、主メモリ、記憶装置、およびアクセラレータとして動作可能な半導体装置を、システムバスを介して接続した情報処理装置であって、
前記半導体装置は、
非線形演算を行う半導体装置であり、
メモリと、
前記メモリからデータを読む読み出し部と、
前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、
前記多数決回路の出力を入力する書き込み回路と、
を備え、
前記多数決回路の前段で所定の信号の値を確率的に反転する、情報処理装置。
【請求項１２】
請求項１１に記載の情報処理装置において、
前記多数決回路の前段に乱数信号線を供給し、前記乱数信号線から印加される乱数信号に基づいて、前記多数決回路に入力される前記所定の信号の値を確率的に反転する、情報処理装置。
【請求項１３】
請求項１１に記載の情報処理装置において、
前記読み出し部は、前記メモリから確率的に記憶内容を反転させて読み出す、情報処理装置。
【請求項１４】
請求項１１に記載の情報処理装置において、
前記半導体装置は、前記メモリ、前記読み出し部、前記多数決回路および前記書き込み回路を制御する制御部を備え、
前記制御部は、前記メモリの値に依らず前記制御部で決定するパラメータＴを用いて計算するステップを有し、
前記ステップでは、
前記計算の結果に基づいて前記半導体装置内における前記所定の信号の値を確率的に反転し、
前記メモリの値で決定される値ｘを引数とする双曲線正接関数を含む以下の関数
【数２４】
2017033326.tif 000026
によって与えられる確率ｆ（ｘ，Ｔ）でランダムに「１」を出力する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および情報処理装置に関し、特に、相互作用モデルの計算を行う半導体装置と、その半導体装置をアクセラレータとして制御する情報処理装置に適用して好適なものである。
【背景技術】
【０００２】
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。【０００３】
物理学の世界で代表的な相互作用モデルの例として、イジングモデルをあげることができる。イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは、＋１／−１（ないしは、０／１、上／下）の２値をとるスピンと、スピン間の相互作用を示す相互作用係数、および、スピン毎にある外部磁場係数で定義される。【０００４】
イジングモデルは、与えられたスピン配列、相互作用係数、および、外部磁場係数から、その時のエネルギーを計算することができる。イジングモデルのエネルギー関数は一般的に次式で表わされる。【０００５】
【数１】
2017033326.tif 000003
【０００６】
なお、σｉ、σｊはそれぞれｉ番目とｊ番目のスピンの値、Ｊｉ，ｊはｉ番目とｊ番目のスピンの間の相互作用係数、ｈｉはｉ番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。【０００７】
（１）式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、ｉ番目スピンからｊ番目スピンへの相互作用と、ｊ番目スピンからｉ番目スピンへの相互作用を区別することはない。そのため、第一項ではｉ＜ｊを満たすσｉ、σｊの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。【０００８】
イジングモデルの基底状態探索は、イジングモデルのエネルギー関数（一般にハミルトニアンとも呼ばれる）を最小化するスピン配列を求める最適化問題である。非平面グラフで表されるイジングモデルの基底状態探索はＮＰ困難であることが知られている。近年、この問題を効率的に解くため基底状態を探索する装置が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第２０１４／１９２１５３号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
一般に、最適化問題を解くアルゴリズムとしてシミュレーティッド・アニーリング法（以降、ＳＡ法と呼ぶ）が知られている。ＳＡ法は、遷移確率に基づく近傍探索と、温度スケジューリングで構成される。【００１１】
近傍探索では、現在の状態σの近傍のある状態σ’へ確率的に遷移を繰り返す。エネルギーの低い状態へ常に遷移すると局所解に陥る可能性があるため、確率的に状態を遷移する。エネルギーの高い状態に対しても同様である。状態σから状態σ’へ遷移する確率を、遷移確率Ｐ（σ，σ’）と呼ぶ。この計算方法として、熱浴法やメトロポリス法が知られている。例えば、熱浴法の遷移確率は（２）式である。【００１２】
【数２】
2017033326.tif 000004
【００１３】
Ｔは一般に温度と呼ばれるパラメータで、状態間の遷移し易さを表す。ＳＡ法の初期状態ではＴを大きな値に設定し、徐々に減少させつつ確率的な状態遷移を繰り返す。これにより、最適解または最適解に充分近い近似解へ漸近的に収束する。【００１４】
しかしながら、前述した特許文献１に開示された装置では、ＳＡ法が満たすべき釣り合い条件に反した確率的アルゴリズムを採用している。これはＳＡ法の遷移確率の計算を省略したアルゴリズムであり、この結果、装置で得る解の精度が低くなる課題が発生する。また、高精度の解を得るためには遷移回数を増加させなければならず、計算時間を短縮することが困難である。【００１５】
熱浴法が要求する遷移確率を加算器および乗算器で求め、一様乱数と比較することにより、この課題は解決される。しかし、回路面積が増加し、スケーラビリティおよびエネルギー効率が低下するだけでなく、安価に製造できないという問題がある。【００１６】
そこで、熱浴法が求める非線形演算に基づく確率的な処理を過度に簡略化せず、回路面積の小さなハードウェアで精度良く実現することが求められる。【００１７】
本発明の目的は、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置を提供することにある。【００１８】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。【００２０】
一実施の形態における半導体装置は、非線形演算を行う半導体装置である。前記半導体装置は、メモリと、前記メモリからデータを読む読み出し部と、前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、前記多数決回路の出力を入力する書き込み回路と、を備え、前記多数決回路の前段で所定の信号の値を確率的に反転する。【００２１】
一実施の形態における別の半導体装置は、相互作用モデルの計算を行う半導体装置である。前記半導体装置は、それぞれ１または複数の値を保持する複数のメモリと、前記複数のメモリからデータを読む読み出し部と、前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、前記多数決回路の出力を入力する書き込み回路と、を備え、前記多数決回路の前段で所定の信号の値を確率的に反転する。【００２２】
一実施の形態における情報処理装置は、ＣＰＵ、主メモリ、記憶装置、およびアクセラレータとして動作可能な半導体装置を、システムバスを介して接続した情報処理装置である。前記半導体装置は、非線形演算を行う半導体装置であり、前記一実施の形態における半導体装置と同様の構成を備える。
【発明の効果】
【００２３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下の通りである。【００２４】
一実施の形態によれば、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】実施の形態１における半導体装置を含む情報処理装置の全体構成の一例を示すブロック図である。
【図２】実施の形態１において、マルチイジングチップの構成の一例を示すブロック図である。
【図３】実施の形態１において、イジングチップの構成の一例を示すブロック図である。
【図４】実施の形態１において、３次元格子のスピンアレイの構成の一例を説明する概念図である。
【図５】実施の形態１において、スピンアレイの構成の説明に供する概念図である。
【図６】実施の形態１において、スピンアレイの構成の説明に供する概念図である。
【図７】実施の形態１において、スピンユニットの構成の一例を示すブロック図である。
【図８】実施の形態１において、スピンユニットの構成の一例を示すブロック図である。
【図９】実施の形態１において、イジングチップ上のスピンユニットの配置の一例を示すブロック図である。
【図１０】実施の形態１において、図７に示すスピンユニットの説明に供する、イジングモデルの図である。
【図１１】実施の形態１において、図７に示すスピンユニット内の一箇所を抽出したブロック図である。
【図１２Ａ】実施の形態１において、係数とスピン値による計算結果の説明に供する概念図である。
【図１２Ｂ】実施の形態１において、係数とスピン値による計算結果の説明に供する概念図である。
【図１３Ａ】実施の形態１において、スピンユニットに注入する乱数の説明に供する図である。
【図１３Ｂ】実施の形態１において、スピンユニットに注入する乱数の説明に供する図である。
【図１４】実施の形態１において、基底状態探索処理の処理手順を示すフローチャートである。
【図１５Ａ】実施の形態１において、スピンユニットに注入する乱数の制御法の説明に供する図である。
【図１５Ｂ】実施の形態１において、スピンユニットに注入する乱数の制御法の説明に供する図である。
【図１６】実施の形態２におけるスピンユニットの構成の一例を示すブロック図である。
【図１７】実施の形態２において、スピンユニットに注入する乱数の説明に供する図である。
【図１８】実施の形態３におけるスピンユニットの構成の一例を示すブロック図である。
【図１９】実施の形態４におけるスピンユニットの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００２７】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００２８】
以下、実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
［実施の形態１］
【００２９】
実施の形態１は、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置に関する。
＜（１）相互作用モデル＞
【００３０】
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。
【００３１】
また、相互作用モデルの特徴として、ノード間の影響を２個のノード間の相互作用に限定している（２体間の相互作用）ことがあげられる。例えば、宇宙空間にある惑星の力学を考えてみると、惑星というノードの間に万有引力による相互作用がある点で相互作用モデルの一種とも解釈できるが、惑星間の影響は２個の惑星間にとどまらず、３個以上の惑星が互いに影響し合って複雑な挙動を示す（いわゆる３体問題や多体問題と言われる問題になる）。
【００３２】
物理学の世界で代表的な相互作用モデルの例として、イジングモデルをあげることができる。イジングモデルとは、＋１／−１（ないしは上、下など）の２状態を取るスピンをノードとして、２個のスピン間の相互作用を決める相互作用係数と、個々のスピンに対するバイアスである外部磁場係数でモデルが定義される。
【００３３】
また、生物学の世界では、脳をモデル化したニューラルネットワークが相互作用モデルの一例である。ニューラルネットワークは、神経細胞のニューロンを模した人工ニューロンをノードとして、人工ニューロン間はシナプス結合という相互作用を持つ。また、各ニューロン毎にバイアスを与える場合もある。
【００３４】
社会科学の世界では、例えば人間のコミュニケーションを考えると、人間というノードと言語や通信で成される相互作用があることは容易に理解できよう。また、各人間には個別にバイアスがあることも想像できる。そのため、人間のコミュニケーションを、相互作用モデルという点で共通なイジングモデル等に模してその特性を明らかにしようという研究もなされている。
【００３５】
以下においては、イジングモデルの基底状態探索を行う半導体装置と、その半導体装置をアクセラレータとして制御する情報処理装置の例を説明する。
＜（２）有向グラフに拡張したイジングモデル＞
【００３６】
本実施の形態では、イジングモデルを拡張した、以下の（３）式で示されるモデルを、以降イジングモデルと呼ぶ。
【００３７】
【数３】
2017033326.tif 000005
【００３８】
（１）式で示したイジングモデルとの違いは、（３）式では有向グラフで示されるような相互作用が許されることにある。一般的に、イジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、ｉ番目スピンからｊ番目スピンへの相互作用係数Ｊｉ，ｊとｊ番目スピンからｉ番目スピンへの相互作用係数Ｊｊ，ｉとを区別していないことによる。
【００３９】
本発明はイジングモデルを拡張し、Ｊｉ，ｊとＪｊ，ｉを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にＪｉ，ｊとＪｊ，ｉとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも（１）式のエネルギー関数に対して（３）式のエネルギー関数ではエネルギーの値が２倍になる。
＜（３）本実施の形態における情報処理装置の構成＞
【００４０】
＜＜（３−１）半導体装置を含む情報処理装置の全体構成＞＞
【００４１】
半導体装置を含む情報処理装置の全体構成について、図１および図２を用いて説明する。図１は、本実施の形態１における半導体装置を含む情報処理装置の全体構成の一例を示すブロック図である。図２は、本実施の形態１において、マルチイジングチップの構成の一例を示すブロック図である。
【００４２】
図１において、１は全体として本実施の形態による情報処理装置を示す。この情報処理装置１は、パーソナルコンピュータやワークステーションまたはサーバなどから構成され、システムバス２を介して接続されたＣＰＵ（Central Processing Unit）３、メモリ４、記憶装置５および複数のマルチイジングチップ６を備える。
【００４３】
ＣＰＵ３は、情報処理装置１全体の動作制御を司るプロセッサである。またメモリ４は、例えば揮発性の半導体メモリから構成され、各種プログラムを記憶するために利用される。記憶装置５は、例えばハードディスク装置やＳＳＤ（Solid State Drive）などから構成され、プログラムやデータを長期間保持するために利用される。
【００４４】
本実施の形態の場合、記憶装置５には、本情報処理装置１が解くべき単一かつイジングモデル形式の問題の問題データ７が格納され、メモリ４には、問題変換プログラム８およびマルチイジングチップ制御プログラム９が格納される。問題変換プログラムは、かかる問題のイジングモデルを必要に応じて複数の部分問題に分割し、これらの部分問題を個々のマルチイジングチップ６にそれぞれ振り分けるプログラムである。またマルチイジングチップ制御プログラム９は、個々のマルチイジングチップ６において対応する部分問題を解くための制御を行うためのプログラムである。部分問題は、それ自体が他の部分問題と独立した単一のイジングモデル形式の問題である。
【００４５】
なお、イジングモデル形式でない問題データをイジングモデル形式の問題データ７に変換するプログラムをメモリ４に格納しておくようにしてもよい。このようにすることによりイジングモデル形式でない問題についても対応可能となり、本情報処理装置１の有用性を向上させることができる。
【００４６】
マルチイジングチップ６は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるＧＰＵ（Graphics Processing Unit）のように、情報処理装置１に装着する拡張カードの形態を取る。
【００４７】
本実施の形態において、マルチイジングチップ６は、本発明の非線形演算を行う半導体装置に対応する。このマルチイジングチップ６は、情報処理装置１において、アクセラレータとして動作可能な半導体装置である。
【００４８】
マルチイジングチップ６は、図２に示すように、インタフェース（Ｉ／Ｆ）１０、イジングチップ群１１および制御部１２を備えて構成され、インタフェース１０およびシステムバス２（図１）を介してＣＰＵ３（図１）との間でコマンドや情報の送受を行う。
【００４９】
イジングチップ群１１は、それぞれがイジングモデルの基底状態探索を行う専用のハードウェアである複数のイジングチップ１３から構成される。イジングチップ１３間はチップ間配線１４により接続されており、このチップ間配線１４を介してイジングチップ１３同士が必要な情報を送受する。
【００５０】
制御部１２は、イジングチップ群１１を構成する各イジングチップ１３を制御する機能を有し、コントローラ１５、相互作用クロック生成器１６および乱数発生器１７を備えて構成される。
【００５１】
コントローラ１５は、マルチイジングチップ６全体の動作制御を司るプロセッサであり、情報処理装置１のＣＰＵ３（図１）からシステムバス２（図１）およびインタフェース１０を介して与えられるコマンドに従ってイジングチップ群１１を構成する各イジングチップ１３の動作や、相互作用クロック生成器１６および乱数発生器１７を制御する。
【００５２】
また相互作用クロック生成器１６は、後述する相互作用クロックを生成するクロック生成器である。相互作用クロック生成器１６により生成された相互作用クロックは、イジングチップ群１１を構成する各イジングチップ１３にそれぞれ与えられる。乱数発生器１７は、後述のように各イジングチップ１３において実行する基底状態探索で用いるランダムなビット列である乱数を発生させる。乱数発生器１７により発生された乱数は、各イジングチップ１３にそれぞれ与えられる。
＜＜（３−２）イジングチップの構成＞＞
【００５３】
イジングチップの構成について、図３を用いて説明する。図３は、本実施の形態１において、イジングチップの構成の一例を示すブロック図である。
【００５４】
図３に示すように、イジングチップ１３は、スピンアレイ２０、Ｉ／Ｏ（Input/output）アドレスデコーダ２１、Ｉ／Ｏドライバ２２、相互作用アドレスデコーダ２３およびチップ間接続部２４を備えて構成される。本実施の形態では、イジングチップ１３は現在広く用いられているＣＭＯＳ（Complementary Metal-Oxide Semiconductor）集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
【００５５】
イジングチップ１３は、スピンアレイ２０にリード／ライトを行うためのＳＲＡＭ互換インタフェース３０としてアドレスバス３１、データバス３２、Ｒ／Ｗ制御線３３およびＩ／Ｏクロック線３４を備える。またイジングチップ１３は、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース３５として、相互作用アドレス線３６および相互作用クロック線３７も備える。
【００５６】
イジングチップ１３では、イジングモデルのスピンσｉ、相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉをすべてスピンアレイ２０内のメモリセルに記憶する情報で表現する。スピンσｉの初期状態の設定や基底状態探索完了後の解読み出しはＳＲＡＭ互換インタフェース３０を介して行う。またイジングチップ１３では、基底状態を探索すべきイジングモデルをスピンアレイ２０に設定するための相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉのリード／ライトもＳＲＡＭ互換インタフェース３０を介して行う。
【００５７】
そのため、スピンアレイ２０内のスピンσｉ、相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉにはアドレスが付与されている。そしてイジングチップ１３にスピンσｉ、相互作用係数Ｊｉ，ｊまたは外部磁場係数ｈｉをリード／ライトする場合、対応するアドレスがコントローラ１５からアドレスバス３１を介してＩ／Ｏアドレスデコーダ２１に与えられ、これらスピンσｉ、相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉのリード／ライトを制御するＲ／Ｗ制御信号がコントローラ１５からＲ／Ｗ制御線３３を介してＩ／Ｏドライバ２２に与えられる。
【００５８】
かくしてＩ／Ｏアドレスデコーダ２１は、アドレスバス３１を介して与えられたアドレスに基づいてスピンアレイ２０のワード線をアクティベートし、Ｉ／Ｏドライバ２２は、Ｒ／Ｗ制御線３３を介して与えられたＲ／Ｗ制御信号に基づいてスピンアレイ２０内の対応するビット線を駆動する。これによりデータバス３２を介して与えられたスピンσｉの初期値や、相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉの設定値がスピンアレイ２０に設定され、または、基底状態探索完了後の解がスピンアレイ２０から読み出されてデータバス３２を介して外部に出力される。
【００５９】
なお、ＳＲＡＭ互換インタフェース３０を構成するアドレスバス３１、データバス３２およびＲ／Ｗ制御線３３は、Ｉ／Ｏクロック線３４を介して制御部１２からイジングチップ１３に与えられるＩ／Ｏクロックに同期して動作する。ただし、本発明においてインタフェースが同期式である必要はなく、非同期式のインタフェースでもよい。本実施の形態では、同期式のインタフェースであるという前提で説明を行う。
【００６０】
また、イジングチップ１３は、基底状態探索を行うために、スピンアレイ２０の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース３５である。具体的に、イジングチップ１３は、コントローラ１５から与えられる相互作用を行うスピン群を指定するアドレスを相互作用アドレス線３６を介して入力し、相互作用クロック線３７を介して入力される相互作用クロック生成器１６からの相互作用クロックに同期して相互作用を行う。相互作用アドレスデコーダ２３は、相互作用アドレス線３６を介して与えられたアドレスに基づいてスピンアレイ２０に対する相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉのリード／ライトを行う。
【００６１】
加えて、イジングチップ１３は、後述のようにスピンアレイ２０内のメモリから読み出したデータ、またはこのデータに所定の演算を行った結果を確率的に反転させるため、乱数を注入する乱数注入線３８を有する。図２について上述した乱数発生器１７により発生された乱数は、この乱数注入線３８を介してスピンアレイ２０に与えられる。
【００６２】
チップ間接続部２４は、隣接して配置されたイジングチップ１３との間で必要なスピンσｉの値を送受する際のインタフェースとして機能する。
＜＜（３−３）スピンアレイの構成＞＞
【００６３】
スピンアレイの構成について、図４を用いて説明する。図４は、本実施の形態１において、３次元格子のスピンアレイの構成の一例を説明する概念図である。
【００６４】
スピンアレイ２０は、１個のスピンσｉならびにそれに付随する相互作用係数Ｊｉ，ｊおよび外部磁場係数ｈｉの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
【００６５】
図４は、スピンユニット４０を複数個並べることで、３次元格子状のトポロジを持つイジングモデルを構成する例を示している。図４の例は、３（Ｘ軸方向）×３（Ｙ軸方向）×２（Ｚ軸方向）の大きさの３次元格子である。座標軸の定義は図示した通り、図面右方向をＸ軸、図面下方向をＹ軸、図面奥行き方向をＺ軸としているが、この座標軸は実施の形態の説明上便宜的に必要なだけであり、本発明とは関係しない。３次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図４の３次元格子状のトポロジにおいて、スピン間の相互作用をグラフとして捉えると、最大で次数５のスピン（頂点）が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数６が必要となる。
【００６６】
図４に示す１個のスピンユニット４０には、隣接するスピン（例えば隣接するスピンが５個の場合σ１、σ２、σ３、σ４、σ５）の値が入力される。このためスピンユニット４０は、これら入力する隣接するスピンの値を保持するためのメモリセルを有している。またスピンユニット４０は、かかるスピンの値に加え、外部磁場係数と、上述した隣接するスピンとの相互作用係数（隣接する５スピンとの相互作用係数Ｊｉ，１、Ｊｉ，２、Ｊｉ，３、Ｊｉ，４、Ｊｉ，５）をそれぞれ保持するメモリセルも有している。
＜＜（３−４）スピンユニットの構成＞＞
【００６７】
スピンユニットの構成について、図５〜図９を用いて説明する。図５および図６は、本実施の形態１において、スピンアレイの構成の説明に供する概念図である。図７および図８は、本実施の形態１において、スピンユニットの構成の一例を示すブロック図である。図９は、本実施の形態１において、イジングチップ上のスピンユニットの配置の一例を示すブロック図である。
【００６８】
スピンユニット４０の一構成例を図７および図８を用いて説明する。スピンユニット４０は２つの側面をもっており、便宜上、図７および図８に分けて説明するが、１個のスピンユニット４０は図７および図８の構成の双方を含む。
【００６９】
図７は、スピンユニット４０間の相互作用を実現するための回路を示している。図７に示すように、スピンユニット４０は、回路ブロック４６、ＸＯＲ（排他的論理和）回路４８、多数決回路４４、セレクタ４３およびメモリセルＮを備えて構成される。回路ブロック４６は、メモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）、ＸＮＯＲ（排他的論理和の否定）回路４５を備える。ＸＮＯＲ回路４５は、複数のＸＮＯＲゲートで構成される。また、回路ブロック４６には、メモリセルＪｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）とＸＮＯＲ回路４５との間に接続される複数のＸＮＯＲゲートも含まれる。ＸＯＲ回路４８は、複数のＸＯＲゲートで構成される。
【００７０】
図７に示すスピンユニット４０において、例えばメモリセルＨ［ｕ］（０≦ｕ≦１）の部分では、メモリセルＨ［０］がＸＮＯＲ回路４５のＸＮＯＲゲートの一方の入力に接続され、メモリセルＨ［１］がＸＮＯＲ回路４５のＸＮＯＲゲートの他方の入力に接続されている。このＸＮＯＲ回路４５のＸＮＯＲゲートの出力はＸＯＲ回路４８のＸＯＲゲートの一方の入力に接続され、このＸＯＲ回路４８のＸＯＲゲートの他方の入力には乱数信号線４９が接続されている。また、メモリセルＨ［０］は直接ＸＯＲ回路４８の別のＸＯＲゲートの一方の入力に接続され、このＸＯＲ回路４８の別のＸＯＲゲートの他方の入力には別の乱数信号線４９が接続されている。
【００７１】
また、メモリセルＪ１［ｕ］（０≦ｕ≦１）の部分では、他のスピンユニットからのスピンの値の信号線Ｎ１とメモリセルＪ１［０］とが、メモリセルＪ１［０］とＸＮＯＲ回路４５との間のＸＮＯＲゲートのそれぞれの入力に接続されている。このメモリセルＪ１［０］とＸＮＯＲ回路４５との間のＸＮＯＲゲートの出力はＸＮＯＲ回路４５のＸＮＯＲゲートの一方の入力に接続され、このＸＮＯＲ回路４５のＸＮＯＲゲートの他方の入力にはメモリセルＪ１［１］が接続されている。このＸＮＯＲ回路４５のＸＮＯＲゲートの出力はＸＯＲ回路４８のＸＯＲゲートの一方の入力に接続され、このＸＯＲ回路４８のＸＯＲゲートの他方の入力には乱数信号線４９が接続されている。また、メモリセルＪ１［０］とＸＮＯＲ回路４５との間のＸＮＯＲゲートの出力は直接ＸＯＲ回路４８の別のＸＯＲゲートの一方の入力に接続され、このＸＯＲ回路４８の別のＸＯＲゲートの他方の入力には別の乱数信号線４９が接続されている。
【００７２】
さらに、他のメモリセルＪ２［ｕ］、Ｊ３［ｕ］、Ｊ４［ｕ］、Ｊ５［ｕ］（０≦ｕ≦１）の部分でも、上記のメモリセルＪ１［ｕ］（０≦ｕ≦１）の部分と同様に接続されている。図７に示すスピンユニット４０において、乱数信号線４９はＸＯＲ回路４８の１２個のＸＯＲゲートに対応して１２本で構成されている。
【００７３】
そして、ＸＯＲ回路４８の出力は多数決回路４４の入力となる。この多数決回路４４には、乱数信号線５０が接続されている。多数決回路４４の出力は、セレクタ４３の一方の入力に接続され、このセレクタ４３の他方の入力にはメモリセルＮの出力が接続されている。セレクタ４３には、当該スピンユニット４０のスピンの更新を許可する切替え信号の信号線ＥＮが接続されている。セレクタ４３の出力はメモリセルＮの入力に接続され、このメモリセルＮの出力は当該スピンユニット４０のスピンの値を他のスピンユニット４０に出力する信号線ＯＮに接続されている。
【００７４】
図８は、スピンユニット４０が有するメモリセルＮ、Ｈ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）に、イジングチップ１３外からアクセスするためのインタフェースであるビット線４１とワード線４２とに注目して、スピンユニット４０の構成を図示したものである。
【００７５】
スピンユニット４０は、イジングモデルのスピンσｉ、相互作用係数Ｊｉ，ｋ（１≦ｋ≦５）および外部磁場係数ｈｉを保持するために、複数の１ビットのメモリセルＮ、Ｈ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）を備えている。なお、メモリセルＨ［０］およびＨ［１］、メモリセルＪ１［０］およびＪ１［１］、メモリセルＪ２［０］およびＪ２［１］、メモリセルＪ３［０］およびＪ３［１］、メモリセルＪ４［４］およびＪ４［１］、ならびに、メモリセルＪ５［０］およびＪ５［１］は、それぞれ２個１組で役割を果たすものであるため、適宜、これらをそれぞれまとめてメモリセル対Ｈｘ、Ｊ１ｘ、Ｊ２ｘ、Ｊ３ｘ、Ｊ４ｘまたはＪ５ｘと略記する（図５参照）。
【００７６】
ここで、スピンユニット４０はｉ番目のスピンを表現するものとして説明を行う。メモリセルＮはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは＋１／−１（＋１を上、−１を下とも表現する）であるが、これをメモリセルが保持可能な２値である０／１に対応させる。例えば、＋１を１、−１を０に対応させる。
【００７７】
図５を用いて、スピンユニット４０が有するメモリセル対Ｈｘ、Ｊｋｘ（１≦ｋ≦５）と、図４に示したイジングモデルのトポロジとの対応関係を示す。メモリセル対Ｈｘは外部磁場係数を記憶する。また、メモリセル対Ｊｋｘ（１≦ｋ≦５）は、それぞれ相互作用係数を記憶する。具体的に、メモリセル対Ｊ１ｘは上側のスピン（Ｙ軸方向で−１）、メモリセル対Ｊ２ｘは左側のスピン（Ｘ軸方向で−１）、メモリセル対Ｊ３ｘは右側のスピン（Ｘ軸方向で＋１）、メモリセル対Ｊ４ｘは下側のスピン（Ｙ軸方向で＋１）、メモリセル対Ｊ５ｘは奥行き方向に接続するスピン（Ｚ軸方向で＋１ないしは−１）との相互作用係数をそれぞれ記憶する。
【００７８】
イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット４０は最大で５個のスピンと接続される。本実施の形態のイジングチップ１３では、外部磁場係数および相互作用係数として＋１／０／−１の３値に対応する。そのため、外部磁場係数および相互作用係数を表わすためには、それぞれ２ビットのメモリセルが必要となる。
【００７９】
メモリセルＨ［０］、Ｊｋ［０］（１≦ｋ≦５）はそれぞれ対応する係数が正のとき１、０以下のとき０とする。またメモリセルＨ［１］、Ｊｋ［１］はそれぞれが対応する係数の絶対値が１のとき１、０のとき０を与える。例えばスピンセルの保持する外部磁場係数が−１のときＨ［０］＝０、Ｈ［１］＝１である。
【００８０】
スピンユニット４０内のメモリセルＮ、Ｈ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｉ≦５）は、それぞれイジングチップ１３の外部からリード／ライト可能でなければならない。そのために、図８に示すように、スピンユニット４０はビット線４１とワード線４２とをそれぞれ有している。
【００８１】
そしてイジングチップ１３では、図９に示すように、スピンユニット４０が半導体基板上にタイル状に並べられてビット線４１とワード線４２とが接続されており、Ｉ／Ｏアドレスデコーダ２１とＩ／Ｏドライバ２２でこれらのスピンユニット４０を駆動、制御または読み出しすることにより、一般的なＳＲＡＭ（Static Random Access Memory）と同様にスピンユニット４０内のメモリセルをイジングチップ１３のＳＲＡＭ互換インタフェース３０でリード／ライトすることができるようになされている。
【００８２】
なお、図９上で表現されているスピンユニット（ＮｘｙｚというようにＸ軸、Ｙ軸およびＺ軸上の位置によって符号を付与している）が、３次元格子のトポロジでどの頂点に対応するかを図６に示す。３×３×２の３次元格子頂点を２次元平面上に配置するために、Ｘ軸方向の格子頂点配列の間隔にＺ軸方向の格子頂点配列の各格子頂点を挿入するように配置している。すなわち、図９の２次元平面上でのＹ軸方向（図面下側がＹ軸の正方向）にはＮｘ０ｚ、Ｎｘ１ｚ、Ｎｘ２ｚというように配置されるが、Ｘ軸方向（図面右側がＸ軸の正方向）にはＮ０ｙ０、Ｎ０ｙ１、Ｎ１ｙ０、Ｎ１ｙ１、Ｎ２ｙ０、Ｎ２ｙ１というように、Ｚ軸方向座標が０と１のスピンユニットが交互に配置される。
【００８３】
また、スピンユニット４０は同時に更新を行うために、相互作用を計算して次のスピンの状態を決定するための回路を、スピンユニット４０毎に独立して持っている。図７では、スピンユニット４０は、外部とのインタフェースとして、信号線ＥＮ、Ｎｋ（１≦ｋ≦５）、ＯＮおよびＲＮＤ（４９、５０）を有する。信号線ＥＮは、当該スピンユニット４０のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ４３を制御することで、メモリセルＮに保持されたスピンの値を、後述の多数決回路４４からセレクタ４３に与えられる値に更新することができる。
【００８４】
信号線ＯＮは、当該スピンユニット４０のスピンの値を他のスピンユニット４０（図４のトポロジで隣接するユニット）に出力するインタフェースである。信号線Ｎｋ（１≦ｋ≦５）は、それぞれ他のスピンユニット４０（図４のトポロジで隣接するユニット）が保持するスピンの値を入力するためのインタフェースである。信号線Ｎ１は上側のスピン（Ｙ軸方向で−１）、信号線Ｎ２は左側のスピン（Ｘ軸方向で−１）、信号線Ｎ３は右側のスピン（Ｘ軸方向で＋１）、信号線Ｎ４は下側のスピン（Ｙ軸方向で＋１）、信号線Ｎ５は奥行き方向に接続するスピン（Ｚ軸方向で＋１ないしは−１）からの入力である。
【００８５】
信号線ＲＮＤ（４９）は、乱数信号線（以下、ＲＮＤ線とも呼ぶ）であり、多数決回路４４の前段に供給し、このＲＮＤ線４９から印加される乱数信号に基づいて、多数決回路４４に入力される所定の信号の値を確率的に反転する。また、信号線ＲＮＤ（５０）は、多数決回路４４に入力されるＲＮＤ線である。これらのＲＮＤ線４９および５０は、乱数注入線３８（図３）を介して、乱数信号を発生する乱数発生器１７（図２）に接続されている。
【００８６】
本実施の形態においては、メモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）が、本発明におけるメモリに対応する。また、これらのメモリセルを除く回路ブロック４６の部分が、本発明において、メモリからデータを読む読み出し部に対応する。さらに、多数決回路４４が、本発明において、読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路に対応する。そして、セレクタ４３の部分が、本発明において、多数決回路の出力を入力する書き込み回路に対応する。また、本発明において、メモリ、読み出し部、多数決回路および書き込み回路を制御する制御部は、図２に示した制御部１２に対応する。
【００８７】
＜＜（３−５）多数決回路と乱数を用いた非線形演算の実現＞＞
【００８８】
多数決回路と乱数を用いた非線形演算の実現について、上述した図７に加えて、図１０、図１１、図１２Ａ、図１２Ｂ、図１３Ａおよび図１３Ｂを用いて説明する。図１０は、本実施の形態１において、図７に示すスピンユニットの説明に供する、イジングモデルの図である。図１１は、本実施の形態１において、図７に示すスピンユニット内の一箇所を抽出したブロック図である。図１２Ａおよび図１２Ｂは、本実施の形態１において、係数とスピン値による計算結果の説明に供する概念図である。図１３Ａおよび図１３Ｂは、本実施の形態１において、スピンユニットに注入する乱数の説明に供する図である。
【００８９】
スピンユニット４０は、隣接スピンの値によってスピンの次状態を確率的に決定する。図７、図１０、図１１、図１２Ａ、図１２Ｂ、図１３Ａおよび図１３Ｂを用いて、熱浴法に基づくＳＡ法を実現する回路構成および乱数の制御法を説明する。
【００９０】
スピンユニット４０の表すスピンを現在の値から反転させたとき、エネルギーは次式で計算されるΔＨだけ増加する。
【００９１】
【数４】
2017033326.tif 000006
【００９２】
確率的な遷移の後でｉ番目のスピンの値が１となる場合は、現在の状態でσｉ＝＋１かつスピンが非反転、または現在の状態でσｉ＝−１かつスピンが反転のいずれかである。それぞれ発生する確率ｐ１、ｐ２は次式の通りである。
【００９３】
【数５】
2017033326.tif 000007
【００９４】
【数６】
2017033326.tif 000008
【００９５】
（５）式、（６）式で示した各確率に（４）式を代入すると、いずれも次式のｐ＋となる。
【００９６】
【数７】
2017033326.tif 000009
【００９７】
つまり、熱浴法に従ってスピンを確率的に反転したとき、反転後の値が１となる確率は遷移前の値に依存せず常にｐ＋である。ゆえに、熱浴法によってスピンを確率的に更新するとき、セレクタ４３を介してメモリセルＮに確率ｐ＋で１を書き込めばよい。これは、多数決回路４４が確率ｐ＋で１を出力することに相当する。
【００９８】
スピンユニット４０内の回路ブロック４６を図１１に示す。回路ブロック４６は、隣接スピンの値を読み出す信号線Ｎｋと、係数を表すメモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）およびＸＮＯＲ回路４５で構成される。隣接スピンの値が＋１のとき信号線Ｎｋは１、スピンの値が−１のとき信号線Ｎｋは０とする。ＸＮＯＲ回路４５は、複数のＸＮＯＲゲートで構成される。回路ブロック４６には、メモリセルＪｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）とＸＮＯＲ回路４５との間に接続される複数のＸＮＯＲゲートも含まれる。回路ブロック４６から出力する信号の値をＨ’［ｕ］、Ｊ’ｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）と表す。
【００９９】
外部磁場係数ｈｉが＋１／０／−１の各場合についてＨ’［０］、Ｈ’［１］を計算すると、図１２Ａに示す表の通りである。例えば、ｈｉが１、Ｈ［０］が１、Ｈ［１］が１の場合に、Ｈ’［０］は１、Ｈ’［１］は１となる。他は図１２Ａの通りである。Ｈ’［０］、Ｈ’［１］で、値１の個数をＮＨ＋、値０の個数をＮＨ−とすると次式が成り立つ。
【０１００】
【数８】
2017033326.tif 000010
【０１０１】
同様に、相互作用係数Ｊｉ，ｋ（１≦ｋ≦５）が＋１／０／−１および信号線Ｎｋで読み出す隣接スピンの値σｋが＋１／−１の各場合についてＪ’ ｋ［０］、Ｊ’ ｋ［１］を計算する。すると図１２Ｂに示す表の通りである。例えば、σｋが１、Ｎｋが１、Ｊｉ，ｋが１、Ｊｋ［０］が１、Ｊ ｋ［１］が１の場合に、Ｊ’ ｋ［０］は１、Ｊ’ ｋ［１］は１となる。他は図１２Ｂの通りである。Ｊ’ ｋ［０］、Ｊ’ ｋ［１］で、値１の個数をＮＪｋ，＋、値０の個数をＮＪｋ，−とすると次式が成り立つ。
【０１０２】
【数９】
2017033326.tif 000011
（８）式および（９）式より、次の等式が成り立つ。
【０１０３】
【数１０】
2017033326.tif 000012
【０１０４】
この（１０）式の右辺は、回路ブロック４６から出力する信号において、値が１である信号の本数ｎ＋と、値が０である信号の本数ｎ−の差を表す。すると次式が成立する。
【０１０５】
【数１１】
2017033326.tif 000013
【０１０６】
（１１）式を用いて（７）式に示した確率ｐ＋は以下の通りに表される。
【０１０７】
【数１２】
2017033326.tif 000014
【０１０８】
（１２）式は、パラメータＴを用い、値ｘ（＝ｎ＋−ｎ−）を引数とする双曲線正接関数を含む以下の関数によって与えられる確率ｆ（ｘ，Ｔ）で表すことができる。
【０１０９】
【数１３】
2017033326.tif 000015
【０１１０】
ところで、標準正規分布の累積分布関数と双曲線正接関数に関して、以下の近似式が知られている。
【０１１１】
【数１４】
2017033326.tif 000016
【０１１２】
この近似式および（１２）式より、確率ｐ＋は以下の通り近似的に表せる。
【０１１３】
【数１５】
2017033326.tif 000017
【０１１４】
以上より、多数決回路４４は（１５）式で表された確率ｐ＋で１を出力すればよい。
【０１１５】
本実施の形態では、回路ブロック４６から出力する各信号を、ＲＮＤ線（乱数信号線）４９とＸＯＲ回路４８を用いて、確率的に反転する。ＲＮＤ線４９はそれぞれ確率ｐで１、確率１−ｐで０となる乱数で、各乱数は互いに独立とする。図１３Ａはｐ＝０．２５として３本のＲＮＤ線４９に印加した乱数の様子である。図１３Ａの例では、例えば１本目のＲＮＤ線４９に印加した乱数は、２０クロックのうち、２、８、１３、１９および２０クロック目が高レベルとなる信号である。また、２本目のＲＮＤ線４９は３、６、１０、１２および１９クロック目、３本目のＲＮＤ線４９は１、４、１０、１３および１４クロック目がそれぞれ高レベルとなる信号である。いずれのＲＮＤ線４９も高レベルの比率が５／２０＝０．２５となり、確率ｐ＝０．２５を実現する。時間的にランダムな乱数をＸＯＲ回路４８に供給するため、乱数クロック幅は相互作用クロック幅以下でなければならない。図１３Ａでは、乱数クロック幅と相互作用クロック幅とが等しい例を示している。
【０１１６】
回路ブロック４６の出力のある信号が１のとき、この信号とＲＮＤ線４９を入力とするＸＯＲ回路４８の出力は確率１−ｐで１、確率ｐで０となる。また、回路ブロック４６の出力のある信号が０のとき、この信号とＲＮＤ線４９を入力とするＸＯＲ回路４８の出力は確率ｐで１、確率１−ｐで０となる。よってＸＯＲ回路４８の出力にて、１の信号線の本数Ｚは平均ｎ＋（１−ｐ）＋ｎ−ｐ、分散（ｎ＋＋ｎ−）ｐ（１−ｐ）の正規分布に従う。
【０１１７】
スピンユニット４０内のメモリセルで表すイジングモデルの係数の本数をＬと表す。例えば、図１０に示すスピンσｉを表すスピンユニット４０は５つの相互作用係数と１つの外部磁場係数を表すためＬ＝６である。２Ｌ＝ｎ＋＋ｎ−であるため、Ｚは平均ｎ＋（１−ｐ）＋ｎ−ｐ、分散２Ｌｐ（１−ｐ）の正規分布に従うと言い換えられる。
【０１１８】
ＸＯＲ回路４８は２Ｌ個存在する。ＸＯＲ回路４８の出力にて１と０である信号の本数が等しいとき、つまりＺ＝Ｌのとき、１または０を等確率で多数決の結果とする必要がある。多数決回路４４の入力にＲＮＤ線５０を加えることで、これは実現される。ただし、ＲＮＤ線５０には確率０．５で１、確率０．５で０となる乱数を印加する。図１３ＢにＲＮＤ線５０に印加する乱数の様子を示す。図１３Ｂの例では、ＲＮＤ線５０に印加する乱数は、２０クロックのうち、３、４、８、９、１０、１４、１５、１６、１８および１９クロック目が高レベルとなる信号である。このＲＮＤ線５０は高レベルの比率が１０／２０＝０．５となり、確率０．５を実現する。
【０１１９】
ＸＯＲ回路４８の出力にて１と０である信号の本数が異なるとき、つまりＺ≠Ｌのとき、ＲＮＤ線５０によって多数決回路４４が出力すべき値が反転することは無い。
【０１２０】
多数決回路４４は次式で計算される確率ｑ＋で１を出力する。
【０１２１】
【数１６】
2017033326.tif 000018
【０１２２】
確率ｑ＋と確率ｐ＋が任意のｎ＋、ｎ−で近似値となる条件は次式で表される。
【０１２３】
【数１７】
2017033326.tif 000019
【０１２４】
（１７）式より、ＳＡ法のパラメータＴと確率ｐに関して、以下の等式が成り立つ。
【０１２５】
【数１８】
2017033326.tif 000020
【０１２６】
ＳＡ法では初期状態でパラメータＴを大きな値に設定し、状態間の遷移を繰り返すにつれてＴを徐々に減少させる。これを上記の等式に当てはめるとＳＡ法の初期はｐ＝１／２で、次第にｐ＝０へ減少することに相当する。
＜（４）イジングチップの制御手順＞
【０１２７】
イジングチップの制御手順について、図１４、図１５Ａおよび図１５Ｂを用いて説明する。図１４は、本実施の形態１において、基底状態探索処理の処理手順を示すフローチャートである。図１５Ａおよび図１５Ｂは、本実施の形態１において、スピンユニットに注入する乱数の制御法の説明に供する図である。
【０１２８】
図１４は、本実施の形態の情報処理装置１において、ＣＰＵ３（図１）により実行される基底状態探索処理の処理手順を示す。ＣＰＵ３は、ステップＳＰ１については問題変換プログラム８（図１）に基づき、これ以降の処理（ステップＳＰ２〜ステップＳＰ１１）についてはマルチイジングチップ制御プログラム９（図１）に基づいて、必要なマルチイジングチップ６（図２）のコントローラ１５（図２）を介して当該マルチイジングチップ６内のイジングチップ１３を制御することにより、これらのイジングチップ１３において基底状態探索を実行させる。なお、ステップＳＰ１の処理と、ステップＳＰ２〜ステップＳＰ１１の処理とを別々のタイミングで実行するようにしてもよい。
【０１２９】
またＣＰＵ３は、各マルチイジングチップ６内のイジングチップ１３や、イジングチップ１３内のスピンユニット４０をマルチイジングチップ６内のコントローラ１５（図２）を介して制御するが、以下においては理解の容易化のため、コントローラ１５の存在を省略して説明を行う。
【０１３０】
ＣＰＵ３は、ユーザからの指示等によりこの基底状態探索処理を開始すると、まず、問題データ７（図１）をイジングモデルの形式のデータに変換する（ステップＳＰ１）。問題データ７がすでにイジングモデルの形式のデータである場合、ステップＳＰ１は省略する。
【０１３１】
続いて、ＣＰＵ３は、変換後のイジングモデルの相互作用係数および外部磁場係数を必要なマルチイジングチップ６の各イジングチップ１３内の各スピンユニット４０にそれぞれ設定する（ステップＳＰ２）。
【０１３２】
次いで、ＣＰＵ３は、各スピンユニットが保持すべきスピンの値を乱数によりそれぞれ決定し、決定したスピンの値となるよう、かかるマルチイジングチップ６における各イジングチップ１３内の各スピンユニット４０のスピンの値を初期化する（ステップＳＰ３）。
【０１３３】
さらにＣＰＵ３は、予め定められた各マルチイジングチップ６内の乱数発生器１７（図２）からＲＮＤ線４９に供給する各乱数において「１」が出現する確率（以下、ビット確率と呼ぶ）を設定する（ステップＳＰ４）。ビット確率は前述の確率ｐに相当する。
【０１３４】
ステップＳＰ４の手続きを詳述する。ＳＡ法に関する既存研究では、最適解に充分近い解を得るため、以下を始めとする温度スケジューリングが提案されている。
【０１３５】
【数１９】
2017033326.tif 000021
【０１３６】
【数２０】
2017033326.tif 000022
【０１３７】
ＴｋはパラメータＴを徐々に下げたときのｋ番目の値である。ＳＡ法の開始時におけるパラメータＴの値はＴ０とする。また、Ｃは充分に大きな定数、αは０＜α＜１を満たす定数である。ステップＳＰ４ではまず、ＣＰＵ３が（１９）式や（２０）式などの温度スケジューリングを用いてＴｋ（ｋ＝０，１，２，…）を計算する。次に（１８）式を用いて、各パラメータＴｋで熱浴法を実行することに相当する各ビット確率を求める。そしてステップＳＰ４の最後に、前述の各段階における各ビット確率を設定する。
【０１３８】
本実施の形態の場合、開始時はビット確率を０．５程度に設定し、その後、段階的にビット確率を下げる。これにより各スピンユニット４０が保持するスピンの値を熱浴法に基づき確率的に反転する。
【０１３９】
Ｔ０＝１００、α＝０．９として温度スケジューリングを（２０）式で決定した場合のＴｋ（０≦ｋ＜４０）を図１５Ａに示す。図１５Ａでは、横軸にステップｋ（ｋ＝０〜４０）、縦軸にパラメータＴ（Ｔ＝０〜１００）をとっている。Ｌ＝６のとき、各温度において（１８）式を用いてビット確率ｐを計算すると、図１５Ｂの通りになる。図１５Ｂでは、横軸にステップｋ（ｋ＝０〜４０）、縦軸にビット確率ｐ（ｐ＝０．０〜０．５）をとっている。
【０１４０】
ビット確率が０．５のとき、つまりＲＮＤ線４９の各信号に確率０．５で１となる乱数を印加すると、ＸＯＲ回路４８はそれぞれ確率０．５で１を出力する。ゆえに多数決回路４４は確率０．５で１を出力し、メモリセルＮにはランダムに０または１が書き込まれる。よってステップＳＰ３でスピンの値をランダムに初期化する場合、ステップＳＰ４でビット確率０．５を実行することにより、ステップＳＰ３を省略可能である。
【０１４１】
さらにＣＰＵ３は、予め定められたビット確率毎の相互作用演算の実行回数をそれぞれ設定する（ステップＳＰ５）。
【０１４２】
続いて、ＣＰＵ３は、マルチイジングチップ６の相互作用クロック生成器１６（図２）を駆動するなどして各イジングチップ１３内の各スピンユニット４０における相互作用演算を１回実行させ（ステップＳＰ６）、この後、現在のビット確率について設定された回数分だけ相互作用演算を実行し終えたか否かを判断する（ステップＳＰ７）。そしてＣＰＵ３は、この判断で否定結果を得るとステップＳＰ６に戻り、この後、ステップＳＰ６およびステップＳＰ７の処理を繰り返す。
【０１４３】
そしてＣＰＵ３は、やがて現在設定されているビット確率について設定された回数分の相互作用演算を実行し得ることによりステップＳＰ７で肯定結果を得ると、ステップＳＰ５で設定したビット確率毎の相互作用演算をすべて実行し終えたか否かを判断する（ステップＳＰ８）。
【０１４４】
ＣＰＵ３は、この判断で否定結果を得ると、ビット確率を現在のビット確率よりも低い予め定められたビット確率に更新すると共に（ステップＳＰ９）、その後実行すべき相互作用演算の回数をそのビット確率について予め定められた回数に更新する（ステップＳＰ１０）。そしてＣＰＵ３は、ステップＳＰ６に戻り、この後、ステップＳＰ６〜ステップＳＰ１０の処理を繰り返す。
【０１４５】
そしてＣＰＵ３は、やがてステップＳＰ５で設定されたビット確率毎の相互作用演算をすべて実行し終えることによりステップＳＰ８で肯定結果を得ると、そのとき対象としているマルチイジングチップ６における各イジングチップ１３内の各スピンユニット４０がそれぞれ保持するスピンの値を読み出す（ステップＳＰ１１）。
【０１４６】
そしてＣＰＵ３は、この後、この基底状態探索処理を終了する。以上のようにして、基底状態探索処理を実行することができる。
＜（５）本実施の形態１の効果＞
【０１４７】
以上説明した本実施の形態１の半導体装置および情報処理装置によれば、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能となる。すなわち、本実施の形態１の情報処理装置では、多数決回路４４の前処理の段階において確率的に信号を反転させることにより、加算器や乗算器などを用いずに、熱浴法に基づくＳＡ法で必要となる非線形関数で与える確率的な状態遷移を実行することができる。かくして、イジングモデルの基底状態または当該基底状態の近似解を精度高く得るための情報処理装置を、安価かつ容易に製造できる。より詳細には、以下の通りである。
【０１４８】
（１）半導体装置は、メモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）と、メモリセルＨ［ｕ］、Ｊｋ［ｕ］からデータを読む回路ブロック４６と、回路ブロック４６が読み出したデータに対して所定の演算を行った結果を入力する多数決回路４４と、多数決回路４４の出力を入力するセレクタ４３と、を備え、多数決回路４４の前段で所定の信号の値を確率的に反転する。これにより、加算器や乗算器を用いて非線形関数を計算することなく、非線形関数に基づく確率的な処理が可能となる。特に、多数決回路４４は、アナログ回路などの実装によって回路面積を小さく実現できる利点がある。
【０１４９】
（２）半導体装置において、多数決回路４４の前段に乱数信号線４９を供給することで、この乱数信号線４９から印加される乱数信号に基づいて、多数決回路４４に入力される所定の信号の値を確率的に反転することができる。
【０１５０】
（３）半導体装置は、メモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）、回路ブロック４６、多数決回路４４およびセレクタ４３を制御する制御部１２を備える。制御部１２は、メモリセルＨ［ｕ］、Ｊｋ［ｕ］の値に依らず制御部１２で決定するパラメータＴを用いて計算するステップを有する。このステップでは、計算の結果に基づいて半導体装置内における所定の信号の値を確率的に反転し、メモリセルＨ［ｕ］、Ｊｋ［ｕ］の値で決定される値ｘを引数とする双曲線正接関数を含む（１３）式の関数によって与えられる確率ｆ（ｘ，Ｔ）でランダムに「１」を出力する。これにより、乱数信号線４９にランダムに印加する「１」の確率を計算して制御することで、所望の確率的な処理を実現することができる。
【０１５１】
（４）半導体装置として、非線形演算を行う半導体装置に適用することができる。また、別の半導体装置として、相互作用モデルの計算を行う半導体装置に適用することができる。より具体的には、イジングモデルのエネルギーを最小とするスピンの配列である基底状態または当該基底状態の近似解を問題の解として算出する半導体装置に適用することができる。
【０１５２】
（５）半導体装置において、スピン間の相互作用の本数をＬ本とする場合に、制御部１２は、この制御部１２で決定するパラメータＴを用いて（１８）式によって計算される確率ｐで「１」となるランダムな信号を乱数信号線４９に供給する。これにより、乱数信号線４９にランダムに印加する「１」の確率を計算して制御することで、所望の確率的な処理を実現することができる。
【０１５３】
（６）本実施の形態によれば、最適化問題を解くアルゴリズムであるＳＡ法などにおいて要求される非線形関数に基づく確率的な処理を、加算器や乗算器等を排して回路規模の増加を抑制しつつ実現することができる。すなわち、加算器や乗算器等の代わりに多数決回路４４を活用する構成により、同等の機能を、加算器や乗算器等を使用する場合と比べて、回路規模を削減して実現することが可能となる。さらに、非線形関数に基づく確率的な処理の実現により、熱浴法に基づくＳＡ法によるイジングモデルの基底状態探索が可能となる。
［実施の形態２］
【０１５４】
上述の実施の形態１においては、ＸＯＲ回路４８の各ＸＯＲゲートの入力にそれぞれ異なるＲＮＤ線（乱数信号線）４９を与える場合を詳述した。しかし、乱数クロック幅が充分に小さいとき、ＲＮＤ線４９の本数を減らすことが可能である。
【０１５５】
本実施の形態２は、ＲＮＤ線の削減が可能な半導体装置および情報処理装置に適用した例であり、上述の実施の形態１と異なる点を主に、図１６および図１７を用いて説明する。図１６は、本実施の形態２におけるスピンユニットの構成の一例を示すブロック図である。図１７は、本実施の形態２において、スピンユニットに注入する乱数の説明に供する図である。
【０１５６】
図１６は、ＲＮＤ線５１を１本に纏めた場合の回路構成を示す。この１本のＲＮＤ線５１は、ＸＯＲ回路４８のそれぞれのＸＯＲゲートの一方の入力に接続されている。このＸＯＲ回路４８のそれぞれのＸＯＲゲートの他方の入力には、回路ブロック４６の出力がそれぞれ接続されている。図１６に記す各箇所における信号の値をＳ０、Ｓ１と表す。ＲＮＤ線５１に注入した乱数信号は、Ｓ０、Ｓ１を順番に遅延を伴って伝播する（図１７参照）。乱数クロック幅がＳ０、Ｓ１間の遅延時間以下ならば、ある時刻においてＳ０、Ｓ１における乱数は互いに独立である。図１７では、遅延時間が乱数クロック幅の２クロック分に相当する例を示している。
【０１５７】
なお、図１６ではＲＮＤ線５１を１本としたが、乱数の遅延時間と乱数クロック幅の比較により、ＲＮＤ線５１の本数を適切に設定すればよい。
【０１５８】
以上説明した本実施の形態２の半導体装置および情報処理装置によれば、上述の実施の形態１と異なる効果として、乱数クロック幅が充分に小さいときにはＲＮＤ線５１の本数を減らすことが可能となる。
［実施の形態３］
【０１５９】
上述の実施の形態１および２においては、スピンユニット４０の係数を表すメモリセルが各係数の符号および係数の絶対値を記録する場合における回路構成を詳述した。しかし、メモリセルに与える係数を変えることで回路ブロック４６の回路を簡略化可能である。
【０１６０】
本実施の形態３は、スピンユニット内の回路ブロックにおける回路構成を変更した半導体装置および情報処理装置に適用した例であり、上述の実施の形態１および２と異なる点を主に、図１８を用いて説明する。図１８は、本実施の形態３におけるスピンユニットの構成の一例を示すブロック図である。
【０１６１】
図１８は、イジングモデルの各係数を上述の実施の形態１と異なる規則に従ってメモリセルに与える場合の構成例である。メモリセルＨ［０］、Ｊｋ［０］（１≦ｋ≦５）はそれぞれ対応する係数が正のとき１、０以下のとき０である。またメモリセルＨ［１］は外部磁場係数の絶対値とＨ［０］の排他的論理和の否定を記録する。同様に、メモリセルＪｋ［１］（１≦ｋ≦５）は、対応する相互作用係数の絶対値とＪｋ［０］の排他的論理和の否定を記録する。例えばスピンセルの保持する外部磁場係数が−１のときＨ［０］＝０、Ｈ［１］＝０である。このとき、上述の実施の形態１と同様に、熱浴法に基づく確率的な状態遷移を実現する。
【０１６２】
また、図１８に示すスピンユニット４０においては、回路ブロック４６が上述の実施の形態１の図７と異なる構成となっている。例えばメモリセルＨ［ｕ］（０≦ｕ≦１）の部分では、メモリセルＨ［０］およびメモリセルＨ［１］が直接ＸＯＲ回路４８のそれぞれのＸＯＲゲートに接続されている。
【０１６３】
また、メモリセルＪ１［ｕ］（０≦ｕ≦１）の部分では、２つのＸＮＯＲゲートを有し、この２つのＸＮＯＲゲートのそれぞれの一方の入力に他のスピンユニットからのスピンの値の信号線Ｎ１が接続され、この２つのＸＮＯＲゲートのそれぞれの他方の入力にメモリセルＪ１［０］およびメモリセルＪ１［１］がそれぞれ接続されている。
【０１６４】
さらに、他のメモリセルＪ２［ｕ］、Ｊ３［ｕ］、Ｊ４［ｕ］、Ｊ５［ｕ］（０≦ｕ≦１）の部分でも、上記のメモリセルＪ１［ｕ］（０≦ｕ≦１）の部分と同様に接続されている。そして、回路ブロック４６の出力はＸＯＲ回路４８に入力され、このＸＯＲ回路４８において、上述の実施の形態１と同様に、ＲＮＤ線４９に注入された乱数信号との論理演算が行われる。
【０１６５】
以上説明した本実施の形態３の半導体装置および情報処理装置によれば、上述の実施の形態１および２と異なる効果として、メモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）に与える係数を変えることで回路ブロック４６の回路構成を変更することができ、これによって、回路ブロック４６の回路を簡略化することが可能となる。
［実施の形態４］
【０１６６】
上述の実施の形態１〜３においては、多数決回路４４の一段前の処理で外部からＲＮＤ線（乱数信号線）で注入する乱数を入力に取るＸＯＲ回路４８を配置している。しかし、この演算は必ずしも多数決回路４４の一段前でなくても構わない。すなわち、多数決回路４４の一段前に限らず、それよりも以前の段階で演算してもよい。
【０１６７】
本実施の形態４は、スピンユニット内におけるＲＮＤ線を供給する箇所を変更した半導体装置および情報処理装置に適用した例であり、上述の実施の形態１〜３と異なる点を主に、図１９を用いて説明する。図１９は、実施の形態４におけるスピンユニットの構成の一例を示すブロック図である。
【０１６８】
図１９は、上述の実施の形態３と異なる箇所にＲＮＤ線４９を供給する構成例を示す。この回路は、外部からＲＮＤ線４９で注入する乱数を、メモリセルＨ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）から読み出す値と排他的論理和を計算する。すなわち、本実施の形態では，メモリセルＨ［ｕ］、Ｊｋ［ｕ］の記憶内容を確率的に反転して読み出す回路構成となっている。
【０１６９】
例えば、メモリセルＨ［ｕ］（０≦ｕ≦１）の部分では、２つのＸＯＲゲートを有し、この２つのＸＯＲゲートのそれぞれの一方の入力にメモリセルＨ［０］およびメモリセルＨ［１］がそれぞれ接続され、この２つのＸＯＲゲートのそれぞれの他方の入力にＲＮＤ線４９がそれぞれ接続されている。この２つのＸＯＲゲートのそれぞれの出力は、多数決回路４４に入力される。
【０１７０】
また、メモリセルＪ１［ｕ］（０≦ｕ≦１）の部分では、２つのＸＯＲゲートと２つのＸＮＯＲゲートとを有する。２つのＸＯＲゲートのそれぞれの一方の入力にＲＮＤ線４９がそれぞれ接続され、この２つのＸＯＲゲートのそれぞれの他方の入力にメモリセルＪ１［０］およびメモリセルＪ１［１］がそれぞれ接続されている。そして、２つのＸＮＯＲゲートのそれぞれの一方の入力に他のスピンユニットからのスピンの値の信号線Ｎ１が接続され、この２つのＸＮＯＲゲートのそれぞれの他方の入力に２つのＸＯＲゲートのそれぞれの出力が接続されている。この２つのＸＮＯＲゲートのそれぞれの出力は、多数決回路４４に入力される。
【０１７１】
さらに、他のメモリセルＪ２［ｕ］、Ｊ３［ｕ］、Ｊ４［ｕ］、Ｊ５［ｕ］（０≦ｕ≦１）の部分でも、上記のメモリセルＪ１［ｕ］（０≦ｕ≦１）の部分と同様に接続されている。そして、多数決回路４４において、上述の実施の形態１と同様の計算が行われる。
【０１７２】
図１９に示すスピンユニット４０においては、上述の実施の形態１と同様にＲＮＤ線４９を制御すると、図１８に示す回路構成および図１９に示す回路構成が表す論理演算は等価である。つまり、図１９に示す構成例のように、メモリセルの記憶内容を確率的に反転して読み出す回路を用いても、熱浴法に基づく状態遷移が実現される。
【０１７３】
以上説明した本実施の形態４の半導体装置および情報処理装置によれば、上述の実施の形態１〜３と異なる効果として、乱数との演算は多数決回路４４の一段前に限らないので、スピンユニット４０内におけるＲＮＤ線４９を供給する箇所を変更することが可能となる。
［他の実施の形態］
【０１７４】
上述の実施の形態１〜４は、イジングモデルの相互作用係数および外部磁場係数が＋１／０／−１の３値として説明した。しかし、メモリセルを増やすことで係数幅を拡張可能であることは明らかである。また二進数表記の要領で各メモリセルに値を与えることも可能である。例えば、１ビットのメモリセルを３個１組にした場合には、＋３／＋２／＋１／０／−１／−２／−３の７値にすることができる。このときＲＮＤ線４９に与える１の確率ｐの計算式は（１８）式と異なるが、前述の議論と同様にして容易に得られる。
【０１７５】
また、イジングモデルを格子構造として説明したが、本発明は任意のグラフ構造に対して適用可能である。
【０１７６】
さらに、本発明は、ＳＡ法のパラメータＴを一定にすることで、マルコフ連鎖モンテカルロ法を実行することも可能である。そのため、本発明はマルコフ連鎖モンテカルロ法によるサンプリング、すなわちイジングモデルのモンテカルロシミュレーションを行う半導体装置にも好適である。さらに、熱浴法の遷移確率を求める非線形演算（双曲線正接関数を含む関数）に基づく確率的な処理はニューラルネットワークでも必要となる。そのため、ニューラルネットワークの処理を実行する半導体装置に対する適用も可能である。
【０１７７】
以上のように、本発明は、物理学の世界で代表的なイジングモデルに限定されるものではなく、種々の物理現象や社会現象を表現することができる相互作用モデル全般に適用できるものである。
【０１７８】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【０１７９】
例えば、上述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１８０】
１…情報処理装置、２…システムバス、３…ＣＰＵ、４…メモリ、５…記憶装置、６…マルチイジングチップ、７…問題データ、８…問題変換プログラム、９…マルチイジングチップ制御プログラム、
１１…イジングチップ群、１２…制御部、１３…イジングチップ、１４…チップ間配線、１５…コントローラ、１６…相互作用クロック生成器、１７…乱数発生器、
２０…スピンアレイ、２４…チップ間接続部、
４０…スピンユニット、４４…多数決回路、４９…乱数信号線（ＲＮＤ線）、５０…乱数信号線（ＲＮＤ線）、５１…乱数信号線（ＲＮＤ線）、
Ｎ、Ｈ［ｕ］、Ｊｋ［ｕ］（０≦ｕ≦１、１≦ｋ≦５）…メモリセル。
【図１】
2017033326.tif 000027
【図２】
2017033326.tif 000028
【図３】
2017033326.tif 000029
【図４】
2017033326.tif 000030
【図５】
2017033326.tif 000031
【図６】
2017033326.tif 000032
【図７】
2017033326.tif 000033
【図８】
2017033326.tif 000034
【図９】
2017033326.tif 000035
【図１０】
2017033326.tif 000036
【図１１】
2017033326.tif 000037
【図１２Ａ】
2017033326.tif 000038
【図１２Ｂ】
2017033326.tif 000039
【図１３Ａ】
2017033326.tif 000040
【図１３Ｂ】
2017033326.tif 000041
【図１４】
2017033326.tif 000042
【図１５Ａ】
2017033326.tif 000043
【図１５Ｂ】
2017033326.tif 000044
【図１６】
2017033326.tif 000045
【図１７】
2017033326.tif 000046
【図１８】
2017033326.tif 000047
【図１９】
2017033326.tif 000048
【国際調査報告】
2017033326.tif 000049
2017033326.tif 000050