TWI584285B - 用於快閃記憶體通道之快速追蹤 - Google Patents

用於快閃記憶體通道之快速追蹤 Download PDF

Info

Publication number
TWI584285B
TWI584285B TW102122792A TW102122792A TWI584285B TW I584285 B TWI584285 B TW I584285B TW 102122792 A TW102122792 A TW 102122792A TW 102122792 A TW102122792 A TW 102122792A TW I584285 B TWI584285 B TW I584285B
Authority
TW
Taiwan
Prior art keywords
read
threshold
memory
data
threshold voltage
Prior art date
Application number
TW102122792A
Other languages
English (en)
Other versions
TW201405562A (zh
Inventor
吳英全
厄爾T 柯罕
Original Assignee
Lsi公司
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公司 filed Critical Lsi公司
Publication of TW201405562A publication Critical patent/TW201405562A/zh
Application granted granted Critical
Publication of TWI584285B publication Critical patent/TWI584285B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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/26Sensing or reading circuits; Data output circuits
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

用於快閃記憶體通道之快速追蹤 對相關申請案之交叉參考
在隨附申請案資料工作表、請求或傳送文件中(若有的話,則在適合時)主張了本申請案之優先權權利。在本申請案之類型所准許的範圍內,本申請案出於所有目的以引用的方式併有以下申請案,所有該等申請案在進行本發明時皆與本申請案被共同擁有:2012年5月4日申請、首名發明人Earl T COHEN且題為「ZERO-ONE BALANCE MANAGEMENT IN A SOLID-STATE DISK CONTROLLER」的美國非臨時申請案(代理人案號SF-11-02且序號13/464,433);及2012年6月26日、首名發明人Yingquan WU且題為「FAST TRACKING FOR FLASH CHANNELS」的美國非臨時申請案(代理人案號L12-0645US1且序號13/533,130)。
需要非揮發性儲存技術之進展以提供使用之效能、效率及效用的改良。
除非明確識別為公開已知的或熟知的,否則本文中對技術及概念的提及(包括出於提供內容脈絡、定義或比較之自的)不應解釋為承認此等技術及概念係先前公開已知的或以其他方式為先前技術之一部分。本文中所引用之所有參考(若有的話)(包括專利、專利申請案及公 開案)特此出於所有目的被以引用的方式全部併入,無論是否被具體地併入。
部分地為了確立技術背景,且部分地為了確立在說明書之其餘部分中使用的術語之前提,現在描述如由固態磁碟(SSD)控制器使用的快閃記憶體之各種態樣。可由SSD控制器自非揮發性記憶體(NVM)讀取的資料之最小大小為受所包括之錯誤校正(諸如,低密度同位檢查(LDPC)碼)保護之「讀取單元」。在一些內容脈絡中,讀取單元被稱作「碼字」。在一些實施例中,每一讀取單元含有大致4 K至大致32 K位元之使用者資料,加錯誤校正附加項。在SSD控制器之命令下,自NVM記憶胞讀取彼等位元(例如,經由對NVM記憶胞之一或多個部分的陣列存取),NVM記憶胞視如下論述之技術而定可每個記憶胞保持一或多個位元。在一些實施例中,為了安全原因,SSD控制器在將資料寫入至NVM前將資料加密。在一些實施例中,鑒於關於相同程式化之記憶胞之長串的電路設計限制,SSD控制器在將資料寫入至NVM前將資料擾亂。
個別地考慮,每一記憶胞具有對應於彼記憶胞之器件臨限電壓且進一步對應於正儲存於記憶胞中之邏輯位元值的特定的所儲存之(程式化之)電荷。雖然理想地,NVM中之所有記憶胞將對於儲存之邏輯位元值具有相同的器件臨限電壓,但實務上,出於各種各樣之原因,在記憶胞中間,器件臨限電壓在沿著器件臨限電壓軸線之機率分佈(例如,「器件臨限電壓分佈」)上不同,該等機率分佈在形狀上類似於高斯分佈。
因此在跨越(諸如,讀取單元之)大量記憶胞綜合考慮時,存在與每個記憶胞的狀態(每記憶胞的每儲存位元兩個狀態)一樣多的器件臨限電壓分佈(例如,高斯機率曲線)。亦即,對於每儲存記憶胞N個位元,存在2**N個狀態及相同數目個器件臨限電壓分佈。通常,NVM 中之讀取電路需要(2**N)-1個不同讀取臨限值(讀取電壓參考VREAD1至VREAD(N-1))來在2**N個狀態之間區分。
自上文繼續,對於單位階記憶胞(SLC)快閃記憶體。N=1。SLC記憶體因此每儲存記憶胞儲存一位元,具有兩個器件臨限電壓分佈(一個針對「0」,且另一個針對「1」),且需要單一讀取臨限值--讀取電壓參考VREAD1。自較低至較高器件臨限電壓,兩個器件臨限電壓分佈被稱為E(經抹除)狀態及D1(第一資料)狀態。常見映射(寫碼)係將邏輯一指派至E狀態,且將邏輯零指派至D1狀態,但此為任意的。因此,對零及一之參考為針對D1狀態及E狀態之各別解碼的代替參考。
自上文進一步繼續,對於多位階記憶胞(MLC)快閃記憶體,N>1。MLC記憶體因此每記憶胞儲存一個以上位元,具有兩個以上器件臨限電壓分佈,且需要多個不同讀取臨限值來區分該等分佈。舉例而言,4LC記憶體(例如,快閃記憶體)每記憶胞儲存兩個位元,具有四個器件臨限電壓分佈,且通常需要三個讀取臨限值(讀取電壓參考VREAD1、VREAD2及VREAD3)。自較低至較高器件臨限電壓,四個器件臨限電壓分佈被稱為E(經抹除)狀態、D1(Data1)狀態、D2(Data2)狀態及D3(Data3)狀態。亦根據一特定二進位序列(諸如,格雷(Gray)碼序列)來映射(定址)四個器件臨限電壓分佈中之每一者,但此為任意的。因此,對11、10、00及01狀態中之一或多者的參考為針對E狀態、D1狀態、D2狀態及D3狀態之各別解碼的代替參考。
關於用於MLC之狀態的位址映射,每一者可被稱為具有最高有效位元(MSB)及最低有效位元(LSB)(且對於每記憶胞兩個以上位元,具有在其間之有效位元)。雖然存在MLC NVM藉以程式化其記憶胞之各種方式,但以下方法係常見的。初始程式化遍次(對電荷分佈之操縱)確立LSB,例如,寫入「下部頁」。按與寫入SLC(例如,確立E狀態器件臨限電壓分佈及第二狀態器件臨限電壓分佈之電荷操縱)大致 相同的方式進行初始程式化遍次。視所使用之二進位序列而定,第二狀態器件臨限電壓分佈類似於D1狀態器件臨限電壓分佈、類似於D2狀態器件臨限電壓分佈或在D1與D2狀態器件臨限電壓分佈之間。對於MLC,按照MLC的位階數所要求,一或多個額外程式化遍次進一步操縱器件臨限電壓分佈(在數目上、沿著器件臨限電壓軸線之位置及在形狀上)。更特定而言,一或多個隨後程式化操作寫入「中間頁」(對於每記憶胞兩個以上位元,若有的話),且最後程式化操作確立MSB,例如,寫入「上部頁」。舉例而言,在4LC(每記憶胞2位元之MLC)中,第一程式化遍次之E分佈與第二分佈分別由第二程式化遍次分叉成E及D1分佈與D2及D3分佈。
由於一或多個因素(諸如,讀取干擾、寫入干擾及保留損耗),器件臨限電壓分佈被修改遠離其初始/標稱分佈。更特定而言,隨著時間、溫度及與使用有關之其他因素變化,器件臨限電壓分佈中之每一者的位置可相對於器件臨限電壓軸線移來移去。此等改變增加了使用用於讀取臨限值之讀取參考電壓值(其係先前基於標稱器件臨限電壓分佈所確立)所執行的讀取發生錯誤之可能性。在一些SLC實施例中,當在自NVM讀取之讀取單元中遇到硬決策不可校正錯誤時,執行一系列重試操作以恢復讀取單元。重試操作包括控制器按讀取臨限值VREAD1之不同電壓值(諸如,由經由來自SSD控制器之I/O命令寫入的暫存器設定加以判定)重新讀取讀取單元。藉由按讀取臨限值VREAD1之不同設定進行讀取,在器件臨限電壓軸線上之不同點取樣讀取單元以嘗試找出(硬決策)可校正的讀取單元之樣本之位置。
由NVM廠商建議之一演算法為向上緩慢地掃掠SLC讀取臨限值(將讀取參考電壓VREAD1自其標稱值增大),以嘗試找出可校正的讀取單元之樣本。若此程序失敗,則在另一方向上(將讀取參考電壓VREAD1自其標稱值減小)掃掠讀取臨限值。若兩個掃掠皆失敗,則讀 取單元不可校正(藉由硬決策解碼)。線性地掃掠讀取臨限值(其在不同各別讀取參考電壓設定下可能具有16至64個步階)需要對讀取單元進行許多次耗時的採樣(每一者具有伴隨的恢復時間潛時)。即使當不頻繁地需要此搜尋且因此並非對平均潛時之主要影響時,對於具有嚴格最大潛時要求之應用(包括一些資料庫應用)而言,此耗時的搜尋亦係不可接受的。
本發明可以眾多方式來實施,包括實施為處理程序、製品、裝置、系統、物質組合及電腦可讀媒體(諸如,電腦可讀儲存媒體(例如,光學及/或磁性大容量儲存器件(諸如,磁碟)中的媒體或具有非揮發性儲存器(諸如,快閃記憶體儲存器)之積體電路),或電腦網路(其中經由光學或電子通信鏈路來發送程式指令))。在此說明書中,此等實施或本發明可採取之任一其他形式可被稱作技術。實施方式提供允許在上文識別之領域中改良使用效能、效率及效用的本發明之一或多項實施例的闡述。實施方式包括序言以促進更快速地理解實施方式之其餘內容。序言包括根據本文中所描述之概念的系統、方法、製品及電腦可讀媒體中之一或多者之實例實施例。如在結論中更詳細地論述,本發明涵蓋在所發表之申請專利範圍之範疇內的所有可能修改及變化。
本發明者相信他們首先注意到擾亂寫入至NVM的資料且追蹤及管理經擾亂之資料的狀態之統計分佈的關於讀取臨限值管理及伴隨的低潛時效能與延長之壽命益處的重要性。更特定而言,本發明者相信他們首先注意到讀取之資料的狀態之統計分佈對寫入之資料的狀態之統計分佈之差異指示了用於讀取NVM的較佳讀取臨限值之移位。在一些實施例中,在將資料寫入至NVM前,SSD控制器擾亂資料,諸如,經由加密。經擾亂之資料具有已知的零/一平衡(儲存為零與一的 位元之統計分佈),諸如,具有「0」位元與「1」位元的靠近50-50之平衡。藉由有效率的擾亂,資料實際上為隨機的。在具有NVM讀取單元之大小的隨機樣本中,零及一之分佈傾向於非常緊(圍繞平均值狹窄地分散)。舉例而言,在16 K(16,384)個隨機位元的情況下,零計數或一計數在任一方向上與平均值(8 K)相差超過大致300之機率小於1%(且在任一方向相差超過大致500之機率小於百萬分之一)。
相對於器件臨限電壓軸線的各種器件臨限電壓分佈(歸因於任一數目個因素)的偏離標稱分佈之移位會表現為改變器件臨限電壓分佈峰值之間的中心點之位置。在無對應的讀取臨限值之對應追蹤調整之情況下,此實際「臨限電壓中心點」之改變為讀取錯誤之原因。本發明者相信他們首先注意到中心點的此改變之關於讀取臨限值管理及伴隨的低潛時效能與延長之壽命益處的重要性。
利用以上觀測,在一些實施例中,SSD控制器對於自SLC NVM(或MLC之下部頁)讀取之每一讀取單元至少臨時維持零計數及一計數。若部分歸因於器件臨限電壓分佈偏離其(初始)標稱分佈之移位而使讀取單元不可校正(例如,在硬決策解碼之內容脈絡中),則零計數及/或一計數使得能夠判定方向及/或量值以移動讀取臨限值(讀取電壓參考VREAD1),以追蹤經移位之(又名,經調整之)器件臨限電壓分佈且恢復零/一平衡。如在實施方式中所呈現,根據實施例,基於許多因素(例如,觀測/推斷之器件臨限電壓分佈、已知儲存值及過去的NVM操作事件),按各種各樣之方式(計數、百分比)判定用於讀取臨限值之新電壓設定。
在一些實施例及/或使用情境中,獨立於對不可校正(例如,硬決策解碼)錯誤之偵測,調整讀取臨限值,諸如,經由前瞻地管理讀取臨限值之離線追蹤技術。在一些內容脈絡中,對讀取臨限值之獨立調整使得能夠避免在無獨立調整之情況下原本將出現的不可校正之錯 誤。在各種實施例中,在以下情形中之任何一或多者處判定NVM之讀取臨限值調整:在NVM之製造時、在NVM之初始使用時(例如,第一次SSD啟動時)、在一或多個時間(例如,週期性地、不規則地或隨機地)、回應於高於一臨限值之位元錯誤率,及回應於符合條件(例如,超過目標BER或超過零/一平衡之目標差異)。在各種實施例中,按群組管理NVM之區塊,且至少部分讀取所管理的群組中之一特定者之區塊之取樣中的每一者。若部分讀取樣本區塊中之至少一些符合條件,則針對特定的所管理的群組之所有區塊調整讀取臨限值。在各種實施例中,調整係經由使用可適用於高斯分佈之技術來估計器件臨限電壓分佈。
將以上技術中之一些擴展用於MLC記憶體,包括維持上部頁之計數及使多個讀取臨限值移位。以上技術中之一些亦可與具有不同於50-50平衡之已知零/一平衡的各種各樣之加密/擾亂方法一起使用。
100‧‧‧SSD控制器
101‧‧‧SSD
102‧‧‧主機
103‧‧‧(選用)交換器/網狀架構/中間控制器
104‧‧‧中間介面
105‧‧‧OS
106‧‧‧韌體(FW)
107‧‧‧驅動程式
107D‧‧‧點線箭頭(主機軟體←→I/O器件通信)
109‧‧‧應用程式
109D‧‧‧點線箭頭(應用程式←→經由驅動程式之I/O器件通信)
109V‧‧‧點線箭頭(應用程式←→經由VF之I/O器件通信)
110‧‧‧外部介面
111‧‧‧主機介面
112C‧‧‧(選用)卡記憶體
113‧‧‧標籤追蹤
114‧‧‧多器件管理軟體
115‧‧‧主機軟體
116‧‧‧I/O卡
117‧‧‧I/O及儲存器件/資源
118‧‧‧伺服器
119‧‧‧LAN/WAN
121‧‧‧資料處理
123‧‧‧引擎
131‧‧‧緩衝器
133‧‧‧DMA
135‧‧‧ECC-X
137‧‧‧記憶體
141‧‧‧映射
143‧‧‧表
151‧‧‧回收器
161‧‧‧ECC
171‧‧‧CPU
172‧‧‧CPU核心
173‧‧‧命令管理
175‧‧‧緩衝器管理
177‧‧‧轉譯管理
179‧‧‧連貫性管理
180‧‧‧記憶體介面
181‧‧‧器件管理
182‧‧‧識別碼管理
190‧‧‧器件介面
191‧‧‧器件介面邏輯
192‧‧‧快閃記憶體器件
193‧‧‧排程
194‧‧‧快閃記憶體晶粒
199‧‧‧NVM
210‧‧‧SLC標稱讀取臨限值
215‧‧‧SLC調整之讀取臨限值
220‧‧‧SLC標稱最負臨限值狀態
225‧‧‧SLC調整之最負臨限值狀態
230‧‧‧SLC標稱最正臨限值狀態
235‧‧‧SLC調整之最正臨限值狀態
240‧‧‧MLC標稱第一讀取臨限值
242‧‧‧MLC標稱第二讀取臨限值
244‧‧‧MLC標稱第三讀取臨限值
250‧‧‧MLC標稱最負臨限值狀態
251‧‧‧MLC調整之最負臨限值狀態
260‧‧‧MLC標稱次最負臨限值狀態
261‧‧‧MLC調整之次最負臨限值狀態
265‧‧‧MLC調整之第一讀取臨限值
270‧‧‧MLC標稱次最正臨限值狀態
271‧‧‧MLC調整之次最正臨限值狀態
275‧‧‧MLC調整之第二讀取臨限值
280‧‧‧MLC標稱最正臨限值狀態
281‧‧‧MLC調整之最正臨限值狀態
285‧‧‧MLC調整之第三讀取臨限值
306‧‧‧寫入資料
310‧‧‧擾亂器
311‧‧‧經擾亂之寫入資料
320‧‧‧ECC編碼器
321‧‧‧經ECC編碼之寫入資料
332‧‧‧NVM陣列
334‧‧‧可程式化讀取電壓電路
336‧‧‧控制/狀態暫存器
338‧‧‧I/O
340‧‧‧不平衡偵測器
341‧‧‧不平衡
351‧‧‧讀取資料
359‧‧‧未校正且經擾亂之(原始)讀取資料
360‧‧‧ECC解碼器
361‧‧‧經校正之讀取資料
362‧‧‧不可校正之讀取
370‧‧‧解擾亂器
371‧‧‧經去擾亂之讀取資料
380‧‧‧平衡恢復邏輯
410‧‧‧擾亂資料
420‧‧‧ECC編碼
430‧‧‧寫入NVM
440‧‧‧讀取NVM
450‧‧‧資料恢復
460‧‧‧不可校正之錯誤評估
470‧‧‧差異判定
480‧‧‧讀取臨限值調整
510‧‧‧將當前讀取臨限值初始化至預設操作讀取臨限值
520‧‧‧藉由當前讀取臨限值讀取
530‧‧‧更新當前讀取臨限值
540‧‧‧離線追蹤
541‧‧‧藉由當前讀取臨限值讀取隨機區塊
542‧‧‧是否符合條件?
543‧‧‧藉由樣本讀取臨限值讀取
544‧‧‧估計新器件臨限電壓分佈
545‧‧‧計算新操作讀取臨限值
546‧‧‧用新操作讀取臨限值更新當前讀取臨限值
550‧‧‧計時器是否期滿?
600‧‧‧MLC舊最負臨限值狀態
601‧‧‧MLC舊次最負臨限值狀態
602‧‧‧MLC舊次最正臨限值狀態
603‧‧‧MLC舊最正臨限值狀態
610‧‧‧MLC舊第一讀取臨限值
611‧‧‧MLC舊第二讀取臨限值
612‧‧‧MLC舊第三讀取臨限值
620‧‧‧MLC新最負臨限值狀態
621‧‧‧MLC新次最負臨限值狀態
622‧‧‧MLC新次最正臨限值狀態
623‧‧‧MLC新最正臨限值狀態
630‧‧‧第一組LSB樣本讀取臨限值中之第一個
631‧‧‧第一組LSB樣本讀取臨限值中之第二個
632‧‧‧第一組LSB樣本讀取臨限值中之第三個
640‧‧‧第二組LSB樣本讀取臨限值中之第一個
641‧‧‧第二組LSB樣本讀取臨限值中之第二個
642‧‧‧第二組LSB樣本讀取臨限值中之第三個
650‧‧‧MLC新第一讀取臨限值
651‧‧‧MLC新第二讀取臨限值
652‧‧‧MLC新第三讀取臨限值
圖1A說明包括實施讀取臨限值之最佳化的用於管理非揮發性記憶體(NVM)元件(例如,快閃記憶體)之一固態磁碟(SSD)控制器的SSD之一實施例之選定細節。
圖1B說明包括圖1A之SSD之一或多個例項的系統之各種實施例之選定細節。
圖2A至圖2D說明與零/一平衡恢復相關之實例器件臨限電壓分佈。圖2A及圖2B特定針對SLC,其分別說明在第一時間及稍後第二時間之器件臨限電壓分佈。圖2C及圖2D特定針對MLC,其分別說明在第一時間及稍後第二時間之器件臨限電壓分佈。
圖3說明圖1A之SSD之一例項的一系統實施例之選定細節,其提供關於零/一平衡管理及離線追蹤之特定細節。
圖4說明圖1A、圖1B及圖3之SSD之一實施例之選定控制流程細 節,其提供關於與寫入有關之操作(動作410至430)及與讀取有關之操作(動作440至480)的特定細節。
圖5A說明(例如,SSD之)NVM之讀取臨限值之最佳化的一實施例之選定細節之流程圖。
圖5B說明在NVM之一經管理區塊群組中的器件臨限電壓之離線追蹤540的一實施例之選定細節之流程圖。
圖6A至圖6D概念性地說明在4LC記憶體中之器件臨限電壓分佈。
圖7說明在特定實施例中的使用高斯近似法之平均值及方差之判定。
圖8說明在特定實施例中的使用兩個移位之LSB讀取及兩個移位之MSB讀取(其等效於六個移位之LSB讀取)之平均值及方差之判定。
以下與說明本發明之選定細節的附圖一起來提供本發明之一或多項實施例之詳細描述。結合實施例描述本發明。應將本文中之實施例理解為僅為例示性的,本發明明確地不限於本文中之該等實施例中之任一者或全部或明確不受本文中之該等實施例中之任一者或全部限制,且本發明涵蓋眾多替代例、修改及等效物。為了避免闡述中之單調性,可應用各種各樣之詞語標籤(包括但不限於:第一、最後、某些、各種、另外、其他、特定、選定、一些及顯著)來分開實施例之集合;如本文中所使用,此等標籤明確地並不意謂傳達品質或任何形式之偏好或偏見,而是僅在該等分開之集合之間方便地區分。所揭示之處理程序之一些操作的次序在本發明之範疇內係可更改的。在多項實施例用以描述處理程序、方法及/或程式指令特徵之變化的情況下,考量了根據預定或動態地判定之準則來執行對複數個操作模式(分別對應於多項實施例中之複數項實施例)中之一者的靜態及/或動態 選擇之其他實施例。在以下描述中闡明了眾多具體細節以提供對本發明之透徹理解。出於實例目的而提供該等細節,且可在無該等細節中之一些或全部的情況下根據申請專利範圍來實踐本發明。為了清晰起見,與本發明有關之技術領域中已知之技術材料並未被詳細地描述,使得不會不必要地使本發明晦澀難懂。
序言
僅為了促進對實施方式之更快速理解而包括此序言;本發明並不限於序言(若有的話,則包括明確實例)中所呈現之概念,因為任何序言之段落必定為完整主題之經節略見解且並不意謂為詳盡的或限制性的描述。舉例而言,隨後的序言提供僅僅某些實施例的受空間及組織限制之概述資訊。存在貫穿說明書之其餘部分所論述之許多其他實施例,包括申請專利範圍最終將引起之實施例。
縮寫字
此處定義之各種速記縮寫(例如,縮寫字)中之至少一些指代本文中所使用之某些元件。
追蹤及恢復零/一平衡
隨後之對追蹤及管理零及一之計數及用以區分零與一狀態的讀取臨限值之移位的初始論述直接可適用於SLC記憶體及(以最小變化,如所指出)可適用於MLC記憶體之下部頁。更通常地,關於MLC記憶體,以下在分開的段落中詳述了向追蹤及管理上部頁之計數及多個讀取臨限值(例如,讀取電壓參考VREAD1、VREAD2及VREAD3)之移位的擴展。
在一些實施例中,針對自SLC NVM讀取之每一讀取單元(或自一NVM晶粒一次傳送的每一讀取單元群組)獲得零計數及一計數。若部分歸因於器件臨限電壓分佈偏離其(初始)標稱分佈之移位而使讀取單元不可校正(例如,在硬決策解碼之內容脈絡中),則零計數及/或一計數使得能夠判定方向及/或量值以移動(設定)讀取臨限值,以追蹤器件臨限電壓分佈之移位且恢復零/一平衡。正被調整之讀取臨限值對於SLC記憶體為讀取電壓參考VREAD1,且對於MLC記憶體之下部頁為讀取電壓參考VREAD2。舉例而言,在邏輯一指派至抹除狀態且按零與一之已知統計上相等(50-50百分比,又名,50/50百分比,或簡單地為50/50)分佈寫入的SLC中,若當前零/一計數指示一佔優勢,則將VREAD1移位得較低;且若當前零/一計數指示零佔優勢,則將VREAD1移位得較高。(對於MLC記憶體之下部頁,用VREAD2取代前述實例中之VREAD1)。讀取臨限值被改變(移位)的量值的大小視情況由零(或一)之 數目的百分比判定。量值係基於以下各項中之一或多者:在一或多個樣本中觀測到的零及/或一之數目;該一或多個樣本之讀取臨限值增量;對對應於兩個分佈之峰值之間的中點的預測之器件臨限電壓分佈之瞭解;程式化/抹除計數(磨損);讀取干擾計數;保留時間;及其他類似因素。
找出讀取平衡點
在另外實施例中,將類二進位搜尋操作(在適當讀取電壓參考之各別值下反覆取樣同一讀取單元)用以找到讀取臨限值「讀取平衡點」。此為在器件臨限電壓軸線上在鄰近器件臨限電壓分佈之間的點,其導致原始資料(錯誤校正前)統計狀態分佈,在讀取時,該等原始資料統計狀態分佈在統計誤差容限內匹配所寫入之統計狀態分佈或其理想化之模型。
對於SLC記憶體及隨機擾亂(諸如,由加密產生),讀取平衡點為(自NVM讀取的原始資料之)零/一平衡最均勻(幾乎相同)的讀取臨限值(讀取電壓參考VREAD1)。在此等條件下,兩個狀態分佈具有50-50平衡。亦即,50%的所讀取狀態為零,且50%的所讀取狀態為一。(對於MLC記憶體之下部頁,用VREAD2取代前述中之VREAD1)。
在一些實施例中,讀取平衡點對應於以下各者中之一或多者:在兩個電壓分佈之間的中心點、兩個電壓分佈之間的最小值、所讀取資料中的零/一平衡最靠近50-50之點,及根據在兩個其他點處發現的零/一平衡之內插而判定之點。在具有對稱的鄰近器件臨限電壓分佈之實施例中,讀取平衡點對應於鄰近器件臨限電壓分佈之間的中心點。
找出所要的讀取平衡點且將讀取臨限值設定至所要的讀取平衡點減少了為了找到用以嘗試硬決策解碼之最佳點所需進行的讀取之數目。在再另外實施例中,若在找到讀取臨限值讀取平衡點前找到了 「足夠好的」讀取臨限值,則在二進位搜尋中之每一讀取臨限值取樣點(對於SLC記憶體,VREAD1之每一值,或對於MLC記憶體之下部頁,VREAD2之每一值)嘗試進行硬決策解碼。通常在找到足夠好的讀取臨限值時截斷搜尋,惟如下文關於可能為了軟決策解碼目的圍繞所判定之讀取平衡點進行額外取樣所論述除外。在各種實施例中,「足夠好的」讀取臨限值導致對原始讀取資料之成功的硬決策解碼。在一些實施例中,至少部分基於如上文關於讀取臨限值改變之量值詳述的各種因素來判定二進位搜尋中的搜尋步階之量值(讀取臨限值增量)。
MLC考量
在MLC記憶體中,管理多個讀取臨限值。在一些實施例中,藉由假定多個器件臨限電壓分佈之均勻位移且基於針對第一讀取臨限值(VREAD1)作出之決策(基於下部頁之讀取資料零/一平衡)改變所有其他讀取臨限值來執行此管理。
對於4LC NVM,理論上,存在11/10/00/01的25-25-25-25平衡(與零/一的50-50平衡形成對比)。然而,考慮到大體使用三個讀取電壓參考(VREAD2用於下部頁,且VREAD1及VREAD3用於上部頁)經由分開的陣列存取來讀取4LC,故不存在直接提供此平衡之單一操作。吾人可因此評估兩個各別零/一平衡:對於下部頁,在D1狀態與D2狀態之間,且對於上部頁,在E狀態與D1狀態之間,結合在D2狀態與D3狀態之間。或者,吾人可進行三個分開的類下部頁陣列存取,將單一下部頁讀取臨限值設定至在VREAD1、VREAD2及VREAD3中之每一者附近的值。
以實例說明,在一些4LC NVM實施例中,至少對於儲存於記憶胞中的兩個位元中之一者,讀取電壓參考VREAD1、VREAD2及VREAD3可能需要移位。與SLC情況類似地起作用,儲存於記憶胞中的兩個位元中之一者需要在第一讀取臨限值(在此MLC情況下,VREAD2)下的單一陣列存取。確定另一位元需要兩個額外讀取臨限值(VREAD1及VREAD3, 及實際上由NVM在內部執行的兩個相關聯之各別額外陣列存取)。
根據各種實施例:用於該另一位元之兩個讀取臨限值(VREAD1及VREAD3)被一致地移動相同及/或不同量(假設對於兩個狀態而言,漂移為類似的);抑或用於該另一位元之兩個讀取臨限值被獨立地移動(以額外的讀取操作為代價)。後一選項需要知曉記憶胞中的類SLC位元(LSB)之狀態,此係因為類SLC位元之狀態判定了將兩個讀取臨限值(VREAD1及VREAD3)中之哪一者用於確定對應的另一位元(MSB)。
在一些4LC實施例中,針對E分佈及D1分佈與D2分佈及D3分佈之同時摻合,評估組合之「上部頁」讀取資料零/一平衡。基於所讀取的組合之零/一平衡對所寫入的組合之零/一平衡之差異,且鑒於位元意義反向(對於自E移動至D1,1至0;及對於自D2移動至D3,0至1),在相反的方向上一致地移動對應的兩個讀取臨限值(VREAD1與VREAD3)。進行此移動,使得該摻合之每一分量之零/一平衡「在同一方向上」移動(例如,該等移動不發生衝突)。
在一些4LC實施例中,藉由對上部頁的零/一平衡之各別評估同時對於讀取單元之每一位元使用各別LSB而分開來判定兩個上部頁讀取臨限值(VREAD1及VREAD3)之移動。當LSB=1時,移動方向與LSB=0的情況的移動方向相反。舉例而言,藉由基於下部頁讀取資料之對應位元選擇性修改上部頁讀取資料之每一位元、將上部頁讀取資料的位元之意義自數值轉換至方向值(例如,0表示較高器件臨限電壓,且1表示較低器件臨限電壓)來計算上部頁差異,而非計算在上部頁讀取資料中的零計數與一計數之間的差異。在一些實施例中,對上部頁讀取資料的位元及下部頁讀取資料的對應位元之XNOR可執行該轉換。
自軟決策樣本移除偏差
在一些實施例中,自NVM獲得軟決策資訊以執行基於軟決策之解碼。藉由在標稱(未調整之)讀取臨限值周圍之各種讀取臨限值取樣 點(對於SLC,VREAD1之值)處讀取一讀取單元(或自一NVM晶粒一次傳送的每一讀取單元群組)以獲得讀取單元的資料之多個樣本,因此建立了讀取單元之每一位元之值的軟決策可能性而獲得軟決策資訊。樣本之間距至少部分視所使用的NVM之特定性質(諸如,其標稱電荷狀態間隔)而定。
然而,軟決策資訊有偏差,除非在其周圍取得樣本之標稱讀取臨限值為讀取臨限值讀取平衡點(如上文所述)。若當前讀取臨限值並非臨限值讀取平衡點,則所有軟決策資訊在一方向或另一方向上有偏差。以下為針對此進行調整且獲得無偏差(或至少偏差較少)之軟決策資訊的兩項實例技術:
1. 由於易於識別如在讀取臨限值取樣點中之每一者處取樣的讀取單元之零/一平衡,因此易於判定讀取臨限值讀取平衡點(根據實施例,諸如藉由使用線性內插)。計算對應於所判定之讀取臨限值讀取平衡點與(舊有的未調整之)標稱讀取臨限值之間的差之偏移。藉由相對於先前取樣軟決策資訊時之電壓應用該偏移(其中截斷大於1.0或小於0.0之值),使先前判定之軟決策資訊能夠被適當地「重新居中」且仍被使用。此方法不需要額外讀取,但針對資料中之一些產生不同量的精確度/準確度。
2. 由於易於識別如在讀取臨限值取樣點中之每一者處取樣的讀取單元之零/一平衡,因此在收集到所有需要之樣本後,易於判定最靠近讀取臨限值讀取平衡點之讀取臨限值取樣點。最靠近的讀取臨限值取樣點為其中零/一平衡最接近所寫入之零/一平衡的讀取臨限值取樣點。對於SLC加密(或擾亂)之情況,其為最靠近於具有50-50平衡之讀取臨限值取樣點。因為所有樣本標稱上具有彼此間之相等間距,所以最靠近的樣本被選擇為新的標稱讀取臨限值,且視情況搜集額外軟決策資訊樣本(假定新標稱讀取臨限值與舊標稱讀取臨限值不同)。或 者,首先進行用以找到臨限值讀取平衡點之二進位搜尋,其中二進位搜尋之精確度被限制於軟決策資訊之所要精確度所需的最精細取樣粒度。軟決策資訊之所要精確度具有在新標稱讀取臨限值周圍的相關聯之樣本窗。進行作為獲得軟決策資訊所需的多個讀取之部分之二進位搜尋不需要額外讀取,除非舊的標稱讀取臨限值落在所要的精確度樣本窗之外。
在到目前為止所描述之SLC加密實施例中,以上技術已集中於找到可產生最靠近50-50之讀取資料零/一平衡的較佳讀取臨限值。對於器件臨限電壓分佈具有大體相同對稱形狀且不實質上重疊之情況,此較佳讀取臨限值將亦對應於組合之器件臨限電壓分佈中之最小值。
自器件臨限電壓分佈上之已知點內插得到的讀取臨限值
在一些實施例中,找到較佳讀取臨限值之另一方法是改為找到兩個點(在每一鄰近器件臨限電壓分佈上有一個點),且藉由內插來判定在此等兩個點之間的中點。舉例而言,在每一器件臨限電壓分佈之峰值處取樣應產生讀取資料零/一(或一/零,視哪一峰值而定)之75/25平衡。一旦識別了兩個峰值,則將器件臨限電壓軸線上之兩個點之間的計算得之中點用以設定新讀取臨限值。
若預先已知器件臨限電壓分佈不均勻(例如,不對稱地偏向一側或另一側,諸如,藉由具有長尾部),則在一些實施例中,將彼資訊用以解譯峰值之位置且藉由稍微更複雜之內插(例如,不僅僅為中點)來找出中心之位置。諸如保留時間及/或磨損之因素可影響器件臨限電壓分佈之對稱性,且在一些實施例中被考量。在一些實施例中,亦使用多個取樣點來展現器件臨限電壓分佈之形狀。
在器件臨限電壓調整之範圍有限的一些實施例中,找到真峰值可能為不可能的。詳言之,對於一些快閃記憶體器件,器件臨限電壓無法被移動得小於0V,儘管E狀態之電壓分佈會延伸至負器件臨限電 壓。對器件臨限電壓分佈之瞭解仍准許經由內插來判定中點。舉例而言,若在0V,讀取資料零/一平衡為60/40,則觀測到大致10%的過量零,且在0V右邊的E分佈區域大致為10%。在一些實施例之第一方法中,找到D1分佈之峰值,且基於對E分佈之大致形狀的瞭解來內插中點。在一些實施例之第二方法中,找到讀取資料零/一平衡為40/60的D1分佈之點(與0V量測相反之點)。接著將60/40觀測與40/60觀測之間的計算得之中點用以設定新的較佳讀取臨限值。藉由對兩個器件臨限電壓分佈之額外瞭解及/或量測,可按較大精確度來判定計算得之中點。
在一些實施例中,正被內插之點皆在與讀取平衡點相同的側上。舉例而言,在知曉第一讀取臨限值取樣點X產生75/25讀取資料零/一平衡且第二讀取臨限值取樣點Y產生62.5/37.5的情況下,讀取平衡點將靠近Y +/-(X-Y),其中是「+」抑或「-」視Y是否小於X而定。讀取平衡點之方向係對應於將讀取資料零/一平衡移動得較靠近50/50之方向。在給定實例中,亦即,其為自X朝向Y之方向。對器件臨限電壓分佈之瞭解將產生比所指示之簡單線性內插準確的內插。
離線追蹤
在各種實施例及/或使用情境中,NVM中之器件臨限電壓分佈隨時間過去而移位,且引起讀取錯誤(例如,當硬決策解碼時)。當器件臨限電壓分佈移位時,先前低於(或高於)某一讀取臨限值的值落在該某一讀取臨限值以上(或以下)且引起位元錯誤。例如,將先前被儲存為D1分佈(且被認為處於D1分佈中)之值判定為處於D2分佈中,因而導致位元錯誤。少量位元錯誤為可校正的;然而,足夠數目個位元錯誤會引起不可校正(例如,硬決策解碼)錯誤。在一些實施例及/或使用情境中,經由對讀取臨限值之前瞻式調整,諸如,經由獨立於不可校正錯誤偵測的調整讀取臨限值之離線追蹤,可避免原本會出現之不可 校正(例如,硬決策解碼)錯誤。
實例實施例
作為實施方式之序言的終結,以下為提供對根據本文中所描述之概念之各種實施例類型之額外描述的實例實施例之集合,其包括至少一些被明確列舉為「EC」(實例組合)之實例實施例;此等實例並不意謂為互斥性的、詳盡的或限制性的;且本發明並不限於此等實例實施例,而是涵蓋在所發表之申請專利範圍及其等效內容之範疇內的所有可能修改及變化。
EC1)一種方法,其包含:當根據一或多個舊操作讀取臨限值讀取時,判定一非揮發性記憶體(NVM)之一或多個部分中的包含經擾亂之資料之一子部分符合一條件;及回應於至少該判定,將該等舊操作讀取臨限值調整至各別新操作讀取臨限值。
EC2)一種方法,其包含:擾亂待寫入至一非揮發性記憶體(NVM)之一部分的資料,以產生具有已知統計平均數目個「0」位元及已知統計平均數目個「1」位元的經擾亂之資料;將該經擾亂之資料寫入至該部分;在該寫入後,根據一或多個舊操作讀取臨限值讀取該部分;當根據該等舊操作讀取臨限值讀取時,判定一非揮發性記憶體(NVM)之一或多個區域中的包含經擾亂之資料之一子部分符合一條件;及回應於至少該判定,將該等舊操作讀取臨限值調整至各別新操作讀取臨限值。
EC3)一種方法,其包含: 根據樣本讀取臨限值讀取一非揮發性記憶體(NVM)之一第一部分;至少部分基於該讀取之一些結果而估計新器件臨限電壓分佈;至少部分基於該等估計之新器件臨限電壓分佈中之一些而計算一或多個新操作讀取臨限值;及根據該等新操作讀取臨限值執行對該NVM之一第二部分的一或多個讀取。
EC4)一種方法,其包含:讀取一非揮發性記憶體(NVM)之一經管理的部分群組中之一或多個代表性部分;至少部分基於該讀取之一些結果而估計新器件臨限電壓分佈;至少部分基於該等估計之新器件臨限電壓分佈中之一些而計算一或多個新操作讀取臨限值;及根據該等新操作讀取臨限值執行對該NVM之各別位置的一或多個讀取。
EC5)一種方法,其包含:自一非揮發性記憶體(NVM)之一經管理的部分群組選擇該等部分中之一或多個代表性部分;根據各別舊操作讀取臨限值而讀取該等代表性部分中之每一者的至少一各別子部分;判定根據該等各別舊操作讀取臨限值對該等各別子部分中之至少一者的該讀取符合一條件;根據樣本讀取臨限值而讀取該等各別子部分中之該至少一者;至少部分基於該根據該等樣本讀取臨限值讀取該等各別子部分中之該至少一者的結果中之一些,估計新器件臨限電壓分佈;至少部分基於該等估計之新器件臨限電壓分佈中之一些而計算 一或多個新操作讀取臨限值;及根據該等新操作讀取臨限值而執行對該NVM之各別位置的一或多個讀取。
EC6)如EC5之方法,其進一步包含重複執行該選擇、該兩個讀取動作、該判定、該估計及該計算中之任何一或多者。
EC7)如EC1、EC2或EC5之方法,其中該條件為超過一目標位元錯誤率。
EC8)如EC7之方法,其中該目標位元錯誤率為可組態的。
EC9)如EC7之方法,其中該目標位元錯誤率為一可校正位元錯誤率之一半。
EC10)如EC1、EC2或EC5之方法,其中該條件為根據該等舊操作讀取臨限值執行之該讀取超過零之一數目與一之一數目之間的一目標差異。
EC11)如EC1或EC2之方法,其中回應於一可組態週期之期滿而執行該判定及該調整中之任何一或多者。
EC12)如EC5之方法,其中至少與一可組態週期一樣頻繁地執行該選擇、該兩個讀取動作、該判定、該估計及該計算中之任何一或多者。
EC13)如EC11或EC12之方法,其中該可組態週期為一或多週。
EC14)如EC3、EC4或EC5之方法,其中該等估計之新器件臨限電壓分佈為高斯分佈。
EC15)如EC3、EC4或EC5之方法,其中該估計會估計該等估計之新器件臨限電壓分佈中之每一者的一各別平均值及一各別標準差。
EC16)如EC3、EC4或EC5之方法,其中該估計至少部分基於一Q表。
EC17)如EC3、EC4或EC5之方法,其中至少部分基於該等估計之 新器件臨限電壓分佈之一或多個估計之平均值及/或標準差來計算該等新操作讀取臨限值。
EC18)如EC3之方法,其中該第一部分包含經擾亂之資料。
EC19)如EC3之方法,其中該第一部分包含該NVM之一或多個讀取單元、一或多個頁及一或多個區塊中的任一者。
EC20)如EC18之方法,其中該第二部分包含經擾亂之資料。
EC21)如EC18之方法,其中該第一部分與該第二部分為同一部分。
EC22)如EC18之方法,其中該第一部分與該第二部分在該NVM之同一區塊內。
EC23)如EC18之方法,其中該第一部分含有該NVM之複數個區塊中的一特定區塊之一第一頁之至少一部分,且該第二部分含有該特定區塊之一第二頁之至少一部分,該第二頁與該第一頁不同。
EC24)如EC4或EC5之方法,其中該經管理的部分群組之該等部分共用至少一經判定之特性。
EC25)如EC24之方法,其中該判定之特性至少部分基於程式化循環之一數目、抹除循環之一數目、一程式化窗、為一下部頁、為一上部頁、為一上部頁或一下部頁及為一中間頁中之任何一或多者。
EC26)如EC4或EC5之方法,其中該等代表性部分被隨機選擇。
EC27)如EC4或EC5之方法,其中該等代表性部分包含一或多個區塊。
EC28)如EC4或EC5之方法,其中該一或多個代表性部分包含經擾亂之資料。
EC29)如EC4或EC5之方法,其中該等部分中之每一者對應於抹除該NVM之一或多個最小單元。
EC30)如EC4或EC5之方法,其中該等各別位置中之至少一者係 在該等代表性部分中之一者內。
EC31)如EC4或EC5之方法,其中該等各別位置中之至少一者不在該等代表性部分中之任一者內。
EC32)如EC4之方法,其中該讀取係根據樣本讀取臨限值。
EC33)如EC3、EC5或EC32之方法,其中該等樣本讀取臨限值包含第一組及第二組最低有效位元(LSB)樣本讀取臨限值。
EC34)如EC33之方法,其中該第一組LSB樣本讀取臨限值係至少部分基於在該讀取前所使用之操作讀取臨限值。
EC35)如EC34之方法,其中該第二組LSB樣本讀取臨限值係至少部分基於根據該第一組LSB樣本讀取臨限值執行之讀取的零之一數目與一之一數目之間的一差異。
EC36)如EC3、EC5或EC32之方法,其中在該讀取前所使用之操作讀取臨限值包含至少三個先前操作讀取臨限值,且該等樣本讀取臨限值至少包含兩個LSB樣本讀取臨限值之一第一集合及兩個MSB樣本讀取臨限值之一第二集合。
EC37)如EC5之方法,其中該等代表性部分中之每一者的該至少該各別子部分包含該等代表性部分中之每一者的所有子部分。
EC38)如EC5之方法,其中該等各別子部分包含經擾亂之資料。
EC39)如EC1、EC2、EC3、EC4或EC5之方法,其進一步包含回應於經由與至少一儲存介面標準相容之一主機介面接收之來自一主機的一或多個請求,經由根據該等新操作讀取臨限值之讀取自該NVM擷取資訊。
EC40)如EC1、EC2、EC3、EC4或EC5之方法,其進一步包含經由一快閃記憶體介面將該等新操作讀取臨限值傳達至該NVM。
EC41)如EC1、EC2、EC3、EC4或EC5之方法,其中該NVM包含一或多個快閃記憶體。
EC42)具有或涉及一儲存介面標準的前述EC中之任一者,其中該儲存介面標準包含以下各者中之一或多者一通用串列匯流排(USB)介面標準,一緊密快閃記憶體(CF)介面標準,一多媒體卡(MMC)介面標準,一內嵌型MMC(eMMC)介面標準,一Thunderbolt介面標準,一UFS介面標準,一安全數位(SD)介面標準,一Memory Stick介面標準,一xD-picture卡介面標準,一整合式驅動電子器件(IDE)介面標準,一串列進階附接技術(SATA)介面標準,一外部SATA(eSATA)介面標準,一小型電腦系統介面(SCSI)介面標準,一串列附接小型電腦系統介面(SAS)介面標準,一光纖通道介面標準,一乙太網路介面標準,及一快速周邊組件互連(PCIe)介面標準。
EC43)具有或涉及一快閃記憶體介面的前述EC中之任一者,其中該快閃記憶體介面與以下各者中之一或多者相容一開放式NAND快閃記憶體介面(ONFI),一雙態觸發模式介面,一雙資料速率(DDR)同步介面,一DDR2同步介面,一同步介面,及 一非同步介面。
EC44)具有或涉及一主機的前述EC中之任一者,其中該主機包含以下各者中之一或多者一電腦,一工作站電腦,一伺服器電腦,一儲存伺服器,一儲存附接網路(SAN),一網路附接儲存(NAS)器件,一直接附接儲存(DAS)器件,一儲存器具,一個人電腦(PC),一膝上型電腦,一筆記型電腦,一迷你筆記型電腦,一平板器件或電腦,一超輕薄筆記型電腦,一電子閱讀器件(一電子閱讀器),一個人數位助理(PDA),一導航系統,一(手持型)全球定位系統(GPS)器件,一汽車控制系統,一汽車媒體控制系統或電腦,一印表機、影印機或傳真機或萬用器件,一銷售點POS器件,一收銀機, 一媒體播放器,一電視,一媒體記錄器,一數位視訊記錄器(DVR),一數位相機,一蜂巢式手機,一無線電話手機,及一電子遊戲(electronic game)。
EC45)具有或涉及至少一快閃記憶體的前述EC中之任一者,其中該至少一快閃記憶體之至少一部分包含以下各者中之一或多者NAND快閃記憶體技術儲存記憶胞,及NOR快閃記憶體技術儲存記憶胞。
EC46)具有或涉及至少一快閃記憶體的前述EC中之任一者,其中該至少一快閃記憶體之至少一部分包含以下各者中之一或多者單位階記憶胞(SLC)快閃記憶體技術儲存記憶胞,及多位階記憶胞(MLC)快閃記憶體技術儲存記憶胞。
EC47)具有或涉及至少一快閃記憶體的前述EC中之任一者,其中該至少一快閃記憶體之至少一部分包含以下各者中之一或多者基於多晶矽技術之電荷儲存記憶胞,及基於氮化矽技術之電荷儲存記憶胞。
EC48)具有或涉及至少一快閃記憶體的前述EC中之任一者,其中該至少一快閃記憶體之至少一部分包含以下各者中之一或多者基於二維技術之快閃記憶體技術,及基於三維技術之快閃記憶體技術。
系統
在一些實施例中,I/O器件(諸如,SSD)包括一SSD控制器。SSD 控制器充當SSD之主機介面與NVM之間的橋接器,且執行自計算主機經由SSD之主機介面發送之主機協定之命令。該等命令中之至少一些指導SSD分別用自計算主機發送之資料寫入NVM及自NVM讀取發送至計算主機之資料。在其他實施例中,使SSD控制器能夠使用映射來在主機協定之LBA與NVM中之實體儲存位址之間轉譯。在另外實施例中,該映射之至少一部分用於I/O器件之私用儲存器(計算主機不可見)。舉例而言,LBA之不可由計算主機存取之部分被I/O器件用以管理對記錄檔、統計資料或其他私用資料的存取。
在一些實施例中,存取NVM中之不同大小之配量的壓縮資料在一些使用情境中提供改良之儲存效率。舉例而言,SSD控制器接收來自計算主機之(未壓縮)資料(例如,與磁碟寫入命令有關),壓縮該資料,且將經壓縮之資料儲存至快閃記憶體中。回應於來自計算主機之後續請求(例如,與磁碟讀取命令有關),SSD控制器自快閃記憶體讀取經壓縮之資料,對經壓縮之資料解壓縮,且將經解壓縮之資料提供至計算主機。根據不同大小之配量將經壓縮之資料儲存於快閃記憶體中,該配量大小歸因於(例如)關於各種資料之壓縮演算法、操作模式及壓縮有效性而不同。SSD控制器部分地藉由查閱所包括之映射表以判定標頭儲存於快閃記憶體中何處來對資料解壓縮。SSD控制器剖析自快閃記憶體獲得之標頭以判定適當(經壓縮之)資料儲存於快閃記憶體中何處。SSD控制器解壓縮來自快閃記憶體之適當資料以產生經解壓縮之資料以提供至計算主機。在本申請案中,解壓縮(uncompress)(及其變體)與解壓(decompress)(及其變體)同義。
在各種實施例中,SSD控制器包括用於與計算主機介接之主機介面、用於與NVM(諸如,快閃記憶體)介接之介面,及用於控制該等介面且執行(及/或控制該執行之各種態樣)壓縮及解壓縮以及較低層級錯誤校正、較高層級錯誤校正及藉由獨立矽元件之動態較高層級冗餘模 式管理的電路。
根據各種實施例,一些主機介面與以下各者中之一或多者相容:USB介面標準、CF介面標準、MMC介面標準、eMMC介面標準、Thunderbolt介面標準、UFS介面標準、SD介面標準、Memory Stick介面標準、xD-picture卡介面標準、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控制器100的SSD 101之選定細節,SSD控制器100實施讀取臨限值之最佳化(例如,經由零/一平衡管理及/或離線追蹤技術)以用於管理非揮發性記憶體(NVM)元件(例如,快閃記憶體)。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快閃記憶體、使用基於多晶矽或氮化矽技術之電荷儲存記憶胞的快閃記憶體、基於二維或三維技術之快閃記憶體、唯讀記憶體、靜態隨機存取記憶體、動態隨機存取記憶體、鐵磁記憶體、相變記憶體、賽道(racetrack)記憶體、ReRAM或任一其他類型之記憶體器件或儲存媒體。
根據各種實施例,器件介面190經組織為:一或多個匯流排,每匯流排具有快閃記憶體器件192中之一或多者;一或多個匯流排群組,每匯流排具有快閃記憶體器件192中之一或多者,其中通常並行地存取一群組中之匯流排;或將快閃記憶體器件192中之一或多者組織至器件介面190上的任一其他方式。
在圖1A中繼續,SSD控制器100具有一或多個模組,諸如,主機介面111、資料處理121、緩衝器131、映射141、回收器(recycler)151、ECC 161、器件介面邏輯191及CPU 171。圖1A中說明之具體模組及互連件僅代表一實施例,且設想到該等模組以及未說明之額外模組中之一些或全部的許多配置及互連件。在第一實例中,在一些實施例中,存在兩個或兩個以上主機介面111以提供雙重埠連接(dual porting)。在第二實例中,在一些實施例中,資料處理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命令為一例示性解除分配命令。對於又一實例,該等命令包括一超級電容器測試命令或一資料強化(data hardening)成功查詢;作為回應,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能力,其中冗餘在快閃記憶體器件(例如,快閃記憶體器件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包括排程193以經由器件介面190選擇性地對快閃記憶體器件192之例項進行序列控制。舉例而言,在一些實施例中,使排程193能夠將對快閃記憶體器件192之例項的操作排入佇列,且當快閃記憶體器件192(或快閃記憶體晶粒194)之例項中的個別者可用時,選擇性地將操作發送至快閃記憶體器件192(或快閃記憶體晶粒194)之例項中的個別者。
映射141使用表143將外部資料位址映射至NVM 199中之位置來 在用於外部介面110上之資料定址與用於器件介面190上之資料定址之間轉換。舉例而言,在一些實施例中,映射141經由藉由表143提供之映射而將用於外部介面110上之LBA轉換為以一或多個快閃記憶體晶粒194為目標之區塊及/或頁位址。對於自從磁碟機製造或解除分配以來從未寫入之LBA,映射指向當讀取LBA時所傳回之一預設值。舉例而言,當處理一解除分配命令時,該映射經修改以使得對應於經解除分配之LBA的輸入項指向預設值中之一者。在各種實施例中,存在各種預設值,每一預設值具有對應的指標。複數個預設值允許實現將一些經解除分配之LBA(諸如,在第一範圍中)讀取為一預設值,而將其他經解除分配之LBA(諸如,在第二範圍中)讀取為另一預設值。在各種實施例中,由快閃記憶體、硬體、韌體、命令及/或原始引數及/或參數、可程式化暫存器或其各種組合來定義該等預設值。
在一些實施例中,映射141使用表143執行及/或查找用於外部介面110上之位址與用於器件介面190上之資料定址之間的轉譯。根據各種實施例,表143為以下各者中之一或多者:單階映射;二階映射;多階映射;映射快取記憶體;經壓縮之映射;自一位址空間至另一位址空間的任一類型之映射;及前述各者之任何組合。根據各種實施例,表143包括以下各者中之一或多者:靜態隨機存取記憶體;動態隨機存取記憶體;NVM(諸如,快閃記憶體);快取記憶體;晶片上記憶體;晶片外記憶體;及前述各者之任何組合。
在一些實施例中,回收器151執行廢棄項目收集。舉例而言,在一些實施例中,快閃記憶體器件192之例項含有在區塊可重新寫入之前必須被抹除的區塊。使回收器151能夠(諸如)藉由掃描由映射141維護之映射來判定快閃記憶體器件192之例項之哪些部分正在有效地使用中(例如,經分配而非解除分配),且藉由抹除快閃記憶體器件192之例項之未使用(例如,解除分配)部分而使其可用於寫入。在另外實 施例中,使回收器151能夠移動儲存於快閃記憶體器件192之例項中的資料以使快閃記憶體器件192之例項之較大連續部分可用於寫入。
在一些實施例中,選擇性地及/或動態地組態、管理及/或使用快閃記憶體器件192之例項,以具有用於儲存不同類型及/或性質之資料的一或多個帶。可動態地改變帶之數目、配置、大小及類型。舉例而言,將來自計算主機之資料寫入至熱(作用中)帶中,而將來自回收器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、數位相機、蜂巢式手機、無線電話手機及電子遊戲。
在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之全部或任何部分被實施於單一IC、多晶粒IC之單一晶粒、多晶粒IC之複數個晶粒或複數個IC上。舉例而言,緩衝器131與SSD控制器100之其他元件實施於相同的晶粒上。對於另一實例,緩衝器131與SSD控制器100之其他元件實施於不同的晶粒上。
圖1B說明包括圖1A之SSD之一或多個例項的系統之各種實施例之選定細節。SSD 101包括經由器件介面190耦接至NVM 199之SSD控制器100。該圖說明各種類別之實施例:單一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之例項中的一或多者/自SSD 101之例項中的一或多者接收之資料,及自以下各者中的任何一或多者接收/發送至以下各者中的任何一或多者之資料:OS 105,經由驅動程式107;驅動程式107;及應用程式109,經由驅動程式107或直接作為VF。
OS 105包括用於與SSD介接的驅動程式(由驅動程式107概念性地說明)及/或經啟用以與該驅動程式一起操作。各種版本之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的命令。一些磁碟機及/或驅動程式具有直通模式以使應用程式層級程式(諸如,應用程式109)能夠經由最佳化之NAND存取(有時被稱為ONA)或直接NAND存取(有時被稱為DNA)技術將命令直接傳達至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、膝上型電腦、筆記型電腦及/或迷你筆記型電腦)的實施例中之一些)中,視情況使計算主機能夠與一或多個本端及/或遠端伺服 器(例如,選用之伺服器118)通信(例如,經由選用之I/O及儲存器件/資源117及選用之LAN/WAN 119)。該通信允許實現(例如)對SSD 101元件中之任何一或多者的本端及/或遠端存取、管理及/或使用。在一些實施例中,該通信係完全或部分地經由乙太網路。在一些實施例中,該通信係完全或部分地經由光纖通道。在各種實施例中,LAN/WAN 119表示一或多個區域及/或廣域網路,諸如,伺服器群中之網路、耦接伺服器群之網路、都會網路及網際網路中之任何一或多者。
在各種實施例中,與一或多個NVM結合之SSD控制器及/或計算主機快閃記憶體控制器被實施為非揮發性儲存組件,諸如,USB儲存組件、CF儲存組件、MMC儲存組件、eMMC儲存組件、Thunderbolt儲存組件、UFS儲存組件、SD儲存組件、Memory Stick儲存組件,及xD-picture卡儲存組件。
在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之全部或任何部分或其功能被實施於控制器待耦接之主機(例如,圖1B之主機102)中。在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之全部或任何部分或其功能係經由硬體(例如,邏輯電路)、軟體及/或韌體(例如,驅動程式軟體或SSD控制韌體)或其任何組合而實施。舉例而言,ECC單元(諸如,類似於圖1A之ECC 161及/或ECC-X 135)之功能性或與其相關聯之功能性係部分地經由主機上之軟體且部分地經由SSD控制器中之韌體與硬體之組合而實施。對於另一實例,回收器單元(諸如,類似於圖1A之回收器151)之功能性或與其相關聯之功能性係部分地經由主機上之軟體且部分地經由計算主機快閃記憶體控制器中之硬體而實施。
零/一平衡恢復
圖2A至圖2D說明與「零/一」平衡恢復相關之器件臨限電壓分 佈。為了此論述之目的,每一山丘狀隆起為獨立的類高斯曲線之抽象,該曲線表示NVM之讀取單元大小之部分之各別狀態的器件臨限電壓機率分佈。器件臨限電壓軸線係繪製為電壓向右正向增大。有意地未提供絕對標度,且未識別參考點,使得該等曲線更一般地適用於更大的NVM群體。圖2A及圖2B特定針對SLC,而圖2C及圖2D特定針對MLC。
在表示初始時間(例如,當寫入對應的資料時)之圖2A中,最左邊的分佈220表示邏輯一,且最右邊的分佈230表示邏輯零。視技術而定,最左邊的分佈可駐留(至少主要地)於負電壓處。讀取臨限值210理想地位於兩個分佈之間。
除了如由本文中之實施例聯繫起來外,在一些實施例中,獨立於此等器件臨限電壓分佈,藉由對正儲存的零及一之統計分佈之具體瞭解來寫入NVM。更特定而言,在一些實施例中,使用各種加密及/或擾亂技術,使得零及一之統計分佈為50-50百分比(百分之50的零及百分之50的一)。當使用標稱讀取臨限值(對於圖2A之情況,其位置理想)讀取SLC時,零與一的觀測之讀取資料統計分佈同樣為50-50百分比。統計分佈為50-50百分比不意謂資料之任一樣本將具有「0」位元與「1」位元之恰好均勻平衡,而相反,對於許多樣本之平均會產生收斂於50-50百分比的「0」位元與「1」位元之比率,其中隨著樣本之數目增加,機率界限愈加緊密。類比為當翻轉硬幣許多次時正面與背面之分佈,其產生具有近似於n/4之方差的高斯分佈,其中n為硬幣翻轉之次數。舉例而言,若在讀取單元中存在具有「0」位元與「1」位元之50-50百分比統計分佈的18,432個位元,則「0」位元(或「1」位元)之數目之方差大致為4,608,且標準差為大致68。在標準差為68的情況下,將預期讀取單元之少於百萬分之一的樣本會具有與9,216之平均值相差340(5個標準差)以上的「0」位元之數目。
在表示稍後時間之圖2B中,標稱讀取臨限值210如在圖2A中,且兩個器件臨限電壓分佈225及235被相對於圖2A中之其較早各別分佈220及230移位。為了舉例說明之目的,將兩個分佈展示為皆已均勻地向左移位(朝向更負的電壓)。應理解,更通常地,使兩個分佈能夠獨立於彼此且在正抑或負方向上移動。
鑒於圖2B,當再次使用標稱讀取臨限值210讀取SLC時,可預測直接自NVM讀取(例如,在任何錯誤校正之前)的零及一之所觀測之統計分佈將並非50-50百分比。更特定而言,對於給定之概念實例,將預期會有錯誤的過多的一,此係因為讀取臨限值使得零中之一些將被誤讀為一。
實務上,使推斷之方向顛倒。亦即,在實務上,通常,器件臨限電壓分佈之此等移位並不已知或直接可知。在一些實施例中,取而代之,將對自NVM讀取的零與一之差異(相對於零與一之已知的所儲存的分佈)之觀測用以推斷器件臨限電壓分佈的移位之存在。此外,在此等實施例中,按需要,至少部分基於觀測之差異將讀取臨限值調整(如本文中其他處所詳述)至讀取臨限值215,直至恢復零/一平衡為止。
類似地,圖2C表示具有初始器件臨限電壓分佈之初始時間(諸如,當寫入對應的資料時),而圖2D表示具有對應的稍後器件臨限電壓分佈之稍後時間。更具體而言,對於分別表示11、10、00及10狀態之選定格雷碼映射,使(圖2D之)器件臨限電壓分佈251、261、271及281相對於(圖2C之)其較早各別器件臨限電壓分佈250、260、270及280移位。亦展示了三個標稱(初始)讀取臨限值:VREAD1 240、VREAD2 242及VREAD3 244。再次為了舉例說明之目的,在圖2D中,將四個分佈展示為皆已均勻地向左移位(朝向更負的電壓)。應理解,更通常地,使四個分佈能夠獨立於彼此且在正抑或負方向上移動。
在一些實施例中,使用各種擾亂技術,使得四個狀態之統計分佈為25-25-25-25百分比(在每一狀態下,百分之25)。在一些實施例中,當使用標稱讀取臨限值(對於圖2C之情況,其位置理想)讀取MLC時,四個狀態之統計分佈可組態以同樣地為25-25-25-25百分比。(如其他處所論述,零及一可直接由控制器觀測到,但按需要,所有四個狀態為可推斷的)。在一些實施例中,將對自NVM讀取的差異(自預期25-25-25-25百分比之偏差)(相對於已知的所儲存之狀態分佈)之觀測用以推斷器件臨限電壓分佈的移位之存在。接著如在圖2D中所示調整讀取臨限值(如本文中其他處所詳述)以變為VREAD1 265、VREAD2 275及VREAD3 285。在一些實施例中,針對下部頁讀取(調整VREAD2 275)及上部頁讀取(調整VREAD1 265及/或VREAD3 285)分別執行讀取臨限值調整。
用於零/一平衡恢復之功能
圖3提供圖1A及圖1B之SSD 101、SSD控制器100及NVM 199之替代視圖,其重新繪製選定邏輯區塊邊界以強調特定功能。在頂層處之SSD 101以外部介面110、SSD控制器100、NVM 199及器件介面190為特徵。
外部介面110耦接至主機(諸如,圖1B之主機102),且支援諸如SATA之高層級儲存協定,其包含來源於主機的與儲存有關之命令及寫入資料及來源於控制器的讀取資料,且如在上文圖1A之論述中所詳述。器件介面190支撐低層級NVM I/O異動,如在圖1A之論述中所詳述。NVM 199以NVM陣列332、可程式化讀取電壓電路334、控制/狀態暫存器336及I/O 338為特徵。SSD控制器100以主機介面111、擾亂器310、ECC編碼器320、器件介面邏輯191、不平衡偵測器340、緩衝器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」狀態。在一些實施例中,擾亂器310執行加密,諸如,經由作為加密之副產物使資料隨機化之AES編碼器。在一些實施例中,擾亂器310使用線性回饋移位暫存器(LFSR)使資料隨機化(但無任何資料安全性意圖)。ECC編碼器320處理經擾亂之寫入資料311以添加額外ECC位元,從而導致經ECC編碼之寫入資料321,將該經ECC編碼之寫入資料321提供至器件介面191,以用於經由器件介面190儲存至NVM 199內。
基本讀取路徑及功能性為如下。包含未校正且經擾亂之(原始)讀取資料359的NVM頁係自NVM 199經由器件介面190接收。繼續參看圖3,每一讀取單元標稱地包含由擾亂器301擾亂之資料,以及由ECC編碼器320產生但通常作為NVM儲存及擷取操作之結果被非故意地更改之額外ECC位元。經由緩衝器131將讀取單元提供至ECC解碼器360。ECC解碼器360處理讀取單元,利用所包括之額外ECC位元來大體上校正自從第一次ECC編碼資料以來可在任何點及時間出現之任何錯誤,從而導致經校正之讀取資料361,將經校正之讀取資料361提供至解擾亂器370。解擾亂器370對經校正之讀取資料361操作,顛倒由擾亂器310執行的擾亂,從而導致經去擾亂之讀取資料371,其被作為讀取資料351經由緩衝器131提供至主機介面111。
讀取路徑及功能性進一步包括不平衡偵測器340及平衡恢復邏輯 360。不平衡偵測器340監視自NVM接收之原始讀取資料359,且至少臨時維持關於狀態之統計分佈的資料。平衡恢復邏輯380經由器件介面邏輯191及NVM I/O 338而與NVM控制/狀態暫存器336互動以經由NVM可程式化讀取電壓電路334選擇性地調整NVM讀取臨限值(用以讀取NVM陣列332)。NVM讀取臨限值之一實例為在圖5A及圖5B中提及之當前讀取臨限值。在一些實施例中,NVM讀取臨限值被寫入至控制/狀態暫存器336且組態可程式化讀取電壓電路334。基於以下各項來調整讀取臨限值:a)由ECC解碼器360偵測的不可校正之讀取362,及b)由不平衡偵測器340偵測的不平衡341(在狀態之統計資料中)。在SLC及MLC實施例中,讀取單元皆為二進位資料。在SLC之情況下(或當將MLC當作SLC來操作時),零及一之差異可被直接量測。在一些實施例中,基於對將資料儲存於NVM中的方式之瞭解來推斷MLC之兩個以上狀態之差異。
圖3說明在主機作為寫入至NVM 199及自NVM 199讀取之資料的源及儲集器進行操作之內容脈絡中的零/一平衡恢復之功能。在各種實施例(諸如,如由圖1A及圖1B所說明)中,一或多個其他代理程式作為寫入至NVM 199及自NVM 199讀取之資料的源及儲集器進行操作。其他代理程式之一實例為圖1A之回收器151,其將資料自NVM 199中之一位置移動至另一位置,如本文中其他處所描述。
在各種實施例中,至少部分使用資料處理121及ECC 161(兩者皆在圖1A中)中之一或多者實施與擾亂器310、ECC編碼器320、ECC解碼器360及解擾亂器370中之任何一或多者相關聯的功能性之任何或所有部分。
用於零/一平衡恢復之控制流程
圖4說明圖1A、圖1B及圖3之SSD之一實施例之選定控制流程細節,其提供關於與寫入有關之操作及與讀取有關之操作的特定細節。 寫入操作開始於動作410,且繼續經過430。雖然未明確繪製返回路徑,但隨後寫入操作重新開始於動作410。類似地,讀取操作開始於動作440,且繼續經過460,且有條件地繼續經過480。雖然未明確繪製返回路徑,但隨後的讀取操作重新開始於動作440。假定至少一初始寫入先於對同一位置的讀取。在其他方面,除了計劃之情況(諸如,在測試中)外,對於相同或大體不同的位置,通常按應用需要的規定獨立地調用讀取操作及寫入操作。然而,在試探實例中,第一讀取操作440概念上緊接在對同一位置的最後寫入操作430後繼續。
更詳細地考慮與寫入有關之操作,通常首先在動作410中擾亂待寫入至NVM之原始資料,諸如,經由加密或LFSR之使用。除使用較多特異性之情況外,如本文中使用之術語「擾亂」指代經由會導致在儲存於NVM中之各種狀態間的已知統計分佈之任何操縱或選擇來操縱待寫入的原始資料。擾亂方法包括加密及LFSR技術。(亦參見圖3之擾亂器310)。在一些加密實施例中,擾亂係根據AES加密規範之至少一版本。在一些LFSR實施例中,擾亂係根據LFSR之至少一選擇。在一些實施例中,經由選擇一或多個測試型樣,從而當寫入至NVM時提供狀態之經選擇之統計分佈(不一定使用加密或LFSR處理)來更直接地判定擾亂。
LFSR為具有一組合邏輯回饋網路之硬體移位暫存器,該組合邏輯回饋網路根據移位暫存器之選定分接頭之線性函數或其軟體模型產生輸入位元。LFSR產生確定性的偽隨機序列。至少在概念上,將LFSR產生之偽隨機序列模2加至原始資料以提供經擾亂之資料。
隨後,接下來視情況ECC編碼經擾亂之資料,如在動作420中所說明。(亦參見圖3之ECC編碼器320)。ECC編碼提供冗餘資訊,其促進在遇到當使用NVM時因各種原因而發生的錯誤時之資料恢復(經由錯誤校正)。此等錯誤較普遍,且因此,在具有較小幾何形狀、較多 使用、較大使用年限、較大溫度漂移及使用MLC記憶體中的一或多者的情況下,ECC編碼較可取。
接著將經擾亂且視情況經ECC編碼之資料寫入至NVM,如在動作430(與寫入有關之操作中的最後一者)中所示。已知正寫入的狀態之分佈為擾亂之結果。在使用SLC記憶體及AES加密之情況下,零-一分佈已知為50-50(亦即,百分之50的零及百分之50的一)。在使用4LC(4位階MLC)記憶體及AES加密之情況下,在寫入下部頁及上部頁兩者後之分佈已知為25-25-25-25(亦即,在四個狀態中之每一者中,百分之25)。
在一些實施例中,將至少一參考區域專用於使用如上文所論述的一或多個測試型樣。在一些實施例中,選擇參考區域之位置以使各種NVM寫入/讀取假影對測試型樣的影響最小化(或相反地,最大化)。在一些實施例中,參考區域為參考頁,且其位置經選擇為在區塊中寫入之最後頁,以便使寫入干擾對所寫入之資料的影響最小化。因為影響電壓分佈的現象中之一些隨時間及/或溫度變化,所以參考區域充當此等效應對零/一差異之已知度量。
更詳細地考慮與讀取有關之操作,開始於動作440,自NVM讀取一或多個讀取單元,且捕獲狀態之分佈。在一些實施例中,直接判定零計數及一計數中之每一者。接下來,在動作450中,嘗試恢復原始資料。此執行在寫入前執行的任何資料操縱操作的逆操作。視情況在寫入前添加ECC編碼,且因此,讀取單元接下來視情況經歷ECC編碼。(亦參見圖3之ECC解碼器360)。基於每個讀取單元,若ECC解碼成功,則接下來適當地執行解擾亂。例如,在於寫入前使用AES加密之情況下,執行AES解密。或者,在使用LFSR產生之偽隨機序列之情況下,同一序列被模2加至來自讀取單元的經ECC解碼之資料。
當原始資料可恢復(無錯誤抑或具有可經由ECC解碼校正之錯誤) 時,與讀取有關之操作早早地結束。參見自決策460之「否」路徑。然而,在讀取單元中的任何者有不可校正的錯誤時,亦執行動作470及480。參見自決策460之「是」路徑。在動作470中,評估狀態之分佈的差異。(亦參見圖3之不平衡偵測器340)。在一些實施例中,所判定之差異為零計數與一計數之間的所判定之差。在各種實施例中,對於所有讀取單元計算所判定之差異,即使並非所有讀取單元皆具有不可校正之(例如,硬決策解碼)錯誤亦然。
接下來,在動作480中,至少部分基於所判定之差異的量值來判定對於至少一讀取臨限值的經調整之值(又名,臨限值移位)。在一些實施例中,若所判定之差異的量值低於一預定容差,則不調整讀取臨限值。在一些實施例中,將多因素「校正演算法」用於判定經調整之讀取臨限值,所判定之差異的量值僅為該多因素「校正演算法」之一因素。
在一些實施例中,該校正演算法呈用以選擇讀取臨限值之替換值的查找表之形式。所判定之差異的量值為查找表中的索引之至少部分之基礎。在一些實施例中,基於正被使用的NVM之特定廠商來預先特性化(加權)查找表。在一些實施例中,索引具有額外分量,其包含以下各者中之一或多者:程式化/抹除循環、使用年限、保留時間(自從最後寫入之時間)、溫度及可關於NVM之器件臨限電壓分佈的漂移或對NVM之器件臨限電壓分佈的干擾之任何其他因素。(亦參見圖3之平衡恢復邏輯380)。
此處且貫穿實施方式,應記住,在通常使用之快閃記憶體微架構中,操作之粒度為不同的;例如,讀取單元為用於讀取之最小大小,頁為用於寫入(例如,程式化)之最小大小,且區塊為用於抹除之最小大小。每一區塊包括對應的複數個頁,且每一頁包括對應的複數個讀取單元。在各種實施例中,SSD控制器按對應於以下各者中之任 何一或多者的配量自一或多個快閃記憶體讀取及/或寫入至一或多個快閃記憶體:一或多個讀取單元、一或多個頁,及一或多個區塊。
在一些實施例中,基於整個頁評估差異。在一些實施例中,基於讀取單元評估差異。在讀取時與不可校正(例如,硬決策解碼)錯誤相結合地執行的差異評估係關於與在最近寫入中所寫入的相同(頁或讀取單元)位置執行,該最近寫入包括彼相同位置。
讀取臨限值之最佳化
由圖4表示之實施例回應於不可校正(例如,硬決策解碼)錯誤而調整至少一讀取臨限值。由圖5A、圖5B及圖6表示之實施例回應於製造特性化、初始用途、計時器(例如,週期性、不規則或隨機)、高於臨限值之位元錯誤率及不可校正(例如,硬決策解碼)錯誤中之任何一或多者而調整至少一讀取臨限值。在按群組管理NVM之區塊的內容脈絡中操作由圖5A、圖5B及圖6表示之各種實施例,且針對一特定群組之所有區塊的至少一讀取臨限值之調整係基於對該特定群組的區塊之取樣之部分讀取。舉例而言,若部分讀取中之至少一些符合條件,則針對特定的經管理群組之所有區塊調整讀取臨限值。在各種實施例中,調整係經由使用可適用於高斯分佈之技術來估計器件臨限電壓分佈。在一些實施例中,與由圖5A及圖5B表示之技術相結合地使用由圖4表示之技術。
圖5A說明(例如,SSD之)NVM之讀取臨限值之最佳化的一實施例之選定細節之流程圖。在各種實施例中,NVM具備由NVM之製造商指定且由製造商保證正確地發揮功能之預設操作讀取臨限值。根據當前讀取臨限值執行讀取NVM之讀取單元。一開始,在動作510中,將當前讀取臨限值設定至預設操作讀取臨限值。在一些實施例中,預設操作讀取臨限值被寫入至控制/狀態暫存器336且組態圖3之可程式化讀取電壓電路334。
在動作520中,根據當前讀取臨限值執行NVM之讀取。在概念上與動作520之讀取並行地,控制器亦對一或多個經管理的區塊群組執行離線追蹤540,該等區塊含有由動作520之讀取擷取之至少一些資料,如本文中其他處所描述。在動作530中,啟用離線追蹤以用新操作讀取臨限值更新當前讀取臨限值,新操作讀取臨限值經最佳化以改良效能、功率消耗及可靠性中之一或多者。在一些實施例中,新操作讀取臨限值被寫入至控制/狀態暫存器336且組態圖3之可程式化讀取電壓電路334。在各種實施例中,根據已藉由離線追蹤而更新至新操作讀取臨限值之當前讀取臨限值來執行隨後讀取。將離線追蹤描述為在概念上與讀取並行地進行操作,此係因為至少在一些實施例中,執行在動作520中的NVM之讀取,以使得防止在動作540中的NVM之讀取與在動作520中的NVM之讀取同時地執行。舉例而言,按比在動作540中的NVM之讀取高的優先權執行在動作520中的NVM之讀取。對於另一實例,按背景方式(諸如,當NVM另外閒置時)執行在動作540中的NVM之讀取。
在各種實施例中,SSD週期性地重新評估當前讀取臨限值。在動作550中,計時器追蹤自從執行最後離線追蹤以來逝去的時間。當計時器期滿時,再次執行離線追蹤。在一些實施例中,可經由軟體、韌體及硬體中之任何一或多者組態計時器。在一些實施例中,計時器經組態至一或多週。
圖5B說明對NVM之一經管理區塊群組中的器件臨限電壓之離線追蹤540的一實施例之選定細節之流程圖。
當器件臨限電壓分佈移位(例如,歸因於老化)時,離線追蹤藉由調整當前讀取臨限值而減少一經管理區塊群組中的讀取錯誤之數目。減少錯誤之數目會改良效能,減少功率消耗,及/或改良NVM之使用壽命。在一些實施例中,當一SSD、在SSD中使用的NVM之任何部分 或在任一內容脈絡中使用的NVM之任何部分閒置時,全部及/或漸增地執行離線追蹤,以減少對不同於離線追蹤之操作(例如,自主機存取、回收及/或映射管理)的影響。在各種實施例中,離線追蹤之優勢為:其估計器件臨限電壓分佈移位,而不維持參考資訊(例如,參考區塊或參考讀取單元)或儲存器件臨限電壓分佈資訊,因而減少了附加項。
在各種實施例中,管理一經管理區塊群組以共用至少一判定之特性。經判定之特性的實例包括程式化循環之數目、抹除循環之數目及程式化窗中之任何一或多者。在一些使用情境中,具有類似程式化/抹除計數及/或保留的區塊具有類似的行為。因為該經管理區塊群組受到管理以共用經判定之特性,所以隨機選定的區塊表示該經管理區塊群組。在一些實施例中,該經管理區塊群組為包含經擾亂資料的經管理區塊群組。一經管理區塊群組之一實例為R區塊。
自該經管理區塊群組隨機選擇一或多個代表性區塊。在動作541中,根據當前讀取臨限值讀取代表性區塊內之所有資料。例如,讀取代表性區塊內之所有讀取單元。
若動作542判定代表性區塊中之一讀取單元符合條件,則作為回應,藉由將新操作讀取臨限值寫入至控制/狀態暫存器336且組態圖3之可程式化讀取電壓電路334來調整讀取單元之當前讀取臨限值。若讀取單元不符合條件,則作為回應,使當前讀取臨限值不變,且離線追蹤結束。在一些實施例中,條件為在當前讀取臨限值下超過目標BER及在當前讀取臨限值下超過零/一平衡之目標差異中的一或多者。
在一些實施例中,在當前讀取臨限值下超過目標BER及/或零/一平衡之目標差異指示了器件臨限電壓分佈已移位至新器件臨限電壓分佈。可經由硬體、韌體及軟體中之任何一或多者組態目標BER及/或 零/一平衡之目標差異。在一些實施例中,將目標BER設定至可校正BER之一半(例如,若每次讀取可校正高達80個位元,則將目標BER設定至每讀取40個位元)。在各種實施例中,圖3之ECC解碼器360在對讀取單元之讀取期間偵測BER。
在動作543中,根據樣本讀取臨限值讀取讀取單元以取樣且特性化新器件臨限電壓分佈。在一些實施例中,樣本讀取臨限值包含兩組樣本讀取臨限值。基於舊讀取臨限值計算第一組樣本讀取臨限值。根據第一組樣本讀取臨限值讀取讀取單元,且基於結果,計算第二組樣本讀取臨限值,且根據第二組樣本讀取臨限值讀取讀取單元。
在一些實施例中,六個LSB樣本讀取臨限值(例如,由六個各別陣列存取使用)就足以特性化4LC記憶體之新器件臨限電壓分佈。新器件臨限電壓分佈為高斯分佈,因此,兩個LSB樣本就足以判定新器件臨限電壓分佈中之每一者的各別平均值及標準差。如本文中其他處所描述,計算第一組樣本讀取臨限值,例如,等式1.10、1.11及1.12(在本文中其他處題為「讀取臨限值之最佳化的特定實施例之選定細節」之章節中描述等式1.1-1.15)。根據第一組樣本讀取臨限值讀取讀取單元以產生第二組樣本讀取臨限值,如本文中其他處所描述,例如,對於包含經擾亂資料的區塊統計上有效之等式1.13、1.14及1.15。在其他實施例中,兩個LSB樣本讀取臨限值及兩個MSB樣本讀取臨限值就足以估計新器件臨限電壓分佈。
基於根據樣本讀取臨限值讀取讀取單元之結果中的至少一些,估計544新器件臨限電壓分佈。如在圖6A至圖6D中所說明,估計D1' 621、D2' 622及D3' 623之平均值及標準差。在一些實施例中,將根據樣本讀取臨限值執行的讀取之一些結果用以藉由二元樹搜尋來在Q表中查找中間值。將中間值及結果中之一些用以計算新器件臨限電壓分佈之估計的平均值及標準差。
基於新器件臨限電壓分佈之估計的平均值及標準差,計算545新操作讀取臨限值。在一些實施例中,不能估計E' 620,此係因為抹除位準不可量測。在一些實施例中,使用等式1.7及1.8計算三個新操作讀取臨限值(VNEW1 650、VNEW2 651及VNEW3 652)。
一旦已計算出新操作讀取臨限值,則在動作546中,針對代表性區塊中之讀取單元,將當前讀取臨限值更新至新操作讀取臨限值。在一些實施例中,亦將用於該經管理區塊群組中之其他(例如,不同於代表性)區塊之當前讀取臨限值更新至計算得的新操作讀取臨限值。在各種實施例中,選擇多個代表性區塊以作為一集合經由離線追蹤處理,且針對該集合平均新操作讀取臨限值以減小一經管理區塊群組內之區塊間變化。
在各種實施例中,圖5A及圖5B中說明之一或多個操作(或其部分)由SSD控制器(諸如,圖1A之SSD控制器100)或其元件執行及/或管理。舉例而言,在一些實施例中,圖5A及圖5B中說明之一或多個操作由被圖1A之CPU核心172執行之韌體實施及/或管理。在各種實施例中,圖5A及圖5B中說明之一或多個操作(或其部分)由圖3中說明之任何一或多個元件執行及/或管理。舉例而言,在一些實施例中,對超過零/一平衡之目標差異的偵測(例如,如由「是否符合條件?」542之一些實施例執行)至少部分由圖3之不平衡偵測器340執行。
圖6A至圖6D概念性地說明在4LC記憶體中之器件臨限電壓分佈。為了此論述之目的,如在圖2A至圖2D中,每一山丘狀隆起為獨立的類高斯曲線之抽象,該曲線表示NVM之讀取單元大小之部分之各別狀態的器件臨限電壓機率分佈。器件臨限電壓軸線經繪製為電壓向右正向增大。有意地未提供絕對標度,且未識別參考點,使得該等曲線更一般地適用於更大的NVM群體。圖6A概念性地說明每記憶胞儲存兩個位元之4LC記憶體。存在四個器件臨限電壓分佈(E 600、D1 601、D2 602及D3 603),以及劃定對應於不同狀態之器件臨限電壓分佈的三個當前讀取臨限值(VOLD1 610、VOLD2 611及VOLD3 612)。
圖6B概念性地說明具有移位之器件臨限電壓分佈的4LC。存在四個新器件臨限電壓分佈(E' 620、D1' 621、D2' 622及D3' 623)。注意,三個當前讀取臨限值不再整齊地分開新器件臨限電壓分佈。舉例而言,D2' 622之一些部分位於VOLD3 612之右邊,且將被錯誤地識別。
圖6C概念性地說明具有移位之器件臨限電壓分佈的4LC中之樣本讀取臨限值。在各種實施例中,圖6C概念性地說明在動作543中使用之樣本讀取臨限值。存在用以估計新器件臨限電壓分佈之六個樣本LSB讀取臨限值。選擇第一組樣本讀取臨限值(VSAMPLE1,1 630、VSAMPLE2,1 631及VSAMPLE3,1 632)以落在靠近D1 601、D2 602及D3 603之中心處。在一些使用情境中,第一組樣本讀取臨限值相對靠近D1' 621、D2' 622及D3' 623之中心。計算第一組樣本讀取臨限值,如本文中其他處所描述,例如,等式1.10、1.11及1.12。
第二組樣本讀取臨限值(VSAMPLE1,2 640、VSAMPLE2,2 641及VSAMPLE3,2 642)經選擇以落在D1' 621、D2' 622及D3' 623內,但自第一組偏移且位於D1' 621、D2' 622及D3' 623之中心之不同側上。根據第一組樣本讀取臨限值讀取讀取單元以產生第二組樣本讀取臨限值,如本文中其他處所描述,例如,等式1.13、1.14及1.15。
圖6D概念性地說明具有移位之器件臨限電壓分佈的4LC中之新操作讀取臨限值。藉由離線追蹤來計算新操作讀取臨限值VNEW1 650、VNEW2 651及VNEW3 652。注意,與當前讀取臨限值(VOLD1、VOLD2及VOLD3)相對比,新操作讀取臨限值(VNEW1、VNEW2及VNEW3)整齊地分開新器件臨限電壓分佈,因此減小了發生位元錯誤及/或不可校正(例如,硬決策解碼)錯誤之可能性。在各種實施例中,圖6D概念性地說明來自計算新操作讀取臨限值545的新操作讀取臨限值。
讀取臨限值之最佳化的特定實施例之選定細節
以下提供讀取臨限值之最佳化的特定實施例之選定細節,包括本文中其他處提及的等式1.1-1.15之描述。
在各種實施例中,字線包括一或多個讀取單元。叢集之一實例為R區塊內之一或多頁。在一些實施例中,將R區塊分成一或多個叢集。
數學基礎
選擇具有類似程式化/抹除計數之一區塊群組以在短時間間隔內進行寫入。通常,經歷類似程式化/抹除計數及保留之區塊具有幾乎相同的行為。因此,一旦製造商提供之臨限值不再行得通(例如,歸因於ECC失敗),則在閒置時間期間週期性地量測且儲存一群組中之一區塊之每一頁的最佳臨限值為可行的(注意,一區塊之每一頁可具有不同行為)。當讀取同一群組之任一區塊時,使用經儲存之最佳化的臨限值(若可用)代替由快閃記憶體製造商提供之預設臨限值。在一些實施例及/或使用情境中,此使得首次讀取成功的機會能夠顯著增加,而無輸貫量損失。在此章節中,吾人提供判定頁之最佳臨限值的快速方式。所描述之實施例的關鍵優勢在於,其不需要已知資料,且因此不對輸貫量或容量添加附加負擔。吾人藉由將中間臨限值移位(亦即,應用LSB頁讀取重試)來估計一頁之三個非抹除位準之平均值及方差。在一些實施例中,一頁具有約70 K記憶胞。注意,70 K隨機2位元資料中之每一位元的方差等效於35 K隨機二進位資料中之每一位元的方差,使得:σ 2=0.25/35000=7.14×10-6 等式(1.1)
可計算出: 等式(1.2)
以上結果指示在每一位準處平均17500個資料上偏差700個以上資料之機率為3.6e-14。因此,足以假定將中間臨限值置於三個非抹除位準之平均值上會導致1之百分比分別為37.5%、62.5%、87.5%。
在不失一般性之情況下,吾人判定位準2之平均值及方差。使分別為與不同中間臨限值(如在圖7中所描繪)相關聯之二進位頁資料,其中將8位元解析度用於讀取窗。存在若干情境。注意,靠近兩個鄰近分佈之中心。當應用其時,所得頁資料具有幾乎75%的1。歸因於在中心周圍的資料之稀少性,大臨限值範圍導致幾乎相同百分比的1。舉例而言,1之百分比並不準確地反映自至分佈之中心的距離μ。因此,當1之百分比在48%至52%內時,對應的臨限值不可靠(注意,1%變化係歸因於位準分佈之偏差)。當應用(i=1,2,3)時,其產生以下等式:
其中w(B)及L P 分別表示資料B之一頁的漢明權數及長度。
三個等式中之任何兩者(比方說,在(1.7)中,i=1,2)可被組合以經由使用標準Q表來判定平均μ及標準差σ,使得
其中a,b係自可由二元樹搜尋高效地實施的Q表查找獲得。
求解,吾人獲得
因此,每一非抹除位準需要兩個LSB有效讀取來識別其平均值及 方差。一共需要至少六個LSB讀取來判定三個非抹除位準之平均值及方差。與圖8相結合,吾人接下來展示如何在其他實施例中藉由謹慎地組合兩個LSB與兩個MSB讀取來達成此。首先,吾人假定,兩個LSB讀取成功地識別位準2之平均值及方差,亦即,兩個移位之臨限值()正好定位至位準2之密集分佈內。其次,吾人假定兩個移位之臨限值對(,)及(,)分別定位於位準1及位準3之密集分佈內。接著,可藉由以下等式判定位準1及3之平均值及方差。
給定每一非抹除位準之平均值μ 1μ 2μ 3及標準差σ 1σ 2σ 3,第二及第三最佳臨限值由下式判定
當抹除位準不可量測時,不可獲得第一最佳臨限值。此外,保留可將抹除位準與第一位準之間的最佳交點推至讀取窗以下。因此,藉由下式估計
其中42.5=255/6,其遵循三個兩側高斯分佈均勻地佔據讀取窗之假定。
由於離線模式,一些實施例讀取整個頁,而非一讀取單元,以便減小位準分佈之方差。所描述之實施例不保證兩個讀取(或總共六個讀取)之成功;然而,其能以高機率獲得成功。
最終,存在用以減少用於參考區塊之所有頁的臨限值之處理及儲存量之簡單方式。特定言之,吾人將一區塊之頁分割成若干個群 組,每一群組具有類似行為,且改為儲存每一群組的(平均化之)最佳臨限值。
離線追蹤
吾人首先定義給定LDPC碼之標稱錯誤校正能力T,使得可按至少99%的機率校正所接收之讀取單元的高達T個隨機錯誤。對於各種高速率碼,可藉由相應的BCH碼之錯誤校正能力來近似得出T。如不久將清晰,吾人對確切值不感興趣,而是對粗略值感興趣。舉例而言,對於在一些實施例中使用之(17664,16384)LDPC碼,其標稱錯誤校正能力由下式近似得出
其中15為相應的BCH碼之欄位尺寸。
在一些實施例中,每一R區塊包含來自不同晶粒之許多邏輯區塊,經管理以具有類似的程式化/抹除循環,且在短時間窗內被程式化。因此,針對R區塊之每一叢集週期性地特性化僅一個區塊且將獲得之資訊應用至同一R區塊之每一邏輯區塊係方便的。合理的頻率為一週一次地執行離線特性化,如在先前章節中所描述。
可藉由將具有類似行為之頁分群成若干個叢集,且接著針對每一叢集特性化僅一個頁來進一步減少操作及儲存。其劣勢為依賴於廠商。亦即,來自不同廠商之快閃記憶體零件通常展現截然不同的叢集。因此,一些實施例特性化指定區塊的所有頁。
吾人亦假定僅使用LSB讀取。雖然與兩個LSB讀取及兩個MSB讀取之策略相比,其需要六個有效LSB讀取,但在一些實施例中,其使用較簡單的硬體。各種實施例使追蹤程序擴展以適應該替代讀取策略。
在一些實施例中,使用由快閃記憶體廠商提供之預設臨限值。 因此,有必要使用由廠商供應之規則集合(否則,快閃記憶體規範得不到保證)。因此,吾人使用預設臨限值,直至讀取單元內的位元錯誤之數目多於T/2個錯誤或遭受解碼失敗為止。當觸發該規則時,吾人接著將第一組臨限值選擇為
選擇以上臨限值,因為當初始臨限值剛剛或幾乎失效時,兩個鄰近初始臨限值之間的中間點靠近對應的位準之平均值。注意,藉由使初始臨限值居中,將設定為與對稱。
第二組臨限值取決於第一組臨限值,如下
其中藉由設定θ 1=0、θ 2=θ 3=255,B L ()表示LSB讀取頁。因此,當第一臨限值高於對應位準之平均值時,則將臨限值向下移位(否則,向上移位)合理的大量值(以便可忽略讀取雜訊)。
離線追蹤程序
在下文中,吾人描述詳細程序:
1.用由快閃記憶體廠商針對每一新寫入之R區塊提供的預設臨限 值進行初始化。
2.針對每一R區塊,一週一次地執行離線追蹤
a. 隨機挑選及讀取區塊。
b. 對於區段/字具有多於T/2個錯誤的每一字線
i. 藉由在(1.10)、(1.11)及(1.12)中定義之臨限值讀取。
ii. 藉由在(1.13)、(1.14)及(1.15)中定義之臨限值讀取。
iii. 藉由(1.5)判定平均值及偏差μ 1μ 2μ 3σ 1σ 2σ 3(如自Q表查找獲得)。
iv. 藉由(1.7)、(1.8)計算最佳臨限值,,
v. 用估計之最佳臨限值更新初始臨限值。
在一些使用情境中,追蹤程序展現以下優勢:
1. 其不需要最佳資料(golden data)。因此,其不犧牲輸貫量或容量。
2. 其不需要使用已知資料來程式化及維護習知參考區塊。
3. 其利用由快閃記憶體廠商提供之預設臨限值,且因此維持產品保證。
4. 其顯著增加正常讀取成功之機率。
5. 其快速且準確。
然而,歸因於區塊間變化,不保證所提議之臨限值總是為接近最佳的。實際上,存在在類似條件下一區塊比其餘區塊磨損得快得多之小機會。為了減小變化,一些實施例挑選(例如)三個區塊,而非僅一個區塊,且藉由對三個估計之臨限值求平均來更新每一臨限值。
Q表
以下為具有513個輸入項之Q表,其中每一輸入項值按220定標, 且輸入項粒度為0.01。
實例實施技術
在一些實施例中,由使用讀取臨限值之最佳化的SSD(例如,具有快閃記憶體、計算主機快閃記憶體控制器及/或SSD控制器(諸如,圖1A之SSD控制器100)),及提供前述操作之全部或部分的處理器、微處理器、系統單晶片、特殊應用積體電路、硬體加速器或其他電路之部分執行的操作之全部或部分之各種組合係由與由電腦系統進行的處理相容之規範指定。該規範係根據各種描述,諸如,硬體描述語言、電路描述、接線對照表描述、遮罩描述或佈局描述。實例描述包 括:Verilog、VHDL、SPICE、SPICE變體(諸如,PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各種實施例中,處理包括用以產生、驗證或指定適合包括於一或多個積體電路上之邏輯及/或電路的解譯、編譯、模擬與合成之任何組合。根據各種實施例,可根據各種技術來設計及/或製造每一積體電路。該等技術包括可程式化技術(諸如,場可程式化閘陣列或遮罩可程式化閘陣列積體電路)、半客製化技術(諸如,全部或部分地以胞為基礎之積體電路)及完全客製化技術(諸如,實質上特殊化的積體電路)、上述技術之任何組合,或與積體電路之設計及/或製造相容的任何其他技術。
在一些實施例中,藉由執行及/或解譯一或多個程式指令、藉由解譯及/或編譯一或多個原始及/或描述性語言陳述式,或藉由執行二進位指令(該等二進位指令係藉由編譯、轉譯及/或解譯在程式設計及/或描述性語言陳述式中表達之資訊而產生)來執行如由其中儲存有一指令集的電腦可讀媒體描述的操作之全部或部分的各種組合。該等陳述式與任何標準程式化或描述性語言(諸如,C、C++、Fortran、Pascal、Ada、Java、VBscript及Shell)相容。程式指令、語言陳述式或二進位指令中之一或多者視情況儲存於一或多個電腦可讀儲存媒體元件上。在各種實施例中,將程式指令中之一些、全部或各個部分實現為一或多個函式、常式、副常式、內嵌(in-line)常式、程序、巨集或其部分。
結論
僅為了便於準備內文及圖式而在描述中作出某些選擇,且除非存在相反之指示,否則該等選擇本身不應被解釋為傳達關於所描述之實施例之結構或操作的額外資訊。該等選擇之實例包括:用於圖編號之標識的特定組織或指派,及用以識別且參考該等實施例之特徵及元件的元件識別符(例如,註標或數字指示項)之特定組織或指派。
詞「包括」特定地意欲被解釋為描述開端式範疇的邏輯集合的抽象概念,且除非後面明確接著詞「在......內」,否則並不意謂傳達實體的含有。
儘管已為了描述及理解之清晰性而相當詳細地描述前述實施例,但本發明並不限於所提供之細節。存在本發明之許多實施例。所揭示之實施例為例示性的而非限制性的。
應理解,與描述一致的在建構、配置及使用上之許多變化係有可能的,且在所發表之專利之申請專利範圍的範疇內。舉例而言,根據各種實施例,互連及功能單元位元寬度、時脈速度及所使用之技術的類型在每一組件區塊中係可變的。被給予互連及邏輯之名稱僅為例示性的,且不應解釋為限制所描述之概念。流程表及流程圖處理程序、動作及功能元件的次序及配置係根據各種實施例可變的。又,除非特定地陳述為相反,否則所指定之值範圍、所使用之最大值及最小值或其他特定規範(諸如,快閃記憶體技術類型;及暫存器及緩衝器中之輸入項或級的數目)僅為所描述之實施例中之所指定之值範圍、所使用之最大值及最小值或其他特定規範,預期其將追蹤實施技術之改良及改變,且不應解釋為限制。
可使用此項技術中已知之功能上等效的技術而非所描述的彼等技術來實施各種組件、子系統、操作、函式、常式、副常式、內嵌常式、程序、巨集或其部分。亦應理解,依據實施例相依的設計約束及更快處理(促進將先前在硬體中之功能遷移至軟體中)及更高整合密度(促進將先前在軟體中之功能遷移至硬體中)的技術趨勢,實施例之許多功能性態樣可選擇性地實現於硬體(例如,通常專用電路)或軟體(例如,經由某方式之程式化控制器或處理器)中。各種實施例中之具體變化包括(但不限於):分割之差別;不同外形尺寸及組態;對不同作業系統及其他系統軟體之使用;對不同介面標準、網路協定或通信鏈 路之使用;及在根據特定應用之獨特工程設計及商務約束來實施本文中所描述之概念時將預期到的其他變化。
已在細節及環境內容脈絡完全超出最小限度地實施所描述之實施例之許多態樣所需的細節及環境內容脈絡的情況下描述該等實施例。一般熟習此項技術者將認識到,一些實施例省略了所揭示之組件或特徵而不更改其餘元件之間的基本協作。因此應理解,不需要大部分所揭示細節來實施所描述之實施例之各種態樣。在可將其餘元件與先前技術區分開的範圍內,所省略之組件及特徵並不限制本文中所描述之概念。
所有此等設計之變化為對由所描述之實施例傳達的教示之非實質性改變。亦應理解,本文中所描述之實施例廣泛適用於其他計算及網路應用,且並不限於所描述之實施例之特定應用或行業。本發明因此應被解釋為包括涵蓋於所發表之專利之申請專利範圍的範疇內的所有可能修改及變化。
510‧‧‧將當前讀取臨限值初始化至預設操作讀取臨限值
520‧‧‧藉由當前讀取臨限值讀取
530‧‧‧更新當前讀取臨限值
540‧‧‧離線追蹤
550‧‧‧計時器是否期滿?

Claims (20)

  1. 一種記憶體器件,其包含:一控制器,其經組態以藉由以下之步驟最佳化一記憶體之一讀取臨限電壓:部分地基於記憶體位準之統計分佈之一態樣(type)及在該等記憶體位準中之資料儲存值之一分佈來判定兩個鄰近(adjacent)記憶體位準之統計特性,該判定包括使用一第一臨限電壓自該記憶體讀取資料,及判定具有資料值之一第二分佈之一第二臨限電壓,相較於來自該第一臨限電壓之資料值之分佈,該等資料值之該第二分佈具有1與0之一相反比率;藉由使用該兩個鄰近記憶體位準之該等統計特性來計算與該兩個鄰近記憶體位準相關聯之一最佳化讀取臨限電壓;及以該最佳化讀取臨限電壓更新該讀取臨限電壓。
  2. 如請求項1之器件,其中該統計分佈之該態樣係高斯(Gaussian)。
  3. 如請求項1之器件,其中在該等記憶體位準中之資料儲存值之該分佈係大約0與1之一相等數目。
  4. 如請求項1之器件,其中對於每一鄰近記憶體位準之該等統計特性係平均值及標準差。
  5. 如請求項1之器件,其中該計算該最佳化讀取臨限電壓係基於以下之等式:
  6. 如請求項1之器件,其中該最佳化係對於該記憶體之一頁而執行。
  7. 如請求項1之器件,其中該最佳化係回應於該記憶體之資料讀取 錯誤而執行。
  8. 如請求項1之器件,其中該判定係回應於兩個有效(valid)之最低有效位元(least significant bit)(LSB)讀取而執行。
  9. 如請求項1之器件,其中不需要在該等記憶體位準中之已知資料。
  10. 一種用於最佳化一多位準記憶胞(cell)記憶體之讀取臨限電壓之方法,其包含:判定是否自該記憶體讀取之資料具有大於一預定錯誤值之錯誤;對於該記憶體之每一位準以第一及第二電壓臨限值再次讀取該資料,當與以該第一電壓臨限值讀取之資料相較時,該第二電壓臨限值經選擇以產生具有1與0之一相反比率;部分地基於每一記憶體位準之統計分佈之一態樣及在每一記憶體位準中之資料儲存值之一分佈來判定來自以該第一及第二電壓臨限值再次讀取之該資料的每一位準之平均值及標準差;基於兩個鄰近位準之該等平均值及標準差來計算最佳化讀取臨限電壓;及以該等最佳化讀取臨限電壓更新該等讀取臨限電壓。
  11. 如請求項10之方法,其中該統計分佈之該態樣係高斯(Gaussian)。
  12. 如請求項10之方法,其中在該等記憶體位準中之資料儲存值之該分佈係大約0與1之一相等數目。
  13. 如請求項10之方法,其中該計算該最佳化讀取臨限電壓係基於以下之等式:
  14. 如請求項10之方法,其中該判定每一位準之平均值及標準差係基於以下之等式: 其中x係該記憶體位準及i係以一臨限電壓讀取之該資料。
  15. 如請求項10之方法,其中該判定係回應於兩個有效之最低有效位元(LSB)讀取而執行。
  16. 如請求項10之方法,其中不需要在該等記憶體位準中之已知資料。
  17. 一種資料儲存器件,其包含:一處理器;一記憶體,其耦接至該處理器且儲存指令,當由該處理器執行該等指令時,使該處理器以:部分地基於記憶體位準之統計分佈之一態樣及在該等記憶體位準中之資料儲存值之一分佈來判定兩個鄰近記憶體位準之統計特性,使用產生(yield)1與0之一第一比率之一第一讀取臨限樣本點及使用產生1與0之一第二比率之一第二讀取臨限樣本點來判定該等統計特性,相對於基於該統計分佈之一平衡點該第二比率實質上相反於(opposite to)該第一比率;藉由使用該兩個鄰近記憶體位準之該等統計特性來計算與該兩個鄰近記憶體位準相關聯之一最佳化讀取臨限電壓;及以該最佳化讀取臨限電壓更新該讀取臨限電壓。
  18. 如請求項17之資料儲存器件,其中該最佳化係對於該記憶體之一頁而執行。
  19. 如請求項17之資料儲存器件,其中該最佳化係回應於該記憶體之資料讀取錯誤而執行。
  20. 如請求項17之資料儲存器件,其中該判定係回應於兩個有效之最低有效位元(LSB)讀取而執行。
TW102122792A 2012-06-26 2013-06-26 用於快閃記憶體通道之快速追蹤 TWI584285B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/533,130 US20130343131A1 (en) 2012-06-26 2012-06-26 Fast tracking for flash channels

Publications (2)

Publication Number Publication Date
TW201405562A TW201405562A (zh) 2014-02-01
TWI584285B true TWI584285B (zh) 2017-05-21

Family

ID=49774330

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102122792A TWI584285B (zh) 2012-06-26 2013-06-26 用於快閃記憶體通道之快速追蹤

Country Status (3)

Country Link
US (2) US20130343131A1 (zh)
TW (1) TWI584285B (zh)
WO (1) WO2014004184A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783973B1 (en) 2019-11-26 2020-09-22 Winbond Electronics Corp. Memory device having parameter adjusting mechanism and method of adjusting parameter by memory device

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8839073B2 (en) 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
US8910000B2 (en) * 2012-05-17 2014-12-09 Micron Technology, Inc. Program-disturb management for phase change memory
US20140026003A1 (en) * 2012-07-23 2014-01-23 Zhengang Chen Flash memory read error rate reduction
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
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
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
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
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US20150074492A1 (en) * 2013-09-11 2015-03-12 Kabushiki Kaisha Toshiba Memory system and memory controller
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9620202B2 (en) * 2013-11-01 2017-04-11 Seagate Technology Llc Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage 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
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US10276247B2 (en) 2013-12-20 2019-04-30 Seagate Technology Llc Read retry operations with estimation of written data based on syndrome weights
US9818488B2 (en) 2015-10-30 2017-11-14 Seagate Technology Llc Read threshold voltage adaptation using bit error rates based on decoded data
US9563502B1 (en) 2013-12-20 2017-02-07 Seagate Technology Llc Read retry operations with read reference voltages ranked for different page populations of a memory
US9645763B2 (en) * 2014-01-13 2017-05-09 Seagate Technology Llc Framework for balancing robustness and latency during collection of statistics from soft reads
US9927998B2 (en) * 2014-02-05 2018-03-27 Tidal Systems, Inc. Flash memory compression
US9785501B2 (en) * 2014-02-18 2017-10-10 Sandisk Technologies Llc Error detection and handling for a data storage device
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9722663B2 (en) 2014-03-28 2017-08-01 Intel Corporation Interference testing
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
TWI492234B (zh) 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統
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
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
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
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
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
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
US9349477B2 (en) 2014-06-16 2016-05-24 Seagate Technology Llc Inter-cell interference estimation based on a pattern dependent histogram
GB2527318A (en) 2014-06-17 2015-12-23 Ibm Estimation of level-thresholds for memory cells
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR102238592B1 (ko) * 2014-08-08 2021-04-09 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9484089B2 (en) * 2014-10-20 2016-11-01 Sandisk Technologies Llc Dual polarity read operation
KR102291505B1 (ko) 2014-11-24 2021-08-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102262909B1 (ko) * 2014-12-18 2021-06-10 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
US9778858B1 (en) * 2015-02-11 2017-10-03 Microsemi Solutions (U.S.), Inc. Apparatus and method for scatter gather list handling for an out of order system
US9633702B2 (en) * 2015-07-30 2017-04-25 Macronix International Co., Ltd. Memory system with uniform decoder and operating method of same
KR102385908B1 (ko) * 2015-08-11 2022-04-13 삼성전자주식회사 스토리지 장치로부터 데이터를 검색하는 방법
CN106653087A (zh) * 2015-10-28 2017-05-10 光宝电子(广州)有限公司 固态存储装置及其相关读取控制方法
US10192614B2 (en) * 2015-10-30 2019-01-29 Seagate Technology Llc Adaptive read threshold voltage tracking with gap estimation between default read threshold voltages
US10347343B2 (en) * 2015-10-30 2019-07-09 Seagate Technology Llc Adaptive read threshold voltage tracking with separate characterization on each side of voltage distribution about distribution mean
TWI595498B (zh) 2016-01-20 2017-08-11 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US9842022B2 (en) * 2016-01-20 2017-12-12 Intel Corporation Technologies for reducing latency in read operations
US10282110B2 (en) 2016-04-08 2019-05-07 SK Hynix Inc. Last written page indicator
US10423492B2 (en) * 2016-05-17 2019-09-24 SK Hynix Inc. Self error-handling flash memory device
US10180868B2 (en) 2016-07-08 2019-01-15 Seagate Technology Llc Adaptive read threshold voltage tracking with bit error rate estimation based on non-linear syndrome weight mapping
US10290358B2 (en) 2016-07-08 2019-05-14 Seagate Technology Llc Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights
US10013211B2 (en) 2016-09-06 2018-07-03 Samsung Electronics Co., Ltd. Storage devices including nonvolatile memory devices and access methods for nonvolatile memory devices
KR20180082927A (ko) * 2017-01-11 2018-07-19 에스케이하이닉스 주식회사 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러
US10348337B2 (en) * 2017-02-23 2019-07-09 Winbond Electronics Corp. Data read method and memory storage device using the same
US10381090B2 (en) 2017-03-31 2019-08-13 Samsung Electronics Co., Ltd. Operation method of nonvolatile memory device and storage device
US10503586B2 (en) * 2017-04-26 2019-12-10 Sandisk Technologies Llc Dynamic read based on read statistics
KR102347184B1 (ko) * 2017-05-23 2022-01-04 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10848263B2 (en) 2017-06-30 2020-11-24 Silicon Motion, Inc. Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
CN109213436B (zh) 2017-06-30 2021-08-24 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
TWI645298B (zh) * 2017-06-30 2018-12-21 慧榮科技股份有限公司 降低快閃儲存介面中傳收資料錯誤方法以及使用該方法的裝置
US10630424B2 (en) 2017-06-30 2020-04-21 Silicon Motion, Inc. Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
US10637509B2 (en) 2017-06-30 2020-04-28 Silicon Motion, Inc. Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
KR102353363B1 (ko) 2017-08-14 2022-01-20 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
KR20200067848A (ko) * 2017-09-30 2020-06-12 마이크론 테크놀로지, 인크. 우선적 유휴 시간 판독 스캔
TWI653538B (zh) * 2017-11-13 2019-03-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
US10929309B2 (en) * 2017-12-19 2021-02-23 Western Digital Technologies, Inc. Direct host access to storage device memory space
US11720283B2 (en) * 2017-12-19 2023-08-08 Western Digital Technologies, Inc. Coherent access to persistent memory region range
JP2019160355A (ja) * 2018-03-07 2019-09-19 東芝メモリ株式会社 メモリシステム、読み出し方法、プログラムおよびメモリコントローラ
KR102617350B1 (ko) 2018-03-14 2023-12-26 삼성전자주식회사 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 저장 장치
US10552259B2 (en) 2018-03-15 2020-02-04 Western Digital Technologies, Inc. Recovery combining hard decoding, soft decoding and artificial codeword generation
US10365854B1 (en) 2018-03-19 2019-07-30 Micron Technology, Inc. Tracking data temperatures of logical block addresses
US10777295B2 (en) 2018-04-12 2020-09-15 Micron Technology, Inc. Defective memory unit screening in a memory system
US11099781B2 (en) 2018-07-19 2021-08-24 Silicon Motion, Inc. Flash memory controller, flash memory module and associated electronic device
US10916324B2 (en) * 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
JP2020047353A (ja) 2018-09-20 2020-03-26 キオクシア株式会社 メモリシステム
US10691377B2 (en) 2018-09-21 2020-06-23 Micron Technology, Inc. Adjusting scan event thresholds to mitigate memory errors
US10553290B1 (en) * 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
US10866763B2 (en) * 2018-10-30 2020-12-15 Western Digital Technologies, Inc. Dynamic read based on read statistics
US10658047B1 (en) 2018-10-31 2020-05-19 Micron Technology, Inc. Implementing sticky read using error control success rate associated with a memory sub-system
CN109582977B (zh) * 2018-11-20 2023-06-02 科大讯飞股份有限公司 一种交互式文本翻译方法及装置
TWI740187B (zh) * 2019-02-20 2021-09-21 慧榮科技股份有限公司 存取方法
TWI707354B (zh) * 2019-03-20 2020-10-11 華邦電子股份有限公司 錯誤更正碼記憶體裝置和碼字存取方法
KR20200129467A (ko) 2019-05-08 2020-11-18 삼성전자주식회사 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치
US10990304B2 (en) * 2019-06-27 2021-04-27 Western Digital Technologies, Inc. Two-dimensional scalable versatile storage format for data storage devices
US11133083B1 (en) * 2020-08-07 2021-09-28 Micron Technology, Inc. Read model of memory cells using information generated during read operations
US11508446B2 (en) * 2020-09-23 2022-11-22 Silicon Motion, Inc. Method for accessing flash memory module and associated flash memory controller and electronic device
US11380411B2 (en) * 2020-10-09 2022-07-05 Micron Technology, Inc. Threshold voltage drift tracking systems and methods
US11709621B2 (en) 2020-10-09 2023-07-25 Western Digital Technologies Inc. Read threshold management and calibration
CN114968855A (zh) * 2021-02-18 2022-08-30 西部数据技术公司 对持久性存储区域范围的一致访问
US11355216B1 (en) 2021-04-06 2022-06-07 Beijing Tenafe Electronic Technology Co., Ltd. Adaptive DSP generation of read thresholds for gaussian and non-gaussian distributions in solid state storage using cumulative observed counts
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN114546267B (zh) * 2022-02-14 2022-11-18 深圳源创存储科技有限公司 一种基于大数据计算的固态硬盘及固态硬盘系统
US12014073B2 (en) * 2022-05-17 2024-06-18 Micron Technology, Inc. Techniques for sequential access operations
CN117312029B (zh) * 2023-09-15 2024-06-07 深圳市富芯通科技有限公司 一种ssd芯片坏块管理方法、系统、设备和存储介质
CN117111717B (zh) * 2023-10-24 2024-07-05 荣耀终端有限公司 一种闪存控制方法、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110182119A1 (en) * 2010-01-27 2011-07-28 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816162B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 낸드 플래시 메모리 장치 및 셀 특성 개선 방법
CN101715595A (zh) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US7903468B2 (en) * 2007-04-23 2011-03-08 Ramot At Telaviv University Ltd. Adaptive dynamic reading of flash memories
KR100953047B1 (ko) * 2007-12-28 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 소자의 동작 방법
US7957187B2 (en) * 2008-05-09 2011-06-07 Sandisk Corporation Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
KR101413137B1 (ko) * 2008-07-04 2014-07-01 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101434400B1 (ko) * 2008-07-09 2014-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 시스템 및 그것의 관리방법
US8000135B1 (en) * 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
KR101005188B1 (ko) * 2009-02-26 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
US8345477B1 (en) * 2009-07-29 2013-01-01 Marvell International Ltd. Non-volatile memory devices having uniform error distributions among pages

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110182119A1 (en) * 2010-01-27 2011-07-28 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783973B1 (en) 2019-11-26 2020-09-22 Winbond Electronics Corp. Memory device having parameter adjusting mechanism and method of adjusting parameter by memory device

Also Published As

Publication number Publication date
US20130343131A1 (en) 2013-12-26
US9595320B2 (en) 2017-03-14
WO2014004184A1 (en) 2014-01-03
TW201405562A (zh) 2014-02-01
US20150287453A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
TWI584285B (zh) 用於快閃記憶體通道之快速追蹤
US10734087B2 (en) Retention-drift-history-based non-volatile memory read threshold optimization
US11024396B2 (en) Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
US10002046B2 (en) Zero-one balance management in a solid-state disk controller
TWI534828B (zh) 非揮發性記憶體之以單一讀取爲基礎的軟決定解碼
JP6452278B2 (ja) 不揮発性メモリの耐久性平準化のためのセル損傷の測定
US8856611B2 (en) Soft-decision compensation for flash channel variation

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees