TWI816418B - 半導體儲存裝置及其操作方法 - Google Patents

半導體儲存裝置及其操作方法 Download PDF

Info

Publication number
TWI816418B
TWI816418B TW111120818A TW111120818A TWI816418B TW I816418 B TWI816418 B TW I816418B TW 111120818 A TW111120818 A TW 111120818A TW 111120818 A TW111120818 A TW 111120818A TW I816418 B TWI816418 B TW I816418B
Authority
TW
Taiwan
Prior art keywords
error
code
read
processing unit
safe mode
Prior art date
Application number
TW111120818A
Other languages
English (en)
Other versions
TW202301364A (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 TW202301364A publication Critical patent/TW202301364A/zh
Application granted granted Critical
Publication of TWI816418B publication Critical patent/TWI816418B/zh

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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/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/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/027Detection or location of defective auxiliary circuits, e.g. defective refresh counters in fuses
    • 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
    • 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
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Bipolar Transistors (AREA)

Abstract

本發明提供一種能夠抑制誤動作等並進行安全操作的半導體儲存裝置和操作方法。本發明的快閃記憶體包括基於從ROM讀取的代碼來控制操作的控制器。本發明的操作方法包括:藉由CRC處理部檢測從ROM讀取的代碼是否存在錯誤;當檢測出代碼存在錯誤,判定是否轉移到安全模式;以及在轉移到安全模式後,藉由ECC處理部檢測並校正代碼的錯誤。

Description

半導體儲存裝置及其操作方法
本發明涉及一種半導體裝置,特別是涉及一種中央處理運算裝置(中央處理器(Central Processing Unit,CPU))或微控制器等基於從唯讀記憶體(Read Only Memory,ROM)讀取的代碼來控制操作的快閃記憶體等半導體儲存裝置及其操作方法。
在反及(Not AND,NAND)型快閃記憶體等中,在接通電源時,從熔絲單元(fuse cell)將與操作規格相關的設定資訊載入到暫存器中,並基於所述設定資訊調整讀取、編程、抹除等的操作電壓等。例如美國專利第7,433,247號公報的非揮發性記憶體,公開了如下通電操作:判定從預查驗用熔絲單元讀取的資料是否與預查驗用資料一致,將從主熔絲單元讀取的設定資訊儲存在非揮發性記憶體區域,判定從後查驗用熔絲單元讀取的資料是否與後查驗用資料一致,在預查驗和後查驗一致的情況下,結束設定資訊的讀取。
一般在NAND型快閃記憶體中,CPU藉由讀取儲存在ROM中的代碼來控制各種操作程序。然而,若電源供給電壓由於雜訊或峰值電流暫時下降,或者由於反復讀取引起的壓力等原因而使ROM自身產生缺陷或故障,則有時在ROM的讀取中會產生誤差。假設若發生ROM的讀取誤差,即,若讀取的代碼有錯誤,則引起晶片的操作不良(例如,繁忙堆疊(busy stack),即不返回就緒狀態的繁忙狀態)或誤動作(錯誤地將資料編程到熔絲單元等錯誤的位址的單元中,或者抹除熔絲單元等錯誤的位址的單元的資料)。
為解決ROM的讀取誤差,習知技術提出循環冗餘檢查(Cyclic Redundancy Check,CRC)。CRC將來自發送側的訊息除以預定的生成多項式(generating polynomial)所得的餘數作為檢查資料(同位位元(Parity bit)),將來自發送側的訊息附加檢查資料後作為碼字輸出,在接收側使用相同的生成多項式除碼字以得到餘數,藉由比較和核對在接收側所得的餘數與檢查資料,能夠檢測所接收的資料是否存在錯誤。
圖1是利用CRC的快閃記憶體的通電程序的操作流程。在接通電源時,CPU從ROM讀取代碼(S10),基於CRC對所述代碼檢測有無錯誤(S20)。若未檢測出錯誤(S30),則從熔絲單元讀取設定資訊(S40),將所讀取的設定資訊載入到暫存器中(S50)。在檢測出錯誤的情況下,重複ROM代碼的讀取。在所述情況下,保持ROM代碼的讀取的重試次數,若重試次數為規定值N以下,則等待操作環境的改善後(S70),重複ROM代碼的讀取(S10)。在重試次數超過規定值N的情況下,通電程序以失敗結束。
此種CRC的查驗可檢測出某個偶然的錯誤的發生並進行通知,但由此無法防止各種操作不良或誤動作。另外,在快閃記憶體的不良分析等中,僅藉由CRC的查驗,難以準確地確定錯誤的發生原因。
本發明解決此種以往的課題,目的在於提供一種能夠抑制誤操作等並進行安全操作的半導體儲存裝置和操作方法。本發明的半導體儲存裝置的操作方法中,該半導體儲存裝置包括基於從唯讀記憶體讀取的代碼來控制操作的控制器,該控制器包括循環冗餘檢查(CRC)處理部及錯誤檢測/校正(ECC)處理部,該操作方法包括:藉由該CRC處理部使用第一演算法檢測從該唯讀記憶體讀取的第一代碼是否存在錯誤;當檢測出該第一代碼存在錯誤,藉由該控制器判定是否轉移到安全模式;以及在該控制器判定為轉移到該安全模式後,藉由該ECC處理部檢測並校正該第一代碼的錯誤。
本發明的半導體儲存裝置包括基於從唯讀記憶體讀取的代碼來控制操作的控制器,該控制器包括:循環冗餘檢查(CRC)處理部,被配置為使用第一演算法檢測從該唯讀記憶體讀取的第一代碼是否存在錯誤;判定電路,被配置為當該CRC處理部檢測出該第一代碼存在錯誤,判定是否轉移到安全模式;以及錯誤檢測/校正(ECC)處理部,被配置為在轉移到該安全模式後,檢測並校正該第一代碼的錯誤。
根據本發明,在檢測從ROM讀取的代碼的錯誤並轉移到安全模式的情況下,檢測代碼的錯誤並校正檢測出的錯誤,因此能夠抑制基於ROM的代碼的誤操作。另外,藉由對操作程序中包含的多個操作使用不同的演算法來檢測多個錯誤,能夠更有效地抑制誤操作或操作不良。進而,藉由保持與錯誤檢測相關的檢測資訊和與錯誤檢測/校正相關的校正資訊並使其能夠輸出,能夠容易地確定或分析導致誤操作或操作不良的部位。
本發明的半導體儲存裝置包括NAND型快閃記憶體,或者嵌入此種快閃記憶體的微處理器、微控制器、邏輯、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、處理圖像或聲音的處理器、處理無線信號等信號的處理器等。在以下的說明中,例示NAND型快閃記憶體。
圖2是表示本發明的實施例的NAND型快閃記憶體的功能方塊示意圖。快閃記憶體100包括記憶體單元陣列110、輸入輸出電路120、錯誤檢測/校正(Error Checking and Correcting,ECC)電路130、位址暫存器140、控制器150、字元線選擇電路160、頁面緩衝器/讀出電路170、行選擇電路180及內部電壓產生電路190。記憶體單元陣列110包括排列成矩陣狀的多個記憶體單元。輸入輸出電路120將讀取資料輸出到外部,或接收從外部輸入的資料。ECC電路130產生待編程資料的奇偶校驗資料,並基於奇偶校驗資料檢測與糾正自記憶體單元陣列110所讀出的編程資料的錯誤。位址暫存器140經由輸入輸出電路120接收位址資料。控制器150基於經由輸入輸出電路120接收的命令資料或施加到端子的控制信號來控制快閃記憶體100中的各個電路。字元線選擇電路160從位址暫存器140接收並解碼列位址資訊Ax,並基於解碼結果進行記憶體塊的選擇或字元線的選擇等。頁面緩衝器/讀出電路170保持從由字元線選擇電路160選擇的頁面讀取的資料,或者保持編程到所選擇的頁面中的資料。行選擇電路180從位址暫存器140接收並解碼行位址資訊Ay,並基於所述解碼結果進行頁面緩衝器/讀出電路170內的行的選擇等。內部電壓產生電路190生成用於進行資料的讀取、編程和抹除等所需的各種電壓(編程電壓Vpgm、通過電壓Vpass、讀取通過電壓Vread、抹除電壓Vers、內部供給電壓VDD等)。
記憶體單元陣列110在行方向上包括多個記憶體塊BLK(0)、BLK(1)、…、BLK(m-1),且在各記憶體塊形成由多個記憶體單元串聯連接而成的NAND串。記憶體單元陣列110除了提供給使用者使用的記憶體區域之外,還包括由例如熔絲單元所構成的不提供給使用者使用(或不能被使用者存取)的記憶體區域。熔絲單元儲存有與快閃記憶體的操作相關的設定資訊(例如,編程或抹除等電壓的設定或使用者的選項的設定等),所述設定資訊在通電程序時被讀取,且所讀取的設定資訊被載入到暫存器中。
圖3表示本實施例的控制器150的結構。控制器150包括CPU 200、ROM 210、隨機存取記憶體(Random Access Memory,RAM)220、CRC處理部230、ECC處理部240、計時器250及狀態暫存器260。
CPU 200根據設置在編程計數器中的位址,從ROM 210讀取代碼,對所讀取的代碼進行解碼並基於所讀取的代碼的解碼結果控制字元線選擇電路160、頁面緩衝器/讀出電路170、行選擇電路180及內部電壓產生電路190等的操作。編程計數器PC與時鐘信號同步遞增,CPU 200從ROM 210讀取下一代碼,以控制下一操作。
ROM 210儲存用於執行各種操作程序的代碼。例如儲存用於控制通電程序、讀取、編程、抹除等操作的代碼(包括指令代碼或位址)。CPU 200從ROM 210一次性讀取的代碼的位元數或位元組數並不特別限定。
CRC處理部230查驗CPU 200從ROM 210讀取的代碼(以下簡稱ROM代碼)中是否包含錯誤。為了能夠進行ROM代碼的循環冗餘檢查,可在ROM 210中儲存CRC同位位元(檢查資料)。另一方面,CRC處理部230使用與ROM 210中使用的生成多項式相同的生成多項式除從ROM讀取的代碼,且核對所得的餘數是否與CRC同位位元一致。CRC處理部230所使用的生成多項式與所生成的餘數可儲存於CRC處理部230中。此外,於替代性的實施例中,CRC同位位元也可儲存在硬佈線邏輯或非揮發性記憶體中,而不需要在ROM 210中額外地配置用以儲存CRC同位位元的區域。
於本實施例中,若CRC處理部230查驗到ROM代碼包含錯誤,在進入安全模式後,ECC處理部240可檢測ROM代碼的錯誤,並校正檢測出的錯誤。為了能夠進行ROM代碼的錯誤檢測/校正,可在ROM 210中儲存有在利用ECC對代碼進行符號化時生成的ECC同位位元。ECC處理部240對從ROM 210讀取的代碼(資料與所述資料的ECC同位位元)進行解碼,檢測從ROM讀取的代碼的錯誤位元,並對錯誤位元進行校正。能夠進行錯誤檢測/校正的位元數並無特別限定。在CPU 200的操作模式轉移到安全模式後,執行基於ECC處理部240進行的錯誤檢測/校正,且錯誤校正後的資料被保持在RAM 220中。再者,在快閃記憶體100搭載ECC電路130的情況下,也可將ECC電路130作為ECC處理部240而共有。此外,於替代性的實施例中,ECC同位位元也可儲存在硬佈線邏輯或非揮發性記憶體中,而不需要在ROM 210中額外地配置用以儲存ECC同位位元的區域。
計時器250基於由CPU 200所得的ROM 210的代碼,測量執行中的操作程序的經過時間。計時器250由與CPU 200不同的硬體構成,CPU 200在從ROM 210讀取代碼時,可向計時器250提供計數的指示。在某形態中,計時器250在測量時間達到預定值時,向CPU 200輸出中斷信號,CPU 200回應於所述中斷信號而轉移到安全模式。
狀態暫存器260在CPU 200從ROM 210讀取代碼的期間中,保持CRC處理部230是否檢測到錯誤、CRC處理部230所執行的錯誤檢測的次數、錯誤檢測位元數、檢測到錯誤的ROM區域等資訊、執行中的操作程序的經過時間(以下簡稱為CRC錯誤資訊)。此外,狀態暫存器260也保持ECC處理部240的錯誤檢測/校正的重試次數、錯誤校正位元數、錯誤校正位置、ECC處理部240能否校正等資訊(以下簡稱為ECC資訊)。由狀態暫存器260保持的資料能夠由使用者藉由命令讀取。
其次,參照圖4的流程說明本發明的第一實施例的控制器150的動作。再者,控制器150執行的操作程序為任意,並不限定於特定的操作程序。首先,CPU 200按照在編程計數器中設定的位址,從ROM 210讀取代碼(S100)。在操作程序開始的時間點,CPU 200啟動計時器250(S110)。計時器250測量執行中的操作程序的經過時間,在測量時間達到規定時間Tn時,向CPU 200輸出中斷信號。
CPU 200將從ROM 210讀取的代碼提供給CRC處理部230,CRC處理部230檢測所讀取的代碼有無錯誤(S120)。在未檢測到錯誤的情況下(S130,是),CPU 200對從ROM 210讀取的代碼進行解碼,執行由代碼規定的操作(S140)。
另一方面,在檢測到錯誤的情況下(S130,否),CPU 200更新保持在狀態暫存器260中的CRC錯誤資訊(S150),接著,判定是否轉移到安全模式(S160)。用於轉移到安全模式的判定條件是在基於CRC的錯誤檢測次數達到規定值N1時,或者從計時器250接收到中斷信號時(即ROM 210的讀取時間達到規定時間Tn時),CPU 200判斷為轉移到安全模式。於一實施例中,在步驟S150中包括藉由計數器來計數與更新CRC處理部230的錯誤檢測次數。
在轉移到安全模式的情況下,CPU 200使ECC處理部240開始錯誤檢測/校正(S170)。此時,ECC處理部240可將從ROM 210讀取的代碼全部儲存在RAM 220中,也可僅將用於錯誤校正的位置資訊儲存在RAM 220中。CPU 200還更新保持在狀態暫存器260中的ECC資訊(S180)。
CPU 200判定利用ECC處理部240進行的錯誤檢測/校正的重試次數是否達到規定值N2(S190),若未達到規定值N2,則判斷經錯誤校正後的ROM代碼可靠,對於使用保持在RAM 220中的校正後的代碼或者將從ROM 210讀取的代碼保持在RAM 220中的錯誤位置資訊並進行校正而得者進行解碼,並依據解碼的結果執行操作(S140)。另一方面,在錯誤檢測/校正的次數達到規定值N2的情況下,判斷為無法期待安全的操作,使操作程序結束。於一實施例中,在步驟S190中,藉由第二計數器計數ECC處理部240檢測並校正ROM代碼的錯誤的重試次數。
如此,根據本實施例,在從ROM讀取的代碼有錯誤的情況下,進而在一定的條件下經由ECC處理部240進行錯誤檢測/校正,因此能夠進行避免了操作不良或誤操作的安全的操作。另外,由於可將CRC錯誤資訊和ECC資訊保持在狀態暫存器260中並輸出保持的相應的資訊,因此使用者可容易地進行快閃記憶體的操作不良等的詳細分析。
圖5是表示第二實施例的操作流程的圖。在第二實施例中,利用不同的演算法執行操作程序的多個時刻的CRC的查驗。
在此圖中,步驟S100~步驟S190與第一實施例時相同,但在第二實施例中,在執行操作1後(S140),為了執行操作1之後的操作2,CPU 200從ROM 210讀取代碼(步驟S200)。接著,由CRC處理部230查驗從ROM 210讀取的代碼。在本實施例中,用於操作1的代碼的CRC的查驗1和用於操作2的代碼的CRC的查驗2的演算法不同。例如,查驗1所使用的生成多項式與查驗2所使用的生成多項式不同。在此情況下,在ROM 210中儲存有與操作2對應的代碼、以及作為除以查驗2的生成多項式所得的餘數的CRC同位位元,在CRC處理部230中準備與操作2對應的生成多項式並生成用以與查驗2的CRC同位位元比較的餘數。
CPU 200藉由CRC處理部230判定有無檢測到錯誤(S220),若未檢測到錯誤(S220,是),則對代碼進行解碼,並依據解碼的結果執行操作2(S230)。另一方面,在代碼中檢測出錯誤的情況下(S220,否),執行與第一實施例相同的步驟S150~S190。假設若轉移到安全模式且錯誤檢測/校正的重試次數小於規定值N2,則CPU 200對校正後的代碼進行解碼,執行操作2,若重試次數為規定值N2,則操作程序結束。另外,在狀態暫存器260中,保持與操作1、操作2相關的CRC錯誤資訊和ECC資訊。
如此,根據本實施例,藉由利用檢查能力不同的多個CRC查驗操作程序,可實施與引起操作不良或誤動作的各種主要原因對應的處理,且可容易地進行此種主要原因的分析。再者,所述實施例表示操作程序包括操作1、操作2的例子,但此為一例,操作程序可包括操作1、操作2、···、操作n,在所述情況下,CRC處理部230進行檢查能力或演算法不同的查驗1、查驗2、···、查驗n,且根據所述查驗結果判斷是否轉移到安全模式。
其次,說明第二實施例的操作程序的具體例。圖6是表示在執行通電程序時的ROM代碼的讀取操作的流程圖。基本操作與圖5所示的流程相同,在通電程序中,從熔絲單元讀取設定資訊(S140A)對應於操作1,將所讀取的設定資訊載入到暫存器中(S230A)對應於操作2。
圖7是表示執行編程程序時的ROM代碼的讀取操作的流程圖。基本的操作與圖5所示的流程相同,在編程程序中,對選擇頁面施加編程電壓(S140B)對應於操作1,讀取被編程的頁面以進行編程驗證(S230B)對應於操作2。第二實施例的操作程序也可應用於除了通電程序或編程程序以外的其他讀取操作程序或抹除操作程序。
其次,說明本實施例的狀態暫存器260。如表1所示,狀態暫存器260保持基於CRC處理部230的CRC錯誤資訊,例如包括CRC的結果為通過或失敗、CRC重試次數、計時器的測量時間(用於後續判斷是否達到規定時間Tn)等。此外,狀態暫存器260還保持基於ECC處理部240的ECC資訊,例如包括可否進行ECC校正、ECC重試次數、錯誤校正位元數或其位置等。CPU 200在ROM代碼的讀取操作過程中更新狀態暫存器260中的CRC錯誤資訊或ECC資訊。
圖9是表示從狀態暫存器讀取資料的方法流程圖。在使用者將狀態暫存器的讀取命令輸入到快閃記憶體100後(S300),控制器150根據所述讀取命令的解讀結果存取狀態暫存器260(S310),經由輸入輸出電路120輸出保持在狀態暫存器260的CRC錯誤資訊或ECC資訊(S320)。使用者藉由參照CRC錯誤資訊或ECC資訊,能夠分析在何種操作狀況下ROM代碼發生錯誤、或者ROM等有無缺陷等。
其次,說明本發明的第三實施例。第一實施例和第二實施例中,可進行安全模式下的操作,另一方面,操作所需的時間有可能超過設計規格的時間。因此,在第三實施例中,使用者可設定快閃記憶體100是否能夠在安全模式下進行操作。
控制器150使用表2所示的設定暫存器來設定是否可進行安全模式的操作。例如旗標“1”是設定安全模式被致能,旗標“0”是設定安全模式被禁能。假設在設定了旗標“0”的情況下,CPU 200在圖4、圖5等中不轉移到安全模式,而僅查驗如圖1所示的CRC。
圖9是表示設定暫存器的設定方法的流程圖。在使用者將安全模式設定用命令輸入到快閃記憶體100後(S400),控制器150根據安全模式設定用命令的解讀結果來存取設定暫存器(S410),並將設定暫存器的旗標設為“1”。在所述情況下,設定暫存器的預設狀態是旗標“0”。在解除安全模式的情況下,例如使用者將安全模式解除用命令輸入到快閃記憶體100。
如此,根據本實施例,藉由使用者設定是否可進行安全模式的操作,例如可僅在進行快閃記憶體100的分析時使安全模式運行。
在所述實施例中,例示了NAND型的快閃記憶體,但本發明可應用於CPU基於從ROM讀取的代碼控制操作程序的半導體裝置或半導體儲存裝置。
雖然詳細敘述了本發明的優選的實施方式,但本發明並不限定於特定的實施方式,能夠在申請專利範圍所記載的發明主旨的範圍內進行各種變形、變更。
100:快閃記憶體 110:記憶體單元陣列 120:輸入輸出電路 130:ECC電路 140:位址暫存器 150:控制器 160:字元線選擇電路 170:頁面緩衝器/讀出電路 180:行選擇電路 190:內部電壓產生電路 200:CPU 210:ROM 220:RAM 230:CRC處理部 240:ECC處理部 250:計時器 260:狀態暫存器 Ax:列位址資訊 Ay:行位址資訊 Vers:抹除電壓 VDD:內部供給電壓 Vread:讀取通過電壓 Vpass:通過電壓 Vpgm:編程電壓 S10~S70、S100~S230、S140A、S140B、S230A、S230B、S300~S320、S400~S420:步驟
圖1表示以往的快閃記憶體的通電程序時的操作流程圖。 圖2表示本發明的實施例的NAND型快閃記憶體的方塊圖。 圖3是說明本發明的實施例的控制器中包括的功能的圖。 圖4是說明本發明的第一實施例的控制器的操作的流程圖。 圖5是說明本發明的第二實施例的控制器的操作的流程圖。 圖6是基於本發明的第二實施例的通電程序的操作流程圖。 圖7是基於本發明的第二實施例的編程程序的操作流程圖。 圖8是表示基於本發明的實施例的狀態暫存器的輸出例的流程圖。 圖9是表示基於本發明的第三實施例的操作模式的設定的流程圖。
S100~S190:步驟

Claims (18)

  1. 一種半導體儲存裝置的操作方法,該半導體儲存裝置包括基於從唯讀記憶體讀取的代碼來控制操作的控制器,該控制器包括循環冗餘檢查(CRC)處理部及錯誤檢測/校正(ECC)處理部,該操作方法包括: 藉由該CRC處理部使用第一演算法檢測從該唯讀記憶體讀取的第一代碼是否存在錯誤; 當檢測出該第一代碼存在錯誤,藉由該控制器判定是否轉移到安全模式;以及 在該控制器判定為轉移到該安全模式後,藉由該ECC處理部檢測並校正該第一代碼的錯誤。
  2. 如請求項1所述的操作方法,更包括:計數該CRC處理部使用該第一演算法檢測該第一代碼是否存在錯誤的錯誤檢測次數, 其中藉由該控制器判定是否轉移到安全模式的步驟包括: 判定該錯誤檢測次數是否達到第一規定值;及 在該錯誤檢測次數達到該第一規定值時,該控制器判定為轉移到該安全模式。
  3. 如請求項1所述的操作方法,更包括:測量執行中的操作程序的經過時間, 其中藉由該控制器判定是否轉移到安全模式的步驟包括: 判定所測量的該經過時間是否超過一定時間;及 在所測量的該經過時間超過該一定時間時,判定為轉移到該安全模式。
  4. 如請求項1所述的操作方法,更包括:基於所讀取的該第一代碼或經校正的該第一代碼來執行第一操作。
  5. 如請求項4所述的操作方法,更包括: 在該第一操作之後,從該唯讀記憶體讀取與第二操作對應的第二代碼; 藉由該CRC處理部使用與該第一演算法不同的第二演算法檢測所讀取的該第二代碼是否存在錯誤; 當檢測出該第二代碼存在錯誤,藉由該控制器判定是否轉移到安全模式;以及 當該控制器判定為轉移到該安全模式,藉由該ECC處理部檢測並校正該第二代碼的錯誤。
  6. 如請求項1述的操作方法,更包括: 計數該ECC處理部檢測並校正該第一代碼的錯誤的重試次數;及 當該重試次數超過第二規定值,該控制器結束該操作。
  7. 如請求項1所述的操作方法,更包括: 保持與更新在狀態暫存器中與該CRC處理部所執行的錯誤檢測相關的CRC錯誤資訊;及 保持與更新在該狀態暫存器中與該ECC處理部所執行的錯誤檢測並校正相關的ECC資訊。
  8. 如請求項7所述的操作方法,更包括輸出該CRC錯誤資訊和該ECC資訊。
  9. 如請求項8所述的操作方法,其中該CRC錯誤資訊包括是否檢測到錯誤、錯誤檢測的次數及執行中的操作程序的經過時間中的至少一個,該ECC資訊包括能否校正、錯誤檢測並校正的重試次數、錯誤校正位元數中的至少一個。
  10. 如請求項1所述的操作方法,更包括:設定該安全模式為致能或禁能, 其中該控制器僅在該安全模式被設定為致能的情況下,判定是否轉移到該安全模式。
  11. 如請求項5所述的操作方法,其中該第一操作是從熔絲單元讀取設定資訊,該第二操作是將從該熔絲單元讀取的該設定資訊載入到暫存器中。
  12. 一種半導體儲存裝置,包括基於從唯讀記憶體讀取的代碼來控制操作的控制器, 該控制器包括: 循環冗餘檢查(CRC)處理部,被配置為使用第一演算法檢測從該唯讀記憶體讀取的第一代碼是否存在錯誤; 判定電路,被配置為當該CRC處理部檢測出該第一代碼存在錯誤,判定是否轉移到安全模式;以及 錯誤檢測/校正(ECC)處理部,被配置為在轉移到該安全模式後,檢測並校正該第一代碼的錯誤。
  13. 如請求項12所述的半導體儲存裝置,更包括: 第一計數器,被配置以計數與更新該CRC處理部使用該第一演算法檢測該第一代碼是否存在錯誤的錯誤檢測次數, 其中該判定電路被配置為判定該錯誤檢測次數是否達到第一規定值,且在該錯誤檢測次數達到該第一規定值時,該控制器判定為轉移到該安全模式。
  14. 如請求項12所述的半導體儲存裝置,其中該控制器還包括: 計時器,被配置為測量執行中的操作程序的經過時間, 其中該判定電路判定所測量的該經過時間是否超過一定時間,且在所測量的該經過時間超過該一定時間時,判定為轉移到該安全模式。
  15. 如請求項12所述的半導體儲存裝置,其中該控制器被配置為基於所讀取的該第一代碼或經校正的該第一代碼來執行第一操作,且在該第一操作之後從該唯讀記憶體讀取與第二操作對應的第二代碼, 該CRC處理部被配置為使用與該第一演算法不同的第二演算法檢測所讀取的該第二代碼是否存在錯誤, 該判定電路被配置為當該CRC處理部檢測出該第二代碼存在錯誤,判定是否轉移到該安全模式, 該ECC處理部被配置為在轉移到該安全模式後,檢測並校正該第二代碼的錯誤。
  16. 如請求項12所述的半導體儲存裝置,更包括: 第二計數器,被配置為計數該ECC處理部檢測並校正該第一代碼的錯誤的重試次數, 其中該控制器被配置為當該重試次數超過第二規定值,結束從該唯讀記憶體讀取該代碼。
  17. 如請求項12所述的半導體儲存裝置,其中該控制器還包括:狀態暫存器,被配置為保持與更新與該CRC處理部所執行的錯誤檢測相關的CRC錯誤資訊,及與該ECC處理部所執行的錯誤檢測並校正相關的ECC資訊。
  18. 如請求項12所述的半導體儲存裝置,其中該控制器還包括設定暫存器,被配置為設定該安全模式為致能或禁能,該判定電路僅在該安全模式被設定為致能的情況下,判定是否轉移到該安全模式。
TW111120818A 2021-06-29 2022-06-06 半導體儲存裝置及其操作方法 TWI816418B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-107309 2021-06-29
JP2021107309A JP7161583B1 (ja) 2021-06-29 2021-06-29 半導体装置

Publications (2)

Publication Number Publication Date
TW202301364A TW202301364A (zh) 2023-01-01
TWI816418B true TWI816418B (zh) 2023-09-21

Family

ID=83782304

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111120818A TWI816418B (zh) 2021-06-29 2022-06-06 半導體儲存裝置及其操作方法

Country Status (5)

Country Link
US (1) US20220413748A1 (zh)
JP (1) JP7161583B1 (zh)
KR (1) KR20230002052A (zh)
CN (1) CN115547399A (zh)
TW (1) TWI816418B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230393763A1 (en) * 2022-06-01 2023-12-07 Micron Technology, Inc. Protection against invalid memory commands

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063851B2 (en) * 2012-11-07 2015-06-23 Infineon Technologies Ag Fail safe code functionality
US10884851B2 (en) * 2018-03-20 2021-01-05 Silicon Motion, Inc. Method for accessing flash memory module and associated flash memory controller and electronic device
WO2021012728A1 (zh) * 2019-07-19 2021-01-28 河海大学 一种水利自动化控制系统中现场总线信道加密方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433247B2 (en) * 2005-09-26 2008-10-07 Macronix International Co., Ltd. Method and circuit for reading fuse cells in a nonvolatile memory during power-up
KR101308047B1 (ko) * 2007-02-08 2013-09-12 삼성전자주식회사 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법
JP4994112B2 (ja) * 2007-05-22 2012-08-08 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびメモリ制御方法
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
US20220237079A1 (en) * 2021-01-22 2022-07-28 Micron Technology, Inc. Error detection event mechanism
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063851B2 (en) * 2012-11-07 2015-06-23 Infineon Technologies Ag Fail safe code functionality
US10884851B2 (en) * 2018-03-20 2021-01-05 Silicon Motion, Inc. Method for accessing flash memory module and associated flash memory controller and electronic device
US20210081277A1 (en) * 2018-03-20 2021-03-18 Silicon Motion, Inc. Method for accessing flash memory module and associated flash memory controller and electronic device
WO2021012728A1 (zh) * 2019-07-19 2021-01-28 河海大学 一种水利自动化控制系统中现场总线信道加密方法

Also Published As

Publication number Publication date
TW202301364A (zh) 2023-01-01
JP2023005422A (ja) 2023-01-18
KR20230002052A (ko) 2023-01-05
CN115547399A (zh) 2022-12-30
JP7161583B1 (ja) 2022-10-26
US20220413748A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
US9239758B2 (en) Semiconductor storage device, method for controlling the same and control program
KR101750662B1 (ko) 데이터 에러 교정용 회로, 장치, 및 방법
TWI690933B (zh) 可變電阻隨機存取記憶體
US8161355B2 (en) Automatic refresh for improving data retention and endurance characteristics of an embedded non-volatile memory in a standard CMOS logic process
TWI574277B (zh) 記憶體裝置中之錯誤校正操作
US8954818B2 (en) Error detection and correction scheme for a memory device
US20080137415A1 (en) Multi-Bit Flash Memory Device and Program Method Thereof
CN109388518A (zh) 数据写入方法
JP2007035244A (ja) プログラム速度を向上させる不揮発性メモリ装置及びそのプログラム方法
KR20160143371A (ko) 메모리 시스템 및 그 동작 방법
US8856614B2 (en) Semiconductor memory device detecting error
US8347183B2 (en) Flash memory device using ECC algorithm and method of operating the same
US7471562B2 (en) Method and apparatus for accessing nonvolatile memory with read error by changing read reference
JP2010500699A (ja) メモリデバイス内のセクタごとに許容できるビットエラー
CN111176884A (zh) 用于fpga配置存储器的sec校验方法和装置
TWI816418B (zh) 半導體儲存裝置及其操作方法
TWI782636B (zh) 半導體記憶裝置及其動作方法
JP2004521430A (ja) メモリエラー処理のための方法及び回路装置
US20220246223A1 (en) Non-volatile storage device
TWI737262B (zh) 用於非揮發性記憶體裝置的錯誤更正的控制驗證操作的方法及非揮發性記憶體裝置
US9507663B1 (en) Memory device and operation method
CN112151104A (zh) 存储器存放装置及其动态数据修复的方法
JP2019028952A (ja) 記憶装置