以下、図面を用いて実施形態を説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。末尾に"X"を付した信号線は負論理を示す。
図1は、一実施形態における半導体記憶装置を示す。図1に示す半導体記憶装置100は、2つの記憶部Ma(M0aまたはM1a)、Mb(M0bまたはM1b)を含むメモリセルMC(MC0またはMC1)と、動作制御部10と、読み出し部20(20a、20b)とを有する。メモリセルMC0、MC1は互いに同じ回路構成を有し、記憶部Ma、Mbは互いに同じ回路構成を有する。記憶部M0a、M1aは、第1の記憶部の一例であり、記憶部M0b、M1bは、第2の記憶部の一例である。読み出し部20aは第1の読み出し部の一例であり、読み出し部20bは、第2の読み出し部の一例である。
例えば、半導体記憶装置100は、CPU(Central Processing Unit)等に含まれるTCAMであり、仮想アドレスを物理アドレスに変換するTLB(Translation Lookaside Buffer)に使用される。なお、図1では、説明を簡単にするために、TCAMのメモリセルMCに接続されるサーチ線およびマッチ線と、データのサーチ(比較)を制御する制御回路の記載は省略する。TCAMのメモリセルMCは、サーチ線に伝達される比較データの論理値と比較するための論理0、論理1を記憶する以外に、不定を示す論理を保持するために2つの記憶部Ma、Mbを有する。メモリセルに不定を示す論理が保持される場合、マッチ線は、比較データの論理値にかかわりなく一致を示す論理値に設定される。すなわち、不定を示す論理は、"常に一致(always match)"を示す論理である。
記憶部M0aは、ワード線WL0aと相補のビット線対BL、BLXとに接続される。記憶部M0bは、ワード線WL0bと相補のビット線対BL、BLXとに接続される。記憶部M1aは、ワード線WL1aと相補のビット線対BL、BLXとに接続される。記憶部M1bは、ワード線WL1bと相補のビット線対BL、BLXとに接続される。
読み出し部20aは、ビット線BLに接続され、読み出し部20bは、ビット線BLXに接続される。以下では、ワード線WL0a、WL1aはワード線WLaまたはワード線WLとも称し、ワード線WL0b、WL1bはワード線WLbまたはワード線WLとも称する。
例えば、各記憶部Ma、Mbは、図示しない2つの反転回路(インバータ)を有し、反転回路の一方の出力は、反転回路の他方の入力に接続される。2つの反転回路の出力ノードは、ビット線対BL、BLXを介して記憶部Ma(またはMb)に供給される相補のデータを保持する相補の記憶ノードである。特に限定されないが、各記憶部Ma、Mbは、SRAMのメモリセルであるSRAMセルを有する。SRAMセルの例は図4に示す。例えば、各記憶部Ma(またはMb)の相補の記憶ノードは、ゲートがワード線WLa(またはWLb)に接続された転送トランジスタ等のスイッチ回路を介してビット線対BL、BLXの一方または他方にそれぞれ接続される。
各記憶部Ma、Mbの枠内に付した"0"、"1"は、各記憶部Ma、Mbが保持している論理値を示す。各記憶部Ma、Mbが保持している論理値は、ビット線BLに接続された記憶ノードが保持する論理値に等しい。なお、各記憶部Ma、Mbは、ビット線対BL、BLXに接続された相補の記憶ノードに相補の論理値を記憶する回路であれば、SRAMのメモリセル以外のメモリセルが使用されてもよい。
動作制御部10は、半導体記憶装置100の外部から供給されるアドレス信号ADおよび各種の制御信号CTLに基づいて、読み出し動作の制御または書き込み動作の制御を実行する。半導体記憶装置100が同期型の場合、制御信号CTLは、クロック信号CLKを含む。なお、図1および他の図において、信号線上に付した"/"は、信号線が複数ビットであることを示す。
動作制御部10は、アドレス信号ADの論理に基づいて、アクセスする記憶部M0a、M0b、M1a、M1bに接続されたワード線WL0a、WL0b、WL1a、WL1bのいずれかを選択レベルに駆動する。ここで、アクセスは、メモリセルMCからデータを読み出す読み出しアクセスまたはメモリセルMCにデータを書き込む書き込みアクセスのいずれかである。例えば、ワード線WLの選択レベルは電源電圧または電源電圧より高いハイレベルである。以下の説明では、ワード線WLを選択レベルに駆動することを活性化とも称し、ワード線WLを非選択レベルに駆動することを非活性化とも称する。
動作制御部10は、読み出しアクセスを実行する場合、活性化したワード線WLに接続された記憶部Ma(またはMb)に対応する読み出し部20に読み出し制御信号SAEa(またはSAEb)を出力し、読み出し部20を動作させる。例えば、ワード線WL0aの活性化により、記憶部M0aの相補の記憶ノードがビット線BL、BLXにそれぞれ接続され、記憶部M0aからのデータの読み出しまたは記憶部M0aへのデータの書き込みが実行される。同様に、ワード線WL0bの駆動により、記憶部M0bの相補の記憶ノードがビット線BL、BLXにそれぞれ接続され、記憶部M0bからのデータの読み出しまたは記憶部M0bへのデータの書き込みが実行される。なお、図1では、メモリセルMCにデータを書き込む書き込み部の記載は省略する。
読み出し部20aは、ワード線WLaの活性化により記憶部Maからビット線BLに読み出されるデータの論理を、読み出し制御信号SAEaに基づいて判定し、判定した論理を示す読み出しデータ信号RDTaを出力する。読み出し部20bは、ワード線WLbの活性化により記憶部Mbからビット線BLXに読み出されるデータの論理を、読み出し制御信号SAEbに基づいて判定し、判定した論理を示す読み出しデータ信号RDTbを出力する。例えば、読み出し部20aは、ビット線BLの電圧と参照電圧との差を差動増幅することでビット線BLに読み出されたデータの論理を判定する。読み出し部20bは、ビット線BLXの電圧と参照電圧との差を差動増幅することでビット線BLXに読み出されたデータの論理を判定する。
例えば、読み出しデータ信号RDTa、RDTbの論理(正論理または負論理)を合わせるため、読み出し部20bは、ビット線BLXに転送されるデータの論理を反転する反転回路を含む。なお、記憶部M0a(またはM1a)の読み出し動作時に読み出し部20bを動作させ、記憶部M0b(またはM1b)の読み出し動作時に読み出し部20aを動作させてもよい。この場合にも、動作制御部10は、メモリセルMC内の一対の記憶部Ma、Mbの各々からのデータの読み出しを互いに異なる読み出し部20a、20bを使用して実行する。
図2は、図1の半導体記憶装置100の動作の一例を示す。すなわち、図2は、半導体記憶装置100の制御方法の一例を示す。図2に示す例では、メモリセルMC0、MC1の読み出し動作が順次実行される。動作制御部10は、メモリセルMC0を示すアドレスADとともに読み出しコマンドを示す制御信号CTLを受信したことに基づいて、記憶部M0a、M0bからデータを順次読み出す制御を実行する。同様に、動作制御部10は、メモリセルMC1を示すアドレスADとともに読み出しコマンドを示す制御信号CTLを受信したことに基づいて、記憶部M1a、M1bからデータを順次読み出す制御を実行する。なお、読み出し部20a、20bは、各読み出し動作の開始前(例えば、1つ前の読み出しサイクルの後半)に、読み出し動作で使用するビット線BL(またはBLX)をプリチャージ電圧(ハイレベル)に設定する。
まず、動作制御部10は、メモリセルMC0の記憶部M0aからデータを読み出すために、ワード線WL0aを活性化する(図2(a))。ワード線WL0aの活性化により、記憶部M0aのビット線BL側の記憶ノード(論理0を記憶)がビット線BLに接続され、記憶部M0aのビット線BLX側の記憶ノード(論理1を記憶)がビット線BLXに接続される。記憶部M0aから論理0が読み出されることで、ビット線BLの電圧はプリチャージ電圧から徐々に低下する(図2(b))。動作制御部10は、所定の期間後、ワード線WL0aを非活性化し、読み出し制御信号SAEa(ハイレベルのパルス信号)を出力する(図2(c)、(d))。例えば、所定の期間は、読み出しサイクルの半分である。
動作制御部10は、例えば、ワード線WL0aを非活性化するタイミングで読み出し制御信号SAEaをハイレベルに設定する。読み出し部20aは、読み出し制御信号SAEaのハイレベル期間に、ビット線BLに読み出されたデータの論理を判定し、判定した論理を示す読み出しデータ信号RDTa(ロウレベル)を生成する(図2(e))。なお、読み出しデータ線RDTaとビット線BLとは電気的に分離しているため、読み出しデータ信号RDTaのレベルがビット線BLに伝わることはない。例えば、読み出し部20aは、読み出しデータ信号RDTaの論理が確定した後にビット線BLのプリチャージを開始する。プリチャージ動作により、ビット線BLは、例えば電源電圧まで徐々に上昇する(図2(f))。
動作制御部10は、ワード線WL0aの非活性化に対応してワード線WL0bを活性化する(図2(g))。ワード線WL0bの活性化により、記憶部M0bにおけるビット線BLX側の記憶ノード(論理0を記憶)がビット線BLXに接続され、記憶部M0bのビット線BL側の記憶ノード(論理1を記憶)がビット線BLに接続される。記憶部M0bは、論理1を記憶しているため、記憶部M0bからビット線BLXに論理0が読み出され、ビット線BLXの電圧はプリチャージ電圧から徐々に低下する(図2(h))。
なお、記憶部M0aからの論理0の読み出し時におけるビット線BLの電圧の低下量は、例えば、メモリセルMCの転送トランジスタの閾値電圧より小さい。このため、ビット線BLがプリチャージされる前にワード線WL0bが活性化された場合にも、ビット線BLの電圧は記憶部M0b内に伝達されず、記憶部M0bに記憶されたデータが破壊することはない。
動作制御部10は、所定の期間後、ワード線WL0bを非活性化し、読み出し制御信号SAEb(ハイレベルのパルス信号)を出力する(図2(i)、(j))。動作制御部10は、例えば、ワード線WL0bを非活性化するタイミングで読み出し制御信号SAEbをハイレベルに設定する。読み出し部20bは、読み出し制御信号SAEbのハイレベル期間に、ビット線BLXに読み出されたデータの論理を判定し、判定した論理を示す読み出しデータ信号RDTb(ロウレベル)を生成する(図2(k))。なお、読み出しデータ線RDTbとビット線BLとは電気的に分離しているため、読み出しデータ信号RDTbのレベルがビット線BLXに伝わることはない。読み出し部20bは、読み出しデータ信号RDTbの論理が確定した後にビット線BLXのプリチャージを開始する。プリチャージ動作により、ビット線BLXは、例えば電源電圧まで徐々に上昇する(図2(l))。
動作制御部10は、ワード線WL0bの非活性化に対応してワード線WL1aを活性化する(図2(m))。ワード線WL1aの活性化により、記憶部M1aにおけるビット線BL側の記憶ノード(論理1を記憶)がビット線BLに接続され、記憶部M1aにおけるビット線BLX側の記憶ノード(論理0を記憶)がビット線BLXに接続される。記憶部M1aは、論理1を記憶しているため、記憶部M1aからビット線BLに論理1が読み出されることで、データビット線BLの電圧はプリチャージ電圧を維持する(図2(n))。
一方、論理1を保持する記憶部M1aのビット線BLX側の記憶ノードは論理0を保持しているため、ワード線WL1aの活性化により、ビット線BLXの電圧は低下しようとする。しかしながら、例えば、ビット線BLXのプリチャージ回路の駆動力は、記憶部M1aの転送トランジスタの駆動力より大きい。このため、ビット線BLXは、記憶部M1aのビット線BLX側の記憶ノードが論理0を保持する場合にも、プリチャージ電圧から低下せず、プリチャージ電圧に維持される。
この後、上述と同様に、記憶部M1aからビット線BLに読み出されたデータの論理を読み出し部20aにより判定する動作およびビット線BLのプリチャージと、記憶部M1bからビット線BLXへのデータの読み出しとが並列に実行される(図2(o))。また、記憶部M1bからビット線BLXに読み出されたデータの論理を読み出し部20bにより判定する動作およびビット線BLXのプリチャージが実行される(図2(p))。
なお、論理0を保持する記憶部M1bのビット線BL側の記憶ノードは論理0を保持しているため、ワード線WL1bの活性化により、ビット線BLの電圧は低下しようとする。しかしながら、例えば、ビット線BLのプリチャージ回路の駆動力は、記憶部M1bの転送トランジスタの駆動力より大きい。このため、ビット線BLは、記憶部M1bのビット線BL側の記憶ノードが論理0を保持する場合にも、プリチャージ電圧から低下せず、プリチャージ電圧に維持される。
図2に示すように、半導体記憶装置100は、記憶部Ma、Mbの読み出し動作の一部を互いに重複させて順次実行する。記憶部Maからデータを読み出す読み出しサイクルは、記憶部Maからビット線BLにデータを読み出す読み出し期間(ワード線WLaの活性化期間)と、ビット線BLに読み出されたデータの論理を読み出し部20aにより判定する判定期間とを含む。なお、読み出しサイクルは、クロックサイクルと等しいが、2以上のクロックサイクルと等しくされてもよい。記憶部Maからのデータの読み出し期間は、第1の読み出し期間の一例であり、読み出し部20aによる判定期間は、第1の判定期間の一例である。
同様に、記憶部Mbからデータを読み出す読み出しサイクルは、記憶部Mbからビット線BLXにデータを読み出す読み出し期間(ワード線WLbの活性化期間)と、ビット線BLXに読み出されたデータの論理を読み出し部20bにより判定する判定期間とを含む。記憶部Mbからのデータの読み出し期間は、第2の読み出し期間の一例であり、読み出し部20bによる判定期間は、第2の判定期間の一例である。各判定期間は、ビット線BL(またはBLX)のプリチャージ期間を含む。
例えば、各読み出しサイクルにおいて、読み出し期間と判定期間とは互いに等しく、それぞれ読み出しサイクルの半分である。そして、同じメモリセルMC内の記憶部Maの判定期間と記憶部Mbの読み出し期間とが互いに重複される。また、複数のメモリセルMCの読み出し動作が交互に繰り返し実行される場合、1つのメモリセルMC内の記憶部Mbの判定期間と、他のメモリセルMC内の記憶部Maの読み出し期間とが互いに重複される。
換言すれば、ワード線WLの活性化による記憶部Ma(またはMb)からビット線BL(またはBLX)へのデータの読み出しと、ビット線BLX(またはBL)のプリチャージとが並列に実行される。これにより、例えば、記憶部Ma、Mbの読み出しサイクルの半分を互いに重複させることができるため、見た目の読み出しサイクルを実際の読み出しサイクルのほぼ半分にすることができる。
以上、図1および図2に示す実施形態では、ビット線対BL、BLXのそれぞれに読み出し部20a、20bを接続し、記憶部Ma、Mbから読み出されるデータの論理の判定を互いに異なる読み出し部20a、20bにより実行する。これにより、共通のビット線対BL、BLXに接続された2つの記憶部Ma、Mbのそれぞれからデータを読み出す読み出しサイクルの一部を互いに重複して実行することができる。例えば、メモリセルMCの記憶部Maの判定期間と、他のメモリセルMCの記憶部Mbの読み出し期間とを互いに重複させることで、記憶部Mbからビット線対BLXにデータを読み出す期間に、ビット線対BLに読み出されたデータの論理を判定することができる。この結果、読み出しサイクルを重複しない場合に比べて、半導体記憶装置100から読み出し可能な単位時間当たりのデータ数を増加させることができ、読み出しアクセス性能を向上することができる。例えば、TCAMのメモリセルに保持されたデータを読み出す場合にも、いわゆるデータセルとマスクセルとを1つの読み出しサイクルで読み出すことができ、読み出しアクセス性能を向上することができる。
なお、図1は、半導体記憶装置100に含まれる2つのメモリセルMCを示したが、複数の記憶部Ma(またはMb)が各ワード線WLに接続されてもよい。この場合、図1の横方向に複数のビット線対BL、BLXが配列され、各ビット線BL(またはBLX)に読み出し部20a(または20b)が接続される。そして、共通のワード線WLに接続された複数の記憶部Ma(またはMb)が同時に読み出しアクセスされる。さらに、3以上のメモリセルMCを共通のビット線対BL、BLXに接続してもよく、この場合、動作制御部10は、ビット線対BL、BLXに接続されるメモリセルMCの数の2倍のワード線WLの駆動を制御する。このように、メモリセルMC(すなわち、記憶部Ma、Mb)がマトリックス状に配置される場合にも、共通のビット線対BL、BLXに接続された2つの記憶部Ma、Mbの読み出しサイクルの一部を互いに重複して実行することができる。この結果、読み出しサイクルを重複しない場合に比べて、半導体記憶装置100から読み出し可能な単位時間当たりのデータ数を増加させることができ、読み出しアクセス性能を向上することができる。
以下、ビット線対BL、BLXに共通の読み出し部が接続され、読み出し部がビット線対BL、BLXの電圧差に応じて記憶部Ma(またはMb)に保持されたデータを読み出す場合を検討する。この場合、ビット線対BL、BLXは、読み出し期間と判定期間の両方で使用されるため、記憶部Ma、Mbの読み出しサイクルの一部を重複させることができない。また、1つの読み出しサイクル内に記憶部Ma、Mbのそれぞれからの読み出し動作を実行する場合(いわゆるダブルポンプ方式)、読み出しサイクルは、記憶部Ma、Mb毎に読み出し動作を実行する読み出しサイクルの2倍になる。読み出しサイクルをクロックサイクルとする場合、動作周波数は2分の1になり、半導体記憶装置の性能は低下する。
さらに、複数のメモリセルMCを、互いに異なるワード線対WLa、WLbと共通のビット線対BL、BLXとに接続する代わりに、共通のワード線対WLa、WLbと互いに異なるビット線対BL、BLXとに接続する場合を検討する。この場合、共通のワード線対WLa、WLbに接続されたメモリセルMCの読み出しアクセスは並列に実行できるため、これらメモリセルMCを順次アクセスすることで、見た目の読み出しサイクルを短縮することができる。しかしながら、例えば、ランダムアクセスにより、共通のワード線対WLa、WLbに接続されたメモリセルMCのアクセスを並列に実行できない場合、読み出しサイクルを短縮することができない。
図3は、別の実施形態における半導体記憶装置を示す。図3に示す半導体記憶装置102は、メモリセルアレイ30、制御部40、ワードデコーダ50、ワードドライバ52、書き込み部60、読み出し部70、比較制御部80、ヒット検出部90およびプライオリティエンコーダ92を有する。例えば、半導体記憶装置102は、TCAMであり、クロック信号CLKに同期して動作する。図3に示す白丸は、半導体記憶装置102と他の回路との間で信号を入出力する外部端子を示す。信号名の後ろに付けたかぎ括弧内の数値または符号は、信号線のビット番号を示す。なお、半導体記憶装置102は、クロック信号CLKに同期して動作するため、クロック信号CLKは、制御部40以外の回路にも供給される。
メモリセルアレイ30は、マトリックス状に配置された複数のメモリセルMCを有する。図3の横方向に並ぶメモリセルMCは、共通のワード線WLM、WLDおよび共通のマッチ線MLに接続される。図3の縦方向に並ぶメモリセルは、共通のビット線対BL、BLXおよび共通のサーチ線対SL、SLXに接続される。各メモリセルMCは、データセルDTとマスクセルMSKを有しており、データセルDTはワード線WLDのいずれかに接続され、マスクセルMSKはワード線WLMのいずれかに接続される。ワード線WLDは第1のワード線の一例であり、ワード線WLMは第2のワード線の一例である。メモリセルMCの例は、図4に示される。ビット線BL[0]、BLX[0]に接続されたデータセルDTおよびマスクセルMSKに付した括弧内の数字は、図9に示す読み出し動作および図10に示す書き込み動作でのアクセス順を示している。
例えば、ワード線WLM、WLDおよびマッチ線MLの数"n"は、256本または512本であり、ビット線対BL、BLXおよびサーチ線対SL、SLXの数"m"は、64本または128本である。なお、"n"および"m"の値は、上記に限定されないが、回路設計の容易性を考慮して2のべき乗であることが望ましい。
制御部40は、外部端子を介して受信するクロック信号CLK、aビットのアドレス信号AD[a-1:0]、書き込みイネーブル信号WE、読み出しイネーブル信号REおよび比較イネーブル信号CPEを受ける。書き込みイネーブル信号WEは、メモリセルMCにデータを書き込む場合にハイレベルに設定される。読み出しイネーブル信号REは、メモリセルMCからデータを読み出す場合にハイレベルに設定される。比較イネーブル信号CPEは、比較データCPDTをメモリセルMCに記憶されたデータと比較する場合、ハイレベルに設定される。
そして、制御部40は、メモリセルアレイ30を動作させる制御信号を生成し、生成した制御信号をワードデコーダ50、ワードドライバ52、書き込み部60、読み出し部70、比較制御部80、ヒット検出部90およびプライオリティエンコーダ92に出力する。制御部40は、書き込みイネーブル信号WEに基づいて、書き込みイネーブル信号WEDX、WEMX、書き込みクロック信号WDCLKおよび書き込み選択信号WDSELを生成する。制御部40は、読み出しイネーブル信号REに基づいて、読み出しイネーブル信号RE(RED、REM)、センスアンプイネーブル信号SAE(SAED、SAEM)およびプリチャージ信号PCH(PCHD、PCHM)を生成する。制御部40は、比較イネーブル信号CPEに基づいて、比較制御部80に供給する比較信号CPを生成する。
ワードデコーダ50は、制御部40からアドレス信号ADおよびタイミング信号を受け、共通のメモリセルMCに接続されるワード線WLD、WLMのペアのいずれかを選択する。すなわち、ワード線WLD、WLMのペアは、同じアドレスが割り当てられている。なお、ワード線WLDは、データセルDTに接続され、ワード線WLMは、マスクセルMSKに接続される。ワードドライバ52は、ワードデコーダ50により選択されたワード線WLD、WLMを順次駆動する。制御部40、ワードデコーダ50およびワードドライバ52は、読み出し動作または書き込み動作において、データセルDTおよびマスクセルMSKを順次選択する動作制御部の一例である。
書き込み部60は、書き込み動作において、制御部40から出力される書き込みイネーブル信号WEDX(またはWEMX)、書き込みクロック信号WDCLKおよび書き込み選択信号WDSELに基づいて動作する。書き込み部60は、書き込みデータ信号WDDT、WMDTのいずれかに対応する相補の論理値をビット線対BL、BLXに出力し、書き込みデータ信号WDDT、WMDTの論理のいずれかをメモリセルMCに書き込む。
読み出し部70は、ビット線BL、BLX毎に設けられ、図示しないセンスアンプを有する。各読み出し部70は、制御部40から出力される読み出しイネーブル信号RED(またはREM)、センスアンプイネーブル信号SAED(またはSAEM)およびプリチャージ信号PCHD(またはPCHM)に基づいて動作する。ビット線BLに接続された読み出し部70は、センスアンプイネーブル信号SAEDに基づいて、データセルDTからビット線BLに読み出されたデータの論理を判定し、判定した論理を有する読み出しデータ信号RDDTを出力する。同様に、ビット線BLXに接続された読み出し部70は、センスアンプイネーブル信号SAEMに基づいて、マスクセルMSKからビット線BLXに読み出されたデータの論理を判定し、判定した論理を有する読み出しデータ信号RMDTを出力する。ビット線BLに接続された読み出し部70は、第1の読み出し部の一例であり、ビット線BLXに接続された読み出し部70は、第2の読み出し部の一例である。
比較制御部80は、相補のサーチ線SL、SLXに接続される。比較制御部80は、制御部40から出力される比較イネーブル信号CPに基づいて、比較データ信号CPDTがメモリセルMCに保持されたデータと一致するか否かを判定する比較動作を実行する。比較制御部80は、比較データ信号CPDTの論理に基づいて相補の比較データを生成し、生成した相補の比較データを相補のサーチ線SL、SLXに出力する。
ヒット検出部90は、ワード線対WLD、WLMに対応するn本のマッチ線ML上の論理値に基づいて、mビットの比較データ信号CPDTの論理と同じ論理のデータがメモリセルアレイ30に保持されているかをワード線対WLD、WLM毎に検出する。以下では、各ワード線対WLD、WLMに接続されたm個のメモリセルMCに保持されたデータ列は、ワードデータと称する。例えば、比較データ信号CPDTで示されるデータがワードデータと一致する場合、そのワードデータを保持するメモリセルMC群に接続されるマッチ線MLは、ハイレベルに設定される。一方、比較データ信号CPDTで示されるデータがワードデータと一致しない場合、ワードデータを保持するメモリセルMC群に接続されるマッチ線MLは、ロウレベルに設定される。ヒット検出部90は、マッチ線MLのいずれかがハイレベルに設定された場合、ヒット信号HITを出力し、複数のマッチ線MLがハイレベルに設定された場合、マルチヒット信号MHITを出力する。
プライオリティエンコーダ92は、ヒット検出部90による検出結果に基づいて、ハイレベルに設定されたマッチ線MLに割り当てられたアドレスを検出し、検出したアドレスをヒットアドレス信号HADとして出力する。複数のマッチ線MLがハイレベルに設定された場合、プライオリティエンコーダ92は、ハイレベルに設定されたマッチ線MLそれぞれに割り当てられたアドレスの内、最も大きいアドレスもしくは、最も小さいアドレスをヒットアドレス信号HADとして出力する。
図4は、図3に示すメモリセルMCの一例を示す。メモリセルMCに設けられるデータセルDTおよびマスクセルMSKの各々は、SRAMのメモリセルと、判定部JDG(JDGDまたはJDGM)とを有する。データセルDTは第1の記憶部の一例であり、マスクセルMSKは第2の記憶部の一例である。なお、データセルDTを第2の記憶部の一例とし、マスクセルMSKを第1の記憶部の一例としてもよい。
データセルDTおよびマスクセルMSKの各々は、一対のCMOS(Complementary Metal Oxide Semiconductor)インバータを有し、一方のCMOSインバータの出力が他方のCMOSインバータの入力に接続される。特に限定されないが、CMOSインバータは、半導体記憶装置102に供給される電源電圧VDDおよび接地電圧VSSにより動作する。データセルDTおよびマスクセルMSKの各々において、一対のCMOSインバータの出力ノードは、ゲートがワード線WL(WLDまたはWLM)に接続された転送トランジスタを介して相補のビット線BL、BLXにそれぞれ接続される。データセルDTおよびマスクセルMSKの各々が記憶するデータの論理は、ビット線BL側の記憶ノードが保持する論理である。
判定部JDGD、JDGMの各々は、マッチ線MLと接地線VSSとの間に直列に接続された一対のnチャネルMOSトランジスタ(以下、単にnMOSと称する)を有する。判定部JDGDにおいて、一方のnMOSのゲートは、サーチ線SLXに接続され、他方のnMOSのゲートは、データセルDTのビット線BL側の記憶ノードに接続される。判定部JDGMにおいて、一方のnMOSのゲートは、サーチ線SLに接続され、他方のnMOSのゲートは、マスクセルMSKのビット線BL側の記憶ノードに接続される。換言すれば、データセルDTにおいて、転送トランジスタを介してビット線BLに接続される記憶ノード(一方のCMOSインバータの出力)が判定部JDGDに接続される。マスクセルMSKにおいて、転送トランジスタを介してビット線BLに接続される記憶ノード(一方のCMOSインバータの出力)が判定部JDGMに接続される。
図5は、図3に示す半導体記憶装置102の動作を示す真理値表の一例を示す。符号"H"は、ハイレベルまたは論理1を示し、符号"L"はロウレベルまたは論理0を示す。符号"-"は、論理0、1のいずれでもよいことを示す(don't care)。ビット線BL、BLXの符号"(L)"、"(H)"は、読み出し部70の動作により確定する論理を示す。ビット線BL、BLXの符号"PCH"は、プリチャージされることを示す。
符号"DT"は、データセルDTが保持する論理(ビット線BL側の記憶ノードが保持する論理)を示し、符号"MSK"は、マスクセルMSKが保持する論理(ビット線BL側の記憶ノードが保持する論理)を示す。"変化なし"は、データセルDTまたはマスクセルMSKが保持する論理が変化しないことを示す。
半導体記憶装置102は、書き込みコマンドを受信した場合、書き込み動作を実行する。書き込みコマンドは、クロック信号CLKの立ち上がりエッジに同期して書き込みイネーブル信号WEのハイレベルを検出した場合に検出される。
データをデータセルDTに書き込む場合、データを書き込むデータセルDTに接続されたワード線WLDがハイレベルに設定され、他のワード線WLDおよびワード線WLMはロウレベルに設定される。データをマスクセルMSKに書き込む場合、データを書き込むマスクセルMSKに接続されたワード線WLMがハイレベルに設定され、他のワード線WLMおよびワード線WLDはロウレベルに設定される。
データセルDTまたはマスクセルMSKに論理1を書き込む場合、ビット線BLはハイレベルに設定され、ビット線BLXはロウレベルに設定される。データセルDTまたはマスクセルMSKに論理0を書き込む場合、ビット線BLはロウレベルに設定され、ビット線BLXはハイレベルに設定される。
ロウレベルのビットイネーブル信号BEに対応するビット線対BL、BLXは、ハイレベルに設定される。これにより、複数ビットのワードデータのうち、ロウレベルのビットイネーブル信号BEに対応するビットのデータがデータセルDTおよびマスクセルMSKに書き込まれることがマスクされる。すなわち、半導体記憶装置102は、ワードデータのうちの所定のビットのみ書き込み動作を実行するパーシャル書き込み機能を有する。なお、書き込み動作では、判定部JDGD、JDGMの動作を禁止するために、サーチ線SL、SLXはロウレベルに設定される。これにより、マッチ線MLはハイレベルに固定される。
半導体記憶装置102は、読み出しコマンドを受信した場合、読み出し動作を実行する。読み出しコマンドは、クロック信号CLKの立ち上がりエッジに同期して読み出しイネーブル信号REのハイレベルを検出した場合に検出される。
データセルDTからデータを読み出す場合、データを読み出すデータセルDTに接続されたワード線WLDがハイレベルに設定され、他のワード線WLDおよびワード線WLMはロウレベルに設定される。そして、ビット線BLの電圧レベルに応じてデータセルDTに保持されているデータの論理が読み出される。データセルDTからデータを読み出す場合、ビット線BLXは、プリチャージ状態に設定される。マスクセルMSKからデータを読み出す場合、データを読み出すマスクセルMSKに接続されたワード線WLMがハイレベルに設定され、他のワード線WLMおよびワード線WLDはロウレベルに設定される。そして、ビット線BLXの電圧レベルに応じてマスクセルMSKに保持されているデータの論理が読み出される。マスクセルMSKからデータを読み出す場合、ビット線BLはプリチャージ状態に設定される。読み出し動作においても、判定部JDGD、JDGMの動作を禁止するために、サーチ線SL、SLXはロウレベルに設定される。これにより、マッチ線MLはハイレベルに固定される。
半導体記憶装置102は、比較コマンドを受信した場合、比較動作を実行する。比較コマンドは、クロック信号CLKの立ち上がりエッジに同期して比較イネーブル信号CPEのハイレベルを検出した場合に検出される。サーチ線SLは、比較イネーブル信号CPEとともに受信する比較データCPDT(図3)の論理に設定され、サーチ線SLXは、比較データCPDTの論理の逆の論理に設定される。そして、比較動作では、後述する例外条件を除き、サーチ線SLの論理がデータセルDTに保持された論理と一致する場合、マッチ線MLがハイレベルに維持される。また、サーチ線SLの論理がデータセルDTに保持された論理と一致しない場合、マッチ線MLがハイレベルからロウレベルに変化する。論理の一致の検出は、判定部JDGDまたは判定部JDGMにより実行される。
以下に例外条件を示す。データセルDTとマスクセルMSKとがともに論理0を保持する場合、ソース線SLの論理にかかわりなく一致が検出され、マッチ線MLはハイレベルに維持される。また、データセルDTとマスクセルMSKとがともに論理1を保持する場合、ソース線SLの論理にかかわりなく不一致が検出され、マッチ線MLはハイレベルからロウレベルに変化する。但し、データセルDTとマスクセルMSKにともに論理1を書き込むことは動作仕様で禁止されており、この状態は使用されない。
マッチ線MLは、ワードデータのビットをそれぞれ保持する複数のメモリセルMCに接続されている。このため、ワードデータのすべてのデータが一致と判定された場合、マッチ線MLはハイレベルに維持され、ワードデータの少なくとも1つのデータが不一致と判定された場合、マッチ線MLはロウレベルに変化する。これにより、ワードデータ毎に比較データCPDTとの一致/不一致が検出される。
なお、半導体記憶装置102は、書き込みイネーブル信号WE、読み出しイネーブル信号REおよび比較イネーブル信号CPEのすべてがロウレベルの場合、動作モードをスタンバイモードに移行する。スタンバイモードでは、ワード線WLD、WLM、ビット線BL、BLX、サーチ線SL、SLXは、すべてロウレベルに設定され、マッチ線MLはハイレベルに設定される。
図6は、図3に示す読み出し部70の一例を示す。ビット線BLに接続された読み出し部70とビット線BLXに接続された読み出し部70とは、接続される信号線が異なることを除き互いに同じ構成である。このため、以下では、ビット線BLに接続された読み出し部70を説明する。ビット線BLXに接続された読み出し部70の説明は、以下の説明の符号BL、RDD、SAED、RDDT、RED、PCHD、DTを符号BLX、RDM、SAEM、RMDT、REM、PCHM、MSKに読み替えればよい。
読み出し部70は、1本のビット線BLに接続され、1本のビット線BLに読み出されるデータの信号量を増幅する、いわゆるシングルエンドの回路である。読み出し部70は、差動タイプのセンスアンプSAと、センスアンプSAの出力に接続されたラッチLTとを有する。センスアンプSAの一方の入力に接続された読み出しデータ線RDDは、読み出しデータ線RDDのプリチャージ用のpチャネルMOSトランジスタ11(以下、単にpMOSと称する)に接続される。pMOS11は、プリチャージ信号PCHDのロウレベル期間に導通して読み出しデータ線RDDを電源線VDDに接続する。
また、読み出しデータ線RDDは、読み出しイネーブル信号REDの論理を反転させた信号を受けるpMOS12を介してビット線BLに接続される。ビット線BLに接続されたpMOS12は、データセルDTから読み出されたデータの論理をセンスアンプSAで判定する第1の判定期間に、ビット線BLとセンスアンプSAとの接続を遮断する第1のスイッチ部の一例である。一方、ビット線BLXに接続されたpMOS12は、マスクセルMSKから読み出されたデータの論理をセンスアンプSAで判定する第2の判定期間に、ビット線BLXとセンスアンプSAとの接続を遮断する第2のスイッチ部の一例である。
ビット線BLと読み出しデータ線RDDとの間にpMOS12を配置することで、センスアンプSAによる増幅動作の開始と同時にビット線BLのプリチャージ動作を開始することができる。センスアンプSAの増幅動作期間を含む判定期間の長さは、ビット線BLのプリチャージ動作の期間に依存して決まる。このため、pMOS12によりビット線BLと読み出しデータ線RDDとの接続を制御することで、pMOS12を配置しない場合に比べて、判定期間を短縮することができる。
センスアンプSAの他方の入力は、参照電圧線Vrefに接続される。例えば、参照電圧線Vrefの電圧は、論理0を保持するデータセルDTからビット線BLに読み出された電圧と電源電圧VDDとの間(中央値)に設定される。
センスアンプSAは、センスアンプイネーブル信号SAEDのハイレベル期間に動作する。センスアンプSAは、ビット線BLの電圧が伝達される読み出しデータ線RDDの電圧と参照電圧線Vrefとの電圧差を差動増幅する。ラッチLTは、センスアンプSAの出力に接続され、センスアンプSAが増幅したデータをラッチする。ラッチLTは、ラッチしたデータを読み出しデータ信号RDDTとして出力する。
なお、ビット線BL、BLXをプリチャージするプリチャージ回路(プリチャージ機能)は、書き込みドライバ部WDRVに含まれる。書き込みドライバ部WDRVは、図3に示した書き込み部60に含まれるため、ビット線BL、BLXのプリチャージ回路は、書き込み部60の詳細を示す図8で説明する。本実施形態では、一対の読み出し部70がビット線BL、BLXのそれぞれに対応して設けられ、互いに独立に動作する。また、一対のプリチャージ回路がビット線BL、BLXのそれぞれに対応して設けられ、互いに独立に動作する。これにより、図9で説明するように、データセルDTとマスクセルMSKの読み出しサイクルの一部を重複させることができ、メモリセルMCからデータを連続して読み出す場合に読み出しサイクルを短縮することができる。
図7は、図6に示すセンスアンプSAおよびラッチLTの一例を示す。図7の括弧内に示す符号は、ビット線BLX(マスクセルMSK)に対応するセンスアンプSAおよびラッチLTに接続される信号線名を示す。以下では、ビット線BL(データセルDT)に対応するセンスアンプSAおよびラッチLTを説明する。
センスアンプSAは、いわゆるラッチ型であり、電源線VDDおよび接地線VSSとの接続がセンスアンプイネーブル信号SAEDで制御された一対のCMOSインバータを有する。一方のCMOSインバータの出力は、他方のCMOSインバータの入力に接続され、センスアンプSAはラッチ機能を有する。ラッチ機能はセンスアンプイネーブル信号SAEDがハイレベルの期間に有効になる。また、図示されていないが、センスアンプSAの一方のノードN1は、活性化時のセンスアンプSAより電流駆動能力が小さいトランジスタを介して参照電圧線Vrefに接続されている。このため、読み出しデータ線RDDの電圧と参照電圧VrefをセンスアンプSAで増幅した信号は、データ線RDDとノードN1に出力される。センスアンプSAは、センスアンプイネーブル信号SAEDがハイレベルになると、その時の読み出しデータ線RDDの電圧と参照電圧Vrefの電位差を検出し、センスアンプイネーブル信号SAEDがハイレベル期間にその電位差を増幅し、読み出しデータ線RDDとノードN1に出力する。増幅された相補のデータ信号(RDD、Vref)は、ラッチLTに供給される。
ラッチLTは、電源線VDDと接地線VSSとの間に直列に配置されたpMOS13およびnMOS14を有する。pMOS13のゲートは読み出しデータ線RDDに接続され、nMOS14のゲートは、インバータIV1を介してセンスアンプSAのノードN1に接続される。pMOS13およびnMOS14の共通のドレインノードは、データ保持部DHに接続される。
センスアンプイネーブル信号SAEDがロウレベルであるセンスアンプSAが非活性である期間、データ線RDDは電源電圧VDDにプリチャージされているかメモリセルMCのみによって駆動される状態であり、データ線RDDの電位は電源電圧VDDまたはその付近にあるため、pMOS13はオフ状態である。また、参照電圧Vrefも電源電圧VDD付近の電圧であるため、インバータIV1の出力はロウレベルであり、nMOS14もオフ状態である。センスアンプイネーブル信号SAEDがハイレベルの期間において、センスアンプSAは活性化し、読み出しデータ線RDDの電圧と参照電圧Vrefの電位差を増幅し、その結果、pMOS13またはnMOS14のいずれかがオンする。
データ保持部DHは、一対のインバータを有し、一方のインバータの出力が他方のインバータの出力に接続される。データ保持部DHの出力は、インバータIV2を介して読み出しデータ線RDDTに接続される。ラッチLTは、センスアンプイネーブル信号SAEDのハイレベル期間にセンスアンプSAで増幅されるデータを取り込み、ラッチする。なお、センスアンプSAおよびラッチLTは、図7に示す回路に限定されない。例えば、センスアンプSAは、カレントミラー回路を含む電流制御型でもよい。
図8は、図3に示す書き込み部60の一例を示す。書き込み部60は、ビット線対BL、BLX毎にデータラッチ部DLT、マルチプレクサMUX1、MUX2を含むマルチプレクサ部MUXおよび書き込みドライバ部WDRVを有する。
データラッチ部DLTは、マスタラッチ部MLTおよびスレーブラッチ部SLTを有する。マスタラッチ部MLTは、書き込みクロック信号WDCLKに同期して書き込みデータ信号WDDT、WMDTおよびビットイネーブル信号BEをそれぞれラッチする3つのラッチLTを有する。各ラッチLTは、書き込みクロック信号WDCLKのロウレベル期間にデータ入力端子Dで受けた信号をデータ出力端子Qから出力し、書き込みクロック信号WDCLKの立ち上がりエッジに同期してデータ入力端子Dで受けた信号の論理をラッチする。マスタラッチ部MLTにおいて、書き込みデータ信号WDDTをラッチするラッチLTは、データセルDTに書き込むデータを保持する第1の保持部の一例である。
ハイレベルのビットイネーブル信号BEとともに書き込みデータ信号WDDTがマスタラッチ部MLTに供給された場合、書き込みデータ信号WDDTの論理とその反転論理とがマスタラッチ部MLTからマルチプレクサMUX1、MUX2にそれぞれ供給される。ロウレベルのビットイネーブル信号BEとともに書き込みデータ信号WDDTがマスタラッチ部MLTに供給された場合、書き込みデータ信号WDDTの論理とその反転論理との代わりにロウレベルがマルチプレクサMUX1、MUX2に供給される。また、ハイレベルのビットイネーブル信号BEとともに書き込みデータ信号WMDTがマスタラッチ部MLTに供給された場合、書き込みデータ信号WMDTとその反転論理とがマスタラッチ部MLTからスレーブラッチ部SLTに供給される。ロウレベルのビットイネーブル信号BEとともに書き込みデータ信号WMDTがマスタラッチ部MLTに供給された場合、書き込みデータ信号WMDTおよびその反転論理の代わりにロウレベルがスレーブラッチ部SLTに供給される。
スレーブラッチ部SLTは、マスタラッチ部MLTから出力される書き込みデータ信号WMDTの論理とその反転論理とをラッチする2つのラッチLTを有する。スレーブラッチ部SLTのラッチLTは、マスタラッチ部MLTから供給される書き込みデータ信号WMDTの論理とその反転論理とを書き込みクロック信号WDCLKのハイレベル期間にマルチプレクサMUX1、MUX2に転送する。また、スレーブラッチ部SLTのラッチLTは、書き込みクロック信号WDCLKの立ち下がりエッジに同期して、書き込みデータ信号WMDTとその反転論理をラッチする。スレーブラッチ部LSTに含まれるラッチLTは、マスクセルMSKに書き込むデータを保持する第2の保持部の一例である。マスタラッチ部MLTとスレーブラッチ部SLTとを設けることで、半導体記憶装置102に並列に供給される書き込みデータ信号WDDT、WMDTを書き込みドライバ部WDRVに順次供給し、書き込み動作を順次実行することができる。
マルチプレクサMUX1は、書き込み選択WDSELがロウレベルの場合、マスタラッチ部MLTからの書き込みデータ信号WDDTを選択する。マルチプレクサMUX1は、書き込み選択信号WDSELがハイレベルの場合、スレーブラッチ部SLTからの書き込みデータ信号WMDTを選択する。そして、マルチプレクサMUX1は、選択した信号を書き込みデータ信号WDとして出力する。
マルチプレクサMUX2は、書き込み選択WDSELがロウレベルの場合、マスタラッチ部MLTからの書き込みデータ信号WDDTの論理を反転した信号を選択する。マルチプレクサMUX2は、書き込み選択WDSELがハイレベルの場合、スレーブラッチ部SLTからの書き込みデータ信号WMDTの論理を反転した信号を選択する。そして、マルチプレクサMUX2は、選択した信号を書き込みデータ信号WDXとして出力する。
特に限定されないが、マルチプレクサMUX1、MUX2は、入力ノードがデータ入力端子D0、D1にそれぞれ接続され、出力ノードがデータ出力端子Zに接続された2つのCMOSトランスミッションゲートを有する。そして、2つのCMOSトランスミッションゲートは、書き込み選択信号WDSELの論理に応じて排他的に導通することで、データ入力端子D0、D1の一方に供給される信号を選択する。
マルチプレクサ部MUXは、メモリセルMCの書き込み動作において、マスタラッチ部MLTに保持された書き込みデータ信号WDDTを選択した後、スレーブラッチ部SLTに保持された書き込みデータ信号WMDTを選択する選択部の一例である。マスタラッチ部MLTおよびスレーブラッチ部SLTの出力をマルチプレクサ部MUXにより選択することで、共通の書き込みドライバ部WDRVを使用して、データセルDTまたはマスクセルMSKにデータを書き込むことができる。
なお、スレーブラッチ部SLTのデータ入力端子Dに供給する信号を生成する2つのANDゲートは、スレーブラッチ部SLTの2つのラッチLTのデータ出力端子Qに接続されてもよい。この場合、マスタラッチ部MLTにおいて書き込みデータ信号WMDTをラッチするラッチLTのデータ出力端子Qがスレーブラッチ部SLTの左側のラッチLTのデータ入力端子Dに直接接続される。反転入力を有するANDゲートは、マルチプレクサMUX2のデータ入力端子D1とスレーブラッチ部SLTの左側のラッチLTのデータ出力端子Qとの間に配置される。反転入力を有さないANDゲートは、マルチプレクサMUX1のデータ入力端子D1とスレーブラッチ部SLTの左側のラッチLTのデータ出力端子Qとの間に配置される。
さらに、スレーブラッチ部SLTの右側のラッチLTは、マスタラッチ部MLTから出力されるビットイネーブル信号BEをクロック信号CLKの立ち下がりエッジに同期してラッチする。ビットイネーブル信号BEをラッチするラッチLTのデータ出力端子Qは、移動した2つのANDゲートの入力にそれぞれに接続される。
書き込みドライバ部WDRVは、ビット線BLにデータを出力するデータバッファDBと、ビット線BLXにデータを出力するデータバッファDBXとを有する。書き込みドライバ部WDRVは、書き込みイネーブル信号WEDXがロウレベルの期間に、データバッファDB、DBXを動作させ、書き込みデータ信号WD、WDX(すなわちWDDT)の論理に応じて、ビット線BL、BLXを駆動する。また、書き込みドライバ部WDRVは、書き込みイネーブル信号WEMXがロウレベルの期間に、データバッファDB、DBXを動作させ、書き込みデータ信号WD、WDX(すなわちWMDT)の論理に応じて、ビット線BL、BLXを駆動する。そして、データセルDTに書き込みデータ信号WDDTの論理が書き込まれ、マスクセルMSKに書き込みデータ信号WMDTの論理が書き込まれる。書き込みドライバ部WDRVは、マルチプレクサ部MUXが順次選択した書き込みデータ信号WDDT、WMDTを、ビット線対BL、BLXを介してデータセルDTとマスクセルMSKとに順次書き込むデータ書き込み部の一例である。
なお、データセルDTまたはマスクセルMSKのいずれかにデータを書き込む書き込みサイクルでは、読み出しイネーブル信号RED、REMはロウレベルに設定されるため、データバッファDB、DBXは、CMOSインバータとして動作する。また、データセルDTまたはマスクセルMSKのいずれかからデータを読み出す読み出しサイクルでは、書き込みイネーブル信号WEDX、WEDMはハイレベルに固定される。このため、書き込みイネーブル信号WEDX、WEDMと書き込みデータ信号WD、WDXとに基づいて生成されるデータバッファDB、DBXの制御信号はロウレベルに設定される。
したがって、データバッファDBは、読み出しイネーブル信号REDがロウレベルの期間にビット線BLをプリチャージするプリチャージ回路として機能する。データバッファDBXは、読み出しイネーブル信号REMがロウレベルの期間にビット線BLXをプリチャージするプリチャージ回路として機能する。このように、ビット線BL、BLXにそれぞれ接続されるプリチャージ回路は、互いに異なる読み出しイネーブル信号RED、REMにより独立に動作する。このため、図9で説明するように、読み出し動作において、共通のビット線対BL、BLXに接続されたデータセルDTおよびマスクセルMSKの読み出しサイクルの一部を互いに重複させることができる。データバッファDBは、ビット線BLの電圧をプリチャージ電圧に初期化する第1の初期化部の一例であり、データバッファDBXは、ビット線BLXの電圧をプリチャージ電圧に初期化する第2の初期化部の一例である。
図9は、図3に示す半導体記憶装置102の読み出し動作の一例を示す。図9は、図面が複雑になることを避けるため、主な信号の遷移エッジをクロック信号CLKの遷移エッジに合わせている。しかしながら、実際の動作では、クロック信号CLKや他の制御信号に対して所定のセットアップ時間と所定のホールド時間とが設定される。また、ビット線BL、BLXおよび読み出しデータ線RDD、RDMの電圧の変化量は、説明を分かりやすくするために誇張している。
図9の説明では、ワード線WLD[0]、WLM[0]とビット線対BL[0]、BLX[0]とに接続されたメモリセルMCは、メモリセルMC0と称する。ワード線WLD[n-1]、WLM[n-1]とビット線対BL[0]、BLX[0]とに接続されたメモリセルMCは、メモリセルMC1と称する。また、メモリセルMC0が有するデータセルDTおよびマスクセルMSKは、それぞれデータセルDT0およびマスクセルMSK0と称する。メモリセルMC1が有するデータセルDTおよびマスクセルMSKは、それぞれデータセルDT1およびマスクセルMSK1と称する。図9に示す例では、データセルDT0は"L"を保持し、マスクセルMSK0は"H"を保持し、データセルDT1は"H"を保持し、マスクセルMSK1は"L"を保持している。
読み出し動作は、読み出しコマンドRD(RD1、RD2、RD3)に基づいて実行される。読み出しコマンドRD(RE="L")は、クロック信号CLKの立ち上がりエッジに同期して半導体記憶装置102に供給される。そして、読み出しコマンドRD毎にデータセルDTとマスクセルMSKの両方からデータが順次読み出される。図9に示す例では、ワード線WLD[0]、WLM[0]に接続されたメモリセルMC0からのデータの読み出しと、ワード線WLD[n-1]、WLM[n-1]に接続されたメモリセルMC1からのデータの読み出しとが順次実行される。図2と同様に、読み出しサイクルは、1クロックサイクルに等しく、データセルDTからデータを読み出す読み出しサイクルと、マスクセルMSKからデータを読み出す読み出しサイクルとは、半クロックの期間重複する。以下では、メモリセルMC0、MC1のそれぞれからデータを読み出すために動作する回路について説明する。
制御部40は、ワードドライバ52を制御して、読み出しコマンドRD1を受けたクロックサイクルの前半にワード線WLD[0]を活性化し、読み出しコマンドRD1を受けたクロックサイクルの後半にワード線WLM[0]を活性化する(図9(a)、(b))。例えば、クロックサイクルの前半は、クロック信号CLKのハイレベル期間であり、クロックサイクルの後半は、クロック信号CLKのロウレベル期間である。
また、制御部40は、読み出しコマンドRD1を受けたクロックサイクルの前半に読み出しイネーブル信号REDおよびプリチャージ信号PCHDをハイレベルに設定する(図9(c)、(d))。ハイレベルの読み出しイネーブル信号REDを受けた書き込みドライバ部WDRVは、ビット線BL[0]のプリチャージを停止する。ハイレベルのプリチャージ信号PCHDを受けた読み出し部70は、センスアンプSAの入力に接続された読み出しデータ線RDD[0]のプリチャージを停止する。
ワード線WLD[0]の活性化によりデータセルDT0がビット線BL[0]に接続される。そして、データセルDT0から読み出される論理0により、ビット線BL[0]の電圧はプリチャージ電圧から徐々に低下する(図9(e))。読み出しコマンドRDを受けたクロックサイクルのクロック信号CLKのハイレベル期間は、データセルDTからビット線BLにデータを読み出す第1の読み出し期間の一例である。読み出しイネーブル信号REDがハイレベルの期間、読み出し部70のpMOS12が導通し、読み出しデータ線RDD[0]はビット線BL[0]に接続される。このため、ビット線BL[0]の電圧は読み出しデータ線RDD[0]に伝達され、読み出しデータ線RDD[0]の電圧は低下する(図9(f))。
なお、ビット線BLX[0]は、ロウレベルの読み出しイネーブル信号REMによりプリチャージ電圧に維持される(図9(g))。例えば、ビット線BLX[0]をプリチャージする能力は、"H"を保持するデータセルDT0がプリチャージ中のビット線BLX[0]の電圧を低下させる能力よりも高い。このため、データセルDT0が"H"を保持し、読み出し動作によりデータセルDT0からビット線BLX[0]に"L"が読み出される場合にも、ビット線BLX[0]はプリチャージ電圧に維持される。すなわち、ビット線BLX[0]の電圧は、データセルDT0に保持された論理にかかわりなくプリチャージ電圧に維持される。読み出しデータ線RDM[0]は、ロウレベルのプリチャージ信号PCHMによりプリチャージ状態に維持される(図9(h))。
次に、制御部40は、読み出しコマンドRD1を受けたクロックサイクルのクロック信号CLKの立ち下がりエッジに同期してセンスアンプイネーブル信号SAEDを所定の期間ハイレベルに設定する(図9(i))。これによりセンスアンプSAは、読み出しデータ線RDD[0]の電圧を増幅する。増幅により得られた論理は、読み出しデータ信号RDDT[0]としてラッチLTから出力される(図9(j))。すなわち、データセルDT0に保持された論理0が読み出される。読み出しコマンドRDを受けたクロックサイクルのクロック信号CLKのロウレベル期間は、データセルDTからビット線BLに読み出されたデータの論理を判定する第1の判定期間の一例である。
制御部40は、センスアンプSAの動作を開始した後、読み出しイネーブル信号REDをロウレベルに設定する(図9(k))。ロウレベルの読み出しイネーブル信号REDにより、ビット線BL[0]と読み出しデータ線RDD[0]との接続が遮断される。また、ロウレベルの読み出しイネーブル信号REDにより、書き込みドライバ部WDRVのデータバッファDBはビット線BLをプリチャージする。ビット線BLをプリチャージするときに、ビット線BLと読み出しデータ線RDDとの接続は遮断されているため、ビット線BLのプリチャージが読み出しデータ線RDDに影響することを防止することができる。したがって、ビット線BLのプリチャージ電圧の影響を受けてセンスアンプSAが誤動作することを防止できる。
ビット線BL[0]はプリチャージされて、徐々に電源電圧VDDまで変化する(図9(l))。なお、データセルDTからの論理0の読み出し時におけるビット線BLの電圧の低下量は、例えば、データセルDTの転送トランジスタの閾値電圧より小さい。このため、ビット線BLがプリチャージされる前にWLM[0]が活性化された場合にも、ビット線BLの電圧はマスクセルMSK内に伝達されず、マスクセルMSKに記憶されたデータが破壊することはない。
制御部40は、センスアンプイネーブル信号SAEDのロウレベルへの非活性化に基づいて、プリチャージ信号PCHDをロウレベルに設定する(図9(m))。ロウレベルのプリチャージ信号PCHDにより、読み出しデータ線RDD[0]はプリチャージされて、徐々に電源電圧VDDまで変化する(図9(n))。これにより、読み出しコマンドRD1を受けたクロックサイクルでデータセルDTからのデータの読み出し動作が完了する。
一方、制御部40は、読み出しコマンドRD1を受けたクロックサイクルの後半に読み出しイネーブル信号REMおよびプリチャージ信号PCHMをハイレベルに設定する(図9(o)、(p))。ハイレベルの読み出しイネーブル信号REMにより、ビット線BLX[0]のプリチャージが停止され、ハイレベルのプリチャージ信号PCHMにより、読み出しデータ線RDM[0]のプリチャージが停止される。
ワード線WLM[0]の活性化によりマスクセルMSK[0]からビット線BLX[0]にデータが読み出され、ビット線BLX[0]の電圧はプリチャージ電圧から徐々に低下する(図9(q))。読み出しコマンドRDを受けたクロックサイクルのクロック信号CLKのロウレベル期間は、マスクセルMSKからビット線BLXにデータを読み出す第2の読み出し期間の一例である。読み出しイネーブル信号REMがハイレベルの期間、ビット線BLX[0]が読み出しデータ線RDM[0]に接続され、読み出しデータ線RDM[0]の電圧は、ビット線BLX[0]の電圧に追従して低下する(図9(r))。
次に、制御部40は、読み出しコマンドRD1を受けたクロックサイクルの次のクロックサイクルのクロック信号CLKの立ち上がりエッジに同期してセンスアンプイネーブル信号SAEMを所定の期間ハイレベルに設定する(図9(s))。これによりセンスアンプSAは、読み出しデータ線RDM[0]の電圧を増幅する(図9(t))。読み出し部70のラッチLTは、センスアンプSAにより増幅された読み出しデータ線RDM[0]の論理をラッチし、読み出しデータ信号RMDT[0]として出力する(図9(u))。すなわち、データセルDT0に保持された論理0が読み出される。
このように、1つの読み出しコマンドRDに基づいてデータセルDTおよびマスクセルMSKの両方からデータを読み出すことができる。読み出しコマンドRDを受けたクロックサイクルの次のクロックサイクルのクロック信号CLKのハイレベル期間は、マスクセルMSKからビット線BLXに読み出されたデータの論理を判定する第2の判定期間の一例である。
制御部40は、センスアンプSAの動作を開始した後、読み出しイネーブル信号REMをロウレベルに設定し、ビット線BLX[0]と読み出しデータ線RDM[0]との接続を遮断する(図9(v))。また、ロウレベルの読み出しイネーブル信号REMにより、ビット線BLX[0]がプリチャージされ、徐々に電源電圧VDDまで変化する(図9(w))。
ロウレベルの読み出しイネーブル信号REMにより、書き込みドライバ部WDRVのデータバッファDBXはビット線BLXをプリチャージする。ビット線BLXをプリチャージするときに、ビット線BLXと読み出しデータ線RDMとの接続は読み出し部70のpMOS12により遮断されているため、ビット線BLXのプリチャージが読み出しデータ線RDMに影響することを防止することができる。したがって、ビット線BLXのプリチャージ電圧の影響を受けてセンスアンプSAが誤動作することを防止できる。
制御部40は、センスアンプイネーブル信号SAEMのロウレベルへの非活性化に基づいて、プリチャージ信号PCHMをロウレベルに設定し、読み出しデータ線RDM[0]をプリチャージする(図9(x))。これにより、読み出しコマンドRD1を受けたクロックサイクルのクロック信号CLKの立ち下がりエッジから1クロックサイクルでマスクセルMSKからのデータの読み出し動作が完了する。
この後、制御部40は、クロック信号CLKの立ち上がりエッジに同期して読み出しコマンドRD2、RD3を順次受け、読み出しコマンドRD1に応答する動作と同様に、読み出し動作を実行する。この結果、複数の読み出しコマンドRDが連続して半導体記憶装置102に供給される場合、データセルDTの読み出し動作とマスクセルMSKの読み出し動作とを半クロックずつずらしながら交互に実行することができる。
本実施形態では、ビット線BL、BLX毎に読み出し部70を設けることで、ビット線BL、BLX毎に読み出し期間と判定期間を独立に設定することができる。したがって、共通のビット線対BL、BLXに接続されたデータセルDTおよびマスクセルMSKのそれぞれからデータを読み出す読み出しサイクルの一部を互いに重複して実行することができる。
換言すれば、マスクセルMSKからビット線BLXにデータを読み出す期間に、データセルDTからデータを読み出したビット線BLをプリチャージすることができる。同様に、データセルDTからビット線BLにデータを読み出す期間に、マスクセルMSKからデータを読み出したビット線BLXをプリチャージすることができる。すなわち、ビット線BL、BLXのプリチャージ期間を隠すことができ、データセルDTおよびマスクセルMSKの読み出し動作において、見た目の読み出しサイクルを実際の読み出しサイクルのほぼ半分にすることができる。
また、センスアンプSAに判定させる論理が伝達されたビット線BL(またはBLX)の電圧を、判定期間の開始に基づいてプリチャージ電圧等に初期化することで、判定期間内に次の読み出し期間の準備をすることができる。これにより、判定期間と読み出し期間の間に初期化期間を設ける場合に比べて、読み出しサイクルを短縮することができる。
図10は、図3に示す半導体記憶装置102の書き込み動作の一例を示す。なお、図10においても、図9と同様に、図面が複雑になることを避けるため、主な信号の遷移エッジをクロック信号CLKの遷移エッジに合わせている。また、ワード線WLD[0]、WLM[0]とビット線対BL[0]、BLX[0]とに接続されたデータセルDTおよびマスクセルMSKは、それぞれデータセルDT0およびマスクセルMSK0と称する。ワード線WLD[n-1]、WLM[n-1]とビット線対BL[0]、BLX[0]とに接続されたデータセルDTおよびマスクセルMSKは、それぞれデータセルDT1およびマスクセルMSK1と称する。
図10では、図3に括弧で示した数字の順序でデータセルDTおよびマスクセルMSKが順次アクセスされる。すなわち、まず、データセルDT0とマスクセルMSK0とのそれぞれに論理0、論理1が順次書き込まれ、次に、データセルDT1とマスクセルMSK1とのそれぞれに論理1、論理0が順次書き込まれる。さらに、データセルDT0とマスクセルMSK0のそれぞれに論理1、論理0が順次書き込まれる。なお、3番目のクロックサイクルでは、ビットイネーブル信号BE[0]がロウレベルに設定されるため、ビット線対BL[0]、BLX[0]に接続されたデータセルDTおよびマスクセルMSKには、データは書き込まれない。すなわち、複数組のビット線対BL、BLXに接続された複数のメモリセルMCの一部にデータが書き込まれるパーシャル書き込みが実行される。
書き込み部60(図8)は、各書き込みコマンドWR(WR1、WR2、WR3)に同期して書き込みデータ信号WDDT、WMDTを並列に受ける(図10(a)、(b)、(c))。このため、半導体記憶装置102は、書き込みデータ信号WDDT、WMDTのそれぞれを互いに独立に受信するデータ端子を有する。なお、半導体記憶装置102は、書き込みデータ信号WDDT、WMDTに共通のデータ端子を有してもよい。この場合、半導体記憶装置102は、クロック信号CLKの立ち上がりエッジに同期して書き込みデータ信号WDDTを受け、クロック信号CLKの立ち下がりエッジに同期して書き込みデータ信号WMDTを受ける。これにより図8に示したスレーブラッチ部SLTおよびマルチプレクサ部MUXが不要になり、書き込み部60の回路規模を削減することができる。また、書き込みデータ信号WDDT、WMDTが共通のデータ端子を介して供給される場合、書き込みデータ信号WDDT、WMDTの供給順は入れ替えられてもよい。
書き込みコマンドWR1に対する書き込み動作について説明する。図3に示した制御部40は、書き込みコマンドWR1とともに受信するアドレス信号AD(図示せず)をワードデコーダ50に出力する。ワードデコーダ50は、アドレス信号ADをデコードし、デコード結果をワードドライバ52に出力する。ワードドライバ52は、デコード結果により示されるワード線WLD[0]、WLM[0]を順次駆動する(図10(d)、(e))。
また、制御部40は、書き込みコマンドWR1を受信したクロック信号CLKのハイレベル期間に書き込みイネーブル信号WEDXをロウレベルに設定する(図10(f))。制御部40は、書き込みコマンドWR1を受信したクロック信号CLKのロウレベル期間に書き込みイネーブル信号WEMXをロウレベルに設定する(図10(g))。制御部40は、書き込みコマンドWR1を受信したクロック信号CLKのハイレベル期間に書き込みクロック信号WDCLKをハイレベルに設定する(図10(h))。さらに、制御部40は、書き込みコマンドWR1を受信したクロック信号CLKのロウレベル期間に書き込み選択信号WDSELをハイレベルに設定する(図10(i))。
マスタラッチ部MLT(図8)は、書き込みクロック信号WDCLKの立ち上がりエッジに同期して書き込みデータ信号WDDT、WMDTおよびビットイネーブル信号BEの論理をラッチする。ハイレベルのビットイネーブル信号BEがラッチされた場合、ラッチされた書き込みデータ信号WDDTとその反転論理が、マルチプレクサMUX1、MUX2にそれぞれ出力される。また、ハイレベルのビットイネーブル信号BEがラッチされた場合、ラッチされた書き込みデータ信号WMDTとその反転論理が、スレーブラッチ部SLTに供給される。
マルチプレクサMUX1、MUX2は、ロウレベルの書き込み選択信号WDSELに基づいて、書き込みデータ信号WDDTの論理とその反転論理とを書き込みデータ信号WD、WDXとして書き込みドライバ部WDRVに出力する(図10(j))。
ハイレベルのビットイネーブル信号BEがマスタラッチ部MLTにラッチされた場合、スレーブラッチ部SLTは、書き込みデータ信号WMDTの論理とその反転論理とをマルチプレクサMUX1、MUX2にそれぞれ出力する。また、スレーブラッチ部SLTは、書き込みクロック信号WDCLKの立ち下がりエッジに同期して、書き込みデータ信号WMDTの論理とその反転論理とをラッチする。
マルチプレクサMUX1、MUX2は、ハイレベルの書き込み選択信号WDSELに基づいて、書き込みデータ信号WMDTの論理とその反転論理とを書き込みデータ信号WD、WDXとして書き込みドライバ部WDRVに出力する(図10(k))。書き込みドライバ部WDRVは、書き込みイネーブル信号WEDX、WEMXのいずれかがロウレベルの場合、書き込みデータ信号WD、WDXの論理に応じてビット線BL、BLXをそれぞれ駆動する。例えば、書き込みドライバ部WDRVは、書き込みデータ信号WDの論理をビット線BLに出力し、書き込みデータ信号WDXの論理をビット線BLXに出力する。
これにより、書き込みコマンドWR1を受けたクロックサイクルにおいて、クロック信号CLKのハイレベル期間に書き込みデータ信号WDDTの論理がデータセルDTに書き込まれる(図10(l))。また、クロック信号CLKのロウレベル期間に書き込みデータ信号WMDTの論理がマスクセルMSKに書き込まれる(図10(m))。すなわち、半導体記憶装置102は、1つの書き込みコマンドWR1に基づいて、1クロックサイクルでデータセルDTおよびマスクセルMSKの両方にデータを書き込むことができる。したがって、CPUコア等のコントローラは、クロックサイクル毎に書き込みコマンドWRを生成して、書き込みデータ信号WDDT、WMDTを順次書き込む場合に比べて、データの書き込みレートを向上することができる。また、コントローラは、データセルDTおよびマスクセルMSKへのデータの書き込み毎に書き込コマンドWRを生成する場合に比べて、書き込みコマンドWRの生成頻度を下げることができ、半導体記憶装置102を簡易に制御できる。
ここで、書き込みドライバ部WDRVは、ワード線WLD[0]の駆動の開始に合わせて書き込みデータ信号WDDTをビット線対BL、BLXに出力する。また、書き込みドライバ部WDRVは、ワード線WLM[0]の駆動の開始に合わせて書き込みデータ信号WMDTをビット線対BL、BLXに出力する。このため、例えば、データセルDTに論理1を書き込む場合、ワード線WLD[0]がハイレベルに活性化される前にビット線BLの電圧をロウレベルからフリップポイント以上に設定することができる。ここで、フリップポイントは、例えば、ワード線WLDを活性化した状態で、ビット線BLの電圧をハイレベルから下げたときに、データセルDTに保持される論理1が論理0に反転するときのビット線BLの電圧である。あるいは、フリップポイントは、例えば、ワード線WLDを活性化した状態で、ビット線BLXの電圧をハイレベルから下げたときに、データセルDTが保持する論理0が論理1に反転するときのビット線BLXの電圧である。例えば、フリップポイントは、電源電圧VDDの半分程度である。
この実施形態では、ワード線WLDの駆動の開始に合わせて書き込みデータ信号WDDTをビット線対BL、BLXに出力することで、ワード線WLDが活性化されるまでにビット線BLまたはBLXの電圧をフリップポイント以上に設定することができる。同様に、ワード線WLMの駆動の開始に合わせて書き込みデータ信号WMDTをビット線対BL、BLXに出力することで、ワード線WLMが活性化されるまでにビット線BLまたはBLXの電圧をフリップポイント以上に設定することができる。この結果、データセルDTまたはマスクセルMSKに誤った論理が書き込まれることを防止できる。
書き込みコマンドWR2に基づく書き込み動作は、データの論理が逆であることを除き、書き込みコマンドWR1に基づく書き込み動作と同じである。書き込みコマンドWR3に基づく書き込み動作は、ロウレベルのビットイネーブル信号BE[0]により、データセルDTおよびマスクセルMSKへのデータの書き込みがマスクされることを除き、書き込みコマンドWR1に基づく書き込み動作と同様である。すなわち、書き込みコマンドWR3に基づく書き込み動作では、書き込みデータ信号WD、WDXがともにロウレベルに設定され、ビット線対BL[0]、BLX[0]がともにハイレベルに設定される(図10(n)、(o))。ビット線対BL[0]、BLX[0]がハイレベルに設定された場合、データセルDTまたはマスクセルMSKの相補の記憶ノードのうち論理1を保持する記憶ノードの論理は反転しないため、データの書き込みがマスクされる。
図3に示す半導体記憶装置102では、図10に示すように、データの書き込み後にビット線BL、BLXをプリチャージすることなく、次のデータの書き込みを実行する。これにより、プリチャージ動作を実行する場合に比べて書き込みサイクルを短縮することができ、書き込みコマンドWRに基づいてデータセルDTおよびマスクセルMSKへのデータの書き込み動作を1クロックサイクルで完了することができる。
図11は、読み出し部の別の例を示す。図11では、半導体記憶装置102は、図6に示す読み出し部70の代わりに読み出し部70Aを有する。読み出し部70Aは、図6に示す読み出し部70からセンスアンプSAを削除し、ゲートで読み出しイネーブル信号RED(またはREM)を受けるnMOS15がpMOS12の代わりに配置される。また、ラッチLTは、プリチャージ信号PCHD(またはPCHM)に同期して動作する。なお、ラッチLTは、図6と同様に、センスアンプイネーブル信号SAED(またはSAEM)に同期して動作させてもよい。
nMOS15は、読み出しイネーブル信号RED(またはREM)のハイレベル期間にビット線BL(またはBLX)を読み出しデータ線RDD(またはRDM)に接続する。nMOS15を使用することで、ビット線BL(またはBXL)のロウレベルは読み出しデータ線RDD(またはRDM)に伝達されやすくなる。このため、ラッチLTは、データセルDT(またはマスクセルMSK)からビット線BL(またはBLX)に読み出されるロウレベルを論理0として正しくラッチすることができる。
読み出し部70Aは、読み出しデータ線RDD(またはRDM)に伝達されるビット線BL(またはBLX)の各々の電圧をラッチLTで受けて論理を判定する。このため、ラッチLTの動作マージンは、ビット線の論理0に対応するロウレベル電圧が低いほど向上する。すなわち、ラッチLTの動作マージンは、ビット線BL、BLXの長さが短いほど(ワード線WLD、WLMの数が少ないほど)向上する。
なお、ラッチLTは、センスアンプイネーブル信号SAED(またはSAEM)に同期して動作する代わりに、プリチャージ信号PCHD(またはPCHM)に同期して動作させてもよい。この場合、図9において、例えば、ラッチLTは、プリチャージ信号PCHDの立ち下がりエッジに同期して読み出しデータ信号RDD(またはRDM)の論理をラッチする。
図12は、図3から図11に示す実施形態の効果の一例を示す。なお、図1および図2に示す実施形態でも図12と同様の効果を得ることができる。
図3に示す半導体記憶装置102は、クロック信号CLKに同期して読み出しコマンドRDを受信する毎に、データセルDTおよびマスクセルMSKの両方からデータを読み出し、読み出しデータ端子RDDT、RMDTに出力する。データセルDTから読み出した読み出しデータ信号RDDTは、読み出しコマンドRDを受信したクロック信号CLKの立ち下がりエッジに同期して確定する。マスクセルMSKから読み出した読み出しデータ信号RMDTは、読み出しコマンドRDを受信したクロック信号CLKの次のクロックサイクルの立ち上がりエッジに同期して確定する。半導体記憶装置102にアクセスするコントローラ等は、半導体記憶装置102から出力される読み出しデータ信号RDDT、RMDTを、読み出しコマンドRDを発行したクロックサイクルの次のクロックサイクルの立ち上がりエッジに基づいて受信する。1つの読み出しコマンドRDでデータセルDTおよびマスクセルMSKの両方からデータを読み出すことができるため、8つのデータの読み出しをほぼ4クロックサイクルで実行できる。
また、半導体記憶装置102は、クロック信号CLKに同期して書き込みコマンドWRを受信する毎に、書き込みデータ端子WDDT、WMDTで受ける書き込みデータ信号WDDT、WMDTをデータセルDTおよびマスクセルMSKの両方に書き込む。1つの書き込みコマンドWRでデータセルDTおよびマスクセルMSKの両方にデータを書き込むことができるため、8つのデータの書き込みを4クロックサイクルで実行できる。
一方、他のTCAMでは、読み出しコマンドRD毎にデータセルDTまたはマスクセルMSKのいずれかからデータが読み出され、書き込みコマンドWR毎にデータセルDTまたはマスクセルMSKのいずれかにデータが書き込まれる。このため、8つのデータの読み出しにほぼ8クロックサイクル掛かり、8つのデータの書き込みに8クロックサイクル掛かる。また、コマンドRD、WR毎に1つのデータしかアクセスできないため、他のTCAMでは、半導体記憶装置102に比べて、コマンドRD、WRの発行数が増加し、他のTCAMにアクセスするコントローラが使用するクロックサイクル数が増加する。
以上、図3から図11に示す実施形態においても、図1および図2に示す実施形態と同様に、データセルDTおよびマスクセルMSKからのデータの読み出しサイクルの一部を重複させることができ、見た目の読み出しサイクルを短縮することができる。この結果、半導体記憶装置102の読み出しアクセス性能を向上することができる。
さらに、例えば、ビット線BL(またはBLX)と読み出しデータ線RDD(またはRDM)との間にpMOS12を配置することで、センスアンプSAによる増幅動作の開始と同時にビット線BL(またはBLX)のプリチャージ動作を開始することができる。この結果、判定期間を短縮することができる。また、pMOS12により、判定期間にビット線BLのプリチャージ電圧が読み出しデータ線RDDに伝達することを防止でき、センスアンプSAが誤動作することを防止できる。ビット線BL(またはBLX)の電圧を、判定期間の開始に基づいてプリチャージ電圧等に初期化することで、判定期間内に次の読み出し期間の準備をすることができ、読み出しサイクルを短縮することができる。
1つの読み出しコマンドRDに基づいてデータセルDTおよびマスクセルMSKの両方からデータを読み出すことができる。また、1つの書き込みコマンドWRに基づいてデータセルDTおよびマスクセルMSKの両方にデータを書き込むことができる。書き込みコマンドWRを受信したクロックサイクル内に、データセルDTおよびマスクセルMSKへのデータの書き込みを完了させることができ、半導体記憶装置102の書き込みアクセス性能を向上させることができる。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。