JP2011028741A - 記憶装置およびメモリコントローラ - Google Patents

記憶装置およびメモリコントローラ Download PDF

Info

Publication number
JP2011028741A
JP2011028741A JP2010147835A JP2010147835A JP2011028741A JP 2011028741 A JP2011028741 A JP 2011028741A JP 2010147835 A JP2010147835 A JP 2010147835A JP 2010147835 A JP2010147835 A JP 2010147835A JP 2011028741 A JP2011028741 A JP 2011028741A
Authority
JP
Japan
Prior art keywords
data
scramble
physical
address
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010147835A
Other languages
English (en)
Other versions
JP5492679B2 (ja
JP2011028741A5 (ja
Inventor
Toshiyuki Honda
利行 本多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2010147835A priority Critical patent/JP5492679B2/ja
Publication of JP2011028741A publication Critical patent/JP2011028741A/ja
Publication of JP2011028741A5 publication Critical patent/JP2011028741A5/ja
Application granted granted Critical
Publication of JP5492679B2 publication Critical patent/JP5492679B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】フラッシュメモリのページ間のコピーに制限を生じさせることなく、データに対するスクランブルを実行可能なメモリコントローラを提供する。
【解決手段】メモリコントローラは、スクランブルパターン生成部と、スクランブル処理部と、論理物理アドレス変換テーブルと、メモリインターフェースと、制御回路とを備え、物理ページをセクターデータ部と管理部に分けて管理する。制御回路は、データ部に対しては、データ部に固有の論理アドレスに関連する情報を基にしてスクランブルパターン生成部でスクランブルパターンを生成し、スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、管理部に対しては、物理アドレスに関連する情報を基にしてスクランブルパターン生成部でスクランブルパターンを生成し、スクランブル処理部で管理データをスクランブルし、半導体メモリに対して書き込み読み出しを行う。
【選択図】図1

Description

本発明は、フラッシュメモリ等の半導体メモリを用いた記憶装置、および、半導体メモリを制御するメモリコントローラに関する。
近年、書き換え可能な不揮発性メモリであるNANDタイプのフラッシュメモリを搭載した不揮発性記憶装置が種々の分野で広く利用されている。例えばメモリーカードはデジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。不揮発性記憶装置は、半導体により構成されており、プロセスの微細化に伴いそのビット単価が低下している。このことから、不揮発性記憶装置は、安価な記憶デバイスとして、メモリーカード以外にも利用されるようになってきている。例えばハードディスク・ドライブ(HDD)に代えて利用されるソリッドステート・ドライブ(SSD)や、ホスト機器に直接搭載するメモリとして利用されるようになってきている。
しかしながら、プロセスの微細化は、フラッシュメモリの信頼性の低下を招く。例えば、プロセスの微細化に伴い、情報を記憶するための電子の数が少なくなるので、リテンション、リードディスターブ、プログラムディスターブ等の種々の劣化要因に対するマージンが少なくなり、フラッシュメモリの不良が発生しやすくなる。フラッシュメモリにおける種々の劣化要因に対して信頼性を向上させる技術として種々の技術が提案されている。例えば特許文献1には、フラッシュメモリに書き込むデータをスクランブルすることによってプログラムディスターブやリードディスターブ等の問題を緩和する技術が開示されている。
特開2008−198299号公報
しかしながら、特許文献1に開示された技術では、フラッシュメモリのページ間のコピーが同一グループのワード線間に制限されている。また、特許文献1には、上記制限を解消可能な技術として、書き込みデータと共にスクランブルシードデータを書き込むという技術がさらに開示されている。しかし、このような技術ではスクランブルシードの信頼性を如何に確保するかという課題がある。
本発明は、フラッシュメモリのページ間のコピーに制限を生じさせることなく、かつ信頼性を確保しつつ、データに対するスクランブルを実行可能な記憶装置およびメモリコントローラを提供することを目的とする。
この目的を達成するために、第1の態様の記憶装置は、半導体メモリと、該半導体メモリを制御するメモリコントローラとを有する。前記半導体メモリは複数の物理ページを有し、前記物理ページはデータ部と管理部とを有し、前記データ部には、固有の論理アドレスを有するデータを、前記管理部には管理データを格納し、前記メモリコントローラは、スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する。
また、上記目的を達成するために、第2の態様のメモリコントローラは、複数の物理ページからなる半導体メモリに対して書き込み読み出しを行う。メモリコントローラは、スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、前記物理ページをデータ部と管理部に分けて管理し、前記論理物理アドレス変換テーブルは、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持し、前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスにを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する。
第1、第2の態様の記憶装置及びメモリコントローラでは、スクランブルシードとして、データ部の論理アドレスまたは管理部の物理アドレスを利用する。これにより、データ部及び管理部がどの記憶領域に記憶されていようともその記憶領域の論理アドレスまたは物理アドレスに基づいてスクランブルシードを把握することができる。したがって、任意の物理ページから任意の物理ページへのデータのコピーを行った場合でも、読み込みの際、当該データのコピー先の論理アドレスまたは物理アドレスに基づいてスクランブルシードを把握しデスクランブルができる。このように、データの記憶領域(物理アドレス)が変化した場合でも、スクランブルシードを確実に把握することができるので、任意の物理ページから任意の物理ページへのデータのコピーが可能となる。なお、記憶装置の起動時においては、データ部及び管理部のいずれについても論理アドレスを把握することができない。そこで、本態様では、管理部のスクランブルシードとして物理アドレスを利用する。これにより、記憶装置の起動時等、論理アドレスを把握できないような場合でも、管理部のデータをデスクランブルして読み出すことができる。そして、読み出した管理部のデータを用いてデータ部の論理アドレスを把握し、以後、論理アドレスを利用してデータ部に対してスクランブル、デスクランブルを行って読み出し、書き込みを行うことが可能となる。さらに、スクランブルシードとして、データ部の論理アドレスまたは管理部の物理アドレスを利用することによれば、対応するアドレスのスクランブルシードを必ず把握することができるので、スクランブルを行う記憶装置の信頼性を確保することができる。
実施の形態1の記憶装置の構成を示す図 実施の形態1の半導体メモリの物理ブロックの構成を示す図 実施の形態1の半導体メモリの物理ページのデータフォーマットを示す図 実施の形態1の半導体メモリの初期化のフローチャート 実施の形態1の半導体メモリへのデータ書き込みのタイミングチャート 実施の形態1の半導体メモリへのデータ書き込みのフローチャート 実施の形態1の半導体メモリへのデータコピーのタイミングチャート 実施の形態1の半導体メモリへのデータコピーのフローチャート
1.構成
図面を参照して、好ましい実施形態を説明する。図1は、実施形態1の不揮発性記憶装置の構成を示す。不揮発性記憶装置は、メモリコントローラである不揮発性メモリコントローラ101と、不揮発性メモリ102とを有する。不揮発性メモリコントローラ101は、不揮発性メモリ102を制御し、不揮発性メモリ102にデータを不揮発で記憶させる。
図1において、不揮発性メモリ102への書き込みデータの流れを斜線模様の矢印で、不揮発性メモリ102からの読み出しデータの流れをドット模様の矢印で示す。
不揮発性メモリコントローラ101は、不揮発性メモリインターフェース103(以降、「不揮発性メモリI/F103」という)、バッファメモリ106、MPU107、論物変換テーブル108、書き換え回数管理テーブル109、不良ブロックテーブル110、管理情報レジスタ114、データセレクタ115、スクランブル処理部116、ECCセレクタ117、デスクランブル処理部118、スクランブルパターン生成部119、シードセレクタ120、論理アドレスレジスタ121、物理アドレスレジスタ122、誤り訂正符号生成部123、及び誤り検出訂正部124を有する。
不揮発性メモリI/F103は、不揮発性メモリコントローラ101内部において不揮発性メモリ102を制御するインターフェース(以降、I/Fと記載)である。不揮発性メモリI/F103はコマンドアドレス制御部104とデータ制御部105とを有する。コマンドアドレス制御部104は、不揮発性メモリ102に対してコマンドやアドレスを発行する。コマンドには、書き込みを指示するコマンド、読み出しを指示するコマンド、消去を指示するコマンド、及びそれぞれの処理の対象アドレスを指定するコマンド等がある。データ制御部105は、不揮発性メモリ102に対して書き込みを行うデータや、不揮発性メモリ102から読み出したデータの転送を制御する。
バッファメモリ106は、不揮発性メモリ102に対して書き込みを行うデータや、不揮発性メモリ102から読み出したデータを一時的に格納する。バッファメモリ106から不揮発性メモリ102に転送して書き込むデータのことを以降セクターデータと表現する。
MPU107は、不揮発性メモリコントローラ101全体の制御を行う制御回路である。論物変換テーブル108、書き換え回数管理テーブル109、及び不良ブロックテーブル110は、MPU107が不揮発性メモリ102を制御するために使用され、各種情報を格納する。これらのテーブル108、109、110は、例えば揮発性のメモリを利用して構成される。
論物変換テーブル108は、不揮発性メモリコントローラ101においてセクターデータの記録位置を管理するための論理アドレスと、このセクターデータの不揮発性メモリ102内での実記録位置を示す物理アドレスとの対応を管理するテーブルである。この論物変換テーブル108を利用することにより、所定の論理アドレスに対応するデータが不揮発性メモリ102のどの物理ページに格納されているかを知ることができる。
書き換え回数管理テーブル109は、不揮発性メモリ102内の各物理ブロックのデータ書き換えの回数を管理するテーブルである。書き換え回数管理テーブル109は、物理アドレスと、この物理アドレスに対応する物理ブロックの書き換え回数とを記録する。
不良ブロックテーブル110は、不揮発性メモリ102内の物理ブロックのうち書き込みや読み出し等が所定の条件を満たさない不良ブロックの物理アドレスを管理するテーブルである。
管理情報レジスタ114は、不揮発性メモリ102に書き込む管理データを一時格納するためのレジスタである。
データセレクタ115は、バッファメモリ106からのセクターデータと、管理情報レジスタ114からの管理データとのうちの一方のデータを選択して出力する。
スクランブル処理部116は、データセレクタ115で選択されて出力されたデータにスクランブル処理を施す。
誤り訂正符号生成部123は、スクランブル処理部116からのスクランブルされたデータを基に誤り訂正符号を生成する。
ECCセレクタ117は、スクランブル処理部116からのスクランブルされたデータと、誤り訂正符号生成部123からの誤り訂正符号とのうちの一方のデータを選択して出力する。
誤り検出訂正部124は、不揮発性メモリ102から読み出されたデータと誤り訂正符号をデータ制御部105から受け取って、誤りを検出すると共に誤り位置の演算を行う。誤り検出訂正部124はバッファメモリ106に転送されたデータの誤りについても訂正する。誤りを訂正するために使用される情報は所定のアドレスと所定の反転パターンで得られる。よって、デスクランブル処理部118で行われるデスクランブル処理と誤り訂正処理の適用順序は可換である。
デスクランブル処理部118は、不揮発性メモリ102から読み出したデータをデスクランブル処理する。
スクランブルパターン生成部119は、スクランブルパターンを生成し、この生成したスクランブルパターンをスクランブル処理部116およびデスクランブル処理部118に供給する。特許文献1に記載のスクランブル処理の様にビット毎の正転、反転のスクランブルを行う場合には、スクランブル処理部116で使用するスクランブルパターンとデスクランブル処理部118で使用するスクランブルパターンとして同じものを利用できる。
論理アドレスレジスタ121は、データを格納するページの論理アドレスを格納する。
物理アドレスレジスタ122は、データを格納するページの物理アドレスを格納する。シードセレクタ120は、論理アドレスレジスタ121に格納されている論理アドレスと物理アドレスレジスタ122に格納されている物理アドレスとのうちの一方のアドレスを選択してスクランブルパターン生成部119に出力する。シードセレクタ120はスクランブルパターン生成部119にスクランブルのシード値を供給する。
不揮発性メモリ102は、外部インタフェース111(以降、「外部I/F111」という)、メモリ制御回路112、複数の物理ブロック113、及びページバッファ125を有する。
外部I/F111は、不揮発性メモリコントローラ101との間のデータ転送を制御する。
メモリ制御回路112は、不揮発性メモリ102内の各部を制御する。
物理ブロック113は、メモリセルアレイである。本実施形態では、物理ブロック113は、#0〜#2047の2048個存在する。以降、物理ブロック113を、適宜、物理ブロック#0〜#2047という。これらの物理ブロック#0〜#2047は不揮発性メモリ102においてデータの消去単位となる。
図2は図1の物理ブロック113の構成を示した図である。物理ブロック113は、物理ページ201を有する。本実施形態では、物理ブロック113は、#0〜#127の128個の物理ページ201を有する。以降、物理ページ201を、適宜、物理ページ#0〜#127という。従って、不揮発性メモリ102は、全部で262144個(=2048物理ブロック×128物理ページ)の物理ページ201を有する。物理ページ201は、不揮発性メモリ102におけるデータの書き込み単位である。
ページバッファ125は、物理ページ201の容量と等しい容量を持つ。不揮発性メモリ102は、物理ブロック113へのデータの書き込みを行う際、書き込みを行うデータを、ページバッファ125に一時的に格納すると同時に書き込み対象の物理ページに書き込む。不揮発性メモリ102は、読み出しを行う際、物理ページ201からデータを読み出してページバッファ125に一時的に格納する。
また、不揮発性メモリ102は、物理ページ201間でデータのコピーを行う際、コピー元の物理ページ201のデータをページバッファ125に一時的に格納した後、このデータをコピー先の物理ページ201に書き込む。なお、データのコピーに際し、不揮発性メモリ102の外部にデータを出力することなくコピーを行うことも可能である。しかし、不揮発性メモリ102内ではデータ保持の不良が発生している可能性がある。そこで、不揮発性メモリ102外部にデータを読み出して、誤り訂正のデータを不揮発性メモリ102に入力することでページバッファ125のデータを一部修正し、その後にコピー書き込みを行うようにしてもよい。
図3は、図2の物理ページ201(#0〜#127)に書き込まれるデータのデータフォーマットを示した図である。
物理ページに書き込まれるデータは、データ部300と管理部310とで構成されている。データ部300は、複数のセクターデータ301,302,…308とこれらのセクターデータ用の誤り訂正符号ECC311,312,…318とで構成される。
セクターデータ301,302,…308は、不揮発性メモリコントローラ101のバッファメモリ106から転送されたデータである。誤り訂正符号311,312,…318は、セクターデータ301,302,…308をスクランブル処理部116でスクランブル処理したデータを元に誤り訂正符号生成部123で生成される。
管理部310は、管理データ309とECC管理データ319とで構成される。
管理データ309は、不揮発性メモリコントローラ101の管理情報レジスタ114から転送されたデータである。
ECC管理データ319は、管理データ309をスクランブル処理部116でスクランブル処理したデータを元に誤り訂正符号生成部123で生成した誤り訂正符号である。
ここで、データ部300の容量は、例えば、各セクターデータ301,302,…308がそれぞれ4KBytes、セクターデータ301,302,…308に付与する誤り訂正符号311,312,…318がそれぞれ80Bytesであり、一セクターデータと一誤り訂正符号とで合計4KBytes+80Bytes程度である。管理部310の容量は、管理データ309と、管理データ309に付与するECC管理データ(誤り訂正符号)319とで、例えば合計20Bytes程度である。
2.動作
次に、本実施形態の不揮発性記憶装置の動作について説明する。
2−1.起動時の動作
図4のフローチャートを参照して、不揮発性記憶装置の起動時の動作について説明する。起動時の動作は、不揮発性メモリコントローラ101による制御のもとに行われる。
まず、不揮発性メモリコントローラ101は、読み出し元の物理ブロックを設定する(S11)。
次に、不揮発性メモリコントローラ101は、読み出し元の物理ページを設定する(S12)。
次に、不揮発性メモリコントローラ101は、管理部310のデータを、管理部310のデータ記録位置を示す物理アドレスでデスクランブルして読み出す。そして、この管理部310の管理データ309から、セクターデータ部300のデータ記録位置を示す論理アドレスを取得する(S13)。ここで得られた物理アドレスと論理アドレスの関係を用いて、論物変換テーブル108のデータを作る。
次に、不揮発性メモリコントローラ101は、ステップS11で設定した物理ブロックの中の全ての物理ページについてステップS13の処理を実行したか判定する(S14)。全ての物理ページの処理が終了していなければ、ステップS12に戻って別の物理ページを設定し、以後、同様の処理を実行する。これに対し、全ての物理ページの処理が終了した場合、ステップS15に移行する。
不揮発性メモリコントローラ101は、全ての物理ブロックについてステップS13の処理を実行したか判定する(S15)。全ての物理ブロックの処理が終了していなければ、ステップS11に戻って別の物理ブロックを設定し、以後、同様の処理を実行する。これに対し、全ての物理ページの処理が終了した場合、ステップS16に移行する。
ステップS16以降、上記のようにして読み出した管理部310の管理データ309を利用して、セクターデータを、該データの読み込み元の論理アドレスでデスクランブルして読み出すことができる。 なお、ここではすべての物理ブロックのすべてのページを読み出すものとして説明しているが、論物変換テーブル108のデータを不揮発性メモリ102に格納している場合には、論物変換テーブル108のデータが格納された物理ブロックのみを検索するだけでよい。 また、その場合には論物変換テーブルのデータも所定の論理アドレスを持つ。
2−2.不揮発性メモリへの書き込み動作
図5は、不揮発性メモリコントローラ101が不揮発性メモリ102に対して1物理ページのデータを書き込む際のタイミングチャートを示した図である。図6は、不揮発性メモリ102への書き込み動作のフローチャートである。図5、図6を用いて不揮発性メモリ102にデータを書き込む際の不揮発性メモリコントローラ101の動作について説明する。ここで、不揮発性メモリコントローラ101内の動作は全てMPU107の制御の元に行われる。以後の説明において、セクターデータ、管理データ等の符号の記載は適宜省略する。
まず、不揮発性メモリコントローラ101は、書き込み先の物理アドレスを決定する(S21)。
時刻t401で、コマンドアドレス制御部104は不揮発性メモリ102に対して書き込みを開始することを示すコマンドを発行する(S22)。次に時刻t402でコマンドアドレス制御部104は、不揮発性メモリ102における書き込み対象の物理アドレスを、不揮発性メモリ102に発行する(S23)。コマンド発行およびアドレス発行の処理は数クロックで実行可能である。
次に時刻t403から、データ部300のデータ(セクターデータと誤り訂正符号ECC)の転送を開始する(S24)。具体的には、セクターデータの転送に関しては、バッファメモリ106から出力されたセクターデータをデータセレクタ115で選択し、スクランブル処理部116でスクランブル処理し、ECCセレクタ117で選択し、データ制御部105から不揮発性メモリ102に転送する。これに対し、誤り訂正符号の転送に関しては、セクターデータの転送時に誤り訂正符号生成部123でスクランブル処理部116の出力を演算して誤り訂正符号を生成し、この生成された誤り訂正符号をECCセレクタ117で選択し、データ制御部105から不揮発性メモリ102に転送する。セクターデータの転送と誤り訂正符号の転送は交互に行う。時刻t404でデータ部300のデータの転送を完了する。このセクターデータの転送では、シードセレクタ120は、論理アドレスレジスタ121に格納されている論理アドレスをシード値としてスクランブル処理部116に供給する。スクランブルパターン生成部119は、この論理アドレスすなわち書き込み先の記憶領域の論理アドレスを元にスクランブルパターンを生成し、スクランブル処理部116に供給する。これにより、セクターデータに対して、書き込み先の論理アドレスをシード値としてスクランブル処理が行われたことになる。
次に時刻t405で、コマンドアドレス制御部104は不揮発性メモリ102に対して管理データの先頭のアドレスを発行する(S25)。
次に時刻t406から、管理部310のデータ(管理データと誤り訂正符号ECC)の転送を開始する(S26)。具体的には、管理データの転送に関しては、管理情報レジスタ114に格納されている管理データをデータセレクタ115で選択し、書き込み先の物理アドレスを利用してスクランブルパターンを生成して、このスクランブルパターンを利用してスクランブル処理部116でスクランブル処理し、ECCセレクタ117で選択し、データ制御部105から不揮発性メモリ102に転送する。これに対し、誤り訂正符号の転送に関しては、管理データの転送時に誤り訂正符号生成部123でスクランブル処理部116の出力を演算して誤り訂正符号を生成し、この生成された誤り訂正符号をECCセレクタ117で選択し、データ制御部105から不揮発性メモリ102に転送する。管理データの転送では、シードセレクタ120は、物理アドレスレジスタ122に格納されている物理アドレスをシード値としてスクランブル処理部116に供給する。スクランブルパターン生成部119は、物理アドレスを元にスクランブルパターンを生成し、スクランブル処理部116に供給する。これにより、管理データに対して、書き込み先の物理アドレスをシード値としたスクランブル処理が行われたことになる。
時刻t407で、管理部310のデータの転送を完了する。コマンドアドレス制御部104は、不揮発性メモリ102に対して書き込みを実行するコマンドを発行する(S27)。この書き込み実行コマンドを受けて、不揮発性メモリ102は、ページバッファ125に格納されたデータを指定された物理ページに書き込む。
物理ページへの書き込みにおいて、管理部310のデータに対し論理アドレスをシード値として使用したスクランブルを行わないのは以下のような理由による。すなわち、不揮発性メモリ102を使用した不揮発性記憶装置では、書き込み読み出しのため、不揮発性メモリコントローラ101は、不揮発性メモリ102に含まれる各物理ブロック113の書き込み状態を知っておく必要がある。そのため、不揮発性メモリコントローラ101は、電源投入時、不揮発性メモリ102の管理部310にアクセスして、各物理ブロック201の書き込み状態を取得する。しかし、電源投入時には、不揮発性メモリコントローラ101は、管理部310の論理アドレスを知ることができない。このため、物理アドレスを利用して管理部310に格納されている管理データを取得する。そこで、管理部310に対しては、読み出し時に決定できる物理アドレスをスクランブルのシード値として使用する。
次に、未コピーの物理ページが存在するか判定する(S28)。そして、未コピーの物理ページが存在しないときは、書き込み転送処理を終了し、存在するときは、ステップS21に戻って、同様の処理を繰り返す。
ここで、本実施形態では、管理部310のスクランブルを、物理アドレスをシード値として行うことにより、物理ページ毎に、書き込みの状態を認識することができる。
2−3.不揮発性メモリ内のデータのコピー動作
図7は、図1の不揮発性記憶装置において、不揮発性メモリ102に書き込まれた一物理ページのデータを他の物理ページにコピーする(コピーバック)際のタイミングチャートである。図8は、不揮発性メモリ102に書き込まれた一物理ページのデータを他の物理ページにコピーするときのフローチャートである。図7、図8を用いて、不揮発性メモリ102のデータをコピーする際の不揮発性メモリコントローラ101の動作について説明する。
まず、不揮発性メモリコントローラ101は、コピー元及びコピー先の物理アドレスを決定する(S31)。
時刻t501で、不揮発性メモリコントローラ101のコマンドアドレス制御部104は、不揮発性メモリ102に対してコピー読み出しを開始することを示すコマンド(CMD)を発行する(S32)。
次に時刻t502で、コマンドアドレス制御部104はコピー読み出しを行う不揮発性メモリ102の物理ページの物理アドレスを不揮発性メモリ102に対して発行する(S33)。
次に時刻t503から、不揮発性メモリコントローラ101は、データ部300のセクターデータと誤り訂正符号の読み出し転送を開始する(S34)。このデータの転送は、不揮発性メモリ102に格納されているセクターデータおよび誤り訂正符号をデータ制御部105で読み出す転送である。データ制御部105で読み出されたデータは、デスクランブル処理部118でコピー元の論理アドレスに基づいてデスクランブルして、バッファメモリ106に転送されるとともに、並行して誤り検出訂正部124に転送される。
時刻t504で、データ部300のデータの読み出し転送を完了する。この後、管理部310のデータのビット誤りの有無を確認するためのデータの読み出しは行わない。管理部310のデータは、コピー先の物理アドレスをシード値としてスクランブル処理を行って書き込まれ、データコピー時に全て書き換えられるからである。
次に時刻t505で、コマンドアドレス制御部104は、不揮発性メモリ102に対してコピー書き込みを開始することを示すコマンドを発行する(S35)。
次に時刻t506で、コマンドアドレス制御部104は、コピー書き込みを行う不揮発性メモリ102の物理ページの物理アドレスを不揮発性メモリ102に対して発行する(S36)。
ここで指定する物理アドレスは、時刻t502で指定した物理アドレスによって制限されない。セクターデータをスクランブルするときのシード値として、コピー先の論理アドレスを利用しているので、任意の物理ページから任意の物理ページにデータをコピーしても、コピー先においてデータを読み出すときに、当該コピー先の論理アドレスを用いて正しくデスクランブル処理を行って、セクターデータを読み出すことができる。
次に時刻t507から、不揮発性メモリコントローラ101は、管理部310に対応する管理データと誤り訂正符号(ECC)の転送を開始する(S37)。このデータの転送は、図4のt406からの転送と同様に行われる。スクランブルパターンは、物理アドレスレジスタ122の物理アドレスをシード値として生成される。
時刻t508で、管理部310のデータの転送を完了する。
次に、不揮発性メモリコントローラ101は、セクターデータの読み出し時に誤りがあったかどうか判定する(S38)。
ステップS38の判定で誤りがなかった場合は、コマンドアドレス制御部104は、不揮発性メモリ102に対してコピー書き込みを実行するコマンドを発行する(S40)。このコピー書き込み実行コマンドを受けて、不揮発性メモリ102は、ページバッファ125に格納されたデータを指定された物理ページに書き込む。
次に、不揮発性メモリコントローラ101は、未コピーの物理ページが存在するか判定する(S41)。そして、未コピーの物理ページが存在しないときは、コピー処理を終了し、存在するときは、ステップS31に戻って、同様の処理を繰り返す。
これに対し、ステップS38の判定で誤りがあった場合は、不揮発性メモリコントローラ101は、セクターデータの誤り訂正転送を行う(S39)。そして、前述のステップS40、S41を実行する。
3.まとめ
本実施形態の不揮発性記憶装置は、不揮発性メモリ102と、該不揮発性メモリ102を制御する不揮発性メモリコントローラ101とを有する。不揮発性メモリ102は複数の物理ページ201を有し、物理ページ201はデータ部300と管理部310とを有し、データ部300には、固有の論理アドレスを有するセクターデータ301〜308を、管理部310には管理データ309を格納する。不揮発性メモリコントローラ101は、スクランブルパターンを生成するスクランブルパターン生成部119と、スクランブルパターン生成部119で生成されたスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部116と、論理アドレスと不揮発性メモリ102の物理ページ201のアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブル108と、スクランブルパターン生成部119及びスクランブル処理部116を制御するMPU107とを備える。MPU107は、データ部300に対しては、データ部300に固有の論理アドレスを基にしてスクランブルパターン生成部119でスクランブルパターンを生成し、スクランブルパターン生成部119で生成されたスクランブルパターンを用いてスクランブル処理部118でこの論理アドレスに対応するセクターデータをスクランブルし、管理部310に対しては、管理部310の書き込み先または読み出し元となる物理アドレスを基にしてスクランブルパターン生成部119でスクランブルパターンを生成し、スクランブルパターン生成部119で生成したスクランブルパターンを用いてスクランブル処理部116で管理データ309をスクランブルし、不揮発性メモリ102に対して書き込み読み出しを行うように制御する。
このように、本実施形態の記憶装置では、スクランブルシードとして、書き込み先または読み込み元の論理アドレスまたは物理アドレスを利用する。これにより、データ部がどの記憶領域に記憶されていようともその記憶領域の論理アドレスに基づいてスクランブルシードを把握することができる。したがって、任意の物理ページから任意の物理ページへのデータのコピーを行った場合でも、読み込みの際、当該データのコピー先の論理アドレスまたは物理アドレスに基づいてスクランブルシードを把握しデスクランブルができる。このように、データの記憶領域(物理アドレス)が変化した場合でも、スクランブルシードを確実に把握することができるので、任意の物理ページから任意の物理ページへのデータのコピーが可能となる。加えて、論理アドレスは、データ部のデータに対応しているので、任意の物理ページから任意の物理ページへのデータのコピーを行う際、スクランブルシードを変更する必要がない。したがって、読み出し時にデータが格納されているページバッファ125のデータをそのままデータ部のデータとして書き込める。つまり、スクランブル処理をやり直す必要がないので、データ部のデータを不揮発性メモリコントローラ101から不揮発性メモリ102に転送する必要がない。そのため、不揮発性メモリ102のページバッファ125を利用した高速なデータのコピー処理が可能となる。なお、記憶装置の起動時においては、データ部300及び管理部310のいずれについても論理アドレスを把握することができない。そこで、本態様では、管理部310のスクランブルシードとして物理アドレスを利用する。これにより、記憶装置の起動時等、論理アドレスを把握できないような場合でも、管理部310のデータをデスクランブルして読み出すことができる。そして、読み出した管理部310の管理データ309を用いてデータ部300のセクターデータの論理アドレスを把握し、以後、論理アドレスを利用してデータ部300に対してスクランブル、デスクランブルを行って読み出し、書き込みを行うことが可能となる。さらに、スクランブルシードとして、データ部の論理アドレスまたは管理部の物理アドレスを利用することによれば、対応するアドレスのスクランブルシードを必ず把握することができ、かつデータ部のデータのスクランブルシードを変更する必要がないので、任意の物理ページ間でのデータのコピーを高速に行えるとともに、スクランブルを行うことで記憶装置の信頼性を確保することができる。
本発明は、半導体メモリを用いた記憶装置、および、メモリを制御するメモリコントローラにおいて広く利用することができる。
101 不揮発性メモリコントローラ
102 不揮発性メモリ
103 不揮発性メモリI/F
104 コマンドアドレス制御部
105 データ制御部
106 バッファメモリ
107 MPU
108 論物変換テーブル
109 書き換え回数管理テーブル
110 不良ブロックテーブル
111 外部I/F
112 メモリ制御回路
113 物理ブロック
114 管理情報レジスタ
115 データセレクタ
116 スクランブル処理部
117 ECCセレクタ
118 デスクランブル処理部
119 スクランブルパターン生成部
120 シードセレクタ
121 論理アドレスレジスタ
122 物理アドレスレジスタ
123 誤り訂正符号生成部
124 誤り検出訂正部
125 ページバッファ
201 物理ページ
300 データ部
301 セクターデータ#A
302 セクターデータ#B
308 セクターデータ#H
309 管理データ
310 管理部
311 ECC#A
312 ECC#B
318 ECC#H
319 ECC管理

Claims (9)

  1. 半導体メモリと、該半導体メモリを制御するメモリコントローラとを有する記憶装置であって、
    前記半導体メモリは複数の物理ページを有し、
    前記物理ページはデータ部と管理部とを有し、
    前記データ部には、固有の論理アドレスを有するデータを、前記管理部には管理データを格納し、
    前記メモリコントローラは、スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、
    前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する
    ことを特徴とする記憶装置。
  2. 前記半導体メモリが不揮発性メモリであり、
    前記物理ページが前記不揮発性メモリの書き込み単位である
    ことを特徴とする請求項1に記載の記憶装置。
  3. 前記不揮発性メモリがNANDタイプのフラッシュメモリである
    ことを特徴とする請求項2に記載の記憶装置。
  4. 前記NANDタイプのフラッシュメモリが多値メモリセルからなる
    ことを特徴とする請求項3に記載の記憶装置。
  5. 前記記憶装置が、着脱可能なメモリーカードであることを特徴とする請求項1に記載の記憶装置。
  6. 複数の物理ページを有する半導体メモリに対して書き込み読み出しを行うメモリコントローラであって、
    スクランブルパターンを生成するスクランブルパターン生成部と、前記スクランブルパターン生成部で生成したスクランブルパターンを用いてスクランブル処理を行うスクランブル処理部と、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持する論理物理アドレス変換テーブルと、前記スクランブルパターン生成部及び前記スクランブル処理部を制御する制御回路とを備え、
    前記物理ページをデータ部と管理部に分けて管理し、
    前記論理物理アドレス変換テーブルは、前記論理アドレスと前記半導体メモリの物理ページのアドレスである物理アドレスとの対応を保持し、
    前記制御回路は、前記データ部に対しては、前記データ部に固有の論理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部でこの論理アドレスに対応するデータ部のデータをスクランブルし、前記管理部に対しては、前記管理部の書き込み先となる物理アドレスを基にして前記スクランブルパターン生成部でスクランブルパターンを生成して、このスクランブルパターンを用いて前記スクランブル処理部で管理データをスクランブルし、前記半導体メモリに対して書き込み読み出しを行うように制御する
    ことを特徴とするメモリコントローラ。
  7. 前記半導体メモリが不揮発性メモリであり、
    前記物理ページが前記不揮発性メモリの書き込み単位である
    ことを特徴とする請求項6に記載のメモリコントローラ。
  8. 前記不揮発性メモリがNANDタイプのフラッシュメモリである
    ことを特徴とする請求項7に記載のメモリコントローラ。
  9. 前記NANDタイプのフラッシュメモリが多値メモリセルからなる
    ことを特徴とする請求項8に記載のメモリコントローラ。
JP2010147835A 2009-06-30 2010-06-29 記憶装置およびメモリコントローラ Active JP5492679B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010147835A JP5492679B2 (ja) 2009-06-30 2010-06-29 記憶装置およびメモリコントローラ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009154962 2009-06-30
JP2009154962 2009-06-30
JP2010147835A JP5492679B2 (ja) 2009-06-30 2010-06-29 記憶装置およびメモリコントローラ

Publications (3)

Publication Number Publication Date
JP2011028741A true JP2011028741A (ja) 2011-02-10
JP2011028741A5 JP2011028741A5 (ja) 2013-07-04
JP5492679B2 JP5492679B2 (ja) 2014-05-14

Family

ID=43535663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010147835A Active JP5492679B2 (ja) 2009-06-30 2010-06-29 記憶装置およびメモリコントローラ

Country Status (2)

Country Link
US (1) US20110035539A1 (ja)
JP (1) JP5492679B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097786A (ja) * 2011-11-04 2013-05-20 Samsung Electronics Co Ltd メモリシステム及びそれの動作方法
US10073982B2 (en) 2013-08-15 2018-09-11 Renesas Electronics Corporation Semiconductor device

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
KR101686980B1 (ko) * 2011-03-02 2016-12-16 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리 내의 데이터 저장 방법
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2013028859A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
JP2013069183A (ja) * 2011-09-26 2013-04-18 Toshiba Corp コントローラおよびメモリシステム
KR20130036556A (ko) * 2011-10-04 2013-04-12 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR20140057454A (ko) * 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치
TWI509622B (zh) * 2013-07-09 2015-11-21 Univ Nat Taiwan Science Tech 具分散錯誤功能的記憶體及其分散錯誤位元的方法
US9336401B2 (en) 2014-01-20 2016-05-10 International Business Machines Corporation Implementing enhanced security with storing data in DRAMs
CN103777904B (zh) * 2014-02-12 2017-07-21 威盛电子股份有限公司 数据储存装置以及数据加扰与解扰方法
US9355732B2 (en) 2014-10-01 2016-05-31 Sandisk Technologies Inc. Latch initialization for a data storage device
US9653185B2 (en) * 2014-10-14 2017-05-16 International Business Machines Corporation Reducing error correction latency in a data storage system having lossy storage media
KR102636039B1 (ko) 2016-05-12 2024-02-14 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
JP7188769B2 (ja) 2019-12-24 2022-12-13 株式会社鈴木▲兼▼詞鉄工所 高速連続焼き菓子製造装置
US20240071464A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Dynamic Address Scramble
JP2024137148A (ja) * 2023-03-24 2024-10-07 株式会社東芝 磁気ディスク装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004510367A (ja) * 2000-09-15 2004-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 暗号化キーとしてのデータ塊アドレスによる保護
JP2008198299A (ja) * 2007-02-14 2008-08-28 Toshiba Corp データ書き込み方法
JP2008204528A (ja) * 2007-02-19 2008-09-04 Megachips Lsi Solutions Inc メモリ制御方法およびメモリシステム
JP2008217857A (ja) * 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
JP2010108029A (ja) * 2008-10-28 2010-05-13 Panasonic Corp 不揮発性メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2011530777A (ja) * 2008-08-12 2011-12-22 マイクロン テクノロジー, インク. メモリデバイスおよびメモリデバイスにデータを格納する方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686592A3 (en) * 2005-01-19 2007-04-25 Saifun Semiconductors Ltd. Partial erase verify
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004510367A (ja) * 2000-09-15 2004-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 暗号化キーとしてのデータ塊アドレスによる保護
JP2008198299A (ja) * 2007-02-14 2008-08-28 Toshiba Corp データ書き込み方法
JP2008204528A (ja) * 2007-02-19 2008-09-04 Megachips Lsi Solutions Inc メモリ制御方法およびメモリシステム
JP2008217857A (ja) * 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
JP2011530777A (ja) * 2008-08-12 2011-12-22 マイクロン テクノロジー, インク. メモリデバイスおよびメモリデバイスにデータを格納する方法
JP2010108029A (ja) * 2008-10-28 2010-05-13 Panasonic Corp 不揮発性メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097786A (ja) * 2011-11-04 2013-05-20 Samsung Electronics Co Ltd メモリシステム及びそれの動作方法
US10073982B2 (en) 2013-08-15 2018-09-11 Renesas Electronics Corporation Semiconductor device
US10339335B2 (en) 2013-08-15 2019-07-02 Renesas Electronics Corporation Semiconductor device

Also Published As

Publication number Publication date
JP5492679B2 (ja) 2014-05-14
US20110035539A1 (en) 2011-02-10

Similar Documents

Publication Publication Date Title
JP5492679B2 (ja) 記憶装置およびメモリコントローラ
JP4129381B2 (ja) 不揮発性半導体記憶装置
US8037232B2 (en) Data protection method for power failure and controller using the same
US8086787B2 (en) Wear leveling method, and storage system and controller using the same
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
JP5686516B2 (ja) Nandメモリのためのプログラミング管理データ
US8392797B2 (en) Error correcting controller, flash memory chip system, and error correcting method thereof
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US20110231732A1 (en) Error correcting method, and memory controller and memory storage system using the same
TW201411633A (zh) 輸出經錯誤校正碼校正之位元之資訊
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
US20130019054A1 (en) Flash memory device and method performing erase operation using over program
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
US20200341676A1 (en) Data writing method, memory control circuit unit and memory storage device
TW200828330A (en) Allowable bit errors per sector in memory devices
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
JP2010079856A (ja) 記憶装置およびメモリ制御方法
JP2007310916A (ja) メモリカード
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
JP2008191701A (ja) エラー回復処理方法および情報処理装置
JP2011059907A (ja) 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム
JP2008251154A (ja) 不揮発性半導体記憶装置
JP2006338083A (ja) メモリコントローラ
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140303

R151 Written notification of patent or utility model registration

Ref document number: 5492679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151