JP5922203B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP5922203B2
JP5922203B2 JP2014176560A JP2014176560A JP5922203B2 JP 5922203 B2 JP5922203 B2 JP 5922203B2 JP 2014176560 A JP2014176560 A JP 2014176560A JP 2014176560 A JP2014176560 A JP 2014176560A JP 5922203 B2 JP5922203 B2 JP 5922203B2
Authority
JP
Japan
Prior art keywords
node
unit
state
chip
value indicating
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.)
Expired - Fee Related
Application number
JP2014176560A
Other languages
English (en)
Other versions
JP2016051351A (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
Priority to JP2014176560A priority Critical patent/JP5922203B2/ja
Priority to US14/645,928 priority patent/US10037391B2/en
Publication of JP2016051351A publication Critical patent/JP2016051351A/ja
Application granted granted Critical
Publication of JP5922203B2 publication Critical patent/JP5922203B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • 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/1659Cell access

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)

Description

本発明は、半導体装置に関し、特に、大規模なイジングモデルにおけるスピン間の相互作用を模擬する半導体装置に適用して好適なものである。
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。また相互作用モデルの特徴として、ノード間の影響を2個のノード間の相互作用に限定している(2体間の相互作用)ことが挙げられる。例えば、宇宙空間にある惑星の力学を考えてみると、惑星というノードの間に万有引力による相互作用がある点で相互作用モデルの一種とも解釈できるが、惑星間の影響は2個の惑星間にとどまらず、3個以上の惑星が互いに影響し合って複雑な挙動を示す(いわゆる3体問題や多体問題と言われる問題になる)。
生物学の世界では、脳をモデル化したニューラルネットワークを相互作用モデルの一例として挙げることができる。ニューラルネットワークは神経細胞のニューロンを模した人工ニューロンをノードとしており、人工ニューロン間はシナプス結合という相互作用を持つ。また、ニューロン毎にバイアスを与える場合もある。社会科学の世界では、例えば人間のコミュニケーションを考えると、人間というノードと言語や通信で成される相互作用があることは容易に理解できよう。また、各人間には個別にバイアスがあることも想像できる。そのため人間のコミュニケーションを相互作用モデルに模してその特性を明らかにしようという研究もなされている(例えば特許文献1)。
一方、物理学の世界で代表的な相互作用モデルの例として、イジングモデルを挙げることができる。イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/−1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数と、スピン毎にある外部磁場係数とで定義される。
イジングモデルは与えられたスピン配列、相互作用係数、及び、外部磁場係数から、その時のエネルギーを計算することができる。イジングモデルのエネルギー関数は一般的に次式で表わされる。
なお、σ,σはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hはi番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。
(1)式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。そのため、第一項ではi<jを満たすσ,σの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。
イジングモデルの基底状態探索とは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。相互作用係数及び外部磁場係数の値域に制限を付けないときには、トポロジが非平面グラフになるイジングモデルの基底状態を求めることはNP困難問題であることが知られている。
イジングモデルの基底状態探索は、元々イジングモデルが対象としていた磁性体の振る舞いを説明することのみならず、様々な用途に用いられている。これは、イジングモデルが相互作用に基づく最も単純なモデルであり、同様に相互作用に起因する様々な事象を表現する能力を持っているためであると言える。例えば、特許文献1には、イジングモデルの基底状態探索を用いて、職場組織などの集団におけるストレス度を推定する方法が開示されている。
また、イジングモデルの基底状態探索は、NP困難なグラフ問題として知られている最大カット問題とも対応している。このようなグラフ問題は、ソーシャルネットワークにおけるコミュニティの検出や、画像処理におけるセグメンテーションなど、幅広い応用を持っている。そのため、イジングモデルの基底状態探索を行うソルバがあれば、このような様々な問題に適用することができる。
特開2012−217518号公報 国際公開第2012/118064号パンフレット
イジングモデルの基底状態を求めることは、上述のようにNP困難問題であることから、ノイマン型コンピュータで解くことは計算時間の面で困難を伴う。ヒューリステックを導入して高速化を図るアルゴリズムも提案されているものの、ノイマン型コンピュータではなく物理現象をより直接的に利用した計算、すなわちアナログコンピュータでイジングモデルの基底状態を高速に求める方法が提案されている(例えば特許文献2)。
このような装置では、解くべき問題に対応した並列度が必要になってくる。イジングモデルの場合では、基底状態を探索すべきイジングモデルのスピン数に対応して、それぞれ1つのスピンや、当該スピンにおける他のスピンとの相互作用を表現する素子(以下、これを単位素子と呼ぶ)が必要となる。例えば特許文献2に開示された装置では、スピンとレーザを対応させているため、スピン数に比例した数のレーザが必要となる。すなわち、多数の単位素子を搭載可能なスケーラビリティの高さが必要となる。
以上のことを考慮した場合、単位素子を規則的に多数並べて実現できる半導体装置のような固体素子でイジングモデルの基底状態探索を行えることが望ましい。特に、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの記憶装置に代表されるようなアレイ構造であり、かつ集積性を高められるように単位素子が単純な構造であることが望ましい。そこで、近年、このような半導体装置(半導体チップ)の開発が本願特許出願人により進められている。
ところで、このような半導体装置として、例えば、多数のスピンを含む大規模なイジングモデルにおけるスピン間の相互作用を模擬する半導体装置を構築するためには、単位素子をスピン数に応じた数だけ半導体チップに搭載する必要があるが、このような半導体装置は、チップサイズが大きく、また製造コストも高くなる。従って、このような半導体装置を実現するに際しては、ある程度の数の単位素子が搭載された半導体チップを複数接続するようにして半導体装置を構築することが望ましい。
しかしながら、このような方法によると、半導体チップ間の配線量が大きくなるために製造コストが増大したり、実装上の困難が生じる問題がある。
本発明は以上の点を考慮してなされたもので、大規模な相互作用モデルにおけるノード間の相互作用を模擬することができ、安価かつ容易に製造可能な半導体装置を提案しようとするものである。
かかる課題を解決するため本発明においては、半導体装置に、それぞれ相互作用モデルにおけるノード間の相互作用を模擬する複数の半導体チップと、半導体チップ間を接続するチップ間配線とを設け、複数の半導体チップにより単一の相互作用モデルにおけるノード間の相互作用を模擬し、各半導体チップに、それぞれ対応するノードの状態を示す値と、当該ノードに相互作用を及ぼす他の各ノードとの間の相互作用係数とをそれぞれ保持し、保持したノードの状態を示す値及び各相互作用係数と、当該ノードに相互作用を及ぼす他の各ノードの状態を示す値とに基づいて、対応するノードの次状態を示す値を決定する複数の単位素子と、必要な単位素子が保持するノードの状態を示す値の一部のみをチップ間配線を介して他の半導体チップとの間で送受し、又は、必要な単位素子が保持するノードの状態を示す値をチップ間配線を時分割で共有しながらチップ間配線を介して他の半導体チップとの間で送受する接続部とを設け、接続部に、自半導体チップ内の必要なノードの状態を示す値を保持する単位素子のうちの所定数の単位素子と対応付けて設けられ、対応付けられた各単位素子がそれぞれ保持するノードの状態を示す値と、対応する他の半導体チップにおける対応する単位素子が保持するノードの状態を示す値とを、各単位素子のタイミングをずらして、チップ間配線を介して当該他の半導体チップとの間で送受し、自半導体チップ内の対応付けられた各単位素子がそれぞれ保持するノードの状態を示す値をチップ間配線を介して他の半導体チップに送信する送信側接続部と、当該他の半導体チップからチップ間配線を介して送信される当該他の半導体チップ内の対応する単位素子が保持するノードの状態を示す値を、それぞれ自半導体チップ内の対応する単位素子に振り分ける受信側接続部とを設け、送信側接続部に、自半導体チップ内の当該送信側接続部が構成する送信側接続部と対応付けられた各単位素子にそれぞれ対応させて設けられ、対応する単位素子が保持するノードの状態を示す値を記憶保持する第1のバッファメモリと、当該送信側接続部と対応付けられた単位素子と同じ個数の連続する数値をカウントする第1のカウンタと、第1のカウンタのカウント値に応じて、当該カウント値と対応付けられた第1のバッファメモリに記憶保持されたノードの状態を示す値を、チップ間配線を介して対応する他の半導体チップに送信するマルチプレクサとを設け、受信側接続部に、当該受信側接続部と対応付けられた単位素子と同じ個数の連続する数値をカウントする第2のカウンタと、チップ間配線を介して他の半導体チップから送信される各ノードの状態を示す値を、第2のカウンタのカウント値に応じて、当該カウント値と対応付けられた単位素子にそれぞれ振り分けるデマルチプレクサと、当該受信側接続部と対応付けられた自半導体チップ内の各単位素子と、デマルチプレクサとの間にそれぞれ設けられ、デマルチプレクサにより対応する単位素子に振り分けられたノードの状態を示す値を記憶保持し、記憶保持したノードの状態を示す値を対応する単位素子に与える第2のバッファメモリとを設けるようにした。
本半導体装置によれば、半導体チップ間で必要なノードの値の一部のみを送受するため、これに伴い半導体チップ間を接続するチップ間配線の配線量を抑えることができる。
本発明によれば、大規模な相互作用モデルにおけるノード間の相互作用を模擬することができ、安価かつ容易に製造可能な半導体装置を実現できる。
第1及び第2の実施の形態による情報処理装置の全体構成を示すブロック図である。 マルチイジングチップの構成を示すブロック図である。 イジングチップの構成を示すブロック図である。 イジングモデルの説明に供する概念図である。 スピンユニットの説明に供する概念図である。 スピンユニットの説明に供する概念図である。 第1の実施の形態によるスピンユニットの構成を示すブロック図である。 第1の実施の形態によるスピンユニットの構成を示すブロック図である。 イジングチップ上のスピンユニットの配置例を示すブロック図である。 チップ間配線の一例を示すブロック図である。 イジングチップ間の接続の説明に供するブロック図である。 イジングチップ間の接続の説明に供するブロック図である。 イジングチップ間で一部のスピンの値のみをパラレル伝送する方法の説明に供するブロック図である。 イジングチップ間でチップ間配線を時分割で共有する方法の説明に供するブロック図である。 第1の実施の形態による送信側接続部及び受信側接続部の構成例を示すブロック図である。 図15の送信側接続部及び受信側接続部の動作説明に供するタイミングチャート図である。 図15におけるスピンユニット間でのスピンの値の伝送の様子を示す概念図である。 送信側接続部及び受信側接続部の他の構成例を示すブロック図である。 図18におけるスピンユニット間でのスピンの値の伝送の様子を示す概念図である。 基底状態探索処理の処理手順の一例を示すフローチャートである。 基底状態探索処理の他の処理手順の説明に供する概念図である。 基底状態探索処理の他の処理手順を示すフローチャートである。 第2の実施の形態による送信側接続部及び受信側接続部の構成例を示すブロック図である。 第2の実施の形態によるスピンユニットの構成例を示すブロック図である。 図23におけるスピンユニット間でのスピンの値の伝送の様子を示す概念図である。 第2の実施の形態における送信側接続部及び受信側接続部の他の構成例を示すブロック図である。 図26におけるスピンユニット間でのスピンの値の伝送の様子を示す概念図である。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)有向グラフに拡張したイジングモデル
本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
(1)式で示したイジングモデルとの違いは、(2)式では有向グラフで示されるような相互作用が許されることにある。一般的にイジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jとj番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
本発明はイジングモデルを拡張し、Ji,jとJj,iとを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも(1)式のエネルギー関数に対して(2)式のエネルギー関数ではエネルギーの値が2倍になる。
(1−2)本実施の形態による情報処理装置の構成
(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において対応する部分問題を解くための制御を行うためのプログラムである。なお部分問題は、それ自体が他の部分問題と独立した単一のイジングモデル形式の問題である。
マルチイジングチップ6は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるGPU(Graphics Processing Unit)のように、情報処理装置1に装着する拡張カードの形態を取る。
マルチイジングチップ6は、図2に示すように、インタフェース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にそれぞれ与えられる。
(1−2−2)イジングチップの構成
図3は、イジングチップ13の概略構成を示す。この図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では、イジングモデルのスピンσi、相互作用係数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は、後述のようにイジングモデルのスピンを表現するメモリセルの値を確率的に反転させる乱数を注入するための乱数注入線38を有している。図2について上述した乱数発生器17により発生された乱数は、この乱数注入線38を介してスピンアレイ20に与えられる。
チップ間接続部24は、隣接して配置されたイジングチップ13との間で必要なスピンσの値を送受する際のインタフェースとして機能する。チップ間接続部24の詳細については後述する。
(1−2−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スピンとの相互作用係数Jj,i、Jk,i、Jl,i、Jm,i、Jn,i)とをそれぞれ保持するメモリセルをも有している。
ところで、先に述べたようにイジングモデルは一般的に無向グラフで表現される相互作用を有している。上述した(1)式では、相互作用を表わす項として、Ji,j×σ×σがあるが、これはi番目スピンからj番目スピンへの相互作用を示している。この場合、一般的なイジングモデルではi番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。つまり、Ji,jとJj,iは同一である。しかし、本実施の形態のイジングチップ13では、先に述べたようにこのイジングモデルを有向グラフに拡張し((2)式)、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を非対称にすることを実現している。これにより、モデルの表現能力が高まり、多くの問題をより小規模のモデルで表現することが可能になる。
そのため、1個のスピンユニットをi番目スピンσと考えた時に、このスピンユニット40が保持する相互作用係数であるJj,i、Jk,i、Jl,i、Jm,i、Jn,iは、隣接するj番目、k番目、l番目、m番目、n番目のスピンσ、σ、σ、σ、σから、i番目スピンσへの相互作用を決めるものである。このことは、図4において、スピンユニット40に含まれている相互作用係数が対応する矢印(相互作用)が、図示されているスピンユニット40の外部のスピンから、スピンユニット40の内部のスピンに向かっていることに対応している。
(1−2−4)スピンユニットの構成
スピンユニット40の一構成例を図7及び図8を用いて説明する。スピンユニット40は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット40は図7及び図8の構成の双方を含む。図7はスピンユニット40間の相互作用を実現するための回路を示し、図8はスピンユニット40が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ13外からアクセスするためのインタフェースであるビット線41とワード線42とに注目してスピンユニット40の構成を図示したものである。
スピンユニット40は、イジングモデルのスピンσ、相互作用係数Jj,i〜Jn,i及び外部磁場係数hを保持するために、複数の1ビットのメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1を備えている。なお、メモリセルIS0及びIS1、メモリセルIU0及びIU1、メモリセルIL0及びIL1、メモリセルIR0及びIR1、メモリセルID0及びID1、並びに、メモリセルIF0及びIF1は、それぞれ2個1組で役割を果たすものであるため、適宜、これらをそれぞれまとめてメモリセル対ISx,IUx,ILx,IRx,IDx又はIFxと略記する(図5参照)。
ここで、スピンユニット40はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
図5を用いて、スピンユニット40が有するメモリセル対ISx、IUx、ILx、IRx、IDx及びIFxと、図4に示したイジングモデルのトポロジとの対応関係を示す。メモリセル対ISxは外部磁場係数を記憶する。また、メモリセル対IUx,ILx,IRx,IDx及びIFxは、それぞれ相互作用係数を記憶する。具体的に、メモリセル対IUxは上側のスピン(Y軸方向で−1)、メモリセル対ILxは左側のスピン(X軸方向で−1)、メモリセル対IRxは右側のスピン(X軸方向で+1)、メモリセル対IDxは下側のスピン(Y軸方向で+1)、メモリセル対IFxは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)との相互作用係数をそれぞれ記憶する。
また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット40は最大で5個のスピンと接続される。本実施の形態のイジングチップ13では、外部磁場係数及び相互作用係数として+1/0/−1の3値に対応する。そのため、外部磁場係数及び相互作用係数を表わすためには、それぞれ2ビットのメモリセルが必要となる。
メモリセル対ISx,IUx,ILx,IRx,IDx及びIFxは、末尾の数字が0と1の2つのメモリセル(例えばメモリセル対ISxの場合にはメモリセルIS0及びIS1)の組合せで、+1/0/−1の3値を表現する。例えば、メモリセル対ISxの場合には、メモリセルIS1で+1/−1を表現し、メモリセルIS1が保持する値が1の時は+1、メモリセルIS1が保持する値が0の時には−1を表す。
これに加えて、メモリセルIS0が保持する値が0の時には外部磁場係数を0と見なし、メモリセルIS0が保持する値が1の時にはメモリセルIS1が保持する値で決まる+1/−1のいずれかを外部磁場係数とする。外部磁場係数が0の時は外部磁場係数をディセーブルしていると考えれば、メモリセルIS0に保持された値は外部磁場係数のイネーブルビットであると言うことができる(IS0=1の時に、外部磁場係数がイネーブルされる)。相互作用係数を記憶するメモリセル対IUx,ILx,IRx,IDx及びIFxも同様に係数とビットの値とを対応させている。
スピンユニット40内のメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0及びIF1は、それぞれイジングチップ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,NU,NL,NR,ND,NF,ON及びRNDを有する。信号線ENは当該スピンユニット40のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ43を制御することで、メモリセルNに保持されたスピンの値を、後述の多数決論理回路44からOR回路45を介してセレクタ43に与えられる値に更新することができる。
信号線ONは、当該スピンユニット40のスピンの値を他のスピンユニット40(図4のトポロジで隣接するユニット)に出力するインタフェースである。信号線NU,NL,NR,ND及びNFは、それぞれ他のスピンユニット40(図4のトポロジで隣接するユニット)が保持するスピンの値を入力するためのインタフェースである。信号線NUは上側のスピン(Y軸方向で−1)、信号線NLは左側のスピン(X軸方向で−1)、信号線NRは右側のスピン(X軸方向で+1)、信号線NDは下側のスピン(Y軸方向で+1)、信号線NFは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)からの入力である。
スピンユニット40では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を見たときに、正の値と負の値のどちらが支配的か判断することと等価である。例えば、i番目スピンσに、スピンσ、σ、σ、σ及びσが隣接しているとして、スピンσの次状態は以下のように決まる。
まず、隣接スピンの値はσ=+1、σ=−1、σ=+1、σ=−1、σ=+1とし、相互作用係数はJj,i=+1、Jk,i=+1、Jl,i=+1、Jm,i=−1、Jn,i=−1、外部磁場係数h=+1とする。このとき、相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べると、σ×Jj,i=+1、σ×Jk,i=−1、σ×Jl,i=+1、σ×Jm,i=+1、σ×Jn,i=−1、h=+1となる。外部磁場係数は、常に値が+1のスピンとの相互作用係数と読み替えて良い。
ここで、i番目のスピンと隣接スピンとの間での局所的なエネルギーは、前述した係数にそれぞれi番目スピンの値を乗じて、さらに符号を反転させたものになる。例えば、j番目スピンとの間での局所的なエネルギーは、i番目スピンを+1とした時には−1、i番目スピンを−1としたときには+1となるので、i番目スピンを+1にするほうが、ここでの局所的なエネルギーを小さくする方向に働く。
このような局所的なエネルギーを全ての隣接スピン間と外部磁場係数について考えたときに、i番目スピンを+1/−1のどちらにしたほうがエネルギーを小さくできるかを計算する。これは、先程示した相互作用係数及び隣接スピンの積と、外部磁場係数とをそれぞれ並べたものにおいて、+1と−1のどちらが多いか数えれば良い。先程の例では、+1が4個、−1が2個である。仮に、i番目スピンを+1とすると、エネルギーの総和は−2、i番目スピンを−1とするとエネルギーの総和は+2になる。よって、+1の個数が多い時にはi番目スピンの次状態を+1とし、−1の個数が多い時にはi番目スピンの次状態を−1にするという多数決で、エネルギーを最小化するi番目スピンの次状態を決定することができる。
図7に示した論理回路46は、上述の相互作用を行うための回路である。まず、隣接スピンの状態と、相互作用係数の+1/−1を示すメモリセルIU1,IL1,IR1,ID1,IF1が保持する値との排他的論理和の否定(XNOR)をXNOR回路47で求める。これにより、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、−1は0にエンコードされているものとする)。
もし、相互作用係数が+1/−1だけであれば、XNOR回路47の出力のうち+1/−1のどちらが多いかを多数決論理回路44において多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理回路44に入力すべき値となる。
次に、係数0の実現方法について考える。n入力の多数決論理f(I1,I2,I3,……,In)があるとき、以下の命題は真であると言える。まず、入力I1,I2,I3,……,Inの複製I’1,I’2,I’3,……,I’nがあるとする(任意のkについて、Ik=I’kである)。このとき、f(I1,I2,I3,……,In)の出力は、複製もあわせて入力したf(I1,I2,I3,……,In、I’1,I’2,I’3,……,I’n)と等しい。つまり、各入力変数をそれぞれ2個ずつ入れても、出力は不変である。さらに、入力I1、I2、I3,……,Inの他に、もう一つの入力Ixと、その反転!Ixがあるとする。このとき、f(I1,I2,I3,……,In,Ix,!Ix)の出力は、f(I1,I2,I3,……,In)と等しい。つまり、入力変数とその反転を入力すると、多数決においてその入力変数の影響をキャンセルするように働く。多数決論理のこの性質を利用して係数0を実現する。
具体的には、図7に示すように、XOR回路48を利用して、係数のイネーブルを決めるビット(ビットセルIS0,IU0,IL0,IR0,ID0及びIF0にそれぞれ保持されたビット)の値により、多数決論理回路44に、先に述べたスピン次状態の候補となる値の複製か、その反転を同時に入力する。例えば、メモリセルIS0が保持するビットの値が0の場合、メモリセルIS1が保持するビットの値と、メモリセルIS1が保持するビットの値を反転させた値が同時に多数決論理回路44に入力されるので、外部磁場係数の影響は無い(外部磁場係数が0に相当する)ことになる。また、メモリセルIS0が保持するビットの値が1の場合には、メモリセルIS1が保持するビットの値と、その値と同じ値(複製)が同時に多数決論理回路44に入力されることになる。
上述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することができるが、これだけでは局所最適解に陥ってしまう可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことができず、大域最適解に到達しない。そのため、局所最適解から脱出するための作用として、スピンを表現するメモリセルの値を確率的に反転されるために、スピンユニット40はインタフェースとしてRND線49を有する。
そしてスピンユニット40には、上述のように乱数発生器17(図2)から乱数注入線38(図3)を介してスピンアレイ20(図3)に与えられた乱数がこのRND線49を介して与えられ、この乱数がOR回路45に入力することで、スピンの値が確率的に反転される。
なお、図7に示したスピンユニット40のインタフェースであるNU,NL,NR,ND,NFのスピンユニット40間の配線例を図10に示す。この図10は、「Nxyz」というある1個のスピンユニット40に注目したときに、図4に示すようなトポロジを図9のようなスピンユニット配置で実現するために必要な配線を示している。このような配線をスピンユニット40ごとに行うことで、図4のトポロジを実現することができる。
(1−3)マルチイジングチップ内におけるイジングチップ間の配線方法
次に、マルチイジングチップ6(図1)内におけるイジングチップ13(図2)間の配線方法について説明する。
単一のイジングチップ13に多数のスピンユニット40を搭載しようとすると、イジングチップ13のチップサイズが増大し、コスト増につながる。このためマルチイジングチップ6に多数のスピンユニット40を搭載するに際しては、マルチイジングチップ6に複数のイジングチップ13を実装し、これらをチップ間配線により接続する方法がコスト上昇を抑える上で効果的である。
この場合、イジングチップ13の端部に設けられたスピンユニット40と、他のイジングチップ13内の対応するスピンユニット40との間で図10について上述したパターンでの配線を施すために、例えば図11に示すように、隣接する各イジングチップ13のチップ端部にそれぞれ設けられた対応するスピンユニット40同士をチップ間接続部24(図3)の一部を構成する接続部50とチップ間配線14とを介して接続する必要がある。なお、ここで言う「チップ端部に設けられたスピンユニット40」とは、図4のイジングモデルで隣接するスピンの値を保持するスピンユニット40が他のイジングチップ13に設けられたスピンユニット40を指す。
しかしながら、例えば図12に示すように、隣接するイジングチップ13のチップ端部に設けられたすべての対応するスピンユニット40同士をそれぞれ接続するよう接続部50やチップ間配線14(図2)を形成すると、接続部50の数やチップ間配線14の配線量が大きくなり過ぎるためにコストの上昇や実装上の困難が生じる。
そこで、本実施の形態においては、イジングチップ13のチップ端部に設けられた各スピンユニット40のスピンの値を隣接するイジングチップ13に伝送するに際して、必要なスピンの値のうちの一部のスピンの値のみを隣接するイジングチップ13に伝送し、又は、N(正の整数)個のスピンユニット40に対してN−1個以下のチップ間配線14を設け、これらのチップ間配線14を時分割で共有することにより、基底状態探索の精度を大きく低下させることなく、隣接するイジングチップ13間のチップ間配線14の配線量を低減させる。
図13は、イジングチップ13のチップ端部に設けられた各スピンユニット40が保持するスピンの値の一部のみを対応するイジングチップ13にパラレル伝送するよう接続部50及びチップ間配線14を形成した場合の構成例を示す。
この図13の例では、イジングチップ13のチップ端部に設けられた各スピンユニット40のうち、1個おきのスピンユニット40にそれぞれ対応させて、隣接する他のイジングチップ13内の対応するスピンユニット40との間でスピンの値を送受するための接続部50が設けられている。この接続部50は、図11について上述したように送信側の接続部(以下、これを送信側接続部と呼ぶ)60及び受信側の接続部(以下、これを受信側接続部と呼ぶ)61により構成されるものである。
そしてイジングチップ13間には、一方のイジングチップ13に設けられた送信側接続部60と、他方のイジングチップ13に設けられた対応する受信側接続部61とを接続すると共に、当該一方のイジングチップ13に設けられた受信側接続部61と、当該他方のイジングチップ13に設けられた送信側接続部60とをそれぞれ接続するようチップ間配線14が設けられている。
このような構成によれば、イジングチップ13のチップ端部に設けられたスピンユニット40のうち、対応する接続部50が設けられていないスピンユニット40については、隣接するイジングチップ13内の対応するスピンユニット40からスピンの値が得られないが、このようにしたとしても他のスピンユニット40から必要な他のスピンの値を得られるため、マルチイジングチップ6全体としての基底状態探索の精度が大きく低下することはない。またこのようにすることによって、隣接するイジングチップ13間の配線量を1/2に低減することができる。
一方、図14は、チップ間配線14を時分割で共有するよう接続部50及びチップ間配線14を形成した場合の構成例を示す。
この図14の例では、イジングチップ13のチップ端部に設けられた所定個数(図14では3個)のスピンユニット40ごとに1つの接続部51が形成される。この接続部51は、これらのスピンユニット40が隣接する他のイジングチップ13内の対応するスピンユニット40に対してスピンの値を送信するためのインタフェースである送信側接続部62と、これらのスピンユニット40が隣接する他のイジングチップ13内の対応するスピンユニット40から送信されるスピンの値を受信するためのインタフェースである受信側接続部63とから構成される。
そしてイジングチップ13間には、一方のイジングチップ13に設けられた送信側接続部62と、隣接する他方のイジングチップ13に設けられた対応する受信側接続部63とを接続すると共に、当該一方のイジングチップ13に設けられた受信側接続部63と、当該他方のイジングチップ13に設けられた送信側接続部62とをそれぞれ接続するようチップ間配線14が設けられている。
図15は、図14の送信側接続部62及び受信側接続部63の具体的な構成例を示す。なお図14では、3個のスピンユニット40ごとに送信側接続部62及び受信側接続部63が設けられている例を示しているのに対して、図15では、4個のスピンユニット40ごとに送信側接続部62及び受信側接続部63が設けられている例を示しているが、これは特に意味はない。何個のスピンユニット40ごとに送信側接続部62及び受信側接続部63を設けるかは問題ではない。
また図1では、「チップ1」というイジングチップ13から「チップ2」というイジングチップ13にスピン値を送信するための送信側接続部62及び受信側接続部63の構成とチップ間配線14とについてのみ記載しており、「チップ2」というイジングチップ13から「チップ1」というイジングチップ13にスピン値を送信するための送信側接続部62及び受信側接続部63の構成とチップ間配線14とについては省略している。なお後者は前者と同様の構成を有する。
図15に示すように、送信側接続部62は、対応するスピンユニット40にそれぞれ対応させて設けられた複数のバッファメモリ70と、カウンタ71、オーバフロー検出部72及びマルチプレクサ73とを備えて構成される。
カウンタ71は、その送信側接続部62に接続されたスピンユニット40と同じ個数分の「0」から始まる連続する数値をI/Oクロックに同期して繰り返しカウントするn進カウンタである。例えば図15の場合、4個のスピンユニット40に対応して1つの送信側接続部62が設けられているため、カウンタ71は、「0」〜「3」という4つの数値を繰り返しカウントする。そしてカウンタ71は、カウント値をオーバフロー検出部72及びマルチプレクサ73に逐次通知する。
オーバフロー検出部72は、カウンタ71から通知されるカウント値(図16(C))が例えば「0」の期間だけ論理「1」レベルに立ち上がる図16(A)のようなイネーブル信号ENを各バッファメモリ70に送信する。またオーバフロー検出部72は、イネーブル信号ENと同様に、カウンタ71のカウント値が「0」の期間だけ論理「1」レベルに立ち上がる図16(B)のようなリセット信号RESETを生成し、生成したリセット信号RESETを隣接するイジングチップ13の対応する受信側接続部63に送信する。
バッファメモリ70は、1ビットのメモリセルからそれぞれ構成される。バッファメモリ70は、オーバフロー検出部72から与えられるイネーブル信号ENが論理「1」レベルに立ち上がった期間だけ対応するスピンユニット40が保持するスピンの値を取り込んで記憶保持し、記憶保持したスピンの値をマルチプレクサ73に送出する。
マルチプレクサ73は、カウンタ71から通知されるカウント値に応じて、そのカウンタ値と対応付けられたバッファメモリ70から送出されるスピンの値を選択的にチップ間配線14を介して隣接するイジングチップ13内の対応する受信側接続部63に送信する。
実際上、マルチプレクサ73は、カウンタ71から通知されるカウント値が「0」の期間は、図15の「a」というスピンユニット40に対応するバッファメモリ70から送出されるスピンの値をチップ間配線14を介して隣接するイジングチップ13内の対応する受信側接続部63に送信し、カウンタ71から通知されるカウント値が「1」の期間は、図15の「b」というスピンユニット40に対応するバッファメモリ70から送出されるスピンの値をチップ間配線14を介して隣接するイジングチップ13内の対応する受信側接続部63に送信する。またマルチプレクサ73は、カウンタ71から通知されるカウント値が「2」の期間は、図15の「c」というスピンユニット40に対応するバッファメモリ70から送出されるスピンの値をチップ間配線14を介して隣接するイジングチップ13内の対応する受信側接続部63に送信し、カウンタ71から通知されるカウント値が「3」の期間は、図15の「d」というスピンユニット40に対応するバッファメモリ70から送出されるスピンの値をチップ間配線14を介して隣接するイジングチップ13内の対応する受信側接続部63に送信する。
一方、受信側接続部63は、自己に接続されたスピンユニット40にそれぞれ対応させて設けられた複数のバッファメモリ74と、カウンタ75及びデマルチプレクサ76とを備えて構成される。
カウンタ75は、その受信側接続部63に接続されたスピンユニット40と同じ個数(送信側接続部62に接続されたスピンユニット40と同じ個数)分の「0」から始まる連続する数値をI/Oクロックに同期して繰り返しカウントするn進カウンタである。例えば図15の場合、4個のスピンユニット40に対応して1つの受信側接続部63が設けられているため、カウンタ75は、「0」〜「3」という4つの数値を繰り返しカウントする。
この場合、カウンタ75には、上述のように隣接するイジングチップ13の対応する送信側接続部62のオーバフロー検出部72から送信された図16(D)のようなリセット信号RESETが与えられる。なお図16(D)は、イジングチップ13間におけるリセット信号RESETの送信に2クロック分の遅延(「delay」)が発生している様子を示している。かくしてカウンタ75は、図16(E)に示すように、かかるリセット信号RESET(図16(D))が論理「1」レベルから論理「0」レベルに立ち下がるタイミングでカウント値が「0」となるようにカウントを行う。そしてカウンタ75は、そのときのカウント値をデマルチプレクサ76に逐次通知する。
デマルチプレクサ76は、カウンタ75から通知されるカウント値に同期して、隣接するイジングチップ13の対応する送信側接続部62からチップ間配線14を介して送信されてきたスピンの値を対応するバッファメモリ74に振り分ける。
実際上、デマルチプレクサ76は、図15において、カウンタ75から通知されるカウント値が「0」の期間は、受信したスピン値を「e」というスピンユニット40に対応するバッファメモリ74に振り分け、カウンタ75から通知されるカウント値が「1」の期間は、受信したスピンの値を「f」というスピンユニット40に対応するバッファメモリ74に振り分ける。またデマルチプレクサ76は、カウンタ75から通知されるカウント値が「2」の期間は、受信したスピンの値を「g」というスピンユニット40に対応するバッファメモリ74に振り分け、カウンタ75から通知されるカウント値が「3」の期間は、受信したスピンの値を「h」というスピンユニット40に対応するバッファメモリ74に振り分ける。
バッファメモリ74は、1ビットのメモリセルからそれぞれ構成され、デマルチプレクサ76から振り分けられたスピンの値を記憶保持し、記憶保持したスピンの値を対応するスピンユニット40に送出する。
以上により、図17に示すように、送信側のイジングチップ13内の対応する各スピンユニット40(「チップ1」の「a」〜「d」という各スピンユニット40)からそれぞれ同じタイミングで出力されたスピンの値が、送信側接続部62と接続されたスピンユニット40の数をnとして、時間的に1/nに間引かれて受信側のイジングチップ13内の対応する各スピンユニット40(「チップ2の「e」〜「h」という各スピンユニット40)にそれぞれ伝送されることになる。
このような構成によれば、イジングチップ13のチップ端部に設けられた各スピンユニット40は、隣接するイジングチップ13内の対応するスピンユニット40から時間的に間引かれた一部のスピンの値しか得られないが、このようにしたとしても相互作用処理の初期時には、元々スピンの値が頻繁に反転するためスピンの値が時間的に間引かれて伝送されてもスピンの反転に大きく影響することがなく、また相互作用処理の後半時にはスピンがあまり反転しなくなるため他のスピンの反転に大きく影響することがない。よって、このようにしても、スピンユニット40における基底状態探索の精度が大きく低下することはない。逆に、このようにすることによって、イジングチップ13間を接続するチップ間配線14の配線量を1/nに低減することができる。
図15との対応部分に同一符号を付した図18は、かかる接続部51(図11)における送信側接続部62の他の構成例を示す。図18に示す送信側接続部62Aは、当該送信側接続部62Aに接続されたスピンユニット40にそれぞれ対応させたバッファメモリが設けられておらず、各スピンユニット40の出力が直接マルチプレクサ73に入力される点と、これに伴ってオーバフロー検出部72Aがイネーブル信号を生成せず、リセット信号RESETのみを生成して隣接するイジングチップ13内の対応する受信側接続部63に送信する点とが図15について上述した送信側接続部62の構成と相違する。
なお図18では、「チップ1」というイジングチップ13から「チップ2」というイジングチップ13にスピン値を送信するための送信側接続部62A及び受信側接続部63の構成とチップ間配線14とについてのみ記載しており、「チップ2」というイジングチップ13から「チップ1」というイジングチップ13にスピン値を送信するための送信側接続部62A及び受信側接続部63の構成とチップ間配線14とについては省略しているが、後者は前者と同様の構成を有する。
図19は、このような構成を有する送信側接続部62A及び受信側接続部63間におけるスピンの値の伝送の様子を示す。この図19からも明らかなように、図18に示す送信側接続部62A及び受信側接続部63間では、送信側のイジングチップ13内の対応する各スピンユニット40(「チップ1」の「a」〜「d」という各スピンユニット40)からそれぞれ互いに異なるタイミング(互いに異なるクロック)で出力されたスピンの値が、送信側接続部62Aと接続されたスピンユニット40の数をnとして、時間的に1/nに間引かれて受信側のイジングチップ13内の対応する各スピンユニット40(「チップ2の「e」〜「h」という各スピンユニット40)にそれぞれ伝送されることになる。
このような構成によれば、図15について上述した場合と同様に、スピンユニット40における基底状態探索の精度を大きく低下させることなく、イジングチップ13間を接続するチップ間配線14の配線量を1/nに低減することができる。
(1−4)マルチイジングチップの制御手順
図20は、本情報処理装置1においてCPU3(図1)により実行される基底状態探索処理の処理手順を示す。CPU3は、マルチイジングチップ制御プログラム9(図1)に基づき、この図2に示す処理手順に従って、必要なマルチイジングチップ6(図2)のコントローラ15(図2)を介して当該マルチイジングチップ6内のイジングチップ13を制御することにより、これらのイジングチップ13において基底状態探索を実行させる。
なお、CPU3は、各マルチイジングチップ6内のイジングチップ13や、イジングチップ13内のスピンユニット40をマルチイジングチップ6内のコントローラ15(図2)を介して制御するが、以下においては理解の容易化のため、適宜、コントローラ15の存在を無視して説明を行う。
CPU3は、ユーザからの指示等によりこの基底状態探索処理を開始すると、まず、問題データ7(図1)を問題変換プログラム8(図1)によりイジングモデルに変換し、当該変換により得られたイジングモデルをマルチイジングチップごとの部分問題(部分的なイジングモデル)に分割し、当該部分問題の相互作用係数及び外部磁場係数を各イジングチップ13内の各スピンユニット40にそれぞれ設定するよう対応するマルチイジングチップ6のコントローラ15に指示を与える(SP1)。かくして、この指示が与えられたマルチイジングチップ6のコントローラ15は、かかる部分問題をさらにイジングチップ13ごとの部分問題に分割し、これら部分問題の相互作用係数及び外部磁場係数をそれぞれ対応するイジングチップ6にそれぞれ設定する。
続いて、CPU3は、各スピンユニットが保持すべきスピンの値を乱数によりそれぞれ決定し、決定したスピンの値となるようにかかるマルチイジングチップ6における各イジングチップ13内の各スピンユニット40のスピンの値を初期化する(SP2)。
次いで、CPU3は、予め定められた各マルチイジングチップ6内の乱数発生器17(図2)が発生する乱数において「1」が出現する確率(以下、これをビット確率と呼ぶ)を設定する(SP3)。本実施の形態の場合、初期時には乱数発生器17が発生する乱数におけるビット確率を高く設定し、その後、段階的にビット確率を下げてゆく。これにより初期時には各スピンユニット40が保持するスピンの値を反転し易くする一方、その後は徐々に当該スピンの値が反転し難く(「0」又は「1」に収束し易く)することができる。このためステップSP3では、上述の各段階におけるビット確率が設定される。
さらにCPU3は、予め定められたビット確率毎の相互作用演算の実行回数をそれぞれ設定し(SP4)、この後、イジングチップ13間でのタイミングを合わせるため、各イジングチップ13における各接続部50(図11)内のカウンタ(送信側接続部62,62Aのカウンタ71(図15、図18)、及び、受信側接続部63のカウンタ75(図15、図18))をリセット(カウント値を「0」にセット)する(SP5)。
続いて、CPU3は、マルチイジングチップ6の相互作用クロック生成器16(図2)を駆動するなどして各イジングチップ13内の各スピンユニット40における相互作用演算を1回実行させ(SP6)、この後、現在のビット確率について設定された回数分だけ相互作用演算を実行し終えたか否かを判断する(SP7)。そしてCPU3は、この判断で否定結果を得るとステップSP6に戻り、この後、ステップSP6及びステップSP7の処理を繰り返す。
そしてCPU3は、やがて現在設定されているビット確率について設定された回数分の相互作用演算を実行し得ることによりステップSP7で肯定結果を得ると、ステップSP4で設定したビット確率毎の相互作用演算をすべて実行し終えたか否かを判断する(SP8)。
CPU3は、この判断で否定結果を得ると、ビット確率を現在のビット確率よりも低い予め定められたビット確率に更新すると共に(SP9)、その後実行すべき相互作用演算の回数をそのビット確率について予め定められた回数に更新する(SP10)。そしてCPU3は、ステップSP6に戻り、この後、ステップSP6〜ステップSP10の処理を繰り返す。
そしてCPU3は、やがてステップSP4で設定されたビット確率毎の相互作用演算をすべて実行し終えることによりステップSP8で肯定結果を得ると、そのとき対象としているマルチイジングチップ6における各イジングチップ13内の各スピンユニット40がそれぞれ保持するスピンの値を読み出し(SP11)、この後、この基底状態探索処理を終了する。
なお本実施の形態の情報処理装置1において、各マルチイジングチップ6内の対応するイジングチップ13間をそれぞれ接続するチップ間配線14(図11)における遅延時間は一定である。このため、各イジングチップ13にそれぞれ与えられる上述の相互作用クロックの周波数(以下、これを相互作用周波数と呼ぶ)を低くすると、イジングチップ13間における相互作用クロックの遅延クロック数が小さく見え、逆に相互作用周波数を高くすると、イジングチップ13間における相互作用クロックの遅延クロック数が大きく見える。
この場合、基底状態探索の開始直後は、各スピンユニット40におけるスピンの値が高確率でランダムに反転するため、イジングチップ13間でスピンの値が遅れて到達しても基底状態探索にそれほど大きな影響を与えない。従って、このような状況のもとでは、各スピンユニット40を高い相互作用周波数で動作させることができる。
一方、基底状態探索の終了が近づいてくると、各スピンユニット40におけるスピンの値の反転が起こり難くなるため、相互作用演算の実行時に隣接スピンの値としてより正確な値が必要となってくる。このため、このような状況のもとでは、見かけ上の遅延を小さくするため、図21に示すように、相互作用周波数を段階的に徐々に下げてゆくことが好ましい。また、相互作用周波数を下げてゆくとスピンが反転し難くなるため、相互作用周波数が低いほど相互作用周波数を一定に保つ期間を長くとるのが望ましい。
図22は、このような相互周波数の制御をも含める場合の基底状態探索処理の処理手順を示す。この場合、CPU3は、ステップSP20〜ステップSP28を図20について上述した基底状態探索処理のステップSP1〜ステップSPと同様に処理する。
そしてCPU3は、この後、マルチイジングチップ6内の相互作用クロック生成器16(図2)により生成される相互作用クロックの周波数を予め設定された所定周波数分だけ下げるように各マルチイジングチップ6内の相互作用クロック生成器16(図2)を制御する(SP29)。
そしてCPU3は、この後ステップSP30〜ステップSP31を図20について上述した基底状態探索処理のステップSP10〜ステップSP11と同様に処理し、この後、この基底状態探索処理を終了する。
(1−5)本実施の形態の効果
以上のように本実施の形態の情報処理装置1では、マルチイジングチップ6内のイジングチップ13間において必要なスピンの値の一部のみを送受し、又はチップ間配線14を時分割で共有(対応する複数のスピンユニット40がそれぞれ保持するスピンの値をスピンユニット40毎にタイミングをずらしてチップ間配線14を介して送受)するため、これに伴ってイジングチップ13間を接続するチップ間配線14の配線量を抑えることができる。従って、本実施の形態によれば、大規模なイジングモデルの基底状態を探索でき、安価かつ容易に製造可能なマルチイジングチップ6を実現できる。
(2)第2の実施の形態
図15との対応部分に同一符号を付して示す図23は、図15について上述した第1の実施の形態の受信側接続部63に代えて図1の情報処理装置1に適用される本実施の形態による受信側接続部81の構成を示す。本実施の形態においては、受信側接続部81にバッファメモリが設けられていない点を特徴とする。
実際上、本実施の形態の場合、受信側接続部81には、当該受信側接続部81に接続されたスピンユニット80にそれぞれ対応させたバッファメモリが設けられておらず、デマルチプレクサ76の出力が直接対応するスピンユニット80にそれぞれ入力されると共に、これに伴ってデコーダ82が設けられている。
この場合、デコーダ82には、カウンタ75のカウント値が通知される。そしてデコーダ82は、通知されたカウンタ75のカウント値に基づいて、当該カウント値と対応付けられたスピンユニット80に対してそのカウント値の期間だけ立ち上がるイネーブル信号EN1を与える。
具体的に、図23において、デコーダ82は、「e」というスピンユニット80に対して、カウンタ75から通知されるカウント値が「0」の期間だけ立ち上がるイネーブル信号EN1を与え、「f」というスピンユニット80に対して、カウンタ75から通知されるカウント値が「1」の期間だけ立ち上がるイネーブル信号EN1を与える。またデコーダ82は、「g」というスピンユニット80に対して、カウンタ75から通知されるカウント値が「2」の期間だけ立ち上がるイネーブル信号EN1を与え、「h」というスピンユニット80に対して、カウンタ75から通知されるカウント値が「3」の期間だけ立ち上がるイネーブル信号EN1を与える。
一方、図7との対応部分に同一符号を付した図24は、かかる受信側接続部81と接続される本実施の形態によるスピンユニット80の構成を示す。本スピンユニット80では、受信側接続部81のデコーダ82から与えられるイネーブル信号EN1と、メモリセルIU0,IL0,IR0,ID0,IF0が保持する値との論理和(OR)をそれぞれOR回路83で求め、求めた論理和と、XNOR回路47の出力との排他的論理和(XOR)をXOR回路48において求める。これによりイネーブル信号EN1が0のときにのみデマルチプレクサ76の出力がスピンユニット80に取り込まれて、そのスピンユニット80においてスピンの値が計算されることになる。
図25は、マルチイジングチップ6に図23の送信側接続部62及び受信側接続部81を適用した場合におけるイジングチップ13間でのスピンの値の伝送の様子を示す。この図25からも明らかなように、本実施の形態の場合、イジングチップ13間では、送信側のイジングチップ13内の対応する各スピンユニット40(「チップ1」の「a」〜「d」という各スピンユニット40)からそれぞれ互いに同じタイミング(同じクロック)で出力されたスピンの値が、送信側接続部62Aと接続されたスピンユニット40の数をnとして、時間的に1/nに間引かれて受信側のイジングチップ13内の対応する各スピンユニット80(「チップ2の「e」〜「h」という各スピンユニット80)にそれぞれ伝送される。この場合、受信側接続部81と接続されたスピンユニット80には、当該スピンユニット80がスピン値を取り込む期間以外は受信側接続部81からの入力はない。
このような構成によれば、第1の実施の形態と同様に、スピンユニット40,80における基底状態探索の精度が大きく低下させることなく、隣接するイジングチップ13間を接続するチップ間配線14の配線量を1/nに低減することができる。
なお図23では、「チップ1」というイジングチップ13から「チップ2」というイジングチップ13にスピンの値を送信するための送信側接続部62A及び受信側接続部63の構成とチップ間配線14とについてのみ記載しており、「チップ2」というイジングチップ13から「チップ1」というイジングチップ13にスピンの値を送信するための送信側接続部6及び受信側接続部81の構成とチップ間配線14とについては省略しているが、後者は前者と同様の構成を有する。
一方、図23との対応部分に同一符号を付して示す図26は、図23の送信側接続部62の他の構成例を示す。図26に示す送信側接続部90は、当該送信側接続部90に接続されたスピンユニット40にそれぞれ対応させたバッファメモリが設けられておらず、各スピンユニット40の出力が直接マルチプレクサ73に入力される点と、これに伴ってオーバフロー検出部91がイネーブル信号を生成せず、リセット信号RESETのみを生成して隣接するイジングチップ13内の対応する受信側接続部81に送信する点とが図23について上述した送信側接続部62の構成と相違する。
なお図26では、「チップ1」というイジングチップ13から「チップ2」というイジングチップ13にスピンの値を送信するための送信側接続部90及び受信側接続部81の構成及びチップ間配線14についてのみ記載しており、「チップ2」というイジングチップ13から「チップ1」というイジングチップ13にスピンの値を送信するための送信側接続部90及び受信側接続部81の構成とチップ間配線14とについては省略しているが、後者は前者と同様の構成を有する。
図27は、このような構成を有する送信側接続部90及び受信側接続部81間におけるスピンの値の伝送の様子を示す。この図27からも明らかなように、図26に示す送信側接続部90及び受信側接続部81間では、送信側のイジングチップ13内の対応する各スピンユニット40(「チップ1」の「a」〜「d」という各スピンユニット40)からそれぞれ互いに異なるタイミング(互いに異なるクロック)で出力されたスピンの値が、送信側接続部62と接続されたスピンユニット80の数をnとして、時間的に1/nに間引かれて受信側のイジングチップ13内の対応する各スピンユニット80(「チップ2の「e」〜「h」という各スピンユニット80)にそれぞれ伝送されることになる。
このような構成によれば、図23について上述した場合と同様に、スピンユニット40,80における基底状態探索の精度を大きく低下させることなく、イジングチップ13間を接続するチップ間配線14の配線量を1/nに低減することができる。
以上のように本実施の形態によれば、第1の実施の形態と同様に、イジングチップ13間を接続するチップ間配線14の配線量を抑えることができるため、大規模なイジングモデルの基底状態を探索でき、安価かつ容易に製造可能なマルチイジングチップ6を実現できる。
(3)他の実施の形態
なお上述の第1及び第2の実施の形態においては、本発明をイジングモデルにおけるスピン間の相互作用を模擬するマルチイジングチップ6に適用するようにした場合について述べたが、本発明はこれに限らず、イジングモデル以外の相互作用モデルにおけるノード間の相互作用を模擬する半導体装置にも広く適用することができる。このような半導体装置は、図1〜図27について上述した第1及び第2の実施の形態のマルチイジングチップ6と同様に構成することができる。この場合、ノードごとのバイアスが存在しない場合には、そのバイアスの係数(以下、これをバイアス係数と呼ぶ)を保持するメモリセル対ISxを単位素子から省略することができ、またかかるバイアスが存在する場合には、外部磁場係数に代えてかかるバイアス係数をメモリセル対ISxに保持するようにすれば良い。
また上述の第1及び第2の実施の形態においては、マルチイジングチップ6を図2のように構築し、イジングチップ13を図3のように構築し、スピンユニット40を図7(又は図24)及び図8のように構築するようにした場合について述べたが、本発明はこれに限らず、これらマルチイジングチップ6、イジングチップ13及びスピンユニット40の構成としては、この他種々の構成を広く適用することができる。
同様に、上述の第1及び第2の実施の形態においては、送信側接続部60,62,62A,90及び受信側接続部61,63,81を図15、図18、図23又は図26のように構築するようにした場合について述べたが、本発明はこれに限らず、これら送信側接続部60,62,62A,90及び受信側接続部61,63,81の構成としては、この他種々の構成を広く適用することができる。
本発明は、相互作用モデルにおけるノード間の相互作用を模擬する半導体装置に広く適用することができる。
1……情報処理装置、3……CPU、6……マルチイジングチップ、13……イジングチップ、14……チップ間配線、20……スピンアレイ、24……チップ間接続部、40,80……スピンユニット、60,62,62A,90……送信側接続部、61,63,81……受信側接続部、70,74……バッファメモリ、71,75……カウンタ、72,72A,91……オーバフロー検出部、73……マルチプレクサ、76……デマルチプレクサ、82……デコーダ。

Claims (6)

  1. 半導体装置において、
    それぞれ相互作用モデルにおけるノード間の相互作用を模擬する複数の半導体チップと、
    前記半導体チップ間を接続するチップ間配線と
    を有し、
    複数の前記半導体チップにより単一の前記相互作用モデルにおける前記ノード間の相互作用を模擬し、
    各前記半導体チップは、
    それぞれ対応する前記ノードの状態を示す値と、当該ノードに相互作用を及ぼす他の各前記ノードとの間の相互作用係数とをそれぞれ保持し、保持した前記ノードの状態を示す値及び各前記相互作用係数と、当該ノードに相互作用を及ぼす他の各前記ノードの状態を示す値とに基づいて、対応する前記ノードの次状態を示す値を決定する複数の単位素子と、
    必要な前記単位素子が保持する前記ノードの状態を示す値の一部のみを前記チップ間配線を介して他の前記半導体チップとの間で送受し、又は、必要な前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を時分割で共有しながら前記チップ間配線を介して他の前記半導体チップとの間で送受する接続部とを有し、
    前記接続部は、
    自半導体チップ内の必要な前記ノードの状態を示す値を保持する前記単位素子のうちの所定数の前記単位素子と対応付けて設けられ、対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値と、対応する他の前記半導体チップにおける対応する前記単位素子が保持する前記ノードの状態を示す値とを、各前記単位素子でタイミングをずらして、前記チップ間配線を介して当該他の半導体チップとの間で送受し、
    自半導体チップ内の対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値を前記チップ間配線を介して他の前記半導体チップに送信する送信側接続部と、
    当該他の半導体チップから前記チップ間配線を介して送信される当該他の半導体チップ内の対応する前記単位素子が保持する前記ノードの状態を示す値を、それぞれ自半導体チップ内の対応する前記単位素子に振り分ける受信側接続部とを有し、
    前記送信側接続部は、
    自半導体チップ内の当該送信側接続部が構成する前記送信側接続部と対応付けられた各前記単位素子にそれぞれ対応させて設けられ、対応する前記単位素子が保持する前記ノードの状態を示す値を記憶保持する第1のバッファメモリと、
    当該送信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第1のカウンタと、
    前記第1のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記第1のバッファメモリに記憶保持された前記ノードの状態を示す値を、前記チップ間配線を介して対応する他の前記半導体チップに送信するマルチプレクサとを有し、
    前記受信側接続部は、
    当該受信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第2のカウンタと、
    前記チップ間配線を介して他の前記半導体チップから送信される各前記ノードの状態を示す値を、前記第2のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記単位素子にそれぞれ振り分けるデマルチプレクサと、
    当該受信側接続部と対応付けられた自半導体チップ内の各前記単位素子と、前記デマルチプレクサとの間にそれぞれ設けられ、前記デマルチプレクサにより対応する前記単位素子に振り分けられた前記ノードの状態を示す値を記憶保持し、記憶保持した前記ノードの状態を示す値を対応する前記単位素子に与える第2のバッファメモリとを備える
    ことを特徴とする半導体装置。
  2. 半導体装置において、
    それぞれ相互作用モデルにおけるノードの間の相互作用を模擬する複数の半導体チップと、
    前記半導体チップの間を接続するチップ間配線と
    を有し、
    複数の前記半導体チップにより単一の前記相互作用モデルにおける前記ノードの間の相互作用を模擬し、
    各前記半導体チップは、
    それぞれ対応する前記ノードの状態を示す値と、当該ノードに相互作用を及ぼす他の各前記ノードとの間の相互作用係数とをそれぞれ保持し、保持した前記ノードの状態を示す値及び各前記相互作用係数と、当該ノードに相互作用を及ぼす他の各前記ノードの状態を示す値とに基づいて、対応する前記ノードの次状態を示す値を決定する複数の単位素子と、
    必要な前記単位素子が保持する前記ノードの状態を示す値の一部のみを前記チップ間配線を介して他の前記半導体チップとの間で送受し、又は、必要な前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を時分割で共有しながら前記チップ間配線を介して他の前記半導体チップとの間で送受する接続部とを有し、
    前記接続部は、
    自半導体チップ内の必要な前記ノードの状態を示す値を保持する前記単位素子のうちの所定数の前記単位素子と対応付けて設けられ、対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値と、対応する他の前記半導体チップにおける対応する前記単位素子が保持する前記ノードの状態を示す値とを、各前記単位素子のタイミングをずらして、前記チップ間配線を介して当該他の半導体チップとの間で送受し、
    自半導体チップ内の対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値を前記チップ間配線を介して他の前記半導体チップに送信する送信側接続部と、
    当該他の半導体チップから前記チップ間配線を介して送信される当該他の半導体チップ内の対応する前記単位素子が保持する前記ノードの状態を示す値を、それぞれ自半導体チップ内の対応する前記単位素子に振り分ける受信側接続部とを有し、
    前記送信側接続部は、
    自半導体チップ内の当該送信側接続部が構成する前記送信側接続部と対応付けられた各前記単位素子にそれぞれ対応させて設けられ、対応する前記単位素子が保持する前記ノードの状態を示す値を記憶保持するバッファメモリと、
    当該送信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第1のカウンタと、
    前記第1のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記バッファメモリに記憶保持された前記ノードの状態を示す値を前記チップ間配線を介して対応する他の前記半導体チップに送信するマルチプレクサとを有し、
    前記受信側接続部は、
    当該受信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第2のカウンタと、
    前記チップ間配線を介して他の前記半導体チップから送信される各前記ノードの状態を示す値を、前記第2のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記単位素子にそれぞれ振り分けるデマルチプレクサとを備え
    ことを特徴とする半導体装置。
  3. 半導体装置において、
    それぞれ相互作用モデルにおけるノードの間の相互作用を模擬する複数の半導体チップと、
    前記半導体チップの間を接続するチップ間配線と
    を有し、
    複数の前記半導体チップにより単一の前記相互作用モデルにおける前記ノードの間の相互作用を模擬し、
    各前記半導体チップは、
    それぞれ対応する前記ノードの状態を示す値と、当該ノードに相互作用を及ぼす他の各前記ノードとの間の相互作用係数とをそれぞれ保持し、保持した前記ノードの状態を示す値及び各前記相互作用係数と、当該ノードに相互作用を及ぼす他の各前記ノードの状態を示す値とに基づいて、対応する前記ノードの次状態を示す値を決定する複数の単位素子と、
    必要な前記単位素子が保持する前記ノードの状態を示す値の一部のみを前記チップ間配線を介して他の前記半導体チップとの間で送受し、又は、必要な前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を時分割で共有しながら前記チップ間配線を介して他の前記半導体チップとの間で送受する接続部とを有し、
    前記接続部は、
    自半導体チップ内の必要な前記ノードの状態を示す値を保持する前記単位素子のうちの所定数の前記単位素子と対応付けて設けられ、対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値と、対応する他の前記半導体チップにおける対応する前記単位素子が保持する前記ノードの状態を示す値とを、各前記単位素子のタイミングをずらして、前記チップ間配線を介して当該他の半導体チップとの間で送受し、
    自半導体チップ内の対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値を前記チップ間配線を介して他の前記半導体チップに送信する送信側接続部と、
    当該他の半導体チップから前記チップ間配線を介して送信される当該他の半導体チップ内の対応する前記単位素子が保持する前記ノードの状態を示す値を、それぞれ自半導体チップ内の対応する前記単位素子に振り分ける受信側接続部とを有し、
    前記送信側接続部は、
    当該送信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第1のカウンタと、
    前記第1のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を介して対応する他の前記半導体チップに送信するマルチプレクサとを有し、
    前記受信側接続部は、
    当該受信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第2のカウンタと、
    前記チップ間配線を介して他の前記半導体チップから送信される各前記ノードの状態を示す値を、前記第2のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記単位素子にそれぞれ振り分けるデマルチプレクサと、
    当該受信側接続部と対応付けられた自半導体チップ内の各前記単位素子と、前記デマルチプレクサとの間にそれぞれ設けられ、前記デマルチプレクサにより対応する前記単位素子に振り分けられた前記ノードの状態を示す値を記憶保持し、記憶保持した前記ノードの状態を示す値を対応する前記単位素子に与える第2のバッファメモリとを備え
    ことを特徴とする半導体装置。
  4. 半導体装置において、
    それぞれ相互作用モデルにおけるノードの間の相互作用を模擬する複数の半導体チップと、
    前記半導体チップの間を接続するチップ間配線と
    を有し、
    複数の前記半導体チップにより単一の前記相互作用モデルにおける前記ノードの間の相互作用を模擬し、
    各前記半導体チップは、
    それぞれ対応する前記ノードの状態を示す値と、当該ノードに相互作用を及ぼす他の各前記ノードとの間の相互作用係数とをそれぞれ保持し、保持した前記ノードの状態を示す値及び各前記相互作用係数と、当該ノードに相互作用を及ぼす他の各前記ノードの状態を示す値とに基づいて、対応する前記ノードの次状態を示す値を決定する複数の単位素子と、
    必要な前記単位素子が保持する前記ノードの状態を示す値の一部のみを前記チップ間配線を介して他の前記半導体チップとの間で送受し、又は、必要な前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を時分割で共有しながら前記チップ間配線を介して他の前記半導体チップとの間で送受する接続部とを有し、
    前記接続部は、
    自半導体チップ内の必要な前記ノードの状態を示す値を保持する前記単位素子のうちの所定数の前記単位素子と対応付けて設けられ、対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値と、対応する他の前記半導体チップにおける対応する前記単位素子が保持する前記ノードの状態を示す値とを、各前記単位素子のタイミングをずらして、前記チップ間配線を介して当該他の半導体チップとの間で送受し、
    自半導体チップ内の対応付けられた各前記単位素子がそれぞれ保持する前記ノードの状態を示す値を前記チップ間配線を介して他の前記半導体チップに送信する送信側接続部と、
    当該他の半導体チップから前記チップ間配線を介して送信される当該他の半導体チップ内の対応する前記単位素子が保持する前記ノードの状態を示す値を、それぞれ自半導体チップ内の対応する前記単位素子に振り分ける受信側接続部とを有し、
    前記送信側接続部は、
    当該送信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第1のカウンタと、
    前記第1のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を介して対応する他の前記半導体チップに送信するマルチプレクサとを有し、
    前記受信側接続部は、
    当該受信側接続部と対応付けられた前記単位素子と同じ個数の連続する数値をカウントする第2のカウンタと、
    前記チップ間配線を介して他の前記半導体チップから送信される各前記ノードの状態を示す値を、前記第2のカウンタのカウント値に応じて、当該カウント値と対応付けられた前記単位素子にそれぞれ振り分けるデマルチプレクサとを備える
    ことを特徴とする半導体装置。
  5. 各前記半導体チップの動作を制御するコントローラを備え、
    前記コントローラは、
    初期時に各前記半導体チップ内の各前記第1及び第2のカウンタをリセットす
    ことを特徴とする請求項1から4のいずれか一項に記載の半導体装置。
  6. 半導体装置において、
    それぞれ相互作用モデルにおけるノードの間の相互作用を模擬する複数の半導体チップと、
    前記半導体チップの間を接続するチップ間配線と
    を有し、
    複数の前記半導体チップにより単一の前記相互作用モデルにおける前記ノードの間の相互作用を模擬し、
    各前記半導体チップは、
    それぞれ対応する前記ノードの状態を示す値と、当該ノードに相互作用を及ぼす他の各前記ノードとの間の相互作用係数とをそれぞれ保持し、保持した前記ノードの状態を示す値及び各前記相互作用係数と、当該ノードに相互作用を及ぼす他の各前記ノードの状態を示す値とに基づいて、対応する前記ノードの次状態を示す値を決定する複数の単位素子と、
    必要な前記単位素子が保持する前記ノードの状態を示す値の一部のみを前記チップ間配線を介して他の前記半導体チップとの間で送受し、又は、必要な前記単位素子が保持する前記ノードの状態を示す値を前記チップ間配線を時分割で共有しながら前記チップ間配線を介して他の前記半導体チップとの間で送受する接続部とを有し、
    相互作用クロックを生成する相互作用クロック生成器と、
    前記相互作用クロック生成器を制御するコントローラと
    を備え、
    各前記半導体チップ内の各前記単位素子は、
    それぞれ前記相互作用クロックに同期して、自己が保持する前記ノードの次状態を示す値を決定し、
    前記コントローラは、
    前記相互作用クロックの周波数を段階的に徐々に下げるように前記相互作用クロック生成器を制御す
    ことを特徴とする半導体装置。
JP2014176560A 2014-08-29 2014-08-29 半導体装置 Expired - Fee Related JP5922203B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014176560A JP5922203B2 (ja) 2014-08-29 2014-08-29 半導体装置
US14/645,928 US10037391B2 (en) 2014-08-29 2015-03-12 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014176560A JP5922203B2 (ja) 2014-08-29 2014-08-29 半導体装置

Publications (2)

Publication Number Publication Date
JP2016051351A JP2016051351A (ja) 2016-04-11
JP5922203B2 true JP5922203B2 (ja) 2016-05-24

Family

ID=55402778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014176560A Expired - Fee Related JP5922203B2 (ja) 2014-08-29 2014-08-29 半導体装置

Country Status (2)

Country Link
US (1) US10037391B2 (ja)
JP (1) JP5922203B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6021864B2 (ja) * 2014-08-29 2016-11-09 株式会社日立製作所 半導体装置および情報処理装置
KR102616411B1 (ko) 2015-07-23 2023-12-26 가부시키가이샤 한도오따이 에네루기 켄큐쇼 발광 소자, 표시 장치, 전자 기기, 및 조명 장치
JP6511413B2 (ja) * 2016-06-17 2019-05-15 株式会社日立製作所 情報処理装置及び計算機システム
JP6691297B2 (ja) * 2016-07-13 2020-04-28 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
US20180089426A1 (en) * 2016-09-29 2018-03-29 Government Of The United States As Represented By The Secretary Of The Air Force System, method, and apparatus for resisting hardware trojan induced leakage in combinational logics
US10121011B2 (en) * 2016-11-16 2018-11-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus, method and article of manufacture for partially resisting hardware trojan induced data leakage in sequential logics
JP6841722B2 (ja) * 2017-06-06 2021-03-10 株式会社日立製作所 情報処理装置
JP6979331B2 (ja) * 2017-10-30 2021-12-15 株式会社日立製作所 情報処理装置および情報処理方法
JP6914872B2 (ja) 2018-02-27 2021-08-04 株式会社日立製作所 情報処理装置および半導体集積回路装置
JP7014963B2 (ja) * 2018-03-15 2022-02-02 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7152343B2 (ja) * 2019-03-26 2022-10-12 株式会社日立製作所 半導体装置
CN111967603B (zh) * 2020-09-01 2022-04-08 腾讯科技(深圳)有限公司 量子芯片、量子处理器及量子计算机

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131072A (en) 1988-08-31 1992-07-14 Fujitsu, Ltd. Neurocomputer with analog signal bus
JPH05242065A (ja) * 1992-02-28 1993-09-21 Hitachi Ltd 情報処理装置及びシステム
JPH086915A (ja) * 1994-06-21 1996-01-12 Hitachi Ltd ニューロコンピュータおよびその演算方法
JP5393588B2 (ja) * 2010-05-17 2014-01-22 本田技研工業株式会社 電子回路及び配線方式
JP5354233B2 (ja) 2011-03-01 2013-11-27 大学共同利用機関法人情報・システム研究機構 イジングモデルの量子計算装置及びイジングモデルの量子計算方法
JP2012217518A (ja) 2011-04-05 2012-11-12 Hitachi Ltd 人間行動分析システム及び方法

Also Published As

Publication number Publication date
JP2016051351A (ja) 2016-04-11
US10037391B2 (en) 2018-07-31
US20160063148A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
JP5922203B2 (ja) 半導体装置
JP5864684B1 (ja) 半導体装置
JP5865456B1 (ja) 半導体装置
JP6605610B2 (ja) 半導体装置
JP6476292B2 (ja) 情報処理装置及びその制御方法
JP6177993B2 (ja) 半導体装置および情報処理装置
JP6496410B2 (ja) 情報処理装置及び方法
JP6295325B2 (ja) 半導体装置及び情報処理システム
JP6568222B2 (ja) 半導体システムおよび計算方法
JP6503072B2 (ja) 半導体システムおよび計算方法
JP5901712B2 (ja) 半導体装置および情報処理装置
JP5894645B1 (ja) 半導体装置及びその品質管理方法
JP6207583B2 (ja) 半導体装置および情報処理方法
JP6701207B2 (ja) 情報処理システム
JP2020160755A (ja) 半導体装置
JP2016052012A (ja) 半導体装置および情報処理装置
JP6914872B2 (ja) 情報処理装置および半導体集積回路装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160413

R150 Certificate of patent or registration of utility model

Ref document number: 5922203

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees