図1は、実施例1に係る半導体装置のブロック図である。本実施例のメモリセルアレイ10は、横方向に配置された複数のワード線WLと、縦方向に配置された複数のビット線BLの交差領域に、不図示のメモリセルが規則的に配置されて構成される。メモリセル10は、ワード線WLの方向に沿って、ユーザがデータを記憶するためのメイン領域10aと、管理データを記憶するためのスペア領域10bとに分割されている。さらに、各領域はそれぞれワード線WLの方向に沿って複数のメモリブロックに分割されている。図示するように、メイン領域10aは4つのメインブロック0〜3に、スペア領域10bも同様に4つのスペアブロック0〜3に分割されている。
メモリセルアレイ10内のメモリセルは、1本または複数本のワード線WLに接続された一連のメモリセルを1ページとして構成されている。本実施例では、メイン領域10aにおいて2048バイト、スペア領域10bにおいて64バイトの計2112バイトで1ページが構成される。従って、1ページをさらに分割したメモリブロック(MB)の大きさは、メイン領域10aにおいて512バイト、スペア領域10bにおいて16バイトとなる。上記のページ及びメモリブロックのデータ量は、機器の仕様等に応じて適宜変更することが可能である。
図2(a)〜(d)は、図1のメモリセルアレイの詳細な構成の例を示した回路図である。図2(a)に示すメモリセルMC0は、電荷蓄積層としてフローティングゲートを有するトランジスタであり、入出力端子の一端はビット線BLに、他端はソース線SLに接続され、制御端子はワード線WLに接続されている。図2(b)に示すメモリセルMC1は、電荷蓄積層として窒化膜からなるトラップゲートを有し、左右両端にそれぞれ1ビットずつのデータ(電荷)を蓄積することができる。2つある入出力端子のそれぞれは、隣接する2本のビット線BLに接続され、制御端子はワード線WLに接続されている。
図2(c)に示すメモリセルMC2は、記憶素子としての可変抵抗と、可変抵抗とビット線BLとの間に直列に接続された選択トランジスタから構成される。この可変抵抗は、例えばCuOなどの遷移金属酸化物所定や、カルコゲナイドなどの相変化物質からなり、所定の電圧パルスを印加することにより、高抵抗状態及び低抵抗状態のいずれかの状態に変化する。そして、2種類の抵抗状態のいずれかを、“0”または“1”の論理値に対応させてデータを記憶することができる。選択素子である選択トランジスタの制御端子は、ワード線WLに接続されている。図2(d)に示すメモリセルMC3は、図2(c)と同じ可変抵抗を用い、選択素子としてトランジスタの代わりにダイオードを用いたものである。メモリセルMC3の非選択時にはダイオードに対し逆バイアスが、選択時には順バイアスがかかるように、ビット線BLとワード線WLの電位をそれぞれ制御することで、メモリセルMC3の選択を行うことができる。
図2(a)〜(b)は、いわゆるNOR型のメモリセル(図2(b)は、仮想接地型のメモリセル)の例であり、図2(c)〜(d)は、いわゆるクロスポイント型のメモリセルの例である。いずれもビット線BLとワード線WLの組合せにより所定のメモリセルMCを選択可能であり、ビット線BLを介してセンスアンプ回路16にデータが読み出される点で共通する。また、これらのメモリセルは信頼性が高く、NAND型フラッシュメモリで用いられているような、データ誤りを訂正するためのECC処理が不要である。このため、メイン領域10aに記憶されたデータを読み出す際に、必ずしもスペア領域10bのデータを一緒に読み出さなくともよい。
以下、メモリセルアレイ10の周辺回路について説明する。メモリセルアレイ10に隣接して、メモリセル10を選択するためのXデコーダ12及びYデコーダ14が設けられている。また、メモリセルアレイ10からデータの読出しを行うためのセンスアンプ回路16が、ビットラインBLを介してYデコーダ14に接続されている。センスアンプ回路16は、メモリセルアレイ10に含まれる複数のメモリブロックのそれぞれに対して設けられている(以下、各センスアンプ回路を個別に扱う時は、SA0〜SA7の符号を用いる)。
センスアンプ回路16には、データを一時的に記憶することのできる複数のキャッシュレジスタ18が接続されている。本実施例では、キャッシュレジスタ18は、2つのキャッシュレジスタA及びBから構成される。各キャッシュレジスタのデータサイズは、後述するようにメモリセルアレイ10のメモリブロックに対応した大きさとなっている。具体的には、メイン領域10aのメモリブロック512バイトと、スペア領域10bのメモリブロック16バイトとを合計した計528バイトのキャッシュレジスタとなっている。キャッシュレジスタ18には、読み出されたデータを一時的に記憶するラッチ回路20が接続されている。ラッチ回路20には、外部とのデータのやり取りを行うI/Oバッファ22が接続されている。メモリセルアレイ10から読み出されたデータは、最終的にI/Oバッファ24により外部に出力される。
メモリセルコマンドデコーダ26は、外部から入力された各種コマンドをデコードし、メモリコアコントローラ28へと出力する。メモリコアコントローラ28は、メモリを制御する各種の制御信号を発生し、複数の周辺回路へと出力する。アドレスラッチ回路及びコマンドジェネレータ30は、外部から入力されるアドレスをラッチする。アドレスデコーダ32は、アドレスラッチ回路24から入力されたアドレスをデコードし、Xデコーダ12及びYデコーダ14へと出力する。また、センスアンプコントローラ34は、メモリコアコントローラ28の指示を受けてセンスアンプ回路16を制御する。ページカウンタ及びその制御回路36は、読み出し動作を制御するためのカウンタの役割を果たす。
本実施例の半導体装置は、4種類の読み出しモードを備えている。第1モードであるパーシャルリードモードでは、同一のページに属する複数のメモリブロックのうち、メイン領域10aに属するメモリブロックのみからデータの読出しを行う。第2モードであるスペアリードモードでは、スペア領域10bに属するメモリブロックのみからデータの読出しを行う。第3モードであるスペア+パーシャルリードモードでは、メイン領域10aに属する1つのメモリブロック(第1メモリブロック)と、当該メモリブロックに対応しスペア領域に属する1つのメモリブロック(第2メモリブロック)から、同時にデータの読み出しを行う。第4モードである通常リードモードでは、同一ページに含まれる全てのメモリブロックから、順次データの読出しを行う。
図3は、実施例1に係る半導体装置の動作を示したフローチャートである。最初に、外部からI/O端子に対し、読み出しモードの開始を示すコマンドが入力される(ステップS10)。コマンドデコーダ26は、当該コマンドをデコードして、読み出しモードにエントリされたことを認識する。次に、外部からI/O端子に対し、アドレス(コラムアドレス及びページアドレス)が入力される(ステップS12)。入力されたアドレスは、アドレスラッチ回路30に保持される。
次に、外部からI/O端子に対し、アドレス入力が終了したことを示すコマンドが入力される(ステップS14)。このコマンドは、読み出しモードの数に応じた種類(本実施例では4つ)だけ用意されており、コマンドデコーダ26は、当該コマンドをデコードして読み出しモードの判定を行う(ステップS16〜S22)。ステップS16でYESと判定された場合、コマンドデコーダ26はパーシャルモードにエントリされたと認識する(ステップS24)。ステップS18でYESと判定された場合、コマンドデコーダ26はスペアモードにエントリされたと認識する(ステップS26)。ステップS20でYESと判定された場合、コマンドデコーダ26はスペア+パーシャルモードにエントリされたと認識する(ステップS28)。ステップS22でYESと判定された場合、コマンドデコーダ26は通常リードモードにエントリされたと認識する(ステップS30)。いずれのモードも選択されない場合は、読み出し動作を終了する。
次に、メモリコアコントローラ28が、Xデコーダ12、Yデコーダ14、及びセンスアンプコントローラ34に対し、データ読み出し先のアドレスを指示する(ステップS32)。Xデコーダ12は、指示されたアドレス(ページアドレス)に基づいて、メモリセルアレイ10に含まれる複数のページの中から1つのページを選択する(ステップS34)。換言すれば、複数のワード線WLの中から、選択されたページに対応する1本のワード線が選択される。続いて、センスアンプコントローラ34が、センスアンプ16に含まれる個々のセンスアンプSA0〜SA7のうち、データ読み出し領域に対応したセンスアンプを活性化させる(ステップS36)。ここでは、データが読み出されるメモリブロックMBn(n=0〜7)に対応して設けられたセンスアンプSAnが選択される
次に、ステップS36において選択されたセンスアンプSAnが、対応するメモリブロックMBnに含まれるメモリセルのうち、選択されたメモリセルからデータの読み出しを行う(ステップS38)。読み出されたデータは、後述するデータバスDBへと出力され、キャッシュレジスタ18へと転送される。キャッシュレジスタ18は、センスアンプSAnから転送されたデータを、個々のセンスアンプSAnに対応して予め決められた領域に格納する(ステップS40)。キャッシュレジスタ18は、格納されたデータをラッチ回路22へと順に転送する(ステップS42)。ラッチ回路22は、I/Oバッファ24を介して外部へデータを出力する(ステップS44)。
次に、ページカウンタ&制御回路36が、現在のアドレスが最終アドレスであるか否かの判定を行う(ステップS46)。ステップS46においてNOの場合、ページカウンタ36はアドレスを1つ進め、再びステップS36〜S44を繰り返す。ステップS48においてYESの場合は、読み出しモードを終了する(ステップS50)。以上のステップにより、データの読出しが行われる。
本実施例の半導体装置では、ページをワード線WLの方向に分割したメモリブロックの単位でデータが読み出され、センスアンプもデータが読み出されるメモリブロックに対応した領域のみが活性化される。具体的には、センスアンプコントローラ34からコラム選択信号CEnZ及びセンスアンプ駆動信号LEnZが出力され、これらの信号によりデータの読出しが制御される。コラム選択信号CE0Z〜CE7Zは、それぞれメモリブロックMB0〜MB7を選択する信号である。センスアンプ駆動信号LE0Z〜LE7Zは、それぞれセンスアンプSA0〜SA7を駆動させるための信号である。
また、本実施例では、センスアンプのデータサイズに対応したキャッシュレジスタが複数設けられ、センスアンプからのデータの受け入れと並行してラッチ回路22へのデータ出力が行われる。本実施例では、2つのキャッシュレジスタA及びBを用いており、片方のキャッシュレジスタにセンスアンプにデータが入力されている間に、残りのキャッシュレジスタからデータが出力される。キャッシュレジスタA及びBのうち、どちらのキャッシュレジスタにデータを転送するかは、センスアンプSA0〜SA7のそれぞれに予め定められている。なお、キャッシュレジスタの数は必ずしも2つに限定されるものではない。
次に、各モードにおける読み出し動作の詳細について説明する。
(パーシャルリードモード)
図4は、パーシャルリードモードにおける動作を示したタイミングチャートであり、図5(a)〜(c)は、センスアンプ回路16及びキャッシュレジスタ18におけるデータの入出力を説明する模式図である。ここでは、メイン領域10aに属するメモリブロックから、MB0、MB1、MB2、MB3の順にデータの読出しを行う例を示す。図4を参照に、最初にパーシャルリードモードを示すコマンド32hが入力されると(A)、レディ/ビジー信号(RY/BY)がBUSY状態となる(B)。次に、メモリブロックMB0及びセンスアンプSA0を活性化させる信号であるCE0Z及びLE0Zが立ち上がり(C)、これを受けてメモリブロックMB0のデータData0がキャッシュレジスタBへと転送され、RY/BYがReady状態に戻る(D)。図5(a)に示すように、メイン領域の各メモリブロック及び各センスアンプのデータサイズは512バイトであるが、各センスアンプからキャッシュレジスタへとデータを転送するデータバスDBのサイズは16バイトである。従って、SA0に読み出された512バイトのデータは、16バイトのデータサイズに32分割されて、キャッシュレジスタBのメイン用エリア(512バイト)へと転送される。
Data0の転送が完了した後、CE1Z及びLE1Zが立ち上がり(E)、メモリブロックMB1のデータData1がキャッシュレジスタAへと転送される(F)。同時に、キャッシュレジスタBに格納されていたData0がI/O端子へと出力される(G)。図5(b)に示すように、キャッシュレジスタからI/O端子までのデータの転送は、1バイトずつ行われる。従って、キャッシュレジスタBに格納された512バイトのデータは、1バイトのデータサイズに512分割されて出力される。
キャッシュレジスタBからのデータ出力が完了した後、CE2Z及びLE2Zが立ち上がり(H)、メモリブロックMB2のデータData2が読み出されキャッシュレジスタAへと転送される(I)。同時に、図5(c)に示すように、キャッシュレジスタAに格納されていたData1がI/O端子へと出力される(J)。キャッシュレジスタBからのデータの出力が完了するまでは、(H)以降のステップは行われない。
以後、ステップ(H)〜(J)と同様に、キャッシュレジスタAへのData3の読み出しと(K)、キャッシュレジスタBからのData2の出力が行われる(L)。最後に、キャッシュレジスタAからData3が出力され(M)、読み出し動作が完了する。
以上のように、第1モードであるパーシャルリードモードでは、メイン領域10aに属するメモリブロックMB0〜MB3から、順にデータの読出しを行う。ここで、読み出し開始時及び読み出し終了時のメモリブロックのアドレスは、後述するように外部から任意に指定可能である。従って、メモリブロックMB0〜MB3のうち、データの読出しが必要なメモリブロックのみからデータの読み出しを行うことができる。これにより、読み出し動作速度の向上を図ることができる。
(スペアリードモード)
図6は、スペアリードモードにおける動作を示したタイミングチャートであり、図7(a)〜(c)は、センスアンプ回路16及びキャッシュレジスタ18におけるデータの入出力を説明する模式図である。ここでは、スペア領域10bに属するメモリブロックから、MB4、MB5、MB6、MB7の順にデータの読出しを行う例を示す。図6を参照に、最初にパーシャルリードモードを示すコマンド33hが入力されると(A)、RY/BYがBusy状態となる(B)。次に、メモリブロックMB4及びセンスアンプSA4を活性化させる信号であるCE4Z及びLE4Zが立ち上がり(C)、これを受けてメモリブロックMB4のデータData4がキャッシュレジスタBへと転送され、RY/BYがReady状態に戻る(D)。図7(a)に示すように、スペア領域の各メモリブロック及び各センスアンプのデータサイズは16バイトであり、各センスアンプからキャッシュレジスタへとデータを転送するデータバスDBのサイズと等しい。従って、SA0に読み出された16バイトのデータは、分割されることなくキャッシュレジスタBのスペア用エリア(16バイト)へと転送される。
Data4の転送が完了した後、CE5Z及びLE5Zが立ち上がり(E)、メモリブロックMB5のデータData5がキャッシュレジスタAへと転送される(F)。同時に、キャッシュレジスタBに格納されていたData4がI/O端子へと出力される(G)。図7(b)に示すように、キャッシュレジスタからI/O端子までのデータの転送は、1バイトずつ行われる。従って、キャッシュレジスタBに格納された16バイトのデータは、1バイトのデータサイズに16分割されて出力される。
キャッシュレジスタBからのデータ出力が完了した後、CE6Z及びLE6Zが立ち上がり(H)、メモリブロックMB6のデータData6が読み出されキャッシュレジスタAへと転送される(I)。同時に、図7(c)に示すように、キャッシュレジスタAに格納されていたData5がI/O端子へと出力される(J)。キャッシュレジスタBからのデータの出力が完了するまでは、(H)以降のステップは行われない。
以後、ステップ(H)〜(J)と同様に、キャッシュレジスタAへのData7の読み出しと(K)、キャッシュレジスタBからのData6の出力が行われる(L)。最後に、キャッシュレジスタAからData7が出力され(M)、読み出し動作が完了する。
以上のように、第2モードであるスペアリードモードでは、スペア領域10bに属するメモリブロックMB4〜MB7から、順にデータの読出しを行う。ここで、読み出し開始時及び読み出し終了時のメモリブロックのアドレスは、パーシャルリードモード時と同様に、外部から任意に指定可能である。従って、メモリブロックMB4〜MB7のうち、データの読出しが必要なメモリブロックのみからデータの読み出しを行うことができる。これにより、読み出し動作速度の向上を図ることができる。
(スペア+パーシャルリードモード)
図8は、スペア+パーシャルリードモードにおける動作を示したタイミングチャートであり、図9(a)〜(c)は、センスアンプ回路16及びキャッシュレジスタ18におけるデータの入出力を説明する模式図である。ここでは、メイン領域10a及びスペア領域10bに属するメモリブロックのうち、MB0とMB4、MB1とMB5、MB2とMB6、及びMB3とMB7の組合せで、同時にデータの読出しを行う例を示す。
図8を参照に、最初にパーシャルリードモードを示すコマンド31hが入力されると(A)、RY/BYがBusy状態となる(B)。次に、メモリブロックMB0及びセンスアンプSA0を活性化させる信号であるCE0Z及びLE0Z、並びにメモリブロックMB4及びセンスアンプSA4を活性化させる信号であるCE4Z及びLE4Zが同時に立ち上がる(C)(D)。これを受けて、メモリブロックMB0のデータData0と、メモリブロックMB4のデータData4が同時にキャッシュレジスタBへと転送され、RY/BYがReady状態に戻る(E)(F)。図9(a)に示すように、メイン領域10aから読み出されたData0はキャッシュレジスタBのメイン用領域B0に転送され、スペア領域10bから読み出されたData4はキャッシュレジスタBのスペア用領域B1に転送される。また、Data0はパーシャルリードモード時と同じく32分割して16バイトずつ転送され、Data0は分割されることなく16バイトが一括して転送される。
Data0及びData4の転送が完了した後、CE1Z及びLE1Zと、CE5Z及びLE5Zが同時に立ち上がり(G)(H)、メモリブロックMB1のData1及びMB5のデータData5がキャッシュレジスタAへと転送される(I)(J)。同時に、キャッシュレジスタBに格納されていたData0及びData4が、I/O端子へと出力される(K)。図9(b)に示すように、メイン領域10aから読み出されたData1はキャッシュレジスタAのメイン用領域A0に転送され、スペア領域10bから読み出されたData5はキャッシュレジスタAのスペア用領域A1に転送される。また、キャッシュレジスタからI/O端子までのデータの転送は、他のモードと同じく1バイトずつ行われる。
キャッシュレジスタBからのデータ出力が完了した後、CE2Z及びLE2Zと、CE6Z及びLE6Zが立ち上がり(L)(M)、メモリブロックMB2のデータData2及びメモリブロックMB6のデータData6が読み出されキャッシュレジスタBへと転送される(N)(O)。同時に、図9(c)に示すように、キャッシュレジスタAに格納されていたData1及びData5がI/O端子へと出力される(P)。ステップ(K)におけるキャッシュレジスタBからのデータの出力が完了するまでは、(L)以降のステップは行われない。
以後、ステップ(L)〜(P)と同様に、キャッシュレジスタAへのData3及びData7の読み出しと(Q)(R)、キャッシュレジスタBからのData2及びData6の出力が行われる(S)。最後に、キャッシュレジスタAからData3及びData7が出力され(T)、読み出し動作が完了する。
以上のように、第3モードであるスペア+パーシャルリードモードでは、メイン領域10aに属するメモリブロックMB0〜MB3と、スペア領域10bに属するメモリブロックMB4〜MB7から、同時にデータの読出しを行う。これにより、必要とするデータを効率的に読み出すことができる。また、メイン領域10aからのデータ読出しが完了する前に、スペア領域10bのデータを読み出すことが可能であるため、必要なデータを効率よく読み出すことができる。なお、読み出し開始時及び読み出し終了時のメモリブロックのアドレスは、前述した2つのモードと同様に、外部から任意に指定可能である。
(通常リードモード)
図10は、通常リードモードにおける動作を示したタイミングチャートである。通常リードモードでは、同一のページに含まれるメモリブロックMB0〜MB7から、順にデータの読出しを行う。具体的には、図4及び図5で説明したパーシャルリードモードに引き続き、図6及び図7で説明したスペアリードモードを実行する形となる。従って、共通する箇所については詳細な説明を省略する。
図10を参照に、最初に通常リードモードを示すコマンド30hが入力されると(A)、RY/BYがBusy状態となる(B)。次に、メモリブロックMB0及びセンスアンプSA0を活性化させる信号であるCE0Z及びLE0Zが立ち上がり(C)、これを受けてメモリブロックMB0のデータData0がキャッシュレジスタBへと転送され、RY/BYがReady状態に戻る(D)。以後、メモリブロックMB3からData3の読出しが行われるまでは(E)、図4のパーシャルリードモードと同様の制御が行われる。
Data3の読み出しと並行して行われるキャッシュレジスタBからのData2の出力が完了すると、(F)、スペア領域10bに属するメモリブロックMB4及びセンスアンプSA4を活性化させる信号であるCE4Z及びLE4Zが立ち上がる(G)。これを受けて、メモリブロックMB4のData4がキャッシュレジスタBへと転送される(H)。また、同時にキャッシュレジスタAからのData3の出力が行われる(I)。以後、キャッシュレジスタAからData7の出力が完了するまで(J)、図6のスペアリードモードと同様の制御が行われる。
以上のように、第4モードである通常リードモードでは、メイン領域10a及びスペア領域10bに属する全てのメモリブロックMB0〜MB7から、順にデータの読出しを行う。
表1は、センスアンプ駆動信号LEnZ及びコラム選択信号CEnZ、並びにこれらの信号により選択されるメモリブロック及びキャッシュレジスタとの関係を整理したものである。パーシャルリードモード時には、LE0Z〜LE3Z(CE0Z〜CE3Z)が選択されることにより、メイン領域10aに属するメモリブロックMB0〜MB3のデータが読み出される。LE0Z及びLE2Zが選択された場合、読み出されたデータはキャッシュレジスタBのメイン用レジスタ(512バイト)へと格納される。LE1Z及びLE3Zが選択された場合、読み出されたデータはキャッシュレジスタAのメイン用レジスタ(512バイト)へと格納される。
スペアリードモード時には、LE4Z〜LE7Z(CE4Z〜CE7Z)が選択されることにより、スペア領域10bに属するメモリブロックMB4〜MB7のデータが読み出される。LE4Z及びLE6Zが選択された場合、読み出されたデータはキャッシュレジスタBのスペア用レジスタ(16バイト)へと格納される。LE5Z及びLE7Zが選択された場合、読み出されたデータはキャッシュレジスタAのスペア用レジスタ(16バイト)へと格納される。
スペア+パーシャルリードモード時には、LE0Z〜LE3Z及びLE4Z〜LE7Zが同時に活性化され、メイン領域10aに属するメモリブロックMB0〜MB3と、サブ領域に属するメモリブロックMB4〜MB7から同時にデータが読み出される。表に示すように、LE0Z及びLE4Zが同時に選択された場合と、LE2Z及びLE6Zが同時に選択された場合は、読み出されたデータはキャッシュレジスタBへと格納される。一方、LE1Z及びLE5Zが同時に選択された場合と、LE3Z及びLE7Zが同時に選択された場合は、読み出されたデータはキャッシュレジスタAへと格納される。
通常リードモード時には、全てのセンスアンプ駆動信号LE0Z〜LE7Z及びコラム選択信号CE0Z〜CE7Zが順に活性化される。読み出されたデータは、他のモードと同様にそれぞれ対応したキャッシュレジスタAまたはBの所定領域へと格納される。なお、各モードにおいて、読み出し開始アドレスは外部から任意に設定することが可能である。
以上のように、本実施例の半導体装置は、メモリブロック単位でデータの読出しが可能に構成されている。必要なデータが記憶されているメモリブロックを活性化させ、当該メモリブロックのデータのみを読み出すことで、データ読み出しの効率を向上させることができる。
また、本実施例の半導体装置は、各メモリブロックMB0〜MB7に対応してセンスアンプSA0〜SA7が設けられている。データが読み出されるメモリブロックに対応したセンスアンプのみを活性化させることで、消費電力の低減を図ることができる。
また、本実施例の半導体装置は、2つのキャッシュ回路A及びBを備えている。各キャッシュ回路のデータサイズは、センスアンプのデータサイズに対応しており、メモリブロック単位で読み出されたデータを格納することができる。センスアンプからのデータの入力と、I/O端子へのデータの出力を交互に行うことで、キャッシュレジスタの数が2つであってもデータの読み出し動作を円滑に行うことができる。これにより、データ出力の速度を落とすことなく、装置の小型化を図ることができる。
続いて、上記の4種類の読み出しモードを実現するための周辺回路の詳細な構成について順に説明を行う。
図11は、センスアンプコントローラ34の詳細な構成を示したブロック図である。センスアンプコントローラ34は、ページアドレスデコーダ40、センスアンプレジスタ42、LEジェネレータ44、モード判定部46、及びLE/CE出力部48で構成されている。ページアドレスデコーダ40は、ページアドレス(A0Z、A1Z、A2Z)を受けて、センスアンプレジスタ42に初期アドレスを設定する。また、ページアドレスデコーダ40は、後述するようにスペア+パーシャルリードモードのコマンドを受けて、アドレスA2Zを無効にする(アドレスA2Zの縮退)制御を行う。
センスアンプレジスタ42は、メモリコアコントローラ28からの制御信号を受けて、選択信号ALE0Z〜ALE7Zを出力する。ALE0Z〜ALE7Zは、LE/CE出力部48に出力されており、センスアンプ駆動信号LE0Z〜LE7Z及びコラム選択信号CE0Z〜CE7Zのいずれの信号を出力するかを決定する。また、センスアンプレジスタ42は、メモリコアコントローラ28からの制御信号を受けてページアドレスのシフトを行い、次に出力されるLEnZ及びCEnZの準備を行う。さらに、センスアンプレジスタ42は、モード選択信号30h〜33hを受けて、各モードの最終LEnZを出力したことをメモリコアコントローラ28に伝える。これにより、メモリコアコントローラ28は、各モードにおけるセンスアンプ読み出し動作が完了したことを認識する。
LEジェネレータ44は、メモリコアコントローラ28からの制御信号を受けて、タイミング信号LEZを出力する。LEZはLE/CE出力部48に入力されており、LEnZ及びCEnZを出力するタイミングを決定している。
モード判定部46は、NORゲート50、パスゲート51〜52、インバータ53、N型トランジスタ54〜55、及びNANDゲート56〜57から構成される。NORゲート50には、通常リードモード信号30h及びスペア+パーシャルリードモード信号31hが入力されている。また、パスゲート51にはスペアリードモード信号33hが、パスゲート52にはパーシャルリードモード信号32hがそれぞれ入力されている。NORゲート50の出力は、パスゲート51〜52に入力されると共に、インバータ53を介してN型トランジスタ54〜55の制御端子に入力されている。パスゲート51及びN型トランジスタ54の出力は、NANDゲート56に入力されるとともに、NANDゲート57に反転して入力されている。パスゲート52及びN型トランジスタ55の出力は、NANDゲート57に入力されるとともに、NANDゲート56に反転して入力されている。N型トランジスタ54及び55の他端は接地されている。このように、モード判定部46はモード信号30h〜33hを受けて、信号(d)及び(e)をLE/CE出力部48へと出力する。
LE/CE出力部48は、複数のANDゲートから構成される。ここでは、ANDゲートを所定数ごとにまとめて符号60〜63で図示している。ANDゲート60の出力はLE0Z〜LE3Zに、ANDゲート61の出力はLE4Z〜LE7Zに、ANDゲート60の出力はCE0Z〜CE3Zに、ANDゲート60の出力はCE4Z〜CE7Zにそれぞれ対応する。ANDゲート60〜63には、センスアンプレジスタ42からの出力信号ALE0Z〜ALE7Zと、LEジェネレータからの出力信号LEZが入力されている。また、ANDゲート60及び62にはモード判定部46からの信号(d)が、ANDゲート61及び63にはモード判定部46からの信号(e)がそれぞれ入力されている。
表2は、モード判定部46における各ノード(a)〜(e)の真理値表である。各モードと、選択されるLE及びCEとの関係は、表1に示したものと共通である。ノード(a)〜(e)のうち、ノード(d)及び(e)の値が、LE0Z〜LE7Z及びCE0Z〜CE7Zのうち、どの回路を活性化させるかを最終的に決定する。従って、ページアドレスの初期値が各モードでの読み出し範囲から外れていた場合は、LEnZ及びCEnZは出力されない。
表3は、ページアドレスデコーダに入力されるページアドレス(A0Z、A1Z、A2Z)と、LE/CE出力部48の出力との関係を示した真理値表である。ここで、LE0ZとLE4Z、LE1ZとLE5Z、LE2ZとLE6Z、及びLE3ZとLE7Zについては、表の左半分のアドレスA0Z及びA1Zの値が同じである。パーシャルリードモード時には、ページアドレスデコーダ40が、アドレスA2Zを無効にする縮退制御を行うため、上記の組合せのセンスアンプ駆動信号が同時に選択される。一方、他のモードの際には、A0Z、A1Z、A2Zの組合せによりLE0Z〜LE7Zのいずれかが選択される。
図12は、センスアンプ16とキャッシュレジスタ18との間のデータ転送を説明するための回路図である。本実施例の半導体装置は、センスアンプ16とキャッシュレジスタ18との間に、2種類のデータバスDBMnZ及びDBSnZが設けられている。メイン用データバスDBMnZの一端は、メイン領域10aのセンスアンプSA0〜SA3に接続され、他端はキャッシュレジスタAのメイン用領域AM及びキャッシュレジスタBのメイン用領域BMに接続されている。データバスDBMnZ及びDBSnZのデータサイズは、メイン用及びスペア用の両方共に16バイトである。
各センスアンプSA0〜SA7には、Yデコーダ14が接続されている(ここでは、メイン領域用のセンスアンプSA0及びスペア領域用のセンスアンプSA4のみを図示し、他は省略する)。各Yデコーダ14は、ANDゲート70〜71及びパスゲート72により構成されている。ANDゲート70には、センスアンプコントローラ34からのCE0Z〜CE7Zと、後述するカウンタ信号DlatnZが入力されている。Yデコーダ14は、センスアンプSA0〜SA7で増幅されたデータを、データバスDBMnZ及びDBSnZへと出力する。前述したように、センスアンプSAは、各メモリブロックに対応して設けられており、メイン領域10aのメモリブロックMB0〜MB3に対して計2048バイト、スペア領域10bのメモリブロックMB4〜MB7に対して計64バイト分配置されている。
各キャッシュレジスタは、2つのパスゲート80〜81と、それらに挟まれて設けられたインバータ群82〜83により構成される。パスゲート80には、データバスDBMnZまたはDBSnZから転送されたデータが、インバータ84を介して入力される。また、パスゲート80の制御端子にはNANDゲート85及びインバータ86が接続されており、NANDゲート85の出力によりパスゲート80の開閉が制御される。NANDゲート85には、後述するカウンタ信号DlatnZ及びORゲート87からの信号が入力されている。ORゲート87には、コラム選択信号CE0Z〜CE7Zのうち、CE0ZとCE2Z、CE1ZとCE3Z、CE4ZとCE6Z、及びCE5ZとCE7Zの組合せで2つの信号が入力されている。一方、パスゲート81の制御端子には、カウンタ信号CountnZが、インバータ88及び89を介して入力されている。パスゲート81の出力は、データバスGDBへと出力され、I/O端子へと転送される。データバスGDBのデータサイズは、データバスDBMnZ及びDBSnZより小さい1バイトである。
前述したように、キャッシュレジスタA及びBのそれぞれは、メモリセルアレイ10のメイン領域10aに対応した領域(AM及びBM)と、メモリセルアレイ10のスペア領域10bに対応した領域(AS及びBS)とを有している。メイン用領域AM及びBMのデータサイズはそれぞれ512バイトであり、スペア用領域AS及びBSのデータサイズはそれぞれ16バイトである。
以上のように、センスアンプSA0〜SA7、キャッシュレジスタA〜B、データバスDBMnZ及びDBSnZが構成される。センスアンプ及びキャッシュレジスタ間におけるデータの入出力は、次に説明するカウンタ信号DlatnZ(n=0〜31)により制御される。
図13は、カウンタ信号DlatnZを発生させるカウンタ回路の回路図である。Dlatnzカウンタ回路は、5ビットのカウンタ90、デコーダ92、カウンタ制御論理部94、及びスイッチ部96で構成される。カウンタ制御論理部94は、NORゲート100〜102、インバータ103〜106、NANDゲート107、及びANDゲート108から構成される。NORゲート100には、コラム選択信号CE0Z〜CE3Zが入力されている。また、スイッチ部96は、NANDゲート109で構成される。カウンタ90には、スイッチ部96の出力信号CLKと、インバータ110により反転された/CLKが入力される。
図14は、図13のカウンタ回路の動作を示す波形図である。データ読み出し時に選択されるメモリブロックに対応したコラム選択信号CE0Z〜CE3Zのうちいずれかが“H”になると、NORゲート100の出力であるノード(A)が“H”から“L”に変化する。NORゲート100の出力はNORゲート101に入力されており、このときNORゲート101の出力であるノード(B)は、 “L”から“H”に変化する。
ノード(B)は、スイッチ部96及びデコーダ92に接続されている。スイッチ部96のNANDゲート109には、ノード(B)の他にクロック信号/REZが入力されている。NANDゲート109は、クロック信号/REZの反転信号をCLKとしてカウンタ90に出力する。カウンタ90は、CLKとその反転信号/CLKによりカウントアップを始める。また、ノード(B)が“H”に変化することで、デコーダ92が活性化される。デコーダ92には、カウンタ90の出力が入力されている。デコーダ92は、カウンタ90からの信号をデコードし、CLK及び/CLKに応じてカウンタ信号DlatnZ(n=0〜31)を出力する。
また、カウンタ90の出力は、カウンタ制御論理部94のANDゲート108に入力されている。カウンタ90の出力がいずれも“H”になると、ANDゲート108の出力である信号EDlatnZは“L”となる。信号EDlatnZは、メモリコアコントローラ28及びNORゲート102に入力されており、EDlatnZが“H”になるとノード(B)は“H”から“L”に、ノード(C)は“L”から“H”にそれぞれ変化する。ノード(B)が“L”となると、スイッチ部96のNANDゲート109の出力は“H”で固定され、カウンタ90の動作が止まる。
その後、CE0Z〜CE3Zの全てが“H”から“L”に変化すると、ノード(A)の“L”から“H”の変化により、ノード“D”にワンショット・パルスが出力される。このワンショット・パルスはカウンタ90に入力され、カウンタ90をリセットするリセット信号として動作する。また、ノード(A)が“L”から“H”に変化することにより、ノード(C)が“H”から“L”へと変化して初期状態に戻る。カウンタ回路は、この状態で次のCE0Z〜CE3Zの立ち上がりを待つ。
図12を参照に、カウンタ信号DlatnZは、メイン領域10aのセンスアンプSA0〜SA3におけるYデコーダ14に入力されている。例えば、メイン領域10aにおける最初の16バイト分のセンスアンプにはDlat0Zが、次の16バイト分のセンスアンプにはDlat1Zが入力され、以下同様に16バイト単位でDlat2Z〜Dlat31Zが入力されている。これにより、メイン領域10aから読み出されたデータが、16バイト単位でデータバスDBMnZへと読み出される。なお、Dlat0Z〜Dlat31Zにより読み出されるデータの合計は512バイトであり、これはメモリブロックMB1つ分に相当する。なお、スペア領域10bのセンスアンプSA4〜SA7のANDゲート71には、カウンタ信号DlatnZは入力されていない。ANDゲート71には、代わりにコラム選択信号CE4Z〜CE7Zが入力されており、これらの信号によって16バイト単位でデータバスDBSnZへデータが読み出される。
また、カウンタ信号DlatnZは、メイン用のキャッシュレジスタAM及びBMのNANDゲート85に供給されている。例えば、最初の16バイト分のキャッシュ回路のNANDゲート85にはDlat0Zが、次の16バイト分のキャッシュ回路のNANDゲート85にはDlat1Zが入力され、以下同様に16バイト単位でDlat2Z〜Dlat31Zが入力されている。ORゲート87からの出力が“H”になったとき、カウンタ信号DlatnZ(n=0〜31)が“H”になることで、キャッシュ回路へのデータの転送が開始する。カウンタの値がn=0〜31へ増えるに従い、キャッシュ回路AMまたはBMに対し、16バイト単位でデータの出力が行われる。
カウンタ信号DlatnZのカウントが終了した時、センスアンプSAからキャッシュ回路へのデータの転送が完了する。図13において、このとき出力される信号EDlatnZは、メモリコアコントローラ28へと送られる。メモリコアコントローラ28は、信号EDlatnZに基づいて、センスアンプコントローラ34に対し、現在“H”レベルにあるLEnZ及びCEnZを“L”レベルにするように指示を出す。また、メモリコアコントローラ28は、センスアンプコントローラ34に対し、次のLEnZ及びCEnZを“H”レベルにするよう指示を出す。例えば、メモリブロックMB0からのデータ読出しが完了した場合は、メモリコアコントローラ28は、LE0Z及びCE0Zを“H”から“L”レベルに、LE1Z及びCE1Zを“L”から“H”に変化させるように、センスアンプコントローラ34に対して指示を出す。
メモリコアコントローラ28は、EDlatnZ信号を2回受けた場合は、キャッシュレジスタAM及びBMへのデータの転送が完了し、これらのキャッシュレジスタが共に一杯になったと判断する。前述のように、センスアンプからキャッシュレジスタへのデータの転送は16バイト単位で行われるのに対し、キャッシュレジスタからのデータの出力は1バイト単位で行われる。従って、メモリコアコントローラ28は、キャッシュレジスタAM及びBMのいずれかからのデータの出力が完了するまで待機状態となる。データの出力が完了したか否かは、次に説明するページカウンタからの許可信号により判断される。
図15は、ページカウンタ&制御回路36のブロック図である。ページカウンタは、4種類のキャッシュレジスタAM、AS、BM、BSのそれぞれに対し、デコーダ122a〜122d、カウンタ124a〜124d、及びカウンタ制御部126a〜126dが接続されて構成されている。また、ページカウンタは、ページアドレスデコーダ127、レジスタ128、及びカウントアップクロック130を含む。
ページカウンタは、上述したDlatnZカウンタ回路と同様の働きを行う。ただし、DlatnZカウンタがデータを16バイト単位に分割して転送する動作を制御するのに対し、ページカウンタはデータを1バイト単位で転送する動作を制御する点で異なる。これは、センスアンプ及びキャッシュレジスタ間のデータバスのサイズが16バイトであるのに対し、キャッシュレジスタ及び入出力端子間のデータバスのサイズが1バイトであるためである。ページカウンタは、メイン用の9ビットのカウンタ124a及び124cと、スペア用の4ビットのカウンタ124b及び124dを含む。
図16は、9ビットのページカウンタ124aの構成を示した回路図であり、図17はページカウンタ124aの動作を示したタイミングチャートである。図12に示したDlatnZカウンタ回路とほぼ共通の構成であるため、同一の構成要素には同一の符号を付し、詳細な説明を省略する。図12と異なり、カウンタ140は9ビットのカウンタである。また、NORゲート142には、メモリコアコントローラ28からの出力許可信号/SOUTと、CS0Z、CS2Z、及びCS2hZが入力されている。ANDゲート108の出力FCOUNTは、ページカウンタがフルカウントになった際に“H”となる。メモリコアコントローラ28は、FCOUNTが“L”から“H”へ変化したことに基づき、キャッシュレジスタのデータを、I/Oバッファ24に移し終えたと認識する。同時に、メモリコアコントローラ28は、次のメモリブロックMBnに対応するセンスアンプSAnを動作させ、空になったキャッシュ回路へのデータの読出しを行う。
図15を参照に、ページアドレスデコーダ127及びレジスタ128により、制御信号CS0Z〜CS7Zが生成される。制御信号CS0Z〜CS7Zは、カウンタ制御部に入力され、いずれかの信号が“H”になると、ページカウンタ回路が動作を開始する。表4は、ページカウンタ124a〜124dのそれぞれに入力される制御信号を示した表である。また、表5は、各モードにおける制御信号CSnZ(n=0〜7)の遷移を示した表である。スペア+パーシャルリードモード時(31h)においては、メイン領域10a及びスペア領域10bから同時にデータの読出しが行われるため、キャッシュレジスタの出力もそれに対応しなくてはならない。制御信号がCS0Z、CS4Z、CS1Z、CS5Z…の順で遷移することで、キャッシュレジスタはBM、BS、AM、ASの順で出力を行う。これにより、同一のキャッシュレジスタにおいてメイン用領域→スペア用領域の順にデータの出力が行われる。その他の読み出しモードの際は、制御信号CSnZの値はCS0Z〜CS7Zの順に遷移する。
以上のように、本実施例の半導体装置によれば、制御部であるメモリコアコントローラ28及びセンスアンプコントローラ34の指示により、所望のメモリブロックに対応したセンスアンプSAが動作し、データの読出しが行われる。
また、共通の制御信号DlatnZ及びCEnZにより、センスアンプ及びキャッシュレジスタ間のデータの転送が制御される。これにより、センスアンプにより読み出されたデータが自動的にキャッシュレジスタに転送される。また、一のキャッシュレジスタへのデータの転送が完了した後、続いて他のキャッシュレジスタへのデータの転送が行われる。複数のキャッシュレジスタが一杯になると、メモリコアコントローラ28は、一のキャッシュレジスタからデータの出力が完了するまでの間、待機状態となる。
メモリコアコントローラ28及びセンスアンプコントローラ34の指示により、一のキャッシュレジスタへのデータの入力と並行して、他のキャッシュレジスタからのデータの出力が行われる。キャッシュレジスタからのデータの出力が完了すると、メモリコアコントローラ28に対し出力完了信号が出力される。メモリコアコントローラ28は、出力完了信号を受けて、次のメモリブロック及びセンスアンプを活性化させ、データの読出しを行う。
このように、本実施例では、メモリコアコントローラ28及びセンスアンプコントローラ34の制御により、メモリセルアレイ10からのメモリブロック単位でのデータの読み出しを行っている。これにより、読み出し動作の効率化と消費電力の低減を図ることができる。また、メモリブロックのデータサイズに対応した複数のキャッシュレジスタを用意し、データの入力と出力を交互に行うことで、キャッシュレジスタの総容量が1ページ分のデータサイズより小さくても、データの読出しを行うことができる。これにより、データの転送効率を落とすことなく、回路の小型化を図ることができる。
また、本実施例によれば、モード選択信号30h〜33hにより、複数の読み出しモードを設定することができる。複数の読み出しモードのうち、状況に応じて最も適したモードを選択することで、データ読み出しの効率を向上させることができる。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。