JP6147933B2 - コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 - Google Patents
コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 Download PDFInfo
- Publication number
- JP6147933B2 JP6147933B2 JP2016535211A JP2016535211A JP6147933B2 JP 6147933 B2 JP6147933 B2 JP 6147933B2 JP 2016535211 A JP2016535211 A JP 2016535211A JP 2016535211 A JP2016535211 A JP 2016535211A JP 6147933 B2 JP6147933 B2 JP 6147933B2
- Authority
- JP
- Japan
- Prior art keywords
- data block
- flash memory
- reference count
- memory device
- stability level
- 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
Links
- 238000000034 method Methods 0.000 title claims description 84
- 238000013507 mapping Methods 0.000 claims description 119
- 230000006870 function Effects 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000005012 migration Effects 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 238000007689 inspection Methods 0.000 description 14
- 238000012005 ligant binding assay Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000003321 amplification Effects 0.000 description 9
- 238000003199 nucleic acid amplification method Methods 0.000 description 9
- 239000007787 solid Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003796 beauty Effects 0.000 description 1
- 239000004568 cement Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Claims (38)
- コントローラであって、
前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、前記コントローラは、プロセッサと、キャッシュと、通信インタフェースとを有し、
前記通信インタフェースは、前記フラッシュメモリ装置と通信するように構成され、
前記キャッシュは、前記第1のデータブロックについての情報を記憶し、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックがフラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しく、
前記プロセッサは、
前記キャッシュから前記第1のデータブロックについての前記情報を読み取り、
前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するように構成され、前記安定性レベルは、前記データブロックの安定性を示すために使用され、
前記通信インタフェースを通じて前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するように構成されるコントローラ。 - データブロックの参照カウントと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と安定性レベルとの間のマッピング関係を有し、
前記プロセッサは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するように構成され、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であり、
前記第1の参照カウント間隔、及び参照カウント間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように構成される、請求項1に記載のコントローラ。 - 前記第1のデータブロックについての前記情報は、前記第1のデータブロックのフィンガープリント情報を更に有し、前記第1のデータブロックの前記フィンガープリント情報は、予め設定されたハッシュ関数に従って前記第1のデータブロックにおいて計算を実行することにより取得され、
前記プロセッサは、
前記第1のデータブロックを受信し、
前記ハッシュ関数及び前記第1のデータブロックに従って前記第1のデータブロックの前記フィンガープリント情報を計算し、
フィンガープリント情報が前記第1のデータブロックの前記フィンガープリント情報と同じであるデータブロックを前記フラッシュメモリ装置が有さないと決定し、
前記第1のデータブロックを前記フラッシュメモリ装置に送信するように更に構成され、前記第1のデータブロックの前記参照カウントは、初期値に等しく、
前記第1のデータブロックの前記参照カウントを前記キャッシュに書き込むように更に構成される、請求項1又は2に記載のコントローラ。 - 前記プロセッサは、
第2のデータブロックを受信し、
前記ハッシュ関数及び前記第2のデータブロックに従って前記第2のデータブロックのフィンガープリント情報を計算し、
前記第1のデータブロックの前記フィンガープリント情報が前記第2のデータブロックの前記フィンガープリント情報と同じであると決定し、
前記初期値を増加させるように更に構成され、前記第1のデータブロックの前記参照カウントは、前記増加した初期値に等しい、請求項3に記載のコントローラ。 - フラッシュメモリ装置であって、
前記フラッシュメモリ装置は、メインコントローラと、フラッシュメモリチップとを有し、前記フラッシュメモリチップはブロックを有し、前記メインコントローラはプロセッサを有し、
前記プロセッサは、
ターゲット論理アドレスに対応する安定性レベルを取得するように構成され、前記安定性レベルは、データブロックの安定性を示すために使用され、
前記ターゲット論理アドレスに対応する前記安定性レベルに従って、前記ターゲット論理アドレスのデータブロックを前記安定性レベルに対応するブロックに動かすように構成されるフラッシュメモリ装置。 - 前記プロセッサは、最大量の無効なデータを記憶するブロックを求めて前記フラッシュメモリチップを検索するように更に構成され、前記最大量の無効なデータを記憶する前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項5に記載のフラッシュメモリ装置。
- 前記プロセッサは、最も長い時間に消去されないままになっているブロックを求めて前記フラッシュメモリチップを検索するように更に構成され、前記最も長い時間に消去されないままになっている前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項5に記載のフラッシュメモリ装置。
- 前記メインコントローラはキャッシュを更に有し、
前記プロセッサは、前記キャッシュに記憶された論理アドレスの量が予め設定された閾値に到達した場合、前記ターゲット論理アドレスに対応する前記安定性レベルを取得するように構成され、前記論理アドレスに対応する安定性レベルは、前記ターゲット論理アドレスに対応する前記安定性レベルと同じである、請求項5に記載のフラッシュメモリ装置。 - 前記予め設定された閾値は、前記データブロックのサイズで割られた前記ブロックのボリュームの商に等しい、請求項8に記載のフラッシュメモリ装置。
- コントローラがデータブロックの安定性を識別する方法であって、
前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、前記コントローラは、プロセッサと、キャッシュと、通信インタフェースとを有し、前記通信インタフェースは、前記フラッシュメモリ装置と通信するように構成され、前記キャッシュは、前記第1のデータブロックについての情報を記憶し、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しく、前記方法は、前記プロセッサにより実行され、
前記方法は、
前記キャッシュから前記第1のデータブロックについての前記情報を読み取るステップと、
前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するステップであり、前記安定性レベルは、前記データブロックの安定性を示すために使用されるステップと、
前記通信インタフェースを通じて前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するステップと
を有する方法。 - データブロックの参照カウントと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と安定性レベルとの間のマッピング関係を有し、
(1)前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するステップであり、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であるステップと、
前記第1の参照カウント間隔、及び参照カウント間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップと
を有する、請求項10に記載の方法。 - 前記第1のデータブロックについての前記情報は、前記第1のデータブロックのフィンガープリント情報を更に有し、前記第1のデータブロックの前記フィンガープリント情報は、予め設定されたハッシュ関数に従って前記第1のデータブロックにおいて計算を実行することにより取得され、
前記方法は、
前記第1のデータブロックを受信するステップと、
前記ハッシュ関数及び前記第1のデータブロックに従って前記第1のデータブロックの前記フィンガープリント情報を計算するステップと、
フィンガープリント情報が前記第1のデータブロックの前記フィンガープリント情報と同じであるデータブロックを前記フラッシュメモリ装置が有さないと決定するステップと、
前記第1のデータブロックを前記フラッシュメモリ装置に送信するステップであり、前記第1のデータブロックの前記参照カウントは、初期値に等しいステップと、
前記第1のデータブロックの前記参照カウントを前記キャッシュに書き込むステップと
を更に有する、請求項10又は11に記載の方法。 - 前記方法は、
第2のデータブロックを受信するステップと、
前記ハッシュ関数及び前記第2のデータブロックに従って前記第2のデータブロックのフィンガープリント情報を計算するステップと、
前記第1のデータブロックの前記フィンガープリント情報が前記第2のデータブロックの前記フィンガープリント情報と同じであると決定するステップと、
前記初期値を増加させるステップであり、前記第1のデータブロックの前記参照カウントは、前記増加した初期値に等しいステップと
を更に有する、請求項12に記載の方法。 - データをフラッシュメモリ装置に記憶する方法であって、
前記フラッシュメモリ装置は、メインコントローラと、フラッシュメモリチップとを有し、前記フラッシュメモリチップはブロックを有し、前記メインコントローラはプロセッサを有し、
前記方法は、前記プロセッサにより実行され、前記方法は、
ターゲット論理アドレスに対応する安定性レベルを取得するステップであり、前記安定性レベルは、データブロックの安定性を示すために使用されるステップと、
前記ターゲット論理アドレスに対応する前記安定性レベルに従って、前記ターゲット論理アドレスのデータブロックを前記安定性レベルに対応するブロックに動かすステップと
を有する方法。 - 前記方法は、
最大量の無効なデータを記憶するブロックを求めて前記フラッシュメモリチップを検索するステップであり、前記最大量の無効なデータを記憶する前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有するステップを更に有する、請求項14に記載の方法。 - 前記方法は、
最も長い時間に消去されないままになっているブロックを求めて前記フラッシュメモリチップを検索するステップであり、前記最も長い時間に消去されないままになっている前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有するステップを更に有する、請求項14に記載の方法。 - 前記メインコントローラはキャッシュを更に有し、
ターゲット論理アドレスに対応する安定性レベルを取得するステップは、
前記キャッシュに記憶された論理アドレスの量が予め設定された閾値に到達した場合、前記ターゲット論理アドレスに対応する前記安定性レベルを取得するステップであり、前記論理アドレスに対応する安定性レベルは、前記ターゲット論理アドレスに対応する前記安定性レベルと同じであるステップを有する、請求項14に記載の方法。 - 前記予め設定された閾値は、前記データブロックのサイズで割られた前記ブロックのボリュームの商に等しい、請求項17に記載の方法。
- データブロックの安定性を識別する装置であって、
前記装置は、コントローラに配置され、前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、
前記装置は、
前記第1のデータブロックについての情報を記憶するように構成された記憶モジュールであり、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しい記憶モジュールと、
前記記憶モジュールから前記第1のデータブロックについての前記情報を読み取るように構成された読み取りモジュールと、
前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するように構成された決定モジュールであり、前記安定性レベルは、前記データブロックの安定性を示すために使用される決定モジュールと、
前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するように構成された送信モジュールと
を有する装置。 - データブロックの参照カウントと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と安定性レベルとの間のマッピング関係を有し、
前記決定モジュールは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するように構成され、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であり、
前記第1の参照カウント間隔、及び参照カウント間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように構成される、請求項19に記載の装置。 - データをフラッシュメモリ装置に記憶する装置であって、
前記装置は、前記フラッシュメモリ装置のSSDコントローラに配置され、前記フラッシュメモリ装置は、ブロックを記憶し、前記装置は、
ターゲット論理アドレスに対応する安定性レベルを取得するように構成された取得モジュールであり、前記安定性レベルは、データブロックの安定性を示すために使用される取得モジュールと、
前記ターゲット論理アドレスに対応する前記安定性レベルに従って、前記ターゲット論理アドレスのデータブロックを前記安定性レベルに対応するブロックに動かすように構成されたマイグレーションモジュールと
を有する装置。 - 前記取得モジュールは、最大量の無効なデータを記憶するブロックを求めてフラッシュメモリチップを検索するように更に構成され、前記最大量の無効なデータを記憶する前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項21に記載の装置。
- 前記取得モジュールは、最も長い時間に消去されないままになっているブロックを求めてフラッシュメモリチップを検索するように更に構成され、前記最も長い時間に消去されないままになっている前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項21に記載の装置。
- 前記装置は記憶モジュールを更に有し、前記記憶モジュールは、論理アドレスを記憶し、前記論理アドレスに対応する安定性レベルは、前記ターゲット論理アドレスに対応する前記安定性レベルと同じであり、
前記取得モジュールは、キャッシュに記憶された論理アドレスの量が予め設定された閾値に到達した場合、前記ターゲット論理アドレスに対応する前記安定性レベルを取得するように構成される、請求項21に記載の装置。 - 前記予め設定された閾値は、前記データブロックのサイズで割られた前記ブロックのボリュームの商に等しい、請求項24に記載の装置。
- プログラムコードを有するコンピュータプログラムであって、
前記プログラムコードに含まれる命令は、請求項10ないし13のうちいずれか1項に記載の方法を実行するために使用されるコンピュータプログラム。 - プログラムコードを有するコンピュータプログラムであって、
前記プログラムコードに含まれる命令は、請求項14ないし18のうちいずれか1項に記載の方法を実行するために使用されるコンピュータプログラム。 - コントローラであって、
前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、前記コントローラは、プロセッサと、キャッシュと、通信インタフェースとを有し、
前記通信インタフェースは、前記フラッシュメモリ装置と通信するように構成され、
前記キャッシュは、前記第1のデータブロックについての情報を記憶し、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックがフラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しく、
前記プロセッサは、
前記キャッシュから前記第1のデータブロックについての前記情報を読み取り、
前記第1のデータブロックの前記参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するように構成され、前記安定性レベルは、前記データブロックの安定性を示すために使用され、
前記通信インタフェースを通じて前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するように構成されるコントローラ。 - データブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と時間間隔と安定性レベルとの間のマッピング関係を有し、
前記プロセッサは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するように構成され、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であり、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するように構成され、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であり、
前記第1の参照カウント間隔、前記第1の時間間隔、及び参照カウント間隔と時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように構成される、請求項28に記載のコントローラ。 - 前記第1のデータブロックについての前記情報は、前記第1のデータブロックのフィンガープリント情報を更に有し、前記第1のデータブロックの前記フィンガープリント情報は、予め設定されたハッシュ関数に従って前記第1のデータブロックにおいて計算を実行することにより取得され、
前記プロセッサは、
前記第1のデータブロックを受信し、
前記ハッシュ関数及び前記第1のデータブロックに従って前記第1のデータブロックの前記フィンガープリント情報を計算し、
フィンガープリント情報が前記第1のデータブロックの前記フィンガープリント情報と同じであるデータブロックを前記フラッシュメモリ装置が有さないと決定し、
前記第1のデータブロックを前記フラッシュメモリ装置に送信するように更に構成され、前記第1のデータブロックの前記参照カウントは、初期値に等しく、
前記第1のデータブロックの前記参照カウントを前記キャッシュに書き込むように更に構成される、請求項28又は29のうちいずれか1項に記載のコントローラ。 - 前記プロセッサは、
第2のデータブロックを受信し、
前記ハッシュ関数及び前記第2のデータブロックに従って前記第2のデータブロックのフィンガープリント情報を計算し、
前記第1のデータブロックの前記フィンガープリント情報が前記第2のデータブロックの前記フィンガープリント情報と同じであると決定し、
前記初期値を増加させるように更に構成され、前記第1のデータブロックの前記参照カウントは、前記増加した初期値に等しい、請求項30に記載のコントローラ。 - コントローラがデータブロックの安定性を識別する方法であって、
前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、前記コントローラは、プロセッサと、キャッシュと、通信インタフェースとを有し、前記通信インタフェースは、前記フラッシュメモリ装置と通信するように構成され、前記キャッシュは、前記第1のデータブロックについての情報を記憶し、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しく、前記方法は、前記プロセッサにより実行され、
前記方法は、
前記キャッシュから前記第1のデータブロックについての前記情報を読み取るステップと、
前記第1のデータブロックの参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するステップであり、前記安定性レベルは、前記データブロックの安定性を示すために使用されるステップと、
前記通信インタフェースを通じて前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するステップと
を有する方法。 - データブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と時間間隔と安定性レベルとの間のマッピング関係を有し、
前記第1のデータブロックの前記参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するステップは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するステップであり、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であるステップと、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するステップであり、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であるステップと、
前記第1の参照カウント、前記第1の時間間隔、及び参照カウント間隔と時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップと
を有する、請求項32に記載の方法。 - 前記第1のデータブロックについての前記情報は、前記第1のデータブロックのフィンガープリント情報を更に有し、前記第1のデータブロックの前記フィンガープリント情報は、予め設定されたハッシュ関数に従って前記第1のデータブロックにおいて計算を実行することにより取得され、
前記方法は、
前記第1のデータブロックを受信するステップと、
前記ハッシュ関数及び前記第1のデータブロックに従って前記第1のデータブロックの前記フィンガープリント情報を計算するステップと、
フィンガープリント情報が前記第1のデータブロックの前記フィンガープリント情報と同じであるデータブロックを前記フラッシュメモリ装置が有さないと決定するステップと、
前記第1のデータブロックを前記フラッシュメモリ装置に送信するステップであり、前記第1のデータブロックの前記参照カウントは、初期値に等しいステップと、
前記第1のデータブロックの前記参照カウントを前記キャッシュに書き込むステップと
を更に有する、請求項32又は33に記載の方法。 - 前記方法は、
第2のデータブロックを受信するステップと、
前記ハッシュ関数及び前記第2のデータブロックに従って前記第2のデータブロックのフィンガープリント情報を計算するステップと、
前記第1のデータブロックの前記フィンガープリント情報が前記第2のデータブロックの前記フィンガープリント情報と同じであると決定するステップと、
前記初期値を増加させるステップであり、前記第1のデータブロックの前記参照カウントは、前記増加した初期値に等しいステップと
を更に有する、請求項34に記載の方法。 - データブロックの安定性を識別する装置であって、
前記装置は、コントローラに配置され、前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、
前記装置は、
前記第1のデータブロックについての情報を記憶するように構成された記憶モジュールであり、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しい記憶モジュールと、
前記記憶モジュールから前記第1のデータブロックについての前記情報を読み取るように構成された読み取りモジュールと、
前記第1のデータブロックの前記参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するように構成された決定モジュールであり、前記安定性レベルは、前記データブロックの安定性を示すために使用される決定モジュールと、
前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するように構成された送信モジュールと
を有する装置。 - データブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係は、参照カウント間隔と時間間隔と安定性レベルとの間のマッピング関係を有し、
前記決定モジュールは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するように構成され、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であり、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するように構成され、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であり、
前記第1の参照カウント間隔、前記第1の時間間隔、及び参照カウント間隔と時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように構成される、請求項36に記載の装置。 - プログラムコードを有するコンピュータプログラムであって、
前記プログラムコードに含まれる命令は、請求項32ないし35のうちいずれか1項に記載の方法を実行するために使用されるコンピュータプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/093139 WO2016086411A1 (zh) | 2014-12-05 | 2014-12-05 | 一种控制器、闪存装置、识别数据块稳定性的方法以及在闪存装置中存储数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017501489A JP2017501489A (ja) | 2017-01-12 |
JP6147933B2 true JP6147933B2 (ja) | 2017-06-14 |
Family
ID=56090853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016535211A Active JP6147933B2 (ja) | 2014-12-05 | 2014-12-05 | コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9772790B2 (ja) |
EP (1) | EP3059679B1 (ja) |
JP (1) | JP6147933B2 (ja) |
KR (1) | KR101784893B1 (ja) |
CN (1) | CN105980992B (ja) |
DK (1) | DK3059679T3 (ja) |
ES (1) | ES2691484T3 (ja) |
WO (1) | WO2016086411A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9917894B2 (en) * | 2014-08-06 | 2018-03-13 | Quest Software Inc. | Accelerating transfer protocols |
US11644992B2 (en) | 2016-11-23 | 2023-05-09 | Samsung Electronics Co., Ltd. | Storage system performing data deduplication, method of operating storage system, and method of operating data processing system |
KR102306672B1 (ko) * | 2016-11-23 | 2021-09-29 | 삼성전자주식회사 | 데이터 중복 제거를 수행하는 스토리지 시스템, 스토리지 시스템 및 데이터 처리 시스템의 동작방법 |
CN107193758A (zh) * | 2017-05-19 | 2017-09-22 | 记忆科技(深圳)有限公司 | 一种固态硬盘的映射表管理方法及固态硬盘 |
US10416899B2 (en) * | 2018-02-13 | 2019-09-17 | Tesla, Inc. | Systems and methods for low latency hardware memory management |
US11256628B2 (en) * | 2019-08-02 | 2022-02-22 | EMC IP Holding Company LLC | Volatile read cache in a content addressable storage system |
KR102234886B1 (ko) * | 2019-11-07 | 2021-04-02 | 숭실대학교산학협력단 | 플래시 메모리에서 장치 지문을 추출하는 방법 및 장치 |
KR20220049397A (ko) * | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
US12014772B2 (en) | 2021-11-17 | 2024-06-18 | Samsung Electronics Co., Ltd. | Storage controller and storage device including the same |
KR102545465B1 (ko) * | 2021-11-17 | 2023-06-21 | 삼성전자주식회사 | 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4679581B2 (ja) * | 2005-07-29 | 2011-04-27 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法 |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
US8447915B2 (en) * | 2009-07-23 | 2013-05-21 | Hitachi, Ltd. | Flash memory device for allocating physical blocks to logical blocks based on an erase count |
US8452932B2 (en) * | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
JP2011203916A (ja) * | 2010-03-25 | 2011-10-13 | Toshiba Corp | メモリコントローラ、および半導体記憶装置 |
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
JP2012014400A (ja) * | 2010-06-30 | 2012-01-19 | Toshiba Corp | 半導体メモリ装置および半導体メモリシステム |
US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
US20120159098A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Garbage collection and hotspots relief for a data deduplication chunk store |
EP2681691A4 (en) | 2011-03-03 | 2015-06-03 | Cypher Llc | SYSTEM FOR AUTONOMOUS DETECTION AND SEPARATION OF COMMON ELEMENTS IN DATA, AND METHODS AND DEVICES RELATED THERETO |
US8782370B2 (en) * | 2011-05-15 | 2014-07-15 | Apple Inc. | Selective data storage in LSB and MSB pages |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US9141528B2 (en) * | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
US20120317337A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
US9021203B2 (en) | 2012-05-07 | 2015-04-28 | International Business Machines Corporation | Enhancing tiering storage performance |
KR101929584B1 (ko) * | 2012-06-29 | 2018-12-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
KR20140006299A (ko) * | 2012-07-03 | 2014-01-16 | 삼성전자주식회사 | 낸드 플래시 메모리 기반의 저장부에 데이터 기록을 제어하는 방법 및 장치 |
CN102981969A (zh) * | 2012-11-21 | 2013-03-20 | 记忆科技(深圳)有限公司 | 重复数据删除的方法及其固态硬盘 |
CN103019887B (zh) * | 2012-12-12 | 2016-01-06 | 华为技术有限公司 | 数据备份方法及装置 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
CN103455435A (zh) * | 2013-08-29 | 2013-12-18 | 华为技术有限公司 | 数据写入方法及装置 |
CN103455436B (zh) * | 2013-09-23 | 2016-09-14 | 北京经纬恒润科技有限公司 | 一种ram检测方法及*** |
US9390116B1 (en) * | 2013-09-26 | 2016-07-12 | Emc Corporation | Insertion and eviction schemes for deduplicated cache system of a storage system |
CN106775496B (zh) * | 2013-10-23 | 2020-01-21 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
US9529546B2 (en) * | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
-
2014
- 2014-12-05 CN CN201480075497.1A patent/CN105980992B/zh active Active
- 2014-12-05 EP EP14902279.0A patent/EP3059679B1/en active Active
- 2014-12-05 ES ES14902279.0T patent/ES2691484T3/es active Active
- 2014-12-05 KR KR1020167009885A patent/KR101784893B1/ko active IP Right Grant
- 2014-12-05 WO PCT/CN2014/093139 patent/WO2016086411A1/zh active Application Filing
- 2014-12-05 DK DK14902279.0T patent/DK3059679T3/en active
- 2014-12-05 JP JP2016535211A patent/JP6147933B2/ja active Active
-
2016
- 2016-03-30 US US15/085,831 patent/US9772790B2/en active Active
-
2017
- 2017-08-17 US US15/679,174 patent/US20170364300A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US9772790B2 (en) | 2017-09-26 |
ES2691484T3 (es) | 2018-11-27 |
DK3059679T3 (en) | 2018-12-17 |
KR101784893B1 (ko) | 2017-10-12 |
EP3059679A4 (en) | 2017-03-01 |
US20170364300A1 (en) | 2017-12-21 |
US20160216915A1 (en) | 2016-07-28 |
JP2017501489A (ja) | 2017-01-12 |
EP3059679B1 (en) | 2018-08-22 |
CN105980992B (zh) | 2018-02-13 |
WO2016086411A1 (zh) | 2016-06-09 |
CN105980992A (zh) | 2016-09-28 |
KR20160084370A (ko) | 2016-07-13 |
EP3059679A1 (en) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6147933B2 (ja) | コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 | |
US10713161B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10789162B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
US10635310B2 (en) | Storage device that compresses data received from a host before writing therein | |
US9652154B2 (en) | Storage module and host device for storage module defragmentation | |
US9229876B2 (en) | Method and system for dynamic compression of address tables in a memory | |
CN105917303B (zh) | 一种控制器、识别数据块稳定性的方法和存储*** | |
KR20170009706A (ko) | 중복 데이터를 감소시키기 위한 저장 장치 및 그것의 동작 방법 | |
CN108475230B (zh) | 一种存储***和***垃圾回收方法 | |
CN114077389A (zh) | 控制器、存储器***以及数据处理*** | |
CN108628762B (zh) | 一种固态存储设备及其处理io命令的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160531 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160531 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170412 |
|
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: 20170418 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170517 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6147933 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |