TOP > 国内特許検索 > 半導体装置 > 明細書

明細書 :半導体装置

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2019-164462 (P2019-164462A)
公開日 令和元年9月26日(2019.9.26)
発明の名称または考案の名称 半導体装置
国際特許分類 G06N  99/00        (2019.01)
G06N  10/00        (2019.01)
FI G06N 99/00
G06N 99/00 120
請求項の数または発明の数 5
出願形態 OL
全頁数 13
出願番号 特願2018-051033 (P2018-051033)
出願日 平成30年3月19日(2018.3.19)
発明者または考案者 【氏名】河原 尊之
【氏名】小野 涼斗
【氏名】染谷 健太
出願人 【識別番号】000125370
【氏名又は名称】学校法人東京理科大学
個別代理人の代理人 【識別番号】100079049、【弁理士】、【氏名又は名称】中島 淳
【識別番号】100084995、【弁理士】、【氏名又は名称】加藤 和詳
【識別番号】100099025、【弁理士】、【氏名又は名称】福田 浩志
審査請求 未請求
要約 【課題】イジングモデルの要素を各ブロックによって構成し、高速、かつ、低面積な回路を実現する。
【解決手段】半導体装置は、各スピンの状態を、全スピンの相互作用を用いて計算するイジングモデルを構成する半導体装置であって、各スピンの状態を格納するスピンブロックと、各スピンについての全スピンの相互作用を格納する相互作用ブロックと、各スピンの状態を計算する計算ブロックと、計算対象となるスピンについての各スピンの相互作用及び各スピンの状態を読み出して前記計算対象となるスピンの状態を前記計算ブロックに計算させる制御回路とを含む。
【選択図】図2
特許請求の範囲 【請求項1】
各スピンの状態を、全スピン間の相互作用を用いて計算するイジングモデルを構成する半導体装置であって、
各スピンの状態を格納するスピンブロックと、
各スピンについての全スピンとの相互作用を格納する相互作用ブロックと、
スピン間の相互作用を用いて前記スピンの状態を計算する計算ブロックと、
計算対象となるスピンの各々についてのスピン間の相互作用及び前記スピンの状態を読み出して前記計算対象となるスピンの各々の状態を前記計算ブロックに計算させる制御回路と、
を含む半導体装置。
【請求項2】
前記計算ブロックは、複数のスピンの組み合わせを計算対象として同時に計算する請求項1記載の半導体装置。
【請求項3】
前記計算ブロックは、前記複数のスピンの組み合わせについて、着目するスピンと、他のスピンの各々との組み合わせとして計算対象として同時に計算し、計算された前記着目するスピンについて、前記他のスピンの各々とは異なるスピンの各々との組み合わせを計算対象として同時に計算する請求項2に記載の半導体装置。
【請求項4】
前記スピンブロックは、各スピンに対する、前記スピンの状態を格納する単位回路から構成され、
前記相互作用ブロックは、各スピンに対する、全スピンとの相互作用を格納する単位回路から構成され、
前記計算ブロックは、各スピンに対する、前記スピンの状態を計算する単位回路から構成され、
前記スピンブロック、前記相互作用ブロック、及び前記計算ブロックにおいて、同一のスピンに対する単位回路が対応するように配置されている請求項1~請求項3の何れか1項に記載の半導体装置。
【請求項5】
前記制御回路は、入力された前記スピンに対応する層の数に応じて、前記層に対応する前記スピンブロックのスピンの各々、及び前記層に対応する前記相互作用ブロックの相互作用の各々を稼動させる層として指定した論理回路を構成し、前記層に対応する前記スピンの状態を前記計算ブロックに計算させる請求項1~請求項4の何れか1項に記載の半導体装置。
発明の詳細な説明 【技術分野】
【0001】
本発明は半導体装置に係り、特に、イジングモデルを構成する半導体装置に関する。
【背景技術】
【0002】
昨今、人工知能(AI)を用いた技術において、ソフトウェア及びハードウェアの両面において開発及び実用化が進められている。
【0003】
ハードウェア側でみると、末端の機器においてAIの処理機能の一部を担わせ、クラウド層と末端機器とが連携することで、処理効率や演算能力の向上を図る技術のニーズが高まっている。
【0004】
例えば、AIの演算を実行するためのイジングモデル(詳細については後述)を構成する回路において、チップ全体に対して一組の作用アドレスデコーダを設け、構成単位であるスピンユニットを複雑化することなく、少ない乱数発生器でランダム性を供給し、装置の低コスト化及び大規模化を図る技術がある(例えば特許文献1)。
【0005】
また、所望の係数の値域に対応した相互作用回路を実装するのと比較して、簡易なハードウェア構成で、擬似的に発生させた任意の係数を用いて演算を行う技術がある(例えば特許文献2)。
【0006】
また、演算結果を変更することが可能な回路を設けることなどにより、回路規模の増加を抑制しながら、局所解に陥る可能性を低減することが可能な、イジングモデル用の半導体集積回路装置を提供する技術がある(例えば特許文献3)。
【先行技術文献】
【0007】

【特許文献1】再公表2016-6071号公報
【特許文献2】特開2016-51349号公報
【特許文献3】再公表2016-35171号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、従来の技術では、イジングモデルを構成するチップにおいては、イジングモデルの構成するために必要なスピン、相互作用、及び計算などを担う各要素が一体となったスピンごとのユニットを多数配置する構成となっており、必要な回路の面積が大きくなってしまい、チップを小型化することが困難であるという、という問題があった。
【0009】
本発明は、上記事情を鑑みて成されたものであり、イジングモデルの要素を各ブロックによって構成し、高速、かつ、低面積な回路を実現する半導体装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明に係る半導体装置は、各スピンの状態を、全スピンの相互作用を用いて計算するイジングモデルを構成する半導体装置であって、各スピンの状態を格納するスピンブロックと、各スピンについての全スピンの相互作用を格納する相互作用ブロックと、各スピンの状態を計算する計算ブロックと、計算対象となるスピンについての各スピンの相互作用及び各スピンの状態を読み出して前記計算対象となるスピンの状態を前記計算ブロックに計算させる制御回路とを含んで構成されている。
【発明の効果】
【0011】
本発明の半導体装置によれば、各スピンの状態を格納するスピンブロックと、各スピンの状態を格納するスピンブロックと、各スピンについての全スピンとの相互作用を格納する相互作用ブロックと、スピン間の相互作用を用いてスピンの状態を計算する計算ブロックと、計算対象となるスピンの各々についてのスピン間の相互作用及びスピンの状態を読み出して計算対象となるスピンの各々の状態を計算ブロックに計算させる制御回路とを含むようにすることにより、イジングモデルの要素を各ブロックによって構成し、高速、かつ、低面積な回路を実現することができる、という効果が得られる。
【図面の簡単な説明】
【0012】
【図1】全相互作用を実現するイジングモデルの一例を示す図である。
【図2】本発明の実施の形態に係る半導体装置の構成を示すブロック図である。
【図3】本発明の実施の形態に係る半導体装置の詳細な回路構成の一例を示す図である。
【図4】従来及び全相互作用を実現するイジングモデルの一例を示す図である。
【図5】従来のイジングモデルでのスピン数と接続数の関係を示す図である。
【図6】イジングモデルを実現する半導体装置の構成の一例を示す図である。
【図7】イジングモデルを実現する半導体装置の構成の一例を示す図である。
【図8】イジングモデルを実現する半導体装置の構成の一例を示す図である。
【図9】スピンを同時に更新する手法の原理例を示す図である。
【図10】スピンを同時に更新する手法の一例を示す図である。
【図11】本発明の実施の形態に係る半導体装置の回路構成によって実現できる回路の低面積化の一例を示す図である。
【図12】従来のイジングモデルの回路構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態を詳細に説明する。

【0014】
<本発明の実施の形態に係る概要>

【0015】
まず、本発明の実施の形態における技術を提案するに至った背景について説明する。

【0016】
近年、最適化問題を解く能力を備えた装置により、情報処理能力を向上させ(AI on Things)、IoTの社会への普及をさらに躍進させるべく開発が行われている。その一環としてイジングモデル(非特許文献1参照)のハード化が進められているが、イジングモデルの実装は膨大な数の相互作用を必要とするため困難であるという課題がある(非特許文献2参照)。

【0017】
[非特許文献1]小野涼斗,染谷健太,河原尊之,“実数変数最適化問題の2進数展開によるイジングモデルへの変換”,電子情報通信学会総合大会,A-1-16,2016.

【0018】
[非特許文献2]K.Someya,R.Ono,T.Kawahara,“Novel Ising Model Using Dimension-Control for High-Speed Solver for Ising Machines”,Paper ID 4137,Session B2P-F,NEWCAS 2016.

【0019】
ここで、イジングモデルについて説明する。イジングモデルとは一様な格子点に、2つの状態のみをとるスピンを持つ格子模型であり、系全体のエネルギーはスピンの状態σi,σ∈{1,-1}、スピン間の相互作用Ji,j及び外部磁場係数hiの影響によって以下のように定まる。

【0020】
【数1】
JP2019164462A_000003t.gif

・・・(1)

【0021】
ここで<i,j>はスピンi,jが隣接間であることを示している。

【0022】
また、隣接間での相互作用を実現するイジングモデルの回路構成の一例を図12に示す。図12に示す従来の回路構成では、スピン毎に、当該スピンの状態の格納、隣接スピンとの間の相互作用の格納、及び計算などを担う各要素が一体となったユニットを多数配置する構成となっている。

【0023】
また、隣接間での相互作用するのではなく全ての組合せで相互作用させる全相互作用を考慮したモデルも存在する。これらのモデルは、相互作用Ji,j及び外部磁場係数hiに値を与えエネルギー(単位は任意)が最小となる基底状態を求めることで、任意の最適化問題の解を与えることができる。

【0024】
ここで、全相互作用を隣接スピン間のみで表現可能とするイジングモデルの一例について説明する。

【0025】
例えば、全相互作用を実現するイジングモデルとして、図1に示すように、スピン層を2層用意し、それらを便宜上、上層及び下層として表現する。図1では、上層に存在するスピンを点線で示し、下層に存在するスピンを実線で示している。図1の上層に存在する点線のスピンは、当該スピンと近接する2つの下層スピンと接続され、接続にスピン番号に対応した相互作用を持つ。当該スピンが全てのスピンと相互作用を持つよう必要数を横に並べることにより、当該スピンが全てのスピンと相互作用することを実現している。これは近接スピン間によって全相互作用が表せるため実装が容易である。本モデルではある上層スピンが、全てのスピンに対応する下層スピンとの相互作用により、横に接続された上層の同一スピンの各々の状態を決定し、決定された状態を合わせることで、最終的な当該スピンの状態が決定される。そして、決定された当該スピンの状態を、下層の同一スピンにフィードバックするまでを1サイクルとして各サイクルを繰り返すことにより全相互作用を実現できる。このようにしてイジングモデルにおいて各スピンの状態を、全スピンの相互作用を用いて計算することができる。

【0026】
ここで、全相互作用を隣接スピン間のみで表現可能とするイジングモデルに対して、従来のイジングモデルの回路構成と同様に構成した場合には、イジングモデルの構成するために必要なスピンの状態の格納、相互作用の格納、及び計算などを担う各要素が一体となったユニットを多数配置する構成となり、必要な回路の面積が大きくなってしまうという問題があった。

【0027】
そこで、本発明の実施の形態では、図2に示すように、スピンの状態を格納する要素を集約したスピンブロック、相互作用を格納する要素を集約したスピンブロック、及び計算ブロックに分離するものとし、回路に必要な面積が低面積であり、かつ、高速な演算が可能な回路を実現するものとした。

【0028】
<本発明の実施の形態に係る半導体装置の構成>

【0029】
上記イジングモデルを実装する本発明の実施の形態に係る半導体装置100の回路構成を図2に示す。図2に示す半導体装置100は、制御回路20と、乱数発生器22と、外部磁場ブロック24と、相互作用ブロック26と、スピンブロック28と、計算ブロック30とにより構成される回路である。

【0030】
制御回路20は、計算対象となる複数のスピンの組み合わせについてのスピン間の相互作用及び各スピンの状態を読み出して計算対象となる各スピンの状態を計算ブロック30に計算させる。

【0031】
乱数発生器22は、スピンの値を所定確率で反転させるための0-1間の乱数を発生させ、計算ブロック30に出力することにより、計算対象となるスピンの値を反転させる。

【0032】
外部磁場ブロック24には、個々のスピンに対するバイアスである外部磁場係数hの各々を格納する要素が配置される。

【0033】
相互作用ブロック26には、各スピン間に対応する相互作用Jの各々を格納する要素が配置される。

【0034】
スピンブロック28には、スピンの各々の状態σを格納する要素が配置される。

【0035】
計算ブロック30は、入力された各スピン間の相互作用J、各スピンの状態σ、各スピンの外部磁場係数hに基づいて、計算対象となる各スピンの状態を計算する。

【0036】
図3に半導体装置100の詳細な回路構成の一例を示す。

【0037】
PLA(Programmable Logic Array)は、回路構成を再設定可能なアレイであり、ANDアレイ、ORアレイの書き換えがプログラミングにより可能な集積回路である。PLAは、稼動層指定線により、入力層の数nに対して稼動させる必要があるスピンの層(スピン、相互作用係数、及び外部磁場係数の各層)を決定し、プログラムにより必要な論理回路を構成する。PLAが、制御回路20の一例である。

【0038】
MUX(Multiplexer)は、複数の信号を入力として受け取り、選択して出力する回路である。MUXは、入力層指定線により入力層の数nを受け取る。また、データ入力用CLKにより各スピンに対応した相互作用係数、及び外部磁場係数等の入力を受け付ける。

【0039】
図3に示す論理回路では、外部磁場ブロック24のユニットとしてh~hが構成される。相互作用ブロック26の相互作用係数のユニットとしてJ11~J61、J12~J62が構成される。スピンユニットとしてσ、σが構成される。

【0040】
また、乱数発生器22である各RNGにより乱数を発生させ、発生させた乱数に、仮想的な温度tから決まる確率を与えて、得られた値によって任意のスピンを反転させる。

【0041】
計算ブロック30は、スピンブロック28のスピンの状態σと相互作用ブロック26のσに対応する相互作用係数hとの演算結果、乱数発生器22で発生させた乱数と温度により確率とから定まる値、及び外部磁場係数hとに基づいて、各スピンの状態を計算し、該スピンに状態をフィードバックすると共に、各スピンの状態を、SR(Solder Resist)及びスピン状態出力線を介してスピンブロック28に出力する。

【0042】
計算ブロック30では、複数のスピンの組み合わせを計算対象として同時に計算する。

【0043】
ただし、
JP2019164462A_000004t.gif
は、ビット毎のANDアレイの演算を表す。

【0044】
JP2019164462A_000005t.gif
は、ビット毎のORアレイの演算を表す。

【0045】
なお、本構成は一例であり、PLAによってプログラミングされた構成に応じて論理回路を構成することができる。

【0046】
ここで本発明の実施の形態に関する特徴について述べる。なお、図2や図3は実施の形態の一例であり、本発明の実施の形態の特徴の中で他の代替例はあり得る。

【0047】
図4において、図4(a)は従来例において隣接間での相互作用するイジングモデルを示すものであり、各格子はσ~σスピン、その間の結線は相互作用を表している。図4(b)は、同様に、従来例において隣接間での相互作用する他のイジングモデルを示すものである。一般的には、図4(a)で示す相互作用は、磁性体のモデルとして取り扱われている。このモデルのエネルギーは、全体に及ぼされる外場をhi、σiとσとの間の相互作用をJijとすると(1)式のように現わされる。このモデルでは、相互作用を与えて、スピンの向きがその複数の相互作用が及ぼしあった結果として自由に向きが変えられるようにすると、このエネルギーを最低にするようにスピンの向きが変化することが知られている。一方、図4(c)はより多くのスピンの間を含めたイジングモデルであり、本発明の実施の形態の手法で用いるものである。図4(c)では、一部のスピン間の結線は図面が煩雑になるので省略しているが、すべてのスピン間の相互作用を考えることができる。図4(c)のモデルのエネルギーは、以下(2)式により表される。
【数1】
JP2019164462A_000006t.gif

・・・(1)
【数2】
JP2019164462A_000007t.gif

・・・(2)
ここで(1)式の〈i,j〉とは異なり、(i,j)はすべてスピンの組み合わせについて和を取ることを示している。

【0048】
また、この(2)式において、スピンσiが全てのスピン間の相互作用および外場から受ける力の和Siは(3)式により表すことができる。
【数3】
JP2019164462A_000008t.gif

・・・(3)
この(3)式を用いると、(2)式は次の(4)式と表現できる。
【数4】
JP2019164462A_000009t.gif

・・・(4)
ここでNは総スピン数である。この表現は、全体のエネルギーを、スピンσiの一次結合として表すものであり、その係数として全てのスピン間の相互作用および外場から受ける力の和Siとおくものである。

【0049】
例えば巡回セールスマン問題のような組み合わせ最適化問題において、その最適な解を得るためにこの問題を定式化すると(2)式と数学的に同じ形式に変形できることが知られている。これを最小にするものが、組み合わせ最適化問題の解となるのである。しかしながら、(1)式の形で示される、従来報告されているイジングモデルでは、特殊な場合における組み合わせ最適化問題しか表すことができない。一方で、(2)式は、一般的な組み合わせ最適化問題すべてを表現できる。組み合わせ最適化問題を変形することで、(2)式の相互作用を与えることができる。ここでスピンの向きがその複数の相互作用が及ぼしあった結果として自由に向きが変えられるようにすると、このエネルギーを最低にするようにスピンの向きが変化するのである。そしてこの結果が組み合わせ最適化問題の解となる。汎用性が高く、殆どの組み合わせ最適化問題の解を与えることができる。

【0050】
図4(c)の接続は、ソフトウェアとしては比較的容易に実現することができる。これによって、通常のしらみつぶしに組み合わせ最適化問題の解を探る方式と比較すると高速に解を得ることができる。若しくは求解に必要な時間を揃えれば低電力にて解を得ることができる。

【0051】
しかしながら、より高速、又はより低電力にこの解を得るために、専用の集積回路を実現しようとすると大きな課題にぶつかる。すなわち、図4(a)、(b)、(c)をそれぞれ比較すると、図4(c)では相互作用の数が非常に多くなる。これは集積回路では、スピンとスピンを結ぶ配線数が増大することを意味する。図5に、すべてスピンを接続した場合のスピン数に対するその接続の数、実際の集積回路では配線数の増大の様子を示している。例えばスピン数300では、その接続数は4500にも達し、スピン数より一桁以上大きな数となってしまうのである。より高速、又はより低電力にしようにも、これでは実現が難しい。

【0052】
本発明の実施の形態に係る手法は上記の課題に鑑みてなされたものである。図1に示したようにスピン層を2層用意し、それらを便宜上、上層及び下層として表現することによって、全相互作用を隣接スピン間のみで表現可能できるのである。スピン数は多くなるが、配線数の増大と比較した場合、多層配線は限界があり、本発明の実施の形態の手法の方が小面積にできる。また、これは充放電する負荷容量小さいことも意味し、低電力とすることができる。

【0053】
本発明の実施の形態に係る手法の一例として、回路の構成部品を図6に示す。スピンとその相互作用の計算は、引き出し線でその単位回路を示したように、外部磁場ブロックhと、相互作用Jijと、スピンσjと、計算を行う加算器、スピン向き確率計算器、乱数発生器、比較器とからなる。これらを単位回路として考える。相互作用ブロック26は、各スピンに対する、全スピンとの相互作用Jijを格納する単位回路を構成する。スピンブロック28は、各スピンに対する、スピンσjの状態を格納する単位回路から構成される。計算ブロック30は、各スピンに対する、スピンσjの状態を計算する単位回路から構成される。なお、外部磁場ブロックhが、外部磁場ブロック24の単位回路の一例である。相互作用ブロックJijが、相互作用ブロック26の単位回路の一例である。スピンσjが、スピンブロック28の単位回路の一例である。加算器、スピン向き確率計算器、及び比較器が、上述した計算ブロック30の単位回路の一例である。

【0054】
更に(4)式の表現を用いると、集積回路化により適した他の本発明の実施の形態を取ることができる。図7はその単位回路を模式的に示した実施の形態の一例であり、スピンを表す回路を並べたスピン部分と、相互作用を表す回路を並べた相互作用部分、加算などを行う演算部分とからなる。(4)式の各項のひとつを回路化したものとなる。よって、本発明の実施の形態では、図7に示した単位回路を、図8の態様に示すように並べるだけで必要なスピン数の回路を実現できるという特徴がある。また、外場についても相互作用のひとつとして同じく付け加えれば良い。このように本実施の形態では、相互作用ブロック26、スピンブロック28、及び計算ブロック30の各ブロックにおいて、同一スピンに対する単位回路が対応するように配置することで、容易にレイアウトを行うことができる。

【0055】
図1との関連で説明すると、下層の各σiが相互作用を通して上層に加えられて行く。これにより得られたものが(3)式の各項である。これにより得られた各項を上層σiが横方向に足していく。この操作によりSiが計算される。Siが計算されると次にそのスピンの状態がSiと異符号になるように決定される。次に決定したスピン状態を下層の対応するσiにそれぞれフィードバックする。これを1サイクルとする。この1サイクルは、イジングモデルのスピンの更新で行われる計算である。よって、この1サイクルによって、提案モデルは再隣接間の相互作用のみでイジングモデルの物理機構を再現可能となる。図2、図3、及び図8はこの動作を実現するための実施の形態の例である。

【0056】
上記図2と図3の実施の形態の例では、これらの回路をより詳しく示したものである。本発明の実施の形態では、機能ごとに回路ブロックを分けて配置しているが、本実施の形態の態様の更なる特徴としては、図3に示すように、回路ブロックは、スピンの単位ごとに同様な回路が並ぶことである。すなわち、σ用に作成した回路を並べ、一部の結線を変更すればσ用の回路が得られる。このように、スピンの単位ごとに相互作用ブロック26に当該スピン用の相互作用を追加すれば良い。スピン数が増えた時はこれを繰り返せば良い。よって、図3の実施の形態の例を用いれば、スピン数の増加に合わせて、容易にレイアウトを行うことができるという特徴がある。

【0057】
ここで、計算ブロック30において、複数のスピンを同時に更新するように計算する場合についての実施の形態の例を示す。更新の原理を図9に示す。ここでは3つのスピンがあり、その初期状態として、図9(1)のようにスピン状態と相互作用が与えられたとする。外場は考えず、また、限定された相互作用となるが、他の相互作用があっても外場があっても同様な動作となる。まず最初に、スピンσ1とσ2を同時に更新する。更新は(1)式又は(2)式に従う(ここでは近接のみ考慮すれば良いのでどちらの式でも良い)。このため、σ2とJ12及びσ3とJ13でσ1を更新し、これと同時に、σ1とJ12でσ2を更新する。更新の手法は、(2)式の結果としての符号のみを見ればよい。すなわち、これらの積和を計算し、負であれば上向き、正であれば下向きとする。これにより、図9(2)に示す状態を得る。このときσ1とσ2に矛盾が生じるが、ここでは無視して良い。次に、σ1とσ3を、同じ手法にて同時に更新し図9(3)の状態を得る。すると、σ1はσ2と同時に更新していないので、σ1とσ2の矛盾は解消されたことになる。しかし、今度はσ1とσ3に矛盾が生じるため、最後にσ2とσ3を同時に更新することで矛盾を解消する。ここでσ2とσ3の矛盾については、既に図9(1)と図9(2)の更新によって解消されているのである。以上の本実施例の手法によれば、更新結果として図9(4)に示す最適解を得ることができるという特徴がある。したがって、この手法を用いれば同時にスピンを更新しても、エネルギーを収束させることができる。

【0058】
本手法の考え方で着目すべきは、まず、相互作用を持つスピン同士を同時に更新しようとすると、正しく更新されないということである。そこに矛盾が生じる場合がある。逆に、同時にさえ更新をしなければスピンは不都合なく正しく更新され、矛盾は生じない。そこで、本手法での提案であるこの態様の例では、1つのスピンを2回に分けてそれぞれ別のスピンと同時に更新するというところに特徴がある。これにより、2回目の同時更新で生じた矛盾も、2回目で同時に更新しないことで矛盾を解消することができる。よって、同時にスピンを更新しながらもエネルギーを収束させることが期待できる。

【0059】
次に、この手法を効率よく行う実施の形態の例を示す。満たすべき条件は、1)どのスピンも2回更新する、2)この2回の更新で同じスピンと同時更新してはならない、である。1)、2)をともに満たすためには、図10の例に示すような動作上の空間を想定し、これに従って更新をしていけばよい。すなわち、横にx個だけスピンを並べ、次の行以降の1列目にスピンを転置し縦に並べる。そして、その右隣から同様の手順で続きの番号を横に配置していく。横のスピン数がx、縦のスピン数はx+1となる。図10では、スピン数を36としたときの更新方法を示す。図10中の数字はスピン番号を示し、上の行から順番にひとつの行内のスピンを同時更新する。このとき縦幅x+1が全スピン更新に必要な更新回数となる。すなわち、逐次更新(n回)に比べて更新速度がn/(x+1)倍となるという特徴がある。

【0060】
詳細には、図10に示すように、各時刻で、同時に更新するスピンを所定個定め、所定個のスピンの間で全相互作用し、それ以外のスピンは更新せずに固定するようにして計算を行うようにすればよい。このとき、t+1においてσをσl,σm以外のスピンと同時に更新し、t+2ではσlをσk,σm以外のスピンと同時に更新し、t+3ではσmをσl,σ以外のスピンと同時更新すればこれら3つのスピンを別の時間に更新できる。同時更新は、あるスピンを2つの時間ステップで連続して更新し、更新する当該スピン以外のスピンは、最初の時間ステップと、次の時間ステップとでは異なるようにすることにより効率よく更新できる。スピン内の数字はスピン番号iを示し、上の行から順番に行内のスピンを同時更新する。例えば、スピン番号の2のスピンに着目した場合には、1行目では、1、及び3~8のスピンと同時に更新され、2行目では、9~15のスピンと同時に更新される。また、条件を満たすためには、図10のようにスピンを番号順に横に幅x=(-1+√1+8n)/2(n:スピン数)に収まるように並べ、次の行でそれを転置し縦に並べる。そして、その右隣から同様の手順で続きの番号を配置していけばよい。このとき縦幅x+1が全スピン更新に必要な更新回数となるから、逐次更新(n回)に対して更新速度はn/(x+1)倍になる。以上の更新は、計算ブロック30において、着目するスピンを2回計算することにより更新するものとする。スピンの更新は、着目するスピンと同時に更新する所定個のスピンとを同時に計算し、着目するスピンと所定個のスピン以外のスピンとのσm以外とを同時に計算することにより実現される。

【0061】
図11に示すように、上記回路構成の半導体装置100の回路構成では、従来の回路構成に対して、スピンごとに計算領域を設ける必要がなく、スピン数の密度に対して、スピンの計算領域の面積を、配置するスピンの総数に応じて1/2~1/10程度の面積にまで圧縮することができる。

【0062】
以上説明したように、本発明の実施の形態に係る半導体装置によれば、各スピンの状態を格納するスピンブロックと、各スピンについての全スピンとの相互作用を格納する相互作用ブロックと、スピン間の相互作用を用いてスピンの状態を計算する計算ブロックと、計算対象となるスピンの各々についてのスピン間の相互作用及びスピンの状態を読み出して計算対象となるスピンの各々の状態を計算ブロックに計算させる制御回路と、を含むようにすることにより、イジングモデルの要素を各ブロックによって構成し、高速、かつ、低面積な回路を実現することができる。

【0063】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【0064】
20 制御回路
22 乱数発生器
24 外部磁場ブロック
26 相互作用ブロック
28 スピンブロック
30 計算ブロック
100 半導体装置
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11