TWI719550B - 記憶體控制器、資料儲存裝置及其開卡方法 - Google Patents

記憶體控制器、資料儲存裝置及其開卡方法 Download PDF

Info

Publication number
TWI719550B
TWI719550B TW108125941A TW108125941A TWI719550B TW I719550 B TWI719550 B TW I719550B TW 108125941 A TW108125941 A TW 108125941A TW 108125941 A TW108125941 A TW 108125941A TW I719550 B TWI719550 B TW I719550B
Authority
TW
Taiwan
Prior art keywords
read
physical
threshold
flash memory
card
Prior art date
Application number
TW108125941A
Other languages
English (en)
Other versions
TW202105189A (zh
Inventor
黃聖元
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW108125941A priority Critical patent/TWI719550B/zh
Priority to CN201910807268.9A priority patent/CN112286442B/zh
Priority to US16/598,323 priority patent/US10983854B2/en
Publication of TW202105189A publication Critical patent/TW202105189A/zh
Application granted granted Critical
Publication of TWI719550B publication Critical patent/TWI719550B/zh

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/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
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • 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/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • 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/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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
    • 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/7202Allocation control and policies
    • 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

Abstract

本發明係提供一種記憶體控制器,耦接至一快閃記憶體。快閃記憶體包括複數個實體區塊,且各實體區塊包括複數個實體頁面,其中部分實體區塊中的部分實體頁面為缺陷實體頁面。記憶體控制器包括:一處理單元,用以設定一總目標開卡時間,並從實體區塊中依序選擇一目前實體區塊以進行快閃記憶體的開卡作業,並依據一讀取操作閾值對目前實體區塊進行讀取操作。因應於目前實體區塊之讀取操作完成,處理單元係動態調整實體區塊的讀取操作所使用的讀取操作閾值,使得快閃記憶體中的開卡作業在該總目標開卡時間內完成。

Description

記憶體控制器、資料儲存裝置及其開卡方法
本發明係有關於記憶體測試,特別是有關於一種記憶體控制器、資料儲存裝置及其開卡方法。
記憶體可分為正常記憶體與次等級記憶體。記憶體包括多個記憶單元以供儲存資料。當記憶體的生產製造商要將記憶體出貨前,必須先經過生產測試以驗證記憶體之記憶單元是否可正確地儲存資料。若記憶體經過測試而無法正確地儲存資料,則生產製造商會將無法通過測試之記憶體歸類為次等級記憶體,並以低價出售次等級記憶體。
亦即,由於半導體生產過程上的誤差,導致次等級記憶體包括有缺陷的記憶單元,而該等有缺陷的記憶單元無法正常的儲存資料。上述缺陷包含記憶體中具有無法被正確存取之缺陷區塊(defective block)、記憶體各元件之間的連接缺陷等等。然而,在次等級記憶體中仍然具有可以正常存取的區塊,因此,次等級記憶體可使用的記憶容量會較正常記憶體的額定記憶容量小。
在市面上有許多電子產品會使用次等級快閃記憶體(downgrade flash memory),例如USB隨身碟、快閃記憶卡等等。此類電子產品在出廠前,需要對次等級快閃記憶體進行開卡(或可稱為初始化)。舉例來說,在次等級快閃記憶體的開卡階段中,需先利用測試機台上的記憶體控制器對次等級快閃記憶體(例如包括一或多個快閃記憶體晶片)中的所有實體頁面進行抹除(erase)、資料寫入及資料讀取等操作,並將次等級快閃記憶體中可進行正常存取的實體區塊及實體頁面挑選出來,並同時記錄良好的及有缺陷的實體區塊及實體頁面的實體位址,方能確定次等級快閃記憶體的可用容量。
然而,因為次等級快閃記憶體的缺陷數量較多,意即無法正常存取的實體頁面數量眾多。因此,次等級快閃記憶體在開卡階段所花費的時間會比正常快閃記憶體在開卡階段所花費的時間大幅增加,造成無法在合理的時間內將次等級快閃記憶體中的所有實體頁面測試完畢,使得生產效率低落。
因此,需要一種資料儲存裝置及用於次等級快閃記憶體的動態開卡方法以解決上述問題。
本發明係提供一種記憶體控制器。該記憶控制器係耦接至一快閃記憶體,其中該快閃記憶體包括複數個實體區塊,且各實體區塊包括複數個實體頁面,其中部分該等實體區塊中的部分該等實體頁面為缺陷實體頁面。該記憶體控制器包括:一處理單元,用以設定該快閃記憶體之一總目標開卡時間,其中該處理單元並從該等實體區塊中依序選擇一目前實體區塊以進行該快閃記憶體的一開卡作業,並依據一讀取操作閾值對該目前實體區塊進行該開卡作業的一讀取操作,其中,因應於該目前實體區塊之該讀取操作完成,該處理單元係動態調整該等實體區塊的該讀取操作所使用的該讀取操作閾值,使得該快閃記憶體的該開卡作業在該總目標開卡時間內完成。
本發明係提供一種資料儲存裝置,包括:一次等級快閃記憶體及一記憶體控制器。次等級快閃記憶體包括複數個實體區塊,且各實體區塊包括複數個實體頁面,其中部分實體區塊中的部分實體頁面為缺陷實體頁面。記憶體控制器,用以設定該次等級快閃記憶體之一總目標開卡時間,並從該等實體區塊中依序選擇一目前實體區塊以進行該次等級快閃記憶體的一開卡作業,並依據一讀取操作閾值對該目前實體區塊進行該開卡作業的一讀取操作,其中,因應於該目前實體區塊之該讀取操作完成,該記憶體控制器係動態調整該目前實體區塊之下一實體區塊的該讀取操作所使用的該讀取操作閾值,使得次等級快閃記憶體的該開卡作業在該總目標開卡時間內完成。
本發明更提供一種用於資料儲存裝置的開卡方法,該包括下列步驟:設定該次等級快閃記憶體之一總目標開卡時間;從該等實體區塊中依序選擇一目前實體區塊以進行該次等級快閃記憶體的一開卡作業,並依據一讀取操成參數對該目前實體區塊進行讀取操作;以及因應於該目前實體區塊之該讀取操作完成,動態調整該目前實體區塊之下一實體區塊之該讀取操作所使用的一讀取重試次數閾值以使該次等級快閃記憶體的該開卡作業在該總目標開卡時間內完成。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的"包含"、"包括"等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如"第一"、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係顯示依據本發明一實施例中之電子系統的方塊圖。電子系統100例如可為一個人電腦(personal computer)、一資料伺服器(data server)、一網路附加儲存裝置(network-attached storage,NAS),一可攜式電子裝置(portable electronic device)等等,但本發明並不限於此。可攜式電子裝置例如可為一筆記型電腦、手持行動電話、智慧型手機、平板電腦、個人數位助理(personal digital assistant,PDA)、數位相機(digital camera)、數位攝影機(digital video camera)、可攜式多媒體播放器(portable multimedia player)、個人導航裝置(personal navigation device)、手持遊戲主機(handheld game console)、電子書(e-book)等等,但本發明並不限於此。
電子系統100包括一主機(host)120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一記憶體控制器160。記憶體控制器160包括控制電路162、韌體164、靜態隨機存取記憶體(static random access memory,SRAM)165、動態隨機存取記憶體(dynamic random access memory,DRAM)166、及錯誤校正電路168。處理單元162可使用多種方式實施,例如專用硬體電路或通用硬體實現(例如,單一處理器、具平行處理能力的多處理器或其他具運算能力的處理器)、上述實現方式例如可為一通用處理器(general-purpose processor)、或一微控制器(microcontroller),但本發明並不限於此。記憶體控制器160中的處理單元162可根據主機120所下達的命令操作,例如透過存取介面170寫入資料到快閃記憶體180中之指定實體位址、或是由快閃記憶體180中的指定實體位址讀取對應的實體頁面所儲存的資料。
處理單元162與快閃記憶體180間的資料與命令傳遞係透過數個電子信號進行協調,上述電子信號包括資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable, CE)、位址提取致能(address latch enable, ALE)、命令提取致能(command latch enable, CLE)、寫入致能(write enable, WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate, DDR)通訊協定與快閃記憶體180溝通,例如,開放NAND快閃(open NAND flash interface, ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元162另可使用存取介面150透過指定通訊協定與主機120進行溝通,例如,通用序列匯流排(universal serial bus, USB)、先進技術附著(advanced technology attachment, ATA)、序列先進技術附著(serial advanced technology attachment, SATA)、快速周邊元件互聯(peripheral component interconnect express, PCI-E)、非揮發性記憶體的傳輸規範(Non-Volatile Memory Express,NVMe)或其他介面。
由程式碼及資料所組成韌體(firmware)由處理單元162執行,記憶體控制器160基於該韌體控制該快閃記憶體180。使用動態隨機存取記憶體166以儲存程式碼、設定參數、暫時資料及邏輯至實體位址映射表,可改善系統的效能。在一些實施例中,動態隨機存取記憶體(DRAM)166為非必要,且處理單元162例如可使用記憶體控制器160中的靜態隨機存取記憶體(未繪示)或主機記憶體緩存(Host Memory Buffer,HMB)以儲存程式碼、設定參數、暫時資料及邏輯至實體位址映射表。
快閃記憶體180例如為一NAND快閃記憶體。快閃記憶體180包括複數個實體區塊(physical block),且每一實體區塊181包括複數個實體頁面(physical page),且每一實體頁面包括複數個記憶體單元(memory cell),其中上述記憶體單元例如可用單層式單元(single-level cell,SLC)、多層式單元(multi-level cell,MLC)、三層式單元(triple-level cell,TLC)、或四層式單元(quad-level cell,QLC)所實現,但本發明並不限於此。在一實施例中,快閃記憶體180例如為一次等級快閃記憶體,包括複數個次等級快閃記憶體晶粒。快閃記憶體180中之部分實體區塊的之部分實體頁面包括有缺陷(defect)的記憶體單元,上述有缺陷的記憶單元無法正常地儲存資料。
在一實施例中,在資料儲存裝置140處於開卡階段(初始化階段)時,記憶體控制器160尚未得知快閃記憶體180中之各實體區塊的各實體頁面的狀態,例如是否為正常的實體頁面或是缺陷實體頁面。記憶體控制器160會逐一寫入特定頁面資料至所選定的實體頁面,並由該實體頁面讀取頁面資料以判斷讀出的頁面資料是否與寫入的特定頁面資料相符。若讀出的頁面資料與寫入的特定頁面資料相符,則記憶體控制器係判斷該實體頁面可以正常讀取。
當記憶體控制器160以所選擇的一讀取閾值電壓讀取快閃記憶體180之特定實體頁面的頁面資料後,所讀取的頁面資料傳送至錯誤校正電路168,錯誤校正電路168係用以對頁面資料進行錯誤校正(error correction),上述錯誤校正例如可稱為硬式解碼(hard decoding)。在一些實施例中,錯誤校正電路168係包括一低密度奇偶檢查碼(low-density parity-check code,LDPC)錯誤校正引擎(第1圖未繪示)、及/或一BCH碼校正引擎(第1圖未繪示),但本發明並不限於此。
詳細而言,記憶體控制器160寫入至所選定的實體頁面的特定頁面資料包括資料部分及錯誤校正碼(error-correction code,ECC),其中錯誤校正碼例如可包括LDPC錯誤校正碼及/或BCH錯誤校正碼。錯誤校正電路168可依據所讀取的頁面資料中的錯誤校正碼對讀取的特定頁面資料中的資料部分及/或錯誤校正碼進行錯誤校正。在一些實施例中,因為軟式解碼(soft decoding)通常是在硬式解碼(例如BCH碼校正)已嘗試過預定讀取次數均無法校正所讀取的頁面資料後才會由處理單元162執行,且需要花費更長的時間。因此,在快閃記憶體180的開卡階段中,記憶體控制器160並不使用軟式解碼以進行錯誤校正。
一般而言,錯誤校正電路168係具有一預定的錯誤校正能力,例如可校正N位元的資料,N的大小視錯誤校正碼的長度而定。若從特定實體頁面所讀取的頁面資料中之錯誤位元的數量小於或等於N,則錯誤校正電路168可利用所讀取的頁面資料中的錯誤校正碼對頁面資料進行錯誤校正,再將校正後的頁面資料傳送至處理單元162。
若讀取的頁面資料中之錯誤位元的數量大於N,則錯誤校正電路168並無法利用頁面資料的錯誤校正碼對頁面資料進行錯誤校正,此時錯誤校正電路168通知記憶體控制器160錯誤校正失敗,此時,控制器160將啟動一讀取重試(read retry)程序,以嘗試取得可校正的頁面資料。
舉例來說,讀取重試程序可依據讀取重試表(read-retry table)141而對所選定的實體頁面進行讀取操作。讀取重試表141包括一預定數量(例如為M個)的複數個項目(entry),且各項目係記錄了執行讀取操作所需的讀取閾值電壓Vth的設定。在一實施例中,讀取重試表141例如可整合於資料儲存裝置140之快閃轉譯層181中,在另一實施例中,讀取重試表141例如可存放於快閃記憶體180中,當執行讀取重試程序,再由讀取重試程序自快閃記憶體180中取得讀取重試表141。在又一實施例中,讀取重試表141可視為控制器160中的一查找表(lookup),且可利用硬體電路實現,例如複雜可程式邏輯裝置(complex programmable logic device,CPLD)、可程式化陣列邏輯(programmable array logic,PAL)、可程式化邏輯陣列(programmable logic array,PLA),但本發明並不限於此。
在一實施例中,當啟動讀取重試程序後,處理單元162會依序使用在讀取重試表中之各項目所儲存的讀取閾值電壓Vth的設定直到所讀取特定實體頁面所儲存的頁面資料可成功地被錯誤校正電路168所校正或是已使用過讀取重試表中所有項目所儲存的讀取閾值電壓Vth之設定以讀取特定實體頁面所儲存的頁面資料。當處理單元162已使用過在讀取重試表中之所有項目的讀取閾值電壓Vth之設定以讀取頁面資料且錯誤校正電路168仍然無法校正依據各讀取閾值電壓Vth之設定所讀取的頁面資料時,處理單元162會判斷此特定實體頁面有缺陷,並在一缺陷記錄表中記錄此特定實體頁面的實體位址。
需注意的是,處理單元162每次使用讀取重試表中不同的讀取閾值電壓Vth的設定以讀取特定實體頁面的頁面資料所耗費的時間約略為一固定時間Tr。若處理單元162第一次使用預設讀取閾值電壓即可成功地讀取特定實體頁面的頁面資料,則花費的時間即為Tr。若處理單元162第25次使用不同的讀取閾值電壓(包括預設讀取閾值電壓)才能成功地讀取特定實體頁面的頁面資料,則花費的時間為25Tr。
此外,在資料儲存裝置140大量生產的過程中,並無法利用大量的時間對快閃記憶體180中之的所有實體頁面進行測試。舉例來說,可先設定一總目標開卡時間,例如為8小時或12小時。當資料儲存裝置140的開卡過程所花費的時間達到總目標開卡時間時,處理單元162即會停止開卡過程。此時,處理單元162會統計在快閃記憶體180之已測試過的實體頁面中可正常進行資料存取的實體頁面的數量,並標記已測試過的實體頁面中缺陷實體頁面。對於在快閃記憶體180未測試過的實體頁面,處理單元162則不會再進行進一步的測試,而是會將快閃記憶體180未測試過的實體頁面視為缺陷實體頁面。
因此,記憶體控制器160所統計的快閃記憶體180中的可用容量資訊係包括在快閃記憶體180在開卡階段中已測試過的實體頁面中可正常進行資料存取的實體頁面的數量。
在第一實施例中,在處理單元162使用讀取重試表141中之所有項目的不同讀取閾值電壓並無法成功讀取特定實體頁面的頁面資料(意即讀取的頁面資料無法被錯誤校正電路168所校正)後,處理單元162才會判斷此特定實體頁面有缺陷。舉例來說,若讀取重試表141包括49個項目,則當特定實體頁面有缺陷時,則處理單元162需要進行50次的讀取動作才能判斷此特定實體頁面有缺陷。意即,處理單元162可設定預設讀取重試次數閾值為50次,且當處理單元162判斷此特定實體頁面有缺陷時,已耗費了50Tr的時間。
記憶體控制器160在執行開卡的過程中,例如可從具有最小的實體位址的實體頁面開始進行存取測試,再依序往較大的實體位址的實體頁面進行存取測試。若資料儲存裝置140係配備一正常快閃記憶體,且正常快閃記憶體包括一或多個快閃記憶體晶粒。各個快閃記憶體晶粒(flash memory die)在尚未開卡的總容量例如為16G位元組(Bytes),則處理單元162在開卡階段將一個快閃記憶體晶粒中的所有實體頁面進行抹除、寫入、及讀取測試所耗費的時間大致分別為1分鐘以內、50分鐘、及10分鐘。若快閃記憶體的一個實體區塊包括256個實體頁面且一個實體頁面的大小為16K位元組,則一個實體區塊的大小為4M位元組。一個16G位元組大小的快閃記憶體晶粒可包括4096個實體區塊或是256*4096=1048576個實體頁面,因此對一個實體頁面進行一次讀取操作或是一次讀取重試操作的時間Tr約需要0.5~0.6毫秒(ms)。
當處理單元162對正常快閃記憶體中的特定實體頁面進行讀取測試時,往往只需要使用預設讀取閾值電壓(意即讀取頁面資料一次)或是使用數量很少的不同讀取閾值電壓(意即數量很少的讀取重試操作)就可成功地讀取在寫入測試中寫入至特定實體頁面的特定頁面資料。因此,正常快閃記憶體在開卡階段的讀取測試並不需要耗費太多時間。若正常快閃記憶體的總容量為128G位元組(例如包括8個16G位元組的快閃記憶體晶粒),則處理單元162例如在8小時左右就可以將正常快閃記憶體中之各個快閃記憶體晶粒的所有實體頁面均測試過以進行開卡。
然而,資料儲存裝置140是配備快閃記憶體180,且快閃記憶體180的品質較正常快閃記憶體差,且快閃記憶體180中缺陷實體頁面的位置分布可能會有不同的變化。在第一實施例中,若快閃記憶體180的品質較差、缺陷實體頁面的數量很多、或是缺陷實體頁面大致分布在實體位址較前的部分,則處理單元162需要花費大量時間在進行讀取重試測試,例如需要達到預設讀取重試次數閾值(例如50次)後才能判斷特定實體頁面為缺陷實體頁面。因此,若資料儲存裝置140中的快閃記憶體180在未開卡時同樣具有128G位元組(例如為8個16G位元組大小的快閃記憶體晶粒)的總容量,則處理單元162最多需要花費約為8*50=400小時的時間才能將快閃記憶體180中的所有實體頁面進行讀取重試操作以判斷各實體頁面是否為缺陷實體頁面。此時,快閃記憶體180之開卡作業所花費的時間主要都在讀取操作上。
若快閃記憶體180中有50%的實體頁面為缺陷實體頁面,則處理單元162需要花費約為8*50*0.5=200小時的時間才能找出快閃記憶體180中全部缺陷實體頁面,如此長的開卡時間並無法用於大量生產。若設定16G位元組快閃記憶體晶粒的總目標開卡時間為8小時或12小時,則處理單元162能夠測試在快閃記憶體180中的實體頁面的數量則非常有限。當快閃記憶體180的開卡階段達到總目標開卡時間後,處理單元162會強制結束開卡階段,因此,在此種情況下,快閃記憶體180所能使用的可用容量相當很小。
在第二實施例中,處理單元162係採用一時間預算基礎式(time-budget-based)的動態開卡機制以對快閃記憶體180進行開卡。舉例來說,在總目標開卡時間(即時間限制或時間預算)有限的情況下,處理單元162可動態地調整用於下一個所選定的實體區塊之各實體頁面的讀取重試次數閾值(例如為一上限值),使得處理單元162可在總目標開卡時間內完成次等級快閃記憶體中所有實體區塊的讀取操作,進而避免資料儲存裝置140在開卡後的無可用容量或是可用容量太小。當一特定實體區塊中的一特定實體頁面的讀取重試次數已達到所計算出用於此特定實體區塊的讀取重試次數閾值時,處理單元162則會強制結束此特定實體頁面的開卡階段,並開始進行下一個實體頁面的開卡階段。
舉例來說,處理單元162在對快閃記憶體180進行開卡作業前,可先設定一總目標開卡時間。其中,總目標開卡時間例如可依據快閃記憶體180之容量而進行調整。舉例來說,16G位元組的快閃記憶體晶粒例如可設定為1小時的目標開卡時間。若快閃記憶體180包括多個快閃記憶體晶粒,則總目標開卡時間T total即為上述目標開卡時間乘以快閃記憶體180中之快閃記憶體晶粒之數量。
此外,當處理單元162開始執行快閃記憶體180的開卡作業時,處理單元162會先使用一預設重試讀取次數閾值(default read-retry count threshold)RN default(例如為50次)以做為第一個實體區塊中之各實體頁面的重試讀取次數閾值。
為了便於說明,上述預設重試讀取次數閾值係包括以預設讀取閾值電壓以及在讀取重試程序中以不同的讀取閾值電壓讀取所選定的實體頁面的讀取次數的上限值。處理單元162在使用上述預設重試讀取次數閾值RN default讀取第一個實體區塊中之各實體頁面的過程中會同時記錄已經過讀取時間T passed
當處理單元162完成第一個實體區塊中之各實體頁面之讀取重試操作後,處理單元162會分別計算出預測開卡時間T predict、剩餘可使用開卡時間T remain、及讀取重試次數平均閾值RN avg,並據以計算出下一個實體區塊中之各實體頁面所使用的下一讀取重試次數閾值RN next,其中下一讀取重試次數閾值RN next係小於或等於預設重試讀取次數閾值RN default。意即,當記憶體控制器160選擇下一個實體區塊做為目前實體區塊時,會利用先前所計算出的下一讀取重試次數閾值RN next做為上述目前實體區塊的重試讀取次數閾值RN。
舉例來說。處理單元162係依據已讀取實體區塊數量N read、實體區塊的總數量N total、以及已經過讀取時間T passed以計算出預測開卡時間T predict,其中預測開卡時間T predict例如可由式(1)表示:
Figure 02_image001
此外,處理單元162更依據設定的總目標開卡時間T total及已經過讀取時間T passed以計算出剩餘可使用開卡時間T remain,其中剩餘可使用開卡時間T remain例如可由式(2)表示:
Figure 02_image003
此外,處理單元162更依據已讀取實體區塊數量N read以及已讀取的所有實體區塊的讀取重試次數累積閾值RN acc以計算出目前已讀取的所有實體區塊的讀取重試次數平均閾值RN avg,例如可由式(3)表示:
Figure 02_image005
若式(3)中所計算出的讀取重試次數平均閾值RN avg並非整數,則可使用四捨五入法或是無條件捨去小數部分以得到整數值。
在一些實施例中,處理單元162可分別記錄包括目前選定的實體區塊以及之前的每個實體區塊所使用的讀取重試次數閾值RN(例如可記錄於靜態隨機存取記憶體165或動態隨機存取記憶體190中的一讀取重試次數閾值表),並加總上述實體區塊的讀取重試次數閾值以得到讀取重試次數累積閾值RN acc。舉例來說,若快閃記憶體180的第一個實體區塊Block0及第二個實體區塊Block1均已完成開卡,且第一個實體區塊Block0及第二個實體區塊Block1所使用的讀取重試次數閾值RN分別為50次及49次,則處理單元162可計算出讀取重試次數累積閾值RN acc=50+49=99次。
在另一些實施例中,處理單元162可直接將目前選定的實體區塊所使用的讀取重試次數閾值RN加至讀取重試次數累積閾值RN acc(初始值為0),待快閃記憶體180中的所有實體區塊的讀取操作均結束(意即完成開卡階段)後即可重置讀取重試次數累積閾值RN acc
當處理單元162已計算出預測開卡時間T predict、剩餘可使用開卡時間T remain、及讀取重試次數平均閾值RN avg後,處理單元162即可依據預測開卡時間T predict、剩餘可使用開卡時間T remain、及讀取重試次數平均閾值RN avg以計算出下一讀取重試次數閾值RN next以用於下一個實體區塊中之各實體頁面的讀取操作,其中下一讀取重試次數閾值RN next例如可由式(4)表示:
Figure 02_image007
若式(4)中所計算出的下一讀取重試次數閾值RN next並非整數,則可使用四捨五入法或是無條件捨去小數部分以得到整數值。因應於處理單元162計算出下一讀取重試次數閾值RN next,處理單元162即可讀取下一個實體區塊,並更新已讀取實體區塊數量、已經過的讀取時間、以及讀取重試次數累積閾值RN acc的數值。上述流程會一直重複直到快閃記憶體180中的所有實體區塊的讀取操作均已執行完畢。
舉例來說,若目前所選定的實體區塊為正常的實體區塊,則處理單元162理論上會以較少數量的讀取重試次數就可正確讀取此實體區塊中的各實體頁面的頁面資料,意即會花費較少的時間對此實體區塊進行開卡。然而,在時間限制(time constraint)固定的情況下,若此實體區塊所花費的開卡時間愈少,表示在快閃記憶體180中剩下的實體區塊所能分配到的開卡時間也會愈多。意即,在快閃記憶體180中剩下的實體區塊可用較高的讀取重試次數閾值以讀取頁面資料,這亦表示有較大的機率以得到正常的實體頁面,進而獲得較大的可用容量。
相對地,在時間限制固定的同樣情況下,若此實體區塊所花費的開卡時間愈多,表示在快閃記憶體180中剩下的實體區塊所能分配到的開卡時間也會愈少。意即,在快閃記憶體180中剩下的實體區塊需使用較低的讀取重試次數閾值以讀取頁面資料。對於實際缺陷實體頁面來說,使用較大的讀取重試次數閾值或較小的讀取重試次數閾值,對於最後的判斷結果來說並無區別,因為錯誤校正電路168均無法對所讀取的頁面資料進行錯誤校正以得到正確的頁面資料,故處理單元162會在讀取重試次數達到讀取重試次數閾值後即可提早判斷所選定的實體頁面為缺陷實體頁面。
在本發明第二實施例中的動態開卡方法可依據預測開卡時間T predict、剩餘可使用開卡時間T remain、及讀取重試次數平均閾值RN avg動態地調整下一個實體區塊的讀取重試次數閾值。若是在開卡階段連續遇到缺陷實體頁面數量較多的實體區塊,則會逐漸降低下一實體區塊所需的讀取重試次數閾值。
因此,在總目標開卡時間有限的情況下,處理單元162可依據所估計的開卡時間以動態地調整下一實體區塊所使用的讀取重試次數閾值,使得處理單元162可在設定的目標開卡時間內將快閃記憶體180中的所有實體區塊讀取完畢。
第2圖為依據本發明第二實施例中動態調整不同實體區塊的讀取重試次數閾值之示意圖。
如第2圖所示,處理單元162係依序對實體區塊201~208執行開卡作業,且實體區塊201~204均具有較多的缺陷實體頁面數量,實體區塊205~208具有較少的缺陷實體頁面數量。標示斜線的實體頁面表示缺陷實體頁面,空白的實體頁面表示正常實體頁面。若實體區塊201的讀取重試次數閾值RN為50次,經過本發明第二實施例之方法計算後,可得到用於實體區塊202的讀取重試次數閾值RN為48次。依據類似方式計算可得到用於實體區塊203、204、205的讀取重試次數閾值RN分別為46次、45次及43次。因為實體區塊205具有較少的缺陷實體頁面數量,表示處理單元162可很快地將實體區塊205中的所有實體頁面的開卡作業執行完畢,意即可剩餘較多的可用開卡時間給後續尚未開卡的實體區塊。
然而,實體區塊205所使用的讀取重試次數閾值RN是在實體區塊204的開卡作業結束時就已決定,故會使用讀取重試次數閾值RN=43次進行實體區塊205的開卡作業。當實體區塊205的開卡作業結束後,處理單元162例如可依據第二實施例之方法以計算出用於實體區塊206的讀取重試次數閾值RN為45次。類似地,當實體區塊206及207的開卡作業結束後,處理單元162例如可依據第二實施例之方法以計算出用於實體區塊207及208的讀取重試次數閾值RN分別為46次及47次。需注意的是,上述實施例係用於說明本案之動態開卡方法可動態調整讀取重試次數閾值RN之數值,但本發明並不限定於上述數值。
在第三實施例中,當處理單元162對目前所選定的實體區塊進行開卡作業時,處理單元162可動態調整每一個實體區塊所需讀取的實體頁面數量,使得處理單元162可在總目標開卡時間內完成次等級快閃記憶體中所有實體區塊的讀取操作。
舉例來說,在第一實施例中及第二實施例中,總目標開卡時間T total例如是針對在快閃記憶體180中之各實體區塊中的所有實體頁面逐一進行讀取操作所容許的時間而進行設定,其目的在於在時間限制內將快閃記憶體180中之所有實體區塊均開卡完畢。
假定一個實體區塊包括4096個實體頁面(例如為第一頁面數量),當處理單元162開始對快閃記憶體180進行開卡作業時,處理單元162一開始會對所選定的目前實體區塊中的第一頁面數量的實體頁面逐一進行讀取操作。
當目前實體區塊的讀取操作完成時,處理單元162可利用類似於第二實施例之方式計算出已經過讀取時間T passed及剩餘可使用開卡時間T remain、以及預測開卡時間T predict
此外,處理單元162更依據已讀取實體區塊數量N read以及已讀取的所有實體區塊的讀取頁面累積數量RP read以計算出目前已讀取的所有實體區塊的讀取頁面平均數量RP avg,例如可由式(5)表示:
Figure 02_image009
若式(5)中所計算出的讀取頁面平均數量RP avg並非整數,則可使用四捨五入法或是無條件捨去小數部分以得到整數值。
當處理單元162已計算出預測開卡時間T predict、剩餘可使用開卡時間T remain、及讀取頁面平均數量RP avg後,處理單元162即可依據預測開卡時間T predict、剩餘可使用開卡時間T remain、及讀取頁面平均數量RP avg以計算出下一讀取頁面數量閾值RP next以用於下一個實體區塊中之各實體頁面的讀取操作,其中下一讀取頁面數量閾值RP next例如可由式(6)表示:
Figure 02_image011
若式(6)中所計算出的下一讀取頁面數量閾值RP next並非整數,則可使用四捨五入法或是無條件捨去小數部分以得到整數值。因應於處理單元162計算出下一讀取頁面數量閾值RP next,處理單元162即可讀取下一個實體區塊,並使用所計算出的下一讀取頁面數量閾值RP next以做為讀取頁面數量閾值RP。此時,處理單元162並更新已讀取實體區塊數量、已經過的讀取時間、以及讀取頁面累積數量RP read的數值。上述流程會一直重複直到快閃記憶體180中的所有實體區塊的讀取操作均已執行完畢。
當在所選定的實體區塊中已讀取的實體頁面數量已累積至讀取頁面數量閾值RP時,處理單元162可直接強制停止所選定的目前實體區塊的開卡作業,並選擇下一個實體區塊做為目前實體區塊以進行開卡作業。
在一實施例中,當處理單元162直接強制停止目前所選定的實體區塊的開卡作業,處理單元162可記錄在目前所選定的實體區塊中之缺陷實體頁面的實體位址,例如可記錄於一缺陷記錄表。需注意的是,若讀取頁面數量閾值RP小於實體區塊的實體頁面數量,表示在目前實體區塊中會有部分實體頁面未被讀取。當處理單元162強制停止所選定的目前實體區塊的開卡作業,處理單元162會直接將在目前實體區塊中未讀取的實體頁面標示為缺陷實體頁面。
因此,本發明第三實施例之方法可動態調整下一實體區塊中的讀取頁面數量閾值RP,使得處理單元162可在總目標開卡時間內完成快閃記憶體180中所有實體區塊的讀取操作,進而避免資料儲存裝置140在開卡後的無可用容量或是可用容量太小。此外,本發明之第二實施例及第三實施例的方法可以分開實施,也可以一起實施。
第3圖為依據本發明第三實施例中動態調整不同實體區塊的讀取重試次數閾值之示意圖。
如第3圖所示,處理單元162係依序對實體區塊301~308執行開卡作業,且實體區塊301~304均具有較多的缺陷實體頁面數量,實體區塊305~308具有較少的缺陷實體頁面數量。標示斜線的實體頁面表示缺陷實體頁面,空白的實體頁面表示正常實體頁面。若實體區塊301的讀取頁面數量閾值RP為4096,經過本發明第三實施例之方法計算後,可得到用於實體區塊302的讀取讀取頁面數量閾值RP為4010次。依據類似方式計算可得到用於實體區塊303、304、305的讀取頁面數量閾值RP分別為3930、3890、及3810。因為實體區塊305具有較少的缺陷實體頁面數量,表示處理單元162可很快地將實體區塊305中的所有實體頁面的開卡作業執行完畢,意即可剩餘較多的可用開卡時間給後續尚未開卡的實體區塊。
然而,實體區塊305所使用的讀取頁面數量閾值RP是在實體區塊304的開卡作業結束時就已決定,故會使用讀取頁面數量閾值RP=3810進行實體區塊305的開卡作業。當實體區塊305的開卡作業結束後,處理單元162例如可依據第三實施例之方法以計算出用於實體區塊306的讀取頁面數量閾值RP為3890。類似地,當實體區塊306及307的開卡作業結束後,處理單元162例如可依據第三實施例之方法以計算出用於實體區塊307及308的讀取頁面數量閾值RP分別為3930及3970。需注意的是,上述實施例係用於說明本案之動態開卡方法可動態調整讀取頁面數量閾值RP之數值,但本發明並不限定於上述數值。
第4圖為依據本發明一實施例中之記憶體測試裝置的示意圖。
請同時參考第1圖及第4圖。在一實施例中,記憶體測試裝置400係包括一插槽裝置430,插槽裝置430包括複數個雙頭探針431、探針固定支架432、滑塊433、彈簧434及上蓋435,其中上蓋435包括兩側的扣具436。待測試的快閃記憶體晶粒410係可置於插槽裝置430中的位置402。雙頭探針431係用以將快閃記憶體晶粒410電性連接至測試電路板420,且上述雙頭探針431係對應於快閃記憶體晶粒410之複數個腳位。記憶體控制器160及動態隨機存取記憶體166例如可設置於測試電路板420上,藉以控制待開卡的快閃記憶體晶粒410。
因快閃記憶體晶粒410的晶片厚度可能不同,在進行開卡作業時可選擇彈力合適的彈簧434,藉以讓滑塊433壓緊快閃記憶體晶粒410的晶片以與雙頭探針431有效接觸。當快閃記憶體晶粒410的開卡作業完成後,使用者可取出滑塊433以更換其他尚未進行開卡作業的快閃記憶體晶粒410並置於位置402。快閃記憶體晶粒410的開卡作業可參考第1~3圖之實施例,於此處不再詳述。
第5圖為依據本發明一實施例中之用於資料儲存裝置的開卡方法之流程圖。
在步驟S510,提供一快閃記憶體180,其中該快閃記憶體包括複數個實體區塊,且各實體區塊包括複數個實體頁面。此外,部分實體區塊中的部分實體頁面為缺陷實體頁面(defective physical page)。
在步驟S520,記憶體控制器160設定快閃記憶體180之一總目標開卡時間。快閃記憶體180例如包括一或多個快閃記憶體晶粒,且各個快閃記憶體晶粒例如可設定一目標開卡時間,且總目標開卡時間即為目標開卡時間乘以快閃記憶體晶粒之數量。
在步驟S530,記憶體控制器160從該等實體區塊中依序選擇一目前實體區塊以進行快閃記憶體180的一開卡作業,並依據一讀取操作閾值對目前實體區塊進行讀取操作。上述讀取操作閾值例如可為第二實施例中之讀取重試次數閾值或是第三實施例中之讀取頁面數量閾值。
在步驟S540,因應於目前實體區塊之讀取操作完成,記憶體控制器160動態調整目前實體區塊之下一實體區塊之讀取操作所使用的讀取操作閾值以使快閃記憶體180的開卡作業在總目標開卡時間內完成。其中動態調整讀取操作閾值之細節例如可參考第二實施例及第三實施例之內容。若使用第二實施例中之讀取重試次數閾值做為讀取操作閾值,則對應的讀取操作計數值及讀取操作平均閾值分別為讀取重試次數及讀取重試次數平均閾值。若使用第三實施例中之讀取頁面數量閾值做為讀取操作閾值,則對應的讀取操作計數值及讀取操作平均閾值分別為讀取頁面數量及讀取頁面數量平均閾值。意即,在目前實體區塊的讀取操作中,當讀取操作計數值達到讀取操作閾值時,記憶體控制器160即會強制結束目前實體區塊的讀取操作,並更新用於下一個實體區塊的讀取操作閾值。
綜上所述,本發明係提供一種記憶體控制器、資料儲存裝置及用於資料儲存裝置的開卡方法,其可依據開卡作業到目前實體區塊中之讀取操作平均閾值、剩餘開卡時間及預測開卡時間以動態調整實體區塊的讀取操作所使用的讀取操作閾值,使得快閃記憶體的開卡作業所花費的時間可大幅降低,並可在預定的有限時間(例如總目標開卡時間)內完成,可避免傳統方法會造成開不出可用容量或是可用容量很小的問題。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100~電子系統; 120~主機; 140~資料儲存裝置; 141~讀取重試表; 150~存取介面; 160~記憶體控制器; 162~處理單元; 163~儲存單元; 164~韌體; 165~靜態隨機存取記憶體; 166~動態隨機存取記憶體; 168~錯誤校正電路; 170~存取介面; 180~次等級快閃記憶體; 181~快閃轉譯層; 201-208、301-308~實體區塊; 2011-2081、3011-3081~實體頁面; RN~讀取重試次數閾值; RP~讀取頁面數量閾值; 400~記憶體測試裝置; 402~位置; 410~次等級快閃記憶體晶粒; 430~插槽裝置; 431~雙頭探針; 432~探針固定支架; 433~滑塊; 434~彈簧; 435~上蓋; S510-S550~步驟。
第1圖為依據本發明一實施例中之電子系統的方塊圖。 第2圖為依據本發明第二實施例中動態調整不同實體區塊的讀取重試次數閾值之示意圖。 第3圖為依據本發明第三實施例中動態調整不同實體區塊的讀取重試次數閾值之示意圖。 第4圖為依據本發明一實施例中之記憶體測試裝置的示意圖。 第5圖為依據本發明一實施例中之用於資料儲存裝置的開卡方法之流程圖。
100~電子系統; 120~主機; 140~資料儲存裝置; 141~讀取重試表; 150~存取介面; 160~記憶體控制器; 162~處理單元; 163~儲存單元; 164~韌體; 165~靜態隨機存取記憶體; 166~動態隨機存取記憶體; 168~錯誤校正電路; 170~存取介面; 180~快閃記憶體; 181~快閃轉譯層;

Claims (23)

  1. 一種記憶體控制器,耦接至一快閃記憶體,其中該快閃記憶體包括複數個實體區塊,且各實體區塊包括複數個實體頁面,其中部分該等實體區塊中的部分該等實體頁面為缺陷實體頁面,該記憶體控制器包括:一處理單元,用以設定該快閃記憶體之一總目標開卡時間,其中該處理單元並從該等實體區塊中依序選擇一目前實體區塊以進行該快閃記憶體的一開卡作業,並依據一讀取操作閾值對該目前實體區塊進行該開卡作業的一讀取操作,其中,因應於該目前實體區塊之該讀取操作完成,該處理單元係動態調整該等實體區塊的該讀取操作所使用的該讀取操作閾值,使得該快閃記憶體的該開卡作業在該總目標開卡時間內完成。
  2. 如申請專利範圍第1項所述之記憶體控制器,其中該快閃記憶體包括一或多個快閃記憶體晶粒,且該處理單元係依據該一或多個快閃記憶體晶粒之數量以設定該總目標開卡時間。
  3. 如申請專利範圍第1項所述之記憶體控制器,其中該處理單元係由所選擇的該目前實體區塊中依序選擇一目前實體頁面,並依序使用一讀取重試表中所記錄的各讀取閾值電壓對該目前實體頁面進行該讀取操作以取得一頁面資料直到該頁面資料可成功地被該記憶體控制器中之一錯誤校正電路所校正或是對該目前實體頁面進行該讀取操作的一讀取操作計數值已達到該讀取操作閾值。
  4. 如申請專利範圍第3項所述之記憶體控制器,其中因應於該目前實體區塊之該讀取操作完成,該處理單元係取得該快閃記憶體的該開卡作業之已經過讀取時間,並依據該開卡作業已讀取的該等實體區塊的數量、該等實體區塊的總數量、及該已經過讀取時間以計算一預測開卡時間。
  5. 如申請專利範圍第4項所述之記憶體控制器,其中該處理單元更將該總目標開卡時間減去該已經過讀取時間已得到一剩餘可使用開卡時間。
  6. 如申請專利範圍第5項所述之記憶體控制器,其中該讀取操作閾值為一讀取重試次數閾值且該讀取操作計數值為一重試讀取次數。
  7. 如申請專利範圍第6項所述之記憶體控制器,該處理單元係將已讀取的該等實體區塊的一讀取重試次數累積閾值除以一已讀取實體區塊數量以得到已讀取的該等實體區塊的一讀取重試次數平均閾值。
  8. 如申請專利範圍第7項所述之記憶體控制器,其中該處理單元並係將該讀取重試次數平均閾值乘以該剩餘可使用開卡時間再除以該預測開卡時間以得到下一讀取重試次數閾值,且將該下一讀取重試次數閾值設定為該目前實體區塊之下一實體區塊的該讀取操作閾值以進行該讀取操作。
  9. 如申請專利範圍第5項所述之記憶體控制器,其中該讀取操作閾值為一讀取頁面數量閾值且該讀取操作計數值為一讀取頁面數量。
  10. 如申請專利範圍第9項所述之記憶體控制器,該處理單元係將已讀取的該等實體區塊的一讀取頁面累積數量除以一已讀取實體區塊數量以得到已讀取的該等實體區塊的一讀取頁面平均數量。
  11. 如申請專利範圍第10項所述之記憶體控制器,其中該處理單元係將該讀取頁面平均數量乘以該剩餘可使用開卡時間再除以該預測開卡時間以得到下一讀取頁面數量閾值,並將該下一讀取頁面數量閾值設定為該目前實體區塊之下一實體區塊的該讀取操作閾值以進行該讀取操作。
  12. 一種用於資料儲存裝置的開卡方法,其中該資料儲存裝置包括一快閃記憶體,其中該快閃記憶體包括複數個實體區塊,且各實體區塊包括複數個實體頁面,其中部分該等實體區塊中的部分該等實體頁面為缺陷實體頁面,該方法包括:設定該快閃記憶體之一總目標開卡時間;從該等實體區塊中依序選擇一目前實體區塊以進行該次等級快閃記憶體的一開卡作業,並依據一讀取操作閾值對該目前實體區塊進行讀取操作;以及因應於該目前實體區塊之該讀取操作完成,動態調整該等實體區塊之該讀取操作所使用的該讀取操作閾值以使該次等級快閃記憶體的該開卡作業在該總目標開卡時間內完成。
  13. 如申請專利範圍第12項所述之用於資料儲存裝置的開卡方法,其中該快閃記憶體包括一或多個快閃記憶體晶粒,且該總目標開卡時間係依據該一或多個快閃記憶體晶粒之數量所設定。
  14. 如申請專利範圍第12項所述之用於資料儲存裝置的開卡方法,更包括:由所選擇的該目前實體區塊中依序選擇一目前實體頁面; 依序使用一讀取重試表中所記錄的各讀取閾值電壓對該目前實體頁面進行該讀取操作以取得一頁面資料直到該頁面資料可成功地被一錯誤校正電路所校正或是對該目前實體頁面進行該讀取操作的一讀取操作計數值已達到該讀取參數閾值。
  15. 如申請專利範圍第14項所述之用於資料儲存裝置的開卡方法,其中動態調整該等實體區塊之該讀取操作所使用的一讀取重試次數閾值的步驟包括:因應於該目前實體區塊之該讀取操作完成,取得該次等級快閃記憶體的該開卡作業之已經過讀取時間,並依據該開卡作業已讀取的該等實體區塊的數量、該等實體區塊的總數量、及該已經過讀取時間以計算一預測開卡時間。
  16. 如申請專利範圍第15項所述之用於資料儲存裝置的開卡方法,其中動態調整該等實體區塊之該讀取操作所使用的一讀取重試次數閾值的步驟更包括:將該總目標開卡時間減去該已經過讀取時間已得到一剩餘可使用開卡時間。
  17. 如申請專利範圍第16項所述之用於資料儲存裝置的開卡方法,其中該讀取操作閾值為一讀取重試次數閾值且該讀取操作計數值為一重試讀取次數。
  18. 如申請專利範圍第17項所述之用於資料儲存裝置的開卡方法,其中動態調整該等實體區塊之該讀取操作所使用的一讀取重試次數閾值的步驟更包括: 將已讀取的該等實體區塊的一讀取重試次數累積閾值除以一已讀取實體區塊數量以得到已讀取的該等實體區塊的一讀取重試次數平均閾值。
  19. 如申請專利範圍第18項所述之用於資料儲存裝置的開卡方法,其中動態調整該等實體區塊之該讀取操作所使用的一讀取重試次數閾值的步驟更包括:係將該讀取重試次數平均閾值乘以該剩餘可使用開卡時間再除以該預測開卡時間以得到下一讀取重試次數閾值;以及將該下一讀取重試次數閾值做為該目前實體區塊之下一實體區塊的該讀取操作閾值以進行該讀取操作。
  20. 如申請專利範圍第16項所述之用於資料儲存裝置的開卡方法,其中該讀取操作閾值為一讀取頁面數量閾值且該讀取操作計數值為一讀取頁面數量。
  21. 如申請專利範圍第20項所述之用於資料儲存裝置的開卡方法,其中動態調整該等實體區塊之該讀取操作所使用的一讀取重試次數閾值的步驟更包括:將已讀取的該等實體區塊的一讀取頁面累積數量除以一已讀取實體區塊數量以得到已讀取的該等實體區塊的一讀取頁面平均數量。
  22. 如申請專利範圍第21項所述之用於資料儲存裝置的開卡方法,其中動態調整該等實體區塊之該讀取操作所使用的一讀取重試次數閾值的步驟更包括: 將該讀取頁面平均數量乘以該剩餘可使用開卡時間再除以該預測開卡時間以得到下一讀取頁面數量閾值;以及將該下一讀取頁面數量閾值設定為該目前實體區塊之下一實體區塊的該讀取操作閾值以進行該讀取操作。
  23. 一種資料儲存裝置,包括:一快閃記憶體,包括複數個實體區塊,且各實體區塊包括複數個實體頁面,其中部分該等實體區塊中的部分該等實體頁面為缺陷實體頁面;以及一記憶體控制器,用以設定該快閃記憶體之一總目標開卡時間,其中該記憶體控制器並從該等實體區塊中依序選擇一目前實體區塊以進行該快閃記憶體的一開卡作業,並依據一讀取操作閾值對該目前實體區塊進行該開卡作業的一讀取操作,其中,因應於該目前實體區塊之該讀取操作完成,該記憶體控制器係動態調整該等實體區塊的該讀取操作所使用的該讀取操作閾值,使得該快閃記憶體的該開卡作業在該總目標開卡時間內完成。
TW108125941A 2019-07-23 2019-07-23 記憶體控制器、資料儲存裝置及其開卡方法 TWI719550B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW108125941A TWI719550B (zh) 2019-07-23 2019-07-23 記憶體控制器、資料儲存裝置及其開卡方法
CN201910807268.9A CN112286442B (zh) 2019-07-23 2019-08-29 存储器控制器、数据储存装置及其开卡方法
US16/598,323 US10983854B2 (en) 2019-07-23 2019-10-10 Memory controller and initialization method for use in data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108125941A TWI719550B (zh) 2019-07-23 2019-07-23 記憶體控制器、資料儲存裝置及其開卡方法

Publications (2)

Publication Number Publication Date
TW202105189A TW202105189A (zh) 2021-02-01
TWI719550B true TWI719550B (zh) 2021-02-21

Family

ID=74187674

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108125941A TWI719550B (zh) 2019-07-23 2019-07-23 記憶體控制器、資料儲存裝置及其開卡方法

Country Status (3)

Country Link
US (1) US10983854B2 (zh)
CN (1) CN112286442B (zh)
TW (1) TWI719550B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11231863B2 (en) 2019-12-19 2022-01-25 Micron Technology, Inc. Block family-based error avoidance for memory devices
KR20220159842A (ko) * 2021-05-26 2022-12-05 에스케이하이닉스 주식회사 반도체 메모리 장치를 제어하는 컨트롤러 및 그 동작 방법
CN114356806B (zh) * 2021-12-31 2024-04-16 深圳宏芯宇电子股份有限公司 快速开卡方法、设备及计算机可读存储介质
CN117319450B (zh) * 2023-11-27 2024-02-09 成都秦川物联网科技股份有限公司 基于物联网的超声波计量仪表数据交互方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100327954A1 (en) * 2009-06-26 2010-12-30 Elpida Memory, Inc. Semiconductor device
WO2017074591A1 (en) * 2015-10-27 2017-05-04 Sandisk Technologies Llc Read operation delay

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3070512B2 (ja) * 1997-03-21 2000-07-31 日本電気株式会社 メモリシステムの初期化診断方法
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
JP4349532B2 (ja) * 2007-04-11 2009-10-21 エヌイーシーコンピュータテクノ株式会社 メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US7987336B2 (en) * 2008-05-14 2011-07-26 International Business Machines Corporation Reducing power-on time by simulating operating system memory hot add
CN101727368A (zh) * 2008-10-23 2010-06-09 英业达股份有限公司 开关机测试方法及开关机测试系统
JP2017174387A (ja) * 2016-03-17 2017-09-28 パナソニックIpマネジメント株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
TWI599880B (zh) * 2016-03-22 2017-09-21 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
US10468117B2 (en) * 2017-01-12 2019-11-05 Sandisk Technologies Llc Read threshold adjustment with feedback information from error recovery
CN108877858B (zh) * 2017-05-10 2021-02-19 慧荣科技股份有限公司 储存装置以及刷新方法
TW201928589A (zh) * 2017-12-12 2019-07-16 宏碁股份有限公司 儲存系統及其初始化方法
US10552063B2 (en) * 2018-06-21 2020-02-04 International Business Machines Corporation Background mitigation reads in a non-volatile memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100327954A1 (en) * 2009-06-26 2010-12-30 Elpida Memory, Inc. Semiconductor device
WO2017074591A1 (en) * 2015-10-27 2017-05-04 Sandisk Technologies Llc Read operation delay

Also Published As

Publication number Publication date
CN112286442B (zh) 2023-12-08
CN112286442A (zh) 2021-01-29
US10983854B2 (en) 2021-04-20
US20210026718A1 (en) 2021-01-28
TW202105189A (zh) 2021-02-01

Similar Documents

Publication Publication Date Title
TWI719550B (zh) 記憶體控制器、資料儲存裝置及其開卡方法
TWI694329B (zh) 用於記憶體之針對性淨除之方法及設備
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
US9176865B2 (en) Data writing method, memory controller, and memory storage device
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US9652330B2 (en) Method for data management and memory storage device and memory control circuit unit
US8667210B2 (en) Memory management method, memory controller and memory storage apparatus
US9721669B2 (en) Data protection method, memory control circuit unit and memory storage apparatus
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
US20150058531A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
TW201947402A (zh) 記憶體管理方法以及儲存控制器
TW201401050A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
US10599562B2 (en) Nonvolatile memory device configured to be accessed without block address and method of operating the same
TWI810719B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN113010458B (zh) 存储器管理方法、存储控制器与存储装置
TWI828391B (zh) 資料儲存裝置與資料儲存裝置之緩存器大小估計方法
TWI712052B (zh) 記憶體管理方法、儲存控制器與儲存裝置
CN112540932B (zh) 存储控制器以及写入辅助方法
US10169224B2 (en) Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit