[実施の形態1]
図1は、この発明に従う半導体記憶装置が適用される半導体信号処理システムの全体の構成を概略的に示す図である。図1において、信号処理システム1は、各種処理を実行する演算機能を実現するシステムLSI10と、システムLSI10と外部システムバス15を介して接続される外部メモリとを含む。
外部メモリは、大容量メモリ16と、高速メモリ17と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ(リード・オンリ・メモリ:ROM)18とを含む。大容量メモリ16は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)で構成される。高速メモリ17は、たとえば、スタティック・ランダム・アクセス・メモリ(SRAM)で構成される。
システムLSI10は、たとえばSOC(システム・オン・チップ)構成を有し、内部システムバス19に並列に結合される基本演算ブロックFB1−FBnと、これらの基本演算ブロックFB1−FBnの処理動作を制御するホストCPU2と、信号処理システム1外部からの入力信号INを内部処理用データに変換する入力ポート29と、内部システムバス19から与えられた出力データを受けてシステム外部への出力信号OUTを生成する出力ポート28を含む。これらの入力ポート29および出力ポート28は、たとえば、ライブラリ化されたIP(インタレクチュアル・プロパティ)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。
システムLSI10は、さらに、基本演算ブロックFB1−FBnからの割込信号を受付け、ホストCPU2に対して割込を通知する割込コントローラ21と、ホストCPU2の各処理に必要な制御動作を行なうCPU周辺22と、基本演算ブロックFB1−FBnからの転送要求に従って外部メモリ(16−18)に対するデータ転送を行なうDMAコントローラ23と、ホストCPU2またはDMAコントローラ23からの指示に従って外部システムバス15に接続されるメモリ16−18に対するアクセス制御を行なう外部バスコントローラ24と、ホストCPU2のデータ処理を補助する専用ロジック25とを含む。これら機能ブロック21−25、28および29およびホストCPU2が並列に内部システムバス19に結合される。
CPU周辺22は、タイマおよびシリアルIO(入出力)等のホストCPU2におけるプログラムおよびデバッグの用途に必要な機能を有する。専用ロジック25は、たとえばIPブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。
DMAコントローラ23は、ホストCPU2を介することなく直接、外部メモリ(16−18)へアクセスするために用いられる。このDMAコントローラ23の制御により、外部メモリ16および/または17とシステムLSI10との間でデータを転送することができ、また、このシステムLSI10へ直接アクセスすることができる。DMAコントローラ23に対するDMA要求信号は、基本演算ブロックFB1−FBnから与えられる。
基本演算ブロックFB1−FBnは、同一構成を有しており、図1においては、代表的に、基本演算ブロックFB1の構成を示す。
基本演算ブロックFB1は、メモリセルアレイおよび演算器を含む主演算回路30と、マイクロコード化された実行プログラムを格納するマイクロ命令メモリ33と、基本演算ブロックFB1の内部動作を制御するコントローラ31と、アドレスポインタ等として用いられるレジスタ群32と、コントローラ31における中間処理データまたは作業用データを格納するワークデータメモリ36と、基本演算ブロックFB1内部と内部システムバス19との間でのデータ/信号の転送を行なうシステムバスインターフェイス(I/F)50を含む。
主演算回路30は、メモリセルが行列状に配列されるメモリセルマット40と、メモリセルマット40の一方端側に配列される演算処理ユニット(ALU)群42を含む。
メモリセルマット40においては、行列状に配列されるメモリセルが複数のエントリに分割され、各エントリに対応して演算処理ユニット(ALU)44が演算処理ユニット群42において配置される。演算処理ユニット44は、加算、論理式、一致形式(EXOR)、および反転(NOT)などの演算を実行することができる。エントリと対応の演算処理ユニット44の間でデータのロードおよびストアを行なって演算処理を実行する。
この演算処理ユニット群42の演算処理ユニット44間の接続経路を切換えるために、ALU間相互接続用スイッチ回路46が設けられる。このALU間相互接続用スイッチ回路46を用いて演算処理ユニット44の接続経路を切換えることにより、メモリセルマット40に格納されるデータ項目に対してコピー動作などのエントリ間でのデータ転送を行なって、処理を行なうことができる。
システムバスI/F50により、ホストCPU2またはDMAコントローラ23が、メモリセルマット40、コントローラ31内の専用レジスタ、マイクロ命令メモリ33およびワークデータメモリ36へアクセスすることができる。
基本演算ブロックFB1−FBnには、異なるアドレス領域(CPアドレス領域)が割付けられる。また、基本演算ブロックFB1−FBn各々内のメモリセルマット40、コントローラ31内の制御レジスタ、マイクロ命令メモリ33およびワークデータメモリ36についても、それぞれ異なるアドレス(CPUアドレス)が割付けられる。各割付けられたアドレスに従って、ホストCPU2およびDMAコントローラ23が、アクセス対象の基本演算ブロックFB(FB1−FBn)を識別し、アクセス対象の基本演算ブロックに対するアクセスを実行する。
基本演算ブロックFB1は、さらに、システムバスI/F50との間でのデータ配列を変換する直交変換回路52と、直交変換回路52およびシステムバスI/F50の一方を選択して主演算回路30に結合する切換回路54を含む。直交変換回路52は、システムバスI/F50からビットパラレルかつワードシリアルな態様で転送されるデータを、ワードパラレルかつビットシリアルな態様のデータに変換し、切換回路54を介して主演算回路30のメモリセルマット40へ転送する。
メモリセルマット40の各エントリに、異なるデータワードの同一位置のビットが並列に書込まれる。また、この直交変換回路52は、主演算回路30のメモリセルマット40からワードパラレルかつビットシリアルに転送されるデータ列を直交変換して、ビットパラレルかつワードシリアルな態様のデータ列を生成してで転送する。これにより、システムバス19とメモリセルマット40における転送データの整合性を維持する。
ここで、直交変換は、ビットシリアルかつワードパラレルデータとビットパラレルかつワードシリアルデータの間の変換を示す。ビットシリアルデータは、データワードの各ビットが順次転送される態様を示し、ワードパラレルは、複数のデータワードが並列に転送される態様を示す。ビットパラレルは、1つのデータワードのビットが並列に転送される態様を示し、ワードシリアルは、データワードがワード単位で順次転送される態様を示す。
切換回路54は、コントローラ31からのワークデータを選択して、主演算回路30に転送するように構成されてもよい。メモリセルマット40をワークデータ格納領域として利用することが可能となり、ワークデータメモリ36が不要となる。また、演算対象データを直交変換する必要のない場合には、この切換回路54は、システムバスI/F50を主演算回路30に結合する。
基本演算ブロックFB1−FBnそれぞれにおいて、データの入出力機能を分散して配置することにより、基本演算ブロック単位で、データの直交変換の有無を決定することができ、基本演算ブロックFB1−FBnそれぞれの処理内容に応じて柔軟にデータ配列を設定することができる。
なお、このシステムLSI10において、基本演算ブロックFB1−FBnに共通に、集中制御ユニットが設けられてもよい。この集中制御ユニットが、制御用CPUおよび命令メモリおよびレジスタ群を含む。ホストCPU2から、この集中制御ユニットへ制御系を手渡し、基本演算ブロックFB1−FBnの処理動作を制御する。この構成の場合、手中制御ユニットが、さらに、基本演算ブロックFB1−FBnないのコントローラ31に対して制御を手渡して基本演算ブロック単位で処理動作が制御される。
図2は、図1に示す基本演算ブロックFB1−FBn各々に含まれる主演算回路30に含まれるメモリセルマット40と演算処理ユニット群42の構成を概略的に示す図である。メモリセルマット40においては、メモリセルMCが行列状に配列され、各メモリセル列が1つのエントリERYを構成するようにメモリセルマット40が分割される。
すなわち、メモリセルマット40においては、メモリセルMCが、m個のエントリERYに分割される。1つのエントリERYは、nビットの幅を有し、メモリセルマット40におけるビット線延在方向に沿って1列に整列して配置されるメモリセルで構成される。メモリセルマット40において、エントリ数mは、一例として1024であり、1エントリERYのビット幅nは、512ビットである。
メモリセルマット40の一方端側に配置される演算処理ユニット群42においては、エントリERYそれぞれに対して、演算処理ユニット44が配置される。エントリERYと対応の演算処理ユニット44との間でデータのロードおよびストアを行なって演算処理を実行する。
エントリERY各々に、演算処理対象のデータが格納される。演算処理ユニット44は、ビットシリアル態様で演算処理を実行する。演算処理ユニット群42においては、複数の演算処理ユニット44が並列に動作して演算処理を実行するため、ビットシリアルかつエントリパラレルな態様でデータの演算処理が実行される。エントリパラレルな態様は、複数のエントリが並行して処理される態様を示す。
演算処理ユニット44においてビットシリアル態様で演算処理を実行することにより、演算対象のデータのビット幅が用途に応じて異なる場合においても、単に、演算サイクル数をデータワードのビット幅に応じて変更することにより対応することができ、処理内容を変更する必要がなく、語構成の異なるデータの処理に対しても容易に対応することができる。
図2においては、また、2項演算時の各エントリの格納データの一例を示す。2項演算実行時には、エントリERY各々において、2項データワードのビットに対して転送を行なって演算処理を行って、この演算結果データビットの格納を行なう。図2においては、データaおよびbの2項演算を対応の演算処理ユニット44において実行した後、その演算結果が、データcとして同一エントリERYの所定の位置に書込まれる。すなわち、一例として、データaおよびbの加算を行なう場合、加算対象の組のデータが、エントリERYそれぞれに格納される。すなわち、図2における第1行目のエントリERYについては、対応の演算処理ユニット44により、10B+01Bの加算が行なわれ、2行目のエントリに対する演算処理ユニット44においては、00B+11Bの演算が行なわれる。ここで、“B”は、2進数を示す。第3行目のエントリERYに対する演算処理ユニット44においては、11B+10Bの加算が実行される。以下、同様に、各エントリについて、格納されたデータワードaおよびbの加算演算が行なわれ、その加算結果が、対応のエントリ内に格納される。
この演算は、下位側ビットから順次ビットシリアル態様で行なわれる。すなわち、エントリERYにおいて、先ずデータワードaの下位ビットa[0]を対応の演算処理ユニット44へ転送する。次に、データワードbの下位ビットb[0]を対応の演算処理ユニット44へ転送する。演算処理ユニット44においては、与えられた2ビットのデータを用いて加算演算を行なう。この加算演算結果a[0]+b[0]は、データワードcの下位ビットc[0]に対応し、対応の位置のエントリに格納される(書込まれる)。たとえば、第1行目のエントリERYにおいて、加算結果“1”が、ビットc[0]の位置に書込まれる。
この加算処理が、上位ビットa[1]およびb[1]に対しても実行され、その演算結果a[1]+b[1]は、ビットc[1]の位置に書込まれる。
加算演算を実行する場合、桁上がりが生じる可能性があり、この桁上がり(キャリー)値が、ビットc[2]の位置に書込まれる。1024個のエントリERYが設けられる場合、1024組のデータの加算を並列に実行することができる。
例えば、メモリセルマット40と演算処理ユニット44との間でのデータビットの転送にそれぞれ1マシンサイクルが必要とされ、また演算処理ユニット44において1マシンサイクルの演算サイクルが必要とされる構成の場合、2ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。各エントリにおいて並列に演算を実行しており、この4マシンサイクル完了後、m組のデータの加算処理が完了している。
従って、メモリセルマット40を複数のエントリERYに分割し、各エントリERYに演算対象データの組をそれぞれ格納し、対応の演算処理ユニット44においてビットシリアル態様で演算処理を行なう構成により、以下の特徴が実現される。すなわち、1つ1つのデータの演算には比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより、高速データ処理を実現することができる。また、ビットシリアル態様で演算処理を行なうことにより、処理されるデータのビット幅は固定されないため、処理のデータ構成およびそのアプリケーションに容易に適用することができる。
図3は、主演算回路30の構成をより具体的に示す図である。メモリセルマット40においては、メモリセルMCの各行に対応してワード線WLが配置され、メモリセル列それぞれに対応してビット線対BLPが配置される。メモリセルMCは、これらのワード線WLおよびビット線対BLPの交差部に対応して配置され、対応のワード線WLおよびビット線対BLPに接続される。メモリセルMCは、一例としてSRAM(スタティック・ランダム・アクセス・メモリ)セルで構成される。
エントリERYは、ビット線対BLPに対応して設けられる。図3におていは、メモリセルマット40において、ビット線対BLP0からBLP(m−1)それぞれに対応してエントリERY0−ERY(m−1)が配置される。ビット線対BLPが、エントリERYと対応の演算処理ユニット44との間のデータ転送線として利用される。
メモリセルマット40のワード線WLに対しては、ロウデコーダ66が設けられる。ロウデコーダ66は、図1に示すコントローラ31からのアドレス信号に従って、演算対象のデータビットを格納するメモリセルが接続されるワード線WLを選択状態へ駆動する。ワード線WLには、エントリERY0−ERY(m−1)の同じビット位置のメモリセルが接続されており、ロウデコーダ66により、エントリERY0−ERY(m−1)それぞれにおいて同一位置のデータビットが並行して選択される。
演算処理ユニット群42においては、演算処理ユニット44が、ビット線対BLP0−BLP(m−1)それぞれに対応して配置される(図3においては、処理ユニット群ALU群)42において●印で示す。演算処理ユニット群42とメモリセルマット40との間に、データのロード/ストアを行なうためのセンスアンプ群60およびライトドライバ群62が設けられる。センスアンプ群60は、ビット線対BLPに対応して設けられるセンスアンプを含み、対応のビット線対BLPに読出されたデータを増幅して演算処理ユニット群42の対応の演算処理ユニット(44)に伝達する。
ライトドライバ群62も同様、ビット線対BLPそれぞれに対応して配置されるライトドライバを含み、対応の演算処理ユニット(44)からのデータを増幅して対応のビット線対BLPへ転送する。
これらのセンスアンプ群60およびライトドライバ群62に対し、図1に示す切換回路54との間でデータ転送を行なうための内部データバス68が配置される。図3においては、この内部データバス68は、センスアンプ群60およびライトドライバ群62にそれぞれ別々に接続されるバス線を含むように示されるものの、これらのセンスアンプ群60およびライトドライバ群62へは、共通のデータバス線が接続されてもよい。また、内部データバス68とセンスアンプ群60およびライトドライバ群62との間に、データ入出力用のインターフェイス(入出力バッファ)が配置されていてもよい。
演算処理ユニット群42に対して、設けられるALU間相互接続用スイッチ回路46は、演算処理ユニット群42に含まれる演算処理ユニットの相互接続経路を、図1に示すコントローラ31からの制御信号に基づいて設定する。これにより、バレルシフタなどと同様に、隣接演算処理ユニット間でのデータ転送のみならず、物理的に遠くに離れた演算処理ユニット間でのデータ転送が可能となる。このALU間相互接続用スイッチ回路46は、たとえば、FPGA(フィールド・プログラマブル・ゲート・アレイ)などを用いたクロスバースイッチで実現される。演算処理ユニット群42に含まれる各演算処理ユニットは、図1に示すコントローラ31からの制御信号に従って、その演算処理動作タイミングおよび演算操作内容が決定される。
この図3に示すように、エントリERY0−ERY(m−1)には、演算対象のデータが格納される。図3においては、エントリERY0に格納されるデータDATAを代表的に示す。メモリセルマット40にデータを書込む場合、ライトドライバ群62により、選択ワード線WLに接続されるメモリセルMCへ並列にデータを書込む。内部データバス68のバス幅により、一度に書込むことのできるデータビット幅は制限される。この場合、異なるエントリの同一位置のデータビットを、選択ワード線WLに接続される異なるエントリのメモリセルへそれぞれ書込むことが要求される。一方、図1に示すシステムバスI/Fは、データDATAをビットパラレル態様でシリアルに転送する。このため、システムバスI/F(図1のI/F50)と内部データバス68との間のデータ配列を変換するために、図1に示す直交変換回路52が用いられる。
図4は、図1に示す直交変換回路52の構成を概略的に示す図である。図4において、直交変換回路52は、K×Lのマトリクス状に配列される記憶素子を有する直交メモリ80と、直交メモリ80とシステムバスI/F50との間のインターフェイスをとるシステムバス/直交変換回路インターフェイス(I/F)82と、メモリセルマット40に対して設けられる入出力インターフェイス部(I/F)に対するインターフェイスをとるメモリセルマット/直交変換回路I/F84と、システムバス19と直交メモリ80との間でのデータ転送を制御する対外部データ制御回路88と、メモリセルマット入出力I/Fと直交メモリ80との間でのデータ転送を制御する対内部データ制御回路86を含む。
直交変換回路52とシステムバス19との間でLビット単位でデータの転送が行なわれ、また、直交変換回路52とメモリセルマット40との間でLビット単位でのデータ転送が行なわれる。転送データビット幅Lは、内部システムバス19を転送されるデータワードのビット幅と同一であってもよく、またシステムバスI/F50(図1参照)においてビット幅変換が行なわれ、複数ワードデータが並列に、システムバスI/F50と直交変換回路52との間で転送されてもよい。内部データバス68のビット幅についても同様である。
対内部転送制御回路86は、メモリセルマットと直交変換回路52との間でのデータ転送時、直交メモリ80に対するアドレスの生成およびメモリセルマットに対するアドレスの生成を行なうとともに、メモリセルマット/直交変換回路I/F84におけるバッファ処理を制御する。
対内部転送制御回路86が動作して、メモリセルマット(40)との間でのデータ転送が行なわれている場合、対内部転送制御回路86は、対外部転送制御回路88の動作を制御し、システムバス19との間でのデータ転送にウェイトをかける。また、対内部転送制御回路86は、メモリセルマットへのデータ転送時、直交メモリ80のエントリ位置情報およびビット位置情報に基づいてアドレス計算を行なって主演算回路(30)に、この計算したアドレスを転送する。
対外部転送制御回路88は、システムバス19との間でのデータ転送時、直交メモリ80のX方向のアドレスを順次生成して、直交メモリ80にX方向に沿って順次データアクセスを行なう(データの書込または読出を行なう)ように制御を行なう。一方、対内部転送制御回路86は、メモリセルマットとの間でのデータ転送時、直交メモリ80のY方向に沿ったアドレスを生成して直交メモリ80のY方向に沿って順次データアクセスを行なうように制御する。
直交メモリ80は、その構成は後に詳細に説明するが、2ポートメモリであり、システムバス/直交変換回路I/F82との間でエントリ単位のデータDTEを転送し、また、メモリセルマット/直交変換回路I/F84との間で、複数エントリにわたるビット単位のデータDTBを転送する。
直交メモリ80において、Y方向に整列するデータDTEが、外部アドレス(CPUアドレス)単位のデータであり、メモリセルマットにおいては同一のエントリに格納するエントリ単位のデータである。したがって、外部アドレス(CPUアドレス)から見た場合、メモリセルマットとの間でのデータ転送時、X方向に整列するビットの転送が行なわれるため、ワードパラレルかつビットシリアルの態様でデータの転送が行なわれる。ビット単位のデータDTBは、主演算回路のメモリセルマット(40)において複数のエントリの同一位置のビットで構成される主演算回路のメモリセルマットのワード線アドレス単位のデータを表わす。
直交メモリ80において、システムバス(19)とのデータ転送を行なうポートと、メモリ内部バス(68)との間でのデータ転送を行なうポートとを別々に設けることにより、X方向データおよびY方向データを並べ替えてデータの転送を行なうことができる。システムバス19からの多ビットデータ(エントリ単位の多ビットデータ)のメモリセルマット(40)への転送時、ビット単位の多ビットデータに変換して転送する。したがって、直交メモリ80において、データの並びについて、ワードパラレルかつビットシリアルデータ列とワードシリアルかつビットパラレルデータ列の間での変換が行なわれる。この変換処理を、データの直交変換とここでは規定する。
図5は、図4に示す直交変換回路52のメモリセルマットへのデータ転送時の動作を示すフロー図である。以下、図4に示す直交変換回路52の動作について、図1および図5を参照して説明する。
メモリセルマットのデータ転送時においては、システムバス19上のデータと同一ビット幅のデータ(K=L)が、直交変換回路52から主演算回路30のメモリセルマット(40)に転送される場合を想定する。すなわち、データの直交変換は行なわれるものの、データビット幅についての変換は行なわれない。したがって、システムバス19のデータのビット幅が内部システムバス68のデータのビット幅と等しい場合の転送動作について説明する。
主演算回路のメモリセルマットの書込対象の先頭のビット位置(ワード線アドレス)およびエントリ位置(ビットアドレス)をそれぞれ対内部転送制御回路86の図示しないレジスタに設定し、また、対内部転送制御回路86をデータ読出モードに設定し、対外部転送制御回路88をデータ書込モードに設定する。また、直交メモリ80に対するアドレスを初期アドレスに設定する。これらの一連の処理により、直交変換回路52における初期設定が完了する(ステップSP1)。
次に、システムバスI/F50からシステムバス/直交変換回路I/F82経由で、直交メモリ80に対して転送データが対外部転送制御回路88の制御のもとに書込まれる。この直交メモリ84の書込データは、Y方向に整列するエントリ単位の多ビットデータDTEとして直交メモリ80のX方向について先頭行から順次格納される。直交メモリ80に対するデータ書込ごとに、対外部転送制御回路88は、書込回数をカウントし、直交メモリ80のアドレスを更新する(ステップSP2)。
直交メモリ80の記憶内容がフル状態となるまで、すなわち、この直交メモリ80へのシステムバス19からのデータ書込回数が主演算回路のメモリセルマットに対する転送データビット幅Kに到達するまで、データの書込が行なわれる(ステップSP3)。
直交メモリ80に対してシステムバス19からシステムバス/直交変換回路I/F82を介してL回データ書込が行なわれると、直交メモリ80から主演算回路のメモリセルマットへのデータ転送を行なうために、対内部転送制御回路86がシステムバス19に対するウェイト制御信号をアサートし、対外部転送制御回路88を後続のデータ書込を待機させる状態に設定する(ステップSP4)。
直交メモリ80の記憶状況がフル状態であるかは、この外部転送制御回路88が直交メモリ80に対してデータを書込んだ回数をカウントするごとにモニタすることができる。このモニタ結果が、対外部転送制御回路88から対内部転送制御回路86に報知され、直交メモリ80の記憶状況が対内部転送制御回路86により把握される。対内部転送制御回路86からのウェイト制御信号のアサートにより、対外部転送制御回路88がシステムバス/直交変換回路I/Fをウェイト状態に設定し、応じてシステムバスI/F50がウェイト状態に設定される。
対内部転送制御回路86は、対外部転送制御回路88に対するウェイトをかけるとともに、メモリセルマット/直交変換回路I/F84を活性化する。対内部転送制御回路86の制御のもとに、このメモリセルマット/直交変換回路I/F84により、直交メモリ80のY方向についての先頭アドレスから順次データを読出し、メモリセルマット/直交変換回路I/F84を介して主演算回路のメモリセルマットへデータが転送される(ステップSP5)。
主演算回路メモリセルマットへのデータ転送により、直交メモリ80の記憶データがすべて転送されたかの判定が各転送ごとに行なわれる(ステップSP6)。すなわち、対内部転送制御回路86は、直交メモリ80からデータ読出して転送を行なった回数をカウントし、そのカウント値がLに到達するかをモニタする。このカウント値がLとなるまで、直交メモリ80からメモリセルマット/直交変換回路I/F84を介してのKビット単位でのデータ転送が継続される。
ステップSP6において、直交メモリ80のデータがすべて転送されたと判定されると、次いで演算対象のデータがすべて転送されたかの判定が行なわれる(ステップSP7)。演算対象の転送データがまだ残っている場合には、再び、直交メモリ80へのデータ格納を行なうため、直交メモリ80に対するアドレスを初期値に更新し、またデータ転送回路を初期化し(ステップSP8)、再びステップSP2からの処理を開始する。
このステップSP8からステップSP2へ戻った場合には、アドレス更新処理(ステップSP8)が行われて、メモリセルマットにおけるエントリ位置を表わすアドレスがK加算されて対内部転送制御回路86において、直交メモリ80に格納されるデータのメモリセルマットにおける先頭エントリ位置が更新される(m>Kの場合)。
このエントリ位置情報が、主演算回路のメモリセルマットにおけるエントリ数を超えた場合には、メモリセルマット(40)において次のワード線を選択して次のビット位置にデータを書込む必要があり、このエントリ位置情報が初期値の0に設定され、また、メモリセルマット40において次のワード線を選択するため、ワード線アドレス(ビット位置情報)が1増分される。
対内部転送制御回路86は、対外部転送制御回路88に対してシステムバス19のウェイトを解除し、再び、システムバス19から対外部転送制御回路88が直交メモリ80に対するデータの書込を再開する。
これらのステップSP2からSP8の動作が、演算対象のデータがすべて転送されるまで繰返し実行される。
ステップSP7において、演算対象のデータがすべて転送されたと判定されると(システムバスI/Fからの転送要求がデアサートされることにより判定される)、データ転送が終了する。これらの一連の処理により、外部からのワードシリアルに転送されるデータをビットシリアルかつワードパラレルなデータに変換してメモリセルマットに転送することができる。
図6は、図1に示す大容量メモリ(SSRAM)16からメモリセルマット40へのデータ転送のデータの流れを模式的に示す図である。図6において、メモリセルマット40に対するデータのビット幅Lが4ビットの場合のデータ転送が一例として示される。
図6において、4ビットデータ(ビットA0−A0)ないしI(ビットI3−I0)がSDRAM16に格納される。SDRAM16においては、各データは、ワードシリアルにワード単位で格納される。SDRAM16から内部システムバス19を介して4ビットデータDTE(データI:ビットI3−I0)が直交メモリ80へ転送されて格納される。SDRAM16からのデータDTEは、メモリセルマットにおいて同一のエントリERY内に格納されるエントリ単位のデータであり、直交メモリ80においては、Y方向にデータビットが整列して格納される。図6において、データE−Hが格納された状態が一例として示される。
直交メモリ80からメモリセルマット40へのデータ転送時において、直交メモリ80のX方向に整列するデータDTBの各ビットが並列に読出される。データビットE1、F1、D1、およびH1からなるメモリセルマットのアドレス単位のデータDTBがメモリセルマット40のエントリ位置情報および書込ビット位置情報が示す位置に格納される。このビット位置情報が、メモリセルマット40のワード線アドレスとして用いられ、エントリ位置情報がメモリセルマット40のビットアドレスして用いられる。これらのビット位置情報およびエントリ位置情報が、先の図4に示す対内部転送制御回路86内のレジスタに格納され、アドレス情報として主演算回路へ転送される。メモリセルマット40における実際のデータの書込位置を示す書込ビット位置情報は、メモリセルマット40へのアクセス回数とエントリ位置情報とビット位置情報とに基づいて生成される。
直交メモリ80を用いて、Y方向に同時にデータビットを格納し、次いでX方向に整列するデータビットを読出すことにより、SDRAM16からワードシリアルかつビットパラレルで読出されたエントリ単位のデータDTEを、ワードパラレルかつビットシリアルなアドレス単位(メモリセルマットのエントリアドレス単位)のデータDTBに変換してメモリセルマット40に格納することができる。
メモリセルマット40からデータを読出して内部システムバス19へ転送する場合には、データの転送方向が逆となるものの、直交メモリ80の動作は、メモリセルマット40へのデータ書込時と同じである。対内部転送制御回路86により、メモリセルマット40から読出されたデータが、順次直交メモリ80にY方向の先頭位置から格納される。次いで、直交メモリ80から対外部転送制御回路88により、X方向の先頭位置からデータが順次読出され、メモリセルマット40からワードパラレルかつビットシリアル態様で読出されたデータをワードシリアルかつビットパラレルのデータに変換して転送する。
図7は、この発明に従う直交メモリ80の具体的構成を概略的に示す図である。図7において、直交メモリ80は、行列状に配列されるメモリセルMCCを有するメモリセルマット90を含む。メモリセルMCCは、CAM(内容参照メモリ)セルで構成され、メモリセルMCCは、その構成は後に詳細に説明するように、2つのポートを有する。1つのポートを、主演算回路のメモリセルマットへのデータ転送用に利用し、他方のポートを、外部のホストCPU(2)とデータの転送を行なう。
メモリセルマット90においては、水平方向Hに沿って整列するメモリセルMCCに対応して垂直方向ワード線WLVおよび一致線対MLPが配置され、垂直方向Vに整列するメモリセルMCCに対応して水平方向ワード線WLHおよび垂直方向ビット線対BLVPが配置される。
一致線対MLPは、水平方向Hに整列するメモリセルに対するビット線対としても利用する。CAMセルをメモリセルMCCとして利用することにより、主演算回路に検索機能を持たせることができ、また、この検索結果に従って主演算回路において選択的に演算処理回路に演算処理を実行させることができる。また、一致線対を利用することにより、主演算回路においてメモリセルマットのメモリセルへのデータ書込を禁止することが可能となり、ライトマスク機能が実現される。この検索時の検索データを伝達するために、垂直方向Vに沿って検索線対SLPが配置される。
直交メモリ80は、さらに、垂直方向ワードアドレスADVに従ってメモリセルマット90の垂直方向ワード線WLVを選択するロウデコーダ92vと、垂直方向ビット線対BLVP上に読出されたメモリセルデータを検知し増幅するセンスアンプ群94vと、垂直方向ビット線対BLVP上のメモリセルへデータを書込むライトドライバ群96vと、検索線対SLPに検索データを伝達する検索線ドライバ群97と、垂直方向データDTVを入出力しかつ検索データSDTを入力する入出力回路98vを含む。
垂直方向ポートおよび水平方向ポートのいずれが主演算回路とのデータ転送に用いられてもよいが、以下の説明においては、この入出力回路98vを介して入出力されるデータDTVは、システムバス19との間で転送されるエントリ単位のデータDTEに対応するものとする。
直交メモリ80は、さらに、水平方向ワードアドレスADHをデコードして、メモリセルマット90の水平方向ワード線WLHを選択するロウデコーダ92hと、一致線対MLP上に読出されたデータを検知し増幅するセンスアンプ群94hと、一致線対MLPに結合されるメモリセルにデータを書込むライトドライバ群96hと、センスアンプ群94hおよびライトドライバ群96hとデータの入出力を行なう入出力回路98hを含む。この入出力回路98hを介して送受されるデータDTHは、ここでは、内部データバス68との間で転送されるデータDTBに対応する(図4に示すメモリセルマット/直交変換回路I/F84を介して)。
入出力回路98vおよび98hの一方が、システムバス19との間でデータの転送を行ない、他方が主演算回路内のメモリセルマット40との間でデータ転送を行なう。ここでは、上述のように、垂直方向Vに沿ってエントリ単位のデータDTEが順次格納され、水平方向Hに沿ってビット単位のデータDTBが順次格納される場合を想定する。水平方向Hに沿っては、主演算回路のメモリセルマットの1エントリに格納されるデータのビット数以上のワード線WLHが配設される。主演算回路のメモリセルマット40との間で最大全エントリのビットを並列に転送するために、入出力回路98hは、ここでは、nビットデータの入出力を行なう。メモリセルマット90の全エントリ(垂直方向ワード線で規定される)にデータが格納された後に、直交メモリ80から、主演算回路のメモリセルマット(40)へのデータの転送が実行される。
したがって、ロウデコーダ92vおよび92hによりワード線WLVおよびWLHがそれぞれ選択されたとき、転送データビットがすべて選択される状態をここでは想定するため、さらに列選択を行なうコラムデコーダは特に設けられていない。ワード線WLHおよび一致線対MLPが1つのデータアクセスポート(主演算回路との間のポート;水平方向ポート)を構成し、また、ワード線WLVおよびビット線対BLVPが、他方のデータアクセスポート(システムバスI/Fと間のポート;垂直方向ポート)を構成する。
メモリセルマット90においては、垂直方向ワード線WLVが1エントリを構成し、主演算回路のメモリセルマットの全エントリと並行してデータ転送を行なう場合、このワード線WLVは、したがって、m本設けられる(K=m)。メモリセルマット90における1エントリは、水平方向に整列されるメモリセルMCCで構成され、そのビット幅は、Lビットである。
図8は、この発明の実施の形態1に従う直交メモリ80に含まれるメモリセルMCCの具体的構成を示す図である。図8においては、1ビットのメモリセルの電気的等価回路を示す。メモリセルMCCは、垂直方向ワード線VWL[i]上の信号電位に従って垂直方向ビット線VBLTB[j]およびVBLTT[j]との間でデータの転送を行なう第1のデータ記憶部100aと、垂直方向ワード線VWL[i]上の信号に従って垂直方向ビット線VBLBB[j]およびVBLBT[j]との間でデータの授受を行なう第2のデータ記憶部100bを含む。これらのデータ記憶部100aおよび100bは、各々、相補データを記憶するSRAMセル(スタティック・ランダム・アクセス・メモリセル)の構成を有し、これらの2つのデータ記憶部100aおよび100bにより、データ“0”、“1”および“X(ドントケア)”の3値データを記憶する。
第1のデータ記憶部100aは、電源ノード(ハイ側電源ノード)とストレージノードSNTBの間に接続されかつそのゲートがストレージノードSNTTに接続されるPチャネルMOSトランジスタm00と、ストレージノードSNTBと接地ノード(ロー側電源ノード)の間に接続されかつそのゲートがストレージノードSNTTに接続されるNチャネルMOSトランジスタm02と、電源ノードとストレージノードSNTTの間に接続されかつそのゲートがストレージノードSNTBに接続されるpチャネルMOSトランジスタm01と、ストレージノードSNTTと接地ノードの間に接続されかつそのゲートがストレージノードSNTBに接続されるNチャネルMOSトランジスタm03と、垂直方向ワード線VWL[i]上の信号に従って選択的に導通し、導通時、ストレージノードSNTBおよびSNTTを、それぞれ、垂直方向ビット線VBLTB[j]およびVBLTT[j]に接続するNチャネルMOSトランジスタm4およびm05を含む。
MOSトランジスタm00およびm02が、CMOSインバータを構成し、また、MOSトランジスタm01およびm03が、CMOSインバータを構成する。第1のデータ記憶部100aは、SRAMセルと同様、データ記憶にCMOSインバータラッチを用い、記憶ノードSNTBおよびSNTTに、相補データを記憶する。
第2のデータ記憶部100bは、電源ノードと接地ノードの間に直列に接続されてCMOSインバータを構成するPチャネルMOSトランジスタm20およびNチャネルMOSトランジスタm22と、電源ノードと接地ノードの間に直列に接続されて他方のCMOSインバータを構成するPチャネルMOSトランジスタm21およびNチャネルMOSトランジスタm23と、垂直方向ワード線VWL[j]上の信号電位に応答して選択的に導通し、導通時、ストレージノードSNBBおよびSNBTを、それぞれ、垂直方向ビット線VBLBB[j]およびVBLBT[j]に結合するNチャネルMOSトランジスタm24およびm25を含む。MOSトランジスタm20およびm22のゲートが、ストレージノードSNBTに接続され、MOSトランジスタm21およびm23のゲートが、ストレージノードSNBBに接続される。第2のデータ記憶部100bも、CMOSインバータラッチの構成を有し、ストレージノードSNBTおよびSNBBに、相補データを記憶する。
垂直方向ビット線VBLTB[j]、VBLTT[j]、VBLBB[j]およびVBLBT[j]が、図7に示す垂直方向ビット線対VBLPに対応する。これらのデータ記憶部100aおよび100bのMOSトランジスタm04、m05、m24およびm25がアクセストランジスタであり、垂直方向ワード線により選択的に導通状態とすることにより、垂直方向ビット線にデータを転送することができ、直交メモリとシステムバス(19)を介してホストCPUとデータの転送を行なうことができる。
メモリセルMCCは、さらに、水平方向ワード線HWLT[j]上の信号に従ってデータ記憶部100aのストレージノードを一致線MLT[i]およびMLB[i]に結合する第1の水平アクセスゲート102aと、水平方向ワード線HWLB[j]の信号に従ってデータ記憶部100bとストレージノードを一致線MLT[i]およびMLB[i]に結合する第2の水平アクセスゲート102bと、検索線SLB[j]上の検索データに従って選択的にイネーブルされ、第1のデータ記憶部100aのストレージノードSNTTの電位に従って一致線MLT[i]を駆動する第1の検索/読出ゲート104aと、検索線SLT[j]上の検索データに従って選択的にイネーブルされ、第2のデータ記憶部100bのストレージノードSNBTの信号に従って一致線MLB[i]を駆動する第2の検索/読出ゲート104bを含む。
一致線MLT[i]およびMLB[i]は、図7に示す一致線対MLPに対応し、内部データバス68を介して、主演算回路メモリセルマットとの間でデータの転送を行なう。
第1の水平アクセスゲート102aは、水平方向ワード線HWLT[j]上の信号電位に応答して導通し、導通時、ストレージノードSNTTおよびSNTBを、それぞれ一致線MLB[i]およびMLT[i]に結合するNチャネルMOSトランジスタm06およびm07を含む。第2の水平アクセスゲート102bは、水平方向ワード線HWLB[j]の信号電位に従って、第2のデータ記憶部100bのストレージノードSNBTおよびSNBBを、それぞれ、一致線MLT[i]およびMLB[i]に結合するNチャネルMOSトランジスタm26およびm27を含む。
これらの水平方向アクセスゲート102aおよび102bにより、メモリセルMCCの第2のポート(水平方向ポート)が形成される。これらの一致線MLT[i]およびMLB[i]は、垂直方向ビット線VBLTB[j]と直交する方向に配置されており、これにより、直交メモリ内において、データ配列の直交変換を実現する。一致線MLT[i]およびMLB[i]は、主演算回路のメモリセルマットとの間のデータ転送に利用し、メモリセルMCCの3値データに従ってデータの書込を選択的に禁止する。
検索/読出ゲート104aは、ストレージノードSNTTの信号電位に従って選択的に導通するNチャネルMOSトランジスタm10と、検索線SLB[j]上の信号に従って選択的に導通し、導通時、一致線MLT[i]をMOSトランジスタm10に結合するNチャネルMOSトランジスタm12を含む。
検索/読出ゲート104bは、第2のデータ記憶部100bのストレージノードSNBTの信号電位に従って選択的に導通するNチャネルMOSトランジスタm11と、検索線SLT[j]上の信号電位に従って選択的に導通し、導通時、一致線MLB[i]をMOSトランジスタm11に結合するNチャネルMOSトランジスタm13を含む。
この検索/読出ゲート104aおよび104bにおいて、MOSトランジスタm10およびm11は、メモリセル内の接地ノードに結合されており、検索/読出ゲート104aおよび104bにおいて直列に接続されるMOSトランジスタ(m10,m12またはm11,m13)が導通すると、対応の一致線が接地電圧レベルに駆動される。(検索動作時においては、一致線MLT[i]およびMLB[i]は、電源電圧レベルにプリチャージされる)。
検索/読出ゲート104aおよび104bを用いて、一致線MLT[i]およびMLB[i]に検索結果を示すデータを転送することにより、主演算回路において、各演算処理ユニット(ALU)の演算処理にマスクをかけることができ、したがって、所定の条件を満たすデータに対してのみ、演算処理を実行することが可能となる(演算処理ユニット内においてマスクレジスタを設け、このマスクレジスタのマスクビットに従って演算実行の可否が設定される)。
また、第1および第2のデータ記憶部100aおよび100bの記憶データを読出すときには、水平方向アクセスゲート102aおよび102bを利用すると、一致線MLT「i」およびMLB[i]においてデータが衝突する可能性がある(3値データを記憶するため)。従って、データの水平方向読出時においては、検索/読出ゲート104aおよび104bを利用して一致線MLT[i]およびMLB[i]にデータを読出す。この場合には、検索線SLB[j]およびSLT[j]が、読出ワード線として利用されて、選択状態(Hレベル)に駆動される。
なお、CPUには、一般に、バイト単位でデータの書込を禁止するライトマスク機能が設けられる。このCPUのライトマスク機能に対応して、2つのデータ記憶部100aおよび100bを用いて3値データを記憶し、主演算回路のメモリセルマットへのデータの書込を選択的に禁止する。
図9は、外部のホストCPUとの間でのデータ転送時における直交メモリ80におけるワード線の選択態様を概略的に示す図である。図9に示すように、メモリセルマット90において、垂直方向ワード線VWLが選択状態へ駆動される。このメモリセルマット90においては、各垂直方向ワード線VWLが、1エントリに対応しており、データDTVのビット幅が(最大)Lビットであり、エントリが、K個設けられる(最大m)。この選択ワード線VWLに接続されるメモリセルに対して、センスアンプ群94vまたはライトドライバ群96vを用いて、データDATAの読出/書込が実行され、垂直方向ポートを介してのデータ転送が行われる。
図10は、データDTVの書込/読出時の信号線の状態を模式的に示す図である。図10に示すように、ホストCPUとの間でのデータDTVの転送時においては、垂直方向ワード線VWL[i]が選択状態へ駆動され、データ記憶部100aおよび100bにおいて、アクセストランジスタm04、m05、m24、およびm25が導通状態となる。応じて、データ記憶部100aにおいてストレージノードSNTTおよびSNTBが、それぞれビット線VBLTT[j]およびVBLTB[j]に結合される。水平方向ワード線HWLT[j]およびHWLB[j]は非選択状態のLレベルであり、水平アクセスゲート102aおよび102bは非導通状態である。また、検索線SLB[j]およびSLT[j]もLレベルであり、検索/読出ゲート104aおよび104bも非導通状態にある。
データ“0”の書込時において、ビット線VBLTB[j]およびVBLTT[j]がそれぞれ、LレベルおよびHレベルに駆動され、またビット線VLBB[j]およびVBLBT[j]が、それぞれ、HレベルおよびLレベルに駆動される。データ“1”の書込時において、ビット線VBLTB[j]およびVBLBT[j]は、それぞれ、HレベルおよびLレベルに駆動され、ビット線VBLBB[j]およびVBLBT[j]は、それぞれ、LレベルおよびHレベルに駆動される。
データの書込にマスクをかける場合、マスクデータとして、ビット線VBLTB[j]およびVBLTT[j]がそれぞれHレベルおよびLレベルに駆動され、ビット線VBLBB[j]およびVBLBT[j]が、それぞれ、HレベルおよびLレベルに駆動される。
これらの2つのデータ記憶部100aおよび100bを用いて、2ビット情報を用いて1ビットCPUデータを記憶することにより、3値データを格納することができ、応じて、主演算回路のメモリセルマットにおいてデータの書込を禁止するマスクデータを格納することができる。このマスクデータ格納時、後に説明するように、主演算回路のメモリセルマットに対するデータ転送用のビット線として用いられる一致線MLT[i]およびMLB[i]は、ともにプリチャージ状態に維持され、主演算回路のメモリセルマットにおけるデータの書込が禁止される。
メモリセルマット90からデータDTVの読出を行なう場合には、2値データ“0”または“1”が読出される(ライトマスク機能実現時においても、データ読出時は主演算回路から転送されたデータの読出であり、メモリセルにおいては、マスクデータを許容する3値データは格納され図、2値データが格納される)。
図11は、図9に示すライトドライバ群96Vにおける垂直方向の1列のメモリセルに対して配置されるライトドライバの構成の一例を示す図である。ライトドライバ群96Vにおいては、垂直方向の各列に対応して同一構成のライトドライバが配置されるため、図11においては、垂直方向ビット線VBLTT、VBLTB、VBLBB、およびVBLBTにより、垂直方向に整列して配置されるメモリセルに対して設けられるビット線を代表的に示す。
以下の説明においても、他の信号線に対ても、個別的に特に信号線を特定して参照する場合には、[i]および[j]の添え字を付し、一般的に信号線を総称的に参照する場合には、これらの添え字は省略する。
図11において、ライトドライバは、書込指示信号WEと1ビットデータDを受けるNAND回路110と、マスク指示信号MASKを反転するインバータ回路111と、マスク指示信号MASKとNAND回路110の出力信号とを受けてビット線VBLBBを駆動するOR回路112と、マスク指示信号MASKとNAND回路110の出力信号とを受けてビット線VBLBTを駆動するNOR回路114と、インバータ111の出力信号とNAND回路110の出力信号とを受けてビット線VBLTBを駆動するNAND回路116と、インバータ回路111の出力信号とNAND回路110の出力信号とを受けてビット線VBLTTを駆動するAND回路118を含む。書込指示信号WEは、データ書込モード時Hレベルに設定される。マスク指示信号MASKは、データ書込にマスクをかけるライトマスク動作実行時にHレベルに設定される(例えばバイト単位で)。
通常のノンマスクのデータ書込時においては、書込指示信号WEはHレベル、マスク指示信号MASKがLレベルに設定される。データビットDが“0”であり、Lレベルのときには、NAND回路110の出力信号がHレベルとなる。応じて、OR回路112の出力信号がHレベルとなり、またAND回路118の出力信号がHレベルとなる。また、NOR回路114の出力信号はLレベル、NAND回路116の出力信号がLレベルとなる。したがって、ビット線VBLBBおよびVBLTTがHレベルに駆動され、ビット線VBLTBおよびVBLBTがLレベルに駆動される。
データビットDが“1”であり、Hレベルのときには、NAND回路110の出力信号がLレベルとなる。マスク指示信号MASKはLレベルであるため、OR回路112の出力信号がLレベルとなり、ビット線VBLBBはLレベルに駆動される。一方、NOR回路114は、その両入力がLレベルであり、ビット線VBLBTはHレベルに駆動される。NAND回路116は、NAND回路110からのLレベルの信号に従ってビット線VBLTBをHレベルに駆動し、AND回路118が、ビット線VBLTTをLレベルに駆動する。
ライトマスク動作時においては、マスク指示信号MASKがHレベルに設定され、応じて、インバータ回路111の出力信号がLレベルに設定される。したがって、NAND回路116により、ビット線VBLTBがHレベルに駆動され、また、AND回路118により、ビット線VBLTTがLレベルに駆動される。また、OR回路112が、ビット線VBLBBをHレベルに駆動し、NOR回路114が、ビット線VBLBTをLレベルに駆動する。
したがって、図11に一例を示すライトドライバの構成を利用して、データ記憶部100aおよび100bにそれぞれ相補データを書込むことにより、データビットDおよびマスク指示信号MASKに応じて3値データをメモリセルMCCに格納することができる。
図9に示すセンスアンプ群94vのセンスアンプについては、データ記憶部100aおよび100bの一方のデータに基づいて、読出動作を行なうようにセンスアンプが設けられてもよく、またデータ記憶部100aおよび100bから読出されたデータをプリアンプでセンスし、さらに、これらのプリアンプの出力信号をメインアンプで増幅して、最終の1ビットデータを生成する構成が用いられてもよい。データ読出時においては、マスクデータは読出されず、2値データの読出が行なわれる。
なお、マスク指示信号MASKおよび書込指示信号WEについては、図4に示す対外部転送制御回路88に対して外部のホストCPUからマスク指示信号および書込指示信号(ライトイネーブル信号)が与えられ、この対外部転送制御回路88により、たとえばバイト単位でマスク指示信号MASKが生成される。
図12は、水平方向ポートを介してのデータの転送時の直交メモリ80の状態を概略的に示す図である。図12において、この水平方向ポートを介してのデータ転送時の場合、水平方向ワード線WLHがメモリセルマット90において選択状態へ駆動される。各エントリに対応して配置される一致線対MLPが、内部データ伝達線として用いられ、センスアンプ群94hまたはライトドライバ群96hにより、データの読出または書込が行なわれ、主演算回路のメモリセルマットとの間でデータDTH(Kビット幅)の転送が行なわれる。
このデータ転送時、3値データを転送し、主演算回路でメモリセルマットへのデータの書込をマスクをかける必要がある。したがって、メモリセルマット90から主演算回路のメモリセルマット(40)へのデータ転送時において、検索線対SLPを読出ワード線として利用して、検索/読出ゲートを介して一致線対MLP上に2つのデータ記憶部(100a,100b)の記憶データをそれぞれシングルエンドで読出す。これにより、3値データの転送を可能にする。
図13は、メモリセルマット90への主演算回路のメモリセルマットからのデータの書込時のメモリセルの状態を示す図である。メモリセルマット90への主演算回路からのデータの書込時においては、水平方向ワード線HWLT[j]およびHWLB[j]がHレベルに駆動される。垂直方向ワード線VWL[j]ならびに検索線SLB[j]およびSTL[j]はLレベルに設定される。
書込データは、一致線MLT[i]およびMLB[i]上に転送される。この状態において、メモリセルMCCにおいて、水平アクセスゲート102aおよび102bにおいて、MOSトランジスタm06、m07、m26およびm27が導通する。検索/読出ゲート104aおよび104bは非導通状態である。水平アクセスゲート102aは、一致線MLT[i]およびMLB[i]を、それぞれ、データ記憶部100aのストレージノードSNTBおよびSNTTに結合する。一方、データ記憶部100bにおいては、一致線MLT[i]およびMLB[i]が、アクセスゲート102bを介してそれぞれストレージノードSNBTおよびSNBBに結合される。したがって、データ記憶部100aおよび100bにおいては、互いに相補なデータを格納することができ、応じて2値データを格納することができる。
データの書込が、水平方向ワード線HWLT[j]およびHWLB[j]に接続されるメモリセルMCCにおいてそれぞれ対応の一致線MLT,MLBを用いて実行される。主演算回路のメモリセルマットの記憶データは、2値データであり、水平方向ポートを介してのデータ書込時においては、マスク機能は設けられていない。したがって、データ記憶部100aおよび100bにおいてストレージノードSNTTおよびSNTBとストレージノードSNBTおよびSNBBと一致線MLT[i]およびMLB[i]との接続を反対とすることにより、これらのデータ記憶部100aおよび100bに、相補なデータを書込むことができる。
図14は、水平方向ポートを介してのデータ読出時のメモリセルMCCの内部状態を示す図である。この水平方向のデータ読出時においては、検索線SLB[j]およびSLT[j]が選択状態に駆動され、一方、水平方向ワード線HWLT[j]およびHWLB[j]は、非選択状態に維持される。同様、垂直方向ワード線VWL[i]も非選択状態に維持される。
メモリセルMCCにおいては、検索/読出ゲート104aにおいてMOSトランジスタm12が導通状態となり、同様、検索/読出ゲート104bにおいてMOSトランジスタm13が導通状態となる。一致線MLT[i]およびMLB[i]は、Hレベルにプリチャージされる。データ記憶部100aのストレージノードSNTTの記憶データに従って、一致線MLT[i]が、選択的に接地レベルに駆動され、また、データ記憶部100bのストレージノードSNBTの記憶電位に従って、一致線MLB[i]が、選択的に接地電圧レベルに駆動される。
図10において書込データを示したように、メモリセルMCCにおいてデータ“0”が保持されている場合には、データ記憶部100aのストレージノードSNTTがHレベル、データ記憶部100bのストレージノードSNBTはLレベルである。したがって、検索/読出ゲート104aにおいて、MOSトランジスタm10が導通状態、検索/読出ゲート104bにおいて、MOSトランジスタm11が非導通状態である。したがって、一致線MLT[i]が接地電圧レベルに放電され、一方、一致線MLB[i]は、プリチャージ電圧レベルのHレベルに維持される。これにより、データ“0”が、一致線MLT[i]およびMLB[i]を通して転送される。
メモリセルMCCにデータ“1”が格納されている場合には、データ記憶部100aのストレージノードSNTTがLレベル、データ記憶部100bのストレージノードSNBTはHレベルである。したがって、この場合には、検索/読出ゲート104aにおいてMOSトランジスタm10が非導通状態、検索/読出ゲート104bにおいてMOSトランジスタm11が導通状態となる。したがって、一致線MLT[i]がプリチャージ電圧レベルのHレベル、一致線MLB[i]が接地電圧レベルのLレベルとなり、データ“1”が読出される。
メモリセルMCCにマスクデータが格納されている場合、データ記憶部100aのストレージノードSNTTはLレベル、データ記憶部100bにおいても、ストレージノードSNBTはLレベルである。したがって、この状態においては、検索/読出ゲート104aおよび104bは、MOSトランジスタm10およびm11が非導通状態であり、一致線の放電は行なわず、一致線MLT[i]およびMLB[i]は、プリチャージ電圧レベルのHレベルに維持される。
図15は、主演算回路のメモリセルマット(40)に含まれるメモリセルMCの構成の一例を示す図である。図15において、主演算回路のメモリセルマットのメモリセルMCは、ゲートおよびドレインが交差結合されるPチャネルMOSトランジスタPQ1およびPQ2と、ゲートおよびドレインが交差結合されるNチャネルMOSトランジスタNQ1およびNQ2を含む。MOSトランジスタPQ1およびNQ1のドレインがストレージノードSNAに結合され、MOSトランジスタPQ2およびNQ2のドレインが、ストレージノードSNBに結合される。
メモリセルMCは、さらに、ワード線WL上の信号電位に従って、ストレージノードSNAおよびSNBをビット線BLおよびBLBに結合するNチャネルMOSトランジスタNQ3およびNQ4を含む。
このメモリセルMCは、SRAMセルである。ビット線BLおよびBLBには、一致線MLTおよびMLB上の信号に応じた信号が伝達される。したがって、一致線MLTおよびMLB上のデータビットがともにHレベルのとき、メモリセルMCのストレージノードSNAおよびSNBの保持データは変化しない(通常のデータ読出時と同じ状態である)。一方、ビット線BLおよびBLBに、相補データ(HレベルおよびLレベル)が伝達された場合には、ストレージノードSNAおよびSNBの一方がHレベル、他方がLレベルに駆動され、データの書込が実行される。
したがって、一致線MLT(MLT[i])およびMLB(MLB[i])をともにHレベルに設定することにより、メモリセルMCへのデータの書込を禁止することができ、ライトマスク機能を実現することができる。
図16は、この直交メモリにおけるメモリセルMCCをCAM動作させるときの信号線の状態を示す図である。このCAM動作時においては、検索線SLB[j]およびSLT[j]に、検索データが伝達される。メモリセルMCCの記憶データが検索対象外の場合には、検索線SLB[j]およびSLT[j]はともにLレベルに維持される。メモリセルMCCの記憶データが検索対象外の場合、したがって、検索/読出ゲート104aおよび104bにおいて、MOSトランジスタm12およびm13が非導通状態であり、一致線MLT[i]およびMLB[i]の信号電位に対しては、影響は及ぼさない。
検索線SLB[j]およびSLT[j]には、検索データのビット値および反転値がそれぞれ転送される。したがって、データ“0”が検索データのとき、検索線SLB[j]がLレベルに設定され、検索線SLT[j]がHレベルに設定される。メモリセルMCCがデータ“0”を記憶している場合、ストレージノードSNTTがHレベル、ストレージノードSNBTがLレベルである。したがって、この状態においては、検索/読出ゲート104aおよび104bにおいて、MOSトランジスタm12およびm11が、それぞれ、非導通状態となり、一致線MLT[i]およびMLB[i]は、プリチャージ電圧レベルを維持する。
検索データが“1”のとき、検索線SLB[j]にHレベルの信号が伝達され、検索線SLT[j]にLレベルの信号が伝達される。メモリセルMCCがデータ“1”を記憶している場合、ストレージノードSNTTおよびSNBTは、それぞれLレベルおよびHレベルである。したがって、この状態においても、検索/読出ゲート104aおよび104bは非導通状態を維持し、一致線MLT[i]およびMLB[i]はプリチャージ電圧レベルを維持する。
メモリセルMCCがデータ“0”を記憶しているときに、検索データ“1”が与えられた場合には、検索/読出ゲート104aにおいてMOSトランジスタm10およびm12が導通状態となり、一致線MLT[i]が接地ノードへ放電され、その電圧レベルが低下する。逆に、メモリセルMCCがデータ“1”を保持している場合に検索データ“0”が伝達された場合、検索/読出ゲート104bにおいてMOSトランジスタm11およびm13が導通し、一致線MLB[i]が接地電圧レベルへ放電される。
したがって、一致線MLT[i]およびMLB[i]がともにプリチャージ電圧レベル(Hレベル)に維持されるときには、検索データとメモリセルMCCの記憶データとが一致していると判定される。一致線MLT[i]およびMLB[i]は、メモリセルマット90において、水平方向に延在しており、1エントリのメモリセルに共通に配設される。したがって、1エントリのデータビットについての一致/不一致の各判定結果が、一致線に現れ、従って、一致線MLT[i]およびMLB[i]がともにプリチャージ電圧レベルを維持するかを見ることにより、検索データと1エントリの記憶データの一致/不一致を判定することができる。
図17は、水平方向ポートのデータ読出部のセンスアンプ群94h(図12参照)における1ビットデータに対するセンスアンプ部およびデータ出力部の構成の一例を概略的に示す図である。図17において、RAM動作をこのメモリセルマット90において実行する際のデータの流れも併せて示す。
図17において、センスアンプ群94hのセンスアンプ回路は、一致線MLTおよびMLBそれぞれに対して設けられ、センスアンプ活性化信号SAEの活性化に応答して一致線MLTおよびMLB上の信号電位を増幅するシングルエンドのセンスアンプSA0およびSA1と、センスアンプSA0およびSA1の出力信号を受ける2入力AND回路120と、AND回路120の出力信号と図示しないたとえばテスト信号の一方を選択するセレクタ121と、セレクタ121の出力信号と検索結果指示信号LOAD♯とを受けるOR回路123と、リセット信号RESETとフリップフロップ(FF)125の出力信号とを受けるOR回路122と、OR回路122および123の出力信号を受けるAND回路124とを含む。
セレクタ121は、テストモード時のテスト指示信号とAND回路120の出力信号の一方を選択する。図17においては、このセレクタの入力“0”へ与えられるテスト信号は示していない。通常動作時においては、セレクタ121は、このAND回路120の出力信号を選択する。ここで、セレクタ121において入力“1”および“0”は、図示しない選択制御信号が“1”(Hレベル)のときに、その入力“1”に与えられる信号を選択する状態を示す。
フリップフロップ(FF)125は、クロック信号CLKに同期して、AND回路124の出力信号を取込みラッチする。
このセンスアンプ群94hの1ビットセンスアンプ回路は、入出力回路98hへ与えられる。この入出力回路98hの出力部は、センスアンプSA0の出力信号とフリップフロップ(FF)125の出力信号の一方を選択制御信号RAM/CAM♯に従って選択するセレクタ127と、フリップフロップ125の出力信号を受けるインバータ126と、センスアンプSA1の出力信号とインバータ126の出力信号の一方を選択制御信号RAM/CAM♯に従って選択するセレクタ127と、出力イネーブル信号OEに従って活性化され、活性化時、セレクタ127および128の出力信号をバッファ処理して出力するトライステートバッファ129および130を含む。これらのトライステートバッファ129および130の出力信号が、先の図4に示すメモリセルマット/直交変換回路I/F84を介して内部データバス68に伝達され、さらに主演算回路のメモリセルマットへ伝達される。
直交メモリをRAM動作させる場合、すなわち直交メモリのメモリセルの記憶データを読出して主演算回路のメモリセルマットへ転送する場合、選択制御信号RAM/CAM♯がHレベルに設定され、セレクタ127および128が、その入力“1”に与えられる信号を選択する。
センスアンプSA0およびSA1が、センスアンプ活性化信号SAEの活性化に従って、一致線MLTおよびMLB上の信号を増幅してセレクタ127および128へ、それぞれ増幅結果の信号を伝達する。出力イネーブル信号OEに従ってセレクタ127および128の選択信号をトライステートバッファ129および130で増幅して伝達することにより、直交メモリにおいて一致線MLTおよびMLB上に読出されたデータを内部データバスを介して主演算回路のメモリセルマットへ転送することができる。
図18は、直交メモリをCAM動作させる場合、すなわち検索データに従って一致/不一致の判定結果を示す信号を伝達する場合の信号の流れを示す図である。検索データに一致するデータを検索するCAM動作時において、まず、リセット信号RESETをHレベルに設定し、クロック信号CLKをトグルする。この状態において、OR回路122の出力信号がリセット信号RESETに従ってHレベルとなる。検索結果データを保持するタイミングを設定するロード信号LOAD♯は、Hレベルである。したがって、OR回路122および123の出力信号がともにHレベルとなり、AND回路124の出力信号がHレベルとなる。フリップフロップ(FF)125において、クロック信号CLKに従ってAND回路124の出力信号が取込まれ、フリップフロップ125の保持信号がHレベルとなる。一致線MLTおよびMLBがともに初期状態のHレベルにある状態に対応して、初期状態として、フリップフロップ125が、一致検出状態に設定される。
検索動作時、リセット信号RESETはLレベルであり、一方、フリップフロップ125の出力信号に従ってOR回路122がHレベルの信号を出力する。
直交メモリにおいて検索動作が行なわれ、一致線MLTおよびMLBの電圧レベルがそのプリチャージ状態から検索結果に応じた状態に設定される。所定のタイミングでセンスアンプ活性化信号SAEが活性化され、一致線MLTおよびMLBの信号電位が増幅されて、AND回路120により一致線MLTおよびMLBがともにHレベルにあるかの判定が行なわれる。検索データと対応のエントリの保持データとが一致している場合には、一致線MLTおよびMLBはともにHレベルであり、AND回路120の出力信号がHレベルである。AND回路120およびセレクタ121の出力信号が確定すると、次いで、ロード信号LOAD♯をLレベルに設定し、OR回路123をバッファ動作させ、AND回路120の出力信号をバッファ処理してAND回路124へ伝達する。
OR回路122の出力信号がHレベルであるため、AND回路124がバッファ回路として動作し、したがって、AND回路124の出力信号は、検索データと対応のエントリの保持データの一致/不一致を示す状態になる。クロック信号CLKに従ってフリップフロップ125が与えられた信号を取り込んで保持する。したがって、このフリップフロップ125の保持データは、検索データが対応のエントリの記憶データと一致している場合にはHレベルであり、また、不一致状態のときにはLレベルである。フリップフロップ125の出力信号がLレベルに設定されると、OR回路122の出力信号がLレベルとなり(リセット信号RESETがLレベル)、クロック信号CLKがトグルされても、常時、AND回路124の出力信号はLレベルであり、正確に、一致検索結果を示す信号がフリップフロップ125により保持される。
検索動作時、選択制御信号RAM/CAM♯は、Lレベルであり、セレクタ127および128が、それぞれその入力“0”に与えられた信号を選択し、トライステートバッファ129および130が、それぞれ出力イネーブル信号OEに従って内部データバスへ、一致結果を伝達する。したがって、この内部データバスへは、一致/不一致を判定する結果を示す相補信号が伝達される(インバータ回路126がフリップフロップ125の出力信号を反転している)。
これらの図17および図18に示すセンスアンプ群94hおよび入出力回路98hの構成を利用することにより、直交メモリのRAM動作およびCAM動作両者を実現することができる。
なお、別の構成として、クロック信号CLKを利用してフリップフロップ125に検索結果を保持することなく、検索動作時のAND回路120の出力信号が、セレクタ127およびインバータ126へ与えられてもよい。
また、図17に示すように、主演算回路のメモリセルマットからの転送データを直交メモリへ書込む場合には、一致線MLTおよびMLBそれぞれに対して設けられるライトドライバWD0およびWD1を用いて、内部データバスを介して伝達された相補データを増幅して一致線MLTおよびMLB上に伝達する。これらのライトドライバWD0およびWD1は、ライトドライバ群(96h)に含まれ、ライトドライバイネーブル信号WDEの活性化に応答して活性化される。
これらの図17および図18に示す各制御信号は、図4に示す対内部転送制御回路86から生成される。
図19は、水平方向ワード線HWLT(HWLB)と検索線SLB(SLT)を駆動する部分の構成の一例を示す図である。この水平方向ワード線HWLT(HWLB)および検索線SLB(SLT)を駆動する部分は、図7に示すロウデコーダ92hおよび検索線ドライバ群97に含まれる構成に対応する。
ロウデコーダ92hにおいては、アドレス信号ADHに従って水平方向ワード線/検索線を選択する水平行選択信号HXiを生成する水平ロウデコード回路140と、水平方向データ書込指示信号HWEと水平行選択信号HXiとに従って水平方向ワード線HWLT(またはHWLB)を選択状態へ駆動するAND回路141と、水平方向読出指示信号HREの活性化時活性化され、活性化時水平ロウデコード回路140からの水平行選択信号HXiに従って検索線SLB(またはSLT)を選択状態へ駆動するトライステートバッファ142を含む。
水平方向書込指示信号HWEは、主演算回路のメモリセルマットからの転送データを直交メモリに書込む動作モードを指定し、水平読出モード指示信号HREは、直交メモリから主演算回路のメモリセルマットへのデータ転送動作を指定する。
検索線ドライバ群97は、対応の行の検索の有効/無効を示すデータを格納するステータスレジスタ145と、ステータスレジスタ145の格納データと検索データビットSDTiとを受けるNAND回路146と、水平方向読出指示信号HREの非活性化時活性化され、活性化時、NAND回路146の出力信号に従って検索線SLB(またはSLT)を駆動するトライステートインバータバッファ147を含む。
検索線SLBおよびSLTは、検索実行時、相補データが伝達され、検索対象外のときには、ステータスレジスタ145の格納データに従って共にLレベルに維持される。水平方向ワード線HWLTおよびHWLBには、このAND回路141がそれぞれ設けられ、水平方向データ書込動作時、水平ロウデコード回路140からの水平行選択信号HXiに従って選択状態へ駆動される。
したがって、水平方向データ読出時においては、トライステートバッファ142が活性化され、トライステートインバータバッファ147が非活性状態であり、検索線SLBは、水平行選択信号HXiに従って選択状態へ駆動される。この状態においては、水平方向書込指示信号HWEは非活性状態であり、水平方向ワード線HWLTおよびHWLBは非選択状態にある。これにより、検索/読出ゲートを用いて、一致線MLTおよびMLBに、メモリセルの3値データを読出すことができる。
検索動作時においては、トライステートバッファ142のは非活性状態であり、出力ハイインピーダンス状態であり、この場合には、NAND回路146およびトライステートインバータ147とステータスレジスタ145の格納データとに従って検索線SLB(およびSLT)が駆動される。
ステータスレジスタ145に格納される検索対象/非対象を示すデータは、検索データSDTを入力する端子と同じ端子から与えられてもよく、また、データ端子DTVを受ける端子から与えられてもよい。
図20は、演算処理ユニット44の構成を概略的に示す図である。この図20に示すように、演算処理ユニット44は、一致線MLTおよびMLB上の信号に対応する読出データを、内部データバスおよび入出力回路(I/Fで示す)を介して受けるマスクレジスタ150と、マスクレジスタ150によりその演算処理の禁止/実行が制御される演算部152を含む。
マスクレジスタ150は、選択制御信号RAM/CAM♯に従って、CAM動作が指定されているときに、直交メモリの一致線MLTおよびMLB上に読出された検索結果データを格納する。演算部152は、加算、減算、乗算、除算および反転などの処理を行なう機能を有し、対応のメモリセルマット40内のエントリ(ビット線対BLP)との間でデータ転送を行なって演算処理を実行する。
したがって、マスクレジスタ150に検索結果データを格納することにより、直交メモリにおいて水平方向に整列する1エントリのデータの検索条件を満たしているか否かに応じて、主演算回路内において対応のエントリにおいて演算処理ユニット44の演算動作を制御することができ、対応のデータが所定の条件を満たすときにのみ、演算処理を実行することができる。
また、この検索結果に従って演算処理の実行可否の制御を行うことにより、並列度の低いデータについての演算処理も、必要な演算処理ユニットのみを用いて実行することができ、例えば256エントリの並列処理、512エントリの並列処理および1024エントリの並列処理を実現することができ、柔軟に処理内容に対応して演算処理を実行することができる。
このマスクレジスタ150へ検索データ結果を書込むための構成としては、主演算回路内の内部データバスそれぞれが直接マスクレジスタに結合されていてもよく、また、主演算回路内のセンスアンプおよびライトドライバを介して対応の演算処理ユニットへ検索結果データを転送してマスクレジスタ150に格納する構成が用いられてもよい。
以上のように、この発明の実施の形態1に従えば、直交メモリにおいて2ポートのCAMセルを用いており、高速で外部のホストCPUと内部の主演算回路内におけるデータ配列を変換してデータ転送を行なうことができる。また、検索機能により、所定の条件を満たすデータについてのみ、主演算回路内において演算処理を実行することかでき、また、3値データを格納する構成により、主演算回路内におけるメモリセルマットへのデータの書込を禁止することができ、外部のホストCPUのライトマスク機能に応じて、主演算回路内におけるメモリセルマットのエントリに対するライトマスク機能を実現することができる。
[実施の形態2]
図21は、この発明の実施の形態2に従う半導体記憶装置のメモリセルMCCの構成を示す図である。図21において、メモリセルMCCは、相補データを記憶する情報データ記憶部200と、この情報データ記憶部200の記憶データの主演算回路内のメモリセルマットへの書込を禁止するマスクデータを格納するマスクデータ記憶部201と、検索線SLB[j]およびSLT[j]上の信号とデータ記憶部200の記憶データとに従って一致線MLT[i]およびMLB[i]を駆動する検索/読出ゲート202aおよび202bと、水平方向ワード線HWLT[j]上の信号に従ってデータ記憶部200のストレージノードSNDTおよびSNDBをそれぞれ一致線MLB[i]およびMLT[i]に結合する水平書込ポート204と、水平方向ワード線HWLB[j]上の信号電位に従って、マスクデータ記憶部201のストレージノードSNBTおよびSNBBを、一致線MLB[i]およびMLT[i]に結合する水平書込ポート205を含む。
情報データ記憶部200は、先の図8に示す実施の形態1の第1のデータ記憶部と同一の構成を備え、対応する部分には同一の参照番号を付し、詳細説明は省略する。この情報データ記憶部200において、垂直方向ワード線VWL[i]の選択時、アクセス用のMOSトランジスタm04およびm05が導通し、ストレージノードSNDBおよびSNDTが、それぞれ、垂直方向ビット線VBLTB[j]およびVBLTT[j]に結合され、垂直方向のデータの書込/読出が実行される。
マスクデータ記憶部201は、図8に示す第2のデータ記憶部100bの構成と同一構成を有し、対応する部分には同一参照番号を付し、その詳細説明は省略する。このマスクデータ記憶部201と図8に示す第2データ記憶部100bとは、その記憶するデータが異なるだけである。
検索/読出ゲート202aは、情報データ記憶部200の接地ノード(ロー側電源ノード)と一致線MLT[i]との間に直列に接続される3つのNチャネルMOSトランジスタm10、m12およびm14を含む。MOSトランジスタm10のゲートが、データ記憶部200のストレージノードSNDTに結合され、MOSトランジスタm12のゲートが検索線SLB[j]に結合される。MOSトランジスタm14のゲートが、マスクデータ記憶部201のストレージノードSNVTに結合される。
第2検索/読出ゲート202bは、情報データ記憶部200の接地ノードと一致線MLB[i]の間に直列に接続されるNチャネルMOSトランジスタm11、m13およびm15を含む。MOSトランジスタm14のゲートが、情報データ記憶部200のストレージノードSNDBに結合され、MOSトランジスタm13のゲートが、検索線SLT[j]に結合される。MOSトランジスタm15のゲートが、マスクデータ記憶部201のストレージノードSNVTに結合される。
水平書込ポート204は、水平方向ワード線HWLT[j]の選択時導通し、情報データ記憶部200のストレージノードSNDTおよびSNDBを、それぞれ、一致線MLB[i]およびMLT[i]に結合するNチャネルMOSトランジスタm06およびm07を含む。
水平書込ポート205は、水平方向ワード線HWLB[j]上の信号電位に従って選択的に導通し、導通時、マスクデータ記憶部201のストレージノードSNVTおよびSNVBをそれぞれ一致線MLB[i]およびBLT[i]に結合するNチャネルMOSトランジスタm26およびm27を含む。
マスクデータ記憶部201は、ライトマスク用のマスクデータを記憶し、演算処理対象のデータは記憶しない。したがって、水平方向ワード線HWLB[j]は、常時、非選択状態に維持されてもよい。
図22は、図21に示すメモリセルMCCへのホストCPUからのデータ書込時の信号の流れを示す図である。ホストCPUからのデータ書込時においては、垂直方向ワード線VWL[i]が選択状態へ駆動される。情報データ記憶部200においては、垂直方向ビット線VBLTB[j]およびVBLTT[j]に、それぞれ、相補データビットDBおよびDが伝達され、MOSトランジスタm04およびm05を介して、ストレージノードSNDBおよびSNDTの電圧レベルが伝達データに従って設定される。このデータ書込動作と並行して、マスクデータ記憶部201においても、MOSトランジスタm24およびm25が導通し、マスク信号MASKおよびMASKBが、ビット線VBLBB[j]およびVBLBT[j]を介して伝達されて、ストレージノードSNVBおよびSNVTに格納される。このマスクデータ記憶部201において、ストレージノードSNVTに格納される補のマスク指示信号MASKBがLレベルのときに、情報データ記憶部に格納されるデータの書込にマスクがかけられる。
外部のホストCPUへのデータ読出時においては、データ書込と同様、垂直方向ワード線VWL[i]が選択状態へ駆動される。この場合、ビット線VBLTB[j]およびVBLTT[j]上に情報データ記憶部200から読出されたデータを、センスアンプ回路により増幅して、読出データを生成する。マスクデータ記憶部201に記憶されるデータは、特に、外部のホストCPUに転送することは要求されない。しかしながら、このマスクデータ記憶部201の記憶データを読出す構成が設けられても良い。たとえば、リードモディファイライト動作により、マスクデータの変更を行うことができ、また、外部でマスク状態をモニタすることができる。
図23は、図22に示す垂直方向データ書込/読出時に関連する部分の構成を概略的に示す図である。この図23に示す垂直方向データ書込/読出部の構成は、図7に示すセンスアンプ群94vおよびライトドライバ群96vの構成に対応する。図23において、垂直方向データ書込/読出部は、垂直方向ビット線VBLTBおよびVBLTTに対して設けられるライトドライバ212と、ビット線VBLBBおよびVBLBTに対して設けられるマスクライトドライバ214と、ビット線VBLTBおよびVBLTTに対して設けられるセンスアンプ210を含む。
ライトドライバ212は、活性化時ホストCPUから与えられた1ビットデータDに従って、ビット線VBLTBおよびVBLTTに相補データ(DB,D)を伝達する。マスクライトドライバ214は、データ書込時、マスク信号MASKに従って、相補マスク信号(MASK,MASKB)を生成して垂直方向ビット線VBLBBおよびVBLBTへ伝達する。
センスアンプ210は、活性化時、これらのビット線VBLTBおよびVBLTT上のデータを差動増幅して、読出データQを生成する。
垂直方向ビット線VBLBBおよびVBLBTに読出されるマスクデータを読出す構成が、センスアンプ210と並行して設けられていても良い。
図24は、この発明の実施の形態2におけるメモリセルMCCを利用する際の主演算回路のメモリセルマットからのデータ書込時の信号の流れを概略的に示す図である。この水平方向のデータ書込時においては、水平方向ワード線HWLT[j]を選択状態のHレベルに駆動し、一致線MLT[i]およびMLB[j]に、主演算回路からの転送データが伝達される。情報データ記憶部200に対して、水平書込ポート204のMOSトランジスタm06およびm07を介して転送データが転送されて格納される。
なお、この書込の場合、水平方向ワード線HWLB[j]も同時に並行して選択状態へ駆動し、マスクデータ格納部201に、主演算回路のメモリセルマットからの転送データが格納されてもよい。この場合、例えば、情報データ記憶部200およびマスクデータ記憶部201において互いに同じデータを格納する。垂直方向データ読出時において、データ記憶部200のデータをおよびマスクデータ記憶部201に格納されるデータをそれぞれ第1段センスアンプで増幅し、これらの第1段センスアンプの出力信号をさらに第2段センスアンプで増幅して最終読出データを生成する。
図24に示される構成においては、情報データ記憶部200およびマスクデータ記憶部201に対して、一致線と対応のストレージノードの接続態様が互いに異ならせて、これらの記憶部200および201において互いに相補なデータ(逆論理のデータ)が格納されても良い。
図25は、水平方向データ読出時の信号の流れを概略的に示す図である。この水平方向のデータ読出時においては、直交メモリの格納データが主演算回路のメモリセルマットへ転送される。この場合、検索線SLB[j]およびSLT[i]を選択状態へ駆動する。応じて、検索/読出ゲート202aおよび202bにおいて、MOSトランジスタm12およびm13が導通状態となる。マスクデータ記憶部201のストレージノードSNVTにLレベルの信号が保持されている場合には、MOSトランジスタm14およびm15は非導通状態であり、一致線MLT[i]およびMLB[i]は、プリチャージ電圧レベルのHレベルを維持する。一方、マスクデータ記憶部201のストレージノードSNVTにHレベルの信号が保持されている場合には、検索/読出ゲート202aおよび202bにおいて、MOSトランジスタm14およびm15が導通状態となる。MOSトランジスタm10およびm11がストレージノードSNDTおよびSNDBの保持電位に応じて選択的に導通状態となる。したがって、たとえば、ストレージノードSNDTにHレベルの信号電位が保持されている場合には、MOSトランジスタm10が導通し、一致線MLT[i]が接地電圧レベルへ放電され、その電圧レベルが低下する。MOSトランジスタm11は、このときには、非導通状態であり、一致線MLB[i]はプリチャージ電圧レベルのHレベルを維持する。これにより、実施の形態1と同様にして3値データを転送することができる。
この水平方向のデータの転送(書込/読出)を行なう構成としては、実施の形態1において、図19を参照して説明した構成を利用することができる。
検索動作時においては、検索線SLB[j]およびSLT[j]に、検索データに応じたデータが伝達される。この場合、マスクデータ記憶部201においては、検索動作時、ノンマスクデータが格納されて、ストレージノードSNVTはHレベルに維持される。これにより、検索線SLB[j]およびSLT[j]上に伝達されるデータとストレージノードSNDTおよびSNDBに格納されるデータの一致/不一致に従って、一致線MLT[i]およびMLB[i]は選択的に接地電圧レベルに放電される。
検索データと情報データ記憶部200の保持データの論理が一致している場合には一致線MLT[i]およびMLB[i]はともにプリチャージ電圧レベルのHレベルに維持される(ストレージノードSNDTに、外部データDに対応するデータが格納され、ストレージノードSNDBに、補の外部データビットに対応するデータが格納され、検索線SLB[j]に、検索データの補の検索データビットが伝達され、検索線SLT[j]に、検索データビットに対応する論理レベルのデータが伝送される)。
検索対象外の場合には、検索線SLB[j]およびSLT[j]がともにLレベルに維持される。
なお、上述の説明においては、検索動作時、マスクデータ記憶部201において、ストレージノードSNVTは、Hレベルに維持され、検索動作に影響が及ぼさないようにされると説明している。しかしながら、ライトマスクがかけられたデータビットは、検索対象外データビットとして処理される場合、マスクデータ記憶部201において、ライトマスクデータが保持された状態で検索動作が行なわれてもよい。
以上のように、この発明の実施の形態2におけるメモリセルMCCの構成においては、情報データ記憶部200とマスクデータ記憶部201とは別々に設けられる。したがって、情報データ記憶部200のデータは、ライトマスクの有無に係らず、ホストCPUから与えられたデータに維持することができ、主演算回路のメモリセルマットへのデータ転送時、ホストCPUから転送されたデータの破壊は生じない。このライトマスクの位置を変更することにより、任意の位置のデータに対して(例えばバイト単位で)、書込にマスクをかけることができる。
また、逆に、主演算回路から転送されたデータを再び主演算回路のメモリセルマットへ転送する動作時において、所望の位置(バイト単位)のデータに、マスクをかけることができる。
[実施の形態3]
図26は、この発明の実施の形態3に従うメモリセルMCCの構成を示す図である。この図26に示すメモリセルMCCは、図8に示す実施の形態1に従うメモリセルMCCと以下の点にその構成が異なる。すなわち、検索/読出ゲート104aおよび104bは、それぞれ、ビット線VBLTB[j]およびVBLBB[j]上の電位を検索データとして受けて、記憶データに従って一致線MLT[i]およびBLB[i]をそれぞれ選択的に駆動する。すなわち、検索線SLT[j]およびSLB[j]が削除され、ビット線VBLTB[j]およびVBLBB[j]が、検索線および垂直方向ビット線として用いられる。これにより、メモリセルMCCに対する信号線の数を低減し、配線面積を低減し、メモリセルのレイアウト面積を低減する。
データ記憶部100aおよび100bの構成は、図8に示すメモリセルMCCのデータ記憶部100aおよび100bの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
検索/読出ゲート104aは、電源ノードと一致線MLT[i]の間に直列に接続されるPチャネルMOSトランジスタp10およびp12を含む。検索ゲート104bは、電源ノードと一致線MLB[i]の間に直列に接続されるPチャネルMOSトランジスタp11およびp13を含む。MOSトランジスタp10のゲートが、データ記憶部100aのストレージノードSNTTに結合され、MOSトランジスタp12のゲートが、垂直方向ビット線VBLTB[j]に結合される。MOSトランジスタp11のゲートが、データ記憶部100bのストレージノードSNBTに結合され、MOSトランジスタp13のゲートが垂直方向ビット線VBLBB[j]に結合される。
一致線MLT[i]およびMLB[i]は、それぞれLレベルにプリチャージされるため、水平書込ポート102aおよび102bにおいても、PチャネルMOSトランジスタが用いられる。すなわち、水平書込ポート102aは、水平方向ワード線HWLP[j]に応答して導通し、データ記憶部100aのストレージノードSNTTおよびSNTBをそれぞれ一致線MLB[i]およびMLT[i]に結合するPチャネルMOSトランジスタp06およびp06を含む。水平書込ポート102bは、水平方向ワード線HWLB[j]に応答してデータ記憶部100bのストレージノードSNBTおよびSNBBをそれぞれ一致線MLT[i]およびMLB[i]に結合するPチャネルMOSトランジスタp26およびp27を含む。
ビット線VBLTB[j]およびVBLBB[j]は、データアクセス時サイクルおよび検索サイクルいずれにおいても、スタンバイ状態時、Hレベルにプリチャージされる。したがって、検索/読出ゲート104aおよび104bにおいて、スタンバイ状態時、MOSトランジスタp12およびp13は、非導通状態に維持される。また、一致線MLT[i]およびMLB[i]は、Lレベルにプリチャージされるため、一致線におけるノイズの影響がデータ記憶部100aおよび100bの保持データに及ぼさないようにするために、水平書込ポート102aおよび102bにおいてPチャネルMOSトランジスタp06、p07、p26およびp27を用い、水平方向ワード線HWLT[j]およびHWLB[j]を、スタンバイ状態時Hレベルに維持する。これにより、水平書込ポート102aおよび102Bは、スタンバイ状態時、確実にオフ状態に維持することができる。
なお、外部CPUとの間の垂直方向ポートを介してのデータの書込および読出動作は、先の実施の形態1の場合と同じである。したがって、以下においては、水平方向ポートを介してのデータ転送動作について説明する。
図27は、図26に示すメモリセルの一致線MLT[i]およびMLB[i]を介してのデータの読出/書込時の信号波形を示す図である。図27に示すように、ビット線BLTB,BLTT,VBLBB,VBLBTは、すべて、スタンバイ状態時Hレベルにプリチャージされる。一致線MLT[i]およびMLB[i]は、Lレベルに維持される。水平方向ワード線WLHTおよびWLHBは、Hレベルに維持される。図には示していないが、垂直方向ワード線VWL[i]は、Lレベルに維持される。
水平方向ポートの読出時においては、ビット線VBLTB[j]、VBLTT[j]、VBLBB[j]およびVBLBT[j]は、Lレベルに駆動される。応じて、検索/読出ゲート104aおよび104bにおいて、MOSトランジスタp12およびp13が導通する。メモリセルMCCにおける記憶データと信号電位との関係は、先の実施の形態1と同様である。したがって、データ“0”がメモリセルMCCに記憶されている場合、ノードSNTTがHレベル、ストレージノードSNBTがLレベルである。したがって、検索/読出ゲート104aにおいて、MOSトランジスタp10は、非導通状態を維持し、一方、検索/読出ゲート104bにおいて、MOSトランジスタp11が導通する。したがって、一致線MLT[i]は、Lレベルのプリチャージ電圧レベルを維持し、一方、一致線MLB[i]は、MOSトランジスタp11およびp13を介して電源電圧レベルに充電されて、データ“0”が読出される。
データ“1”がメモリセルMCCに記憶されている場合には、逆に、検索/読出ゲート104aにおいて、MOSトランジスタp10およびp12がともに導通状態となり、一方、検索/読出ゲート104bにおいて、MOSトランジスタp11が非導通状態である。したがって、この状態においては、一致線MLT[i]が、電源電圧レベルに充電され、一方、一致線MLB[i]は、プリチャージ電圧レベルのLレベルを維持する。
メモリセルMCCにライトマスクデータが保持されている場合、ストレージノードSNTTが、Lレベル、また、ストレージノードSLBBも、Lレベルである。したがって、この場合には、検索/読出ゲート104aおよび104bにおいて、MOSトランジスタが全て導通し、一致線MLT[i]およびMLB[i]が電源電圧レベルに充電される。これにより、先の実施の形態1と同様、水平方向ポート読出動作において、3値データを読出すことができ、演算回路におけるメモセルマットとへのデータ書込を停止するライトマスク機能を実現することができる。
水平方向ポート書込時においては、一致線MLT[i]およびMLB[i]は、主演算回路からの転送データに応じて、その電圧レベルが設定される。このデータ書込の場合、ビット線VBLTB[j]、VBLTT[j]、VBLBB[j]およびVBLBT[j]は、すべてHレベルに維持される。水平方向ワード線HWLT[j]およびHWLB[j]がHレベルからLレベルとなり、第2ポートアクセスゲート102aおよび102bが導通し、一致線MLT[i]およびMLB[i]が、それぞれデータ記憶部100aのストレージノードSNTTおよびSNTBに結合され、一方、データ記憶部100bにおいて、ストレージノードSNBTが一致線MLT[i]に結合され、ストレージノードSNBBが一致線MLB[i]に結合される。したがって、これらのデータ記憶部100aおよび100bにおいて、相補データを保持することができ、2値データを格納することができる。
検索動作時においては、検索対象外の場合には、各垂直方向ビット線にHレベルの信号が伝達され、検索/読出ゲート104aおよび104bは非導通状態となり、一致線MLTB[i]およびMLB[i]の電位には影響を及ぼさない。
検索対象のときには、検索データに応じた信号が垂直方向ビット線に伝達される。図26に示す信号電位とデータとの対応関係から明らかなように、検索データとメモリセルMCCの記憶データとが一致している(ヒット)場合には、検索/読出ゲート104aおよび104b各々において、一方のMOSトランジスタが非導通状態となり、一致線MLT[i]およびMLB[i]は、プリチャージ電圧レベルのLレベルを維持する。一方、検索データと記憶データが不一致(ミス)の場合には、検索/読出ゲート104aおよび104bのいずれかにおいて、直列接続されるMOSトランジスタがともに導通状態となり、一致線MLT[i]およびMLB[i]はHレベル(電源電圧レベル)へ充電される。これにより検索動作を実現することができる。
図28は、この発明の実施の形態3に従う水平方向ポートのセンスアンプ群、ライトドライバ群および入出力回路の構成の一例を示す図である。この図28に示す水平方向アクセスポート(センスアンプ、ライトドライバおよび入出力回路)の構成は、図17に示す実施の形態1の構成と以下の点で異なる。すなわち、センスアンプSA0およびSA1の出力信号を受けるAND回路に代えて、NOR回路240が設けられ、このNOR回路240の出力信号がセレクタ121を介してOR回路123へ与えられる。
一致線MLTおよびMLBに対しては、スタンバイ状態時に、接地電圧レベルに一致線をプリチャージするプリチャージ回路238aおよび238bが設けられる(実施の形態1においては電源電圧にプリチャージする回路が設けられる)。
この図28に示す水平方向アクセスポートの他の構成は図17に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
一致線MLTおよびMLBにおいて、検索動作時一致検出時にはともにLレベルであるため、応じて、NOR回路240の出力信号がHレベルとなる。一方、検索動作時不一致検出時においては、一致線MLTおよびMLBの一方がHレベルとなり、応じて、NOR回路240の出力信号がLレベルとなる。NOR回路240を利用することにより、この検索動作時の一致/不一致判定を示す信号の論理レベルを、実施の形態1に示す場合と同じとすることができる。
読出データの論理レベルは、回路構成が実施の形態1の場合と同様であり、同じ論理レベルの信号を読出データとして転送することができる。
なお、NOR回路240を利用することなく図17に示すAND回路(120)を利用する場合、インバータ回路126を、セレクタ128ではなくセレクタ127に対しても受けることにより、一致/不一致判定結果の信号の論理レベルと実施の形態1および3の間で同じとすることができる。
また、図17に示す構成を利用する場合、センスアンプSA0およびSA1として反転増幅器が利用されても良い。
なお、主演算回路側において、検索結果の一致/不一致判定結果の論理レベルの調整を行う回路が設けられていれば、実施の形態1および3で、直交メモリからの出力される検索結果を示す信号の論理レベルが異なっていても、特に問題はなく、図28に示す構成を実施の形態1の図17に示す構成に代えて利用することができる(プリチャージ回路248aおよび248bが電源電圧レベルにプリチャージする)。
図29は、この発明の実施の形態3に従う半導体記憶装置の垂直方向ビット線VBL(VBLTB,VBLTT,VBLBT,VBLBB)および水平方向ワード線HWLT(HWLB)を駆動する部分の構成の一例を概略的に示す図である。図29において、ロウデコーダ97hにおいて、水平方向アドレス信号ADHをデコードする水平ロウデコード回路140が設けられる。この水平ロウデコード回路140は、垂直方向に整列するメモリセルの行(列)各々に対応して設けられ、対応の垂直方向に整列するメモリセルの選択時、水平行選択信号HXiをHレベルに駆動する。
水平方向ワード線HWLに対し、水平行選択信号HXiと水平方向書込指示信号HWEとを受けるNAND回路241が設けられる。一方、ビット線VBLに対しては、水平方向読出指示信号HREの活性化に応答して活性化され、水平行選択信号HXiを反転してビット線VBLを駆動するトライステートインバータバッファ242が設けられる。したがって、水平方向ポートアクセス時、垂直方向ビット線VBLおよび水平方向ワード線HWLは、選択時、Lレベルに駆動される。
一方、この垂直方向ビット線VBLに対し、検索動作時の検索対象/非対象を示すデータ格納をするステータスレジスタ145と、ステータスレジスタ145の格納データビットと検索データビットSDTiとを受けるNORゲート246と、水平方向読出指示信号HREの非活性化時能動化され、NORゲート246の出力信号に従ってビット線VBLを駆動するトライステートインバータバッファ147が設けられる。
この垂直方向ビット線VBLに対しては、さらに、センスアンプ252およびライトドライバ250が設けられる。センスアンプ252は、先の図7に示すセンスアンプ群94vに含まれ、ライトドライバ250は、図7に示すライトドライバ群96vに含まれる。このライトドライバ250の構成は、書込指示信号WEの非活性化時出力ハイインピーダンス状態となり、書込指示信号WEの活性化時、マスク指示信号MASKと書込データDとに従って垂直方向ビット線VBLを駆動する。このライトドライバ250の構成は、たとえば図11に示す構成において出力部が、書込指示信号WEに従ってクロック動作する(出力ハイインピーダンス状態を含む3値動作を行なう)。
垂直方向ビット線VBLに対しては、さらに、スタンバイ状態時、垂直方向ビット線VBLを電源電圧レベルにプリチャージすルビット線プリチャージ回路254が設けられる。このビット線プリチャージ回路254は、実施の形態1および2においても同様設けられている。
この図29に示す周辺回路を利用することにより、ビット線VBLを、垂直方向ポートのデータの転送線として利用でき、また、検索時の検索データ伝達線として利用することができ、さらに、水平方向ポートデータ読出時の読出ワード線としても利用することができる。
以上のように、この発明の実施の形態3に従えば、メモリセルにおいて、水平方向ポート読出線となる検索線と垂直方向ポートデータアクセス時の書込/読出データ伝達線となる垂直方向ビット線とを共用しており、メモリセルの占有面積を低減することができる。また、メモリセルにおいて、データ記憶部を構成するMOSトランジスタと水平方向ポートアクセス時の読出/検索ゲートを構成するトランジスタの導電型を異ならせており、この垂直方向ビット線が、検索、読出および書込時において、同一電圧レベルに(電源電圧レベル)にプリチャージされる場合においても、正確に、一致線上に、データ記憶部の記憶データまたは検索結果データを伝達することができる。
また、実施の形態1および2の場合と同様、検索結果は、主演算回路の演算処理ユニットの演算実行可否情報として利用することができ、また、2つのデータ記憶部により3値データを転送することができ、ライトマスク機能を実現することができる。
[実施の形態4]
図30は、この発明の実施の形態4に従う直交メモリのメモリセルMCCの構成を示す図である。この図30に示すメモリセルMCCは、図25に示すメモリセルと以下の点において、その構成が異なる。すなわち、検索線SLB[j]およびSLT[j]は、ビット線VBLTB[j]およびVBLTT[j]と共用される。また、検索/読出ゲート202aおよび202bが、NチャネルMOSトランジスタに代えてPチャネルMOSトランジスタで構成され、水平方向書込ポート204および205が、それぞれPチャネルMOSトランジスタで構成される。情報データ記憶部200およびマスクデータ記憶部201の構成は、図25に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
具体的に、検索/読出ゲート202aは、電源ノードと一致線MLT[i]の間に直列に接続されるPチャネルMOSトランジスタp10、p12およびp14を含み、検索/読出ゲート202bは、電源ノードと一致線MLB[i]の間に直列に接続されるPチャネルMOSトランジスタp11、p13およびp15を含む。
MOSトランジスタp10およびp11のゲートは、それぞれ、情報データ記憶部200のストレージノードSNDTおよびSNDBに結合される。MOSトランジスタp12およびp13のゲートは、それぞれ、ビット線VBLTB[j]およびVBLTT[j]に結合される。MOSトランジスタp14およびp15のゲートは、マスクデータ記憶部201のストレージノードSNVBに結合される。
水平方向書込ポート204は、水平方向ワード線HWLT[j]に従って情報データ記憶部200のストレージノードSNDTおよびSNDBをそれぞれ一致線MLB[i]およびMLT[i]に結合するPチャネルMOSトランジスタp06およびp07を含む。
水平方向書込ポート205は、水平方向ワード線HWLB[j]上の信号に従って選択的に導通し、導通時、一致線MLT[i]およびMLB[i]を、マスクデータ記憶部201のストレージノードSNVBおよびSNVTにそれぞれ結合するPチャネルMOSトランジスタp27およびp26を含む。
一致線MLT[i]およびMLB[i]は、Lレベルにプリチャージされる。
この図30に示すメモリセルMCCの構成においても、情報データ記憶部200およびマスクデータ記憶部201が別々に設けられており、情報データとマスクデータをほぼ個別に設定することができる。したがって、マスクデータ設定時、情報データを破壊することがなく、同一データ項目に対して、任意の位置(バイト単位)にマスク位置を変更して演算処理を主演算回路において行なうことができる。
垂直ポートアクセス時においては、垂直方向ワード線VWL[j]を選択状態へ駆動する。水平方向ワード線HWLT[j]およびHWLB[j]は非選択状態(Hレベル)に維持される。データ“1”を書込む場合には、ビット線VBLTB[j]およびVBLTT[j]にそれぞれLレベルおよびHレベルの信号を伝達する。これにより、情報データ記憶部200においては、ストレージノードSNDBがLレベル、ストレージノードSNDTがHレベルに設定される。一方、データ“0”を書込む場合には、ビット線VBLTB[j]およびVBLTT[j]がそれぞれHレベルおよびLレベルに設定され、情報データ記憶部200において、ストレージノードSNBTおよびSNDBが、それぞれ、LレベルおよびHレベルに設定される。
マスクデータ記憶部201において、ライトマスクをかけるデータを記憶する場合には、ビット線VBLBB[j]およびVBLBT[j]にそれぞれHレベルおよびLレベルの信号が伝達され、ストレージノードSNVTおよびSNVBが、それぞれLおよびHレベルに設定される。ライトマスクをかけないノンマスクの場合には、ビット線VBLBB[j]およびVBLBT[j]にそれぞれ、LレベルおよびHレベルの信号が伝達され、ストレージノードSNVTおよびSNVBが、それぞれHレベルおよびLレベルに設定される。
水平方向のポートを介してのデータ読出時においては、水平方向ワード線HWLT[j]およびHWLB[j]はともにHレベルに維持される。この水平方向のポートを介してのデータ書込/読出時の信号波形は図27に示す信号波形と同じである。ビット線VBLTBおよびVBLTT[j]がそれぞれLレベルに駆動され、検索/読出ゲート202aおよび202bが導通状態とされる。ライトマスクがかけられていない場合には、マスクデータ記憶部201のストレージノードSNVBがLレベルであり、応じて、検索/読出ゲート202aおよび202bにおいてMOSトランジスタp14およびp15が導通状態となる。したがって、MLT[i]およびMLB[i]においては、情報データ記憶部200のストレージノードSNDTおよびSNDBの保持電位を反転した論理レベルの電位が、一致線MLT[i]およびMLB[i]に伝達される。すなわち、情報データ記憶部200においてデータ“1”が記憶されている場合には、一致線MLB[i]はHレベルに駆動され、一致線MLT[i]は、プリチャージ電圧レベルを維持する。データ“0”が情報データ記憶部200において保持されている場合には、一致線MLT[i]がMOSトランジスタp10により電源電圧レベルにまで充電され、一方、一致線MLB[i]は、Lレベルのプリチャージ電圧レベルを維持する。
ライトマスクがかけられている場合には、マスクデータ記憶部201のストレージノードSNVBはHレベルであり、検索/読出ゲート202aおよび202bにおいてMOSトランジスタp14およびp10は非導通状態であり、一致線MLT[i]およびMLB[i]は、Lレベルのプリチャージ電圧レベルに維持される。
検索動作時においては、ビット線VBLTB[j]およびVBLTT[j]に検索データに応じた信号が伝達される。情報データ記憶部200の保持記憶データビットと検索データビットとが一致している場合には、検索/読出ゲート202aおよび202b各々においてMOSトランジスタの一方が非導通状態となり、一致線MLB[i]およびMLT[i]は、Lレベルのプリチャージ電圧レベルを維持する。検索データビットと情報データ記憶部200の保持データビットが不一致の場合には、検索ゲート202aおよび202bの一方において、トランジスタ列が導通状態となり、対応の検索線がHレベルに充電される。
この検索動作時において、マスクデータ記憶部201の保持データがノンマスク指定状態に設定されている場合でも、ビット線VBLTB[j]およびVBLTT[j]をともにHレベルに設定することにより、情報データ記憶部200の保持データを検索対象外のデータビットに設定することができる。これに代えて、マスクデータ記憶部201に対し、マスク指示データを書込むことにより、このメモリセルMCCを検索対象外のビットに設定することができる。
したがって、このマスクデータ記憶部201を、検索動作時の検索対象/非対象指定ビット記憶部として利用することにより、外部からの検索データに従ってビット線VBLTB[j]およびVBLTT[j]を検索データに応じた電圧レベルに設定して、検索対象ビットを選択的に設定することができ、検索対象外のビット設定のためにビット線対を3値駆動する必要がなく、ビット線駆動部の構成が簡略化される。
この検索動作時において、以下の動作も可能である。水平方向ワード線HWLB[j]を選択状態に駆動し、主演算回路から、一致線MLT[i]およびMLB[i]を介して検索対象外指定ビットを伝達して、水平方向書込ポート205を介してマスクデータ記憶部201に設定することにより、主演算回路の演算内容に応じて、所望の位置のデータビットを検索対象/検索非対象ビットに設定することができる(基本演算ブロック内のコントローラ(21)により、この検索対象/非対象を設定することができる)。
水平方向ポートを介してのデータ書込時においては、水平方向ワード線HWLT[j]をLレベルに駆動し、水平方向書込ポート204を導通状態として、情報データ記憶部200のストレージノードSNBTおよびSNDBを、一致線MLB[i]およびMLT[i]にそれぞれ接続することにより、主演算回路のメモリセルマットから転送されたデータを、情報データ記憶部200に書込むことができる。
図30に示すように、一致線MLT[i]およびMLB[i]におけるデータ読出時の信号電位の論理レベルが、先の実施の形態3において図26に示す信号電位と逆である。しかしながら、この場合、垂直ポートから垂直方向ビット線VBLBT[j]およびVBLBB[j]を介して伝達される書込データと一致線MLT[i]およびMLB[i]を介して伝達される転送データの論理レベルが整合していれば、図28に示す水平方向アクセスポートの構成を利用することができる。
また、ライトマスク時において、一致線MLT[i]およびMLB[i]がともにLレベルに設定される場合においても、主演算回路の入力インターフェイス部において制御信号を反転する構成を利用することにより、主演算回路メモリセルマットに対して、相補ビット線にHレベルの信号を伝達することができ、書込にマスクをかけることができる。
したがって、信号の論理レベルの整合性については、直交メモリと主演算回路の間のメモリセルマットとの間のインターフェイス部および直交メモリとホストCPUとの間のインターフェイス部で論理レベルの整合性がとれるように、信号の反転/非反転が設定されればよい。
以上のように、この発明の実施の形態4に従えば、検索線および垂直方向ビット線を共用しており、メモリセルの信号線数を低減でき、メモリセルの配線レイアウト面積を低減することができる。
実施の形態2と同様、マスクデータと情報データ記憶部とを別々に設けており、ライトマスクデータを、情報データを破壊することなく設定することができる。、また、さらに、このマスクデータ記憶部を検索対象ビット位置指定データ格納領域として利用することにより、検索データ駆動部の構成を簡略化することができる。
[実施の形態5]
図31は、この発明の実施の形態5に従う半導体信号処理装置の要部の構成を概略的に示す図である。図31に示す半導体信号処理装置においては、基本演算ブロックFB1−FBnがグローバルデータバス300に共通に結合される。これらの基本演算ブロックFB1−FBnは、同一構成を有し、図31においては、基本演算ブロックFB1の要部の構成を概略的に示す。基本演算ブロックFB1は、先の図2において示したように、複数のエントリに分割されるメモリセルマット40と、メモリセルマット40の各エントリに対応して配置される演算処理ユニット(ALU)を含む演算処理ユニット群(ALU群)42と、メモリセルマット40とグローバルデータバス300との間でのデータの入出力を行なう入出力インターフェイス(I/F)306を含む。このメモリセルマット40に対しては、演算処理ユニット群42との間でのデータ転送を行なうためのセンスアンプ群およびライトドライバ群が設けられるが、図31においては示していない。
このグローバルデータバス300に対し直交変換回路52が設けられ、直交変換回路52が、内部メインバス302を介してシステムバスI/F304に結合される。このシステムバスI/Fが、内部システムバス19に結合される。このシステムバス19には、先の図1において示したように、ホストCPUなどの周辺装置が結合される。
直交変換回路52においては、先の実施の形態1から4において説明した直交メモリ80が設けられ、システムバス19とグローバルデータバス300との間でのデータ配列の変換を行なう。
この図31に示す構成の場合、直交メモリ80は、複数の基本演算ブロックFB1−FBnに共通に設けられる。基本演算ブロックFB1−FBn各々において、直交メモリ80を配置する必要がなく、この半導体信号処理装置のチップ面積を低減することができる。
なお、図31に示す構成において、基本演算ブロックFB1−FBnに対し、集中制御ユニットが共通に設けられ、この集中制御ユニットが、外部のホストCPUからの制御キーを手渡されて、基本演算ブロックFB1−FBnの演算処理動作の制御が行なわれてもよい。この場合においても、基本演算ブロックFB1−FBnにおいては、それぞれの内部動作を制御するコントローラ(21)が設けられる。
[変更例]
図32は、この発明の実施の形態5に従う半導体信号処理装置の変更例の構成を示す図である。図32においては、1つの基本演算ブロックFBiの要部の構成を示す。基本演算ブロックFBiにおいては、複数のエントリに分割されるメモリセルマット40と、メモリセルマット40のエントリERYそれぞれに対応して設けられる演算処理ユニット(ALU)を含む演算処理ユニット群42が設けられる。メモリセルマット40と演算処理ユニット群42の間に、センスアンプ(SA)およびライトドライバ(WD)を含むセンスアンプ群/ライトドライバ群312が配設される。センスアンプ(SA)およびライトドライバ(WD)の組は、メモリセルマット40の各エントリERYに対応してそれぞれ配置される。
このメモリマット40に隣接して、直交メモリセルマット90が設けられる。この直交メモリセルマット90も、メモリセルマット40のエントリERYに対応して、エントリに分割され、各エントリに一致線対MLPおよび垂直方向ワード線VWLが設けられる。この直交メモリセルマット90の垂直方向に、垂直方向ビット線対VBLPおよび水平方向ワード線HWLが配設される。図32において、この直交メモリセルマット90において、垂直方向ビット線対VBLPおよび検索線対SLPが共用されるように示される。しかしながら、この垂直方向ビット線対VBLPおよび検索線対SLPは別々に設けられてもよく、直交メモリセルマット90の構成としては、先の実施の形態1から4において説明したメモリセルマットの構成を利用することができる。
この直交メモリセルマット90において、メモリ(CAMセル)MCCが行列状に配列され、メモリセルマット90の一致線対MLPがメモリセルマット40のビット線対CBLPに対応して配置されかつ連結される。このメモリマット90および40の間には、直交メモリセルマット90のデータの書込/読出を行なうセンスアンプ(SA)およびライトドライバ(WD)がセンスアンプ群/ライトドライバ群310が設けられる。
この図32に示す構成においては、直交メモリセルマット90と演算用データを格納するメモリセルマット40が隣接して配置され、一致線対MLPおよびビット線対CBLPが、センスアンプ群/ライトドライバ群310を介して共通に結合される。したがって、直交メモリセルマット90および演算用データ格納用のメモリセルマット40の間の配線距離が短く、高速でデータの転送を行なうことができる。
また、直交メモリと演算用のメモリとを別々の領域に配置して配線を介して接続する必要がなく、基本演算ブロックの占有面積を低減することができる。
この図32に示す基本演算ブロックFBiを利用する場合、システム構成は、図1に示す構成で与えられ、メモリセルマット90および40が、それぞれ対応のインターフェイス回路(入出力回路)を介してシステムバスインターフェイスに結合される。
なお、この図32に示す基本演算ブロックFBiの構成の場合、直交メモリセルマット90とメモリセルマット40の間のデータ転送時において、センスアンプ群/ライトドライバ群310が用いられ、演算処理ユニット群42とメモリセルマット40の間でのデータ転送時においては、センスアンプ群/ライトドライバ群312が用いられる。
この直交メモリセルマット90において、検索動作を行ない、この検索結果に従って、一致エントリまたは不一致エントリについてのみ演算処理ユニット群の演算処理ユニット(ALU)において演算処理を実行する演算マスクを設定する場合には、センスアンプ群/ライトドライバ群310および312のセンスアンプが活性化され、この一致検出結果(一致線対MLP上の信号)が、演算処理ユニット(L)のマスクデータレジスタに格納される。
以上のように、この発明の実施の形態5に従えば、直交変換を行なう直交メモリと、複数の基本演算ブロックに共通に設けまたは1つの基本演算ブロック内のメモリセルマットと同一のメモリセルマットアレイに隣接して配置しており、システム構成に応じて直交変換回路を所望の位置に配設することができる。複数の基本演算ブロックに対し共通に直交変換回路を構成する直交メモリが配置することにより、システムのチップ面積を低減することができ、また1つの基本演算ブロックのメモリセルマットを隣接して配設する場合、直交メモリと基本演算ブロックの主演算回路内におけるメモリセルマットとの間のデータ転送を高速で行なうことができる。
FB1−FBn 基本演算ブロック、19 内部システムバス、50 システムバスI/F、52 直交変換回路、30 主演算回路、40 メモリセルマット、42 演算処理ユニット群、44 演算処理ユニット、68 内部データバス、80 直交メモリ、94v,94h センスアンプ群、96v、96h ライトドライバ群、97 検索線ドライバ群、98v,98h 入出力回路、MCC CAMセル、100a,100b データ記憶部、102a,102b 水平方向書込ポート、104a,104b 検索/読出ゲート、m00−m07,m10−m13,m20−m27 NチャネルMOSトランジスタ、90 直交メモリセルマット、150 マスクレジスタ、152 演算部、200 情報データ記憶部、201 マスクデータ記憶部、202a、202b 検索/読出ゲート、204,205 水平方向書込ポート、p10−p13,p06,p07,p26,p27 PチャネルMOSトランジスタ、p11−p15 PチャネルMOSトランジスタ、300 グローバルデータバス、302 内部メインデータバス。