(57)【要約】 【課題】  各種のデータ転送が可能な半導体記憶装置を提供する。【解決手段】  メモリセルアレイ10は、複数の不揮発性メモリセルが配置されている。ＲＡＭ（Random Access Memory）30は、メモリセルアレイ10に書き込まれるデータ、又は読み出されたデータを保持する。制御部4は、ＲＡＭを用いた第１の動作モードと、ＲＡＭを用いない第２の動作モードを制御する。データ転送部17は、第２の動作モードにおいて、データの書き込み時、データバスDIRを介して入出力部40から供給されたデータをバッファ部12に転送し、バッファ部12に転送されたデータをエラー訂正部20に転送し、エラー訂正部20において、生成されたパリティデータをバッファ部12に転送する。【選択図】図１
2012133843.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルが配置されたメモリセルアレイと、
前記メモリセルアレイに書き込まれるデータ、又は読み出されたデータを一時的に保持するバッファ部と、
前記メモリセルアレイから読み出されたデータのエラーを訂正するエラー訂正部と、
前記バッファ部とエラー訂正部との間に配置され、データの転送を制御するデータ転送部と、
前記メモリセルアレイに書き込まれるデータ、又は読み出されたデータを保持するＲＡＭ（Random Access Memory）と、
データの入出力部と、
前記入出力部と前記データ転送部とを接続するデータバスと、
前記ＲＡＭを用いた第１の動作モードと、前記ＲＡＭを用いない第２の動作モードを制御する制御部と、
を具備し、
前記データ転送部は、前記第２の動作モードにおいて、データの書き込み時、前記データバスを介して前記入出力部から供給されたデータを前記バッファ部に転送し、前記バッファ部に転送されたデータを前記エラー訂正部に転送し、前記エラー訂正部において、生成されたパリティデータを前記バッファ部に転送することを特徴とする半導体記憶装置。
【請求項２】
前記データ転送部は、前記第２の動作モードにおいて、前記メモリセルアレイから前記バッファ部に読み出されたデータを前記エラー訂正部に転送し、前記エラー訂正部において、訂正されたデータを前記バッファ部に転送することを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記データ転送部は、前記エラー訂正部との間の単位転送ビット数が、前記バッファ部との間の単位転送ビット数の１／２に設定されていることを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記制御部は、前記エラー訂正部において生成されたパリティデータのうち、単位転送ビット数の１／２のデータを転送するためのアドレスと、単位転送ビット数のデータを転送するためのアドレスを発生することを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記制御部は、前記訂正されたデータのうち、単位転送ビット数の後半のデータを前記データ転送部に転送するときのクロック信号の発生タイミングを、単位転送ビット数の前半のデータを前記データ転送部に転送するときのクロック信号と同じタイミングで発生することを特徴とする請求項４記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えばＮＡＮＤ型フラッシュメモリを含む半導体記憶装置に関する。
【背景技術】
【０００２】
不揮発性半導体メモリとして、ＮＡＮＤ型フラッシュメモリが知られている。近時、ＮＡＮＤ型フラッシュメモリとＳＲＡＭ（Static Random Access Memory）を組み込んだメモリが開発されている。さらに、データのＥＣＣ（Error Checking and Correcting）処理を行うＮＡＮＤ型フラッシュメモリが開発されている。このため、各種のデータ転送を可能とすることが要望されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−９６４２号公報
【特許文献２】特表２００９−５１０５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本実施形態は、各種のデータ転送が可能な半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
本実施形態の半導体記憶装置によれば、複数の不揮発性メモリセルが配置されたメモリセルアレイと、前記メモリセルアレイに書き込まれるデータ、又は読み出されたデータを一時的に保持するバッファ部と、前記メモリセルアレイから読み出されたデータのエラーを訂正するエラー訂正部と、前記バッファ部とエラー訂正部との間に配置され、データの転送を制御するデータ転送部と、前記メモリセルアレイに書き込まれるデータ、又は読み出されたデータを保持するＲＡＭ（Random Access Memory）と、データの入出力部と、前記入出力部と前記データ転送部とを接続するデータバスと、前記ＲＡＭを用いた第１の動作モードと、前記ＲＡＭを用いない第２の動作モードを制御する制御部と、を具備し、前記データ転送部は、前記第２の動作モードにおいて、データの書き込み時、前記データバスを介して前記入出力部から供給されたデータを前記バッファ部に転送し、前記バッファ部に転送されたデータを前記エラー訂正部に転送し、前記エラー訂正部において、生成されたパリティデータを前記バッファ部に転送することを特徴とする。
【図面の簡単な説明】
【０００６】
【図１】実施形態に係る半導体記憶装置のブロック図。
【図２】図１に示すＮＡＮＤセルアレイの一例を示す回路図。
【図３】図１に示すデータ転送部の一例を概略的に示す構成図。
【図４】実施形態の動作を説明するために示す概略構成図。
【図５】図５の動作を説明するために示すタイミングチャート。
【図６】実施形態の別の動作を説明するために示す概略構成図。
【図７】図６の動作を説明するために示すタイミングチャート。
【図８】図６の動作を説明するために示すタイミングチャート。
【図９】図６の動作を説明するために示すタイミングチャート。
【発明を実施するための形態】
【０００７】
以下、実施の形態について、図面を参照して説明する。以下の説明において、同一部分には同一符号をしている。
【０００８】
＜メモリシステムの全体構成＞
図１は、実施形態に係る半導体記憶装置（メモリシステム）１のブロック図である。メモリシステム１は、ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ部３、及びコントローラ４を備えている。ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ部３、及びコントローラ４は、同一の半導体基板上に形成され、１つのチップに集積されている。
【０００９】
＜ＮＡＮＤ型フラッシュメモリ２＞
ＮＡＮＤ型フラッシュメモリ２は、メモリシステム１の主記憶部として機能する。ＮＡＮＤ型フラッシュメモリ２は、メモリセルアレイ（NAND Cell Array）１０、ロウデコーダ（Row Dec.）１１、ページバッファ１２、電圧発生回路（Voltage Supply）１３、ＮＡＮＤシーケンサ１４、オシレータ（ＯＳＣ）１５，１６、及びデータ転送部１７を備えている。
【００１０】
図２は、メモリセルアレイ１０の一例を示している。メモリセルアレイ１０は、複数のメモリセルユニットＣＵを備えている。各メモリセルユニットＣＵは、例えば３２個のメモリセルトランジスタＭＴと、２個の選択トランジスタＳＴ１、ＳＴ２とから構成されている。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート電極）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極とを有する積層ゲート構造を備えている。メモリセルトランジスタＭＴは、電荷蓄積層としての窒化膜に電子をトラップさせる方式を用いたＭＯＮＯＳ（Metal Oxide Nitride Oxide Silicon）構造であっても良い。
【００１１】
隣接するメモリセルトランジスタＭＴ同士の電流経路は直列接続されている。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１２】
同一行にあるメモリセルトランジスタＭＴの各制御ゲート電極は、ワード線ＷＬ０〜ＷＬ３１のいずれかに共通接続されている。同一行にある選択トランジスタＳＴ１、ＳＴ２の各ゲートは、選択ゲート線ＳＧＤ、ＳＧＳにそれぞれ共通接続されている。選択トランジスタＳＴ１の各ドレインは、ビット線ＢＬ０〜ＢＬｎ（ｎは１以上の整数）のいずれかに接続されている。選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続されている。
【００１３】
同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴはページを構成する。データの書き込み及び読み出しは、１つのページ内のメモリセルトランジスタＭＴに対して一括して行なわれる。また、複数のページのデータが一括して消去されるように構成されている。この消去の単位をメモリブロックと呼ぶ。図２には、１個のメモリブロックしか図示していないが、実際にはメモリセルアレイ１０は、複数のメモリブロックを含んでいる。
【００１４】
各メモリセルトランジスタＭＴは、浮遊ゲート電極に電子が注入されることによる閾値電圧の変化に応じて、１ビットのデータを記憶することが可能である。閾値電圧の制御を細分化し、各メモリセルトランジスタＭＴに２ビット以上のデータを記憶する構成としても良い。
【００１５】
図１において、ロウデコーダ１１は、データの書き込み、読み出し、及び消去の際に、ワード線ＷＬ０〜ＷＬ３１及び選択ゲート線ＳＧＤ、ＳＧＳを選択し、所定の電圧をワード線ＷＬ０〜ＷＬ３１及び選択ゲート線ＳＧＤ、ＳＧＳに印加する。
【００１６】
ページバッファ１２は、メモリセルアレイ１０の１ページと同じ大きさのデータを保持できるように構成されている。すなわち、ページバッファ１２は、読み出し時、メモリセルアレイ１０から読み出された１ページ分のデータを一時的に格納し、書き込み時、メモリセルアレイ１０に書き込むべき１ページ分のデータを一時的に格納する。また、ページバッファ１２は、ページデータのうちアドレスで指定された６４ビットのデータをデータ転送部１７へ送り、６４ビットのデータをデータ転送部１７から受けるように構成されている。さらに、ページバッファ１２は、書き込みデータをメモリセルアレイ１０に書き込み、かつメモリセルアレイ１０からデータを読み出す図示せぬセンスアンプを含んでいる。
【００１７】
電圧発生回路１３は、データの書き込み、読み出し、及び消去に必要な電圧を生成し、この電圧をロウデコーダ１１などに供給する。
【００１８】
ＮＡＮＤシーケンサ１４は、ＮＡＮＤ型フラッシュメモリ２全体の動作を司る。すなわち、ＮＡＮＤシーケンサ１４は、コントローラ４から各種の命令を受けると、これに応答して、データの書き込み、読み出し、及び消去などのシーケンスを実行する。さらに、ＮＡＮＤシーケンサ１４は、各種シーケンスに従って、電圧発生回路１３やページバッファ１２の動作を制御する。
【００１９】
オシレータ１５は、内部クロックＩＣＬＫを生成し、この内部クロックＩＣＬＫをＮＡＮＤシーケンサ１４に供給する。ＮＡＮＤシーケンサ１４は、この内部クロックＩＣＬＫに同期して動作する。また、ＮＡＮＤシーケンサ１４は、内部クロックＩＣＬＫから幾つかのクロック信号（後述するＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕ、ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕ）を生成し、このクロックをデータ転送部１７に供給する。
【００２０】
オシレータ１６は、内部クロックＡＣＬＫを生成し、この内部クロックＡＣＬＫをコントローラ４やＲＡＭ部３へ供給する。内部クロックＡＣＬＫは、コントローラ４やＲＡＭ部３が動作するための基準クロックである。
【００２１】
データ転送部１７は、ページバッファ１２とＲＡＭ部３との間のデータ転送を制御する。具体的には、ページバッファ１２とＥＣＣ部２０との間のデータ転送、及びページバッファ１２とＩ／Ｆ部４０との間のデータ転送を制御する。この制御のために、データ転送部１７は、複数のバスと、複数のラッチ回路とを備えており、さらにシーケンサ１４からクロックを受ける。データ転送部１７の具体的な構成については、後述する。
【００２２】
＜ＲＡＭ部３＞
ＲＡＭ部３は、ＥＣＣ部２０、ＳＲＡＭ（Static Random Access Memory）３０、インターフェース部（Ｉ／Ｆ部）４０、及びアクセスコントローラ５０を備えている。
【００２３】
メモリシステム１において、ＮＡＮＤ型フラッシュメモリ２は主記憶部として機能し、ＲＡＭ部３のＳＲＡＭ３０はメモリバッファとして機能する。従って、ＮＡＮＤ型フラッシュメモリ２からデータを外部に読み出す場合、メモリセルアレイ１０から読み出されたデータは、ページバッファ１２を介して、先ずＲＡＭ部３のＳＲＡＭ３０に格納される。その後、ＳＲＡＭ３０内のデータはインターフェース部４０に転送され、外部に出力される。
【００２４】
一方、データをＮＡＮＤ型フラッシュメモリ２に記憶させる場合、外部から入力されたデータは、インターフェース部４０を介して、先ずＳＲＡＭ３０に格納される。その後、ＳＲＡＭ３０内のデータはページバッファ１２へ転送され、メモリセルアレイ１０に書き込まれる。
【００２５】
以下の説明において、データがメモリセルアレイ１０から読み出されてから、ページバッファ１２を介してＳＲＡＭ３０に転送されるまでの動作を、データの“ロード（load）”と呼ぶ。また、ＳＲＡＭ３０内のデータが、インターフェース部４０内のバッファ４１を介してインターフェース４２に転送されるまでの動作を、データの“読み出し（read）”と呼ぶ。
【００２６】
また、ＮＡＮＤ型フラッシュメモリ２に記憶させるべきデータが、インターフェース４２からバッファ４１を介してＳＲＡＭ３０に転送されるまでの動作を、データの“書き込み（write）”と呼ぶ。また、ＳＲＡＭ３０内のデータがページバッファ１２を介してメモリセルアレイ１０に書き込まれるまでの動作を、データの“プログラム（program）”と呼ぶ。
【００２７】
＜ＥＣＣ部２０＞
ＥＣＣ部２０は、ＥＣＣ（Error Checking and Correcting）処理を行う。すなわち、ロード時には、ＮＡＮＤ型フラッシュメモリ２から読み出されたデータについてエラーの検出及び訂正を行う。また、プログラム時には、プログラムすべきデータについてのパリティデータを生成する。ＥＣＣ部２０は、ＥＣＣバッファ（ECC Buffer）２１及びＥＣＣエンジン（ECC Engine）２２を備えている。
【００２８】
ＥＣＣバッファ２１は、ＮＡＮＤデータバスによってデータ転送部１７と接続され、ＥＣＣデータバスによってＳＲＡＭ３０と接続される。ＥＣＣバッファ２１は、ＥＣＣ処理（ロード時は誤り訂正、プログラム時はパリティデータの生成）のために一時的にデータを格納する。ＥＣＣバッファ２１は、３２ビット幅のデータバスでデータ転送部１７と接続されている。ＥＣＣエンジン２２は、ＥＣＣバッファ２１に保持されるデータを用いてＥＣＣ処理を行う。具体的には、ＥＣＣエンジン２２は、ＥＣＣバッファ２１に入力されたデータ（Data）の誤り訂正し、訂正したデータ（Correct）を再びＥＣＣバッファ２１に出力する。
【００２９】
さらに、後述するＥＣＣ付きＮＡＮＤモードにおいて、ＥＣＣ部２０は、データの書き込み時、インターフェース４２からページバッファ１２に転送されたデータに対してパリティデータを生成する。また、データの読み出し時、ＮＡＮＤセルアレイ１０から読み出され、ページバッファ１２に転送されたデータの誤りを検出し、誤りを訂正する。ＥＣＣ部２０は、誤りを検出した場合、コントローラ４に誤りを含むデータのアドレスを転送する。
【００３０】
＜ＳＲＡＭ３０＞
ＳＲＡＭ３０は、ＮＡＮＤ型フラッシュメモリ２に対するバッファメモリとして機能する。ＳＲＡＭ３０は、ＤＱバッファ（DQ Buffer）３１、メモリセルアレイ（SRAM Cell Array）３２、センスアンプ（S/A）３３、及びロウデコーダ（Row Dec.）３４を備えている。ＤＱバッファ３１は、データのロード、読み出し、書き込み、及びプログラムの際に、メモリセルアレイ３２へのデータ又はメモリセルアレイ３２からのデータを一時的に格納する。メモリセルアレイ３２は、図示せぬ複数のＳＲＡＭセルを備えている。センスアンプ３３は、ＳＲＡＭセルからのデータを検知及び増幅し、また、ＤＱバッファ３１内のデータをＳＲＡＭセルに書き込む際の負荷としても機能する。ロウデコーダ３４は、メモリセルアレイ３２内の特定のワード線を選択する。
【００３１】
＜インターフェース部４０＞
インターフェース部４０は、バースト読み出し／書き込みバッファ（Burst Read/Write Buffer）４１、及びインターフェース（Ｉ／Ｆ）４２を備えている。
【００３２】
インターフェース４２は、メモリシステム１外部のホスト機器との間で、データ、制御信号、及びアドレス等の様々な信号の受け渡しを行なう。制御信号の一例は、メモリシステム１全体をイネーブルにするチップイネーブル信号／ＣＥ、アドレスをラッチさせるためのアドレスバリッド信号／ＡＶＤ、バースト読み出し用のクロックＣＬＫ、書き込み動作をイネーブルにするためのライトイネーブル信号／ＷＥ、及びデータの外部への出力をイネーブルにするためのアウトプットイネーブル信号／ＯＥなどである。また、インターフェース４２は、ホスト機器からの書き込み要求及び読み出し要求などに係る制御信号をアクセスコントローラ５０へ送る。
【００３３】
バッファ４１は、例えば１６ビット幅を有するＤＩＮ／ＤＯＵＴバス（Bus）によりインターフェース４２と接続されている。バッファ４１は、データ読み出し及び書き込みのために、データを一時的に格納する。
【００３４】
＜アクセスコントローラ５０＞
アクセスコントローラ５０は、インターフェース４２から制御信号及びアドレスを受け、ホスト機器の要求を満たす動作を実行するように、ＳＲＡＭ３０及びコントローラ４を制御する。具体的には、アクセスコントローラ５０は、ホスト機器の要求に応じて、ＳＲＡＭ３０、又は後述するコントローラ４内のレジスタ６０をアクティブ状態とする。さらに、アクセスコントローラ５０は、ＳＲＡＭ３０又はレジスタ６０に対してデータの書き込みコマンド、又は読み出しコマンド（Write/Read）を発行する。これらの制御により、ＳＲＡＭ３０及びコントローラ４は動作を開始する。
【００３５】
＜コントローラ４＞
コントローラ４は、メモリシステム１全体の動作を司る。コントローラ４は、レジスタ６０、コマンドユーザインターフェース（ＣＵＩ）６１、ステートマシン（State Machine）６２、ＮＡＮＤアドレス／コマンド発生回路（NAND Add/Command Gen.）６３、及びＳＲＡＭアドレス／タイミング発生回路（SRAM Add/Timing）６４を備えている。
【００３６】
レジスタ６０は、アクセスコントローラ５０からのコマンドに応じて、ファンクションの動作状態を設定するために使用される。具体的には、レジスタ６０は、例えば読み出しコマンドや書き込みコマンドを保持する。
【００３７】
コマンドユーザインターフェース６１は、所定のコマンドがレジスタ６０に保持されることで、メモリシステム１に対してファンクション実行コマンドが与えられたことを認識し、内部コマンド信号（Command）をステートマシン６２へ送る。
【００３８】
ステートマシン６２は、コマンドユーザインターフェース６１から与えられる内部コマンド信号に基づいて、メモリシステム１内のシーケンス動作を制御する。ステートマシン６２がサポートするファンクションは、書き込み、読み出し、及び消去を含め多数ある。ステートマシン６２は、これらのファンクションを実行するように、ＮＡＮＤ型フラッシュメモリ２及びＲＡＭ部３の動作を制御する。
【００３９】
アドレス／コマンド発生回路６３は、ステートマシン６２の制御に基づいてＮＡＮＤ型フラッシュメモリ２の動作を制御する。具体的には、アドレスやコマンド（Write/Read/Load）等を生成し、これらをＮＡＮＤ型フラッシュメモリ２へ送る。アドレス／コマンド発生回路６３は、オシレータ１６の生成する内部クロックＡＣＬＫと同期しながら、これらのアドレスやコマンドを出力する。
【００４０】
アドレス／タイミング発生回路６４は、ステートマシン６２の制御に基づいてＲＡＭ部３の動作を制御する。具体的には、ＲＡＭ部３において必要なアドレスやコマンドを発行し、これらをアクセスコントローラ５０及びＥＣＣエンジン２２へ送る。
【００４１】
また、外部のホスト機器から供給される各種コマンドは、例えばインターフェースＩ／Ｆ４２、バッファ４１を介してレジスタ６０に供給される。このレジスタ６０に保持されたコマンドは、上述したように、コマンドユーザインターフェース６１を介してステートマシン６２に供給される。
【００４２】
＜メモリシステム１の動作＞
次に、メモリシステム１の動作について説明する。
【００４３】
メモリシステム１は、ＮＡＮＤ型フラッシュメモリ２とホスト機器との間のデータの受け渡しを、ＳＲＡＭ３０を介して行う第１の動作モード（ＯｎｅＮＡＮＤ（登録商標）モード）と、ＮＡＮＤ型フラッシュメモリ２とホスト機器との間のデータの受け渡しを、ＳＲＡＭ３０を介さないで行う第２の動作モード（ＥＣＣ付きＮＡＮＤモード）とを有している。
【００４４】
ＥＣＣ付きＮＡＮＤモードにおいて、ＮＡＮＤ型フラッシュメモリ２からのデータは、ページバッファ１２に保持され、ＥＣＣ部２０においてエラー訂正が行われた後、再びページバッファ１２に保持される。この後、ページバッファ１２からＩ／Ｆ部４０に送られる。また、ホスト機器からのデータ（Ｉ／Ｆ部４０からのデータ）は、ページバッファ１２に保持され、ＥＣＣ部２０に転送されてパリティデータが生成される。このパリティデータがページバッファ１２に保持されたデータに付加されて、ＮＡＮＤ型フラッシュメモリ２に送られる。これらの動作は、データ転送部１７を介して実行される。
【００４５】
ＥＣＣ付きＮＡＮＤモードとＯｎｅＮＡＮＤモードとでは、データ転送方式が異なるため、動作の定義が異なる。ＯｎｅＮＡＮＤモードでの動作の定義は、前述した通りである。すなわち、メモリセルアレイ１０のデータがＳＲＡＭ３０に転送される“ロード”、ＳＲＡＭ３０のデータがインターフェース部４０に転送される“読み出し”、インターフェース４２からＳＲＡＭ３０にデータが転送される“書き込み”、ＳＲＡＭ３０のデータがメモリセルアレイ１０に書き込まれる“プログラム”がある。
【００４６】
一方、ＥＣＣ付きＮＡＮＤモードは、ＳＲＡＭ３０を介したデータ転送が行われない。このため、ＥＣＣ付きＮＡＮＤモードは、一般的なＮＡＮＤ型フラッシュメモリと同様の読み出し動作、プログラム動作（書き込み動作という場合もある）、及び消去動作が実行される。
【００４７】
ＯｎｅＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２にデータを記憶させる場合、先ずホスト機器からの書き込みコマンドとＳＲＡＭ３０のアドレスとに従って、データがＳＲＡＭ３０に格納される。その後、ホスト機器からのプログラムコマンドとＮＡＮＤ型フラッシュメモリ２のアドレスとに従って、ＳＲＡＭ３０に格納されたデータが、ページ単位で一括してＮＡＮＤ型フラッシュメモリ２に書き込まれる。
【００４８】
また、ＯｎｅＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２内のデータを読み出す場合、先ずホスト機器からのロードコマンド、ＮＡＮＤ型フラッシュメモリ２のアドレス、及びＳＲＡＭ３０のアドレスに従って、データがＮＡＮＤ型フラッシュメモリ２から読み出され、ＳＲＡＭ３０に格納される。その後、ホスト機器からの読み出しコマンドとＳＲＡＭ３０のアドレスとに従って、ＳＲＡＭ３０に保持されたデータが、インターフェース部４０を介してホスト機器に送られる。
【００４９】
一方、ＥＣＣ付きＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２にデータを記憶させる場合、ホスト機器からのプログラムコマンドとＮＡＮＤ型フラッシュメモリ２のアドレスとに従って、インターフェース部４０に入力されたデータにパリティデータが付加され、ページ単位で一括してＮＡＮＤ型フラッシュメモリ２に書き込まれる。
【００５０】
また、ＥＣＣ付きＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２内のデータを読み出す場合、ホスト機器からの読み出しコマンドとＮＡＮＤ型フラッシュメモリ２のアドレスとに従って、データがＮＡＮＤ型フラッシュメモリ２から読み出され、エラー訂正された後、インターフェース部４０を介してホスト機器に送られる。
【００５１】
＜ＯｎｅＮＡＮＤモードとＥＣＣ付きＮＡＮＤノード＞
本実施形態は、上記のように、１チップにＯｎｅＮＡＮＤモードとＥＣＣ付きＮＡＮＤモードとの切り替え機能を搭載しており、ＯｎｅＮＡＮＤモードとＥＣＣ付きＮＡＮＤモードの両方において、ページバッファ１２とＥＣＣ部２０間のデータ転送が必要となる。このため、本実施形態では、データ転送部１７により、これらのデータ転送を可能としている。
【００５２】
尚、ＯｎｅＮＡＮＤモードの場合、ＥＣＣ部２０からページバッファ１２にデータを転送するとき、データ転送部１７は、１クロックで６４ビットのデータを転送する。
【００５３】
また、ＥＣＣ付きＮＡＮＤモードの場合、データ転送部１７は、２種類の転送動作を行う。第１の転送動作は、ＥＣＣ部２０で生成したパリティデータをページバッファ１２に書き戻す動作（パリティ・ライト・バック：Parity Write Back）であり、第２の動作は、ＥＣＣ部２０で訂正したデータをページバッファ１２に書き戻す動作（コレクト：Correct）である。
【００５４】
第１の転送動作としてのパリティ・ライト・バックは、１クロックで３２ビットのデータを転送し、次の１クロックで６４ビットを転送する。これに対して、第２の動作としてのコレクトは、１クロックで３２ビットを転送する。
【００５５】
以下において、データ転送部１７を用いた上記３種類のデータ転送制御について説明する。
【００５６】
＜データ転送部１７＞
図３は、データ転送部１７の概略構成を示している。  
データ転送部１７は、例えば８ＩＯ（８ビット）のデータをラッチする複数のラッチ回路１７ａとデータバスにより構成されている。
【００５７】
隣接する２つのラッチ回路１７ａの一方はデータバスＩＯ＿Ｌ１〜ＩＯ＿Ｌ４に接続され、他方はデータバスＩＯ＿Ｕ１〜ＩＯ＿Ｕ４に接続されている。これらデータバスＩＯ＿Ｌ１〜ＩＯ＿Ｌ４、ＩＯ＿Ｕ１〜ＩＯ＿Ｕ４は、ページバッファ１２にそれぞれ接続されている。これらデータバスＩＯ＿Ｌ１〜ＩＯ＿Ｌ４、ＩＯ＿Ｕ１〜ＩＯ＿Ｕ４は、それぞれ８ビットのデータを転送する。データバスＩＯ＿Ｌ１〜ＩＯ＿Ｌ４に接続されたラッチ回路１７ａには、クロック信号ＣＬＫ１＿Ｌ、及びカラムアドレスＣＯＬＡＤＤ＿Ｌが供給され、データバスＩＯ＿Ｕ１〜ＩＯ＿Ｕ４に接続されたラッチ回路１７ａには、クロック信号ＣＬＫ１＿Ｕ、及びカラムアドレスＣＯＬＡＤＤ＿Ｕが供給される。
【００５８】
データ転送部１７は、ページバッファ１２に対して、６４ビットのデータを転送し、ＥＣＣ部２０に対して３２ビットのデータを転送する。すなわち、データ転送部１７は、ＥＣＣ部２０に対するビット数が、ページバッファ１２に対するビット数の１／２に設定されている。
【００５９】
具体的には、各ラッチ回路１７ａのＥＣＣ部２０側のデータバスＮＡＮＤ−ＲＷＤは、２つのラッチ回路１７ａに対して１つ設けられている。すなわち、２つのラッチ回路１７ａの１６本のデータバスは、８本のデータバスＮＡＮＤ−ＲＷＤにまとめられ、それぞれラッチ回路１７ｂを介してＥＣＣ部２０（ＥＣＣバッファ２１）に接続されている。このため、ＥＣＣ部２０とデータ転送部１７の各ラッチ回路１７ａとの間では、８ビットのデータが転送される。
【００６０】
さらに、３２本のデータバスＮＡＮＤ−ＲＷＤには、ラッチ回路１７ｃを介してそれぞれデータバスＤＩＲが接続されている。このデータバスＤＩＲは、Ｉ／Ｆ部４０のバーストリード／ライト・バッファ４１に接続されている。
【００６１】
ページバッファ１２は、例えば４ｋバイトにより構成されている。このページバッファ１２は、８個のセクタ（１〜８）により構成され、各セクタは、例えば５２８バイトにより構成されている。５２８バイトのうち、５１２バイトがデータ、１２バイトがパリティデータ、４バイトがオプションである。ページバッファ１２には、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕが、カラム選択信号ＣＳＬとして供給される。
【００６２】
＜ＯｎｅＮＡＮＤモードのデータ転送動作＞
図４は、ＯｎｅＮＡＮＤモードにおける各部のデータ転送動作を概略的に示し、図５はデータ転送動作のタイミングチャートを示している。尚、図４において、図１、図３と同一部分には、同一符号を付している。また、図４に示すＳ１１、Ｓ１２…は、データ及び信号の転送順序を示している。
【００６３】
＜プログラム＞  
図４、図５を参照してプログラム動作について説明する。この場合、先ず、図示せぬホスト機器から供給されたデータ転送のコマンドに応じてＩ／Ｆ部４０からＳＲＡＭ３０へデータが転送される（Ｓ１１）。この後、ホスト機器からＩ／Ｆ部４０にコマンドが入力され、このコマンドはレジスタ６０に転送される（Ｓ１２）。
【００６４】
コントローラ４は、供給されたコマンドに基づき、上述した動作により、プログラムコマンド生成し、このコマンドをＮＡＮＤシーケンサ１４に供給する。さらに、コントローラ４は、プログラムすべきデータを転送するための制御信号をＳＲＡＭ３０、ＥＣＣ部２０、データ転送部１７に供給する（Ｓ１３）。
【００６５】
ＳＲＡＭ３０は、制御信号に応じて、ＥＣＣ部２０へデータを転送する（Ｓ１４）。このデータ転送は、３２ビットずつ１３２回実行される（３２ビット×１３２回：Ｄ０、Ｄ１〜Ｄ１３１（各３２ビット）、ページバッファ１２の１セクタ分）。
【００６６】
ＥＣＣ部２０は、ＳＲＡＭ３０から転送されたデータに対してパリティデータを生成する。パリティデータは、例えば９６ビットにより構成され、このパリティデータは、ＳＲＡＭ３０から転送されたデータのＤ１２９、Ｄ１３０、Ｄ１３１に付加される。このパリティデータが付加されたデータは、ＳＲＡＭ３０から転送されたメインのデータとともに、データ転送部１７に供給される。すなわち、ＥＣＣ部２０から３２ビットずつデータが出力され、このデータは、クロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕに基づき、データバスＮＡＮＤ＿ＲＷＤを介して、データ伝送部１７の各ラッチ回路１７ａに順次転送される（Ｓ１５−１）。
【００６７】
具体的には、図５に示すように、クロック信号ＣＬＫ１＿Ｌに基づきデータＤ０がデータバスＮＡＮＤ＿ＲＷＤを介して、データ伝送部１７のラッチ回路１７ａに転送され、クロック信号ＣＬＫ１＿Ｕに基づきデータＤ１がデータバスＮＡＮＤ＿ＲＷＤを介して、データ伝送部１７のラッチ回路１７ａに転送される。この動作がクロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕに基づき、…データＤ１２９、Ｄ１３０、Ｄ１３１まで順次繰り返される。
【００６８】
データ転送部１７の各ラッチ回路１７ａに転送されたデータは、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕ、及びカラムアドレスＣＯＬＡＤＤ＿Ｌ、ＣＯＬＡＤＤ＿Ｕに基づき、ページバッファ１２に転送される（１５−２）。  
具体的には、カラムアドレスＣＯＬＡＤＤ＿Ｌ、ＣＯＬＡＤＤ＿Ｕがハイレベルとされた状態において、クロック信号ＣＬＫ２＿Ｌに基づき、２つのラッチ回路１７ａのデータＤ０、Ｄ１が、データバスＩＯ＿Ｌ１〜ＩＯ＿Ｌ４、ＩＯ＿Ｕ１〜ＩＯ＿Ｕ４を介してページバッファ１２に転送される。すなわち、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕに基づき、２つのラッチ回路１７ａに保持された６４ビットのデータＤ０、Ｄ１が、ページバッファ１２に転送される。次いで、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕに基づき、２つのラッチ回路１７ａに保持された６４ビットのデータＤ２、Ｄ３が、クロック信号ＣＬＫ２＿Ｕに基づきページバッファ１２に転送される。
【００６９】
上記動作は、データ転送部１７の２つのラッチ回路１７ａにデータが保持された状態において、プログラム可能となる。このため、ラッチ回路１７ａにデータを供給するためのクロック信号ＣＬＫ１＿Ｕ、ＣＬＫ１＿Ｕの周期が、例えば２０ｎｓである場合、ページバッファ１２に供給されるクロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕの周期は、例えば４０ｎｓである。
【００７０】
上記Ｓ１４、Ｓ１５の動作が、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕに基づき、ページバッファ１２のセクタ１からセクタ８まで順次繰り返される（Ｓ１６）。
【００７１】
ページバッファ１２のセクタ１からセクタ８にデータ及びパリティデータが転送された後、プログラム動作により、ページバッファ１２に保持されたデータ及びパリティデータがＮＡＮＤセルアレイ１０に書き込まれる（Ｓ１７）。
【００７２】
＜ロード＞  
次に、ＮＡＮＤセルアレイ１０のデータを読み出すロード動作について説明する。この場合、ホスト機器からロードコマンドを発生するためのデータが供給されると、このデータはコントローラ４内のレジスタ６０へ供給される（１２）。コントローラ４は、このデータに従ってロードコマンドを発生し、ＮＡＮＤシーケンサ１４に供給する。ＮＡＮＤシーケンサ１４は、カラムアドレスＣＯＬＡＤＤ＿Ｌ、ＣＯＬＡＤＤ＿Ｕ等を発生し、ページバッファ１２等に供給する。ＮＡＮＤセルアレイ１０から読み出された１ページ分のデータは、ページバッファ１２へ転送される（Ｓ１８）。
【００７３】
この後、ページバッファ１２に保持されたデータは、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕに基づき、データ転送部１７の各ラッチ回路１７ａに転送される。この転送動作は、プログラム時と逆の動作であり、例えばクロック信号ＣＬＫ２＿Ｌに基づき、ページバッファ１２から出力された６４ビットのデータＤ０、Ｄ１が２つのラッチ回路１７ａに３２ビットのデータＤ０（０〜３１ビット）とデータＤ１（３２〜６３ビット）に分けて転送される（Ｓ１９−１）。
【００７４】
２つのラッチ回路１７ａに転送されたデータＤ０、Ｄ１は、クロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕに基づき、データバスＮＡＮＤ＿ＲＷＤを介して、３２ビットずつ順次ＥＣＣ部２０に転送される（Ｓ１９−２）。
【００７５】
このＥＣＣ部２０に転送されたデータは、３２ビットずつ１３２回（３２ビット×１３２回）に分けて、ＳＲＡＭ３０にロードされる（Ｓ２０）。
【００７６】
このとき、ＥＣＣ部２０において、エラーが検出された場合、このエラーを含むデータのアドレスがコントローラ４に供給される（Ｓ２１）。コントローラ４は、このアドレスをＳＲＡＭ３０に送る（Ｓ２２）。ＳＲＡＭ３０において、このアドレスに対応するエラーを含む３２ビットのデータが読み出され、ＥＣＣ部２０へ転送される（Ｓ２３）。ＥＣＣ部２０は、転送されたデータのエラーを訂正し、このエラーが訂正されたデータは、ＥＣＣ部２０からＳＲＡＭ３０へ転送される（Ｓ２４）。ＳＲＡＭ３０は、この転送されたデータを前記アドレスに記憶する。
【００７７】
上記Ｓ１９−１〜Ｓ２４までの動作が、ページバッファ１２のセクタ１〜セクタ８まで繰り返される（Ｓ２５）。この動作が行われた後、ＳＲＡＭ３０に記憶されたデータが読み出され、Ｉ／Ｆ部４０からホスト機器に転送される（Ｓ２６）。
【００７８】
＜ＥＣＣ付きＮＡＮＤモードのデータ転送動作＞  
図６は、ＥＣＣ付きＮＡＮＤモードのデータ転送動作を概略的に示している。前述したように、ＥＣＣ付きＮＡＮＤモードは、ＥＣＣ部２０で生成したパリティデータをページバッファ１２に書き戻す動作としてのパリティ・ライト・バック、及びＥＣＣ部２０で訂正したデータをページバッファ１２に書き戻す動作としてのコレクトを含んでいる。
【００７９】
＜パリティ・ライト・バック＞  
図６、図７を参照してパリティ・ライト・バックについて説明する。尚、図６において、図１、図３と同一部分には同一符号を付している。また、図６において、Ｓ３１、Ｓ３２…は、データ及び信号の転送順序を示している。
【００８０】
ＥＣＣ付きＮＡＮＤモードにおいて、ホスト機器から供給される書き込みデータは、データ転送部１７を介してページバッファ１２に供給される。このページバッファ１２に保持されたデータがＥＣＣ部２０に転送され、パリティデータが生成される。この生成されたパリティデータがページバッファ１２にライト・バックされる。
【００８１】
図７に示すように、各セクタは、３２ビットのデータＤ０〜Ｄ１３１を含んでいる。前述したように、このうち、例えばデータＤ１２９、Ｄ１３０、Ｄ１３１がパリティデータである。このパリティデータは、ＥＣＣ部２０において、データＤ０〜Ｄ１２８のデータに基づき生成される。この生成されたパリティデータＤ１２９、Ｄ１３０、Ｄ１３１がＥＣＣ部２０からページバッファ１２にライト・バックされる。
【００８２】
上記動作を具体的に説明する。ホスト機器からコマンドＣＭＤ（８０ｈ）＋アドレス＋データがＩ／Ｆ部４０に供給されると、コマンドは、コントローラ４内のレジスタ６０に供給される。このコマンドに基づき、コントローラ４により、制御信号が生成され、書き込みデータがデータバスＤＩＲを介してＩ／Ｆ部４０からページバッファ１２に転送される（Ｓ３１）。ここで、コマンド（８０ｈ）は、ライトコマンドを示し、“ｈ”は１６進数を示している。このコマンドが供給されると、ホスト機器からＩ／Ｆ部４０に供給されたデータは、ＥＣＣ部２０を通らず、データバスＤＩＲ、ラッチ回路１７ｃを介してデータ転送部１７を介して直接ページバッファ１２に転送される。
【００８３】
この後、例えばオートプログラムの実行を示すＣＭＤ（１０ｈ）がホスト機器から供給されると、ページバッファ１２から１セクタ分のデータがデータ転送部１７を介してＥＣＣ部２０に転送される。すなわち、３２ビットのデータが１３２回（３２ビット×１３２回）、データ転送部１７を介してＥＣＣ部２０に転送される。ＥＣＣ部２０は、この転送されたデータに基づき、パリティデータを生成する（Ｓ３２）。
【００８４】
次に、ＥＣＣ部２０において生成されたパリティデータＤ１２９、１３０、１３１が、ページバッファ１２へ転送される（Ｓ３３）。この場合、図７に示すように、先ず、カラムアドレスＣＯＬＡＤＤ＿Ｌをローレベル、クロック信号ＣＬＫ２＿Ｌをローレベルとし、ロワー側のデータＤ１２８の転送を禁止した状態で、カラムアドレスＣＯＬＡＤＤ＿Ｕがハイレベルとされ、クロック信号ＣＬＫ２＿Ｕに基づき、アッパー側の３２ビットのデータＤ１２９がページバッファ１２に転送される。ここで、ロワー側のデータとは、６４ビット（２つの３２ビット）のデータのうち、０〜３１ビットのデータであり、アッパー側のデータとは、３２〜６３ビットのデータを言う。
【００８５】
次いで、カラムアドレスＣＯＬＡＤＤ＿Ｌ、ＣＯＬＡＤＤ＿Ｕがハイレベルとされ、クロック信号ＣＬＫ２＿Ｌ、ＣＬＫ２＿Ｕに基づき、ロワー及びアッパーを含む６４ビットのデータＤ１３０、Ｄ１３１がページバッファ１２に転送される。
【００８６】
すなわち、ＮＡＮＤシーケンサ１４は、コントローラ４の制御に基づき、先ず、パリティデータのうち、単位転送ビット数（６４ビット）の１／２（３２ビット）のデータを転送するためのアドレス及びクロック信号を生成し、この後、単位転送ビット数のデータを転送するためのアドレス及びクロック信号を生成する。換言すれば、ＮＡＮＤシーケンサ１４は、パリティデータのうち、１／３のデータを先ず転送し、この後、２／３のデータを転送するためのアドレス及びクロック信号を生成する。
【００８７】
尚、パリティデータは、Ｄ１２９、１３０、１３１に限定されるものではなく、データ数を変更することも可能である。
【００８８】
上記のようにして、パリティデータＤ１２９、１３０、１３１がデータ転送部１７を介して、ページバッファ１２にライト・バックされる。
【００８９】
上記Ｓ３２、Ｓ３３の動作が、セクタ１からセクタ８まで繰り返し実行される（Ｓ３４）。このようにして、ページバッファ１２のセクタ毎に、書き込みデータにパリティデータが付加される。この後、ページバッファ１２のデータがプログラム動作により、ＮＡＮＤセルアレイ１０に書き込まれる（Ｓ３５）。
【００９０】
上記のように、３２ビットのデータＤ１２９を先ず転送し、この後、６４ビットのデータＤ１３０、Ｄ１３１を転送している。仮に、６４ビットのデータを２回転送しようとした場合、つまり、Ｄ１２８、Ｄ１２９、Ｄ１３０、Ｄ１３１のデータを転送する場合、ＥＣＣ部２０内に、データＤ１２８を保持するためのレジスタを設ける必要がある。しかし、パリティデータＤ１２９、Ｄ１３０、Ｄ１３１を上記のように転送するにより、余計なレジスタを設ける必要がなくなる。このため、回路面積の増大を抑制することが可能である。
【００９１】
＜コレクト＞
次に、図６、図８、図９を参照してＥＣＣ付きＮＡＮＤモードのコレクト動作について説明する。
【００９２】
例えばデータの読み出し動作時において、ＮＡＮＤセルアレイ１０から読み出されたデータは、ページバッファ１２に供給される。読み出されたデータに対するＥＣＣ処理は、ページバッファ１２からデータ転送部１７を介してＥＣＣ部２０にデータが転送され、ＥＣＣ部２０において行われる。ＥＣＣ部２０において、データからエラーが検出された場合、エラーを含む３２ビットのデータのみが訂正され、ページバッファ１２に書き戻される。
【００９３】
具体的には、ホスト機器からリードコマンド（００ｈ−３０ｈ）が供給されると、ＮＡＮＤセルアレイ１０からページバッファ１２へデータが読み出される（Ｓ３６）。
【００９４】
次いで、ＯｎｅＮＡＮＤモードのロードと同様の動作が実行される。すなわち、ページバッファ１２に保持されたデータが３２ビットずつ１３２回（３２ビット×１３２回）読み出され、データ転送部１７に転送される。このデータ転送部１７に保持されたデータは、ＥＣＣ部２０に転送される（Ｓ３７）。すなわち、クロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕに基づき、データ伝送部１７のラッチ部１７ａに保持されたデータが、データバスＮＡＮＤ＿ＲＷＤを介してＥＣＣ部２０に転送される。
【００９５】
ＥＣＣ部２０は、１セクタ分のデータ毎にエラー検出処理を行う。ＥＣＣ部２０において、転送されたデータよりエラーが検出された場合、このエラーを含むデータのアドレスがコントローラ４に供給される（Ｓ３８）。
【００９６】
コントローラ４は、供給されたエラーアドレスとロワー(lower)信号、又はアッパー(upper)信号をデータ転送部１７に供給する。ここで、ロワー信号は、６４ビット（２つの３４ビット）のデータのうち、０〜３１ビットのデータを選択する信号であり、アッパー信号は、３２〜６３ビットのデータを選択するための信号である。
【００９７】
データ転送部１７は、供給されたロワー信号、又はアッパー信号を保持し、アドレスは、ページバッファ１２に転送する（Ｓ４０）。ページバッファ１２は、供給されたアドレスに基づきエラーを含む３２ビットのデータに対応するカラムを選択する。
【００９８】
この選択されたエラーを含む３２ビットのデータは、データ転送部１７に転送される（Ｓ４１）。さらに、このデータは、ＥＣＣ部２０に転送され、ＥＣＣ部２０において、エラー訂正が実行される。
【００９９】
例えばロワー側（０〜３１ビット）のデータからエラーが検出された場合、クロック信号ＣＬＫ１＿Ｌに基づき、エラーを含むデータが、データバスＮＡＮＤ＿ＲＷＤを介してＥＣＣ部２０に転送され、エラー訂正が実行される。
【０１００】
図８に示すように、ＥＣＣ部２０でエラー訂正されたデータ(Correct Data)は、クロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕに基づき、データバスＮＡＮＤ＿ＲＷＤを介してデータ転送部１７に転送される。このとき、ロワー側のデータＤＡＴＡ＿Ｌが訂正された場合、アッパー側のデータＤＡＴＡ＿Ｕは、無効とされる。
【０１０１】
次いで、カラムアドレスＣＯＬＡＤＤ＿Ｕ、及びクロック信号ＣＬＫ２＿Ｕをローレベルとした状態において、カラムアドレスＣＯＬＡＤＤ＿Ｌがハイレベルとされ、クロック信号ＣＬＫ２＿Ｌに基づき、データ転送部１７に保持された訂正されたデータがデータバスＩＯ＿Ｌ１〜ＩＯ＿Ｌ４を介してページバッファ１２に転送される（Ｓ４２）。このようにして、ＥＣＣ部２０により訂正された３２ビットのデータがページバッファ１２にライト・バックされる。
【０１０２】
また、前記Ｓ４１において、図９に示すように、ＥＣＣ部２０でアッパー側のデータがエラー訂正された場合、エラー訂正されたデータは、クロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕに基づき、データバスＮＡＮＤ＿ＲＷＤを介してデータ転送部１７に転送される。この場合、ロワー側のデータが訂正された場合と、クロック信号ＣＬＫ１＿Ｌ、ＣＬＫ１＿Ｕの生成タイミングが異なっている。
【０１０３】
すなわち、ロワー側のデータが訂正された場合、先ず、図８に示すように、クロック信号ＣＬＫ１＿Ｌが生成され、この後、クロック信号ＣＬＫ１＿Ｕが生成された。これに対して、アッパー側のデータが訂正された場合、図９に示すように、先ず、クロック信号ＣＬＫ１＿Ｕが生成され、この後、クロック信号ＣＬＫ１＿Ｌが生成される。つまり、アッパー側のデータが訂正された場合、クロック信号ＣＬＫ１＿Ｕがクロック信号ＣＬＫ１＿Ｌより先に発生される。このため、ロワー側のデータの転送タイミング分だけ待つことなく、アッパー側の訂正されたデータを転送することができる。したがって、高速なデータ転送が可能となる。
【０１０４】
尚、アッパー側のデータＤＡＴＡ＿Ｕが訂正された場合、ロワー側のデータＤＡＴＡ＿Ｌは、無効とされる。
【０１０５】
次いで、カラムアドレスＣＯＬＡＤＤ＿Ｌ、及びクロック信号ＣＬＫ２＿Ｌをローレベルとした状態において、カラムアドレスＣＯＬＡＤＤ＿Ｕがハイレベルとされ、クロック信号ＣＬＫ２＿Ｕに基づき、データ転送部１７に保持された訂正されたデータがデータバスＩＯ＿Ｕ１〜ＩＯ＿Ｕ４を介してページバッファ１２に転送される（Ｓ４２）。このようにして、ＥＣＣ部２０により訂正された３２ビットのデータがページバッファ１２にライト・バックされる。
【０１０６】
上記Ｓ３７〜Ｓ４２の動作が繰り返され、セクタ１〜セクタ８のデータに含まれるエラーが訂正され、この訂正されたデータがページバッファ１２にライト・バックされる（Ｓ４３）。
【０１０７】
この後、ホスト機器より、リードコマンド及びアドレス（ＣＭＤ（０５ｈ）＋ＡＤＤ×２＋ＣＭＤ（Ｅ０ｈ））（（０５ｈ）、（Ｅ０ｈ）はリードコマンドを示している）が供給されると、ページバッファ１２に保持された訂正済みのデータがデータバスＤＩＲ、Ｉ／Ｆ部４０を介してホスト機器に転送される（Ｓ４５）。
【０１０８】
上記実施形態によれば、データ転送部１７を用いることより、ＯｎｅＮＡＮＤモードのプログラム動作を用いることにより、ＥＣＣ付きＮＡＮＤモードにおいて、パリティデータの生成、及び生成されたパリティデータのライト・バックを実現することができる。
【０１０９】
しかも、データ転送部１７は、３２ビット×３のパリティデータのうち、アドレスの制御により、３２ビットのデータＤ１２９をページバッファ１２に転送し、この後、残り６４ビットのパリティデータＤ１３０、Ｄ１３１をページバッファ１２に転送している。このため、６４ビットのデータを２回転送する場合に比べて、３２ビットのデータを保持するレジスタを削減することができる。したがって、回路面積の増大を防止することが可能である。
【０１１０】
また、データ転送部１７は、ＥＣＣ付きＮＡＮＤモードにおいて、エラー訂正後の３２ビットのロワー側データ、又はアッパー側データのみを、カラムアドレスＣＯＬＡＤＤ＿Ｌ、ＣＯＬＡＤＤ＿Ｕの制御により、ページバッファ１２にライト・バックしている。このため、回路面積の増大を防止することが可能である。
【０１１１】
さらに、ＥＣＣ部２０でアッパー側のデータがエラー訂正された場合、先ず、クロック信号ＣＬＫ１＿Ｕが生成され、この後、クロック信号ＣＬＫ１＿Ｌが生成される。このため、ロワー側のデータの転送タイミング分だけ待つことなく、アッパー側の訂正されたデータをデータ転送部１７に転送することができる。したがって、ＥＣＣ部２０からデータ転送部１７に高速にデータ転送を行うことが可能となる。
【０１１２】
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１１３】
１…半導体記憶装置、２…ＮＡＮＤ型フラッシュメモリ、４…コントローラ、１０…ＮＡＮＤセルアレイ、１２…ページバッファ、１７…データ転送部、２０…ＥＣＣ部、３０…ＳＲＡＭ、ＤＩＲ…データバス。
【図１】
2012133843.tif 000003
【図２】
2012133843.tif 000004
【図３】
2012133843.tif 000005
【図４】
2012133843.tif 000006
【図５】
2012133843.tif 000007
【図６】
2012133843.tif 000008
【図７】
2012133843.tif 000009
【図８】
2012133843.tif 000010
【図９】
2012133843.tif 000011