JP2003296199A - 記憶装置、データ処理方法及びデータ処理プログラム - Google Patents

記憶装置、データ処理方法及びデータ処理プログラム

Info

Publication number
JP2003296199A
JP2003296199A JP2003013109A JP2003013109A JP2003296199A JP 2003296199 A JP2003296199 A JP 2003296199A JP 2003013109 A JP2003013109 A JP 2003013109A JP 2003013109 A JP2003013109 A JP 2003013109A JP 2003296199 A JP2003296199 A JP 2003296199A
Authority
JP
Japan
Prior art keywords
data
volatile memory
error
written
storage device
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.)
Pending
Application number
JP2003013109A
Other languages
English (en)
Inventor
Masayuki Toyama
昌之 外山
Tsutomu Sekibe
勉 関部
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 Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003013109A priority Critical patent/JP2003296199A/ja
Publication of JP2003296199A publication Critical patent/JP2003296199A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】 記憶装置において、不揮発性メモリ間でデー
タを転送しても、転送されたデータに誤りがあったり、
プログラムエラーが発生したり、不揮発性メモリの性質
に起因する問題が発生するのを回避する。 【解決手段】 誤り訂正符号処理手段は、不揮発性メモ
リから転送のためデータ線に読み出されたデータに対す
る誤り訂正符号に基づいて、そのデータの誤りの検出を
行う。書き込み手段は、不揮発性メモリ間でデータが転
送される場合に、そのデータに訂正可能な誤りが検出さ
れたとき、その誤りが訂正されたデータを転送先の不揮
発性メモリに書き込む。これによって、不揮発性メモリ
間でのデータ転送時に、誤りのあるデータが書き込まれ
ることが回避される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ線を共用す
る複数の不揮発性メモリが独立して制御可能に設けられ
た記憶装置、並びにその記憶装置のデータ処理方法及び
プログラムに関するものである。
【0002】
【従来の技術】フラッシュメモリなどの不揮発性メモリ
を用いた記憶装置は、データの書き換えが可能であり、
電池等によるバックアップの必要もない。その携帯性の
高さから、フラッシュメモリは、近年音楽や映像データ
などを取り扱う携帯機器の記憶装置に広く用いられるよ
うになった。多くのデジタルカメラやオーディオプレー
ヤー、PDAは、フラッシュメモリを内蔵するだけでな
く、SDカードなど着脱型のメモリカードを装着するス
ロットも備えており、そのスロットは機器間でのデータ
交換やフラッシュメモリの容量選択のために用いられて
いる。利用範囲が広まるのに伴い、フラッシュメモリの
大容量化及びアクセス高速化に対する要求は強まってい
る。
【0003】フラッシュメモリのアクセス速度を低下さ
せる要因の一つに巻き込み退避処理がある。フラッシュ
メモリは、データの書き込み要求があると、データの書
き込み単位である物理ページのうち、その要求のあった
論理アドレスに対応する物理ページにデータが含まれて
いるか否かを確認する。フラッシュメモリでは上書きが
できないため、その論理アドレスに対応する物理ページ
に既にデータが含まれている場合、消去単位である物理
ブロックのうち、その物理ページを含む物理ブロック以
外の書き込み可能なブロックにデータを書き込む。そう
すると、古いデータと新しいデータが同時に存在するこ
とになるので、古いデータは消去される。ブロックがペ
ージを複数含んでいる場合、データが消去されるのは、
与えられた論理アドレスで書き込みが要求された物理ペ
ージだけではない。大容量のフラッシュメモリでは、ブ
ロックがページを複数含む必要性が高い。その場合、書
き込みが要求されたページと同じブロックに含まれる他
のページに書き込まれたデータも消去される。巻き込み
退避処理は、このようなデータを消去の前に退避させる
処理である。
【0004】通常、巻き込み退避処理では、書き込みが
要求されたページを含むブロックの書き込みが要求され
たページ以外のページに書き込まれたデータが読み出さ
れ、一旦バッファなどに退避される。書き込みが要求さ
れたページを含むブロックのデータは、この退避の後消
去される。外部のデータ入出力装置から入力されたデー
タ及びバッファなどに退避されたデータは、消去された
ブロックのページに書き込まれる。このような巻き込み
退避処理によって、書き込みが要求されたページと同じ
ブロックにある書き込みの要求されていないページのデ
ータが保護される。
【0005】このような巻き込み退避処理を行うと、書
き込み速度が低下する。このため、特開平11−203
885号公報に記載された記憶装置では、書き込みが要
求されたページを含むブロックの書き込みが要求された
ページ以外のページに書き込まれたデータをバッファに
退避しない。
【0006】この記憶装置は複数の半導体メモリを備え
ており、外部のデータ入出力装置から入力されたデータ
と退避のために読み出されたデータは、書き込みが要求
されたページを含むブロックがある半導体メモリとは異
なる半導体メモリの消去済みのブロックに書き込まれ
る。
【0007】
【発明が解決しようとする課題】ところで、フラッシュ
メモリでは、読み出し時にデータに誤りが発生する可能
性を軽視することができない。このため、前記公報に記
載されているようにフラッシュメモリ間でデータを転送
すると、巻き込み退避処理に限らず、誤りのあるデータ
が書き込まれてしまう恐れがある。
【0008】また、書き込み時にプログラムエラーが発
生することがある。フラッシュメモリ間でデータを転送
する場合、書き込み時にプログラムエラーが発生する
と、フラッシュメモリからデータを読み出し直されるこ
とになる。フラッシュメモリでは、読み出し直しに伴う
消費電力は大きく、必要な時間も長い。
【0009】また、フラッシュメモリ間でデータを移動
させる場合に、移動元のデータが消去される前に電源が
落とされると、電源の再投入後に、どちらのフラッシュ
メモリにあるデータが新しいものか区別できない。
【0010】このように、アクセス速度の低下を回避す
るため不揮発性メモリ間でデータを転送しても、その転
送には不揮発性メモリの性質に起因する問題が伴う。
【0011】本発明は、このような従来の技術における
課題を鑑みてなされたものであり、不揮発性メモリ間で
のデータ転送に伴う問題を解消することができる記憶装
置を提供することを目的とするものである。
【0012】
【課題を解決するための手段】上述の目的を達成するた
めに、本発明は以下の手段を採用している。
【0013】本発明の記憶装置では、データ線を共用す
る複数の不揮発性メモリが独立して制御可能に設けられ
る。この記憶装置において、誤り訂正符号処理手段は、
データに付加されて不揮発性メモリに書き込まれるその
データに対する誤り訂正符号を生成する。また、誤り訂
正符号処理手段は、不揮発性メモリからデータ線に読み
出されたデータに対する誤り訂正符号に基づいて、その
データの誤りの検出又は誤りの検出及び訂正を行う。
【0014】書き込み手段は、不揮発性メモリからデー
タ線に読み出されたデータをその不揮発性メモリとは異
なる不揮発性メモリに書き込む場合に、そのデータに訂
正可能な誤りが検出されたとき、その誤りが訂正された
データを書き込む。
【0015】これによって、読み出されたデータに誤り
があっても、誤りが検出されないまま、そのデータが書
き込まれることが回避される。
【0016】さらに、記憶装置がデータを一時的に保持
するバッファを備えていれば、誤り訂正符号処理手段
は、データに訂正可能な誤りがあることを検出した場合
に、データ線からバッファに保持されたデータの誤りを
訂正することができる。書き込み手段は、バッファに保
持されたデータを書き込めばよい。
【0017】これによって、誤りを訂正するために、不
揮発性メモリにアクセスする必要がなくなる。
【0018】また、管理情報処理手段は、データに付加
されて書き込まれるそのデータを管理するための管理情
報を生成する。管理情報は、入力されたデータだけでな
く、不揮発性メモリからデータ線に読み出されその不揮
発性メモリとは異なる不揮発性メモリに書き込まれるデ
ータについても生成される。
【0019】書き込み手段は、生成された管理情報を付
加して不揮発性メモリにデータを書き込む。
【0020】これによって、不揮発性メモリ間でデータ
を移動する場合に、移動元のデータが消去される前に電
源が落とされたとしても、電源再投入後に新旧のデータ
を区別することが可能となる。
【0021】また、記憶装置がバッファを備えていれ
ば、書き込み手段は、不揮発性メモリからデータ線に読
み出されその不揮発性メモリとは異なる不揮発性メモリ
に転送したデータのプログラムエラーが発生した場合
に、データ線からバッファに保持されたデータを用いる
ことができる。書き込み手段は、バッファに保持された
データについては、そのデータを書き込めばよい。
【0022】これによって、バッファに保持されたデー
タについては、不揮発性メモリから読み出し直す必要が
なくなり、その結果、消費電力が抑えられ、データを読
み出す時間も短縮される。
【0023】記憶装置において、上述した誤り訂正符号
処理手段、管理情報処理手段及びバッファを書き込み手
段に組み合わせることもできる。
【0024】この場合、管理情報処理手段は、データに
訂正不可能な誤りが検出されたとき、データに訂正不可
能な誤りが検出されたことを表す訂正不可能誤り検出情
報を、そのデータに付加される管理情報に含める。
【0025】これによって、データに訂正不可能な誤り
があるか否かを容易に判別することができる。
【0026】ここで、不揮発性メモリは、例えばデータ
の消去単位であるブロックがデータの書き込み単位であ
るページを複数含むフラッシュメモリである。ブロック
選択手段は、ブロックのページに書き込まれていたデー
タがそのブロックのデータの消去前に退避される場合
に、退避されるデータが書き込まれるページを含むブロ
ックを、データが消去されるブロックのあるフラッシュ
メモリとは異なるフラッシュメモリの書き込み可能なブ
ロックのうちから選択する。
【0027】退避されるデータもデータ線に読み出され
るのと同時にそのデータが書き込まれていた不揮発性メ
モリとは異なる不揮発性メモリに書き込まれる。各不揮
発性メモリは独立して制御可能であるから、ダイレクト
メモリアクセス方式で高速な巻き込み退避処理が可能で
あり、しかも上述のように不揮発性メモリに起因する問
題も解消する。
【0028】他の観点では、本発明は、記憶装置のデー
タ処理方法を提供する。
【0029】そのデータ処理方法では、不揮発性メモリ
からデータ線に読み出されたデータがその不揮発性メモ
リとは異なる不揮発性メモリに書き込まれる場合に、そ
のデータの誤りの検出を行う。そのデータに訂正可能な
誤りが検出されたとき、その誤りが訂正されたデータを
書き込む。
【0030】また、不揮発性メモリからデータ線に読み
出されたデータがその不揮発性メモリとは異なる不揮発
性メモリに書き込まれる場合に、そのデータについて、
データを管理するための管理情報を生成し、生成された
管理情報を付加して不揮発性メモリにそのデータを書き
込むこともできる。
【0031】また、不揮発性メモリからデータ線に読み
出されたデータをその不揮発性メモリとは異なる不揮発
性メモリに転送し、転送されたデータのプログラムエラ
ーが発生した場合に、データ線からバッファに保持され
ていたデータを不揮発性メモリに書き込むこともでき
る。
【0032】さらに他の観点では、本発明は、上述のよ
うなデータ処理方法をコンピュータに実行させるプログ
ラムを提供する。このプログラムは通常記憶装置に組み
込まれたり、外部のデータ入出力装置上で動作したりす
るが、このプログラムをCD−ROMなどのコンピュー
タ読み取り可能な記録媒体に格納して市場に供すること
もできるし、インターネットなどの電気通信回線を通じ
て市場に供することもできる。
【0033】
【発明の実施の形態】以下、添付図面を参照して本発明
の実施の形態につき説明する。
【0034】図1に示すように、本実施の形態における
記憶装置1は、外部のデータ入出力装置101と例えば
データ線102やアドレス線103を介して接続され
る。データは、データ線102を介して、記憶装置1と
データ入出力装置101との間で入出力される。アドレ
ス線103には、データ入出力装置101から記憶装置
1に入力されるデータDINが書き込まれる論理アドレ
スAINや、記憶装置1からデータ入出力装置101に
出力されるデータの読み出しのための論理アドレスが与
えられる。
【0035】記憶装置1には、複数のフラッシュメモリ
21、22及びコントローラ3が設けられている。図1
には2つのフラッシュメモリ21、22だけが示されて
いるが、フラッシュメモリの個数はこれに限られるもの
ではない。
【0036】フラッシュメモリ21、22に対するデー
タの書き込みはページ単位で行われる。ページのサイズ
は例えば528バイトである。ページの528バイトの
うち、データを記憶するのに用いられるデータ領域に
は、1バイトから512バイトまでの512バイト分の
領域が割り当てられるものとする。
【0037】データの消去は物理ブロックを単位として
行われる。各フラッシュメモリ21、22は、物理ブロ
ック8、9を複数備える。各物理ブロック8、9は複数
のページを含み、例えば32のページから構成される
が、説明の便宜上、物理ブロック8は、3つのページ8
1、82、83から構成されており、物理ブロック9
は、3つのページ91、92、93から構成されている
ものとする。
【0038】図1の例では、各フラッシュメモリ21、
22は、独立した制御線CL21、CL22と共通のデ
ータ線DLによってコントローラ3と接続される。
【0039】フラッシュメモリ21、22へのデータの
書き込み、フラッシュメモリ21、22からのデータの
読み出しのための転送は、制御線CL21、CL22の
書き込み同期信号WE21、WE22、読み出し同期信
号RE21、RE22に同期して行われる。この同期
は、書き込み同期信号WE21、WE22、読み出し同
期信号RE21、RE22の立ち上がりエッジを基準と
することができる。制御線CL21、CL22には、ビ
ジー信号BUSY21、BUSY22も与えられる。ビ
ジー信号BUSY21、BUSY22は、フラッシュメ
モリ21、22がプログラム中であることを表す。
【0040】データ線DLは、データの転送だけでな
く、アドレスやコマンド、ステータスの転送に用いても
よい。データ線DLのビット幅が8ビットであれば、デ
ータ等の転送は8ビットすなわち1バイト単位で行われ
る。この場合、1ページ、すなわち528バイトのデー
タが転送されるには、読み出し同期信号RE21、RE
22又は書き込み同期信号WE21、WE22に立ち上
がりエッジが528回形成されることになる。
【0041】データ線DLはフラッシュメモリ21、2
2によって共用される。また、各フラッシュメモリ2
1、22に独立した制御線CL21、CL22を用い
て、コントローラ3は各フラッシュメモリ21、22を
個別に制御することができる。このため、コントローラ
3は、一方のフラッシュメモリからデータ線DLにデー
タを読み出すのと同時に、データ線DLに読み出された
データを他方のフラッシュメモリに書き込む制御を行う
ことも可能である。
【0042】データ入出力装置101から記憶装置1に
入力されたデータDINや論理アドレスAINは、コン
トローラ3に与えられる。
【0043】コントローラ3において、アドレス変換手
段7は、入力された論理アドレスAINと入力されたデ
ータDINを書き込む物理ブロックのアドレスとを対応
付けるアドレス変換情報を生成し、管理情報処理手段1
1などに通知する。また、入力された論理アドレスに対
するアドレス変換情報が既に生成されている場合には、
アドレス変換手段7は、そのアドレス変換情報を用い
て、その論理アドレスを対応する物理ブロックのアドレ
スに変換し、データ読み出し手段5などに通知する。
【0044】巻き込み退避処理が行われる場合には、ア
ドレス変換手段7は、物理ブロック選択手段6にも物理
ブロックのアドレスを通知し、物理ブロック選択手段6
から他の物理ブロックのアドレスを受け取り、アドレス
変換情報を更新する。
【0045】データ読み出し手段5は、アドレス変換手
段7から通知された物理ブロックのアドレスに従って、
データを読み出す要求をフラッシュメモリ21、22に
発行する。フラッシュメモリ21、22によってこの要
求が受け付けられると、制御線CL21、CL22に読
み出し同期信号RE21、RE22が与えられ、これに
同期して、データ線DLにデータが読み出される。
【0046】巻き込み退避処理が行われる場合には、デ
ータ読み出し手段5は、データの書き込みが要求された
ページ(以下、要求ページ)を含む物理ブロックの要求
ページ以外のページに書き込まれたデータを退避のため
に読み出す。フラッシュメモリ21にある物理ブロック
8のページ82が要求ページであるとすると、巻き込み
退避処理が行われる場合には、物理ブロック8のページ
82以外のページ81、83に書き込まれたデータが退
避のために読み出される。
【0047】このとき、図2に示すように、読み出し同
期信号RE21には、最初の1056サイクルの間、立
ち上がりエッジが528回形成され、図2で次に示され
る1056サイクルの間、立ち上がりエッジは形成され
ず、図2では最後にある1056サイクルの間、立ち上
がりエッジが528回形成されることになる。
【0048】このような読み出し同期信号RE21に同
期して、データ線DLには、最初の1056サイクルの
間に、ページ81のデータが読み出される。また、図2
では最後にある1056サイクルの間に、ページ83の
データが読み出される。
【0049】物理ブロック選択手段6は、退避のために
読み出されたデータ及びデータ入出力装置101から入
力されたデータDINが書き込まれるページを含む物理
ブロックを、要求ページを含む物理ブロックがあるフラ
ッシュメモリとは異なるフラッシュメモリの書き込み可
能な物理ブロックのうちから選択する。データが消去さ
れた物理ブロックは書き込み可能である。要求ページを
含む物理ブロックが物理ブロック8である場合、フラッ
シュメモリ21とは異なるフラッシュメモリ22の書き
込み可能な物理ブロックのうち、例えば物理ブロック9
が選択される。
【0050】物理ブロック選択手段6は、選択された物
理ブロックのアドレスをアドレス変換手段7及びデータ
書き込み手段4に通知する。
【0051】データ書き込み手段4は、巻き込み退避処
理が行われる場合、物理ブロック選択手段6により選択
された物理ブロックのあるフラッシュメモリに、データ
読み出し手段5によりデータ線DLに読み出されたデー
タと入力されたデータDINを書き込む要求を発行す
る。フラッシュメモリにこの要求が受け付けられると、
制御線CLに書き込み同期信号が与えられ、これに同期
して書き込みが行われる。図2の例では、最初の105
6サイクルの間、フラッシュメモリ21に対する読み出
し同期信号RE21と同時にフラッシュメモリ22に対
する書き込み同期信号WE22に立ち上がりエッジが形
成されている。これによって、データ線DLに読み出さ
れたページ81のデータが転送され、フラッシュメモリ
22の物理ブロック9に含まれるページ91に書き込ま
れる。フラッシュメモリ22にページ81のデータが転
送されプログラムが終了した後の1056サイクルの間
は、読み出し同期信号RE21に立ち上がりエッジは形
成されないが、書き込み同期信号WE22には立ち上が
りエッジが528回形成される。これによって、入力さ
れたデータDINが転送され、物理ブロック9に含まれ
るページ92に書き込まれる。フラッシュメモリ22に
データDINが転送されプログラムが終了した後、図2
では最後にある1056サイクルの間、読み出し同期信
号RE21と同時に書き込み同期信号WE22に立ち上
がりエッジが形成される。これによって、データ線DL
に読み出されたページ83のデータが転送され、物理ブ
ロック9に含まれるページ93に書き込まれる。
【0052】このようにしてページ81、83のデータ
が退避され、入力されたデータDINが物理ブロック9
に書き込まれると、データ書き込み手段4は、物理ブロ
ック8のデータを消去する。アドレス変換手段7により
論理アドレスAINのアドレス変換情報は論理アドレス
AINを物理ブロック9のアドレスに対応付けるものに
更新されるので、データ入出力装置101からは、ペー
ジ82のデータがデータDINに書き換えられたことに
なる。データの読み出しと書き込みが同時に行われる結
果、書き換えの場合でも書き込み速度は高速である。
【0053】ダイレクトメモリアクセス方式でデータを
転送するのに伴う問題の解消には、誤り訂正符号処理手
段10を用いることができる。
【0054】誤り訂正符号処理手段10は、入力された
データDINに対する誤り訂正符号を生成し、データD
INに誤り訂正符号を付加する。データ書き込み手段4
は、誤り訂正符号が付加されたデータDINを書き込
む。1ページの528バイトのうち、データ領域に1バ
イトから512バイトまでの512バイト分の領域が割
り当てられるとき、例えば誤り訂正符号には513バイ
トから518バイトまでの6バイト分の領域が割り当て
られる。
【0055】巻き込み退避処理に伴って、データ読み出
し手段5によりデータ線DLにデータが読み出された場
合、誤り訂正符号処理手段10は、データ自体に続いて
読み出された誤り訂正符号に基づいて、退避のために読
み出されたデータの誤りの検出又は誤りの検出及び訂正
を行う。
【0056】誤り訂正符号処理手段10は、誤り訂正符
号に基づいてデータに誤りが検出された場合、その誤り
が訂正可能なものであれば、誤りを訂正し、その誤りが
訂正不可能なものであれば、データに訂正不可能な誤り
が検出されたことを表す訂正不可能誤り検出情報を管理
情報処理手段11に通知する。
【0057】ここで、誤り訂正符号処理手段10が、図
2の例においてデータ線DLに読み出されたページ81
のデータの2バイト目に誤りを検出したとする。この場
合の読み出し同期信号RE21、WE22、データ線D
Lを図3に示す。
【0058】図3に示すように、最初の1024サイク
ルでページ81のデータ領域のデータD81がデータ線
DLに読み出された後、1025サイクルから1036
サイクルの間に、データ線DLに読み出されたデータD
81に対する誤り訂正符号E81がデータ線DLに読み
出される。
【0059】データD81及び誤り訂正符号E81が読
み出されると、誤り訂正符号処理手段10は、データD
81から計算した誤り訂正符号と読み出された誤り訂正
符号E81とを比較することによって誤りを検出し、誤
り検出結果ECC81を出力する。誤り検出結果ECC
81は、誤りの有無や訂正可能な誤りか否かの情報を含
む。このとき、誤り訂正符号処理手段10は、読み出さ
れた誤り訂正符号E81に基づいて、データD81の2
バイト目に誤りを検出したとする。データD81に訂正
可能な誤りが検出された場合、その後に示される105
6サイクルの間にページ81のデータの読み出し及び書
き込みが行われる。但し、この1056サイクルの4サ
イクル目では、読み出し同期信号RE21に立ち上がり
エッジは形成されず、書き込み同期信号WE22にのみ
立ち上がりエッジが形成される。誤りのあった2バイト
目はフラッシュメモリ21から読み出されない。2バイ
ト目の書き込みのときには、誤り訂正符号処理手段10
によって訂正されたデータC2がデータ書き込み手段4
によってページ91に書き込まれる。
【0060】これによって、退避のために読み出された
データに誤りがあっても、誤りが検出されないまま、選
択されたブロックに誤りのあるデータが書き込まれるこ
とが回避される。その結果、フラッシュメモリの性質に
起因する巻き込み退避処理における問題の影響が軽減さ
れる。
【0061】管理情報処理手段11は、入力されたデー
タDINを管理するための管理情報を生成し、データD
INに管理情報を付加する。この管理情報には、アドレ
ス変換手段7から通知されたアドレス変換情報などが含
まれる。誤り訂正符号処理手段10から訂正不可能誤り
検出情報が通知された場合には、訂正不可能誤り検出情
報も管理情報に含められる。
【0062】データ書き込み手段4は、管理情報が付加
されたデータDINを書き込む。1ページの528バイ
トのうち、データ領域に1バイトから512バイトまで
の512バイト分の領域が、誤り訂正符号に513バイ
トから518バイトまでの6バイト分の領域が割り当て
られるとき、例えば管理情報には519バイトから52
8バイトまでの10バイト分の領域が割り当てられる。
【0063】また、管理情報処理手段11は、入力され
たデータDINだけでなく、巻き込み退避処理に伴って
データ線DLに読み出されたデータにもそのデータに対
する新しい管理情報を付加する。
【0064】この場合、ページに既に書き込まれた管理
情報が読み出される必要はない。図2の例のように、最
初の1056サイクルの間、読み出し同期信号RE21
に528回立ち上がりエッジが形成される必要はなく、
1サイクルから1052サイクルまでに読み出し同期信
号RE21に立ち上がりエッジが518回形成されれば
よい。
【0065】書き込み同期信号WE22には、最初の1
056サイクルの間、立ち上がりエッジが528回形成
される。1037サイクルから1056サイクルまでの
間の各立ち上がりエッジに同期して、データ書き込み手
段4は、管理情報処理手段11によって新たにデータに
付加された管理情報M81NEWをページ91に転送す
る。ページ91には更新された管理情報M81NEWが
書き込まれることになる。ページ81のデータに対する
管理情報と同様に、ページ93に書き込まれるページ8
3のデータに対する管理情報も更新される。
【0066】このように退避のために読み出されたデー
タに付加されて書き込まれる当該データの管理情報が更
新されることによって、要求ページを含むブロックのデ
ータが消去される前に電源が落とされたとしても、管理
情報に基づいて電源再投入後に新旧のデータを区別する
ことが可能となる。その結果、フラッシュメモリの性質
に起因する巻き込み退避処理における問題の影響が軽減
される。
【0067】書き込み同期信号WE21、WE22に同
期してデータがフラッシュメモリに転送されると、フラ
ッシュメモリ21、22は、プログラム状態に入り、ビ
ジー信号BUSY21、BUSY22を変化させる。プ
ログラムが終了するまで、フラッシュメモリ21、22
は、ビジー信号BUSY21、BUSY22の状態を継
続させる。
【0068】データ書き込み手段4は、ビジー信号BU
SY21、BUSY22が元の状態に戻ると、プログラ
ムステータス(PSTS)を読み出し、プログラムが正
常に終了したかどうかの確認を行う。
【0069】バッファ12は、1ページ分かそれ以上の
サイズを有するSRAMなどである。プログラムでエラ
ーが発生した場合に備えて、退避のために読み出された
データを一時的に保持するためにバッファ12を用いる
ことができる。
【0070】例えば図5に示すように、データ読み出し
手段5によりデータ線DLにページ81のデータが読み
出されるのと同時に、データ線DLに読み出されたペー
ジ81のデータはデータ書き込み手段4により転送さ
れ、フラッシュメモリ22にある物理ブロック9のペー
ジ91に書き込まれるとする。
【0071】バッファ12は、データ線DLに読み出さ
れたページ81のデータを一時的に保持する。
【0072】フラッシュメモリ22でプログラムが終了
し、ビジー信号BUSY22が元の状態に戻ると、デー
タ読み出し手段5は、プログラムステータスを読み出
す。コントローラ3がプログラムステータスに基づいて
プログラムでエラーが発生したことを確認した場合、制
御線CL21に読み出し同期信号RE21は与えられ
ず、データ書き込み手段4は、フラッシュメモリ21か
らではなくバッファ12から読み出されたページ81の
データを書き込む。
【0073】このようにフラッシュメモリから退避のた
めに読み出されたデータがバッファに一時的に保持され
ることによって、フラッシュメモリからデータを読み出
し直す必要がなくなり、プログラムエラーがあっても、
その分だけ消費電力が抑えられ、データを読み出す時間
も短縮される。その結果、フラッシュメモリの性質に起
因する巻き込み退避処理における問題の影響が軽減され
る。
【0074】記憶装置1は、誤り訂正符号処理手段1
0、管理情報処理手段11、バッファ12のうちいずれ
かのみを備えるようにしてもよいし、これらの組み合わ
せを備えてもよい。
【0075】例えば誤り訂正符号処理手段10をバッフ
ァ12と組み合わせることができる。この場合、データ
線DLにデータが読み出されると、バッファ12にその
データが一時的に保持される。誤り訂正符号処理手段1
0は、そのデータに付加された誤り訂正符号に基づいて
データの誤りを検出する。データに訂正可能な誤りが検
出されると、上述の例では、データがフラッシュメモリ
から読み出し直されていたが、この場合には、誤り訂正
符号処理手段10は、バッファ12に保持されたデータ
の誤りを訂正する。データ書き込み手段4は、バッファ
12に保持された誤り訂正後のデータをフラッシュメモ
リに書き込めばよい。
【0076】これによって、データの誤りを訂正するた
めに、フラッシュメモリにアクセスする必要がなくな
り、データの誤り訂正に伴う消費電力の増大が抑えられ
る。さらに、フラッシュメモリへのアクセスのために、
データの誤り訂正に要する時間が長くなるのを回避する
ことができる。
【0077】また、図1の通り、誤り訂正符号処理手段
10、管理情報処理手段11及びバッファ12が組み合
わされる場合において、誤り訂正符号処理手段10は、
訂正不可能な誤りを検出したとき、訂正不可能な誤りを
検出したことを表す訂正不可能誤り検出情報を管理情報
処理手段11に発行する。管理情報処理手段11は、書
き込まれるデータに新たに付加される管理情報に訂正不
可能誤り検出情報を含める。
【0078】これにより、データとともに書き込まれた
管理情報が参照されることによって、データに訂正不可
能な誤りがあるか否かが容易に判別される。
【0079】図6は、誤りがないか誤りが訂正可能であ
る場合について、記憶装置のデータ処理方法を説明する
フローチャートである。記憶装置1が誤り訂正符号処理
手段10、管理情報処理手段11及びバッファ12を備
えていれば、それぞれの手順を組み合わせた一連の手順
によって上述の巻き込み退避処理を行うことができる。
【0080】まず外部のデータ入出力装置101からコ
ントローラ3に書き込みの指示があり(S1)、入力さ
れるデータDINが書き込まれるアドレスAINが与え
られると、コントローラ3はそのアドレスAINを確認
し(S2)、要求ページよりブロックの先頭側のページ
に既にデータが書き込まれているか否かに基づいて、退
避が必要か否かを判断する(S3)。アドレスAINが
ページ82の物理アドレスと対応していれば、ページ8
2と同じブロック8に書き込まれているページ81及び
83のうち、ページ81はページ82よりブロックの先
頭側にある。このため、コントローラ3はページ81の
データD81の退避が必要であると判断する。データの
退避が必要であると判断された場合、データ読み出し手
段5によりデータ線DLにデータが読み出され、データ
書き込み手段4によりデータ線DL上のデータが書き込
み対象のフラッシュメモリに転送される(S4)。この
間、バッファ12には1ページ分のデータが保持され
る。また、書き込み対象のフラッシュメモリは、上述の
例では、ブロック8のあるフラッシュメモリ21とは異
なるフラッシュメモリ22である。誤り訂正符号処理手
段10は、データ線DLにデータ及び誤り訂正符号が読
み出されると、そのデータについて誤りの検出を行う
(S5)。訂正可能な誤りがあれば、誤り訂正符号処理
手段10は、バッファ12に保持されたデータを訂正す
る。データ書き込み手段4は、訂正されたデータをバッ
ファ12から書き込み対象のフラッシュメモリに再送す
る(S6)。データ線DLに読み出されたデータに誤り
がないか、訂正されたデータが再送されると、管理情報
処理手段11は、データの管理情報を生成し、データ書
き込み手段4は、生成された管理情報を書き込み対象の
フラッシュメモリに転送する(S7)。データ及び管理
情報がフラッシュメモリに転送されると、データ書き込
み手段4は、そのフラッシュメモリの書き込みブロック
に対しプログラムコマンドを発行する(S8)。フラッ
シュメモリ22に転送されたデータがデータD81であ
れば、そのデータD81はブロック9のページ91に書
き込まれる。プログラムが終了すると、データ書き込み
手段4は、プログラムステータスを読み出し(S9)、
プログラムエラーが発生したか否かを確認する(S1
0)。プログラムエラーが発生した場合、手順S4から
S10に従って、例えばそのフラッシュメモリとは別の
フラッシュメモリに対して退避のやり直しが行われる
(S11)。その際、バッファ12に保持されたデータ
については、バッファから再送される。フラッシュメモ
リ22のブロック9についてプログラムエラーが発生す
れば、フラッシュメモリ21のブロック8からデータが
読み出される場合、図示されていないその他のフラッシ
ュメモリにそのデータは退避される。プログラムが正常
に終了したか、退避がやり直されると、コントローラ3
は、退避が終了したか否かを判断する(S12)。要求
ページよりもブロックの先頭側にあるページのデータ全
てが退避されていれば、コントローラ3は、退避が終了
したと判断する。要求ページがページ82であれば、そ
のページよりもブロックの先頭側にあるページのデータ
は、既述の通り、データD81のみである。この場合、
データD81がブロック9に退避されれば、コントロー
ラ3は、退避が終了したと判断する。退避が終了してい
なければ、退避が終了するまで、手順S4からS12が
繰り返される。手順S8で退避が必要と判断されていな
いか、要求ページよりもブロックの先頭側にあるページ
のデータ全てが退避されると、データ書き込み手段4
は、データDINを退避されたデータの書き込まれたブ
ロックに書き込む(S13)。データDINが書き込ま
れると、コントローラ3は、要求ページよりもブロック
の末尾側にあるページにデータが既に書き込まれている
か否かに基づいて、退避が必要か否かを判断する(S1
4)。ページ82と同じブロック8に書き込まれている
ページ81及び83のうち、ページ83はページ82よ
りブロックの末尾側にある。このため、コントローラ3
はページ83のデータD83の退避が必要であると判断
する。退避が必要であると判断された場合、手順S4以
降の手順が繰り返され、退避が必要でないと判断された
場合、巻き込み退避処理は終了する(S15)。
【0081】なお、このような手順は、専用ロジックに
よって実現することもできるし、マイクロプロセッサや
メモリとプログラムとを協働させることによっても実現
することができる。
【0082】また、記憶装置1と外部のデータ入出力装
置101との接続に、データ線102とアドレス線10
3を介したが、これに限られるものではない。データ線
102とアドレス線103に独立した線を用いる必要は
なく、同じ線を共用してもよい。携帯される小型のメモ
リカードなどでは、共用によってピン数が削減されるか
ら好ましい。
【0083】また、上述の例では、巻き込み退避処理の
ために不揮発性メモリ間でデータが転送される場合を説
明したが、これに限られるものではない。例えばデータ
のフラグメントを解消するために、不揮発性メモリ間で
データが転送されることもある。このような場合、不揮
発性メモリ間でのデータ転送を、図6の手順S4からS
12によって行うことができる。これによって、巻き込
み退避処理以外の処理でも、巻き込み退避処理と同様、
不揮発性メモリ間でのデータ転送に伴う不揮発性メモリ
の性質に起因する問題を解消することができる。
【0084】
【発明の効果】以上説明した通り、本発明では、不揮発
性メモリ間で転送されるデータに対して誤り訂正処理が
行われるため、誤りが検出されないまま、誤りのあるデ
ータが書き込まれてしまうのを避けることができる。ま
た、不揮発性メモリ間で転送されるデータの管理情報が
更新されるため、不揮発性メモリ間でデータを移動する
場合に、移動元のデータが消去される前に電源が落とさ
れたとしても、電源再投入後に管理情報に基づいて新旧
のデータを区別することができる。また、不揮発性メモ
リ間で転送されるデータをバッファに一時的に保持して
おけば、プログラムエラーがあっても、不揮発性メモリ
からデータを読み出し直す必要がなくなり、その分だけ
消費電力が抑えられ、データを読み出す時間も短縮され
る。これらの結果、ダイレクトメモリアクセス方式でデ
ータを高速に転送しながら、不揮発性メモリの性質に起
因する問題の影響を抑制することができる。
【図面の簡単な説明】
【図1】 実施の形態における記憶装置の概略構成を示
す図
【図2】 実施の形態における記憶装置による巻き込み
退避処理を説明するためのタイムチャート
【図3】 巻き込み退避処理において誤り訂正処理が行
われる場合のタイムチャート
【図4】 巻き込み退避処理において管理情報が更新さ
れる場合のタイムチャート
【図5】 巻き込み退避処理においてバッファからデー
タが読み出される場合のタイムチャート
【図6】 実施の形態における記憶装置のデータ処理方
法を説明するためのフローチャート
【符号の説明】
1 記憶装置 3 コントローラ 4 データ書き込み手段 5 データ読み出し手段 6 物理ブロック選択手段 7 アドレス変換手段 8 物理ブロック 9 物理ブロック 10 誤り訂正符号処理手段 11 管理情報処理手段 12 バッファ 21 フラッシュメモリ 22 フラッシュメモリ 101 データ入出力装置 102 データ線 103 アドレス線 CL21 制御線 CL22 制御線 DL データ線

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 データ線を共用する複数の不揮発性メモ
    リが独立して制御可能に設けられた記憶装置であって、 データに付加されて不揮発性メモリに書き込まれるその
    データに対する誤り訂正符号を生成し、不揮発性メモリ
    からデータ線に読み出されたデータに対する誤り訂正符
    号に基づいて、そのデータの誤りの検出又は誤りの検出
    及び訂正を行う誤り訂正符号処理手段と、 不揮発性メモリからデータ線に読み出されたデータをそ
    の不揮発性メモリとは異なる不揮発性メモリに書き込む
    場合に、そのデータに訂正可能な誤りが検出されたと
    き、その誤りが訂正されたデータを書き込む書き込み手
    段とを備えた記憶装置。
  2. 【請求項2】 データを一時的に保持するバッファを備
    え、 前記誤り訂正符号処理手段は、データに訂正可能な誤り
    があることを検出した場合に、データ線から前記バッフ
    ァに保持されたデータの誤りを訂正し、 前記書き込み手段は、前記バッファに保持されたデータ
    を書き込む請求項1記載の記憶装置。
  3. 【請求項3】 データ線を共用する複数の不揮発性メモ
    リが独立して制御可能に設けられた記憶装置であって、 データを管理するための管理情報を、入力されたデータ
    だけでなく、不揮発性メモリからデータ線に読み出され
    その不揮発性メモリとは異なる不揮発性メモリに書き込
    まれるデータについても生成する管理情報処理手段と管
    理情報を付加して不揮発性メモリにデータを書き込む書
    き込み手段とを備えた記憶装置。
  4. 【請求項4】 データ線を共用する複数の不揮発性メモ
    リが独立して制御可能に設けられた記憶装置であって、 データを一時的に保持するバッファと、 不揮発性メモリからデータ線に読み出されその不揮発性
    メモリとは異なる不揮発性メモリに転送したデータのプ
    ログラムエラーが発生した場合に、データ線から前記バ
    ッファに保持されたデータを書き込む書き込み手段とを
    備えた記憶装置。
  5. 【請求項5】 データに付加されて不揮発性メモリに書
    き込まれるそのデータに対する誤り訂正符号を生成し、
    不揮発性メモリからデータ線に読み出されたデータに対
    する誤り訂正符号に基づいて、そのデータに訂正可能な
    誤りがあることを検出した場合に、データ線から前記バ
    ッファに保持されたデータの誤りを訂正する誤り訂正符
    号処理手段をさらに備え、 前記書き込み手段は、不揮発性メモリからデータ線に読
    み出されたデータをその不揮発性メモリとは異なる不揮
    発性メモリに書き込む場合に、そのデータに訂正可能な
    誤りが検出されたとき、前記バッファに保持されたデー
    タを書き込む請求項4記載の記憶装置。
  6. 【請求項6】 データを管理するための管理情報を、入
    力されたデータだけでなく、不揮発性メモリからデータ
    線に読み出されその不揮発性メモリとは異なる不揮発性
    メモリに書き込まれるデータについても生成する管理情
    報処理手段をさらに備え、 前記書き込み手段は、管理情報を付加して不揮発性メモ
    リにデータを書き込む請求項5記載の記憶装置。
  7. 【請求項7】 前記管理情報処理手段は、データに訂正
    不可能な誤りが検出された場合に、データに訂正不可能
    な誤りが検出されたことを表す訂正不可能誤り検出情報
    を、そのデータに付加される管理情報に含める請求項6
    記載の記憶装置。
  8. 【請求項8】 前記不揮発性メモリは、データの消去単
    位であるブロックがデータの書き込み単位であるページ
    を複数含むフラッシュメモリである請求項7記載の記憶
    装置。
  9. 【請求項9】 ブロックのページに書き込まれていたデ
    ータがそのブロックのデータの消去前に退避される場合
    に、退避されるデータが書き込まれるページを含むブロ
    ックを、データが消去されるブロックのあるフラッシュ
    メモリとは異なるフラッシュメモリの書き込み可能なブ
    ロックのうちから選択するブロック選択手段を備える請
    求項8記載の記憶装置。
  10. 【請求項10】 データ線を共用する複数の不揮発性メ
    モリが独立して制御可能に設けられた記憶装置のデータ
    処理方法であって、 不揮発性メモリからデータ線に読み出されたデータがそ
    の不揮発性メモリとは異なる不揮発性メモリに書き込ま
    れる場合に、そのデータの誤りの検出を行い、そのデー
    タに訂正可能な誤りが検出されたとき、その誤りが訂正
    されたデータを書き込むデータ処理方法。
  11. 【請求項11】 データ線を共用する複数の不揮発性メ
    モリが独立して制御可能に設けられた記憶装置のデータ
    処理方法であって、 不揮発性メモリからデータ線に読み出されたデータがそ
    の不揮発性メモリとは異なる不揮発性メモリに書き込ま
    れる場合に、そのデータについて、データを管理するた
    めの管理情報を生成し、 生成された管理情報を付加して不揮発性メモリにそのデ
    ータを書き込むデータ処理方法。
  12. 【請求項12】 データ線を共用する複数の不揮発性メ
    モリが独立して制御可能に設けられた記憶装置のデータ
    処理方法であって、 不揮発性メモリからデータ線に読み出されたデータをそ
    の不揮発性メモリとは異なる不揮発性メモリに転送し、 転送されたデータのプログラムエラーが発生した場合
    に、そのデータが転送された不揮発性メモリとは異なる
    不揮発性メモリに、データ線からバッファに保持されて
    いたデータを書き込むデータ処理方法。
  13. 【請求項13】 データ線を共用する複数の不揮発性メ
    モリが独立して制御可能に設けられた記憶装置のデータ
    処理プログラムであって、 コンピュータに、 不揮発性メモリからデータ線に読み出されたデータがそ
    の不揮発性メモリとは異なる不揮発性メモリに書き込ま
    れる場合に、そのデータの誤りの検出を行う手順、及び
    そのデータに訂正可能な誤りが検出されたとき、その誤
    りが訂正されたデータを書き込む手順を実行させるため
    のデータ処理プログラム。
  14. 【請求項14】 データ線を共用する複数の不揮発性メ
    モリが独立して制御可能に設けられた記憶装置のデータ
    処理プログラムであって、 コンピュータに、 不揮発性メモリからデータ線に読み出されたデータがそ
    の不揮発性メモリとは異なる不揮発性メモリに書き込ま
    れる場合に、そのデータについて、データを管理するた
    めの管理情報を生成する手順、及び生成された管理情報
    を付加して不揮発性メモリにそのデータを書き込む手順
    を実行させるためのデータ処理プログラム。
  15. 【請求項15】 データ線を共用する複数の不揮発性メ
    モリが独立して制御可能に設けられた記憶装置のデータ
    処理プログラムであって、 コンピュータに、 不揮発性メモリからデータ線に読み出されたデータをそ
    の不揮発性メモリとは異なる不揮発性メモリに転送する
    手順、及び転送されたデータのプログラムエラーが発生
    した場合に、データ線からバッファに保持されていたデ
    ータを不揮発性メモリに書き込む手順を実行させるため
    のデータ処理プログラム。
JP2003013109A 2002-01-29 2003-01-22 記憶装置、データ処理方法及びデータ処理プログラム Pending JP2003296199A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003013109A JP2003296199A (ja) 2002-01-29 2003-01-22 記憶装置、データ処理方法及びデータ処理プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002-19690 2002-01-29
JP2002019690 2002-01-29
JP2003013109A JP2003296199A (ja) 2002-01-29 2003-01-22 記憶装置、データ処理方法及びデータ処理プログラム

Publications (1)

Publication Number Publication Date
JP2003296199A true JP2003296199A (ja) 2003-10-17

Family

ID=29404749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003013109A Pending JP2003296199A (ja) 2002-01-29 2003-01-22 記憶装置、データ処理方法及びデータ処理プログラム

Country Status (1)

Country Link
JP (1) JP2003296199A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008524750A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレイション 再プログラム可能な不揮発性メモリにおいてデータをコピーする方法
CN100422947C (zh) * 2005-03-10 2008-10-01 松下电器产业株式会社 非易失性存储系统、非易失性存储装置、数据读出方法及读出程序
US7466597B2 (en) 2004-09-09 2008-12-16 Samsung Electronics Co., Ltd. NAND flash memory device and copyback program method for same
JP2014535104A (ja) * 2011-10-27 2014-12-25 メモライト (ウハン) カンパニー,リミテッド フラッシュメモリ制御器及びフラッシュメモリ間のデータ転送方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7466597B2 (en) 2004-09-09 2008-12-16 Samsung Electronics Co., Ltd. NAND flash memory device and copyback program method for same
JP2008524750A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレイション 再プログラム可能な不揮発性メモリにおいてデータをコピーする方法
CN100422947C (zh) * 2005-03-10 2008-10-01 松下电器产业株式会社 非易失性存储系统、非易失性存储装置、数据读出方法及读出程序
JP2014535104A (ja) * 2011-10-27 2014-12-25 メモライト (ウハン) カンパニー,リミテッド フラッシュメモリ制御器及びフラッシュメモリ間のデータ転送方法

Similar Documents

Publication Publication Date Title
US7239547B2 (en) Memory device
US7849382B2 (en) Memory control circuit, nonvolatile storage apparatus, and memory control method
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US8386905B2 (en) Error correcting method, and memory controller and memory storage system using the same
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US20110035539A1 (en) Storage device, and memory controller
JP2010092506A (ja) 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能
JP2006294218A (ja) 不揮発性メモリ装置及びそのマルチページコピーバック方法
JPWO2005083573A1 (ja) 半導体メモリ装置
US6680870B2 (en) Memory device, data processing method and data processing program
WO2005109446A1 (ja) 半導体メモリ装置
JP2013016147A (ja) メモリコントローラ及び不揮発性記憶装置
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
US20120151166A1 (en) Nonvolatile storage device and memory controller
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
JP2003076605A (ja) ブロック消去型不揮発メモリを搭載した半導体記憶装置とそのデータの書込み・読出し方法
JP2010086009A (ja) 記憶装置およびメモリ制御方法
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2003296199A (ja) 記憶装置、データ処理方法及びデータ処理プログラム
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP2005115562A (ja) フラッシュrom制御装置
JP2010026584A (ja) メモリコントローラおよび不揮発性記憶装置