TW202211037A - 記憶體系統、半導體記憶裝置及資料讀出方法 - Google Patents
記憶體系統、半導體記憶裝置及資料讀出方法 Download PDFInfo
- Publication number
- TW202211037A TW202211037A TW110118391A TW110118391A TW202211037A TW 202211037 A TW202211037 A TW 202211037A TW 110118391 A TW110118391 A TW 110118391A TW 110118391 A TW110118391 A TW 110118391A TW 202211037 A TW202211037 A TW 202211037A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- decoding
- mentioned
- read
- memory
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/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/11—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 using multiple parity bits
-
- 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
- Radar Systems Or Details Thereof (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本發明之實施型態係提供不縮小資料之編碼率,能夠隨機讀出的記憶體系統、半導體記憶裝置及資料讀出方法。
若藉由實施型態時,記憶體系統(1)具有NAND記憶體(2),和記憶體控制器(3)。NAND記憶體(2)係將寫入資料分割成碼字並轉換成包含複數被生成的碼字的資料框,而生成對每個碼字用以錯誤檢測校正的資料框之水平方向的同位資料,進行寫入資料之編碼的編碼器(14),和解碼器(15)。NAND記憶體(2)之控制電路(13)係當接收讀出指令時,控制解碼器(15),以使讀出對象資料(TD)進行使用水平方向之同位資料的硬判定解碼,在讀出對象資料(TD)之硬判定解碼成功之時,將被解碼後的讀出對象資料(TD)朝記憶體控制器(3)輸出。
Description
本發明之實施型態係關於記憶體系統、半導體記憶裝置及資料讀出方法。
[相關申請案]
本申請案享有作為基礎申請的日本專利申請案第2020-153283號(申請日:2020年9月11日)的優先權。本申請藉由參照該基礎申請而包含基礎申請的全部內容。
在使用非揮發性記憶體的記憶體系統中,以特定的尺寸進行資料的寫入和讀出。記憶體系統具有錯誤檢測校正電路。在錯誤檢測校正電路中,為了進行讀出後的資料之錯誤檢測校正,進行使用錯誤檢測校正碼的編碼及解碼。若能從非揮發性記憶體,以小於特定尺寸的尺寸隨機地讀出資料時,則期待讀出性能的提升。
但是,資料尺寸越小,資料之編碼率越小,資料之傳送效率變差,同時記憶體系統之成本也上升。
再者,若藉由在使用非揮發性記憶體的機器中的要求規格,必須保證錯誤校正率之情況,雖然需要對資料附加循環冗餘檢查(Cyclic Redundancy Check;以下,稱為CRC)碼等,但是當附加CRC碼時,編碼效率更加惡化。
本發明之實施型態之目的在於提供不縮小資料之編碼率,能夠隨機讀出的記憶體系統、半導體記憶裝置及資料讀出方法。
實施型態之記憶體系統具有:非揮發性記憶體;控制器,其係控制資料朝上述非揮發性記憶體之寫入及讀出;編碼器,其係被設置在上述非揮發性記憶體,將朝上述非揮發性記憶體的寫入資料分割成特定位元數之單位資料並轉換成包含複數被生成的上述單位資料的資料框,而生成對每個上述單位資料用以錯誤檢測校正的上述資料框之第1同位資料,和與上述第1同位資料不同的上述資料框之第2同位資料,而進行上述寫入資料之編碼;第1解碼器,其係被設置在上述非揮發性記憶體,進行從上述非揮發性記憶體讀出後的讀出資料之解碼;及控制電路,其係被設置在上述非揮發性記憶體,當從上述控制器接收讀出指令時,控制上述第1解碼器,以使從上述非揮發性記憶體被讀出的讀出對象資料,進行使用上述第1同位資料的第1解碼,在上述讀出對象資料之上述第1解碼成功時,將被解碼後的上述讀出對象資料朝上述控制器輸出。
以下,參照圖面說明實施型態。
(構成)
(全體構成)
圖1為用以說明與本實施型態有關之記憶體系統之構成的方塊圖。記憶體系統1具備作為非揮發性記憶體的NAND型快閃記憶體(以下,稱為NAND記憶體)2,和記憶體控制器3。
記憶體系統1係因應來自以虛線表示的主機裝置(以下,也單稱為主機)4的要求,將使用者資要記憶於NAND記憶體2,或將被記憶於NAND記憶體2的使用者資料朝主機4輸出。主機4為例如個人電腦、智慧型手機。具體而言,記憶體系統1可以因應來自主機的寫入要求,以特定的頁單位(例如,16KB(千位元組)寫入使用者資料,因應來自主機的讀出要求,隨機地讀出小於該特定頁的尺寸(例如64B(位元組))之使用者資料。
記憶體系統1即使為以記憶體控制器3和NAND記憶體2作為1個封裝體而被構成的記憶卡等亦可,即使為SSD (Solid State Drive)等亦可。在圖1中,表示記憶體系統1與主機4連接的狀態。
NAND記憶體2為包含記憶體單元陣列部11、錯誤檢測校正(Error Check and Correct)電路(以下,稱為ECC電路)12,和控制電路13的半導體記憶裝置。
記憶體單元陣列部11包含複數記憶體單元陣列,各記憶體單元陣列為能夠記憶二進制或四進制以上之資料的非揮發性記憶區域。使用者資料為非揮發性地記憶於記憶體單元陣列部11之複數記憶體單元陣列。針對記憶體單元陣列部11之構成,於後述。
ECC電路12包含編碼器14、解碼器15、位元錯誤率(Bit Error Rate)監視器(以下,稱為BER監視器)16。ECC電路12係被搭載於NAND記憶體2的晶片上ECC電路。即是,NAND記憶體2具有錯誤檢測校正功能。
ECC電路12之編碼器14係當將來自記憶體控制器3之使用者資料寫入至記憶體單元陣列部11之時,生成錯誤檢測校正碼(即是,同位資料)而附加於使用者資料的電路。記憶體控制器3係將使用者資料以特定尺寸的頁單位寫入至NAND記憶體2。
編碼器14相對於再被構成包含複數特定尺寸的碼字CW(後述)的乘積碼框的頁資料,生成水平方向及垂直方向的同位資料。特定尺寸小於頁資料的尺寸。
編碼器14係進行乘積碼框之水平方向的編碼,和乘積碼框之垂直方向的編碼。
在本實施型態中,編碼器14係以子頁資料單位(例如,4KB)生成乘積碼框中之水平方向及垂直方向的同位資料。特定尺寸(例如,64B)小於子頁資料(例如4KB)之尺寸。
在此,編碼器14係進行能夠校正4位元以下之位元的BCH碼所致的編碼。
解碼器15係檢測並且校正從記憶體單元陣列部11讀出的使用者之錯誤而輸出使用者資料。記憶體控制器3係從與讀出要求有關的位址特定NAND記憶體2之物理位址,朝NAND記憶體2輸出隨機讀取用的讀出指令。解碼器15係對因應其讀出指令而被讀出的使用者資料進行解碼,將解碼成功的使用者資料朝記憶體控制器3輸出。
解碼器15係進行根據以「0」或「1」表現的作為二進制資訊的硬判定資料(即是,硬位元(HB))的硬判定解碼。解碼器15係如後述般,可以對每個碼字CW進行資料之錯誤檢測校正,並且對每個碼字CW,輸出錯誤檢測校正之時的校正位元數的資料。
具體而言,解碼器15係進行乘積碼框之水平方向的解碼,和後述乘積碼框之垂直方向的解碼。例如,頁資料之尺寸為16KB程度之時,碼字CW具有8B至10B的尺寸。水平方向之解碼係藉由例如解四次式的直接法運算而進行。
BER監視器16係具有在解碼器15進行水平方向之解碼之時的校正位元數的直方圖之生成功能的電路。針對BER監視器16之處理內容於後述。
控制電路13係控制包含錯誤檢測校正電路12的NAND記憶體2之各部的動作。
記憶體控制器3係控制朝NAND記憶體2寫入資料及從NAND記憶體2讀出資料讀出的控制器。具體而言,記憶體控制器3係因應來自主機4之寫入要求,控制NAND記憶體2。記憶體控制器3係將使用者資料以上述特定尺寸(例如,16KB)的頁單位寫入至NAND記憶體2。再者,記憶體控制器3係因應來自主機4之讀出要求,控制NAND記憶體2。來自主機4之讀出要求所涉及的使用者資料之尺寸,係如上述般,小於寫入時之頁資料之特定尺寸(例如,16KB)的碼字CW之尺寸。
記憶體控制器3包含處理器21、ECC電路22、資料緩衝器23、主機介面電路(以下,稱為主機I/F)24,和記憶體介面電路(以下,稱為記憶體I/F)25。處理器21、ECC電路22、資料緩衝器23、主機I/F24、記憶體I/F25係藉由內部匯流排26彼此被連接。
處理器21係統籌性控制記憶體系統1之各部。處理器21係經由主機I/F24而接受來自主機4之要求的情況,進行依照其要求的控制。例如,處理器21係按照來自主機4的要求,對記憶體I/F25指示朝NAND記憶體2的使用者資料的寫入。再者,處理器21係按照來自主機4的要求,對記憶體I/F25指示來自NAND記憶體2的使用者資料的讀出。
再者,處理器21係在從主機4接收使用者資料之寫入要求的情況,對被儲存於資料緩衝器23的使用者資料,決定NAND記憶體2上之記憶區域(記憶體區域)。即是,處理器21係管理使用者資料的寫入目的地。從主機4接收到的使用者資料之邏輯位址,和表示記憶該使用者資料的NAND記憶體2上的記憶區域的物理位址之對應關係的資訊,被記憶於位址轉換表(無圖示)。
再者,處理器21係在從主機4接收到讀出要求之情況,使用上述位址轉換表將藉由讀出要求被指定的邏輯位址轉換成物理位址。處理器21係對記憶體I/F25指示來自該物理位址的資料之讀出。
ECC電路22係解碼在NAND記憶體2解碼不成功的資料。依此,錯誤檢測校正電路22具備解碼器22a。解碼器22a係進行使用卻斯(Chase)解碼法等的軟判定解碼進行資料的解碼。軟判定解碼係使用藉由複數次的讀出而獲得的資料之「0」或「1」的機率之資訊(軟判定資訊(軟位元))而進行解碼的處理。
資料緩衝器23係為了將來自主機4的使用者資料朝NANA記憶體2記憶,進行暫時性記憶。來自主機4的使用者資料被傳送至內部匯流排26而被暫時性地記憶於資料緩衝器23。再者,資料緩衝器23係為了將從NAND記憶體2讀出的使用者資料朝主機4發送而進行暫時性記憶。資料緩衝器23係例如SRAM(Static Random Access Memory)或DRAM(Dynamic Random Access Memory)等的泛用記憶體。
主機I/F24係實施依照與主機4之間的介面規格的處理。主機I/F24係將從主機4接收到的要求及使用者資料輸出至內部匯流排26。主機I/F24係朝主機4發送從NAND記憶體2被讀出的使用者資料,或來自處理器21之應答等。
記憶體I/F25係在處理器21之控制下,進行與朝NAND記憶體2寫入資料,及從NAND記憶體2讀出資料有關的處理。
(非揮發性記憶體之構成)
圖2為表示NAND記憶體2之詳細構成的方塊圖。NAND記憶體2係如上述般,包含控制記憶體單元陣列部11和ECC電路12的控制電路13。在圖2中,記憶體單元陣列部11包含複數平面11x。各平面11x包含記憶體單元陣列11a,和行解碼器(無圖示),和列解碼器(無圖示)。列解碼器具有儲存頁資料Pd的頁緩衝器11b。頁緩衝器11b儲存寫入資料之時及讀出之時的頁資料Pd。ECC電路12和複數平面11x經由共同匯流排17而被連接。
另外,在此,雖然記憶體單元陣列部11包含複數平面11x,但是即使為包含1個平面者亦可。
NAND記憶體2具有被設置在複數平面11x和共同匯流排17之間的複數頁緩衝負載電路18和複數頁緩衝儲存電路19。各頁緩衝負載電路18係載入被存儲於頁緩衝器11b的資料,而朝共同匯流排17輸出。各頁緩衝儲存電路19係將來自共同匯流排17的資料儲存於頁緩衝器11b。
ECC電路12係如上述的編碼器14、解碼器15及BER監視器16之外,具有輸入資料的ECC輸入電路12a,和輸出資料的ECC輸出電路12b。ECC輸入電路12a係從共同匯流排17接收在ECC電路12處理的輸入資料,朝編碼器14等輸出的電路。ECC輸出電路12b係接收ECC電路12之處理結果資料(編碼資料或解碼資料),而朝共同匯流排17輸出的電路。針對編碼器14及解碼器15之構成於後述。
共同匯流排17之匯流排寬度係與例如結合碼字CW和水平同位(pbh)的資料(以下,稱為碼字單位資料CWU)之位元數相同,能夠進行高速的解碼。
再者,NAND記憶體2具有用以在與記憶體控制器3之間進行資料(位址及資料)之接收發送的輸入輸出介面(以下,簡稱為輸入輸出I/F)20。輸入輸出I/F20被連接於共同匯流排17。輸入輸出I/F20係藉由記憶體控制器3之記憶體I/F25,和複數資料輸入輸出線而被連接。
輸入輸出I/F20係與資料輸入輸出線DQ0~DQ7連接。輸入輸出I/F20係從資料輸入輸出線DQ0~DQ7接收位址及資料,朝控制電路13輸出。控制電路13係經由輸入輸出I/F20而從資料輸入輸出線DQ0~DQ7輸出讀出資料及各種資料。
控制電路13係經由控制訊號輸入介面(無圖示)而接收各種控制訊號。各種控制訊號係晶片使能訊號BCE、指令鎖存使能訊號CLE、位址鎖存訊號ALE、寫入使能訊號BWE、讀出使能訊號RE、BRE(RE之互補訊號)、寫入保護訊號BWP、資料選通訊號DQS、BDQS(DQS之互補訊號)。
晶片使能訊號BCE係作為NAND記憶體2之選擇訊號而被使用。指令鎖存使能訊號CLE係將動作擷取至暫存器(無圖示)之時被使用的訊號。位址鎖存使能訊號ALE係將位址資訊或輸入資料擷取至內置暫存器(無圖示)之時被使用的訊號。寫入使能訊號BWE係用以將輸入輸出I/F20上之指令、位址及資料擷取至NAND記憶體2的訊號。讀出使能訊號RE、BRE係使資料從輸入輸出I/F20串行輸出之時被使用的訊號。寫入保護訊號BWP係於NAND記憶體2之電源輸入時,或是電源切斷時等的輸入訊號不確定之情況,為了保護資料以防無法預期的消除或寫入而被使用。
另外,雖然在記憶體I/F25和輸入輸出I/F20之間,位址和資料之雙方被發送接收,但是即使位址和資料使用共同的訊號線而被發送接收亦可,或是即使分別使用位址用訊號線和資料用訊號線而發送接收位址和資料亦可。藉由分別使用位址用訊號線和資料用訊號線發送接收位址和資料,可以縮小在資料傳送的潛時。
(記憶體單元陣列的構成)
接著,針對各平面的記憶體單元陣列的構成予以說明。
在各平面11x中,以被稱為頁的特定尺寸,進行資料之寫入,以被稱為區塊的資料單位進行消除。將被連接於記憶體單元陣列11a之相同的字元線的複數記憶體單元稱為記憶體單元群組。在記憶體單元為單位準單元(SLC)之情況,1個記憶體單元群組對應於1頁。在記憶體單元為多位準單元(MLC)之情況,1個記憶體單元群組對應於複數頁。再者,各記憶體單元被連接於字元線,同時也被連接於位元線。因此,各記憶體單元能夠以識別字元線的位址和識別位元線的位址進行識別。
圖3為用以與本實施型態有關的記憶體單元陣列11a之構成的電路圖。在本例中,如圖示般,1個區塊BLK包含4個字串單元SU(SU0~SU3)。再者,各個字串單元SU包含複數NAND字串NS。
NAND字串NS之各者包含例如8個記憶體單元電晶體MT(MT0~MT7)及2個選擇電晶體ST1、ST2。各記憶體單元電晶體MT具備控制閘極和電荷蓄積層,非揮發地保持資料。而且,複數(例如8個)之記憶體電晶體MT被串聯連接於選擇電晶體ST1之源極和選擇電晶體ST2之汲極之間。圖3係為了便於說明,1個字串單元SU表示8條字元線WL的例。
字串單元SU0~SU3之各者中的選擇電晶體ST1之閘極分別被連接於選擇閘極線SGD0~SGD3。對此,在字串單元SU0~SU3之各者中的選擇電晶體ST2之閘極被共同連接於例如選擇閘極線SGS。當然即使在字串單元SU0~SU3之各者中的選擇電晶體ST2之閘極被連接於每個字串單元的選擇閘極線SGS0~SGS3亦可。再者,位於相同的區塊BLK內的記憶體單元電晶體MT0~MT7之控制閘極分別被共同連接於字元線WL0~WL7。
再者,在記憶體單元陣列11內,位於相同列的複數NAND字串NS之選擇電晶體ST1之汲極被共同連接於位元線(BL0~BL(K-1),但是K為2以上的自然數)。即是,位元線BL在複數區塊BLK間共同連接於複數NAND字串NS。並且,複數選擇電晶體ST2之源極被共同連接於源極線SL。
即是,記憶體單元陣列11a為共同連接各位元線BL的複數區塊BLK之集合體。再者,各區塊BLK包含複數使各字元線WL成為複數字串單元SU。各字串單元SU包含被連接於彼此不同的複數字元線BL,並且被連接於相同的選擇閘極線SGD的複數NAND字串NS。
返回至圖1,NAND記憶體2另外具備無圖示的驅動器電路、位址暫存器、指令暫存器等。作為序列器的控制電路13係根據被保持於指令暫存器的指令,控制NAND記憶體2全體的的動作,進行朝各平面11x寫入資料的處理及從各平面11x讀出資料的處理。
在此,1個記憶體單元電晶體MT能夠保持1位元資料。即是,NAND記憶體2係所謂的SLC(Single Level Cell)方式的半導體記憶體裝置。
另外,1個記憶體單元電晶體MT即使為能夠保持例如多值資料亦可。例如,在1個記憶體單元電晶體MT保持3位元資料之情況,NAND記憶體2為所謂的TLC(Triple Level Cell)方式的半導體記憶裝置。將該3位元資料從下位位元起分別稱為下位(Lower)位元、中位(Middle)位元及上位(Upper)。而且,將被連接於1個字串單元中之相同的字元線WL的複數記憶體單元電晶體MT之保持的下位位元之集合稱為下位頁,將中位位元之集合稱為中位頁,將上位位元之集合稱為上位頁。1個字串中之與1個字線連接的複數記憶體單元電晶體MT構成保持下位、中位及上位位元的1個頁單元。即是,在各頁單元如在圖3中以一點鏈線表示般,被分割3頁。資料之寫入係以頁單元單位被進行,資料之讀出係對該頁之每個進行。
在1個記憶體單元電晶體MT能夠保持多值資料之情況,進行所謂低速寫入(即是,高可靠性寫入)所致的資料之寫入。
(編碼)
作為寫入資料的使用者資料係在NAND記憶體2內,藉由編碼器14被編碼而被除儲存。使用者係藉由乘積碼框而被編碼。
圖4為用以說明從來自主機4之使用者資料的編碼的圖。圖5為用以說明乘積碼框之構成例的圖。
如圖4所示般,一次寫入對象資料的使用者資料UDd被分割成4個子使用者資料UD。4個子使用者資料UD係對應於後述4個子頁資料PCD。各子使用者資料UD係藉由控制電路13作為由複數行且複數列形成的乘積碼框而被再構成。
如圖5所示般,乘積碼框係包含複數行的特定尺寸之資料(以下,稱為碼字)CW的資料框。各碼字CW具有例如8B(64位元)至100B(800位元)之範圍內的特定資料尺寸。在此,碼字CW之位元數為64B。乘積碼框包含水平方向之同位位元部PBH,和垂直方向之同位部PBV。
另外,如圖5所示般,CRC用之碼部包含在各子使用者資料UD。
同位部PBH係對每個碼字CW於水平方向附加的複數同位pbh。同位位元pbh為水平方向之同位位元。結合1個碼字CW和同位位元pbh的資料為碼字單位資料CWU。在編碼器14中,水平方向之同位位元pbh係對各碼字CW,根據BCH(Bose-Chaudhuri-Hocquenghem)編碼方式被生成。在此,碼字CW係對64B(即是512位元),進行能夠4位元以下之位元校正的BCH編碼所致的編碼,同位pbh被附加於碼字CW。
例如,在編碼依據能夠4位元以下之位元校正的BCH編碼之情況,當碼字CW長度為64B之時,使用者資料之編碼率為0.86,碼字CW長度為48B之時,使用者資料之編碼率為0.89。
同位位元部PBV為針對複數碼字單位資料CWU而被附加的垂直方向之同位位元。同位位元部PBV包含與複數碼字CW對應的同位位元pbv1,和與同位位元部PBH對應的同位位元pbv2。
垂直方向之同位位元pbv1、pbv2係在垂直方向藉由XOR(排他性邏輯和)運算而被生成。另外,垂直方向之同位位元即使為根據里德所羅門(Reed-Solomon)碼方式、BCH碼方式等的其他碼方式而被生成亦可。
如圖4所示般,使用者UDd(例如16KB)係被分割成4個子使用者資料UD。每個子使用者資料UD(例如4KB)被生成根據乘積碼框的同位資料PD。依此,編碼器14生成包含使用者資料UD和同位資料PD的4個子頁資料PCD。各子頁資料PCD為乘積碼ECC框。乘積碼ECC框為乘積碼框單位的ECC處理單位。控制電路13係將被生成的4個子頁資料PCD寫入至被指定的平面11x之物理位址的字元線WL。
另外,在圖4中,雖然頁資料Pd在根據乘積碼框的各子使用者資料PCD中,具有來自記憶體控制器3的子使用者資料UD,和被區分為同位資料PD之兩個資料欄的資料構造,但是即使成為具有圖5所示的串行結合對每個碼字CW附加同位位元pbh後的複數資料,並且最後附加同位位元部PBV的資料構造亦可。
水平方向之同位位元部PBH和垂直方向之同位位元部PBV所含的資料構成同位資料PD。
如上述般,編碼器14係對每個子使用者資料UD作成乘積碼框,而算出水平方向及垂直方向的同位資料。
而且,如圖4所示般,頁資料Pd包含使用者資料UDd,和水平及垂直方向的同位資料PD。與各碼字CW和其碼字對應的同位資料PD係在頁資料Pd中與事先被決定的位置建立關係而被配置。
如上述般,控制電路13係被設置在NAND記憶體2,將朝NAND記憶體2的寫入資料分割為特定位元數之單位資料(在上述例中,為碼字CW)。編碼器14係轉換成包含複數單位資料(CW)的乘積碼框。而且,編碼器14係生成對每個單位資料(碼字CW)用以錯誤檢測校正的乘積碼框之水平方向之第1同位資料,和乘積碼框之垂直方向之第2同位資料,而進行寫入資料之編碼。
頁資料Pd係經由共同匯流排17而朝記憶體單元陣列部11被輸出。
(解碼)
解碼器15係對被編碼後的使用者資料進行解碼。即是,解碼器15被設置在NAND記憶體2,進行從NAND記憶體2之複數平面11x被讀出的讀出資料之解碼。如上述般,解碼器15係進行根據以「0」或「1」表現的作為二進制資訊的硬判定資料的硬判定解碼。
解碼器15具有對在水平方向中的碼字CW藉由直接法進行4位元以下的位元校正的第1解碼處理部,和進行在乘積碼框之垂直方向中的解碼處理的第2解碼處理部。因解碼器15係藉由直接法實行4位元以下的位元校正,故可以高速地進行水平方向之解碼處理。
解碼器15之第1解碼處理部係藉由直接法運算進行碼字CW之水平方向的解碼。直接法運算被記載於例如「發現具有適用於BCH解碼之路徑的混合法」((R. T, Chien, B. D. Cunningham, I. B. Oldham, “Hybrid methods for finding roots of a polynomial with application to BCH decoding” IEEE Transactions on Information Theory, vol 15, no.2, pp.329-335, 1969)。
另外,解碼器15之第2解碼處理部係對乘積碼框進行垂直方向的複合。
解碼器15係當在各碼字CW之水平方向之解碼中進行了錯誤檢測校正之時,輸出校正位元數之資料。該校正位元數之資料係於在後述BER監視器16中生成直方圖之時被使用。
接著,雖然說明編碼器14及解碼器15之構成,但是因針對與直接法有關的水平方向之編碼處理和解碼處理予以說明,且垂直方法之編碼處理和解碼處理係藉由XOR運算等而被執行,故省略說明。
圖6為表示實行直接法運算的編碼器14及解碼器15之構成的電路圖。編碼器14及解碼器15係藉由圖6所示的電路30而被實現。電路30具有輸入電路31、輸出電路32、緩衝器33、同位/預徵狀算出電路34、徵狀生成電路35及譯碼器36。
在電路30被輸入輸入資料IDATA,和模式資料MODE。電路30係輸出被編碼的資料或被解碼的資料。模式資料MODE係表示將電路30作為編碼器14而動作的編碼模式,或將電路30作為編碼器15而動作的解碼模式。模式資料MODE係從控制電路13被供給。
輸入電路31係擷取輸入資料IDATA的電路。編碼模式之時,輸入資料IDATA係碼字CW的資料。解碼模式之時,輸入資料IDATA係包含被附加水平方向同位的碼字CW的編碼資料(碼字單位資料CWU)。
輸出電路32係將編碼資料或解碼資料作為輸出資料ODATA而予以輸出的電路。解碼模式之時,輸出資料ODATA係碼字CW的資料。編碼模式之時,係包含被附加水平方向同位的碼字CW的編碼資料。
緩衝器33係暫時性地儲存輸入資料IDATA的電路。
同位/預徵狀算出電路34係於對輸入資料IDATA(例如64B之碼字CW)予以編碼之時,算出同位並予以輸出,對輸入資料IDATA進行解碼之時,算出預徵狀並予以輸出。
具體而言,當動作模式為編碼模式之時,同位/預徵狀算出電路34生成同位位元。被生成的同位係朝輸出電路32被輸出。輸出電路32係將編碼資料作為輸出資料ODATA而予以輸出。編碼資料係被儲存於緩衝器33的輸入資料被附加同位位元之碼字單位資料CWU。
動作碼為解碼模式之時,同位/預徵狀算出電路34係算出預徵狀,朝徵狀生成電路35輸出。
動作模式為解碼模式之時,徵狀生成電路35係根據預徵狀而生成徵狀。在此,因校正4位元以下的位元,故徵狀為S1、S3、S5、S7。
解碼器36係根據所生成的徵狀,輸出表示錯誤位元位置的位址,或校正失敗的電路。
圖7為表示解碼器36之構成的電路圖。解碼器36具有控制電路41、錯誤判定電路42、第1探索電路43、第2探索電路44及位址轉換電路45。
解碼器36被輸入徵狀,解碼器36輸出錯誤位置的位址資訊。
控制電路41係控制解碼器36之全體的動作。
錯誤判定電路42係輸入徵狀而判定錯誤的校正位元數。錯誤判定電路42也算出用以探索位元錯誤位置的各種中間資訊。錯誤判定電路42係朝第1探索電路43和第2探索電路44輸出徵狀和中間資訊。錯誤判定電路42係朝控制電路41輸出校正數的資料。
該校正位元數的資料係在BER監視器16中被使用。
控制電路41係根據校正位元數而啟動第1探索電路43或第2探索電路44。當校正位元數為1或2之時,啟動第1探索電路43,不啟動第2探索電路44。當校正位元數為3或4之時,不啟動第1探索電路43,啟動第2探索電路44。
在第1探索電路43被輸入徵狀S1和中間資訊。第1探索電路43進行1或2位元的錯誤之錯誤位置探索。
在第2探索電路44被輸入徵狀S1和中間資訊。第2探索電路44進行3或4位元的錯誤之錯誤位置探索。
即是,解碼器15具有判定錯誤數的錯誤判定電路42,和探索在第1錯誤數中的錯誤位置的第1探索電路43,和探索在與第1錯誤數不同的第2錯誤數中的錯誤位元位置的第2探索電路44。
再者,控制電路41係根據校正位元數,進行對位址轉換電路45的指示。若校正位元數為1或2時,以輸入第1探索電路43之輸出之方式,朝位址轉換電路45指示。若校正位元數為3或4時,以輸入第2探索電路44之輸出之方式,朝位址轉換電路45指示。
位址轉換電路45係從來自第1探索電路43或第2探索電路44之錯誤位置資訊,轉換成輸入資料IDATA中之錯誤位元位置的位址資訊。位址轉換電路45也輸出校正位元數之資訊和解碼失敗之資訊。
控制電路41係當從錯誤判定電路42接收校正位元數為0的資訊時,輸出準備狀態資訊(DEC_READY)。控制電路41可以根據準備狀態資訊(DEC_READY),使第1探索電路43及第2探索電路44之動作停止。其結果,因產生第1探索電路43和第2探索電路44不消費電力的狀態,故可以降低電流效率。
如上述般,以當藉由錯誤判定電路42而被判定的錯誤數為第1錯誤數之時,第1探索電路43動作而第2探索電路44不動作,當藉由錯誤判定電路42而被判應的錯誤數為第2錯誤數之時,第1探索電路43不動作而第2探索電路44動作,當藉由錯誤判定電路42而被判定的錯誤數為0之時,第1探索電路43及第2探索電路44不動作之方式,控制第1探索電路43及第2探索電路44。
在本實施型態中,記憶體控制器3可以因應來自主機4的資料之讀出要求,進行隨機讀取。在本說明書中,隨機讀取係以100位元組單位從例如數位元組單位讀出1頁中之一部分的資料的處理。即是,隨機讀取係指讀出1頁內或1子頁內之資料尺寸小的資料(例如64B)。
(BER監視)
BER監視器16係生成針對包含隨機隨取之讀出對象資料的頁資料Pd之一部分的資料而被判定的校正數的直方圖的電路。在此,若頁資料pd為16KB程度時,頁資料Pd之一部分為前頭的512B。
控制電路13係當記憶體指令3接收讀出指令時,將包含在其指令中被指定的位址的頁資料Pd或子頁資料PCD之中的事先被設定的區域之資料,供給至解碼器15。
圖8為用以說明BER監視器16使用於直方圖生成的資料區域的圖。複數頁資料Pd被記憶於NAND記憶體2。包含隨機讀取之對象位址的頁資料Pd(例如,在圖8中,為字元線WL4)被讀出之時,頁資料Pd或子頁資料PCD中之特定區域PB之資料作為BER監視區域而被供給至解碼器15。在此,如圖8所示般,特定區域(以下,稱為BER監視區域)PB之資料為頁資料Pd之前頭的512B資料。即是,BER監視區域PB之資料為來自NAND記憶體2之資料的讀出單位之資料的一部分。
控制電路13係將BER監視區域PB之複數碼字CW供給至解碼器15。解碼器15係使用作為ECC同位的同位位元pbh而對被輸入的BER監視區域PB之各字元CW進行解碼,輸出校正數的資料。解碼器15係如上述般,輸出在解碼處理中能獲得的校正位元數的資料。依此,解碼器15係輸出針對被輸入的BER監視區域PB所含的複數碼字CW的校正位元數的資料。
BER監視器16係對在解碼器15中被判定的複數碼字CW之校正位元數的資料進行處理,藉由例如管線處理電路而進行處理,可以取得校正位元數之直方圖資料。依此,控制電路13係根據解碼器15輸出的校正位元數之資料,生成校正位元數之直方圖。
如上述般,包含讀出對象資料TD之記憶體單元陣列部11之記憶區域之一部分的資料係藉由解碼器15按作為單位資料的每個碼字CW被解碼。被設置在NAND記憶體2的BER監視器16係根據每個單位資料之校正位元數計算位元錯誤率(BER),監視位元錯誤率(BER)。
圖9為表示直方圖之例的圖。從解碼器15輸出的校正位元數之資料,控制電路13生成圖9所示的每個校正位元數的直方圖。圖9係表示在BER監視區域PB,有較多的校正位元數為「0」的碼字CW,僅有一些校正數為「1」的碼字CW,無校正位元數為「2」以上之碼字CW的例。
如圖9所示般,校正位元數為「0」之比例高,就算校正位元數為「1」以較少的比例存在,校正位元數為「2」以上之比例亦為「0」之情況,認為其頁資料Pd所含的隨機讀取對象資料之解碼時的錯誤校正率低。相反地,認為校正位元數為「2」以上之比例高於特定比例之情況,有其頁資料Pd所含的隨機讀取對象資料之解碼時的錯誤校正率不低的可能性。控制電路13係可以從BER監視器16之生成的直方圖之資料,判定頁資料Pd或子頁資料PCD所含的隨機讀取對象資料之解碼時的錯誤校正率低,或不低。
例如,控制電路13係在校正位元數為「2」以上之比例為0%,校正位元數為「1」之比例為10%以下,剩下的校正位元數為「0」之情況,判定為頁資料Pd或子頁資料PCD所含的隨機讀取對象資料之解碼時之錯誤校正率為低,在除此之外的情況,判定為頁資料Pd或子頁資料PCD所含的隨機讀取之對象資料的解碼時之錯誤校正率不低。
在此,控制電路13係比較針對相對於每個校正位元數之全體的比例的特定臨界值,和相對於被檢測出之各校正位元數之全體的比例,判定頁資料Pd或子頁資料PCD所含的隨機讀取之對象資料的解碼時之錯誤校正率是否低。
另外,解碼時之錯誤校正率是否低,即使藉由被檢測出的各校正位元數之值,和特定值(臨界值)之比較,來判定亦可。
在本實施型態中,NAND記憶體2中,藉由BER監視器16算出直方圖資料(包含隨機讀取對象資料的頁資料Pd或子頁資料PCD之校正位元數資料)。NAND記憶體2根據直方圖資料判定解碼時之錯誤校正率低之情況,編碼器14在硬判定解碼所致的水平方向解碼(以下,也稱為水平方向HB解碼)成功之時,將1或2以上的碼字CW之資料照原樣地作為隨機讀取對象資料,而朝記憶體控制器3輸出。
而且,如後述般,在其水平方向HB解碼不成功之情況,NAND記憶體2係藉由乘積碼框之垂直方向之硬判定解碼,進行包含隨機讀取對象資料之頁資料Pd或子頁資料PCD的解碼。硬判定解碼所致的垂直方向解碼(以下,也稱為垂直方向HB)成功之時,NAND記憶體2係將頁資料Pd或字頁資料PCD,和被解碼的資料朝記憶體控制器3輸出。
再者,在乘積碼框之垂直方向HB解碼不成功之情況,NAND記憶體2係將包含隨機讀取對象資料的頁資料Pd或子頁資料PCD之資料朝記憶體控制器3輸出,在記憶體控制器3中,進行乘積碼框之軟判定解碼所致的水平方向解碼(以下,也稱為水平方向SB解碼)。
並且,在記憶體控制器3中,於水平方向之軟判定解碼也不成功之情況,在記憶體控制器3中,進行乘積碼之軟判定解碼所致的垂直方向解碼(以下,也稱為垂直方向SB解碼)。
BER監視器16所致的BER計算即使對隨機讀取處理序列地實行亦可,即使與隨機讀取處理並列地實行亦可。
圖10係用以說明在BER監視器16的直方圖計算的時序的曲線圖。表示讀出1頁(16KB)之資料中的12.5%(2KB)之資料之情況的時序的圖。圖10為狀況1、狀況2和狀況3之時序圖。狀況1為直列地進行本實施型態之直方圖計算和隨機讀取的狀況。狀況2為並列地進行本實施型態之直方圖計算和隨機讀取的狀況。狀況3為在記憶體控制器3中,不進行乘積編碼,而對每64B被BCH編碼的資料進行解碼而讀出2KB之資料的狀況。
狀況1為使用頁資料Pd中之BER監視區域PB之複數碼字CW(24B之情況)而進行校正位元數之資料之直方圖計算後,進行2KB之資料的讀出。在特定條件下的申請人之模擬計算中,對1頁中的2KB之資料的讀出,乘上2825ns(奈秒)。
狀況2為並列進行使用頁資料Pd中之BER監視區域PB之複數碼字CW(24B之情況)的校正位元數之資料之直方圖計算,和2KB之資料的讀出。在特定條件下的申請人之模擬計算中,對1頁中的2KB之資料的讀出,乘上2600ns(奈秒)。
在狀況3中,在特定條件下的申請人之模擬計算中,對1頁中的2KB之資料的讀出,乘上5160ns(奈秒)。
圖11為表示與隨機讀出之情況的記憶體系統1中之錯誤檢測校正處理之動作的流程之例的流程圖。
當從主機4接受資料之讀出要求時,記憶體控制器3之處理器21係朝NAND記憶體2輸出從與讀出要求有關的資料(即是對象資料)之邏輯位址被轉換後的物理位址(包含對象資料之記憶區域之物理位址),和讀出指令。在此,說明1頁資料Pd中之1個子頁資料PCD中之複數對象資料被讀出之情況。
圖12為表示子頁資料PCD中包含複數對象資料TD的圖。如圖12所示般,在子頁資料PCD(4KB)中存在複數對象資料。
控制電路13係特定複數物理位址之頁,從記憶體單元陣列部11讀出其物理位址之頁資料Pd。控制電路13係對BER監視器16指示被讀出的頁資料Pd之BER監視區域PB之校正位元數之直方圖之生成。當控制電路13從BER監視器16接收直方圖資料時,實行圖11之處理。
控制電路13係從來自BER監視器16的直方圖資料,判定包含複數對象資料TD之頁資料Pd之位元錯誤率(BER)是否低於特定比例(步驟(以下,略稱為S)1)。
如上述般,例如,校正位元數為「2」以上之比例係0%,校正位元數為「1」之比例為10%以下,剩下的校正位元數為「0」之情況,控制電路13判定為包含對象資料TD之頁資料Pd之位元錯誤率(BER)低。在除此以外之情況,控制電路13判定為包含對象資料TD的頁資料Pd之位元錯誤率(BER)不低。
在位元錯誤率低於特定比例之情況(S1:YES),控制電路13從子頁資料PCD之乘積碼框,對包含對象資料TD之位址之資料的各碼字CW,實行水平方向之硬判定解碼(S2)。S2之處理為水平方向HB解碼。
S2之後,判定包含複數對象資料TD之位址之資料的複數碼字CW是否全部被正確解碼(S3)。在複數碼字CW全部被正確地解碼之情況(S3:YES),控制電路13係以包含複數對象資料的複數碼字CW之解碼成功,不賦予同位資料,而將與讀出要求有關的複數物理位址之複數對象資料TD(即是,複數碼字CW)朝記憶體控制器3輸出。在此情況,記憶體控制器3可以不延遲照原樣地輸出從NAND記憶體2接收到的複數對象資料TD。
即是,被設置在NAND記憶體2的控制電路13係根據位元錯誤率(BER),判定是否輸出藉由使用同位資料pbh的水平方向HB解碼而解碼後的讀出對象資料TD。具體而言,控制電路13係當從記憶體控制器3接收讀出指令時,在位元錯誤率(BER)低時,控制解碼器15,以使從記憶體單元陣列部11被讀出的與讀出指令有關的讀出對象資料TD,進行使用同位資料pbh之水平方向HB解碼,在讀出對象資料TD之水平方向HB解碼成功之時,將被解碼後的讀出對象資料TD朝記憶體控制器3輸出。
在位元錯誤率(BER)不低於特定比例之情況(S1:NO),或包含複數對象資料TD之複數位址之資料的複數碼字CW不全部被正確地解碼之情況(S3:NO),控制電路13使用4KB之乘積碼資料,使第2解碼處理部,從子頁資料PCD之乘積碼框,實行垂直同位確認即是垂直方向HB解碼(S4)。藉由垂直同位確認,進行例如XOR運算所致的消失校正。S4之處理為硬判定之硬位元(HB)解碼處理。
另外,在S4中於實行垂直方向HB解碼之後,使用以其垂直方向HB解碼被校正後的資料,而且進行水平方向HB解碼,另外若有必要,即使實行如實行垂直方向HB解碼般的重複解碼亦可。例如,當垂直同位使用根據BCH碼或里德所羅門碼的同位資料時,能夠實行重複解碼。
S4之後,控制電路13判定包含複數對象資料TD之位址之資料的複數碼字CW是否全部被正確解碼(S5)。複數碼字CW全部被正確地解碼之情況(S5:YES),控制電路13係以與被解碼後之對象資料TD之複數碼字CW同時,對藉由垂直方向HB解碼被解碼後的資料實行CRC之方式,將被解碼後的4KB之使用者資料朝記憶體控制器3輸出。其結果,在記憶體控制器3中實行CRC。另外,即使CRC在控制電路13實行亦可。
即是,記憶體控制器3在讀出對象資料(TD)之水平方向HB解碼不成功之情況,於垂直方向HB解碼成功之時,實行CRC。
處理器21係對NAND記憶體2接收到的使用者資料實行CRC之確認(S6),判定是否跳過CRC之確認(S7)。在此,CRC之確認為子頁資料PCD單位。
如上述般,在本實施型態中,在BER監視器16之位元錯誤率(BER)低之時,水平方向HB解碼不成功之情況,及BER監視器16之位元錯誤率(BER)不低之情況,以使進行CRC之確認,來防止錯誤校正之產生,同時抑制潛時變大。換言之,在BER監視器16之位元錯誤率(BER)低且水平方向HB解碼不成功之情況,不進行CRC。
在將判定為跳過CRC之情況(S7:YES),處理器21抽出與隨機讀取有關的複數對象資料TD,而朝主機4輸出。
如上述般,控制電路13係在讀出對象資料TD之水平方向HB解碼不成功之時(S3:NO),控制解碼器15,以使進行使用垂直方向之同位位元pbv1的垂直方向HB解碼。控制電路13係在讀出對象資料(TD)之垂直方向HB解碼成功之時,輸出藉由垂直方向HB解碼而被解碼後的讀出對象資料TD。
複數碼字CW藉由硬判定解碼不被正確地解碼之情況(S5:NO),控制電路13係將包含複數對象資料的乘積碼框朝記憶體控制器3輸出,實行ECC電路22之解碼器22a所致的水平方向SB解碼(S8)。S8之處理為軟判定之軟位元(SB)解碼處理。
處理器21係例如複數次讀出與複數對象資料有關的碼字CW,一面使用其被讀出的資料而進行各位元之「0」或「1」之確率計算,一面進行軟判定。
如上述般,記憶體控制器3之處理器21係在讀出對象資料TD之水平方向及垂直方向之硬判定解碼不成功之時(S5:NO),控制解碼器22a,以使進行解碼器22a所致的水平方向SB解碼(S8)。
處理器21係實行水平方向SB解碼之結果,判定各碼字CW是否正確地被解碼(S9)。
在水平方向SB解碼成功之情況(S9:YES),處理器21實行S6和S7之處理。
在水平方向SB解碼不成功之情況(S9:NO),處理器21使用解碼器22a,從子頁資料PCD之乘積碼框,實行垂直方向SB解碼(S10)。S4之處理為XOR運算所致的軟判定之軟位元(SB)解碼處理。垂直方向SB決定解碼之處理係以子頁資料PCD單位被進行。另外,於讀出對象資料TD的存在涵蓋4個子頁資料PCD之時,垂直方向SB解碼之處理係以頁單位被進行。
在S10中,使用子頁資料PCD(例如4KB)之乘積碼框之縱向之同位位元部PBV,實行垂直方向SB解碼。
另外,即使在S10中,實行上述般之重複ECC亦可。
處理器21係實行垂直方向SB解碼之實行的結果,判定包含對象資料TD之碼字CW是否正確地被解碼(S11)。
在垂直方向SB解碼成功之情況(S11:YES),處理器21實行S6和S7之處理。
在垂直方向SB解碼不成功之情況(S11:NO),及不跳過CRC確認之情況(S7:NO),處理器21在資料之讀出失敗,實行資料之讀出失敗之情況的事先設定的處理。
如上述般,當在NAND記憶體2中,無法進行根據硬位元(HB)之硬判定所致的錯誤檢測校正(硬判定解碼)之時,藉由記憶體控制器3進行軟判定所致的錯誤檢測校正(軟判定解碼),謀求錯誤檢測校正之校正率的提升。
即是,當藉由BER監視器16認為包含讀出對象資料TD之頁資料Pd之錯誤校正率低之情況,包含讀出對象資料TD之頁的碼字CW之水平方向的硬判定解碼成功之時(S3:YES),照原樣地NAND記憶體2將讀出對象資料TD輸出至記憶體控制器3。
而且,在水平方向之硬判定解碼不成功之情況(S3:NO),及BER監視器16判定為包含讀出對象資料TD之頁的錯誤校正率不低之情況(S1:NO),因記憶體控制器3確認無錯誤校正,故進行CRC確認,防止錯誤校正率之下降。
圖13為表示上述硬判定解碼和軟判定解碼中,被檢測出之原始的位元錯誤率RBER(Raw Bit Error Rate),和無法校正位元錯誤率UBER(Uncorrectable Bit Error Rate)之關係的示意性曲線圖。
水平方向之硬判定解碼之BER(Horizontal ECC (HB)),和垂直方向硬判定解碼之BER(Vertical ECC (HB))、水平方向之軟判定解碼之BER(Horizontal ECC (SB))及垂直方向之軟判定解碼之BER(Vertical ECC(SB))中之任一者如白色箭號所示般,原始的位元錯誤率RBER越大,無法校正位元錯誤率UBER變大。
再者,原始的位元錯誤率RBER越大,無法校正位元錯誤率UBER係依垂直方向之軟判定解碼之BER(Vertical ECC(SB))、水平方向之軟判定解碼之BER(Horizontal ECC (SB))、垂直方向之硬判定解碼之BER(Vertical ECC (HB))、水平方向之硬判定解碼之BER(Horizontal ECC (HB)之順序變小。
依此,藉由以圖11所示之順序進行解碼,成為解碼盡早地成功。
在此,針對NAND記憶體2之平面數為16個之情況予以說明。
圖14為表示記憶體單元陣列部具有16個框的平面的NAND記憶體2之構成的方塊圖。圖15為表示NAND記憶體2之構成的組裝圖。NAND記憶體2包含兩個半導體晶片51、52。半導體晶片51係搭載ECC電路12和控制電路13的半導體裝置。半導體晶片52係搭載記憶體單元陣列部11A的半導體裝置。在半導體晶片51之上側疊層半導體晶片52而以接合劑被固定。半導體晶片51和半導體晶片52係藉由球凸塊、打線接合等而被電性連接。
另外,半導體晶片52即使為複數亦可。在此情況,複數半導體晶片52係在半導體晶片51之上側被疊層,彼此以接合劑被固定。
記憶體單元陣列部11A包含16個平面PB(PB0、PB1、・・・、PB15)。各平面PB係以複數記憶體單元電晶體(無圖示)的區塊(無圖示)為單位而進行上述各種動作。具體而言,例如,各平面PB係對某區塊內之一部分之記憶體單元電晶體,進行資料之寫入動作及資料之讀出動作,對某區塊內之所有記憶體單元電晶體進行資料之消除動作。
如圖14所示般,平面PB0包含記憶體單元陣列61、行解碼器62及感測放大器模組63。平面PB0~PB15除了特別記載之情況外,具有同等的構成。
記憶體單元陣列61具備複數區塊BLK(BLK0、BLK1、・・・)。各區塊BLK係藉由例如彼此能夠識別的區塊位址而被區別。另外,針對平面PB0以外的平面PB,也包含對應於與平面PB0相同的區塊位址的區塊BLK。在不同的平面PB間被分配相同的區塊位址的區塊BLK彼此,藉由彼此能夠識別的平面位址被區別。區塊BLK包含與字元線及位元線建立關聯的複數非揮發性記憶體單元電晶體(無圖示)。區塊BLK成為例如資料之消除單位,相同的區塊BLK內之資料一起被消除。各區塊BLK具備複數字串單元SU(SU0、SU1、・・・)。各字串單元SU具備複數NAND字串NS。另外,記憶體單元陣列61內之區塊數、1區塊BLK內之字串單元數、1字串單元SU內之NAND字串數可以設定成任意數。
行解碼器62係根據被保持於無圖示的暫存器的位址中之區塊位址而選擇區塊BLK等。而且,在被選擇後的區塊BLK,被傳送來自行解碼器62的各種電壓。
感測放大器模組63係於資料之讀出時,藉由感測記憶體單元電晶體之臨界值而讀出資料。感測放大器模組63係於資料之寫入時,將經由位元線而被寫入的寫入資料傳送至記憶體單元電晶體。再者,感測放大器模組63係從無圖示的電晶體接收位址中之列位址,輸出根據該列位址的列之資料。
在此,作為前提條件,申請人研究在從各平面讀出4KB之資料,從16平面讀出64KB之資料之情況下,設為NAND記憶體2A內之資料的讀出時間(tR)為7.5μs,每7.5μs能夠輸出5.8KB之資料輸出之時,是否從16平面讀出64資料之結果予以說明。
圖16為表示在16平面之各平面中存在1個隨機讀取對象資料(64KB)之情況的圖。即是,如圖16所示般,在各平面中,包含1個含有讀出資料的64KB資料。
圖17為表示在16平面之各平面中存在2個隨機讀取對象資料(64KB)之情況的圖。即是,如圖17所示般,在各平面中,包含2個含有讀出資料的64KB資料。
圖18為表示在16平面之各平面中存在4個隨機讀取對象資料(64KB)之情況的圖。如圖18所示般,在各平面中,包含4個含有讀出資料的64KB資料。
當以能夠進行上述資料輸出作為前提時,在圖18之情況,因若為碼字長度為6KB時,能夠讀出90框,故能夠從各平面讀出4個64B資料。另外,在圖16之情況,即使碼字長度為256B,亦能讀出23框,在圖17之情況,即使碼字長度為128B,亦能讀出32框。
依此,包含上述16平面之NAND記憶體2即使在碼字長度為64B~256B之時,亦能適用於圖15及圖16所示的記憶體系統。
再者,記憶體系統即使具有記憶體控制器3,和包含複數NAND記憶體2的構成亦可。
圖19為表示包含記憶體控制器3和複數NAND記憶體2之記憶體系統之構成的圖。
複數NAND記憶體2係藉由2條匯流排而與記憶體控制器3連接。各NAND記憶體2具有ECC電路22。各NAND記憶體2係當接收來自記憶體控制器3之隨機讀取指令時,進行上述硬位元解碼,可以將每64B之資料朝記憶體控制器3輸出。
如在圖19中以虛線所示般,當在NAND記憶體2中水平方向HB解碼及垂直方向HB解碼失敗時,在記憶體控制器3之ECC電路22中,進行軟位元解碼。
即使在圖19般之構成的記憶體系統中,將碼字長度設為64B,並且從16個平面PB或16個NAND記憶體2之全部讀出資料之情況,在1秒間可以讀出的次數(IOPS(Input Output Per Second)成為16倍。依此,上述實施型態之構成係即使在圖19所示的記憶體系統能夠適用。
再者,在上述實施型態中,在NAND記憶體2中,判定為水平方向及垂直方向之硬判定解碼之成功和失敗。依此,因控制電路13保持其判定結果,故當從記憶體控制器3接收校正錯誤狀態之詢問指令時,使用資料輸入輸出線DQ0~DQ7之一部分,可以將校正狀態朝記憶體控制器3輸出。即是,即使控制電路13設為能夠輸出水平方向HB解碼及垂直方向HB解碼之成功及失敗的資訊亦可。
例如,有資料之讀出指令被實行之時不使用的資料輸入輸出線。控制電路13可以使用如此不使用的資料輸入輸出線,將校正狀態資訊朝記憶體控制器3輸出。例如,控制電路13係在水平ECC校正成功之時,將資料輸入輸出線DQ0之輸出設為Low,於水平ECC校正失敗時,將資料輸入輸出線DQ0之輸出設為High。控制電路13係在垂直ECC校正成功之時,將資料輸入輸出線DQ1之輸出設為Low,於垂直ECC校正失敗時,將資料輸入輸出線DQ1之輸出設為High。
而且,在NAND記憶體2中,CRC被實行之情況,控制電路13係在CRC校正成功之時,將資料輸入輸出線DQ2之輸出設為Low,於CRC校正失敗時,將資料輸入輸出線DQ2之輸出設為High。
依此,記憶體控制器3可以取得在NAND記憶體2中之ECC校正之狀態(成功或失敗)之資訊。
另外,在上述實施型態中,雖然BER監視器16於進行隨機讀取之時,作成直方圖,但是即使於所謂的讀取巡查等之時,生成直方圖亦可。
如上述般,若藉由上述實施型態時,可以提供不縮小資料之編碼率,能夠隨機讀出的記憶體系統、半導體記憶裝置及資料讀出方法。
上述實施型態之記憶體系統1之校正能力係高於不使用乘積碼而在記憶體控制器3中進行ECC校正的記憶體系統之校正能力。
例如,假設在ECC框長度為64B,編碼率為0.89,每64B之資料,在記憶體控制器3進行BCH編碼(4位元以下校正)的記憶體系統A之情況,若藉由申請人進行的模擬時,記憶體系統之校正能力以4KB換算為0.04%。
對此,在設為上述實施型態般的ECC框長度為4KB,碼字CW長度為48B之乘積碼框,對每48B之資料施予BCH編碼(4位元以下校正)之編碼的記憶體系統B之情況,若藉由申請人進行的模擬時,記憶體系統B之校正能力以4KB換算為0.22%。本實施型態所涉及的記憶體系統B之校正能力為記憶體系統A之校正能力的5.5倍。
再者,若藉由申請人進行的模擬時,本實施型態所涉及的記憶體系統B之實行處理量為上述記憶體系統A之實行處理量的24倍。
再者,若藉由申請人進行的模擬時,本實施型態所涉及的記憶體系統B之電流效率為0.73mA/1000MiBPS,上述記憶體系統A之電流效率為7.5mA/1000MiBPS。本實施型態所涉及的記憶體系統B之電流效率為記憶體系統A之電流效率的1/10。
再者,若藉由申請人進行的模擬時,本實施型態所涉及的記憶體系統B之電路規模(解碼部分)係40KUnit(1Unit相當於2輸入NAND),上述記憶體系統A之電路規模(解碼部分)為63KU。本實施型態所涉及的記憶體系統B之電路規模(解碼部分)為記憶體系統A之電路規模(解碼部分)的0.63。
(變形例1)
上述實施型態雖然開示使用NAND記憶體2之能隨機讀取的記憶體系統,但是即使記憶體系統成為可以能夠切換自以往進行每頁資料或每子頁資料之資料讀出的動作模式,和進行上述實施型態般的隨機讀取的動作模式亦可。
圖20為表示與本變形例1有關之記憶體系統之構成的方塊圖。在圖20中,針對與圖1相同的構成要素,標示相同符號省略說明,僅對與圖1不同的構成說明。
記憶體控制器3之ECC電路具有編碼器22b。成為在記憶體系統1A,能從外部輸入動作模式訊號MODE。動作模式訊號MODE係被設定成藉由半導體裝置上之接合切換,成為HIGH或LOW,被供給至NAND記憶體2和記憶體控制器3。
另外,動作模式訊號MODE即使作為來自外部之設定訊號,被供給至記憶體系統1A者亦可。
動作模式訊號MODED為HIGH之時,記憶體系統1A不使用ECC電路22之編碼器22b,實行與上述實施型態相同的動作,作為能隨機讀取的系統而動作。
在動作模式訊號MODE為LOW之時,在記憶體系統1A中,頁資料之編碼使用ECC電路22之編碼器22b,解碼器22a也對藉由編碼器22b被編碼的頁資料進行解碼。當動作模式訊號MODE為LOW之時,更不使用NAND記憶體2之ECC電路12。
在動作模式訊號MODE為LOW之時,記憶體系統1A係作為通常的NAND記憶體,以頁單位進行資料之寫入和讀出。
動作碼訊號MODE為HIGH之時,雖然記憶體系統1A不使用記憶體控制器3之編碼器22b,而以頁單位進行資料的寫入,但是資料之讀出係隨機地進行。
另外,記憶體單元陣列11為多值單元記憶體,例如4bit/Cell之QLC(Quad Level Cell)記憶體之時,在QLC記憶體中,因位元錯誤率(BER)變高,故作為TLC(Triple Level Cell)使用,雖然資料之寫入速度變慢,但是即使降低位元錯誤率(BER),而提高隨機讀取性能亦可。
即是,構築使用多值的非揮發性記憶體而能隨機讀取的記憶體系統之時,可以藉由所謂的作為高可靠性寫入的低速寫入,將資料寫入至非揮發性記憶體,提高隨機讀取性能。
在上述實施型態中,雖然當使用作為非揮發性記憶體的NAND記憶體2使用SLC(Single Level Cell)時,可以降低位元錯誤率(BER),但是以使用TLC記憶體或QLC記憶體比較可以增大記憶體系統之成本優勢。
(變形例2)
在上述實施型態中,雖然1個區塊BLK中之1個字元線WL之1個頁資料Pd中之對象資料TD不被隨機讀取,但是在本變形例中,複數區塊BLK內之複數對象資料TD,或1個區塊BLK內之複數字元線WL中之複數對象資料TD被隨機讀取。
例如,藉由每區域BLK使用頁緩衝器,BER監視器16針對各頁緩衝器從校正位元數資料作成直方圖,可以同時讀出複數區塊BLK內之複數對象資料TD。
再者,藉由依序使包含1個區塊BLK內之複數對象資料TD的複數字元線WL動作,而從各字元線WL對包含對象資料TD的碼字CW進行解碼,可以一起讀出1個區塊BLK內之複數對象資料TD。
圖21係用以說明複數字元線WL中之複數對象資料TD被隨機讀取之情況的圖。黑色表示的部分表示包含對象資料TD的碼字CW。
在圖21之情況,包含對象資料TD之4條字元線WL之資料同時被讀出,被儲存於以虛線表示的包含4個頁緩衝器的頁緩衝器部11A。BER監視器16係生成各頁資料Pd中之BER監視區域PB之校正位元數之直方圖,實行每頁之對象資料TD之解碼處理。
圖22係用以說明針對在BER監視器16中之4條字元線WL的直方圖計算的時序的曲線圖。表示讀出1頁資料(約16KB)中的12.5%(2KB)之資料之情況的時序的圖。圖22為針對4條字元線WL依序進行直方圖計算和隨機讀取的狀況1,和在每字元線WL並列地進行直方圖計算和隨機讀取的狀況2,和在記憶體控制器3進行解碼而讀出2KB之資料的狀況3之時序圖。
狀況1係每字元線WL使用頁資料Pd中之BER監視區域PB之複數碼字CW(24B)而進行校正位元數之資料之直方圖計算後,進行2KB之資料的讀出。在特定條件下的申請人之模擬計算中,在2KB之資料的讀出,乘上3620ns(奈秒)。
狀況2並列進行每字元線WL使用頁資料Pd中之BER監視區域PB之複數碼字CW(24B)的校正位元數之資料之直方圖計算,和2KB之資料的讀出。在特定條件下的申請人之模擬計算中,在2KB之資料的讀出,乘上2720ns(奈秒)。
在狀況3中,在特定條件下的申請人之模擬計算中,針對4條字元線WL,在2KB之資料的讀出,乘上5160ns(奈秒)。
依此,即使藉由本變形例2,亦可以取得與實施型態相等的效果。
雖然說明本發明之實施型態和幾個變形例,但是該些實施型態及各變形例僅為例示,並無限定發明之範圍的意圖。該些嶄新的實施型態可以其他各種型態來實施,只要在不脫離發明之主旨的範圍下,可進行各種省略、置換、變更。該些實施型態或其變形包含在發明之範圍或主旨時,同樣也包含在申請專利範圍所記載之發明和其均等之範圍內。
1,1A:記憶體系統
2:NAND型快閃記憶體
3:記憶體控制器
4:主機
11:記憶體單元陣列
11A:頁緩衝器部
11b:頁緩衝器
12:錯誤檢測更正電路
12a:ECC輸入電路
12b:ECC輸出電路
13:控制電路
14:編碼器
15:解碼器
16:監視器
17:共同匯流排
18:頁緩衝負載電路
19:頁緩衝儲存電路
20:輸入輸出介面
21:處理器
22:錯誤檢測更正電路
22a:解碼器
22b:編碼器
23:資料緩衝器
24:主機介面
25:記憶體介面
26:內部匯流排
[圖1]為表示與實施型態有關之記憶體系統之構成的方塊圖。
[圖2]為表示與實施型態有關之NAND型快閃記憶體之詳細構成的方塊圖。
[圖3]為用以說明關於實施型態的NAND型快閃記憶體之1個記憶體單元陣列之構成的電路圖。
[圖4]為用以說明與實施型態有關的來自主機裝置的使用者資料之編碼的圖。
[圖5]為用以說明與實施型態有關的乘積碼框之構成例的圖。
[圖6]為表示與實施型態有關的實行直接法運算的編碼器及解碼器之構成的電路圖。
[圖7]為表示與實施型態有關之解碼器之構成的電路圖。
[圖8]為用以說明與實施型態有關的位元錯誤率(BER)監視器用於直方圖生成的資料區域的圖。
[圖9]為表示與實施型態有關之直方圖之例的圖。
[圖10]為用以說明與實施型態有關的位元錯誤率(BER)中之直方圖計算的時序的曲線圖。
[圖11]為表示與實施型態有關的隨機讀出之情況的記憶體系統中之錯誤檢測校正處理之動作的流程之例的流程圖。
[圖12]為表示與實施型態有關之子頁資料中包含複數對象資料的圖。
[圖13]為表示與實施型態有關的硬判定解碼和軟判定解碼中,被檢測出之原始的位元錯誤率,和無法校正位元錯誤率之關係的示意性曲線圖。
[圖14]為表示與實施型態有關的記憶體單元陣列部具有16個平面的NAND記憶體之構成的方塊圖。
[圖15]為表示與實施型態有關之NAND記憶體之構成的組裝圖。
[圖16]為表示與實施型態有關的在16平面之各平面中存在1個隨機讀取對象資料之情況的圖。
[圖17]為表示與實施型態有關的在16平面之各平面中存在2個隨機讀取對象資料之情況的圖。
[圖18]為表示與實施型態有關的在16平面之各平面中存在4個隨機讀取對象資料之情況的圖。
[圖19]為表示與實施型態有關的包含記憶體控制器和複數NAND記憶體之記憶體系統之構成的圖。
[圖20]為表示與實施型態之變形例1有關之記憶體系統之構成的方塊圖。
[圖21]為用以說明與實施型態之變形例2有關之複數字元線中之複數對象資料被隨機讀取之情況的圖。
[圖22]為用以說明與實施型態之變型例2有關的針對位元錯誤率(BER)中之4條字元線的直方圖計算的時序的曲線圖。
1:記憶體系統
2:NAND型快閃記憶體
3:記憶體控制器
4:主機
11:記憶體單元陣列
12:錯誤檢測更正電路
13:控制電路
14:編碼器
15:解碼器
16:監視器
21:處理器
22:錯誤檢測更正電路
22a:解碼器
23:資料緩衝器
24:主機介面
25:記憶體介面
26:內部匯流排
Claims (19)
- 一種記憶體系統,具有: 非揮發性記憶體; 控制器,其係控制資料朝上述非揮發性記憶體之寫入及讀出; 編碼器,其係被設置在上述非揮發性記憶體,將朝上述非揮發性記憶體的寫入資料分割成特定位元數之單位資料並轉換成包含複數被生成的上述單位資料的資料框,而生成對每個上述單位資料用以錯誤檢測校正的上述資料框之第1同位資料,和與上述第1同位資料不同的上述資料框之第2同位資料,而進行上述寫入資料之編碼; 第1解碼器,其係被設置在上述非揮發性記憶體,進行從上述非揮發性記憶體讀出後的讀出資料之解碼;及 控制電路,其係被設置在上述非揮發性記憶體,當從上述控制器接收讀出指令時,控制上述第1解碼器,以使從上述非揮發性記憶體被讀出的讀出對象資料,進行使用上述第1同位資料的第1解碼,在上述讀出對象資料之上述第1解碼成功時,將被解碼後的上述讀出對象資料朝上述控制器輸出。
- 如請求項1之記憶體系統,其中 上述第1解碼為硬判定解碼。
- 如請求項1之記憶體系統,其中 上述編碼器係藉由4位元以下校正之BCH編碼而進行上述編碼, 上述第1解碼器係藉由直接法進行上述解碼。
- 如請求項1之記憶體系統,其中 上述非揮發性記憶體具有位元錯誤率監視器,其係對每個上述單位資料藉由上述第1解碼器解碼包含上述讀出資料的上述非揮發性記憶體之記憶區域之一部分的資料,根據每個上述單位資料之校正位元數,計算位元錯誤率,監視上述位元錯誤率, 上述控制電路係根據上述位元錯誤率,判定是否輸出藉由使用上述第1同位資料的第1解碼而解碼後的上述讀出對象資料。
- 如請求項4之記憶體系統,其中 上述一部分之記憶區域係來自上述非揮發性記憶體之資料的讀出單位之資料的一部分。
- 如請求項1之記憶體系統,其中 上述控制電路係在上述讀出對象資料之上述第1解碼不成功之時,控制上述第1解碼器,以使進行使用上述第2同位資料的第2解碼,在上述讀出對象資料之上述第2解碼成功之時,輸出藉由上述第2解碼被解碼後的上述讀出對象資料。
- 如請求項6之記憶體系統,其中 上述第2解碼為硬判定解碼。
- 如請求項6之記憶體系統,其中 上述控制器具有進行軟判定解碼的第2解碼器, 上述控制器係在上述讀出對象資料之上述第1解碼及上述第2解碼不成功之時,控制上述第2解碼器,以使進行上述第2解碼器所致的上述軟判定解碼。
- 如請求項6之記憶體系統,其中 上述控制器係在上述讀出對象資料之上述第1解碼不成功,上述第2解碼成功之時,進行循環冗餘檢查。
- 如請求項1之記憶體系統,其中 上述第1解碼器具有判定錯誤數的錯誤判定電路,和探索在第1錯誤數中的錯誤位元位置的第1探索電路,和探索在與第1錯誤數不同的第2錯誤數中的錯誤位元位置的第2探索電路, 上述第1探索電路及上述第2探索電路被控制成在藉由上述錯誤判定電路而被判定的上述錯誤數為上述第1錯誤數之時,上述第1探索電路動作而上述第2探索電路不動作,在藉由上述錯誤判定電路而被判定的上述錯誤數為上述第2錯誤數之時,上述第1探索電路不動作而上述第2探索電路動作,在藉由上述錯誤判定電路而被判定的上述錯誤數為0之時,上述第1探索電路及第2探索電路動作不動作。
- 如請求項1之記憶體系統,其中 上述非揮發性記憶體為NAND型快閃記憶體。
- 如請求項6之記憶體系統,其中 上述控制電路能夠輸出上述第1解碼及上述第2解碼之成功及失敗之資訊。
- 一種半導體記憶裝置,其係具有非揮發性記憶區域的半導體記憶裝置,具有: 編碼器,其係將寫入資料分割成特定位元數之單位資料並轉換成包含複數被生成的上述單位資料的資料框,而生成對每個上述單位資料用以錯誤檢測校正的上述資料框之第1同位資料,和與上述第1同位資料不同的上述資料框之第2同位資料,而進行上述寫入資料之編碼; 解碼器,其係進行從上述非揮發性記憶體區域讀出後的讀出資料之解碼;及 控制電路,其係當接收讀出指令時,控制上述解碼器,以使從上述非揮發性記憶區域被讀出的讀出對象資料,進行使用上述第1同位資料的第1解碼,在上述讀出對象資料之上述第1解碼成功時,輸出被解碼後的上述讀出對象資料。
- 如請求項13之半導體記憶裝置,其中 上述編碼器係藉由4位元以下校正之BCH編碼而進行上述編碼, 上述第1解碼器係藉由直接法進行上述解碼。
- 如請求項13之半導體記憶裝置,其中 上述控制電路係在上述讀出對象資料之上述第1解碼不成功之時,控制上述第1解碼器,以使進行使用上述第2同位資料的第2解碼,在上述讀出對象資料之上述第2解碼成功之時,輸出藉由上述第2解碼被解碼後的上述讀出對象資料。
- 如請求項13之半導體記憶裝置,其中 上述控制電路能夠輸出上述第1解碼及上述第2解碼之成功及失敗之資訊。
- 如請求項13之半導體記憶裝置,其中 上述第1解碼器具有判定錯誤數的錯誤判定電路,和探索在第1錯誤數中的錯誤位置的第1探索電路,和探索在與上述第1錯誤數不同的第2錯誤數中的錯誤位元位置的第2探索電路, 上述第1探索電路及上述第2探索電路被控制成在藉由上述錯誤判定電路而被判定的上述錯誤數為上述第1錯誤數之時,上述第1探索電路動作而上述第2探索電路不動作,在藉由上述錯誤判定電路而被判定的上述錯誤數為上述第2錯誤數之時,上述第1探索電路不動作而上述第2探索電路動作,在藉由上述錯誤判定電路而被判定的上述錯誤數為0之時,上述第1探索電路及上述第2探索電路不動作。
- 一種資料讀出方法,其係來自非揮發性記憶體之資料的讀出方法, 其係在上述非揮發性記憶體中,將朝上述非揮發性記憶體之寫入資料分割成特定位元數之單位資料並轉換成包含複數被生成的上述單位資料的資料框,而生成對每個上述單位資料用以錯誤檢測校正的上述資料框之第1同位資料,和與上述第1同位資料不同的上述資料框之第2同位資料,而進行上述寫入資料之編碼, 在上述非揮發性記憶體中,進行從上述非揮發性記憶體讀出後的讀出資料之解碼, 在上述非揮發性記憶體中,當接收上述讀出指令時,使從上述非揮發性記憶體被讀出的讀出對象資料,進行使用上述第1同位資料的第1解碼,在上述讀出對象資料之上述第1解碼成功時,輸出被解碼後的上述讀出對象資料。
- 如請求項18之資料讀出方法,其中 上述第1解碼為硬判定解碼。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020153283A JP2022047393A (ja) | 2020-09-11 | 2020-09-11 | メモリシステム、半導体記憶装置及びデータ読み出し方法 |
JP2020-153283 | 2020-09-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202211037A true TW202211037A (zh) | 2022-03-16 |
TWI781631B TWI781631B (zh) | 2022-10-21 |
Family
ID=80476443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110118391A TWI781631B (zh) | 2020-09-11 | 2021-05-21 | 記憶體系統、記憶體裝置及資料讀出方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220083261A1 (zh) |
JP (1) | JP2022047393A (zh) |
CN (1) | CN114168377A (zh) |
TW (1) | TWI781631B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819876B (zh) * | 2022-11-02 | 2023-10-21 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230396270A1 (en) * | 2022-06-02 | 2023-12-07 | Micron Technology, Inc. | Dynamic decoding for memory systems |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101437396B1 (ko) * | 2008-02-27 | 2014-09-05 | 삼성전자주식회사 | 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법 |
CN101572125B (zh) * | 2008-04-30 | 2013-02-27 | 扬智科技股份有限公司 | 错误更正电路及其方法 |
US9116828B2 (en) * | 2008-06-11 | 2015-08-25 | Micron Technology, Inc. | Data bus inversion usable in a memory system |
KR101800445B1 (ko) * | 2011-05-09 | 2017-12-21 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
US8924815B2 (en) * | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US9003269B2 (en) * | 2012-08-30 | 2015-04-07 | Kabushiki Kaisha Toshiba | Memory controller and semiconductor storage device |
US9152493B2 (en) * | 2012-09-12 | 2015-10-06 | Samsung Electronics Co., Ltd. | Error check and correction circuit and semiconductor memory |
US8984369B2 (en) * | 2012-11-21 | 2015-03-17 | Micron Technology, Inc. | Shaping codes for memory |
US9621188B2 (en) * | 2014-03-17 | 2017-04-11 | Samsung Electronics Co., Ltd. | Soft and hard decision message-passing decoding |
KR20170000108A (ko) * | 2015-06-23 | 2017-01-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10205469B2 (en) * | 2016-08-11 | 2019-02-12 | SK Hynix Inc. | Low latency soft decoder architecture for generalized product codes |
JP2018147231A (ja) * | 2017-03-06 | 2018-09-20 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
KR20190017550A (ko) * | 2017-08-11 | 2019-02-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10896123B2 (en) * | 2018-12-13 | 2021-01-19 | Western Digital Technologies, Inc. | Enhancing the effectiveness of read scan performance and reliability for non-volatile memory |
JP7018089B2 (ja) * | 2020-04-02 | 2022-02-09 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置および読出し方法 |
-
2020
- 2020-09-11 JP JP2020153283A patent/JP2022047393A/ja active Pending
-
2021
- 2021-05-21 TW TW110118391A patent/TWI781631B/zh active
- 2021-06-01 US US17/335,511 patent/US20220083261A1/en not_active Abandoned
- 2021-07-05 CN CN202110755434.2A patent/CN114168377A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819876B (zh) * | 2022-11-02 | 2023-10-21 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
TWI781631B (zh) | 2022-10-21 |
CN114168377A (zh) | 2022-03-11 |
JP2022047393A (ja) | 2022-03-24 |
US20220083261A1 (en) | 2022-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326028B (zh) | 具有不同奇偶校验区的存储器件 | |
US9268632B2 (en) | Memory device with ECC history table | |
JP5166074B2 (ja) | 半導体記憶装置、その制御方法、および誤り訂正システム | |
US8112689B2 (en) | ECC controller for use in flash memory device and memory system including the same | |
US9391645B2 (en) | Determining soft data using a classification code | |
US9411679B2 (en) | Code modulation encoder and decoder, memory controller including them, and flash memory system | |
US9093154B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
JP2021111826A (ja) | 復号装置及び復号方法 | |
TWI781631B (zh) | 記憶體系統、記憶體裝置及資料讀出方法 | |
JP7353889B2 (ja) | メモリシステムおよび方法 | |
US11086718B2 (en) | Memory system | |
JP2020155167A (ja) | 不揮発性メモリ | |
US10771094B2 (en) | Memory system configured to estimate a read voltage using a histogram | |
US11755209B2 (en) | Semiconductor memory device and error detection and correction method | |
EP3780397B1 (en) | Operating method of a memory controller | |
US11581046B2 (en) | Storage device and reading method | |
US11250909B2 (en) | Nonvolatile memory and memory system | |
US20230066907A1 (en) | Semiconductor storage device | |
KR20180125298A (ko) | 반복 복호기, 반복 복호 방법 및 반도체 메모리 시스템 | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
CN111324478B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |