JP6605610B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP6605610B2
JP6605610B2 JP2017536145A JP2017536145A JP6605610B2 JP 6605610 B2 JP6605610 B2 JP 6605610B2 JP 2017536145 A JP2017536145 A JP 2017536145A JP 2017536145 A JP2017536145 A JP 2017536145A JP 6605610 B2 JP6605610 B2 JP 6605610B2
Authority
JP
Japan
Prior art keywords
spin
circuit
interaction
random number
ising
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2017536145A
Other languages
English (en)
Other versions
JPWO2017033326A1 (ja
Inventor
拓哉 奥山
雅直 山岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2017033326A1 publication Critical patent/JPWO2017033326A1/ja
Application granted granted Critical
Publication of JP6605610B2 publication Critical patent/JP6605610B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1655Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1657Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

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 Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Logic Circuits (AREA)
  • Mram Or Spin Memory Techniques (AREA)

Description

本発明は、半導体装置および情報処理装置に関し、特に、相互作用モデルの計算を行う半導体装置と、その半導体装置をアクセラレータとして制御する情報処理装置に適用して好適なものである。
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。
物理学の世界で代表的な相互作用モデルの例として、イジングモデルをあげることができる。イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは、+1/−1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数、および、スピン毎にある外部磁場係数で定義される。
イジングモデルは、与えられたスピン配列、相互作用係数、および、外部磁場係数から、その時のエネルギーを計算することができる。イジングモデルのエネルギー関数は一般的に次式で表わされる。
Figure 0006605610
なお、σ、σはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hはi番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。
(1)式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。そのため、第一項ではi<jを満たすσ、σの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。
イジングモデルの基底状態探索は、イジングモデルのエネルギー関数(一般にハミルトニアンとも呼ばれる)を最小化するスピン配列を求める最適化問題である。非平面グラフで表されるイジングモデルの基底状態探索はNP困難であることが知られている。近年、この問題を効率的に解くため基底状態を探索する装置が提案されている(特許文献1)。
国際公開第2014/192153号
一般に、最適化問題を解くアルゴリズムとしてシミュレーティッド・アニーリング法(以降、SA法と呼ぶ)が知られている。SA法は、遷移確率に基づく近傍探索と、温度スケジューリングで構成される。
近傍探索では、現在の状態σの近傍のある状態σ’へ確率的に遷移を繰り返す。エネルギーの低い状態へ常に遷移すると局所解に陥る可能性があるため、確率的に状態を遷移する。エネルギーの高い状態に対しても同様である。状態σから状態σ’へ遷移する確率を、遷移確率P(σ,σ’)と呼ぶ。この計算方法として、熱浴法やメトロポリス法が知られている。例えば、熱浴法の遷移確率は(2)式である。
Figure 0006605610
Tは一般に温度と呼ばれるパラメータで、状態間の遷移し易さを表す。SA法の初期状態ではTを大きな値に設定し、徐々に減少させつつ確率的な状態遷移を繰り返す。これにより、最適解または最適解に充分近い近似解へ漸近的に収束する。
しかしながら、前述した特許文献1に開示された装置では、SA法が満たすべき釣り合い条件に反した確率的アルゴリズムを採用している。これはSA法の遷移確率の計算を省略したアルゴリズムであり、この結果、装置で得る解の精度が低くなる課題が発生する。また、高精度の解を得るためには遷移回数を増加させなければならず、計算時間を短縮することが困難である。
熱浴法が要求する遷移確率を加算器および乗算器で求め、一様乱数と比較することにより、この課題は解決される。しかし、回路面積が増加し、スケーラビリティおよびエネルギー効率が低下するだけでなく、安価に製造できないという問題がある。
そこで、熱浴法が求める非線形演算に基づく確率的な処理を過度に簡略化せず、回路面積の小さなハードウェアで精度良く実現することが求められる。
本発明の目的は、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
一実施の形態における半導体装置は、非線形演算を行う半導体装置である。前記半導体装置は、メモリと、前記メモリからデータを読む読み出し部と、前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、前記多数決回路の出力を入力する書き込み回路と、を備え、前記多数決回路の前段で所定の信号の値を確率的に反転する。
一実施の形態における別の半導体装置は、相互作用モデルの計算を行う半導体装置である。前記半導体装置は、それぞれ1または複数の値を保持する複数のメモリと、前記複数のメモリからデータを読む読み出し部と、前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、前記多数決回路の出力を入力する書き込み回路と、を備え、前記多数決回路の前段で所定の信号の値を確率的に反転する。
一実施の形態における情報処理装置は、CPU、主メモリ、記憶装置、およびアクセラレータとして動作可能な半導体装置を、システムバスを介して接続した情報処理装置である。前記半導体装置は、非線形演算を行う半導体装置であり、前記一実施の形態における半導体装置と同様の構成を備える。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下の通りである。
一実施の形態によれば、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置を提供することができる。
実施の形態1における半導体装置を含む情報処理装置の全体構成の一例を示すブロック図である。 実施の形態1において、マルチイジングチップの構成の一例を示すブロック図である。 実施の形態1において、イジングチップの構成の一例を示すブロック図である。 実施の形態1において、3次元格子のスピンアレイの構成の一例を説明する概念図である。 実施の形態1において、スピンアレイの構成の説明に供する概念図である。 実施の形態1において、スピンアレイの構成の説明に供する概念図である。 実施の形態1において、スピンユニットの構成の一例を示すブロック図である。 実施の形態1において、スピンユニットの構成の一例を示すブロック図である。 実施の形態1において、イジングチップ上のスピンユニットの配置の一例を示すブロック図である。 実施の形態1において、図7に示すスピンユニットの説明に供する、イジングモデルの図である。 実施の形態1において、図7に示すスピンユニット内の一箇所を抽出したブロック図である。 実施の形態1において、係数とスピン値による計算結果の説明に供する概念図である。 実施の形態1において、係数とスピン値による計算結果の説明に供する概念図である。 実施の形態1において、スピンユニットに注入する乱数の説明に供する図である。 実施の形態1において、スピンユニットに注入する乱数の説明に供する図である。 実施の形態1において、基底状態探索処理の処理手順を示すフローチャートである。 実施の形態1において、スピンユニットに注入する乱数の制御法の説明に供する図である。 実施の形態1において、スピンユニットに注入する乱数の制御法の説明に供する図である。 実施の形態2におけるスピンユニットの構成の一例を示すブロック図である。 実施の形態2において、スピンユニットに注入する乱数の説明に供する図である。 実施の形態3におけるスピンユニットの構成の一例を示すブロック図である。 実施の形態4におけるスピンユニットの構成の一例を示すブロック図である。
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
以下、実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
[実施の形態1]
実施の形態1は、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置に関する。
<(1)相互作用モデル>
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。
また、相互作用モデルの特徴として、ノード間の影響を2個のノード間の相互作用に限定している(2体間の相互作用)ことがあげられる。例えば、宇宙空間にある惑星の力学を考えてみると、惑星というノードの間に万有引力による相互作用がある点で相互作用モデルの一種とも解釈できるが、惑星間の影響は2個の惑星間にとどまらず、3個以上の惑星が互いに影響し合って複雑な挙動を示す(いわゆる3体問題や多体問題と言われる問題になる)。
物理学の世界で代表的な相互作用モデルの例として、イジングモデルをあげることができる。イジングモデルとは、+1/−1(ないしは上、下など)の2状態を取るスピンをノードとして、2個のスピン間の相互作用を決める相互作用係数と、個々のスピンに対するバイアスである外部磁場係数でモデルが定義される。
また、生物学の世界では、脳をモデル化したニューラルネットワークが相互作用モデルの一例である。ニューラルネットワークは、神経細胞のニューロンを模した人工ニューロンをノードとして、人工ニューロン間はシナプス結合という相互作用を持つ。また、各ニューロン毎にバイアスを与える場合もある。
社会科学の世界では、例えば人間のコミュニケーションを考えると、人間というノードと言語や通信で成される相互作用があることは容易に理解できよう。また、各人間には個別にバイアスがあることも想像できる。そのため、人間のコミュニケーションを、相互作用モデルという点で共通なイジングモデル等に模してその特性を明らかにしようという研究もなされている。
以下においては、イジングモデルの基底状態探索を行う半導体装置と、その半導体装置をアクセラレータとして制御する情報処理装置の例を説明する。
<(2)有向グラフに拡張したイジングモデル>
本実施の形態では、イジングモデルを拡張した、以下の(3)式で示されるモデルを、以降イジングモデルと呼ぶ。
Figure 0006605610
(1)式で示したイジングモデルとの違いは、(3)式では有向グラフで示されるような相互作用が許されることにある。一般的に、イジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jとj番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
本発明はイジングモデルを拡張し、Ji,jとJj,iを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも(1)式のエネルギー関数に対して(3)式のエネルギー関数ではエネルギーの値が2倍になる。
<(3)本実施の形態における情報処理装置の構成>
<<(3−1)半導体装置を含む情報処理装置の全体構成>>
半導体装置を含む情報処理装置の全体構成について、図1および図2を用いて説明する。図1は、本実施の形態1における半導体装置を含む情報処理装置の全体構成の一例を示すブロック図である。図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が格納される。問題変換プログラムは、かかる問題のイジングモデルを必要に応じて複数の部分問題に分割し、これらの部分問題を個々のマルチイジングチップ6にそれぞれ振り分けるプログラムである。またマルチイジングチップ制御プログラム9は、個々のマルチイジングチップ6において対応する部分問題を解くための制御を行うためのプログラムである。部分問題は、それ自体が他の部分問題と独立した単一のイジングモデル形式の問題である。
なお、イジングモデル形式でない問題データをイジングモデル形式の問題データ7に変換するプログラムをメモリ4に格納しておくようにしてもよい。このようにすることによりイジングモデル形式でない問題についても対応可能となり、本情報処理装置1の有用性を向上させることができる。
マルチイジングチップ6は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるGPU(Graphics Processing Unit)のように、情報処理装置1に装着する拡張カードの形態を取る。
本実施の形態において、マルチイジングチップ6は、本発明の非線形演算を行う半導体装置に対応する。このマルチイジングチップ6は、情報処理装置1において、アクセラレータとして動作可能な半導体装置である。
マルチイジングチップ6は、図2に示すように、インタフェース(I/F)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にそれぞれ与えられる。
<<(3−2)イジングチップの構成>>
イジングチップの構成について、図3を用いて説明する。図3は、本実施の形態1において、イジングチップの構成の一例を示すブロック図である。
図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は、後述のようにスピンアレイ20内のメモリから読み出したデータ、またはこのデータに所定の演算を行った結果を確率的に反転させるため、乱数を注入する乱数注入線38を有する。図2について上述した乱数発生器17により発生された乱数は、この乱数注入線38を介してスピンアレイ20に与えられる。
チップ間接続部24は、隣接して配置されたイジングチップ13との間で必要なスピンσの値を送受する際のインタフェースとして機能する。
<<(3−3)スピンアレイの構成>>
スピンアレイの構成について、図4を用いて説明する。図4は、本実施の形態1において、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スピンとの相互作用係数Ji,1、Ji,2、Ji,3、Ji,4、Ji,5)をそれぞれ保持するメモリセルも有している。
<<(3−4)スピンユニットの構成>>
スピンユニットの構成について、図5〜図9を用いて説明する。図5および図6は、本実施の形態1において、スピンアレイの構成の説明に供する概念図である。図7および図8は、本実施の形態1において、スピンユニットの構成の一例を示すブロック図である。図9は、本実施の形態1において、イジングチップ上のスピンユニットの配置の一例を示すブロック図である。
スピンユニット40の一構成例を図7および図8を用いて説明する。スピンユニット40は2つの側面をもっており、便宜上、図7および図8に分けて説明するが、1個のスピンユニット40は図7および図8の構成の双方を含む。
図7は、スピンユニット40間の相互作用を実現するための回路を示している。図7に示すように、スピンユニット40は、回路ブロック46、XOR(排他的論理和)回路48、多数決回路44、セレクタ43およびメモリセルNを備えて構成される。回路ブロック46は、メモリセルH[u]、J[u](0≦u≦1、1≦k≦5)、XNOR(排他的論理和の否定)回路45を備える。XNOR回路45は、複数のXNORゲートで構成される。また、回路ブロック46には、メモリセルJ[u](0≦u≦1、1≦k≦5)とXNOR回路45との間に接続される複数のXNORゲートも含まれる。XOR回路48は、複数のXORゲートで構成される。
図7に示すスピンユニット40において、例えばメモリセルH[u](0≦u≦1)の部分では、メモリセルH[0]がXNOR回路45のXNORゲートの一方の入力に接続され、メモリセルH[1]がXNOR回路45のXNORゲートの他方の入力に接続されている。このXNOR回路45のXNORゲートの出力はXOR回路48のXORゲートの一方の入力に接続され、このXOR回路48のXORゲートの他方の入力には乱数信号線49が接続されている。また、メモリセルH[0]は直接XOR回路48の別のXORゲートの一方の入力に接続され、このXOR回路48の別のXORゲートの他方の入力には別の乱数信号線49が接続されている。
また、メモリセルJ[u](0≦u≦1)の部分では、他のスピンユニットからのスピンの値の信号線NとメモリセルJ[0]とが、メモリセルJ[0]とXNOR回路45との間のXNORゲートのそれぞれの入力に接続されている。このメモリセルJ[0]とXNOR回路45との間のXNORゲートの出力はXNOR回路45のXNORゲートの一方の入力に接続され、このXNOR回路45のXNORゲートの他方の入力にはメモリセルJ[1]が接続されている。このXNOR回路45のXNORゲートの出力はXOR回路48のXORゲートの一方の入力に接続され、このXOR回路48のXORゲートの他方の入力には乱数信号線49が接続されている。また、メモリセルJ[0]とXNOR回路45との間のXNORゲートの出力は直接XOR回路48の別のXORゲートの一方の入力に接続され、このXOR回路48の別のXORゲートの他方の入力には別の乱数信号線49が接続されている。
さらに、他のメモリセルJ[u]、J[u]、J[u]、J[u](0≦u≦1)の部分でも、上記のメモリセルJ[u](0≦u≦1)の部分と同様に接続されている。図7に示すスピンユニット40において、乱数信号線49はXOR回路48の12個のXORゲートに対応して12本で構成されている。
そして、XOR回路48の出力は多数決回路44の入力となる。この多数決回路44には、乱数信号線50が接続されている。多数決回路44の出力は、セレクタ43の一方の入力に接続され、このセレクタ43の他方の入力にはメモリセルNの出力が接続されている。セレクタ43には、当該スピンユニット40のスピンの更新を許可する切替え信号の信号線ENが接続されている。セレクタ43の出力はメモリセルNの入力に接続され、このメモリセルNの出力は当該スピンユニット40のスピンの値を他のスピンユニット40に出力する信号線ONに接続されている。
図8は、スピンユニット40が有するメモリセルN、H[u]、J[u](0≦u≦1、1≦k≦5)に、イジングチップ13外からアクセスするためのインタフェースであるビット線41とワード線42とに注目して、スピンユニット40の構成を図示したものである。
スピンユニット40は、イジングモデルのスピンσ、相互作用係数Ji,k(1≦k≦5)および外部磁場係数hを保持するために、複数の1ビットのメモリセルN、H[u]、J[u](0≦u≦1、1≦k≦5)を備えている。なお、メモリセルH[0]およびH[1]、メモリセルJ[0]およびJ[1]、メモリセルJ[0]およびJ[1]、メモリセルJ[0]およびJ[1]、メモリセルJ[4]およびJ[1]、ならびに、メモリセルJ[0]およびJ[1]は、それぞれ2個1組で役割を果たすものであるため、適宜、これらをそれぞれまとめてメモリセル対Hx、Jx、Jx、Jx、JxまたはJxと略記する(図5参照)。
ここで、スピンユニット40はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
図5を用いて、スピンユニット40が有するメモリセル対Hx、Jx(1≦k≦5)と、図4に示したイジングモデルのトポロジとの対応関係を示す。メモリセル対Hxは外部磁場係数を記憶する。また、メモリセル対Jx(1≦k≦5)は、それぞれ相互作用係数を記憶する。具体的に、メモリセル対Jxは上側のスピン(Y軸方向で−1)、メモリセル対Jxは左側のスピン(X軸方向で−1)、メモリセル対Jxは右側のスピン(X軸方向で+1)、メモリセル対Jxは下側のスピン(Y軸方向で+1)、メモリセル対Jxは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)との相互作用係数をそれぞれ記憶する。
イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット40は最大で5個のスピンと接続される。本実施の形態のイジングチップ13では、外部磁場係数および相互作用係数として+1/0/−1の3値に対応する。そのため、外部磁場係数および相互作用係数を表わすためには、それぞれ2ビットのメモリセルが必要となる。
メモリセルH[0]、J[0](1≦k≦5)はそれぞれ対応する係数が正のとき1、0以下のとき0とする。またメモリセルH[1]、J[1]はそれぞれが対応する係数の絶対値が1のとき1、0のとき0を与える。例えばスピンセルの保持する外部磁場係数が−1のときH[0]=0、H[1]=1である。
スピンユニット40内のメモリセルN、H[u]、J[u](0≦u≦1、1≦i≦5)は、それぞれイジングチップ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、N(1≦k≦5)、ONおよびRND(49、50)を有する。信号線ENは、当該スピンユニット40のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ43を制御することで、メモリセルNに保持されたスピンの値を、後述の多数決回路44からセレクタ43に与えられる値に更新することができる。
信号線ONは、当該スピンユニット40のスピンの値を他のスピンユニット40(図4のトポロジで隣接するユニット)に出力するインタフェースである。信号線N(1≦k≦5)は、それぞれ他のスピンユニット40(図4のトポロジで隣接するユニット)が保持するスピンの値を入力するためのインタフェースである。信号線Nは上側のスピン(Y軸方向で−1)、信号線Nは左側のスピン(X軸方向で−1)、信号線Nは右側のスピン(X軸方向で+1)、信号線Nは下側のスピン(Y軸方向で+1)、信号線Nは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)からの入力である。
信号線RND(49)は、乱数信号線(以下、RND線とも呼ぶ)であり、多数決回路44の前段に供給し、このRND線49から印加される乱数信号に基づいて、多数決回路44に入力される所定の信号の値を確率的に反転する。また、信号線RND(50)は、多数決回路44に入力されるRND線である。これらのRND線49および50は、乱数注入線38(図3)を介して、乱数信号を発生する乱数発生器17(図2)に接続されている。
本実施の形態においては、メモリセルH[u]、J[u](0≦u≦1、1≦k≦5)が、本発明におけるメモリに対応する。また、これらのメモリセルを除く回路ブロック46の部分が、本発明において、メモリからデータを読む読み出し部に対応する。さらに、多数決回路44が、本発明において、読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路に対応する。そして、セレクタ43の部分が、本発明において、多数決回路の出力を入力する書き込み回路に対応する。また、本発明において、メモリ、読み出し部、多数決回路および書き込み回路を制御する制御部は、図2に示した制御部12に対応する。
<<(3−5)多数決回路と乱数を用いた非線形演算の実現>>
多数決回路と乱数を用いた非線形演算の実現について、上述した図7に加えて、図10、図11、図12A、図12B、図13Aおよび図13Bを用いて説明する。図10は、本実施の形態1において、図7に示すスピンユニットの説明に供する、イジングモデルの図である。図11は、本実施の形態1において、図7に示すスピンユニット内の一箇所を抽出したブロック図である。図12Aおよび図12Bは、本実施の形態1において、係数とスピン値による計算結果の説明に供する概念図である。図13Aおよび図13Bは、本実施の形態1において、スピンユニットに注入する乱数の説明に供する図である。
スピンユニット40は、隣接スピンの値によってスピンの次状態を確率的に決定する。図7、図10、図11、図12A、図12B、図13Aおよび図13Bを用いて、熱浴法に基づくSA法を実現する回路構成および乱数の制御法を説明する。
スピンユニット40の表すスピンを現在の値から反転させたとき、エネルギーは次式で計算されるΔHだけ増加する。
Figure 0006605610
確率的な遷移の後でi番目のスピンの値が1となる場合は、現在の状態でσ=+1かつスピンが非反転、または現在の状態でσ=−1かつスピンが反転のいずれかである。それぞれ発生する確率p、pは次式の通りである。
Figure 0006605610
Figure 0006605610
(5)式、(6)式で示した各確率に(4)式を代入すると、いずれも次式のpとなる。
Figure 0006605610
つまり、熱浴法に従ってスピンを確率的に反転したとき、反転後の値が1となる確率は遷移前の値に依存せず常にpである。ゆえに、熱浴法によってスピンを確率的に更新するとき、セレクタ43を介してメモリセルNに確率pで1を書き込めばよい。これは、多数決回路44が確率pで1を出力することに相当する。
スピンユニット40内の回路ブロック46を図11に示す。回路ブロック46は、隣接スピンの値を読み出す信号線Nと、係数を表すメモリセルH[u]、J[u](0≦u≦1、1≦k≦5)およびXNOR回路45で構成される。隣接スピンの値が+1のとき信号線Nは1、スピンの値が−1のとき信号線Nは0とする。XNOR回路45は、複数のXNORゲートで構成される。回路ブロック46には、メモリセルJ[u](0≦u≦1、1≦k≦5)とXNOR回路45との間に接続される複数のXNORゲートも含まれる。回路ブロック46から出力する信号の値をH’[u]、J’[u](0≦u≦1、1≦k≦5)と表す。
外部磁場係数hが+1/0/−1の各場合についてH’[0]、H’[1]を計算すると、図12Aに示す表の通りである。例えば、hが1、H[0]が1、H[1]が1の場合に、H’[0]は1、H’[1]は1となる。他は図12Aの通りである。H’[0]、H’[1]で、値1の個数をNH、値0の個数をNHとすると次式が成り立つ。
Figure 0006605610
同様に、相互作用係数Ji,k(1≦k≦5)が+1/0/−1および信号線Nで読み出す隣接スピンの値σが+1/−1の各場合についてJ’[0]、J’[1]を計算する。すると図12Bに示す表の通りである。例えば、σが1、Nが1、Ji,kが1、J[0]が1、J[1]が1の場合に、J’[0]は1、J’[1]は1となる。他は図12Bの通りである。J’[0]、J’[1]で、値1の個数をNJk,+、値0の個数をNJk,−とすると次式が成り立つ。
Figure 0006605610
(8)式および(9)式より、次の等式が成り立つ。
Figure 0006605610
この(10)式の右辺は、回路ブロック46から出力する信号において、値が1である信号の本数nと、値が0である信号の本数nの差を表す。すると次式が成立する。
Figure 0006605610
(11)式を用いて(7)式に示した確率pは以下の通りに表される。
Figure 0006605610
(12)式は、パラメータTを用い、値x(=n−n)を引数とする双曲線正接関数を含む以下の関数によって与えられる確率f(x,T)で表すことができる。
Figure 0006605610
ところで、標準正規分布の累積分布関数と双曲線正接関数に関して、以下の近似式が知られている。
Figure 0006605610
この近似式および(12)式より、確率pは以下の通り近似的に表せる。
Figure 0006605610
以上より、多数決回路44は(15)式で表された確率pで1を出力すればよい。
本実施の形態では、回路ブロック46から出力する各信号を、RND線(乱数信号線)49とXOR回路48を用いて、確率的に反転する。RND線49はそれぞれ確率pで1、確率1−pで0となる乱数で、各乱数は互いに独立とする。図13Aはp=0.25として3本のRND線49に印加した乱数の様子である。図13Aの例では、例えば1本目のRND線49に印加した乱数は、20クロックのうち、2、8、13、19および20クロック目が高レベルとなる信号である。また、2本目のRND線49は3、6、10、12および19クロック目、3本目のRND線49は1、4、10、13および14クロック目がそれぞれ高レベルとなる信号である。いずれのRND線49も高レベルの比率が5/20=0.25となり、確率p=0.25を実現する。時間的にランダムな乱数をXOR回路48に供給するため、乱数クロック幅は相互作用クロック幅以下でなければならない。図13Aでは、乱数クロック幅と相互作用クロック幅とが等しい例を示している。
回路ブロック46の出力のある信号が1のとき、この信号とRND線49を入力とするXOR回路48の出力は確率1−pで1、確率pで0となる。また、回路ブロック46の出力のある信号が0のとき、この信号とRND線49を入力とするXOR回路48の出力は確率pで1、確率1−pで0となる。よってXOR回路48の出力にて、1の信号線の本数Zは平均n(1−p)+np、分散(n+n)p(1−p)の正規分布に従う。
スピンユニット40内のメモリセルで表すイジングモデルの係数の本数をLと表す。例えば、図10に示すスピンσを表すスピンユニット40は5つの相互作用係数と1つの外部磁場係数を表すためL=6である。2L=n+nであるため、Zは平均n(1−p)+np、分散2Lp(1−p)の正規分布に従うと言い換えられる。
XOR回路48は2L個存在する。XOR回路48の出力にて1と0である信号の本数が等しいとき、つまりZ=Lのとき、1または0を等確率で多数決の結果とする必要がある。多数決回路44の入力にRND線50を加えることで、これは実現される。ただし、RND線50には確率0.5で1、確率0.5で0となる乱数を印加する。図13BにRND線50に印加する乱数の様子を示す。図13Bの例では、RND線50に印加する乱数は、20クロックのうち、3、4、8、9、10、14、15、16、18および19クロック目が高レベルとなる信号である。このRND線50は高レベルの比率が10/20=0.5となり、確率0.5を実現する。
XOR回路48の出力にて1と0である信号の本数が異なるとき、つまりZ≠Lのとき、RND線50によって多数決回路44が出力すべき値が反転することは無い。
多数決回路44は次式で計算される確率qで1を出力する。
Figure 0006605610
確率qと確率pが任意のn、nで近似値となる条件は次式で表される。
Figure 0006605610
(17)式より、SA法のパラメータTと確率pに関して、以下の等式が成り立つ。
Figure 0006605610
SA法では初期状態でパラメータTを大きな値に設定し、状態間の遷移を繰り返すにつれてTを徐々に減少させる。これを上記の等式に当てはめるとSA法の初期はp=1/2で、次第にp=0へ減少することに相当する。
<(4)イジングチップの制御手順>
イジングチップの制御手順について、図14、図15Aおよび図15Bを用いて説明する。図14は、本実施の形態1において、基底状態探索処理の処理手順を示すフローチャートである。図15Aおよび図15Bは、本実施の形態1において、スピンユニットに注入する乱数の制御法の説明に供する図である。
図14は、本実施の形態の情報処理装置1において、CPU3(図1)により実行される基底状態探索処理の処理手順を示す。CPU3は、ステップSP1については問題変換プログラム8(図1)に基づき、これ以降の処理(ステップSP2〜ステップSP11)についてはマルチイジングチップ制御プログラム9(図1)に基づいて、必要なマルチイジングチップ6(図2)のコントローラ15(図2)を介して当該マルチイジングチップ6内のイジングチップ13を制御することにより、これらのイジングチップ13において基底状態探索を実行させる。なお、ステップSP1の処理と、ステップSP2〜ステップSP11の処理とを別々のタイミングで実行するようにしてもよい。
またCPU3は、各マルチイジングチップ6内のイジングチップ13や、イジングチップ13内のスピンユニット40をマルチイジングチップ6内のコントローラ15(図2)を介して制御するが、以下においては理解の容易化のため、コントローラ15の存在を省略して説明を行う。
CPU3は、ユーザからの指示等によりこの基底状態探索処理を開始すると、まず、問題データ7(図1)をイジングモデルの形式のデータに変換する(ステップSP1)。問題データ7がすでにイジングモデルの形式のデータである場合、ステップSP1は省略する。
続いて、CPU3は、変換後のイジングモデルの相互作用係数および外部磁場係数を必要なマルチイジングチップ6の各イジングチップ13内の各スピンユニット40にそれぞれ設定する(ステップSP2)。
次いで、CPU3は、各スピンユニットが保持すべきスピンの値を乱数によりそれぞれ決定し、決定したスピンの値となるよう、かかるマルチイジングチップ6における各イジングチップ13内の各スピンユニット40のスピンの値を初期化する(ステップSP3)。
さらにCPU3は、予め定められた各マルチイジングチップ6内の乱数発生器17(図2)からRND線49に供給する各乱数において「1」が出現する確率(以下、ビット確率と呼ぶ)を設定する(ステップSP4)。ビット確率は前述の確率pに相当する。
ステップSP4の手続きを詳述する。SA法に関する既存研究では、最適解に充分近い解を得るため、以下を始めとする温度スケジューリングが提案されている。
Figure 0006605610
Figure 0006605610
はパラメータTを徐々に下げたときのk番目の値である。SA法の開始時におけるパラメータTの値はTとする。また、Cは充分に大きな定数、αは0<α<1を満たす定数である。ステップSP4ではまず、CPU3が(19)式や(20)式などの温度スケジューリングを用いてT(k=0,1,2,…)を計算する。次に(18)式を用いて、各パラメータTで熱浴法を実行することに相当する各ビット確率を求める。そしてステップSP4の最後に、前述の各段階における各ビット確率を設定する。
本実施の形態の場合、開始時はビット確率を0.5程度に設定し、その後、段階的にビット確率を下げる。これにより各スピンユニット40が保持するスピンの値を熱浴法に基づき確率的に反転する。
=100、α=0.9として温度スケジューリングを(20)式で決定した場合のT(0≦k<40)を図15Aに示す。図15Aでは、横軸にステップk(k=0〜40)、縦軸にパラメータT(T=0〜100)をとっている。L=6のとき、各温度において(18)式を用いてビット確率pを計算すると、図15Bの通りになる。図15Bでは、横軸にステップk(k=0〜40)、縦軸にビット確率p(p=0.0〜0.5)をとっている。
ビット確率が0.5のとき、つまりRND線49の各信号に確率0.5で1となる乱数を印加すると、XOR回路48はそれぞれ確率0.5で1を出力する。ゆえに多数決回路44は確率0.5で1を出力し、メモリセルNにはランダムに0または1が書き込まれる。よってステップSP3でスピンの値をランダムに初期化する場合、ステップSP4でビット確率0.5を実行することにより、ステップSP3を省略可能である。
さらにCPU3は、予め定められたビット確率毎の相互作用演算の実行回数をそれぞれ設定する(ステップSP5)。
続いて、CPU3は、マルチイジングチップ6の相互作用クロック生成器16(図2)を駆動するなどして各イジングチップ13内の各スピンユニット40における相互作用演算を1回実行させ(ステップSP6)、この後、現在のビット確率について設定された回数分だけ相互作用演算を実行し終えたか否かを判断する(ステップSP7)。そしてCPU3は、この判断で否定結果を得るとステップSP6に戻り、この後、ステップSP6およびステップSP7の処理を繰り返す。
そしてCPU3は、やがて現在設定されているビット確率について設定された回数分の相互作用演算を実行し得ることによりステップSP7で肯定結果を得ると、ステップSP5で設定したビット確率毎の相互作用演算をすべて実行し終えたか否かを判断する(ステップSP8)。
CPU3は、この判断で否定結果を得ると、ビット確率を現在のビット確率よりも低い予め定められたビット確率に更新すると共に(ステップSP9)、その後実行すべき相互作用演算の回数をそのビット確率について予め定められた回数に更新する(ステップSP10)。そしてCPU3は、ステップSP6に戻り、この後、ステップSP6〜ステップSP10の処理を繰り返す。
そしてCPU3は、やがてステップSP5で設定されたビット確率毎の相互作用演算をすべて実行し終えることによりステップSP8で肯定結果を得ると、そのとき対象としているマルチイジングチップ6における各イジングチップ13内の各スピンユニット40がそれぞれ保持するスピンの値を読み出す(ステップSP11)。
そしてCPU3は、この後、この基底状態探索処理を終了する。以上のようにして、基底状態探索処理を実行することができる。
<(5)本実施の形態1の効果>
以上説明した本実施の形態1の半導体装置および情報処理装置によれば、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能となる。すなわち、本実施の形態1の情報処理装置では、多数決回路44の前処理の段階において確率的に信号を反転させることにより、加算器や乗算器などを用いずに、熱浴法に基づくSA法で必要となる非線形関数で与える確率的な状態遷移を実行することができる。かくして、イジングモデルの基底状態または当該基底状態の近似解を精度高く得るための情報処理装置を、安価かつ容易に製造できる。より詳細には、以下の通りである。
(1)半導体装置は、メモリセルH[u]、J[u](0≦u≦1、1≦k≦5)と、メモリセルH[u]、J[u]からデータを読む回路ブロック46と、回路ブロック46が読み出したデータに対して所定の演算を行った結果を入力する多数決回路44と、多数決回路44の出力を入力するセレクタ43と、を備え、多数決回路44の前段で所定の信号の値を確率的に反転する。これにより、加算器や乗算器を用いて非線形関数を計算することなく、非線形関数に基づく確率的な処理が可能となる。特に、多数決回路44は、アナログ回路などの実装によって回路面積を小さく実現できる利点がある。
(2)半導体装置において、多数決回路44の前段に乱数信号線49を供給することで、この乱数信号線49から印加される乱数信号に基づいて、多数決回路44に入力される所定の信号の値を確率的に反転することができる。
(3)半導体装置は、メモリセルH[u]、J[u](0≦u≦1、1≦k≦5)、回路ブロック46、多数決回路44およびセレクタ43を制御する制御部12を備える。制御部12は、メモリセルH[u]、J[u]の値に依らず制御部12で決定するパラメータTを用いて計算するステップを有する。このステップでは、計算の結果に基づいて半導体装置内における所定の信号の値を確率的に反転し、メモリセルH[u]、J[u]の値で決定される値xを引数とする双曲線正接関数を含む(13)式の関数によって与えられる確率f(x,T)でランダムに「1」を出力する。これにより、乱数信号線49にランダムに印加する「1」の確率を計算して制御することで、所望の確率的な処理を実現することができる。
(4)半導体装置として、非線形演算を行う半導体装置に適用することができる。また、別の半導体装置として、相互作用モデルの計算を行う半導体装置に適用することができる。より具体的には、イジングモデルのエネルギーを最小とするスピンの配列である基底状態または当該基底状態の近似解を問題の解として算出する半導体装置に適用することができる。
(5)半導体装置において、スピン間の相互作用の本数をL本とする場合に、制御部12は、この制御部12で決定するパラメータTを用いて(18)式によって計算される確率pで「1」となるランダムな信号を乱数信号線49に供給する。これにより、乱数信号線49にランダムに印加する「1」の確率を計算して制御することで、所望の確率的な処理を実現することができる。
(6)本実施の形態によれば、最適化問題を解くアルゴリズムであるSA法などにおいて要求される非線形関数に基づく確率的な処理を、加算器や乗算器等を排して回路規模の増加を抑制しつつ実現することができる。すなわち、加算器や乗算器等の代わりに多数決回路44を活用する構成により、同等の機能を、加算器や乗算器等を使用する場合と比べて、回路規模を削減して実現することが可能となる。さらに、非線形関数に基づく確率的な処理の実現により、熱浴法に基づくSA法によるイジングモデルの基底状態探索が可能となる。
[実施の形態2]
上述の実施の形態1においては、XOR回路48の各XORゲートの入力にそれぞれ異なるRND線(乱数信号線)49を与える場合を詳述した。しかし、乱数クロック幅が充分に小さいとき、RND線49の本数を減らすことが可能である。
本実施の形態2は、RND線の削減が可能な半導体装置および情報処理装置に適用した例であり、上述の実施の形態1と異なる点を主に、図16および図17を用いて説明する。図16は、本実施の形態2におけるスピンユニットの構成の一例を示すブロック図である。図17は、本実施の形態2において、スピンユニットに注入する乱数の説明に供する図である。
図16は、RND線51を1本に纏めた場合の回路構成を示す。この1本のRND線51は、XOR回路48のそれぞれのXORゲートの一方の入力に接続されている。このXOR回路48のそれぞれのXORゲートの他方の入力には、回路ブロック46の出力がそれぞれ接続されている。図16に記す各箇所における信号の値をS、Sと表す。RND線51に注入した乱数信号は、S、Sを順番に遅延を伴って伝播する(図17参照)。乱数クロック幅がS、S間の遅延時間以下ならば、ある時刻においてS、Sにおける乱数は互いに独立である。図17では、遅延時間が乱数クロック幅の2クロック分に相当する例を示している。
なお、図16ではRND線51を1本としたが、乱数の遅延時間と乱数クロック幅の比較により、RND線51の本数を適切に設定すればよい。
以上説明した本実施の形態2の半導体装置および情報処理装置によれば、上述の実施の形態1と異なる効果として、乱数クロック幅が充分に小さいときにはRND線51の本数を減らすことが可能となる。
[実施の形態3]
上述の実施の形態1および2においては、スピンユニット40の係数を表すメモリセルが各係数の符号および係数の絶対値を記録する場合における回路構成を詳述した。しかし、メモリセルに与える係数を変えることで回路ブロック46の回路を簡略化可能である。
本実施の形態3は、スピンユニット内の回路ブロックにおける回路構成を変更した半導体装置および情報処理装置に適用した例であり、上述の実施の形態1および2と異なる点を主に、図18を用いて説明する。図18は、本実施の形態3におけるスピンユニットの構成の一例を示すブロック図である。
図18は、イジングモデルの各係数を上述の実施の形態1と異なる規則に従ってメモリセルに与える場合の構成例である。メモリセルH[0]、J[0](1≦k≦5)はそれぞれ対応する係数が正のとき1、0以下のとき0である。またメモリセルH[1]は外部磁場係数の絶対値とH[0]の排他的論理和の否定を記録する。同様に、メモリセルJ[1](1≦k≦5)は、対応する相互作用係数の絶対値とJ[0]の排他的論理和の否定を記録する。例えばスピンセルの保持する外部磁場係数が−1のときH[0]=0、H[1]=0である。このとき、上述の実施の形態1と同様に、熱浴法に基づく確率的な状態遷移を実現する。
また、図18に示すスピンユニット40においては、回路ブロック46が上述の実施の形態1の図7と異なる構成となっている。例えばメモリセルH[u](0≦u≦1)の部分では、メモリセルH[0]およびメモリセルH[1]が直接XOR回路48のそれぞれのXORゲートに接続されている。
また、メモリセルJ[u](0≦u≦1)の部分では、2つのXNORゲートを有し、この2つのXNORゲートのそれぞれの一方の入力に他のスピンユニットからのスピンの値の信号線Nが接続され、この2つのXNORゲートのそれぞれの他方の入力にメモリセルJ[0]およびメモリセルJ[1]がそれぞれ接続されている。
さらに、他のメモリセルJ[u]、J[u]、J[u]、J[u](0≦u≦1)の部分でも、上記のメモリセルJ[u](0≦u≦1)の部分と同様に接続されている。そして、回路ブロック46の出力はXOR回路48に入力され、このXOR回路48において、上述の実施の形態1と同様に、RND線49に注入された乱数信号との論理演算が行われる。
以上説明した本実施の形態3の半導体装置および情報処理装置によれば、上述の実施の形態1および2と異なる効果として、メモリセルH[u]、J[u](0≦u≦1、1≦k≦5)に与える係数を変えることで回路ブロック46の回路構成を変更することができ、これによって、回路ブロック46の回路を簡略化することが可能となる。
[実施の形態4]
上述の実施の形態1〜3においては、多数決回路44の一段前の処理で外部からRND線(乱数信号線)で注入する乱数を入力に取るXOR回路48を配置している。しかし、この演算は必ずしも多数決回路44の一段前でなくても構わない。すなわち、多数決回路44の一段前に限らず、それよりも以前の段階で演算してもよい。
本実施の形態4は、スピンユニット内におけるRND線を供給する箇所を変更した半導体装置および情報処理装置に適用した例であり、上述の実施の形態1〜3と異なる点を主に、図19を用いて説明する。図19は、実施の形態4におけるスピンユニットの構成の一例を示すブロック図である。
図19は、上述の実施の形態3と異なる箇所にRND線49を供給する構成例を示す。この回路は、外部からRND線49で注入する乱数を、メモリセルH[u]、J[u](0≦u≦1、1≦k≦5)から読み出す値と排他的論理和を計算する。すなわち、本実施の形態では,メモリセルH[u]、J[u]の記憶内容を確率的に反転して読み出す回路構成となっている。
例えば、メモリセルH[u](0≦u≦1)の部分では、2つのXORゲートを有し、この2つのXORゲートのそれぞれの一方の入力にメモリセルH[0]およびメモリセルH[1]がそれぞれ接続され、この2つのXORゲートのそれぞれの他方の入力にRND線49がそれぞれ接続されている。この2つのXORゲートのそれぞれの出力は、多数決回路44に入力される。
また、メモリセルJ[u](0≦u≦1)の部分では、2つのXORゲートと2つのXNORゲートとを有する。2つのXORゲートのそれぞれの一方の入力にRND線49がそれぞれ接続され、この2つのXORゲートのそれぞれの他方の入力にメモリセルJ[0]およびメモリセルJ[1]がそれぞれ接続されている。そして、2つのXNORゲートのそれぞれの一方の入力に他のスピンユニットからのスピンの値の信号線Nが接続され、この2つのXNORゲートのそれぞれの他方の入力に2つのXORゲートのそれぞれの出力が接続されている。この2つのXNORゲートのそれぞれの出力は、多数決回路44に入力される。
さらに、他のメモリセルJ[u]、J[u]、J[u]、J[u](0≦u≦1)の部分でも、上記のメモリセルJ[u](0≦u≦1)の部分と同様に接続されている。そして、多数決回路44において、上述の実施の形態1と同様の計算が行われる。
図19に示すスピンユニット40においては、上述の実施の形態1と同様にRND線49を制御すると、図18に示す回路構成および図19に示す回路構成が表す論理演算は等価である。つまり、図19に示す構成例のように、メモリセルの記憶内容を確率的に反転して読み出す回路を用いても、熱浴法に基づく状態遷移が実現される。
以上説明した本実施の形態4の半導体装置および情報処理装置によれば、上述の実施の形態1〜3と異なる効果として、乱数との演算は多数決回路44の一段前に限らないので、スピンユニット40内におけるRND線49を供給する箇所を変更することが可能となる。
[他の実施の形態]
上述の実施の形態1〜4は、イジングモデルの相互作用係数および外部磁場係数が+1/0/−1の3値として説明した。しかし、メモリセルを増やすことで係数幅を拡張可能であることは明らかである。また二進数表記の要領で各メモリセルに値を与えることも可能である。例えば、1ビットのメモリセルを3個1組にした場合には、+3/+2/+1/0/−1/−2/−3の7値にすることができる。このときRND線49に与える1の確率pの計算式は(18)式と異なるが、前述の議論と同様にして容易に得られる。
また、イジングモデルを格子構造として説明したが、本発明は任意のグラフ構造に対して適用可能である。
さらに、本発明は、SA法のパラメータTを一定にすることで、マルコフ連鎖モンテカルロ法を実行することも可能である。そのため、本発明はマルコフ連鎖モンテカルロ法によるサンプリング、すなわちイジングモデルのモンテカルロシミュレーションを行う半導体装置にも好適である。さらに、熱浴法の遷移確率を求める非線形演算(双曲線正接関数を含む関数)に基づく確率的な処理はニューラルネットワークでも必要となる。そのため、ニューラルネットワークの処理を実行する半導体装置に対する適用も可能である。
以上のように、本発明は、物理学の世界で代表的なイジングモデルに限定されるものではなく、種々の物理現象や社会現象を表現することができる相互作用モデル全般に適用できるものである。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
例えば、上述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
1…情報処理装置、2…システムバス、3…CPU、4…メモリ、5…記憶装置、6…マルチイジングチップ、7…問題データ、8…問題変換プログラム、9…マルチイジングチップ制御プログラム、
11…イジングチップ群、12…制御部、13…イジングチップ、14…チップ間配線、15…コントローラ、16…相互作用クロック生成器、17…乱数発生器、
20…スピンアレイ、24…チップ間接続部、
40…スピンユニット、44…多数決回路、49…乱数信号線(RND線)、50…乱数信号線(RND線)、51…乱数信号線(RND線)、
N、H[u]、J[u](0≦u≦1、1≦k≦5)…メモリセル。

Claims (1)

  1. 相互作用モデルの計算を行い、イジングモデルのエネルギーを最小とするスピンの配列である基底状態または当該基底状態の近似解を問題の解として算出する装置、または、前記イジングモデルのシミュレーションを実行する装置である、半導体装置であって、
    それぞれ1または複数の値を保持する複数のメモリと、
    前記複数のメモリからデータを読む読み出し部と、
    前記読み出し部が読み出したデータに対して所定の演算を行った結果を入力する多数決回路と、
    前記多数決回路の出力を入力する書き込み回路と、
    前記メモリ、前記読み出し部、前記多数決回路および前記書き込み回路を制御する制御部と、
    を備え、
    前記制御部は、前記多数決回路の前段に乱数信号線を供給し、前記乱数信号線から印加される乱数信号に基づいて、前記多数決回路に入力される所定の信号の値を確率的に反転し、前記スピン間の相互作用の本数をL本とする場合に、前記制御部で決定するパラメータTを用いて以下の式
    Figure 0006605610
    によって計算される確率pで「1」となるランダムな信号を前記乱数信号線に供給する、半導体装置。
JP2017536145A 2015-08-27 2015-08-27 半導体装置 Active JP6605610B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/074167 WO2017033326A1 (ja) 2015-08-27 2015-08-27 半導体装置および情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2017033326A1 JPWO2017033326A1 (ja) 2018-07-05
JP6605610B2 true JP6605610B2 (ja) 2019-11-13

Family

ID=58100110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017536145A Active JP6605610B2 (ja) 2015-08-27 2015-08-27 半導体装置

Country Status (4)

Country Link
US (1) US10366745B2 (ja)
EP (1) EP3343468B1 (ja)
JP (1) JP6605610B2 (ja)
WO (1) WO2017033326A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2881033C (en) 2015-02-03 2016-03-15 1Qb Information Technologies Inc. Method and system for solving lagrangian dual of a constrained binary quadratic programming problem
US11797641B2 (en) 2015-02-03 2023-10-24 1Qb Information Technologies Inc. Method and system for solving the lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer
JP6623947B2 (ja) * 2016-06-17 2019-12-25 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP7288905B2 (ja) * 2017-12-01 2023-06-08 1キュービー インフォメーション テクノロジーズ インコーポレイテッド ロバスト推定問題の確率的最適化のためのシステムおよび方法
JP7087871B2 (ja) 2018-09-19 2022-06-21 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置
JP7196489B2 (ja) * 2018-09-19 2022-12-27 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置
US11809147B2 (en) 2019-06-17 2023-11-07 Fujitsu Limited Optimization device, method for controlling optimization processing, and non-transitory computer-readable storage medium for storing program for controlling optimization processing
WO2020255076A1 (en) 2019-06-19 2020-12-24 1Qb Information Technologies Inc. Method and system for mapping a dataset from a hilbert space of a given dimension to a hilbert space of a different dimension
US12051005B2 (en) 2019-12-03 2024-07-30 1Qb Information Technologies Inc. System and method for enabling an access to a physics-inspired computer and to a physics-inspired computer simulator
JP7488458B2 (ja) 2020-06-25 2024-05-22 富士通株式会社 情報処理システム、情報処理方法及びプログラム
CN112379859B (zh) * 2020-11-13 2023-08-18 北京灵汐科技有限公司 二值采样的处理方法及装置、对抗样本的生成方法及装置
JP7553802B2 (ja) 2020-12-15 2024-09-19 富士通株式会社 最適化プログラム、最適化方法及び情報処理装置
TWI789050B (zh) * 2021-10-15 2023-01-01 旺宏電子股份有限公司 記憶體裝置及其運算方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5100677B2 (ja) * 2009-02-09 2012-12-19 株式会社東芝 乱数発生器および乱数発生方法
US9633715B2 (en) 2013-05-31 2017-04-25 Hitachi, Ltd. Semiconductor device capable of attaining ground state in an ising model

Also Published As

Publication number Publication date
EP3343468B1 (en) 2019-12-25
US20180247691A1 (en) 2018-08-30
EP3343468A1 (en) 2018-07-04
JPWO2017033326A1 (ja) 2018-07-05
EP3343468A4 (en) 2019-04-24
WO2017033326A1 (ja) 2017-03-02
US10366745B2 (en) 2019-07-30

Similar Documents

Publication Publication Date Title
JP6605610B2 (ja) 半導体装置
JP5865456B1 (ja) 半導体装置
JP5864684B1 (ja) 半導体装置
JP6979331B2 (ja) 情報処理装置および情報処理方法
JP5922203B2 (ja) 半導体装置
US10839044B2 (en) Information processing apparatus that controls a semiconductor device that calculates an interaction model as an accelerator
JP6177993B2 (ja) 半導体装置および情報処理装置
JP5922202B2 (ja) 半導体装置、画像セグメンテーション方法、および画像処理装置
JP6295325B2 (ja) 半導体装置及び情報処理システム
US10896241B2 (en) Information processing device and control method therefor
JP6496410B2 (ja) 情報処理装置及び方法
US11244026B2 (en) Optimization problem arithmetic method and optimization problem arithmetic device
JP5901712B2 (ja) 半導体装置および情報処理装置
JP2019179364A (ja) 半導体装置、情報処理システム、および情報処理方法
WO2017037902A1 (ja) 半導体システムおよび計算方法
JPWO2017037903A1 (ja) 半導体システムおよび計算方法
JP6701207B2 (ja) 情報処理システム
JP6207583B2 (ja) 半導体装置および情報処理方法
CN118798374A (zh) 节点状态确定方法、装置及现场可编程门阵列芯片

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190412

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191016

R150 Certificate of patent or registration of utility model

Ref document number: 6605610

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150