(57)【特許請求の範囲】
【請求項１】
半導体メモリと、該半導体メモリを制御するメモリコントローラとを有する記憶装置であって、
前記半導体メモリは複数の物理ページを有し、
前記物理ページはデータ部と管理部とを有し、
前記データ部には、固有の論理アドレスを有するデータを、前記管理部には管理データを格納し、
前記メモリコントローラは、スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、
前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する
ことを特徴とする記憶装置。
【請求項２】
前記半導体メモリが不揮発性メモリであり、
前記物理ページが前記不揮発性メモリの書き込み単位である
ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記不揮発性メモリがＮＡＮＤタイプのフラッシュメモリである
ことを特徴とする請求項２に記載の記憶装置。
【請求項４】
前記ＮＡＮＤタイプのフラッシュメモリが多値メモリセルからなる
ことを特徴とする請求項３に記載の記憶装置。
【請求項５】
前記記憶装置が、着脱可能なメモリーカードであることを特徴とする請求項１に記載の記憶装置。
【請求項６】
複数の物理ページを有する半導体メモリに対して書き込み読み出しを行うメモリコントローラであって、
スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、
前記物理ページをデータ部と管理部に分けて管理し、
前記データ部には、固有の論理アドレスを有するデータを、前記管理部には管理データを格納し、
前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する
ことを特徴とするメモリコントローラ。
【請求項７】
前記半導体メモリが不揮発性メモリであり、
前記物理ページが前記不揮発性メモリの書き込み単位である
ことを特徴とする請求項６に記載のメモリコントローラ。
【請求項８】
前記不揮発性メモリがＮＡＮＤタイプのフラッシュメモリである
ことを特徴とする請求項７に記載のメモリコントローラ。
【請求項９】
前記ＮＡＮＤタイプのフラッシュメモリが多値メモリセルからなる
ことを特徴とする請求項８に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の半導体メモリを用いた記憶装置、および、半導体メモリを制御するメモリコントローラに関する。
【背景技術】
【０００２】
近年、書き換え可能な不揮発性メモリであるＮＡＮＤタイプのフラッシュメモリを搭載した不揮発性記憶装置が種々の分野で広く利用されている。例えばメモリーカードはデジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。不揮発性記憶装置は、半導体により構成されており、プロセスの微細化に伴いそのビット単価が低下している。このことから、不揮発性記憶装置は、安価な記憶デバイスとして、メモリーカード以外にも利用されるようになってきている。例えばハードディスク・ドライブ（ＨＤＤ）に代えて利用されるソリッドステート・ドライブ（ＳＳＤ）や、ホスト機器に直接搭載するメモリとして利用されるようになってきている。
【０００３】
しかしながら、プロセスの微細化は、フラッシュメモリの信頼性の低下を招く。例えば、プロセスの微細化に伴い、情報を記憶するための電子の数が少なくなるので、リテンション、リードディスターブ、プログラムディスターブ等の種々の劣化要因に対するマージンが少なくなり、フラッシュメモリの不良が発生しやすくなる。フラッシュメモリにおける種々の劣化要因に対して信頼性を向上させる技術として種々の技術が提案されている。例えば特許文献１には、フラッシュメモリに書き込むデータをスクランブルすることによってプログラムディスターブやリードディスターブ等の問題を緩和する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１９８２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された技術では、フラッシュメモリのページ間のコピーが同一グループのワード線間に制限されている。また、特許文献１には、上記制限を解消可能な技術として、書き込みデータと共にスクランブルシードデータを書き込むという技術がさらに開示されている。しかし、このような技術ではスクランブルシードの信頼性を如何に確保するかという課題がある。
【０００６】
本発明は、フラッシュメモリのページ間のコピーに制限を生じさせることなく、かつ信頼性を確保しつつ、データに対するスクランブルを実行可能な記憶装置およびメモリコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
この目的を達成するために、第１の態様の記憶装置は、半導体メモリと、該半導体メモリを制御するメモリコントローラとを有する。前記半導体メモリは複数の物理ページを有し、前記物理ページはデータ部と管理部とを有し、前記データ部には、固有の論理アドレスを有するデータを、前記管理部には管理データを格納し、前記メモリコントローラは、スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する。
【０００８】
また、上記目的を達成するために、第２の態様のメモリコントローラは、複数の物理ページからなる半導体メモリに対して書き込み読み出しを行う。メモリコントローラは、スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、前記物理ページをデータ部と管理部に分けて管理し、前記論理物理アドレス変換テーブルは、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持し、前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスにを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する。
【発明の効果】
【０００９】
第１、第２の態様の記憶装置及びメモリコントローラでは、スクランブルシードとして、データ部の論理アドレスまたは管理部の物理アドレスを利用する。これにより、データ部及び管理部がどの記憶領域に記憶されていようともその記憶領域の論理アドレスまたは物理アドレスに基づいてスクランブルシードを把握することができる。したがって、任意の物理ページから任意の物理ページへのデータのコピーを行った場合でも、読み込みの際、当該データのコピー先の論理アドレスまたは物理アドレスに基づいてスクランブルシードを把握しデスクランブルができる。このように、データの記憶領域（物理アドレス）が変化した場合でも、スクランブルシードを確実に把握することができるので、任意の物理ページから任意の物理ページへのデータのコピーが可能となる。なお、記憶装置の起動時においては、データ部及び管理部のいずれについても論理アドレスを把握することができない。そこで、本態様では、管理部のスクランブルシードとして物理アドレスを利用する。これにより、記憶装置の起動時等、論理アドレスを把握できないような場合でも、管理部のデータをデスクランブルして読み出すことができる。そして、読み出した管理部のデータを用いてデータ部の論理アドレスを把握し、以後、論理アドレスを利用してデータ部に対してスクランブル、デスクランブルを行って読み出し、書き込みを行うことが可能となる。さらに、スクランブルシードとして、データ部の論理アドレスまたは管理部の物理アドレスを利用することによれば、対応するアドレスのスクランブルシードを必ず把握することができるので、スクランブルを行う記憶装置の信頼性を確保することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１の記憶装置の構成を示す図
【図２】実施の形態１の半導体メモリの物理ブロックの構成を示す図
【図３】実施の形態１の半導体メモリの物理ページのデータフォーマットを示す図
【図４】実施の形態１の半導体メモリの初期化のフローチャート
【図５】実施の形態１の半導体メモリへのデータ書き込みのタイミングチャート
【図６】実施の形態１の半導体メモリへのデータ書き込みのフローチャート
【図７】実施の形態１の半導体メモリへのデータコピーのタイミングチャート
【図８】実施の形態１の半導体メモリへのデータコピーのフローチャート
【発明を実施するための形態】
【００１１】
１．構成
図面を参照して、好ましい実施形態を説明する。図１は、実施形態１の不揮発性記憶装置の構成を示す。不揮発性記憶装置は、メモリコントローラである不揮発性メモリコントローラ１０１と、不揮発性メモリ１０２とを有する。不揮発性メモリコントローラ１０１は、不揮発性メモリ１０２を制御し、不揮発性メモリ１０２にデータを不揮発で記憶させる。
【００１２】
図１において、不揮発性メモリ１０２への書き込みデータの流れを斜線模様の矢印で、不揮発性メモリ１０２からの読み出しデータの流れをドット模様の矢印で示す。
【００１３】
不揮発性メモリコントローラ１０１は、不揮発性メモリインターフェース１０３（以降、「不揮発性メモリＩ／Ｆ１０３」という）、バッファメモリ１０６、ＭＰＵ１０７、論物変換テーブル１０８、書き換え回数管理テーブル１０９、不良ブロックテーブル１１０、管理情報レジスタ１１４、データセレクタ１１５、スクランブル処理部１１６、ＥＣＣセレクタ１１７、デスクランブル処理部１１８、スクランブルパターン生成部１１９、シードセレクタ１２０、論理アドレスレジスタ１２１、物理アドレスレジスタ１２２、誤り訂正符号生成部１２３、及び誤り検出訂正部１２４を有する。
【００１４】
不揮発性メモリＩ／Ｆ１０３は、不揮発性メモリコントローラ１０１内部において不揮発性メモリ１０２を制御するインターフェース（以降、Ｉ／Ｆと記載）である。不揮発性メモリＩ／Ｆ１０３はコマンドアドレス制御部１０４とデータ制御部１０５とを有する。コマンドアドレス制御部１０４は、不揮発性メモリ１０２に対してコマンドやアドレスを発行する。コマンドには、書き込みを指示するコマンド、読み出しを指示するコマンド、消去を指示するコマンド、及びそれぞれの処理の対象アドレスを指定するコマンド等がある。データ制御部１０５は、不揮発性メモリ１０２に対して書き込みを行うデータや、不揮発性メモリ１０２から読み出したデータの転送を制御する。
【００１５】
バッファメモリ１０６は、不揮発性メモリ１０２に対して書き込みを行うデータや、不揮発性メモリ１０２から読み出したデータを一時的に格納する。バッファメモリ１０６から不揮発性メモリ１０２に転送して書き込むデータのことを以降セクターデータと表現する。
【００１６】
ＭＰＵ１０７は、不揮発性メモリコントローラ１０１全体の制御を行う制御回路である。論物変換テーブル１０８、書き換え回数管理テーブル１０９、及び不良ブロックテーブル１１０は、ＭＰＵ１０７が不揮発性メモリ１０２を制御するために使用され、各種情報を格納する。これらのテーブル１０８、１０９、１１０は、例えば揮発性のメモリを利用して構成される。
【００１７】
論物変換テーブル１０８は、不揮発性メモリコントローラ１０１においてセクターデータの記録位置を管理するための論理アドレスと、このセクターデータの不揮発性メモリ１０２内での実記録位置を示す物理アドレスとの対応を管理するテーブルである。この論物変換テーブル１０８を利用することにより、所定の論理アドレスに対応するデータが不揮発性メモリ１０２のどの物理ページに格納されているかを知ることができる。
【００１８】
書き換え回数管理テーブル１０９は、不揮発性メモリ１０２内の各物理ブロックのデータ書き換えの回数を管理するテーブルである。書き換え回数管理テーブル１０９は、物理アドレスと、この物理アドレスに対応する物理ブロックの書き換え回数とを記録する。
【００１９】
不良ブロックテーブル１１０は、不揮発性メモリ１０２内の物理ブロックのうち書き込みや読み出し等が所定の条件を満たさない不良ブロックの物理アドレスを管理するテーブルである。
【００２０】
管理情報レジスタ１１４は、不揮発性メモリ１０２に書き込む管理データを一時格納するためのレジスタである。
【００２１】
データセレクタ１１５は、バッファメモリ１０６からのセクターデータと、管理情報レジスタ１１４からの管理データとのうちの一方のデータを選択して出力する。
【００２２】
スクランブル処理部１１６は、データセレクタ１１５で選択されて出力されたデータにスクランブル処理を施す。
【００２３】
誤り訂正符号生成部１２３は、スクランブル処理部１１６からのスクランブルされたデータを基に誤り訂正符号を生成する。
【００２４】
ＥＣＣセレクタ１１７は、スクランブル処理部１１６からのスクランブルされたデータと、誤り訂正符号生成部１２３からの誤り訂正符号とのうちの一方のデータを選択して出力する。
【００２５】
誤り検出訂正部１２４は、不揮発性メモリ１０２から読み出されたデータと誤り訂正符号をデータ制御部１０５から受け取って、誤りを検出すると共に誤り位置の演算を行う。誤り検出訂正部１２４はバッファメモリ１０６に転送されたデータの誤りについても訂正する。誤りを訂正するために使用される情報は所定のアドレスと所定の反転パターンで得られる。よって、デスクランブル処理部１１８で行われるデスクランブル処理と誤り訂正処理の適用順序は可換である。
【００２６】
デスクランブル処理部１１８は、不揮発性メモリ１０２から読み出したデータをデスクランブル処理する。
【００２７】
スクランブルパターン生成部１１９は、スクランブルパターンを生成し、この生成したスクランブルパターンをスクランブル処理部１１６およびデスクランブル処理部１１８に供給する。特許文献１に記載のスクランブル処理の様にビット毎の正転、反転のスクランブルを行う場合には、スクランブル処理部１１６で使用するスクランブルパターンとデスクランブル処理部１１８で使用するスクランブルパターンとして同じものを利用できる。
【００２８】
論理アドレスレジスタ１２１は、データを格納するページの論理アドレスを格納する。
【００２９】
物理アドレスレジスタ１２２は、データを格納するページの物理アドレスを格納する。シードセレクタ１２０は、論理アドレスレジスタ１２１に格納されている論理アドレスと物理アドレスレジスタ１２２に格納されている物理アドレスとのうちの一方のアドレスを選択してスクランブルパターン生成部１１９に出力する。シードセレクタ１２０はスクランブルパターン生成部１１９にスクランブルのシード値を供給する。
【００３０】
不揮発性メモリ１０２は、外部インタフェース１１１（以降、「外部Ｉ／Ｆ１１１」という）、メモリ制御回路１１２、複数の物理ブロック１１３、及びページバッファ１２５を有する。
【００３１】
外部Ｉ／Ｆ１１１は、不揮発性メモリコントローラ１０１との間のデータ転送を制御する。
【００３２】
メモリ制御回路１１２は、不揮発性メモリ１０２内の各部を制御する。
【００３３】
物理ブロック１１３は、メモリセルアレイである。本実施形態では、物理ブロック１１３は、＃０〜＃２０４７の２０４８個存在する。以降、物理ブロック１１３を、適宜、物理ブロック＃０〜＃２０４７という。これらの物理ブロック＃０〜＃２０４７は不揮発性メモリ１０２においてデータの消去単位となる。
【００３４】
図２は図１の物理ブロック１１３の構成を示した図である。物理ブロック１１３は、物理ページ２０１を有する。本実施形態では、物理ブロック１１３は、＃０〜＃１２７の１２８個の物理ページ２０１を有する。以降、物理ページ２０１を、適宜、物理ページ＃０〜＃１２７という。従って、不揮発性メモリ１０２は、全部で２６２１４４個（＝２０４８物理ブロック×１２８物理ページ）の物理ページ２０１を有する。物理ページ２０１は、不揮発性メモリ１０２におけるデータの書き込み単位である。
【００３５】
ページバッファ１２５は、物理ページ２０１の容量と等しい容量を持つ。不揮発性メモリ１０２は、物理ブロック１１３へのデータの書き込みを行う際、書き込みを行うデータを、ページバッファ１２５に一時的に格納すると同時に書き込み対象の物理ページに書き込む。不揮発性メモリ１０２は、読み出しを行う際、物理ページ２０１からデータを読み出してページバッファ１２５に一時的に格納する。
【００３６】
また、不揮発性メモリ１０２は、物理ページ２０１間でデータのコピーを行う際、コピー元の物理ページ２０１のデータをページバッファ１２５に一時的に格納した後、このデータをコピー先の物理ページ２０１に書き込む。なお、データのコピーに際し、不揮発性メモリ１０２の外部にデータを出力することなくコピーを行うことも可能である。しかし、不揮発性メモリ１０２内ではデータ保持の不良が発生している可能性がある。そこで、不揮発性メモリ１０２外部にデータを読み出して、誤り訂正のデータを不揮発性メモリ１０２に入力することでページバッファ１２５のデータを一部修正し、その後にコピー書き込みを行うようにしてもよい。
【００３７】
図３は、図２の物理ページ２０１（＃０〜＃１２７）に書き込まれるデータのデータフォーマットを示した図である。
【００３８】
物理ページに書き込まれるデータは、データ部３００と管理部３１０とで構成されている。データ部３００は、複数のセクターデータ３０１，３０２，…３０８とこれらのセクターデータ用の誤り訂正符号ＥＣＣ３１１，３１２，…３１８とで構成される。
【００３９】
セクターデータ３０１，３０２，…３０８は、不揮発性メモリコントローラ１０１のバッファメモリ１０６から転送されたデータである。誤り訂正符号３１１，３１２，…３１８は、セクターデータ３０１，３０２，…３０８をスクランブル処理部１１６でスクランブル処理したデータを元に誤り訂正符号生成部１２３で生成される。
【００４０】
管理部３１０は、管理データ３０９とＥＣＣ管理データ３１９とで構成される。
【００４１】
管理データ３０９は、不揮発性メモリコントローラ１０１の管理情報レジスタ１１４から転送されたデータである。
【００４２】
ＥＣＣ管理データ３１９は、管理データ３０９をスクランブル処理部１１６でスクランブル処理したデータを元に誤り訂正符号生成部１２３で生成した誤り訂正符号である。
【００４３】
ここで、データ部３００の容量は、例えば、各セクターデータ３０１，３０２，…３０８がそれぞれ４ＫＢｙｔｅｓ、セクターデータ３０１，３０２，…３０８に付与する誤り訂正符号３１１，３１２，…３１８がそれぞれ８０Ｂｙｔｅｓであり、一セクターデータと一誤り訂正符号とで合計４ＫＢｙｔｅｓ＋８０Ｂｙｔｅｓ程度である。管理部３１０の容量は、管理データ３０９と、管理データ３０９に付与するＥＣＣ管理データ（誤り訂正符号）３１９とで、例えば合計２０Ｂｙｔｅｓ程度である。
【００４４】
２．動作
次に、本実施形態の不揮発性記憶装置の動作について説明する。
２−１．起動時の動作
図４のフローチャートを参照して、不揮発性記憶装置の起動時の動作について説明する。起動時の動作は、不揮発性メモリコントローラ１０１による制御のもとに行われる。
【００４５】
まず、不揮発性メモリコントローラ１０１は、読み出し元の物理ブロックを設定する（Ｓ１１）。
【００４６】
次に、不揮発性メモリコントローラ１０１は、読み出し元の物理ページを設定する（Ｓ１２）。
【００４７】
次に、不揮発性メモリコントローラ１０１は、管理部３１０のデータを、管理部３１０のデータ記録位置を示す物理アドレスでデスクランブルして読み出す。そして、この管理部３１０の管理データ３０９から、セクターデータ部３００のデータ記録位置を示す論理アドレスを取得する（Ｓ１３）。ここで得られた物理アドレスと論理アドレスの関係を用いて、論物変換テーブル１０８のデータを作る。
【００４８】
次に、不揮発性メモリコントローラ１０１は、ステップＳ１１で設定した物理ブロックの中の全ての物理ページについてステップＳ１３の処理を実行したか判定する（Ｓ１４）。全ての物理ページの処理が終了していなければ、ステップＳ１２に戻って別の物理ページを設定し、以後、同様の処理を実行する。これに対し、全ての物理ページの処理が終了した場合、ステップＳ１５に移行する。
【００４９】
不揮発性メモリコントローラ１０１は、全ての物理ブロックについてステップＳ１３の処理を実行したか判定する（Ｓ１５）。全ての物理ブロックの処理が終了していなければ、ステップＳ１１に戻って別の物理ブロックを設定し、以後、同様の処理を実行する。これに対し、全ての物理ページの処理が終了した場合、ステップＳ１６に移行する。
【００５０】
ステップＳ１６以降、上記のようにして読み出した管理部３１０の管理データ３０９を利用して、セクターデータを、該データの読み込み元の論理アドレスでデスクランブルして読み出すことができる。  なお、ここではすべての物理ブロックのすべてのページを読み出すものとして説明しているが、論物変換テーブル１０８のデータを不揮発性メモリ１０２に格納している場合には、論物変換テーブル１０８のデータが格納された物理ブロックのみを検索するだけでよい。  また、その場合には論物変換テーブルのデータも所定の論理アドレスを持つ。
【００５１】
２−２．不揮発性メモリへの書き込み動作
図５は、不揮発性メモリコントローラ１０１が不揮発性メモリ１０２に対して１物理ページのデータを書き込む際のタイミングチャートを示した図である。図６は、不揮発性メモリ１０２への書き込み動作のフローチャートである。図５、図６を用いて不揮発性メモリ１０２にデータを書き込む際の不揮発性メモリコントローラ１０１の動作について説明する。ここで、不揮発性メモリコントローラ１０１内の動作は全てＭＰＵ１０７の制御の元に行われる。以後の説明において、セクターデータ、管理データ等の符号の記載は適宜省略する。
【００５２】
まず、不揮発性メモリコントローラ１０１は、書き込み先の物理アドレスを決定する（Ｓ２１）。
【００５３】
時刻ｔ４０１で、コマンドアドレス制御部１０４は不揮発性メモリ１０２に対して書き込みを開始することを示すコマンドを発行する（Ｓ２２）。次に時刻ｔ４０２でコマンドアドレス制御部１０４は、不揮発性メモリ１０２における書き込み対象の物理アドレスを、不揮発性メモリ１０２に発行する（Ｓ２３）。コマンド発行およびアドレス発行の処理は数クロックで実行可能である。
【００５４】
次に時刻ｔ４０３から、データ部３００のデータ（セクターデータと誤り訂正符号ＥＣＣ）の転送を開始する（Ｓ２４）。具体的には、セクターデータの転送に関しては、バッファメモリ１０６から出力されたセクターデータをデータセレクタ１１５で選択し、スクランブル処理部１１６でスクランブル処理し、ＥＣＣセレクタ１１７で選択し、データ制御部１０５から不揮発性メモリ１０２に転送する。これに対し、誤り訂正符号の転送に関しては、セクターデータの転送時に誤り訂正符号生成部１２３でスクランブル処理部１１６の出力を演算して誤り訂正符号を生成し、この生成された誤り訂正符号をＥＣＣセレクタ１１７で選択し、データ制御部１０５から不揮発性メモリ１０２に転送する。セクターデータの転送と誤り訂正符号の転送は交互に行う。時刻ｔ４０４でデータ部３００のデータの転送を完了する。このセクターデータの転送では、シードセレクタ１２０は、論理アドレスレジスタ１２１に格納されている論理アドレスをシード値としてスクランブル処理部１１６に供給する。スクランブルパターン生成部１１９は、この論理アドレスすなわち書き込み先の記憶領域の論理アドレスを元にスクランブルパターンを生成し、スクランブル処理部１１６に供給する。これにより、セクターデータに対して、書き込み先の論理アドレスをシード値としてスクランブル処理が行われたことになる。
【００５５】
次に時刻ｔ４０５で、コマンドアドレス制御部１０４は不揮発性メモリ１０２に対して管理データの先頭のアドレスを発行する（Ｓ２５）。
【００５６】
次に時刻ｔ４０６から、管理部３１０のデータ（管理データと誤り訂正符号ＥＣＣ）の転送を開始する（Ｓ２６）。具体的には、管理データの転送に関しては、管理情報レジスタ１１４に格納されている管理データをデータセレクタ１１５で選択し、書き込み先の物理アドレスを利用してスクランブルパターンを生成して、このスクランブルパターンを利用してスクランブル処理部１１６でスクランブル処理し、ＥＣＣセレクタ１１７で選択し、データ制御部１０５から不揮発性メモリ１０２に転送する。これに対し、誤り訂正符号の転送に関しては、管理データの転送時に誤り訂正符号生成部１２３でスクランブル処理部１１６の出力を演算して誤り訂正符号を生成し、この生成された誤り訂正符号をＥＣＣセレクタ１１７で選択し、データ制御部１０５から不揮発性メモリ１０２に転送する。管理データの転送では、シードセレクタ１２０は、物理アドレスレジスタ１２２に格納されている物理アドレスをシード値としてスクランブル処理部１１６に供給する。スクランブルパターン生成部１１９は、物理アドレスを元にスクランブルパターンを生成し、スクランブル処理部１１６に供給する。これにより、管理データに対して、書き込み先の物理アドレスをシード値としたスクランブル処理が行われたことになる。
【００５７】
時刻ｔ４０７で、管理部３１０のデータの転送を完了する。コマンドアドレス制御部１０４は、不揮発性メモリ１０２に対して書き込みを実行するコマンドを発行する（Ｓ２７）。この書き込み実行コマンドを受けて、不揮発性メモリ１０２は、ページバッファ１２５に格納されたデータを指定された物理ページに書き込む。
【００５８】
物理ページへの書き込みにおいて、管理部３１０のデータに対し論理アドレスをシード値として使用したスクランブルを行わないのは以下のような理由による。すなわち、不揮発性メモリ１０２を使用した不揮発性記憶装置では、書き込み読み出しのため、不揮発性メモリコントローラ１０１は、不揮発性メモリ１０２に含まれる各物理ブロック１１３の書き込み状態を知っておく必要がある。そのため、不揮発性メモリコントローラ１０１は、電源投入時、不揮発性メモリ１０２の管理部３１０にアクセスして、各物理ブロック２０１の書き込み状態を取得する。しかし、電源投入時には、不揮発性メモリコントローラ１０１は、管理部３１０の論理アドレスを知ることができない。このため、物理アドレスを利用して管理部３１０に格納されている管理データを取得する。そこで、管理部３１０に対しては、読み出し時に決定できる物理アドレスをスクランブルのシード値として使用する。
【００５９】
次に、未コピーの物理ページが存在するか判定する（Ｓ２８）。そして、未コピーの物理ページが存在しないときは、書き込み転送処理を終了し、存在するときは、ステップＳ２１に戻って、同様の処理を繰り返す。
【００６０】
ここで、本実施形態では、管理部３１０のスクランブルを、物理アドレスをシード値として行うことにより、物理ページ毎に、書き込みの状態を認識することができる。
【００６１】
２−３．不揮発性メモリ内のデータのコピー動作
図７は、図１の不揮発性記憶装置において、不揮発性メモリ１０２に書き込まれた一物理ページのデータを他の物理ページにコピーする（コピーバック）際のタイミングチャートである。図８は、不揮発性メモリ１０２に書き込まれた一物理ページのデータを他の物理ページにコピーするときのフローチャートである。図７、図８を用いて、不揮発性メモリ１０２のデータをコピーする際の不揮発性メモリコントローラ１０１の動作について説明する。
【００６２】
まず、不揮発性メモリコントローラ１０１は、コピー元及びコピー先の物理アドレスを決定する（Ｓ３１）。
【００６３】
時刻ｔ５０１で、不揮発性メモリコントローラ１０１のコマンドアドレス制御部１０４は、不揮発性メモリ１０２に対してコピー読み出しを開始することを示すコマンド（ＣＭＤ）を発行する（Ｓ３２）。
【００６４】
次に時刻ｔ５０２で、コマンドアドレス制御部１０４はコピー読み出しを行う不揮発性メモリ１０２の物理ページの物理アドレスを不揮発性メモリ１０２に対して発行する（Ｓ３３）。
【００６５】
次に時刻ｔ５０３から、不揮発性メモリコントローラ１０１は、データ部３００のセクターデータと誤り訂正符号の読み出し転送を開始する（Ｓ３４）。このデータの転送は、不揮発性メモリ１０２に格納されているセクターデータおよび誤り訂正符号をデータ制御部１０５で読み出す転送である。データ制御部１０５で読み出されたデータは、デスクランブル処理部１１８でコピー元の論理アドレスに基づいてデスクランブルして、バッファメモリ１０６に転送されるとともに、並行して誤り検出訂正部１２４に転送される。
【００６６】
時刻ｔ５０４で、データ部３００のデータの読み出し転送を完了する。この後、管理部３１０のデータのビット誤りの有無を確認するためのデータの読み出しは行わない。管理部３１０のデータは、コピー先の物理アドレスをシード値としてスクランブル処理を行って書き込まれ、データコピー時に全て書き換えられるからである。
【００６７】
次に時刻ｔ５０５で、コマンドアドレス制御部１０４は、不揮発性メモリ１０２に対してコピー書き込みを開始することを示すコマンドを発行する（Ｓ３５）。
【００６８】
次に時刻ｔ５０６で、コマンドアドレス制御部１０４は、コピー書き込みを行う不揮発性メモリ１０２の物理ページの物理アドレスを不揮発性メモリ１０２に対して発行する（Ｓ３６）。
【００６９】
ここで指定する物理アドレスは、時刻ｔ５０２で指定した物理アドレスによって制限されない。セクターデータをスクランブルするときのシード値として、コピー先の論理アドレスを利用しているので、任意の物理ページから任意の物理ページにデータをコピーしても、コピー先においてデータを読み出すときに、当該コピー先の論理アドレスを用いて正しくデスクランブル処理を行って、セクターデータを読み出すことができる。
【００７０】
次に時刻ｔ５０７から、不揮発性メモリコントローラ１０１は、管理部３１０に対応する管理データと誤り訂正符号（ＥＣＣ）の転送を開始する（Ｓ３７）。このデータの転送は、図４のｔ４０６からの転送と同様に行われる。スクランブルパターンは、物理アドレスレジスタ１２２の物理アドレスをシード値として生成される。
【００７１】
時刻ｔ５０８で、管理部３１０のデータの転送を完了する。
【００７２】
次に、不揮発性メモリコントローラ１０１は、セクターデータの読み出し時に誤りがあったかどうか判定する（Ｓ３８）。
【００７３】
ステップＳ３８の判定で誤りがなかった場合は、コマンドアドレス制御部１０４は、不揮発性メモリ１０２に対してコピー書き込みを実行するコマンドを発行する（Ｓ４０）。このコピー書き込み実行コマンドを受けて、不揮発性メモリ１０２は、ページバッファ１２５に格納されたデータを指定された物理ページに書き込む。
【００７４】
次に、不揮発性メモリコントローラ１０１は、未コピーの物理ページが存在するか判定する（Ｓ４１）。そして、未コピーの物理ページが存在しないときは、コピー処理を終了し、存在するときは、ステップＳ３１に戻って、同様の処理を繰り返す。
【００７５】
これに対し、ステップＳ３８の判定で誤りがあった場合は、不揮発性メモリコントローラ１０１は、セクターデータの誤り訂正転送を行う（Ｓ３９）。そして、前述のステップＳ４０、Ｓ４１を実行する。
【００７６】
３．まとめ
本実施形態の不揮発性記憶装置は、不揮発性メモリ１０２と、該不揮発性メモリ１０２を制御する不揮発性メモリコントローラ１０１とを有する。不揮発性メモリ１０２は複数の物理ページ２０１を有し、物理ページ２０１はデータ部３００と管理部３１０とを有し、データ部３００には、固有の論理アドレスを有するセクターデータ３０１〜３０８を、管理部３１０には管理データ３０９を格納する。不揮発性メモリコントローラ１０１は、スクランブルパターンを生成するスクランブルパターン生成部１１９と、スクランブルパターン生成部１１９で生成されたスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部１１６と、論理アドレスと不揮発性メモリ１０２の物理ページ２０１のアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブル１０８と、スクランブルパターン生成部１１９及びスクランブル処理部１１６を制御するＭＰＵ１０７とを備える。ＭＰＵ１０７は、データ部３００に対しては、データ部３００に固有の論理アドレスを基にしてスクランブルパターン生成部１１９でスクランブルパターンを生成し、スクランブルパターン生成部１１９で生成されたスクランブルパターンを用いてスクランブル処理部１１８でこの論理アドレスに対応するセクターデータをスクランブルし、管理部３１０に対しては、管理部３１０の書き込み先または読み出し元となる物理アドレスを基にしてスクランブルパターン生成部１１９でスクランブルパターンを生成し、スクランブルパターン生成部１１９で生成したスクランブルパターンを用いてスクランブル処理部１１６で管理データ３０９をスクランブルし、不揮発性メモリ１０２に対して書き込み読み出しを行うように制御する。
【００７７】
このように、本実施形態の記憶装置では、スクランブルシードとして、書き込み先または読み込み元の論理アドレスまたは物理アドレスを利用する。これにより、データ部がどの記憶領域に記憶されていようともその記憶領域の論理アドレスに基づいてスクランブルシードを把握することができる。したがって、任意の物理ページから任意の物理ページへのデータのコピーを行った場合でも、読み込みの際、当該データのコピー先の論理アドレスまたは物理アドレスに基づいてスクランブルシードを把握しデスクランブルができる。このように、データの記憶領域（物理アドレス）が変化した場合でも、スクランブルシードを確実に把握することができるので、任意の物理ページから任意の物理ページへのデータのコピーが可能となる。加えて、論理アドレスは、データ部のデータに対応しているので、任意の物理ページから任意の物理ページへのデータのコピーを行う際、スクランブルシードを変更する必要がない。したがって、読み出し時にデータが格納されているページバッファ１２５のデータをそのままデータ部のデータとして書き込める。つまり、スクランブル処理をやり直す必要がないので、データ部のデータを不揮発性メモリコントローラ１０１から不揮発性メモリ１０２に転送する必要がない。そのため、不揮発性メモリ１０２のページバッファ１２５を利用した高速なデータのコピー処理が可能となる。なお、記憶装置の起動時においては、データ部３００及び管理部３１０のいずれについても論理アドレスを把握することができない。そこで、本態様では、管理部３１０のスクランブルシードとして物理アドレスを利用する。これにより、記憶装置の起動時等、論理アドレスを把握できないような場合でも、管理部３１０のデータをデスクランブルして読み出すことができる。そして、読み出した管理部３１０の管理データ３０９を用いてデータ部３００のセクターデータの論理アドレスを把握し、以後、論理アドレスを利用してデータ部３００に対してスクランブル、デスクランブルを行って読み出し、書き込みを行うことが可能となる。さらに、スクランブルシードとして、データ部の論理アドレスまたは管理部の物理アドレスを利用することによれば、対応するアドレスのスクランブルシードを必ず把握することができ、かつデータ部のデータのスクランブルシードを変更する必要がないので、任意の物理ページ間でのデータのコピーを高速に行えるとともに、スクランブルを行うことで記憶装置の信頼性を確保することができる。
【産業上の利用可能性】
【００７８】
本発明は、半導体メモリを用いた記憶装置、および、メモリを制御するメモリコントローラにおいて広く利用することができる。
【符号の説明】
【００７９】
１０１    不揮発性メモリコントローラ
１０２    不揮発性メモリ
１０３    不揮発性メモリＩ／Ｆ
１０４    コマンドアドレス制御部
１０５    データ制御部
１０６    バッファメモリ
１０７    ＭＰＵ
１０８    論物変換テーブル
１０９    書き換え回数管理テーブル  
１１０    不良ブロックテーブル
１１１    外部Ｉ／Ｆ
１１２    メモリ制御回路
１１３    物理ブロック
１１４    管理情報レジスタ
１１５    データセレクタ
１１６    スクランブル処理部
１１７    ＥＣＣセレクタ
１１８    デスクランブル処理部
１１９    スクランブルパターン生成部
１２０    シードセレクタ
１２１    論理アドレスレジスタ
１２２    物理アドレスレジスタ
１２３    誤り訂正符号生成部
１２４    誤り検出訂正部
１２５    ページバッファ
２０１    物理ページ
３００    データ部
３０１    セクターデータ＃Ａ
３０２    セクターデータ＃Ｂ
３０８    セクターデータ＃Ｈ
３０９    管理データ
３１０    管理部
３１１    ＥＣＣ＃Ａ
３１２    ＥＣＣ＃Ｂ
３１８    ＥＣＣ＃Ｈ
３１９    ＥＣＣ管理
【図１】
0005492679.tif 000002
【図２】
0005492679.tif 000003
【図３】
0005492679.tif 000004
【図４】
0005492679.tif 000005
【図５】
0005492679.tif 000006
【図６】
0005492679.tif 000007
【図７】
0005492679.tif 000008
【図８】
0005492679.tif 000009