Top > Search of Japanese Patents > SEMICONDUCTOR DEVICE > Specification

Specification :(In Japanese)半導体装置

Country (In Japanese)日本国特許庁(JP)
Gazette (In Japanese)公開特許公報(A)
Publication number P2020-052913A
Date of publication of application Apr 2, 2020
Title of the invention, or title of the device (In Japanese)半導体装置
IPC (International Patent Classification) G06N  99/00        (2019.01)
G06F   7/38        (2006.01)
FI (File Index) G06N 99/00
G06F 7/38 510
G06N 99/00 180
Number of claims or invention 5
Filing form OL
Total pages 16
Application Number P2018-184043
Date of filing Sep 28, 2018
Inventor, or creator of device (In Japanese)【氏名】河原 尊之
【氏名】飯村 凌馬
【氏名】北村 知士
Applicant (In Japanese)【識別番号】000125370
【氏名又は名称】学校法人東京理科大学
Representative (In Japanese)【識別番号】100079049、【弁理士】、【氏名又は名称】中島 淳
【識別番号】100084995、【弁理士】、【氏名又は名称】加藤 和詳
【識別番号】100099025、【弁理士】、【氏名又は名称】福田 浩志
Request for examination (In Japanese)未請求
Abstract (In Japanese)【課題】イジングモデルの相互作用の要素を行列と見たときの特徴を利用することにより、相互作用の素子数を減少させ、チップ上のレイアウト面積の削減を図る。
【解決手段】半導体装置を、各スピンの状態を格納するスピンブロックと、各スピンについての他のスピンとの相互作用であって、行列i,jで表現した場合にi≧j又はi≦jとなる相互作用を格納する半減相互作用ブロックと、スピンの状態と相互作用とに基づいてスピンの状態を計算し、スピンの状態を更新する計算ブロックと、計算対象となるスピンの各々について、スピンの状態とスピン間の相互作用とを読み出して、計算対象となるスピンの各々の状態を計算させ更新させる制御回路と、を含んで構成する。
【選択図】図5
Scope of claims (In Japanese)【請求項1】
各スピンの状態を、全スピン間の相互作用を用いて計算するイジングモデルを構成する半導体装置であって、
各スピンの状態を格納するスピンブロックと、
各スピンについての他のスピンとの相互作用であって、行列i,jで表現した場合にi≧j又はi≦jとなる相互作用を格納する半減相互作用ブロックと、
前記スピンの状態と前記相互作用とに基づいて前記スピンの状態を計算し、前記スピンの状態を更新する計算ブロックと、
計算対象となるスピンの各々について、前記スピンの状態とスピン間の前記相互作用とを読み出して、前記計算対象となるスピンの各々の状態を計算させ更新させる制御回路と、
を有する半導体装置。
【請求項2】
矩形の前記半減相互作用ブロックには、前記行列i,jで表現される領域において、前記i≧jとなる相互作用を配置する場合にはi<jに相当する領域、又は前記i≦jとなる相互作用を配置する場合にはi>jに相当する領域を用いて、所定の順序で前記相互作用を格納する素子を配置する請求項1に記載の半導体装置。
【請求項3】
前記計算ブロックにおいて、スピンσi、外場hn、相互作用Jijとし、以下(1)式を用いたエネルギーEの計算において、各項ごとに対応する前記相互作用Jij、及び前記相互作用Jijのiとjを入れ替えた相互作用Jjiであって、前記i≧jにおけるi<j、又は前記i≦jにおけるi>jに相当する相互作用Jjiを用いて計算を行う請求項2に記載の半導体装置。
【数1】
JP2020052913A_000008t.gif

・・・(1)
【請求項4】
前記半減相互作用ブロックに格納する前記i≧j又はi≦jの相互作用について、i=jの相互作用を省略する請求項1~3の何れか1項に記載の半導体装置。
【請求項5】
前記制御回路は、スピンの数n、及びスピンσiのiの番号に対して予め定められた選択条件に従って前記相互作用を選択して前記計算ブロックによる計算を行わせる請求項1~4の何れか1項に記載の半導体装置。
Detailed description of the invention (In Japanese)【技術分野】
【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】
上記目的を達成するために、本発明に係る半導体装置は、各スピンの状態を、全スピン間の相互作用を用いて計算するイジングモデルを構成する半導体装置であって、各スピンの状態を格納するスピンブロックと、各スピンについての他のスピンとの相互作用であって、行列i,jで表現した場合にi≧j又はi≦jとなる相互作用を格納する半減相互作用ブロックと、前記スピンの状態と前記相互作用とに基づいて前記スピンの状態を計算し、前記スピンの状態を更新する計算ブロックと、計算対象となるスピンの各々について、前記スピンの状態とスピン間の前記相互作用とを読み出して、前記計算対象となるスピンの各々の状態を計算させ更新させる制御回路と、を含んで構成されている。
【発明の効果】
【0011】
本発明の半導体装置によれば、イジングモデルの要素を各ブロックによって構成し、かつ、イジングモデルの相互作用の要素を行列と見たときの特徴を利用することにより、相互作用の素子数を減少させ、チップ上のレイアウト面積の削減を図るものである。
【図面の簡単な説明】
【0012】
【図1】全相互作用を実現するイジングモデルの一例を示す図である。
【図2】参考例に係る半導体装置の構成を示すブロック図である。
【図3】参考例に係る半導体装置の詳細な回路構成の一例を示す図である。
【図4】イジングモデルを実現する半導体装置の構成の一例を示す図である。
【図5】半導体装置の構成において、相互作用の素子を半減する場合の一例を示す図である。
【図6】本発明の実施の形態における相互作用の素子を半減する半導体装置の構成の一例を示す図である。
【図7】本発明の実施の形態に係る半導体装置の構成を示すブロック図である。
【図8】計算における相互作用の選択方法を示す図である。
【図9】本発明の実施の形態に係る半導体装置の構成において、i=jの相互作用を省略した変形の一例を示す図である。
【図10】本発明の実施の形態に係る半導体装置の構成において、他の配置方法の変形の一例を示す図である。
【図11】本発明の実施の形態に係る半導体装置の構成において、他の配置方法の変形の一例を示す図である。
【図12】参考例の半導体装置の構成において、スピン数が偶数の場合の一例を示す図である。
【図13】本発明の実施の形態に係る半導体装置の構成において、スピン数が偶数の場合の一例を示す図である。
【図14】本発明の実施の形態に係る半導体装置の構成において、選択回路を含む制御回路220を配置した場合の一例を示す図である。
【図15】選択回路における選択条件を用いた相互作用の選択のフローを示す図である。
【図16】選択信号線を含めた半減相互作用ブロックの詳細の一例を示す図である。
【図17】選択回路の詳細の一例を示す図である。
【発明を実施するための形態】
【0013】
本発明の実施の形態について説明する前に、本発明の実施の形態における技術に至った背景、及びイジングモデルの基本的な原理について説明する。また、イジングモデルを発展させた全相互作用のイジングモデル、及び半導体装置の構成の参考例について説明した上で、本実施の形態の技術について説明する。

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

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

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

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

【0018】
【数1】
JP2020052913A_000003t.gif

・・・(1)

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

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

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

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

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

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

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

【0026】
<半導体装置の参考例>
次に、上記の全相互作用のイジングモデルを実装する半導体装置の参考例を説明する。この参考例で説明する半導体装置は、本発明の実施の形態の技術の前提となる構成である。

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

【0028】
制御回路20は、計算対象となるスピンついて、外部磁場係数、相互作用、及び各スピンの状態を読み出して、計算対象となるスピンの状態を計算ブロック30に計算させ、スピンの状態を更新させる。

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

【0030】
外場ブロック24には、個々のスピンに対するバイアスである外部磁場係数h(以下、外場hとも表記する)の各々を格納する素子が配置される。

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

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

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

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

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

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

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

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

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

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

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

【0042】
JP2020052913A_000005t.gif
は、ビット毎のORアレイの演算を表す。回路では、ANDアレイ又はORアレイに対応する上記記号がスピン状態に関する演算部分であり、演算を行う素子が配置されているものとする。

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

【0044】
図2の基本構成よりも具体化し、図3の詳細より抽象化した図として、図4に、半導体装置100の回路構成の一例を示す。半導体装置100の回路は、外場ブロック24と、相互作用ブロック26と、スピンブロック28と、計算ブロック30とからなる。スピンブロックは、各スピンに対する、スピンσiの状態を格納する素子を配置した単位回路、及び相互作用ブロックから読み出した信号との積を計算する素子を配置した単位回路から構成されている。相互作用ブロックは、各スピンに対するスピン間との全ての相互作用Jijを格納する単位回路から構成されている。なお、ここでいう単位回路とは、回路全体に配置するスピンσiの数であるi(i=1,...,n)を単位として、各ブロックにおいて、当該スピンσiの状態の計算に必要になる各種素子を、iの数に対応するように並べて配置した回路を意味する。

【0045】
図4の回路構成では、以下(2)式のようなイジングモデルのエネルギーを表すことができ、組み合わせ最適化問題の評価関数の等価な表現でもある。

【0046】
【数2】
JP2020052913A_000006t.gif

・・・(2)

【0047】
上記(2)式を計算し、これが減少するように各スピンを更新することができる。値の減少がほぼ止まるときのスピンの状態が、イジングモデルの安定状態であると共に組み合わせ最適化問題の解となるのである。

【0048】
<本発明の実施の形態の原理>
以上を踏まえて、本発明の実施の形態の原理について説明する。本発明の実施の形態は、イジングモデルの要素を各ブロックによって構成する点で参考例と共通しているが、本発明の実施の形態では、更に行列i,jで表現した場合に相互作用Jijの要素が対称行列であるという特徴に着目する。対称行列であるということは、すなわち図4の相互作用ブロック26のi≧jの部分は、j≧iの部分と同じ値が、行列として対称に並んでいることになる。例えば、上記図4の例でいえば、対称行列であるので、例えばJ12とJ21は同じ値となっているのである。これは同じ値となる相互作用の素子を重複して配置しないようにすることで、相互作用の素子の数を半減できることを意味する。

【0049】
そこで、本発明の実施の形態では、行列において、i≧j又はi≦jとなる要素に対応する相互作用の素子のみを回路に搭載することにより、相互作用の素子数を、参考例に比べてほぼ半減させる。これにより、高速、かつ、より低面積な回路を実現することができる、という効果が得られる。

【0050】
また、以下にスピンの状態の更新方法もより小型化に適したものを開示する。イジングモデルの回路では、エネルギーが低い方向へ変化さえすれば良いので、以下(3)式のように式を変形して、スピンσiごとに項を展開してエネルギーEを計算する。

【0051】
【数3】
JP2020052913A_000007t.gif

・・・(3)

【0052】
スピンσiについて各項ごとに計算していく。すなわち、第1項の計算では、上記図4の例では、相互作用ブロック26において、J11、J12、J13、J14の行、外場ブロック24においてh1を選び、その各素子の内容をスピンブロック28に送る。するとスピンブロック28では、J1,jσiとh1が計算され、スピン状態に関する演算部分にて(ΣiJ1,jσi+h1)が計算され、計算結果の符号の値が求まる。ここで、スピンσ1の値とこの計算結果の符号の値とを比較することで、スピンσ1の更新状態を決定することができる。決定された更新状態は、スピンσ1へ戻され、スピンσ1が更新される。この計算、比較、及び更新状態の決定を繰り返すことによって、イジングモデルのエネルギーEが減少するように、スピンの状態を更新することができるのである。その時のエネルギーの値は、外場hiと相互作用Jijが与えられた問題では一定であるので、計算することができるのである。上記の参考例の構成では、外場ブロック24と、相互作用ブロック26と、スピンブロック28と、スピン状態演算を行う計算ブロック30とに分離することによって、回路に必要な面積が低面積であり、かつ、高速な演算が可能な回路を実現できるという特徴があった。

【0053】
次に、本発明の実施の形態において、相互作用の素子数を半減させる場合の回路構成を図6に示すが、まず、図5に相互作用を半減した状態を示している。図5は上記図4において、相互作用Jijは行列表現としては対称行列となるため、相互作用の素子の数を半減させることができることを説明するものである。図5は、i>jの相互作用Jijを省いた状態の図となっている。なお、i=jの場合も含ませて、i≧jを省いても良い。i=jとはそのスピン自身との結合であるため、この係数は1で良いか、計算の種類によっては省くことができるためである。

【0054】
図5のように相互作用の素子数を半減させた場合で、図4と同様の計算を行うためには、図6にその主要部分を示した実施の構成例のように、半減した相互作用Jijの配置及び結線の結果として、矩形の半減相互作用ブロック226を構成する。また、後に説明するようなその選択方法を取る。すなわち、図6では、矩形の半減相互作用ブロック226にて、行列i,jにおいてi≦jとなる相互作用Jijを配置する。この時、図5におけるJ44,J45,J55を、J11,J22,J33の横に、省いたi>jの相互作用Jijの部分を埋めるように図6のように配置する。相互作用Jijは、ひとつ又は2つの出力端子を持っており、各相互作用Jijにおいてそのどちらかに同じ値を出力する。また、一般的にはスピン数がnで奇数の場合には、図5においてJnnをJ11の下になるように図6に倣って配置し、J(n-1)nJ(n-2)nをその下に同様に図6に倣って配置すればよい。スピン数がnで偶数の場合は後述する。このように矩形の半減相互作用ブロック226では、スピン数が奇数か偶数であるかに応じて、所定の順序で相互作用を格納する素子を配置すればよい。この配置において、各相互作用Jijとスピンσjとを電気的に結線する。この時、i≦jのみのJijとなるため、i>jの部分はこのiとjを入れ替えたものに対応する相互作用Jjiを用いる。このために、スピンσ1は相互作用J11,J12~J15と電気的に接続できるように接続するが、例えば、スピンσ3は相互作用J33,J34,J35と共に、相互作用J13,J23と接続できるようにする。更にスピンσjのjが(n+1)/2よりも大きい場合は、例えばスピンσ4のように、J14,J24,J34とjが(n+1)/2に達するまでには、相互作用Jijはjを増やすように、つまり図6で下へ選択していくが、(n+1)/2より大きいと対称なスピンを使う必要があるので、J44,J45へ電気的に接続できるようにする。また、外場hiは図6では半減相互作用ブロック226の並びに準じて、2つの列に分けたがこれはひとつの線にhiを接続しても良い。いずれの場合も計算時に選択するスピンに応じて外場を選択することができる。本実施の形態では、半減相互作用ブロック226として、相互作用Jijの素子ついて、i≦jの部分のみを残して素子を配置し、i>jの部分の素子は配置しないことにより矩形の小面積となることが特徴である。これによって相互作用の素子の数がおよそ半減するのである。例えば、外場hiを考慮しない場合であっても、100個のスピンがあるとすると、その全相互作用の数は1万個となる。本実施の形態では、これが半減しおよそ5000個となる。1000個のスピンでは、スピンの数は1000個から2000個になるが、相互作用の個数としては100万個がおよそ50万個になる。本実施の形態によって構成すれば、半減相互作用ブロック226では信号線は増え、選択のための若干の回路が追加されるが、回路全体での面積の減少は大きいといえる。

【0055】
<本発明の実施の形態の半導体装置の構成>
図7に本発明の実施の形態の半導体装置200の基本的な回路構成を示す。図7は、上記図6を用いて説明した回路における各ブロックの関係を抽象化したブロック図である。なお、参考例と同様となる箇所については説明を省略する。

【0056】
図7に示す半導体装置200は、制御回路220と、乱数発生器22と、外場ブロック224と、半減相互作用ブロック226と、スピンブロック228と、計算ブロック230とにより構成される回路である。

【0057】
外場ブロック224には、外場hiを格納する素子が配置される。

【0058】
半減相互作用ブロック226には、各スピンについての他のスピンとの相互作用であって、行列i,jで表現した場合にi≧j又はi≦jとなる相互作用Jijを格納する素子が配置される。半減相互作用ブロック226は矩形として配置することができる。なお、上記の原理の説明で述べたようにi=jに相当する相互作用は定数として省略しても良い。

【0059】
スピンブロック228には、スピンを格納する素子が配置される。スピンブロック228は、半減相互作用ブロック226の行方向の上辺に対応する位置に配置する。

【0060】
計算ブロック230では、半減相互作用ブロック226のJij及び外場ブロックhiを用いた計算結果Jijσiσjに基づいて、スピンσi又はスピンσjの状態を計算し、スピンσi又はスピンσjの状態を更新する。具体的な更新手法は上記(3)式の説明で示した通りである。

【0061】
制御回路220は、計算対象となる複数のスピンの組み合わせについてのスピン間の相互作用及び各スピンの状態を読み出して計算対象となる各スピンの状態を計算ブロック230に計算させ、スピンの状態を更新させる。
ここで、制御回路220によってスピンの状態を更新させる流れについて説明する。制御回路220は、スピンブロック228のσiを半減相互作用ブロック226に入力させる。制御回路220は、半減相互作用ブロック226に、hiσj及びJijσiσjの計算を行わせる。制御回路220は、半減相互作用ブロック226による計算結果hiσj及び計算結果Jijσiσjを計算ブロック230に出力させる。制御回路220は、計算ブロック230に、計算結果hiσj及び計算結果Jijσiσjを用いて、スピンの状態を計算させ、スピンの状態を更新させる。

【0062】
[計算における選択方法]
図8は、(3)式を用いてエネルギーEを計算するときの、回路における各種素子の選択の方法を相互作用の部分に限って示したものである。スピンσiについて各項ごとに計算していく。図8(a)は、(3)式の第1項であるσ1について、ΣjJ1jσi+h1を計算する場合のΣjJ1jσiの各項の部分である。すなわち、まず、J11とσ1を選択し、この積を求める。同時に、相互作用J12とスピンσ2を、相互作用J13とスピンσ3を、相互作用J14とスピンσ4を、相互作用J15とスピンσ5を選択することができるため、各々この積を求める。これらの結果をこの図8では示していないが、図6の計算ブロック230で和を取ればΣjJ1jσiを求めることができる。後は、この結果とスピンσ1を比較し、スピンσ1の更新する値を決定すれば良いのである。図8(b)は(3)式の第2項であるσ2を計算するときの選択の方法であり、以下、図8(c)はσ3の場合であり、図8(d)はσ4の場合、図8(e)はσ5の場合である。それぞれ、ΣiJ2jσi,ΣjJ3jσi,ΣjJ4jσi,ΣjJ5jσiの各状態について、各項を同時選択し、かつ、計算ができる。同様にこれらの結果を用いて図6の計算ブロック230で和を取れば良い。このようにして、本実施の形態では、スピン更新に必要な計算を行うことができ、また、(3)式を用いてエネルギーEを計算することができるという特徴がある。

【0063】
<本実施の形態の変形例>
図9は、本実施の形態の他の変形例を示す図であり、相互作用Jijにおいてi=jのものを省いた例である。すなわち、相互作用Jijにおいi<jのみを配置している。この実施の形態の変形例では、相互作用ブロックを更に小さくすることができるという特徴がある。i<jにおいて両者でもっとも大きな値のi,jを持つJ45が、図4におけるJ11の場所に配置され、J34,J35が同図のJ21,J22の場所に配置されることによって矩形の半減相互作用ブロックを形成している。この変形例を用いても(3)式を計算することができる。Jijにおいてi=jのものは、単にσiとすればよい。外場hiの配置は図9のように分けても良いが、単にσiを計算するときにそのiに対応するものが選ばれれば良いので、一つの線にすべてを接続しても良い。

【0064】
図10は、矩形の半減相互作用ブロックを形成するための他の配置の方法を示した本実施の形態の変形例である。図9との差を述べれば、図9では、矩形を形成するために図4の配置から移動させた相互作用Jijを図中においてiが増加する方向に縦に並べたが、図10では、jが増加する方向に縦に並べた。図10の方法では、図9の方法に比べて、選択のための制御は異なるが、接続のための配線の面積を小さくできるという特徴がある。

【0065】
図11は、図10と同様な相互作用Jijにおいてi=jのものを省いた例であり、スピン数を増やした場合である。スピン数が奇数の場合には同様に配置すれば良い。i=jを省いた相互作用のみを配列する場合、一般にスピン数nに対して、図11で示すところの縦の並びである相互作用Jijの行の数は(n-1)/2とすることができる。

【0066】
図12はスピン数が偶数の場合の相互作用Jijの半減手法を説明するための図であり、図13がその半減の結果とした構成の実施の形態の例である。i=jを省いた相互作用のみを配列する場合であり、スピン数が偶数の場合には、一般にスピン数nに対して、図13で示すところの縦の並びである相互作用Jijの行の数はn/2とすることができる。移動させた相互作用の並びでは、相互作用J12の下おりに配置されることになる。図13では、外場hiは相互作用の行の並びに合わせて配置した例であるが、スピンσiを計算するときにそのiに対応するものが選ばれれば良く、一つの線にすべてを接続しても良い。本変形例によれば、スピン数が偶数の場合に、半減相互作用ブロックを構成でき、回路面積が減少するという特徴がある。

【0067】
[回路における選択方法]
図6から図13まで半減相互作用ブロック226の構成とその相互作用Jijの選択について述べてきた。なお、外場hiについては説明しなかったが、外場hiも項の計算に必要なものを選択する。

【0068】
以下、制御回路220における相互作用の選択の詳細について述べる。図6から図13までの説明では省略してきたが、図14は、図6の構成を例題に、相互作用Jijと外場hiの選択線とこの選択回路を含む制御回路220を配置した例である。図14において選択線の一つの線は、選択に必要な数の配線を纏めて示している。相互作用Jijは、ひとつ又は2つの出力端子を持っており、各相互作用Jijにおいてそのどちらかに同じ値を出力する。この選択回路からは選択線へ、図15に示すフローに従って、選択に必要な選択信号を発生させて出力していく。以下に説明するように制御回路220では、スピンの数n、及びスピンσiのiの番号に対して予め定められた選択条件に従って相互作用を選択して計算ブロック230による計算を行わせる。

【0069】
ここではスピン数がnであり、nが偶数の場合で説明する。半減相互作用ブロック226では素子を半減させたので、更新するスピンがσiのiがn/2より大きいか小さいかで、ΣkJikσkの計算での選択方法が異なる。この判断は比較器(図示省略)で行えば良い。比較器の回路は、デジタル回路の組み合わせ回路の基本回路のひとつであるのでここでは説明しない。まず、iがn/2より小さい場合は、スピンσkと相互作用Jikは、k=1よりk=2,3,4とnに達するまで順次増やしていくように選択する。これは外部信号で増やしていく信号を入れても良いし、内部で外部から例えばアドレス線を入れてこれを順次切り替えても良いし、単に加算器(図示省略)を廻して作成しても良い。次に、スピンσiのiがn/2より大きい場合、これまでの説明で述べたように、k=1よりkがn/2に達するまでは、Jikは半減相互作用ブロック226を用いる各図の構成では縦方向に選択し、kがn/2を越えて以降は、半減相互作用ブロック226を用いる各図の構成では横方向に選択する。すなわち、k=1よりkがn/2に達するまで選択するスピンσkと相互作用Jikはkを増やしていく。そしてk=n/2+1からは、相互作用は半減させていたので、スピンσkと相互作用Jkiの組にて選択する。相互作用Jkiと、相互作用Jikでは無く、行列で表現した場合の相互作用の行番号と列番号が入れ替わっていることに注意する。このkがn/2を越えるか否かは、σiのiとn/2の大小を判断するのと同じ比較器を用いれば良い。nが奇数の場合も図15に示したように同様なフローで選択信号を発生させる。なお、これらの動作のすべてを選択回路内に置くこともできるが、相互作用Jijや外場hiの回路の中にデコード回路を置き、その選択動作の一部を行わせることもできる。こうすると選択回路からの信号線の数を減らすことができるという特徴がある。又は、集積回路上にマイコン回路を置き、これを用いて行っても良い。また、一部の回路は別チップ上に置くこともできる。

【0070】
このようにして発生した選択信号とそれを伝える選択信号線を用いれば、図16の相互作用Jijの場合を示す例のように、各回路の内部は、Jijデータを2方向に出力することができる。すなわち、Jijの一行目を例にすると、l11~l1nでその行のどの列かを選択し、s1,s2でどの方向に信号を出すかを選択する。Jijの行は、n/2個あるので、l(n/2)1~l(n/2)nまでの選択信号線と各行にs1,s2が配置されている。なお、相互作用Jij回路には更にデコード機能を搭載することが可能であり、少数のデコード回路を搭載することにより選択信号線の数を減らすことができる。

【0071】
選択回路自体は図17に示す例のように、デコード回路によって構成することができる。図15のフローに従って、アドレス信号であるAi(i=1~n)及びBj(j=1~n/2)の信号を切り替えることで所望の選択信号線をl11~l1n,l(n/2)1~l(n/2)n選択することが可能となるのである。

【0072】
以上説明したように、本発明の実施の形態に係る半導体装置によれば、イジングモデルの要素を各ブロックによって構成し、かつ、イジングモデルの相互作用の要素を行列と見たときの特徴を利用することにより、相互作用の素子数を減少させ、チップ上のレイアウト面積の削減を図ることができる。

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