JP2019179364A - 半導体装置、情報処理システム、および情報処理方法 - Google Patents

半導体装置、情報処理システム、および情報処理方法 Download PDF

Info

Publication number
JP2019179364A
JP2019179364A JP2018067782A JP2018067782A JP2019179364A JP 2019179364 A JP2019179364 A JP 2019179364A JP 2018067782 A JP2018067782 A JP 2018067782A JP 2018067782 A JP2018067782 A JP 2018067782A JP 2019179364 A JP2019179364 A JP 2019179364A
Authority
JP
Japan
Prior art keywords
spin
unit
value
memory
coefficient
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.)
Granted
Application number
JP2018067782A
Other languages
English (en)
Other versions
JP6935356B2 (ja
Inventor
真人 林
Masato Hayashi
真人 林
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
Priority to JP2018067782A priority Critical patent/JP6935356B2/ja
Publication of JP2019179364A publication Critical patent/JP2019179364A/ja
Application granted granted Critical
Publication of JP6935356B2 publication Critical patent/JP6935356B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mram Or Spin Memory Techniques (AREA)
  • Semiconductor Memories (AREA)

Abstract

【課題】制約条件を含むイジングモデルの基底状態探索を、効率よく実現可能な技術を提案しようとするものである。【課題を解決するための手段】ユニットを複数備える半導体装置である。ユニットのそれぞれは、自ユニットの値を記憶する第1のメモリと、入力される他ユニットの値に対する係数を記憶する第2のメモリと、自ユニットの値がイジングモデルの1つのスピンの状態を示す値か否かを識別するフラグ値を記憶する第3のメモリとを備える。また、ユニットのそれぞれは、他ユニットの値および係数に基づいて、自ユニットの値の更新値を決定する第1の演算回路と、フラグ値に基づいて、更新値を第1のメモリに記録するタイミングを決定する第2の演算回路と、を備える。【選択図】 図3

Description

本発明は、半導体装置に関し、不等式制約を伴うイジングモデルの基底状態探索を行う半導体装置およびそれを用いた情報処理技術に適用して好適なものである。
イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/−1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数と、スピン毎にある外部磁場係数とで定義される。
イジングモデルは与えられたスピン配列、相互作用係数、及び、外部磁場係数から、その時のエネルギーを計算することができる。イジングモデルのエネルギー関数は一般的に次式で表わされる。
Figure 2019179364
……(1)
なお、σ,σはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hはi番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。
(1)式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。そのため、第一項ではi<jを満たすσ,σの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。
イジングモデルの基底状態探索とは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。相互作用係数及び外部磁場係数の値域に制限を付けないときには、トポロジが非平面グラフになるイジングモデルの基底状態を求めることはNP困難問題であることが知られている。イジングモデルの基底状態探索は、元々イジングモデルが対象としていた磁性体の振る舞いを説明することのみならず、様々な用途に用いられている。
イジングモデルの基底状態を求めることは、上述のようにNP困難問題であることから、イノマン型コンピュータで解くことは計算時間の面で困難を伴う。解くべき問題に対応した並列度を得るために、イジングモデルの場合では、基底状態を探索すべきイジングモデルのスピン数に対応して、それぞれ1つのスピンや、当該スピンにおける他のスピンとの相互作用を表現する素子(以下、これを単位素子と呼ぶ)が必要となる。
以上のことを考慮し、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの記憶装置に代表されるようなアレイ構造であり、かつ集積性を高められるように単位要素が単純な構造が提案されている(例えば特許文献1)。
特開2016−51313号公報
ところで、このような半導体装置を用いてNP困難な組合せ最適化問題を解くことを考えると、解きたい問題を式(1)で表されるエネルギー関数の最小化問題に帰着する必要がある。一般に組合せ最適化問題は一部または全部の変数に制約条件が課されている場合が多い。制約条件は大別して等式制約と不等式制約の2種類があり、いずれもよく使われる。このうち特に不等式制約は多数の等式制約を組み合わせて表現する方法が知られているが、制約式の値の範囲が広い場合には正確に表現するのが難しく、帰着結果のイジングモデルにおいてスピン間の相互作用が複雑になりやすい問題がある。
本発明は以上の点を考慮してなされたもので、不等式制約等の制約条件を含むイジングモデルの基底状態探索を効率よく実現可能な技術を提案しようとするものである。
本発明の一側面は、ユニットを複数備える半導体装置である。ユニットのそれぞれは、自ユニットの値を記憶する第1のメモリと、入力される他ユニットの値に対する係数を記憶する第2のメモリと、自ユニットの値がイジングモデルの1つのスピンの状態を示す値か否かを識別するフラグ値を記憶する第3のメモリとを備える。また、ユニットのそれぞれは、他ユニットの値および係数に基づいて、自ユニットの値の更新値を決定する第1の演算回路と、フラグ値に基づいて、更新値を第1のメモリに記録するタイミングを決定する第2の演算回路と、を備える。
本発明の他の一側面は、上記半導体装置と、処理装置と、記憶装置と、を備える情報処理システムである。ここで、記憶装置は、問題データ、問題変換プログラム、および制御プログラムを記憶する。処理装置は、問題変換プログラムを用いて、問題データをイジングモデル形式の問題に変換する。また、処理装置は、制御プログラムを用いて、イジングモデル形式の問題に基づき、第2のメモリにデータを記録する。
本発明の他の一側面は、ユニットを複数備える半導体装置を用い、上位装置の制御により、半導体装置にイジングモデル形式の問題の少なくとも一部を解かせる情報処理方法である。ユニットのそれぞれは、自ユニットの値を記憶する第1のメモリと、入力される他ユニットの値に対する係数を記憶する第2のメモリと、自ユニットの値がイジングモデルの1つのスピンの状態を示す値か否かを識別するフラグ値を記憶する第3のメモリと、他ユニットの値および係数に基づいて、自ユニットの値の更新値を決定する第1の演算回路と、フラグ値に基づいて、更新値を第1のメモリに記録するタイミングを決定する第2の演算回路と、を備える。フラグ値は、自ユニットの値がイジングモデルの1つのスピンの状態を示す値であって、自ユニットが通常スピンとして機能するか、あるいは、自ユニットの値がイジングモデルの制約条件の逸脱度を示す値であって、自ユニットが制約スピンとして機能するか、を識別する。そして、自ユニットが通常スピンとして機能する場合、上位装置は、第2のメモリに、イジングモデルに基づいた相互作用係数および外部磁場係数を格納する。また、自ユニットが制約スピンとして機能する場合、上位装置は、第2のメモリに、制約条件に基づいた制約条件係数を格納する。
本発明によれば、不等式制約などの制約条件を含むイジングモデルの基底状態を探索でき、安価かつ容易に製造可能な半導体装置を実現できる。
情報処理装置の全体構成を示すブロック図である。 イジングボードの構成を示すブロック図である。 イジングチップの構成を示すブロック図である。 イジングモデルの説明に供する概念図である。 スピンユニットの説明に供する概念図である。 スピンユニットの構成を示すブロック図である。 スピンユニットの動作の説明に供する概念図である。 スピンユニットを用いた制約条件の表現の説明に供する概念図である。 スピンユニットの更新順序の説明に供する概念図である。 基底状態探索処理の処理手順の一例を示すフローチャートである。
実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
以下で説明されて実施例の一態様では、イジングモデルの基底状態探索を行う半導体装置が、並列処理を行なうスピンアレイを備えている。このスピンアレイは複数のスピンユニットから構成されている。各スピンユニットは、イジングモデルの1つのスピンの値と当該スピンに付随する相互作用係数および外部磁場係数を格納するメモリを備えている。また、各スピンユニットは、当該スピンが制約条件の表現に用いられるかどうかを示すフラグ値を管理する。また、各スピンユニットは、自己に隣接するスピンユニットのスピンの値と、自己が保持する相互作用係数及び外部磁場係数に基づいて、自己が保持するスピンの次状態を決定する演算部とを備える。ここで自己に隣接するスピンユニットとは、自己に対してスピンの値を送ってくるスピンユニットである。
この半導体装置は、前述のフラグ値を用いてスピンの更新順序を定める更新順序制御部を備えており、この更新順序制御部は、一つの計算サイクルにおいて、制約条件を表現するフラグ値をもつスピンユニットがそれ以外のスピンユニットよりも先に更新されるよう、演算部に指示する。
この半導体装置によれば、イジングモデルの基底状態探索を実現する半導体装置において、スピンを模擬する単位構成要素を制約条件の判定に流用し、不等式制約を含む場合にも効率よく基底状態探索を行うことができる。以下、本実施例を詳細に説明する。
<有向グラフに拡張したイジングモデル>
本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
Figure 2019179364
……(2)
(1)式で示したイジングモデルとの違いは、(2)式では有向グラフで示されるような相互作用が許されることにある。一般的にイジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jとj番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
拡張したイジングモデルは、Ji,jとJj,iとを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも(1)式のエネルギー関数に対して(2)式のエネルギー関数ではエネルギーの値が2倍になる。
<情報処理装置の全体構成>
図1は、本実施の形態による情報処理装置の全体構成を示す。この情報処理装置1はパーソナルコンピュータやワークステーション又はサーバなどから構成され、システムバス2を介して構成されたCPU(Central Processing Unit、中央処理装置)3、メモリ4、記憶装置5、及び1つ又は複数のイジングボード6を備える。メモリ4は例えばDRAMやSRAMを想定する。記憶装置5は例えば磁気ディスク装置である。以上の構成は、単体のコンピュータで構成してもよいし、あるいは、任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。
記憶装置5には、本情報処理装置1が解くべき最適化問題の問題データ7が格納され、メモリ4には、問題変換プログラム8及びイジングチップ制御プログラム9が格納される。問題変換プログラムは、解きたい最適化問題をイジングモデル形式の問題に変換するプログラムである。またイジングチップ制御プログラム9は、個々のイジングボード6において対応する部分問題を解くための制御を行うためのプログラムである。
イジングボード6は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるGPU(Graphics Processing Unit)のように、情報処理装置1に装着する拡張カードの形態を取ることができる。
<イジングボードの構成>
図2は、イジングボード6の構成図である。イジングボード6は、インタフェース10、イジングチップ部11、及び制御部12を備えて構成される。イジングボード6は、インタフェース10及びシステムバス2(図1)を介して、CPU3(図1)との間でコマンドやデータの送受を行うことができる。
イジングチップ部11は、一つまたは複数のイジングチップ14を備える。図2では一つのみイジングチップ14を図示した。各イジングチップ14は、半導体集積回路技術で構成される。
制御部12は、イジングチップ14を制御する機能を有し、コントローラ15、相互作用クロック生成器16、及び乱数発生器17を備えて構成される。
コントローラ15は、イジングボード6全体の動作制御を司るプロセッサであり、情報処理装置1のCPU3(図1)からシステムバス2(図1)及びインタフェース10を介して与えられるコマンドに従って、イジングチップ14の動作を制御する情報CTRを生成する。また、相互作用クロック生成器16及び乱数発生器17を制御する。
相互作用クロック生成器16は、後述する相互作用クロックを生成するクロック生成器である。相互作用クロック生成器16により生成された相互作用クロックICLKは、イジングチップ14に与えられる。
乱数発生器17は、後述のようにイジングチップ14において実行される基底状態探索が局所最適解に陥るのを防止するための乱数を発生させる。乱数発生器17により発生された乱数RNDは、イジングチップ14にそれぞれ与えられる。乱数を制御するために、乱数発生器17にはコントローラ15から例えば温度情報TMが供給される。
<イジングチップの構成>
図3は、イジングチップ14の概略構成を示す。イジングチップ14は、スピンアレイ20、I/O(Input/Output)アドレスデコーダ21、I/Oドライバ22、相互作用アドレスデコーダ23を備えて構成される。本実施の形態では、イジングチップ14は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
イジングチップ14は、スピンアレイ20にリード/ライトを行うためのSRAM互換インタフェース30としてアドレスバス31、データバス32を備える。また、R/W制御信号RWを与えるR/W制御信号線、及び、I/OクロックCLKを与えるI/Oクロック線を備える。またイジングチップ14は、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース35として、相互作用アドレス線36、及び相互作用クロックICLKを与える相互作用クロック線を備える。なお、本明細書では、クロック等の信号と当該信号を伝送する線路を同じ符号を付して説明する場合がある。
イジングチップ14では、イジングモデルのスピンσi、相互作用係数Ji,j及び外部磁場係数hをすべてスピンアレイ20内のメモリセルに記憶する情報で表現する。スピンσの初期状態の設定や基底探索完了後の解読み出しはSRAM互換インタフェース30を介して行う。またイジングチップ14では、基底状態を探索すべきイジングモデルをスピンアレイ20に設定するための相互作用係数Ji,j及び外部磁場係数hのリード/ライトもSRAM互換インタフェース30を介して行う。
そのため、スピンアレイ20内のスピンσ、相互作用係数Ji,j及び外部磁場係数hにはアドレスが付与されている。そしてイジングチップ14にスピンσ、相互作用係数Ji,j又は外部磁場係数hをリード/ライトする場合、対応するアドレスがコントローラ15からアドレスバス31を介してI/Oアドレスデコーダ21に与えられ、これらスピンσ、相互作用係数Ji,j及び外部磁場係数hのリード/ライトを制御するR/W制御信号RWがコントローラ15からR/W制御線を介してI/Oドライバ22に与えられる。
かくしてI/Oアドレスデコーダ21は、アドレスバス31を介して与えられたアドレスに基づいてスピンアレイ20のワード線をアクティベートし、I/Oドライバ22は、R/W制御線を介して与えられたR/W制御信号RWに基づいてスピンアレイ20内の対応するビット線を駆動する。これによりデータバス32を介して与えられたスピンσの初期値や、相互作用係数Ji,j及び外部磁場係数hの設定値がスピンアレイ20に設定され、又は、基底探索完了後の解がスピンアレイ20から読み出されてデータバス32を介して外部に出力される。
なお、SRAM互換インタフェース30を構成するアドレスバス31、データバス32及びR/W制御線は、I/Oクロック線を介して制御部12からイジングチップ14に与えられるI/OクロックCLKに同期して動作する。ただし、本発明においてインタフェースが同期式である必要はなく、非同期式のインタフェースでも良い。本実施の形態では、同期式のインタフェースであるという前提で説明を行う。
また、イジングチップ14は、基底状態探索を行うために、スピンアレイ20の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース35である。具体的には、イジングチップ14は、コントローラ15から、相互作用を行うスピン群を指定するアドレスを相互作用アドレス線36を介して入力する。そして、相互作用クロック生成器16から入力される、相互作用クロックICLKに同期して相互作用を行う。相互作用アドレスデコーダ23は、相互作用アドレス線36を介して与えられたアドレスに基づいて、スピンアレイ20に対する相互作用係数Ji,j及び外部磁場係数hのリードを行い相互作用計算を実行し、スピンの次状態を決定する。
加えて、イジングチップ14は、後述のようにイジングモデルのスピンを表現するメモリセルの値を確率的に反転させる乱数RNDを注入するための乱数注入線を有している。図2について上述した乱数発生器17により発生された乱数RNDは、この乱数注入線を介してスピンアレイ20に与えられる。また、イジングチップ14は、スピンが制約条件の表現に用いられるかどうかを示すフラグ値を管理し、また、スピンの更新順序を制御するための信号を含む制御信号CTRを、コントローラ15から受け取る。
<スピンアレイの構成>
スピンアレイ20は、1個のスピンσ並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
図4は、スピンユニット40を複数個並べることで、KingGraphと呼ばれるトポロジを持つイジングモデルを構成する例を示している。KingGraphは図示されているとおり、2次元格子に加えて、スピン間の対角線方向にも相互作用をもつトポロジである。図4の例は4(X軸方向)×4(Y軸方向)の大きさのKingGraphである。
座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、としているが、この座標軸は実施の形態の説明上便宜的に定めたものである。KingGraph以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図4のKingGraphトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数8のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数9が必要となる。
図4に示す1個のスピンユニット40には、隣接するスピン(例えば隣接するスピンが8個の場合σ、σ、σ、σ、σn、σ、σp、σ)の値が入力される。このためスピンユニット40は、これら入力する隣接するスピンの値を保持するためのメモリセルを有している(図4中の円とその中の2つの矢印で表現)。またスピンユニット40は、かかるスピンの値に加え、外部磁場係数を保持するメモリセル(図4中の正方形で表現)と、上述した隣接するスピンとの相互作用係数(隣接する8スピンとの相互作用係数Jj,i、Jk,i、Jl,i、Jm,i、Jn,i、o,i、p,i、q,i)とをそれぞれ保持するメモリセル(図4中の長方形で表現)をも有している。
ところで、先に述べたようにイジングモデルは一般的に無向グラフで表現される相互作用を有している。上述した(1)式では、相互作用を表わす項として、Ji,j×σ×σがあるが、これはi番目スピンからj番目スピンへの相互作用を示している。この場合、一般的なイジングモデルではi番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。つまり、Ji,jとJj,iは同一である。しかし、本実施の形態のイジングチップ14では、先に述べたようにこのイジングモデルを有向グラフに拡張し((2)式)、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を非対称にすることを実現している。これにより、モデルの表現能力が高まり、多くの問題をより小規模のモデルで表現することが可能になる。
そのため、1個のスピンユニットをi番目スピンσと考えた時に、このスピンユニット40が保持する相互作用係数であるJj,i、Jk,i、Jl,i、Jm,i、Jn,i、o,i、p,i、q,iは、隣接するj番目、k番目、l番目、m番目、n番目、o番目、p番目、q番目のスピンσ、σ、σ、σ、σn、σ、σp、σから、i番目スピンσへの相互作用を決めるものである。このことは、図4において、スピンユニット40に含まれている相互作用係数が対応する矢印(相互作用)が、図示されているスピンユニット40の外部のスピンから、スピンユニット40の内部のスピンに向かっていることに対応している。
<スピンユニットの概念モデル>
図5により、図4のスピンユニット40単体に注目した接続関係を示す。スピンユニット40は、隣接する8つのスピンユニットから隣接スピンの値を受け取り、また、隣接する8つのスピンユニットへ自分のスピンの値を送る。スピンユニット40は外部磁場係数hと、受け取る隣接スピンの値に対して作用する相互作用係数Jj,i、Jk,i、Jl,i、Jm,i、Jn,i、o,i、p,i、q,iを持つ。
<スピンユニットの具体的構成例>
図6は、スピンユニット40の一構成例の回路ブロック図である。スピンユニット40は、イジングモデルのスピンσ、相互作用係数Jj,i〜Jq,i及び外部磁場係数hを保持するために、1ビットのメモリセルN,および複数ビットのメモリIN、INE,IE,ISE,IS,ISW,IW,INWを備えている。
ここで、スピンユニット40はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンσを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
メモリMAGは外部磁場係数hを記憶する。また、メモリIN、INE,IE,ISE,IS,ISW,IW,INWは、それぞれ相互作用係数Jj,i〜Jq,iを記憶する。具体的には例えば、メモリINは上側のスピン(Y軸方向で−1)、メモリINEは右上側のスピン(X軸方向で+1、Y軸方向で−1)、メモリIEは右側のスピン(X軸方向で+1)、メモリISEは右下側のスピン(X軸方向で+1、Y軸方向で+1)、メモリISは下側のスピン(Y軸方向で+1)、メモリISWは左下側のスピン(X軸方向で−1、Y軸方向で+1)、メモリIWは左側のスピン(X軸方向で−1)、メモリINWは左上側のスピン(X軸方向で−1、Y軸方向で−1)との相互作用係数をそれぞれ記憶する。
また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット40は最大で8個のスピンと接続される。本実施の形態のイジングチップ14では、外部磁場係数及び相互作用係数として整数を表現できる。係数のビット幅は許容するチップの物量に応じて適宜定めることができるが、たとえば4ビットや8ビットといったサイズを用いることができる。係数値は一般的なCPUで用いられるような2の補数形式の数値表現を用いる。
スピンユニット40内のメモリN,MAG、IN、INE,IE,ISE,IS,ISW,IW,INWは、それぞれイジングチップ14の外部からリード/ライト可能でなければならない。そのために、それぞれのメモリに対して固有のメモリアドレスを割りあて、コントローラ15は適切なメモリアドレスに対するリード/ライトを行うことで任意のスピンのスピン値あるいは係数を読み取りあるいは変更することができる。
またスピンユニット40は同時に更新を行うために、相互作用を計算して次のスピンの状態を決定するための回路を、スピンユニット40毎に独立して持っている。図6では、スピンユニット40は、外部とのインタフェースとして、信号線NN、NNE、NE、NSE、NS,NSW、NW、NNW、ON及びRANDOMを有する。
信号線ONは、メモリNに格納される当該スピンユニット40のスピンの値を、他のスピンユニット40(図4のトポロジで隣接するユニット)に出力するインタフェースである。信号線NNは上側のスピン(Y軸方向で−1)、信号線NNEは左上側のスピン(X軸方向で+1、Y軸方向で−1)、信号線NEは右側のスピン(X軸方向で+1)、信号線NSEは右下側のスピン(X軸方向で+1、Y軸方向で+1)、信号線NSは下側のスピン(Y軸方向で+1)、信号線NSWは左下側のスピン(X軸方向で−1、Y軸方向で+1)、信号線NWは左側スピン(X軸方向で−1)、信号線NNWは左上側スピン(X軸方向で−1、Y軸方向で−1)からの入力である。
スピンユニット40では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、と外部磁場係数を合計したときに、正の値と負の値のどちらが支配的か判断することと等価である。例えば、i番目スピンσに、スピンσ、σ、σ、σm、σn、σo、σp、σが隣接しているとして、スピンσの次状態は以下のように決まる。
まず、隣接スピンの値はσ=+1、σ=−1、σ=+1、σ=−1、σ=+1、σ=+1、σ=−1、σ=+1、σ=−1とし、相互作用係数はJj,i=+1、Jk,i=+2、Jl,i=+3、Jm,i=+4、Jn,i=+5、Jo,i=+6、Jp,i=+7、Jq,i=+8、外部磁場係数h=+9とする。このとき、相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べると、σ×Jj,i=+1、σ×Jk,i=−2、σ×Jl,i=+3、σ×Jm,i=−4、σ×Jn,i=+5、σ×Jo,i=−6、σ×Jp,i=+7、σ×Jq,i=−8、h=+9となる。外部磁場係数は、常に値が+1のスピンとの相互作用係数と読み替えて良い。
ここで、i番目のスピンと隣接スピンとの間での局所的なエネルギーは、前述した相互作用係数と隣接スピンの積にそれぞれi番目スピンの値を乗じて、さらに符号を反転させたものになる。例えば、j番目スピンとの間での局所的なエネルギーは、i番目スピンを+1とした時には−1、i番目スピンを−1としたときには+1となるので、i番目スピンを+1にするほうが、ここでの局所的なエネルギーを小さくする方向に働く。
このような局所的なエネルギーを全ての隣接スピン間と外部磁場係数について考えたときに、i番目スピンを+1/−1のどちらにしたほうがエネルギーを小さくできるかを計算する。これは、上述した相互作用係数及び隣接スピンの積と外部磁場係数の総和の符号を判定すればよい。先ほどの例では、全ての和をとると+5となり、符号が正となるためスピンの次状態を+1とすることでエネルギーを最小化するi番目のスピンの次状態を決定することができる。
図6に示した次状態演算部620はこのような相互作用演算を行う回路である。まず、隣接スピンの値と相互作用係数を格納したメモリIN,INE,IE、ISE,IS,ISW,IW,INWとの積を1ビット乗算回路621で求める。1ビット乗算回路621では、入力のスピン値が+1または−1に対応する1ビットの値であるため、入力スピンの符号に応じて係数値の符号を反転させるだけでよく、大規模な乗算回路を用意する必要は無い。その後、1ビット乗算器の出力と外部磁場係数の値を加算器622に入力し、さらに加算器の出力結果を比較器623に入力する。
上述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することができるが、これだけでは局所最適解に陥ってしまう可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことができず、大域最適解に到達しない。そのため、局所最適解から脱出するための作用として、スピンを表現するメモリセルの値を確率的に反転させるために、スピンユニット40はインタフェースとして乱数注入線を有する。
上述のように乱数発生器17(図2)からスピンアレイ20(図3)に与えられた乱数RNDが、乱数注入線を介してスピンユニット40に与えられ、この乱数RNDを比較器623に入力することで、スピンの値が確率的に反転される。比較器623の出力は、メモリNにスピンの次状態として格納される。乱数RNDは温度信号TMにより制御され、例えば温度が高いときに反転確率を高く、温度が低いときに反転確率を低くする。
以上の次状態演算部620の構成によって、スピンアレイでは並列的に相互作用計算が可能となる。このとき、スピンの値を出力するスピンユニットと、スピンの値を受け取るスピンユニットが同時に相互作用計算を行なうと、状態が安定しなくなるため、これらが同時に相互作用計算を行なうことを避けるように制御する。このために、相互作用アドレス線36及び相互作用クロック線ICLKで相互作用アドレスデコーダ23を制御し、相互作用計算を行なわせるスピンユニットを指定する。例えば、スピンユニットを相互に隣接しない2グループに分け、グループごとに相互作用計算を実行する。
なお、上記した以外のスピンアレイやスピンユニットの基本的な構成については、特許文献1等の公知技術に従って構成してよい。
<スピンユニットを用いた制約条件の表現>
上述したように、スピンユニット40は隣接するスピンユニット40のもつスピン値と、隣接するスピンユニットから受ける相互作用を表す相互作用係数との積の総和からスピンの値を計算する。
図7は、スピンユニットの出力値をグラフ化して示したものである。スピンユニット40への乱数信号RNDによるスピン値の反転を無視した場合、i番目のスピンの出力は図7のグラフに示すようになる。グラフの横軸は、i番目のスピンユニット40に隣接するスピンユニットの値と、隣接するスピンユニットから受ける相互作用係数の積の総和を表している。スピンユニット40のスピン値は外部磁場係数hを閾値として−1から+1に変化するステップ関数として捉えることができる。これを利用することで、不等式制約を実現することができる。
図8に制約条件を含むイジングモデルの例を示す。図の左端の制約対象スピン集合801は不等式制約が課せられたスピンの集合である。たとえば、図に示される4つのスピンのうち、+1の値をとるスピンは2個以下といった条件を課す事ができる。中ほどの制約スピン802は制約対象スピン集合801が制約条件を満たしているかどうかを示すスピン値を出力する。ここでは、制約を満たすとき−1を出力し、そうでないとき+1を出力するものと定める。この制約スピン802の出力をさらに他の通常スピン803に入力する。
ここで、制約スピン802から通常スピン803に入力される相互作用係数を適当な正の値+Jに設定すると、制約条件を満たさない場合にイジングモデルのエネルギーが+Jだけ増加することとなる。基底状態探索を実行すると、制約条件を満たすときに、イジングモデルのエネルギーが低くなるスピン値の組合せが高い確率で得られる。このため、結果的に制約条件を満たすスピン値の組合せが得られる。
上記では、目的関数と制約逸脱度の荷重和を最適化する手法を用いている。すなわち、制約条件に対して制約逸脱度を定義し、目的関数と制約逸脱度の荷重和を求め、その荷重和を新たな目的関数として最適化していることになる。目的関数はエネルギーであり、制約逸脱度として制約スピンの出力を利用している。制約逸脱度は目的関数に対するペナルティと考えられるため、上記で設定した係数+Jをペナルティ係数という。ペナルティ係数により、制約逸脱度に重み付けを行なうことが可能である。
<スピンアレイ内におけるスピン更新順序の制御>
上述の方法により、制約条件を満たすスピン値の組合せを得る際には、通常スピン803を更新する際に、隣接する制約スピン802の値が正しい値を出力している必要がある。制約スピン802の値は隣接スピン値の変化に伴って更新されなければならない。
ところで、イジングチップでは基底状態探索を行う際、相互作用クロック1サイクルに複数のスピンを同時に更新することができる。しかし、互いに隣接するスピン同士を同時に更新すると、互いに隣接スピンの古い値を元に次状態を決定するため、競合が発生し正しい値に収束しなくなる。これを避けるため、1サイクルに同時に更新するスピンは互いに隣接しないものに限る。これを制御する仕組みは、先に述べた相互作用制御インタフェース35である。
図9に本実施例でのスピンの更新順序の概念を示す。図4で示したKingGraphトポロジでは、図9に示すように4つの互いに隣接しないスピンの集合に分けることができる。それぞれのグループはスピンユニットを示す丸の中に記したGr1〜Gr4のグループ名で示している。
制約スピンをまったく含まない状態であれば、相互作用クロック1サイクルごとにGr1→Gr2→Gr3→Gr4→Gr1→…といった順序で各グループのスピンを更新する。
一方、制約スピンを含む状態であれば、通常スピンの更新に先立って制約スピンを更新する必要がある。図9において、点線で囲ったスピンが制約スピン802であるとした場合、制約スピン802全てを制約グループとして一度に更新する。具体的には、相互作用クロック1サイクルごとに制約グループ→Gr1→制約グループ→Gr2→制約グループ→Gr3→制約グループ→Gr1→…という順番でスピン値の更新を行う。
このようにスピンの更新順序が保証されることによって、通常の相互作用計算の前には、制約スピン802の値が正しく設定されていることになる。
<スピンユニットの計算順序制御部>
図6を再度参照して、スピンユニット40の計算順序制御の詳細を説明する。スピン更新順序の制御は、スピンユニット40内の計算順序制御部610で行われる。計算順序制御部610には、外部から制約スピン更新制御信号CTR1を入力する。制約スピン更新制御信号CTR1は1ビットの信号で、制約スピンを更新すべきタイミングでは「1」、そうでなければ「0」をとるものである。制約スピン更新制御信号CTR1は、イジングボード上のコントローラ15で生成され、制御信号CTRの一部としてイジングチップ14に入力される(図2)。
上述したように、制約スピンと通常スピンを交互に更新するため、制約スピン更新制御信号CTR1は、相互作用クロック1クロックごとに値が1→0→1→0→…と繰り返す。このとき、イジングモデルを入力する時点で制約スピンが存在しないことがわかっていれば、コントローラ15は制約スピン更新制御信号CTR1を常に「0」としてもよい。こうすることで、制約更新にかかる相互作用クロックサイクルを0にできるため、基底状態探索時間の削減が可能となる。
図6に示すように、計算順序制御部610は1ビットの制約フラグ617をもつ。このフラグが「1」のとき、当該スピンユニット40は制約スピンであるとして動作する。このとき、制約スピン更新制御信号CTR1が「1」となると、論理積618の出力は「1」であり、論理和616の出力が「1」となり、スピン値の更新がイネーブルされる。制約フラグ617は相互作用係数や外部磁場係数と同様に、イジングモデルを読み込む際にコントローラ15によって設定される。
一方、制約スピン更新制御信号CTR1が「0」であるときは、制約スピンに属さないスピンの集合が更新される。このとき、4進カウンタ612がインクリメントされ、メモリセル613の自身のスピンユニットが所属するグループ番号と比較される。これをANDゲート(論理積)615に通すことで、制約フラグ617が「0」かつ制約スピン更新制御信号CTR1が「0」で、4進カウンタ612の値が自身のグループ番号と一致するときのみスピン値の更新が行われる。
図6に基づいてより具体的に、まず、制約フラグ617が「0」の場合の通常スピンとしての動作を説明する。入力された制約スピン更新制御信号CTR1は、否定論理611を介して4進カウンタ612に入力される。制約スピン更新制御信号CTR1が「0」、すなわち、通常スピンを更新するべきタイミングでは、否定論理611を介して4進カウンタ612に「1」が入力される。4進カウンタ612は、「1」の入力によりインクリメントされる。すなわち4進カウンタ612は、通常スピンとしての更新動作の回数をカウントしていることになる。図9の構成を前提として、本実施例で4進カウンタ612は「4」になるとリセットするように動作する。
メモリセル613は、自スピンユニットが通常のスピン更新において、何番目のグループに属しているかを示す情報を格納する。図9の例では、4つのグループに分かれているため、「0」「1」「2」「3」のいずれかの値が格納される。この値は問題設定時にコントローラ15から設定される。
コンパレータ614は、4進カウンタ612の出力とメモリセル613の出力を比較し、一致していた場合に「1」を、そうでない場合に「0」を出力する。コンパレータ614出力の「1」は自スピンユニットが通常のスピンとして更新すべきタイミングであることを示す。コンパレータ614の出力と否定論理611の出力は、論理積615に入力される。論理積615の出力は論理和616に入力される。
制約スピン更新制御信号CTR1が「0」、すなわち、通常スピンの更新動作時には、否定論理611を介した論理積615への入力は「1」となる。また上述のように、自スピンユニットが通常のスピンとして更新すべきタイミングのとき、コンパレータ614出力は「1」となる。よって、このタイミングのみ論理和616の出力が「1」となる。論理和616の出力はメモリNの更新可否を示すイネーブル信号ENとなり、「1」のとき更新が許可される。制約フラグ617が「0」であるため、論理積618の出力は常に「0」であるから、上記以外のタイミングでは、イネーブル信号ENは「0」を維持する。
次に、制約フラグ617が「1」の場合の制約スピンとしての動作を説明する。制約フラグ617が「1」の場合、否定論理611の出力が「0」なので、論理積615から論理和616への入力は常に「0」である。よって、イネーブル信号ENは、論理積618の出力のみで定まる。
制約フラグ617が「1」で、かつ制約フラグ617が「1」の場合のみ、論理積618の出力が「1」となり、メモリNの更新可否を示すイネーブル信号ENが「1」となる。
本実施例では、制約スピンの出力は制約を満たすときマイナスで、制約を満たさないときプラスになるように設定される。従って、制約スピンの出力は制約逸脱度に相当する。図7を再度参照すると、制約を満たすときには総和の値が小さくなるので、+1への反転確率が下がる方向にシフトする。よって、制約を満たす場合に基底状態に遷移しやすいということになる。
<イジングチップの制御手順>
図10は、本情報処理装置1においてCPU3(図1)により実行される基底状態探索処理の処理手順を示す。CPU3は、イジングチップ制御プログラム9(図1)に基づき、この図に示す処理手順に従って、必要なイジングボード6(図2)のコントローラ15(図2)を介して当該イジングボード6内のイジングチップ14を制御することにより、これらのイジングチップ14において基底状態探索を実行させる。
なお、CPU3は、イジングチップ14内のスピンユニット40をイジングボード6内のコントローラ15(図2)を介して制御するが、以下においては理解の容易化のため、コントローラ15の存在を無視して説明を行う。
CPU3は、ユーザからの指示等により基底状態探索処理を開始すると、まず、問題データ7(図1)を問題変換プログラム8(図1)によりイジングモデル形式に変換し、得られた相互作用係数、及び、外部磁場係数を、イジングチップ14内の各(通常)スピンユニット40にそれぞれ設定する。このとき、制約スピンとなるスピンユニット40が決定され、当該スピンユニットには、制約スピンとしての係数が設定される(SP1)。制約スピンとしての係数設定については、後述する。
続いて、CPU3は、各スピンユニットが保持すべきスピンの値を乱数によりそれぞれ決定し、決定したスピンの値となるようにイジングボード6におけるイジングチップ14内の各スピンユニット40のスピンの値を初期化する(SP2)。この場合、制約スピンを含むすべてのスピンユニットに対して一律に処理を行なってよい。初期値は、その後の動作により更新される。
次いで、CPU3は、予め定められた各イジングボード6内の乱数発生器17(図2)が発生する乱数RNDにおいて「1」が出現する確率(以下、これをビット確率と呼ぶ)を設定する(SP3)。本実施の形態の場合、初期時には乱数発生器17が発生する乱数RNDにおけるビット確率を高く設定し、その後、段階的にビット確率を下げてゆく。確率を制御する信号とした例えば温度信号TMを用いる。これにより初期時には各スピンユニット40が保持するスピンの値を反転し易くする一方、その後は徐々に当該スピンの値が反転し難く(「0」又は「1」に収束し易く)することができる。このためステップSP3では、上述の各段階におけるビット確率が設定される。
続いて、CPU3は、イジングボード6の相互作用クロック生成器16(図2)を駆動するなどして、各イジングチップ14内の各スピンユニット40における相互作用演算を1回実行させ(SP5)、この後、現在のビット確率について設定された回数分だけ相互作用演算を実行し終えたか否かを判断する(SP6)。そしてCPU3は、この判断で否定結果を得るとステップSP5に戻り、この後、ステップSP5及びステップSP6の処理を繰り返す。
そしてCPU3は、現在設定されているビット確率について設定された回数分の相互作用演算を実行することにより、ステップSP7で肯定結果を得ると、ステップSP4で設定したビット確率毎の相互作用演算をすべて実行し終えたか否かを判断する(SP7)。
CPU3は、この判断で否定結果を得ると、ビット確率を現在のビット確率よりも低い予め定められたビット確率に更新すると共に(SP8)、その後実行すべき相互作用演算の回数をそのビット確率について予め定められた回数に更新する(SP9)。そしてCPU3は、ステップSP5に戻り、この後、ステップSP5〜ステップSP9の処理を繰り返す。
そしてCPU3は、やがてステップSP4で設定されたビット確率毎の相互作用演算をすべて実行し終えることによりステップSP7で肯定結果を得ると、そのとき対象としているイジングボード6における各イジングチップ14内の各スピンユニット40がそれぞれ保持するスピンの値を読み出し(SP10)、この後、この基底状態探索処理を終了する。
<スピンの係数設定と制約条件の計算例>
本実施例では、通常スピンに対しては基本的に特許文献1と同様に、相互作用係数と外部磁場係数を設定することができる。ただし、制約スピンからの入力に対しては、通常の相互作用係数の代わりにペナルティ係数を設定する。また、制約スピンについては、制約条件に基づいた相互作用係数と外部磁場係数を設定する。これらの係数は、通常スピンの係数と区別するために、制約条件係数と呼ぶことがある。以下で簡単な例を挙げて説明する。
いま、3個の制約対象スピンS1,S2,S3と制約スピンCがあったとする。ここで、制約対象スピンの値がそれぞれσS1,σS2,σS3として、以下の不等式で制約条件を規定することを考える。
σS1+2×σS2+σS3+1<0
制約スピンCに入力される制約対象スピン(隣接スピン)に対する相互作用係数、すなわち制約スピンCに設定される相互作用係数JS1,C、JS2,C、JS3,C、は、それぞれ上記不等式の左辺の各スピンの係数に対応し、
S1,C=1、JS2,C=2、JS3,C=1
と設定する。
また、制約スピンCの外部磁場係数MAGは、不等式の左辺の定数項に対応する。すなわち、
MAG=1
に設定する。
これらの設定は、問題設定時あるいは制約条件設定時に、コントローラ15が各イジングチップ14のスピンアレイに20に対して、制約フラグ617の設定と同時にあるいは別途行なうことができる。
具体的事例をあげてさらに説明すると、上の条件で、いまσS1=−1、σS2=1、σS3=−1とすると、制約スピンCの比較器623への入力は、
1×(−1)+2×1+1×(−1)+1=1
となる。乱数RNDが0であれば、制約スピンCの出力は+1となり、不等式制約を満たさない状態を表現できる。
同様に、スピンの値が、σS1=−1、σS2=−1、σS3=1、制約スピンCの比較器623への入力は、
1×(−1)+2×(−1)+1×1+1=−1
となり、乱数RNDが0であれば、制約スピンCの出力は−1となり、不等式制約を満たしている状態を表現できる。
また、別の例として例えば、制約対象スピンが4スピン(S1,S2,S3,S4)であった場合、+1のスピンの個数が2個以上にならないように制約したいときは、スピンの和が1+1+(−1)+(−1)=0以上になることを避ければよいので、σS1+σS2+σS3+σS4<0なる不等式を導入し、同様に係数を設定すればよい。
以上のように、制約スピンになるスピンユニットに入力される相互作用係数は、実現したい不等式制約中の係数値に対応する。また、制約スピンになるスピンユニットの外部磁場係数は、実現したい不等式制約中の定数項に対応する。一方、制約スピンからの値を入力される通常スピンでは、制約スピンからの値に対する係数+J(ペナルティ係数)を、相互作用係数の代わりに入力する。このように、所望の制約条件を自由に表現することができる。
以上のように本実施の形態の情報処理装置1では、スピンユニット40を用いて制約条件の判定にすることにより、不等式制約を含むイジングモデルの基底状態探索を行うイジングボード6を実現できる。本発明は、イジングモデルの基底状態探索を行う半導体装置に広く適用することができる。
CPU3、メモリ4、記憶装置5、イジングボード6、イジングチップ14、スピンアレイ20、スピンユニット40

Claims (15)

  1. ユニットを複数備える半導体装置であって、
    前記ユニットのそれぞれは、
    自ユニットの値を記憶する第1のメモリと、
    入力される他ユニットの値に対する係数を記憶する、第2のメモリと、
    前記自ユニットの値がイジングモデルの1つのスピンの状態を示す値か否かを識別するフラグ値を記憶する、第3のメモリと、
    前記他ユニットの値および前記係数に基づいて、前記自ユニットの値の更新値を決定する第1の演算回路と、
    前記フラグ値に基づいて、前記更新値を前記第1のメモリに記録するタイミングを決定する第2の演算回路と、を備える、
    半導体装置。
  2. 前記フラグ値は、
    前記自ユニットの値がイジングモデルの1つのスピンの状態を示す値であって、自ユニットが通常スピンとして機能するか、
    あるいは、
    前記自ユニットの値がイジングモデルの制約条件の逸脱度を示す値であって、自ユニットが制約スピンとして機能するか、を識別する、
    請求項1記載の半導体装置。
  3. 自ユニットが前記通常スピンとして機能する場合、
    前記第2のメモリには、前記イジングモデルに基づいた相互作用係数および外部磁場係数が記憶される、
    請求項2記載の半導体装置。
  4. 自ユニットが前記制約スピンとして機能する場合、
    前記第2のメモリには、前記制約条件に基づいた制約条件係数が記憶される、
    請求項3記載の半導体装置。
  5. 自ユニットが前記制約スピンとして機能する場合、
    入力される任意の数の他ユニットの値を、
    σS1、σS2、σS3 ・・・
    として、
    前記制約条件を
    aσS1+bσS2+cσS3+ ・・・+Z<0
    の不等式で規定した場合、
    前記第2のメモリには、
    自ユニットが通常スピンであった場合の相互作用係数に代えて、制約条件係数a、b、c、・・・が、
    自ユニットが通常スピンであった場合の外部磁場係数に代えて、制約条件係数Zが、記憶される、
    請求項4記載の半導体装置。
  6. 自ユニットが前記通常スピンとして機能する場合であって、前記制約スピンとして機能する他ユニットの値が入力される場合には、
    前記第2のメモリには、
    前記他ユニットが通常スピンであった場合の相互作用係数に代えて、制約スピンとして機能する他ユニットの値に対する重みであるペナルティ係数が記憶される、
    請求項4記載の半導体装置。
  7. 前記第2のメモリは複数の係数を記憶し、該複数の係数は前記入力される他ユニットの値に一対一で対応し、
    前記第1の演算回路は、
    前記他ユニットの値と前記係数をそれぞれ積算する複数の乗算回路と、
    前記複数の乗算回路の出力を加算する加算回路と、を備える、
    請求項2記載の半導体装置。
  8. 前記制約スピンとして機能するユニットの値が、前記通常スピンとして機能するユニットに入力されている場合、
    前記第2の演算回路は、
    一つの計算サイクルにおいて、前記通常スピンとして機能するユニットの更新値を第1のメモリに記録するタイミングが、前記制約スピンとして機能するユニットの更新値を第1のメモリに記録するタイミングより後になるように、タイミングを決定する、
    請求項2記載の半導体装置。
  9. 複数の前記ユニットを互いに入出力関係のない複数の任意の数のグループGr1、Gr2、Gr3・・・に分け、前記ユニットのそれぞれは、自ユニットが属するグループを識別する識別情報を記憶する第4のメモリを備え、
    前記制約スピンとして機能するユニットを、前記グループGr1、Gr2、Gr3・・・の例外として制約グループとして分類したとき、
    前記第2の演算回路は、
    前記フラグ値と前記識別情報に基づいて、一つの計算サイクルにおいて、更新値を第1のメモリに記録するタイミングを、
    制約グループ→グループGr1→制約グループ→グループGr2→制約グループ→グループGr3→制約グループ→・・・
    の順序で制御する、
    請求項8記載の半導体装置。
  10. 前記第1のメモリ、前記第2のメモリ、および、前記第3のメモリをリードおよびライトするためのインタフェースを備える、
    請求項1記載の半導体装置。
  11. 請求項10記載の半導体装置と、
    処理装置と、
    記憶装置と、
    を備えるシステムであって、
    前記記憶装置は、問題データ、問題変換プログラム、および制御プログラムを記憶し、
    前記処理装置は、前記問題変換プログラムを用いて、前記問題データをイジングモデル形式の問題に変換し、
    前記処理装置は、前記制御プログラムを用いて、前記イジングモデル形式の問題に基づき、前記第2のメモリにデータを記録する、
    情報処理システム。
  12. 前記処理装置は、
    前記制御プログラムを用いて、前記第1のメモリに初期値データを記録し、前記更新値の前記第1のメモリへの複数回の記録の後に、前記第1のメモリから解答データを読み出す、
    請求項11記載の情報処理システム。
  13. ユニットを複数備える半導体装置を用い、上位装置の制御により、前記半導体装置にイジングモデル形式の問題の少なくとも一部を解かせる情報処理方法であって、
    前記ユニットのそれぞれは、
    自ユニットの値を記憶する第1のメモリと、
    入力される他ユニットの値に対する係数を記憶する、第2のメモリと、
    前記自ユニットの値がイジングモデルの1つのスピンの状態を示す値か否かを識別するフラグ値を記憶する、第3のメモリと、
    前記他ユニットの値および前記係数に基づいて、前記自ユニットの値の更新値を決定する第1の演算回路と、
    前記フラグ値に基づいて、前記更新値を前記第1のメモリに記録するタイミングを決定する第2の演算回路と、を備え、
    前記フラグ値は、
    前記自ユニットの値がイジングモデルの1つのスピンの状態を示す値であって、自ユニットが通常スピンとして機能するか、
    あるいは、
    前記自ユニットの値がイジングモデルの制約条件の逸脱度を示す値であって、自ユニットが制約スピンとして機能するか、を識別し、
    自ユニットが前記通常スピンとして機能する場合、
    前記上位装置は、前記第2のメモリに、前記イジングモデルに基づいた相互作用係数および外部磁場係数を格納し、
    自ユニットが前記制約スピンとして機能する場合、
    前記上位装置は、前記第2のメモリに、前記制約条件に基づいた制約条件係数を格納する、
    情報処理方法。
  14. 前記制約スピンとして機能するユニットの値が、前記通常スピンとして機能するユニットに入力されている場合、
    前記第2の演算回路は、
    一つの計算サイクルにおいて、前記通常スピンとして機能するユニットの更新値を第1のメモリに記録するタイミングが、前記制約スピンとして機能するユニットの更新値を第1のメモリに記録するタイミングより後になるように、タイミングを決定する、
    請求項13記載の情報処理方法。
  15. 前記制約条件が不等式制約である、
    請求項13記載の情報処理方法。
JP2018067782A 2018-03-30 2018-03-30 半導体装置、情報処理システム、および情報処理方法 Active JP6935356B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018067782A JP6935356B2 (ja) 2018-03-30 2018-03-30 半導体装置、情報処理システム、および情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018067782A JP6935356B2 (ja) 2018-03-30 2018-03-30 半導体装置、情報処理システム、および情報処理方法

Publications (2)

Publication Number Publication Date
JP2019179364A true JP2019179364A (ja) 2019-10-17
JP6935356B2 JP6935356B2 (ja) 2021-09-15

Family

ID=68278544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018067782A Active JP6935356B2 (ja) 2018-03-30 2018-03-30 半導体装置、情報処理システム、および情報処理方法

Country Status (1)

Country Link
JP (1) JP6935356B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021157361A (ja) * 2020-03-26 2021-10-07 富士通株式会社 最適化装置及び最適化方法
JP2021157360A (ja) * 2020-03-26 2021-10-07 富士通株式会社 最適化装置及び最適化方法
EP3929775A1 (en) 2020-06-25 2021-12-29 Fujitsu Limited Information processing system, information processing apparatus, information processing method, and program
CN113913774A (zh) * 2020-07-08 2022-01-11 Tdk株式会社 成膜系统、工厂系统和晶圆的成膜方法
EP4075345A1 (en) 2021-04-16 2022-10-19 Fujitsu Limited Information processing system, information processing method, and information processing program
EP4105843A1 (en) 2021-06-18 2022-12-21 Fujitsu Limited Data processing apparatus, computer-readable recording medium storing program, and method of procesing data
JP7571428B2 (ja) 2020-09-09 2024-10-23 日本電気株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016051313A (ja) * 2014-08-29 2016-04-11 株式会社日立製作所 半導体装置、画像セグメンテーション方法、および画像処理装置
WO2017017807A1 (ja) * 2015-07-29 2017-02-02 株式会社日立製作所 情報処理装置及び方法
WO2017037902A1 (ja) * 2015-09-02 2017-03-09 株式会社日立製作所 半導体システムおよび計算方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016051313A (ja) * 2014-08-29 2016-04-11 株式会社日立製作所 半導体装置、画像セグメンテーション方法、および画像処理装置
WO2017017807A1 (ja) * 2015-07-29 2017-02-02 株式会社日立製作所 情報処理装置及び方法
WO2017037902A1 (ja) * 2015-09-02 2017-03-09 株式会社日立製作所 半導体システムおよび計算方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021157361A (ja) * 2020-03-26 2021-10-07 富士通株式会社 最適化装置及び最適化方法
JP2021157360A (ja) * 2020-03-26 2021-10-07 富士通株式会社 最適化装置及び最適化方法
JP7410395B2 (ja) 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法
JP7410394B2 (ja) 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法
EP3929775A1 (en) 2020-06-25 2021-12-29 Fujitsu Limited Information processing system, information processing apparatus, information processing method, and program
CN113913774A (zh) * 2020-07-08 2022-01-11 Tdk株式会社 成膜系统、工厂系统和晶圆的成膜方法
CN113913774B (zh) * 2020-07-08 2024-04-16 Tdk株式会社 成膜系统、工厂系统和晶圆的成膜方法
JP7571428B2 (ja) 2020-09-09 2024-10-23 日本電気株式会社 情報処理装置、情報処理方法、および情報処理プログラム
EP4075345A1 (en) 2021-04-16 2022-10-19 Fujitsu Limited Information processing system, information processing method, and information processing program
EP4105843A1 (en) 2021-06-18 2022-12-21 Fujitsu Limited Data processing apparatus, computer-readable recording medium storing program, and method of procesing data

Also Published As

Publication number Publication date
JP6935356B2 (ja) 2021-09-15

Similar Documents

Publication Publication Date Title
JP6979331B2 (ja) 情報処理装置および情報処理方法
JP6935356B2 (ja) 半導体装置、情報処理システム、および情報処理方法
JP6605610B2 (ja) 半導体装置
JP5864684B1 (ja) 半導体装置
JP5865456B1 (ja) 半導体装置
JP6841722B2 (ja) 情報処理装置
JP6476292B2 (ja) 情報処理装置及びその制御方法
JP6177993B2 (ja) 半導体装置および情報処理装置
JP6496410B2 (ja) 情報処理装置及び方法
JP2016051351A (ja) 半導体装置
JP5894645B1 (ja) 半導体装置及びその品質管理方法
JP6568222B2 (ja) 半導体システムおよび計算方法
JP6503072B2 (ja) 半導体システムおよび計算方法
US9666252B2 (en) Semiconductor device for calculating an interaction model
TWI537980B (zh) 用於寫入經遮罩資料至緩衝器之裝置及方法
US10580481B1 (en) Methods, circuits, systems, and articles of manufacture for state machine interconnect architecture using embedded DRAM
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
US20190155330A1 (en) Information processing system
JP6207583B2 (ja) 半導体装置および情報処理方法
Debenedictis et al. Rebooting Computing with 3D and Architecture/Superstrider Associative Array Architecture.
JP2019148965A (ja) 情報処理装置および半導体集積回路装置
JP2010055212A (ja) 論理検証方法、装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210514

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: 20210803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210825

R150 Certificate of patent or registration of utility model

Ref document number: 6935356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150