JP6484763B2 - データ処理方法及び装置、並びにフラッシュデバイス - Google Patents

データ処理方法及び装置、並びにフラッシュデバイス Download PDF

Info

Publication number
JP6484763B2
JP6484763B2 JP2018526989A JP2018526989A JP6484763B2 JP 6484763 B2 JP6484763 B2 JP 6484763B2 JP 2018526989 A JP2018526989 A JP 2018526989A JP 2018526989 A JP2018526989 A JP 2018526989A JP 6484763 B2 JP6484763 B2 JP 6484763B2
Authority
JP
Japan
Prior art keywords
data
flash device
user
provisioning
over
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
JP2018526989A
Other languages
English (en)
Other versions
JP2018527688A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018527688A publication Critical patent/JP2018527688A/ja
Application granted granted Critical
Publication of JP6484763B2 publication Critical patent/JP6484763B2/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
    • 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
    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7211Wear leveling

Description

本発明は、フラッシュデバイス技術の分野に関し、具体的には、データ処理方法及び装置、並びにフラッシュデバイスに関する。
略してSSDと呼ばれるソリッドステートディスク(Solid State Driveとも呼ばれる)は、ソリッドステート電子記憶チップアレイでできたハードディスクである。SSDは、軍事、車両、産業用制御、ビデオ監視、ネットワーク監視、ネットワーク端末、電力、医療、航空、及びナビゲーションデバイスのような分野に広く適用されている。市場では、一般的なSSD容量は、通常では、60/64GB、120/128GB、240/256GB、480/512GB及び960/1024GBを含み、スラッシュの左側の値は、ユーザ利用可能空間容量を表し、スラッシュの右側の値は、SSDの物理空間容量を表し、2つの値の間の差は、オーバープロビジョニング(Over Provisioning, OP)空間である。通常では、ユーザは、この空間の部分において操作を実行することはできず、通常では、この空間の部分の容量は、プライマリコントローラにより決定される。一般的には、OPは、ウェアレベリング、ガベージコレクション、不良ブロックマッピング等を含む最適化操作を実行するために使用される。オーバープロビジョニング比は、ユーザ利用可能空間容量に対するオーバープロビジョニング空間容量の比であり、業界における典型的なオーバープロビジョニング比は7%及び28%である。1024GBの物理空間容量が例として使用される。ユーザ利用可能空間容量が960GBであるときに、対応するオーバープロビジョニング比は7%、すなわち、(1024-960)/960である。ユーザ利用可能空間容量が800GBであるときに、対応するオーバープロビジョニング比は28%、すなわち、(1024-800)/800である。より大きいオーバープロビジョニング比は、より良いランダム書き込み性能、より小さい性能変動、及びより長い耐用寿命を示すが、より高いコストを示す。
SSD内のフラッシュメモリは、再書き込みされる前に消去される必要があり、ブロック単位で消去されている間にページ単位で書き込み及び読み取りされる。したがって、実際に書き込まれるデータの量は、ホストを使用することにより書き込まれるデータの量よりかなり大きい。ライトアンプリフィケーション(Write Amplification, WA)は、ホストを使用することにより書き込まれたデータのサイズに対する実際に書き込まれたデータの量の比である。より大きいWAは、より小さいオーバープロビジョニング比、より短い耐用寿命、及びより悪いランダム書き込み性能を示す。
現在、SSDベンダは、特定の容量のSSDのために複数のオーバープロビジョニング比を提供しており、ユーザは、ユーザ要件に従って固定のオーバープロビジョニング比を選択する。いったんオーバープロビジョニング比が固定されると、SSDのパラメータは固定され、SSDの性能及び耐用寿命もまた固定される。このように、SSDは、固定のオーバープロビジョニング比でのみ実行できる。したがって、SSDの性能及び耐用寿命を更に最適化することは困難である。
本発明の実施例は、オーバープロビジョニング比を動的に調整し、フラッシュデバイスの信頼性及び性能安定性を改善し、フラッシュデバイスの耐用寿命を延長させるためのデータ処理方法及び装置、並びにフラッシュデバイスを提供する。
本発明の実施例の第1の態様は、データ処理方法を提供し、方法は、記憶システムに適用され、記憶システムは、ホスト及びフラッシュデバイスを含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってフラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差であり、方法は、フラッシュデバイスにより実行され、
ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するステップと、
操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定するステップと、
目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するステップと、
目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するステップと
を含む。
本発明の実施例の第1の態様の第1の可能な実現では、ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するステップは、
ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定するステップと、
追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定するステップと
を含む。
本発明の実施例の第1の態様の第2の可能な実現では、ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するステップは、
ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定するステップと、
削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定するステップと
を含む。
本発明の実施例の第1の態様の第1の可能な実現を参照して、本発明の実施例の第1の態様の第3の可能な実現では、追加対象のデータをフラッシュデバイスに追加する前に、方法は、
追加対象のデータを圧縮するステップであり、追加対象のデータは、圧縮データであるステップを更に含む。
本発明の実施例の第1の態様の第1〜第3の可能な実現のうちいずれか1つを参照して、第1の態様の第4の可能な実現では、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するステップの後に、方法は、
目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行するステップを更に含む。
本発明の実施例の第1の態様の第1〜第3の可能な実現のうちいずれか1つを参照して、第1の態様の第5の可能な実現では、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するステップの後に、方法は、
目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行するステップを更に含む。
本発明の実施例の第2の態様は、データ処理装置を提供し、データ処理装置は、記憶システム内のフラッシュデバイスに適用され、記憶システムは、ホストを更に含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってフラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差であり、データ処理装置は、
ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するように構成された受信ユニットと、
操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定するように構成された決定ユニットであり、
決定ユニットは、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するように更に構成される、決定ユニットと、
目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するように構成された調整ユニットと
を含む。
本発明の実施例の第2の態様の第1の可能な実現では、受信ユニットは、ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定し、追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
本発明の実施例の第2の態様の第2の可能な実現では、受信ユニットは、ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定し、削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
本発明の実施例の第2の態様の第1の可能な実現を参照して、本発明の実施例の第3の可能な実現では、受信ユニットは、追加対象のデータを圧縮するように更に構成され、追加対象のデータは、圧縮データである。
本発明の実施例の第2の態様の第1〜第3の可能な実現のうちいずれか1つを参照して、本発明の実施例の第4の可能な実現では、装置は、
目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行するように構成された処理ユニットを更に含む。
本発明の実施例の第2の態様の第1〜第3の可能な実現のうちいずれか1つを参照して、本発明の実施例の第5の可能な実現では、処理ユニットは、目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行するように更に構成される。
本発明の実施例の第3の態様は、本発明の実施例の第2の態様において提供されるデータ処理装置を含むフラッシュデバイスを提供する。
本発明の実施例では、ホストにより送信された操作命令が受信され、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作が実行され、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズが決定され、次に、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルが決定され、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータが決定され、最後に、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量が調整される。したがって、フラッシュデバイスのオーバープロビジョニング比は、記憶されたデータの量に従って動的に調整され、さらに、フラッシュデバイスの信頼性及び性能安定性が改善され、フラッシュデバイスの耐用寿命が延長する。
本発明の実施例又は従来技術における技術的解決策をより明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みなしに依然としてこれらの添付図面から他の図面を導き得る。
従来技術における記憶システムのネットワークアーキテクチャの概略図である。 本発明の実施例によるオーバープロビジョニングレベル構成の概略図である。 本発明の実施例によるフラッシュデバイスの概略構成図である。 本発明の実施例によるデータ処理方法の概略フローチャートである。 本発明の実施例による他のデータ処理方法の概略フローチャートである。 本発明の実施例によるデータ処理装置の概略構成図である。
以下に、本発明の実施例における添付図面を参照して本発明の実施例における技術的解決策を明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の全てではなく、単なる一部である。創造的取り組みなしに本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
本発明の実施例において開示されるデータ処理方法及び装置、並びにフラッシュデバイスのより良い理解のため、以下に、まず、従来技術における記憶システムのネットワークアーキテクチャを説明する。図1を参照すると、図1は、従来技術における記憶システムのネットワークアーキテクチャの概略図である。図1に示す記憶システムは、ホスト及びフラッシュデバイスを含む。従来技術における記憶システムは、複数のホスト及び複数のフラッシュデバイスを含み、記憶システム内の1つのホスト及び1つのフラッシュデバイスが本発明の実施例において記載される点に留意すべきである。ホストは、デスクトップコンピュータ、ノートブックコンピュータ又はサーバのようなデバイスを含んでもよいが、これらに限定されず、ホストは、一連の命令を送信することによりフラッシュデバイスを制御する。フラッシュデバイスは、ホストにより送信された命令に従って、読み取り、書き込み又は削除のような対応する操作を実行する。フラッシュデバイスの物理記憶空間は、オーバープロビジョニング空間及びユーザ記憶空間を含み、物理記憶空間は、フラッシュデバイスの合計空間であり、ユーザ記憶空間は、ホストを使用することによりユーザにより入力されたデータを記憶するために使用される。本発明の実施例において提供されるデータ処理方法及び装置、並びにフラッシュデバイスは、図1に示す記憶システムに適用されてもよく、具体的には、フラッシュデバイスのオーバープロビジョニング空間を調整するシナリオに適用されてもよい。本発明の実施例におけるデータ処理装置は、フラッシュデバイス内に位置する。
本発明の実施例におけるフラッシュデバイスは、NANDフラッシュ(NAND Flash)を有する記憶デバイス、例えば、ソリッドステートドライブ(Solid State Disk, SSD)、取り外し可能ハードディスク、フロッピーディスク、USBフラッシュドライブ又はSDカードを含んでもよいが、これらに限定されない。フラッシュメモリ内のソリッドステートドライブが本発明の実施例において主に記載され、他のフラッシュデバイスもまた本発明の実施例において使用されてもよい点に留意すべきである。
ソリッドステートドライブSSDは、プライマリコントローラ及びNAND Flashを主に含む。NAND Flashは、不揮発性ランダムアクセス記憶媒体であり、NAND Flashが電源オフされた後にデータを失わないことを特徴とする。NAND Flashは、ダイナミックランダムアクセスメモリDRAM及びスタティックランダムアクセスメモリSRAMのような従来の揮発性ランダムアクセス記憶媒体及び従来の揮発性フラッシュデバイスとは異なり、したがって、外部フラッシュデバイスとして使用されてもよい。NAND Flashは、2つの種類、すなわち、シングルレベルセル(Single Level Cell, SLC)及びマルチレベルセル(Multi-Level Cell, MLC)に分類され、2つの間の主な違いは、これらが異なる構成を有することである。現在、市場にあるほとんどのNAND Flashは、MLCチップを使用する。
NAND Flashコンポーネントは、一般的に、内部レジスタ及び記憶マトリクスを含む。記憶マトリクスはいくつかのブロックを含み、各ブロックはいくつかのページを含み、各ページはいくつかのバイトを含む。NAND Flashに対して実行される主な操作は、読み取り、書き込み及び消去である。フラッシュデバイスは不揮発性半導体であるため、NAND Flashは、ページ単位で読み取り及び書き込みされ、ブロック単位で消去される。ページは、書き込まれる前に消去される必要がある。NAND Flashを使用する順序は、通常では、消去→プログラム→複数回の読み取り→消去…である。
オーバープロビジョニング(Over Provisioning, OP)空間は、ユーザが操作を実行できず且つサイズがSSDの物理空間容量からユーザ利用可能空間容量を減算したものである空間である。OPエリアは、通常では最適化操作、例えば、ウェアレベリング、ガベージコレクション及び不良ブロックマッピングのために使用される。
ウェアレベリング(Wear leveling, WL)は、全てのブロックが書き込まれる回数量が等しくなることを確保するために使用される機構である。ユーザ論理アドレス空間内のデータは、異なる速度で更新される。いくつかのエリア内のデータは頻繁に更新されるが、いくつかのエリア内のデータは頻繁に更新されない。明らかに、頻繁に更新されるデータにより占有されるフラッシュブロックは早く摩耗し、一方で、頻繁に更新されないデータにより占有されるフラッシュブロックは、あまり摩耗しない。この問題は、ウェアレベリング機構を使用することにより、うまく解決でき、これにより、全てのフラッシュブロックがプログラムされる回数量ができるだけ同じに保持される。
ガベージコレクション(Garbage Collection, GC)は、フラッシュブロックの有効ページ上のデータを空白ブロックにコピーし、次に全体のブロックを消去することを意味する。GCは、SSDにとって極めて重要な操作であり、GC効率は、性能に決定的な影響を有する。フラッシュブロックの有効ページの量は、GC効率に決定的な影響を有し、すなわち、より少ない量の有効ページは、コピーされる必要があるより少ない量のページを示し、より少ない時間がコストになることを示し、これにより、ガベージコレクション効率を改善する。
ライトアンプリフィケーション(Write amplification, WA)は、ホストを使用することにより書き込まれたデータのサイズに対するNAND Flashに実際に書き込まれたデータのサイズの比である。NAND Flashは、書き込まれる前に消去される必要があるため、これらの操作の実行中に、ユーザデータは1回より多く移動又は上書きされる。これらの繰り返し操作は、書き込まれるデータの量を増加させてSSDの耐用寿命を短縮するだけでなく、NAND Flashの帯域幅も消費し、SSDのランダム書き込み性能に間接的に影響を与える。例えば、4KBのデータが書き込まれる必要があるときに、ブロックがクリーンな空間を有さないが消去できる無効なデータを有する最悪の場合、プライマリコントローラは、全てのデータをキャッシュに読み取り、ブロックを消去し、全体ブロックのデータがキャッシュ内で更新され、新たなデータが書き戻される。この操作から生じるライトアンプリフィケーションは以下の通りである。4KBのデータを実際に書き込むことは、全体ブロック(合計で1024KB)での書き込み操作を引き起こし、すなわち、書き込まれるデータの量は256倍だけ増幅される。同時に、4KBのデータを書き込む簡単な1ステップの操作が4ステップの操作、すなわち、フラッシュメモリから読み取る(1024KB)→キャッシュ内で更新する(4KB)→フラッシュメモリを消去する(1024KB)→フラッシュメモリに書き込む(1024KB)になる。したがって、遅延がかなり増加し、書き込み速度が減少する。したがって、ライトアンプリフィケーションは、SSDのランダム書き込み性能及び耐用寿命に影響を与える主要因である。
複数のオーバープロビジョニングレベルは、複数の異なるオーバープロビジョニング比に従って、本発明の実施例においてフラッシュデバイスの物理記憶空間について構成される。詳細には、図2に示すオーバープロビジョニングレベル構成の概略図を参照する。図2の値は単なる例であり、具体的な値はフラッシュメモリの製造者により設定されてもよく、ここでは限定されない点に留意すべきである。物理記憶空間容量が1024Gであるフラッシュデバイスが図2の例として使用される。オーバープロビジョニング比が7%である場合、ユーザ記憶空間容量は960Gであり、1024Gと960Gとの間の差64Gはフラッシュデバイスのオーバープロビジョニング空間容量である。本発明の実施例では、6個のオーバープロビジョニングレベル、すなわち、Level0、Level1、Level2、Level3、Level4及びLevel5が、複数の異なるオーバープロビジョニング比に従って、フラッシュデバイスの物理記憶空間1024Gについて構成され、ユーザ記憶空間容量の対応する区間は、それぞれ(800G,960G]、(720G,800G]、(660G,720G]、(520G,660G]、(400G,520G]及び[0G,400G]である。本発明の実施例では、対応する調整パラメータが、各ユーザ記憶空間容量について更に構成される。調整パラメータは、オーバープロビジョニング空間調整パラメータ、ガベージコレクションGC調整パラメータ、ウェアレベリングWL調整パラメータ、ライトアンプリフィケーションWA調整パラメータ、並びにホット及びコールドデータ交換頻度のようなパラメータを含む。各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しているため、各オーバープロビジョニングレベルと調整パラメータとの間の対応関係が導出できる。従来技術では、フラッシュデバイスを製造するときに、通常では、フラッシュデバイスの製造者が、顧客の要件に従って顧客のために固定のオーバープロビジョニング比を提供する。いったんオーバープロビジョニング比が固定されると、フラッシュデバイスの性能、パラメータ、耐用寿命等を更に最適化することは困難である。
図1に示すネットワークアーキテクチャに基づいて、図3を参照すると、図3は、本発明の実施例によるフラッシュデバイスの概略構成図である。図3に示すように、フラッシュデバイスは、CPUのような少なくとも1つのプロセッサ1001と、通信インタフェース1003と、メモリ1004と、少なくとも1つの通信バス1002とを含む。任意選択で、プロセッサ1001は、フラッシュデバイスのプライマリコントローラである。通信インタフェース1003は、フラッシュデバイスと同じ記憶システム内にあるホストにより送信された操作命令を受信するように構成される。通信バス1002は、これらの要素の間の接続及び通信を実現するように構成される。メモリ1004は、データを記憶するように構成されたNAND Flashメモリでもよい。複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってメモリ1005の物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差である。
以下では、本発明の実施例によるデータ処理方法について図3〜図5を参照して詳細に説明する。
図4を参照すると、図4は、本発明の実施例によるデータ処理方法の概略フローチャートである。図3に記載のフラッシュデバイスを参照すると、メモリ1004は、プログラムコードのグループを記憶し、プロセッサ1001は、データ処理方法を実行するために、メモリ1004に記憶されたプログラムコードを呼び出す。方法は以下のステップS101〜ステップS104を含んでもよい。
S101.ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定する。
任意選択で、プロセッサ1001は、ホストにより送信され且つ通信インタフェース1003により受信された操作命令に従って、メモリ1004に記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズを決定する。通信インタフェース1003が操作命令を受信したときに、プロセッサ1001は、まず、操作命令が実行されているか否かを決定する。決定の結果がいいえである場合、すなわち、プロセッサ1001が操作命令を実行していない場合、メモリ1004に記憶されたデータに対して操作が実行される。プロセッサ1001が操作を実行する前に、メモリ1004は、データの一部を記憶してもよく、データのこの部分は、フラッシュデバイス内のデータの初期サイズとして使用される。データの初期サイズは、操作が実行された後に変化してもよい。したがって、フラッシュデバイスは、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズを決定する必要があり、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズに従って、フラッシュデバイスのオーバープロビジョニングレベルが調整される必要があるか否かを決定する。プロセッサ1001が操作命令を実行している場合、プロセッサ1001が、操作命令に従って、メモリ1004に記憶されたデータに対して操作を実行していることが理解され得る。この場合、フラッシュデバイスに対して処理は実行されない。
操作命令は、書き込み命令又は削除命令を含む。具体的には、操作命令が書き込み命令であるとき、プロセッサ1001は、まず、書き込み命令が実行されているか否かを決定し、そうでない場合、追加対象のデータを決定し、追加対象のデータをフラッシュデバイスに追加し、元の基準のデータの初期サイズを増加させ、したがって、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズとして、データの初期サイズと追加対象のデータの量との和を決定する。操作命令が削除命令であるとき、プロセッサ1001は、まず、削除命令が実行されているか否かを決定し、そうでない場合、削除対象のデータを決定し、削除対象のデータをメモリ1004から削除し、元の基準のデータの初期サイズを減少させ、したがって、操作後に取得され且つユーザによりメモリ1005に保存されたデータのサイズとして、データの初期サイズと削除対象のデータの量との間の差を決定する。
S102.操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定する。
任意選択で、複数のオーバープロビジョニングレベルが異なるオーバープロビジョニング比に従ってフラッシュデバイスについて構成され、各オーバープロビジョニングレベルがユーザ記憶空間容量の区間に対応しているため、プロセッサ1001は、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定する。操作後に取得され且つユーザによりメモリ1005に保存されたデータのサイズが500Gである場合、図2から、この場合には、ユーザ記憶空間容量の対応する区間が(400G,520G]であり、対応するオーバープロビジョニングレベルがLevel4であり、Level4が目標オーバープロビジョニングレベルとして決定されることが習得され得る。フラッシュデバイスが使用又はフォーマットされていない場合、目標オーバープロビジョニングレベルは、初期設定でLevel5に設定される。
S103.目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定する。
任意選択で、複数のオーバープロビジョニングレベルが異なるオーバープロビジョニング比に従ってフラッシュデバイスについて構成され、各オーバープロビジョニングレベルがユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間が異なる調整パラメータに対応しているため、各オーバープロビジョニングレベルと調整パラメータとの間の対応関係が導出でき、すなわち、フラッシュデバイスは、オーバープロビジョニングレベルについて異なる調整パラメータを構成する。プロセッサ1001は、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定する。目標調整パラメータは、操作命令が受信される前に使用される調整パラメータと同じでもよく、或いは異なってもよく、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズに従って決定される。操作後に取得され且つユーザによりメモリ1005に保存されたデータのサイズと、データの初期サイズとがユーザ記憶空間容量の同じ区間に属する場合、目標調整パラメータは、データの初期サイズに対応する調整パラメータと同じである。そうでない場合、目標調整パラメータは、データの初期サイズに対応する調整パラメータとは異なる。ユーザによりメモリ1005に保存されたデータのサイズが変化する毎に、プロセッサ1001は、新たな目標オーバープロビジョニングレベル及び新たな目標調整パラメータを決定する必要がある。従来技術では、固定のオーバープロビジョニング比及び固定のオーバープロビジョニング空間容量が存在するため、ユーザによりメモリ1004に保存されたデータのサイズの変化に拘わらず、プロセッサ1001は、固定の調整パラメータに従って、ユーザにより保存されたデータを調整する。このように、フラッシュデバイスの信頼性及び性能安定性が或る程度影響を受ける。
S104.目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整する。
任意選択で、プロセッサ1001は、目標調整パラメータに従って、メモリ1004のオーバープロビジョニング空間容量を調整する。従来技術では、各フラッシュデバイスのオーバープロビジョニング空間容量は納品時に決定されており、これにより、フラッシュデバイスの処理性能は、或る程度制限される。本発明のこの実施例におけるメモリ1004のオーバープロビジョニング空間は固定されておらず、ユーザによりメモリ1004に保存されたデータのサイズと共に変化し、メモリ1004のオーバープロビジョニング空間容量は、調整パラメータに従って、対応して調整され、これにより、フラッシュデバイスが最適動作状態になる。例えば、目標調整パラメータは、Level4に対応する調整パラメータであり、この場合に対応するオーバープロビジョニング空間は、目標調整パラメータに従って1024G-520G=504Gに調整される。従来技術において固定のオーバープロビジョニング比が7%であるフラッシュデバイスの対応するオーバープロビジョニング空間64Gと比較して、オーバープロビジョニング空間が増加し、これは、WAを低減するのに役立つ。したがって、従来技術におけるものと比較して、本発明のこの実施例におけるフラッシュデバイスは、より高い信頼性及びより高い性能安定性を有する。
目標調整パラメータは、目標ガベージコレクション調整パラメータ及び目標ウェアレベリング調整パラメータを含む。メモリ1004のオーバープロビジョニング空間容量を調整した後に、プロセッサ1001は、目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行し、目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング調整処理を実行する。
従来技術におけるオーバープロビジョニング空間は固定されており且つユーザにとってアクセス可能ではないが、本発明のこの実施例におけるオーバープロビジョニング空間は動的に変化し得る点に留意すべきである。特定のオーバープロビジョニングレベルは、固定のオーバープロビジョニング空間に対応しているが、オーバープロビジョニングレベルが他のレベルに変化したときに、オーバープロビジョニング空間は変化する。
本発明のこの実施例では、ホストにより送信された操作命令が受信され、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作が実行され、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズが決定され、次に、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルが決定され、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータが決定され、最後に、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量が調整される。したがって、フラッシュデバイスのオーバープロビジョニング比は、記憶されたデータの量に従って動的に調整され、さらに、フラッシュデバイスの信頼性及び性能安定性が改善され、フラッシュデバイスの耐用寿命が延長する。
図5を参照すると、図5は、本発明の実施例による他のデータ処理方法の概略フローチャートである。図3に記載のフラッシュデバイスを参照すると、メモリ1004は、プログラムコードのグループを記憶し、プロセッサ1001は、データ処理方法を実行するために、メモリ1005に記憶されたプログラムコードを呼び出す。方法は以下のステップS201〜ステップS210を含んでもよい。
S201.ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定する。
任意選択で、通信インタフェース1003は、ホストにより送信された書き込み命令を受信し、通信バス1002を使用することにより、書き込み命令をプロセッサ1001に送信する。プロセッサ1001は、書き込み命令に従って、追加対象のデータを決定する。書き込み命令を受信したときに、プロセッサ1001は、書き込み命令が実行されているか否かを決定する。ホスト及びフラッシュデバイスは記憶システム内にあり、ホストは、フラッシュデバイスの動作を制御し、デスクトップコンピュータ、ノートブックコンピュータ又はサーバのようなデバイスを含んでもよいが、これらに限定されない。プロセッサ1001により受信された書き込み命令は実行されている可能性があるため、プロセッサ1001は、書き込み命令が実行されているか否かを決定する必要がある。書き込み命令が実行されていない場合、プロセッサ1001が、書き込み命令に従って、データをメモリ1004に追加していないことが理解され得る。書き込み命令が実行されている場合、プロセッサ1001が、書き込み命令に従って、データをメモリ1004に追加していることが理解され得る。書き込み命令が再び受信された場合、メモリ1004に記憶されたデータのサイズは変化しない。この場合、フラッシュデバイスに対して処理は実行されない。追加対象のデータを決定することは、追加対象のデータの内容及び量を決定することを含む。
S202.追加対象のデータを圧縮する。
任意選択で、プロセッサ1001は、追加対象のデータを圧縮する。いくつかのSSDは圧縮機能を有し、これにより、ユーザによりSSDに実際に追加されるデータのサイズは、追加されたデータが圧縮された後に取得されたデータのサイズである。したがって、追加対象のデータは、圧縮データである。
本発明のこの実施例におけるステップS202は、SSDが圧縮機能を有するときに実行され、SSDが圧縮機能を有さない場合、ステップS202が実行されず、ステップS203が直接実行される点に留意すべきである。
S203.追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定する。
任意選択で、プロセッサ1001は、追加対象のデータをメモリ1004に追加し、これにより、新たなデータのサイズをユーザによりメモリ1005に以前に保存されたデータのサイズに追加し、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズとして、追加対象のデータがメモリ1004に追加された後に取得され且つユーザにより保存されたデータのサイズを決定する。
S204.ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定する。
任意選択で、プロセッサ1001は、ホストにより送信された削除命令を受信し、通信バス1002を使用することにより、削除命令をプロセッサ1001に送信する。プロセッサ1001は、削除命令に従って、削除対象のデータを決定する。削除命令を受信したときに、プロセッサ1001は、削除命令が実行されているか否かを決定する。削除命令は、トリム(TRIM)命令である。本発明のこの実施例を実現する前提条件は、フラッシュデバイスがTRIM命令をサポートできることである。TRIM命令は、オペレーティングシステムにより、ファイルが削除されたか、或いはフォーマットが実行された後に、このデータブロックがもはや必要ないことをSSDのプライマリコントローラに通知するために使用される。いくつかのファイルが削除されたか、或いは全体パーティションがフォーマットされたときに、オペレーティングシステムは、操作中に更新された論理アドレス(無効なデータアドレスを含む)と共にTRIM命令をSSDのプライマリコントローラに送信する。このように、以降のガベージコレクション処理において、無効なデータが消し去られることができ、これにより、ユーザ記憶空間容量及びオーバープロビジョニング空間容量が対応して増加し、ライトアンプリフィケーションWAが低減され、性能が改善される。本発明のこの実施例によれば、ホストは、できるだけ多くのTRIM命令を送出することを更に要求され、これにより、フラッシュデバイスは、オーバープロビジョニングレベルを逆調整できる。プロセッサ1001により受信された削除命令は実行されている可能性があるため、プロセッサ1001は、削除命令が実行されているか否かを決定する必要がある。削除命令が実行されていない場合、プロセッサ1001が、削除命令に従って、データをフラッシュデバイスから削除していないことが理解され得る。削除命令が実行されている場合、プロセッサ1001が、削除命令に従って、データをメモリ1004から削除していることが理解され得る。削除命令が再び受信された場合、メモリ1004に記憶されたデータのサイズは変化しない。この場合、フラッシュデバイスに対して処理は実行されない。削除対象のデータを決定することは、削除対象のデータの内容及び量を決定することを含み、これは、無効にされる必要があるデータ又は消去される必要があるデータブロックを決定することとして理解されてもよい。
S205.削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定する。
任意選択で、プロセッサ1001は、削除対象のデータをメモリ1005から削除し、これにより、ユーザによりメモリ1005に以前に保存されたデータのサイズを減少させる。プロセッサ1001は、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズとして、削除対象のデータが削除され且つユーザにより保存されたデータのサイズを決定する。
S206.操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定する。
S207.目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定する。
S208.目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整する。
本発明のこの実施例におけるステップS206〜ステップS208の具体的な実現処理については、図3に示す実施例におけるステップS102〜ステップS104の具体的な説明を参照する。詳細はここでは更に説明しない。
S209.目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行する。
任意選択で、プロセッサ1001は、目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行する。ガベージコレクションは以下の通りである。SSDのプライマリコントローラが「無効」データを含むこれらのブロック内の全ての「有効」データを結合し、結合されたデータを新たな「空白ブロック」に入れ、予備の「空白ブロック」の量を増加させるために「無効」データブロックを削除する。ガベージコレクションを用いて、無効データの量が低減されるだけでなく、空白ブロックの量も増加し、これにより、より多くの利用可能な空白ブロックがユーザに提供されることが習得され得る。
ガベージコレクションは、SSDに対して大量の負荷を生成するため、ガベージコレクションは、アイドルガベージコレクション及びパッシブガベージコレクションに分類されてもよい。アイドルガベージコレクションは以下の通りである。SSDのプライマリコントローラは、特定の量の空白ブロックを生成するために、システムがアイドルであるときに事前にガベージコレクション操作を実行し、これにより、ガベージコレクション操作は、ユーザ体験に明白に影響を与えないが、欠点は、ユーザにより実行される更新によってガベージコレクションを用いてちょうど取得された有効データが無効になる可能性があるため、余分のライトアンプリフィケーションが引き起こされる点である。パッシブガベージコレクションは、全てのSSDにより所有される。この場合のSSDはガベージコレクションとユーザにより要求されるデータ操作とを同時に実行する必要があるため、SSDのプライマリコントローラの性能は、パッシブガベージコレクションの効率に決定的な影響を有する。プライマリコントローラの性能が悪いときに、ユーザは、SSDの性能が低下したと見出す。パッシブガベージコレクションは以下の通りである。関連するホストにより送信されたTRIM命令に従ってガベージコレクション操作を実行し、これにより、無効ページ上のより多くのデータを生成するようにSSDをトリガーし、ガベージコレクションの圧力を軽減し、SSDの性能が低下したとユーザが見出す機会を低減する。
ガベージコレクション調整パラメータは、フラッシュデバイスに対していつガベージコレクション処理操作を実行するかを決定するために使用され、すなわち、ガベージコレクション調整パラメータは、ガベージコレクションを開始するために使用されるパラメータである。従来技術では、固定のオーバープロビジョニング比の場合、SSDに記憶されたデータのサイズに拘わらず、ガベージコレクション処理は、固定のガベージコレクションパラメータに従ってSSDに対して実行され、したがって、SSDの性能及び信頼性が影響を受ける。本発明のこの実施例において、最適な調整パラメータが異なる空間オーバープロビジョニングレベルについて別々に構成されるため、本発明のこの実施例において、適切なガベージコレクション処理が記憶されたデータの量に従って実行でき、これにより、SSDの性能を最適化する。
S210.目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行する。
任意選択で、プロセッサ1001は、全てのブロックが書き込まれる回数量が等しくなることを確保するために、目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行する。2つの種類のウェアレベリングアルゴリズム、すなわち、ダイナミックウェアレベリングアルゴリズム及びスタティックウェアレベリングアルゴリズムが存在する。要するに、ダイナミックウェアレベリングは、古いフラッシュブロックを使用する代わりに、毎回最も新しいフラッシュブロックを使用することを意味し、スタティックウェアレベリングは、長期間変更されていない古いデータを新しいフラッシュブロックから移動し、古いデータを最も古いデータブロックに保存し、これにより、新しいフラッシュブロックが再び頻繁に使用できることを意味する。ダイナミックウェアレベリング及びスタティックウェアレベリングの両方は、開始粒度を必要とする。ウェアレベリング調整パラメータは、いつウェアレベリング処理操作を開始するかを決定するために使用されるパラメータである。各オーバープロビジョニングレベルは、異なるウェアレベリング調整パラメータに対応しており、より大きいオーバープロビジョニング比に対応するオーバープロビジョニングレベルは、より大きい開始粒度に対応している。
本発明のこの実施例では、ホストにより送信された操作命令が受信され、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作が実行され、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズが決定され、次に、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルが決定され、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータが決定され、最後に、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量が調整され、目標調整パラメータに従ってフラッシュデバイスが対応して調整される。したがって、フラッシュデバイスのオーバープロビジョニング比は、記憶されたデータの量に従って動的に調整され、さらに、フラッシュデバイスの信頼性及び性能安定性が改善され、フラッシュデバイスの耐用寿命が延長し、フラッシュデバイスの主体性が改善される。
以下では、本発明の実施例によるデータ処理装置について図6を参照して詳細に説明する。図6に示すデータ処理装置は、図4及び図5に示す実施例における方法を実行するように構成される点に留意すべきである。説明を簡単にするため、本発明のこの実施例に関する部分のみが示されている。開示されていない具体的な技術的詳細については、本発明の図4及び図5に示す実施例を参照する。
本発明のこの実施例におけるデータ処理装置は、図1に示す記憶システム内のフラッシュデバイスに適用される。複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってフラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差である。
図6を参照すると、図6は、本発明の実施例によるデータ処理装置10の概略構成図である。データ処理装置10は、受信ユニット101と、決定ユニット102と、調整ユニット103とを含んでもよい。
受信ユニット101は、ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するように構成される。
決定ユニット102は、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定するように構成される。
決定ユニット102は、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するように更に構成される。
調整ユニット103は、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するように構成される。
本発明のこの実施例及び図4に示す方法の実施例は、同じ概念に基づき、同じ技術的効果を生成する。具体的な原理については、図4に示す実施例における説明を参照し、詳細はここでは更に説明しない。
任意選択で、受信ユニット101は、ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定し、追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
受信ユニット101は、ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定し、削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
受信ユニット101は、追加対象のデータを圧縮するように更に構成され、追加対象のデータは、圧縮データである。
データ処理装置10は、
目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行するように構成された処理ユニットを更に含む。
処理ユニットは、目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行するように更に構成される。
本発明のこの実施例及び図5に示す方法の実施例は、同じ概念に基づき、同じ技術的効果を生成する。具体的な原理については、図5に示す実施例における説明を参照し、詳細はここでは更に説明しない。
当業者は、実施例における方法の処理の全部又は一部が関係するハードウェアに命令するコンピュータプログラムにより実現されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。プログラムが実行するときに、実施例における方法の処理が実行される。前述の記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ(Read-Only Memory, ROM)又はランダムアクセスメモリ(Random Access Memory, RAM)を含んでもよい。
上記に開示されるものは、本発明の実施例の単なる例であり、明らかに、本発明の保護範囲を限定することを意図するものではない。したがって、本発明の特許請求の範囲に従って行われた等価な変更は、本発明の範囲内に入るものとする。

Claims (14)

  1. 記憶システムに適用されるデータ処理方法であり、前記記憶システムは、ホスト及びフラッシュデバイスを含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従って前記フラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、前記ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、前記オーバープロビジョニング比は、前記ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、前記オーバープロビジョニング空間容量は、物理記憶空間容量と前記ユーザ記憶空間容量との間の差であり、前記方法は、前記フラッシュデバイスにより実行される、データ処理方法であって、
    前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するステップと、
    前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズ、及び各オーバープロビジョニングレベルに対応している前記ユーザ記憶空間容量の前記区間に従って、目標オーバープロビジョニングレベルを決定するステップと、
    前記目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するステップと、
    前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整するステップと
    を含む方法。
  2. 前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するステップは、
    前記ホストにより送信された書き込み命令を受信し、前記書き込み命令に従って、追加対象のデータを決定するステップと、
    前記追加対象のデータを前記フラッシュデバイスに追加し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記追加対象のデータが前記フラッシュデバイスに追加された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するステップと
    を含む、請求項1に記載の方法。
  3. 前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するステップは、
    前記ホストにより送信された削除命令を受信し、前記削除命令に従って、削除対象のデータを決定するステップと、
    前記削除対象のデータを前記フラッシュデバイスから削除し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記削除対象のデータが削除された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するステップと
    を含む、請求項1に記載の方法。
  4. 前記追加対象のデータを前記フラッシュデバイスに追加する前に、
    前記追加対象のデータを圧縮するステップであり、前記追加対象のデータは、圧縮データであるステップを更に含む、請求項2に記載の方法。
  5. 前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整する前記ステップの後に、
    前記目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してガベージコレクション処理を実行するステップを更に含む、請求項1乃至4のうちいずれか1項に記載の方法。
  6. 前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整する前記ステップの後に、
    前記目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してウェアレベリング処理を実行するステップを更に含む、請求項1乃至4のうちいずれか1項に記載の方法。
  7. 記憶システム内のフラッシュデバイスに適用されるデータ処理装置であり、前記記憶システムは、ホストを更に含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従って前記フラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、前記ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、前記オーバープロビジョニング比は、前記ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、前記オーバープロビジョニング空間容量は、物理記憶空間容量と前記ユーザ記憶空間容量との間の差である、データ処理装置であって、
    前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するように構成された受信ユニットと、
    前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズ、及び各オーバープロビジョニングレベルに対応している前記ユーザ記憶空間容量の前記区間に従って、目標オーバープロビジョニングレベルを決定するように構成された決定ユニットであり、
    前記決定ユニットは、前記目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するように更に構成される、決定ユニットと、
    前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整するように構成された調整ユニットと
    を含む装置。
  8. 前記受信ユニットは、前記ホストにより送信された書き込み命令を受信し、前記書き込み命令に従って、追加対象のデータを決定し、前記追加対象のデータを前記フラッシュデバイスに追加し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記追加対象のデータが前記フラッシュデバイスに追加された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するように構成される、請求項7に記載の装置。
  9. 前記受信ユニットは、前記ホストにより送信された削除命令を受信し、前記削除命令に従って、削除対象のデータを決定し、前記削除対象のデータを前記フラッシュデバイスから削除し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記削除対象のデータが削除された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するように構成される、請求項7に記載の装置。
  10. 前記受信ユニットは、前記追加対象のデータを圧縮するように更に構成され、前記追加対象のデータは、圧縮データである、請求項8に記載の装置。
  11. 前記目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してガベージコレクション処理を実行するように構成された処理ユニットを更に含む、請求項7乃至10のうちいずれか1項に記載の装置。
  12. 記目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してウェアレベリング処理を実行するように構成された処理ユニットを更に含む、請求項7乃至10のうちいずれか1項に記載の装置。
  13. 請求項7乃至12のうちいずれか1項に記載のデータ処理装置を含むフラッシュデバイス。
  14. 請求項1乃至6のうちいずれか1項に記載の方法をコンピュータに実行させるプログラム。
JP2018526989A 2015-09-29 2016-09-29 データ処理方法及び装置、並びにフラッシュデバイス Active JP6484763B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510629175.3A CN105335100B (zh) 2015-09-29 2015-09-29 一种数据处理方法、装置及闪存设备
CN201510629175.3 2015-09-29
PCT/CN2016/100824 WO2017054756A1 (zh) 2015-09-29 2016-09-29 一种数据处理方法、装置及闪存设备

Publications (2)

Publication Number Publication Date
JP2018527688A JP2018527688A (ja) 2018-09-20
JP6484763B2 true JP6484763B2 (ja) 2019-03-13

Family

ID=55285681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018526989A Active JP6484763B2 (ja) 2015-09-29 2016-09-29 データ処理方法及び装置、並びにフラッシュデバイス

Country Status (9)

Country Link
US (3) US10552315B2 (ja)
EP (2) EP3316115B1 (ja)
JP (1) JP6484763B2 (ja)
CN (3) CN106484331B (ja)
AU (1) AU2016333294B2 (ja)
BR (1) BR112017027915B1 (ja)
CA (1) CA2990969C (ja)
SG (1) SG11201710576XA (ja)
WO (1) WO2017054756A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484331B (zh) 2015-09-29 2019-04-12 华为技术有限公司 一种数据处理方法、装置及闪存设备
CN105824667A (zh) * 2016-03-15 2016-08-03 深圳市硅格半导体股份有限公司 存储设备的管理方法、装置及系统
CN107885455B (zh) * 2016-09-30 2020-02-07 郑州云海信息技术有限公司 一种磁盘日志区动态调整方法
US10489064B2 (en) * 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory
CN106502586B (zh) * 2016-10-17 2019-10-25 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法
CN107066208B (zh) * 2017-04-19 2020-04-03 江苏大学 一种外存设备的非对称读写方法及nvm外存设备
CN109308162B (zh) * 2017-07-26 2022-04-01 北京兆易创新科技股份有限公司 闪存的优化装置、优化方法及设备
CN111966540B (zh) * 2017-09-22 2024-03-01 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
CN110554970A (zh) * 2018-05-31 2019-12-10 北京忆恒创源科技有限公司 显著降低写放大的垃圾回收方法及存储设备
CN108733320A (zh) * 2018-04-03 2018-11-02 郑州云海信息技术有限公司 一种ssd性能和容量配置方法
US11074173B1 (en) * 2018-04-26 2021-07-27 Lightbits Labs Ltd. Method and system to determine an optimal over-provisioning ratio
US11093408B1 (en) 2018-04-26 2021-08-17 Lightbits Labs Ltd. System and method for optimizing write amplification of non-volatile memory storage media
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
CN108845908A (zh) * 2018-06-21 2018-11-20 郑州云海信息技术有限公司 一种ssd硬盘测试方法、装置、设备及介质
CN108920313A (zh) * 2018-06-21 2018-11-30 郑州云海信息技术有限公司 一种raid的测试方法、装置、设备及介质
KR102620731B1 (ko) * 2018-09-27 2024-01-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN109857337B (zh) * 2018-12-10 2022-04-22 浪潮(北京)电子信息产业有限公司 一种写入速度控制方法、系统、装置及可读存储介质
CN110750211B (zh) * 2019-09-05 2021-05-04 华为技术有限公司 一种存储空间的管理方法及装置
CN110955642A (zh) * 2019-10-12 2020-04-03 平安科技(深圳)有限公司 数据采集优化方法、装置、设备及可读存储介质
US11392304B2 (en) * 2020-05-29 2022-07-19 Seagate Technology Llc Data storage device with adaptive object storage capabilities
CN111930517B (zh) * 2020-09-18 2023-07-14 北京中科立维科技有限公司 一种高性能自适应垃圾收集方法和计算机系统
CN112187817B (zh) * 2020-10-09 2023-03-31 厦门亿联网络技术股份有限公司 流媒体数据传输方法、装置、设备及存储介质
CN112527194B (zh) * 2020-12-04 2024-02-13 北京浪潮数据技术有限公司 固态硬盘写放大设定方法、系统、装置及可读存储介质
CN112558868B (zh) * 2020-12-07 2024-04-09 炬芯科技股份有限公司 一种配置数据存储的方法和装置及设备
US11385798B1 (en) 2020-12-28 2022-07-12 Lightbits Labs Ltd. Method and system for application aware, management of write operations on non-volatile storage
CN113032290B (zh) * 2021-03-19 2024-01-19 维沃移动通信有限公司 闪存配置方法、装置、电子设备和存储介质
CN113138719B (zh) * 2021-04-29 2022-11-01 山东华芯半导体有限公司 一种实现ssd快速随机写并避免写重复的方法
CN116610249A (zh) * 2022-02-09 2023-08-18 华为云计算技术有限公司 一种ssd的规格参数的调节方法及相关产品
CN114817231B (zh) * 2022-06-30 2022-09-30 深圳中科智能技术有限公司 一种冗余数据识别过滤方法及系统
CN116703651B (zh) * 2023-08-08 2023-11-14 成都秦川物联网科技股份有限公司 一种智慧燃气数据中心运行管理方法、物联网系统和介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183133B2 (en) 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
CN101661412B (zh) * 2008-08-29 2012-08-29 智微科技股份有限公司 快闪存储器的配置方法
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
CN102023818A (zh) * 2010-12-06 2011-04-20 成都市华为赛门铁克科技有限公司 一种存储设备容量调整方法、装置及存储设备
CN103492958B (zh) * 2011-04-25 2015-08-12 佳能株式会社 充电构件、处理盒和电子照相设备
KR101467939B1 (ko) 2011-04-26 2014-12-02 엘에스아이 코포레이션 비휘발성 저장부에 대한 가변 오버­프로비저닝
WO2012161933A1 (en) 2011-05-24 2012-11-29 Marvell World Trade Ltd. Method for storage devices to achieve low write amplification with low over provision
JP5265734B2 (ja) 2011-06-21 2013-08-14 大見工業株式会社 穿孔機における油供給装置
US9158670B1 (en) * 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US9158695B2 (en) * 2011-08-09 2015-10-13 Seagate Technology Llc System for dynamically adaptive caching
TWI584120B (zh) * 2012-03-23 2017-05-21 Lsi公司 用於動態調適快取的方法及系統
US8862810B2 (en) 2012-09-27 2014-10-14 Arkologic Limited Solid state device write operation management system
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
US9542306B2 (en) * 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
US9804960B2 (en) * 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device
US9778885B2 (en) * 2013-03-15 2017-10-03 Skyera, Llc Compressor resources for high density storage units
CN103309816A (zh) * 2013-05-31 2013-09-18 苏州亮智科技有限公司 固态硬盘、电子装置和其动态容量控制方法
CN103488575B (zh) * 2013-08-12 2017-02-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
CN104102459A (zh) * 2014-07-03 2014-10-15 优佰特电子科技(无锡)有限公司 一种闪存设备的数据处理方法及闪存设备
US10216572B2 (en) * 2014-07-22 2019-02-26 Ngd Systems, Inc. Flash channel calibration with multiple lookup tables
US10031673B2 (en) * 2014-09-26 2018-07-24 SK Hynix Inc. Techniques for selecting amounts of over-provisioning
KR102365269B1 (ko) * 2015-04-13 2022-02-22 삼성전자주식회사 데이터 스토리지 및 그것의 동작 방법
CN106484331B (zh) * 2015-09-29 2019-04-12 华为技术有限公司 一种数据处理方法、装置及闪存设备
US10592110B2 (en) * 2016-02-19 2020-03-17 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics

Also Published As

Publication number Publication date
CN105335100A (zh) 2016-02-17
US10552315B2 (en) 2020-02-04
JP2018527688A (ja) 2018-09-20
EP3678016B1 (en) 2023-05-03
SG11201710576XA (en) 2018-01-30
CN105335100B (zh) 2018-09-21
EP3316115B1 (en) 2019-12-25
CA2990969C (en) 2020-06-02
CN109358804A (zh) 2019-02-19
US20200133840A1 (en) 2020-04-30
AU2016333294B2 (en) 2019-04-18
CN106484331A (zh) 2017-03-08
EP3678016A1 (en) 2020-07-08
EP3316115A1 (en) 2018-05-02
AU2016333294A1 (en) 2018-01-18
US20220083465A1 (en) 2022-03-17
BR112017027915A2 (pt) 2018-08-28
CN106484331B (zh) 2019-04-12
US20180210828A1 (en) 2018-07-26
BR112017027915B1 (pt) 2024-02-20
WO2017054756A1 (zh) 2017-04-06
CA2990969A1 (en) 2017-04-06
US11200160B2 (en) 2021-12-14
EP3316115A4 (en) 2018-07-11
US11960393B2 (en) 2024-04-16
CN109358804B (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
JP6484763B2 (ja) データ処理方法及び装置、並びにフラッシュデバイス
US11693770B2 (en) Memory system and method for controlling nonvolatile memory
JP6553566B2 (ja) メモリシステムおよび制御方法
CN106909313B (zh) 存储器系统及控制方法
US11030094B2 (en) Apparatus and method for performing garbage collection by predicting required time
US10545863B2 (en) Memory system and method for controlling nonvolatile memory
JP6517685B2 (ja) メモリシステムおよび制御方法
US20170315730A1 (en) Storage device that secures a block for a stream or namespace and system having the storage device
US20100174853A1 (en) User device including flash and random write cache and method writing data
TW202046116A (zh) 儲存系統
AU2003286967B2 (en) Dual journaling store method and storage medium thereof
JP2011530133A (ja) キャッシュコンテンツの記憶管理
US20200225882A1 (en) System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance
KR102113212B1 (ko) 플래시 메모리 시스템 및 그 제어 방법
WO2018167890A1 (ja) 計算機システム及び管理方法
US11740792B2 (en) Techniques for data storage management

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190218

R150 Certificate of patent or registration of utility model

Ref document number: 6484763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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