JP5458568B2 - 不揮発性記憶装置、情報記録システム、及び情報記録方法 - Google Patents

不揮発性記憶装置、情報記録システム、及び情報記録方法 Download PDF

Info

Publication number
JP5458568B2
JP5458568B2 JP2008330883A JP2008330883A JP5458568B2 JP 5458568 B2 JP5458568 B2 JP 5458568B2 JP 2008330883 A JP2008330883 A JP 2008330883A JP 2008330883 A JP2008330883 A JP 2008330883A JP 5458568 B2 JP5458568 B2 JP 5458568B2
Authority
JP
Japan
Prior art keywords
management information
user data
control unit
data
nonvolatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008330883A
Other languages
English (en)
Other versions
JP2010152703A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008330883A priority Critical patent/JP5458568B2/ja
Priority to US12/644,686 priority patent/US20100169556A1/en
Priority to CN2009102597124A priority patent/CN101763309B/zh
Priority to KR1020090131087A priority patent/KR20100075769A/ko
Publication of JP2010152703A publication Critical patent/JP2010152703A/ja
Application granted granted Critical
Publication of JP5458568B2 publication Critical patent/JP5458568B2/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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • 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/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
    • 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/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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
    • 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/7206Reconfiguration of flash memory system

Description

本発明は、データを安全な状態で保存することができる、不揮発性メモリデバイスを備えた不揮発性記憶装置、不揮発性記憶装置を含む情報記録システム、及び情報記録方法に関する。
近年、半導体メモリデバイス等を備え電気的に書き換え可能な不揮発性記憶装置(以下、「メディア」と称する。)の大容量化に伴い、従来は磁気ディスク等に記憶していたファイルデータを記録するメディアとして、メモリカードなどの補助記憶装置が製品化されている。特に、NAND型フラッシュメモリは、大容量を低コストで実現できるためデジタルカメラや携帯電話端末などの用途に多く使用されるようになっている。
図30に、メディアに対しデータの読出し及び書込みを行うホスト装置として機能する情報記録装置(以下、「ホスト」と称する。)とメディアから構成されるストレージシステムを示す。
ストレージシステムは、ホスト400とメディア300からなり、メディア300はメディアコントローラ310と不揮発性メモリデバイス(NVM:Non-Volatile Memory)350からなる。メディアコントローラ310は、ホストインターフェース320、NVM制御部330及びNVMインターフェース340を備える。メディアコントローラ310は、ホストインターフェース320を経由して受信した所定プロトコルのデータに含まれる情報に基づき、NVM制御部330によって不揮発性メモリデバイス350を制御し、ストレージとしての動作を実現する。
ホスト400は、ストレージを制御するための管理情報用およびユーザデータ用のバッファ部を持ち、バッファリングした管理情報とユーザデータをメディア300へ出力する。このときホスト400は、管理情報又はユーザデータのどちらのデータか判別する手段を持たない同じ方法(同一のプロトコル)で、メディア300へ出力している。このホスト400としては、上記のデジタルカメラや携帯電話端末、パーソナルコンピュータなど、種々の情報記録装置が適用される。
ストレージシステムにおいて、ホスト400はメディア300に対してアクセスするための所定プロトコルを利用する。ホスト400内のソフトウェアレイヤーを、図31に示す。
図31に示すように、主にアプリケーション450、ファイルシステム460、メディア制御ドライバ470から構成される。アプリケーション450は、ユーザの操作等に従いファイルアクセスを行うとき、ファイルシステム460を介してファイルアクセスを指示する。
ホスト400がファイルシステム460を使用してメディア300に対してアクセスするデータには、「ユーザデータ」と、ファイルシステムの「管理情報」の2種類がある。ユーザデータは、アプリケーションを利用したユーザが作成したデータファイルである。一方、管理情報は、そのメディア上に保存されたすべてのユーザデータを管理している重要なデータである。現在、ファイルシステムとしてはFAT(File Allocation Tables)ファイルシステムなどが知られており、FATファイルシステムを例にとれば、管理情報にはBPB,PBR,FAT1,FAT2,ルートディレクトリ、ディレクトリがある。これら2種類のデータはホスト側から見て、1つのストレージ空間に配置される。
ファイルシステム460は、管理情報制御部461とユーザデータアクセス部462を備え、それぞれが管理情報とユーザデータの制御(アクセス制御)を行う。そして、ファイルシステム460からメディア制御ドライバ470へデータアクセス指示を出力する。
メディア制御ドライバ470は、図示しないメディア制御部を制御するソフトウェアであり、ファイルシステム460からのデータアクセス指示を受けて、メディア制御コマンド及びパラメータを、メディアインターフェース480へ出力する。このとき管理情報とユーザデータをメディア制御ドライバ470に出力するようにしている。
メディアインターフェース480は、メディア制御ドライバ470からのデータアクセス指示を受けて、メディアアクセスプロトコルのデータを、メディア300へ出力する。メディア300へ出力されるデータは、アプリケーションで使用する読出し/書込みコマンドの送信パターン(シーケンス)に従って出力される。
ホスト400から送信される読出し/書込みコマンドの送信パターン(シーケンス)には、メディア300からデータを読出すためのコマンドとして例えばREAD_DATA、またデータを書込むためのコマンドとしてWRITE_DATAが含まれている。図32A,Bにそれぞれ、読出しコマンドと書込みコマンドに対するメディア300の処理を表したフローチャートを示している。
読出し処理の場合、図32Aに示すように、NVM制御部330が例えばREAD_DATAコマンドを検出して(ステップS231)、不揮発性メモリデバイス350に対し読み出し制御を行う(ステップS232)。このとき、ECC(Error Correcting Code)の確認、すなわち読出しデータの誤りの有無の確認(ステップS233)などが行われる。
一方、書込み処理の場合、図32Bに示すように、NVM制御部330が例えばWRITE_DATAコマンドを検出して(ステップS235)、不揮発性メモリデバイス350に対し書込み制御を行う(ステップS236)。このとき、不揮発性メモリデバイス350のステータスの確認(ステップS237)などが行われる。
ここで、図33に、ファイルシステムの一例であるFATファイルシステムのストレージ空間の例を示す。
アクセス単位となるセクタ(512Byte)をもとに先頭アドレスを0とした連続するアドレス空間としてストレージ空間が存在する。FATファイルシステムを例として、ストレージ空間を論理フォーマットした結果、先頭アドレスにBPBが配置され、それに続きPBR,FAT1,FAT2,ルートディレクトリが管理情報として配置される。User Data Areaは、ディレクトリとファイルを含む。
ディレクトリも管理情報の一部であるが、ユーザの指示によって生成される管理情報であり、実際に生成されたタイミングによってその配置されるアドレスが決定される。FAT2はFAT1のコピーとして存在するが、それ以外の管理情報はストレージ空間上にコピーが存在せず、データエラーとなった場合にはその情報は失われ、ストレージとして正常に動作することができなくなる。
また、管理情報はユーザデータと比較して必要とする容量も小さく、小さいサイズによるアクセスが行われる。例えば、ファイルシステムFAT32の場合、4MByteのユーザデータの管理に必要なFAT情報のサイズは512Byteになる(クラスタサイズが32KByteの場合)。
図34のフローチャートを参照して、図31のファイルアクセスの例に該当する読み出しファイルアクセス処理を説明する。
ホスト400は、スロットにメディア300が装着されたことを検出するとマウント処理を開始する。ホスト400は、まずFATファイルシステムのBPBを読出し(ステップS201)、続いてPBRを読み出す(ステップS202)。その後、ルートディレクトリを読み出す(ステップS203)。このように、BPB,PBR、ルートディレクトリは、メディア300がマウントされる度に必ず1回以上読み出される。それ故、管理情報にアクセスが集中する。
次に、図35のフローチャートを参照して、図31のデータアクセスの例に該当する読出しファイルアクセス処理を説明する。
メディア300では、ファイルへの読出しアクセス指示を検出すると、まずFATファイルシステムのディレクトリを読み出し(ステップS211)、続いてFAT1を読出す(ステップS212)。その後、ユーザデータを読出す(ステップS213)。そして、ユーザデータが終了したか否かを判定し(ステップS214)、ユーザデータがまだ終了していない場合はステップS212のFAT1の読出し処理へ戻る。ユーザデータが終了した場合は、一連の処理を終了する。
次に、図36のフローチャートを参照して、図31のデータアクセスの例に該当する書込みファイルアクセス処理を説明する。
メディア300では、ファイルへの書込みアクセス指示を検出すると、まずFATファイルシステムのディレクトリを読み出し(ステップS221)、目的のユーザデータを検索して書込みを行う(ステップS222)。書込み後、FAT1にユーザデータの書込み内容を反映し(ステップS223)、続いてFAT2にユーザデータの書込みを反映する(ステップS224)。そして、ユーザデータが終了したか否かを判定し(ステップS225)、ユーザデータがまだ終了していない場合はステップS222のユーザデータの書込み処理へ戻る。ユーザデータが終了した場合は、ディレクトリを書き込み(ステップS226)、一連の処理を終了する。
FAT情報はクラスタと呼ばれるデータを管理単位として、1クラスタあたり最大32Bitを割り当て管理する。(FAT32の場合)。したがって、同じFAT情報が保存された1セクタで「32×128=4096Bit」(512Byte)が管理され、それらのクラスタへのアクセスの度に、この1セクタのFAT情報に1回以上のアクセスがされることになる。
図37を参照して、図31のメディア制御&パラメータの具体例を説明する。この図37は、ホスト400からメディア300へ発行される実際のコマンド(書込み処理のシーケンス)の一例である。
ホスト400が発行するコマンドには、処理内容、メディアのセクタアドレス及びセクタ数の情報が含まれている。この例では、コマンドのNo.1〜3、No.9〜11が管理情報へのアクセスを伴うものであり、複数回にわたって管理情報へアクセスしている。
近年、フラッシュメモリ等のページサイズが2k〜4kByteのサイズに拡張されている。このようなメモリを使用した場合、1Page=4〜8セクタということは、さらに4〜8倍のアクセス集中が発生することが考えられる。このように、このファイルシステムの管理情報は、ユーザデータと比較して、ホストからのアクセス回数が集中するため、データ保持特性から見てデータエラーを発生しやすいという傾向がある。
このような状況で、ホスト400からメディア300へデータ保存中に、システムの電源が落ちた場合、保存の中断によってその保存処理中であったデータがデータエラーとなる状態が発生する。リムーバブルメディアの場合には、データ保存中に、メディアが抜かれた場合にも同じ状態が発生する。
図38は、書込みファイルアクセス処理中(ユーザデータ)に電源遮断が発生した場合を説明するための図である。
まずメディア300は、ファイルへの書込みアクセス指示を検出すると、FATファイルシステムのディレクトリを読み出し(ステップS241)、目的のユーザデータ1を検索して書込みを行う(ステップS242)。書込み後、FAT1にユーザデータ1の書込み内容を反映し(ステップS243)、続いてFAT2にユーザデータの書込みを反映する(ステップS244)。ユーザデータ2をさらに保存処理中(ステップS245)に電源遮断した場合、ユーザデータ2にデータエラーが発生する。
続いて、ユーザデータ2にデータエラーが発生した状態で読出し処理を行った場合を説明する。図39は、図38で説明した電源遮断が発生した後の読出し処理を説明するための図である。
まずメディア300では、ファイルへの読出しアクセス指示を検出すると、FATファイルシステムのディレクトリを読み出し(ステップS251)、続いてFAT1を読出す(ステップS252)。その後、ユーザデータ1を読出す(ステップS253)。続いて、FAT1を読出し(ステップS254)、ユーザデータ2を読み出そうとすると、保存処理が中断されているため(図38参照)、ファイルの途中で読出しエラーが発生する。この場合、そのファイルだけがアクセス不可能になり、他のユーザデータ及び管理情報には影響はない。
次に、ディレクトリの保存中に電源遮断が発生した場合を説明する。図40は、書込みファイルアクセス処理中(ディレクトリ)に電源遮断が発生した場合を説明するための図である。
まずメディア300は、ファイルへの書込みアクセス指示を検出すると、FATファイルシステムのディレクトリを読み出し(ステップS261)、目的のユーザデータを検索して書込みを行う(ステップS262)。書込み後、FAT1にユーザデータの書込み内容を反映し(ステップS263)、続いてFAT2にユーザデータの書込みを反映する(ステップS264)。上記ユーザデータの変更に伴いディレクトリを保存処理中(ステップS265)に電源遮断が発生したとする。
続いて、ディレクトリにデータエラーが発生した後で読出し処理を行った場合を説明する。図41は、図38で説明した電源遮断が発生した後の読出し処理を説明するための図である。
メディア300では、ファイルへの読出しアクセス指示を検出すると、FATファイルシステムのディレクトリを読み出そうとするが(ステップS271)、ディレクトリアクセスで読出しエラーが発生する。保存処理中に電源遮断が発生したファイル以外の同じディレクトリに存在する全てのファイルがアクセス不可能になる。BPBやPBRがデータエラーとなった場合にはメディアとしての認識が不可能になり、すべてのユーザデータにアクセス不可能となる。
管理情報はユーザデータよりもアクセスが集中することから、データ保持特性から見て、上記の要因でデータエラーが発生する可能性がユーザデータより高いと言える。管理情報にデータエラーが発生した場合、あるユーザデータがエラーとなった場合と比較して、ユーザに非常に大きな混乱と損害を与える。したがって、ユーザにとって信頼性の高いストレージシステムを実現するためには、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐ必要がある。
近年、半導体プロセスの進歩に従ってメモリデバイスの大容量化が進んできているが、メモリセルの特性が低下してきており、ソフトエラーや上記のようなアクセスの集中に対してデータエラーが発生する可能性を上げる大きな要因の一つとなっている。
図42に、従来のメディアの内部構成の他の例を示す。この例は、図30の例と比較して、高速処理のためにキャッシュ領域を備え、キャッシュ処理に対応したメディアコントローラ310Aを備えている。すなわち、ユーザデータ用NVM制御部331の他に、キャッシュ用NVM制御部332を備える。
図43は、従来のメディアの内部構成の他の例、すなわちキャッシュ対応のメモリデバイスを備えた例(ハイブリッド)を示している。通常の不揮発性メモリデバイス350Bに加え、キャッシュ用不揮発性メモリデバイス360を備える。なお、メモリデバイスを2種類備えたことに伴い、それぞれにNVMインターフェース341,342を備えている。
図44は、図42,図43のメディアによるREAD_DATAに対する処理を示すフローチャートである。
メディア300は、ホスト400からのシーケンス中にREAD_DATAのコマンドを検出すると、目的のデータがキャッシュ上のデータか否かを判定する(ステップS271)。キャッシュ上のデータでない場合は、ユーザデータ用NVM制御部331によって、不揮発性メモリデバイス350又は350Bから読み出す(ステップS272)。一方、キャッシュ上のデータである場合は、キャッシュ用NVM制御部332によって、所定のキャッシュ領域又はキャッシュ用不揮発性メモリデバイス360から読み出す(ステップS273)。
図45は、図42,図43のメディアによるWRITE_DATAに対する処理を示すフローチャートである。
メディア300は、ホスト400からのシーケンス中にWRITE_DATAのコマンドを検出すると、キャッシュに目的のデータを書き込むための空き容量があるか否かを判定する(ステップS281)。キャッシュ上に空きがない場合は、ユーザデータ用NVM制御部331よって、キャッシュ領域に空きを作り(ステップS282)、ステップS283に移る。
一方、キャッシュ領域に空きがある場合、キャッシュ用NVM制御部332によって、所定のキャッシュ領域又はキャッシュ用不揮発性メモリデバイス360に書き込む(ステップS23)。
しかし、図42〜図45に示した技術でも、管理情報のアクセス集中を回避することはできず、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐことはできない。
ところで、特許文献1に、電源遮断発生によるデータエラーを防ぐものとして、電源遮断対策を実施する場合とそうでない場合で、2つの不揮発性メモリ制御手段を切り替える技術が記載されている。
特開2008−176677号公報
しかしながら、特許文献1に記載の技術は、管理情報へのアクセス集中やメモリ特性の悪化に対する対策にはなっていない。また、電源遮断対策を実施した場合とそうでない場合で、結果的にメモリ上に保存されるデータの形式、内容が異なるという問題があった。
本発明は、このような状況に鑑みてなされたものであり、管理情報へのアクセス集中やメモリ特性の悪化に対して、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐようにするものである。
上記課題を解決するため、本発明は、ホスト装置から入力される、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを受信し、前記受信したコマンドがいずれに対するものであるかを判別する。その判別の結果に応じて、前記ユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報を記憶する不揮発性メモリ手段に対する制御方式を切り換える。そして、切り換え後の制御方式に従い、前記ユーザデータ又は前記管理情報を前記不揮発性メモリ手段に記録することを特徴とする。
上記構成によれば、ホスト装置が不揮発性記憶装置に送信したコマンドが管理情報に対するものであることを指示でき、不揮発性記憶装置がこれを検出して管理情報を確実に安全な状態で保存できる制御方式に切り換えられる。
また、本発明の一側面は、上記構成において、不揮発性記憶装置が、ユーザデータを記憶する第1の不揮発性メモリと、前記第1の不揮発性メモリよりデータ保存の点で信頼性が高く、前記ユーザデータをファイルシステム上で管理するための管理情報を記憶する第2の不揮発性メモリと、を備える。そして、メディアコントローラが、前記ホスト装置から入力される、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドに応じて、前記第1の不揮発性メモリと前記第2の不揮発性メモリを切り換えてデータを保存すべく制御を行うことを特徴とする。
上記構成によれば、管理情報用に高信頼性の不揮発性メモリを設けたので、管理情報のデータエラーの可能性が低減される。
また、本発明の一側面は、上記構成において、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを使用することによって、メディアコントローラがホスト装置から入力されるデータが管理情報に対するものであるかを判別する。管理情報に対するものであった場合、前記メディアコントローラが、管理情報に対し前記ユーザデータより高い能力を持つ誤り訂正コードを付加して前記不揮発性メモリに保存すべく制御を行うことを特徴とする。
上記構成によれば、管理情報用としてユーザデータより高い訂正能力を持つ誤り訂正コードを付加するので、管理情報のデータエラーの可能性が低減される。
また、本発明の一側面は、上記構成において、処理対象となるデータがユーザデータであるか、管理情報であるかを記述したコマンドを使用することによって、メディアコントローラがホスト装置から入力されるデータが管理情報に対するものであるかを判別する。管理情報に対するものであった場合、前記メディアコントローラが、前記不揮発性メモリに前記管理情報を2重に書き込むべく制御を行うことを特徴とする。
上記構成によれば、同じ管理情報を2箇所に書き込むことにより(2重書込み)、必ず1箇所の管理情報が安全な状態で保存され、データエラーを防ぐことができる。
以上のように、本発明によれば、管理情報へのアクセス集中やメモリ特性の悪化に対して、メディア内で管理情報をユーザデータよりも安全に記録、保存し、データエラーを防ぐことができる。
以下、本発明を実施するための最良の形態の例について、添付図面を参照しながら説明する。説明は下記項目の順に行う。
1.第1の実施の形態(メモリデバイス:ユーザデータ用及び管理情報用の2種類のメモリデバイスの例)
2.第2の実施の形態(メモリデバイス:ユーザデータ用及び管理情報用で同一のメモリデバイスの例)
3.第3の実施の形態(NVM制御部:不揮発性のキャッシュ領域を備える例)
4.第4の実施の形態(NVM制御部:ユーザデータ用に揮発性のキャッシュ領域を備える例)
5.第5の実施の形態(NVM制御アルゴリズムを切り替える例)
6.第6の実施の形態(ホストとメディアが一体構成である例)
<1.第1の実施の形態>
メディアに対しデータの読出し及び書込みを行うホスト装置として機能する情報記録装置(以下、「ホスト」と称する。)と、メディアから構成されるストレージシステムを説明する。メディアは、半導体メモリデバイス等を備え電気的に書き換え可能な不揮発性記憶装置である。ホスト400としては、上記のデジタルカメラや携帯電話端末、パーソナルコンピュータなど、種々の情報記録装置を適用できる。
本実施の形態では、ホストがメディアに対してアクセスするデータが、ユーザデータと管理情報のどちらであるかを、メディア側で判断できるようにしている。そして、メディア側で、ユーザデータ用の大容量と管理情報用の小容量の2種類のメモリデバイスを切換えてデータを保存する手段を備えるようにしたものである。なお、以下の説明において、不揮発性メモリデバイスをNVMと称することもある。
図1は、本発明の第1の実施の形態に係るメディアの内部構成を示すブロック図である。
ストレージシステムは、ホスト100とメディア1からなり、メディア1はメディアコントローラ10、不揮発性メモリデバイス(NVM)80及び高信頼性不揮発性メモリデバイスからなる。
メディアコントローラ10は、ホストインターフェース20、プロトコル判別部30、NVM制御選択部40、ユーザデータ用NVM制御部50、管理情報用NVM制御部60、NVMインターフェース71,72を備える。
プロトコル判別部30は、ホストインターフェース20を経由してホスト100から受信したデータのプロトコルを判別し、判別結果をNVM制御選択部40に出力する。NVM制御選択部40は、受信した判別結果からいずれのNVM制御部を使用するか選択し、2つのNVM制御部を切り換える。選択されたNVM制御部は、対応するメモリデバイスを制御して、データの読出し又は書込みを行い、ストレージとしての動作を実現する。プロトコル判別部30の動作については後に詳述する。
図2は、NVM制御選択部40及びユーザデータ用NVM制御部50の内部構成を説明するためのブロック図である。両者の構成は同一であるので、図2を参照して共通の説明を行う。
NVM制御部は、不揮発性メモリデバイスに対してRead/Write/Erase/Copyなどのストレージ機能を実現する手段であり、NVMを制御するためのNVM制御アルゴリズム50Aと、NVM制御回路50Bからなる。NVM制御部の構成は、周知であるので、ここでは簡単に説明するに留める。
NVM制御アルゴリズム50Aには、空きブロック管理部50A1、論物アドレス変換部50A2、不良ブロック管理部50A3が含まれる。
上記空きブロック管理部50A1は、不揮発性メモリデバイス内の使用状況を管理する。また論物アドレス変換部50A2は、ホスト100が指定する論理アドレスを不揮発性メモリデバイス内の物理アドレスに変換する論物変換テーブルを参照して、論理アドレスと物理アドレスの変換を行う。また不良ブロック管理部50A3は、不揮発性メモリデバイス上に発生する不良ブロックの管理を行う。ホスト100からのデータを保存する領域として上記不良ブロックは使用されないようにメディア1内で制御される。
また、NVM制御回路50Bには、NVMコマンド制御回路50B1とECC(Error Correcting Code)回路50B2が含まれる。NVM制御部は、不揮発性メモリデバイスごとに異なり、さらにユーザデータ用、管理情報用、キャッシュ用でも異なる。
NVMコマンド制御回路50B1は、コマンドの処理内容に基づいて、不揮発性メモリデバイスに対して読出し/書込み処理を行う。ECC回路50B2は、ホスト100から受信したデータに誤りを訂正するための誤り訂正符号(以下、「ECCデータ」と証する。)を付加する。
[ホストの構成例]
図3は、ホストの内部構成を示すブロック図である。
ホスト100は、アプリケーション処理部110、ファイルシステム制御部120、メディア制御部130、メディアインターフェース140を備える。
上記ファイルシステム制御部120は、管理情報制御部121とユーザデータ制御部122を含む。またメディア制御部130は、管理情報用バッファ部131−1とユーザデータ用バッファ部131−2を含むデータ転送用バッファ131を備える。
図4は、図3のホスト内のソフトウェアレイヤーを示す図である。
図4に示すように、図3の各ブロックに対応して、アプリケーション150、ファイルシステム160、メディア制御ドライバ170から構成される。アプリケーション150は、ユーザの操作等に従いファイルアクセスを行うとき、ファイルシステム160を介してファイルアクセスを指示する。
ホスト100がファイルシステム160を使用してメディア1に対してアクセスするデータには、「ユーザデータ」と、ファイルシステムの「管理情報」の2種類がある。ユーザデータは、アプリケーションを利用したユーザが作成したデータファイルである。一方、管理情報は、そのメディア上に保存されたすべてのユーザデータを管理している重要なデータである。現在、FATファイルシステムを例にとれば、管理情報にはBPB,PBR,FAT1,FAT2,ルートディレクトリ、ディレクトリがある。これら2種類のデータはホスト側から見て、1つのストレージ空間に配置される。
ファイルシステム160は、管理情報制御部161とユーザデータアクセス部162のそれぞれが、各々の管理情報とユーザデータの制御(アクセス制御)を行う。そして、ファイルシステム160からメディア制御ドライバ170へ各々のデータアクセス指示を出力する。
メディア制御ドライバ170は、メディア制御部130を制御するソフトウェアであり、ファイルシステム160からのデータアクセス指示を受けて、メディア制御コマンド及びパラメータを、メディアインターフェース140へ出力する。本発明の実施の形態では、管理情報とユーザデータを別々のプロトコルのデータとしてメディア制御ドライバ170に出力し、メディア1側で管理情報とユーザデータのどちらのデータか判別できるようにしている。
メディアインターフェース140は、メディア制御ドライバ170からのデータアクセス指示を受けて、メディアアクセスプロトコルのデータを、メディア1へ出力する。すなわち、管理情報用バッファ部131−1およびユーザデータ用バッファ部131−2がそれぞれバッファリングした管理情報とユーザデータを、同期をとってそれぞれにメディア1へ出力する。このメディア1へ出力されるデータには、アプリケーションで使用する読出し/書込みコマンドの送信パターン(シーケンス)が含まれる。
図5は、メディア1による読出し/書込み処理を示すフローチャートである。
メディア1は、ホスト100から読出し/書込みのシーケンスを受信すると、プロトコル判別部30が受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別する(ステップS1)。管理情報用プロトコルでない場合は、ユーザデータ用NVM制御部50によって、不揮発性メモリデバイス80を制御する(ステップS2)。一方、管理情報用プロトコルである場合は、管理情報用NVM制御部60によって、高信頼性不揮発性メモリデバイス90を制御する(ステップS3)。
本発明におけるホストからメディアへデータを保存するプロトコルとして、ユーザデータと管理情報用の2種類のプロトコルの具体的な形態として以下が考えられる。
(1)管理情報であることを設定、解除するためのコマンドの例(図6)
指定するセクタ領域のデータを変更せずに、管理情報であることを設定、解除することができる。
(2)ユーザデータとコマンドは共通だが、パラメータで指定する例(図9)
管理情報であることの設定と実際のデータの書込みを同時に可能となる。
(3)それぞれ専用のアクセスコマンドを持った例(図11)
この場合、上記(2)と効果は同じだが、コマンドの形式が異なる。
(4)次に実行するコマンドが管理情報アクセスであることを設定するコマンドの例。(図13)
[第1のプロトコル]
図6は、ホスト100からメディア1へのシーケンス例(1)を示す図である。
本例は、コマンドでアクセスするデータ属性として管理情報領域を指定する方式であり、例えば、SET_MNG(セクタアドレス, セクタ数)、CLR_MNG(セクタアドレス, セクタ数)のようなコマンド(プロトコル)を使用する。SET_MNGはそのアドレスに保存されるデータが管理情報であることを設定するコマンドである。また、CLR_MNGはそのアドレスに保存されるデータが管理情報ではないことを設定するコマンドである。これらのコマンドの説明に用いるフローチャートを図7、図8に示す。図7はユーザデータを管理情報に変更する処理を示し、図8は管理情報をユーザデータに変更する処理を示す。変更する場合には不揮発性メモリデバイス上での保存方法が異なるため、一度変更前の方法で読出したデータを、変更後の方法で書込みを行う必要がある。
図7のフローチャートを参照して、ユーザデータを管理情報に変更する処理(SET_MNGコマンドに対するメディアの処理)を説明する。
プロトコル判別部30でSET _MNGのコマンドを検出した場合、まずNVM制御選択部40によってユーザデータ用NVM制御部50に切り換えられ、ユーザデータ用NVM制御部50によるユーザデータの読出し制御を行う(ステップS11)。次に、管理情報用NVM制御部60に切り換えられ、管理情報用NVM制御部60による管理情報の書込み制御を行う(ステップS12)。最後に、ユーザデータ用NVM制御部50に切り換えられ、ユーザデータ用NVM制御部50によるユーザデータの消去制御を行う(ステップS13)。
図8のフローチャートを参照して、管理情報をユーザデータに変更する処理(CLR_MNRコマンドに対するメディアの処理)を説明する。
プロトコル判別部30でCLR _MNGのコマンドを検出した場合、まずNVM制御選択部40によって管理情報用NVM制御部60に切り換えられ、管理情報用NVM制御部60による管理情報の読出し制御を行う(ステップS21)。次に、ユーザデータ用NVM制御部50に切り換えられ、ユーザデータ用NVM制御部50によるユーザデータの書込み制御を行う(ステップS22)。最後に、管理情報用NVM制御部60に切り換えられ、管理情報用NVM制御部60による管理情報の消去制御を行う(ステップS23)。
実際のセクタへのアクセスでは、管理情報もユーザデータも従来と同じコマンドを使用することができる。このプロトコルでは、保存後のデータの属性を変更することも可能であり、他のプロトコルとの組合せで使用することが有効である。
[第2のプロトコル]
図9は、ホスト100からメディア1へのシーケンス例(2)を示す図である。
本例は、ホスト100からメディア1へのアクセスと同時に属性を設定する方式である。例えば、WRITE_DATA (セクタアドレス, セクタ数,MNGフラグ)、READ_DATA (セクタアドレス, セクタ数,MNGフラグ)のようなコマンド(プロトコル)であり、パラメータとして与えられた値によってそのコマンドで処理を行うデータの属性がわかる。
図10は、第2のプロトコルのコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
メディア1は、ホスト100から読出し/書込みのシーケンスを受信すると、プロトコル判別部30はコマンドのパラメータに基づいて、受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別する(ステップS31)。
MNGフラグがオフであれば、ユーザデータを対象とするコマンドであると判別して、ユーザデータ用NVM制御部50を選択し、不揮発性メモリデバイス80の制御を行う。一方、MNGフラグがオンあれば、管理情報を対象とするコマンドであると判別して、管理情報用NVM制御部60を選択し、高信頼性不揮発性メモリデバイス90の制御を行う。
[第3のプロトコル]
図11、ホスト100からメディア1へのシーケンス例(3)を示す図である。
本例は、第2プロトコルと同様、ホスト100からメディア1へのアクセスと同時に属性を設定する方式である。例えば、WRITE_MNG (セクタアドレス, セクタ数)、READ_MNG (セクタアドレス, セクタ数)のようなコマンド(プロトコル)を使用し、オペレーションコードを解析することで管理情報に対する処理を行うコマンドであるかを判別する。
図12は、第3のプロトコルのコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
メディア1は、ホスト100から読出し/書込みのシーケンスを受信すると、プロトコル判別部30はオペレーションコードを解析して、受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別する(ステップS41)。
解析の結果、ユーザデータコードであれば、ユーザデータを対象とするコマンドであると判別して、ユーザデータ用NVM制御部50を選択し、不揮発性メモリデバイス80の制御を行う。一方、管理情報コードであれば、管理情報を対象とするコマンドであると判別して、管理情報用NVM制御部60を選択し、高信頼性不揮発性メモリデバイス90の制御を行う。
[第4のプロトコル]
図13は、ホスト100からメディア1へのシーケンス例(4)を示す図である。
本例は、次に記述するアクセスコマンドを管理情報アクセスに設定する方式である。例えば、SET_MNG_ACCESS()のようなコマンド(プロトコル)である。
図14は、第4のプロトコルのコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。
メディア1は、ホスト100から読出し/書込みのシーケンスを受信すると、プロトコル判別部30はオペレーションコードを解析して、受信したシーケンス中のコマンドに、管理情報用プロトコルがあるか否かを判別する(ステップS1)。解析の結果、直前のコマンドがSET_MNG_ACCESSであれば、管理情報を対象とするコマンドであると判別して、管理情報用NVM制御部60を選択し、高信頼性不揮発性メモリデバイス90の制御を行う。一方、それ以外のコマンドを示すものであれば、ユーザデータを対象とするコマンドであると判別して、ユーザデータ用NVM制御部50を選択し、不揮発性メモリデバイス80の制御を行う。
従来は、ホストから転送されるデータがユーザデータであるか、管理情報であるかをメディア側で確実に判断する手段がなかった。そのため図33にあるような、システムで使用するファイルシステムとメディア上の論理フォーマットのマップのアドレスを固定することで、セクタアドレスから管理情報を判断することは可能だった。しかし、ディレクトリのようにセクタアドレスが自由に変化する管理情報も存在し、すべての管理情報を判断することは困難だった。また、ファイルシステムに依存してアドレスが変化するため、一つのメディアで複数のファイルシステムに対応することが困難だった。また、管理情報を判断する方法がファイルシステムごとに異なっていることも、メディア側での判断を困難にする大きな原因のひとつだった。
これに対し、上述した第1の実施の形態の構成では、メディアはホストから受信したプロトコルがユーザデータ用か管理情報用かを判断する手段を持ち、判断した結果に従って対応するNVM制御手段を選択し、不揮発性メモリデバイスにアクセスを実施する。したがって、ユーザデータ用か管理情報用かをホスト側が指定可能であるため、ユーザデータの中にアプリケーションに依存して重要な情報があった場合にも、管理情報と同様に安全に保存することができる。
本発明の第1の実施例では、管理情報にアクセスが集中することに対して、管理情報のデータエラーの可能性を低減することができる。例えば半導体プロセスの進歩でデータ保持特性が劣化したメモリをユーザデータ用として採用した場合にも、管理情報用としてはデータ保持特性の優れた小容量のメモリデバイスを使用することで、管理情報のデータエラーを低減することができる。具体的には、管理情報用としてNOR型メモリであったり、ユーザデータはNAND型メモリであったり、また管理情報用としてSLC(シングルレベルセル)型メモリ、ユーザデータ用としてMLC(マルチレベルセル)型メモリなどが考えられる。一般的に管理情報用として使用できるメモリデバイスはユーザデータ用と比較して、コストが高い。
このような第1の実施の形態において、管理情報用のメモリデバイスはユーザデータ用のメモリデバイスと比較して、管理情報の保存に優れた特性を持つことができる。例えば、データ保持特性の優れたメモリデバイス、書換え保証回数が高いメモリデバイスや、プログラム時間やイレース時間が短いメモリデバイスなどを使用する。ユーザデータ用のNVM制御手段としては大容量不揮発性メモリデバイス用のNVM制御回路を持ち、管理情報用のNVM制御手段としては高信頼性不揮発性メモリデバイス用のNVM制御回路を持つことができる。
<2.第2の実施の形態>
本実施の形態は、同一の不揮発性メモリデバイスを使用し、管理情報用として誤り訂正コードを保存する領域のサイズを拡張し、ユーザデータよりも高い能力の誤り訂正コードを付加して保存するようにしたものである。
図15は、本発明の第2の実施の形態に係るメディアの内部構成を示すブロック図である。
この例は、第1の実施の形態(図1)と比較して、ユーザデータ用メモリデバイスと管理情報用メモリデバイスで同一の不揮発性メモリデバイス80Aを備える。メディアコントローラ10Aは、NVMインターフェース70を介して不揮発性メモリデバイス80Aとデータ伝送を行う。ここで、管理情報用NVM制御部60の持つECC回路50B2(図2)はユーザデータ用よりも訂正能力の高い回路を採用し、そのため生成されるECCコードが大きくなるため、そのための領域を不揮発性メモリデバイス80A上に確保しておく。
このように、第2の実施例では、管理情報にアクセスが集中することに対して、管理情報用としてユーザデータより高い能力を持つ誤り訂正コードを管理情報に付加して保存することによって、管理情報のデータエラーの可能性を低減することができる。第1の実施の形態と同様の作用効果を奏する。
<3.第3の実施の形態>
本実施の形態は、メディアコントローラの各NVM制御部に不揮発性のキャッシュ領域を設けるようにしたものである。
図16は、本発明の第3の実施の形態に係るメディアの内部構成を示すブロック図である。
本実施の形態のメディア1Bのメディアコントローラ10Bは、キャッシュメモリ51Aを備えたユーザデータキャッシュ用NVM制御部51、及びユーザデータ用NVM制御部52を備える。またキャッシュメモリ61Aを備えた管理情報キャッシュ用NVM制御部61、及び管理情報用NVM制御部62を備える。それに伴い、NVM制御選択手段もそれぞれについて用意する必要があり、NVM制御選択手段41,42を備える。
この実施の形態では、キャッシュ領域もユーザデータと同じように不揮発性メモリデバイスを構成できるが、ホストからのアクセスを高速化することが目的であり、不揮発性メモリデバイスの制御方法はユーザデータの場合と異なる。不揮発性メモリデバイスの制御方法については、後述する。その他、本実施の形態は、第1の実施の形態と同様の作用効果を奏する。
<4.第4の実施の形態>
本実施の形態は、メディアコントローラの各NVM制御部にキャッシュ領域を設けるようにしたものである。ただし、ユーザデータ用のキャッシュ領域として、大容量で高速アクセス可能な揮発性メモリを採用している。
図17は、本発明の第4の実施の形態に係るメディアの内部構成を示すブロック図である。
本実施の形態のメディア1Cのメディアコントローラ10Cは、キャッシュメモリ53Aを備えたユーザデータキャッシュ用NVM制御部53、及びユーザデータ用NVM制御部52を備える。またキャッシュメモリ61Aを備えた管理情報キャッシュ用NVM制御部61、及び管理情報用NVM制御部62を備える。
本実施の形態によれば、第3の実施の形態と比較して、管理情報の安全性を保ちつつ、より高速にユーザデータへアクセスすることができる。ただしこの場合には、電源遮断が発生した場合、不揮発性メモリデバイスに書き込む前のユーザデータは消えることになる。
次に、図16及び図17に示したメディアの動作を説明する。
図18は、図16及び図17のメディアの読出し処理を示すフローチャートである。
メディアは、ホスト100から読出しシーケンスを受信すると、プロトコル判別部30が受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別し(ステップS61)、管理情報用プロトコルでない場合は、ステップS62へ移行する。一方、管理情報用プロトコルである場合は、ステップS65へ移行する。
ステップS61において管理情報用プロトコルでない場合は、メディアは、目的のデータがユーザデータ用キャッシュメモリ上のデータか否かを判定する(ステップS62)。キャッシュメモリ上のデータでない場合は、ユーザデータ用NVM制御部によって、不揮発性メモリデバイス80を制御する(ステップS63)。一方、キャッシュメモリ上のデータである場合は、ユーザデータキャッシュ用NVM制御部によって、キャッシュメモリから読み出す(ステップS64)。
一方、ステップS61において管理情報用プロトコルであった場合は、メディアは、目的のデータが管理情報用キャッシュメモリ上のデータか否かを判定する(ステップS65)。キャッシュメモリ上のデータでない場合は、管理情報用NVM制御部によって、高信頼性不揮発性メモリデバイス90を制御する(ステップS66)。一方、キャッシュメモリ上のデータである場合は、管理情報キャッシュ用NVM制御部によって、キャッシュメモリから読み出す(ステップS67)。
図19は、図16及び図17のメディアの書込み処理を示すフローチャートである。
メディアは、ホスト100から書込みシーケンスを受信すると、プロトコル判別部30が受信したシーケンス中のコマンドが、管理情報用プロトコルか否かを判別し(ステップS71)、管理情報用プロトコルでない場合は、ステップS72へ移行する。一方、管理情報用プロトコルである場合は、ステップS75へ移行する。
ステップS71において管理情報用プロトコルでない場合は、メディアは、ユーザデータ用キャッシュメモリに目的のデータを書き込むための空き容量があるか否かを判定する(ステップS72)。ユーザデータ用キャッシュメモリ上に空きがない場合は、ユーザデータ用NVM制御部よって、キャッシュ領域に空きを作り(ステップS73)、ステップ74に移る。一方、キャッシュ領域に空きがある場合、ユーザデータ用キャッシュ用NVM制御部によって、キャッシュメモリに書き込む(ステップS74)。
一方、ステップS71において管理情報用プロトコルであった場合は、メディアは、管理情報用キャッシュメモリに目的のデータを書き込むための空き容量があるか否かを判定する(ステップS75)。管理情報用キャッシュメモリ上に空きがない場合は、管理情報用NVM制御部よって、キャッシュ領域に空きを作り(ステップS76)、ステップ77に移る。一方、キャッシュ領域に空きがある場合、管理情報用キャッシュ用NVM制御部によって、キャッシュメモリに書き込む(ステップS77)。
図20は、図16及び図17のSET_MNGコマンドに対するメディアの処理を示すフローチャートである。
メディアは、ホスト100からSET_MNGコマンドを検出すると、目的のデータがユーザデータ用キャッシュメモリ上のデータか否かを判定する(ステップS81)。ユーザデータ用キャッシュメモリ上のデータでない場合は、ステップS82へ移行する。一方、ユーザデータ用キャッシュメモリ上のデータである場合は、ステップS83へ移行する。
次に、ユーザデータ用NVM制御部によるユーザデータの読出し制御を行う(ステップS82)。また、ユーザデータキャッシュ用NVM制御部によるユーザデータの読出し制御を行う(ステップS83)。次に、管理情報キャッシュ用NVM制御部に切り換えられ、管理情報キャッシュ用NVM制御部による管理情報の書込み制御を行う(ステップS84)。最後に、ユーザデータキャッシュ用NVM制御部によるユーザデータの消去制御を行う(ステップS85)とともに、ユーザデータ用NVM制御部に切り換えられ、ユーザデータ用NVM制御部によるユーザデータの消去制御を行う(ステップS86)。
図21は、図16及び図17のCLR_MNGコマンドに対するメディアの処理を示すフローチャートである。
メディアは、ホスト100からCLR_MNGコマンドを検出すると、目的のデータが管理情報用キャッシュメモリ上のデータか否かを判定する(ステップS91)。管理情報用キャッシュメモリ上のデータでない場合は、ステップS92へ移行する。一方、管理情報用キャッシュメモリ上のデータである場合は、ステップS93へ移行する。
次に、管理情報用NVM制御部による管理情報の読出し制御を行う(ステップS92)。また、管理情報キャッシュ用NVM制御部による管理情報の読出し制御を行う(ステップS93)。次に、ユーザデータキャッシュ用NVM制御部に切り換えられ、ユーザデータキャッシュ用NVM制御部によるユーザデータの書込み制御を行う(ステップS94)。最後に、管理情報キャッシュ用NVM制御部による管理情報の消去制御を行う(ステップS95)とともに、管理情報用NVM制御部に切り換えられ、管理情報用NVM制御部による管理情報の消去制御を行う(ステップS96)。
第3,第4の実施の形態によれば、ユーザデータ用と管理情報用のNVM制御部の中でそれぞれのキャッシュメモリを搭載することができる。キャッシュアルゴリズムは管理情報用とユーザデータ用それぞれで最適なアルゴリズムを独立に選択することができる。第1の実施の形態と同様の作用効果を奏する。
<第5の実施の形態>
本実施の形態は、同一の不揮発性メモリデバイス(図15参照)を使用し、管理情報用NVM制御アルゴリズムを切り換えることで信頼性の高い保存を実現するものである。NVM制御部のNVM制御回路(図2参照)はユーザデータ用と管理情報用に持っていてもよいし、共通でもよい。図2のNVM制御アルゴリズム50Aの例として2つの手段が考えられる。いずれも2つの異なるブロックのページを一つのデータに割り当てる場合の例である。ブロックは不揮発性メモリデバイスの物理的な単位を示すものであり、ページは制御されるデータの単位を示すものである。以下、図22を参照して2つのアルゴリズムを説明する。
(1)NVM制御アルゴリズム−1:二重書き
あるデータ(1ページ)の更新時に、ブロックAとブロックBの各1ページに更新を行う。領域のサイズを2倍に拡張し、1回の更新ごとに保存する領域を2つのページに保存する手段である。
(2)NVM制御アルゴリズム−2:交互書き
あるデータ(1ページ)の更新毎に、ブロックAとブロックBを交互に切換えて1ページずつ更新を行う。二重にデータを保存できるよう2倍に領域のサイズを拡張し、交互に切り替える手段である。
いずれのアルゴリズムも、最終ページまで書込んだ次は、新しい2つのブロックを割り当て、旧ブロックを消去する。
[NVM制御アルゴリズム−1]
図23は、NVM制御アルゴリズム−1における読出し処理を示すフローチャートである。
管理情報用NVM制御部は、ブロックAの読出し元とページアドレスを決定し(ステップS101)、管理情報を読み出す(ステップS102)。ここで、データエラーが発生したか否かを判定し(ステップS103)、データエラーが発生したらステップS104へ、データエラーが発生していない場合は処理を終了する。ステップS2でデータエラーが発生した場合、ブロックBの読出し元とページアドレスを決定し、(ステップS104)、管理情報を読出し(ステップS105)、処理を終了する。
図24は、NVM制御アルゴリズム−1における書込み処理を示すフローチャートである。
管理情報用NVM制御部は、ブロックAの書込み先とページアドレスを決定し(ステップS111)、管理情報を書き込む(ステップS112)。次に、ブロックBの書込み先とページアドレスを決定し、(ステップS113)、管理情報を書き込み(ステップS114)、処理を終了する。
図25は、NVM制御アルゴリズム−1の処理中に電源遮断が発生した場合について説明するための図である。図25におけるステップ121〜S124は、図24のステップS111〜S114に対応する。
書込み先のページアドレスがmの状態で、電源遮断が発生した場合を想定する。
(1)ステップS122で電源遮断が発生したケース:
ブロックAの読み出しページmでデータエラーが発生する。
ブロックBの読み出しページm−1が成功する(書込み前の古い管理情報)。
(2)ステップS123で電源遮断が発生したケース:
ブロックAの読み出しページmが成功する。
ブロックBのページmは消去状態のままである(書込み後の新しい管理情報)。
(3)ステップS124で電源遮断が発生したケース:
ブロックAの読み出しページmが成功する。
ブロックBの読み出しページmはデータエラーが発生する(書込み後の新しい管理情報)。
[NVM制御アルゴリズム−2]
図26は、NVM制御アルゴリズム−2における読出し処理を示すフローチャートである。
管理情報用NVM制御部は、読み出し元のブロックA又はBを選択するとともに(ステップS131)、読み出し元のページアドレスを決定し(ステップS132)、管理情報を読み出す(ステップS133)。ここで、データエラーが発生したか否かを判定し(ステップS134)、データエラーが発生したらステップS11へ移行し、一つ前のブロックに戻って同様の処理を繰り返す。一方、データエラーが発生していない場合は処理を終了する。
図27は、NVM制御アルゴリズム−2における書込み処理を示すフローチャートである。
管理情報用NVM制御部は、書込み先のブロックA又はBを選択するとともに(ステップS141)、書込み先のページアドレスを決定し(ステップS142)、管理情報を書き込む(ステップS143)。ステップS133が終了後、処理を終了する。
図28は、NVM制御アルゴリズム−2の処理中に電源遮断が発生した場合について説明するための図である。図28におけるステップ151〜S152は、図27のステップS141〜S143に対応する。
書込み先のページアドレスがmの状態で、電源遮断が発生した場合を想定する。
ステップS153で電源遮断が発生したケース:、
(1)書込み先BlockがBlock Aの場合
ブロックAの読み出しページmでデータエラーが発生する。
ブロックBの読み出しページm−1が成功する。
(2)書込み先ブロックがブロックBの場合
ブロックBの読み出しページmでデータエラーが発生する。
ブロックAの読み出しページmが成功する。
いずれの場合も書込み前の古いデータが読み出される。
上述した本実施の形態によれば、管理情報にアクセスが集中することに対して、管理情報へのアクセスを分散することによって、管理情報のデータエラーの可能性を低減することができる。また、管理情報の保存中に電源を遮断がされたり、メディアが抜かれたりした場合、同じ管理情報を2箇所に書き込むことで(二重書き込み)、必ず1か所の管理情報が安全な状態で保存されていることで、データエラーを防ぐことができる。
本発明のメディアは、上述した各実施の形態のうちの1つあるいは2つ以上を組み合わせることで実現可能である。
<6.第6の実施の形態>
本実施の形態は、ホストにメディアを格納し、一体構成としたものである。
図29は、本発明の第6の実施の形態に係るホストの内部構成を示すブロック図である。本例のホスト200は、図3に示したホスト100と比較して、メディア1がホスト本体に含まれた構成である。このように構成した場合、メディアを着脱しないホスト装置(情報記録装置)を提供することができる。なお、メディア1には、第1〜第5の実施の形態の各メディアを適用でき、その場合、各実施の形態の作用効果を得られる。
なお、上述した情報処理装置で行われる一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。また、これらの処理を実行する機能はハードウェアとソフトウェアの組合せによっても実現できることは言うまでもない。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、プログラム記録媒体からインストールされる。
また、本明細書において示した各ステップの処理は、記載された順序に沿って時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的もしくはこれとは異なる順序、あるいは個別に実行される処理をも含むものである。
以上に述べた実施の形態は、本発明を実施するための好適な形態の具体例であるから、技術的に好ましい種々の限定が付されている。ただし、本発明は、以上の実施の形態の説明において特に本発明を限定する旨の記載がない限り、これらの実施の形態に限られるものではない。例えば、以上の説明で挙げた処理時間、処理順序および各パラメータの数値的条件等は好適例に過ぎず、また、説明に用いた各図における寸法、形状および配置関係等も実施の形態の一例を示す概略的なものである。したがって、本発明は、上述した実施の形態の例に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
本発明の第1の実施の形態に係るメディアの内部構成を示すブロック図である。 図1のNVM制御手段の内部構成を示すブロック図である。 本発明の第1の実施の形態に係るホストの内部構成を示すブロック図である。 図3のホスト内のソフトウェアレイヤーを示す図である。 図1のメディアによる読出し/書込み処理を示すフローチャートである。 本発明の第1の実施の形態に係るコマンドの例(1)を示す図である。 図6のSET_MNGコマンドに対するメディアの処理を示すフローチャートである。 図6のCLR_MNRコマンドに対するメディアの処理を示すフローチャートである。 本発明の第1の実施の形態に係るコマンドの例(2)を示す図である。 図9のコマンドに対するプロトコル判別部の判別処理を示すフローチャートである。 本発明の第1の実施の形態に係るコマンドの例(3)を示す図である。 図11のコマンドに対するプロトコル判別部の処理を示すフローチャートである。 本発明の第1の実施の形態に係るコマンドの例(4)を示す図である。 図13のコマンドに対するプロトコル判別部の処理を示すフローチャートである。 本発明の第2の実施の形態に係るメディアの内部構成を示すブロック図である。 本発明の第3の実施の形態に係るメディアの内部構成を示すブロック図である。 本発明の第4の実施の形態に係るメディアの内部構成を示すブロック図である。 図16,図17のメディアの読出し処理を示すフローチャートである。 図16,図17のメディアの書込み処理を示すフローチャートである。 図16,図17のSET_MNGコマンドに対するメディアの処理を示すフローチャートである。 図16,図17のCLR_MNGコマンドに対するメディアの処理を示すフローチャートである。 本発明の第5の実施の形態に係る管理情報用NVM制御アルゴリズムを説明するための図である。 図22のNVM制御アルゴリズム−1における読出し処理を示すフローチャートである。 図22のNVM制御アルゴリズム−1における書込み処理を示すフローチャートである。 図24のNVM制御アルゴリズムの処理中に電源遮断が発生した場合について説明するための図である。 図22のNVM制御アルゴリズム−2における読出し処理(2)を示すフローチャートである。 図22のNVM制御アルゴリズム−2における書込み処理(2)を示すフローチャートである。 図27のNVM制御アルゴリズムの処理中に電源遮断が発生した場合について説明するための図である。 本発明の第6の実施の形態に係るホストコンピュータの内部構成を示すブロック図である。 従来のメディアの内部構成(1)を示す図である。 図30のホストコンピュータ内のソフトウェアレイヤーを示す図である。 Aは読出しコマンド、Bは書込みコマンドに対するメディアの処理を示すフローチャートである。 FATファイルシステムを例としたストレージ空間の例を示す図である。 マウント処理を示すフローチャートである。 読出しファイルアクセス処理を示すフローチャートである。 書込みファイルアクセス処理を示すフローチャートである。 書込み処理のシーケンスの一例である。 書込みファイルアクセス処理中(ユーザデータ)に電源遮断が発生した場合を説明するための図である。 書込みファイルアクセス処理中(ユーザデータ)に電源遮断が発生後、読出しファイルアクセス処理中(ユーザデータ)にエラーが発生した場合を説明するための図である。 書出しファイルアクセス処理中(ディレクトリ)に電源遮断が発生した場合を説明するための図である。 書出しファイルアクセス処理中(ディレクトリ)に電源遮断が発生後、読出しファイルアクセス処理中(ディレクトリ)にエラーが発生した場合を説明するための図である。 従来のメディアの内部構成(2)を示す図である。 従来のメディアの内部構成(3)を示す図である。 図42,図43のメディアによるREAD_DATAに対する処理を示すフローチャートである。 図42,図43のメディアによるWRITE_DATAに対する処理を示すフローチャートである。
符号の説明
1,1A,1B,1C…メディア、10,10A,10B…メディアコントローラ、20…ホストインターフェース、30…プロトコル判別部、40,40−1,40−2…NVM制御選択部、50,50−1,50−2,50−3…ユーザデータ用NVM制御部、50A…NVM制御アルゴリズム、50A1…空ブロック管理部、50A2…論物アドレス変換部、50A3…不良ブロック管理部、50B…NVM制御回路、50B1…NVMコマンド制御回路、50B2…ECC回路、60,60−1,60−2…管理情報用NVM制御部、70,70−1,70−2…NVMインターフェース、80,80A…不揮発性メモリデバイス、90…高信頼性不揮発性メモリデバイス、100…ホスト、110…アプリケーション処理部、120…ファイルシステム制御部、121…管理情報制御部、122…ユーザデータ制御部、130…メディア制御部、131…データ転送用バッファ部、131−1…管理情報バッファ部、131−2…ユーザデータバッファ部、140…メディアインターフェース、150…アプリケーション、160…ファイルシステム、161…管理情報制御部、162…ユーザデータアクセス部、170…メディア制御ドライバ、171…管理情報制御部、172…ユーザデータアクセス部

Claims (4)

  1. ユーザデータを記憶する第1の不揮発性メモリと、
    前記第1の不揮発性メモリよりもデータ保存の点で信頼性が高く、前記ユーザデータをファイルシステム上で管理するための管理情報を記憶する第2の不揮発性メモリと、
    ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドがいずれに対するものであるかを判別し、判別結果に応じて前記第1の不揮発性メモリ及び第2の不揮発性メモリに対する制御方式を切り換えるメディアコントローラと、を備え、
    前記メディアコントローラは、
    前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドを取得するホストインターフェースと、
    前記ホストインターフェースで取得した前記ユーザデータ及び前記管理情報に対するコマンドのプロトコルに基づいて、いずれに対するコマンドであるか判別するプロトコル判別部と、
    前記第1の不揮発性メモリに対する制御を行い、キャッシュメモリを搭載する第1の不揮発性メモリ制御部と、
    前記第2の不揮発性メモリに対する制御を行い、キャッシュメモリを搭載する第2の不揮発性メモリ制御部と、
    前記プロトコル判別部の判別結果に応じて、前記第1の不揮発性メモリ制御部と前記第2の不揮発性メモリ制御部の切り換えを行う不揮発性メモリ制御選択部と、を有し、
    前記不揮発性メモリ制御選択部は、さらに前記コマンドによる目的のデータの処理が前記第1の不揮発性メモリ制御部内のキャッシュメモリを対象とするか、又は前記第2の不揮発性メモリ制御部内のキャッシュメモリを対象とするかを判別し、その判別の結果に応じて、前記第1の不揮発性メモリ制御部と前記第2の不揮発性メモリ制御部による各々のキャッシュメモリに対する制御が行われる
    揮発性記憶装置。
  2. 前記第1の不揮発性メモリ制御部が搭載するキャッシュメモリは、揮発性のメモリである
    請求項1に記載の不揮発性記憶装置。
  3. ファイルアクセス指示を行うアプリケーション処理部と、
    前記アプリケーション処理部のファイルアクセス指示に基づいて、ユーザデータと該ユーザデータをファイルシステム上で管理するための管理情報に対する処理内容を記述したコマンドを生成するファイルシステム制御部と、
    前記ユーザデータと前記管理情報に対するコマンドを、不揮発性記憶装置へ転送するメディア制御部と、
    を備えるホスト装置と、
    ユーザデータを記憶する第1の不揮発性メモリと、
    前記第1の不揮発性メモリよりもデータ保存の点で信頼性が高く、前記ユーザデータをファイルシステム上で管理するための管理情報を記憶する第2の不揮発性メモリと、
    ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドがいずれに対するものであるかを判別し、判別結果に応じて前記第1の不揮発性メモリ及び第2の不揮発性メモリに対する制御方式を切り換えるメディアコントローラと、を備え、
    前記メディアコントローラは、
    前記ホスト装置から入力される前記ユーザデータ及び前記管理情報に対する処理内容を記述したコマンドを取得するホストインターフェースと、
    前記ホストインターフェースで取得した前記ユーザデータ及び前記管理情報に対するコマンドのプロトコルに基づいて、いずれに対するコマンドであるか判別するプロトコル判別部と、
    前記第1の不揮発性メモリに対する制御を行い、キャッシュメモリを搭載する第1の不揮発性メモリ制御部と、
    前記第2の不揮発性メモリに対する制御を行い、キャッシュメモリを搭載する第2の不揮発性メモリ制御部と、
    前記プロトコル判別部の判別結果に応じて、前記第1の不揮発性メモリ制御部と前記第2の不揮発性メモリ制御部の切り換えを行う不揮発性メモリ制御選択部と、
    を有する不揮発性記憶装置と、から構成され、
    前記不揮発性メモリ制御選択部は、さらに前記コマンドによる目的のデータの処理が前記第1の不揮発性メモリ制御部内のキャッシュメモリを対象とするか、又は前記第2の不揮発性メモリ制御部内のキャッシュメモリを対象とするかを判別し、その判別の結果に応じて、前記第1の不揮発性メモリ制御部と前記第2の不揮発性メモリ制御部による各々のキャッシュメモリに対する制御が行われる
    報記録システム。
  4. 不揮発性記憶装置が備えるホストインターフェースにより、ホスト装置から入力されるユーザデータ及び該ユーザデータをファイルシステム上で管理するための管理情報に対する処理内容を記述したコマンドを受信する第1ステップと、
    前記不揮発性記憶装置が備えるプロトコル判別部により、前記第1ステップにおいて受信した前記ユーザデータ及び前記管理情報に対するコマンドのプロトコルに基づいて、受信したコマンドがいずれに対するものであるかを判別する第2ステップと、
    前記不揮発性記憶装置が備える不揮発性メモリ制御選択部により、前記判別の結果に応じて、前記ユーザデータを記憶する第1の不揮発性メモリ及び前記管理情報を記憶する前記第1の不揮発性メモリよりもデータ保存の点で信頼性が高い第2の不揮発性メモリに対する制御方式を切り換える第3ステップと、
    前記不揮発性メモリ制御選択部が、さらに前記コマンドによる目的のデータの処理が、前記第1の不揮発性メモリに対する制御を行う第1の不揮発性メモリ制御部内のキャッシュメモリを対象とするか、又は前記第2の不揮発性メモリに対する制御を行う第2の不揮発性メモリ制御部内のキャッシュメモリを対象とするかを判別する第4ステップと、
    前記第1の不揮発性メモリ制御部又は前記第2の不揮発性メモリ制御部は、前記第4ステップの判別の結果に応じて、各々のキャッシュメモリに対する制御を行う第5ステップと、を含む
    情報記録方法。
JP2008330883A 2008-12-25 2008-12-25 不揮発性記憶装置、情報記録システム、及び情報記録方法 Active JP5458568B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008330883A JP5458568B2 (ja) 2008-12-25 2008-12-25 不揮発性記憶装置、情報記録システム、及び情報記録方法
US12/644,686 US20100169556A1 (en) 2008-12-25 2009-12-22 Nonvolatile storage device, information recording system, and information recording method
CN2009102597124A CN101763309B (zh) 2008-12-25 2009-12-23 非易失性存储装置、信息记录系统及信息记录方法
KR1020090131087A KR20100075769A (ko) 2008-12-25 2009-12-24 비휘발성 기억 장치, 정보 기록 시스템 및 정보 기록 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008330883A JP5458568B2 (ja) 2008-12-25 2008-12-25 不揮発性記憶装置、情報記録システム、及び情報記録方法

Publications (2)

Publication Number Publication Date
JP2010152703A JP2010152703A (ja) 2010-07-08
JP5458568B2 true JP5458568B2 (ja) 2014-04-02

Family

ID=42286287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008330883A Active JP5458568B2 (ja) 2008-12-25 2008-12-25 不揮発性記憶装置、情報記録システム、及び情報記録方法

Country Status (4)

Country Link
US (1) US20100169556A1 (ja)
JP (1) JP5458568B2 (ja)
KR (1) KR20100075769A (ja)
CN (1) CN101763309B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10553262B2 (en) 2017-12-13 2020-02-04 Toshiba Memory Corporation Memory system and memory device

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131912B2 (en) * 2007-09-27 2012-03-06 Kabushiki Kaisha Toshiba Memory system
EP2615556B1 (en) * 2010-09-06 2015-07-29 Mitsubishi Electric Corporation Memory control device and memory control method
JP5742362B2 (ja) * 2011-03-28 2015-07-01 富士通株式会社 退避処理装置
US9727570B2 (en) * 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
KR101537973B1 (ko) * 2011-07-27 2015-07-20 엘에스아이 코포레이션 보안 스토리지 하이잭킹 보호를 위한 기법들
US8756458B2 (en) 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability
JP2014092973A (ja) * 2012-11-05 2014-05-19 Toshiba Corp メモリシステム
US20140129788A1 (en) * 2012-11-07 2014-05-08 Taejin Info Tech Co., Ltd. High-performance large scale semiconductor storage module with hybrid technology
US10095582B2 (en) * 2014-10-29 2018-10-09 International Business Machines Corporation Partial rebuilding techniques in a dispersed storage unit
US20180181332A1 (en) * 2014-10-29 2018-06-28 International Business Machines Corporation Expanding a dispersed storage network memory beyond two locations
US10459792B2 (en) * 2014-10-29 2019-10-29 Pure Storage, Inc. Using an eventually consistent dispersed memory to implement storage tiers
US10175885B2 (en) * 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
JP6538496B2 (ja) * 2015-09-11 2019-07-03 東芝メモリ株式会社 メモリシステム
KR102565918B1 (ko) * 2016-02-24 2023-08-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작방법
JP7457248B2 (ja) 2020-05-27 2024-03-28 株式会社バッファロー 記憶装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200842B1 (en) * 1999-02-02 2007-04-03 Sun Microsystems, Inc. Object-oriented instruction set for resource-constrained devices
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
JP2001306393A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 記憶装置
JP3768088B2 (ja) * 2000-11-09 2006-04-19 松下電器産業株式会社 メモリカード装置
JP3495709B2 (ja) * 2001-01-12 2004-02-09 三洋電機株式会社 データ記録装置
KR100598097B1 (ko) * 2003-12-29 2006-07-07 삼성전자주식회사 듀얼 칩 패키지
JP4357304B2 (ja) * 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
US7801930B2 (en) * 2004-05-10 2010-09-21 Panasonic Corporation Recording medium, host device, and data processing method
JP4794949B2 (ja) * 2005-08-31 2011-10-19 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置及び不揮発性記憶システム
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
JP2008117003A (ja) * 2006-10-31 2008-05-22 Toshiba Microelectronics Corp 不揮発性半導体記憶装置およびその制御方法
JP2008176677A (ja) * 2007-01-22 2008-07-31 Matsushita Electric Ind Co Ltd メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10553262B2 (en) 2017-12-13 2020-02-04 Toshiba Memory Corporation Memory system and memory device

Also Published As

Publication number Publication date
CN101763309B (zh) 2013-07-03
CN101763309A (zh) 2010-06-30
JP2010152703A (ja) 2010-07-08
US20100169556A1 (en) 2010-07-01
KR20100075769A (ko) 2010-07-05

Similar Documents

Publication Publication Date Title
JP5458568B2 (ja) 不揮発性記憶装置、情報記録システム、及び情報記録方法
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8291155B2 (en) Data access method, memory controller and memory storage system
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US8589617B2 (en) Write once recording device
JP4837731B2 (ja) プログラム可能な耐久度を有するフラッシュメモリ
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
US8364885B2 (en) Semiconductor storage system for decreasing page copy frequency and controlling method thereof
US20070288711A1 (en) Snapshot copy management method used for logic volume manager
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US8112575B2 (en) Memory controller, nonvolatile memory device, access device, and nonvolatile memory system
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
WO2005124530A2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
KR20110139956A (ko) 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP4130808B2 (ja) フォーマット方法
US20110264848A1 (en) Data recording device
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
KR20110041843A (ko) 하이브리드 저장장치 및 그 동작방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130430

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130501

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131230

R151 Written notification of patent or utility model registration

Ref document number: 5458568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250