【実施例】
【0024】
図5に、本発明の実施例に係るNAND型フラッシュメモリ100の構成を示す。フラッシュメモリ100は、行列状に配列された複数のメモリセルが形成されたメモリセルアレイ110と、外部端子に接続された入出力回路120と、入出力回路120からのアドレスデータを受け取るアドレスレジスタ130と、入出力回路120からの命令(コマンド)や外部制御信号(チップセレクト信号CS、ライトプロテクト信号WPなど)に基づき読出し、プログラム、消去等を制御する制御部150と、アドレスレジスタ130からの行アドレス情報Axをデコードしデコード結果に基づきメモリアレイ110のブロックやページの選択等を行うワード線選択回路150と、メモリセルアレイ110から読み出されたデータを保持したり、メモリセルアレイ110にプログラムすべきデータを保持するページバッファ/センス回路160と、アドレスレジスタ130からの列アドレス情報Ayをデコードし当該デコード結果に基づきビット線の選択等を行うデコード/選択回路170と、データの読出し、プログラムおよび消去等のために必要な電圧(プログラム電圧Vpgm、パス電圧Vpass、読出し電圧Vread、消去電圧Versを生成する内部電圧発生回路180とを含むことができる。また、ここには図示しないがフラッシュメモリ100は、クロックを発生するクロック発生回路を含むことができる。
【0025】
メモリアレイ110は、複数のブロックを含み(例えば、ブロック0〜ブロック1023)、1つのブロックには、
図6に示すように、複数のメモリセルを直列に接続したNANDストリングNUが行方向にn+1個(例えば、2KB)配列されている。1つのNANDストリングNUは、直列に接続された複数のメモリセルMCi(i=1、2、3・・・、64)と、一方の端部であるメモリセルMC64のドレイン側に接続されたビット線側選択トランジスタTDと、メモリセルMC0のソース側に接続されたソース線側選択トランジスタTSとを含む。ビット線側選択トランジスタTDのドレインは、対応する1つのビット線GBLに接続され、ソース線側選択トランジスタTSのソースは、共通のソース線SLに接続される。
【0026】
図7は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線側選択トランジスタTD、ソース線側選択トランジスタTSをオンし、共通ソース線SLを0Vにする。プログラム動作では、選択されたワード線に高電圧のプログラム電圧Vprog(15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線側選択トランジスタTDをオンさせ、ソース線側選択トランジスタTSをオフさせ、データ「0」または「1」に応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【0027】
ページバッファ/センス回路160は、メモリセルアレイ110の選択ページから読み出されたデータを保持したり、メモリセルアレイ110の選択ページにプログラムするデータを保持する。ページバッファ/センス回路160は、1ページ分のデータ(例えば、2KB)を保持することが可能であるが、読出しやプログラムを高速に行うため、データの入出力をパイプライン処理するように構成されてもよい。例えば、外部端子から読出しデータのシリアル出力を行うとき、入出力回路120が読出しデータをシリアル出力している間に、次の読出しデータがページバッファ160から入出力回路120にプリフェッチされるようにしてもよい。
【0028】
デコード/選択回路170は、データバス190を介して入出力回路120に接続される。本例では、データバス190が16ビット幅を有するものとする。デコード/選択回路170は、アドレスレジスタ130からのカラムアドレスAyをデコードし、ページバッファ/センス回路160の16ビットの列を選択する。読出し動作時であれば、デコード/選択回路170は、ページバッファ/センス回路160に保持されたページデータの中から16ビットのデータを選択し、選択したデータをデータバス190に接続する。プログラム動作時であれば、データバス190の16ビットのデータをデコード/選択回路170により選択されたページバッファ/センス回路160の16ビットの列に接続する。
【0029】
デコード/選択回路170はさらに、カラムアドレスの最下位2ビットを用いて、偶数アドレスのデータをデータバス190の下位8ビットに接続し、奇数アドレスのデータをデータバス190の上位8ビットに接続する。従来のデコード/選択回路は、
図4(B)に示したように、開始アドレスが奇数アドレスであるとき、データバスの下位8ビットに開始アドレス−1の偶数アドレスのデータが接続されるため、開始アドレス−1の偶数アドレスのデータを破棄しなければならないという無駄が生じ、かつ、データバスの更新時間を短くしなければならないという問題が生じたが、本実施例のデコード/選択回路170は、開始アドレスが奇数アドレスであっても、読み出された偶数アドレスのデータを破棄することなく、しかも開始アドレスが偶数アドレスのときと同じデータバスの更新時間を可能にする。
【0030】
本実施例では、デコード/選択回路170は、開始アドレスが奇数アドレス[2n+1]のとき、開始アドレス+1、つまり奇数アドレスの次の偶数アドレス[2n+2]のデータを同時にページバッファ/センス回路160から読み出す。このようなデコード回路は、例えば
図8(A)に示すように、カラムアドレスCA[0]、CA[1]に必要な論理回路200を付加することで、偶数アドレス[2n+2]のデータを同時に読み出すことができる。そして、入出力回路120は、
図8(B)に示すように、ページバッファ/センス回路160から読み出したデータDATA1の奇数アドレス[2n+1]のデータを出力した後に、偶数アドレス[2n+2]のデータを出力する。但し、このデコード方法は、カラムアドレスから行選択信号と列選択信号とを生成し、行選択信号と列選択信号の交点のアドレスを選択するデコード回路において多重選択の問題を生じ得る。
【0031】
行選択信号と列選択信号を用いたマトリックス状のデコード回路は、デコード回路の占有面積を削減する上で有望である。
図9に、行選択信号と列選択信号とを用いたデコード回路を示す。デコード回路の電気的な構成を
図9(A)に示す。このデコード回路は、カラム選択信号CSL_ENとアドレスイネーブル信号ADDEN[n]がアサートされたとき、行選択信号YA[n]により奇数アドレスのデータと偶数アドレスのデータをデータバスの上位8ビットおよび下位8ビットに接続する。
【0032】
例えば、ページバッファ160が1Kバイトのデータを保持するとき、カラムアドレスの下位3ビットCAをデコードすることで8ビットの行選択信号YAが生成される。また、上位のカラムアドレスCAをデコードすることで列線選択信号YBが生成される。
図9(B)は、デコード回路の配線レイアウトであり、ここには、2つの行選択信号YA[n]、[n+1]と、3つの列選択信号YB[m]、[m+1]、[m+2]とが例示されている。行選択信号YAと列選択信号YBの交点Cが、選択されるデータバスの上位8ビットと下位8ビットを示している。
図9(C)は、カラムアドレスの下位3ビットの真理値表であり、
図9(D)は、デコード回路の真理値表である。
図9(E)は、開始アドレスに応じてデコード回路により選択されるアドレスであり、左半分が最初に選択される下位8ビットのアドレス、右半分が2回目に選択される上位8ビットのアドレスである。
【0033】
デコード回路は、行選択信号YA[n]により2つの行YA[n]、[n+1]を選択し、1つの列選択信号YBにより1つの列YB[m]を選択する。例えば、開始アドレスが偶数アドレス「0h」であるとき、YA[0]、YB[0]のアドレスと、YA[1]、YB[0]のアドレスとが選択され、開始アドレスが奇数アドレス「1h」であるときも同様に、YA[0]、YB[0]のアドレスと、YA[1]、YB[0]のアドレスとが選択される。開始アドレスが奇数アドレスの場合、
図9(E)の破線で示すように、下位8ビットの偶数アドレスのデータが利用されないことになる。これは、
図2(C)に示すデコード回路と等価である。
【0034】
図9に示すデコード回路において、開始アドレスが奇数アドレスである場合に、データバスの下位8ビットに開始アドレス+1の偶数アドレス[2n+2]のデータをロードさせようとすると、列選択信号YBの桁上げのときに多重選択の問題が生じる。例えば、開始アドレスが「7h」であるとき、下位8ビットには、開始アドレス+1の偶数アドレス「8h」のデータをロードすることになるが、「8h」は、次の8ビットの行選択信号により選択されるアドレスであり、つまり、桁上げされたYB[1]により選択されるアドレスである。従って、開始アドレスが「7h」であるとき、列選択信号YB[0]により上位8ビットのデータを選択し、列選択信号YB[1]により「8h」の下位8ビットのデータを選択しなければならなくなる。つまり、2つの列選択信号により2つのアドレスを選択しなければならない。
【0035】
本実施例は、このような多重選択を回避するために、
図10に示すようなデコード回路を採用する。
図10(B)に示すように、本実施例のデコード回路は、列選択信号YB[m]、[m+2]に対する行選択信号YAE[n]、[n+1]と、列選択信号YB[m+1]に対する行選択信号YAE[n]、[n+1]とにより、データバス190の上位8ビットと下位8ビットとを選択する。
【0036】
図10(A)は、デコード回路の電気的な構成である。本実施例のデコード回路は、カラム選択信号CSL_ENとアドレスイネーブル信号ADDEN[n]の出力ノードNに接続された2つのNAND_1、NAND_2と、それに接続された2つのインバータIN_1、IN_2とを有する。NAND_1の一方の入力には、ノードNが接続され、他方の入力には、列選択信号YB_Eが接続され、IN_1からは、行選択信号YAE[n]が出力される。NAND_2の一方の入力には、ノードNが接続され、他方の入力には、列選択信号YB_Oが接続され、IN_2からは、行選択信号YAO[n]が出力される。列選択信号YB_E、YB_Oは、カラムアドレスの上位アドレスを用いてデコードされたYB信号の偶数/奇数を表す信号であり、YB[0]の真理値表を
図10(C)に示す。
図10(D)は、本実施例のデコード回路の真理値表であり、
図10(E)は、開始アドレスに応じて選択されるデータバスの上位、下位ビットを示している。
【0037】
例えば、開始アドレスが「0h」であるとき、行選択信号YAE[0]がイネーブルされ、行YAE[0]と列YB[0]の交点C、および行YAE[1]と列YB[0]の交点Cが同時に選択される。開始アドレスが奇数アドレス「1h」であるとき、行YAE[1]と列YB[0]の交点C、および行YAE[2]と列YB[0]の交点Cが同時に選択される。開始アドレスが奇数アドレス「7h」であるとき、行YAE[7]と列YB[0]の交点C、および桁上げにより列YBが奇数[1]になるので、行YAO[0]と列YB[1]の交点Cが同時に選択される。開始アドレスが奇数アドレス「15h」であるとき、列YBが奇数であるため、行YAO[7]と列YB[1]の交点C、および桁上げにより列YBが偶数[0]になるので、行YAE[0]と列YB[2]の交点Cが同時に選択される。
【0038】
図11は、本実施例に係るフラッシュメモリにおいて、開始アドレスが奇数アドレスであるときのシリアル読出し動作のタイミングチャートである。デコード/選択回路170は、カラム選択信号CSL_ENのパルスP1に応答して、ページバッファ160の2バイトの読出しデータDATA1を選択し、データバス190の8ビットの下位アドレスには、開始アドレス+1の偶数アドレスのデータがロードされ、8ビットの上位アドレスには、開始アドレスのデータがロードされる。入出力回路120は、読出しデータDATA1の奇数アドレスのデータをクロックCLK1、CLK2に同期してシリアル出力し、引き続き、偶数アドレスのデータをクロックCLK3、CLK4に同期してシリアル出力する。ページバッファ160と入出力回路120とがパイプライン構成であれば、奇数アドレスのデータ出力が終了すると、デコード/選択回路170は、次のパルスP2に応答して、ページバッファ160から次の読出しデータDATA2を選択し、選択されたDATA2がデータバス190を介して入出力回路120にロードされる。
【0039】
なお、開始アドレスが偶数アドレスである場合には、従来と同様に
図3(B)に示す順序で偶数アドレスデータがデータバスから読み出され、入出力回路120は、偶数アドレスデータの出力後に、奇数アドレスデータを出力する。
【0040】
このように本実施例によれば、開始アドレスが奇数アドレスであっても、従来のようにページバッファから読出した偶数アドレスのデータを破棄することなく利用することができる。また、データバスの更新サイクル(パルスP1とP2の期間)を従来のように短くする必要がなくなり、内部タイミングのマージンを確保することができるため、より高速周波数での動作を行うことができる。さらに、行選択信号と列選択信号とを用いたデコード回路において、偶数の列選択信号と奇数の列選択信号にそれぞれ対応する2組の行選択信号を用意することで、列アドレスの桁上げの際の多重選択の問題を回避することができる。
【0041】
次に、本発明の第2の実施例について説明する。上記実施例は、シリアルインターフェースを搭載したNAND型フラッシュメモリを例示したが、本発明は、必ずしもこれに限定されるものではなく、複数の外部端子からデータをパラレル入力またはパラレル出力するフラッシュメモリにも適用することができる。
【0042】
図12、
図13は、データの入出力をパラレルに行うフラッシュメモリの読出しタイミングチャートであり、
図12は、開始アドレスが奇数アドレスのときに開始アドレス−1の偶数アドレスのデータをロードする従来例を示し、
図13は、開始アドレスが奇数アドレスのときに開始アドレス+1の偶数アドレスのデータをロードする本実施例を示している。
図12において、カラム選択信号CSL_ENのパルスP1に応答して、デコード/選択回路160は、カラムアドレスに従いページバッファ160から2バイトの読出しデータDATA1を選択し、選択されたデータDATA1がデータバス190を介して入出力回路120にロードされる。入出力回路120は、ライトイネーブル信号REBのパルスの立下りエッジに応答して、読出しデータDATA1の上位8ビットの奇数アドレスのデータを外部端子×8から出力する。次に、デコード/選択回路160は、パルスP2に応答して次の2バイトのデータDATA2を選択し、選択されたデータDATA2がデータバス190を介して入出力回路120にロードされる。入出力回路120は、ライトイネーブル信号REBの次のパルスの立下りエッジに応答して、データDATA2の下位8ビットの偶数アドレスのデータを出力し、次のパルスの立下りエッジに応答して、データDATA2の上位8ビットの奇数アドレスのデータを出力する。
図12(B)に示すように、従来の読出し方法は、DATA1の偶数アドレスのデータを破棄するものであり、効率的な読出しではない。
【0043】
本実施例の読出しでは、先の実施例のときと同様に、開始アドレスが奇数アドレスの場合には、開始アドレスのデータと開始アドレスの次の偶数アドレスのデータとがデータバス190にロードされるため、偶数アドレスのデータを破棄することなく、無駄のない読出しを行うことができる。また、データバス190の更新サイクルも、1バイトのデータの読出し期間による制約を受けないため、内部タイミングのマージンを確保することができる。
【0044】
上記実施例では、データバス190が16ビット幅から構成される例を示したが、これは一例であり、これ以外にもデータバスのビット幅を拡張されてもよく、例えば、32ビット、64ビットなどであってもよい。データバスが32ビット幅であるとき、デコード/選択回路は、1回の読出し動作につき、ページバッファから32ビットのデータを選択するとともに、カラムアドレスCA[0]、CA[1]の2ビット「11」、「10」、「01」、「00」に応じて、8ビットのデータをデータバスの[31:24]、[23:16]、[15:8]、[7:0]に接続する。また、データバスが64ビット幅であるとき、デコード/選択回路は、1回の読出し動作につき、ページバッファから64ビットのデータを選択するとともに、カラムアドレスCA[0]、CA[1]、CA[2]の3ビット「111」、「110」、…、「001」、「000」に応じて、8ビットのデータをデータバスの[63:56]、[55:48]、…、[15:8]、[7:0]に接続する。このようなデータバスが32ビットまたは64ビットの場合にも、デコード/選択回路は、列選択信号の桁上げが生じる際に意図しない多重選択(例えば、16ビットであれば、2行×2列の選択信号、32ビットであれば、3行×2列)が生じるのを回避することができる。例えば、32ビットの場合、開始アドレスが[010]であるとき、開始アドレス[010]、「011」、桁上げされたアドレス[100]、[101]のデータが同時に読み出され、開始アドレスが[011]であるとき、開始アドレス[011]と、その桁上げされたアドレス[100]、[101]、[110]のデータが同時に読み出される。また、64ビットの場合、例えば、開始アドレスが[0111]であるとき、開始アドレス[0111]と、その桁上げされた[1000]以降のアドレスのデータが同時に読み出される。さらに上記実施例では、データバスを8ビット単位で選択したが、これは一例であり、16ビット単位または32ビット単位で選択するようにしてもよい。
【0045】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。