(57)【特許請求の範囲】
【請求項１】
各々コントロールゲートとフローティングゲートを有し、データに対応するしきい値を有する複数の不揮発性記憶素子がマトリックス状に配置されたメモリアレイと、該メモリアレイから一括して読み出された所定の単位のデータが入力されて該読み出された上記所定の単位のデータに含まれているエラーを訂正するエラー訂正回路とを１の半導体基板上に備えた記憶装置において、
上記メモリアレイから読み出された上記所定の単位のデータが上記エラー訂正回路へ送られて上記所定の単位のデータのエラーの有無の検出に並行して、上記所定の単位よりも少ない第２単位長ごとに複数回に分割して外部へ出力され、上記所定の単位のデータの外部への出力が終了した時点もしくは直後に上記外部へ出力された所定の単位のデータにエラーが含まれていたか否か示すエラー状況信号が上記エラー訂正回路によって外部へ出力され、
上記エラー訂正回路は、上記メモリアレイから読み出された所定単位のデータの中にエラーがあることを検出した時、上記所定の単位のデータを外部へ出力している期間に該エラーの訂正を行うと共に、上記エラー状況信号が外部に出力された後に外部からの制御に応じて該エラー訂正後のデータを外部へ出力可能に構成されることを特徴とする記憶装置。
【請求項２】
上記所定の単位のデータを保持するデータ保持手段を備え、上記所定の単位のデータにエラーが含まれていた場合に上記データ保持手段に保持されていたデータを上記エラー訂正回路によって訂正して外部へ出力するように構成されていることを特徴とする請求項１に記載の記憶装置。
【請求項３】
上記エラー訂正回路によって上記所定の単位のデータに含まれるエラーが訂正された場合に、訂正があったことを示す訂正状況情報を出力するように構成されてなることを特徴とする請求項２に記載の記憶装置。
【請求項４】
上記訂正状況情報には、上記所定の単位のデータに含まれていたエラーを正しく訂正できたか否かを示す情報が含まれていることを特徴とする請求項３に記載の記憶装置。
【請求項５】
上記メモリアレイから読み出された訂正前の読出しデータおよび上記エラー訂正回路により訂正されたデータは外部から供給されるクロック信号に同期して出力されるように構成されていることを特徴とする請求項２乃至４のいずれか１項記載の記憶装置。
【請求項６】
訂正前の上記所定の単位のデータおよび上記エラー訂正後のデータは、外部からのデータ読出し要求を意味する信号が入力される端子と共通の端子から出力されるように構成されてなることを特徴とする請求項１乃至５のいずれか１項記載の記憶装置。
【請求項７】
請求項１乃至６のいずれか１項記載の記憶装置と、該記憶装置の外部に接続され該記憶装置に対して読出し要求を行なう制御装置とを内蔵してなることを特徴とするメモリカード。
【請求項８】
各々が保持しているデータに対応するしきい値を有する複数のメモリセルと、エラー訂正回路と、出力回路とを１の半導体基板上に有し、
前記複数のメモリセルのうちの選択されたメモリセルから一括して読み出されたデータが、前記エラー訂正回路及び前記出力回路に供給され、
前記エラー訂正回路は、前記データがエラーを含むか否かを示すシンドロームを生成し、前記出力回路に選択されたメモリセルからのデータにエラーが含まれるか否かを示すエラー状態フラグを供給し、
前記出力回路は、選択されたメモリセルからのデータを一括して読み出したデータのデータ長よりも少ないデータ長単位に複数回に分割して外部に出力した後に前記エラー状態フラグを外部に出力し、
前記エラー訂正回路は、前記選択されたメモリセルからのデータを出力している期間中に、前記出力回路によって読み出されたデータの中のエラーの位置を検出し、エラーを訂正すると共にエラー訂正後のデータを前記出力回路に供給し、
前記出力回路は、前記選択されたメモリセルからのデータの出力を完了し、前記エラー状態フラグを外部に出力した後に外部からの制御に応じて前記エラー訂正後のデータを外部に出力することを特徴とする不揮発性半導体記憶装置。
【請求項９】
更に、選択されたメモリセルからのデータを収容するラッチ回路を有し、
選択されたメモリセルからのデータにエラーが検出された時、前記エラー訂正回路は、前記ラッチ回路に保持されたデータを訂正して前記エラー訂正後のデータを前記出力回路へ供給することを特徴とする請求項８に記載の不揮発性半導体記憶装置。
【請求項１０】
前記出力回路は、前記エラー訂正後のデータを外部へ出力した後に訂正状態フラグを出力することを特徴とする請求項９に記載の不揮発性半導体記憶装置。
【請求項１１】
前記訂正状態フラグは、前記選択されたメモリセルからのデータに含まれたエラーが訂正されたか否かを示す情報を構成することを特徴とする請求項１０に記載の不揮発性半導体記憶装置。
【請求項１２】
前記選択されたメモリセルからのデータ，前記エラー状態フラグ，前記エラー訂正後のデータ及び前記訂正状態フラグは、クロック信号に同期して出力されることを特徴とする請求項１１に記載の不揮発性半導体記憶装置。
【請求項１３】
前記選択されたメモリセルからのデータ，前記エラー状態フラグ，前記エラー訂正後のデータ及び前記訂正状態フラグは、データ読出し要求が入力された入出力端子と共通の入出力端子から出力されることを特徴とする請求項１２に記載の不揮発性半導体記憶装置。
【請求項１４】
前記複数のメモリセルの各々のしきい値は、消去状態を示す第1のしきい値領域内、或いは、前記第1のしきい値領域と異なり各々が書込状態を示す複数のしきい値領域内のいずれかの値であることを特徴とする請求項１３に記載の不揮発性半導体記憶装置。
【請求項１５】
制御回路と、
各々が保持しているデータに対応するしきい値を有する複数のメモリセルを含む不揮発性メモリと、
エラー訂正回路と、
出力回路とを１の半導体基板上に有し、
前記複数のメモリセルのうちの選択されたメモリセルから一括して読み出されたデータが、前記エラー訂正回路及び前記出力回路に供給され、
前記エラー訂正回路は、前記データがエラーを含むか否かを示すシンドロームを生成し、前記出力回路に選択されたメモリセルからのデータにエラーが含まれるか否かを示すエラー状態フラグを供給し、
前記出力回路は、選択されたメモリセルからのデータを一括して読み出したデータのデータ長よりも少ないデータ長単位に複数回に分割して外部へ出力した後に前記エラー状態フラグを外部へ出力し、
前記エラー訂正回路は、前記選択されたメモリセルからのデータを出力している期間中に、前記出力回路によって読み出されたデータの中のエラーの位置を検出し、エラーを訂正した後に、エラー訂正後のデータを前記出力回路へ供給し、前記選択されたメモリセルからのデータを出力完了した後に前記出力回路が前記エラー訂正後のデータを外部へ出力することを特徴とする不揮発性メモリカード。
【請求項１６】
更に、選択されたメモリセルからのデータを収容するラッチ回路を有し、
選択されたメモリセルからのデータにエラーが検出された時、前記エラー訂正回路は前記ラッチ回路に保持されたデータを訂正することを特徴とする請求項１５に記載の不揮発性メモリカード。
【請求項１７】
前記出力回路は、前記エラー訂正後のデータを出力した後に訂正状態フラグを出力することを特徴とする請求項１６に記載の不揮発性メモリカード。
【請求項１８】
前記訂正状態フラグは、選択されたメモリセルからのデータに含まれたエラーが訂正されたか否かを示す情報を構成することを特徴とする請求項１７に記載の不揮発性メモリカード。
【請求項１９】
選択されたメモリセルからのデータ，前記エラー状態フラグ，前記エラー訂正後のデータ及び前記訂正状態フラグは、クロック信号に同期して出力されることを特徴とする請求項１８に記載の不揮発性メモリカード。
【請求項２０】
選択されたメモリセルからのデータ，前記エラー状態フラグ，前記エラー訂正後のデータ及び前記訂正状態フラグは、データ読出し要求が入力された入出力端子と共通の入出力端子から出力されること特徴とする請求項１９に記載の不揮発性メモリカード。
【請求項２１】
前記複数のメモリセルの各々のしきい値は、消去状態を示す第１のしきい値領域内、或いは、前記第1のしきい値領域と異なり各々が書込状態を示す複数のしきい値頃域内のいずれかの値であることを特徴とする請求項２０に記載の不揮発性メモリカード。
【請求項２２】
コントローラと、
エラー訂正回路及び複数の不揮発性メモリセルを含むデータ記憶部を前記コントローラとは別体の１の半導体基板に備えた不揮発性メモリとを有し、
前記コントローラは、前記データ記憶部に記録されたデータを出力するための第１の要求を、前記不揮発性メモリに供給し、
前記不揮発性メモリは、前記コントローラから前記第１の要求を受信し、前記第１の要求に対応するデータを前記データ記憶部の1のワード線に接続される複数のメモリセルから一括して読み出し、
前記不揮発性メモリは、前記複数のメモリセルから読み出したデータのデータ長よりも短いデータ長単位に複数回に分割しての出力と並行して読み出したデータが正確か否かを前記エラー訂正回路を用いてチェックすることができ、前記エラー訂正回路によって読み出したデータのエラーが検出された場合、前記不揮発性メモリは前記読み出したデータの出力完了の後に既に送付済みのデータにエラーが含まれることを示す第１の状態信号を前記コントローラに出力し、前記コントローラからの制御に応じてエラー訂正後のデータをさらに出力することを特徴とする不揮発性メモリシステム。
【請求項２３】
前記コントローラは、前記不揮発性メモリにクロック信号を供給し、
前記不揮発性メモリは、前記クロック信号に同期してデータを出力し、
前記コントローラは、前記不揮発性メモリから読み出されたデータを受信した後、前記不揮発性メモリが前記第１の状態信号を出力しなかった場合、前記クロック信号の供給を停止し、
前記コントローラは、前記不揮発性メモリから読み出されたデータを受信した後、前記不揮発性メモリが前記第１の状態信号を出力した場合、前記クロック信号の供給を継続して前記エラー訂正回路によって訂正された前記エラー訂正後のデータを受信することを特徴とする請求項２２に記載の不揮発性メモリシステム。
【請求項２４】
前記コントローラは、前記データ記憶部にデータを記録するための第２の要求を、前記不揮発性メモリに供給し、
前記エラー訂正回路は、前記データを受信するとともに、受信したデータに基づく情報を生成し、
前記不揮発性メモリは、データ記憶部に前記データ及び前記情報を記録することを特徴とする請求項２３に記載の不揮発性メモリシステム。
【請求項２５】
読み出されたデータは、前記情報を含み、
前記エラー訂正回路は、前記情報を用いてシンドロームを生成し、
前記エラー訂正回路は、読み出したデータが正確か否かを判定するために前記シンドロームを用いることを特徴とする請求項２４に記載の不揮発性メモリシステム。
【請求項２６】
前記不揮発性メモリセルの各々は、２つのしきい値分布の何れかの内のしきい値を持ち、一方のしきい値分布は消去状態を示し、他方のしきい値分布は書込状態を示すことを特徴とする請求項２５に記載の不揮発性メモリシステム。
【請求項２７】
前記不揮発性メモリセルの各々は、複数のしきい値分布の何れかの内のしきい値を持ち、
複数のしきい値分布の内、1つのしきい値分布は消去状態を示し、
残りのしきい値分布の各々互いに異なる書込状態を示すことを特徴とする請求項２５に記載の不揮発性メモリシステム。
【請求項２８】
前記不揮発性メモリセルの各々は、２つのしきい値分布の何れかの内のしきい値を持ち、一方のしきい値分布は消去状態を示し、他方のしきい値分布は書込状態を示すことを特徴とする請求項２２に記載の不揮発性メモリシステム。
【請求項２９】
前記不揮発性メモリセルの各々は、複数のしきい値分布の何れかの内のしきい値を持ち、
複数のしきい値分布の内、１つのしきい値分布は消去状態を示し、
残りのしきい値分布の各々は互いに異なる書込状態を示すことを特徴とする請求項２２に記載の不揮発性メモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エラー訂正符号を伴ってデータを記憶する記憶装置に適用して有効な技術に関し、例えばフラッシュメモリのような不揮発性半導体メモリさらにはそれを内蔵したＩＣカードに利用して有効な技術に関する。
【０００２】
【従来の技術】
半導体メモリの一つに、記憶データを所定の単位で電気的に一括消去可能なフラッシュメモリと呼ばれる不揮発性メモリがある。フラッシュメモリは、コントロールゲートおよびフローティングゲートを有する２層ゲート構造のＭＯＳＦＥＴからなる不揮発性記憶素子をメモリセルに使用しており、１個のトランジスタでメモリセルを構成することができる。
【０００３】
かかるフラッシュメモリにおいては、例えば図８（Ａ）に示すように不揮発性記憶素子のコントローゲートＣＧにワード線を介して高電圧（１６Ｖ）を印加しドレインＤにビット線を介して接地電位（０Ｖ）を印加（ソースＳはオープン）してフローティングゲートＦＧに負電荷を注入してしきい値を高い状態（例えば論理“１”）にする。また、図８（Ｂ）に示すように不揮発性記憶素子のコントローゲートＣＧにワード線を介して負電圧（−１６Ｖ）を印加しドレインＤおよびソースＳに接地電位を印加してフローティングゲートＦＧから電荷を引き抜いてしきい値電圧を低い状態（例えば論理“０”）にする。これにより１つの記憶素子に１ビットのデータを記憶させる。
【０００４】
このようにして、しきい値が異なる状態にされたメモリセルは、コントロールゲートに印加される電圧に応じて流れるドレイン電流が異なることとなる。このドレイン電流の差違を利用して、データの読出しの際には、上記２つのしきい値の中間の電圧をコントロールゲートに印加して、ドレイン電流量を検出することにより記憶データの“１”“０”の判定を行なうようにしている。
【０００５】
なお、フラッシュメモリにおいては、書込みと読出しは例えばセクタ単位すなわちワード線を共通にする１行分のメモリセルに対して同時に行なわれ、消去はブロック単位すなわちウェル領域を共通にする複数のセクタに対して同時に行なわれるものがあり、本発明の実施例においても特に言及しないがそのように構成されているものとする。
【０００６】
ところで、一般に、フラッシュメモリでは、記憶されるデータに対してハミング符号やリード・ソロモン符号などのエラー訂正符号化を行なって冗長コードを付加してデータを記憶することがある。また、かかるフラッシュメモリでは、データ読出し時にエラー訂正符号を用いて自動的に誤りを訂正したデータを出力するように構成されることが多い。
【０００７】
【発明が解決しようとする課題】
エラー訂正機能を有する従来のフラッシュメモリは、図７に示すように、メモリアレイからデータレジスタ等に読み出されたデータを順次エラー訂正回路へ転送して誤りがあったか否かを表すシンドロームを生成して出力してから、データレジスタに保持されている読出しデータを順次エラー訂正回路へ再転送して誤りを訂正しながら外部へ出力するように構成されていた。
【０００８】
そのため、メモリをアクセスしたマイクロプロセッサのような外部装置がすべてのデータを取得し終えるまでに、ｔACC＋ｔSYN＋ｔOUTの時間が必要であった。ここで、ｔACCは当該メモリに対して読出し要求があってから指定アドレスのメモリセルの保持データがデータレジスタにラッチされるまでの時間、ｔSYNはシンドロームの生成に要する時間、ｔOUTはデータレジスタに保持されている全てのデータを訂正しながら出力するのに要する時間である。
【０００９】
具体的には、読出し単位の１セクタが２ｋバイトで構成され、１バイトの転送サイクルが５０ｎＳであるメモリにおけるｔSYNは約１０２μＳであり、読出しデータに誤りがない場合にもこのｔSYNが必ずオーバーヘッドとして含まれてしまう。しかも、読出しデータが実際に誤りを含む頻度はかなり低い。そのため、読出し所要時間が不必要に長くなってしまうという問題点があった。
【００１０】
この発明の目的は、エラー訂正機能を有する不揮発性記憶装置における読出し所要時間を短縮可能にする技術を提供することにある。
【００１１】
この発明の他の目的は、出力された読出しデータのエラーの有無や訂正の状況を外部で知ることができる不揮発性記憶装置を提供することにある。
【００１２】
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【００１３】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
【００１４】
すなわち、エラー訂正機能を有する不揮発性記憶装置（不揮発性半導体メモリもしくはそれを備えたメモリシステム）において、シンドローム生成と同時に読出しデータ（訂正前）を出力させるとともに、シンドローム生成後に誤りがあったか否かを示すエラー状況信号（ＥＲＲ）を出力して、外部からの要求（ＳＣ）の有無に応じて再度読出しデータ（訂正済み）を出力させることができるようにしたものである。
【００１５】
具体的には、各々コントロールゲートとフローティングゲートを有し、データに対応するしきい値を有する複数の不揮発性記憶素子がマトリックス状に配置されたメモリアレイと、該メモリアレイから読み出された複数の記憶素子の記憶データが入力されて該読み出されたデータに含まれているエラーを訂正するエラー訂正回路とを備えた記憶装置において、上記メモリアレイから読み出された所定の単位のデータが上記エラー訂正回路へ送られるとともに外部へ出力され、該データ出力が終了した時点もしくは直後に読み出されたデータにエラーが含まれていたか否か示すエラー状況信号が上記エラー訂正回路によって外部へ出力され、上記エラー訂正回路は、上記メモリアレイから読み出された所定単位のデータの中にエラーがあることを検出した時、該エラーの訂正を行なうように構成する。
【００１６】
上記した手段によれば、エラー訂正回路によるシンドローム生成中に読出しデータが出力されるため、エラー状況信号が誤りがなかったことを示している場合には得られたデータを直ちに有効な読出しデータとして処理することができ、これによってデータ読出し所要時間を大幅に短縮することができる。
【００１７】
また、上記メモリアレイから所定の単位で読み出された複数の記憶素子の記憶データを保持するデータ保持手段を設け、読み出されたデータにエラーが含まれていた場合に上記データ保持手段に保持されていたデータを上記エラー訂正回路によって訂正して外部へ出力するように構成する。これによって、エラーがあった場合に再度メモリアレイをアクセスすることなくデータレジスタから直ちに前回（訂正前データ）と同一のデータをエラー訂正回路に供給してエラーを訂正することができる。
【００１８】
そして、上記エラー訂正回路によって読出しデータのエラーが訂正された場合に、訂正があったことを示す訂正状況情報を出力するように構成する。これによって、得られたデータが訂正済みデータであることを知ることができる。
【００１９】
さらに、上記訂正状況情報には、読出しデータに含まれていたエラーを正しく訂正できたか否かを示す情報を含ませるようにする。これによって、正しい訂正が行なわれた否か知ることができる。
【００２０】
また、上記メモリアレイから読み出された訂正前の読出しデータおよび上記エラー訂正回路により訂正されたデータは外部から供給されるクロック信号に同期して出力されるように構成する。これにより、クロック信号の供給を停止すれば読出しデータの出力を終了させ、クロック信号の供給を継続もしくは再開することでエラー訂正したデータを直ちに出力させることができるとともに、制御が簡単であるため外部装置および当該チップ内部のコントローラの負担を軽減することができる。
【００２１】
さらに、上記メモリアレイと上記エラー訂正回路は同一の半導体チップ上に形成され、上記訂正前の読出しデータおよび訂正後のデータは、外部からのデータ読出し要求を意味する信号が入力される端子と共通の端子から出力されるように構成する。これによって、外部端子数を減らすことができ、チップ全体を小型化することができる。
【００２２】
また、記憶装置と、該記憶装置に対して読出し要求を行なう制御装置とを内蔵してなるメモリカードにおいて、内蔵する記憶装置としてメモリアレイから読み出された所定の単位のデータがエラー訂正回路へ送られるとともに外部へ出力されるとともに、該出力が終了した時点で上記エラー訂正回路によって読み出されたデータにエラーが含まれていたか否か示すエラー状況信号が外部へ出力されるように構成された上記のような記憶装置を用いる。これにより、短時間で所望のデータを読み出せるメモリカードを実現することができる。
【００２３】
【発明の実施の形態】
以下、本発明の好適な実施例を図面に基づいて説明する。
【００２４】
図１には、本発明を適用したフラッシュメモリにおけるエラー訂正符号生成およびエラー訂正回路（以下、ＥＣＣ回路と称する）の一実施例が示されている。
【００２５】
ＥＣＣ回路１０は、メモリアレイから読み出された２１０６バイトのような１セクタのデータが順次入力されそれに基づいてシンドロームを生成するシンドローム生成回路１１と、生成されたシンドロームがすべて０であるかを調べて読出しデータにエラーが含まれているか判定するエラー判定回路１２と、生成されたシンドロームから誤りのあるビットの位置情報を生成する訂正位置情報生成回路１３と、訂正位置情報生成回路１３から出力される３バイト（ここでは１バイトは１２ビット）のデータを比較することでいずれのバイトに誤りがあるか検出する一致検出回路１４と、生成された訂正位置情報に基づいて読出しデータを訂正する誤り訂正回路１５と、上記一致検出回路１４の検出信号に基づいて上記訂正位置情報生成回路１３の出力を上記誤り訂正回路１５へ供給したり遮断したりするゲート１６等から構成されている。
【００２６】
上記一致検出回路１４は訂正位置情報生成回路１３から出力される３バイトが全て一致したときにそのバイトにエラーが有る判定する。そして、このエラー有りと判定されたときの訂正位置情報生成回路１３の１バイト出力のうち“１”が立っているビットがエラーのあるビットの位置を示す。上記訂正位置情報に基づいて読出しデータを訂正する上記誤り訂正回路１５は、例えばイクスクルーシブＯＲゲート回路により構成することができる。
【００２７】
また、この実施例のフラッシュメモリでは、メモリアレイから読み出された訂正前のデータが切替え回路１７を介して外部端子３０へ出力可能に構成されているとともに、上記エラー判定回路１２による判定結果を示すエラー情報信号ＥＲＲも切替え回路１７を介して外部端子３０のいずれか一つへ出力可能に構成されている。さらに、上記訂正位置情報に基づいて訂正されたデータおよび訂正を行なったか否かを示す訂正状況信号ＣＲＳも切替え回路１７を介して外部端子３０へ出力可能に構成されている。上記データ切替え回路１７は、後述の入出力回路２６（図２参照）内に設けられていてもよい。
【００２８】
なお、上記訂正を行なったか否かを示す訂正状況信号ＣＲＳは、一致検出回路１４の検出信号によって設定されるフラグ１８から切替え回路１７を介して外部端子３０へ出力される。この訂正状況信号ＣＲＳは、エラーの有無を示すビットとエラーを訂正できたか否かを示すビットの２ビット信号としてもよい。１ビット訂正、２ビット検知の方式を例とすれば、この２ビットの値が「エラーなし、訂正なし」の場合は全くエラーがなかった場合を示す。「エラーあり、訂正あり」の場合は１ビットのエラーがあり、それが訂正出来ないことを示す。「エラーあり、訂正なし」の場合は２ビットのエラーが検出されたことを示す（訂正は不可）。
【００２９】
例えば８本の外部端子３０から２ビットの訂正状況信号ＣＲＳを出力する場合、フラグ１８の代わりに８ビットのレジスタを使用し、そのうち２ビットを訂正状況信号ＣＲＳのフラグに使用し、残りの６ビットを“０”にして外部端子３０より出力させるようにすればよい。ただし、この訂正状況信号ＣＲＳや上記エラー情報信号ＥＲＲは、データの入出力のための上記外部端子とは別個の端子から出力させるようにしてもよい。
【００３０】
上記シンドローム生成回路１１は、この実施例では、リード・ソロモン符号方式の回路が用いられており、α3回路およびその演算結果を保持する１２ビットのレジスタＲｅｇ１と、α1449回路およびその演算結果とレジスタＲｅｇ１の保持データとの排他的論理和を演算する論理回路ＥＯＲ１とその論理演算結果を保持するレジスタＲｅｇ２と、α1448回路およびその演算結果とレジスタＲｅｇ２の保持データとの排他的論理和を演算する論理回路ＥＯＲ２とその論理演算結果を保持するレジスタＲｅｇ３と、入力データとレジスタＲｅｇ３の保持データとの排他的論理和を演算する論理回路ＥＯＲ０とから構成されている。
【００３１】
α3回路は、入力ｃ０〜ｃ１１に対して次式（数１）で示される論理演算を行なって出力ｄ０〜ｄ１１を得る。α1449回路は、入力ｃ０〜ｃ１１に対して次式（数２）で示される論理演算を行なって出力ｅ０〜ｅ１１を得る。α1448回路は、入力ｃ０〜ｃ１１に対して次式（数３）で示される論理演算を行なって出力ｆ０〜ｆ１１を得る。なお、各数式中、○で囲まれた＋の符号は排他的論理和演算を意味している。
【００３２】
【数１】
0004105819.tif 000002
【００３３】
【数２】
0004105819.tif 000003
【００３４】
【数３】
0004105819.tif 000004
エラー判定回路１２は、その入力信号が全て論理“０”レベルのときに出力が論理“１”レベルになる論理積回路（ＡＮＤゲート回路）により構成されている。
【００３５】
上記訂正位置情報生成回路１３は、α-2333回路と、α-185回路と、α-2681回路とから構成されている。α-2333回路は、レジスタＲｅｇ１の保持データ入力ｄ'０〜ｄ'１１に対して次式（数４）で示される排他的論理和演算を行なって出力ｇ０〜ｇ１１を得る。α-185回路は、入力ｅ'０〜ｅ'１１に対して次式（数５）で示される排他的論理和演算を行なって出力ｈ０〜ｈ１１を得る。α-2681回路は、入力ｆ'０〜ｆ'１１に対して次式（数６）で示される排他的論理和演算を行なって出力ｉ０〜ｉ１１を得る。
【００３６】
【数４】
0004105819.tif 000005
【００３７】
【数５】
0004105819.tif 000006
【００３８】
【数６】
0004105819.tif 000007
データを書き込む際はシンドローム生成回路１１がＥＣＣ符号生成回路として動作する。外部からのデータはそのままメモリアレイ（データラッチ）に入力されると同時にシンドローム生成回路１１へも入力される。シンドローム生成回路１１内のシフトレジスタは外部データ入力クロックＳＣに同期して動く。全データ（例えば２１０６ビット）が入力し終わった状態で、レジスタＲｅｇ１〜３に保持されているデータがＥＣＣ用冗長コード３バイト（バイト＝１２ビット）となるので、これら３バイトもメモリアレイ（データラッチ）に送り、先に送ったデータの末尾に付加し、同一セクタのメモリに一括して保存する。
【００３９】
次に、本実施例のＥＣＣ回路１０のデータ読出し時の動作を図６のタイミングチャートを用いて説明する。
【００４０】
外部のマイクロプロセッサ等から当該フラッシュメモリへ、例えばコマンドコードの入力等によるデータ読出し要求があると、メモリ内部の制御回路はコマンドコードと共に入力されるアドレス信号に基づいてメモリセルの選択動作すなわち入力アドレスに対応したワード線の選択を開始する（図６のタイミングＴ１）。
【００４１】
すると、選択された例えば１セクタのメモリセルのデータが、メモリアレイ内のビット線を介してセンスラッチに供給されて増幅され、データレジスタ等にラッチされる。各セクタは例えば図４に示すように、本来のデータが格納されるデータ領域ＤＡＴＡと、セクタ番号や書換え回数等の管理情報が格納される管理領域ＭＮＧと、エラー訂正のための符号化されたデータの冗長コードが格納されるＥＣＣ用冗長領域ＥＲＣとから構成され、これら全ての領域に格納されているデータが、データ領域、管理領域、冗長領域の順にＥＣＣ回路１０へ送られる。この実施例では、データ領域ＤＡＴＡと管理領域ＭＮＧのデータが符号化単位であり、全部で２１０６バイト（バイト＝８ビット）あり、冗長コードの長さは３バイト（バイト＝１２ビット）である。
【００４２】
具体的にはデータレジスタ２２ａ，２２ｂにラッチされた読出しデータ（バイト＝８ビット）は、バイト単位で４ビットのダミービット（例えば００００）を付加して１２ビットとして、本実施例のＥＣＣ回路１０へ順次転送される。この実施例では、このデータからダミービットを外した８ビットデータがそのまま外部端子３０よりチップ外部へ出力されるように、切替え回路１７の切替え制御が行なわれる。
【００４３】
一方、ＥＣＣ回路１０では読出しデータの転送に従ってシンドローム生成回路１１においてシンドロームが生成される。生成されたシンドロームは、エラー判定回路１２に供給されてシンドロームがすべて「０」か否かが判定され、判定結果はエラー情報信号ＥＲＲとして、読出しデータの転送終了と同時に切り替えられる切替え回路１７を介して外部端子３０へ出力される。エラー情報信号ＥＲＲはそれが論理“１”レベルのときにエラーなしを表わし、論理“０”レベルのときにエラー有りを示す。
【００４４】
従って、チップ外部では、この信号ＥＲＲを監視していることでその直前に外部端子より出力された読出しデータにエラービットが含まれているか否か知ることができる。そして、エラーなしと判定したときは既に外部端子３０より得られている読出しデータを有効データとみなして次の処理を行なうことができる。つまり、読出しコマンドが入力されてから読出しデータがすべて得られるまでの所要時間はｔACC＋ｔSYNであり、従来方式に比べて約１／２に短縮される。
【００４５】
エラー情報信号ＥＲＲに基づいて読出しデータにエラービットが含まれていると判定したときは、フラッシュメモリに対して再度もしくは引き続き読出しデータの要求を行なう。すると、フラッシュメモリは、タイミングＴ１でメモリアレイから読み出されてデータレジスタにラッチされている１セクタ分のデータを再びＥＣＣ回路１０へ１バイトずつシリアルに転送する。そして、ＥＣＣ回路１０は訂正位置情報を生成してゲート１６を介して訂正回路１５へ供給する。このとき切替え回路１７はメモリアレイ（データレジスタ）からのデータではなく訂正回路１５から出力される訂正済みデータを外部端子２１へ出力するように切替えが行なわれている。
【００４６】
これによって、ＥＣＣ回路１０で訂正されたデータが外部端子３０へ出力される。そして、訂正済みデータが全て出力されると、切替え回路１７が切り替わって訂正が行なわれたことを示す情報を保持するレジスタ１８の内容が訂正状況信号ＣＲＳとして、外部端子３０より出力される。つまり、エラーがあった場合における読出しコマンドが入力されてから読出しデータがすべて得られるまでの所要時間はｔACC＋ｔSYN＋ｔOUTであり、この場合だけ従来方式とほぼ同一の所要時間が必要とされる。
【００４７】
なお、信号ＥＲＲに基づいてエラー有りと判定してフラッシュメモリに対して再度もしくは引き続き読出しデータの要求を行なう方法としては、例えばそのようなコマンドコードを用意して行なってもよいが、この実施例のフラッシュメモリは、データ読出し時には外部から供給されるシリアルクロックＳＣに従ってデータレジスタおよびＥＣＣ回路１０が動作するように構成されているので、エラーが有ったときはマイクロプロセッサ等から引き続きシリアルクロックＳＣをフラッシュメモリへ与えるようにすればよいように構成されている。
【００４８】
一方、信号ＥＲＲに基づいてエラーなしと判定したときにはフラッシュメモリに対してシリアルクロックＳＣの供給を停止すれば良い。これによって、フラッシュメモリは読出しデータの再転送を中止し、データ読出し動作を終了することができる。このようにして、読出しデータにエラーがあるときにのみデータの訂正が行なわれるため、データ読出しの所要時間が大幅に短縮されることとなる。しかも、データ要求コマンドを再度入れる方式に比べて制御が簡単であるため外部装置およびフラッシュメモリ内のコントローラの負担が小さくなる。
【００４９】
図２には、図１のＥＣＣ回路を同一半導体チップ上に備えたフラッシュメモリの構成例が示されている。
【００５０】
図２において、２０ａ，２０ｂはフローティングゲートを有する絶縁ゲート型電界効果トランジスタからなる不揮発性記憶素子がマトリックス状に配設されたメモリアレイで、複数のワード線と複数のビット線が交差して格子状をなすように配置され、ワード線とビット線の交点にそれぞれ記憶素子ＭＣが設けられ、同一行の記憶素子のコントロールゲートがワード線に結合もしくはワード線そのものが記憶素子のゲート電極となるように構成されている。また、各記憶素子のドレインが対応するローカルビット線に結合され、さらにローカルビット線は選択用ＭＯＳＦＥＴを介して主ビット線に接続可能に構成されている。
【００５１】
２１ａ，２１ｂは外部より入力されたアドレス信号をデコードしてメモリアレイ２０ａ，２０ｂ内の対応するワード線を選択レベルにするワードデコーダ、２２ａ，２２ｂはメモリアレイ２０ａ，２０ｂ内のビット線に接続され読み出しデータおよび書き込みデータを保持するデータレジスタ、２３はメモリアレイ２０内のビット線に接続され読み出しデータを増幅し保持するセンスラッチ回路で、センスラッチ回路２３で増幅されたデータはメモリアレイ２０ａ，２０ｂ内のビット線を介してデータレジスタ２２ａ，２２ｂへ転送可能に構成されている。
【００５２】
２４ａ，２４ｂは上記データレジスタ２２ａ，２２ｂに保持されている読出しデータを所定の順序でＥＣＣ回路１０へ伝送するためのカラムマルチプレクサ、２５は外部からのシフトクロックＳＣによって更新されるアドレスカウンタと該アドレスカウンタの値をデコードして上記カラムマルチプレクサ２４ａ，２４ｂの制御信号を形成するデコーダとからなるカラム制御回路である。
【００５３】
また、２６は外部から入力されたアドレス信号を上記ワードデコーダ２１ａ，２１ｂへ供給したり外部から入力されたデータをエラー訂正回路１０へ供給するとともにエラー訂正回路１０で訂正されたデータを外部端子３０へ出力したりする入出力回路、２７は外部のマイクロプロセッサ等から与えられるコマンドコードをデコードするコマンドデコーダ、２８は当該コマンドに対応した処理を実行すべくメモリ内の各回路に対する制御信号を順次形成して出力するコントロール回路である。この実施例のフラッシュメモリに有効なコマンドとしては、リードコマンドの他、ライトコマンド、消去コマンド等がある。
【００５４】
この実施例では、外部から入力されるコマンドコードもアドレスおよびライトデータと共通の外部端子３０より入力され、上記入出力回路２６を介してコマンドデコーダ２７に供給されるように構成されている。アドレスとデータとコマンドコードの入出力用外部端子を共通にすることにより、これらを別々の端子とする場合に比べて大幅に外部端子数が少なくなっている。
【００５５】
なお、外部から上記コントロール回路２８へ入力される制御信号としては、リセット信号ＲＥＳやチップ選択信号ＣＥ、リードかライトかを示す書き込み制御信号ＷＥ、出力タイミングを与える出力制御信号ＯＥ、システムクロックＳＣ、コマンド入力かアドレス入力かを示すためのコマンドイネーブル信号ＣＤＥがある。また、上記コントロール回路２９から外部へ出力される制御信号としては、外部からのコマンド入力が可能な状態にあるか否かを示すレディ・ビジー信号Ｒ／Ｂがある。
【００５６】
さらに、この実施例のフラッシュメモリには、上記各回路の他、３．３Ｖのような外部電源電圧Ｖｃｃに基づいて基板電位や書き込み電圧、読み出し電圧、ベリファイ電圧等チップ内部で必要とされる電圧を発生する内部電源発生回路３１、内部の動作制御に必要なクロック（ＣＫ）を発生するクロック発生回路３２が設けられている。また、必要に応じて、不良ビットの位置（アドレス）を保持する不良アドレスレジスタや、Ｙアドレスと不良アドレスとを比較するアドレス比較回路、アドレスが一致したときに選択メモリ列を予備メモリに切り換える冗長回路が設けられても良い。
【００５７】
特に限定されないが、この実施例のフラッシュメモリには２つのメモリアレイ２０ａ，２０ｂが設けられ、それぞれに対応してデータレジスタ２２ａ，２２ｂが設けられている。各データレジスタ２２ａ，２２ｂはそれぞれのメモリアレイ内のワード線を共通にする１行分のメモリセルのデータを同時に増幅して保持するように構成されており、２つのデータレジスタ２２ａ，２２ｂに保持された読出しデータは、カラムマルチプレクサ２４ａ，２４ｂによって、例えば４ビットずつ選択されて４ビットのダミービットを付加されて１２ビット等の単位でＥＣＣ回路１０へ転送される。
【００５８】
なお、図１の実施例では、フラッシュメモリチップ内部にエラー訂正回路を内蔵した場合について説明したが、エラー訂正回路はフラッシュメモリとは別個の半導体チップ上に構成された回路とすることができる。
【００５９】
さらに、図１の実施例のフラッシュメモリは、１つの記憶素子に１ビットのデータを記憶させる２値のフラッシュメモリの構成を示したが、本発明は１つの記憶素子にしきい値を制御して複数ビットのデータを記憶させるように構成された多値のフラッシュメモリにも適用することができる。その場合、フラッシュメモリチップ内の例えばデータレジスタ２２ａ，２２ｂとメモリアレイ２０ａ，２０ｂとの間あるいはデータレジスタ２２ａ，２２ｂと入出力回路２６との間等に、外部から入力されたデータを書込みに適したデータに変換するとともにメモリアレイから読み出されたデータを元のデータに逆変換する２値／多値変換回路を設けてやれば良い。
【００６０】
また、２値データから４値データへの変換とその逆変換を実行する回路はフラッシュメモリ内に設ける代わりに、外部のコントローラ等にデータ変換・逆変換機能を持たせるようにしてもよい。
【００６１】
図５に、１つの記憶素子に２ビットのデータを記憶させる場合の記憶データとしきい値との対応関係の一例を示す。
【００６２】
図５の例では、記憶される２ビットのデータ“１１”は記憶素子のしきい値１．３〜１．８Ｖに対応され、データ“１０”は記憶素子のしきい値２．８〜２．９Ｖに対応され、データ“００”は記憶素子のしきい値３．６〜３．７Ｖに対応され、データ“０１”は記憶素子のしきい値４．６〜５．９Ｖに対応される。ＶWR1,ＶWR2,ＶWR3はそれぞれ読出しワード線レベルで、例えば２．４Ｖ，３．２Ｖ，４．０Ｖのような電位が選択される。これらの電位は、上記しきい値の分布のピークの中間に当たる電位である。データとしきい値との関係は、図５に限定されるものでなく、“００”を最も低いしきい値に対応させ、“１１”を最も高いしきい値に対応させる等、任意の対応が可能であり、書込み方式との関係で決定してやれば良い。
【００６３】
図３は、本発明を適用したフラッシュメモリを使用したメモリカードの構成例を示す。
【００６４】
この実施例のメモリカードは、特に制限されないが、フラッシュメモリチップ（ＦＬＡＳＨ）１１０と、外部から供給されるコマンドに基づいてフラッシュメモリチップ１１０に対する書込み、読出し制御などを行なうマイクロプロセッサ（ＭＰＵ）１２０と、書込みデータに対するエラー訂正符号の生成、エラー訂正符号に基づく読出しデータのチェック、訂正の機能を有するエラー訂正符号生成＆エラー訂正回路チップ１３０と、図１の実施例におけるデータ切替え回路１７が形成されたチップ１４０と、マイクロプロセッサ１２０に対するクロックＣＬＫを発生する発振器を有するクロック発生回路１５０とがプリント配線基板１００上に搭載され、全体が樹脂等によりモールドされて構成される。
【００６５】
このメモリカードは、外部のパーソナルコンピュータ本体などのカードスロットに挿入されカードに対する制御信号が入力される外部端子１６０を備え、フラッシュメモリチップ１１０に対するアクセスはマイクロプロセッサ１２０によって行なわれるように構成されている。データの読出し書込みは、上記マイクロプロセッサ１２０からフラッシュメモリチップ１１０に対して供給されるコマンドコードやシリアルクロックＳＣ、制御信号ＣＥ，ＷＥ，ＣＤＥ，ＯＥ等に従って行なわれる。
【００６６】
カードに対する書込みデータの入力とカードからの読出しデータの出力はエラー訂正符号生成＆エラー訂正回路チップ１３０および外部端子１６１を介して行なわれる。マイクロプロセッサ１２０からエラー訂正符号生成＆エラー訂正回路チップ１３０に対してはシリアルクロックＳＣが、またマイクロプロセッサ１２０からデータ切替え回路１４０に対してはデータ切替え制御信号が供給される。
【００６７】
なお、図３において、１６２は上記マイクロプロセッサ１２０およびフラッシュメモリチップ１１０に供給される電源電圧Ｖｃｃが印加される外部電源端子、１６３は接地電位が印加される外部接地端子である。フラッシュメモリを搭載したメモリカードは図３の構成に限定されず、図１の実施例のようなＥＣＣ回路を内蔵したフラッシュメモリを使用したものや、ＥＣＣ回路とマイクロプロセッサの機能を１つの半導体チップに内蔵したコントローラとＥＣＣ回路を内蔵していないフラッシュメモリとからメモリカードを構成するようにしてもよい。
【００６８】
また、フラッシュメモリは１つのみでなく複数個搭載したものであっても良い。その場合、ＥＣＣ回路は各チップ毎に設けるのが読出し書込み速度の点からは望ましいが、ＥＣＣ回路を複数のフラッシュメモリチップで共用するように構成することも可能である。
【００６９】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上記実施例では、エラー訂正符号としてリード・ソロモン符号を用いたＥＣＣ回路を使用した場合について説明したが、ハミング符号やＢＣＨ符号を用いたＥＣＣ回路を備えたフラッシュメモリにも適用することができる。また、実施例のＥＣＣ回路を内蔵するとともに、内蔵したＥＣＣ回路をボンディングワイヤの切替えやモード制御信号により他の回路と電気的に切り離し可能な構成にしておき、切り離したときに従来のフラッシュメモリと同等に扱えるようにすることも可能である。これによって、フラッシュメモリの汎用性が一層高くなる。
【００７０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリおよびそれを内蔵したメモリカードに適用した場合について説明したが、この発明はそれに限定されるものでなく、ＥＥＰＲＯＭチップやＲＡＭチップおよびそれらを内蔵したメモリカードあるいは複数のメモリチップを１枚のボード上に搭載してなるメモリモジュールなどにも利用することができる。
【００７１】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００７２】
すなわち、この発明に従うと、エラー訂正機能を有する不揮発性記憶装置における読出し所要時間を短縮することができるとともに、出力された読出しデータのエラーの有無や訂正の状況を外部で知ることができるようになるという効果がある。
【図面の簡単な説明】
【図１】本発明を適用したフラッシュメモリにおけるエラー訂正符号生成およびエラー訂正回路の一実施例を示すブロック図である。
【図２】本発明を適用したフラッシュメモリ全体の構成例を示すブロック図である。
【図３】本発明を適用したフラッシュメモリを使用したシステムの一例としてのメモリカードの構成例を示すブロック図である。
【図４】実施例のフラッシュメモリにおけるセクタの構成一例を示す説明図である。
【図５】１つの記憶素子に２ビットのデータを記憶させる多値フラッシュメモリにおける記憶データとしきい値との対応関係の一例を示す説明図である。
【図６】本発明を適用したフラッシュメモリにおける誤り訂正回路の動作タイミングの一例を示すタイミングチャートである。
【図７】従来のＥＣＣ回路を内蔵したフラッシュメモリにおける誤り訂正回路の動作タイミング例を示すタイミングチャートである。
【図８】フラッシュメモリにおけるデータ書込み時とデータ消去時の記憶素子へのバイアス電圧を示す説明図である。
【符号の説明】
ＦＬＭ  フラッシュメモリチップ
ＣＰＵ  マイクロプロセッサ
ＥＣＣ  訂正符号生成＆エラー訂正回路
１０    エラー訂正回路
１１    シンドローム生成回路
１２    エラー判定回路
１３    訂正位置情報生成回路
１４    一致検出回路
１５    訂正回路
１６    ゲート
１７    データ切替え回路
１８    訂正状況フラグ
２０ａ，２０ｂ  メモリアレイ
２１ａ，２１ｂ  ワードデコーダ
２２ａ，２２ｂ  データレジスタ
２３            センスラッチ回路
２４ａ，２４ｂ  カラムマルチプレクサ
２５            カラムアドレス制御回路
２６            入出力回路
２７            コマンドレジスタ
２８            コマンドデコーダ
２９            コントロール回路
３０            外部端子
【図１】
0004105819.tif 000008
【図２】
0004105819.tif 000009
【図３】
0004105819.tif 000010
【図４】
0004105819.tif 000011
【図５】
0004105819.tif 000012
【図６】
0004105819.tif 000013
【図７】
0004105819.tif 000014
【図８】
0004105819.tif 000015