(57)【要約】【課題】本発明は、ＮＡＮＤメモリを使用した制御システムにおいて、誤り訂正回路の付加に伴う、誤り訂正にかかる処理時間および消費電力の増大を抑制できるようにする。【解決手段】たとえば、ＮＡＮＤメモリ１１には誤り検出回路１１ｂを、そのコントローラ１２にはＥＣＣ回路１２ａを、それぞれ設ける。ページコピー動作において、コピー元Ｐａより読み出したページデータの誤りが誤り検出回路１１ｂによって検出された場合には、その読み出したページデータをコントローラ１２に転送し、ＥＣＣ回路１２ａによる誤り訂正処理を行った後、メモリセルアレイのコピー先Ｐｂにコピーする。これに対し、誤りが検出されない場合には、コントローラ１２に転送することなく、その読み出したページデータをメモリセルアレイのコピー先Ｐｂにそのままコピーする。【選択図】      図１
2009301194.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込みおよび読み出しが可能なメモリセルアレイ、および、前記メモリセルアレイより読み出されたデータの誤り検出を行う誤り検出回路、を備える半導体記憶装置と、
前記半導体記憶装置からのデータを取り込み、前記誤り検出回路での誤り検出処理の結果に応じて、前記データに対して誤り訂正処理を施す誤り訂正機能を有する制御装置と
を具備し、
前記制御装置は、データのコピー時に、前記誤り検出処理の結果より前記データに対する誤り訂正処理が必要と判断した場合には、前記半導体記憶装置からの前記データを取り込んで前記誤り訂正処理を施した後、その誤り訂正処理を施した後のデータを用いて前記データのコピー動作を実行するように前記半導体記憶装置を制御し、前記誤り検出処理の結果より前記データに対する誤り訂正処理が不要と判断した場合には、前記半導体記憶装置からの前記データを取り込むことなく、前記データのコピー動作を実行するように前記半導体記憶装置を制御することを特徴とする半導体記憶装置の制御システム。
【請求項２】
データの書き込みおよび読み出しが可能なメモリセルアレイ、および、前記メモリセルアレイより読み出されたデータに対して第１レベルの誤り訂正処理を施す誤り訂正回路、を備える半導体記憶装置と、
前記半導体記憶装置からのデータを取り込み、その取り込んだ前記データに対して、前記誤り訂正回路での前記第１レベルの誤り訂正処理よりも高度な第２レベルの誤り訂正処理を施す誤り訂正機能を有する制御装置と
を具備し、
前記制御装置は、データのコピー時に、前記誤り訂正回路での前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が必要と判断した場合には、前記半導体記憶装置からの前記データを取り込んで前記第２レベルの誤り訂正処理を施した後、その第２レベルの誤り訂正処理を施した後のデータを用いて前記データのコピー動作を実行するように前記半導体記憶装置を制御し、前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が不要と判断した場合には、前記半導体記憶装置からの前記データを取り込むことなく、前記データのコピー動作を実行するように前記半導体記憶装置を制御することを特徴とする半導体記憶装置の制御システム。
【請求項３】
データの書き込みおよび読み出しが可能なメモリセルアレイ、および、前記メモリセルアレイより読み出されたデータに対して第１レベルの誤り訂正処理を施す誤り訂正回路、を備える半導体記憶装置と、
前記半導体記憶装置からのデータを取り込み、その取り込んだ前記データに対して、前記誤り訂正回路での前記第１レベルの誤り訂正処理よりも高度な第２レベルの誤り訂正処理を施す誤り訂正機能を有する制御装置と
を具備し、
前記制御装置は、データのリード時に、前記誤り訂正回路での前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が必要と判断した場合には、前記半導体記憶装置からの前記データを取り込んで前記第２レベルの誤り訂正処理を施した後、その第２レベルの誤り訂正処理を施した後のデータを外部装置に出力し、前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が不要と判断した場合には、前記半導体記憶装置からの前記データに対する前記第２レベルの誤り訂正処理を省略するようにしたことを特徴とする半導体記憶装置の制御システム。
【請求項４】
前記半導体記憶装置は、前記メモリセルアレイに対するデータの書き込みおよび読み出しをページ単位で行うことを特徴とする請求項１、２または３に記載の半導体記憶装置の制御システム。
【請求項５】
前記半導体記憶装置の制御システムは、外部装置に装着もしくは内蔵された状態で使用されることを特徴とする請求項１、２または３に記載の半導体記憶装置の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置の制御システムに関するもので、たとえば、ＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略記する）を備えた制御システムに関する。
【背景技術】
【０００２】
近年、ＮＡＮＤメモリにおいては、微細化および大容量化にともなって、一般的に誤り発生率が増加している。これに対応するため、ＮＡＮＤメモリとこのＮＡＮＤメモリを制御するコントローラとを備えた制御システムにあっては、誤り訂正機能（ＥＣＣ回路）が付加されている。
【０００３】
しかしながら、より高度（高精度）な誤り訂正機能を付加しようとする場合には、回路規模の増加とともに、誤り訂正にかかる処理時間および消費電力の増大が懸念される。
【０００４】
特に、誤り訂正処理は、回路規模および処理時間などの問題から、ＮＡＮＤメモリでは行わず、通常はコントローラ側で行われる。そのため、誤り訂正処理を行う場合には、ＮＡＮＤメモリからコントローラへ、データおよびＥＣＣ符号の転送が必要になる。つまり、ＮＡＮＤメモリは誤り訂正機能を有しておらず、コントローラがＮＡＮＤメモリからデータとそのデータに付加されたＥＣＣ符号とを読み出して、ＥＣＣ回路に供給する。そして、このＥＣＣ回路において、ＥＣＣ符号から誤りデータ（ビットエラー）を判別して、その誤りデータを訂正する。
【０００５】
このように、従来の制御システムにおいては、誤り訂正処理を行うために、ＮＡＮＤメモリからコントローラへデータを転送する必要があった。そのため、ＮＡＮＤメモリ上でデータをコピーするコピー動作の場合にも、コントローラは、一旦、ＮＡＮＤメモリからデータを読み出さなければならない。ところが、ＮＡＮＤメモリのコピー元より読み出したデータが誤り訂正処理の必要がないものの場合、たとえば、誤りデータがない、もしくは、データ上の誤りが、制御システムの誤り訂正能力に対して許容できる程度のものの場合、誤り訂正処理は行われない。つまり、コピー元より読み出したデータが、そのままコピー先のデータとして、ＮＡＮＤメモリ上に新たに書き込まれる。この場合、ＮＡＮＤメモリからコントローラへのデータの転送は、コピー動作において、まったく無駄な動作となる。
【０００６】
なお、ＮＡＮＤ型の不揮発性メモリにおいて、１ページ分の読み出しデータの一部のデータの書き換えを行って、異なるページに書き込むページコピー機能に関しては、すでによく知られている（たとえば、特許文献１参照）。
【０００７】
上記したように、従来の、ＮＡＮＤメモリを備えた制御システムにおいては、効率的な誤り訂正処理が行えないばかりか、より高度な誤り訂正処理を可能にしようとする場合に、回路規模の増加、並びに、誤り訂正にかかる処理時間および消費電力の増大が懸念されていた。
【特許文献１】特開２００６−２０９９６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記の問題点を解決すべくなされたもので、回路規模の増加、並びに、誤り訂正にかかる処理時間および消費電力の増大を抑えつつ、より高度で、かつ、効率的に誤り訂正処理を行うことが可能な半導体記憶装置の制御システムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、データの書き込みおよび読み出しが可能なメモリセルアレイ、および、前記メモリセルアレイより読み出されたデータの誤り検出を行う誤り検出回路、を備える半導体記憶装置と、前記半導体記憶装置からのデータを取り込み、前記誤り検出回路での誤り検出処理の結果に応じて、前記データに対して誤り訂正処理を施す誤り訂正機能を有する制御装置とを具備し、前記制御装置は、データのコピー時に、前記誤り検出処理の結果より前記データに対する誤り訂正処理が必要と判断した場合には、前記半導体記憶装置からの前記データを取り込んで前記誤り訂正処理を施した後、その誤り訂正処理を施した後のデータを用いて前記データのコピー動作を実行するように前記半導体記憶装置を制御し、前記誤り検出処理の結果より前記データに対する誤り訂正処理が不要と判断した場合には、前記半導体記憶装置からの前記データを取り込むことなく、前記データのコピー動作を実行するように前記半導体記憶装置を制御することを特徴とする半導体記憶装置の制御システムが提供される。
【００１０】
また、本願発明の一態様によれば、データの書き込みおよび読み出しが可能なメモリセルアレイ、および、前記メモリセルアレイより読み出されたデータに対して第１レベルの誤り訂正処理を施す誤り訂正回路、を備える半導体記憶装置と、前記半導体記憶装置からのデータを取り込み、その取り込んだ前記データに対して、前記誤り訂正回路での前記第１レベルの誤り訂正処理よりも高度な第２レベルの誤り訂正処理を施す誤り訂正機能を有する制御装置とを具備し、前記制御装置は、データのコピー時に、前記誤り訂正回路での前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が必要と判断した場合には、前記半導体記憶装置からの前記データを取り込んで前記第２レベルの誤り訂正処理を施した後、その第２レベルの誤り訂正処理を施した後のデータを用いて前記データのコピー動作を実行するように前記半導体記憶装置を制御し、前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が不要と判断した場合には、前記半導体記憶装置からの前記データを取り込むことなく、前記データのコピー動作を実行するように前記半導体記憶装置を制御することを特徴とする半導体記憶装置の制御システムが提供される。
【００１１】
さらに、本願発明の一態様によれば、データの書き込みおよび読み出しが可能なメモリセルアレイ、および、前記メモリセルアレイより読み出されたデータに対して第１レベルの誤り訂正処理を施す誤り訂正回路、を備える半導体記憶装置と、前記半導体記憶装置からのデータを取り込み、その取り込んだ前記データに対して、前記誤り訂正回路での前記第１レベルの誤り訂正処理よりも高度な第２レベルの誤り訂正処理を施す誤り訂正機能を有する制御装置とを具備し、前記制御装置は、データのリード時に、前記誤り訂正回路での前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が必要と判断した場合には、前記半導体記憶装置からの前記データを取り込んで前記第２レベルの誤り訂正処理を施した後、その第２レベルの誤り訂正処理を施した後のデータを外部装置に出力し、前記第１レベルの誤り訂正処理の結果より前記データに対する前記第２レベルの誤り訂正処理が不要と判断した場合には、前記半導体記憶装置からの前記データに対する前記第２レベルの誤り訂正処理を省略するようにしたことを特徴とする半導体記憶装置の制御システムが提供される。
【発明の効果】
【００１２】
上記の構成により、回路規模の増加、並びに、誤り訂正にかかる処理時間および消費電力の増大を抑えつつ、より高度で、かつ、効率的に誤り訂正処理を行うことが可能な半導体記憶装置の制御システムを提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。ただし、図面は模式的なものであり、各図面の寸法および比率などは現実のものとは異なることに留意すべきである。また、図面の相互間においても、互いの寸法の関係および／または比率が異なる部分が含まれていることは勿論である。特に、以下に示すいくつかの実施の形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。この発明の技術思想は、その要旨を逸脱しない範囲において、種々の変更を加えることができる。
【００１４】
［第１の実施形態］
図１は、本発明の第１の実施形態にしたがった、半導体記憶装置の制御システムの構成例を示すものである。なお、ここでは、不揮発性の半導体記憶装置を、誤り検出回路を備えるＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略記する）とした場合について説明する。
【００１５】
図１に示すように、本実施形態の制御システム１０は、ＮＡＮＤメモリ（チップ）１１と、そのコントローラ（ＮＡＮＤメモリ制御装置）１２と、を有して構成されている。この制御システム１０は、外部装置としてのホスト機器１００に接続（内蔵もしくは装着）されている。
【００１６】
ＮＡＮＤメモリ１１は、メモリセルアレイ部１１ａ、誤り検出回路１１ｂ、入出力インターフェイス部１１ｃ、および、ステートマシン（図示していない）を有している。メモリセルアレイ部１１ａは、データを記憶するためのものであって、メモリセルアレイ、カラム制御回路、ロウ制御回路、および、データ入出力バッファなどを有して構成されている（いずれも図示していない）。メモリセルアレイは、たとえばマトリクス状に配置された複数のメモリセルを有している。複数のメモリセルに対しては、データの書き込みおよび読み出しがページ単位で行われる。また、データの消去は、ページよりも大きなブロック単位で行われる。
【００１７】
なお、メモリセルアレイには、データとともに、当該データに対応する誤り検出符号と誤り訂正符号（ＥＣＣ符号）とが記憶される。たとえば、誤り検出符号はＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号などであり、誤り訂正符号はＬＤＰＣ（Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−ｃｈｅｃｋ  Ｃｏｄｅ）符号、ＢＣＨ符号、または、リードソロモン符号などである。また、このＮＡＮＤメモリ１１は、後述するページコピー機能を有している。
【００１８】
ここで、誤り検出符号を付加するのは、ＮＡＮＤメモリ１１であってもよいし、コントローラ１２であってもよい。ＮＡＮＤメモリ１１が採用する誤り検出方式に合わせて、コントローラ１２が誤り検出符号を生成して付加するか、コントローラ１２は意識せず、ＮＡＮＤメモリ１１が内部で誤り検出符号を生成して付加するかの、２通りが考えられる。
【００１９】
ただし、ＮＡＮＤメモリ１１で誤り検出符号を付加するようにした場合、特に、コピー動作ではデータキャッシュ上のデータをコピー先のページに書き込むが、書き込むデータに誤りがない、あるいは、訂正処理が不要（誤りが許容できる範囲内）であれば、その際には新たな誤り検出符号を付加しない。つまり、コントローラ１２よりデータ入力があった場合のみ、ＮＡＮＤメモリ１１は、誤り検出符号の付加を行う。なぜなら、コントローラ１２が許容できる誤りと判定した（実際には、誤りが発生している）場合、ＮＡＮＤメモリ１１で新たな誤り検出符号を付加すると、もとのデータと異なる誤り検出符号を付加することになり、誤り検出の意義が失われてしまうからである。
【００２０】
誤り検出回路１１ｂは、誤り訂正処理のための誤り検出機能を有し、たとえば、メモリセルアレイに記憶されているデータを読み出す際に、そのデータ上における誤り（ビットエラー）を検出するものである。この誤り検出回路１１ｂは、誤り検出処理の結果である誤り検出情報をコントローラ１２に通知する機能を有している。たとえば、この誤り検出情報は、ビットエラーの有無およびビットエラーの位置または個数を含んでいる。
【００２１】
入出力インターフェイス部１１ｃは、データの書き込み時には、コントローラ１２より供給される書き込み用のライトコマンドにしたがって、コントローラ１２からの書き込み用のデータおよび誤り訂正符号と誤り検出符号とを、メモリセルアレイ部１１ａに出力する。データの読み出し時には、コントローラ１２より供給される読み出し用のリードコマンドにしたがって、メモリセルアレイ部１１ａから読み出されたデータおよび誤り訂正符号と誤り検出符号とを、コントローラ１２に出力する。なお、入出力インターフェイス部１１ｃは、データなどを一時的に保持する機能（データキャッシュ）を有している。
【００２２】
ステートマシンは、コントローラ１２からのコマンドにしたがって各部を制御するもので、たとえばメモリセルアレイ部１１ａに対し、データの書き込み、読み出し、または、ページコピーなどの動作（機能）を実行するようになっている。
【００２３】
一方、コントローラ１２は、誤り訂正機能部（ＥＣＣ回路）１２ａ、バッファ１２ｂ、ワーク用メモリ（ＲＡＭ）１２ｃ、ＲＯＭ１２ｄ、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２ｅ、ホストインターフェイス（Ｉ／Ｆ）モジュール１２ｆ、および、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを有して構成されている。
【００２４】
コントローラ１２は、主に、ＮＡＮＤメモリ１１の内部の物理状態（たとえば、どこのブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、どこのブロックが消去状態であるかなど）を管理するものである。
【００２５】
ＥＣＣ回路１２ａは、制御システム１０として必要な、より高度な訂正能力（たとえば、８ビットの復号能力）を有するものであって、データの読み出し時に、メモリセルアレイ部１１ａに格納されたデータおよび誤り訂正符号と誤り検出符号とを読み込み、読み込んだデータに対して、適宜、誤り訂正処理を実行するものである。なお、コピー時に、ＭＰＵ１２ｅにおいて、上記誤り検出情報から、読み出されたデータには誤りがない、もしくは、ＥＣＣ回路１２ａの誤り訂正能力に対して、ビットエラーの個数が許容できる程度に十分に少ない、と判断された場合には、このＥＣＣ回路１２ａでの誤り訂正処理は省略される。また、データの読み出し時においても、読み出されたデータに誤りがない場合に限らず、許容できる程度の誤りであって、誤り訂正処理が必要ない場合には、ＥＣＣ回路１２ａでの誤り訂正処理を省略させることも可能である。
【００２６】
バッファ１２ｂは、ＮＡＮＤメモリ１１のメモリセルアレイ部１１ａに書き込むためのデータ、メモリセルアレイ部１１ａより読み出されたＮＡＮＤメモリ１１からのデータ、および、ＥＣＣ回路１２ａによって誤り訂正処理が施された後のデータなどを格納するためのものである。このバッファ１２ｂには、ＮＡＮＤメモリ１１およびＥＣＣ回路１２ａのほか、ＲＡＭ１２ｃおよびホスト機器１００などが接続されている。
【００２７】
ＲＡＭ１２ｃは、ＭＰＵ１２ｅの作業エリアとして使用されるものであって、ファームウェア（制御用プログラム）の一部および各種のテーブル（表）などを格納するのに用いられる。
【００２８】
ＲＯＭ１２ｄは、ＭＰＵ１２ｅによって制御されるファームウェアなどを記憶するためのものである。
【００２９】
ＭＰＵ１２ｅは、ＲＯＭ１２ｄ内のファームウェアおよびＲＡＭ１２ｃに格納されたテーブルなどを使用して、ホスト機器１００からの要求に応じた処理を行うもので、たとえば、ホスト機器１００からの書き込みコマンド、読み出しコマンド、または、消去コマンドを受け取り、そのコマンドに応じた所定の処理をＮＡＮＤメモリ１１に実行させたり、バッファ１２ｂを用いてのデータ転送処理を制御したりするものである。また、ＭＰＵ１２ｅは、誤り検出回路１１ｂからの誤り検出情報をもとに誤り訂正処理の必要性を判断し、ＥＣＣ回路１２ａに誤り訂正処理を実行させたり、省略させたりする。
【００３０】
ホストＩ／Ｆモジュール１２ｆは、コントローラ１２とホスト機器１００との間のインターフェイス処理を行うものである。
【００３１】
ＮＡＮＤメモリＩ／Ｆモジュール１２ｇは、コントローラ１２とＮＡＮＤメモリ１１との間のインターフェイス処理を行うものである。
【００３２】
ホスト機器１００は、この制御システム１０を使用するものであって、コントローラ１２を介して、ＮＡＮＤメモリ１１を利用するようになっている。
【００３３】
次に、上記した構成の制御システム１０（コントローラ１２）の基本動作について、簡単に説明する。
【００３４】
図２は、データ書き込み時のデータの流れを示すものである。すなわち、データ書き込み時は、ホスト機器１００からのデータを、ホストＩ／Ｆモジュール１２ｆを介して、バッファ１２ｂ内に格納する（Ｗ１）。そして、バッファ１２ｂよりＥＣＣ回路１２ａにデータを送り、たとえば、当該データに対する誤り訂正符号と誤り検出符号とを付加する。この後、誤り訂正符号と誤り検出符号とが付加されたデータを、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介してＮＡＮＤメモリ１１に送り、メモリセルアレイ部１１ａ内の指定のアドレス（ページ）に書き込む（以上、Ｗ２）。
【００３５】
図３は、データ読み出し時のデータの流れを示すものである。すなわち、データ読み出し時は、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介して、ＮＡＮＤメモリ１１内よりデータおよび誤り訂正符号と誤り検出符号とを読み出す。そして、そのデータをバッファ１２ｂに格納するとともに、誤り訂正符号と誤り検出符号とをＥＣＣ回路１２ａに供給する（Ｒ１）。すると、ＥＣＣ回路１２ａが、誤り訂正符号と誤り検出符号とから誤りを判別し、その結果をもとに、バッファ１２ｂ内のデータを訂正する（Ｒ２）。この後、バッファ１２ｂ内に格納されているデータを、ホストＩ／Ｆモジュール１２ｆを介してホスト機器１００に転送する（Ｒ３）。
【００３６】
次に、図１および図４を参照して、上記した構成の制御システム１０におけるページコピー動作について説明する。なお、図４は、このページコピー動作にかかるコマンドシーケンスを示すものである。
【００３７】
たとえば、ホスト機器１００より、制御システム１０に対して、ライト動作のための要求が出されたとする。すると、コントローラ１２は、ホスト機器１００からの要求を受け取り、そのライトコマンドおよび書き込み用のデータからページコピー動作の必要性を判断すると、ＮＡＮＤメモリ１１を制御して、ＮＡＮＤメモリ１１にページコピー動作を行わせる。
【００３８】
すなわち、コントローラ１２からの指示（図４のコピーコマンド（ＣＭＤ）１）が、ＮＡＮＤメモリ１１に送られる。すると、この指示は、ＮＡＮＤメモリ１１のステートマシンに取り込まれる。これにより、ＮＡＮＤメモリ１１では、まず、メモリセルアレイ部１１ａが制御される。メモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、読み出しページアドレス（読ページＡＤＤＲ）に対応する、メモリセルアレイのコピー元のページＰａよりデータ（ページデータ）および誤り訂正符号と誤り検出符号とを読み出す。そして、そのページデータおよび誤り訂正符号と誤り検出符号とを、誤り検出回路１１ｂを介して、入出力インターフェイス部１１ｃに出力する（Ｃ１）。
【００３９】
誤り検出回路１１ｂは、メモリセルアレイのコピー元のページＰａより読み出されたページデータに対して誤り検出処理を行う。そして、その結果（誤り検出情報）を、たとえばコントローラ１２からのステータスリードコマンドに応じて、ＭＰＵ１２ｅに通知する（Ｃ２）。なお、この誤り検出情報は、コントローラ１２が読み出すようにしてもよい。
【００４０】
ＭＰＵ１２ｅにおいて、上記誤り検出情報から、コピー元のページＰａより読み出されたページデータには誤りがない、もしくは、誤り訂正処理は不要であると判断されたとする（ＰＡＳＳ）。すると、コントローラ１２は、ＮＡＮＤメモリ１１にページデータの書き込み（コピー）を指示する（図４のコピーコマンド２）。これにより、ＮＡＮＤメモリ１１のメモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、書き込みページアドレス（書ページＡＤＤＲ）に対応する、メモリセルアレイのコピー先のページＰｂにデータを書き込む（Ｃ３）。この場合、ページＰｂへのデータの書き込みは、入出力インターフェイス部１１ｃに保持されているページデータおよび誤り訂正符号と誤り検出符号とを用いて行われる。つまり、ページＰｂに対しては、コピー元のページＰａより読み出されたページデータおよび誤り訂正符号と誤り検出符号とがそのまま書き戻される。
【００４１】
その後、ＮＡＮＤメモリ１１は、たとえばコントローラ１２からのステータスリードコマンドに応じて、データコピーの結果（ライト結果）をコントローラ１２に出力する。
【００４２】
一方、ＭＰＵ１２ｅにおいて、上記誤り検出情報から、コピー元のページＰａより読み出されたページデータに誤りがあり、誤り訂正処理が必要であると判断されたとする（ＦＡＩＬ）。すると、コントローラ１２は、メモリセルアレイのコピー元のページＰａより読み出され、入出力インターフェイス部１１ｃに保持されているページデータをＮＡＮＤメモリ１１から取り込み、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介して、バッファ１２ｂに格納するとともに、誤り訂正符号および誤り検出符号をＥＣＣ回路１２ａに供給する（Ｃ４）。
【００４３】
これにより、ＥＣＣ回路１２ａは、誤り訂正符号および誤り検出符号から誤りを判別し、バッファ１２ｂ上のページデータに対する誤り訂正処理を実行する（Ｃ５）。このとき、誤り検出情報が、たとえばビットエラーの位置に関する情報を含む場合には、その情報を誤り訂正処理に生かすことが可能である。
【００４４】
コントローラ１２は、ＥＣＣ回路１２ａでの、コピー元のページＰａより読み出されたページデータに対する誤り訂正処理が終了すると、その誤り訂正処理後のデータおよび誤り訂正符号と誤り検出符号とを、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介して、ＮＡＮＤメモリ１１に出力する。また、ＮＡＮＤメモリ１１に対し、誤り訂正処理後のデータの書き込みを指示する（コピーコマンド２）（Ｃ６）。
【００４５】
これにより、ＮＡＮＤメモリ１１のメモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、メモリセルアレイのコピー先のページＰｂにデータを書き込む。この場合、ページＰｂへのデータの書き込みは、コントローラ１２より入出力インターフェイス部１１ｃを介して供給される、ＥＣＣ回路１２ａによる誤り訂正処理後のデータおよび誤り訂正符号と誤り検出符号とを用いて行われる。
【００４６】
その後、ＮＡＮＤメモリ１１は、たとえばコントローラ１２からのステータスリードコマンドに応じて、ライト結果をコントローラ１２に出力する。
【００４７】
上記したように、ページコピー動作において、誤り訂正処理が不要と判断される場合には、コピー元より読み出したデータをコントローラに転送することなく、そのままコピー先に書き込むようにしている。すなわち、ＥＣＣ機能における誤り検出機能のみをＮＡＮＤメモリに持たせ、コピー元より読み出したデータに誤りがある、もしくは、データ上の誤りが、制御システムが備える誤り訂正能力に対して許容できない範囲の誤りである場合にかぎって、コントローラ側での誤り訂正処理を実行するようにしている。これにより、誤り検出の結果より誤り訂正処理が不要と判断される場合の、無駄なＮＡＮＤメモリからコントローラへのデータの転送および誤り訂正処理を省略できるようになる。その結果、データの転送および誤り訂正処理にかかる時間の短縮が可能となるとともに、データの転送および誤り訂正処理に要する消費電力をも削減することが可能となる。
【００４８】
特に、簡易な誤り検出機能を有し、その結果をコピー動作に利用するようにした従来のＮＡＮＤ型の半導体メモリに比べ、メリットは大きい。なぜならば、このＮＡＮＤ型の半導体メモリを使用した制御システムは、単に、コピー元より読み出したデータをコピーする際にデータの誤り検出を行うものであり、その際の誤り検出の結果は、データの書き込みが終了した後にコントローラに通知されるようになっている。このような制御システムの場合、誤りが検出されたとしても誤り訂正処理を施す機会がないため、誤りのあるデータがそのままコピーされる。一般に、ＮＡＮＤ型の半導体メモリはデータの上書きができないので、誤りが検出されたデータについては、コピー動作をやり直し、本実施形態に示したような誤り訂正処理を施した上で、改めてデータの書き込みを行うといったリカバリ動作が必要となる。なお、コントローラが誤り検出の結果を記憶しておき、後に、誤りが検出されたデータのコピー動作が指示された際に、本実施形態に示したような誤り訂正処理を施すことも可能である。しかし、そのコピー動作が指示されるまでの間に、誤りが加速する可能性があるため、確実（十分）な誤り訂正処理が行われるか懸念される。
【００４９】
なお、本実施形態においては、上述したコピー動作に限らず、リード動作の場合にも同様の効果が期待できる。
【００５０】
［第２の実施形態］
図５は、本発明の第２の実施形態にしたがった、半導体記憶装置の制御システムの構成例を示すものである。ここでは、不揮発性の半導体記憶装置を、簡易な誤り訂正回路を備えるＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略記する）とした場合について説明する。なお、図１に示した半導体記憶装置の制御システムと同一部分には同一の符号を付し、詳細な説明は割愛する。
【００５１】
図５に示すように、本実施形態の制御システム１０は、ＥＣＣ回路１１ｄを有して、ＮＡＮＤメモリ（チップ）１１’が構成されてなる点で、第１の実施形態にしたがった半導体記憶装置の制御システムと大きく相違している。すなわち、ＮＡＮＤメモリ１１’には、誤り検出回路に代えて、ＥＣＣ回路１１ｄが設けられている。ＥＣＣ回路１１ｄは、たとえば、メモリセルアレイに記憶されているデータを読み出す際に、そのデータ上における誤り（ビットエラー）を訂正するものである。このＥＣＣ回路１１ｄは、誤り訂正処理の結果である誤り訂正情報をコントローラ１２に通知する機能を有している。
【００５２】
なお、本実施形態においては、ＮＡＮＤメモリ１１’のＥＣＣ回路１１ｄは簡易な誤り訂正能力（たとえば、通常時に必要な１，２ビット程度の復号能力）を有して構成されている。これに対し、コントローラ１２のＥＣＣ回路１２ａは、より高度な誤り訂正能力（たとえば、８ビットの復号能力）を有して構成されている。つまり、ＮＡＮＤメモリ１１’のＥＣＣ回路１１ｄで訂正可能なエラービットの個数よりも、コントローラ１２のＥＣＣ回路１２ａで訂正可能なエラービットの個数の方が多くなるように構成されている。これにより、データ上の誤りが、ＥＣＣ回路１１ｄによる処理によって誤り訂正可能な場合には、ＥＣＣ回路１２ａでの誤り訂正処理を省略することが可能となる。
【００５３】
次に、上記した構成の制御システム１０の動作について説明する。ここでは、ページコピー動作について説明する。なお、図６は、このページコピー動作にかかるコマンドシーケンスを示すものである。
【００５４】
たとえば、ホスト機器１００より、制御システム１０に対して、ライト動作のための要求が出されたとする。すると、コントローラ１２は、そのライトコマンドおよび書き込み用のデータなどからページコピー動作の必要性を判断し、必要な場合にはＮＡＮＤメモリ１１’を制御して、ＮＡＮＤメモリ１１’にページコピー動作を行わせる。
【００５５】
すなわち、コントローラ１２からの指示（コピーコマンド（ＣＭＤ）１）が、ＮＡＮＤメモリ１１’のステートマシンに取り込まれる。これにより、ＮＡＮＤメモリ１１’では、まず、メモリセルアレイ部１１ａが制御される。メモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、読み出しページアドレス（読ページＡＤＤＲ）に対応する、メモリセルアレイのコピー元のページＰａよりデータ（ページデータ）および第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを読み出す。そして、そのページデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを、ＥＣＣ回路１１ｄを介して、入出力インターフェイス部１１ｃに出力する（Ｃ１１）。
【００５６】
ここで、第１の誤り訂正符号および第１の誤り検出符号はＥＣＣ回路１１ｄでの誤り訂正処理によるものであり、第２の誤り訂正符号および第２の誤り検出符号はＥＣＣ回路１２ａでの誤り訂正処理によるものであるとする。
【００５７】
ＥＣＣ回路１１ｄは、メモリセルアレイのコピー元のページＰａより読み出されたページデータに対し、第１の誤り訂正符号および第１の誤り検出符号をもとに、可能であれば誤り訂正処理を行う（Ｃ１２）。そして、その結果（誤り訂正情報）を、たとえばコントローラ１２からのステータスリードコマンドに応じて、ＭＰＵ１２ｅに通知する（Ｃ１３）。なお、この誤り訂正情報は、コントローラ１２が読み出すようにしてもよい。
【００５８】
ＭＰＵ１２ｅにおいて、上記誤り訂正情報から、コピー元のページＰａより読み出されたページデータには誤りがない（または、誤りは許容範囲内）、もしくは、誤りはＥＣＣ回路１１ｄによって訂正できたと判断したとする（ＰＡＳＳ）。すると、コントローラ１２は、ＮＡＮＤメモリ１１’にページデータの書き込み（コピー）を指示する（コピーコマンド２）。これにより、ＮＡＮＤメモリ１１’のメモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、書き込みページアドレス（書ページＡＤＤＲ）に対応する、メモリセルアレイのコピー先のページＰｂにデータを書き込む（Ｃ１４）。この場合、ページＰｂへのデータのコピーは、入出力インターフェイス部１１ｃに保持されている、コピー元のページＰａより読み出されたページデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号、もしくは、ＥＣＣ回路１１ｄによる誤り訂正処理後のデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを用いて行われる。つまり、ページＰｂに対しては、コピー元のページＰａより読み出されたページデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とがそのまま、もしくは、ＥＣＣ回路１１ｄでの簡易な誤り訂正処理が施された後のデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とが、書き戻される。
【００５９】
その後、ＮＡＮＤメモリ１１’は、たとえばコントローラ１２からのステータスリードコマンドに応じて、データコピーの結果（ライト結果）をコントローラ１２に出力する。
【００６０】
一方、ＭＰＵ１２ｅにおいて、上記誤り訂正情報から、コピー元のページＰａより読み出されたページデータの誤りはＥＣＣ回路１１ｄによって訂正しきれず、誤り訂正不能であると判断したとする（ＦＡＩＬ）。すると、コントローラ１２は、メモリセルアレイのコピー元のページＰａより読み出され、入出力インターフェイス部１１ｃに保持されているページデータをＮＡＮＤメモリ１１’から取り込み、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介して、バッファ１２ｂに格納するとともに、第１，第２の誤り訂正符号と第１，第２の誤り検出符号とをＥＣＣ回路１２ａに供給する（Ｃ１５）。
【００６１】
これにより、ＥＣＣ回路１２ａは、第２の誤り訂正符号および第２の誤り検出符号から誤りを判別し、バッファ１２ｂ上のページデータに対する誤り訂正処理を実行する（Ｃ１６）。
【００６２】
コントローラ１２は、ＥＣＣ回路１２ａでの、コピー元のページＰａより読み出されたページデータに対する誤り訂正処理が終了すると、その誤り訂正処理後のデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介して、ＮＡＮＤメモリ１１’に出力する。また、ＮＡＮＤメモリ１１’に対し、誤り訂正処理後のデータの書き込みを指示する（コピーコマンド２）（Ｃ１７）。
【００６３】
これにより、ＮＡＮＤメモリ１１’のメモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、書き込みページアドレス（書ページＡＤＤＲ）に対応する、メモリセルアレイのコピー先のページＰｂにデータを書き込む。この場合、ページＰｂへのデータの書き込みは、コントローラ１２より入出力インターフェイス部１１ｃを介して供給される、ＥＣＣ回路１２ａによる誤り訂正処理後のデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを用いて行われる。
【００６４】
その後、ＮＡＮＤメモリ１１’は、たとえばコントローラ１２からのステータスリードコマンドに応じて、ライト結果をコントローラ１２に出力する。
【００６５】
次に、上記した構成の制御システム１０の他の動作について説明する。ここでは、リード動作について説明する。なお、図７は、このリード動作を説明するために示す構成図であり、図８は、このリード動作にかかるコマンドシーケンスを示すものである。
【００６６】
たとえば、ホスト機器１００より、制御システム１０に対して、リード動作のための要求が出されたとする。すると、コントローラ１２は、ＮＡＮＤメモリ１１’を制御して、ＮＡＮＤメモリ１１’にリード動作を行わせる。
【００６７】
すなわち、コントローラ１２からの指示（リードコマンド（ＣＭＤ）１）が、ＮＡＮＤメモリ１１’のステートマシンに取り込まれる。これにより、ＮＡＮＤメモリ１１’では、まず、メモリセルアレイ部１１ａが制御される。メモリセルアレイ部１１ａは、コントローラ１２からの指示に応じて、読み出しページアドレス（読ページＡＤＤＲ）に対応する、メモリセルアレイのリード対象ページＰよりデータ（ページデータ）および第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを読み出す。そして、そのページデータおよび第１，第２の誤り訂正符号と第１，第２の誤り検出符号とを、ＥＣＣ回路１１ｄを介して、入出力インターフェイス部１１ｃに出力する（Ｒ１１）。
【００６８】
ＥＣＣ回路１１ｄは、メモリセルアレイのリード対象ページＰより読み出されたページデータに対し、第１の誤り訂正符号および第１の誤り検出符号をもとに、可能であれば誤り訂正処理を行う（Ｒ１２）。そして、その結果（誤り訂正情報）を、たとえばコントローラ１２からのステータスリードコマンドに応じて、ＭＰＵ１２ｅに通知する（Ｒ１３）。なお、この誤り訂正情報は、コントローラ１２が読み出すようにしてもよい。
【００６９】
ＭＰＵ１２ｅにおいて、上記誤り訂正情報から、リード対象ページＰより読み出されたページデータには誤りがない（または、誤りは許容範囲内）、もしくは、誤りはＥＣＣ回路１１ｄによって訂正できたと判断したとする（ＰＡＳＳ）。すると、コントローラ１２は、ＮＡＮＤメモリ１１’にページデータの出力を指示する（リードコマンド２）。これにより、ＮＡＮＤメモリ１１’は、コントローラ１２からの指示に応じて、入出力インターフェイス部１１ｃに保持されている、リード対象ページＰより読み出されたデータ、もしくは、ＥＣＣ回路１１ｄによる誤り訂正処理後のデータを、コントローラ１２に出力する。この場合、リード対象ページＰより読み出されたページデータがそのまま、もしくは、ＥＣＣ回路１１ｄでの簡易な誤り訂正処理が施された後のデータが、コントローラ１２のバッファ１２ｂに読み出される（Ｒ１４）。
【００７０】
その後、コントローラ１２は、このリード動作により読み出したデータをホスト機器１００に出力する（Ｒ１５）。
【００７１】
一方、ＭＰＵ１２ｅにおいて、上記誤り訂正情報から、リード対象ページＰより読み出されたページデータの誤りはＥＣＣ回路１１ｄによって訂正しきれず、誤り訂正不能であると判断したとする（ＦＡＩＬ）。すると、コントローラ１２は、ＮＡＮＤメモリ１１’にページデータの出力を指示する（リードコマンド３）。この場合、コントローラ１２は、たとえば図３に示したように、メモリセルアレイのリード対象ページＰより読み出され、入出力インターフェイス部１１ｃに保持されているページデータをＮＡＮＤメモリ１１’から取り込み、ＮＡＮＤメモリＩ／Ｆモジュール１２ｇを介して、バッファ１２ｂに格納するとともに、第１，第２の誤り訂正符号と第１，第２の誤り検出符号とをＥＣＣ回路１２ａに供給する（Ｒ１）。
【００７２】
これにより、ＥＣＣ回路１２ａは、第２の誤り訂正符号および第２の誤り検出符号から誤りを判別し、バッファ１２ｂ上のページデータに対して、より高度な誤り訂正処理を実行する（Ｒ２）。
【００７３】
コントローラ１２は、ＥＣＣ回路１２ａでの、リード対象ページＰより読み出されたページデータに対する誤り訂正処理が終了すると、その誤り訂正処理後のデータをホスト機器１００に出力する（Ｒ３）。
【００７４】
上記したように、ページコピー動作およびリード動作において、ＮＡＮＤメモリの簡易な誤り訂正回路での誤り訂正処理が不能と判断される場合にのみ、ＮＡＮＤメモリからのデータをコントローラに転送し、より高度な誤り訂正機構部での誤り訂正処理を行うようにしている。すなわち、簡易なＥＣＣ機能をＮＡＮＤメモリに持たせ、コントローラには、ＮＡＮＤメモリのＥＣＣ機能よりも、より高度なＥＣＣ機能を持たせ、ＮＡＮＤメモリでの誤り訂正処理が不能な場合にかぎって、コントローラ側での誤り訂正処理を実行するようにしている。これにより、簡易な誤り訂正回路での処理による誤り訂正が可能な場合の、無駄なＮＡＮＤメモリからコントローラへのデータの転送および誤り訂正処理を省略できるようになる。その結果、データの転送および誤り訂正処理にかかる時間の短縮が可能となるとともに、データの転送および誤り訂正処理に要する消費電力をも削減することが可能となる。したがって、かかるページコピー動作およびリード動作において、誤り訂正処理を効率的に行うことが可能となるだけでなく、より高度な誤り訂正処理を可能とする場合にも、システムとして必要な誤り訂正能力に見合った誤り訂正機能をＮＡＮＤメモリに持たせる場合と比較して、回路規模の増加、並びに、誤り訂正にかかる処理時間および消費電力の増大を抑えることが可能となるものである。
【００７５】
特に、リード動作時においては、ＮＡＮＤメモリでの誤り訂正処理が可能な場合、コントローラでの誤り訂正処理を省略できるようになる結果、第１，第２の誤り訂正符号および第１，第２の誤り検出符号の転送が不要となる。
【００７６】
なお、上記した各実施形態においては、いずれもページコピー動作を例に説明したが、これに限らず、ブロック単位でのコピー動作において、誤りのあるカラムのデータだけを誤り訂正処理してコピーする場合にも同様に適用できる。また、同様に、セクタ単位でのコピー動作にも適用できる。
【００７７】
さらに、ＮＡＮＤメモリに記憶されるデータとしては、制御システムの内部管理情報（論理／物理アドレス変換テーブルなど）であってもよく、本実施形態は、たとえば図９に示すように、ＮＡＭＤメモリ１１’に格納されている内部管理情報をＲＡＭ１２ｃに読み出す場合にも同様に適用できる。
【００７８】
また、いずれの実施形態においても、コントローラは、高度なＥＣＣ回路での誤り訂正処理の結果、および、ＮＡＮＤメモリからの簡易な誤り訂正処理の結果を、ステータスとしてホスト機器に出力する機能を備える構成としてもよい。
【００７９】
その他、本願発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。たとえば、各実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（の少なくとも１つ）が得られる場合には、その構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００８０】
【図１】本発明の第１の実施形態にしたがった、半導体記憶装置の制御システムの構成例を示すブロック図。
【図２】データ書き込み時のデータの流れを説明するために示す制御システムのブロック図。
【図３】データ読み出し時のデータの流れを説明するために示す制御システムのブロック図。
【図４】図１に示した制御システムでのページコピー動作を説明するための、コマンドシーケンスを示す図。
【図５】本発明の第２の実施形態にしたがった、半導体記憶装置の制御システムの構成例を示すブロック図。
【図６】図５に示した制御システムでのページコピー動作を説明するための、コマンドシーケンスを示す図。
【図７】図５に示した制御システムでのリード動作を説明するために示すブロック図。
【図８】図５に示した制御システムでのリード動作を説明するための、コマンドシーケンスを示す図。
【図９】図５に示した制御システムでの内部管理情報の読み出しにかかる動作を説明するために示すブロック図。
【符号の説明】
【００８１】
１０…制御システム、１１，１１’…ＮＡＮＤメモリ、１１ａ…メモリセルアレイ部、１１ｂ…誤り検出回路、１１ｄ…ＥＣＣ回路（簡易型）、１２…コントローラ、１２ａ…ＥＣＣ回路（高度型）、１２ｂ…バッファ、１２ｅ…ＭＰＵ、１００…ホスト機器。
【図１】
2009301194.tif 000003
【図２】
2009301194.tif 000004
【図３】
2009301194.tif 000005
【図４】
2009301194.tif 000006
【図５】
2009301194.tif 000007
【図６】
2009301194.tif 000008
【図７】
2009301194.tif 000009
【図８】
2009301194.tif 000010
【図９】
2009301194.tif 000011