TW201415468A - 在一非揮發性記憶體中測量平均抹除之記憶體胞損壞 - Google Patents

在一非揮發性記憶體中測量平均抹除之記憶體胞損壞 Download PDF

Info

Publication number
TW201415468A
TW201415468A TW102133261A TW102133261A TW201415468A TW 201415468 A TW201415468 A TW 201415468A TW 102133261 A TW102133261 A TW 102133261A TW 102133261 A TW102133261 A TW 102133261A TW 201415468 A TW201415468 A TW 201415468A
Authority
TW
Taiwan
Prior art keywords
memory
memory cell
memory cells
cell damage
portions
Prior art date
Application number
TW102133261A
Other languages
English (en)
Inventor
Yan Li
Alexander Hubris
Hao Zhong
Original Assignee
Lsi Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201415468A publication Critical patent/TW201415468A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Memory System (AREA)

Abstract

一種非揮發性記憶體(NVM)控制器,其在一NVM中測量平均抹除之記憶體胞損壞,因此改良諸如一固態磁碟(SSD)之一儲存子系統之效能、可靠性、壽命及/或成本。在一第一態樣中,該控制器判定讀取NVM之一頁之一錯誤係由記憶體胞損壞及/或記憶體胞洩漏引起。該控制器重新程式化並即刻回讀該頁,若在該即刻讀取期間偵測一錯誤,則偵測到該錯誤係由記憶體胞損壞引起。在一第二態樣中,藉由更新用於NVM之頁及/或區塊之記憶體胞損壞計數器追蹤該記憶體胞損壞。在一第三態樣中,至少部分基於NVM之頁及/或區塊之所測量的記憶體胞損壞而執行平均抹除。

Description

在一非揮發性記憶體中測量平均抹除之記憶體胞損壞
需要發展非揮發性儲存技術以提供成本、獲利性、效能、效率及使用效用之改良。
除非明確識別為公開或眾所周知,否則本文提及之技術及概念(包含內容脈絡、定義或比較目的)不應被解釋為認同先前公開已知此等技術及概念或認同此等技術及概念係先前技術之部分。本文引用之包含專利、專利申請案及公開案之所有參考文獻(若有)無論是否具體併入皆係針對所有目的以引用方式全部併入本文。
現在將描述如由固態磁碟(SSD)控制器使用之快閃記憶體之各種態樣以部分建立一技術背景且部分建立用於說明書之其餘部分中的命名前提。可藉由SSD控制器自非揮發性記憶體(NVM)讀取之資料之最小大小係受包含錯誤校正(諸如一低密度同位檢查(LDPC)程式碼)保護之一「讀取單位」。在一些內容脈絡下,讀取單位被稱為「碼字」。在一些實施例中,各讀取單位含有大約4K至大約32K個位元的使用者資料外加錯誤校正附加項。依據該SSD控制器之命令,(例如,經由NVM記憶體胞之一或多個部分之一陣列存取)自NVM記憶體胞讀取該等位元,取決於如下文論述之技術,每個記憶體胞可擁有一或多個位元。在一些實施例中,為安全原因,一SSD控制器在將資料寫入至 NVM之前加密該資料。在一些實施例中,鑑於對長字串之經同等程式化之記憶體胞之電路設計限制,一SSD控制器在將資料寫入至NVM之前擾碼該資料。
經個別考慮,各記憶體胞具有對應於該記憶體胞之一裝置臨限電壓且進一步對應於儲存於該記憶體胞中之邏輯位元值之一特定儲存(程式化)電荷。雖然在理想狀況下NVM中的所有記憶體胞針對所儲存之邏輯位元值將具有相同的裝置臨限電壓,但是實務上由於多種原因,該等裝置臨限電壓跨該等記憶體胞在沿裝置臨限電壓軸之類似於一高斯(Gaussian)形狀之概率分佈(例如,「裝置臨限電壓分佈」)係不同的。
因此,經總體考慮,跨(諸如一讀取單位之)大量記憶體胞,存在的裝置臨限電壓分佈(例如,高斯概率曲線)與每個記憶體胞存在的狀態一樣多(每個記憶體胞之每個儲存位元具有兩個狀態)。即,對於每個儲存記憶體胞之N個位元,存在2**N個狀態及相同數目個裝置臨限電壓分佈。通常,NVM中之讀取電路需要(2**N)-1個不同讀取臨限值(讀取電壓參考VREAD1至VREAD(N-1))以區分該2**N個狀態。
繼續上文,對於單位階記憶體胞(SLC)快閃記憶體,N=1。因此,SLC記憶體之每個儲存記憶體胞儲存一位元,具有兩個裝置臨限電壓分佈(一分佈係零且另一分佈係一),且需要一單個讀取臨限值、讀取電壓參考VREAD1。從較低裝置臨限電壓至較高裝置臨限電壓,該兩個裝置臨限電壓分佈被視為E(擦除)狀態及D1(第一資料)狀態。雖然係任意的,但是一共同映射(編碼)用以將邏輯一指派給E狀態且將邏輯零指派給D1狀態。因此,對零及一之參考係用於分別解碼D1狀態及E狀態之代理(proxy)參考。
進一步繼續上文,對於多位階記憶體胞(MLC)快閃記憶體,N>1。因此,MLC記憶體之每個記憶體胞儲存一個以上位元,具有兩 個以上裝置臨限電壓分佈,且需要多個不同讀取臨限值以區分該等分佈。例如,一4LC記憶體(例如,快閃記憶體)之每個記憶體胞儲存2個位元,具有四個裝置臨限電壓分佈,且通常需要三個讀取臨限值(讀取電壓參考VREAD1、VREAD2及VREAD3)。從較低裝置臨限電壓至較高裝置臨限電壓,該四個裝置臨限電壓分佈被視為E(擦除)、D1(Data1)、D2(Data2)及D3(Data3)狀態。雖然係任意的,但是該四個裝置臨限電壓分佈之各者亦係根據一特定二進位序列(諸如一格雷碼(Gray code)序列)加以映射(定址)。因此,對11、10、00及01狀態之一或多者之參考係用於分別解碼E、D1、D2及D3狀態之代理參考。
關於定址用於一MLC之狀態之映射,各自可被視為具有一最高有效位元(MSB)及一最低有效位元(LSB)(及對於每個記憶體胞兩個以上位元,其等之間之有效位元)。雖然存在MLC NVM程式化其等記憶體胞之各種方式,但是以下途徑係常見的。一初始程式化遍次(電荷分佈之一操縱)建立LSB,例如寫入「下部頁」。這係以與寫入一SLC之方式相同之方式(例如,建立E狀態裝置臨限電壓分佈及一第二狀態裝置臨限電壓分佈之一電荷操縱)而鬆散地進行。取決於所使用之二進位序列,該第二狀態裝置臨限電壓分佈類似於D1狀態裝置臨限電壓分佈,類似於D2狀態裝置臨限電壓分佈或介於D1狀態裝置臨限電壓分佈與D2狀態裝置臨限電壓分佈之間。對於MLC,如MLC之位階數要求,一或多個額外程式化遍次進一步(在數目、沿裝置臨限電壓軸之位置及形狀方面)操縱裝置臨限電壓分佈。更特定言之,一或多個後續程式化操作寫入「中間頁」(若有,針對每個記憶體胞兩個以上位元),且一最終程式化操作建立MSB,例如寫入「上部頁」。例如在一4LC(每個記憶體胞MLC 2個位元)中,藉由一第二程式化遍次將該第一程式化遍次之E分佈及第二分佈分別分叉至E分佈與D1分佈及D2分佈與D3分佈中。
NVM記憶體胞具有一有限寫入耐久性,且寫入將最終磨損(例如,損壞)記憶體胞,使得該記憶體胞無法正確地儲存資料。記憶體胞損壞的原因包含氧化物陷阱及氧化物崩潰。通常,就程式化-擦除(P/E)循環描述寫入耐久性,且針對一特定位準指定NVM(例如,在特定條件下,認為一SLC NVM記憶體胞可能持續10K個P/E循環)。使用平均抹除技術管理許多NVM以藉由減小記憶體胞損壞而改良可靠性、壽命及/或效能。傳統上,平均抹除最終跨NVM之區塊分佈P/E循環以避免過早地磨損任何個別區塊(例如,引起對任何個別區塊之記憶體胞損壞)。此途徑隱含地假定P/E循環等效於抹除。藉由測量P/E循環的次數來估計抹除以最佳化至NVM之寫入。
實務上,寫入耐久性及抹除係由除P/E循環以外的多種因數加以判定,該多種因數包含處理程序、電壓、溫度(PVT)及駐留時間(P/E循環之間的時間長度)。一些NVM記憶體胞可能歸因於製造中的統計變動而超過指定耐久性。類似地,一些NVM記憶體胞可能歸因於更有利的條件(例如,在NVM額定用於100℃,但在50℃下操作之情況下)而超過指定耐久性。
本發明可以數種方式實施,例如實施為處理程序、製品、設備、系統、組合物及諸如電腦可讀儲存媒體之電腦可讀媒體(例如,諸如磁碟之光學及/或磁性大容量儲存裝置中之媒體或具有諸如快閃儲存器之非揮發性儲存器之積體電路)或電腦網路,其中經由光學或電子通信鏈路發送程式指令。【實施方式】提供本發明之一或多項實施例之闡述,該一或多項實施例能夠改良在上文識別領域中之成本、獲利力、效能、效率及使用效用。【實施方式】包含<引言>段落,以促進理解【實施方式】之剩餘部分。<引言>包含根據本文描述之概念之系統、方法、製品及電腦可讀媒體之一或多者之例示性實施 例。如結論中更詳細地論述,本發明涵蓋所發佈申請專利範圍之範疇內之所有可能修改及變動。
在各種實施例及/或使用案例中,平均抹除改良一NVM之效能、成本、可靠性及/或壽命。一些平均抹除技術藉由P/E循環次數近似計算記憶體胞抹除,且基於P/E循環次數將資料寫入至NVM之區塊。此途徑係風行的,因為計數一記憶體胞之P/E循環次數比測量該記憶體胞之實際抹除(損壞)更簡單。
本發明者咸信其等首先注意到效能、成本、可靠性及/或壽命、在一NVM中測量平均抹除之記憶體胞損壞的益處之重要性。更特定言之,本發明者咸信其等首先注意由一NVM記憶體胞中之電壓單向移位引起的頁讀取錯誤指示記憶體胞損壞及/或記憶體胞洩漏(例如,保持故障)且重新程式化(例如,擦除所儲存的資料,後續接著使用該所儲存的資料程式化)該記憶體胞並即刻讀取該記憶體胞可偵測到錯誤係由記憶體胞損壞引起。在一些使用案例中,測量記憶體胞損壞比經由P/E循環估計記憶體胞損壞更精確,這係因為經測量記憶體胞損壞考量諸如PVT及駐留時間之其他因數。使用在偵測到記憶體胞損壞時更新之記憶體胞損壞計數器追蹤NVM之頁及/或區塊之記憶體胞損壞。併有更精確的經測量記憶體胞損壞資訊(例如,記憶體胞損壞計數器)之平均抹除技術達成NVM之經改良效能、成本、可靠性及/或壽命。例如,至少部分基於經測量記憶體胞損壞之平均抹除能夠超過未損壞之NVM記憶體胞之指定P/E循環。
100‧‧‧固態磁碟控制器
101‧‧‧固態磁碟
102‧‧‧主機
103‧‧‧(選用)交換機/網狀結構/中間控制器
104‧‧‧中間介面
105‧‧‧作業系統
106‧‧‧韌體(FW)
107‧‧‧驅動程式
107D‧‧‧虛線箭頭(主機軟體←→輸入/輸出裝置通信)
109‧‧‧應用程式
109D‧‧‧虛線箭頭(應用程式←→經由驅動程式進行輸入/輸出裝置通信)
109V‧‧‧虛線箭頭(應用程式←→經由虛擬函式進行輸入/輸出裝置通信)
110‧‧‧外部介面
111‧‧‧主機介面
112C‧‧‧(選用)卡式記憶體
113‧‧‧標籤追蹤
114‧‧‧多裝置管理軟體
115‧‧‧主機軟體
116‧‧‧輸入/輸出卡
117‧‧‧輸入/輸出&儲存裝置/資源
118‧‧‧伺服器
119‧‧‧區域網路/廣域網路
121‧‧‧資料處理
123‧‧‧引擎
131‧‧‧緩衝器
133‧‧‧直接記憶體存取
135‧‧‧錯誤校正碼-X
137‧‧‧記憶體
141‧‧‧映射
143‧‧‧表
151‧‧‧回收器
161‧‧‧錯誤校正碼
171‧‧‧中央處理單元
172‧‧‧中央處理單元核心
173‧‧‧命令管理
175‧‧‧緩衝器管理
177‧‧‧轉譯管理
179‧‧‧連貫性管理
180‧‧‧記憶體介面
181‧‧‧裝置管理
182‧‧‧識別碼管理
190‧‧‧裝置介面
191‧‧‧裝置介面邏輯
192‧‧‧快閃裝置
193‧‧‧排程
194‧‧‧快閃晶粒
199‧‧‧非揮發性記憶體
200‧‧‧多位階記憶體胞最大負臨限狀態,亦稱為E
201‧‧‧多位階記憶體胞下一最大負臨限狀態,亦稱為D1
202‧‧‧多位階記憶體胞下一最大正臨限狀態,亦稱為D2
203‧‧‧多位階記憶體胞最大正臨限狀態,亦稱為D3
210‧‧‧多位階記憶體胞上部頁第一臨限值
211‧‧‧多位階記憶體胞下部頁臨限值
212‧‧‧多位階記憶體胞上部頁第二臨限值
220‧‧‧多位階記憶體胞上部頁第一狀態
221‧‧‧多位階記憶體胞下部頁狀態
222‧‧‧多位階記憶體胞上部頁第二狀態
230‧‧‧移位多位階記憶體胞上部頁第一狀態
231‧‧‧移位多位階記憶體胞下部頁狀態
232‧‧‧移位多位階記憶體胞上部頁第二狀態
306‧‧‧寫入資料
310‧‧‧擾碼器
311‧‧‧擾碼寫入資料
320‧‧‧錯誤校正碼編碼器
321‧‧‧錯誤校正碼編碼之寫入資料
332‧‧‧非揮發性記憶體陣列
334‧‧‧可程式化讀取電壓電路
336‧‧‧控制/狀態暫存器
338‧‧‧輸入/輸出
351‧‧‧讀取資料
359‧‧‧未經校正&擾碼(原始)讀取資料
360‧‧‧錯誤校正碼解碼器
361‧‧‧經校正讀取資料
362‧‧‧記憶體胞損壞更新
370‧‧‧解擾碼器
371‧‧‧未經擾碼讀取資料
380‧‧‧記憶體胞損壞計數器
401‧‧‧成功地應用正向錯誤校正(FEC)解碼
402‧‧‧錯誤滿足條件?
403‧‧‧重新程式化頁,回讀資料
404‧‧‧偵測到錯誤?
405‧‧‧記憶體胞損壞錯誤
406‧‧‧更新記憶體胞損壞計數器
407‧‧‧保持錯誤
502‧‧‧非揮發性記憶體之區塊之耐久性
504‧‧‧非揮發性記憶體之區塊
506‧‧‧記憶體胞損壞臨限值
507‧‧‧記憶體胞損壞值
圖1A圖解說明一固態磁碟(SSD)之一實施例之選定細節,該固態磁碟包含在一非揮發性記憶體(NVM)中測量平均抹除之記憶體胞損壞之一SSD控制器。
圖1B圖解說明包含圖1A之SSD之一或多個例項之系統之各種實 施例之選定細節。
圖2A及圖2B在概念上圖解說明與記憶體胞損壞測量有關的裝置臨限電壓分佈。圖2A係下部頁特定的,而圖2B係上部頁特定的。
圖3圖解說明圖1A之SSD之一例項之一系統實施例之選定細節,從而提供關於在一NVM中測量平均抹除之記憶體胞損壞之特定細節。
圖4圖解說明圖1A、圖1B及圖3之SSD之一實施例之選定控制流程細節,從而提供關於測量記憶體胞損壞之特定細節。
圖5在概念上圖解說明基於所測量的記憶體胞損壞之平均抹除之選定細節。
下文提供本發明之一或多項實施例之詳細描述以及圖解說明本發明之選定細節之附圖。結合實施例描述本發明。應將本文中之實施例理解為僅係例示性,本發明明確不限於或受限於本文中之任何或所有實施例,且本發明涵蓋數種替代、修改及等效物。為避免闡釋單調無趣,可將多種字詞標記(包含但不限於:第一、最後、某些、各種、進一步、其他、特定、選擇、一些及值得注意的)應用於實施例之單獨集合;如本文中使用,此等標記明確不欲傳達品質或任何形式之偏好或偏見,而是僅方便區分該等單獨集合。所揭示程序之一些操作之順序在本發明之範疇內係可變更的。在多項實施例用以描述處理程序、方法及/或程式指令特徵之變動的任何情況下,預期根據預定準則或動態判定之準則執行分別對應於該多項實施例之複數項實施例之複數個操作模式之一者之靜態及/或動態選擇之其他實施例。在下列描述中陳述數種具體細節以提供對本發明之透徹理解。針對實例目的而提供該等細節且可在無一些或所有該等細節的情況下根據申請專利範圍實踐本發明。為清楚起見,未詳細描述與本發明有關的技術領 域中已知之技術材料以免不必要地模糊本發明。
引言
包含此<引言>以僅促進更快速地理解【實施方式】;本發明並不限於<引言>(若有,則包含明確實例)中所呈現之概念,因為任何<引言>段落必定係整個主題之縮影且並不意謂係詳盡或限制性描述。例如,隨後的<引言>僅對某些實施例提供受限於空間及組織之概述資訊。存在貫穿說明書之其餘部分論述之許多其他實施例,包含申請專利範圍最終將針對之實施例。
縮略詞
此處定義之各種速記縮寫(例如,縮略詞)中之至少一些速記縮寫指代本文所使用的某些元件。
例示性實施例
作為【實施方式】之引言的總結,接下來係提供對根據本文中描述之概念之多種實施例類型的額外描述之例示性實施例之集合,其包含至少一些被明確列舉為「EC」(例示性組合)之例示性實施例;此等實例並不意欲為互斥性、詳盡性或限制性;且本發明並不限於此等例示性實施例,而是涵蓋所發佈申請專利範圍及其等效物之範疇內之 所有可能的修改及變動。
EC1)一種方法,其包括:在包括一或多個部分(各部分包括一或多個記憶體胞)之一非揮發性記憶體(NVM)中,測量該等記憶體胞之一或多者之記憶體胞損壞;及至少部分基於該測量之至少一些結果對該等部分執行平均抹除。
EC2)如EC1之方法,其中該等記憶體胞係一經特定選取的子集。
EC3)如EC2之方法,其中該經特定選取的子集係一保留子集。
EC4)如EC2之方法,其中該經特定選取的子集實際上不同於該經特定選取的子集之一補集。
EC5)如EC2之方法,其中該經特定選取的子集係該NVM之一任意子集。
EC6)如EC1之方法,其中該測量包:括偵測程式化故障及擦除故障之一或多者。
EC7)如EC1之方法,其中該記憶體胞損壞係氧化物陷阱及氧化物崩潰之一或多者之一結果。
EC8)如EC1之方法,其中該測量包括:判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果;及偵測到該錯誤係一損壞記憶體胞之一結果。
EC9)如EC8之方法,其中該判定包括:將正向錯誤校正解碼應用於該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者。
EC10)如EC8之方法,其中該錯誤係裝置臨限電壓之單向移位之一結果。
EC11)如EC10之方法,其中該等單向移位包括:下部頁之一特定單向移位。
EC12)如EC10之方法,其中該等單向移位包括:上部頁之兩個特定單向移位。
EC13)如EC8之方法,其中該偵測包括:重新程式化及/或擦除該特定部分之至少一子部分及回讀該等記憶體胞之該至少一者,且該子部分包括該等記憶體胞之該至少一者。
EC14)如EC13之方法,其中該重新程式化及/或擦除導致偵測一保持故障。
EC15)如EC8之方法,其中該偵測包括:偵測到該錯誤係除保持故障外之一結果。
EC16)如EC8之方法,其中該測量進一步包括:更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及該特定部分。
EC17)如EC16之方法,其中各子部分包括一各自頁。
EC18)如EC16之方法,其中該測量之該等至少一些結果包括該記憶體胞損壞計數器之一值。
EC19)如EC16之方法,其中該執行包括:至少部分基於與該等部分相關聯之該記憶體胞損壞計數器之值選擇待寫入之該等部分之若干者。
EC20)如EC19之方法,其中該等記憶體胞損壞計數器係部分特定記憶體胞損壞計數器,且該等部分特定記憶體胞損壞計數器之該等值中對應於該等部分之一特定者之至少一特定值係包括該特定部分之一 或多個子部分之各自子部分特定記憶體胞損壞計數器之各自值之一彙總。
EC21)如EC19之方法,其中該選擇係進一步基於一記憶體胞損壞臨限值。
EC22)如EC21之方法,其中該記憶體胞損壞臨限值可程式化。
EC23)如EC22之方法,其中在一第一時間點將該記憶體胞損壞臨限值程式化為一第一值且在一第二時間點將其程式化為不同於該第一值之一第二值。
EC24)如EC1之方法,其中各部分包括一各自區塊。
EC25)如EC1之方法,其中該NVM包括一或多個快閃記憶體。
EC26)如EC1之方法,其進一步包括操作可與一儲存器介面標準相容之一儲存器介面以與一主機傳遞資訊,該資訊經由操作一快閃記憶體介面而至少部分自該NVM之一或多個位置獲得。
EC27)一種其中儲存有一指令集之有形電腦可讀媒體,該等指令在藉由一處理元件執行時引起該處理元件執行及/或控制包括以下者之操作:在包括一或多個部分(各部分包括一或多個記憶體胞)之一非揮發性記憶體(NVM)中,測量該等記憶體胞之一或多者之記憶體胞損壞;及至少部分基於該測量之至少一些結果對該等部分執行平均抹除。
EC28)如EC27之有形電腦可讀媒體,其中該等記憶體胞係一經特定選取的子集。
EC29)如EC28之有形電腦可讀媒體,其中該經特定選取的子集係一保留子集。
EC30)如EC28之有形電腦可讀媒體,其中該經特定選取的子集實 際上不同於該經特定選取的子集之一補集。
EC31)如EC28之有形電腦可讀媒體,其中該經特定選取的子集係該NVM之一任意子集。
EC32)如EC27之有形電腦可讀媒體,其中該測量包括:偵測程式化故障及擦除故障之一或多者。
EC33)如EC27之有形電腦可讀媒體,其中該記憶體胞損壞係氧化物陷阱及氧化物崩潰之一或多者之一結果。
EC34)如EC27之有形電腦可讀媒體,其中該測量包括:判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果;及偵測到該錯誤係一損壞記憶體胞之一結果。
EC35)如EC34之有形電腦可讀媒體,其中該判定包括:將正向錯誤校正解碼應用於該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者。
EC36)如EC34之有形電腦可讀媒體,其中該錯誤係裝置臨限電壓之單向移位之一結果。
EC37)如EC36之有形電腦可讀媒體,其中該等單向移位包括:下部頁之一特定單向移位。
EC38)如EC36之有形電腦可讀媒體,其中該等單向移位包括:上部頁之兩個特定單向移位。
EC39)如EC34之有形電腦可讀媒體,其中該偵測包括:重新程式化及/或擦除該特定部分之至少一子部分及回讀該等記憶體胞之該至少一者,且該子部分包括該等記憶體胞之該至少一者。
EC40)如EC39之有形電腦可讀媒體,其中該重新程式化及/或擦除導致偵測一保持故障。
EC41)如EC34之有形電腦可讀媒體,其中該偵測包括:偵測到該 錯誤係除保持故障外之一結果。
EC42)如EC34之有形電腦可讀媒體,其中該測量進一步包括:更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及該特定部分。
EC43)如EC42之有形電腦可讀媒體,其中各子部分包括一各自頁。
EC44)如EC42之有形電腦可讀媒體,其中該測量之該等至少一些結果包括該記憶體胞損壞計數器之一值。
EC45)如EC42之有形電腦可讀媒體,其中該執行包括:至少部分基於與該等部分相關聯之該等記憶體胞損壞計數器之值選擇待寫入之該等部分之若干者。
EC46)如EC45之有形電腦可讀媒體,其中該等記憶體胞損壞計數器係部分特定記憶體胞損壞計數器,且該等部分特定記憶體胞損壞計數器之該等值中對應於該等部分之一特定者之至少一特定值係包括該特定部分之一或多個子部分之各自子部分特定記憶體胞損壞計數器之各自值之一彙總。
EC47)如EC45之有形電腦可讀媒體,其中該選擇係進一步基於一記憶體胞損壞臨限值。
EC48)如EC47之有形電腦可讀媒體,其中該記憶體胞損壞臨限值可程式化。
EC49)如EC48之有形電腦可讀媒體,其中在一第一時間點將該記憶體胞損壞臨限值程式化為一第一值且在一第二時間點將其程式化為不同於該第一值之一第二值。
EC50)如EC27之有形電腦可讀媒體,其中各部分包括一各自區塊。
EC51)如EC27之有形電腦可讀媒體,其中該NVM包括一或多個快閃記憶體。
EC52)如EC27之有形電腦可讀媒體,其中該等操作進一步包括:操作可與一儲存器介面標準相容之一儲存器介面以與一主機傳遞資訊,該資訊經由操作一快閃記憶體介面而至少部分自該NVM之一或多個位置獲得。
53)一種系統,其包括:在包括一或多個部分之一非揮發性記憶體(NVM)中,各部分包括一或多個記憶體胞;用於測量該等記憶體胞之一或多者之記憶體胞損壞之構件;及用於至少部分基於用於測量之該構件之至少一些結果對該等部分執行平均抹除之構件。
EC54)如EC53之系統,其中該等記憶體胞係一經特定選取的子集。
EC55)如EC54之系統,其中該經特定選取的子集係一保留子集。
EC56)如EC54之系統,其中該經特定選取的子集實際上不同於該經特定選取的子集之一補集。
EC57)如EC54之系統,其中該經特定選取的子集係該NVM之一任意子集。
EC58)如EC53之系統,其中用於測量之該構件包括用於偵測程式化故障及擦除故障之一或多者之構件。
EC59)如EC53之系統,其中該記憶體胞損壞係氧化物陷阱及氧化物崩潰之一或多者之一結果。
EC60)如EC53之系統,其中用於測量之該構件包括: 用於判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果之構件;及用於偵測到該錯誤係一損壞記憶體胞之一結果之構件。
EC61)如EC60之系統,其中用於判定之該構件包括:用於將正向錯誤校正解碼應用於該特定部分之一子部分之構件,該子部分包括該等記憶體胞之該至少一者。
EC62)如EC60之系統,其中該錯誤係裝置臨限電壓之單向移位之一結果。
EC63)如EC62之系統,其中該等單向移位包括:下部頁之一特定單向移位。
EC64)如EC62之系統,其中該等單向移位包括:上部頁之兩個特定單向移位。
EC65)如EC60之系統,其中用於偵測之該構件包括:用於重新程式化及/或擦除該特定部分之至少一子部分之構件及用於回讀該等記憶體胞之該至少一者之構件,且該子部分包括該等記憶體胞之該至少一者。
EC66)如EC65之系統,其中操作用於重新程式化及/或擦除之該構件導致偵測一保持故障。
EC67)如EC60之系統,其中用於偵測之該構件包括:用於偵測到該錯誤係除保持故障外之一結果之構件。
EC68)如EC60之系統,其中用於測量之該構件進一步包括:用於更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器之構件:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少 一者,及該特定部分。
EC69)如EC68之系統,其中各子部分包括一各自頁。
EC70)如EC68之系統,其中用於測量之該構件之該等至少一些結果包括該記憶體胞損壞計數器之一值。
EC71)如EC68之系統,其中用於執行之該構件包括:用於至少部分基於與該等部分相關聯之該等記憶體胞損壞計數器之值選擇待寫入之該等部分之若干者之構件。
EC72)如EC71之系統,其中該等記憶體胞損壞計數器係部分特定記憶體胞損壞計數器,且該等部分特定記憶體胞損壞計數器之該等值中對應於該等部分之一特定者之至少一特定值係包括該特定部分之一或多個子部分之各自子部分特定記憶體胞損壞計數器之各自值之一彙總。
EC73)如EC71之系統,其中用於該選擇之該構件係進一步基於一記憶體胞損壞臨限值。
EC74)如EC73之系統,其中該記憶體胞損壞臨限值可程式化。
EC75)如EC74之系統,其中在一第一時間點將該記憶體胞損壞臨限值程式化為一第一值且在一第二時間點將其程式化為不同於該第一值之一第二值。
EC76)如EC53之系統,其中各部分包括一各自區塊。
EC77)如EC53之系統,其中該NVM包括一或多個快閃記憶體。
EC78)如EC53之系統,其進一步包括用於操作可與一儲存器介面標準相容之一儲存器介面以與一主機傳遞資訊之構件,該資訊經由操作一快閃記憶體介面而至少部分自該NVM之一或多個位置獲得。
EC79)一種設備,其包括:一非揮發性記憶體(NVM),其包括一或多個部分;各部分包括一 或多個記憶體胞;測量硬體邏輯電路,其經啟用以測量該等記憶體胞之一或多者之記憶體胞損壞;及平均抹除硬體邏輯電路,其經啟用以至少部分基於該測量硬體邏輯電路之至少一些結果對該等部分執行平均抹除。
EC80)如EC79之設備,其中該等記憶體胞係一經特定選取的子集。
EC81)如EC80之設備,其中該經特定選取的子集係一保留子集。
EC82)如EC80之設備,其中該經特定選取的子集實際上不同於該經特定選取的子集之一補集。
EC83)如EC80之設備,其中該經特定選取的子集係該NVM之一任意子集。
EC84)如EC79之設備,其中該測量硬體邏輯電路包括:經啟用以偵測程式化故障及擦除故障之一或多者之故障偵測硬體邏輯電路。
EC85)如EC79之設備,其中該記憶體胞損壞係氧化物陷阱及氧化物崩潰之一或多者之一結果。
EC86)如EC79之設備,其中該測量硬體邏輯電路包括:判定硬體邏輯電路,其經啟用以判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果;及損壞偵測硬體邏輯電路,其經啟用以偵測到該錯誤係一損壞記憶體胞之一結果。
EC87)如EC86之設備,其中該判定硬體邏輯電路包括:經啟用以將正向錯誤校正解碼應用於該特定部分之一子部分之解碼硬體邏輯電路,該子部分包括該等記憶體胞之該至少一者。
EC88)如EC86之設備,其中該錯誤係裝置臨限電壓之單向移位之 一結果。
EC89)如EC88之設備,其中該等單向移位包括:下部頁之一特定單向移位。
EC90)如EC88之設備,其中該等單向移位包括:上部頁之兩個特定單向移位。
EC91)如EC86之設備,其中該損壞偵測硬體邏輯電路包括:經啟用以重新程式化及/或擦除該特定部分之至少一子部分且回讀該等記憶體胞之該至少一者之重試硬體邏輯電路,且該子部分包括該等記憶體胞之該至少一者。
EC92)如EC91之設備,其中該重試硬體邏輯電路進一步經啟用以偵測一保持故障。
EC93)如EC86之設備,其中該損壞偵測硬體邏輯電路經啟用以偵測到該錯誤係除保持故障外之一結果。
EC94)如EC86之設備,其中該測量硬體邏輯電路進一步包括:經啟用以更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器之計數器硬體邏輯電路:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及該特定部分。
EC95)如EC94之設備,其中各子部分包括一各自頁。
EC96)如EC94之設備,其中該測量硬體邏輯電路之該等至少一些結果包括該記憶體胞損壞計數器之一值。
EC97)如EC94之設備,其中該平均抹除硬體邏輯電路包括經啟用以至少部分基於與該等部分相關聯之該等記憶體胞損壞計數器之值選擇待寫入之該等部分之若干者之選擇硬體邏輯電路。
EC98)如EC97之設備,其中該等記憶體胞損壞計數器係部分特定記憶體胞損壞計數器,且該等部分特定記憶體胞損壞計數器之該等值中對應於該等部分之一特定者之至少一特定值係包括該特定部分之一或多個子部分之各自子部分特定記憶體胞損壞計數器之各自值之一彙總。
EC99)如EC97之設備,其中該選擇硬體邏輯電路進一步經啟用以基於一記憶體胞損壞臨限值進行選擇。
EC100)如EC99之設備,其中該記憶體胞損壞臨限值可程式化。
EC101)如EC100之設備,其中在一第一時間點將該記憶體胞損壞臨限值程式化為一第一值且在一第二時間點將其程式化為不同於該第一值之一第二值。
EC102)如EC79之設備,其中各部分包括一各自區塊。
EC103)如EC79之設備,其中該NVM包括一或多個快閃記憶體。
EC104)如EC79之設備,其進一步包括可與一儲存器介面標準相容且經啟用以與一主機傳遞資訊之一儲存器介面,該資訊經由操作包括在該設備中之一快閃記憶體介面而至少部分自該NVM之一或多個位置獲得。
EC105)具有或涉及一儲存器介面標準之任何前述EC,其中該儲存器介面標準包括以下一或多者:一通用串列匯流排(USB)介面標準,一緊密快閃記憶體(CF)介面標準,一多媒體卡(MMC)介面標準,一嵌入式多媒體卡(eMMC)介面標準,一Thunderbolt介面標準,一UFS介面標準一安全數位(SD)介面標準, 一記憶棒介面標準,一xD圖像卡介面標準,一整合驅動電子(IDE)介面標準,一串列進階附接技術(SATA)介面標準,一外部SATA(eSATA)介面標準,一小型電腦系統介面(SCSI)介面標準,一串列附接小型電腦系統介面(SAS)介面標準,一光纖通道介面標準,一乙太網路介面標準,及一快速周邊組件互連(PCIe)介面標準。
EC106)具有或涉及一快閃記憶體介面之任何前述EC,其中該快閃記憶體介面可與以下一或多者相容:一開放式NAND快閃介面(ONFI),一雙態觸變模式介面,一雙倍資料速率(DDR)同步介面,一DDR2同步介面,一同步介面,及一非同步介面。
EC107)具有或涉及一主機之任何前述EC,其中該主機包括以下一或多者:一電腦,一工作站電腦,一伺服器電腦,一儲存伺服器,一儲存附接網路(SAN),一網路附接儲存(NAS)裝置, 一直接附接儲存(DAS)裝置,一儲存器具,一個人電腦(PC),一膝上型電腦,一筆記型電腦,一小筆電電腦,一平板裝置或電腦,一超輕薄筆記型電腦,一電子閱讀裝置(一電子閱讀器),一個人數位助理(PDA),一導航系統,一(手持式)全球定位系統(GPS)裝置,一汽車控制系統,一汽車媒體控制系統或電腦,一印表機、影印機或傳真機或一體式裝置,一銷售點(POS)裝置,一收銀機,一媒體播放器,一電視機,一媒體記錄器,一數位視訊錄影機(DVR),一數位相機,一蜂巢式手機,一無線電話手機,及一電子遊戲機。
EC108)具有或涉及至少一快閃記憶體之任何前述EC,其中該至 少一快閃記憶體裝置之至少一部分包括以下一或多者:NAND快閃技術儲存記憶體胞,及NOR快閃技術儲存記憶體胞。
EC109)具有或涉及至少一快閃記憶體之任何前述EC,其中該至少一快閃記憶體裝置之至少一部分包括以下一或多者:單位階記憶體胞(SLC)快閃技術儲存記憶體胞,及多位階記憶體胞(MLC)快閃技術儲存記憶體胞。
EC110)具有或涉及至少一快閃記憶體之任何前述EC,其中該至少一快閃記憶體之至少一部分包括以下一或多者:基於多晶矽技術之電荷儲存記憶體胞,及基於氮化矽技術之電荷儲存記憶體胞。
EC111)具有或涉及至少一快閃記憶體之任何前述EC,其中該至少一快閃記憶體之至少一部分包括以下一或多者:基於二維技術之快閃記憶體技術,及基於三維技術之快閃記憶體技術。
系統
在一些實施例中,諸如SSD之I/O裝置包含SSD控制器。SSD控制器充當SSD之主機介面與NVM之間之橋接器,且執行經由SSD之主機介面自計算主機發送之一主機協定之命令。該等命令之至少一些命令引導SSD分別使用自計算主機發送及發送至計算主機之資料寫入並讀取NVM。在進一步實施例中,啟用SSD控制器以使用一映射以在主機協定之LBA與NVM中之實體儲存位址之間進行轉譯。在進一步實施例中,映射之至少一部分係用於I/O裝置之私用儲存(計算主機不可見)。例如,由I/O裝置使用不可由計算主機存取之LBA之一部分以管理對日誌、統計資料或其他私用資料之存取。
在一些實施例中,存取NVM中變化大小之配量的壓縮資料在一 些使用案例中提供改良之儲存效率。例如,一SSD控制器自一計算主機接收(未經壓縮之)資料(例如,與一磁碟寫入命令相關),壓縮該資料,且將經壓縮之資料儲存至快閃記憶體中。回應於來自計算主機之一後續請求(例如,與一磁碟讀取命令相關),SSD控制器自快閃記憶體讀取經壓縮之資料,解壓縮該經壓縮之資料,且將經解壓縮之資料提供至計算主機。根據變化大小之配量將經壓縮之資料儲存在快閃記憶體中,配量大小歸因於(例如)關於各種資料之壓縮演算法、操作模式及壓縮效率而變化。SSD控制器部分藉由查閱所包含之映射表而解壓縮資料以判定(若干)標頭儲存於快閃記憶體中何處。SSD控制器剖析自快閃記憶體獲得之標頭以判定適當(經壓縮之)資料儲存於快閃記憶體中何處。SSD控制器解壓縮來自快閃記憶體之適當資料以產生經解壓縮之資料以提供至計算主機。在本申請案中,解壓縮(uncompress)(及其變體)與解除壓縮(decompress)(及其變體)同義。
在各種實施例中,SSD控制器包含用於與一計算主機介接之一主機介面、用於與諸如快閃記憶體之NVM介接之一介面及用於控制該等介面並執行(及/或控制該執行之各種態樣)壓縮及解壓縮以及較低階冗餘及/或錯誤校正、較高階冗餘及/或錯誤校正及使用獨立矽元件進行之動態較高階冗餘模式管理之電路。
根據各種實施例,一些主機介面可與以下一或多者相容:USB介面標準、CF介面標準、MMC介面標準、eMMC介面標準、Thunderbolt)介面標準、UFS介面標準、SD介面標準、記憶棒介面標準、xD圖像卡介面標準、IDE介面標準、SATA介面標準、SCSI介面標準、SAS介面標準及PCIe介面標準。根據各種實施例,計算主機係以下各者之全部或任何部分:電腦、工作站電腦、伺服器電腦、儲存伺服器、SAN、NAS裝置、DAS裝置、儲存器具、PC、膝上型電腦、筆記型電腦、小筆電電腦、平板裝置或電腦、超輕薄筆記型電腦、電 子閱讀裝置(諸如電子閱讀器)、PDA、導航系統、(手持式)GPS裝置、汽車控制系統、汽車媒體控制系統或電腦、印表機、影印機或傳真機或一體式裝置、POS裝置、收銀機、媒體播放器、電視機、媒體記錄器、DVR、數位相機、蜂巢式手機、無線電話手機及電子遊戲機。在一些實施例中,一介接主機(諸如SAS/SATA橋接器)操作為一計算主機及/或一計算主機之一橋接器。
在各種實施例中,SSD控制器包含一或多個處理器。該等處理器執行韌體以控制及/或執行SSD控制器之操作。SSD控制器與計算主機通信以發送及接收命令及/或狀態以及資料。計算主機執行作業系統、驅動程式及應用程式之一或多者。藉由計算主機與SSD控制器進行的通信視情況及/或選擇性地經由驅動程式及/或應用程式而進行。在第一實例中,至SSD控制器之所有通信係經由驅動程式進行,且應用程式將較高階命令提供至驅動程式,該驅動程式將該等命令轉譯為用於SSD控制器之特定命令。在第二實例中,驅動程式實施旁路模式且應用程式經啟用以經由驅動程式將特定命令發送至SSD控制器。在第三實例中,PCIe SSD控制器支援一或多個虛擬函式(VF),從而使應用程式(一旦經組態)能夠旁通驅動程式直接與SSD控制器通信。
根據各種實施例,一些SSD可與由磁性及/或光學非揮發性儲存器(諸如HDD、CD磁碟機及DVD磁碟機)使用之外觀尺寸、電介面及/或協定相容。在各種實施例中,SSD使用零或多個同位碼、零或多個RS碼、零或多個BCH碼、零或多個維特比(Viterbi)碼或其他格狀碼(trellis code)及零或多個LDPC碼之各種組合。
圖1A圖解說明SSD 101之實施例之選定細節,SSD 101包含測量非揮發性記憶體(NVM)元件(例如,快閃記憶體)之平均抹除之記憶體胞損壞之SSD控制器100。SSD控制器100經由一或多個外部介面110通信地耦合至一主機(未圖解說明),諸如圖1B之主機102。根據各種實 施例,外部介面110係以下一或多者:SATA介面;SAS介面;PCIe介面;光纖通道介面;乙太網路介面(諸如百億位元(Gigabit)乙太網路);任何前述介面之非標準版本;自訂介面;或用以將儲存及/或通信及/或計算裝置互連之任何其他類型之介面。例如,在一些實施例中,SSD控制器100包含SATA介面及PCIe介面。
SSD控制器100經由一或多個裝置介面190進一步通信地耦合至包含一或多個儲存裝置(諸如,快閃裝置192之一或多個例項)之NVM 199。根據各種實施例,裝置介面190係以下一或多者:非同步介面;同步介面;單倍資料速率(SDR)介面;雙倍資料速率(DDR)介面;DRAM相容之DDR或DDR2同步介面;ONFI相容介面,諸如ONFI 2.2或ONFI 3.0相容介面;雙態觸變模式相容之快閃介面;任何前述介面之非標準版本;自訂介面;或用以連接至儲存裝置之任何其他類型之介面。
在一些實施例中,各快閃裝置192具有一或多個個別快閃晶粒194。根據快閃裝置192之一特定者之類型,該特定快閃裝置192中之複數個快閃晶粒194可視情況及/或選擇性地並行存取。快閃裝置192僅表示經啟用以通信地耦合至SSD控制器100之一種類型的儲存裝置。在各種實施例中,可使用任何類型的儲存裝置,諸如SLC NAND快閃記憶體、MLC NAND快閃記憶體、NOR快閃記憶體、使用基於多晶矽或氮化矽技術之電荷儲存記憶體胞之快閃記憶體、基於二維或三維技術之快閃記憶體、唯讀記憶體、靜態隨機存取記憶體、動態隨機存取記憶體、鐵磁性記憶體、相變記憶體、賽道記憶體、ReRAM或任何其他類型的記憶體裝置或儲存媒體。
根據各種實施例,將裝置介面190組織為:一或多個匯流排,每個匯流排具有快閃裝置192之一或多個例項;一或多個匯流排群組,每個匯流排具有快閃裝置192之一或多個例項,一群組中之匯流排大 體上經並行存取;或快閃裝置192之一或多個例項至裝置介面190上之任何其他組織。
在圖1A中繼續,SSD控制器100具有一或多個模組,諸如主機介面111、資料處理121、緩衝器131、映射141、回收器151、ECC 161、裝置介面邏輯191及CPU 171。圖1A中圖解說明之特定模組及互連僅僅表示一實施例,且設想一些或全部該等模組以及未圖解說明之額外模組之許多配置及互連。在第一實例中,在一些實施例中,存在兩個或兩個以上主機介面111以提供雙埠。在第二實例中,在一些實施例中,資料處理121及/或ECC 161與緩衝器131組合。在第三實例中,在一些實施例中,主機介面111直接耦合至緩衝器131,且資料處理121視情況及/或選擇性地操作儲存於緩衝器131中之資料。在第四實例中,在一些實施例中,裝置介面邏輯191直接耦合至緩衝器131,且ECC 161視情況及/或選擇性地操作儲存於緩衝器131中之資料。
主機介面111經由外部介面110發送及接收命令及/或資料,且在一些實施例中,經由標籤追蹤113追蹤個別命令之進展。例如,該等命令包含指定待讀取之一位址(諸如LBA)及資料量(諸如LBA配量(例如,磁區)之數目)之讀取命令;作為回應,SSD提供讀取狀態及/或讀取資料。另舉例而言,該等命令包含指定待寫入之位址(諸如LBA)及資料量(諸如LBA配量(例如,磁區)之數目)之寫入命令;作為回應,SSD提供寫入狀態及/或請求寫入資料且視情況隨後提供寫入狀態。再舉例而言,該等命令包含指定不再需要被分配之一或多個位址(諸如一或多個LBA)之解除分配命令(例如,修整(trim)命令);作為回應,SSD相應地修改映射且視情況提供解除分配狀態。在一些內容脈絡中,ATA相容TRIM命令係一例示性解除分配命令。再舉例而言,該等命令包含超級電容器測試命令或資料強化成功查詢;作為回應,SSD提供適當狀態。在一些實施例中,主機介面111可與一SATA協定 相容,且使用NCQ命令,使主機介面111能夠具有至多32個待決命令,其中各待決命令具有表示為自0至31之數字之一獨有標籤。在一些實施例中,啟用標籤追蹤113以使用於經由外部介面110接收之一命令之一外部標籤與用以在藉由SSD控制器100處理期間追蹤命令之一內部標籤相關聯。
根據各種實施例,實現以下情形之一或多者:資料處理121視情況及/或選擇性地處理在緩衝器131與外部介面110之間發送之一些或所有資料;及資料處理121視情況及/或選擇性地處理儲存於緩衝器131中之資料。在一些實施例中,資料處理121使用一或多個引擎123以執行以下一或多者:格式化;重新格式化;轉碼;及任何其他資料處理及/或操縱任務。
緩衝器131儲存自裝置介面190發送至外部介面110之資料及自外部介面110發送至裝置介面190之資料。在一些實施例中,緩衝器131額外地儲存由SSD控制器100使用以管理快閃裝置192之一或多個例項之系統資料,諸如一些或所有映射表。在各種實施例中,緩衝器131具有以下一或多者:用於暫時儲存資料之記憶體137;用以控制資料移動至緩衝器131及/或自緩衝器131移動資料之DMA 133;及用以提供較高階錯誤校正及/或冗餘功能之ECC-X 135;及其他資料移動及/或操縱功能。較高階冗餘功能之實例係類似RAID之能力(例如,RASIE),其中冗餘處於快閃記憶體裝置層級(例如,快閃裝置192之多者)及/或快閃晶粒層級(例如,快閃晶粒194)而非處於磁碟層級。
根據各種實施例,實現以下情形之一或多者:ECC 161視情況及/或選擇性地處理在緩衝器131與裝置介面190之間發送之一些或所有資料;及ECC 161視情況及/或選擇性地處理儲存於緩衝器131中之資料。在一些實施例中,ECC 161用以(諸如)根據一或多種ECC技術提供較低階錯誤校正及/或冗餘功能。在一些實施例,ECC 161實施以下 一或多者:CRC碼;漢明碼;RS碼;BCH碼;LDPC碼;維特比碼;格狀碼;硬決策碼;軟決策碼;基於抹除之碼;任何錯誤偵測及/或校正碼;及前述碼之任何組合。在一些實施例中,ECC 161包含一或多個解碼器(諸如,LDPC解碼器)。
裝置介面邏輯191經由裝置介面190控制快閃裝置192之例項。啟用裝置介面邏輯191以根據快閃裝置192之協定發送資料至快閃裝置192之例項/自快閃裝置192之例項發送資料。裝置介面邏輯191包含用以經由裝置介面190選擇性地循序控制快閃裝置192之例項之排程193。例如,在一些實施例中,啟用排程193以將對快閃裝置192之例項之操作排入佇列,且當快閃裝置192(或快閃晶粒194)之例項之個別例項可用時,選擇性地將該等操作發送至快閃裝置192(或快閃晶粒194)之例項之個別例項。
映射141使用將外部資料位址映射至NVM 199中之位置的表143而在用於外部介面110上之資料定址與用於裝置介面190上之資料定址之間轉換。例如,在一些實施例中,映射141經由藉由表143提供之映射將用於外部介面110上之LBA轉換為以一或多個快閃晶粒194為目標之區塊及/或頁位址。對於自磁碟機製造或解除分配以來從未被寫入之LBA,映射指向在讀取LBA之情況下傳回之預設值。例如,當處理一解除分配命令時,該映射經修改使得對應於經解除分配之LBA之項目指向預設值之一者。在各種實施例中,存在各種預設值,各預設值具有一對應指標。該複數個預設值能夠將一些經解除分配之LBA(諸如在第一範圍中)讀取為一預設值,而將其他經解除分配之LBA(諸如在第二範圍中)讀取為另一預設值。在各種實施例中,藉由快閃記憶體、硬體、韌體、命令及/或原始引數及/或參數、可程式化暫存器或其等之各種組合而定義該等預設值。
在一些實施例中,映射141使用表143以執行及/或查找用於外部 介面110上之位址與用於裝置介面190上之資料定址之間的轉譯。根據各種實施例,表143係以下一或多者:單階映射;雙階映射;多階映射;映射快取;壓縮之映射;自一位址空間至另一位址空間之任何類型的映射;及前述各者之任何組合。根據各種實施例,表143包含以下一或多者:靜態隨機存取記憶體;動態隨機存取記憶體;NVM(諸如快閃記憶體);快取記憶體;晶片上記憶體;晶片外記憶體;及前述各者之任何組合。
在一些實施例中,回收器151執行記憶體回收(garbage collection)。例如,在一些實施例中,快閃裝置192之例項含有必須在區塊可重新寫入之前抹除之區塊。啟用回收器151以(諸如)藉由掃描由映射141維持之映射而判定快閃裝置192之例項之哪些部分正在使用中(例如,經分配而非解除分配),且藉由抹除快閃裝置192之例項之未使用(例如,解除分配)部分而使其可用於寫入。在進一步實施例中,啟用該回收器151以移動儲存於快閃裝置192之例項內之資料以使快閃裝置192之例項之較大連續部分可用於寫入。
在一些實施例中,選擇性地及/或動態地組態、管理及/或使用快閃裝置192之例項,以具有用於儲存不同類型及/或性質之資料之一或多個帶(band)。可動態地改變帶之數目、配置、大小及類型。例如,將來自計算主機之資料寫入至熱(作用)帶,而將來自回收器151之資料寫入至冷(較少作用)帶。在一些使用案例中,若計算主機寫入一長循序串流,則熱帶之大小增長,而若計算主機進行隨機寫入或很少寫入,則冷帶之大小增長。
CPU 171控制SSD控制器100之各個部分。CPU 171包含CPU核心172。根據各種實施例,CPU核心172係一或多個單核心或多核心處理器。在一些實施例中,CPU核心172中之個別處理器核心係多執行緒式。CPU核心172包含指令及/或資料快取區及/或記憶體。例如,指令 記憶體含有使CPU核心172能夠執行程式(例如,軟體(有時稱為韌體))以控制SSD控制器100之指令。在一些實施例中,由CPU核心172執行之一些或所有韌體儲存在快閃裝置192之例項(如圖解說明為(例如)圖1B中之NVM 199之韌體106)上。
在各種實施例中,CPU 171進一步包含:命令管理173,其用以在經由外部介面110接收之命令在進行中時追蹤並控制該等命令;緩衝器管理175,其用以控制緩衝器131之分配及使用;轉譯管理177,其用以控制映射141;連貫性管理179,其用以控制資料定址之一致性且避免(諸如)外部資料存取與回收資料存取之間的衝突;裝置管理181,其用以控制裝置介面邏輯191;識別碼管理182,其用以控制識別資訊之修改及通信;及視情況其他管理單元。根據各種實施例,由CPU 171執行之管理功能中無一者、任一者或全部係藉由硬體、軟體(諸如,在CPU核心172上或在經由外部介面110連接之主機上執行之韌體)或其任何組合而控制及/或管理。
在一些實施例中,啟用CPU 171以執行其他管理任務,諸如以下一或多者:蒐集及/或報告效能統計資料;實施SMART;控制電源定序(power sequencing)、控制及/或監控及/或調整功率消耗;回應於電源故障;控制及/或監控及/或調整時脈速率;及其他管理任務。
各種實施例包含一計算主機快閃記憶體控制器,其類似於SSD控制器100且(諸如)可經由主機介面111及/或外部介面110之調適而與各種計算主機之操作相容。各種計算主機包含以下之一或任何組合:電腦、工作站電腦、伺服器電腦、儲存伺服器、SAN、NAS裝置、DAS裝置、儲存器具、PC、膝上型電腦、筆記型電腦、小筆電電腦、平板裝置或電腦、超輕薄筆記型電腦、電子閱讀裝置(諸如,電子閱讀器)、PDA、導航系統、(手持式)GPS裝置、汽車控制系統、汽車媒體控制系統或電腦、印表機、影印機或傳真機或一體式裝置、POS裝 置、收銀機、媒體播放器、電視機、媒體記錄器、DVR、數位相機、蜂巢式手機、無線電話手機及電子遊戲機。
在各種實施例中,在單個IC、多晶粒IC之單個晶粒、多晶粒IC之複數個晶粒或複數個IC上實施SSD控制器(或計算主機快閃記憶體控制器)之全部或任何部分。例如,在與SSD控制器100之其他元件相同之晶粒上實施緩衝器131。另舉例而言,在不同於SSD控制器100之其他元件之晶粒上實施緩衝器131。
圖1B圖解說明包含圖1A之SSD之一或多個例項之系統之各種實施例之選定細節。SSD 101包含經由裝置介面190耦合至NVM 199之SSD控制器100。圖1B圖解說明各種類別的實施例:直接耦合至主機之單個SSD;分別經由各自外部介面直接耦合至主機之複數個SSD;及經由各種互連元件間接地耦合至主機之一或多個SSD。
作為直接耦合至主機之單個SSD之例示性實施例,SSD 101之例項經由外部介面110直接耦合至主機102(例如,省略、旁通或直通交換機/網狀結構/中間控制器103)。作為各經由各自外部介面直接耦合至主機之複數個SSD之例示性實施例,SSD 101之複數個例項之各者分別經由外部介面110之各自例項直接耦合至主機102(例如,省略、旁通或直通交換機/網狀結構/中間控制器103)。作為經由各種互連元件間接地耦合至主機之一或多個SSD之例示性實施例,SSD 101之一或多個例項之各者分別間接地耦合至主機102。各間接耦合係經由耦合至交換機/網狀結構/中間控制器103之外部介面110之各自例項及耦合至主機102之中間介面104。
包含交換機/網狀結構/中間控制器103之一些實施例亦包含經由記憶體介面180耦合且可藉由SSD存取之卡式記憶體112C。在各種實施例中,SSD、交換機/網狀結構/中間控制器及/或卡式記憶體之一或多者包含於一實體可識別模組、卡或可***元件(例如,I/O卡116) 上。在一些實施例中,SSD 101(或其變動)對應於耦合至操作為主機102之一起始器之SAS磁碟機或SATA磁碟機。
啟用主機102以執行主機軟體115之各種元件,諸如OS 105、驅動程式107、應用程式109及多裝置管理軟體114之各種組合。虛線箭頭107D表示主機軟體←→I/O裝置通信,例如往返於SSD 101之例項之一或多者發送/接收資料,以及往返於OS 105(經由驅動程式107)、驅動程式107及應用程式109(經由驅動程式107或直接作為VF)之任一或多者發送/接收資料。
OS 105包含驅動程式(概念上藉由驅動程式107圖解說明)及/或經啟用以與該驅動程式一起操作以用於與SSD介接。各種版本的Windows(例如,95、98、ME、NT、XP、2000、Server、Vista及7)、各種版本的Linux(例如,Red Hat、Debian及Ubuntu)及各種版本的MacOS(例如,8、9及X)係OS 105之實例。在各種實施例中,驅動程式係可與標準介面及/或協定(諸如,SATA、AHCI或快速NVM)一起操作之標準及/或泛型(generic)驅動程式(有時稱為「現成套裝」(shrink-wrapped)或「預安裝」),或視情況經客製化及/或特定於廠商以能夠使用特定於SSD 101之命令。一些磁碟機及/或驅動程式具有直通模式以經由最佳化NAND存取(有時稱為ONA)或直接NAND存取(有時稱為DNA)技術啟用應用程式層級程式(諸如,應用程式109)而將命令直接傳遞至SSD 101,從而即使使用一泛型驅動程式亦使一客製化應用程式能夠使用特定於SSD 101之命令。ONA技術包含以下一或多者:使用非標準修改程式(modifier)(提示);使用廠商特定命令;傳遞非標準統計資料(諸如,根據壓縮率之實際NVM使用);及其他技術。DNA技術包含以下一或多者:使用提供對NVM之未經映射讀取、寫入及/或抹除存取之非標準命令或廠商特定命令;使用提供更直接存取NVM之非標準命令或廠商特定命令(諸如,藉由旁通I/O裝置原本進行的資 料格式化);及其他技術。驅動程式之實例係無ONA或DNA支援之驅動程式、啟用ONA之驅動程式、啟用DNA之驅動程式及啟用ONA/DNA之驅動程式。驅動程式之進一步實例係:廠商提供、廠商開發及/或廠商增強型驅動程式;及用戶端提供、用戶端開發及/或用戶端增強型驅動程式。
應用程式層級程式之實例係無ONA或DNA支援之應用程式、啟用ONA之應用程式、啟用DNA之應用程式及啟用ONA/DNA之應用程式。虛線箭頭109D表示應用程式←→I/O裝置通信(例如,經由驅動程式旁通或經由用於應用程式之VF旁通),例如啟用ONA之應用程式及啟用ONA之驅動程式在無使用OS作為媒介之應用程式的情況下與SSD通信。虛線箭頭109V表示應用程式←→I/O裝置通信(例如,經由用於應用程式之VF旁通),例如啟用DNA之應用程式及啟用DNA之驅動程式(諸如)在無使用OS或驅動程式作為媒介之應用程式的情況下與SSD通信。
在一些實施例中,NVM 199之一或多個部分係用於韌體儲存,例如韌體106。韌體儲存包含一或多個韌體影像(或其部分)。例如,韌體影像具有(例如)藉由SSD控制器100之CPU核心172執行之韌體之一或多個影像。另舉例而言,韌體影像具有(例如)在韌體執行期間由CPU核心參考之常數、參數值及NVM裝置資訊之一或多個影像。韌體之影像對應於(例如)當前韌體影像及零或多個先前(相對於韌體更新)韌體影像。在各種實施例中,韌體提供泛型、標準、ONA及或DNA操作模式。在一些實施例中,經由視情況由驅動程式傳遞及/或提供之密鑰或各種軟體技術而啟用韌體操作模式之一或多者(例如,「解鎖」一或多個API)。
在缺少交換機/網狀結構/中間控制器之一些實施例中,SSD經由外部介面110直接耦合至主機。在各種實施例中,SSD控制器100經由 其他控制器(諸如RAID控制器)之一或多個中間層級耦合至主機。在一些實施例中,SSD 101(或其變動)對應於SAS磁碟機或SATA磁碟機,且交換機/網狀結構/中間控制器103對應於繼而耦合至起始器之擴展器,或替代地交換機/網狀結構/中間控制器103對應於經由擴展器間接地耦合至起始器之橋接器。在一些實施例中,交換機/網狀結構/中間控制器103包含一或多個PCIe交換機及/或網狀結構。
在各種實施例(諸如其中主機102係計算主機(例如,電腦、工作站電腦、伺服器電腦、儲存伺服器、SAN、NAS裝置、DAS裝置、儲存器具、PC、膝上型電腦、筆記型電腦及/或小筆電電腦)之一些實施例)中,視情況啟用計算主機以(例如,經由選用I/O及儲存裝置/資源117及選用LAN/WAN 119)與一或多個本端及/或遠端伺服器(例如,選用伺服器118)通信。例如,該通信實現(例如)對SSD 101元件之任何一或多者的本端及/或遠端存取、管理及/或使用。在一些實施例中,該通信係全部或部分經由乙太網路進行。在一些實施例中,該通信係全部或部分經由光纖通道進行。在各種實施例中,LAN/WAN 119表示一或多個區域網路及/或廣域網路,諸如伺服器群中之網路、耦合伺服器群之網路、都會區域網路及網際網路之任何一或多者。
在各種實施例中,與一或多個NVM組合之SSD控制器及/或計算主機快閃記憶體控制器實施為非揮發性儲存組件,諸如USB儲存組件、CF儲存組件、MMC儲存組件、eMMC儲存組件、霹靂儲存組件、UFS儲存組件、SD儲存組件、記憶棒儲存組件及xD圖像卡儲存組件。
在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之全部或任何部分或其功能實施於控制器待耦合之主機(例如,圖1B之主機102)中。在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之全部或任何部分或其功能經由硬體(例如,邏輯電路)、軟體及 /或韌體(例如,驅動程式軟體或SSD控制韌體)或其等之任何組合實施。例如,ECC單元(諸如,類似於圖1A之ECC 161及/或ECC-X 135)之功能性或與其相關聯之功能性部分經由主機上之軟體實施且部分經由SSD控制器中之韌體與硬體之組合實施。另舉例而言,回收器單元(諸如,類似於圖1A之回收器151)之功能性或與其相關聯之功能性部分經由主機上之軟體實施且部分經由計算主機快閃記憶體控制器中之硬體實施。
記憶體胞損壞測量
圖2A及圖2B在概念上圖解說明與記憶體胞損壞測量相關之裝置臨限電壓分佈。為此論述之目的,各山狀凸塊係表示NVM之讀取單位大小的部分之一各自狀態之一裝置臨限電壓概率分佈之一獨立類高斯曲線之一抽象概念。繪製正電壓朝向右側增大之裝置臨限電壓軸。並未刻意地提供一絕對標度且不識別參考點,使得標繪圖更普遍適用於一更大NVM群體。圖2A及圖2B用一特定編碼方案在概念上圖解說明每記憶體胞儲存兩個位元之一4LC記憶體。存在編碼四個狀態(分別為11、01、00、10)之四個臨限電壓分佈(E 200、D1 201、D2 202及D3 203)。
圖2A係下部頁特定,而圖2B係上部頁特定。MLC下部頁臨限值211左側之記憶體胞具有一下部頁值「1」,而MLC下部頁臨限值右側之記憶體胞具有一下部頁值「0」。在各種實施例及/或使用案例中,記憶體胞錯誤係由程式化期間之電壓過衝引起。在經圖解說明之編碼方案中,記憶體胞錯誤引起一記憶體胞自MLC下部頁狀態221單向移位至經移位MLC下部頁狀態231,且自值「1」(例如,D1)變化為值「0」(例如,D2)。對於圖2A中圖解說明之編碼,隨著電荷自記憶體胞洩漏,一下部頁保持錯誤將引起反向移位(例如,自D2至D1)。
在圖2B中,MLC上部頁第一臨限值210左側之記憶體胞及MLC上 部頁第二臨限值212右側之記憶體胞具有一上部頁值「1」。MLC第一上部頁臨限值與MLC第二上部頁臨限值之間的記憶體胞具有值「0」。在此編碼方案中,記憶體胞錯誤亦引起裝置臨限電壓之單向移位。例如,記憶體胞錯誤引起MLC上部頁第一狀態220單向移位至經移位MLC上部頁第一狀態230且自值「1」(E)變化為值「0」(D1)。記憶體胞錯誤引起MLC上部頁第二狀態222單向移位至經移位MLC上部頁第二狀態232且自值「0」(D2)變化為值「1」(D3)。對於圖2B中圖解說明之編碼,上部頁保持錯誤將分別引起反向單向移位(例如,自D1至E,或自D3至D2)。
記憶體胞損壞以多種方式顯現,包含未能完全擦除記憶體胞(在擦除之後未完全返回至E200)、未能適當程式化(在程式化之後未達到或超越D1 201、D2 202及D3 203之一判定者)、無法維持電荷(例如,過度洩漏)、物理故障(諸如短路或開路)及其他原因。
記憶體胞損壞測量之功能
圖3提供圖1A及圖1B之SSD 101、SSD控制器100及NVM 199之替代視圖,重新繪製選定邏輯區塊邊界以強調特定功能。SSD 101在最頂層包含外部介面110、SSD控制器100、NVM 199及裝置介面190。
外部介面110耦合至一主機,諸如圖1B之主機102,且支援諸如SATA之一高階儲存協定,包含來源於主機之儲存器相關命令及寫入資料及來源於控制器之讀取資料,且在圖1A之上文論述中加以詳述。如圖1A之上文論述中詳述般,裝置介面190支援低層級NVM I/O異動。NVM 199包含NVM陣列332、可程式化讀取電壓電路334、控制/狀態暫存器336及I/O 338。SSD控制器100之特徵為主機介面111、擾碼器310、ECC編碼器320、裝置介面邏輯191、緩衝器131、ECC解碼器360、解擾碼器370及記憶體胞損壞計數器380。主機介面111如先前論述般經由外部介面110與主機耦合,提供寫入資料306至擾碼器 310且自緩衝器131接收讀取資料351。
寫入路徑及功能性如下。擾碼器310操作寫入資料306以產生至ECC編碼器320之經擾碼寫入資料311。擾碼器310以一可逆方式擾碼寫入資料306且使得經擾碼寫入資料311具有所儲存的一已知統計狀態分佈。包含經擾碼資料之一區塊之一實例係含有經擾碼寫入資料311之一區塊。例如,包含經擾碼資料之一SLC區塊含有統計上相等數目個「0」及「1」值,且包含經擾碼資料之一4LC區塊含有統計上相等數目個「00」、「01」、「10」及「11」狀態。統計上相等意謂當對大量樣本求平均值時,結果將等效於狀態之一均勻分佈所預期的結果。例如,投擲硬幣1百萬次導致統計上相等數目個正面及反面,但是在任一樣本中正面及反面之實際數目在數字上可能不相等。
在一些實施例中,擾碼器310諸如經由將資料隨機化為一加密副產物之一AES編碼器執行加密。在一些實施例中,擾碼器310使用一線性回饋移位暫存器(LFSR)以隨機化該資料(但不具備任何資料安全意圖)。ECC編碼器320處理經擾碼寫入資料311以添加額外ECC位元,從而導致經ECC編碼之寫入資料321,經由裝置介面190提供該寫入資料321至裝置邏輯191以儲存至NVM 199中。
基本讀取路徑及功能性如下。經由裝置介面190自NVM 199接收包含未經校正且經擾碼之(原始)讀取資料359之NVM頁。繼續關於圖3,各讀取單位標稱地包含藉由擾碼器301擾碼之資料以及由ECC編碼器320產生之額外ECC位元,但是大體上由於NVM儲存及擷取操作而非刻意地變更。經由緩衝器131提供該等讀取單位至ECC解碼器360。ECC解碼器360處理該等讀取單位,善用所包含的額外ECC位元以大體上校正自首先ECC編碼該資料以來的任何時間點出現的任何錯誤,從而導致提供至解擾碼器370之經校正讀取資料361。解擾碼器370操作經校正之讀取資料361,從而撤除藉由擾碼器310執行之擾碼,導致 未經擾碼之讀取資料371,其經由緩衝器131作為讀取資料351提供至主機介面111。
在各種實施例中,記憶體胞損壞計數器380與讀取路徑及寫入路徑互動以追蹤NVM之頁及/或區塊之記憶體胞損壞。具體言之,當SSD控制器偵測到一錯誤係由記憶體胞損壞引起時,ECC解碼器發送記憶體胞損壞更新362以更新記憶體胞損壞計數器之一或多個值。在一些實施例中,至少部分基於記憶體胞損壞計數器之一或多個值而對NVM之區塊寫入。在各種實施例中,記憶體胞損壞計數器之值追蹤NVM之頁及/或NVM之區塊之一或多者中損壞記憶體胞之數目。在一些實施例中,記憶體胞損壞計數器之值藉由加總NVM之一區塊所包含的NVM之頁中之損壞記憶體胞的數目而追蹤該區塊中之損壞記憶體胞的數目。
圖3圖解說明在主機操作為寫入至且讀取自NVM 199之資料之來源及接收器(sink)之內容脈絡下記憶體胞損壞測量之功能。在各種實施例中(諸如藉由圖1A及圖1B圖解說明),一或多個其他代理程式(agent)操作為寫入至且讀取自NVM 199之資料之來源及接收器。該等其他代理程式之一實例係圖1A之回收器151,該回收器151將資料自NVM 199中之一位置移動至另一位置,如本文別處所述。
在各種實施例中,至少部分使用(圖1A之)資料處理121及ECC 161之一或多者實施與擾碼器310、ECC編碼器320、ECC解碼器360及解擾碼器370之任何一或多者相關聯之功能性之任何或所有部分。
測量記憶體胞損壞之控制流程
圖4圖解說明圖1A、圖1B及圖3之SSD之一實施例之選定控制流程細節,提供關於測量記憶體胞損壞之特定細節。集中論述測量NVM之下部頁之記憶體胞損壞。然而,亦預期測量NVM之任何(例如,上部)頁之記憶體胞損壞。
在一些案例中,當讀取NVM之一頁時發生一錯誤。當偵測到一頁讀取錯誤時,SSD控制器應用FEC解碼(例如,藉由ECC解碼器進行ECC解碼或LDPC解碼)以校正該錯誤。一旦FEC解碼成功401,便判定錯誤類型。若該錯誤滿足一條件402,則該錯誤可能由記憶體胞損壞引起。在一些實施例中,該條件係該頁中之所有錯誤記憶體胞自正確值單向移位(例如,所有錯誤記憶體胞自「1」移位至「0」)。在其他實施例中,該條件係該頁中之大多數錯誤記憶體胞自正確值單向移位(例如,大於50%的錯誤記憶體胞自「1」移位至「0」)。在又其他實施例中,該條件係該頁中之錯誤記憶體胞之至少一者自正確值單向移位(例如,錯誤記憶體胞之一者自「1」移位至「0」)。在又其他實施例中,該條件係錯誤記憶體胞之數目及/或在指定方向上自正確值移位之錯誤記憶體胞之數目超過一臨限值,該臨限值至少部分基於自程式化該頁起之持續時間。
若錯誤不滿足該條件,則結束處理。若錯誤的確滿足該條件,則在一些案例中該錯誤係由記憶體胞損壞或保持引起。為偵測該錯誤是否由記憶體胞損壞引起,擦除及/或重新程式化且即刻回讀該頁403。在回讀期間,ECC解碼器將偵測任何後續錯誤404。若未偵測到後續錯誤(例如,若擦除及/或重新程式化該頁修正該錯誤),則頁讀取錯誤係(例如,歸因於記憶體胞損壞)由一保持故障引起407,且由於未偵測到記憶體胞損壞而結束處理。
然而,若在回讀期間(例如,藉由ECC解碼器)偵測一後續錯誤,則該後續錯誤指示頁讀取錯誤係一記憶體胞損壞錯誤405。使用記憶體胞損壞計數器記錄記憶體胞損壞錯誤。更新與具有後續錯誤之NVM之頁及/或區塊相關聯之記憶體胞損壞計數器之值406。在一些實施例中,與NVM之頁及/或區塊相關聯之記憶體胞損壞計數器之值累加損壞記憶體胞之數目(例如,若該頁及/或區塊中之四個記憶體胞損 壞,則相關聯之計數器累加4)。一旦已更新記憶體胞損壞計數器,便完成記憶體胞損壞測量。在一些實施例中,追蹤損壞記憶體胞之一或多個位置使得該一或多個位置中之重複錯誤不會引起記憶體胞損壞計數器重複累加。
記憶體胞損壞測量及平均抹除
在一些實施例及/或使用案例中,平均抹除技術藉由減小記憶體胞損壞而改良NVM之可靠性、壽命及/或效能。在一些實施例中,平均抹除跨NVM之區塊均勻地分佈P/E循環以避免過早地地磨損個別區塊之任一者(例如,引起對個別區塊之任一者之記憶體胞損壞)。
然而,NVM之一區塊之P/E循環次數係記憶體胞損壞之一不完美估計。許多其他因數(例如,PVT或駐留時間)影響記憶體胞損壞且不均勻地跨一NVM及/或一SSD。因此,在不同溫度下,NVM之兩個區塊可能在極不同的P/E循環計數下(例如,歸因於記憶體胞損壞)發生故障。在各種實施例及/或使用案例中,測量記憶體胞損壞(例如,藉由隱含地考量NVM之區塊及/或晶粒之間的溫度變動)實現更精確的平均抹除。
圖5在概念上圖解說明基於所測量的記憶體胞損壞之平均抹除之選定細節。監控NVM之區塊504之耐久性502。圖5中之條形之各者表示NVM之區塊504之一各自者之記憶體胞損壞計數器之記憶體胞損壞值507,而非將耐久性測量為P/E循環次數。因此,耐久性502對應於區塊之實際抹除,而非區塊之P/E循環。
在各種實施例中,使用記憶體胞損壞臨限值506以最佳化平均抹除。其中記憶體胞損壞計數器之值超過記憶體胞損壞臨限值之區塊發生故障的風險較高且寫入頻率較低(諸如藉由用以儲存已知或更可能不常寫入之資料)。其中記憶體胞損壞計數器之值未超過記憶體胞損壞臨限值之區塊發生故障的風險較低且寫入頻率較高(諸如藉由用以 儲存已知或更可能更常寫入之資料)。在各種實施例中,記憶體胞損壞臨限值可程式化且隨時間加以調整。藉由更頻繁地選擇記憶體胞損壞較小的區塊,平均抹除技術跨所有區塊等化記憶體胞損壞,藉此減小發生故障的可能性並增加效能及/或可靠性。
其他實施例資訊
在各種實施例中,藉由一SSD控制器(諸如圖1A之SSD控制器100)或其元件執行及/或管理圖4中圖解說明之一或多個操作(或其部分)。例如,在一些實施例中,憑藉由圖1A之CPU核心172執行之韌體實施及/或管理圖4中圖解說明之一或多個操作。在各種實施例中,藉由圖3中圖解說明之任何一或多個元件執行及/或管理圖4中圖解說明之一或多個操作(或其部分)。例如,在一些實施例中,至少部分藉由圖3之ECC解碼器360執行一後續錯誤之偵測(例如,如藉由偵測錯誤?404之一些實施例執行)。
例示性實施技術
在一些實施例中,藉由可與一電腦系統進行的處理相容之一規格指定藉由在一非揮發性記憶體中測量平均抹除之記憶體胞損壞之一SSD執行之操作之全部或部分之各種組合,該SSD具有(例如)快閃記憶體、計算主機快閃記憶體控制器及/或SSD控制器(諸如圖1A之SSD控制器100)以及以下各者之部分:處理器、微處理器、單晶片系統、特定應用積體電路、硬體加速器或提供前述操作之全部或部分之其他電路。該規格係根據各種描述,諸如硬體描述語言、電路描述、接線對照表描述、遮罩描述或佈局描述。例示性描述包含:Verilog、VHDL、SPICE、SPICE變體(諸如PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各種實施例中,處理包含解譯、編譯、模擬及合成之任何組合以產生、驗證或指定適用於包含在一或多個積體電路上之邏輯及/或電路。根據各種實施例,各積體電路可根據多種 技術設計及/或製造。該等技術包含一可程式化技術(諸如,場或遮罩可程式化閘陣列積體電路)、半客製化技術(諸如完全或部分基於記憶體胞之積體電路)及一全客製化技術(諸如,實質上專用之一積體電路)、其等之任何組合或可與積體電路之設計及/或製造相容之任何其他技術。
在一些實施例中,藉由執行及/或解譯一或多個程式指令、藉由解譯及/或編譯一或多個源語言/描述性語言陳述式或藉由執行憑藉編譯、轉譯及/或解譯程式設計及/或描述性語言陳述式中表達之資訊產生之二進位指令來執行如其中儲存有一指令集之一電腦可讀媒體描述之操作之全部或部分之任何組合。該等陳述式可與任何標準程式設計或描述性語言(諸如C、C++、Fortran、Pascal、Ada、Java、VBscript及Shell)相容。程式指令、語言陳述式或二進位指令之一或多者視情況儲存在一或多個電腦可讀儲存媒體元件上。在各種實施例中,將該等程式指令之一些、全部或各種部分實現為一或多個函式、常式、副常式、內嵌常式、程序、巨集或其部分。
結論
僅為了便於製備文字及圖式而在描述中作出某些選擇,且除非存在相反之指示,否則該等選擇本質上不應解釋為傳達關於所述實施例之結構或操作之額外資訊。該等選擇之實例包含:用於圖編號之指定符之特定組織或指派及用以識別並參考該等實施例之特徵及元件之元件識別符(例如,插圖編號或數字指定符)之特定組織或指派。
字詞「包含」具體旨在解釋為描述開端式範圍之邏輯集合之抽象概念且除非後續明確接著字詞「在...內」,否則並不意謂傳達實際含有。
雖然已為描述及理解清楚起見而相當詳細地描述前述實施例,但是本發明並不限於所提供的細節。本發明存在許多實施例。所揭示 實施例係例示性且非限制性。
應瞭解,構造、配置及使用之許多變動可能與描述一致,且在所發佈專利之申請專利範圍之範疇內。例如,互連及功能單元位元寬度、時脈速度及所使用的技術類型可根據各種實施例在各組件區塊中變化。賦予互連及邏輯之名稱僅係例示性,且不應解釋為限制所述概念。流程圖及流程圖程序、動作及功能元件之順序及配置可根據各種實施例而變化。又,除非具體相反地陳述,否則所指定的值範圍、所使用的最大值及最小值或其他特定規格(諸如,快閃記憶體技術類型;及暫存器及緩衝器中之項目或級之數目)僅僅係所述實施例之所指定的值範圍、所使用的最大值及最小值或其他特定規格,預期其等追蹤實施技術之改良及改變,且不應解釋為限制。
可採用此項技術者已知的功能上等效的技術來代替描述成實施各種組件、子系統、操作、函式、常式、副常式、內嵌常式、程序、巨集或其部分之技術。亦瞭解,依據實施例依據更快處理(促進先前在硬體中之功能遷移至軟體中)及更高整合密度(促進先前在軟體中之功能遷移至硬體中)之實施例相依設計限制及技術趨勢,可在硬體(例如,一般專用電路)或軟體(例如,經由程式化控制器或處理器之某種方式)中選擇性地實現實施例之許多功能態樣。各種實施例中之特定變動包含(但不限於):分區之差異;不同外觀尺寸及組態;不同作業系統及其他系統軟體的使用;不同介面標準、網路協定或通信鏈路的使用;及在根據特定應用之獨特工程及業務限制實施本文中描述之概念時將預望到的其他變動。
已就遠超出所述實施例之許多態樣之最小實施所需的細節及環境內容脈絡描述該等實施例。一般技術者應認知,在不變更剩餘元件之間的基本協作之情況下,一些實施例省略所揭示組件或特徵。因此,應瞭解,實施所述實施例之各種態樣無需許多所揭示細節。在可 區分剩餘元件與先前技術之範圍內,所省略的組件及特徵並不限制本文所述之概念。
所有此等設計變動在藉由所述實施例傳達之教示內並無實質上的變化。亦應瞭解,本文所述之實施例廣泛適用於其他計算及網路連接應用,且並不限於所述實施例之特定應用或產業。因此,本發明應解釋為包含所發佈專利之申請專利範圍之範疇內涵蓋之所有可能修改及變動。
401‧‧‧成功地應用正向錯誤校正(FEC)解碼
402‧‧‧錯誤滿足條件?
403‧‧‧重新程式化頁,回讀資料
404‧‧‧偵測到錯誤?
405‧‧‧記憶體胞損壞錯誤
406‧‧‧更新記憶體胞損壞計數器
407‧‧‧保持錯誤

Claims (28)

  1. 一種方法,其包括:在包括其各者包括一或多個記憶體胞之一或多個部分之一非揮發性記憶體(NVM)中,測量該等記憶體胞之一或多者之記憶體胞損壞;及至少部分基於該測量之至少一些結果對該等部分執行平均抹除。
  2. 如請求項1之方法,其中該測量包括:偵測程式化故障及擦除故障之一或多者。
  3. 如請求項1之方法,其中該測量包括:判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果;及偵測到該錯誤係一損壞記憶體胞之一結果。
  4. 如請求項3之方法,其中該判定包括:將正向錯誤校正解碼應用於該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者。
  5. 如請求項3之方法,其中該偵測包括:重新程式化及/或擦除該特定部分之至少一子部分及回讀該等記憶體胞之該至少一者,且該子部分包括該等記憶體胞之該至少一者。
  6. 如請求項3之方法,其中該測量進一步包括:更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及 該特定部分。
  7. 如請求項6之方法,其中該執行包括:至少部分基於與該等部分相關聯之該等記憶體胞損壞計數器之值而選擇待寫入之該等部分之若干者。
  8. 一種系統,其包括:一非揮發性記憶體(NVM),其包括一或多個部分,各部分包括一或多個記憶體胞;用於測量該等記憶體胞之一或多者之記憶體胞損壞之構件;及用於至少部分基於用於測量之該構件之至少一些結果對該等部分執行平均抹除之構件。
  9. 如請求項8之系統,其中用於測量之該構件包括:用於偵測程式化故障及擦除故障之一或多者之構件。
  10. 如請求項8之系統,其中用於測量之該構件包括:用於判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果之構件;及用於偵測到該錯誤係一損壞記憶體胞之一結果之構件。
  11. 如請求項10之系統,其中用於判定之該構件包括:用於將正向錯誤校正解碼應用於該特定部分之一子部分之構件,該子部分包括該等記憶體胞之該至少一者。
  12. 如請求項10之系統,其中用於偵測之該構件包括:用於重新程式化及/或擦除該特定部分之至少一子部分之構件及用於回讀該等記憶體胞之該至少一者之構件,且該子部分包括該等記憶體胞之該至少一者。
  13. 如請求項10之系統,其中用於測量之該構件進一步包括用於更 新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器之構件:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及該特定部分。
  14. 如請求項13之系統,其中用於執行之該構件包括:用於至少部分基於與該等部分相關聯之該記憶體胞損壞計數器之值選擇待寫入之該等部分之若干者之構件。
  15. 一種設備,其包括:一非揮發性記憶體(NVM),其包括一或多個部分,各部分包括一或多個記憶體胞;測量硬體邏輯電路,其經啟用以測量該等記憶體胞之一或多者之記憶體胞損壞;及平均抹除硬體邏輯電路,其經啟用以至少部分基於該測量之至少一些結果而對該等部分執行平均抹除。
  16. 如請求項15之設備,其中該測量硬體邏輯電路包括:經啟用以偵測程式化故障及擦除故障之一或多者之故障偵測硬體邏輯電路。
  17. 如請求項15之設備,其中該測量硬體邏輯電路包括:判定硬體邏輯電路,其經啟用以判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果;及損壞偵測硬體邏輯電路,其經啟用以偵測到該錯誤係一損壞記憶體胞之一結果。
  18. 如請求項17之設備,其中該判定硬體邏輯電路包括:經啟用以 將正向錯誤校正解碼應用於該特定部分之一子部分之解碼硬體邏輯電路,該子部分包括該等記憶體胞之該至少一者。
  19. 如請求項17之設備,其中該損壞偵測硬體邏輯電路包括:經啟用以重新程式化及/或擦除該特定部分之至少一子部分且回讀該等記憶體胞之該至少一者之重試硬體邏輯電路,且該子部分包括該等記憶體胞之該至少一者。
  20. 如請求項17之設備,其中該測量硬體邏輯電路進一步包括:經啟用以更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器之計數器硬體邏輯電路:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及該特定部分。
  21. 如請求項20之設備,其中該平均抹除硬體邏輯電路包括:選擇硬體邏輯電路,該選擇硬體邏輯電路經啟用以至少部分基於與該等部分相關聯之該等記憶體胞損壞計數器之值而選擇待寫入之該等部分之若干者。
  22. 一種其中儲存有一指令集之有形電腦可讀媒體,該等指令在藉由一處理元件執行時引起該處理元件執行及/或控制包括以下各者之操作:在包括其各者包括一或多個記憶體胞之一或多個部分之一非揮發性記憶體(NVM)中,測量該等記憶體胞之一或多者之記憶體胞損壞;及至少部分基於該測量之至少一些結果對該等部分執行平均抹除。
  23. 如請求項22之有形電腦可讀媒體,其中該測量包括偵測程式化 故障及擦除故障之一或多者。
  24. 如請求項22之有形電腦可讀媒體,其中該測量包括:判定自該等部分之一特定者之該等記憶體胞之至少一者讀取之一錯誤係記憶體胞損壞及記憶體胞洩漏之一或多者之一結果;及偵測到該錯誤係一損壞記憶體胞之一結果。
  25. 如請求項24之有形電腦可讀媒體,其中該判定包括:將正向錯誤校正解碼應用於該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者。
  26. 如請求項24之有形電腦可讀媒體,其中該偵測包括:重新程式化及/或擦除該特定部分之至少一子部分及回讀該等記憶體胞之該至少一者,且該子部分包括該等記憶體胞之該至少一者。
  27. 如請求項24之有形電腦可讀媒體,其中該測量進一步包括:更新與以下任何一或多者相關聯之一或多個記憶體胞損壞計數器:該等記憶體胞之該至少一者,該特定部分之一子部分,該子部分包括該等記憶體胞之該至少一者,及該特定部分。
  28. 如請求項27之有形電腦可讀媒體,其中該執行包括:至少部分基於與該等部分相關聯之該等記憶體胞損壞計數器之值選擇待寫入之該等部分之若干者。
TW102133261A 2012-09-15 2013-09-13 在一非揮發性記憶體中測量平均抹除之記憶體胞損壞 TW201415468A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/620,982 US9329948B2 (en) 2012-09-15 2012-09-15 Measuring cell damage for wear leveling in a non-volatile memory

Publications (1)

Publication Number Publication Date
TW201415468A true TW201415468A (zh) 2014-04-16

Family

ID=49165578

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102133261A TW201415468A (zh) 2012-09-15 2013-09-13 在一非揮發性記憶體中測量平均抹除之記憶體胞損壞

Country Status (6)

Country Link
US (1) US9329948B2 (zh)
EP (1) EP2709110A1 (zh)
JP (1) JP6452278B2 (zh)
KR (1) KR20140037768A (zh)
CN (1) CN103678146B (zh)
TW (1) TW201415468A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI502348B (zh) * 2014-05-02 2015-10-01 Via Tech Inc 延伸唯讀記憶體管理系統、方法及其管理主機
TWI650647B (zh) * 2017-05-22 2019-02-11 上海寶存信息科技有限公司 資料儲存裝置以及數據錯誤管理方法
TWI662410B (zh) * 2017-12-18 2019-06-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9135112B2 (en) * 2012-12-11 2015-09-15 Seagate Technology Llc Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9235468B2 (en) * 2013-04-12 2016-01-12 Qualcomm Incorporated Systems and methods to improve the reliability and lifespan of flash memory
US9092321B2 (en) * 2013-07-24 2015-07-28 NXGN Data, Inc. System and method for performing efficient searches and queries in a storage node
US9021189B2 (en) 2013-07-24 2015-04-28 NXGN Data, Inc. System and method for performing efficient processing of data stored in a storage node
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9715424B1 (en) * 2013-08-23 2017-07-25 Rambus Inc. Memory device and repair method with column-based error code tracking
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9436831B2 (en) * 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9671973B2 (en) * 2013-12-20 2017-06-06 Empire Technology Development Llc Data storage in degraded solid state memory
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
WO2015195141A1 (en) 2014-06-20 2015-12-23 Hewlett-Packard Development Company, L. P. Memristive memory cell resistance switch monitoring
US10084479B2 (en) * 2014-07-07 2018-09-25 Toshiba Memory Corporation Low BER hard-decision LDPC decoder
KR102219293B1 (ko) 2014-07-28 2021-02-23 삼성전자 주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102188061B1 (ko) 2014-07-29 2020-12-07 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
US9594615B2 (en) * 2014-09-30 2017-03-14 Apple Inc. Estimating flash quality using selective error emphasis
TWI537966B (zh) * 2014-10-03 2016-06-11 群聯電子股份有限公司 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元
DE102014115885B4 (de) * 2014-10-31 2018-03-08 Infineon Technologies Ag Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
KR102295208B1 (ko) * 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
US9678665B2 (en) * 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、***及电子设备
KR102403253B1 (ko) 2015-07-06 2022-05-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR102381218B1 (ko) * 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9858009B2 (en) * 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
US10063258B2 (en) * 2016-03-04 2018-08-28 Sandisk Technologies Llc Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding
KR20170143084A (ko) 2016-06-17 2017-12-29 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR102643916B1 (ko) * 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
US10685710B2 (en) * 2016-11-17 2020-06-16 Toshiba Memory Corporation Memory controller
US9881682B1 (en) * 2016-11-23 2018-01-30 Seagate Technology Llc Fine grained data retention monitoring in solid state drives
US10379769B2 (en) 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Continuous adaptive calibration for flash memory devices
FR3062268B1 (fr) 2017-01-26 2019-03-22 Sagemcom Broadband Sas Procede d'enregistrement adaptatif au taux d'usure du support de stockage
US9837153B1 (en) 2017-03-24 2017-12-05 Western Digital Technologies, Inc. Selecting reversible resistance memory cells based on initial resistance switching
US20180285562A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Computing system with protection against memory wear out attacks
CN109378027A (zh) * 2017-08-09 2019-02-22 光宝科技股份有限公司 固态储存装置的控制方法
US10388351B2 (en) * 2017-08-30 2019-08-20 Micron Technology, Inc. Wear leveling for random access and ferroelectric memory
US10447301B2 (en) * 2017-09-13 2019-10-15 Toshiba Memory Corporation Optimal LDPC bit flip decision
US10354736B1 (en) * 2018-04-30 2019-07-16 Western Digital Technologies, Inc. Memory failure detection and resource allocation
US11631465B2 (en) 2018-07-03 2023-04-18 Samsung Electronics Co., Ltd. Non-volatile memory device
KR102601213B1 (ko) * 2018-07-03 2023-11-10 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 제조 방법
US11164638B2 (en) 2018-07-03 2021-11-02 Samsung Electronics Co., Ltd. Non-volatile memory device
US10817430B2 (en) * 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
CN109558263B (zh) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 一种固态硬盘数据读取错误的处理方法及相关装置
US11316687B2 (en) * 2019-03-04 2022-04-26 Cypress Semiconductor Corporation Encrypted gang programming
CN110057306B (zh) * 2019-06-03 2024-06-07 呜啦啦(广州)科技有限公司 周径传感器的驱动装置及其自动归零初始化方法
TWI766194B (zh) * 2019-06-17 2022-06-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10783978B1 (en) * 2019-08-27 2020-09-22 Micron Technology, Inc. Read voltage-assisted manufacturing tests of memory sub-system
JP7418105B2 (ja) * 2019-08-30 2024-01-19 キヤノン株式会社 記録装置、制御方法、及びプログラム
US11061768B1 (en) * 2020-02-14 2021-07-13 Western Digital Technologies, Inc. Storage device with increased endurance
WO2021198406A1 (en) * 2020-04-03 2021-10-07 Continental Teves Ag & Co. Ohg Method of discrete digital signal recovery in noisy overloaded wireless communication systems in the presence of hardware impairments
US11328778B2 (en) 2020-07-09 2022-05-10 Stmicroelectronics S.R.L. Methods and devices for wear leveling
KR20220065296A (ko) 2020-11-13 2022-05-20 삼성전자주식회사 비휘발성 메모리 장치의 블록 내구성 측정 방법 및 이를 이용한 스토리지 장치의 웨어 레벨링 방법
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61131050A (ja) * 1984-11-29 1986-06-18 Fujitsu Ltd メモリエラ−処理方式
TW261687B (zh) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US5341339A (en) 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5586285A (en) 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
US20080071973A1 (en) 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US20070180186A1 (en) 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US20080168215A1 (en) * 2007-01-05 2008-07-10 Anxiao Jiang Storing Information in a Memory
US7656706B2 (en) * 2007-01-05 2010-02-02 The Texas A&M University System Storing information in a memory
US20080294813A1 (en) 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20090063895A1 (en) 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
TWI373772B (en) 2007-10-04 2012-10-01 Phison Electronics Corp Wear leveling method and controller using the same
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) * 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
KR101406279B1 (ko) * 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US7864579B2 (en) 2008-07-24 2011-01-04 Qimonda Ag Integrated circuits having a controller to control a read operation and methods for operating the same
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8751860B2 (en) * 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
US8370712B2 (en) 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
JP2011059907A (ja) * 2009-09-09 2011-03-24 Nec Corp 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム
KR101662273B1 (ko) 2009-11-27 2016-10-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법
US8164967B2 (en) * 2010-03-24 2012-04-24 Apple Inc. Systems and methods for refreshing non-volatile memory
US8503257B2 (en) 2010-07-30 2013-08-06 Apple Inc. Read disturb scorecard
US8364888B2 (en) * 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
JP2012212312A (ja) * 2011-03-31 2012-11-01 Pioneer Electronic Corp メモリ制御装置及びメモリ制御方法
US20130262942A1 (en) * 2012-03-27 2013-10-03 Yung-Chiang Chu Flash memory lifetime evaluation method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI502348B (zh) * 2014-05-02 2015-10-01 Via Tech Inc 延伸唯讀記憶體管理系統、方法及其管理主機
TWI650647B (zh) * 2017-05-22 2019-02-11 上海寶存信息科技有限公司 資料儲存裝置以及數據錯誤管理方法
US10446252B2 (en) 2017-05-22 2019-10-15 Shannon Systems Ltd. Data storage device and method for data error management
TWI662410B (zh) * 2017-12-18 2019-06-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
US10540276B2 (en) 2017-12-18 2020-01-21 Silicon Motion, Inc. Method of processing data based on erase operations of logical pages related to data compression rate of mapping table in data storage device

Also Published As

Publication number Publication date
JP2014059946A (ja) 2014-04-03
US20140082459A1 (en) 2014-03-20
JP6452278B2 (ja) 2019-01-16
US9329948B2 (en) 2016-05-03
CN103678146A (zh) 2014-03-26
KR20140037768A (ko) 2014-03-27
CN103678146B (zh) 2018-09-28
EP2709110A1 (en) 2014-03-19

Similar Documents

Publication Publication Date Title
TW201415468A (zh) 在一非揮發性記憶體中測量平均抹除之記憶體胞損壞
US10734087B2 (en) Retention-drift-history-based non-volatile memory read threshold optimization
TWI584285B (zh) 用於快閃記憶體通道之快速追蹤
TWI612524B (zh) 控制一記憶體裝置之方法、用於耦合至一外部非揮發性記憶體之裝置及非暫時性電腦可讀媒體
TWI534828B (zh) 非揮發性記憶體之以單一讀取爲基礎的軟決定解碼
KR102155191B1 (ko) 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택
US20170162268A1 (en) Reduction or Elimination of a Latency Penalty Associated With Adjusting Read Thresholds for Non-Volatile Memory
US8972776B2 (en) Partial R-block recycling
US11887651B2 (en) Temperature informed memory refresh
US11842772B2 (en) Voltage bin boundary calibration at memory device power up
US11693732B2 (en) Cryptographic data integrity protection
US11837291B2 (en) Voltage offset bin selection by die group for memory devices
KR20220085804A (ko) 용도 블록을 위한 동적 오버 프로비저닝 할당