TWI836181B - 進行動態磨損平衡及負載重定向之方法及固態驅動機系統 - Google Patents

進行動態磨損平衡及負載重定向之方法及固態驅動機系統 Download PDF

Info

Publication number
TWI836181B
TWI836181B TW110102310A TW110102310A TWI836181B TW I836181 B TWI836181 B TW I836181B TW 110102310 A TW110102310 A TW 110102310A TW 110102310 A TW110102310 A TW 110102310A TW I836181 B TWI836181 B TW I836181B
Authority
TW
Taiwan
Prior art keywords
block
target block
controller
factor
data
Prior art date
Application number
TW110102310A
Other languages
English (en)
Other versions
TW202147119A (zh
Inventor
妮瑪 艾爾雅西
昌皓 崔
Original Assignee
南韓商三星電子股份有限公司
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 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202147119A publication Critical patent/TW202147119A/zh
Application granted granted Critical
Publication of TWI836181B publication Critical patent/TWI836181B/zh

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

在一種在包括一或多個區塊的固態驅動機(SSD)中進行 動態磨損平衡及負載重定向之方法中,所述方法包括:由控制器接收欲寫入資料的請求;由控制器計算所述一或多個區塊的易損性因數;由控制器自所述一或多個區塊選擇目標區塊來接收欲寫入資料的請求;由控制器基於目標區塊的易損性因數確定目標區塊的狀態;由控制器基於目標區塊的狀態將資料寫入至目標區塊;以及由控制器基於被寫入至目標區塊的所述資料更新映射表。

Description

進行動態磨損平衡及負載重定向之方法及固態 驅動機系統 [相關申請案的交叉參考]
本申請案主張在2020年2月7日提出申請且名稱為「基於固態驅動機區塊級故障預測的動態負載重定向及磨損平衡(DYNAMIC LOAD REDIRECTION AND WEAR-LEVELING BASED ON SSD BLOCK-LEVEL FAILURE PREDICTION)」的美國臨時專利申請案第62/971,773號的優先權及權益,所述美國臨時專利申請案的全部內容併入本案供參考。本申請案更是有關於在2019年12月2日提出申請且名稱為「基於韌體的固態驅動機區塊故障預測及避免方案(FIRMWARE-BASED SSD BLOCK FAILURE PREDICTION AND AVOIDANCE SCHEME)」的美國專利申請案第16/701,133號,所述美國專利申請案的全部內容併入本案供參考。
根據本揭露的實施例的一或多個態樣是有關於儲存元件區塊級故障預測之系統以及方法。
電腦記憶體系統可包括大量儲存元件,例如固態驅動機 (solid state drive,SSD)。記憶體系統內的每一SSD可包含一定數目的快閃晶片,其中每一快閃晶片包含一定數目的區塊且每一區塊包含一定數目的頁。頁可為若干千位元組且是向SSD讀取資料及寫入資料的最小單位。
在此先前技術部分中揭露的以上資訊僅用於增強對本揭露的背景的理解,且因此以上資訊可能包含不構成先前技術的資訊。
本揭露的實施例的態樣是有關於儲存元件區塊級故障預測之系統以及方法。
根據本揭露的一些示例性實施例,在一種在包括一或多個區塊的固態驅動機(SSD)中進行動態磨損平衡及負載重定向之方法中,所述方法包括:由控制器接收欲寫入資料的請求;由所述控制器計算所述一或多個區塊的易損性因數;由所述控制器自所述一或多個區塊選擇目標區塊來接收所述欲寫入資料的請求;由所述控制器基於所述目標區塊的所述易損性因數確定所述目標區塊的狀態;由所述控制器基於所述目標區塊的所述狀態將所述資料寫入至所述目標區塊;以及由所述控制器基於被寫入至所述目標區塊的所述資料更新映射表。
根據一些示例性實施例,所述方法更包括:當所述目標區塊的所述易損性因數大於預定臨限值時,由所述控制器將所述資料寫入至複製區塊。
根據一些示例性實施例,所述狀態包括健康狀態、易損性狀態、或退出使用狀態中的至少一者。
根據一些示例性實施例,所述映射表包括將被寫入至所述目標區塊的所述資料的邏輯頁碼映射至被寫入至所述目標區塊的所述資料的物理頁碼的表。
根據一些示例性實施例,所述目標區塊是基於所述目標區塊的所述易損性因數進行選擇。
根據一些示例性實施例,選擇具有最小的易損性因數的所述目標區塊。
根據一些示例性實施例,使用自區塊級元資料產生的第一組參數及自驅動機級元資料產生的第二組參數來計算所述易損性因數。
根據一些示例性實施例,所述區塊級元資料包括讀取錯誤、寫入錯誤、或抹除錯誤中的至少一者。
根據一些示例性實施例,所述驅動機級元資料包括頁辨識符、區塊辨識符、時間戳、基於區塊的錯誤、及驅動機日誌資料中的一或多者。
根據本揭露的一些示例性實施例,在一種固態驅動機(SSD)系統中包括控制器及一或多個區塊,其中所述控制器被配置成:接收欲寫入資料的請求;計算所述一或多個區塊的易損性因數;自所述一或多個區塊選擇目標區塊來接收所述欲寫入資料的請求;基於所述目標區塊的所述易損性因數確定所述目標區塊 的狀態;基於所述目標區塊的所述狀態將所述資料寫入至所述目標區塊;以及基於被寫入至所述目標區塊的所述資料來更新映射表。
根據一些示例性實施例,所述控制器更被配置成:當所述目標區塊的所述易損性因數大於預定臨限值時,將所述資料寫入至複製區塊。
根據一些示例性實施例,所述狀態包括健康狀態、易損性狀態、及退出使用狀態中的至少一者。
根據一些示例性實施例,所述目標區塊是基於所述目標區塊的所述易損性因數進行選擇。
根據一些示例性實施例,選擇具有最小的易損性因數的所述目標區塊。
根據一些示例性實施例,使用自區塊級元資料產生的第一組參數及自驅動機級元資料產生的第二組參數來計算所述易損性因數。
根據一些示例性實施例,所述區塊級元資料包括讀取錯誤、寫入錯誤、或抹除錯誤中的至少一者。
根據一些示例性實施例,所述驅動機級元資料包括頁辨識符、區塊辨識符、時間戳、基於區塊的錯誤、及驅動機日誌資料中的一或多者。
根據本揭露的一些示例性實施例,在一種在包括一或多個記憶體元件的記憶體系統內進行動態磨損平衡及負載重定向之 方法中,所述方法包括:由控制器接收欲寫入資料的請求;由所述控制器計算所述一或多個記憶體元件的易損性因數;由所述控制器基於目標元件的所述易損性因數自所述一或多個記憶體元件選擇所述目標元件來接收所述欲寫入資料的請求;以及由所述控制器將所述欲寫入資料的請求定向至所述目標元件。
根據一些示例性實施例,所述一或多個記憶體元件包括一或多個快閃晶片。
根據一些示例性實施例,所述一或多個快閃晶片的所述易損性因數等於所述一或多個快閃晶片內的所有區塊之和。
根據一些示例性實施例,選擇具有最小的易損性因數的快閃晶片作為目標快閃晶片。
根據一些示例性實施例,所述一或多個記憶體元件包括一或多個SSD。
根據一些示例性實施例,所述一或多個SSD的所述易損性因數等於所述一或多個SSD內的所有快閃晶片之和。
根據一些示例性實施例,選擇具有最小的易損性因數的SSD作為目標SSD。
100:記憶體系統
110:儲存元件/固態驅動機(SSD)
111:快閃晶片/晶片
112:區塊/備用區塊
113:頁/故障頁
114:嵌入式控制器/控制器/SSD控制器
205、210、215、220、225、305、310、315、320、325、330、335、340、345、350、610、620、630、640:操作
410:邏輯頁碼至物理頁碼(LTP)表
420:物理頁碼至邏輯頁碼(PTL)表
510:區塊級元資料
520:晶片級元資料
530:元件級元資料
圖1示出根據本揭露示例性實施例的具有多個儲存元件的記憶體系統的影像。
圖2示出根據本揭露示例性實施例的預測SSD內的區塊是否 將出現故障的方法的流程圖。
圖3是示出根據本揭露示例性實施例的在SSD內跨越區塊分配負載的方法的流程圖。
圖4顯示根據本揭露示例性實施例的邏輯頁碼(logical page number,LPN)至物理頁碼(physical page number,PPN)(LPN to PPN,LTP)表及物理頁碼至邏輯頁碼(PPN to LPN,PTL)表。
圖5是示出根據本揭露示例性實施例的在區塊級、晶片級及元件級處追蹤的元資料的圖表。
圖6是示出根據本揭露示例性實施例的在記憶體系統內跨越記憶體元件分配負載的方法的流程圖。
隨著時間推移,SSD中的區塊內的頁可能會出現磨耗且變得易於出現故障。場中的SSD故障可能會導致伺服器關機,且因此損害資料中心級(datacenter-scale)應用的效能及可用性。為減少及/或防止此類意外故障,採用SSD的系統可使用簡單的基於臨限值的模型,以藉由在驅動機出現故障之前更換驅動機來避免故障。此種保護機制可能會導致高程度的錯誤警報,或者可能無法預測/避免所有SSD故障。此外,在辨識出物理錯誤的情形中,SSD可能無法自所述錯誤中恢復且因此避免進一步的元件故障。另外,SSD中的頻繁錯誤可能是由SSD內的幾個故障頁引起。
根據一些示例性實施例,記憶體系統可利用區塊級的故障預測模組的結果在記憶體系統中跨越多個固態驅動機(SSD)元 件對負載進行重定向及動態微調。此種方法可延長SSD的壽命且更佳地利用可用容量。
根據各種實施例,本揭露可包括在記憶體系統中的SSD內跨越區塊對資料(即,負載)進行按比例複製及重定向的機制。所述機制可根據區塊的易損性因數將負載分派至區塊。易損性因數可表示區塊可能出現故障的機率,所述機率可使用故障預測模組來計算。舉例而言,具有較低的易損性因數的區塊可不太可能出現故障,而具有較高的易損性因數的區塊更可能出現故障。在一些實施例中,可將具有較低的易損性因數的區塊作為負載的目標。在一些實施例中,可將被寫入至具有較高的易損性因數的區塊(即,具有大於預定臨限值的易損性因數的區塊)的資料複製於另一區塊上,以防止在將來故障中丟失資料。在寫入資料之後,可更新對應的映射表,所述對應的映射表可包括邏輯頁碼(LPN)至物理頁碼(PPN)表(即,LTP表)以及PPN至LPN表(即,PTL表)。
根據各種實施例,本揭露亦是有關於一種跨越SSD內的快閃晶片及跨越記憶體系統內的SSD分派負載的機制(例如,磨損平衡演算法(wear-leveling algorithm))。快閃晶片可具有易損性因數,易損性因數被定義為快閃晶片內的每一區塊的易損性因數之和。可根據快閃晶片的易損性因數將負載分配至快閃晶片。舉例而言,可將負載定向至具有落於預定範圍內的易損性因數的快閃晶片。相似地,SSD可具有被定義為SSD內的每一快閃晶片 的易損性因數之和的易損性因數。可根據SSD的易損性因數將負載分配至SSD。舉例而言,可將負載定向至具有落於預定範圍內的易損性因數的SSD。
所揭露的實施例可有助於減少更具易損性的區塊上的磨耗且增加區塊及SSD的壽命。另外,所揭露的實施例可提供以下優點:
●基於每一SSD驅動機的易損性因數將負載分派至所述每一SSD驅動機
●基於被預測為「故障」區塊的數目將負載分派至每一SSD驅動機
●基於預測模組的置信度將負載分派至每一SSD驅動機
●改善元件壽命及可靠性,以在元件被辨識/預測為易損性時更佳地使用所述元件
圖1示出根據本揭露示例性實施例的具有多個儲存元件的記憶體系統的影像。
根據圖1,記憶體系統100可包括一定數目的儲存元件110。在一些實施例中,儲存元件110可包括SSD 110。如圖1中所示,SSD 110可具有多個儲存級。舉例而言,每一SSD 110包括多個快閃晶片111,每一快閃晶片111包含一定數目的區塊112,且每一區塊包含一定數目的頁113。頁113可為若干千位元組且可為向SSD 110讀取資料及寫入資料的最小單位。
在一些實施例中,SSD 110可包括嵌入式控制器114(例 如,現場可程式化閘陣列(field programmable gate array,FPGA)、特殊應用積體電路(application specific integrated circuit,ASIC)、處理器等)。在其他實施例中,控制器114可位於SSD 110的外部。SSD控制器114可包括邏輯電路,以服務於讀取請求及寫入請求、運行磨損平衡演算法且運行錯誤恢復程序。在一些實施例中,可使用任何合適的韌體(即,特殊應用積體電路)實施由SSD控制器114執行的過程。此外,頁113可包括錯誤修正碼(Error Correction Code,ECC)元資料,SSD控制器114使用所述ECC元資料來恢復及修復有限數目的位元錯誤。
根據實施例,控制器114可向晶片111內的區塊112發送請求。所述請求可為欲讀取儲存於區塊112內的頁113中的資料(即,讀取請求)或者所述請求可為欲將新資料寫入於區塊112內的頁113上(即,寫入請求)。若請求目標是區塊112內的故障頁113,則所述請求可能會頻繁出現故障。此外,若由於硬體故障導致的位元錯誤的數目超過特定數目(例如,臨限值數目),則SSD控制器114可能無法修正位元錯誤且可能會將毀壞的資料提供至主機。
在出現特定數目的重複故障之後,系統管理者可選擇更換記憶體系統100內的SSD 110,此可能會增加運行及維護記憶體系統100的成本,且亦可能由於隨後的伺服器關機而損害應用的效能及可用性。另一方面,當寫入至頁113(即,程序操作)時,若出現錯誤,則頁113可被標記為故障且可不再被使用。一旦區 塊112中的特定數目的頁113被確定為故障,則整個區塊112退出使用。SSD 110可保留一些備用區塊112來更換此種撤銷的區塊112。若SSD 110的可用的備用區塊數目不足(例如,多於90%的備用區塊已被使用),則可能需要更換SSD 110。
在一些實施例中,代替更換SSD 110,微粒區塊故障預測(fine-grained block failure prediction)可使故障區塊在早期退出使用,以防止將來故障。然而,預測區塊級的微粒錯誤是不可行的。預測區塊級錯誤的過程可能需要SSD內各別區塊的相對大量的歷史資料。由於SSD可具有成千上萬個區塊,因此所述過程可能需要處理及分析SSD內部的大量資料集。由於SSD具有有限的計算及處理能力,因此此可能會存在問題。另外,儲存資料集可能會佔用SSD上有價值的儲存空間。
在一些實施例中,可使用區塊故障預測方法來辨識可能出現故障的區塊112且使那些區塊112退出使用以防止將來錯誤。為此,所揭露的系統包括韌體級故障預測技術,韌體級故障預測技術利用物理錯誤的局部性且將區塊級資訊與元件級資訊進行組合以產生一組參數/預測子並將所述一組參數/預測子饋送至運行機器學習(machine learning,ML)模組的預測模組,以預測故障。基於預測模組的輸出,若區塊112被辨識為將來故障,則可使區塊112退出使用。
圖2示出根據本揭露示例性實施例的預測SSD內的區塊是否將出現故障的方法的流程圖。根據一些示例性實施例,圖2 中所示的操作的數目及次序可有所變化。舉例而言,根據一些示例性實施例,除非另外相反地陳述或暗示,否則可存在更少的操作或附加的操作。另外,除非另外相反地陳述或暗示,否則操作的次序可有所變化。在一些實施例中,可使用任何合適的韌體實施圖2中所示的操作。
參照圖2,可自可用的基於驅動機的日誌資料提取區塊級資料以針對210處的可疑區塊建立一組參數(即,區塊級參數)。可疑區塊可為頻繁出現故障且將來可能會出現故障的區塊。在一些實例中,所提取的區塊級資料可包括讀取錯誤、寫入錯誤或抹除錯誤。在一些實施例中,由於區塊級參數基於直接自可疑區塊提取的資料,因此所述參數可提供對可疑區塊狀況的精確量測。在205中,所揭露的系統亦可提取SSD級資料以針對可疑區塊產生另一組參數(即,驅動機級參數)。所提取的SSD級資料可包括頁/區塊辨識符(identification)(即,ID)、時間戳、基於區塊的讀取/寫入/抹除錯誤以及驅動機日誌資料。在一些實施例中,由於驅動機級參數是自SSD級資料導出,所述SSD級資料可跨越SSD中的所有區塊進行平均,因此驅動機級參數可提供對可疑區塊狀況的近似量測。將在210及205中產生的區塊級參數及驅動機級參數傳送至故障預測模組。在215中,故障預測模組可運行機器學習(ML)模組,所述ML模組使用區塊級參數及驅動機級參數來確定區塊將出現故障的機率(即,區塊的易損性因數)。ML模組可使用邏輯回歸(logistic regression)及隨機森林(random forest), 但並非僅限於此。在220中,控制器藉由將由故障預測模組計算出的易損性因數與預定臨限值進行比較來判斷所述區塊是否將出現故障。若易損性因數大於臨限值,則所述區塊被預測為將出現故障,且在225中將不再使用所述區塊(即,退出使用區塊)。若所述機率小於或等於臨限值,則所述區塊被預測為不會出現故障,且可繼續使用所述區塊。
然而,基於臨限值使易損性區塊退出使用可能不是高效的。使所述區塊退出使用可能會阻止對易損性區塊的任何進一步使用,且在錯誤預測的情形中,使所述區塊退出使用可能會導致容量浪費。
不再簡單地使易損性區塊退出使用,而是可藉由向此種區塊分派與其易損性因數成比例的工作負載而仍使用此種區塊。為此,可使用易損性因數對SSD內的區塊(即,狀態)進行分類。舉例而言,所述狀態可包括但不限於健康、易損性或退出使用。易損性因數為零的區塊被故障預測模組預測為將來不發生故障且可被辨識為健康區塊(即,健康狀態)。易損性因數為一的區塊已達到抹除/程式化(program/erase,P/E)週期壽命的終點,或者已具有出現故障的特定數目的頁且可被辨識為退出使用區塊(即,退出使用狀態)。易損性因數介於零與一之間的區塊被故障預測模組預測為故障且可被辨識為易損性(即,易損性狀態)。易損性因數亦可定義如下:
Figure 110102310-A0305-02-0015-1
在各種實施例中,可基於區塊的易損性因數(例如,經由磨損平衡演算法)將工作負載分派至區塊。在各種實施例中,可首先將具有較低的易損性因數且因此不太可能出現故障的那些區塊作為目標。另外,可使用易損性因數判斷是否使用特定區塊進行寫入請求。由於資料可能會在將來故障中丟失,因此具有較高的故障機率的易損性區塊對於寫入請求可能不理想。此種方法可隱式減少更多易損性區塊的使用。在一些實施例中,若資料被寫入至具有大於預定臨限值的易損性因數的易損性區塊,則資料亦可被寫入至複製區塊。複製可有助於防止資料因易損性區塊的未來故障而丟失。此外,可使用易損性因數確定將複製多少易損性區塊內容。此種方法可藉由限制複製區塊上複製所需的空間大小來創建更高效的複製機制。藉由限制將自易損性區塊複製的資料量,可相較於易損性區塊的全部內容被複製的情況較少地使用複製區塊。因此,複製區塊的較少使用可減少其磨耗。
圖3是示出根據本揭露示例性實施例的在SSD內跨越區塊分配負載的方法的流程圖。根據一些示例性實施例,圖3中所示的操作的數目及次序可有所變化。舉例而言,根據一些示例性實施例,除非另外相反地陳述或暗示,否則可存在更少的操作或附加的操作。另外,除非另外相反地陳述或暗示,否則操作的次序可有所變化。在一些實施例中,可使用任何合適的韌體實施圖3 中所示的操作。
參照圖3,在305處,SSD接收請求。所述請求可為讀取請求或寫入請求。在310處,判斷所述請求是否是讀取請求。若所述請求是讀取請求,則所述方法進行至315。在315中,審查LTP表以辨識資料的PPN且讀取PPN處的資料。在一些實施例中,所請求的資料可儲存於多於一個區塊上。舉例而言,資料可儲存於原始區塊上及任何複製區塊上。由此,LPN可對應於多於一個PPN。若原始區塊上的資料已毀壞,則所述資料在複製區塊上仍可得到恢復。
若在310中判斷出所述請求不是讀取請求,則所述方法可進行至320。在320中,可選擇區塊(即,目標區塊)來接收資料。在一些實施例中,可根據目標區塊的易損性因數來選擇目標區塊。舉例而言,可選擇具有最小的易損性因數的區塊作為目標區塊。在325中,判斷目標區塊是否是易損性的。易損性區塊可包括易損性因數大於零但小於一的區塊。若目標區塊的狀態不是易損性,則所述方法可進行至335。在335中,可選擇目標區塊的PPN來寫入資料且可更新映射表(即,LTP表或PTL表)。
若在325中判斷出目標區塊是易損性的,則所述方法可進行至330。在330中,可確定目標區塊的易損性因數,且所述方法可進行至340。在340中,可將目標區塊的易損性因數與預定臨限值進行比較。若易損性因數大於預定臨限值,則所述過程可進行至345。在345中,可選擇目標區塊的PPN且可將資料寫入於 所選擇的PPN處。亦可將資料的複製品寫入於複製區塊上且可更新映射表。若在340中易損性因數小於或等於預定臨限值,則所述方法可進行至350。在350中,可選擇目標區塊的PPN且可將資料寫入至所選擇的PPN,而無需複製。亦可更新映射表。
圖4顯示根據本揭露示例性實施例的LTP表及PTL表。參照圖4,SSD可具有兩個映射表:LTP表410及PTL表420。LTP表410將邏輯頁碼映射至物理頁碼。如LTP表410中所示,每一LPN對應於PPN。舉例而言,LPN 0對應於PPN 0。在一些實施例中,資料可被複製且可被儲存於多個PPN處:原始區塊處的一個PPN及複製區塊上的附加PPN。因此,LPN可對應於多於一個PPN。舉例而言,由於PPN 1處的資料被複製於PPN 3處,因此LPN 1對應於PPN 1及PPN 3。
根據圖4,PTL表420將物理頁碼(PPN)映射至邏輯頁碼(LPN)。如PTL表420中所示,每一PPN對應於LPN。舉例而言,PPN 0對應於LPN 0。在一些實施例中,多於一個PPN可對應於相同的LPN。舉例而言,由於PPN 1處的資料被複製於PPN 3處,因此PPN 1及PPN 3二者對應於LPN 1。在LTP表410及PTL表420二者中,針對給定LPN維護PPN列表。
在讀取請求期間,可藉由存取LTP表410來擷取所請求的資料的PPN。使用PPN存取且讀取所請求的資料。在一些實施例中,原始PPN處的資料可能毀壞且可自複製PPN擷取資料。在寫入請求期間,選擇PPN以寫入資料。將新表項添加至LTP表410。 若需要複製資料,則亦將複製PPN添加至對應的LPN的LTP表的同一表項。舉例而言,由於PPN 1處的資料被複製於PPN 3處,因此LTP表410的LPN 1對應於PPN 1及PPN 3。在對LPN進行更新時,對應的PPN在LTP表410上可能是無效的。在垃圾收集期間,若移除PPN,則自PTL表420中對其對應的LPN進行定位。隨後,可在LTP表410中更新對應的LPN的PPN列表。
除辨識區塊的易損性因數之外,亦可在快閃晶片級處確定易損性因數(例如,晶片易損性因數)且在SSD級處確定易損性因數(例如,SSD易損性因數)。快閃晶片的易損性因數被定義為快閃晶片中的每一區塊的易損性因數之和,如下所示:
Figure 110102310-A0305-02-0018-2
N:快閃晶片中的區塊的#
易損性因數i:區塊i的易損性.因數在將寫入請求(即,負載)分派至快閃晶片時,韌體將目標快閃晶片的比例確定為:1/晶片_易損性_因數。因此,具有較高數目的易損性/故障區塊的快閃晶片可獲得較少的請求。
相似地,SSD的易損性因數可被定義為SSD中的每一快閃晶片的晶片易損性因數之和,如下所示:
Figure 110102310-A0305-02-0018-3
K:SSD內部的快閃晶片的#在將負載分派至每一SSD時,根據SSD易損性因數將負載分派至SSD。舉例而言,可將負載分派至具有最小的SSD易損性因數的 SSD。
圖5是示出根據本揭露示例性實施例的在區塊級、晶片級及元件級處追蹤的元資料的圖表。
參照圖5,元件韌體維護區塊級元資料510及晶片級元資料520。在系統級處維護元件級元資料530。區塊級元資料510可包括每一各別區塊的易損性因數。晶片級元資料520可包括每一各別快閃晶片的易損性因數。元件級元資料530可包括系統中的每一各別SSD的易損性因數。
因此,如圖5中所示,由於可分別維護區塊級元資料、晶片級元資料及元件級元資料,因此本揭露的實施例可在各種抽象級(例如,在區塊級處、在晶片級處或在元件(即,各別SSD)級)處實施。舉例而言,可計算每一快閃晶片的易損性因數。晶片易損性因數可被定義為晶片內的每一區塊的易損性因數之和。在一些實施例中,可根據晶片的易損性因數將工作負載定向至快閃晶片。
另外,亦可計算每一SSD的易損性因數。SSD易損性因數可被定義為SSD內的每一晶片的易損性因數之和。在一些實施例中,可根據SSD的易損性因數將工作負載定向至SSD。
此外,亦可計算區塊內的每一頁的易損性因數。在一些實施例中,可根據頁的易損性因數將工作負載定向至頁。
圖6是示出根據本揭露示例性實施例的在記憶體系統內跨越記憶體元件分配負載的方法的流程圖。根據一些示例性實施 例,圖6中所示的操作的數目及次序可有所變化。舉例而言,根據一些示例性實施例,除非另外相反地陳述或暗示,否則可存在更少的操作或附加的操作。另外,除非另外相反地陳述或暗示,否則操作的次序可有所變化。在一些實施例中,可使用任何合適的韌體實施圖6中所示的操作。
參照圖6,在610中,記憶體系統可接收欲將資料寫入至記憶體元件的請求。在各種實施例中,記憶體元件可包括頁、區塊、快閃晶片或SSD。在620中,控制器(即,韌體)可計算記憶體系統中的每一記憶體元件的易損性因數。在一些實施例中,可使用故障預測模組來計算區塊的易損性因數。在一些實施例中,快閃晶片的易損性因數可等於快閃晶片中的區塊的易損性因數之和。在一些實施例中,SSD的易損性因數可等於SSD中的快閃晶片的易損性因數之和。
在630中,可根據記憶體元件的易損性因數選擇記憶體元件來寫入資料。在一些實施例中,可選擇具有最小的易損性因數的記憶體元件(即,最不易損的記憶體元件)來寫入資料。在640中,可將寫入資料請求定向至所選擇的記憶體元件。
根據本文中所述本發明實施例的電子元件或電元件及/或任何其他相關元件或組件可利用任何適合的硬體、韌體(例如,特殊應用積體電路)、軟體、或軟體、韌體及硬體的組合來實施。舉例而言,可將該些元件的各種組件形成於一個積體電路(IC)晶片上或單獨的IC晶片上。此外,可將該些元件的各種組件實施 於可撓性印刷電路膜、膠帶載體封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上、或形成於一個基板上。此外,該些元件的各種組件可為在一或多個計算元件中在一或多個處理器上運行、執行電腦程式指令並與用於實行本文中所述各種功能性的其他系統組件進行交互的過程或執行緒(thread)。電腦程式指令儲存於可在使用例如(舉例而言)隨機存取記憶體(random access memory,RAM)等標準記憶體元件的計算元件中實施的記憶體中。電腦程式指令亦可儲存於例如(舉例而言)光碟唯讀記憶體(CD-ROM)、快閃驅動機等其他非暫時性電腦可讀取媒體中。
藉由參照前述對實施例的詳細說明及附圖,可更易於理解本發明概念的特徵及達成該些特徵的方法。參照附圖更詳細地闡述了前述實施例,在所有附圖中相同的參考編號指代相同的部件。然而,本揭露可被實施為各種不同的形式,且不應被視為僅限於本文中所例示的實施例。確切而言,提供該些實施例作為實例是為了使此揭露內容將透徹及完整,並將向熟習此項技術者充分傳達本揭露的態樣及特徵。因此,可不再闡述對於此項技術中具有通常知識者全面理解本揭露的實施例的態樣及特徵而言不必要的過程、部件及技術。除非另外注明,否則在所有附圖及書面說明通篇中,相同的參考編號表示相同的部件,且因此將不再對其予以贅述。在圖式中,為清晰起見,可誇大部件、層及區的相對大小。
在前面的說明中,出於闡釋的目的,闡述了諸多具體細節以提供對各種實施例的透徹理解。然而,顯而易見的是,可在沒有該些具體細節或者具有一或多個等效佈置的條件下實踐各種實施例。此外,此項技術中具有通常知識者將理解,在不背離本揭露的精神或範圍的條件下,可以任何適合的方式對本文中所述的二或更多個實施例的各種特徵加以組合。在其他情況下,以方塊圖形式示出眾所習知的結構及元件,以便避免不必要地使各種實施例模糊不清。
應理解,當稱部件、層、區或組件位於另一部件、層、區或組件「上(on)」、「連接至(connected to)」或「耦合至(coupled to)」另一部件、層、區或組件時,所述部件、層、區或組件可直接位於所述另一部件、層、區或組件上、直接連接至或直接耦合至所述另一部件、層、區或組件,抑或可存在一或多個中間部件、層、區或組件。然而,「直接連接/直接耦合」指代一個組件直接連接或直接耦合另一組件,而沒有中間組件。同時,闡述組件之間的關係的其他表達,例如「之間(between)」、「緊鄰地位於...之間(immediately between)」或「鄰近於(adjacent to)」及「直接鄰近於(directly adjacent to)」可以相似的方式進行解釋。另外,應理解,當稱部件或層位於兩個部件或層「之間」時,所述部件或層可為所述兩個部件或層之間的唯一部件或層,抑或亦可存在一或多個中間部件或層。
本文中所使用的術語僅是為了闡述具體實施例,而非旨 在限制本揭露。除非上下文清楚地另外指示,否則本文中所使用的單數形式「一(a及an)」旨在亦包含複數形式。更應理解,當在本說明書中使用用語「包括(comprises/comprising)」、「具有(have/having)」及「包含(includes/including)」時,是指明所陳述特徵、整數、步驟、操作、部件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、部件、組件及/或其群組的存在或增添。本文中所使用的用語「及/或」包括相關聯所列項其中一或多個項的任意及全部組合。
本文中所使用的用語「實質上(substantially)」、「約(about)」、「近似(approximately)」及相似用語用作近似值用語、而並非作為程度用語,並且旨在慮及此項技術中具有通常知識者將知的量測值或計算值的固有偏差。本文中所使用的「約」或「近似」包括所陳述的值且意指處於由此項技術中具有通常知識者確定的特定值的可接受偏差範圍內,此考慮到所討論的量測及與特定量的量測相關聯的誤差(例如,量測系統的限制)。舉例而言,「約」可意味著在一或多個標準偏差內,或者在所陳述值的±30%、20%、10%、5%內。此外,在闡述本揭露的實施例時使用「可(may)」是指代「本揭露的一或多個實施例」。本文中所使用的用語「使用(use)」、「正使用(using)」及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」及「被利用(utilized)」同義。此外,用語「示例性(exemplary)」旨在指代實例或例示。
當可以不同的方式實施某一實施例時,可與所述次序不 同地實行一特定過程次序。舉例而言,可實質上同時實行或以與所述次序相反的次序實行兩個連續的所述過程。
前述者是對示例性實施例的例示,且不應被視為對示例性實施例進行限制。儘管已闡述了幾個示例性實施例,然而熟習此項技術者將易於理解,可在不實際上背離示例性實施例的新穎教示內容及優點的條件下在示例性實施例中作出諸多潤飾。因此,所有此類潤飾皆旨在包含於如在申請專利範圍中所界定的示例性實施例的範圍內。在申請專利範圍中,方式加功能條款旨在涵蓋本文中所述的用於實行所敍述功能的結構、且不僅涵蓋結構性等效形式而且亦涵蓋等效結構。因此,應理解,前述者是對示例性實施例的例示且不應被視為僅限於所揭露的具體實施例,且對所揭露示例性實施例所作的潤飾以及其他示例性實施例皆旨在包含於隨附申請專利範圍的範圍內。本發明概念是由以下申請專利範圍所界定,其中在本發明概念中欲包含申請專利範圍的等效範圍。
610、620、630、640:操作

Claims (24)

  1. 一種在包括一或多個區塊的固態驅動機(SSD)中進行動態磨損平衡及負載重定向之方法,所述方法包括:由控制器接收欲寫入資料的請求;由所述控制器計算所述固態驅動機的區塊的易損性因數,其中所述易損性因數是使用自與第一記憶體元件級相關聯的第一元資料產生的第一參數及自與第二記憶體元件級相關聯的第二元資料產生的第二參數來計算的;由所述控制器選擇所述區塊作為目標區塊來接收欲寫入資料的所述請求;由所述控制器基於所述目標區塊的所述易損性因數確定所述目標區塊的狀態;由所述控制器基於所述目標區塊的所述狀態將所述資料寫入至所述目標區塊;以及由所述控制器基於被寫入至所述目標區塊的所述資料更新映射表。
  2. 如請求項1所述的方法,更包括當所述目標區塊的所述易損性因數大於預定臨限值時,由所述控制器將所述資料寫入至複製區塊。
  3. 如請求項1所述的方法,其中所述狀態包括健康狀態、易損性狀態、或退出使用狀態中的至少一者。
  4. 如請求項1所述的方法,其中所述映射表包括將被 寫入至所述目標區塊的所述資料的邏輯頁碼映射至被寫入至所述目標區塊的所述資料的物理頁碼的表。
  5. 如請求項1所述的方法,其中所述目標區塊是基於所述目標區塊的所述易損性因數進行選擇。
  6. 如請求項5所述的方法,其中選擇具有最小的易損性因數的所述目標區塊。
  7. 如請求項1所述的方法,其中使用自區塊級元資料產生的第一組參數及自驅動機級元資料產生的第二組參數來計算所述易損性因數。
  8. 如請求項7所述的方法,其中所述區塊級元資料包括讀取錯誤、寫入錯誤、或抹除錯誤中的至少一者。
  9. 如請求項7所述的方法,其中所述驅動機級元資料包括頁辨識符、區塊辨識符、時間戳、基於區塊的錯誤、及驅動機日誌資料中的一或多者。
  10. 一種固態驅動機(SSD)系統,包括控制器及一或多個區塊,其中所述控制器被配置成:接收欲寫入資料的請求;計算所述固態驅動機的區塊的易損性因數,其中所述易損性因數是使用自與第一記憶體元件級相關聯的第一元資料產生的第一參數及自與第二記憶體元件級相關聯的第二元資料產生的第二參數來計算的;選擇所述區塊作為目標區塊來接收欲寫入資料的所述請求; 基於所述目標區塊的所述易損性因數確定所述目標區塊的狀態;基於所述目標區塊的所述狀態將所述資料寫入至所述目標區塊;以及基於被寫入至所述目標區塊的所述資料來更新映射表。
  11. 如請求項10所述的系統,其中所述控制器更被配置成:當所述目標區塊的所述易損性因數大於預定臨限值時,將所述資料寫入至複製區塊。
  12. 如請求項10所述的系統,其中所述狀態包括健康狀態、易損性狀態、及退出使用狀態中的至少一者。
  13. 如請求項10所述的系統,其中所述目標區塊是基於所述目標區塊的所述易損性因數進行選擇。
  14. 如請求項13所述的系統,其中選擇具有最小的易損性因數的所述目標區塊。
  15. 如請求項10所述的系統,其中使用自區塊級元資料產生的第一組參數及自驅動機級元資料產生的第二組參數來計算所述易損性因數。
  16. 如請求項15所述的系統,其中所述區塊級元資料包括讀取錯誤、寫入錯誤、或抹除錯誤中的至少一者。
  17. 如請求項15所述的系統,其中所述驅動機級元資料包括頁辨識符、區塊辨識符、時間戳、基於區塊的錯誤、及 驅動機日誌資料中的一或多者。
  18. 一種在包括一或多個記憶體元件的記憶體系統內進行動態磨損平衡及負載重定向之方法,所述方法包括:由控制器接收欲寫入資料的請求;由所述控制器計算記憶體元件的易損性因數,其中所述易損性因數是使用自與第一記憶體元件級相關聯的第一元資料產生的第一參數及自與第二記憶體元件級相關聯的第二元資料產生的第二參數來計算的;由所述控制器基於目標元件的所述易損性因數選擇所述記憶體元件作為所述目標元件來接收欲寫入資料的所述請求;以及由所述控制器將欲寫入資料的所述請求定向至所述目標元件。
  19. 如請求項18所述的方法,其中所述記憶體元件包括快閃晶片。
  20. 如請求項19所述的方法,其中所述快閃晶片的所述易損性因數等於所述快閃晶片內的所有區塊之和。
  21. 如請求項19所述的方法,其中選擇具有最小的易損性因數的快閃晶片作為目標快閃晶片。
  22. 如請求項18所述的方法,其中所述記憶體元件包括固態驅動機。
  23. 如請求項22所述的方法,其中所述固態驅動機的所述易損性因數等於所述固態驅動機內的所有快閃晶片之和。
  24. 如請求項22所述的方法,其中選擇具有最小的易損性因數的固態驅動機作為目標固態驅動機。
TW110102310A 2020-02-07 2021-01-21 進行動態磨損平衡及負載重定向之方法及固態驅動機系統 TWI836181B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062971773P 2020-02-07 2020-02-07
US62/971,773 2020-02-07
US16/843,823 US11275510B2 (en) 2020-02-07 2020-04-08 Systems and methods for storage device block-level failure prediction
US16/843,823 2020-04-08

Publications (2)

Publication Number Publication Date
TW202147119A TW202147119A (zh) 2021-12-16
TWI836181B true TWI836181B (zh) 2024-03-21

Family

ID=74550421

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110102310A TWI836181B (zh) 2020-02-07 2021-01-21 進行動態磨損平衡及負載重定向之方法及固態驅動機系統

Country Status (6)

Country Link
US (1) US11275510B2 (zh)
EP (1) EP3862865B1 (zh)
JP (1) JP2021125267A (zh)
KR (1) KR20210101166A (zh)
CN (1) CN113312276B (zh)
TW (1) TWI836181B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220221852A1 (en) * 2021-01-14 2022-07-14 University Of Louisiana At Lafayette Method and architecture for embryonic hardware fault prediction and self-healing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法
US20140258658A1 (en) * 2013-03-07 2014-09-11 International Business Machines Corporation Reducing data loss in a computing storage environment
US20170277441A1 (en) * 2016-03-24 2017-09-28 Advanced Micro Devices, Inc. Performance-aware and reliability-aware data placement for n-level heterogeneous memory systems
US20180181492A1 (en) * 2016-12-23 2018-06-28 Advanced Micro Devices, Inc. Waterfall counters and an application to architectural vulnerability factor estimation
US20190034251A1 (en) * 2017-07-28 2019-01-31 Advanced Micro Devices, Inc. Method and apparatus for memory vulnerability prediction
US20190289029A1 (en) * 2018-03-14 2019-09-19 Synack, Inc. Risk assessment and remediation

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7573773B2 (en) 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
WO2009124320A1 (en) * 2008-04-05 2009-10-08 Fusion Multisystems, Inc. Apparatus, system, and method for bad block remapping
US8838897B2 (en) 2011-06-29 2014-09-16 New Jersey Institute Of Technology Replicating tag entries for reliability enhancement in cache tag arrays
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
US9430322B2 (en) 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9423970B2 (en) 2013-12-30 2016-08-23 Sandisk Technologies Llc Method and system for predicting block failure in a non-volatile memory
US20160042141A1 (en) 2014-08-08 2016-02-11 International Business Machines Corporation Integrated assessment of needs in care management
US20170068467A1 (en) 2015-09-04 2017-03-09 HGST Netherlands B.V. Wear management for flash memory devices
WO2017095911A1 (en) * 2015-12-01 2017-06-08 Huang Yiren Ronnie Method and apparatus for logically removing defective pages in non-volatile memory storage device
US10621353B2 (en) 2016-12-28 2020-04-14 Intel Corporation Firmware loading for exploit resistance
KR20180092715A (ko) 2017-02-10 2018-08-20 삼성전자주식회사 동작들의 횟수에 기초하여 복제된 데이터를 관리하는 스토리지 장치
US20180332012A1 (en) 2017-05-12 2018-11-15 International Business Machines Corporation Post-compilation configuration management
CN107562641A (zh) * 2017-07-11 2018-01-09 捷开通讯(深圳)有限公司 存储空间的均衡磨损方法、系统和装置
US11288116B2 (en) 2018-02-15 2022-03-29 Micron Technology, Inc. End of service life of data storage devices
US11042646B2 (en) 2018-08-13 2021-06-22 International Business Machines Corporation Selecting data storage based on data and storage classifications
CN109783398B (zh) * 2019-01-18 2020-09-15 上海海事大学 一种基于相关感知页面级ftl固态硬盘性能优化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法
US20140258658A1 (en) * 2013-03-07 2014-09-11 International Business Machines Corporation Reducing data loss in a computing storage environment
US20170277441A1 (en) * 2016-03-24 2017-09-28 Advanced Micro Devices, Inc. Performance-aware and reliability-aware data placement for n-level heterogeneous memory systems
US20180181492A1 (en) * 2016-12-23 2018-06-28 Advanced Micro Devices, Inc. Waterfall counters and an application to architectural vulnerability factor estimation
US20190034251A1 (en) * 2017-07-28 2019-01-31 Advanced Micro Devices, Inc. Method and apparatus for memory vulnerability prediction
US20190289029A1 (en) * 2018-03-14 2019-09-19 Synack, Inc. Risk assessment and remediation

Also Published As

Publication number Publication date
CN113312276A (zh) 2021-08-27
EP3862865B1 (en) 2022-06-22
KR20210101166A (ko) 2021-08-18
JP2021125267A (ja) 2021-08-30
US20210247912A1 (en) 2021-08-12
CN113312276B (zh) 2023-08-08
EP3862865A1 (en) 2021-08-11
TW202147119A (zh) 2021-12-16
US11275510B2 (en) 2022-03-15

Similar Documents

Publication Publication Date Title
CN109901788B (zh) 存储器控制器、存储器系统及控制方法
TWI741054B (zh) 儲存裝置及操作儲存裝置的方法
TWI470426B (zh) Memory management device and memory management method
KR102152238B1 (ko) 단편화를 해결하는 메모리 세그먼트 재매핑
US10216578B2 (en) Data storage device for increasing lifetime and RAID system including the same
US8108595B2 (en) Storage apparatus and method of managing data storage area
US8296608B2 (en) Memory device
US10789019B2 (en) Storage device capable of managing jobs without intervention of a processor
US10262754B2 (en) Fine grained online remapping to handle memory errors
KR20170113013A (ko) 멀티-웨어 스마트 솔리드 스테이트 드라이브
US11709745B2 (en) Method for a reliability, availability, and serviceability-conscious huge page support
US20080270675A1 (en) Defect management for a semiconductor memory system
US20200233590A1 (en) Offloading device maintenance to an external processor in low-latency, non-volatile memory
TWI836181B (zh) 進行動態磨損平衡及負載重定向之方法及固態驅動機系統
US8103849B2 (en) Reducing memory usage of kernel memory management structures
US7523285B2 (en) Thermal memory control
JP5510562B2 (ja) メモリ管理方法、メモリ管理装置およびメモリ管理回路
US11734093B2 (en) Storage device block-level failure prediction-based data placement
CN110737539B (zh) 裸片级错误恢复方案
Luo et al. A NAND flash management algorithm with limited on-chip buffer resource
US12010214B2 (en) Hash based key value to block translation methods and systems