[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008152464A - 記憶装置 - Google Patents

記憶装置 Download PDF

Info

Publication number
JP2008152464A
JP2008152464A JP2006338718A JP2006338718A JP2008152464A JP 2008152464 A JP2008152464 A JP 2008152464A JP 2006338718 A JP2006338718 A JP 2006338718A JP 2006338718 A JP2006338718 A JP 2006338718A JP 2008152464 A JP2008152464 A JP 2008152464A
Authority
JP
Japan
Prior art keywords
data
block
write
controller
buffer
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
JP2006338718A
Other languages
English (en)
Inventor
Takafumi Ito
隆文 伊藤
Hideki Tsuji
秀貴 辻
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006338718A priority Critical patent/JP2008152464A/ja
Priority to US11/955,926 priority patent/US8356134B2/en
Priority to KR1020070131105A priority patent/KR100939145B1/ko
Publication of JP2008152464A publication Critical patent/JP2008152464A/ja
Priority to US13/367,779 priority patent/US9058254B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/004Recording, reproducing or erasing methods; Read, write or erase circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/004Recording, reproducing or erasing methods; Read, write or erase circuits therefor
    • G11B7/005Reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/08Disposition or mounting of heads or light sources relatively to record carriers
    • G11B7/085Disposition or mounting of heads or light sources relatively to record carriers with provision for moving the light beam into, or out of, its operative position or across tracks, otherwise than during the transducing operation, e.g. for adjustment or preliminary positioning or track change or selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

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

Abstract

【課題】データ書き込み速度を向上する。
【解決手段】記憶装置は、データを格納する複数のメモリブロックと、データを一時的に格納するバッファ32とを含み、かつデータの消去がブロック単位で行われる不揮発性半導体メモリ22と、一回の書き込みコマンドに対する書き込みデータが所定サイズ以下の場合に、上記書き込みデータをバッファ32に書き込むコントローラ21とを含む。
【選択図】 図3

Description

本発明は、ホスト装置との間でデータ転送を行う記憶装置に係り、特に不揮発性半導体メモリを備えた記憶装置に関する。
現在、音楽データや映像データなどを記録する記憶装置として、不揮発性半導体メモリを備えたメモリカードが使われている。不揮発性半導体メモリは、電源がオフされてもデータを消失する虞がなく、またデータの書き換えが可能である。不揮発性半導体メモリとしては、NAND型フラッシュメモリなどが用いられている。
NAND型フラッシュメモリでは、データの書き込みはページ(2KB、4KB、8KBなど)単位で行われ、データの消去は複数ページで構成されたブロック(512KB、1MBなど)単位で行われる。また、NAND型フラッシュメモリにデータを書き込む場合には、以下のような制約がある。
(1)事前にブロック単位でデータが消去されている必要がある
(2)同一のブロック内でデータを書き込む場合、次に書き込むデータは、前に書き込まれたデータのアドレスよりも大きなアドレスに書き込む必要がある
例えば、データが書き込まれたブロックに対して新データを書き込む場合、消去済みブロックを別に用意し、この消去済みブロックに新データを書き込み、さらに新データが書き込まれた部分以外は元のブロックからデータをコピーしなおす「引越し」と呼ばれる処理を行うことで実現する。特に、ランダムな論理アドレスに対してホスト装置からのデータ書き込みが発生すると、この引越し処理が頻発して書きこみ性能が低下する傾向がある。
近年のNAND型フラッシュメモリでは、大容量化に伴って、ブロックのサイズが大きくなる傾向がある。ブロックのサイズが大きくなるにつれて、ブロック間のデータコピー時間が長くなり、引越し時間の最大値が長くなる。よって、ランダムな論理アドレスへのデータ書き込みに対するメモリカード内での書き込み時間(ビジー時間)が長くなってしまう。
一方、ビジー時間を短くするためにランダムな論理アドレスへのデータ書き込み処理の時間を短縮することに特化したデータ書き込み処理を採用すると、シーケンシャルな論理アドレスに対するデータ書き込み速度が低下してしまう。
また、この種の関連技術として、記憶デバイスの性能を推測する技術が開示されている(特許文献1参照)。
特開2006−178923号公報
本発明は、データ書き込み速度を向上することが可能な記憶装置を提供する。
本発明の第1の視点に係る記憶装置は、データを格納する複数のメモリブロックと、データを一時的に格納するバッファとを含み、かつデータの消去がブロック単位で行われる不揮発性半導体メモリと、一回の書き込みコマンドに対する書き込みデータが所定サイズ以下の場合に、前記書き込みデータを前記バッファに書き込むコントローラとを具備する。
本発明の第2の視点に係る記憶装置は、データを格納する複数のメモリブロックを含み、かつデータの消去がブロック単位で行われる不揮発性半導体メモリと、各メモリブロックを2つのブロック部分に分けて管理し、かつ第1のメモリブロックのある領域に対してデータの書き込み要求が発生した場合に、前記領域のアドレスに関係なく、データ消去済みの第2のメモリブロックのうち前記領域に対応するブロック部分の先頭から前記書き込み要求のデータを書き込むコントローラとを具備する。
本発明によれば、データ書き込み速度を向上することが可能な記憶装置を提供することができる。
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
[1]記憶装置及びホスト装置の構成
本実施形態では、記憶装置としてメモリカードを一例に説明する。メモリカードは、例えば、ホスト装置に対して着脱可能なように構成される。しかし、これに限定されず、記憶装置及びホスト装置を1つのLSI(Large-Scale Integrated Circuit)として構成してもよい。すなわち、ホスト装置が実装されたプリント基板上に、記憶装置を構成するコントローラ及び不揮発性半導体メモリが実装されるようにしてもよい。
図1は、本発明の一実施形態に係るホスト装置10及びメモリカード20の構成を示すブロック図である。メモリカード20は、ホスト装置10に装着可能なように構成されている。そして、メモリカード20は、通常、ホスト装置10に装着されて使用され、ホスト装置10に対して一種の外部記憶媒体として用いられる。
メモリカード20は、不揮発性半導体メモリ22を備えている。本実施形態では、不揮発性半導体メモリ22として、例えば、データの書き込み及び消去を電気的に行う、EEPROM(Electrically Erasable Programmable Read Only Memory)の一種であるNAND型フラッシュメモリ22を例に説明する。なお、図1には、NAND型フラッシュメモリ22が1個よりなる構成を示しているが、2つ以上のNAND型フラッシュメモリ22が配置されていてもよい。
NAND型フラッシュメモリ22を構成する各フラッシュメモリセル(メモリセルトランジスタ)は、半導体基板上にトンネル絶縁膜を介して電荷蓄積を目的とする浮遊ゲート電極、ゲート間絶縁膜、制御ゲート電極が積層形成されたスタックゲート構造を有している。そして、複数個のメモリセルトランジスタを、隣接するもの同士でソース領域若しくはドレイン領域を共有するような形で列方向に直列接続させ、その両端に選択ゲートトランジスタを配置して、NANDセルユニットが構成される。
このユニットが行方向(ワード線WLの延在方向)に複数個配列されてブロックが構成される。このブロックがデータ消去単位となる。1個のブロックのうち同じワード線WLに接続された複数のメモリセルは1ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
NAND型フラッシュメモリ22は、複数のブロックを備えており、1つのブロックは複数のページにより構成されている。また、NAND型フラッシュメモリ22は、記憶領域31とランダムライトバッファ32とを備えている。記憶領域31は、論理アドレスに基づいて、ホスト装置10から転送された書き込みデータを格納する。また、記憶領域31は、メモリカード20を使用するユーザが自由にアクセス及び使用することが可能なユーザーデータ領域などであり、ユーザーデータなどを格納する。
ランダムライトバッファ32は、ホスト装置10から転送された書き込みデータのうち、後述する所定の書き込みデータを一時的に格納する。ランダムライトバッファ32は、記憶領域31と同様にNAND型フラッシュメモリから構成されており、また複数のブロックから構成されている。そして、ランダムライトバッファ32の各ブロックは、データ書き込み単位である複数のページから構成されている。
メモリカード20は、ホスト装置10とNAND型フラッシュメモリ22との間に設けられ、かつホスト装置10の指示に基づいてフラッシュメモリ22を制御するコントローラ21を備えている。コントローラ21は、ホストインターフェース回路23、MPU(Micro Processing Unit)24、ROM(Read Only Memory)25、RAM(Random Access Memory)26、メモリインターフェース回路27、バス28、及びRAMバッファ29を備えている。
ホストインターフェース回路23は、コネクタ(図示せず)を介してホスト装置10と接続されており、MPU24の制御のもと、所定のプロトコルに従ってコマンド或いは各種データ等の送受信をホスト装置10との間で行う機能ブロックである。
MPU24は、バス28を介してメモリカード20全体の動作を統括的に制御するものである。MPU24は、例えばメモリカード20が電源供給を受けたときに、ROM25等に格納されたファームウェアに基づいてメモリカード20の基本的な制御を実行する。また、MPU24は、ホスト装置10からライトコマンド、リードコマンド、或いは消去コマンド等を受け取り、NAND型フラッシュメモリ22に対してデータ転送処理を実行する。
メモリインターフェース回路27は、バスを介してNAND型フラッシュメモリ22に接続されており、NAND型フラッシュメモリ22のアクセスに必要な一連のメモリアクセス制御を実行する。具体的には、メモリインターフェース回路27は、MPU24の制御に基づいて、NAND型フラッシュメモリ22に対する、書き込み動作、読み出し動作、或いは消去動作などを実行する。
ROM25は、ファームウェアや制御プログラムなどを格納する。このファームウェアは、メモリカード20の基本的な制御を行うためのプログラムである。制御プログラムは、コントローラ21がホスト装置10との間でデータ転送を行う際にMPU24によって使用されるプログラムを含む。また、制御プログラムは、コントローラ21がNAND型フラッシュメモリ22との間でデータ転送を行う際にMPU24によって使用されるプログラムを含む。RAM26は、MPU24の作業エリアとして使用され、各種のテーブルなどを記憶する。
RAMバッファ29は、ホスト装置10から送られたデータ、及びNAND型フラッシュメモリ22から読み出されたデータを一時的に格納する。すなわち、NAND型フラッシュメモリ22から読み出されたデータは、ホスト装置10の受け取り準備ができるまでRAMバッファ29に一時的に格納される。また、ホスト装置10から送られたデータは、NAND型フラッシュメモリ22の書き込み準備が完了するまでRAMバッファ29に一時的に格納される。
ホスト装置10は、装着されるメモリカード20に対してアクセスを行うためのハードウェア及びソフトウェア(システム)を備えている。ホスト装置10としては、画像データ、音楽データ或いはIDデータなどの各種データを処理するパーソナルコンピュータ、デジタルカメラ、或いは携帯電話端末等を含む情報処理装置が挙げられる。
[2]メモリカード20に適用される規格
本実施形態のメモリカード20は、タイムアウトに関する規定、及びスピードクラスに関する規定を満たすようにデータ転送動作を実行する。以下に、タイムアウトに関する規定、及びスピードクラスに関する規定について説明する。なお、本実施形態では、SDTMメモリカードを例に説明する。
[2−1]タイムアウトに関する規定
SDTMメモリカード規格では、512バイト(B)ごとのデータブロック転送を行う。そして、メモリカード20は、一定時間(タイムアウト期間)内に、データブロックの書き込みを行う必要がある。具体的には、SDTMメモリカード規格では、512Bのデータブロックの転送時間ごとのビジー(Busy)時間が規定されている。このビジー時間は、ホスト装置10からメモリカード20へデータブロックが送られた場合に、このデータブロックをメモリカード20が受け入れるために必要な時間である。
また、最大ビジー時間は、250msと規定されている。したがって、メモリカード20では、いかなる状況においても、ホスト装置10から転送された512Bのデータブロックの受け入れ処理を最大ビジー時間内に終了しなくてはならない。
なお、以下の説明において、データブロックと表記した場合には、データ転送を行う際のデータの固まりをいうものとする。一方、単にブロックと表記した場合には、NAND型フラッシュメモリの消去単位であるメモリブロックをいうものとする。
[2−2]スピードクラスに関する規定
SDTMメモリカード規格では、メモリカードの性能を表すためのスピードクラスが定義されている。このスピードクラスは、一定の論理アドレス範囲(例えば、4MBアドレス境界ごと)に一定の速度での書き込みが可能であることを保証するものである。この一定の論理アドレス範囲をSDTMメモリカード規格ではAU(Allocation Unit)と呼んでいる。また、スピードクラスでは、16KB単位でのマルチブロックライトで書き込みを行った際の性能と規定されている。
例えば1GB以上の容量を有するメモリカードについては、AUは4MB(最大値)と決まっている。そして、このAUごとの書き込み速度(最低保証速度)が、クラス6は6MB/s以上、クラス4は4MB/s以上、クラス2は2MB/s以上であることを保証する必要がある。
[3]データ書き込み動作
次に、ホスト装置10からメモリカード20へのデータ書き込み動作について説明する。このデータ書き込み動作には、シングルブロックライトとマルチブロックライトとがある。また、データ書き込みは、所定サイズ(例えば512B)のデータの固まりからなるデータブロックを単位として行われる。シングルブロックライトとは、一回のライトコマンドに続いて1つのデータブロックのみがホスト装置10から転送され、この1つのデータブロックずつ書き込みを行う方式である。マルチブロックライトとは、一回のライトコマンドに続いて連続した複数のデータブロックがホスト装置10から転送され、この連続した複数のデータブロックの書き込みを行う方式である。
ここで、ホスト装置10は、512Bのデータブロックを単位としてランダムな書き込みを行う。このようなランダムな書き込みでは、ブロックの一部のみのデータを書き換える処理(上書き処理)が多発する。NAND型フラッシュメモリ22ではブロック単位でしかデータの消去を行えない。
このため、ブロックの一部のみを書き換える場合には、消去済みブロックを別に用意し、この消去済みブロックに書き換える新データを書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータを消去済みブロックにコピーする必要がある。したがって、ブロックの一部のみを書き換える処理は、書き換えられないデータの引越し処理を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが非常に増大することになる。
本実施形態では、データの引越し処理を低減することで、データの書き換えにかかる時間を低減するようにしている。すなわち、データ書き換えが発生した場合、論理アドレスに関係なく、書き込むべき新データを消去済みの物理ブロックに書き込む。さらに、この際、書き込むべき新データを消去済みの物理ブロックの先頭ページから順に書き込む。(以下、ページシフト方式という)。
図2は、ページシフト方式におけるデータ書き換え動作を説明するための概略図である。図2では、1つのブロックが10ページで構成されている。また、論理ブロックAのページ1〜10にはあらかじめ任意のデータが書き込まれている。例えば、物理ブロックAのページ1からページ10には、論理ブロックAと同じデータが書き込まれている。また、物理ブロックBは、消去済みのブロックである。
ホスト装置10は、ライトコマンドを発行し、メモリカード20に対して、論理ブロックAのページ3〜5に、新データを上書きする。すると、コントローラ21は、この新データを、新たな消去済みの物理ブロックBのうち論理アドレスに対応するページには書き込まず、物理ブロックBの先頭ページ(ページ1)から順に新データを書き込む。このとき、コントローラ21は、書き込み要求の対象となっているページ(物理ブロックAのページ3〜5)のアドレスを、新データが書き込まれたページの冗長領域に同時に書き込んでおく。そして、この状態で、新データの上書き処理を終了する。
このような処理を行うことで、論理ブロックAにデータを上書きする際に、データの引越し処理が不要となる。これにより、論理ブロックAへの書き換え動作を高速に行うことが可能となる。データ読み出しの際には、コントローラ21は、ページ内の冗長領域に格納されたアドレスを参照することで、データ読み出し対象のデータが格納されている位置を求めることができる。
ところで、このような書き換え動作では、論理ブロックAのページ1〜10に格納された複数のデータは、物理ブロックAと物理ブロックBとに分かれて格納されている。この状況を放置しておくと、データ読み出し動作が遅くなったり、NAND型フラッシュメモリ22の使用率が低下したりしてしまう。
したがって、本実施形態では、データブロックの書き込み処理と平行して、物理ブロックAと物理ブロックBとの2つの領域(DS:Dual sector)に分けて格納されたデータの結合処理(以下、DS結合処理という)を行う。
図3は、物理ブロックAと物理ブロックBとの2つの領域に分けて格納されたデータの結合処理を説明するための概略図である。コントローラ21は、物理ブロックAのうち、新データに対応するページより下側のページ(ページ6〜10)に格納されたデータの引越し処理を実行する。すなわち、コントローラ21は、物理ブロックAのページ6〜10のデータを、物理ブロックBのページ4〜8に書き込む。
続いて、コントローラ21は、物理ブロックAのうち、新データに対応するページより上側のページ(ページ1及び2)に格納されたデータの引越し処理を実行する。すなわち、コントローラ21は、物理ブロックAのページ1及び2のデータを、物理ブロックBのページ9及び10に書き込む。
このようなDS結合処理を行うことで、物理ブロックAと物理ブロックBとに分かれて格納されていたデータを、物理ブロックBにまとめて格納することができる。これにより、物理ブロックAに格納されたデータは、全て無効データとなるため、物理ブロックAのデータを消去して新データを書き込むことが可能となる。NAND型フラッシュメモリ22の使用率が向上する。
このDS結合処理は、コントローラ21によって、データ書き込み動作と平行して行われる。しかし、DS結合処理は、最大でほぼ1ブロック分のデータコピー処理に相当する。このデータコピー処理にかかる時間は、ブロックサイズに起因して変わってくる。したがって、1ブロック分のデータコピー処理が長くかかる場合には、最大ビジー時間を超えてしまい、タイムアウトスペックを満たすことができなくなってしまう。
以下に、タイムアウトスペックを満たすための書き込み動作を、シングルブロックライト及びマルチブロックライトそれぞれについて説明する。
[3−1]シングルブロックライトへの対応
シングルブロックライトでは、ホスト装置10は、512Bのデータブロックを単位としてランダムな書き込みを行う。このようなランダムな書き込みでは、ブロックの一部のみのデータを書き換える処理(上書き処理)が多発する。この場合、書き込みデータを消去済みの物理ブロックに書き込むと、DS結合処理が必要になる。
本実施形態では、DS結合処理が必要になる場合には、コントローラ21は、ホスト装置10から送られたデータブロックをNAND型フラッシュメモリ22内の記憶領域31には直接書き込まず、一時的にランダムライトバッファ32に追記していく。このようにして、DS結合処理ごとに発生するコピー処理(引越し処理)を削減する。ランダムライトバッファ32は、NAND型フラッシュメモリ22内の一定数のメモリブロックを、通常のデータ格納用に使用するメモリブロックとは別に、コントローラ21があらかじめ確保したものである。
図4は、シングルブロックライト動作を示すタイミングチャートである。なお、図4は、ホスト装置10とコントローラ21とを接続するバス上のデータを示している。
まず、コントローラ21は、ホスト装置10から発行されたシングルブロックライトコマンド(SW−CMD)を受け取り、このコマンドを解釈する。続いて、ホスト装置10は、コントローラ21に512Bのデータブロック(書き込みデータ)を送る。
すると、コントローラ21は、ホスト装置10にビジー信号を送る。続いて、コントローラ21は、最大ビジー時間を越えない範囲で、ホスト装置10から送られたデータブロックの受け入れ処理(具体的には、データブロックをRAMバッファ29に一時的に書き込む処理)を実行する。コントローラ21は、この受け入れ処理が完了すると、ビジーを解除する。その後、コントローラ21は、このデータブロックをランダムライトバッファ32に追記する。
同様に、コントローラ21は、次のSW−CMDに対しても、データブロックの受け入れ処理を実行し、さらに、このデータブロックをランダムライトバッファ32に追記する。このような処理により、1つのデータブロックを書き換えるために発生していたデータの引越し処理を削減することができる。
ただし、ランダムライトバッファ32のサイズは有限であり、NAND型フラッシュメモリ22の容量を有効に使用するためにはランダムライトバッファ32のサイズはなるべく小さくする必要がある。そのため、ランダムライトバッファ32に書き込まれたデータは、適切な方法で記憶領域31内の物理ブロックに書き戻していく必要がある。この処理を本実施形態では「整理」と呼ぶ。この整理は、記憶領域31のある物理ブロックのデータと、その物理ブロックに対応するランダムライトバッファ32中のデータとを結合して、有効データが含まれない別の物理ブロックに書き写す処理である。
コントローラ21は、ランダムライトバッファ32のエントリー数の空きが例えば2個以下、或いは、ブロックあたりのランダムライトバッファ32のデータ数の最大が所定数(1或いは2以上)以上になった場合、ランダムライトバッファ32に格納されている書き込みデータが最も多く含まれるブロックを優先的に整理して、ランダムライトバッファ32内の書き込みデータを記憶領域31に書き写す。
これは、1つのブロックに対してなるべく多くの書き込みデータをランダムライトバッファ32に貯めてから整理した方が一度に多くの書き込みデータを処理できるので、ランダムライトバッファ32の空き領域を効率よく増やすことができ、さらに、必要なランダムライトバッファ32のサイズを小さく抑えることができるからである。このとき、この整理に伴う1ブロック分の引越し処理(データコピー処理)は例えばブロックの1/2ずつ、2回のシングルブロックライトのビジー期間に分けて行い、1ブロック分のデータコピー時間が長い場合でもタイムアウトを防ぐようにする。
図5は、シングルブロックライト動作を説明するための概略図である。記憶領域31は、説明の理解を容易にするために、4つのブロックA〜Dにより構成されているものとする。前述したように、DS結合処理が必要になる場合、シングルブロックライト動作では、ランダムライトバッファ32に512Bの書き込みデータが順に追記されていく。
図5に示すように、ランダムライトバッファ32には、7個の書き込みデータ(A1〜A3、B1、B2、C1、D1)が格納されている。書き込みデータA1〜A3は、ブロックAの論理アドレスに対応する書き込みデータ(ブロックAに書き込まれるべきデータ)である。同様に、書き込みデータB1及びB2はブロックBの論理アドレスに対応する書き込みデータ、書き込みデータC1はブロックCの論理アドレスに対応する書き込みデータ、書き込みデータD1はブロックDの論理アドレスに対応する書き込みデータである。
ここで、ランダムライトバッファ32のエントリー数の空きが例えば2個以下となった場合、ブロックあたりのランダムライトバッファ32のデータ数が最大であるブロックAを整理対象とする。そして、書き込みデータA1〜A3をブロックAに書き写すとともに、ブロックAの引越し(書き換えられないデータの引越し)処理を行う。
さらに、ブロックAの引越し処理は、2回のデータブロックの受け入れ処理のビジー期間中に行う。すなわち、図4に示した1回目のビジー期間中にブロックAの引越し処理の1/2を行い、2回目のビジー期間中にブロックAの引越し処理の残りを行う。
シングルブロックライトでの上書き動作において、上記のような処理を行うことで、1回のライト処理に伴う引越し処理を低減することができる。これにより、シングルブロックライト動作を高速に行うことが可能となる。また、ブロックの引越し処理を2回のデータブロック書き込み処理に分けて行うことで、引越し処理に起因するタイムアウトを防ぐことができる。
なお、シングルブロックライトにおける上記説明では、DS処理が必要な場合に、ランダムライトバッファ32にデータを書き込むようにしている。しかし、データを書き換える必要がない場合、又はデータの書き換えがデータコピーを伴わない場合にも、ランダムライトバッファ32にデータを書き込むようにしてもよい。
[3−1−1]ランダムライトバッファ32に必要なエントリー数
次に、ランダムライトバッファ32のサイズについて説明する。ランダムライトバッファ32のエントリー数は、シングルブロックライトにおいて、どのような論理アドレスへのデータ書き込みが発生した場合でも、ランダムライトバッファ32が溢れることがないように設定される。なお、エントリー数は、ランダムライトバッファ32にバッファリング可能な有効データ数である。また、ランダムライトバッファ32はNAND型フラッシュメモリにより構成されているので、エントリー数は、ランダムライトバッファ32のページ数に対応する。
本実施形態では、2回のデータ書き込み処理に分けて引越し処理(ランダムライトバッファ32の整理を含む)を行う。この2回のデータ書き込み処理により、ランダムライトバッファ32内には2個の書き込みデータが増えることになる。したがって、引越し処理中の2回のデータ書き込み処理の間に、ランダムライトバッファ32内のバッファリングデータを2個整理(すなわち、記憶領域31内のブロックに書き写す)すれば、ランダムライトバッファ32が書き込みデータで溢れることがない。
ここで、記憶領域31のブロック数をN個とする。また、ランダムライトバッファ32にバッファリング可能な有効データ数をM個とする。N及びMはそれぞれ、1以上の整数である。
「M=N+4」とすると、(N+2)個までランダムライトバッファ32が埋まったときに、同じブロックに関係付けられたバッファリングデータが2個以上あるブロックが常に1つは存在する。したがって、このブロックを引越し対象とすると、新たな書き込みデータがランダムライトバッファ32にバッファリングされる間に1つのブロックを整理することができる。その際、このブロックに関係付けられた2個以上のバッファリングデータがランダムライトバッファ32から整理される。
よって、上記条件を満たす少なくともM個のエントリー数をランダムライトバッファ32内に用意することで、ランダムライトバッファ32の空きが減少することがなく、かつランダムライトバッファ32が書き込みデータで溢れることがない。
以下に、具体的なデータ書き込み動作を説明しながら、ランダムライトバッファ32のバッファリング可能な有効データ数について説明する。図6は、ランダムライトバッファ32に書き込まれたデータとランダムライトバッファ32のバッファリング可能な有効データ数との関係を示す図である。なお、メモリカード20は、8個の論理ブロックA〜Hを備えているものとする。また、図6では、ランダムライトバッファ32に書き込まれたデータがどの論理ブロックに関係付けられているかが分かるように、書き込みデータを論理ブロックA〜Hごとに分けて示している。
ステップ(1)において、ホスト装置10は、論理ブロックAにデータ“1”を書き込む。これに対応して、コントローラ21は、データ“1”をランダムライトバッファ32に書き込む。このとき、ランダムライトバッファ32内の有効データ数は“1”である。続いて、ステップ(2)において、ホスト装置10は、論理ブロックBにデータ“2”を書き込む。これに対応して、コントローラ21は、データ“2”をランダムライトバッファ32に書き込む。このとき、ランダムライトバッファ32内の有効データ数は“2”である。
以下同様に、ステップ(3)〜(11)において、ホスト装置10は、データ“3”〜データ“11”を順に図6に示した論理ブロックに書き込む。これに対応して、コントローラ21は、データ“3”〜データ“11”をランダムライトバッファ32に順に書き込む。ステップ(11)のとき、ランダムライトバッファ32内の有効データ数は“11”である。
続いて、ステップ(12)において、ホスト装置10は、論理ブロックDにデータ“12”を書き込む。これに対応して、コントローラ21は、ブロックAの1/2の引越し処理を行う。また、コントローラ21は、データ“12”をランダムライトバッファ32に書き込む。このとき、ランダムライトバッファ32内の有効データ数は“12”である。
続いて、ステップ(13)において、ホスト装置10は、論理ブロックEにデータ“13”を書き込む。これに対応して、コントローラ21は、ブロックAの残りの1/2の引越し処理を行う。これにより、論理ブロックAに関係付けられたデータ“1”及び“9”が記憶領域31に書き写されたため、ランダムライトバッファ32内のデータ“1”及び“9”は、無効データとなる。図6では、データにマイナスを付けて無効データを示している。また、コントローラ21は、データ“13”をランダムライトバッファ32に書き込む。このとき、ランダムライトバッファ32内の有効データ数は“11”である。
以下同様に、ステップ(14)〜(19)を参照して、データ“14”〜データ“19”がランダムライトバッファ32に順に書き込まれる。このとき、ステップ(14)及び(15)において、コントローラ21は、ブロックBの引越し処理を行う。また、ステップ(16)及び(17)において、コントローラ21は、ブロックCの引越し処理を行う。また、ステップ(18)及び(19)において、コントローラ21は、ブロックGの引越し処理を行う。
これらの処理において、図6に示すように、ランダムライトバッファ32内の有効データ数の上限は“12”であり、したがってランダムライトバッファ32に必要なエントリー数は“12”となる。すなわち、前述した記憶領域31のブロック数Nと、ランダムライトバッファ32にバッファリング可能な有効データ数Mとの関係式を満たすことで、ランダムライトバッファ32が書き込みデータで溢れることがない。
[3−1−2]ランダムライトバッファ32のガベージコレクション
ランダムライトバッファ32はNAND型フラッシュメモリにより構成されるため、ランダムライトバッファ32の任意の物理アドレスには書き込めず、バッファ内に追記していくことになる。一方、ランダムライトバッファ32を整理することでランダムライトバッファ32から除かれる有効データの位置はランダムライトバッファ32内のあちこちのアドレスに分散しているため、無効データの位置に対しても新たなデータを直接書き込むことはできない。したがって、あるタイミングでのガベージコレクションが必要となる。なお、ガベージコレクションとは、不要になった無効データを解放してデータ領域を利用可能な状態(すなわち追記によるデータ書き込みが可能な状態)に戻す処理である。
本実施形態では、ガベージコレクションは、例えば下記(1)〜(4)の条件を満たすように行われる。
(1)1回のランダムライトバッファ32へのデータ書き込みのたびに、4ページずつのガベージコレクションを行う。これにより、1回のシングルブロックライト動作でのビジー期間中に行うガベージコレクションの処理時間を少なくすることができるため、タイムアウトを防ぐことができる。
(2)ランダムライトバッファ32へのデータ書き込みは、最も空きが少ないブロックから優先的に行う。
(3)無効データの数(ガベージの数)が1ブロックの1/4以上あり、かつ、最もガベージが多いブロックをガベージコレクションの対象とする。
(4)ランダムライトバッファ32のブロック数は、ランダムライトバッファ32に必要なエントリー数から算出される最低必要なブロック数をLとすると、“(4/3)L+1”個に設定される。
これらの条件を満たすようにランダムライトバッファ32のブロック数を設定する。すると、ランダムライトバッファ32が(4/3)L個のブロックまで埋まったとき、必ず1/4以上のガベージがあるブロックが1個は存在する。このブロックのガベージコレクションを行うためには、1/4ブロック分の新規書き込みが必要であるが、その結果、1/4ブロックの空きができる。このため、ランダムライトバッファ32がガベージで溢れることがない。
図7は、ランダムライトバッファ32のガベージコレクション動作を説明するための概略図である。ランダムライトバッファ32に必要なエントリー数から算出される最低必要なブロック数を3ブロックとすると、上記(4)の条件を満たすランダムライトバッファ32のブロック数は、5個となる。この様子を図7に示している。すなわち、ランダムライトバッファ32は、5つのブロックa〜eにより構成されている。この5つのブロックのうち1つのブロックeは、作業用して使用され、データが消去された空き状態である。
ブロックa〜dには、それぞれ有効データ及び無効データ(ガベージ)が格納されている。なお、図7は、ブロック内のデータ量を示した図であり、ブロック内のデータの順番は実際と異なっている。
図7に示すように、ブロックa〜dが一杯に埋まった場合、1/4ブロック以上がガベージとなるブロックが1個は存在する。このブロックをガベージコレクションの対象とする。例えばブロックaをガベージコレクションの対象とすると、ブロックa内の有効データが作業用のブロックeに引越しされる。
また、このガベージコレクションは、前述したように4ページずつ行われるので、ガベージコレクション中に新たにランダムライトバッファ32に書き込まれた追加データについても、作業用のブロックeに書き込まれる。このようなガベージコレクション動作を行うことで、ランダムライトバッファ32内の無効データを整理することができる。
次に、具体的なガベージコレクション動作について説明する。記憶領域31の論理ブロック数を20個とする。ランダムライトバッファ32の構成は、1ブロックが8ページ(8エントリ)とする。よって、ランダムライトバッファ32の最低必要なブロック数は、(20+4)/8=3ブロックである。また、ランダムライトバッファ32のブロック数は、(4/3)・3+1=5ブロックである。この5ブロックをブロックa〜eとする。
図8は、具体的なガベージコレクション動作を説明するための概略図である。図9は、ランダムライトバッファ32に含まれるブロックの空きエントリー数を説明するための図である。
ブロックa〜dまでが一杯にデータで埋まった段階では、ランダムライトバッファ32には、32個分のデータエントリがある。ランダムライトバッファ32内の有効データはこのうちの24個以下であるので、8個以上が無効データである。したがって、最低でも2個の無効データがあるブロックが存在する。このうちの1つのブロックをガベージコレクションの対象とする。ガベージコレクションの対象をブロックaとし、これをブロックeに整理するものとする。
図8において、ブロックaには、データ1、2、5、8、11、12、14、18が書き込まれており、このうちのデータ2及び11が無効データである。1回目のシングルブロックライト動作(データ33の書き込み)において、4ページ分のデータ1、5、8、12のブロックeへの引越しと、新規書き込みデータ33のブロックeへの書き込みとが行われる。
続いて、2回目のシングルブロックライト動作(データ34の書き込み)において、残りのページ分のデータ14及び18のブロックeへの引越しと、新規書き込みデータ34のブロックeへの書き込みとが行われる。このようにして、2回の書き込み動作で、ブロックaのガベージコレクションを行うことができる。その後、ブロックaのデータを消去することで、ブロックaが次の作業用ブロックとなる。
図9に示すように、ブロックaのガベージコレクションを行った結果、ブロックaの空きエントリー数が8になる。同様に、ブロックb〜e内の有効データ数は最大で24個であるので、このうちの最低8個は無効データである。したがって、2個以上の無効データが存在するブロックが必ず1つは存在する。このブロックをブロックbとすると、これをブロックaに整理する。
また、ブロックa、c、d、e内の有効データ数は最大で24個であるので、このうちの最低8個は無効データである。したがって、2個以上の無効データが存在するブロックが必ず1つは存在する。このブロックをブロックcとすると、これをブロックbに整理する。このようにしてブロックを順に整理することで、ランダムライトバッファ32がガベージで溢れることがない。
[3−2]マルチブロックライトへの対応
次に、マルチブロックライト動作について説明する。本実施形態のメモリカード20は、ホスト装置10から、マルチブロックライトコマンドに続いて送られる連続した複数のデータブロックに対しての書き込みを行うことも可能である。また、マルチブロックライトは、これらの複数のデータブロックが連続した論理アドレスに対するデータ書き込みである。
図10は、マルチブロックライト動作を示すタイミングチャートである。なお、図10は、ホスト装置10とコントローラ21とを接続するバス上のデータを示している。
まず、コントローラ21は、ホスト装置10から発行されたマルチブロックライトコマンド(MW−CMD)を受け取り、このコマンドを解釈する。続いて、ホスト装置10は、コントローラ21に512Bのデータブロック(書き込みデータ)を送る。
すると、コントローラ21は、ホスト装置10にビジー信号を送る。続いて、コントローラ21は、最大ビジー時間を越えない範囲で、ホスト装置10から送られたデータブロックの受け入れ処理(具体的には、データブロックをRAMバッファ29に一時的に書き込む処理)を実行する。コントローラ21は、この受け入れ処理が完了すると、ビジーを解除する。その後、コントローラ21は、このデータブロックをNAND型フラッシュメモリ22の記憶領域31に書き込む。また、コントローラ21は、DS結合処理が必要な場合は、このデータブロックに対応するビジー期間中に、データブロックの受け入れ処理と平行して、DS結合処理の1/2を行う。
続いて、ホスト装置10は、コントローラ21に次のデータブロックを送る。すると、コントローラ21は、ホスト装置10にビジー信号を送る。続いて、コントローラ21は、最大ビジー時間を越えない範囲で、ホスト装置10から送られたデータブロックの受け入れ処理を実行する。コントローラ21は、この受け入れ処理が完了すると、ビジーを解除する。その後、コントローラ21は、このデータブロックをNAND型フラッシュメモリ22の記憶領域31に書き込む。また、コントローラ21は、このデータブロックに対応するビジー期間中に、データブロックの受け入れ処理と平行して、DS結合処理の残りの1/2を行う。
同様に、コントローラ21は、ホスト装置10から送られた複数のデータブロックを受け取る。そして、コントローラ21は、それぞれのデータブロックに対応するビジー期間中に、DS結合処理を1/2ずつ行う。
続いて、ホスト装置10は、複数のデータブロックを全て送り終えると、ストップコマンド(ST−CMD)を発行する。コントローラ21は、このストップコマンド(ST−CMD)を受け取り、このコマンドを解釈する。これにより、コントローラ21は、今回のマルチブロックライトコマンド(MW−CMD)に対するデータ転送が終了したことを認識する。
なお、マルチブロックライトコマンド(MW−CMD)に続いて1つのデータブロックのみが転送される場合もある。図11は、マルチブロックライト動作の他の例を示すタイミングチャートである。
コントローラ21は、ホスト装置10から発行されたマルチブロックライトコマンド(MW−CMD)を受け取り、このコマンドを解釈する。続いて、ホスト装置10は、コントローラ21にデータブロックを送る。すると、コントローラ21は、最大ビジー時間を越えない範囲で、ホスト装置10から送られたデータブロックの受け入れ処理を実行する。また、コントローラ21は、DS結合処理が必要な場合は、このデータブロックに対応するビジー期間中に、データブロックの受け入れ処理と平行して、DS結合処理の1/2を行う。
ここで、1つのデータブロックの後に、ホスト装置10からストップコマンド(ST−CMD)が送られてきた場合、コントローラ21は以後、シングルブロックライトの場合と同じ処理を実行する。すなわち、コントローラ21は、上記データブロックをランダムライトバッファ32に追記する。このような処理により、マルチブロックライトコマンドに続いて1つのデータブロックしか送られてこない場合でも、データの引越し処理を削減することができる。
ところで、本実施形態では、同一のブロックに対して2回のマルチブロックライト動作が行われた場合にデータのコピー量が最大で1/2ブロックで済むようにする。すなわち、1つのブロックを2つの領域に分けて管理し、この2つの領域それぞれについて、データ書き換えが発生した場合に、論理アドレスに関係なく、書き込むべき新データを消去済みの物理ブロックのうち対応する領域の先頭ページから順に行う(以下、デュアルページシフト方式という)。
図12及び図13は、デュアルページシフト方式におけるデータ書き換え動作を説明するための概略図である。図12及び図13では、1つのブロックが10ページで構成される。また1つの物理ブロックは、ページ1〜5からなる領域1と、ページ6〜10からなる領域2とに分割されて管理される。また、論理ブロックAのページ1〜10にはあらかじめ任意のデータが書き込まれている。物理ブロックAのページ1〜10には、例えば論理ブロックAと同じデータが書き込まれている。また、物理ブロックBは、消去済みの物理ブロックである。
図12に示すように、ホスト装置10は、メモリカード20に対して、論理ブロックAの領域1内のページ2及びページ3に、データブロック1(データ1)及びデータブロック2(データ2)をそれぞれ連続して書き込む。すると、コントローラ21は、データ1及びデータ2を、消去済みの物理ブロックBのうち論理アドレスに対応するページには書き込まず、物理ブロックBの領域1の先頭ページ(ページ1)から順に書き込む(ステップS101)。このとき、コントローラ21は、書き込み要求の対象となっているページ(物理ブロックAのページ2及び3)のアドレスを、新データが書き込まれたページの冗長領域に同時に書き込んでおく。
続いて、図13に示すように、ホスト装置10は、メモリカード20に対して、論理ブロックAの領域2内のページ8及びページ9に、データブロック3(データ3)及びデータブロック4(データ4)をそれぞれ連続して書き込む。すると、まずコントローラ21は、物理ブロックAの領域1に書き込まれたデータの引越し処理を実行する。すなわち、コントローラ21は、物理ブロックAのページ4及び5のデータを、物理ブロックBのページ3及び4にそれぞれ書き込む(ステップS102)。続いて、コントローラ21は、物理ブロックAのページ1のデータを、物理ブロックBのページ5に書き込む(ステップS103)。
続いて、コントローラ21は、データ3及びデータ4を、物理ブロックBのうち論理アドレスに対応するページには書き込まず、物理ブロックBの領域2の先頭ページ(ページ6)から順に書き込む(ステップS104)。このとき、コントローラ21は、書き込み要求の対象となっているページ(物理ブロックAのページ8及び9)のアドレスを、新データが書き込まれたページの冗長領域に同時に書き込んでおく。
このような処理を行うことで、論理ブロックAの領域1にデータを上書きする際に、データの引越し処理が不要となる。これにより、領域1への書き換え動作を高速に行うことが可能となる。さらに、論理ブロックAの領域2にデータを上書きする際に、最大のデータコピー量を1/2ブロックに抑えることができる。これにより、引越し処理にかかる時間を低減することができる。この結果、タイムアウトを防ぐことができる。
[4]データ書き込みの一連の動作
次に、ライトコマンド(シングルブロックライトコマンド或いはマルチブロックライトコマンド)を受け取ってから、このライトコマンドに関する一連の書き込み処理が終了するまでの動作について説明する。
図14及び図15は、ライトコマンドに関する一連の動作を示すフローチャートである。ホスト装置10からライトコマンドを受け取ると(ステップS201)、コントローラ21は、DS結合処理が必要であるか否かを判定する(ステップS202)。DS結合処理が必要でない場合、コントローラ21は、デュアルページシフト方式を用いて引越し処理を実行した後、データ書き込み処理(データ受け入れ処理を含む)を実行する。(ステップS203)。
ステップS202においてDS結合処理が必要である場合、コントローラ21は、ホスト装置10から受け取ったライトコマンドを解釈する(ステップS204)。このライトコマンドがシングルブロックライトコマンドである場合、コントローラ21は以後、シングルブロックライト動作を実行する。
すなわち、ホスト装置10からデータブロックを受け取ると(ステップS205)、コントローラ21は、このデータブロックをランダムライトバッファ32に追記する(ステップS206)。続いて、コントローラ21は、シングルブロックライト動作によるブロックの引越し処理の途中(すなわち、ブロックの1/2の引越し処理が終了している状態)であるか否かを判定する(ステップS207)。
引越し処理の途中でない場合、コントローラ21は、ランダムライトバッファ32の空きエントリー数が2以下であるか否かを判定する(ステップS208)。空きエントリー数が2以下である場合、コントローラ21は、ランダムライトバッファ32に格納されたデータが最も多いブロックの引越し処理を1/2だけ実行する(ステップS209)。
続いて、コントローラ21は、ランダムライトバッファ32のガベージコレクション処理を実行する(ステップS210)。その後、コントローラ21は、ビジーを解除する(ステップS211)。
ステップS207において引越し処理の途中である場合、コントローラ21は、残りの引越し処理を実行する(ステップS212)。そして、コントローラ21は、ステップS210に以降して、ランダムライトバッファ32のガベージコレクション処理を実行する。
ステップS208において空きエントリー数が2より多い場合、コントローラ21は、ステップS210に移行して、ランダムライトバッファ32のガベージコレクション処理を実行する。
一方、ステップS204においてシングルブロックライトコマンドでない場合、コントローラ21は以後、マルチブロックライト動作を実行する。すなわち、ホスト装置10からデータブロックを受け取ると(ステップS301)、コントローラ21は、DS結合処理が必要であるか否かを判定する(ステップS302)。DS結合処理が必要でない場合、コントローラ21は、ステップ317に移行して、続くデータブロックを受け取る。そして、コントローラ21は、記憶領域31へのデータ書き込み処理を実行する。
ステップS302においてDS結合処理が必要である場合、コントローラ21は、1/2分のDS結合処理を実行する(ステップS303)。続いて、コントローラ21は、ストップコマンド(ST−CMD)を受け取ったか否かを監視している(ステップS304)。ストップコマンド(ST−CMD)を受け取った場合、コントローラ21は、DS結合処理を中断する(ステップS305)。そして、コントローラ21は、ステップS206に移行して、以後シングルブロックライトと同じ処理を実行する。
ステップS304においてストップコマンド(ST−CMD)を受け取らなかった場合、コントローラ21は、1/2分のDS結合処理を継続し、このDS結合処理が終了すると(ステップS306)、ビジー(Busy)を解除する(ステップS307)。
続いて、コントローラ21は、ストップコマンド(ST−CMD)を受け取ったか否かを監視している(ステップS308)。ストップコマンド(ST−CMD)を受け取った場合、コントローラ21は、DS結合処理を中断して(ステップS305)、以後シングルブロックライトと同じ処理を実行する。
ステップS308においてストップコマンド(ST−CMD)を受け取らず、データブロックを受け取ると(ステップS309)、コントローラ21は、残りのDS結合処理を実行する(ステップS310)。続いて、コントローラ21は、ストップコマンド(ST−CMD)を受け取ったか否かを監視している(ステップS311)。ストップコマンド(ST−CMD)を受け取った場合、コントローラ21は、残りのDS結合処理を継続する(ステップS312)。残りのDS結合処理が終了すると(ステップS313)、コントローラ21は、ビジーを解除する(ステップS314)。
ステップS311においてストップコマンド(ST−CMD)を受け取らなかった場合、コントローラ21は、残りのDS結合処理を継続し、このDS結合処理が終了すると(ステップS315)、ビジーを解除する(ステップS316)。続いて、コントローラ21は、続くデータブロックを受け取り、記憶領域31へのデータ書き込み処理を実行する(ステップS317)。このようにして、ライトコマンドを受け取ってからの一連の処理が行われる。
以上詳述したように本実施形態によれば、シングルブロックライト及びマルチブロックライトそれぞれについて、メモリカード規格におけるタイムアウトスペック及びスピードクラススペックを満たすことが可能となる。
また、シングルブロックライトにおいては、DS結合処理が必要になる場合には、データブロックを記憶領域31には書き込まず、ランダムライトバッファ32に書き込むようにしている。これにより、データの引越し処理を削減することができる。さらに、ランダムライトバッファ32内の無効データを順次整理することで、ランダムライトバッファ32の容量を小さく抑えることが可能となる。
また、マルチブロックライトにおいては、ビジー期間中にDS結合処理を分割して行うことで、タイムアウトスペックを満たしつつ各データブロックの受け入れ処理を行うことができる。さらに、デュアルページシフト方式を用いることで、データ引越し量を低減することができる。これにより、データ引越しにかかる時間を低減することができる。
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係るホスト装置10及びメモリカード20の構成を示すブロック図。 ページシフト方式におけるデータ書き換え動作を説明するための概略図。 物理ブロックAと物理ブロックBとの2つの領域に分けて格納されたデータの結合処理を説明するための概略図。 シングルブロックライト動作を示すタイミングチャート。 シングルブロックライト動作を説明するための概略図。 ランダムライトバッファ32に書き込まれたデータとランダムライトバッファ32のバッファリング可能な有効データ数との関係を示す図。 ランダムライトバッファ32のガベージコレクション動作を説明するための概略図。 具体的なガベージコレクション動作を説明するための概略図。 ランダムライトバッファ32に含まれるブロックの空きエントリー数を説明するための図。 マルチブロックライト動作を示すタイミングチャート。 マルチブロックライト動作の他の例を示すタイミングチャート。 デュアルページシフト方式におけるデータ書き換え動作を説明するための概略図。 図12に続くデュアルページシフト方式におけるデータ書き換え動作を説明するための概略図。 ライトコマンドに関する一連の動作を示すフローチャート。 図14に続くライトコマンドに関する一連の動作を示すフローチャート。
符号の説明
10…ホスト装置、20…メモリカード、21…コントローラ、22…NAND型フラッシュメモリ、23…ホストインターフェース回路、24…MPU、25…ROM、26…RAM、27…メモリインターフェース回路、28…バス、29…RAMバッファ、31…記憶領域、32…ランダムライトバッファ。

Claims (10)

  1. データを格納する複数のメモリブロックと、データを一時的に格納するバッファとを含み、かつデータの消去がブロック単位で行われる不揮発性半導体メモリと、
    一回の書き込みコマンドに対する書き込みデータが所定サイズ以下の場合に、前記書き込みデータを前記バッファに書き込むコントローラと
    を具備することを特徴とする記憶装置。
  2. 前記コントローラは、前記書き込みデータによりメモリブロックのデータを書き換える必要がある場合に、前記書き込みデータを前記バッファに書き込むことを特徴とする請求項1に記載の記憶装置。
  3. 前記コントローラは、第1のメモリブロックに対応する所定数の書き込みデータが前記バッファに格納された場合、或いは前記バッファの空き容量が所定値以下になった場合に、前記所定数の書き込みデータをデータ消去済みの第2のメモリブロックに書き込むことを特徴とする請求項1に記載の記憶装置。
  4. 前記コントローラは、前記書き込みデータを受け入れる間に、前記第1のメモリブロックに格納されたデータのうち前記所定数の書き込みデータのアドレス以外のデータを前記第2のメモリブロックにコピーすることを特徴とする請求項3に記載の記憶装置。
  5. 前記コントローラは、前記書き込みデータを受け入れる処理を一定時間内に行い、かつこの一定時間を越えないように、前記コピー処理を分割して行うことを特徴とする請求項4に記載の記憶装置。
  6. 前記バッファは、第1及び第2のバッファブロックを含み、
    前記コントローラは、前記書き込みデータを受け入れる間に、前記第1のバッファブロックに格納されたデータのうち前記第2のメモリブロックに既に書き込まれたデータ以外を前記第2のバッファブロックにコピーすることで、前記バッファのデータを整理することを特徴とする請求項3乃至5のいずれかに記載の記憶装置。
  7. 前記コントローラは、一回の書き込みコマンドに対する書き込みデータが前記所定サイズより大きい場合に、この書き込みデータを前記所定サイズの複数のデータ単位に分けて受け入れ、かつ前記複数のデータ単位のそれぞれを受け入れる間に、メモリブロック間のデータコピーを部分的に行うことを特徴とする請求項1に記載の記憶装置。
  8. 前記コントローラは、前記複数のデータ単位のそれぞれを受け入れる処理を一定時間内に行い、かつこの一定時間を越えないように、前記データコピーを分割して行うことを特徴とする請求項7に記載の記憶装置。
  9. データを格納する複数のメモリブロックを含み、かつデータの消去がブロック単位で行われる不揮発性半導体メモリと、
    各メモリブロックを2つのブロック部分に分けて管理し、かつ第1のメモリブロックのある領域に対してデータの書き込み要求が発生した場合に、前記領域のアドレスに関係なく、データ消去済みの第2のメモリブロックのうち前記領域に対応するブロック部分の先頭から前記書き込み要求のデータを書き込むコントローラと
    を具備することを特徴とする記憶装置。
  10. 前記コントローラは、前記第1のメモリブロックに格納されたデータのうち前記書き込み要求のデータのアドレス以外のデータを前記第2のメモリブロックにコピーし、かつこのデータコピーをブロック部分ごとに行うことを特徴とする請求項9に記載の記憶装置。
JP2006338718A 2006-12-15 2006-12-15 記憶装置 Pending JP2008152464A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006338718A JP2008152464A (ja) 2006-12-15 2006-12-15 記憶装置
US11/955,926 US8356134B2 (en) 2006-12-15 2007-12-13 Memory device with non-volatile memory buffer
KR1020070131105A KR100939145B1 (ko) 2006-12-15 2007-12-14 메모리 디바이스
US13/367,779 US9058254B2 (en) 2006-12-15 2012-02-07 Memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006338718A JP2008152464A (ja) 2006-12-15 2006-12-15 記憶装置

Publications (1)

Publication Number Publication Date
JP2008152464A true JP2008152464A (ja) 2008-07-03

Family

ID=39654584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006338718A Pending JP2008152464A (ja) 2006-12-15 2006-12-15 記憶装置

Country Status (3)

Country Link
US (2) US8356134B2 (ja)
JP (1) JP2008152464A (ja)
KR (1) KR100939145B1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム
JP2011059889A (ja) * 2009-09-08 2011-03-24 Toshiba Corp メモリシステム
JP2013531291A (ja) * 2010-06-01 2013-08-01 グリーンライアント リミテッド ライアビリティ カンパニー Nandメモリのブロックベースファイルシステムへログベースバファリングを用いて書き込む方法
TWI410795B (zh) * 2009-06-23 2013-10-01 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
US8601219B2 (en) 2008-03-12 2013-12-03 Kabushiki Kaisha Toshiba Memory system
US8688896B2 (en) 2009-05-21 2014-04-01 Panasonic Corporation High speed writing mode in memory controller, nonvolatile storage device, accessing device, nonvolatile storage system, and method and program for writing data
JP2016091534A (ja) * 2014-10-30 2016-05-23 株式会社東芝 メモリシステム及びプログラム
CN111858389A (zh) * 2019-04-30 2020-10-30 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8417895B1 (en) 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8775741B1 (en) 2009-01-13 2014-07-08 Violin Memory Inc. Using temporal access patterns for determining prefetch suitability
US8285961B2 (en) * 2008-11-13 2012-10-09 Grid Iron Systems, Inc. Dynamic performance virtualization for disk access
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8099543B2 (en) 2009-02-03 2012-01-17 Micron Technology, Inc. Methods of operarting memory devices within a communication protocol standard timeout requirement
JP2010211618A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 半導体記憶装置
US8977805B2 (en) 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
US8650362B2 (en) 2009-04-17 2014-02-11 Violin Memory Inc. System for increasing utilization of storage media
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8402246B1 (en) 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
JP5640572B2 (ja) * 2010-09-01 2014-12-17 富士通株式会社 情報処理装置、情報処理プログラムおよびコピー処理方法
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US9043543B2 (en) 2011-05-23 2015-05-26 International Business Machines Corporation Writing of new data of a first block size in a raid array that stores both parity and data in a second block size
US8954668B2 (en) 2011-05-23 2015-02-10 International Business Machines Corporation Writing of data of a first block size in a raid array that stores and mirrors data in a second block size
WO2014120660A1 (en) * 2013-01-29 2014-08-07 Marvell World Trade Ltd. Methods and apparatus for storing data to a solid state storage device based on data classification
KR102025240B1 (ko) * 2013-04-01 2019-11-04 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
EP2981965A4 (en) * 2013-04-02 2017-03-01 Violin Memory Inc. System for increasing storage media performance
TWI498899B (zh) * 2013-08-23 2015-09-01 Phison Electronics Corp 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN104423888B (zh) * 2013-08-23 2017-10-03 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
CN104423892A (zh) * 2013-08-29 2015-03-18 宏碁股份有限公司 数据写入方法、磁盘模块以及数据写入系统
US9218282B2 (en) * 2013-10-31 2015-12-22 Micron Technology, Inc. Memory system data management
US10102118B2 (en) * 2014-10-30 2018-10-16 Toshiba Memory Corporation Memory system and non-transitory computer readable recording medium
US11347637B2 (en) 2014-10-30 2022-05-31 Kioxia Corporation Memory system and non-transitory computer readable recording medium
KR20170059658A (ko) 2015-11-23 2017-05-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
TWI615711B (zh) * 2017-03-28 2018-02-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
JP6968016B2 (ja) * 2018-03-22 2021-11-17 キオクシア株式会社 ストレージデバイスおよびコンピュータシステム
KR20200110547A (ko) 2019-03-14 2020-09-24 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
TWI725416B (zh) * 2019-04-23 2021-04-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN111966285B (zh) * 2020-07-20 2022-09-06 四川虹美智能科技有限公司 向eeprom存储数据的方法、主控芯片和系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002324008A (ja) * 2001-04-26 2002-11-08 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2003177974A (ja) * 2001-12-11 2003-06-27 Mitsubishi Electric Corp ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
WO2005066790A1 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Management of non-volatile memory systems having large erase blocks
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
JP2005276071A (ja) * 2004-03-26 2005-10-06 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005339231A (ja) * 2004-05-27 2005-12-08 Toshiba Corp メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006018839A (ja) * 2004-06-30 2006-01-19 Samsung Electronics Co Ltd 漸進的マージ方法及びそれを利用したメモリシステム
WO2006065655A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
WO2006065668A2 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Non-volatile memory and method with multi-stream updating
WO2006065575A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
WO2006065566A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Scratch pad block

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652723A (en) * 1991-04-18 1997-07-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
JPH1185609A (ja) * 1997-09-09 1999-03-30 Mitsubishi Electric Corp 半導体記憶装置及びそのデータ管理方法
JP4086345B2 (ja) * 1997-09-09 2008-05-14 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6028807A (en) * 1998-07-07 2000-02-22 Intel Corporation Memory architecture
US7120761B2 (en) * 2000-12-20 2006-10-10 Fujitsu Limited Multi-port memory based on DRAM core
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP4326294B2 (ja) * 2003-09-16 2009-09-02 株式会社ルネサステクノロジ 半導体記憶装置
JP2005092659A (ja) * 2003-09-19 2005-04-07 Nec Electronics Corp データ書込・読出制御装置、及びデータ書込・読出制御方法
JP4722704B2 (ja) * 2003-10-31 2011-07-13 パナソニック株式会社 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
US7159068B2 (en) * 2003-12-22 2007-01-02 Phison Electronics Corp. Method of optimizing performance of a flash memory
JP4874588B2 (ja) 2004-07-12 2012-02-15 株式会社東芝 記憶デバイスおよびホスト機器
JP4713867B2 (ja) * 2004-09-22 2011-06-29 株式会社東芝 メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
KR100664933B1 (ko) * 2004-12-15 2007-01-04 삼성전자주식회사 비휘발성 저장장치에 멀티미디어 데이터를 블록 단위로저장하는 방법 및 장치
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
WO2006137147A1 (ja) * 2005-06-24 2006-12-28 Vodafone K.K. データ通信方法、データ通信システム及び移動通信端末装置
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
KR100729358B1 (ko) * 2005-08-29 2007-06-15 삼성전자주식회사 멀티 버퍼 프로그램 스킴을 갖는 플래시 메모리 장치
KR100736928B1 (ko) * 2005-12-05 2007-07-10 삼성전자주식회사 호스트 디바이스 간의 데이터 통신이 가능한 복합기기 및호스트 디바이스 간의 데이터 통신방법
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
JP2010211618A (ja) 2009-03-11 2010-09-24 Toshiba Corp 半導体記憶装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002324008A (ja) * 2001-04-26 2002-11-08 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2003177974A (ja) * 2001-12-11 2003-06-27 Mitsubishi Electric Corp ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
WO2005066790A1 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Management of non-volatile memory systems having large erase blocks
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
JP2005276071A (ja) * 2004-03-26 2005-10-06 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005339231A (ja) * 2004-05-27 2005-12-08 Toshiba Corp メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006018839A (ja) * 2004-06-30 2006-01-19 Samsung Electronics Co Ltd 漸進的マージ方法及びそれを利用したメモリシステム
WO2006065655A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
WO2006065668A2 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Non-volatile memory and method with multi-stream updating
WO2006065575A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
WO2006065566A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Scratch pad block

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015421B2 (en) 2008-03-12 2015-04-21 Kabushiki Kaisha Toshiba Memory system
US8601219B2 (en) 2008-03-12 2013-12-03 Kabushiki Kaisha Toshiba Memory system
US8688896B2 (en) 2009-05-21 2014-04-01 Panasonic Corporation High speed writing mode in memory controller, nonvolatile storage device, accessing device, nonvolatile storage system, and method and program for writing data
TWI410795B (zh) * 2009-06-23 2013-10-01 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
JP5362010B2 (ja) * 2009-07-29 2013-12-11 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム
US8301850B2 (en) 2009-09-08 2012-10-30 Kabushiki Kaisha Toshiba Memory system which writes data to multi-level flash memory by zigzag interleave operation
JP2011059889A (ja) * 2009-09-08 2011-03-24 Toshiba Corp メモリシステム
JP2013531291A (ja) * 2010-06-01 2013-08-01 グリーンライアント リミテッド ライアビリティ カンパニー Nandメモリのブロックベースファイルシステムへログベースバファリングを用いて書き込む方法
US8838878B2 (en) 2010-06-01 2014-09-16 Greenliant Llc Method of writing to a NAND memory block based file system with log based buffering
JP2016091534A (ja) * 2014-10-30 2016-05-23 株式会社東芝 メモリシステム及びプログラム
CN111858389A (zh) * 2019-04-30 2020-10-30 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置
CN111858389B (zh) * 2019-04-30 2023-07-04 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置

Also Published As

Publication number Publication date
KR20080055734A (ko) 2008-06-19
US20090006725A1 (en) 2009-01-01
KR100939145B1 (ko) 2010-01-28
US20120137057A1 (en) 2012-05-31
US9058254B2 (en) 2015-06-16
US8356134B2 (en) 2013-01-15

Similar Documents

Publication Publication Date Title
JP2008152464A (ja) 記憶装置
US11880602B2 (en) Data writing method and storage device
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR102467032B1 (ko) 메모리 스케줄링 방법 및 메모리 시스템의 동작방법
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US10168940B2 (en) Data storage using SLC and TLC memory banks and data maintenance method thereof
JP5090819B2 (ja) メモリーカード及び該データ格納方法
US7610442B2 (en) Dual journaling store method and storage medium thereof
JP2008009942A (ja) メモリシステム
JPH11134875A (ja) 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
US8271721B2 (en) Data writing method and data storage device
JP5330549B2 (ja) ストレージ機能を持つ通信装置
JPWO2011118114A1 (ja) 不揮発性記憶装置及びメモリコントローラ
CN113590505B (zh) 地址映射方法、固态硬盘控制器及固态硬盘
KR101363422B1 (ko) 비휘발성 메모리 시스템
CN113467713A (zh) 数据分离方法及固态硬盘
JP2008197981A (ja) 半導体記憶装置
US11029854B2 (en) Memory controller for concurrently writing host data and garbage collected data and operating method thereof
KR20090046568A (ko) 플래시 메모리 시스템 및 그것의 쓰기 방법
JP2007249662A (ja) メモリカード及びメモリカードの制御方法
JP4273038B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP4985108B2 (ja) データ記憶装置およびその制御方法
JP2006048227A (ja) メモリ装置、メモリ装置の制御方法およびデータ処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120807