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

JP5193822B2 - 追記型メモリデバイス - Google Patents

追記型メモリデバイス Download PDF

Info

Publication number
JP5193822B2
JP5193822B2 JP2008295843A JP2008295843A JP5193822B2 JP 5193822 B2 JP5193822 B2 JP 5193822B2 JP 2008295843 A JP2008295843 A JP 2008295843A JP 2008295843 A JP2008295843 A JP 2008295843A JP 5193822 B2 JP5193822 B2 JP 5193822B2
Authority
JP
Japan
Prior art keywords
data
physical address
address
write
user area
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.)
Active
Application number
JP2008295843A
Other languages
English (en)
Other versions
JP2010122898A (ja
Inventor
曜久 藤本
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 JP2008295843A priority Critical patent/JP5193822B2/ja
Priority to US12/562,380 priority patent/US8489802B2/en
Priority to KR1020090111404A priority patent/KR101128594B1/ko
Publication of JP2010122898A publication Critical patent/JP2010122898A/ja
Application granted granted Critical
Publication of JP5193822B2 publication Critical patent/JP5193822B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、追記型メモリデバイスの書き込み制御に関する。
ビデオレコーダは、その小型化に伴い、メモリカードのような不揮発性記録媒体に画像データをリアルタイム記録する必要性に迫られている。同時に、ビデオ画像の高画質化により4MB/sec程度のビットレートでの安定した書き込み性能が要求される。
しかし、FAT (File Allocation Tables)ファイルシステムによりメモリデータを管理すると、書き込みと消去とを繰り返すうちにフラグメンテーションと呼ばれるデータの断片化が発生する。このフラグメンテーションは、メモリの性能を著しく低下させるため、上述のようなリアルタイム記録が難しくなる。
NANDフラッシュメモリを例にとると、フラグメンテーションを有するNANDブロックに対する書き込みでは、リアルタイム記録に加えて、既にそのNANDブロック内に記録されているデータを別のNANDブロックに記録し直す作業が必要になるため、書き込み時間のオーバーヘッドが生じてメモリの性能が低下する。
また、従来のリアルタイム記録においては、エラーが発生すると、ホスト装置とメモリカードとの間のデータ転送を一時中断して、リトライ処理を行う必要があるため、書き込み効率が低下する(例えば、特許文献1を参照)。
さらに、リトライ処理中においては、リアルタイム記録を行うことができないため、データを喪失してしまう可能性がある。
具体的には、メモリカードは、ランダムアクセスメモリのコマンド体系により読み出し/書き込みが制御される。この場合、リアルタイム記録中にエラーが発生すると、メモリカードは、ホスト装置にエラーを通知する。ホスト装置は、エラーの通知を受けると、データ転送を一時中断し、リトライ処理を行うために、リトライ処理中に得た画像データについてはリアルタイム記録できなくなる。
以上のようなことから、安定した書き込み性能でリアルタイム記録が可能な技術の開発が望まれていた。
特開2004−326165号公報
本発明は、安定した書き込み性能でリアルタイム記録を可能にする技術を提案する。
本発明の例に係る追記型メモリデバイスは、不揮発性半導体メモリと、前記不揮発性半導体メモリを追記方式で制御するコントローラとを備え、前記不揮発性半導体メモリは、ホストからの直接アクセスが可能とされるユーザエリアと、前記コントローラにより管理されるシステムエリアとを有し、再フォーマットされた前記不揮発性半導体メモリの前記ユーザエリアに対するデータ書き込みが、前記再フォーマット直前に前記ユーザエリア内に記録された旧追記データの最終の物理アドレスの後方のある未使用領域を開始点とし、またその開始点がユーザエリアの最終の物理アドレスを超えた場合はユーザエリアの先頭の物理アドレスを開始点として順に書き込む。
本発明によれば、安定した書き込み性能でリアルタイム記録を可能にする。
以下、図面を参照しながら、本発明の例を実施するための最良の形態について詳細に説明する。
1. 概要
本発明の例に係わるメモリデバイスは、コントローラを有するインテリジェントメモリデバイス、例えば、ファイルメモリとしてフラッシュメモリなどの不揮発性半導体メモリを使用し、データをアドレスの小さい方から順に書いていく追記型メモリカードや追記型メモリデバイスを対象とする。
一般に、CD-R, CD-RW, DVD-R, DVD-RWなどの追記型メディア (recordable media)は、コントローラを有しないため、UDF (Universal Disk Format)のようなファイルシステムによるエラー処理が必要になる。しかし、インテリジェントメモリデバイスにおいては、エラーを検出したときは、ファイルシステムによりエラー処理を行わずに、インテリジェントデバイス内のコントローラにより処理を行う。
例えば、フラッシュメモリを搭載したメモリカードの場合、書き込み時に発生した回復可能なエラーに対しては、ホスト装置にエラーを通知せずに、コントローラがエラー処理を行うことで、ファイルシステムの負担を減らし、書き込み時のエラー処理の効率化を図る。
追記型書き込みでは、データを分断することなく連続的に書き込むことが可能なので、DMA (Direct Memory Access)コントローラなどのハードウエアによりデータ転送を制御することにより、高効率のデータ転送と安定した書き込み性能とを実現できる。また、CRC (Cycle Redundancy Check)エラーについては、データ再送要求を出すことにより、データ転送の中断を回避できる。
書き込みエラーが発生した場合に、アドレス変換テーブルによる代替処理を行うと、この変換テーブルが大きいために、チップコストが高くなる。一方、アドレス変換テーブルを小さくすると、コントローラの負担が増大する。
そこで、本発明の例に係わるメモリデバイスでは、再フォーマットされた不揮発性半導体メモリのユーザエリアに対するデータ書き込みは、再フォーマット直前にユーザエリア内に記録されていた旧追記データの最終の物理アドレスの次の物理アドレスから順に行うことにする。
但し、旧追記データの最終の物理アドレスがユーザエリアの最終の物理アドレスであるときは、データ書き込みは、ユーザエリアの先頭の物理アドレスから順に行う。
また、データ書き込みは、新追記データがユーザエリアの最終の物理アドレスに到達したときは、これに引き続き、ユーザエリアの先頭の物理アドレスから順に行う。
このように、ユーザエリアについては、リアルタイム記録ごとに、使用する物理アドレスをローテーションさせるアドレスマッピングを行うことで、メモリが均等に使用されるようになり、不良アドレス(例えば、バッドブロック)の発生を防止できると共に、アドレス変換テーブルも不要になる。
即ち、アドレス変換テーブルについては、システムエリアのみに適用すればよいため、コントローラの負担の増大なしに、チップコストを低くすることができる。
2. 実施形態
(1) システム構成
図1は、本発明のメモリデバイスが適用されるシステムの例を示している。
ホスト装置1は、書き込みデータを一時的に記録するバッファメモリ2を有する。ホスト装置1は、ソフトウェア(例えば、ROMに記録されたプログラム)に従い、ファイルシステムを制御する。
メモリデバイス(例えば、メモリカード)3は、コントローラ4及びファイルメモリとしてのフラッシュメモリ(例えば、NAND-Flash ROM)5を備える。
コントローラ4は、ホストインターフェイスモジュール(HIM)6、マイクロプロセッサユニット(MPU)7、バッファメモリ(Buffer memory)8、ROM(read only memory)9、RAM(random access memory)10、及び、アクセスコントローラ(Flash Cont.)11を有する。また、ホストインターフェイスモジュール6は、レジスタ(REG)12を有する。
ホストインターフェイスモジュール6は、ホスト装置1から転送されるコマンドを解釈し、バスプロトコルを管理する。マイクロプロセッサユニット7は、コマンドにより指定される処理を実行する。バッファメモリ8は、フラッシュメモリ5に対する書き込みデータを一時的に記録する。
ROM9は、プログラムデータを記録し、RAM10は、マイクロプロセッサユニット7で処理するデータを一時的に記録する。
アクセスコントローラ11は、読み出し/書き込み時にフラッシュメモリ5に対するアクセスを制御する。
そして、ホストインターフェイスモジュール6内のレジスタ12は、ホスト装置1に転送するメモリデバイス3の情報を一時的に記録する。
また、書き込み時に、CRCエラーなどの回復可能なエラーが発生したときに、コントローラ4がエラー処理を行う。コントローラ4がエラー処理を行うことで、ファイルシステムの負担を減らし、データ転送の中断を防止する。
尚、上述のシステムにおいて、コントローラ4は、図1に開示される要素以外の要素を含んでいてもよい。
また、ファイルメモリは、フラッシュメモリ5ではなく、次世代メモリデバイス、例えば、Re(resistive)RAM、M(magnetic)RAM、P(phase change)RAMなどであってもよい。
(2) 第1実施例
システムは、図1に示す通りである。
第1実施例では、メモリデバイス3において、ホスト装置1から送られてきた書き込みデータは、バッファメモリ8内に一時的に保存される。バッファメモリ8内に正しくデータが保存されない場合、例えば、CRCエラーが発生した場合には、コマンドレベルでのデータ再送要求を出し、正しいデータを再取得する。
即ち、メモリデバイス3からホスト装置1に対してデータ再送要求を通知することにより、データ転送を中断させずにエラー処理を行う。
バッファメモリ8内に正しくデータが保存された場合、アクセスコントローラ11は、フラッシュメモリ5に対して書き込みを指示する。フラッシュメモリ5において書き込みエラーが発生した場合には、バッファメモリ8内に保存されているデータを用いてリトライ処理を行うため、この場合にはデータ再送要求は必要としない。
しかし、リトライ処理が行えなかった場合は、ホスト装置1に対してエラーを通知してデータ転送を中断させる必要がある。但し、その確率は非常に小さい。
第1実施例では、主として、CRCエラーを対象とする。CRCエラーとは、ノイズなどの外的要因によるデータ化けのことである。1のホスト装置と3のメモリデバイス間のインタフェースプロトコルにおいて送信側はデータに相関したCRCコードが埋め込み受信側がCRCコードの正当性を確認することで受け取ったデータに誤りがないかどうかを確認できる。
図2は、一般的なエラー処理方法を示している。
Data2をホスト装置からメモリデバイスに転送中にエラーが発生した場合、CRCステータスによってエラーがホスト装置に通知される。ホスト装置は、CMD(command)12を発行することによりデータ転送を一時中断する。例えば、Data2の書き込みが完了していない場合は、再び、Data2の書き込み(リトライ)を行う。
図3は、第1実施例のエラー処理方法を示している。
Data2をホスト装置からメモリデバイスに転送中にエラーが発生した場合、CRCステータスによってエラー及びデータ再送要求がホスト装置に通知される。ホスト装置は、データ再送要求を認識すると、直ちにData2を再送する。Data2の書き込みが成功すると、ホスト装置は、続けてData3を転送する。
ここで、このようなデータ再送機能については、図1のホスト装置1とメモリデバイス3との間で互換性を持たせる必要がある。
そこで、例えば、図1のレジスタ12は、データ再送機能の有無を示す再送ステータスと、データ再送機能を有効/無効に切り換える再送フラグとを有する。但し、再送フラグは、レジスタ12以外のメモリデバイス3内のメモリに記録させてもよい。
データ再送機能を有するメモリデバイスとデータ再送機能に対応するホスト装置とによりシステムを構成すれば、ホスト装置は、例えば、初期化時に再送ステータスを確認し、事前に再送フラグを有効に設定しておくことが可能である。
データ再送機能が有効の場合、メモリデバイス内のコントローラがCRCエラーを検出しても、ホスト装置が続けて同じデータを再送してくると判断し、バッファメモリ8及びフラッシュメモリ5に対する書き込みを進める。但し、連続して同じデータにCRCエラーが発生した場合は、ホスト装置は、データ再送を中断する。
また、データ再送機能が無効の場合、メモリデバイス内のコントローラがCRCエラーを検出すると、コントローラは、CRCエラーを検出したことのみをホスト装置に通知し、書き込み処理を中断する。
(3) 第2実施例
システムは、図1に示す通りである。
第2実施例では、メモリデバイス3において、書き込みデータがメモリエリア内の特定アドレスに正しく記録されなかったときに、特定アドレスに対応する代替フラグにエラーの発生を記録し、その特定アドレス及び書き込みデータを代替エリア内に記録する。
この場合、エラー処理は、コントローラ4内で行われ、エラーの発生は、ホスト装置1に通知されない。このため、ファイルシステムの負担が減り、このような回復可能なエラーが発生したときにデータ転送が中断することもない。
第2実施例は、追記型ファイルシステムによってフォーマットされ、書き込みデータが連続するアドレスに順番に記録されるメモリデバイスに適用される。
図4は、メモリの初期フォーマット状態を示している。
物理アドレス (Physical Address)は、例えば、1つのNANDブロック(消去ブロック)のブロックアドレスに対応し、自然数(0を含むものとする)で表される。ユーザエリアUAの物理アドレスは、0,1,2,3,4,5,6,…S−2,S−1であり、システムエリアSAの物理アドレスは、S,S+1,S+2,…である。
1つの物理アドレスに対応する記録エリアは、メインデータを記録するメイン記録部分 (Recorded Date)と冗長データを記録する冗長部分 (Extra Data)とから構成される。
メイン記録部分において、Freeは、未記録の状態、Systemは、システムデータを示している。冗長部分には、代替フラグ (Flag)と代替アドレス (Address)が記録される。代替フラグと代替アドレスは、1つの消去ブロックに対して1つずつあればよい。また、冗長部分内の代替フラグと代替アドレスの位置を検索する手段を付加してもよい。
ユーザエリアUAは、読み出し/書き込みコマンドによりホストから直接アクセスできるが、システムエリアSAは、メモリデバイス内のコントローラによって管理され、ホストからアクセスできないエリアである。代替エリアRAは、システムエリアSAの一部である。システムエリアSAの容量は、ユーザエリアUAの容量に比べて非常に小さい。
本発明の例に係わる追記型メモリのメモリ管理方式では、システムエリアのみにアドレス変換テーブルを設け、ユーザエリアに対しては、以下で説明するように、使用する物理アドレスをローテーションさせるアドレスマッピングを行う。このため、アドレス変換テーブルを使用しない。即ち、アドレス変換テーブルについては、システムエリアのみに適用すればよいため、チップコストを低くすることができる。
図5は、初期フォーマット状態からData 1〜Data Nを書き込んだ状態を示している。
初期フォーマット状態から、例えば、マルチブロックライトコマンドによりデータを書き込む場合には、論理アドレスと物理アドレスとが一致している。
ユーザエリアUAにおいて、追記データData 1〜Data Nは、論理アドレス (Logical Address)0〜N−1に対応する物理アドレス0〜N−1のメイン記録部分に記録される。
ここで、論理アドレス0にData 1が書き込まれ、論理アドレス1にData 2が書き込まれた後に、論理アドレス2に対するData 3の書き込みが失敗した場合を検討する。
この場合、Data 3を代替エリアRA内の物理アドレスSに書き込み、物理アドレスSの代替アドレスに、論理アドレス2又はそれを示すデータを書き込む(ここでは、単に、“2”で示している)。また、物理アドレス2の代替フラグを“1”にして、物理アドレス2が不良であることを示すと共に、代替アドレスに、Data 3が書き込まれた物理アドレスS又はそれを示すデータを書き込む(ここでは、単に、“S”で示している)。
これらの情報は、読み出し時に使用される。
この後、論理アドレス3にData 4が書き込まれ、最後に、論理アドレスN−1にData Nが書き込まれる。
このように、物理アドレス2が不良の場合、一般的な追記型メディアでは、データ転送を一時中断し、物理アドレス2をスキップして、次の物理アドレス3にデータを記録するのに対し、第2実施例では、データ転送を中断することなく、代替アドレスSにデータを記録する。
尚、追記データData 1〜Data Nの記録に使用した論理アドレス0〜N−1の数Nは、ユーザエリアUA内の全ての論理アドレス0〜S−1の数Sよりも小さいものとする。即ち、N及びSは、共に、自然数とし、N<Sの関係を有する。
図6は、メモリの再フォーマット状態を示している。
再フォーマットは、図5の状態から行われるものとする。
図中の記号又は文字は、図4の初期フォーマット状態におけるそれと同じである。
再フォーマット状態が初期フォーマット状態と異なる点は、不良の物理アドレス2に対応する代替フラグが“1”に設定されていることにある。即ち、物理アドレス2が不良であるという情報が引き継がれている。
図7及び図8は、再フォーマット状態からData 1〜Data Mを書き込んだ状態を示している。
ここで、S、M及びNは、共に、自然数とし、M>S−Nの関係を有するものとする。また、Nは、図4〜図6におけるNと同じものとする。
再フォーマット状態から、例えば、マルチブロックライトコマンドによりデータを書き込む場合には、アドレスマッピングにより、論理アドレスを物理アドレスに変換する。
具体的には、論理アドレス0〜S−N−1については、論理アドレスに“+N”を加算した物理アドレスにデータを書き込む。
例えば、図7において、Data 1は、論理アドレス0に“+N”を加算した物理アドレスNのメイン記録部分に記録され、Data 2は、論理アドレス1に“+N”を加算した物理アドレスN+1のメイン記録部分に記録される。
同様に、Data S-Nは、論理アドレスS−N−1に“+N”を加算した物理アドレスS−1のメイン記録部分に記録される。
また、論理アドレスS−N〜M−1については、論理アドレスに“−(S−N)”を加算した物理アドレスにデータを書き込む。
例えば、図8において、Data S-N+1は、論理アドレスS−Nに“−(S−N)”を加算した物理アドレス0のメイン記録部分に記録され、Data S-N+2は、論理アドレスS−N+1に“−(S−N)”を加算した物理アドレス1のメイン記録部分に記録される。
ここで、物理アドレス2の代替フラグは“1”になっている。
この場合、Data S-N+3は、代替エリアRA内の物理アドレスSに書き込まれ、物理アドレスSの代替アドレスに、論理アドレス2又はそれを示すデータを書き込む(ここでは、単に、“2”で示している)。また、物理アドレス2の代替アドレスに、Data S-N+3が書き込まれた物理アドレスS又はそれを示すデータを書き込む(ここでは、単に、“S”で示している)。
これらの情報は、読み出し時に使用される。
そして、最後に、Data Mは、論理アドレスM−1に“−(S−N)”を加算した物理アドレス(M−1)−(S−N)のメイン記録部分に記録される。
このように、使用する物理アドレスをローテーションさせることにより、メモリが均等に使用されるようにして、不良ブロックの発生などを防止する。
第2実施例は、追記型記録デバイスのメモリ管理に有効である。論理アドレスと物理アドレスが異なるシステムでは任意のアドレス変換が必要であり、それに使用される変換テーブルは大きなものが必要になってしまう。追記型記録の特徴であるアドレスの連続性を活かすことができない。第2実施例によるエラー処理方法は、エラーの発生した箇所のみアドレス変換を行うため、大きなアドレス変換テーブルが不要になる。
(4) 第3実施例
第3実施例は、第2実施例の応用例であり、第2実施例を実現するためのアドレス変換回路に関する。
図9は、図6のアドレスマッピングを実行するアドレス変換回路を示している。
20,23及び24は、レジスタ(REG)、21,25及び27は、セレクタ(SEL)、22は、アドレス変換テーブル、26は、加算器、28は、メモリである。
レジスタ20,23,24の動作は、制御信号C1,C2,C3により制御され、セレクタ21,25,27の切り替えは、制御信号φ1,φ2,φ3により制御される。書き込みデータDwriteは、メモリ28に書き込まれ、読み出しデータDreadは、メモリ28から読み出される。
システムエリアアドレスAsaは、セレクタ21に入力され、ユーザエリアアドレスAuaは、加算器26に入力される。オフセット信号OS1は、レジスタ23に入力され、オフセット信号OS2は、レジスタ24に入力される。
メモリ28において書き込みエラーが発生した場合、読み出し代替アドレスがレジスタ20に記録される。
図5におけるデータ書き込み時には、OS1,OS2=“0”であり、例えば、OS1がセレクタ25を経由して加算器26に入力される。即ち、初期フォーマット状態では、レジスタ23,24には“0”が記録される。
従って、ユーザエリアアドレス(論理アドレス)は、そのまま物理アドレスになる。
Data 3の書き込み時に書き込みエラーが検出されると、読み出し代替アドレスがレジスタ20に記録される。読み出し代替アドレスは、アドレス変換テーブル22により物理アドレスに変換された後、セレクタ27を介してメモリ28に与えられる。
システムエリアでは、ランダムに書き換えが行われる可能性があるため、消去ブロックの置き換えやバッドブロック処理などをアドレス変換テーブル22により制御する。
この書き込みが終了した後には、OS1=“+N”、OS2=“−(S−N)”に設定される。
データ書き込み時には、OS1=“+N”、OS2=“−(S−N)”であり、OS1がセレクタ25を経由して加算器26に入力される。即ち、再フォーマット状態では、レジスタ23には“+N”が記録され、レジスタ24には“−(S−N)”が記録されるが、レジスタ23の出力“+N”のみが加算器26に転送される。
従って、ユーザエリアアドレス(論理アドレス)に“+N”を足した値が物理アドレスになる。
この書き込みが終了した後には、OS1=“+(N+M)”、OS2=“−(S−N−M)”に設定される。
図7及び図8におけるデータ書き込み時には、OS1=“+N”、OS2=“−(S−N)”であり、論理アドレス0〜S−N−1については、OS1がセレクタ25を経由して加算器26に入力され、論理アドレスS−N〜M−1については、OS2がセレクタ25を経由して加算器26に入力される。
従って、ユーザエリアアドレス(論理アドレス)0〜S−N−1に“+N”を足した値が物理アドレスになり、ユーザエリアアドレスS−N〜M−1に“−(S−N)”を足した値が物理アドレスになる。
この書き込みが終了した後には、OS1=“+M−(S−N)”、OS2=“−(S−(M−(S−N)))”に設定される。
(5) ファイルシステムとの連携
本発明の例によれば、追記型記録において、エラーが発生しても、データ転送を中断させることなく、効率の良いデータ転送を可能にする。また、ユーザエリア内の連続するアドレスに書き込みを行うことで、ユーザエリアに対するアドレス変換テーブルを不要とする。さらに、本発明の例は、従来のファイルシステムと連携させることも可能である。
例えば、図1において、コントローラ4は、仮にエラーが回復されなかったときに、その旨をホスト装置1に通知する。ホスト装置1は、コントローラ4からエラーが回復されなかった旨の通知を受けると、データ転送を一時中断し、ファイルシステムのエラー回復機能によりリトライを開始するアドレスを決定する。
ホスト装置1は、コントローラ4からエラーが回復されなかった旨の通知を受けた場合に、コントローラ4から書き込み完了済みのアドレス情報を取得し、再び、エラー発生アドレスから書き込みデータを再送する。
この場合、ホスト装置1は、リトライ処理をエラー発生アドレスから行うことができるため、リトライ処理を効率よく行うことができる。
(6) まとめ
以上、第1乃至第3実施例で説明したように、追記型の特性を生かしたメモリのアドレス管理機能と、CRCエラー発生時のブロックデータ再送機能と、メモリデバイス内のコントローラによるエラー処理機能とにより、書き込み時のデータ転送の中断が防止されるため、ビデオデータなどのリアルタイム記録がデータの紛失なしに実現できる。
3. 適用例
本発明は、追記型ファイルシステムによってフォーマットされる追記型メモリデバイスに適用されるのが最も好ましい。
RAM(ランダムアクセスメモリ)の場合、使用中にファイルのフラグメンテーションが発生するため、連続したアドレスへの書き込みに関しては、途中で中断されてしまう欠点がある。
これに対し、追記型メモリデバイスは、連続したアドレスに対する書き込みが可能である。本発明を追記型メモリデバイスに適用すれば、連続したアドレスに対する書き込みに関して、データ転送の中断なしに行えることになり、ファイルシステムによる書き込み制御が簡素化される。
これにより、例えば、ファイルシステムによるエラー処理が不要になるメリットがある。
また、本発明は、特に、データ書き込みをハードウエアによるDMA(Direct Memory Access)によるデータ転送時に、割り込みによるシステムオーバヘッドを減らす効果があり、リアルタイム記録の用途に適する。
4. むすび
本発明によれば、安定した書き込み性能でリアルタイム記録を可能にする。
本発明の例は、上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施の形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施の形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施の形態の構成要素を適宜組み合わせてもよい。
メモリシステムを示す図。 エラー処理を示す波形図。 エラー処理を示す波形図。 初期フォーマット状態を示す図。 初期フォーマット状態からの書き込みを示す図。 再フォーマット状態を示す図。 再フォーマット状態からの書き込みを示す図。 再フォーマット状態からの書き込みを示す図。 アドレス変換回路を示す図。
符号の説明
1: ホスト装置、 2: バッファメモリ、 3: メモリデバイス、 4: コントローラ、 5: フラッシュメモリ、 6: ホストインターフェイスモジュール、 7: マイクロプロセッサユニット、 8: バッファメモリ、 9: ROM、 10: RAM、 11: アクセスコントローラ、 12,20,23,24: レジスタ, 21,25,27: セレクタ、 22: アドレス変換テーブル、 26: 加算器、 28:メモリ。

Claims (4)

  1. 不揮発性半導体メモリと、前記不揮発性半導体メモリを追記方式で制御するコントローラとを具備し、前記不揮発性半導体メモリは、ホストからの直接アクセスが可能とされるユーザエリアと、前記コントローラにより管理されるシステムエリアとを有し、再フォーマットされた前記不揮発性半導体メモリの前記ユーザエリアに対するデータ書き込みが、前記再フォーマット直前に前記ユーザエリア内に記録された旧追記データの最終の物理アドレスの後方のある未使用領域を開始点とし、またその開始点がユーザエリアの最終の物理アドレスを超えた場合はユーザエリアの先頭の物理アドレスを開始点として順に書き込むことを特徴とする追記型メモリデバイス。
  2. 前記データ書き込みは、新追記データが前記ユーザエリアの最終の物理アドレスに到達したとき、これに引き続き、前記ユーザエリアの先頭の物理アドレスから順に行うようにされたことを特徴とする請求項1に記載の追記型メモリデバイス。
  3. メモリデバイスのメモリ空間の先頭から前記ユーザエリアとして使用できる大きさをSとし、前記開始点の物理アドレスを“N”とし、このデバイスに対して追記を行う論理アドレス0〜(S−1)に対して、論理アドレスが0〜(S−N−1)の範囲では“N”を加算して物理アドレスを求め、論理アドレスが(S−N)〜(S−1)までの範囲では“S−N”を減算して物理アドレスを求めることを特徴とする請求項1に記載の追記型メモリデバイス。
  4. 前記システムエリアは、代替エリアを含み、前記ユーザエリアの特定の物理アドレスに対して書き込みデータの書き込みエラーが発生したときに、前記代替エリアの物理アドレスに前記書き込みデータとエラーが発生した場所の物理アドレスを書き込み、前記特定の物理アドレスでエラーが発生したことを示す代替フラグをアクティブにし、前記特定の物理アドレスの使用を禁止するようにされたことを特徴とする請求項1乃至3のいずれか1項に記載の追記型メモリデバイス。
JP2008295843A 2008-11-19 2008-11-19 追記型メモリデバイス Active JP5193822B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008295843A JP5193822B2 (ja) 2008-11-19 2008-11-19 追記型メモリデバイス
US12/562,380 US8489802B2 (en) 2008-11-19 2009-09-18 Recordable memory device which writes data to reformatted user area of nonvolatile semiconductor memory
KR1020090111404A KR101128594B1 (ko) 2008-11-19 2009-11-18 기록가능 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008295843A JP5193822B2 (ja) 2008-11-19 2008-11-19 追記型メモリデバイス

Publications (2)

Publication Number Publication Date
JP2010122898A JP2010122898A (ja) 2010-06-03
JP5193822B2 true JP5193822B2 (ja) 2013-05-08

Family

ID=42172871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008295843A Active JP5193822B2 (ja) 2008-11-19 2008-11-19 追記型メモリデバイス

Country Status (3)

Country Link
US (1) US8489802B2 (ja)
JP (1) JP5193822B2 (ja)
KR (1) KR101128594B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11061610B2 (en) 2018-06-14 2021-07-13 Toshiba Memory Corporation Memory system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI465905B (zh) 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
TWI483117B (zh) 2010-09-29 2015-05-01 Toshiba Kk 用於執行命令之裝置、主機控制器及用於執行命令之系統
WO2015182439A1 (ja) * 2014-05-26 2015-12-03 ソニー株式会社 記憶装置、記憶システムおよび記憶装置の制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249968A (ja) * 1998-03-05 1999-09-17 Sanyo Electric Co Ltd ファイル記録方法及びファイルシステム
WO2000050997A1 (fr) * 1999-02-22 2000-08-31 Hitachi, Ltd. Carte memoire, procede d'affectation d'adresse logique, et procede d'ecriture de donnees
JP2001051883A (ja) 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3766396B2 (ja) 2003-04-21 2006-04-12 株式会社東芝 メモリ制御装置およびメモリ制御方法
CN1860547B (zh) * 2004-03-23 2011-06-15 松下电器产业株式会社 记录装置、再现装置、记录方法、再现方法和操作方法
EP1712985A1 (en) * 2005-04-15 2006-10-18 Deutsche Thomson-Brandt Gmbh Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
JP2009075889A (ja) * 2007-09-20 2009-04-09 Hitachi Ulsi Systems Co Ltd 不揮発性メモリの書き換え制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11061610B2 (en) 2018-06-14 2021-07-13 Toshiba Memory Corporation Memory system

Also Published As

Publication number Publication date
KR20100056400A (ko) 2010-05-27
JP2010122898A (ja) 2010-06-03
US8489802B2 (en) 2013-07-16
US20100125698A1 (en) 2010-05-20
KR101128594B1 (ko) 2012-03-27

Similar Documents

Publication Publication Date Title
US8244963B2 (en) Method for giving read commands and reading data, and controller and storage system using the same
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
US20070214309A1 (en) Nonvolatile storage device and data writing method thereof
JP4248510B2 (ja) 計算機システム、ディスク装置およびデータ更新制御方法
TW201135746A (en) Method and controller for performing a copy-back operation
JP2004139503A (ja) 記憶装置及びその制御方法
US20070041050A1 (en) Memory management method and system
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US20070168602A1 (en) Information storage device and its control method
TWI451439B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
US8301981B2 (en) Data access method for flash memory and storage system and controller thereof
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP5193822B2 (ja) 追記型メモリデバイス
JPH07281840A (ja) 2重化ディスク記録装置
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2005107838A (ja) ディスクアレイコントローラ及びログ情報記録方法
US7519764B2 (en) Apparatus and method for detecting data validity in flash memory
JPH0877074A (ja) フラッシュメモリを用いた記憶装置システム
US20100218038A1 (en) Storage control device, storage control method, and storage control program
WO2011007511A1 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
JP3845239B2 (ja) ディスクアレイ装置及びディスクアレイ装置における障害復旧方法
US20070174739A1 (en) Disk device, method of writing data in disk device, and computer product
JPH0511933A (ja) ハードデイスクエミユレータ及びその固定キヤツシユエリア割付方法
US8627157B2 (en) Storing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121226

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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130204

R151 Written notification of patent or utility model registration

Ref document number: 5193822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350