(57)【要約】半導体集積回路装置２３は、イジングモデルを用いて最適解を求める際に用いられ、半導体集積回路装置２３は、相互に結合される複数のスピンセル１を備えている。ここで、それぞれのスピンセル１は、スピンの値を記憶するメモリセル９（Ｎ）と、相互に結合される複数のスピンセル間の相互作用を演算する演算回路１０と、少なくとも１ビットのデータを保持するメモリ回路４と、メモリ回路４に保持されているデータに従って、演算回路による演算結果を変更することが可能な反転論理回路ＬＧとを具備している。スピンセル１に備えられているメモリセル９（Ｎ）には、メモリ回路に保持されているデータに従って変更回路により変更された演算結果が記憶される。
2016035171.tif 000002
【特許請求の範囲】
【請求項１】
イジングモデルを用いて解を求める際に用いられる半導体集積回路装置であって、
前記半導体集積回路装置は、相互に結合される複数のスピンセルを備え、それぞれのスピンセルは、
スピンの値を記憶するメモリセルと、
相互に結合される複数のスピンセル間の相互作用を演算する演算回路と、
少なくとも１ビットのデータを保持するメモリ回路と、
前記メモリ回路に保持されているデータに従って、前記演算回路による演算結果を変更することが可能な変更回路と、
を具備し、前記メモリセルに、前記メモリ回路に保持されているデータに従って前記変更回路により変更された演算結果が記憶される、半導体集積回路装置。
【請求項２】
請求項１に記載の半導体集積回路装置において、
前記複数のスピンセルのそれぞれにおける前記メモリ回路は、直列的に接続され、シフトレジスタを構成する、半導体集積回路装置。
【請求項３】
請求項２に記載の半導体集積回路装置において、
前記半導体集積回路装置は、前記シフトレジスタを構成する前記複数のスピンセルのそれぞれにおける前記メモリ回路において、第１のメモリ回路に保持されているデータと、前記第１のメモリ回路とは異なる第２のメモリ回路に保持されているデータとの間で論理演算を行い、前記第１のメモリ回路および前記第２のメモリ回路とは異なる第３のメモリ回路へ、前記論理演算の結果を記憶させることが可能な第１調整回路を具備し、
前記第３のメモリ回路へ前記論理演算の結果を記憶させることにより、前記シフトレジスタに保持されるビット列に含まれる特定論理値の出現頻度が調整される、半導体集積回路装置。
【請求項４】
請求項３に記載の半導体集積回路装置において、
前記特定論理値は、２値信号の“１”または“０”であり、前記特定論理値の出現頻度の調整は、２値信号の“１”または“０”の出現頻度を変化させることである、半導体集積回路装置。
【請求項５】
請求項４に記載の半導体集積回路装置において、
前記第２のメモリ回路は、前記シフトレジスタにおいて、前記第１のメモリ回路に隣接したメモリ回路であり、前記第３のメモリ回路は、前記シフトレジスタにおいて、前記第２のメモリ回路に隣接したメモリ回路であり、
前記第１調整回路における前記論理演算は、前記第１のメモリ回路のデータと前記第２のメモリ回路のデータとの間で、論理積を求める演算である、半導体集積回路装置。
【請求項６】
請求項４に記載の半導体集積回路装置において、
前記第２のメモリ回路は、前記シフトレジスタにおいて、前記第１のメモリ回路に隣接したメモリ回路であり、前記第３のメモリ回路は、前記シフトレジスタにおいて、前記第２のメモリ回路に隣接したメモリ回路であり、
前記第１調整回路における前記論理演算は、前記第１のメモリ回路のデータと前記第２のメモリ回路のデータとの間で、論理和を求める演算である、半導体集積回路装置。
【請求項７】
請求項４に記載の半導体集積回路装置において、
前記第１調整回路は、前記論理演算の前記結果を前記第３のメモリ回路へ転送する第１モードと、前記第２のメモリ回路のデータを前記第３のメモリ回路へ転送する第２モードとを有し、
第１制御信号によって、前記第１モードまたは前記第２モードが選択される、半導体集積回路装置。
【請求項８】
請求項４に記載の半導体集積回路装置において、
前記半導体集積回路装置は、
前記シフトレジスタを構成する前記複数のスピンセルのそれぞれにおける前記メモリ回路において、第４のメモリ回路に保持されているデータと、前記第４のメモリ回路とは異なる第５のメモリ回路に保持されているデータとの間で論理演算を行い、前記第４のメモリ回路および前記第５のメモリ回路とは異なる第６のメモリ回路へ、前記論理演算の結果を記憶させることが可能な第２調整回路を、さらに、具備し、
前記第１調整回路および前記第２調整回路のそれぞれは、前記論理演算の前記結果を前記第３のメモリ回路および前記第６のメモリ回路へ転送する第１モードと、前記第２のメモリ回路のデータおよび前記第５のメモリ回路のデータを前記第３のメモリ回路および前記第６のメモリ回路へ転送する第２モードとを有し、
前記第１調整回路は、第１制御信号によって、前記第１モードまたは前記第２モードが選択され、前記第２調整回路は、前記第１制御信号とは異なる第２制御信号によって、前記第１モードまたは前記第２モードが選択される、半導体集積回路装置。
【請求項９】
請求項８に記載の半導体集積回路装置において、
前記複数のスピンセルのそれぞれにおけるメモリセルは、データを記憶させるための書き込みパスを複数有する、半導体集積回路装置。
【請求項１０】
請求項１に記載の半導体集積回路装置において、
前記演算回路は、隣接する複数のスピンセルのそれぞれにおけるメモリセルの値と、隣接する複数のスピンセルのそれぞれに対応する相互作用の係数との排他的論理和を求め、求めたそれぞれの排他的論理和における特定論理値の数に従った論理値を、前記演算回路の前記演算結果として出力する、半導体集積回路装置。
【請求項１１】
請求項１０に記載の半導体集積回路装置において、
前記演算回路は、前記メモリセルの値と前記相互作用の係数との排他的論理和が、相補的な電流によって表され、
前記それぞれにおけるメモリセルの値と、前記対応する相互作用の係数との排他的論理和は、１対の共通線に、相補的な電流として、並列に供給され、前記１対の共通線間の電圧差を比較することにより、前記排他的論理和における特定論理値の数に従った論理値を、前記演算結果として出力する、半導体集積回路装置。
【請求項１２】
請求項１に記載の半導体集積回路装置において、
前記変更回路は、前記演算回路の前記演算結果を反転する反転論理回路である、半導体集積回路装置。
【請求項１３】
請求項３に記載の半導体集積回路装置において、
前記半導体集積回路装置は、前記複数のスピンセルのそれぞれにおけるメモリ回路に対応した複数の初期値メモリ回路を有し、前記複数の初期値メモリ回路に格納されているデータが、初期値として対応するスピンセルのメモリ回路に転送される、半導体集積回路装置。
【請求項１４】
請求項１３に記載の半導体集積回路装置において、
前記複数の初期値メモリ回路は、互いに直列的に接続されることにより、初期値シフトレジスタが構成され、前記複数のスピンセルのそれぞれにおける前記メモリ回路に対して設定されるべき初期値が、順次、前記初期値シフトレジスタをシフトし、前記初期値シフトレジスタに格納される、半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イジングモデルを用いて解を求める際に用いられる半導体集積回路装置に関し、特にメモリを有し、イジングモデルにおけるスピンをメモリを用いて模擬する半導体集積回路装置に関する。
【背景技術】
【０００２】
イジングモデルは、磁性体の振る舞いを説明するための統計力学のモデルである。イジングモデルは、それぞれ＋１または−１の２値をとる複数のスピンと、スピン間の相互作用を示す相互作用係数と、スピン毎に存在する外部磁場係数とにより定義される。イジングモデルを用いることにより、与えられたスピン配列、相互作用係数および外部磁場係数から、そのときのエネルギーを計算することができる。イジングモデルの基底状態探索とは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題に該当する。なお、トポロジが非平面グラフであるイジングモデルの基底状態を求めることは、ＮＰ困難問題であることが知られている。【０００３】
また、イジングモデルの基底状態探索は、ＮＰ困難なグラフ問題として知られている最大カット問題とも対応している。このようなグラフ問題は、ソーシャルネットワークにおけるコミュニティの検出や、画像処理におけるセグメンテーションなど、幅広い応用を持っている。そのため、イジングモデルの基底状態探索を実行可能な電子装置があれば、これらの様々な問題に適用することができる。【０００４】
特許文献１には、イジングモデルの量子計算装置およびイジングモデルの量子計算方法が示されている。また、非特許文献１には、シミュレーテッドアニーリングを行う半導体装置が示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１２／１１８０６４号
【非特許文献】
【０００６】
【非特許文献１】Ｍｉｃｈａｅｌ  Ｇ．  Ｗｒｉｇｈｔｏｎ、  Ａｎｄｒｅ  Ｍ．  ＤｅＨｏｎ、  ＨａｒｄｗａｒｅーＡｓｓｉｓｔｅｄ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎ  ｆｏｒ  Ｆａｓｔ  ＦＰＧＡ  Ｐｌａｃｅｍｅｎｔ、  ＦＰＧＡ  ‘０３  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００３  ＡＣＭ／ＳＩＧＤＡ  ｅｌｅｖｅｎｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ、  Ｐａｇｅｓ  ３３  −  ４２．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、イジングモデルに含まれるスピンの数は非常に多く、スピンのとりうる状態の組み合わせは莫大な数にのぼる。そのため、基底状態を求めるのに際して、全ての組み合わせを行うことによって、探索を行うことは実質的に不可能である。このため、基底状態を効率よく求めるには、探索するスピンの組み合わせを絞り込む必要がある。しかしながら、絞り込むことによって局所的な最適解を選んでしまい、近似的な基底状態しか得られなくなるといった弊害も起こる。そのため、探索の過程で見つかった局所解を避けることで、よりよい解を得られる手法が必要である。【０００８】
このような手法として、特許文献１は、超電導素子を用いた量子的な揺らぎを活用して基底状態探索を行う方法を提案されている。また、シミュレーテッドアニーリングのように、一時的に解の悪化を許容するヒューリスティクスを用いて、よりよい解を求める方法もある。この方法を用いる場合、非特許文献１に示されているようなハードウェアを用いることで、高速に基底状態探索を行うことが可能となる。【０００９】
しかしながら、特許文献１に示されているような、超電導素子を用いた量子揺らぎの形で局所解を脱する方法では、超電導状態を実現するため、高度な冷却装置を使用する必要がある。そのため、装置全体が高コストとなり、また大規模化が難しいという課題がある。【００１０】
また、非特許文献１に示されているように、シミュレーテッドアニーリングを行う半導体装置を用いる場合、疑似乱数発生器を用いて必要なランダム性を供給する必要がある。この場合、アニーリング動作の並列性を得る目的で、アニーリングの基本演算を行う演算器ごとに疑似乱数発生器を搭載すると、回路規模が増大し、高コスト化や大規模化が難しくなるという課題が生じる。【００１１】
本発明は、回路規模の増加を抑制しながら、局所解に陥る可能性を低減することが可能な、イジングモデル用の半導体集積回路装置を提供することにある。【００１２】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。【００１４】
すなわち、半導体集積回路装置は、イジングモデルを用いて解を求める際に用いられ、その半導体集積回路装置は、相互に結合される複数のスピンセルを備えている。ここで、それぞれのスピンセルは、スピンの値を記憶するメモリセルと、相互に結合される複数のスピンセル間の相互作用を演算する演算回路と、少なくとも１ビットのデータを保持するメモリ回路と、メモリ回路に保持されているデータに従って、演算回路による演算結果を変更することが可能な変更回路とを具備している。スピンセルに備えられているメモリセルには、メモリ回路に保持されているデータに従って変更回路により変更された演算結果が記憶される。【００１５】
メモリ回路に保持されているデータに従って、演算結果が変更され、メモリセルは、変更された演算結果を記憶することになる。これにより、解を求める過程において、局所的な最適解に停滞（スタック）することを回避することが可能となる。また、メモリ回路と変更回路とにより、回避することが可能となるため、回路規模が増加するのを抑制することが可能となる。【００１６】
一実施の形態において、変更回路としては、演算結果を反転する、小規模な反転論理回路が用いられる。
【発明の効果】
【００１７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。【００１８】
すなわち、回路規模の増加を抑制しながら、局所解に陥る可能性を低減することが可能な、イジングモデル用の半導体集積回路装置を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】イジング計算機の構成を示す概念図である。
【図２】イジングモデルのエネルギーを示した模式図である。
【図３】実施の形態１に係わる半導体集積回路装置の構成を示す模式図である。
【図４】所定の論理値（２値信号“１”）の出現頻度を示す図である。
【図５】実施の形態１に係わる半導体集積回路装置の構成を示すブロック図である。
【図６】所定の論理値（２値信号“１”）の出現頻度を示す図である。
【図７】実施の形態１に係わるスピンセルの構成を示すブロック図である。
【図８】実施の形態１に係わるメモリセルの構成を示す回路図である。
【図９】（Ａ）〜（Ｄ）は、メモリセルの動作を示す波形図である。
【図１０】実施の形態１に係わる演算回路の構成を示す回路図である。
【図１１】実施の形態１に係わる演算回路の構成を示す回路図である。
【図１２】実施の形態１に係わる演算回路の構成を示す回路図である。
【図１３】（Ａ）〜（Ｅ）は、演算回路の動作を示す波形図である。
【図１４】実施の形態１に係わるイジング計算機および半導体集積回路装置の全体構成を示すブロック図である。
【図１５】２値信号“１”および“０”の出現頻度を変更する制御を示すフローチャート図である。
【図１６】２値信号“１”および“０”の出現頻度を変更する制御を示すフローチャート図である。
【図１７】（Ａ）および（Ｂ）は、所定の論理値（２値信号“１”）の出現頻度を示す図である。
【図１８】実施の形態２に係わる半導体集積回路装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。特に明示した場合を除き、それらは互いに無関係ではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００２１】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００２２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
【００２３】
以下に説明する複数の実施の形態においては、スピンセル間の相互作用演算の演算結果を、所定の規則に従って反転させる。これにより、イジングモデルのエネルギーの演算において、演算結果が停滞するのを回避し、解く問題の最適解を求めることが可能とされる。
（実施の形態１）
【００２４】
図１は、イジングモデルの計算を行うイジング計算機１００の構成を示す概念図である。イジング計算機１００は、半導体集積回路装置２を用いてイジングモデルの計算を行う。同図において、１は、イジングモデルのスピンの値を記憶（格納）するスピンセルを示している。イジングモデルの計算を行う際に用いられる半導体集積回路装置２は、図１に示すように、複数のスピンセル１を有しており、複数のスピンセル１間で相互作用が働く。図１においては、相互作用が３として示されており、同図では、物理的に隣接するスピンセル１間で影響する相互作用が示されている。この場合、物理的に隣接するスピンセル１とは、１個のスピンセル１に対して、同図においてその上下、左右に配置された４個のスピンセル１を意味している。勿論、１個のスピンセル１に対して、その上下、左右のいずれか１箇所あるいは２箇所にスピンセル１が配置されていない場合には、隣接するスピンセルの数は、３個あるいは２個となる。
【００２５】
イジングモデルのエネルギーの演算においては、半導体集積回路装置２内に配置された複数のスピンセル１同士が、相互作用３を繰り返し、それぞれのスピンセル１自体が持つ値が変わっていく、イジング計算機１００全体のスピンセル１の値と相互作用３の係数で計算されるエネルギーが減少する方向に演算が行われる。イジングモデルのエネルギーＥの具体的な演算では、スピンセル１の値と相互作用３の係数だけでなく、スピンセル１に影響する外部磁場係数も考慮される。外部磁場係数を考慮した、イジングモデルのエネルギーＥは、式（１）で表される。
Ｅ＝−ΣＪｉｊσｉσｊ―Σｈｉσｉ・・・式（１）
【００２６】
式（１）において、ｉおよびｊは、それぞれスピンセルの番号を示し、σｉ
およびσｊは、ｉ番目およびｊ番目のスピンセルの状態（値：＋１または−１）を示している。また、Ｊｉｊは、ｉ番目のスピンセルとｊ番目のスピンセル間の相互作用の係数（相互作用係数）を示し、ｈｉは、ｉ番目のスピンセルに対する外部磁場係数を示している。
【００２７】
図２は、演算により求めたイジングモデルのエネルギーを模式的に示した模式図である。同図において、横軸は解空間を示し、縦軸はエネルギーを示している。イジングモデルの解は、エネルギーが低い状態に相当する。そのため、イジングモデルのエネルギーの演算は、エネルギーが減少する方向に行われる。すなわち、基本的には、図１に示した相互作用３により、エネルギーが減少するように、図２において矢印で示した方向に変化する。イジング計算機１００においては、図２において最適解として示されている最もエネルギーの低い状態を、解として求めることが必要とされる。ところが、実際のエネルギーの状態を見ると、図２に示したように、エネルギーの低い状態は、最適解だけでなく、局所解１、２も存在する。すなわち、局所解１および２においても、その周囲よりもエネルギーの低い状態となっている。そのため、イジング計算機１００において、相互作用等を基にして、エネルギーの演算を行い、局所解の状態に到達すると、その状態で停滞してしまう。例えば、イジング計算機１００によって、図２において開始点として示されている状態から、エネルギーの演算を開始した場合、エネルギーが減少して、局所解１の状態まで到達するが、その状態で停滞し、実際に求めたい最適解の状態まで到達しない。
【００２８】
図３は、実施の形態１に係わる半導体集積回路装置２３の構成を示す模式図である。この半導体集積回路装置２３は、図１に示した半導体集積回路装置２と類似しているので、ここでは相違点を主に説明する。半導体集積回路装置２３においては、複数のスピンセル１のそれぞれに、メモリ回路４が追加されている。また、この実施の形態においては、互いに物理的に隣接するスピンセル１のそれぞれに設けられているメモリ回路４は、少なくとも１ビットのデータを格納し、互いに直列的に接続されている。例えば、図３では、３行（Ｒ１〜Ｒ３）３列（Ｃ１〜Ｃ３）に、マトリクス状に配置されたスピンセル１が示されており、それぞれのスピンセル１にメモリ回路４が設けられている。例えば、列Ｃ１に注目した場合、互いに物理的に隣接した行Ｒ３と行Ｒ２のそれぞれ配置されたスピンセル１におけるメモリ回路４は、互いに直列的に接続され、隣接した行Ｒ２と行Ｒ１のそれぞれに配置されたスピンセル１におけるメモリ回路４は、互いに直列的に接続されている。同様に、列Ｃ１に物理的に隣接した列Ｃ２で行Ｒ１におけるスピンセル１内のメモリ回路４は、列Ｃ１の行Ｒ１内のメモリ回路４と直列的に接続されている。同様にして、残りのメモリ回路４も、隣接するスピンセル１内のメモリ回路４に接続されている。互いにメモリ回路４を直列的に接続するのに際して、一方のメモリ回路４の出力が他方のメモリ回路４の入力に接続される。これにより、複数のスピンセル１のそれぞれに設けられたメモリ回路４によって、１個のシフトレジスタが構成されている。見方を変えた場合、実施の形態１では、図１の半導体集積回路装置２に対して、シフトレジスタが半導体集積回路装置２３に設けられていると見なすことができる。
【００２９】
シフトレジスタには、状態を変更するための変更データが入力される。図３に示した例では、列Ｃ１の行Ｒ３に配置されたスピンセル１に設けられたメモリ回路４が、シフトレジスタの入力段とされており、このメモリ回路４（列Ｃ１、行Ｒ３）に変更データが入力される。変更データは、ビット列として入力され、シフトレジスタを順次移動する。図３では、変更データであるビット列が、“０１００１１１０１０１１１・・・”として示されている。このようなビット列、すなわち２値信号の列が、シフトレジスタを順次伝播し、循環する。これにより、各スピンセル１内のメモリ回路４に、所望の２値信号を記憶させることが可能となる。
【００３０】
スピンセル１の構成は後で詳しく説明するが、スピンセル１に設けられたメモリ回路４に記憶（格納）させた２値信号が、特定の論理値（例えば、２値信号“１”）に該当する変更データの場合、スピンセル１において演算した相互作用の結果を反転させ、スピンの値として当該スピンセル１に記憶する。相互作用の結果を反転させて、スピンセル１に格納されるスピンの値とすることにより、図２においては、エネルギーの状態は矢印の方向へしか変化しなかったが、逆の方向へ変化する場合が生じる。これにより、演算により求めているエネルギーの状態が、局所解１または２の状態で停滞することを防ぎ、最適解の状態へ到達することが可能となる。
【００３１】
複数のメモリ回路４により構成されたシフトレジスタに保持される２値信号“１”、“０”のビット列は、エネルギーの状態によって変更する必要がある。これは、常に高い確率で相互作用の演算結果を反転させると、エネルギーが下がる方向に動作しないためである。よって、時間の経過とともに演算結果を反転させる確率を低減する必要がある。すなわち、エネルギーの演算を行っている時間が経つに従って、変更データであるビット列中に含まれる、演算結果を反転させる所定の論理値（２値信号“１”）の比率を低減する必要がある。
【００３２】
図４は、演算結果を反転させる所定の論理値（２値信号“１”）の出現頻度を示す図である。図４では、時間の経過とともに、所定の論理値（“１”）の比率が、時間の経過とともに、０．５から０へ減少させている。メモリ回路４により構成されたシフトレジスタの代わりに、例えばインバータ回路を直列に接続して用いることも考えられるが、この場合には、複数のスピンセル１のそれぞれに、任意の変更データを記憶させることが困難である。
＜変更データにおける所定の論理値の出現頻度調整＞
【００３３】
図５は、実施の形態１に係わる半導体集積回路装置２３の構成を示すブロック図である。図５には、図３に示した半導体集積回路装置２３のうち、メモリ回路４により構成されるシフトレジスタと、当該シフトレジスタを制御する制御部分が抜き出して示されている。すなわち、図５には、複数のメモリ回路４により構成されるシフトレジスタに格納される変更データであるビット列において、所定の論理値（“１”）の出現頻度を制御する部分が示されている。
【００３４】
図５において、５は選択スイッチ、６は論理積（ＡＮＤ）を求める２入力のＡＮＤ回路、７は論理和（ＯＲ）を求める２入力のＯＲ回路である。また、図５において、２１は、選択スイッチ５を制御する制御回路である。制御回路２１は、ＡＮＤ回路６の出力を選択する割合のデータ（ＡＮＤ割合データ）を保持する割合レジスタ２２Ａと、ＯＲ回路７の出力を選択する割合のデータ（ＯＲ割合データ）を保持する割合レジスタ２２Ｏとを有している。割合レジスタ２２Ａおよび割合レジスタ２２Ｏには、ＡＮＤ割合データを指定するＡＮＤ指定情報およびＯＲ割合データを指定するＯＲ指定情報が供給される。
【００３５】
後で図７を用いて説明するが、スピンセル１のそれぞれが、メモリ回路４に関連したＡＮＤ回路６、ＯＲ回路７および選択スイッチ５を有しており、図５では、１個のスピンセル１に含まれるメモリ回路４、ＡＮＤ回路６、ＯＲ回路７および選択スイッチ５が、一点鎖線で囲まれている。図５から理解されるように、図５には、２個の列（Ｃ１、Ｃ２）で２個の行（Ｒｎ、Ｒｎ＋１）に配置された４個のスピンセル１に対応するメモリ回路４、ＡＮＤ回路６、ＯＲ回路７および選択スイッチ５が示されている。なお、図５において、一点破線によって囲まれていない２個のメモリ回路４は、隣接する行Ｒｎ−１、Ｒｎ＋２に配置されたスピンセル１に含まれるメモリ回路４を示している。
【００３６】
スピンセル１に含まれる選択スイッチ５は、３個の入力と１個の出力とを有しており、選択線を介して制御回路２１から供給される選択信号ＳＥＬｉ（ｉ＝１、２）に従って、３個の入力のうちのいずれか１つを選択し、出力へ接続する。選択線は、それぞれの行に配置されており、図５においては、行Ｒｎに配置された選択線と、行Ｒｎ＋１に配置された選択線が示されている。制御回路２１から選択線に供給される選択信号ＳＥＬ１、ＳＥＬ２に従って、行Ｒｎに配置された複数のスピンセル１のそれぞれにおける選択スイッチ５が制御され、行Ｒｎ＋１に配置された複数のスピンセル１のそれぞれにおける選択スイッチ５が制御される。
【００３７】
それぞれのスピンセル１に含まれるメモリ回路４、ＡＮＤ回路６、ＯＲ回路７および選択スイッチ５の動作は、互いに同じである。そのため、ここでは、列Ｃ１で行Ｒｎに配置されたスピンセル１（列Ｃ１、行Ｒｎ）に含まれるメモリ回路４、ＡＮＤ回路６、ＯＲ回路７および選択スイッチ５を代表として説明する。
【００３８】
メモリ回路４の出力は、２入力のＡＮＤ回路６および２入力のＯＲ回路７のそれぞれの一方の入力と、選択スイッチ５の入力とに供給されている。また２入力のＡＮＤ回路６および２入力のＯＲ回路７のそれぞれの他方の入力には、隣接するスピンセル１におけるメモリ回路４の出力が供給される。ここで説明しているスピンセル１は、列Ｃ１で行Ｒｎに配置されているため、隣接するスピンセル１としては、列Ｃ１で行Ｒｎ＋１に配置されたスピンセル１（列Ｃ１、行Ｒｎ＋１）が該当し、そのスピンセル１におけるメモリ回路１の出力が、ＡＮＤ回路６およびＯＲ回路７のそれぞれの他方の入力に供給されている。
【００３９】
列Ｃ１で行Ｒｎに配置されたスピンセル１におけるＡＮＤ回路６およびＯＲ回路７のそれぞれの出力は、選択スイッチ５の入力に供給される。選択スイッチ５は、選択信号ＳＥＬ１に従って、３個の入力のうちの１個を選択し、隣接するスピンセル１内のメモリ回路４の入力に供給する。これにより、当該スピンセル（列Ｃ１、行Ｒｎ）におけるＡＮＤ回路６は、スピンセル１（列Ｃ１、行Ｒｎ＋１）におけるメモリ回路４からの変更データと、当該スピンセル（列Ｃ１、行Ｒｎ）におけるメモリ回路４からの変更データとの間で、論理積に相当する論理演算を実行する。同様に、当該スピンセル（列Ｃ１、行Ｒｎ）におけるＯＲ回路７は、スピンセル１（列Ｃ１、行Ｒｎ＋１）におけるメモリ回路４からの変更データと、当該スピンセル（列Ｃ１、行Ｒｎ）におけるメモリ回路４からの変更データとの間で、論理和に相当する論理演算を実行する。
【００４０】
これにより、選択スイッチ５は、選択信号ＳＥＬ１に従って、論理積に相当する論理演算を実施した結果の論理値、論理和に相当する論理演算を実施した結果の論理値、または論理演算を実施していない論理値を、隣接するスピンセル１（列Ｃ１、行Ｒｎ−１）におけるメモリ回路４へ供給し、書き込みを行う。ここで、論理演算を実施していない論理値は、メモリ回路４からの出力を意味している。
【００４１】
残りのスピンセルにおけるメモリ回路４、ＡＮＤ回路６、ＯＲ回路７および選択スイッチ５においても同様に、選択信号に従って、隣接するスピンセル１におけるメモリ回路４の出力と、当該スピンセル１におけるメモリ回路４との間で実施された論理演算により得られた論理積の値、論理和の値あるいは論理演算を実施していない値が、選択スイッチ５によって選択され、隣接するスピンセル１のメモリ回路４へ供給される。
【００４２】
図５では、２列（Ｃ１、Ｃ２）で２行（Ｒｎ、Ｒｎ＋１）に配置されたスピンセル１のみが示されているが、図示しない行、列にも、同様にスピンセル１が配置され、それぞれのスピンセル１には、メモリ回路４、ＡＮＤ回路６、ＯＲ回路７および選択スイッチ５が設けられている。また、各行には、それぞれ選択信号が配置されている。
【００４３】
制御回路２１は、複数の行に配置されている複数の選択線から、ＡＮＤ割合データを保持する割合レジスタ２２Ａからの割合データに従った数の選択線を選択し、選択した選択線のそれぞれに対して、選択スイッチ５がＡＮＤ回路６の出力を選択して、出力するような選択信号を形成する。また、制御回路２１は、複数の行に配置されている複数の選択線から、ＯＲ割合データを保持するレジスタ２２Ｏからの割合データに従った数の選択線を選択し、選択した選択線のそれぞれに対して、選択スイッチ５がＯＲ回路７の出力を選択して、出力するような選択信号を形成する。すなわち、制御回路２１は、選択線の総数に対して、ＡＮＤ割合データによって指定された割合の数だけ、選択スイッチ５がＡＮＤ回路６の出力を選択するような選択信号を出力し、選択線の総数に対して、ＯＲ割合データによって指定された割合の数だけ、選択スイッチ５がＯＲ回路７の出力を選択するような選択信号を出力する。
【００４４】
また、制御回路２１は、ＡＮＤ割合データおよびＯＲ割合データによって指定されなかった選択線の数に対して、選択スイッチ５がメモリ回路４の出力を選択するような制御信号を出力する。このようにすることにより、ＡＮＤ指定情報によって、選択スイッチ５がＡＮＤ回路６の出力（論理積出力）を選択する数の割合を設定することが可能となる。またＯＲ指定情報によって、選択スイッチ５がＯＲ回路７の出力（論理和出力）を選択する数の割合を設定することが可能となる。さらに、ＡＮＤ指定情報およびＯＲ指定情報によって指定しない数により、論理演算が実施されていない数の割合を設定することが可能となる。
【００４５】
変更データ、すなわちメモリ回路４によって構成されるシフトレジスタに格納されているビット列における所定の論理値（“１”）の出現頻度は、ＡＮＤ指定情報およびＯＲ指定情報によって定める。所定の論理値の出現頻度を下げる場合には、ＡＮＤ指定情報により、選択スイッチ５によってＡＮＤ回路６の出力が選択される割合を上昇させる。これにより、隣接するメモリ回路４の値との間で求めた論理積の結果が、次の段のメモリ回路４に書き込まれることになる。前段および前々段のメモリ回路４間で論理積を求めることにと、前段および前々段のメモリ回路４の値がともに“１”の場合に“１”が出力され、前段および前々段のメモリ回路４の一方、または、両方が“０”の場合には“０”が出力される。そのため、前段および前々段のメモリ回路４間で求められた論理積の結果は、２値信号“０”が出力される確率が高く、メモリ回路４に書き込まれる論理値は、２値信号“０”となる確率が高くなる。
【００４６】
例えば、列Ｃ１で行Ｒｎ−１に配置されたスピンセル１におけるメモリ回路４には、列Ｃ１で行Ｒｎに配置されたスピンセル１におけるメモリ回路４からの出力と、列Ｃ１で行Ｒｎ＋１に配置されたスピンセル１におけるメモリ回路４からの出力との間で論理積の論理演算が行われた結果が、書き込まれることになる。よって、選択スイッチ５によってＡＮＤ回路６の出力を選択すれば、ビット列に含まれる所定の論理値（“１”）の出現頻度を低下させることが可能となる。
【００４７】
一方、ビット列における所定の論理値（“１”）の出現頻度を上げる場合には、ＯＲ指定情報によって、選択スイッチ５によりＯＲ回路７の出力が選択される割合を上昇させる。これによって、隣接するスピンセル１におけるメモリ回路４の値との間で求めた論理和の結果が、次の段のメモリ回路４に書き込まれる。論理和を取ると、前段および前々段のメモリ回路４の値がともに２値信号“０”の場合に、選択スイッチ５から“０”が出力され、前段および前々段のメモリ回路４の一方、または、両方が“１”の場合には、選択スイッチ５からは２値信号“１”が出力される。そのため、所定の論理値（“１”）が出力される確率が高くなり、書き込まれる論理値は“１”の確率が高くなる。
【００４８】
同じく、列Ｃ１で行Ｒｎ−１に配置されたスピンセル１におけるメモリ回路４を例にして説明すると、列Ｃ１で行Ｒｎに配置されたスピンセル１におけるメモリ回路４からの出力と、列Ｃ１で行Ｒｎ＋１に配置されたスピンセル１におけるメモリ回路４からの出力との間で論理和の論理演算が行われた結果が、書き込まれることになる。よって、選択スイッチ５によって、ＯＲ回路７の出力を選択すれば、ビット列に含まれる所定の論理値（“１”）の出現頻度を上昇させることが可能となる。
【００４９】
また、複数の行のうち、選択スイッチ５によってメモリ回路４の出力を、そのまま選択する行を設けることも可能である。すなわち、ＡＮＤ指定情報およびＯＲ指定情報によって指定されない行におけるスピンセル１内のメモリ回路４の出力を、この行に隣接した行へ伝えることが可能である。例えば、ＡＮＤ指定情報および／またはＯＲ指定情報によって、複数の行における特定の行では、ＡＮＤ回路６またはＯＲ回路７の出力が選択されるようにし、その特定の行に隣接する行（例えば前段および／または後段の行）では、メモリ回路４の出力が選択されるような組み合わせを選択することも可能である。このような組み合わせを用いることにより、所定の論理値の出現頻度を柔軟に変更することが可能となる。
【００５０】
図５においては、行Ｒｎ、Ｒｎ＋１のような行単位で、ＡＮＤ回路６、ＯＲ回路７あるいはメモリ回路４の出力を選択して、隣接する行へ出力し、隣接する行におけるメモリ回路４に書き込む例を示したが、これに限定されるものではない。例えば、スピンセル１毎に、ＡＮＤ回路６、ＯＲ回路７あるいはメモリ回路４の出力を選択して、隣接するスピンセル１内のメモリ回路４へ書き込むようにしてもよい。勿論、この場合には、制御回路２１からスピンセル１へ選択信号（例えばＳＥＬ１、ＳＥＬ２）を伝達する選択線は、行単位に共通に用いられるのではなく、１個あるいは複数個のスピンセル１に対して共通に用いられることになる。
【００５１】
それぞれのスピンセル１に含まれるＡＮＤ回路６、ＯＲ回路７および選択スイッチ５は、スピンセル１内のメモリ回路４から出力される変更データ（ビット）の論理値を調整あるいは変更する回路と見なすことができる。このように見た場合、それぞれのスピンセル１は、変更データ（ビット）を格納するメモリ回路４と、メモリ回路４に結合され、隣接するスピンセル内のメモリ回路４へ調整（あるいは変更）された変更データ（ビット）を供給する調整（変更）回路を備えていると見なすことができる。ここで、調整回路は、先に説明したＡＮＤ回路６、ＯＲ回路７および選択スイッチ５を備えていることになる。
【００５２】
また、複数の調整回路により、メモリ回路４により構成されるシフトレジスタに格納される変更データにおける所定の論理値の数が調整あるいは変更されていると見なすことができる。
【００５３】
さらに、調整回路は、前段におけるメモリ回路４との間で行われた論理演算（論理積あるいは論理和）の結果を転送する第１モードと、メモリ回路４の出力を転送する第２モードとを有しており、選択信号ＳＥＬｉによって、第１モードまたは第２モードが選択されると見なすこともできる。この場合、第２モードにおいて、さらに論理積の結果あるいは論理和の結果が選択されることになる。
【００５４】
図５において、列Ｃ１で行Ｒｎに配置されたスピンセル１における調整回路を第１調整回路として見た場合、第１調整回路は、列Ｃ１で行Ｒｎ＋１に配置されたスピンセル１のメモリ回路４（第１のメモリ回路）のデータと、列Ｃ１で行Ｒｎに配置されたスピンセル１のメモリ回路４（第２のメモリ回路）のデータとの間で論理演算（論理積または論理和）を実行する。この第１調整回路は、列Ｃ１で行Ｒｎ−１に配置されたスピンセル１のメモリ回路４（第３のメモリ回路）へ、選択信号ＳＥＬ１（第１制御信号）に従って、論理演算の結果または第２のメモリ回路のデータを供給して、第３のメモリ回路４へ書き込む。
【００５５】
また、図５において、列Ｃ２で行Ｒｎ＋１に配置されたスピンセル１における調整回路を第２調整回路として見た場合、第２調整回路は、列Ｃ２で行Ｒｎに配置されたスピンセル１のメモリ回路（第４のメモリ回路）のデータと、列Ｃ２で行Ｒｎ＋１に配置されたスピンセル１のメモリ回路４（第５のメモリ回路）のデータとの間で論理演算を実行する。この第２調整回路は、列Ｃ２で行Ｒｎ＋２に配置されたスピンセル１のメモリ回路（第６のメモリ回路）へ、制御信号ＳＥＬ２（第２制御信号）に従って、論理演算の結果または第５のメモリ回路のデータを供給して、第６のメモリ回路へ書き込む。
【００５６】
図６は、図５に示した構成を用いて、所定の論理値（“１”）の出現頻度を変化させた場合の出現頻度を示す図である。同図には、イジングモデルの計算を行っている期間において、所定の論理値の出現頻度を変更する例が示されている。イジングモデルの計算の開始時においては、図４と同様に、メモリ回路４によって構成されたレジスタにおいて、所定の論理値が発生している頻度は、０．５程度にされている。計算の初期段階では、レジスタにおける所定の論理値の出現頻度を増加させるために、ＯＲ指定情報（図５）によって、ＯＲ回路７の出力を選択する行を増やす。時間の経過に伴って、レジスタを構成するスピンセル１におけるメモリ回路４には、隣接するスピンセル１における調整回路からの変更データが、書き込まれながら、順次シフトする。ＯＲ回路７の出力を選択する行が増加されたことにより、調整回路からは所定の論理値（“１”）へ変更された変更テータ（ビット）が、出力される確率が高まる。これにより、時間か経過するのに従って、図６に示すように、初期段階では、所定の論理値（“１”）の比率が、上昇する。
【００５７】
所定の論理値の比率が、例えば０．８程度になったら、ＡＮＤ指定情報によってＡＮＤ回路７の出力を選択する行の数を増加させる。これにより、調整回路からは、所定の論理値（“１”）とは異なる論理値（“０”）が出力される確率が高まる。メモリ回路４のそれぞれには、隣接するスピンセル１における調整回路からの出力が、時間の経過とともに、書き込まれ、順次シフトする。その結果、レジスタを構成する複数のメモリ回路４に格納されている論理値としては、時間の経過に伴って“０”が増加する。すなわち、所定の論理値の比率が低下する。特に制限されないが、図６に示すような比率を発生させるためには、計算初期の段階でＯＲ回路７の出力を選択する選択スイッチ５の数は、計算後半の段階で、ＡＮＤ回路６の出力を選択する選択スイッチ５の数よりも多くされる。
【００５８】
図６に示すように、比率が０．８に到達しているか否かは、例えば、メモリ回路４により構成されたシフトレジスタから、そのときの変更データを読み出して、読み出した変更データに含まれる所定の論理値（“１”）の数を判定することにより達成することが可能である。すなわち、全ての行における調整回路を、前記した第２モードにして、シフト動作をさせることにより、メモリ回路４により構成されているシフトレジスタから、そのときの変更データを取り出すことが可能である。このようにして取り出した変更データにおいて、所定の論理値（“１”）の数を求めることにより、所定の論理値（“１”）の比率を求めることが可能となる。
＜スピンセル１の構成＞
【００５９】
図７は、スピンセル１の構成を示すブロック図である。同図において、４は、メモリ回路である。前述したように、複数のメモリ回路４を直列的に接続することにより、変更データであるビット列を保持するシフトレジスタが構成される。８は、調整回路であり、図５に示したＡＮＤ回路６、ＯＲ回路７および選択スイッチ５を備えており、選択信号ＳＥＬｉ（図５では、ｉ＝１または２）に従って、図５で説明したように、ＡＮＤ回路６の出力、ＯＲ回路７の出力またはメモリ回路４の出力を、切り換えて出力する。なお、メモリ回路４の出力を、そのまま出力する場合は、スルーとして、図７には示されている。
【００６０】
また、図７において、９は、メモリ素子を示しており、１０は、相互作用を演算する演算回路を示しており、ＬＧは、反転論理回路（変更回路）を示している。スピンセル１は、図７に示すように複数のメモリセル９を備えている。それぞれのメモリセル９は、互いに同じ構成を有しているが、それぞれには、格納するデータが定まっており、同図では、格納するデータを表す符号が、それぞれのメモリセル９に付されている。以後の説明では、メモリセル９を参照する際には、格納するデータを表す符号も適時参照として用いる。
【００６１】
メモリセル９（Ｎ）は、このスピンセル１のスピンの値を格納するメモリセルであり、メモリセル９（ＩＳ０）、９（ＩＳ１）のそれぞれは、このスピンセル１に対する外部磁場係数を格納するメモリセルであり、格納する外部磁場係数は、このスピンセル１特有の値である。メモリセル９（ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）のそれぞれは、このスピンセル１の周辺に配置されるスピンセルから、このスピンセル１に対する影響を演算するための相互作用の係数を格納するメモリセルである。図７において、ＮＵ、ＮＬ、ＮＲおよびＮＤのそれぞれは、このスピンセル１の周辺に配置されるスピンセルからのスピンの値である。図７では、図７に示したスピンセル１に対して、紙面の上側、左側、右側および下側にそれぞれスピンセルが配置されている場合が示されている。すなわち、上側、左側、右側および下側のそれぞれに隣接して、スピンセルが配置され、これらの４個のスピンセルが、図７に示したスピンセル１に対して周辺に配置されたスピンセルとなっている。
【００６２】
上側に配置されたスピンセルから、図７に示したスピンセル１への相互作用係数が、メモリセルＩＵ０、ＩＵ１に格納され、左側に配置されたスピンセルからの相互作用係数が、メモリセルＩＬ０、ＩＬ１に格納され、右側に配置されたスピンセルからの相互作用係数が、メモリセルＩＲ０、ＩＲ１に格納される。同様に、下側に配置されたスピンセルらの相互作用係数が、メモリセルＩＤ０、ＩＤ１に格納される。この場合、上側に配置されたスピンセルからのスピンの値は、ＮＵであり、左側に配置されたスピンセルからのスピンの値は、ＮＬであり、右側に配置されたスピンセルのスピンの値は、ＮＲであり、下側に配置されたスピンセルのスピンのあたいは、ＮＤである。
【００６３】
メモリセルＮに格納された当該スピンセル１のスピンの値は、このスピンセル１に隣接している４個のスピンセルに対して、スピンの値ＮＵ、ＮＬ、ＮＲおよびＮＤとして供給される。ここでは、１個のスピンセルに対して、その周辺に配置された４個のスピンセルからの相互作用に基づいて、演算を行う例を示しているが、この数に限定されるものではなく、数が変化しても、スピンセルは、基本的には同様な構成を有する。
【００６４】
イジング計算機１００において、相互作用の演算を実施するとき、メモリセルＩＳ０、ＩＳ１からの外部磁場係数、メモリセルＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１からの相互作用係数および周辺のスピンセルからのスピンの値ＮＵ、ＮＬ、ＮＲおよびＮＤが、演算回路１０に供給され、演算回路１０は、これらのデータに基づいて、相互作用の演算を行う。概略的には、周辺に配置され、隣接したスピンセルからのスピン値ＮＵ、ＮＬ、ＮＲおよびＮＤと相互作用係数とによって、相互作用の演算が行われる。
【００６５】
この実施の形態において、演算回路１０は、排他的論理和回路ＥＯＲＵ、ＥＯＲＬ、ＥＯＲＲおよびＥＯＲＤと、スイッチＳＷＳ、ＳＷＵ、ＳＷＬ、ＳＷＲおよびＳＷＤと、多数決論理回路とを備えている。スイッチＳＷＳは、メモリセルＩＳ０からの外部磁場係数によって制御され、スイッチＳＷＳがオン状態にされたとき、メモリセルＩＳ１からの外部磁場係数が、多数決論理回路へ供給される。また、スイッチＳＷＵ、ＳＷＬ、ＳＷＲおよびＳＷＤのそれぞれは、メモリセルＩＵ０、ＩＬ０、ＩＲ０およびＩＤ０のそれぞれからの相互作用係数によって制御され、スイッチＳＷＵ、ＳＷＬ、ＳＷＲおよびＳＷＤのそれぞれがオン状態にされたとき、排他的論理和回路ＥＯＲＵ、ＥＯＲＬ、ＥＯＲＲおよびＥＯＲＤのそれぞれの出力が、多数決論理回路へ供給される。
【００６６】
メモリセルＩＵ１、ＩＬ１、ＩＲ１およびＩＤ１のそれぞれの相互作用係数と、それぞれのメモリセルに対応するスピンセルからのスピンの値ＮＵ、ＮＬ、ＮＲおよびＮＤとが、排他的論理和回路ＥＯＲＵ、ＥＯＲＬ、ＥＯＲＲおよびＥＯＲＤに供給される。これにより、それぞれの排他的論理和回路ＥＯＲＵ、ＥＯＲＬ、ＥＯＲＲおよびＥＯＲＤは、隣接するスピンセルのスピンの値と、そのスピンセルに関する相互作用係数との間で、排他的論理和の演算を行い、その結果が、多数決論理回路へ供給される。
【００６７】
例えば、外部磁場の影響が存在する場合、メモリセルＩＳ０からの外部磁場係数により、スイッチＳＷＳがオン状態とされ、相互作用の影響が存在する場合、メモリセルＩＵ０、ＩＬ０、ＩＲ０およびＩＤ０からの相互作用係数によってスイッチＳＷＵ、ＳＷＬ、ＳＷＲおよびＳＷＤがオン状態にされる。スイッチＳＷＵ、ＳＷＬ、ＳＷＲおよびＳＷＤがオン状態にされると、隣接した４個のスピンセルのスピンの値と、それぞれのスピンセルに対応する相互作用係数との間で排他的論理和が求められ、多数決論理回路に供給される。多数決論理回路は、供給されているメモリセルＩＳ１からの外部磁場に関するデータと、４個の排他的論理和回路ＥＯＲＵ、ＥＯＲＬ、ＥＯＲＲおよびＥＯＲＤからの相互作用に関するデータとにおける２値信号“１”と“０”の数を数え、数の多い論理値（“１”または“０”）に対応する論理値をデータＮＥＷとして出力する。例えば、２値信号“０”の数が多い場合には、データＮＥＷとして論理値“０”を出力し、反対に２値信号“１”の数が多い場合には、データＮＥＷとして論理値“１”を出力する。
【００６８】
反転論理回路ＬＧは、多数決論理回路から出力されたデータＮＥＷをうけ、メモリ回路４の出力に従って、データＮＥＷの論理値を反転あるいは非反転し、反転あるいは非反転のデータＮＥＷＶを形成して、メモリセルＮへ書き込む。例えば、メモリ回路４の出力が論理値“１”の場合、反転論理回路ＬＧは、データＮＥＷの論理値を反転して、データＮＥＷＶを生成する。これに対して、メモリ回路４の出力が論理値“０”の場合には、反転論理回路ＬＧは、データＮＥＷの論理値を反転せずに、データＮＥＷＶとして出力する。すなわち、データＮＥＷＶは、データＮＥＷに対して非反転の状態となる。
【００６９】
メモリ回路４の出力が論理値“１”の場合には、反転論理回路ＬＧによって、演算回路１０の演算結果であるデータＮＥＷが反転されて、スピンの値を格納するメモリセルＮに書き込まれることになる。すなわち、演算回路１０からのデータＮＥＷが論理値“１”（“０”）であった場合、スピンの値を格納するメモリセルＮには、論理値“０”（“１”）が書き込まれることになる。相互作用の演算結果が反転されるため、イジング計算機１００で演算中に、図２に示したようにエネルギーが局所解の状態に陥ることを防ぐことが可能となる。
【００７０】
メモリ回路４には、隣接スピンセルより、変更データが供給され、調整回路８の出力は、隣接スピンセルへ供給される。この場合、図５において説明したように、隣接するスピンセルにおける調整回路からの出力が、メモリ回路４へ供給され、図７に示した調整回路８の出力は、隣接するスピンセルのメモリ回路へ供給されることになる。
【００７１】
この実施の形態においては、メモリセルＮ、ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１のそれぞれは、共通の相補データ線ＢＬＴ、ＢＬＢに接続されており、この共通の相補データ線ＢＬＴ、ＢＬＢを介して、外部磁場係数、相互作用係数の書き込みおよび／または読み出しが可能とされている。また、スピンの値を格納するメモリセルＮについては、メモリセルＮからスピンの値の読み出しおよび／または書き込みが可能とされている。
＜メモリセルＮの構成＞
【００７２】
図８は、スピンの値を保持するメモリセルの構成を示す回路図である。また、図９は、メモリセルＮの動作を説明するための波形図である。この実施の形態におけるメモリセルＮは、基本的にはＳＲＡＭ（スタティック型メモリ）により構成されている。メモリセルＮは、電源電圧Ｖｄと接地電圧Ｖｓとの間に接続された１対のインバータ回路ＩＶ１、ＩＶ２と、転送用の電界効果型トランジスタ（以下、電界効果型トランジスタは、ＭＯＳＦＥＴと称する）ＴＲＴ、ＴＲＢと、クロック型インバータＣＩ１、ＣＩ２と、インバータ回路ＩＶ３とを備えている。
【００７３】
１対のインバータ回路ＩＶ１、ＩＶ２は、互いに入力と出力がクロスするように接続されている。すなわち、インバータ回路ＩＶ１の入力は、インバータ回路ＩＶ２の出力に接続され、インバータ回路ＩＶ２の入力はインバータ回路ＩＶ１の出力に接続されている。インバータ回路ＩＶ１の入力は、転送用のＭＯＳＦＥＴＴＲＴを介して、相補データ線ＢＬＴ、ＢＬＢの内の相補データ線ＢＬＴに接続され、インバータ回路ＩＶ２の入力は、転送用のＭＯＳＦＥＴＴＲＢを介して相補データ線ＢＬＴ、ＢＬＢの内の相補データ線ＢＬＢに接続されている。また、転送用のＭＯＳＦＥＴＴＲＴ、ＴＲＢのそれぞれのゲートは、ワード線ＷＬに接続されている。インバータ回路ＩＶ１およびＩＶ２のそれぞれの入力（出力）は、記憶ノードＮＴ、ＮＢとされる。
【００７４】
ワード線ＷＬがハイレベルにされることにより、転送用のＭＯＳＦＥＴＴＲＴ、ＴＲＢがオン状態にされると、相補データ線ＢＬＴ、ＢＬＢと記憶ノードＮＴ、ＮＢが電気的に接続される。例えば、相補データ線ＢＬＴ、ＢＬＢを所定の電圧にプリチャージし、その後でワード線ＷＬの電圧をハイレベルにすることにより、相補データ線ＢＬＴ、ＢＬＢの電圧は、記憶ノードＮＴ、ＮＢの電圧に従って変化する。これにより、メモリセルＮに保持されているデータ、すなわちスピンの値が読み出される。
【００７５】
一方、メモリセルＮへのスピンの値の書き込みは、この実施の形態においては、複数のパスを有している。すなわち、第１の書き込みパスは、相補データ線ＢＬＴ、ＢＬＢを用いた書き込みパスであり、第２の書き込みパスは、クロック型インバータＣＩ１、ＣＩ２を用いた書き込みパスである。
【００７６】
第１の書き込みパスでは、書き込むべきスピンの値に従って、相補データ線ＢＬＴと相補データ線ＢＬＢの電圧値が定められる。この場合、相補データ線ＢＬＴと相補データ線ＢＬＢの電圧は、相補的な電圧にする。例えば、相補データ線ＢＬＴをハイレベルにし、相補データ線ＢＬＢをロウレベルにする。ワード線ＷＬをハイレベルにすることにより、転送用のＭＯＳＦＥＴＴＲＴ、ＴＲＢがオン状態にされると、相補データ線ＢＬＴのハイレベルが、記憶ノードＮＴに伝達され、相補データ線ＢＬＢのロウレベルが、記憶ノードＮＢに伝達される。クロスするように接続された１対のインバータ回路ＩＶ１、ＩＶ２は、記憶ノードＮＢ、ＮＴの電位を保持するように帰還動作をおこない、スピンの値に対応した電圧を記憶ノードＮＴ、ＮＢに保持する。これにより、第１の書き込みパスを用いた書き込みが行われ、ワード線をロウレベルにすることにより、保持される。
【００７７】
第２の書き込みパスでは、クロック型インバータ回路ＣＩ１およびＣＩ２のそれぞれを介して、相補的な書き込みデータが、記憶ノードＮＴ、ＮＢへ伝達されることにより、行われる。この実施の形態においては、この第２の書き込みパスを用いて、反転論理回路ＬＧ（図７）からのデータＮＥＷＶが、スピンの値としてメモリセルＮに書き込まれる。
【００７８】
クロック型インバータ回路ＣＩ１、ＣＩ２のそれぞれは、クロック信号ＣＬＫＩ、ＣＬＫＩＢによって、その動作が制御される。ここで、クロック信号ＣＬＫＩとＣＬＫＩＢとは、相補的なクロック信号である。すなわち、クロック信号ＣＬＫＩがハイレベルへ変化するとき、クロック信号ＣＬＫＩＢはロウレベルへ変化し、クロック信号ＣＬＫＩがロウレベルへ変化するとき、クロック信号ＣＬＫＩＢはハイレベルへ変化する。クロック型インバータ回路ＣＩ１、ＣＩ２のそれぞれは、例えばクロック信号ＣＬＫＩがハイレベル（ＣＬＫＩＢがロウレベル）へ変化することにより、動作する。すなわち、このとき、クロック型インバータ回路ＣＩ１、ＣＩ２は、入力に供給されている信号を反転して、出力する。一方、クロック信号ＣＬＫＩがロウレベル（ＣＬＫＩＢがハイレベル）のときには、クロック型インバータ回路ＣＩ１、ＣＩ２のそれぞれの出力は、ハイインピーダンス状態となる。
【００７９】
クロック型インバータ回路ＣＩ１の入力には、反転論理回路ＬＧ（図７）からデータＮＥＷＶが供給され、クロック型インバータ回路ＣＩ２の入力にはインバータ回路ＩＶ３を介してデータＮＥＷＶが供給されている。また、クロック型インバータ回路ＣＩ１の出力は、記憶ノードＮＢに接続され、クロック型インバータ回路ＣＩ２の出力は、記憶ノードＮＴに接続されている。これにより、クロック型インバータ回路ＣＩ１は、それが動作したとき、データＮＥＷＶに対して反転した電圧を記憶ノードＮＢへ供給し、クロック型インバータ回路ＣＩ２は、それが動作したとき、データＮＥＷＶと同相の電圧を記憶ノードＮＴへ供給する。これにより、ワード線ＷＬをハイレベルへ変化させなくても、記憶ノードＮＢ、ＮＴのそれぞれは、データＮＥＷＶに従った電圧となり、データＮＥＷＶの書き込みが行われる。また、クロック信号ＣＬＫＩをロウレベルにすることにより、記憶ノードＮＢ、ＮＴがデータＮＥＷＶに従って変化するのを防ぐことが可能となり、スピンの値が保持される。
【００８０】
次に、図９を用いて、第２の書き込みパスの動作を説明する。図９（Ａ）は、クロック信号ＣＬＫＩの電圧波形を示しており、図９（Ｂ）は、クロック信号ＣＬＫＩＢの電圧波形を示している。また、図９（Ｃ）は、反転論理回路ＬＧから出力されるデータＮＥＷＶの電圧波形を示しており、図９（Ｄ）は、記憶ノードＮＴおよびＮＢの電圧波形を示している。図９において、横軸は時間を示し、縦軸は電圧を示している。
【００８１】
先に説明したように、クロック信号ＣＬＫＩとクロック信号ＣＬＫＩＢとは相補的な信号である。そのため、図９（Ａ）および（Ｂ）に示すように、クロック信号ＣＬＫＩとＣＬＫＩＢとは互いに反転された状態となっている。クロック信号ＣＬＫ１がロウレベルからハイレベルへ変化すると、そのときのデータＮＥＷＶの電圧に従って、記憶ノードＮＢ、ＮＴの電圧が変化する。クロック信号ＣＬＫＩがロウレベルへ変化すると、クロック型インバータ回路ＣＩ１、ＣＩ２のそれぞれの出力がハイインピーダンス状態となるため、記憶ノードＮＢ、ＮＴの電圧が維持される。図９では、期間Ｔ１において、クロック信号ＣＬＫＩがハイレベルへ変化するとき、データＮＥＷＶはロウレベルであるため、記憶ノードＮＢの電位はハイレベルとなり、記憶ノードＮＴの電位はロウレベルとなる。次に、クロック信号ＣＬＫＩがロウレベルへ変化することにより、記憶ノードＮＢ、ＮＴの電圧は維持される。次の期間Ｔ２においては、データＮＥＷＶがハイレベルであるため、記憶ノードＮＢの電圧はロウレベルとなり、記憶ノードＮＴの電圧はハイレベルとなる。このようにして、反転論理回路ＬＧから供給されたデータＮＥＷＶに従って、スピンの値が、メモリセルＮに書き込まれ、保持される。
【００８２】
この実施の形態においては、演算回路１０（図５）によって、相互作用の演算が行われた場合には、その演算結果は、反転論理回路ＬＧ（図５）によって反転または非反転とされ、データＮＥＷＶとしてメモリセルＮへ供給される。メモリセルＮにおいては、前記した第２の書き込みパスを用いて、クロック信号ＣＬＫＩ（ＣＬＫＩＢ）に同期して、データＮＥＷＶの書き込みが行われる。すなわち、演算により求められたスピンの値に応じた値が、メモリセルＮに書き込まれる。また、メモリセルＮに格納されているスピンの値は、ワード線ＷＬをハイレベルにすることにより、読み出すことができる。さらに、相補データ線ＢＬＴ、ＢＬＢへスピンの値を設定し、ワード線ＷＬをハイレベルにすることにより、相補データ線ＢＬＴ、ＢＬＢを用いた第１の書き込みパスで、スピンの値をメモリセルＮへ書き込むこともできる。
【００８３】
図８に示したメモリセルＮの構成は一例であり、これに限定されるものではない。例えば、図８においては、１対のインバータ回路ＩＶ１、ＩＶ２として、Ｐチャンネル型ＭＯＳＦＥＴ（以下、Ｐ型ＭＯＳＦＥＴと称する）とＮチャンネル型ＭＯＳＦＥＴ（以下、Ｎ型ＭＯＳＦＥＴと称する）により構成された所謂ＣＭＯＳ型のインバータ回路が用いられているが、高抵抗素子を負荷として用いるインバータ回路であってもよい。
＜演算回路１０の構成＞
【００８４】
次に、図７に示した演算回路１０について、その一例の構成と動作を、図１０〜図１３を用いて説明する。図１０〜図１２は、演算回路１０の構成を示す回路図である。また、図１３（Ａ）〜（Ｅ）は、演算回路１０の動作を説明するための波形図である。図面が複雑になるのを避けるために、演算回路１０の構成は、図１０〜図１２に分けて示してある。また、これらの図には示されていないが、メモリセルＩＳ１、ＩＵ１、ＩＬ１，ＩＲ１およびＩＤ１のそれぞれからの信号は、図示しないインバータ回路によって、位相反転された信号が形成されている。
【００８５】
以下の説明を容易にするために、メモリセルＩＳ０、ＩＳ１のそれぞれからの外部磁場係数は、信号ＩＳ０、ＩＳ１として示す。また、メモリセルＩＵ０、ＩＬ０、ＩＲ０およびＩＤ０のそれぞれから供給される相互作用係数は、信号ＩＵ０、ＩＬ０、ＩＲ０およびＩＤ０として示す。さらに、メモリセルＩＵ１、ＩＬ１、ＩＲ１およびＩＤ１のそれぞれから供給される相互作用係数は、信号ＩＵ１Ｔ、ＩＬ１Ｔ、ＩＲ１ＴおよびＩＤ１Ｔとして示す。また、図示しないインバータ回路によって、信号ＩＵ１Ｔ、ＩＬ１Ｔ、ＩＲ１ＴおよびＩＤ１Ｔに対して位相反転された信号は、信号ＩＵ１Ｂ、ＩＬ１Ｂ、ＩＲ１ＢおよびＩＤ１Ｂとして示す。
【００８６】
図７においては、演算回路１０の理解を容易にするために、演算回路１０の構成を、排他的論理和回路、スイッチおよび多数決論理回路と言う機能で説明した。図１０〜図１２は、これらの機能を効率よく構成した演算回路１０の回路を示している。すなわち、図１０および図１１に示す回路によって、それぞれ隣接するスピンセルからのスピンの値と当該隣接するスピンセルに関する相互作用係数との排他的論理和が、それぞれ求められ、求められた複数の排他的論理和が、電流的に加算される。電流的な加算により、加算した排他的論理和の論理値“１”と“０”の数の差に対応した電流が得られる。数の差に対応した電流は電圧に変換され、図１２に示した回路に供給される。図１２に示した回路では、図１０および図１１に示す回路から供給された電圧の比較を行い、比較の結果をデータＮＥＷとして出力する。
【００８７】
次に、図１０〜図１２を用いて具体的に、演算回路１０の構成を説明する。
図１０において、ＣＴは、後で説明する図１１の第２共通線ＣＢと対を構成する第１共通線であり、Ｐ型ＭＯＳＦＥＴＴＰ１を介して電源電圧Ｖｄに接続されている。このＰ型ＭＯＳＦＥＴＴ１のゲートには、クロック信号ＣＬＫＩが供給され、クロック信号ＣＬＫＩがロウレベルになることにより、第１共通線ＣＴを電源電圧Ｖｄへプリチャージする。また、図１０において、ＳＬは、共通接地線であり、Ｎ型ＭＯＳＦＥＴＴＰ２を介して接地電圧Ｖｓに接続されている。このＮ型ＭＯＳＦＥＴＴＰ２のゲートには、クロック信号ＣＬＫＩが供給され、クロック信号ＣＬＫがハイレベルになることにより、共通接地線ＳＬには、接地電圧Ｖｓが供給される。
【００８８】
第１共通線ＣＴと共通接地線ＳＬとの間には、複数の単位排他論理回路ＩＳＵ、ＩＵＵ、ＩＬＵ、ＩＲＵおよびＩＤＵが互いに並列的に接続されている。複数の単位排他論理回路ＩＳＵ、ＩＵＵ、ＩＬＵ、ＩＲＵおよびＩＤＵは、互いに同じ構成を有しており、供給される信号のみが異なっている。
【００８９】
すなわち、単位排他論理回路ＩＳＵには、外部磁場係数の信号ＩＳ０、ＩＳ１ＴおよびＩＳ１Ｂと、例えば電源電圧Ｖｄに相当するハイレベル（図では“Ｈ”と記載）が供給されている。また、単位排他論理回路ＩＵＵには、隣接するスピンセルのスピンの値に対応した信号ＮＵＴ、ＮＵＢと、この隣接するスピンセルとの間の相互作用係数の信号ＩＵ０、ＩＵ１Ｔ、ＩＵ１Ｂが供給されている。単位排他論理回路ＩＬＵには、隣接するスピンセルのスピンの値に対応した信号ＮＬＴ、ＮＬＢと、この隣接するスピンセルとの間の相互作用係数の信号ＩＬ０、ＩＬ１Ｔ、ＩＬ１Ｂが供給されている。
【００９０】
単位排他論理回路ＩＲＵには、隣接するスピンセルのスピンの値に対応した信号ＮＲＴ、ＮＲＢと、この隣接するスピンセルとの間の相互作用係数の信号ＩＲ０、ＩＲ１Ｔ、ＩＲ１Ｂが供給されている。さらに、単位排他論理回路ＩＤＵには、隣接するスピンセルのスピンの値に対応した信号ＮＤＴ、ＮＤＢと、この隣接するスピンセルとの間の相互作用係数の信号ＩＤ０、ＩＤ１Ｔ、ＩＤ１Ｂが供給されている。
【００９１】
単位排他論理回路ＩＳＵ、ＩＵＵ、ＩＬＵ、ＩＲＵおよびＩＤＵのそれぞれは、互いに同じ構成を有しているため、ここでは、単位排他論理回路ＩＵＵを代表として、その構成と動作を説明する。単位排他論理回路ＩＵＵは、排他的論理和の論理演算機能と、スイッチＳＷＵの機能とを備えている。排他的論理和の機能は、第１共通線ＣＴとノードｎとの間に並列的に接続された２個の直列回路により達成されている。２個の直列回路のうちの一方の直列回路は、互いに直列接続されたＮ型ＭＯＳＦＥＴＴ１、Ｔ３を有し、他方の直列回路は、互いに直列接続されたＮ型ＭＯＳＦＥＴＴ２、Ｔ４を有している。また、スイッチＳＷＵの機能は、ノードｎと共通接地線ＳＬとの間に接続されたＮ型ＭＯＳＦＥＴＴ５によって達成される。
【００９２】
一方の直列回路を構成するＮ型ＭＯＳＦＥＴＴ１のゲートには、隣接するスピンセルからのスピンの値に対応した信号ＮＵＴが供給され、Ｎ型ＭＯＳＦＥＴＴ３のゲートには、当該隣接するスピンセルとの間の相互作用係の信号ＩＵ１Ｔが供給されている。また、他方の直列回路を構成するＮ型ＭＯＳＦＥＴＴ２のゲートには、信号ＮＵＴに対して反転された信号ＮＵＢが供給され、Ｎ型ＭＯＳＦＥＴＴ３のゲートには、信号ＩＵ１Ｔに対して反転された信号ＩＵ１Ｂが供給されている。また、Ｎ型ＭＯＳＦＥＴＴ５のゲートには、隣接するスピンセルとの間の相互作用係数の信号ＩＵ０が供給されている。
【００９３】
Ｐ型ＭＯＳＦＥＴＴＰ１によって、第１共通線ＣＴが、プリチャージされた後、Ｎ型ＭＯＳＦＥＴＴＰ２がオン状態となる。Ｎ型ＭＯＳＦＥＴＴＰ２がオン状態にされることにより、演算回路１０による演算が開始される。このとき、相互作用係数の信号ＩＵ０がハイレベルであれば、Ｎ型ＭＯＳＦＥＴＴ５がオン状態となる。このＮ型ＭＯＳＦＥＴＴ５がオン状態となっている期間において、スピンの値に対応した信号ＮＵまたは相互作用係数の信号ＩＵ１のいずれか一方がハイレベルとなり、他方がロウレベルとなると、２個の直列回路のうちのいずれか１つの直列回路を電流Ｉ１またはＩ２が流れる。
【００９４】
これに対して、Ｎ型ＭＯＳＦＥＴＴ５がオン状態となっている期間において、スピンの値に対応した信号ＮＵおよび相互作用係数の信号ＩＵ１の両方がハイレベルまたはロウレベルになると、２個の直列回路のいずれにおいても電流（Ｉ１、Ｉ２）は流れない。単位排他論理回路ＩＵＵを電流Ｉ１またはＩ２が流れることにより、第１共通線ＣＴの電圧が電源電圧Ｖｄから接地電圧Ｖｓへ向けて低下する。一方、電流Ｉ１およびＩ２が流れないと、第１共通線ＣＴの電圧は、電源電圧Ｖｄに維持される。
【００９５】
これにより、単位排他論理回路ＩＵＵは、スイッチＳＷＵの機能を有するとともに、隣接するスピンセルからのスピンの値に対応した信号ＮＵＴ（ＮＵＴＢ）と隣接するスピンセルとの間の相互作用係数の信号ＩＵ１Ｔ（ＩＵ１Ｂ）との間で排他的論理和を求め、求めた値を第１共通配線ＣＴからの電流（Ｉ１、Ｉ２）として出力することになる。
【００９６】
言い換えるならば、隣接するスピンセルのスピンの値（信号ＩＵ１Ｔ）の論理値と、このスピンセルとの間の相互作用係数の値（信号ＮＵＴ）の論理値が、同じ場合には、第１共通線ＣＴの電圧は低下し、論理値“０”となり、互いに異なる論理値の場合には、第１共通線ＣＴの電圧は維持し、論理値“１”となる。
【００９７】
信号ＩＵ０がロウレベルのときには、Ｎ型ＭＯＳＦＥＴＴ５はオフ状態となる。従って、このときに、単位排他論理回路ＩＵＵを、電流（Ｉ１およびＩ２）は、流れない。メモリセルＩＵ０に格納されている相互作用係数は、隣接するスピンセルから相互作用の影響を取り入れるか否かを定める係数であると見なすことができる。この場合、メモリセルＩＵ０からの信号ＩＵ０が、ハイレベル（論理値“１”）の場合には、該当するスピンセルからの相互作用の影響を、相互作用の演算に取り込み、ロウレベル（論理値“０”）の場合には、該当するスピンセルからの相互作用の影響が、演算に取り込まれない。
【００９８】
他の単位排他論理回路ＩＬＵ、ＩＲＵ、ＩＤＵについても、スイッチＳＷＬ、ＳＷＲ、ＳＷＤの機能を有し、それぞれ供給されているスピンの値に対応する信号と相互作用係数の信号との間で排他的論理和を求め、求めた値を、第１共通線ＣＴからの電流として出力する。
【００９９】
単位排他論理回路ＩＳＵについては、Ｎ型ＭＯＳＦＥＴＴ１およびＴ２のそれぞれのゲートにハイレベルが常時供給され、Ｎ型ＭＯＳＦＥＴＴ３のゲートに外部磁場係数の信号ＩＳ１Ｔが供給され、Ｎ型ＭＯＳＦＥＴＴ４のゲートに、信号ＩＳ１Ｔに対して反転された信号ＩＳ１Ｂが供給されている。また、スイッチＳＷＵとして機能するＮ型ＭＯＳＦＥＴＴ５のゲートには、外部磁場係数の信号ＩＳ０が供給されている。これにより、外部磁場係数の信号ＩＳ０によってＮ型ＭＯＳＦＥＴＴ５がオン状態にされたときには、外部磁場係数ＩＳ１Ｔの電圧にかかわらずに、単位排他論理回路ＩＳＵは、第１共通線ＣＴから電流（Ｉ１またはＩ２）を流すことになる。
【０１００】
この場合、Ｎ型ＭＯＳＦＥＴＴ１およびＴ２は設けずに、Ｎ型ＭＯＳＦＥＴＴ３およびＴ４のそれぞれが、ノードｎと第１共通線ＣＴとの間に接続されるようにしてもよいが、Ｎ型ＭＯＳＦＥＴＴ１およびＴ２を設けることにより、残りの単位排他論理回路と同様な構成となり、同じパターンの繰り返しにでき、半導体集積回路装置として製造するのに適している。
【０１０１】
単位排他論理回路のそれぞれにおいて求められた排他論理和の結果は、第１共通線ＣＴから共通接地線ＳＬへ電流を流すか否かとして表される。そのため、第１共通線ＣＴの電圧が、プリチャージされた電圧から、接地電圧Ｖｓへ向かって低下する時間は、電流を流す単位排他論理和回路の数に依存する。
【０１０２】
図１１は、図１０と同様に、相互作用の演算を行う回路を示している。図１１に示す回路は、図１０に示した回路と類似している。図１１において、ＣＢは、第２共通線を示しており、ＳＬは、共通接地線を示している。第２共通線は、図１０に示した第１共通線ＣＴと同様に、クロック信号ＣＬＫＩによって制御されるＰ型ＭＯＳＦＥＴＴＰ３を介して電源電圧Ｖｄに接続されている。また、共通接地線ＳＬは、クロック信号ＣＬＫＩによって制御されるＮ型ＭＯＳＦＥＴＴＰ４を介して接地電圧Ｖｓに接続されている。
【０１０３】
図１１に示す演算を行う回路においても、図１０と同様に、複数の単位排他論理回路ＩＳＢＵ、ＩＵＢＵ、ＩＬＢＵ、ＩＲＢＵおよびＩＤＢＵを備えており、これらの単位排他論理回路ＩＳＢＵ、ＩＵＢＵ、ＩＬＢＵ、ＩＲＢＵおよびＩＤＢＵは、第２共通線と共通接地線ＳＬとの間に並列的に接続されている。これらの単位排他論理回路ＩＳＢＵ、ＩＵＢＵ、ＩＬＢＵ、ＩＲＢＵおよびＩＤＢＵのそれぞれは、図１０に示した単位排他論理回路ＩＳＵ、ＩＵＵ、ＩＬＵ、ＩＲＵおよびＩＤＵのそれぞれと同じ構成を有しており、また、単位排他論理回路ＩＳＵ、ＩＵＵ、ＩＬＵ、ＩＲＵおよびＩＤＵのそれぞれに供給される信号と同じ信号が供給されている。
【０１０４】
しかしながら、供給された信号は、単位排他論理回路において、図１０とは異なるＮ型ＭＯＳＦＥＴのゲートに供給されている。すなわち、図１１に示した単位排他論理回路ＩＵＢＵには、図１０に示した単位排他論理回路ＩＵＵと、同じ信号ＮＵＴ、ＮＵＢ、ＩＵ１Ｔ、ＩＵ１ＢおよびＩＵ０が供給されるが、単位排他論理回路ＩＵＵとは、相補的な論理結果を出力するようにされている。他の単位排他論理回路も同様で、単位排他論理回路ＩＬＢＵは、単位排他論理回路ＩＬＵと相補的な論理結果を出力し、単位排他論理回路ＩＲＢＵは、単位排他論理回路ＩＲＵと相補的な論理結果を出力し、単位排他論理回路ＩＤＢＵは、単位排他論理回路ＩＤＵと相補的な論理結果を出力する。なお、外部磁場係数に関する単位排他論理回路ＩＳＢＵは、単位排他論理回路ＩＳＵと同じ論理結果を出力する。
【０１０５】
ここでも、単位排他論理回路ＩＵＵに対応する単位排他論理回路ＩＵＢＵを代表として、その構成と動作を説明する。単位排他論理回路ＩＵＢＵの構成は、単位排他論理回路ＩＵＵと同じで、ノードｎと第２共通線ＣＢとの間に並列に接続された２個の直列回路と、ノードｎと共通接地線ＳＬとの間に接続されたＮ型ＭＯＳＦＥＴＴ５とを有している。２個の直列回路のうちの一方の直列回路を構成するＮ型ＭＯＳＦＥＴＴ１のゲートには、相互作用係数の信号ＮＵＴが供給され、Ｎ型ＭＯＳＦＥＴＴ３のゲートには、スピンの値に対応した信号ＩＵ１Ｂが供給されている。また、他方の直列回路を構成するＮ型ＭＯＳＦＥＴＴ２のゲートには、相互作用係数の信号ＮＵＢが供給され、Ｎ型ＭＯＳＦＥＴＴ４のゲートには、スピンの値に対応した信号ＩＵ１Ｔが供給されている。
【０１０６】
クロック信号ＣＬＫ１によってＰ型ＭＯＳＦＥＴＴＰ３がオン状態にされ、第２共通線ＣＢが電源電圧Ｖｄにプリチャージされた後、クロック信号ＣＬＫＩがハイレベルへ変化される。これにより、先に述べたように、相互作用の演算が開始される。信号ＩＵ０によって、隣接するスピンセルのスピンの値による相互作用の影響を、取り込むことが指示される場合、すなわち、信号ＩＵ０がハイレベルにされた場合、信号ＮＵＴと信号ＩＵ１Ｔとが異なるレベル（ハイレベルまたはロウレベル）のとき、Ｎ型ＭＯＳＦＥＴＴ１とＴ３またはＮ型ＭＯＳＦＥＴＴ２とＴ４がオン状態となる。これにより、２個の直列回路のうちのいずれか１個で電流（Ｉ１またはＩ２）が流れることになる。
【０１０７】
これに対して、信号ＮＵＴと信号ＩＵ１Ｔが同じレベルのときには、Ｎ型ＭＯＳＦＥＴＴ１またはＴ３、またはＮ型ＭＯＳＦＥＴＴ２またはＴ４がオフ状態となる。この結果、信号ＮＵＴと信号ＩＵ１Ｔとが同じレベルのときには、２個の直列回路のいずれにおいても、電流（Ｉ１、Ｉ２）は流れない。これにより、第２共通線ＣＢの電圧は、信号ＮＵＴと信号ＩＵ１Ｔとが同じレベルのときには、低下し、信号ＮＵＴと信号ＩＵ１Ｔとが異なるレベルのときには、維持される。
【０１０８】
言い換えるならば、スピンの値（信号ＮＵＴ）と相互作用係数（信号ＩＵ１Ｔ）とが、異なる論理値のとき、第２共通線ＣＢの電圧が低下し、スピンの値（信号ＮＵＴ）と相互作用係数（信号ＩＵ１Ｔ）とが、同じ論理値のとき、第２共通線ＣＢの電圧が維持される。これにより、単位排他論理回路ＩＵＢＵは、図１０に示した単位排他論理回路ＩＵＵとは相補的な演算結果を出力することになる。
【０１０９】
残りの単位排他論理回路ＩＬＢＵ、ＩＲＢＵおよびＩＤＢＵについても、同様に、図１０に示した単位排他論理回路ＩＬＵ、ＩＲＵおよびＩＤＵと相補的な演算結果を出力する。なお、外部磁場係数に関する単位排他論理回路ＩＳＢＵは、図１０に示した単位排他論理回路ＩＳＵと同じ演算結果を出力する。
【０１１０】
図１１に示した第２共通線ＣＢも、図１０に示した第１共通線ＣＴと同様に、その電圧が、プリチャージされた電源電圧Ｖｄから接地電圧Ｖｓへ向けて低下する時間は、単位排他論理回路ＩＳＢＵ、ＩＵＢＵ、ＩＬＢＵ、ＩＲＢＵおよびＩＤＢＵを流れている電流に依存する。すなわち、第２共通線ＣＢの電圧は、電流を流す単位排他論理和回路の数に依存する。
【０１１１】
図１０に示した単位排他論理回路ＩＵＵ、ＩＬＵ、ＩＲＵおよびＩＤＵでは、スピンの値と相互作用係数とが同じ論理値のとき、電流（Ｉ１またはＩ２）が流れる。これに対して、図１１に示した単位排他論理回路ＩＵＢＵ、ＩＬＢＵ、ＩＲＢＵおよびＩＤＢＵでは、スピンの値と相互作用係数とが異なる論理値のとき、電流（Ｉ１またはＩ２）が流れる。
【０１１２】
そのため、周辺に配置されたスピンセルからのスピンの値と、スピンセルとの間の相互作用係数とが、例えば同じ論理値になる数が多い場合には、第２共通線ＣＢの電圧の低下は、第１共通線ＣＴの電圧の低下よりも遅くなる。言い換えるならば、異なる論理値となる数が多い場合には、第１共通線ＣＴの電圧の低下が、第２共通線ＣＢの電圧低下よりも遅くなる。
【０１１３】
図１２は、第１共通線ＣＴの電圧の低下と第２共通線ＣＢの電圧の低下との間の時間差を基にして、データＮＥＷを生成する回路を示している。図１２において、ＣＴおよびＣＢは、先に説明した第１共通線および第２共通線を示している。また、同図において、Ｔ８およびＴ９は、Ｐ型ＭＯＳＦＥＴ、Ｔ６、Ｔ７およびＴ１０〜Ｔ１２は、Ｎ型ＭＯＳＦＥＴを示している。
【０１１４】
Ｐ型ＭＯＳＦＥＴＴ８のソースは、電源電圧Ｖｄに接続され、そのドレインは、Ｎ型ＭＯＳＦＥＴＴ１０のドレインに接続され、そのゲートは、Ｎ型ＭＯＳＦＥＴＴ１０のゲートに接続されている。また、Ｐ型ＭＯＳＦＥＴＴ９のソースは、電源電圧Ｖｄに接続され、そのドレインは、Ｎ型ＭＯＳＦＥＴＴ１１のドレインに接続され、そのゲートは、Ｎ型ＭＯＳＦＥＴＴ１１のゲートに接続されている。Ｎ型ＭＯＳＦＥＴＴ１０およびＴ１１のそれぞれのソースは、スイッチ用のＮ型ＭＯＳＦＥＴＴ１２を介して接地電圧Ｖｓに接続されている。
【０１１５】
Ｐ型ＭＯＳＦＥＴＴ８およびＮ型ＭＯＳＦＥＴＴ１０のそれぞれのゲートと、Ｐ型ＭＯＳＦＥＴＴ９およびＮ型ＭＯＳＦＥＴＴ１１のそれぞれのドレインは、入出力ノードＣＬＴに接続されている。入出力ノードＣＬＴは、転送用のＮ型ＭＯＳＦＥＴＴ６を介して第１共通線ＣＴに接続され、さらにインバータ回路ＩＶ４の入力に接続されている。また、Ｐ型ＭＯＳＦＥＴＴ９およびＮ型ＭＯＳＦＥＴＴ１１のそれぞれのゲートと、Ｐ型ＭＯＳＦＥＴＴ８およびＮ型ＭＯＳＦＥＴＴ１０のそれぞれのドレインは、入出力ノードＣＬＢに接続されている。当該入出力ノードＣＬＢは、転送用のＮ型ＭＯＳＦＥＴＴ７を介して第２共通線ＣＢに接続され、さらにインバータ回路ＩＶ５の入力に接続されている。
【０１１６】
転送用のＮ型ＭＯＳＦＥＴＴ６およびＴ７のそれぞれは、クロック信号ＣＬＫＩによって、スイッチ制御され、スイッチ用のＮ型ＭＯＳＦＥＴＴ１２は、クロック信号ＣＬＫＩＢによってスイッチ制御される。
【０１１７】
クロック信号ＣＬＫＩをハイレベルにすることにより、Ｎ型ＭＯＳＦＥＴＴ６およびＴ７がオン状態となり、第１共通線ＣＴの電圧は入出力ノードＣＬＴに伝達され、第２共通線ＣＢの電圧は入出力ノードＣＬＢに伝達される。
【０１１８】
クロック信号ＣＬＫＩがロウレベルとなり、クロック信号ＣＬＫＩＢがハイレベルにされることにより、スイッチ用のＮ型ＭＯＳＦＥＴＴ１２がオン状態となる。これにより、Ｎ型ＭＯＳＦＥＴＴ１０およびＴ１１のソースに接地電圧Ｖｓが供給されると、Ｐ型ＭＯＳＦＥＴＴ８およびＮ型ＭＯＳＦＥＴＴ１０により第１のインバータ回路が構成される。同様に、Ｐ型ＭＯＳＦＥＴＴ９およびＮ型ＭＯＳＦＥＴＴ１１により第２のインバータ回路が構成される。第１のインバータ回路と第２のインバータ回路は、互いに入力と出力が交差（クロス）接続されているため、入出力ノードＣＬＴとＣＬＢとの間の電圧差を増幅するような帰還動作を行う。
【０１１９】
この実施の形態においては、特に制限されないが、入出力ノードＣＬＴにおける電圧がインバータ回路ＩＶ４によってバッファされ、データＮＥＷとして出力される。勿論、インバータＩＶ５の出力をデータＮＥＷとしてもよいし、インバータ回路ＩＶ４およびＩＶ５のそれぞれの出力を用いてデータＮＥＷを生成するようにしてもよい。
【０１２０】
図１３は、図１０〜図１２に示した演算回路１０の動作を説明する波形図である。図１３において、横軸は時間を示し、縦軸は電圧を示している。図１３（Ａ）は、クロック信号ＣＬＫＩの電圧波形を示しており、周期的に変化している、図１３（Ｂ）は、クロック信号ＣＬＫＩを位相反転して形成したクロック信号ＣＬＫＩＢの電圧波形を示している。クロック信号ＣＬＫＩが周期的に変化するため、クロック信号ＣＬＫＩＢも周期的に変化している。
【０１２１】
図１３（Ｃ）は、第１共通線ＣＴおよび第２共通線ＣＢのそれぞれの電圧変化を示している。ここで、第２共通線ＣＢにおける電圧の変化は破線で示されている。また、図１３（Ｄ）は、入出力ノードＣＬＴおよびＣＬＢの電圧の変化を示している。ここでも、入出力ノードＣＬＢにおける電圧の変化は破線で示されている。図１３（Ｅ）は、演算回路１０から出力されるデータＮＥＷの電圧変化を示している。この図１３（Ｅ）に示すデータＮＥＷは、図１２に示したインバータＩＶ４の出力に相当すると見なすことができる。
【０１２２】
時刻ｔ１の前の時点では、クロック信号ＣＬＫＩはロウレベルとなっている。これにより、Ｐ型ＭＯＳＦＥＴＴＰ１、ＴＰ３がオン状態となり、第１共通線ＣＴ、第２共通線ＣＢのそれぞれが、電源電圧Ｖｄにプリチャージされる。時刻ｔ１において、クロック信号ＣＬＫＩがハイレベルへ変化することにより、Ｎ型ＭＯＳＦＥＴＴＰ２、ＴＰ４および転送用のＮ型ＭＯＳＦＥＴＴ６、Ｔ７がオン状態となる。これにより、演算回路１０が、相互作用の演算を開始する。
【０１２３】
一方、周辺に配置されているスピンセルからのスピンの値（ＮＵ、ＮＬ、ＮＲおよびＮＤ）とそれぞれのスピンセルに対応する相互作用係数（ＩＵ０、ＩＬ０、ＩＲ０、ＩＤ０、ＩＵ１、ＩＬ１、ＩＲ１、ＩＤ１）の信号が、図１０および図１１に示した各単位排他論理回路に供給される。また、外部磁場係数（ＩＳ０、ＩＳ１）の信号も、図１０および図１１に示した単位排他論理回路へ供給される。このときのスピンの値の論理値と相互作用係数の論理値とが一致する数（あるいは一致しない数）によって、第１共通線ＣＴおよび第２共通線ＣＢの電圧が電源電圧Ｖｄから徐々に低下する。このときの低下する速度は、スピンの論理値と相互作用の論理値とが一致している数（あるいは一致していない数）によって、変わる。すなわち、一致している数が、一致していない数に比べて多ければ、第１共通線ＣＴの電圧が、第２共通線ＣＢの電圧よりも早く低下し、一致していない数が、一致している数よりも多ければ、第２共通線ＣＢの電圧が、第１共通線ＣＴの電圧よりも早く低下する。図１３に示した時刻ｔ１から時刻ｔ２の間を例にすれば、スピンの値と相互作用係数との間の論理値が一致している数が、一致していない数に比べて多い、そのため、第１共通線ＣＴの電圧の低下が、第２の共通線ＣＢの電圧の低下よりも早くなっている。この第１共通線ＣＴおよび第２共通線ＣＢのそれぞれの電圧変化は、転送用のＮ型ＭＯＳＦＥＴＴ６およびＴ７を介して、入出力ノードＣＬＴおよびＣＬＢに伝達される。
【０１２４】
次に、時刻ｔ３において、クロック信号ＣＬＫＩがロウレベルにされ、クロック信号ＣＬＫＩＢがハイレベルへ変化することにより、スイッチ用のＮ型ＭＯＳＦＥＴＴ１２がオン状態となる。これにより、Ｐ型ＭＯＳＦＥＴＴ８、Ｎ型ＭＯＳＦＥＴＴ１０により構成されるインバータ回路と、Ｐ型ＭＯＳＦＥＴＴ９、Ｎ型ＭＯＳＦＥＴＴ１１により構成されるインバータ回路とによる帰還動作が開始して、入出力ノードＣＬＴとＣＬＢとの間の電圧差が増幅される。時刻ｔ２の後の時刻ｔ３において、インバータ回路ＩＶ４から、入出力ノードＣＬＴの電圧に応じた電圧を有するデータＮＥＷが出力される。
【０１２５】
また、時刻ｔ３において、クロック信号ＣＬＫＩがロウレベルとなることにより、Ｐ型ＭＯＳＦＥＴＴＰ１、ＴＰ３がオン状態となり、再び、第１共通線ＣＴおよび第２共通線ＣＢのプリチャージが行われる。このとき、転送用のＮ型ＭＯＳＦＥＴＴ６およびＴ７はオフ状態となるため、第１共通線ＣＴおよび第２共通線ＣＢのプリチャージが行われているとき、第１共通線ＣＴ、第２共通線ＣＢと入出力ノードＣＬＴ、ＣＬＢは電気的に分離される。時刻ｔ４において、クロック信号ＣＬＫＩがハイレベルに変化することにより、以降は、上記した動作が繰り返される。
【０１２６】
上述したように、スピンの値と相互作用係数との間で、論理値が一致する数が、一致しない数に比べて多い場合、第１共通線ＣＴの電圧が、第２共通線ＣＢの電圧より早く低下する。反対に、論理値が一致しない数が、一致する数に比べて多い場合には、第１共通線ＣＴの電圧は、第２共通線ＣＢの電圧より遅くて低下する。例えば時刻ｔ２のような所定のタイミングで、第１共通線ＣＴと第２共通線ＣＢの電圧を見た場合、論理値が一致する数が多い場合は、第１共通線ＣＴの電圧が第２共通線ＣＢの電圧に比べて低い。反対に、論理値が一致しない数が多い場合には、第１共通線ＣＴの電圧が第２共通線ＣＢの電圧に比べて高い。
【０１２７】
２入力の排他的論理和演算においては、２入力の論理値が一致した場合、演算結果は論理値“０”となり、一致しない場合の演算結果は論理値“１”となる。上記した所定のタイミングで、第１共通線ＣＴの電圧を見た場合、周辺のスピンセルのスピンの値と相互作用係数との間で、それぞれ実行された複数の排他的論理演算の結果において、一致した数が、一致しない数に比べて多い場合、第２共通線ＣＢの電圧よりも低くなり、反対に一致した数が、一致しない数に比べて少ない場合は、第２共通線ＣＢの電圧よりも高くなる。すなわち、排他的論理演算の結果において、多数となる論理値に従って、第１共通線ＣＴの電圧は、第２共通線ＣＢの電圧に対して高い値あるいは低い値となる。言い換えるならば、第１共通線ＣＴの電圧は、複数の排他的論理演算結果の多数決によって決定される。同様に、第２共通線ＣＢの電圧も、複数の排他的論理演算結果の多数決によって決定される。
【０１２８】
この実施の形態においては、第１共通線ＣＴと第２共通線ＣＢとの間の電圧差が、帰還動作により増幅される。例えば、第１共通線ＣＴの電圧が、第２共通線ＣＢの電圧に比べて低い場合には、帰還動作により入出力ノードＣＬＴの電圧はロウレベルとなり、入出力ノードＣＬＢの電圧はハイレベルとなる。反対に、第１共通線ＣＴの電圧が、第２共通線ＣＢの電圧に比べて高い場合には、帰還動作により入出力ノードＣＬＴの電圧はハイレベルとなり、入出力ノードＣＬＢの電圧はロウレベルとなる。すなわち、スピンの値と相互作用係数との間で論理値が一致する数が、一致しない数に比べて多いときには、入出力ノードＣＬＴはロウレベルとなり、一致する数が、一致しない数に比べて少ないときには、入出力ノードＣＬＴはハイレベルとなる。また、データＮＥＷは、入出力ノードＣＬＴの電圧を反転した信号であるため、データＮＥＷは、スピンの値と相互作用係数との間で論理値が一致する数が、一致しない数に比べて多いとき、ハイレベルとなり、一致する数が、一致しない数に比べて少ないとき、ロウレベルとなる。
【０１２９】
この実施の形態においては、帰還動作により、第１共通線ＣＴと第２共通線ＣＢとの間の電圧差が増幅されるが、第１共通線ＣＴと第２共通線ＣＢとの間で電圧比較を行い、その電圧差を拡大していると見なすこともできる。第１共通線ＣＴと第２共通線ＣＢとの間の電圧比較を行えば、スピンの値と相互作用係数との間で論理値が一致する数が、一致しない数に比べて多いか否かの判定を行うことが可能である。そのため、図１２に示した回路に限定されず、第１共通線ＣＴの電圧と第２共通線ＣＢの電圧とを比較する比較回路であってもよい。
【０１３０】
この実施の形態においては、第１共通線ＣＴおよび第２共通線ＣＢのそれぞれの電圧が、排他的論理和の結果の数に従って変化する。この場合、第１共通線ＣＴの電圧は、排他的論理和の結果に従って変化し、第２共通線ＣＢの電圧は、排他的論理和の結果に対して相補的な関係を有する結果に従って変化する。これにより、第１共通線ＣＴと第２共通線ＣＢとの間で、早いタイミングで電圧差が生じるようにすることが可能とされ、データＮＥＷの形成を早くすることが可能である。しかしながら、例えば所定の基準電圧を定め、基準電圧と第１共通線ＣＴあるいは第２共通線ＣＢの電圧を比較するようにしてもよい。この場合には、図１１に示した回路あるいは図１０に示した回路を省略することが可能となり、小型化を図ることが可能となる。
＜イジング計算機および半導体集積回路装置の全体構成＞
【０１３１】
図１４は、イジング計算機１００および半導体集積回路装置の全体構成を示すブロック図である。イジング計算機１００は、複数の半導体集積回路装置２３−１〜２３−ｎと、制御装置１４００を備えている。複数の半導体集積回路装置２３−１〜２３−ｎは、互いに同じ構成を有しているため、同図においては、半導体集積回路装置２３−１につてのみ、その構成が示されている。制御装置１４００は、複数の半導体集積回路装置２３−１〜２３−ｎのそれぞれを制御する装置であって、それぞれの半導体集積回路装置２３−１〜２３−ｎに対して、アドレス信号、ＡＮＤ指定情報、ＯＲ指定情報を形成し、供給する。また、制御装置１４００は、それぞれの半導体集積回路装置２３−１〜２３−ｎとの間でデータの送受信を行い、データの書き込みおよび／または読み出しを行う。
【０１３２】
半導体集積回路装置２３−１を代表として、半導体集積回路装置２３−１〜２３−ｎの構成を説明する。半導体集積回路装置２３−１は、行列（マトリクス）状に配置された複数のスピンセル１２を有している。特に制限されないが、この実施の形態においては、スピンセル１２は、６４列で１６行に配置されており、同図には、これらのうち、４列で４行に配置されたスピンセル１２が、Ｎ００〜Ｎ０３、Ｎ１０〜Ｎ１３、Ｎ２０〜Ｎ２３およびＮ３０〜Ｎ３３として示されている。ここで、図示したスピンセルにおいて、符号Ｎに付された最初の数字は、列（列０〜列３）を示し、次に付された数字は、行（行０〜行３）を示している。ここでは、説明を容易にするために、図１４に示した４列４行のスピンセル１２を用いて説明するが、残りのスピンセルについても、構成および動作は同様である。また、これらのスピンセル１２の配置は、実際の半導体集積回路装置における配置に合わせて描かれている。
【０１３３】
それぞれのスピンセル１２は、図７に示した構成を有している。先ず、図７に示したスピンセル１と図１４に示したスピンセル１２との対応関係を説明しておく。説明に際しては、図７に示したスピンセル１が、図１４においてＮ１１として示されているスピンセル１２である場合を例にする。
【０１３４】
図１４において、ＢＬ１〜ＢＬ４は、それぞれ相補データ線対を示しており、それぞれは、行列状に配置されたスピンセル１２のマトリクスにおいて、各列に配置され、列に配置された複数のスピンセル１２に接続されている。相補データ線対ＢＬ１〜ＢＬ４のそれぞれは、１対の相補データ線を有しており、スピンセル１２（Ｎ１１）では、相補データ線対ＢＬ２を構成する１対の相補データ線が、図７において、相補データ線ＢＬＴ、ＢＬＢとして示されている。図７を用いて説明したように、相補データ線ＢＬＴ、ＢＬＢには、メモリセル９（Ｎ、ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）が接続されている。
【０１３５】
図１４において、ＷＬ［０：１０］〜ＷＬ［３３：４３］のそれぞれは、ワード線であり、スピンセル１２のマトリクスの各行に配置され、それぞれの各行に配置されたスピンセル１２に接続されている。図１４において、ワード線［０：１０］は、ワード線ＷＬ０〜ＷＬ１０を意味している。すなわち、ワード線ＷＬ０〜ＷＬ１０の１１本のワード線を、纏めて１本のワード線［０：１０］として示している。他のワード線ＷＬ［１１：２１］〜ＷＬ［３３：４３］のそれぞれついても、１１本のワード線を有しており、これらを纏めて１本のワード線として示している。スピンセル１２（Ｎ１１）では、図７に示すように、１１個のメモリセル９（Ｎ、ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）を有している。ワード線ＷＬ［１１：２１］に含まれるワード線ＷＬ１１〜ＷＬ２１のそれぞれが、対応するメモリセル９に接続されている。
【０１３６】
例えば、ワード線ＷＬ１１が、図７におけるメモリセル９（Ｎ）に接続されている。同様に、ワード線ＷＬ１２は、メモリセル９（ＩＳ０）に、ワード線ＷＬ１３は、メモリセル９（ＩＳ１）に、ワード線ＷＬ１４は、メモリセル９（ＩＵ０）に、ワード線ＷＬ１５は、メモリセル９（ＩＵ１）に、ワード線ＷＬ１６は、メモリセル９（ＩＬ０）に、ワード線ＷＬ１７は、メモリセル９（ＩＬ１）に、ワード線ＷＬ１８は、メモリセル９（ＩＲ０）に、ワード線ＷＬ１９は、メモリセル９（ＩＲ１）に、ワード線ＷＬ２０は、メモリセル９（ＩＤ０）に、ワード線ＷＬ２０は、メモリセル９（ＩＤ１）に、それぞれ接続されている（図７，図１４）。
【０１３７】
メモリセル９（Ｎ）を例にすると、図８に示したように、ワード線ＷＬ（ＷＬ１１）は転送用のＮ型ＭＯＳＦＥＴＴＲＴおよびＴＲＢのゲートに接続され、相補データ線ＢＬＴ，ＢＬＢは、転送用のＮ型ＭＯＳＦＥＴＴＲＴおよびＴＲＢを介して、クロス接続されたインバータ回路に接続されている。残りのメモリセル９（ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）のそれぞれにおいても、同様に、ワード線ＷＬ１２〜ＷＬ２０は、転送用のＮ型ＭＯＳＦＥＴのゲートに接続され、相補データ線ＢＬＴ、ＢＬＢは、転送用のＮ型ＭＯＳＦＥＴを介して、クロス接続されたインバータ回路に接続されている。なお、残りのメモリセル９（ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）のそれぞれには、図８において説明した第２の書き込みパスは設けられていない。
【０１３８】
図１４において、１４０１は、変更データを示している。この実施の形態においては、変更データ１４０１は、マトリクスの列０に配置されたスピンセル１２（Ｎ０３）から同じ列０に配置されたスピンセル１２（Ｎ００）へ向かって供給され、次に、列１におけるスピンセル１２（Ｎ１０〜Ｎ１３）に供給され、一筆書きのように、次々と異なる列に配置されたスピンセル１２へ供給される。スピンセル１２（Ｎ１１）では、スピンセル１２（Ｎ１０）からの変更データ１４０１が、図７に示されているメモリ回路４および調整回路８に入力され、調整回路８から出力された変更データ１４０１が、図１４に示したスピンセル１２（Ｎ１２）に供給される。そのため、図７においては、「隣接スピンセルより」と記載されているが、図１４に示した例では、「隣接スピンセル」は、スピンセル１２（Ｎ１０）に相当する。また、図７において、「隣接スピンセルへ」として記載されている「隣接スピンセル」は、図１４においては、スピンセル１２（Ｎ１２）に相当する。
【０１３９】
ここで、図７において説明した周辺に配置されたスピンセルの例を、述べておく。図７を用いて説明したように、メモリセルＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１のそれぞれには、スピンセル１２（Ｎ１１）の周辺に配置されるスピンセルから、このスピンセル１２（Ｎ１１）に対する影響を演算するための相互作用係数が格納される。図１４に示した例では、スピンセル１２（Ｎ１１）の周辺に配置されたスピンセルは、スピンセル１２（Ｎ１０）、１２（Ｎ０１）、１２（Ｎ２１）および１２（Ｎ１２）が該当する。この場合、スピンセル１２（Ｎ１０）が、上側に配置されたスピンセルに該当し、スピンセル１２（Ｎ０１）が、左側に配置されたスピンセルに該当し、スピンセル１２（Ｎ２１）が、右側に配置されたスピンセルに該当し、スピンセル１２（Ｎ１２）が、下側に配置されたスピンセルに該当する。
【０１４０】
そのため、メモリセルＩＵ０、ＩＵ１には、スピンセル１２（Ｎ１０）との間の相互作用の係数が書き込まれ、メモリセルＩＬ０、ＩＬ１には、スピンセル１２（Ｎ０１）との間の相互作用の係数が書き込まれ、メモリセルＩＲ０、ＩＲ１には、スピンセル１２（Ｎ２１）との間の相互作用の係数が書き込まれ、メモリセルＩＤ０、ＩＤ１には、スピンセル１２（Ｎ１２）との間の相互作用の係数が書き込まれる。また、図７において説明したスピンの値ＮＵは、スピンセル１２（Ｎ１０）から供給され、スピンの値ＮＬは、スピンセル１２（Ｎ０１）から供給され、スピンの値ＮＲは、スピンセル１２（Ｎ２１）から供給され、スピンの値ＮＤは、スピンセル１２（Ｎ１２）から供給される。
【０１４１】
また、図７に示したメモリセルＮに保持されているスピンの値は、値ＮＵとして、スピンセル１２（Ｎ１２）に供給され、値ＮＬとして、スピンセル１２（Ｎ０１）に供給され、値ＮＲとして、スピンセル１２（Ｎ２１）へ供給され、値ＮＤとして、スピンセル１２（Ｎ１０）へ供給される。他のスピンセルにおいても、同様に、周辺に配置されたスピンセルとの間の相互作用係数がメモリセルに書き込まれ、周辺に配置されたスピンセルからのスピンの値が供給される。また、周辺のスピンセルに対して、スピンの値を供給する。
【０１４２】
図１４に戻って説明を続ける。図１４において、１４０２−１〜１４０２−４のそれぞれは、選択線である。この実施の形態においては、選択線１４０２−１〜１４０２−４のそれぞれは、スピンセル１２のマトリクスにおいて、それぞれの行（行０〜行４）に配置され、行に配置されたスピンセル１２に接続されている。スピンセル１２（Ｎ１１）の例では、選択線１４０２−２は、図７に示した調整回路８に接続され、選択信号ＳＥＬｉ（ＳＥＬ２）を調整回路８へ供給する。
【０１４３】
図１４において、１５は、アドレスデコーダを含む制御回路を示しており、制御装置１４００から供給されるアドレス信号１４０３をデコードし、デコードした結果を、ワード線ドライブ回路１３−１〜１３−４およびカラム回路１４へ供給する。また、制御回路１５は、スピンセルに対する読み出し／書き込みを制御する書き込みイネーブル信号を含む制御信号１４０４を受けて、読み出し／書き込みを制御するイネーブル信号をカラム回路１４へ供給する。
【０１４４】
スピンセル１２内に含まれているメモリセル９に対して書き込みあるいは読み出しを行う場合、制御回路１５は、アドレス信号１４０３をデコードし、デコード結果をワード線ドライブ回路１３−１〜１３−４およびカラム回路１４へ供給する。ワード線ドライブ回路１３−１〜１３−４は、供給されたデコード結果に従って、複数のワード線ＷＬ０〜ＷＬ４３のうちから１本のワード線をハイレベルにし、残りのワード線をロウレベルにする。これにより、スピンセル１２のマトリクスから１つの行が選択され、さらに選択された行に配置されている複数のスピンセルのそれぞれから、１個のメモリセルが選択され、選択されたメモリセルにおいてクロス接続されたインバータ回路が、相補データ線対ＢＬ１〜ＢＬ４に接続される。
【０１４５】
カラム回路１４は、供給されたデコード結果に従って、相補データ線対ＢＬ１〜ＢＬ４のうちの１対の相補データ線対を選択する。また、カラム回路１４は、供給されているイネーブル信号が読み出しを指示している場合、選択した相補データ線対間の電圧差を増幅して、読み出しデータとして出力する。一方、イネーブル信号が書き込みを指示している場合には、供給された書き込みデータに応じた信号を、選択した１対の相補データ線対に供給する。これにより、アドレス信号により指定されたスピンセル１２内のメモリセル９に対して、データの書き込みおよびデータの読み出しが行われる。なお、図１４においては、書き込みデータ、読み出したデータは、１４０５として示されている。
【０１４６】
図１４において、２１は、図５に示した制御回路である。制御回路２１は、ＡＮＤ指定情報およびＯＲ指定情報を受け、選択線１４０２−１〜１４０２−４に対して選択信号ＳＥＬｉを供給する。図５において説明したように、ＡＮＤ指定情報およびＯＲ指定情報に基づいて、選択信号ＳＥＬｉを形成する。スピンセル１２のそれぞれにおける調整回路８は、選択信号ＳＥＬｉに従って、ＡＮＤ回路６の出力、ＯＲ回路７の出力あるいはスルーを選択して、隣接するスピンセル１２のメモリ回路４へ供給する。
【０１４７】
制御装置１４００は、使用者の指示に従って、アドレス信号１４０３、制御信号１４０４を、各半導体集積回路装置２３−１〜２３−ｎへ供給する。また、各半導体集積回路装置２３−１〜２３−ｎに対して、書き込みデータの供給および読み出しデータの受信を行う。また、制御回路１４００は、ＡＮＤ指定情報およびＯＲ指定情報を形成して、各半導体集積回路装置２３−１〜２３−ｎへ供給する。
【０１４８】
スピンセル１２（Ｎ１１）内の１１個のメモリセル１２（Ｎ、ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）に、スピンの値、外部磁場係数および相互作用係数を書き込む場合、あるいは読み出しを行う場合を例にして説明すると、次のようになる。
【０１４９】
先ず、書き込みを行う場合では、制御装置１４００は、半導体集積回路装置２３−１に対して、書き込みを指示するイネーブル信号と、スピンセル１２（Ｎ１１）内のメモリ９を特定するアドレス信号と、書き込むデータを供給する。半導体集積回路装置２３−１においては、供給されたアドレス信号に従って、ワード線ＷＬ［１１：２１］内のワード線ＷＬ（例えばＷＬ１１）はハイレベルにされ、残りのワード線はロウレベルにされる。また、供給されたアドレス信号に従った相補データ線対ＢＬ２が選択され、選択された相補データ線対ＢＬ２（図８の相補データ線ＢＬＴ、ＢＬＢ）に、書き込むデータに対応した信号が供給される。これにより、スピンセル１２（Ｎ１１）内のメモリセル９に対してデータの書き込みが行われる。
【０１５０】
次に、読み出しを行う場合では、制御装置１４００は、半導体集積回路装置２３−１に対して、読み出しを指示するイネーブル信号と、スピンセル１２（Ｎ１１）内のメモリ９を特定するアドレス信号を供給する。半導体集積回路装置２３−１においては、供給されたアドレス信号に従って、ワード線ＷＬ［１１：２１］内のワード線ＷＬ（例えばＷＬ１１）がハイレベルにされ、残りのワード線はロウレベルにされる。また、供給されたアドレス信号に従った相補データ線対ＢＬ２が選択され、選択された相補データ線対ＢＬ２間の電圧差が増幅され、半導体集積回路措置２３−１から制御装置１４００へ供給される。このようにして、スピンセル１２（Ｎ１１）内のメモリセル９からデータの読み出しが行われる。
【０１５１】
書き込みを行うメモリセルあるいは読み出しを行うメモリセルは、アドレス信号によって、スピンセル内の１１個のメモリセル９（Ｎ、ＩＳ０、ＩＳ１、ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）から選択される。そのため、メモリセル９（Ｎ）を対象のメモリセルとすれば、スピンセル１２（Ｎ１１）のスピンの値を書き込んだり、読み出したりすることができる。また、メモリセル９（ＩＳ０、ＩＳ１）を対象のメモリセルとすれば、外部磁場係数の書き込みが可能となる。さらに、対象のメモリセルとして、メモリセル９（ＩＵ０、ＩＵ１、ＩＬ０、ＩＬ１、ＩＲ０、ＩＲ１、ＩＤ０およびＩＤ１）を選べば、相互作用係数を書き込むことができる。
【０１５２】
勿論、必要であれば、格納されている外部磁場係数および／または相互作用係数を読み出すことも可能である。なお、外部磁場係数および相互作用係数のそれぞれは、複数個存在するため、時間的には、シリーズに書き込みあるいは読み出しを行うことになる。
＜制御フローチャート＞
【０１５３】
図１５および図１６は、変更データに含まれる論理値“１”および“０”の出現頻度を変更する場合の制御を示すフローチャート図である。それぞれのスピンセル１２（図５および図７では、１）に含まれるメモリ回路４は、調整回路８を介して、隣接するスピンセル１２内のメモリ回路４に接続されており、調整回路８の出力が、隣接するスピンセル１２内のメモリ回路４に書き込まれる。このように、それぞれのメモリ回路４は、調整回路を介して隣接するスピンセル内のメモリ回路４に直列的に接続され、シフトレジスタを構成している。一方、スピンセル１２内のメモリ回路４に格納されているデータ（ビット）の論理値は、スピンセル１２のメモリセル９（Ｎ）に格納されるスピンの値として、相互作用の演算結果に用いるのか演算結果を変更（反転）して用いるのかを定めるために使われる。複数のメモリ回路４により構成されるシフトレジスタに格納される変更データに含まれる論理値“１”または“０”の出現頻度を変更することにより、スピンセル１２に保持されるスピンの値を変更することが可能となり、イジング計算の過程において、演算が局所解の状態で停滞することを回避することが可能となる。
【０１５４】
この実施の形態においては、一例として図４および図６に示すように、メモリ回路４により構成されるレジスタに格納されるデータ（変更データ）において、論理値“１”が出現する比率が、時間の経過に伴って変更される。
【０１５５】
図１５は、図４に示すように、論理値“１”が出現する比率を変化させる際の制御を示すフローチャートを示している。
【０１５６】
先ず、ステップＳ１０１において、イジング計算機１００によりイジング計算を開始する。この開始の際には、制御装置１４００（図１４）によって、それぞれのスピンセル１２における複数のメモリセル９に、スピンの値、外部磁場係数および相互作用係数を格納しておく。また、制御装置１４００から、各半導体集積回路装置２３−１〜２３−ｎへＡＮＤ指定情報および／またはＯＲ指定情報を供給しておき、各半導体集積回路装置２３−１〜２３−ｎは、供給されたＡＮＤ指定情報および／またはＯＲ指定情報を、割合レジスタ２２Ａおよび２２Ｏに格納する。図４に示すように、時間の経過とともに、論理値“１”の比率を減少させるために、制御装置１４００は、所定の行数をＡＮＤ指定情報によって、半導体集積回路装置２３−１〜２３−ｎのそれぞれに供給する。半導体集積回路装置２３−１〜２３−ｎのそれぞれは、供給された所定の行数を割合レジスタ２２Ａに格納する。
【０１５７】
さらに、半導体集積回路装置２３−１〜２３−ｎのそれぞれにおける制御回路２１は、複数のメモリ回路４により構成されているシフトレジスタをシフト動作させ、このシフトレジスタに、変更データを供給する。ここで供給する変更データは、初期の変更データであり、論理値“１”と論理値“０”とを含むビット列である。この初期の変更データを、シフトレジスタに供給し、シフトレジスタの各段に格納されるように、順次シフトさせる。これにより、スピンセル１２のそれぞれにおけるメモリ回路４には、初期の変更データにおける論理値“１”または“０”のビットが格納される。初期の変更データをシフトレジスタに格納するとき、メモリ回路４により構成されるシフトレジスタとしてシフト動作させることになる。この場合には、それぞれのスピンセル１２における調整回路８は、例えばメモリ回路４の出力をスルーさせるように制御される（第２モード）。これにより、初期の変更データにおけるビットが、順次、スピンセル１２内のメモリ回路４へ供給される。
【０１５８】
次に、ステップＳ１０２において、制御回路２１は、割合レジスタ２２Ａ
に格納されている行数を読み出す。この場合、割合レジスタ２２Ａから読み出した行数であるため、ＡＮＤ回路６の出力を選択する行数であると判定し、制御回路２１は、調整回路８において、ＡＮＤ回路６の出力を選択する選択信号を形成し、選択線１４０２−１〜１４０２−４へ供給する。このとき、選択信号を供給する選択線の数が、割合レジスタ２２Ａから読み出した行数になるようにする（ステップＳ１０３）。
【０１５９】
ステップＳ１０３に続いて、ステップＳ１０４において、相互作用動作を、所定の時間実行し、ステップＳ１０５において、計算を終了する。
【０１６０】
ステップＳ１０４において、実行される相互作用動作では、図７において説明した相互作用の演算が行われる。すなわち、隣接するスピンセルからのスピンの値と相互作用係数と外部磁場係数とを用いた論理演算が行われ、演算結果に基づいた論理値が、メモリ９（Ｎ）にスピンの値として格納される。この動作が、所定の時間繰り返し、実行される。繰り返し実行されるこの動作において、論理演算結果の論理値は、メモリ回路４に格納されている変更データの論理値に従って、反転あるいは非反転され、論理演算結果に基づいた論理値として、メモリ９（Ｎ）に格納される。
【０１６１】
ＡＮＤ指定情報により指定された所定の行数の行のそれぞれにおいて、調整回路８は、メモリ回路４に格納されている論理値と、隣接した前段のスピンセルに設けられているメモリ回路４に格納されている論理値とのＡＮＤ演算を行い、隣接した次段のスピンセルに設けられているメモリ回路４に書き込む。これにより、メモリ回路４によって構成されたレジスタに格納されている初期の変更データに含まれていた論理値“１”の数は、時間の経過に伴って減少する。すなわち、図４に示すように、初期の変更データにおいて出現していた論理値“１”の比率が、時間の経過に伴って、０．５から徐々に減少する。
【０１６２】
図４では、変更データに含まれている論理値“１”の比率が減少するため、論理演算結果を反転して、スピンの値としてメモリセル９（Ｎ）へ格納する数が、時間の経過とともに減少することになる。
【０１６３】
図１６は、図６に示すように、論理値“１”が出現する比率を変化させる際の制御を示すフローチャートを示している。
【０１６４】
先ず、ステップＳ２０１において、計算を開始する。計算を開始するのに際しては、図１５のステップＳ１０１において述べたように、それぞれのスピンセル１２に、スピンの値、外部磁場係数および相互作用係数を格納する。また、メモリ回路４により構成されるシフトレジスタをシフト動作させ、初期の変更データをシフトレジスタに格納する。さらに、ＯＲ指定情報により指定された行数を、割合レジスタ２２Ｏに格納する。
【０１６５】
ステップＳ２０２において、制御回路２１は、割合レジスタ２２Ｏから行数を読み出す。割合レジスタ２２Ｏから読み出した行数であるため、制御回路２１は、スピンセル１２内の調整回路８が、ＯＲ回路７の出力を選択する選択信号を形成して、読み出した行数に対応する数の選択線に供給する（ステップＳ２０３）。
【０１６６】
次にステップＳ２０３において、相互作用動作を所定の時間実施する。ここでの相互作用動作は、図１５において述べた相互作用動作と類似している。すなわち、所定の時間、相互作用の演算動作を繰り返す。繰り返される演算動作において、演算結果に基づいた論理値が、メモリセル９（Ｎ）にスピンの値として格納される。格納に際して、演算結果は、メモリ回路４に格納されている変更データの論理値に従って、反転または非反転されて格納される。メモリ回路４に格納される変更データの論理値は、図１５ではＡＮＤ回路６の出力が選択されていたため、ステップＳ１０４において、時間の経過に伴って“１”が減少していた。
【０１６７】
これに対して、ステップＳ２０４では、ＯＲ指定情報により指定された所定の行数の行のそれぞれにおいて、調整回路８は、メモリ回路４に格納されている論理値と、隣接した前段のスピンセルに設けられているメモリ回路４に格納されている論理値とのＯＲ演算を行い、隣接した次段のスピンセルに設けられているメモリ回路４に書き込む。これにより、メモリ回路４によって構成されたレジスタに格納されている初期の変更データに対して、論理値“１”の数が、時間の経過に伴って増加する。すなわち、図６に示すように、初期の変更データにおいて出現していた論理値“１”の比率が、時間の経過に伴って、０．５から徐々に増加する（“ＯＲを選択”の期間）。
【０１６８】
レジスタに格納されている変更データにおいて、論理値“１”が増加することにより、論理演算結果が反転され、反転された論理値をスピンの値として格納するスピンセルの数が増加する。
【０１６９】
所定の時間が経過すると、次にステップＳ２０５を実行する。ステップＳ２０５においては、メモリ回路４により構成されたレジスタに格納されている変更データにおける論理値“１”の数が十分に増加したか否かの判定を行う。特に制限されないが、この実施の形態においては、制御装置１４００が、ステップＳ２０５の判定を行う。制御装置１４００は、半導体集積回路装置２３−１〜２３−ｎのそれぞれに対して、メモリ回路４により構成されたシフトレジスタをシフト動作させるように指示する。シフトレジスタとして動作させることにより、格納していた変更データを制御回路２１を介して制御装置１４００が受信する。制御装置１４００は、受信した変更データに含まれている論理値“１”の数を判定することにより、ステップＳ２０５を実行する。この場合、制御回路２１は、変更データを制御装置１４００へ供給した後、再びシフトレジスタに戻して、ステップＳ２０５の処理を開始する前の状態にし、さらにメモリ回路４がシフトレジスタを構成するようにする。
【０１７０】
このように、メモリ回路４により構成されるシフトレジスタをシフト動作させなくても、メモリ回路４に格納されている変更データを読み出すことは可能である。例えば、メモリセル９（Ｎ）と同様に、メモリ回路４に対してもワード線と相補データ線対を接続するようにし、メモリセル９（Ｎ）と同様に、アドレス信号によりメモリ回路４を選択し、相補データ線対を介して、変更データを読み出すようにしてもよい。
【０１７１】
ステップＳ２０５において、変更データに存在する論理値“１”の数が十分に増加していないと判定した場合には、再びステップＳ２０４を実行する。これにより、相互作用の演算動作の過程において、変更データに含まれる論理値“１”の数が増加される。なお、十分に増加しているか否かの判定は、論理値“１”の数が、所定の値よりも多いか少ないかを判定すればよい。
【０１７２】
ステップＳ２０５において、制御装置１４００が、変更データに格納されている論理値“１”の数が十分に増加したと判定し場合、制御装置１４００は、所定の行数を指定するＡＮＤ指定情報を、半導体集積回路装置２３−１〜２３−ｎの割合レジスタ２２Ａへ供給する。半導体集積回路装置のそれぞれにおける制御回路２１は、ステップＳ２０６において、割合レジスタ２２Ａに格納されている行数を読み出す。次に、制御回路２１は、スピンセル１２内の調整回路８において、ＡＮＤ回路６の出力が選択されるようにする制御信号を形成し、読み出した行数に対応する数の行に対応する選択線に供給する（ステップＳ２０７）。続いて、ステップＳ２０８において、所定の時間、相互作用動作を実行し、ステップＳ２０９で計算を終了させる。ステップＳ２０６〜Ｓ２０９は、図１５に示したステップＳ１０２〜Ｓ２０９と同様であるため、詳しい説明は省略する。
【０１７３】
なお、図１５に示したステップＳ１０４が実行されている期間、および図１６に示したステップＳ２０４およびＳ２０８のそれぞれが実行されている期間、制御回路２１は選択信号を継続して、選択線へ供給する。
【０１７４】
また、制御回路２１は、特に制限されないが、図１６に示したステップＳ２０３およびＳ２０４を実行するときは、割合レジスタ２２Ａから読み出した行数に対応する選択信号を形成し、継続して供給し、ステップＳ２０７およびＳ２０８を実行するときは、割合レジスタ２２Ｏから読み出した行数に対応する選択信号を形成し、継続して供給する。すなわち、この実施の形態においては、割合レジスタ２２Ａからの行数による選択線の選択と割合レジスタ２２Ｏからの行数による選択線の選択とは時間的に重ならない。
【０１７５】
図１６に示した制御を行うことにより、変更データに存在する論理値“１”の数は、図６に示すように、“ＯＲを選択”の期間においては増加する。論理値“１”の数が十分に増加した場合、図１５を用いて説明したのと同様に、変更データに存在する論理値“１”の数が減少させられる（“ＡＮＤを選択”の期間）。
【０１７６】
これにより、相互作用の論理演算結果は、演算の初期では、反転されてメモリセル９（Ｎ）へスピンの値として書き込まれる数が増加し、その後、反転されてメモリセル９（Ｎ）へスピンの値として書き込まれる数は減少する。
＜出現頻度変更例＞
【０１７７】
図１４に示した複数のスピンセル１２のそれぞれにおけるメモリ回路４（図７）は、調整回路８（図７）を介して、互いに直列的に接続され、シフトレジスタを構成している。図１４に示した制御装置１４００によって、形成されるＡＮＤ指定情報およびＯＲ指定情報により、図５および図７において説明したように、調整回路８は、ＡＮＤ回路６の出力、ＯＲ回路７の出力またはスルーを選択し、隣接するスピンセル内のメモリ回路へ書き込む。そのため、制御装置１４００において形成するＡＮＤ指定情報および／またはＯＲ指定情報を変更することにより、レジスタに含まれる所定の論理値（“１”または“０”）の出現頻度を変更することができる。以下、出現頻度を変更させる例を、さらに説明する。
【０１７８】
図１７（Ａ）および（Ｂ）は、所定の論理値として論理値“１”を変更させる例を示す図である。図１７（Ａ）および（Ｂ）において、横軸は時間を示し、縦軸は論理値“１”の比率を示している。
【０１７９】
図１７（Ａ）においては、イジング計算の開始時に、論理値“１”の比率が０．８程度となっている。ＡＮＤ指定情報によって、所定の行数分に配置されている複数のスピンセル１２内における調整回路８において、ＡＮＤ回路６の出力が選択されるようにする。このようにすることにより、時間が経過し、イジング計算が進行するのに合わせて、レジスタに保持されている変更データが変化する。ＡＮＤ回路６の出力が選択されている調整回路８に供給される変更データのビットの論理値は、ＡＮＤ回路６の出力の論理値に変更され、隣接するスピンセル内のメモリ回路４に書き込まれる。この変更と書き込みの動作が、時間の経過とともに繰り返される。そのため、シフトレジスタに含まれる論理値“１”の数が、時間の経過とともに減少する。その結果、図１７（Ａ）に示すように、シフトレジスタに含まれる論理値“１”の比率は、時間の経過とともに減少する。論理値“１”の比率が減少することにより、相互作用の演算によって求めた演算結果は、反転されずに、スピンの値として格納される確率が、時間の経過とともに高くなる。これにより、イジング計算が、局所解で停滞することを回避することが可能となる。
【０１８０】
図１７（Ｂ）には、イジング計算の初期段階では、ＡＮＤ指定情報により、所定の行数分の調整回路８において、ＡＮＤ回路６の出力を選択し、その後、ＯＲ指定情報により、所定の行数分の調整回路８において、ＯＲ回路７の出力を選択するようにした場合の論理値“１”の比率変化が、示されている。ここでも、イジング計算の開始のときには、シフトレジスタに含まれる論理“１”の比率は０．８程度とする。イジング計算の初期においては、ＡＮＤ指定情報により、所定数の行におけるスピンセル内の調整回路８が、ＡＮＤ回路６の出力を選択するようにされる。これにより、変更データのうち、ＡＮＤ回路６を選択している調整回路８に供給されるビットの論理値は、ＡＮＤ回路６の出力の論理値へ変更され、シフトレジスタの次段のメモリ回路４に格納される。時間の経過に伴って、この動作が繰り返され、シフトレジスタにおける変更データに含まれる論理“１”は、徐々に減少する。
【０１８１】
時刻ｔ１になったときに、制御装置１４００によって、半導体集積回路装置２３−１に含まれているスピンセル１２におけるメモリセル９（Ｎ）からスピンの値を読み出す。この場合、特に制限されないが、半導体集積回路装置２３−１に含まれている全てのスピンセル１２におけるメモリセル９（Ｎ）からスピンの値を読み出す。読み出したスピンの値を用いて、先に示した式（１）の演算を制御装置１４００において行い、エネルギーＥを求める。この場合、相互作用係数および外部磁場係数は、制御装置１４００が、予め各メモリセルに書き込んだため、書き込んだときの相互作用係数および外部磁場係数を用いて、式（１）の演算を実行することが可能である。そのため、時刻ｔ１において、相互作用係数および外部磁場係数を読み出す必要はなく、高速化を図ることが可能となる。
【０１８２】
時刻ｔ１において求めたエネルギーＥが所定の値まで低下しているか否かのチェックを行う。所定の値までエネルギーＥが低下していなかった場合には、ＯＲ指定情報によって、所定の行数分におけるスピンセル内の調整回路８が、ＯＲ回路７の出力を選択するようにする。これにより、時間の経過とともに、シフトレジスタに格納されている変更データが変化する。すなわち、ＯＲ回路７の出力を選択している調整回路８へ供給されている変更データのビットの論理値は、ＯＲ回路７の出力の論理値へ変更され、隣接するスピンセル内のメモリ回路４へ書き込まれる。ＯＲ回路７の出力の論理値への変更と、メモリ回路４への書き込みが、時間の経過とともに繰り返される。そのため、変更データに含まれる論理値“１”の数が、時間の経過とともに、増加する。すなわち論理値“１”の比率が上昇する。
【０１８３】
シフトレジスタにおける論理値“１”の比率が、所定の値（例えば０．５程度）まで上昇した時点で、再度、ＡＮＤ指定情報によって、所定の行数分のスピンセルにおける調整回路８がＡＮＤ回路６の出力を選択するようにする。これにより、再び、論理値“１”の比率は、時間の経過とともに、減少する。
【０１８４】
一方、時刻ｔ１において、求めたエネルギーが所定の値まで低下していた場合には、例えば、ＡＮＤ指定情報によって、継続してＡＮＤ回路６の出力が選択されるようにする。この場合には、図１７（Ａ）と同様な比率の変化となる。
【０１８５】
このように、イジング計算の過程において、エネルギーＥをチェックすることにより、エネルギーＥが所定の値まで低下しておらす、局所解で停滞している場合、スピンの値を変更する数を増やすことが可能となり、局所解で停滞することから脱することが可能となる。
【０１８６】
この実施の形態においては、スピンの値として格納される、相互作用の演算結果の論理値を、変更するか否かを定める論理値が、それぞれメモリ回路４に格納される。これらのメモリ回路４によって、シフトレジスタが構成され、変更するか否かを定める論理値のビット列が変更データとして、シフトレジスタに供給される。そのため、変更データとして、任意のビット列を供給することにより、シフトレジスタを構成するそれぞれのメモリ回路４には、任意の論理値を格納することが可能となる。これにより、相互作用の演算の際に用いられるスピンの値を任意の論理値を変更することが可能となり、局所解の状態に陥るのを低減することが可能となる。また、相互作用の演算結果の論理値を変更する反転論理回路ＬＧと、メモリ回路４とを用いることにより、局所解の状態に陥るのを低減することが可能なため、回路規模の増加を抑制することが可能となる。
【０１８７】
また、この実施の形態においては、調整回路８によって、シフトレジスタを構成するメモリ回路４に書き込まれる論理値をＡＮＤ回路６の出力、ＯＲ回路７の出力等へ変更することが可能とされている。これにより、メモリ回路４により構成されるシフトレジスタに所定の論理値が出現する頻度を調整することが可能となされている。調整回路により所定の論理値が出現する頻度を調整することが可能なため、回路規模の増加を抑制しながら、局所解の状態に陥るのを低減することが可能となる。
（実施の形態２）
【０１８８】
図１８は、実施の形態２に係わる半導体集積回路装置２３の構成を示すブロック図である。図１８に示した半導体集積回路装置２３は、図５に示した半導体集積回路装置の構成と類似している。そのため、ここでは、相違点を主に説明する。
【０１８９】
図５に示した半導体集積回路装置に対して、実施の形態２に係わる半導体集積回路装置２３においては、スピンセル１のそれぞれにメモリ回路１８００（初期値メモリ回路）が追加されている。この実施の形態２においては、それぞれのスピンセル１におけるメモリ回路１８００も、破線で示されている様に、互いに直列的に接続され、シフトレジスタを構成している。複数のメモリ回路１８００が直列的に接続されて構成されたシフトレジスタには、制御回路２１から初期の変更データ１８０１が、ビット列として供給される。
【０１９０】
制御回路２１から、メモリ回路１８００により構成されたシフトレジスタに初期の変更データを供給し、シフト動作を行う。これにより、メモリ回路１８００のそれぞれに、初期値（ビット）が格納される。この実施の形態においては、メモリ回路１８００により構成されたシフトレジスタに供給される初期の変更データ１８０１と、メモリ回路１０により構成されたシフトレジスタに供給される初期の変更データ（ビット列）とは、同じにされている。また、同じスピンセル１に設けられた、メモリ回路４に対して、メモリ回路１８００に格納されている論理値を供給し、書き込むことが可能とされている。
【０１９１】
実施の形態１において説明したように、メモリ回路４には、隣接するスピンセル１における調整回路８（選択スイッチ５、ＡＮＤ回路６およびＯＲ回路７）の出力が供給され、調整回路８の出力が書き込まれる。これにより、メモリ回路４によって構成されたシフトレジスタに格納されている変更データは、初期の変更データから、変更される。すなわち、変更データにおける論理値“１”と論理値“０”のビット列のパターンは、時間の経過とともに変更される。これにより、メモリ回路４により構成されたシフトレジスタに格納されている変更データには、例えば論理値“１”あるいは論理値“０”の数に偏りが生じ、調整回路８に設けられているＡＮＤ回路６および／またはＯＲ回路７を用いても、偏りを調整することが困難になることが考えられる。例えば、時間が経過して、メモリ回路４により構成されるシフトレジスタに格納されている変更データに、論理値“１”の数が極端に増加した場合には、ＡＮＤ回路６を用いても、論理値“１”の数を減らすことが困難になる。同様に、論理値“０”の数が極端に増加した場合も、ＯＲ回路７によって、論理値“０”を減らすことは困難になる。
【０１９２】
このようなとき、メモリ回路１８００に格納されている初期の変更データを、メモリ回路４へ供給し、メモリ回路４に格納されている変更データを元に戻すことが可能となる。すなわち、メモリ回路１８００により構成されたシフトレジスタに保持されている初期の変更データを、メモリ回路４により構成されたシフトレジスタに書き込む。このようにすることにより、再度、初期の変更データを形成し、メモリ回路４により構成されたシフトレジスタに供給し、格納させる動作を無くすことが可能となる。
【０１９３】
図１８では、メモリ回路４により構成されたシフトレジスタに供給する初期の変更データもビット列として示してあるが、初期変更データ１８０１と当該ビット列とが同じである場合には、ビット列あるいは初期変更データ１８０１のいずれかを形成して、それぞれのシフトレジスタに供給するようにしてもよい。
【０１９４】
ＳＲＡＭ等のメモリ回路においては、半導体集積回路装置２３に電源電圧Ｖｄが給電されたとき、メモリ回路を構成するＰ型ＭＯＳＦＥＴおよび／またはＮ型ＭＯＳＦＥＴの特性のバラツキによって、ランダムに論理値“１”あるいは“０”を保持する。これを利用して、初期の変更データを形成するようにしてもよい。それぞれのメモリ回路１８００として、例えばＳＲＡＭを用い、電源電圧Ｖｄが給電されたときに、それぞれのメモリ回路１８００に保持されている論理値を、初期の変更データの論理値とする。この場合には、制御回路２１において、初期変更データを形成しなくてもよい。すなわち、電源電圧Ｖｄが供給されたときに、メモリ回路１８００により構成されたシフトレジスタに格納されているビット列を初期の変更データとし、このシフトレジスタに格納されている初期の変更データを、メモリ回路４により構成されたシフトレジスタに書き込む。これにより、メモリ回路４により構成されたシフトレジスタにも初期の変更データが格納されることになる。
【０１９５】
実施の形態１および２においては、複数のメモリ回路４を直列的に接続することにより構成したレジスタをシフトレジスタと称している。周知のシフトレジスタにおいては、シフト動作により、データが順次、例えば前段のメモリ回路から後段のメモリ回路へ移動し、書き込まれる。データが移動することにより、シフトレジスタの初段のメモリ回路には、特定のデータあるいは新たなデータが書き込まれことになる。実施の形態１および２において述べているシフトレジスタにおいては、シフト動作のとき、初段のメモリ回路へのデータの供給は行われず、新たなデータの書き込みが行われず、初期の変更データの論理値が、初段のメモリ回路に維持される。また、実施の形態１および２においては、調整回路８の出力がメモリ回路４に順次書き込まれる構成を示しているが、例えばメモリ回路４が、クロック信号ＣＬＫＩの電圧変化に応答して、調整回路８からの出力を取り込み、書き込むようにしてもよい。すなわち、クロック信号ＣＬＫＩに同期して、シフトレジスタがシフト動作を行うようにしてもよい。実施の形態１および２においては、所定の論理値（“１”）の出現頻度を変更するために、変更データを変更するとき、制御回路２１において新たな変更データ（変更後の変更データ）を形成して、メモリ回路４により構成されたシフトレジスタへ供給する必要がない。これにより、制御回路２１の構成の簡素化を図ることが可能である。また、制御回路２１において、新たな変更データを形成する必要がないため、形成に要する時間の短縮化を図ることが可能である。
【０１９６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、例えば、所定の論理値は、２値信号“１”であっても、２値信号“０”であってもよい。さらに、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。
【符号の説明】
【０１９７】
１、１２  スピンセル
２、２３、２３−１〜２３−ｎ  半導体集積回路装置
３  相互作用
４、１８００  メモリ回路
５  選択スイッチ
６  ＡＮＤ回路
７  ＯＲ回路
８  調整回路
９  メモリセル
１０  演算回路
１３−１〜１３−４  ワード線ドライブ回路
１４  カラム回路
１５、２１  制御回路
２２Ａ、２２Ｏ  割り当てレジスタ
１００  イジング計算機
１４００  制御装置
１４０１  変更データ
１４０２−１〜１４０２−４  選択線
１４０３  アドレス信号
１４０４  制御信号
１４０５  読み出しデータ、書き込みデータ
ＬＧ  反転論理回路
ＷＬ  ワード線
ＢＬ１〜ＢＬ４  相補データ線対
ＢＬＴ、ＢＬＢ  相補データ線
ＥＯＲＵ、ＥＯＲＬ、ＥＯＲＲ、ＥＯＲＤ  排他的論理和
ＩＳＵ、ＩＵＵ、ＩＬＵ、ＩＲＵ、ＩＤＵ  単位排他論理回路
ＩＳＢＵ、ＩＵＢＵ、ＩＬＢＵ、ＩＲＢＵ、ＩＤＢＵ  単位排他論理回路
ＳＷＳ、ＳＷＵ、ＳＷＬ、ＳＷＲ、ＳＷＤ  スイッチ
【図１】
2016035171.tif 000003
【図２】
2016035171.tif 000004
【図３】
2016035171.tif 000005
【図４】
2016035171.tif 000006
【図５】
2016035171.tif 000007
【図６】
2016035171.tif 000008
【図７】
2016035171.tif 000009
【図８】
2016035171.tif 000010
【図９】
2016035171.tif 000011
【図１０】
2016035171.tif 000012
【図１１】
2016035171.tif 000013
【図１２】
2016035171.tif 000014
【図１３】
2016035171.tif 000015
【図１４】
2016035171.tif 000016
【図１５】
2016035171.tif 000017
【図１６】
2016035171.tif 000018
【図１７】
2016035171.tif 000019
【図１８】
2016035171.tif 000020
【手続補正書】
【提出日】平成29年2月14日(2017.2.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
メモリ回路４の出力は、２入力のＡＮＤ回路６および２入力のＯＲ回路７のそれぞれの一方の入力と、選択スイッチ５の入力とに供給されている。また２入力のＡＮＤ回路６および２入力のＯＲ回路７のそれぞれの他方の入力には、隣接するスピンセル１におけるメモリ回路４の出力が供給される。ここで説明しているスピンセル１は、列Ｃ１で行Ｒｎに配置されているため、隣接するスピンセル１としては、列Ｃ１で行Ｒｎ＋１に配置されたスピンセル１（列Ｃ１、行Ｒｎ＋１）が該当し、そのスピンセル１におけるメモリ回路４の出力が、ＡＮＤ回路６およびＯＲ回路７のそれぞれの他方の入力に供給されている。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
変更データ、すなわちメモリ回路４によって構成されるシフトレジスタに格納されているビット列における所定の論理値（“１”）の出現頻度は、ＡＮＤ指定情報およびＯＲ指定情報によって定める。所定の論理値の出現頻度を下げる場合には、ＡＮＤ指定情報により、選択スイッチ５によってＡＮＤ回路６の出力が選択される割合を上昇させる。これにより、隣接するメモリ回路４の値との間で求めた論理積の結果が、次の段のメモリ回路４に書き込まれることになる。前段および前々段のメモリ回路４間で論理積を求めると、前段および前々段のメモリ回路４の値がともに“１”の場合に“１”が出力され、前段および前々段のメモリ回路４の一方、または、両方が“０”の場合には“０”が出力される。そのため、前段および前々段のメモリ回路４間で求められた論理積の結果は、２値信号“０”が出力される確率が高く、メモリ回路４に書き込まれる論理値は、２値信号“０”となる確率が高くなる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
一方の直列回路を構成するＮ型ＭＯＳＦＥＴＴ１のゲートには、隣接するスピンセルからのスピンの値に対応した信号ＮＵＴが供給され、Ｎ型ＭＯＳＦＥＴＴ３のゲートには、当該隣接するスピンセルとの間の相互作用係の信号ＩＵ１Ｔが供給されている。また、他方の直列回路を構成するＮ型ＭＯＳＦＥＴＴ２のゲートには、信号ＮＵＴに対して反転された信号ＮＵＢが供給され、Ｎ型ＭＯＳＦＥＴＴ４のゲートには、信号ＩＵ１Ｔに対して反転された信号ＩＵ１Ｂが供給されている。また、Ｎ型ＭＯＳＦＥＴＴ５のゲートには、隣接するスピンセルとの間の相互作用係数の信号ＩＵ０が供給されている。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
例えば、ワード線ＷＬ１１が、図７におけるメモリセル９（Ｎ）に接続されている。同様に、ワード線ＷＬ１２は、メモリセル９（ＩＳ０）に、ワード線ＷＬ１３は、メモリセル９（ＩＳ１）に、ワード線ＷＬ１４は、メモリセル９（ＩＵ０）に、ワード線ＷＬ１５は、メモリセル９（ＩＵ１）に、ワード線ＷＬ１６は、メモリセル９（ＩＬ０）に、ワード線ＷＬ１７は、メモリセル９（ＩＬ１）に、ワード線ＷＬ１８は、メモリセル９（ＩＲ０）に、ワード線ＷＬ１９は、メモリセル９（ＩＲ１）に、ワード線ＷＬ２０は、メモリセル９（ＩＤ０）に、ワード線ＷＬ２１は、メモリセル９（ＩＤ１）に、それぞれ接続されている（図７，図１４）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１４１
【補正方法】変更
【補正の内容】
【０１４１】
また、図７に示したメモリセルＮに保持されているスピンの値は、値ＮＵとして、スピンセル１２（Ｎ１２）に供給され、値ＮＬとして、スピンセル１２（Ｎ２１）に供給され、値ＮＲとして、スピンセル１２（Ｎ０１）へ供給され、値ＮＤとして、スピンセル１２（Ｎ１０）へ供給される。他のスピンセルにおいても、同様に、周辺に配置されたスピンセルとの間の相互作用係数がメモリセルに書き込まれ、周辺に配置されたスピンセルからのスピンの値が供給される。また、周辺のスピンセルに対して、スピンの値を供給する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１６０
【補正方法】変更
【補正の内容】
【０１６０】
ステップＳ１０４において、実行される相互作用動作では、図７において説明した相互作用の演算が行われる。すなわち、隣接するスピンセルからのスピンの値と相互作用係数と外部磁場係数とを用いた論理演算が行われ、演算結果に基づいた論理値が、メモリセル９（Ｎ）にスピンの値として格納される。この動作が、所定の時間繰り返し、実行される。繰り返し実行されるこの動作において、論理演算結果の論理値は、メモリ回路４に格納されている変更データの論理値に従って、反転あるいは非反転され、論理演算結果に基づいた論理値として、メモリセル９（Ｎ）に格納される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１７２
【補正方法】変更
【補正の内容】
【０１７２】
ステップＳ２０５において、制御装置１４００が、変更データに格納されている論理値“１”の数が十分に増加したと判定した場合、制御装置１４００は、所定の行数を指定するＡＮＤ指定情報を、半導体集積回路装置２３−１〜２３−ｎの割合レジスタ２２Ａへ供給する。半導体集積回路装置のそれぞれにおける制御回路２１は、ステップＳ２０６において、割合レジスタ２２Ａに格納されている行数を読み出す。次に、制御回路２１は、スピンセル１２内の調整回路８において、ＡＮＤ回路６の出力が選択されるようにする制御信号を形成し、読み出した行数に対応する数の行に対応する選択線に供給する（ステップＳ２０７）。続いて、ステップＳ２０８において、所定の時間、相互作用動作を実行し、ステップＳ２０９で計算を終了させる。ステップＳ２０６〜Ｓ２０９は、図１５に示したステップＳ１０２〜Ｓ１０５と同様であるため、詳しい説明は省略する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１９０
【補正方法】変更
【補正の内容】
【０１９０】
制御回路２１から、メモリ回路１８００により構成されたシフトレジスタに初期の変更データを供給し、シフト動作を行う。これにより、メモリ回路１８００のそれぞれに、初期値（ビット）が格納される。この実施の形態においては、メモリ回路１８００により構成されたシフトレジスタに供給される初期の変更データ１８０１と、メモリ回路４により構成されたシフトレジスタに供給される初期の変更データ（ビット列）とは、同じにされている。また、同じスピンセル１に設けられた、メモリ回路４に対して、メモリ回路１８００に格納されている論理値を供給し、書き込むことが可能とされている。
【国際調査報告】
2016035171.tif 000021
2016035171.tif 000022