JP2017501489A - コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 - Google Patents
コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 Download PDFInfo
- Publication number
- JP2017501489A JP2017501489A JP2016535211A JP2016535211A JP2017501489A JP 2017501489 A JP2017501489 A JP 2017501489A JP 2016535211 A JP2016535211 A JP 2016535211A JP 2016535211 A JP2016535211 A JP 2016535211A JP 2017501489 A JP2017501489 A JP 2017501489A
- Authority
- JP
- Japan
- Prior art keywords
- data block
- flash memory
- memory device
- reference count
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 79
- 238000013507 mapping Methods 0.000 claims abstract description 136
- 238000004891 communication Methods 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 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
- 230000003321 amplification Effects 0.000 description 11
- 238000003199 nucleic acid amplification method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 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
- 230000000694 effects Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000003491 array Methods 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/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
-
- 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)
Abstract
Description
Claims (33)
- コントローラであって、
前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、前記コントローラは、プロセッサと、キャッシュと、通信インタフェースとを有し、
前記通信インタフェースは、前記フラッシュメモリ装置と通信するように構成され、
前記キャッシュは、前記第1のデータブロックについての情報を記憶し、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックがフラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しく、
前記プロセッサは、
前記キャッシュから前記第1のデータブロックについての前記情報を読み取り、
(1)前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係、又は(2)前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係、又は(3)前記第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のデータブロックのフィンガープリント情報を更に有し、前記第1のデータブロックの前記フィンガープリント情報は、予め設定されたハッシュ関数に従って前記第1のデータブロックにおいて計算を実行することにより取得され、
前記プロセッサは、
前記第1のデータブロックを受信し、
前記ハッシュ関数及び前記第1のデータブロックに従って前記第1のデータブロックの前記フィンガープリント情報を計算し、
フィンガープリント情報が前記第1のデータブロックの前記フィンガープリント情報と同じであるデータブロックを前記フラッシュメモリ装置が有さないと決定し、
前記第1のデータブロックを前記フラッシュメモリ装置に送信するように更に構成され、前記第1のデータブロックの前記参照カウントは、初期値に等しく、
前記第1のデータブロックの前記参照カウントを前記キャッシュに書き込むように更に構成される、請求項1、2又は4のうちいずれか1項に記載のコントローラ。 - 前記プロセッサは、
第2のデータブロックを受信し、
前記ハッシュ関数及び前記第2のデータブロックに従って前記第2のデータブロックのフィンガープリント情報を計算し、
前記第1のデータブロックの前記フィンガープリント情報が前記第2のデータブロックの前記フィンガープリント情報と同じであると決定し、
前記初期値を増加させるように更に構成され、前記第1のデータブロックの前記参照カウントは、前記増加した初期値に等しい、請求項5に記載のコントローラ。 - フラッシュメモリ装置であって、
前記フラッシュメモリ装置は、メインコントローラと、フラッシュメモリチップとを有し、前記フラッシュメモリチップはブロックを有し、前記メインコントローラはプロセッサを有し、
前記プロセッサは、
ターゲット論理アドレスに対応する安定性レベルを取得するように構成され、前記安定性レベルは、データブロックの安定性を示すために使用され、
前記ターゲット論理アドレスに対応する前記安定性レベルに従って、前記ターゲット論理アドレスのデータブロックを前記安定性レベルに対応するブロックに動かすように構成されるフラッシュメモリ装置。 - 前記プロセッサは、最大量の無効なデータを記憶するブロックを求めて前記フラッシュメモリチップを検索するように更に構成され、前記最大量の無効なデータを記憶する前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項7に記載のフラッシュメモリ装置。
- 前記プロセッサは、最も長い時間に消去されないままになっているブロックを求めて前記フラッシュメモリチップを検索するように更に構成され、前記最も長い時間に消去されないままになっている前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項7に記載のフラッシュメモリ装置。
- 前記メインコントローラはキャッシュを更に有し、
前記プロセッサは、前記キャッシュに記憶された論理アドレスの量が予め設定された閾値に到達した場合、前記ターゲット論理アドレスに対応する前記安定性レベルを取得するように具体的に構成され、前記論理アドレスに対応する安定性レベルは、前記ターゲット論理アドレスに対応する前記安定性レベルと同じである、請求項7に記載のフラッシュメモリ装置。 - 前記予め設定された閾値は、前記データブロックのサイズで割られた前記ブロックのボリュームの商に等しい、請求項10に記載のフラッシュメモリ装置。
- コントローラがデータブロックの安定性を識別する方法であって、
前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、前記コントローラは、プロセッサと、キャッシュと、通信インタフェースとを有し、前記通信インタフェースは、前記フラッシュメモリ装置と通信するように構成され、前記キャッシュは、前記第1のデータブロックについての情報を記憶し、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しく、前記方法は、前記プロセッサにより実行され、
前記方法は、
前記キャッシュから前記第1のデータブロックについての前記情報を読み取るステップと、
(1)前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係、又は(2)前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係、又は(3)前記第1のデータブロックの参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するステップであり、前記安定性レベルは、前記データブロックの安定性を示すために使用されるステップと、
前記通信インタフェースを通じて前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するステップと
を有する方法。 - データブロックの参照カウントと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と安定性レベルとの間のマッピング関係を有し、
(1)前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するステップであり、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であるステップと、
前記第1の参照カウント間隔、及び参照カウント間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップと
を有する、請求項12に記載の方法。 - データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間の前記マッピング関係は、時間間隔と安定性レベルとの間のマッピング関係を有し、
(2)前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するステップは、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するステップであり、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であるステップと、
前記第1の時間間隔、及び時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップと
を有する、請求項12に記載の方法。 - データブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と時間間隔と安定性レベルとの間のマッピング関係を有し、
(3)前記第1のデータブロックの前記参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するステップは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するステップであり、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であるステップと、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するステップであり、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であるステップと、
前記第1の参照カウント、前記第1の時間間隔、及び参照カウント間隔と時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するステップと
を有する、請求項12に記載の方法。 - 前記第1のデータブロックについての前記情報は、前記第1のデータブロックのフィンガープリント情報を更に有し、前記第1のデータブロックの前記フィンガープリント情報は、予め設定されたハッシュ関数に従って前記第1のデータブロックにおいて計算を実行することにより取得され、
前記方法は、
前記第1のデータブロックを受信するステップと、
前記ハッシュ関数及び前記第1のデータブロックに従って前記第1のデータブロックの前記フィンガープリント情報を計算するステップと、
フィンガープリント情報が前記第1のデータブロックの前記フィンガープリント情報と同じであるデータブロックを前記フラッシュメモリ装置が有さないと決定するステップと、
前記第1のデータブロックを前記フラッシュメモリ装置に送信するステップであり、前記第1のデータブロックの前記参照カウントは、初期値に等しいステップと、
前記第1のデータブロックの前記参照カウントを前記キャッシュに書き込むステップと
を更に有する、請求項12、13又は15のうちいずれか1項に記載の方法。 - 前記方法は、
第2のデータブロックを受信するステップと、
前記ハッシュ関数及び前記第2のデータブロックに従って前記第2のデータブロックのフィンガープリント情報を計算するステップと、
前記第1のデータブロックの前記フィンガープリント情報が前記第2のデータブロックの前記フィンガープリント情報と同じであると決定するステップと、
前記初期値を増加させるステップであり、前記第1のデータブロックの前記参照カウントは、前記増加した初期値に等しいステップと
を更に有する、請求項16に記載の方法。 - データをフラッシュメモリ装置に記憶する方法であって、
前記フラッシュメモリ装置は、メインコントローラと、フラッシュメモリチップとを有し、前記フラッシュメモリチップはブロックを有し、前記メインコントローラはプロセッサを有し、
前記方法は、前記プロセッサにより実行され、前記方法は、
ターゲット論理アドレスに対応する安定性レベルを取得するステップであり、前記安定性レベルは、データブロックの安定性を示すために使用されるステップと、
前記ターゲット論理アドレスに対応する前記安定性レベルに従って、前記ターゲット論理アドレスのデータブロックを前記安定性レベルに対応するブロックに動かすステップと
を有する方法。 - 前記方法は、
最大量の無効なデータを記憶するブロックを求めて前記フラッシュメモリチップを検索するステップであり、前記最大量の無効なデータを記憶する前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有するステップを更に有する、請求項18に記載の方法。 - 前記方法は、
最も長い時間に消去されないままになっているブロックを求めて前記フラッシュメモリチップを検索するステップであり、前記最も長い時間に消去されないままになっている前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有するステップを更に有する、請求項18に記載の方法。 - 前記メインコントローラはキャッシュを更に有し、
ターゲット論理アドレスに対応する安定性レベルを取得するステップは、
前記キャッシュに記憶された論理アドレスの量が予め設定された閾値に到達した場合、前記ターゲット論理アドレスに対応する前記安定性レベルを取得するステップであり、前記論理アドレスに対応する安定性レベルは、前記ターゲット論理アドレスに対応する前記安定性レベルと同じであるステップを有する、請求項18に記載の方法。 - 前記予め設定された閾値は、前記データブロックのサイズで割られた前記ブロックのボリュームの商に等しい、請求項21に記載の方法。
- データブロックの安定性を識別する装置であって、
前記装置は、コントローラに配置され、前記コントローラは、データ重複排除機能を備えた記憶システムに配置され、前記記憶システムは、フラッシュメモリ装置を有し、前記フラッシュメモリ装置は、第1のデータブロックを記憶し、
前記装置は、
前記第1のデータブロックについての情報を記憶するように構成された記憶モジュールであり、前記第1のデータブロックについての前記情報は、前記第1のデータブロックの参照カウント、又は前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さ、又は前記第1のデータブロックの参照カウント及び前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている期間の長さを有し、前記第1のデータブロックの前記参照カウントは、前記コントローラが前記第1のデータブロックを受信した回数の量に等しい記憶モジュールと、
前記記憶モジュールから前記第1のデータブロックについての前記情報を読み取るように構成された読み取りモジュールと、
(1)前記第1のデータブロックの前記参照カウント、及びデータブロックの参照カウントと安定性レベルとの間のマッピング関係、又は(2)前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係、又は(3)前記第1のデータブロックの前記参照カウント、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さ、及びデータブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係に従って、前記第1のデータブロックの安定性レベルを決定するように構成された決定モジュールと、
前記第1のデータブロックの論理アドレス及び前記第1のデータブロックの前記安定性レベルを前記フラッシュメモリ装置に送信するように構成された送信モジュールと
を有する装置。 - データブロックの参照カウントと安定性レベルとの間の前記マッピング関係は、参照カウント間隔と安定性レベルとの間のマッピング関係を有し、
前記決定モジュールは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するように具体的に構成され、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であり、
前記第1の参照カウント間隔、及び参照カウント間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように具体的に構成される、請求項23に記載の装置。 - データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間の前記マッピング関係は、時間間隔と安定性レベルとの間のマッピング関係を有し、
前記決定モジュールは、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するように具体的に構成され、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であり、
前記第1の時間間隔、及び時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように具体的に構成される、請求項23に記載の装置。 - データブロックの参照カウントと前記データブロックがフラッシュメモリ装置に記憶されている期間の長さと安定性レベルとの間のマッピング関係は、参照カウント間隔と時間間隔と安定性レベルとの間のマッピング関係を有し、
前記決定モジュールは、
前記第1のデータブロックの前記参照カウントに従って、第1の参照カウント間隔を決定するように具体的に構成され、前記第1のデータブロックの前記参照カウントは、前記第1の参照カウント間隔内であり、
前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さに従って、第1の時間間隔を決定するように具体的に構成され、前記第1のデータブロックが前記フラッシュメモリ装置に記憶されている前記期間の前記長さは、前記第1の時間間隔内であり、
前記第1の参照カウント間隔、前記第1の時間間隔、及び参照カウント間隔と時間間隔と安定性レベルとの間の前記マッピング関係に従って、前記第1のデータブロックの前記安定性レベルを決定するように具体的に構成される、請求項23に記載の装置。 - データをフラッシュメモリ装置に記憶する装置であって、
前記装置は、前記フラッシュメモリ装置のメインコントローラに配置され、前記フラッシュメモリ装置は、ブロックを記憶し、前記装置は、
ターゲット論理アドレスに対応する安定性レベルを取得するように構成された取得モジュールであり、前記安定性レベルは、データブロックの安定性を示すために使用される取得モジュールと、
前記ターゲット論理アドレスに対応する前記安定性レベルに従って、前記ターゲット論理アドレスのデータブロックを前記安定性レベルに対応するブロックに動かすように構成されたマイグレーションモジュールと
を有する装置。 - 前記取得モジュールは、最大量の無効なデータを記憶するブロックを求めてフラッシュメモリチップを検索するように更に構成され、前記最大量の無効なデータを記憶する前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項27に記載の装置。
- 前記取得モジュールは、最も長い時間に消去されないままになっているブロックを求めてフラッシュメモリチップを検索するように更に構成され、前記最も長い時間に消去されないままになっている前記ブロックは、前記ターゲット論理アドレスに対応する前記データブロックを有する、請求項27に記載の装置。
- 前記装置は記憶モジュールを更に有し、前記記憶モジュールは、論理アドレスを記憶し、前記論理アドレスに対応する安定性レベルは、前記ターゲット論理アドレスに対応する前記安定性レベルと同じであり、
前記取得モジュールは、キャッシュに記憶された論理アドレスの量が予め設定された閾値に到達した場合、前記ターゲット論理アドレスに対応する前記安定性レベルを取得するように具体的に構成される、請求項27に記載の装置。 - 前記予め設定された閾値は、前記データブロックのサイズで割られた前記ブロックのボリュームの商に等しい、請求項30に記載の装置。
- プログラムコードを記憶するコンピュータ読み取り可能記憶媒体を有するコンピュータプログラムプロダクトであって、
前記プログラムコードに含まれる命令は、請求項12ないし17のうちいずれか1項に記載の方法を実行するために使用されるコンピュータプログラムプロダクト。 - プログラムコードを記憶するコンピュータ読み取り可能記憶媒体を有するコンピュータプログラムプロダクトであって、
前記プログラムコードに含まれる命令は、請求項18ないし22のうちいずれか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 true JP2017501489A (ja) | 2017-01-12 |
JP6147933B2 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 |
KR102306672B1 (ko) * | 2016-11-23 | 2021-09-29 | 삼성전자주식회사 | 데이터 중복 제거를 수행하는 스토리지 시스템, 스토리지 시스템 및 데이터 처리 시스템의 동작방법 |
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 |
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 | 삼성전자주식회사 | 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007013372A1 (ja) * | 2005-07-29 | 2007-02-01 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法 |
US20110264843A1 (en) * | 2010-04-22 | 2011-10-27 | 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 |
US20140013032A1 (en) * | 2012-07-03 | 2014-01-09 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for controlling writing data in storage unit based on nand flash memory |
JP2014513848A (ja) * | 2011-05-15 | 2014-06-05 | アップル インコーポレイテッド | Lsb及びmsbページにおける選択的データ記憶 |
JP2014522537A (ja) * | 2011-06-09 | 2014-09-04 | マイクロソフト コーポレーション | 使用によるフラッシュ・ベースの記憶装置へのデータ配置の管理 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | メモリコントローラ、および半導体記憶装置 |
US20120159098A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Garbage collection and hotspots relief for a data deduplication chunk store |
CN103688272A (zh) | 2011-03-03 | 2014-03-26 | 赛弗有限责任公司 | 用于数据内的共同元素的自主检测和分离的系统以及与之关联的方法和设备 |
US9141528B2 (en) * | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US9021203B2 (en) | 2012-05-07 | 2015-04-28 | International Business Machines Corporation | Enhancing tiering storage performance |
KR101929584B1 (ko) * | 2012-06-29 | 2018-12-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
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 WO PCT/CN2014/093139 patent/WO2016086411A1/zh active Application Filing
- 2014-12-05 JP JP2016535211A patent/JP6147933B2/ja active Active
- 2014-12-05 CN CN201480075497.1A patent/CN105980992B/zh 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 EP EP14902279.0A patent/EP3059679B1/en active Active
- 2014-12-05 DK DK14902279.0T patent/DK3059679T3/en 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
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007013372A1 (ja) * | 2005-07-29 | 2007-02-01 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法 |
US20110264843A1 (en) * | 2010-04-22 | 2011-10-27 | 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 |
JP2014513848A (ja) * | 2011-05-15 | 2014-06-05 | アップル インコーポレイテッド | Lsb及びmsbページにおける選択的データ記憶 |
JP2014522537A (ja) * | 2011-06-09 | 2014-09-04 | マイクロソフト コーポレーション | 使用によるフラッシュ・ベースの記憶装置へのデータ配置の管理 |
US20140013032A1 (en) * | 2012-07-03 | 2014-01-09 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for controlling writing data in storage unit based on nand flash memory |
Also Published As
Publication number | Publication date |
---|---|
DK3059679T3 (en) | 2018-12-17 |
WO2016086411A1 (zh) | 2016-06-09 |
US20170364300A1 (en) | 2017-12-21 |
KR20160084370A (ko) | 2016-07-13 |
US20160216915A1 (en) | 2016-07-28 |
EP3059679A4 (en) | 2017-03-01 |
JP6147933B2 (ja) | 2017-06-14 |
KR101784893B1 (ko) | 2017-10-12 |
EP3059679A1 (en) | 2016-08-24 |
CN105980992A (zh) | 2016-09-28 |
ES2691484T3 (es) | 2018-11-27 |
CN105980992B (zh) | 2018-02-13 |
EP3059679B1 (en) | 2018-08-22 |
US9772790B2 (en) | 2017-09-26 |
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 | |
CN105917303B (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
US9229876B2 (en) | Method and system for dynamic compression of address tables in a memory | |
CN108475230B (zh) | 一种存储系统和系统垃圾回收方法 | |
KR20170009706A (ko) | 중복 데이터를 감소시키기 위한 저장 장치 및 그것의 동작 방법 | |
US11526296B2 (en) | Controller providing host with map information of physical address for memory region, and operation method thereof | |
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 |