TW201901426A - 非揮發性記憶體裝置及其讀取方法 - Google Patents

非揮發性記憶體裝置及其讀取方法 Download PDF

Info

Publication number
TW201901426A
TW201901426A TW106115688A TW106115688A TW201901426A TW 201901426 A TW201901426 A TW 201901426A TW 106115688 A TW106115688 A TW 106115688A TW 106115688 A TW106115688 A TW 106115688A TW 201901426 A TW201901426 A TW 201901426A
Authority
TW
Taiwan
Prior art keywords
cyclic redundancy
redundancy check
circuit
data portion
volatile memory
Prior art date
Application number
TW106115688A
Other languages
English (en)
Other versions
TWI625620B (zh
Inventor
賴義麟
陳振德
鐘英哲
Original Assignee
威盛電子股份有限公司
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 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Priority to TW106115688A priority Critical patent/TWI625620B/zh
Priority to CN201710473837.1A priority patent/CN107402837B/zh
Priority to US15/662,254 priority patent/US10783032B2/en
Application granted granted Critical
Publication of TWI625620B publication Critical patent/TWI625620B/zh
Publication of TW201901426A publication Critical patent/TW201901426A/zh
Priority to US16/985,241 priority patent/US11334429B2/en

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/1068Adding 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
    • 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
    • H03M13/2906Coding, 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • 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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種非揮發性記憶體裝置及其讀取方法。非揮發性記憶體裝置包括錯誤檢查和糾正解碼電路、主緩衝器電路、多工器以及介面電路。錯誤檢查和糾正解碼電路將原碼字解碼為經解碼碼字。主緩衝器電路耦接錯誤檢查和糾正解碼電路以接收並儲存該經解碼碼字的第一資料部。多工器的第一輸入端耦接主緩衝器電路的輸出端,第二輸入端耦接錯誤檢查和糾正解碼電路的輸出端。介面電路耦接多工器的輸出端並從多工器接收第一資料部以提供給主機。

Description

非揮發性記憶體裝置及其讀取方法
本發明是有關於一種記憶體裝置,且特別是有關於一種非揮發性記憶體(non-volatile memory, NVM)裝置及其讀取方法。
與傳統的硬碟機(hard disk drives)相比,由於快閃記憶體(flash memory)儲存設備的讀/寫性能佳且功耗低,使得快閃記憶體被廣泛應用於資料儲存系統中。快閃記憶體的讀取效能通常可由兩項指標評估,即非連續讀取(例如是:隨機讀取(random read))速率與連續讀取(sequential read)速率。相較於執行連續讀取時使用較大型的封包,當執行非連續讀取時,快閃記憶體會將資料以小型封包的形式(例如:以4K或更少的位元組為單位)發送給主機。一般而言,非連續讀取速率較連續讀取速率為慢,因此其往往成為快閃記憶體讀取效能的瓶頸。隨著電子產品對記憶體讀取速率的要求提高,需要發展新的讀取技術以提升快閃記憶體的非連續讀取速率。
本發明提供一種非揮發性記憶體(non-volatile memory, NVM)裝置及其讀取方法,可以減少在進行非連續讀取時的管線層級(pipeline stage),藉以加快非連續讀取速率。
在本發明的一實施例提出一種非揮發性記憶體裝置,包括:錯誤檢查和糾正(Error Checking and Correcting,以下稱ECC)解碼電路、主緩衝器電路、多工器以及介面電路。ECC解碼電路用以將原碼字解碼為經解碼碼字。主緩衝器電路耦接ECC解碼電路的輸出端,以接收並儲存經解碼碼字的第一資料部。多工器的第一輸入端耦接主緩衝器電路的輸出端。多工器的第二輸入端耦接ECC解碼電路的輸出端,以接收第一資料部。在第一操作模式中,多工器選擇性將多工器的第一輸入端耦接至多工器的輸出端。在第二操作模式中,多工器選擇性將多工器的第二輸入端耦接至多工器的輸出端。介面電路耦接多工器的輸出端,其中介面電路從多工器的輸出端接收第一資料部以提供給主機。
在本發明的一實施例提出一種非揮發性記憶體裝置的讀取方法。此讀取方法包括:利用ECC解碼電路將原碼字解碼為經解碼碼字;在第一操作模式中,將該解碼碼字的第一資料部通過主緩衝器電路傳輸至介面電路;在第二操作模式中,將第一資料部繞過主緩衝器電路傳輸至介面電路;以及由介面電路將第一資料部提供給主機。
在本發明的一實施例提出一種非揮發性記憶體裝置,包括:ECC解碼電路、介面電路、第一循環冗餘檢查(Cyclic Redundancy Check,以下稱CRC)電路以及第二CRC電路。ECC解碼電路用以將原碼字解碼為經解碼碼字,其中經解碼碼字包括第一資料部與第一CRC碼。介面電路耦接ECC解碼電路的輸出端,以接收第一資料部,其中介面電路用以提供第一資料部給主機。第一CRC電路耦接至ECC解碼電路,以接收第一資料部與第一CRC碼。第一CRC電路被配置為對第一資料部進行第一循環冗餘檢查,並且基於第一循環冗餘檢查的結果與第一CRC碼的關係來產生檢查狀態訊息。第二CRC電路耦接至介面電路,以接收第一資料部。所述第二循環冗餘檢查電路被配置為對第一資料部進行第二循環冗餘檢查,以產生第二CRC碼。第二CRC電路依據第一CRC電路的檢查狀態訊息來決定是否進一步改變第二CRC碼以使第二CRC碼不符合第一資料部。
在本發明的一實施例提出一種非揮發性記憶體裝置的讀取方法。此讀取方法包括:利用ECC解碼電路將原碼字解碼為經解碼碼字,其中經解碼碼字包括第一資料部與第一CRC碼;由介面電路提供第一資料部給主機;由第一CRC電路對ECC解碼電路所提供的第一資料部進行第一循環冗餘檢查,並且基於第一循環冗餘檢查的結果與第一CRC碼的關係來產生檢查狀態訊息;由第二CRC電路對介面電路所提供的第一資料部進行第二循環冗餘檢查,以產生第二CRC碼;以及依據檢查狀態訊息來決定是否進一步改變第二CRC碼以使第二CRC碼不符合第一資料部。
基於上述,本發明實施例所提供的非揮發性記憶體裝置及其讀取方法可以透過繞過(bypass)主緩衝器電路來減少在進行非連續讀取時的管線層級,藉以加快非連續讀取速率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1說明一種非揮發性記憶體(non-volatile memory, NVM)裝置100的電路方塊(circuit block)示意圖。主機10可以是電腦、手持式電子裝置或其他電子裝置。例如,主機10可以是個人電腦、手持式電腦、個人數位助理(personal digital assistant, PDA)、可攜式媒體播放器(portable media player, PMP)、MP3播放器、智慧型手機(smart phone)、數位相機、攝錄機(camcorders)、錄音機、遊戲機、傳真機、掃描器、印表機等等。非揮發性記憶體裝置100可以是個人電腦記憶卡國際協會(Personal Computer Memory Card International Association, PCMCIA)卡、小型快閃(compact flash, CF)卡、智慧型媒體卡(smart media card, SMC)、隨身碟(memory stick)、多媒體卡(multimedia card, MMC,例如RS-MMC、MMC-micro等)、安全數位卡(security card, SD,例如mini SD、micro SD、SDHC等)、通用快閃儲存(universal flash storage, UFS)裝置、固態硬碟(solid state disk/drive, SSD)等等。依照不同的應用情境,非揮發性記憶體裝置100可以儲存音訊、影像、視訊資料及/或其他數位資料。
非揮發性記憶體裝置100耦接至主機10。非揮發性記憶體裝置100可以提供儲存空間給主機10。主機10可利用任一種標準化介面(或非標準介面)連接至非揮發性記憶體裝置100。例如,所述標準化介面包括小型電腦系統介面(small computer system interface, SCSI)、串列連接小型電腦系統介面(Serial Attached SCSI, SAS)、增強型小型裝置介面(Enhanced Small Disk Interface, ESDI)、串列先進技術連接(serial advanced technology attachment, SATA)、快速週邊元件互連(peripheral component interconnect express, PCIe)、整合式電子裝置(integrated drive electronics, IDE)介面、通用串列匯流排(universal serial bus, USB)、雷電(Thunderbolt)介面或其他介面。本實施例並未侷限於主機10與非揮發性記憶體裝置100之間的介面結構。
非揮發性記憶體裝置100包括非揮發性記憶體101、錯誤檢查和糾正(Error Checking and Correcting,以下稱ECC)解碼電路110、主緩衝器電路120、介面電路130以及循環冗餘檢查(Cyclic Redundancy Check,以下稱CRC)電路140。依照設計需求,非揮發性記憶體101可以是反及快閃記憶體(NAND flash memory)或是其他非揮發性儲存電路/元件。非揮發性記憶體101具有多個實體塊(block)以提供儲存空間,以便存放資料。介面電路130透過上述標準化介面(或非標準介面)耦接至主機10。主機10可以經由介面電路130、主緩衝器電路120與ECC解碼電路110而從非揮發性記憶體101讀取資料。
一般而言,當快閃記憶體(非揮發性記憶體101)的某一個記憶胞(memory cell)被讀取時,快閃記憶體的讀取方式會導致在同一實體頁(或實體塊)中相近於所述某一個記憶胞的其他記憶胞的位元資料可能發生非預期地改變。這即是所謂的資料讀取干擾(data read disturbance)。對於快閃記憶體的一個實體頁而言,在多次對此實體頁進行讀取操作的情形下,隨著時間的增加(或隨著讀取次數的增加),此實體頁發生錯誤的位元數量隨之增加。為了降低實體頁讀取的錯誤率,ECC解碼電路110可以對欲讀取的資料(原碼字x)進行錯誤檢查和糾正解碼(ECC decoding),以獲得經解碼碼字,其中所述經解碼碼字可分為至少兩部分,分別是第一資料部D1以及用來檢查第一資料部D1正確性的第一CRC碼C1。因此,ECC解碼電路110可以檢測及校正原碼字x是否發生錯誤。
依照設計需求,ECC解碼電路110可以採用任何演算法來對非揮發性記憶體101的原碼字x進行ECC解碼,以獲得包含有第一資料部D1與第一CRC碼C1的經解碼碼字。例如(但不限於此),ECC解碼電路110可以使用低密度奇偶檢查碼(Low-density Parity-check Code,簡稱LDPC)解碼演算法、博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem,簡稱BCH)解碼演算法或是其他演算法來對原碼字x進行ECC解碼,以獲得經解碼碼字(第一資料部D1與第一CRC碼C1)。
主緩衝器電路120的輸入端耦接ECC解碼電路110的輸出端,以接收並儲存在經解碼碼字中的第一資料部D1。主緩衝器電路120可以提供緩衝空間來存放ECC解碼電路110所輸出的多個經解碼碼字。同一時間,在經解碼碼字中的第一資料部D1以及第一CRC碼C1會被傳輸至CRC電路140。在ECC解碼電路110完成ECC解碼後,CRC電路140還可以依據在經解碼碼字中的第一CRC碼C1進一步對在經解碼碼字內的第一資料部D1進行循環冗餘檢查(CRC),以判斷第一資料部D1是否正確。依照設計需求,CRC電路140可以採用任何演算法來對第一資料部D1進行循環冗餘檢查,例如習知演算法或其他循環冗餘檢查演算法。
舉例來說,CRC電路140可以依據第一資料部D1的內容計算出對應於該第一資料部D1的第二CRC碼,並且比對第一CRC碼C1與所述第二CRC碼。當原碼字x發生錯誤時(亦即第一資料部D1發生錯誤),經CRC電路140所計算出的第二CRC碼會與第一CRC碼C1不同。在這種情況下,CRC電路140可發送訊號給主緩衝器電路120,以阻止主緩衝器電路120將錯誤的第一資料部D1傳輸給介面電路130。當第一資料部D1與第一CRC碼C1沒有錯誤時,CRC電路140所計算出的第二CRC碼會與第一CRC碼C1相同。在這種情況下,主緩衝器電路120便可將第一資料部D1繼續傳往介面電路130。
介面電路130耦接主緩衝器電路120的輸出端,以接收第一資料部D1。介面電路130可以將主緩衝器電路120所提供的第一資料部D1輸出給主機10。於圖1所示實施例中,介面電路130包括輸出緩衝器電路131與主機界面電路132。輸出緩衝器電路131的輸入端耦接主緩衝器電路120的輸出端,以接收並暫存第一資料部D1。輸出緩衝器電路131可以提供緩衝空間來存放介面電路130要輸出給主機10的資料。主機界面電路132耦接輸出緩衝器電路131的輸出端,以接收第一資料部D1。主機界面電路132可以提供第一資料部D1給主機10。
當ECC解碼電路110的解碼速度與主機10的讀取速度不匹配時,主緩衝器電路120可以提供緩衝功能於ECC解碼電路110與主機10之間。在對非揮發性記憶體101進行連續讀取時,每次所讀取的資料量往往是非常龐大的,此時主緩衝器電路120可以提供緩衝空間來存放ECC解碼電路110所輸出的所述經連續讀取的資料。在對非揮發性記憶體101進行非連續讀取時,每次所讀取的資料大小通常是小資料,例如4K位元組(或更小)大小的資料。在對非揮發性記憶體101進行非連續讀取時,主緩衝器電路120的緩衝功能可能是多餘的。
圖2是依照本發明一實施例說明一種非揮發性記憶體裝置200的電路方塊示意圖。非揮發性記憶體裝置200耦接至主機10。非揮發性記憶體裝置200可以提供儲存空間給主機10。圖2所示主機10可以參照圖1的相關說明。非揮發性記憶體裝置200可以是PCMCIA卡、CF卡、SMC、隨身碟、MMC(例如RS-MMC、MMC-micro等)、SD卡(例如miniSD、microSD、SDHC等)、UFS裝置、固態硬碟等等。依照不同的應用情境,非揮發性記憶體裝置200可以儲存音訊、影像、視訊資料及/或其他數位資料。
主機10與非揮發性記憶體裝置200之間可利用任一種標準化介面(或非標準介面)予以相互連接。例如,所述標準化介面包括SCSI介面、SAS介面、ESDI介面、SATA介面、PCI-express介面、IDE介面、USB介面、Thunderbolt介面或其他介面。本實施例並未侷限於主機10與非揮發性記憶體裝置200之間的介面結構。
非揮發性記憶體裝置200包括非揮發性記憶體101、錯誤檢查和糾正(ECC)解碼電路110、主緩衝器電路120、控制器210、多工器220以及介面電路130。介面電路130透過上述標準化介面(或非標準介面)耦接至主機10。圖2所示非揮發性記憶體101、ECC解碼電路110、主緩衝器電路120以及介面電路130可以參照圖1的相關說明,故不再贅述。
控制器210耦接至多工器220的控制端。多工器220的第一輸入端I1耦接主緩衝器電路120的輸出端。多工器220的第二輸入端I2耦接ECC解碼電路110的輸出端,以接收第一資料部D1。介面電路130耦接多工器220的輸出端。介面電路130從多工器220的輸出端接收第一資料部D1,以提供給主機10。
基於控制器210的控制,多工器220可選擇性地操作於第一操作模式或第二操作模式,其中多工器220在第一操作模式中選擇性將多工器220的第一輸入端I1耦接至多工器220的輸出端,且多工器220在第二操作模式中選擇性將多工器220的第二輸入端I2耦接至多工器220的輸出端。也就是說,多工器220可選擇性地將主緩衝器電路120耦接至介面電路130,或是將ECC解碼電路110耦接至介面電路130。因此,在本實施例中,在第一操作模式中,在經解碼碼字中的第一資料部D1可以通過主緩衝器電路120被傳輸至介面電路130。在第二操作模式中,在經解碼碼字中的第一資料部D1可以繞過(bypass)主緩衝器電路120而傳輸至介面電路130。
控制器210可以是習知的快閃記憶體控制器或是其他控制器。控制器210可以獲知主機10對非揮發性記憶體裝置200進行的讀取操作是否為連續讀取。當主機10對進行非揮發性記憶體裝置200進行連續讀取時,控制器210可透過控制訊號CS控制多工器220,以使多工器220操作於第一模式,亦即使第一資料部D1通過主緩衝器電路120傳輸至介面電路130。當主機10對非揮發性記憶體裝置200進行非連續讀取時,控制器210可透過控制訊號CS控制多工器220,以使多工器220操作於第二模式,亦即使第一資料部D1繞過主緩衝器電路120傳輸至介面電路130。介面電路130可以從多工器220的輸出端接收第一資料部D1,以及將第一資料部D1提供給主機10。在對非揮發性記憶體101進行非連續讀取時,主緩衝器電路120的緩衝功能可能是多餘的。因此在非連續讀取時,圖2實施例提出的非揮發性記憶體裝置200可以在將第一資料部D1傳輸至主機10時繞過主緩衝器電路120,藉此減少讀取資料的傳輸延遲。
在ECC解碼電路110的解碼速度與主機10的讀取速度可以匹配的情況下,主緩衝器電路120可以被省略。例如,圖3是依照本發明另一實施例說明一種非揮發性記憶體裝置300的電路方塊示意圖。非揮發性記憶體裝置300耦接至主機10。非揮發性記憶體裝置300可以提供儲存空間給主機10。圖3所示主機10可以參照圖1的相關說明。非揮發性記憶體裝置300可以是PCMCIA卡、CF卡、SMC、隨身碟、MMC(例如RS-MMC、MMC-micro等)、SD卡(例如miniSD、microSD、SDHC等)、UFS裝置、固態硬碟等等。依照不同的應用情境,非揮發性記憶體裝置300可以儲存音訊、影像、視訊資料及/或其他數位資料。主機10與非揮發性記憶體裝置300之間的連接介面可以參照圖1所述非揮發性記憶體裝置100的相關說明來類推。
非揮發性記憶體裝置300包括非揮發性記憶體101、錯誤檢查和糾正(ECC)解碼電路110、介面電路130、第一循環冗餘檢查(CRC)電路310以及第二CRC電路320。介面電路130透過標準化介面(或非標準介面)耦接至主機10。圖3所示非揮發性記憶體101、ECC解碼電路110以及介面電路130可以參照圖1的相關說明,故不再贅述。於圖3所示實施例中,介面電路130耦接ECC解碼電路110的輸出端,以接收在經解碼碼字中的第一資料部D1,並且將第一資料部D1提供給主機10。於圖3所示實施例中,介面電路130可包括輸出緩衝器電路131以及主機界面電路132。圖3所示輸出緩衝器電路131以及主機界面電路132可以參照圖1的相關說明,故不再贅述。
第一CRC電路310耦接至ECC解碼電路110,以接收在經解碼碼字中的第一資料部D1與第一CRC碼C1。第一CRC電路310可以對第一資料部D1進行第一循環冗餘檢查(CRC),以判斷第一資料部D1是否正確。基於第一循環冗餘檢查的結果與第一循環冗餘檢查碼C1的關係,第一CRC電路310可以對應產生檢查狀態訊息CCS。第一CRC電路310可以採用任何演算法來對第一資料部D1進行第一循環冗餘檢查,例如習知演算法或其他循環冗餘檢查演算法。
舉例來說,第一CRC電路310可根據第一資料部D1產生一個經計算CRC碼。若原碼字x未發生錯誤(亦即第一資料部D1與第一CRC碼C1沒有發生錯誤),則所述經計算CRC碼會與在經解碼碼字中的第一CRC碼C1相同。在這種情況下,第一CRC電路310會判定第一資料部D1的內容正確,並且透過檢查狀態訊息CCS將判定結果(第一循環冗餘檢查的結果)通知給第二CRC電路320。反之,若原碼字x發生了錯誤(亦即第一資料部D1或第一CRC碼C1發生錯誤),則所述經計算CRC碼會與在經解碼碼字中的第一CRC碼C1相異。在這種情況下,第一CRC電路310會判定第一資料部D1的內容錯誤,並且透過檢查狀態訊息CCS將判定結果通知給第二CRC電路320。
於圖3所示實施例中,第二CRC電路320與主機界面電路132可以是各自獨立的不同元件。第二CRC電路320耦接介面電路130的主機界面電路132(或輸出緩衝器電路131),以接收第一資料部D1。此外,在其他實施例中,第二CRC電路320也可以被嵌入於介面電路130的主機界面電路132中,本發明不限定於此。第二CRC電路320可以對第一資料部D1進行第二循環冗餘檢查,以產生第二CRC碼。依照設計需求,第二CRC電路320可以採用任何演算法來對第一資料部D1進行第二循環冗餘檢查,例如習知演算法或其他循環冗餘檢查演算法。在一些實施例中,第二CRC電路320所進行的第二循環冗餘檢查可以相同於第一CRC電路310所進行的第一循環冗餘檢查。在另一些實施例中,第二CRC電路320所進行的第二循環冗餘檢查可以不同於第一CRC電路310所進行的第一循環冗餘檢查。第二CRC電路320依據第一CRC電路310所提供的檢查狀態訊息CCS來決定是否進一步改變所述第二CRC碼,以使此第二CRC碼不符合第一資料部D1。
具體而言,當介面電路130接收到第一資料部D1時,第二CRC電路320可根據介面電路130接收到的第一資料部D1產生一個第二CRC碼。當檢查狀態訊息CCS表示第一CRC電路310所進行的第一循環冗餘檢查的結果為正確(即第一資料部D1的內容正確)時,該第二CRC電路320維持符合第一資料部D1的所述第二CRC碼,以及經由介面電路130將此第二CRC碼提供給主機10。主機10可根據接收到的所述經計算CRC碼對第一資料部D1進行循環冗餘檢查,以判斷主機10接收到的第一資料部D1是否無誤。
反之,當檢查狀態訊息CCS表示第一CRC電路310所進行的第一循環冗餘檢查的結果為錯誤(即第一資料部D1內容錯誤)時,第二CRC電路320可進一步改變所述第二CRC碼,使得所述第二CRC碼不符合第一資料部D1。在第二CRC電路320進一步改變此第二CRC碼後,介面電路130從第二CRC電路320接收此第二CRC碼以提供給主機10。當主機10接收到不符合第一資料部D1的第二CRC碼時,主機10將判定介面電路130所提供的第一資料部D1內容錯誤,而進一步地將所接收的第一資料部D1丟棄。依照設計需求,第二CRC電路320可以採取任何手段來進一步將符合第一資料部D1的第二CRC碼改變為不符合第一資料部D1的所述第二CRC碼。舉例而言(但不限於此),在第二CRC電路320藉由進行第二循環冗餘檢查來產生第二CRC碼後,當檢查狀態訊息CCS表示第一CRC電路310所進行的第一循環冗餘檢查的結果為錯誤時,第二CRC電路320可以對第二CRC碼進行位元反轉,藉以將符合第一資料部D1的第二CRC碼改變為不符合第一資料部D1的第二CRC碼。
綜上所述,圖3實施例提出的非揮發性記憶體裝置300可對第一資料部D1進行循環冗餘檢查,並根據第一資料部D1的正確與否,決定是否傳輸正確的CRC碼給主機10。
圖4是結合圖2及圖3之實施例的另一種非揮發性記憶體裝置400的電路方塊示意圖。非揮發性記憶體裝置400耦接至主機10。非揮發性記憶體裝置400可以提供儲存空間給主機10。圖4所示主機10可以參照圖1的相關說明。非揮發性記憶體裝置400可以是PCMCIA卡、CF卡、SMC、隨身碟、MMC(例如RS-MMC、MMC-micro等)、SD卡(例如miniSD、microSD、SDHC等)、UFS裝置、固態硬碟等等。依照不同的應用情境,非揮發性記憶體裝置400可以儲存音訊、影像、視訊資料及/或其他數位資料。
非揮發性記憶體裝置400包括非揮發性記憶體101、錯誤檢查和糾正(ECC)解碼電路110、主緩衝器電路120、控制器210、多工器220、介面電路130、第一循環冗餘檢查(CRC)電路310以及第二CRC電路320。介面電路130透過標準化介面(或非標準介面)耦接至主機10。主機10與介面電路130之間的連接介面可以參照圖1所述非揮發性記憶體裝置100的相關說明來類推。圖4所示非揮發性記憶體101、ECC解碼電路110、主緩衝器電路120、介面電路130以及第一CRC電路310可以分別參照圖1所示非揮發性記憶體101、ECC解碼電路110、主緩衝器電路120、介面電路130以及CRC電路140的相關說明來類推,圖4所示主緩衝器電路120、控制器210、多工器220以及介面電路130可以參照圖2的相關說明,圖4所示ECC解碼電路110、介面電路130、第一CRC電路310以及第二CRC電路320可以參照圖3的相關說明,在此不多加贅述。
在圖4實施例中,ECC解碼電路110對欲讀取的資料(原碼字x)進行ECC解碼,以獲得經解碼碼字,其中所述經解碼碼字可分為至少兩部分,第一部份包含第一資料部D1以及用來檢查第一資料部D1正確性的第一CRC碼C1,第二部份包含第二資料部D2以及用來檢查第二資料部D2正確性的第二CRC碼C2。主緩衝器電路120的輸入端耦接ECC解碼電路110的輸出端,以接收並儲存在經解碼碼字中的第一資料部D1與第二資料部D2。
控制器210可透過控制訊號CS控制多工器220。例如,當主機10對非揮發性記憶體裝置400進行連續讀取時,控制器210可藉由控制訊號CS控制多工器220,以使第一資料部D1與第二資料部D2通過主緩衝器電路120傳輸至介面電路130。當主機10對非揮發性記憶體裝置400進行非連續讀取時,控制器210可藉由控制訊號CS控制多工器220,以使第一資料部D1與第二資料部D2繞過主緩衝器電路120傳輸至介面電路130。
在ECC解碼電路110完成ECC解碼後,第一CRC電路310可以使用第一CRC碼C1來檢查第一資料部D1有無錯誤。當在經解碼碼字中的第一資料部D1沒有錯誤時,主緩衝器電路120可以將第一資料部D1傳輸給介面電路130。除此之外,當第一資料部D1沒有錯誤時,第二CRC電路320將符合第一資料部D1的CRC碼提供給主機10。當第一資料部D1發生錯誤時,第一CRC電路310可發送訊號給主緩衝器電路120,以阻止主緩衝器電路120將錯誤的第一資料部D1傳輸給介面電路130。除此之外,當第一資料部D1發生錯誤時,第一CRC電路310會透過檢查狀態訊息CCS通知第二CRC電路320,而第二CRC電路320依據檢查狀態訊息CCS來將不符合第一資料部D1的CRC碼(被進一步改變的CRC碼)提供給主機10。當主機10接收到不符合第一資料部D1的CRC碼時,主機10將判定介面電路130所提供的第一資料部D1內容錯誤,而進一步地將所接收的第一資料部D1丟棄。
第一CRC電路310還可以使用第二CRC碼C2來檢查第二資料部D2有無錯誤。當在經解碼碼字中的第二資料部D2沒有錯誤時,主緩衝器電路120可以將第二資料部D2傳輸給介面電路130。除此之外,當第二資料部D2沒有錯誤時,第二CRC電路320將符合第二資料部D2的CRC碼提供給主機10。當第二資料部D2發生錯誤時,第一CRC電路310可發送訊號給主緩衝器電路120,以阻止主緩衝器電路120將錯誤的第二資料部D2傳輸給介面電路130。除此之外,當第二資料部D2發生錯誤時,第一CRC電路310會透過檢查狀態訊息CCS通知第二CRC電路320,而第二CRC電路320依據檢查狀態訊息CCS來將不符合第二資料部D2的CRC碼(被進一步改變的CRC碼)提供給主機10。當主機10接收到不符合第二資料部D2的CRC碼時,主機10將判定介面電路130所提供的第二資料部D2內容錯誤,而進一步地將所接收的第二資料部D2丟棄。
圖5A與圖5B是依照本發明不同實施例說明經解碼碼字的資料結構示意圖。圖5A與圖5B所示經解碼碼字的資料結構可適用於前述非揮發性記憶體裝置100、非揮發性記憶體裝置200、非揮發性記憶體裝置300以及/或是非揮發性記憶體裝置400。以圖1所示非揮發性記憶體裝置100為例,ECC解碼電路110所輸出的經解碼碼字的資料結構如圖5A所示,經解碼碼字的長度為1K位元組,其中包括第一CRC碼C1以及第一資料部D1。
以圖4所示非揮發性記憶體裝置400為例,ECC解碼電路110所輸出的經解碼碼字的資料結構如圖5B所示,經解碼碼字的長度為1K位元組,其中包括兩部分,其中這兩部分的長度分別為512位元組。經解碼碼字的第一部份包含第一資料部D1以及用來檢查第一資料部D1正確性的第一CRC碼C1,經解碼碼字的第二部份包含第二資料部D2以及用來檢查第二資料部D2正確性的第二CRC碼C2。如此,藉由將介面電路130每次傳輸的資料長度設定為512位元組,非揮發性記憶體裝置400可以在不須等待整個1K位元組(整個經解碼碼字)進行完循環冗餘檢查的情況下便可以將資料傳輸給主機10,以加快非揮發性記憶體裝置400的讀取速率。
圖6A、圖6B分別說明圖1所示之非揮發性記憶體裝置100與圖4所示之非揮發性記憶體裝置400的管線層級比較的示意圖。圖6A與圖6B所示橫軸表示時間,縱軸表示資料段。在此假設主機10向非揮發性記憶體101讀取的一筆資料長度為4K位元組,而且ECC解碼電路110每次進行解碼的資料長度為1K位元組。請先參照圖1及圖6A。由圖1可知,當使用圖1的相關方法讀取向非揮發性記憶體101讀取一筆資料(4K位元組)時,這4K位元組的資料會被分為四個資料段601、602、603與604(每段1K位元組),並且這四個資料段601~604會依序進入圖1所示管線(pipeline)。所述管線包括了ECC解碼電路110、主緩衝器電路120、輸出緩衝器電路131以及主機界面電路132。以資料段601為例,在期間t11中資料段601從非揮發性記憶體101被輸入至ECC解碼電路110,在期間t12中ECC解碼電路110解碼資料段601而獲得經解碼碼字,在期間t13中此經解碼碼字的第一資料部D1被存入主緩衝器電路120,在期間t14中此第一資料部D1從主緩衝器電路120被存入輸出緩衝器電路131,以及在期間t15中主機界面電路132將此第一資料部D1從輸出緩衝器電路131傳送給主機10。其他資料段602~604可以參照資料段601的說明來類推,故不再贅述。圖6A所示資料段601~604的讀取延遲(read latency)t1可使用下列式子表示: t1 = 4*(資料輸入ECC解碼電路的時間) + (ECC解碼時間) + (資料存入主緩衝器電路時間 ) + (資料存入輸出緩衝器電路時間) + (主機界面電路時間)
接著請參照圖4及圖6B。相同於圖6A所示條件,圖6B所示範例亦假設主機10向非揮發性記憶體101讀取的一筆資料長度為4K位元組,而且ECC解碼電路110每次進行解碼的資料長度為1K位元組。這4K位元組的資料會被分為四個資料段601、602、603與604(每段1K位元組)。由圖4實施例可知,當非揮發性記憶體裝置400操作於第二操作模式,也就是多工器220將其第二輸入端I2耦接至其輸出端時,圖4所示管線包括了ECC解碼電路110、輸出緩衝器電路131以及主機界面電路132。這四個資料段601~604會依序進入圖4所示管線。以資料段601為例,在期間t21中資料段601從非揮發性記憶體101被輸入至ECC解碼電路110,在期間t22中ECC解碼電路110解碼資料段601而獲得經解碼碼字,在期間t23中此經解碼碼字的第一資料部D1被存入輸出緩衝器電路131,以及在期間t24中主機界面電路132將此第一資料部D1從輸出緩衝器電路131傳送給主機10。其他資料段602~604可以參照資料段601的說明來類推,故不再贅述。圖6B所示資料段601~604的讀取延遲t2可使用下列式子表示: t2 = 4*(資料輸入ECC解碼電路的時間) + (ECC解碼時間) + (資料存入輸出緩衝器電路時間) + (主機界面電路時間)
由圖6A與圖6B所示內容可發現,相較於使用圖1的非揮發性記憶體裝置100的讀取延遲t1,當圖4所示非揮發性記憶體裝置400操作於第二操作模式時,非揮發性記憶體裝置400的讀取延遲t2可以被有效縮短。
圖7是依照本發明另一實施例說明圖2所示非揮發性記憶體裝置200的讀取方法的流程示意圖。在步驟S701中,非揮發性記憶體裝置200利用ECC解碼電路110將原碼字x解碼為經解碼碼字。在步驟S703中,根據主機10對非揮發性記憶體裝置200所執行讀取操作的特性(連續讀取或非連續讀取),控制器210可以對應控制多工器220以選擇操作模式。若選擇第一操作模式,則進入步驟S705。若選擇第二操作模式,則進入步驟S709。在步驟S705中,即在第一操作模式中,非揮發性記憶體裝置200可將ECC解碼電路110所輸出的經解碼碼字的第一資料部D1通過主緩衝器電路120傳輸至介面電路130。接著,在步驟S707中,由介面電路130將第一資料部D1提供給主機10。在步驟S709中,即在第二操作模式中,非揮發性記憶體裝置200可將ECC解碼電路110所輸出的第一資料部D1繞過主緩衝器電路120傳輸至介面電路130。而後,在步驟S711中,由介面電路130將第一資料部D1提供給主機10。
圖8是依照本發明另一實施例說明圖3所示非揮發性記憶體裝置300的讀取方法的流程示意圖。在步驟S801中,非揮發性記憶體裝置300利用ECC解碼電路110將原碼字x解碼為經解碼碼字,其中所述經解碼碼字包括第一資料部D1與第一CRC碼C1。在ECC解碼電路110完成解碼而產生所述經解碼碼字後,第一CRC電路310可以對ECC解碼電路110所提供的第一資料部D1進行第一循環冗餘檢查(CRC),並且基於此第一循環冗餘檢查的結果與第一CRC碼C1的關係來產生檢查狀態訊息CCS。在步驟S803中,由介面電路130提供第一資料部D1給主機10。在步驟S805中,由第二CRC電路320對介面電路130所提供的第一資料部D1進行第二循環冗餘檢查,以產生第二CRC碼。
在步驟S807中,由第二CRC電路320基於檢查狀態訊息CCS來判斷第一資料部D1是否正確。依據檢查狀態訊息CCS,第二CRC電路320可以決定是否進一步改變步驟S805所產生的第二CRC碼以使此第二CRC碼不符合第一資料部D1。當檢查狀態訊息CCS表示第一CRC電路310的第一循環冗餘檢查的結果為正確(亦即第一資料部D1正確)時,進入步驟S809。在步驟S809中,第二CRC電路320維持(不改變)步驟S805所產生的第二CRC碼,並將符合第一資料部D1的此第二CRC碼提供給主機10。當檢查狀態訊息CCS表示第一CRC電路310的第一循環冗餘檢查的結果為錯誤(亦即第一資料部D1為錯誤)時,則進入步驟S811。在步驟S811中,第二CRC電路320將進一步改變步驟S805所產生的第二CRC碼,以使此第二CRC碼不符合第一資料部D1。在改變此第二CRC碼後,第二CRC電路320將改變後的第二CRC碼經由主機界面電路132提供給主機10。
圖9是依照本發明另一實施例說明圖4所示非揮發性記憶體裝置400的讀取方法的流程示意圖。在步驟S901中,非揮發性記憶體裝置400利用ECC解碼電路110將原碼字x解碼為經解碼碼字。在步驟S903中,根據主機10對非揮發性記憶體裝置400所執行讀取操作的特性(連續讀取或非連續讀取),控制器210可以對應控制多工器220以選擇操作模式。若選擇第一操作模式,則進入步驟S905。若選擇第二操作模式,則進入步驟S913。
主緩衝器電路120會接收並暫存ECC解碼電路110所輸出的經解碼碼字的第一資料部D1。在步驟S905中,即在第一操作模式中,第一CRC電路310會對第一資料部D1進行第一循環冗餘檢查。當步驟S905判定第一資料部D1的檢查結果為正確時,進入步驟S907。在步驟S907中,主緩衝器電路120會將第一資料部D1傳輸至介面電路130。接著,在步驟S909中,由介面電路130將第一資料部D1提供給主機10。當步驟S905判定第一資料部D1的檢查結果為錯誤時,會進入步驟S911。在步驟S911中,第一CRC電路310可發送訊號給主緩衝器電路120,通知其第一資料部D1內容錯誤,阻止主緩衝器電路120將第一資料部D1繼續往介面電路130傳輸。
在步驟S913中,即在第二操作模式中,非揮發性記憶體裝置400可將第一資料部D1繞過主緩衝器電路120傳輸至介面電路130。在ECC解碼電路110完成解碼而產生所述經解碼碼字後,第一CRC電路310可以對ECC解碼電路110所提供的第一資料部D1進行第一循環冗餘檢查(CRC),並且基於此第一循環冗餘檢查的結果與第一CRC碼C1的關係來產生檢查狀態訊息CCS給第二CRC電路320。在步驟S915中,介面電路130提供第一資料部D1給主機10。當第一資料部D1傳輸至介面電路130時,第二CRC電路320會對介面電路130所提供的第一資料部D1進行第二循環冗餘檢查,以產生符合第一資料部D1的CRC碼。在步驟S917中,第二CRC電路320基於檢查狀態訊息CCS來判斷第一資料部D1是否正確。依據檢查狀態訊息CCS,第二CRC電路320可以決定是否進一步改變步驟S915所產生的CRC碼以使此CRC碼不符合第一資料部D1。當檢查狀態訊息CCS表示第一CRC電路310的第一循環冗餘檢查的結果為正確(亦即第一資料部D1正確)時,進入步驟S919。在步驟S919中,第二CRC電路320不改變步驟S915所產生的CRC碼,亦即維持步驟S915所產生的CRC碼以符合第一資料部D1。第二CRC電路320經由主機界面電路132將符合第一資料部D1的CRC碼提供給主機10。當檢查狀態訊息CCS表示第一CRC電路310的第一循環冗餘檢查的結果為錯誤(亦即第一資料部D1為錯誤)時,則進入步驟S921。在步驟S921中,第二CRC電路320進一步改變步驟S915所產生的CRC碼,以使原本符合第一資料部D1的CRC碼變為不符合第一資料部D1。在改變此CRC碼後,第二CRC電路320將不符合第一資料部的此CRC碼提供給主機10。
值得注意的是,在不同的應用情境中,非揮發性記憶體裝置及/或主機的相關功能可以利用一般的編程語言(programming languages,例如C或C++)、硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的軟體(或韌體)可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述軟體(或韌體)。所述軟體(或韌體)可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述軟體(或韌體)的編程碼(programming codes)。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
綜上所述,本發明實施例所提供的非揮發性記憶體裝置及其讀取方法可以減少非揮發性記憶體裝置行非連續讀取時所須經歷的管線層級。據此,實施例所提供的非揮發性記憶體裝置可以提升非連續讀取的速率。此外,實施例所提供的非揮發性記憶體裝置可在快閃記憶體與主機的介面處,透過改變循環冗餘檢查碼的方式以將傳輸資料的檢查結果提供給主機,避免主機使用錯誤的傳輸資料。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
100、200、300、400‧‧‧非揮發性記憶體裝置
101‧‧‧非揮發性記憶體
110‧‧‧錯誤檢查和糾正解碼電路
120‧‧‧主緩衝器電路
130‧‧‧介面電路
131‧‧‧輸出緩衝器電路
132‧‧‧主機界面電路
140‧‧‧循環冗餘檢查電路
210‧‧‧控制器
220‧‧‧多工器
310‧‧‧第一循環冗餘檢查電路
320‧‧‧第二循環冗餘檢查電路
601、602、603、604‧‧‧資料段
1K‧‧‧一千
C1‧‧‧第一循環冗餘檢查碼
C2‧‧‧第二循環冗餘檢查碼
CS‧‧‧控制訊號
CCS‧‧‧檢查狀態訊息
D1‧‧‧第一資料部
D2‧‧‧第二資料部
I1‧‧‧第一輸入端
I2‧‧‧第二輸入端
S701、S703、S705、S707、S709、S711、S801、S803、S805、S807、S809、S811、S901、S903、S905、S907、S909、S911、S913、S915、S917、S919、S921‧‧‧步驟
t11、t12、t13、t14、t15、t21、t22、t23、t24‧‧‧期間
t1、t2‧‧‧時間
x‧‧‧原碼字
圖1說明一種非揮發性記憶體裝置的電路方塊示意圖。 圖2是依照本發明一實施例說明一種非揮發性記憶體裝置的電路方塊示意圖。 圖3是依照本發明另一實施例說明一種非揮發性記憶體裝置的電路方塊示意圖。 圖4是結合圖2及圖3之實施例的另一種非揮發性記憶體裝置的電路方塊示意圖。 圖5A與圖5B是依照本發明不同實施例說明經解碼碼字的資料結構示意圖。 圖6A說明圖1所示非揮發性記憶體裝置的管線層級的示意圖。 圖6B說明圖4所示非揮發性記憶體裝置的管線層級的示意圖。 圖7是依照本發明另一實施例說明圖2所示非揮發性記憶體裝置的讀取方法的流程示意圖。 圖8是依照本發明另一實施例說明圖3所示非揮發性記憶體裝置的讀取方法的流程示意圖。 圖9是依照本發明另一實施例說明圖4所示非揮發性記憶體裝置的讀取方法的流程示意圖。

Claims (26)

  1. 一種非揮發性記憶體裝置,包括: 一錯誤檢查和糾正解碼電路,用以將一原碼字解碼為一經解碼碼字; 一主緩衝器電路,耦接該錯誤檢查和糾正解碼電路的一輸出端以接收並儲存該經解碼碼字的一第一資料部; 一多工器,具有一第一輸入端以耦接該主緩衝器電路的一輸出端,且具有一第二輸入端以耦接該錯誤檢查和糾正解碼電路的該輸出端以接收該第一資料部,其中在一第一操作模式中該多工器選擇性將該多工器的該第一輸入端耦接至該多工器的一輸出端,且在一第二操作模式中該多工器選擇性將該多工器的該第二輸入端耦接至該多工器的該輸出端;以及 一介面電路,耦接該多工器的該輸出端,其中該介面電路從該多工器的該輸出端接收該第一資料部以提供給一主機。
  2. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中當該主機對該非揮發性記憶體裝置進行一連續讀取操作時,該多工器操作於該第一操作模式,以及當該主機對該非揮發性記憶體裝置進行一非連續讀取操作時,該多工器操作於該第二操作模式。
  3. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該經解碼碼字包括該第一資料部與一第一循環冗餘檢查碼,而該非揮發性記憶體裝置更包括: 一第一循環冗餘檢查電路,耦接至該錯誤檢查和糾正解碼電路以接收該第一資料部與該第一循環冗餘檢查碼,該第一循環冗餘檢查電路被配置為對該第一資料部進行一第一循環冗餘檢查,並且基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第一資料部給該多工器。
  4. 如申請專利範圍第3項所述的非揮發性記憶體裝置,其中該經解碼碼字更包括一第二資料部與一第二循環冗餘檢查碼,而該第一循環冗餘檢查電路對該第二資料部進行該第一循環冗餘檢查,並且基於該第二資料部的該第一循環冗餘檢查的結果與該第二循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第二資料部給該多工器。
  5. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該經解碼碼字包括該第一資料部與一第一循環冗餘檢查碼,而該非揮發性記憶體裝置更包括: 一第一循環冗餘檢查電路,耦接至該錯誤檢查和糾正解碼電路以接收該第一資料部與該第一循環冗餘檢查碼,該第一循環冗餘檢查電路被配置為對該第一資料部進行一第一循環冗餘檢查,並且基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來產生一檢查狀態訊息;以及 一第二循環冗餘檢查電路,耦接至該介面電路以接收該第一資料部,該第二循環冗餘檢查電路被配置為對該第一資料部進行一第二循環冗餘檢查以產生並提供一第二循環冗餘檢查碼, 其中該第二循環冗餘檢查電路依據該檢查狀態訊息來決定是否進一步改變該第二循環冗餘檢查碼以使該第二循環冗餘檢查碼不符合該第一資料部。
  6. 如申請專利範圍第5項所述的非揮發性記憶體裝置,其中, 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為正確時,該第二循環冗餘檢查電路維持符合該第一資料部的該第二循環冗餘檢查碼; 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,該第二循環冗餘檢查電路進一步改變該第二循環冗餘檢查碼,以使該第二循環冗餘檢查碼不符合該第一資料部;以及 該介面電路從該第二循環冗餘檢查電路接收該第二循環冗餘檢查碼以提供給該主機。
  7. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中在該第二循環冗餘檢查電路藉由進行該第二循環冗餘檢查來產生該第二循環冗餘檢查碼後,當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,該第二循環冗餘檢查電路對該第二循環冗餘檢查碼進一步進行位元反轉,以使該第二循環冗餘檢查碼不符合該第一資料部。
  8. 一種非揮發性記憶體裝置的讀取方法,包括: 利用一錯誤檢查和糾正解碼電路將一原碼字解碼為一經解碼碼字; 在一第一操作模式中,將該經解碼碼字的一第一資料部通過一主緩衝器電路傳輸至一介面電路; 在一第二操作模式中,將該第一資料部繞過該主緩衝器電路傳輸至該介面電路;以及 由該介面電路將該第一資料部提供給一主機。
  9. 如申請專利範圍第8項所述的讀取方法,其中當該主機對該非揮發性記憶體裝置進行一連續讀取操作時,該非揮發性記憶體裝置操作於該第一操作模式,以及當該主機對該非揮發性記憶體裝置進行一非連續讀取操作時,該非揮發性記憶體裝置操作於該第二操作模式。
  10. 如申請專利範圍第8項所述的讀取方法,其中該經解碼碼字包括該第一資料部與一第一循環冗餘檢查碼,而該非揮發性記憶體裝置的讀取方法更包括: 對該第一資料部進行第一循環冗餘檢查,並且基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第一資料部。
  11. 如申請專利範圍第10項所述的讀取方法,其中該經解碼碼字更包括一第二資料部與一第二循環冗餘檢查碼,而該非揮發性記憶體裝置的讀取方法更包括: 對該第二資料部進行該第一循環冗餘檢查,並且基於該第二資料部的該第二循環冗餘檢查的結果與該第二循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第二資料部。
  12. 如申請專利範圍第8項所述的讀取方法,其中該經解碼碼字包括該第一資料部與一第一循環冗餘檢查碼,而該非揮發性記憶體裝置的讀取方法更包括: 由一第一循環冗餘檢查電路對該第一資料部進行一第一循環冗餘檢查,並且基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來產生一檢查狀態訊息; 由一第二循環冗餘檢查電路對該第一資料部進行一第二循環冗餘檢查,以產生並提供一第二循環冗餘檢查碼;以及 依據該檢查狀態訊息來決定是否進一步改變該第二循環冗餘檢查碼以使該第二循環冗餘檢查碼不符合該第一資料部。
  13. 如申請專利範圍第12項所述的讀取方法,其中 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為正確時,維持符合該第一資料部的該第二循環冗餘檢查碼,以及將該第二循環冗餘檢查碼提供給該主機; 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,改變該第二循環冗餘檢查碼,以使該第二循環冗餘檢查碼不符合該第一資料部,以及 將該第二循環冗餘檢查碼提供給該主機。
  14. 一種非揮發性記憶體裝置,包括: 一錯誤檢查和糾正解碼電路,用以將一原碼字解碼為一經解碼碼字,其中該經解碼碼字包括一第一資料部與一第一循環冗餘檢查碼; 一介面電路,耦接該錯誤檢查和糾正解碼電路的一輸出端以接收該第一資料部,其中該介面電路用以提供該第一資料部給一主機; 一第一循環冗餘檢查電路,耦接至該錯誤檢查和糾正解碼電路以接收該第一資料部與該第一循環冗餘檢查碼,該第一循環冗餘檢查電路被配置為對該第一資料部進行一第一循環冗餘檢查,並且基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來產生一檢查狀態訊息;以及 一第二循環冗餘檢查電路,耦接至該介面電路以接收該第一資料部,該第二循環冗餘檢查電路被配置為對該第一資料部進行一第二循環冗餘檢查以產生一第二循環冗餘檢查碼, 其中該第二循環冗餘檢查電路依據該檢查狀態訊息來決定是否進一步改變該第二循環冗餘檢查碼以使該第二循環冗餘檢查碼不符合該第一資料部。
  15. 如申請專利範圍第14項所述的非揮發性記憶體裝置,其中, 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為正確時,該第二循環冗餘檢查電路維持符合該第一資料部的該第二循環冗餘檢查碼; 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,該第二循環冗餘檢查電路進一步改變該第二循環冗餘檢查碼,以使該第二循環冗餘檢查碼不符合該第一資料部;以及 該介面電路從該第二循環冗餘檢查電路接收該第二循環冗餘檢查碼以提供給該主機。
  16. 如申請專利範圍第15項所述的非揮發性記憶體裝置,其中在該第二循環冗餘檢查電路藉由進行該第二循環冗餘檢查來產生該第二循環冗餘檢查碼後,當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,該第二循環冗餘檢查電路對該第二循環冗餘檢查碼進一步進行位元反轉,以使該第二循環冗餘檢查碼不符合該第一資料部。
  17. 如申請專利範圍第14項所述的非揮發性記憶體裝置,更包括: 一主緩衝器電路,耦接該錯誤檢查和糾正解碼電路的一輸出端以接收並儲存該第一資料部,並且耦接該第一循環冗餘檢查電路;以及 一多工器,具有一第一輸入端以耦接該主緩衝器電路的一輸出端,且具有一第二輸入端以耦接該錯誤檢查和糾正解碼電路的該輸出端以接收該第一資料部,其中在一第一操作模式中該多工器選擇性將該多工器的該第一輸入端耦接至該多工器的一輸出端,且在一第二操作模式中該多工器選擇性將該多工器的該第二輸入端耦接至該多工器的該輸出端。
  18. 如申請專利範圍第17項所述的非揮發性記憶體裝置,其中當該主機對該非揮發性記憶體裝置進行一連續讀取操作時,該非揮發性記憶體裝置操作於該第一操作模式,以及當該主機對該非揮發性記憶體裝置進行一非連續讀取操作時,該非揮發性記憶體裝置操作於該第二操作模式。
  19. 如申請專利範圍第17項所述的非揮發性記憶體裝置,其中該第一循環冗餘檢查電路基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第一資料部給該多工器。
  20. 如申請專利範圍第19項所述的非揮發性記憶體裝置,其中該經解碼碼字更包括一第二資料部與一第三循環冗餘檢查碼,而該第一循環冗餘檢查電路對該第二資料部進行該第一循環冗餘檢查,並且基於該第二資料部的該第一循環冗餘檢查的結果與該第三循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第二資料部給該多工器。
  21. 一種非揮發性記憶體裝置的讀取方法,包括: 利用一錯誤檢查和糾正解碼電路將一原碼字解碼為一經解碼碼字,其中該經解碼碼字包括一第一資料部與一第一循環冗餘檢查碼; 由一介面電路提供該第一資料部給一主機; 由一第一循環冗餘檢查電路對該錯誤檢查和糾正解碼電路所提供的該第一資料部進行一第一循環冗餘檢查,並且基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來產生一檢查狀態訊息; 由一第二循環冗餘檢查電路對該介面電路所提供的該第一資料部進行一第二循環冗餘檢查,以產生一第二循環冗餘檢查碼;以及 依據該檢查狀態訊息來決定是否進一步改變該第二循環冗餘檢查碼以使該第二循環冗餘檢查碼不符合該第一資料部。
  22. 如申請專利範圍第21項所述的讀取方法,其中, 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為正確時,維持符合該第一資料部的該第二循環冗餘檢查碼; 當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,改變該第二循環冗餘檢查碼,以使該第二循環冗餘檢查碼不符合該第一資料部;以及 將該第二循環冗餘檢查碼提供給該主機。
  23. 如申請專利範圍第22項所述的讀取方法,其中在藉由進行該第二循環冗餘檢查來產生該第二循環冗餘檢查碼後,當該檢查狀態訊息表示該第一循環冗餘檢查的結果為錯誤時,對該第二循環冗餘檢查碼進一步進行位元反轉,以使該第二循環冗餘檢查碼不符合該第一資料部。
  24. 如申請專利範圍第21項所述的讀取方法,更包括: 基於該第一循環冗餘檢查的結果與該第一循環冗餘檢查碼的關係來決定是否阻止一主緩衝器電路輸出該第一資料部給一多工器, 其中該主緩衝器電路的一輸入端耦接該錯誤檢查和糾正解碼電路的一輸出端以接收並儲存該第一資料部, 該多工器的一第一輸入端耦接該主緩衝器電路的一輸出端,該多工器的一第二輸入端耦接該錯誤檢查和糾正解碼電路的該輸出端以接收該第一資料部,在一第一操作模式中該多工器選擇性將該多工器的該第一輸入端耦接至該多工器的一輸出端,且在一第二操作模式中該多工器選擇性將該多工器的該第二輸入端耦接至該多工器的該輸出端。
  25. 如申請專利範圍第24項所述的讀取方法,其中當該主機對該非揮發性記憶體裝置進行一連續讀取操作時,該非揮發性記憶體裝置操作於該第一操作模式,以及當該主機對該非揮發性記憶體裝置進行一非連續讀取操作時,該非揮發性記憶體裝置操作於該第二操作模式。
  26. 如申請專利範圍第24項所述的讀取方法,其中該經解碼碼字更包括一第二資料部與一第三循環冗餘檢查碼,且所述讀取方法更包括: 對該第二資料部進行該第一循環冗餘檢查,並且基於該第二資料部的該第一循環冗餘檢查的結果與該第三循環冗餘檢查碼的關係來決定是否阻止該主緩衝器電路輸出該第二資料部給該多工器。
TW106115688A 2017-05-12 2017-05-12 非揮發性記憶體裝置及其讀取方法 TWI625620B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW106115688A TWI625620B (zh) 2017-05-12 2017-05-12 非揮發性記憶體裝置及其讀取方法
CN201710473837.1A CN107402837B (zh) 2017-05-12 2017-06-21 非易失性存储器装置及其读取方法
US15/662,254 US10783032B2 (en) 2017-05-12 2017-07-27 Non-volatile memory apparatus and reading method thereof
US16/985,241 US11334429B2 (en) 2017-05-12 2020-08-05 Non-volatile memory apparatus and reading method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106115688A TWI625620B (zh) 2017-05-12 2017-05-12 非揮發性記憶體裝置及其讀取方法

Publications (2)

Publication Number Publication Date
TWI625620B TWI625620B (zh) 2018-06-01
TW201901426A true TW201901426A (zh) 2019-01-01

Family

ID=60404799

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106115688A TWI625620B (zh) 2017-05-12 2017-05-12 非揮發性記憶體裝置及其讀取方法

Country Status (3)

Country Link
US (2) US10783032B2 (zh)
CN (1) CN107402837B (zh)
TW (1) TWI625620B (zh)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) * 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
CN110166166B (zh) * 2018-02-14 2022-01-28 瑞昱半导体股份有限公司 网络数据处理装置及方法
US20190286342A1 (en) * 2018-03-16 2019-09-19 Seagate Technology Llc Efficient storage drive read-write head verification
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11048443B1 (en) * 2020-03-25 2021-06-29 Sandisk Technologies Llc Non-volatile memory interface
JP7018089B2 (ja) 2020-04-02 2022-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
WO2022053157A1 (en) * 2020-09-14 2022-03-17 Huawei Technologies Co., Ltd. Fault resistant verification
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4201927B2 (ja) * 1999-08-25 2008-12-24 株式会社ルネサステクノロジ データ処理管理装置
US7191379B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
JP2008103991A (ja) * 2006-10-19 2008-05-01 Oki Electric Ind Co Ltd データ伝送方法
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
US8024637B2 (en) * 2007-04-02 2011-09-20 Broadcom Corporation Super block error correction code (ECC) adaptable to communication systems including hard disk drives (HDDs) and other memory storage devices
KR100882484B1 (ko) * 2007-04-10 2009-02-09 삼성전자주식회사 에러 검출 기능을 가지는 반도체 메모리 장치, 이를 구비한메모리 시스템 및 반도체 메모리 장치의 데이터 출력 방법
CN101246742B (zh) * 2008-03-25 2010-06-16 威盛电子股份有限公司 电子装置与其数据传输方法
US8181101B2 (en) * 2009-01-30 2012-05-15 International Business Machines Corporation Data bus system, its encoder/decoder and encoding/decoding method
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法
TWI460733B (zh) * 2011-11-15 2014-11-11 Silicon Motion Inc 具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法
CN102567134B (zh) * 2012-01-06 2015-01-07 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法
TWI520501B (zh) * 2012-06-07 2016-02-01 威盛電子股份有限公司 記憶體控制器
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
JP5931816B2 (ja) * 2013-08-22 2016-06-08 株式会社東芝 ストレージ装置
US9213600B2 (en) * 2013-11-11 2015-12-15 Seagate Technology Llc Dynamic per-decoder control of log likelihood ratio and decoding parameters
KR102108386B1 (ko) * 2013-12-23 2020-05-08 삼성전자주식회사 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들
US9417945B2 (en) * 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
US20160071597A1 (en) * 2014-09-09 2016-03-10 Kabushiki Kaisha Toshiba Storage device, memory controller and memory control method
US11551735B2 (en) * 2015-03-11 2023-01-10 Rambus, Inc. High performance, non-volatile memory module
US9450609B1 (en) * 2015-03-31 2016-09-20 Altera Corporation Methods and apparatus for embedding an error correction code in memory cells
US11061767B2 (en) * 2019-01-09 2021-07-13 Synopsys, Inc. Post-ECC CRC for DDR CRC retry performance improvement
US11086713B1 (en) * 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system

Also Published As

Publication number Publication date
US11334429B2 (en) 2022-05-17
US20180329776A1 (en) 2018-11-15
CN107402837A (zh) 2017-11-28
US20200364110A1 (en) 2020-11-19
US10783032B2 (en) 2020-09-22
CN107402837B (zh) 2021-01-26
TWI625620B (zh) 2018-06-01

Similar Documents

Publication Publication Date Title
TWI625620B (zh) 非揮發性記憶體裝置及其讀取方法
US8726140B2 (en) Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
KR102663812B1 (ko) 데이터의 인코딩과 디코딩을 위한 메모리 시스템
US20110239081A1 (en) Semiconductor storage device and method for controlling a semiconductor storage device
TWI543178B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US8650458B2 (en) Methods of encoding/decoding for error correction code utilizing interdependent portions of codewords and related circuits
KR102411329B1 (ko) 디코딩 성공 추세에 기초한 조정가능한 판독 재시도 순서
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
US8812942B2 (en) Interleaving apparatuses and memory controllers having the same
JP2001175542A (ja) 記録再生装置および半導体メモリ
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
KR20120103276A (ko) 데이터 처리 시스템 및 그것의 에러 정정 코드 처리 방법
US10116335B2 (en) Data processing method, memory storage device and memory control circuit unit
TWI594255B (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
TWI666643B (zh) 非依電性記憶體裝置及其資料去重複方法
US9431132B2 (en) Data managing method, memory control circuit unit and memory storage apparatus
KR102190391B1 (ko) 소스-채널 결합 인코더 회로 또는 소스-채널 결합 디코더 회로를 포함하는 메모리 컨트롤러, 및 이를 포함하는 저장 장치
TW201913382A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
CN107402725B (zh) 非易失性存储装置及其数据去重复方法
KR20120110450A (ko) 에러 정정 디코더 및 그것의 에러 정정 방법
CN110795271A (zh) 对用户数据执行纠错的纠错电路和使用其的纠错方法
US10050643B2 (en) Low-density parity-check apparatus and operation method thereof
US11115055B2 (en) Method and apparatus for encoding and decoding data in memory system
KR102686057B1 (ko) 반도체장치 및 반도체시스템