図面 (/)

技術 情報処理装置、イジング装置及び情報処理装置の制御方法

出願人 富士通株式会社
発明者 田村泰孝松原聡
出願日 2016年6月6日 (4年1ヶ月経過) 出願番号 2016-112488
公開日 2017年12月14日 (2年6ヶ月経過) 公開番号 2017-219948
状態 特許登録済
技術分野 学習型計算機
主要キーワード 大規模演算 実効温度 イジング型 ローカルフィールド 高速化効果 ノイズ幅 各制御コード ノイズ発生回路
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年12月14日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

大規模演算を可能とする。

解決手段

バス4a〜4cを介して接続されるイジング装置2a1〜2amのそれぞれは、接続先ニューロン回路出力信号の値が変化したとき、更新信号に基づいてローカルフィールド値を更新するニューロン回路10a1〜10anと、接続先ニューロン回路とそれが含まれるイジング装置のアドレス情報と、重み値識別情報とが対応付けられた接続先情報11aを記憶するメモリ11と、自身以外のイジング装置に含まれる接続先ニューロン回路の出力信号の変化時に、変化後の出力信号の値と接続先情報11aに基づく上記更新信号を出力する制御回路12と、制御装置3からモード設定値を受け、モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、隣接するイジング装置と制御回路12とを接続するか決定するルータ13を有する。

概要

背景

ノイマン型コンピュータが不得意とする多変数最適化問題解く方法として、イジング型目的関数を用いたシミュレテッドアニーリングを行うイジング装置(ボルツマンマシンと呼ばれる場合もある)がある。イジング装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。

しかし、イジング装置をソフトウェアによるシミュレーションで実現すると、最適化問題が扱う変数の数が増加するにつれ、イジング装置に含まれるユニット数またはユニットの間の接続数が増加し、計算時間が長くなる。

従来、イジング装置をハードウェアで実現することによって、計算時間を短縮することが提案されている。また、シミュレーテッド・アニーリングの代わりに量子アニーリングを用いて最適化問題を解くイジング装置(量子コンピュータとも呼ばれる)も提案されている。

概要

大規模演算を可能とする。バス4a〜4cを介して接続されるイジング装置2a1〜2amのそれぞれは、接続先ニューロン回路出力信号の値が変化したとき、更新信号に基づいてローカルフィールド値を更新するニューロン回路10a1〜10anと、接続先ニューロン回路とそれが含まれるイジング装置のアドレス情報と、重み値識別情報とが対応付けられた接続先情報11aを記憶するメモリ11と、自身以外のイジング装置に含まれる接続先ニューロン回路の出力信号の変化時に、変化後の出力信号の値と接続先情報11aに基づく上記更新信号を出力する制御回路12と、制御装置3からモード設定値を受け、モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、隣接するイジング装置と制御回路12とを接続するか決定するルータ13を有する。

目的

本発明は、変数が比較的多い大規模な問題の演算を可能とする情報処理装置、イジング装置及び情報処理装置の制御方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

マトリックス状に配置され、バスを介して接続される複数のイジング装置と、前記複数のイジング装置のそれぞれに複数設けられ、それぞれが、複数の接続先ニューロン回路からの出力信号に前記複数の接続先ニューロン回路との接続の強さを示す複数の重み値掛けた値の総和に基づく第1の値を保持し、前記第1の値にノイズ値加算した第2の値と閾値との比較結果に基づき、0または1を出力するとともに、前記出力信号の変化時に更新信号を受け、前記更新信号に基づいて前記第1の値の変化分を求め、前記変化分を前記第1の値に対して加算または減算することで前記第1の値を更新するニューロン回路と、前記複数のイジング装置のそれぞれに設けられ、前記複数の接続先ニューロン回路を識別する第1のアドレス情報と、前記複数のイジング装置のうち前記複数の接続先ニューロン回路のそれぞれを有するイジング装置を識別する第2のアドレス情報と、前記重み値の識別情報とが対応付けられた接続先情報を記憶するメモリと、前記複数のイジング装置のそれぞれに設けられ、前記複数の接続先ニューロン回路のうち、自身以外の第1のイジング装置に含まれる第1の接続先ニューロン回路の第1の出力信号の変化時に、変化後の前記第1の出力信号の値と、前記接続先情報とに基づく前記更新信号を出力する制御回路と、前記複数のイジング装置のそれぞれに設けられ、モード設定値を受け、前記モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、前記隣接するイジング装置と前記制御回路とを接続するか決定するルータと、前記モード設定値を前記ルータに送信する制御装置と、を有することを特徴とする情報処理装置

請求項2

前記複数のイジング装置は、スキャンチェーンを介して互いに接続され、前記ルータは、前記複数のイジング装置のうち、何れかから送信されるスキャンデータ入出力するポートを有することを特徴とする請求項1に記載の情報処理装置。

請求項3

前記スキャンデータは、前記モード設定値、または前記第2のアドレス情報、であることを特徴とする請求項2に記載の情報処理装置。

請求項4

前記複数のイジング装置で、同一行または同一列に配列されたイジング装置のうち、行または列の両端のイジング装置同士が前記バスで接続されている、ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。

請求項5

前記制御装置は、前記複数のイジング装置から、前記第1のイジング装置を選択し、変化後の前記第1の出力信号の値と、前記第1の接続先ニューロン回路を識別する前記第1のアドレス情報が、前記バスを介して、前記複数のイジング装置のうち、前記第1のイジング装置以外に伝搬されるように、前記モード設定値を決定する、ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理装置。

請求項6

それぞれが、複数の接続先ニューロン回路からの出力信号に前記複数の接続先ニューロン回路との接続の強さを示す複数の重み値を掛けた値の総和に基づく第1の値を保持し、前記第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1を出力するとともに、前記出力信号の変化時に更新信号を受け、前記更新信号に基づいて前記第1の値の変化分を求め、前記変化分を前記第1の値に対して加算または減算することで前記第1の値を更新する複数のニューロン回路と、前記複数の接続先ニューロン回路を識別する第1のアドレス情報と、前記複数の接続先ニューロン回路のそれぞれを有するイジング装置を識別する第2のアドレス情報と、前記重み値の識別情報とが対応付けられた接続先情報を記憶するメモリと、前記複数の接続先ニューロン回路のうち、自身以外の第1のイジング装置に含まれる第1の接続先ニューロン回路の第1の出力信号の変化時に、変化後の前記第1の出力信号の値と、前記接続先情報とに基づく前記更新信号を出力する制御回路と、モード設定値を受け、前記モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、前記隣接するイジング装置と前記制御回路とを接続するか決定するルータと、を有することを特徴とするイジング装置。

請求項7

それぞれが、複数の接続先ニューロン回路からの出力信号に前記複数の接続先ニューロン回路との接続の強さを示す複数の重み値を掛けた値の総和に基づく第1の値を保持し、前記第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1を出力するとともに、前記出力信号の変化時に更新信号を受け、前記更新信号に基づいて前記第1の値の変化分を求め、前記変化分を前記第1の値に対して加算または減算することで前記第1の値を更新する複数のニューロン回路と、前記複数の接続先ニューロン回路を識別する第1のアドレス情報と、前記複数の接続先ニューロン回路のそれぞれを有するイジング装置を識別する第2のアドレス情報と、前記重み値の識別情報とが対応付けられた接続先情報を記憶するメモリと、前記複数の接続先ニューロン回路のうち、自身以外の第1のイジング装置に含まれる第1の接続先ニューロン回路の第1の出力信号の変化時に、変化後の前記第1の出力信号の値と、前記接続先情報とに基づく前記更新信号を出力する制御回路と、モード設定値を受け、前記モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、前記隣接するイジング装置と前記制御回路とを接続するか決定するルータと、をそれぞれが有し、マトリックス状に配置され、バスを介して接続される複数のイジング装置に対して、制御装置が、前記複数の重み値を設定し、前記制御装置が、前記第1のイジング装置を選択し、前記制御装置が、変化後の前記第1の出力信号の値と、前記第1の接続先ニューロン回路のアドレス情報が、前記バスを介して、前記複数のイジング装置のうち、前記第1のイジング装置以外に伝搬されるように、前記モード設定値を決定する、ことを特徴とする情報処理装置の制御方法

技術分野

0001

本発明は、情報処理装置、イジング装置及び情報処理装置の制御方法に関する。

背景技術

0002

ノイマン型コンピュータが不得意とする多変数最適化問題解く方法として、イジング型目的関数を用いたシミュレテッドアニーリングを行うイジング装置(ボルツマンマシンと呼ばれる場合もある)がある。イジング装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。

0003

しかし、イジング装置をソフトウェアによるシミュレーションで実現すると、最適化問題が扱う変数の数が増加するにつれ、イジング装置に含まれるユニット数またはユニットの間の接続数が増加し、計算時間が長くなる。

0004

従来、イジング装置をハードウェアで実現することによって、計算時間を短縮することが提案されている。また、シミュレーテッド・アニーリングの代わりに量子アニーリングを用いて最適化問題を解くイジング装置(量子コンピュータとも呼ばれる)も提案されている。

先行技術

0005

特開平3−251947号公報
特開平6−68056号公報

発明が解決しようとする課題

0006

しかし、ハードウェアで実現する従来のイジング装置では、ユニット(ビット)が他の全てのビットに接続されているのではなく、接続数に制限があった。たとえば、総ビット数が2000の量子コンピュータは、各量子ビットが6つの量子ビットと接続するものであった。また、総ビット数が20000程度で、シミュレーテッド・アニーリングを行うイジング装置は、各ビットが5つのビットと接続するものであった。

0007

従来のイジング装置は、このような接続数の制限のもと、問題をマッピングして解くというものであったため、問題の規模が大きくなるとマッピングすることが困難になる、という問題があった。

0008

上記の点を鑑みて、本発明は、変数が比較的多い大規模な問題の演算を可能とする情報処理装置、イジング装置及び情報処理装置の制御方法を提供することを目的とする。

課題を解決するための手段

0009

1つの態様では、マトリックス状に配置され、バスを介して接続される複数のイジング装置と、前記複数のイジング装置のそれぞれに複数設けられ、それぞれが、複数の接続先ニューロン回路からの出力信号に前記複数の接続先ニューロン回路との接続の強さを示す複数の重み値掛けた値の総和に基づく第1の値を保持し、前記第1の値にノイズ値加算した第2の値と閾値との比較結果に基づき、0または1を出力するとともに、前記出力信号の変化時に更新信号を受け、前記更新信号に基づいて前記第1の値の変化分を求め、前記変化分を前記第1の値に対して加算または減算することで前記第1の値を更新するニューロン回路と、前記複数のイジング装置のそれぞれに設けられ、前記複数の接続先ニューロン回路を識別する第1のアドレス情報と、前記複数のイジング装置のうち前記複数の接続先ニューロン回路のそれぞれを有するイジング装置を識別する第2のアドレス情報と、前記重み値の識別情報とが対応付けられた接続先情報を記憶するメモリと、前記複数のイジング装置のそれぞれに設けられ、前記複数の接続先ニューロン回路のうち、自身以外の第1のイジング装置に含まれる第1の接続先ニューロン回路の第1の出力信号の変化時に、変化後の前記第1の出力信号の値と、前記接続先情報とに基づく前記更新信号を出力する制御回路と、前記複数のイジング装置のそれぞれに設けられ、モード設定値を受け、前記モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、前記隣接するイジング装置と前記制御回路とを接続するか決定するルータと、前記モード設定値を前記ルータに送信する制御装置と、を有する情報処理装置が提供される。

0010

また、1つの態様では、それぞれが、複数の接続先ニューロン回路からの出力信号に前記複数の接続先ニューロン回路との接続の強さを示す複数の重み値を掛けた値の総和に基づく第1の値を保持し、前記第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1を出力するとともに、前記出力信号の変化時に更新信号を受け、前記更新信号に基づいて前記第1の値の変化分を求め、前記変化分を前記第1の値に対して加算または減算することで前記第1の値を更新する複数のニューロン回路と、前記複数の接続先ニューロン回路を識別する第1のアドレス情報と、前記複数の接続先ニューロン回路のそれぞれを有するイジング装置を識別する第2のアドレス情報と、前記重み値の識別情報とが対応付けられた接続先情報を記憶するメモリと、前記複数の接続先ニューロン回路のうち、自身以外の第1のイジング装置に含まれる第1の接続先ニューロン回路の第1の出力信号の変化時に、変化後の前記第1の出力信号の値と、前記接続先情報とに基づく前記更新信号を出力する制御回路と、モード設定値を受け、前記モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、前記隣接するイジング装置と前記制御回路とを接続するか決定するルータと、を有するイジング装置が提供される。

0011

また、1つの態様では、それぞれが、複数の接続先ニューロン回路からの出力信号に前記複数の接続先ニューロン回路との接続の強さを示す複数の重み値を掛けた値の総和に基づく第1の値を保持し、前記第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1を出力するとともに、前記出力信号の変化時に更新信号を受け、前記更新信号に基づいて前記第1の値の変化分を求め、前記変化分を前記第1の値に対して加算または減算することで前記第1の値を更新する複数のニューロン回路と、前記複数の接続先ニューロン回路を識別する第1のアドレス情報と、前記複数の接続先ニューロン回路のそれぞれを有するイジング装置を識別する第2のアドレス情報と、前記重み値の識別情報とが対応付けられた接続先情報を記憶するメモリと、前記複数の接続先ニューロン回路のうち、自身以外の第1のイジング装置に含まれる第1の接続先ニューロン回路の第1の出力信号の変化時に、変化後の前記第1の出力信号の値と、前記接続先情報とに基づく前記更新信号を出力する制御回路と、モード設定値を受け、前記モード設定値に基づき、隣接するイジング装置のうちの少なくとも2つを接続するか、前記隣接するイジング装置と前記制御回路とを接続するか決定するルータと、をそれぞれが有し、マトリックス状に配置され、バスを介して接続される複数のイジング装置に対して、制御装置が、前記複数の重み値を設定し、前記制御装置が、前記第1のイジング装置を選択し、前記制御装置が、変化後の前記第1の出力信号の値と、前記第1の接続先ニューロン回路のアドレス情報が、前記バスを介して、前記複数のイジング装置のうち、前記第1のイジング装置以外に伝搬されるように、前記モード設定値を決定する、情報処理装置の制御方法が提供される。

発明の効果

0012

開示の情報処理装置、イジング装置及び情報処理装置の制御方法によれば、変数が比較的多い大規模な問題の演算が可能となる。

図面の簡単な説明

0013

第1の実施の形態の情報処理装置の一例を示す図である。
ニューロン回路の一例を示す図である。
状態xiが1となる確率Pi(hi)の一例を示す図である。
チップアドレスとモード設定値の初期値設定方法の一例を示す図である。
チップアドレスを設定するスキャンFFの一例を示す図である。
スキャンチェーンの他の例を示す図である。
ルータの一例を示す図である。
“EASTポートに接続されるスイッチ部の一例を示す図である。
モードレジスタに格納されているモード設定値の一例を示す図である。
スイッチ制御の他の例を示す図である。
モード設定値の変更方法の一例を示すタイミングチャートである。
波形及びタイミングの再生を行う回路群が接続されたルータの一例を示す図である。
波形とタイミングの再生の様子を示す図である。
マルチドロップバス機能を説明する図である。
接続先情報の一例を示す図である。
情報処理装置の動作の一例を示すフローチャートである。
重み値の書き込み時の動作例を示すタイミングチャートである。
シミュレーテッド・アニーリングの様子を示す図である。
更新信号の受信側のイジング装置での動作の一例を説明する図である。
本実施の形態の情報処理装置で実現されるニューラルネットワークイメージ図である。
第2の実施の形態の情報処理装置の一例を示す図である。
第3の実施の形態の情報処理装置の一例を示す図である。
並列化による高速化手法を説明する図である。
並列化による演算の高速化効果を示す図である。
量子モンテカルロ法による高速化手法を説明する図である。
図2のニューロン回路とは異なるニューロン回路をもつイジング装置の一例を示す図である。

実施例

0014

以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理装置の一例を示す図である。

0015

情報処理装置1は、マトリクス状に配置された複数(m個)のイジング装置2a1〜2amと、制御装置3を有している。
たとえば、イジング装置2a1〜2amのそれぞれは、1つの半導体集積回路チップ)で実現される。イジング装置2a1〜2amのうち、隣接するもの同士は、バス4a,4b,4cで接続可能である。たとえば、バス4aではデータが伝搬され、バス4bではアドレスが伝搬され、バス4cでは後述するモード設定値が伝搬される。

0016

なお、イジング装置2a1〜2amの接続トポロジは、図1の例に限定されない(他の例は、後述する(図21図22参照))。
イジング装置2a1〜2amのそれぞれは、以下のような要素を有している。図1には、イジング装置2akに含まれる要素の例が示されている。

0017

イジング装置2akは、複数(n個)のニューロン回路10a1,10a2,…,10an、メモリ11、制御回路12、ルータ13、送受信回路14a,14b,14c,14dを有している。

0018

ニューロン回路10a1〜10anは、たとえば、DeGloriaアルゴリズムと呼ばれるアルゴリズムに基づく回路を用いることができる。
DeGloriaアルゴリズムに基づくニューロン回路10a1〜10anのそれぞれは、複数の接続先ニューロン回路からの出力信号にその接続先ニューロン回路との接続の強さを示す重み値を掛けた値の総和に基づく値(以下、ローカルフィールド値という)を保持する。そして、ニューロン回路10a1〜10anのそれぞれは、ローカルフィールド値にノイズ値を加算した値と閾値(たとえば、0)との比較結果に基づき、0または1を出力する。さらに、ニューロン回路10a1〜10anのそれぞれは、接続先ニューロン回路の出力信号の変化時に、制御回路12から供給される更新信号を受け、更新信号に基づいて、ローカルフィールド値の変化分を求める。そして、ニューロン回路10a1〜10anのそれぞれは、その変化分を、上記出力信号の変化前のローカルフィールド値に対して加算または減算することで、ローカルフィールド値を更新する。

0019

ニューロン回路10a1〜10anの回路図の一例については後述する(図2参照)。
メモリ11は、接続先情報11aを記憶する。接続先情報11aには、ニューロン回路10a1〜10anに接続される接続先ニューロン回路を識別するアドレス情報と、接続先ニューロン回路を有するイジング装置を識別するアドレス情報と、重み値の識別情報とが含まれ、これらの情報が対応付けられている。接続先情報11aの例については後述する(図15参照)。

0020

以下では、接続先ニューロン回路を識別するアドレス情報を、内部アドレスと呼び、イジング装置を識別するアドレス情報を、チップアドレスと呼ぶ。内部アドレスやチップアドレスは、たとえば、制御装置3によって、計算対象の問題に応じて予め決定され、図示しないレジスタ(またはメモリ11)に格納される。

0021

なお、メモリ11としては、たとえば、フラッシュメモリなどの半導体記憶装置を使用することができる。
制御回路12は、接続先ニューロン回路の出力信号の変化時に、上記接続先情報11aと、変化後の出力信号の値とに基づく更新信号を出力する。たとえば、更新信号は、変化後の出力信号の値や、重み値の識別情報に基づく重み値の選択信号などである。

0022

制御回路12は、出力信号の値が変化した接続先ニューロン回路を含むイジング装置のチップアドレス及び接続先ニューロン回路の内部アドレスを、ルータ13を介して受ける。そして、制御回路12は、これらのアドレスを、接続先情報11aに含まれるチップアドレス及び内部アドレスと比較する。制御回路12は、受信した各アドレスが、たとえば、ニューロン回路10a1に接続される接続先ニューロン回路の内部アドレスと、チップアドレスに一致したときには、変化後の出力信号の値をニューロン回路10a1に供給する。さらに、制御回路12は、内部アドレスとチップアドレスに対応付けられた重み値の識別情報に基づいて、ニューロン回路10a1が使用する重み値を選択するための選択信号を、ニューロン回路10a1に供給する。

0023

また、制御回路12は、ニューロン回路10a1〜10anの何れかの出力信号が変化したときには、変化後の出力信号の値と、出力信号が変化したニューロン回路のアドレス(内部アドレス)を、ルータ13に供給する。また、制御回路12は、ニューロン回路10a1〜10anのうち、出力信号が変化したニューロン回路とその他のニューロン回路の間の重み値の識別情報に基づいた選択信号を、変化後の出力信号の値とともに、その他のニューロン回路に供給する。

0024

なお、1つのイジング装置内のニューロン回路間の重み値の識別情報は、たとえば、メモリ11内に格納されている。また、接続先情報11aが、1つのイジング装置内のニューロン回路間の重み値の識別情報を含んでいてもよい。

0025

上記のような動作を行う制御回路12は、たとえば、比較回路選択回路などで実現できる。なお、制御回路12は、プロセッサであってもよい。プロセッサは、たとえば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific IntegratedCircuit)、またはPLD(Programmable Logic Device)である。またプロセッサは、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。

0026

ルータ13は、モード設定値を受け、そのモード設定値に基づき、バス4a,4b,4cにより、隣接するイジング装置のうち、少なくとも2つを接続するか、隣接するイジング装置と制御回路12とを接続するか決定する。

0027

なお、モード設定値は、モードレジスタ13aに格納される。モードレジスタ13aは、たとえば、スキャンフリップフロップ(以下スキャンFFという)を有し、信号線5とそのスキャンFFを含むスキャンチェーンを用いて、モード設定値の初期値が設定される。モード設定値の変更時には、たとえば、バス4cを伝搬するモード設定値が、モードレジスタ13aに書き込まれる。

0028

送受信回路14a〜14dは、ルータ13と接続されており、イジング装置2akと隣接するイジング装置の間で情報(モード設定値、アドレス、データ)の送受信を行う。
制御装置3は、イジング装置2a1〜2amのうち、ニューロン回路の出力信号の値の更新を許容するもの(アニーリングするもの)を選択する。そして、制御装置3は、そのイジング装置から出力される、出力信号が変化したニューロン回路のアドレスと、変化後の出力信号の値が、そのニューロン回路に対する接続先ニューロン回路を含むイジング装置に供給されるようにモード設定値を設定する。

0029

また、制御装置3は、計算対象の問題に応じた重み値を、イジング装置2a1〜2amの各ニューロン回路にあるメモリに書き込む。
上記のような動作を行う制御装置3は、たとえば、プロセッサで実現できる。プロセッサは、たとえば、CPU、MPU、DSP、ASIC、またはPLDである。またプロセッサは、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。また、制御装置3は、PC(パーソナルコンピュータ)であってもよい。

0030

(DeGloriaアルゴリズムに基づくニューロン回路の一例)
図2は、ニューロン回路の一例を示す図である。
図2では、図1に示したn個のニューロン回路10a1〜10anのうち、ニューロン回路10a1,10ai,10anの一例が示されている。ニューロン回路10a1〜10anのうちニューロン回路10a1,10ai,10an以外のニューロン回路も同様の回路構成となっている。なお、図1では図示を省略したが、イジング装置2akは、ノイズ発生回路14とランダム信号生成回路15を有している。

0031

ニューロン回路10a1,10ai,10anは、レジスタ20a1,20ai,20an、選択回路21a1,21ai,21an,22a1,22ai,22an、乗算回路23a1,23ai,23anを有している。さらにニューロン回路10a1,10ai,10anは、加算回路24a1,24ai,24an、レジスタ25a1,25ai,25an、加算回路26a1,26ai,26anを有している。さらにニューロン回路10a1,10ai,10anは、比較回路27a1,27ai,27an、XOR回路28a1,28ai,28an、レジスタ29a1,29ai,29anを有している。

0032

レジスタ20a1は、N個の重み値W11,W12,…,W1Nを格納し、レジスタ20aiは、N個の重み値Wi1,Wi2,…,WiNを格納し、レジスタ20anは、N個の重み値Wn1,Wn2,…,WnNを格納する。N−nが、イジング装置2ak以外のイジング装置のニューロン回路のうち、ニューロン回路10a1〜10anが接続する数となる。

0033

たとえば、レジスタ20aiに格納される重み値Wi1〜WiNのうち、重み値Wi1〜Winは、ニューロン回路10a1〜10anのうち、ニューロン回路10aiと、イジング装置2ak内のその他のニューロン回路との接続の強さを示す。一方、重み値Wi1〜WiNのうち、重み値Win+1〜WiNは、ニューロン回路10aiと、イジング装置2ak以外のイジング装置のN−n個のニューロン回路との接続の強さを示す。たとえば、n=1024でN=1152であるとき、ニューロン回路10aiは、イジング装置2ak以外のイジング装置のニューロン回路のうち、128個との接続をもつ。なお、nや、Nの数は、上記の例に限定されないことは言うまでもない。

0034

なお、上記のような重み値は、制御装置3により、計算対象の問題に応じて設定され、レジスタ20a1〜20anに格納される。なお、上記のような重み値は、RAM(Random Access Memory)などのメモリに格納されてもよい。

0035

選択回路21a1は、制御回路12から供給される選択信号に基づき、レジスタ20a1に格納されている重み値W11〜W1Nのうち1つを選択して出力する。選択回路21aiは、選択信号に基づき、レジスタ20aiに格納されている重み値Wi1〜WiNのうち1つを選択して出力する。選択回路21anは、選択信号に基づき、レジスタ20anに格納されている重み値Wn1〜WnNのうち1つを選択して出力する。

0036

たとえば、ニューロン回路10a1の出力信号が変化したとき、選択信号に基づき、ニューロン回路10a1,10ai,10anの選択回路21a1,21ai,21anは、それぞれ、重み値W11,Wi1,Wn1を選択する。

0037

選択回路22a1〜22anのそれぞれは、制御回路12から出力される、接続先ニューロン回路の出力信号の変化後の値(0か1)に基づき、1または−1を選択して出力する。変化後の値が0のときには、選択回路22a1〜22anは、−1を選択して出力し、変化後の値が1のときには、選択回路22a1〜22anは、1を選択して出力する。この理由については後述する。

0038

乗算回路23a1は、選択回路21a1から出力される値と、選択回路22a1から出力される値との積を出力する。乗算回路23aiは、選択回路21aiから出力される値と、選択回路22aiから出力される値との積を出力する。乗算回路23anは、選択回路21anから出力される値と、選択回路22anから出力される値との積を出力する。

0039

加算回路24a1は、乗算回路23a1から出力される値と、レジスタ25a1に格納されている値とを加算して出力する。加算回路24aiは、乗算回路23aiから出力される値と、レジスタ25aiに格納されている値とを加算して出力する。加算回路24anは、乗算回路23anから出力される値と、レジスタ25anに格納されている値とを加算して出力する。

0040

レジスタ25a1は、図示しないクロック信号に同期して、加算回路24a1から出力される値を取り込む。レジスタ25aiは、図示しないクロック信号に同期して、加算回路24aiから出力される値を取り込む。レジスタ25anは、図示しないクロック信号に同期して、加算回路24anから出力される値を取り込む。レジスタ25a1〜25anは、たとえば、フリップフロップである。なお、初期値は後述するバイアス値である。

0041

なお、レジスタ25a1〜25anに取り込まれた値が、前述したローカルフィールド値であり、図2では、h1,hi,hnと表記されている。
加算回路26a1は、レジスタ25a1から出力される値に、ノイズ発生回路14から出力されるノイズ値を加算して出力する。加算回路26aiは、レジスタ25aiから出力される値に、ノイズ発生回路14から出力されるノイズ値を加算して出力する。加算回路26anは、レジスタ25anから出力される値に、ノイズ発生回路14から出力されるノイズ値を加算して出力する。ノイズ値の例については後述する。

0042

比較回路27a1は、加算回路26a1から出力される値が、閾値よりも大きいときには1を出力し、閾値以下のときには0を出力する。比較回路27aiは、加算回路26aiから出力される値が、閾値よりも大きいときには1を出力し、閾値以下のときには0を出力する。比較回路27anは、加算回路26anから出力される値が、閾値よりも大きいときには1を出力し、閾値以下のときには0を出力する。

0043

なお、イジング装置2akでアニール動作が行われる際、比較回路27a1〜27anは、ランダム信号生成回路15によって、ランダムに1つが有効になり、他は無効になる。ランダム信号生成回路15としては、LFSR(Linear Feedback Shift Registers)などを用いることができる。

0044

XOR回路28a1は、比較回路27a1から出力される値と、レジスタ29a1に格納されている値とが、一致しているときは0を出力し、異なるときは1を出力する。XOR回路28aiは、比較回路27aiから出力される値と、レジスタ29aiに格納されている値とが、一致しているときは0を出力し、異なるときは1を出力する。XOR回路28anは、比較回路27anから出力される値と、レジスタ29anに格納されている値とが、一致しているときは0を出力し、異なるときは1を出力する。

0045

レジスタ29a1は、XOR回路28a1から出力される値が1となると、比較回路27a1から出力される値を取り込む。これにより、ニューロン回路10a1の出力信号(ニューロン回路10a1の状態)x1が変化する(更新される)。レジスタ29aiは、XOR回路28aiから出力される値が1となると、比較回路27aiから出力される値を取り込む。これにより、ニューロン回路10aiの出力信号(ニューロン回路10aiの状態)xiが変化する。レジスタ29anは、XOR回路28anから出力される値が1となると、比較回路27anから出力される値を取り込む。これにより、ニューロン回路10anの出力信号(ニューロン回路10anの状態)xnが変化する。

0046

以上のような、ニューロン回路10a1〜10anは、イジング型のエネルギー関数の演算を小規模なハードウェアで実現するものである。なお、イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。

0047

0048

右辺の1項目は、全ニューロン回路から選択可能な2つのニューロン回路の全組み合わせについて、漏れ重複なく、2つのニューロン回路の状態と重み値との積を積算したものである。なお、Wij=Wji、Wii=0である。

0049

右辺の2項目は、全ニューロン回路のそれぞれのバイアス値と状態との積を積算したものである。biは、i番目のニューロン回路のバイアス値を示している。
上記のようなエネルギー関数E(x)をハードウェアで表現するため、図2に示したニューロン回路10a1〜10anのそれぞれは、ローカルフィールド値h1〜hnを演算する。たとえば、ニューロン回路10aiにおけるローカルフィールド値hiは以下の式(2)で表される。

0050

0051

右辺の1項目は、i番目のニューロン回路10aiと、ニューロン回路10aiの全接続先ニューロン回路のそれぞれとの間の接続の強さを示す複数の重み値と、接続先ニューロン回路のそれぞれの状態との積を積算したものである。

0052

情報処理装置1の全ニューロン回路のうち、一度に状態が更新されるニューロン回路の数を1つとすると、そのニューロン回路の接続先では、元のローカルフィールド値に対して、その更新による変化分を加算または減算すればよい。

0053

たとえば、ニューロン回路10aiに接続されているニューロン回路の状態xj(0または1)が、1−xjに変化したとき、ニューロン回路10aiのローカルフィールド値の変化分Δhiは、以下の式(3)で表される。

0054

0055

式(3)において、1−2xjは、状態xjが、0から1に変化したときには、+1となり、1から0に変化したときには、−1となる。
このような1−2xjの演算は、図2に示した、選択回路22aiで実現できる。

0056

(ノイズ値の例)
図2に示したようなニューロン回路10a1〜10anでは、シミュレーテッド・アニーリングを行うために、ローカルフィールド値h1〜hnにノイズ値を加えた値に対して、比較回路27a1〜27anで閾値との比較が行われる。

0057

たとえば、比較回路27a1〜27anの出力値(ニューロン回路10a1〜10anの状態x1〜xn)が1となる確率が、シグモイド関数に従うようにノイズ値が加えられる。たとえば、ニューロン回路10aiの状態xiが1となる確率Pi(hi)が、以下の式(4)の関係になるように、ノイズ値が加えられる。

0058

0059

式(4)において、Tは、実効温度である。
式(4)に示すような確率Pi(hi)を得るために、加算するノイズ値nsの確率密度関数p(ns)は、以下の式(5)のようになる。

0060

0061

図3は、状態xiが1となる確率Pi(hi)の一例を示す図である。
横軸は、ローカルフィールド値hiにノイズ値nsを加算した値を示し、縦軸は、状態xiが1となる確率を示している。

0062

波形30は、ローカルフィールド値hiに、式(5)に示すような確率密度関数p(ns)に従うノイズ値nsを加算した値が、比較回路27aiに入力されたときに、状態xiが1となる確率Pi(hi)を示す。波形31は、ローカルフィールド値hiが、比較回路27aiに入力されたときに、状態xiが1となる確率Pi(hi)を示す。

0063

波形31に示すように、ノイズ値nsがローカルフィールド値hiに加算されないときは、ローカルフィールド値hiが、閾値Vth以下では、Pi(hi)=0、閾値Vthを超えると、Pi(hi)=1となる。

0064

これに対して、ノイズ値nsがローカルフィールド値hiに加算されるときは、波形30に示すように、シグモイド関数に従って確率Pi(hi)が変化する。
(チップアドレスとモード設定値の初期値の設定方法)
図4は、チップアドレスとモード設定値の初期値の設定方法の一例を示す図である。

0065

イジング装置2a1〜2amは、たとえば、1本のスキャンチェーン40で接続されている。制御装置3はスキャンチェーン40により、チップアドレスとモード設定値の初期値をイジング装置2a1〜2amのそれぞれに設定する。

0066

図5は、チップアドレスを設定するスキャンFFの一例を示す図である。
直列に接続されたスキャンFF部13b1〜13bmのそれぞれは、対応するイジング装置2a1〜2amのチップアドレスのビット数に対応した数のスキャンFFを有する。

0067

たとえば、チップアドレスのビット数をpビットとすると、図5に示されているように、スキャンFF部13b1は、直列に接続されたスキャンFF41a1,41a2,…,41apを有する。また、スキャンFF部13bmも直列に接続されたスキャンFF42a1,42a2,…,42apを有する。

0068

スキャンFF部13b1〜13bmのそれぞれは、たとえば、対応するイジング装置2a1〜2am内のルータ内に設けられる。
制御装置3は、自身の端子44から、イジング装置2a1〜2amのそれぞれに設定するチップアドレスのビットの値を、1ビットずつ順番に出力する。また、制御装置3は、自身の端子45からクロック信号を出力する。なお、クロック信号は、スキャンFF部13b1〜13bmに並列に供給される。クロック信号の立ち上がり(または立ち下がり)に同期して、ビットの値が、後段のスキャンFFに送られていく。

0069

制御装置3は、クロック信号を、m×pサイクル出力した後、自身の端子43から出力するリードイネーブル信号論理レベルを、たとえば、H(High)レベル立ち上げる。これにより、スキャンFF部13b1〜13bmから、ビットの値が読み出され、スキャンFF部13b1〜13bmのそれぞれに対応して設けられた図示しないレジスタに、チップアドレスが格納される。

0070

モード設定値の初期値に関しても、たとえば、別のスキャンチェーンを用いて、ルータ内のモードレジスタ(たとえば、図1のイジング装置2akでは、ルータ13内のモードレジスタ13a)に格納される。

0071

なお、スキャンチェーンは、図4に示したスキャンチェーン40のように1本のパスではなくてもよい。
図6は、スキャンチェーンの他の例を示す図である。

0072

図6では、並列にq本のスキャンチェーン40a1,40a2,…,40aqが制御装置3に接続されている。また、マトリックス状に配置されたイジング装置2a1〜2amのうち同じ行のものには、同じスキャンチェーンが接続される。

0073

このようにスキャンチェーンを並列化することによって、イジング装置2a1〜2amへのチップアドレスとモード設定値の初期値の付与が、1本のスキャンチェーンを用いる場合よりも高速に行える。

0074

(ルータ13の構成例)
図7は、ルータの一例を示す図である。
ルータ13は、スキャン・イン、スキャン・アウトのためのポートの他に、“NORTH”、“SOUTH”、“EAST”、“WEST”、“LOCAL”の5つのポートを有する。

0075

たとえば、イジング装置2akに対して図7紙面左側に隣接するイジング装置から供給される情報を、図7の紙面右側に隣接するイジング装置に送るときには、“EAST”、“WEST”の2つのポートが用いられる。

0076

イジング装置2akに対して隣接するイジング装置から供給される情報を、制御回路12に送るとき、または制御回路12からの情報を隣接するイジング装置に送るときには、“LOCAL”ポートが用いられる。

0077

なお、モードレジスタ13aに格納されるモード設定値の変更の際にも、“LOCAL”ポートが用いられる。
図8は、“EAST”ポートに接続されるスイッチ部の一例を示す図である。

0078

“EAST”ポートから供給される情報は、バッファ回路50を介して、スイッチ部51に供給される。
スイッチ部51は、スイッチ51a,51b,51c,51dを有する。スイッチ51aは、バッファ回路50の出力端子と、“LOCAL”ポートの間に接続されている。スイッチ51bは、バッファ回路50の出力端子と、“NORTH”ポートの間に接続されている。スイッチ51cは、バッファ回路50の出力端子と、“WEST”ポートの間に接続されている。スイッチ51dは、バッファ回路50の出力端子、“SOUTH”ポートの間に接続されている。

0079

たとえば、スイッチ51a〜51dは、nチャネル型MOSFET(Metal-Oxide Semiconductor Field Effect Transistor)である。その場合、スイッチ51a〜51dは、たとえば、ルータ13内の図示しないスイッチ制御回路によって生成されるゲート電圧が、Hレベルとなるとオン状態となり、L(Low)レベルとなるとオフ状態となる。スイッチ制御回路は、モードレジスタ13aに格納されているモード設定値に基づき上記のようなゲート電圧を生成する。

0080

図9は、モードレジスタに格納されているモード設定値の一例を示す図である。
図9では、“NORTH”、“SOUTH”、“EAST”、“WEST”、“LOCAL”の5つのポートに接続されるスイッチ部の5つのスイッチを制御するモード設定値の例が示されている。図9の例では、モード設定値は、“NORTH”、“SOUTH”、“EAST”、“WEST”、“LOCAL”のうち、2つの頭文字を組み合わせた制御コード集合で表されている。

0081

たとえば、“EN”は、図8に示した“EAST”ポートに接続されるスイッチ部51に含まれ、“EAST”ポートと“NORTH”ポートとの接続の有無を決定するスイッチ51bを制御する制御コードである。

0082

また、“WS”は、図示を省略しているが、“WEST”ポートに接続されるスイッチ部に含まれ、“WEST”ポートと“SOUTH”ポートとの接続の有無を決定するスイッチを制御する制御コードである。

0083

各制御コードは、たとえば、0または1で表され、0のときは、その制御コードで制御されるスイッチはオフ状態となり、1のときは、その制御コードで制御されるスイッチはオン状態となる。

0084

たとえば、(EN,EW,ES,EL)=(1,0,0,1)とした場合には、図8に示したスイッチ部51において、スイッチ51a,51bがオン状態となり、スイッチ51c,51dがオフ状態となる。

0085

図10は、スイッチ制御の他の例を示す図である。
モードレジスタ13aは、モード設定値として、上記のような制御コードを直接記憶する代わりに、たとえば、モード名を示す識別情報を記憶している。

0086

また、ルータ13内のメモリ13cは、上記識別情報と制御コードとの対応関係が示された変換テーブル13c1を格納している。
ルータ13内のスイッチ制御回路13dは、ルータ13内のメモリ13cに格納された変換テーブル13c1を参照して、上記識別情報から制御コードを特定する。そして、スイッチ制御回路13dは、その制御コードに基づくスイッチ制御信号を出力して、スイッチ51a〜51dなどを制御する。

0087

このようにすることで、モードレジスタ13aが格納するモード設定値のビット数を少なくでき、モード設定値の転送に要するバンド幅を小さくできる。
図11は、モード設定値の変更方法の一例を示すタイミングチャートである。

0088

イジング装置2akのルータ13のモードレジスタ13aに格納されるモード設定値を変更する場合、制御装置3は、イジング装置2akのチップアドレスとモード設定値とをバス4b,4cに伝搬する。また、制御装置3は、図示しない制御信号線で伝搬するモード・ライト・イネーブル信号の論理レベルをHレベルに立ち上げる。

0089

このとき、ルータ13は、現在のモード設定値に基づき、4つのポート、“NORTH”、“SOUTH”、“EAST”、“WEST”の何れかから、モード・ライト・イネーブル信号を受ける。そして、ルータ13は、モード・ライト・イネーブル信号の立ち上がり(タイミングt1)に同期して、モード・ライト・イネーブル信号を受けたポートから、供給されるチップアドレスと、自身のチップアドレスとを比較する。

0090

そして、ルータ13は、両チップアドレスが一致したときに、上記ポートからモード設定値を取り込み、“LOCAL”ポートを介してモードレジスタ13aに記憶されているモード設定値を更新する。

0091

(波形及びタイミングの再生機能
本実施の形態の情報処理装置1では、チップ内横断する信号伝送チップ間信号伝送が行われる。このときの信号波形の変形を抑制するために、たとえば、以下のような回路群がルータ13に接続される。

0092

図12は、波形及びタイミングの再生を行う回路群が接続されたルータの一例を示す図である。
図12の例では、送受信回路14bが受信した信号を、ルータ13を介して送受信回路14dから送信する部分が示されているが、他の方向の信号伝送を行う部分についても同様の回路群が設けられる。

0093

送受信回路14bとルータ13間には、並列に接続されたフリップフロップ60,61が設けられている。また、ルータ13と送受信回路14d間には、2:1マルチプレクサ62とバッファ回路63が設けられている。

0094

フリップフロップ60は、たとえば、位相調整回路64から出力されるクロック信号clkの立ち上がりタイミングに同期して送受信回路14bから供給される信号の値を取り込み、ルータ13に出力する。フリップフロップ61は、たとえば、位相調整回路64から出力されるクロック信号clkの立ち下がりタイミングに同期して送受信回路14bから供給される信号の値を取り込み、ルータ13に出力する。

0095

2:1マルチプレクサ62は、フリップフロップ60,61から出力される2つの信号を、ルータ13を介して受信し、その何れか一方を、クロック信号clkの論理レベルがHレベルかLレベルかに応じて出力する。2:1マルチプレクサ62からの出力信号は、バッファ回路63を介して送受信回路14dに供給される。

0096

位相調整回路64は、たとえば、制御装置3から供給されるグローバルクロック信号gclkを受ける。そして位相調整回路64は、フリップフロップ60,61が、送受信回路14bから供給される信号を、その信号のアイパターンの中央のタイミングで取り込めるように、グローバルクロック信号gclkの位相を調整したクロック信号clkを出力する。

0097

図13は、波形とタイミングの再生の様子を示す図である。
クロック信号clkは、立ち上がりタイミングt2が、送受信回路14bから供給される信号(Data in)のアイパターンの中央付近になるように、位相が調整されている。

0098

Data inに対して所定時間遅延した信号(Data out)がバッファ回路63から出力される。上記のような回路群をルータ13に接続することによって、Data outの波形は、Data inの波形とほぼ同じとなる。

0099

(マルチドロップバス機能)
図14は、マルチドロップバス機能を説明する図である。
本実施の形態の情報処理装置1では、バス4a〜4cは、図14に示すように、接続されているイジング装置2a1,2a2,…,2amとの間で信号の送受信を行うことができるマルチドロップバスとして機能する。たとえば、制御信号配送用の制御信号線4dにより伝搬されるモード・ライト・イネーブル信号の論理レベルがHレベルとなると、バス4bで伝搬されるチップアドレスと自身のチップアドレスが一致するイジング装置が、バス4cで伝搬されるモード設定値を取り込む。

0100

(メモリ11に格納される接続先情報11aの一例)
図15は、接続先情報の一例を示す図である。
図15では、イジング装置2akのニューロン回路10a1〜10anのうち、図2に示したニューロン回路10aiに対応付けられた接続先情報の一例が示されている。

0101

接続先情報70では、ニューロン回路10aiに接続される接続先ニューロン回路を識別する内部アドレスと、その接続先ニューロン回路を有するイジング装置を識別するチップアドレスと、重み値の識別情報とが対応付けられている。

0102

たとえば、接続先情報70の1行目では、ニューロン回路10aiは、チップアドレスが0のイジング装置の、内部アドレスが1のニューロン回路に接続されることを示している。また、そのニューロン回路と、ニューロン回路10aiの接続の重み値の識別情報は、(i,n+1)であることが示されている。なお、nは、イジング装置2ak内のニューロン回路10a1〜10anの数である。n=1024の場合、識別情報は、(i,1025)となる。

0103

また、接続先情報70において、n1は、チップアドレスが0のイジング装置の中で、ニューロン回路10aiと接続されるニューロン回路の数である。また、n2は、チップアドレスが2のイジング装置の中で、ニューロン回路10aiと接続されるニューロン回路の数である。

0104

なお、イジング装置2a1〜2amの数を1024個とすると、チップアドレスは、たとえば、10ビットで表される。
このような重み値の識別情報と、チップアドレスと、内部アドレスの対応関係の情報は、重み値の識別情報の小さい順に並べられる。

0105

イジング装置2akのニューロン回路10a1〜10anのうち、ニューロン回路10ai以外に対応付けられた接続先情報も同様である。
(アニール動作例)
以下、制御装置3によって制御される情報処理装置1の動作(アニール動作)の一例を説明する。

0106

図16は、情報処理装置の動作の一例を示すフローチャートである。
まず、制御装置3は、たとえば、図4図6に示したようなスキャンチェーン40,40a1〜40aqを用いて、チップアドレス及びモード設定値の初期値を、イジング装置2a1〜2amのそれぞれのレジスタに設定する(ステップS1)。たとえば、イジング装置2akでは、モード設定値の初期値は、モードレジスタ13aに設定され、チップアドレスは、たとえば、ルータ13内の図示しないレジスタに設定される。

0107

さらに、制御装置3により、計算対象の問題に応じた重み値が、イジング装置2a1〜2amの各ニューロン回路にあるレジスタ(またはメモリ)へ書き込まれる(設定される)(ステップS2)。

0108

図17は、重み値の書き込み時の動作例を示すタイミングチャートである。
イジング装置2akのニューロン回路10a1〜10anのレジスタ20a1〜20anに重み値を書き込む場合、制御装置3は、イジング装置2akのチップアドレスと重み値とをバス4a,4bに伝搬する。また、制御装置3は、たとえば、図14に示したような制御信号線4dで伝搬させるウェイト・ライト・イネーブル信号の論理レベルをHレベルに立ち上げる。

0109

このとき、ルータ13は、現在のモード設定値に基づき、4つのポート、“NORTH”、“SOUTH”、“EAST”、“WEST”の何れかから、ウェイト・ライト・イネーブル信号を受ける。そして、ルータ13は、モード・ライト・イネーブル信号の立ち上がり(タイミングt3)に同期して、モード・ライト・イネーブル信号を受けたポートから供給されるチップアドレスと、自身のチップアドレスとを比較する。

0110

そして、ルータ13は、両チップアドレスが一致したときに、上記ポートから重み値を取り込み、“LOCAL”ポートを介してレジスタ20a1〜20anに重み値を書き込む。

0111

他のイジング装置のニューロン回路にあるレジスタ(またはメモリ)にも同様にして重み値が書き込まれる。
次に、制御装置3は、全チップ(イジング装置2a1〜2an)のニューロン回路の状態を初期化する(ステップS3)。たとえば、制御装置3は、図示しない制御信号線を介して、各ニューロン回路のローカルフィールド値を保持するレジスタの値をリセットする。

0112

その後、制御装置3は、イジング装置2a1〜2anのうち、アニール動作を実行させるイジング装置(アニールチップ)を1つ選択する(ステップS4)。たとえば、制御装置3は、イジング装置2a1〜2anの何れか1つをランダムに選択する。そして、制御装置3は、選択した1つのイジング装置以外のイジング装置に含まれるニューロン回路内において、出力信号の値を決定する比較回路を制御信号により無効化し、出力信号の値が変化しないようにする。

0113

そして、選択されたイジング装置では、状態の更新を許容するニューロン回路が1つランダムに選択される(ステップS5)。以下では、ステップS4の処理にて、イジング装置2akが選択されたものとして説明する。このとき、ランダム信号生成回路15により、ニューロン回路10a1〜10anの何れか1つの状態の更新が許容される。

0114

たとえば、ニューロン回路10aiの状態xiの更新が許容されたとき、ローカルフィールド値hiにノイズ値を加えた値が閾値を超えると、状態xiは1となる。また、状態xiの元の値が0のとき、XOR28iは1を出力し、状態xiが更新された旨を制御回路12に通知する。

0115

制御回路12は、状態xiが更新された旨の通知を受けると、イジング装置2ak内の他のニューロン回路に、ニューロン回路10aiとの間の接続の強さを示す重み値を選択させるための選択信号と、更新後の状態xiの値とを供給する。

0116

状態の更新を許容するニューロン回路の選択回数が、予め決められた回数cnt1に達しないときは(ステップS6:NO)、ステップS5の処理が行われる。
状態の更新を許容するニューロン回路の選択を行うたびに、ノイズ発生回路14は、たとえば、制御装置3の制御のもと、ノイズ振幅を徐々に小さくしていくことで、シミュレーテッド・アニーリングが行われる。

0117

図18は、シミュレーテッド・アニーリングの様子を示す図である。
縦軸はエネルギーEであり、横軸は全ニューロン回路の状態の組み合わせqKを示している。組み合わせqKは、“000…0”から“111…1”まである。図18では、ノイズの振幅がW1、W2、W3と小さくなっていくときの、解の収束の様子が示されている。ノイズの振幅を小さくしていくことは、式(5)の実効温度Tを小さくしていくことに相当する。

0118

ノイズの振幅がW1のとき、解が、局所解(エネルギーが局所的な極小値となる解)qk1,qk2,qk4,qk5となっても、エネルギーが高くなる方向に変化でき、局所解から脱出できる。ノイズの振幅が、W2、W3と徐々に小さくなるにつれて、解の変化は制限されていき、最終的に、最適解(エネルギーが最小値となる解)qk3に収束する。

0119

ただ、シミュレーテッド・アニーリングでは、最適解への収束時間が長いため、状態の更新を許容するニューロン回路の選択回数を、cnt1に制限している。よりエネルギーが小さくなる解を求めるために、後述の量子モンテカルロ法などを用いることができる。

0120

図16に示されている処理において、選択回数が、回数cnt1に達したときには(ステップS6:YES)、制御回路12は、回数cnt1の選択の前後で状態が変化したニューロン回路の内部アドレスと、変化後の状態の値とをルータ13に通知する。

0121

ルータ13は、内部アドレスと、変化後の状態の値とを含む更新信号を、たとえば、バス4a,4bを用いてブロードキャストする。ニューロン回路10a1〜10anの数をn=1024とした場合、最大で、1024個の更新信号がブロードキャストされる。たとえば、ニューロン回路の内部アドレスが小さい順に更新信号がブロードキャストされる。

0122

このとき、制御装置3は、イジング装置2a1〜2am(イジング装置2akを除く)に、更新信号がブロードキャストされるように、前述の方法でモード設定値を設定する(ステップS7)。

0123

更新信号を受けたイジング装置では、自身に含まれるニューロン回路に対する接続先ニューロン回路の状態が変更されているときには、そのニューロン回路のローカルフィールド値を更新する(ステップS8)。

0124

図19は、更新信号の受信側のイジング装置での動作の一例を説明する図である。
図19では、図1に示したイジング装置2akを例にして説明する。ルータ13などについては図示が省略されている。

0125

選択回路12a1〜12anは、図1に示した制御回路12に含まれる。制御回路12は、バス4a,4bや送受信回路14bを介して、更新信号として、アニールチップに含まれるニューロン回路のうち、状態が変化したニューロン回路の内部アドレスと、変化後の状態の値とを受信する。

0126

たとえば、アニールチップのチップアドレスとして、xがバス4bで供給されている状態で、制御回路12が、更新信号として、内部アドレス=2を受けると、制御回路12は、接続先情報11a1,11a2,…,11anを参照する。接続先情報11a1〜11anには、ニューロン回路10a1〜10anのそれぞれの接続先ニューロン回路の内部アドレス、接続先ニューロン回路が含まれるイジング装置のチップアドレス、重み値の識別情報が対応付けられている。

0127

図19に示すように、チップアドレス=x、内部アドレス=2は、接続先情報11a1に含まれている。このとき、選択回路12a1は、更新信号として受信した、状態が変化したニューロン回路の変化後の値を、ニューロン回路10a1に供給する。

0128

なお、図示を省略しているが、接続先情報11a1において、チップアドレス=x、内部アドレス=2に対応した重み値の識別情報に基づいて、重み値の選択のための選択信号もニューロン回路10a1に供給される。

0129

その選択信号と、更新した状態の値とに基づいて、ニューロン回路10a1は、ローカルフィールド値を更新する。
その後、制御装置3は、アニールチップの選択回数が、予め決められた回数cnt2に達しないときは(ステップS9:NO)、再びステップS4の処理を行う。

0130

アニールチップの選択回数が、回数cnt2に達したときは(ステップS9:YES)、制御装置3は、アニール動作を終了する。
なお、上記の処理ステップの順序は、上記の例に限定されるものではない。たとえば、制御装置3は、モード設定値の設定を、ステップS4の処理後に行ってもよい。

0131

また、上記の例では、選択回数がcnt1に達すると、更新信号がブロードキャストされるものとしたが、ニューロン回路が1回選択されるごとに、更新信号がブロードキャストされるようにしてもよい。

0132

以上のような処理後に、制御装置3は、全ニューロン回路の状態を読み出すことで、問題の解を得る。たとえば、スキャンチェーンを用いて、全ニューロン回路の状態を読み出すことができる。

0133

読み出した状態は、たとえば、制御装置3に接続される図示しない表示装置に表示される。
以上のような情報処理装置1によれば、複数のニューロン回路をもつイジング装置2a1〜2amのそれぞれが、接続先のニューロン回路とそれが含まれるイジング装置のアドレスを含む接続先情報を記憶するメモリと、接続先が変更可能なルータを有する。そして、イジング装置2a1〜2amのそれぞれで、ルータを介して得た他のイジング装置のニューロン状態を、接続先情報に基づき自身のニューロン回路に反映する。これによって、ニューロン回路間の接続数を増やせ、大規模な演算が可能となる。

0134

たとえば、変数の数が103から106以上となるような最適化問題を1チップの集積回路で演算することは難しいが、上記の情報処理装置1によれば、多数のチップを用いて1つのイジング装置として機能させることもできるため、演算が容易になる。

0135

図20は、本実施の形態の情報処理装置で実現されるニューラルネットワークのイメージ図である。
図20の例では、8つのニューロン(たとえば、ニューロン80a)が互いに接続されている6つのニューロン部(たとえば、ニューロン部80)が、相互接続されているニューラルネットワークが示されている。

0136

1つのニューロン部は、1つのイジング装置(チップ)に相当し、1つのニューロンは1つのニューロン回路に相当する。
なお、問題のマッピング時(重み値の設定=プログラミング)時にニューロン部間の接続数が制約となるが、ニューロン部内での接続数の1/10程度の接続があれば多くの場合問題なくプログラミングが可能である。

0137

(第2の実施の形態)
図21は、第2の実施の形態の情報処理装置の一例を示す図である。図1に示した要素と同じ要素については同一符号が付されている。

0138

第2の実施の形態の情報処理装置1aは、イジング装置間(チップ間)の接続トポロジが、図1に示した情報処理装置1と異なっている。
情報処理装置1aは、チップ間の接続トポロジが、1次元トーラスである。マトリクス状に配置されたイジング装置2a1〜2amにおいて、同一行に配列された複数のイジング装置のうち、行の両端のイジング装置同士がバスで接続されている。

0139

たとえば、図21に示すように、1行目に配列された複数のイジング装置のうち、両端のイジング装置2ax,2amは、バス4a1,4b1,4c1で接続されている。
このような接続トポロジを採用することで、マトリクス状に配置したイジング装置2a1〜2amによるアレー周辺部のイジング装置で、送受信回路が使用されなくなることを抑制できる。このため、バンド幅や接続数が減少することが抑制される。

0140

なお、1次元トーラスの別の例として、同一列に配列された複数のイジング装置のうち、列の両端のイジング装置同士がバスで接続されていてもよい。
(第3の実施の形態)
図22は、第3の実施の形態の情報処理装置の一例を示す図である。図2に示した要素と同じ要素については同一符号が付されている。

0141

第3の実施の形態の情報処理装置1bは、イジング装置間(チップ間)の接続トポロジが、図21に示した情報処理装置1aと異なっている。
情報処理装置1bは、チップ間の接続トポロジが、2次元トーラスである。マトリクス状に配置されたイジング装置2a1〜2amにおいて、同一行に配列された複数のイジング装置のうち、両端のイジング装置がバスで接続されているとともに、同一列に配列された複数のイジング装置のうち、両端のイジング装置もバスで接続されている。

0142

たとえば、図22に示すように、1列目に配列された複数のイジング装置のうち、列の両端のイジング装置2a1,2amは、バス4a2,4b2,4c2で接続されている。
このような接続トポロジを採用することで、マトリクス状に配置したイジング装置2a1〜2amによるアレーの周辺部のイジング装置で、送受信回路が使用されなくなることをさらに抑制できる。このため、バンド幅や接続数が減少することがさらに抑制される。

0143

(計算高速化手法)
前述したようにシミュレーテッド・アニーリングでは、最適解が得られるまで時間がかかるため、以下に示すような計算高速化手法を用いることが望ましい。

0144

図23は、並列化による高速化手法を説明する図である。
制御装置3は、たとえば、全ニューロン回路91a1〜91aMを、同一問題をマッピングした複数のアンサンブル90a1,90a2,…,90azに分ける。アンサンブル90a1〜90azのそれぞれに含まれる複数のニューロン回路間の接続関係(重み値の設定に相当する)は、アンサンブル90a1〜90az間で同一となっている。また、異なるアンサンブルに属するニューロン回路は接続されないように重み値が設定される。

0145

制御装置3は、アンサンブル90a1〜90azのそれぞれを用いて、並列にアニール動作を実行する。なお、アンサンブル90a1〜90az間では同じ温度(ノイズ幅)が用いられる。

0146

そして、制御装置3は、アニール動作後に得られるアンサンブル90a1〜90azでのエネルギーの値を比較し、最小のエネルギーとなるアンサンブルに含まれるニューロン回路の状態の組み合わせを、問題の解として選択する。

0147

このように、同じ問題を、複数のアンサンブル90a1〜90azを用いて並列に解くことで、アニール動作の時間(たとえば、図16に示した回数cnt1,cnt2)を減らしても、より最適解に近い値が得られる。

0148

図24は、並列化による演算の高速化効果を示す図である。
図24では、ランダムに発生した問題に対して、図23のアンサンブル90a1〜90azのそれぞれを1チップ(1つのイジング装置)として並列演算を行ったときに、目標正解率が99%となるクロックサイクル数のシミュレーション結果が示されている。クロックサイクル数は、図2に示したニューロン回路10a1〜10anのレジスタ25a1〜25anに供給されるクロック信号のサイクル数である。また、アンサンブル90a1〜90azは、それぞれ64個のニューロン回路を有しているものとする。

0149

図24において、縦軸がクロックサイクル数であり、横軸が並列化数(チップ数)である。
図24に示すように、目標正解率が99%となるクロックサイクル数は、並列化数を増やすほど減少し、たとえば、並列化数を100とすると、並列化しない場合よりも、3桁以上、クロックサイクル数を少なくすることができる。つまり、演算を高速化できる。

0150

計算高速化手法として、量子モンテカルロ法を適用することもできる。
図25は、量子モンテカルロ法による高速化手法を説明する図である。図25において、図23に示した要素については同一符号が付されている。

0151

量子モンテカルロ法では、図23に示した並列化手法と同様に、複数のアンサンブル90a1〜90azのそれぞれに同一の問題がマッピングされるが、隣接するアンサンブル間のニューロン回路間は接続されている(重み値が1である)。たとえば、ニューロン回路91a1,91ai,91ajは接続されている。

0152

制御装置3は、問題を、z個のアンサンブル90a1〜90azで構築された大きな問題としてみなして解く。
量子モンテカルロ法についての詳細な説明は省略する。量子モンテカルロ法については、M. Suzuki, Relationship between d-Dimensional Quantal Spin Systems and (d+1)-Dimensional Ising Systems, Progress of Theoretical Physics 56,1454 (1976)や、G. E. Santoro, R. Martonak, E. Tosatti, and R. Car, Theory of Quantum Annealing of an Ising Spin Glass, Science 295, 2427 (2002)に記載されている。

0153

(ニューロン回路の他の例)
図26は、図2のニューロン回路とは異なるニューロン回路をもつイジング装置の一例を示す図である。

0154

イジング装置2bは、レジスタ20b1,20b2,20b3,…,20bNを有する。レジスタ20b1〜20bNには、チップ内のニューロン回路同士の接続の強さを示す重み値と、チップ内のニューロン回路と、チップ外のニューロン回路の接続の強さを示す重み値が格納されている。

0155

たとえば、チップ内のニューロン回路数をnとすると、レジスタ20b1には、チップ内の1番目のニューロン回路とチップ内のその他のニューロン回路の間の接続の強さを示す重み値W12,W13,…,W1nが格納されている。

0156

また、チップ内のニューロン回路が接続するニューロン回路数をN−nとする。このときレジスタ20bNには、チップ内のニューロン回路が接続するN−n番目のチップ外のニューロン回路とチップ内のニューロン回路の間の接続の強さを示す重み値WN1,WN2,…,WNnが格納される。

0157

また、イジング装置2bは、複数のニューロン回路を有している。図26では、たとえば、n個のニューロン回路のうち、i,j,k番目のニューロン回路10bi,10bj,10bkが示されている。

0158

ニューロン回路10bi,10bj,10bkは、それぞれ、選択回路21bi,21bj、21bk、乗算回路23bi1〜23biN,23bj1〜23bjN,23bk1〜23bkN、加算部24bi,24bj,24bkを有している。さらにニューロン回路10bi,10bj,10bkは、それぞれ、noise&bias回路26bi,26bj,26bk、比較回路27bi,27bj,27bkを有している。

0159

このようなニューロン回路10bi,10bj,10bkは、それぞれ、式(2)に示したようなローカルフィールド値を求め、さらにノイズ値を加え、閾値との比較結果を出力するものである。

0160

以下、ニューロン回路10biを例にして説明する。
選択回路21biは、ランダム信号生成回路15aから出力される1〜nの何れかの選択信号に基づき、レジスタ20b1〜20bNの何れかに記憶されている重み値群を選択して出力する。

0161

乗算回路23bi1〜23biNのそれぞれは、制御回路100から出力されるN個のニューロン回路の状態と、重み値とを掛けあわせる。
加算部24biは、乗算回路23bi1〜23biNから出力される値を積算する。

0162

比較回路27biは、加算部24biから出力される値に、noise&bias回路26biから出力されるノイズ値とバイアス値とを加えた値と、閾値との比較結果を出力する。

0163

制御回路100は、ルータ13を介して他のチップのニューロン回路の更新後の値と、そのニューロン回路を含むチップのチップアドレスとニューロン回路の内部アドレスを受ける。そして、制御回路100は、前述した接続先情報70に基づき、そのチップ外のニューロン回路がイジング装置2b内のニューロン回路の接続先に指定されているとき、更新後の値を、ニューロン回路10bi,10bj,10bkに反映させる。

0164

以上のようなイジング装置2bについても同様の効果が得られる。
以上、実施の形態に基づき、本発明の情報処理装置、イジング装置及び情報処理装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。

0165

1情報処理装置
2a1〜2am,2ak イジング装置(チップ)
3制御装置
4a〜4cバス
5信号線
10a1〜10anニューロン回路
11メモリ
11a接続先情報
12制御回路
13ルータ
13aモードレジスタ
14a〜14d 送受信回路

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ