(57)【特許請求の範囲】
【請求項１】
クロスバーアレイを用いた電子装置であって、
行方向に延在するｍ個の行線と、列方向に延在するｎ個の列線と、ｍ個の行線とｎ個の列線との各交差部に接続された抵抗変化型メモリ素子とを含むクロスバーアレイと、
ｍ個の行線に電気的に接続された行側回路と、
ｎ個の列線に電気的に接続された列側回路と、
前記行側回路および前記列側回路を制御する制御手段とを含み、
行側回路は、選択された行線に入力信号を印加する行入力部と、選択された行線から出力信号を受け取る行出力部とを含み、
列側回路は、選択された列線に入力信号を印加する列入力部と、選択された列線から出力信号を受け取る列出力部とを含み、
前記制御手段は、前記行出力部から受け取った出力信号を前記行入力部から印加すること、あるいは前記列出力部から受け取った出力信号を前記列入力部から印加することを可能にする、電子装置。
【請求項２】
前記行入力部が第１の選択された行線に第１の入力信号を印加し、前記列出力部が第１の選択された列線から第１の入力信号に対応する第１の出力信号を受け取った場合に、前記列入力部は、前記列出力部で受け取った第１の出力信号に対応する第２の入力信号を第２の選択された列線に印加する、請求項１に記載の電子装置。
【請求項３】
前記列入力部が第２の選択された列線に第２の入力信号を印加し、前記行出力部が第２の選択された行線から第２の入力信号に対応する第２の出力信号を受け取った場合に、前記行入力部は、前記行出力部で受け取った第２の出力信号に対応する第３の入力信号を第３の選択された行線に印加する、請求項２に記載の電子装置。
【請求項４】
前記行側回路はさらに、前記行出力部で受け取った出力信号または前記制御手段から供給された入力信号のいずれかを前記行入力部に供給する第１の入力切替え回路を含み、
前記列側回路はさらに、前記列出力部で受け取った出力信号または前記制御手段から供給された入力信号のいずれかを前記列入力部に供給する第２の入力切替え回路を含む、請求項１ないし３いずれか１つに記載の電子装置。
【請求項５】
前記行側回路はさらに、前記行出力部で受け取った出力信号を前記行入力部または前記制御手段へ出力する第１の出力切替え回路を含み、
前記列側回路はさらに、前記列出力部で受け取った出力信号を前記列入力部または前記制御手段へ出力する第２の出力切替え回路を含む、請求項１ないし４いずれか１つに記載の電子装置。
【請求項６】
前記行側回路はさらに、行選択信号に基づき行線を選択する行選択回路を含み、
前記列側回路はさらに、列選択信号に基づき列線を選択する列選択回路を含む、請求項１ないし５いずれか１つに記載の電子装置。
【請求項７】
前記行出力部は、選択された１つまたは複数の行線に流れる電流を合算する合算部と、当該合算部で合算された電流に対応するアナログ電圧をデジタル信号に変換するＡＤ変換器と、ＡＤ変換器で変換されたデジタル信号を保持する保持回路とを含み、前記行入力部は、入力されたデジタル信号に基づきアナログ電圧を生成するＤＡ変換器を含み、
前記列出力部は、選択された１つまたは複数の列線に流れる電流を合算する合算部と、当該合算部で合算された電流に対応するアナログ電圧をデジタル信号に変換するＡＤ変換器と、ＡＤ変換器で変換されたデジタル信号を保持する保持回路とを含み、前記列入力部は、入力されたデジタル信号に基づきアナログ電圧を生成するＤＡ変換器を含む、請求項１ないし６いずれか１つに記載の電子装置。
【請求項８】
前記クロスバーアレイは、行列方向に配置された複数のアレイと、隣接するアレイ間に配置され、行方向および列方向のアレイ間の電気的な接続または非接続の切替えを行う切替え回路とを含む、請求項１ないし７いずれか１つに記載の電子装置。
【請求項９】
前記クロスバーアレイの行方向の一方の端部に前記行側回路が配置され、前記クロスバーアレイの列方向の一方の端部に前記列側回路が配置される、請求項８に記載の電子装置。
【請求項１０】
前記制御手段は、選択された行線および選択された列線を介して抵抗変化型メモリ素子の抵抗値をプログラムするプログラム手段を含む、請求項１ないし９いずれか１つに記載の電子装置。
【請求項１１】
前記プログラム手段は、選択された行線および選択された列線を介して低抵抗変化型メモリ素子に、選択された極性のプログラムパルスを印加する、請求項１０に記載の電子装置。
【請求項１２】
前記制御手段は、前記抵抗変化型メモリ素子の重み付けに応じてプログラム手段を制御する、請求項１０または１１に記載の電子装置。
【請求項１３】
クロスバーアレイを用いた電子装置における信号の処理方法であって、
前記クロスバーアレイは、行方向に延在するｍ個の行線と、列方向に延在するｎ個の列線と、ｍ個の行線とｎ個の列線との各交差部に接続された抵抗変化型メモリ素子とを含み、
前記クロスバーアレイのｍ個の行線には行側回路が電気的に接続され、ｎ個の列線には列側回路が電気的に接続されており、
前記行側回路の第１の選択された行線に第１の入力信号を印加し、前記列側回路の第１の選択された列線から第１の入力信号に対応する第１の出力信号を出力させ、
前記列側回路の第２の選択された列線に第１の出力信号に対応する第２の入力信号を印加し、前記行側回路の第２の選択された行線から第２の入力信号に対応する第２の出力信号を出力させる、処理方法。
【請求項１４】
処理方法はさらに、
前記行側回路の第３の選択された行線に第２の出力信号に対応する第３の入力信号を印加し、前記列側回路の第３の選択された列線から第３の入力信号に対応する第３の出力信号を出力させ、
前記列側回路の第４の選択された列線に第３の出力信号に対応する第４の入力信号を印加し、前記行側回路の第４の選択された行線から第４の入力信号に対応する第４の出力信号を出力させる、請求項１３に記載の処理方法。
【請求項１５】
処理方法はさらに、選択された行線と選択された列線にプログラム電圧を印加することで抵抗変化型メモリ素子の抵抗値をプログラムすることを含む、請求項１３に記載の処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロスバーアレイを用いた電子装置に関し、特に、クロスバーアレイのクロスポイントに抵抗変化型の不揮発性の記憶素子を含むクロスバーアレイに関する。
【背景技術】
【０００２】
今や、ＡＩ（人工知能）は、種々の分野での利用が研究され、その実用化が進められている。半導体メモリの製造業者は、シナプスおよびニューロンを構造的にシミュレートするＡＩハードウエアとして、ニューラルネットワークを実現しようとしている。このようなニューラルネットワークを実現する１つのデバイスとしてクロスバーアレイが検討されている。
【０００３】
図１に、クロスバーアレイまたはクロスバーメモリの一例を示す。同図に示すように、クロスバーアレイは、行方向に延在する複数の行ライン１０と、これと直交するように列方向に延在する複数の列ライン２０と、各行ライン１０と列ライン２０との交差部に接続されたメモリスタ３０とを含んで構成される。メモリスタ３０は、例えば、電圧または電流を加えることで異なる抵抗状態をプログラムする不揮発性の抵抗変化型メモリ素子である。抵抗変化型メモリ素子に所望の抵抗値をプログラムすることで、各行ライン１０に印加された入力電圧は、抵抗変化型メモリ素子のコンダクタンス（抵抗値）によって重み付けされ、列ライン２０を流れる合算した電流として出力される。こうしたクロスバーアレイは、高速で効率の良いベクトル行列演算処理に適しており、例えば、ニューラルネットワーク、データ圧縮、暗号化、デジタルデータ処理などのベクトル演算処理に利用される。
【０００４】
例えば、特許文献１は、クロスバーアレイを用いたベクトル処理のためのドット積エンジンを開示している。ドット積エンジンは、図２に示すように、Ｎ行×Ｍ列のクロスバーアレイ４０を含み、ベクトル入力部５０が各行電極５２に接続され、ベクトル出力部６０が各列電極６２に接続され、各行電極５２と各列電極６２との交差部にメモリスタ７０が接続される。ベクトル入力部５０は、アドレスデコーダを用いて行電極５２を選択し、選択した行電極５２に対応するドライバを駆動する。ベクトル出力部６０は、列電極６２の電流を電圧に変換するためのセンス回路６４を備えている。Ｎ×Ｍのクロスバーアレイの各行電極５２に一組の電圧を印加し、列電極６２を流れる電流を収集し、出力電圧を測定することによりベクトル行列乗算が実行される。各列電極６２において、全ての入力電圧が対応するメモリスタのコンダクタンスで重み付けされ、それらの重み付けされた総計が出力電圧に反映される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−５０１５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、ニューラルネットワークを利用したオートエンコーダは、図３に示すように、例えば、認識しようとしている物体の特徴を入力し、その特徴に基づきそれが何かを高い確率で出力させる構造を有する。オートエンコーダは、入力と出力との間に、複数のエンコーダのレイヤと複数のデコーダのレイヤとを含み、エンコーダおよびデコーダの重み付けまたは符号は学習結果等に基づき調整される。例えば、オートエンコーダまたはその一部をクロスバーアレイで実現する場合、クロスバーアレイは、入力と出力との間で、エンコーダおよびデコーダの各レイヤの処理を行う。つまり、ｉ番目のレイヤで処理した出力信号を、次のｉ＋１番目のレイヤに入力し、ｉ＋１番目のレイヤで処理した出力信号を次のｉ＋２番目のレイヤに入力し、このような処理を順次繰り返す必要がある。
【０００７】
しかしながら、クロスバーアレイは、図２に示すようにアレイの行方向の一方の端部に入力部を備え、列方向の一方の端部に出力部を備える構成であり、列方向の出力部で受け取った出力信号を次のレイヤの入力部に印加するためには、列方向の出力部から行方向の入力部までの信号を搬送しなければならない。クロスバーアレイの出力信号は、メモリスタによる抵抗の重み付けを反映するため、信号搬送による信号の劣化（例えば、電圧低下やノイズ等）を避けることが極力望ましい。また、列方向の出力部から行方向の入力部までの信号搬送による遅延は、クロスバーアレイの処理時間にも影響を及ぼす。
【０００８】
本発明は、このような従来の課題を解決するのであり、高速化が可能であり、かつ信頼性の高い処理を行うことができるクロスバーアレイを用いた電子装置およびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るクロスバーアレイを用いた電子装置は、行方向に延在するｍ個の行線と、列方向に延在するｎ個の列線と、ｍ個の行線とｎ個の列線との各交差部に接続された抵抗変化型メモリ素子とを含むクロスバーアレイと、ｍ個の行線に電気的に接続された行側回路と、ｎ個の列線に電気的に接続された列側回路と、前記行側回路および前記列側回路を制御する制御手段とを含み、行側回路は、選択された行線に入力信号を印加する行入力部と、選択された行線から出力信号を受け取る行出力部とを含み、列側回路は、選択された列線に入力信号を印加する列入力部と、選択された列線から出力信号を受け取る列出力部とを含み、前記制御手段は、前記行出力部から受け取った出力信号を前記行入力部から印加すること、あるいは前記列出力部から受け取った出力信号を前記列入力部から印加することを可能にする。
【００１０】
ある実施態様では、前記行入力部が第１の選択された行線に第１の入力信号を印加し、前記列出力部が第１の選択された列線から第１の入力信号に対応する第１の出力信号を受け取った場合に、前記列入力部は、前記列出力部で受け取った第１の出力信号に対応する第２の入力信号を第２の選択された列線に印加する。ある実施態様では、前記列入力部が第２の選択された列線に第２の入力信号を印加し、前記行出力部が第２の選択された行線から第２の入力信号に対応する第２の出力信号を受け取った場合に、前記行入力部は、前記行出力部で受け取った第２の出力信号に対応する第３の入力信号を第３の選択された行線に印加する。ある実施態様では、前記行側回路はさらに、前記行出力部で受け取った出力信号または前記制御手段から供給された入力信号のいずれかを前記行入力部に供給する第１の入力切替え回路を含み、前記列側回路はさらに、前記列出力部で受け取った出力信号または前記制御手段から供給された入力信号のいずれかを前記列入力部に供給する第２の入力切替え回路を含む。ある実施態様では、前記行側回路はさらに、前記行出力部で受け取った出力信号を前記行入力部または前記制御手段へ出力する第１の出力切替え回路を含み、前記列側回路はさらに、前記列出力部で受け取った出力信号を前記列入力部または前記制御手段へ出力する第２の出力切替え回路を含む。ある実施態様では、前記行側回路はさらに、行選択信号に基づき行線を選択する行選択回路を含み、前記列側回路はさらに、列選択信号に基づき列線を選択する列選択回路を含む。ある実施態様では、前記行出力部は、選択された１つまたは複数の行線に流れる電流を合算する合算部と、当該合算部で合算された電流に対応するアナログ電圧をデジタル信号に変換するＡＤ変換器と、ＡＤ変換器で変換されたデジタル信号を保持する保持回路とを含み、前記行入力部は、入力されたデジタル信号に基づきアナログ電圧を生成するＤＡ変換器を含み、前記列出力部は、選択された１つまたは複数の列線に流れる電流を合算する合算部と、当該合算部で合算された電流に対応するアナログ電圧をデジタル信号に変換するＡＤ変換器と、ＡＤ変換器で変換されたデジタル信号を保持する保持回路とを含み、前記列入力部は、入力されたデジタル信号に基づきアナログ電圧を生成するＤＡ変換器を含む。ある実施態様では、前記クロスバーアレイは、行列方向に配置された複数のアレイと、隣接するアレイ間に配置され、行方向および列方向のアレイ間の電気的な接続または非接続の切替えを行う切替え回路とを含む。ある実施態様では、前記クロスバーアレイの行方向の一方の端部に前記行側回路が配置され、前記クロスバーアレイの列方向の一方の端部に前記列側回路が配置される。ある実施態様では、前記制御手段は、選択された行線および選択された列線を介して抵抗変化型メモリ素子の抵抗値をプログラムするプログラム手段を含む。ある実施態様では、前記プログラム手段は、選択された行線および選択された列線を介して低抵抗変化型メモリ素子に、選択された極性のプログラムパルスを印加する。ある実施態様では、前記制御手段は、前記抵抗変化型メモリ素子の重み付けに応じてプログラム手段を制御する。
【００１１】
本発明に係るクロスバーアレイを用いた電子装置における信号の処理方法は、前記クロスバーアレイは、行方向に延在するｍ個の行線と、列方向に延在するｎ個の列線と、ｍ個の行線とｎ個の列線との各交差部に接続された抵抗変化型メモリ素子とを含み、前記クロスバーアレイのｍ個の行線には行側回路が電気的に接続され、ｎ個の列線には列側回路が電気的に接続されており、前記行側回路の第１の選択された行線に第１の入力信号を印加し、前記列側回路の第１の選択された列線から第１の入力信号に対応する第１の出力信号を出力させ、前記列側回路の第２の選択された列線に第１の出力信号に対応する第２の入力信号を印加し、前記行側回路の第２の選択された行線から第２の入力信号に対応する第２の出力信号を出力させる。
【００１２】
ある実施態様では、処理方法はさらに、前記行側回路の第３の選択された行線に第２の出力信号に対応する第３の入力信号を印加し、前記列側回路の第３の選択された列線から第３の入力信号に対応する第３の出力信号を出力させ、前記列側回路の第４の選択された列線に第３の出力信号に対応する第４の入力信号を印加し、前記行側回路の第４の選択された行線から第４の入力信号に対応する第４の出力信号を出力させる。ある実施態様では、処理方法はさらに、選択された行線と選択された列線にプログラム電圧を印加することで抵抗変化型メモリ素子の抵抗値をプログラムすることを含む。
【発明の効果】
【００１３】
本発明によれば、行出力部から受け取った出力信号を行入力部から印加すること、あるいは列出力部から受け取った出力信号を列入力部から印加可能にすることで、入出力信号の信号劣化を抑制し、かつ信頼性の高速処理を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】従来のメモリスタを用いたクロスバーアレイの一例を示す斜視図である。
【図２】従来のクロスバーアレイを利用した行列演算回路の一例を示す図である。
【図３】ニューラルネットワークを利用したオートエンコーダの一例を示す図である。
【図４】本発明の実施例に係る演算処理装置の一例を示すブロック図である。
【図５】本発明の実施例に係るクロスバーアレイの動作原理を説明する図である。
【図６】本発明の実施例に係る行選択／駆動回路および列選択／駆動回路の構成を示す図である。
【図７】本発明の第２の実施例に係るクロスバーアレイの構成例を示す図である。
【図８】図７に示すクロスバーアレイを用いたときの動作例を示す図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。好ましい実施態様では、クロスバーアレイは、ＡＩハードウエアとしてのニューラルネットワークを構成するためのデバイスとして使用される。また、クロスバーアレイは、行列の交差部にメモリスタとしての抵抗変化型メモリ素子を含み、抵抗変化型メモリ素子は、極性の異なる電流または電圧を印加することで異なる抵抗状態を記憶することができる。記憶される抵抗状態は、２値を表すものであっても良いし、あるいは多値を表すものものであっても良いし、アナログ的な抵抗値であっても良い。好ましい実施態様では、クロスバーアレイは、コンピュータ装置あるいはコンピュータシステムに組み込まれ、マイクロプロセッサあるいはＣＰＵ等によるデータ処理または演算処理の少なくとも一部を担う。
【実施例】
【００１６】
図４は、本実施例の演算処理装置の構成例を示すブロック図である。本実施例の演算処理装置１００は、クロスバーアレイ１１０、行選択／駆動回路１２０、列選択／駆動回路１３０、制御部１４０および入出力（Ｉ／Ｏ）部１５０を含んで構成される。演算処理装置１００は、例えば、ＡＩチップまたは半導体集積回路に実装される。
【００１７】
クロスバーアレイ１１０は、例えば、図１に示すように、行方向に延在する複数の行ラインと、列方向に延在する複数の列ラインと、行ラインと列ラインとの交差部に接続されたメモリスタ（抵抗変化型メモリ素子）とを含んで構成される。行ラインおよび列ラインの数、形状、導電性材料等は任意である。また、クロスバーアレイ１１０は、図１に示すようなクロスバーアレイを一対として、これを垂直方向に複数対積層するものであってもよい。
【００１８】
行選択／駆動回路１２０は、制御部１４０からの行選択信号に基づきクロスバーアレイ１１０の行ラインを選択し、選択した行ラインに入力電圧を印加したり、あるいは選択した行ラインを流れる電流をセンスする。本実施例の行選択／駆動回路１２０は、後述するように、入力信号を選択された行に印加し、かつ選択された行から出力信号を受け取り、この出力信号を選択された行に印加する入出力機能を備え、この入出力機能は、制御部１４０によって制御される。
【００１９】
列選択／駆動回路１３０は、制御部１４０からの列選択信号に基づきクロスバーアレイ１１０の列ラインを選択し、選択した列ラインに入力電圧を印加したり、あるいは選択した列ラインを流れる電流をセンスする。本実施例の列選択／駆動回路１３０な、入力信号を選択された列に印加し、かつ選択された列から出力信号を受け取り、この出力信号を選択された列に印加する入出力機能を備え、この入出力機能は、制御部１４０によって制御される。
【００２０】
制御部１４０は、ハードウエアおよび／またはソフトウエアにより構成され、各部の動作を制御する。ある実施態様では、制御部１４０は、ＲＯＭ／ＲＡＭを含むマイクロコントローラ、マイクロプロセッサ、あるいはステートマシン等を含み、例えば、ＲＯＭ／ＲＡＭに格納されたソフトウエアを実行することで各部の動作を制御する。制御部１４０は、クロスバーアレイ１１０を用いて演算処理を行うための種々の制御を行う。例えば、行選択／駆動回路１２０に行を選択させるための行選択信号を出力したり、列選択／駆動回路１３０に列を選択させるための列選択信号を出力したり、演算のための入力信号や抵抗変化型メモリ素子をプログラムするための制御信号を行選択／駆動回路１２０や列選択／駆動回路１３０に出力したり、あるいは行選択／駆動回路１２０や列選択／駆動回路１３０から演算処理された出力信号を受け取る。
【００２１】
入出力部１５０は、例えば、内部データバスを介して制御部１４０と接続され、外部から受け取ったデータを制御部１４０へ提供したり、制御部１４０から受け取ったデータを外部に出力する。
【００２２】
次に、本実施例のクロスバーアレイの動作原理について図５を参照して説明する。ここでは、クロスバーアレイ１１０が６本の行ラインＲＯＷ１〜ＲＯＷ６と８本の列ラインＣＯＬ１〜ＣＬＯ８を有し、これらの行ラインと列ラインとの交差部に抵抗変化型メモリ素子が接続されているものとする。ある動作例として、行ラインＲＯＷ２、ＲＯＷ３が選択され、選択された行ラインＲＯＷ２、ＲＯＷ３に“入力１”として入力電圧が印加されたとき、制御部１４０によって列ラインＣＯＬ１、ＣＯＬ２が選択され、選択された列ラインＣＯＬ１、ＣＯＬ２から“出力１”として電流が出力される。列ラインＣＯＬ１の出力電流ＩＣＯＬ１は、行ラインＲＯＷ２から抵抗変化型メモリ素子を介して流れ込む電流Ｉ２１と、行ラインＲＯＷ３から抵抗変化型メモリ素子を介して流れ込む電流Ｉ３１との合計であり、列ラインＣＯＬ２の出力電流ＩＣＯＬ２は、行ラインＲＯＷ２から抵抗変化型メモリ素子を介して流れ込む電流Ｉ２２と、行ラインＲＯＷ３から抵抗変化型メモリ素子を介して流れ込む電流Ｉ３２との合計である。
【００２３】
電流Ｉ２１は、オームの法則に従い、行ラインＲＯＷ２に印加される電圧Ｖ２と、抵抗変化型メモリ素子の抵抗値Ｒ２１（ここでは、便宜上、ラインの抵抗を無視する）とによって決定され（Ｉ２１＝Ｖ２／Ｒ２１）、同様に、電流Ｉ３１は、行ラインＲＯＷ３に印加される電圧Ｖ３と、抵抗変化型メモリ素子の抵抗値Ｒ３１とによって決定される（Ｉ３１＝Ｖ３／Ｒ３１）。従って、列ラインＣＯＬ１の出力電流ＩＣＯＬ１＝Ｉ２１＋Ｉ３１＝Ｖ２／Ｒ２１＋Ｖ３／Ｒ３１であり、同様に、列ラインＣＯＬ２の出力電流ＩＣＯＬ２＝Ｉ２２＋Ｉ３２＝Ｖ２／Ｒ２２＋Ｖ３／Ｒ３２である。
【００２４】
次に、列ラインＣＯＬ５が選択され、選択された列ラインＣＯＬ５に“入力２”として入力電圧が印加される。“入力２”の入力電圧は、“出力１”の出力電流に対応する。すなわち、“出力１”は、出力電流ＩＣＯＬ１とＩＣＯＬ２の合計電流であり、この合計電流を電圧に変換したものが“入力２”の入力電圧である。選択された列ラインＣＯＬ５に“入力２”が印加されたとき、制御部１４０によって行ラインＲＯＷ４、ＲＯＷ５が選択され、選択された行ラインＲＯＷ４、ＲＯＷ５から“出力２”として電流が出力される。“出力２”は、行ラインＲＯＷ４の出力電流ＩＲＯＷ４と行ラインＲＯＷ５の出力電流ＩＲＯＷ５の合計電流である。
【００２５】
次に、行ラインＲＯＷ６が選択され、選択された行ラインＲＯＷ６に“入力３”として入力電圧が印加される。“入力３”の入力電圧は、“出力２”の出力電流に対応し、“出力２”の出力電流を電圧に変換したものが“入力３”の入力電圧である。選択された行ラインＲＯＷ６に“入力３”の電圧が印加されたとき、制御部１４０によって列ラインＣＯＬ６、ＣＯＬ７、ＣＯＬ８が選択され、選択された列ラインＣＯＬ６、ＣＯＬ７、ＣＯＬ８から“出力３”として電流が出力される。“出力３”は、列ラインＣＯＬ６、ＣＯＬ７、ＣＯＬ８の出力電流ＩＣＯＬ６、ＩＣＯＬ７、ＩＣＯＬ８の合計電流である。
【００２６】
次に、列ラインＣＯＬ３、ＣＯＬ４が選択され、選択された列ラインＣＯＬ３、ＣＯＬ４に“入力４”として入力電圧が印加される。“入力４”の入力電圧は、“出力３”の出力電流に対応し、“出力３”の出力電流を電圧に変換したものが“入力４”の入力電圧である。選択された列ラインＣＯＬ３、ＣＯｌ４に“入力４”が印加されたとき、制御部１４０によって行ラインＲＯＷ１が選択され、選択された行ラインＲＯＷから“出力４”として電流が出力される。“出力４”は、列ラインＣＯＬ３、ＣＯＬ４から行ラインＲＯＷ１に流れ込む電流の合計電流である。
【００２７】
ここで、“入力１”は、入力レイヤに対応し、“出力４”は出力レイヤに対応し、“入力２”、“入力３”、“出力２”、“出力３”は、入力レイヤと出力レイヤとの間の中間レイヤに対応する。
【００２８】
このように本実施例では、クロスバーアレイは、行ラインからの入力および出力を可能にし、かつ列ラインからの入力および出力を可能にする。これにより、行ラインから出力された出力信号を次のレイヤとしての行ラインに直接入力したり、列ラインから出力された出力信号を次のレイヤとしての列ラインに直接入力することが可能になる。このため、行ラインから列ラインまたは列ラインから行ラインへ出力信号を搬送する必要が無くなり、出力信号または入力信号の劣化（電圧低下やノイズ）を抑制し、かつ出力信号を入力するまでの時間を短縮させることで、ひいては演算処理時間を短縮することができる。さらに、クロスバーアレイの柔軟な使用が可能になるため、アレイの未使用な領域を減らしアレイの有効利用を図ることができる。
【００２９】
次に、行選択／駆動回路１２０の具体例を図６（Ａ）に示す。同図に示すように、行選択／駆動回路１２０は、行選択信号ＳＥＬ＿Ｘに基づき１つまたは複数の行ラインを選択する行選択回路２００と、入力されたｋビットのデジタル信号に基づきアナログ電圧を生成するＤＡＣ（デジタル／アナログ変換器）２１０と、ＤＡＣ２１０で生成されたアナログ電圧を入力電圧として選択された行ラインに印加する駆動部２２０と、選択された行ラインを流れる出力電流を受け取り、選択された行ラインが複数である場合には複数の出力電流を合算し、合算した出力電流に対応する電圧を生成する加算部２３０と、加算部２３０で生成されたアナログ出力電圧をｋビットのデジタル信号に変換するＡＤＣ（アナログ／デジタル変換器）２４０、ＡＤＣ２４０から出力されるデジタル信号を保持する保持部（例えば、レジスタ等）２５０と、入出力切替部２６０と、プログラム回路２７０とを含む。
【００３０】
入出力切替部２６０は、入力の切替えを行うスイッチＳＷ１と、出力の切替えを行うスイッチＳＷ２とを含み、制御部１４０からの切替え制御信号ＳＷ＿Ｘに基づきスイッチＳＷ１、ＳＷ２の切替えを行う。スイッチＳＷ１は、制御部１４０から出力されるデジタル信号を入力する第１の入力端子と、スイッチＳＷ２から出力されるデジタル信号を入力する第２の入力端子と、第１の入力端子または第２の入力端子からのデジタル信号をＤＡＣ２１０に出力する出力端子とを含む。スイッチＳＷ２は、保持部２５０に接続された入力端子と、制御部１４０に接続された第１の出力端子と、スイッチＳＷ１の入力端子に接続された第２の出力端子とを含み、入力端子に入力されたデジタル信号をスイッチＳＷ１または制御部１４０へ出力する。
【００３１】
プログラム回路２７０は、クロスバーアレイの選択された抵抗変化型メモリ素子を低抵抗状態または高抵抗状態にプログラムするとき、制御部１４０からのプログラム制御信号ＰＧＭ＿Ｘに基づき行選択回路２００により選択された行ラインに所望のバイアス電圧を印加する。この場合、列選択／駆動回路１３０のプログラム回路３７０もまた制御部１４０からのプログラム制御信号ＰＲＧ＿Ｙに基づき列選択回路３００により選択された列ラインに所望のバイアス電圧を印加する。これにより、選択された１つの行ラインと選択された１つの列ラインとの交差部の抵抗変化型メモリ素子にバイアス電圧が印加される。バイアス電圧の極性を異ならせることで、抵抗変化型メモリ素子は低抵抗状態または高抵抗状態にプログラムされる。
【００３２】
抵抗変化型メモリ素子の抵抗値は、例えば、オートエンコーダのようなニューラルネットワークの重み付けまたは重み付け係数を生成する。例えば、プログラム回路２７０によりバイアス電圧をパルス信号として印加する場合、制御部１４０は、パルス信号の印加時間、パルス信号の印加回数を制御することで重み付けを調整または可変する。
【００３３】
次に、列選択／駆動回路１３０の具体例を図６（Ｂ）に示す。同図に示すように、列選択／駆動回路１３０は、基本的に行選択／駆動回路１２０と同様に構成される。すなわち、列選択／駆動回路１３０は、列選択信号ＳＥＬ＿Ｙに基づき１つまたは複数の行ラインを選択する行選択回路３００と、入力されたｋビットのデジタル信号に基づきアナログ電圧を生成するＤＡＣ（デジタル／アナログ変換器）３１０と、ＤＡＣ３１０で生成されたアナログ電圧を入力電圧として選択された列ラインに印加する駆動部３２０と、選択された列ラインを流れる出力電流を受け取り、選択された列ラインが複数である場合には複数の出力電流を合算し、合算した出力電流に対応する電圧を生成する加算部３３０と、加算部３３０で生成されたアナログ出力電圧をｋビットのデジタル信号に変換するＡＤＣ（アナログ／デジタル変換器）３４０、ＡＤＣ３４０から出力されるデジタル信号を保持する保持部（例えば、レジスタ等）３５０と、制御部１４０からの切替え制御信号ＳＷ＿Ｙに基づきスイッチＳＷ１、ＳＷ２の切替えを行う入出力切替部３６０と、制御部１４０からのプログラム制御信号ＰＧＭ＿Ｙに基づき選択された抵抗変化型メモリ素子の抵抗値のプログラムを行うプログラム回路３７０とを含む。
【００３４】
行選択／駆動回路１２０は、行方向から出力電流を受け取り、この出力電流に応じた入力電圧を行方向から印加することが可能であり、同様に、列選択／駆動回路１３０は、列方向から出力電流を受け取り、この出力電流に応じた入力電圧を列方向から印加することが可能である。
【００３５】
次に、図５の動作例を参照しつつ、行選択／駆動回路１２０および列選択／駆動回路１３０の動作を説明する。図５に示すように、クロスバーアレイに“入力１”を実施するとき、制御部１４０は、入力電圧を表すｋビットのデジタル信号を入出力切替部２６０のスイッチＳＷ１を介してＤＡＣ２１０に供給し、ＤＡＣ２１０は、ｋビットのデジタル信号アナログ電圧に変換する。行選択回路２００は、制御部１４０からの行選択信号ＳＥＬ＿Ｘに基づき２つの行ラインＲＯＷ２、ＲＯＷ３を選択し、駆動部２２０は、ＤＡＣ２１０で生成されたアナログ電圧を“入力１”として選択された２つの行ラインＲＯＷ２、ＲＯＷ３に印加する。
【００３６】
制御部１４０はさらに、“入力１”に対する“出力１”を得るため、列選択回路３００に列選択信号ＳＥＬ＿Ｙを出力し、列選択回路３００は、列ラインＣＯＬ１、ＣＯＬ２を選択する。列ラインＣＯＬ１には、行ラインＲＯＷ２、ＲＯＷ３に印加された入力電圧と、行ラインＲＯＷ２、ＲＯＷ３との交差部の抵抗変化型メモリ素子の抵抗値に応じた出力電流ＩＣＯＬ１が生成され、列ラインＣＯＬ２には、行ラインＲＯＷ２、ＲＯＷ３に印加された入力電圧と、行ラインＲＯＷ２、ＲＯＷ３との交差部の抵抗変化型メモリ素子の抵抗値に応じた出力電流ＩＣＯＬ２が生成される。加算部３３０は、列選択回路３００を介して列ラインＣＯＬ１、ＣＯＬ２を流れる２つの出力電流ＩＣＯＬ１、ＩＣＯＬ２を受け取り、これらの出力電流を合算し（ＩＣＯＬ１＋ＩＣＯＬ２）、合算した出力電流に対応する出力電圧を生成する。
【００３７】
次に、ＡＤＣ３４０は、出力電圧をｋビットのデジタル信号に変換し、保持部３５０は、このｋビットデータを“出力１”として保持する。ここで、図５に示すように、“出力１”は、次に“入力２”として列ラインＣＯＬ５に印加される。それ故、制御部１４０は、切替え制御信号ＳＷ＿Ｙにより入出力切替部３６０のスイッチＳＷ１、ＳＷ２を制御し、保持部３５０で保持されたｋビットのデジタル信号がＤＡＣ３１０に供給されるようにする。こうして、ＤＡＣ３１０は、保持部３５０で保持された“出力１”であるｋビットのデジタル信号を受け取り、これをアナログ電圧に変換し、“入力２”を生成する。制御部１４０は、“入力２”の処理を実行するため、列選択信号ＳＥＬ＿Ｙにより列選択回路３００の列ラインＣＯＬ５を選択させ、選択された列ラインＣＯＬ５に“入力２”を表す入力電圧が印加される。
【００３８】
制御部１４０は、列選択信号ＳＥＬ＿Ｙと同期するタイミングで行選択信号ＳＥＬ＿Ｘを行選択回路２００に出力し、行選択回路２００は、行選択信号ＳＥＬ＿Ｘに応答して行ラインＲＯＷ４、ＲＯＷ５を選択する。選択された行ラインＲＯＷ４、ＲＯＷ５を流れる出力電流ＩＲＯＷ４、ＩＲＯＷ５が加算部２３０により合算され、加算部２３０は、合算された出力電流に対応する出力電圧を生成し、これをＡＤＣ２４０に出力する。ＡＤＣ２４０は、入力したアナログ出力電圧をｋビットのデジタル信号に変換し、保持部２５０は、変換されたｋビットのデジタル信号を“出力２”として保持する。
【００３９】
次に、“出力２”は、“入力３”として行ラインＲＯＷ６に印加される。それ故、制御部１４０は、切替え制御信号ＳＷ＿Ｘにより入出力切替部２６０のスイッチＳＷ１、ＳＷ２を制御し、保持部２５０で保持されたｋビットのデジタル信号がＤＡＣ２１０に供給されるようにする。こうして、ＤＡＣ２１０は、保持部２５０で保持された“出力２”であるｋビットのデジタル信号を受け取り、これをアナログ電圧に変換し、“入力３”を生成する。制御部１４０は、“入力３”の処理を実行するため、行選択信号ＳＥＬ＿Ｘにより行選択回路２００の行ラインＲＯＷ６を選択させ、選択された行ラインＲＯＷ６に“入力３”を表す入力電圧が印加される。
【００４０】
以後、“出力３”、“入力４”の処理が上記と同様に行われる。そして、最後の“出力４”を処理するとき、保持部２５０に保持されたｋビットのデジタル信号が制御部１４０に供給されるように、制御部１４０は、切替え制御信号ＳＷ＿ＸによりスイッチＳＷ１、ＳＷ２を制御する。
【００４１】
次に、本発明の第２の実施例について説明する。図７は、第２の実施例のクロスバーアレイの概略平面図である。同図に示すように、本実施例のクロスバーアレイ４００は、行列方向に配された複数のアレイ４１０＿１〜４１６＿３（図には、３行×４列のアレイを例示する）と、隣接するアレイの間に配されたスイッチＳＷと、クロスバーアレイ４００の行方向の一端に配置された行選択／駆動回路４２０（４２０＿１〜４２０＿４）と、列方向の一端に配置された列選択／駆動回路４３０（４３０＿１〜４３０＿３）とを含む。
【００４２】
アレイの各々は、図５に示すようなクロスバーアレイを構成する。また、行方向のスイッチＳＷは、行方向のアレイ間の各行ラインの接続／非接続の切替えを行い、列方向のスイッチＳＷは、列方向のアレイ間の各列ラインの接続／非接続の切替えを行う。スイッチＳＷの切替えは、制御部１４０により制御される。
【００４３】
制御部１４０は、クロスバーアレイ４００において演算に使用する１つまたは複数のアレイを選択し、その際、選択されたアレイの各行ラインが行選択／駆動回路４２０に電気的に接続され、かつ列ラインが列選択／駆動回路４３０に電気的に接続されるようにスイッチＳＷを制御する。例えば、アレイ４１０＿１を使用する場合には、行方向のスイッチ４５０、４５２がオンし、アレイ４１０＿１の行ラインが行選択／駆動回路４２０＿１に電気的に接続され、列方向のスイッチ４６０、４６２、４６４がオンし、アレイ４１０＿１の列ラインが列選択／駆動回路４３０＿１に電気的に接続される。その他の不使用のアレイ４１２＿２、４１２−＿３、４１４＿２、４１４＿３、４１６＿２、４１６＿３が行選択／駆動回路４２０＿２〜４２０＿４および列選択／駆動回路４３０＿２、４３０＿３から隔離される。使用するアレイに応じて行選択／駆動回路４２０および列選択／駆動回路４２０を選択的に動作させることで、消費電力の低減を図ることができる。
【００４４】
図８に、図７に示すクロスバーアレイの演算の利用例を示す。図中、（１）、（２）、（３）、（４）、（５）は、処理順序を示し、矢印は、使用するアレイを示している。例えば、処理（１）は、アレイ４１０＿１、４１２＿１を使用し、処理（２）は、アレイ４１４＿２を使用し、処理（３）は、アレイ４１６＿２を使用し、処理（４）は、アレイ４１４＿３を使用し、処理（５）は、アレイ４１２＿３を使用する。制御部１４０は、このような処理シーケンスに応じてスイッチＳＷのオン／オフを制御し、かつ選択された行選択／駆動回路および選択された列選択／駆動回路の制御を行う。
【００４５】
このように本実施例によれば、クロスバーアレイの行選択／駆動回路が選択された行ラインから出力された信号を選択された行ラインに入力する機能を備え、かつ列選択／駆動回路が列ラインから出力された信号を選択された列ラインに入力する機能を備えることで、出力を劣化させることなく入力させることができ、演算処理の信頼性および処理速度の向上を図ることができる。
【００４６】
上記実施例では、上層に行ラインが形成され、下層に列ラインが形成されたクロスバーアレイを例示したが、これは一例であり、クロスバーアレイは、上層に列ラインが形成され、下層に行ラインが形成されたものであってもよい。さらにクロスバーアレイは、２次元的な構成に限らず、３次元的な構成であってもよい。例えば、３次元構造のクロスバーアレイでは、水平方向に延びる行ラインが垂直方向に複数配置され、垂直方向に延びる列ラインが水平方向に複数配置され、行ラインと列ラインとの交差部に抵抗変化型メモリ素子が形成される。
【００４７】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４８】
１００：演算処理装置
１１０：クロスバーアレイ
１２０：行選択／駆動回路
１３０：列選択／駆動回路
１４０：制御部
１５０：入出力部
２００：行選択回路
２１０、３１０：ＤＡＣ
２２０、３２０：駆動部
２３０、３３０：加算部
２４０、３４０：ＡＤＣ
２５０、３５０：保持部
２６０、３６０：入出力切替部
２７０、３７０：プログラム回路
【要約】
【課題】  高速化が可能であり、かつ信頼性の高い処理を行うことができるクロスバーアレイを用いた電子装置を提供する。
【解決手段】  本発明の演算処理装置１００は、クロスバーアレイ１１０と、行線に電気的に接続された行選択／駆動回路１２０と、列線に電気的に接続された列選択／駆動回路１３０と、各部を制御する制御部１４０とを含む。制御部１４０は、行選択／駆動回路１２０で受け取った出力信号を行選択／駆動回路１２０から印加すること、あるいは列選択／駆動回路１３０で受け取った出力信号を列選択／駆動回路１３０から印加することを可能にする。
【選択図】  図４【図１】
0006818116.tif 000002
【図２】
0006818116.tif 000003
【図３】
0006818116.tif 000004
【図４】
0006818116.tif 000005
【図５】
0006818116.tif 000006
【図６】
0006818116.tif 000007
【図７】
0006818116.tif 000008
【図８】
0006818116.tif 000009