TWI451434B - 在記憶體控制器中之資料完整性及方法 - Google Patents

在記憶體控制器中之資料完整性及方法 Download PDF

Info

Publication number
TWI451434B
TWI451434B TW099104808A TW99104808A TWI451434B TW I451434 B TWI451434 B TW I451434B TW 099104808 A TW099104808 A TW 099104808A TW 99104808 A TW99104808 A TW 99104808A TW I451434 B TWI451434 B TW I451434B
Authority
TW
Taiwan
Prior art keywords
data
error detection
memory
detection circuit
coupled
Prior art date
Application number
TW099104808A
Other languages
English (en)
Other versions
TW201035987A (en
Inventor
Mehdi Asnaashari
Ronald Yamada
Siamack Nemazie
Jui-Yao Ray Yang
Original Assignee
Round Rock Res Llc
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 Round Rock Res Llc filed Critical Round Rock Res Llc
Publication of TW201035987A publication Critical patent/TW201035987A/zh
Application granted granted Critical
Publication of TWI451434B publication Critical patent/TWI451434B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes

Description

在記憶體控制器中之資料完整性及方法
本發明一般而言係關於半導體記憶體裝置、方法及系統,且更特定而言係關於資料完整性。
通常將記憶體裝置作為內部半導體積體電路提供於電腦或其他電子裝置中。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要電力來維持其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他記憶體。非揮發性記憶體可藉由在不被供電時保持所儲存之資訊而提供持續資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)及相變隨機存取記憶體(PCRAM)以及其他記憶體。
記憶體裝置可組合在一起以形成一固態驅動器(SSD)。一SSD可包含非揮發性記憶體(例如NAND快閃記憶體及NOR快閃記憶體)及/或可包含揮發性記憶體(例如DRAM及SRAM)以及各種其他類型之非揮發性及揮發性記憶體。
可使用一SSD來替換硬碟驅動器作為一電腦之主要儲存裝置,此乃因該SSD可在效能、大小、重量、耐用性、操作溫度範圍及功率消耗方面具有優於硬驅動器之優點。舉例而言,SSD在與磁碟驅動器相比時因其缺乏移動部件而可具有優越效能,此缺乏移動部件可避免與磁碟驅動器相關聯之尋覓時間、延時及其他機電延遲。SSD製造商可使用非揮發性快閃記憶體來形成可不使用一內部電池供應之快閃記憶體SSD,因此允許驅動器更通用且更緊湊。
一SSD可包含一個或多個記憶體裝置,例如,一個或多個記憶體晶片。如熟習此項技術者將瞭解,一記憶體晶片可包含一個或多個晶粒。每一晶粒可包含位於其上之一個或多個記憶體陣列及周邊電路。一記憶體陣列可包含一個或多個平面,其中每一平面包含一個或多個記憶體胞實體區塊。每一實體區塊可包含可儲存一個或多個資料磁區之一個或多個記憶體胞頁。
SSD可與具有一串列介面(例如通用串列匯流排(USB)、串列進階附接技術(SATA)或高速周邊組件互連(PCIe)以及其他串列介面)之一主機系統介接。諸如USB、SATA及PCIe之串列介面可具有內建至各別介面之架構之鏈路層或傳輸層中之錯誤偵測機制(例如,循環冗餘檢查(CRC))。CRC可包含在資料自一傳輸器至一接收器之傳輸期間偵測由雜訊或其他減損引起之錯誤之存在的能力。CRC資料產生可係基於一特定介面所支援之一訊框結構。
舉例而言,一SATA訊框結構可包含一訊框開始(SOF),接著係一訊框資訊結構(FIS),接著係CRC資料,且接著係一訊框結束(EOF)。SATA可使用在FIS之內容上計算之CRC資料之32個位元。用於CRC資料之計算中之一32位元CRC多項式之一實例係:X32 +X26 +X23 +X22 +X16 +X12 +X11 +X10 +X8 +X7 +X5 +X4 +X2 +X+1。在FIS含有奇數個字(例如,16個位元段)的情況下,給FIS之最後一個字填補零以形成一全雙字(雙字(dword)),例如32個位元。一SATA訊框可包含2064個雙字,該2064個雙字包含FIS及CRC資料,其中FIS有效負載可包含2048個雙字(8192個位元組)。然而,該有效負載可包含更少資料。
如熟習此項技術者將瞭解,邏輯區塊定址係可由一主機用來識別一資訊磁區之一方案,例如,每一磁區可對應於一唯一邏輯區塊位址(LBA)。一磁區可係一儲存磁碟區之最小可定址部分。作為一實例,一資料磁區可係若干資料位元組,例如,512個位元組。由於一串列主機介面(例如,一SATA介面)處之每一有效負載未必包含相同數目個位元組,且由於一大容量儲存裝置之一串列主機介面處之有效負載可屬於不同單元,因此CRC資料可不傳播經過該主機介面,例如,該主機介面之鏈路或傳輸層。
本發明包含用於記憶體控制器中之資料完整性之方法、裝置及系統。一項記憶體控制器實施例包含一主機介面及耦合至該主機介面之第一錯誤偵測電路。該記憶體控制器可包含一記憶體介面及耦合至該記憶體介面之第二錯誤偵測電路。該第一錯誤偵測電路可經組態以針對自該主機介面接收之資料計算錯誤偵測資料並檢查傳輸至該主機介面之資料之完整性。該第二錯誤偵測電路可經組態以針對傳輸至該記憶體介面之資料及第一錯誤校正資料計算錯誤校正資料並檢查自該記憶體介面接收之資料及第一錯誤校正資料之完整性。
在本發明之以下詳細說明中,參考形成本發明之一部分之隨附圖式,且圖式中以圖解說明之方式顯示可如何實踐本發明之一項或多項實施例。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情形下作出處理程序、電及/或結構改變。如本文中所使用,標號「N」(特定而言係關於圖式中之參考編號)指示本發明之一項或多項實施例可包含如此標示之若干特定特徵。該等標號可表示相同數目或不同數目個特定特徵。
本文中之圖遵循以下之一編號慣例:其中第一個數位或前幾個數位對應於圖式圖編號且剩餘數位識別圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數位來識別。舉例而言,110可指代圖1中之元件「10」,且可將圖2中之一類似元件指代為210。如將瞭解,可添加、更換及/或消除本文中各種實施例中所顯示之元件以便提供本發明之若干額外實施例。另外,如將瞭解,圖中所提供之元件之比例及相對比例尺意欲圖解說明本發明之實施例且不應視為一限定意義。
圖1係根據包含本發明之一項或多項實施例之一記憶體系統120之一計算系統100之一功能方塊圖。在圖1中所圖解說明之實施例中,記憶體系統120(例如,一固態驅動器(SSD))可包含一記憶體控制器101、一實體介面103及一個或多個固態記憶體裝置130-1、...、130-N(例如,NAND快閃記憶體裝置)。如圖1中所圖解說明,記憶體控制器101可耦合至實體介面103且耦合至固態記憶體裝置130-1、...、130-N。
實體介面103可用於在記憶體系統120與另一裝置(例如一主機系統102)之間傳遞資訊。主機系統102可包含一記憶體存取裝置,例如一處理器。熟習此項技術者將瞭解,「一處理器」可意指一個或多個處理器,例如,一平行處理系統、若干共處理器等。主機系統之實例包含膝上型電腦、個人電腦、數位相機、數位記錄及回放裝置、行動電話、PDA、記憶體讀卡器、介面集線器等。對於一項或多項實施例,實體介面103可係呈一標準化實體介面之形式。舉例而言,當記憶體系統120在一計算系統100中用於資料儲存時,實體介面103可係一串列進階附接技術(SATA)、高速周邊組件互連(PCIe)或一通用串列匯流排(USB)以及其他實體介面。然而,一般而言,實體介面103可提供一實體連接以用於在記憶體系統120之控制器101之一主機介面(例如圖2中之主機介面210)與具有用於實體介面103之相容接納器之一主機系統102之間傳遞控制、位址、資料及其他信號。
記憶體控制器101可與固態記憶體裝置130-1、...、130-N通信以讀取、寫入及擦除資料,以及進行其他作業。記憶體控制器101可具有可係一個或多個積體電路及/或離散組件之電路。對於一項或多項實施例,記憶體控制器101中之電路可包含用於控制跨越固態記憶體裝置130-1、...、130-N之存取之控制電路及用於在一主機系統102與記憶體系統120之間提供一轉譯層之電路。因此,一記憶體控制器可選擇性地耦合一固態記憶體裝置130-1、...、130-N之一I/O連接(圖1中未顯示)以在適當時間於適當I/O連接處接收適當信號。類似地,一主機系統102與記憶體系統120之間的通信協定可不同於存取一固態記憶體裝置130-1、...、130-N所需之通信協定。接著,記憶體控制器101可將自一主機接收之命令轉譯成適當命令以達成對一固態記憶體裝置130-1、...、130-N之所期望存取。
圖1之實施例可包含額外電路,為不使本發明之實施例模糊未圖解說明該額外電路。舉例而言,記憶體系統120可包含用以鎖存經由I/O電路在I/O連接上提供之位址信號之位址電路。位址信號可由一列解碼器及一行解碼器接收並解碼以存取固態記憶體裝置130-1、...、130-N。熟習此項技術者將瞭解,位址輸入連接之數目可相依於固態記憶體裝置130-1、...、130-N之密度及架構。
圖2係包含根據本發明之一項或多項實施例之一記憶體控制器201之一系統200之一功能方塊圖。控制器201可類似於圖1中所圖解說明之控制器101。在一項或多項實施例中,控制器201可係一記憶體系統(例如一SSD)之一組件。熟習此項技術者將瞭解,除圖2中所圖解說明之彼等電路及組件以外亦可提供額外電路及組件,且已減少圖2之控制器細節以便易於圖解說明。
如圖2中所顯示,記憶體控制器201可耦合至一個或多個固態記憶體裝置230。固態記憶體裝置230可類似於圖1中所圖解說明之固態記憶體裝置130-1、...、130-N。控制器201可包含一前端部分204及一後端部分206。該記憶體控制器可包含耦合於一主機介面210與資料傳送電路(例如,一直接記憶體存取(DAM)模組214)之間的若干前端組件。該記憶體控制器亦可包含耦合於直接記憶體存取(DMA)模組214與一記憶體介面(例如,錯誤偵測電路/記憶體介面(I/F)222之一記憶體介面組件)之間的若干後端組件。在一項或多項實施例中,錯誤偵測電路/記憶體介面222之錯誤偵測電路組件可係一錯誤校正碼(ECC)引擎。一般而言,記憶體控制器201可憑藉前端204處理自一主機系統202(例如,圖1中之主機系統102)接收或傳送至該主機系統之命令及資料。一般而言,記憶體控制器201可憑藉後端206管理與固態記憶體裝置230之通信以在固態記憶體裝置230上讀取、寫入及擦除資料以及進行其他作業,然而,控制器201可在前端204及後端206中之任一者或兩者上處置命令處理及記憶體通信管理之某些態樣。如圖2中所圖解說明,主機介面210及DMA模組214可係前端組件。
如圖2中所顯示,前端部分204可包含一主機介面210,其可耦合至一主機系統202,例如,圖1中之主機系統102。主機介面210可經組態以自該主機系統接收資料。自該主機介面接收之資料可係包含若干資料磁區之一資料有效負載。在一項或多項實施例中,自該主機介面接收之資料可係串流式資料。主機介面210可經由包含一實體層205、一鏈路層207及一傳輸層209之若干層與主機系統202介接。熟習此項技術者將瞭解,可藉由一介面標準(例如SATA、PCIe、USB等)界定用於一特定主機介面之該若干層。如本文中所使用,一傳輸層可指示作為一SATA標準之部分之至少一傳輸層或作為一PCIe標準之部分之一異動層。熟習此項技術者將瞭解,根據一SATA標準之一傳輸層可類似於根據一PCIe標準之一異動層。主機介面210可耦合至一記憶體系統(例如,一SSD)上之一實體介面(例如,圖1中所圖解說明之實體介面103)以與一主機系統202通信。為便於圖解說明,未在圖2中顯示此細節。
主機介面210可與一DMA模組214及前端錯誤偵測電路(例如,循環冗餘檢查(CRC)引擎212)耦合。雖然圖解說明為「CRC引擎」212,但錯誤偵測電路可提供除循環冗餘檢查以外的功能。舉例而言,錯誤偵測電路可包含重複方案、同位方案、檢查和、基於漢明距離之檢查、雜湊函數、水平及垂直冗餘檢查、極性方案及/或錯誤校正方案(例如ECC)以及其他方案。在一項或多項實施例中,主機介面210可與前端CRC引擎212直接耦合且可與DAM模組214直接耦合。
在一項或多項實施例中,前端CRC引擎212可藉由一鏈路層207及/或一傳輸層209耦合至主機介面210,且因此耦合至主機系統。前端錯誤偵測電路(例如,CRC引擎212)可經組態以(例如)在資料係位於一記憶體系統(例如圖1中之記憶體系統120)中時偵測該資料中之錯誤。舉例而言,前端CRC引擎212可計算對應於自鏈路層207及/或傳輸層209接收(例如,作為一寫入作業之部分)之資料(例如,諸如一DMA有效負載之一資料有效負載之一磁區)之錯誤校正資料(例如,CRC資料)。在一項或多項實施例中,前端CRC引擎212可在一逐磁區基礎上計算CRC資料。在一項或多項實施例中,前端CRC引擎212可藉由一鏈路層207及/或一傳輸層209耦合至主機介面210並自鏈路層207及/或傳輸層209接收若干資料磁區(例如,一DMA有效負載)。在一項或多項實施例中,前端CRC引擎212可僅自鏈路層207或僅自傳輸層209接收該若干資料磁區。然而,實施例係如此限制的。可在一傳輸層209(對於PCIe類型介面)處或在一鏈路層207(對於SATA類型介面)處自傳送至一記憶體控制器201之資料剝除可能已由一主機系統202針對該資料產生之CRC資料。然而,根據本發明之一項或多項實施例,前端CRC引擎212可每自其可耦合至的一主機介面210接收之資料磁區地計算並檢查CRC資料。
DMA模組214可耦合至一後端資料緩衝器218及一後端錯誤偵測記憶體(例如,CRC記憶體216)。後端資料緩衝器218可耦合至ECC引擎/記憶體介面222。後端資料緩衝器218可經組態以緩衝在一寫入作業期間自DMA模組214為ECC引擎/記憶體介面222接收之一DMA有效負載之至少一部分(例如,若干資料磁區)。後端資料緩衝器218可經組態以緩衝在一讀取作業期間自ECC引擎/記憶體介面222接收之若干資料磁區。後端資料緩衝器218及後端CRC記憶體216可耦合至錯誤偵測電路(例如,一ECC引擎及記憶體介面)。在一項或多項實施例中,且如圖2之實施例中所圖解說明,該ECC引擎與記憶體介面可耦合在一起作為一個組件(例如,「ECC引擎/記憶體介面」222)。本文中對一ECC引擎/記憶體介面之共同提及並不排除具有作為單獨組件之錯誤偵測電路及記憶體介面之實施例。同樣,本文中對任一組件之個別提及並不排除其中包含錯誤偵測電路與一記憶體介面作為一個組件之實施例。
後端CRC記憶體216可經組態以儲存由前端CRC引擎212計算之CRC資料。後端CRC記憶體216可耦合至一ECC引擎/記憶體介面222且經組態以自ECC引擎/記憶體介面222之記憶體介面部分接收並儲存CRC資料,例如,先前已儲存於固態記憶體裝置230中之CRC資料。後端資料緩衝器218可經組態以跨越DMA模組214將自一ECC引擎/記憶體介面222接收之若干資料磁區傳送至前端CRC引擎212。前端CRC引擎212可耦合至ECC引擎/記憶體介面222之錯誤偵測電路部分,例如,經由DMA模組214。後端CRC記憶體216可經組態以跨越DMA模組214將對應於自ECC引擎/記憶體介面222接收之該若干資料磁區之CRC資料傳送至前端CRC引擎212。在此一情形下,前端CRC引擎212可經組態以針對自DMA模組214接收之一(例如,每一)資料磁區計算CRC資料。接著,該前端CRC引擎可比較針對自DMA模組214接收之資料磁區之所計算之CRC資料與經由DMA模組214自後端CRC記憶體216接收之CRC資料,例如,以在跨越主機介面210將自DMA模組214接收之資料磁區傳送至一主機系統之前驗證該資料磁區之完整性。可在標題為「Memory Controller」之具有至少一個共同發明人且具有代理檔案號1002.0390001之共同受讓之美國專利申請案第________號中找到關於一DMA模組之作業之額外細節。
ECC引擎/記憶體介面222可耦合至固態記憶體裝置230。在一項或多項實施例中,ECC引擎/記憶體介面222可經組態以將CRC資料(例如,自一後端CRC記憶體216接收之CRC資料)附加至一對應資料磁區。ECC引擎/記憶體介面222之ECC引擎部分可經組態以偵測(例如)一資料磁區中之資料中之錯誤。在一項或多項實施例中,ECC引擎/記憶體介面222之ECC引擎部分可經組態以在資料係位於一記憶體系統(例如圖1中之記憶體系統120)中時偵測及/或校正該資料中之錯誤。舉例而言,ECC引擎/記憶體介面222之ECC引擎部分可僅針對資料及/或針對資料及所附加錯誤偵測(例如,CRC)資料計算錯誤校正資料(例如,ECC資料)。在一項或多項實施例中,ECC引擎/記憶體介面222之ECC引擎部分可經組態以在一逐磁區基礎上計算ECC資料。ECC引擎/記憶體介面222可經組態以將ECC資料附加至一對應資料磁區。在一項或多項實施例中,ECC引擎/記憶體介面222之ECC引擎部分可經組態以針對一對應資料磁區以及所附加CRC資料(例如,由前端CRC引擎212計算之CRC資料)計算ECC資料。在讀取作業期間,ECC引擎/記憶體介面222之ECC引擎部分可經組態以在若干資料磁區係位於後端資料緩衝器218中時校正該若干資料磁區中之錯誤。ECC引擎/記憶體介面222之ECC引擎部分可經組態以在CRC資料係位於後端CRC記憶體216中時校正該CRC資料中之錯誤。實施例並不限於校正此等特定位置中之錯誤。
在一項或多項實施例中,記憶體控制器201可經組態以針對一寫入作業跨越ECC引擎/記憶體介面222將若干資料磁區、對應所計算之CRC資料及對應ECC資料或其一不同組合傳送(例如)至固態記憶體裝置230。亦即,該控制器可經組態以將一資料磁區、對應CRC資料及對應ECC資料儲存於固態記憶體裝置230中之一位置中。
一項或多項實施例可包含(例如)結合一寫入作業憑藉一主機介面210之一鏈路層207及/或一傳輸層209自一主機系統202接收若干資料磁區之控制器201。可經由一主機介面210將該若干資料磁區傳送至一前端CRC引擎212及一DMA模組214。在一項或多項實施例中,可由前端CRC引擎212與DMA模組214並行地接收該若干資料磁區。前端CRC引擎212可計算對應於該若干資料磁區中之每一者之CRC資料,例如,每一資料磁區可對應於唯一CRC資料。DMA模組214可將來自CRC引擎212之CRC資料傳送至後端CRC記憶體216。前端CRC引擎212可耦合至後端CRC記憶體216,例如,經由DMA模組214。在一項或多項實施例中,後端CRC記憶體216可儲存該CRC資料。後端CRC記憶體216可儲存一個以上唯一CRC資料,其中每一唯一CRC資料可對應於一特定資料磁區。DMA模組214可將該若干資料磁區傳送至後端資料緩衝器218。ECC引擎/記憶體介面222可傳送來自後端資料緩衝器218之該若干資料磁區及來自後端CRC記憶體216之對應CRC資料、針對該若干資料磁區及該對應CRC資料中之每一者計算唯一ECC資料、將ECC資料附加至對應資料磁區並將資料磁區、CRC資料及ECC資料儲存於一個或多個固態記憶體裝置230中。
如上文所述,可按雙字(32位元)數量在一訊框資訊結構(FIS)之內容上計算CRC資料,亦有其他CRC計算方法。然而,自一主機系統202接收之一資料有效負載可包含一資料有效負載之若干磁區,例如,512個位元組部分。根據某些先前途徑,可針對該資料有效負載整體而非針對該資料有效負載中所包含之每一資料磁區計算CRC資料。亦即,即使CRC資料傳播經過鏈路層207或傳輸層209,該CRC資料亦可不適用於一特定資料磁區,此至少部分地係由於資料可係按不同於將其寫入至一記憶體裝置(例如,圖1中之記憶體裝置130-1)及/或自該記憶體裝置讀取其所按的數量的數量傳送至一記憶體系統(例如,圖1中之記憶體系統120)及/或自該記憶體系統傳送。因此,針對與一讀取及/或寫入作業相關聯之一資料有效負載使用與針對若干資料磁區相同之CRC資料,即使對於相同資料,亦可不提供該若干資料磁區之資料完整性。
相比而言,根據本發明之一項或多項實施例,在一逐磁區基礎上針對每一資料磁區計算CRC資料,例如,可針對每一資料磁區計算唯一CRC資料。舉例而言,若一資料有效負載包括2048個位元組,則可針對四個512位元組資料磁區中之每一者計算CRC資料。可自控制器201在前端204處(例如,在主機介面210處)自主機系統202接收該若干磁區之點至其中將該若干磁區自後端206傳送至固態記憶體裝置230之點提供該若干磁區之資料完整性。提供資料完整性可包含自主機介面210至ECC引擎/記憶體介面222及/或至固態記憶體裝置230維持一資料磁區之相同CRC資料。
在一項或多項實施例中,ECC引擎/記憶體介面222可(例如)結合一讀取作業自一個或多個固態記憶體裝置230接收若干資料磁區、該若干資料磁區所對應之第一CRC資料及ECC資料。ECC引擎/記憶體介面222可將該若干資料磁區儲存於後端資料緩衝器218中且將該若干資料磁區所對應之CRC資料儲存於後端CRC記憶體216中。可憑藉一ECC引擎/記憶體介面222之一ECC引擎部分對該若干資料磁區及該若干資料磁區所對應之第一CRC資料以及ECC資料進行錯誤檢查。可在該CRC資料係儲存於後端CRC記憶體216中時校正由ECC引擎/記憶體介面222之ECC引擎部分在該CRC資料中識別之一個或多個錯誤。可在該若干資料磁區係緩衝於後端資料緩衝器218中時,校正由ECC引擎/記憶體介面222之ECC引擎部分在該若干資料磁區中識別之一個或多個錯誤。在錯誤校正之後,DMA模組214可接收並將該若干資料磁區及該若干資料磁區所對應之CRC資料傳送至前端CRC引擎212。前端CRC引擎212可針對該若干所傳送資料磁區計算第二CRC資料且比較該第一CRC資料與該對應第二CRC資料,以驗證該若干資料磁區之完整性。在比較該第一CRC資料與該第二CRC資料之後,可跨越主機介面210之一傳輸層209將該若干資料磁區傳送(例如)至曾請求資料(例如,該若干所讀取之資料磁區)之一主機系統202。在一項或多項實施例中,可跨越主機介面210傳送該若干資料磁區而不傳送該第一CRC資料或該第二CRC資料。在一項或多項實施例中,ECC引擎/記憶體介面222可自該若干資料磁區移除ECC資料且將該若干資料磁區與第一CRC資料並行地傳送至一前端CRC引擎212。
根據本發明之一項或多項實施例,例如上文所闡述之讀取作業,可提供該若干資料磁區之資料完整性。亦即,可自控制器201之後端206自固態記憶體裝置230接收該若干磁區(例如,在ECC引擎/記憶體介面222處)之點至其中跨越主機介面210傳送該若干磁區(例如,自前端204至一主機系統202)之點提供該若干資料磁區之資料完整性。提供資料完整性可包含自固態記憶體裝置230至主機介面210維持相同CRC資料。
圖3係包含根據本發明之一項或多項實施例之一記憶體控制器301之一系統300之一功能方塊圖。控制器301可類似於圖1中所圖解說明之控制器101。在一項或多項實施例中,控制器301可係一記憶體系統(例如,一SSD)之一組件。熟習此項技術者將瞭解,除圖3中所圖解說明之彼等電路及組件以外亦可提供額外電路及組件,且已減少圖3之控制器細節以便易於圖解說明。
圖3中所圖解說明之實施例包含可類似於圖2中所圖解說明之彼等組件的組件,包含具有實體層305、鏈路層307及傳輸層309之主機介面310以及前端錯誤偵測電路(例如,CRC引擎312)及資料傳送電路(例如,DMA模組314)。然而,在一項或多項實施例中,主機介面310可經由一前端主機緩衝器324(例如,如所顯示之FIFO 324)及加密電路(例如,進階加密標準(AES)引擎326)耦合至該DMA模組。雖然圖解說明為「AES引擎」326,但本發明之一項或多項實施例可使用其他加密形式。FIFO 324可經組態以緩衝一主機介面310與一AES引擎326之間的一DMA有效負載。雖然在圖3中未圖解說明,但AES引擎326可包含或耦合至與FIFO 324分開之一AES緩衝器。
如圖3中所圖解說明,AES引擎326可經組態以接收若干資料磁區,例如,一資料有效負載(DMA有效負載),例如,自由控制器301接收之若干資料封包獲得之一資料串流。在加密之前,該若干資料磁區可係純文字(P.T.)。AES引擎326可經配置及經組態以視情況處理該若干資料磁區以向DMA模組314提供一經加密輸出,例如,密文(C.T.)。在一項或多項實施例中,AES引擎326可視情況處理該若干資料磁區,此意指該AES引擎可將該若干資料磁區自純文字加密成密文,或AES引擎326可在不加密之情形下將該若干資料磁區傳送至DMA模組314,例如,以純文字形式。
在一項或多項實施例中,可由前端CRC引擎312與前端主機緩衝器324(例如,如所顯示之FIFO 324)並行地接收經由主機介面310自一主機系統接收之若干資料磁區。可將該若干資料磁區自主機緩衝器324傳送至AES引擎326,其中可將該若干資料磁區自純文字加密成密文。在加密之後,可將該若干資料磁區自AES引擎326傳送至一DMA模組314以供進一步處理。加密引擎之作業之額外實例更詳細地闡述於標題為「Parallel Encryption/Decryption」之具有至少一個共同發明人之共同受讓之美國專利申請案第12/333,822號中。
DMA模組314將前端304電路有效地耦合至後端306電路。在一項或多項實施例中,控制器301之後端部分306可包含一個以上後端通道。在圖3中所圖解說明之實施例中,控制器301包含若干後端通道319-1、...、319-N。每一後端通道319-1、...、319-N可包含一通道處理器332-1、...、332-N及通道記憶體334-1、...、334-N。後端通道處理器332-1、...、332-N及記憶體334-1、...、334-N可耦合至DMA模組314且耦合至後端通道DMA模組328-1、...、328-N。每一後端通道319-1、...、319-N可包含後端通道資料傳送電路(例如,通道DMA模組328-1、...、328-N),其可耦合至DMA模組314。DMA模組314可經組態以將與一DMA有效負載相關聯之命令引導至一各別後端通道處理器(例如,後端通道處理器332-1)且將與一DMA有效負載相關聯之資料引導至一各別後端通道DMA模組(例如,後端通道DMA模組328-1)。通道處理器之實例性作業更詳細地闡述於標題為「Modifying Commands」之具有至少一個共同發明人之共同受讓之美國專利申請案第12/351,206號中。
控制器301之後端部分306可包含類似於圖2中所圖解說明之彼等組件的組件。舉例而言,每一後端通道319-1、...、319-N可包含一後端資料緩衝器318-1、...、318-N、後端錯誤偵測記憶體(例如,CRC記憶體316-1、...、316-N)及ECC引擎/記憶體介面322-1、...、322-N。在一項或多項實施例中,且如圖3之實施例中所圖解說明,該ECC引擎與記憶體介面可耦合在一起作為一個組件,例如「ECC引擎/記憶體介面」322。在一項或多項實施例中,該ECC引擎與記憶體介面可係單獨組件。如圖3中所圖解說明,後端資料緩衝器318-1、...、318-N可耦合於後端通道DMA模組328-1、...、328-N與ECC引擎/記憶體介面322-1、...、322-N之間。此外,後端CRC記憶體316-1、...、316-N可耦合於DMA模組314與ECC引擎/記憶體介面322-1、...、322-N之間。如圖3中所顯示,一特定記憶體裝置、晶片、陣列等可對應於一特定通道。舉例而言,固態記憶體裝置330-1可對應於通道319-1。
圖4係包含根據本發明之一項或多項實施例之一記憶體控制器401之一系統400之一功能方塊圖。控制器401可類似於圖1中所圖解說明之控制器101。在一項或多項實施例中,控制器401可係一記憶體系統(例如,一SSD)之一組件。熟習此項技術者將瞭解,除圖4中所圖解說明之彼等電路及組件以外亦可提供額外電路及組件,且已減少圖4之控制器401之細節以便易於圖解說明。
圖4中所圖解說明之實施例包含可類似於圖3中所圖解說明之彼等組件的組件,包含控制器401之前端404組件,例如包含實體層405、鏈路層407及傳輸層409之主機介面410以及前端錯誤偵測電路(例如,CRC引擎412-F)及資料傳送電路(例如,DMA模組414)。控制器401亦包含可類似於圖3中所圖解說明之彼等後端組件的若干後端406組件,例如後端通道419-1、...、419-N,包含後端通道處理器432-1、...、432-N及記憶體434-1、...、434-N、後端通道資料傳送電路(例如,通道DMA模組428-1、...、428-N)、後端資料緩衝器418-1、...、418-N、錯誤偵測電路(例如,ECC引擎/記憶體介面422-1、...、422-N)及後端錯誤偵測記憶體(例如,CRC記憶體416-1、...、416-N)。在一項或多項實施例中,且如圖4中所圖解說明,該ECC引擎與記憶體介面可耦合在一起作為一個組件,例如「ECC引擎/記憶體介面」422。在一項或多項實施例中,該ECC引擎與記憶體介面可係單獨組件。如圖4中所圖解說明,每一通道419-1、...、419-N可藉由ECC引擎/記憶體介面422-1、...、422-N耦合至一個或多個固態記憶體裝置430-1、...、430-N。
然而,在一項或多項實施例中,後端通道419-1、...、419-N可包含一後端錯誤偵測電路,例如,耦合至後端CRC記憶體416-1、...、416-N之後端CRC引擎412-B1、...、412-BN。一後端CRC引擎412-B1、...、412-BN可經組態以針對對應資料(例如,一對應資料磁區)計算錯誤偵測資料(例如,「第二」CRC資料)。在一項或多項實施例中,該對應資料可係一DMA有效負載之至少一部分。前端CRC引擎412-F可針對一資料磁區計算「第一」CRC資料。一後端CRC引擎412-B1、...、412-BN可經組態以比較該第一CRC資料與該第二CRC資料,以檢查及/或驗證該資料磁區之完整性。舉例而言,DMA模組414可耦合至前端CRC引擎412-F且耦合至後端CRC記憶體416-1、...、416-N。DMA模組414可經組態以將該第一CRC資料傳送至一後端CRC記憶體416-1、...、416-N。接著,一後端CRC引擎412-B1、...、412-BN可比較自一後端CRC記憶體416-1、...、416-N接收之第一CRC資料與所計算之第二CRC資料。雖然相對於圖4(其圖解說明包含多個後端通道419-1、...、419-N之一控制器401)揭示了一後端CRC引擎412-B1、...、412-BN,但實施例並不受如此限制。舉例而言,本發明之一項或多項實施例可包含具有一單個後端通道(例如,如相對於圖2中之後端206所圖解說明)之一記憶體控制器,該單個後端通道包含一後端CRC引擎。
一後端CRC引擎412-B1、...、412-BN可耦合至一ECC引擎/記憶體介面422-1、...、422-N。在一項或多項實施例中,後端CRC引擎412-B1、...、412-BN可直接耦合至ECC引擎/記憶體介面422-1、...、422-N。一ECC引擎/記憶體介面422-1、...、422-N之ECC引擎部分可經組態以針對一資料磁區(例如,自一後端資料緩衝器418-1、...、418-N接收之一DMA有效負載之一部分)計算ECC資料。在一項或多項實施例中,控制器401可經組態以跨越ECC引擎/記憶體介面422-1、...、422-N傳送該資料磁區及對應ECC資料而不傳送第一或第二對應CRC資料。亦即,在一項或多項實施例中,可將該資料磁區及對應ECC資料儲存於固態記憶體裝置430-1、...、430-N中而不將對應CRC資料儲存於固態記憶體裝置430-1、...、430-N中。在一項或多項實施例中,控制器401可經組態以在一後端CRC引擎412-B1、...、412-BN驗證該資料磁區之完整性時將該資料磁區及對應ECC資料儲存於固態記憶體裝置430-1、...、430-N之一位置中而不將對應CRC資料儲存於該位置中。亦即,若一後端CRC引擎412-B1、...、412-BN不驗證該資料磁區之完整性,則在一項或多項實施例中,控制器401可不將該資料磁區儲存於固態記憶體裝置430-1、...、430-N中。
一項或多項實施例可包含(例如)結合一寫入作業憑藉前端CRC引擎412-F自一主機介面410之一鏈路層407及/或一傳輸層409接收若干資料磁區。前端CRC引擎412-F可經組態以針對每一資料磁區計算第一CRC資料。因此,對於該寫入作業,可在控制器401之前端404上維持該若干資料磁區之資料完整性,此至少部分地係由於在對該若干資料磁區執行其他作業之前或與對該若干資料磁區執行其他作業分開地針對該若干資料磁區計算CRC資料。可將該第一CRC資料傳送至DMA模組414。
DMA模組414可將該若干資料磁區傳送至一後端通道DMA模組428-1、...、428-N。在一項或多項實施例中,DMA模組414可將該若干資料磁區傳送至對應於與該若干資料磁區相關聯之一記憶體位址的一後端通道419-1、...、419-N,例如,耦合至對應於該記憶體位址的固態記憶體裝置之通道。舉例而言,當與該若干資料磁區相關聯之一記憶體位址對應於一特定固態記憶體裝置(例如,430-1)時,該DMA模組可將該若干資料磁區傳送至通道419-1上之後端通道DMA模組428-1。可將該若干資料磁區自後端通道DMA模組428-1、...、428-N傳送至一後端資料緩衝器418-1、...、418-N。在將於一寫入作業期間自後端通道DMA模組428-1、...、428-N接收之資料磁區傳送至ECC引擎/記憶體介面422-1、...、422-N及/或後端CRC引擎412-B1、...、412-BN之前,後端資料緩衝器418-1、...、418-N可緩衝該若干資料磁區。在一項或多項實施例中,可將該若干資料磁區自一後端資料緩衝器418-1、...、418-N並行地傳送至後端CRC引擎412-B1、...、412-BN及一ECC引擎/記憶體介面422-1、...、422-N。
DMA模組414可將第一CRC資料傳送至後端CRC記憶體416-1、...、416-N。在一項或多項實施例中,DMA模組414可將第一CRC資料傳送至對應於與針對其計算該第一CRC資料之資料磁區相關聯之一記憶體位址之一後端通道。在後端CRC引擎412-B1、...、412-BN計算第二CRC資料之前,可將該第一CRC資料儲存於後端CRC記憶體416-1、...、416-N中。一後端CRC引擎412-B1、...、412-BN可針對該資料磁區計算第二CRC資料且比較該第一CRC資料與該第二CRC資料。在該比較之後,可將該資料磁區儲存於一個或多個固態記憶體裝置430-1、...、430-N中。在一項或多項實施例中,一ECC引擎/記憶體介面422-1、...、422-N之一ECC引擎部分可在比較第一CRC資料與第二CRC資料之後但在將該資料磁區儲存於一固態記憶體裝置430-1、...、430-N中之前針對該資料磁區計算ECC資料。在將該資料磁區儲存於一固態記憶體裝置430-1、...、430-N中之前將該ECC資料附加至該資料磁區,以使得將該資料磁區及該ECC資料儲存於一固態記憶體裝置430-1、...、430-N中但不將該第一CRC資料及該第二CRC資料儲存於該固態記憶體裝置中。此等實施例可係有利的,此至少部分地係由於(例如)當不將CRC資料儲存於固態記憶體裝置430-1、...、430-N中時儲存於該等固態記憶體裝置中之資訊量之一減少。
在一項或多項實施例中,若後端CRC引擎412-B1、...、412-BN驗證該若干資料磁區之完整性(例如,若第一CRC資料匹配第二CRC資料),則僅將該若干資料磁區自ECC引擎/記憶體介面422-1、...、422-N傳送至固態記憶體裝置430-1、...、430-N。因此,對於該寫入作業,可在控制器401之後端406上維持該若干資料磁區之資料完整性,此至少部分地係由於在藉由DMA模組414及後端通道DMA模組428-1、...、428-N進行處理之後針對該若干資料磁區計算第二CRC資料並比較該第二CRC資料與第一CRC資料(其係在對該若干資料磁區執行其他作業之前或與對該若干資料磁區執行其他作業分開地計算的)。因此,本發明之一項或多項實施例可在控制器401上提供該若干資料磁區之資料完整性。
一個或多個記憶體系統作業實施例可包含一讀取作業,其包含自一個或多個固態記憶體裝置430-1、...、430-N讀取若干資料磁區及對應ECC資料。可憑藉一ECC引擎/記憶體介面422-1、...、422-N之一ECC引擎部分對該若干資料磁區進行錯誤檢查。在憑藉ECC引擎/記憶體介面422-1、...、422-N之ECC引擎部分進行錯誤檢查之後,可自該若干資料磁區移除ECC資料。一後端CRC引擎412-B1、...、412-BN可針對該若干資料磁區中之每一者計算CRC資料。可將該若干資料磁區及該CRC資料(例如)自主機緩衝器424及DMA模組414並行地分別傳送至前端CRC引擎412-F。前端CRC引擎412-F可針對該若干資料磁區中之每一者計算CRC資料且將其與藉由後端CRC引擎所計算之CRC資料相比較,以檢查該若干資料磁區之完整性。可在該比較之後跨越主機介面410之一傳輸層409傳送該若干資料磁區。
因此,對於該讀取作業,可自控制器401之後端406至前端404維持若干資料磁區之資料完整性,此至少部分地係由於在自一ECC引擎/記憶體介面422-1、...、422-N傳送該若干資料磁區之後針對該若干資料磁區中之每一者計算CRC資料。此外,將先前所計算之CRC資料傳送至控制器401之前端404以供與針對一特定資料磁區新計算之CRC資料相比較可幫助驗證該特定資料磁區之完整性得以維持。因此,本發明之一項或多項實施例可在控制器401上提供若干資料磁區之資料完整性。
結論
本發明包含用於記憶體控制器中之資料完整性之方法、裝置及系統。一項記憶體控制器實施例包含一主機介面及耦合至該主機介面之第一錯誤偵測電路。該記憶體控制器可包含一記憶體介面及耦合至該記憶體介面之第二錯誤偵測電路。該第一錯誤偵測電路可經組態以針對自該主機介面接收之資料計算錯誤偵測資料並檢查傳輸至該主機介面之資料之完整性。該第二錯誤偵測電路可經組態以針對傳輸至該記憶體介面之資料及第一錯誤校正資料計算錯誤校正資料並檢查自該記憶體介面接收之資料及第一錯誤校正資料之完整性。
將理解,當一元件稱為「在另一元件上」、「連接至另一元件」或「與另一元件耦合」時,其可係直接在其他元件上、與其他元件連接或與其他元件耦合或者可存在中間元件。相比而言,當一元件稱為「直接在另一元件上」、「直接連接至另一元件」或「與另一元件直接耦合」時,不存在中間元件或層。如本文中所使用,術語「及/或」包含相關聯所列示物項中之一者或多者之任一及所有組合。
將理解,雖然本文中可使用術語第一、第二等來闡述各種元件,但此等元件不應受此等術語限制。此等術語僅用於區別一個元件與另一元件。因此,在不背離本發明之教示內容之情形下,可將一第一元件稱為一第二元件。
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者應瞭解,經計算以達成相同結果之一配置可替代所顯示之具體實施例。本發明意欲涵蓋本發明之一項或多項實施例之改動或變化形式。應理解,以上說明係以一圖解說明方式而非一限定性方式作出。在審閱以上說明之後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一項或多項實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參考隨附申請專利範圍連同授權此等申請專利範圍之等效內容之全部範圍來確定本發明之一項或多項實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單項實施例中。不應將本發明之此方法解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將以下申請專利範圍併入至實施方式中,其中每一技術方案獨立地作為一單獨實施例。
100...計算系統
101...記憶體控制器
102...主機系統
103...實體介面
120...記憶體系統
130-1...固態記憶體裝置
130-N...固態記憶體裝置
200...系統
201...控制器
202...主機系統
204...前端部分
205...實體層
206...後端部分
207...鏈路層
209...傳輸層
210...主機介面
212...循環冗餘檢查(CRC)引擎
214...直接記憶體存取(DMA)模組
216...CRC記憶體
218...後端資料緩衝器
222...錯誤偵測電路/記憶體介面
230...固態記憶體裝置
300...系統
301...控制器
304...前端
305...實體層
306...後端
307...鏈路層
309...傳輸層
310...主機介面
312...CRC引擎
314...DMA模組
316-1...CRC記憶體
316-N...CRC記憶體
318-1...後端資料緩衝器
318-N...後端資料緩衝器
319-1...後端通道
319-N...後端通道
322-1...錯誤校正碼(ECC)引擎/記憶體介面
322-N...ECC引擎/記憶體介面
324...前端主機緩衝器
326...進階加密標準(AES)引擎
328-1...後端通道DMA模組
328-N...後端通道DMA模組
330-1...固態記憶體裝置
330-N...固態記憶體裝置
332-1...後端通道處理器
332-N...後端通道處理器
334-1...通道記憶體
334-N...通道記憶體
400...系統
401...記憶體控制器
404...前端
405...實體層
406...後端
407...鏈路層
409...傳輸層
410...主機介面
412-F...CRC引擎
412-B1...後端CRC引擎
412-BN...後端CRC引擎
414...後端CRC引擎
416-1...CRC記憶體
416-N...CRC記憶體
418-1...後端資料緩衝器
418-N...後端資料緩衝器
419-1...後端通道
419-N...後端通道
422-1...ECC引擎/記憶體介面
422-N...ECC引擎/記憶體介面
428-1...通道DMA模組
428-N...通道DMA模組
430-1...固態記憶體裝置
430-N...固態記憶體裝置
432-1...後端通道處理器
432-N...後端通道處理器
434-1...記憶體
434-N...記憶體
圖1係包含根據本發明之一項或多項實施例之一記憶體系統之一計算系統之一功能方塊圖;
圖2係包含根據本發明之一項或多項實施例之一記憶體控制器之一系統之一功能方塊圖;
圖3係包含根據本發明之一項或多項實施例之一記憶體控制器之一系統之一功能方塊圖;及
圖4係包含根據本發明之一項或多項實施例之一記憶體控制器之一系統之一功能方塊圖。
200...系統
201...控制器
202...主機系統
204...前端部分
205...實體層
206...後端部分
207...鏈路層
209...傳輸層
210...主機介面
212...循環冗餘檢查(CRC)引擎
214...直接記憶體存取(DMA)模組
216...CRC記憶體
218...後端資料緩衝器
222...錯誤偵測電路/記憶體介面
230...固態記憶體裝置

Claims (38)

  1. 一種記憶體控制器,其包括:一主機介面;第一錯誤偵測電路,其耦合至該主機介面;一記憶體介面;及第二錯誤偵測電路,其耦合至該記憶體介面;其中該第一錯誤偵測電路經組態以:針對自該主機介面接收之資料計算錯誤偵測資料;及檢查傳輸至該主機介面之資料之完整性;且其中該第二錯誤偵測電路經組態以:針對傳輸至該記憶體介面之資料及第一錯誤校正資料計算錯誤校正資料;及檢查自該記憶體介面接收之資料及第一錯誤校正資料之完整性。
  2. 如請求項1之記憶體控制器,其中該第一錯誤偵測電路經組態以每所接收之資料磁區地計算錯誤偵測資料。
  3. 如請求項2之記憶體控制器,其中:自該主機介面接收之該資料包括一資料有效負載,該資料有效負載包含若干資料磁區;且自該主機介面接收之該資料包括串流式資料。
  4. 如請求項1之記憶體控制器,其中:該第一錯誤偵測電路包括一循環冗餘檢查(CRC)引擎,其藉由一鏈路層及/或一傳輸層耦合至該主機介 面;且該第二錯誤偵測電路包括一錯誤校正碼(ECC)引擎。
  5. 如請求項1之記憶體控制器,其中該記憶體控制器包含:資料傳送電路,其耦合至該主機介面且耦合至該第一錯誤偵測電路及該第二錯誤偵測電路;及錯誤偵測記憶體,其耦合至該資料傳送電路;其中該錯誤偵測記憶體經組態以儲存該錯誤偵測資料。
  6. 如請求項5之記憶體控制器,其中該記憶體控制器包含:一資料緩衝器,其耦合至該資料傳送電路且耦合至該第二錯誤偵測電路;其中該資料緩衝器經組態以緩衝用於該第二錯誤偵測電路之資料。
  7. 如請求項1之記憶體控制器,其中該第二錯誤偵測電路經組態以校正自該記憶體介面接收之該資料中之一個或多個錯誤。
  8. 如請求項1之記憶體控制器,其中該記憶體控制器經組態以跨越該記憶體介面傳送自該主機介面接收之該資料、該錯誤偵測資料及該錯誤校正資料。
  9. 如請求項1之記憶體控制器,其中該記憶體控制器包含:資料傳送電路,其耦合至該記憶體介面且耦合至該第 一錯誤偵測電路及該第二錯誤偵測電路;其中該資料傳送電路經組態以自該記憶體介面接收資料及對應錯誤偵測資料且將該資料及該對應錯誤偵測資料傳送至該第一錯誤偵測電路。
  10. 如請求項9之記憶體控制器,其中該第一錯誤偵測電路經組態以:針對自該資料傳送電路接收之該資料計算錯誤偵測資料;及比較針對自該資料傳送電路接收之該資料之該所計算之錯誤偵測資料與自該資料傳送電路接收之該對應錯誤偵測資料。
  11. 如請求項9之記憶體控制器,其中該記憶體控制器包含:一個以上通道;通道資料傳送電路,其耦合至該資料傳送電路;一資料緩衝器,其耦合至該通道資料傳送電路及該第二錯誤偵測電路;及錯誤偵測記憶體,其耦合至該記憶體介面。
  12. 如請求項9之記憶體控制器,其中該記憶體控制器包含:一個以上通道;及一通道處理器及一通道記憶體。
  13. 如請求項1之記憶體控制器,其中該記憶體控制器包含: 一主機緩衝器,其耦合至該主機介面;及加密電路,其耦合至該主機緩衝器;其中該加密電路經組態以視情況處理該資料以提供一經加密輸出。
  14. 如請求項13之記憶體控制器,其中該加密電路包括一進階加密標準(AES)引擎。
  15. 一種記憶體控制器,其包括:一主機介面;前端錯誤偵測電路,其耦合至該主機介面;一記憶體介面;及後端錯誤偵測電路,其耦合至該記憶體介面;其中該前端錯誤偵測電路經組態以針對對應資料計算第一錯誤偵測資料;且其中該後端錯誤偵測電路經組態以:針對該對應資料計算第二錯誤偵測資料;及檢查該對應資料之完整性。
  16. 如請求項15之記憶體控制器,其中該後端錯誤偵測電路經組態以比較該第一錯誤偵測資料與該第二錯誤偵測資料,以檢查該對應資料之完整性。
  17. 如請求項15之記憶體控制器,其中該記憶體控制器包含:資料傳送電路,其耦合至該前端錯誤偵測電路;一後端錯誤偵測記憶體,其耦合至該資料傳送電路且耦合至該後端錯誤偵測電路; 其中該資料傳送電路經組態以將該第一錯誤偵測資料自該前端錯誤偵測電路傳送至該後端錯誤偵測記憶體;且其中該後端錯誤偵測電路經組態以比較來自該錯誤偵測記憶體之該第一錯誤偵測資料與該第二錯誤偵測資料,以檢查該對應資料之完整性。
  18. 如請求項15之記憶體控制器,其中:該前端錯誤偵測電路包括一循環冗餘檢查(CRC)引擎;該後端錯誤偵測電路包括一CRC引擎;且其中該記憶體控制器包含一錯誤校正碼(ECC)引擎,其耦合至該後端錯誤偵測電路且耦合至該記憶體介面;且其中該ECC引擎經組態以針對該對應資料計算錯誤校正資料。
  19. 如請求項18之記憶體控制器,其中該記憶體控制器經組態以跨越該記憶體介面傳送該錯誤校正資料及該對應資料而不傳送該第一錯誤偵測資料及/或該第二錯誤偵測資料。
  20. 如請求項15之記憶體控制器,其中:該對應資料包括一直接記憶體存取(DMA)有效負載;該前端錯誤偵測電路經組態以每該DMA有效負載之磁區地計算第一錯誤偵測資料;且該後端錯誤偵測電路經組態以每該DMA有效負載之磁 區地計算第二錯誤偵測資料。
  21. 一種記憶體系統,其包括:一個或多個固態記憶體裝置;及一記憶體控制器,其藉由一記憶體介面耦合至該一個或多個固態記憶體裝置,其中該記憶體控制器包含:一主機介面;第一錯誤偵測電路,其耦合至該主機介面;及第二錯誤偵測電路,其耦合至該記憶體介面;其中該第一錯誤偵測電路及該第二錯誤偵測電路經組態以在跨越該主機介面傳送之資料係位於該記憶體系統中時偵測該資料中之一個或多個錯誤。
  22. 如請求項21之記憶體系統,其中該第一錯誤偵測電路包括一循環冗餘檢查(CRC)引擎;且其中該第一錯誤偵測電路經組態以在一逐磁區基礎上針對該資料計算錯誤偵測資料。
  23. 如請求項22之記憶體系統,其中該第二錯誤偵測電路包括一錯誤校正碼(ECC)引擎;且其中該第二錯誤偵測電路經組態以在一逐磁區基礎上針對該資料及該錯誤偵測資料計算錯誤校正資料。
  24. 如請求項23之記憶體系統,其中該記憶體控制器經組態以將該資料、該錯誤偵測資料及該錯誤校正資料儲存於該一個或多個固態記憶體裝置中。
  25. 如請求項21之記憶體系統,其中該記憶體控制器包含耦合至該第二錯誤偵測電路之一資料緩衝器; 其中該第二錯誤偵測電路經組態以在該資料係位於該資料緩衝器中時校正資料錯誤。
  26. 如請求項21之記憶體系統,其中該記憶體控制器包含一錯誤偵測記憶體,其耦合至該第一錯誤偵測電路及該第二錯誤偵測電路;其中該第二錯誤偵測電路經組態以在該錯誤偵測資料係位於該錯誤偵測記憶體中時校正錯誤偵測資料錯誤。
  27. 如請求項21之記憶體系統,其中:該記憶體系統包含一實體介面,其耦合至該記憶體控制器之該主機介面;且該第一錯誤偵測電路藉由一鏈路層及/或一傳輸層耦合至該主機介面。
  28. 如請求項27之記憶體系統,其中:該實體介面包括一串列進階附接技術(SATA)實體介面;該資料包括一直接記憶體存取(DMA)有效負載之至少一部分;該第一錯誤偵測電路藉由一鏈路層耦合至該主機介面;且該第一錯誤偵測電路經組態以自該鏈路層接收該DMA有效負載。
  29. 如請求項27之記憶體系統,其中:該實體介面包括一高速周邊組件互連(PCIe)實體介面; 該資料包括一直接記憶體存取(DMA)有效負載之至少一部分;該第一錯誤偵測電路藉由一傳輸層耦合至該主機介面;且該第一錯誤偵測電路經組態以自該傳輸層接收該DMA有效負載。
  30. 如請求項21之記憶體系統,其中該記憶體系統包括一固態驅動器(SSD),且該一個或多個固態記憶體裝置包含一個或多個NAND快閃記憶體陣列。
  31. 一種記憶體系統,其包括:一個或多個固態記憶體裝置;及一記憶體控制器,其耦合至該一個或多個固態記憶體裝置,其中該記憶體控制器包含:前端錯誤偵測電路,其經組態以針對一資料磁區計算第一錯誤偵測資料;及後端錯誤偵測電路,其經組態以:針對該資料磁區計算第二錯誤偵測資料;及檢查該資料磁區之完整性;且其中該記憶體控制器經組態以將該資料磁區儲存於該一個或多個固態記憶體裝置中而不將該第一錯誤偵測資料及/或該第二錯誤偵測資料儲存於該一個或多個固態記憶體裝置中。
  32. 如請求項31之系統,其中該後端錯誤偵測電路包括一循環冗餘檢查(CRC)引擎,其經組態以比較該第一錯誤偵 測資料與該第二錯誤偵測資料,以檢查該資料磁區之完整性。
  33. 如請求項31之系統,其中該系統包含一實體介面,其耦合至該記憶體控制器之一主機介面。
  34. 如請求項33之系統,其中該前端錯誤偵測電路包括一循環冗餘檢查(CRC)引擎,其藉由一鏈路層及/或一傳輸層耦合至該主機介面。
  35. 如請求項33之系統,其中該實體介面包括選自包含以下各項之串列介面之群組之一串列介面:通用串列匯流排(USB);串列進階附接技術(SATA);及高速周邊組件互連(PCIe)。
  36. 如請求項31之系統,其中該記憶體控制器包含一錯誤校正碼(ECC)引擎,其耦合至該後端錯誤偵測電路且耦合至一記憶體介面,其中該ECC引擎經組態以針對該資料磁區計算錯誤校正資料。
  37. 如請求項36之系統,其中該記憶體控制器經組態以在該第一錯誤偵測資料匹配該第二錯誤偵測資料時,將該資料磁區及該錯誤校正資料儲存於該一個或多個固態記憶體裝置中,而不將該錯誤偵測資料儲存於該一個或多個固態記憶體裝置中。
  38. 如請求項31之系統,其中該前端錯誤偵測電路經組態以比較該第一錯誤偵測資料與該第二錯誤偵測資料,以檢查該資料磁區之完整性。
TW099104808A 2009-02-18 2010-02-12 在記憶體控制器中之資料完整性及方法 TWI451434B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/388,305 US8468417B2 (en) 2009-02-18 2009-02-18 Data integrity in memory controllers and methods

Publications (2)

Publication Number Publication Date
TW201035987A TW201035987A (en) 2010-10-01
TWI451434B true TWI451434B (zh) 2014-09-01

Family

ID=42560933

Family Applications (2)

Application Number Title Priority Date Filing Date
TW103118322A TW201434051A (zh) 2009-02-18 2010-02-12 在記憶體控制器中之資料完整性及方法
TW099104808A TWI451434B (zh) 2009-02-18 2010-02-12 在記憶體控制器中之資料完整性及方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW103118322A TW201434051A (zh) 2009-02-18 2010-02-12 在記憶體控制器中之資料完整性及方法

Country Status (7)

Country Link
US (3) US8468417B2 (zh)
EP (1) EP2399194A4 (zh)
JP (1) JP5776107B2 (zh)
KR (2) KR101351754B1 (zh)
CN (1) CN102317919B (zh)
TW (2) TW201434051A (zh)
WO (1) WO2010096153A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
JP2010262715A (ja) * 2009-05-11 2010-11-18 Renesas Electronics Corp メモリ検査システム及びメモリ検査方法
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
JP5605238B2 (ja) * 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
US8745294B2 (en) * 2011-04-01 2014-06-03 Taejin Info Tech Co., Ltd. Dynamic random access memory for a semiconductor storage device-based system
JP5346978B2 (ja) * 2011-04-15 2013-11-20 シャープ株式会社 インターフェイス装置、配線基板、及び情報処理装置
JP5346979B2 (ja) * 2011-04-18 2013-11-20 シャープ株式会社 インターフェイス装置、配線基板、及び情報処理装置
WO2011127866A2 (zh) * 2011-05-27 2011-10-20 华为技术有限公司 数据处理方法、装置及系统
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
US20130067157A1 (en) * 2011-09-12 2013-03-14 Byungcheol Cho Semiconductor storage device having multiple host interface units for increased bandwidith
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8953644B2 (en) 2011-12-27 2015-02-10 Intel Corporation Multi-protocol I/O interconnect time synchronization
JP2013137708A (ja) 2011-12-28 2013-07-11 Toshiba Corp メモリコントローラ、データ記憶装置およびメモリ制御方法
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US8880923B2 (en) 2012-03-29 2014-11-04 Intel Corporation Link power management in an I/O interconnect
KR102002925B1 (ko) * 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
KR102009437B1 (ko) * 2013-01-18 2019-08-13 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR102083374B1 (ko) * 2013-06-17 2020-04-14 에스케이하이닉스 주식회사 반도체 장치 및 그의 제어 방법
US9256551B2 (en) 2013-08-09 2016-02-09 Apple Inc. Embedded encryption/secure memory management unit for peripheral interface controller
CN103533045B (zh) * 2013-10-12 2017-12-29 丁贤根 一种用于pcie数据链路层高性能容错的方法
KR102058495B1 (ko) * 2013-11-29 2020-02-07 에스케이하이닉스 주식회사 오류 검출 회로 및 이를 이용하는 반도체 집적회로
KR102214556B1 (ko) * 2014-08-19 2021-02-09 삼성전자주식회사 메모리 장치 및 모듈
US9697140B2 (en) * 2014-09-23 2017-07-04 Intel Corporation Encryption integrity check with CRC encryption in memory using a word count- and address-derived nonce
WO2016137464A1 (en) * 2015-02-26 2016-09-01 Hewlett Packard Enterprise Development Lp Checksum requests of files
JP6594712B2 (ja) * 2015-09-14 2019-10-23 ラピスセミコンダクタ株式会社 半導体メモリ及び半導体メモリのベリファイ方法
US10198313B2 (en) 2016-03-11 2019-02-05 Western Digital Technologies, Inc. Redundancy of error correction encoded data in a storage system
WO2020210390A1 (en) 2019-04-09 2020-10-15 Sunrise Memory Corporation Quasi-volatile memory device with a back-channel usage
US10891184B2 (en) * 2019-05-22 2021-01-12 Macronix International Co., Ltd. Configurable data integrity mode, and memory device including same
JP7327029B2 (ja) * 2019-09-19 2023-08-16 京セラドキュメントソリューションズ株式会社 画像形成装置、データ通信方法
JP7419715B2 (ja) * 2019-09-19 2024-01-23 京セラドキュメントソリューションズ株式会社 画像形成装置、データ整合性判定方法
US11693732B2 (en) * 2019-12-31 2023-07-04 Micron Technology, Inc. Cryptographic data integrity protection
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
US11934333B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Storage protocol emulation in a peripheral device
US11726666B2 (en) * 2021-07-11 2023-08-15 Mellanox Technologies, Ltd. Network adapter with efficient storage-protocol emulation
US11687273B2 (en) 2021-09-29 2023-06-27 Micron Technology, Inc. Memory controller for managing data and error information
US11775387B2 (en) * 2022-01-21 2023-10-03 Micron Technology, Inc. Cyclic redundancy check (CRC) retry for memory systems in compute express link (CXL) devices
US11940872B2 (en) 2022-04-21 2024-03-26 Analog Devices International Unlimited Company Error correction code validation

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124129A1 (en) * 2001-03-05 2002-09-05 M-System Flash Disk Pioneers Ltd. Method for using RAM buffers with multiple accesses in flash-based storage systems
US20040042244A1 (en) * 2002-09-02 2004-03-04 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory device for connecting to serial advanced technology attachment cable
US20060045273A1 (en) * 2004-08-31 2006-03-02 Michael Mayer Method and system for transmitting signaling information over a data transport network
US20060136619A1 (en) * 2004-12-16 2006-06-22 Intel Corporation Data integrity processing and protection techniques
US20070028140A1 (en) * 2005-07-28 2007-02-01 Atsushi Takeda Information processing method and information processing device
US20080104480A1 (en) * 2004-04-22 2008-05-01 Pao-Ching Tseng Method for processing noise interference
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US20080184299A1 (en) * 2007-01-30 2008-07-31 Samsung Electronics Co., Ltd. Method and dvb-h terminal for confirming integrity of container

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257391A (en) 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5631741A (en) 1995-12-29 1997-05-20 Intel Corporation Electronic carbon paper
US7020835B2 (en) * 2000-10-19 2006-03-28 Oracle International Corporation Enhancements to data integrity verification mechanism
US7900057B2 (en) 2000-11-03 2011-03-01 Enova Technology Corporation Cryptographic serial ATA apparatus and method
JP2005093038A (ja) * 2003-09-19 2005-04-07 Fujitsu Ltd 記録再生装置および記録再生回路
JP2006134064A (ja) 2004-11-05 2006-05-25 Hitachi Ltd 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法
US20060294299A1 (en) 2005-06-28 2006-12-28 Intel Corporation Techniques to verify storage of information
JP4953648B2 (ja) * 2006-02-03 2012-06-13 パナソニック株式会社 不揮発性記憶装置およびメモリコントローラ
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
KR100921748B1 (ko) * 2007-06-04 2009-10-15 삼성전자주식회사 Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법
KR100753174B1 (ko) 2007-06-12 2007-08-30 엠진 (주) 플래시 메모리 기반의 대용량 저장장치
US8001444B2 (en) * 2007-08-08 2011-08-16 Intel Corporation ECC functional block placement in a multi-channel mass storage device
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
JP5174603B2 (ja) * 2008-09-30 2013-04-03 株式会社日立製作所 メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124129A1 (en) * 2001-03-05 2002-09-05 M-System Flash Disk Pioneers Ltd. Method for using RAM buffers with multiple accesses in flash-based storage systems
US20040042244A1 (en) * 2002-09-02 2004-03-04 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory device for connecting to serial advanced technology attachment cable
US20080104480A1 (en) * 2004-04-22 2008-05-01 Pao-Ching Tseng Method for processing noise interference
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US20060045273A1 (en) * 2004-08-31 2006-03-02 Michael Mayer Method and system for transmitting signaling information over a data transport network
US20060136619A1 (en) * 2004-12-16 2006-06-22 Intel Corporation Data integrity processing and protection techniques
US20070028140A1 (en) * 2005-07-28 2007-02-01 Atsushi Takeda Information processing method and information processing device
US20080184299A1 (en) * 2007-01-30 2008-07-31 Samsung Electronics Co., Ltd. Method and dvb-h terminal for confirming integrity of container

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
US10783032B2 (en) 2017-05-12 2020-09-22 Via Technologies, Inc. Non-volatile memory apparatus and reading method thereof

Also Published As

Publication number Publication date
EP2399194A2 (en) 2011-12-28
CN102317919A (zh) 2012-01-11
KR20130124989A (ko) 2013-11-15
KR101351754B1 (ko) 2014-01-14
EP2399194A4 (en) 2012-10-31
US20130283124A1 (en) 2013-10-24
US9015553B2 (en) 2015-04-21
US20150220386A1 (en) 2015-08-06
KR101457518B1 (ko) 2014-11-10
WO2010096153A3 (en) 2010-11-25
TW201035987A (en) 2010-10-01
JP5776107B2 (ja) 2015-09-09
US20100211834A1 (en) 2010-08-19
CN102317919B (zh) 2015-03-11
KR20110118168A (ko) 2011-10-28
TW201434051A (zh) 2014-09-01
JP2012518224A (ja) 2012-08-09
US8468417B2 (en) 2013-06-18
WO2010096153A2 (en) 2010-08-26

Similar Documents

Publication Publication Date Title
TWI451434B (zh) 在記憶體控制器中之資料完整性及方法
US8726140B2 (en) Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
US9197247B2 (en) Memory system and error correction method
US9411680B2 (en) Composite semiconductor memory device with error correction
US8812942B2 (en) Interleaving apparatuses and memory controllers having the same
KR101990972B1 (ko) 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러
TWI588833B (zh) 資料程式化方法與記憶體儲存裝置
TWI591643B (zh) 資料保護方法、記憶體控制電路單元與記憶體儲存裝置
US11101822B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN106158046B (zh) 用于turbo乘积码的误校正避免
JP2015135676A (ja) 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置
TWI738390B (zh) 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
US11853613B2 (en) Encoding control method, memory storage device and memory control circuit unit
US20240028524A1 (en) Accelerated Encryption During Power Loss
CN114077515A (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
KR20160143005A (ko) Bch 인코더, bch 디코더, 이를 포함하는 시스템, 및 이의 동작 방법

Legal Events

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