(57)【要約】【課題】抵抗変化型メモリを用いて、アナログ演算可能な演算装置を提供する。【解決手段】演算データセルアレイ（２２）と、演算データセルアレイ（２２）に書込まれているアナログ値をアナログ演算する演算回路ブロック（３０）と、演算回路ブロック（３）の演算結果が書込まれる演算結果セルアレイ（５２）と、演算結果セルアレイ（５２）に演算結果を書込む演算結果書込みブロック（４０）とを備えるＲｅＲＡＭ演算デバイス（１）である。【選択図】図１
2014081842.tif 000002
【特許請求の範囲】
【請求項１】
抵抗変化型メモリを含む、複数のメモリセルを有する演算データセルアレイと、
前記演算データセルアレイの各メモリセルに書込まれているアナログ値を用いて、アナログ演算する演算回路ブロックと、
抵抗変化型メモリを含む、複数のメモリセルを有し、前記演算回路ブロックによるアナログ演算結果が書込まれる演算結果セルアレイと、
前記演算結果セルアレイに前記アナログ演算結果を書込む演算結果書込みブロックと
を備えることを特徴とする演算装置。
【請求項２】
前記演算データセルアレイには、前記演算回路ブロックによりアナログ演算される、複数のデータ組が書込まれており、
各データ組は、複数のアナログ値を含んでおり、
前記演算回路ブロックは、前記演算データセルアレイに書込まれている複数のデータ組の各々を取り出し、当該取り出されたデータ組毎に、各データ組に含まれる複数のアナログ値をアナログ演算することを特徴とする請求項１に記載の演算装置。
【請求項３】
前記演算回路ブロックは、前記各データ組に含まれる複数のアナログ値の総和または総積を求める演算を行なうことを特徴とする請求項１または２に記載の演算装置。
【請求項４】
前記演算回路ブロックは、複数のアナログ演算回路を有し、前記データ組毎に、当該複数のアナログ演算回路のいずれを用いてアナログ演算するかを切り替えることを特徴とする請求項１から３のいずれか一項に記載の演算装置。
【請求項５】
前記演算装置は、複数の前記演算回路ブロックを備え、前記データ組毎に、当該複数の演算回路ブロックのいずれを用いてアナログ演算するかを切り替えることを特徴とする請求項１から４のいずれか一項に記載の演算装置。
【請求項６】
前記演算回路ブロックは、加算、減算、乗算および除算のうちの少なくとも１つの演算を行なうことを特徴とする請求項１から５のいずれか一項に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、抵抗値の異なる複数の抵抗状態を記憶する抵抗変化型メモリを用いて、アナログ演算可能な演算装置に関する。
【背景技術】
【０００２】
特許文献１には、電流増幅率が可変であり、且つ、その電流増幅率を不揮発的に保持することができる電流増幅回路が開示されている。具体的には、この電流増幅回路は、抵抗変化型メモリ（Resistive Random Access Memory：ＲｅＲＡＭ）の抵抗値を電気的に制御することによって、自身の電流増幅率を可変に設定することが可能となる。また、ＲｅＲＡＭは抵抗値を不揮発的に保持する。したがって、電流増幅回路の電流増幅率も不揮発的に保持される。電流増幅率を不揮発的に保持するため、追加的な不揮発性メモリや制御回路は不要である。その結果、集積回路の規模の増大が防止される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４５１５２号公報（２００８年１０月９日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
デジタル回路を用いた配列式の演算では、デジタル２値で記憶された情報を複数のブール演算処理により実行する必要がある。この場合、ビット深度に応じた多くのトランジスタを用いて、各演算処理の同期をとらなければならない。デジタル回路による演算ではビット深度分の遅延があり、かつ、同時に複数の変数を演算するために、記憶素子の数よりも多いトランジスタを用いた複数の演算回路が必要であった。
【０００５】
このようなデジタル計算回路を人間の認識に用いる場合において、必要以上のビット深度と視覚や聴覚による同時多次元配列演算処理を行なうことを想定したとき、従来のデジタル演算ほどの精度がなくても並列に高速演算をアナログ回路で行なうことが考えられる。
【０００６】
記憶素子の値を直接アナログ演算することで、認識や検索、フィルタリングなどの行列を用いる演算処理に活用し、消費電力効果の高い演算を実現することができると予想される。上述の記憶素子として、近年注目されているＲｅＲＡＭを用いることが有効と期待できる。
【０００７】
音声や映像の比較評価においては１０ビット程度の値で評価が可能であり、ＲｅＲＡＭ自体も１０００倍程度の抵抗値の変化を示すことが知られている。人間の知覚誤差以下の精度であれば実用には十分である。
【０００８】
ＲｅＲＡＭを用いることにより、例えば、推定１サイクルで実装面積と配線ルールに応じた密度の演算素子数分の演算が可能となり、３ＭｂｉｔのＲｅＲＡＭ素子がある場合であれば、２つの１Ｍｂｉｔのメモリについての数値評価を１サイクルで完結することができる。このため、高速な認識や検索、レコメンドが可能となりＩＴサービスの実用性を向上させることができる。
【０００９】
しかしながら、特許文献１には、ＲｅＲＡＭをこのようなアナログ回路に用いる構成については、何ら開示されていない。
【００１０】
上記課題に鑑み、本発明の目的は、ＲｅＲＡＭを用いて、アナログ演算可能な演算装置を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の一態様に係る演算装置は、抵抗変化型メモリを含む、複数のメモリセルを有する演算データセルアレイと、前記演算データセルアレイの各メモリセルに書込まれているアナログ値を用いて、アナログ演算する演算回路ブロックと、抵抗変化型メモリを含む、複数のメモリセルを有し、前記演算回路ブロックによるアナログ演算結果が書込まれる演算結果セルアレイと、前記演算結果セルアレイに前記アナログ演算結果を書込む演算結果書込みブロックとを備える。
【発明の効果】
【００１２】
本発明の一態様によれば、ＲｅＲＡＭを用いて、アナログ演算可能な演算装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るＲｅＲＡＭ演算デバイスの概略構成を示すブロック図である。
【図２】上記ＲｅＲＡＭ演算デバイスの演算データセルブロックの演算データセルアレイのアレイ構成を具体的に示す結線図である。
【図３】上記ＲｅＲＡＭ演算デバイスの演算結果記憶セルブロックの演算結果セルアレイのアレイ構成を具体的に示す結線図である。
【図４】上記演算データセルアレイのアレイ構成の一例を示す結線図である。
【図５】（ａ）および（ｂ）は、上記演算データセルアレイに演算データが書込まれていく過程を示す概念図である。
【図６】（ａ）および（ｂ）は、上記演算データセルアレイの各メモリセルからデータが読み出されていく過程を示す概念図である。
【図７】（ａ）および（ｂ）は、上記演算データセルアレイの各メモリセルからデータが読み出されていく過程を示す概念図である。
【図８】（ａ）および（ｂ）は、上記ＲｅＲＡＭ演算デバイスの演算結果記憶セルブロックの演算結果セルアレイに加算結果が書込まれた状態を示す概念図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、詳細に説明する。
【００１５】
〔ＲｅＲＡＭ演算デバイス１〕
図１は、本発明の一実施形態に係るＲｅＲＡＭ演算デバイスの概略構成を示すブロック図である。図１に示すように、本発明の一実施形態に係るＲｅＲＡＭ演算デバイス（演算装置）１は、プロセッサ１０と、演算データセルブロック２０と、演算回路ブロック３０と、演算結果書込みブロック４０と、演算結果記憶セルブロック５０と、出力用変換回路６０とを備えている。
【００１６】
（プロセッサ１０）
プロセッサ１０は、ＲｅＲＡＭ演算デバイス１全体を制御する。プロセッサ１０は、演算データセルブロック２０、演算回路ブロック３０、演算結果書込みブロック４０、演算結果記憶セルブロック５０および出力用変換回路６０の各々に対し、各動作を制御するための制御信号Ａ１、Ａ２、Ａ３、Ａ４、Ａ５およびＡ６を出力する。
【００１７】
また、プロセッサ１０は、演算データセルブロック２０および演算結果書込みブロック４０の各々に対し、後述する各セルアレイ内におけるメモリセルを指定するためのアドレス信号Ｂ１、Ｂ２を出力する。
【００１８】
さらに、プロセッサ１０は、演算データセルブロック２０に対し、演算データセルブロック２０のセルアレイ内における各メモリセルに書込まれる演算データＣを出力する。
【００１９】
（演算データセルブロック２０）
演算データセルブロック２０は、入力インタフェース回路２１と、演算データセルアレイ２２と、ワード選択回路２３と、データ選択回路２４と、制御回路２５とを有している。
【００２０】
入力インタフェース回路２１は、プロセッサ１０からの、制御信号Ａ１、アドレス信号Ｂ１および演算データＣの入力がなされる回路である。プロセッサ１０は、制御信号Ａ１を用いて、入力インタフェース回路２１の入力処理を制御する。
【００２１】
また、入力インタフェース回路２１は、プロセッサ１０から受け取ったアドレス信号Ｂ１に基づいて、ワード選択回路２３にアドレス信号Ｂ１１を、データ選択回路２４にアドレス信号Ｂ１２を、それぞれ出力する。
【００２２】
さらに、入力インタフェース回路２１は、プロセッサ１０から受け取った演算データＣを制御回路２５に出力する。
【００２３】
入力インタフェース回路２１は、制御信号Ａ１に基づくタイミングにより、上述のアドレス信号Ｂ１１、Ｂ１２および演算データＣの出力の各々を同期しながら実行する。
【００２４】
演算データセルアレイ２２は、複数のメモリセルＰが行列状に配置されており、共に同じ記憶容量とされ、アドレスが１対１に対応している（アドレス空間が同一である。）。演算データセルアレイ２２では、ワード線を介してワード選択回路２３と、データ線を介してデータ選択回路２４と接続され、ワード選択回路２３により所定のワード線を、データ選択回路２４により所定のデータ線をそれぞれ選択することにより、所定のメモリセルＰが選択される。図２は、演算データセルアレイ２２のアレイ構成を具体的に示す結線図である。
【００２５】
メモリセルＰは、印加電圧に応答して抵抗変化を示し、当該抵抗変化を利用してデータ（アナログ値）が書込まれる素子である。すなわち、メモリセルＰは抵抗変化型メモリ（Resistive Random Access Memory：ＲｅＲＡＭ）である。通常、ＲｅＲＡＭでは、電圧の印加による抵抗変化を示す可変抵抗層として、例えばＮｉＯのような遷移金属酸化物を用いられる。可変抵抗層は、上部電極および下部電極に挟まれた構造をしている。
【００２６】
ＲｅＲＡＭを用いてメモリセルＰは、印加時間に応じて素子に流れる電流を制御できる。よって、メモリセルＰへの印加時間に応じて素子に流れる電流値が決まる。すなわち、メモリセルＰの抵抗値を変化させることができる。
【００２７】
メモリセルＰは、パルス電圧値に応じて素子に流れる電流を制御できる。よって、メモリセルＰへのパルス電圧値に応じて素子に流れる電流値が決まる。すなわち、メモリセルＰの抵抗値を変化させることができる。
【００２８】
メモリセルＰに、パルス電圧を印加することにより、電気抵抗が変化し、電源をオフにしてもその抵抗値が保持され、不揮発性メモリとして働く。通常、高抵抗状態から低抵抗状態に遷移する動作を「ＳＥＴ（セット）動作」、低抵抗状態から高抵抗状態に遷移する動作を「ＲＥＳＥＴ（リセット）動作」と定義している。
【００２９】
制御回路２５は、演算データセルアレイ２２のメモリセルＰの書込み動作および読み出し動作を制御する。制御回路２５は、入力インタフェース回路２１に入力された演算データＣおよびメモリセルＰを指定するアドレス信号Ｂ１に基づいて、演算データセルアレイ２２において選択されたメモリセルＰにデータ書込みを行なう。また、制御回路２５は、入力インタフェース回路２１に入力されたメモリセルＰを指定するアドレス信号Ｂ１に基づいて、演算データセルアレイ２２において選択されたメモリセルＰからのデータ読み出しを行なう。
【００３０】
（演算回路ブロック３０）
演算回路ブロック３０は、演算回路（アナログ演算回路）３１を有している。演算回路３１は、例えば、加算回路、減算回路、積算回路、除算回路といった、周知のアナログ回路を用いることができる。このような周知のアナログ回路を用いる際、演算データセルブロック２０から複数のデータが入力可能となるように、各入力データ間における整合性を維持するための抵抗素子等を演算回路３１に付加することが好ましい。このような抵抗素子を用いることにより、各入力データの演算のタイミング、各演算結果の出力のタイミング等を調整し、それら各入力データ間の整合性を維持することができる。
【００３１】
また、演算回路ブロック３０は、演算データセルブロック２０から出力される、演算データセルアレイ２２の各メモリセルＰから読み出されたデータが入力される。演算回路ブロック３０は、演算データセルアレイ２２の各メモリセルＰからの複数の読み出し値を用いて、演算回路３１によって実現されるアナログ演算を実行する。
【００３２】
さらに、演算回路ブロック３０は、演算回路３１を用いて実行されたアナログ演算の演算結果Ｅを演算結果書込みブロック４０に出力する。
【００３３】
なお、プロセッサ１０は、制御信号Ａ２を用いて、演算回路３１のアナログ演算処理を制御する。例えば、演算回路ブロック３０が、互いに異なるアナログ演算を行なう、複数の演算回路３１を有する場合であれば、プロセッサ１０は、制御信号Ａ２を用いて、それら複数の演算回路３１の切り替えについて、演算回路ブロック３０に指示することができる。この場合、演算回路３１を切り替えることにより、同一の演算データＣを用いて実行可能なアナログ演算の種類を増加させることができる。
【００３４】
また、ＲｅＲＡＭ演算デバイス１が複数の演算データセルブロック２０を有する場合であれば、プロセッサ１０は、制御信号Ａ２を用いて、それら複数の演算データセルブロック２０の切り替えについて、演算回路ブロック３０に指示することができる。この場合、同一の演算回路３１を用いてアナログ演算可能な演算データＣの数を増加させることができる。
【００３５】
（演算結果書込みブロック４０）
演算結果書込みブロック４０は、演算結果書込み先選択回路４１と、演算結果書込み先制御回路４２とを有している。
【００３６】
演算結果書込み先選択回路４１は、演算回路ブロック３０から出力された演算結果Ｅの書込み先を選択する。プロセッサ１０は、制御信号Ａ３を用いて、演算結果書込み先選択回路４１の書込み先選択処理を制御する。
【００３７】
具体的には、プロセッサ１０は、制御信号Ａ３を用いて、演算結果書込み先選択回路４１が演算回路ブロック３０から受け取る演算結果Ｅを演算結果書込み先制御回路４２に出力するタイミングを指示する。演算結果書込み先選択回路４１は、このタイミングに基づき、演算回路ブロック３０から受け取った演算結果Ｅを演算結果書込み先制御回路４２に出力する。
【００３８】
また、プロセッサ１０は、制御信号Ａ３を用いて、演算結果書込み先選択回路４１に演算結果Ｅの書込み先を指示する。演算結果書込み先選択回路４１は、プロセッサ１０から指示された書込み先を演算結果書込み先制御回路４２に出力する。
【００３９】
演算結果書込み先制御回路４２は、演算回路ブロック３０から出力された演算結果Ｅの書込み処理をする。プロセッサ１０は、制御信号Ａ４を用いて、演算結果書込み先制御回路４２の書込み処理を制御する。また、演算結果書込み先制御回路４２には、プロセッサ１０から、演算結果記憶セルブロック５０のセルアレイ内におけるメモリセルを指定するためのアドレス信号Ｂ２が入力されている。
【００４０】
演算結果書込み先制御回路４２は、演算結果書込み先選択回路４１から、演算結果Ｅおよび当該演算結果Ｅの書込み先を受け取ると、プロセッサ１０から受け取ったアドレス信号Ｂ２を用いて、演算結果記憶セルブロック５０にアドレス信号Ｂ２１およびアドレス信号Ｂ２２を出力する。後述するように、アドレス信号Ｂ２１は演算結果記憶セルブロック５０のセル行選択回路５３に入力され、アドレス信号Ｂ２２は演算結果記憶セルブロック５０のセル列選択回路５４にそれぞれ入力されるものである。
【００４１】
また、演算結果書込み先制御回路４２は、後述する演算結果セルアレイ５２のメモリセルＱの書込み動作を制御する。演算結果書込み先制御回路４２は、アドレス信号Ｂ２１に基づきセル行選択回路５３が所定のワード線を選択し、アドレス信号Ｂ２２に基づきセル列選択回路５４が所定のデータ線を選択し、所定のメモリセルＱが選択されると、当該メモリセルＱへの、演算結果書込み先選択回路４１から受け取った演算結果Ｅの書込み処理を実行する。
【００４２】
（演算結果記憶セルブロック５０）
演算結果記憶セルブロック５０は、演算結果セルアレイ５２と、セル行選択回路５３と、セル列選択回路５４と、演算結果読出回路５５とを有している。
【００４３】
演算結果セルアレイ５２は、複数のメモリセルＱが行列状に配置されており、共に同じ記憶容量とされ、アドレスが１対１に対応している（アドレス空間が同一である。）。演算結果セルアレイ５２では、ワード線を介してセル行選択回路５３と、データ線を介してセル列選択回路５４と接続され、セル行選択回路５３により所定のワード線を、セル列選択回路５４により所定のデータ線をそれぞれ選択することにより、所定のメモリセルＱが選択される。図３は、演算結果セルアレイ５２のアレイ構成を具体的に示す結線図である。
【００４４】
メモリセルＱは、演算データセルブロック２０の演算データセルアレイ２２のメモリセルＰと同様、抵抗変化型メモリ（ＲｅＲＡＭ）である。セル行選択回路５３は、アドレス信号Ｂ２１に基づき、所定のワード線を選択する。一方、セル列選択回路５４は、アドレス信号Ｂ２２に基づき、所定のデータ線を選択する。ワード線およびデータ線の選択により、所定のメモリセルＱが選択されると、当該メモリセルＱに演算結果Ｅが書込まれる。
【００４５】
演算結果読出回路５５は、演算結果セルアレイ５２のメモリセルＱの読み出し動作を制御する。プロセッサ１０は、制御信号Ａ５を用いて、演算結果読出回路５５の読み出し処理を制御する。
【００４６】
演算結果読出回路５５は、制御信号Ａ５を用いた、プロセッサ１０からの演算結果読み出しの指示を受け取ると、上述の書込みと同様、セル行選択回路５３によるワード線選択およびセル列選択回路５４によるデータ線選択により選択された、所定のメモリセルＱに書込まれている演算結果Ｅを読み出す。
【００４７】
（出力用変換回路６０）
出力用変換回路６０は、演算結果記憶セルブロック５０から演算結果Ｅを受け取りバイナリ変換し、バイナリデータＤを出力する。このバイナリデータＤは、ＲｅＲＡＭ演算デバイス１からの読み出しデータとして、ＲｅＲＡＭ演算デバイス１の外部へ出力される。プロセッサ１０は、制御信号Ａ６を用いて、出力用変換回路６０のバイナリ変換処理を制御する。
【００４８】
〔ＲｅＲＡＭ演算デバイス１の動作〕
次に、ＲｅＲＡＭ演算デバイス１の動作について説明する。以下では、図４に示すように、演算データセルアレイ２２が、５本のワード線Ｇ１、Ｇ２、Ｇ３、Ｇ４、Ｇ５と、５本のデータ線Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５とを持つ、５行×５列のアレイ構造を有するものを例として説明する。また、演算データＣは、５５５５５（データ列ｄ１）、５５５５５（データ列ｄ２）、５５５５５（データ列ｄ３）、５５５５５（データ列ｄ４）、５５５５５（データ列ｄ５）から構成されるものを例として説明する。
【００４９】
演算データセルアレイ２２では、制御回路２５の制御に基づき、初期状態として、演算データセルアレイ２２内のすべてのメモリセルＰがリセットされている。すなわち、すべてのメモリセルＰが、無記憶状態にリセットされた初期状態、言い換えれば、すべてのメモリセルＰに“０”が書込まれた状態とされている。
【００５０】
まず、入力インタフェース回路２１にプロセッサ１０から、演算データＣのうちのデータ列ｄ１（５５５５５）と、各“５”に対応するメモリセルＰを指定するアドレス信号Ｂ１および各メモリセルＰを記憶状態にセットする旨の命令をする制御信号Ａ１とが入力される。入力インタフェース回路２１は、プロセッサ１０から入力されたアドレス信号Ｂ１のうち、ワード線Ｇを選択するためのアドレス信号Ｂ１１をワード選択回路２３に出力し、データ線Ｓを選択するためのアドレス信号Ｂ１２をデータ選択回路２４に出力する。また、入力インタフェース回路２１は、データ列ｄ１を制御回路２５に出力する。
【００５１】
制御回路２５は、ワード選択回路２３により選択されたワード線Ｇおよびデータ選択回路２４により選択されたデータ線Ｓにより指定されるメモリセルＰにセット動作を実行し、各メモリセルＰに“５”を書込む。
【００５２】
図５は、演算データセルアレイ２２に演算データが書込まれていく過程を示す概念図である。図５の（ａ）に示すように、演算データセルアレイ２２の各メモリセルＰが初期状態である場合、各メモリセルＰには“０”が書込まれている。
【００５３】
データ列ｄ１がデータ線Ｓ１に接続されている各メモリセルＰに書込まれる場合であれば、先ず、データ選択回路２４によりデータ線Ｓ１が選択されると、ワード選択回路２３により、ワード線Ｇ１、Ｇ２、Ｇ３、Ｇ４、Ｇ５が、この順で選択される。その結果、図５の（ｂ）に示すように、メモリセルＰ１１、Ｐ２１、Ｐ３１、Ｐ４１、Ｐ５１に、この順で“５”が書込まれることになる。
【００５４】
ここで、入力インタフェース回路２１にデータ列ｄ１が入力されると、上述したように、メモリセルＰへの書込みを行ない、その書込みが終了した後に、次のデータ列ｄ２の入力が行なわれる。
【００５５】
そして、データ列ｄ２がデータ線Ｓ２に接続されている各メモリセルＰに、データ列ｄ３がデータ線Ｓ３に接続されている各メモリセルＰに、データ列ｄ４がデータ線Ｓ４に接続されている各メモリセルＰに、データ列ｄ５がデータ線Ｓ５に接続されている各メモリセルＰに、それぞれ書込まれる場合においても、上述のデータ列ｄ１の場合と同様の書込み動作が実行される。
【００５６】
このようにして、演算データセルアレイ２２の各メモリセルＰに上述の演算データＣを構成するデータ列ｄ１、ｄ２、ｄ３、ｄ４、ｄ５がすべて書込まれると、今度は、入力インタフェース回路２１にプロセッサ１０から、演算回路ブロック３０の演算回路３１によりアナログ演算されるデータが書込まれている、演算データセルアレイ２２のメモリセルＰを指定するアドレス信号Ｂ１および各メモリセルＰから読み出しする旨の命令をする制御信号Ａ１とが入力される。入力インタフェース回路２１は、プロセッサ１０から入力されたアドレス信号Ｂ１のうち、ワード線Ｇを選択するためのアドレス信号Ｂ１１をワード選択回路２３に出力し、データ線Ｓを選択するためのアドレス信号Ｂ１２をデータ選択回路２４に出力する。
【００５７】
制御回路２５は、ワード選択回路２３により選択されたワード線Ｇおよびデータ選択回路２４により選択されたデータ線Ｓにより指定されるメモリセルＰに書込まれているデータを、各メモリセルＰに接続されているワード線Ｇを介して、演算回路ブロック３０に出力する。
【００５８】
図６は、演算データセルアレイ２２から各メモリセルＰからデータが読み出されていく過程を示す概念図である。図６の（ａ）に示すように、演算データセルアレイ２２の各メモリセルＰには“５”が書込まれている。
【００５９】
同一のデータ線Ｓに接続されている各メモリセルＰに書込まれているデータを用いてアナログ演算される場合であれば、先ず、データ選択回路２４によりデータ線Ｓ１が選択されると、ワード選択回路２３により、ワード線Ｇ１、Ｇ２、Ｇ３、Ｇ４、Ｇ５が、この順で選択される。
【００６０】
具体的には、ワード線Ｇ１が選択されると、図６の（ｂ）に示すように、メモリセルＰ１１に書込まれているデータ“５”が、ワード線Ｇ１を介して、読み出されることになる。そして、図７の（ａ）に示すように、ワード線Ｇ２が選択されると、メモリセルＰ２１に書込まれているデータ“５”が、ワード線Ｇ２を介して、読み出され、ワード線Ｇ３が選択されると、メモリセルＰ３１に書込まれているデータ“５”が、ワード線Ｇ３を介して、読み出され、ワード線Ｇ４が選択されると、メモリセルＰ４１に書込まれているデータ“５”が、ワード線Ｇ４を介して、読み出され、ワード線Ｇ５が選択されると、メモリセルＰ５１に書込まれているデータ“５”が、ワード線Ｇ５を介して、読み出されることになる。
【００６１】
なお、制御回路２５により、これらのメモリセルＰ１１，Ｐ２１、Ｐ３１、Ｐ４１、Ｐ５１のリセット動作が実行され、無記憶状態である“０”が書込まれる。
【００６２】
同様に、データ選択回路２４によりデータ線Ｓ２が選択されると、ワード選択回路２３により、ワード線Ｇ１、Ｇ２、Ｇ３、Ｇ４、Ｇ５が、この順で選択される。図７の（ｂ）に示すように、ワード線Ｇ１が選択されると、メモリセルＰ１２に書込まれているデータ“５”が、ワード線Ｇ１を介して、読み出される。
【００６３】
同様に、ワード線Ｇ２が選択されると、メモリセルＰ２２に書込まれているデータ“５”が、ワード線Ｇ２を介して、読み出される。ワード線Ｇ３が選択されると、メモリセルＰ３２に書込まれているデータ“５”が、ワード線Ｇ３を介して、読み出される。ワード線Ｇ４が選択されると、メモリセルＰ４２に書込まれているデータ“５”が、ワード線Ｇ４を介して、読み出される。ワード線Ｇ５が選択されると、メモリセルＰ５２に書込まれているデータ“５”が、ワード線Ｇ５を介して、読み出される。
【００６４】
このようにして、同一のデータ線Ｓに接続されている各メモリセルＰに書込まれているデータが読み出されることになる。この読み出しにより、同一のデータ線Ｓに接続されている各メモリセルＰに書込まれているデータからなる、５つのデータ組が演算回路ブロック３０に出力されることになる。なお、上述した演算データＣの例の場合、各データ組はすべて５５５５５となる。以下、演算データセルアレイ２２から読み出される順に、データ組ｄ１１、データ組ｄ１２、データ組ｄ１３、データ組ｄ１４、データ組ｄ１５と呼ぶ。
【００６５】
演算回路ブロック３０では、上述の５つのデータ組ｄ１１、ｄ１２、ｄ１３、ｄ１４、ｄ１５が演算回路３１に入力される。上述したように、演算回路３１は、加算回路、減算回路、積算回路、除算回路といった、周知のアナログ回路を用いることができる。例えば、演算回路３１が加算回路であれば、５つのデータ組ｄ１１、ｄ１２、ｄ１３、ｄ１４、ｄ１５の各々に対し、演算回路３１は加算を実行する。すなわち、演算回路３１は、データ組ｄ１１に対し、５＋５＋５＋５＋５を実行し、その加算結果である“２５”を出力する。同様に、演算回路３１は、他の４つのデータ組ｄ１２、ｄ１３、ｄ１４、ｄ１５の各々に対し、５＋５＋５＋５＋５を実行し、その加算結果である“２５”を出力する。
【００６６】
このようにして、演算回路ブロック３０は、演算回路３１を用いて実行されたアナログ演算の演算結果Ｅである、５つの加算結果を演算結果書込みブロック４０に出力する。以下、演算回路３１による加算がされる順に、加算結果ｒ１、加算結果ｒ２、加算結果ｒ３、加算結果ｒ４、加算結果ｒ５と呼ぶ。
【００６７】
なお、演算回路３１が乗算回路であれば、演算回路３１は、５つのデータ組ｄ１１、ｄ１２、ｄ１３、ｄ１４、ｄ１５の各々に対し、５×５×５×５×５を実行し、その乗算結果である“３１２５”を出力する。要は、演算回路３１は、自身が実行可能なアナログ演算を、演算データセルブロック２０から出力されるデータ組ｄ１１、ｄ１２、ｄ１３、ｄ１４、ｄ１５の各々に対し、実行するものである。
【００６８】
演算結果書込みブロック４０では、上述の５つの加算結果ｒ１、加算結果ｒ２、加算結果ｒ３、加算結果ｒ４、加算結果ｒ５が演算結果書込み先選択回路４１に入力される。演算結果書込み先選択回路４１は、これら５つの加算結果ｒ１、ｒ２、ｒ３、ｒ４、ｒ５（演算結果Ｅ）および当該加算結果の書込み先を演算結果書込み先制御回路４２に出力する。
【００６９】
そして、演算結果書込み先制御回路４２にプロセッサ１０から、演算結果Ｅのうちの加算結果ｒ１に対応するメモリセルＱを指定するアドレス信号Ｂ２および各メモリセルＱを記憶状態にセットする旨の命令をする制御信号Ａ４とが入力される。演算結果書込み先制御回路４２は、プロセッサ１０から入力されたアドレス信号Ｂ２のうち、ワード線Ｇを選択するためのアドレス信号Ｂ２１をセル行選択回路５３に出力し、データ線Ｓを選択するためのアドレス信号Ｂ２２をセル列選択回路５４に出力する。アドレス信号Ｂ２（アドレス信号Ｂ２１およびＢ２２）は、演算結果書込み先選択回路４１から演算結果書込み先制御回路４２に出力される、５つの加算結果ｒ１、ｒ２、ｒ３、ｒ４、ｒ５の書込み先を指定するためのものである。
【００７０】
演算結果記憶セルブロック５０では、演算結果書込み先制御回路４２から、アドレス信号Ｂ２１およびＢ２２、ならびに、加算結果ｒ１が入力されると、セル行選択回路５３により選択されたワード線Ｇおよびセル列選択回路５４により選択されたデータ線Ｓにより指定されるメモリセルＱにセット動作が実行され、当該メモリセルＱに加算結果ｒ１である“２５”が書込まれる。
【００７１】
同様に、上述の他の加算結果ｒ２、ｒ３、ｒ４、ｒ５の各々に対しても、上述の加算結果ｒ１の場合と同様の書込み動作が実行される。
【００７２】
なお、演算結果セルアレイ５２における上述の加算結果ｒ１、ｒ２、ｒ３、ｒ４、ｒ５の各々の書込み先となるメモリセルＱは、例えば、図８の（ａ）に示すように、同一のデータ線（ここでは、データ線Ｓ１）に接続されているメモリセルＱ（ここでは、メモリセルＱ１１、Ｑ２１、Ｑ３１、Ｑ４１、Ｑ５１）を指定してもよいし、図８の（ｂ）に示すように、同一のワード線Ｇ（ここでは、ワード線Ｇ１）に接続されているメモリセルＱ（ここでは、メモリセルＱ１１、Ｑ１２、Ｑ１３、Ｑ１４、Ｑ１５）であってもよい。
【００７３】
このようにして、演算結果セルアレイ５２の各メモリセルＱに上述の演算結果Ｅを構成する加算結果ｒ１、ｒ２、ｒ３、ｒ４、ｒ５がすべて書込まれると、演算結果読出回路５５は、制御信号Ａ５を用いた、プロセッサ１０からの演算結果読み出しの指示を受け取り、上述の書込みと同様、セル行選択回路５３によるワード線選択およびセル列選択回路５４によるデータ線選択により選択された、所定のメモリセルＱに書込まれている加算結果ｒ１、ｒ２、ｒ３、ｒ４、ｒ５を読み出す。
【００７４】
出力用変換回路６０は、演算結果記憶セルブロック５０から演算結果Ｅを受け取りバイナリ変換し、バイナリデータＤを出力する。このバイナリデータＤは、ＲｅＲＡＭ演算デバイス１からの読み出しデータとして、ＲｅＲＡＭ演算デバイス１の外部へ出力される。
【００７５】
以上説明したように、ＲｅＲＡＭ演算デバイス１によれば、演算データセルアレイ２２の各メモリセルにＲｅＲＡＭを用いて、各メモリセルの抵抗値を加減乗除といったアナログ演算を行なうことにより、複数の演算を同時に、且つ、高速に実行することができる。
【００７６】
〔その他の実施形態〕
上記実施形態では、演算データセルアレイ２２の各メモリセルＰを１つのＲｅＲＡＭを用いて構成しているが、２つのＲｅＲＡＭを用いて構成し、分圧回路を実現してもよい。一方のＲｅＲＡＭの一端子を電源側に、他方のＲｅＲＡＭの一端子をアース側に接続し、それぞれの他の一端子を出力線とすることにより、分圧による電圧出力を実現することができる。
【００７７】
また、正の数のみの演算データを記録した演算データセルアレイと、負の数のみの演算データを記録した演算データセルアレイとの電圧の差を用いて、行列として構成された複数の演算データセルアレイの差分を求めたり、それら複数の演算データセルアレイを用いたログアンプなどによる乗除算を可能としたりすることにより、ＲｅＲＡＭを用いた行列演算による多変量解析を実現することができる。
【００７８】
また、ＣＣＤなどの撮像素子からの入力をＲｅＲＡＭに保存し、１フレーム前の画素配列出力との差分をとることにより、人工網膜的な演算を配列状のＲｅＲＡＭを用いて実現することができる。さらに、ヘルツホルム共鳴管のようにＲｅＲＡＭ構成して、音声波形データを入力することにより差分を求め、周波数特徴の抽出に用いたりすることも可能である。
【００７９】
〔まとめ〕
本発明の一態様に係る演算装置（ＲｅＲＡＭ演算デバイス１）は、抵抗変化型メモリ（ＲｅＲＡＭ）を含む、複数のメモリセルを有する演算データセルアレイ２２と、前記演算データセルアレイ２２の各メモリセルに書込まれているアナログ値を用いて、アナログ演算する演算回路ブロック３０と、抵抗変化型メモリを含む、複数のメモリセルを有し、前記演算回路ブロック３０によるアナログ演算結果が書込まれる演算結果セルアレイ５２と、前記演算結果セルアレイ５２に前記アナログ演算結果を書込む演算結果書込みブロック４０とを備える。
【００８０】
上記構成によれば、演算データセルアレイの各メモリセルに抵抗変化型メモリを用いて、各メモリセルの抵抗値を加減乗除といったアナログ演算を行なうことができる。
【００８１】
さらに、本発明の一態様に係る演算装置において、前記演算データセルアレイには、前記演算回路ブロックによりアナログ演算される、複数のデータ組が書込まれており、各データ組は、複数のアナログ値を含んでおり、前記演算回路ブロックは、前記演算データセルアレイに書込まれている複数のデータ組の各々を取り出し、当該取り出されたデータ組毎に、各データ組に含まれる複数のアナログ値をアナログ演算することが好ましい。
【００８２】
上記構成によれば、各データ組に含まれている複数のアナログ値の演算を同時に、且つ、高速に実行することができる。
【００８３】
さらに、本発明の一態様に係る演算装置において、前記演算回路ブロックは、前記各データ組に含まれる複数のアナログ値の総和または総積を求める演算を行なうことが好ましい。
【００８４】
さらに、本発明の一態様に係る演算装置において、前記演算回路ブロックは、複数のアナログ演算回路（演算回路３１）を有し、前記データ組毎に、当該複数のアナログ演算回路（演算回路３１）のいずれを用いてアナログ演算するかを切り替えることが好ましい。
【００８５】
上記構成によれば、演算回路を切り替えることにより、同一のデータ組を用いて実行可能なアナログ演算の種類を増加させることができる。
【００８６】
さらに、本発明の一態様に係る演算装置において、前記演算装置は、複数の前記演算回路ブロックを備え、前記データ組毎に、当該複数の演算回路ブロックのいずれを用いてアナログ演算するかを切り替えることが好ましい。
【００８７】
上記構成によれば、演算回路ブロックを切り替えることにより、同一の演算回路ブロックを用いてアナログ演算可能なデータ組の数を増加させることができる。
【００８８】
さらに、本発明の一態様に係る演算装置において、前記演算回路ブロックは、加算、減算、乗算および除算のうちの少なくとも１つの演算を行なうことが好ましい。
【００８９】
また、複数のＲｅＲＡＭアレイとアナログ演算回路を用いてそれらを組み合わせることで任意の加減乗除の演算をできるように構成し多項式や多変量解析、平均、分散、標準偏差、各種距離計算、パターンマッチング、差分、フーリエ変換、ウェーブレット変換などの任意の数式として構成しアナログ演算に用いてもよい。
【産業上の利用可能性】
【００９０】
本発明は、抵抗値の異なる複数の抵抗状態を記憶する抵抗変化型メモリを用いて、アナログ演算可能な演算装置に利用することができる。
【符号の説明】
【００９１】
１    ＲｅＲＡＭ演算デバイス（演算装置）
１０    プロセッサ
２０    演算データセルブロック
２１    入力インタフェース回路
２２    演算データセルアレイ
２３    ワード選択回路
２４    データ選択回路
２５    制御回路
３０    演算回路ブロック
３１    演算回路（アナログ演算回路）
４０    演算結果書込みブロック
４１    演算結果書込み先選択回路
４２    演算結果書込み先制御回路
５０    演算結果記憶セルブロック
５２    演算結果セルアレイ
５３    セル行選択回路
５４    セル列選択回路
５５    演算結果読出回路
６０    出力用変換回路
【図１】
2014081842.tif 000003
【図２】
2014081842.tif 000004
【図３】
2014081842.tif 000005
【図４】
2014081842.tif 000006
【図５】
2014081842.tif 000007
【図６】
2014081842.tif 000008
【図７】
2014081842.tif 000009
【図８】
2014081842.tif 000010