[実施の形態1]
図1は、この発明に従う半導体信号処理装置において用いられるユニット演算子セルの電気的等価回路を示す図である。このユニット演算子セルUOEは、SOI(シリコン・オン・インシュレータ:silicon on insulator)構造の素子(トランジスタ;以下、SOIトランジスタと称す)で構成される。図1において、ユニット演算子セルUOEは、2つのPチャネルSOIトランジスタPQ1およびPQ2と、2つのNチャネルSOIトランジスタNQ1およびNQ2を含む。SOIトランジスタPQ1およびPQ2は、それぞれ、書込ポートWPRTAおよびWPRTBとSOIトランジスタNQ1およびNQ2のボディ領域の間に接続され、それぞれのゲートが、書込ワード線WWLに結合される。
SOIトランジスタNQ1は、ソース線SLと読出ポートRPRTAの間に接続され、かつそのゲートが読出ワード線RWLAに接続される。SOIトランジスタNQ2は、SOIトランジスタNQ1と読出ポートRPRTBの間に接続されかつそのゲートが読出ワード線RWLBに結合される。
書込ポートWPRTAおよびWPRTBからの書込データDINAおよびDINBに従って、SOIトランジスタNQ1およびNQのボディ領域の電位が設定される。SOIトランジスタにおいては、ボディ領域の電位に応じて、そのしきい値電圧が異なる。すなわち、SOIトランジスタNQ1およびNQ2において、ボディ領域の電位が高い場合、SOIトランジスタNQ1およびNQ2のバックゲート−ソース間が、PN接合のビルトイン電圧以下の電圧レベルで正方向にバイアスされ、これらのSOIトランジスタNQ1およびNQ2のしきい値電圧が低くなる。一方、これらのSOIトランジスタNQ1およびNQ2のボディ領域の電位が低い場合には、そのしきい値電圧が高くなる。したがって、これらのSOIトランジスタNQ1およびNQ2は、そのボディ領域の電位に従って情報を記憶することができる。また、SOIトランジスタNQ1およびNQ2のボディ領域は、他の領域から分離されており、電源遮断時においてもデータを記憶することができる。
このボディ領域、すなわち記憶ノードSNAおよびSNBの電圧レベルは、書込ドライバの電源電圧等の調整により、正確にPN接合ビルトイン電圧以下のレベルとなるように設定することができ、記憶データに応じて確実にSOIトランジスタのしきい値電圧を設定することができる。
図2は、図1に示すユニット演算子セルの平面レイアウトを概略的に示す図である。図2において、破線で囲む領域にP型トランジスタが形成される。このP型トランジスタ形性領域において、高濃度P型領域1aおよび1bがY方向に沿って整列して配置される。P型領域1aおよび1bの間に、N型領域2aが配置される。
また、高濃度P型領域1cおよび1dが同じくY方向に沿って整列して配置される。これらのP型領域1cおよび1dの間に、N型領域2bが配置される。このP型領域1dに対してY方向に整列して、P型領域4aが配置される。
P型トランジスタ形成領域外部において、P型領域1dおよび4aに隣接して、高濃度N型領域3a、3bおよび3cが配置される。これらの高濃度N型領域3a、3bおよび3cは、Y方向に整列して配置される。
N型領域3aおよび3bの間に、P型トランジスタ形成領域からP型領域4aが延在して配置され、また、N型領域3bおよび3cの間に、P型トランジスタ形成領域からP型領域4bが延在して配置される。
N型領域2aおよび2b上に、ゲート電極配線5aがX方向に延在するように配置され、P型領域4a上にゲート電極配線5bが配置される。また、P型領域4b上に整列して、ゲート電極配線5cがX方向に延在するように配置される。図2においては、これらのゲート電極配線5a、5bおよび5cは、ユニット演算子セルUOE内の領域のみ延在するように示すが、これらは各々連続的にX方向に沿って延在して配置される。
ゲート電極配線5aと整列して、X方向に連続的に延在して第1金属配線6aが配置され、また、ゲート電極配線5cに整列して、第1金属配線6dがX方向に連続的に延在して配置される。これらの第1金属配線6aおよび6dの間に、X方向に連続的に延在する第1金属配線6bおよび6cが互いに間をおいて配置される。第1金属配線6aは、図示しない領域においてゲート電極配線5aと電気的に接続され、書込ワード線WWLを構成する。第1金属配線6bは、ビア/コンタクト8cを介して下層の高濃度N型領域3aに電気的に接続され、ソース線SLを構成する。ゲート電極配線5bに隣接して配置される第1金属配線6cは、図示しない領域においてゲート電極配線4aと電気的に接続され、読出ワード線RWLAを構成する。第1金属配線6dは、図示しない領域においてゲート電極配線5cと電気的に接続され、読出ワード線RWLBを構成する。
各活性領域(トランジスタが形成される領域)の境界領域において、Y方向に沿って連続的に延在する第2金属配線7a−7dが配置される。第2金属配線7aは、ビア/コンタクト8eおよび中間第1配線を介してN型領域3cに電気的に接続される。第2金属配線7bは、ビア/コンタクト8dおよび中間第1配線を介してN型領域3bに電気的に接続される。第2金属配線7cは、ビア/コンタクト8bおよび中間第1配線を介してP型領域1cに接続される。第2金属配線7dは、ビア/コンタクト8aおよび中間第1配線を介してP型領域1aに電気的に接続される。
第2金属配線7aおよび7bは、それぞれ読出ポートを介して出力データDOUTBおよびDOUTAを伝達し、第2金属配線7cおよび7dが、書込ポートを介してそれぞれ入力データDINAおよびDINBを伝達する。すなわち、第2金属配線7cおよび7dが、それぞれ、図1に示す書込ポートWPRTAおよびWPRTBに結合され、第2金属配線7aおよび7bが、それぞれ、図1に示す読出ポートRPRTBおよびRPRTAに結合される。
この図2に示す平面レイアウトにおいて、P型領域1aおよび1bとN型領域2aとゲート電極配線5aとにより、PチャネルSOIトランジスタPQ2が構成され、P型領域1cおよび1dとN型領域2bとゲート電極配線5aとにより、PチャネルSOIトランジスタPQ1が構成される。N型領域3aおよび3bとP型領域4aとゲート電極配線5bとにより、NチャネルSOIトランジスタNQ1が構成される。N型領域3bおよび3cとP型領域4bと上層のゲート電極配線5cとにより、NチャネルSOIトランジスタNQ2が構成される。
図3は、図2に示す平面レイアウトのSOIトランジスタPQ1およびNQ1の斜視図を概略的に示す図である。図3においては、図面を簡略化するために、これらのSOIトランジスタPQ1およびNQ1のゲート電極配線を示していない。
図3に示すように、SOIトランジスタPQ1およびNQ1は、半導体基板10上に形成される埋込絶縁膜12上に形成される。P型領域1cが、書込ポートWPRTAに結合され、N型領域3aがソース線SLに結合され、N型領域3bが読出ポートRPRTAに結合される。N型領域3aおよび3bの間のP型領域4aが、SOIトランジスタNQ1のボディ領域を構成する。P型領域4aは、高濃度P型領域1dに隣接して配置されており、したがって、P型領域1dおよび4aは、電気的に連結された状態にある。また、N型領域2bが、SOIトランジスタPQ1のボディ領域を構成する。
SOIトランジスタPQ1において、ボディ領域(N型領域)2b表面にチャネルを形成することにより、書込ポートWPRTAから伝達される電荷が、P型領域1dを介してP型領域4aに伝達されて蓄積される。SOIトランジスタNQ1のボディ領域の電圧を書込データに応じた電圧レベルに設定し、そのしきい値電圧を記憶データに応じたレベルに設定する。N型領域3bは、プリチャージノードを構成し、P型領域4aの電圧レベルに拘わらず、領域4aおよび3bの間のPN接合が導通しない電圧レベルに維持される。また、ソース線SLは、通常、電源電圧VCCレベルに維持され、ボディ領域とソース線との間のPN接合の導通は防止される。
データの読出時においては、SOIトランジスタNQ1のボディ領域上に形成されるゲート電極配線にハイレベルの電圧を印加する。このゲート電極の印加電圧により、P型領域4a表面に選択的に記憶データに応じてチャネルが形成され、ソース線SLから読出ポートRPRTAに、記憶データに応じた電流が流れる。この電流を検出することによりデータを読出す。ボディ領域(P型領域)4aに蓄積される電荷は保存されたままであり、データを不揮発的に記憶することができる。
また、ソース線SLからのSOIトランジスタNQ1およびNQ2のしきい値電圧に応じた電流量を検出するだけであり、高速のデータの読出を行なうことができる。
図4は、この発明の実施の形態1に従う半導体信号処理装置の全体の構成を概略的に示す図である。図4において、演算子セルアレイ20は、複数の演算子セルサブアレイブロックOAR0−OAR31に分割される。図4においては、演算子セルアレイ20が、32個の演算子セルサブアレイブロックに分割される構成を一例として示すが、このサブアレイブロックの数は、32に限定されない。
演算子セルサブアレイブロックOAR0−OAR31においては、ユニット演算子セル(UOE)が行列状に配列され、また、各ユニット演算子セル列に対応してダミーセルが配置される。ダミーセルの供給する電流を参照電流として用いて、ユニット演算子セルの記憶データを読出す。
演算子セルアレイ20に対し、行選択駆動回路22が設けられる。この行選択駆動回路22は、演算子セルサブアレイブロックOAR0−OAR31それぞれに対応して設けられている行ドライブ回路XDR0−XDR31を含む。これらの行ドライブ回路XDR0−XDR31は、対応の演算子セルサブアレイブロックにおいてユニット演算子セル行を選択する。したがって、行ドライブ回路XDR0−XDR31は、行アドレス信号をデコードする行アドレスデコード回路、データ読出時に読出ワード線を選択的状態に駆動する読出ワード線ドライブ回路、およびデータ書込時に書込ワード線を選択状態へ駆動する書込ワード線ドライブ回路を含む。
演算内容に応じて、図1に示す読出ワード線RWLAおよびRWLB両者を並行して選択状態に駆動するまたは読出ワード線RWLAのみを選択状態へ駆動する処理が実行される。
演算子セルアレイ20のデータ入出力経路に、メインアンプ回路24、組合せ論理演算回路26およびデータパス28が設けられる。メインアンプ回路24は、演算子セルサブアレイブロックOAR0−OAR31の各ユニット演算子セル列に対応して設けられるメインアンプを含む。メインアンプ回路24において、各メインアンプが演算子アレイ20において選択された演算子セルサブアレイブロックから読出されたデータを並列に増幅する。これにより、演算子セルアレイ20において選択された演算子セルサブアレイブロックのエントリ(1行のユニット演算子セルで構成される)のデータを、各選択ユニット演算子セルごとに並列に増幅する。
組合せ論理演算回路26は、メインアンプ回路24から転送された選択ユニット演算子セルのデータに対し、指定された論理演算および/または算術演算処理をさらに実行する。論理演算としては、OR演算、XOR演算、およびXNOR演算などの組合せ論理演算が準備され、算術演算処理としては、加算および減算が準備される。この組合せ論理演算回路26は、選択されたユニット演算子セルの記憶データを、メインアンプを介して受け、メインアンプの出力信号をレジスタ等を介して論理変更することなく出力することもできる。
データパス28は、メインアンプ回路14および/または組合せ論理演算回路26からの転送データの経路の設定および外部へのデータDOUT[m:0]の出力および外部からの入力データDINA[m:0]およびDINB[m:0]からユニット演算子セルに対する書込データの生成および書込データ転送経路の設定を行う。
入力データDINA<m:0>およびDINB<m:0>は、装置外部から転送され、データパスにおいて経路設定された後に、それぞれユニット演算子セルのSOIトランジスタNQ1およびNQ2のボディ領域に書込まれる。データパス28における書込データの転送経路の設定およびデータの反転/非反転を、選択的に実行する。これにより、選択された演算子セルサブアレイブロックのユニット演算子セルを利用する外部入力データに対する演算処理内容を設定する。
なお、半導体信号処理装置における内部演算処理の設定およびデータ転送経路の設定および動作タイミング制御は、制御回路30により実行される。この制御回路30は、プログラム命令を格納する命令メモリを含み、この命令メモリ内のプログラムに従って内部の演算指定および内部タイミングの生成を行なってもよい。また、これに代えて、この制御回路30は、外部からの命令に従って内部のデータ転送経路の設定および内部動作タイミングの生成を行なってもよい。
図5は、図4に示す演算子セルアレイ20およびメインアンプ回路14の構成をより具体的に示す図である。図5においては、演算子セルアレイ20に含まれる演算子セルサブアレイブロックOARiおよびOARjを代表的に示す。また、これらの演算子セルサブアレイブロックOARiおよびOARjは同一構成を有するため、図5においては、演算子セルサブアレイブロックOARiの内部構成を示す。
図5において、演算子セルサブアレイブロックOARiは、ユニット演算子セルUOEおよびダミーセルDMCが配置されるメモリセルアレイ32と、センスアンプSAが配置されるセンスアンプ帯38とを含む。メモリセルアレイ32においては、ダミーセルDMCが配置されるダミーセル帯34と、ユニット演算子セルUOEの読出ポートを選択するための読出ポート選択回路36とが設けられる。
ユニット演算子セル列に対応してビット線対BLPが配置される。ユニット演算子セルUOEは、前述のように、読出ポートRPRTAおよびRPRTBを有し、各ビット線対BLPは、対応の列のユニット演算子セルの各読出ポートRPRTAおよびRPRTBに結合される読出ビット線BLAおよびBLB(BLA/B)と、ダミーセルDMCが接続される補の読出ビット線ZBLとを含む。読出ポート選択回路36により、読出ビット線BLAおよびBLBの一方が選択される。
センスアンプ帯38の各センスアンプSAは、読出ポート選択回路36により選択されたビット線BLA/Bと補のビット線ZBLを流れる電流量を検出し、該検出結果に応じた信号を生成する。
センスアンプ帯38の各センスアンプSAは、グローバル読出データ線対RGLPに結合される。グローバル読出データ線対RGLPは、複数の演算子セルサブアレイブロックに共通にかつ各演算子セルサブアレイブロックのセンスアンプに対応して配置され、選択された演算子セルサブアレイブロックのセンスアンプSAの出力を、メインアンプ回路24に含まれるメインアンプMAに伝達する。
演算子セルサブアレイブロックOAR(OAR0−OAR31)に共通に、グローバル書込データ線対WGLPが配置される。グローバル書込データ線対WGLPは、グローバル書込データ線WGLAおよびWGLBを含み、これらの書込データ線WGLAおよびWGLBは、選択された演算子セルサブアレイブロックのユニット演算子セルの書込ポートWPRTAおよびWPRTBにそれぞれ結合される。従って、このグローバル書込データ線対も、各演算子セルサブアレイブロックのユニット演算子セル列に対応して配置される。
メインアンプ回路24においては、グローバル読出データ線対RGLPそれぞれに対してメインアンプMAが設けられる。図5においては、メインアンプMAが、データP<0>−P<4m+3>を生成する場合、すなわち、グローバル読出データ線対RGLPが(4m+4)個配置される場合を一例として示す。外部からの入力データは、(m+1)ビット幅である(図4参照)。すなわち、この半導体信号処理装置(組合わせ論理演算回路26)においては、内部で、外部入力データ1ビット当たり、4つのセンスアンプSAの出力を利用して指定された組合せ論理演算または算術演算を実行する。
図6は、図5に示す演算子セルサブアレイブロックOARiの具体的構成の一例を示す図である。図6においては、ユニット演算子セルUOE0およびUOE1に関連する部分の構成を代表的に示す。図6において、ユニット演算子セルUOE0に対し、読出ビット線RBLA0およびRBLB0とグローバル書込データ線WGLB0およびWGLA0が設けられる。グローバル書込データ線WGLA0およびWGLB0は、それぞれユニット演算子セルUOE0の書込ポートWPRTAおよびWPRTBに結合される。このユニット演算子セルUOE0の読出ポートRPRTAおよびRPRTBは、読出ビット線RBLA0およびRBLB0に、それぞれ結合される。これらの読出ビット線RBLA0およびRBLB0は、図5に示すビット線BLA/Bに対応する。
ユニット演算子セルUOE0に対応してダミーセルDMC0が配置される。ダミーセルDMC0は、基準電圧Vrefを供給する基準電圧現と補の読出ビット線ZRBL0との間に接続されるダミートランジスタDTAと、基準電圧源と補の読出ビット線ZRBL0との間に直列に接続されるダミートランジスタDTB0およびDTB1を含む。ダミートランジスタDTAは、ダミーセル選択信号DCLAに従って導通し、補の読出ビット線ZRBL0に基準電圧Vrefから電流を供給する。ダミートランジスタDTB0およびDTB1は、ダミーセル選択信号DCLBに従って導通し、基準電圧源Vrefから補の読出ビット線ZRBL0に電流を供給する。これらのダミートランジスタDTAおよびDTB0およびDTB1は、低しきい値電圧を有するNチャネルSOIトランジスタで構成される。
ダミーセルDMC0およびDMC1において、ポートA選択時には、ダミートランジスタDTAが導通し、ポートB選択時には、ダミートランジスタDTB0およびDTB1が利用される。これは、ユニット演算子セルUOEにおいて、1つのNチャネルSOIトランジスタおよび2つの直列SOIトランジスタが利用される構成に対応して、それぞれ参照電流を生成するためである。
基準電圧源Vrefの供給する基準電圧Vref(電源と供給電圧とを同一参照符号で示す)は、ユニット演算子セルUOE0に含まれるSOIトランジスタNQ1およびNQ2が、高しきい値電圧および低しきい値電圧時にそれぞれ供給する電流の中間の電流を供給する。読出ビット線RBLA0およびRBLB0に対し、ポート接続回路PRSW0が設けられる。ポート接続回路PRSW0は、ポート選択信号PRMXに従って読出ビット線RBLA0およびRBLB0の一方を、センス読出ビット線RBL0に接続する。補の読出ビット線ZRBL0は、センスアンプSAに結合される。
センス読出ビット線RBL0およびZRBL0の間にセンスアンプSA0、ビット線プリチャージ/イコライズ回路BLEQ0および読出ゲートCSG0が設けられる。センスアンプSA0は、交差結合されるNチャネルSOIトランジスタおよび交差結合されるPチャネルSOIトランジスタと、センスアンプ活性化信号/SOPおよびSONに従ってそれぞれ選択的に導通するセンス活性化PチャネルSOIトランジスタおよびセンス活性化NチャネルSOIトランジスタを含む。センス活性化SOIトランジスタは、導通時に、センス電源ノード(交差結合されるSOIトランジスタが結合される電源ノード)にセンス電源電圧VBLおよび接地電圧を供給する。センス電源電圧VBLは、電源電圧VCCレベルであっても良く、中間電圧レベルであっても良い。センス電源電圧VBLは、読出ワード線の選択時の電圧レベルであればよい。
このセンスアンプSA0は、交差結合型のセンスアンプであり、読出ビット線RBL0およびZRBL0上の電位差を差動的に増幅する。センスアンプSA0は、非特許文献1に示されるようにゲートとボディ領域とが結合されるSOIトランジスタで構成されてもよい。また、センスアンプSAとしては、センス読出ビット線RBLおよびZRBLを流れる電流のミラー電流を生成するカレントミラー動作を利用する電流検出型のセンスアンプが用いられても良い。
ビット線プリチャージ/イコライズ回路BLEQ0は、ビット線プリチャージ指示信号BLPに従って、読出ビット線ZRBL0およびRBL0に、ビット線プリチャージ電圧VPCを供給する。このビット線プリチャージ電圧VPCは、ユニット演算子セルUOE内のNチャネルSOIトランジスタNQ1およびNQ2の読出ポートとボディ領域の間のPN接合が、そのボディ領域の電圧レベルに拘わらず非導通状態に維持される電圧レベルである。
読出ゲートCSG0は、読出ゲート選択信号(演算子セルサブアレイブロック選択信号)CSLに従って、センス読出ビット線RBL0およびZRBL0を、グローバル読出データ線RGL0およびZRGL0に結合する。
なお、センスアンプ帯38に含まれるセンスアンプSA0、ビット線プリチャージ/イコライズ回路BLEQ0および読出ゲートCSG0を構成するトランジスタは、SOIトランジスタでなく、通常の半導体基板領域表面に形成されるバルク型のMOSトランジスタで構成されてもよい。
ユニット演算子セルUOE1に対しても、ダミーセルDMC1およびポート接続回路PRSW1が設けられ、また、センスアンプSA1、ビット線プリチャージ/イコライズ回路BLEQ1および読出ゲートCSG1が設けられる。これらのセンスアンプSA0、SA1は、共通にセンスアンプ活性化信号/SOPおよびSONに応答して選択的に活性化され、またビット線プリチャージ/イコライズ回路BLEQ0およびBLEQ1も、同様ビット線プリチャージ指示信号BLPの活性化時活性化される。読出ゲートCSG1も、読出ゲートCSG0と同様、読出ゲート選択信号CSLに従って導通する。
この図6に示すように、メモリセルアレイ32においては、ユニット演算子セルUOE0、UOE1…が並行して選択状態に駆動され、また、ダミーセルDMC0、DMC1…についても、ダミーセル選択信号DCLAおよびDCLBのいずれかに従って選択的に参照電流を対応の補の読出ビット線ZRBL0およびZRBL1に供給する。したがって、メモリセルアレイ32において、1エントリのユニット演算子セルのUOEのデータの並列読出が行なわれ、また並列書込が実行される。
なお、ポート選択信号PRMXは多ビット信号であり、各ビット線対ごとに、その接続を設定することができる。後に説明するように、演算は、4ビット線対を1つの単位として実行される。通常、各演算単位において同一の演算が実行されるため、ポート選択信号PRMXとしては、最小4ビットの制御信号が準備されればよい(1ビット線対あたり1ビットの選択制御信号を準備する)。
図7は、図4に示すデータパス28の構成の一例を概略的に示す図である。図7において、データパス28は、グローバル書込データ線対WGLPそれぞれに対応して配置されるデータパス単位ブロックDPUBを含む。図7においては、4つのグローバル書込データ線対WGLP0−WGLP3それぞれに対して設けられるデータパス単位ブロックDPUB0−DPUB3を代表的に示す。これらの4つのデータパス単位ブロックDPUB0−DPUB3により、データパス演算単位グループ44が形成される。このデータパス演算単位グループ44は、外部データの1ビットについての演算を担当する。
データパス単位ブロックDPUB0は、組合せ論理演算回路(26)からのデータビットQ0を格納するレジスタ50と、レジスタ50の格納データをバッファ処理して外部の1ビット出力データDOUT0を生成するバッファ51と、レジスタ50の格納値を反転するインバータ53および55と、外部からの1ビット書込データDINA0およびDINB0をそれぞれ反転するインバータ52および54を含む。
データパス単位ブロックDPUB0は、さらに、レジスタ50の格納値、インバータ52および53の出力値および外部からの入力データビットDINA0の1つを切換制御信号MXASに従って選択するマルチプレクサ(MUXA)56と、レジスタ50の格納値、インバータ55および54の出力値、および外部からの書込データビットDINB0の1つを切換制御信号MXBSに従って選択するマルチプレクサ(MUXB)57と、マルチプレクサ56および57の選択データに従ってグローバル書込データ線対WGLP0の書込データ線WGLAおよびWGLBをそれぞれ駆動するグローバル書込ドライバ58および59を含む。
このデータパス単位ブロックDPUB0においては、外部からの書込データビットの反転値、非反転値および組合せ論理演算回路からの対応の出力ビットQ0の1つを選択して書込データ線WGLAへ伝達へ伝達する。また、グローバル書込データ線WGLBへも、レジスタ50からのデータビット、および外部からの書込データビットDLB0の反転値および非反転値のいずれかを選択して伝達する。
残りのデータパス単位ブロックDPUB1−DPUB3においても、このデータパス単位ブロックDPUB0と同様の構成が設けられる。ただし、データパス単位ブロックDPUB1−DPUB3においては、レジスタ50の出力部に、バッファ51は設けられない。すなわち、対応の組合せ論理演算回路からのデータビットQ1−Q3は、外部へのデータとしては出力されない。また、これらのデータパス単位ブロックDPUB1−DPUB3においては、レジスタ50は設けられなくても良い。データパス単位ブロックDPUB0のレジスタ50の格納値が、これらのデータパス単位ブロックDPUB1−DPUB3に転送される。
これらのデータパス単位ブロックDPUB0−DPUB3へは、共通に外部からの1ビット書込データDINA0およびDINB0が共通に与えられる。レジスタ50の格納値が、データパス単位ブロックDPUB1−DPUB3に対して共通に与えられる。
切換制御信号MXASおよびMXBSは、各データパス単位ブロックごとに与えられ、各データパス単位ブロックにおいてマルチプレクサ56および57の選択態様が個々に設定される。データパス演算単位グループ44ごとに共通の演算を実行する場合、これらの切換制御信号MXASおよびMXBSとしては、4系統の切換制御信号が準備されればよい(1系統が1データパス単位ブロックに割当てられる)。
図8は、図7に示すデータパス28の全体の構成を概略的に示す図である。図8において、データパス28内に、データパス演算単位グループ44<0>−44<m>が配置される。これらのデータパス演算単位グループ44<0>−44<m>は、各々、データパス単位ブロックDPUB0−DPUB3を含む。
データパス演算単位グループ44<0>に対し、外部からのデータビットDINA<0>およびDINB<0>が与えられ、1ビット出力データDOUT<0>が生成される。図8において、「*i>:MUXA/B<i>」は、データパス単位ブロックに含まれるマルチプレクサ(MUXA,MUXB)56,57を示す。データパス28は、外部からの(m+1)ビットデータを、内部(4m+4)ビットのデータに変換する。内部の4ビットデータが、内部での演算単位である。
マルチプレクサMUXA/B<3:0>(マルチプレクサ56,57)により、データパス演算単位グループ44<0>の各データパス単位ブロックDPUB0−DPUB3のデータ伝搬/変換経路が決定され、内部データビットDP<0>−DP<3>が対応のグローバル書込データ線にグローバル書込ドライバ58,59を介して伝達される。
同様、データパス演算単位グループ44<1>、…、44<m>に対しても、外部からの書込データビットDINA<1>、DINB<1>、…、DINA<m>、DIMB<m>が与えられ、それぞれ内部のマルチプレクサ(MUXAおよびMUXB)により、書込データDP<4>−DP<7>、…、DP<4m>−DP<4m+3>が生成され、対応のグローバル書込データ線対に対応のグローバル書込ドライバ(58,59)を介して伝達される。
また、データパス28へは、組合せ論理演算回路26からのデータビットが各データパス演算単位グループのデータパス単位ブロックDPUB0−DPUB3に与えられる。しかしながら、外部へのデータビットDOUT<0>−DOUT<m>としては、データパス演算単位グループ44<0>−44<m>それぞれにおいて1つのデータパス単位ブロックDPUB4i(i=0−m)から、出力データビットDOUT<0>−DOUT<m>が出力される。
したがって、各データパス演算単位グループにおいて4ビットデータを、外部からの書込データビットに従って生成し、1演算単位グループ当たり最大4つのユニット演算子セルの記憶データに基づいて演算処理を実行し、各種組合せ論理演算および算術演算を実現する。
図9は、図5に示す組合せ論理演算回路の構成の一例を概略的に示す図である。この組合せ論理演算回路26においては、データパス28の構成と同様、4つのメインアンプの出力信号に対し1つの単位演算ブロックUCLが配置される。図9においては、メインアンプの出力信号(データ)P<4k>−P<4k+3>に対して設けられる単位演算ブロックUCL4kの構成を代表的に示す。ただし、kは、0−mのいずれかの整数である。
図9において、単位演算ブロックUCL4kは、対応のメインアンプの出力信号P<4k>−P<4k+3>をそれぞれ受けるバッファBFF0−BFF3と、これらのメインアンプの出力信号(ビット)P<4k>−P<4k+3>をそれぞれ受けるインバータIV0−IV3とを含む。これらのバッファBFF0−BFF3およびインバータIV0−IV3により、メインアンプの出力信号P<4k>−P<4k+3>の非反転信号および反転信号を、それぞれ生成することができる。
単位演算ブロックUCL4kは、さらに、2入力ORゲートOG0、3入力ORゲートOG1、および4入力ORゲートOG2を含む。2入力ORゲートOG0は、メインアンプの出力信号P<4k>およびP<4k+1>を受ける。3入力ORゲートOG1は、メインアンプの出力信号P<4k>、P<4k+1>およびP<4k+2>を受ける。4入力ORゲートOG2は、メインアンプの出力信号P<4k>−P<4k+3>を受ける。
単位演算ブロックUCL4kは、さらに、5入力マルチプレサ60a、2入力マルチプレクサ62a−62d、およびデマルチプレクサ63を含む。マルチプレクサ60aは、バッファBFF0、インバータIV0、およびORゲートOG0−OG2の出力信号を受けロジック指示信号LGPSに従って1つの信号を選択する。
マルチプレクサ62aは、バッファBFF1およびインバータIV1の出力信号の1つを選択してビットQ<4k>を生成し、マルチプレクサ62bは、バッファBFF2およびインバータIV2の出力信号の1つを選択してビットQ<4k+1>を生成し、マルチプレクサ62cは、バッファBFF3およびインバータIV3の出力信号の1つを選択してビットQ<4k+3>を生成する。これらのマルチプレクサ62a−62cの選択態様も、ロジックパス指示信号LGPSに従って設定される。
デマルチプレクサ63は、ロジックパス指示信号LGPSに従って、マルチプレクサ60aの出力信号(データ)を、4ビット加算/減算処理回路64およびマルチプレクサ62dの一方に伝達する。マルチプレクサ62dは、デマルチプレクサ63および4ビット加算/減算処理回路64の出力する1ビットの一方を選択して出力ビットQ<4k>として出力する。
4ビット加算/減算処理回路64は、8個の単位演算ブロックのデマルチプレクサ63の出力ビットG<4k>−G<4(k+7)>について加算または減算を実行する。4ビット加算/減算時においては、出力はキャリー/ボローを含めて5ビットである。図9に示す構成においては、4ビット加算/減算処理回路44を利用して乗算を積和加算(部分積の加算)により実行する場合を考慮して、出力8ビットを準備する。
図10は、ユニット演算子セルのBポート選択時のセンスアンプに対するトランジスタの接続態様を概略的に示す図である。図10において、ユニット演算子セルにおいては、読出BポートRPRTB選択時、ソース線SLとセンス読出ビット線RBLの間にNチャネルSOIトランジスタNQ1およびNQ2が直列に接続される。同様に、ダミーセルについても、ダミートランジスタDTB0およびDTB1が基準電圧源と補の読出ビット線ZRBLの間に直列に接続される。これらのセンス読出ビット線RBLおよびZRBLがセンスアンプSAに結合され、センスアンプSAによりこれらのセンス読出ビット線RBLおよびZRBLの電位差または電流差が増幅され、センス出力信号SOUTおよび/SOUTが生成される。
図11は、図10に示すユニット演算子セルおよびダミーセルの接続態様におけるデータ読出時の動作を示す信号波形図である。以下、図11を参照して、図10に示すユニット演算子セルUOEおよびダミーセルDMCの読出動作について説明する。
なお、以下の説明において、SOIトランジスタNQ1およびNQ2が、しきい値電圧の高い状態をデータ“0”を記憶する状態に対応付け、しきい値電圧の低い状態をデータ“1”を記憶する状態に対応付ける。
プリチャージ期間においては、読出ビット線RBLおよび補の読出ビット線ZRBLは、図6に示すビット線プリチャージ/イコライズ回路BLEQにより、プリチャージ電圧VPCレベルにプリチャージされる。
読出サイクルが始まると、読出ワード線RWLAおよびRWLBとダミーセル選択信号DCLBが選択状態へ駆動される。ソース線SL上の電圧はたとえば電源電圧VCCレベルであり、ダミーセルDMCに供給される基準電圧Vrefよりも高い電圧レベルである。SOIトランジスタNQ1およびNQ2の一方がデータ“0”を格納している場合、そのしきい値電圧は大きく電流量は少ない。一方、SOIトランジスタNQ1およびNQ2がともにデータ“1”を格納する場合、そのしきい値電圧は低く、大きな電流を流す。
したがって、SOIトランジスタNQ1およびNQ2が、ともにデータ“1”を記憶している場合、ソース線SLから読出ポートRPRTBを介してセンス読出ビット線RBLに、大きな電流が流れる。ダミーセルDMCにおいては、ダミートランジスタDTB0およびDTB1を介して基準電圧源Vrefから補のセンス読出ビット線ZRBLに電流が流れる。基準電圧Vref(電圧源とその電圧を同一参照符号で示す)は、ソース線SLに供給される電圧(電源電圧VCCレベル)とビット線プリチャージ電圧VPCの間の電圧レベルである。この状態においては、ユニット演算子セルUOEからの電流量が、ダミーセルDMCからの電流量よりも大きく、センス読出ビット線RBLの電位は、補のセンス読出ビット線ZRBLの電位よりも高くなる。
一方、SOIトランジスタNQ1およびNQ2の少なくとも一方がデータ“0”を格納している場合、ダミーセルDMCが補のセンス読出ビット線ZRBLへ供給する電流量が、ユニット演算子セルUOEが供給する電流量よりも大きくなる。この電流量の差により、センス読出ビット線RBLの電位は、補のセンス読出ビット線ZRBLの電位よりも低くなる。
この状態で、センスアンプ活性化信号/SOPおよびSONをLレベルおよびHレベルにそれぞれ変化させ、センスアンプSAを活性化する。センス読出ビット線RBLおよびZRBLに読出されたデータ(電位または電流量)が、センスアンプSAにより差動増幅される。
センスアンプSAのハイレベル出力電圧は、センスハイ側電源電圧VBCの電圧レベルであり、図11に示す波形図においては、プリチャージ電圧VPCの2倍の電圧レベルである。ボディ領域(記憶ノード)のPN接合においてはビルトイン電圧以下の電圧が印加されるだけであり、ボディ領域のPN接合の導通による記憶データの破壊は生じない。
これにより、センスアンプSAのハイ側電源電圧VBCのレベルの電圧が、センス読出ビット線RBLおよびZRBLのいずれかに伝達されても、SOIトランジスタNQ1およびNQ2およびダミートランジスタDTBのボディ領域におけるPN接合が順バイアスされてボディ領域に電荷が流入するのは回避され、記憶データの破壊を生じさせることなく、正確に、センス動作を行なうことができる。
この後、図6に示す読出ゲートCSGを読出ゲート選択信号CSLにより選択して、対応のメインアンプ(MA)にセンスアンプSAの出力信号を伝達する。
なお、データの読出は、非破壊読出であり、記憶データの再書き込みを行うリストア期間は要求されない。したがって、センスアンプ動作前に読出ワード線RWLAおよびRWLBが、非選択状態に駆動されても良い。リストア期間をなくすことにより読出サイクルを短縮することができる。
図12は、図10に示すユニット演算子セルUOEおよびダミーセルDMCの選択態様における記憶データとセンスアンプの出力信号の論理値の関係を一覧にして示す図である。
図12に示すように、SOIトランジスタNQ1およびNQ2がともにデータ“1”を格納しているときのみ、ユニット演算子セルUOEは、ダミーセルDMCよりも大きな電流を供給するため、センスアンプの出力信号SOUTは、“1”となる。一方、SOIトランジスタNQ1およびNQ2の少なくとも一方がデータ“0”を格納している場合には、ダミーセルDMCが供給する電流が、ユニット演算子セルUOEが供給する電流よりも大きくなり、センスアンプSAの出力信号SOUTは、“0”となる。したがって、このセンスアンプSAの出力信号SOUTは、SOIトランジスタNQ1およびNQ2の記憶データのAND演算結果を表わしている。また、センスアンプSAの出力信号SOUTを反転させれば、ユニット演算子セルの記憶データのNAND演算結果が得られる。
このようにして、装置外部にデータを読出すことなく、内部でユニット演算子セルの記憶データを読出すだけで、記憶データの論理演算を実行して演算結果を得ることができる。
SOIトランジスタNQ1は、図10においては図示しない読出ポートを介してAポート読出ビット線RBLAに結合される。この場合、読出ビット線RBLAはフローティング状態であり、データ読出時、センス読出ビット線RBLの充電電位と同電位に充電されれば、その後、電位は変化せず、センス読出ビット線RBLに対するデータの読出には何ら悪影響は及ぼさない。
図13は、ポートA選択時のユニット演算子セルとダミーセルの接続態様を概略的に示す図である。このポートAの接続時においては、ソース線SLと読出ビット線RBLの間に、SOIトランジスタNQ1が1つ接続される。一方、ダミーセルDMCにおいても、ダミーセル選択信号DCLAに従って、基準電圧源と補の読出ビット線ZRBLの間に、ダミートランジスタDTAが接続される。センスアンプSAのセンス動作は、先の図10および図11に示す場合と同じである。
この図13に示す配置において、SOIトランジスタNQ1がデータ“0”を記憶している場合には、ダミートランジスタDTAから補の読出ビット線ZRBLへ流れる電流量が、SOIトランジスタNQ1を介してソース線SLから読出ポートRPRTAを介してセンス読出ビット線RBLへ流れる電流量よりも大きくなる。したがって、この場合、センスアンプSAの出力信号SOUTは、Lレベル(“0”)である。一方、SOIトランジスタNQ1がデータ“1”を格納している場合には、ダミートランジスタDTAを介して流れる電流量よりも、SOIトランジスタNQ1から読出ポートRPRTAを介してセンス読出ビット線RBLへ流れる電流量が大きくなる。したがって、この場合、センスアンプSAの出力信号SOUTはHレベル(“1”)となる。
したがって、図14に示すように、Aポート接続時においては、センスアンプSAの出力信号SOUTは、このSOIトランジスタNQ1の記憶データと同じ論理値のデータとなる。センスアンプSAの出力信号を反転させるまたはSOIトランジスタNQ1に書込データの反転値を記憶させて読出すと、書込データのNOT演算結果を、センスアンプSAの出力に得ることができる。
図15は、この発明の実施の形態1に従う半導体信号処理装置のデータの演算シーケンスを示すタイミング図である。以下、図15を参照して、この発明の実施の形態1に従う半導体信号処理装置の動作について図1から図8を参照して説明する。
この半導体信号処理装置の動作サイクルは、外部からのクロック信号CLKにより規定される。クロック信号CLKの立上がりエッジで入力されたデータDINAおよびDINBが内部に取込まれて演算シーケンスが開始される。ここで、動作モードを指定するコマンドは、図15においては、示していない。動作モードは、外部から与えられるまたは内部で発生されるコマンドにより指定される。
このクロック信号CLKの立上がりエッジで取込まれたデータA0およびB0は、図4に示すデータパス28に取込まれる。データパス28に対しては、切換制御信号MXASおよびMXBSが与えられ、演算コマンドの指定する演算内容に従ってそのデータ転送経路が設定され、データA0およびB0についての反転/非反転が設定される。
データパス28からの内部書込データは、図7に示すグローバル書込ドライバ58および59を介してグローバル書込データ線上に伝達される。選択された(アドレス指定された)演算子セルサブアレイブロックにおいては、書込ワード線WWLが活性状態(Lレベル)に設定され、図1に示すPチャネルSOIトランジスタPQ1およびPQ2が導通し、SOIトランジスタNQ1およびNQ2のボディ領域SNAおよびSNBに、書込データに応じた電荷が注入される。
SOIトランジスタNQ1およびNQ2への書込が完了すると、読出ワード線RWLAおよびRWLBまたは読出ワード線RWLAを選択状態へ駆動する。図15においては、書込ワード線WWLが選択状態の時に読出ワード線を選択状態に駆動している。書込は、SOIトランジスタのボディ領域に対して実行されており、この書込と読出が並行して実行されても、特に問題は生じない。しかしながら、書込が完了し、書込ワード線WWLが非選択状態に駆動された後に、読出ワード線が選択状態に駆動されても良い。
AND演算を実行する場合には、読出ワード線RWLAおよびRWLBが並行して選択状態へ駆動され、一方、NOT演算を実行する場合には、読出ワード線RWLAが選択状態へ駆動され、読出ワード線RWLBは非選択状態に維持される。この読出ワード線の選択状態への駆動前に、ポート選択信号PRMXが設定され、図6に示す読出ポート選択回路36のポート接続スイッチPRSW(PRSW0,PRSW1)が、読出ビット線RBLAおよびRBLBの一方を選択し、センスアンプに対するセンス読出ビット線RBLに結合する。このポート選択信号PRMXのポート選択態様も、演算コマンドが指定する演算内容に応じて設定される。
読出ワード線RWLA/RWLBの選択状態への駆動と並行して、ダミーセル選択信号DCLA/DCLBも選択状態へ駆動される。これにより、センスアンプに接続される読出ビット線RBLおよびZRBLに、ユニット演算子セルの記憶データに応じた電流および選択されたダミーセルの基準電流が流れ、その電位が変化する。読出ワード線RWLAおよびRWLBを選択状態へ駆動した後、所定のタイミングでセンスアンプ活性化信号/SOPおよびSONを活性化する。このセンスアンプのセンス動作により、読出ビット線RBLおよびZRBLの電圧レベルが変化する。センスアンプSAにより検知増幅されたデータが、対応のメインアンプMAに伝達される。
センスアンプSA(図6参照)のセンス結果が確定すると、メインアンプ活性化信号MAENが活性化され、メインアンプによりセンスアンプの生成した信号(データ)がさらに増幅される。ロジックパス指示信号LGPSが所定の状態(演算コマンドが指定した演算内容に応じた状態)に設定され、組合せ論理演算回路26において、インバータ、バッファ、またはORゲートが選択され、データDOUTが外部へ出力される。このロジックパス指示信号LGPSの状態の設定は、メインアンプ活性化信号MAENの活性化と並行して行われてもよく、また、データパスの経路指定と並行して行われても良い。図15においては、メインアンプ活性化信号MAENと並行してロジックパス指示信号の状態設定が行われるように示す。
次のサイクルにおいて再び、演算コマンドとともに入力データDINAおよびDINBとしてデータA1およびB1が取り込まれ、演算コマンドに応じた演算が実行される。したがって、入力データDINAおよびDINBが与えられると、データの書込および読出を連続的に行なうことにより、1クロックサイクル内で演算結果を示すデータDQ1、DQ2、…、が出力データDOUTとして生成され、1クロックサイクルで演算を実行することができる。
したがって、外部に対してデータを読出して、外部に別途設けられた論理ゲートを用いて演算処理を実行する構成に比べて、演算処理時間を短縮することができる。
また、ユニット演算子セルは、図1に示すように4個のトランジスタで構成され、そのレイアウト面積は十分に低減することができる。また、SOIトランジスタのボディ領域に直接データに応じた量の電荷を注入しており、正確に記憶データに応じたしきい値電圧レベルに、データ記憶用SOIトランジスタのしきい値電圧を設定することができ、しきい値電圧のバラつきを低減することができる。
図16は、図4に示す制御回路30の構成を概略的に示す図である。図16において、制御回路30は、外部からのコマンドCMDをデコードするコマンドデコーダ70と、このコマンドデコーダ70からの演算操作指示OPLOGに従ってそれぞれ動作する接続制御回路72、書込制御回路74、読出ワード制御回路76およびデータ読出制御回路78を含む。
コマンドデコーダ70は、図示しないクロック信号CLKの立上がりエッジで外部からの動作内容を指定するコマンドCMDを取込み演算操作内容を指定する演算操作指示OPLOGを生成する。
接続制御回路72は、この演算操作指示OPLOGに従ってデータパスに対する切換制御信号MXASおよびMXBSと、組合せ論理演算回路に対するロジックパス指示信号LGPSを生成する。切換制御信号MXASおよびMXBSにより、データパスのデータ転送経路が設定され、また、ロジックパス指示信号LGPSに従って組合せ論理演算回路における演算内容が設定される。
書込制御回路74は、演算操作指示OPLOGが与えられると、書込活性化信号WRENおよび書込ワード線活性化信号WWLENを活性化する。この書込活性化信号WRENに従ってデータパスに含まれるグローバル書込ドライバおよび書込ワード線デコード回路等の書込に関連する回路が活性化される。書込ワード線活性化信号WWLENは、書込ワード線を選択状態へ駆動するタイミングを与える。
読出ワード制御回路76は、演算操作指示OPLOGに従って読出活性化信号RREN、読出ワード線活性化信号RWLENA、RWLENB、およびメインポート選択信号PRMXMを生成する。これらの信号に従って、選択された演算子セルアブアレイブロックにおいて読出に関連する部分の動作が行われる。読出ワード制御回路76の動作開始タイミングは、書込制御回路74における書込活性化信号WRENの活性化後に設定される。読出活性化信号RRENの活性化に従って、読出ワード線デコード回路などの回路が活性化される。
データ読出制御回路78は、読出ワード制御回路76からの読出活性化信号RRENと演算操作指示OPLOGとに従って、センスアンプ活性化信号SAEN(/SOP,SON)とメインアンプ活性化信号MAENと読出ゲート選択タイミング信号CLENを活性化する。読出ゲート選択タイミング信号CLENにより、センスアンプと対応のグローバル読出データ線との接続を行う読出ゲートの経路接続のタイミングが与えられる。
これらの書込制御回路74、読出ワード制御回路76およびデータ読出制御回路78の生成する信号は、各演算子セルサブアレイブロックに対して設けられる行選択駆動回路(22)へ与えられ、各アドレス指定された演算子セルサブアレイブロックにおいて読出ワード線および書込ワード線の活性化およびダミーセルの選択、ビット線とセンスアンプとの接続、センスアンプの出力信号のメインアンプへの転送が行なわれる。
図17は、図4に示す行ドライブ回路XDRiの構成の一例を、演算子セルサブアレイブロックの選択回路とともに示す図である。行ドライブ回路XDRi(i=0−31)およびブロック選択回路90が、図4に示す行選択駆動回路22内において各演算子セルサブアレイブロックに対応して配置される。
行ドライブ回路XDRiは、読出ワード線を駆動する読出ワード線ドライブ回路80と、ダミーセルを選択するダミーセル選択回路82と、書込ワード線を選択する書込ワード線ドライブ回路84とを含む。
読出ワード線ドライブ回路80は、読出活性化信号RRENによりイネーブルされ、読出ワード制御回路76からの読出ワード線活性化信号RWLENAおよびRWLENBとアドレス信号ADと演算子セルサブアレイブロックを指定するブロックアドレスBADとに従って、アドレス指定されたユニット演算子セル行に対応して配置される読出ワード線RWLAおよびRWLBを選択状態へ駆動する。読出ワード線ドライブ回路80において、読出ワード線RWLAおよびRWLBの選択態様は、読出ワード線活性化信号RWLENAおよびRWLENBにより設定され、それにより、読出ポートRPRTAおよびRPRTBのいずれを介してデータを読出すかの設定が行なわれる。
ダミーセル選択回路82は、読出活性化信号RRENに従ってイネーブルされ、演算子セルサブアレイブロックを指定するブロックアドレス信号BADと読出ワード線活性化信号RWLENAおよびRWLENBとに従って、ダミーセル選択信号DCLAおよびDCLBを選択状態へ駆動する。ダミーセル選択信号DCLAおよびDCLBの選択態様は、読出ワード線活性化信号RWLENAおよびRWLENBの選択態様に応じて設定され、読出ワード線活性化信号RWLENAおよびRWLENB両者がともに活性化される場合には、ダミーセル選択信号DCLBが選択状態へ駆動され、読出ワード線活性化信号RWLENが活性状態でありかつ読出ワード線活性化信号RWLENBが非活性状態のときには、ダミーセル選択信号DCLAが選択状態へ駆動される。
書込ワード線ドライブ回路84は、書込活性化信号WRENおよびブロックアドレス信号BADに従ってイネーブルされ、アドレス信号ADが指定するユニット演算子セル行に対して配置される書込ワード線を、書込ワード線活性化信号WWLENに従って選択状態へ駆動する。
ブロック選択回路90は、読出ゲートを選択する読出ゲート選択回路92と、読出ビット線接続経路制御するポート接続制御回路94とを含む。読出ゲート選択回路92は、読出活性化信号RRENの活性化時、ブロックアドレス信号BADが対応の演算子セルサブアレイブロックを指定するとき、読出ゲート選択タイミング信号CLENに従って読出ゲート選択信号CSLを選択状態へ駆動する。ここで、読出ゲート(CSG)の選択態様については、選択された演算子サブアレイブロックにおいて全ての列が並行して選択される場合を想定する。サブアレイブロック内において所定数のセンスアンプで構成されるセンスアンプグループが選択される場合には、アドレス信号に従って読出列選択信号を生成して読出ゲート選択信号CSLと合成する。
ポート接続制御回路94は、読出活性化信号RRENの活性化時、ブロックアドレス信号BADが対応の演算子セルサブアレイブロックを指定するとき、メインポート選択信号PRMXMに従ってポート選択信号/PRMXAおよび/PRMXBを選択的に非活性化する。ポート選択信号/PRMXAおよび/PRMXBが、ポート選択信号PRMXに対応する。メインポート選択信号PRMXMは、ポート指定情報を含み、ポート接続制御回路94は、このメインポート選択信号PRMXMが指定するポートに対応する読出ビット線(RBLA/RBLB)を、センス読出ビット線RBLに接続する。このポート接続制御回路94は、スタンバイ状態時においては、ポート選択信号/PRMXAおよび/PRMXBを活性状態に維持し、センス読出ビット線RBLを、読出ビット線RBLAおよびRBLBに接続する。これにより、図6に示すビット線プリチャージ/イコライズ回路による所定電位(電圧VPC)レベルへのプリチャージおよびイコライズが行なわれる。
図18は、図6に示すポート接続回路PRSWの構成の一例を示す図である。図18において、ポート接続回路PRSWは、2つのNチャネルSOIトランジスタNT1およびNT2を含む。トランジスタNT1およびNT2は、バルクトランジスタ(ウェル領域表面に形成されるトランジスタ)で構成されてもよい。
トランジスタNT1およびNT2は、ポート選択信号/PRMXBおよび/PRMXAの活性化時(Lレベルのとき)非導通状態とされる。すなわち、これらのポート選択信号/PRMXAおよび/PRMXBは、読出ポートRPRTAおよびRPRTBがそれぞれ指定されるときに、それぞれ活性状態のLレベルに設定される。したがって、読出ポートRPRTAが指定されたときには、ポート選択信号/PRMXAがLレベルとなり、トランジスタNT2が非導通状態、トランジスタNT1が導通状態となる。逆に、読出ポートRPRTBが指定されたときには、ポート選択信号/PRMXAがHレベルの非活性状態、ポート選択信号/PRMXBが活性状態のLレベルとなる。したがって、トランジスタNT2により、Bポート読出ビット線RBLBが、センス読出ビット線RBLに接続される。
なお、トランジスタNT1およびNT2に代えてトランスミッションゲートが用いられても良い。
次に、この発明の実施の形態1に従う半導体信号処理装置の具体的な演算処理態様について説明する。
[NOT演算]
図19は、この発明の実施の形態1に従う半導体信号処理装置におけるNOT演算実行時のデータパス28および組合せ論理演算回路26のデータ伝搬の接続態様を概略的に示す図である。図19において、このNOT演算時において、データパス28においては、マルチプレクサ(MUXA)56は、外部からの入力データDINA(=A)を受けるインバータ52の出力信号を選択し、図示しないグローバル書込ドライバを介してグローバル書込データ線WGLA上に伝達する。したがって、グローバル書込データ線WGLA上には、反転データ/Aが伝達され、ユニット演算子セルUOEに書込まれる。このとき、マルチプレクサ(MUXB)57は、その入力の選択態様は「ドントケア」状態であり、グローバル書込データ線WGLBには、有効書込データは伝達されない。したがって、ユニット演算子セルUOEにおいては、SOIトランジスタNQ1のボディ領域(記憶ノードSNA)にデータ/Aが格納される。
ダミーセルDMCに対しては、ダミーセル選択信号DCLAが与えられ(活性化され)、ダミートランジスタDTAが導通状態となる。読出ポート選択回路36においては、ポート接続回路(PRSW)において、読出ポートRPRTA(以下、適宜、ポートAまたはAポートと称す)を選択する状態に設定され、読出ビット線RBLAがセンスアンプSAに結合される。
したがって、センスアンプSAの出力データは、このユニット演算子セルUOEに格納されたデータAの反転データ/Aであり、メインアンプ回路24における対応のメインアンプMAからは、この反転データ/Aが伝達される。
組合せ論理演算回路26においては、バッファBUFF0が選択されるため、レジスタ50を介して外部へ出力されるデータDOUTは、反転データ/Aとなる。これにより、NOT演算を行なうことができる。
なお、デーパス28において、入力データAを選択してユニット演算子セルUOEに書込み、このデータを読出して、組合せ論理演算回路26においてインバータ(INV0)を選択してレジスタ50を介して外部データDOUTを生成しても良い。この場合においては、センスアンプSAからの非反転データAが反転されて出力され、同様、入力データに対するNOT演算結果が得られる。
[AND演算]
図20は、この発明の実施の形態1に従う半導体信号処理装置におけるAND演算実行時のデータ伝搬経路の接続態様を概略的に示す図である。図20において、データパス28においては、マルチプレクサ56および57は、外部からの入力データDINA(=A)およびDINB(=B)を選択する。したがって、グローバル書込データ線WGLAおよびWGLB上には、図示しないグローバル書込ドライバを介して書込データAおよびBが伝達される。ユニット演算子セルUOEにおいては、書込データAおよびBが、SOIトランジスタNQ1およびNQ2のボディ領域にそれぞれ格納される。
読出ポート選択回路36においては、読出ポートRPRTB(以下、適宜、ポートBまたはBポート称す)が選択され、読出ビット線RBLBがセンスアンプSAに結合される。ダミーセルDMCにおいては、ダミーセル選択信号DCLBに従って、ダミートランジスタDTB0/1(DTB0,DTB1)が選択される。したがって、この場合、図12に示すように、センスアンプSAの出力データは、データAおよびBのAND演算結果を示しており、メインアンプ回路24の対応のメインアンプMAからは、AND演算結果A・Bが出力される。
組合せ論理演算回路26においては、バッファBFF0が、ロジックパス指示信号に従って選択される。したがって、バッファBFF0からレジスタ50を介して伝達される出力データDOUTは、データA・Bとなる。これにより、入力データAおよびBについての論理積演算結果(AND演算結果)を得ることができる。
[OR演算]
図21は、この発明の実施の形態1に従う半導体信号処理装置におけるOR演算実行時のデータ伝搬経路の接続態様を概略的に示す図である。OR演算実行時においては、データパス28において、マルチプレクサ56および57は、それぞれ、インバータ52および54を介して与えられる入力データDINA(=A)およびDINB(=B)の反転値を選択する。したがって、グローバル書込データ線WGLAおよびWGLB上には、データ/Aおよび/Bが、それぞれ、図示しないグローバル書込ドライバを介して伝達され、対応のユニット演算子セルUOEに格納される。
読出ポート選択回路36においては、ポートB(読出ポートRPRTB)が選択され、読出ビット線RBLBがセンスアンプSAに結合される。ダミーセルDMCに対しては、ダミーセル選択信号DCLBが与えられ、ダミートランジスタDTB0およびDTB1が選択される。したがって、この場合、センスアンプSAは、AND演算を実行するため、メインアンプ回路24における対応のメインアンプMAの出力データは、データ/A・/Bとなる。
組合せ論理演算回路26においては、インバータIV0が選択され、メインアンプMAの出力データを反転する。したがって、レジスタ50を介して出力されるデータDOUTは、データ/(/A・/B)となり、これは、データ(A+B)と等価であり、入力データAおよびBのOR(論理和)演算結果が得られる。
[XOR演算]
図22は、この発明の実施の形態1に従う半導体信号処理装置におけるXOR演算実行時のデータ伝搬経路の接続態様を概略的に示す図である。この図22に示すように、XOR演算を実行する場合には、1つのデータパス演算単位グループ内に含まれるデータパス単位ブロックDPUB0およびDPUB1を利用する。データパス単位ブロックDPUB0において、マルチプレクサ(MUXA)56は、入力データDINA(=A)を選択し、マルチプレクサ57は、インバータ54からの入力データDINB(=B)の反転値を選択する。したがって、対応のグローバル書込データ線WGLA0およびWGLB0上には、データAおよび/Bがそれぞれ伝達されて、対応のユニット演算子セルUOE0に格納される。
データパス単位ブロックDPUB1においては、マルチプレクサ56は、インバータ52からの入力データAの反転値を選択し、マルチプレクサ57は、入力データBを選択する。したがって、対応のグローバル書込データ線WGLA1およびWGLB1上には、データ/AおよびBがそれぞれ伝達され、対応のユニット演算子セルUOE1に格納される。
演算子セルサブアレイブロックOARiにおいては、ダミーセルDMCに対しダミーセル選択信号DCLBが与えられ、2つの直列に接続されるダミートランジスタDTB0およびDTB1が選択される。読出ポート選択回路36においては、ポートB(読出ポートRPRTB)が選択され、したがって、読出ビット線RBLB0およびRBLB1がそれぞれ、対応のセンスアンプSA0およびSA1に結合される。このダミーセルおよびユニット演算子セルの接続態様においては、センスアンプSA0およびSA1はそれぞれ、AND演算結果を出力する。したがって、メインアンプ回路24におけるメインアンプMA0からはデータA・/Bが出力され、メインアンプMA1からは、データ/A・Bが生成される。
組合せ論理演算回路26においては、2入力ORゲートOG0が選択され、メインアンプMA0およびMA1の出力信号の論理和が取られる。したがって、レジスタ50からの出力データDOUTは、(/A・B+A・/B)であり、入力データAおよびBに対するXOR演算結果を、出力データDOUTとして得ることができる。
[XNOR演算]
図23は、この発明の実施の形態1に従う半導体信号処理装置におけるXNOR演算実行時のデータ伝搬経路の接続態様を概略的に示す図である。図23において、XNOR演算実行時においても、2つのデータパス単位ブロックDPUB0およびDPUB1が用いられる。データパス単位ブロックDPUB0において、マルチプレクサ(MUXA)56が、インバータ52からの入力データDINA(=A)の反転値を選択し、マルチプレクサ(MUXB)57は、同様、インバータ54からの入力データDINB(=B)の反転値を選択する。したがって、対応のグローバル書込データ線WGLA0およびWGLB0上には、データ/Aおよび/Bがそれぞれ伝達され、ユニット演算子セルUOE0に格納される。
データパス単位ブロックDPUB1においては、マルチプレクサ56および57は、入力データAおよびBを選択する。したがって、対応のグローバル書込データ線WGLA1およびWGLB1上には、データAおよびBが伝達され、対応のユニット演算子セルUOE1に格納される。
メモリセルアレイ34において、ダミーセルDMCに対して、ダミーセル選択信号DCLBが与えられ、ダミートランジスタDTB0およびDTB1の直列体が選択される。読出ポート選択回路36においては、ポートB(読出ポートRPTRB)が選択される。したがって、読出ビット線RBLB0およびRBLB1がそれぞれ、対応のセンスアンプSA0およびSA1に結合される。
この接続態様の場合、センスアンプSA0およびSA1は、それぞれ、ユニット演算子セルUOE0およびユニット演算子セルUOE1の記憶データのAND演算を行ない、演算結果を示すデータを、メインアンプ回路20に含まれる対応のメインアンプMA0およびMA1へ伝達する。したがって、メインアンプMA0からデータ/A・/Bが生成され、メインアンプMA1からは、データA・Bが生成される。
組合せ論理演算回路26においては、メインアンプMA0およびMA1の出力データを受ける2入力ORゲートOG0が選択される。したがって、このORゲートOG0からレジスタ50を介して出力されるデータDOUTは、データA・B+/A・/Bとなり、入力データAおよびBのXNOR演算結果に等しい。
以上のように、データパス28および組合せ論理演算回路26におけるデータ転送経路を演算内容に応じて設定することにより、1クロックサイクルで、入力データに対する演算結果を得ることができる。
図24は、2つの論理演算を連続して行なう複合演算の演算シーケンスの一例を示すフロー図である。この図24においては、複合演算(A.op1.B).op2.Cを処理する場合の動作を示す。以下、この図24を参照して、複合演算処理シーケンスについて説明する。なお、演算子op1およびop2の演算は、それぞれ1クロックサイクルで実行される。
まず、外部から演算指示が与えられるのを待つ(ステップS1)。演算指示が与えられると、データAおよびBを入力し、この演算指示の示す演算内容(OPLOGにより指定される)に従って、データパスおよびロジックパスの経路が、演算子op1に応じて設定される(ステップS2)。ロジックパスは、組合せ論理演算回路を示す。この場合、データパス単位ブロック(DPUB)においては、演算子op1がAND演算のときには、データAおよびBを選択する。演算子op1がOR演算のときには、データ/Aおよび/Bを選択する。演算子op1がXOR演算のときには、データ(A,/B)および(/A,B)の組を選択する。演算子op1がXNOR演算のときには、データ(/A,/B)および(A,B)を選択する。すなわち、先に示したように、XOR演算およびXNOR演算の場合には、2つのデータパス単位ブロックDPUBを利用して演算を実行する。
このデータパスのデータ伝播経路が設定されると(このときには、ロジックパスの経路も設定される)、演算子セルサブアレイブロックへ書込アクセスを行ない、設定されたデータをユニット演算子セルに書込む(ステップS3)。
この演算子セルサブアレイブロックへのデータの書込と並行して、この演算子セルサブアレイブロックからのデータの読出を行なう(ステップS4)。この場合、一例として、演算子op1が、AND演算、OR演算、XOR演算およびENOR演算のいずれの場合においても、ポートBが選択される。すなわち、ダミーセル選択信号DCLBを選択状態に駆動し、また、読出ワード線RWLAおよびRWLBを選択状態に駆動する。これは、先の図19から図23のデータ接続経路に対するダミーセルおよびポートの選択態様から求められる。読出ビット線RBLBおよびZRBLBを対応のセンスアンプに結合してセンス動作を実行する。このセンスアンプの出力信号が対応のメインアンプに伝達される。
演算子セルサブアレイブロックからデータの読出が行なわれると、メインアンプの出力データが確定する。メインアンプMAの出力信号が確定すると、演算子op1に応じて決定されたロジックパス(組合せ論理演算回路)の経路を介してデータが、転送される(ステップS5)。この場合、ロジックパス(組合せ論理演算回路)においては、演算子op1がAND演算およびOR演算の場合には、それぞれ、メインアンプの出力信号MAおよびその反転信号/MAが選択される。演算子op1がXOR演算およびXNOR演算の場合には、2入力ORゲート(OG0)が選択される。このロジックパスの経路を介して転送されたデータが、データパスのレジスタ(50)に格納される。これにより、演算結果(A.op1.B)が、データRegとして格納される(ステップS6)。この書込および読出に1クロックサイクルが消費され、演算子op1による演算を行う1演算サイクルが完了する。
ここで、センスアンプ出力により、AND演算およびOR演算を行う場合を想定している。NAND演算およびNOR演算も同様に実行することができる。論理積演算を、AND演算およびNAND演算両者を示し、論理和演算をNOR演算およびOR演算両者を参照するものとして、以下の説明においてはこれらの論理積および論理和の用語を用いる。
次いで、次の演算サイクルに入り、データCを入力し、また演算子op2に応じてデータパスおよびロジックパスの経路を設定する(ステップS7)。この場合、データパス(DPUB)においては、演算子op2がAND演算の場合には、外部データCおよびデータパス内のレジスタ(50)の格納データRegを選択する。演算子op2がOR演算のときには、外部データの反転データ/Cおよびレジスタの格納データの反転値/Regを選択する。XOR演算の場合には、(C,/Reg)および(/C,Reg)のデータの組を選択する。XNOR演算の場合には、データ(/C,/Reg)および(C,Reg)のデータの組を選択する。
次いで、先のステップS2からステップS4と同様にして、演算子セルサブアレイブロックへの書込アクセス、読出アクセスを行なう。この場合においても、ポートBが選択され、また、ダミーセルDMCとしては、ポートB選択用のダミートランジスタ(DTB0、DTB1)が選択される。これにより、センスアンプ出力に従って、メインアンプの出力が確定する(ステップS8)。
確定されたセンスアンプ出力が、組合せ論理演算回路において演算子op2に応じて決定されたロジックパス経路を介して転送される(ステップS9)。この組合せ論理演算回路のデータ経路の設定態様は、演算子op1の場合と同様である。
このステップS9による組合せ論理回路の設定されたデータ伝播経路を介してのデータ転送により、演算結果データが求められ、レジスタを介して最終演算結果データDOUTを出力する(ステップS10)。これにより、第2演算サイクルが完了する。
この複合演算時においては、演算(A.op1.B)の結果が確定するのを待って演算処理を実行する必要があり、合計2回演算子セルサブアレイにシリアルにアクセスする必要がある。すなわち、演算子op1については、1クロックサイクルでデータの書込および読出が行なわれ、また、演算子op2についても、1クロックサイクルでデータの書込および読出が行なわれる。したがって、合計2クロックサイクルで、演算子op1およびop2ついての演算を実行することができる。
処理シーケンスにおいて、演算子op1をデータAおよびBとともに発行した後、1クロックサイクル経過後に、演算子op2をデータCとともに発行して演算処理を実行する。これにより、複合演算処理を、内部構成のデータ経路を切換えるだけで、容易に実現することができる。
なお、内部のメインアンプの出力信号、すなわちデータパスのレジスタの格納値が確定するとデータCについての書込サイクルを開始することができる。従って、内部でのデータCについての書込アクセスタイミングを早くすることは可能である(連続クロックサイクルで書込データを入力し、データCについての書込ドライバのタイミングをデータパス内のレジスタのデータ確定タイミングに合わせる)。
以上のように、この発明の実施の形態1に従えば、ユニット演算子セルを2つのSOIトランジスタを利用し、そのボディ領域の蓄積電荷量に応じてデータを記憶し、これらのSOIトランジスタの演算内容に応じて選択するとともに、書込データおよび読出データを演算内容に応じて設定している。
したがって、ユニット演算子セルに対しては、ビット線に流れる電流量の大小を検出して、記憶データの読出を行っている。したがって、キャパシタなどを利用する電荷の移動によるデータの読出と異なり、高速で読出動作を行なうことができる。また、大きな電流量の変化を生じさせることができ、低電源電圧下においても、確実にデータの検出を行なうことができる。また、外部のデータを読出して別途設けられた論理ゲートで演算処理を行なっておらず、高速で演算処理を実行することができる。またユニット演算子セルは、4つのSOIトランジスタで構成されており、レイアウト面積が低減され、メモリセルアレイの面積の増大を抑制することができる。
[実施の形態2]
図25は、この発明の実施の形態2に従う半導体信号処理装置における1ビット加算器の構成を概略的に示す図である。図25においては、データパス演算単位グループ(44)に含まれるデータパス単位ブロックDPUB0−DPUB3の構成を示す。この図25に示す構成においては、ユニット演算子セルUOE0およびUOE1に対し、ワードゲート回路100が設けられ、ユニット演算子セルUOE2およびUOE3に対し、ワードゲート回路102が設けられる。これらのユニット演算子セルUOE0−UOE3は、それぞれ、データパス単位ブロックDPUB0−DPUB3に対応して配置される。
ワードゲート回路100は、入力キャリーCinが“0”のとき、書込ワード線WWL上の信号および読出ワード線対RWLA/B上の信号をローカルワード線群LWLG0上に伝達し、入力キャリーCinが“1”のときには、ローカルワード線群LWLG0を非選択状態に維持する。
ここで、読出ワード線対RWLA/Bは、読出ワード線RWLAおよびRWLBを含む。ローカルワード線群LWLG0は、ローカルの書込ワード線LWWL0、およびローカル読出ワード線LRWLA0およびLRWLB0を含む。ローカル書込/読出ワード線LWLGは、図25に示す構成においては、これらの2つのユニット演算子セルUOE0およびUOE1の組またはユニット演算子セルUOE2およびUOE3に対して配置される書込/読出ワード線を示す。
ワードゲート回路102は、入力キャリーCinが“1”のとき、書込ワード線WWL上の信号電位および読出ワード線対RWLA/B上の信号電位を、対応のローカルワード線群LWLG1に伝達し、入力キャリーCinが“0”のときには、対応のローカルワード線群LWLG1を非選択状態に維持する。
したがって、ユニット演算子セルUOE0およびUOE1は、入力キャリーCinが“1”のときには、非選択状態に設定され、また、ユニット演算子セルUOE2およびUOE3は、入力キャリーCinが“0”のときには、非選択状態に設定される。すなわち、ユニット演算子セルに対するデータの書込/読出は、入力キャリーCinの論理値に従って選択的に実行される。
1ビット加算時においては、ダミーセルDMCに対しダミーセル選択信号DCLBが与えられ、2つの直列ダミートランジスタ(DTB0,DTB1)が選択される。読出ポート選択回路36においては、ポートB(読出ポートRPRTB)が選択され、それぞれの読出ビット線RBLBが対応のセンスアンプSA0−SA3に結合される。これらのセンスアンプSA0−SA3からは、それぞれ、対応のユニット演算子セルUOE0−UOE3の記憶データに対するAND演算結果が出力される(ユニット演算子セルが選択状態のとき)。
この加算操作においては、データパス演算単位グループ44において、以下の経路設定が行なわれる。すなわち、データパス単位ブロックDPUB0においては、マルチプレクサ56が入力データDINA(=A)を選択し、マルチプレクサ57が、インバータ54からの入力データDINB(=B)の反転値を選択する。したがって、対応のグローバル書込データ線WGLA0およびWGLB0上には、図示しないグローバル書込ドライバを介してデータAおよび/Bがそれぞれ伝達される。
データパス単位ブロックDPUB1においては、マルチプレクサ56は、インバータ52からの入力データAの反転値を選択し、マルチプレクサ57は、入力データBを選択する。したがって、対応のグローバル書込データ線WGLA1およびWGLB1には、それぞれ、データ/AおよびBが伝達される。
データパス単位ブロックDPUB2においては、マルチプレクサ56および57は、インバータ52および54からそれぞれ与えられる入力データAおよびBの反転値を選択する。したがって、対応のグローバル書込データ線WGLA2およびWGLB2には、それぞれ、データ/Aおよび/Bが伝達される。
データパス単位ブロックDPUB3においては、マルチプレクサ56および57は、入力データAおよびBを選択する。したがって、グローバル書込データ線WGLA3およびWGLB3上にはデータAおよびBが伝達される。
ダミーセルDMCとしては、ダミーセル選択信号DCLBに従って直列接続される2つのダミートランジスタ(DTB0、DTB1)が選択される。
組合せ論理演算回路26においては、メインアンプ回路24に含まれるメインアンプMA0(図示せず)−MA3の出力を受ける4入力ORゲートOG1がロジックパス指示信号LGPSに従って選択される。なお、読出ポート選択回路36、組合せ論理演算回路26およびデータパス28においては、それぞれ制御信号/PRMXB、LGPS、MXASおよびMXBSに従って、それぞれの経路が設定される。
図26は、この図25に示す1ビット加算器におけるサムSUMと入力データAおよびBと入力キャリーCinとの関係を一覧にして示す図である。図26において、入力キャリーCinが“0”のとき、サムSUMが“1”となるのは、データ(A,B)が、データ(0,1)および(1,0)のときである。すなわち、入力キャリーCinが“0”のときには、演算結果/A・BおよびA・/Bのいずれかが“1”のときに、サムSUMは、“1”となる。
一方、入力キャリーCinが“1”のとき、サムSUMが“1”となるのは、データ(A,B)が、データ(0,0)または(1,1)のときである。すなわち、演算結果/A・/BおよびA・Bの一方が“1”のときに、サムSUMが、“1”となる。
この図26に示す関係を利用して、入力キャリーCinを、ワード線(書込ワード線および読出ワード線両者を含む)の選択/非選択を設定する。
図27は、図24に示すワードゲート回路100および102の構成の一例を概略的に示す図である。図27において、ワードゲート回路102は、書込ワード線WWLおよび読出ワード線RWLA、RWLBに対応して設けられるANDゲート110a−110cを含む。ANDゲート110a−110cは、入力キャリーCinが“1”(Hレベル)のとき、対応のワード線WWL、RWLAおよびRWLB上の信号を、対応のローカル書込ワード線LWWL1、およびローカル読出ワード線LRWLA1およびLRWLB1にそれぞれ伝達する。入力キャリーCinが“0”(Lレベル)のときには、ワードゲート回路102は、ローカルワード線群LWLG1の各ローカルワード線をすべて非選択状態のLレベルに維持する。
ワードゲート回路100は、入力キャリーCinを反転するインバータ114と、ローカルワード線LWWL0、LRWLA0およびLRWLB0それぞれに対して設けられるANDゲート116a−116cを含む。インバータ114からの反転入力キャリー/Cinが、ANDゲート116a−116cに共通に与えられる。入力キャリーCinが“1”のときには、ANDゲート116a−116cは、対応のローカルワード線LWWL0、LRWLA0およびLRWLB0をすべて非選択状態のLレベルに設定する。一方、入力キャリーCinが“0”のときには、ANDゲート116a−116cは、それぞれ、対応のワード線WWL、RWLA、およびRWLB上の信号を、対応のローカルワード線LWWL0、LRWLA0、およびLRWLB0に伝達する。
次に、図26および図27を参照して、図25に示す1ビット加算器の加算動作について説明する。上述のように、読出ポートとしてポートBが選択され、ダミーセルとしては、直列ダミートランジスタ(DTB0,DTB1)が選択される。したがって、センスアンプSA0−SA3からは、対応のユニット演算子セルUOE0−UOE3の記憶データのAND演算結果が、入力キャリーCinの論理値に応じて選択的に出力される。
(I) 入力キャリーCinが、“0”のとき:
ワードゲート回路100は、書込ワード線WWL、および読出ワード線RWLA,RWLBの信号に従って、ローカルワード線群LWLG0を駆動する。したがって、ユニット演算子セルUOE0およびUOE1には、データ書込時に、データ(A,/B)および(/A,B)がそれぞれ格納される。データ読出時に、したがって、センスアンプSA0からは、データ(A・/B)が出力され、センスアンプSA1からは、データ(/A・B)が出力される。
一方、ユニット演算子セルUOE2およびUOE3は、ワードゲート回路102により、すべて非選択状態に維持されるため、対応の読出ビット線RBLBには、電流は流れない。一方、ダミーセルDMCが選択されているため、補の読出ビット線ZRBLを介して流れる電流量は、対応の読出ビット線RBLBを介して流れる電流よりも多くなる。したがって、ユニット演算子セルUOE2およびUOE3は、その記憶データの論理値にかかわらず、等価的に、ともにデータ“0”を記憶する状態と判定され、センスアンプSA2およびSA3の出力信号は“0”(Lレベル)となる。
これらのセンスアンプSA0−SA3の出力データが、対応のメインアンプMA0(図示せず)およびMA1−MA3を介して4入力ORゲートOG1へ伝達される。したがって、センスアンプSA0およびSA1の出力データすなわち(A・/B)および(/A・B)の一方がHレベルであれば、4入力ORゲートOG1の出力信号がHレベル(“1”)となり、一方、データ(A・/B)および(/A・B)がともにLレベルであれば、ORゲートOG1の出力信号はLレベル(“0”)となる。この4入力ORゲートOG1からの出力信号は、入力キャリーCinが“0”の場合におけるデータ(A・/B)および(/A・B)の論理値に応じてサムSUMを生成する図26に示す論理値表を満たしている。従って、入力キャリーCinが“0”の場合、正確にサムSUMを生成することができる。
(II) 入力キャリーCinが“1”のとき:
この状態においては、ワードゲート回路100により、ユニット演算子セルUOE0およびUOE1がともに非選択状態に維持され、センスアンプSA0およびSA1の出力信号はLレベルである。一方、ワードゲート回路102が、書込ワード線WWLおよび読出ワード線RWLAおよびRWLB上の信号に従って対応のローカルワード線群LWLG1を選択状態に駆動する。したがって、ユニット演算子セルUOE2およびUOE3には、それぞれデータ(/A,/B)および(A,B)がそれぞれ格納されて読出される。応じて、データ読出時のセンスアンプSA2およびSA3の出力信号は、それぞれ記憶データのAND演算結果(/A・/B)および(A・B)となる。したがって、ORゲートOG1は、データ/A・/BまたはA・Bが“1”のときにHレベル(“1”)の信号を出力し、応じてレジスタ50からのサムSUMが“1”に設定される。
一方、データ/A・/BおよびA・Bがともに“0”のとき(Lレベルのとき)、この4入力ORゲートOG1は、Lレベルの信号を出力する。したがって、レジスタ50からのサムSUMは、“0”に設定される。
すなわち、図26に示す論理値表に示すように、入力キャリーCinが“1”のとき、サムSUMは、論理積演算結果データ/A・/BおよびA・Bの論理値に従って生成され、正確に入力キャリーCinが“1”のときのサムSUMを生成することができる。
これにより、図25に示す1ビット加算器の構成により、図26に示す論理値テーブルに示される入出力関係を満たすことができ、応じて、入力データAおよびBの1ビット加算結果を生成することができる。
なお、図25に示す構成においては、ワードゲート回路100および102は、1つのデータパス演算単位グループ(44)ごとに設けられるように示す。しかしながら、これらのワードゲート回路100および102は、1ビット加算器において各ユニット演算子セルに対して設けられてもよい。
なお、これらのワードゲート回路100および102を用いた場合において、加算を行なう演算以外の演算、すなわちAND/OR/XOR/XNOR演算を実行する場合には、入力キャリーCinおよび/CinをともにHレベルに設定する構成を利用する。例えば、インバータ114として、入力キャリーCinおよび制御信号を受けるNANDゲートを利用する。加算演算以外の演算処理の場合に、この制御信号をLレベルに設定し、加算処理時に制御信号をHレベルに設定する。これ以外の構成を利用することは、可能である。この状態においては、これらのゲートワード回路100および102は、何らワード線選択には悪影響を及ぼさないため、前述のように指定された各種論理演算処理を実行することができる。
[キャリー生成部の構成]
図28は、図25に示す1ビット加算器とともに用いて1ビット全加算器を実現する場合のキャリー生成部の構成を概略的に示す図である。この図28に示すキャリー生成部においても、データパス演算単位グループ(44)内の4つのデータパス単位ブロックDPUB0−DPUB3が用いられる。
図28に示すキャリー生成部においては、以下のデータ伝搬経路の設定が行なわれる。データパス単位ブロックDPUB0においては、マルチプレクサ56および57は、入力データDINA(=A)およびDINB(=B)をそれぞれ選択する。したがって、対応のグローバル書込データ線WGLA0およびWGLB0上には、データAおよびBが伝達される。
データパス単位ブロックDPUB1においては、マルチプレクサ56が、インバータ52からの入力データAの反転値を選択し、マルチプレクサ57は、入力データBを選択する。したがって、対応のグローバル書込データ線WGLA1およびWGLB1上には、データ/AおよびBがそれぞれ伝達される。
データパス単位ブロックDPUB2においては、マルチプレクサ56は、入力データAを選択し、マルチプレクサ57は、インバータ54からの入力データBの反転値を選択する。したがって、対応のグローバル書込データ線WGLA2およびWGLB2上には、データAおよび/Bがそれぞれ伝達される。
データパス単位ブロックDPUB3は、その入力選択態様はドントケアであり、対応のユニット演算子セルUOE3は、キャリー生成には利用されない。
演算子セルサブアレイブロックにおいては、ユニット演算子セルUOE0に対し、ワードゲート回路120が設けられ、ユニット演算子セルUOE1−UOE3に対しては、ワードゲート回路122が設けられる。ワードゲート回路120は、電源電圧VCCを入力キャリーとして受け、入力キャリーCinの論理値にかかわらず、書込ワード線WWLおよび読出ワード線群RWLA/B上の信号を、対応のユニット演算子セルUOE0上のローカルワード線群LWLG0に伝達する。読出ワード線対RWLA/Bおよびローカルワード線群LWLGの構成は、図25に示す構成と同様である。
ワードゲート回路122は、入力キャリーCinの論理値に従って、選択的に、書込ワード線WWLおよび読出ワード線対RWLA/B上の信号電位をユニット演算子セルUOE1−UOE3に対して配置されるローカルワード線群LWLG1に伝達する。すなわち、ワードゲート回路122は、入力キャリーCinが“0”のときには、ユニット演算子セルUOE1−UOE3をすべて非選択状態に維持する。一方、入力キャリーCinが“1”のときには、ワードゲート回路122は、書込ワード線WWLおよび読出ワード線対RWLA/B上の信号電位を、ローカルワード線群LWLG1に伝達する。
ダミーセルDMCに対しては、ダミーセル選択信号DCLBが与えられ、直列ダミートランジスタが選択される。読出ポート選択回路36においては、ポートBが選択され、読出ビット線RBLBがそれぞれ対応のセンスアンプSA0−SA3上に結合される。
組合せ論理演算回路26においては、3入力ORゲートOG1が選択され、メインアンプ回路24に含まれるメインアンプMA1およびMA2と図示しないメインアンプMA0の出力信号を受ける。このORゲートOG1からレジスタ50を介して、キャリーCYが出力される。
図29は、入力キャリーCin、出力キャリーCY、入力データAおよびBの論理値の対応を一覧にして示す図である。
図29において、入力キャリーCinが“0”のとき、出力キャリーCYが“1”となるのは、データAおよびBがともに“1”のときである。一方、入力キャリーCinが“1”のとき、出力キャリーCYが“1”となるのは、データ(A,B)が、(0,1)、(1,0)および(1,1)の場合である。すなわち、入力キャリーCinが“0”および“1”のいずれの場合においても、データAおよびBがともに“1”のときには、出力キャリーCYは、“1”となる。したがって、図28に示すように、3種類のデータの組合せ、すなわち3つのセンスアンプSA0−SA3の出力データについての演算を、組合せ論理演算回路26において実行する。
図30は、図28に示すワードゲート回路120および122の構成の一例を示す図である。図30において、ワードゲート回路120は、ローカル書込ワード線LWWL0、ローカル読出ワード線LRWLA0およびLRWLB0に対応して設けられるANDゲート124a−124cを含む。これらのANDゲート124a−124cそれぞれの第1の入力には、電源電圧VCCが与えられ、それぞれの第2の入力に、書込ワード線WWL、読出ワード線RWLAおよびRWLB上の信号を受ける。このワードゲート回路120からの出力信号は、ユニット演算子セルUOE0に対して配置されるローカル書込ワード線LWWL0およびローカル読出ワード線LRWLA0、LRWLB0上にそれぞれ伝達される。
ワードゲート回路122は、ローカル書込ワード線LWWL1、ローカル読出ワード線LRWLA1およびLRWLB1にそれぞれ対応して設けられるANDゲート126a−126cを含む。これらのANDゲート126a−126cの第1の入力には、共通に入力キャリーCinが与えられ、それぞれの第2の入力には、書込ワード線WWL、読出ワード線RWLA、およびRWLB上の信号が与えられる。これらのワードゲート回路122の出力信号は、図28に示すユニット演算子セルUOE1−UOE3に、ローカルワード線群LWLG1を介して与えられる。ローカルワード線群LWLG1は、ローカル書込ワード線LWWL1、およびローカル読出ワード線LRWLA1、LRWLB1を含む。
したがって、この図30に示すワードゲート回路120および122の構成から明らかなように、ユニット演算子セルUOE0へは、常時、書込ワード線WWLと読出ワード線RWLAおよびRWLBに従った電位が対応のローカル書込ワード線LWWL0およびローカル読出ワード線LRWLA0およびLRWLB0へ伝達される。一方、ユニット演算子セルUOE1−UOE3は、入力キャリーCinが“0”のときに非選択状態に設定され、入力キャリーCinが“1”のときに、書込ワード線WWLおよび読出ワード線RWLAおよびRWLBに従って選択状態へ駆動される。
次に、この図28に示すキャリー生成部の動作について図29および図30を参照して説明する。
ワードゲート回路120は、入力キャリーCinの論理値にかかわらず、書込ワード線WWLの信号に従って対応のユニット演算子セルUOE0を選択状態に駆動し、グローバル書込データ線WGLA0およびWGLB0上に転送されたデータAおよびBが、ユニット演算子セルUOE0に書込まれる。また、データ読出時においても、ワードゲート回路120は、読出ワード線RWLAおよびRWLB上の信号に従って対応のユニット演算子セルUOE0のローカル読出ワード線LRWLA0およびLRWLB0を選択状態へ駆動し、読出ビット線RBLBに、これらのデータAおよびBの論理値に応じた電流が流れる。補の読出ビット線ZRBLには、ダミーセルDMCの2つの直列ダミートランジスタ(DTB0、DTB1)が接続されており、基準電圧Vrefの電圧レベルに応じた電流が、補の読出ビット線ZRBLに流れる。したがって、センスアンプSA0の出力データは、ユニット演算子セルUOE0の格納データのAND演算結果データであり、センスアンプSA0からは、データA・Bが出力され、対応のメインアンプ(図示せず)を介して3入力ORゲートOG1へ伝達される。
一方、ワードゲート回路122は、入力キャリーCinの論理値に応じて選択的にユニット演算子セルUOE1−UOE3を選択状態へ駆動する。入力キャリーCinが“0”のときには、これらのユニット演算子セルUOE1−UOE3は非選択状態であり、データの書込/読出は行なわれない。したがって、この場合には、対応の読出ビット線RBLBを流れる電流よりも、補の読出ビット線ZRBLを流れる電流量が多くなり、センスアンプSA1−SA3の出力信号は“0”となる。すなわち、入力キャリーCinが“0”のときには、3入力ORゲートOG1の出力信号は、センスアンプSA0の出力データA・Bに応じた電圧レベルとなり、レジスタ50から出力されるキャリーCYは、データA・Bの論理値に応じた論理値を取る。したがって、図29に示すように、入力キャリーCinが“0”の時には、データAおよびBがともに“1”のときには、レジスタ50からの出力される出力キャリーCYが“1”となり、それ以外のときには出力キャリーCYが“0”となる条件を満たしている。
一方、入力キャリーCinが“1”のときには、ユニット演算子セルUOE1−UOE3に対してもデータの書込/読出が行なわれる。したがって、ユニット演算子セルUOE1には、対応のグローバル書込データ線WGLA1およびWGLB1上に伝達されたデータ/AおよびBが格納され、ユニット演算子セルUOE2へは、対応のグローバル書込データ線WGLA2およびWGLB2に伝達されたデータAおよび/Bが格納される。
ポートBが選択されており、センスアンプSA1およびSA2は、対応のユニット演算子セルUOE1およびUOE2の記憶データのAND演算結果を出力する。従って、センスアンプSA1およびSA2の出力データは、データ/A・BおよびA・/Bである。センスアンプSA0−SA2の出力信号が対応のメインアンプMA0−MA2を介して3入力ORゲートOG1へ与えられる。したがって、3入力ORゲートOG1からの出力データは、(A・B+A・/B+A・/B)となる。
図29に示す論理値表から明らかなように、出力キャリーCYは、データ/A・B、A・BおよびA・/Bのいずれかが“1”のときに“1”となる。それ以外のとき、すなわち、データAおよびBがともに“0”のときには、出力キャリーCYは“0”となる。これにより、図29に示す出力キャリーCYの論理値の関係を満たす出力キャリーCYを生成することができる。
以上のようにして、図25および28に示す加算器およびキャリー生成部を並列に動作させることにより、1ビット全加算演算を1クロックサイクルで実行することができる。また、データパス28および組合せ論理演算回路26においてデータ伝搬経路を設定し、また、ワード線上の信号に入力キャリーCinを組合せることにより、内部構成を変更することなく、組合せ論理演算に加えて算術演算を実行することができる。
[1ビット減算器の構成]
図31は、1ビット減算器における入力データAおよびBと入力ボローBRinと減算値DIFFの論理値の対応関係を一覧にして示す図である。図31において、入力ボローBRinが“0”のとき、減算値DIFFが“1”となるのは、データ(A,B)が、(0,1)および(1,0)のときである。したがって、演算結果/A・BおよびA・/Bのいずれか一方が“1”となれば減算値DIFFが“1”となる構成を実現すれば、入力ボローBRinが“0”のときの減算値DIFFを生成することができる。
一方、入力ボローBRinが“1”のとき減算値DIFFが“1”となるのは、データ(A,B)が、(0,0)または(1,1)の場合である。したがって、演算結果/A・/BおよびA・Bのいずれかが“1”となれば出力値が“1”となる構成を実現すれば、入力ボローBRinが“1”のときの減算値DIFFを生成することができる。この入力ボローBRinの論理値に応じて選択されるデータの組を、データパス28において設定することにより、1ビット減算器を実現する。
図32は、この発明の実施の形態2に従う半導体信号処理装置の1ビット減算器の構成を概略的に示す図である。この図32に示す構成においても、1ビット減算器は、データパス演算単位グループ44内に含まれる4つのデータパス単位ブロックDPUB0−DPUB3を利用する。演算子セルサブアレイブロックにおいて、これらのデータ単位ブロックDPUB0−DPUB3に対応して、ユニット演算子セルUOE0−UOE3が配置される。ユニット演算子セルUOE0およびUOE1に対してワードゲート回路130が設けられ、ユニット演算子セルUOE2およびUOE3に対し、ワードゲート回路132が設けられる。
ワードゲート回路130は、入力ボローBRinが“1”のとき、ユニット演算子セルUOE0およびUOE1を非選択状態に維持する。一方、入力ボローBRinが“1”のときには、ワードゲート回路130は、書込ワード線WWLおよび読出ワード線対RWLA/B上の信号電位を、対応のローカルワード線群LWLG0上に伝達する。ローカルワード線群LWLGは、図25に示す構成と同様、ローカル書込ワード線LWWL、およびローカルの読出ワード線LRWLAおよびLRWLBを含む。読出ワード線対RWLA/Bは、読出ワード線RWLAおよびRWLBを含む。
ワードゲート回路132は、入力ボローBRinが“1”のとき、書込ワード線WWLおよび読出ワード線RWLAおよびRWLB上の信号電位に従ってユニット演算子セルUOE2およびUOE3に対して配置されるローカルワード線群LWLG1を選択状態へ駆動する。一方、入力ボローBRinが“0”のときには、このワードゲート回路132は、ユニット演算子セルUOE2およびUOE3に対するローカルワード線群LWG1を非選択状態に維持し、ユニット演算子セルUOE2およびUOE3に対するデータの書込/読出アクセスを禁止する。
ワードゲート回路130および132の構成としては、一例として、図27に示すワードゲート回路100および102の構成を利用して、入力キャリーCinに代えて入力ボローBRinを入力することにより実現できる(この構成については後に説明する)。
ダミーセルDMCに対しては、ダミーセル選択信号DCLBが与えられる。したがって、ダミーセルDMCにおいて2つの直列接続されるダミートランジスタ(DTB0,DTB1)が選択される。
読出ポート選択回路36においては、ポートB(読出ポートRPRTB)が選択され、読出ビット線RBLBが、それぞれ対応のセンスアンプSA0−SA3に結合される。
組合せ論理演算回路26においては、4入力ORゲートOG2が選択され、メインアンプ回路24に含まれるメインアンプMA0−MA3の出力信号が、この4入力ORゲートOG2へ与えられる。ORゲートOG2の出力信号が、レジスタ50を介して外部へ減算値DIFFとして出力される。
図33は、図32に示すワードゲート回路130および132の構成の一例を概略的に示す図である。図33に示すように、ワードゲート回路130および132の構成は、入力キャリーCinに代えて入力ボローBRinが与えられることを除いて、図27に示すワードゲート回路100および102の構成と同じである。したがって、これらのワードゲート回路130および132とワードゲート回路100および102の対応する構成要素には同一参照番号を付し、その詳細説明は省略する。
図33に示すように、入力ボローBRinが“0”の場合には、ユニット演算子セルUOE2およびUOE3が非選択状態に維持され、入力がユニット演算子セルUOE0およびUOE1に対するデータの書込/読出アクセスが実行される。一方、入力ボローBRinが“1”のときには、ユニット演算子セルUOE0およびUOE1が非選択状態に維持され、ユニット演算子セルUOE2およびUOE3に対するデータの書込/読出アクセスが実行される。
次に、この図32に示す1ビット減算値の動作について、図31および図33を適宜参照して説明する。減算としては、(A−B)が実行される。
入力ボローBRinが“0”のときには、ワードゲート回路132により、ユニット演算子セルUOE2およびUOE3は、非選択状態であり、一方、ユニット演算子セルUOE0およびUOE1に対して、データの書込/読出アクセスが実行される。したがって、ユニット演算子セルUOE0へは、グローバル書込データ線WGLA0およびWGLB0上のデータAおよび/Bが格納されて読出される。同様、ユニット演算子セルUOE1についても、グローバル書込データ線WGLA1およびWGLB1上のデータ/AおよびBが書込まれて読出される。
ダミーメモリセルDMCに対しては、ダミーセル選択信号DCLBが与えられ、またポートBが選択される。したがって、センスアンプSA0およびSA1の出力データは、それぞれ、対応のユニット演算子セルUOE0およびUOE1の記憶データのAND演算結果A・/Bおよび/A・Bとなる。
一方、センスアンプSA2およびSA3においては、ユニット演算子セルUOE2およびUOE3は非選択状態であり、読出ビット線RBLB上には電流はほとんど流れず、補の読出ビット線ZRBL上にはダミーセルDMCにより電流が供給される。したがって、この状態においては、センスアンプSA2およびSA3の出力データは、“0”である。これらのセンスアンプSA0−SA3が対応のメインアンプMA0−MA3を介して4入力ORゲートOG1へ与えられる。したがって、レジスタ50を介して出力されるデータは、(A・/B)+(/A・B)である。図31に示す論理値テーブルに示されるように、入力ボローBRinが“0”のとき、データAおよびBの一方が“1”かつ他方が“0”のときに、減算値DIFFが“1”となる条件を満たす出力データを生成することができる。
一方、入力ボローBRinが“1”のときには、ワードゲート回路130により、ユニット演算子セルUOE0およびUOE1が、非選択状態に維持される。一方、ワードゲート回路132により、ユニット演算子セルUOE2およびUOE3に対しては、書込ワード線WWLおよび読出ワード線RWLAおよびRWLB上の信号電位に従ってローカルワード線群LWG1が選択状態へ駆動され、データの書込および読出アクセスが実行される。したがって、ユニット演算子セルUOE2へは、対応のグローバル書込データ線WGLA2およびWGLB2上データ/Aおよび/Bが格納され、ユニット演算子セルUOE3へは、対応のグローバル書込データ線WGLA3およびWGLB3上のデータAおよびBが格納されて読出される。
ポートBが選択され、また、ダミーセルDMCにおいて2つの直列ダミートランジスタがダミーセル選択信号DCLBにより選択されており、センスアンプSA2およびSA3からの出力データは、それぞれ、ユニット演算子セルUOE2およびUOE3の記憶データのAND演算結果(/A・/B)および(A・B)である。センスアンプSA0およびSA1からメインアンプMA0およびMA1を介して出力されるデータは、“0”である。したがって、ORゲートOG2からレジスタ50を介して出力されるデータは、(/A・/B+A・B)となる。
図31に示す論理テーブルから、この出力データは、入力ボローBRinが“1”のときには、データAおよびBが共に“1”であるかまたは“0”のときに、減算値GIFFが“1”となるという条件を満たしている。従って、入力ボローBRinが“1”および“0”のいずれにおいても、正確に図32に示す構成により、入力データAおよびBの減算値DIFFを生成することができる。これにより、組合せ論理演算実行時と同様、1クロックサイクルで、データAおよびBについての1ビット減算を実行することができる。
[ボロー生成部の構成]
図34は、1ビット減算器における入力データA,Bと入力ボローBRinと出力ボローBRoutの論理値の対応関係を一覧して示す図である。図34において、入力ボローBRinが“0”のとき、出力ボローBRoutが“1”となるのは、データ(A,B)が(0,1)のときのみである。したがって、データ/A・Bが“1”のときに、出力ボローBRoutが“1”となる。すなわち、入力ボローBRinが“0”のときには、出力ボローBRoutは、データ/A・Bで与えられる。
一方、入力ボローBRinが“1”のときに、出力ボローBRoutが“1”となるのは、データ(A,B)が、(0,0)、(0,1)、または(1,1)のときである。したがって、入力ボローBRinが“1”のときには、データ(/A・/B+/A・B+A・B)が“1”であれば、出力ボローBRoutが“1”となる。この場合、入力ボローBRinの値に拘らず、AND演算結果/A・Bが“1”のときには、出力ボローBRoutが“1”となる。したがって、出力キャリーCY生成時と同様、出力ボローBRoutを生成する部分においても、3種類のデータの組を用いて出力ボローBRoutを生成することができる。
図35は、この発明の実施の形態2に従う1ビット減算器のボロー生成部の構成を概略的に示す図である。このボロー生成部においても、データパス28において、データパス演算単位グループ44に含まれる4つのデータパス単位ブロックDPUB0−DPUB3が利用される。但し、データパス単位ブロックDPUB3は、実際には利用されず、対応のマルチプレクサ56および57の入力の選択態様は、任意(ドントケア)である。
データパス単位ブロックDPUB0において、マルチプレクサ56は、インバータ52からの入力データDINA(=A)の反転値を選択し、マルチプレクサ57が、入力データDINB(=B)を選択する。したがって、対応のグローバル書込データ線WGLA0およびWGLB0上には、データ/AおよびBが伝達される。
データパス単位ブロックDPUB1においては、マルチプレクサ56および57は、それぞれ、入力データAおよびBを選択する。したがって、グローバル書込データ線WGLA1およびWGLB1上には、データAおよびBが伝達される。
データパス単位ブロックDPUB2においては、マルチプレクサ56および57は、それぞれインバータ52および54から与えられる入力データAおよびBの反転値/Aおよび/Bを選択する。したがって、対応のグローバル書込データ線WGLA2およびWGLB2上にはデータ/Aおよび/Bが伝達される。
データパス単位ブロックDPUB0に対応して配置されるユニット演算子セルUOE0に対しワードゲート回路140が設けられ、データパス単位ブロックDPUB1−DPUB3に対して設けられるユニット演算子セルUOE1−UOE3に対し、共通にワードゲート回路142が設けられる。ワードゲート回路140は、入力ボローBRinの論理値に拘らず、書込ワード線WWLおよび読出ワード線対RWLA/B上の信号を、ユニット演算子セルUOE0の書込ローカルワード線群LWLG0上に伝達する。一方、ワードゲート回路142は、入力ボローBRinの論理値に従って、選択的に、書込ワード線WWLおよび読出ワード線対RWLA/B上の信号電位を、ローカルワード線群LWLG1上に伝達する。ローカルワード線群LWLGおよび読出ワード線対の構成は、1ビット加算器のキャリー生成部の構成と同じである。
図36は、ワードゲート回路140および142の構成の一例を概略的に示す図である。図36に示すワードゲート回路140および142の構成は、入力キャリーCinに代えて入力ボローBRinが与えられることを除いて、図30に示すワードゲート回路120および122の構成と同じである。したがって、図36においては、図30に示すワードゲート回路120および122の構成要素と対応する構成要素に対しては同一参照番号を付し、その詳細説明は省略する。
この図36に示すワードゲート回路140および142の構成において、入力ボローBRinが“0”のときには、ユニット演算子セルUOE1−UOE3は、すべて非選択状態に維持される。一方、入力ボローBRinが“1”のときには、ユニット演算子セルUOE1−UOE3に対するローカル書込ワード線LWWL1、ローカル読出ワード線LRWLA1およびLRWLB1は、書込ワード線WWL、読出ワード線RWLAおよびRWLB上の信号電位に従って選択状態へ駆動され、これらのユニット演算子セルUOE1−UOE3に対してデータの書込および読出が実行される。
一方、ユニット演算子セルUOE0は、入力ボローBRinの値に拘らず、常時、書込ワード線WWL、および読出ワード線RWLA,RWLB上の信号電位に従って対応のローカル書込ワード線LWWL0、ローカル読出ワード線LRWLA0およびLRWLB0が選択状態へ駆動されて、データの書込/読出が実行される。次に、図35に示すボロー生成部の動作を、図34に示す論理値テーブルおよび図36に示すワードゲート回路の構成を適宜参照して説明する。
入力ボローBRinが“0”のときには、上述のように、ワードゲート回路142により、ユニット演算子セルUOE1−UOE3は、すべて非選択状態に維持される。この状態においては、ユニット演算子セルUOE0に対し、グローバル書込データ線WGLA0およびWGLB0上に伝達されたデータ/AおよびBが格納されて読出される。ポートBが選択され、ダミーセルDMCは、ダミーセル選択信号DCLBに従って直列ダミートランジスタが選択される。したがって、センスアンプSA0からの出力データは、転送データのAND演算結果/A・Bとなる。センスアンプSA1−SA3は、ユニット演算子セルUOE1−UOE3がすべて非選択状態であるため、“0”のデータを出力する。
これらのセンスアンプSA0−SA2の出力信号(データ)が対応のメインアンプMA0−MA2を介して3入力ORゲートOG1へ与えられる。したがって、ORゲートOG1からは、センスアンプSA0の出力データに応じたデータが出力され、レジスタ50からの出力データは、データ/A・Bに等しくなる。このデータは、図34に示す論理値テーブルにおける、入力ボローBRinが“0”のときの論理値関係を満たしており、従って、入力ボローBRinが“0”のときの出力ボローBRoutを得ることができる。
一方、入力ボローBRinが“1”のときには、ワードゲート回路142は、ユニット演算子セルUOE1−UOE3に対して配置されるローカルワード線群LWLG1を、それぞれ書込ワード線WWLおよび読出ワード線対RWLA/B上に信号電位に従って選択状態へ駆動する。したがって、ユニット演算子セルUOE1には、グローバル書込データ線WGLA1およびWGLB1上のデータAおよびBが書込まれて読出され、ユニット演算子セルUOE2には、データ/Aおよび/Bが書込まれて読出される。ユニット演算子セルUOE3は、未使用である。対応のセンスアンプSA1−SA2からは、データA・Bおよび/A・/Bが出力される。
3入力ORゲートOG1へは、センスアンプSA0−SA2からのデータ/A・B、A・Bおよび/A・/Bが与えられる。したがって、ORゲートOG1からレジスタ50を介して出力されるデータは、データ(/A・B+A・B+/A・/B)となる。このデータは、図34に示す入力ボローBRinが“0”のときの入力データと出力ボローの論理値関係を満たしており、入力ボローBRinが“0”のときの出力ボローBRoutを生成することができる。
従って、入力ボローBRinの論理値にかかわらず、図34に示す論理値関係を満たす出力データを生成することができ、正確に出力ボローBRoutを生成することができる。
図32に示す1ビット減算器および図35に示すボロー生成部を共通の入力データに対して並列に動作させることにより、1ビット減算器を実現することができ、1クロックサイクルで入力データについての減算を実行する減算器を実現することができる。
この減算操作においても、組合せ論理演算と同様、単に内部のデータ伝搬経路の接続態様を変更しているだけであり、内部構成を変更することなく減算の算術演算を実行することができる。
なお、この減算器においても、ポートの接続、組合せ論理演算回路入力におけるゲートの選択およびデータパスにおけるデータ伝搬経路の選択は、それぞれ対応の制御信号に従って、指定された演算操作内容に基づいて設定される。これらの制御信号については、データパスにおいては、キャリー/ボロー生成部の4つのデータパス単位ブロックに対する4系統の切換制御信号および加算/減算部に対する4つのデータパス単位ブロックに対する4系統の切換制御信号が生成されれば良い。組合せ論理演算回路におけるロジックパス指示信号についても同様である。
[変更例1]
図37は、この発明の実施の形態2に従う半導体信号処理装置の変更例の4ビット全加算回路の構成を概略的に示す図である。この図37に示す4ビット全加算回路は、図9に示す4ビット加算・減算処理回路64により構成されてもよく、また別途設けられてもよい。図9に示す4ビット加算/減算回路処理回路64においては、8ビットのメインアンプ出力G<4(k+7):4k>が用いられる。データビットG<4k>およびG<4(k+1)>を、それぞれ、サムおよびキャリー出力として利用することにより、図37に示す4ビット加算回路を実現することができる。1データパス演算単位グループ(44)が1ビット全加算器のキャリー生成部および加算部各々に対応する。従って、8個のデータパス演算単位グループの出力データビットを、図9に示すビットG<4(k+7):4k>として利用して、加算/減算が実行されても良い。しかしながら、ここでは、実施の形態2に従う4ビット全加算回路は、図9に示す4ビット加算・減算処理回路64とは別途設けられるものとして説明する。
図37において、1ビット全加算器FA0−FA6が設けられる。これらの1ビット全加算器FA0−FA6の各々は、図25に示す1ビット加算回路および図28に示すキャリー生成部を含む。したがって、これらの1ビット全加算器FA0−FA6の各々は、8個のデータパス単位ブロック(DPUB)に対応して配置され、加算用の4つのユニット演算子セル、キャリー生成用の4つのユニット演算子セル、キャリー合成のためのワードゲート回路、対応のセンスアンプ、サムSUM生成用の4入力ORゲート、キャリーCY生成用の3入力ORゲートを含む。これらは、図25および図28に示すようにキャリー生成部および加算部の構成に対応し、各データパス演算単位グループ毎に、実行する処理に応じてデータパスのデータ転送経路および組合せ論理演算回路の単位演算ブロックのデータ転送経路が設定される。
1ビット全加算器FA0のキャリー入力CINは、入力キャリーCinを受ける。1ビット全加算器FA1、FA3およびFA5の各々に対しては、スイッチング素子SWNおよびNTXが、キャリー入力CINに対し並列に配置される。1ビット全加算器FA2、FA4およびFA6の各々のキャリー入力CINに対しては、スイッチング素子SWNおよびPTXが並列に配置される。
スイッチング素子SWNは、1ビット加算演算指示BIT1のセット時(Hレベルのとき)導通し、入力キャリーCinを対応の1ビット全加算器FA1−FA6のキャリー入力CINに伝達する。スイッチング素子NTXは、4ビット加算演算指示BIT4の活性化時(Hレベルのとき)導通し、接地電圧GNDを1ビット全加算器FA1、FA3およびFA5のキャリー入力CINに伝達する。スイッチング素子PTXは、反転4ビット加算演算指示/BIT4の活性化時(Lレベルのとき)導通し、対応の1ビット全加算器FA2、FA4およびFA6のキャリー入力CINに電源電圧VCCを伝達する。すなわち、スイッチング素子NTXは、導通時、強制的に入力キャリーCinを“0”に設定し、スイッチング素子PTXは導通時、入力キャリーCinを強制的に“1”に設定する。
キャリー入力CINは、それぞれ対応のワードゲート回路に対する入力キャリーCinを受けるノードに結合される。入力キャリーの強制設定により、各1ビット全加算器FA0−FA6に含まれるワードゲート回路のユニット演算子セルの選択/非選択を設定する。1ビット全加算器FA0−FA6に対する入力キャリーCinの強制設定により、1ビット全加算器FA1−FA6において前段の1ビット全加算器の出力するキャリーが“0”の場合および“1”の場合の加算演算を、それぞれ並列に実行する。
この1ビット全加算器FA0−FA6に対し、データパスにおいてデマルチプレクサ(DEMUX)DX0−DX6が設けられる。これらのデマルチプレクサDX0−DX6は、図9に示すデマルチプレクサ63に対応し、対応の1ビット全加算器FA0−FA6のサム生成用の4入力ORゲートの出力データ(図25のOG1)またはキャリー生成用の3入力ORゲート(図28のOG1)の出力データを選択する。
デマルチプレクサDX0から、最下位ビットのサムS<0>およびキャリーCY<0>が生成される。デマルチプレクサDX1、DX3およびDX5から、前段のキャリーCYが“0”の場合におけるサムS0<1>、S0<2>およびS0<3>とキャリーCY0<1>−CY0<3>が出力される。デマルチプレクサDX2、DX4およびDX6からは、前段の1ビット全加算器からの出力キャリーが“1”の場合におけるサムS1<1>−S1<3>およびキャリーCY1<1>−CY1<3>が出力される。
4ビット加算処理回路145は、組合せ論理演算回路26内に配置され、デマルチプレクサDX1−DX6に対応して設けられるマルチプレクサ147a−147fを含む。デマルチプレクサDX0からはサムS<0>が加算最下位ビットS<0>として出力される。マルチプレクサ147aは、中間キャリービットCY<0>に従ってサムS0<1>およびS1<1>の一方を選択して、加算ビットS<1>を生成する。マルチプレクサ147bは、中間キャリービットCY<0>に従ってキャリーCY0<1>およびCY1<1>の一方を選択して中間キャリービットCY<1>を生成する。
マルチプレクサ147cは、サムS0<2>およびS1<2>の一方を、中間キャリービットCY<1>に従って選択して加算ビットS<2>を生成する。マルチプレクサ147dは、中間キャリービットCY<1>に従って中間キャリービットCY0<2>およびCY1<2>の一方を選択して、中間キャリービットCY<2>を生成する。マルチプレクサ147eは、中間キャリービットCY<2>に従ってサムS0<3>およびS1<3>の一方を選択して最上位加算ビットS<3>を生成する。マルチプレクサ147fは、中間キャリービットCY<2>に従って、中間キャリービットCY0<3>およびCY1<3>の一方を選択して出力キャリーCOUTを生成する。
すなわち、予め入力キャリーが“0”および“1”のときのキャリーおよびサムを並列に生成し、4ビット加算処理回路145においてマルチプレクサ147a−147fにより、実際に生成される中間キャリービットCY<0>−CY<2>に従って最終のサムおよびキャリーを選択する。
4ビット加算演算実行時には、4ビット加算指示BIT4および/BIT4は活性状態に設定され、4ビット加算演算操作を活性化することにより、1クロックサイクルで4ビットの加算処理を実行することができる。1ビット全加算器FA0−FA6において、それぞれ個々に1ビット全加算を行ない、その加算結果を出力する場合には、1ビット加算指示BIT1を活性化し、入力キャリーCinを、キャリー入力CINに結合する。この場合には、1ビット全加算器FA0−FA6に対する入力キャリーCinが個々に設定される(図37のキャリーCinの伝達線が、1ビット全加算器FA0−FA6に応じて7ビット幅を有し、各キャリー伝達線の電位を個々に設定する)。
この1ビット全加算器FA0−FA6各々においてビットシリアルにかつデータパラレルに全加算を行なう場合には、生成されたキャリーを対応の1ビット全加算器のキャリー入CINへフィードバックする。ここで、「ビットシリアルかつデータパラレル」は、複数の多ビットデータを並列にかつ各データを1ビットずつ演算する態様を示す。
また、この図37に示す4ビット全加算器の構成においてキャリーCinを入力ボローBRinに置換え、キャリーCY<0>−CY1<3>をボローBR<0>−BR<3>に置換えれば、4ビット減算器を実現することができる。この場合、1ビット減算器の構成として、図32および図35に示す構成を利用する。
また、図37に示す4ビット加算処理回路145が、図9に示す4ビット加算/減算処理回路64として用いられても良い。
[4ビット加算器の変更例2]
図38は、この発明の実施の形態2における4ビット全加算器の変更例の演算子セルサブアレイブロックにおける配置を概略的に示す図である。図38において、演算子セルサブアレイブロック内の行ROW<0>において8セル群GP00−GP06が配置され、行ROW<1>に8セル群GP10−GP16が配置される。これらの2行8列に整列して配置される8セル群GP00−GP06およびGP10−GP16の各々は、8個のユニット演算子セルを含み、それぞれサムSUMを生成するための4ユニット演算子セルおよびキャリーを生成するための4ユニット演算子セルを含む。8セル群におけるユニット演算子セルの配置は、先の図25および図28に示す配置と同じであり、入力キャリーCinに応じて選択的にユニット演算子セルを選択状態/非選択状態に設定するワードゲート回路がキャリーおよびサム生成部において配置される。
8セル群GP00−GP06に対しては、入力キャリーCinが“0”に固定されて伝達され、8セル群GP10−GP16に対しては、入力キャリーCinが“1”に固定されて伝達される。1行に整列して配置されるユニット演算子セルに対して異なる入力キャリーCinを伝達する構成に代えて、ユニット演算子セル行毎に入力キャリーCinの値が固定され、入力キャリーCin伝達線の配置が容易となる。
行ROW<0>において、8セル群GP00、GP01、GP03およびGP05に、4ビット加算指示BIT4が与えられ、8セル群GP02、GP04およびGP06に、補の4ビット加算指示/BIT4が与えられる。
行ROW<1>においては、8セル群GP10、GP11、GP13およびGP15には、4ビット加算指示/BIT4が与えられ、8セル群GP12、GP14およびGP16へは、4ビット加算指示BIT4が与えられる。
これらの8セル群GP00−GP06およびGP10−GP16各々においては、図25および図28に示すようなワードゲート回路(100,102)が設けられており、4ビット加算指示BIT4が“H”に設定されて4ビット加算演算を指示するときには、入力キャリーCinに従ったゲート処理が実行される。また、4ビット加算実行時に補の4ビット加算演算指示/BIT4が“L”に設定されると、図28に示すワードゲート回路が、その出力をすべてLレベルに固定する。これにより、補の4ビット加算演算指示/BIT4を受ける8セル群は、常時非選択状態に設定され、4ビット加算演算指示BIT4を受ける8セル群に対し書込アクセスおよび読出アクセスが入力キャリーCinの値に従って実行される。
これらの8セル群GP00−GP06およびGP10−GP16に対してセンスアンプ(SA)群SAG0−SAG6が設けられる。これらのセンスアンプ群SAG0−SAG6の各々は、8個のセンスアンプを含み、これらのセンスアンプ群SAG0−SAG6の出力データが、メインアンプを介して組合せ論理演算回路へ与えられる。この組合せ論理演算回路において、図25および図28に示すように、サムに対しては4入力ORゲート処理が実行され、キャリーに対しては、3入力ORゲート処理が実行される。その後、図37に示す4ビット加算処理回路145において最終の加算処理(選択処理)が実行され、4ビット加算結果が生成される。
この図38に示す構成においては、4ビット加算演算指示BIT4および/BIT4により、同一列に配置される8セル群(たとえばGP00,GP10)の一方をイネーブル状態、他方をディスエーブル状態に設定する。これにより、2行のワード線(書込ワード線または読出ワード線)を選択して、行ROW<0>およびROW<1>を並行して選択状態に駆動しても、対応の読出ビット線上における電流の衝突は回避され、選択された8セル群(図38において実線のブロックで示す)のデータが、対応のセンスアンプ群に伝達される。また、書込データについても、非選択8セル群に対する誤書込は回避される。
なお、行ROW<0>およびROW<1>を並行して選択状態に駆動する構成は、単に、ワード線アドレスの最下位ビットを4ビット加算演算指示BIT4に従って縮退状態(ドントケア状態)に設定することにより、容易に実現することができる。
この図38に示す構成を利用することにより、同様、1クロックサイクルで4ビット加算処理をビットパラレル態様で実現することができる。すなわち、1クロックサイクルで、図38に実線で示す8セル群に対して書込を行い、次のクロックサイクルにおいて同様、実線で示す8セル群に対して読出を行なうことができ、合計2クロックサイクルで4ビット加算処理をビットパラレル態様で実現することができる。
同一列の8セル群の一方は活性状態かつ他方が非活性状態(ユニット演算子セルが非選択状態)であり、書込データおよび読出データの衝突は生じない。この加算演算処理においても、1つの演算子セルサブアレイブロックにおいてデータの書込を行っているときに他の演算子セルサブアレイブロックからデータの読出を行うことにより、4ビット加算処理をパイプライン的に実行することができ、等価的に1クロックサイクルで4ビット加算処理を実行することができる。
なお、行ROM<0>およびROW<1>は、それぞれ別々の異なる演算子セルサブアレイブロックに含まれているユニット演算子セル行であってもよい。また、SOIトランジスタを利用するユニット演算子セルにおいては、データ書込経路とデータ読出経路とが異なる。従って、ユニット演算子セル群に対してデータ読出を行って加算を実行しているときに、並行して別のユニット演算子セル群に対してデータの書込が行われても良い。
また、この図38に示す配置においても、入力キャリーCinに代えて入力ボローBRinを利用することにより、4ビットのビットパラレルかつデータシリアルの減算処理を実行することができる。「ビットパラレルかつデータシリアル」は1つの多ビットデータについて全ビットを並列に処理するとともに、各データを順次処理する態様を示す。
以上のように、この発明の実施の形態2に従えば、組合せ論理演算回路においてユニット演算子セルの記憶値に対する組合せ論理演算処理を実行しており、加減算の算術演算を内部構成を変更することなく高速に実行することができる。
また、キャリー/ボローの値を固定して予め加算/減算結果を予備的に求め、最終段において前段回路の実際のキャリー/ボロー出力に従ってこれらの予備加算/減算結果の一方を選択することにより、高速でビットパラレル態様で複数ビットの加算/減算処理を実行することができる。
[実施の形態3]
図39は、この発明の実施の形態3に従うユニット演算子セルの電気的等価回路を示す図である。この図39に示すユニット演算子セルUOEの構成は、以下の点で、図1に示すユニット演算子セルの構成と異なる。すなわち、PチャネルSOIトランジスタPQ1およびPQ2に対し、互いに異なる書込ワード線WWLAおよびWWLBが設けられる。この図39に示すユニット演算子セルUOEの他の構成は、図1に示すユニット演算子セルの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図39に示すユニット演算子セルUOEを利用する場合、書込ワード線WWLAおよびWWLBを交互に選択状態へ駆動することができ、記憶ノードSNAおよびSNBに、個々にデータの書込を行なうことができる。したがって、たとえば、記憶ノードSNAにデータを保持し、記憶ノードSNBにサーチデータを書込むことにより、サーチデータと各エントリ(1行のユニット演算子セルで構成される)の記憶データの一致/不一致を識別することができる。
図40は、図39に示すユニット演算子セルUOEの平面レイアウトを概略的に示す図である。図40において、破線ブロックで示す領域にPチャネルSOIトランジスタが形成される。このPチャネルSOIトランジスタ形性領域において、高濃度P型領域150aおよび150bがY方向に整列して配置される。この高濃度P型領域150aおよび150bの間に、N型領域152aが配置される。このN型領域152aが、SOIトランジスタPQ1のボディ領域として機能する。
P型領域150bのY方向において隣接してP型領域154aが配置される。このP型領域154aとY方向において整列してかつ離れてP型領域154bが配置される。P型領域154bにY方向において接してかつ整列して高濃度P型領域150cが配置され、また、P型領域150cとY方向に整列して高濃度P型領域150dが配置される。P型領域150cおよび150dの間には、N型領域152bが配置される。このN型領域152bが、SOIトランジスタPQ2のボディ領域を構成する。P型領域150dに接して、P型領域154cがX方向に延在して配置される。
PチャネルSOIトランジスタ形成領域外部において、P型領域150bに隣接して高濃度N型領域156aが配置され、このN型領域156aとY方向に沿って整列して高濃度N型領域156bおよび156cが互いに間をおいて配置される。N型領域156aおよび156bの間には、P型領域154aがX方向に延在して配設され、またN型領域156bおよび156cの間には、P型領域154bがX方向に沿って延在して配置される。
N型領域152a上に、ゲート電極配線158aがX方向に沿って連続的に延在して配置され、また、P型領域154a上に、N型領域156aおよび156bの間の領域を横切るようにゲート電極配線158bがX方向に沿って連続的に配設される。P型領域154b上に、N型領域156bおよび156cの間の領域に連続的にX方向に沿って延在するようにゲート電極配線158cが配設される。
X方向に連続的に延在して、かつ互いに間をおいて、第2金属配線160a−160eが配設される。第2金属配線162aは、ゲート電極配線158aと整列して配置されかつ電気的に接続され(コンタクト部は示さず)、書込ワード線WWLAを構成する。第2金属配線160bは、コンタクト/ビアCVbおよび中間配線を介してN型領域156aに電気的に接続され、ソース線SLを構成する。第2金属配線160cは、その下層に配設されるゲート電極配線158bに並行に配設されてかつ電気的に接続され(コンタクト部は示さず)、読出ワード線RWLAを構成する。第2金属配線160dは、ゲート電極配線158cと整列して配置されかつ電気的に接続され、読出ワード線RWLBを構成する。第2金属配線160eは、ゲート電極配線158dと整列して配置されかつ電気的に接続され、書込ワード線WWLBを構成する。
Y方向に沿って連続的に延在してかつ互いに間をおいて第1金属配線162a−162dが配設される。ここで、第1金属配線は、第2金属配線よりも下層の金属配線である。
第1金属配線162aは、コンタクト/ビアCVdを介してN型領域156cに電気的に接続される。第1金属配線162bは、コンタクト/ビアCVbを介してN型領域156bに電気的に接続される。第1金属配線162cは、ビア/コンタクトCVaを介してP型領域150aに電気的に接続される。第1金属配線162dは、コンタクト/ビアCVeを介してP型領域150cに電気的に接続される。
第1金属配線162aおよび162bは、ポートBおよびポートAを介してデータDOUTBおよびDOUTAを伝達する読出ビット線を構成する。第1金属配線162cおよび162dは、入力データDINAおよびDINBを伝達する書込ポートおよびグローバル書込データ線を構成する。
書込ワード線WWLおよびWWLBを読出ワード線RWLAおよびRWLBを間に挟むように配置することにより、図1に示すユニット演算子セルUOEのレイアウトを大幅に変更することなく、SOIトランジスタPQ1およびPQ2のゲートを、それぞれ異なる書込ワード線WWLAおよびWWLBに電気的に結合することができる。
図41は、この発明の実施の形態3に従う半導体信号処理装置のデータパスおよび組合せ論理演算回路のデータ伝搬経路の接続態様を概略的に示す図である。この図41に示す構成において、組合せ論理演算回路26においては、2入力ORゲートOG0が選択される。2入力ORゲートOG0は、メインアンプ回路24に含まれるメインアンプの出力信号P<4i>およびP<4i+1>を受ける。
データパス28において各データパス演算単位ブロック44<0>−40<m>に対し共通にマッチ線MLが配置される。データパス演算単位グループ44<0>−44<m>各々において、データパス単位ブロックDPUB0に対応して、放電トランジスタTQ1が設けられる。この放電トランジスタTQ1は、NチャネルMOSトランジスタまたはSOIトランジスタで構成され、マッチ線MLに結合され、対応の2入力ORゲートの出力信号に従ってマッチ線MLを放電する。マッチ線MLに対し、さらに、プリチャージ指示信号/PREに従ってマッチ線MLを電源電圧レベルに充電するPチャネルのプリチャージトランジスタPQ0と、マッチ線ML上の信号電位を増幅する増幅回路AMPとが設けられる。
演算子セルアレイ20においては、エントリデータとして、入力データBおよびその反転データ/Bがデータパス単位ブロックDPUB0およびDPUB1に対応して配置されるユニット演算子セルの記憶ノードSNBに格納される。
サーチ開始後、データパス単位ブロックDPUB0およびDPUB1においてデータAの反転データ/Aおよび非反転データAを選択して対応のユニット演算子セルの記憶ノードSNAに格納し、データの読出を行なう。対応のユニット演算子セルにおいては、データ(/A、B)および(A、/B)の読出が行われる。
演算子セルアレイ20のセンスアンプからは、AND演算結果A・/Bおよび/A・Bが出力されて、対応のメインアンプを介して2入力ORゲートOG0へ与えられる。データAおよびBが等しい場合には、これらのAND演算結果A・/Bおよび/A・Bは、“0”であり、ORゲートOG0の出力は、“0”である。一方、データAおよびBが不一致の場合には、データA・/Bおよび/A・Bの一方が“1”となり、対応のORゲートOG0の出力信号が“1”となる。
したがって、不一致を検出したORゲートOG0の出力信号が“1”となり、対応の放電用トランジスタTQ1がオン状態となり、マッチ線MLが放電される。マッチ線MLの電圧レベルは、データAおよびBが一致している場合には、プリチャージトランジスタPQ0によりプリチャージされた電圧レベルであり、データAおよびBが不一致の場合には、放電用トランジスタTQ1により放電された、プリチャージ電圧よりも低い電圧レベルである。増幅回路AMPによりマッチ線MLの電圧レベル増幅することにより、その出力信号SRSLTの論理レベルに従ってマッチ線MLの電圧レベルを識別することができ、応じて、サーチデータAと先に格納されたサーチ対象データ(エントリデータ)Bの一致/不一致を判定することができる。
図42は、この発明の実施の形態3に従う半導体信号処理装置がCAM(内容参照メモリ)として利用される場合の全体の構成を概略的に示す図である。この図42に示す半導体信号処理装置においては、アドレスカウンタ170が設けられる。データパス28に含まれる増幅回路AMPの出力データSRSLTにより、アドレスカウンタ170のカウントアップ/カウント停止が制御される。アドレスカウンタ170のカウント値をアドレス信号として行選択駆動回路22が、順次、演算子セルアレイ20内においてエントリERYを選択してサーチ動作を実行する。
図43は、この発明の実施の形態3に従う半導体信号処理装置の動作を示すフロー図である。以下、図43に示すフロー図を参照して、図39から図43に示す半導体信号処理装置のサーチ動作について説明する。
まず、サーチ対象データとして、データBを入力し、データパス28における経路選択処理により、データBおよび反転データ/BをエントリERYのユニット演算子セル(UOE0およびUOE1)にそれぞれ格納する(ステップSP1)。この場合、書込ワード線WWLBのみを選択し、ユニット演算子セルにおいて、図39に示すSOIトランジスタNQ2のボディ領域、すなわち記憶ノードSNBへデータの格納を行なう。このとき、また、アドレスカウンタ170は、初期値に設定されている。行選択駆動回路22が、このアドレスカウンタ170のカウント値に従って対応のエントリを選択し、選択エントリに対しデータBおよび/Bの書込を実行する。
次いで、アドレスカウンタ170をクロック信号(図示せず)に従って順次更新し、演算子セルアレイ20のエントリを順次更新し、サーチ対象データを順次格納する(ステップSP2)。
演算子セルアレイ20に必要なサーチ対象データがすべて格納された後、データAについてのサーチ動作を開始する(ステップSP3)。サーチ動作開始時においては、アドレスカウンタ170を初期値にリセットされる。データパス28においては、入力データ(サーチデータ)Aを用いてデータパス単位ブロックDPUB0およびDPUB1に対し反転データ/AおよびデータAを生成し、対応のユニット演算子セルに伝達する。このサーチデータの書込時においては、書込ワード線WWLBは非選択状態に維持し、書込ワード線WWLAのみを選択状態へ駆動する。次いで、行選択駆動回路22により、選択エントリの読出ワード線RWLAおよびRWLBを並行して選択し、ポートBを介してのデータの読出を実行する。
センスアンプSAからは、データA・/BおよびA・/Bが出力されて、対応のメインアンプを介して対応の2入力ORゲートOG0へ伝達される。この2入力ORゲートOG0の出力信号に従ってマッチ線MLが放電用トランジスタTQ1により選択的に放電される。マッチ線MLの電圧を増幅する増幅回路AMPの出力信号SRSLTに従って、図示しない制御回路(30)が、一致が発生したかの識別を行なう(ステップSP4)。
一致が検出された場合には、アドレスカウンタ170のカウント動作を停止し、そのカウント値を保持して出力する(ステップSP5)。アドレスカウンタ170のカウント値をアドレスインデックスとして用いて、この半導体信号処理装置が適用される用途に応じて適宜定められた処理が実行される。
一方、選択エントリの格納データとサーチデータAとが不一致の場合、全エントリのサーチが完了したかが、まず判定される(ステップSP6)。全エントリに対するサーチが行なわれていない場合には、アドレスカウンタ170のカウント値を更新し(ステップSP8)、行選択駆動回路22により次のエントリを選択してサーチを実行する(ステップSP9)。
一方、ステップSP6において全エントリに対するサーチが完了したと判定されると、演算子セルアレイ20に格納されるサーチ対象データが、すべてサーチデータAと不一致であるため、必要な不一致発生時の処理が実行される(ステップSP7)。
サーチ処理においては、各エントリを順次選択してサーチを実行する。したがって、通常の、TCAM(3値CAM)のような並列サーチ動作に比べて処理速度が遅くなるものの、ユニット演算子セルのレイアウト面積は、通常のSRAMセルを利用するTCAMに比べて大幅に低減することができる。
また、TCAMにおいては、通常、各セルに一致/不一致を判定するXOR回路が配置され、また、各エントリに対応してマッチ線が配置され、各マッチ線が対応のXOR回路により放電される。従って、マッチ線の充放電による消費電流が増大するという問題が生じる。
本実施の形態3においては、データパス28および組合せ論理演算回路26が、複数のエントリに共通に設けられており、このマッチ線の充放電電流は大幅に低減され、また、一致判定の構成要素を配置する部分のレイアウト面積を、大幅に低減することができる。
図44は、この発明の実施の形態3において利用される半導体信号処理装置の制御回路(30)の構成の一例を概略的に示す図である。図44において、制御回路30は、外部からのコマンドCMBをデコードするコマンドデコーダ70と、このコマンドデコーダ70からの演算操作指示OPLOGに従ってそれぞれ動作する接続制御回路272、書込制御回路274、読出ワード制御回路276、およびデータ読出制御回路278とを含む。
接続制御回路272は、コマンドデコーダ70からの演算操作指示OPLOGが、各エントリへのサーチ対象データの書込を指示するときには、切換制御信号MXASおよびMXBSを、XOR演算時と同様、相補データを隣接するデータパス単位ブロックにおいて生成するように接続経路を形成する状態に設定し、また、ロジックパス指示信号LGPSを2入力ORゲートを選択する状態に設定する。
書込制御回路274は、演算操作指示OPLOGが、エントリへのサーチ対象データの書込を指示するときには、書込ワード線活性化信号WWLENBおよび書込活性化信号WRENを活性化し、書込ワード線活性化信号WWLENAは非活性状態に維持する。一方、この演算操作指示OPLOGが、サーチ開始を指示する場合には、書込制御回路274は、書込ワード線活性化信号WWLENBを非活性状態に指示し、書込活性化信号WRENおよび書込ワード線活性化信号WWLENAを活性状態に駆動する。
読出ワード制御回路276は、演算操作指示が、サーチ対象データの書込を示す場合には、読出活性化信号RREN、読出ワード線活性化信号RWLENAおよびRLENBを非活性状態にし、また、メインポート選択信号PRMXMを非活性状態に指示する。一方、演算操作指示OPLOGが、サーチ開始を指示する場合には、読出ワード制御回路276は、書込ワード線活性化信号WWLENAの活性化後、所定のタイミングで読出活性化信号RREN、読出ワード線活性化信号RWLENA、およびRWLENBを活性状態へ駆動する。
データ読出制御回路278は、演算操作指示OPLOGが、サーチ対象のデータの書込を指示する場合には、センスアンプ活性化信号SAEN、メインアンプ活性化信号MAENおよび読出ブロック選択活性化信号CLENをすべて非活性状態に維持する。一方、演算操作指示OPLOGが、サーチ開始を指示する場合には、読出ワード制御回路276は、読出ワード線の活性化前に、メインポート選択信号PRMXMを、ポートB(読出ポートRPTB)を選択する状態に設定し、また、読出ワード制御回路276の読出ワード線選択タイミングに応じて、センスアンプ活性化信号SAEN(/SOPおよびSON)を活性状態に駆動し、次いで、メインアンプ活性化信号MAENを活性化する。このとき、またセンスアンプ活性化前または後に、読出ゲート選択タイミング信号CLENを活性化する。
図45は、この発明の実施の形態3における行選択駆動回路に含まれる行ドライブ回路XDRiの構成の一例を概略的に示す図である。図45においては、行選択駆動回路22に含まれる読出セルサブアレイブロックポート接続およびサブアレイブロック選択部の構成を併せて示す。
行ドライブ回路XDRiは、読出ワード線を駆動する読出ワード線ドライブ回路280と、ダミーセルを選択するダミーセル選択回路282と、書込ワード線を駆動する書込ワード線ドライブ回路284とを含む。
読出ワード線ドライブ回路280は、読出活性化信号RRENの活性化に応答してイネーブルされ、アドレスカウンタ(170)からのカウント値をアドレス信号ADおよびブロックアドレス信号BADとして受けてデコードし、指定されたエントリに対して配置される読出ワード線RWLAおよびRWLBを、読出ワード線活性化信号RWLENAおよびRWLENBが規定するタイミングで選択状態へ駆動する。
ダミーセル選択回路282は、読出活性化信号RRENの活性化に応答してイネーブルされ、アドレスカウンタ170からのブロックアドレス信号BADを受けてデコードし、読出ワード線活性化信号RWLENAおよびRWLENBに従ってダミーセル選択信号DCLAおよびDCLBのうちの1つを選択状態に駆動する。ダミーセル選択回路282は、読出ワード線活性化信号RWLENAのみの活性化時、ダミーセル選択信号DCLAを選択状態に駆動し、読出ワード線活性化信号RWLENAおよびRWEANB両者の活性化時ダミーセル選択信号DCLBを選択状態へ駆動する。
書込ワード線ドライブ回路284は、書込活性化信号WRENの活性化時イネーブルされ、アドレスカウンタ170からのアドレス信号ADおよびBADをデコードし、書込ワード線活性化信号WWLENAおよびWWLENBの活性化タイミングで、書込ワード線WWLAおよびWWLBを選択状態へ駆動する。
サブアレイ選択駆動回路290は、読出ゲートを選択する読出ゲート選択回路292と、ポート接続を行なうポート接続制御回路294とを含む。読出ゲート選択回路292は、読出活性化信号RRENの活性化時イネーブルされ、、アドレスカウンタ170からのブロックアドレス信号BADをデコードし、デコード結果に従って対応の演算子サブアレイブロックに対する読出ゲート選択信号CSLを、読出ゲート選択タイミング信号CLENの活性化タイミングで選択状態へ駆動する。
ポート接続制御回路294は、読出活性化信号RRENの活性化に従ってイネーブルされ、メインポート選択信号PRMXMとブロックアドレス信号BADとに従って、対応の演算子セルサブアレイブロックのポート接続を設定するようにポート選択信号/PRMXAおよび/PRMXBの状態を設定する。これらのポート選択信号/PRMXAおよび/PRMXBが、先のポート選択信号PRMXに対応する。サーチ動作時には、ポート接続制御回路294は、ポートBを選択するように、ポート選択信号/PRMXAおよび/PRMXBのうちポートB選択信号/PRMXBをLレベルに駆動する。
図44および図45に示す制御回路および行選択駆動回路を利用することにより、この半導体信号処理装置をCAMとして動作させる場合においても、サーチ対象データのエントリへの格納、サーチデータを用いた各エントリ毎のサーチを実行することができる。
また、図44および図45に示す構成において、このブロックアドレスBADおよびアドレスADをアドレスカウンタ170を用いて生成する場合、異なる演算子セルサブアレイを指定するようにブロックアドレスBADを生成すると、異なる演算子セルサブアレイブロックへパイプライン態様でアクセスして、1つの演算子セルサブアレイブロックにおいて読出を行っているときに別の演算子セルサブアレイブロックに対してデータの書込を行なうことができる。これにより、各クロックサイクルにおいてデータの書込と読出とを異なる演算子セルサブアレイブロックにおいて並行して実行することにより、演算処理をパイプライン的に実行することができる。
このパイプライン態様のデータ処理を実現するためには、一例として、以下の構成を利用することができる。すなわち、読出ワード線ドライブ回路280、ダミーセル選択回路282およびポート接続制御回路290に対しては、アドレス信号BADおよびADを、書込ワード線ドライブ回路284への印加よりも1クロックサイクル遅延させて印加する。これにより、書込が行われた演算子セルサブアレイブロックに対して次のサイクルでデータの読出を行なうことができる。データパス28においては、データの書込経路と読出経路とが別々であり、書込時のデータ転送経路および読出時のデータ転送経路を並行して設定しても、何ら問題は生じない。これにより、パイプライン態様で高速で処理を実行することができる。
また、同一の演算子セルサブアレイブロックにおいて、異なるエントリに対して書込と読出とが並行して実行されても良い。この場合には、書込に対してワード線アドレス印加を1クロックサイクル、読出時に遅延する。書込が行われたエントリに対して次のサイクルにおいてデータの読出が実行される。この構成も、図44および図45に示す構成を利用して実現することができる。
以上のようにこの発明の実施の形態3に従えば、この半導体信号処理装置において、複数のエントリに共通に一致判定部を設け、各エントリに、サーチ対象データを格納した後に、サーチデータに従ってデータパスを介して相補データを生成して書込/かつ読出ように構成している。したがって、1エントリに対する検索動作を1クロックサイクルで実行することができ、また、メモリセルアレイのレイアウト面積および消費電流を低減することができる。
[実施の形態4]
図46は、この発明の実施の形態4に従う半導体信号処理装置の演算データの配列を概略的に示す図である。図46において、演算子セルアレイ20に対し、演算データ入出力/処理回路300が設けられる。この演算データ入出力/処理回路300は、メインアンプ回路24、組合せ論理演算回路26およびデータパス28を含む。
演算データ入出力/処理回路300は、演算単位ブロック302a、302b、…に分割される。演算単位ブロック302a、302b、…は、各々、組合せ論理演算回路の単位演算ブロック(UCL)およびデータパス演算単位グループ(44)を含む。
演算データ入出力/処理回路300に対し、ビットシリアル態様で、データワードA,B,C,Dが与えられ、これらのデータの演算処理(*)の結果データDOUTが、また、ビットシリアル態様で外部に出力される。図46においては、データワードA、B、C、およびDが、それぞれ、ビット幅が(n+1)ビットであり、また、出力データDOUTのビット幅が、(n+1)の場合のビットシリアルな転送態様を一例として示す。
このビットシリアルかつデータワードパラレルの態様でのデータ列の印加は、データ列変換回路310により実行される。データ列変換回路310は、ビットパラレルかつデータシリアルに与えられるデータワードA、B、C、…を順次格納し、これらの格納データをビットシリアルかつデータワードパラレルの態様で転送する。
前述のように、「ビットシリアルかつデータワードパラレル」な転送は、データワードを構成するビットが順次転送され、各データワードが並列に転送される態様を示す。「ビットパラレルかつデータワードシリアル」は、データワードがシリアルに転送されかつデータワードを構成する複数ビットが並列に転送される態様を示す。
データ列変換回路310の構成は、通常の直交変換回路を利用することにより容易に実現することができる。また、データ列変換回路310は、この半導体信号処理装置の外部に設けられるように示すが、この半導体信号処理装置の内部に、たとえばデータパス28内に設けられてもよい。
行選択駆動回路22によりエントリを選択し、ビットシリアルかつデータワードパラレルな態様で、指定された演算処理を実行する。
図46においては、演算子セルアレイ20において演算単位ブロック302aに対して設けられるサム生成ユニットおよびキャリー生成ユニットを代表的に示す。これらのサム生成ユニットおよびキャリー生成ユニットは、各々、4個のユニット演算子セルを含み、対応の演算単位ブロック302aからの転送データに対して実施の形態2において説明した1ビット加算/減算を実行する。他の演算単位ブロック302b、…、に対しても、同様のサムおよびキャリー生成ユニットが配置される。ユニット演算子セルの構成は実施の形態1の場合と同様である。
図47は、図46に示す演算データ入出力/処理回路300に含まれる組合せ論理演算回路26の処理単位(単位演算ブロックUCL)の構成を概略的に示す図である。この図47においては、1つの処理単位の単位演算ブロックUCL4kの構成を代表的に示す。
この図47に示す単位演算ブロックUCL4kの構成は、図9に示す単位演算ブロックの構成と、以下の点で異なる。すなわち、マルチプレクサ(MUX)60aに対してさらに、AND/OR複合ゲートAOCT0が設けられる。このAND/OR複合ゲートAOCT0は、対応の単位演算ブロックに対して設けられるメインアンプの出力データビットP<4k>、P<4k+1>およびP<4k+2>を受ける。AND/OR複合ゲートAOCT0は、ビットP<4k+2>がHレベルでありかつビットP<4k+1>がLレベルのとき、または、ビットP<4k>がHレベルのときにHレベルの信号を出力する。このAND/OR複合ゲートAOCT0を利用して、ビットシリアル態様での加算時のキャリーを生成する。
また、マルチプレクサ62aに対し、さらに、対応のメインアンプの出力ビットP<4k+1>および<4k+2>を受ける2入力ORゲートOG10が設けられる。この2入力ORゲートOG10は、サムSUMをビットシリアル態様で生成する際に利用される。
図47に示す単位演算ブロックUCL4kの他の構成は、図9に示す単位演算ブロックの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。なお、図47において、隣接する単位演算ブロックUCL<4k+1>の構成も併せて示すが、このブロックUCL<4k+1>においては、AND/OR複合ゲートAOCT0の構成を示していないが、単位演算ブロックUCL4k、UCL(4k+1)、…は、同一構成を有する。
図48は、図46に示す演算データ入出力/処理回路300に含まれるデータパス28の構成を概略的に示す図である。この図46に示すデータパス28は、以下の点で、図7に示すデータパス28とその構成が異なる。すなわち、データパス単位ブロックDPUB0において、AND/OR複合ゲートAOCT1と、マルチプレクサ(MUX)320とが設けられる。AND/OR複合ゲートAOCT1は、対応の組合せ論理演算回路の単位演算ブロックからのビットQ0およびQ2とデータパスの隣接して配置されるデータパス演算単位グループ(図46の対応のキャリー生成ユニットに対応して配置される)に含まれるデータパス単位ブロックに与えられるビットQ2(−1)およびQ3(−1)を受ける。このAND/OR複合ゲートAOCT1は、等価的に、ビットQ2と隣接して配置されるデータパス演算単位グループのビットQ3(−1)(=/CY_old)とを受ける第1のANDゲートと、対応のデータパス単位ブロックDPUB0に与えられるビットQ0と隣接して配置されるデータパス演算単位グループに与えられるビットQ2(−1)(CY_old)とを受ける第2のANDゲートと、これらの第1および第2のANDゲートの出力信号を受ける2入力ORゲートとで構成される。ここで、CY_oldは、前の加算サイクルで生成されたキャリーを示す。このAND/OR複合ゲートAOCT1を利用して、加算時のサムまたは減算時の減算値を生成する。
マルチプレクサ230は、このAND/OR複合ゲートAOCT1および対応の単位演算ブロックからのビットQ0の一方を演算切換信号OPAXに従って選択して、その出力信号をレジスタ50に与える。レジスタ50の出力信号がバッファ51を介して外部データDOUT<0>として出力され、また、同一のデータパス演算単位グループ内の各データパス単位ブロックDPUB0−DPUB3にフィードバックされる。
この図48に示すデータパス単位ブロックの構成、すなわちデータパス演算単位グループ44の他の構成は、図7に示すデータパス演算単位グループの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
このビットシリアルの加算および減算を行なう場合においても、各データパス演算単位グループ(44)に対応して配置されるキャリー生成ユニットおよびサム生成ユニットを利用して1ビット加算および減算を実行する。
ここで、このビットシリアル態様での加算/減算処理においては、ユニット演算子セルに対する読出ワード線および書込ワード線の選択に対してキャリー/ボローの値に応じた選択的な信号の伝達を行なうワードゲート回路は、用いられない。XOR演算またはXNOR演算実行時と同様にして、ユニット演算子セルの選択および書込/読出アクセスが実行される。
図49は、ビットシリアル加算演算を行なう場合のキャリーCYを生成する部分(図46に示すキャリー生成ユニットに対応)のデータ経路の接続を概略的に示す図である。図49において、データパス(28)におけるデータパス演算単位グループ44において、データパス単位ブロックDPUB0のマルチプレクサ56および57は、入力データDINA(=A)およびDINB(=B)をそれぞれ選択する。従って、対応のグローバルデータ線WGLA0およびWGLB0に対しては、データAおよびBが転送されて対応のユニット演算子セルUOE0に格納される。
データパス単位ブロックDPUB1において、マルチプレクサ56は、インバータ52を介して与えられる入力データAの反転値/Aを選択し、マルチプレクサ57は、インバータ54を介して与えられる入力データBの反転値/Bを選択する。対応のグローバル書込データ線対WGLA1およびWGLB1を介してデータ/Aおよび/Bが転送されて対応のユニット演算子セルUOE1に格納される。
データパス単位ブロックDPUB2において、マルチプレクサ56および57は、レジスタ50から転送されるキャリーCYを選択する。従って、対応のグローバル書込データ線対WGLA2およびWGLB2を介してデータCYが転送され、対応のユニット演算子セルUOE2に格納される。
データパス単位ブロックDPUB3においては、マルチプレクサ56および57は、それぞれインバータ53および55を介して与えられるレジスタ50からのキャリーCYの反転値/CYを選択する。従って、対応のグローバル書込データ線対WGLA3およびWGLB3を介してデータCYが転送され、対応のユニット演算子セルUOE3に格納される。
レジスタ50から伝達されるキャリーCYは、前のサイクルで演算処理されて生成されたキャリーであり、1ビット下位の加算結果により生成されたキャリーであり、現サイクルにおける入力キャリーCinと等価である。このキャリーCYを再度ユニット演算子セルに書込かつ読出すことにより前のサイクルで生成されたキャリーを入力キャリーCin(=CY_old)として新たなキャリーを生成することができる。
演算セルアレイにおいては、ダミーセルDMCに対して、ダミーセル選択信号DCLBが与えられる。したがって、2つの直列ダミートランジスタ(DTB0,DTB1)が選択される。ユニット演算子セルUOE0−UOE3に対する読出および書込ワード線の配置は、実施の形態1の場合と同じであり、各ユニット演算子セルUOE0−UOE3に対し、対応のグローバル書込データ線WGLAおよびWGLBに伝達されたデータが書込まれ、次いで読出される。
読出ポート選択回路36においては、ポート切換信号PRMXBにより、ポートBが選択される。したがって、センスアンプSA0−SA3の出力信号は、対応のユニット演算子セルUOE0−UOE3の格納データのAND演算結果を示す。すなわち、センスアンプSA0からは、データA・Bが出力され、センスアンプSA1からはデータ(/A・/B)が出力される。センスアンプSA2からは、データCY・CY=CYが出力され、センスアンプSA3からは、データ(/CY・/CY)=/CYが出力される。
すなわち、前サイクルにおいて生成された中間キャリーCYに応じた値がセンスアンプSA2およびSA3から出力される。これらのセンスアンプSA2およびSA3の出力ビットは、バッファBFF2およびBFF3を介して、隣接して配置されるサム生成用のデータパス演算単位グループへ与えられ、前サイクルにおいて生成されたキャリー、すなわち1ビット下位の演算により生成されたキャリーを入力キャリCin(=CY_old)として利用してサムを生成する。
センスアンプSA0−SA2それぞれに対応して配置される図示しないメインアンプからの出力ビットP0−P2が、AND/OR複合ゲートAOCT0へ与えられる。
したがって、このAND/OR複合ゲートAOCT0からは、キャリーCYとして、次式で示されるキャリーCYが生成される:
CY=A・B+(/(/A)・(/B))・CY_old
=A・B+(A+B)・CY_old.
ここで、キャリーCY_oldは、前サイクルにおいて生成された中間キャリーであり、現サイクルにおける入力キャリー(Cin)となる。
図29に示す論理テーブルから明らかに、入力キャリーCY_oldが“0”のとき、出力キャリーCYが“1”となるのは、データA・Bが“1”のときである。また、入力キャリーCY_oldが“1”のときに出力キャリーCYが“0”となるのはデータAおよびBが共に“0”のときである。したがって、この図49に示すように、AND/OR複合ゲートAOCT0による複合演算処理により、この図29に示す論理値関係を満たすキャリーCYを生成することができ、各クロックサイクル毎に中間キャリーCYを生成することができる。
図50は、ビットシリアル態様での1ビット加算を実行する部分の構成を概略的に示す図である。この1ビットシリアル加算部は、図46に示すキャリー生成ユニットに隣接して配置されるサム生成ユニットに対応する。したがって、データパス演算単位グループとして、キャリー生成ユニットを構成するデータパス演算単位グループに隣接するデータパス演算単位グループのデータパス単位ブロックDPUB4−DPUB7が用いられる。
演算子セルアレイにおいて、ダミーセルDMCに対しては、ダミーセル選択信号DCLBが与えられ、直列ダミートランジスタが選択される。ユニット演算子セルUOE4−UOE7に対しては、先の実施の形態1の場合と同様、読出ワード線および書込ワード線が、それぞれ順次選択され、2つの記憶ノード(SNAおよびSNB)に対する書込および読出が実行される。
データパス演算単位グループ44において、データパス単位ブロックDPUB4においては、マルチプレクサ(MUXA)56が、入力データDINA(=A)を選択し、マルチプレクサ(MUXB)57が、インバータ54からの入力データDINB(=B)の反転値/Bを選択する。したがって、対応のグローバル書込データ線WGLA4およびWGLB4上にはデータAおよび/Bが伝達され、対応のユニット演算子セルUOE4に格納される。
データパス単位ブロックDPUB5においては、マルチプレクサ56は、インバータ52からの入力データAの反転値/Aを選択し、マルチプレクサ57が、入力データBを選択する。したがって、対応のグローバル書込データ線WGLA5およびWGLB5上にはデータ/AおよびBが伝達され、対応のユニット演算子セルUOE5に格納される。
データパス単位ブロックDPUB6においては、マルチプレクサ56および57は、それぞれ、インバータ52および54から与えられる入力データAおよびBの反転値/Aおよび/Bを選択する。したがって、対応のグローバル書込データ線WGLA6およびWGLB6上にはデータ/Aおよび/Bが伝達され、対応のユニット演算子セルUOE6に格納される。
データパス単位ブロックDPUB7において、マルチプレクサ56および57は、入力データAおよびBを選択する。したがって、対応のグローバル書込データ線WGLA7およびWGLB7上のデータは、データAおよびBとなり、対応のユニット演算子セルUOE7に格納される。
データ読出時、読出ポート選択回路36においては、ポートBが選択され、ポートBの読出ビット線(RBLB)が選択される。したがって、センスアンプSA4−SA7は、それぞれ、対応のユニット演算子セルが記憶する2つのデータのAND演算結果を生成する。センスアンプSA4−SA7の出力データが、図示しないメインアンプを介して組合せ論理演算回路26に伝達される。
組合せ論理演算回路26においては、2入力ORゲートOG0およびOG10が選択される。2入力ORゲートOG0は、センスアンプSA4およびSA5に対応して配置されるメインアンプの出力信号P<4>およびP<5>の論理和演算結果を出力する。2入力ORゲートOG10は、センスアンプSA6およびSA7に対応して設けられるメインアンプの出力信号P<6>およびP<7>の論理和演算結果を生成する。これらの2入力ORゲートOG0およびOG10の出力ビットが、対応のキャリー生成部からの前サイクルで生成された中間キャリーCY_oldおよび/CY_oldと共に、データパス内に配置されるAND/OR複合ゲートAOCT1へ与えられ、このAND/OR複合ゲートAOCT1の出力データが、レジスタ50および図示しないバッファを介して出力される。このバッファ(51)からの出力が、サムSUMに等しく、このサムSUMは、次式で表わされる。
SUM=(A・(/B)+(/A)・(B))・(/CY_old)
+(A・B+(/A)・(/B))・CY_old.
図26に示すサムSUMの論理値表を参照すると、入力キャリーCY_oldが“1”のときに、サムSUMが“1”となるのは、データA・Bおよび/A・/Bのいずれかが“1”のときである。一方、入力キャリーCY_oldが“0”のとき、サムSUMが“1”となるのは、データAおよびBの論理値が不一致の場合である。データA・/Bおよび/A・Bは、データAおよびBが不一致のとき、一方が“1”となるため、この図26に示すサムSUMに対する論理関係を満たす値が、バッファ(51)から生成される。
上述のように、1ビットのシリアル加算を行なう場合においても、キャリー生成部において生成されたキャリーを、入力キャリーとして用いて演算操作を実行することにより、XOR演算(またはXNOR演算)実行時と同様にして、サムSUMを生成することができる。
この場合、データビットの書込およびデータビットの読出を行うときに、前サイクルで生成されたキャリービットCYを入力キャリービットCY_oldとして利用するため、キャリビットCYが確定するまでの時間遅れが生じる。しかしながら、半クロックサイクルでキャリービットCYが確定するのであれば、この半クロックサイクルの時間遅延をもってパイプライン的にビットシリアル態様で加算処理を実行することができる。
キャリーCY生成に4ユニット演算子セルが利用され、またサムSUM生成に4ユニット演算子セルが利用される。従って、例えば、エントリのビット幅が、1024ビットのとき、128対のデータを並行して処理することができ、データワードのビット幅が、mビットであれば、2・mサイクルで128個のデータワードを処理することができる(書込および読出にそれぞれ1クロックサイクルが必要とされる場合)。通常のハードウェアのmビット加算器1クロックサイクルでmビット加算を実行する場合、128個のデータを処理するためには、128クロックサイクルが必要とされる。データのビット幅mが、32ビットであれば、本実施の形態に従えば、より高速で加算処理を実行することができる。エントリのビット幅を増大させることにより、並行して処理されるデータの組を増大させることができ、より高速の加算処理を実現することができる。
[ビットシリアル減算器の構成]
図51は、この発明の実施の形態4に従うビットシリアル減算器のボローBRを生成する部分の構成を具体的に示す図である。図51において、このボロー生成部においても、データパス28において、データパス演算単位グループ44に含まれるデータパス単位ブロックDPUB0−DPUB3が用いられる。演算子セルアレイにおいては、このデータパス単位ブロックDPUB0−DPUB3に対応してユニット演算子セルUOE0−UOE3が配置される。ユニット演算子セルUOE0−UOE3の構成は、実施の形態1と同様であり、これらのユニット演算子セルUOE0−UOE3に対して、データの書込および読出が実施の形態1と同様にして実行される。ダミーセルDMCに対しては、ダミーセル選択信号DCLBが与えられ、読出ポート選択回路36においては、ポートBが選択される。対応のセンスアンプSA0−SA3の出力データは、ユニット演算子セルUOE0−UOE3の記憶値のAND演算結果である。
データパス単位ブロックDPUB0においては、マルチプレクサ(MUXA)56は、インバータ52からの入力データDINA(=A)の反転値/Aを選択し、マルチプレクサ(MUXB)57は、入力データDINB(=B)を選択する。したがって、対応のグローバル書込データ線WGLA0およびWGLB0上にはデータ/AおよびBが伝達され、対応のユニット演算子セルUOE0に格納される。
データパス単位ブロックDPUB1において、マルチプレクサ56は、入力データAを選択し、マルチプレクサ57は、インバータ54からの入力データBの反転値/Bを選択する。したがって、対応のグローバル書込データ線WGLA1およびWGLB1上には、データAおよび/Bが伝達され、対応のユニット演算子セルUOE1に格納される。
データパス単位ブロックDPUB2において、マルチプレクサ56および57が、レジスタ50からのデータを選択する。このレジスタ50からは、前サイクルにおけるボローBRが伝達される。したがって、対応のグローバル書込データ線WGLA2およびWGLB2上には、前サイクルのボローBR(=BR_old)およびBRが伝達され、対応のユニット演算子セルUOE2に格納される。
データパス単位ブロックDPUB3においては、マルチプレクサ56および57、インバータ53および55を介して対応のレジスタ50の格納値の反転値を選択する。したがって、対応のグローバル書込データ線WGLA3およびWGLB3上には、ボローBRの反転値/BR(=/BR_old)および/BRが伝達され、対応のユニット演算子セルUOE3に格納される。
組合せ論理演算回路26においては、AND/OR複合ゲートAOCT0が選択され、また、バッファBFF2およびBFF3が選択される。AND/OR複合ゲートAOCT0は、センスアンプSA1に対応して設けられるメインアンプの出力ビットP<1>がANDゲートの負入力に与えられ、センスアンプSA2に対して設けられるメインアンプの出力ビットP<2>が、このANDゲートの非反転入力に与えられる。このANDゲートの出力ビットと、センスアンプSA0に対するメインアンプからの出力ビットP<0>の論理和がとられる。したがって、この複合ゲートAOCT0からレジスタ50を介して出力されるデータは、次式で与えられる:
(/A・B)+/((A)・(/B))・BR_old.
図34に示す出力ボローBRoutの論理値関係から、入力ボローBRin(=BR_old)が“0”のとき、出力ボローBR(=BRout)が“1”となるのは、データ/A・Bが“1”のときである。また、入力ボローBR_oldが“1”のとき、出力ボローBRが“0”となるのは、データAが“1”でありかつデータBが“0”のときであり、それ以外のときには、出力ボローBR(BRout)は、“1”となる。
したがって、図51に示すレジスタ50からの出力されるデータBRは、図34に示すボローの論理値関係を満たしており、1ビットシリアル減算時において、各サイクル毎に、前サイクルに生成されたボローBR、すなわち1ビット下位側での演算について生成されたボローを入力ボローBR_oldとして、正確に出力ボロー(中間ボロー)を生成することができる。
また、バッファBFF2およびBFF3からのボローBR・BR=BRおよび/BR・/BR=/BRは、前サイクルのボロー、すなわち入力ボローBR_oldおよび/BR_oldとして隣接する減算器を構成するデータパス演算単位グループに伝達される。
[1ビットシリアル減算器の構成]
図52は、1ビットシリアル減算器の構成を概略的に示す図である。この1ビットシリアル減算器は、図51に示す1ビットシリアルボロー生成部に隣接して配置される。したがって、データパス28において、隣接するデータパス演算単位グループ44に含まれるデータパス単位ブロックDPUB4−DPUB7が、1ビットシリアル減算のために利用される。ダミーセルDMCに対しては、ダミーセル選択信号DCLBが与えられ、2つの直列ダミートランジスタが選択される。読出ポート選択回路36において、ポートBが、選択され、ポートBの読出ビット線(RBLB)が対応のセンスアンプSA4−SA7に結合される。
ユニット演算子セルUOE4−UOE7の構成は、実施の形態1と同様であり、対応のグローバル書込データ線上のデータが2つの記憶ノード(SNAおよびSNB)に平行して書込まれ、また、直列接続される記憶ノードSNAおよびSNBの記憶データが読出される。従って、この減算実行時においても、各センスアンプの出力信号は、対応のユニット演算子セルの記憶データのAND演算結果である。
データパス演算単位ブロック44において、データパス単位ブロックDPUB4においては、マルチプレクサ(MUXA)56は、入力データDINA(=A)を選択し、マルチプレクサ(MUXB)57は、インバータ54からの入力データDINB(=B)の反転値を選択する。したがって、対応のグローバル書込データ線WGLA4およびWGLB4上には、データAおよび/Bがそれぞれ転送され、対応のユニット演算子セルUOE4に格納される。
データパス単位ブロックDPUB5においては、マルチプレクサ56が、インバータ52からの入力データAの反転値を選択し、マルチプレクサ57が、入力データBを選択する。したがって、対応のグローバル書込データ線WGLA5およびWGLB5上にはデータ/AおよびBがそれぞれ伝達され、対応のユニット演算子セルUOE5に格納される。
データパス単位ブロックDPUB6においては、マルチプレクサ56および57は、そ
れぞれインバータ52および54を介して入力データAおよびBが反転値をそれぞれ選択する。したがって対応のグローバル書込データ線WGLA6およびWGLB6上にはデータ/Aおよび/Bが伝達され、対応のユニット演算子セルUOE6に格納される。
データパス単位ブロックDPUB7においては、マルチプレクサ56および57は、それぞれ入力データAおよびBを選択する。したがって対応のグローバル書込データ線WGLA7およびWGLA7上のデータAおよびBがそれぞれ伝達され、対応のユニット演算子セルUOE7に格納される。
組合せ論理演算回路28においては、2入力ORゲートOG0およびOG10が選択される。ORゲートOG0は、センスアンプSA4およびSA5に対応して配置されるメインアンプの出力信号を受ける。ORゲートOG10は、センスアンプSA6およびSA7に対応して配置されるメインアンプの出力信号を受ける。
センスアンプSA4−SA7の出力信号は、対応のユニット演算子セルUOE4−UOE7の格納値のAND演算結果を示している。したがって、ORゲートOG0から、データ(A・/B)+(/A・B)が出力され、ORゲートOG10からは、データ(/A・/B)+(A・B)が出力される。
データパスの読出経路においては、AND/OR複合ゲートAOCT1が選択され、2入力ORゲートOG0およびOG10の出力信号が、AND/OR複合ゲートAOCT1へ与えられる。このAND/OR複合ゲートAOCT1は、図51に示すボロー生成部からのビットP<2>およびP<3>に対応する入力ボローBR_oldおよび/BR_oldを受ける。したがって、AND/OR複合ゲートAOCT1からレジスタ50およびバッファ(51)を介して、次式で示されるデータが出力される:
(A・(/B)+(/A)・(B))・/BR_old
+((A・B)+(/A)・(/B))・BR_old.
図31に示す減算値DIFFの論理値表を参照すると、入力ボローBRin(=BR_old)が“0”のとき、減算値DIFFが“1”となるのは、データ/A・BおよびA・/Bのいずれかが“1”のときである。上式において、第1項により、入力ボローBR_oldが“0”のときにデータAおよびBが不一致であれば、減算値DIFFが“1”となる関係が満たされる。
一方、入力ボローBRin(=BR_old)が“1”のとき、減算値DIFFが“1”となるのは、図31に示す論理値表から、データ/A・/BおよびA・Bの一方が“1”のときである。すなわち、データAおよびBが等しいときに、減算値DIFFが“1”となる。これは、上式の第2項により満たされる。したがって、図52に示す1ビットシリアル減算器により、図31に示す減算値の論理値表の論理を満たす減算値DIFFを、各クロックサイクル毎に生成することができる。
ビットシリアル態様での減算時において前サイクルで生成されるボローBR_oldをユニット演算子セルを介して1クロックサイクル遅延して転送することにより、前サイクルに生成されたボローを入力ボローとして減算処理を実行することができる。
なお、ビットシリアル加算/減算実行時において、最下位ビットについての演算時に入力キャリーは、“0”に設定される。これは、レジスタ50の格納値を“0”にリセットすることにより実現される。また、ボロー確定までの時間遅れは生じるものの、加算時と同様、パイプライン的にビットシリアル態様で減算処理を実行することができる。
本実施の形態4に従えば、ビットシリアル態様で、加算/減算を実行することができる
。1エントリが、512ビット線対を含む場合、64個のデータについて加算/減算をビットシリアル態様でかつデータパラレルに実行することができる。データビット幅が、たとえば32ビットの場合、32クロックサイクルで、64個のデータの組についての加算/減算を実行することができる。したがって、データシリアルにかつビットパラレルにデータの組を順次加算/減算処理する場合に必要とされる64クロックサイクルに比べて大幅に、処理時間を低減することができる。また、内部で、読出演算子セルにデータの書込および読出を行なうだけでよく、高速の加算/減算を実現することができる。
[変更例]
図53は、この発明の実施の形態4の変更例の要部の構成を概略的に示す図である。図53においては、演算子セルアレイ20の構成を概略的に示す。この演算子セルアレイ20において、複数のエントリをERY0−ERYn各々において、キャリー生成ユニットおよびサム生成ユニットが設けられる。キャリー生成ユニットは、キャリー生成用の4つのユニット演算子セルを含み、また、サム生成ユニットも、4つのサム生成用のユニット演算子セルを含む。
この演算子セルアレイ20外部に、図示しない組合せ論理演算回路およびデータパスが配置される。データパスおよび組合せ論理演算回路の構成は、図47および図48に示す構成と同じである。
ビットシリアル加算実行時においては、各データパスおよび組合せ論理演算回路のデータ伝播経路の接続が、キャリー生成ユニットおよびサム生成ユニットに対して、それぞれ、図49および図50に示す態様に設定される。シリアル加算実行時においては、まず。、レジスタ50をリセットし、入力キャリーを“0”に設定し、エントリERY0に、最下位ビットA<0>およびB<0>を、この入力キャリーとともに書込み、次いで読出す。これにより、最初のサムSUM<0>とキャリーCY<0>が生成される。
次いで、データパスにおいて、キャリー生成用のレジスタに格納されたキャリー(入力キャリー)を、次の上位のデータビットA<1>およびB<1>と共に、次のエントリERY1に書込み、次いで読出す。以降、先の図49および図50を参照して説明したビットシリアル加算が、順次異なるエントリを利用して実行される。
これにより、高速で、ビットシリアル態様で1ビット加算を実行することができる。演算に使用される領域が、演算子セルアレイに分散して配置されるため、局所領域の連続使用による誤動作または不良の発生を回避することができる。
データの組に対応して、演算子セルアレイ内に、キャリー生成ユニットおよびサム生成ユニットが配置されればよく、これらのエントリERY0−ERYnは、異なる演算子セルサブアレイブロックそれぞれに分散して配置されても良い。
また、図53に示す構成において、キャリー生成ユニットおよびサム生成ユニットをそれぞれボロー生成ユニットおよび減算値生成ユニットと置換えることにより、ビットスライス態様での減算器を実現することができる。
この実施の形態4における半導体信号処理装置の全体の構成および制御回路の構成としては、実施の形態1と同様の構成を利用することができる。
以上のように、この発明の実施の形態4に従えば、演算子セルアレイ、組合せ論理演算回路およびデータパスのデータ伝搬経路を切換えて、ビットスライス演算を実行することができ、この内部で加算/減算処理が実行され、高速のビットスライス演算を実行するこ
とができ、ビットスライス演算サイクルを大幅に低減することができる。また、演算対象のデータのビット幅が変更される場合においても、単に演算サイクルをデータのビット幅に応じて変更するだけで対応することができ、複数種類のデータビット幅に対しても内部構成を変更することなく対応することができる。
[実施の形態5]
図54は、この発明の実施の形態5に従う半導体信号処理装置の要部の構成を概略的に示す図である。この図54に示す半導体信号処理装置のサブアレイブロックの構成は、以下の点で、図6に示す半導体信号処理装置のサブアレイブロックの構成と異なる。すなわち、ユニット演算子セルUOE0、UOE1、…に対するソース線SLと別に、共通ソース線SLCが設けられる。この共通ソース線SLCは、図54においては、ビット線と直交する方向に各ビット線対に共通に配置されるように示すが、ソース線SLが、読出ワード線と並行に配置されるため、各列に対応して個々に配置されるソース線SLが、共通ソース線SLCとして利用されても良い。
この共通ソース線SLCに対し、Bポート読出ビット線RBLB0、RBLB1それぞれに対応して、スイッチ回路SWT0、SWT1、…が設けられる。これらのスイッチ回路SWT0、SWT1、…は、モード設定信号MDSELに従って、選択的に対応のBポート読出ビット線RBLB0、RBLB1を、共通ソース線SLCに結合する。このとき、ポート接続回路PRSW0およびPRSW1は、ポート選択信号PRMXに従って、Aポートビット線RBLA0、RBLA1、…を、対応のセンスアンプSA0、SA1、…に対する読出ビット線RBL0、RBL1、…に結合する。
図54に示す半導体信号処理装置の他の構成は、図6に示す半導体信号処理装置の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図55は、図54に示すスイッチ回路SWT(SWT0,SWT1)およびポート選択回路の接続態様を示す図である。この図55に示す配置においては、データ読出時、読出ワード線RWLAが選択状態(Hレベル)に駆動され、一方、読出ワード線RWLBが、Lレベルの非選択状態に維持される。Aポート読出ビット線RBLAが、図54に示すポート選択回路PRSW(PRSW0,PRSW1)を介してセンス読出ビット線RBLに結合される。補の読出ビット線ZRBLに接続されるダミーセルDMCに対しては、ダミーセル選択信号DCLAが与えられる。したがって、ダミーセルDMCにおいては、1つのダミートランジスタ(DTA)が導通状態に設定される。
この図55に示す電圧印加態様においては、ソース線SLからSOIトランジスタNQ1を介してセンス読出ビット線RBLに電流が記憶データに応じて流れる。同様、補の読出ビット線ZRBLに対してもダミーセルDMCからの参照電流が流れる。したがって、センスアンプSAにより、記憶ノードSNAに格納されるデータに対応するデータを得ることができ、組合せ論理演算回路においてインバータを選択することにより、このSOIトランジスタNQ1のボディ領域(記憶ノードSNA)に格納されるデータのNOT演算結果を外部に読出すことができる。
この場合、図55に示す接続態様において、Bポート読出ビット線RBLBと共通ソース線の間の接続態様は任意である。Bポート読出ワード線RWLBが非選択状態であり、何らSOIトランジスタNQ2は、記憶ノードSNAの記憶データ読出に対しては悪影響は及ぼさない。
図56は、この図54に示す配置における他の電圧印加態様を概略的に示す図である。この図56に示す電圧印加態様においては、図55に示す構成と同様、Aポート読出ビット線RBLAが、センス読出ビット線RBLに接続される。また、ダミーセルDMCに対しても、ダミーセル選択信号DCLAが与えられ、ダミーセルDMCにおいて1つのダミートランジスタ(DTA)が選択される。
Aポート読出ワード線RWLAを非選択状態のLレベルに維持し、一方、Bポート読出ワード線RWLBを選択状態のHレベルへ駆動する。また、Bポート読出ビット線RBLBを、スイッチ回路(SWT)を介して共通ソース線SLCに結合する。この共通ソース線SLCとソース線SLには、同じレベルの電圧が印加される。したがって、図56に示す電圧印加態様においては、SOIトランジスタNQ2により、その記憶ノードNSBに格納されるデータに応じた電流が、共通ソース線SLCからAポート読出ビット線RBLAを介してセンス読出ビット線RBLに伝達される。したがって、センスアンプSAにより、この記憶ノードSNBに格納されるデータを読出すことができる。
したがって、図55および図56に示すように、データの書込時においては、書込ワード線WWLを選択状態(Lレベル)に設定することにより、SOIトランジスタPQ1およびPQ2を介して、記憶ノードSNAおよびSNBにデータを書込むことができる。読出時に、読出ワード線RWLAおよびRWLBを、一方を選択状態、他方を非選択状態とすることにより、記憶ノードSNAおよびSNBの格納データを、選択的に、Aポートに読出すことができる。このユニット演算子セルに格納されるデータを、1ビット単位で読出すことができる。したがって、ユニット演算子セルを、等価的に書込ポートと読出ポートとを別々に有する2ポートのメモリセルとして取扱うことが可能となる。
なお、図55および図56においては、SOIトランジスタPQ1およびPQ2に共通に書込ワード線WWL上の信号電位が与えられている。しかしながら、これらのSOIトランジスタPQ1およびPQ2に対しては、実施の形態3と同様、別々に書込ワード線WWLAおよびWWLBが設けられてもよい。
図57は、この発明の実施の形態5に従う半導体信号処理装置に含まれる制御回路の要部の構成を概略的に示す図である。図57においては、制御回路(30)は、外部からのコマンドCMDをデコードするコマンドデコーダ350と、読出ビット線とセンスアンプとの接続を設定するモード設定回路352と、読出ワード線を選択的に活性化する読出ワード線制御回路354を含む。
モード設定回路352は、コマンドデコーダ350からの演算操作指示OPLOGに従って、モード設定信号MDSELおよびポート選択信号PRMXを指定された状態に設定する。すなわち、モード設定回路352は、演算操作指示OPLOGが1ビット読出を指示する場合、ポート選択信号PRMXを、ポートA、すなわち読出ビット線RBLAをセンスアンプに結合する状態に設定する。また、モード設定信号MDSELを、共通ソース線SLCとBポートビット線RBLBとを接続する態様に設定する。
演算操作指示OPLOGが通常の演算操作を指定する場合には、モード設定回路352は、指定された演算操作に従って、ポートAおよびポートBのいずれかを、センスアンプに結合するように、ポート選択信号PRMXを設定し、モード選択信号MDSELを非選択状態に維持する(NOT演算以外の演算操作時には、Bポートを選択する)。
読出ワード線制御回路354は、演算操作指示OPLOGに従って、ダミーセル選択活性化信号DCLAENおよびDCLBENと読出ワード線活性化信号RWLAENおよびRWLBENを生成する。読出ワード線制御回路354は、演算操作指示OPLOGの指示する操作内容に従って、1ビットデータ読出が指定される場合には、ダミーセル選択活性化信号DCLAENを活性化し、ダミーセル選択活性化信号DCLBENを非活性状態
に維持する。また、この演算操作指示OPLOGに含まれるポート指示情報に従って読出ワード線制御回路354は、読出ワード線活性化信号RWLAENおよびRWLBENのいずれかを選択状態へ駆動する。これにより。1ビット読出モードが指定され、ユニット演算子セルに含まれる各2ビットの情報の各ビットを外部に読出すモードを演算操作指示OPLOGが指定するときに、その接続態様を設定することができる。この1ビット読出モード時においては、組合せ論理回路およびデータパスは、センスアンプの出力信号を反転または非反転する処理を行って、出力する。
通常の演算操作を実行する場合には、読出ワード線制御回路354は、演算操作指示OPLOGが指定する演算内容に従って、読出ワード線活性化信号RWLAENの活性化および読出ワード線活性化信号RWLAENおよびRWLBENの活性化およびダミーセル選択活性化信号DCLAENおよびDCLBENの選択的活性化を実行する。これにより、組合せ論理演算または算術演算実行時に、Bポートを選択してユニット演算子セルの2つの記憶データの演算を行うことができる。
この実施の形態5における半導体信号処理装置の全体の構成は、先に実施の形態1において図4を参照して示した構成と同じであり、また、組合せ論理演算回路およびデータパスの構成も、これまでの実施の形態において説明したものと、同様の構成である。
この発明の実施の形態5に従えば、ユニット演算子セルを構成するSOIトランジスタの記憶ノードのデータを、個々に外部に読出可能としているため、組合せ論理演算および算術演算機能に加えて、さらに、記憶装置としても利用することができる。
[実施の形態6]
図58は、この発明の実施の形態6に従うユニット演算子セルの電気的等価回路を示す図である。この図58に示すユニット演算子セルUOEは、図1に示すユニット演算子セルと、以下の点で、その構成が異なる。すなわち、SOIトランジスタNQ1と読出ポートRPRTB(ポートB)との間に、SOIトランジスタNQ2と並列に、NチャネルSOIトランジスタNQ3が設けられる。また、書込ワード線WWL上の信号電位に従って、書込データDINCを、SOIトランジスタNQ3の記憶ノード(ボディ領域)SNCに伝達するPチャネルSOIトランジスタPQ3が設けられる。
この図58に示すユニット演算子セルの他の構成は、図1に示すユニット演算子セルの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図58に示すユニット演算子セルの構成の場合、SOIトランジスタNQ2およびNQ3が並列に接続され、読出ポートRPRTB(ポートB)に対しては、これらのSOIトランジスタNQ2およびNQ3の記憶データのOR演算結果に応じた電流が供給される。したがって、これらの3つのSOIトランジスタNQ1−NQ3により、A・(B+C)の演算を実現することが可能となる。
図59は、図58に示すユニット演算子セルの平面レイアウトを概略的に示す図である。図59に示す平面レイアウトは、図2に示すユニット演算子セルの平面レイアウトと、以下の点で、その構成が異なる。すなわち、SOIトランジスタPQ3を形成するために、高濃度P型領域1eおよび1fとが、図の左側の破線ブロックで示すP型トランジスタ形性領域において、Y方向に沿って整列して配置される。これらのP型領域1eおよび1fの間に、N型領域2cが設けられる。
また、P型トランジスタ形成領域外部において、高濃度N型領域3dおよび3eがY方向に沿って整列して配置され、これらのN型領域3dおよび3eの間に、P型領域4cが
配置される。このP型領域4cは、P型領域1fと電気的に接続される。N型領域3dは、X方向に延在するN型領域を介してN型領域3bに電気的に接続され、中間配線およびコンタクト/ビア8dを介して第1金属配線7bに電気的に接続される。
N型領域3eは、コンタクト/ビア8fおよび中間配線を介して第1金属配線7aに電気的に接続される。P型領域1eは、コンタクト/ビア8gおよび中間配線を介して第1Y方向に連続的に延在する金属配線7eに電気的に接続される。P型領域1eおよび1fとN型領域2cとにより、SOIトランジスタPQ3が形成され、N型領域3dおよび3eとP型領域4cとにより、SOIトランジスタNQ3が形成される。P型領域1fおよび4cにより、SOIトランジスタPQ3のソース/ドレインノードが、SOIトランジスタNQ3のボディ領域(P型領域4c)に結合される。第1層金属配線7eが、入力データDINCを伝達する。
図59において、他のSOIトランジスタPQ1、PQ2、NQ1、およびNQ2のレイアウトは、図2に示すユニット演算子セルのレイアウトと同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図60は、この発明の実施の形態6に従う半導体信号処理装置のメモリセルアレイ部の構成を概略的に示す図である。この図60に示すアレイ部の構成は、図6に示す実施の形態1に従うメモリセルアレイ部の構成と、以下の点でその構成が異なる。すなわち、書込ポートとして、グローバル書込データ線WGLC0およびWGLC1、…が、各ユニット演算子セルUOE(UOE0,UOE1、…)の列に対応して配置される。これらのグローバル書込データ線WGLC0、WGLC1、…は、それぞれ対応の列のユニット演算子セルUOE(UOE0,UOE1)の書込ポートWPRTCを介して図58に示すSOIトランジスタPQ3に結合される。この図60に示すメモリセルアレイ部の他の構成は、図6に示すメモリセルアレイ部の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図60に示すように、各ユニット演算子セル列に対応してグローバル書込データ線を配置し、グローバル書込データ線セットWGLS0、…において、3個のデータを並列に転送することができる。ここで、グローバル書込データ線セットWGLSは、グローバル書込データ線WGLA、WGLBおよびWGLCの組を示す。
図61は、この発明の実施の形態6に従う半導体信号処理装置のデータパス28の構成を概略的に示す図である。このデータパス28においては、2つのデータパス単位ブロックDPUB0およびDPUB1により、1ビットデータの演算処理が実行される。この実施の形態6においては、3つのデータを処理するために、各データパス単位ブロックにおいて、マルチプレクサ(MUXC)400が設けられる。このマルチプレクサ400に対しては、レジスタ50からのデータを反転するインバータ402、外部からの入力データビットDINA<0>を反転するインバータ404、および外部からのデータビットDINA<0>とインバータ54からの反転データビット/DINB<0>を受けるANDゲート406が設けられる。このマルチプレクサ400が選択した信号は、グローバル書込ドライバ414を介してグローバル書込データ線WGLC0上に伝達される。
また、マルチプレクサ57に対しても、インバータ404の出力信号と外部からの入力データビットDINB<0>を受けるANDゲート408が設けられる。マルチプレクサ56に対しては、後に説明するデータC(キャリー/ボローに対応)を反転するインバータ410が設けられる。これらのマルチプレクサ56、57、および400は、切換制御信号MXASおよびMXBSに従ってその接続態様が設定される。データパス単位ブロックBPUB0の他の構成は、図7に示すデータパスにおけるデータパス単位ブロックBPUB0の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
データパス単位ブロックDPUB1においても、このデータパス単位ブロックDPUB0と同様の構成が設けられる。但し、データパス単位ブロックDPUB1においては、レジスタ50は設けられない。
これらのデータパス単位ブロックDPUB0およびDPUB1により内部書込データを生成して、グローバル書込データ線セットWGLS0およびWGLS1をそれぞれ駆動し、指定された演算処理を実行する。
組合せ論理演算回路の構成は、実施の形態1に示す構成と同じである(図9参照)。したがって、ここでは、特に、組合せ論理演算回路の構成については、その説明は繰返さない。
図62は、この発明の実施の形態6に従う半導体信号処理装置における1ビット加算演算実行時のキャリー生成時のデータ伝搬経路の接続態様を概略的に示す図である。
図62において、データパス28において、2つのデータパス単位ブロックDPUB0およびDPUB1が用いられる。データパス単位ブロックDPUB0において、マルチプレクサ(MUXC)400は、入力データDINA(=A)を選択し、マルチプレクサ(MUXB)57は、入力データDINB(=B)を選択する。マルチプレクサ(MUXA)56は、レジスタ50から伝達される出力キャリーCYを選択する。したがって、対応のグローバル書込データ線WGLC0、WGLB0、およびWGLA0上には、データA、BおよびキャリーCY_oldが伝達され、対応のユニット演算子セルUOE0の記憶ノードSNC、SNBおよびSNAにそれぞれ格納される。ここで、キャリーCY_oldは、実施の形態4の場合と同様、前サイクルの演算において生成されたキャリーであり、入力キャリーに対応する。
データパス単位ブロックDPUB1において、マルチプレクサ400が、レジスタ50からのキャリーCYを選択し、マルチプレクサ57が、入力データDINBを選択する。マルチプレクサ56が、入力データAを選択する。したがって、対応のグローバル書込データ線WGLC1、WGLB1、およびWGLA1上には、データCY_old、BおよびAがそれぞれ転送され、対応のユニット演算子セルUOE1の記憶ノードSNC、SNBおよびSNAにそれぞれ格納される。
メモリセルアレイ32において、ダミーセルDMCに対しダミーセル選択信号DCLBが与えられる。したがって、補の読出ビット線ZRBL0、ZRBL1には、各々、2つの直列ダミーセルトランジスタ(DTB0,DTB1)が接続される。
読出ポート選択回路36においては、ポートBが選択される。したがって、読出ビット線RBLB0およびRBLB1が、それぞれ、センスアンプ帯38の対応のセンスアンプSA0およびSA1に結合される。
組合せ論理演算回路26においては、2入力ORゲートOG1が選択される。この2入力ORゲートOG1は、センスアンプSA0およびSA1に対応してメインアンプ回路24において設けられるメインアンプの出力信号を受ける。センスアンプSA0およびSA1は、それぞれ、(SNB+SNC)・SNAの演算結果を生成する。ここで、記憶ノードとそこに格納されるデータとを同一符号で示す。
したがって、2入力ORゲートOG1からレジスタ50を介して伝達されるキャリーCYは、(A+B)・CY_old+(CY_old+B)・Aで与えられる。
ブール代数の公式に従えば、A+A=Aであり、上式は次式に変換することができる:
CY=(A+B)・CY_old+A・B.
先に図29において示すキャリーCYの論理値表から、出力キャリーCYが“1”となるのは、データA・Bが“1”の場合、または、入力キャリーCin(=CY_old)が“1”のときにデータAおよびBの一方が“1”となるときである。したがって、上式は、図29に示す論理値関係を満たしており、図62に示すデータ伝搬経路を用いることにより、1クロックサイクルで、入力データAおよびBの加算時のキャリーCYを求めることができる。
図63は、この発明の実施の形態6に従う半導体信号処理装置における1ビット全加算器のサム(SUM)を生成する部分のデータ伝搬経路の接続態様を概略的に示す図である。図63において、サムSUMを生成する場合においては、データパス28において、キャリー生成時と同様、2つのデータパス単位ブロックDPUB3およびDPUB4が用いられる。これらのデータパス単位ブロックDPUB3およびDPUB4に対し、隣接して配置されるキャリー生成部からのキャリーCYが、図61に示すデータCとして伝達される。
データパス単位ブロックDPUB3においては、マルチプレクサ(MUXC)400は、ANDゲート406の出力信号を選択する。このANDゲート406は、入力データAとインバータ54からの入力データBの反転値とを受ける。マルチプレクサ57は、ANDゲート408の出力信号を受ける。このANDゲート408は、インバータ404からの入力データAの反転値と入力データBとを受ける。マルチプレクサ(MUXA)56は、インバータ410からのキャリーCYの反転値を受ける。したがって、グローバル書込データ線WGLC3、WGLB3、WGLA3上には、データA・/B、/A・Bおよび/CY_oldが伝達され、ユニット演算子セルUOE3の記憶ノードSNC、SNBおよびSNAにそれぞれ格納される。
データパス単位ブロックDPUB4においては、マルチプレクサ400は、ANDゲート411の出力信号を選択する。このANDゲート211は、入力データAおよびBを受ける。マルチプレクサ(MUXB)57は、ANDゲート412の出力データを選択する。このANDゲート412は、インバータ54および404からの入力データBの反転値およびキャリーCYの反転値とを受ける。マルチプレクサ(MUXA)56は、キャリーCYを選択する。したがって、対応のグローバル書込データ線WGLC4、WGLB4およびWGLA4上には、データA・B、/A・BおよびCY_oldが伝達され、対応のユニット演算子セルUOE4の記憶ノードSNC、SNBおよびSNAにそれぞれ格納される。
ダミーセルDMCに対しては、キャリー生成時と同様、ダミーセル選択信号DCLBが与えられる。また、読出ポート選択回路36においては、ポートBが選択され、読出ビット線RBLB3およびRBLB4が、それぞれ対応のセンスアンプ帯38におけるセンスアンプSA3およびSA4に結合される。従って、センスアンプSA3からは、ユニット演算子セルUOE3に格納されるデータに従って、データ(A・/B+/A・B)・/CY_oldが生成される。センスアンプSA4からは、データ(A・B+/A・/B)・CY_oldが生成される。
センスアンプSA3およびSA4から、メインアンプ回路24に含まれる対応のメインアンプを介して組合せ論理演算回路26に含まれる2入力ORゲートOG1へこれらのOR/AND演算結果が与えられる。したがって、ORゲートOG1から、レジスタ50を介して装置外部へ出力されるデータSUMは、次式で表わされる。
SUM=((A・/B)+(/A・B))・/CY_old
+((A・B)+(/A・/B))・CY_old
上述のサムSUMの式は、図50に示す1ビット加算器が生成するサムSUMと同じ式であり、したがって、2つのデータパス単位ブロックを利用して、1クロックサイクルで1ビット加算演算時におけるサムSUMを生成することができる。
これらの図60から図63を示す加算器の構成を利用することにより、ビットシリアル態様で、加算演算を行なうことができ、データビット幅に対応するクロックサイクル数で、加算結果を得ることができる。
なお、減算結果についても、図51および図52に示すように、キャリーCYをボローBRoutに加え、入力キャリーCY_oldを、入力ボローBR_oldに置換えることにより、減算処理を実行することができる(ただし、減算時には、データAを反転値/Aで置き換える必要がある)。
[変更例]
図64は、この発明の実施の形態6に従う半導体信号処理装置の変更例の要部の構成を概略的に示す図である。図64において、演算子セルアレイ20において、複数のエントリERY0−ERYnが設けられる。エントリERY0−ERYnの各々において、2セル/キャリー生成ユニットCYG0−CYGmと、2セル/サム生成ユニットSUG0−SUGmが、対をなして整列して配置される。この2セル/キャリー生成ユニットCYG0−CYGmの各々は、2つのユニット演算子セルを含み、キャリーを生成するために使用される(図62参照)。一方、2セル/サム生成ユニットSUG0−SUGmは、2つのユニット演算子セルを含み、サムSUMを生成するために利用される。2セル/キャリー生成ユニットCYGiおよび2セル/サム生成ユニットSUGiにより、1つのデータビットA<i>およびB<i>についての全加算演算を実行する。従って、1つのエントリにおいてビットパラレルに加算演算が実行される。
この演算子セルアレイ20に対して設けられる読出ポート選択回路、センスアンプ帯およびメインアンプ回路の構成は、先の実施の形態1と同様であり、また、データパス28の構成は、図61に示す構成と同様である。組合せ論理演算回路(26)の構成は、実施の形態1の構成と同じであり、キャリーおよびサム生成時に、組合せ論理演算回路において2入力ORゲート(OG1)が使用される。
この図64に示す構成においては、データビットA<0>−A<m>およびB<0>−B<m>の(m+1)ビットのデータAおよびBについての全加算処理が実行される。
図65は、図64に示す演算子セルアレイを用いたビットパラレル加算構成の2セル/キャリー生成ユニットおよび2セル/サム生成ユニットの配置を概略的に示す図である。この図65に示す配置において、2セル/キャリー生成ユニットCYG0−CYGmおよび2セル/サム生成ユニットSUG0−SUGmにおいては、組合せ論理演算回路における単位演算ブロック(UCL)およびデータバスにおける単位演算ブロック(DPUB)が対応して設けられているものとして説明する。
図65において、2セル/キャリー生成ユニットCYG0−CYGmから生成されるキャリーCY<0>−CY<m−1>は、上位の2セル/キャリー生成ユニットCYG1−CYGmへ伝達される。2セル/キャリー生成ユニットCYG1−CYGmは、前段のキャリー生成ユニットすなわち1ビット下位側からの(レジスタ50から生成される)キャリーを選択し、対応のキャリーを生成する。
2セル/サム生成ユニットSUG1−SUGmに対しては、同様、1ビット下位側の2セル/キャリー生成ユニットCYG0−CYG(m−1)からのキャリーCY<0>−CY<m−1>が、入力データA<0>,B<0>−A<m>,B<m>とともに与えられる。これらの2セル/サム生成ユニットSUG0−SUGmから、サムビットS<0>−S<m>が生成され、最終段の2セル/キャリー生成ユニットCYGmからキャリーCYが出力される。
最下位ビットの2セル/キャリ生成ユニットCYG0および2セル/サム生成ユニットSUG0に対しては、入力キャリーは、“0”に設定される。
図66は、図64および図65に示すビットパラレル加算器の加算動作を示すフロー図である。以下、図66を参照して、この図64および図65に示すビットパラレル加算器の動作について説明する。
まず、加算開始指示が与えられると(ステップSP10)、制御回路は、入力レジスタ(図示せず)に、演算対象の入力データAおよびBを保持し、随時データバスにこれらの入力データAおよびBをビットパラレルに与えるように保持する(ステップSP11)。
この加算開始指示に従って、2セル/キャリー生成ユニットCYG0−CYGmに対応して設けられるデータパスにおいて、前段(1ビット下位側)の出力キャリーを選択するようにその経路が設定される(ステップSP12)。また、図62に示す配置において、レジスタ50の出力に変えて、前段の2セル/キャリー生成ユニットに対して設けられるデータバス単位ブロック(DPUB0)が生成するキャリーを、データCとして選択する。また、対応のデータパス単位ブロックにおいては、内部の書込データ伝播経路として図62に示すデータ伝播経路の設定が、マルチプレクサの選択態様の設定により行われる。
この状態で、図62に示すデータ伝搬経路により、演算操作を(m+1)回繰返す(ステップSP13)。
この加算操作時、まず最下位ビットに対して設けられる2セル/キャリー生成ユニットCYG0のキャリーCY<0>が入力データビットA<0>およびB<0>に応じて確定する。この次のアクセスサイクルにより、2セル/キャリー生成ユニットCYG1が、生成されて確定したキャリーCY<0>とデータビットA<1>およびB<1>とに従って対応のキャリーCY<1>を生成する。2セル/キャリー生成ユニットにおいてCYG1において生成されたキャリーCY<1>が、対応のレジスタに格納される。順次下位ビット側からキャリーが確定状態となる。このキャリー生成操作を(m+1)回繰返すことにより、キャリーCY<0>−CY<m>がすべて確定状態に設定され、対応のレジスタ(50)に格納される。
このキャリー生成操作を(m+1)回繰返した後、2セル/サム生成ユニットSUG0−SUGmにおいて、1ビット下位側から与えられたキャリーと入力データビットA<0>,B<0>−A<m>,B<m>とに従ってサム生成操作を実行する(図63)。この加算操作時においては、対応のデータバスのデータバス単位ブロックDPUB3およびDPUB4においては、図63に示すデータ伝搬経路が設定され、また、組合せ論理演算回路においても、2入力ORゲートが選択される。
この加算操作時において、すべての下位ビット側からのキャリーが確定しており、ビットA<0>,B<0>−A<m>,B<m>について並列に1ビット加算を実行して、加算結果を示すサムビットS<0>−S<m>が、最終キャリーCYとともに生成される(ステップSP14)。次いで、加算結果を出力する(ステップSP15)。
この場合、1つのエントリに対し、(m+2)回加算操作を繰返すことにより、(m+1)ビットのデータについての全加算を行なうことができる。サム生成ユニットSUGおよびキャリー生成ユニットCYGを並行して動作させることにより、サムSUMについても各クロックサイクルごとに下位ビット側からサムビットSUM<i>の値が確定し、最終キャリーCYの生成時に並行して、最上位のサムビットSUM<m>を生成することができ、この場合、(m+1)サイクルで加算結果を得ることができる。
以上のように、演算子セルアレイにおいてエントリ単位でビットパラレルに加算を実行する場合においても、データバス接続経路を切換えるだけで、ビットパラレルの加算を実行することができる。また、エントリを切換えて加算を実行することにより、アクセスが局所的に集中するのを回避することができ、誤動作などを防止することができる。
なお、図64および図65に示す構成においても、キャリー生成ユニットおよびサム生成ユニットを、ボロー生成ユニットおよびサム減算値生成ユニットで置換することにより、ビットパラレルな減算器を実現することができる。
以上のように、この発明の実施の形態6に従えば、1つのユニット演算子セルにおいて3個の記憶トランジスタを配置しており、記憶データのORおよびANDの複合演算を実行することができ、少数のユニット演算子セルを用いて加減算操作を高速で実行することができる。
[実施の形態7]
図67は、この発明の実施の形態7に従うユニット演算子セルの電気的等価回路を示す図である。この図67に示すユニット演算子セルの構成は、以下の点で、図58に示す実施の形態6に従うユニット演算子セルの構成とは異なる。すなわち、SOIトランジスタPQ2が、書込ワード線WWLBに従って選択状態へ駆動され、SOIトランジスタPQ1およびPQ3は、書込ワード線WWLA上の信号に従って選択状態へ駆動される。図67に示すユニット演算子セルの他の構成は、図59に示すユニット演算子セルの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図68は、図67に示すユニット演算子セルUEの平面レイアウトを概略的に示す図である。この図68に示す平面レイアウトは、以下の点で、図59に示す平面レイアウトとその配置が異なる。すなわち、第1金属配線6aが、書込ワード線WWLAとして用いられ、書込ワード線WWLBを構成する第1金属配線6eが、さらに、Bポート読出ワード線RWLBを構成する第1金属配線6dと平行に図の下部に設けられる。
この書込ワード線WWLBによりSOIトランジスタPQ2を選択するため、P型領域4bとY方向に整列して、高濃度P型領域1gおよび1hが配置される。これらのP型領域1gおよび1hの間に、N型領域2dが配置される。N型領域2d上に、X方向に延在するゲート電極配線5eが配設される。このゲート電極配線5eが、上層の第1金属配線6eに電気的に接続される(コンタクト部は示さず)。
P型領域1hに隣接して、X方向に延在する高濃度P型領域1iが配設される。この高濃度P型領域1iは、コンタクト/ビア8hを介して上層の第2金属配線7dに電気的に接続される。すなわち、SOIトランジスタPQ2を構成する活性領域は、図59に示すレイアウトと異なり、SOIトランジスタPQ1を構成するP型領域1gおよび1dとY方向に整列して、配置される。
この図68に示す平面レイアウトの他の配置は、図59に示す平面レイアウトと同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。図68においても、破線で示す領域は、P型不純物の注入領域である(トランジスタが形成される活性領域の間には素子分離領域が設けられている)。
これにより、ユニット演算子セルUOEにおいて、3個のデータ記憶用のSOIトランジスタが配置される場合において、大幅にレイアウトを変更することなく、記憶ノードSNBへのデータ書込と記憶ノードSNAおよびSNCに対するデータ書込を、別々に実行することができる。
図67および図68に示すユニット演算子セルを利用する場合の演算子セルアレイ内の配置は、図60に示す演算子セルアレイの配置と同じである。書込ワード線として、2本の書込ワード線WWLAおよびWWLBが配置される点が異なるだけである。したがって、ここでは、この発明の実施の形態7に従う演算子セルアレイの配置については特に示さない。
図69は、この発明の実施の形態7に従う半導体信号処理装置のデータパス28および組合せ論理演算回路26のデータ伝播経路の接続態様を概略的に示す図である。図69に示す半導体信号処理装置においては、先の実施の形態3の場合と同様、データバス演算単位グループ44<0>−44<m>各々のデータパス単位ブロックDPUB0において、マッチ線MLを放電するための放電トランジスタTQ1が配置される。組合せ論理演算回路26においては、各データバス演算単位グループ44<0>−44<m>に対して、2入力ORゲートOG0が選択され、またデータパス単位ブロックDPUB0において、インバータ420を選択し、2入力ORゲートOG0の出力信号を反転する。インバータ420の出力信号に従って対応の放電トランジスタTQ1が選択的にオン状態となる。
このマッチ線MLに対しては、先の実施の形態3と同様、プリチャージ用のトランジスタPQ0およびサーチ結果を増幅する増幅回路AMPが設けられる。また、データパス28および組合せ論理演算回路26の個々の構成は、先の実施の形態3において図41を参照して説明した構成と同じである。また、これらのデータパスおよび組合せ論理演算回路の構成としては、実施の形態4または6に示した構成が利用されても良い。
本実施の形態7においては、演算子セルアレイ20において、書込ワード線WWLAおよびWWLB上の信号に従ってユニット演算子セルの記憶ノードSNAおよびSNBに個々にデータを書込むことができる。したがって、例えば、サーチ動作実行時に、記憶ノードSNCにフラグFLGを格納することにより、データビットAをドントケア状態に設定することができる。すなわち、フラグFLGを“1”に設定すれば、例えば、センスアンプからの演算結果データA・(B+FLG)および/A・(/B+FLG)は、それぞれ、Aおよび/Aとなり、2入力ORゲートOG0の出力信号は、“1(=A+/A)”となる。フラグFLGが、“0”の時には、センスアンプSA0およびSA1の出力データは、データA・Bおよび/A・/Bとなり、ORゲートOG0の出力信号は、データ(A・B+/A・/B)となり、データAおよびBの一致結果を示す。従ってフラグFLGにより、データビットAに対してマスクをかけてサーチを行なうことができる。以下、このサーチ動作について具体的に説明する。
図70は、この発明の実施の形態7に従う半導体信号処理装置のサーチ動作を示すフロー図である。以下、図70を参照して、この図67および図69に示す半導体信号処理装置のサーチ動作について説明する。
先ず、操作開始指示により、サーチ対象データの演算子セルアレイ内への格納が指示される(ステップSP20)。このサーチ対象データの格納指示に従って、まず、データパスの設定が行なわれる(ステップSP21)。この場合、一例として、データパス単位ブロックDPUB0において、データBの反転値/Bを選択し、データパス単位ブロックDPUB1においては、データB(=DINB)を選択するように経路を設定する。この経路設定後、書込ワード線WWLBを選択し、対応のユニット演算子セルUOE0およびUOE1のSOIトランジスタNQ2の記憶ノード(ボディ領域)SNBに、サーチ対象データを書込む(ステッSP22)。
次いで、すべてのサーチ対象データについて書込が実行されたかの判定が行なわれる(ステップSP23)。すべてのサーチ対象データの書込が完了していない場合には、エントリアドレスを更新し(ステップSP24)、再び、選択されたエントリの書込ワード線WWLBを選択して、次のサーチ対象データを書込む。
ステップSP23における判定により、すべてのサーチ対象データの書込が完了したと判定されると、半導体信号処理装置は、外部からのサーチ指示が与えられるのを待つ(ステップSP24)。
サーチ指示が与えられると、データバスおよびロジックパス(組合せ論理演算回路のデータ伝播経路)の設定が行なわれ、また、エントリアドレスが初期化される(ステップSP25)。
データパスにおいては、サーチデータA(=DINA)およびフラグFLGの転送経路の設定が行われる。データBが格納されたユニット演算子セル(UOE0)に対しては、非反転データAが伝達され、また、データ/Bが格納されたユニット演算子セル(UOE1)へは、反転データ/Aが転送されるように、データAについての伝搬経路が設定される。フラグFLGについては、フラグFLGの非反転値をそれぞれ記憶ノードSNCに伝達するように、その伝搬経路が設定される。
次いで、この指定されたエントリに対しサーチデータおよびフラグの書込および読出が実行される(ステップSP26)。先ず、書込ワード線WWLAが選択状態へ駆動され、記憶ノードSNAおよびSNCへ、データおよびフラグの書込が行なわれる。したがって、データBが格納されたユニット演算子セルUE0に対しては、記憶ノードSNAにデータAが格納され、記憶ノードSNCにフラグFLGが格納される。一方、反転データ/Bが格納されたユニット演算子セルUE1に対しては、記憶ノードSNAに対しデータ/Aが書込まれ、記憶ノードSNCにフラグFLGが格納される。
次いで、読出ワード線RWLAおよびWRLBを並行して選択状態へ駆動し、これらのユニット演算子セルUE0およびUE1に格納されたデータの読出を行なう。図示しない読出ポート選択回路においては、Bポートが選択されており、したがって、センスアンプは、データA・(FLG+B)および/A・(FLG+/B)を生成し、これらのデータが対応のメインアンプを介して対応の2入力ORゲートOG0へ伝達される。
フラグFLGが“1”のときには、2入力ORゲートOG0の出力データは、A+/A=“1”である。したがって、インバータ420によりORゲートOG0の出力信号(データビット)が反転され、このインバータ420の出力信号が“0”となり、一致を示す状態に設定される。一方、フラグFLGが“0”のときには、2入力ORゲートOG0の出力データは、A・B+/A・/Bである。データAおよびBが等しい場合には、ORゲートOG0の出力信号が“1”(Hレベル)となり、応じてインバータ420の出力信号は“0”(Lレベル)となる。従って、フラグFLGが、“1”に設定されたサーチデータ(ビット)は、マッチ線のMLの電位に対して影響を及ぼさない。一方、データAおよびデータBが不一致の場合には、2入力ORゲートの出力信号は“0”となり、インバータ420の出力信号が“1”となり、対応の放電トランジスタTQ1がオン状態となり、マッチ線MLが放電される。従って、サーチデータA(DINA<m:0>)が、サーチ対象データB(DINB<m:0>)と1ビットでも不一致であれば、マッチ線MLが放電される。
従って、マッチ線MLがプリチャージ状態に維持される場合は、一致状態を示しており、マッチ線MLが放電された状態は、不一致を示している。このマッチ線MLの電位を増幅回路AMPで増幅し、サーチ結果指示SRSLTを“0”または“1”に設定することにより、サーチデータAとサーチ対象データBとの一致/不一致が識別される(ステップSP27)。
データの不一致が検出された場合には、まず、アドレスカウンタにより最終エントリに対するサーチが行なわれたかの判定が行なわれる(ステップSP29)。まだ最終のエントリに対するサーチが行なわれていない場合には、エントリアドレスを更新し(ステップSP30)、ステップSP26からのサーチデータおよびフラグの書込および読出アクセスを実行する。
一方、ステップSP29において、最終エントリに対するサーチが実行され、一致が検出されないと判定された場合には、必要な不一致処理が実行される(ステップSP31)。この不一致発生時の処理は、この半導体集積装置が適用される用途に応じて適宜定められる。一方、ステップSP27において一致が検出された場合には、そのときの一致アドレス(エントリアドレス)を保持し、外部へ出力する(ステップSP28)。この場合、エントリアドレス(アドレスインデックス)を外部へ出力し、この外部へ出力されたエントリアドレスに従ってさらに必要な情報が読出されてもよく、また、一致検出時、そのエントリアドレスの値に関わらず、所定の処理が実行されてもよい。
図67に示すように、書込ワード線を、記憶ノードSNBに対する書込ワード線と記憶ノードSNAおよびSNCに対する書込ワード線とを別々に設けることにより、サーチ操作時において、マスクをかけたサーチ動作を実現することができる。
なお、この発明の実施の形態7に従う半導体信号処理装置の全体の構成は、実施の形態3と同様の構成であり、図42に示す構成のアドレスカウンタ170をエントリアドレス発生回路として利用することにより、本実施の形態7の3つの記憶ノードSNA、SNBおよびSNCがユニット演算子セルにおいて設けられる場合において、3値CAM動作を実現することができる。
図71は、このサーチデータおよびフラグの構成の一例を示す図である。サーチデータDINA<m:0>は、データA<m:0>で構成され、フラグ(ビット)FLGは、マスクデータDINC<m:0>により構成される。サーチデータビットA<0>−A<p−1>に対し、対応のマスクデータDINCのビット(FLG)を“1”に設定し、サーチデータのビットA<p>−A<q>に対し、対応のマスクデータDINCのビット(フラグFLG)を、“0”に設定する。また、サーチデータの残りのビットA<q+1>−A<m>に対し、マスクデータDINCの対応のビットを、“1”に設定する。
この図71に示すサーチデータに対するマスクデータのビット配列の場合、サーチデータのうちビットA<p>−A<q>に対しサーチが行なわれ、残りのビットA<0>−A<c−1>およびA<q+1>−A<m>の状態は、「ドントケア」である。したがって、マスクデータDINCのビット(フラグFLG)の値を設定することにより、サーチデータの有効ビット幅を適宜設定して、サーチ動作を実行することができる。
たとえば、データ通信におけるIPアドレス(インターネットプロトコルアドレス)のデータパケットに対する次のアドレスの検索に対しても適用することができ、また、ペイロードにおける文字列検索を行うことが可能となる。
[実施の形態8]
図72は、この発明の実施の形態8に従う半導体信号処理装置の要部の構成を概略的に示す図である。この図72に示す半導体信号処理装置においては、演算子セルアレイ20において、AND演算を行うために用いられるAND演算アレイOARAと、全加算を行なうために用いられる全加算アレイOARFが別々に設けられる。これらのAND演算アレイOARAおよび全加算アレイOARFに共通に、メインアンプ回路24、組合せ論理演算回路26およびデータパス28が配置される。
AND演算アレイOARAにおいて、ユニット演算子セルUOEとして、先の実施の形態5において示した3つの記憶ノードSNA、SNBおよびSNCを有する構成が用いられる。この場合、書込ポートWA、WBおよびWCが、並行して選択状態へ駆動されてもよく、また実施の形態7におけるように、書込ポートWBは、書込ポートWAおよびWCと別々に選択状態へ駆動されてもよい。書込ポートWA、WBおよびWCは、それぞれ記憶ノードSNA、SNBおよびSNCに結合される書込ポートWPRTである。AND演算アレイにおいては、書込ポートWBおよびWCの一方へデータビット“0”が常時伝達されるか、または、書込ポートWCおよびWBに、同じデータが伝達される。
AND演算アレイOARAにおいて、センスアンプ帯38においてメモリセルアレイ32の各ビット線対に対してセンスアンプが設けられる。AND演算アレイOARAにおけるAND演算時の態様は、先の実施の形態1の場合と同様であり、読出ポートB(RPRPB)が選択され、ユニット演算子セルの格納するデータビットについての論理積演算(例えば、A・B)が実行される。
一方、全加算アレイOARFにおいては、2つのユニット演算子セルで構成されるキャリー生成ユニット(図72においてキャリーとして示す)および2つのユニット演算子セルで構成されるサム生成ユニット(図72においてサムとして示す)が1つの1ビット全加算単位として用いられる。この全加算アレイOARFにおいても、ユニット演算子セルUOEの構成は、AND演算アレイのユニット演算子セルUOEの構成と同じである。ただし、これら書込ポートWA、WBおよびWCを介して、個々に演算データの格納が行なわれる。なお、全加算アレイOARFにおける全加算を行なうため、データパス28においては、さらに、乗算時の部分積のシフト操作も可能とするために、その構成が、図61に示す実施の形態6のデータパスの構成と異なる。組合せ論理演算回路26の構成としては、実施の形態6の場合と同様、図61に示す構成と同様の構成が用いられる。
図73は、この実施の形態8における半導体信号処理装置のデータパス28の構成を概略的に示す図である。図73において、全加算演算単位ブロックは、2つのデータパス単位ブロックDPUBaおよびDPUBbで構成される。1つの全加算演算単位MUBにより、キャリーユニット部、またはサム生成部が構成される。従って、1ビットの全加算器は、2つの全加算演算単位により構成される。
1つの全加算演算単位MUBlにおける2つのデータパス単位ブロックDPUBaおよびDPUBbそれぞれに、ユニット演算子セルUOEkおよびUOE(k+1)が配置され、サムを生成する。隣接する全加算演算単位MUB(l+1)におけるデータパス単位ブロックDPUBaおよびDPUBbにより、上位ビットの全加算演算単位MUB(l+2)で構成されるサム生成部に対するキャリーが生成される。全加算演算単位MUBlに対するキャリーCは、図示しない下位ビット部分から転送されて、出力キャリーが、入力データビットDINA<l>およびDINB<l>に従って生成される。
この図73に示すデータパス単位ブロックDPUBaおよびDPUBbの構成は、以下の点で、図61に示すデータパスの構成と異なる。すなわち、データパス単位ブロックDPUBa(DPUB0)に配置されるレジスタ50の出力データビットを、さらに図示しないクロック信号に従って転送するテンポラリレジスタ450と、テンポラリレジスタ450の格納値と外部からのデータビットDINB<l>とを受けるマルチプレクサ(MUX2)454が設けられる。このテンポラリレジスタ450の出力値は、下位ビット側のサム生成用の全加算演算単位MUB(l−2)へ転送される(シフトダウンされる)。
上位ビットの全加算演算単位MUB(l+2)のテンポラリレジスタ450の出力値に対し、それぞれインバータ456、457および458が書込データパス単位ブロックDPUBaおよびDPUBb各々において設けられる。インバータ456,457および458の出力データビットは、それぞれマルチプレクサ400、57および56へ与えられる。したがって、テンポラリレジスタ450からシフトダウンされたデータビットを、この全加算演算単位MUBlにおいて利用して、対応のビット演算子セルUOEkおよび/またはUOE(k+1)へ転送することができる。
このデータパス単位ブロックDPUBaおよびDPUBbの他の構成は、図61に示すデータパス単位ブロックの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図73に示すデータバスにおける全加算演算単位を用いて、AND演算および全加算演算を行ない、乗算時の部分積の生成および部分積の加算を実行して最終乗算結果を生成する。
図74は、この発明の実施の形態8に従う半導体信号処理装置における乗算操作の一例を示す図である。図74においては、4ビット被乗数X<3:0>および4ビット乗数Y<3:0>の乗算を行なう場合が、一例として示される。乗算操作においては、被乗数X<3:0>に対し乗数Y<3:0>の各ビットY<0>−Y<3>ごとに乗算を行ない(AND演算を行ない)、部分積PP0−PP3を生成する。これらの部分積PP0−PP3を生成した後、各ビット位置ごとに、部分積PP0−PP3を加算して、8ビット最終積P<7:0>を生成する。
通常の並列乗算器においては、各部分積を生成するために、乗算セルアレイが配置される。この操作を、図72に示すAND演算アレイOARAおよび全加算アレイOARFを利用して実現する。すなわち、データパスのデータ伝搬経路を、AND演算アレイおよび全加算アレイへのアクセスに応じて設定して部分積の生成、部分積の加算を順次実行する。以下、この図74に一例として示す4ビット乗算操作について、図75(A)−図75(C)、図76(A)および図76(B)、および図77(A)および図77(B)を参照して説明する。
図75(A)に示すように、AND演算アレイOARAにおいて、ANDセルLPC0−LPC7が用いられる。ANDセルLPC0は、ANDセルLPC1−LPC7に対する経路切換の制御をすべて同じとするために、冗長的に設けられる。ANDセルLPC0−LPC7各々においては、2つのユニット演算子セルUOE0およびUOE1が、キャリー生成部およびサム生成部と同様に配置され、合計4つのユニット演算子セルUOEで構成され、このうち、1つのユニット演算子セルUOE0を用いて、記憶ノードSNAおよびSNBに格納される入力データについてのAND演算を実行する(読出ポートとしては、読出ポート選択回路においてBポートが選択される)。記憶ノードSNCには、データ“0”またはデータBが格納される。
このAND演算については、図示しないデータパスの対応の全加算演算単位において、AND演算を実行するように、入力データAおよびBの非反転データが選択される。また、ANDセルLPC4−LPC7に対し、被乗数ビットX<0>−X<3>がそれぞれ入力データAとして与えられる。これらのANDセルLPC4−LPC7に対し、また書込データBとして、乗数ビットY<0>が与えられる。ANDセルLPC0−LPC3においては、データ“0”が、データAとして与えられる。外部からの書込データBとして、これらのANDセルLPC0−LPC3に対して、データ“0”が与えられてもよい。
このAND演算の結果、ANDセルLPC4−LPC7においてはそれぞれ、被乗数ビットX<0>−X<3>と乗数ビットY<0>のAND演算結果が、対応のセンスアンプにより生成され、対応のデータパス単位ブロックのレジスタ50に、それぞれ格納される。一方、ANDセルLPC0−LPC3においては、AND演算結果は“0”であり、対応のレジスタ50には、データ“0”が格納される。これにより、図74に示す部分積PP1の各ビットが生成される。
次いで、図75(B)に示すように、被乗数ビットX<0>−X<3>を保持したままで、乗数ビットをビットY<1>に切換え、再びANDセルLPC4−LPC7へ与える。ANDセルLPC0−LPC3への印加データは、図75(A)に示す場合と同じである。したがって、その結果、ANDセルLPC4−LPC7は、乗数ビットY<1>と被乗数ビットX<0>−X<3>とのAND演算結果を生成し、それぞれ対応のレジスタ50に格納される。一方、先のサイクルにおいて生成されたAND演算結果(図75(A)に示す)は、テンポラリレジスタ450にそれぞれ格納される。これにより、図74に示す部分積PP0およびPP1の各ビットが生成されたため、これらの部分積PP0およびPP1の加算を、桁合わせを行なって実行する。すなわち、ANDセルLPC4−LPC7の対応のテンポラリレジスタ450に格納されたビットは、1ビット下位方向にシフトされて、書込データBとして伝達され(図73の上位ビットのテンポラリレジスタ450から出力されるデータを利用する)。一方、書込データAとしては、レジスタ50に格納されたデータを利用する。
全加算アレイOARFにおいては、ANDセルと同様、全加算(FADD)セルFDC0−FDC7が用いられる。全加算セルFADDは、1ビット全加算を行うため、キャリー生成用のユニット演算子セルおよびサム生成用のユニット演算子セルを含み、図73に示す、加算演算単位MUBが、キャリーおよびサム生成のために各全加算セルに対して設けられる。データパスの単位ブロックは、ANDセルおよび全加算セルにおいて共通に利用される。従って、ANDセルLPC0−LPC7と全加算(FADD)セルFDC0−FDC7とは列方向において整列して配置される。
これらのFADDセルFDC0−FDC7に対しては、書込データBとして、1ビット上位のテンポラリレジスタ450に格納されるデータを選択し、一方、書込データAとして、対応のデータパス単位ブロックに含まれるレジスタ50の出力データを選択する。この1ビット下位方向にシフトにより、部分積加算時の桁合わせが実現される。
次いで、全加算アレイOARFにおいて、FADDセルFDC0−FDC7へアクセスし、全加算のキャリーおよびサムの生成を行なう(実施の形態6参照)。これにより、図75(C)に示すように、FADDセルFDC3−FDC7のそれぞれ対応のレジスタ50に、部分積PP0およびPP1の加算結果が格納される。この加算時において、最上位ビットのFADDセルFDC7へは、書込データBとして、データ“0”が与えられる。
次いで、図76(A)に示すように、入力データAとして、被乗数ビットX<0>−X<3>を選択し、また、乗数ビットY<2>を書込データBとして与えて、再びAND演算アレイOARAに対するアクセスを実行する(データパスにおいてはAND演算を実行するように経路が変更される)。これにより、ANDセルLPC4−LPC7からは、被乗数ビットX<0>−X<3>と乗数ビットY<2>のAND演算結果が生成され、対応のレジスタ50に格納される。これにより、部分積PP2の各ビットが、ANDセルLPC4−LPC7の対応のレジスタ50に格納される。図75(C)において示した、部分積PP0およびPP1の加算結果の各ビットは、それぞれ、テンポラリレジスタ450に格納される。
ANDセルLPC0−LPC3は、入力データAが“0”であり、対応のレジスタ50には、データ“0”が格納される。
次いで、図76(B)に示すように、部分積加算を行なうために、テンポラリレジスト450による−1ビットシフト(下位方向への1ビットシフト)が実行され、シフトデータが、それぞれ、書込データBとして選択される。対応のデータバス単位ブロック内のレジスタ50の格納データが、書込データAとして選択される。この状態で、全加算アレイOARFにアクセスし、FADDセルFDC0−FDC7により、全加算操作を行なう(キャリーおよびサム生成を行なう)。FADDセルFDC2−FDC7からは、部分積PP0−PP2の加算結果が生成され、対応のレジスタ50に部分積PP0−PP2の加算結果が格納される。FADDセルFDC1およびFDC0の対応のレジスタ50には、データ“0”が格納される。
この場合、図76(B)において、レジスタ50の格納値を示すように、図74に示す部分積PP0−PP2の各桁ごとの加算結果が正確に、FADDセルFDC2−FDC7の対応のレジスタに格納されている。
次いで、図77(A)に示すように、データパスにおいて、再び、ANDセルLPC4−LPC7に対する書込データAとして、被乗数ビットX<0>−X<3>を選択し、また、これらのANDセルLPC4−LPC7に対する書込データBとして、乗数ビットY<3>を選択する。ANDセルLPC0−LPC3に対しては、書込データAとして“0”が与えられる。この状態で、AND演算アレイOARAへアクセスし、被乗数ビットX<0>−X<3>と乗数ビットY<3>とのAND演算を行なう。これにより、AND0LPC4−LPC7の対応のレジスタ50に、これらの被乗数X<3:0>と乗数ビットY<3>のAND演算結果が格納され、部分積PP3が生成され、対応のレジスタ50に部分積PP3の各ビットが格納される。テンポラリレジスタ450においては、図76(B)において示した部分積PP0−PP2の加算値が格納される。
次に、図77(B)に示すように、データパスにおいて、再び−1ビットシフト操作を行ない、テンポラリレジスタ450の格納データを、1ビット下位のサム生成用の全加算演算単位へシフトする。これにより、各演算単位における書込データBが生成される。書込データAとしては、対応のレジスタ50に格納されるデータが選択される。
再び、全加算アレイOARFへアクセスし、FADDセルFDC0−FDC7において、全加算操作を行なう(キャリーおよびサムの生成)。この結果、FADDセルFDC1−FDC7対応のレジスタ50には、部分積PP0−PP3の最終加算結果が格納される。FADDセルFDC1−FDC7のレジスタ50からの出力データを、バッファを通して外部へ取出すことにより、データAおよびBの乗算結果の乗算ビットP<0>−P<7>を生成することができる。FADDセルFDC0の対応のレジスタ50のデータは、外部に対する乗算ビットとしては利用されない。これにより、4ビット乗算は、5クロックサイクルで実行することができる。
また、演算子セルアレイにおいては、3入力ユニット演算子セルを用い、ANDセルおよびFADDセルFDC0−FDC7においては、各々、4つのユニット演算子セルが配置されるだけである。AND演算および加算およびキャリシフトを行う乗算セルを各部分積のビットごとに配置する必要はなく、小占有面積で、多ビットデータの乗算を実行することができる。
図78は、この発明の実施の形態8に従う半導体信号処理装置の乗算操作を示すフロー図である。以下、図78を参照して、この発明の実施の形態8に従う半導体信号処理装置の乗算操作について説明する。
まず、乗算の指示が与えられるのを待つ(ステップSP40)。乗算が指定されると、乗算データXおよびYを保持する(ステップSP41)。
次いで、カウンタのカウント値iを0に設定し、また、データパス(28)において、AND演算を実行するように設定する。この場合、図73に示すマルチプレクサ56および57が、マルチプレクサ452および454を介して与えられる入力データDINAおよびDINBを選択する状態に設定する(ステップSP42)。
次いで、被乗数データXおよび乗数ビットY<i>を供給し、AND演算アレイへアクセスし、AND演算結果を生成する(ステップSP43)。
次いで、カウンタのカウント値iが0であるかの判定が行なわれる(ステップSP44)。カウンタのカウント値iが0の場合には、最初の部分積が形成されただけであるため、カウンタのカウント値iを1増分し(ステップSP45)、次いで、ステップSP43からの処理を実行する。
ステップSP44において、カウンタのカウント値iが0でないと判定されると、既に部分積は、最低でも2つ生成されているため、全加算操作を行なう。この場合、各データパス単位ブロックにおいて、レジスタ(50)のデータを、書込データAとしてマルチプレクサ452および56により選択し、また、上位ビットのテンポラリレジスタ(450)からの値を、書込データBとして選択する(マルチプレクサ57による)。また、データバスおよびロジックパス(組合せ論理演算回路)の経路が全加算用に設定されると、全加算アレイへアクセスし、全加算操作を行ない、キャリーおよびサムを生成する(ステップSP46)。
この全加算操作完了後、カウンタのカウント値iが最大値MAXに到達しているかの判定が行なわれる(ステップSP47)。カウンタのカウント値iが最大値MAXに到達している場合には、乗数Yの最上位ビットY<MAX>についての部分積の全加算が実行されているため、この全加算結果を、乗算結果として出力する(ステップSP48)。
一方、カウンタのカウント値iが最大値MAXに到達していない場合には、ステップSP45に戻り、カウンタのカウント値iを1増分して再びステップSP43からの操作を繰返し実行する。
従って、最初に2つの部分積を生成して、これらの部分積の全加算が行なわれた後、AND演算および全加算演算が繰返し実行される。Nビット幅のデータについての乗算を行なう場合、2・N+1クロックサイクルで乗算結果を得ることができる。
図79は、この実施の形態8に従う半導体信号処理装置に対する、書込データを生成する入力インターフェイスの構成の一例を概略的に示す図である。図79において、入力インターフェイス470は、外部からの被乗数データX<m:0>をラッチするラッチ回路472と、外部からの乗数データY<m:0>を受けて格納するシフトレジスタ474を含む。このラッチ回路472のラッチするデータX<m:0>は並列に、データパスへ与えられる。一方、シフトレジスタ474からは、1ビットY<i>ずつ順次シフトされて出力されて、データパスの書込対象のポート(書込データBを入力するポート)へ与えられる。
以上のようにして、データパスに対して書込対象の演算単位に対して、ラッチ回路472から常時被乗数データX<m:0>を供給し、被乗数データを、1ビットずつシフトして供給することができる。
なお、この乗算時の動作制御は、図4に示す制御回路30により実行される。乗算命令(コマンド)に従って、ANDアレイアクセスおよび全加算アレイアクセスが繰り返し実行されるように各制御信号を生成する。ANDアレイおよび全加算アレイにおいて同一行のエントリを用いてAND演算および全加算演算を実行することにより、ワード線アドレスを固定してアレイを指定するブロックアドレスを切換えて、ANDアレイおよび全加算アレイに対して順次アクセスすることができる。したがって、制御回路の構成としては、実施の形態1および6において利用する制御回路を利用することができる。
以上のように、この発明の実施の形態8に従えば、演算子セルアレイの、AND演算を実行するAND演算アレイ(演算子セルサブアレイブロック)および全加算演算を行なう全加算アレイ(演算子セルサブアレイブロック)に分割し、データパスおよび組合せ論理演算回路のデータパスを、各演算内容において切換えて、全加算およびAND演算を実行している。これにより、小占有面積のアレイを用いて、多ビットデータの乗算を実行することができる。
[実施の形態9]
図80は、この発明の実施の形態9に従う半導体信号処理装置のユニット演算子セルの電気的等価回路の構成を概略的に示す図である。図80において、2つのユニット演算子セルUOEAおよびUOEBが設けられる。これらのユニット演算子セルUOEAおよびUOEBは、それぞれ、異なるデータパス単位ブロックに対応して設けられ、1つのデータバス演算単位グループに対応して配置される。
ユニット演算子セルUOEAが、PチャネルSOIトランジスタPQA1およびPQA2と、NチャネルSOIトランジスタNQA1およびNQA2とを含み、ユニット演算子セルUOEBは、PチャネルSOIトランジスタPQB1およびPQB2と、NチャネルSOIトランジスタNQB1およびNQB2を含む。
PチャネルSOIトランジスタPQA1およびPQB1は、書込ワード線WWLB上の信号電位に従って、それぞれグローバル書込データ線上のデータ/DINBおよびDINBを、NチャネルSOIトランジスタNQA2およびNQB2のボディ領域(記憶ノード)SNBに伝達する。PチャネルSOIトランジスタPQA2およびPQB2は、ローカル書込ワード線WWLAおよびSWWLA上の信号電位に応答して書込データ線上のデータDINAおよび/DINAを、それぞれSOIトランジスタNQA1およびNQB2のボディ領域(記憶ノードSNA)に伝達する。
第1のローカル書込ワード線WWLAは、書込ワード線WWLBと直交する方向に配置され、第2のローカル書込ワード線SWWLAは、この第1のローカル書込ワード線WWLAと直交する方向に配置されかつ電気的に接続される。第2のローカル書込ワード線SWWLAは、行方向に整列して配置されるユニット演算子セルUOEAおよびUOEBのMOSトランジスタPQA2およびPQB2のゲートに電気的に接続される。これらのローカル書込ワード線WWLAおよびSWWLAは、対応の演算子セルサブアレイブロック内に延在して配置される。ローカル書込ワード線の階層配置については、後に説明する。
SOIトランジスタNQA1およびNQB1は、それぞれソース線SLに、そのソースが結合される。ユニット演算子セルUOEAおよびUOEBにおける読出部のSOIトランジスタの接続態様は、図1に示すユニット演算子セルの接続態様と同じである。従って、これらのユニット演算子セルUOEAおよびUOEBの読出部の構成については、図1に示す構成と対応する部分については、同一参照符号を付して、それらの詳細説明は省略する。
SOIトランジスタNQA1およびNQB1は、読出ワード線RWLA上の信号電位に応答してその記憶データに応じて選択的に導通し、SOIトランジスタNQA2およびNQB2は、読出ワード線RWLB上の信号電位に応答してその記憶データに応じて選択的に導通する。
ユニット演算子セルUOEAおよびUOEB各々において、NOT演算を実行する場合には、データDOUTAが利用され、AND演算結果を出す場合には、データDOUTBが利用される。ユニット演算子セルUOEAおよびUOEBに対して、異なる読出ビット線が、それぞれ、結合される。従って、これらのユニット演算子セルUOEAおよびUOEBに対して並列にデータの読出が行われる。
図81は、図80に示すユニット演算子セルUOEAおよびUOEBの平面レイアウトを概略的に示す図である。図81において、中央部の破線ブロックで示すP型トランジスタ形成領域に関し、これらのユニット演算子セルUOEAおよびUOEBが対称的に配置される。
P型トランジスタ形性領域内において、Y方向に整列して、高濃度P型領域500aおよび500bが配置される。これらのP型領域500aおよび500bの間にN型領域502aが配置される。P型領域500bに対してY方向に整列してかつ隣接してP型領域504aが配置される。
また、これらのP型領域500a、500bおよび504aにY方向において整列して、P型領域504b、および高濃度P型領域500cおよび500dが配置される。P型領域500cおよび500dの間に、N型領域502bが配置される。
P型トランジスタ形成領域外部において、P型領域500bに隣接してN型領域506aが配置され、このN型領域506aにY方向に整列して、高濃度N型領域506bおよび506cが配置される。N型領域506aおよび506bの間に、P型領域504aがX方向に連続的に延在して配置される。また、P型領域504bが、これらのN型領域506bおよび506cの間の領域にX方向に連続的に延在して配置される。
また、P型トランジスタ形成領域において、Y方向に整列して、高濃度P型領域500eおよび500fが配置される。これらのP型領域500eおよび500fの間にN型領域cが配置される。P型領域500fにY方向に沿って整列してかつ隣接してP型領域504cが配置される。
これらのP型領域500e、500f、504eとY方向において整列して、P型領域504d、および高濃度P型領域500gおよび500hが配置される。高濃度P型領域500gおよび500hの間にN型領域502dが配置される。
このP型トランジスタ形成領域外部において、P型領域500fに隣接して、高濃度N型領域506dが配置され、このN型領域506dとY方向において整列して高濃度N型領域506eおよび506fが配置される。N型領域506dおよび506eの間には、P型トランジスタ形成領域からP型領域504cがX方向に連続的に延在して配置される。N型領域506eおよび506fの間には、また、P型トランジスタ形成領域からP型領域504dがX方向に延在して配置される。
X方向に連続的に延在してかつN型領域502aおよび502cと重なり合うようにゲート電極配線508aが配置され、P型領域504aおよび504cと重なり合うようにX方向に連続的に延在してゲート電極配線508bが配置される。P型領域504bおよび504dと重なり合うようにX方向に連続的に延在してゲート電極配線508cが配置され、N型領域502bおよび502dと重なり合うようにX方向に連続的に延在してゲート電極配線508dが配置される。
Y方向に連続的に延在する第1金属配線510a−510gが、互いに間を置いて配置される。第1金属配線510aは、コンタクト/ビアVV11を介して、N型領域506fに電気的に接続される。第1金属配線510bは、コンタクト/ビアVV10を介してN型領域506eに電気的に接続される。第1金属配線510cは、コンタクト/ビアVV8を介してP型領域500hに電気的に接続される。
第1金属配線510dは、コンタクト/ビアVV6を介して、X方向に延在して配置される第2金属配線512gに電気的に接続される。この第2金属配線512gは、下層に並行して配置されるゲート電極配線508aに図示しない領域において電気的に接続される。図81においては、これらの配線の電気的接続を強調するために、ゲート電極配線502a、第1金属配線510dおよび第2金属配線512gが、同一箇所において共通のコンタクト/ビアVV6を介して相互に電気的に接続されるように示す。このローカル書込ワード線WWLAが、別の行のメモリセルに接続される場合には、この領域においては、ローカル書込ワード線WWLAを構成する第1金属配線510dおよび第2のローカル書込ワード線SWWLAを構成する第2金属配線512gは、単に交差するように配置されるだけであり、コンタクト/ビアVV6は、設けられない。
第1金属配線510eは、コンタクト/ビアVV5を介してP型領域500dに電気的に接続される。第1金属配線510fは、コンタクト/ビアVV3を介してN型領域506bに電気的に接続される。第1中間配線510gは、コンタクト/ビアVVを介してN型領域506cに電気的に接続される。
第1金属配線510aおよび510bが、BポートおよびAポートのビット線をそれぞれ構成し、第1金属配線510cが、書込データDINBを伝達する書込ポートを構成する。第1金属配線501dが、ローカル書込ワード線WWLAを構成し、第1金属配線510eが、書込データDINBを伝達する。第1金属配線510fは、読出Aポートビット線を構成し、データDOUTAを伝達する。第1金属配線510gは、Bポート読出ビット線を構成しデータDOUTBを伝達する。
X方向に連続的に延在して第2金属配線512a−512gがそれぞれ間を置いて配置される。第2金属配線512aは、ビア/コンタクトVV1および中間配線を介してP型領域500aに電気的に接続される。第2金属配線512bは、ビア/コンタクトVV7および中間配線を介してP型領域500eに電気的に接続される。第2金属配線512cは、ビア/コンタクトVV9および中間配線を介してN型領域506dに電気的に接続され、また、ビア/コンタクトVV2を介してN型領域506aに電気的に接続される。第2金属配線512dは、X方向に連続的に延在するゲート電極配線508bと並行して配置され、図示しない部分において電気的に接続される。
第2金属配線512eは、ゲート電極配線508cと重なり合うように配置され、図示しない部分において電気的にゲート電極配線508cと接続される。第2金属配線512fは、ゲート電極配線508dと並行して重なり合うように配置され、ゲート電極配線508dと図示しない箇所において電気的に接続される。
第2金属配線512aおよび512bは、それぞれ、入力データ/DINAおよびDINAを伝達する。第2金属配線512cはソース線SLを構成し、第2金属配線512dは、下層のゲート電極配線508bとともに読出ワード線RWLAを構成する。第2金属配線512eは、下層のゲート電極配線508cとともに読出ワード線RWLBを構成する。第2層金属配線512fは、下層のゲート電極配線508dとともに、書込ワード線WWLBを構成する。第2金属配線512gは、第2のローカル書込ワード線SWWLAを構成する。
このAポートローカル書込ワード線WWLAをY方向に連続的に延在させ、かつ各演算子セルサブアレイブロックにおいて対応のメモリセル行において第2のローカル書込ワード線SWWLAをX方向に延在させてゲート電極配線と接続する。これにより、以下に説明するサーチ動作時において、複数の演算子セルサブアレイブロックの選択された演算子セルサブアレイブロックにおいて同一行を並行して選択して、サーチ動作を行なう。ローカル書込ワード線WWLAおよびSWWLAを利用するのは、後に説明するように、サーチ動作時にグローバル書込ワード線によりサブアレイブロックの行を指定し、サーチデータビット幅に応じて、選択される演算子セルサブアレイブロックの数を調整するためである。
図82は、この発明の実施の形態9に従う半導体信号処理装置の全体の構成を概略的に示す図である。図82において、演算子セルアレイは、実施の形態1と同様、複数の演算子セルサブアレイブロックOAR0−OAR31に分割される。演算子セルサブアレイブロックOAR0−OAR31各々においては、ユニット演算子セルが行列状に配列され、また、各ユニット演算子セル列に対応してダミーセルが配置される。ユニット演算子セルの行に対応して、書込ワード線WWLB、および読出ワード線RWLA、RWLBが配置され、また、第2のローカル書込ワード線SWWLA0−SWWLAmが配置される。これらの第2のローカル書込ワード線SWWLA0−SWWLAmは、それぞれ、対応のローカル書込ワード線WWLA0−WWLAmに接続される。
また、センスアンプ帯38においては、ユニット演算子セル列に対応してセンスアンプ回路が設けられる。ポートの選択用のスイッチ回路および読出ゲートの配置は、これまでの実施の形態と同様であるが、センスアンプ回路の出力部の構成が、これまでの実施の形態と異なり、グローバル読出データ線に対して、センスデータに応じて選択的に電流を一方方向に供給するようにグローバル読出データ線を駆動する(この出力部の構成については後に説明する)。
これらの演算子セルサブアレイブロックOAR0−OAR31に共通に、Aポート書込ワード線用デコーダ520が設けられる。Aポート書込ワード線用デコーダ520は、Aポート書込ワード線ドライバ522を含む。読出用のAポートワード線アドレスに従って、書込ワード線ドライバ522により、アドレス指定されたグローバル書込ワード線WWLA<0>、WWLA<1>…がそれぞれ駆動される。サーチ動作時、各サーチサイクルごとに選択グローバルワード線が順次更新される。
演算子セルサブアレイブロックOAR0−OAR31それぞれに対応してサブデコーダ帯525が設けられる。このサブデコーダ帯525においては、グローバル書込ワード線WWLA<0>−WLLA<m>それぞれに対応してサブデコーダ523が設けられる。このサブデコーダ523は、対応のグローバルグローバル書込ワード線WWLA<i>上の信号と行選択駆動回路22からのブロック選択信号BSkとに従って対応のローカル書込ワード線WWLAiを選択状態に駆動し、対応の第2のローカル書込ワード線SWWLAiに接続される1行のユニット演算子セルを選択状態に駆動する。
演算子セルサブアレイブロックOAR0−OAR31のうちブロック選択信号BSにより選択された演算子セルサブアレイブロックにおいて、同じ行の第2のローカル書込ワード線SWWLAを選択状態へ駆動する。Aポートの書込ワード線をグローバルおよびローカルワード線の階層構造とすることにより、サーチデータのビット幅が毎クロックサイクル変更される場合においても、サーチデータのビット幅に応じてサーチ対象データパターンを選択して一致検出を行なうことができる。
メインアンプ回路24、組合わせ論理回路26およびデータパス28は、先の実施の形態1から4において説明した構成のいずれかと同様である。データパス28において、外部からのデータDINBの非反転データを生成する構成を利用する。データパス28には、グローバル書込ドライバ524および526が設けられ、これらのドライバ524および526により、それぞれグローバル書込データ線WGLZおよびWGL上にデータ/DINBおよびDINBを伝達する。データパス28を介して(m+1)ビット幅のデータDINB<m:0>および出力データDOUT<m:0>が転送される。
行選択駆動回路22においては、演算子セルサブアレイブロックOAR0−OAR31それぞれに対応して、行/データ線選択駆動回路XXDR0−XXDR31が設けられる。これらの行/データ線選択駆動回路XXDR0−DDXR31には、ビット幅可変サーチデータDINA♯xが与えられる。
ビット幅可変サーチデータDINA♯x(xは、サーチデータの番号)のビット幅wは、データ通信用途においては、パケットのヘッダに記述されており、このヘッダの解析により、各サーチサイクル時のサーチデータDINA<l:0>のビット幅wが検出される。各サーチデータビットが、演算子セルサブアレイブロックOAR31−OAR(31−l)それぞれに対して分散して転送される。この検出されたサーチデータのビット幅情報wに従って、制御回路600により選択状態へ駆動されるブロック選択信号BSが決定され、サーチデータのビット幅に応じた数の演算子セルサブアレイにおいて1行のユニット演算子セルが選択されて、一致検索が実行される。
行/データ線選択駆動回路XXDR0−XXDR31の各々は、図示しないアドレス信号に従って読出ワード線RWLA、RWLBおよび書込ワード線WWLBを選択状態へ駆動するワード線ドライブ回路530と、与えられたサーチデータの対応のビットDINAx<i>に従って相補データDINAおよび/DINAを生成するデータ線ドライブ回路534とを含む。
ワード線ドライブ回路530は、対応の演算子セルサブアレイブロックの各ユニット演算子セル行に対応して配置される。演算セルサブアレイブロックOAR0−OAR31において、個々にかつ並行して、読出ワード線RWLAおよびRWLBならびに書込ワード線WWLBを選択状態へ駆動することができる。
また、データパス28に対し、さらに、フラグレジスタ540が設けられる。データパス28においては、後に説明するように、一致検出回路が設けられており、その一致検出結果を、各サーチ動作ごとにフラグレジスタ540のレジスタに格納する。
図83は、図82に示す行/データ線選択駆動回路の構成の一例を概略的に示す図である。図82において、ワード線ドライブ回路530は、書込ワード線WWLBを駆動する書込ワード線駆動回路541と、読出ワード線RWLAを選択状態へ駆動するAポート読出ワード線駆動回路542と、Bポート読出ワード線RWLBを選択状態へ駆動するBポート読出ワード線駆動回路544とを含む。書込ワード線駆動回路541は、アドレス信号ADとBポート書込イネーブル信号WENBとを受け、書込ワード線WWLBを駆動する。Aポート読出ワード線駆動回路542は、アドレス信号ADとAポート読出イネーブル信号RENAとを受け、読出ワード線RWLAを選択状態へ駆動する。Bポート読出ワード線駆動回路544は、アドレス信号ADとBポート読出イネーブル信号RENBとを受け、Bポート読出ワード線RWLBを選択状態へ駆動する。アドレス信号ADは、演算子サブアレイブロックOAR0−OAR31各々における行を指定する。
駆動回路541,542および544は、対応のイネーブル信号の活性化時イネーブルされてアドレス信号ADをデコードし、そのデコード結果に従って、対応のワード線WWLB、RWLAおよびRWLBを選択状態に駆動する。
データ線ドライブ回路534は、データビットDINA<i>と読出イネーブル信号RENとアドレス信号ADを受け、反転データビット/DINAを生成するゲート回路546と、ゲート回路546の出力信号を反転してデータビットDINAを生成するインバータ548を含む。
読出イネーブル信号RENは、Aポート読出イネーブル信号RENAおよびBポート読出イネーブル信号RENBがともに活性状態のときに活性状態とされる。ゲート回路546は、NAND型デコード回路であり、読出イネーブル信号RENの活性化時イネーブルされ、アドレス信号ADをデコードし、対応の行が選択されているときにインバータとして動作して、データビットDINA<i>を反転する。
Bポート書込ワード線WWLBおよび読出ワード線RWLA,RWLBと直交する方向に、図82に示すサブデコーダ帯525のサブデコーダ523からのAポート書込ワード線選択信号を伝達する第1のローカル書込ワード線WWLAjが配置される。この第1のローカル書込ワード線WWLAj上の書込ワード線選択信号は、ローカル書込ワード線WWLBと並行に配設される第2のAポートローカル書込ワード線SWWLAjに伝達される。従って、図82に示すグローバルAポート書込ワード線を介して伝達される書込ワード線選択信号WWLA<j>が、サブデコーダ帯525を介して選択された演算子セルサブアレイブロックにおいて行方向に配置される第2のローカル書込ワード線SWWLAjに伝達される。
このAポート書込ワード線を階層構造とすることにより、演算子セルサブアレイブロックOAR0−OAR31のうちサーチデータのビット幅に応じて選択された演算子セルサブアレイブロックそれぞれにおいて、同一行の第2のローカル書込ワード線SWWLAが並行して選択状態へ駆動される。
図83に示す構成が、演算子セルサブアレイブロックOAR0−OAR31各々において各行に対応して配置される。
図84は、図82に示すセンスアンプ帯38に含まれるセンスアンプおよび読出ゲートの構成の一例を示す図である。図84において、センスアンプSAと読出ゲートCSGの間に、Pチャネルトランジスタ550およびNチャネルトランジスタ552が設けられる。これらのトランジスタ550および552は、SOIトランジスタであってもよく、またバルクトランジスタであってもよい。これらは、センスアンプSAの構成要素と同じ構造のトランジスタで構成される。センスアンプSAは、実施の形態1と同様の構成を備える。センスアンプSAおよびトランジスタ550および552により、センスアンプ回路560が構成される。
Pチャネルトランジスタ550は、センスアンプSAの出力信号/SOUTに従って選択的に導通し、導通時、電源電圧を伝達する。Nチャネルトランジスタ552は、センスアンプSAの出力信号SOUTに従って導通し、導通時、接地電圧を伝達する。グローバル読出データ線RGLおよびZRGLは、一例として、接地電圧にプリチャージされる。この場合、トランジスタ552は、導通時、単に対応のグローバル読出データ線ZRGLをプリチャージ電圧レベルに維持するだけである。このときには、トランジスタ550も導通し、グローバル読出データ線RGLに電流を供給するため、ここでは、グローバル読出データ線RGLに対するシールド線として補のグローバル読出データ線ZRGLを機能させる。しかしながら、グローバル読出データ線RGLおよびZRGLが中間電圧レベルにプリチャージされ、メインアンプにおいてグローバル読出データ線RGLおよびZRGL両者の電圧レベルに従ってセンスアンプSAの出力信号の電圧レベルに応じた信号を生成する構成が用いられても良い。
センスアンプSAは、対応のユニット演算子セルからのデータ/A・BまたはA・/Bが“1”の場合には、すなわち、データAおよびBが不一致の場合には、その出力信号SOUTをHレベル(“1”)に駆動する。この場合には、トランジスタ550および552がともに導通し、読出ゲートCSGを介してグローバル読出データ線RGLに電流が供給され、その電圧レベルが上昇する。
逆に、データA・/Bおよび/A・Bが“0”のとき、すなわち、データAおよびBが一致しているときには、センスアンプSAの出力信号SOUTおよび/SOUTは、それぞれLレベルおよびHレベルとなり、トランジスタ550および552はオフ状態であり、したがって、センスアンプSAは、等価的に出力ハイインピーダンス状態となり、グローバル読出データ線RGLおよびZRGLの電位には、何ら影響を及ぼさない。
サーチ対象データパターンは、一列に整列して配置され、各ビットについての一致検出結果が対応のグローバル読出データ線RGL上に読出される。従って、与えられたサーチデータと一致するデータパターンが格納されていれば、全演算子セルアレイブロックの対応のセンスアンプ回路560は、出力ハイインピーダンス状態となり、対応のグローバル読出データ線RGLは、プリチャージ電圧レベルに維持される。一方、サーチデータと対応のサーチ対象データとが1ビットでも不一致であれば、対応のグローバル読出データ線RGLの電位はHレベルとなる。
図85は、この図82に示すデータパス28の一致検出部の構成の一例を概略的に示す図である。図85において、データバス演算単位グループ44<0>−44<m>各々のデータパス単位ブロックDPUB0において、マッチ線MLと接地ノードの間に直列にNチャネルトランジスタTQ10およびTQ11が接続される。データバス演算単位グループ44<0>−44<m>それぞれに対して、トランジスタTQ10のゲートへマスクビットMASK<0>−MASK<m>が与えられ、トランジスタTQ11は、対応のレジスタ50の出力信号の反転信号をインバータ420を介してゲートに受ける。
組合せ論理演算回路26においては、2入力ORゲートが選択され、メインアンプの出力信号P<4i>およびP<4i+1>の論理和がとられる。従って、対応のマスクビットMASK<i>が“1”であり、対応のメインアンプの出力信号P<4i>およびP<4i+1>の一方が“1”の時、すなわち、データAおよびBが不一致のときには、インバータ420の出力信号は、Lレベルとなり、マッチ線MLは放電されない。一方、メインアンプの出力信号P<4i>およびP<4i+1>両者が“0”の時、すなわち、データAおよびBのパターンが一致しているときには、インバータ420の出力信号がHレベルとなり、マッチ線MLは放電される。マスクビットMASK<i>が、“0”の時にはトランジスタTQ10が、オフ状態であり、一致判定が、マスクされ、マッチ線MLの電圧レベルに対しては影響を及ぼさない。
この図85に示すデータパス28の他の構成は、図69に示すデータパスの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図86は、この一致検索動作時の演算子セルサブアレイブロックOAR31−OAR0におけるデータの読出部の構成を概略的に示す図である。図86においては、サーチデータDINA<l:0>が8ビットデータDINA<7:0>の場合、選択されて使用される8個の演算子セルサブアレイブロックOAR31、OAR30、…、OARA24を示す。この8ビットサーチデータDINA<7:0>の各ビットが演算子セルサブアレイブロックOAR31、OAR30、…、OARA24それぞれに分配される。
また、メインアンプ回路に含まれるメインアンプMAとして、データビットP<0>およびP<1>を生成するメインアンプを示す。これらのメインアンプMAは、各々、基準電圧VREFと対応のグローバル読出データ線RGL(RGL<0>、RGL<1>、…)の電位を比較する。この図86に示すメインアンプMAの構成では、メインアンプMAにおいては、補のグローバル読出データ線ZRGLは利用されないため、図86においては示していない。グローバル読出データ線RGL(およびZRGL)は、放電トランジスタ570により、プリチャージ指示信号PREに従って接地電圧レベルに放電される。
各演算子セルサブアレイブロックOAR31−OAR24におけるセンスアンプ回路560は、図84に示すセンスアンプSAおよびトランジスタ550,552を含む。次に、図86に示すデータ読出部の動作について説明する。
サーチ動作前においては、予め、演算子セルサブアレイブロックOAR31−OAR0においては、サーチ対象データパターンが格納される。1ビットのサーチ対象データBの相補データビット(DINBおよび/DINB)が、ユニット演算子セルUOEAおよびUOEBにそれぞれ格納される。1つのサーチ対象データパターンは、演算子セルサブアレイブロックOAR31−OAR24の同一位置(同一行かつ同一列)のユニット演算子セル対により形成される。
サーチ動作時においては、グローバル書込データ線WWLA<i>を選択状態へ駆動し、サーチデータDINA<7:0>のビット幅に応じて、8個の演算子セルサブアレイOAR31−OAR24がブロック選択信号BS31−BS24により選択される。選択演算子セルサブアレイOAR31−OAR24の選択行(ローカルワード線WWLAおよびsWWLAにより選択される)に対して、データ線ドライブ回路534により、データビットDINA<0>−DINA<7>,/DINA<7>をそれぞれ伝達し、対応の第2のローカルサブワード線により選択されたユニット演算子セルに伝達されたデータが書込まれる。サーチデータの書込後に、演算子セルサブアレイブロックOAR31、…OAR24において、読出ワード線RWLAおよびRWLBにより、同一行のユニット演算子セルUOEAおよびUOEBが、並行して選択状態へ駆動され、選択行のユニット演算子セルの記憶データの読出が行われる。
読出ポート選択回路(36)によりBポートが選択される。ユニット演算子セルUOEAには、データAが書込まれてデータAおよび/Bが読出され、ユニット演算子セルUOEBには、データ/Aが書込まれ、データAおよびBが読出される。このユニット演算子セルUOEAおよびUOEBに対する書込および読出アクセスにより、対応のセンスアンプから、AND演算結果データA・/Bおよび/A・Bが出力される(図においては示していないが、ダミーセルがこれまでの実施の形態と同様に設けられており、ダミーセルの電流を参照電流としてセンスアンプ回路によりセンス動作が行われる)。
これらの演算子セルサブアレイブロックOAR31−OAR24に対する読出ゲートCSG31−CSG24に対し、読出ゲート選択信号CSL♯31−CSL♯24をすべて選択状態へ駆動する。
データAおよびBが不一致の場合には、データA・/Bおよび/A・Bのいずれかが”1”となり、対応のセンスアンプSAの出力信号/SOUTがLレベルとなり、ユニット演算子セルUOEAおよびUOEBのいずれかに対応して配置されるセンスアンプ回路560から(図84のトランジスタ550を介して)、電流(i♯31−i♯24)が対応のグローバル読出データ線RGL上に伝達される。グローバル読出データ線RGLは、接地電圧レベルにプリチャージされており、不一致の演算子セルアレイサブブロックにおけるセンスアンプ回路560により、対応のグローバル読出データ線RGL<j>の電位が接地電圧レベルから上昇する。
メインアンプMAにおいて、対応のグローバル読出データ線RGL<j>の電圧レベルが、基準電圧VREFよりも高くなると、対応の出力ビットP<j>をHレベルへ駆動する。応じて、図85に示すORゲートOG0の出力信号QがHレベルとなるため、インバータ420の出力信号がLレベルとなり、マッチ線MLは、プリチャージトランジスタPQ0によりプリチャージされた電圧レベルに維持される。
一方、データAおよびBが一致している場合には、データA・/Bおよび/A・Bはともに“0”となるため、ユニット演算子セルUOEAおよびUOEBに対応して配置されるセンスアンプ回路560からは、対応のグローバル読出データ線RGL<j>およびRGL<j+1>への電流の供給は行われないため、グローバル読出データ線RGL<j>は接地電圧レベルに維持される。従って、メインアンプMAの出力信号がLレベルとなり、ORゲートOG0の出力信号もLレベルとなり、応じて、インバータ420の出力信号がHレベルとなる。この状態においては、マスクビットMSK<k>(j=0−m)がHレベル(“1”)のときには、プリチャージトランジスタPQ0によりプリチャージされたマッチ線MLが、放電される。
マスクビットMASK<j>が、“0”のときには、マッチ線MLの放電は行なわれず、プリチャージ電圧レベルを維持する。
上述のように、読出データ線対RGL<j>およびRGL<j+1>に対応して配置されるユニット演算子セルUOEAおよびUOEBに記憶されるデータパターンが、入力サーチデータDINA<7:0>のパターンと一致している場合には、マッチ線MLの放電が行なわれ、不一致の場合にマッチ線MLの放電が行なわれない。従って、演算子セルサブアレイブロックOAR31−OAR24において、読出ワード線RWLAおよびRWLBに接続されるユニット演算子セルの記憶データパターンについて並行して判定することができる。
すなわち、各演算子セルサブアレイブロックあたり1行のユニット演算子セルの記憶データビットについて、一致/不一致判定が並行して行なわれ、1つでも一致するデータパターンが存在する場合には、マッチ線MLが放電され、サーチ対象データパターン全てと不一致の場合には、マッチ線MLは、プリチャージ電圧レベルを維持する。従って、複数のサーチ対象データパターンについてのサーチ動作を、1サイクルで実行することができる。このサーチ結果が、図85に示す増幅回路AMPにより増幅されて、サーチ結果が、フラグレジスタ(540)に格納される。
図87は、この発明の実施の形態9に従う半導体信号処理装置の検索動作を模式的に示す図である。図87においては、演算子セルサブアレイブロックOAR0−OARkがサーチデータのビット幅に応じて利用される。演算子セルサブアレイブロックOAR0−O
ARkの各行には、それぞれ、サーチ対象データが、各ビットごとに配置される。この配置において、演算子セルサブアレイブロックOAR0−OARkにおいて同一行および同一列上に、1つのサーチ対象データの各ビットが配置される。たとえば、サーチ対象データDINB♯1<k:0>については、対応のビットa11、b11、…、h11が、演算子セルサブアレイブロックOAR0−OARkの第1行第1列に配置される。
1ビットのデータに対して2つのユニット演算子セルUOEAおよびUOEBが利用され、これらのユニット演算子セルUOEAおよびUOEBに相補データビットが格納される。図87に示すグローバル読出データ線RGL1−RGLmの各々は、従って、図86に示す2つのグローバル読出データ線RGL<j>およびRGL<j+1>の対に対応する。
サーチ時においては、演算子セルサブアレイブロックOAR0−OARkのうちサーチデータDINAのビット幅に応じてブロック選択信号により演算子セルサブアレイが選択され、選択された演算子セルサブアレイ各々において1行のユニット演算子セルが選択され、複数のサーチ対象データパターンに対してサーチが行われる。
図87においては、サーチデータとして、lサイクルにわたって順次データDINA♯1−DINA♯lが与えられる場合を想定してサーチ対象データ格納される場合を一例として示す。複数のサーチ対象データの同一ビット位置のデータが、1つの演算子セルサブアレイブロックに格納される。例えば、サーチデータDINA♯1−DINA♯lを想定して、これらのサーチデータの最下位ビットDINA♯1<0>ーDINA♯l<0>が、演算子セルサブアレイOAR0の各行に格納される。第1のサーチサイクルにおいては、サーチデータの最下位ビットDINA♯1<0>が、演算子セルサブアレイOAR0の第一行のデータビット列{a11,a12,…,a1m}の各ビットと比較される。次の第2サーチサイクルにおいては、サーチデータの最下位ビットDINA♯2<1>が、演算子セルサブアレイOAR0の第2行のデータビット列{a21,a22,…,a2m}の各ビットとの一致比較が行われる。
各サーチサイクルにおいて転送されるサーチデータDINAのビット幅は、可変である。ビット幅に応じて演算子セルサブアレイを選択することにより、選択された演算子セルサブアレイの同じグローバル読出線に対応して配置されるデータビット列、例えば{a11,b11,…}が入力サーチデータDINAに対するサーチ対象データとして選択されて一致検索が行われる。
図88は、この発明の実施の形態9に従う半導体信号処理装置のサーチ動作を示すフロー図である。以下、図88を参照して図87に示すサーチ対象データパターンに対するサーチ動作について説明する。
予め、ユニット演算子セルには、それぞれサーチ対象データビットがそれぞれ格納されている。先ず、サーチ動作指示が与えられる(ステップSP50)。このサーチ動作指示は、コマンドであっても良く、また、データ通信時のデータパケットのヘッダの解析結果により生成されても良い。以下の説明においては、サーチデータは、これに限定されるものではないが、一例として、通信ネットワークにおいて転送されるパケットに含まれるアクセスの許可/拒否を識別するために利用されるデータパターンとして説明する。
このサーチ動作指示に従って、先ず、アドレス(ワード線アドレス)およびフラグレジスタ等の初期化が行われる(ステップSP51)。データパスおよび組合せ論理演算回路の経路設定も行われ、また、メモリセルアレイにおいて選択ポートがBポートに設定される。
サーチ動作が開始されると、ヘッダの解析により第1サイクルでのサーチデータのビット幅(w1+1)が識別され、このビット幅(w1+1)を示すビット幅情報wとともに最初のサーチデータ列DINA♯1<w1:0>が転送される。ここで、(w1+1)は、第1サーチサイクルにおけるビット幅であり、ビット幅情報wが示すビット幅は、各サーチサイクルにおいて可変である。図87に示す構成においては、サーチデータのビット幅情報wが示すビット幅は、1から(k+1)のいずれかである。サーチデータのビット幅に応じて、(w1+1)個の演算子セルサブアレイを選択するようにブロック選択信号が設定される。
選択された演算子セルサブアレイブロックOAR0−OARw1において、書込ワード線WWLAおよびSWWLAを選択状態へ駆動し、サーチデータ列DINA♯1<w1:0>の各ビットから相補ビットを生成して、対応の演算子セルサブアレイブロックの選択行のユニット演算子セル(UOEAおよびUOEB)に転送し、データの書込および読出を行う(ステップSP52)。これにより、各演算子セルサブアレイブロックOAR0−OARw1の同一位置(第1行)のユニット演算子セルが並行して選択されてデータの書込および読出が行われる。
各センスアンプ回路の出力信号に従って、グローバル読出データ線RGL1−RGLmそれぞれに、(w1+1)ビットのデータパターン<a11、b11,…>、<a12,b12,…>、…、<a1m,b1m,…>に対する入力サーチデータ列DINA♯1<w1:0>のパターン一致判定結果に応じて、電流が選択的に流れ、グローバル読出データ線RGL1−RGLmの電圧レベルが基準電圧よりも上昇する(不一致のとき)かまたはプリチャージされた接地電圧レベルに維持される(一致のとき)。
これらのグローバル読出データ線RGL1−RGLmのいずれかがプリチャージ電圧レベルのLレベルのときには、いずれかのサーチ対象データパターンが入力サーチデータ列DINA♯1<x:0>のパターンと一致している。この場合には、ORゲートOG0、レジスタ50およびインバータ420により、マッチ線MLは、電源電圧レベルのプリチャージ電圧から放電される。このマッチ線ML上の電圧を増幅する増幅回路AMPの出力する例えばLレベルのフラグSRSLTにより、サーチデータ列DINA♯1<w1:0>に一致するデータパターンが、演算子セルサブアレイブロックOAR0−OARw1において格納されていることが示される。
一方、グローバル読出データ線RGL1−RGLmが全て基準電圧レベル以上の電圧レベルの時には、サーチ対象データパターンは、全て、入力サーチデータ列DINA♯1<w1:0>と不一致であり、この場合には、ORゲートOG0の出力信号がHレベルとなり、応じてインバータ420の出力信号がLレベルとなり、マッチ線はプリチャージ電圧の電源電圧レベルを維持する。増幅回路AMPの出力フラグSRSLTは、一致時と異なる例えばHレベルであり、不一致であることが示される。
マスクビットMASK<j>が“0”のときには、対応のサーチ対象データパターンについては、サーチ動作を停止させ、サーチ候補から除外する。このマスクビットMASK<m:0>により、サーチ対象候補のパターン、すなわち、サーチ範囲を設定することができる。
このサイクルにおいて一致が検出された場合には、増幅回路AMPからのサーチ結果フラグSRSLTに従って、フラグレジスタ540に一致フラグがセットされる(ステップSP53)。
ついで、最終のサーチデータの検索が完了したかの判定が行なわれ(ステップSP54)、全サーチデータの検索が完了していない場合には、ワード線アドレスを更新して(ステップSP55)、ステップSP52からの動作を繰り返す。まだ、最終のサーチが完了していないため、次のクロックサイクルで、別のサーチデータ列DINA♯2<w2:0>がビット幅情報wとともに転送されると、選択された(w2+1)個の演算子セルサブアレイにおいて次の行の書込ワード線WWLAおよび読出ワード線RWLAおよびRWLBを選択し、(w2+1)ビットのサーチ対象データパターン{a21,b21…}、…、{a2m,…}に対するパターン検索が実行される。
この動作を繰返し実行し、各サーチサイクルごとにマッチ線MLが一致を示す状態のときには、図82に示すフラグレジスタ540に一致フラグがセットされる。この場合、各サーチサイクルごとに一致が示されるとき、フラグレジスタ540の異なる、各サーチサイクルに割当てられたレジスタに一致フラグがセットされる。
ステップSP54において、全入力サーチデータについてのサーチが完了したと判定されると、すなわち、例えば、第lサーチサイクルでのサーチデータパターン{al1,bl1…}、…、{alm,blm,…}に対するパターン検索が完了したと判定されると、フラグレジスタ540の一致フラグの状態についての判定が行なわれる(ステップSP56)。フラグレジスタ(540)の各サーチサイクルに割当てられた一致フラグがすべてセットされた状態(たとえば、“1”)であり、全入力サーチデータ列について、一致検出が示されると、転送されたサーチデータ列DINA♯1<w1:0>−DINAl<wl:0>が、すべて、演算子セルサブアレイブロックOAR0−OARkに格納されるサーチ対象データパターンと一致したことが示される。この一致/不一致検出結果に従って、この半導体信号処理装置が適用されるシステムに応じて必要な処置が取られる(ステップSP57、SP58)。
この場合、たとえばNIDS(ネットワークベース侵入検知システム(Network Intrusion Detection System))において、アクセスが禁止されるデータ列が転送されたかを識別することができる。
なお、上述の説明においては、この検索対象のデータパターン列のビット幅は、各サーチサイクル毎に変更可能であるとしている。しかしながら、このサーチデータDINAは、ビット幅が固定された一定ビット幅のデータであっても良い。この場合のビット幅は、適用される用途に応じて適宜に定められればよい。また、図82に示す制御回路600の構成としては、図88に示す動作フローチャートを実現するように、ステートマシーンまたはシーケンスコントローラまたはハードウェアで構成されればよい。
以上のように、この発明の実施の形態9に従えば、演算子セブアレイブロックにサーチデータの各ビットを分散して配置し、同一のサーチ対象データについてのサーチ結果を共通のグローバル読出データ線に結合し、このグローバルデータ線上の電位に従って与えられたサーチデータとサーチ対象データのパターンの一致/不一致を判定している。これにより、高速で、サーチ動作を行なうことができる。
[実施の形態10]
図89は、この発明の実施の形態10に従う半導体信号処理装置の全体の構成を概略的に示す図である。この図89に示す半導体信号処理装置の構成は、以下の点で図4に示す実施の形態1に従う半導体信号処理装置とその構成が異なる。すなわち、メインアンプ回路24とデータパス28との間に配置される組合せ論理回路26の組合せ論理機能は利用されない。単にそのバッファ(BFF)が利用されるだけであり、図89においては、この組合せ論理回路(26)は示していない。この図89に示す半導体信号処理装置の他の構成は、図4に示す半導体信号処理装置の構成と同じであり、対応する部分には同一参照符号を付して、その詳細説明は、省略する。
ユニット演算子セルUOEの構成としては、図1から3に示すユニット演算子セルの構成が用いられる。従って、ここでは、ユニット演算子セルUOEの構成については示さないが、ユニット演算子セルUOEは、2個のPャネルSOIトランジスタPQ1およびPQ2と、2個のNチャネルSOIトランジスタNQ1およびNQ2を含み、それらのボディ領域が記憶ノードとして利用される。
制御回路30が、コマンドCMDおよびアドレスADDに従って、指定された演算および演算子セルサブアレイに対して所定の制御動作を実行する。このアドレスADDは、演算子セルサブアレイブロックを指定するブロックアドレスおよびユニット演算子セルを指定する行アドレスADを含む。
図90は、この発明の実施の形態10に従う半導体信号処理装置の演算子セルサブアレイブロックの構成を概略的に示す図である。図90においては、ユニット演算子セル行<i>に属するユニット演算子セルUOEI0およびUOEI1、ユニット演算子セル行<j>に属するユニット演算子セルUOEJ0およびUOEJ1、ならびにユニット演算子セル行<k>に属するユニット演算子セルUOEK0およびUOEK1に関連する部分の構成を代表的に示す。
図90において、ユニット演算子セルUOEI0およびUOEI1に対しては、読出ワード線RWLAi、読出ワード線RWLBiおよび書込ワード線WWLiが配設され、ユニット演算子セルUOEJ0およびUOEJ1に対しては、読出ワード線RWLAj、読出ワード線RWLBjおよび書込ワード線WWLjが設けられる。ユニット演算子セルUOEK0およびUOEK1に対しては、読出ワード線RWLAk、読出ワード線RWLBkおよび書込ワード線WWLkが設けられる。
ユニット演算子セルUOEI0、UOEJ0およびUOEK0すなわちユニット演算子セル列<0>に対し、ビット線RBLA0およびRBLB0とグローバル書込データ線WGLA0およびWGLB0が設けられる。このグローバル書込データ線WGLA0およびWGLB0は、ユニット演算子セルUOEI0、UOEJ0およびUOEK0の各々の書込ポートWPRTAおよびWPRTBにそれぞれ結合される。このユニット演算子セルUOEI0、UOEJ0およびUOEK0の各々の読出ポートRPRTAおよびRPRTBは、ビット線RBLA0およびRBLB0にそれぞれ結合される。
ダミーセルDMC0およびDMC1が、それぞれユニット演算子セル列に対応して配置される。これらのダミーセルDMC0およびDMC1の構成は、図6に示す実施の形態1の構成と同じであり、対応する部分には、同一参照符号を付してその詳細は省略する。
これらのダミーセルDMC0およびDMC1に対して基準電圧を伝達するために、スイッチDMSW1が、設けられる。スイッチDMSW1は、演算ノードに応じて基準電圧源VREF1からの基準電圧VREF1(電源と供給電圧とを同一参照符号で示す)と、基準電圧源VREF2からの基準電圧VREF2の一方を、ダミーセルDMC0およびDMC1に供給する。
基準電圧源VREF1は、ユニット演算子セルUOEI0に含まれるSOIトランジスタNQ1およびNQ2が高しきい値電圧および低しきい値電圧時にそれぞれ供給する電流量の間の電流を供給する。基準電圧VREF1は、たとえば電源電圧VCCの1/2未満に設定される。基準電圧VREF2は、ユニット演算子セルの直列トランジスタNQ1およびNQ2の一方が、高しきい値電圧時にビット線に供給される電流よりも大きな電流を供給し、かつこれらの直列トランジスタNQ1およびNQ2がともに低しきい値電圧時にビット線に供給する電流よりも小さな電流を供給する電圧レベルに設定される。
読出ポート選択回路36は、ユニット演算子セル行に対応して設けられる複数のスイッチ回路PRSWCを含む。例えば、ビット線RBLA0およびRBLB0に対し、スイッチ回路PRSWC0が設けられる。スイッチ回路PRSWC0は、スイッチPRSWAおよびPRSWBを含む。スイッチPRSWAは、ポート選択信号PRMXに従って、ビット線RBLA0およびRBLB0の一方を、センスビット線RBL0に接続する。ダミーセルが接続する補のビット線ZRBL0は、センスアンプSA0に結合される。
また、スイッチPRSWBは、ポート選択信号PRMXに従って、選択的にビット線RBLB0と共通ソース線SLCとを接続する。これにより、後に説明するように、ユニット演算子セルUOEにおけるSOIトランジスタNQ1の記憶データ、SOIトランジスタNQ2の記憶データならびにSOIトランジスタNQ1およびNQ2の記憶データ同士の論理演算結果を選択的に読み出すことが可能となる。
ユニット演算子セルUOEI1、UOEJ1およびUOEK1すなわちユニット演算子セル列<1>に対しても、ダミーセルDMC1およびスイッチ回路PRSWC1が設けられ、同様の接続制御が行われる。
なお、ポート選択信号PRMXは多ビット信号であり、ビット線対ごとに、その接続を設定することができる。
センスアンプ帯38の構成は、図6に示す実施の形態1の場合と同じであり、対応する部分には、同一参照符号を付して、その詳細説明は省略する。
行ドライブ回路XDRは、1または複数行のユニット演算子セル行を並行して選択状態に駆動する。また、行ドライブ回路XDRは、並行して選択される1または複数行のユニット演算子セル行に対応する複数のダミーセルDMCを並行して選択状態に駆動する。選択された1または複数のダミーセルDMCは、ダミーセル選択信号DCLAおよびDCLBのいずれが選択されるかに従って2種類の参照電流のいずれかを、対応の補のビット線ZRBLに供給する。したがって、メモリセルアレイMLAにおいて、1または複数のエントリに対応する複数のユニット演算子セルUOEの記憶データの並列読出が行なわれ、また並列書込が実行される。
図91は、ユニット演算子セルにおける2つのNチャネルSOIトランジスタが選択された場合のセンスアンプに対するトランジスタの接続態様を概略的に示す図である。この図91に示すセンスアンプSAに対するユニット演算子セルの接続態様は、図10に示すセンスアンプSAに対するSOIトランジスタNQ1、NQ2、DTB0およびDTB1の接続態様と同じである。基準電圧VREFとして、基準電圧VREF1が、スイッチ回路DMSW1により選択される。ポート選択回路36においてスイッチ回路PRSWC(PRSWC0、PRSWC1)は、Bポートビット線RBLBとセンスビット線RBLとを結合する。他の構成は、図10に示す構成と同じであり、対応する部分には同一参照符号を付してその詳細説明は省略する。
データ読出時の動作波形は、図11に示す動作波形と同じであり、SOIトランジスタNQ1およびNQ2の状態に応じて、ビット線RBLおよびZRBLを流れる電流量が異なり、センスアンプSAの出力信号が異なる。この動作は、図11に示す実施の形態1の場合と同じである。なお、以下の説明においても、SOIトランジスタNQ1およびNQ2が、しきい値電圧の高い状態をデータ“0”を記憶する状態に対応付け、しきい値電圧の低い状態をデータ“1”を記憶する状態に対応付ける。
図92は、図91に示すユニット演算子セルおよびダミーセルの接続態様における記憶データとセンスアンプの出力信号の論理値との関係を一覧にして示す図である。図92に示すように、SOIトランジスタNQ1およびNQ2の記憶データの組合せとして、4つの状態が存在する。状態S(0,0)は、SOIトランジスタNQ1およびNQ2の記憶データが、ともにデータ”0”である。状態S(1,0)は、SOIトランジスタNQ1およびNQ2の記憶データが、それぞれデータ”1”およびデータ”0”である。状態S(0,1)は、SOIトランジスタNQ1およびNQ2の記憶データが、それぞれデータ”0”およびデータ”1”である。状態S(1,1)は、SOIトランジスタNQ1およびNQ2の記憶データが、ともにデータ”1”である。
図93は、データ読出時におけるビット線RBLおよびZRBLを流れる電流に応じた読出電位の関係を示す図である。図93において、縦軸にビット線RBLおよびZRBLの電位を示し、横軸に時間を示す。
スイッチ回路DMSWは、基準電圧VREF1を選択する。この基準電圧VREF1は、ソース線SLに供給される電圧(電源電圧VCCレベル)とビット線プリチャージ電圧VPCとの間の電圧レベルを有する。
ソース線SL上の電圧はたとえば電源電圧VCCレベルであり、ダミーセルDMCに供給される基準電圧VREF1よりも高い電圧レベルである。
SOIトランジスタNQ1およびNQ2の少なくともいずれか一方がデータ“0”を格納している場合(状態S(1,0)、状態S(0,1)および状態S(0,0))、少なくとも1つのSOIトランジスタのしきい値電圧が高いため、ダミーセルDMCを通して流れる電流量よりも、ユニット演算子セルを介して流れる電流量は少ない。
一方、SOIトランジスタNQ1およびNQ2がデータ“1”を格納している場合(状態S(1,1))、両方のSOIトランジスタNQ1およびNQ2のしきい値電圧が低いため、ダミーセルDMCを通して流れる電流量よりも、ユニット演算子セルを介してビット線に供給される電流量は多い。
この状態で、センスアンプ活性化信号/SOPおよびSONを論理ローレベル(Lレベル)および論理ハイレベル(Hレベル)に設定し、センスアンプSAを活性化する。ビット線RBLおよびZRBLに読出されたデータ(電位または電流量)が、センスアンプSAにより差動増幅される。
この後、図90に示す読出ゲートCSGを読出ゲート選択信号CSLにより選択して、対応のメインアンプMAにセンスアンプSAの出力信号を伝達する。
従って、図92に示すように、実施の形態1と同様、状態S(1,1)すなわちSOIトランジスタNQ1およびNQ2がともにデータ“1”を格納しているときのみ、ユニット演算子セルUOEは、センスアンプの出力信号SOUTは、“1”となる。一方、状態S(1,0)、S(0,1)およびS(0,0)すなわちSOIトランジスタNQ1およびNQ2の少なくとも1つがデータ“1”を格納している場合には、センスアンプSAの出力信号SOUTは、“0”となる。したがって、このセンスアンプSAの出力信号SOUTは、SOIトランジスタNQ1およびNQ2の記憶データのAND演算結果を表わしている。また、センスアンプSAの出力信号SOUTを反転させれば、ユニット演算子セルの2つの記憶データのNAND演算結果が得られる。
図94は、センスアンプに対するSOIトランジスタの別の接続態様を概略的に示す図である。図94において、ソース線SLとビット線RBLとの間に、SOIトランジスタNQ1が1つ接続される。一方、ダミーセルDMCにおいても、ダミーセル選択信号DCLAが活性化されて、基準電圧源VREFと補のビット線ZRBLとの間に、ダミートランジスタDTAが接続される。
この場合、図90において、スイッチ回路PRSWC0は、ビット線RBLA0とビット線RBL0とを結合する。また、行ドライブ回路XDRは、読出ワード線RWLAおよびダミートランジスタ選択線DCLAを選択状態へ駆動する。
図95、図94に示すユニット演算子セルおよびダミーセルの接続態様における記憶データとセンスアンプの出力信号の論理値との関係を一覧にして示す図である。基準電圧として、基準電圧VREF1が選択される。
図95において、SOIトランジスタNQ1がデータ“0”を記憶している場合には(状態S(0))、ダミートランジスタDTAから補のビット線ZRBLへ流れる電流量が、SOIトランジスタNQ1を介してソース線SLから読出ポートRPRTAを介してビット線RBLへ流れる電流量よりも大きくなる。したがって、この場合、センスアンプSAの出力信号SOUTは、論理ローレベル(“0”)である。一方、SOIトランジスタNQ1がデータ“1”を格納している場合には(状態S(1))、ダミートランジスタDTAを介して流れる電流量よりも、SOIトランジスタNQ1から読出ポートRPRTAを介してビット線RBLへ流れる電流量が大きくなる。したがって、この場合、センスアンプSAの出力信号SOUTは論理ハイレベル(“1”)となる。
したがって、センスアンプSAの出力信号は、SOIトランジスタNQ1の記憶データと同じ論理値のデータとなる。センスアンプSAの出力信号を反転させるまたはSOIトランジスタNQ1に書込データの反転値を記憶させて読出すと、書込データのNOT演算結果を、センスアンプSAの出力として得ることができる。
図96は、ユニット演算子セルにおける1つのSOIトランジスタが選択された場合のセンスアンプに対するトランジスタの接続態様を概略的に示す図である。図96において、SOIトランジスタNQ2の選択時には、ソース線SLEXとビット線RBLとの間に、SOIトランジスタNQ2が1つ接続される。一方、ダミーセルDMCにおいても、ダミーセル選択信号DCLAがが活性化されて、基準電圧源VREFと補のビット線ZRBLとの間に、ダミートランジスタDTAが接続される。図90に示すスイッチ回路PRSWC(たとえばPRSWC0)は、ビット線RBLA(たとえばビット線RBLA0)とセンスビット線RBL(例えばRBL0)とを結合し、かつビット線RBLB0と共通ソース線SLCとを結合する。また、行ドライブ回路XDRは、読出ワード線RWLAおよびダミートランジスタ選択線DCLAを選択状態へ駆動する。
図97は、図96に示すユニット演算子セルおよびダミーセルの接続態様における記憶データとセンスアンプの出力信号の論理値との関係を一覧にして示す図である。スイッチ回路DMSWにより、基準電圧VREFとして基準電圧VREF1が選択される。共通ソース線SLCの電圧は、電源電電圧VCCレベルである。
従って、図94に示すSOIトランジスタNQ1の選択時と同様の態様で、センスアンプSAに電流が供給されるため、SOIトランジスタNQ2がデータ“0”を記憶している状態S(0)のときには、センスアンプSAの出力信号は、論理ローレベル(“0”)である。一方、SOIトランジスタNQ2がデータ“1”を格納している状態S(1)のときには、センスアンプSAの出力信号は論理ハイレベル(“1”)となる。
したがって、この接続態様においても、センスアンプSAの出力信号は、SOIトランジスタNQ2の記憶データと同じ論理値のデータとなる。センスアンプSAの出力信号を反転させるまたはSOIトランジスタNQ2に書込データの反転値を記憶させて読出すと、書込データのNOT演算結果を、センスアンプSAの出力に得ることができる。従って、この図94および図96に示すSOIトランジスタ選択態様においては、ユニット演算子セルのSOIトランジスタNQ1およびNQ2の記憶データを読出すことができ、ユニット演算子セルを記憶素子として利用することができる。
次に、半導体信号処理装置101において、2つのユニット演算子セル行<i>および<j>を選択した場合における読み出し動作について説明する。
図98は、ユニット演算子セル行<i>および<j>のユニット演算子セルUOEiおよびUOEj選択時のSOIトランジスタとセンスアンプとの接続態様を概略的に示す図である。これらのユニット演算子セルUOEIおよびUOEJは、同一列のセルでありビット線RBLを介してセンスアンプSAに結合される。
ユニット演算子セルUOEIにおいては、読出ワード線RWLiによりSOIトランジスタNQ1が選択されポートRPRTAを介してセンスビット線RBLに結合される。ユニット演算子セルUOEJにおいては、読出ワード線RWLBjによりSOIトランジスタNQ2が選択される。対応のスイッチ回路PRSWCのスイッチPRSWBにより共通ソース線SLCがビット線RBLBに結合される。このSOIトランジスタNQ2は、ポートRPRTAを介してセンスアンプSAに結合される。すなわち、センスビット線RBLに、並列にSOIトランジスタNQ1およびNQ2が結合される。
ダミーセルDMCについては、ダミートランジスタDTAが選択されるかまたは直列ダミートランジスタDTB0およびDTB1が、演算モードに応じて選択される。図98においては、ダミーセルDMCにおいてダミートランジスタDTAが選択された状態を一例として示す。
図99は、図98に示すSOIトランジスタ選択態様における記憶データとセンスアンプの出力信号の論理値との関係を一覧にして示す図である。ユニット演算子セル行<i>および<j>上の同一ユニット演算子セル列に配置される2つのユニット演算子セルUOEIおよびUOEJにおいて1つのSOIトランジスタが選択される。すなわち、図98に一例として示すように、ユニット演算子セル行<i>上のユニット演算子セルUOEIのNチャネルSOIトランジスタNQ1(以下、NチャネルSOIトランジスタNQ1(UOEI)とも称する。)とユニット演算子セル行<j>上のユニット演算子セルUOEJのNチャネルSOIトランジスタNQ2(以下、NチャネルSOIトランジスタNQ2(UOEJ)とも称する。)とが、選択される。これらの選択されたSOIトランジスタNQ1およびNQ2は、同一ユニット演算子セル列に属しており、センスビット線RBLを介してセンスアンプSAに結合される。
図99に示すように、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の記憶データの組合せとしては、4つの状態が存在する。状態S(0,0)は、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の記憶データが、ともにデータ”0”である。状態S(1,0)は、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の記憶データが、それぞれデータ”1”およびデータ”0”である。状態S(0,1)は、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の記憶データが、それぞれデータ”0”およびデータ”1”である。状態S(1,1)は、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の記憶データが、ともにデータ”1”である。
なお、データ書込時においては、ユニット演算子セル行<i>に対応する複数のユニット演算子セルUOEIとユニット演算子セル行<j>に対応する複数のユニット演算子セルUOEJとを個々に選択し、選択された複数のユニット演算子セルUOEにおけるSOIトランジスタNQ1およびNQ2のしきい値電圧を設定する。すなわち、書込時には、書込ワード線WWL<i>およびWWL<j>を順次選択し、図示しない書込ドライバを用いて、各グローバル書込データ線対WGLPへ書込データに応じた電圧を印加する。
データ読出時において、ユニット演算子セル行<i>に対応する複数のユニット演算子セルUOEIおよびユニット演算子セル行<j>に対応する複数のユニット演算子セルUOEJを並行して選択し、選択された複数のユニット演算子セルUOEにおけるSOIトランジスタNQを並行して各ビット線RBLに結合する。したがって、読出時においては、同一ビット線RBLに結合された各SOIトランジスタNQを通して流れる電流の合成電流が各ビット線RBLを通して流れる。
例えば、奇数行の読出ワード線についてはAポート読出ワード線RWLAを選択し、偶数行についてはBポート読出ワード線RWLBを選択状態に駆動する。
また、これに代えて、ユニット演算子セルUOEIおよびUOEJにおいてSOIトランジスタNQ1が、選択されても良い。2つのユニット演算子セルにおいて1つのSOIトランジスタを選択して並列にセンスアンプに結合されれば良い。
また、各ユニット演算子セル列のダミーセルDMCにおいて、ダミートランジスタDTAと直列ダミートランジスタDTB0およびDTB1とは、データ読出時、いずれか一方が選択される。すなわち、ダミーセル選択信号DCLAおよびDCLBのいずれかが選択状態へ駆動される。また、基準電圧VREF1およびVREF2のいずれかを選択することにより、ダミーセルDMCを流れる電流量を調整する。ここでは、まず、図98に示すように、ダミーセル選択信号DCLAが選択状態へ駆動されてダミートランジスタDTAが選択され、また、基準電圧源VREF1にダミートランジスタDTAが結合される場合について説明する。
図100は、図98に示す接続配置におけるデータ読出時においてビット線RBLおよびZRBLを流れる電流に応じた読出電位の関係を示す図である。図100において、縦軸にビット線RBLおよびZRBLの電位を示し、横軸に時間を示す。
図100において、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)が状態S(0,0)のときには、SOIトランジスタNQ1およびNQ2のしきい値電圧がともに高いため、読出ビット線RBLを介して流れる電流量は最も少ない。
一方、状態S(1,1)においては、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の両方のしきい値電圧が低いため、センスビット線RBLを介してユニット演算子セルUOEIおよびUOEJからセンスアンプSAに供給される電流量は最も多い。
状態S(1,0)およびS(0,1)は、低しきい値電圧と高しきい値電圧との組合せであり、状態S(0,0)およびS(1,1)のビット線電流の中間の電流が流れる。したがって、状態S(1,0)およびS(0,1)の場合、ビット線の読出電位は、状態S(0,0)およびS(1,1)のビット線読出電位の間となる。
基準電圧VREFとして基準電圧VREF1を選択し、この基準電圧VREF1を電源電圧VCCの1/2未満の電圧レベルに設定する。この状態においては、ダミートランジスタDTAを通して流れる電流を、状態S(0,0)のときにビット線RBLを流れる電流よりも大きくかつ状態S(0,1)およびS(1,0)のときにビット線RBLを流れる電流よりも小さくすることができる。従って、ダミートランジスタDTA選択時の補のビット線ZRBLの電位を、状態S(0,0)と状態S(1,0)およびS(0,1)との間に設定することができる。この場合のダミートランジスタDTAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
2×Ih<Id1<Ih+Il.
ただし、IhおよびIlは、それぞれ、高しきい値状態および低しきい値状態のSOIトランジスタNQを流れる電流を示す。
次に、図98に示す接続配置において、基準電圧VREFとして基準電圧VREF2が選択された場合の動作について説明する。
基準電圧VREF2は、基準電圧VREF1よりも所定値だけ高い電圧レベルである。この状態においては、2つのSOIトランジスタNQ1およびNQ2のしきい値電圧が低いときの読出ビット線RBLを流れる電流よりも小さく、かつ1つのSOIトランジスタNQのしきい値電圧が低いユニット演算子セルUOEを通して流れる電流よりも大きな電流を、補のビット線ZRBLに流すことができる。従って、ダミートランジスタDTA選択時の補のビット線ZRBLの電位を、状態S(1,0)およびS(0,1)と状態S(1,1)との間に設定することができる。この場合のダミートランジスタDTAを介して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
2×Il>Id2>Ih+Il.
センスアンプSAによりビット線RBLおよびZRBLの電位または電流を差動増幅して、ユニット演算子セルUOEIおよびUOEJの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCの電位またはダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電位またはビット線電流の2値判断を行なう。従って、センスアンプSAの出力は、ユニット演算子セルUOEIおよびUOEJの各々の1ビットの記憶データの組合せを、基準電あるVREFの電圧レベルに応じて2分類したうちのいずれか一方を示している。従って、センスアンプSAにより、ユニット演算子セルUOEIおよびUOEJの記憶データに対する論理演算を行なうことができる。
図99に示すように、状態S(0,0)においては、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)がともに高しきい値状態であり、データ“0”を記憶している。この状態においては、基準電圧VREF1およびVREF2のいずれを選択しても、図100に示すように、ビット線RBLの電流は補のビット線ZRBLの電流よりも小さく、ビット線RBLの電位は補のビット線ZRBLよりも低いため、センスアンプの出力信号は“0”となる。
状態S(1,0)および状態S(0,1)の場合、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)の一方が高しきい値状態であり、他方が低しきい値状態である。したがって、基準電圧VREF1を選択した場合には、ビット線RBLの電流は補のビット線ZRBLの電流よりも大きく、ビット線RBLの電位が補のビット線ZRBLよりも高くなるため、センスアンプの出力信号は“1”となる。基準電圧VREF2を選択した場合には、ビット線RBLの電流は補のビット線ZRBLの電流よりも小さく、ビット線RBLの電位が補のビット線ZRBLよりも低くなるため、センスアンプの出力信号は“0”となる。
状態S(1,1)の場合、SOIトランジスタNQ1(UOEI)およびNQ2(UOEJ)はともに低しきい値電圧状態であり、データ“1”を記憶している。この場合、基準電圧VREF1およびVREF2のいずれを選択しても、図100に示すように、ビット線RBLの電流は補のビット線ZRBLの電流よりも大きく、ビット線RBLの電位は、補のビット線ZRBLよりも高くなるため、センスアンプの出力信号は“1”となる。
したがって、図99に示すように、基準電圧VREF1を選択した場合、センスアンプからは、ユニット演算子セルUOEIおよびUOEJの記憶データのOR演算結果が出力される。一方、基準電圧VREF2を選択した場合、センスアンプからは、ユニット演算子セルUOEIおよびUOEJの記憶データのAND演算結果が出力される。
なお、センスアンプとしては、電圧検出型センスアンプと比べてセンス動作が高速な電流検出型センスアンプを利用することが好ましい。このセンスアンプSAとしては、後に説明するように、図90に示す交差結合型ラッチセンスアンプに代えて、カレントミラー型センスアンプが利用され、ビット線電流により高速でセンス動作を実行する。
[変更例1]
図101は、この発明の実施の形態10の変更例のユニット演算子セルの選択態様とセンスアンプの出力との対応を示す図である。この図101においては、3つのユニット演算子セル行<i>、<j>および<k>が並行して選択される。
ユニット演算子セル行<i>、<j>および<k>かつ同一ユニット演算子セル列に属する3つのユニット演算子セルにおいて1つのSOIトランジスタがそれぞれ選択される。
図101においては、NチャネルSOIトランジスタNQ1(UOEI)と、NチャネルSOIトランジスタNQ1(UOEJ)と、NチャネルSOIトランジスタNQ1(UOEK)とが選択する場合を示す。これらのSOIトランジスタは、同一ユニット演算子セル列に属している。従って、センスビット線RBLに対して並列にこれらの4つのSOIトランジスタNQ1が接続される。
図101に示すように、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)の記憶データの組合せとして、8つの状態が存在する。上述した説明と同様に、状態S(A,B,C)の表記において、AはSOIトランジスタNQ1(UOEI)のしきい値電圧状態を表し、BはSOIトランジスタNQ1(UOEJ)のしきい値電圧状態を表し、CはSOIトランジスタNQ1(UOEK)のしきい値電圧状態を表す。たとえば、状態S(0,0,0)においては、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)の記憶データが、ともにデータ”0”である。状態S(1,1,1)においては、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)が、ともにデータ”1”である。
なお、データ書込時においては、ユニット演算子セル行<i>に対応する複数のユニット演算子セルUOEIとユニット演算子セル行<j>に対応する複数のユニット演算子セルUOEJとユニット演算子セル行<k>に対応する複数のユニット演算子セルUOEKとを個々に選択し、選択された複数のユニット演算子セルUOEにおけるSOIトランジスタNQ1(およびNQ2)のしきい値電圧を設定する。すなわち、書込時には、書込ワード線WWL<i>、WWL<j>およびWWL<k>を順次選択し、図示しない書込ドライバを用いて、各グローバル書込データ線対WGLPへ書込データに応じた電圧を印加する。
データ読出時において、ユニット演算子セル行<i>に対応する複数のユニット演算子セルUOEI、ユニット演算子セル行<j>に対応する複数のユニット演算子セルUOEJおよびユニット演算子セル行<k>に対応する複数のユニット演算子セルUOEKを並行して選択し、選択された複数のユニット演算子セルUOEにおけるSOIトランジスタNQ1を並行して対応のセンスビット線RBLに結合する。したがって、読出時においては、同一ビット線RBLに結合された各SOIトランジスタNQ1を通して流れる電流の合成電流が各ビット線RBLを通して流れる。
読出ワード線RWLi、RWLjおよびRWLkを並行して選択状態に駆動する構成としては、一例として、以下の構成を利用することができる。すなわち、読出ワード線ドライバの出力部にラッチ回路を設ける。読出ワード線アドレスを例えばカウンタを利用して生成し、読出ワード線活性化信号RWLENの活性化期間中に、3本の読出ワード線を順次指定する。読出ワード線活性化信号RWLENが非活性化されると、読出ワード線ドライバの出力部のラッチ回路をリセットして、選択状態の読出ワード線を非選択状態に駆動する。これにより、複雑な回路構成を利用することなく、任意のアドレスから出発して3本の読出ワード線を並行して選択状態に設定することができる。
また、各ユニット演算子セル列のダミーセルDMCにおいて、ダミートランジスタDTAとダミートランジスタDTB0およびDTB1とは、データ読出時、いずれか一方が選択される。すなわち、ダミーセル選択信号DCLAおよびDCLBのいずれかが選択される。また、基準電圧VREF1およびVREF2のいずれかを選択することにより、ダミーセルDMCを流れる電流量を調整する。ここでは、まず、ダミートランジスタ選択線DCLAが選択状態へ駆動されてダミートランジスタDTAが選択され、また、基準電圧VREFとして基準電圧VREF1が選択される場合について説明する。
図102は、データ読出時におけるビット線RBLおよびZRBLを流れる電流に応じた読出電位の関係を示す図である。図102において、縦軸にビット線RBLおよびZRBLの電位を示し、横軸に時間を示す。
図102に示すように、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)が状態S(0,0,0)のときには、各SOIトランジスタのしきい値電圧が高いため、センスビット線RBLを介して流れる電流量は最も少ない。
一方、状態S(1,1,1)においては、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)のしきい値電圧がいずれも低いため、センスビット線RBLを介して流れる電流量は最も多い。
状態S(1,0,0)、S(0,1,0)およびS(0,0,1)は、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)のうちの2つのしきい値電圧が高く、他の1つのしきい値電圧が低い。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れる。したがって、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)では、ビット線の読出電位は、状態S(0,0,0)およびS(1,1,1)の間となる。
また、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)は、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)のうちの2つのしきい値が低く、他の1つのしきい値が高い。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れ、かつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と比べてビット線電流が大きくなる。したがって、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)では、ビット線の読出電位は、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と状態S(1,1,1)の間となる。
基準電圧VREFとして基準電圧VREF1を選択し、この基準電圧VREF1を電源電圧VCCの1/2未満の電圧レベルに設定する。この状態においては、ダミートランジスタDTAを介して流れる電流を、状態S(0,0,0)のときにビット線RBLを流れる電流よりも大きくかつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)のときにビット線RBLを流れる電流よりも小さくすることができる。従って、ダミートランジスタDTA選択時の補のビット線ZRBLの電位を、状態S(0,0,0)と状態S(1,0,0)、S(0,1,0)およびS(0,0,1)との間に設定することができる。この場合のダミートランジスタDTAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
3×Ih<Id1<2×Ih+Il
ただし、IhおよびIlは、それぞれ、高しきい値状態および低しきい値状態のSOIトランジスタNQを流れる電流を示す。
ダミーセル選択信号DCLAが選択状態へ駆動されてダミートランジスタDTAが選択された状態で、基準電圧VREFとして基準電圧源VREF2を選択した場合、図101のセンスアンプの出力信号は、VREF2の欄に示される状態となる。
基準電圧VREF2は、基準電圧VREF1より所定値だけ高い。この基準電圧VREF2により、ユニット演算子セルUOEにおいて1つのSOIトランジスタNQが選択されかつそのしきい値電圧が低い場合にこのユニット演算子セルUOEを介して流れる電流よりも大きな電流を、補のビット線ZRBLに流すことができる。従って、ダミートランジスタDTA選択時の補のビット線ZRBLの電位を、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)と状態S(1,1,1)との間のレベルに設定することができる。この場合のダミートランジスタDTAを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
3×Il>Id2>Ih+2×Il.
センスアンプSAによりビット線RBLおよびZRBLの電位または電流を差動増幅してユニット演算子セルUOEI、UOEJおよびUOEKの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCの電位またはダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電位またはビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、ユニット演算子セルUOEI、UOEJおよびUOEKの各々の1ビットの記憶データの組合せを、基準電圧VREFのレベルに従って2分類したうちのいずれか一方を示している。これにより、センスアンプSAにより、3つのユニット演算子セルUOEI、UOEJおよびUOEKの記憶データに対する論理演算を行なうことができる。
図101に示すように、状態S(0,0,0)においては、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)がともに高しきい値状態であり、データ“0”を記憶している。この状態においては、基準電圧VREF1およびVREF2のいずれを選択しても、図102に示すように、ビット線RBLの電流は補のビット線ZRBLの電流よりも小さく、ビット線RBLの電位は補のビット線ZRBLよりも低いため、センスアンプの出力信号は“0”となる。
状態S(1,0,0)、S(0,1,0)、S(0,0,1)、S(1,1,0)、S(1,0,1)およびS(0,1,1)では、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)のうちの少なくともいずれか1つが低しきい値状態である。したがって、基準電圧VREF1を選択した場合には、ビット線RBLの電流は補のビット線ZRBLの電流よりも大きく、ビット線RBLの電位が補のビット線ZRBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。また、基準電圧VREF2を選択した場合には、ビット線RBLの電流は補のビット線ZRBLの電流よりも小さく、ビット線RBLの電位が補のビット線ZRBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。
状態S(1,1,1)の場合、SOIトランジスタNQ1(UOEI)、NQ1(UOEJ)およびNQ1(UOEK)はともに低しきい値電圧状態であり、データ“1”を記憶している。この場合、基準電圧VREF1およびVREF2のいずれを選択しても、図19に示すように、ビット線RBLの電流は補のビット線ZRBLの電流よりも大きく、ビット線RBLの電位は、補のビット線ZRBLよりも高くなるため、センスアンプの出力信号は“1”となる。
したがって、図101に示すように、基準電圧VREF1を選択した場合、センスアンプからは、ユニット演算子セルUOEI、UOEJおよびUOEKの記憶データのOR演算結果が出力され、また、基準電圧VREF2を選択した場合、センスアンプからは、ユニット演算子セルUOEI、UOEJおよびUOEKの記憶データのAND演算結果が出力される。
[センスアンプの変更例]
図103は、この発明の実施の形態10に係るセンスアンプSAの変更例の電流検出型センスアンプの構成の一例を示す図である。図103において、センスアンプSAは、カレントミラー段を構成するPチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)PP1−PP3と、別のカレントミラー段を構成するPチャネルMOSトランジスタPP4−PP6と、読出ビット線RBLから供給されるセル電流Icellのミラー電流を生成するNチャネルMOSトランジスタNN1およびNN8と、補の読出ビット線ZRBLに供給されるダミーセル電流Idummyのミラー電流を生成するNチャネルMOSトランジスタNN6およびNN9とを含む。
これらのMOSトランジスタPP1−PP6およびNチャネルMOSトランジスタNN1−NN9は、SOIトランジスタで構成される。しかしながら演算子セルアレイ周辺部において、バルクトランジスタで構成されても良い。
MOSトランジスタNN8は、ゲートおよびドレインが相互接続され、読出ビット線RBLを介して供給されるセル電流Icellを電圧に変換する。MOSトランジスタNN1は、ソースが接地ノードに接続され、ゲートがMOSトランジスタン8のゲートおよびドレインに接続され、MOSトランジスタNN8とカレントミラー段を構成し、センスアンプ動作時、セル電流Icellのミラー電流をMOSトランジスタPP1から引き抜く。MOSトランジスタPP1は、ノードND1とMOSトランジスタNN1との間に接続される。
MOSトランジスタPP1は、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作し、センス動作時、セル電流Icellのミラー電流を流す。
MOSトランジスタNN9は、ゲートおよびドレインが相互接続され、補の読出ビット線ZRBLを介して供給されるダミーセル電流Idummyを電圧に変換する。MOSトランジスタNN6は、ゲートがMOSトランジスタNN9のゲートおよびドレインに接続され、MOSトランジスタNN9とカレントミラー段を構成し、センス動作時、ダミーセル電流Idummyのミラー電流を流す。
MOSトランジスタPP6およびNN6は、ノードND1と接地ノードの間に直列に接続される。MOSトランジスタPP6は、ゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作し、センス動作時、ダミーセル電流Idummyのミラー電流を流す。MOSトランジスタPP2−PP5は、それぞれのソースノードが電源ノードに結合される。
センスアンプSAは、さらに、カレントミラー段を構成するNチャネルMOSトランジスタNN2およびNN3と、別のカレントミラー段を構成するNチャネルMOSトランジスタNN4およびNN5を含む。
MOSトランジスタNN2は、MOSトランジスタPP2とノードNDとの間に接続され、そのゲートおよびドレインが相互接続される。MOSトランジスタNN3は、MOSトランジスタPP4とノードND2との間に接続され、そのゲートがMOSトランジスタNN2のゲートに接続される。MOSトランジスタNN4は、MOSトランジスタPP3とノードND2との間に接続され、そのゲートがMOSトランジスタNN5のゲートに接続される。MOSトランジスタNN5は、MOSトランジスタPP5とノードND2との間に接続され、かつそのゲートおよびドレインが相互接続される。
MOSトランジスタNN2およびNN5により電流/電圧変換された信号が中間センス信号SOTおよび/SOTとして生成される。
センスアンプSAは、さらに、センスアンプ活性化信号/SEの活性化時導通し、ノードND1を電源ノードに接続するPチャネルMOSトランジスタPP7と、センスアンプ活性化信号SEの活性化時導通し、ノードND2を接地ノードGNDに結合するNチャネルMOSトランジスタNN7を含む。センスアンプ活性化信号/SEおよびSEは、それぞれ、活性化時、LレベルおよびHレベルに設定される。
センスアンプSAは、さらに、MOSトランジスタNN2およびNN5により電流/電圧変換された中間センス出力信号SOTおよび/SOTを増幅して最終センス出力信号SOUTおよび/SOUTを生成する最終増幅回路SMPを含む。この最終増幅回路SMPは、センスアンプ活性化信号/SEの非活性化時、出力ハイインピーダンス状態である。次に。この図103に示すセンスアンプSAの動作について説明する。
センスアンプ活性化信号/SEおよびSEの非活性化時、MOSトランジスタPP7およびNN7は、オフ状態である。この状態においては、MOSトランジスタPP2およびPP5により、中間センス出力信号SOTおよび/SOTは、電源電圧VCCレベルに維持される。ノードND1は、MOSトランジスタPP1、NN1、PP6およびNN1により、接地電圧レベルに維持される。また、最終センス出力信号SOUTおよび/SOUTも出力ハイインピーダンス状態のプリチャージレベル(例えばHレベル)に維持される。
センス動作時には、先ず、読出ワード線選択前に、センスアンプ活性化信号/SEを活性化し、MOSトランジスタPP7およびNN7をオン状態とする。応じて、ノードND1が電源ノードに結合され、MOSトランジスタPP1およびPP6が動作し、ビット線RBLおよびZRBLの電流検出可能状態に設定される。この場合、センスアンプ活性化信号SEは、並行して活性化されてもよい。また、センス動作開始時までセンスアンプ活性化信号SEの活性化が遅延されても良い。読出ワード線RWLは、まだ、非選択状態であり、ビット線RBLおよびZRBLは、ビット線イコライズ回路(BLEQ)により所定電圧レベルにプリチャージされた状態である。
ビット線プリチャージ動作が完了すると、次いで、読出ワード線を選択状態へ駆動する。このときまでには、センスアンプ活性化信号SEが活性化される。応じて、選択ユニット演算子セルを介してビット線RBLを介して、その記憶データに応じたセル電流Icellが供給される。一方、補のビット線ZRBLにおいても、ダミーセルにより、ダミーセル電流Idummyが流れる。
MOSトランジスタNN1およびNN8によりセル電流Icellのミラー電流が生成され、また、MOSトランジスタNN6およびNN9によりダミーセル電流Idummyのミラー電y流が生成される。MOSトランジスタPP1およびPP6において、これらの電流IcellおよびIdummyのミラー電流が流れる。MOSトランジスタPP1を介して流れる電流のミラー電流が、MOSトランジスタPP2およびPP3を介して流れ、MOSトランジスタPP6を介して流れる電流のミラー電流がMOSトランジスタPP4およびPP5を介して流れる。従って、これらのビット線RBLおよびZRBLを介してそれぞれ流れるセル電流Icellおよびダミーセル電流Idummyのミラー電流が、MOSトランジスタNN2およびNN5を介してそれぞれ流れる。
MOSトランジスタNN2およびNN5の電流/電圧変換動作により、セル電流Icellがダミーセル電流Idummyよりも大きい場合には、中間センス出力信号/SOTが、中間センス出力信号SOTよりも高い電圧レベルとなる。逆に、セル電流Icellがダミーセル電流Idummyよりも小さい場合には、中間センス出力信号/SOTが、中間センス出力信号SOTよりも低い電圧レベルとなる。これらの中間センス出力信号SOTおよび/SOTは,次段の最終増幅回路SMPによりさらに増幅され、電源電圧レベルおよび接地電圧レベルの最終センス出力信号SOUTおよび/SOUTが、生成される。
なお、MOSトランジスタNN3およびNN4については、以下の動作が行なわれる。すなわち、MOSトランジスタNN2は、MOSトランジスタPP2からの電流を放電し、MOSトランジスタNN3は、MOSトランジスタNN2のミラー電流を放電することができる。同様、MOSトランジスタPP5を流れる電流のミラー電流が、MOSトランジスタNN5を介して流れ、MOSトランジスタNN4は、MOSトランジスタNN5を介して流れる電流のミラー電流を放電することができる。
したがって、MOSトランジスタPP3およびNN4には、セル電流Icellとダミーセル電流Idummyのうちの小さいほうの電流が流れ、MOSトランジスタPP4およびNN3においても、ダミーセル電流Idummyとセル電流Icellの小さいほうの電流が流れる。MOSトランジスタNN7へは、セル電流Icellとダミーセル電流Idummyの合計電流とこれらの電流の小さいほうの電流の2倍の電流との和が常時流れる。従って、1ビットセルデータを読出して2値判定を行なう場合には、センス動作の安定化のために、これらのMOSトランジスタPP3、PP4、NN3、およびNN4は、MOSトランジスタNN7を介して流れる電流量を一定とする機能を有する。
しかしながら、これらのMOSトランジスタPP3、NN4、NN3、およびNN4は、特に設けられなくてもよい。また、これに代えて、MOSトランジスタPP3およびNN4の接続ノードおよびMOSトランジスタPP4およびNN3の接続ノードから、センス出力信号SOUTおよび/SOUTが、それぞれ取り出される構成が用いられてもよい。
上述のように、センスアンプSAが、複数のユニット演算子セルの記憶データに対するOR演算結果およびAND演算結果を示す信号を生成している。また、ユニット演算子セルの記憶データの論理値を反転して読み出す場合、ならびにNOR演算およびNAND演算結果をセンスアンプにより生成する場合には、図103に示すセンス出力信号をメインアンプ回路14またはデータパス28において反転すればよい。
基準電圧VREF1およびVREF2によりダミーセル電流Idummyの電流レベルを調整することにより、OR演算およびAND演算を選択的に行なうことができる。すなわちスイッチ回路DMSWの接続経路を実行する演算内容に応じて設定することにより、これらの論理演算を選択的に実行することができる。電流検出型センスアンプを利用することにより、高速で低電源電圧下においてもデータの読出/演算を実行することができる。
図104は、この発明の実施の形態10に係る半導体信号処理装置が行なうLUT演算を示す図である。このLUT演算は、演算子セルアレイ20のエントリを指定するアドレスに従って対応のエントリの内容を読出す演算を示す。この読出したエントリの内容に従って次の処理が、実行される。例えば、LUT演算は、アドレス変換、または演算結果の別の値への変換、またはある領域の参照などにおいて用いられる。
図104において、演算子セルアレイの各行が、エントリ(Entry)として利用される。エントリ(Entry)の末尾の符号AおよびBは、ユニット演算子セルUOEの読出ワード線RWLAおよびRWLBに対応し、エントリ(Entry)のAの欄には、ユニット演算子セルの記憶ノードSNA(SOIトランジスタNQ1のボディ領域)の記憶データの配列が示され、Bの欄にはユニット演算子セルの記憶ノードSNB(SOIトランジスタNQ2)の記憶データの配列が示される。
図104において、エントリ(Entry)i−Aすなわちユニット演算子セル行<i>における各ユニット演算子セルのSOIトランジスタNQ1の記憶データ列が”1010101010101”であり、エントリ(Entry)i−Bすなわちユニット演算子セル行<i>における各ユニット演算子セルのSOIトランジスタNQ2の記憶データ列が”0101010101010”である。
エントリj−Aすなわちユニット演算子セル行<j>における各ユニット演算子セルのSOIトランジスタNQ1の記憶データ列が、”1100110011001”であり、エントリj−Bすなわちユニット演算子セル行<j>における各ユニット演算子セルのSOIトランジスタNQ2の記憶データ列が、”0011001100110”である。
エントリk−Aすなわちユニット演算子セル行<k>における各ユニット演算子セルのSOIトランジスタNQ1の記憶データ列が、”0001110001110”であり、エントリk−Bすなわちユニット演算子セル行<k>における各ユニット演算子セルのSOIトランジスタNQ2の記憶データ列が、”1110001110001”である。
エントリi−Aを1つ選択し、演算処理としてバッファ処理を実行すると、出力データDOUTは”1010101010101”となる(OP1)。また、エントリi−Aおよびi−Bを選択し、AND演算を選択する場合、データDOUTは”0000000000000”となる(OP2)。また、エントリi−Aおよびj−Aを選択し、OR演算を選択する場合、データDOUTは”1110111011101”となる(OP3)。
演算子セルアレイ20における演算子セルサブアレイブロックOARの数をmとし、各演算子セルサブアレイブロックOARにおけるエントリ数をnとすると、生成されるデータ列は、m×n×2+m×n×(n−1)÷2×2+m×n×(n−1)×(n−2)÷(3×2)×2となる。
但し、上記式において、第1項は、1つの演算子セルサブアレイブロックOARにおけるnエントリから1エントリを選択し、かつSOIトランジスタNQ1およびNQ2のいずれかを選択する場合の組合せ数である。第2項は、nエントリから2エントリを選択し、かつSOIトランジスタNQ1およびNQ2のいずれかを選択し、エントリ同士のANDまたはOR演算を行なう場合の組合せ数である。第3項は、nエントリから3エントリを選択し、かつSOIトランジスタNQ1およびNQ2のいずれかを選択し、エントリ同士のANDまたはOR演算を行なう場合の組合せ数である。
本発明の実施の形態10に係る半導体信号処理装置の主な使用例は、以下のようになる。すなわち、演算子セルアレイ20における各ユニット演算子セルの記憶データは、半導体信号処理装置が組み込まれるシステムに応じて変更されるが、動的には変更されない。このシステムにおいて、半導体信号処理装置の外部から異なるアドレス信号および演算フラグを次々と半導体信号処理装置へ与え、半導体信号処理装置から演算処理結果を得る。アドレス信号によりエントリを指定し、演算フラグにより、実行する演算内容および並行して選択されるエントリおよびSOIトランジスタを指定する。従って、処理結果としては、内部での演算の結果、演算子セルアレイ20に準備されるエントリ(ユニット演算子セル行)の数よりも、多くの参照結果を生成することができ、等価的にエントリ数を増大させることができ、高密度のLUTを実現することができる。
以上のように、この発明の実施の形態10に係る半導体信号処理装置においては、行選択駆動回路22は、受けたアドレス信号に基づいて1または複数のユニット演算子セル行に対応する複数のユニット演算子セルUOEおよび複数のダミーセルDMCを並行して選択する。センスアンプSAは、対応の読出ビット線RBLを通して流れる電流と対応の補の読出ビット線ZRBLを通して流れる電流とを比較し、比較結果を示す信号を出力する。これにより、選択されたユニット演算子セル行(エントリ)の記憶データ列をそのまま半導体信号処理装置の外部へ読み出すことができる。また、複数ユニット演算子セル行を並行して選択し、各ユニット演算子セル行の記憶データに基づく電流を加算することにより、各ユニット演算子セル行の記憶データ列同士の論理演算をセンスアンプにおいて行なって、その演算結果を半導体信号処理装置101の外部から読み出すこともできる。
また、上記のように各ユニット演算子セル行の記憶データ列同士の論理演算を行なうことにより、演算子セルアレイ20が記憶する物理的な真理値データ列から、この真理値データ列で構成される実エントリ空間より遥かに大きい仮想エントリ空間を作り出すことができる。すなわち、従来のLUT演算器に比べて、はるかに高密度な論理情報を格納するLUT演算器を実現することができる。したがって、この発明の実施の形態10に係る半導体信号処理装置により、小占有面積かつ高密度なLUT演算器を実現することができる。
また、発明の実施の形態10に係る半導体信号処理装置においては、ユニット演算子セルUOEにおいて、SOI構造のトランジスタを記憶素子として利用している。これにより、ユニット演算子セルの記憶データを破壊することなくその記憶データを読み出すことができるため、ユニット演算子セルの記憶データを繰り返し利用して演算を実行することができる。
また、ユニット演算子セルは、4つのSOIトランジスタで構成されており、レイアウト面積が低減され、メモリセルアレイの面積の増大を抑制することができる。
また、この発明の実施の形態10に係る半導体信号処理装置においては、図103に示すように、センスアンプSAとして電流検出型のセンスアンプを用いる。すなわち、増幅回路により、電流を検出し、高速で増幅動作を行なって、演算結果データを生成することができる。また、電流量を検出しているため、モバイル機器用途において要求される低電源電圧下においても十分な大きさの電流差を生成してデータの検知増幅を行なうことができる。従って、これまでの実施の形態と同様、低電源電圧下においても確実に、演算処理を実行することができる。
なお、ユニット演算子セル行<i>、ユニット演算子セル行<j>およびユニット演算子セル行<k>は、演算子セルアレイ20において隣り合うように設けられていてもよく、また、間に1つ以上のユニット演算子セル行を挟むように設けられていてもよい。
[実施の形態11]
図105は、この発明の実施の形態11に係る半導体信号処理装置の全体の構成を概略的に示す図である。この図105に示す半導体信号処理装置は、以下の点で、その構成が図84に示す半導体信号処理装置と異なる。すなわち、図105に示す半導体信号処理装置102装置においては、演算子セルサブアレイブロックOAR0−OAR31の各々が、さらに、組合せ論理演算回路600を含む。組合せ論理演算回路600は、センスアンプ帯38に隣接して配置される。
組合せ論理演算回路600は、センスアンプ帯38から転送されたユニット演算子セルの記憶データに対し、指定された論理演算または算術演算処理をさらに実行して、センスアンプ出力であるOR演算結果またはAND演算結果から、XOR等の別の演算処理結果を生成する。また、組合せ論理演算回路600は、センスアンプ帯38におけるセンスアンプの出力信号の論理レベルを反転してメインアンプ回路24へ出力することもできる。
この図105に示す半導体信号処理装置の他の構成は、図89に示す半導体信号処理装置と同じであり、対応する部分には、同一参照符号を付して、その詳細説明は省略する。
図106は、図105に示す演算子セルサブアレイブロックOARの構成を概略的に示す図である。図105においては、メモリセルアレイMLAに含まれるユニット演算子セル行<i>および<j>において1つのユニット演算子セル列に対応する回路を代表的に示す。
メモリセルアレイMLAにおけるユニット演算子セルUOEおよびダミーセルDMCの構成および配置は、図90に示すセルの配置と同様である。
図106において、センスアンプ帯38は、センスアンプSA1およびSA2と、トランジスタSAT1、ZSAT1、SAT2およびZSAT2とを含む。センスアンプ選択ドライバSADV1およびSADV2ならびにサブアレイブロック選択ドライバMLASELDVは、行ドライブ回路XDRに含まれる。
トランジスタSAT1は、センスアンプ選択ドライバSADV1の出力信号に従って、センスアンプSA1に対してユニット演算子セルおよびダミーセルの記憶データを転送する。トランジスタSAT2は、センスアンプ選択ドライバSADV2の出力信号に従ってユニット演算子セルおよびダミーセルの記憶データをセンスアンプSA2に転送する。これらのセンスアンプ選択ドライバSADV1およびSADV2は、センスアンプ活性化信号SAENと演算内容を指定する制御信号とに従って選択的に活性化される。
組合せ論理演算回路600は、ANDゲートG1と、マルチプレクサG2と、バッファBUF1およびBUF2と、トランジスタTR1とを含む。
バッファBUF1は、信号線SAL1を介してセンスアンプSA1から受けた信号をマルチプレクサG2へ出力する。バッファBUF2は、信号線ZSAL1を介してセンスアンプSA1から与えられた信号をマルチプレクサG2へ出力する。
マルチプレクサG2は、制御回路30における演算選択ドライバOPSELDVから与えられた制御信号に基づいて、ANDゲートG1の出力信号、バッファBUF1の出力信号およびバッファBUF2の出力信号のうちのいずれか1つを選択する。トランジスタTR1は、サブアレイブロック選択ドライバMLASELDVの出力信号に従って選択的に導通し、導通時、マルチプレクサG2の出力信号をグローバルビット線GBLを介してメインアンプ回路24へ転送する。
以下、一例として、この発明の実施の形態11に従う半導体信号処理装置においてユニット演算子セルUOEIおよびUOEJの記憶データの排他的論理和(XOR)演算が行なわれる際の動作について説明する。
まず、スイッチDMSW1により基準電圧源VREF1を選択し、かつダミーセル選択信号DCLAを選択する。ダミーセルDMCにおいては、ダミートランジスタDTAによって基準電圧源VREF1から補のビット線ZRBLに電流を流す。ユニット演算子セルUOEIおよびUOEJ各々において1つのトランジスタ(NQ1)が選択され、これらのユニット演算子セルUOEIおよびUOEJの記憶データに応じた電流の合成電流が読出ビット線RBLに流れる。
センスアンプ選択ドライバSADV1を選択して、センスアンプSA1を活性化させる。トランジスタSATA1およびZSAT1により、センスアンプSA1は、読出ビット線RBLおよびZRBLに結合され、ビット線RBLを通して流れる電流および補のビット線ZRBLを介して流れる電流を差動的に増幅し、増幅した信号を保持するとともに信号線SAL1およびZSAL1へ出力する。
センスアンプSA1において電流差の増幅および保持が行なわれた後、センスアンプ選択ドライバSADV1を非活性状態に駆動する。この状態においては、センスアンプSA1は、読出ビット線RBLおよびZRBLが分離され、ユニット演算子セルUOEIおよびUOEJの記憶データの論理和(OR演算)結果を保持する。
次に、スイッチDMSW1の接続経路を切換えて、基準電圧源VREF2を選択し、かつダミーセル選択信号DCLAを選択する。ダミーセルDMCにおいて1つのダミートランジスタDTAが選択され、このダミートランジスタDTAによって基準電圧源VREF2から補のビット線ZRBLに対して電流を流す。ユニット演算子セルUOEIおよびUOEJにおいては、それぞれ1つのSOIトランジスタが選択されており、読出ビット線RBLには、これらのユニット演算子セル各々の記憶データに対応する電流の合成電流が、流れる。
スイッチDMSW1の経路切換に応じて、センスアンプ選択ドライバSADV2を選択してトランジスタSAT2およびZSAT2を導通状態として、読出ビット線RBLおよびZRBLをセンスアンプSA2に結合する。
データ読出後、センスアンプSA2を活性化させる。応じて、センスアンプSA2は、ビット線RBLを通して流れる電流および補のビット線ZRBLを通して流れる電流の差を増幅し、増幅した信号を保持するとともに信号線SAL2およびZSAL2へ出力する。
センスアンプSA2において電流差の増幅および保持が行なわれた後、センスアンプ選択ドライバSADV2をオフする。この状態においては、センスアンプSA2は、ユニット演算子セルUOEIおよびUOEJの記憶データの論理積(AND演算)結果を保持している。
ANDゲートG1は、信号線SAL1を介して受けた信号と信号線ZSAL2を介して受けた信号との論理積を示す信号を出力する。信号線SAL1からは、ユニット演算子セルUOEIおよびUOEJの記憶データの論理和演算結果を示す信号が伝達され、信号線ZSAL2からは、ユニット演算子セルUOEIおよびUOEJの記憶データの論理積演算の反転値、すなわち、NAND演算結果を示す信号が伝達される。
次に、サブアレイブロック選択ドライバMLASELDVを活性化して、トランジスタTR1をオンする。応じて、マルチプレクサG2は、演算選択ドライバOPSELDVから受けた制御信号に基づいてANDゲートG1の出力信号を選択し、選択した信号をトランジスタTR1およびグローバルビット線GBL経由でメインアンプ回路24へ転送する。メインアンプ回路24においてさらに増幅された後にデータパスを介して外部に出力される。
図107は、この発明の実施の形態11に係る半導体信号処理装置におけるセンスアンプSA1およびSA2の出力信号と、ANDゲートG1の出力信号と、ユニット演算子セルUOEIおよびUOEJの記憶状態との対応を一覧にして示す図である。
図107において、信号線SAL1へはユニット演算子セルUOEIおよびUOEJの記憶データのOR演算結果が出力され、信号線ZSAL2へはユニット演算子セルUOEIおよびUOEJの記憶データのNAND演算結果が出力される。従って、ANDゲートG1の出力信号は、ユニット演算子セルUOEIおよびUOEJの記憶データの排他的論理和(XOR演算結果)となる。
なお、動作制御としては、演算処理としてXOR演算が指定されたとき、読出ワード線RWLiおよびRWLjを選択状態に維持した状態で、センスアンプ選択ドライバSADV1およびSADV2の活性化切換を、スイッチDMSW1の経路切換に応じて実行する。従って、行選択駆動回路22の行ドライブ回路XDRの活性化タイミングおよびセンスアンプSAの活性化タイミングは、実施の形態10の場合と同様に設定される。
バッファBUF1を選択する場合には、実施の形態10と同様のLUT演算を行なうことができ、バッファBUF2を選択する場合には、センスアンプSA1の出力データの反転データを生成することができる。従って、実行可能な演算として、OR演算、AND演算、およびXOR演算に加えて、NOT演算、NOR演算、およびNAND演算を実現することができる。これらの動作制御は、コマンドCMDおよびアドレスADDを受ける制御回路30により行われる。
図108は、この発明の実施の形態11に係る半導体信号処理装置が行なうLUT演算の一例を模式的に示す図である。
図108を参照して、エントリ(Entry)iすなわちユニット演算子セル行<i>における各ユニット演算子セルの記憶ノードSNAの記憶データ列が”1010101010101”であり、記憶ノードSABのデータ列が、“0011001110001”である。エントリ(Entry)jすなわちユニット演算子セル行<j>における各ユニット演算子セルの記憶ノードSNAの記憶データ列が”0101010101010”である。エントリ(Entry)kすなわちユニット演算子セル行<k>における各ユニット演算子セルの記憶ノードSNAの記憶データ列が”0011001100110”である。
エントリiの記憶ノードSNAを1つ選択する場合、すなわち、図106のバッファBUF1の出力信号を選択する場合、出力データDOUTは、”1010101010101”となる(OP1)。また、エントリiおよびjの記憶ノードSNAを選択し、AND演算を選択する場合、出力データDOUTは”0000000000000”となる(OP2)。また、エントリjおよびkの記憶ノードSNAを選択し、XOR演算を選択する場合、データDOUTは”0110011001100”となる(OP3)。
半導体信号処理装置において、演算子セルアレイ10における演算子セルサブアレイブロックOARの数をmとし、各演算子セルサブアレイブロックOARにおけるエントリ数をnとすると、生成されるデータ列は、m×n×2+m×n×(n−1)÷2×3+m×n×(n−1)×(n−2)÷(3×2)×3となる。
ここで、上式において、第1項は1つの演算子セルサブアレイブロックOARにおけるnエントリから1エントリを選択する場合の組合せ数である。第2項は、nエントリから2エントリを選択する場合のAND演算、OR演算およびXOR演算の選択を含めた組合せ数であり(記憶ノードSNAが選択される)、第3項はnエントリから3エントリを選択する場合のAND演算、OR演算およびXOR演算の選択を含めた組合せ数(記憶ノードSNAが選択される)である。
以上のように、本実施の形態11に従えば、演算子サブアレイブロックそれぞれに対応して組合せ論理演算回路を設け、センスアンプの出力信号に対して選択的に追加の論理演算処理を実行している。従って、実施の形態10の効果に加えて、さらに仮想エントリ空間を広くすることができる。
[実施の形態12]
図109は、この発明実施の形態12に係る半導体信号処理装置の構成を概略的に示す図である。図109に示す半導体信号処理装置においては、サブメモリアレイMLAが、たとえばワード線方向(ワード線延在方向)に沿って4つのサブブロックSBLA,SBLB,SBLC,SBLDに分割される。すなわち、1ユニット演算子セル行が、4つのサブユニット演算子セル行に分割される。図109においては、エントリi,j,kに対応する回路部分を代表的に示す。
この実施の形態12に従う半導体信号処理装置においては、階層ワード線方式が適用され、読出ワード線RWLA<i>、RWLB<i>、RWLA<j>、RWLB<j>およびRWLA<k>およびRWLB<k>上の信号とサブブロック選択制御信号p,q,r,sとのAND演算により、任意のサブブロックを選択可能としている。
より詳細には、この図109に示す半導体信号処理装置は、図104に示す実施の形態10に従う半導体信号処理装置と比べて、行選択駆動回路22が、さらに、サブメモリアレイMLAにおけるエントリおよびサブブロックの各組に対応して設けられる複数のANDゲートを含む。
ANDゲートGI0〜GI3、GJ0〜GJ3およびGK0〜GK3は、それぞれエントリ(Entry)i,j,kに対応して設けられる。これらのANDゲートは、読出ワード線RWLA上の信号およびRWLB上の信号の各々とサブブロック選択制御信号p,q,r,sとの論理積演算結果を、それぞれ出力する。
行選択駆動回路22は、選択すべきエントリに対応する読出ドライバRWDV(RWADV、RWBDV)を活性化し、かつサブブロック選択制御信号p,q,r,sのうち、選択すべきサブブロックに対応するサブブロック選択制御信号を選択状態のHレベルへ駆動する。これにより、選択すべきサブブロックにおけるエントリに対応するユニット演算子セルUOEが選択される。従って、4エントリ(Entry<0>−Entry<3>)それぞれにおいて、異なるサブブロックのエントリを選択することが可能となる。
この図109に示す半導体信号処理装置の全体の構成は、図89に示す実施の形態10に従う半導体信号処理装置の構成と同じである。また、ユニット演算子セルUOEおよびセンスアンプSAの構成も実施の形態10の構成と同じである。
図110は、この発明の実施の形態12に係る半導体信号処理装置が行なうLUT演算の一例を示す図である。図110において、エントリ(Entry)Aは、記憶ノードSNAを示し、<>内の符号は、サブブロックを示す。
図110を参照して、各サブブロックSBLA‐SBLDにおけるエントリiに対応する各ユニット演算子セルの記憶データ列が”101010”である。各サブブロックにおけるエントリjに対応する各ユニット演算子セルの記憶データ列が”010101”である。各サブブロックにおけるエントリkに対応する各ユニット演算子セルの記憶データ列が”110011”である。各サブブロックにおけるエントリlに対応する各ユニット演算子セルの記憶データ列が”111000”である。
サブブロックSBLAにおけるエントリi(Entryi‐A<A>)、サブブロックSBLBにおけるエントリj(Entryj−A<B>)、サブブロックSBLCにおけるエントリk(Entryk−A<C>)およびサブブロックSBLDにおけるエントリl(Entryl−A<D>)を選択する場合、出力データDOUTは”101010010101110011111000”となる。
半導体信号処理装置において、演算子セルアレイ10における演算子セルサブアレイブロックOARの数をmとし、各演算子セルサブアレイブロックOARにおけるエントリ数をnとし、各演算子セルサブアレイブロックOARにおけるサブブロック数を4とすると、AND演算およびOR演算等の演算種別を考慮しない場合でも、生成されるデータ列は、m×n×n×n×nとなる。
このサブブロック単位でユニット演算子セルを選択して、各エントリから並列にデータを読出す構成としては、一例として、以下の構成を利用する。ANDゲートGI0−GI3、GJ0−GJ3、GK0−GK3それぞれの出力部にHレベルの出力信号をラッチするラッチ部(ハーフラッチ)を設ける。例えば、ANDゲートをNANDゲートとインバータの直列体で構成し、インバータの出力信号がHレベルとなると、このインバータの入力部のスイッチングトランジスタをオン状態として、インバータ入力部を接地電圧レベルのLレベルに保持する(ラッチ期間中は、NANDゲートのH出力用のトランジスタを強制的にオフ状態に維持する)。データ読出後、リセット信号により、インバータの入力部を強制的に電源ノードに結合して、選択行の非選択状態への駆動およびスイッチングトランジスタのオフ状態への駆動を実行する。
サブブロック選択信号p、q、r、およびsを順次、所定の期間活性化する。これらのサブブロック活性化期間において対応の読出ワード線をアドレス信号に従って指定する。各サブブロックにおいてサブブロック指定期間内において指定されたエントリのサブエントリEntry<i>が、サブブロック選択用のANDゲートのラッチ機能により選択状態に維持される。センスアンプSAについては、並行してサブブロックSBLAーSBLDにおいて活性状態に駆動してもよく、サブブロック指定期間毎に順次活性化しても良い。メインアンプ回路内のメインアンプを並行して活性化することにより、サブブロックSBLA‐SBLDのデータを並行して外部に出力することができる。読出期間が完了するとサブブロック選択用のANDゲートのラッチ機能をリセットする。この構成により、サブブロック単位で異なるユニット演算子セル行を選択することができる。
次に、本実施の形態12に係る半導体信号処理装置をLUTベースのPWM(Pulse Width Modulation)に適用した場合について説明する。
図111は、本実施の形態12に係る半導体信号処理装置がPWM波形データを生成する動作原理を示す図である。図111において、縦軸に振幅(パルス幅)を示し、横軸に位相を示す。
波形W2は、最小位相ピッチΔφの離散データを有するテーブルによって与えられるファイン(Fine)データを示す。波形W1は、最小位相ピッチΔφの適当な整数倍ピッチの離散データを有するテーブルによって与えられるコース(Coarse)データを示す。コースデータは、図111においては、一点差線の間のピッチを有する。各値が、パルス幅を示す。
これらのファインデータおよびコースデータを加算することにより、目的とするPWM波形データを生成することができる(波形W3)。この加算操作は、装置外部において実行される。従ってエントリ(サブブロック)の格納データが符号付のデータであれば、外部において加算および減算をこの符号ビットに従って実行することができる。
図112は、本発明の第3の実施の形態に係る半導体信号処理装置がPWM波形データを生成する場合のLUTデータの格納スキームを示す図である。図112を参照して、サブメモリアレイMLAIにファインデータ(fine data)が格納され、サブメモリアレイMLAKにコースデータ(coarse data)が格納される。ファインデータは、サブメモリアレイMLAIの各エントリをサブブロックごとにアクセスし、データ列を順次取り出すことにより得られる。また、コースデータは、サブメモリアレイMLAKの各エントリを1度にアクセスし、データ列を取り出すことにより得られる。この読出シーケンスにおいては、サブブロック選択用のANDゲートには、出力ラッチ機能は、要求されない。以下、図112を参照して、図111に示すPWM変調動作について説明する。
まず、サブメモリアレイMLAIにおけるサブブロックSBLA、SBLB、SBLCおよびSBLDにおける1番目のエントリの記憶データ列をこの順番に読み出し、データDOUT1として順次出力する。また、これと並行して、サブメモリアレイMLAKにおけるサブブロックSBLA、SBLB、SBLCおよびSBLDにおける1番目のエントリの記憶データ列を1度に読み出し、データDOUT2として出力する。そして、半導体信号処理装置の内部または外部においてデータDOUT1およびDOUT2を加算することにより、PWM波形である波形W3のデータP1〜P4が生成される。
このサブブロック単位でのデータDOUT1の読出時、非選択サブブロックにおいては、対応の読出ワード線は非選択状態であり、データ“0”が読出される。従って、各サブブロック選択毎に出力されるデータのビット幅は、データDOUT2と同じである。これに代えて、選択サブブロックにおいてのみ、センスアンプSAの活性化およびメインアンプの活性化が行われ、出力データのビット位置が、各選択サブブロックに応じた位置であってもよい。
次に、サブメモリアレイMLAIにおけるサブブロックSBLA、SBLB、SBLCおよびSBLDにおける2番目のエントリの記憶データ列をこの順番に読み出し、データDOUT1として順次出力する。また、これと並行して、サブメモリアレイMLAKにおけるサブブロックSBLA、SBLB、SBLCおよびSBLDにおける2番目のエントリの記憶データ列を1度に読み出し、データDOUT2として出力する。そして、半導体信号処理装置103の内部または外部においてデータDOUT1およびDOUT2を加算することにより、PWM波形である波形W3のデータP5〜P8が生成される。
3番目のエントリ以降も同様に、記憶データ列を順次取り出すことにより、PWM波形データが完成する。
アドレスカウンタを利用して順次サブブロック単位でデータを読出すことにより、ファインデータを順次読出すことができる。
以上のように、この発明の実施の形態12に従えば、演算子セルアレイにおいてサブブロック単位でデータを選択することが可能としている。従って、仮想エントリの数をさらに増大させることができる。また、記憶容量を増大させることなく、多ビットPWMデータのフルビットを、最小サンプリング期間(Δφ)毎に、生成することができる。
[実施の形態13]
図113は、この発明の実施の形態13に係る半導体信号処理装置の構成を概略的に示す図である。この図113に示す半導体信号処理装置は、以下の点で、図89に示す実施の形態10に従う半導体信号処理装置と、その構成が異なる。
この図113に示す半導体信号処理装置は、さらに、メインアンプ回路24に対して設けられるスイッチMASW11と、複数のグローバルビット線GBLとを備える。メインアンプ回路24は、グローバルビット線GBLそれぞれに対応して設けられた複数の比較増幅回路(グローバル読出回路)GRAを含む。センスアンプ帯38は、複数のセンスアンプSAおよびスイッチSWOARを含む。
演算子セルサブアレイブロックOAR0−OAR31における複数のセンスアンプSAは、全体として行列状に配置される。センスアンプ帯38においては、センスアンプSAは、対応の演算子セルサブアレイブロックOARのビット線対RBLおよびZRBLに対応して配置される。
グローバルビット線GBLは、演算子セルサブアレイOAR0−OAR31に共通に設けられ、すなわち、センスアンプ列に対応して設けられ、対応の列のセンスアンプSAの出力にスイッチSWOARを介して結合される。すなわち、グローバルビット線GBLは、演算子セルサブアレイブロックOAR0−OAR31におけるビット線RBLおよび補のビット線ZRBLの組各々に対応して設けられ、演算子セルサブアレイブロックOAR0−OAR31各々において、対応のビット線RBLおよび補のビット線ZRBLにそれぞれ結合された複数のセンスアンプSAの出力にスイッチSWOARを介して結合される。
スイッチSWOARは、データ読出時、サブアレイ選択信号に従って選択的に導通状態とされ、導通時、対応のセンスアンプSAの出力信号を対応のグローバルビット線RBLに伝達する。このセンスアンプSAの構成としては、図84に示す構成が利用される。スイッチSWOARが、スイッチ550,552およびブロック読出ゲートCSGに対応する。従って、センスアンプSAから、データ“1”の時に電流が供給され、データ“0”の時には、グローバルビット線GBLの電位に対しては影響を及ぼさない。
センスアンプSAは、対応のビット線RBLを介して流れる電流と対応の補のビット線ZRBLを介して流れる電流とを比較し、該比較結果に基づいてスイッチSWOAR経由で対応のグローバルビット線GBLに電流を流す。
比較増幅回路GRAは、対応のグローバルビット線GBLを通して流れる電流を検出し、検出した電流量に基づく信号を出力する。すなわち、比較増幅回路GRAは、グローバルビット線GBLの電位と、スイッチMASW11を介して供給される基準電圧VREF3またはVREF4とを比較し、比較結果に基づく信号をデータパス28へ出力する。
図113に示す半導体信号処理装置の他の構成は、図89に示す半導体信号処理装置の構成と同じであり、対応する部分には、同一参照符号を付して、その詳細説明は省略する。
まず、半導体信号処理装置において、1つの演算子セルサブアレイブロックOAR0を選択した場合における読出し動作について説明する。
図114は、1つの演算子セルサブアレイブロックOAR0を選択した状態を示す図である。図114において、演算子セルサブアレイブロックOAR0におけるスイッチSWOARがオン状態とされ、演算子セルサブアレイブロックOAR1−OAR31におけるスイッチSWOARは、オフ状態に維持される。このとき、比較増幅回路GRAには、スイッチMASW11を介してたとえば基準電圧VREF3が供給されている。スイッチSWOARのオン/オフ制御には、演算子セルサブアレイブロックを指定するサブアレイブロックアドレスが利用される。
図115は、図114に示す接続状態におけるグローバルビット線GBLに接続されたセンスアンプSAの出力信号の組合せを一覧にして示す図であり、図116は、データ読出時におけるグローバルビット線GBLを流れる電流に応じた読出電位の関係を示す図である。図116において、縦軸にグローバルビット線GBLの電位を示し、横軸に時間を示す。
図115および図116において、演算子セルサブアレイブロックOAR0におけるセンスアンプSAの出力信号が“1”の場合(状態ST1)、グローバルビット線GBLを介して流れる電流は大きくなり、グローバルビット線GBLの電位は基準電圧VREF3よりも大きくなる。このとき、比較増幅回路GRAはたとえばデータ”1”を出力する。
一方、演算子セルサブアレイブロックOAR0におけるセンスアンプSAの出力信号が“0”の場合(状態ST2)、グローバルビット線GBLを介して流れる電流は小さく、グローバルビット線GBLの電位は基準電圧VREF3よりも小さくなる。このとき、比較増幅回路GRAはたとえばデータ”0”を出力する。従って、1つの演算子セルサブアレイを選択したときには、センスアンプSAの出力信号に応じた2値信号が生成される。
次に、半導体信号処理装置において、2つの演算子セルサブアレイブロックOAR0およびOAR31を選択した場合における読み出し動作について説明する。
図117は、2つの演算子セルサブアレイブロックOAR0およびOAR31を選択した状態を示す図である。図117において、演算子セルサブアレイブロックOAR0およびOAR31におけるスイッチSWOARがそれぞれオン状態とされ、演算子セルサブアレイブロックOAR1−OAR30におけるスイッチSWOARがオフ状態とされる。このとき、比較増幅回路GRAには、スイッチMASW11を介して基準電圧VREF3またはVREF4が供給される。
図118は、グローバルビット線GBLに接続されたセンスアンプSAの出力信号の組合せを一覧にして示す図であり、図119は、データ読出時におけるグローバルビット線GBLを流れる電流に応じた読出電位の関係を示す図である。図119において、縦軸にグローバルビット線GBLの電位を示し、横軸に時間を示す。
図118および図119において、演算子セルサブアレイブロックOAR0およびOAR31の各々におけるセンスアンプSAの出力信号がいずれも“1”の場合(状態ST1)、グローバルビット線GBLを通して流れる電流I0+I1は最も大きくなる。
一方、演算子セルサブアレイブロックOAR0およびOAR31の各々におけるセンスアンプSAの出力信号がいずれも“0”の場合(状態ST4)、グローバルビット線GBLを通して流れる電流寮I0+I1は最も小さくなる。
また、演算子セルサブアレイブロックOAR0およびOAR31の各々におけるセンスアンプSAの出力信号の一方が”0”であり、他方が”1”である場合(状態ST2および状態ST3)、状態ST1におけるグローバルビット線GBLの電流量と状態ST4におけるグローバルビット線GBLの電流量との間の電流がグローバルビット線GBLを通して流れる。このため、グローバルビット線GBLの電位は状態ST1およびST4の間の電位となる。
基準電圧VREF3を、状態ST1におけるグローバルビット線GBLの電位と状態ST2およびST3におけるグローバルビット線GBLの電位の間に設定し、かつスイッチMASW11により基準電圧VREF3を比較増幅回路GRAに供給する。
この基準電圧VREF3の選択状態においては、比較増幅回路GRAは、状態ST1に対してデータ”1”を出力し、状態ST2〜ST4に対してデータ”0”を出力する。すなわち、比較増幅回路GRAは、演算子セルサブアレイブロックOAR0およびOAR31における演算結果のAND演算結果を出力する。
一方、基準電圧VREF4を状態ST4におけるグローバルビット線GBLの電位と状態ST2およびST3におけるグローバルビット線GBLの電位の間に設定し、かつスイッチMASW11によって基準電圧VREF4を比較増幅回路GRAに供給する。
この状態においては、比較増幅回路GRAは、状態ST1〜ST3に対してデータ”1”を出力し、状態ST4に対してデータ”0”を出力する。すなわち、比較増幅回路GRAは、演算子セルサブアレイブロックOAR0およびOAR31における演算結果のOR演算結果を出力する。
このように、本実施の形態13に係る半導体信号処理装置では、複数の演算子セルサブアレイブロックにおける演算結果に対してさらにOR演算およびAND演算を行なうことが可能になる。
図120は、本実施の形態13に係る半導体信号処理装置が行なうLUT演算を示す図である。図120において、演算子セルサブアレイブロックOAR31におけるサブメモリアレイMLAのエントリ(Entry)iにおける各ユニット演算子セルの記憶データ列が”1010101010101”であり、エントリ(Entry)jにおける各ユニット演算子セルの記憶データ列が”0101010101010”である。演算子セルサブアレイブロックOAR0におけるサブメモリアレイMLAのエントリ(Entry)kにおける各ユニット演算子セルの記憶データ列が”0011001100110”である。
演算子セルサブアレイブロックOAR31におけるエントリiおよび演算子セルサブアレイブロックOAR0におけるエントリkを選択し、基準電圧として基準電圧VREF4を選択してAND演算を選択する場合、データDOUTは”0010001000100”となる。
半導体信号処理装置において、演算子セルアレイ10における演算子セルサブアレイブロックOARの数をmとし、各演算子セルサブアレイブロックOARにおけるエントリ数をnとすると、生成されるデータ列は、m×n×2+m×n×2×(m−1)×n×2÷2×2となる(ユニット演算子セルUOEにおいて1つのSOIトランジスタが選択される場合)。
但し、上記式において、第1項は、m個の演算子セルサブアレイブロックOARから1個の演算子セルサブアレイブロックOARを選択し、選択した演算子セルサブアレイブロックOARにおけるnエントリから1エントリを選択し、かつSOIトランジスタNQ1およびNQ2のいずれかを選択する場合の組合せ数である。第2項は、m個の演算子セルサブアレイブロックOARから2個の演算子セルサブアレイブロックOARを選択し、選択した2つの演算子セルサブアレイブロックOARにおけるnエントリから1エントリをそれぞれ選択し、SOIトランジスタNQ1およびNQ2のいずれかを選択し、かつ演算子セルサブアレイブロック同士のAND演算およびOR演算を選択する場合の組合せ数である。
従って、本実施の形態13に従えば、組合せ論理演算回路を設けなくても、グローバルビット線の電位および基準電圧により組合せ論理演算を実行することができ、実施の形態12と同様、仮想エントリ空間を、アレイ面積を増大させることなく、拡張することができる。
基準電圧VREF3およびVREF4の選択は、コマンドCMDにより指定される演算内容に応じて制御回路30により実行される。演算子セルサブアレイブロックを2つ並行して選択状態に駆動する構成としては、一例として、以下の構成を利用することができる。すなわち、サブアレイブロックアドレスの最下位ビットを縮退状態とすることにより、隣接演算子サブアレイブロックを並行して選択状態に駆動することができる。任意の演算子セルサブアレイブロックを並行して選択するためには、サブアレイブロックデコーダからの演算子セルサブアレイブロック選択信号が選択されるとラッチするラッチ回路を各サブアレイブロックOARに対して設け、連続するタイミングでサブアレイブロックアドレスを供給してブロックデコーダにおいてスタティックにデコード動作を実行する。いわゆるメモリのバンク構成のバンク選択回路と同様の構成を利用する。
[実施の形態14]
図121は、この発明の実施の形態14に係る半導体信号処理装置の構成を概略的に示す図である。図121において、演算子セルサブアレイブロックOARは、制御フラグフィールド615aおよびデータフィールド615bを有する。図121においては、1つの演算子セルサブアレイブロックOARを代表的に示すが、この図121に示す半導体信号処理装置においては、サブメモリアレイ(MLA)の所定数の演算子セルサブアレイブロックにおいて、制御フィールド615aおよびデータフィールド615bが設けられる。サブメモリアレイ(MLA)の各エントリに対応する複数のユニット演算子セルUOEは、制御フラグ(A−D)およびデータを記憶する。制御フラグを格納するユニット演算子セルおよびデータを記憶するユニット演算子セルが、1エントリにおいて各フィールドに対応して配置される。
この制御フィールド615aおよびデータフィールド615bに分割される演算子セルサブアレイブロックOARは、えんざんしせるあれい(20)の特定の位置に配置されていても良く、また、全サブアレイブロックが、制御フィールド615aおよびデータフィールド615bに、分割されても良い。適用される用途に応じて、この制御フィールド615aおよびデータフィールド61bの構成が適宜定められれば良い。
この半導体信号処理装置は、図89に示す半導体信号処理装置の制御回路30に代えて、制御用デコーダ613を備える。制御用デコーダ613は、演算子セルサブアレイブロックOARの制御フィールド615aから読出された制御フラグ(A−D)を受けてデコードし、そのデコード結果を行選択駆動回路22へ出力する。
行選択駆動回路22によってアドレス信号に対応するエントリが選択され、選択されたエントリにおける制御フラグおよびデータが読み出される。行選択駆動回路22は、制御用デコーダ613から受けたデコード結果に基づいて、選択的にデコード動作を行って演算子セルサブアレイブロックOARにおける1または複数のエントリを選択する。この制御フィールド615aに格納される制御フラグを利用して演算処理を制御することにより、より高度のま多は複雑な演算処理を実現する。
この発明の実施の形態14に従う半導体信号処理装置の他の構成は、図89に示す半導体信号処理装置の構成と同じである。すなわち、ユニット演算子セルは、図1から3に示す構成を有し、また、センスアンプ、メインアンプ回路およびデータパスが配置される。
図122は、本実施の形態14に係る半導体信号処理装置がカウンタとして動作する際の動作手順を定めたフローチャートである。以下、図122を参照して、図121に示す半導体信号処理装置のカウンタ動作について説明する。
図122において、まず、各演算子セルサブアレイブロックOARにおけるサブメモリアレイMLAがリセットされる(ステップSS1)。このリセット時においては、ユニット演算子セルUOE全てに対してデータ“0”が書込まれる。
次に、各演算子セルサブアレイブロックOARにおけるサブメモリアレイMLAに、所定のパターンを有するデータおよび制御フラグが書込まれる(ステップSS2)。データとしてカウント値が与えられ、制御フラグとして対応のカウント値のときに次に実行する動作を制御するコードが格納される。制御フラグAは、“1”の時に連続カウント動作(カウントアップ)を指定する。制御フラグBは、“1”のときに、カウント動作の初期値からの繰返しを指定する。制御フラグCは、カウント値が所定値に到達したことを知らせる。制御フラグDは、カウンタ拡張のために準備される。
次に、指定されたカウント値からカウントを開始する。すなわち、アドレス信号により指定された初期アドレスに対応するエントリが選択され、選択されたエントリからデータおよび制御フラグが読み出される(ステップSS3)。読出されたデータが、カウント値に対応する。
読出されたカウント値が所定値である場合には、対応の制御フラグCが“1”に設定されており、このときに並行して読出された制御フラグCが1であることを示すデータが、図示しないCPU(Central Processing Unit)等へ出力される(ステップSS4)。外部のCPUなどの処理装置は、カウント値が所定値に到達したことを、この制御フラグCにより検出する。所定値にカウント値が到達していない場合には、制御フラグCは外部の処理装置には通報されないで、次のステップSS5の処理が実行される。
ステップSS5において制御フラグBの値の判定が行なわれる。すなわち、ステップSS5において、現在選択されているエントリにおける制御フラグBが0の場合であって(ステップSS5でNO)、制御フラグAが1であるとき(ステップSS6でYES)には、カウントアップされる(ステップSS7)。すなわち、アドレスを更新して、現在選択されているエントリの次のエントリが選択される。
一方、現在選択されているエントリにおけるフラグBが1である場合には(ステップS5でYES)、制御フラグAの値にかかわらず、カウント値がリセットされ、(ステップSS8)、ステップSS3に戻り、再度カウント動作を行う。すなわち、アドレスが初期値にリセットされ、初期アドレスに対応するエントリが再び選択され、カウント動作が繰返される。
一方、ステップSS5において、現在選択されているエントリにおける制御フラグBが0の場合(ステップSS5でNO)、制御フラグAの値が参照される(ステップSS6)。制御フラグAが0であるとき(ステップSS6でNO)には、カウント動作が終了する。
従って、制御フラグの値により、カウント範囲および期間を設定することができ、内部でクロックサイクル数のモニタなどの処理を実現することができる。このカウント動作は、図121に示す制御デコーダ613による制御フラグA−Dをデコードし、そのデコード結果に従って、リセットまたは増分などのアドレスの制御が実行される。
図123は、本実施の形態14に係る半導体信号処理装置が8ビットのカウンタとして動作する際の制御フィールドおよびデータフィールドの格納データの一例を示す図である。以下、図123を参照して、図122に示すカウンタ動作について具体的に説明する。
まず、各演算子セルサブアレイブロックOARにおけるサブメモリアレイMLAに、リセット(ステップSS1)の後、図123に示すようなデータおよび制御フラグが書込まれる(ステップSS2)。すなわち、データフィールドには、8ビットカウント値<7:0>が、各エントリ毎に増分されて格納され、各エントリの制御フィールドには、各カウント値に対応して制御フラグA−Dが格納される。
次に、指定されたカウント値からカウントを開始する。すなわち、行選択駆動回路22により、指定された初期アドレス0に対応するエントリが選択され、選択されたエントリから、データフィールドおよび制御フィールドから情報の読出が行われる(ステップSS3)。このアドレス0のエントリのデータ列は、データフィールドが”00000001”であり、制御フラグAが”1”であり、制御フラグBが”0”であり、制御フラグCが”0”であり、制御フラグDが”0”である。なお、制御フラグDは、たとえば次段にカウンタを追加する場合のカウント開始トリガとして用いられる。
次に、現在選択されているアドレス0に対応するエントリにおけるフラグBが0であり(ステップSS5でNO)、フラグAが1であるため(ステップSS6でYES)、カウントアップされる(ステップSS7)。すなわち、現在選択されているアドレス0の次のアドレス1に対応するエントリが選択され、対応の内容が読出される。
アドレス253までは、制御フラグAおよびBの値が、それぞれ、“1”および“0”であり、カウントアップがアドレス254まで繰り返される(ステップSS3−SS8)。アドレス254が指定するエントリからデータ列が読出される。このアドレス254に対応するエントリから読出されるデータ列においては、データフィールドが”11111111”であり、制御フラグAが”1”であり、制御フラグBが”1”であり、制御フラグCが”1”であり、制御フラグDが”0”である。
そして、カウント値が所定値である”11111111”であり、現在選択されているエントリにおける制御フラグCが1であるため、この制御フラグCが1であることを示すデータが図示しないCPU等へ出力される(ステップSS4)。
次に、現在選択されているエントリにおけるフラグBが1であるため(ステップSS5でYES)、カウント値がリセットされる(ステップSS8)。すなわち、初期アドレス0に対応するエントリが再び選択される。
制御フラグCが図示しないCPUに与えられ、このCPUにおいて所定の処理が完了すると、カウント動作を停止するために、CPUから与えられるコマンドに従ってアドレスが、アドレス255に設定される。このアドレス255のエントリの内容の読出が行われる。このアドレス255のエントリの制御フラグAおよびBの値“0”に従って、カウント動作が停止する。従って、処理内容に応じて、カウント動作を繰り返し実行することができ、処理の柔軟性が確保される。
予め処理シーケンスおよび処理時間が定められている場合には、あるカウント値(例えばアドレス254)のエントリの制御フラグAおよびBを“0”に設定し、かつ制御フラグCを“1”に設定する。これにより、あるカウント値(例えばアドレス254)に到達すると、カウント動作が停止し、また、外部のCPUに対しては、制御フラグCにより所定期間が経過したことを知らせる。このカウンタをウオッチドッグタイマなどとして利用することができる。
以上のように、本実施の形態14に係る半導体信号処理装置においては、LUT演算器自身に処理手順(連続カウント動作およびカウント動作の繰返しおよび停止)を格納し、この処理手順に従って、LUT演算器においてデータ読出し動作をループさせる。これにより、カウンタ動作などのより複雑な演算機能を実現することができる。また、カウンタ動作ではなく、外部アドレスに従って特定のエントリがアクセスされたときに、以後の処理動作を停止させるように構成されても良い。
[実施の形態15]
図124は、この発明の実施の形態15に係る半導体信号処理装置において用いられるユニット演算子セルの電気的等価回路を示す図である。この図40に示すユニット演算子セルUOEは、本実施の形態1に係るユニット演算子セルUOEの構成と、SOIトランジスタPQ1およびPQ2の各々のゲートが、書込ワード線WWLAおよびWWLBにそれぞれ結合される点で異なる。
書込ワード線WWLAは、ユニット演算子セル列に対応して設けられ、Y方向に延在して配置される、すなわち、読出ビット線RBLに平行に配置される。また、書込ワード線WWLBは、ユニット演算子セル行に対応して設けられ、X方向に延在して配置される、すなわち読出ビット線RBLと直交するように配置される。
書込ポートWPRTAからの書込すなわちSOIトランジスタNQ1のしきい値電圧を設定する場合には、書込ワード線WWLAを選択状態へ駆動して、SOIトランジスタPQ1を導通させる。また、書込ポートWPRTBからの書込すなわちSOIトランジスタNQ2のしきい値電圧を設定する場合には、書込ワード線WWLBを選択状態へ駆動して、SOIトランジスタPQ2を導通させる。
この図124に示すユニット演算子セルUOEの他の構成は、図1に示すユニット演算子セルの構成と同様であり、対応する部分には、同一参照符号を付して、その詳細説明は省略する。この図124に示すユニット演算子セルの構成は、図80に示すユニット演算子セルの構成と同様であるが、但し、書込ワード線WWLAの配置は、図80に示すユニットセルの構成と異なる。
図125は、図124に示すユニット演算子セルの平面レイアウトを概略的に示す図である。図125において、破線で囲む領域にP型トランジスタが形成される。このP型トランジスタ形性領域において、高濃度P型領域651aおよび651bがY方向に沿って整列して配置される。P型領域651aおよび651bの間に、N型領域652aが配置される。このP型領域651bに対してY方向に整列して、P型領域654aが配置される。
また、高濃度P型領域651cおよび651dがY方向に沿って整列して配置される。P型領域651cおよび651dの間に、N型領域652bが配置される。このP型領域651cに対してY方向に整列して、P型領域654bが配置される。
P型トランジスタ形成領域外部において、P型領域651b、654a、654bおよび651cに隣接して、高濃度N型領域653a、653bおよび653cが配置される。N型領域653aおよび653bの間に、P型トランジスタ形成領域からP型領域654aが延在して配置され、また、N型領域653bおよび653cの間に、P型トランジスタ形成領域からP型領域654bが延在して配置される。
N型領域652a上に、ゲート電極配線655aがX方向に延在するように配置され、P型領域654a上にゲート電極配線655bが配置される。また、N型領域652b上に、ゲート電極配線655dがX方向に延在するように配置され、P型領域654b上にゲート電極配線655cが配置される。図125においては、これらのゲート電極配線655a、655b、655cおよび655dは、ユニット演算子セルUOE内の領域のみ延在するように示すが、これらは連続的にX方向に沿って延在して配置される。
X方向に連続的に延在して第1金属配線656aが配置され、第1金属配線656aの隣に間をおいて、X方向に連続的に延在して第1金属配線656bが配置される。第1金属配線656bの隣に間をおいて、X方向に連続的に延在して第1金属配線656cが配置される。第1金属配線656cの隣に間をおいて、ゲート電極配線655cと整列して、かつX方向に連続的に延在して第1金属配線656dが配置され、また、第1金属配線656dの隣に間をおいて、ゲート電極配線655dと整列して、かつ第1金属配線656eがX方向に連続的に延在して配置される。
第1金属配線656aは、ビア/コンタクト658bおよび中間第1配線を介してP型領域651aに接続される。第1金属配線656bは、ビア/コンタクト658cを介して下層のN型領域653aに電気的に接続され、ソース線SLを構成する。ゲート電極配線655bに隣接して配置される第1金属配線656cは、図示しない領域においてゲート電極配線655bと電気的に接続され、読出ワード線RWLAを構成する。第1金属配線656dは、図示しない領域においてゲート電極配線655cと電気的に接続され、読出ワード線RWLBを構成する。第1金属配線656eは、図示しない領域においてゲート電極配線655dと電気的に接続され、書込ワード線WWLBを構成する。
各活性領域(トランジスタが形成される領域)の境界領域にY方向に沿って連続的に延在して第2金属配線657a−657dが配置される。第2金属配線657aは、ビア/コンタクト658eおよび中間第1配線を介してN型領域653cに電気的に接続される。第2金属配線657bは、ビア/コンタクト658dおよび中間第1配線を介してN型領域653bに電気的に接続される。第2金属配線657cは、ビア/コンタクト658fおよび中間第1配線を介してP型領域651dに接続される。第2金属配線657dは、ビア/コンタクト658aおよび中間第1配線を介してゲート電極配線655aと電気的に接続され、書込ワード線WWLAを構成する。
第2金属配線657aおよび657bは、それぞれ読出ポートを介して出力データDOUTBおよびDOUTAを伝達し、第1金属配線656aおよび第2金属配線657cが、書込ポートを介してそれぞれ入力データDINAおよびDINBを伝達する。すなわち、第2金属配線657aおよび657bが、それぞれ、図124に示す読出ポートRPRTBおよびRPRTAを構成し、第1金属配線656aおよび第2金属配線657cが、それぞれ、図124に示す書込ポートWPRTAおよびWPRTBを構成する。
この図125に示す平面レイアウトにおいて、P型領域651aおよび651bとN型領域652aとゲート電極配線655aとにより、PチャネルSOIトランジスタPQ1が構成され、P型領域651cおよび651dとN型領域652bとゲート電極配線655dとにより、PチャネルSOIトランジスタPQ2が構成される。N型領域653aおよび653bとP型領域654aとゲート電極配線655bとにより、NチャネルSOIトランジスタNQ1が構成される。N型領域653bおよび653cとP型領域654bとゲート電極配線655cとにより、NチャネルSOIトランジスタNQ2が構成される。
すなわち、P型領域651cが、書込ポートWPRTAに結合され、N型領域653aがソース線SLに結合され、N型領域653bが読出ポートRPRTAに結合される。N型領域653aおよび653bの間のP型領域654aが、SOIトランジスタNQ1のボディ領域を構成する。P型領域654aは高濃度P型領域651bに隣接して配置されており、したがって、P型領域651bおよび654aは、電気的に連結された状態にある。また、N型領域652aがSOIトランジスタPQ1のボディ領域を構成する。
SOIトランジスタPQ1において、ボディ領域(N型領域)652a表面にチャネルを形成することにより、書込ポートWPRTAから伝達される電荷が、P型領域651bを介してP型領域654aに伝達されて蓄積される。SOIトランジスタNQ1のボディ領域の電圧を書込データに応じた電圧レベルに設定し、そのしきい値電圧を記憶データに応じたレベルに設定する。N型領域653bはプリチャージノードを構成し、P型領域654aの電圧レベルに拘わらず、領域654aおよび653bの間のPN接合が導通しない電圧レベルに維持される。また、ソース線SLは、通常電源電圧VCCレベルに維持され、ボディ領域とソース線との間のPN接合の導通は防止される。
データ読出時においては、SOIトランジスタNQ1のボディ領域上に形成されるゲート電極配線に論理ハイレベルの電圧を印加する。このゲート電極の印加電圧により、P型領域654a表面に選択的に記憶データに応じてチャネルが形成され、ソース線SLから読出ポートRPRTAに、記憶データに応じた電流が流れる。この電流を検出することによりデータを読出す。ボディ領域(P型領域)654aに蓄積される電荷は保存されたままであり、データを不揮発的に記憶することができる。
また、ソース線SLからのSOIトランジスタNQ1およびNQ2のしきい値電圧に応じた電流量を検出するだけであり、高速のデータの読出を行なうことができる。
図126は、本実施の形態15に係る半導体信号処理装置の全体の構成を概略的に示す図である。図126において、実施の形態15に従う半導体信号処理装置は、実施の形態1に係る半導体信号処理装置と比べて、さらに、演算子セルサブアレイブロックOAR0とメインアンプ回路24との間に設けられた列選択駆動回路670を備える。列選択駆動回路670は、ユニット演算子セル列に対応して設けられた複数の書込ドライバWWADVを含む。データパス28は、ユニット演算子セル列に対応して設けられた複数の書込データドライバWDATBDVを含む。行ドライブ回路XDRは、ユニット演算子セル行に対応して設けられた複数の書込ドライバWWBDV、複数の読出ドライバRWADV、複数の読出ドライバRWBDVおよび複数の書込データドライバWDATADVを含む。
書込ドライバWWADVは、選択されるべきユニット演算子セルUOEの属する列に対応するグローバル書込ワード線WWLA<i>を選択状態へ駆動する。書込ワード線ドライバWWBDVは、選択されるべきユニット演算子セルUOEの属する行に対応する書込ワード線WWLBを選択状態へ駆動する。読出ドライバRWADVおよび読出ドライバRWBDVは、選択されるべきユニット演算子セル行に対応する読出ワード線RWLAおよびRWLBをそれぞれ選択状態へ駆動する。
グローバル書込ワード線WWLA<i>は、演算子セルサブアレイOAR0−OAR31に共通に、各ユニット演算子セル列に対応して配置される。後に説明するように、演算子セルサブアレイOARに対してサブブロック選択回路が配置され、選択サブアレイブロックにおいてデータの書込が実行される。
図127は、図126に示す演算子セルサブアレイブロックOARの構成をより具体的に示す図である。図127においては、演算子セルアレイ20に含まれる演算子セルサブアレイブロックOAR0およびOAR1を代表的に示す。
図127において、演算子セルサブアレイブロックOAR0およびOAR1の各々は、センスアンプ帯38の隣に配置されたサブ書込ワード線ドライバ帯675を含む。サブ書込ワード線ドライバ帯675は、ユニット演算子セル列に対応して設けられた複数のANDゲートGBSを含む。また、演算子セルサブアレイブロックOAR0およびOAR1の各々は、ユニット演算子セル列に対応して設けられた複数のローカル書込ワード線LCWWLAを含む。ローカル書込ワード線LCWWLAが、図124および図125に示す書込ワード線WWLAに該当する。行選択駆動回路22は、演算子セルサブアレイブロックOARに対応して設けられた複数のサブアレイブロック選択ドライバBSDVを含む。
ANDゲートGBSは、書込ワード線WWLA上の信号とサブアレイブロック選択ドライバBSDVの出力信号との論理積演算結果を示す信号を、ローカル書込ワード線LCWWLAへ出力する。
行選択駆動回路22は、選択すべき演算子セルサブアレイブロックOARに対応するサブアレイブロック選択ドライバBSDVをイネーブルして、選択すべき演算子セルサブアレイブロックOARにおけるローカル書込ワード線LCWWLAを選択状態へ駆動する。これにより、任意の演算子セルサブアレイブロックを選択可能としている。
図128は、本実施の形態15に係る半導体信号処理装置の動作におけるデータの流れを概念的に示す図である。以下、図128を参照して、この発明の実施の形態15に従う半導体信号処理装置の動作について説明する。
図128において、まず、Bポート書込ワード線WWLBおよびBポートデータ線DINBを用いて、マスクビットデータとしてデータDINB[m:0]を演算子セルアレイ20に書込む。たとえば、演算子セルサブアレイブロックOAR31のユニット演算子セル行<0>における複数のSOIトランジスタNQ2にデータ列”11111111”を書込み、ユニット演算子セル行<1>における複数のSOIトランジスタNQ2にデータ列”10101010”を書込み、ユニット演算子セル行<2>における複数のSOIトランジスタNQ2にデータ列”11110000”を書込む。このマスクデータビットの書込時には、書込対象のユニット演算子セル行に対応して配置される書込ワード線WWLB<i>を選択状態に駆動して、対応の行のユニット演算子セルUOEのトランジスタPQ2を並行してオン状態として、トランジスタNQ2のボディ領域にデータを書込む。
次に、書込ワード線WWLAおよびデータ線DINAを用いて、ワードバラレルデータとしてデータDINA[n:0]を演算子セルアレイ10に書込む。ワードパラレルデータは、複数のワードの同一位置のビットで構成されるデータである。グローバル書込ワード線WWLAおよびブロック選択信号を利用して、データ線DINA上にデータDINA[n:0]を転送し、選択サブアレイブロックOARi内においてY方向(列方向)に整列するユニット演算子セルUOEのトランジスタNQ1に対して並行してデータの書込を実行する。従って、書込ワード線WWLAを順次選択状態に駆動してデータDINA[n:0]を全て書込んだ後には、ユニット演算子セル行<0>には、データワード<0>の各ビットが格納され、行<1>にはデータワード<1>の各ビットが格納される。たとえば、演算子セルサブアレイブロックOAR31のユニット演算子セル行<0>におけるSOIトランジスタNQ1には、任意のデータワード<0>のビットが、ビットシリアルに書込まれる。
読出ワード線RWLA<0>およびRWLB<0>を選択状態に駆動して、演算子セルサブアレイブロックOAR31のユニット演算子セル行<0>におけるSOIトランジスタNQ1およびNQ2を読み出し対象として選択し、かつAND演算を選択する。図128に示す記憶態様においては、ユニット演算子セル行<0>のマスクデータビットは、全て“1”であり、データバスDOUTBを介して、ユニット演算子セル行<0>における複数のSOIトランジスタNQ1に書込まれたデータワード<0>のデータ列が、データDOUT[m:0]として読み出される。
また、演算子セルサブアレイブロックOAR31のユニット演算子セル行<1>におけるSOIトランジスタNQ1およびNQ2を読み出し対象として選択し、かつAND演算を選択する。応じて、ユニット演算子セル行<1>における複数のSOIトランジスタNQ1に書込まれたデータ列の奇数ビット(マスクデータビット“0”が書込まれたユニット演算子セル)がマスクされたデータ列が、データDOUT[m:0]として読み出される。
また、選択読出ワード線RWLAおよびRWLBを更新して、演算子セルサブアレイブロックOAR31のユニット演算子セル行<2>におけるSOIトランジスタNQ1およびNQ2を読み出し対象として選択し、かつこれらのAND演算を選択する。ユニット演算子セル行<2>における複数のSOIトランジスタNQ1に書込まれたデータ列の上位4ビットが、マスクビット“0”によりマスクされたデータ列がデータDOUT[m:0]として読み出される。
以上のように、この発明の実施の形態15においては、半導体信号処理装置に対し、Y方向からマスクビットデータ列を入力し、X方向からワードパラレルのデータ列(DINA[n:0])を入力すると、所望のビットがマスクされて、ビットパラレルのデータ列(DOUTB[m:0])がワードシリアル態様で出力される。これにより、半導体集積回路装置においてデータ列の直交変換を行うと同時に所定のビットにマスクをかけることができる。
[実施の形態16]
図129は、この発明の実施の形態16に係る半導体信号処理装置において用いられるメモリセルの断面構造を概略的に示す図である。図129に示すように、本実施の形態16においては、MRAMセルが利用される。図129においては、演算子セルアレイ20において行列状に配置される複数のメモリセルのうち、i番目のメモリセル行<i>、j番目のメモリセル行<j>およびk番目のメモリセル行<k>それぞれに配置されるメモリセルMCI、MCJおよびMCKの構造を示す。本実施の形態16においては、最大3つのメモリセル行が並行して選択される。これらのメモリセルMCI、MCJおよびMCKは、各々、1つのトランジスタおよび1つのMTJ素子で構成されるMRAMセルである。
図129において、半導体基板領域700表面に、間をおいて、高濃度N型不純物領域702I,704I,702J,704J,702K,704Kが配置される。不純物領域702Iおよび704Iの間のチャネル形成領域703I上に、図示しないゲート絶縁膜を介してゲート電極705Iが形成される。同様、不純物領域702Jおよび704Jの間のチャネル形成領域703J上に、図示しないゲート絶縁膜を介してゲート電極705Jが形成される。また、不純物領域702Kおよび704Kの間のチャネル形成領域703K上に、図示しないゲート絶縁膜を介してゲート電極705Kが形成される。
不純物領域702Iおよび704Iとゲート電極705Iとにより、メモリセルMCIのアクセストランジスタが形成される。ゲート電極705Iは、読出ワード線RWLiを構成する。メモリセルMCIにおいて、アクセストランジスタに対応してその上層に、可変抵抗素子として、可変磁気抵抗素子(MTJ素子)MTJIが設けられる。
可変磁気抵抗素子MTJIは、磁化方向が固定される固定層FXLと、磁化方向が記憶データに応じて変更される自由層FRLと、これらの固定層FXLおよび自由層FRLの間のトンネルバリア層TBLとを有する。自由層FRLは、上部電極UELRを介してビット線BLに結合される。固定層FXLは、局所配線LIIに、図示しない下部電極を介して接続される。局所配線LIIは、プラグ706Iおよび707Iと中間層配線708Iとにより、不純物領域702Iに電気的に結合される。可変磁気抵抗素子MTJI下部において、中間層配線708Iと同一配線層に、導電線709Iが配置される。この導電線709Iは、書込ワード線WWLiを構成する。
メモリセルMCJにおいては、不純物領域702Jおよび704Jとゲート電極705Jとにより、アクセストランジスタが形成される。ゲート電極705Jは、別の読出ワード線RWLjを構成する。
このメモリセルMCJのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子MTJJが設けられる。この可変磁気抵抗素子MTJJは、可変磁気抵抗素子MTJIと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子MTJJは、局所配線LIJ、プラグ706Jおよび707J、ならびに中間層配線708Jを介して不純物領域702Jに電気的に結合される。
可変磁気抵抗素子MTJJの下部において、中間層配線708Jと同一配線層に、導電線709Jが配置される。導電線709Jは、別の書込ワード線WWLjを構成する。
また、メモリセルMCKにおいては、不純物領域702Kおよび704Kとゲート電極705Kとにより、アクセストランジスタが形成される。ゲート電極705Kは、別の読出ワード線RWLkを構成する。
このメモリセルMCKのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子MTJKが設けられる。この可変磁気抵抗素子MTJKは、可変磁気抵抗素子MTJIと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子MTJKは、局所配線LIK、プラグ706Kおよび707K、ならびに中間層配線708Kを介して不純物領域702Kに電気的に結合される。
可変磁気抵抗素子MTJKの下部において、中間層配線708Kと同一配線層に、導電線709Kが配置される。導電線709Kは、別の書込ワード線WWLkを構成する。
図130は、図129に示すメモリセルMCI、MCJおよびMCKの電気的等価回路を示す図である。図130において、メモリセルMCIは、ビット線BLとソース線SLIの間に直列に接続されるアクセストランジスタATIおよび可変磁気抵抗素子MTJIを含む。メモリセルMCJは、ビット線BLとソース線SLJの間に直列に接続される可変磁気抵抗素子MTJJおよびアクセストランジスタATJを含む。メモリセルMCKは、ビット線BLとソース線SLKの間に直列に接続される可変磁気抵抗素子MTJKおよびアクセストランジスタATKを含む。図130においては、ソース線SLI、SLJおよびSLKは、ビット線BLと直交する方向に配設されるように示すが、これらのソース線SLI、SLJおよびSLKは、ビット線BLと並行に配設されてもよい。ソース線SLI、SLJおよびSLKは、接地ノードに結合される。
アクセストランジスタATI、ATJおよびATKは、それぞれ、読出ワード線RWLi、RWLjおよびRWLkの電位に応答して選択的にオン状態となる。書込ワード線WWLi、WWLjおよびWWLkは、それぞれ可変磁気抵抗素子MTJI、MTJJおよびMTJKと物理的に分離されかつ磁気的に結合される。
ビット線BL、書込ワード線WWLi、WWLjおよびWWLkを流れる電流が誘起する磁界により、可変磁気抵抗素子MTJI、MTJJおよびMTJKの自由層FRLの磁化方向が設定される。
図131は、可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。図131においては、磁化方向を矢印で示す。図131(A)に示すように、固定層FXLおよび自由層FRLの磁化方向が異なる場合(反平行の場合)、磁気抵抗効果により、可変磁気抵抗素子を通して流れる電流に対する電気的抵抗が高くなる。このとき、可変磁気抵抗素子は、電流に対して高抵抗状態となり、抵抗値Rmaxを有する。
一方、図131(B)に示すように、固定層FXLと自由層FRLの磁化方向が一致するとき、すなわち平行なときには、この可変磁気抵抗素子は、電流に対して低抵抗状態となり、抵抗値Rminを有する。
アクセストランジスタAT(ATI,ATJ,ATK)がオン状態のとき、ビット線BLおよびソース線SL(SLI,SLJ)を流れる電流量は、可変磁気抵抗素子MTJ(MTJI,MTJJ,MTJK)の抵抗値に従って異なる。この電流量を、図示しないセンスアンプで検知することにより、このメモリセルMC(MCI,MCJ,MCK)の記憶データを読出す。一例として、抵抗値Rmaxの高抵抗状態をデータ“0”に対応付け、抵抗値Rminの低抵抗状態をデータ“1”に対応付ける。
データ書込時においては、図130に示すアクセストランジスタATI、ATJおよびATKをオフ状態に維持する。書込ワード線WWL(WWLi、WWLjまたはWWLk)に所定の方向に電流を流し、磁界を誘起する。ビット線BLを通して、書込データに応じた方向に電流を流す。ビット線BLを流れる電流が誘起する磁界と書込ワード線WWLを流れる電流が誘起する磁界の合成磁界により、可変磁気抵抗素子MTJの自由層FRLの磁化方向を、固定層の磁化方向に対し平行状態または反平行状態に設定する。この自由層の磁化方向により、可変磁気抵抗素子MTJの抵抗状態が設定され、データの書込が行なわれる。
このメモリセルMCのデータは、可変磁気抵抗素子の自由層の磁化方向により設定される。外部から、自由層の磁化方向を反転させる要因が印加されない限り、自由層FRLの磁化方向は変化しない。したがって、メモリセルMCは、不揮発的にデータを記憶することができる。また、この自由層FRLの磁化方向は、ビット線電流および書込ワード線電流の誘起する磁界により決定され、書込時、たとえばフラッシュメモリのように、トンネル絶縁膜などを介して電流は流れない。したがって、層間絶縁膜の劣化の問題は回避することができ、可変磁気抵抗素子の書換回数は、ほぼ無限大である。
また、この可変磁気抵抗素子の自由層の磁化方向は、ビット線BLおよび書込ワード線WWLを流れる電流により決定されるため、高速の書込を行なうことができる。また、データ読出も、ビット線BLを流れる電流量に従って行なわれるため、高速で読出を行なうことができる。また、可変磁気抵抗素子MTJI、MTJJおよびMTJKを介して流れる電流の大きさに応じてデータの読出が行なわれ、可変磁気抵抗素子MTJI、MTJJおよびMTJKの自由層の磁化方向は、読出電流により反転しない。したがって、非破壊的にデータの読出を行なうことができ、DRAMセルおよび強誘電体キャパシタのようなリストア動作が不要となり、データ読出サイクルを短くすることができる。
本実施の形態16においては、このMRAMセルの特長を利用して、メモリセルの記憶データと図示しないセンスアンプの増幅動作とを利用して、演算操作を実行する。
図132は、本発明の第1の実施の形態に係る半導体信号処理装置のメモリセルのアレイ内配置を概略的に示す図である。図132においては、2つのメモリセル列に対応する回路を代表的に示す。
メモリセルMCI1およびMCI2に対しては、読出ワード線RWLiおよび書込ワード線WWLiが配設され、メモリセルMCJ1およびMCJ2に対しては、読出ワード線RWLjおよび書込ワード線WWLjが設けられ、メモリセルMCK1およびMCK2に対しては、読出ワード線RWLkおよび書込ワード線WWLkが設けられる。メモリセルMCI1およびMCI2に対しては、行方向に延在するソース線SLiが設けられる。メモリセルMCJ1およびMCJ2に対しては、行方向に延在するソース線SLjが設けられる。メモリセルMCK1およびMCK2に対しては、行方向に延在するソース線SLkが設けられる。これらのソース線SLi、SLjおよびSLkは、共通ソース線SLCMを介して接地ノードに結合される。
メモリセル列に対応してビット線BLが配置され、各メモリセル列に対応して2つのダミーセルDMCAおよびDMCBが配設される。すなわち、ビット線BL1が、メモリセルMCI1、MCJ1およびMCK1に対応して配置され、このビット線と対を成すビット線ZBL1にダミーセルDMCA1およびDMCB1が接続される。メモリセルMCI2、MCJ2およびMCK2がビット線BL2に接続され、このビット線BL2と対をなすビット線ZBL<2>にダミーセルDMCA2およびDMCB2が接続される。
ダミーセルDMCA1およびDMCA2に対しては、ダミー読出ワード線DRWL1、ダミー書込ワード線DWWL1およびダミーソース線DSL1が設けられ、ダミーセルDMCB1およびDMCB2に対しては、ダミー読出ワード線DRWL2、ダミー書込ワード線DWWL2およびダミーソース線DSL2が設けられる。
ダミーセルDMCA1およびDMCA2のダミーソース線DSL1は、基準電圧VREF1が供給される基準電位ノードVREF1または基準電圧VREF3が供給される基準電位ノードVREF3にスイッチMSW1を介して結合される。
ダミーセルDMCB1およびDMCB2のダミーソース線DSL2は、基準電圧VREF2が供給される基準電位ノードVREF2または基準電圧VREF4が供給される基準電位ノードVREF4にスイッチMSW2を介して結合される。これらのダミーセルDMCA1、DMCA2、DMCB1およびDMCB2は、ともに低抵抗状態に設定され、抵抗値Rminを有する。
基準電位ノードVREF1およびVREF3のいずれをダミーソース線DSL1と接続するか、基準電位ノードVREF2およびVREF4のいずれをダミーソース線DSL2と接続するかは、後述するようにメモリセルMCから読み出したデータに対して行なわれる演算の種類によって決まる。また、メモリセルとしてMRAMセルが利用されるため、これらの基準電圧VREF1−vREF4の電圧レベルは、TTRAMセルを利用するユニット演算子セルの場合の基準電圧レベルと異なる電圧レベルに設定される。本実施の形態16における基準電圧VREF1−VREF4の電圧レベルについては、後に具体的な演算について説明するときに併せて説明する。
メモリセルMCの列およびダミーセルDMCの列に対応してビット線BLおよびZBLがそれぞれ設けられる。メモリセルMCI1、MCJ1およびMCK1は、ビット線BL1に並列に結合され、ダミーセルDMCA1およびDMCB1は、補のビット線ZBL1に結合される。メモリセルMCI2、MCJ2およびMCK2は、ビット線BL2に並列に結合され、ダミーセルDMCA2およびDMCB2は、補のビット線ZBL2に結合される。
読出ワード線RWLi、RWLjおよびRWLkの一端に、読出ドライバRWDVI、RWDVJおよびRWDVKがそれぞれ設けられる。ダミー読出ワード線DRWL1およびDRWL2の一端に、読出ドライバDRWDV1およびDRWDV2がそれぞれ設けられる。書込ワード線WWLi、WWLjおよびWWLkの一端に、書込ドライバWWDVI、WWDVJおよびWWDVKがそれぞれ設けられる。ダミー書込ワード線DWWL1およびDWWL2の一端に、書込ドライバDWWDV1およびDWWDV2がそれぞれ設けられる。
読出ドライバRWDVI、RWDVJ、RWDVK、DRWDV1およびDRWDV2は、データ読み出し時、対応の読出ワード線を選択状態へ駆動する。書込ドライバWWDVI、WWDVJ、WWDVK、DWWDV1およびDWWDV2は、データ書込時、対応の書込ワード線を選択状態へ駆動する。
ビット線BL1およびZBL1の一端に、センスアンプSA1が設けられる。また、ビット線BL1の両端に、書込ドライバWDVA1およびWDVA2がそれぞれ設けられ、また補のビット線ZBL<1>の両端に、書込ドライバDWDVA1およびDWDVA2がそれぞれ設けられる。書込ドライバWDVA1およびWDVA2は、データ書込時、相補データDおよび/Dに従ってビット線BL<1>に電流を流す。同様に、書込ドライバDWDVA1およびDWDVA2も、相補データDDおよび/DDに従って、補のビット線ZBL<1>に双方向に電流を流す。これらの書込ドライバWDVA1、WDVA2、DWDVA1、およびDWDVA2を双方向ドライバで構成することにより、ビット線BL<1>およびZBL<1>に、書込データに応じて双方向に電流を流すことができ、メモリセルMCI1、MCJ1およびMCK1に対し、データを書込むことができる。
同様に、ビット線BL<2>およびZBL<2>の一端に、センスアンプSA2が設けられる。また、ビット線BL<2>の両端に、書込ドライバWDVB1およびWDVB2が設けられ、また補のビット線ZBL<2>の両端に、書込ドライバDWDVB1およびDWDVB2が設けられる。書込ドライバWDVB1およびWDVB2は、データ書込時、相補データDおよび/Dに従ってビット線BL<2>に電流を流す。同様に、書込ドライバDWDVB1およびDWDVB2も、相補データDDおよび/DDに従って、補のビット線ZBL<2>に双方向に電流を流す。これらの書込ドライバWDVB1、WDVB2、DWDVB1、およびDWDVB2を双方向ドライバで構成することにより、ビット線BL<2>およびZBL<2>に、書込データに応じて双方向に電流を流すことができ、メモリセルMCI2、MCJ2およびMCK2に対し、データを書込むことができる。
ただし、ダミーセルDMCは、低抵抗状態に設定されるため、補のビット線ZBLに対して設けられる書込ドライバDWDVA1、DWDVA2、DWDVB1およびDWDVB2は、供給電流の方向が固定されることから、双方向に電流を供給することは、特に要求されない。
このセンスアンプSA、1対の書込ドライバWDVおよび1対の書込ドライバDWDVが、各ビット線対に対応して設けられる。この書込ドライバWDVの構成としては、通常のMRAMにおける書込ドライバが利用されれば良く、メモリセル行単位でデータの書込を行う場合には、この書込ドライバに対して列選択信号を供給することは特に要求されない。ビット線毎に順次データを書込む場合には、列選択信号により選択列の書込ドライバをイネーブルする。
なお、ダミーセルDMCA1、DMCA2、DMCB1およびDMCB2のダミーソース線DSL1およびDSL2が、接地ノードではなく、基準電位ノードVREF1〜VREF4に結合されるのは、以下の理由による。すなわち、データ読出時、これらの基準電位ノードの電圧VREF1〜VREF4を所望の値に設定した場合、これらのダミーセルDMCA1、DMCA2、DMCB1およびDMCB2を介してそれぞれ流れる電流量を、メモリセルMCI、MCJおよびMCKを介して流れる電流の中間値またはそれより大きい値に設定することができる。
演算処理時においては、後に詳細に説明するように、メモリセルMCI、MCJおよびMCKが並行して選択され、これらのメモリセルの記憶データに応じた電流がビット線BLを介して流れる。このビット線上の合成電流に対して基準電圧VREF1〜VREF4の電圧レベルを調整して、補のビット線ZBLを介して流れるダミーセル電流を調整することで、必要とされる演算を実行する。
データ書込時においては、メモリセルMCI、MCJおよびMCKを順次選択して、1対の書込ドライバWDVによりデータを書込む。データ読出時においては、読出ワード線RWL<i>、RWL<j>およびRWL<k>を並行して選択状態へ駆動し、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKを並列にビット線BLに結合する。
次に、図132に示す半導体信号処理装置において、1つのメモリセル行<i>を選択した場合における読み出し動作について説明する。
図133は、メモリセルMCIの記憶データの組み合わせを一覧にして示す図である。図133に示すように、メモリセルMCIの可変磁気抵抗素子MTJIの抵抗状態の組合わせとして、2つの状態が存在する。状態S(0)は、メモリセルMCIの可変磁気抵抗素子MTJIが、高抵抗状態H(Rmax)である。状態S(1)は、可変磁気抵抗素子MTJIが、低抵抗状態L(Rmin)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態をデータ“1”に対応付けている。
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIを並行して選択し、各可変磁気抵抗素子MTJIの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>を選択し、選択列のビット線BLの両端に配置された1対の書込ドライバWDVを用いて、選択列のビット線BLを介して書込データに応じた方向に電流を流す。このとき、書込ワード線WWLIにおいては、書込データの論理値にかかわらず一定の方向に電流が流れるため、また、書込ワード線WWLIは、メモリセルと物理的に分離されているため、選択行<i>のメモリセルに対して並行してデータの書込が実行されても良い。
読出時においては、メモリセル行<i>上の複数のメモリセルMCIを選択し、各可変磁気抵抗素子MTJIを並行して対応のビット線BLに結合する。センスアンプSAから各ビット線に対して電流が供給される。したがって、読出時においては、センスアンプSAからの読出電流が、メモリセルの記憶データに応じて、ビット線BLから各可変磁気抵抗素子MTJIを介してソース線SLへと流れる。
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。ここでは、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、スイッチMSWにより基準電位ノードVREF1にダミーセルDMCAが接続される場合について説明する。
図134は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図134において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。なお、データ読出前、ビット線BLおよびZBLは、センスアンプにより所定電圧レベル(読出電圧レベル)にプリチャージされる。
メモリセルMCIが状態S(0)のときには、メモリセルMCI(可変磁気抵抗素子MTJI)は高抵抗状態であり、メモリセルMCIを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。
一方、状態S(1)においては、メモリセルMCI(可変磁気抵抗素子MTJI)は低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
また、ダミーセルDMCAは低抵抗状態L(Rmin)である。メモリセルMCIのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0)のときにビット線BLを通して流れる電流よりも大きく、かつ状態S(1)のときにビット線BLを通して流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0)と状態S(1)の間の状態に設定することができる。この場合のダミーセルDMCAを介して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを介して流れる電流を示す。
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCIの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCAを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCIの1ビットの記憶データの論理値を示している。
図135は、本実施の形態16に係る半導体信号処理装置におけるセンスアンプSAの出力信号とメモリセルMCIの記憶状態との対応を一覧にして示す図である。
図135に示すように、状態S(0)においては、可変磁気抵抗素子MTJIは高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、図134に示すようにビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
状態S(1)においては、メモリセルMCIは低抵抗状態L(Rmin)であり、データ“1”を記憶している。この状態においては、図134に示すようにビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は補のビット線ZBLよりも低い。このとき、センスアンプの出力信号は “0”となる。
したがって、センスアンプからは、メモリセルMCIの記憶データのNOT演算結果が出力される。
次に、半導体信号処理装置101において、2つのメモリセル行<i>および<j>を選択した場合における読み出し動作について説明する。
図136は、行<i>および<j>上のメモリセルMCIおよびMCJの記憶データの組み合わせを一覧にして示す図である。図136に示すように、メモリセルMCIおよびMCJの可変磁気抵抗素子MTJIおよびMTJJの抵抗状態の組み合わせとして、4つの状態が存在する。状態S(0,0)は、メモリセルMCIおよびMCJの可変磁気抵抗素子MTJIおよびMTJJが、ともに、高抵抗状態H(Rmax)である。状態S(1,0)は、可変磁気抵抗素子MTJIおよびMTJJが、それぞれ低抵抗状態L(Rmin)および高抵抗状態H(Rmax)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付けている。
状態S(0,1)は、可変磁気抵抗素子MTJIおよびMTJJが、それぞれ、高抵抗状態H(Rmax)および低抵抗状態L(Rmin)である。状態S(1,1)は、可変磁気抵抗素子MTJIおよびMTJJが、ともに低抵抗状態L(Rmin)である。
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIとメモリセル行<j>に対応する複数のMCJとを個々に選択し、各可変磁気抵抗素子MTJIおよび各可変磁気抵抗素子MTJJの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>およびWWL<j>を順次選択し、図132に示す各ビット線の両端に配置された1対の書込ドライバWDVを用いて、各ビット線BLにおいて書込データに応じた方向に電流を流す。
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCIおよびメモリセル行<j>に対応する複数のメモリセルMCJを並行して選択し、可変磁気抵抗素子MTJIおよび可変磁気抵抗素子MTJJの各組を並行して各ビット線BLに結合する。したがって、読出時においては、可変磁気抵抗素子MTJIおよび可変磁気抵抗素子MTJJの各組を通して流れる電流の合成電流が各ビット線BLを通して流れる。
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。
図137は、データ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。図137において、メモリセルMCIおよびMCJが並列に接続される。データ読出時、アクセストランジスタATIおよびATJが並行して選択され、可変磁気抵抗素子MTJIおよびMTJJが、ビット線BLと接地ノードとの間に並列に、記憶データに応じた電流IIおよびIJを流す。補のビット線ZBLには、ダミーセルDMC(DMCAまたはDMCB)が、基準電圧VREF(VREF1〜VREF4のいずれか)の電圧レベルに応じた電流IDを流す。これらのビット線の合成電流II+IJと補のビット線ZBLのダミーセル電流IDとの大小に応じて、データの読出を実行する。
図138は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図138において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。
メモリセルMCIおよびMCJが状態S(0,0)のときには、メモリセルMCIおよびMCJはともに高抵抗状態であり、メモリセルMCIおよびMCJを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。ここで、データ読出時においては、ビット線BLおよびZBLは、センスアンプにより所定電圧レベル(読出電圧レベル)にプリチャージされる。
一方、状態S(1,1)においては、メモリセルMCIおよびMCJは、ともに低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
状態S(1,0)およびS(0,1)は、高抵抗状態と低抵抗状態の組み合わせであり、状態S(0,0)およびS(1,1)のビット線電流の中間の電流が流れる。したがって、状態S(1,0)およびS(0,1)の場合、ビット線の読出電位は、この状態S(0,0)およびS(1,1)の電位の間となる。
また、ダミーセルDMCAおよびDMCBは、ともに低抵抗状態L(Rmin)である。メモリセルMCIおよびMCJのソース線は接地電圧レベルに維持される。したがって、基準電圧VREFとして、基準電圧VREF1を選択し、この基準電圧VREF1を接地電圧以上の電圧レベルに設定する。ダミーセルとしてダミーセルDMCAを選択する。この条件下において、ダミーセルDMCAを介して流れる電流を、状態S(0,0)のときにビット線BLを流れる電流よりも大きくかつ状態S(0,1)およびS(1,0)のときにビット線BLを流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0,0)と状態S(1,0)およびS(0,1)との間に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
2×Ih<Id1<Ih+Il
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを流れる電流を示す。
次に、ダミー読出ワード線DRWL2が選択されてダミーセルDMCBが選択され、また、基準電位ノードVREF2にスイッチMSW2を介してダミーセルDMCBが接続される場合について説明する。
ダミーセルDMCBを選択し、基準電圧VREF2を負電圧に設定した場合、1つの低抵抗状態のメモリセルMCを通して流れる電流よりも大きな電流を、補のビット線ZBLに流すことができる。従って、ダミーセルDMCB選択時の補のビット線ZBLの電位を、状態S(1,0)およびS(0,1)と状態S(1,1)との間に設定することができる。この場合のダミーセルDMCBを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
2×Il>Id2>Ih+Il
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCIおよびMCJの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCIおよびMCJの2ビットの記憶データの組み合わせを基準電圧を参照して2分類したうちのいずれか一方を示しており、センスアンプSAにより、メモリセルMCIおよびMCJの記憶データに対する論理演算を行なうことができる。
図139は、本実施の形態16に係る半導体信号処理装置におけるセンスアンプの出力信号とメモリセルMCIおよびMCJの記憶状態との対応を一覧にして示す図である。
図139に示すように、状態S(0,0)においては、可変磁気抵抗素子MTJIおよびMTJJがともに高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、ダミーセルDMCA(基準電圧VREF1)およびDMCB(基準電圧VREF2)のいずれを選択しても、図138に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
状態S(1,0)および状態S(0,1)の場合、メモリセルMCIおよびMCJの一方が高抵抗状態H(Rmax)であり、他方が低抵抗状態L(Rmin)である。したがって、基準電圧VREF1を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位が補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。また、基準電圧VREF2を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位が補のビット線ZBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。
状態S(1,1)の場合、メモリセルMCIおよびMCJはともに低抵抗状態L(Rmin)であり、データ“1”を記憶している。この場合、基準電圧VREF1およびVREF2のいずれを選択しても、図138に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は、補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。
したがって、図139に示すように、基準電圧VREF1を選択した場合、センスアンプからは、メモリセルMCIおよびMCJの記憶データのNOR演算結果が出力され、また、基準電圧VREF2を選択した場合、センスアンプからは、メモリセルMCIおよびMCJの記憶データのNAND演算結果が出力される。
なお、センスアンプとしては、交差結合ラッチ型センスアンプが用いられてもよい。しかしながら、この交差結合型ラッチセンスアンプは、ビット線BLおよびZBLの電位差を増幅する電圧検出型センスアンプである。したがって、より高速でセンス動作を行なうために、電流検出型センスアンプを利用することが好ましい。
図140は、本実施の形態16に半導体信号処理装置において用いられる係る電流検出型センスアンプの構成の一例を示す図である。この図140に示すセンスアンプSAは、以下の点で図103に示すセンスアンプSAとその構成が異なる。すなわち、抵抗接続されたNチャネルMOSトランジスタNN8およびNN9は、設けられない。NチャネルMOSトランジスタNN1およびNN6が、それぞれ、セル電流Icellおよびダミーセル電流Idummyをビット線BLおよびZBLに供給する。これらのNチャネルMOSトランジスタNN1およびNN6は、それぞれのゲートにセンス基準電圧Vrefsを受ける。このセンス基準電圧Vrefsは、データ読出時、メモリセルMCのビット線BLに大きな電流が流れ、このビット線電流の誘起磁界によりメモリセルの記憶データが破壊されるのを防止する。
次に、この図140に示すセンスアンプSAの動作について、簡単に説明する。センスアンプ活性化信号/SEおよびSEの非活性化時、MOSトランジスタPP7およびNN7は、オフ状態である。この状態においては、MOSトランジスタPP2およびPP5により、中間センス出力信号SOTおよび/SOTは、電源電圧VDDレベルに維持される。ノードND1は、MOSトランジスタPP1、NN1、およびPP6、NN1により、ビット線BLおよびZBLと同様の電位レベルに維持される。また、最終センス出力信号SOUTおよび/SOUTも出力ハイインピーダンス状態のプリチャージレベル(例えば論理ハイレベル)に維持される。
センス動作時には、先ず、読出ワード線選択前に、センスアンプ活性化信号/SEを活性化し、MOSトランジスタPP7およびNN7をオン状態とする。応じて、ノードND1が電源ノードに結合され、MOSトランジスタPP1およびPP6が動作し、ビット線BLおよびZBLが充電される。この場合、またセンスアンプ活性化信号SEは、並行して活性化されてもよい。センス動作開始時までセンスアンプ活性化信号SEの活性化が遅延されても良い。読出ワード線RWLは、まだ、非選択状態であり、ビット線BLおよびZBLが、MOSトランジスタNN1およびNN6から供給される電流に従って所定電圧レベルにプリチャージされる。
プリチャージ動作が完了すると、次いで、読出ワード線を選択状態へ駆動する。このときまでには、センスアンプ活性化信号SEが活性化される。応じて、選択メモリセルを介してビット線BLからソース線に、その記憶データに応じたセル電流Icellが流れる。一方、補のビット線ZBLにおいても、ダミーセルにより、ダミーセル電流Idummyが流れる。これらの電流IcellおよびIdummyは、MOSトランジスタPP1およびPP6により、それぞれ供給され、MOSトランジスタPP1を介して流れる電流のミラー電流が、MOSトランジスタPP2およびPP3を介して流れ、MOSトランジスタPP6を介して流れる電流のミラー電流がMOSトランジスタPP4およびPP5を介して流れる。従って、これらのビット線を介して流れるセル電流Icellおよびダミーセル電流Idummyのミラー電流が、それぞれ、MOSトランジスタNN2およびNN5を介して流れる。
MOSトランジスタNN2およびNN5の電流/電圧変換動作により、セル電流Icellがダミーセル電流Idummyよりも大きい場合には、中間センス出力信号/SOTが論理ハイレベル(中間電圧レベル)となり、中間センス出力信号SOTが論理ローレベル(中間電圧レベル)となる。逆に、セル電流Icellがダミーセル電流Idummyよりも小さい場合には、中間センス出力信号/SOTが論理ローレベルとなり、中間センス出力信号SOTが論理ハイレベルとなる。これらの中間センス出力信号SOTおよび/SOTは、次段の最終増幅回路SMPによりさらに増幅され、電源電圧レベルおよび接地電圧レベルの最終センス出力信号SOUTおよび/SOUTが、生成される。
MOSトランジスタPP3およびNN4には、セル電流Icellとダミーセル電流Idummyのうちの小さいほうの電流が流れ、MOSトランジスタPP4およびNN3においても、ダミーセル電流Idummyとセル電流Icellの小さいほうの電流が流れる。MOSトランジスタNN7へは、セル電流Icellとダミーセル電流Idummyの合計電流とこれらの電流の小さいほうの電流の2倍の電流との和が常時流れる。従って、1ビットセルデータを読出して2値判定を行なう場合には、センス動作の安定化のために、これらのMOSトランジスタPP3、PP4、NN3、およびNN4は、MOSトランジスタNN7を介して流れる電流量を一定とする機能を有する。
しかしながら、図103に示す構成と同様、これらのMOSトランジスタPP3、NN4、NN3、およびNNT4は、特に設けられなくてもよい。また、これに代えて、MOSトランジスタPP3およびNN4の接続ノードおよびMOSトランジスタPP4およびNN3の接続ノードから、センス出力信号SOUTおよび/SOUTが、それぞれ取り出される構成が用いられてもよい。
上述のように、センスアンプSAが、複数のメモリセルの記憶データに対するNOR演算結果およびNAND演算結果を示す信号を生成している。また、メモリセルの記憶データの論理値を変更せずに読み出す場合、ならびにOR演算およびAND演算結果をセンスアンプにより生成する場合には、図140に示すセンス出力信号を、メインアンプ回路24またはデータパス28において反転すればよい。
以上のように、基準電圧VREF1〜VREF4によりダミーセル電流Idummyの電流レベルを調整することにより、2つのデータのNOR演算およびNAND演算を選択的に行なうことができる。
次に、半導体信号処理装置101において、3つのメモリセル行<i>、<j>および<k>を選択した場合における読み出し動作について説明する。
図141は、3つのメモリセルMCI、MCJおよびMCKの記憶データの組み合わせを一覧にして示す図である。図141に示すように、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKの抵抗状態の組み合わせとして、8つの状態が存在する。状態S(A,B,C)の表記において、AはメモリセルMCIの抵抗状態を表し、BはメモリセルMCJの抵抗状態を表し、CはメモリセルMCKの抵抗状態を表す。たとえば、状態S(0,0,0)は、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKが、ともに、高抵抗状態H(Rmax)にあることを示す。状態S(1,1,1)は、可変磁気抵抗素子MTJI、MTJJおよびMTJKが、ともに低抵抗状態L(Rmin)であることを示す。ここでも、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付けている。
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIと、メモリセル行<j>に対応する複数のMCJと、メモリセル行<k>に対応する複数のMCKとを各行単位でまたはメモリセル単位で個々に選択し、各可変磁気抵抗素子MTJI、各可変磁気抵抗素子MTJJおよび各可変磁気抵抗素子MTJKの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>、WWL<j>およびWWL<k>を順次選択し、図132に示す1対の書込ドライバWDVを用いて、各ビット線BLに書込データに応じた方向に電流を流す。
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCI、メモリセル行<j>に対応する複数のメモリセルMCJおよびメモリセル行<k>に対応する複数のメモリセルMCKを並行して選択し、可変磁気抵抗素子MTJI、可変磁気抵抗素子MTJJおよび可変磁気抵抗素子MTJKの各組を並行して各ビット線BLに結合する。したがって、読出時においては、可変磁気抵抗素子MTJI、可変磁気抵抗素子MTJJおよび可変磁気抵抗素子MTJKの各組を通して流れる電流の合成電流が対応のビット線BLを介して流れる。
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。まず、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF3にスイッチMSW1を介してダミーセルDMCAが接続される場合について説明する。
図142は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図142において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。
メモリセルMCI、MCJおよびMCKが状態S(0,0,0)のときには、メモリセルMCI、MCJおよびMCKは、全て高抵抗状態であり、メモリセルMCI、MCJおよびMCKを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。ここで、データ読出時においては、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
一方、状態S(1,1,1)においては、メモリセルMCI、MCJおよびMCKは、ともに低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
状態S(1,0,0)、S(0,1,0)およびS(0,0,1)は、メモリセルMCI、MCJおよびMCKのうちの2つが高抵抗状態であり、他の1つが低抵抗状態である。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れる。したがって、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)では、ビット線の読出電位は、状態S(0,0,0)およびS(1,1,1)の間となる。
また、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)は、メモリセルMCI、MCJおよびMCKのうちの2つが低抵抗状態であり、他の1つが高低抵抗状態である。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れ、かつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と比べてビット線電流が大きくなる。したがって、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)では、ビット線の読出電位は、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と状態S(1,1,1)の電位の間となる。
また、ダミーセルDMCAおよびDMCBは、ともに低抵抗状態L(Rmin)である。メモリセルMCI、MCJおよびMCKのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0,0,0)のときにビット線BLを流れる電流よりも大きくかつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)のときにビット線BLを流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0,0,0)と状態S(1,0,0)、S(0,1,0)およびS(0,0,1)の電位の間に設定することができる。この場合のダミーセルDMCAを介して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
3×Ih<Id1<2×Ih+Il
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを流れる電流を示す。
次に、ダミー読出ワード線DRWL2が選択されてダミーセルDMCBが選択され、基準電位ノードVREF4にスイッチMSW2を介してダミーセルDMCBが接続される場合について説明する。
ダミーセルDMCBを選択し、基準電圧VREF4を負電圧に設定した場合、1つの低抵抗状態のメモリセルMCを介して流れる電流よりも大きな電流を、補のビット線ZBLに流すことができる。従って、ダミーセルDMCB選択時の補のビット線ZBLの電位を、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)と状態S(1,1,1)との間に設定することができる。この場合の、ダミーセルDMCBを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
3×Il>Id2>Ih+2×Il
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCI、MCJおよびMCKの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCI、MCJおよびMCKの3ビットの記憶データの組み合わせを基準電圧の電圧レベルに応じて2分類したうちのいずれか一方を示しており、センスアンプSAにより、メモリセルMCI、MCJおよびMCKの記憶データに対する論理演算を行なうことができる。
図143は、本実施の形態16に係る半導体信号処理装置におけるセンスアンプの出力信号とメモリセルMCI、MCJおよびMCKの記憶状態との対応を一覧にして示す図である。
図143に示すように、状態S(0,0,0)においては、可変磁気抵抗素子MTJI、MTJJおよびMTJKがともに高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、ダミーセルDMCA(基準電圧VREF3)およびDMCB(基準電圧VREF4)のいずれを選択しても、図142に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
状態S(1,0,0)、S(0,1,0)、S(0,0,1)、S(1,1,0)、S(1,0,1)およびS(0,1,1)では、メモリセルMCI、MCJおよびMCKのうちの少なくともいずれか1つが低抵抗状態L(Rmin)である。したがって、基準電圧VREF3を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位が補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。また、基準電圧VREF4を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位が補のビット線ZBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。
状態S(1,1,1)の場合、メモリセルMCI、MCJおよびMCKはともに低抵抗状態L(Rmin)であり、データ“1”を記憶している。この場合、基準電圧VREF3およびVREF4のいずれを選択しても、図14に示すようにビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は、補のビット線ZBLよりも低くなる。このとき、電圧検出型センスアンプの出力信号は“0”となる。
したがって、図143に示すように、基準電圧VREF3を選択した場合、センスアンプからは、メモリセルMCI、MCJおよびMCKの記憶データのNOR演算結果が出力され、また、基準電圧VREF4を選択した場合、センスアンプからは、メモリセルMCI、MCJおよびMCKの記憶データのNAND演算を行なった結果が出力される。
なお、本実施の形態16に係る半導体信号処理装置では、ダミーセルDMCがメモリセル列ごとに2つ設けられる構成であるとしているが、これに限定するものではない。ダミーセルDMCがメモリセル列ごとに1つ設けられ、このダミーセルDMCに接続されたスイッチMSWが、たとえば基準電位ノードVREF1〜VREF4のうちのいずれか1つとダミーセルDMCとを選択的に結合する構成であってもよい。
従って、このMRAMセルを利用することにより、実施の形態10から15において説明したLUT演算と同様の演算を実行することができる。半導体信号処理装置の全体の構成としては、ユニット演算子セルUOEをメモリセルMCで置き換えることにより、実施の形態10から15において示した全体の構成とそれぞれ同じ構成を利用することができる。
図144は、この発明の実施の形態16に従う半導体信号処理装置のLUT演算の一例を示す図である。図144において、メモリサブアレイにおいて複数のエントリ(Entry)が、配置される。このエントリは、メモリセル行に対応し、図144においては、エントリi、j、およびkのメモリセルの記憶データ列を一例として示す。エントリiにおいては、データ列“1010101010101”が格納され、エントリjにおいては、データ列“0101010101010”が格納される。エントリkには、データ列“00111001100110”が格納される。
エントリiのデータ列に対して、図135に示す演算を利用してセンスアンプSAの出力信号SOUTの反転信号を読出す処理を実行する(演算OP1)と、エントリiのデータ列が、そのままデータ列“1010101010101”として出力される。
エントリiおよびjの記憶データ列に対して、図139に示すNAND演算処理を行ってその反転信号を出力すると(演算OP2)、データ列”0000000000000”が得られ、AND演算結果のデータ列が得られる。
エントリjおよびkの記憶データ列に対して図143に示すNAND演算を実行して、その演算結果を反転して出力する操作(OP3)を行うと、データ列”0001000100010”が得られ、これらのエントリjおよびkの記憶データ列のAND演算結果のデータ列が得られる。
従って、これらの演算を選択的に実行することにより、メモリセルサブアレイの配置されるエントリの数を等価的に増大することができ、実施の形態10等と同様に、仮想エントリ空間を増大させることができる。実行される演算は、アドレスとともに供給される制御コマンドまたは特定のアドレスビットにより指定されれば良い。
また、この実施の形態16において利用するMRAMセルは、実施の形態1から9の構成に対しても適用することができる(ユニット演算子セルUOEに代えてメモリセルを利用する)。
[実施の形態17]
図145は、この発明の実施の形態17に従う半導体信号処理装置の全体の構成を概略的に示す図である。図145において、メモリセルアレイ810が、複数のサブアレイブロックBK0−BKsに分割される。サブアレイブロックBK0−BKsの各々においてユニット演算子セルUOEが行列状に配列され、ユニット演算子セル行に対応して書込ワード線WWL、Aポート読出ワード線RWLおよびBポート読出ワード線RWLBが配設され、ユニット演算子セル列に対応してビット線BL(および補のビット線ZBL)が配置される。
ユニット演算子セルは、図1から3に示すSOIトランジスタで構成されるユニット演算子セルUOEと同様の構成を有し、1つのユニット演算子セルが、2つのPチャネルSOIトランジスタPQ1およびPQ2と、NチャネルSOIトランジスタNQ1およびNQ2で構成される。
この半導体信号処理装置は、さらに、選択されたサブアレイブロックから読出されたデータ(電流)をデジタル信号に変換するADC帯812と、データの入出力を行なうデータパス814と、サブアレイブロックBK0−BKsにおけるメモリセルを選択状態へ駆動し、データの書込および読出を制御するセル選択駆動回路816を含む。
各サブアレイブロックBK0−BKsが、各々、複数の演算単位ブロックに分割されており、各演算単位ブロックごとに、ADC帯812は、メモリセルから読出された記憶データに応じた電流情報をアナログ的に加算し、この加算電流値をデジタル信号に変換するアナログ/デジタル変換器(A/D変換器:ADC)を含む。
データパス814は、データ読出時、このADC帯812により生成されたデジタル情報を装置外部へ転送し、データ書込時、与えられた多ビット数値データを、各ビット位置の重みに応じた数のユニット演算子セルに各データビットを転送するように内部書込データを生成する。
セル選択駆動回路816は、選択されたサブアレイブロックにおいて複数列のユニット演算子セルを並行して選択し、データの書込/読出を行なう(書込ワード線WWLおよび読出ワード線RWLA,RWLBの選択状態への駆動等)。この半導体信号処理装置における内部動作制御は、制御回路818により行なわれる。
この図145に示すように、ADC帯812を設け、ユニット演算子セルの記憶情報に応じた電流の加算を行なうことにより、ユニット演算子セルの記憶するデジタルデータの加算を行なう場合、キャリー/ボローを生成する必要がなく、高速で、演算処理結果を得ることができる。また、メモリセルの記憶データを装置内部で読出すだけで演算処理が行なわれるため、高速の演算処理を実現することができる。
また、後に詳細に説明するように、ユニット演算子セルの記憶情報を電流の形態で読出す構成としており、低電源電圧下においても、高速でデータの読出を行なうことができる。
図146は、図145に示すサブアレイブロックBK0−BKsの1つのサブアレイブロックBKiの構成を概略的に示す図である。図146において、サブアレイブロックBKiは、ユニット演算子セルUOEが行列状に配列されるセルサブアレイ820を含む。セルサブアレイ820においては、ユニット演算子セルUOEが行列状に配列され、各列に対応して、Aポート読出ビット線RBLAおよびBポート読出ビット線RBLBが配設される。これらのAポート読出ビット線RBLAおよびBポート読出ビット線RBLBは、それぞれ、対応の列のユニット演算子セルUOEの読出ポートRPRTAおよびRPRTBに接続される。
このセルサブアレイ820は、また、ダミーセルエリア821を含み、このダミーセルエリア821内において、各ユニット演算子セル列に対応してダミーセルDMCが配置され、このダミーセルDMCが、補のビット線ZBLに結合される。ユニット演算子セルUOEの各行に対応して、読出ワード線RWLA,RWLBおよび書込ワード線WWLが配置される。同様、ダミーセルDMCに対しても、読出ワード線および書込ワード線が配置されるが、図146においては示していない。
サブアレイブロックBKiは、さらに、選択メモリセルの記憶データを読出すセンスアンプ帯822と、ユニット演算子セルのAおよびB読出ポートとセンスアンプ帯822との接続状態を設定するポート接続回路823と、センスアンプ帯822により読出されたデータ電流を、図145に示すADC帯812へ転送する読出ゲート回路824とを含む。
センスアンプ帯822においては、ビット線BL(RBLA、RBLB)およびZBLの対それぞれに対応してセンスアンプ回路が設けられ、読出ビット線RBLAまたはRGLBと補の読出ビット線ZBLを流れる電流を差動的に増幅して、内部読出データを生成する。このセンスアンプ回路は、後にその構成は詳細に説明するが、図84に示すセンスアンプ回路と類似する構成を有し、検知データが、“1”の場合には電流を供給し、検知データが、“0”の場合には、出力ハイインピーダンス状態に設定される。データ“0”および“1”の状態は、読出ビット線RBLAまたはRBLBを流れる電流が、補の読出ビット線ZRBLを流れる電流よりも大きい場合が、データ“1”に対応し、小さい場合が、データ“0”に対応する。
ポート接続回路823は、読出ビット線RBLAおよびRBLBの組各々に対して設けられる接続スイッチを含み、図示しないポート指定信号に従ってAポート読出ビット線RBLAおよびBポート読出ビット線BLBの一方を、センスアンプ帯822の対応のセンスアンプ回路に結合する。
読出ゲート回路824は、センスアンプ帯822内のセンスアンプ回路それぞれに対応して設けられる読出ゲートを含み、図示しないグローバル読出データ線を介してこのセンスアンプ帯822により生成された電流情報を、図145に示すADC帯812に転送する。
図147は、図146に示すセルサブアレイ820の具体的構成の一例を示す図である。図147においては、ユニット演算子セルUOEが、(k+1)行2列に配列される。このユニット演算子セルUOEは、前述のように、図1から3に示すユニット演算子セルと同様の構成を有する。
図147において、列方向に整列するユニット演算子セルUOE00、…、UOEk0に対し、読出ビット線RBLA0およびRBLB0とグローバル書込データ線WGLB0およびWGLA0が設けられる。このグローバル書込データ線WGLA0およびWGLB0は、それぞれユニット演算子セルUOE00、…、UOEk0の書込ポートWPRTAおよびWPRTBに結合される。ユニット演算子セルUOE00、…、UOEk0の読出ポートRPRTAおよびRPRTBは、それぞれ読出ビット線RBLA0およびRBLB0にそれぞれ結合される。
ユニット演算子セルUOE01、…、UOEk1に対し、読出ビット線RBLA1およびRBLB1とグローバル書込データ線WGLB1およびWGLA1が設けられる。グローバル書込データ線WGLA1およびWGLB1は、それぞれ、ユニット演算子セルUOE01、…、UOEk1の書込ポートWPRTAおよびWPRTBに結合され、ユニット演算子セルUOE01、…、UOEk1の読出ポートRPRTAおよびRPRTBは、それぞれ読出ビット線RBLA1およびRBLB1に結合される。
ユニット演算子セルUOE00およbUOE01に対して、書込ワード線WWL0および読出ワード線RWLA0,RWLB0が配設され、ユニット演算子セルUOEk0およびUOEk1に対して、書込ワード線WWLkおよび読出ワード線RWLAk,RWLBkが配設される。
ユニット演算子セルUOE00,UOEk0に対応してダミーセルDMC0が配置され、ユニット演算子セルUOE01,…,UOEk1に対応して、ダミーセルDMC1が配置される。ダミーセルDMC0およびDMC1の構成は、図6に示す実施の形態1において利用されるダミーセルDMCと同一構成を有するため、図147においては、図6に示すダミーセルと対応する部分には、同一参照符号を付して、その詳細説明は省略する。
基準電圧源Vrefの供給する基準電圧Vref(電源と供給電圧とを同一参照符号で示す)は、ユニット演算子セルUOE00等に含まれるSOIトランジスタNQ1およびNQ2が、高しきい値電圧および低しきい値電圧時に供給する電流の中間の電流を供給する。
ポート接続回路823において、読出ビット線RBLA0およびRBLB0に対し、図6に示す構成と同様、ポート接続スイッチPRSW0が設けられる。ポート接続スイッチPRSW0は、ポート選択信号PRMXに従って読出ビット線RBLA0およびRBLB0の一方を、センス読出ビット線RBL0に接続する。補の読出ビット線ZRBL0は、センスアンプ回路SAKに結合される。
また、読出ビット線RBLA1およびRBLB1に対して、ポート接続スイッチPPSW1が設けられ、ポート選択信号PRMXに従って指定されたポートの読出ビット線をセンス読出ビット線RBL1を介して対応のセンスアンプ回路SAK1に結合する。
ポート選択信号PRMXは、多ビット選択信号であり、所定数のビット線対のグループごとに接続経路を設定することができる。
これらのポート接続スイッチPRSW1およびPRSW2は、図18に示すポート接続スイッチと同様の構成を有し、2つのNチャネルスイッチングトランジスタを含む。これらのスイッチングトランジスタ(NT2およびNT3)は、SOIトランジスタで構成されても良く、バルクトランジスタ(ウェル領域表面に形成されるトランジスタ)で構成されてもよく、また、トランスミッションゲートで構成されても良い。
スイッチングトランジスタ(NT2およびNT3)は、それぞれ、ポート選択信号/PRMXBおよび/PRMXAの活性化時(Lレベルのとき)非導通状態とされる。すなわち、ポート選択信号PRMXに対応するポート選択信号/PRMXAおよび/PRMXBに従って、読出ポートRPRTAおよびRPRTBがそれぞれ指定されるときに指定された読出ポートをセンスアンプ回路SAKに結合する。すなわち、読出ポートRPRTAが指定されたときには、ポート選択信号/PRMXAに従ってAポート読出ビット線RBLAがセンス読出ビット線RBLに結合される。逆に、読出ポートRPRTBが指定されたときには、ポート選択信号/PRMXAが非活性状態、ポート選択信号/PRMXBが活性状態とされ、Bポート読出ビット線RBLBが、センス読出ビット線RBLに接続される。
読出ゲート回路822において、センスアンプ回路SAK0およびSAK1に対して読出ゲートCSG0およびCSG1が設けられ、読出選択信号CSLに従って、センスアンプ回路SAK0およびSAK1の供給するセンスデータに応じた電流を、それぞれ、対応のグローバル読出データ線RGL0およびRGL1に供給する。これらのグローバル読出データ線RGL(RGL0およびRGL1)は、図145に示すサブアレイブロックBK0−BKsに共通に設けられ、図145に示すADC帯12に読出電流を伝達する。
図147においては、読出ゲート回路22の読出ゲートCSGから、相補データがグローバル読出データ線に対して転送されるように示す。しかしながら、本実施の形態においては、グローバル読出データ線RGLに供給される電流を利用して演算処理を実行する。センスアンプ回路SAKのセンスノードの負荷を等しくするために、読出ゲートCSGにおいて、選択トランジスタが相補センスノードに対して配置される。
この図147に示すように、セルサブアレイ820においては、ユニット演算子セルUOE00,…,UOE01…が並行して選択状態に駆動され、また、ダミーセルDMC0、DMC1…についても、ダミーセル選択信号DCLAおよびDCLBのいずれかに従って選択的に参照電流を対応の補の読出ビット線ZRBL0およびZRBL1に供給する。したがって、セルサブアレイ820において、1エントリ(1行)のユニット演算子セルUOEのデータの並列読出が行なわれ、また並列書込が実行される。
図148は、図147に示すセンスアンプ回路SAK(SAK0,SAK1)の構成の一例を示す図である。図148においては、ビット線周辺回路として配置されるビット線プリチャージ/イコライズ回路BLEQの構成を併せて示す。各読出ビット線に対して設けられるセンスアンプ回路は、同一構成を有するため、図148においては、センス読出ビット線RBL0,ZRBL0に対して設けられるセンスアンプ回路SAK0の構成を代表的に示す。
センスアンプ回路SAK0は、センスアンプSA0および電流源回路26<0>を含む。センスアンプSA0は、交差結合されるNチャネルSOIトランジスタおよび交差結合されるPチャネルSOIトランジスタと、センスアンプ活性化信号/SOPおよびSONに従って選択的に導通するセンス活性化PチャネルSOIトランジスタおよびセンス活性化NチャネルSOIトランジスタを含む。センス活性化SOIトランジスタの導通時に、センス電源ノード(交差結合されるSOIトランジスタが結合される電源ノード)にセンス電源電圧VBLおよび接地電圧を供給する。センス電源電圧VBLは、電源電圧VCCレベルであっても良く、中間電圧レベルであっても良い。センス電源電圧VBLは、読出ワード線の選択時の電圧レベルであればよい。
このセンスアンプSA0は、図6に示すセンスアンプSAと同様、交差結合型のセンスアンプであり、活性化時、センス読出ビット線RBL0およびZRBL0上の電位差を差動的に増幅する。センスアンプSA0は、ゲートとボディ領域とが結合されるSOIトランジスタで構成されてもよい。また、センスアンプSAとしては、センス読出ビット線RBLおよびZRBLを流れる電流のミラー電流を生成するカレントミラー動作を利用する電流検出型のセンスアンプが用いられても良い。
電流源回路826<0>は、センス読出ビット線RBL0およびZRBL0上の電位をそれぞれ反転するインバータバッファ827aおよび827bと、インバータバッファ827aの出力信号に従って選択的に導通するPチャネルトランジスタPT1と、インバータバッファ827bの出力信号に従って選択的に導通するNチャネルトランジスタNT1を含む。これらのトランジスタPT1およびNT1は、一例として、センスアンプSA0を構成するトランジスタと同一構造のSOIトランジスタで構成される。
インバータバッファ827aおよび827bは、センス読出ビット線RBLおよびZRBLのハイ側電源電圧が電圧VBLであり、この電圧VBLを電源電圧VCCレベルに変換して、電流供給用の充電用のトランジスタPT1を確実にオフ状態に設定し、また、放電用のトランジスタNT1を確実にオン状態に設定するために設けられる。従って、これらのインバータバッファ827aおよび827bは、レベル変換機能を有するインバータバッファで構成される。
また、先に図147を参照して説明したように、補のグローバル読出データ線は利用されない。インバータバッファ827bは、センスアンプSA0のセンスノード、すなわちセンス読出ビット線RBLおよびZRBLの負荷を等しくするために利用される。このインバータバッファ827bは、単にセンスアンプの負荷イコライズ用のダミーとして配置されるように、常時非活性状態に維持されても良い。
電流供給用のトランジスタPT1は、センス読出ビット線ZRBL0の電位が、Hレベルのときに、インバータバッファ827aの出力信号に従って導通し、電源ノードから一定の大きさの電流を内部出力ノード828aを介して供給する。放電用のトランジスタNT1は、補のセンス読出ビット線RBL0の電位が、Lレベルのときに、インバータバッファ827bの出力信号に従って導通し、内部出力ノード828bを接地電圧レベルに放電する。
読出ゲートCSG0において内部出力ノード828bが、グローバル読出データ線に結合されるように示す。しかしながら、この内部出力ノード828bからの電流は、演算には利用されない。演算実行時、補のグローバル読出データ線を接地電圧に固定して、グローバル読出データ線RGLに対するシールド線として利用させる。また、この場合、補のグローバル読出データ線は、本実施の形態においては、演算には利用されないため、読出ゲートCSGにおいて、グローバル読出データ線RGLに対してのみ選択ゲートが配置されても良い。
この電流源回路826<0>は、センス読出ビット線ZRBL0およびRBLの電位がそれぞれ、Hレベル(電圧VBLレベル)およびLレベル(接地電圧レベル)の時には、トランジスタPT1およびNT1がともに、インバータバッファ827aおよび827bの出力信号に従って、オフ状態となり、出力ハイインピーダンス状態となる。
センス動作については、後に詳細に説明するが、ダミーセルから供給される電流が、ユニット演算子セルから供給される電流よりも大きいときには、補のセンス読出ビット線ZRBL0の電位がHレベルとなり、電流源回路26<0>は、電流の供給を停止する。一方、ダミーセルから供給される電流が、ユニット演算子セルから供給される電流よりも小さいときには、補のセンス読出ビット線ZRBL0の電位がLレベルとなり、電流源回路826<0>は、充放電電流供給源として機能する。
ビット線プリチャージ/イコライズ回路BLEQ0は、図6に示す構成と同様、ビット線プリチャージ指示信号BLPに従って、センス読出ビット線ZRBL0およびRBL0に、ビット線プリチャージ電圧VPCを供給する。このビット線プリチャージ電圧VPCは、ユニット演算子セルUOE内のNチャネルSOIトランジスタ(NQ1およびNQ2)の読出ポートとボディ領域の間のPN接合が、そのボディ領域の電圧レベルに拘わらず非導通状態に維持される電圧レベルである。
読出ゲートCSG0は、図147に示す構成と同様であり、読出選択信号(演算子セルサブアレイブロック選択信号)CSLに従って、内部出力ノード828aを、グローバル読出データ線RGL0に結合する。内部出力ノード828bが、また、補のグローバル読出データ線に結合され、補のグローバル読出データ線が、演算実行時にシールド線として利用されても良い。また、センスアンプSAのセンスノード(センス読出ビット線)と充放電トランジスタ827aおよび827bとは、分離されているため、この内部出力ノード828bに対しては読出ゲートCSG内において選択ゲートは設けられなくても良い。
なお、センスアンプ帯822に含まれるセンスアンプSA0、ビット線プリチャージ/イコライズ回路BLEQ0および読出ゲートCSG0を構成するトランジスタは、SOIトランジスタでなく、通常の半導体基板表面に形成されるバルク型のMOSトランジスタで構成されてもよい。
センス読出ビット線ZRBL1およびRBL1に対しても、同様に、センスアンプSA1、電流源回路826<1>、ビット線プリチャージ/イコライズ回路BLEQ1および読出ゲートCSG1が設けられる。センスアンプSA0、SA1は、共通にセンスアンプ活性化信号/SOPおよびSONに応答して選択的に活性化され、また、ビット線プリチャージ/イコライズ回路BLEQ0およびBLEQ1も、同様ビット線プリチャージ指示信号BLPの活性化時活性化される。読出ゲートCSG0およびCSG1についても、読出選択信号CSLに従って導通する。
図149は、ポートA選択時のユニット演算子セルとダミーセルの接続態様を概略的に示す図である。このポートAの接続時においては、ソース線SLとセンス読出ビット線RBLの間に、SOIトランジスタ(NQ1)が1つ接続される。一方、ダミーセルDMCにおいても、ダミーセル選択信号DCLAに従って、基準電圧源と補の読出ビット線ZRBLの間に、ダミートランジスタDTAが接続される。
ユニット演算子セルUOEの記憶データ読出時のビット線RBLおよびZRBLの電位変化は、実施の形態1と同様、図11に示すビット線電位変化が、ユニット演算子セルの記憶データに応じて現れる。なお、以下の説明においても、SOIトランジスタNQ1およびNQ2がしきい値電圧の高い状態をデータ“0”を記憶する状態に対応付け、しきい値電圧の低い状態をデータ“1”を記憶する状態に対応付ける。
ソース線SL上の電圧はたとえば電源電圧VCCレベルであり、ダミーセルDMCに供給される基準電圧Vrefよりも高い電圧レベルである。すなわち、基準電圧Vref(電圧源とその電圧を同一参照符号で示す)は、ソース線SLに供給される電圧(電源電圧VCCレベル)とビット線プリチャージ電圧VPCの間の電圧レベルである。SOIトランジスタNQ1がデータ“0”を格納している場合、そのしきい値電圧は大きく、電流量は少ない。一方、SOIトランジスタNQ1がデータ“1”を格納している場合、そのしきい値電圧は低く、大きな電流を流す。
したがって、SOIトランジスタNQ1が、データ“1”を記憶している場合、ユニット演算子セルUOEからの電流量が、ダミーセルDMCからの電流量よりも大きく、センス読出ビット線RBLの電位は、補のセンス読出ビット線ZRBLの電位よりも高くなる。
一方、SOIトランジスタNQ1がデータ“0”を格納している場合、ダミーセルDMCが補のセンス読出ビット線ZRBLへ供給する電流量が、ユニット演算子セルUOEが供給する電流量よりも大きくなり、補のビット線ZRBLの電位がビット線RBLの電位よりも高くなる。
この状態で、センスアンプ活性化信号/SOPおよびSONをLレベルおよびHレベルに立上げ、センスアンプSAを活性化する。センス読出ビット線RBLおよびZRBLに読出されたデータ(電位または電流量)が、センスアンプSAにより差動増幅される。
実施の形態1におけるセンス動作と同様、センスアンプSAのハイ側電源電圧VBCのレベルの電圧が、センス読出ビット線RBLおよびZRBLのいずれかに伝達されても、SOIトランジスタNQ1およびNQ2およびダミートランジスタのボディ領域におけるPN接合が順バイアスされてボディ領域に電荷が流入するのは回避され、記憶データの破壊を生じさせることなく、正確に、センス動作を行なうことができる。
このセンスアンプSAの出力信号を電流源回路826において受け、センスアンプSAの出力信号、すなわち、センス読出ビット線RBLおよびZRBLの電位に従って、選択的に、トランジスタPT1およびNT1が、オン状態となる。ただし、トランジスタNT1は、常時、非導通状態に維持されていても良く、また、インバータバッファ827bが、常時、非活性状態に維持されていても良い。
この後、図147に示す読出ゲートCSGを読出選択信号CSLにより選択して、対応のグローバル読出データ線RGLに対して、センスアンプSAの出力信号に応じた電流の供給を行う。
なお、実施の形態1の場合と同様、データの読出は、非破壊読出であり、記憶データの再書き込みを行うリストア期間は要求されない。したがって、センスアンプ動作前に読出ワード線RWLAが、非選択状態に駆動されても良い。リストア期間をなくすことにより読出サイクルを短縮することができる。
図150は、ユニット演算子セルのポートA選択時のセンス読出ビット線と電流源回路との状態の対応を一覧にして示す図である。図150に示すように、Aポート選択時においては、記憶ノードSNAの記憶データが、それぞれ、“0”および“1”のとき、センスアンプSAにより増幅されたセンス読出ビット線RBLの電位は、“0”および“1”となり、電流源回路は、記憶ノードSNAの記憶データが“1”の時にオン状態となって、対応のグローバル読出データ線に電流を供給し、記憶データが“0”の時には、オフ状態となって電流の供給を停止する。従って、ユニット演算子セルの記憶ノードSNAの記憶データに応じた電流を対応のグローバル読出データ線に供給することができる。本実施の形態17においては、このグローバル読出データ線RGLの電流を加算することにより、加算処理を実行する。
図151は、図145に示すADC帯812の構成を概略的に示す図である。この図151おいては、また、メモリセルアレイ810の配置も併せて示す。メモリセルアレイ810は、複数の演算単位ブロックOUBa−OUBnに分割される。演算単位ブロックOUBa−OUBnそれぞれにおいて、グローバル読出データバスRGBa−RGBnが配設される。これらのグローバル読出データバスRGBa−RGBnは、それぞれ、対応の演算単位ブロックOUBa−OUBnに含まれるサブアレイブロック(BK0−BKn)に共通に配設される。グローバルデータバスRGBa−RGBnは、各々、グローバ読出データ線RGL0−RGLkを含む。演算単位ブロックOUBa−OUBnそれぞれにおいて、演算を実行する。
ADC帯812において、グローバル読出データバスRGBa−RGBnそれぞれに対応して、電流合計線VMa−VMnが設けられる。これらの電流合計線VMa−VMnは、それぞれ、対応のグローバル読出データバスのグローバル読出データ線RGL0−RGLkに共通に結合される。補のグローバル読出データ線は、本実施の形態においては利用されない。
したがって、グローバル読出データバスRGBa−RGBnの各グローバル読出データ線RGL0−RGLkに読出された電流が、電流合計線VMa−VMnにより加算され、この加算電流値に応じて、電流合計線VMの電圧レベルが変化する。
ADC帯812においては、また、グローバル読出データバスRGBa−RGBnそれぞれに対応して、MビットADC(アナログ/デジタル変換器)835a−835nが設けられる。これらのMビットADC835a−835nは、電流合計線VMa−VMnそれぞれにおいて合計された電流値に対応するアナログ電圧をMビットデジタル信号に変換する。
この構成において、この演算単位ブロックOUBa−OUBnそれぞれにおいて並列して、メモリセルの記憶データに対する演算処理が実行され、その演算結果が、電流合計線VMa−VMnに生成され、MビットADC835a−835nにより、それぞれMビットデジタルデータDa−Dnが、並行して生成される。
この演算処理時に、たとえば加算/減算処理を実行する場合、キャリー/ボローを生成する必要がなく、高速で演算処理を実行することができる。
図152は、図151に示すMビットADC835a−835nの構成の一例を概略的に示す図である。これらMビットADC835a−835nは、同一構成を有するため、図152においては、ADC835を、これらのMビットADC835a−835nの代表として示す。
図152において、ADC835は、基準電源ノード840と接地ノードの間に直列に接続される抵抗素子841a−841uと、これらの抵抗素子それぞれに対応して設けられる比較器842a−842uと、それぞれ、隣接する2つの比較器の出力信号を受けるゲート回路843a−843tと、ゲート回路843a−843tの出力信号をエンコードし、最終MビットのデジタルデータQ<M−1:0>を生成するエンコーダ844とを含む。
基準電源ノード840へは、このA/D変換(アナログ/デジタル変換)のために利用される変換基準電圧VREF_ADCが、チューナブル電圧発生回路845から与えられる。抵抗素子841aおよび841uは、抵抗値R/2を有し、抵抗素子841b−841tは、各々、抵抗値Rを有する。これらの抵抗素子841aおよび841uの抵抗値を、他の抵抗素子841b−841tの抵抗値よりも小さくすることにより、最大デジタル変換値に対応する電流合計線VM上に与えられる電圧値を、できるだけ、変換基準電圧VREF_ADCに近づけ、その最小デジタル変換値に対応する電圧の最小値を、できるだけ接地電圧レベルに近づける。
比較器842a−842uは、それぞれ、対応の抵抗素子841a−841uの低電位側ノードの電位を正入力に受け、電流合計線VM上の電圧を負入力に受ける。
ゲート回路843a−843tの各々は、抵抗網841a−841uにより生成される電圧ステップの1ステップ上位側の比較器842a−842tの出力信号と対応の比較器842b−842uの出力信号とを受ける。これらのゲート回路843a−843tの各々は、1ステップ上位側の比較器の出力信号がHレベルでありかつ対応の比較器の出力信号がLレベルのときに、Lレベルの信号を出力する。たとえば、ゲート回路843aは、比較器842aの出力信号がHレベルであり、かつ比較器842bの出力信号がLレベルのときに、Lレベルの信号を出力する。従って、ゲート回路843a−843tは、比較器842a−842uの出力信号列における“0”から“1”への変化点を検出する。
エンコーダ844は、これらのゲート回路843a−843tの出力信号列に従って、この検出された変化点に対応するMビットデジタルデータQ<M−1:0>を生成する。
図153は、図152に示すADC835の抵抗網の具体的構成の一例を示す図である。図153においては、このADC835が、4ビットADCの場合の抵抗網の構成を示す。図153において、変換基準電源ノード840と接地ノードの間に抵抗素子ZZ15−ZZ0が直列に接続される。これらの抵抗素子ZZ15−ZZ0は、図152に示す抵抗素子841a−841uに対応する。
これらの抵抗素子ZZ0−ZZ14の高電位側の接続ノードから基準電圧VVREF0−VVREF14が生成される。これらの基準電圧VVREF0−VVREF14と電流合計線VM上の電圧とが、図152に示す比較器842a−842uにより並行して比較される。基準電圧VVREF0−VVREF14が、それぞれ、デジタル値(0000)−(1110)の上限電圧レベルを規定する。比較器842a−842uは、電流合計線VM上の電圧レベルが、対応の基準電圧VVREFi(i=0−14)よりも高いときにLレベルの信号を生成する。
たとえば、図153において、電流合計線VM上の電圧が、基準電圧VVREF10およびVVREF11の間にあった場合を考える。この場合、図153に示すように、基準電圧VVREF14−VVREF11を正入力に受ける比較器42の出力信号は、“1”(Hレベル)となる。一方、基準電圧VVREF10−VVREF0を受ける比較器842においては、その出力信号は“0”(Lレベル)となる。したがって、この基準電圧VVREF11およびVVREF10に対して設けられる比較器の出力信号を受けるゲート回路843の出力信号が“0”となり、残りのゲート回路の出力信号は“1”となる。エンコーダ844で、ゲート回路843a−843tにおいて“0”を生成するゲート回路を識別することにより、この電流合計線VM上の電圧が、基準電圧VVREF11およびVVREF10の間にあると識別でき、データ(1011)を生成する。
すなわち、図152に示すADC835においては、電流合計線VM上の電圧が存在する基準電圧範囲に対応する抵抗素子の位置を、ゲート回路843a−843tにより識別し、エンコーダ844により、その識別された抵抗素子の位置に応じたデジタル値を生成する。
なお、この比較器842a−842uは、変換活性化信号ADCENに従って活性化されて比較動作を開始する。また、電流合計線VMは、プリチャージ指示信号PRGに従って導通するプリチャージトランジスタ847により、変換動作前には、接地電圧レベルにプリチャージされる。
また、エンコーダ844の構成として、たとえばレジスタファイルが用いられ、“0”のビットに対応するレジスタの内容を読出す構成が利用されれば良い。また、図152においては、並列変換型(フラッシュ型)ADCが用いられているものの、出力データ1ビット当たり1つの単位変換回路が配置され、これらの単位変換回路が縦続接続されるパイプライン型ADCが用いられても良い。
図154は、図153に示すデータパス814の構成を概略的に示す図である。図154においては、1つの演算単位ブロックOUBに対するデータパスの構成を示す。また、本実施の形態17においては、グローバル書込データ線WGLBは利用されないため、その状態は「ドントケア」であり、従って、Bポート用のグローバル書込データ線の配置は示していない。
図154において、データパス814において、入力データのビット位置に応じた数の書込ドライバWDRが各書込データビットに対して設けられる。すなわち、最下位データビットD<0>に対しては、グローバル書込ドライバWDR00が設けられ、データビットD<1>に対しては、2つのグローバル書込ドライバWDR10およびWDR11が設けられる。データビットD<2>に対しては、グローバル書込ドライバWDR20−WDR23が設けられ、データビット<3>に対しては、8個のグローバル書込ドライバWDR30−WDR37が設けられる。以下、データビットD<n>に対しては、2のn乗のグローバル書込ドライバWDRが設けられる。
これらのグローバル書込ドライバWDRが、対応して配置されるグローバル書込データ線WGLAを駆動する。すなわち、グローバル書込ドライバWDR00は、グローバル書込データバスWGB0を構成するグローバル書込データ線WGLA00を駆動し、グローバル書込ドライバWDR10およびWDR11は、グローバル書込データバスWGB1を構成するグローバル書込データ線WGLA10およびWGLA11を駆動する。グローバル書込ドライバWDR20−WDR23は、グローバル書込データバスWGB2を構成するグローバル書込データ線WGLA20−WGLA23を駆動する。グローバル書込ドライバWDR30−WDR37は、それぞれ、グローバル書込データバスWGB3を構成するグローバル書込データ線WGLA30−WGLA37を駆動する。
グローバル書込データ線WGLAは、複数のサブアレイブロックに共通に設けられる。図154においては、1つのサブアレイブロックのセルサブアレイ820を代表的に示す。これらのグローバル書込データ線WGLAは、対応の列に配置されるユニット演算子セルの書込ポート(WPRTA)に結合される。
データ書込時、書込データビットは、そのビットの桁の重みに応じた数のグローバル書込データ線を介して転送されて対応のメモリセルに書込まれる。
データ読出時、ユニット演算子セルの記憶データを並行して読出すことにより、1つの演算単位ブロックOUBにおいて、書込データのビットの位置(桁)に応じたグローバル読出データ線が駆動され、それぞれの桁の重みが付けられたセンス電流(Is)が供給される。したがって、演算単位ブロックOUBにおいて、異なるエントリ(エントリは行方向に整列するメモリセルで構成される)のデータを並行して読出すことにより、グローバル読出データ線に、これらの並行して読出されたエントリのメモリセルの記憶データの合計電流が流れ、電流合計線には、例えば、アナログ電流加算値が生成される。これにより、キャリー確定などの時間を待つことなく、高速で、たとえば加算結果を得ることができる。
図155は、この発明の実施の形態17に従う半導体信号処理装置における加算演算操作の具体的一例を示す図である。図155においては、4ビット入力データDIN♯0−DIN♯mが加算される。この加算結果が、ADC帯のADCによりMビットデータに変換されて出力される。加算操作においては、ビット値“1”が演算に意味を持つ。ユニット演算子セルの記憶データビットが“1”のときに対応のグローバル読出データ線に電流が供給され、記憶データビットが“0”の時には、対応のグローバル読出データ線には電流は供給されない。従って、このグローバル読出データ線の電流を加算することにより、加算対象のデータの加算値に対応する電流量が得られ、電流合計線において合計電流に対応する電圧値が得られる。
図156は、この図155に示す加算操作時の読出時の電流の流れを模式的に示す図である。この図156に示すように、サブアレイブロックBK0−BKmの演算単位ブロックOUBaに、これらの演算対象のデータDIN♯0−DIN♯mが、それぞれ書込まれる。このデータ書込時、図154に示すデータパスを利用し、各入力データDIN♯0−DIN♯mそれぞれについて、ビットの重み付けを行なった数のグローバル書込データ線WGLAを介して、ユニット演算子セルの記憶ノードSNAに対するデータの書込が行なわれる。
入力データDIN♯0−DIN♯mを、それぞれ、サブアレイブロックBK0−BKmに書込んだ後、これらのサブアレイブロックBK0−BKmに対するデータの読出を行なう。すなわち、サブアレイブロックBK0−BKmのセルサブアレイ820において、ポート接続回路によりAポートを選択し、ポートA読出ビット線を対応のセンスアンプに結合し、データDIN♯0−DIN♯mをそれぞれ記憶するユニット演算子セルの記憶ノードSNAのデータの読出が行なわれる。ダミーセルからの補の読出ビット線ZRBLの電流とセンス読出ビット線RBLの電流に従って、センスアンプ帯822/読出ゲート回路824に含まれるセンスアンプ回路SAKにより、電流の選択的供給が行なわれ、センスアンプ回路SAKからの読出データに応じたセンス電流が読出ゲート回路824の読出ゲートCSGを介して対応のグローバル読出データ線RGLに供給される。
このサブアレイブロックBK0−BKmにおけるメモリセルデータの読出およびセンスアンプ回路SAKの活性化のタイミングは、順次ずらされてもよく、または並行して行なわれてもよい。
次いで、サブアレイブロックBK0−BKmに対する読出選択信号CSL<0>−CSL<m>をすべて選択状態に駆動する。応じて、センスアンプ帯/読出ゲート回路822/824に含まれる読出ゲートCSGがすべてサブアレイブロックBK0−BKmにおいて導通し、グローバル読出データ線RGL0−RGL3、…に対して、対応のセンスアンプ回路SAKからセンス電流が選択的に供給される。
すなわち、サブアレイブロックBK0からは、センス電流Is00−Is03、…が、グローバル読出データ線RGL0−RGL3、…上に読出され、サブアレイブロックBK1からは、センス読出電流Is10−Is13がグローバル読出データ線RGL0−RGL3上に読出される。同様、サブアレイブロックBKmにおいて、センス電流Ism0−Ism3が、それぞれグローバル読出データ線RGL0−RGL3上に選択的に供給される。
1つの演算単位ブロックOUBaにおいては、共通の電流合計線VM0に、グローバル読出データ線RGLが結合される。したがって、この電流合計線VM0において、これらのグローバル読出データ線RGL(RGL0−RGL3、…)に読出される電流が加算される。この電流加算において、各データビットの位置に応じた数の重み付けが、選択メモリセルの数に対して与えられている。この電流合計線VM0においては、読出動作前に、図示しない放電トランジスタ(図152のプリチャージトランジスタ847)により接地電圧レベルにプリチャージされており、これらのセンス電流によりその電圧レベルが上昇する。したがって、この電流合計線VM0に与えられる電流の合計電流は、図155に示す加算を実行する場合、次式で表わされる:
ΣIsij・2^k、
i=0−m,j=0−15,k=0−3、記号^は、べき乗を示す。
4ビットデータの加算が行なわれるため、グローバル読出データ線RGLとして、最下位ビット<0>の1本のグローバル読出データ線、第1ビット<1>の2本のグローバル読出データ線、第2ビット<2>の4本のグローバル読出データ線、および最上位ビット<3>の8本のグローバル読出データ線の合計15本のグローバル読出データ線が利用される。
この後、ADC帯812のADC835を利用して、アナログ/デジタル変換を行なうことにより、この電流合計線VM(VM0、VM1、…)上に現われるアナログ電流値をMビットで表現したデジタルデータが得られる。
この図156において、サブアレイブロックBK0−BKmの各演算単位ブロックOUBa、OUBb、…において、並行して加算操作をすることにより、複数の加算演算を並行して実行することができ、高速で加算結果を得ることができる。
なお、演算対象のデータは、4ビットに限定されず、他のビット数のデータの演算が実行されても良い。
図157は、この発明の実施の形態17に従う半導体信号処理装置の制御回路(818)の制御動作を示すフロー図である。以下、図157を参照して、この発明の実施の形態17に従う半導体信号処理装置の加算演算実行時の制御回路の動作について説明する。
まず、加算命令が与えられるのを待つ(ステップSP0)。加算命令が与えられると、まず、ブロックアドレスを初期化し、最初に書込まれるべきサブアレイブロックを設定する。次いで、入力データを取込み、図154に示すデータパスのグローバル書込ドライバWDRを介して書込データを転送し、指定されたサブアレイブロックにおいて書込ワード線WWLを選択状態に駆動して書込データを各ユニット演算子セルに書込む(ステップSP1)。
このデータ書込が完了すると、書込データは最終の書込データであるかの判定が行なわれる(ステップSP2)。まだ残りの書込データが存在する場合、ブロックアドレスを更新し、ステップSP1と同様にして、次のデータの書込を実行する(ステップSP3)。この後、再びステップSP2へ戻る。
ステップSP2において、最後のデータの書込が完了したと判定されると、この書込が行なわれた全対象のサブアレイブロックにおいて、ポートAを選択して、データ書込が行なわれたユニット演算子セルのデータの読出が行なわれ、センスアンプ回路が活性化される(ステップSP4)。このセンスアンプ回路の活性化は、すべての対象のサブアレイブロックにおい同時に並行して実行されてもよく、また、順次そのタイミングをずらせて実行されてもよい。なお、センス電流Isを正確に電流加算するために、図148に示す電流源回路826を活性化するタイミングは、すべての対象のサブアレイブロックにおいて同じに設定する必要がある。
センスアンプ回路の活性化時または読出選択信号CSLの活性化の前に電流合計線VMの接地電圧レベルへのプリチャージを完了するとともに、すべての対象のサブアレイブロックの読出ゲートをオン状態に駆動する(ステップSP5)。この対象のサブアレイブロックの読出ゲートをオン状態とするために、図156に示す読出選択信号CSL(CSL<0>−CSL<m>)が並行して選択状態へ駆動される。この場合、データ書込時、ブロックアドレスデコーダの出力信号に従って、書込ブロックフラグをセットし、この書込時に設定された書込ブロックフラグを読出時においても維持することにより、書込が行なわれたサブアレイブロックに対するデータの読出を、このフラグを参照することにより実行することができる。この書込ブロックフラグは、1つの演算サイクルが完了し、最終加算結果が生成された後にリセットされればよい。
この電流合計線VM上の電圧レベルが、供給電流により上昇すると、所定のタイミングで、変換活性化信号ADCENを活性化してADCを活性化して、A/D変換を行って、変換データを生成してを出力する(ステップSP6)。これらのステップSP4からSP6の処理が、1クロックサイクル内で実行される。
なお、この加算操作時に、演算されるデータの数が予め定められていれば、このデータの数に応じて、読出時、書込対象のブロックを並行して選択状態へ駆動することができる(入力演算データの数に応じて、読出ワード線駆動回路に対する並行活性化を実行する)。
ワード線アドレス(書込ワード線および読出ワード線アドレス)については特に説明していないが、これは、各サブアレイブロックにおいて同一位置のワード線が選択されればよく、書込時および読出時に同一行の書込/読出ワード線が選択される。
図158は、図152に示すチューナブル電圧発生回路845の生成する電圧VREF_ADCのチューニング動作を示すフロー図である。以下、図158を参照して、図152に示すチューナブル電圧発生回路845の電圧レベル調整動作について説明する。
まず、チューニング指示がテストモード時に与えられるのを待つ(ステップSP20)。このチューニング指示が与えられると、ブロックアドレスBAを初期値の“0”に設定し、また、入力データを(1111)に設定する。ここで、ADCとして、8ビットADCを想定している。このブロックアドレスBAが指定するブロックへデータ(1111)を書込む(ステップSP22)。この最初のセルアレイブロックへのデータ書込が完了すると、ブロックアドレスBAが“16(十進)”に到達したかの判定を行なう(ステップSP23)。ブロックアドレスBAは、“16(十進)”に到達していないため、ブロックアドレスBAを1増分し(ステップSP24)、再びステップSP22に戻り、次のブロックアドレスが指定するサブアレイブロックに対するデータ(1111)の書込を行なう。
ステップSP23において、ブロックアドレスBAが“16(十進)”に到達していると判定されると、最終のサブアレイブロックに対するデータ(1111)の書込が完了する。この場合、次いで、ブロックアドレスBAの0から16が指定するサブアレイブロックからデータを並行して読出し、ADCによりAD変換を行ない、変換結果を出力する(ステップSP25)。この説明の場合、17個のデータ(1111)の加算であり、そのADCの出力データが、(11111111)(=255(10進))であるかの判定を行なう(ステップSP26)。
出力データが、十進数で255を示す(11111111)でない場合には、変換出力値は、255よりも低い値を示しており、変換基準電圧VREF_ADCの電圧レベルは、所定値よりも高い電圧レベルにある。従って、変換基準電圧VREF_ADCの電圧レベルを低下させる(ステップSP27)。データは非破壊的に読出されており、書込データはユニット演算子セルに格納されている。従って、このステップSP27の後、再びステップSP25へ戻り、ブロックアドレスBAの0から16が指定するサブアレイブロックに対するデータ(1111)の読出AD変換、変換後のデータの出力および判定という、上述のステップSP26およびSP27の処理が実行される。
一方、ステップSP26において、変換後の出力データが(11111111)であると判定されると、この場合、変換基準電圧VREF_ADCが所定値よりも低下している場合があるため、再び、次のデータを用いたチューニングを実行する。すなわち、あるブロックアドレスBAを初期値の“1”に設定する(ステップSP28)。次に、このブロックアドレスBAが指定するサブアレイブロックに対しデータ(0001)を書込む(ステップSP29)。
次に、このブロックアドレスBAが、“15(十進)”に到達したかの判定が行なわれる(ステップSP30)。ブロックアドレスBAは、“15(十進)”に到達していないため、ブロックアドレスBAを1増分し、再びステップSP29に戻り、データ(0001)を書込む(ステップSP31)。一方、ステップSP30においてブロックアドレスBAが“15(十進)”に到達したと判定されると、次いで、書込時にブロックアドレスBAが指定したサブアレイブロック、すなわち、ブロックアドレスBA=1から15のサブアレイブロックのデータの読出、AD変換を行ない、かつ変換後のデータを出力する(ステップSP32)。
次いで、この読出された変換後の出力データが、(00001111)であるかの判定が行なわれる(ステップSP33)。この場合、出力されたデータが、(00001111)でない場合には、電圧レベルが低下し過ぎているため、この変換基準電圧VREF_ADCの電圧レベルの調整(電圧レベルの上昇)を行なう(ステップSP34)。この後、再び、ステップSP32に戻り、ブロックアドレスBAの0から15が指定するサブアレイブロックからデータ(0001)の読出、AD変換、および判定を実行する。
ステップSP33において、変換後の出力データが、(00001111)であると判定されると、この変換基準電圧VREF_ADCの調整が完了する。この場合、ステップSP33において、これらの、変換基準電圧VREF_ADCのレベルが微調整され、データの読出が行なわれ、AD変換に対するマージンの調整が行なわれてもよい。
なお、ステップSP28からSP33の処理において、初期ブロックアドレスを“0”に設定し、最終ブロックアドレスを“15(10進)”に設定し、変換出力値が、(0001000)(=16(10進))であるかの判定が行われても良い。
チューナブル電圧発生回路845の構成としては、一例として以下の構成が利用されれば良い。すなわち、基準電流を電圧に変換する抵抗網回路において、各抵抗と並列にスイッチング素子を設け、このスイッチング素子のオン/オフ状態に従って、抵抗網の抵抗値を調整することにより電圧レベルが調整される。
以上のように、この発明の実施の形態17に従えば、複数のサブアレイブロックから並列にメモリセルの記憶データを読出し、各読出データ線に対しては、データビットの位置に応じた重み付けを行なうようにその本数を設定し、そのうち電流の合計演算処理を行なっており、高速でキャリーを生成することなく加算演算を行なうことができる。
また、電流加算であり、高速で加算処理を行なうことができる。また、ADC変換の際に利用される変換基準電圧を調整可能としており、正確なA/D変換を保障することができる。
[実施の形態18]
図159は、ユニット演算子セルのBポート選択時のセンスアンプに対するトランジスタの接続態様を概略的に示す図である。図159において、ユニット演算子セルUOEにおいては、読出BポートRPRTB選択時、ソース線SLとセンス読出ビット線RBLの間にNチャネルSOIトランジスタNQ1およびNQ2が直列に接続される。同様に、ダミーセルDMCについても、ダミートランジスタDTB0およびDTB1が基準電圧源と補の読出ビット線ZRBLの間に直列に接続される。これらのセンス読出ビット線RBLおよびZRBLがセンスアンプSAに結合され、センスアンプSAによりこれらのセンス読出ビット線RBLおよびZRBLの電位差または電流差が増幅される。このセンスアンプSAの出力信号に従って電流源回路826が、内部出力ノード828aおよび828bに選択的に電流を供給する。
図160は、図159に示すユニット演算子セルおよびダミーセルの接続態様におけるデータ読出時の動作を示す信号波形図である。以下、図160を参照して、図159に示すユニット演算子セルUOEおよびダミーセルDMCの読出動作について説明する。
なお、以下の説明においても、SOIトランジスタNQ1およびNQ2が、しきい値電圧の高い状態をデータ“0”を記憶する状態に対応付け、しきい値電圧の低い状態をデータ“1”を記憶する状態に対応付ける。
プリチャージ期間においては、読出ビット線RBLおよび補の読出ビット線ZRBLは、図148に示すビット線プリチャージ/イコライズ回路BLEQにより、プリチャージ電圧VPCレベルにプリチャージされる。
読出サイクルが始まると、読出ワード線RWLAおよびRWLBとダミーセル選択信号DCLBが選択状態へ駆動される。ソース線SL上の電圧はたとえば電源電圧VCCレベルであり、ダミーセルDMCに供給される基準電圧Vrefよりも高い電圧レベルである。基準電圧Vrefは、例えば電源電圧VCCの1/2倍のVCC/2の電圧レベルである。SOIトランジスタNQ1およびNQ2の一方がデータ“0”を格納している場合、そのしきい値電圧は大きく電流量は少ない。一方、SOIトランジスタNQ1およびNQ2がデータ“1”を格納する場合、そのしきい値電圧は低く、大きな電流を流す。
したがって、SOIトランジスタNQ1およびNQ2が、ともにデータ“1”を記憶している場合(状態S(1、1))、ソース線SLから読出ポートRPRTBを介してセンス読出ビット線RBLに、大きな電流が流れる。ダミーセルDMCにおいては、ダミートランジスタDTB0およびDTB1を介して基準電圧源Vrefから補のセンス読出ビット線ZRBLに電流が流れる。基準電圧Vref(電圧源と供給される電圧を同一符号で示す)は、ソース線SLに供給される電圧(電源電圧VCCレベル)とビット線プリチャージ電圧VPCの間の電圧レベルである。この状態においては、ユニット演算子セルUOEからの電流量が、ダミーセルDMCからの電流量よりも大きく、センス読出ビット線RBLの電位は、補のセンス読出ビット線ZRBLの電位よりも高くなる。
一方、SOIトランジスタNQ1およびNQ2の少なくとも一方がデータ“0”を格納している場合(状態S(0、1)、S(1,0)、S(0、0))、ダミーセルDMCが補のセンス読出ビット線ZRBLへ供給する電流量が、ユニット演算子セルUOEが供給する電流量よりも大きくなる。この電流量の差により、センス読出ビット線RBLの電位は、補のセンス読出ビット線ZRBLの電位よりも低くなる。
この状態で、センスアンプ活性化信号(/SOPおよびSON)活性化して、センスアンプSAを活性化する。センス読出ビット線RBLおよびZRBLに読出されたデータ(電位または電流量)が、センスアンプSAにより差動増幅される。センスアンプSAのセンス動作は、先に図149を参照して説明した動作と同じである。この場合においても、センスアンプSAのハイ側電源電圧VBCのレベルの電圧が、センス読出ビット線RBLおよびZRBLのいずれかに伝達されても、SOIトランジスタNQ1およびNQ2およびダミートランジスタのボディ領域におけるPN接合が順バイアスされてボディ領域に電荷が流入するのは回避され、記憶データの破壊を生じさせることなく、正確に、センス動作を行なうことができる。
電流源回路826は、センスアンプSAの出力信号(センス読出ビット線RBLの電位)がHレベルの時に内部出力ノード828aへ電流を供給し、センスアンプSAの出力信号(センス読出ビット線RBLの電位)がLレベルのときには、電流源回路826は、出力ハイインピーダンス状態となる。
図147に示す読出ゲートCSGを読出選択信号CSLにより選択して、対応のグローバル読出データ線を介してADC帯の対応のADCへ電流を供給する。
図161は、図160に示すユニット演算子セルUOEおよびダミーセルDMCの選択態様における記憶データとセンスアンプの出力信号の論理値と電流源回路の状態の関係を一覧にして示す図である。
図161に示すように、SOIトランジスタNQ1およびNQ2がともにデータ“1”を格納している状態S(1、1)のときのみ、ユニット演算子セルは、ダミーセルDMCよりも大きな電流を供給するため、センスアンプの出力信号、センス読出ビット線RBLの電位は、“1”となる。一方、SOIトランジスタNQ1およびNQ2の少なくとも一方がデータ“0”を格納している状態S(0、0)、S(1、0)およびS(0、1)の場合には、センスアンプSAの出力信号は、“0”となる。
このセンスアンプSAの出力信号は、SOIトランジスタNQ1およびNQ2の記憶ノードSNAおよびSNBの格納データのAND演算結果を表わしている。また、電流源回路826は、センスアンプSAの出力信号が、“1”のときにオン状態となって電流を供給し、センスアンプSAの出力信号が“0”の時にはオフ状態となって電流の供給を停止する。従って、ユニット演算子セルの記憶ノードSNAおよびSNBの記憶データのAND演算結果に応じて電流が対応のグローバル読出データ線に供給される。
このようにして、装置外部にデータを読出すことなく、内部でユニット演算子セルの記憶データを読出すだけで、記憶データの論理演算を実行して演算結果を得ることができる。この構成を利用して、本実施の形態17においては、実施の形態8と異なる態様で、積和演算を実行して乗算を行う。
図162は、この発明の実施の形態18において実行される乗算の具体的一例を示す図である。図162に示すように、一例として、4ビット被乗数X<3:0>および4ビット乗数Y<3:0>の乗算を行なう。乗算実行時においては、被乗数X<3:0>の各ビットを、乗数Y<3:0>の各ビットと乗算して部分積PP1およびPP4を生成し、これらの部分積PP1−PP4を桁合せして加算することにより、最終積P<7:0>を生成する。この部分積PP1−PP4を、図161に示すAND演算を利用して生成し、電流加算により、部分積PP1−PP4の加算を行なって最終積を生成する。グローバル書込データ線WGLAおよびWGLBとデータビットとの対応は、実施の形態17と同様である。数値データの各ビットの位置に応じて重み付けが行われて、書込データが転送されて対応のユニット演算子セルの記憶ノードSNAおよびSNBに格納される。
図163は、この発明の実施の形態18に従う半導体信号処理装置のデータパス814の構成を概略的に示す図である。図163においては、一例として、8ビットADCが用いられる場合の構成を示す。演算単位ブロックOUBにおいて、書込グローバルデータバスWDB0−WDB6が設けられる。グローバル書込データバスWGB0は、1つのグローバル書込データ線対WGLPを含み、グローバル書込データバスWGB1は、2本のグローバル書込データ線対WGLPを含む。このグローバル書込データ線対WGLPは、図147に示すように、Aポートグローバル書込データ線WGLAと、Bポートグローバル書込データ線WGLBとを含む。以下、グローバル書込データバスWGBiは、2のi乗のグローバル書込データ線対WGLPを含む。ここで、iは、2から6のいずれかの整数である。
このグローバル書込データ線対WGLPそれぞれに対し、グローバル書込ドライバWDRA/Bが設けられ、グローバル書込データバスWGB0−WGB6に、それぞれ、与えられたデータビットを転送する。このグローバル書込ドライバWDRA/Bは、Aポートグローバル書込データ線WGLAに対して設けられるグローバル書込ドライバWDRAと、Bポートグローバル書込データ線WGLBに対して設けられるグローバル書込ドライバWDRBとを含む。
グローバル書込データバスWGBkに対して設けられるグローバル書込ドライバWDRA/Bは、入力データの第k桁のデータビットを転送する。kは、0から6のいずれかの整数である。従って、入力データビットに対し、対応のビット位置の桁の重みが付された書込データが生成されて対応のグローバル書込データ線を介して書込データが転送される。
このグローバル書込データバスWGB0−WGB6に対し、スイッチボックス852とレジスタ回路850a−850dおよび851a−851dが設けられる。レジスタ回路850a−850dは、それぞれ与えられた入力データビットDINA<0>−DINA<3>を保持する。レジスタ回路851a−851dは、それぞれ、与えられた入力データビットDINB<0>−DINB<3>を保持する。
スイッチボックス852は、レジスタ回路850a−850dに対応して配置される入力ノードEA0−EA3およびEA4−EA7と、レジスタ回路851a−851dに対応して配置される入力ノードEB0−EB3およびEB4−EB7と、入力側に配置される接地線855と、グローバル書込データバスWGB0−WGB6それぞれに対応して設けられる出力ノードFA0−FA6およびFB0−FB6とを有する。図163においては、図面を簡略化するために、入力ノードEAiおよびEBiの組を、入力ノードEiとして示し、また出力ノードFAiおよびFBiの組を、出力ノードFiとして示す。
スイッチボックス852においては、ポートAおよびポートBそれぞれに対してデータビットの転送経路が、スイッチ制御信号SWCAおよびSWCBにより設定される。
データクロック信号DCLKに従って、スイッチボックス852は、出力ノードF0−F6と入力ノードE0−E7との間の接続経路を切換える。このスイッチボックス852の切換動作により、入力データビットDINA<3:0>が、順次1ビットずつ上位方向にシフトされてグローバル書込データバスに転送され、また、入力データビットDINB<3:0>が、1ビットづつ順次選択されて、また、そのビット位置がシフトされて転送される。
図162に示すように、4ビット被乗数X<3:0>および4ビット乗数Y<3:0>の乗算を行なう場合、以下の手順で乗算を実行する。すなわち、乗算実行時においては、被乗数X<3:0>の各ビットを、乗数Y<3>−Y<0>の各ビットと乗算して部分積PP1からPP4を生成し、これらの部分積PP1−PP4を桁合せして加算することにより、最終積P<7:0>を生成する。この部分積PP1−PP4を、図161に示すユニット演算子セルの記憶データに対するAND演算を利用して生成し、電流加算により、部分積PP1−PP4のアナログ加算を行なって最終デジタル積を生成する。以下、図164から図171を参照して、演算データの書込動作について具体的に説明する。なお、図164から図171においては、図面を簡略化するために、ポートAに対するデータの転送経路とポートBに対するデータの転送経路を、別々の図面を用いて示す。
図164において、レジスタ回路850a−850dに、データクロック信号DCLKに従って被乗数ビットX<0>−X<3>がそれぞれ格納される。レジスタ回路850a−850dには、次にリセット(図示せず)指示が与えられまで、その格納データは維持される。レジスタ回路850a−850dは、スイッチボックス852において、それぞれ、入力ノードEA0−EA3およびEA4−EA7にそれぞれ結合されている。この状態において、スイッチ制御信号SWCAにより、スイッチボックス852の出力ノードFA0−FA3を、それぞれ入力ノードEA0−EA3に結合する。出力ノードFA4−FA6は、それぞれ接地線855に結合する。この状態で、グローバル書込ドライバWDRAを活性化し、各グローバル書込データバスWGB0−WGB6上に、スイッチボックス852を介して転送されたデータを転送する。したがって、この場合においては、グローバル書込データバスWGB0−WGB3に、それぞれ被乗数ビットX<0>−X<3>が転送される。グローバル書込データバスWGB4−WGB6には、データ“0”が転送される。
一方、レジスタ回路851a−851dに対しては、図165に示すように、データクロック信号DCLKに従って乗数ビットY<0>−Y<3>がそれぞれ格納される。レジスタ回路50a−50dと同様、レジスタ回路51a−51dには、次にリセット(図示せず)指示が与えられまで、その格納データは維持される。レジスタ回路851a−851dは、スイッチボックス852において、それぞれ、入力ノードEB0−EB3およびEB4−EB7に結合されている。この状態において、スイッチ制御信号SWCBにより、スイッチボックス852の出力ノードFB0−FB3を、それぞれ入力ノードEB0に結合する。出力ノードFB4−FB6は、それぞれ接地線855に結合する。この状態で、グローバル書込ドライバWDRBを活性化し、各グローバル書込データバスWGB0−WGB6上に、スイッチボックス852を介して転送されたデータを転送する。したがって、この場合においては、グローバル書込データバスWGB0−WGB3に、それぞれ乗数ビットY<0>が転送される。グローバル書込データバスWGB4−WGB6には、データ“0”が転送される。
これらの被乗数データX<3:0>および乗数データビットY<0>が、グローバル書込データバスWGB0−WGB3を介して転送されると、書込対象の最初のサブアレイブロック♯0において書込ワード線を活性化して、ユニット演算子セルの記憶ノードSNAおよびSNBへデータを書込む。
最初の書込サイクルが完了すると、ポートAについては、図166に示すように、スイッチ制御信号SWCAにより、スイッチボックス852の接続経路を切換える。この場合、入力ノードEA0−EA3が、それぞれ出力ノードFA1−FA4に結合され、出力ノードFA0、FA5およびFA6が、それぞれ接地線855に結合される。レジスタ回路850a−850dの格納データビットは、変化しない。したがって、グローバル書込ドライバWDRAにより、グローバル書込データバスWGB1−WGB4に対し被乗数ビットX<0>−X<3>が転送され、グローバル書込データバスWGB0、WGB5およびWGB6にはデータ“0”が転送される。
一方、ポートBについては、図167に示すように、スイッチボックス852の接続経路をスイッチ制御信号SWCBにより切換える。この場合、入力ノードEB1が、それぞれ出力ノードFB1およびFB2に結合され、入力ノードEB5が、出力ノードFB3およびFB4に結合される。これらの入力ノードEB1およびEB5は、ともに、乗数データビットY<1>を格納するレジスタ回路851bに結合される。出力ノードFB0、FB5およびFB6が、それぞれ接地線855に結合される。レジスタ回路851a−851dの格納データビットは、変化しない。したがって、グローバル書込ドライバWDRBにより、グローバル書込データバスWGB1−WGB4に対し乗数ビットY<1>が転送され、グローバル書込データバスWGB0、WGB5およびWGB6にはデータ“0”が転送される。
これらのデータX<3:0>およびY<1>が並行してグローバル書込データバスWGB1−WGB4を介して転送されると、次の書込対象のサブアレイブロック♯1において書込ワード線が選択状態に駆動され、転送データの書込が対応のユニット演算子セルの記憶ノードSNAおよびSNBに対して実行される。これにより、サブアレイブロック♯1においては、サブアレイブロック♯0に対し、1ビット上位方向へシフトされた後の被乗数データX<3:0>および乗数データビットY<1>が格納される。
次に、ポートAについて、図168に示すように、スイッチ制御信号SWCAを変化させ、スイッチボックス852の接続経路を切換える。この場合、レジスタ回路850a−850dがそれぞれ接続される入力ノードEA4−EA7を、それぞれ出力ノードFA2−FA5に接続する。出力ノードFA0、FA1およびFA6は、接地線855に接続される。この状態においては、ポートAグローバル書込データ線WGLAについては、グローバル書込データバスWGB0、WGB1およびWGB6に、データビット“0”が転送され、グローバル書込データバスWGB2−WGB5に、それぞれ、被乗数ビットX<0>−X<3>が転送される。
一方、Bポートについては、図169に示すように、スイッチ制御信号SWCBにより、スイッチボックス852の接続経路を切換え、レジスタ回路851cが接続される入力ノードEB2およびEB6を、出力ノードFB2−FB5に結合する。出力ノードFB0、FB1およびFB6は、接地線855に結合される。従って、Bポートグローバル書込データ線WGLBについては、グローバル書込データバスWGB2−WGB5に乗数データビットY<2>が転送され、グローバル書込データバスWGB0、WGB1およびWGB6にはデータビット“0”が転送される。
これらの乗数データX<3:0>および乗数データビットY<2>が、グローバル書込データバスWGB2−WGB5を介して転送されると、次の書込対象のサブアレイブロック♯2において、書込ワード線が選択状態に駆動され、転送データが、ユニット演算子セルの記憶ノードSNAおよびSNBに格納される。これにより、図166およびず図167に示す書込サイクルよりも1ビット上位方向にシフトした位置に対しデータの書込が行われる。
この書込完了後、図170に示すように、ポートAについて、再び、スイッチ制御信号SWCAの状態を変化させ、スイッチボックス852において、出力ノードFA3−FA6を、レジスタ回路50a−50dにそれぞれ接続される入力ノードEA4−EA7に接続し、出力ノードFA0−FA2を、接地線855に結合する。この状態においては、ポートAグローバル書込データ線WGLAについて、グローバル書込データバスWGB0−WGB2には、データビット“0”が転送され、グローバル書込データバスWGB3−WGB6には、それぞれ、被乗数ビットX<0>−X<3>が転送される。
一方、ポートBについては、図171に示すように、スイッチボックス52において、スイッチ制御信号SWCBにより、データ転送経路を切換える。すなわち、レジスタ回路851dが接続される入力ノードEB3およびEB7を、出力ノードFB3−FB6に結合し、出力ノードFB0−FB2を接地線855に結合する。この状態においては、Bポートグローバル書込データ線WGLBについて、グローバル書込データバスWGB0−WGB2については、データビット“0”が転送され、グローバル書込データバスWGB3−WGB6に対して乗数データビットY<3>が転送される。
グローバル書込データバスWGB3−WGB6を介して被乗数データX<3:0>および乗数データビットY<3>が並行して転送される。これらのデータが転送されると、次の書込対象のサブアレイブロック♯3において書込ワード線が選択状態に駆動され、転送データのユニット演算子セルへの書込が行われる。
被乗数データXおよび乗数データYの書込が並行して行われる。従って、これらのデータ書込に、4回の書込アクセスが必要とされる。
この4回の書込アクセスが完了し、乗算対象のデータの書込が完了すると、実施の形態17と同様にして、メモリサブアレイブロックからデータの読出を行なう。
図172は、この発明の実施の形態18に従う半導体信号処理装置のデータ読出部の構成を概略的に示す図である。この図172に示す構成において、センスアンプ帯822および読出ゲート回路824に含まれるセンスアンプ回路SAKおよび読出ゲートCSGの構成は、実施の形態17の場合と同じである。サブアレイブロックBK0において代表的に示すように、セルサブアレイ820において、ビット線BLには、ユニット演算子セルUOEが接続され、このユニット演算子セルUOEを構成するトランジスタNQ1およびNQ2がソース線SLとビット線BLとの間に直列に接続される。補のビット線ZBLには、ダミーセルDMCが接続される。
この図172に示す構成においては、1つの演算単位ブロックOUBにおいて、サブアレイブロックBK0−BKm(上述の説明の4ビットデータの場合、m=3:♯0−♯3)それぞれにおいて被乗数データX<3:0>が、1ビット桁がシフトされて格納される。また、このサブアレイブロックBK0−BKm(上述の説明の4ビットデータの場合、♯0−♯3)それぞれにおいて、乗数データビットY<0>−Y<3>が、1ビット桁位置がシフトされて格納される。このビット位置をずらせて演算対象のデータを格納することにより、部分積加算時の桁合せを、容易に実現することができる。
データ読出時、一般に、乗数データおよび被乗数データが書込まれたサブアレイブロックBK0−BKm(4ビットデータの場合、m=3)に対し読出選択信号CSL<0>−CSL<m>が、実施の形態17と同様、並行して接続状態へ駆動される。このときポート接続回路においては、ポートBが選択される。センスアンプ回路SAでKは、対応のユニット演算子セルUOEの記憶データのAND演算結果に対応する電流を供給する。127本のグローバル読出データ線RGL0−RGL126に対し、並行してメモリサブアレイブロックBK0−BKmから、センス読出電流Is0(0)−Is0(126)−Ism(0)−Ism(126)が供給される。このグローバル読出データ線RGL0−RGL126は、電流合計線VMに共通に結合される。この電流合計線VM上の合計された電流に対応するアナログ電圧を、ADC835によりデジタルデータに変換する。
図173は、4ビットデータX<3:0>およびY<3:0>に対する乗算実行時のサブアレイブロック♯0−♯3(=BK0−BK3)の記憶データを概略的に示す図である。図173を参照して、サブアレイブロック♯0において、グローバル書込データバスWGB0−WGB3に対応して配置されるユニット演算子セルUOEの記憶ノードSNAおよびSNBに対し被乗数データビットX<0>−X<3>および乗数ビットY<0>が書込まれる。グローバル書込データバスWGB4−WGB6に対するユニット演算子セルの記憶ノードSNAおよびSNBには、データ“0”が格納される。
サブアレイブロック♯1においては、グローバル書込データバスWGB1−WGB4に対応する領域のユニット演算子セルの記憶ノードSNAおよびSNBに、それぞれ、被乗数データビットX<0>−X<3>および乗数データビットY<1>が格納される。グローバル書込データバスWGB0、WGB5およびWGB6に対する領域においては、ユニット演算子セルの記憶ノードSNAおよびSNBにデータ“0”が格納される。
サブアレイブロック♯2においては、グローバル書込データバスWGB2−WGB5に対応する領域のユニット演算子セルの記憶ノードSNAに、被乗数データビットX<0>−X<3>がそれぞれ格納され、また、記憶ノードSNBに乗数データビットY<1>が格納される。グローバル書込データバスWGB0、WGB1およびWGB6に対応する領域のユニット演算子セルの記憶ノードSNAおよびSNBにおいては、データ“0”が格納される。
サブアレイブロック♯3においては、グローバル書込データバスWGB0−WGB2に対応する領域のユニット演算子セルの記憶ノードSNAおよびSNBに、データ“0”が格納される。グローバル書込データバスWGB3−WGB6に対応する領域のユニット演算子セルの記憶ノードSNAおよびSNBに、それぞれ、被乗数データビットX<0>−X<3>および乗数データビットY<3>が格納される。
サブアレイブロック♯0−♯3各々において、グローバル書込データバスWGB0−WGB6のビット幅に応じた数のユニット演算子セルUOEに対するデータの書込が行なわれる。このユニット演算子セルUOEの記憶ノードSNAおよびSNBの記憶データのAND演算結果に応じた電流が、センスアンプ回路SAKから対応のグローバル読出データ線RGL上に伝達される。サブアレイブロック♯0−♯3からは、図162に示す部分積PP1−PP4に対応する電流が、グローバル読出データバスRGB0−RGB6に供給される。したがって、電流合計線VM上の合計電流、すなわち電圧は、乗算結果を表わす値となる。ADC835により、電流合計線VMの電圧に対してAD変換を行なうことにより、部分積PP1−PP4の加算結果に対応する8ビット乗算結果P<7>−P<0>を得ることができる。
図174は、この発明の実施の形態18に従う半導体信号処理装置のADC帯812の構成を概略的に示す図である。図174を参照して、ADC帯812においては、演算単位ブロックOUBa−OUBkそれぞれに対応して、MビットADC835a−835kが設けられる。これらのADC835a−835kに対し、電流合計線VMa−VMkがそれぞれ設けられ、ADC835a−835kは、対応の電流合計線VMa−VMk上の各電圧を、ビット毎に、それぞれ変換基準電圧VREF_ADC♯a−VREF_ADC♯kを用いてMビットデジタルデータに変換する。これらのADC835a−835kから、MビットデータQa<M−1:0>−Qk<M−1:0>がそれぞれ生成される。
したがって、演算単位ブロックOUBa、OUBb、…、OUBkにおいて、被乗数データXa、Xb、…、Xkと乗数データYa、Yb、…、Ykのアナログ乗算結果Xa・Ya、…、Xk・Ykを生成し、MビットADC835a−835kにおいて並列にAD変換を行なってMビットデジタルデータを並行して生成することができる。
この演算単位ブロックOUBa−OUBkにおいて、同じ行のユニット演算子セルが選択されて、データの書込/読出が行なわれる。したがって、この乗算時、グローバル書込データ線およびグローバル読出データ線に対し、転送するデータビットの重み付けがされるものの、この場合、グローバル書込ドライバを、各ビット位置の重みに対応する数設けるだけでよい。選択サブアレイブロックにおいて1エントリ(1行に整列して配置されるユニット演算子セルで構成される)のユニット演算子セルを並行して選択して、データの書込/読出を行なうだけでよく、書込/読出データビットの位置に応じた数のビット線選択を、サブアレイブロックそれぞれにおいて行なうことは、特に要求されない。
[変更例]
図175は、この発明の実施の形態18の変更例のデータ書込態様を概略的に示す図である。図175において、サブアレイブロックBK0−BK3が、乗算X♯1<3:0>×Y♯1<3:0>を行うために利用され、サブアレイブロックBK4−BK7が、乗算X♯2<3:0>×Y♯2<3:0>を行うために利用される。サブアレイブロックBK♯0−BK3各々において、ユニット演算子セルの記憶ノードSNAに、各ビットの位置の重み付で被乗数データX♯1<3:0>が格納される。サブアレイブロックBK0−BK3のユニット演算子セルの記憶ノードSNBに、それぞれ、乗数データビットY♯1<0>‐Y♯1<3>が、ビット位置の重み付で格納される。
サブアレイブロックBK♯4−BK7各々において、ユニット演算子セルの記憶ノードSNAに、各ビットの位置の重み付で被乗数データX♯2<3:0>が格納される。サブアレイブロックBK4−BK7のユニット演算子セルの記憶ノードSNBに、それぞれ、乗数データビットY♯2<0>‐Y♯2<3>が、ビット位置の重み付で格納される。
これらの演算データの組は、図164から図171に示す手順と同様の手順で格納する。これらのサブアレイブロックBK0−BK7から並行してデータの読出を行う。この場合、サブアレイブロックBK0−BK3からは、X♯1<3:0>×Y♯1<3:0>の部分積PPT1−PPT4に対応する電流が、図示しないグローバル読出データ線を介して電流合計線に伝達され、また、サブアレイブロックBK4−BK7からは、X♯2<3:0>×Y♯2<3:0>の部分積に対応する電流が、同様対応のグローバル読出データ線に伝達される。従って、電流合計線においては、これらの乗算X♯1<3:0>×Y♯1<3:0>およびX♯2<3:0>×Y♯2<3:0>の加算値に対応する電流が供給され、乗算および加算の演算結果に対応するデジタルデータがADCにより生成される。従って、高速で多ビット数値データの積和演算を実行することができる。
図176は、この発明の実施の形態18に従う半導体信号処理装置の制御回路818の構成を概略的に示す図である。この発明の実施の形態18に従う半導体信号処理装置の全体の構成は、実施の形態17において図145を参照して説明した構成と同じである。
図176において、制御回路818は、コマンドCMDをデコードするコマンドデコーダ860と、乗算操作時、レジスタ回路850a−850dおよび851a−851dのラッチ動作を制御するデータラッチ制御回路862と、スイッチボックス852のスイッチ動作を制御するスイッチ制御回路864と、書込動作を制御する書込制御回路866とを含む。
コマンドデコーダ860は、クロック信号CLKに同期してコマンドCMDを取込み、このコマンドCMDが指定する演算操作内容を指示する信号を生成する。
データラッチ制御回路862は、このコマンドデコーダ860からの動作演算操作指示(OPLOG)が、乗算操作を示すとき、データクロック信号DCLKおよびデータラッチイネーブル信号DENを生成する。スイッチ制御回路864は、コマンドデコーダ860からの演算操作指示が乗算操作を示すとき、クロック信号CLKに同期して所定のシーケンスで、スイッチ制御信号SWCAおよびSWCBを生成し、スイッチボックス852の接続経路を、各書込サイクル毎に1ビット上位方向に書込データ転送経路がシフトするように切換える。
書込制御回路866は、コマンドデコーダ860からの演算操作指示が、データ書込を伴う操作を示すとき、所定のタイミングで書込活性化信号WRENおよび書込ワード線活性化信号WWLENを活性化する。この書込制御回路866は、また、コマンドデコーダ860の演算操作指示が乗算操作を示すとき、また、ラッチイネーブル信号LATENを生成する。
制御回路818は、さらに、読出動作を制御する読出制御回路868と、乗算操作時、ワード線アドレスを生成するワード線アドレスレジスタ870と、クロック信号CLKをカウントしてブロックアドレスBRADを生成するブロックアドレスカウンタ872とを含む。
読出制御回路868は、コマンドデコーダ860からの演算操作指示がデータ読出を伴う操作を示すとき、所定のタイミングで、読出活性化信号REDEN、読出ワード線活性化信号RWLEN、センスアンプイネーブル信号SAEN、AD変換イネーブル信号ADCENを所定のシーケンスで生成する。ワード線アドレスレジスタ870は、コマンドデコーダ860からの演算操作指示が乗算操作を示すとき、その記憶値が所定値に設定され、乗算操作時、選択サブアレイブロックにおけるワード線(書込ワード線および読出ワード線)を指定するワード線アドレスWLADを保持する。
ブロックアドレスカウンタ872は、コマンドデコーダ860からの演算操作指示が、乗算操作を示すとき、クロック信号CLKをカウントし、そのカウント値をサブアレイブロックを指定するブロックアドレスBRADとして生成する。ブロックアドレスカウンタ872から、そのカウント値が所定値に到達するとカウントアップ信号CUPが生成され、読出制御回路868および書込制御回路866へ与えられる。読出制御回路868は、この演算操作指示が乗算操作を示すとき、ブロックアドレスカウンタ872から所定回数カウントアップ信号CUPが生成されると、次の読出動作を開始するために、各制御信号SAEN、RWLEN、REDENおよびADCENを生成する。このカウントアップ信号CUPの回数は、演算対象データの組の数に対応する。例えば、被乗数データX<3:0>と乗数データY<3:0>の組について乗算を実行する場合には、1回カウントアップ信号CUPがアサートされると、読出動作に移行する。
書込制御回路866は、このブロックアドレスカウンタ872からのカウントアップ信号CUPが与えられると、ラッチイネーブル信号LATENを活性化する。このラッチイネーブル信号LATENにより、各サブアレイブロックに対して設けられるローカルセル選択回路においてブロックアドレスのデコード結果がラッチされる。乗算操作時、書込完了後の次の読出動作時、書込対象のサブアレイブロックを並行して選択状態へ駆動することができる。
図177は、図145に示すセル選択駆動回路816に含まれるローカルセル選択回路875の構成を概略的に示す図である。図177において、ローカルセル選択回路875は、ブロックデコーダラッチ880と、書込ワード線を選択状態へ駆動する書込ワード線ドライブ回路882とを含む。ブロックデコーダラッチ880は、書込活性化信号WENおよび読出活性化信号RWDENの活性化時ブロックアドレス信号BRADをデコードし、対応のサブアレイブロックが指定されたときには、そのデコード信号を選択状態に駆動する。このブロックデコーダラッチ880は、また図176に示す書込制御回路866からのラッチイネーブル信号LATENの活性化時、ブロックアドレス信号BRADまたはデコード結果をラッチする。
書込ワード線ドライブ回路882は、ブロックデコーダラッチ880の出力信号が選択状態のときイネーブルされ、書込ワード線活性化信号WWLENおよびワード線アドレスWLADに従って、対応の行の書込ワード線WWLを選択状態へ駆動する。
ローカルセル選択回路875は、さらに、読出ワード線を選択状態へ駆動する読出ワード線ドライブ回路884と、センスアンプ回路の動作を制御するセンスアンプ制御回路886と、センスアンプ回路の出力信号を読出す読出活性化回路888とを含む。読出ワード線ドライブ回路884は、ブロックデコーダラッチ880の出力するデコード信号が選択状態のときイネーブルされ、読出ワード線活性化信号RWNENに従ってワード線アドレス信号WLADが指定する行に対応する読出ワード線RWLAおよびRWLBを選択状態へ駆動する。
センスアンプ制御回路886は、ブロックデコーダラッチ880の出力信号が選択状態のときイネーブルされ、センスアンプ活性化信号SAENに従ってセンスアンプ活性化信号SE(SON、/SOP)を活性化する。読出活性化回路888は、このブロックデコーダラッチ880のデコード信号が選択状態のときイネーブルされ、読出活性化信号REDENの活性化タイミングで、読出選択信号CSLを選択状態へ駆動する。
なお、ダミーセル選択のためのダミーセル選択信号DCLAおよびDCLBを生成する部分は、示していないが、これらは、読出ワード線活性化信号RWLENに従って読出ワード線RWLAおよびRWLBと同一のタイミングで活性化されれば良い。
スイッチボックス852の構成としては、先の図164から図171に示す接続経路を実現するようにスイッチングトランジスタが配置されればよい。また、このようなスイッチングトランジスタマトリクス構成に代えて、Aポートのデータ転送経路に対しては、シフトレジスタが設けられ、このシフトレジスタが、レジスタ回路850a‐850dにラッチしたデータを、1ビットずつ上位方向へ論理シフトする構成が用いられてもよい。また、Bポートのデータ転送経路においては、レジスタ回路851a‐851dの接続と出力ノードFB−FB6との間の接続が、各クロックサイクルごとに1ビットづつ上位方向にシフトする構成が利用されてもよい。
以上のように、この発明の実施の形態18に従えば、各サブアレイブロック毎に、ビット位置の重みを付けたデータをユニット演算子セルに格納し、センスアンプ回路を用いて、このユニット演算子セルにおける記憶データのAND演算結果の対応の電流をグローバル読出データ線へ伝達している。これにより、高速で、多ビットデータの乗算および複数の乗算結果の加算操作を行なうことができる。
なお、上述の乗算の説明においては、8ビットADCを用いて、4ビットデータの乗算結果を求めている。しかしながら、用いられるデータのビット幅は、これに限定されず、他のビット幅のデータが用いられても良い。
[実施の形態19]
図178は、この発明の実施の形態19に従う半導体信号処理装置のセンスアンプ帯および読出ゲート回路の構成の一例を概略的に示す図である。ユニット演算子セルは、実施の形態17と同様、図1および2に示す構成を有し、本実施の形態19においてはポートAが選択され、記憶ノードSNAの記憶データに応じた大きさのビット線電流を駆動する。センスアンプ帯822に含まれるセンスアンプ回路SAKは、センスアンプSAと、このセンスアンプSAのセンス信号、すなわち、センス読出ビット線RBLおよびZRBLの電位に従って電流を供給する電流源回路826を含む。
センスアンプSAの構成は、実施の形態17と同様、図148に示す構成を有し、交差結合されたPチャネルトランジスタおよび交差結合されたNチャネルトランジスタを含む。本実施の形態19においても、センスアンプSAとしては、カレントミラー型の差動増幅回路が用いられても良い。
電流源回路826は、インバータバッファ827aの出力信号に従って電源ノードから電流を供給するPチャネルトランジスタPT10と、インバータバッファ827bの出力信号に従って、電流を吸込む放電トランジスタNT10を含む。この放電トランジスタNT10は、導通時、接地電圧以下のロー側電源ノードVNFの電圧に従って電流の放電を行う。
読出ゲート回路824に含まれる読出ゲートCSGは、実施の形態17の構成と異なり、対応のグローバル読出データ線RGLに共通に結合される2つのスイッチングトランジスタNT11およびNT12を含む。スイッチングトランジスタNT11は、加算読出選択信号CSLPに従って導通し、導通時、電流源回路826の充電用のトランジスタPT10をグローバル読出データ線RGLに結合する。スイッチングトランジスタNT12は、減算読出選択信号CSLNに従って選択的に導通し、導通時、放電用トランジスタNT10をグローバル読出データ線RGLに結合する。
従って、この電流源回路826は、読出ゲートの構成により、対応のグローバル読出データ線RGLの充電および放電を行うことが可能である。
対応のユニット演算子セルが、記憶ノードSNAにデータ“1”を記憶している場合、センス読出ビット線RBLおよびZRBLがそれぞれ、HレベルおよびLレベルとなるため、インバータバッファ827aおよび827bにより、トランジスタPT10およびNT10が、並行して導通し、読出選択信号CSLPおよびCSLNに従って、グローバル読出データ線RGLが充電または放電される。対応のユニット演算子セルが記憶ノードSNAに、データ“0”を記憶している場合には、センス読出ビット線RBLおよびZRBLは、それぞれ、HレベルおよびLレベルとなり、トランジスタPT10およびNT10がともにオフ状態となり、電流源回路826は、出力ハイインピーダンス状態となる。従って、このデータ“0”を記憶している場合には、センスアンプ回路は、グローバル読出データ線RGLの電流に対しては何ら影響を及ぼさない。
これらの充電トランジスタPT10および放電トランジスタNT10は、それぞれ、定電流源として動作し、グローバル読出データ線RGLに、一定の大きさの電流を供給する(電流を引抜く動作を、負電流を供給すると考える)。したがって、この読出ゲートCSGにおいて、読出選択信号CSLPおよびCSLNを選択的に活性化することにより、対応のユニット演算子セルが、記憶ノードSNAにデータ“1”を記憶している場合、グローバル読出データ線RGLへの定電流の供給または定電流の引抜き、すなわち、正および負の電流の供給を行なうことができ、これにより加算または減算を行なうことができる。この電流の加算および減算を、読出選択信号CSLPおよびCSLNにより設定する。
図179は、この発明の実施の形態19に従うADC835の構成を概略的に示す図である。この図179に示すADC835は、以下の点で、図152に示す実施の形態17のADC835とその構成が異なる。すなわち、抵抗網841a−841uに対し、変換基準電圧VREF_ADCおよび−VREF_ADCが、それぞれ、電源ノード840および900に与えられる。この図179に示すADC835の他の構成は、図152に示すADC835の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この変換基準電圧として正および負の基準電圧VREF_ADCおよび−VREF_ADCを利用することにより、加減算結果が負の場合においても、負の電流値を生成することができる。この場合、エンコーダ844は、エンコード動作により、正および負を示す符号付き多ビットデータを生成する。
図180は、この発明の実施の形態19に従う半導体信号処理装置において実行される演算処理の一例を示す図である。図180において、4ビット入力データDIN♯1−DIN♯mの加算および減算を実行し、この加算および減算結果を、符号付きMビットとして出力する。図180においては、4ビット入力データDIN♯3(=0010)およびDIN♯m(=1011)について減算が行なわれ、残りの4ビット入力データDIN♯1(=1110)、DIN♯2(=1010)、DIN♯4(=0110)等については加算が実行される。
この4ビット入力データDIN♯1−DIN♯mは、符号なしの入力データである。したがって、この4ビット入力データDIN♯1−♯mにおける最上位ビットは、符号は示していない。
図181は、この発明の実施の形態19に従う半導体信号処理装置のデータ読出時の動作態様を概略的に示す図である。データパスの構成は、実施の形態17と同様であり、各データビットの桁の重みに応じた数のグローバル書込ワード線が選択されて、対応のユニット演算子セルの記憶ノードSNAに対するデータの書込が実行される。
図181において、メモリサブアレイブロックBK0−BKjに対し、書込/読出が実行される。メモリサブアレイブロックBK0−BKj各々において、ダミーセルDMCを流れる電流を参照電流としてセンスアンプ回路SAKが対応のメモリセルMCを流れる電流のセンス動作を行なう。読出ゲートにおいて、トランジスタNT11およびNT12が選択的にオン状態に設定される。図181においては、メモリサブアレイブロックBK0およびBK1に対し、読出選択信号CSLP<0>、CSLP<1>がオン状態(選択状態)に設定され、読出選択信号CSLN<0>およびCSLN<1>がオフ状態(非選択状態)に設定される。したがって、メモリサブアレイブロックBK0およびBK1においては、トランジスタNT11がオン状態となり、それぞれ対応のグローバル読出データ線RGL0−RGL3、RGLk、…に対し、メモリセルMCの記憶データが“1”のとき、センス電流Is0(0)−Is0(3)、…、Is0(k)およびIs1(0)−Is1(3)、…、Is1(k)が供給される。
ADC帯812においては、演算単位ブロックOUBa、OUBbそれぞれに対応してADC(835)が設けられており、対応の電流合計線VMに供給される電流に応じた電圧を、変換基準電圧VREF_ADCおよび−VREF_ADCを抵抗分割した電圧を参照してA/D変換する。このADC835のA/D変換動作は、エンコーダの出力データが、符号付データであることを除けば、実施の形態17の場合と同様である。
したがって、減算を行なうデータを記憶するメモリサブアレイブロックBKjからは、データ“1”を記憶するメモリセルに対応するセンスアンプ回路により、グローバル読出データ線から電流が減算され、一方、加算を行なうデータが記憶されたメモリサブアレイブロックからは、データ“1”に対してグローバル読出データ線に対して電流が供給される。この電流の加算および減算により、図180に一例として示す加算および減算を並行して実行して、加減算結果を生成することができる。
図182は、この4ビット入力データの加減算のより具体的な一例を示す図である。図182において、4ビット入力データDIN♯1、DIN♯2およびDIN♯4について加算を行ない、4ビット入力データDIN♯3について減算を実行する。この場合、入力データDIN♯1、DIN♯2、DIN♯3、およびDIN♯4は、それぞれ、(1110)、(1010)、(0010)、および(0110)である。この加減算結果は、図182に示すように、(011100)である。加減算結果の最上位ビットが符号ビットである。
この加減算を実行する場合、図183に示すように、サブアレイブロックBK0−BK3に対し、データの書込および読出を実行する。この場合、サブアレイブロックBK0に対し、4ビット入力データDIN♯1を書込み、読出選択信号CSLP<0>を選択状態(オン状態)にして演算データの読出を実行する。書込および読出は、ユニット演算子セルの記憶ノードSNAに対して実行される。サブアレイブロックBK1に対しては、4ビット入力データDIN♯2をユニット演算子セルの記憶ノードSNAに書込み、読出選択信号CSLP<1>を選択状態に設定して、ユニット演算子セルの記憶ノードSNAの記憶データの読出を実行する。サブアレイブロックBK3については、入力データDIN♯4を書込み、読出選択信号CSLP<3>を選択状態(オン状態)に設定してデータの読出を実行する。したがって、サブアレイブロックBK0、BK1およびBK3からは、記憶データビットが“1”の場合、対応のグローバル読出データ線に電流が供給され、データビットが“0”の場合には、電流は供給されない。
一方、サブアレイブロックBK2については、4ビット入力データDIN♯3を書込み、読出選択信号CSLNを選択状態に設定する。この場合、サブアレイブロックBK2において、ユニット演算子セルの記憶データビットが“1”の場合、対応のグローバル読出データ線から電流が引抜かれ、電流減算が行なわれる。
この加算および減算を実行する場合、複数のサブアレイブロックについて、加算データを記憶するブロックおよび減算データを記憶するサブアレイブロックが、予め固定的に定められていてもよい。ここでは、一例として、サブアレイブロックBK0−BKm各々に対し、加算データ記憶ブロックおよび減算データ記憶ブロックを柔軟に割当てるための構成について以下に説明する。
図184は、この発明の実施の形態19に従う半導体信号処理装置のセル選択駆動回路816に含まれるローカルセル選択回路875の構成を概略的に示す図である。この図184に示すローカルセル選択回路は、図177に示すローカルセル選択回路875と、以下の点で、その構成が異なる。すなわち、加減算指示フラグASFをラッチする演算フラグラッチ回路892が設けられる。この演算フラグラッチ回路892は、書込活性化信号WRENの活性化時、ブロックデコーダラッチ880の出力信号が対応のサブアレイブロックを指定するとき、加減算指示フラグASFをラッチする。
読出活性化回路890は、読出活性化信号REDENの活性化時、この演算フラグラッチ回路892にラッチされるフラグに従って、読出選択信号CSLPおよびCSLNのいずれかを選択状態へ駆動する。
この図184に示すローカルセル選択回路の他の構成は、図177に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
なお、入力データの加算および減算を行なう場合、データ書込時、その加算および減算を示すフラグ(たとえば符号ビット)を、加減算指示フラグASFとして利用し、対応のサブアレイブロックのデータ書込時、演算フラグラッチ回路892に、演算指示内容を並行して格納する。これにより、各サブアレイブロックにおける書込データの加算および減算に応じて、読出選択信号CSLPおよびCSLNを選択的にオン状態(選択状態)へ駆動することができる。
以上のように、この発明の実施の形態19に従えば、ユニット演算子セルの記憶ノードSNAの記憶データが“1”のとき、グローバル読出データ線に対する電流の供給および吸込み(正および負電流の供給)を選択的に実行するように構成しており、加算および減算を並行して実行することができる。
また、加算および減算に応じて、グローバル読出データ線の電流のソース/シンクを行っているだけであり、減算データを、2の補数データに変換して加算する必要がなく、加減算処理が簡略化される。また、実施の形態17と同様の効果を得ることができる。
[実施の形態20]
図185は、この発明の実施の形態20に従う半導体信号処理装置のユニット演算子セルの電気的等価回路の構成を概略的に示す図である。図185において、2つのユニット演算子セルUOEAおよびUOEBを代表的に示す。これらのユニット演算子セルUOEAおよびUOEBには、それぞれ、異なる演算対象のデータが格納される。
これらのユニット演算子セルUOEAおよびUOEBに対応して、列方向に延在するローカル書込ワード線WWL0およびWWL1が、配設される。このローカル書込ワード線WWL0およびWWL1は、ビット線と平行な方向に配置されており、従って、1つのサブアレイブロックにおいては、1列のユニット演算子セルを1本のローカル書込ワード線WWLにより選択することができる。
ユニット演算子セルUOEAは、PチャネルSOIトランジスタPQA1およびPQA2と、NチャネルSOIトランジスタNQA1およびNQA2とを含み、ユニット演算子セルUOEBは、PチャネルSOIトランジスタPQB1およびPQB2と、NチャネルSOIトランジスタNQB1およびNQB2を含む。
PチャネルSOIトランジスタPQA1およびPQB1は、それぞれ、書込ワード線WWL0およびWWL1上の信号電位に従って選択的に導通し、導通時、それぞれ書込データDINAを、NチャネルSOIトランジスタNQA1およびNQB1のボディ領域(記憶ノード)SNAに伝達する。PチャネルSOIトランジスタPQA2およびPQB2は、ローカル書込ワード線WWL0およびSWWL1上の信号電位に応答して選択的に導通し、導通時、書込データDINBを、それぞれSOIトランジスタNQA2およびNQB2のボディ領域(記憶ノードSNB)に伝達する。
これらのローカル書込ワード線WWL0およびWWL1は、対応の演算子セルサブアレイブロック内に延在して配置される。ローカル書込ワード線の階層配置については、後に説明する。
SOIトランジスタNQA1およびNQB1は、それぞれソース線SLに、そのソースが結合される。ユニット演算子セルUOEAおよびUOEBにおける読出部のSOIトランジスタの接続態様は、図1に示すユニット演算子セルの接続態様と同じである。
SOIトランジスタNQA1およびNQB1は、読出ワード線RWLA上の信号電位に応答してその記憶データに応じて選択的に導通し、SOIトランジスタNQA2およびNQB2は、読出ワード線RWLB上の信号電位に応答して、その記憶データに応じて選択的に導通する。
図186は、図185に示すユニット演算子セルUOEAおよびUOEBの平面レイアウトを概略的に示す図である。図186において、中央部の破線ブロックで示すP型トランジスタ形成領域に関し、一例として、ユニット演算子セルUOEAおよびUOEBが対称的に配置される。同一パターンのユニット演算子セルが、X方向に繰り返し配置されても良い。
P型トランジスタ形成領域内において、Y方向に整列して、高濃度P型領域1200aおよび1200bが配置される。これらのP型領域1200aおよび1200bの間にN型領域1202aが配置される。P型領域1200bに対してY方向に整列してかつ隣接してP型領域1204aが配置される。
また、これらのP型領域1200a、1200bおよび1204aにY方向において整列して、P型領域1204b、および高濃度P型領域1200cおよび1200dが配置される。P型領域1200cおよび1200dの間に、N型領域1202bが配置される。
P型トランジスタ形成領域外部において、P型領域1200bに隣接してN型領域1206aが配置され、このN型領域1206aにY方向に整列して、高濃度N型領域1206bおよび1206cが配置される。N型領域1206aおよび1206bの間に、P型領域1204aがX方向に連続的に延在して配置される。また、P型領域1204bが、これらのN型領域1206bおよび1206cの間の領域にX方向に連続的に延在して配置される。
また、P型トランジスタ形成領域において、Y方向に整列して、高濃度P型領域1200eおよび1200fが配置される。これらのP型領域1200eおよび1200fの間にN型領域1202cが配置される。P型領域1200fにY方向に沿って整列してかつ隣接してP型領域1204cが配置される。
これらのP型領域1200e、1200f、1204eとY方向において整列して、P型領域1204d、および高濃度P型領域1200gおよび1200hが配置される。高濃度P型領域1200gおよび1200hの間にN型領域1202dが配置される。
このP型トランジスタ形成領域外部において、P型領域1200fに隣接して、高濃度N型領域1206dが配置され、このN型領域1206dとY方向において整列して高濃度N型領域1206eおよび1206fが配置される。N型領域1206dおよび1206eの間には、P型トランジスタ形成領域からP型領域1204cがX方向に連続的に延在して配置される。N型領域1206eおよび1206fの間には、また、P型トランジスタ形成領域からP型領域1204dがX方向に連続的に延在して配置される。
X方向に連続的に延在してかつN型領域1202aおよび1202cと重なり合うようにゲート電極配線1208aおよび1208eがそれぞれ配置される。これらのゲート電極配線1208aおよび1208eは、互いに分離して配置される。このゲート電極配線1208aおよび1208eの分離構造により、データ書込時、異なる書込ワード線によりユニット演算子セルUOEAおよびUOEBを個々に選択状態に駆動する。
また、P型領域1204aおよび1204cと重なり合うようにX方向に連続的に延在してゲート電極配線1208bが配置される。P型領域1204bおよび1204dと重なり合うようにX方向に連続的に延在してゲート電極配線1208cが配置される。N型領域1202bおよび1202dそれぞれと重なり合うようにゲート電極配線1208dおよび1208fが配置される。これらのゲート電極1208dおよび1208fは互いに分離して配置され、それぞれ異なる書込ワード線に電気的に接続される。
Y方向に連続的に延在して、第1金属配線1210a−1210gが間を置いて配置される。第1金属配線1210aは、コンタクト/ビアVV11を介して、N型領域1206fに電気的に接続される。第1金属配線1210bは、コンタクト/ビアVV10を介してN型領域1206eに電気的に接続される。第1金属配線1210cは、コンタクト/ビアVV13およびVV12をそれぞれ介してゲート電極1208fおよび1208eに電気的に接続される。
第1金属配線1210eは、コンタクト/ビアVV7およびVV6をそれぞれ介してゲート電極1208dおよび1208aに電気的に接続される。第1金属配線1210fは、コンタクト/ビアVV3を介してN型領域1206bに電気的に接続される。第1金属配線1210gは、コンタクト/ビアVV4を介してN型領域1206cに電気的に接続される。
第1金属配線1210aおよび1210bが、BポートおよびAポートのビット線をそれぞれ構成し、第1金属配線1210cが、ローカル書込ワード線WWL0を構成する。第1金属配線1210eが、ローカル書込ワード線WWL1を構成し、第1金属配線1210fが、読出Aポートビット線を構成し、データDOUTAを伝達する。第1金属配線1210gは、Bポート読出ビット線を構成し、データDOUTBを伝達する。
X方向に連続的に延在して第2金属配線1212b−1212fがそれぞれ間を置いて配置される。第2金属配線1212bは、ビア/コンタクトVV1および中間配線を介してP型領域1200aに電気的に接続される。第2金属配線1212cは、ビア/コンタクトVV9および中間配線を介してN型領域1206dに電気的に接続され、また、ビア/コンタクトVV2および中間配線を介してN型領域1206aに電気的に接続される。第2金属配線1212dは、X方向に連続的に延在するゲート電極配線1208bと並行して配置され、図示しない部分において電気的に接続される。
第2金属配線1212eは、ゲート電極配線1208cと重なり合うように配置され、図示しない部分において電気的にゲート電極配線1208cと接続される。第2金属配線1212fは、ビア/コンタクトVV8および中間配線を介してP型領域1200hに電気的に接続され、また、ビア/コンタクトVV5を介してP型領域1200dに電気的に接続される。
第2金属配線1212bおよび1212fは、それぞれ、入力データDINAおよびDINBを伝達する。第2金属配線1212cはソース線SLを構成し、第2金属配線1212dは、下層のゲート電極配線1208bとともに読出ワード線RWLAを構成する。第2金属配線1212eは、下層のゲート電極配線1208cとともに読出ワード線RWLBを構成する。
演算実行時には、入力データDINAおよびDINBを同一データとすることにより、ポートBからのデータ読出時においても、ポートAからのデータ読出と同一の効果を得ることができる。
図187は、この発明の実施の形態20に従う半導体信号処理装置の全体の構成を概略的に示す図である。図187において、演算子セルアレイは、実施の形態17と同様、複数の演算子セルアレイブロックBK0−BK31に分割される。サブアレイブロックBK0−BK31各々においては、ユニット演算子セルが行列状に配列され、また、各ユニット演算子セル列に対応してダミーセルが配置される。ユニット演算子セルの行に対応して、読出ワード線RWLA、RWLBが配置され、列に対応してローカル書込ワード線WWLが配設される。図187においては、一例として、1つの演算サブアレイブロックにおいてローカル書込ワード線WWL0−WWLmが配設される。
また、図187においては、明確に示していないものの、ローカル書込ワード線WWLと並行に読出ビット線RBLおよびZRBLが配設される。
また、センスアンプ帯822においては、ユニット演算子セル列に対応してセンスアンプ回路が設けられる。ポート選択用のポート接続スイッチおよび読出ゲートの配置は、これまでの実施の形態と同様であるが、センスアンプ回路の構成が、これまでの実施の形態と異なり、複数のユニット演算子セルから対応の読出ビット線に供給される大きさに対応する電流を対応のグローバル読出データ線に供給する(この出力部の構成については後に説明する)。
これらのサブアレイブロックBK0−BK31に共通に、書込ワード線用デコーダ1220が設けられる。書込ワード線用デコーダ1220は、グローバル書込データ線WWL<0>、…、WWL<m>それぞれに対応して設けられる書込ワード線ドライバ1222を含む。書込ワード線アドレスに従って、書込ワード線ドライバ1222により、アドレス指定されたグローバル書込ワード線WWL<0>、WWL<1>…がそれぞれ駆動される。
サブアレイブロックBK0−BK31それぞれに対応してサブデコーダ帯1225が設けられる。このサブデコーダ帯1225においては、グローバル書込ワード線WWL<0>−WLL<m>それぞれに対応してサブデコーダ1223が設けられる。このサブデコーダ1223は、実施の形態15と同様にして、対応のグローバルグローバル書込ワード線WWL<i>上の信号と行選択駆動回路816からのブロック選択信号BSkとに従って対応のローカル書込ワード線WWLiを選択状態に駆動し、1列のユニット演算子セルを選択状態に駆動する。
サブアレイブロックBK0−BK31のうちブロック選択信号BSにより選択された演算子セルサブアレイブロックにおいて、ローカル書込ワード線WWLを選択状態へ駆動する。書込ワード線をグローバルおよびローカルワード線の階層構造とすることにより、入力データDINAおよびDINBを選択されたサブアレイブロックにおいて書込むことができる。複数のサブアレイブロックの同一列に演算対象のデータを書込み、グローバル読出データ線のRGLの電流を検知することにより、演算結果を得ることができる。
ADC帯812の構成は、先の実施の形態17から19において説明した構成のいずれかと同様の構成を有する。データパス814においては、グローバル書込データ線が配置されていないため、グローバル書込ドライバは設けられない。ADC帯812からの(m+1)ビットデジタルデータが、例えばバッファ処理した後に出力される。書込データDINAおよびDINBは、ローカル書込ワード線WWLと直交するように配設されるデータ線(図186の第2金属配線1212b、1212f)を介して行選択駆動回路(セル選択駆動回路)816から転送される。
行選択駆動回路816においては、サブアレイブロックBK0−BK31それぞれに対応して、行/データ線選択駆動回路XXDR0−XXDR31が設けられる。これらの行/データ線選択駆動回路XXDR0−DDXR31には、演算対象のデータDINA<m:0>およびDINB<m:0>が与えられる。
これらのデータが並列に選択された演算子セルサブアレイブロックに転送される。制御回路1250により、書込アクセスサイクルに応じて、選択状態へ駆動されるブロック選択信号BSが決定され、書込対象のサブアレイブロックが決定される。
行/データ線選択駆動回路XXDR0−XXDR31の各々は、与えられた入力デーDINAおよびDINBの対応のビットDINA<i>およびDINB<i>に従って内部書込データDINAおよびDINBを生成するデータ線ドライ部回路1234と、図示しないアドレス信号に従って読出ワード線RWLAおよびRWLBを選択状態へ駆動するワード線ドライブ回路1230を含む。
ワード線ドライブ回路1230は、対応の演算子セルサブアレイブロックの各ユニット演算子セル行に対応して配置される。演算出力サブアレイブロックBK0−BK31において、個々にかつ並行して、読出ワード線RWLAおよびRWLBを選択状態へ駆動することができる。
この演算子セルサブアレイブロックにおいては、記憶データビットの位置に応じて割当てられる読出ワード線の数が決定される。すなわち、第0ビット<0>のデータには、ユニット演算子セルが1個割当てられ、第1ビット<1>を格納する読出ワード線にはユニット演算子セルが2個割当てられる。第iビット<i>のデータは、2のi乗のユニット演算子セルにより記憶される。従って、1つのサブアレイブロックからは、記憶数値データの値に応じた大きさの電流が供給される。
図188は、図187に示すセンスアンプ帯822に含まれるセンスアンプ回路SAKの構成の一例を示す図である。図188において、センスアンプ回路SAKは、センスアンプSAと、電流源回路826とを含む。センスアンプSAは、センス読出ビット線RBLを流れる電流を検出するために、PチャネルSOIトランジスタQP1と、NチャネルSOIトランジスタQN1−QN2を含む。NチャネルSOIトランジスタQN1は、センスアンプ活性化時、センス読出ビット線RBLからの電流を放電する。NチャネルSOIトランジスタQN2は、トランジスタQN1とカレントミラー段を構成し、センス読出ビット線RBLを流れる電流Icのミラー電流を生成する。トランジスタQP1は、トランジスタQN2に電流を供給する。
センスアンプSAを活性化するために、ノードND11と接地ノードとの間に、NチャネルSOIトランジスタQN3が設けられる。このトランジスタQN3は、センスアンプ活性化信号SEの活性化時、内部ノードND11を接地ノードに結合する。
センスアンプSAは、さらに、補のセンス読出ビット線ZRBLを流れる電流を検出するために、PチャネルSOIトランジスタQP2、QP3およびNチャネルSOIトランジスタQN4−QN6を含む。トランジスタQN4は、センス動作時、補のセンス読出ビット線ZRBLからのダミーセル電流Idを放電する。トランジスタQN5は、トランジスタQN4とカレントミラー段を構成し、補のセンス読出ビット線ZRBLを流れる電流Idのミラー電流を生成する。
トランジスタQP3は、トランジスタQN5に対して電流を供給する。トランジスタQP2は、トランジスタQP3とカレントミラー段を構成し、トランジスタQP3を流れる電流のミラー電流を生成する。トランジスタQN6は、センス動作時、トランジスタQP5から供給される電流を放電する。
電流源回路826は、電源ノードと内部出力ノード828との間に直列に接続されるPチャネルSOIトランジスタQP10およびQP11と、内部出力ノード828と接地ノードとの間に直列に接続されるNチャネルSOIトランジスタQN11およびQN10を含む。トランジスタQP10は、ソースが電源ノードに接続され、そのゲートがトランジスタQP2のゲートに接続される。トランジスタQP11は、ゲートに電流供給活性化信号/ENAを受ける。トランジスタQN10は、ソースが接地ノードに接続され、そのゲートがトランジスタQN6のゲートに接続される。トランジスタQN11は、そのゲートに電流供給活性化信号ENAを受ける。
読出ゲートCSGは、内部出力ノード828を、グローバル読出データ線RGLに結合する。この読出ゲートCSGは、図188においては、1つのトランスファーゲートで構成されるように示すが、この読出ゲートは、CMOSトランスミッションゲート(アナログスイッチ)で構成されてもよい。
この図188に示すセンスアンプ回路SAKの構成においては、スタンバイ時には、センス読出ビット線RBLおよびZRBLが、図示しないプリチャージ回路(図148に示す実施の形態17と同様の構成)により、所定の電圧レベルにプリチャージされかつイコライズされる。
センス動作前に、読出ワード線が選択状態に駆動され、ユニット演算子セルおよびダミーセルからセンス読出ビット線RBLおよびZRBLに電流が供給される。ダミーセルはデータ“0”を記憶する状態に設定される。従って、ダミーセルからは補のセンス読出ビット線ZRBLに対してデータ“0”に対応する基準電流が供給される。
センス読出ビット線RBLに対してはユニット演算子セルの記憶データに応じた電流Icが供給される。供給電流が安定化されると、センスアンプ活性化信号SEを活性化し、センス動作を行う。このセンス動作時においては、トランジスタQN1およびQN2のカレントミラー動作により、トランジスタQP1には、センス読出ビット線RBLを流れる電流のミラー電流が流れる。
同様、トランジスタQN4およびQN5のカレントミラー動作により、トランジスタQP3には補のセンス読出ビット線ZRBLを流れる電流Idのミラー電流が流れる。トランジスタQP3およびQP2がカレントミラー段を構成しており、トランジスタQP2にダミーセル電流Idのミラー電流が流れ、応じて、トランジスタQN6にトランジスタQP2から供給されるダミーセル電流Idのミラー電流が流れる。
センス読出ビット線RBLおよびZRBLを流れる電流が安定化すると、電流供給活性化信号ENAおよび/ENAが活性化され、電流源回路826が電流の供給を開始する。活性化時、電流源回路826においては、トランジスタQP10が、トランジスタQP1とカレントミラー段を構成し、センス読出ビット線RBLを流れる電流Icのミラー電流を供給する。一方、トランジスタQN10が、トランジスタQN6とカレントミラー段を構成し、補のセンス読出ビット線ZRBLを介して流れる電流Idのミラー電流を供給する。
所定のタイミングで読出選択信号を活性化すると、読出ゲートCSGにより、グローバル読出データ線RGLに対して電流Ic・K−Id・Kの電流が流れる。ここで、係数Kは、トランジスタQP10およびQN10が供給するミラー電流のミラー比を示す。
ダミーセルは、データ“0”を記憶しており、グローバル読出データ線RGLには、データ“0”を基準とする電流が流れ、ユニット演算子セルに格納された数値データの大きさに対応する電流をグローバル読出データ線に供給することができる。従って、センス読出ビット線RBLに複数のユニット演算子セルからの電流が供給される場合においても、正確に数値データの値に応じた大きさの電流を供給することができる。
図189は、図187に示す行/データ線選択駆動回路の構成の一例を概略的に示す図である。図187において、ワード線ドライブ回路1230は、アドレス信号ADとAポート読出イネーブル信号RENAとを受け、読出ワード線RWLAを選択状態へ駆動するAポート読出ワード線ドライバ1242と、アドレス信号ADとBポート読出イネーブル信号RENBとを受け、Bポート読出ワード線RWLBを選択状態へ駆動するBポート読出ワード線ドライバ1244とを含む。アドレス信号ADは、サブアレイブロックBK0−BK31各々における行を指定する。
読出ワード線ドライバ1242および1244は、対応のイネーブル信号の活性化時イネーブルされてアドレス信号ADをデコードし、そのデコード結果に従って、対応のワード線WWLB、RWLAおよびRWLBを選択状態に駆動する。この場合、図187に示すブロック選択信号がまた与えられ、ブロック選択信号BSが指定するサブアレイブロックにおいて読出ワード線の選択が行われても良い。
データ線ドライブ回路1234は、Aポートデータ線ドライバ1246と、Bポートデータ線ドライバ1248とを含む。Aポートデータ線ドライバ1246は、データビットDINA<i>と書込イネーブル信号WENとアドレス信号ADとを受け、内部書込データビットDINAを生成する。Bポートデータ線ドライバ248は、データビットDINB<i>と書込イネーブル信号WENとアドレス信号ADとを受け、内部書込データビットDINBを生成する。
書込イネーブル信号WENは、図187に示す書込ワード線ドライバの活性化時、活性化され、内部書込データDINAおよびDINBを、与えられたデータビットDINA<i>およびDINB<i>に従って生成する。
データ線ドライブ回路1234は、割当てられたデータビットの位置<i>に応じて同一構成が重複して設けられる。従って、ビット<i>に対しては、2のi乗個同一構成が設けられる。これにより、ビット位置に応じた数のユニット演算子セルに対して同一データビットを配置することができる。
ワード線ドライブ回路1230については、データ読出時、演算対象のデータのビット数に対応する数の読出ワード線が並行して選択状態に駆動される。例えば、4ビットデータの演算時においては、合計15本の読出ワード線が選択状態に並行して駆動される。読出ワード線RWLAおよびRWLBの選択態様は、実行される演算対象に応じて決定される。例えば、1つのサブアレイブロックにおいて入力データDINAおよびDINBの乗算が行われ、この乗算結果を加算する場合には、演算対象のサブアレイブロックにおいてBポートが選択される。入力データDINAの加算が実行される場合には、Aポートが選択される。
図190は、この発明の実施の形態20に従う半導体信号処理装置における書込データの配置の一例を示す図である。図190においては、4ビットデータについての演算を実行する際のデータの記憶態様を一例として示す。また、図190においては、サブアレイブロックBKaおよびBKbの構成を代表的に示し、特に、このサブアレイブロックBKaの4ビットデータの格納態様を代表的に示す。図190において、サブアレイブロックBKaのセルサブアレイ820は、メモリセルアレイ1250とダミーセルアレイ1252とを含む。このメモリセルアレイ1250に、ユニット演算子セルUOEが行列状に配置され、ダミーセルアレイ1252にダミーセルDMCが行列状にユニット演算子セル列に対応して配置される。これまでの実施の形態と同様、ダミーセルDMCが、補のセンス読出ビット線ZRBLに結合され、ユニット演算子セルUOEがセンス読出ビット線RBLに結合される。
最下位ビット(第0桁)<0>に対しては、1つの読出ワード線RWL(読出ワード線RWLAおよびRWLB)およびデータ駆動線DIN(DINA、DINB)が割当てられる。第1ビット<1>に対しては、2本の読出ワード線RWLおよびデータ駆動線DINが割当てられる。第2ビット<2>に対しては、4本の読出ワード線RWLおよびデータ駆動線DINが対応付けられ、第3ビット<3>に対しては、8本の読出ワード線RWLおよびデータ駆動線DINが対応付けられる。したがって、これらのビット<0>のデータビットは、1つのユニット演算子セルUOEに書込まれ、ビット<1>のデータビットは、2つのユニット演算子セルUOEに格納される。ビット<2>のデータビットは、4個のユニット演算子セルUOEに格納され、ビット<3>のデータビットは、8本のユニット演算子セルUOEに格納される。
この読出ワード線RWLのビット位置に応じた数の活性化は、サブブロックBKaおよびBKbにそれぞれ対応して配置される行/データ線選択駆動回路XXDRaおよびXXDRbにより行われる。これらの行/データ線選択駆動回路XXDRaおよびXXDRbは、図189に示す構成を有し、転送データビットが、予め各ユニット演算子セル行に割当てられる。
データ書込時、グローバル書込データ線が活性化されると、ブロック選択信号により指定されたサブアレイブロックにおいてローカル書込ワード線WWLが選択状態へ駆動される。データ線駆動回路234が、活性化され、このデータ駆動線DINとローカル書込ワード線WWLとの交差部に対応して配置されるユニット演算子セルに対してデータの書込が行われる。
データ読出時においては、対応の行/データ線選択駆動回路XXDR(XXDRa、XXDRb)に含まれる読出ワード線ドライブ回路230を用いて、演算対象データが格納された読出ワード線、すなわち4ビットデータの場合、15本の読出ワード線RWLを並行して選択状態へ駆動する。読出ワード線RWLAおよびRWLBの選択態様は、実行される演算に応じて決定される。
このとき、ダミーセルが選択される。ダミーセルDMCは、データ“0”を記憶する状態に設定される。このダミーセルの選択態様において、センス読出ビット線に対してデータ“0”に対する参照電流が供給されれば良く、読出ワード線と同様、15本のダミーワード線DRWLが、並行して選択状態へ駆動されてもよい。補のセンス読出ビット線ZRBLには、例えば15個のダミーセルDMCが接続されてデータ“0”に対応するダミーセル電流を供給し、一方、センス読出ビット線RBLには、15個のユニット演算子セルの記憶データに応じた電流が供給される。
センスアンプ帯22においては、センスアンプ回路SAKおいては、低しきい値電圧状態のデータ“1”を記憶するユニット演算子セルに流れる電流Ilと高しきい値電圧状態のデータ“0”を記憶するユニット演算子セルを流れる電流Ih(<Il)の合計電流が供給される。ここで、同時に選択されるユニット演算子セルUOEにおいてa個のユニット演算子セルUOEがデータ“1”を出力し、b個のユニット演算子セルUOEがデータ“0”を出力する状態を考える。この場合、センス読出ビット線RBLに流れる電流は、a・Il+b・Ihである。一方、補のセンス読出ビット線ZRBLに流れる電流は、ダミーセルDMCが、ユニット演算子セルと同数個選択される場合においても、(a+b)・Ihである。
センスアンプ回路SAKの電流減回路26においては、センス読出ビット線RBLを流れる電流と補のセンス読出ビット線ZRBLを流れる電流の差に応じた電流のミラー電流、電流K・b・(Il−Ih)を、対応のグローバル読出データ線に供給する。たとえば、データA<3:0>が(0001)の場合であり、ユニット演算子セルUOEからデータAが読出される場合には、ダミーセルがユニット演算子セルと同数個選択される場合には、電流K・(Il−Ih)が対応のグローバル読出データ線に供給される。一方、データA<3:0>が(1010)の場合、10・K・(Il−Ih)の電流が、対応のグローバル読出データ線に供給される。
この場合、ダミーセルDMCの供給電流は、参照電流として減算されるため、並行して選択されるダミーセルの数は、ユニット演算子セルの並行して選択される数と同数であることは特に要求されない。
したがって、グローバル読出データ線RGLには、このサブアレイブロックBKiに格納されるデータをアナログ値に変換した大きさに対応する電流が流れる。すなわち、複数のセルサブアレイ820において並行して、読出ワード線およびダミーワード線を選択状態へ駆動することにより、各サブアレイブロックBKi、BKa、…に格納されるデータの加算値に対応する電流を、対応のADCへ供給することができる。
また、サブアレイブロックBKにおいてユニット演算子セルUOEにデータAおよびBが、入力データDINAおよびDINBとして格納されてポートBが選択される場合には、データAおよびBの乗算結果に対応するアナログ電流が対応のグローバル読出データ線に供給される。
データの書込は、以下のようにして行なわれる。ブロック選択信号BS♯により演算対象のデータが書込まれるサブアレイブロックを指定する。書込ワード線用デコーダ(220)により、最初の列のグローバル書込ワード線WWL<0>を選択状態に駆動する。指定されたサブアレイブロックにおいてローカル書込ワード線WWLが選択状態に駆動され、データDINAおよびDINBの書込が実行される(データDINAのみが書込まれてもよい)。
1回目のデータの書込が完了すると、次のサブアレイブロックをブロック選択信号により指定して、演算対象のデータの組の次のデータを同一のグローバル書込ワード線を選択状態に設定して書込む。1つの演算対象の組のデータが全て書込まれると、次の演算対象の組のデータの書込を行うために、次のグローバル書込ワード線を選択状態に駆動して、またブロック選択信号を初期値に戻して次の演算対象の組のデータの書込を実行する。以降、同様の手順を繰り返し、全ての演算対象の組のデータの書込を行う。
図191は、この発明の実施の形態20に従う半導体信号処理装置のデータ読出に関連する部分の構成を概略的に示す図である。図191において、サブアレイブロックBK0−BKiが設けられる。センスアンプ回路SAKに対応して設けられる読出ゲートCSGに対しては、各演算単位ブロックOUBaおよびPUBb単位で、異なる読出選択信号CSL♯<0>−CSL♯<L>が供給される。信号の記号♯の後にブロックを指定する番号を付す。さらに、グローバル読出データ線RGLa0−RGLaLに対応して設けられる読出ゲートCSGに対して、読出列選択信号CSL♯j<0>−CSL♯j<L>がそれぞれ与えられる。ここで、jは、0からiのいずれかの数字である。
サブアレイブロックBK0−BKiにおいて、同じグローバル読出データ線に対応する位置に演算対象のデータの組が格納される。演算単位ブロックOUBaおよびOUBbそれぞれにおいて、各サブアレイブロックにおいては1つのセンスアンプ回路SAKの出力が選択され、1本のグローバル読出データ線RGL(RGLa、RGLb)上に転送される。演算単位ブロックOUBaおよびOUBbそれぞれにおいて、電流合計線VMaおよびVMbが設けられており、したがって、各演算単位OUBaおよびOUBbそれぞれにおいて、選択されたサブアレイブロックの記憶データの加算が行なわれ、ADC帯812に含まれる対応のADCにより、A/D変換が実行される。
また、図191において、ADC帯812に対し、変換基準電圧VREF_ADCおよび−VREF_ADCが与えられる場合を一例として示す。ADC帯812において、ADCは、グローバル読出データ線RGLにデータが読出される毎に順次変換を行って、変換後のデータを出力する。ADC帯812の変換動作は、実施の形態17および18の場合と同様である。
演算実行時、読出選択信号CSL♯<0>−CSL♯<L>を順次選択して、異なる書込ワード線に対応する演算対象のデータの組を選択して、順次演算結果を生成し、A/D変換データが生成される。この場合、ADC帯812において、パイプライン型ADCが利用されれば、パイプライン的にデジタル変換後の演算結果を生成することができる。なお、パイプライン型ADCにおいては、1ビットあたり1段の単位変換回路が配置され、これらの単位変換回路が縦続接続される。
この図191に示す構成においては、演算単位ブロック内の1本のグローバル読出データ線に順次演算結果データを読出している。しかしながら、1つのサブアレイブロックにおいて、各演算単位毎に並行してセンスアンプ回路SAKの出力信号を対応のグローバル読出データ線に読出すことにより、1つのサブアレイブロックの演算単位ブロックOUB(OUBa,OUBb)に格納されるデータ(例えば、DIN♯0−DIN♯L)についての加算操作を実行することができる。
なお、制御回路の構成としては、以下の構成が利用されれば良い。すなわち、書込ワード線アドレスを順次更新して書込用デコーダへ与え、ブロック選択信号としては書込対象のデータの数、例えば64ビットデータバスを介して16個の4ビットデータが転送される場合、16サブアレイブロックを並行して指定するように生成する。読出時には、データの書込が行われたユニット演算子セルが並行して選択されるように、データビット数に応じた数の読出ワード線を並行して選択状態に駆動する構成が利用されれば良く、また読出選択信号CSLが読出サイクルごとに順次更新されれば良い。読出対象のサブアレイブロックの識別については、データ書込が行われたサブアレイに対してフラグをセットすることにより、識別を行なうことができ、また、並行して選択状態に駆動されるサブアレイの数を示すデータをレジスタ回路に格納し、このレジスタ回路の格納値に応じて、サブアレイブロックを選択状態へ駆動すればよい。
[変更例]
図192は、この発明の実施の形態20の変更例のセンスアンプ回路の構成を概略的に示す図である。図192において、センスアンプSAは、以下の点で図188に示すセンスアンプSAとその構成が異なる。すなわち、トランジスタQN6と直列にPチャネルSOIトランジスタQP15が設けられ、このトランジスタQP15は、ゲートがトランジスタQP1のゲートに接続される。トランジスタQN6とトランジスタQP3とは分離される。この図192に示すセンスアンプSAの他の構成は、図188に示すセンスアンプSAの構成と同じであり、対応する部分には同一参照符号を付して、その詳細説明は省略する。
この図192に示すセンスアンプSAの構成の場合、トランジスタQP1およびQP15がカレントミラー段を構成し、同じ大きさの電流を供給する。従って、トランジスタQP1には、センス読出ビット線RBLを解して供給される電流と同じ大きさの電流が流れ、従って、トランジスタQN6にもセンス読出ビット線RBLを介して供給される電流と同じ大きさの電流が流れる。
電流源回路826に対しては、フラグレジスタ1255が設けられる。このフラグレジスタ1255は、加算/減算指示フラグASFを格納し、MOSトランジスタQP11およびQN11の導通/非導通を、それぞれ、電流加算指示信号/POENおよび電流減算指示信号SUENに従って制御する。フラグレジスタ250に、ビット“0”が格納されている場合には、加算が指示され、所定のタイミングで電流加算指示信号/POENが活性化され(Lレベルとされ)、応じて、トランジスタQP11が導通する。このとき、電流減算指示信号SUENは、非活性状態のLレベルに維持され、トランジスタQN11がオフ状態となる。したがって、この場合には、トランジスタQP1およびQP10がカレントミラー回路を構成しており、読出ゲートCSGを介してグローバル読出データ線RGLに、センス読出ビット線電流IcのK倍の電流K・Icが供給される。
一方、フラグレジスタ1255にデータ“1”が格納されている場合には、減算が指示され、電流加算指示信号/POENが非活性状態のHレベル、電流減算指示信号SUENが活性化される(Hレベルに設定される)。応じて、トランジスタPQ11が非導通状態、トランジスタNQ11が導通状態となる。トランジスタQN10が、トランジスタQN6とカレントミラー回路を構成し、センス読出ビット線RBLを流れる電流IcのK倍の電流を流す。したがって、この場合には、グローバル読出線RGLから、読出ビット線RBLを流れる電流Icに応じた電流が引抜かれる。すなわち、負電流が供給される。この場合には、対応のユニット演算子セルに格納されるデータの減算が実行される。
この図192に示すセンスアンプSAの構成および読出ゲート34の他の構成は、図188に示すセンスアンプ回路SAKの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この図192に示すセンスアンプ回路を利用することにより、加算および減算をサブアレイブロック単位で設定して実行することができる。
なお、フラグレジスタ1255に格納されるフラグASFとしては、入力データが与えられるとき、このデータの最上位ビットが、符号ビットとしてデータに付されて転送され、その最上位ビットが加減算指示フラグASFとして対応のサブアレイブロックのフラグレジスタに転送されてラッチされればよい。このフラグレジスタの構成は、したがって、先の実施の形態19において図184において示した演算フラグラッチ回路892の構成を利用することができる。
以上のように、この発明の実施の形態20に従えば、1つのサブアレイブロックの同一列において、演算対象データの各ビットをそのビット位置に応じた数のユニット演算子セルに格納して、格納データの対応のセンス読出ビット線に読出して、センスアンプ回路によりグローバル読出データ線にセンス読出ビット線電流に応じた電流を供給している(減算時には負電流を供給する)。従って、ダミーセル電流を参照電流として正確に記憶データに対応するアナログ電流をグローバル読出データ線に読出して電流加算を行なうことができる。従って、この場合においても、キャリー/ボローを生成する必要がなく、実施の形態17と同様、低電源電圧下においても高速で加減算を実行することができる。
[実施の形態21]
図193は、この発明の実施の形態21に従う半導体信号処理装置の要部の構成を概略的に示す図である。図193において、メモリセルアレイ810に含まれるサブアレイブロックBK0−BKsにそれぞれ固定的に、書込データビットのビット位置が割当てられる。図193においては、サブアレイブロックBK0、BK4、…に対し、最下位ビット(第0ビット)<0>が割当てられ、サブアレイブロックBK1、BK5、…に第1ビット<1>が割当てられる。サブアレイブロックBK2、BK6、…に対し第2ビット<2>のデータビットが割当てられ、サブアレイブロックBK3、…、BKsに、第3ビット<3>が割当てられる。以下、図示しないサブアレイブロックに対しても、書込データのビット幅に応じて固定的に書込対象のデータビットの位置が定められる。
サブアレイブロックBK0−BKsのメモリサブアレイの構成は、図192に示す実施の形態20において用いた構成と類似する。ただし、データビットは、1つのユニット演算子セルに格納され、読出ワード線ドライブ回路およびデータ線ドライブ回路は1つの読出ワード線およびデータ駆動線を駆動する。メモリサブアレイブロックに対して数値データのビット位置の重付けがされているため、さらに、データビットを格納するユニット演算子セルの数に対して重みをつけることは、要求されない。
ユニット演算子セルは、図1および2に示す構成を有する。ADC帯812の構成は、図191に示す実施の形態20において利用した構成と同様である。
サブアレイブロックBK0−BKsにおいては、ローカル書込ワード線が配置されるため、これらのメモリセルアレイ810にサブアレイブロックに共通にグローバル書込データ線を駆動する書込ワード線用デコーダ1220が配置される。
サブブロックBK0−BKsに含まれるセンスアンプ帯に含まれるセンスアンプ回路の構成としては、実施の形態20において使用した図188または図192に示す構成を利用する。ただし、電流の加算または加減算処理が行なえるだけである。
この図193に示す構成の場合、各サブブロックにおいて、1つのユニット演算子セルには、1つの演算対象のデータの対応のビットが格納される。データ読出時、サブアレイブロックのセンスアンプ回路は、そのビット位置に応じた時間、グローバル読出データ線と接続される。すなわち、第0ビット<0>のビット位置(以下、ビット位置<0>と称す)が割当てられるサブブロックBK0、BK4、…に対しては、読出ゲートの導通時間は、時間t0である。ビット位置<1>が割当てられるサブブロックBK1、BK5、…に対しては、読出ゲートの導通時間は時間2・t0である。ビット位置<2>が割当てられるサブブロックBK2、BK6、…に対しては、読出ゲートの導通時間は4・t0である。第3ビット<3>のビット位置が割当てられるサブブロックBK3、…、BKsについては、読出ゲートの導通時間は8・t0である。一般に、ビット位置<i>が割当てられるサブアレイブロックの読出ゲートの導通時間は、単位時間t0の2のi乗倍である。
すなわち、ビット位置の重みに応じた時間、読出ゲートを導通状態として、センスアンプ回路に含まれる電流源回路からの電流供給の時間を設定する。これにより、ビット位置に応じた重み付けがされた電流が、対応の読出グローバルデータ線に伝達される。
図194は、サブアレイブロックBKaおよびBKbのセルサブアレイ820の構成を概略的に示す図である。図194において、読出ワード線RWL(RWLA、RWLB)それぞれに対して異なるデータが伝達される。すなわち、ビット<0>が割当てられるサブアレイブロックBKaにおいては、読出ワード線RWL0−RWLmそれぞれに対して接続されるユニット演算子セルUOEに対しては、行/データ線選択駆動回路XXDRaに含まれるデータ線ドライブ回路1234により、データ駆動線DIN0−DINmを介して、データA♯0−A♯mの最下位ビットA♯0<0>−A♯m<0>およびデータB♯0−B♯mの最下位ビットB♯0<0>−B♯m<0>が伝達される。
ビット<1>が割当てられるサブアレイブロックBKbにおいては、読出ワード線RWL0−RWLmそれぞれに対して接続されるユニット演算子セルUOEに対しては、データ駆動線DIN0−DINmを介して、対応の行/データ線選択駆動回路XXDRbに含まれるデータ線ドライブ回路1234により、データA♯0−A♯mの第1ビットA♯0<1>−A♯m<1>およびデータB♯0−B♯mの第1ビットB♯0<1>−B♯m<1>が伝達される。以下、同様に、他のサブアレイブロックに対しても、演算対象のデータの割当てられたビット位置のデータビットが転送されて格納される。
サブアレイブロックBKaおよびBKbにおいては、ローカル書込ワード線WWLが実施の形態20と同様に配設され、このローカル書込ワード線を選択状態に駆動するために、実施の形態20と同様、各サブアレイブロックにおいて、サブデコーダ帯1225が、センスアンプ帯822に隣接して配置される。
演算対象のデータのビット幅に応じて図示しないブロック選択信号に従ってローカル書込ワード線が選択状態に駆動され、演算対象のデータが格納される。
この演算対象のデータの書込シーケンスは、従って、実施の形態20の場合と同様であり、グローバル書込ワード線を順次選択状態に駆動して、データの書込を行う。
メモリアレイ810の同一列には、演算対象のデータの組が配置され、異なる列には別の演算対象のデータの組が配置される。必要な演算データの書込が完了するまで、ブロック選択信号およびグローバル書込ワード線を順次更新して演算データの書込を実行する。
データ読出時においては、データ書込が行われたユニット演算子セルが結合される読出ワード線RWL(RWLA、RWLB)を、読出ワード線ドライブ回路1230により、並行して選択状態に駆動する。対応のセンス読出ビット線RBLに、ユニット演算子セルUOEに格納されたデータビットの値に応じた電流が流れる。ダミーセルDMCが供給する電流を参照電流として、このセンス読出ビット線RBLを流れる電流に対応する大きさの電流を、センスアンプ回路SAKにより生成して、対応のグローバル読出ビット線に伝達する。
なお、図194に示す構成において、ダミーセルDMCが、各サブアレイブロックにおいて1行に配列されるように示す。しかしながら、ダミーセルDMCは、複数行に配列され、対応のサブアレイブロックにおいて並行して選択状態とされるユニット演算子セルと同数のダミーセルが選択状態に駆動されても良い。
図195は、この発明の実施の形態21に従う半導体信号処理装置のデータ読出部の構成を概略的に示す図である。図195においては、サブアレイブロックBK0、BK1、…、BKsを代表的に示す。このセルサブアレイ820においては、1つのユニット演算子セルUOEに、対応のビットのデータが格納され、センスアンプ回路SAKにより、選択ユニット演算子セルが流す電流に応じた電流が生成される。
サブアレイブロックBK0に対しビット位置<0>が割当てられ、サブアレイブロックBK1にビット位置<1>が割当てられる。サブブロックBKsに対してはビット位置<k>が割当てられる。データの書込については、先の実施の形態20と同様にして、列単位でデータが書込まれる。すなわち、1本のローカル書込ワード線を選択状態へ駆動して、データ線ドライブ回路1234により、ブロック選択信号が指定するサブアレイブロックに対するデータの書込が実行される。
データ読出時においては、単位演算ブロックOUBa、OUBb、…に対し、まず、読出選択信号CSL♯0<0>−CSL♯s<0>がオン状態に設定される。この場合、サブアレイブロックBK0に対する読出選択信号CSL♯0<0>は、時間t0の間オン状態に設定される。サブアレイブロックBK1に対しては、読出選択信号CSL♯1<0>は、時間2・t0の間オン状態に設定される。サブアレイブロックBKsに対しては、時間(2^k)・t0の間読出選択信号CSL♯s<0>がオン状態に設定される。ここで、記号^は、べき乗を示す。したがって、各サブアレイブロックに割当てられたビット位置に応じた時間、センスアンプ回路SAKから対応のグローバル読出データ線RGLに対し電流が供給される。
この図195に示す他の読出部の構成は、図191に示すデータ読出部の構成と同じであり、対応する部分には同一参照符号を付し、その詳細説明は省略する。センスアンプ回路SAKに含まれる電流源回路から読出ゲートCSGを介して供給される電流が、グローバル読出データ線に流れる時間が、このデータのビット位置に応じた時間に設定されている。各ビットの電流が、さらに対応のグローバル読出データ線RGLに転送される時間が異なり、応じてビット位置に応じた重み付けが行われている。従って、電流合計線VM(VMa,VMb)における電圧上昇に関して、そのビット位置に応じた重み付けがされた電圧上昇を生じさせることができる。
なお、この図195に示す読出部に対して読出選択信号CSL♯を選択状態に設定する時間としては、以下のように設定する。すなわち、各サブアレイブロックBK0−BKsに対しビット位置が予め割当てられているため、対応の読出活性化回路における読出選択信号を選択状態に維持する時間が、予め個別的に設定されていればよい。従って、制御回路の構成としては、データ読出時、読出ワード線は、書込が行われたユニット演算子セルが結合する複数の読出ワード線が並行して選択状態に駆動されるため(1つのサブアレイブロックにおいては1つのユニット演算セル行が選択される)、実施の形態20と同様の構成を利用することができる。但し、ワード線ドライバの構成としては、実施の形態17から19のいずれかの構成を利用する。
なお、図195に示す構成においては、1演算単位ブロックOUB内において1本のグローバル読出データ線に対して1演算結果が生成される。しかしながら、1演算単位ブロック内において複数本のグローバル読出データ線に対して並行してデータ電流を供給する事により、加算演算対象のデータの数を増加させることができる。また、各列単位で加算/減算を指定するフラグをセットして電流源回路の電流供給動作を制御することにより、複数列の演算対象のデータの組の加算および減算を実行することができる。すなわち、例えば第1のグローバル読出データ線には、読出ビット線電流に応じた電流を供給し、第2のグローバル読出データ線には、読出ビット線電流に応じた電流を引き抜くことにより、第1のグローバル読出データ線に得られる演算結果から第2のグローバル読出データ線に得られる演算結果を減算することができる。
また、同一ビット位置が割当てられるサブアレイブロック、すなわち利用されるサブアレイブロックの数は、演算対象のデータの数および演算内容に応じて適宜定められれば良い。
以上のように、この発明の実施の形態21に従えば、各メモリサブブロックに対し、演算データのビット位置を予め割当て、センスアンプ回路からの電流をグローバル読出データ線に流す時間を、各ビット位置の重みに応じた時間に設定している。したがって、この場合においても、高速で、加算を実行することができる。また、各サブアレイブロックにおいては、データ書込時および読出時に1つの書込ワード線および読出ワード線が選択状態へ駆動されるだけであり、消費電流は低減される。
演算対象データとしては、この上述の説明においては、4ビットデータを一例として示している。しかしながら、この演算対象データのビット幅は任意であり、適用される用途に応じて適宜定められればよい。
また、上述の説明においては、ユニット演算子セルとしては、SOIトランジスタが用いられている。しかしながら、記憶データに応じてユニット演算子セルを流れる電流量が異なり、応じてビット線を流れる電流が異なる、例えばMRAMセルなどのセル構造であれば、本発明は適用可能である。
例えば、MRAMセルを利用する場合、センスアンプSAとして図140に示すセンスアンプを利用することにより、この実施の形態17から21に示す電流加算およびA/D変換処理を実現することができる。メモリセルアレイの配置としては、実施の形態16において説明した構成を利用することができる。但し、MRAMセルを利用する場合、データの書込および読出に対して、共通にビット線BLが利用されるため、書込ポートと読出ポートをメモリセルに対して別々に設ける構成を実現する場合には、例えば以下のような構成が必要とされる。すなわち、可変磁気抵抗素子と物理的に分離される書込ワード線(デジット線)に書込データに応じた方向に書込電流を流し、可変磁気抵抗素子に電気・磁気的に的に接続されるビット線には、書込時、一定の方向に電流を流す。これにより、1列に整列する共通のビット線に結合されるメモリセルに対して並行して異なるデータの書込を行なうことができる。
UOE,UOEA,UOEB ユニット演算子セル、20 演算子セルアレイ、OAR0−OAR31,OAR 演算子セルサブアレイブロック、22 行選択駆動回路、24 メインアンプ回路、26 組合せ論理演算回路、28 データパス、XDR 行ドライブ回路、32 メモリセルアレイ、34 ダミーセル帯、36 読出ポート選択回路、38 センスアンプ帯、PRSW ポート接続回路、CSG,CSG0−CSG24−CSG31 読出ゲート、DPUB,DPUB0−DPUB4 データパス単位ブロック、UCL,UCL4k,UCL4k+1 単位演算ブロック、60 マルチプレクサ、90 ブロック選択回路、300 演算データ入出力/処理回路、302a,302b 演算単位ブロック、310 データ列変換回路、320 マルチプレクサ、164 4ビット加算/減算処理回路、AOCT0,AOCT1 AND/OR複合ゲート、324 マルチプレクサ、PQ1−PQ3 PチャネルSOIトランジスタ、NQ1−NQ3 NチャネルSOIトランジスタ、412 グローバル書込ドライバ、ML マッチ線、TQ1 放電用トランジスタ、450 テンポラリーレジスタ、452,454 マルチプレクサ、XXDR0−XXDR31 行/データ線選択駆動回路、520 Aポート書込ワード線用デコーダ、524,526 グローバル書込ドライバ、522 Aポート読出ワード線駆動回路、530 ワード線ドライブ回路、534 データ線ドライブ回路、540 フラグレジスタ、550 充電用トランジスタ、552 放電用トランジスタ、560 センスアンプ回路、RGL,RGL<0>およびRGL<1> グローバル読出データ線、BSDV サブアレイブロック選択ドライバ、BUF1,BUF2 バッファ、DMC0,DMC1 ダミーセル、DTA,DTB0,DTB1 ダミートランジスタ、G1,GI0〜GI3,GJ0〜GJ3,GK0〜GK3 ANDゲート、G2 マルチプレクサ、GBL グローバルビット線、GRA 比較増幅回路、MLA,MLAI,MLAK サブメモリアレイ、MLASELDV サブブロック選択ドライバ、NN1,NN2,NN3,NN4,NN5,NN6,NN7,SAT1,ZSAT1,SAT2,ZSAT2,TR1 トランジスタ、OPSELDV 演算選択ドライバ、PT1〜PT7 トランジスタ、SA,SA1,SA2 センスアンプ、SADV1,SADV2 センスアンプ選択ドライバ、SAL1,SAL2 信号線、SBLA,SBLB,SBLC,SBLD サブブロック、SL,SLEX ソース線、DMSW1,SW,SW1,SW11,SW2,SWOAR,PRSWA,PRSWB スイッチ、PRSWC0,PRSWC1 スイッチ回路、UOEI0,UOEI1,UOEJ0,UOEJ1,UOEK0,UOEK1 ユニット演算子セル、VREF1〜VREF4 基準電圧源、WWADV,WWBDV 書込ドライバ、WDATADV,WDATBDV 書込データドライバ、WWL 書込ワード線、XDR0〜XDR31 行ドライブ回路、ZBL ビット線、ZSAL1,ZSAL2 信号線、670 列選択駆動回路、675 サブ書込ワード線ドライバ帯、MCI,MCJ,MCK メモリセル、WDVA,WDVB ビット線書込ドライバ、BK0−BKs サブアレイブロック、810 メモリセルアレイ、812 ADC帯、814 データパス、816 セル選択駆動回路、818 制御回路、820 セルサブアレイ、822 センスアンプ帯、823 ポート接続回路、824 読出ゲート回路、SAK0,SAK1 センスアンプ回路、826,826<0>,826<1> 電流源回路、835a−835n,835 ADC、845 チューナブル電圧発生回路、847 プリチャージトランジスタ、OUBa−OUBn 演算単位ブロック、RGL0−RGLk グローバル読出データ線、WGB0−WGB3 グローバル書込データバス、WGLA ポートAグローバル書込データ線、WGLB ポートBグローバル書込データ線、WDRA/B グローバル書込ドライバ、WDRA ポートAグローバル書込ドライバ、WDRB ポートBグローバル書込ドライバ、850a−850d,851a−851d レジスタ回路、UOE00,UOE01,UOEm0,UOEm1 ユニット演算子セル、852 スイッチボックス、RGL,RGL0−RGL127,RGLk グローバル読出データ線、RWL 読出ワード線、WWL ローカル書込ワード線、XXDRa,XXDRb 行/データ線選択駆動回路、1230 ワード線ドライブ回路、1234 データ線ドライブ回路。