TWI534828B - 非揮發性記憶體之以單一讀取爲基礎的軟決定解碼 - Google Patents

非揮發性記憶體之以單一讀取爲基礎的軟決定解碼 Download PDF

Info

Publication number
TWI534828B
TWI534828B TW102127659A TW102127659A TWI534828B TW I534828 B TWI534828 B TW I534828B TW 102127659 A TW102127659 A TW 102127659A TW 102127659 A TW102127659 A TW 102127659A TW I534828 B TWI534828 B TW I534828B
Authority
TW
Taiwan
Prior art keywords
read
nvm
flash memory
host
interface
Prior art date
Application number
TW102127659A
Other languages
English (en)
Other versions
TW201413735A (zh
Inventor
吳玉欣
陳震剛
陳寧
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 TW201413735A publication Critical patent/TW201413735A/zh
Application granted granted Critical
Publication of TWI534828B publication Critical patent/TWI534828B/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
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

非揮發性記憶體之以單一讀取為基礎的軟決定解碼 相關申請案之交叉參考
在隨附申請案資料列表、請求書或傳送信中進行本申請案之優先權權益主張(若存在,在適當時)。在本申請案之類型准許之情況下,本申請案出於所有目的而以引用方式併入有以下申請案(其在作出本發明時全部與本申請案共同擁有):2012年8月4日提出申請之第一發明人為Yunxiang WU且標題為「SINGLE-READ BASED SOFT-DECISION DECODING OF NON-VOLATILE MEMORY」之美國非臨時申請案(代理人檔案號為L12-0704US1且序號為13/567,024);2012年8月4日提出申請之第一發明人為Yunxiang WU且標題為「SOFT-DECISION COMPENSATION FOR FLASH CHANNEL VARIATION」之美國非臨時申請案(代理人檔案號為L12-0484US1且序號為13/567,025);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」之美國非臨時申請 案(代理人檔案號為LS12-0645US1且序號為13/533,130)。
領域:需要非揮發性儲存技術之進步以提供效能、效率及使用效用之改良。
相關技術:除非明確識別為公眾習知或眾所周知,否則本文中提及之出於內容脈絡、定義或比較目的而包含之技術及概念不應視為承認此等技術及概念係先前公眾習知或以其他方式作為先前技術之部分。本文中所述之包含專利、專利申請案及公開案之全部參考文獻(若存在)皆出於所有目的而特此以全文引用之方式明確地或不明確地併入本文中。
如由固態磁碟(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記憶體因此每儲存記憶體胞儲存一個位元,具有兩個裝置臨限電壓分佈(一者針對0且另一者針對1),且需要一單一讀取臨限值、讀取電壓參考VREAD1。自較低裝置臨限電壓至較高裝置臨限電壓,兩個裝置臨限電壓分佈稱為E(經抹除)狀態及D1(第一資料)狀態。雖然任意,但一常見映射(編碼)將指派邏輯1至E狀態及邏輯0至D1狀態。因此,對0及1之參考係對D1狀態及E狀態之各別解碼之代理參考。
自上文進一步繼續,針對多位階記憶體胞(MLC)快閃記憶體,N>1。MLC記憶體因此每記憶體胞儲存一個以上位元,具有兩個以上裝置臨限電壓分佈,且需要多個不同讀取臨限值以區分該等分佈。舉例而言,一4LC記憶體(例如,快閃記憶體)每記憶體胞儲存兩個位元,具有四個裝置臨限電壓分佈,及通常需要三個讀取臨限值(讀取電壓參考VREAD1、VREAD2及VREAD3)。自較低裝置臨限電壓至較高裝置臨限電壓,四個裝置臨限電壓分佈稱為E(經抹除)、D1(資料1)、D2(資料2)及D3(資料3)狀態。雖然任意,但四個裝置臨限電壓分佈中之每一者亦根據一特定二進制序列(諸如一格雷(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個步驟)需要讀取單位之諸多耗時樣本(每一者具有一伴隨復原時間延時)。甚至當此一搜尋係非頻繁需要且因此對平均延時無一主要影響時,針對具有嚴格最大延時要求之應用,包含某些資料庫應用,此一耗時搜尋係不可接受的。
本發明可以眾多方式實施,包含作為一處理程序、一製造物件、一設備、一系統、一物質組合物及諸如一電腦可讀儲存媒體之一電腦可讀媒體(例如,一光學及/或磁性大容量儲存裝置中之媒體,諸如一磁碟,或具有諸如快閃記憶體儲存之非揮發性儲存之一積體電路)或其中在光學或電子通信鏈路上發送程式指令之一電腦網路。在此說明書中,此等實施方案或本發明可採取之任何其他形式可稱為技術。【實施方式】提供本發明之達成在上文所識別領域中之效能、效率及使用效用之改良的一或多個實施例之一解釋。【實施方式】包含一導論以促進對【實施方式】之其餘部分之更快速理解。該導論包含根據本文中所闡述之概念之系統、方法、製造物件及電腦可讀媒體中之一或多者之實例性實施例。如在總論中更詳細地論述,本發明涵蓋在所發佈之申請專利範圍之範疇內的所有可能修改及變化。 在各種實施例及/或使用情境中,硬解碼錯誤可藉由軟解碼來解決。軟解碼使用能夠較穩健校正錯誤(例如,LDPC)之技術,代價係與硬解碼演算法(例如,BCH碼)相比額外實施方案複雜性。軟解碼之一個額外複雜性係產生軟決定度量。某些技術藉由執行額外讀取(例如,「重試讀取」)及/或陣列存取及至少部分地基於額外讀取及/或陣列存取之結果而計算軟決定度量來產生軟決定度量。
發明者咸信,其係最先注意到:關於效能、電力、成本及/或可靠性之重要性,自一NVM控制器中之一硬解碼讀取產生軟決定度量之益處。更特定而言,發明者咸信,其係最先注意到:來自硬解碼之通道參數(例如,電荷分佈及裝置臨限電壓)使得能夠在無需額外讀取及/或陣列存取之情況下產生軟決定度量。消除額外讀取及/或陣列存取減少與軟解碼相關聯之延時、電力消耗及頻寬成本中之一或多者,且達成對原本不可校正(例如,硬解碼)錯誤之更高效軟解碼。
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‧‧‧非揮發性記憶體
210‧‧‧單位階記憶體胞標稱讀取臨限值/讀取臨限值/
220‧‧‧單位階記憶體胞標稱最負臨限值狀態/最左側分佈
230‧‧‧單位階記憶體胞標稱最正臨限值狀態/最右側分佈
240‧‧‧多位階記憶體胞標稱第一讀取臨限值
242‧‧‧多位階記憶體胞標稱第二讀取臨限值
244‧‧‧多位階記憶體胞標稱第三讀取臨限值
250‧‧‧多位階記憶體胞標稱最負臨限值狀態/裝置臨限電壓分佈
260‧‧‧多位階記憶體胞標稱下一最負臨限值狀態/裝置臨限電壓分佈
270‧‧‧多位階記憶體胞標稱下一最正臨限值狀態/裝置臨限電壓分佈
280‧‧‧多位階記憶體胞標稱最正臨限值狀態/裝置臨限電壓分佈
306‧‧‧寫入資料
310‧‧‧擾碼器
311‧‧‧經加擾碼之寫入資料
320‧‧‧錯誤校正碼/低密度同位檢查編碼器
321‧‧‧經錯誤校正碼編碼之寫入資料
332‧‧‧非揮發性記憶體陣列
334‧‧‧可程式化讀取電壓電路
336‧‧‧控制/狀態暫存器
338‧‧‧輸入/輸出
340‧‧‧通道參數估計器
341‧‧‧參數
351‧‧‧讀取資料
359‧‧‧未經校正且經加擾碼之(原始)讀取資料
360‧‧‧錯誤校正碼/低密度同位檢查解碼器
361‧‧‧經校正之讀取資料
362‧‧‧軟度量
370‧‧‧解擾碼器
371‧‧‧未經加擾碼之讀取資料
380‧‧‧軟度量轉換器
410‧‧‧讀取非揮發性記憶體位置
420‧‧‧對原始讀取資料進行硬解碼
430‧‧‧讀取錯誤評估
440‧‧‧產生軟決定度量
450‧‧‧通道參數
460‧‧‧基於軟決定度量而對原始讀取資料進行軟解碼
圖1A圖解說明包含實施用於管理非揮發性記憶體(NVM)元件(例如,快閃記憶體)之讀取臨限值之最佳化之一固態磁碟(SSD)控制器之一SSD之一實施例之選定細節。
圖1B圖解說明包含圖1A之SSD之一或多個例項之系統之各種實施例之選定細節。
圖2A及圖2B圖解說明關於一NVM(具體而言,分別關於SLC及MLC記憶體)之解碼之實例性裝置臨限電壓分佈。
圖3圖解說明圖1A之SSD之一例項之一系統實施例之選定細節,提供關於一NVM之解碼之特定細節。
圖4圖解說明NVM之以單一讀取為基礎的軟決定解碼之一實施例之選定細節之一流程圖。
圖5圖解說明使用所產生軟決定度量之軟決定解碼之一實施例之 選定細節。
結合圖解說明本發明之選定細節之附圖在下文中提供本發明之一或多項實施例之一詳細說明。本發明係連同該等實施例一起闡述。本文中之實施例應理解為僅係例示性的,本發明明確地不限於或受限於本文中實施例中之任一者或全部,且本發明涵蓋眾多替代方案、修改形式及等效物。為避免解釋之單調性,可將多種措詞標誌(包含但不限於:第一、最後、某一(些)、各種、進一步、其他、特定、選擇、某一(些)及顯著的)應用於單獨組之實施例;如本文所使用,此等標誌明確地不意在表達品質或任何形式之偏好或偏見,而僅在該等單獨組之間便利地加以區分。所揭示程序之某些操作之次序在可本發明之範疇內更改。儘管多個實施例起到闡述程序、方法及/或程式指令特徵中之變化之作用,但亦涵蓋根據一預定準則或一動態判定之準則執行分別對應於複數個該多項實施例之複數個操作模式中之一者之靜態及/或動態選擇之其他實施例。在以下說明中陳述眾多特定細節以提供對本發明之一透徹理解。出於舉例目的提供該等細節,且可在不具有該等細節中之某些或全部之情況下根據申請權利範圍來實踐本發明。出於清晰目的,並未詳細闡述關於本發明之技術領域所習知之技術材料,以便不必要地使本發明模糊不清。
導論
僅出於促進更快速地理解【實施方式】之目的而包含此導論;本發明不限於該導論中所呈現之概念(若存在,包含明確實例),此乃因任何導論之段落係整個主題之一示意圖,且不意在係窮盡性或限制性說明。舉例而言,接下來之導論提供由空間所限之概略資訊及對僅某些實施例之組織。貫穿該說明書之剩餘部分論述諸多其他實施例,包含申請專利範圍將涉及之彼等實施例。
縮寫字
此處所定義之各種簡寫縮略語(例如,縮寫字)中之至少某些係指本文中所使用之某些元件。
追蹤並還原0/1平衡
接下來之對追蹤並管理針對0及1之計數以及用於區分0狀態與1狀態之讀取臨限值之移位之初始論述可直接適用於SLC記憶體且(在較小變化之情況下,如所註明)可適用於MLC記憶體之下部頁。更一般而言,關於MLC記憶體,在下文單獨段落中詳述追蹤並管理針對上部頁之計數及多個讀取臨限值(例如,讀取電壓參考VREAD1、VREAD2及VREAD3)之移位之擴展部分。
在某些實施例中,針對自一SLC NVM讀取之每一讀取單位(或自一個NVM晶粒同時轉移之每一讀取單位群組)獲得一0計數及一1計數。倘若讀取單位部分地由於裝置臨限電壓分佈移位遠離其(初始)標稱分佈而不可校正(例如,在硬決定解碼之一內容脈絡中),則0計數及/或1計數達成對移動(設定)一讀取臨限值之一方向及/或一量值之一判定以追蹤裝置臨限電壓分佈之移位且還原0/1平衡。經調整之讀取臨限值針對SLC記憶體係讀取電壓參考VREAD1且針對MLC記憶體之下部頁係讀取電壓參考VREAD2。舉例而言,在具有經指派至抹除狀態之一邏輯1且寫入有一習知統計上相等(50%-50%,亦稱為50%/50%,或簡單地50/50)之0及1分佈之一SLC中,若一當前0/1計數指示1之一優勢,則VREAD1移位較低;且若當前0/1計數指示0之一優勢,VREAD1移位較高。(針對MLC記憶體之下部頁,用VREAD2替換前述實例中之VREAD1)。藉由0(或1)之數目之一百分比來視情況判定改變(移位)讀取臨限值之程度之一量值。量值基於以下中之一或多者:在一或多個樣本中觀察到之0及/或1之數目;一或多個樣本之一讀取臨限值增量;對應於兩個分佈之峰值之間的一中點之預測裝置臨限電壓分佈之一知曉;程式/抹除計數(磨損);讀取干擾計數;保留時間及其他類似因素。
尋找讀取均衡點
在進一步實施例中,使用一似二進制搜尋之操作(在適當讀取電壓參考之各別值下反覆取樣相同讀取單位)來尋找一讀取臨限值「讀取均衡點」。該讀取臨限值「讀取均衡點」係導致讀取時之原始資料(在錯誤校正之前)統計狀態分佈在一統計錯誤邊限內匹配所寫入統計狀態分佈或其理想化之模型之在毗鄰裝置臨限電壓分佈之間的裝置臨限電壓軸上之一點。
針對SLC記憶體及隨機加擾碼(諸如由加密所致),讀取均衡點係其中(自NVM讀取之原始資料之)一0/1平衡係最均等(接近相同)之讀取臨限值(讀取電壓參考VREAD1)。在此等情況下,兩個狀態分佈具有一50-50平衡。亦即,所讀取狀態之50%係0且所讀取狀態之50%係1。(針對MLC記憶體之下部頁,用VREAD2替換前述中之VREAD1)。
在某些實施例中,讀取均衡點對應於以下各項中之一或多者:兩個電壓分佈之間的一中心點、兩個電壓分佈之間的一最小值、讀取資料中之0/1平衡最接近於50-50之一點以及根據兩個其他點處所尋找到之0/1平衡之內插所判定之一點。讀取均衡點對應於具有對稱毗鄰裝置臨限電壓分佈之實施例中之毗鄰裝置臨限電壓分佈之間的一中心點。
尋找讀取臨限值並將其設定為期望之讀取均衡點減小尋找試圖硬決定解碼之一最佳點所需之讀取之數目。在其他實施例中,倘若在尋找到讀取臨限值讀取均衡點之前尋找到一「足夠良好」讀取臨限值,則在二進制搜尋中之每一讀取臨限值取樣點(針對SLC記憶體之VREAD1之每一值,或針對MLC記憶體之下部頁之VREAD2之每一值)處試圖進行硬決定解碼。在尋找到足夠良好讀取臨限值之後通常旋即截斷該搜尋,惟除如下文關於出於軟決定解碼目的可能在所判定讀取均衡點周圍進行額外取樣所論述。在各種實施例中,「足夠良好」讀取臨限值導致原始讀取資料之成功硬決定解碼。在某些實施例中,至少部 分地基於如上文關於讀取臨限值改變之量值所詳述之各種因素而判定二進制搜尋中之搜尋步驟(讀取臨限值增量)之一量值。
MLC考量事項
在MLC記憶體中,管理多個讀取臨限值。在某些實施例中,此係藉由假定多個裝置臨限電壓分佈之統一位移及在下部頁之一讀取資料0/1平衡之基礎上基於針對第一讀取臨限值(VREAD1)作出之決定而改變所有其他讀取臨限值來執行。
針對一4LC NVM,理論上,存在25-25-25-25之一11/10/00/01平衡(與50-50之一0/1平衡相比)。然而,假定4LC通常係經由單獨之陣列存取使用三個讀取電壓參考來讀取:VREAD2用於下部頁且VREAD1及VREAD3用於上部頁,則不存在直接提供此平衡之單一操作。因此可評估兩個各別0/1平衡:針對下部頁,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分佈之一同時混合而評估一組合「上部頁」讀取資料0/1平衡。基於所讀取之組合0/1平衡對所寫入之0/1平衡之不均等,且鑒於位元感測反轉(針對自E移動至D1,1至0,且針對自D2移動至D3,0至1),對應之兩個讀取臨限值(VREAD1及VREAD3)一致地沿相反方向移動。如此做以使得混合之每一組件之0/1平衡「沿相同方向」移動(例如,移動不衝突)。
在某些4LC實施例中,藉由對上部頁之0/1平衡之各別評估同時將一各別LSB用於讀取單位之每一位元來單獨地判定兩個上部頁讀取臨限值(VREAD1及VREAD3)之移動。當LSB=1時,移動方向與LSB=0情形之彼方向相反。舉例而言,替代計算上部頁讀取資料中之一0計數與一1計數之間的一不均等,藉由基於下部頁讀取資料之一對應位元而選擇性地修改上部頁讀取資料之每一位元、將對上部頁讀取資料之位元之一感測自一數值轉換為一方向值(其中舉例而言,0表示一較高裝置臨限電壓且1表示一較低裝置臨限電壓)來計算一上部頁不均等。在某些實施例中,上部頁讀取資料之位元與下部頁讀取資料之對應位元之一XNOR執行該轉換。
自軟決定樣本移除偏壓
在某些實施例中,自NVM獲得軟決定資訊以執行以軟決定為基礎之解碼。軟決定資訊係藉由以下步驟而獲得:在標稱(未經調整)讀取臨限值周圍之各種讀取臨限值取樣點(針對一SLC,為VREAD1值)處讀取一讀取單位(或自一個NVM晶粒同時轉移之每一讀取單位群組)以獲得讀取單位之資料之多個樣本,因此增加讀取單位之每一位元之一值之一軟決定可能性。樣本之一間隔至少部分地取決於所使用之NVM之特定性質,諸如其標稱電荷分離狀態。
軟決定資訊係有偏壓的,然而除非在其周圍進行採取樣本之標稱讀取臨限值係一讀取臨限值曲度均衡點(如上文所闡述)。若當前讀取臨限值並非臨限讀取均衡點,則所有軟決定資訊沿一個方向或另一方向有偏壓。以下係用以針對上述情形進行調整並獲得無偏壓(或至少較少偏壓)軟決定資訊之兩個實例性技術。
1.由於如在讀取臨限值取樣點中之每一者處取樣之讀取單位之一0/1平衡係較容易識別,因此較容易判定讀取臨限值讀取均衡點(根據實施例,諸如藉由使用線性內插)。一位移經計算對應於所判定讀取臨限值讀取均衡點與(舊的未經調整之)標稱讀取臨限值之間的差。先前所判定之軟決定資訊經啟用以恰當「重新置中」且仍藉由施加關於先前取樣軟決定資訊時之電壓之位移來使用(在值大於1.0或小於0.0之情況下,截斷)。此方法不需要額外讀取,但針對資料中之某些資料產生不同量之精確度/準確度。
2.由於如在讀取臨限值取樣點中之每一者處取樣之讀取單位之一0/1平衡係較容易識別,因此在收集所有所需樣本之後,較容易判定最接近於讀取臨限值讀取均衡點之讀取臨限值取樣點。最接近的是具有最近似於所寫入0/1平衡之0/1平衡之讀取臨限值取樣點。針對SLC加密(或加擾碼)情形,其係最接近具有一50-50平衡之讀取臨限值取樣點。由於所有樣本標稱地彼此具有相等間隔,因此將最接近樣本選擇為一新標稱讀取臨限值,且視情況搜集額外軟決定資訊樣本(假定該新標稱讀取臨限值不同於舊標稱讀取臨限值)。另一選擇係,首先進行用以尋找臨限讀取均衡點之一個二進制搜尋,其中該二進制搜尋之精確度限於軟決定資訊之所期望精確度所需之樣本之一最精細細微度。軟決定資訊之所期望精確度在新標稱讀取臨限值周圍具有一相關聯樣本窗。作為獲得軟決定資訊所需之多個讀取之一部分,進行一個二進制搜尋不需 要額外讀取,除非舊標稱讀取臨限值落在所期望之精確度樣本窗外部。
到目前為止所闡述之SLC加密實施例中,以上技術已側重於尋找產生最接近於50-50之一讀取資料0/1平衡之一較佳讀取臨限值。針對其中裝置臨限電壓分佈具有大體相同對稱形狀且不實質上重疊之情形,此較佳讀取臨限值亦將對應於組合裝置臨限電壓分佈之最小值。
自裝置臨限電壓分佈上之已知點內插之讀取臨限值
在某些實施例中,尋找較佳讀取臨限值之另一方法係替代地尋找兩個點(每一毗鄰裝置臨限電壓分佈上一個),且藉由內插來判定此等兩個點之間的中點。舉例而言,每一裝置臨限電壓分佈之峰值處之取樣應產生讀取資料0/1(或1/0,取決於哪一者達到峰值)之一75/25平衡。一旦識別兩個峰值,使用裝置臨限電壓軸上之兩者之間之經計算的中點來設定一新讀取臨限值。
若先驗已知裝置臨限電壓分佈係不一致的(例如,在一側或另一側上不對稱偏壓,諸如藉由具有一長尾),則在某些實施例中彼資訊用於解釋峰值之位置及藉由一稍微更複雜之內插(例如,不僅僅中點)來定位中心。諸如保留時間及/或磨損之因素可影響裝置臨限電壓分佈之對稱,且在某些實施例中加以計及。多個取樣點亦在某些實施例中用於揭示裝置臨限電壓分佈之形狀。
在其中裝置臨限電壓調整之範圍係有限之某些實施例中,不可能尋找到真峰值。特定而言,裝置臨限電壓在某些快閃記憶體裝置之情況下不能移動小於0V,儘管E狀態之電壓分佈擴展至負裝置臨限電壓中。對裝置臨限電壓分佈之知曉,仍准許經由內插來判定中點。舉例而言,若在0V下,讀取資料0/1平衡係60/40,則觀察到大約10%過量0,且E分佈至0V之右側之一區域係大約10%。在某些實施例之一第一方法中,尋找D1分佈之峰值,且基於對E分佈之大致形狀之知曉 來內插中點。在某些實施例之一第二方法中,尋找到讀取資料0/1平衡係40/60之D1分佈之點(與0V量測相對之點)。然後使用60/40觀察值與40/60觀察值之間之所計算的中點來設定新較佳讀取臨限值。在對兩個裝置臨限電壓分佈之額外知曉及/或量測之情況下,可以較大精確度來判定所計算之中點。
在某些實施例中,內插之點皆在與讀取均衡點相同之一側上。舉例而言,已知一第一讀取臨限值取樣點X產生75/25讀取資料0/1平衡且一第二讀取臨限值取樣點Y產生62.5/37.5,讀取均衡點將接近於Y +/-(X-Y),其中「+」對「-」取決於Y是否小於X。讀取均衡點之方向係對應於使讀取資料0/1平衡移動較接近於50/50之方向。在給定實例總,彼方向係自X且朝向Y之方向。對裝置臨限電壓分佈之方向將產生一較準確內插而非所指示之簡單線性內插。
非揮發性記憶體之以單一讀取為基礎的軟決定解碼
在各種實施例中,一固態磁碟(SSD)控制器經啟用以執行對一非揮發性記憶體(NVM)之硬決定解碼及軟決定解碼讀取。在某些情境中,硬決定解碼係有利的,例如,與軟決定解碼相比,具有較低延時及/或電力消耗以及相對較簡單演算法。然而,在某些情境中,軟決定解碼使用達成比硬決定解碼高之錯誤校正能力之相對較複雜演算法(例如,LDPC)。在某些實施例中,一SSD控制器使用硬決定解碼讀取一位置;若發生一錯誤,則控制器使用軟決定解碼再次讀取該位置。
在某些SSD控制器中,軟決定解碼需要對NVM之額外讀取(亦即,與用於硬決定解碼之讀取分離)。在某些實施例中,SSD控制器自一硬解碼讀取之通道參數產生軟決定度量,而無需額外讀取及/或陣列存取。控制器使用所產生之軟決定度量執行軟解碼。使用一單一讀取來執行軟決定解碼達成較低延時、較高可靠性及較低電力消耗中之一或多者。
實例性實施例
在結束詳細說明之導論後,接下來是實例性實施例之一集合,包含至少某些明確地列舉為「EC(實例組合)」之實例性實施例,提供根據本文中所闡述之概念之多種實施例類型之額外說明;此等實例不意在係彼此排外性、窮盡性或限制性的;且本發明不限於此等實例性實施例,而是涵蓋在所發佈申請專利範圍及其等效物之範疇內的所有可能的修改及變化。
EC1)一種方法,其包括:在經啟用以與一非揮發性記憶體(NVM)一起操作之一控制器中,使用僅僅來自對該NVM之一位置之一單一讀取之資訊來產生軟決定度量;及至少部分地基於該等所產生軟決定度量而執行軟決定解碼以判定該位置之內容。
EC2)如EC1之方法,其中該NVM包括一NVM陣列,該NVM陣列包括一快速記憶體陣列,且該位置係位於該快閃記憶體陣列中。
EC3)如EC1之方法,其中該位置係根據一單位階記憶體胞(SLC)技術操作且該單一讀取對應於根據一單一讀取臨限值對至少該位置之一單一陣列存取。
EC4)如EC3之方法,其中該等通道參數係特定通道參數,各種通道參數包括該等特定通道參數及一或多個其他通道參數,且該方法進一步包括:將該等各種通道參數計算為用於該NVM之複數個區中之每一者之各別通道參數,該位置係在該等區中之一特定者中。
EC5)如EC3之方法,其中該單一讀取臨限值係一操作臨限值。
EC6)如EC1之方法,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術操作該位置,且該單一讀取對應於對至少該位置之少於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限 值。
EC7)如EC6之方法,其中該MLC技術提供四個離散狀態。
EC8)如EC6之方法,其中該MLC技術提供八個離散狀態。
EC9)如EC6之方法,其中該各別讀取臨限值係操作讀取臨限值。
EC10)如EC1之方法,其中該等軟決定度量之該產生至少部分地基於該位置之通道參數,該等通道參數包括一或多個裝置臨限電壓分佈及一或多個操作讀取臨限值中之任何一或多者。
EC11)如EC10之方法,其中該控制器估計該等裝置臨限電壓分佈。
EC12)如EC10之方法,其中該位置係根據一單位階記憶體胞(SLC)技術操作,該單一讀取對應於根據一單一讀取臨限值之對至少該位置之一單一陣列存取,且該單一讀取臨限值係一新操作讀取臨限值。
EC13)如EC10之方法,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術操作該特定位置,該單一讀取對應於對至少該位置之小於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值,且該等各別讀取臨限值中之一或多者係新操作讀取臨限值。
EC14)如EC1之方法,其中該單一讀取係回應於經由該控制器之一主機介面接收的來自一主機之一請求,且該主機介面係與至少一個儲存介面標準相容。
EC15)如EC1之方法,其中該NVM包括至少一個快閃記憶體,且該單一讀取係藉由該控制器經由一快閃記憶體介面傳遞至該至少一個快閃記憶體。
EC16)如EC1之方法,其中該NVM包括至少一個快閃記憶體。
EC17)如EC1之方法,其中該控制器包括與至少一個儲存介面標準相容且經啟用以與一主機通信之一主機介面,該控制器進一步包括 經啟用以與該NVM之至少一個快閃記憶體通信之一快閃記憶體介面,且該控制器係包括於一固態磁碟(SSD)中。
EC18)如EC1之方法,其中該控制器包括與至少一個儲存介面標準相容且經啟用以與一主機通信之一主機介面,該控制器進一步包括經啟用以與該NVM之至少一個快閃記憶體通信之一快閃記憶體介面,且該控制器係包括於一單一積體電路(IC)中。
EC19)一種系統,其包括:用於使用僅僅來自對一非揮發性記憶體(NVM)之一位置之一單一讀取之資訊來產生軟決定度量之構件;及用於至少部分地基於該等所產生軟決定度量而執行軟決定解碼以判定該位置之內容之構件。
EC20)如EC19之系統,其中該NVM包括一NVM陣列,該NVM陣列包括一快速記憶體陣列,且該位置係位於該快閃記憶體陣列中。
EC21)如EC19之系統,其中該位置係根據一單位階記憶體胞(SLC)技術操作且該單一讀取對應於根據一單一讀取臨限值對至少該位置之一單一陣列存取。
EC22)如EC21之系統,其中該單一讀取臨限值係一操作臨限值。
EC23)如EC19之系統,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術操作該位置,且該單一讀取對應於對至少該位置之少於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值。
EC24)如EC23之系統,其中該MLC技術提供四個離散狀態。
EC25)如EC23之系統,其中該MLC技術提供八個離散狀態。
EC26)如EC23之系統,其中該各別讀取臨限值係操作讀取臨限值。
EC27)如EC19之系統,其中該等軟決定度量之該產生至少部分地 基於該位置之通道參數,該等通道參數包括一或多個裝置臨限電壓分佈及一或多個操作讀取臨限值中之任何一或多者。
EC28)如EC27之系統,其中該等通道參數係特定通道參數,各種通道參數包括該等特定通道參數及一或多個其他通道參數,且該系統進一步包括:用於將該等各種通道參數計算為用於該NVM之複數個區中之每一者之各別通道參數之構件,該位置係在該等區中之一特定者中。
EC29)如EC27之系統,其進一步包括用於估計該等裝置臨限電壓分佈之構件。
EC30)如EC27之系統,其中該位置係根據一單位階記憶體胞(SLC)技術操作,該單一讀取對應於根據一單一讀取臨限值之對至少該位置之一單一陣列存取,且該單一讀取臨限值係一新操作讀取臨限值。
EC31)如EC27之系統,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術操作該特定位置,該單一讀取對應於對至少該位置之小於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值,且該等各別讀取臨限值中之一或多者係新操作讀取臨限值。
EC32)如EC19之系統,其中該單一讀取係回應於經由與至少一個儲存介面標準相容之一主機介面接收的來自一主機之一請求。
EC33)如EC19之系統,其中該NVM包括至少一個快閃記憶體,且該單一讀取係經由一快閃記憶體介面傳遞至該至少一個快閃記憶體。
EC34)如EC19之系統,其中該NVM包括至少一個快閃記憶體。
EC35)如EC19之系統,其進一步包括:一主機介面,其與至少一個儲存介面標準相容且經啟用以與一主機通信; 一快閃記憶體介面,其經啟用以與該NVM之至少一個快閃記憶體通信;且其中用於使用之該構件、用於執行之該構件、該主機介面及該快閃記憶體介面係包括於一固態磁碟(SSD)中。
EC36)如EC19之系統,其進一步包括:一主機介面,其與至少一個儲存介面標準相容且經啟用以與一主機通信;及一快閃記憶體介面,其經啟用以與該NVM之至少一個快閃記憶體通信;且其中用於使用之該構件、用於執行之該構件、該主機介面及該快閃記憶體介面係包括於一單一積體電路(IC)中。
EC37)如前述EC中任一項,其具有或提及一儲存介面標準,其中該儲存介面標準包括以下各項中之一或多者:一通用串列匯流排(USB)介面標準,一小型快閃記憶體(CF)介面標準,一多媒體卡(MMC)介面標準,一嵌入式MMC(eMMC)介面標準,一Thunderbolt介面標準,一UFS介面標準,一安全數位(SD)介面標準,一記憶體卡介面標準,一xD圖片卡介面標準,一整合式驅動電子器件(IDE)介面標準,一串列進階技術附接(SATA)介面標準,一外部SATA(eSATA)介面標準,一小型電腦系統介面(SCSI)介面標準, 一串列附接小型電腦系統介面(SAS)介面標準,一光纖通道介面標準,一乙太網路介面標準,及一高速周邊組件互連(PCIe)介面標準。
EC38)如前述EC中任一項,其具有或提及一快閃記憶體介面,其中該快閃記憶體介面與以下各項中之一或多者相容:一開放NAND快閃記憶體介面(ONFI),一雙態切換模式介面,一雙倍資料速率(DDR)同步介面,一DDR2同步介面;一同步介面,及一不同步介面。
EC39)如前述EC中任一項,其具有或提及一主機,其中該主機包括以下各項中之一或多者:一電腦,一工作站電腦,一伺服器電腦,一儲存伺服器,一儲存附接網路(SAN),一網路附接儲存(NAS)裝置,一直接附接儲存(DAS)裝置,一儲存器具,一個人電腦(PC),一膝上型電腦,一筆記型電腦,一小筆電電腦, 一平板裝置或電腦,一超輕薄筆電電腦,一電子閱讀裝置(一電子閱讀器),一個人數位助理(PDA),一導航系統,一(手持式)全球定位系統(GPS)裝置,一汽車控制系統,一汽車媒體控制系統或電腦,一印表機、影印機或傳真機或一體成型裝置,一銷售點POS裝置,一收銀機,一媒體播放器,一電視,一媒體記錄器,一數位視訊記錄器(DVR),一數位相機,一蜂巢式手機,一無線手持電話,及一電子遊戲機。
EC40)如前述EC中任一項,其具有或提及一至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包括以下各項中之一或多者:NAND快閃記憶體技術儲存記憶體胞,及NOR快閃記憶體技術儲存記憶體胞。
EC41)如前述EC中任一項,其具有或提及一至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包括以下各項中之一或 多者:單位階記憶體胞(SLC)快閃記憶體技術儲存記憶體胞,及多位階記憶體胞(MLC)快閃記憶體技術儲存記憶體胞。
EC42)如前述EC中任一項,其具有或提及一至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包括以下各項中之一或多者:基於多晶矽技術之電荷儲存記憶體胞,及基於氮化矽技術之電荷儲存記憶體胞。
EC43)如前述EC中任一項,其具有或提及一至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包括以下各項中之一或多者:基於二維技術之快閃記憶體技術,及基於三維技術之快閃記憶體技術。
系統
在某些實施例中,諸如一SSD之一I/O裝置包含一SSD控制器。SSD控制器充當SSD之主機介面與NVM之間的一橋接器,且執行經由SSD之一主機介面自一計算主機發送之一主機協定之命令。該等命令中之至少某些命令引導SSD寫入及讀取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介面標準、一記憶體卡介面標準、一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使用0或0以上同位碼、0或0以上RS碼、0或0以上BCH碼、0或0以上維特比(Viterbi)或其他格子碼及0或0以上LDPC碼之各種組合。
圖1A圖解說明包含實施用於管理非揮發性記憶體(NVM)元件(例如,快閃記憶體)之讀取臨限值之最佳化(例如,經由0/1平衡管理及/ 或離線追蹤技術)之SSD控制器100之SSD 101之選定細節。SSD控制器100經由一或多個外部介面110以通信方式耦合至一主機(諸如圖1B之主機102)。根據各種實施例,外部介面110係以下各項中之一或多者:一SATA介面;一SAS介面;一PCIe介面;一光纖通道介面;一乙太網路介面(諸如,10十億位元乙太網路)、前述介面中之任一者之一不標準版本;一定製介面;或用以將儲存及/或通信及/或計算裝置互連之任何其他類型之介面。舉例而言,在某些實施例中,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之一或多者之一或多個匯流排群組,其中一群組中之匯流排通常係並行存取;或至裝置介面190上之快閃記憶體裝置192之一或多者之任何其他組織。
在圖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)之一解除分配命令(例如,一修整命令);作為回應,SSD相應地修改映射且視情況提供解除分配狀態。在某些內容脈絡中,一ATA相容TRIM命令係一例示性解除分配命令。對於另一實例,該等命令包含一超級電容器測試命令或一資料強化成功查詢;作為回應,SSD提供適當狀態。在某些實施例中,主機介面111係與一SATA協定相容且使用NCQ命令而啟用以具有最多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,其用於資料之暫時儲存;DMA 133,其用以控制至及/或自緩衝器131之資料之移動;及ECC-X 135,其用以提供較高階錯誤校正及/或冗餘功能;及其他資料移動及/或操縱功能。一較高階冗餘功能之一實例係一似RAID能力,其中冗餘係在一快閃記憶體裝置(例如,快閃記憶體裝置192之多個快閃記憶體裝置)級及/或一快閃記憶體晶粒(例如,快閃記憶體晶粒194)級上而非在 一磁碟級上。
根據各種實施例,揭示以下各項中之一或多者:ECC 161視情況及/或選擇性地處理在緩衝器131與裝置介面190之間發送之某些或全部資料;及ECC 161視情況及/或選擇性地處理儲存於緩衝器131中之資料。在某些實施例中,ECC 161用以提供較低階錯誤校正及/或諸如根據一或多個ECC技術之冗餘功能。在某些實施例中,ECC 161實施以下各項中之一或多者:一CRC碼;一漢明(Hamming)碼;一RS碼;一BCH碼;一LDPC碼;一維特比碼;一格子碼;一硬決策碼;一軟決策碼;一基於抹除之碼;任何錯誤偵測及/或校正碼;及前述項之任何組合。在某些實施例中,ECC 161包含一或多個解碼器(諸如,LDPC解碼器)。
裝置介面邏輯191經由裝置介面190控制快閃記憶體裝置192之例項。裝置介面邏輯191經啟用以根據快閃記憶體裝置192之一協定將資料發送至快閃記憶體裝置192之例項/自快閃記憶體裝置192之例項發送資料。裝置介面邏輯191包含排程193以選擇性地定序經由裝置介面190對快閃記憶體裝置192之例項之控制。舉例而言,在某些實施例中,排程193經啟用以將對快閃記憶體裝置192之例項之操作排成佇列,且在快閃記憶體裝置192(或快閃記憶體晶粒194)之例項中之個別例項係可用時,將該等操作選擇性地發送至快閃記憶體裝置192(或快閃記憶體晶粒194)之例項中之個別例項。
映射141在用於外部介面110上之資料定址與用於裝置介面190上之資料定址之間轉換,從而使用表143以將外部資料位址映射至NVM 199中之位置。舉例而言,在某些實施例中,映射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; 控制電力定序;控制及/或監視及/或調整電力消耗;回應於電力故障;控制及/或監視及/或調整時脈速率;及其他管理任務。
各種實施例包含一計算主機快閃記憶體控制器,其類似於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裝置通信,例如,資料自OS 105(經由驅動程式107)、驅動程式107及應用程式109(經由驅動程式107或直接作為一VF)中之任何一或多者發送至SSD 101之例項中之一或多者,及自SSD 101之例項中之一或多者接收至OS 105(經由驅動程式107)、驅動程式107及應用程式109(經由驅動程式107或直接作為一VF)中之任何一或多者。
OS 105包含及/或經啟用以藉助用於與SSD介接之驅動程式(概念上由驅動程式107圖解說明)來操作。Windows之各種版本(例如,95、98、ME、NT、XP、2000、伺服器、Vista及7)、Linux之各種版本(例如,Red Hat、Debian及Ubuntu)及MacOS之各種版本(例如,8、9及X)係OS 105之實例。在各種實施例中,驅動程式係可藉助一標準介面及 /或協定(諸如,SATA、AHCI或NVM Express)操作之標準及/或泛用驅動程式(有時稱作「壓製於光碟之拆封授權軟體」或「經預安裝」),或視情況係定製及/或廠商特定的,以達成特定於SSD 101之命令的使用。某些磁碟機及/或驅動程式具有穿通模式以啟用應用程式級程式(諸如,經由經最佳化NAND存取(有時稱作ONA)或直接NAND存取(有時稱作DNA)技術之應用程式109)以將命令直接傳遞至SSD 101,從而使得一經定製應用程式能夠甚至藉助一泛用驅動程式來使用特定於SSD 101之命令。ONA技術包含以下各項中之一或多者:不標準修飾符(提示)之使用;廠商特定命令之使用;不標準統計(諸如,根據可壓縮性之實際NVM使用)之傳遞;及其他技術。DNA技術包含以下各項中之一或多者:提供對NVM之未經映射讀取、寫入及/或抹除存取之不標準命令或廠商特定之使用;諸如藉由繞過I/O裝置原本將進行之資料之格式化來提供對NVM之更直接存取之不標準或廠商特定命令之使用;及其他技術。驅動程式之實例係不具有ONA或DNA支援之一驅動程式、一具有ONA能力之驅動程式、一具有DNA能力之驅動程式及一具有ONA/DNA能力之驅動程式。驅動程式之進一步之實例係一廠商提供、廠商開發及/或廠商增強之驅動程式,及一用戶端提供、用戶端開發及/或用戶端增強之驅動程式。
應用程式級程式之實例係不具有ONA或DNA支援之一應用程式、一具有ONA能力之應用程式、一具有DNA能力之應用程式及一具有ONA/DNA能力之應用程式。虛箭頭109D表示應用程式←→I/O裝置通信(例如,經由一驅動程式繞過或經由用於一應用程式之一VF繞過),例如,一具有ONA能力之應用程式及一具有ONA能力之驅動程式與一SSD通信,諸如,在該應用程式不使用OS作為一中間機構之情況下。虛箭頭109V表示應用程式←→I/O裝置通信(例如,經由用於一應用程式之一VF繞過),例如,一具有DNA能力之應用程式及一具有 DNA能力之驅動程式與一SSD通信,諸如,在該應用程式不使用OS或驅動程式作為中間機構之情況下。
在某些實施例中,NVM 199之一或多個部分用於韌體儲存(例如,韌體106)。該韌體儲存包含一或多個韌體影像(或其部分)。舉例而言,一韌體影像具有(例如)藉由SSD控制器100之CPU核心172執行之韌體之一或多個影像。對於另一實例,一韌體影像具有(例如)在韌體執行期間由CPU核心參考之常數、參數值及NVM裝置資訊之一或多個影像。韌體之影像對應於(例如)一當前韌體影像及0或0以上先前(相對於韌體更新)韌體影像。在各種實施例中,韌體提供泛用、標準、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表示一或多個區域及/或廣域網路,諸如一伺服器群中之一網路、耦合伺服器群之一網路、一都會區域網路及網際網路中之任何一或多者。
在各種實施例中,一SSD控制器及/或一計算主機快閃記憶體控制器結合一或多個NVM一起實施為一非揮發性儲存組件,諸如一USB儲存組件、一CF儲存組件、一MMC儲存組件、一eMMC儲存組件、一Thunderbolt儲存組件、一UFS儲存組件、一SD儲存組件、一記憶體卡儲存組件及一xD圖片卡儲存組件。
在各種實施例中,一SSD控制器(或一計算主機快閃記憶體控制器)之全部或任何部分或其功能實施於一主機(例如,圖1B之主機102)中,該控制器欲與該主機耦合。在各種實施例中,一SSD控制器(或一計算主機快閃記憶體控制器)之全部或任何部分或其功能係經由硬體(例如,邏輯電路)、軟體及/或韌體(例如,驅動程式軟體或SSD控制韌體)或其任何組合而實施。舉例而言,一ECC單元(諸如,類似於圖1A之ECC 161及/或ECC-X 135)之功能性或與該ECC單元相關聯之功能性係部分地經由軟體實施於一主機上且部分地經由韌體與硬體之一組合實施於一SSD控制器中。對於另一實例,一回收器單元(諸如,類似於圖1A之回收器151)之功能性或與該回收器單元相關聯之功能性係部分地經由軟體實施於一主機上且部分地經由硬體實施於一計算主機快閃記憶體控制器中。
一非揮發性記憶體(NVM)之解碼
圖2A及圖2B圖解說明關於一NVM(具體而言,分別關於SLC及 MLC記憶體)之解碼之裝置臨限電壓分佈。出於此論述之目的,每一山丘狀凸出係表示一NVM之一讀取單位大小部分之一各別狀態之一裝置臨限電壓機率分佈之一獨立似高斯曲線之一抽象性。裝置臨限電壓軸經繪示有向右遞增之正電壓。一絕對比例尺非目的性提供,且無任何參考點經識別,以使得標繪圖更一般適用於較大群體之NVM。
在圖2A中,最左側分佈220表示一邏輯1且最右側分佈230表示一邏輯0。取決於技術,最左側分佈可駐存(至少主要地)於負電壓處。讀取臨限值210理想地位於兩個分佈之間。
除如由本文中之實施例所連接以外,獨立於此等裝置臨限電壓分佈,在某些實施例中,NVM寫入有對儲存0及1之統計分佈之特定知曉。更特定而言,在某些實施例中,使用各種加密及/或加擾碼技術以使得0及1之統計分佈係50%-50%(50% 0及50% 1)。當使用標稱讀取臨限值(其針對圖2A之情形位於理想之處)讀取SLC時,所觀察到之0及1之讀取資料統計分佈係同樣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之情況下,小於百萬分之一的讀取單位樣本將預期使0位元之數目比平均數9,216超過340(5個標準差)。
類似地,圖2B表示裝置臨限電壓分佈。更具體而言,針對一選定格雷碼映射,裝置臨限電壓分佈250、260、270及280表示四個離散狀態。亦展示三個讀取臨限值:VREAD1 240、VREAD2 242及VREAD3 244。再次出於實例之目的,三個讀取臨限值中之每一者位於兩個毗鄰分佈之間且用於區分四個離散狀態。
在某些實施例中,使用各種加擾碼技術,以使得四個狀態之統計分佈係25%-25%-25%-25%(每一狀態25%)。在使用針對圖2B之情形位於理想之處之標稱讀取臨限值來讀取MLC時,在某些實施例中,四個狀態之統計分佈可經組態成同樣係25%-25%-25%-25%。(如別處所論述,0及1可由控制器直接觀察,但全部四個狀態可根據需要推論)。
用於一非揮發性記憶體(NVM)之解碼之功能
圖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/LDPC編碼器320、裝置介面邏輯191、通道參數估計器340、緩衝器131、ECC/LDPC解碼器360、解擾碼器370及軟度量轉換器380為特徵。主機介面111如本文中別處所論述經由外部介面110與主機耦合,提供寫入資料306至擾碼器310且接收來自緩衝器131之讀取資料351。
寫入路徑及功能性如下。擾碼器310對寫入資料306操作以產生至ECC/LDPC編碼器320之經加擾碼之寫入資料311。擾碼器310以一 可反轉方式對寫入資料306加擾碼且以使得經加擾碼之寫入資料311具有所儲存狀態之一已知統計分佈。包含經加擾碼之資料之一區塊之一實例係含有經加擾碼之寫入資料311之一區塊。例如,包含經加擾碼之資料之一SLC區塊含有相等數目個「0」值及「1」值且包含經加擾碼之資料之一4LC區塊含有相等數目個「00」狀態、「01」狀態、「10」狀態及「11」狀態。在某些實施例中,擾碼器310執行加密,諸如經由將資料隨機化為加密之一副產物之一AES編碼器。在某些實施例中,擾碼器310使用一線性回饋移位暫存器(LFSR)來將資料資料隨機化(但無任何資料安全性意向)。ECC/LDPC編碼器320處理經加擾碼之寫入資料311以添加額外錯誤校正位元(例如,ECC及/或LDPC),導致經ECC編碼之寫入資料321,經ECC編碼之寫入資料321經提供至裝置介面191以經由裝置介面190儲存於NVM 199中。
基本讀取路徑及功能性如下。經由裝置介面190自NVM 199接收包含未經校正及經加擾碼之(原始)讀取資料359之NVM頁。關於圖3繼續,每一讀取單位標稱地包含由擾碼器301加擾碼之資料以及由ECC/LDPC編碼器320產生之額外錯誤校正位元,但該資料通常由於NVM儲存及擷取操作而被無意變更。讀取單位係經由緩衝器131提供至ECC/LDPC解碼器360。ECC/LDPC解碼器360處理讀取單位,利用所包含額外錯誤校正位元來大體校正自資料首先經編碼以來可在任何點及時間處已發生之任何錯誤,導致經校正讀取資料361,經校正讀取資料361經提供至解擾碼器370。解擾碼器370對經校正讀取資料361進行操作,反轉由擾碼器310執行之加擾碼,導致未經加擾碼之讀取資料371,未經加擾碼之讀取資料371至少部分地作為讀取資料351經由緩衝器131提供至主機介面111。
讀取路徑及功能性進一步包含通道參數估計器340及軟度量轉換器380。通道參數估計器340監視自NVM接收之原始讀取資料359,且 估計通道參數341。通道參數之實例包含以下各項中之任何一或多者:記憶體胞裝置臨限電壓分佈(例如,電荷狀態中之任何一或多者之任何一或多個分佈之任何一或多個參數,諸如平均差及標準差)以及讀取臨限值(例如,任何一或多個讀取臨限值)。軟度量轉換器380接收通道參數及硬決定讀取資料(經由裝置介面邏輯191),且產生軟度量362(亦稱為軟決定準則)。軟度量由ECC/LPDC編碼器用於軟解碼(例如,LDPC解碼)以擷取經校正讀取資料。
圖3圖解說明關於在一主機操作為用於寫入至NVM 199及自NVM 199讀取之資料之一來源及一接收器之一內容脈絡中一NVM之解碼之功能。在各種實施例(諸如由圖1A及圖1B所圖解說明)中,一或多個其他代理程式操作為寫入至NVM 199及自NVM 199讀取之資料之來源及接收器。其他代理程式之一實例係圖1A之回收器151,其將資料自NVM 199中之一個位置移動至另一位置,如本文中別處所闡述。
在各種實施例中,至少部分地使用資料處理121及ECC 161中之一或多者(圖1A之兩者)來實施與擾碼器310、ECC/LDPC編碼器320、ECC/LDPC解碼器360及解擾碼器370中之任何一或多者相關聯之功能性之任何或全部部分。
非揮發性記憶體(NVM)之軟決定解碼
圖4圖解說明NVM之以單一讀取為基礎的軟決定解碼之一實施例之選定細節之一流程圖。為擷取儲存於一NVM(例如,一快閃記憶體)之一或多個為之處之資料,一控制器請求NVM讀取位置410。作為回應,NVM對NVM之一或多個非揮發性(例如,快閃)記憶體胞中之每一者執行N個陣列存取,陣列存取中之每一者根據一各別讀取臨限值,且記憶體胞對應於位置。在一SLC中,諸如一SLC快閃記憶體技術(例如,如圖2A中所圖解說明),一記憶體胞具有兩個離散狀態且N係1。在一MLC中,諸如一MLC快閃記憶體技術,一記憶體胞具有兩 個以上離散狀態且N係1或1以上。在某些實施例中,一每記憶體胞2位元MLC(例如,如圖2B中所圖解說明)具有四個狀態且N係3。在其他實施例中,一每記憶體胞3位元MLC具有八個狀態且N係7。
經由介面硬體(例如,圖3之裝置介面邏輯191)接收經由陣列存取自揮發性(例如,快閃)記憶體胞獲得之原始讀取資料(例如,圖3之未經校正且經加擾碼之(原始)讀取資料359)。藉由控制器將原始讀取資料解碼以獲得所儲存資料。在各種實施例中,對原始讀取資料進行硬解碼420以獲得所儲存資料。在某些實施例中,藉由各種硬體元件(例如,圖3之緩衝器131、ECC/LDPC解碼器360及解擾碼器370中任何一或多者)來執行解碼。控制器偵測是否已發生430一不可校正錯誤。在某些實施例及/或情境中,藉由至少一ECC解碼器(例如,經由圖3之ECC/LDPC解碼器360使用一BCH碼)來執行錯誤偵測。若未發生不可校正錯誤,則由控制器進行之讀取已成功擷取所儲存資料且控制器可產生另一讀取。
在某些實施例及/或情境中,若已發生一不可校正錯誤,則控制器試圖對原始讀取資料進行軟解碼。軟解碼演算法(例如,LDPC)具有比硬解碼高之錯誤校正能力,但更計算昂貴。在各種情境中,即使硬解碼導致一不可校正錯誤,軟解碼仍正確地擷取所儲存資料。在各種實施例中,產生440軟決定度量以進行軟解碼。在軟解碼之某些情境中,控制器請求對NVM之一或多個額外讀取,且作為回應,NVM執行N個或N個以上之陣列存取。控制器接收額外原始資料,對應於一或多個額外讀取,且產生軟決定度量及/或使用額外原始讀取資料執行軟解碼。
在某些實施例中,替代執行額外讀取及/或額外陣列存取,至少部分地基於及/或結合讀取NVM位置410之至少某些結果,控制器使用通道參數450產生軟決定度量。在各種實施例中,通道參數之實例係 以下各項中之任何一或多者:記憶體胞裝置臨限電壓分佈(例如,電荷狀態中之任何一或多者之任何一或多個分佈之任何一或多個參數,諸如平均差及標準差)以及讀取臨限值(例如,任何一或多個讀取臨限值)。根據方程式1.1至1.4產生軟決定度量(下文在「非揮發性記憶體(NVM)之以單一讀取為基礎的軟決定解碼之特定實施例之選定細節」章節中闡述方程式1.1至1.6)。方程式1.1、1.2、1.3及1.4分別描述用於在一MLC記憶體中解碼一下部頁1、一下部頁0、一上部頁1及一上部頁0之軟決定度量。方程式1.5及1.6分別描述在一MLC記憶體中使用通道參數(例如,一高斯近似電荷分佈及讀取臨限值之平均及標準差)計算之用於解碼一下部頁1及一下部頁0之軟決定度量。
基於所產生軟決定度量,對來自讀取NVM位置410之原始讀取資料進行軟解碼460。在各種實施例及/或情境中,軟解碼成功擷取所儲存資料。至少部分地基於及/或結合讀取NVM 410之至少某些結果,使用通道參數450來產生軟決定度量消除一或多個額外讀取及N或N個以上陣列存取,因此藉由減少功率消耗、讀取延時、記憶體胞疲勞、控制器利用中之一或多者增強操作,及改良可用陣列頻寬。
非揮發性記憶體(NVM)之以單一讀取為基礎的軟決定解碼之特定實施例之選定細節
在特定實施例中,一NVM包含每記憶體胞具有四個可能位階之每記憶體胞2位元MLC,如圖2B中之裝置臨限電壓分佈所圖解說明。每一記憶體胞能夠儲存兩個位元,一個下部頁位元及一個上部頁位元。在對一下部頁位元之一陣列存取中。使用一讀取臨限值Vread2 242(亦稱為V1)。若記憶體胞之裝置臨限電壓低於讀取臨限值,則獲得一硬決定(亦即,硬決定解碼)1;否則硬決定係0。注意,Vread2將水平軸劃分成兩個區。第一區D0包含裝置臨限電壓分佈250及260,而D1包含270及280。在對一上部頁位元之一陣列存取中,使用兩個讀取臨 限值Vread1 240及Vread3 244(分別稱為V0及V2)。若記憶體胞之裝置臨限電壓下降在0個參考值之間,則獲得一硬決定0;否則硬決定係1。此兩個參考電壓降水平軸換分成三個決定區:D0(其包含裝置臨限電壓分佈250)、D1(其包含裝置臨限電壓分佈260及270)以及D3(其包含裝置臨限電壓分佈280)。
習用地,具有硬決定解碼(諸如一BCH碼)之錯誤校正碼(ECC)已用於NVM(例如,NAND快閃記憶體)。為獲得較高錯誤校正能力,採用具有軟決定解碼演算法之ECC。一項實例係一低密度同位檢查(LDPC)碼。軟決定解碼器使用如所輸入之軟決定度量以使得達成較佳錯誤校正。針對NVM,將具有簡單映射(例如,1至+1、0至-1)之應決定用作軟決定度量。然而,經解碼位元錯誤率(BER)並非如使用如本文中所闡述之經轉換軟決定度量一樣好。
產生軟決定度量
在特定實施例中,藉由硬決定讀取來產生軟決定度量。此方法不同於其中涉及至少兩個讀取操作(每一者需要一或多個陣列存取)之重試讀取。使用至少某些通道參數將硬決定轉換為軟決定度量。在各種實施例中,通道參數包含裝置臨限電壓分佈參數(例如每記憶體胞2位元MLC之四種充電狀態之參數)以及讀取臨限值。該等讀取臨限值將一記憶體胞之電壓劃分成多個決定區。
在各種實施例中,軟決定度量以一或多個對數似然比(LLR)之形式呈現。對應於一硬決定1之LLR經計算為一機率比率之一自然對數。該比率係以記憶體胞之裝置臨限電壓屬於與1相關聯之決定區中之任何一者為條件儲存一1之機率對以相同條件儲存一0機率。以相同方式定義對應於一硬決定0之LLR。用於MLC之方程式1.1至1.4進一步圖解說明如何計算LLR。
將寫入至一記憶體胞之位元表示為xk,對應硬決定為,且類比 記憶體胞裝置臨限電壓為y;如先前所論述,存在兩個決定區D0及D1。則針對下部頁之所判定軟決定度量係:
方程式(1.1)及(1.2)可適用於各種情境中,諸如當使用習用格雷碼映射及僅執行一個讀取時。
若xk係一上部頁位元,則存在三個決定區D0、D1及D2:
類似於方程式(1.1)及(1.2),方程式(1.3)及(1.4)可適用於各種情境中,諸如當使用習用格雷碼映射及僅執行一個讀取時。
項Pr(xk=1|y D0)係已以記憶體胞之裝置臨限電壓落在決定區D0中為條件將一1寫入至記憶體胞之機率。其他機率項係類似的。由於存在與一硬決定1相關聯之兩個決定區,因此方程式1.3比其他方程式稍微較複雜。LLR之計算需要充電記憶體胞狀態之裝置臨限電壓分佈參數。在某些實施例中,使用熟習此項技術者已知之各種技術來估計裝置臨限電壓分佈參數。在各種實施例中,基於實施方案複雜性及效能之間的折衷簡化計算。
充電狀態之裝置臨限電壓分佈經近似為高斯分佈。在此情形中,方程式1.1至1.4之左側係以閉合形式計算。假定四個分佈之平均 及標準差分別係(μ00)、(μ11)、(μ22)及(μ33),則方程式1.1及1.2變成:
以類似方式計算方程式1.3及1.4。在某些實施例中,藉由查找表實施對數及錯誤函數。
軟決定解碼
在某些實施例中,需要針對每一讀取操作使用方程式1.1至1.4來將硬決定轉換為軟決定度量以達成經最佳解碼BER。注意軟決定度量之量值及正負號兩者係相關的。
圖5中圖解說明一實例性使用情境。在一硬決定讀取(在某些內容脈絡中稱為一「正常讀取」)之後,將硬決定序列饋送至一硬至軟轉換區塊,該硬至軟轉換區塊針對一下部頁使用方程式1.1及1.2或針對一上部頁使用方程式1.3及1.4來計算兩個LLR。然後,將硬決定序列中之每一1及0對應地映射至兩個LLR中之一者。在映射之後,亦將硬決定序列轉換為一軟決定度量序列,該軟決定度量序列進入至軟決定解碼器中以用於錯誤校正。
在某些實施例中,軟決定解碼器具有比習用BCH碼高得多之實施複雜性,但軟決定解碼器具有較高錯誤校正功率。然而,較高校正功率係基於如輸入至解碼器之正確軟決定度量。在考量分佈之情況下獲得正確軟決定度量。當將通道視為無記憶體胞至記憶體胞干擾時,本 發明之演算法提供最佳軟決定度量。因此,獲得經最佳解碼BER。
實例性實施技術
在某些實施例中,藉由與由一電腦系統進行之處理相容之一規範規定使用NVM之以單一讀取為基礎的軟決定解碼由以下之一SSD執行之操作之全部或若干部分之各種組合:例如,具有快閃記憶體、一計算主機快閃記憶體控制器及/或一SSD控制器(諸如,圖1A之SSD控制器100),以及一處理器、微處理器、晶片上系統、特殊應用積體電路、硬體加速度器或提供前面所提及操作之全部或若干部分之其他電路之若干部分。該規範係根據各種描述,諸如硬體描述明語言、電路描述、接線對照表描述、遮罩描述或佈局描述。實例性描述包含:Verilog、VHDL、SPICE、SPICE變體(諸如PSpice)、IBIS、LEF、DEF、GDS-II、OASIS、或其他描述。在各種實施例中,該處理包含解譯、編譯、模擬及合成之任何組合以產生、驗證或規定適於包含於一或多個積體電路上之邏輯及/或電路。根據各種實施例,每一積體電路可根據多種技術來設計及/或製造。該等技術包含一可程式化技術(諸如,一場可程式化閘陣列積體電路或遮罩可程式化閘陣列積體電路)、一半定製技術(諸如,一完全或部分地基於記憶體胞之積體電路)及一全定製技術(諸如,實質上專門之一積體電路)、其任何組合或與積體電路之設計及/或製造相容之任何其他技術。
在某些實施例中,由其中儲存有一指令集之一電腦可讀媒體闡述之操作之全部或若干部分之各種組合係藉由一或多個程式指令之執行及/或解譯、藉由一或多個源語言及/或指令碼語言陳述式之解譯及/或編譯或者藉由執行藉由編譯、轉譯及/或解譯在程式設計及/或指令碼設計語言陳述式中表達之資訊而產生之二進制指令來執行。該等陳述式與任何標準程式設計或指令碼設計語言(諸如C、C++、Fortran、Pascal、Ada、Java、VBscript、及Shell)相容。該等程式指令、語言 陳述式或二進制指令中之一或多者係視情況儲存於一或多個電腦可讀儲存媒體元件上。在各種實施例中,該等程式指令之某些、全部或各種部分係實現為一或多個功能、常式、次常式、內嵌常式、程序、巨集或其部分。
結論
已僅出於方便製備文字與圖式之目的而在說明中做出某些挑選,且除非存在對相反內容之一指示,否則不應將該等挑選本身視為傳達就所闡述實施例之結構或操作之額外資訊。該等挑選之實例包含:用於圖式編號之設計之特定組織或指派及用於識別及引用該等實施例之特徵及元件之元件識別符(例如,圖說文字或數字指示符)之特定組織或指派。
措詞「包含(includes或including)」具體而言意欲被視為闡述開放範疇之邏輯組之抽象詞,且除非明確地後續接著措詞「在...內(within)」否則不意欲表達實體含有。
儘管已出於清晰說明及理解之目的在某些細節上闡述上述實施例,但本發明並不限於所提供之細節。存在本發明之諸多實施例。該等所揭示實施例係例示性而非限制性的。
應理解,構造、配置及使用之諸多變化形式可能與該說明一致,且在所發佈之專利之申請專利範圍之範疇內。舉例而言,互連及功能單元位元寬度、時脈速度及所使用技術類型係可根據每一組件區塊中之各種實施例而變化。賦予互連及邏輯之名稱僅係例示性的,且不應被視為限制所闡述之概念。流程圖及流程圖程序、動作及功能元件之次序及配置係可根據各種實施例而變化。此外,除非明確地陳述為相反,否則所規定之值範圍、所使用之最大值及最小值或其他特定規範(諸如,快閃記憶體技術類型;及暫存器與緩衝器中之項目或級之數目)僅係所闡述實施例之彼等、預期追蹤實施技術中之改良及改 變且不應被視為限制。
此項技術中習知之在功能上等效之技術可替代所闡述之彼等技術來採用以實施各種組件、子系統、操作、功能、常式、次常式、內嵌常式、程序、巨集或其部分。亦應瞭解,依據實施例相依之設計約束及較快處理之技術趨勢(促進先前在硬體中之功能遷移至軟體中)及較高整合密度(促進先前在軟體中之功能遷移至硬體中),諸多實施例之功能態樣可在硬體(例如,通常為專用電路)或軟體(例如,經由某一方式之經程式化控制器或處理器)中選擇性地實現。各種實施例中之特定變化形式包含但不限於:分割差異;不同的形式因子及組態;不同作業系統及其他系統軟體之使用;不同介面標準、網路協定或通信鏈路之使用;及在根據一特定應用程式之獨特工程及商務約束實施本文中所闡述之概念時將預期之其他變化形式。
已藉助超出所闡述實施例之諸多態樣之一最小實施方案所要求之細節及環境內容脈絡來闡述該等實施例。熟習此項技術者將認識到,某些實施例在不更改其餘元件之間的基本協作之情況下省略所揭示之組件及特徵。因此,應理解,所揭示之大部分細節並不要求實施所闡述之實施例之各種態樣。在其餘元件與先前技術可區分之情況下,省略之組件及特徵並非限制本文中所闡述之概念。
所有此等設計之變化形式係在所闡述實施例傳達之教示內之非實質性改變。亦應理解,本文中所闡述實施例對其他計算及網路連結應用程式具有廣泛的可應用性,且不限於所闡述實施例之特定應用或產業。因此,本發明應視為包含涵蓋於所發佈專利之申請專利範圍之範疇內之所有可能修改及變化形式。
410‧‧‧讀取非揮發性記憶體位置
420‧‧‧對原始讀取資料進行硬解碼
430‧‧‧讀取錯誤評估
440‧‧‧產生軟決定度量
450‧‧‧通道參數
460‧‧‧基於軟決定度量而對原始讀取資料進行軟解碼

Claims (28)

  1. 一種用於記憶體操作之方法,其包括:在經啟用以與一非揮發性記憶體(NVM)一起操作之一控制器中,使用僅僅來自對該NVM之一位置之一單一讀取之資訊來產生軟決定度量(soft-decision metrics);及至少部分地基於該等所產生軟決定度量來執行軟決定解碼,以判定該位置之內容。
  2. 如請求項1之方法,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術來操作該位置,且該單一讀取對應於對至少該位置之少於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值。
  3. 如請求項1之方法,其中該等軟決定度量之該產生至少部分地基於該位置之通道參數,該等通道參數包括一或多個裝置臨限電壓分佈及一或多個操作讀取臨限值中之任何一或多者。
  4. 如請求項3之方法,其中該等通道參數係特定通道參數,各種通道參數包括該等特定通道參數及一或多個其他通道參數,且該方法進一步包括:將該等各種通道參數計算為用於該NVM之複數個區中之每一者之各別通道參數,該位置係在該等區中之一特定者中。
  5. 如請求項3之方法,其中該控制器估計該等裝置臨限電壓分佈。
  6. 如請求項1之方法,其中該單一讀取係回應於經由與至少一個儲存介面標準相容之該控制器之一主機介面接收之來自一主機之一請求。
  7. 如請求項1之方法,其中該控制器包括與至少一個儲存介面標準相容且經啟用以與一主機通信之一主機介面,該控制器進一步 包括經啟用以與該NVM之至少一個快閃記憶體通信之一快閃記憶體介面,且該控制器係包括於一固態磁碟(SSD)中。
  8. 如請求項1之方法,其中該控制器包括與至少一個儲存介面標準相容且經啟用以與一主機通信之一主機介面,該控制器進一步包括經啟用以與該NVM之至少一個快閃記憶體通信之一快閃記憶體介面,且該控制器係包括於一單一積體電路(IC)中。
  9. 一種其中儲存有一指令集之有形電腦可讀媒體,該指令集在由一處理元件執行時,致使該處理元件執行及/或控制包括以下各項之操作:使用僅僅來自對一非揮發性記憶體(NVM)之一位置之一單一讀取之資訊來產生軟決定度量;及至少部分地基於該等所產生軟決定度量來執行軟決定解碼,以判定該位置之內容。
  10. 如請求項9之有形電腦可讀媒體,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術來操作該位置,且該單一讀取對應於對至少該位置之少於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值。
  11. 如請求項9之有形電腦可讀媒體,其中該等軟決定度量之該產生至少部分地基於該位置之通道參數,該等通道參數包括一或多個裝置臨限電壓分佈及一或多個操作讀取臨限值中之任何一或多者。
  12. 如請求項11之有形電腦可讀媒體,其中該等通道參數係特定通道參數,各種通道參數包括該等特定通道參數及一或多個其他通道參數,且該等操作進一步包括將該等各種通道參數計算為用於該NVM之複數個區中之每一者之各別通道參數,該位置係在該等區中之一特定者中。
  13. 如請求項11之有形電腦可讀媒體,其中該等操作進一步包括估計該等裝置臨限電壓分佈。
  14. 如請求項9之有形電腦可讀媒體,其中該單一讀取係回應於經由與至少一個儲存介面標準相容之該控制器之一主機介面接收之來自一主機之一請求。
  15. 如請求項9之有形電腦可讀媒體,其中該處理元件包括於一控制器中,該控制器包括與至少一個儲存介面標準相容且經啟用以與一主機通信之一主機介面,該控制器進一步包括經啟用以與該NVM之至少一個快閃記憶體通信之一快閃記憶體介面,且該控制器係包括於一固態磁碟(SSD)中。
  16. 如請求項9之有形電腦可讀媒體,其中該處理元件係包括於一控制器中,該控制器包括與至少一個儲存介面標準相容且經啟用以與一主機通信之一主機介面,該控制器進一步包括經啟用以與該NVM之至少一個快閃記憶體通信之一快閃記憶體介面,且該控制器係包括於一單一積體電路(IC)中。
  17. 一種記憶體設備,其包括:軟度量轉換硬體邏輯電路,其經啟用以使用僅僅來自對一非揮發性記憶體(NVM)之一位置之一單一讀取之一資訊來產生軟決定度量;及軟決定解碼硬體邏輯電路,其經啟用以至少部分地基於該等所產生軟決定度量來執行軟決定解碼,以判定該位置之內容。
  18. 如請求項17之記憶體設備,其中根據提供N個離散狀態之一多位階記憶體胞(MLC)技術來操作該位置,且該單一讀取對應於對至少該位置之少於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值。
  19. 如請求項17之記憶體設備,其中該等軟決定度量之該產生至少 部分地基於該位置之通道參數,該等通道參數包括一或多個裝置臨限電壓分佈及一或多個操作讀取臨限值中之任何一或多者。
  20. 如請求項19之記憶體設備,進一步包括經啟用以估計該等裝置臨限電壓分佈之裝置臨限電壓估計硬體邏輯電路。
  21. 如請求項17之記憶體設備,其中該單一讀取係回應於經由與至少一個儲存介面標準相容之一主機介面接收之來自一主機之一請求。
  22. 如請求項17之記憶體設備,進一步包括:一主機介面,其與至少一個儲存介面標準相容且經啟用以與一主機通信;一快閃記憶體介面,其經啟用以與該NVM之至少一個快閃記憶體通信;且其中該軟度量轉換硬體邏輯電路、該軟決定解碼硬體邏輯電路、該主機介面及該快閃記憶體介面係包括於一固態磁碟(SSD)中。
  23. 如請求項17之記憶體設備,進一步包括:一主機介面,其與至少一個儲存介面標準相容且經啟用以與一主機通信;一快閃記憶體介面,其經啟用以與該NVM之至少一個快閃記憶體通信;且其中該軟度量轉換硬體邏輯電路、該軟決定解碼硬體邏輯電路、該主機介面及該快閃記憶體介面係包括於一單一積體電路(IC)中。
  24. 一種記憶體系統,其包括:用於使用僅僅來自對一非揮發性記憶體(NVM)之一位置之一 單一讀取之資訊來產生軟決定度量之構件;及用於至少部分地基於該等所產生軟決定度量來執行軟決定解碼以判定該位置之內容之構件。
  25. 如請求項24之記憶體系統,其中根據提供N個離散狀態之一多位階記憶體胞技術來操作該位置,且該單一讀取對應於對至少該位置之少於N個陣列存取,該等陣列存取中之每一者係根據一各別讀取臨限值。
  26. 如請求項24之記憶體系統,其中該等軟決定度量之該產生至少部分地基於該位置之通道參數,該等通道參數包括一或多個裝置臨限電壓分佈及一或多個操作讀取臨限值中之任何一或多者。
  27. 如請求項26之記憶體系統,進一步包括用於估計該等裝置臨限電壓分佈之構件。
  28. 如請求項24之記憶體系統,其中該單一讀取係回應於經由與至少一個儲存介面標準相容之一主機介面接收之來自一主機之一請求。
TW102127659A 2012-08-04 2013-08-01 非揮發性記憶體之以單一讀取爲基礎的軟決定解碼 TWI534828B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/567,024 US9239754B2 (en) 2012-08-04 2012-08-04 Single read based soft-decision decoding of non-volatile memory

Publications (2)

Publication Number Publication Date
TW201413735A TW201413735A (zh) 2014-04-01
TWI534828B true TWI534828B (zh) 2016-05-21

Family

ID=50026654

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102127659A TWI534828B (zh) 2012-08-04 2013-08-01 非揮發性記憶體之以單一讀取爲基礎的軟決定解碼

Country Status (3)

Country Link
US (1) US9239754B2 (zh)
TW (1) TWI534828B (zh)
WO (1) WO2014025536A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI672030B (zh) * 2016-11-18 2019-09-11 日商索尼股份有限公司 送訊裝置、送訊方法、收訊裝置、及收訊方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943386B1 (en) * 2012-02-16 2015-01-27 Sk Hynix Memory Solutions Inc. Generating soft read values which optimize dynamic range
US9256522B1 (en) * 2012-04-19 2016-02-09 Sk Hynix Memory Solutions Inc. Method and system for generating soft-information after a single read in NAND flash using expected and measured values
KR102120823B1 (ko) * 2013-08-14 2020-06-09 삼성전자주식회사 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
US9036413B2 (en) * 2013-09-27 2015-05-19 Seagate Technology Llc Flash memory reference voltage detection with tracking of cross-points of cell voltage distributions using histograms
US9262263B2 (en) * 2013-11-25 2016-02-16 Qualcomm Incorporated Bit recovery system
US9495255B2 (en) * 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9489257B2 (en) 2014-09-28 2016-11-08 Apple Inc. Correcting soft reliability measures of storage values read from memory cells
US10084481B2 (en) 2014-12-18 2018-09-25 Apple Inc. GLDPC soft decoding with hard decision inputs
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 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
KR102370292B1 (ko) * 2015-05-07 2022-03-07 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US9858994B2 (en) 2015-06-18 2018-01-02 Samsung Electronics Co., Ltd. Memory system with MLC memory cells and partial page compression or reduction
KR20170004693A (ko) * 2015-07-03 2017-01-11 에스케이하이닉스 주식회사 메모리 장치의 컨트롤러 및 그 동작 방법
US9659637B2 (en) 2015-08-11 2017-05-23 Western Digital Technologies, Inc. Correlating physical page addresses for soft decision decoding
TWI588834B (zh) * 2016-02-23 2017-06-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR102375060B1 (ko) * 2016-10-18 2022-03-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10222996B2 (en) * 2017-02-07 2019-03-05 Western Digital Technologies, Inc. Read operation and soft decoding timing
US10180794B2 (en) 2017-02-07 2019-01-15 Western Digital Technologies, Inc. Soft decoding scheduling
US10014026B1 (en) * 2017-06-20 2018-07-03 Seagate Technology Llc Head delay calibration and tracking in MSMR systems
KR102349382B1 (ko) * 2017-10-11 2022-01-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10558522B2 (en) 2017-10-20 2020-02-11 Western Digital Technologies, Inc. Dynamic multi-stage decoding
US10637511B2 (en) 2017-12-18 2020-04-28 Western Digital Technologies, Inc Dynamic multi-stage decoding
TWI677875B (zh) * 2018-07-20 2019-11-21 衡宇科技股份有限公司 偵測固態儲存裝置儲存狀態的方法
TWI664634B (zh) * 2018-08-17 2019-07-01 慧榮科技股份有限公司 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
US10733047B2 (en) 2018-09-28 2020-08-04 Sandisk Technologies Llc Hard and soft bit data from single read
US10790860B2 (en) 2018-11-30 2020-09-29 Kabushiki Kaisha Toshiba Dynamic detection for flash memory
US10861561B2 (en) * 2019-01-22 2020-12-08 Samsung Electronics Co., Ltd. Threshold estimation in NAND flash devices
US11057058B2 (en) * 2019-09-11 2021-07-06 SK Hynix Inc. Quality of service of an adaptive soft decoder
US11029889B1 (en) * 2019-12-20 2021-06-08 Western Digital Technologies, Inc. Soft bit read mode selection for non-volatile memory
US11424766B1 (en) * 2020-01-31 2022-08-23 Marvell Asia Pte Ltd. Method and device for energy-efficient decoders
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN113612484A (zh) * 2021-07-27 2021-11-05 深圳市德明利技术股份有限公司 一种硬判决和软判决相结合的高效ldpc纠错算法的实现方法
CN113793635B (zh) * 2021-11-08 2022-04-19 阿里云计算有限公司 存储装置和存储设备
CN116737248B (zh) * 2023-08-09 2023-11-14 武汉凌久微电子有限公司 一种硬解码器的休眠和唤醒方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6678823B1 (en) 2000-05-01 2004-01-13 Xtec, Incorporated Methods and apparatus for authenticating data stored in semiconductor memory cells
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7457178B2 (en) 2006-01-12 2008-11-25 Sandisk Corporation Trimming of analog voltages in flash memory devices
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
KR100816162B1 (ko) 2007-01-23 2008-03-21 주식회사 하이닉스반도체 낸드 플래시 메모리 장치 및 셀 특성 개선 방법
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
KR100888842B1 (ko) 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US8453022B2 (en) 2007-12-05 2013-05-28 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
US7656707B2 (en) 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
KR100953047B1 (ko) 2007-12-28 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 소자의 동작 방법
KR101436505B1 (ko) * 2008-01-03 2014-09-02 삼성전자주식회사 메모리 장치
JP2011522301A (ja) 2008-03-11 2011-07-28 アギア システムズ インコーポレーテッド クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置
KR101413137B1 (ko) 2008-07-04 2014-07-01 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101434400B1 (ko) 2008-07-09 2014-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 시스템 및 그것의 관리방법
KR101391362B1 (ko) 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
KR100967004B1 (ko) 2008-08-05 2010-06-30 주식회사 하이닉스반도체 플래시 메모리 장치의 동작 제어 방법
CN102203877B (zh) * 2008-09-30 2016-07-06 Lsi公司 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置
US9031241B2 (en) 2009-02-05 2015-05-12 D.E. Shaw Research, Llc Link and physical coding sub-layer protocols
KR101005188B1 (ko) 2009-02-26 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
US8352841B2 (en) * 2009-06-24 2013-01-08 Lsi Corporation Systems and methods for out of order Y-sample memory management
JP2011040124A (ja) 2009-08-07 2011-02-24 Toshiba Corp 半導体記憶装置のデータ読み出し方法
US8351258B1 (en) 2010-01-22 2013-01-08 Marvell International Ltd. Adapting read reference voltage in flash memory device
WO2011094454A2 (en) 2010-01-27 2011-08-04 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media
KR101466555B1 (ko) 2010-03-12 2014-12-02 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
KR101635506B1 (ko) * 2010-03-29 2016-07-04 삼성전자주식회사 데이터 저장 시스템 및 그것의 읽기 방법
KR101678407B1 (ko) * 2010-05-10 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것의 프로그램 방법
US8386895B2 (en) * 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8964464B2 (en) * 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
KR101792868B1 (ko) * 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
US8402349B2 (en) 2010-12-06 2013-03-19 Apple Inc. Two dimensional data randomization for a memory
US8719663B2 (en) 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI672030B (zh) * 2016-11-18 2019-09-11 日商索尼股份有限公司 送訊裝置、送訊方法、收訊裝置、及收訊方法

Also Published As

Publication number Publication date
WO2014025536A1 (en) 2014-02-13
US9239754B2 (en) 2016-01-19
US20140040531A1 (en) 2014-02-06
TW201413735A (zh) 2014-04-01

Similar Documents

Publication Publication Date Title
TWI534828B (zh) 非揮發性記憶體之以單一讀取爲基礎的軟決定解碼
US10734087B2 (en) Retention-drift-history-based non-volatile memory read threshold optimization
US9595320B2 (en) Optimization of read thresholds for non-volatile memory
US10002046B2 (en) Zero-one balance management in a solid-state disk controller
US20200019463A1 (en) Non-volatile memory program failure recovery via redundant arrays
JP6452278B2 (ja) 不揮発性メモリの耐久性平準化のためのセル損傷の測定
US9620202B2 (en) Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
JP5806792B2 (ja) フラッシュメモリ用のldpc消失復号化
KR20140094468A (ko) 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택

Legal Events

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