トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 相関値演算方法および相関値演算装置
【発明者】 【氏名】岡田 敦彦

【要約】 【課題】テンプレート数およびベクトル次元数が増加した場合でも高集積化が実現できるようにするとともに、メモリから相関値演算器へのテンプレートベクトルのダウンロード時間の増大も解消する。

【解決手段】相関値演算装置は、DRAMメモリセルアレイ10と、ワード線ドライバ12と、センスアンプ14とで構成される。ワード線ドライバは、ワード線WLを介してDRAMに接続される。このワード線ドライバは、複数のワード線を同時に活性化させることができる機能を有する。
【特許請求の範囲】
【請求項1】 メモリセルアレイの各メモリセルにテンプレートベクトルのベクトル要素を書き込んで、ビット線単位に前記テンプレートベクトルを記憶させておき、各ワード線を入力ベクトルのベクトル要素に応じて同時に活性化させることで、前記入力ベクトルと前記テンプレートベクトルの各々との相関値を演算することを特徴とする相関値演算方法。
【請求項2】 請求項1に記載の相関値演算方法において、前記メモリセルアレイをDRAMとすることを特徴とする相関値演算方法。
【請求項3】 請求項1に記載の相関値演算方法において、前記ワード線の活性化によって前記ビット線の各々に現れる電位を、前記相関値として取得することを特徴とする相関値演算方法。
【請求項4】 請求項1に記載の相関値演算方法において、前記テンプレートベクトルのベクトル要素を、2個の前記メモリセルを用いて書き込み、演算により消失する一方の前記メモリセルのデータを、演算に使用しないもう一方の前記メモリセルのデータを用いてリフレッシュすることを特徴とする相関値演算方法。
【請求項5】 請求項1に記載の相関値演算方法において、容量の異なる複数個のメモリセルをベクトル要素に割り当てることで、ベクトル要素が多ビットで表現されるベクトルどうしの相関値を演算することを特徴とする相関値演算方法。
【請求項6】 請求項1に記載の相関値演算方法において、前記メモリセルアレイを、演算結果を記憶するためのキャパシタを前記ビット線に接続したメモリセルアレイとし、前記相関値を上位ビットと下位ビットに分割して演算することを特徴とする相関値演算方法。
【請求項7】 メモリセルアレイと、複数のワード線を同時に活性化させることができるワード線ドライバとを備えることを特徴とする相関値演算装置。
【請求項8】 請求項7に記載の相関値演算装置において、前記メモリセルアレイをDRAMとすることを特徴とする相関値演算装置。
【請求項9】 請求項7に記載の相関値演算装置において、前記メモリセルアレイを、演算結果を記憶するためのキャパシタを前記ビット線に接続したメモリセルアレイとすることを特徴とする相関値演算装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】この発明は、入力ベクトルとテンプレートベクトルとの相関値を演算する方法に関する。
【0002】
【従来の技術】従来の相関値演算装置は、文献1「ISSCC Digest of Technical Papers, pp304-305, Feb., 1996.」、文献2「電子情報通信学会論文誌 D-I Vol.J81-D-I No2. pp51-61 1998年2月」および文献3「Proceedings of the 6th International Conference on Microelectronics for Neural Networks, Evolutionary & Fuzzy Systems(MicroNeuro'97), pp175-180, Sep., 1997.」に開示されるように、アソシエータ(Associator)と呼ばれる相関値演算器と、大容量メモリとで構成される。この装置では、メモリに記憶したテンプレートベクトル群を相関値演算器にダウンロードして、然る後、テンプレートベクトルと入力ベクトルとの相関値を計算する。相関値とは、テンプレートベクトルおよび入力ベクトルの各要素の差分絶対値の和である。相関値演算器は、テンプレートベクトルおよび入力ベクトルの各要素ごとに差分値を計算するための差分値演算器が配列された構成である。この差分値演算器は13個のトランジスタで構成される。
【0003】また、文献4「A.Okada,T.Shibata,"A NEURON-MOS Parallel ASSOCIATION FORHIGH SPEED CDMA MATCHED FILTER", 1999 IEEE International Symposium on Circuit and Systems(ISCAS 99)」には、相関値演算器にテンプレートベクトルをあらかじめ記憶させておく方式が開示されている。
【0004】
【発明が解決しようとする課題】しかしながら、文献1、文献2および文献3に開示の装置では、差分値演算器が13個ものトランジスタで構成されること、およびメモリから差分値演算器へ各要素ごとにベクトルをダウンロードする配線層が必要になることから、テンプレート数およびベクトル次元数が増加した場合の高集積化に問題がある。さらに、メモリから相関値演算器へのテンプレートベクトルのダウンロード時間が増大する問題もある。一方、文献4に開示の装置では、テンプレートベクトルを任意に変更することは非常に困難である。
【0005】
【課題を解決するための手段】そこで、この発明の相関値演算方法によれば、メモリセルアレイの各メモリセルにテンプレートベクトルのベクトル要素を書き込んで、ビット線単位にテンプレートベクトルを記憶させておき、各ワード線を入力ベクトルのベクトル要素に応じて同時に活性化させることで、入力ベクトルとテンプレートベクトルの各々との相関値を演算する。
【0006】この方法によれば、メモリセルアレイのビット線上でベクトル間の相関値を演算することができる。この方法によれば、従来のように、メモリから相関値演算器にテンプレートベクトルをダウンロードする必要がない。したがって、相関値の計算時間が短縮化される。また、ダウンロード用の配線層が不要であるから、高集積化が実現できる。また、この方法によれば、テンプレートベクトルの変更も容易に行える。
【0007】
【発明の実施の形態】以下、図を参照してこの発明の実施の形態につき説明する。なお、図は、この発明を理解できる程度に接続関係などを概略的に示すものに過ぎない。よって、この発明は図示例に限定されない。
【0008】[第1の実施の形態]図1は、第1の実施の形態の相関値演算装置を示すブロック図である。この装置は、DRAMメモリセルアレイ(以下、単にDRAMと称する。)10と、ワード線ドライバ(以下、WLドライバと称する。)12と、センスアンプ14とで構成される。WLドライバ12は、ワード線WLを介してDRAM10に接続される。このWLドライバ12は、複数のワード線WLを同時に活性化させることができる機能を有する。センスアンプ14は、ビット線BLを介してDRAM10に接続される。このセンスアンプ14は、ビット線BLの電位(アナログ値)を増幅し、相関値出力群として出力するものである。
【0009】図2は、DRAM10のメモリ構成例を示す図である。メモリセルアレイは、ワード線WLおよびビット線BLの交差点に1つずつ配置される。図2中、黒丸記号はVDD電圧で書き込まれたメモリセルを表し、白丸記号はVSS電圧で書き込まれたメモリセルを表す。テンプレートベクトルTV#0、TV#1、・・・はそれぞれビット線BL<0>、BL<1>、・・・上に記憶される。これらテンプレートベクトルのベクトル要素は、メモリセル対を用いて表現される。ここでは、ビット線に沿って、隣り合うワード線(偶数番目のワード線と奇数番目のワード線)にそれぞれ配置されたメモリセルを1要素としている。
【0010】図2の例では、例えばビット線BL<0>上の、ワード線WL<0>およびWL<1>それぞれに配置されたメモリセル(メモリセル対16a)で、テンプレートベクトルTV#0の1要素が表現される。同様に、ビット線BL<1>上の、ワード線WL<0>およびWL<1>それぞれに配置されたメモリセル(メモリセル対16b)で、テンプレートベクトルTV#1の1要素が表現される。メモリセル対16aのように、偶数番目のワード線に配置されたメモリセルアレイにVDDが書き込まれ、奇数番目のワード線に配置されたメモリセルアレイにVSSが書き込まれると“+1”のデータを表す。逆にメモリセル対16bのように、偶数番目のワード線に配置されたメモリセルアレイにVSSが書き込まれ、奇数番目のワード線に配置されたメモリセルアレイにVDDが書き込まれると“−1”のデータを表す。図2の例では、テンプレートベクトルTV#0は(1,1,−1,1)となり、テンプレートベクトルTV#1は(1,−1,1,−1)となる。
【0011】WLドライバ12は、入力ベクトルの各要素に応じてワード線WL対をそれぞれ活性化させる。図2に示すように、例えばワード線WL<0>およびWL<1>は、入力ベクトルの1要素IV[0]に応じて活性化される。例えば入力ベクトルのある要素が“+1”なら、偶数番目のワード線は“H”となり、奇数番目のワード線は“L”となる。逆に入力ベクトルのある要素が“−1”なら、偶数番目のワード線は“L”となり、奇数番目のワード線は“H”となる。
【0012】また、ビット線BLは以下のように構成される。図3は、ビット線周辺の構成を示す回路図である。ビット線BLの一端はセンスアンプSA(図1のセンスアンプ14に相当する。)に接続される。ビット線BLとワード線WLとの交差点それぞれに、トランジスタTrおよびキャパシタCで構成されたメモリセルが接続される。トランジスタTrのチャネルとキャパシタCとは、ビット線BLとグランド端子との間に、ビット線側からこの順序で直列に接続される。また、トランジスタTrのゲート電極は、対応するワード線WLに接続される。キャパシタCの容量はCcellである。
【0013】例えばワード線WL<0>およびWL<1>に配置されたメモリセル対18では、ワード線WL<0>側のキャパシタにVDDが書き込まれ、ワード線WL<1>側のキャパシタにVSSが書き込まれている。すなわち、メモリセル対18には“+1”のテンプレートベクトル要素TV[0]が書き込まれている。
【0014】以上の構成によれば相関値演算時には、入力ベクトルのある要素が、それに対応するテンプレートベクトルのある要素と一致すると、そのテンプレートに対応したビット線BLに電荷Q=Ccell・VDDが再分配される。
【0015】図3を参照して相関値演算の原理を説明する。ビット線BLの基準電位をVBLとし、一本のビット線に2n個のメモリセルが接続されるとする。相関値演算前におけるビット線BLおよび全メモリセルの電荷QBLおよびQcellはそれぞれ(1)式および(2)式で表される。
【0016】
BL=CBL・VDD/2 ・・・(1)
cell=nCcell・VDD+nCcell・VSS ・・・(2)
ここでCBLはビット線BLの容量である。入力ベクトルとテンプレートベクトルとが対比され、k個の要素が一致するとすれば、相関値演算後のそれぞれの電荷Q′BLおよびQ′cellは(3)式および(4)式で表される。
【0017】
Q′BL=CBL・V ・・・(3)
Q′cell=kCcellV+(n−k)CcellV+kCcell・VSS+(n−k)
cell・VDD ・・・(4)
ここでVは相関値演算後のビット線BLの電位である。電荷保存則より、QBL+Qcell=Q′BL+Q′cellが成り立ち、これをVについて解くと、 V=VDD/2+(2k−n)Ccell・VDD/{2(CBL+nCcell)}・・・(5)
となる。よって、要素の一致数kが大きいほどビット線BLの電位は増加する。
【0018】この電荷の増減は、電荷移動に寄与するセルのみに注目すると、次のように考えることができる。電荷の移動はベクトル要素が一致するセルからはQ=(+1)・Ccell・VDD/2、および一致しないセルからはQ=(−1)・Ccell・VDD/2の分だけ電荷が再分配されるため、電荷移動前の電荷の総和Qall は、(6)式となる。
【0019】
all =CBLVDD/2+{nCcellVDD/2+kCcellVDD/2 −(n−k)CcellVDD/2}
=(CBL+nCcell)VDD/2 +Σin(CcellVDD/2)IV[i]・TV[i]
=(CBL+nCcell)VDD/2 +CcellVDD/2・(IV#・TV#) ・・・(6)
ここでIV#、TV#はそれぞれ入力ベクトル、テンプレートベクトルを表しており、各要素IV[i]、TV[i]は+1か−1をとる。(6)式中、(IV#・TV#)=2k−nである。また、(6)式中、記号Σinは整数iをnまで変化させたときの各値の和を演算することを表す。一方、電荷移動後の総電荷量Q′all は、(7)式となる。
【0020】
Q′all =(CBL+nCcell)V ・・・(7)
電荷保存則により、Qall =Q′all が成り立ち、これをVについて解くと、 V=VDD/2+CcellVDD/{2(CBL+nCcell)}(IV#・TV#)・・・(8)
となる。(8)式の結果は(5)式の結果と同等である。本方式によれば、入力ベクトルとテンプレートベクトルとの内積を相関値として演算する相関値演算器の実現が可能となる。
【0021】図4は、第1の実施の形態の相関値演算装置の動作タイミングを示すタイミングチャートである。この相関値演算装置は図3の構成を有するものとする。
【0022】まず、ある入力ベクトルIVが入力されると、各要素に対応したワード線WLがデコードされる。次に、デコードされたワード線WLが複数同時に活性化され、電荷の再分配が実行される。この例では入力ベクトルIV{+1,+1,・・・,−1}に対し、ワード線WL<0>、WL<2>、・・・、WL<2n−1>が活性化される。その結果、相関値として上記(8)式に示されるビット線電圧Vが得られる。
【0023】以上のように、第1の実施の形態によれば、DRAMメモリセルアレイのビット線BL上でベクトル間の相関値を演算することができる。この方法によれば、従来のように、メモリから相関値演算器にテンプレートベクトルをダウンロードする必要がないので、相関値の計算時間が短縮化される。また、この方法によれば、テンプレートベクトルの変更も容易に行える。さらに、ダウンロード用の配線層が不要であるとともに、テンプレートベクトルがDRAMメモリセルアレイに記憶されるようにしたので、高集積化を実現することができる。
【0024】[第2の実施の形態]次に第2の実施の形態の相関値演算方法および装置につき説明する。主として、第1の実施の形態と異なる点につき説明する。
【0025】図5は、第2の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す図である。この実施の形態では、ビット線BLおよびBLBを対として使用する。これらビット線対BLおよびBLBはセンスアンプ(差動増幅器)SAに接続される。ビット線対上の、隣り合うワード線(偶数番目のワード線と奇数番目のワード線)にそれぞれ配置されたメモリセルを1要素とする。
【0026】図5の例では、例えばビット線BLおよびワード線WL<0>の交差点に配置されたメモリセルAと、ビット線BLBおよびワード線WL<1>の交差点に配置されたメモリセルBとでメモリセル対20aが構成される。このメモリセル対20aによってテンプレートベクトルの1要素TV[0]が表現される。図5中、黒丸記号はVDDが書き込まれたメモリセルを表し、白丸記号はVSSが書き込まれたメモリセルを表す。メモリセル対20aには“+1”が書き込まれている。
【0027】図6は、差動増幅器SAの構成を示す回路図である。差動増幅器SAは、インバータI1およびI2と、トランジスタT1およびT2と、スイッチング要素EQA、TG、EQSAおよびRCLと、リードアンプ22とで構成される。インバータI1およびI2はビット線BLおよびBLB間に互いに逆向きに並列に接続される。リードアンプ22は、RDB線およびRDBB線を介して、トランジスタT1およびT2の各チャネルにそれぞれ接続される。トランジスタT1のゲート電極はビット線BLに接続され、トランジスタT2のゲート電極はビット線BLBに接続される。スイッチング要素EQAはビット線BLおよびBLB間の接続・切断を行うものである。スイッチング要素TGはビット線BLおよびBLBの双方にそれぞれ直列に挿入されている。スイッチング要素EQSAはビット線BLおよびBLBの各々とビット線基準電位VBLとの接続・切断を行うものである。スイッチング要素RCLは、トランジスタT1とビット線BLとの間、およびトランジスタT2とビット線BLBとの間にそれぞれ挿入されている。以下の説明では、スイッチング要素EQA、TG、EQSAおよびRCLは、それぞれ信号EQA、TG、EQSAおよびRCLのオン(on)・オフ(off)によって開閉動作すなわち接続・切断動作を行うものとする。
【0028】図7は、相関値演算およびテンプレートのリフレッシュ動作を示すタイミングチャートである。初めにビット線対はビット線基準電位VBLにプリチャージされる。ビット線BLおよびBLBは接続されている。
【0029】入力ベクトルIVが入力されると、タイミング■において信号EQSAがオフになって、ビット線対のプリチャージが終了する。その後、入力ベクトルに対応するワード線WLが複数同時に活性化される。ワード線WLが活性化すると相関値が計算され、その計算結果がビット線対上に電圧ΔVとして現れる。このとき信号RCLをオンにすると、ビット線電圧に比例した電圧がリードアンプ22に出力される。
【0030】相関値演算が終了すると、タイミング■において再びビット線対がプリチャージされる。このとき、演算に用いたメモリセルは、電荷が再分配されているために演算前のデータを保持していない。そこで、テンプレートベクトルの各要素はメモリセル対によって構成されていることを利用して、テンプレートのリフレッシュを行う。図5のメモリセルA、Bと、ワード線WL<0>、WL<1>とを用いて、IV[0]=“+1”の場合のリフレッシュ動作を説明する。
【0031】タイミング■において信号EQA、TGおよびEQSAをオフにし、然る後、ある一つの入力ベクトル要素の反転に対応するワード線WLを活性化させる。図5の場合、ワード線WL<1>を活性化させる。その結果、ビット線BLB上にメモリセルBが保持する電荷が再分配され、微小電位差が現れる。
【0032】次にタイミング■において信号TGおよびSAEをオンにすると、微小電位差がフルレベルまで差動増幅され、ビット線BLにVDDがチャージされるとともに、ビット線BLBにVSSがチャージされる。その結果、メモリセルBにVSSがリフレッシュされる。
【0033】次にタイミング■において、ワード線WL<1>を非活性化させ、ワード線WL<0>を活性化させると、メモリセルAにVDDがリフレッシュされる。
【0034】最後に、タイミング■においてワード線WL<0>および信号SAEをオフにし、信号EQAおよびEQSAをオンにすることで、テンプレートベクトル要素TV[0]のリフレッシュを完了する。
【0035】タイミング■から■のリフレッシュ動作を全要素について行うことで、テンプレートベクトルのリフレッシュを実行することができる。
【0036】以上のように、第2の実施の形態によれば、テンプレートベクトルをリフレッシュするために新たな回路を設けることなく、一般的な差動増幅器SAを用いて実行することができる。
【0037】[第3の実施の形態]次に第3の実施の形態の相関値演算方法および装置につき説明する。主として、第1および第2の実施の形態と異なる点につき説明する。
【0038】図8は、第3の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す回路図である。この実施の形態では、ベクトル要素が2ビット4値で表現される。このため、1つの要素を表現するために4個のメモリセルを用いている。すなわち、上位ビットを記憶するために2個のメモリセルを用い、下位ビットを記憶するために2個のメモリセルを用いている。上位ビットに対応するメモリセルのキャパシタは、下位ビットに対応するキャパシタの2倍の容量を有する。
【0039】図8に示すように、ビット線BLの一端はセンスアンプSAに接続される。図3の構成と同様に、ビット線BLとワード線WLとの交差点それぞれに、トランジスタTrおよびキャパシタC1またはC2で構成されたメモリセルが接続される。
【0040】図8の例では、例えばワード線WL<0>およびWL<1>に配置されたメモリセル対24aがテンプレートベクトル要素TV[0]の下位ビットを記憶するためのメモリセルとして用いられる。メモリセル対24aを構成する各メモリセルは、それぞれトランジスタTrおよびキャパシタC1で構成される。キャパシタC1の容量はCcellである。
【0041】また、ワード線WL<2>およびWL<3>に配置されたメモリセル対24bがテンプレートベクトル要素TV[0]の上位ビットを記憶するためのメモリセルとして用いられる。メモリセル対24bを構成する各メモリセルは、それぞれトランジスタTrおよびキャパシタC2で構成される。キャパシタC2の容量は2Ccellである。
【0042】メモリセル対24aでは、ワード線WL<0>側のキャパシタにVDDが書き込まれ、ワード線WL<1>側のキャパシタにVSSが書き込まれている。すなわち、メモリセル対24aには“+1”が書き込まれている。一方、メモリセル対24bでは、ワード線WL<2>側のキャパシタにVSSが書き込まれ、ワード線WL<3>側のキャパシタにVDDが書き込まれている。すなわち、メモリセル対24bには“−1”が書き込まれている。したがって、メモリセル対24aおよび24bには、テンプレートベクトル要素TV[0]として{−1,+1}が書き込まれている。
【0043】そして、入力ベクトル要素IV[0]が{+1,+1}なら、演算時にはワード線WL<0>およびWL<2>が“H”となり、ワード線WL<1>およびWL<3>が“L”となる。上位ビットの一致数をk1 、下位ビットの一致数をk2 、ベクトル要素数をmとすれば、演算前後の電荷の総和が保存されるので下記の式(9)が成り立つ。
【0044】
BLVDD/2+2k1cellVDD+k2cellVDD=(CBL+3mCcell)V ・・・(9)
これをビット線電位Vについて解くと、 V=CBLVDD/2+{2(2k1 +k2 )−3m}CcellVDD/{2(CBL+3mCcell)} ・・・(10)
となる。よって、重み付けされた上位ビットと下位ビットの一致数の和に比例して、相関値としてのビット線電位が増加する。
【0045】図9は、第3の実施の形態の相関値演算装置の動作タイミングを示すタイミングチャートである。図8の構成を例にとり説明する。入力ベクトルは上位ビットと下位ビットにコンバートされ、対応するワード線にデコードされる。次に、デコードされたワード線WLが複数同時に活性化され、電荷の再分配が行われる。この例では、入力ベクトル要素IV[0]={+1,+1}に対して、ワード線WL<0>およびWL<2>が活性化される。その結果上記(10)式に示されるビット線電圧Vが相関値として得られる。
【0046】以上のように、第3の実施の形態によれば、DRAMメモリセルアレイにおいて容量の異なるメモリセル複数個をテンプレートベクトル要素にアサインすることで、要素が多値で表現されるベクトルどうしの相関値演算を実現することができる。
【0047】[第4の実施の形態]次に第4の実施の形態の相関値演算方法および装置につき説明する。主として、第1、第2および第3の実施の形態と異なる点につき説明する。
【0048】図10は、第4の実施の形態の相関値演算装置を構成するビット線周辺の構成を示す回路図である。この実施の形態では、第3の実施の形態と同様に、ベクトル要素が2ビット4値で表現される。このため、1つの要素を表現するために4個のメモリセルを用いている。図10中、メモリセル対24aおよび24b(図8の構成と同じ)には、テンプレートベクトル要素TV[0]として{−1,+1}が書き込まれている。入力ベクトル要素IV[0]が{+1,+1}なら、演算時にはワード線WL<0>およびWL<2>が“H”となり、ワード線WL<1>およびWL<3>が“L”となる。
【0049】また、この実施の形態では、演算結果を記憶しておくためのキャパシタC3およびC4が、スイッチS0、S1、S2を介してビット線BLにそれぞれ接続される。下位ビット記憶用の2つのキャパシタC3は、それぞれスイッチS0およびS1を介してビット線BLに接続される。上位ビット記憶用の2つのキャパシタC4は、それぞれスイッチS2を介してビット線BLに接続される。キャパシタC3およびC4の容量は共にCcellである。
【0050】図11は、第4の実施の形態の相関値演算装置の動作タイミングを示すタイミングチャートである。図10の構成を例にとり説明する。入力ベクトル要素IV[0]は{+1,+1}とする。
【0051】まず、タイミング■において上位ビット記憶用キャパシタと下位ビット記憶用キャパシタとをVDD/2にプリチャージする。
【0052】次に、入力ベクトルが入力され、対応するワード線WLがデコードされると、タイミング■において信号EQSAをオフにする(センスアンプSAとビット線基準電位VBLとの接続を解除する。)。最初に下位ビットに対応するワード線WLが複数同時に活性化される。この例では、入力ベクトル要素IV[0]が{+1,+1}なので、初めにワード線WL<0>が“H”になる。このとき、ベクトルの要素数をl、下位ビットの一致数をk2 とすると、下位ビット演算前後で電荷の総和が保存されるため、次式(11)が成り立つ。
【0053】
BLVDD/2+k2cellVDD+CcellVDD=(CBL+(l+2)Ccell)V2 ・・・(11)
これをビット線電位V2 について解くと、2 =VDD/2+(2k2 −l)CcellVDD/{2(CBL+(l+2)cell)} ・・・(12)
となる。タイミング■において、スイッチS0、S1がオフになり、下位ビットの演算結果が保存され、ビット線BLがプリチャージされる。
【0054】次にタイミング■において、スイッチS2をオンにし、上位ビットに対応するワード線WL<2>を活性化させる。この結果、上記と同様の演算が実行され、次式(13)で表される上位ビットの演算結果V1 がビット線BL上に現れる。
【0055】
BLVDD/2+k1cellVDD+CcellVDD=(CBL+(l+2)Ccell)V1 ・・・(13)
ここで、上位ビットの一致数をk1 とする。(13)式をビット線電位V1 について解くと、1 =VDD/2+(2k1 −l)CcellVDD/{2(CBL+(l+2)Ccell)} ・・・(14)
となる。タイミング■において、スイッチS2をオフにすることで上位ビットの演算結果を記憶させ、ビット線BLをプリチャージする。
【0056】タイミング■において、スイッチS1をオフにしたままスイッチS0、S2をオンにする。この結果、再び電荷が再分配されて、次式(15)が成り立つ。
【0057】
2Ccell1 +Ccell2 =(CBL+3Ccell)V ・・・(15)
これをビット線電位Vについて解くと、次式(16)で表されるように、記憶してあった上位ビットと下位ビットの重み付き線形和が相関値として得られる。
【0058】
V=VDD/2+2(2k1 +k2 −l)(Ccell2 VDD/{2(CBL+3Ccell)(CBL+(l+2)Ccell)} ・・・(16)
この演算結果は相関値として差動増幅器を介して読み出される。
【0059】ビット線BLに接続されるメモリセルの数は決まっており、この数を2nとすると、第3の実施の形態の例ではベクトル要素表現が2ビット、3ビット、・・・と増加するにつれ、ベクトル要素数mは2n/6、2n/12、2n/20、・・・と急激に制限されていく。ところが、第4の実施の形態によれば、ベクトル要素表現が2ビット、3ビット、・・・と増加するにつれ、ベクトル要素数lは(2n−2)/4、(2n−3)/6、(2n−4)/8、・・・となり、要素が多値で表現された場合でも多次元ベクトル演算が可能となる。
【0060】
【発明の効果】この発明の相関値演算方法によれば、メモリセルアレイの各メモリセルにテンプレートベクトルのベクトル要素を書き込んで、ビット線単位にテンプレートベクトルを記憶させておき、各ワード線を入力ベクトルのベクトル要素に応じて同時に活性化させることで、入力ベクトルとテンプレートベクトルの各々との相関値を演算する。
【0061】この方法によれば、メモリセルアレイのビット線上でベクトル間の相関値を演算することができる。この方法によれば、従来のように、メモリから相関値演算器にテンプレートベクトルをダウンロードする必要がない。したがって、相関値の計算時間が短縮化される。また、ダウンロード用の配線層が不要であるから、高集積化が実現できる。また、この方法によれば、テンプレートベクトルの変更も容易に行える。
【出願人】 【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
【出願日】 平成12年10月23日(2000.10.23)
【代理人】 【識別番号】100085419
【弁理士】
【氏名又は名称】大垣 孝
【公開番号】 特開2002−132748(P2002−132748A)
【公開日】 平成14年5月10日(2002.5.10)
【出願番号】 特願2000−322205(P2000−322205)