(57)【特許請求の範囲】
【請求項１】
二値化情報を記憶するセルキャパシタと、ワード線電位に応じて該セルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタと、を有するメモリセルを複数個有するメモリセルアレイを用いた相関値演算方法であって、
前記メモリセルアレイの、同一の前記ビット線に接続されたメモリセル群ごとに、テンプレートベクトルを割り当て、
前記メモリセル群の、隣接する前記ワード線に接続されたメモリセル対ごとに、対応する前記テンプレートベクトルの各ビットを順に割り当て、
前記テンプレートベクトルの各ビット値を、前記セルキャパシタに対する書込み電位の高電位／低電位によって相補データ化して、対応する前記メモリセル対にそれぞれ書き込んでおき、
入力ベクトルの各ビット値を、前記セルトランジスタのオン電位／オフ電位によって相補データ化して、対応する前記ワード線にそれぞれ供給し、
このときの前記ビット線の電位により、前記入力ベクトルと前記テンプレートベクトルとの相関値の演算結果を取得する、
ことを特徴とする相関値演算方法。
【請求項２】
二値化情報を記憶するセルキャパシタと、ワード線電位に応じて該セルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタと、を有するメモリセルを複数個有するメモリセルアレイを用いた相関値演算方法であって、
前記メモリセルアレイの、同一ビット線対ＢＬ，ＢＬＢに接続されたメモリセル群ごとにテンプレートベクトルを割り当て、
前記メモリセル群の、前記ビット線対ＢＬ，ＢＬＢのうちの異なるビット線に接続され且つ隣接ワード線対に接続されたメモリセル対ごとに、対応する前記テンプレートベクトルの各ビットを順に割り当て、
前記テンプレートベクトルの各ビット値を、前記セルキャパシタに対する書込み電位の高電位／低電位によって相補データ化して、対応する前記メモリセル対にそれぞれ書き込んでおき、
入力ベクトルの各ビット値を、前記セルトランジスタのオン電位／オフ電位によって相補データ化して、対応する前記ワード線対にそれぞれ同時に供給し、
このときの前記ビット線の電位を、前記入力ベクトルと前記テンプレートベクトルとの相関値の演算結果とする、
ことを特徴とする相関値演算方法。
【請求項３】
請求項１または２に記載の相関値演算方法において、
前記テンプレートベクトルの各ベクトル要素および前記入力ベクトルの各ベクトル要素が、それぞれｎ桁（ｎは複数）のビットで構成され、且つ、前記セルキャパシタの静電容量が、対応する該ビットの位に応じて重み付けされていることを特徴とする相関値演算方法。
【請求項４】
請求項１に記載の相関値演算方法において、
前記テンプレートベクトルの各ベクトル要素および前記入力ベクトルの各ベクトル要素が、それぞれｎ桁（ｎは複数）のビットで構成され、
それぞれの前記ビット線に、前記ｎ個の桁に対応させて、ｍ個（ｍは複数）ずつの演算用キャパシタがスイッチを介して接続され、
前記入力ベクトルに含まれる各ベクトル要素の同一桁のビットに対応する相補データを対応する前記ワード線対に同時に供給するとともにその桁に対応する前記演算用キャパシタのみを前記ビット線に接続する制御を、すべての桁に対して順次行い、
前記演算用キャパシタを、対応する前記ビットの位に応じて重み付けされた個数ずつ、前記ビット線に同時に接続する、
ことを特徴とする相関値演算方法。
【請求項５】
二値化情報を記憶するセルキャパシタとワード線電位に応じて該セルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタとを有するメモリセルを複数個有し、同一の前記ビット線に接続されたメモリセル群ごとにテンプレートベクトルが割り当てられ、前記メモリセル群の、隣接する前記ワード線に接続されたメモリセル対ごとに、対応する前記テンプレートベクトルの各ビットが順に割り当てられ、前記テンプレートベクトルの各ビット値が前記セルキャパシタに対する書込み電位の高電位／低電位によって相補データ化されて対応する前記メモリセル対にそれぞれ書き込まれるメモリセルアレイと、
入力ベクトルの各ビット値を、前記セルトランジスタのオン電位／オフ電位によって相補データ化して、対応する前記ワード線対にそれぞれ供給するワード線ドライバと、
該ワード線ドライバが前記ワード線対に前記入力ベクトルの各ビット値を供給したときの前記ビット線の電位により、前記入力ベクトルと前記テンプレートベクトルとの相関値の演算結果を取得して出力するセンスアンプと、
を備えることを特徴とする相関値演算装置。
【請求項６】
二値化情報を記憶するセルキャパシタとワード線電位に応じて該セルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタとを有するメモリセルを複数個有し、同一ビット線対ＢＬ，ＢＬＢに接続されたメモリセル群ごとにテンプレートベクトルが割り当てられ、前記メモリセル群の、前記ビット線対ＢＬ，ＢＬＢのうちの異なるビット線に接続され且つ隣接ワード線対に接続されたメモリセル対ごとに、対応する前記テンプレートベクトルの各ビットが順に割り当てられ、前記テンプレートベクトルの各ビット値が前記セルキャパシタに対する書込み電位の高電位／低電位によって相補データ化されて対応する前記メモリセル対にそれぞれ書き込まれるメモリセルアレイと、
入力ベクトルの各ビット値を、前記セルトランジスタのオン電位／オフ電位によって相補データ化して、対応する前記ワード線対にそれぞれ同時に供給するワード線ドライバと、
該ワード線ドライバが前記ワード線対に前記入力ベクトルの各ビット値を供給したときの前記ビット線の電位を、前記入力ベクトルと前記テンプレートベクトルとの相関値の演算結果として出力するセンスアンプと、
を備えることを特徴とする相関値演算装置。
【請求項７】
請求項５または６に記載の相関値演算装置において、
前記テンプレートベクトルの各ベクトル要素および前記入力ベクトルの各ベクトル要素が、それぞれｎ桁（ｎは複数）のビットで構成され、且つ、前記セルキャパシタの静電容量が、対応する該ビットの位に応じて重み付けされていることを特徴とする相関値演算装置。
【請求項８】
請求項５に記載の相関値演算方装置において、
前記テンプレートベクトルの各ベクトル要素および前記入力ベクトルの各ベクトル要素が、それぞれｎ桁（ｎは複数）のビットで構成され、
それぞれの前記ビット線に、前記ｎ個の桁に対応させて、ｍ個（ｍは複数）ずつの演算用キャパシタがスイッチを介して接続され、
前記入力ベクトルに含まれる各ベクトル要素の同一桁のビットに対応する相補データを対応する前記ワード線対に同時に供給するとともにその桁に対応する前記演算用キャパシタのみを前記ビット線に接続する制御を、すべての桁に対して順次行い、
前記演算用キャパシタを、対応する前記ビットの位に応じて重み付けされた個数ずつ、前記ビット線に同時に接続する、
ことを特徴とする相関値演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力ベクトルとテンプレートベクトルとの相関値を演算する方法に関する。
【０００２】
【従来の技術】
従来の相関値演算装置は、文献１「ISSCC Digest of Technical Papers, pp304-305, Feb., 1996.」、文献２「電子情報通信学会論文誌  D-I Vol.J81-D-I No2. pp51-61  1998年２月」および文献３「Proceedings of the 6th International Conference on Microelectronics for Neural Networks, Evolutionary & Fuzzy Systems(MicroNeuro'97), pp175-180, Sep., 1997.」に開示されるように、アソシエータ（Associator）と呼ばれる相関値演算器と、大容量メモリとで構成される。この装置では、メモリに記憶したテンプレートベクトル群を相関値演算器にダウンロードして、然る後、テンプレートベクトルと入力ベクトルとの相関値を計算する。相関値とは、テンプレートベクトルおよび入力ベクトルの各要素の差分絶対値の和である。相関値演算器は、テンプレートベクトルおよび入力ベクトルの各要素ごとに差分値を計算するための差分値演算器が配列された構成である。この差分値演算器は１３個のトランジスタで構成される。
【０００３】
また、文献４「A.Okada,T.Shibata,"A NEURON-MOS Parallel ASSOCIATION FOR HIGH SPEED CDMA MATCHED FILTER", 1999 IEEE International Symposium on Circuit and Systems(ISCAS 99)」には、相関値演算器にテンプレートベクトルをあらかじめ記憶させておく方式が開示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、文献１、文献２および文献３に開示の装置では、差分値演算器が１３個ものトランジスタで構成されること、およびメモリから差分値演算器へ各要素ごとにベクトルをダウンロードする配線層が必要になることから、テンプレート数およびベクトル次元数が増加した場合の高集積化に問題がある。さらに、メモリから相関値演算器へのテンプレートベクトルのダウンロード時間が増大する問題もある。一方、文献４に開示の装置では、テンプレートベクトルを任意に変更することは非常に困難である。
【０００５】
【課題を解決するための手段】
（１）第１の発明は、二値化情報を記憶するセルキャパシタと、ワード線電位に応じてセルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタと、を有するメモリセルを複数個有するメモリセルアレイを用いた相関値演算方法に関する。
そして、メモリセルアレイの、同一のビット線に接続されたメモリセル群ごとに、テンプレートベクトルを割り当て、メモリセル群の、隣接するワード線に接続されたメモリセル対ごとに、対応するテンプレートベクトルの各ビットを順に割り当て、テンプレートベクトルの各ビット値を、セルキャパシタに対する書込み電位の高電位／低電位によって相補データ化して、対応するメモリセル対にそれぞれ書き込んでおき、入力ベクトルの各ビット値を、セルトランジスタのオン電位／オフ電位によって相補データ化して、対応するワード線にそれぞれ供給し、このときのビット線の電位により、入力ベクトルとテンプレートベクトルとの相関値の演算結果を取得する。
（２）第２の発明は、二値化情報を記憶するセルキャパシタと、ワード線電位に応じてセルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタと、を有するメモリセルを複数個有するメモリセルアレイを用いた相関値演算方法に関する。
そして、メモリセルアレイの、同一ビット線対ＢＬ，ＢＬＢに接続されたメモリセル群ごとにテンプレートベクトルを割り当て、メモリセル群の、ビット線対ＢＬ，ＢＬＢのうちの異なるビット線に接続され且つ隣接ワード線対に接続されたメモリセル対ごとに、対応するテンプレートベクトルの各ビットを順に割り当て、テンプレートベクトルの各ビット値を、セルキャパシタに対する書込み電位の高電位／低電位によって相補データ化して、対応するメモリセル対にそれぞれ書き込んでおき、入力ベクトルの各ビット値を、セルトランジスタのオン電位／オフ電位によって相補データ化して、対応するワード線対にそれぞれ同時に供給し、このときのビット線の電位を、入力ベクトルとテンプレートベクトルとの相関値の演算結果とする。
（３）第３の発明は、二値化情報を記憶するセルキャパシタとワード線電位に応じてセルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタとを有するメモリセルを複数個有し、同一のビット線に接続されたメモリセル群ごとにテンプレートベクトルが割り当てられ、メモリセル群の、隣接するワード線に接続されたメモリセル対ごとに、対応するテンプレートベクトルの各ビットが順に割り当てられ、テンプレートベクトルの各ビット値がセルキャパシタに対する書込み電位の高電位／低電位によって相補データ化されて対応するメモリセル対にそれぞれ書き込まれるメモリセルアレイと、入力ベクトルの各ビット値を、セルトランジスタのオン電位／オフ電位によって相補データ化して、対応するワード線対にそれぞれ供給するワード線ドライバと、ワード線ドライバがワード線対に入力ベクトルの各ビット値を供給したときのビット線の電位により、入力ベクトルとテンプレートベクトルとの相関値の演算結果を取得して出力するセンスアンプとを備える。
（４）第４の発明は、二値化情報を記憶するセルキャパシタとワード線電位に応じてセルキャパシタとビット線との接続／非接続を切り換えるセルトランジスタとを有するメモリセルを複数個有し、同一ビット線対ＢＬ，ＢＬＢに接続されたメモリセル群ごとにテンプレートベクトルが割り当てられ、メモリセル群の、ビット線対ＢＬ，ＢＬＢのうちの異なるビット線に接続され且つ隣接ワード線対に接続されたメモリセル対ごとに、対応するテンプレートベクトルの各ビットが順に割り当てられ、テンプレートベクトルの各ビット値がセルキャパシタに対する書込み電位の高電位／低電位によって相補データ化されて対応するメモリセル対にそれぞれ書き込まれるメモリセルアレイと、入力ベクトルの各ビット値を、セルトランジスタのオン電位／オフ電位によって相補データ化して、対応するワード線対にそれぞれ同時に供給するワード線ドライバと、ワード線ドライバがワード線対に入力ベクトルの各ビット値を供給したときのビット線の電位を、入力ベクトルとテンプレートベクトルとの相関値の演算結果として出力するセンスアンプとを備える。
【０００６】
第１〜第４の発明によれば、メモリセルアレイのビット線上でベクトル間の相関値を演算することができる。第１〜第４の発明によれば、従来のように、メモリから相関値演算器にテンプレートベクトルをダウンロードする必要がない。したがって、相関値の計算時間が短縮化される。また、ダウンロード用の配線層が不要であるから、高集積化が実現できる。また、第１〜第４の発明によれば、テンプレートベクトルの変更も容易に行える。
さらに、第１〜第４の発明によれば、テンプレートベクトルおよび入力ベクトルの各ビットを相補データ化するので、二値化情報を記憶するメモリセルを用いて相関値の演算を行うことができ、このため、メモリセルの構造が簡単であるとともに、回路規模を小さくすることができる。
加えて、第１〜第４の発明によれば、セルキャパシタに対する電荷の蓄積／非蓄積だけでテンプレートベクトルの書込みを行うことができるので、テンプレートベクトルの高速書込みが可能である。
【０００７】
【発明の実施の形態】
以下、図を参照してこの発明の実施の形態につき説明する。なお、図は、この発明を理解できる程度に接続関係などを概略的に示すものに過ぎない。よって、この発明は図示例に限定されない。
【０００８】
［第１の実施の形態］
図１は、第１の実施の形態の相関値演算装置を示すブロック図である。この装置は、ＤＲＡＭメモリセルアレイ（以下、単にＤＲＡＭと称する。）１０と、ワード線ドライバ（以下、ＷＬドライバと称する。）１２と、センスアンプ１４とで構成される。ＷＬドライバ１２は、ワード線ＷＬを介してＤＲＡＭ１０に接続される。このＷＬドライバ１２は、複数のワード線ＷＬを同時に活性化させることができる機能を有する。センスアンプ１４は、ビット線ＢＬを介してＤＲＡＭ１０に接続される。このセンスアンプ１４は、ビット線ＢＬの電位（アナログ値）を増幅し、相関値出力群として出力するものである。
【０００９】
図２は、ＤＲＡＭ１０のメモリ構成例を示す図である。メモリセルアレイは、ワード線ＷＬおよびビット線ＢＬの交差点に１つずつ配置される。図２中、黒丸記号はＶＤＤ電圧で書き込まれたメモリセルを表し、白丸記号はＶＳＳ電圧で書き込まれたメモリセルを表す。テンプレートベクトルＴＶ＃０、ＴＶ＃１、・・・はそれぞれビット線ＢＬ＜０＞、ＢＬ＜１＞、・・・上に記憶される。これらテンプレートベクトルのベクトル要素は、メモリセル対を用いて表現される。ここでは、ビット線に沿って、隣り合うワード線（偶数番目のワード線と奇数番目のワード線）にそれぞれ配置されたメモリセルを１要素としている。
【００１０】
図２の例では、例えばビット線ＢＬ＜０＞上の、ワード線ＷＬ＜０＞およびＷＬ＜１＞それぞれに配置されたメモリセル（メモリセル対１６ａ）で、テンプレートベクトルＴＶ＃０の１要素が表現される。同様に、ビット線ＢＬ＜１＞上の、ワード線ＷＬ＜０＞およびＷＬ＜１＞それぞれに配置されたメモリセル（メモリセル対１６ｂ）で、テンプレートベクトルＴＶ＃１の１要素が表現される。メモリセル対１６ａのように、偶数番目のワード線に配置されたメモリセルアレイにＶＤＤが書き込まれ、奇数番目のワード線に配置されたメモリセルアレイにＶＳＳが書き込まれると“＋１”のデータを表す。逆にメモリセル対１６ｂのように、偶数番目のワード線に配置されたメモリセルアレイにＶＳＳが書き込まれ、奇数番目のワード線に配置されたメモリセルアレイにＶＤＤが書き込まれると“−１”のデータを表す。図２の例では、テンプレートベクトルＴＶ＃０は（１，１，−１，１）となり、テンプレートベクトルＴＶ＃１は（１，−１，１，−１）となる。
【００１１】
ＷＬドライバ１２は、入力ベクトルの各要素に応じてワード線ＷＬ対をそれぞれ活性化させる。図２に示すように、例えばワード線ＷＬ＜０＞およびＷＬ＜１＞は、入力ベクトルの１要素ＩＶ［０］に応じて活性化される。例えば入力ベクトルのある要素が“＋１”なら、偶数番目のワード線は“Ｈ”となり、奇数番目のワード線は“Ｌ”となる。逆に入力ベクトルのある要素が“−１”なら、偶数番目のワード線は“Ｌ”となり、奇数番目のワード線は“Ｈ”となる。
【００１２】
また、ビット線ＢＬは以下のように構成される。図３は、ビット線周辺の構成を示す回路図である。ビット線ＢＬの一端はセンスアンプＳＡ（図１のセンスアンプ１４に相当する。）に接続される。ビット線ＢＬとワード線ＷＬとの交差点それぞれに、トランジスタＴｒおよびキャパシタＣで構成されたメモリセルが接続される。トランジスタＴｒのチャネルとキャパシタＣとは、ビット線ＢＬとグランド端子との間に、ビット線側からこの順序で直列に接続される。また、トランジスタＴｒのゲート電極は、対応するワード線ＷＬに接続される。キャパシタＣの容量はＣcellである。
【００１３】
例えばワード線ＷＬ＜０＞およびＷＬ＜１＞に配置されたメモリセル対１８では、ワード線ＷＬ＜０＞側のキャパシタにＶＤＤが書き込まれ、ワード線ＷＬ＜１＞側のキャパシタにＶＳＳが書き込まれている。すなわち、メモリセル対１８には“＋１”のテンプレートベクトル要素ＴＶ［０］が書き込まれている。
【００１４】
図２に示したような構成において、テンプレートベクトルＴＶ♯０〜ＴＶ♯７と入力ベクトルＩＶとの相関値を演算する場合には、上述したように、該入力ベクトルの各要素値に応じて、ＷＬドライバ１２が各ワード線を活性化する。これにより、各メモリセル内のトランジスタＴｒ（図３参照）のゲートに、電位ＶＤＤまたはＶＳＳが印加される。各トランジスタＴｒは、ゲートに電位ＶＤＤが印加されたときはオンし、ゲートに電位ＶＳＳが印加されたときはオフに維持される。したがって、キャパシタＣは、対応するワード線の電位がＶＤＤの場合にはビット線ＢＬに接続されるが、対応するワード線の電位がＶＳＳの場合にはビット線ＢＬに接続されない。上述したように、例えば、入力ベクトルの要素ＩＶ［０］が“１”の場合、ワード線ＷＬ＜０＞には電位ＶＤＤが印加され、且つ、ワード線ＷＬ＜１＞には電位ＶＳＳが印加される。したがって、要素ＩＶ［０］が“１”の場合には、ワード線ＷＬ＜０＞に対応するキャパシタＣはビット線ＢＬに接続されるが、ワード線ＷＬ＜１＞に対応するキャパシタＣはビット線ＢＬに接続されない。逆に、要素ＩＶ［０］が“−１”の場合には、ワード線ＷＬ＜０＞に対応するキャパシタＣはビット線ＢＬに接続されないが、ワード線ＷＬ＜１＞に対応するキャパシタＣはビット線ＢＬに接続される。
また、上述したように、テンプレートベクトルの要素ＴＶ［０］が“１”の場合、ワード線ＷＬ＜０＞に対応するキャパシタＣの記憶電位はＶＤＤであり、且つ、ワード線ＷＬ＜１＞に対応するキャパシタＣの記憶電位はＶＳＳである。逆に、この要素ＴＶ［０］が“−１”の場合、ワード線ＷＬ＜０＞に対応するキャパシタＣの記憶電位はＶＳＳであり、且つ、ワード線ＷＬ＜１＞に対応するキャパシタＣの記憶電位はＶＤＤである。
したがって、入力ベクトル要素ＩＶ［０］の値がテンプレートベクトルの要素ＴＶ［０］の値と一致する場合には、常に、電位ＶＤＤを記憶するキャパシタはビット線ＢＬに接続され、且つ、電位ＶＳＳを記憶するキャパシタはビット線ＢＬに接続されない。逆に、入力ベクトル要素ＩＶ［０］の値がテンプレートベクトルの要素ＴＶ［０］の値と一致しない場合には、常に、電位ＶＤＤを記憶するキャパシタはビット線ＢＬに接続されず、且つ、電位ＶＳＳを記憶するキャパシタはビット線ＢＬに接続される。
後述するように、テンプレートベクトルＴＶ♯０〜ＴＶ♯７と入力ベクトルＩＶとの相関値を演算する場合、予め、ビット線ＢＬに電位ＶＤＤ／２が印加される（下記（１）式参照）。このため、入力ベクトル要素ＩＶ［０］の値がテンプレートベクトルの要素ＴＶ［０］の値と一致する場合には、電位ＶＤＤを記憶するキャパシタが、ビット線ＢＬの電位を上昇させようとする。逆に、入力ベクトル要素ＩＶ［０］の値がテンプレートベクトルの要素ＴＶ［０］の値と一致しない場合には、電位ＶＳＳを記憶するキャパシタが、ビット線ＢＬの電位を下降させようとする。したがって、以下に説明するような原理により、ビット線ＢＬの電位は、テンプレートベクトルと入力ベクトルとの間の要素一致数に応じた電位となる。
【００１５】
図３を参照して相関値演算の原理を説明する。ビット線ＢＬの基準電位をＶBLとし、一本のビット線に２ｎ個のメモリセルが接続されるとする。相関値演算前におけるビット線ＢＬおよび全メモリセルの電荷ＱBLおよびＱcellはそれぞれ（１）式および（２）式で表される。
【００１６】
ＱBL＝ＣBL・ＶＤＤ／２  ・・・（１）
Ｑcell＝ｎＣcell・ＶＤＤ＋ｎＣcell・ＶＳＳ  ・・・（２）
ここでＣBLはビット線ＢＬの容量である。入力ベクトルとテンプレートベクトルとが対比され、ｋ個の要素が一致するとすれば、相関値演算後のそれぞれの電荷Ｑ′BLおよびＱ′cellは（３）式および（４）式で表される。
【００１７】
Ｑ′BL＝ＣBL・Ｖ  ・・・（３）
Ｑ′cell＝ｋＣcellＶ＋（ｎ−ｋ）ＣcellＶ＋ｋＣcell・ＶＳＳ＋（ｎ−ｋ）Ｃcell・ＶＤＤ  ・・・（４）
ここでＶは相関値演算後のビット線ＢＬの電位である。電荷保存則より、ＱBL＋Ｑcell＝Ｑ′BL＋Ｑ′cellが成り立ち、これをＶについて解くと、
Ｖ＝ＶＤＤ／２＋（２ｋ−ｎ）Ｃcell・ＶＤＤ／｛２（ＣBL＋ｎＣcell）｝・・・（５）
となる。よって、要素の一致数ｋが大きいほどビット線ＢＬの電位は増加する。
【００１８】
この電荷の増減は、電荷移動に寄与するセルのみに注目すると、次のように考えることができる。電荷の移動はベクトル要素が一致するセルからはＱ＝（＋１）・Ｃcell・ＶＤＤ／２、および一致しないセルからはＱ＝（−１）・Ｃcell・ＶＤＤ／２の分だけ電荷が再分配されるため、電荷移動前の電荷の総和Ｑall は、（６）式となる。
【００１９】
0003761071.tif 000002
ここでＩＶ＃、ＴＶ＃はそれぞれ入力ベクトル、テンプレートベクトルを表しており、各要素ＩＶ［ｉ］、ＴＶ［ｉ］は＋１か−１をとる。（６）式中、（ＩＶ＃・ＴＶ＃）＝２ｋ−ｎである。また、（６）式中、記号Σinは整数ｉをｎまで変化させたときの各値の和を演算することを表す。一方、電荷移動後の総電荷量Ｑ′all は、（７）式となる。
【００２０】
Ｑ′all ＝（ＣBL＋ｎＣcell）Ｖ  ・・・（７）
電荷保存則により、Ｑall ＝Ｑ′all が成り立ち、これをＶについて解くと、Ｖ＝ＶＤＤ／２＋ＣcellＶＤＤ／｛２（ＣBL＋ｎＣcell）｝（ＩＶ＃・ＴＶ＃）・・・（８）
となる。（８）式の結果は（５）式の結果と同等である。本方式によれば、入力ベクトルとテンプレートベクトルとの内積を相関値として演算する相関値演算器の実現が可能となる。
【００２１】
図４は、第１の実施の形態の相関値演算装置の動作タイミングを示すタイミングチャートである。この相関値演算装置は図３の構成を有するものとする。
【００２２】
まず、ある入力ベクトルＩＶが入力されると、各要素に対応したワード線ＷＬがデコードされる。次に、デコードされたワード線ＷＬが複数同時に活性化され、電荷の再分配が実行される。この例では入力ベクトルＩＶ｛＋１，＋１，・・・，−１｝に対し、ワード線ＷＬ＜０＞、ＷＬ＜２＞、・・・、ＷＬ＜２ｎ−１＞が活性化される。その結果、相関値として上記（８）式に示されるビット線電圧Ｖが得られる。
【００２３】
以上のように、第１の実施の形態によれば、ＤＲＡＭメモリセルアレイのビット線ＢＬ上でベクトル間の相関値を演算することができる。この方法によれば、従来のように、メモリから相関値演算器にテンプレートベクトルをダウンロードする必要がないので、相関値の計算時間が短縮化される。また、この方法によれば、テンプレートベクトルの変更も容易に行える。さらに、ダウンロード用の配線層が不要であるとともに、テンプレートベクトルがＤＲＡＭメモリセルアレイに記憶されるようにしたので、高集積化を実現することができる。
【００２４】
［第２の実施の形態］
次に第２の実施の形態の相関値演算方法および装置につき説明する。主として、第１の実施の形態と異なる点につき説明する。
【００２５】
図５は、第２の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す図である。この実施の形態では、ビット線ＢＬおよびＢＬＢを対として使用する。これらビット線対ＢＬおよびＢＬＢはセンスアンプ（差動増幅器）ＳＡに接続される。ビット線対上の、隣り合うワード線（偶数番目のワード線と奇数番目のワード線）にそれぞれ配置されたメモリセルを１要素とする。
【００２６】
図５の例では、例えばビット線ＢＬおよびワード線ＷＬ＜０＞の交差点に配置されたメモリセルＡと、ビット線ＢＬＢおよびワード線ＷＬ＜１＞の交差点に配置されたメモリセルＢとでメモリセル対２０ａが構成される。このメモリセル対２０ａによってテンプレートベクトルの１要素ＴＶ［０］が表現される。図５中、黒丸記号はＶＤＤが書き込まれたメモリセルを表し、白丸記号はＶＳＳが書き込まれたメモリセルを表す。メモリセル対２０ａには“＋１”が書き込まれている。
【００２７】
図６は、差動増幅器ＳＡの構成を示す回路図である。差動増幅器ＳＡは、インバータＩ１およびＩ２と、トランジスタＴ１およびＴ２と、スイッチング要素ＥＱＡ、ＴＧ、ＥＱＳＡおよびＲＣＬと、リードアンプ２２とで構成される。インバータＩ１およびＩ２はビット線ＢＬおよびＢＬＢ間に互いに逆向きに並列に接続される。リードアンプ２２は、ＲＤＢ線およびＲＤＢＢ線を介して、トランジスタＴ１およびＴ２の各チャネルにそれぞれ接続される。トランジスタＴ１のゲート電極はビット線ＢＬに接続され、トランジスタＴ２のゲート電極はビット線ＢＬＢに接続される。スイッチング要素ＥＱＡはビット線ＢＬおよびＢＬＢ間の接続・切断を行うものである。スイッチング要素ＴＧはビット線ＢＬおよびＢＬＢの双方にそれぞれ直列に挿入されている。スイッチング要素ＥＱＳＡはビット線ＢＬおよびＢＬＢの各々とビット線基準電位ＶＢＬとの接続・切断を行うものである。スイッチング要素ＲＣＬは、トランジスタＴ１とビット線ＢＬとの間、およびトランジスタＴ２とビット線ＢＬＢとの間にそれぞれ挿入されている。以下の説明では、スイッチング要素ＥＱＡ、ＴＧ、ＥＱＳＡおよびＲＣＬは、それぞれ信号ＥＱＡ、ＴＧ、ＥＱＳＡおよびＲＣＬのオン（ｏｎ）・オフ（ｏｆｆ）によって開閉動作すなわち接続・切断動作を行うものとする。
【００２８】
図７は、相関値演算およびテンプレートのリフレッシュ動作を示すタイミングチャートである。初めにビット線対はビット線基準電位ＶＢＬにプリチャージされる。ビット線ＢＬおよびＢＬＢは接続されている。
【００２９】
入力ベクトルＩＶが入力されると、タイミング▲１▼において信号ＥＱＳＡがオフになって、ビット線対のプリチャージが終了する。その後、入力ベクトルに対応するワード線ＷＬが複数同時に活性化される。ワード線ＷＬが活性化すると相関値が計算され、その計算結果がビット線対上に電圧ΔＶとして現れる。このとき信号ＲＣＬをオンにすると、ビット線電圧に比例した電圧がリードアンプ２２に出力される。
【００３０】
相関値演算が終了すると、タイミング▲２▼において再びビット線対がプリチャージされる。このとき、演算に用いたメモリセルは、電荷が再分配されているために演算前のデータを保持していない。そこで、テンプレートベクトルの各要素はメモリセル対によって構成されていることを利用して、テンプレートのリフレッシュを行う。図５のメモリセルＡ、Ｂと、ワード線ＷＬ＜０＞、ＷＬ＜１＞とを用いて、ＩＶ［０］＝“＋１”の場合のリフレッシュ動作を説明する。
【００３１】
タイミング▲３▼において信号ＥＱＡ、ＴＧおよびＥＱＳＡをオフにし、然る後、ある一つの入力ベクトル要素の反転に対応するワード線ＷＬを活性化させる。図５の場合、ワード線ＷＬ＜１＞を活性化させる。その結果、ビット線ＢＬＢ上にメモリセルＢが保持する電荷が再分配され、微小電位差が現れる。
【００３２】
次にタイミング▲４▼において信号ＴＧおよびＳＡＥをオンにすると、微小電位差がフルレベルまで差動増幅され、ビット線ＢＬにＶＤＤがチャージされるとともに、ビット線ＢＬＢにＶＳＳがチャージされる。その結果、メモリセルＢにＶＳＳがリフレッシュされる。
【００３３】
次にタイミング▲５▼において、ワード線ＷＬ＜１＞を非活性化させ、ワード線ＷＬ＜０＞を活性化させると、メモリセルＡにＶＤＤがリフレッシュされる。
【００３４】
最後に、タイミング▲６▼においてワード線ＷＬ＜０＞および信号ＳＡＥをオフにし、信号ＥＱＡおよびＥＱＳＡをオンにすることで、テンプレートベクトル要素ＴＶ［０］のリフレッシュを完了する。
【００３５】
タイミング▲３▼から▲６▼のリフレッシュ動作を全要素について行うことで、テンプレートベクトルのリフレッシュを実行することができる。
【００３６】
以上のように、第２の実施の形態によれば、テンプレートベクトルをリフレッシュするために新たな回路を設けることなく、一般的な差動増幅器ＳＡを用いて実行することができる。
【００３７】
［第３の実施の形態］
次に第３の実施の形態の相関値演算方法および装置につき説明する。主として、第１および第２の実施の形態と異なる点につき説明する。
【００３８】
図８は、第３の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す回路図である。この実施の形態では、ベクトル要素が２ビット４値で表現される。このため、１つの要素を表現するために４個のメモリセルを用いている。すなわち、上位ビットを記憶するために２個のメモリセルを用い、下位ビットを記憶するために２個のメモリセルを用いている。上位ビットに対応するメモリセルのキャパシタは、下位ビットに対応するキャパシタの２倍の容量を有する。
【００３９】
図８に示すように、ビット線ＢＬの一端はセンスアンプＳＡに接続される。図３の構成と同様に、ビット線ＢＬとワード線ＷＬとの交差点それぞれに、トランジスタＴｒおよびキャパシタＣ１またはＣ２で構成されたメモリセルが接続される。
【００４０】
図８の例では、例えばワード線ＷＬ＜０＞およびＷＬ＜１＞に配置されたメモリセル対２４ａがテンプレートベクトル要素ＴＶ［０］の下位ビットを記憶するためのメモリセルとして用いられる。メモリセル対２４ａを構成する各メモリセルは、それぞれトランジスタＴｒおよびキャパシタＣ１で構成される。キャパシタＣ１の容量はＣcellである。
【００４１】
また、ワード線ＷＬ＜２＞およびＷＬ＜３＞に配置されたメモリセル対２４ｂがテンプレートベクトル要素ＴＶ［０］の上位ビットを記憶するためのメモリセルとして用いられる。メモリセル対２４ｂを構成する各メモリセルは、それぞれトランジスタＴｒおよびキャパシタＣ２で構成される。キャパシタＣ２の容量は２Ｃcellである。
【００４２】
メモリセル対２４ａでは、ワード線ＷＬ＜０＞側のキャパシタにＶＤＤが書き込まれ、ワード線ＷＬ＜１＞側のキャパシタにＶＳＳが書き込まれている。すなわち、メモリセル対２４ａには“＋１”が書き込まれている。一方、メモリセル対２４ｂでは、ワード線ＷＬ＜２＞側のキャパシタにＶＳＳが書き込まれ、ワード線ＷＬ＜３＞側のキャパシタにＶＤＤが書き込まれている。すなわち、メモリセル対２４ｂには“−１”が書き込まれている。したがって、メモリセル対２４ａおよび２４ｂには、テンプレートベクトル要素ＴＶ［０］として｛−１，＋１｝が書き込まれている。
【００４３】
そして、入力ベクトル要素ＩＶ［０］が｛＋１，＋１｝なら、演算時にはワード線ＷＬ＜０＞およびＷＬ＜２＞が“Ｈ”となり、ワード線ＷＬ＜１＞およびＷＬ＜３＞が“Ｌ”となる。上位ビットの一致数をｋ1 、下位ビットの一致数をｋ2 、ベクトル要素数をｍとすれば、演算前後の電荷の総和が保存されるので下記の式（９）が成り立つ。
【００４４】
ＣBLＶＤＤ／２＋２ｋ1 ＣcellＶＤＤ＋ｋ2 ＣcellＶＤＤ＝（ＣBL＋３ｍＣcell）Ｖ  ・・・（９）
これをビット線電位Ｖについて解くと、
Ｖ＝ＣBLＶＤＤ／２＋｛２（２ｋ1 ＋ｋ2 ）−３ｍ｝ＣcellＶＤＤ／｛２（ＣBL＋３ｍＣcell）｝  ・・・（１０）
となる。よって、重み付けされた上位ビットと下位ビットの一致数の和に比例して、相関値としてのビット線電位が増加する。
【００４５】
図９は、第３の実施の形態の相関値演算装置の動作タイミングを示すタイミングチャートである。図８の構成を例にとり説明する。入力ベクトルは上位ビットと下位ビットにコンバートされ、対応するワード線にデコードされる。次に、デコードされたワード線ＷＬが複数同時に活性化され、電荷の再分配が行われる。この例では、入力ベクトル要素ＩＶ［０］＝｛＋１，＋１｝に対して、ワード線ＷＬ＜０＞およびＷＬ＜２＞が活性化される。その結果上記（１０）式に示されるビット線電圧Ｖが相関値として得られる。
【００４６】
以上のように、第３の実施の形態によれば、ＤＲＡＭメモリセルアレイにおいて容量の異なるメモリセル複数個をテンプレートベクトル要素にアサインすることで、要素が多値で表現されるベクトルどうしの相関値演算を実現することができる。
【００４７】
［第４の実施の形態］
次に第４の実施の形態の相関値演算方法および装置につき説明する。主として、第１、第２および第３の実施の形態と異なる点につき説明する。
【００４８】
図１０は、第４の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す回路図である。この実施の形態では、第３の実施の形態と同様に、ベクトル要素が２ビット４値で表現される。このため、１つの要素を表現するために４個のメモリセルを用いている。図１０中、メモリセル対２４ａおよび２４ｂ（図８の構成と同じ）には、テンプレートベクトル要素ＴＶ［０］として｛−１，＋１｝が書き込まれている。入力ベクトル要素ＩＶ［０］が｛＋１，＋１｝なら、演算時にはワード線ＷＬ＜０＞およびＷＬ＜２＞が“Ｈ”となり、ワード線ＷＬ＜１＞およびＷＬ＜３＞が“Ｌ”となる。
【００４９】
また、この実施の形態では、演算結果を記憶しておくためのキャパシタＣ３およびＣ４が、スイッチＳ０、Ｓ１、Ｓ２を介してビット線ＢＬにそれぞれ接続される。下位ビット記憶用の２つのキャパシタＣ３は、それぞれスイッチＳ０およびＳ１を介してビット線ＢＬに接続される。上位ビット記憶用の２つのキャパシタＣ４は、それぞれスイッチＳ２を介してビット線ＢＬに接続される。キャパシタＣ３およびＣ４の容量は共にＣcellである。
【００５０】
図１１は、第４の実施の形態の相関値演算装置の動作タイミングを示すタイミングチャートである。図１０の構成を例にとり説明する。入力ベクトル要素ＩＶ［０］は｛＋１，＋１｝とする。
【００５１】
まず、タイミング▲１▼において上位ビット記憶用キャパシタと下位ビット記憶用キャパシタとをＶＤＤ／２にプリチャージする。
【００５２】
次に、入力ベクトルが入力され、対応するワード線ＷＬがデコードされると、タイミング▲２▼において信号ＥＱＳＡをオフにする（センスアンプＳＡとビット線基準電位ＶＢＬとの接続を解除する。）。最初に下位ビットに対応するワード線ＷＬが複数同時に活性化される。この例では、入力ベクトル要素ＩＶ［０］が｛＋１，＋１｝なので、初めにワード線ＷＬ＜０＞が“Ｈ”になる。このとき、ベクトルの要素数をｌ、下位ビットの一致数をｋ2 とすると、下位ビット演算前後で電荷の総和が保存されるため、次式（１１）が成り立つ。
【００５３】
ＣBLＶＤＤ／２＋ｋ2 ＣcellＶＤＤ＋ＣcellＶＤＤ＝（ＣBL＋（ｌ＋２）Ｃcell）Ｖ2   ・・・（１１）
これをビット線電位Ｖ2 について解くと、
Ｖ2 ＝ＶＤＤ／２＋（２ｋ2 −ｌ）ＣcellＶＤＤ／｛２（ＣBL＋（ｌ＋２）cell）｝  ・・・（１２）
となる。タイミング▲３▼において、スイッチＳ０、Ｓ１がオフになり、下位ビットの演算結果が保存され、ビット線ＢＬがプリチャージされる。
【００５４】
次にタイミング▲４▼において、スイッチＳ２をオンにし、上位ビットに対応するワード線ＷＬ＜２＞を活性化させる。この結果、上記と同様の演算が実行され、次式（１３）で表される上位ビットの演算結果Ｖ1 がビット線ＢＬ上に現れる。
【００５５】
ＣBLＶＤＤ／２＋ｋ1 ＣcellＶＤＤ＋ＣcellＶＤＤ＝（ＣBL＋（ｌ＋２）Ｃcell）Ｖ1   ・・・（１３）
ここで、上位ビットの一致数をｋ1 とする。（１３）式をビット線電位Ｖ1 について解くと、
Ｖ1 ＝ＶＤＤ／２＋（２ｋ1 −ｌ）ＣcellＶＤＤ／｛２（ＣBL＋（ｌ＋２）Ｃcell）｝  ・・・（１４）
となる。タイミング▲５▼において、スイッチＳ２をオフにすることで上位ビットの演算結果を記憶させ、ビット線ＢＬをプリチャージする。
【００５６】
タイミング▲６▼において、スイッチＳ１をオフにしたままスイッチＳ０、Ｓ２をオンにする。この結果、再び電荷が再分配されて、次式（１５）が成り立つ。
【００５７】
２ＣcellＶ1 ＋ＣcellＶ2 ＝（ＣBL＋３Ｃcell）Ｖ  ・・・（１５）
これをビット線電位Ｖについて解くと、次式（１６）で表されるように、記憶してあった上位ビットと下位ビットの重み付き線形和が相関値として得られる。
【００５８】
Ｖ＝ＶＤＤ／２＋２（２ｋ1 ＋ｋ2 −ｌ）（Ｃcell）2 ＶＤＤ／｛２（ＣBL＋３Ｃcell）（ＣBL＋（ｌ＋２）Ｃcell）｝  ・・・（１６）
この演算結果は相関値として差動増幅器を介して読み出される。
【００５９】
ビット線ＢＬに接続されるメモリセルの数は決まっており、この数を２ｎとすると、第３の実施の形態の例ではベクトル要素表現が２ビット、３ビット、・・・と増加するにつれ、ベクトル要素数ｍは２ｎ／６、２ｎ／１２、２ｎ／２０、・・・と急激に制限されていく。ところが、第４の実施の形態によれば、ベクトル要素表現が２ビット、３ビット、・・・と増加するにつれ、ベクトル要素数ｌは（２ｎ−２）／４、（２ｎ−３）／６、（２ｎ−４）／８、・・・となり、要素が多値で表現された場合でも多次元ベクトル演算が可能となる。
【００６０】
【発明の効果】
この発明の相関値演算方法によれば、メモリセルアレイの各メモリセルにテンプレートベクトルのベクトル要素を書き込んで、ビット線単位にテンプレートベクトルを記憶させておき、各ワード線を入力ベクトルのベクトル要素に応じて同時に活性化させることで、入力ベクトルとテンプレートベクトルの各々との相関値を演算する。
【００６１】
この方法によれば、メモリセルアレイのビット線上でベクトル間の相関値を演算することができる。この方法によれば、従来のように、メモリから相関値演算器にテンプレートベクトルをダウンロードする必要がない。したがって、相関値の計算時間が短縮化される。また、ダウンロード用の配線層が不要であるから、高集積化が実現できる。また、この方法によれば、テンプレートベクトルの変更も容易に行える。
【図面の簡単な説明】
【図１】第１の実施の形態の相関値演算装置を示す図である。
【図２】ＤＲＡＭのメモリ構成例を示す図である。
【図３】ビット線周辺の構成を示す図である。
【図４】第１の実施の形態の相関値演算装置の動作タイミングを示す図である。
【図５】第２の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す図である。
【図６】差動増幅器の構成を示す図である。
【図７】相関値演算およびテンプレートのリフレッシュ動作を示す図である。
【図８】第３の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す図である。
【図９】第３の実施の形態の相関値演算装置の動作タイミングを示す図である。
【図１０】第４の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す図である。
【図１１】第４の実施の形態の相関値演算装置の動作タイミングを示す図である。
【符号の説明】
１０：ＤＲＡＭメモリセルアレイ
１２：ＷＬドライバ
１４：センスアンプ
１６ａ，１６ｂ，１８，２０ａ，２４ａ，２４ｂ：メモリセル対
２２：リードアンプ
【図１】
0003761071.tif 000003
【図２】
0003761071.tif 000004
【図３】
0003761071.tif 000005
【図４】
0003761071.tif 000006
【図５】
0003761071.tif 000007
【図６】
0003761071.tif 000008
【図７】
0003761071.tif 000009
【図８】
0003761071.tif 000010
【図９】
0003761071.tif 000011
【図１０】
0003761071.tif 000012
【図１１】
0003761071.tif 000013