JP7435470B2 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP7435470B2
JP7435470B2 JP2020561268A JP2020561268A JP7435470B2 JP 7435470 B2 JP7435470 B2 JP 7435470B2 JP 2020561268 A JP2020561268 A JP 2020561268A JP 2020561268 A JP2020561268 A JP 2020561268A JP 7435470 B2 JP7435470 B2 JP 7435470B2
Authority
JP
Japan
Prior art keywords
data
information processing
host system
continuous
metadata
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
JP2020561268A
Other languages
English (en)
Other versions
JPWO2020129612A1 (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
Sony Group Corp
Original Assignee
Sony Corp
Sony Group 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, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2020129612A1 publication Critical patent/JPWO2020129612A1/ja
Application granted granted Critical
Publication of JP7435470B2 publication Critical patent/JP7435470B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/064Management of blocks
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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]

Description

本開示は、情報処理装置、情報処理方法および情報処理プログラムに関する。より詳しくは、データのアクセスが所定データ量毎に行われる情報処理装置、係る情報処理装置における情報処理方法および情報処理プログラムに関する。
近年、デジタルデータを格納する情報処理装置として、ハードディスクや、フラッシュメモリなどを用いたシリコンディスクといった情報処理装置が広く用いられている。通常、デジタルデータは、ファイルシステムを用いて情報処理装置に格納される。
例えば、ハードディスクをフォーマットして所謂FATファイルシステムを構築すると、ハードディスク内には、ファイル・アロケーション・テーブル(File Allocation Table)やルートディレクトリ領域が形成される。通常、オペレーティングシステム(OS)などのホストシステム側は複数セクタから成るクラスタ単位でデータを管理し、ファイルを構成するバイナリデータはセクタ単位で読み書きされる。ルートディレクトリ領域には、ディレクトリエントリとして、ファイル名や属性に加え、格納されるファイルの開始クラスタ番号などの情報が保存される。
ホストシステム側は、ディレクトリエントリを参照してファイルの開始クラスタ番号を得、これに基づいてファイル・アロケーション・テーブルにおける開始クラスタ番号のエントリを参照し、次のクラスタ番号を得る。そして、ファイル・アロケーション・テーブルにおける次のクラスタ番号のエントリを参照し、さらに次のクラスタ番号を得る。このような動作を続けて行うことによって、特定のファイルのバイナリデータが格納されているクラスタ番号を特定することができる。
フラッシュメモリを用いた情報処理装置においても、基本的な動作は上述したと同様である。例えばNAND型フラッシュメモリにあっては、読み込みはページと呼ばれる複数ビット単位で行われる。但し、既に何かが記録されたページに直接データを上書きすることはできず、一旦ページ全体を消去する必要がある。更には、消去は前述のページを複数纏めたブロック単位で行う必要がある。このため、データの書き換えを行う場合には、ブロック消去されている消去済ブロックに新たなデータを書き込むと共に、古いデータが書き込まれていたブロックを消去するという処理を行わなければならない。従って、NAND型フラッシュメモリにおいて、書き換え後のデータは、書き換え前のデータとは異なるブロックに書き込まれざるを得ない(特許文献1参照)。
このため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスとの対応関係は、データを書き換える毎に動的に変化する。従って、フラッシュメモリにアクセスする場合には、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。こうした処理はフラッシュメモリのメモリコントローラによって行われ、ホストシステム側は関知しない。従って、ホストシステム側は連続したデータを連続したブロックに書き込んだつもりであっても、実際にはバラバラなブロックに書き込まれているといったことが起こる。
特開2006-155335号公報
例えば、ファイル・アロケーション・テーブルのインデックス情報が毀損あるいは消失し、ファイルシステムが破損した場合、書き込まれたファイルはアクセス不能となる。この状態において、所定のファイルが連続したクラスタや連続したブロックに格納されている場合には、格納場所の連続性に基づいてファイルのバイナリデータを読み込むことによって、ファイルの復旧を試みることができる。しかしながら、所定のファイルが不連続なクラスタやブロックに格納されている場合、格納場所の連続性に基づいたデータの復旧は極めて困難となる。特に、フラッシュメモリにあっては、ホストシステム側は連続したデータを連続したブロックに書き込んだつもりであっても、バラバラなブロックに書き込まれているといったことが起こり得るため、データの復旧は極めて困難となる。
従って、本開示の目的は、ファイルシステムが破損した場合であっても、書き込まれたファイルのデータが格納されたクラスタやブロックなどをある程度まで特定し得る情報処理装置、係る情報処理装置における情報処理方法および情報処理プログラムを提供することにある。
上記の目的を達成するための本開示の情報処理装置は、データのアクセスが所定データ量毎に行われる情報処理装置であって、
ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込む、
情報処理装置である。
上記の目的を達成するための本開示の情報処理方法は、
データのアクセスが所定データ量毎に行われる情報処理装置において、ホストシステム側から送信されるデータを書き込む際に、
送信されるデータが一つのファイルを構成する連続するデータと推定されるか否かを判定する工程、及び、
連続するデータであると推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込む工程、
を行う、
情報処理方法である。
上記の目的を達成するための本開示の情報処理プログラムは、
データのアクセスが所定データ量毎に行われる情報処理装置の制御をコンピュータで実行させるプログラムであって、
ホストシステム側から送信されるデータを書き込む際に、
送信されるデータが一つのファイルを構成する連続するデータと推定されるか否かを判定するステップ、及び、
連続するデータであると推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込むステップ、
を含む処理をコンピュータに実行させるための情報処理プログラムである。
図1は、第1の実施形態に係る情報処理装置の模式的なブロック図である。 図2は、フラッシュメモリから成るストレージデバイスにおけるブロックとページとの関係を示す説明図である。図2Aはブロックの構造を示し、図2Bはブロックに含まれるページの構造を示す。 図3は、ホストシステム側から示される論理ブロックと、ストレージデバイス側における物理ブロックとが異なることがあることを示す説明図である。 図4は、書き込み処理における基本的な動作を説明するための模式的なフローチャートである。 図5は、ストレージデバイスの各ページに格納されるデータを説明するための模式図である。 図6は、ストレージデバイスにおける書き込み処理の例を説明するための説明図である。 図7は、図6に示す動作においてストレージデバイスの各ページに書き込まれるメタデータの内容を説明するための説明図である。 図8は、ファイルシステムの情報によらずにメタデータに基づいて関連するページをアクセスすることができることを説明するための説明図である。 図9は、送信データのサイズ判定を含む書き込み処理における基本的な動作を説明するための模式的なフローチャートである。 図10は、図9における例外処理の詳細を説明するための模式的なフローチャートである。 図11は、図9および図10に示す動作においてストレージデバイスの各ページに書き込まれるメタデータの内容を説明するための説明図である。 図12は、LBA(Logical Block Addressing)によってセクタを特定する場合を説明するための説明図である。 図13は、LBAによってセクタを特定する場合のメタデータの内容を説明するための説明図である。 図14は、ホストシステム側からのデータとメタデータとを共にセクタに書き込む場合の例を説明するための説明図である。 図15は、ホストシステム側からのデータとメタデータとを、独立した記録領域に格納する場合の例を説明するための説明図である。
以下、図面を参照して、実施形態に基づき本開示を説明する。本開示は実施形態に限定されるものではなく、実施形態における種々の数値や材料は例示である。以下の説明において、同一要素または同一機能を有する要素には同一符号を用いることとし、重複する説明は省略する。尚、説明は、以下の順序で行う。
1.本開示に係る、情報処理装置、情報処理方法および情報処理プログラム、全般に関する説明
2.第1の実施形態
3.第2の実施形態
4.変形例
5.その他
[本開示に係る、情報処理装置、情報処理方法および情報処理プログラム、全般に関する説明]
本開示に係る、情報処理装置、情報処理方法および情報処理プログラム(以下、これらを単に「本開示」と呼ぶ場合がある)において、ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定する構成とすることができる。
ホストシステム側の構成などにもよるが、1つのファイルを情報処理装置に書き込む場合に、複数回の書き込み命令がホストシステム側から発行されるケースが考えられる。そして、このような場合、2回目以降の書き込み命令は、従前の書き込み命令からさほど間をおかずに発行されると考えられる。従って、ホストシステム側からの書き込み命令が一つ前の書き込み命令からさほど間をおかずに発行されている場合、それらは、1つのファイルを構成する連続するデータを書き込む処理に対応していることが推定される。従って、ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かを判断することによって、連続するデータと推定されるか否かを判定することができる。尚、「所定の時間」は、ホストシステムや情報処理装置などの仕様に基づいて、適宜好適に設定すればよい。
上述した好ましい構成を含む本開示において、ホストシステム側から送られるデータのサイズを確認し、所定のサイズのデータ以上であるか否かに基づいて、連続するデータと推定されるか否かを判定する構成とすることができる。
ホストシステム側の構成などにもよるが、例えば書き込みサイズが4KB程度に留まるといった場合、これ自体が単独で一つのファイルを構成するといったことが推定される。逆に、例えば書き込みサイズが64KBを超えるといった場合には、直前の書き込み命令に対応したデータと連続することが推定される。例えば動画データや画像データなどのように、大きなファイルサイズのデータを書き込む場合には、ある程度の大きさのデータを連続して書き込むような処理が行われるからである。従って、ホストシステム側からの書き込みサイズの大きさを判断することによって、連続するデータと推定されるか否かを判定することができる。尚、「所定のサイズ」は、ホストシステムや情報処理装置などの仕様に基づいて、適宜好適に設定すればよい。
上述した各種の好ましい構成を含む本開示において、ホストシステム側からファイルの読み出しが指定される場合に、メタデータに基づいて格納されているデータの先読みを行う構成とすることができる。
ホストシステム側からファイルの読み込み命令が発行される場合、情報処理装置側はメタデータに基づいて、ファイルのバイナリデータが格納されている領域の先読みを行うことができる。これによって、読み込み速度の向上を図ることができる。
上述した各種の好ましい構成を含む本開示において、所定データ量は、ページ単位のデータ量である構成とすることができる。
この場合において、情報処理装置は、複数ページをブロックとするブロック単位でデータを管理する構成とすることができる。また、情報処理装置は、データが消去されているブロックに対して、データの書き込みを行う構成とすることができる。
この場合において、メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む構成とすることができる。そして、書き込み対象となる各ページに対して、ホストシステム側からのデータとメタデータとが書き込まれる構成とすることができる。あるいは又、ホストシステム側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される構成とすることもできる。
あるいは又、上述した好ましい構成を含む本開示において、所定データ量は、セクタ単位のデータ量である構成とすることもできる。
この場合において、情報処理装置は、複数セクタをクラスタとするクラスタ単位でデータを管理する構成とすることができる。また、メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む構成とすることができる。そして、書き込み対象となる各セクタに対して、ホストシステム側からのデータとメタデータとが書き込まれる構成とすることができる。あるいは又、ホストシステム側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される構成とすることができる。
本開示において、書き込み対象となる媒体は特に限定するものではなく、フラッシュメモリなどの半導体メモリ媒体、FDD、CD-R、DVD-R、HDDなどのディスク媒体といった周知の媒体を用いて構成することができる。情報処理装置は、これらの媒体のほか、情報処理を行うコントローラなどから構成することができる。コントローラは、例えば、コンピュータや論理回路などを組み合わせて構成することができる。
[第1の実施形態]
第1の実施形態は、本開示に係る、情報処理装置、情報処理方法および情報処理プログラム関する。
図1は、第1の実施形態に係る情報処理装置の模式的なブロック図である。
情報処理装置1は、例えばフラッシュメモリからなるストレージデバイス20と、それを制御するメモリコントローラ10を含んでいる。情報処理装置1は、例えばホストシステム9と着脱可能に接続され、ホストシステム9の記憶装置として用いられる。ホストシステム9として、パーソナルコンピュータ、デジタルビデオカメラ、デジタルスチルカメラの他、スマートフォンや携帯電話などの携帯電子端末を例示することができる。
メモリコントローラ10は、メモリコントローラ全般の制御を司るマイクロプロセッサ11、RAMなどから成るデータバッファ12、ホストシステム9側とのインターフェースを構成するホストシステムI/F(符号13)、及び、ストレージデバイス20側とのインターフェースを構成するストレージデバイスI/F(符号14)を含んでいる。メモリコントローラ10は、図示せぬ記憶手段に格納されている情報処理プログラムに基づいて動作する。そして、ホストシステム9側から送信されるデータを書き込む際に、
送信されるデータが一つのファイルを構成する連続するデータと推定されるか否かを判定するステップ、及び、
連続するデータであると推定される場合に、ホストシステム9側からのデータと共に連続するデータであることを示すメタデータを書き込むステップ、
を実行する。
符号13で示すホストシステムI/Fは、ホストシステム9との間で、書き込みや読み込みに関する命令の他、ファイルのデータ、論理アドレス情報などに関する通信を行う。符号14で示すストレージデバイスI/Fは、ストレージデバイス20との間で、動作を制御するコマンド、データ、物理アドレス情報などに関する通信を行う。
データバッファ12は、ストレージデバイス20に書き込むデータあるいはストレージデバイス20から読み込むデータを一時的に保持する。例えば、ストレージデバイス20から読み出したデータは、ホストシステム9側での受信準備ができるまでデータバッファ12に保持される。同様に、ストレージデバイス20に書き込むデータは、ストレージデバイス20の書き込み準備ができるまでデータバッファ12に保持される。
ストレージデバイス20は、所謂NAND型のフラッシュメモリから構成されている。ストレージデバイス20において、読み込みはページと呼ばれる複数ビット単位で行われる。上述したように、既に何かが記録されたページに直接データを上書きすることはできず、一旦ページ全体を消去する必要がある。また、消去は前述のページを複数纏めたブロック単位で行われる。このため、情報処理装置1は、データが消去されているブロックに対して、データの書き込みを行う。
図2は、フラッシュメモリから成るストレージデバイスにおけるブロックとページとの関係を示す説明図である。図2Aはブロックの構造を示し、図2Bはブロックに含まれるページの構造を示す。
図2Aに示すように、ストレージデバイス20には、例えば符号PB#00ないしPB#99で示される複数のブロックが含まれている。そして、図2Bに示すように、各ブロックは、符号PG00ないしPG31で示されるページから構成されている。後で図5を参照して説明するが、各ページは、例えば4096ビットのデータ領域と34ビットの冗長領域から構成されている。そして、後述するように、冗長領域がメタデータ保存領域として使用される。
図3は、ホストシステム側から示される論理ブロックと、フラッシュメモリ側における物理ブロックとが異なることがあることを示す説明図である。
ホストシステム9は、論理アドレスを指定して書き込みを行う。図3は、連続した論理アドレスを指定しての書き込みを行う場合の例である。論理アドレスLBA00ないしLBA31が論理ブロックLB#00に対応し、論理アドレスLBA32ないしLBA63が論理ブロックLB#01に対応するといった関係にある。
上述したように、NAND型フラッシュメモリにあっては、既に何かが記録されたページに直接データを上書きすることはできず、一旦ページ全体を消去する必要がある。更には、消去は前述のページを複数纏めたブロック単位で行う必要がある。このため、データの書き込みを行う場合には、論理ブロックと物理ブロックとの対応関係は一意ではない。図3は、論理ブロックLB#00には物理ブロックPB#03が対応し、論理ブロックLB#01には物理ブロックPB#01が対応し、論理ブロックLB#02には物理ブロックPB#05が対応するといった場合の例を示す。
論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルは、メモリコントローラ10内に構築されており、ホストシステム9側は関知しない。従って、ホストシステム9側は連続したデータを連続したブロックに書き込むといった命令を発行しているが、実際には、ストレージデバイス20内のバラバラなブロックに書き込まれている。このような場合、通常、ファイルシステムが破損した場合には、書き込まれたファイルのデータが格納された複数のブロックを特定することは難しい。
そこで、情報処理装置1にあっては、ホストシステム9側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム9側からのデータと共に連続するデータであることを示すメタデータを書き込む。より具体的には、ホストシステム9側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定する。
図4は、書き込み処理における基本的な動作を説明するための模式的なフローチャートである。
メモリコントローラ10は、ホストシステム9側からファイルについての書き込み命令が発行されると、送信データにファイルの[開始]を示すフラグを割り当てる(ステップS101)。そして、フラグ情報を含むメタデータと送信データとを書き込む(ステップS102)。
1つのファイルを情報処理装置1に書き込む場合に、通常、複数回の書き込み命令がホストシステム9側から発行される。このような場合、2回目以降の書き込み命令は、従前の書き込み命令からさほど間をおかずに発行されると考えられる。
メモリコントローラ10は、次の書き込み命令が所定の設定期間内に来たと判定した場合には、ホストシステム9側からの送信データは、先のデータに連続すると推定し、送信データにデータの[連続]を示すフラグを割り当てる(ステップS103)。そして、フラグ情報を含むメタデータと送信データとを書き込む(ステップS102)。そして、基本的には、上述したループを繰り返す。
尚、次の書き込み命令が所定の設定期間内ではなかった場合には、別のファイルの書き込みであると推定される。この場合には、上述したループを脱し、図4のStartに戻る。
以上、第1の実施形態における書き込み処理の基本的な動作について説明した。
図5は、ストレージデバイスの各ページに格納されるデータを説明するための模式図である。
情報処理装置1において、データのアクセスは、所定データ量毎、より具体的には、ページ単位のデータ量毎に行われる。そして、情報処理装置1は、複数ページをブロックとするブロック単位でデータを管理する。各ページは、例えば4096ビットのデータ領域と34ビットの冗長領域から構成されている。そして、冗長領域がメタデータ保存領域として使用される。メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む。
図に示す例では、メタデータ保存領域のBit0が対応する[区画A]は、ファイルの[開始]を示すフラグに対応し、[0:開始でない]、[1:開始である]といった意味を示す。また、メタデータ保存領域のBit1が対応する[区画B]はデータの[連続]に関する情報を示すフラグに対応し、[0:連続でない]、[1:連続である]といった意味を示す。Bit2ないしBit17が対応する[区画C]には、一つ前の[連続データ]が格納されている物理ページ番号が格納され、Bit18ないしBit33が対応する[区画D]には、一つ前の[連続データ]が格納されている物理ブロック番号が格納される。そして、書き込み対象となる各ページに対して、ホストシステム9側からのデータとメタデータとが書き込まれる。
以下、図6と図7を参照して、フラッシュメモリから成るストレージデバイス20における書き込み処理の例について説明する。
図6は、ストレージデバイスにおける書き込み処理の例を説明するための説明図である。図7は、図6に示す動作においてストレージデバイスの各ページに書き込まれるメタデータの内容を説明するための説明図である。
図6に示す例では、ホストシステム9側から論理アドレスLBA00ないしLBA63によって指定されるデータがストレージデバイス20側に書き込まれる例を示す。ここで、論理アドレスLBA00ないしLBA31は論理ブロックLB#00を構成し、論理アドレスLBA32ないしLBA63は論理ブロックLB#01を構成する。そして、論理ブロックLB#00のデータはストレージデバイス20の物理ブロックPB#03に書き込まれ、論理ブロックLB#01のデータはストレージデバイス20の物理ブロックPB#01に書き込まれるものとする。
先ず、メモリコントローラ10は、論理アドレスLBA00によって指定される送信データに介して[開始]を示すフラグを割り当てる(図4のステップS101)。そして、ホストシステム9側からのデータと、[開始]を示すフラグを含むメタデータとを、物理ブロックPB#03のページPG00に書き込む(図4のステップS102)。
図5に示すように、メタデータは、[開始]を示すフラグ、[連続]を示すフラグ、直前にデータが格納されたブロック情報およびページ情報を含む。[開始]を示すフラグを割り当てるときには、[連続]を示すフラグは0に設定するものとする。また、直前にデータが格納されたブロック情報およびページ情報は不定である。よって、図7に示すように、物理ブロックPB#03のページPG00におけるメタデータは、
[区画A:1] [区画B:0] [区画C: N/A] [区画D: N/A ]
となる。
引き続く書き込み命令が所定の設定期間内にあるとすれば、メモリコントローラ10は、ホストからの送信データに[連続]を示すフラグを割り当てる(図4のステップS103,S104)。メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む。物理ブロックPB#03のページPG01におけるメタデータは、
[区画A:0] [区画B:1] [区画C:PG00] [区画D:PB#03]
となる。
以下、物理ブロックPB#03のページPG31まで同様な処理が行われる。そして、次の書き込みは物理ブロックPB#01に行われる。物理ブロックPB#01のページPG00におけるメタデータは、
[区画A:0] [区画B:1] [区画C:PG31] [区画D:PB#03]
となる。
引き続く、物理ブロックPB#01のページPG01におけるメタデータは、
[区画A:0] [区画B:1] [区画C:PG00] [区画D:PB#01]
となる。以下、物理ブロックPB#01のページPG31まで同様な処理が行われる。
上述のようなメタデータが書き込まれたストレージデバイス20にあっては、ファイル・アロケーション・テーブルのインデックス情報が毀損あるいは消失し、ファイルシステムが破損した場合であっても、メタデータの情報を手がかりとして、特定のファイルが書き込まれた複数のページを辿ることができる。
図8は、ファイルシステムの情報によらずにメタデータに基づいて関連するページをアクセスすることができることを説明するための説明図である。
例えば、物理ブロックPB#01のページPG31がファイルの終端情報であると見込まれた場合、ページPG31のメタデータによって、直前に書き込まれたページはPG30、ブロックはPB#01であって、[区画B:1]であるので連続するデータと類推できる。これを繰り返すことで、物理ブロックPB#01のページPG00にたどり着く。
そして、ページPG00のメタデータによって、直前に書き込まれたページはPG31、ブロックはPB#03であって、[区画B:1]であるので連続するデータと類推できる。上述した動作を繰り返していくと、ページPG00のメタデータの[区画A:1]であるので、ここがファイルの開始位置であることがわかる。
従って、或るファイルのデータは、物理ブロックPB#03のページPG00ないしPG31、及び、物理ブロックPB#01のページPG00ないしPG31によって構成されているということを推定することができる。これらのページに含まれているバイナリデータを読み出すことによって、ファイルの修復を試みることができる。
以上説明したように、第1の実施形態にあっては、メタデータの情報を参照することによって、書き込まれたファイルのデータが格納されたブロックなどをある程度まで特定し得る。従って、離散したブロックなどにファイルのデータが格納されていたとしても、ファイルの修復を試みることができる。
尚、上述の説明では、書き込み対象となる各ページに対して、ホストシステム9側からのデータとメタデータとが書き込まれるとして説明した。場合によっては、ホストシステム9側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される構成とすることもできる。例えば、特定のブロックは専らメタデータのみを格納するといった構成である。
また、情報処理装置1にあっては、メタデータの情報を参照することによって、書き込まれたファイルのデータが格納されたブロックなどを特定することができる。従って、ホストシステム9側からファイルの読み出しが指定される場合に、メタデータに基づいて格納されているデータの先読みを行うといったことも可能である。これによって、データの読み出し性能を向上させることもできる。
また、このデータの連続性を基にデータを読み出す機能をホストシステム9側に提供することによって、ホストシステム9は、必要に応じて情報処理装置1からデータの書き込みを行った際に連続に書き込んだデータについてその連続性を確認しながら読み出すといったことも可能である。
また、ホストシステム9側が予めデータの連続性を情報処理装置1に伝える機能を備えており、情報処理装置1は、ホストシステム9側から通知されるデータの連続性の情報に基づいてメタデータを生成して、ファイルのデータとともに格納するといった態様とすることもできる。
[第2の実施形態]
第2の実施形態も、本開示に係る、情報処理装置、情報処理方法および情報処理プログラム関する。
第1の実施形態は、ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定するといった構成であった。
ホストシステム側からのデータが連続するものである場合、通常、ホストシステム側から送られるデータのサイズは、或る程度の大きさであることが予想される。逆に言えば、送信されるデータのサイズを勘案することによっても、データの不連続性あるいは連続性を推定することができる。
第2の実施形態にあっては、第1の実施形態に加えて、ホストシステム側から送られるデータのサイズを確認し、所定のサイズのデータ以上であるか否かに基づいて、連続するデータと推定されるか否かを判定するといったことを行う。
第2の実施形態に係る情報処理装置2の模式的なブロック図は、図1において、情報処理装置1を情報処理装置2と読み替えればよい。
図9は、送信データのサイズ判定を含む書き込み処理における基本的な動作を説明するための模式的なフローチャートである。図10は、図9における例外処理の詳細を説明するための模式的なフローチャートである。
図9に示す動作は、基本的には、第1の実施形態において参照した図4における(ステップS103)と(ステップS104)との間において、送信データは所定のサイズ以上であるかを判定する(ステップS200)を行うといったものである。送信データは所定のサイズ以上ではない場合には、連続性に疑義があるとして、ステップS201ないしS207からなる例外処理が行われる。以下、図を参照して、例外処理について説明する。
図10は、図9における例外処理の詳細を説明するための模式的なフローチャートである。
メモリコントローラ10は、送信データが所定のサイズ以上ではない場合、先ず、ホストシステム9側からの書き込み命令において、1つ前の書き込みと連続した論理アドレスが指定されているかどうかを判定する(ステップS201)。
この判定が[Yes]の場合には、(ステップS104)の処理を行い、(ステップS102)に戻る。一方、判定が[No]の場合には、送信データを一時的に保持し、次の書き込み命令を待ち(ステップS202)、次の書き込み命令が所定の設定期間内に来たか否かを判定する(ステップS203)。
(ステップS203)の判定が[No]の場合には、別のファイルの書き込みであることが推定される。そこで、後述するループを脱し、図4のStartに戻る。尚、一時的に保持したデータは、別のファイルの先頭データであるとして処理すればよい。一方、(ステップS203)の判定が[Yes]の場合には、送信データは所定のサイズ以上であるかを判定する(ステップS204)。
(ステップS204)の判定が[Yes]の場合には、先のデータとの連続性に疑義があると推定し、送信データにデータの[連続性の疑義]を示すフラグを割り当てる(ステップS205)。そして、(ステップS102)に戻って処理を繰り返す。尚、一時的に保持したデータと次の書き込み命令のデータとの双方に[連続性の疑義]を示すフラグを割り当ててもよいし、前者には[連続性の疑義]を示すフラグを割り当て、後者には[連続]を示すフラグを割り当ててもよい。
(ステップS204)の判定が[No]の場合には、ホストシステム9側から、2つ前の書き込みと連続した論理アドレスが指定されているか否かを判断する(ステップS206)。
(ステップS206)の判定が[Yes]の場合には、先のデータとの連続性があると推定し、送信データにデータの[連続]を示すフラグを割り当てる(ステップS207)。そして、(ステップS102)に戻って処理を繰り返す。尚、一時的に保持したデータと次の書き込み命令のデータとの双方に[連続]を示すフラグを割り当てればよい。
(ステップS206)の判定が[No]の場合には、別のファイルの書き込みであることが推定される。そこで、後述するループを脱し、図4のStartに戻る。尚、一時的に保持したデータは、別のファイルの先頭データであるとして処理すればよい。
以上、第2の実施形態における書き込み処理の基本的な動作について説明した。
上述したように、第2の実施形態にあっては、連続性に疑義がある場合にもフラグを付与する。第1の実施形態にあっては、図5に示す[区画A]と[区画B]とをそれぞれ単独で使用した。図11に示すように、第2の実施形態にあっては、例えば、[区画A]と[区画B]とを連続する2Bitとして扱うことによって、連続性に疑義がある場合に[11]といったフラグを付与する。
[変形例]
上述した各実施形態においては、ストレージデバイスはフラッシュメモリから成るとして説明した。本開示に用いられるストレージデバイスはフラッシュメモリに限るものではなく、HDDなどのディスクデバイスも使用することができる。ディスクデバイスの場合、所定データ量は、セクタ単位のデータ量である構成とすることができる。この場合において、情報処理装置は、複数セクタをクラスタとするクラスタ単位でデータを管理する構成とすることができる。
ここで、HDDにおいてセクタを特定する場合の例を説明する。図12は、LBA(Logical Block Addressing)によってセクタを特定する場合を説明するための説明図である。
フラッシュメモリにおいてページを特定するためには、そのページが属するブロックの番号とブロック内におけるページ番号とを特定する必要があった。これに対し、LBAの場合には、各セクタはそれぞれ一意の番号によって特定される。従って、メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む構成とすることができる。図13は、LBAによってセクタを特定する場合のメタデータの内容を説明するための説明図である。
変形例においても、書き込み対象となる各セクタに対して、ホストシステム9側からのデータとメタデータとが書き込まれる構成とすることができる。図14は、ホストシステム9側からのデータとメタデータとを共にセクタに書き込む場合の例を説明するための説明図である。
あるいは又、ホストシステム9側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される構成とすることができる。例えば、HDDの所定の領域のセクタ全てをメタデータ格納用としておき、データとメタデータとを独立した記録領域に格納するといったこともできる。図15は、メタデータ記録用のセクタにおけるメタデータの格納例である。
以上、本開示の実施形態について具体的に説明したが、本開示の上述の実施形態に限定されるものではなく、本開示の技術的思想に基づく各種の変形が可能である。
なお、本開示の技術は以下のような構成も取ることができる。
[A1]
データのアクセスが所定データ量毎に行われる情報処理装置であって、
ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込む、
情報処理装置。
[A2]
ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定する、
上記[A1]に記載の情報処理装置。
[A3]
ホストシステム側から送られるデータのサイズを確認し、所定のサイズのデータ以上であるか否かに基づいて、連続するデータと推定されるか否かを判定する、
上記[A1]または[A2]に記載の情報処理装置。
[A4]
ホストシステム側からファイルの読み出しが指定される場合に、メタデータに基づいて格納されているデータの先読みを行う、
上記[A1]ないし[A3]のいずれかに記載の情報処理装置。
[A5]
所定データ量は、ページ単位のデータ量である、
上記[A1]ないし[A4]のいずれかに記載の情報処理装置。
[A6]
情報処理装置は、複数ページをブロックとするブロック単位でデータを管理する、
上記[A5]に記載の情報処理装置。
[A7]
情報処理装置は、データが消去されているブロックに対して、データの書き込みを行う、
上記[A6]に記載の情報処理装置。
[A8]
メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む、
上記[A6]または[A7]に記載の情報処理装置。
[A9]
書き込み対象となる各ページに対して、ホストシステム側からのデータとメタデータとが書き込まれる、
上記[A8]に記載の情報処理装置。
[A10]
ホストシステム側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される、
上記[A8]に記載の情報処理装置。
[A11]
所定データ量は、セクタ単位のデータ量である、
上記[A1]に記載の情報処理装置。
[A12]
情報処理装置は、複数セクタをクラスタとするクラスタ単位でデータを管理する、
上記[A11]に記載の情報処理装置。
[A13]
メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む、
上記[A11]または[A12]に記載の情報処理装置。
[A14]
書き込み対象となる各セクタに対して、ホストシステム側からのデータとメタデータとが書き込まれる、
上記[A13]に記載の情報処理装置。
[A15]
ホストシステム側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される、
上記[A13]に記載の情報処理装置。
[B1]
データのアクセスが所定データ量毎に行われる情報処理装置において、ホストシステム側から送信されるデータを書き込む際に、
送信されるデータが一つのファイルを構成する連続するデータと推定されるか否かを判定する工程、及び、
連続するデータであると推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込む工程、
を行う、
情報処理方法。
[B2]
ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定する、
上記[B1]に記載の情報処理方法。
[B3]
ホストシステム側から送られるデータのサイズを確認し、所定のサイズのデータ以上であるか否かに基づいて、連続するデータと推定されるか否かを判定する、
上記[B1]または[B2]に記載の情報処理方法。
[B4]
ホストシステム側からファイルの読み出しが指定される場合に、メタデータに基づいて格納されているデータの先読みを行う、
上記[B1]ないし[B3]のいずれかに記載の情報処理方法。
[B5]
所定データ量は、ページ単位のデータ量である、
上記[B1]ないし[B4]のいずれかに記載の情報処理方法。
[B6]
複数ページをブロックとするブロック単位でデータを管理する、
上記[B5]に記載の情報処理方法。
[B7]
データが消去されているブロックに対して、データの書き込みを行う、
上記[B6]に記載の情報処理方法。
[B8]
メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む、
上記[B6]または[B7]に記載の情報処理方法。
[B9]
書き込み対象となる各ページに対して、ホストシステム側からのデータとメタデータとを書き込む、
上記[B8]に記載の情報処理方法。
[B10]
ホストシステム側からのデータとメタデータとを、それぞれ、独立した記録領域に格納する、
上記[B8]に記載の情報処理方法。
[B11]
所定データ量は、セクタ単位のデータ量である、
上記[B1]に記載の情報処理方法。
[B12]
複数セクタをクラスタとするクラスタ単位でデータを管理する、
上記[B11]に記載の情報処理方法。
[B13]
メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む、
上記[B11]または[B12]に記載の情報処理方法。
[B14]
書き込み対象となる各セクタに対して、ホストシステム側からのデータとメタデータとを書き込む、
上記[B13]に記載の情報処理方法。
[B15]
ホストシステム側からのデータとメタデータとを、それぞれ、独立した記録領域に格納する、
上記[B13]に記載の情報処理方法。
[C1]
データのアクセスが所定データ量毎に行われる情報処理装置の制御をコンピュータで実行させるプログラムであって、
ホストシステム側から送信されるデータを書き込む際に、
送信されるデータが一つのファイルを構成する連続するデータと推定されるか否かを判定するステップ、及び、
連続するデータであると推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込むステップ、
を含む処理をコンピュータに実行させるための情報処理プログラム。
[C2]
ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定する、
上記[C1]に記載の情報処理プログラム。
[C3]
ホストシステム側から送られるデータのサイズを確認し、所定のサイズのデータ以上であるか否かに基づいて、連続するデータと推定されるか否かを判定する、
上記[C1]または[C2]に記載の情報処理プログラム。
[C4]
ホストシステム側からファイルの読み出しが指定される場合に、メタデータに基づいて格納されているデータの先読みを行う、
上記[C1]ないし[C3]のいずれかに記載の情報処理プログラム。
[C5]
所定データ量は、ページ単位のデータ量である、
上記[C1]ないし[C4]のいずれかに記載の情報処理プログラム。
[C6]
複数ページをブロックとするブロック単位でデータを管理する、
上記[C5]に記載の情報処理プログラム。
[C7]
データが消去されているブロックに対して、データの書き込みを行う、
上記[C6]に記載の情報処理プログラム。
[C8]
メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む、
上記[C6]または[C7]に記載の情報処理プログラム。
[C9]
書き込み対象となる各ページに対して、ホストシステム側からのデータとメタデータとを書き込む、
上記[C8]に記載の情報処理プログラム。
[C10]
ホストシステム側からのデータとメタデータとを、それぞれ、独立した記録領域に格納する、
上記[C8]に記載の情報処理プログラム。
[C11]
所定データ量は、セクタ単位のデータ量である、
上記[C1]に記載の情報処理プログラム。
[C12]
複数セクタをクラスタとするクラスタ単位でデータを管理する、
上記[C11]に記載の情報処理プログラム。
[C13]
メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む、
上記[C11]または[C12]に記載の情報処理プログラム。
[C14]
書き込み対象となる各セクタに対して、ホストシステム側からのデータとメタデータとを書き込む、
上記[C13]に記載の情報処理プログラム。
[C15]
ホストシステム側からのデータとメタデータとを、それぞれ、独立した記録領域に格納する、
上記[C13]に記載の情報処理プログラム。
1・・・情報処理装置、10・・・コントローラ、11・・・マイクロプロセッサ、12・・・データバッファ、13・・・ホストシステムI/F、14・・・ストレージデバイスI/F、20・・・ストレージデバイス

Claims (14)

  1. データのアクセスがページ単位の所定データ量毎に行われる情報処理装置であって、
    複数ページをブロックとするブロック単位でデータを管理し、
    ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込み、
    メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む、
    情報処理装置。
  2. ホストシステム側からの書き込み命令が一つ前の書き込み命令から所定の時間内に発行されているか否かに基づいて、連続するデータと推定されるか否かを判定する、
    請求項1に記載の情報処理装置。
  3. ホストシステム側から送られるデータのサイズを確認し、所定のサイズのデータ以上であるか否かに基づいて、連続するデータと推定されるか否かを判定する、
    請求項1に記載の情報処理装置。
  4. ホストシステム側からファイルの読み出しが指定される場合に、メタデータに基づいて格納されているデータの先読みを行う、
    請求項1に記載の情報処理装置。
  5. 情報処理装置は、データが消去されているブロックに対して、データの書き込みを行う、
    請求項に記載の情報処理装置。
  6. 書き込み対象となる各ページに対して、ホストシステム側からのデータとメタデータとが書き込まれる、
    請求項に記載の情報処理装置。
  7. ホストシステム側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される、
    請求項に記載の情報処理装置。
  8. データのアクセスがセクタ単位の所定データ量毎に行われる情報処理装置であって、
    複数セクタをクラスタとするクラスタ単位でデータを管理し、
    ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込み、
    メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む
    報処理装置。
  9. 書き込み対象となる各セクタに対して、ホストシステム側からのデータとメタデータとが書き込まれる、
    請求項に記載の情報処理装置。
  10. ホストシステム側からのデータとメタデータとは、それぞれ、独立した記録領域に格納される、
    請求項に記載の情報処理装置。
  11. データのアクセスがページ単位の所定データ量毎に行われる情報処理装置が、
    複数ページをブロックとするブロック単位でデータを管理する工程と、
    ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込む工程
    有し、
    メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む、
    情報処理方法。
  12. データのアクセスがセクタ単位の所定データ量毎に行われる情報処理装置が、
    複数セクタをクラスタとするクラスタ単位でデータを管理する工程と、
    ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込む工程と、
    を有し、
    メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む、
    情報処理方法。
  13. データのアクセスがページ単位の所定データ量毎に行われる情報処理装置の制御をコンピュータで実行させるプログラムであって、
    複数ページをブロックとするブロック単位でデータを管理するステップと、
    ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込むステップ
    を含む処理をコンピュータに実行させるためのプログラムであって、
    メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたブロック情報およびページ情報とを含む、
    情報処理プログラム。
  14. データのアクセスがセクタ単位の所定データ量毎に行われる情報処理装置の制御をコンピュータで実行させるプログラムであって、
    複数セクタをクラスタとするクラスタ単位でデータを管理するステップと、
    ホストシステム側から送信されるデータを書き込む際に、送信されるデータが一つのファイルを構成する連続するデータと推定される場合に、ホストシステム側からのデータと共に連続するデータであることを示すメタデータを書き込むステップと、
    を含む処理をコンピュータに実行させるためのプログラムであって、
    メタデータは、連続するデータと推定されることを示すフラグと、直前にデータが格納されたセクタ情報とを含む、
    情報処理プログラム。
JP2020561268A 2018-12-19 2019-12-03 情報処理装置、情報処理方法および情報処理プログラム Active JP7435470B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018236857 2018-12-19
JP2018236857 2018-12-19
PCT/JP2019/047184 WO2020129612A1 (ja) 2018-12-19 2019-12-03 情報処理装置、情報処理方法および情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2020129612A1 JPWO2020129612A1 (ja) 2021-12-02
JP7435470B2 true JP7435470B2 (ja) 2024-02-21

Family

ID=71101724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020561268A Active JP7435470B2 (ja) 2018-12-19 2019-12-03 情報処理装置、情報処理方法および情報処理プログラム

Country Status (4)

Country Link
US (1) US20220114147A1 (ja)
JP (1) JP7435470B2 (ja)
CN (1) CN113196258A (ja)
WO (1) WO2020129612A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155335A (ja) 2004-11-30 2006-06-15 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20080215834A1 (en) 2007-03-01 2008-09-04 Douglas Dumitru Fast block device and methodology
JP2008299456A (ja) 2007-05-30 2008-12-11 Sony Corp データ記憶装置及びデータ管理方法
US20140164681A1 (en) 2012-12-07 2014-06-12 Sandisk Technologies Inc. Systems and Methods for Intelligent Flash Management
CN107846327A (zh) 2017-11-13 2018-03-27 浪潮天元通信信息系统有限公司 一种网管性能数据的处理方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4441968B2 (ja) * 1999-02-26 2010-03-31 ソニー株式会社 記録方法、管理方法、及び記録装置
US20060143365A1 (en) * 2002-06-19 2006-06-29 Tokyo Electron Device Limited Memory device, memory managing method and program
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
JP2006133923A (ja) * 2004-11-04 2006-05-25 Sony Corp データ記録再生装置、記録再生方法、プログラム並びにデータ記録媒体
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
KR100874702B1 (ko) * 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
TWI326028B (en) * 2006-11-20 2010-06-11 Silicon Motion Inc Method for flash memory data management
JP4743185B2 (ja) * 2007-08-27 2011-08-10 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI368223B (en) * 2007-12-07 2012-07-11 Phison Electronics Corp Flash memory data writing method and controller using the same
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
TWI409819B (zh) * 2009-03-03 2013-09-21 Silicon Motion Inc 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
TWI405209B (zh) * 2009-04-01 2013-08-11 Phison Electronics Corp 資料管理方法及使用此方法的快閃儲存系統與控制器
US8799557B1 (en) * 2011-10-13 2014-08-05 Netapp, Inc. System and method for non-volatile random access memory emulation
JP5983019B2 (ja) * 2012-05-17 2016-08-31 ソニー株式会社 制御装置、記憶装置、記憶制御方法
US9324450B2 (en) * 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9772777B2 (en) * 2015-04-27 2017-09-26 Southwest Research Institute Systems and methods for improved access to flash memory devices
KR102314135B1 (ko) * 2015-06-22 2021-10-18 삼성전자 주식회사 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법
US11029856B2 (en) * 2018-03-02 2021-06-08 Qualcomm Incorporated Flash memory device with data fragment function

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155335A (ja) 2004-11-30 2006-06-15 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20080215834A1 (en) 2007-03-01 2008-09-04 Douglas Dumitru Fast block device and methodology
JP2008299456A (ja) 2007-05-30 2008-12-11 Sony Corp データ記憶装置及びデータ管理方法
US20140164681A1 (en) 2012-12-07 2014-06-12 Sandisk Technologies Inc. Systems and Methods for Intelligent Flash Management
CN107846327A (zh) 2017-11-13 2018-03-27 浪潮天元通信信息系统有限公司 一种网管性能数据的处理方法及装置

Also Published As

Publication number Publication date
US20220114147A1 (en) 2022-04-14
JPWO2020129612A1 (ja) 2021-12-02
WO2020129612A1 (ja) 2020-06-25
CN113196258A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
US7610434B2 (en) File recording apparatus
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
EP2631916A1 (en) Data deletion method and device
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
JP2008507756A (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US20080025706A1 (en) Information recording apparatus and control method thereof
JPWO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
CN103389942A (zh) 控制装置、存储装置及存储控制方法
JP4347707B2 (ja) 情報記録媒体のフォーマット方法および情報記録媒体
JP2009032305A (ja) 情報記録装置及びその制御方法
JPWO2009001514A1 (ja) メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
JP4130808B2 (ja) フォーマット方法
JP2010237907A (ja) ストレージ装置および記録方法
US8301862B2 (en) Formatting device
JP7435470B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
EP2381354A2 (en) Data recording device
JP2008262452A (ja) 記録デバイスのキャッシュ方法および記録装置
KR20030061948A (ko) 정보 저장 장치 및 그를 이용한 파일 관리 방법
JP4664869B2 (ja) データ記録システム
JP2008117491A (ja) 記録装置、記録方法、およびプログラム
JP2009134514A (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R151 Written notification of patent or utility model registration

Ref document number: 7435470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151