TW202034167A - 記憶體系統中的匯集式前線錯誤校正碼解碼器 - Google Patents
記憶體系統中的匯集式前線錯誤校正碼解碼器 Download PDFInfo
- Publication number
- TW202034167A TW202034167A TW108132239A TW108132239A TW202034167A TW 202034167 A TW202034167 A TW 202034167A TW 108132239 A TW108132239 A TW 108132239A TW 108132239 A TW108132239 A TW 108132239A TW 202034167 A TW202034167 A TW 202034167A
- Authority
- TW
- Taiwan
- Prior art keywords
- frontline
- ecc
- frames
- decoders
- pooled
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文描述的各種實施方式有關用於校正來自諸如固態硬碟(SSD)的多個非揮發性記憶體裝置之類的記憶體系統的資料的系統和方法,包括但不限於從多個非揮發性記憶體裝置接收資料的訊框,在匯集式前線錯誤校正碼(ECC)解碼器之間分配訊框,由匯集式前線ECC解碼器解碼這些訊框以輸出第一解碼的訊框,並將第一解碼的訊框返回到讀取通道。
Description
本發明一般有關用於改善記憶體系統(例如,固態硬碟(SSD))的資料完整性的系統和方法。
傳統的非揮發性記憶體控制器包括錯誤校正碼(ECC)解碼器,其被配置為校正來自諸如SSD的記憶體系統中的非揮發性記憶體裝置的資料。非揮發性記憶體的類型包括NAND快閃記憶體、NOR快閃記憶體、磁性RAM(MRAM)、電阻性RAM(RRAM)、相變記憶體(PCM)和電池供電的揮發性記憶體。例如,具有N個記憶體通道(例如,其中N可以是4、8、16等)的多通道控制器通常具有N通道ECC解碼器,每通道一個,以提供高頻寬、獨立的平行運算。多通道ECC解碼器形成ECC解碼器的第一層或第一線,稱為「前線」解碼器。前線解碼器是非揮發性記憶體裝置中的資料遇到的第一個錯誤校正解碼器。在大多數情況下,「前線」解碼器能夠校正從非揮發性記憶體裝置讀取的資料訊框,從而提供無錯誤的訊框。如果前線解碼器無法校正所有錯誤,則傳統控制器可以具有後續的解碼器(例如「第二線」解碼器、「第三線」解碼器、「第四線」解碼器等)。考量到後續解碼器並非一直都在使用,因此通常在用於將資料從非揮發性記憶體裝置傳送到主機的讀取通道之間共享後續解碼器。後續的解碼器位於讀取通道的外部並遠離讀取通道。另一方面,專用的前線解碼器被分配給每個讀取通道,並且被嵌入或以其他方式位於各個讀取通道中。
這種傳統的配置意指即使在所有情況下並非始終都充分利用其錯誤校正能力,仍然必須將高性能ECC資源專用於並固定到每個讀取通道。例如,在SSD中非揮發性記憶體裝置生命週期的早期階段,讀取錯誤可能很少,而在生命週期後期,可能存在更多數量級的錯誤。另一個因素在於錯誤率可能有很大的差異,例如在非揮發性記憶體中來自記憶體塊不同頁面的讀取錯誤之間、單一裝置中的記憶體塊之間、或記憶體裝置之間。由於溫度變化、資料從首次讀取到原始寫入之間的時間長度(資料的保留期)、包含該資料之塊之前已經被抹除的次數(編程/抹除或P/E循環數)、或者由於與資料所在的記憶體單元相鄰的記憶體單元的讀/寫活動,錯誤率也可能存在很大差異。可以將這些變化編譯成個別裝置或裝置範圍的錯誤特徵和設定檔集。具有用以應對這些變化的能力的專用前線解碼器不一定總是一直使用其全部功能,這是無效率的。因此,在讀取SSD中的不同非揮發性記憶體裝置時,在所有情況下都需要更有效地配置ECC解碼器。
在某些態樣中,SSD裝置的目前實施方式針對用於校正來自SSD裝置的多個非揮發性記憶體裝置的資料的系統和方法,包括但不限於仲裁器經由多個讀取通道接收來自多個非揮發性記憶體裝置的資料的訊框,其中,所有接收到的訊框都經過編碼,由仲裁器在多個匯集式前線錯誤校正碼(ECC)解碼器之間分配訊框,藉由多個匯集式前線ECC解碼器對訊框進行解碼以輸出第一解碼訊框,並藉由多個匯集式前線ECC解碼器將第一解碼後的訊框返回至讀取通道。
如本文所提及,「前線」 ECC解碼器是指在資料流到另一種類型的ECC解碼器(諸如「後續」 ECC解碼器)之前,來自非揮發性記憶體裝置的資料首先流向的ECC解碼器。亦即,前線ECC解碼器是校正來自非揮發性記憶體裝置的資料的訊框的第一解碼器。在一些示例中,未校正或編碼的資料訊框在回應於確定前線ECC解碼器未能校正訊框中的所有錯誤而被發送到後續的ECC解碼器之前,將首先分配給前線ECC解碼器之一。在某些情況下,當嘗試從非揮發性記憶體裝置讀取校正後的資料時,總是會考慮使用前線ECC解碼器。傳統上,在各自的讀取通道中提供前線ECC解碼器,使得專用的前線ECC解碼器解碼或校正給定讀取通道的資料。本文描述的配置有關在讀取通道之外或遠離讀取通道提供的前線ECC解碼器池,使得可以以所述方式共享前線ECC解碼器。
「後續」ECC解碼器(例如,「第二線」ECC解碼器、「第三線」ECC解碼器、「第四線」ECC解碼器等)是指ECC解碼器,在前線ECC解碼器無法校正此類資料中的所有錯誤之後,資料便會流動。如果前線解碼器無法完全校正資料,則依次使用第二線ECC解碼器、第三線ECC解碼器和第四線ECC解碼器來校正資料。就資料流而言,前線ECC解碼器位於非揮發性記憶體裝置與後續ECC解碼器之間。後續的ECC解碼器位於讀取通道的外部或遠離讀取通道。通常,與後續的解碼器相比,前線ECC解碼器可能具有較弱的錯誤校正能力(例如,可以校正較少數量的錯誤,或者僅校正隨機分佈的錯誤而不是成組或突發的錯誤),或者比後續解碼器解碼速度更快,因此消耗的功率更少。後續的解碼器可能會採用更強大的ECC功能,或者解碼速度可能會更慢,因此會消耗更多功率,通常在解碼及校正資料方面會更好。在一些配置中,後續解碼器可以是前線解碼器之一,但是被配置為運行更長的時間期以獲得更好的解碼結果。
在其他態樣中,申請人體認到SSD裝置的傳統控制器包括單獨嵌入在讀取通道中並且不共享的通道ECC解碼器(例如,前線ECC解碼器)。在一些示例中,為了充分利用非揮發性記憶體裝置,讀取通道可能需要支援至少三個不同的ECC強度,以讀取由不同的字線(WL)選擇的記憶體頁面。藉由非限制性示例,可以存在用於WL 0的一個碼、用於WL 1-49的另一個碼、以及用於WL 50-95的另一個碼。申請人進一步觀察到,分配給讀取特定字線上的特定頁面的解碼器可以根據它們的使用頻率而不同,例如用於WL 0的解碼器沒有像其他解碼器那樣頻繁使用。因此,在此特定實例中,在讀取通道之間共享對應於WL 0的解碼器將會是有利的。通常,可以在逐訊框的基礎上靈活分配池中的任何解碼器,以解碼從任何讀取通道讀取的任何資料訊框。單一訊框也可以分配給多個解碼器,它們可以以協調的方式一致地解碼。這樣的實施方式可以節省資源(例如,減少所需解碼器的數量),從而減少佔用空間及/或允許重新分配資源以增強其他解碼器。
本文描述的配置有關用於藉由提供前線ECC解碼器池並在所有NAND讀取通道之間共享該池來校正和解碼來自非揮發性記憶體裝置的資料的系統、設備、方法及非暫態性電腦可讀媒體。匯集式前線ECC解碼器不在讀取通道內。在一些實施方式中,仲裁器可以分配匯集式前線ECC解碼器之一來解碼或以其他方式校正資料。
在一些實施方式中,提供了多個前線ECC解碼器池。每個池包括具有相同解碼能力的前線ECC解碼器。解碼功能可能因池而異。在這方面,每個池(包括具有相同解碼能力的前線ECC解碼器)可以由所有讀取通道共享。
在其他實施方式中,池的至少一些前線ECC解碼器可以具有與同一池的其他前線ECC解碼器不同的解碼能力。在該方面,該池整體來說是多功能的,支援不同的解碼功能,且可以稱為「重疊」池。在多個此種重疊池的情境中,每個池具有校正和解碼來自任何讀取通道的資料所需的所有解碼能力。因此,多個重疊池中的每一者都負責校正和解碼不同組讀取通道的資料(例如,來自一組讀取通道的資料被發送到分配的重疊池)。
因此,如果前線ECC解碼器池具有更多的共享資源(例如,共享的前線ECC解碼器)用於解碼資料,則與傳統的一通道一解碼器的方法相比,本文所述的配置可以配置用以減少在解碼資料訊框時讀取通道的停頓。在其中一線ECC解碼器池比傳統方法具有更少共享資源的另一種配置中,可以交換資源節省,以換取因競爭存取更有限資源而造成的停頓。假設有足夠的前線ECC解碼器可用,則匯集式前線ECC解碼器也可以較慢的處理速率運行而不會延遲讀取通道。此外,假設可以在剩餘的匯集式前線ECC解碼器之間分配資料,則可以在不停止整個讀取通道的情況下完成更新或重新配置匯集式前線ECC解碼器,這將在以下詳述。再者,由於前線ECC解碼器的共享或匯集,可以減少前線ECC解碼器的總數。可以針對具有廣泛分佈的錯誤特徵或設定檔集的非揮發性記憶體裝置來實施方式本文所述的實施方式。本文所述的實施方式是可擴展的。
為了幫助說明本發明的某些態樣,圖1a顯示根據一些實施方式之用於校正來自非揮發性記憶體裝置120a-120n之資料的系統100a的方塊圖。系統100a對應於SSD裝置的一部分。在某些配置中,SSD裝置可以是資料中心的一部分(為簡便起見未顯示)。
系統100a包括非揮發性記憶體裝置120a-120n及控制器110。非揮發性記憶體裝置120a-120n的示例包括但不限於NAND快閃記憶體裝置、NOR快閃記憶體裝置、磁性RAM(MRAM)、電阻式RAM(RRAM)、相變記憶體(PCM)以及電池支援的揮發性記憶體。非揮發性記憶體裝置120a-120n形成SSD裝置的非揮發性儲存器。非揮發性記憶體裝置120a-120n是快閃記憶體,並且包括一或多個單獨的非揮發性晶粒。因此,非揮發性記憶體裝置120a-120n是指SSD裝置內的多個非揮發性記憶體裝置或晶粒。非揮發性記憶體裝置120a-120n可以經由讀取通道125a-125n傳送儲存在其中的資料。讀取通道125a-125n是資料匯流排,其被配置為回應於讀取命令(例如,來自主機),將儲存在非揮發性記憶體裝置120a-120n中的資料傳送到控制器110以進行處理。
控制器110可以組合在非揮發性記憶體裝置120a-120n中的原始資料儲存,使得那些非揮發性記憶體裝置120a-120n的功能類似於單一儲存器。控制器110可以包括微控制器、緩衝器、錯誤校正功能、FTL及快閃記憶體介面模組,用於實施這種功能的軟體及韌體。
控制器110包括用於執行本文描述的功能的適合的處理和儲存能力。如上所述,控制器110管理非揮發性記憶體裝置120a-120n的各種功能,包括但不限於I/O處理、讀取、寫入、抹除、監視、記錄、錯誤處理、垃圾收集、損耗均衡、邏輯到實體地址的映射等。因此,控制器110提供對非揮發性記憶體裝置120a-120n及其相關聯的FTL的可見度。
如所描述的,控制器110提供錯誤處理能力。非揮發性記憶體裝置120a-120n中儲存的資料被編碼以減少當解碼資料來讀取時的錯誤。特別是,在控制器110中提供ECC解碼器140a-140n及150,以回應於讀取命令來解碼及校正資料。例如,控制器110包括由匯集式前線ECC解碼器140a-140n所定義的前線ECC解碼器135池。所屬技術領域中具有通常知識者可以理解,可以將任意數量的前線ECC解碼器匯集在一起。匯集式前線ECC解碼器140a-140n以使得匯集式前線ECC解碼器140a-140n中之任何一者都不被提供或專用於任何讀取通道125a-125n的方式被聚合。匯集式前線ECC解碼器140a-140n在讀取通道125a-125n之間共享。通常,可以在逐訊框的基礎上靈活地分配池中的任何一個解碼器140a-140n,以解碼從任何讀取通道125a-125n讀取的任何資料訊框。單一訊框亦可分配給二或多個解碼器140a-140n,它們可以以協調的方式一致地解碼該訊框。
控制器110包括仲裁器130,該仲裁器130被配置為從非揮發性記憶體裝置120a-120n接收資料,並分配或以其他方式指定匯集式前線ECC解碼器140a-140n中之一者以解碼資料。仲裁器130包括用於執行本文描述的功能的適合的處理和儲存能力。例如,仲裁器130可以是具有處理器和記憶體的處理電路。在一些實施方式中,可以利用控制器110的處理能力來實施方式仲裁器130。在其他實施方式中,可以利用專用處理能力來實施方式仲裁器130。仲裁器130可操作地耦合到讀取通道125a-125n以接收來自非揮發性記憶體裝置120a-120n的資料(例如,資料訊框)。
控制器110可以存取或可操作地耦合到可操作地耦合到前線ECC解碼器135的池(例如,到匯集式前線ECC解碼器140a-140n)及後續的ECC解碼器的動態隨機存取記憶體(DRAM)140。DRAM 160被配置用以充當緩衝的前線ECC解碼器140a-140n未能解碼的資料訊框的緩衝區,並校正後續ECC解碼器150的存取。
後續的ECC解碼器150包括第二線ECC解碼器152、第三線ECC解碼器154以及第四行ECC解碼器156。後續的ECC解碼器150可以用韌體更新或配置。回應於確定前線ECC解碼器140a-140n未能解碼及校正訊框,將該訊框發送到第二線ECC解碼器152以進行解碼或校正。回應於確定第二線ECC解碼器152未能對訊框進行解碼及校正,將該訊框發送到第三線ECC解碼器154以對其進行解碼或校正。回應於確定第三線ECC解碼器154未能對訊框進行解碼及校正,將該訊框發送到第四線ECC解碼器156以對其進行解碼或校正。所屬技術領域中具有通常知識者可以理解,可以實施任何數量的後續ECC解碼器的層或線。解碼及校正後的訊框被緩衝於DRAM 160中,以供後續功能存取以處理解碼及校正後的訊框(為清楚起見未顯示)。在一個示例中,未能被前線ECC解碼器140a-140n解碼的FJX訊框被放在DRAM 160中。就此方面而言,後續的ECC解碼器150(例如,第二線ECC解碼器152及/或第三行ECC解碼器154)可以用解碼的訊框覆寫此類失敗的訊框。
在一些配置中,如圖1b所示,系統100b中的控制器110可以提供一或多個額外的前線ECC解碼器池(例如,前線ECC解碼器137池)用於SSD裝置中的其他非揮發性記憶體裝置。如圖所示,非揮發性記憶體裝置122a-122n可以經由讀取通道127a-127n將資料訊框發送到仲裁器132。仲裁器132選擇前線ECC解碼器142a-142n中的一者以按照所述的方式對訊框加以解碼及校正。不能以所述方式由前線ECC解碼器142a-142n校正的訊框可以被傳遞到(例如,儲存和緩衝於)DRAM 160中,以供解碼及校正訊框的後續的ECC解碼器150存取。在一些配置中,實施方式控制器110的特殊應用積體電路(ASIC)可受益於具有多個前線ECC解碼器的仲裁器和池,以簡化電路佈局,並且將前線ECC解碼器的仲裁器和池與快閃記憶體裝置通道群組的位置並置。這亦可改善ASIC的平面配置圖和占位面積、功耗以及空間效率。每個仲裁器可以服務附近的多個讀取通道。例如,仲裁器130服務讀取通道125a-125n,其比其他仲裁器(例如,仲裁器132)和其他池(例如,前線ECC解碼器137的池)更靠近仲裁器130及前線ECC解碼器135的池。仲裁器132服務讀取通道127a-127n,其比其他仲裁器(例如,仲裁器130)和其他池(例如,前線ECC解碼器135的池)更靠近仲裁器132和前線ECC解碼器137的池。
圖2顯示根據一些實施方式之用於校正來自SSD裝置的非揮發性記憶體裝置的資料的程序200的流程圖。參照圖1至圖4。如圖1至2所示,在210,仲裁器130經由讀取通道125-125n接收來自非揮發性記憶體裝置120a-120n的資料訊框。此時,任何ECC解碼器都尚未解碼或校正所有接收到的訊框。
在220處,仲裁器130在匯集式前線ECC解碼器140a-140n之間分配訊框。亦即,仲裁器130為經由通道125a-125n接收的每一訊框資料選擇匯集式前線ECC解碼器140a-140n之一。在一些配置中,仲裁器130基於匯集式前線ECC解碼器140a-140n的可用性、要解碼的訊框的碼資料的類型以及匯集式前線ECC解碼器140a-140n支援的碼的類型來分配訊框。
如果匯集式前線ECC解碼器處於連線狀態,則該匯集式前線ECC解碼器可用,否則由於維護、電力不足、故障等原因,不會忙於解碼另一訊框或不離線。每個接收到的訊框包括指示該訊框定義的碼資料類型的碼元資料。每個匯集式前線ECC解碼器140a-140n可以支援至少一種類型的碼。如果為訊框定義的碼資料類型與匯集式前線ECC解碼器支援的碼類型匹配,則匯集式前線ECC解碼器可以嘗試解碼及校正訊框。在該方面,對於給定的訊框而言,仲裁器130選擇可用的且支援與為該訊框定義之碼資料類型匹配的碼類型的匯集式前線ECC解碼器140a-140n之一者。
在230處,匯集式前線ECC解碼器140a-140n對訊框進行解碼。根據仲裁器130的分配,匯集式前線ECC解碼器140a-140n中所選擇的一者解碼並校正資料訊框。
在240處,匯集式前線ECC解碼器140a-140n確定訊框是否被成功解碼及校正。關於由匯集式前線ECC解碼器140a-140n成功解碼及校正的訊框(240:是),在250,將解碼的訊框儲存並緩衝於DRAM中並標記為成功解碼。匯集式前線ECC解碼器140a -140n可以輸出解碼及校正後的訊框,稱為第一解碼訊框。第一解碼訊框被緩衝於DRAM中,如此標記者。
另一方面,對於不能由匯集式前線ECC解碼器140a-140n解碼或校正的訊框(240:否),匯集式前線ECC解碼器140a-140n將未解碼的訊框儲存並緩衝於DRAM中,並在260處標記為未解碼,以供後續的ECC解碼器150存取。如所述,後續的ECC解碼器150包括第二線解碼器152、第三線解碼器154及第四線解碼器156中的一或多個。在270,後續的ECC解碼器150對先前未解碼及未校正的訊框進行解碼。在280處,後續的ECC解碼器150將與先前未解碼及未校正的訊框對應之已解碼及校正的訊框返回到讀取通道125a-125n。
關於260-280,回應於確定匯集式前線ECC解碼器140a-140n未能對仲裁器130經由讀取通道125a-125n接收的某些訊框進行解碼,匯集式前線ECC解碼器140a-140n可以將未解碼及未校正的訊框發送到DRAM 160。後續的ECC解碼器150可以用解碼後的訊框覆寫失敗的訊框。DRAM 160可以將未解碼及未校正的訊框發送或輸入到第二線ECC解碼器152。第二線ECC解碼器152對先前未解碼及未校正的訊框進行解碼及校正以輸出第二解碼後的訊框。第二線ECC解碼器152將第二解碼訊框儲存並緩衝於DRAM中,以覆寫任何先前的未解碼及未校正的副本。第二解碼訊框被標記為被解碼及被校正,以藉由功能進行後續處理以處理解碼及校正的訊框(為清楚起見未顯示)。或者,可以將先前未解碼及未校正的訊框放回DRAM 160中,例如,如果將DRAM 160視為讀取通道125a-125n的一部分,以使韌體可以嘗試對訊框進行解碼及校正。
如果某些訊框仍未被匯集式前線ECC解碼器140a-140n及第二線ECC解碼器152解碼及校正,則第三線ECC解碼器154可用於解碼及校正那些訊框。例如,回應於確定匯集式前線ECC解碼器140a-140n和第二線ECC解碼器152未能對仲裁器130經由讀取通道125a-125n接收的某些訊框進行解碼,第二線ECC解碼器152可以在DRAM 160中儲存和緩衝,或者以其他方式將未解碼及未校正的訊框輸入到第三線ECC解碼器154。第三線ECC解碼器154對先前未解碼及未校正的訊框進行解碼及校正以輸出第三解碼訊框。第三線ECC解碼器154將第三解碼訊框儲存並緩衝於DRAM中,以覆寫任何先前未解碼及未校正的副本。第三解碼訊框被標記為被解碼及被校正,以用於藉由功能的後續處理以處理解碼及校正的訊框(為清楚起見未顯示)。
如果某些訊框仍未被匯集式前線ECC解碼器140a-140n、第二線ECC解碼器152及第三線ECC解碼器154解碼及校正,則可以使用第四線ECC解碼器156解碼並校正那些訊框。例如,回應於確定匯集式前線ECC解碼器140a-140n、第二線ECC解碼器152及第三線ECC解碼器154未能解碼由仲裁器130經由讀取通道125a-125n所接收的一些訊框,第三線ECC解碼器154或DRAM 160可以將未解碼及未校正的訊框發送或以其他方式輸入到第四線ECC解碼器156。第四線ECC解碼器154將先前未解碼及未校正的訊框解碼及校正以輸出第四解碼訊框。第四線ECC解碼器156將第四解碼訊框儲存並緩衝於DRAM中,以覆寫任何先前的未解碼及未校正的副本。第四解碼訊框被標記為被解碼及被校正,以藉由功能進行後續處理以處理被解碼及被校正的訊框(為清楚起見未顯示)。
因此,前線ECC解碼器135、第二線ECC解碼器152、第三線ECC解碼器154及第四線ECC解碼器156的池對最初由仲裁器130藉由通道125a-125n所接收的訊框提供解碼和校正的層。
在一些配置中,匯集式前線ECC解碼器140a-140n的碼可以使用微編碼硬體來實施ECC演算法,可以將其配置用以在運行時進行更改或重新編程。在這樣的配置中,一或多個匯集式前線ECC解碼器140a-140n可以被離線並且改變或更新微碼被而不會停頓任何讀取通道125a-125n。這允許匯集式前線ECC解碼器140a-140n被改變或更新而沒有中斷並且性能損失最小。因此,可以改變或更新匯集式前線ECC解碼器140a-140n中的至少一者,同時其餘的匯集式前線ECC解碼器140a-140n對經由讀取通道125a-125n接收的訊框進行解碼。仲裁器130已知悉匯集式前線ECC解碼器140a-140n的至少一者被切換成離線以進行更新,並且排除(不選擇)匯集式前線ECC解碼器140a-140n的該至少一者直到仲裁器130被通知至少一匯集式前線ECC解碼器中的至少一者重新連線為止。
在一些配置中,可以匯集前線ECC解碼器,使得可以由給定的前線ECC解碼器池支援多個ECC碼。圖3顯示根據一些配置的前線ECC解碼器池300的方塊圖。前線ECC解碼器池300包括前線ECC解碼器310a-310f,在該示例中,每個前線ECC解碼器310a-310f被配置用以支援三個ECC碼。該配置可以適合的情況為,其中,媒體解碼器可能比強解碼器和弱解碼器更頻繁地被使用,因此,提供比弱解碼器和強解碼器更多的媒體解碼器。前線ECC解碼器池300包括三個解碼器310a-310c,每一者都支援一強碼320。前線ECC解碼器池300包括三個解碼器310d-310f,每一者都支援一弱碼350。前線ECC解碼器310a-310f的每一者支援二個中等強度碼(例如,中等碼A 330及中等碼B 340)。在這方面,即使每一個別的前線ECC解碼器支援三個ECC碼,前線ECC解碼器池300也可以支援具有三個不同強度的四個不同的ECC碼。在某些類型的解碼器中,給定ECC解碼器支援的ECC碼愈多,ECC解碼器需要愈多的記憶體(例如,隨機存取記憶體(RAM))。額外的記憶體需求使ECC解碼器更大。亦即,ECC解碼器的大小通常隨著ECC解碼器支援的ECC碼的數量而增加。因此,藉由以所描述之方式將ECC解碼器匯集在一起,可以減小ECC解碼器的合計的大小,從而節省了控制器110的佔地面積。
此外,ECC解碼器的大小通常隨著編碼率的降低而增加。因此,如果該池具有較少數量的解碼器以支援最小編碼率,則可以減小ECC解碼器的大小。
在一些示例中,典型的BCH(Bose-Chaudhuri -Hocquenghem)解碼器支援BCH 40(解碼多達40個錯誤)、BCH 60(解碼多達60個錯誤)以及BCH 80(解碼多達80個錯誤)。傳統上,位於讀取通道中的BCH解碼器(例如,前線ECC解碼器)將BCH 40、BCH 60以及BCH 80組合在一起,產生大型解碼器。很少需要BCH 80。傳統上,使用一個支援BCH 40、BCH 60以及BCH 80的BCH解碼器和七個僅支援BCH 40以及BCH 60的BCH解碼器來讀取通道。根據非揮發性記憶體裝置的配置設定檔,可以取得其他組合。
關於乘積碼,其中,訊框中的每一資料位元可以以多種方式被編碼為多個訊框的一部分(例如,二維位元陣列中的位元可以被兩次編碼為列位元訊框及一行位元訊框的一部分),可以匯集支援不同碼的二或多個ECC解碼器,使得同一池中的不同ECC解碼器可以同時使用不同的碼工作,而不管是否從相同的讀取通道接收到這些訊框。例如,仲裁器130可以從讀取通道(例如,讀取通道125a)接收二個資料訊框。第一訊框具有第一類型的碼資料。可以使用由第一前線ECC解碼器支援的第一碼來解碼第一類型的碼資料。第二訊框具有不同於第一類型的第二類型的碼資料。可以使用第二前線ECC解碼器支援的第二碼對第二類型的碼資料進行解碼。如果第一前線ECC解碼器可用,則仲裁器130被配置用以選擇第一前線ECC解碼器以解碼第一訊框。如果第二前線ECC解碼器可用,則仲裁器130被配置用以選擇第二前線ECC解碼器以解碼第二訊框。這允許來自同一讀取通道的訊框可以由二個不同的前線ECC解碼器根據前線ECC解碼器所支援的碼類型進行解碼,同時可以提升操作效率,因為二個不同的前線ECC解碼器可以同時解碼二個訊框。
在一些示例中,仲裁器130可以從讀取通道(例如,讀取通道125a)接收二個資料訊框。這二個訊框具有相同類型的碼資料。第一和第二前線ECC解碼器支援用於解碼二個訊框的碼資料類型的碼類型。如果第一前線ECC解碼器可用,則仲裁器130被配置用以選擇第一前線ECC解碼器以解碼第一訊框。如果第二前線ECC解碼器可用,則仲裁器130被配置用以選擇第二前線ECC解碼器以解碼第二訊框。由於二個訊框可以由二個不同的前線ECC解碼器同時解碼,所以這種配置提升操作效率。
傳統上,有鑑於每一讀取通道具有配置在其中的專用前線ECC解碼器,因此特定讀取通道上的所有晶粒必須具有相同的類型。另一方面,對於一匯集式前線ECC解碼器,前線ECC解碼器不專用於一特定的讀取通道,使得不同的晶粒類型(例如,三級單元(TLC)和四級單元(QLC))可以共享該頻道。此外,由特定字線(WL)定址的QLC記憶體單元有可能展現出高於正常的錯誤率(稱為「不良WL」),這可能超過前線ECC解碼器的錯誤校正能力。在這種情況下,可以以偽TLC(pTLC)模式操作這些單元以減少錯誤率,使得不良WL通常會需要不同級別的保護。因此,前線ECC解碼器將需要支援QLC和pTLC操作模式,並且每種模式都需要不同的ECC解碼器,而前線ECC解碼器池可以更容易地支援這兩種模式。
提供先前的描述以使熟於此技術者能夠實施本文描述的各種態樣。對這些態樣的各種修改對於熟於此技術者將是顯而易見的,並且本文定義的一般原理可以應用於其他態樣。因此,申請專利範圍不意圖限於本文中所顯示的態樣,而是應被賦予與語言申請專利範圍一致的完整範圍,其中,除非特別提及,單數形式的元件並不意圖表示「一個且僅一個」而是「一或多個」。除非另外特別說明,否則術語「一些」是指一或多個。與所屬技術領域中具有通常知識者已知或後來知悉之在先前說明中所描述的各個態樣的元件的所有的結構和功能等同物,藉由引用明確併入本文,並且旨在由申請專利範圍所涵蓋。而且,無論在申請專利範圍中是否明確敘述本文揭示的內容,都不意圖將其公開給公眾。除非使用片語「用於…的手段」明確敘述該要素,否則沒有一個請求要素應被解釋為手段功能用語。
應當理解,所揭示之程序中步驟的特定順序或層次是說明的方法的示例。基於設計偏好,應當理解,可以重新安排程序中步驟的特定順序或層次結構,而同時仍在先前描述的範圍內。後附的方法請求項以示例順序呈現各步驟的要素,並不意指限於所呈現的特定順序或層次。
提供對所揭示的實施方式的先前描述以使熟於此技術之人士能夠製造或使用所揭露的標的。對這些實施方式的各種修改對於熟於此技術之人士而言將是明顯的,並且在不脫離先前說明的精神或範圍的情況下,本文中界定的一般原理可以適用於其他實施方式。因此,先前的說明不意圖侷限於本文中所顯示的實施方式,而是應被賦予與本文中所揭露的原理以及新穎特徵一致的最廣範圍。
僅作為示例提供闡明及描述的各種示例,以顯示請求項的各種特徵。然而,關於任何給定示例闡明及描述的特徵不必侷限於相關聯的示例,並且可以與顯示及描述的其他示例一起使用或組合。此外,申請專利範圍不意圖受到任何一個示例的限制。
前述方法說明及程序流程圖僅作為說明性示例而提供,並無意圖要求或暗示各種示例的步驟必須以所呈現的順序執行。如熟於此技術之人士將理解者,前述示例中的步驟順序可以以任何順序執行。諸如「 thereafter」、「 then」、「 next」等詞語不意圖限制步驟的順序;這些單詞僅用於透過方法的描述指導讀者。此外,例如,使用冠詞「一」、「一個」或「該」以單數形式對請求項要素的任何引用均不應被解釋為將要素限制為單數形式。
結合本文揭示的示例描述的各種說明性邏輯塊、模組、電路及演算法步驟可以被實施為電子硬體、電腦軟體或兩者的組合。為清楚說明硬體和軟體的此種可互換性,以上已大體上根據其功能描述各種說明性的組件、塊、模組、電路及步驟。將此種功能性實施為硬體亦或是軟體取決於特定的應用和施加在整個系統上的設計約束。技術人員可以針對每個特定應用以變化的方式來實施所描述的功能,但是這種實施方式決定不應被解釋為導致脫離本發明的範疇。
用於實施結合本文揭示的示例描述的各種說明性邏輯、邏輯塊、模組及電路的硬體可以利用設計為執行本文描述的功能的通用處理器、DSP、ASIC、PGA或其他可編程邏輯裝置、離散的閘極或電晶體邏輯、離散的硬體組件或其任意組合加以實施或執行。通用處理器可以是微處理器,但可替代地,處理器可以是任何習用處理器、控制器、微控制器或狀態機。處理器還可以被實施為運算裝置的組合,例如,DSP和一微處理器、多個微處理器、一或多個與DSP核心結合的微處理器的組合,或任何其他這樣的配置。或者,某些步驟或方法可以由對給定功能而言特定的電路執行。
在一些示例性示例中,可以以硬體、軟體、韌體或其任意組合來實施所描述的功能。如果以軟體實施,則功能可以作為一或多個指令或碼儲存在非揮發性電腦可讀儲存媒體或非揮發性處理器可讀儲存媒體上。非揮發性記憶體的示例包括但不限於NAND快閃記憶體、NOR快閃記憶體、磁性MRAM、RRAM、PCM和電池支援的揮發性記憶體。本文揭示的方法或演算法的步驟可以體現在處理器可執行軟體模組中,該處理器可執行軟體模組可以駐留在非揮發性電腦可讀或處理器可讀儲存媒體上。非揮發性電腦可讀或處理器可讀儲存媒體可以是可以由電腦或處理器存取的任何儲存媒體。藉由示例而非限制,這種非揮發性電腦可讀或處理器可讀儲存媒體可以包括RAM、ROM、EEPROM、EEPROM、快閃記憶體、CD-ROM或其他光碟儲存器、磁盤儲存器或其他磁性儲存器,或可用於以指令或資料結構形式儲存所需程式碼並且可由電腦存取的任何其他媒體。本文使用的磁碟和碟片包括光碟(CD)、雷射光碟、光碟、數位多功能光碟(DVD)、軟盤以及藍光光碟,其中,磁盤通常以磁性方式複製資料,而光碟則藉由雷射光學方式複製資料。以上的組合也包括在非揮發性電腦可讀和處理器可讀媒體的範疇內。另外,方法或演算法的操作可以作為碼及/或指令的一個或任何組合或集合駐留在非揮發性處理器可讀儲存媒體及/或電腦可讀儲存媒體上,其可以被併入電腦程式產品中。
提供對所揭示示例的前述描述以使任何熟於此技術之人士夠製造或使用本發明。對這些實施方式的各種修改對於熟於此技術之人士而言將是明顯的,並且在不脫離先前說明的精神或範圍的情況下,本文中界定的一般原理可以適用於其他實施方式。因此,先前的說明不意圖侷限於本文中所顯示的實施方式,而是應被賦予與本文中所揭露的原理以及新穎特徵一致的最廣範圍。
100a:系統
110:控制器
120a:非揮發性記憶體裝置
120b:非揮發性記憶體裝置
120c:非揮發性記憶體裝置
120d:非揮發性記憶體裝置
120e:非揮發性記憶體裝置
120n:非揮發性記憶體裝置
122a:非揮發性記憶體裝置
122b:非揮發性記憶體裝置
122n:非揮發性記憶體裝置
125a:讀取通道
125b:讀取通道
125c:讀取通道
125d:讀取通道
125e:讀取通道
125n:讀取通道
127a:讀取通道
127b:讀取通道
127n:讀取通道
130:仲裁器
132:仲裁器
135:前線ECC解碼器
137:前線ECC解碼器
140a:前線ECC解碼器
140b:前線ECC解碼器
140n:前線ECC解碼器
142a:前線ECC解碼器
142b:前線ECC解碼器
142n:前線ECC解碼器
150:後續的ECC解碼器
152:第二線ECC解碼器
154:第三線ECC解碼器
156:第四線ECC解碼器
160:動態隨機存取記憶體(DRAM)
200:程序
210:步驟
220:步驟
230:步驟
240:步驟
250:步驟
260:步驟
270:步驟
280:步驟
300:前線ECC解碼器池
310a:前線ECC解碼器
310b:前線ECC解碼器
310b:前線ECC解碼器
310c:前線ECC解碼器
310d:前線ECC解碼器
310f:前線ECC解碼器
320:強碼
330:中等碼A
340:中等碼B
350:弱碼
[圖1a]顯示根據一些實施方式之用於校正來自SSD裝置的非揮發性記憶體裝置的資料的系統的方塊圖;
[圖1b]顯示根據一些實施方式之用於校正來自SSD裝置的非揮發性記憶體裝置的資料的系統的另一方塊圖;
[圖2]顯示根據一些實施方式顯示用於校正來自SSD裝置的非揮發性記憶體裝置的資料的程序的流程圖;以及
[圖3]顯示根據一些實施方式的前線ECC解碼器池的方塊圖。
100a:系統
110:控制器
120a:非揮發性記憶體裝置
120b:非揮發性記憶體裝置
120c:非揮發性記憶體裝置
120d:非揮發性記憶體裝置
120e:非揮發性記憶體裝置
120n:非揮發性記憶體裝置
125a:讀取通道
125b:讀取通道
125c:讀取通道
125d:讀取通道
125e:讀取通道
125n:讀取通道
130:仲裁器
135:前線ECC解碼器
140a:前線ECC解碼器
140b:前線ECC解碼器
140n:前線ECC解碼器
150:後續的ECC解碼器
152:第二線ECC解碼器
154:第三線ECC解碼器
156:第四線ECC解碼器
160:動態隨機存取記憶體(DRAM)
Claims (19)
- 一種用於校正資料的方法,該資料自記憶體系統的多個非揮發性記憶體裝置讀取並儲存在記憶體緩衝器中,該方法包含: 仲裁器經由多個讀取通道接收來自該多個非揮發性記憶體裝置的資料的訊框,其中,所有接收到的該等訊框都經過編碼; 仲裁器在多個匯集式前線錯誤校正碼(ECC)解碼器之間分配該等訊框; 該多個匯集式前線ECC解碼器對該等訊框解碼,以輸出第一解碼訊框;以及 該多個匯集式前線ECC解碼器將該等第一解碼訊框儲存到記憶體緩衝器中。
- 如請求項1所述的方法,進一步包含: 確定該多個匯集式前線ECC解碼器未能對一些該等訊框解碼; 將該一些訊框儲存到該記憶體緩衝器中,以供多個第二線ECC解碼器存取; 該多個第二線ECC解碼器對該等訊框的該一些訊框解碼,以輸出第二解碼訊框;以及 該多個第二線ECC解碼器將該等第二解碼訊框儲存到該記憶體緩衝器中。
- 如請求項1所述的方法,進一步包含: 確定該多個匯集式前線ECC解碼器及多個第二線ECC解碼器未能解碼該等訊框的一些訊框; 將該等訊框的該一些訊框儲存到多個第三線ECC解碼器中; 該多個第三線ECC解碼器對該等訊框的該一些訊框解碼,以輸出第三解碼訊框;以及 該多個第三線ECC解碼器將該第三解碼訊框儲存到該記憶體緩衝器中。
- 如請求項1所述的方法,其中,該多個匯集式前線ECC解碼器在該多個讀取通道的外部。
- 如請求項1所述的方法,進一步包含於該多個匯集式前線ECC解碼器中的其他者正在解碼該等訊框時,更新該多個匯集式前線ECC解碼器中的至少一者。
- 如請求項1所述的方法,其中,基於該等匯集式前線ECC解碼器的可用性、該等訊框的碼資料的類型、以及該等匯集式前線ECC解碼器支援的碼的類型,在該多個匯集式前線ECC解碼器之間分配該等訊框。
- 如請求項6所述的方法,其中, 該多個訊框中的第一訊框具有與由第一匯集式前線ECC解碼器所支援的碼類型相對應的碼資料類型; 該第一匯集式前線ECC解碼器可用;以及 該第一訊框被分配以由該第一匯集式前線ECC解碼器解碼。
- 如請求項1所述的方法,其中 該等訊框包含自該多個讀取通道中的相同讀取通道接收的第一訊框及第二訊框;以及 在該多個匯集式前線ECC解碼器中分配該等訊框包含:將該第一訊框分配給該多個匯集式前線ECC解碼器中的第一者,以及將該第二訊框分配給該多個匯集式前線ECC解碼器中的第二者。
- 如請求項8所述的方法,其中,該多個匯集式前線ECC解碼器中的該第一者及該多個匯集式前線ECC解碼器中的該第二者支援不同的碼。
- 如請求項8所述的方法,其中,該多個匯集式前線ECC解碼器中的該第一者和該多個匯集式前線ECC解碼器中的該第二者支援相同的碼。
- 一種記憶體系統的記憶體控制器,包含: 多個匯集式前線錯誤校正碼(ECC)解碼器,其被配置用以對自多個非揮發性記憶體裝置讀取的資料解碼;以及 多個後續的ECC解碼器,其被配置用以解碼未能由該多個匯集式前線ECC解碼器解碼的資料。
- 如申請專利範圍第11項所述的記憶體控制器,其中,該多個匯集式前線ECC解碼器在該多個讀取通道的外部。
- 如申請專利範圍第11項所述的記憶體控制器,進一步包含可操作地耦合到多個讀取通道的仲裁器,其中,該仲裁器配置用以: 經由該多個讀取通道,接收來自該多個非揮發性記憶體裝置的資料訊框;以及 在該多個匯集式前線ECC解碼器之間分配該等訊框。
- 如請求項13所述的記憶體控制器,其中,該仲裁器基於該匯集式前線ECC解碼器的可用性、該等訊框的碼資料的類型、以及該等匯集式前線ECC解碼器支援的碼的類型,在該多個匯集式前線ECC解碼器之間分配該等訊框。
- 如請求項11所述的記憶體控制器,其中, 該多個匯集式前線ECC解碼器中的至少一者,於該多個匯集式前線ECC解碼器中的其他者正在解碼該等訊框時被更新。
- 一種記憶體系統,包含: 第一多個非揮發性記憶體裝置; 記憶體控制器,包含: 第一多個匯集式前線錯誤校正碼(ECC)解碼器,被配置用以對由該第一多個非揮發性記憶體裝置儲存的資料解碼;以及 多個後續的ECC解碼器,配置用以解碼未能被該第一多個匯集式前線ECC解碼器解碼的資料;以及 第一多個讀取通道,可操作地耦合到該第一多個非揮發性記憶體裝置及該記憶體控制器。
- 如請求項16所述的記憶體系統,其中,該記憶體控制器進一步包含可操作地耦合到該第一多個讀取通道的第一仲裁器,其中,該第一仲裁器被配置用以: 經由該第一多個讀取通道,接收來自該第一多個非揮發性記憶體裝置的資料的第一訊框;以及 在該第一多個匯集式前線ECC解碼器中分配該第一訊框。
- 如請求項16所述的記憶體系統,進一步包含: 第二多個非揮發性記憶體裝置; 第二多個讀取通道,可操作地耦合到該第二多個非揮發性記憶體裝置及該記憶體控制器,其中 記憶體控制器進一步包含第二多個匯集式前線ECC解碼器,其被配置用以對由該第二多個非揮發性記憶體裝置儲存的資料解碼。
- 如請求項18所述的記憶體系統,其中,該記憶體控制器進一步包含第二仲裁器,該第二仲裁器可操作地耦合到該第二多個讀取通道,其中,該第二仲裁器被配置為: 經由該第二多個讀取通道,接收來自該第二多個非揮發性記憶體裝置的資料的第二訊框;以及 在該第二多個匯集式前線ECC解碼器中分配該等第二訊框。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/125,283 | 2018-09-07 | ||
US16/125,283 US10747613B2 (en) | 2018-09-07 | 2018-09-07 | Pooled frontline ECC decoders in memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202034167A true TW202034167A (zh) | 2020-09-16 |
TWI803693B TWI803693B (zh) | 2023-06-01 |
Family
ID=69720796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108132239A TWI803693B (zh) | 2018-09-07 | 2019-09-06 | 用於校正資料的方法、記憶體系統的記憶體控制器及記憶體系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10747613B2 (zh) |
CN (1) | CN112840324B (zh) |
TW (1) | TWI803693B (zh) |
WO (1) | WO2020049500A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200034420A (ko) * | 2018-09-21 | 2020-03-31 | 삼성전자주식회사 | 복수의 에러 정정 기능을 갖는 메모리 장치 및 메모리 시스템과 그 동작 방법 |
US11556420B2 (en) * | 2021-04-06 | 2023-01-17 | Macronix International Co., Ltd. | Managing error correction coding in memory systems |
US11556274B1 (en) | 2021-09-01 | 2023-01-17 | Western Digital Technologies, Inc. | Endurance groups ECC allocation |
US11640267B2 (en) | 2021-09-09 | 2023-05-02 | Western Digital Technologies, Inc. | Method and system for maintenance allocation between NVM groups |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765426B2 (en) * | 2007-06-07 | 2010-07-27 | Micron Technology, Inc. | Emerging bad block detection |
US8046542B2 (en) * | 2007-11-21 | 2011-10-25 | Micron Technology, Inc. | Fault-tolerant non-volatile integrated circuit memory |
WO2011159805A2 (en) | 2010-06-15 | 2011-12-22 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
EP2633409A4 (en) * | 2010-10-27 | 2014-07-23 | Lsi Corp | ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY AND BASED ON DATA STORAGE |
JP2012137994A (ja) | 2010-12-27 | 2012-07-19 | Toshiba Corp | メモリシステムおよびその制御方法 |
US8595415B2 (en) | 2011-02-02 | 2013-11-26 | Micron Technology, Inc. | At least semi-autonomous modules in a memory system and methods |
US8990640B2 (en) * | 2012-11-16 | 2015-03-24 | International Business Machines Corporation | Selective posted data error detection based on request type |
AR099040A1 (es) * | 2014-01-09 | 2016-06-22 | Qualcomm Inc | Sistemas y métodos de comunicación de canal de retorno de la memoria dinámica de acceso aleatorio (dram) |
US9208863B1 (en) * | 2014-05-19 | 2015-12-08 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US9407294B2 (en) * | 2014-07-07 | 2016-08-02 | Kabushi Kaisha Toshiba. | Non-volatile memory controller with error correction (ECC) tuning via error statistics collection |
US10089175B2 (en) * | 2015-12-11 | 2018-10-02 | Marvell World Trade Ltd. | Queuing of decoding tasks according to priority in NAND flash controller |
KR20170076350A (ko) * | 2015-12-24 | 2017-07-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI628660B (zh) * | 2017-09-19 | 2018-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
-
2018
- 2018-09-07 US US16/125,283 patent/US10747613B2/en active Active
-
2019
- 2019-09-05 WO PCT/IB2019/057495 patent/WO2020049500A1/en active Application Filing
- 2019-09-05 CN CN201980066450.1A patent/CN112840324B/zh active Active
- 2019-09-06 TW TW108132239A patent/TWI803693B/zh active
Also Published As
Publication number | Publication date |
---|---|
US10747613B2 (en) | 2020-08-18 |
CN112840324B (zh) | 2024-03-15 |
CN112840324A (zh) | 2021-05-25 |
US20200081773A1 (en) | 2020-03-12 |
WO2020049500A1 (en) | 2020-03-12 |
TWI803693B (zh) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202034167A (zh) | 記憶體系統中的匯集式前線錯誤校正碼解碼器 | |
EP3637421B1 (en) | Storage device and operating method of storage device | |
US10692582B2 (en) | Semiconductor memory device and method of operating the same | |
TWI633557B (zh) | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 | |
US20150113342A1 (en) | Nonvolatile memory device including dummy wordline, memory system, and method of operating memory system | |
US8161354B2 (en) | Flash memory controller having configuring unit for error correction code (ECC) capability and method thereof | |
JP6195854B2 (ja) | 誤り訂正符号の編成を含む装置および方法 | |
TWI446350B (zh) | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 | |
JP2009016028A (ja) | 変更された読み出し電圧を用いるマルチレベルセルを含む不揮発性メモリ装置及びシステム、並びにその動作方法 | |
US11573704B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
US11868652B2 (en) | Utilization based dynamic shared buffer in data storage system | |
US20190065361A1 (en) | Method for writing data into flash memory module and associated flash memory controller and electronic device | |
US20200098438A1 (en) | Memory system | |
US20140289454A1 (en) | Storage device and controller | |
US11086718B2 (en) | Memory system | |
CN111477260B (zh) | 存储设备、存储器控制器和实现平衡块损耗均衡的方法 | |
US20170255502A1 (en) | Storage control apparatus, storage apparatus, and storage control method | |
US10282325B2 (en) | Semiconductor device including a plurality of circuits and a bus connecting the circuits to one another, and method of operating the semiconductor device | |
US11394402B2 (en) | Efficient decoding of n-dimensional error correction codes | |
US9208863B1 (en) | Memory system and method of controlling memory system | |
US10706936B1 (en) | System and method for avoiding back to back program failure | |
KR102290988B1 (ko) | 불휘발성 메모리 모듈 및 그것의 동작 방법 | |
US11853617B2 (en) | Managing write disturb based on identification of frequently-written memory units | |
US11698731B2 (en) | Performance throttling based on power-off time | |
US11861225B2 (en) | Management unit based media management operations in memory devices |