TW202034511A - 記憶裝置及資料讀取方法 - Google Patents

記憶裝置及資料讀取方法 Download PDF

Info

Publication number
TW202034511A
TW202034511A TW108129051A TW108129051A TW202034511A TW 202034511 A TW202034511 A TW 202034511A TW 108129051 A TW108129051 A TW 108129051A TW 108129051 A TW108129051 A TW 108129051A TW 202034511 A TW202034511 A TW 202034511A
Authority
TW
Taiwan
Prior art keywords
data
circuit
error correction
memory
read
Prior art date
Application number
TW108129051A
Other languages
English (en)
Other versions
TWI714215B (zh
Inventor
岩井克彦
前田真司
池田宇晶
Original Assignee
日商東芝記憶體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商東芝記憶體股份有限公司 filed Critical 日商東芝記憶體股份有限公司
Publication of TW202034511A publication Critical patent/TW202034511A/zh
Application granted granted Critical
Publication of TWI714215B publication Critical patent/TWI714215B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding 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
    • G06F11/104Adding 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 using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding 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
    • G06F11/102Error in check bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding 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 cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本發明之實施形態提供一種藉由早期發現及識別自半導體記憶元件讀取之資料之輸出異常而可削減解析成本之記憶裝置及資料讀取方法。  實施形態之記憶裝置係自記憶有資料之非揮發性之半導體記憶元件讀取上述資料者,具備錯誤校正電路、保持電路、資料分配電路、及處理電路。錯誤校正電路對自非揮發性之半導體記憶元件按處理單位讀取之資料進行錯誤檢測,並根據需要進行錯誤校正。保持電路可將資料按每一處理單位暫時保持。資料分配電路將自非揮發性之半導體記憶元件讀取之處理單位之資料傳送至錯誤校正電路,並且使資料退避於保持電路。處理電路於藉由錯誤校正電路於資料中檢測到無法進行錯誤校正之錯誤之情形時,讀取退避於保持電路之資料,進行與資料解析相關之指定處理。

Description

記憶裝置及資料讀取方法
本發明之實施形態係關於一種具備SSD(Solid State Drive,固態驅動器)、eMMC(embedded Multi Media Card,嵌入式多媒體卡)、UFS(Universal Flash Storage,通用快閃記憶體)等非揮發性之半導體記憶元件之記憶裝置及資料讀取方法。
於搭載有以NAND(Not AND,與非)快閃記憶體為代表之非揮發性之半導體記憶元件之記憶裝置(記憶體模組)中,於藉由來自主機裝置之讀取(read)命令而讀取之資料(讀取資料)中產生位元錯誤為既知之事實。
作為針對此種位元錯誤之對策,先前,於搭載於記憶體模組之控制器設置錯誤校正電路,進行讀取資料之錯誤校正,然而,由於錯誤校正存在極限,故於讀取資料中存在某固定程度以上之錯誤(劣化)之情形時,對主機裝置回應無法校正(ECC(Error Correction Code,錯誤校正碼)錯誤)。
此外,作為讀取資料成為ECC錯誤之原因,除上述資料本身劣化以外,還存在因NAND快閃記憶體之硬體上之因素而產生資料輸出異常從而產生無法進行錯誤校正之位元錯誤(ECC錯誤)之情況。
該資料輸出異常係指不論是否對寫入完畢之資料區域進行讀取,均輸出全“0”或全“1”之資料之狀態。
然而,先前自控制器對主機裝置只通知ECC錯誤,因此,存在以下問題:於控制器之系統評價時,對來自半導體記憶元件之資料輸出異常係讀取資料之劣化或半導體記憶元件之硬體上之因素進行解析需要較多時間,解析成本增加。
本發明之實施形態提供一種藉由早期發現及識別自半導體記憶元件讀取之資料之輸出異常而可削減解析成本之記憶裝置及資料讀取方法。
實施形態之記憶裝置具備:非揮發性之半導體記憶元件;錯誤校正電路,其對自非揮發性之半導體記憶元件讀取之資料按每一處理單位進行錯誤檢測,並根據需要進行錯誤校正;記憶電路,其可將資料按每一處理單位記憶;資料分配電路,其將自非揮發性之半導體記憶元件讀取之資料按每一處理單位傳送至錯誤校正電路,並且,將資料傳送至記憶電路;及處理電路,其於藉由錯誤校正電路於資料檢測到無法進行錯誤校正之錯誤之情況下,讀取記憶於記憶電路之資料而進行處理。
以下,參照圖式對實施形態詳細地進行說明。  [第1實施形態]
圖1係表示第1實施形態之記憶系統之構成之圖。再者,於圖1中,將表示資料之流動之線(資料線)設為實線,將傳送要求或指令等控制訊號之線(控制線)設為虛線。關於其他圖3、圖5、圖7亦相同。
如圖1所示,第1實施形態之記憶系統具備主機裝置1、及作為記憶裝置之SSD模組2。SSD模組2具備作為非揮發性之半導體記憶元件之NAND快閃記憶體20(以下稱為「NAND記憶體20」)、及NAND控制器21。SSD模組2係自記憶有資料之NAND記憶體20讀取資料之裝置。
NAND記憶體20具有按每一位址分化之記憶體區塊,於寫入資料時,可藉由指定位址而將資料記憶於該記憶體區塊,又,於讀取資料時,可藉由指定位址而自該記憶體區塊讀取資料。
NAND控制器21具有NAND介面22(以下稱為「NANDI/F22」)、FIFO(First-In First-Out,先進先出)緩衝記憶體23(以下稱為「FIFO23」)、錯誤校正電路24、資料緩衝器25、主機介面26(以下稱為「主機I/F26」)、作為保持電路或記憶區域之隨機存取記憶體(RAM,Random Access Memory)區域27(以下稱為「RAM區域27」)、及作為控制電路之CPU(Central Processing Unit,中央處理單元)28。
NAND控制器21對NAND記憶體20進行讀取/寫入。NANDI/F22進行與NAND記憶體20之介面處理。
FIFO23於讀取資料時(資料讀取時),自NAND記憶體20逐一位元組地讀取資料並依序保持資料,當儲存指定處理單位(例如錯誤校正大小之1訊框量、4千位元組或4訊框量、16千位元組)時,以該單位將資料輸出至錯誤校正電路24及RAM區域27。當輸出指定單位之資料時,藉由下一訊框之資料開始覆寫。再者,處理單位並未限定於1訊框量、4訊框量等,亦可為除此以外之訊框數。
即,NANDI/F22及FIFO23係將自NAND記憶體20讀取之處理單位之資料傳送至錯誤校正電路24、並且使資料退避於RAM區域27之資料分配電路。
錯誤校正電路24具有錯誤校正編碼部、及錯誤校正解碼部。錯誤校正編碼部對寫入至NAND記憶體20之資料產生並賦予錯誤校正碼。錯誤校正解碼部對自NAND記憶體20以指定處理單位(訊框單位)讀取之資料進行錯誤檢測,並根據需要進行錯誤校正。
更詳細而言,校正解碼部於資料讀取時,取入自FIFO23輸出之1訊框資料,進行錯誤檢測及錯誤校正,將未檢測到錯誤之資料或經錯誤校正之資料寫入至資料緩衝器25。資料緩衝器25係暫時保持資料者,所保持之資料以指定時序藉由例如主機裝置1讀取。
主機I/F26進行與主機裝置1之介面處理。於介面處理中,依據來自CPU28之指示,將保持於資料緩衝器25之資料向主機裝置1輸出。另外,於資料寫入時,依據來自CPU28之指示,將來自主機裝置1之資料保持於資料緩衝器25,省略關於寫入動作之詳細說明。
RAM區域27係可記憶自FIFO23輸出之指定處理單位(例如1訊框量)之資料(錯誤校正(ECC)解碼前之最新資料)之記憶體(資料暫時保持用之記憶體)。
於錯誤校正電路24之資料解碼結果正常之情形時,將下一訊框之資料覆寫於RAM區域27。又,於資料解碼結果異常之情形時,保持於RAM區域27之資料藉由CPU28讀取。於讀取資料後,RAM區域27接下來被資料覆寫。RAM區域27係用於在藉由錯誤校正電路24得出資料解碼結果之前暫時保持錯誤校正單位之資料之記憶區域。
CPU28按照來自主機裝置1之要求而控制上述各電路、元件,對NAND記憶體20進行資料之讀取/寫入。CPU28作為處理電路發揮功能,該處理電路於藉由錯誤校正電路24於資料中檢測到無法進行錯誤校正之錯誤之情形時,讀取退避於RAM區域27之資料,並進行與資料解析相關之指定處理。
以一例來說明,CPU28於藉由錯誤校正電路24進行錯誤檢測之結果為檢測到ECC錯誤之情形時,將ECC錯誤向主機裝置1通知後,於與藉由錯誤校正電路24檢測到ECC錯誤之資料相同之時序,自RAM區域27讀取自FIFO23寫入至RAM區域27之資料而對其進行處理。
換言之,將NAND記憶體20上之位於同一位址之資料傳送至RAM區域27及錯誤校正電路24兩者,當錯誤校正電路24對錯誤校正電路24側之資料進行ECC而檢測到ECC錯誤時,使用RAM區域27側之資料進行必要之處理。作為此處之資料之必要處理之方法,於該第1實施形態中,按照來自例如主機裝置1之資料輸出要求,將保持於RAM區域27之資料向外部裝置即主機裝置1輸出。
繼而,參照圖2之流程圖對該第1實施形態之記憶系統之動作(資料讀取方法)進行說明。
該記憶系統之情形時,於讀取記憶於NAND記憶體20之資料時,發行來自主機裝置1之資料讀取要求(將其稱為「讀取要求」),該要求由SSD模組2接收(圖2之步驟S101)。
如此一來,於SSD模組2中,CPU28基於所接收之讀取要求而產生讀取指令,並將所產生之讀取指令輸出至NANDI/F22(步驟S102)。
此時,CPU28基於所接收之讀取要求而解析向NAND記憶體20之存取位址,於NANDI/F22之CMD佇列中設定發行指令(讀取指令)及存取位址,而且輸出讀取指令。
再者,於NAND記憶體20為忙碌(busy)狀態之情形時待機,於忙碌狀態解除後輸出讀取指令。
NANDI/F22當接收到讀取指令時,自NAND記憶體20之指定存取位址逐一位元組地依序讀取資料,並將其緩衝於FIFO23(步驟S103)。
FIFO23當將依序儲存之資料保持有指定處理單位量(例如1訊框量)時,將該資料向錯誤校正電路24及RAM區域27傳送(步驟S104)。
錯誤校正電路24對傳送來之資料進行錯誤檢測,當於資料中檢測到錯誤時,進行錯誤校正,當錯誤校正正常結束時,將經錯誤校正之資料記憶於資料緩衝器25。未檢測到錯誤之資料直接記憶於資料緩衝器25。
又,錯誤校正電路24於在資料中檢測到錯誤而無法進行錯誤校正之情形時,將該意旨向CPU28通知。CPU28自錯誤校正電路24接收無法進行錯誤校正之意旨之通知,判定存在ECC錯誤(步驟S105),將判定結果「ECC錯誤」作為讀取結果向主機裝置1輸出(步驟S106)。
於將讀取結果向主機裝置1通知後,若自主機裝置1有該「ECC錯誤」之訊框資料之輸出要求(步驟S107之是(Yes)),則CPU28自RAM區域27讀取所要求輸出之訊框資料,並向主機裝置1輸出(步驟S108)。
於主機裝置1中,藉由對自SSD模組2傳送來之1訊框量之資料進行解析,判定讀取資料其本身是否異常。此處,於讀取資料為全“0”或全“1”或於接近此之值之位元序列中存在位元不均之情形時,可檢測到NAND記憶體20產生異常動作,除此以外,則可判定為通常之資料劣化。
如以上所說明,根據該第1實施形態之記憶系統,設置預先保持(退避)自NAND記憶體20讀取並向錯誤校正電路24傳送之讀取資料其本身之RAM區域27,於該RAM區域27預先保持錯誤校正對象大小之1訊框之資料,於錯誤校正電路24中之讀取資料解碼結果為ECC錯誤之情形時,按照來自主機裝置1之要求,將退避於RAM區域27之、與產生ECC錯誤之讀取資料相同之讀取資料輸出至主機裝置1,因此,於主機裝置1側可早期進行錯誤資料之解析,從而可早期發現及識別自NAND記憶體20讀取之資料之輸出異常,可削減解析成本。  [第2實施形態]
圖3係表示第2實施形態之記憶系統之構成之圖。再者,對該第2實施形態進行說明時,對與第1實施形態相同之構成則附以同一符號,省略其說明。
如圖3所示,第2實施形態之記憶系統設置有自FIFO23向CPU28之資料線29。資料線29係用於以下者:CPU28於通知ECC錯誤後,自NAND記憶體20之指定區域讀取自主機裝置1要求之資料並由CPU28自身接收,不經由錯誤校正電路24而發送至主機裝置1。
於該第2實施形態中,於在錯誤校正電路24中進行讀取資料之解碼之結果為於讀取資料中檢測到ECC錯誤之情形時,CPU28將預先保持於RAM區域27之讀取資料(與錯誤校正電路24解碼者相同之讀取資料)再次編程(記憶)於與NAND記憶體20上之通常之資料記憶區域不同之位址之記憶區域(以下將其稱為(指定區域))。即,將實際讀取資料保持於NAND記憶體20。繼而,根據需要自NAND記憶體20讀取實際讀取資料。
以下,參照圖4之流程圖對該第2實施形態之記憶系統之動作進行說明。再者,對第2實施形態之動作進行說明時,對與第1實施形態相同之步驟則附以同一符號,省略其說明。
該記憶系統之情形時,當由SSD模組2接收到來自主機裝置1之讀取要求時,CPU28發行讀取指令,NAND記憶體20之資料依序緩衝於FIFO23,當FIFO23中儲存有1訊框量之資料時,將資料傳送至錯誤校正電路24及RAM區域27(圖4之步驟S101~S104)。
繼而,當藉由錯誤校正電路24進行資料解碼之結果為檢測到ECC錯誤(步驟S105之是)時,CPU28將作為讀取結果檢測到ECC錯誤之意旨作為讀取結果向主機裝置1通知(步驟S106)。
CPU28對退避於RAM區域27之訊框單位之資料(以下稱為(訊框資料))進行編程,並寫入至NAND記憶體20之指定區域(步驟S110)。再者,此處「編程」係指將訊框資料轉換為NAND記憶體20之寫入單位之資料(1頁單位之資料)。
於將讀取結果向主機裝置1通知之後,若自主機裝置1有該「ECC錯誤」之訊框資料之輸出要求(步驟S111之是),則CPU28自NAND記憶體20之指定區域讀取所要求輸出之訊框資料(再讀取資料),並經由資料線29接收,不進行錯誤校正而輸出至主機裝置1(步驟S112)。
於主機裝置1中,藉由對自SSD模組2傳送來之1訊框量之讀取資料進行解析而判定資料其本身是否異常。此處,於讀取資料為全“0”或全“1”或於接近其之值之位元序列存在位元不均之情形時,可檢測到NAND記憶體20產生異常動作,除此以外,則可判定為通常之資料劣化。位元不均之有無應基於預先設定之閾值(位元不均條件)而判定。位元不均可於所計數之位元數與位元序列之與(and)條件下判定,亦可於僅任一者下判定。
如以上所說明,根據該第2實施形態之記憶系統,藉由將讀取資料預先記憶於RAM區域27,可獲得與上述第1實施形態相同之效果,並且,藉由使檢測到ECC錯誤之讀取資料自RAM區域27退避於NAND記憶體20,可使產生錯誤之資料非揮發化,可不受限於記憶容量而保留下,從而可自較多之資料解析資料之輸出異常之內容。
即,即便於該第2實施形態中亦可早期發現自NAND記憶體20讀取之資料之輸出異常,並可識別讀取資料之異常為硬體亦或資料,可削減解析成本。  [第3實施形態]
圖5係表示第3實施形態之記憶系統之構成之圖。
如圖5所示,第3實施形態之記憶系統於CPU28設置有位元計數電路28a及異常判定電路28b。
位元計數電路28a進行保持於RAM區域27之1訊框量之資料之位元計數,對“0”或“1”之數進行計數。即,位元計數電路28a作為對退避於RAM區域27之資料之位元數進行計數之計數電路發揮功能。
異常判定電路28b對藉由位元計數電路28a進行位元計數之結果(“0”或“1”之數)與預先設定之位元不均條件(閾值)進行比較,於位元計數之結果符合位元不均條件之情形時(閾值以上或未達閾值之情形時),判定為存在位元不均者、即由NAND記憶體20之異常動作所導致之資料異常,將判定結果作為讀取結果向主機裝置1通知,並且,產生將與判定結果對應之旗標賦予至讀取資料之異常歷程,並記憶於記憶體模組2內之指定記憶區域、例如系統韌體(以下稱為「系統FW」)之儲存區域等,對異常歷程進行管理。
作為與判定結果對應之旗標,例如於NAND記憶體20之異常之情形時設為「1」,於資料之劣化之情形時設為「0」等。反之亦可。位元不均之判定係與第2實施形態相同地藉由與閾值(位元不均條件)之比較(符合/不符合條件之判定)而進行。
即,該異常判定電路28b於藉由位元計數電路28a所計數之值及/或位元序列符合預先設定之不均條件之情形時,判定為NAND記憶體20之動作異常,於不符合不均條件之情形時,判定為讀取時之資料之劣化。
以下,參照圖6之流程圖對該第3實施形態之記憶系統之動作進行說明。再者,對第3實施形態之動作進行說明時,對與第1實施形態及第2實施形態相同之步驟則附以同一符號,省略其說明。
該記憶系統之情形時,當由SSD模組2接收到來自主機裝置1之讀取要求時,CPU28發行讀取指令,NAND記憶體20之資料依序緩衝於FIFO23,當FIFO23中儲存有1訊框量之資料時,將資料傳送至錯誤校正電路24及RAM區域27(圖6之步驟S101~S104)。
繼而,當藉由錯誤校正電路24進行資料解碼之結果為檢測到ECC錯誤(步驟S105之是)時,CPU28將檢測到ECC錯誤之意旨作為讀取結果向主機裝置1通知(步驟S106)。
當藉由錯誤校正電路24檢測到ECC錯誤時,於CPU28中,位元計數電路28a自RAM區域27讀取退避於RAM區域27之訊框資料而進行訊框資料之位元計數(步驟S121),對“0”或“1”之位元數進行計數。
異常判定電路28b對藉由位元計數電路28a所計數之結果(“0”或“1”之位元數)與預先設定之閾值進行比較,於所計數之結果為閾值以上(符合位元不均條件),而存在位元不均之情形時(步驟S122之是),判定為由NAND記憶體20之異常動作所導致之資料異常(步驟S123),於系統FW之儲存區域記憶(保持)將旗標「1」賦予至讀取資料之異常歷程(步驟S125),對異常歷程進行管理。
再者,於所計數之結果(“0”或“1”之位元數)與閾值之比較結果為不存在位元不均(步驟S122之否(No))之情形時,判定為通常之ECC錯誤(步驟S124),於系統FW之儲存區域記憶(保持)將旗標「0」賦予至讀取資料之異常歷程(步驟S125),對異常歷程進行管理。該例中,雖將位元不均條件設為閾值以上,但亦可設為未達閾值。
於將讀取結果向主機裝置1通知之後,若自主機裝置1有該「ECC錯誤」之訊框資料之異常歷程之輸出要求(步驟S111之是),則CPU28自系統FW之儲存區域讀取所要求輸出之訊框資料之異常歷程並輸出至主機裝置1(步驟S126)。
於主機裝置1中,根據自SSD模組2傳送來之異常歷程(該訊框資料之旗標「1」或「0」),可立即識別NAND記憶體20產生異常動作亦或資料劣化。
如以上所說明,根據該第3實施形態之記憶系統,藉由將讀取資料預先記憶於RAM區域27,可獲得與上述第1實施形態相同之效果,並且,因於CPU28設置有位元計數電路28a及異常判定電路28b,CPU28自RAM區域27讀取成為ECC錯誤之讀取資料並進行位元計數及異常判定,故可較於主機裝置1對讀取資料進行解析更迅速地確認ECC錯誤之內容(NAND記憶體20之異常或資料劣化)。  [第4實施形態]
圖7係表示第4實施形態之記憶系統之構成之圖。
如圖7所示,第4實施形態之記憶系統不設置上述第1至第3實施形態之RAM區域27,且與自FIFO23向錯誤校正電路24之資料線不同地設置有自FIFO23不經由錯誤校正電路24而連接於資料緩衝器25之資料線30。
於該第4實施形態中,錯誤校正電路24對自NAND記憶體20讀取並自FIFO23以指定處理單位(1訊框)傳送來之資料進行錯誤檢測,並且進行解碼。於解碼時,若檢測到錯誤,則進行資料之錯誤校正,並將經錯誤校正之資料記憶於用於向外部裝置即主機裝置1輸出之資料緩衝器25。
另一方面,於解碼時,若於資料中檢測到無法進行錯誤校正之錯誤(ECC錯誤),則刪除該資料。而且,CPU28發行針對相同資料之新讀取指令。藉由讀取指令自NAND記憶體20再次讀取之資料不傳送至錯誤校正電路24,而經由資料線30記憶(保持)於資料緩衝器25。
更具體而言,將針對來自主機裝置1之讀取要求而自NAND記憶體20讀取之讀取資料傳送至錯誤校正電路24。繼而,於在錯誤校正電路24中進行讀取資料之解碼之結果為於讀取資料中檢測到ECC錯誤之情形時,CPU28於將該意旨通知給主機裝置1後,對產生ECC錯誤之位址再次發行讀取指令。
CPU28藉由讀取指令之發行而執行對NAND記憶體20之讀取處理,將藉由該處理而讀取至FIFO23之讀取資料經由資料線30記憶於資料緩衝器25。
其後,CPU28自資料緩衝器25讀取再讀取之讀取資料,並與第3實施形態相同地進行與解析相關之處理。即,位元計數電路28a進行所再讀取之讀取資料之位元計數,及異常判定電路28b進行異常判定,將其判定結果(異常歷程)記憶於系統FW之儲存區域等。
以下,參照圖8之流程圖對該第4實施形態之記憶系統之動作進行說明。再者,對第4實施形態之動作進行說明時,對與第1至第3實施形態相同之步驟則附以同一符號,省略其說明。
該記憶系統之情形時,當由SSD模組2接收到來自主機裝置1之讀取要求時,CPU28發行讀取指令,NAND記憶體20之資料依序緩衝於FIFO23,當FIFO23中儲存有1訊框量之資料時,將資料傳送至錯誤校正電路24(圖8之步驟S101~S104)。
繼而,當藉由錯誤校正電路24進行資料解碼之結果為檢測到ECC錯誤(步驟S105之是)時,CPU28將檢測到ECC錯誤之意旨作為讀取結果向主機裝置1通知(步驟S106)。
當於錯誤校正電路24中檢測到ECC錯誤時,CPU28對產生ECC錯誤之位址再次發行讀取指令,執行對NAND記憶體20之讀取(步驟S131),將讀取至FIFO23之讀取資料經由資料線30記憶於資料緩衝器25(步驟S132)。
繼而,於CPU28中,位元計數電路28a藉由再次讀取而自資料緩衝器25讀取退避於資料緩衝器25之訊框資料,進行訊框資料之位元計數(步驟S133),對“0”或“1”之位元數進行計數。其後之處理與第3實施形態相同(步驟S122~S126)。
於主機裝置1中,根據自SSD模組2傳送來之異常歷程(該訊框資料之旗標「1」或「0」),可立即識別NAND記憶體20產生異常動作亦或資料劣化。
如以上所說明,根據該第4實施形態之記憶系統,藉由將讀取資料記憶於資料緩衝器25,可獲得與上述第1實施形態相同之效果,並且,不需要設置如第1至第3實施形態所示之特殊之RAM區域27,本發明易於應用於現存者。
又,於CPU28設置位元計數電路28a及異常判定電路28b,自NAND記憶體20再次讀取成為ECC錯誤之讀取資料並記憶於資料緩衝器25後,對該讀取資料進行位元計數及異常判定,因此,可較於主機裝置1對讀取資料進行解析更迅速地發現ECC錯誤之內容(NAND記憶體20之異常或資料劣化)。
如此根據上述第1至第4實施形態,藉由早期發現及識別自NAND記憶體20讀取之資料之輸出異常,可削減解析成本。
雖已對本發明之實施形態進行了說明,然而,該等實施形態係作為例子所提出者,並未意欲限定發明之範圍。該等新穎之實施形態亦可藉由其他各種形態實施,可於不脫離發明之要旨之範圍內進行各種省略、替換、變更。該等實施形態或其變化包含於發明之範圍或要旨內,並且包含於申請專利範圍所記載之發明及其均等之範圍內。  [相關申請案]
本申請案享有以日本專利申請案2019-39972號(申請日:2019年3月5日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之全部內容。
1:主機裝置2:SSD模組20:NAND快閃記憶體(NAND記憶體)21:NAND控制器22:NAND介面22(NANDI/F)23:FIFO緩衝記憶體(FIFO)24:錯誤校正電路25:資料緩衝器26:主機介面(主機I/F)27:RAM區域28:CPU28a:位元計數電路28b:異常判定電路29、30:資料線S101:步驟S102:步驟S103:步驟S104:步驟S105:步驟S106:步驟S107:步驟S108:步驟S110:步驟S111:步驟S112:步驟S121:步驟S122:步驟S123:步驟S124:步驟S125:步驟S126:步驟S131:步驟S132:步驟S133:步驟
圖1係表示第1實施形態之記憶系統之構成之圖。  圖2係表示第1實施形態之記憶系統之動作之流程圖。  圖3係表示第2實施形態之記憶系統之構成之圖。  圖4係表示第2實施形態之記憶系統之動作之流程圖。  圖5係表示第3實施形態之記憶系統之構成之圖。  圖6係表示第4實施形態之記憶系統之動作之流程圖。  圖7係表示第5實施形態之記憶系統之構成之圖。  圖8係表示第4實施形態之記憶系統之動作之流程圖。
1:主機裝置
2:SSD模組
20:NAND快閃記憶體(NAND記憶體)
21:NAND控制器
22:NAND介面22(NANDI/F)
23:FIFO緩衝記憶體(FIFO)
24:錯誤校正電路
25:資料緩衝器
26:主機介面(主機I/F)
27:RAM區域
28:CPU

Claims (11)

  1. 一種記憶裝置,其具備:  非揮發性之半導體記憶元件;  錯誤校正電路,其對自上述非揮發性之半導體記憶元件讀取之資料按每一處理單位進行錯誤檢測,並根據需要進行錯誤校正;  記憶電路,其可將上述資料按每一處理單位記憶;  資料分配電路,其將自上述非揮發性之半導體記憶元件讀取之上述資料按每一處理單位傳送至上述錯誤校正電路,並且將上述資料傳送至上述記憶電路;及,  處理電路,其於藉由上述錯誤校正電路於上述資料檢測到無法進行錯誤校正之錯誤之情況下,讀取記憶於上述記憶電路之上述資料而進行處理。
  2. 如請求項1之記憶裝置,其中  上述處理電路讀取記憶於上述記憶電路之上述資料,並向外部裝置輸出。
  3. 如請求項1之記憶裝置,其中  上述處理電路讀取記憶於上述記憶電路之上述資料,並記憶於上述非揮發性之半導體記憶元件。
  4. 如請求項2之記憶裝置,其中  上述處理電路於存在來自外部裝置之讀取要求之情況下,將記憶於上述記憶電路之上述資料向上述外部裝置輸出。
  5. 如請求項3之記憶裝置,其中  上述處理電路於存在來自外部裝置之讀取要求之情況下,將記憶於上述非揮發性之半導體記憶元件之上述資料向上述外部裝置輸出。
  6. 如請求項1至5中任一項之記憶裝置,其中上述處理電路具備:  計數電路,其對所記憶之資料中之指定位元之數進行計數;及  判定電路,其於藉由上述計數電路所計數之值及/或位元序列符合預先設定之不均條件之情況下,判定為上述非揮發性之半導體記憶元件之動作異常,於不符合不均條件之情況下,判定為讀取時之資料之劣化。
  7. 如請求項6之記憶裝置,其中  上述判定電路產生表示判定結果之異常歷程資訊。
  8. 如請求項7之記憶裝置,其中根據來自外部裝置之要求而將上述異常歷程資訊向上述外部裝置輸出。
  9. 一種記憶裝置,其具備:  非揮發性之半導體記憶元件;  錯誤校正電路,其對自上述非揮發性之半導體記憶元件讀取之資料按每一處理單位進行錯誤檢測,並根據需要而進行錯誤校正,將經錯誤校正之資料保持於用於向外部裝置輸出之資料緩衝器;  資料傳送電路,其對藉由上述錯誤校正電路無法進行錯誤校正、且自上述非揮發性之半導體記憶元件再次讀取之資料不進行錯誤校正處理,而記憶於上述資料緩衝器;及  處理電路,其自上述資料緩衝器讀取記憶於上述資料緩衝器之資料而進行處理。
  10. 一種資料讀取方法,其係自非揮發性之半導體記憶元件讀取資料之方法,  將自上述非揮發性之半導體記憶元件讀取之資料按每一處理單位傳送至錯誤校正電路,並且傳送至記憶電路,  對傳送至上述錯誤校正電路之資料進行錯誤檢測處理,並根據需要進行錯誤校正處理,  於在上述資料檢測到無法進行錯誤校正之錯誤之情況下,讀取傳送至上述記憶電路之上述資料而進行指定處理。
  11. 如請求項10之資料讀取方法,其中  於藉由上述錯誤校正電路於上述資料檢測到無法進行錯誤校正之錯誤之情況下,使上述資料記憶於上述非揮發性之半導體記憶元件,  於存在來自外部裝置之讀取要求之情況下,讀取記憶於上述非揮發性之半導體記憶元件之上述資料而進行指定處理。
TW108129051A 2019-03-05 2019-08-15 記憶裝置及資料讀取方法 TWI714215B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019039972A JP2020144554A (ja) 2019-03-05 2019-03-05 記憶装置およびデータ読出方法
JP2019-039972 2019-03-05

Publications (2)

Publication Number Publication Date
TW202034511A true TW202034511A (zh) 2020-09-16
TWI714215B TWI714215B (zh) 2020-12-21

Family

ID=72336555

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108129051A TWI714215B (zh) 2019-03-05 2019-08-15 記憶裝置及資料讀取方法

Country Status (4)

Country Link
US (1) US10991443B2 (zh)
JP (1) JP2020144554A (zh)
CN (1) CN111666175B (zh)
TW (1) TWI714215B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500719B1 (en) * 2020-03-31 2022-11-15 Amazon Technologies, Inc. Reliability improvements for memory technologies
CN112925481B (zh) * 2021-03-09 2024-04-05 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
JP4299558B2 (ja) * 2003-03-17 2009-07-22 株式会社ルネサステクノロジ 情報記憶装置および情報処理システム
US7424648B2 (en) * 2005-03-10 2008-09-09 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory system, nonvolatile memory device, data read method, and data read program
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
JP2008198234A (ja) 2008-05-26 2008-08-28 Renesas Technology Corp 情報記憶装置
JP2011108306A (ja) * 2009-11-16 2011-06-02 Sony Corp 不揮発性メモリおよびメモリシステム
TWI473105B (zh) * 2011-01-18 2015-02-11 Macronix Int Co Ltd 具有錯誤自動檢查與更正位元之三維記憶體結構
JP5601256B2 (ja) * 2011-03-20 2014-10-08 富士通株式会社 メモリコントローラ及び情報処理装置
US9158621B2 (en) 2011-08-29 2015-10-13 Sandisk Technologies Inc. System and method of copying data
JP5112566B1 (ja) * 2011-12-16 2013-01-09 株式会社東芝 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム
JP6391172B2 (ja) 2015-09-10 2018-09-19 東芝メモリ株式会社 メモリシステム
EP3453022B1 (en) * 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US9778984B1 (en) * 2016-11-01 2017-10-03 Invensas Corporation Enhanced memory reliability in stacked memory devices
JP6854714B2 (ja) * 2017-06-23 2021-04-07 ラピスセミコンダクタ株式会社 半導体記憶装置および半導体記憶装置への書込み方法
KR20190012566A (ko) * 2017-07-27 2019-02-11 삼성전자주식회사 에러 정정 기능을 갖는 메모리 시스템, 메모리 모듈 및 메모리 컨트롤러의 동작 방법
US11068186B2 (en) * 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
US10678636B2 (en) * 2018-02-28 2020-06-09 Intel Corporation Techniques for detecting and correcting errors in data
KR102546229B1 (ko) * 2018-10-05 2023-06-22 삼성전자주식회사 리드 리클레임 동작 시에 버퍼 메모리를 이용하는 스토리지 장치

Also Published As

Publication number Publication date
US10991443B2 (en) 2021-04-27
CN111666175B (zh) 2023-11-03
US20200286576A1 (en) 2020-09-10
TWI714215B (zh) 2020-12-21
JP2020144554A (ja) 2020-09-10
CN111666175A (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
US8281220B2 (en) Apparatus for detecting and recovering from data destruction caused in an unaccessed memory cell by read, and method therefor
US9916087B2 (en) Method and system for throttling bandwidth based on temperature
US8046524B2 (en) Managing processing delays in an isochronous system
US8621328B2 (en) Wear-focusing of non-volatile memories for improved endurance
US8412879B2 (en) Hybrid implementation for error correction codes within a non-volatile memory system
US7954021B2 (en) Solid state drive with flash sparing
US10067823B2 (en) Systems and methods for adaptive error corrective code mechanisms
US7613982B2 (en) Data processing apparatus and method for flash memory
KR101805234B1 (ko) 데이터 메모리의 모니터링 방법, 비일시적 컴퓨터 판독가능 저장 매체 및 보조 메모리
US20140082457A1 (en) Error correcting for improving reliability by combination of storage system and flash memory device
JP2011108306A (ja) 不揮発性メモリおよびメモリシステム
JP2010529557A (ja) 新たな不良ブロック検出
US20060236161A1 (en) Apparatus and method for controlling disk array with redundancy
US20130124931A1 (en) Transmission error detector for flash memory controller
TWI714215B (zh) 記憶裝置及資料讀取方法
US20100162055A1 (en) Memory system, transfer controller, and memory control method
US20240061620A1 (en) Memory system and information processing system
US10783982B2 (en) Probation bit for data storage memory
US20140344641A1 (en) Memory system and cache management method of the same
JP2009181425A (ja) メモリモジュール
US20130219244A1 (en) Storage device
US11645149B2 (en) Information processing system, storage device, and host
KR101512927B1 (ko) 비휘발성 메모리의 페이지 관리 방법 및 장치
US10014983B2 (en) System, receiving device, and method
US20240211174A1 (en) Apparatus and method for processing read command based on deterioration state of memory device