TW202105400A - 記憶體系統和用於校正記憶體系統中的錯誤的方法 - Google Patents
記憶體系統和用於校正記憶體系統中的錯誤的方法 Download PDFInfo
- Publication number
- TW202105400A TW202105400A TW109116717A TW109116717A TW202105400A TW 202105400 A TW202105400 A TW 202105400A TW 109116717 A TW109116717 A TW 109116717A TW 109116717 A TW109116717 A TW 109116717A TW 202105400 A TW202105400 A TW 202105400A
- Authority
- TW
- Taiwan
- Prior art keywords
- control signal
- data
- memory
- ecc
- operation mode
- Prior art date
Links
Images
Classifications
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申請公開了記憶體系統和用於校正記憶體系統中的錯誤的方法。一種記憶體系統包括:記憶體媒體;迴圈緩衝器,其被配置為在第一操作模式下儲存從記憶體媒體輸出的讀取資料;偽命令發生器,其被配置為在第二操作模式下產生偽命令;以及錯誤校正碼(error correction code, ECC)解碼器,其被配置為回應偽命令來對儲存在迴圈緩衝器中的讀取資料執行ECC解碼操作。
Description
所公開技術的各種實施例係關於記憶體系統,並且具體而言,關於記憶體系統以及校正記憶體系統中的錯誤的方法。
通常,用於在其上傳送資訊的路徑被稱為通道。當使用纜線通訊來傳送資訊時,透過其而傳送資訊的傳輸線可以充當通道。當使用無線通訊來傳送資訊時,通道可以是在其中傳播包括資訊的電磁波的空氣。可以透過通道來執行用於將資料儲存到記憶體媒體(例如,記憶體裝置)中以及用於從記憶體媒體中讀出資料的過程。
當透過通道來傳送資料時,錯誤可能會被包括在資料中。因此,許多努力一直關注於開發用於從錯誤資料中檢測出錯誤並且去除檢測到的錯誤以將錯誤資料恢復為其原始資料的設備和方法。錯誤校正碼(ECC)編碼操作和ECC解碼操作已經廣泛用在包括記憶體媒體的記憶體系統中。ECC編碼操作可以對應於透過在原始資料被傳送以執行寫入操作之前將錯誤控制碼(或錯誤校正碼)添加到原始資料(即,寫入資料)而產生傳輸資料的過程。ECC解碼操作可以對應於執行讀取操作以讀出儲存在記憶體媒體中的資料以及將讀取的資料分為原始資料和添加的碼以將讀取的資料恢復為原始資料的過程。
相關申請的交叉引用
本申請請求於2019年7月17日提交的申請號為10-2019-0086680的韓國專利申請的優先權,其全部內容透過引用合併於此。
根據一個實施例,一種記憶體系統可以包括:記憶體媒體;迴圈緩衝器,其被配置為在第一操作模式下儲存從記憶體媒體輸出的讀取資料;偽命令發生器,其被配置為在第二操作模式下產生偽命令;以及錯誤校正碼(ECC)解碼器,其被配置為回應於偽命令來對儲存在迴圈緩衝器中的讀取資料執行ECC解碼操作。
根據另一實施例,一種記憶體系統可以包括記憶體媒體、命令控制單元、迴圈緩衝器、迴圈計數器和錯誤校正碼(ECC)解碼器。命令控制單元可以被配置為在第一操作模式和第二操作模式下分別產生初步偽命令控制信號和偽命令。迴圈緩衝器可以被配置為在第一操作模式下回應於初步偽命令控制信號而儲存從記憶體媒體輸出的讀取資料,並且被配置為在第二操作模式下回應於偽命令而輸出儲存在迴圈緩衝器中的讀取資料。迴圈計數器可以被配置為在第一操作模式下回應於初步偽命令控制信號而執行重設操作,並且被配置為在第二操作模式下回應於偽命令而輸出迴圈計數器的計數值。ECC解碼器可以被配置為在第一操作模式下對從記憶體媒體輸出的讀取資料執行第一ECC解碼操作,並且被配置為在第二操作模下對從迴圈緩衝器輸出的讀取資料執行第二ECC解碼操作。
根據又一實施例,可以提供一種記憶體系統的錯誤校正方法。該錯誤校正方法可以包括:在第一操作模式下,對從記憶體媒體輸出的讀取資料執行第一錯誤校正碼(ECC)解碼操作並且將從記憶體媒體輸出的讀取資料儲存到迴圈緩衝器中。可以在第二操作模式下對儲存在迴圈緩衝器中的讀取資料執行第二ECC解碼操作。
在實施例的以下描述中,將理解的是,術語“第一”和“第二”旨在標識元件,而不是用於僅定義元件本身或意指特定序列。另外,當元件被稱為位於另一元件“在...上”、“在...上方”、“在...之上”、“在...下方”或“在...之下”時,其意圖是指相對位置關係,但不用於限制該元件直接接觸另一元件或者在它們之間存在至少一個居間元件的某些情況。因此,本文中所使用的諸如“在...上”、“在...上方”、“在...之上”、“在...下”、“在...下方”或“在...之下”等術語僅出於描述特定實施例的目的,而不意圖限制本公開的範圍。此外,當一個元件被稱為“連接”或“耦接”到另一個元件時,該元件可以直接電或機械地連接或耦接到另一個元件,或者可以透過在它們之間置入另一個元件而形成連接關係或耦接關係。
圖1是示出根據本公開的一個實施例的記憶體系統100的方塊圖。參考圖1,記憶體系統100可以被配置為包括記憶體媒體110、不可校正錯誤(uncorrectable-error, UE)處置器(handler)121、偽命令發生器122、迴圈緩衝器140和ECC解碼器160。記憶體媒體110可以是記憶體晶片或記憶體模組。當記憶體媒體110是記憶體晶片時,記憶體媒體110可以包括多個記憶體區域。在這種情況下,可以在對記憶體媒體110的讀取存取期間同時執行針對所有記憶體區域的讀取存取操作。當記憶體媒體110是記憶體模組時,記憶體媒體110可以包括多個記憶體晶片。在這種情況下,可以在對記憶體媒體110的讀取存取期間同時執行針對所有記憶體晶片的讀取存取操作。在一個實施例中,記憶體媒體110可以包括諸如快閃記憶體裝置、相變化記憶體(phase change memory, PCRAM)裝置、電阻式記憶體(resistive memory, ReRAM)裝置、鐵電記憶體(ferroelectric memory, FeRAM)裝置或磁性記憶體(magnetic memory, MRAM)裝置之類的非揮發性記憶體裝置。替代地,記憶體媒體110還可以包括揮發性記憶體裝置,諸如動態隨機存取記憶體(dynamic random access memory, DRAM)裝置。
UE處置器121可以從ECC解碼器160接收ECC解碼資料,並且可以確定操作模式(對應於第一操作模式和第二操作模式中的任意一個)以在所確定的操作模式下產生針對操作的控制信號。在一個實施例中,當透過正常讀取操作和/或再試操作未校正從記憶體媒體110輸出的讀取資料的錯誤時,可以確定第一操作模式,並且當在第一操作模式下未校正從記憶體媒體110輸出的讀取資料的錯誤時,可以確定第二操作模式。UE處置器121可以在第一操作模式下產生初步偽命令控制信號pre_CMD_F。如果產生了初步偽命令控制信號pre_CMD_F,則從記憶體媒體110輸出的讀取資料DATA_R可以被輸入到迴圈緩衝器140和ECC解碼器160。UE處置器121可以在第二操作模式下產生偽命令控制信號CS_CMD_F。偽命令控制信號CS_CMD_F可以被輸入到偽命令發生器122。
偽命令發生器122可以回應於從UE處置器121輸出的偽命令控制信號CS_CMD_F而產生偽命令CMD_F。偽命令CMD_F可以被輸入到迴圈緩衝器140和ECC解碼器160。在一個實施例中,在偽命令控制信號CS_CMD_F沒有被輸入到偽命令發生器122的情況下,偽命令發生器122不會產生命令。如果偽命令CMD_F是由偽命令發生器122產生的,則可以在記憶體系統100中終止對記憶體媒體110的存取。即,當產生偽命令CMD_F時,可能不會執行記憶體媒體110的讀取操作和寫入操作。
迴圈緩衝器140可以在第一操作模式下執行用於將資料儲存到迴圈緩衝器140中的操作,而可以在第二操作模式下執行用於輸出儲存在迴圈緩衝器140中的資料的操作。具體地,迴圈緩衝器140可以在第一操作模式下從UE處置器121接收初步偽命令控制信號pre_CMD_F,並且可以回應於初步偽命令控制信號pre_CMD_F來儲存從記憶體媒體110輸出的讀取資料DATA_R。此外,迴圈緩衝器140可以在第二操作模式下從偽命令發生器122接收偽命令CMD_F,並且可以回應於偽命令CMD_F而將儲存在迴圈緩衝器140中的讀取資料DATA_R輸出到ECC解碼器160。
ECC解碼器160可以對讀取資料DATA_R執行ECC解碼操作以檢測讀取資料DATA_R的錯誤,並且可以在讀取資料DATA_R為錯誤資料時校正讀取資料DATA_R的錯誤。在一個實施例中,可以使用以符號為單位來校正錯誤的裡德-所羅門(Reed-Solomon, RS)編碼方法執行由ECC解碼器160執行的ECC解碼操作。可以在第一操作模式和第二操作模式下使用不同的方法來執行由ECC解碼器160執行的ECC解碼操作。在第一操作模式下,ECC解碼器160可以從記憶體媒體110接收讀取資料DATA_R,而不從迴圈緩衝器140接收讀取資料DATA_R。例如,在第一操作模式下,ECC解碼器160可以直接從記憶體媒體110接收讀取資料DATA_R,而不是透過迴圈緩衝器140從記憶體媒體110接收讀取資料DATA_R。在這種情況下,可以使用通用裡德-所羅門(RS)演算法系統來執行由ECC解碼器160執行的ECC解碼操作。在本實施例中,“使用通用RS演算法系統的ECC解碼操作”可以被定義為在僅使用讀取資料DATA_R中包括的奇偶校驗符號而非抹除符號的情況下為了檢測錯誤位置並校正錯誤而執行的ECC解碼操作。在這種情況下,可以透過奇偶校驗符號的數量來確定可校正符號的數量(即,錯誤校正能力)。在第二操作模式下,ECC解碼器160可以從迴圈緩衝器140接收讀取資料DATA_R。在這種情況下,ECC解碼器160可以使用裡德-所羅門(RS)抹除迴圈方法來執行讀取資料DATA_R的ECC解碼操作。在本實施例中,“使用RS抹除迴圈方法的ECC解碼操作”可以被定義為在順序地抹除符號的情況下為了檢測錯誤位置並校正錯誤而執行的ECC解碼操作。
圖2是示出根據本公開的一個實施例的記憶體系統100的正常讀取操作或再試操作的方塊圖。在圖2中,與圖1中使用的相同的元件符號或字符表示相同的元件。參考圖2,記憶體系統100可以在正常讀取操作或再試操作期間讀出儲存在記憶體媒體110中的資料。在一個實施例中,當讀取命令CMD_R由主機產生並且被傳送到記憶體媒體110時,可以執行正常讀取操作。在一個實施例中,當即使在正常讀取操作期間執行了從記憶體媒體110輸出的讀取資料DATA_R的ECC解碼操作之後還沒有校正讀取資料DATA_R的錯誤時,可以執行再試操作。在這種情況下,可以由UE處置器121產生引起再試操作的再試控制信號。在一個實施例中,可以將在改變讀取電壓的情況下反復地執行讀取操作的電壓劃分(voltage demarcation, VDM)方法應用於再試操作,以校正讀取資料DATA_R的錯誤。讀取電壓可以是用於驅動記憶體媒體110的電壓。
透過正常讀取操作或再試操作從記憶體媒體110輸出的讀取資料DATA_R可以被輸入到ECC解碼器160。迴圈緩衝器140在正常讀取操作或再試操作期間可能不會接收或輸出任何資料。ECC解碼器160可以執行讀取資料DATA_R的ECC解碼操作,並且可以將ECC解碼操作的結果輸出到UE處置器121。在正常讀取操作或再試操作期間,可以使用通用RS演算法系統來執行ECC解碼操作。
可以將由ECC解碼器160產生的ECC解碼的讀取資料DATA_R_D輸入到UE處置器121。UE處置器121可以辨別ECC解碼的讀取資料DATA_R_D中的所有錯誤是否被校正。當ECC解碼的讀取資料DATA_R_D中的所有錯誤被校正時,UE處置器121可以將ECC解碼的讀取資料DATA_R_D傳送到主機,並且可以終止記憶體媒體110的讀取操作。相反,當ECC解碼的讀取資料DATA_R_D中的所有錯誤未被校正時,UE處置器121可以將第一操作模式啟動為操作模式,並且可以執行與第一操作模式有關的控制操作。
圖3是示出根據本公開的一個實施例的在記憶體系統100的第一操作模式下執行的操作的方塊圖。在圖3中,與圖1中使用的相同的元件符號或字符表示相同的元件。參考圖3,如果第一操作模式被啟動,則UE處置器121可以輸出初步偽命令控制信號pre_CMD_F。初步偽命令控制信號pre_CMD_F可以被傳送到記憶體媒體110和迴圈緩衝器140。記憶體媒體110可以回應於初步偽命令控制信號pre_CMD_F而將讀取資料DATA_R輸出到迴圈緩衝器140和ECC解碼器160。將讀取資料DATA_R從記憶體媒體110傳送到迴圈緩衝器140以及將讀取資料DATA_R從記憶體媒體110傳送到ECC解碼器160可以同時或順序地執行。在一個實施例中,如本文關於傳送而使用的詞語“同時”和“同時地”意指傳輸在重疊的時間間隔上發生。例如,如果第一傳輸發生在第一時間間隔上且第二傳輸在第二時間間隔上同時發生,則第一間隔和第二間隔至少部分地彼此重疊,以使得存在第一傳輸和第二傳輸二者都發生的時間。
接收初步偽命令控制信號pre_CMD_F和讀取資料DATA_R的迴圈緩衝器140可以僅儲存讀取資料DATA_R而不輸出讀取資料DATA_R。因此,在第一操作模式下,ECC解碼器160可以從記憶體媒體110接收讀取資料DATA_R。ECC解碼器160可以對從記憶體媒體110輸出的讀取資料DATA_R執行ECC解碼操作,並且可以將讀取資料DATA_R的ECC解碼操作的結果輸出到UE處置器121。還可以在第一操作模式下使用通用RS演算法系統來執行ECC解碼操作,就像在正常讀取操作或再試操作期間執行的ECC解碼操作一樣。
在第一操作模式下,可以透過ECC解碼器160將ECC解碼的讀取資料DATA_R_D輸入到UE處置器121。UE處置器121可以辨別ECC解碼的讀取資料DATA_R_D中的所有錯誤是否被校正。當ECC解碼的讀取資料DATA_R_D中的所有錯誤被校正時,UE處置器121可以將ECC解碼的讀取資料DATA_R_D傳送到主機,並且可以終止記憶體媒體110的讀取操作。相反,當ECC解碼的讀取資料DATA_R_D中的所有錯誤未被校正時,UE處置器121可以啟動第二操作模式。
圖4是示出根據本公開的一個實施例的在記憶體系統100的第二操作模式下執行的操作的方塊圖。在圖4中,與圖1中使用的相同的元件符號或字符表示相同的元件。參考圖4,如果第二操作模式被啟動,則UE處置器121可以產生偽命令控制信號CS_CMD_F。偽命令控制信號CS_CMD_F可以被輸入到偽命令發生器122。偽命令發生器122可以回應於偽命令控制信號CS_CMD_F而輸出偽命令CMD_F。偽命令CMD_F可以被輸入到迴圈緩衝器140和ECC解碼器160。迴圈緩衝器140可以接收偽命令CMD_F以將儲存在迴圈緩衝器140中的讀取資料DATA_R傳送到ECC解碼器160。在產生偽命令CMD_F的第二操作模式下,對記憶體媒體110的存取可以終止。因此,在第二操作模式下,可以不執行記憶體媒體110的讀取操作和寫入操作。
ECC解碼器160可以對從迴圈緩衝器140輸出的讀取資料DATA_R執行ECC解碼操作,並且可以將ECC解碼操作的結果輸出到UE處置器121。在第二操作模式下,ECC解碼操作可以使用抹除迴圈方法來執行。在順序地抹除構成讀取資料DATA_R的一些符號之後,可以使用RS碼系統來執行使用抹除迴圈方法的ECC解碼操作。可以迭代地執行使用抹除迴圈方法的ECC解碼操作,直到所有錯誤被校正或所有符號被抹除為止。
可以將透過抹除迴圈方法從ECC解碼器160輸出的ECC解碼的讀取資料DATA_R_ERD輸入到UE處置器121。UE處置器121可以辨別由抹除迴圈方法產生的ECC解碼的讀取資料DATA_R_ERD中的所有錯誤是否被校正。當ECC解碼的讀取資料DATA_R_ERD中的所有錯誤被校正時,UE處置器121可以將ECC解碼的讀取資料DATA_R_ERD傳送到主機。相反,當ECC解碼的讀取資料DATA_R_ERD中的所有錯誤未被校正時,UE處置器121可以將錯誤校正程序視為最終失敗狀態。最終失敗狀態被定義為記憶體媒體110中的讀取資料DATA_R_ERD不能被校正的狀態。
圖5是示出根據本公開的另一實施例的記憶體系統200的方塊圖。圖6是示出圖5的記憶體系統200中包括的記憶體媒體210的方塊圖。圖7是示出圖5的記憶體系統200中所包括的迴圈緩衝器240的方塊圖,並且圖8是示出圖5的記憶體系統200中所包括的迴圈計數器250的方塊圖。首先,參考圖5,記憶體系統200可以包括記憶體媒體210、命令控制單元(command control unit, CCU)220、記憶體介面邏輯電路230、迴圈緩衝器240、迴圈計數器250、ECC解碼器260、多工器270和媒體調度邏輯電路280。記憶體媒體210可以包括多個記憶體晶片,例如,第一記憶體晶片至第十一記憶體晶片210_0、210_1、210_2、…和210_10,如圖6中所示。第一記憶體晶片至第十一記憶體晶片210_0、210_1、210_2、…和210_10中的每個可以以128位元為單位來接收或輸出資料。即,可以將具有128位元的第一資料DATA_0輸入到第一記憶體晶片210_0或從第一記憶體晶片210_0輸出具有128位元的第一資料DATA_0,並且可以將具有128位元的第二資料DATA_1輸入到第二記憶體晶片210_1或從第二記憶體晶片210_1輸出具有128位元的第二資料DATA_1。另外,也可以將具有128位元的第三資料DATA_2輸入到第三記憶體晶片210_2或從第三記憶體晶片210_2輸出具有128位元的第三資料DATA_2。類似地,可以將具有128位元的第十一資料DATA_10輸入到第十一記憶體晶片210_10或從第十一記憶體晶片210_10輸出具有128位元的第十一資料DATA_10。從第一記憶體晶片210_0至第十一記憶體晶片210_10中的相應記憶體晶片輸出的第一資料DATA_0至第十一資料DATA_10可以構成讀取資料DATA_R。即,透過記憶體媒體210的讀取操作從記憶體媒體210輸出的讀取資料DATA_R可以被配置為包括第一128位元資料DATA_0至第十一128位元資料DATA_10,其被分散並儲存在第一記憶體晶片至第十一記憶體晶片210_0、210_1、210_2、…和210_10中的相應一個中。因此,透過單次讀取操作從記憶體媒體210輸出的讀取資料DATA_R可以被配置為具有176個字節。
命令控制單元(CCU)220可以將從主機290輸出的讀取命令CMD_R傳送到媒體調度邏輯電路280,或者可以產生用於控制讀取資料DATA_R的ECC解碼操作的控制信號和偽命令。在一個實施例中,命令控制單元(CCU)220可以被配置為包括UE處置器221和偽命令發生器222。UE處置器221可以產生ECC解碼的讀取資料DATA_R_D並且當在正常讀取操作期間在ECC解碼的讀取資料DATA_R_D中的所有錯誤被校正時將ECC解碼的讀取資料DATA_R_D傳送給主機290。相反,當ECC解碼的讀取資料DATA_R_D中的所有錯誤未被校正時,UE處置器221可產生再試控制信號CS_RETRY或初步偽命令控制信號pre_CMD_F。
如果產生了再試控制信號CS_RETRY,則可以執行再試操作,並且如果產生了初步偽命令控制信號pre_CMD_F,則第一操作模式可以被啟動。在一個實施例中,初步偽命令控制信號pre_CMD_F可以與再試控制信號CS_RETRY的第一信號一起產生。在另一實施例中,初步偽命令控制信號pre_CMD_F可以與針對根據再試控制信號CS_RETRY執行的多個再試操作之中的最終再試操作的再試控制信號一起產生。在又一個實施例中,每當產生再試控制信號CS_RETRY時,初步偽命令控制信號pre_CMD_F就可以與再試控制信號CS_RETRY一起產生。在又一個實施例中,當在正常讀取操作期間傳送讀取命令CMD_R時,可以產生初步偽命令控制信號pre_CMD_F。可以透過媒體調度邏輯電路280將再試控制信號CS_RETRY或初步偽命令控制信號pre_CMD_F傳送到記憶體介面邏輯電路230。
當從記憶體媒體210輸出的ECC解碼的讀取資料DATA_R_D中的所有錯誤在第一操作模式下被校正時,UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290。相反,如果從記憶體媒體210輸出的ECC解碼的讀取資料DATA_R_D中的所有錯誤在第一操作模式下未被校正,則UE處置器221可以產生偽命令控制信號CS_CMD_F。偽命令控制信號CS_CMD_F可以被輸入到偽命令發生器222。偽命令發生器222可以回應於偽命令控制信號CS_CMD_F而輸出偽命令CMD_F。偽命令CMD_F可以透過媒體調度邏輯電路280而傳送到記憶體介面邏輯電路230。
記憶體介面邏輯電路230可以控制信號的時序,並且可以在存取記憶體媒體210的期間產生各種控制信號。在正常讀取操作期間,記憶體介面邏輯電路230可以回應於從主機290透過命令控制單元(CCU)220和媒體調度邏輯電路280傳送到記憶體介面邏輯電路230的讀取命令CMD_R來輸出儲存在記憶體媒體210中的讀取資料DATA_R。在再試操作期間,記憶體介面邏輯電路230可以回應於從命令控制單元(CCU)220透過媒體調度邏輯電路280傳送到記憶體介面邏輯電路230的再試控制信號CS_RETRY來輸出儲存在記憶體媒體210中的讀取資料DATA_R。在再試操作期間,記憶體介面邏輯電路230可以使用VDM方法來操作,該VDM方法在改變讀取電壓的情況下反復執行讀取操作。在第一操作模式期間,記憶體介面邏輯電路230可以回應於從UE處置器221透過媒體調度邏輯電路280向記憶體介面邏輯電路230傳送的初步偽命令控制信號pre_CMD_F而輸出儲存在記憶體媒體210中的讀取資料DATA_R。在第二操作模式期間,記憶體介面邏輯電路230可以回應於從偽命令發生器222透過媒體調度邏輯電路280傳送到記憶體介面邏輯電路230的偽命令CMD_F來終止對記憶體媒體210的存取。
在正常讀取操作、再試操作或在第一操作模式下執行的操作期間,記憶體介面邏輯電路230可以將儲存在記憶體媒體210中的讀取資料DATA_R傳送到多工器270的第一輸入端子。在第一操作模式下,除了多工器270的第一輸入端子之外,記憶體介面邏輯電路230還可以將從記憶體媒體210輸出的讀取資料DATA_R傳送到迴圈緩衝器240。在一個實施例中,在第一操作模式下,記憶體介面邏輯電路230可以將記憶體媒體210中的讀取資料DATA_R同時傳送到迴圈緩衝器240和多工器270的第一輸入端子兩者。在另一實施例中,在第一操作模式下,記憶體介面邏輯電路230可以在將讀取資料DATA_R傳送到多工器270之後將讀取資料DATA_R傳送到迴圈緩衝器240。
在第一操作模式下,記憶體介面邏輯電路230可以將第一控制信號至第三控制信號CS1、CS2和CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。在第二操作模式下,記憶體介面邏輯電路230可以將偽命令CMD_F以及第一控制信號至第三控制信號CS1、CS2和CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。在第二操作模式下,記憶體介面邏輯電路230還可以將偽命令CMD_F輸出到多工器270的控制端子。在第二操作模式下,記憶體介面邏輯電路230可能不存取記憶體媒體210。因此,在第二操作模式下,不會從記憶體介面邏輯電路230輸出讀取資料DATA_R。
在一個實施例中,第一控制信號CS1可以是具有用於指示第二操作模式的啟動或非啟動的二進制值的一位元信號。在一個實施例中,當第一控制信號CS1具有邏輯“高(1)”位準時,這可能意味著第二操作模式被啟動以產生偽命令CMD_F。相反,當第一控制信號CS1具有邏輯“低(0)”位準時,這可能意味著第二操作模式不被啟動。第三控制信號CS3可以是具有用於指示第一操作模式的啟動或非啟動的二進制值的一位元信號。在一個實施例中,當第三控制信號CS3具有邏輯“高(1)”位準時,這可能意味著第一操作模式被啟動。相反,當第三控制信號CS3具有邏輯“低(0)”位準時,這可能意味著第一操作模式不被啟動。
第二控制信號CS2可以是指示索引的多位元信號。在第一操作模式下,索引可以指定迴圈緩衝器240的用於儲存讀取資料DATA_R的區域,並且可以指定在迴圈計數器250中重設的目標。另外,在第二操作模式下,索引可以指定其中要儲存從迴圈緩衝器240輸出的讀取資料DATA_R的區域,並且可以指定具有要從迴圈計數器250輸出的計數值COUNT_VALUE的目標。可以根據能夠將讀取資料DATA_R儲存在迴圈緩衝器240中的儲存區的數目來確定構成第二控制信號CS2的位元的數目。例如,當迴圈緩衝器240具有能夠儲存讀取資料DATA_R的四個儲存區時,第二控制信號CS2可以是2位元信號。
迴圈緩衝器240可以被配置為包括多個緩衝區(例如,第一緩衝區241至第四緩衝區244(BR_0、BR_1、BR_2和BR_3))和迴圈緩衝器控制器245,如圖7中所示。第一緩衝區241至第四緩衝區244可以透過它們自己的索引彼此區分開。在一個實施例中,第一緩衝區241至第四緩衝區244可以分別具有索引“00”、“01”、“10”和“11”。第一緩衝區241至第四緩衝區244可以用作能夠儲存從記憶體媒體210輸出的讀取資料DATA_R的儲存空間。如參考圖6所描述的,當從記憶體媒體210輸出的讀取資料DATA_R由分散並儲存在第一記憶體晶片210_0至第十一記憶體晶片210_10中的相應一個中的第一128位元資料DATA_0至第十一128位元資料DATA_10構成時,第一緩衝區241至第四緩衝區244中的每一個可以儲存具有176字節的讀取資料DATA_R,其由第一資料DATA_0至第十一資料DATA_10組成。因此,第一緩衝區241至第四緩衝區244中的每一個可以具有等於或大於讀取資料DATA_R的量的儲存容量,例如176字節。
包括在迴圈緩衝器240中的迴圈緩衝器控制器245可以控制用於將讀取資料DATA_R儲存到具有指定索引的緩衝區中的操作或者用於回應於輸入到迴圈緩衝器240的偽命令CMD_F和第一控制信號CS1至第三控制信號CS3而輸出儲存在具有指定索引的緩衝區中的讀取資料DATA_R的操作。因此,由於上述迴圈緩衝器控制器245的控制操作,迴圈緩衝器240可以僅在第一操作模式和第二操作模式下工作,而在正常讀取操作和再試操作期間可能不工作。
迴圈緩衝器控制器245可以接收第三控制信號CS3,以辨別第一操作模式是否被啟動。例如,如果將具有指示第一操作模式的邏輯位準(例如,邏輯“高(1)”位準)的第三控制信號CS3從記憶體介面邏輯電路230傳送到迴圈緩衝器控制器245,則迴圈緩衝器控制器245可以執行用於儲存讀取資料DATA_R的操作。在這種情況下,可以由第二控制信號CS2來確定其中儲存有讀取資料DATA_R的緩衝區。例如,如果第三控制信號CS3具有邏輯“高(1)”位準並且第二控制信號CS2具有邏輯位準組合“10”,則迴圈緩衝器控制器245可以將操作模式視為第一操作模式,並且可以將從記憶體媒體210透過記憶體介面邏輯電路230輸出的讀取資料DATA_R儲存到迴圈緩衝器240的第一緩衝區241至第四緩衝區244之中的索引為“10”的第三緩衝區243中。
迴圈緩衝器控制器245可以接收偽命令CMD_F和第一控制信號CS1,以辨別第二操作模式是否被啟動。例如,如果具有指示第二操作模式的邏輯位準(例如,邏輯“高(1)”位準)的第一控制信號CS1從記憶體介面邏輯電路230傳送到迴圈緩衝器控制器245並且偽命令CMD_F從記憶體介面邏輯電路230傳送到迴圈緩衝器控制器245,則迴圈緩衝器控制器245可以執行用於輸出讀取資料DATA_R的操作。在這種情況下,可以透過第二控制信號CS2來確定其中儲存要輸出的讀取資料DATA_R的緩衝區。例如,如果利用偽命令CMD_F將具有邏輯“高(1)”位準的第一控制信號CS1和具有邏輯位準組合“10”的第二控制信號CS2輸入到迴圈緩衝器控制器245,則迴圈緩衝器控制器245可以將操作模式視為第二操作模式,並且可以輸出儲存在迴圈緩衝器240的第一緩衝區241至第四緩衝區244之中的索引為“10”的第三緩衝區243中的讀取資料DATA_R。
迴圈計數器250可以被配置為包括多個計數器(例如,第一計數器251至第四計數器254(COUNT_0、COUNT_1、COUNT_2和COUNT_3))和迴圈計數器控制器255,如圖8中所示。第一計數器251至第四計數器254可以透過它們自己的索引彼此區分開。在一個實施例中,第一計數器251至第四計數器254可以分別具有索引“00”、“01”、“10”和“11”。第一計數器251至第四計數器254的索引可以分別對應於第一緩衝區241至第四緩衝區244的索引。因此,迴圈計數器250的計數器的數目可以等於迴圈緩衝器240的緩衝區的數目。具體地,第一計數器251可以對迴圈緩衝器240的第一緩衝區241執行計數操作,並且第二計數器252可以對迴圈緩衝器240的第二緩衝區242執行計數操作。類似地,第三計數器253可以對迴圈緩衝器240的第三緩衝區243執行計數操作,並且第四計數器254可以對迴圈緩衝器240的第四緩衝區244執行計數操作。
包括在迴圈計數器250中的迴圈計數器控制器255可以回應於輸入到迴圈計數器250的第一控制信號至第三控制信號CS1~CS3和偽命令CMD_F來控制第一計數器251至第四計數器254之中的由第二控制信號CS2指定的計數器的計數值輸出/計數操作或重設操作。由於上述迴圈計數器控制器255的控制操作,迴圈計數器250可以僅在第一操作模式和第二操作模式下工作,而在正常讀取操作和再試模式下可能不工作。
迴圈計數器控制器255可以接收第三控制信號CS3以辨別第一操作模式是否被啟動。例如,如果具有指示第一操作模式的邏輯位準(例如,邏輯“高(1)”位準)的第三控制信號CS3從記憶體介面邏輯電路230傳送到迴圈計數器控制器255,則迴圈計數器控制器255可以執行第一計數器251至第四計數器254之中的由第二控制信號CS2的索引所指定的計數器的重設操作。透過重設操作重設的計數器的計數值COUNT_VALUE可以被初始化。例如,如果第三控制信號CS3具有邏輯“高(1)”位準並且第二控制信號CS2具有邏輯位準組合“10”,則迴圈計數器控制器255可以將操作模式視為第一操作,並且可以使迴圈計數器250的第一計數器251至第四計數器254中的具有“10”的索引的第三計數器253重設。
迴圈計數器控制器255可以接收偽命令CMD_F和第一控制信號CS1,以辨別第二操作模式是否被啟動。例如,如果具有指示第二操作模式的邏輯位準(例如,邏輯“高(1)”位準)的第一控制信號CS1從記憶體介面邏輯電路230傳送到迴圈計數器控制器255並且偽命令CMD_F從記憶體介面邏輯電路230傳送到迴圈計數器控制器255,則迴圈計數器控制器255可以執行第一計數器251至第四計數器254之中的由第二控制信號CS2指定的計數器的計數值輸出/計數操作。例如,如果利用偽命令CMD_F將具有邏輯“高(1)”位準的第一控制信號CS1和具有邏輯位準組合“10”的第二控制信號CS2輸入到迴圈計數器控制器255,則迴圈計數器控制器255可以將操作模式視為第二操作模式,並且可以執行用於輸出索引為“10”的第三計數器253的計數值COUNT_VALUE並用於使第三計數器253的計數值COUNT_VALUE增大1的計數操作。儘管結合透過迴圈計數器控制器255輸出計數器的計數值COUNT_VALUE的情況描述了本實施例,但是本公開不限於此。在一些其他實施例中,計數器的計數值COUNT_VALUE可以直接從迴圈計數器250輸出,而無需透過迴圈計數器控制器255傳送,並且僅計數器的計數操作可以由迴圈計數器控制器255執行。
第一計數器251至第四計數器254中的每個的計數值COUNT_VALUE可以指示在第二操作模式下在使用抹除迴圈方法的ECC解碼操作期間要抹除的符號。如圖6中所示,從記憶體媒體210輸出的讀取資料DATA_R可以由從第一記憶體晶片至第十一記憶體晶片210_0、210_1、210_2、…和210_10中的相應一個輸出的第一資料至第十一資料DATA_0、DATA_1、DATA_2、…和DATA_10組成。使用針對讀取資料DATA_R的抹除迴圈方法的ECC解碼操作可以被執行與構成讀取資料DATA_R的第一資料至第十一資料DATA_0、DATA_1、DATA_2、…和DATA_10的數目至少相同的次數,直到錯誤被校正。因此,利用改變被抹除的符號,可以順序地執行從第一迴圈的ECC解碼操作到第十一迴圈的ECC解碼操作的十一個ECC解碼操作。
具體地,在抹除由從第一記憶體晶片210_0輸出的第一資料DATA_0組成的第一符號之後,可以執行第一迴圈的ECC解碼操作。在這種情況下,從迴圈計數器250輸出的計數值COUNT_VALUE可以具有指定要抹除的第一符號的二進制數。接下來,在抹除由從第二記憶體晶片210_1輸出的第二資料DATA_1組成的第二符號之後,可以執行第二迴圈的ECC解碼操作。在這種情況下,從迴圈計數器250輸出的計數值COUNT_VALUE可以具有指定要抹除的第二符號的二進制數。類似地,在抹除由從第三記憶體晶片210_2輸出的第三資料DATA_2組成的第三符號之後,可以執行第三迴圈的ECC解碼操作。在這種情況下,從迴圈計數器250輸出的計數值COUNT_VALUE可以具有指定要抹除的第三符號的二進制數。以這種方式,每當執行第四迴圈至第十一迴圈的ECC解碼操作時,可以從迴圈計數器250輸出具有指定要抹除的符號的二進制數的計數值COUNT_VALUE。
可以根據使用抹除迴圈方法的ECC解碼操作被執行的次數來確定第一計數器251至第四計數器254的每一個的計數值COUNT_VALUE的二進制數中所包括的位元的數目。像本實施例一樣,當從第一迴圈的ECC解碼操作到第十一個迴圈的ECC解碼操作執行了十一次ECC解碼操作時,計數值COUNT_VALUE可以由4位元的二進制數組成,以指定要刪除的所有符號。在這種情況下,計數值COUNT_VALUE“0000”可以指定由從第一記憶體晶片210_0輸出的第一資料DATA_0組成的第一符號,並且計數值COUNT_VALUE “0001”可以指定由從第二記憶體晶片210_1輸出的第二資料DATA_1組成的第二符號。以這種方式,計數值COUNT_VALUE“1010”可以指定由從第十一記憶體晶片210_10輸出的第十一資料DATA_10組成的第十一符號。
儘管在附圖中未示出,但是如本領域所習知的,ECC解碼器260可以被配置為包括校驗子算術元件、錯誤位置多項式算術元件、錯誤位置算術元件和錯誤校正算術元件。ECC解碼器260可以執行讀取資料DATA_R的ECC解碼操作以校正包括在讀取資料DATA_R中的錯誤。ECC解碼器260可以從多工器270接收讀取資料DATA_R。ECC解碼器260可以將ECC解碼的讀取資料DATA_R_D輸出到命令控制單元(CCU)220的UE處置器221。ECC解碼器260可以從記憶體介面邏輯電路230接收偽命令CMD_F和第一控制信號CS1至第三控制信號CS3。ECC解碼器260可以從迴圈計數器250接收計數值COUNT_VALUE。
在執行正常讀取操作或再試操作或著第一操作模式被啟動的情況下,ECC解碼器260可以對從多工器270輸出的讀取資料DATA_R執行ECC解碼操作。在這種情況下,可以使用通用RS演算法系統來執行ECC解碼操作。如參考圖8所描述的,在正常讀取操作、再試操作和第一操作模式下的某些操作期間,迴圈計數器250不會產生計數值COUNT_VALUE。因此,在正常讀取操作,再試操作和第一操作模式下的某些操作期間,ECC解碼器260可以使用通用RS演算法系統僅執行ECC解碼操作,而可能不使用抹除迴圈方法來執行ECC解碼操作。在第二操作模式下,ECC解碼器260可以使用抹除迴圈方法對從多工器270輸出的讀取資料DATA_R執行ECC解碼操作。在第二操作模式下,ECC解碼器260可以在抹除由從迴圈計數器250輸出的計數值COUNT_VALUE所指定的符號之後執行ECC解碼操作。可以保持在其中執行了使用抹除迴圈方法的ECC解碼操作的第二操作模式,直到在使用抹除迴圈方法的ECC解碼操作期間校正了讀取資料DATA_R的錯誤或者在執行了所有迴圈的ECC解碼操作之後讀取資料DATA_R最終被視為不可校正的資料為止。
多工器270可以具有第一輸入端子(在圖5中由“0”表示)和第二輸入端子(在圖5中由“1”表示)。多工器270可以透過第一輸入端子“0”從記憶體媒體210接收讀取資料DATA_R。多工器270可以透過第二輸入端子“1”接收儲存在迴圈緩衝器240中的讀取資料DATA_R。多工器270可以根據輸入到多工器270的控制端子的偽命令CMD_F的存在或不存在而將輸入到第一輸入端子“0”的讀取資料DATA_R和輸入到第二輸入端子“1”的讀取資料DATA_R中的一個選擇性地輸出到ECC解碼器260。具體地,如果沒有將偽命令CMD_F輸入到多工器270的控制端子,則多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R選擇性地輸出到ECC解碼器260。因為在第二操作模式下產生了偽命令CMD_F,所以在正常讀取操作、再試操作以及在第一操作模式中執行的一些操作期間從記憶體媒體210讀出的讀取資料DATA_R可以透過多工器270輸出。相反,如果偽命令CMD_F被輸入到多工器270的控制端子,則多工器270可以將輸入到第二輸入端子“1”的讀取資料DATA_R選擇性地輸出到ECC解碼器260。因為在第二操作模式下產生了偽命令CMD_F,所以在第二操作模式下,儲存在迴圈緩衝器240中的讀取資料DATA_R可以透過多工器270輸出。
媒體調度邏輯電路280可以從命令控制單元(CCU)220接收命令和控制信號,並且可以根據記憶體媒體210的狀態而在適當的定時將命令和控制信號傳送到記憶體介面邏輯電路230。具體地,媒體調度邏輯電路280可以將透過命令控制單元(CCU)220從主機290輸出的寫入命令或讀取命令CMD_R傳送到記憶體介面邏輯電路230。媒體調度邏輯電路280可以將偽命令CMD_F從命令控制單元(CCU)220的偽命令發生器222傳送到記憶體介面邏輯電路230。媒體調度邏輯電路280可以將再試控制信號CS_RETRY或初步偽命令控制信號pre_CMD_F從命令控制單元(CCU)220的UE處置器221傳送到記憶體介面邏輯電路230。
圖9是示出記憶體系統200的正常讀取操作的流程圖,並且圖10是示出記憶體系統200的正常讀取操作的方塊圖。在圖10中,與圖5中使用的相同的元件符號或字符表示相同的元件。參考圖9和圖10,如果在步驟311從主機290產生了讀取命令CMD_R,則記憶體系統200可以執行正常讀取操作。具體地,命令控制單元(CCU)220可以從主機290接收讀取命令CMD_R,以透過媒體調度邏輯電路280將讀取命令CMD_R傳送到記憶體介面邏輯電路230。在該過程期間,媒體調度邏輯電路280可以將從主機290產生的讀取命令CMD_R的形式改變為能夠在記憶體介面邏輯電路230中處理的另一種形式。儘管在附圖中未示出,但是主機290還可以利用讀取命令CMD_R輸出地址。
在步驟312,記憶體介面邏輯電路230可以回應於讀取命令CMD_R來存取記憶體媒體210。該過程可以透過存取構成記憶體媒體210的多個記憶體晶片(例如,第一記憶體晶片210_0至第十一記憶體晶片210_10)來執行,如參考圖6所述。具體地說,記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到多工器270的第一輸入端子“0”,並且還可以將具有邏輯“低(0)”位準的第一控制信號CS1和具有邏輯“低(0)”位準的第三控制信號CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。因為第一控制信號CS1和第三控制信號CS3二者均具有邏輯“低(0)”位準,所以迴圈緩衝器240和迴圈計數器250不工作。因為偽命令CMD_F沒有被輸入到多工器270的控制端子,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R輸出到ECC解碼器260。
在步驟313,ECC解碼器260可以對從記憶體媒體210輸出的讀取資料DATA_R執行ECC解碼操作。在此過程期間,可以使用通用RS演算法系統來執行ECC解碼操作。ECC解碼器260可以執行ECC解碼操作以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將第一控制信號CS1和第三控制信號CS3傳送到UE處置器221。
在步驟314,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D,以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟314將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟315)。相反,如果在步驟314將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則可以執行再試操作。
圖11是示出記憶體系統200的再試操作的流程圖,並且圖12是示出記憶體系統200的再試操作的方塊圖。在圖12中,與圖5中使用的相同的元件符號或字符表示相同的元件。在本實施例中,再試操作可以被定義為當讀取資料DATA_R的錯誤未被正常讀取操作校正時,以預定次數迭代地執行ECC解碼操作以校正讀取資料DATA_R的錯誤的過程。參考圖11和圖12,在步驟321,UE處置器221可以輸出再試控制信號CS_RETRY。可以透過媒體調度邏輯電路280將再試控制信號CS_RETRY傳送到記憶體介面邏輯電路230。在步驟322,記憶體介面邏輯電路230可以回應於再試控制信號CS_RETRY而存取記憶體媒體210。該過程可以與記憶體介面邏輯電路230回應於讀取命令CMD_R而存取記憶體媒體210的過程相同。
記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。具體地,記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到多工器270的第一輸入端子“0”,並且還可以將具有邏輯“低(0)”位準的第一控制信號CS1和具有邏輯“低(0)”位準的第三控制信號CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。因為像正常讀取操作那樣第一控制信號CS1和第三控制信號CS3二者都具有邏輯“低(0)”位準,所以迴圈緩衝器240和迴圈計數器250都不工作。因為沒有將偽命令CMD_F輸入到多工器270的控制端子,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R輸出到ECC解碼器260。
在步驟323,ECC解碼器260可以對從記憶體媒體210輸出的讀取資料DATA_R執行ECC解碼操作。如在正常讀取操作期間執行的那樣,可以使用通用RS演算法系統來執行ECC解碼操作。ECC解碼器260可以執行ECC解碼操作以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將第一控制信號CS1和第三控制信號CS3傳送到UE處置器221。
在步驟324,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D,以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟324處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟325)。相反,如果在步驟324將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則在步驟326可以辨別再試操作的次數是否等於預定次數。在一個實施例中,再試操作的次數可以是預定的,並且可以根據錯誤校正能力而被設置為不同。例如,如果錯誤校正能力變大(即,在設計階段可校正符號的數目增加),則可以將迭代執行的再試操作的次數設置為減少。相反,如果錯誤校正能力變小(即,在設計階段減少了可校正符號的數目),則可以將迭代執行的再試操作的次數設置為增加。
如果在步驟326處迭代執行的再試操作的次數等於預定次數,則第一操作模式可以被啟動。如果在步驟326處迭代執行的再試操作的次數小於預定次數,則在步驟327處可以調整讀取電壓。在一個實施例中,隨著再試操作的次數增加,可以將讀取電壓調整為更高,以便增大錯誤校正的可能性。在步驟327處調整了讀取電壓之後,該過程可以被反饋到步驟321,以使得UE處置器221在步驟321處輸出再試控制信號CS_RETRY。後續過程可以與上述那些相同。可以迭代地執行再試操作,直到在再試操作期間校正了讀取資料DATA_R的錯誤或者迭代執行的再試操作的次數等於預定次數為止。本文中關於參數所使用的詞語“預定”(諸如預定次數)意指在過程或演算法中使用該參數之前已確定該參數的值。對於一些實施例,在過程或演算法開始之前確定該參數的值。在其他實施例中,在過程或演算法期間但在過程或演算法中使用該參數之前確定該參數的值。
圖13是示出在記憶體系統200的第一操作模式下執行的操作的流程圖,並且圖14是示出在記憶體系統200的第一操作模式下執行的操作的方塊圖。在圖14中,與圖5中使用的元件符號或字符相同的元件符號或字符表示相同的元件。在本實施例中,第一操作模式可以被定義為當即使透過迭代執行的再試操作也沒有校正讀取資料DATA_R的錯誤時用於啟動第二操作模式的初步過程。參考圖13和圖14,在步驟331處,UE處置器221可以輸出初步偽命令控制信號pre_CMD_F。可以透過媒體調度邏輯電路280將初步偽命令控制信號pre_CMD_F傳送到記憶體介面邏輯電路230。在步驟332,記憶體介面邏輯電路230可以回應於初步偽命令控制信號pre_CMD_F而存取記憶體媒體210。該過程可以與記憶體介面邏輯電路230回應於讀取命令CMD_R或再試控制信號CS_RETRY來存取記憶體媒體210的過程相同。
記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。此外,記憶體介面邏輯電路230可以將讀取資料DATA_R從記憶體媒體210傳送到迴圈緩衝器240。具體地,記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到多工器270的第一輸入端子“0”。在這種情況下,因為沒有將偽命令CMD_F輸入到多工器270的控制端子中,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R輸出到ECC解碼器260。
記憶體介面邏輯電路230可以將具有邏輯“低(0)”位準的第一控制信號CS1和具有邏輯“低(0)”位準的第三控制信號CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。因為第一控制信號CS1具有邏輯“低(0)”位準,所以在步驟333處ECC解碼器260可以使用通用RS演算法系統執行讀取資料DATA_R的ECC解碼操作,如關於正常讀取操作和再試操作所描述的那樣。同時,因為第三控制信號CS3具有邏輯“高(1)”位準,所以在步驟334可以將讀取資料DATA_R儲存到迴圈緩衝器240中,並且可以將迴圈計數器250重設。儘管在圖13中用兩個分開的框示出了步驟333和334,但是在一些實施例中可以同時執行步驟333和334。
在下文中將更詳細地描述步驟333。ECC解碼器260可以對從記憶體媒體210輸出的讀取資料DATA_R執行ECC解碼操作。如關於正常讀取操作或再試操作所描述的那樣,可以使用通用RS演算法系統來執行ECC解碼操作。ECC解碼器260可以執行ECC解碼操作以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將第一控制信號CS1和第三控制信號CS3傳送到UE處置器221。
在下文中將更詳細地描述步驟334。迴圈緩衝器240可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以儲存從記憶體媒體210輸出的讀取資料DATA_R。如參考圖7所描述的那樣,透過迴圈計數器250中所包括的迴圈計數器控制器255的控制操作,讀取資料DATA_R可以被儲存到具有由第二控制信號CS2指定的索引“00”的第一緩衝區241中。此外,如參考圖8所描述的那樣,迴圈計數器250可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以透過迴圈計數器控制器255的控制操作將具有由第二控制信號CS2指定的索引“00”的第一計數器251重設。
在步驟335,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D,以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟335處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟336)。相反,如果在步驟335處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則第二操作模式可以被啟動。
圖15是示出在記憶體系統200的第二操作模式下執行的操作的流程圖。圖16、圖17和圖18是示出在記憶體系統200的第二操作模式下執行的操作的方塊圖,並且圖19、圖20和圖21是示出在記憶體系統200的第二操作模式下利用抹除迴圈方法執行的ECC解碼操作的示意圖。在圖16至圖18中,與圖5中使用的元件符號或字符相同的元件符號或字符表示相同的元件。在本實施例中,第二操作模式可以被定義為當透過再試操作沒有校正讀取資料DATA_R的錯誤時使用抹除迴圈方法來執行ECC解碼操作的過程。參考圖15和圖16,在步驟341處,UE處置器221可以產生偽命令控制信號CS_CMD_F並將其輸出到偽命令發生器222。在步驟342,偽命令發生器222可以回應偽命令控制信號CS_CMD_F而產生並輸出偽命令CMD_F。可以將偽命令CMD_F透過媒體調度邏輯電路280輸入到記憶體介面邏輯電路230。
在步驟343,ECC解碼器260可以使用抹除迴圈方法對從迴圈緩衝器240輸出的讀取資料DATA_R執行ECC解碼操作。在這種情況下,可以透過從迴圈計數器250輸出的計數值COUNT_VALUE來選擇要抹除的符號。更具體地,記憶體介面邏輯電路230可以接收偽命令CMD_F以中斷記憶體介面邏輯電路230對記憶體媒體210的存取。因此,記憶體媒體210中的讀取資料DATA_R可能沒有被輸入到多工器270的第一輸入端子“0”。對記憶體媒體210的存取的中斷可以保持直到第二操作模式終止為止。
記憶體介面邏輯電路230可以接收偽命令CMD_F以產生具有邏輯“高(1)”位準的第一控制信號CS1、具有邏輯位準組合“00”的第二控制信號CS2、以及具有邏輯“低(0)”位準的第三控制信號CS3。記憶體介面邏輯電路230可以將偽命令CMD_F傳送到迴圈緩衝器240、迴圈計數器250、ECC解碼器260和多工器270的控制端子中的每一個。另外,記憶體介面邏輯電路230可以將具有邏輯“高(1)”位準的第一控制信號CS1、具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“低(0)”位準的第三控制信號CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。
迴圈緩衝器240可以回應於具有邏輯“高(1)”位準的第一控制信號CS1和偽命令CMD_F而輸出儲存在由具有邏輯位準組合“00”的第二控制信號CS2所指定的第一緩衝區241中的讀取資料DATA_R,如參考圖7所描述的。迴圈計數器250可以輸出由具有邏輯位準組合“00”的第二控制信號CS2所指定的第一計數器251的計數值(即,“0000”),如參考圖8所描述的。
因為第一控制信號CS1具有邏輯“高(1)”位準,所以在步驟343處,ECC解碼器260可以使用抹除迴圈方法對讀取資料DATA_R執行ECC解碼操作。在本實施例中,因為第三控制信號CS3具有邏輯“低(0)”位準,所以可能不執行迴圈緩衝器240的儲存操作和迴圈計數器250的重設操作。根據步驟343的詳細描述,ECC解碼器260可以使用抹除迴圈方法對儲存在迴圈緩衝器240中的讀取資料DATA_R執行ECC解碼操作。使用抹除迴圈方法的ECC解碼操作可以被迭代地執行幾個迴圈(例如,十一個迴圈)。在一個實施例中,迴圈的數目可以等於構成記憶體媒體210的記憶體晶片的數目。
如圖19中所示的,儲存在迴圈緩衝器240的第一緩衝區241中的讀取資料DATA_R可以被配置為包括第一資料DATA_0至第十一資料DATA_10。第一資料DATA_0至第十一資料DATA_10可以是從構成記憶體媒體210的第一記憶體晶片至第十一記憶體晶片中的相應記憶體晶片輸出的資料。第一資料DATA_0可以構成第一符號SB_0。第二資料DATA_1可以構成第二符號SB_1。第三資料DATA_2可以構成第三符號SB_2。以這種方式,第十一資料DATA_10可以構成第十一符號SB_10。第一符號SB_0至第十一符號SB_10中的每一個可以包括多個單位符號。例如,如果每個單位符號由8位元資料組成,則第一符號SB_0至第十一符號SB_10中的每一個可以包括16個單位符號。在使用抹除迴圈方法的ECC解碼操作期間,可以在由第一資料DATA_0組成的第一符號SB_0被抹除之後執行第一迴圈,所述第一資料DATA_0是從第一記憶體晶片輸出的並被儲存在迴圈緩衝器240中。
再次參考圖16,ECC解碼器260可以使用抹除迴圈方法來執行ECC解碼操作的第一迴圈,以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將偽命令CMD_F、第一控制信號CS1至第三控制信號CS3以及計數值COUNT_VALUE傳送到UE處置器221,以使得UE處置器221識別ECC解碼條件。
在步驟344,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D,以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟344將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟345)。相反,如果在步驟344將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則在步驟346可以辨別計數值COUNT_VALUE是否等於預定值。
如果在步驟346計數值COUNT_VALUE不等於預定值(即,未執行使用抹除迴圈方法的ECC解碼操作的所有迴圈),則在步驟347迴圈計數器250可以將計數值COUNT_VALUE增加1。在本實施例中,計數值COUNT_VALUE可以是具有四個位元的二進制流。在這種情況下,如參考圖8所描述的,具有由具有邏輯位準組合“00”的第二控制信號CS2指定的索引“00”的第一計數器251的計數值COUNT_VALUE可以從二進制數“0000”增加為二進制數“0001”。如果在步驟347計數值COUNT_VALUE增加,則該過程可以被反饋到步驟341,以使得步驟341~343被再次順序地執行。再次執行的步驟341和342可以與在第一迴圈中執行的步驟341和342相同。再次執行的步驟343可以與先前執行的步驟343的不同之處僅在於迴圈的順序。
如圖17中所示的,可以將計數值COUNT_VALUE“0001”從迴圈計數器250傳送到ECC解碼器260。因此,ECC解碼器260可以使用抹除迴圈方法執行第二迴圈的ECC解碼操作。如圖20中所示的,可以在由第二資料DATA_1組成的第二符號SB_1被抹除之後執行第二迴圈,所述第二資料DATA_1是從第二記憶體晶片輸出的並被儲存在迴圈緩衝器240中。
隨後,在步驟344處,可以將使用上述抹除迴圈方法的ECC解碼操作從第三迴圈順序地且迭代地執行到第十一迴圈,直到讀取資料DATA_R的錯誤被視為被校正為止。在第十迴圈中,迴圈計數器250的計數值COUNT_VALUE可以增加以具有二進制數“1010”。如圖18中所示的,在第十一迴圈中,可以將計數值COUNT_VALUE“1011”從迴圈計數器250傳送到ECC解碼器260。因此,ECC解碼器260可以執行第十一迴圈的ECC解碼操作。如圖21中所示的,可以在由第十一資料DATA_10組成的第十一符號SB_10被抹除之後執行第十一迴圈,所述第十一資料DATA_10是從第十一記憶體晶片輸出的並被儲存在迴圈緩衝器240中。如果迴圈計數器250的計數值COUNT_VALUE與預定值(例如“1011”)一致,則命令控制單元(CCU)220的UE處置器221可以將錯誤校正程序(即,失敗模式)視為最終故障狀態,並且可能會終止讀取資料DATA_R的讀取操作。
圖22是示出在記憶體系統200的第一操作模式/再試操作模式下執行的操作的示例的流程圖。圖23和圖24是示出在記憶體系統200的第一操作模式/再試操作模式下執行的操作的示例的方塊圖。在圖23和圖24中,與圖5中使用元件符號或字符相同的元件符號或字符表示相同的元件。根據本實施例,當在正常讀取操作之後未校正讀取資料DATA_R的錯誤時,可以與第一操作模式下的過程一起執行第一再試操作。
首先,可以執行從圖9的步驟311到步驟314所示的正常讀取操作,如參考圖9和圖10所描述的。接下來,參考圖22和圖23,當在圖9的步驟314處錯誤沒有被校正時,則在步驟421處,UE處置器221可以輸出再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F。可以透過媒體調度邏輯電路280將再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F傳送到記憶體介面邏輯電路230。在步驟422,記憶體介面邏輯電路230可以回應於再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F來存取記憶體媒體210。該過程可以與記憶體介面邏輯電路230回應於讀取命令CMD_R來存取記憶體媒體210的過程相同。
記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。具體地,記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到多工器270的第一輸入端子“0”,並且還可以將具有邏輯“低(0)”位準的第一控制信號CS1、具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。因為偽命令CMD_F沒有被輸入到多工器270的控制端子,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R傳送到ECC解碼器260。因為第一控制信號CS1具有邏輯“低(0)”位準,所以在步驟423處ECC解碼器260可以使用通用RS演算法系統來執行讀取資料DATA_R的ECC解碼操作,如關於正常讀取操作所描述的那樣。
在步驟424,可以辨別當前再試操作是否為第一再試操作。如果在步驟424處當前再試操作對應於第一再試操作,則從記憶體媒體210輸出的讀取資料DATA_R可以被儲存到迴圈緩衝器240中,並且在步驟425處,迴圈計數器250可以被重設。儘管在圖22中用兩個分開的框示出了步驟424和425,但是在一些實施例中,步驟423、424和425可以同時執行。即,由ECC解碼器260執行的對從記憶體媒體210輸出的讀取資料DATA_R進行解碼的ECC解碼操作可以與用於將從記憶體媒體210輸出的讀取資料DATA_R儲存到迴圈緩衝器240中的儲存操作和用於使迴圈計數器250重設的重設操作同時執行。
在下文中將更詳細地描述步驟423。ECC解碼器260可以對從記憶體媒體210輸出的讀取資料DATA_R執行ECC解碼操作。如關於正常讀取操作所描述的,可以使用通用RS演算法系統來執行ECC解碼操作。ECC解碼器260可以執行ECC解碼操作以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將第一控制信號CS1、第二控制信號CS2和第三控制信號CS3傳送到UE處置器221。
在下文中將更詳細地描述步驟425。迴圈緩衝器240可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以儲存從記憶體媒體210輸出的讀取資料DATA_R。如參考圖7所描述的,透過迴圈計數器250中所包括的迴圈計數器控制器255的控制操作,讀取資料DATA_R可以被儲存到具有由第二控制信號CS2所指定的索引“00”的第一緩衝區241中。此外,如參考圖8所描述的,迴圈計數器250可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以透過迴圈計數器控制器255的控制操作使具有由第二控制信號CS2指定的索引“00”的第一計數器251重設。
在步驟426,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D,以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟426將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟427)。相反,如果在步驟426將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則在步驟428處可以辨別再試操作的執行次數是否等於預定次數。如果執行再試操作的次數小於預定次數(即,當前再試操作為第一再試操作),則在步驟429處可以調整讀取電壓。在一個實施例中,可以透過增大讀取電壓來執行讀取電壓的調整,以便增大錯誤校正的可能性。在步驟429處調整了讀取電壓之後,在步驟430處可以產生再試控制信號CS_RETRY,並且然後可以將該過程反饋到步驟422以從記憶體媒體210輸出讀取資料DATA_R。
隨後,可以順序且迭代地執行步驟422至430,直到從記憶體媒體210輸出的讀取資料DATA_R的錯誤被校正或迭代執行再試操作的次數等於預定次數為止。在這種情況下,在第一再試操作之後可以省略步驟425。具體地,如圖24中所示的,在步驟422,記憶體介面邏輯電路230可以回應於再試控制信號CS_RETRY而存取記憶體媒體210。記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。具體地,記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到多工器270的第一輸入端子“0”,並且還可以將具有邏輯“低(0)”位準的第一控制信號CS1和具有邏輯“低(0)”位準的第三控制信號CS3傳送到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。因為偽命令CMD_F沒有被輸入到多工器270的控制端子,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R傳送到ECC解碼器260。因為第一控制信號CS1具有邏輯“低(0)”位準,所以在步驟423處,ECC解碼器260可以使用通用RS演算法系統來執行讀取資料DATA_R的ECC解碼操作,如關於正常讀取操作所述的那樣。
由於在步驟424處當前再試操作為第二再試操作,所以UE處置器221可以辨別讀取資料DATA_R的錯誤是否被校正(參見步驟426)。如果在步驟426處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟427)。相反,如果在步驟426處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則在步驟428處可以辨別再試操作的執行次數是否等於預定次數。如果執行再試操作的次數等於預定次數,則第二操作模式可以被啟動。第二操作模式的過程可以與參考圖15至圖21描述的相同。相反,如果迭代執行的再試操作的次數小於預定次數,則在步驟429處可以調整讀取電壓,並且在步驟430處可以產生再試控制信號CS_RETRY。
隨著迭代地執行再試操作,讀取電壓可能會越來越高。這可能導致儲存在記憶體媒體210中的讀取資料DATA_R的附加的錯誤發生。然而,根據本實施例,在執行第一次再試操作的期間,在步驟425處,從記憶體媒體210輸出的讀取資料DATA_R被儲存到迴圈緩衝器240中。因此,即使在迭代執行了預定次數的再試操作之後,由於升高的讀取電壓也會產生讀取資料DATA_R的附加錯誤,所以可以在第一次再試操作期間使用儲存在迴圈緩衝器240中的讀取資料DATA_R來執行第二操作模式下的ECC解碼操作。
圖25是示出在記憶體系統200的第一操作模式/再試操作模式下執行的過程的另一示例的流程圖。圖26是示出在記憶體系統200的第一操作模式/再試操作模式下執行的過程的另一示例的方塊圖,並且圖27是示出用於在記憶體系統200的第一操作模式/再試操作模式下將讀取資料DATA_R儲存到迴圈緩衝器240中的程序的示意圖。在圖26中,與圖5中使用的相同的元件符號或字符表示相同的元件。在圖27中,與圖7中使用的相同的元件符號或字符表示相同的元件。由於每當重複執行再試操作時讀取電壓都會升高,因此讀取資料DATA_R的錯誤狀態可能會改變成不同。在本實施例中,每當重複執行再試操作時,還可以啟動第一操作模式以在第一操作模式下執行再試操作。因此,可以將具有不同錯誤狀態的多組讀取資料DATA_R儲存到迴圈緩衝器240中。因此,在第二操作模式下,可以透過對具有不同錯誤狀態的多組讀取資料DATA_R執行ECC解碼操作來進一步提高錯誤校正概率,所述不同的錯誤狀態被儲存在迴圈緩衝器240中。
首先,可以執行從圖9的步驟311到步驟314所示的正常讀取操作,如參考圖9和圖10所描述的。接下來,參考圖25和圖26,當在圖9的步驟314處錯誤沒有被校正時,在步驟521處可以設置第二控制信號CS2的初始值。在一個實施例中,如果第二控制信號CS2為2位元的二進制流,則可以將第二控制信號CS2的初始值設置為具有二進制數“00”。在步驟522,UE處置器221可以輸出再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F。可以透過媒體調度邏輯電路280將再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F傳送到記憶體介面邏輯電路230。在步驟523,記憶體介面邏輯電路230可以回應於再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F來存取記憶體媒體210。該過程可以與記憶體介面邏輯電路230回應於讀取命令CMD_R來存取記憶體媒體210的過程相同。
記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。具體地,記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到多工器270的第一輸入端子“0”,並且還可以將具有邏輯“低(0)”位準的第一控制信號CS1、具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3輸出到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。因為偽命令CMD_F沒有被輸入到多工器270的控制端子,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R傳送到ECC解碼器260。因為第一控制信號CS1具有邏輯“低(0)”位準,所以在步驟524處ECC解碼器260可以使用通用RS演算法系統來執行讀取資料DATA_R的ECC解碼操作,如關於正常讀取操作所描述的。
在步驟525,可以將從記憶體媒體210輸出的讀取資料DATA_R儲存到迴圈緩衝器240中,並且可以將迴圈計數器250重設。儘管在圖25中用兩個分開的框示出步驟524和525,但是可以同時執行步驟524和525。下文將更詳細地描述步驟524。ECC解碼器260可以對從記憶體媒體210輸出的讀取資料DATA_R執行ECC解碼操作。如關於正常讀取操作所描述的,可以使用通用RS演算法系統來執行ECC解碼操作。ECC解碼器260可以執行ECC解碼操作以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將第一控制信號CS1、第二控制信號CS2和第三控制信號CS3傳送到UE處置器221。
下文將更詳細地描述步驟525。迴圈緩衝器240可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以儲存從記憶體媒體210輸出的讀取資料DATA_R。如圖27所示的,透過包括在迴圈計數器250中的迴圈計數器控制器255的控制操作,可以將透過第一再試操作輸出的讀取資料DATA_R_1R儲存到具有由第二控制信號CS2指定的索引“00”的第一緩衝區241中。另外,如參考圖8所述的,迴圈計數器250可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以透過迴圈計數器控制器255的控制操作使具有由第二控制信號CS2指定的索引“00”的第一計數器251重設。
在步驟526,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D,以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟526處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟527)。相反,如果在步驟526處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則在步驟528處可以辨別執行再試操作的次數是否等於預定次數。如果在步驟528處迭代執行的再試操作的次數等於預定次數,則第二操作模式可以被啟動。第二操作模式的過程可以與參考圖15至圖21描述的相同。相反,如果在步驟528處執行再試操作的次數小於預定次數,則在步驟529處可以調整讀取電壓,並且在步驟530處可以使第二控制信號CS2增加二進制數“1”。因此,第二控制信號CS2可以從“00”改變為“01”。在第二控制信號CS2增加之後,該過程可以被反饋到步驟522以產生再試控制信號CS_RETRY和初步偽命令控制信號pre_CMD_F。
隨後,可以順序地並且迭代地執行步驟523至526。如果在步驟526處將讀取資料DATA_R視為錯誤資料,則可以透過包括在迴圈計數器250中的迴圈計數器控制器255的控制操作將由第一操作模式的第二過程和第二再試操作輸出的讀取資料DATA_R_2R儲存到具有由第二控制信號CS2指定的索引“01”的第二緩衝區242中,如圖27中所示。另外,如參考圖8所述的,迴圈計數器250可以接收具有邏輯位準組合“01”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3以透過迴圈計數器控制器255的控制操作使具有由第二控制信號CS2指定的索引“01”的第二計數器252重設。
如果在步驟528處執行再試操作的次數小於預定次數,則可以執行包括第一操作模式的第三過程和第三再試操作的第三迴圈。在這種情況下,第二控制信號CS2可以從二進制數“01”改變為二進制數“10”。透過迴圈計數器250中包括的迴圈計數器控制器255的控制操作,可以將透過第一操作模式的第三過程和第三再試操作輸出的讀取資料DATA_R_3R儲存到具有由第二控制信號CS2指定的索引“10”的第三緩衝區243中,如圖27所示的。另外,如參考圖8所描述的,迴圈計數器250可以接收具有邏輯位準組合(即,二進制數)“10”的第二控制信號CS2和具有邏輯“高(1)”邏輯位準的第三控制信號CS3,以透過迴圈計數器控制器255的控制操作將具有由第二控制信號CS2指定的索引“10”的第三計數器253重設。
如果在步驟528處執行再試操作的次數小於預定次數,則可以執行包括第一操作模式的第四過程和第四再試操作的第四迴圈。在這種情況下,第二控制信號CS2可以從二進制數“10”改變為二進制數“11”。透過迴圈計數器250中包括的迴圈計數器控制器255的控制操作,可以將透過第一操作模式的第四過程和第四再試操作輸出的讀取資料DATA_R_4R儲存到具有由第二控制信號CS2指定的索引“11”的第四緩衝區244中,如圖27所示的。另外,如參考圖8所描述的,迴圈計數器250可以接收具有邏輯位準組合(即,二進制數)“11”的第二控制信號CS2和具有邏輯“高(1)”邏輯位準的第三控制信號CS3,以透過迴圈計數器控制器255的控制操作將具有由第二控制信號CS2指定的索引“11”的第四計數器254重設。
圖28是示出記憶體系統200的正常讀取操作/第一操作模式下的操作的流程圖。圖29是示出記憶體系統200的正常讀取操作/第一操作模式下的操作的方塊圖。在圖29中,與圖5中使用的元件符號或字符相同的元件符號或字符表示相同的元件。在本實施例中,可以省略再試操作,並且可以在正常讀取操作期間執行第一操作模式的過程。因此,如果即使在執行了第一操作模式的過程和正常讀取操作之後仍未校正錯誤,則第二操作模式可以被啟動。參考圖28和圖29,如果在步驟611處從主機產生讀取命令CMD_R,則命令控制單元(CCU)220可以透過媒體調度邏輯電路280將讀取命令CMD_R輸出到記憶體介面邏輯電路230。在步驟612處,命令控制單元(CCU)220的UE處置器221可以輸出初步偽命令控制信號pre_CMD_F。可以透過媒體調度邏輯電路280將初步偽命令控制信號pre_CMD_F傳送到記憶體介面邏輯電路230。在步驟613處,記憶體介面邏輯電路230可以回應於讀取命令CMD_R和初步偽命令控制信號pre_CMD_F來存取記憶體媒體210。
記憶體介面邏輯電路230可以透過多工器270將讀取資料DATA_R從記憶體媒體210傳送到ECC解碼器260。具體地,記憶體介面邏輯電路230可以將讀取資料DATA_R輸出到複用器270的第一輸入端子“0”,並且還可以將具有邏輯“低(0)”位準的第一控制信號CS1、具有邏輯位準組合(即,二進制數)“00”的第二控制信號CS2、以及具有邏輯“高(1)”位準的第三控制信號CS3傳送到迴圈緩衝器240、迴圈計數器250和ECC解碼器260中的每一個。在這種情況下,因為沒有將偽命令CMD_F輸入到多工器270的控制端子,所以多工器270可以將輸入到第一輸入端子“0”的讀取資料DATA_R輸出到ECC解碼器260。由於第一控制信號CS1具有邏輯“低(0)”位準,所以在步驟614處ECC解碼器260可以使用通用RS演算法系統執行讀取資料DATA_R的ECC解碼操作。
在步驟615處,可以將從記憶體媒體210輸出的讀取資料DATA_R儲存到迴圈緩衝器240中,並且可以將迴圈計數器250重設。儘管在圖28中用兩個分開的框示出步驟614和615,但是可以同時執行步驟614和615。根據步驟614的詳細描述,ECC解碼器260可以對從記憶體媒體210輸出的讀取資料DATA_R執行ECC解碼操作。如關於正常讀取操作所描述的,可以使用通用RS演算法系統來執行ECC解碼操作。ECC解碼器260可以執行ECC解碼操作以輸出ECC解碼的讀取資料DATA_R_D。可以將ECC解碼的讀取資料DATA_R_D輸入到命令控制單元(CCU)220的UE處置器221。除了ECC解碼的讀取資料DATA_R_D之外,ECC解碼器260還可以將第一控制信號CS1、第二控制信號CS2和第三控制信號CS3傳送到UE處置器221。
在下文中將更詳細地描述步驟615。迴圈緩衝器240可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以儲存從記憶體媒體210輸出的讀取資料DATA_R。可以透過迴圈計數器250中所包括的迴圈計數器控制器255的控制操作,將透過正常讀取操作從記憶體媒體210輸出的讀取資料DATA_R儲存到具有由第二控制信號CS2指定的索引“00”的第一緩衝區241中。另外,如參考圖8所描述的,迴圈計數器250可以接收具有邏輯位準組合“00”的第二控制信號CS2和具有邏輯“高(1)”位準的第三控制信號CS3,以透過迴圈計數器控制器255的控制操作將具有由第二控制信號CS2指定的索引“00”的第一計數器251重設。
在步驟616處,UE處置器221可以接收ECC解碼的讀取資料DATA_R_D以辨別讀取資料DATA_R的錯誤是否被校正。如果在步驟616處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的校正資料,則UE處置器221可以將ECC解碼的讀取資料DATA_R_D傳送到主機290,並且可以終止用於從記憶體媒體210輸出讀取資料DATA_R的讀取操作(參見步驟617)。相反,如果在步驟616處將ECC解碼的讀取資料DATA_R_D視為讀取資料DATA_R的錯誤資料,則第二操作模式可以被啟動。第二操作模式的過程可以與參考圖15至圖21描述的相同。
出於說明性目的,以上已經公開了所公開技術的實施例。本發明所屬技術領域中具有通常知識者將會認識到,各種修改、添加和替換是可能的。儘管該專利文件包含許多細節,但是這些細節不應被解釋為對範圍或要求保護的範圍的限制,而應被解釋為針對特定實施例的特徵的描述。在分開的實施例的上下文中,在該專利文件中描述的某些特徵也可以在單個實施例中組合實現。相反,在單個實施例的上下文中描述的各種特徵也可以分別在多個實施例中或以任何合適的子組合來實現。此外,儘管以上可以將特徵描述為以某些組合起作用並且甚至最初是這樣要求保護的,但是在某些情況下,可以從該組合中除去所要求保護的組合中的一個或多個特徵,並且可以將所要求保護的組合用於子組合或子組合的變體。
100:記憶體系統
110:記憶體媒體
121:不可校正錯誤(UE)處置器(handler)
122:偽命令發生器
140:迴圈緩衝器
160:ECC解碼器
176B:176字節
200:記憶體系統
210:記憶體媒體
210_0:第一記憶體晶片
210_1:第二記憶體晶片
210_2:第三記憶體晶片
210_10:第十一記憶體晶片
220:命令控制單元(CCU)
221:UE處置器
222:偽命令發生器
230:記憶體介面邏輯電路
240:迴圈緩衝器
241:第一緩衝區
242:第二緩衝區
243:第三緩衝區
244:第四緩衝區
245:迴圈緩衝器控制器
250:迴圈計數器
251:第一計數器
252:第二計數器
253:第三計數器
254:第四計數器
255:迴圈計數器控制器
260:ECC解碼器
270:多工器
280:媒體調度邏輯電路
290:主機
311:步驟
312:步驟
313:步驟
314:步驟
315:步驟
321:步驟
322:步驟
323:步驟
324:步驟
325:步驟
326:步驟
327:步驟
331:步驟
332:步驟
333:步驟
334:步驟
335:步驟
336:步驟
341:步驟
342:步驟
343:步驟
344:步驟
345:步驟
346:步驟
347:步驟
348:步驟
421:步驟
422:步驟
423:步驟
424:步驟
425:步驟
426:步驟
427:步驟
428:步驟
429:步驟
430:步驟
521:步驟
522:步驟
523:步驟
524:步驟
525:步驟
526:步驟
527:步驟
528:步驟
529:步驟
530:步驟
611:步驟
612:步驟
613:步驟
614:步驟
615:步驟
616:步驟
617:步驟
BR_0:第一緩衝區
BR_1:第二緩衝區
BR_2:第三緩衝區
BR_3:第四緩衝區
CCU:命令控制單元
CHIP_0:第一記憶體晶片
CHIP_1:第二記憶體晶片
CHIP_2:第三記憶體晶片
CHIP_10 第十一記憶體晶片
pre_CMD_F:初步偽命令控制信號
CMD_F:偽命令
CMD_R:讀取命令
COUNT_VALUE:計數值
COUNT_0:第一計數器
COUNT_1:第二計數器
COUNT_2:第三計數器
COUNT_3:第四計數器
CS_CMD_F:偽命令控制信號
CS_RETRY:再試控制信號
CS1:第一控制信號
CS2:第二控制信號
CS3:第三控制信號
DATA_R:讀取資料
DATA_R_D:ECC解碼的讀取資料
DATA_R_ERD:ECC解碼的讀取資料
DATA_R_1R:讀取資料
DATA_R_2R:讀取資料
DATA_R_3R:讀取資料
DATA_R_4R:讀取資料
DATA_0:第一資料
DATA_1:第二資料
DATA_2:第三資料
DATA_10:第十一資料
SB_0:第一符號
SB_1:第二符號
SB_2:第三符號
SB_10:第十一符號
參考附圖透過各種實施例來說明所公開技術的某些特徵,在其中:
[圖1]是示出根據本公開的一個實施例的記憶體系統的示例的方塊圖;
[圖2]是示出根據本公開的一個實施例的記憶體系統的正常讀取操作或再試操作的方塊圖;
[圖3]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式下執行的操作的方塊圖;
[圖4]是示出根據本公開的一個實施例的在記憶體系統的第二操作模式下執行的操作的方塊圖;
[圖5]是示出根據本公開的另一實施例的記憶體系統的示例的方塊圖;
[圖6]是示出圖5的記憶體系統中所包括的記憶體媒體的示例的方塊圖;
[圖7]是示出圖5的記憶體系統中所包括的迴圈緩衝器的示例的方塊圖;
[圖8]是示出圖5的記憶體系統中所包括的迴圈計數器的示例的方塊圖;
[圖9]是示出根據本公開的一個實施例的記憶體系統的正常讀取操作的流程圖;
[圖10]是示出根據本公開的一個實施例的記憶體系統的正常讀取操作的方塊圖;
[圖11]是示出根據本公開的一個實施例的記憶體系統的再試操作的流程圖;
[圖12]是示出根據本公開的一個實施例的記憶體系統的再試操作的方塊圖;
[圖13]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式下執行的操作的流程圖;
[圖14]示出根據本公開的一個實施例的在記憶體系統的第一操作模式下執行的操作的方塊圖;
[圖15]是示出根據本公開的一個實施例的在記憶體系統的第二操作模式下執行的操作的流程圖;
[圖16、圖17和圖18]是示出根據本公開的一個實施例的在記憶體系統的第二操作模式下執行的操作的方塊圖;
[圖19、圖20和圖21]是示出根據本公開的一個實施例的在記憶體系統的第二操作模式下利用抹除迴圈方法執行的錯誤校正碼(ECC)解碼操作的示意圖;
[圖22]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式/再試操作模式下的操作的示例的流程圖;
[圖23和圖24]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式/再試操作模式下的操作的示例的方塊圖;
[圖25]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式/再試操作模式下的操作的另一示例的流程圖;
[圖26]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式和再試操作模式下的操作的另一示例的方塊圖;
[圖27]是示出根據本公開的一個實施例的在記憶體系統的第一操作模式和再試操作模式下將讀取資料儲存到迴圈緩衝器中的程序的示意圖;
[圖28]是示出根據本公開的一個實施例的在記憶體系統的正常讀取操作模式和第一操作模式下的操作的流程圖;以及
[圖29]是示出根據本公開的一個實施例的在記憶體系統的正常讀取操作模式和第一操作模式下的操作的方塊圖。
100:記憶體系統
110:記憶體媒體
121:不可校正錯誤(UE)處置器(handler)
122:偽命令發生器
140:迴圈緩衝器
160:ECC解碼器
pre_CMD_F:初步偽命令控制信號
CMD_F:偽命令
CS_CMD_F:偽命令控制信號
DATA_R:讀取資料
Claims (18)
- 一種記憶體系統,包括: 記憶體媒體; 迴圈緩衝器,其被配置為在第一操作模式下儲存從所述記憶體媒體輸出的讀取資料; 偽命令發生器,其被配置為在第二操作模式下產生偽命令;以及 錯誤校正碼(ECC)解碼器,其被配置為回應所述偽命令來對儲存在所述迴圈緩衝器中的讀取資料執行ECC解碼操作。
- 如請求項1所述的記憶體系統, 其中,所述記憶體媒體包括多個記憶體晶片;以及 其中,所述讀取資料包括儲存在所述多個記憶體晶片中的各個記憶體晶片中的多個資料。
- 如請求項1所述的記憶體系統,還包括不可校正錯誤(UE)處置器,其被配置為從所述ECC解碼器接收ECC解碼的讀取資料,以確定所述第一操作模式和所述第二操作模式中的一個來作為操作模式執行。
- 如請求項3所述的記憶體系統,其中,當從所述記憶體媒體輸出的讀取資料的錯誤未被所述ECC解碼器校正時,所述UE處置器確定所述第一操作模式來作為操作模式執行。
- 如請求項3所述的記憶體系統,其中,在從所述記憶體媒體輸出的讀取資料的錯誤未被所述ECC解碼器校正的第一操作模式之後,所述UE處置器確定所述第二操作模式來作為操作模式執行。
- 如請求項1所述的記憶體系統,其中,在所述第一操作模式下,所述ECC解碼器接收從所述記憶體媒體輸出的讀取資料,以使用通用裡德-所羅門(RS)演算法系統來對所述讀取資料執行ECC解碼操作。
- 如請求項1所述的記憶體系統,其中,在所述第二操作模式下,所述ECC解碼器使用抹除迴圈方法對從所述迴圈緩衝器接收的讀取資料執行所述ECC解碼操作。
- 如請求項1所述的記憶體系統,其中,當產生所述偽命令時,用於存取所述記憶體媒體的操作是被中斷和被阻止中的至少一個。
- 一種記憶體系統,包括: 記憶體媒體; 命令控制單元,其被配置為在第一操作模式和第二操作模式下分別產生初步偽命令控制信號和偽命令; 迴圈緩衝器,其被配置為在所述第一操作模式下回應於所述初步偽命令控制信號而儲存從所述記憶體媒體輸出的讀取資料,並且被配置為在所述第二操作模式下回應於所述偽命令而輸出儲存在迴圈緩衝器中的讀取資料; 迴圈計數器,其被配置為在所述第一操作模式下回應於所述初步偽命令控制信號而執行重設操作,並且被配置為在所述第二操作模式下回應於所述偽命令而輸出所述迴圈計數器的計數值;以及 錯誤校正碼(ECC)解碼器,其被配置為在所述第一操作模式下對從所述記憶體媒體輸出的讀取資料執行第一ECC解碼操作,並且被配置為在所述第二操作模式下對從所述迴圈緩衝器輸出的讀取資料執行第二ECC解碼操作。
- 如請求項9所述的記憶體系統, 其中,所述記憶體媒體包括多個記憶體晶片;以及 其中,所述讀取資料包括儲存在所述多個記憶體晶片中的各個記憶體晶片中的多個資料。
- 如請求項9所述的記憶體系統,其中,所述命令控制單元包括: 不可校正錯誤(UE)處置器,其被配置為在所述第一操作模式下產生所述初步偽命令控制信號,並且被配置為在所述第二操作模式下產生所述偽命令控制信號;以及 偽命令發生器,其被配置為在所述第二操作模式下回應於所述偽命令控制信號來產生所述偽命令。
- 如請求項11所述的記憶體系統, 其中,當從所述記憶體媒體輸出的讀取資料的錯誤未被先前的ECC解碼操作校正時,所述UE處置器產生所述初步偽命令控制信號;以及 其中,當在所述第一操作模式下從所述記憶體媒體輸出的讀取資料的錯誤未被ECC解碼操作校正時,所述UE處置器產生所述偽命令控制信號。
- 如請求項9所述的記憶體系統,還包括記憶體介面邏輯電路,其被配置為回應於所述初步偽命令控制信號而存取所述記憶體媒體,並且被配置為回應於所述偽命令而中斷對所述記憶體媒體的存取。
- 如請求項13所述的記憶體系統, 其中,所述記憶體介面邏輯電路被配置為在所述第一操作模式和所述第二操作模式下將第一控制信號、第二控制信號和第三控制信號輸出至所述迴圈緩衝器、所述迴圈計數器和所述ECC解碼器中的每個; 其中,所述第一控制信號指示所述第二操作模式的啟動和非啟動中的一個; 其中,所述第二控制信號具有索引的值;以及 其中,所述第三控制信號指示所述第一操作模式的啟動和非啟動中的一個。
- 如請求項14所述的記憶體系統, 其中,所述迴圈緩衝器包括透過所述第二控制信號的索引彼此區分開的多個緩衝區; 其中,所述迴圈緩衝器回應於指示所述第一操作模式的所述第三控制信號來將所述讀取資料儲存到所述多個緩衝區之中的由所述第二控制信號的索引指定的緩衝區中;以及 其中,所述迴圈緩衝器回應於指示所述第二操作模式的所述第一控制信號來輸出儲存在所述多個緩衝區之中的由所述第二控制信號的索引指定的緩衝區中的讀取資料。
- 如請求項15所述的記憶體系統, 其中,所述迴圈計數器包括透過所述第二控制信號的索引彼此區分開的多個計數器; 其中,所述迴圈計數器回應於指示所述第一操作模式的所述第三控制信號來使所述多個計數器之中的由所述第二控制信號的索引指定的計數器重設;以及 其中,所述迴圈計數器回應於指示所述第二操作模式的所述第一控制信號來執行計數操作,所述計數操作用於輸出所述多個計數器之中的由所述第二控制信號的索引指定的計數器的計數值並使其增加。
- 如請求項9所述的記憶體系統, 其中,所述ECC解碼器在所述第一操作模式下使用通用裡德-所羅門(RS)演算法系統來執行所述第一ECC解碼操作;以及 其中,所述ECC解碼器在所述第二操作模式下使用抹除迴圈方法來執行所述第二ECC解碼操作,所述抹除迴圈方法抹除由從所述迴圈計數器輸出的計數值指定的符號。
- 如請求項9所述的記憶體系統,還包括多工器,其被配置為透過第一輸入端子從所述記憶體媒體接收讀取資料,被配置為透過第二輸入端子接收儲存在所述迴圈緩衝器中的讀取資料,以及被配置為根據所述偽命令是否被輸入到所述多工器的控制端子來將經由所述第一輸入端子輸入的讀取資料或經由所述第二輸入端子輸入的讀取資料選擇性地輸出到所述ECC解碼器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190086680A KR20210010718A (ko) | 2019-07-17 | 2019-07-17 | 메모리 시스템 및 메모리 시스템에서의 에러정정방법 |
KR10-2019-0086680 | 2019-07-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202105400A true TW202105400A (zh) | 2021-02-01 |
Family
ID=74170649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109116717A TW202105400A (zh) | 2019-07-17 | 2020-05-20 | 記憶體系統和用於校正記憶體系統中的錯誤的方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11048586B2 (zh) |
KR (1) | KR20210010718A (zh) |
CN (1) | CN112242175B (zh) |
TW (1) | TW202105400A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220107866A1 (en) * | 2021-12-14 | 2022-04-07 | Intel Corporation | Fast memory ecc error correction |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6968021B1 (en) * | 2001-09-24 | 2005-11-22 | Rockwell Collins | Synchronization method and apparatus for modems based on jointly iterative turbo demodulation and decoding |
US7865809B1 (en) * | 2004-03-11 | 2011-01-04 | Super Talent Electronics, Inc. | Data error detection and correction in non-volatile memory devices |
KR101149110B1 (ko) | 2006-02-22 | 2012-05-25 | 삼성전자주식회사 | 디지털 통신 시스템의 rs 복호기 |
CN101946230B (zh) * | 2008-02-14 | 2013-11-27 | 惠普开发有限公司 | 用于检测和校正所接收的符号串中的定相突发差错、删除、符号差错和位差错的方法和系统 |
JP2009266349A (ja) * | 2008-04-28 | 2009-11-12 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR101201582B1 (ko) * | 2010-09-06 | 2012-11-14 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
KR20130042780A (ko) * | 2011-10-19 | 2013-04-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
CN103593252B (zh) * | 2012-08-14 | 2017-06-13 | 旺宏电子股份有限公司 | 具有动态错误侦测及更正的存储器 |
KR102143517B1 (ko) * | 2013-02-26 | 2020-08-12 | 삼성전자 주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US10061645B2 (en) * | 2015-06-30 | 2018-08-28 | Qualcomm Incorporated | Memory array and link error correction in a low power memory sub-system |
US9846614B1 (en) * | 2016-06-03 | 2017-12-19 | International Business Machines Corporation | ECC scrubbing in a multi-slice microprocessor |
US10409672B2 (en) * | 2016-11-16 | 2019-09-10 | SK Hynix Inc. | Media quality aware ECC decoding method selection to reduce data access latency |
KR102410021B1 (ko) * | 2017-11-20 | 2022-06-21 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법 |
KR20190086175A (ko) * | 2018-01-12 | 2019-07-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102511903B1 (ko) * | 2018-02-26 | 2023-03-21 | 에스케이하이닉스 주식회사 | 고정된 에러정정능력의 에러정정코드 엔진을 이용하여 재구성할 수 있는 에러정정동작을 수행하는 메모리 시스템 |
-
2019
- 2019-07-17 KR KR1020190086680A patent/KR20210010718A/ko unknown
-
2020
- 2020-05-20 TW TW109116717A patent/TW202105400A/zh unknown
- 2020-05-26 US US16/883,783 patent/US11048586B2/en active Active
- 2020-06-24 CN CN202010585519.6A patent/CN112242175B/zh active Active
-
2021
- 2021-05-27 US US17/332,448 patent/US11392457B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN112242175A (zh) | 2021-01-19 |
US20210019227A1 (en) | 2021-01-21 |
US20210286674A1 (en) | 2021-09-16 |
KR20210010718A (ko) | 2021-01-28 |
US11392457B2 (en) | 2022-07-19 |
US11048586B2 (en) | 2021-06-29 |
CN112242175B (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10847246B2 (en) | Memory systems performing reconfigurable error correction operation using ECC engine with fixed error correction capability | |
US8522114B2 (en) | Memory controller and memory system | |
KR102553780B1 (ko) | 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN108804041B (zh) | 非易失性存储器装置及其操作系统(os)图像处理方法 | |
US8788905B2 (en) | Flash memory device error correction code controllers and related methods and memory systems | |
CN109815045B (zh) | 存储系统以及在存储系统中处理数据的方法 | |
KR102499794B1 (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
KR20180000593A (ko) | 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치 | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
US10186302B2 (en) | Semiconductor systems performing double-write operations and methods of operating the same | |
US11188417B2 (en) | Memory system, memory module, and operation method of memory system | |
KR20210121654A (ko) | 메모리 시스템의 데이터 에러를 복구하는 장치 및 방법 | |
US9152416B2 (en) | Storage control device, memory system, information processing system and storage control method | |
US11392457B2 (en) | Error correction method of a memory system | |
KR101574208B1 (ko) | 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그리고 그것의 동작 방법 | |
EP3499376B1 (en) | Memory system varying operation of memory controller according to internal status of memory device | |
US10665297B2 (en) | Memory systems for memory devices and methods of operating the memory systems | |
KR20180023079A (ko) | 반도체시스템 | |
KR20170130684A (ko) | 반도체장치 | |
JP2011192137A (ja) | メモリカード制御システム、メモリカード制御装置及びメモリカード制御方法 | |
US20230280930A1 (en) | Memory controller and memory system for executing error correction operation | |
KR20170140931A (ko) | 반도체장치 및 반도체시스템 | |
KR20210143581A (ko) | 컨트롤러 및 이를 포함하는 메모리 시스템 | |
KR20230000168A (ko) | 메모리, 메모리의 동작 방법 및 메모리 시스템의 동작 방법 |