TW201506953A - 減小資料儲存裝置的讀取延時之系統及方法 - Google Patents

減小資料儲存裝置的讀取延時之系統及方法 Download PDF

Info

Publication number
TW201506953A
TW201506953A TW103109166A TW103109166A TW201506953A TW 201506953 A TW201506953 A TW 201506953A TW 103109166 A TW103109166 A TW 103109166A TW 103109166 A TW103109166 A TW 103109166A TW 201506953 A TW201506953 A TW 201506953A
Authority
TW
Taiwan
Prior art keywords
data
representation
item
read operation
read
Prior art date
Application number
TW103109166A
Other languages
English (en)
Other versions
TWI613675B (zh
Inventor
Eran Sharon
Idan Alrod
Original Assignee
Sandisk Technologies Inc
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 Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW201506953A publication Critical patent/TW201506953A/zh
Application granted granted Critical
Publication of TWI613675B publication Critical patent/TWI613675B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本發明揭示一種包含一記憶體及一控制器之資料儲存裝置。該控制器經組態以接收指示一邏輯位址之一讀取請求。該控制器進一步經組態以執行一第一讀取操作以自該記憶體擷取一邏輯映射表之一項目之一表示,且執行一第二讀取操作以自該記憶體擷取一碼字之一表示。該控制器進一步經組態以將該碼字之該表示解碼以判定在該項目處是否存在一錯誤,且在解碼完成之前,起始一第三讀取操作以自如基於該項目之該表示所判定對應於該邏輯位址之一第一實體位址擷取第一讀取資料。

Description

減小資料儲存裝置的讀取延時之系統及方法
本發明大體而言係關於減小讀取延時。
諸如通用串列匯流排(USB)快閃記憶體裝置或可抽換式儲存卡之非揮發性資料儲存裝置已允許資料及軟體應用程式之增加之可攜性。快閃記憶體裝置可藉由在每一快閃記憶體單元中儲存多個位元來增強資料儲存密度。舉例而言,多位階單元(MLC)快閃記憶體裝置藉由每單元儲存3個位元、每單元儲存4個位元或更多來提供增加之儲存密度。雖然增加每單元位元之數目及減小裝置特徵尺寸可增加一記憶體裝置之一儲存密度,但儲存於該記憶體裝置處之資料之一位元錯誤率亦可增加。
每秒隨機輸入/輸出操作(IOPS)效能已成為比較記憶體產品(諸如iNAND)之準則中之一者。基於頁之快閃管理(FM)可在程式化期間(例如,針對大量程式化IOPS)改良效能。然而,在資料讀取之前發佈控制讀取(CR)可在使用基於頁之快閃管理時減小讀取效能。
舉例而言,一CR可用於識別記憶體中之資料之一實體位址。該實體位址可儲存於記憶體中之一邏輯至實體位址映射表中。該邏輯至實體位址映射表可太大(例如,每1GB之記憶體1MB表格大小)而不能作為一整體保持於一快閃記憶體裝置之一控制器處。因此,在跨過一 大跨度之讀取位址之隨機讀取操作期間,無論何時包含一所請求位址的邏輯至實體位址映射表之一部分未快取於控制器中,皆可發佈一CR以自記憶體讀取邏輯至實體位址映射表,此導致增加之總體讀取延時及減小之IOPS數目。
以減小讀取延時之一方式自一資料儲存裝置讀取資料。特定而言,當在該資料儲存裝置處自一主機裝置接收到指示一邏輯位址之一讀取請求時,該資料儲存裝置之一控制器可判定將該邏輯位址映射至一實體位址的一表格之一部分是否儲存於該控制器處。若該表格之該部分未儲存於該控制器處,則該控制器可執行一第一讀取操作以自一記憶體擷取一邏輯映射表之一項目之一表示且執行一第二讀取操作以自該記憶體擷取一碼字之一表示,其中該碼字包含該邏輯映射表之該項目。該控制器可將該碼字之該表示解碼以判定在該項目處是否存在一錯誤,且在完成將該碼字之該表示解碼之前,起始一第三讀取操作以自如基於該項目之該表示所判定對應於該邏輯位址之一第一實體位址擷取第一讀取資料。若該解碼指示在該項目處不存在錯誤,則可將自該第一實體位址擷取之該第一讀取資料提供至該主機。若該解碼指示在該項目處存在一錯誤,則該控制器可起始一第四讀取操作以自如基於該經解碼碼字中之經錯誤校正項目所判定對應於該邏輯位址之一第二實體位址擷取第二讀取資料。因此,可在該項目不包含一錯誤時減小讀取延時,此乃因與該第一實體位址之一讀取同時執行用以判定該項目是否包含一錯誤之該解碼。在該項目確實包含一錯誤時可既不減小亦不增加讀取延時。因此,減小該記憶體裝置之平均讀取延時。
100‧‧‧系統
102‧‧‧資料儲存裝置
104‧‧‧記憶體
106‧‧‧邏輯至實體映射表
108‧‧‧實體記憶體位置
110‧‧‧第一碼字/碼字
112‧‧‧代表性第一項目/第一項目/項目/第一位址
114‧‧‧代表性同位資料
116‧‧‧代表性碼字錯誤校正碼資料/碼字錯誤校正碼資料
118‧‧‧第二碼字/碼字
120‧‧‧控制器
122‧‧‧記憶體管理系統
124‧‧‧映射邏輯
126‧‧‧隨機存取記憶體
128‧‧‧部分
130‧‧‧錯誤校正碼引擎
132‧‧‧錯誤偵測引擎
134‧‧‧擾碼器
136‧‧‧主機介面
150‧‧‧主機裝置
152‧‧‧讀取請求
156‧‧‧匯流排
160‧‧‧讀取操作
162‧‧‧表示/第一項目表示/項目表示
164‧‧‧表示/第一碼字表示/碼字表示
166‧‧‧第一讀取資料
168‧‧‧第二讀取資料
310‧‧‧表示/項目表示
314‧‧‧表示/碼字表示
324‧‧‧第一讀取資料
340‧‧‧第二讀取資料
350‧‧‧經錯誤校正資料
圖1係包含經組態以減小讀取延時之一資料儲存裝置之一系統之一特定說明性實施例的一方塊圖; 圖2係以減小之讀取延時自一資料儲存裝置讀取資料之一方法之一第一特定說明性實施例之一流程圖;及圖3係以減小之讀取延時自一資料儲存裝置讀取資料之一方法之一第二特定說明性實施例之一流程圖。
參考圖1,繪示包含經組態以減小讀取延時之一資料儲存裝置102之一系統之一特定說明性實施例且通常將其指定為100。系統100包含經由一匯流排156耦合至一主機裝置150之資料儲存裝置102。資料儲存裝置102包含耦合至一控制器120之一記憶體104。控制器120經組態而以減小讀取延時之一方式自記憶體讀取資料。
記憶體104可係一非揮發性記憶體,諸如一NAND快閃記憶體。記憶體104包含一儲存元件群組,諸如一多位階單元(MLC)快閃記憶體之一字線。資料儲存裝置102可係一記憶體卡,諸如一安全數位SD®卡、一microSD®卡、一miniSD.TM卡(特拉華州威明頓SD-3C LLC之商標)、一MultiMediaCard.TM(MMC.TM)卡(弗吉尼亞州阿靈頓JEDEC固態技術協會之商標)或一CompactFlash®(CF)卡(加利福尼亞州米爾皮塔斯SanDisk公司之商標)。作為另一實例,資料儲存裝置102可經組態以作為嵌入式記憶體(諸如eMMC®(弗吉尼亞州阿靈頓JEDEC固態技術協會之商標)及eSD,作為說明性實例)耦合至主機裝置150。為了圖解說明,資料儲存裝置102可對應於一eMMC(嵌入式多媒體卡)裝置。資料儲存裝置102可按照一JEDEC行業規範操作。舉例而言,資料儲存裝置102可按照一JEDEC eMMC規範、一JEDEC通用快閃儲存(UFS)規範、一或多個其他規範或者其之一組合操作。
主機裝置150可經組態以提供將儲存於記憶體104處之資料及/或請求自記憶體104讀取資料。舉例而言,主機裝置150可包含一行動電話、一音樂播放器、一視訊播放器、一遊戲控制台、一電子書閱讀 器、一個人數位助理(PDA)、一電腦(諸如一膝上型電腦、一筆記型電腦或一平板電腦)、任何其他電子裝置或者其任何組合。主機裝置150經由使得能夠自記憶體104讀取及寫入至記憶體104之一記憶體介面通信。舉例而言,主機裝置150可按照一聯合電子裝置工程委員會(JEDEC)行業規範(諸如一通用快閃儲存(UFS)主機控制器介面規範)操作。作為其他實例,主機裝置150可按照一或多個其他規範(諸如一安全數位(SD)主機控制器規範,作為一說明性實例)操作。主機裝置150可根據任何其他適合通信協定與記憶體104通信。
記憶體104可係一快閃裝置(諸如一NAND快閃裝置、一NOR快閃裝置或任何其他類型之快閃裝置)之一非揮發性記憶體。記憶體104包含實體記憶體位置108及一邏輯至實體映射表106。邏輯至實體映射表106包含複數個項目,諸如一代表性第一項目112。該複數個項目中之每一項目將一特定邏輯位址映射至實體記憶體位置108中之一者之一對應實體位址。該等項目可分群成若干組項目,諸如對應於一第一碼字110之一第一組項目及對應於一第二碼字118之一第二組項目。每一碼字110、118可與錯誤校正資料(諸如與第一碼字110相關聯之代表性碼字錯誤校正碼(ECC)資料116)相關聯或可包含錯誤校正資料。在一特定實施例中,該等項目中之每一者亦可與錯誤偵測資料(諸如與第一項目112相關聯之代表性同位資料114)相關聯。
控制器120包含經組態以執行記憶體管理功能(諸如將資料發送至控制器120之各種組件及自控制器120之各種組件接收資料以及控制器120之各種組件之協調操作)之一記憶體管理系統122。記憶體管理系統122可包含經組態以使用邏輯至實體映射資訊來將自主機裝置150接收之邏輯位址映射至對應於記憶體104之實體記憶體位置108之實體位址之映射邏輯124。為了將邏輯位址映射至實體位址,映射邏輯124可存取儲存邏輯至實體映射表106之一部分128的控制器120之一記憶體 (諸如一隨機存取記憶體(RAM)126)。在一特定實施例中,RAM 126可太小而不能儲存整個邏輯至實體映射表106。因此,一快取處理程序(諸如先進先出快取或另一快取理程序)可判定儲存於RAM 126處的邏輯至實體映射表106之部分128。
控制器120亦可包含一ECC引擎130。ECC引擎130經組態以使用碼字ECC資料將自記憶體104擷取之碼字解碼。舉例而言,當自記憶體104擷取第一碼字110之一表示164時,ECC引擎130可將第一碼字110之表示164解碼以識別並校正錯誤。為了圖解說明,ECC引擎130可使用BCH錯誤校正碼、漢明(Hamming)錯誤校正碼、瑞德-所羅門(Reed-Solomon)錯誤校正碼或另一錯誤校正碼來偵測並校正所擷取碼字中之錯誤。
控制器120亦可包含一錯誤偵測引擎132。錯誤偵測引擎132經組態以偵測自記憶體104擷取之項目中之錯誤。儘管由ECC引擎130執行之錯誤偵測及校正可相對複雜(例如,能夠識別並校正一整個碼字中之錯誤),但由錯誤偵測引擎132執行之錯誤偵測可顯著較不複雜。舉例而言,錯誤偵測引擎132可針對自記憶體104擷取之一單個項目(諸如)藉由判定該項目是包含奇數個還是偶數個1值而執行一同位檢查。因此,藉由錯誤偵測引擎132之錯誤偵測可顯著快於藉由ECC引擎130之錯誤偵測及校正。
在一特定實施例中,當在將項目或碼字儲存於記憶體104處之前對其進行擾碼時,控制器120可包含一擾碼器134(諸如一線性回饋移位暫存器(LFSR))來將自記憶體104擷取之項目解擾碼。
控制器120可經組態以在資料儲存裝置102經由一主機介面136及一匯流排156操作地耦合至主機裝置150時自主機裝置150接收資料及指令並將資料發送至主機裝置150。控制器120進一步經組態以將資料及命令發送至記憶體104且自記憶體104接收資料。舉例而言,控制器 120經組態以發送資料及用以指示記憶體104儲存該資料之一寫入命令。作為另一實例,控制器120經組態以發送用以實施一讀取操作之一讀取命令以自記憶體104之一特定實體位址讀取資料。
在操作期間,控制器120可自主機裝置150接收一讀取請求152。讀取請求152可指示將提供至主機裝置150之資料之一邏輯位址。使用映射邏輯124,控制器120可判定對應於該邏輯位址的一特定實體記憶體位置之一實體位址。當儲存於RAM 126處的邏輯至實體映射表106之部分128包含由讀取請求152指示之邏輯位址時,控制器120可判定實體位址而無需存取來自記憶體104之邏輯至實體映射表106。然而,當儲存於RAM 126處的邏輯至實體映射表106之部分128不包含由讀取請求152指示之邏輯位址時,控制器120執行一讀取操作160以讀取包含該邏輯位址的邏輯至實體映射表106之一部分(諸如第一碼字110)。為了減小讀取延時,控制器120亦執行一讀取操作160以讀取對應於該邏輯位址的邏輯至實體映射表106之一特定項目(諸如第一項目112)。
在一特定實施例中,可使用一單個讀取操作(例如,一單個感測操作)來讀取將作為單獨資料厚塊傳送至控制器120之第一碼字110及第一項目112。舉例而言,第一碼字110可對應於大約4千位元組(KB)資料,且第一項目112可對應於大約4位元組資料。為了圖解說明,可執行大約50μs之一單個感測操作。可擷取(例如,在不到1μs內)包含第一項目112之4位元組之一表示(例如,表示162)之一第一資料厚塊。隨後,可擷取(例如,使用一200MB/s匯流排約20μs)包含第一碼字110之4KB之一表示(例如,表示164)之一第二資料厚塊。
在一特定實施例中,可在將第一項目112之表示162傳送至控制器120之後起始一第三讀取操作(例如,一第二感測操作)。可在接收到第一項目112之表示162後或在執行第一項目112之表示162之錯誤偵測及/或解擾碼之後立即起始該第三讀取操作。特定而言,可在於控制 器120處接收到第一碼字110之表示164之前(例如,在與第一碼字110之表示164相關聯之大約20μs傳送操作已開始或已完成之前)起始該第三讀取操作。在此實施例中,將第一碼字110之表示164解碼可花費約10μs。因此,藉由起始第三讀取操作而不等待第一碼字110之表示164之擷取及解碼,可節省大約30μs(例如,約20μs來擷取第一碼字110之4KB之表示164及約10μs來將第一碼字110之表示164解碼)。
回應於讀取操作160,控制器120可接收第一項目112之表示162且可接收第一碼字110之表示164。第一碼字110之表示164可包含與第一碼字110相關聯之碼字ECC資料116。記憶體管理系統122可將第一碼字110之表示164提供至ECC引擎130以開始將第一碼字110解碼。
在ECC引擎130正將第一碼字110解碼時,控制器120可基於第一項目112之表示162起始一讀取操作。當第一項目112之表示162包含錯誤偵測資料(諸如一同位位元)時,錯誤偵測引擎132可判定第一項目112之表示162是否包含可基於該錯誤偵測資料偵測之一錯誤。另外,若將第一項目112之表示162擾碼,則擾碼器134可將第一項目112之表示162解擾碼。若錯誤偵測引擎132未偵測到錯誤(例如,基於第一項目112之表示162計算之同位匹配同位位元),則控制器120可起始一讀取操作160以自如基於第一項目112之表示162所判定對應於邏輯位址之一第一實體位址擷取第一讀取資料166。
當ECC引擎130完成第一碼字110之表示164之解碼時,記憶體管理系統122可判定是否中斷用以擷取第一讀取資料166之讀取操作(或丟棄第一讀取資料166)。舉例而言,當ECC引擎130判定在第一項目112處存在一錯誤時,可中斷用以擷取第一讀取資料166之讀取操作或可丟棄第一讀取資料166,此乃因該第一項目處之該錯誤可指示第一讀取資料166不與包含讀取請求152所尋求之資料之實體位址相關聯。
另外,當ECC引擎130判定在第一項目112處存在一錯誤時,控制 器120可起始另一讀取操作160以自如基於經解碼碼字中之第一項目112判定所對應於邏輯位址之一第二實體位址擷取第二讀取資料168。舉例而言,ECC引擎130可校正經識別錯誤且將一經錯誤校正項目(或一經錯誤校正碼字)提供至記憶體管理系統122。記憶體管理系統122之映射邏輯124可基於該經錯誤校正項目或該經錯誤校正碼字識別第二實體位址。
由於第一碼字110之表示164之傳送及由ECC引擎130執行之解碼操作可相對緩慢(且當在一特定項目處不存在錯誤時係不必要的),因此可藉由在接收第一碼字110之表示164時及在ECC引擎130執行解碼操作以確認基於第一項目112之表示162判定之一實體位址正確時自該實體位址擷取資料而減小資料儲存裝置102之讀取延時。若ECC引擎130判定該實體位址係正確的,則可將自該實體位址擷取之資料(例如,第一讀取資料166)提供至主機裝置150。若ECC引擎130判定該實體位址不正確(例如,在項目112中存在一錯誤),則可丟棄自該實體位址擷取之資料(例如,第一讀取資料166)且可基於正確實體位址執行另一讀取操作(例如,以擷取第二讀取資料168)。
在一特定實施例中,可藉由比較由第一項目112之表示162指示之一邏輯位址與由主機裝置150請求之邏輯位址而偵測第一項目112之表示162中之一潛在錯誤。舉例而言,第一項目112可包含指示由第一項目112指示之一實體位址對應於其之一邏輯位址之後設資料(metadata)。在接收到第一位址112之表示162之後,控制器120可比較基於第一位址112之表示162判定之一邏輯位址與由主機裝置150請求之邏輯位址。若基於第一位址112之表示162判定之邏輯位址不匹配由主機裝置150請求之邏輯位址,則可丟棄自由第一位址112之表示162指示之實體位址擷取之資料(例如,第一讀取資料166)且可基於正確實體位址執行另一讀取操作(例如,以擷取第二讀取資料168)。
作為一特定實例,一特定控制讀取方案可總計達約80微秒(μs)之讀取延時(不包含韌體附加項)。用於此一裝置之讀取延時可大約分解為:50μs用於感測延時,20μs用於傳送延時(例如,假定在200MB/s下之一4KB碼字大小,如在上文實例中),及10μs用於解碼延時(加上由於韌體附加項導致之延時)。本文中所揭示之實施例使得能夠藉由避免一整個碼字之傳送及解碼(其可消耗大約30μs)及藉由減小與發佈兩個讀取命令(一個讀取命令用於控制且一個讀取命令用於資料)相關聯之韌體附加項而減小延時。因此,可藉由基於第一項目112之表示162起始第三讀取操作而不等待控制器120接收第一碼字110之表示164並將第一碼字110之表示164解碼來將總體控制讀取延時減小高達約40%(亦即,自約80μs減小至約50μs)。在一隨機讀取情境中,可將每秒隨機輸入/輸出操作(IOPS)改良高達約20%。
圖2繪示以減小之讀取延時自一資料儲存裝置讀取資料之一方法200之一第一特定說明性實施例之一流程圖。方法200可由一資料儲存裝置(諸如圖1之資料儲存裝置102)執行。
在202處,接收指示一邏輯位址之一讀取請求。可在資料儲存裝置操作地耦合至一主機裝置或嵌入於該主機裝置內時自該主機裝置接收該讀取請求。舉例而言,可在圖1之資料儲存裝置102操作地耦合至主機裝置150或嵌入於主機裝置150內時由資料儲存裝置102自主機裝置150接收該讀取請求。
在204處,可執行一第一讀取操作以自記憶體擷取一邏輯映射表之一項目之一表示。舉例而言,圖1之控制器120可執行一第一讀取操作以自記憶體104之邏輯至實體映射表106擷取第一項目112之表示162。
在206處,可執行一第二讀取操作以自記憶體擷取一碼字之一表示。該碼字可包含邏輯映射表之項目。舉例而言,圖1之控制器120可 執行一第二讀取操作以擷取包含第一項目112之碼字110之表示164。可自記憶體104之邏輯至實體映射表106擷取碼字110之表示164。
在208處,可將碼字之表示解碼以判定在項目處是否存在一錯誤。在210處,在完成解碼之前,可起始一第三讀取操作以自如基於項目之表示所判定對應於邏輯位址之一第一實體位址擷取第一讀取資料。舉例而言,圖1之控制器120之記憶體管理系統122可將碼字110之表示164提供至ECC引擎130以將碼字110之表示164解碼。在ECC引擎130正將碼字110之表示164解碼時,記憶體管理系統122可發佈一讀取操作以自基於第一項目112之表示162判定對應於一實體位址之一實體記憶體位置讀取資料。
由於由一ECC引擎執行之一解碼操作可相對緩慢且常常係不必要的(亦即,當在一特定項目處不存在錯誤時),因此可藉由在ECC引擎執行解碼操作以確認基於特定項目判定之一實體位址正確時自該實體位址擷取資料而減小資料儲存裝置之讀取延時。若ECC引擎判定該實體位址係正確的,則可將自該實體位址擷取之資料提供至主機裝置。若ECC引擎判定該實體位址不正確(例如,在項目中存在一錯誤),則可丟棄自該實體位址擷取之資料且可基於正確實體位址執行另一讀取操作。
圖3繪示以減小之讀取延時自一資料儲存裝置讀取資料之一方法300之一第一特定說明性實施例之一流程圖。方法300可由一資料儲存裝置(諸如圖1之資料儲存裝置102)執行。
在302處,接收指示一邏輯位址之一讀取請求。可在資料儲存裝置操作地耦合至一主機裝置或嵌入於該主機裝置內時自該主機裝置接收該讀取請求。舉例而言,可在圖1之資料儲存裝置102操作地耦合至主機裝置150或嵌入於主機裝置150內時由資料儲存裝置102自主機裝置150接收該讀取請求。
在304處,資料儲存裝置之一控制器可判定在該控制器處的一邏輯映射表之一部分是否包含邏輯位址(例如,該邏輯映射表之該部分是否快取於該控制器處)。舉例而言,圖1之控制器120可判定儲存於RAM 126處的邏輯至實體映射表106之部分128是否包含邏輯位址。當在控制器處的邏輯映射表之部分包含邏輯位址時,控制器可在306處基於在控制器處的邏輯映射表之部分(例如,基於快取記憶體)擷取讀取資料、產生經錯誤校正資料並將該經錯誤校正資料傳送至主機裝置。
當在控制器處的邏輯映射表之部分不包含邏輯位址時,控制器可執行額外讀取操作。特定而言,在308處,可執行一第一讀取操作以自記憶體擷取一邏輯映射表之一項目之一表示310,且在312處,可執行一第二讀取操作以自記憶體擷取一碼字之一表示314。該碼字可包含邏輯映射表之項目。舉例而言,圖1之控制器120可執行第一讀取操作以自記憶體104之邏輯至實體映射表106擷取第一項目112之表示162。控制器120亦可執行一第二讀取操作以擷取包含第一項目112之碼字110之表示164。可自記憶體104之邏輯至實體映射表106擷取碼字110之表示164。
在316處,當將項目之表示310擾碼時,可將項目之表示解擾碼。舉例而言,在接收到圖1之項目112之表示162之後,記憶體管理系統122可將項目112之表示162提供至擾碼器134以將項目112之表示162解擾碼。
在一特定實施例中,方法300可包含在318處,檢查與項目相關聯之錯誤偵測資料(諸如一同位位元)。舉例而言,在接收到圖1之項目112之表示162之後,記憶體管理系統122可將項目112之表示162及其相關聯同位資料提供至錯誤偵測引擎132。錯誤偵測引擎132可基於錯誤偵測資料判定項目112之表示162是否包含一錯誤。
在320處,當錯誤偵測資料指示項目之表示包含至少一個錯誤時,方法300可停止處理項目之表示。舉例而言,方法300可在330處將碼字之表示解碼。在320處,當錯誤偵測資料不指示項目之表示包含一錯誤時,可在322處起始一第三讀取操作以自如基於項目之表示所判定對應於邏輯位址之一第一實體位址擷取第一讀取資料324。在一特定實施例中,在將碼字之表示解碼時執行第三讀取操作。舉例而言,在於控制器120處接收到項目112之表示162及碼字110之表示164之後,記憶體管理系統122可將碼字110之表示164發送至ECC引擎130以進行解碼且可執行一讀取操作以讀取由基於項目112之表示162判定之一實體位址識別之一實體記憶體位置。因此,可在與將碼字110之表示164解碼以確認基於項目112之表示162判定之實體位址重疊之一時間段期間(例如,同時)自由該實體位址識別之實體記憶體位置擷取資料。
在326處,在擷取第一讀取資料324之後且若未識別出項目中之錯誤,可將第一讀取資料324解碼以產生經錯誤校正資料350。可將經錯誤校正資料350提供至主機裝置。
在330處,在擷取碼字之表示之後,可將碼字之表示解碼。舉例而言,可使用與碼字相關聯之ECC資料來識別並校正碼字之表示中之錯誤。為了圖解說明,在由圖1之控制器120擷取碼字110之表示164之後,ECC引擎130可將碼字110之表示164解碼。
當在332處未在項目中偵測到錯誤時,方法300可停止處理碼字334。當解碼處理程序判定項目之表示不包含錯誤時,與第一讀取資料324相關聯之第一實體位址係正確的,且無需進一步處理碼字。替代地,可將碼字之一經解碼且經錯誤校正表示儲存於控制器之一記憶體中(例如,作為邏輯至實體映射表之一經快取部分)以加速定位後續讀取請求之實體位址。
當在332處在項目中偵測到一錯誤時,可在336處校正錯誤。在338處,可起始一第四讀取操作以自一第二實體位址擷取第二讀取資料340。該第二實體位址如在校正錯誤之後基於碼字之表示所判定對應於邏輯位址。舉例而言,在ECC引擎130在項目112中偵測到一錯誤時,記憶體管理系統122可執行一讀取操作以擷取第二讀取資料168。可自藉由項目112之一經錯誤校正版本(由ECC引擎130判定)識別之一實體記憶體位置擷取第二讀取資料168。
在342處,當起始第四讀取操作時,可中斷第三讀取操作或可丟棄第三讀取操作之結果。舉例而言,當圖1之記憶體管理系統122發佈第四讀取操作時,可丟棄第一讀取資料166。
在344處,在擷取第二讀取資料340之後,可將第二讀取資料340解碼以產生經錯誤校正資料350。可將經錯誤校正資料350提供至主機裝置。
由於由一ECC引擎執行之一解碼操作可相對緩慢且常常係不必要的(例如,當在特定項目處不存在錯誤時),可藉由在ECC引擎執行解碼操作以確認基於特定項目判定之一實體位址正確時自該實體位址擷取資料而減小資料儲存裝置之資料延時。若ECC引擎判定該實體位址係正確的,則可將自該實體位址擷取之資料提供至主機裝置。若ECC引擎判定該實體位址不正確(例如,在項目中存在一錯誤),則可丟棄自該實體位址擷取之資料且可基於正確實體位址執行另一讀取操作。
雖然將本文中所繪示之各種組件圖解說明為區塊組件且對其進行概括闡述,但此等組件可包含一或多個微處理器、狀態機或經組態以藉由在ECC引擎執行一解碼操作以確認基於特定項目判定之一實體位址正確時自該實體位址擷取資料而減小延時之其他電路。
在一特定實施例中,資料儲存裝置102可實施於經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置中。然而,在其他實施例 中,資料儲存裝置102可附接或嵌入於一或多個主機裝置內,諸如在一主機通信裝置之一外殼內。舉例而言,資料儲存裝置102可在一經封裝設備內,諸如一無線電話、一個人數位助理(PDA)、一遊戲裝置或控制台、一可攜式導航裝置或使用內部非揮發性記憶體之其他裝置。在一特定實施例中,資料儲存裝置102可耦合至一非揮發性記憶體,諸如一個三維(3D)記憶體、一快閃記憶體(例如,NAND、NOR、多位階單元(MLC)、一分開式位元線NOR(DINOR)記憶體、一AND記憶體、一高電容性耦合比(HiCR)、非對稱性非接觸式電晶體(ACT)或其他快閃記憶體)、一可抹除可程式化唯讀記憶體(EPROM)、一電可抹除可程式化唯讀記憶體(EEPROM)、一唯讀記憶體(ROM)、一單次可程式化記憶體(OTP)或任一其他類型之記憶體。
本文中所闡述之實施例之圖解說明意欲提供對各種實施例之一大體理解。可利用其他實施例及自本發明導出該等其他實施例,以使得可在不背離本發明之範疇之情況下做出結構及邏輯替代及改變。本發明意欲涵蓋各種實施例之任一及所有後續更改或變化。
上文所揭示之標的物應視為說明性而非限定性的,且隨附申請專利範圍意欲涵蓋所有此等修改、增強及屬於本發明之範疇內之其他實施例。因此,在法律允許之最大限度內,本發明之範疇將由對以下申請專利範圍及其等效物之最寬廣可准許解釋來判定,且不應受前述實施方式限定或限制。
100‧‧‧系統
102‧‧‧資料儲存裝置
104‧‧‧記憶體
106‧‧‧邏輯至實體映射表
108‧‧‧實體記憶體位置
110‧‧‧第一碼字/碼字
112‧‧‧代表性第一項目/第一項目/項目/第一位址
114‧‧‧代表性同位資料
116‧‧‧代表性碼字錯誤校正碼資料/碼字錯誤校正碼資料
118‧‧‧第二碼字/碼字
120‧‧‧控制器
122‧‧‧記憶體管理系統
124‧‧‧映射邏輯
126‧‧‧隨機存取記憶體
128‧‧‧部分
130‧‧‧錯誤校正碼引擎
132‧‧‧錯誤偵測引擎
134‧‧‧擾碼器
136‧‧‧主機介面
150‧‧‧主機裝置
152‧‧‧讀取請求
156‧‧‧匯流排
160‧‧‧讀取操作
162‧‧‧表示/第一項目表示/項目表示
164‧‧‧表示/第一碼字表示/碼字表示
166‧‧‧第一讀取資料
168‧‧‧第二讀取資料

Claims (22)

  1. 一種方法,其包括:在包含一記憶體及一控制器之一資料儲存裝置中執行:接收指示一邏輯位址之一讀取請求,該讀取請求係在該資料儲存裝置操作地耦合至一主機裝置或嵌入於該主機裝置內時自該主機裝置接收的;執行一第一讀取操作以自該記憶體擷取一邏輯映射表之一項目之一表示;執行一第二讀取操作以自該記憶體擷取一碼字之一表示;將該碼字之該表示解碼以判定在該項目處是否存在一錯誤;及在完成解碼之前,起始一第三讀取操作以自如基於該項目之該表示所判定對應於該邏輯位址之一第一實體位址擷取第一讀取資料。
  2. 如請求項1之方法,其進一步包括,在擷取該第一讀取資料之後,將該第一讀取資料解碼以產生經錯誤校正資料且將該經錯誤校正資料傳送至該主機裝置。
  3. 如請求項1之方法,其進一步包括,在將該碼字之該表示解碼識別出該項目處之一錯誤時,起始一第四讀取操作以自如基於該碼字之該表示所判定對應於該邏輯位址之一第二實體位址擷取第二讀取資料。
  4. 如請求項3之方法,其中在起始該第四讀取操作時中斷該第三讀取操作。
  5. 如請求項3之方法,其中若起始該第四讀取操作,則丟棄該第三讀取操作之結果。
  6. 如請求項3之方法,其進一步包括,在擷取該第二讀取資料之後,將該第二讀取資料解碼以產生經錯誤校正資料且將該經錯誤校正資料傳送至該主機裝置。
  7. 如請求項1之方法,其進一步包括,在執行該第一讀取操作之前,判定在該控制器中的該邏輯映射表之一部分是否包含該邏輯位址,其中回應於判定在該控制器中的該邏輯映射表之該部分不包含該邏輯位址而執行該第一讀取操作及該第二讀取操作。
  8. 如請求項1之方法,其進一步包括,在擷取該項目之該表示之後,檢查與該項目相關聯之錯誤偵測資料,其中在該錯誤偵測資料不指示該項目之該表示中之一錯誤時起始該第三讀取操作,且其中在該錯誤偵測資料指示該項目之該表示中之一錯誤時不起始該第三讀取操作。
  9. 如請求項8之方法,其中該錯誤偵測資料包含與該項目相關聯之一同位位元,且其中基於與該碼字相關聯之錯誤偵測與校正資料將該碼字之該表示解碼。
  10. 如請求項1之方法,其進一步包括,在擷取該項目之該表示之後,在起始該第三讀取操作之前將該項目之該表示解擾碼。
  11. 如請求項1之方法,其中該記憶體包含一個三維(3D)記憶體,且其中該資料儲存裝置包含與該3D記憶體之記憶體單元之操作相關聯之電路。
  12. 一種資料儲存裝置,其包括:一記憶體;及一控制器,其耦合至該記憶體,其中該控制器包含一第一邏輯映射表且經組態以:接收指示一邏輯位址之一讀取請求,該讀取請求係在該資料 儲存裝置操作地耦合至一主機裝置或嵌入於該主機裝置內時自該主機裝置接收的;執行一第一讀取操作以自該記憶體擷取一邏輯映射表之一項目之一表示;執行一第二讀取操作以自該記憶體擷取一碼字之一表示;將該碼字之該表示解碼以判定在該項目處是否存在一錯誤;及在完成解碼之前,起始一第三讀取操作以自如基於該項目之該表示所判定對應於該邏輯位址之一第一實體位址擷取第一讀取資料。
  13. 如請求項12之資料儲存裝置,其中該控制器經組態以在擷取該第一讀取資料之後,將該第一讀取資料解碼以產生經錯誤校正資料且將該經錯誤校正資料傳送至該主機裝置。
  14. 如請求項12之資料儲存裝置,其中該控制器經組態以在將該碼字之該表示解碼識別出該項目處之一錯誤時,起始一第四讀取操作以自如基於該碼字之該表示所判定對應於該邏輯位址之一第二實體位址接收第二讀取資料。
  15. 如請求項14之資料儲存裝置,其中該控制器經組態以在起始該第四讀取操作時中斷該第三讀取操作。
  16. 如請求項14之資料儲存裝置,其中若起始該第四讀取操作,則該控制器經組態以丟棄該第三讀取操作之結果。
  17. 如請求項14之資料儲存裝置,其中該控制器經組態以在擷取該第二讀取資料之後,將該第二讀取資料解碼以產生經錯誤校正資料且將該經錯誤校正資料傳送至該主機裝置。
  18. 如請求項12之資料儲存裝置,其中該控制器經組態以在執行該第一讀取操作之前,判定在該控制器中的該邏輯映射表之一部 分是否包含該邏輯位址,其中回應於判定在該控制器中的該邏輯映射表之該部分不包含該邏輯位址而執行該第一讀取操作及該第二讀取操作。
  19. 如請求項12之資料儲存裝置,其中該控制器經組態以在擷取該項目之後,檢查與該項目相關聯之錯誤偵測資料,其中在該錯誤偵測資料不指示該項目之該表示中之一錯誤時起始該第三讀取操作,且其中在該錯誤偵測資料指示該項目之該表示中之一錯誤時不起始該第三讀取操作。
  20. 如請求項19之資料儲存裝置,其中該錯誤偵測資料包含與該項目相關聯之一同位位元,且其中基於與該碼字相關聯之錯誤偵測與校正資料將該碼字之該表示解碼。
  21. 如請求項12之資料儲存裝置,其中該控制器經組態以在擷取該項目之該表示之後,在起始該第三讀取操作之前將該項目之該表示解擾碼。
  22. 如請求項12之資料儲存裝置,其中該記憶體包含一個三維(3D)記憶體,且其中該資料儲存裝置包含與該3D記憶體之記憶體單元之操作相關聯之電路。
TW103109166A 2013-03-15 2014-03-13 具有減小讀取延時之資料儲存裝置及其操作方法 TWI613675B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/838,662 US9116824B2 (en) 2013-03-15 2013-03-15 System and method to reduce read latency of a data storage device
US13/838,662 2013-03-15

Publications (2)

Publication Number Publication Date
TW201506953A true TW201506953A (zh) 2015-02-16
TWI613675B TWI613675B (zh) 2018-02-01

Family

ID=50397332

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103109166A TWI613675B (zh) 2013-03-15 2014-03-13 具有減小讀取延時之資料儲存裝置及其操作方法

Country Status (4)

Country Link
US (1) US9116824B2 (zh)
CN (1) CN104995607B (zh)
TW (1) TWI613675B (zh)
WO (1) WO2014150516A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI615771B (zh) * 2015-09-17 2018-02-21 慧榮科技股份有限公司 資料儲存裝置及其資料讀取方法
TWI618059B (zh) * 2015-03-27 2018-03-11 英特爾公司 用於記憶體中之偏移消除的設備及方法
TWI654526B (zh) 2017-06-30 2019-03-21 慧榮科技股份有限公司 降低快閃儲存介面中傳收資料錯誤方法以及使用該方法的裝置
US10630425B2 (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
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
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

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160162416A1 (en) * 2014-12-08 2016-06-09 Intel Corporation Apparatus and Method for Reducing Latency Between Host and a Storage Device
US9985655B2 (en) 2015-09-01 2018-05-29 International Business Machines Corporation Generating ECC values for byte-write capable registers
US9766975B2 (en) * 2015-09-01 2017-09-19 International Business Machines Corporation Partial ECC handling for a byte-write capable register
US10176038B2 (en) 2015-09-01 2019-01-08 International Business Machines Corporation Partial ECC mechanism for a byte-write capable register
CN106547480B (zh) * 2015-09-17 2019-04-12 慧荣科技股份有限公司 数据储存装置及其数据读取方法
US20170141878A1 (en) * 2015-11-16 2017-05-18 Western Digital Technologies, Inc. Systems and methods for sending data from non-volatile solid state devices before error correction
TWI603335B (zh) * 2016-10-19 2017-10-21 合肥兆芯電子有限公司 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置
JP2018156556A (ja) 2017-03-21 2018-10-04 東芝メモリ株式会社 計算機システム及びメモリデバイス
KR102421149B1 (ko) * 2018-01-02 2022-07-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US10565051B2 (en) * 2018-02-06 2020-02-18 Alibaba Group Holding Limited Accommodating variable page sizes in solid-state drives using customized error correction
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN117222992A (zh) * 2021-06-01 2023-12-12 微芯片技术股份有限公司 用于旁路存储器读取请求检测的系统和方法
US11550658B1 (en) 2021-09-02 2023-01-10 Western Digital Technologies, Inc. Storage system and method for storing logical-to-physical address table entries in a codeword in volatile memory

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2823874B1 (fr) 2001-04-20 2003-10-31 St Microelectronics Sa Procede d'adressage de memoire optimise
US6804750B2 (en) * 2002-01-22 2004-10-12 Micron Technology, Inc. Technique for reducing memory latency during a memory request
KR100439507B1 (ko) 2002-03-18 2004-07-09 삼성전기주식회사 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
JP2005025827A (ja) 2003-06-30 2005-01-27 Toshiba Corp 半導体集積回路装置およびそのエラー検知訂正方法
WO2006065698A2 (en) 2004-12-13 2006-06-22 William Kenneth Waller Sense amplifier circuitry and architecture to write data into and/or read data from memory cells
US7447078B2 (en) 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US8429493B2 (en) * 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8661218B1 (en) * 2007-10-18 2014-02-25 Datadirect Networks, Inc. Method for reducing latency in a solid-state memory system while maintaining data integrity
US8095763B2 (en) * 2007-10-18 2012-01-10 Datadirect Networks, Inc. Method for reducing latency in a raid memory system while maintaining data integrity
JP2010009646A (ja) 2008-06-24 2010-01-14 Toshiba Memory Systems Co Ltd 半導体記憶装置
KR101780422B1 (ko) * 2010-11-15 2017-09-22 삼성전자주식회사 불휘발성 메모리 장치, 그것의 읽기 방법, 그리고 그것을 포함하는 메모리 시스템
KR101752583B1 (ko) * 2013-03-14 2017-07-11 마이크론 테크놀로지, 인크. 트레이닝, 데이터 조직, 및/또는 섀도잉을 포함하는 메모리 시스템들 및 방법들
US9690953B2 (en) * 2013-03-14 2017-06-27 Apple Inc. Generating efficient reads for a system having non-volatile memory

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI618059B (zh) * 2015-03-27 2018-03-11 英特爾公司 用於記憶體中之偏移消除的設備及方法
TWI615771B (zh) * 2015-09-17 2018-02-21 慧榮科技股份有限公司 資料儲存裝置及其資料讀取方法
TWI654526B (zh) 2017-06-30 2019-03-21 慧榮科技股份有限公司 降低快閃儲存介面中傳收資料錯誤方法以及使用該方法的裝置
US10630425B2 (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
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
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

Also Published As

Publication number Publication date
US9116824B2 (en) 2015-08-25
CN104995607B (zh) 2017-11-17
TWI613675B (zh) 2018-02-01
WO2014150516A3 (en) 2014-12-04
US20140281806A1 (en) 2014-09-18
WO2014150516A2 (en) 2014-09-25
CN104995607A (zh) 2015-10-21

Similar Documents

Publication Publication Date Title
TWI613675B (zh) 具有減小讀取延時之資料儲存裝置及其操作方法
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US9110786B2 (en) Read operation prior to retrieval of scatter gather list
US10031850B2 (en) System and method to buffer data
US9639461B2 (en) System and method of processing of duplicate data at a data storage device
US20200065241A1 (en) Data storage device and operating method thereof
US9240235B2 (en) Mitigating disturb effects for non-volatile memory
US8812936B2 (en) Using slow response memory device on a fast response interface
US9741442B2 (en) System and method of reading data from memory concurrently with sending write data to the memory
US20150098271A1 (en) System and method of storing data in a data storage device
TW201337926A (zh) 更新記憶體內讀取電壓之系統與方法
US10445252B2 (en) Storage device and operating method performed by the same
US9400747B2 (en) Batch command techniques for a data storage device
CN106372011B (zh) 用于pcie ssd控制器的高性能主机队列监控器
US20150046772A1 (en) Method and device for error correcting code (ecc) error handling
TWI657336B (zh) 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置
US10180788B2 (en) Data storage device having internal tagging capabilities
US9478289B1 (en) Semiconductor memory device and operating method thereof
US20170315943A1 (en) Systems and methods for performing direct memory access (dma) operations
US9778864B2 (en) Data storage device using non-sequential segment access and operating method thereof
US11281381B2 (en) Storage node of distributed storage system and method of operating the same
US9223649B2 (en) System and method of sending correction data to a buffer of a non-volatile memory
CN113126906A (zh) 用于存储器装置的元数据指示
US20240012564A1 (en) Memory controller and storage device including the same
US10923178B1 (en) Data storage with improved write performance for preferred user data

Legal Events

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