JP2016051491A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2016051491A
JP2016051491A JP2014176534A JP2014176534A JP2016051491A JP 2016051491 A JP2016051491 A JP 2016051491A JP 2014176534 A JP2014176534 A JP 2014176534A JP 2014176534 A JP2014176534 A JP 2014176534A JP 2016051491 A JP2016051491 A JP 2016051491A
Authority
JP
Japan
Prior art keywords
spin
memory cell
bit line
word
memory cells
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
JP2014176534A
Other languages
English (en)
Other versions
JP5851570B1 (ja
Inventor
地尋 吉村
Chihiro Yoshimura
地尋 吉村
山岡 雅直
Masanao Yamaoka
雅直 山岡
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 JP2014176534A priority Critical patent/JP5851570B1/ja
Priority to US14/642,047 priority patent/US9666252B2/en
Application granted granted Critical
Publication of JP5851570B1 publication Critical patent/JP5851570B1/ja
Publication of JP2016051491A publication Critical patent/JP2016051491A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/412Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Static Random-Access Memory (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】イジングモデルの基底状態探索における局所最適解の回避手段を、装置の低コスト化および大規模化が容易な半導体装置で実現する。【解決手段】半導体装置を、行列状に配置された複数のメモリセルが、所定の個数のメモリセルのまとまりをスピンユニット単位に纏められ、該スピンユニットの複数個が隣接関係をそれぞれ持って配置されたスピンアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、ワード線の多重度指定信号の入力に従いワードアドレスを多重化して、複数のワード線を同時にアクティベートするマルチワードデコーダと、各ビット線対に接続された列方向に配列された前記メモリセルのうち、前記複数のワード線によってアクティベートされた複数のメモリセルを、同時に書込み動作、または読出し動作をするビット線ドライバとを備えて構成する。【選択図】図1

Description

本発明は、相互作用モデルの計算を行う装置に関するものであり、特に、イジングモデルの基底状態を求める半導体装置に関する。
現在、コンピュータアーキテクチャの主流はノイマン型である。ノイマン型アーキテクチャでは逐次的な命令列であるプログラムでその動作が定義される。プログラムを変更することにより、様々な用途に利用可能な汎用性を有している。コンピュータの中心的な役割を果たすCPU(Central Processing Unit)のみならず、GPU(Graphics Processing Unit)のような特定用途向けの演算装置もノイマン型アーキテクチャで構成されており、その基本動作は命令列の逐次的な実行にある。
これまで、コンピュータの性能向上は主としてクロック周波数の向上に依っていた。ノイマン型アーキテクチャの根幹は命令例の逐次的な実行であるから、命令の実行速度を高速化すれば性能向上が期待できる。しかし、パーソナルコンピュータやサーバに用いられる汎用的なCPUにおいては、クロック周波数の向上は2000年代初頭に3GHz前後で頭打ちとなっている。近年では頭打ちになったクロック周波数にかわって、マルチコア化による並列処理で性能向上を実現する方策が主流になっている。
マルチコア化による並列処理では、逐次的な命令列から並列実行可能な箇所を見出し(並列性の抽出)、並列実行することで性能向上を図る。しかし、逐次的なアルゴリズムを命令列として書き下したプログラムから並列性を抽出することは容易ではない。命令のレベルで並列性を抽出するILP(Instruction Level Parallelism)は既に限界に達しており、近年ではTLP(Thread Level Prallelism)やDLP(Data Level Parallelism)のように、より粒度の粗い並列性を利用する方向になっている。
このような状況を鑑みると、今後、コンピュータの性能向上を図っていくためには、従来のように逐次的な命令列の実行を基本とするのではなく、本質的に並列な情報処理に移行していく必要がある。そのためには、従来の逐次的な命令列による問題の記述方法に替わって、本質的に並列な情報処理を実現するために適した問題の記述方法が必要となる。
その一つの候補としてイジングモデルがある。イジングモデルは磁性体の振舞いを説明するための統計力学のモデルであり、磁性体の研究に用いられている。イジングモデルはノード(+1/−1の2値をとるスピン)間の相互作用として定義される。トポロジが非平面グラフになるイジングモデルの基底状態を求めることはNP困難問題であることが知られている。イジングモデルは空間方向に広がった相互作用係数で問題を表現するため、本質的な並列性を利用した情報処理を実現できる可能性がある。
そのため、構成単位となる要素を規則的に多数並べて実現できる、半導体装置のような固体素子でイジングモデルの基底状態探索を行えることが望ましい。特にDRAMやSRAMなどの記憶装置に代表されるようなアレイ構造であり、かつ集積性を高められるように構成単位となる要素が単純な構造であるほうが望ましい。
イジングモデルは+1/−1(または、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数、および、スピン毎にある外部磁場係数で定義される。イジングモデルは与えられたスピン配列、相互作用係数、および、外部磁場係数から、その時のエネルギーを計算することが出来る。イジングモデルの基底状態探索とは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。
イジングモデルは、種々の物理現象や社会現象を表現する相互作用モデルの一形態であると解釈できる。相互作用モデルとは、モデルを構成する複数個のノード(node)と、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々の相互作用モデルが提案されている。
相互作用モデルの特徴として、ノード間の影響を2個のノード間の相互作用に限定している(2体間の相互作用)ことがあげられる。例えば、宇宙空間にある惑星の力学を考えてみると、惑星というノードの間に万有引力による相互作用がある点で相互作用モデルの一種とも解釈できるが、惑星間の影響は2個の惑星間にとどまらず、3個以上の惑星が互いに影響し合って複雑な挙動を示す(いわゆる3体問題や多体問題と言われる問題になる)。
また、生物学の世界では脳をモデル化したニューラルネットワークが相互作用モデルの一例である。ニューラルネットワークは神経細胞のニューロンを模した人工ニューロンをノードとして、人工ニューロン間はシナプス結合という相互作用を持つ。また、各ニューロンにバイアスを与える場合もある。社会科学の世界では、例えば人間のコミュニケーションを考えると、人間というノードと言語や通信で成される相互作用があることは容易に理解できる。また、各人間には個別にバイアスがあることも想像できる。そのため、人間のコミュニケーションを、相互作用モデルという点で共通なイジングモデル等に模してその特性を明らかにしようという研究もなされている。
イジングモデルに含まれるスピンのとりうる状態の組み合わせは莫大な数にのぼるため、基底状態を求めるにあたってそのすべてを探索することは実質的に不可能である。このため、基底状態を効率よく求めるには、探索するスピンの組み合わせを絞り込む必要がある。しかしながら、絞り込みによって局所最適解を選んでしまい、近似的な基底状態しか得られなくなるといった弊害も起こるため、探索の過程で見つかった局所解を避けることでよりよい解を得られるようにする手段が必要である。
このような手段として、超電導素子を用いた量子的なゆらぎを活用して基底状態探索を行う手段が提案されている。例えば、このような装置として、国際公開第2012/118064号(特許文献1)や特表2011−524026号(特許文献3)に記載の装置がある。
また、特開2014−99225号公報(特許文献2)には、「SRAMメモリセルMCが不良の場合、低スタンバイモード時にリーク電流が発生してメモリセルMCがデータ破壊を起こす可能性がある。低スタンバイモード時におけるメモリセルMCのデータ保持特性をテストするために、半導体チップ製造工程の最終工程で、ビット線電位を「L」レベル固定して、データ破壊の加速試験を行い、不良のメモリセルを特定することのできる低スタンバイテストモードを備えた半導体装置を提供する。」と記載されている。
国際公開第2012/118064号 特開2014−99225号公報 特表2011−524026号
特許文献1、及び3に示した超電導素子を用いた量子揺らぎの形で局所解を脱する方法は、超電導状態を実現するハードウエアを構成するため、高度な冷却装置を使用する必要がある。このため、装置全体が高コストとなり、また大規模化が難しいといった課題がある。
特許文献2では、製品出荷前のテスト段階で、SRAMメモリセルの不良を顕在化させるために、ビット線の電位を「L」レベルに固定する手段を採用しているが、本発明の目的は、正常なメモリセルを、イジングモデルの基底状態探索処理の演算に使用する過程で、所望のビットエラー発生確率範囲を制御して、メモリセルにランダムなビットエラーを起こさせて、局所最適解から脱出しつつ、大域最適解を目指す基底状態探索処理を実現することである。
本発明は上記の課題に鑑みてなされたものであり、その目的は、メモリセル用電源電圧を可変に制御可能として、アドレスデコーダ、ワード、およびビットドライバの小規模な変更によって、イジングモデルに含まれるスピンのとりうる状態にランダム性を供給することで、低コストで大規模化が容易なイジングモデルの基底状態探索を行う半導体装置を提供することにある。
上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対とを備え、前記ワード線をアクティベートするとともに、前記ビット線対を同レベルの電圧に固定するように構成した。
また、上記課題を解決するために本発明では、前記半導体装置において、ワード線の多重度指定信号の入力に従いワードアドレスを多重化して、複数のワード線を同時にアクティベートするマルチワードデコーダと、各ビット線対に接続された列方向に配列された前記メモリセルのうち、前記複数のワード線によってアクティベートされた複数のメモリセルを、同時に書込み動作、または読出し動作をするビット線ドライバとを更に備えて構成した。
また、上記課題を解決するために本発明では、前記半導体装置において、前記メモリセルへ供給する電源電圧を、定格電圧より下げる電圧を可変に変えて供給する構成を更に加えて、前記メモリセルへ供給する電源電圧が定格電圧より下げられた状態で、前記マルチワードデコーダにより複数のワード線を同時にアクティベートして、読出し動作を実行することにより、前記メモリセルの記憶内容にビットエラーを誘発するように構成した。
また、上記課題を解決するために本発明では、前記半導体装置において、前記マルチワードデコーダは、入力した多重度指定信号に従い、基準となるワードアドレスに対してアドレス下桁の変化分を生成して、複数のワード線を同時にアクティベートするように構成した。
また、上記課題を解決するために本発明では、前記半導体装置において、前記ビット線ドライバは、プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定する機能を更に備え、及び前記メモリセルへ供給する電源電圧を、定格電圧より下げる電圧を可変に変えて供給する構成を更に加えて、前記メモリセルへ供給する電源電圧が定格電圧より下げられた状態で、前記プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記マルチワードデコーダにより1つ以上のワード線をアクティベートすることにより、前記メモリセルの記憶内容にビットエラーを誘発するように構成した。
本発明によれば、イジングモデルの基底状態探索を行う半導体装置において、マルチワードデコーダにより、複数のワード線を同時に選択して、ワード間で同一値の書き込み、または複数のワードのメモリセル記憶内容破壊を実現できる。
また、メモリセル用電源電圧を可変に制御可能として、アドレスデコーダ、ワード、およびビットドライバの小規模な変更によって、イジングモデルに含まれるスピンのとりうる状態にランダム性を供給することで、低コストで大規模化が容易なイジングモデルの基底状態探索を行う半導体装置を提供できる。
本発明の半導体装置であるイジングチップの構成の一例を説明する図である。 本発明の半導体装置であるイジングチップを制御する情報処理装置の構成の一例を説明する図である。 スピンユニットの構成の一例を、スピンユニット間の相互作用を行う回路の構成について説明する図である。 スピンユニットの構成の一例を、スピンユニットが有するメモリセルにアクセスするための構成について説明する図である。 3次元格子のスピンアレイの構成の一例を説明する図である。 スピンユニット内のメモリセルとスピンアレイのトポロジとの対応関係を説明する図である。 3次元格子のスピンアレイとスピンユニットの対応関係の一例を説明する図である。 イジングチップ上のスピンユニットの配置の一例を説明する図である。 スピンユニット間の相互作用を行う配線の一例を説明する図である。 メモリセルの構成の一例を説明する図である。 スピンユニットのグループ分けと相互作用クロック、及び、相互作用アドレスの関係について説明する図である。 イジングチップに備わる通常のSRAMの構成を説明する図である。 イジングチップに備わる通常のSRAMの構成によりメモリセルへの書込み動作を説明する図である。 イジングチップに備わる通常のSRAMの構成によりプリチャージ動作を説明する図である。 イジングチップに備わる通常のSRAMの構成によりプリチャージ動作後にメモリセルからリード動作を行う構成を説明する図である。 イジングチップに備わる通常のSRAMの構成に加えて、ビット破壊線と、選択線、およびマルチワードデコーダを接続する構成を説明する図である。 図16の構成のイジングチップにおいて、書込み動作を説明する図である。 図16の構成のイジングチップにおいて、プリチャージ動作を説明する図である。 図16の構成のイジングチップにおいて、プリチャージ動作後にメモリセルからリード動作を行う構成を説明する図である。 図16の構成のイジングチップにおいて、マルチワードライト動作を説明する図である。 図16の構成のイジングチップにおいて、メモリセル破壊動作を説明する図である。 情報処理装置において、イジングチップをCPUが制御して基底状態探索処理を行う手順の第一の実施形態である。 図22のフローチャートにおいて、メモリセル用電源電圧の制御の一例を説明する図である。 情報処理装置において、イジングチップをCPUが制御して基底状態探索処理を行う手順の第二の実施形態である。 情報処理装置において、イジングチップをCPUが制御して基底状態探索処理を行う手順の第三の実施形態である。 イジングチップに備わる通常のSRAMの構成によりプリチャージ動作を利用してメモリセル破壊動作を行う構成を説明する図である。 マルチワードデコーダの構成を説明する図である。 マスク生成器の構成を説明する図である。 メモリセルに供給する電圧を下げた場合のメモリセルNのビットエラー発生率の実験結果を示しており、(a):全てのメモリセルの初期値を0にして、供給電圧をグラフ横軸の電圧まで下げた後に、正常電圧(定格電圧:1V)で読み出した時の全メモリセルの値の比率(縦軸)であり、(b):全てのメモリセルの初期値を1にして、供給電圧をグラフ横軸の電圧まで下げた後に、正常電圧で読み出した時の全メモリセルの値の比率(縦軸)である。 メモリセルNに供給する電圧を下げて、かつ疑似的にリードを行った場合のメモリセルNのビットエラー発生率の実験結果であり、(a):全てのメモリセルの初期値を0にして、供給電圧をグラフ横軸の電圧まで下げた後に、ダミーリードを行い、正常電圧で読み出した時の全メモリセルの値の比率(縦軸)であり、(b):全てのメモリセルの初期値を1にして、供給電圧をグラフ横軸の電圧まで下げた後に、ダミーリードを行い、正常電圧で読み出した時の全メモリセルの値の比率(縦軸)である。 20K個のスピンユニットのスピンを記憶する各メモリセルNに対して、電源電圧を下げて、かつ疑似リードを行った場合の実験結果であり、メモリセルの初期値を全て1として、0.8Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て1として、0.75Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て1として、0.7Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て1として、0.65Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て0として、0.8Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て0として、0.75Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て0として、0.7Vまで電圧を下げてダミーリードした場合を示す。 メモリセルの初期値を全て0として、0.65Vまで電圧を下げてダミーリードした場合を示す。
以下、実施例を図面を用いて説明する。
本実施例では、イジングモデルの基底状態を求める半導体装置であるイジングチップ100、及びイジングチップ100を制御する情報処理装置200の例を説明する。
(1)解くべき問題をイジングモデルの基底状態探索問題に変換
イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/−1(または、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数、および、スピン毎にある外部磁場係数で定義される。
イジングモデルは与えられたスピン配列、相互作用係数、および、外部磁場係数から、その時のエネルギーを計算することが出来る。イジングモデルのエネルギー関数E(σ)は一般的に次式(数1)で表わされる。なお、σ,σはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hはi番目のスピンに対する外部磁場係数、<i,j>は隣接する2つのサイトの組合せ、σはスピンの配列を表わすものとする。
Figure 2016051491
イジングモデルの基底状態を求めるというのは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。
例えば、グラフの最大カット問題や巡回セールスマン問題など、一見すると磁性体と何ら関係の無い最適化問題をイジングモデルの基底状態探索問題に変換することができる。そして、変換して得られたイジングモデルの基底状態は、元の問題の解に対応している。このことから、イジングモデルの基底状態を探索することのできる装置は、汎用的な用途に利用可能なコンピュータであると言える。
本実施例では、イジングモデルの基底状態探索を一例として説明しているが、上記した相互作用モデルの基底状態探索に置き換えて同様に適用できることは言うまでもない。
(2)イジングチップの構成
図1は、本実施例のイジングチップ100の構成図の例である。イジングチップ100はスピンアレイ110、ビット線ドライバ120、マルチワードデコーダ130、および、相互作用アドレスデコーダ140から構成される。本実施例ではイジングチップ100は現在広く用いられているCMOS集積回路として実装されることを想定して説明するが、他の固体素子でも実現可能である。
スピンアレイ110は後述(図3、4)するとおり、1個のスピンとそれに付随する相互作用係数、及び、外部磁場係数の保持と、基底状態探索処理を実現するスピンユニット300を基本構成単位として、スピンユニット300を多数個並べて構成される。スピンアレイ110は、SRAMとしての機能とイジングモデルの基底状態探索を行う相互作用回路としての機能を併せ持っている。
ビット線ドライバ120とマルチワードデコーダ130はスピンアレイ110をSRAMとして用いる際のインターフェースである。ビット線ドライバ120はデータバス191を介してスピンアレイ110から読み取り、または書き込みをするビット列を授受し、R/W制御線193の信号に従って、読み取り動作と書き込み動作を切り替えることができる。また、本実施例に特有の機能として、スピンアレイ110内の指定アドレスのスピンユニット300のスピンを特定の確率で破壊させる制御を行う選択線194とビット破壊線195を備える。
マルチワードデコーダ130はアドレスバス190を介して読み書きを行うアドレスをマッピングする。アドレスバス190からのアドレス信号に従って、行選択信号、列選択信号を生成して、行選択信号に従って対応するワード線を駆動するとともに、列選択信号をビット線ドライバ120へ供給する。また、本実施例に特有の機能として、複数のワード線を同時にアクティベートする制御をするために、外部より多重度制御線196を備える。
ビット線ドライバ120とマルチワードデコーダ130はいずれもI/Oクロック192に同期して動作する。
イジングチップ100は、スピンアレイ110にリード/ライトを行うためのSRAM互換インタフェース150を持っており、アドレスバス190、データバス191、R/W制御線193、および、I/Oクロック192である。また、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース160として、相互作用アドレス180、および、相互作用クロック181を有している。
イジングチップ100は通常電源線142で供給される電圧で動作するが、スピンアレイ110の一部はメモリセル用電源線141で供給される電圧で動作する。具体的には、スピンアレイ110を構成するスピンユニット300(図3)が有するメモリセル311は、電圧を可変に制御ができるメモリセル用電源線141で供給される電圧で動作する。
イジングチップ100では、イジングモデルのスピンσ、相互作用係数Ji,j、および、外部磁場係数hを全てスピンアレイ110内のメモリセルに記憶する情報で表現する。スピンの初期状態の設定、及び、基底探索完了後の解読み出しのためにスピンσのリード/ライトをSRAM互換インタフェース150で行う。また、基底状態を探索すべきイジングモデルをイジングチップ100に設定するために、相互作用係数Ji,j、および、外部磁場係数hのリード/ライトもSRAM互換インタフェース150で行う。そのため、スピンアレイ110内のスピンσ、相互作用係数Ji,j、および、外部磁場係数hにはアドレスが付与されている。なお、SRAM互換インタフェース150を構成するアドレスバス190、データバス191、および、R/W制御線193は、I/Oクロック192に入力されるクロックに同期して動作する。但し、本発明においてインタフェースが同期式である必要性は無く、非同期式のインタフェースでも良い。本実施例では、同期式のインタフェースであるという前提で説明を行う。
また、イジングチップ100は基底状態探索を行うために、スピンアレイ110の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース160であり、具体的には相互作用を行うスピン群を指定するアドレスを相互作用アドレス180で入力し、相互作用アドレスデコーダ140は、スピンアレイ110を相互作用回路として用いるために、相互作用クロック181に入力されるクロックに同期して相互作用を行う。相互作用動作の詳細については後述する。
なお、相互作用は必ずしもクロック同期回路で実現される必要はなく、非同期回路であっても構わない。この場合、相互作用クロック181の役割はクロックの入力ではなく、相互作用の実行を許可するイネーブル信号であるものとする。相互作用制御インタフェースについても必ずしも同期式である必要はなく非同期式のインタフェースでも良いが、本実施例では同期式のインタフェースを用い、相互作用が相互作用クロック181に同期して行われるという前提で説明を行う。
(3)情報処理装置の構成
前記イジングチップ100を1個、または、複数個用いて情報処理を実現するわけであるが、そのためには前述したようなインタフェースを制御しなければならない。そのために、イジングチップ100は図2に示すような情報処理装置200の一部として利用される。
情報処理装置200は、現在一般的に用いられているパーソナルコンピュータやサーバのような装置に、イジングチップ100で構成されたアクセラレータを装着したものと考えて良い。情報処理装置200は、CPU210、RAM220、HDD260、NIC240を有し、これらがシステムバス230で結合されている。これは、現在のパーソナルコンピュータやサーバに一般的に見られる構成である。加えて、システムバス230にイジングチップコントローラ250が接続され、その先に1個ないしは複数個のイジングチップ(図2の例では、2個のイジングチップ100−1、及び、イジングチップ100−2を有する。これ以降、2個のイジングチップを特に区別する必要の無いときには、単にイジングチップ100と称する。)を持つ。このイジングチップコントローラ250とイジングチップ100がアクセラレータに相当するものであり、例えばPCI Expressのようなペリフェラル拡張用インタフェースに挿入して使う拡張カードのような形態を取る。イジングチップコントローラ250はシステムバス230(例えばPCI ExpressやQPI)のプロトコルをイジングチップのインタフェースに合せて変換するものである。情報処理装置200のCPU210上で動作するソフトウェアは、一般的には特定のアドレスに対してリード/ライトを行うことで(いわゆるMMIO、Memory Mapped I/O)、イジングチップコントローラ250を経由して、イジングチップ100を制御することが出来る。また、このような情報処理装置を、装置間ネットワーク290を介して、複数台結合して利用しても良い。
(4)スピンアレイの構成
スピンアレイ110は、1個のスピンとそれに付随する相互作用係数、及び、外部磁場係数の保持と、基底状態探索処理を実現するスピンユニット300を基本構成単位として、スピンユニット300を多数個並べて構成する。図5はスピンユニット300を複数個並べることで、3次元格子状のトポロジを持つイジングモデルを構成する例を示している。図5の例は、3(X軸方向)×3(Y軸方向)×2(Z軸方向)の大きさの3次元格子である。座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、図面奥行き方向をZ軸としているが、この座標軸は実施例の説明上便宜的に必要なだけであり、発明とは関係しない。3次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図5の3次元格子状のトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数5のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数6が必要となる。
図5に示す1個のスピンユニット300は隣接するスピン(例えば隣接するスピンが5個の場合)σj,σ,σ,σ,σの値が入力される。また、スピンユニット300はスピンσと外部磁場係数hに加え、前記した隣接するスピンとの相互作用係数であるJj,i,Jk,i,Jl,i,Jm,i,Jn,i(隣接する5スピンとの相互作用係数)を保持するメモリセルを有している。
ところで、イジングモデルは一般的に無向グラフで表現される相互作用を有している。前記した数1では、相互作用を表わす項として、Ji,j×σ×σがあるが、これはi番目スピンからj番目スピンへの相互作用を示している。この時、一般的なイジングモデルではi番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。つまり、Ji,jとj,iは同一である。しかし、本発明のイジングチップ100では、このイジングモデルを有向グラフに拡張し、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を非対称にすることを実現している。これにより、モデルの表現能力が高まり、多くの問題をより小規模のモデルで表現することが可能になる。
そのため、1個のスピンユニット300をi番目スピンσと考えた時に、このスピンユニットが保持する相互作用係数であるJj,i,Jk,i,Jl,i,Jm,i,Jn,iは、隣接するj番目、k番目、l番目、m番目、n番目のスピンσj,σ,σ,σ,σから、i番目スピンσへの相互作用を決めるものである。このことは、図5において、スピンユニット300に含まれている相互作用係数が対応する矢印(相互作用)が、図示されているスピンユニット300の外部のスピンから、スピンユニット300の内部のスピンに向かっていることに対応している。
(5)スピンユニットの構成
スピンユニット300の構成の一例を図3と図4を用いて説明する。スピンユニット300は2つの側面を持っており、便宜上、図3と図4に分けて説明するが、1個のスピンユニット300に図3と図4の構成の双方が含まれるものである。図3はスピンユニット間の相互作用を実現するための回路を図示し、図4はスピンユニットが有するメモリセルにイジングチップ100外からアクセスするためのインタフェースであるワード線とビット線に注目して図示したものである。なお、図3の相互作用を実現するための回路において図示されているインタフェースであるEN,NU,NL,NR,ND,NF,Nを、複数のスピンユニット間でどのように結線するかについては、後に図9及び図11を参照して説明する。また、図4のワード線及びビット線を複数のスピンユニット間でどのように結線するかについては、後に図8を参照して説明する。
スピンユニット300は、イジングモデルのスピンσ、相互作用係数Jj,i、……Jn,iおよび、外部磁場係数hを保持するために、1ビットのメモリセルを複数個備えている。この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と略記する。
スピンユニット300が有する各メモリセルの構造の一例を図10のメモリセル450に示す。メモリセル450はCMOSインバータ2個で構成されるデータ保持部440を有し、パスゲートトランジスタ431,432をワード線421及びビット線411,412で制御することで、データ保持部440へのデータ読み書きを実現する。
ここで、スピンユニット300はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンσを表現するためのメモリセルでありスピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルの2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
図6を用いて、スピンユニット300が有するメモリセルと、図5に示したイジングモデルのトポロジとの対応関係を示す。ISxは外部磁場係数を表現する。また、IUx,ILx,IRx,IDx,IFxはそれぞれ相互作用係数を表現する。IUxは上側のスピン(Y軸方向で−1)、ILxは左側のスピン(X軸方向で−1)、IRxは右側のスピン(X軸方向で+1)、IDxは下側のスピン(Y軸方向で+1)、IFxは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)との相互作用係数を示している。また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット300は最大で5個のスピンと接続される。本実施例のイジングチップ100では、外部磁場係数、及び、相互作用係数として+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,0の時には−1を表現する。これに加えて、IS0が0の時には外部磁場係数を0と見なし、IS0が1の時にはIS1で決まる+1/−1のいずれかを外部磁場係数とする。外部磁場係数が0の時は外部磁場係数をディセーブルしていると考えれば、IS0は外部磁場係数のイネーブルビットであると言うことができる(IS0=1の時に、外部磁場係数がイネーブルされる)。相互作用係数を表現するIUx,ILx,IRx,IDx,IFxも同様に係数とビットの値を対応させている。
スピンユニット300内のメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1は、それぞれイジングチップ100の外部からリード/ライト可能でなければならない。そのために、図4に示すようにスピンユニット300はビット線410とワード線420をそれぞれ有している。スピンユニット300を半導体基板上にタイル状に並べてビット線410とワード線420を接続し、マルチワードデコーダ130とビット線ドライバ120で駆動、制御、書き込み・読み出しすることで、一般的なSRAM(Static Random Access Memory)と同様にスピンユニット300内のメモリセルをイジングチップ100のSRAM互換インタフェース150でリード/ライトすることが出来る。
(6)スピンアレイ内のスピンユニット配置
スピンアレイ110の構成を、半導体装置としてのレイアウトの観点から図8で説明する。本実施例のスピンアレイ110は図5に示したように3次元格子のトポロジを持つため、2次元平面上に回路を構成する半導体装置として実現するためには、レイアウト上の工夫が必要となる。そこで、図8に示すような配置を取る。なお、図8上で表現されているスピンユニット300(NxyzというようにX軸、Y軸、Z軸上の位置によって符号を付与している)が、3次元格子のトポロジでどの頂点に対応するかを図7で示す。3×3×2の3次元格子頂点を2次元平面上に配置するために、X軸方向の格子頂点配列の間隔にZ軸方向の格子頂点配列の各格子頂点を挿入するように配置している。すなわち、図8の2次元平面上でのY軸方向(図面下側がY軸正の方向)にはNx0z,Nx1z,Nx2zというように配置されるが、X軸方向(図面右側がX軸正の方向)にはN0y0,N0y1,N1y0,N1y1,N2y0,N2y1というように、Z軸方向座標が0と1のスピンユニットが交互に配置される。
イジングチップ100上には物理的にはスピンユニット300を図8に示すように配置し、その上に図8に示すようなワード線420−1,420−2,420−3と、ビット線410−1,410−2,410−3,410−4,410−5,410−6を配線する。これらのワード線、ビット線は図4に示したスピンユニット300のワード線420とビット線410に結線される。各スピンユニット300はワード線の配列方向に13個のメモリセルを有する(ワード線420は13ビット)ので、ワード線420−1,420−2,420−3はそれぞれ13ビットとなる。
(7)イジングモデルの基底状態探索処理の制御
イジングモデルの基底状態探索を実現するためには、イジングモデル全体のエネルギーがより低いスピン配列になるように遷移していくように、スピン間の相互作用を実現しなければならない。このための相互作用は、与えられた相互作用係数と外部磁場係数に基づいて行われる。つまり、あるスピンの次の値を、そのスピンに接続されている他のスピンからの相互作用と、そのスピンが持つ外部磁場係数から決定する。このとき、スピンの次の値は、そのスピンが接続されている範囲内での局所的なエネルギーを最小化するような値になる。
このスピンの更新は、それぞれのスピンを1個ずつ逐次的に更新することがまず考えられるが、この方法ではスピン数に比例した時間がかかってしまい、並列性を利用することが出来ない。そこで、スピン間の相互作用を全てのスピンについて同時並行的に行うことが望ましい。
しかし、全てのスピンを同時に更新しようとすると、あるスピンを更新するときに、隣接スピンの値を見て、隣接スピンとの間でエネルギーを最小化するようにスピンを更新するので、それと同時に隣接スピンの値を更新すると、両方の更新が重複してしまい、エネルギーを最小化できず振動してしまう。すなわち、あるスピンを更新するときに、そのスピンに接続されているスピン(あるスピンに相互作用係数を介して直接接続されているスピンをこれ以降隣接スピンと呼ぶ)を同時に更新することはできない。
そこで、本発明では隣接スピンは同時に更新しないように、スピンアレイ110内のスピンユニット300をグループ分けして、一度に同時に更新するのは1つのグループだけにする。図5に示すようなトポロジであれば、2グループに分ければ良い。そして、この2グループを交互に更新していくわけである。あるタイミングで更新するグループを指示するために、イジングチップ100は相互作用アドレス180を入力インタフェースとして有する。相互作用アドレス180は前述したグループのうち、更新するグループを指定するためのインタフェースであり、相互作用クロック181の入力によって、相互作用アドレス180で指定されるグループに属するスピン(スピンユニット300)が同時に更新される。
この方法であれば、スピンユニット300内に追加のハードウェアは必要なく、イジングチップ100全体に対して一組の相互作用アドレスデコーダ140を設けるだけで良い。そのため、構成単位であるスピンユニット300を複雑化することなく、前記の問題が解決できる。
前記グループ分けについて、図11を用いて説明する。図11ではスピンユニットNxyzがそれぞれグループAとグループBの2グループにグループ分けされている。各スピンユニット300は後述するように、スピンの更新を許可する信号を入力するインタフェース(EN)を有する。そこで、相互作用アドレス180で指定されるアドレス(グループの識別子)を相互作用アドレスデコーダ140でデコードし、グループ毎の更新許可信号を生成する。図11の例では、グループA指定信号143、及び、グループB指定信号144がグループ毎の更新許可信号である。そして、相互作用クロック181でその時に更新が許可されているグループに属するスピンユニットの更新が行われる。なお、図11に示すグループ分けによって、図5のトポロジで隣接スピンが必ず異なるグループになっている。
また、スピンユニット300のグループ分けは前述した同時更新の衝突回避に加えて、消費電力の都合からさらに細分化してもよい。例えば前述した例では2グループに分ければ更新の衝突を回避できるが、同時に全てのスピンを更新しようとすると電力消費が問題になる場合には、例えば1つのグループをさらに細かく分割してもよい。例えば、2グループ分けにおいて、1つのグループを消費電力都合で4分割して、合計8グループに分ける。
(8)スピンユニット内に備えた次のスピンの状態を決定するための回路構成
スピンユニット300は同時に更新を行うために、相互作用を計算して次のスピンの状態を決定するための回路を、スピンユニット毎に独立して持っている。スピンの次状態を決定するための回路を図3に示す。図3ではスピンユニットは外部とのインタフェースとして、EN,NU,NL,NR,ND,NF,Nを有する。ENは当該スピンユニットのスピンの更新を許可する信号を入力するインタフェースである。Nは当該スピンユニットのスピンの値を他のスピンユニット(図5のトポロジで隣接するユニット)に出力するインタフェースである。NU,NL,NR,ND,NFはそれぞれ他のスピンユニット(図5のトポロジで隣接するユニット)の有するスピンの値を入力するためのインタフェースである。NUは上側のスピン(Y軸方向で−1)、NLは左側のスピン(X軸方向で−1)、NRは右側のスピン(X軸方向で+1)、NDは下側のスピン(Y軸方向で+1)、NFは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)からの入力である。なお、イジングモデルのトポロジを考える上で、端の処理を決める必要がある。図5のトポロジのように単に端は打ち切るのであれば、NU,NL,NR,ND,NFのうち端に対するものは何も入力しなくて良い(回路上は0ないしは1の固定値に接続するなど、未使用入力端子として適切な処理をとる)。例えばN000のスピンユニットの場合には、NU及びNLの2端子は入力が無い。
スピンユニット300では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を見た時に、正の値と負の値のどちらが支配的か判断することと等価である。例えば、i番目スピンσに、スピンσj,σ,σ,σ,σが隣接しているとして、スピンσの次状態は以下のように決まる。まず、隣接スピンの値はσj=+1,σ=−1,σ=+1,σ=−1,σ=+1とし、相互作用係数はJj,i=+1,Jk,i=+1,Jl,i=+1,Jm,i=−1,Jn,i=−1、外部磁場係数h=+1とする。このとき、相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べると、σj×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番目スピンの次状態を決定することが出来る。
図3のスピンユニット300に図示する論理回路は前記した相互作用を行うための回路である。まず、隣接スピンの状態と相互作用係数の+1/−1を示すメモリセルとの排他的論理和の否定(XNOR)で、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、−1は0にエンコードされているものとする)。もし、相互作用係数が+1/−1だけであれば、この出力のうち+1/−1のどちらが多いか多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理に入力すべき値となる。
次に、係数0の実現方法について考える。n入力の多数決論理f(I,I,I,...,I)があるとき、以下の命題は真であると言える。まず、入力I,I,I,...,Iの複製I’,I’,I’,...,I’があるとする(任意のkについて、I=I’である)。このとき、f(I,I,I,...,I)の出力は、複製もあわせて入力したf(I,I,I,...,I,I’,I’,I’,...,I’)と等しい。つまり、各入力変数をそれぞれ2個ずつ入れても、出力は不変である。さらに、入力I,I,I,...,Iの他に、もう一つの入力Iと、その反転!Iがあるとする。このとき、f(I,I,I,...,In,Ix!Ix)の出力は、f(I,I,I,...,I)と等しい。つまり、入力変数とその反転を入力すると、多数決においてその入力変数の影響をキャンセルするように働く。多数決論理のこの性質を利用して係数0を実現する。具体的には、図3に示すように、XORを利用して、係数のイネーブルを決めるビット(IS0など)の値により、多数決論理に、先に述べたスピン次状態の候補となる値の複製か、その反転を同時に入力する。例えば、IS0が0の場合、IS1の値と、IS1の反転の値が同時に多数決論理に入力されるので、外部磁場係数の影響は無い(外部磁場係数が0に相当する)ことになる。また、IS0が1の場合には、IS1の値と、その値と同じ値(複製)が同時に多数決論理に入力されることになる。
(9)スピンユニット間の配線
図3で示したスピンユニットのインタフェースである、EN,NU,NL,NR,ND,NF,Nについて、ENの配線に関しては図11で説明した通りだが、NU,NL,NR,ND,NF,Nの配線の例については図9に示す。図9は、ある1個のスピンユニットNxyzに注目した時に、図5に示すようなトポロジを図8のように配置したスピンユニットで実現するために必要な配線を示している。このような配線をスピンユニット毎に行うことで、図5のトポロジを実現することが出来る。
(10)イジングモデルの基底状態探索における局所最適解の回避手段
前述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することが出来るが、これだけでは局所最適解に陥ってしまう可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことが出来ず、大域最適解に到達しない。そのため、局所最適解から脱出するための作用として、各スピンユニット300が有するスピンの値を所望の確率でランダムに反転(破壊)させる手段により、スピン配列をランダムに変化させることをイジングモデルの基底状態探索処理の中に取り入れることが考えられる。
すなわち、各スピンユニット300が有するスピンの値にランダムなビットエラー(記憶内容破壊)を生じさせることである。通常のSRAMのメモリセルのビットエラーレートはメモリセルへの供給電圧に比例しており、例えば定格電圧1Vでは10−9程度のビットエラーレートであり、このビットエラーレートは記憶内容を保持するというメモリ本来の目的に適したものである。この電圧から、さらに電圧を下げていくと、電圧の下げ幅に比例してビットエラーレートも悪化していくことは知られている。例えば、0.6V程度まで電圧を下げることで、10−1程度のビットエラーレートになり、このようなビットエラーが発生しやすい状態を、局所最適解からの脱出手段に用いることが考えられる。
しかし、スピンの値を記憶するメモリセルNの記憶内容を破壊させるために、単にメモリセルに供給する電源電圧を下げるだけでは、かなり低い電圧(定格電圧が1Vに対して、0.2V未満)まで下げなければならず、またビットエラー確率の制御には細かい電圧分解能(10mVで10%程度)を必要とする(CMOS 65nm実測値)。
図29に、メモリセルに供給する電圧を下げた場合のメモリセルNのビットエラー発生率の実験結果を示す。図29(a)は、全てのメモリセルの初期値を0にして、供給電圧をグラフ横軸の電圧まで下げた後に、正常電圧(定格電圧:1V)で読み出した時の全メモリセルの値(0 or 1)の比率(縦軸)であり、図29(b)は、全てのメモリセルの初期値を1にして、供給電圧をグラフ横軸の電圧まで下げた後に、正常電圧(定格電圧:1V)で読み出した時の全メモリセルの値(0 or 1)の比率(縦軸)である。グラフでは、電圧が180〜200mV付近で故障のモードが変わっており、また電圧がごく低い領域で、電圧の変化量に対してエラーの変化量が非常に急峻であり、ビットエラーの制御に電圧の変化量を使い難いことが判る。
また、イジングチップ上のメモリセルの属する電源ドメインを、記憶内容を破壊したいメモリセル(スピンを記憶)と、記憶内容を保持したいメモリセル(相互作用係数、外部磁場係数を記憶)とで分けなければならないため、メモリセルアレイの一部のメモリセルを選択的に破壊することが難しい。
そこで、メモリセルに供給する電源電圧をそれ程下げることはしなくても、何らかの動作をメモリセルに起こさせる、例えば、疑似的にメモリセルをリードする、すなわちビット線対をプリチャージした後、ワード線を選択レベルの「H」レベル(内部通常電源電圧142)としてメモリセルを活性化することで、メモリセルのビットエラー発生率を高めることができることを本願発明者は見出した。
図30は、図29の実験結果と対比して、メモリセルNに供給する電圧を下げて、かつ疑似的にリードを行った場合のメモリセルNのビットエラー発生率の実験結果を示す。図30(a)は、全てのメモリセルの初期値を0にして、供給電圧をグラフ横軸の電圧まで下げた後に、ダミーリードを行い、正常電圧(定格電圧:1V)で読み出した時の全メモリセルの値(0 or 1)の比率(縦軸)であり、図30(b)は、全てのメモリセルの初期値を1にして、供給電圧をグラフ横軸の電圧まで下げた後に、ダミーリードを行い、正常電圧(定格電圧:1V)で読み出した時の全メモリセルの値(0 or 1)の比率(縦軸)である。グラフでは、電圧が800mVぐらいからメモリセルの内容が壊れ始め、電圧の変化量に対してエラーの変化量の関係は、図29の結果と比べて、非常に滑らかになっている。従って、ビットエラー確率の制御に細かい電圧分解能を得ることができる。
そこで、メモリセルアレイに供給する電圧を若干下げるのと併用して、疑似的にメモリセルをリードする手段により、各スピンユニット300が有するスピンの値にランダムなビットエラー(記憶内容破壊)を生じさせ、イジングモデルの基底状態探索処理における局所最適解に陥ることを回避する。このため、本実施例のイジングチップでは、図1に示すように、スピンアレイ110を構成する各スピンユニット300のメモリセルに電源電圧を供給する、電圧を可変に制御できるメモリセル用電源線141を、その他の回路に電源電圧を供給する通常電源線142とを分けて設けている。図3に示すように、各スピンユニット300内で、メモリセル用電源ドメイン311と、論理用電源ドメイン312とを分けている。なお、メモリセルアレイに値を読み書きするための動作を通常動作モード、前記したようなメモリセルアレイに記憶されている値に意図的にエラーを発生させるための動作をメモリ記憶内容破壊モードと称する。
(11)イジングチップの制御手順
前記イジングチップ100を組みこんだ前記情報処理装置200において、イジングチップ100をCPU210が制御して基底状態探索処理を行う手順を図22に示す。
ステップS101において、スピン配列の初期値である初期スピン配列を生成する。初期スピン配列の生成は乱数でランダムにスピン配列を生成する。
ステップS102において、予め作成された解きたい最適化問題を表現するイジングモデルの相互作用係数および外部磁場係数と、ステップS101で得られた初期スピン配列を、イジングチップ100の各スピンユニット300の通常動作モードでメモリセルに書込む。これで初期設定が完了する。
その後、ステップS103において、相互作用アドレス180をイジングチップ100に入力する。図11に示す本実施例では、相互作用アドレスはグループA、またはグループBの識別子で表され、交互に設定される。
ステップS104において、相互作用クロック181が連続して入力され、各相互作用クロック181の入力ごとに、該当相互作用クロック181に同期されて、ステップS103で設定された相互作用アドレスの1つが相互作用アドレスデコーダ140でデコードされ、グループA指定信号143、またはグループB指定信号144が、該当グループに属する全てのスピンユニット300へ送られる。そして、前記相互作用クロック181に同期して、該当グループの全てのスピンユニット300の相互作用が実行される。以上の相互作用は、相互作用クロック181の入力ごとに繰り返されるが、その回数は、ステップS103で設定した相互作用アドレスの個数である。すなわち、グループAとグループBを繰り返し、かつ適当な回数が指定されて、実行される。これによりイジングモデルの基底状態探索処理が実行回数分だけ進行することになる。
ステップS105において、スピンアレイ110を構成する全てのスピンユニット300のメモリセルに供給している電源電圧141を定格値より指定された電圧量だけ減らして供給する。
ステップS106において、ステップS105で制御したメモリセル用電源電圧の条件下で、全てのスピンユニット300のスピンを記憶するメモリセルNの疑似リードを実行する。すなわち、各メモリセルNに接続するビット線にプリチャージ電圧を掛けた後、各メモリセルNに接続するワード線を選択レベルの「H」レベル(内部通常電源電圧142)とする制御を実行する。
ステップS105〜S106の動作は、その期間、メモリセルアレイをメモリ記憶内容破壊モードにすることである。
ステップS106の制御を実行することにより、図30(a),(b)に示したグラフに該当する発生確率で各メモリセルNにビットエラーが発生することになる。そのビットエラーの発生のランダム性を確認するために、試作したスピンアレイ110を構成する256×80=20K個のスピンユニット300のスピンを記憶する各メモリセルNに対して、電源電圧を下げて、かつ疑似リードを行った場合の実験結果を、全メモリセルNのビットパターンを表示したのが図31〜図38である。各図の横軸は0〜255、縦軸は0〜79、256×80=20K個のメモリセルのビットパターンを表し、白色がメモリセル値=1、黒色がメモリセル値=0を示す。 図31:メモリセルの初期値を全て1として、0.8Vまで電圧を下げてダミーリードした場合を示す。図32:メモリセルの初期値を全て1として、0.75Vまで電圧を下げてダミーリードした場合を示す。図33:メモリセルの初期値を全て1として、0.7Vまで電圧を下げてダミーリードした場合を示す。図34:メモリセルの初期値を全て1として、0.65Vまで電圧を下げてダミーリードした場合を示す。図35:メモリセルの初期値を全て0として、0.8Vまで電圧を下げてダミーリードした場合を示す。図36:メモリセルの初期値を全て0として、0.75Vまで電圧を下げてダミーリードした場合を示す。図37:メモリセルの初期値を全て0として、0.7Vまで電圧を下げてダミーリードした場合を示す。図38:メモリセルの初期値を全て0として、0.65Vまで電圧を下げてダミーリードした場合を示す。
各図の全メモリセルNのビットパターンには、ランダムにビットエラーが発生していることが判る。
ステップS106の処理の結果、スピンアレイ110を構成する全てのスピンユニット300のメモリセルNのスピンの値は、ステップS104の相互作用によってイジングモデルの基底状態探索が進行している状態で、局所最適解に陥っている各スピンの値を大域最適解に到達するように一部の値をランダムに変更している。
ステップS106の処理の最後に、ステップS105においてスピンアレイ110を構成する全てのスピンユニット300のメモリセルに供給している電源電圧141を定格値より指定された電圧量だけ減らして供給したものを元の定格値(本実施例では1V)に戻す。電圧を元の定格値に戻して以降は、メモリセルアレイは通常動作モードになる。
ステップS107において、イジングモデルの基底状態探索処理が大域最適解に到達するまで十分な処理回数が実行されたか判定される。予めパラメータとして設定された所定の回数実行された場合にはステップS108へ進み、所定の回数実行されていない場合には、ステップS103へ戻り、ステップS106までの一連の処理を繰り返すことになる。
ここで、前述したステップS103からステップS106までの一連の処理の繰り返し処理を、図23において、時間の経過(横軸)と、メモリセル用電源電圧141(縦軸)の制御の推移のグラフによって示す。図23のグラフの横軸の原点は、第1回目のステップS103において相互作用アドレス180が設定されて、ステップS104において相互作用クロック181が入力されて、第1の相互作用クロック181に同期して、第1の相互作用アドレスに該当するスピンユニット300群が相互作用を開始する時刻を表す。その時のメモリセル用電源電圧141は定格の1Vになっている。そして、相互作用アドレス180で設定した複数のアドレスだけ相互作用が繰り返される間、メモリセル用電源電圧141は定格の1Vで供給される。
図23において、相互作用アドレス180で設定されるアドレスの個数だけ相互作用が繰り返されて、その時間がti1となっている。
続いて、ステップS105の第1回目のメモリセル用電源電圧141を定格値より指定された電圧量501だけ減らして供給するように制御する。そして、ステップS106において、全てのスピンユニット300のスピンを記憶するメモリセルNの疑似リードを実行する。それに要する時間が、td1となっている。その後、メモリセル用電源電圧141を定格値(1V)に戻して、再び、ステップS103において第2回目の相互作用アドレス180の設定を受付け、ステップS104において、受付けた相互作用アドレスの個数に従って第2回目の相互作用を繰り返す。その所要時間はti2となっている。
続いて、ステップS105の第2回目のメモリセル用電源電圧141を定格値より指定された電圧量502だけ減らして供給するように制御する。ここで、第1回目のメモリセル用電源電圧141の減圧量501に対して、第2回目の減圧量502を小さくなるように制御する。更に、第3回目の減圧量503、……第n回目の減圧量504、以降まで順次減圧量を小さくなるように制御する。その結果、その後のステップS106のメモリセルNの疑似リードによって、ビットエラーの発生確率は順次小さくなることは、図31〜図38に示す実験結果の通りである。
上述したステップS103からステップS106までの一連の処理の繰り返し処理により、イジングモデルの基底状態探索のための相互作用を指定回数実行するごとに、局所最適解から抜け出すようにするためにスピンの値を記憶するメモリセルNにビットエラーを発生させる回避策を実行する。しかもその回避策では順次ビットエラーの発生確率を下げるように処理を行い、最終的にイジングモデルの基底状態探索が大域最適解に収束するように制御する。
上述した状況では、基本的には相互作用によってエネルギーが小さい状態に遷移していくが、それと並行してビットエラーにより、状態がランダムに遷移していくことで、相互作用だけでは遷移しえない状態への遷移も発生し、解空間を広く探索することができる。基底状態探索の進行と共に、状態を安定させていくために、ビットエラーレートが起こりにくい状態へと少しずつ電圧を変化させていく。つまり、最初はビットエラーレートが起こりやすい電圧である例えば0.65Vが供給されていたところを、ビットエラーレートが起こりにくい1V程度に少しずつ近づけていく。このような供給電圧のスケジューリングと、相互作用によるエネルギー最小化を併用することで、局所最適解から脱出しつつ、大域最適解を目指す基底状態探索が実現できる。
図22のステップS107では、予め設定してあるイジングモデルの基底状態探索が大域最適解に収束したと見なせる繰り返し回数を実行したかどうかを判定する。 ステップS108において、基底状態探索処理を終了したスピンアレイ110を構成する全てのスピンユニット300のスピンの値を記憶する各メモリセルNから、スピンの値を読み出す。
以上の基底状態探索処理の終了後、情報処理装置200のCPU210で実行される問題変換プログラム(図示せず)により、ステップS108で読み出されたスピン配列の値を解きたい最適化問題の解に変換して、ユーザに提示される。
(12)マルチワード動作
本実施例のイジングチップ100は、SRAM互換インタフェース150を備え、スピンアレイ110を構成する全てのスピンユニット300の各メモリセルへ初期値の書き込み、および演算結果のスピン配列の読出しを可能としている。しかし、イジングモデルの初期値の規則的配列の特性から、同一データを連続して書き込む必要が生じたり、または、上述したスピンを記憶するメモリセルNの記憶内容をランダムに破壊するために擬似的にリードを行う処理が必要となることより、複数のワード線を同時にアクティベートする制御を可能として、複数のメモリセルへの同時書き込み、及び同時読み出しを可能とすることが有効である。
そのため、SRAMでは通常、アドレスデコーダで選択した行アドレスに従って1ワード線に対してのみ操作が行われていたのに対して、本実施例のマルチワードデコーダ130では、複数のワード線を同時にアクティベートする制御を可能とする。
図27、28は、マルチワードデコーダ130の構成の一例を説明する。
通常のアドレスデコーダの構成は、アドレスの各ビット線132と、それらの反転の各ビット線133が用意されて、ANDゲート134を使って、全てのアドレスパターンとそれぞれ接続してワード線を出力している。本実施例では、複数のアドレスを同時に指定するために、アドレスデコーダにマスク生成器135を設けることが特徴である。マスク生成器から出力するビット136とアドレスビットとのORゲート137を加えることにより、各マスクビット(MA0,MA1,MA2,MA3)136によって、アドレスビット線132とその反転ビット線133とを同時に1とすることができるので、複数のワード線を同時にアクティベイトすることができる。
図28はマスク生成器135の構成を示す。イジングチップ100の外部インタフェースより、1ビットのMWE(Multi Word Enable)信号と2ビットの多重度指定信号196を入力として、4ビットのマスクビット(MA0,MA1,MA2,MA3)を出力する。各マスクビットが1であれば、×2のワード線が選択される。本実施例では、×2,×4,×8,×16のいずれかを選択する。図27に示すアドレス(A0,A1,A2,A3)は、例えば、アドレスバス190から入力された基準となるワードアドレスの下4桁のアドレスに相当して、マスクビットによって、複数のアドレスを選択することになる。
本実施例で示したマルチワードデコーダの構成は一例であり、その他の構成を採用しても同様の効果が考えられる。
イジングチップ100の外部より多重度指定信号196によって、ワード線の複数選択を設定可能であるが、可能な多重度(同時に選択するワード線の本数)は、電源の供給能力と、ビット線のドライブ能力に依存して、同時選択数は限られることになり、例えば4〜8ワード線程度が現実的とも言える。
マルチワードデコーダ130により、複数のワード線をアクティベイトすることにより、図22のステップS106のメモリセルの疑似リードは効率良く実行が出来、図23に示す局所最適解の回避処理の時間td1、…tdnなども大幅に短縮される効果がある。
実施例1に記載したイジングモデルの基底状態探索における局所最適解の回避手段の第二の実施形態を示す。
本実施例では、ビット線ドライバ120の機能拡張を中心に構成を説明する。
図12には、通常のSRAMの構成を説明しており、図1のイジングチップ100にも備わっている構成である。
図12のI/Oアドレスデコーダ131は、図1のマルチワードデコーダ130の基になる回路である。図1のスピンアレイ110の中に備わる個別のメモリセルを図12で配列したメモリセル450で示している。また、図1のビット線ドライバ120に備えられた通常のSRAMに備わっているビット線を介したデータ書込み/読出しに係る回路構成の一部を、図12のメモリセル配列の上部、及び下部に示す。
図12には、書込みデータを相反するビットデータとしてビット線対BT,BBへ供給するデータ入力線460、プリチャージ電圧を供給するプリチャージ電圧線461、ビット線へ書込みデータ、プリチャージ電圧の供給を切り替えるスイッチ素子481〜484、メモリセルからデータを読み出すセンスアンプ452、および読出しデータを外部へ出力するデータ出力線470を示している。また、I/Oアドレスデコーダ131より、行選択アドレスに対応するワード線420を各メモリセル450へ接続している。
図13は、図12に示す通常のSRAMと同等の構成において、メモリセル450への書込み動作が、ワード線422を選択レベルの「H」レベル(内部通常電源電圧142)として、スイッチ素子481,483を接続して、ビット線対411,412を介して書込みデータが書き込まれることを示す。
図14は、図12に示す通常のSRAMと同等の構成において、メモリセルからの読出し動作に先立って、スイッチ素子482,484を接続してプリチャージ電圧線461をビット線対411,412へ接続して、両ビット線411,412を「H」レベル(内部通常電源電圧142)としていることを示す。
図15は、図14の両ビット線411,412がプリチャージされた後、スイッチ素子482,484をオフとして、ワード線422を選択レベルの「H」レベルとして、メモリセル450に記憶されている電位をビット線対411,412へ読み出すことを示している。スイッチ素子485,486を接続して、ビット線対411,412の間の電圧をセンスアンプ452で増幅して検出することにより、メモリセル450の記憶データをデータ出力線470へ出力する。
図16は、図12に示す通常のSRAMの構成に加えて、図1のビット線ドライバ120にメモリセルにビットエラー(記憶内容破壊)を生じさせるための外部信号(ビット線制御信号)194,195を入力して、ビット線ドライバ120の内部において、セレクタ453,454にビット線BT,BBと、ビット破壊線195を接続して、セレクタの選択のために選択線194が接続されている構成を示す。
また、マルチワードデコーダ130により、複数のワード線を同時にアクティベートする制御を可能としている。
図17では、図16の構成において、メモリセル450への書込み動作が、ワード線421を選択レベルの「H」レベルとして、スイッチ素子481,483を接続して、セレクタ453,454をビット線BT,BBへ接続選択して、ビット線対411,412を介して書込みデータが書き込まれることを示す。
図18では、図16の構成において、メモリセル450からの読出し動作に先立って、スイッチ素子482,484を接続してプリチャージ電圧線461をビット線対411,412へ接続して、両ビット線411,412を「H」レベルとしていることを示す。
図19は、図18の両ビット線411,412がプリチャージされた後、スイッチ素子482,484をオフとして、ワード線421を選択レベルの「H」レベルとして、メモリセル450に記憶されている電位をビット線対411,412へ読み出すことを示している。スイッチ素子485,486を接続して、ビット線対411,412の間の電圧をセンスアンプ452で増幅して検出することにより、メモリセル450の記憶データをデータ出力線470へ出力する。
図20では、図16の構成において、メモリセル450,451へのマルチワード書込み動作が、複数のワード線421,422を選択レベルの「H」レベルとして、スイッチ素子481,483を接続して、セレクタ453,454をビット線BT,BBへ接続選択して、ビット線対411,412を介して書込みデータが書き込まれることを示す。
図21では、図16の構成において、セレクタ453,454をビット破壊線195へ接続選択して、スイッチ素子481,483を接続して、ビット破壊線195に外部から供給した「H」レベル、または「L」レベル(接地電圧)の電位を、両ビット線411,412へ供給するのと同時に、マルチワードデコーダ130からワード線421,422を選択レベルの「H」レベルと制御することによって、メモリセル450,451の記憶内容の破壊を促進することができる(メモリセル記憶内容破壊モードとなる)。
上記したビット破壊線195に外部から供給した「H」レベルの電位を両ビット線411,412へ供給して、メモリセル450,451の記憶内容の破壊動作を行う替わりに、既存のプリチャージ電圧線461をスイッチ素子482,484を介してビット線対411,412へ接続して、「H」レベルの電位を両ビット線411,412へ供給して、同様の効果が期待できる。ただし、ビット破壊線195にて外部から供給する電位は、最適な電位となるように調整が可能であるが、プリチャージ電圧線461から供給する電位は定格の電位のみとなる。
図24に、第二の実施形態における前記イジングチップ100を組みこんだ前記情報処理装置200において、イジングチップ100をCPU210が制御して基底状態探索処理を行う手順のフローチャートを示す。第一の実施形態におけるフローチャートを示す図22との相違は、ステップS106がステップS201に替わったところである。
ステップS201において、図21に示す構成により、ビット破壊線195に外部から供給した「H」レベルの電位を両ビット線411,412へ供給するのと同時に、マルチワードデコーダ130により複数のワード線をアクティベートして、メモリセルを活性化する処理を、全てのスピンユニット300のスピンを記憶するメモリセルNに対して実行する。
または、図26に示す構成により、プリチャージ電圧線461をスイッチ素子482,484を介してビット線対411,412へ接続して、「H」レベルの電位を両ビット線411,412へ供給するのと同時に、I/Oアドレスデコーダ131によりワード線をアクティベートして、メモリセルを活性化する処理を、全てのスピンユニット300のスピンを記憶するメモリセルNに対して実行する。
そして、最後にステップS106の場合と同様に、ステップS105においてスピンアレイ110を構成する全てのスピンユニット300のメモリセルに供給している電源電圧141を定格値より指定された電圧量だけ減らして供給したものを元の定格値(本実施例では1V)に戻す処理を行う。
実施例1、2に記載したイジングモデルの基底状態探索における局所最適解の回避手段の第三の実施形態を示す。
図21に示す構成において、ビット破壊線195に外部から供給する「L」レベル(接地電圧)の電位を、セレクタ453,454、スイッチ素子481,483を介してビット線対411,412へ接続して、供給すると同時に、マルチワードデコーダ130により複数のワード線をアクティベートして、メモリセルを活性化することで、メモリセルの内容を破壊することができる(メモリセル記憶内容破壊モードとなる)。この場合には、実施例1、2で実施したメモリセルアレイ用供給電圧141を若干下げる制御を併用する必要は無い。
ビット破壊線195から供給する「L」レベルの電位は、接地電圧だけではなく、それより多少上げた電位を調整することによって、ビットエラーの発生確率を変えることができると予測される。
図25に、第三の実施形態における前記イジングチップ100を組みこんだ前記情報処理装置200において、イジングチップ100をCPU210が制御して基底状態探索処理を行う手順のフローチャートを示す。第一の実施形態におけるフローチャートを示す図22との相違は、ステップS105、及びステップS106がステップS202に替わったところである。
ステップS202において、図21に示す構成により、ビット破壊線195に外部から供給した「L」レベルの電位を両ビット線411,412へ供給するのと同時に、マルチワードデコーダ130により複数のワード線をアクティベートして、メモリセルを活性化する処理を、全てのスピンユニット300のスピンを記憶するメモリセルNに対して実行する。
100,100−1,100−2 イジングチップ
110 スピンアレイ
120 ビット線ドライバ
130 マルチワードデコーダ
131 I/Oアドレスデコーダ
132 アドレスビット線
133 アドレスビット線の反転のビット線
134 ワード線出力用ANDゲート
135 マスク生成器
136 マスクビット
137 マスクビットとアドレスビットとのORゲート
140 相互作用アドレスデコーダ
141 メモリセル用電源線
142 通常電源線
143 グループA指定信号
144 グループB指定信号
150 SRAM互換インタフェース
160 相互作用制御インタフェース
180 相互作用アドレス
181 相互作用クロック
190 アドレスバス(SRAM互換インタフェース)
191 データバス(SRAM互換インタフェース)
192 I/Oクロック(SRAM互換インタフェース)
193 R/W制御線(SRAM互換インタフェース)
194 選択線
195 ビット破壊線
196 多重度指定線、およびMWE(Multi Word Enable)信号
200 情報処理装置
210 CPU
220 RAM
230 システムバス
240 NIC
250 イジングチップコントローラ
260 HDD
290 装置間ネットワーク
300 スピンユニット
311 メモリセル用電源ドメイン
312 論理用電源ドメイン
410,411,412 ビット線
420,421,422,423 ワード線
431,432 パスゲートトランジスタ
440 データ保持部
450 メモリセル
452 センスアンプ
453,454 セレクタ
460 データ入力線
461 プリチャージ電圧線
470 データ出力線
481,482,483,484,485,486 スイッチ素子
501,502,503,504 メモリセル用電源電圧の減圧量
BB,BT ビット線
N スピンを表現するメモリセル、及び、スピンの値を出力するインタフェース
IS0 外部磁場係数が0であるかどうかを示すメモリセル
IS1 外部磁場係数の+1/−1を示すメモリセル
IU0,IL0,IR0,ID0,IF0 相互作用係数が0であるかどうかを示すメモリセル
IU1,IL1,IR1,ID1,IF1 相互作用係数の+1/−1を示すメモリセル
上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダと、プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定する前記ビット線対を駆動するドライバと、及び前記メモリセルへ供給する電源電圧を所定電圧より下げる電圧を可変に変えて供給する構成とを備え、前記メモリセルへ供給する電源電圧が所定電圧より下げられた状態で、前記プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記ワードデコーダによりワード線をアクティベートするように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダと、ビット破壊線を外部より接続して、前記ビット線対を「H」レベルに固定する前記ビット線対を駆動するドライバと、及び前記メモリセルへ供給する電源電圧を所定電圧より下げる電圧を可変に変えて供給する構成とを備え、前記メモリセルへ供給する電源電圧が所定電圧より下げられた状態で、前記ビット破壊線を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記ワードデコーダによりワード線をアクティベートするように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダと、及びビット破壊線を外部より接続して、前記ビット線対を「L」レベルに固定する前記ビット線対を駆動するドライバとを備え、前記ビット破壊線を前記ビット線対へ接続して、前記ビット線対を「L」レベルに固定し、前記ワードデコーダによりワード線をアクティベートするように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダとを備え、前記メモリセルアレイは、所定の個数のメモリセルのまとまりをユニット単位に纏められ、該ユニットの複数個が隣接関係をそれぞれ持って配置されており、前記各ユニット内には、隣接関係にある他のユニットのメモリセルの値を受信し、受信した前記値と自己のメモリセルに記憶する係数に基づいて演算した値を出力する演算回路を更に備え、及び前記メモリセルアレイに、前記演算を同期して行う隣接関係にあるユニットのグループを指定するアドレスデコーダを更に備え、前記アドレスデコーダが指定したユニットのグループ毎に前記演算を所定回数実行し、その後、前記ワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を繰り返すように構成する
また、上記課題を解決するために本発明では、前記半導体装置において、前記演算を所定回数実行した後、前記ワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を行う際に、全てのユニットのメモリセルに所定電圧より電圧を下げた電源電圧を供給するように構成する
上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダと、プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定する前記ビット線対を駆動するドライバと、及び前記メモリセルへ供給する電源電圧を所定電圧より下げる電圧を可変に変えて供給する構成とを備え、前記メモリセルへ供給する電源電圧が所定電圧より下げられた状態で、前記プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記ワードデコーダによりワード線をアクティベートするように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダと、ビット破壊線を外部より接続して、前記ビット線対を「H」レベルに固定する前記ビット線対を駆動するドライバと、及び前記メモリセルへ供給する電源電圧を所定電圧より下げる電圧を可変に変えて供給する構成とを備え、前記メモリセルへ供給する電源電圧が所定電圧より下げられた状態で、前記ビット破壊線を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記ワードデコーダによりワード線をアクティベートするように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダと、及びビット破壊線を外部より接続して、前記ビット線対を「L」レベルに固定する前記ビット線対を駆動するドライバとを備え、前記ビット破壊線を前記ビット線対へ接続して、前記ビット線対を「L」レベルに固定し、前記ワードデコーダによりワード線をアクティベートするように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダとを備え、前記メモリセルアレイは、所定の個数のメモリセルのまとまりをユニット単位に纏められ、該ユニットの複数個が隣接関係をそれぞれ持って配置されており、前記各ユニット内には、隣接関係にある他のユニットのメモリセルの値を受信し、受信した前記値と自己のメモリセルに記憶する係数に基づいて演算した値を出力する演算回路を更に備え、及び前記メモリセルアレイに、前記演算を同期して行う隣接関係にあるユニットのグループを指定するアドレスデコーダを更に備え、前記アドレスデコーダが指定したユニットのグループ毎に前記演算を所定回数実行し、その後、前記ワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を繰り返すように構成する
また、上記課題を解決するために本発明では、前記半導体装置において、前記演算を所定回数実行した後、前記ワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を行う際に、全てのユニットのメモリセルに所定電圧より電圧を下げた電源電圧を供給するように構成する
また、上記課題を解決するために本発明では、半導体装置を、複数のメモリセルが行列状に配置されたメモリセルアレイと、前記メモリセルの各行に対応して設けられたワード線と、前記メモリセルの各列に対応して設けられたビット線対と、前記ワード線をアクティベートするワードデコーダとを備え、前記メモリセルアレイは、所定の個数のメモリセルのまとまりをユニット単位に纏められ、該ユニットの複数個が隣接関係をそれぞれ持って配置されており、前記各ユニット内には、隣接関係にある他のユニットのメモリセルの値を受信し、受信した前記値と自己のメモリセルに記憶する係数に基づいて演算した値を出力する演算回路を更に備え、及び前記メモリセルアレイに、前記演算を同期して行う隣接関係にあるユニットのグループを指定するアドレスデコーダを更に備え、前記アドレスデコーダが指定したユニットのグループ毎に前記演算を所定回数実行し、その後、前記ワードデコーダにより全てのユニットのメモリセルを順次アクティベートするとともに、前記ビット線対を同レベルの電圧に固定する処理を繰り返すように構成する。

Claims (10)

  1. 複数のメモリセルが行列状に配置されたメモリセルアレイと、
    前記メモリセルの各行に対応して設けられたワード線と、
    前記メモリセルの各列に対応して設けられたビット線対と、
    前記ワード線をアクティベートするワードデコーダとを備え、
    前記ワード線をアクティベートするとともに、前記ビット線対を同レベルの電圧に固定することを特徴とする半導体装置。
  2. 前記ビット線対を駆動するドライバは、プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定する機能を更に備え、及び
    前記メモリセルへ供給する電源電圧を、所定電圧より下げる電圧を可変に変えて供給する構成を更に加えて、
    前記メモリセルへ供給する電源電圧が所定電圧より下げられた状態で、前記プリチャージ用電圧を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記ワードデコーダによりワード線をアクティベートすることを特徴とする請求項1に記載の半導体装置。
  3. 前記ビット線対を駆動するドライバに、ビット破壊線を外部より接続して、前記ビット線対を「H」レベルに固定する機能を更に備え、及び
    前記メモリセルへ供給する電源電圧を、所定電圧より下げる電圧を可変に変えて供給する構成を更に加えて、
    前記メモリセルへ供給する電源電圧が所定電圧より下げられた状態で、前記ビット破壊線を前記ビット線対へ接続して、前記ビット線対を「H」レベルに固定し、前記ワードデコーダによりワード線をアクティベートすることを特徴とする請求項1に記載の半導体装置。
  4. 前記ビット線対を駆動するドライバに、ビット破壊線を外部より接続して、前記ビット線対を「L」レベルに固定する機能を更に備え、
    前記ビット破壊線を前記ビット線対へ接続して、前記ビット線対を「L」レベルに固定し、前記ワードデコーダによりワード線をアクティベートすることを特徴とする請求項1に記載の半導体装置。
  5. 請求項1乃至4のいずれかの請求項に記載の半導体装置において、
    前記ワードデコーダは、ワード線の多重度指定信号の入力に従いワードアドレスを多重化して、複数のワード線を同時にアクティベートするマルチワードデコーダであり、
    前記ビット線対を駆動するドライバは、各ビット線対に接続された列方向に配列された前記メモリセルのうち、前記複数のワード線によってアクティベートされた複数のメモリセルを、同時に書込み動作、または読出し動作をすることを特徴とする半導体装置。
  6. 前記マルチワードデコーダは、入力した多重度指定信号に従い、基準となるワードアドレスに対してアドレス下桁の変化分を生成して、複数のワード線を同時にアクティベートすることを特徴とする請求項5に記載の半導体装置。
  7. 前記メモリセルアレイは、所定の個数のメモリセルのまとまりをユニット単位に纏められ、該ユニットの複数個が隣接関係をそれぞれ持って配置されており、
    前記各ユニット内には、隣接関係にある他のユニットのメモリセルの値を受信し、受信した前記値と自己のメモリセルに記憶する係数に基づいて演算した値を出力する演算回路を更に備え、及び
    前記メモリセルアレイに、前記演算を同期して行う隣接関係にあるユニットのグループを指定するアドレスデコーダを更に備え、
    前記アドレスデコーダが指定したユニットのグループ毎に前記演算を所定回数実行し、その後、前記マルチワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を繰り返すことを特徴とする請求項5に記載の半導体装置。
  8. 前記演算を所定回数実行した後、前記マルチワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を行う際に、全てのユニットのメモリセルに所定電圧より電圧を下げた電源電圧を供給することを特徴とする請求項7に記載の半導体装置。
  9. 前記マルチワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を行う際に、全てのユニットのメモリセルに所定電圧より電圧を下げた電源電圧を供給する処理では、最初に電源電圧を供給する時の電圧の下げ幅をもっとも大きくして、その後の繰り返しの時には順次下げ幅を減らして、0に収束させることを特徴とする請求項8に記載の半導体装置。
  10. 前記演算を所定回数実行した後、前記マルチワードデコーダにより全てのユニットのメモリセルを順次アクティベートする処理を行う際に、外部インタフェースに接続するビット破壊線を前記ビット線対へ接続して、前記ビット線対を「L」レベルに固定することを特徴とする請求項7に記載の半導体装置。
JP2014176534A 2014-08-29 2014-08-29 半導体装置 Expired - Fee Related JP5851570B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014176534A JP5851570B1 (ja) 2014-08-29 2014-08-29 半導体装置
US14/642,047 US9666252B2 (en) 2014-08-29 2015-03-09 Semiconductor device for calculating an interaction model

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP5851570B1 JP5851570B1 (ja) 2016-02-03
JP2016051491A true JP2016051491A (ja) 2016-04-11

Family

ID=55237984

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US9666252B2 (ja)
JP (1) JP5851570B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109147839A (zh) * 2018-08-17 2019-01-04 湖南毂梁微电子有限公司 一种兼具伊辛计算和随机存储访问功能的装置及系统
US11468248B2 (en) 2017-04-07 2022-10-11 Nec Corporation Semiconductor device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6021864B2 (ja) * 2014-08-29 2016-11-09 株式会社日立製作所 半導体装置および情報処理装置
CN108701474B (zh) * 2016-03-18 2022-12-30 株式会社半导体能源研究所 半导体装置及使用该半导体装置的系统
TWI789050B (zh) * 2021-10-15 2023-01-01 旺宏電子股份有限公司 記憶體裝置及其運算方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59223991A (ja) * 1983-06-03 1984-12-15 Hitachi Ltd デコ−ダ
JPH03104086A (ja) * 1989-09-18 1991-05-01 Nec Corp 演算機能付きメモリ
JPH11338767A (ja) * 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
JP2000137007A (ja) * 1998-08-26 2000-05-16 Canon Inc 状態構成方法及びその装置、並びにこれを用いた通信方法及びその装置
JP2001319496A (ja) * 2000-05-10 2001-11-16 Mitsubishi Electric Corp 半導体記憶回路装置及びその試験方法
JP2011524026A (ja) * 2008-03-24 2011-08-25 ディー−ウェイブ システムズ,インコーポレイテッド アナログ処理用のシステム、装置、および方法
JP2012043517A (ja) * 2010-08-23 2012-03-01 Renesas Electronics Corp 半導体装置
JP2012073954A (ja) * 2010-09-29 2012-04-12 Kobe Univ メモリセルアレイを用いたidチップおよびその生成方法
WO2012118064A1 (ja) * 2011-03-01 2012-09-07 大学共同利用機関法人情報・システム研究機構 イジングモデルの量子計算装置及びイジングモデルの量子計算方法
JP2015026408A (ja) * 2013-07-25 2015-02-05 ルネサスエレクトロニクス株式会社 半導体集積回路装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067898A (ja) * 1999-08-30 2001-03-16 Mitsubishi Electric Corp 半導体記憶装置
JP2004152399A (ja) * 2002-10-30 2004-05-27 Renesas Technology Corp 半導体記憶装置
CA2447204C (en) * 2002-11-29 2010-03-23 Memory Management Services Ltd. Error correction scheme for memory
US7826288B2 (en) * 2007-03-09 2010-11-02 International Business Machines Corporation Device threshold calibration through state dependent burn-in
US8270239B2 (en) * 2008-12-09 2012-09-18 Qualcomm Incorporated Semiconductor memory device and methods of performing a stress test on the semiconductor memory device
JP2014099225A (ja) 2012-11-14 2014-05-29 Renesas Electronics Corp 半導体装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59223991A (ja) * 1983-06-03 1984-12-15 Hitachi Ltd デコ−ダ
JPH03104086A (ja) * 1989-09-18 1991-05-01 Nec Corp 演算機能付きメモリ
JPH11338767A (ja) * 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
JP2000137007A (ja) * 1998-08-26 2000-05-16 Canon Inc 状態構成方法及びその装置、並びにこれを用いた通信方法及びその装置
JP2001319496A (ja) * 2000-05-10 2001-11-16 Mitsubishi Electric Corp 半導体記憶回路装置及びその試験方法
JP2011524026A (ja) * 2008-03-24 2011-08-25 ディー−ウェイブ システムズ,インコーポレイテッド アナログ処理用のシステム、装置、および方法
JP2012043517A (ja) * 2010-08-23 2012-03-01 Renesas Electronics Corp 半導体装置
JP2012073954A (ja) * 2010-09-29 2012-04-12 Kobe Univ メモリセルアレイを用いたidチップおよびその生成方法
WO2012118064A1 (ja) * 2011-03-01 2012-09-07 大学共同利用機関法人情報・システム研究機構 イジングモデルの量子計算装置及びイジングモデルの量子計算方法
JP2015026408A (ja) * 2013-07-25 2015-02-05 ルネサスエレクトロニクス株式会社 半導体集積回路装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11468248B2 (en) 2017-04-07 2022-10-11 Nec Corporation Semiconductor device
CN109147839A (zh) * 2018-08-17 2019-01-04 湖南毂梁微电子有限公司 一种兼具伊辛计算和随机存储访问功能的装置及系统
CN109147839B (zh) * 2018-08-17 2020-07-07 湖南毂梁微电子有限公司 一种兼具伊辛计算和随机存储访问功能的装置及系统

Also Published As

Publication number Publication date
US20160064050A1 (en) 2016-03-03
JP5851570B1 (ja) 2016-02-03
US9666252B2 (en) 2017-05-30

Similar Documents

Publication Publication Date Title
JP5864684B1 (ja) 半導体装置
JP5865456B1 (ja) 半導体装置
JP5851570B1 (ja) 半導体装置
JP6177993B2 (ja) 半導体装置および情報処理装置
JP5922203B2 (ja) 半導体装置
JP6605610B2 (ja) 半導体装置
JP5901712B2 (ja) 半導体装置および情報処理装置
JP6476292B2 (ja) 情報処理装置及びその制御方法
WO2016006071A1 (ja) 半導体装置及び情報処理システム
JP6021864B2 (ja) 半導体装置および情報処理装置
JP5894645B1 (ja) 半導体装置及びその品質管理方法
WO2017037902A1 (ja) 半導体システムおよび計算方法
JP2018206127A (ja) 情報処理装置
Ghaffar et al. A low power in-DRAM architecture for quantized CNNs using fast Winograd convolutions
JP6207583B2 (ja) 半導体装置および情報処理方法
JP5903471B2 (ja) 半導体装置および情報処理装置
Chen et al. Hidden-ROM: A compute-in-ROM architecture to deploy large-scale neural networks on chip with flexible and scalable post-fabrication task transfer capability
KR20240071391A (ko) 디지털 메모리-내-컴퓨테이션 아키텍처들에 대한 누산기

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151028

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151202

R150 Certificate of patent or registration of utility model

Ref document number: 5851570

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees