TWI729903B - 藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法、相關記憶裝置及其控制器 - Google Patents

藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法、相關記憶裝置及其控制器 Download PDF

Info

Publication number
TWI729903B
TWI729903B TW109127041A TW109127041A TWI729903B TW I729903 B TWI729903 B TW I729903B TW 109127041 A TW109127041 A TW 109127041A TW 109127041 A TW109127041 A TW 109127041A TW I729903 B TWI729903 B TW I729903B
Authority
TW
Taiwan
Prior art keywords
data
time interval
memory
read
controller
Prior art date
Application number
TW109127041A
Other languages
English (en)
Other versions
TW202109537A (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 TW202109537A publication Critical patent/TW202109537A/zh
Application granted granted Critical
Publication of TWI729903B publication Critical patent/TWI729903B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • 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/1072Adding 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 multilevel 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • 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
    • 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/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/0658Controller construction 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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/26Sensing or reading circuits; Data output 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
    • 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/1016Performance improvement
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Molecular Biology (AREA)
  • Mathematical Analysis (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Read Only Memory (AREA)

Abstract

本發明提供一種藉助於機器學習來針對一記憶裝置的服務品質優化進行存取控制的方法和相關設備(例如該記憶裝置及其控制器)。該方法可包含:對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊,且依據該谷資訊進行基於一強化學習模型的機器學習,以透過基於該強化學習模型的該機器學習預先準備多個表,以供用來從該非揮發性記憶體讀取資料;於一第一時間區間內,寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料;以及於一第二時間區間內,使用該多個表中的一第二表來讀取該第一資料。

Description

藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法、相關記憶裝置及其控制器
本發明是關於快閃記憶體的存取,特別是關於一種藉助於機器學習來針對一記憶裝置的服務品質(quality of service,QoS)優化(optimization)進行存取控制的方法、相關設備(例如:該記憶裝置及其控制器諸如該記憶裝置中的一記憶體控制器)。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:分別符合SD/MMC、CF、MS、XD及UFS標準之記憶卡;又例如:固態硬碟(solid state drive, SSD);又例如:分別符合UFS及EMMC規格之嵌入式(embedded)記憶裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可包含單階細胞(single level cell,SLC)與多階細胞(multiple level cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每一個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每一個被當作記憶細胞的電晶體的儲存能力則被充分利用,是採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩位元的資訊(諸如00、01、11、10)。理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保在記憶裝置中對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,具備上列管理機制的記憶裝置仍有不足之處。例如,當三階細胞(triple level cell,TLC)快閃記憶體及四階細胞(quadruple level cell,QLC)快閃記憶體被應用於記憶裝置時,會有某些問題諸如增加的位元錯誤率(bit error rate,BER)等。另外,採用三維(three dimensional,3D)NAND快閃架構來實現的快閃記憶體之方案已被提出以達到更高的儲存容量,卻衍生出某些額外的問題諸如隨機寫入延遲以及隨機讀取延遲。由於大多數使用者行為可對應於隨機讀取,所以在大多數情況下,隨機讀取延遲問題可導致較低的服務品質(QoS)。此外,在3D NAND快閃架構的堆棧(stack)中的記憶細胞增加的情況下,基於某些目的諸如易於實現,一浮閘(floating-gate,FG)解決方案可被取代為採用電荷捕獲(charge-trap,CT)材料的新解決方案,這可能對應地造成有資料保留(data-retension)問題,使得讀取資料的延遲時間增加,所以服務品質可能變得更低。尤其,該資料保留問題可能觸發上述管理機制中的一移動讀取機制(moving read mechanism)進行一或多個額外讀取操作,這造成整體性能下降。因此,需要一種新穎的方法以及相關架構,以在沒有副作用或較不會帶來副作用的情況下加強整體效能。
本發明的一目的在於提供一種藉助於機器學習來針對一記憶裝置的服務品質優化進行存取控制的方法以及相關設備(例如:該記憶裝置及其控制器諸如該記憶裝置中的一記憶體控制器),以解決上述問題。
本發明的另一目的在於提供一種藉助於機器學習來針對一記憶裝置的服務品質優化進行存取控制的方法以及相關設備(例如:該記憶裝置及其控制器諸如該記憶裝置中的一記憶體控制器),以在沒有副作用或較不會帶來副作用的情況下加強整體效能。
本發明的至少一實施例提供一種藉助於機器學習來針對一記憶裝置的服務品質優化進行存取控制的方法。該記憶裝可包含一非揮發性記憶體(non-volatile memory, NV memory)以及用來控制該非揮發性記憶體的存取的一記憶體控制器,以及該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該方法可包含:對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊(valley information),以及依據該谷資訊進行基於一強化學習模型(reinforcement learning model)的機器學習,以透過基於該強化學習模型的該機器學習來預先準備多個表,以供用來從該非揮發性記憶體讀取資料,其中該多個表中的每一表包含一組讀取電壓,以及該組讀取電壓是從基於該強化學習模型的該機器學習取得;於一第一時間區間內,寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料,其中該第一表是被選取作為該第一時間區間內用於該第一資料的一適當表;以及於一第二時間區間內,使用該多個表中的一第二表來讀取該第一資料,其中該第二表是被選取作為該第二時間區間內用於該第一資料的該適當表,以及該第二時間區間是在一時間軸上的該第一時間區間的下一個時間區間。
除了以上方法外,本發明亦提供一種記憶裝置,且該記憶裝置可包含一非揮發性記憶體以及一控制器。該非揮發性記憶體是用來儲存資訊,其中該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該控制器是耦接至該非揮發性記憶體,且該控制器是用來控制該記憶裝置的運作。另外,該控制器包含一處理電路,其是用來依據來自一主裝置的複數個主裝置指令來控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如:該控制器對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊,並且依據該谷資訊進行基於一強化學習模型的機器學習,以透過基於該強化學習模型的該機器學習來預先準備多個表,以供用來從該非揮發性記憶體讀取資料,其中該多個表中的每一表包含一組讀取電壓,以及該組讀取電壓是從基於該強化學習模型的該機器學習取得;於一第一時間區間內,該控制器寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料,其中該第一表是被選取作為該第一時間區間內用於該第一資料的一適當表;以及於一第二時間區間內,該控制器使用該多個表中的一第二表來讀取該第一資料,其中該第二表是被選取作為該第二時間區間內用於該第一資料的該適當表,以及該第二時間區間是在一時間軸上的該第一時間區間的下一個時間區間。
除了以上方法外,本發明亦提供一種記憶裝置的控制器,其中該記憶裝置包含該控制器以及一非揮發性記憶體。該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。另外,該控制器包含一處理電路,其是用來依據來自一主裝置的複數個主裝置指令來控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如:該控制器對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊,並且依據該谷資訊進行基於一強化學習模型的機器學習,以透過基於該強化學習模型的該機器學習來預先準備多個表,以供用來從該非揮發性記憶體讀取資料,其中該多個表中的每一表包含一組讀取電壓,以及該組讀取電壓是從基於該強化學習模型的該機器學習取得;於一第一時間區間內,該控制器寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料,其中該第一表是被選取作為該第一時間區間內用於該第一資料的一適當表;以及於一第二時間區間內,該控制器使用該多個表中的一第二表來讀取該第一資料,其中該第二表是被選取作為該第二時間區間內用於該第一資料的該適當表,以及該第二時間區間是在一時間軸上的該第一時間區間的下一個時間區間。
本發明的方法及相關設備能確保整個系統(例如該主裝置以及該記憶裝置)妥善地運作,以避免相關技術中的問題,諸如位元錯誤率(bit error rate)提高、隨機讀取延遲增加、以及該資料保留問題所衍生出的某些相關問題。另外,依據本發明的實施例來實施不會大幅增加額外成本。因此,相關技術的問題能被解決,而整體成本不會增加太多。相較於相關技術,本發明的方法及相關設備能在沒有副作用或較不會帶來副作用的情況下提升整體效能。
I. 記憶體系統
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含一主裝置50以及一記憶裝置100。主裝置50可包含至少一處理器(例如一或多個處理器),可統稱為處理器52,且可另包含耦接至處理器52的一電源供應電路54。處理器52可用來控制主裝置50的運作,而電源供應電路54可用來提供電源給處理器52以及記憶裝置100,並且輸出一或多個驅動電壓給記憶裝置100。記憶裝置100可用來提供儲存空間給主裝置50,並且自主裝置50取得該一或多個驅動電壓以作為記憶裝置100的電源。主機50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。記憶裝置100的例子可包含(但不限於):固態硬碟(solid state drive, SSD)以及各種類型的嵌入式(embedded)記憶裝置諸如符合快捷外設互聯(Peripheral Component Interconnect Express, PCIe)標準的嵌入式記憶裝置等。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器諸如記憶體控制器110是用來控制記憶裝置100的運作以及存取非揮發性記憶體120,而非揮發性記憶體120是用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…及122-N,其中「N」可表示大於一的正整數。例如,非揮發性記憶體120可為一快閃記憶體,而非揮發性記憶體元件122-1、122-2、…及122-N可為複數個快閃記憶體晶片或複數個快閃記憶體裸晶,但本發明不限於此。
如第1圖所示,記憶體控制器110可包含一處理電路諸如一微處理器112、一儲存單元諸如一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯電路114、一隨機存取記憶體(Random Access Memory, RAM)116以及一傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。隨機存取記憶體116是以一靜態隨機存取記憶體(Static RAM, SRAM)來實施,但本發明不限於此。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110,例如,隨機存取記憶體116可用來作為一緩衝記憶體以緩衝資料。另外,本實施例之唯讀記憶體112M是用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,在某些例子中,程式碼112C可儲存在隨機存取記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可用來控制非揮發性記憶體120,且可包含用來保護資料及/或進行錯誤更正的一資料保護電路,其中該資料保護電路可包含複數個子電路諸如一錯誤更正碼(Error Correction Code,簡稱ECC)及隨機化器(randomizer)電路114E以及一表及資料刷新(data-refresh,DR)控制電路114TD(在第1圖中分別標示為 “ECC及隨機化器電路” 以及 “表及DR控制電路” 以求簡明),但本發明不限於此。傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、外設組件互聯(Peripheral Component Interconnect, PCI)標準、快捷外設互聯標準、通用快閃儲存(Universal Flash Storage, UFS)標準等),且可依據該特定通訊標準進行通訊,例如為記憶裝置100,和主裝置50進行通訊,其中主裝置50可包含符合該特定通訊標準之對應的傳輸介面電路,來為主裝置50,和記憶裝置100進行通訊。
在本實施例中,主裝置50可傳送主裝置指令(host command)與對應的邏輯位址至記憶體控制器110來存取記憶裝置100。記憶體控制器110接收主裝置指令與邏輯位址,並將主裝置指令轉譯成記憶體操作指令(可簡稱為操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(write)/編程(program)非揮發性記憶體120當中某些實體位址之記憶單位(例如資料頁面),其中實體位址對應於邏輯位址。當記憶體控制器110對非揮發性記憶體元件122-1、122-2、…及122-N中之任一非揮發性記憶體元件122-n進行一抹除(erase)運作時(符號「n」可表示區間[1, N]中之任一整數),非揮發性記憶體元件122-n的多個區塊(block)中之至少一個區塊可被抹除,其中該多個區塊中的每一區塊可包含多個頁面(例如資料頁面),且一存取運作(例如讀取或寫入)可對一或多個頁面進行,但本發明不限於此。
II. 非揮發性記憶體架構
第2圖為依據本發明一實施例之一三維(three-dimensional, 3D)NAND型快閃記憶體的示意圖。例如,上述至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)中之任一記憶體元件,諸如非揮發性記憶體元件122-1、122-2、…及122-N中之每一記憶體元件,可基於第2圖所示之三維NAND型快閃記憶體來實施,但本發明不限於此。
依據本實施例,該三維NAND型快閃記憶體可包含以一三維架構排列的複數個記憶細胞,諸如分別被排列於垂直Z軸的Nz層並且對齊分別對應於X軸、Y軸及Z軸的三個方向的(Nx * Ny * Nz)個記憶細胞{{M(1, 1, 1), …, M(Nx, 1, 1)}, {M(1, 2, 1), …, M(Nx, 2, 1)}, …, {M(1, Ny, 1), …, M(Nx, Ny, 1)}}、{{M(1, 1, 2), …, M(Nx, 1, 2)}, {M(1, 2, 2), …, M(Nx, 2, 2)}, …, {M(1, Ny, 2), …, M(Nx, Ny, 2)}}、…、以及{{M(1, 1, Nz), …, M(Nx, 1, Nz)}, {M(1, 2, Nz), …, M(Nx, 2, Nz)}, …, {M(1, Ny, Nz), …, M(Nx, Ny, Nz)}},且可另包含用於選擇控制的複數個選擇器電路,諸如被排列於該Nz層上面的一上方層(upper layer)的(Nx * Ny)個上方選擇器電路{MBLS(1, 1), …, MBLS(Nx, 1)}、{MBLS(1, 2), …, MBLS(Nx, 2)}、…及{MBLS(1, Ny), …, MBLS(Nx, Ny)}、以及被排列於該Nz層下面的一下方層(lower layer)的(Nx * Ny)個下方選擇器電路{MSLS(1, 1), …, MSLS(Nx, 1)}、{MSLS(1, 2), …, MSLS(Nx, 2)}、…及{MSLS(1, Ny), …, MSLS(Nx, Ny)}。另外,該三維NAND型快閃記憶體可包含用於存取控制的複數個位元線(bit line)以及複數個字線(word line),諸如被排列於該上方層上面的一頂部層(top layer)的Nx個位元線BL(1)、…及BL(Nx)、以及分別被排列於該Nz層的(Ny * Nz)個字線{WL(1, 1), WL(2, 1), …, WL(Ny, 1)}、{WL(1, 2), WL(2, 2), …, WL(Ny, 2)}、…及{WL(1, Nz), WL(2, Nz), …, WL(Ny, Nz)}。此外,該三維NAND型快閃記憶體可包含用於選擇控制的複數個選擇線,諸如被排列於該上方層的Ny個上方選擇線BLS(1)、BLS(2)、…及BLS(Ny)、以及被排列於該下方層的Ny個下方選擇線SLS(1)、SLS(2)、…及SLS(Ny),且可另包含用於提供多個參考位準的複數個源極線,諸如被排列於該下方層下面的一底部層(bottom layer)的Ny個源極線SL(1)、SL(2)、…及SL(Ny)。
如第2圖所示,該三維NAND型快閃記憶體可被區分成沿著Y軸分佈的Ny個電路模組PS2D(1)、PS2D(2)、…及PS2D(Ny)。為便於理解,電路模組PS2D(1)、PS2D(2)、…及PS2D(Ny)可具有與一平面NAND快閃記憶體(其記憶細胞被排列於一單一層)類似的某些電氣特徵,因此可分別被視為多個虛擬二維(pseudo-2D)電路模組,但本發明不限於此。另外,電路模組PS2D(1)、PS2D(2)、…及PS2D(Ny)中的任一電路模組PS2D(ny)可包含Nx個次要(secondary)電路模組S(1, ny)、…及S(Nx, ny),其中「ny」可表示區間[1, Ny]中之任一整數。例如,電路模組PS2D(1)可包含Nx個次要電路模組S(1, 1)、…及S(Nx, 1),電路模組PS2D(2)可包含Nx個次要電路模組S(1, 2)、…及S(Nx, 2),…,以及電路模組PS2D(Ny)可包含Nx個次要電路模組S(1, Ny)、…及S(Nx, Ny)。在電路模組PS2D(ny)中,次要電路模組S(1, ny)、…及S(Nx, ny)中的任一次要電路模組S(nx, ny)可包含Nz個記憶細胞M(nx, ny, 1)、M(nx, ny, 2)、…及M(nx, ny, Nz),且可包含對應於記憶細胞M(nx, ny, 1)、M(nx, ny, 2)、…及M(nx, ny, Nz)的一組選擇器電路,諸如上方選擇器電路MBLS(nx, ny)以及下方選擇器電路MSLS(nx, ny),其中「nx」可表示區間[1, Nx]中之任一整數。上方選擇器電路MBLS(nx, ny)、下方選擇器電路MSLS(nx, ny)以及記憶細胞M(nx, ny, 1)、M(nx, ny, 2)、…及M(nx, ny, Nz)可由電晶體來實施。例如,上方選擇器電路以及下方選擇器電路MSLS(nx, ny)可由不具有任何浮動閘(floating gate)的普通電晶體來實施,而記憶細胞M(nx, ny, 1)、M(nx, ny, 2)、…及M(nx, ny, Nz)中之任一記憶細胞M(nx, ny, nz)可由一浮動閘電晶體來實施,其中「nz」可表示區間[1, Nz]中之任一整數,但本發明不限於此。舉例來說,記憶細胞M(nx, ny, nz)可用採用電荷捕獲(charge-trap,CT)材料的電荷捕獲電晶體來實作。此外,在電路模組PS2D(ny)中的上方選擇器電路MBLS(1, ny)、…及MBLS(Nx, ny)可依據對應的選擇線BLS(ny)上的選擇訊號來進行選擇,而在電路模組PS2D(ny)中的下方選擇器電路MSLS(1, ny)、…及MSLS(Nx, ny)可依據對應的選擇線SLS(ny)上的選擇訊號來進行選擇。
第3圖依據本發明一實施例繪示第2圖所示之三維NAND型快閃記憶體的某些局部結構。該三維NAND型快閃記憶體可設計成具有複數個棒狀(rod-shaped)局部結構諸如第3圖所示之棒狀局部結構,而該複數個棒狀局部結構可分別被安排來穿過次要電路模組{S(1, 1), …, S(Nx, 1)}、{S(1, 2), …, S(Nx, 2)}、…及{S(1, Ny), …, S(Nx, Ny)}。為便於理解,該複數個棒狀局部結構可分別被視為第2圖所示之架構中之次要電路模組{S(1, 1), …, S(Nx, 1)}、{S(1, 2), …, S(Nx, 2)}、…及{S(1, Ny), …, S(Nx, Ny)}之相關電晶體的通道,諸如用於實施上方選擇器電路MBLS(nx, ny)以及下方選擇器電路MSLS(nx, ny)的普通電晶體的通道以及用於實施記憶細胞M(nx, ny, nz)的浮動閘電晶體的通道。依據某些實施例,該複數個棒狀局部結構的數量可等於次要電路模組{S(1, 1), …, S(Nx, 1)}、{S(1, 2), …, S(Nx, 2)}、…及{S(1, Ny), …, S(Nx, Ny)}的總數(Nx * Ny),但本發明不限於此。例如,該複數個記憶細胞的排列可予以變化,而複數個棒狀局部結構的數量可相對應地改變。
另外,該三維NAND型快閃記憶體可被設計成具有複數個管狀(pipe-shaped)局部結構,且該複數個管狀局部結構可被安排來環繞(encircle)該複數個棒狀局部結構以形成次要電路模組{S(1, 1), …, S(Nx, 1)}、{S(1, 2), …, S(Nx, 2)}、…及{S(1, Ny), …, S(Nx, Ny)}的各個元件,尤其是形成第2圖所示之架構中該複數個記憶細胞的各個控制閘與各個浮動閘以及該複數個選擇器電路的各個閘。記憶細胞{{M(1, 1, 1), M(2, 1, 1), …}, {M(1, 1, 2), M(2, 1, 2), …}, …}以及字線{WL(1, 1), WL(1, 2), …}繪示於第3圖中,且第3圖所示之管狀局部結構可指出有某些額外局部結構圍繞該複數個棒狀局部結構的每一者,其中針對這些額外局部結構的細節會在後續的實施例中進一步說明。
第4圖依據本發明一實施例繪示第2圖所示之三維NAND型快閃記憶體的該複數個記憶細胞中的一個記憶細胞的某些實施細節。如第4圖所示,記憶細胞M(nx, ny, nz)可包含該複數個棒狀局部結構中之一者的一部分,諸如對應於次要電路模組S(nx, ny)的棒狀局部結構中的一棒段(rod segment)Mch,且可另包含具有相同對稱軸的某些管狀局部結構。例如,棒段Mch的上側Md與下側Ms可用來當作用於實施記憶細胞M(nx, ny, nx)的浮動閘電晶體的汲極與源極,且這些管狀局部結構中之一第一管狀局部結構Mfg以及一第二管狀局部結構Mcg可用來作為這個浮動閘電晶體的浮動閘以及控制閘。這些管狀局部結構中的其它管狀局部結構,諸如棒段Mch與該第一管狀局部結構Mfg之間的管狀局部結構以及該第一管狀局部結構Mfg與該第二管狀局部結構Mcg之間的管狀局部結構,可由一或多個絕緣材料來實施。
依據某些實施例,第2圖所示之架構中的該複數個選擇器電路中的任一選擇器電路可藉由修改第4圖所示之架構來實施。例如,棒段Mch的上側Md與下側Ms可用來作為用於實施這個選擇器電路的普通電晶體的汲極與源極,而這些管狀局部結構中的第二管狀局部結構Mcg可用來作為這個普通電晶體的閘極,其中第一管狀局部結構Mfg應從該一或多個絕緣材料移除。因此,棒段Mch與第二管狀局部結構Mcg之間只會有一個管狀局部結構,但本發明不限於此。
III. 快閃記憶體基本特性測量
依據某些實施例,記憶體控制器110可利用ECC及隨機化器電路114E來進行寫入程序中的隨機化以及ECC編碼,以及進行讀取程序中的ECC解碼以及去隨機化(de-randomizing)。舉例來說,記憶體控制器110可利用ECC及隨機化器電路114E來於寫入時進行寫入隨機化操作並且隨後進行ECC編碼操作,之後,於讀取時進行ECC解碼操作並且隨後進行去隨機化操作。在另一例子中,記憶體控制器110可利用ECC及隨機化器電路114E來於寫入時進行ECC編碼操作並且隨後進行隨機化操作,之後,於讀取時進行去隨機化操作並且隨後進行ECC解碼操作。尤其,ECC及隨機化器電路114E可包含分別用以進行ECC編碼操作以及ECC解碼操作的一ECC編碼器以及一ECC解碼器,其,且ECC及隨機化器電路114E可另包含分別用以進行隨機化操作以及去隨機化操作的一隨機化器以及一去隨機化器(de-randomizer),但本發明不限於此。在上述隨機化操作下,非揮發性記憶體120中的位元0以及位元1的各自的出現的機率可彼此相似或相等。
非揮發性記憶體120中的電荷分佈可用閾電壓(threshold voltage,簡稱Vth)分佈圖來繪示,並且可對應於每記憶細胞的位元數,其中閾電壓(Vth)可用來偵測儲存於記憶細胞中的位元資訊,並且可依據某些觀點稱為感測電壓或讀取電壓(尤其是關於電壓的讀取點)。舉例來說,用於TLC記憶細胞的一TLC閾電壓分佈圖可具有8個(例如23 = 8)山狀部分(mountain-like portion),且用於QLC記憶細胞的一QLC閾電壓分佈圖可具有16個(例如24 = 16)山狀部分。
第5圖依據本發明一實施例繪示一閾電壓追蹤(Vth-tracking,可簡稱 “Vth追蹤”)控制方案,以及第6圖繪示第5圖所示的閾電壓追蹤控制方案的某些實施細節。在第5圖所示的工作流程中,記憶體控制器110可嘗試依序進行N2處理、N4處理、N6處理以及N8處理(於第6圖中分別標示為 “N2”、“N4”、“N6”,以及 “N8” 以求簡明),直到某條件(例如可更正(correctable)、不可更正(uncorrectable)等)被滿足為止。舉例來說,記憶體控制器110可利用ECC及隨機化器電路114E中的一或多個ECC電路(例如一或多個ECC引擎)來進行ECC解碼,諸如N2處理、N4處理、N6處理以及N8處理中的至少一部分(例如一部分或全部)的解碼,但本發明不限於此。當工作流程進行到N2處理時,記憶體控制器110可能已經嘗試了閾電壓(Vth)的一個候選讀取電壓(例如第6圖所示的第一個(1st )候選讀取電壓;標示為1st 以求簡明),並且這可耗費一倍的快閃讀取忙碌時間tR(例如100微秒(microseconds,μs)至200微秒,亦即100μs~200μs)。當工作流程進行到N4處理時,記憶體控制器110可能已經嘗試了閾電壓(Vth)的三個候選讀取電壓(例如第6圖所示的第一個、第二個(2nd )、第三個(3rd )候選讀取電壓;後兩者依序標示為2nd 、3rd 以求簡明),並且這可耗費三倍的快閃讀取忙碌時間tR(例如:(3 * 100)μs至(3 * 200)μs,亦即300μs~600μs)。當工作流程進行到N6處理時,記憶體控制器110可能已經嘗試了閾電壓(Vth)的五個候選讀取電壓(例如第6圖所示的第一個、第二個、第三個、第四個(4th )、第五個(5th )候選讀取電壓;後兩者依序標示為4th 、5th 以求簡明),並且這可耗費五倍的快閃讀取忙碌時間tR(例如:(5 * 100)μs至(5 * 200)μs,亦即500μs~1000μs)。當工作流程進行到N8處理時,記憶體控制器110可能已經嘗試了閾電壓(Vth)的7個候選讀取電壓(例如第6圖所示的第一個、第二個、第三個、第四個、第五個、第六個(6th )、第七個(7th )候選讀取電壓;後兩者依序標示為6th 、7th 以求簡明),並且這可耗費七倍的快閃讀取忙碌時間tR(例如:(7 * 100)μs至(7 * 200)μs,亦即700μs~1400μs)。
記憶體控制器110可使用第一個候選讀取電壓的位元資訊(在第5圖標示為 “+1讀取”,以求簡明)來進行N2處理,以及進行硬解碼,並且檢查碼字(codeword)是否為可更正,其中若是沒有錯誤的狀況則可被視為可更正。若是,進入左下角的步驟;若否,則觸發N4處理。記憶體控制器110可使用第一個、第二個、第三個候選讀取電壓的位元資訊(在第5圖標示為“+3讀取”,以求簡明)來進行N4處理,以及進行軟解碼(soft-decoding),並且檢查碼字是否為可更正,其中這個位元資訊可包含一個正負號位元(sign bit)以及一個軟位元(soft bit)。若是,進入左下角的步驟;若否,則觸發N6處理。記憶體控制器110可使用第一個、第二個、第三個、第四個、第五個候選讀取電壓的位元資訊(在第5圖標示為 “+5讀取”,以求簡明)來進行N6處理,以及進行軟解碼,並且檢查碼字是否為可更正,其中這個位元資訊可包含一個正負號位元以及兩個軟位元。若是,進入左下角的步驟;若否,則觸發N8處理。記憶體控制器110可使用第一個、第二個、第三個、第四個、第五個、第六個、第七個候選讀取電壓的位元資訊(在第5圖標示為 “+7讀取”,以求簡明)來進行N8處理,以及進行軟解碼,並且檢查碼字是否為可更正,其中這個位元資訊可包含一個正負號位元以及兩個軟位元。若是,進入左下角的步驟;若否,記憶體控制器110可調整該一或多個ECC電路的一或多個解碼參數來繼續進行N8處理。舉例來說,記憶體控制器110可嘗試多個解碼參數的各種組合來進行N8處理,並且檢查該碼字是否為可更正。該多個解碼參數的例子可包含(但不限於):感測步進大小(step size)、解碼器內部係數(decoder internal coefficient)、以及針對動態微調對數似然比(Log-likelihood ratio,LLR)的某些參數。若該碼字是不可更正且執行N8處理的迴圈的次數達到一預定數,諸如最大迴圈數(於第5圖標示 “已達最大迴圈數”,以求簡明),記憶體控制器110可判斷發生讀取失敗,並且進入下一復原層級(recovery stage);否則,記憶體控制器110則可繼續進行N8處理。在左下角的步驟中,記憶體控制器110可取得一可更正碼字,以及收集到追蹤結果。舉例來說,這些追蹤結果可包含已經嘗試過的候選讀取電壓,諸如繪示於第6圖所示的N2處理、N4處理、N6處理以及N8處理中的垂直線,其中這些垂直線可被標示為 “1st ”、“2nd ”、“3rd ”、“4th ”、“5th ”、“6th ”、“7th ” 以分別指出上述第一個、第二個、第三個、第四個、第五個、第六個、第七個候選讀取電壓。
第7圖依據本發明一實施例繪示如第5圖所示的閾電壓追蹤控制方案的某些復原層級以及這些復原層級之間的關係,其中低密度奇偶校驗(low-density parity-check,LDPC)解碼可被視為該ECC解碼的例子(於第7圖中以LDPC步進(LDPC Step)來呈現)。復原索引(recovery index;或稱為復原指數)1、2、3、4、5等的總數(例如N_max-index,諸如15或20)可對應於該最大迴圈數(例如N_max-loop,諸如10或15)。當記憶體控制器110在N2處理中以預設(default)的方式保留最後一個讀取電壓以直接取得該可更正碼字、或在N2處理中進行硬解碼以取得該可更正碼字時,該ECC解碼的色彩層級(color stage)可被視為綠色,這可指出最佳狀況。當記憶體控制器110以Vth追蹤來進行N4處理以取得該可更正碼字時,該ECC解碼的色彩層級可被視為黃色。當記憶體控制器110以Vth追蹤來進行N6處理以取得該可更正碼字時,該ECC解碼的色彩層級可被視為棕色。當記憶體控制器110以Vth追蹤來進行N8處理以取得該可更正碼字時,例如藉由在該最大迴圈數(例如N_max-loop,諸如10或15)內執行N8處理的迴圈多次,該ECC解碼的色彩層級可被視為橙色。當發生SLC或TLC ECC失敗時,例如進入第5圖左下角的步驟,該ECC解碼的色彩層級可被視為紅色,這可指出最壞狀況。由於N2處理對應於復原索引1與2,且由於N4處理以及N6處理分別對應於復原索引3與4,所以N8處理可對應於復原索引{5, 6, …, (N_max-index - 1)}(例如{5, 6, …, 14}或{5, 6, …, 19}),且所述SLC或TLC ECC失敗可對應於復原索引N_max-index(例如15或20),其中N_max-index = (4 + N_max-loop + 1) = (N_max-loop + 5)。
第8圖依據本發明一實施例繪示第5圖所示的閾電壓追蹤控制方案的一測試流程。依據本實施例,一生產工具(production tool)諸如另一主裝置(例如個人電腦,諸如桌上型電腦以及膝上型電腦)可進行該測試流程,以及多個樣本可安裝於具有與記憶裝置100相同的產品型號的多個記憶裝置上,但本發明不限於此。舉例來說,該多個樣本可代表具有與非揮發性記憶體120相同的產品型號的多個非揮發性記憶體。在另一例子中,該多個樣本可代表具有與非揮發性記憶體元件122-1、122-2、…與122-N相同的產品型號的一組非揮發性記憶體元件。
該測試流程可包含一系列測試程序(test procedure),諸如一致性(Uniformity)、準備區塊(Prepare blocks)、讀取擾動(Read disturbance)、資料保留(Data retention)、跨溫度(Cross temperature)以及耐久度(Endurance),以供測試該多個樣本。在上述一致性的測試程序中,該生產工具可測試該多個樣本的基本狀態的一致性,其中編程/抹除循環(Program and Erase (P/E) cycle)可等於5或其他值。於上述準備區塊的測試程序中,該生產工具可準備分別屬於循環為1、150,500、1000、1500、3000、5000以及10000的多個編程/抹除(P/E)群組的區塊(諸如分別經歷1、150、500、1000、1500、3000、5000以及10000個循環的編程/抹除的八群區塊)。在上述讀取擾動的測試程序中,該生產工具可藉由讀取來進行測試,例如進行整個區塊的讀取以及單一頁面的讀取。在上述資料保留的測試程序中,該生產工具可在100°C的條件下用各種時間長度諸如0、2、4、6、8、16、20以及24小時來對該多個樣本的資料保留進行測試。在上述跨溫度的測試程序中,該生產工具可用各種溫度值諸如0°C至70°C的溫度範圍內的溫度值來對該多個樣本進行測試。在上述耐久度的測試程序,該生產工具可分別在SLC以及TLC模式下對於該多個樣本進行耐久度的測試,如此一來,該生產工具便可偵測該多個樣本的操作範圍。針對該多個樣本中的任何樣本,其操作範圍可對應於該樣本以及耦接於該樣本的控制器積體電路(Integrated circuit (IC);尤其是一ECC電路以及其內的一訊號處理模組)的組合。該生產工具可利用上述操作範圍來作為針對服務品質(quality of service,QoS)的量測結果。
依據某些實施例,上述生產工具可被稱為一第一生產工具,且該多個樣本的至少一部分(例如一部分或全部)可被安裝於耦接至該第一生產工具的一第二生產工具,諸如具有與記憶裝置100相同的產品型號的另一記憶裝置,並且該另一記憶裝置可具有一變更的(modified)架構(例如一或多個插槽(socket)等),以供安裝該多個樣本的上述至少一部分。
第9圖依據本發明一實施例繪示透過第8圖所示的測試流程而取得的某些測試結果。如第9圖所示,對於耐久度的測試可隨著編程/抹除(P/E)循環(例如:1、150、500、1000、1500、3000、5000以及10000個循環;於第9圖中以 “PE” 來表示P/E循環)而在垂直方向上有所變化,以及,對於資料保留的測試可隨時間(例如:在100°C的條件下分別採用0、2、4、6、8、16、20以及24小時的時間長度)而在水平方向上有所變化。不同程度的陰影(shading)可用以指出各自所達到的最大復原索引,其中百分比可用以指出N2觸發率(trigger rate),諸如僅觸發N2處理(而不會觸發N4處理、N6處理以及N8處理)的比率。對於企業使用者而言,對於一組預定條件(例如:耐久循環為10000,在55°C下的資料保留為三個月…等),N2觸發率的可定義為99.99%,但本發明不限於此。基於此要求,該資料應在100°C下烘烤2小時的條件下,在一個快閃讀取忙碌時間(flash read busy time)tR(例如0.1至0.2毫秒(millisecond,ms)的讀取延遲)內正確地回傳到主機端。因此,可能需要優化具有小於99.9%的N2觸發率的相關操作範圍。
第10圖依據本發明一實施例繪示針對某一耐久循環(endurance cycle)諸如150個編程/抹除(program and erase,P/E)循環的TLC閾電壓分佈圖,以及第11圖依據本實施例繪示針對一較高耐久循環諸如5000個編程/抹除循環的TLC閾電壓分佈圖,其中所示的兩個TLC閾電壓分佈圖對應於室溫資料保留。圖例(legend)諸如DAY00、DAY02、DAY06、DAY09、DAY12和DAY14可對應於沿著時間軸的一系列時間點{0, 2, 6, 9, 12, 14},以日或24小時為單位。當編程/抹除(P/E)循環達到150(在第10圖中標示為 “PE:150”,以求簡明),Vth移位的最大或較大移位量可在頭兩天內發生,接著Vth移位可逐漸達到飽和狀態。當編程/抹除(P/E)循環達到5000(在第11圖中標示為 “PE:5000”,以求簡明),Vth移位的最大或較大移位量可在頭兩天內發生,接著Vth移位可逐漸達到飽和狀態。依據本實施例,記憶體控制器110的ECC電路的錯誤更正能力足以涵蓋這兩個TLC閾電壓分佈圖中的Vth移位,尤其是透過N2處理來實現,而不需要進行N4處理、N6處理以及N8處理中的任何處理。
IV. 背景掃描機制
第12圖依據本發明一實施例繪示使用一背景掃描控制方案來處理的某些實體區塊。依據本實施例,記憶體控制器110可對非揮發性記憶體120進行背景掃描以讀取複數個邏輯存取單元(logical access unit,可簡稱LAU)諸如LAU #0、LAU #1等中的每一邏輯存取單元(LAU)中的區塊#0、區塊#1、…與區塊#4855的每一區塊中的頁面#0、頁面#1、…與頁面#1727中的一或多個頁面,其中第12圖所示的這多行(column)區塊分別屬於這個邏輯存取單元(例如LAU #0)的平面#0、平面#1、平面#2和平面#3。記憶體控制器110可用分時多工(time division)的方式來進行該背景掃描,尤其,可每次讀取一小部分資料,並且在一預定時間長度內(例如14天)內完成一次該背景掃描。舉例來說,記憶體控制器110可讀取該複數個邏輯存取單元諸如LAU #0、LAU #1等中的每一邏輯存取單元(LAU)中的每一區塊中的一個頁面,且在下一個區塊中要讀取的頁面的編號可不同於在當前區塊中要讀取的頁面的編號,但本發明不限於此。舉例來說,所有資料可在該預定時間長度內(例如14天)內讀取一次。
於進行該背景掃描的期間,記憶體控制器110可收集(例如記錄)非揮發性記憶體120的閾電壓分佈的波谷(例如介於山狀部分之間的谷狀部分(valley-like portion))的谷資訊以優化讀取電壓,以供於進行讀取時被使用。尤其,當有一或多個錯誤發生時,記憶體控制器110可收集(例如記錄)每ECC組塊的錯誤位元數量(error bit number per ECC chunk),並且可另進行Vth追蹤以決定出最佳讀取電壓。
第13圖依據本發明一實施例繪示針對一雜訊容限(noise margin)記錄控制方案的一TLC閾電壓分佈圖,第14圖繪示對應於第13圖所示的TLC閾電壓分佈圖的谷位置及高度圖,以及第15圖繪示第13圖所示的TLC閾電壓分佈圖中的一部分的波谷(例如:於第13圖中的用虛線繪示的框內的波谷)的某些硬解碼通過範圍(hard-decoding pass range,簡稱HD通過範圍),其中編程/抹除(P/E)循環可為5000次(於第13圖中標示為 “PE:5000”,以求簡明)。圖例諸如HR00、HR02、HR04、HR06、HR08、HR16、HR20與HR24可對應於沿著時間軸的一系列時間點{0, 2, 4, 6, 8, 16, 20, 24},以小時為單位。
如第14圖所示,該谷資訊可包含針對第13圖所示的曲線中的每一曲線的多個波谷中的每一波谷的一谷位置(valley location)以及一谷高度(valley height),其中該谷位置以及該谷高度可被記錄為一對應點(在第14圖中標示為圓圈,以用其圓心來清楚表示該點的位置)的水平以及垂直座標值。舉例來說,該谷高度可用細胞數量(cell number)諸如該閾電壓分佈圖中的細胞數量來測量,並而可用沿第14圖的垂直軸的線性刻度比來說明,但本發明不限於此。在另一例子中,依據某些觀點,該谷高度可被視為錯誤量。如第15圖所示,該谷資訊可另包含一谷寬度(valley width),諸如:針對N2處理,從該谷位置朝向包含這個波谷的曲線(例如電壓分佈曲線)延伸的一最大可延伸電壓範圍(maximum extendable voltage range)。在上述最大可延伸電壓範圍內,記憶體控制器110能夠僅透過N2處理來取得該可更正碼字,而不需要進行N4處理、N6處理以及N8處理中的任何處理。記憶體控制器110可嘗試從該谷位置朝向包含這個波谷的該曲線延伸一初始可延伸電壓範圍,尤其,可依據是否有需要進行N4處理、N6處理以及N8處理中的任何處理,進行二元搜尋(binary search),以決定出只需要用到N2處理的該最大可延伸電壓範圍。如此一來,記憶體控制器110可將該最大可延伸電壓範圍記錄為該谷寬度。依據某些觀點,該谷寬度可被視為一HD通過範圍。
依據某些實施例,記憶體控制器110可將關於非揮發性記憶體120內的實體位置(例如實體位址)的屬於非揮發性記憶體120的的谷資訊記錄至一或多個表中,並且可將該一或多個表儲存至記憶體控制器110中的某一儲存單元的儲存空間中,以供進一步使用。舉例來說,記憶體控制器110可依據該谷資訊來優化讀取電壓。
V. 透過機器學習的針對讀取電壓的準確設定
儲存非揮發性記憶體120中的所有記憶細胞的閾電壓分佈特性(例如谷資訊)將有助於準確地讀取非揮發性記憶體120中的這些記憶細胞的每一記憶細胞中所儲存的位元,但此作法需要龐大的儲存空間,因此不符合實際需求。藉由依據閾電壓分佈的波谷的谷資訊進行基於一強化學習模型(reinforcement learning model)的機器學習,記憶體控制器110能夠在進行讀取的期間準確地設定讀取電壓。如此一來,原先所需要的龐大的儲存空間可被大幅降低。
在該背景掃描中,記憶體控制器110可載入一閾電壓追蹤程序(Vth-tracking procedure)以依據該閾電壓追蹤控制方案來進行閾電壓追蹤。當上述最佳讀取電壓在該閾電壓追蹤中被找到,記憶體控制器110可收集多個實體配對頁面(physical pair page)(例如:對一TLC快閃記憶體而言,分別對應於最低有效位元(least significant bit,LSB)、中間有效位元(central significant bit,CSB)以及最高有效位元(most significant bit,MSB)的三個邏輯頁面)的谷資訊,諸如谷位置、谷高度以及谷寬度(例如HD通過範圍)。由於該TLC快閃記憶體的一個實體配對頁面具有對應於七個波谷的七個讀取點,所以會有七組對應的谷資訊。記憶體控制器110可將谷資訊發送至該強化學習模型,以找出最短解碼延遲讀取點(例如最佳讀取電壓)。該強化學習模型可表示如下:
Figure 02_image001
其中NIP 可代表總輸入型樣數(total input pattern count)諸如訓練序列量(training sequence amount),K可代表簇數量(number of cluster),諸如用於該TLC快閃記憶體的七個讀取點,xn 可代表針對索引n的輸入讀取點的錯誤行為,諸如該谷位置,tk 可代表針對索引n的目標讀取點的錯誤行為,Coefn,k 可代表權重函數(weighting function),例如,關於谷高度VH以及谷寬度諸如HD通過範圍HD_pass_Win的一更正函數f(VH, HD_pass_Win),以及D可代表該機器學習中的錯誤距離。依據本實施例,錯誤距離D會被基於該強化學習模型的該機器學習最小化。另外,該權重函數諸如更正函數f(VH, HD_pass_Win)可具有對谷高度VH的正相關且可具有對該谷寬度諸如HD通過範圍HD_pass_Win的負相關。舉例來說,f(VH, HD_pass_Win) = (a * VH) - (b * HD_pass_Win),其中a > 0以及b > 0,但本發明不限於此。依據某些實施例,f(VH, HD_pass_Win) = VHa / HD_pass_Winb ,其中a > 1以及b > 1。
在進行大量的背景掃描以後,記憶體控制器110可收集到分別對應於各個波谷的谷資訊。記憶體控制器110可用輪流或同時的方式來進行該背景掃描以及進行基於該強化學習模型的該機器學習。透過該機器學習,記憶體控制器110可取得分別對應於各個波谷的最佳讀取電壓,諸如優化的(optimized)讀取點{tk }。藉由於讀取期間利用優化的讀取點{tk },記憶體控制器110可將總錯誤量進行最小化。
針對該機器學習的某些實施細節可說明如下。谷高度VH的值較高時可指出該讀取點是錯誤的,尤其可指出有較多的錯誤位元。谷高度VH的值較低時可指出該讀取點是正確的或幾乎正確的,尤其可指出有較少的錯誤位元。另外,該谷寬度諸如HD通過範圍HD_pass_Win可指出硬解碼應該會成功的範圍。若HD通過範圍HD_pass_Win較高時,則表示該讀取點可具有較大的兼容性,並且可容許此讀取點有位移,諸如對應於較小谷寬度的其他輸入(例如一或多個其他輸入型樣(pattern)的讀取點)。此外,當谷高度VH為高且谷寬度諸如HD通過範圍HD_pass_Win為窄時,權重函數Coefn,k 的權重應該被增加,且更正函數f(VH, HD_pass_Win)應該具有較大值以在該機器學習的期間增加對應的項(xn - tn )2 的影響,這是因為該讀取點具有較大的產生更多錯誤位元的機率。當谷高度VH為低且谷寬度諸如HD通過範圍HD_pass_Win為寬時,權重函數Coefn,k 的權重應該被減少,且更正函數f(VH, HD_pass_Win)應該具有較小值以在該機器學習的期間減少對應的項(xn - tn )2 的影響,以對該機器學習中的其他輸入(例如其他輸入型樣)提供更大的可調整範圍。
第16圖依據本發明一實施例繪示透過一強化學習(reinforcement learning)控制方案從第10圖所示的TLC閾電壓分佈圖的谷資訊取得的某些最佳讀取點,以及第17圖繪示透過本實施例中的該強化學習控制方案從第11圖所示的TLC閾電壓分佈圖中的谷資訊取得的某些最佳讀取點。依據本實施例,微處理器112可控制記憶體控制器110依據該強化學習控制方案來進行操作,尤其,可進行基於該強化學習模型的該機器學習以從非揮發性記憶體120的閾電壓分佈的谷資訊找出最佳讀取點。舉例來說,在編程/抹除(P/E)循環達到150次的情況下(於第16圖中標示為 “PE:150”,以求簡明),記憶體控制器110可找出對應於某一長度的資料壽命(data life time)的最佳讀取點,諸如對應於資料壽命為14天的最佳讀取點,如第16圖中的於圖例DAY14的曲線上的以虛線繪示的圓圈所示。在另一例子中,在編程/抹除(P/E)循環達到5000次的情況下(於第17圖中標示為 “PE:5000”,以求簡明),記憶體控制器110可找出對應於某一長度的資料壽命的最佳讀取點,諸如對應於資料壽命為14天的最佳讀取點,如第17圖中的於圖例DAY14的曲線上的以虛線繪示的圓圈所示。此外,記憶體控制器110可對非揮發性記憶體120中的複數個區塊進行損耗均衡(wear leveling)以使該複數個區塊中的所有區塊的編程/抹除(P/E)循環變得平均。無論該複數個區塊的編程/抹除(P/E)循環是較高或較低,記憶體控制器110可找出對應於某一長度的資料壽命的最佳讀取點,諸如對應於資料壽命為14天的最佳讀取點,如第16圖及第17圖中的任一者所示。
依據某些實施例,微處理器112可控制記憶體控制器110依據該強化學習控制方案來操作,尤其,可進行基於該強化學習模型的該機器學習以分別針對不同長度的資料壽命(例如不同範圍的資料壽命)來從非揮發性記憶體120的閾電壓分佈的谷資訊找出上述最佳讀取點。舉例來說,記憶體控制器110可找出對應於資料壽命落入一第一範圍的一第一組最佳讀取點,以及藉由使用該第一組最佳讀取點來讀取對應於資料壽命落入該第一範圍的資料。另外,記憶體控制器110可找出對應於資料壽命落入一第二範圍的一第二組最佳讀取點,以及藉由使用該第二組最佳讀取點來讀取對應於資料壽命落入該第二範圍的資料。此外,記憶體控制器110可找出對應於資料壽命落入一第三範圍的一第三組最佳讀取點,以及藉由使用該第三組最佳讀取點來讀取對應於資料壽命落入該第三範圍的資料。
第18圖依據本發明一實施例繪示指出資料保留改善的三組曲線,其中這三組曲線可包含:對應於原始錯誤投影(original error projection)的一第一組曲線、對應於正常解碼錯誤投影(normal decoded error projection)的一第二組曲線、以及對應於最佳讀取解碼錯誤投影(best read decoded error projection)的一第三組曲線。在水平軸上的碼字錯誤(codeword error)可代表每千位元組ECC組塊的錯誤位元數(error bit count per 1KB ECC chunk),諸如在一千位元組(kilobyte,KB)的一ECC組塊中的錯誤位元的數量。垂直軸上的幀錯誤率(frame error rate,FER)可表示如下: FER = 1 - Pro(error_bit_count_per_chunk < t); 其中Pro( )可代表一投影(projection)諸如映射(mapping),error_bit_count_per_chunk可代表每組塊的錯誤位元數(error bit count per chunk)諸如上述每千位元組ECC組塊的錯誤位元數,以及t可代表水平軸上的座標值。在第18圖中,圖例諸如1、150、500、1000、1500、3000、5000以及10000可分別對應於編程/抹除(P/E)循環的數量,諸如1、150、500、1000、1500、3000、5000以及10000個循環(例如分別執行1、150、500、1000、1500、3000、5000以及10000次編程接著抹除),以及對應於圖例LDPCHd的垂直線(例如第18圖所示的垂直虛線)可指出低延遲解碼的一更正能力閾值(例如僅觸發N2處理)。舉例來說,其資料壽命的長度可為14天。
假設記憶體控制器110可被配置為在讀取的期間利用一組預設(default)讀取電壓(例如固定的讀取電壓)。在此情況下,該第一組曲線可延伸至該更正能力閾值的右側而遠離該更正能力閾值,這是這三組曲線中的最壞狀況。舉例來說,對應於圖例1的曲線以及對應於圖例LDPCHd的垂直線的交點可具有在10-4 至10-3 的區間中的一垂直座標值,這表示觸發高延遲解碼(例如在觸發N2處理後,N4處理、N6處理以及N8處理中的至少一部分的後續處理被觸發)的機率是10-4 至10-3 。另外,假設記憶體控制器110可被配置為在讀取的期間利用一組最近最少使用的(least recently used,LRU)讀取電壓(例如先前成功碼解的讀取電壓)。在此情況下,該第二組曲線可延伸至該更正能力閾值的右側而相較於該第一組曲線更靠近該更正能力閾值。然而觸發該高延遲解碼(例如在觸發N2處理後,N4處理、N6處理以及N8處理中的至少一部分的後續處理被觸發)的機率仍然太高。
依據本實施例,記憶體控制器110可被配置為於讀取的期間利用一組最佳讀取電壓(例如從基於該強化學習模型的該機器學習取得的讀取電壓)。在此情況下,該第三組曲線中的大部分可位於該更正能力閾值的左側,這是這三組曲線中的最佳狀況。為了使該第三組曲線的全部都位於該更正能力閾值的左側以避免對應於圖例10000的曲線以及對應於圖例LDPCHd的垂直線的任何交點的產生,記憶體控制器110可減少該背景掃描的週期。因此,記憶體控制器110可保持留在該低延遲解碼(例如僅觸發N2處理)並且避免該高延遲解碼。
VI. 強健的控制機制
依據某些實施例,該電子裝置10的至少一部分,諸如主裝置50(例如其內的處理器52)以及記憶裝置100(例如其內的記憶體控制器110)中的至少一者,可用來觸發記憶裝置100中的非揮發性記憶體120(尤其是非揮發性記憶體元件122-1、122-2、…與122-N)的該背景掃描以及依據非揮發性記憶體120的谷資訊來進行基於該強化學習模型的該機器學習,以產生或更新多個表,諸如表TB1、TB2以及TB3。該多個表中的每一表可儲存一組讀取電壓來作為非揮發性記憶體120的分別針對不同段(section)資料壽命的最佳讀取點,以及這些段資料壽命可包含:一第一段資料壽命、一第二段資料壽命以及一第三段資料壽命,例如,依序從年輕到老。表TB1可儲存一第一組讀取電壓(例如用於TLC記憶細胞的7個讀取電壓、用於QLC記憶細胞的15個讀取電壓等)作為非揮發性記憶體120的針對該第一段資料壽命的最佳讀取點,表TB2可儲存一第二組讀取電壓(例如用於TLC記憶細胞的7個讀取電壓、用於QLC記憶細胞的15個讀取電壓等)作為非揮發性記憶體120的針對該第二段資料壽命的最佳讀取點,以及表TB3可儲存一第三組讀取電壓(例如用於TLC記憶細胞的7個讀取電壓、用於QLC記憶細胞的15個讀取電壓等)作為非揮發性記憶體120的針對該第三段資料壽命的最佳讀取點。另外,於讀取具有某資料壽命的資料時,記憶裝置100(例如記憶體控制器110)可依據對應於這資料壽命的最佳讀取點來讀取該資料。舉例來說,記憶體控制器110可從該多個表諸如表TB1、TB2以及TB3選取對應於(該資料的)該資料壽命的某一表,以從這個表取得對應於(該資料的)該資料壽命的最佳讀取點,來透過N2處理達到最佳讀取效能。
第19圖依據本發明一實施例繪示一種藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法,其中以上實施例中的某些實施例中的控制方案(例如:該閾電壓追蹤控制方案、該背景掃描控制方案、該雜訊容限記錄控制方案、以及該強化學習控制方案)可被採用於該方法中。該方法可被應用於電子裝置10、記憶裝置100、以及可用以控制非揮發性記憶體120的存取的記憶體控制器110。舉例來說,記憶裝置100(例如記憶體控制器110)可依據該方法來操作。尤其,表及資料刷新控制電路114TD可依據該方法,於進行讀取的期間為記憶體控制器110從表TB1、TB2以及TB3中選取一適當表,並且為記憶體控制器110管理及更新表TB1、TB2以及TB3。基於該方法,記憶體控制器110可藉助於基於該強化學習模型的該機器學習來針對記憶裝置100的服務品質優化進行存取控制。
如第19圖所示,記憶體控制器110(例如:表及資料刷新控制電路114TD)可進行對應於第1週、第2週、第3週、第4週、第5週、第6週等諸如週#1、週#2、週#3、週#4、週#5、週#6等(例如:以一天或24小時為單位,沿著時間軸,介於時間點{0, 7, 14, 21, 28, 35, 42, …}的一系列連續的時間區間)的一系列的操作,其中用於進行該系列操作的週期可為一週,但本發明不限於此。舉例來說,記憶體控制器110可進行背景掃描(於第19圖中標示為 “BS”,以求簡明)以透過基於該強化學習模型的該機器學習來預先準備表TB1、TB2以及TB3。另外,記憶體控制器110可進行背景掃描以於一當前週(例如:週#1、週#2等中的任何週)中透過基於該強化學習模型的該機器學習來更新表TB1、TB2以及TB3中的至少一部分(例如一部分或全部),依照這些表是否會於這週被使用。舉例來說,記憶體控制器110可進行背景掃描以從第一週諸如週#1開始每週更新表TB1,進行背景掃描以從第二週諸如週#2開始每週更新表TB2,以及進行背景掃描以從第三週諸如週#3開始每週更新表TB3。
於第一週諸如週#1內,記憶體控制器110可寫入第一資料以及使用表TB1來讀取該第一資料。舉例來說,表及資料刷新控制電路114TD可選取表TB1作為這週內用於該第一資料的適當表。於第二週諸如週#2內,記憶體控制器110可使用表TB2來讀取該第一資料,這是因為該第一資料的資料保留特性可能會惡化。舉例來說,表及資料刷新控制電路114TD可選取表TB2作為這週內用於該第一資料的該適當表。於第三週諸如週#3內,記憶體控制器110可使用表TB3來讀取該第一資料,且可對該第一資料進行資料刷新,這是因為該第一資料的資料保留特性可能會更加惡化。舉例來說,表及資料刷新控制電路114TD可選取表TB3作為這週內用於該第一資料的該適當表。於該第一資料的該資料刷新的期間,記憶體控制器110(例如表及資料刷新控制電路114TD)可將透過使用表TB3從至少一舊的實體位址(其可指出一或多個舊的實體頁、一或多個舊的實體區塊等)剛被讀取的該第一資料寫入到至少一新的實體位址(其可指出一或多個其他實體頁、一或多個其他實體區塊等)、無效化(invalidate)於該舊的實體位址的儲存單元、以及更新該第一資料的邏輯位址與實體位址之間的邏輯對實體位址映射關係(logical-to-physical address mapping relationship),以將該第一資料刷新為位於該新的實體位址的相同資料,但本發明不限於此。在另一例子中,於該第一資料的該資料刷新的期間,記憶體控制器110(例如表及資料刷新控制電路114TD)可使用表TB3來從該舊的實體位址讀取該第一資料,並且將該第一資料寫入至該新的實體位址,無效化於該舊的實體位址的該儲存單元,以及更新這個映射關係,以將該第一資料刷新為位於該新的實體位址的該相同資料。
於第二週諸如週#2內,記憶體控制器110可寫入第二資料以及使用表TB1來讀取該第二資料。舉例來說,表及資料刷新控制電路114TD可選取表TB1作為這週內用於該第二資料的適當表。於第三週諸如週#3內,記憶體控制器110可使用表TB2來讀取該第二資料,這是因為該第二資料的資料保留特性可能會惡化。舉例來說,表及資料刷新控制電路114TD可選取表TB2作為這週內用於該第二資料的該適當表。於該第四週諸如週#4內,記憶體控制器110可使用表TB3來讀取該第二資料,且可對該第二資料進行資料刷新,這是因為該第二資料的資料保留特性可能會更加惡化。舉例來說,表及資料刷新控制電路114TD可選取表TB3作為這週內用於該第二資料的該適當表。於該第二資料的該資料刷新的期間,記憶體控制器110(例如表及資料刷新控制電路114TD)可將透過使用表TB3從至少一舊的實體位址(其可指出一或多個舊的實體頁、一或多個舊的實體區塊等)剛被讀取的該第二資料寫入到至少一新的實體位址(其可指出一或多個其他實體頁、一或多個其他實體區塊等)、無效化於該舊的實體位址的儲存單元、以及更新該第二資料的邏輯位址與實體位址之間的邏輯對實體位址映射關係,以將該第二資料刷新為位於該新的實體位址的相同資料,但本發明不限於此。在另一例子中,於該第二資料的該資料刷新的期間,記憶體控制器110(例如表及資料刷新控制電路114TD)可使用表TB3來從該舊的實體位址讀取該第二資料,並且將該第二資料寫入至該新的實體位址,無效化於該舊的實體位址的該儲存單元,以及更新這個映射關係,以將該第二資料刷新為位於該新的實體位址的該相同資料。
在對應於週#1、週#2、週#3、週#4、週#5、週#6等的該系列操作中,關於在後續的週#3、週#4、週#5、週#6等內寫入的資料的操作可依此類推,同理可得。另外,表及資料刷新控制電路114TD可進行下列操作:於進行讀取的期間為記憶體控制器110從表TB1、TB2以及TB3中選取上述適當表針的操作;為記憶體控制器110管理及更新表TB1、TB2以及TB3的操作;以及於某資料的資料壽命達到一預定值諸如14天或336小時時刷新該資料(例如該第一資料、該第二資料等)的操作;但本發明不限於此。依據某些實施例,微處理器112可進行這些操作中的至少一部分(例如一部分或全部)。舉例來說,微處理器112可進行這些操作中的所有操作,以及表及資料刷新控制電路114TD可被忽略(例如不需要設置)。基於第19圖所示的方法,記憶體控制器110能確保整個系統(例如主裝置50以及記憶裝置100)妥善地運作,以避免相關技術中的問題,諸如位元錯誤率(bit error rate)提高、隨機讀取延遲增加、以及該資料保留問題所衍生出的某些相關問題。為了簡明起見,本實施例與前述實施例相仿的內容在此不重複贅述。
第20圖是依據本發明一實施例的如第19圖所示方法的工作流程。為了更好的理解,該工作流程的某些步驟的操作可被描述為複數個階段Phase(0)、Phase(1)以及Phase(2)中的操作。舉例來說,階段Phase(0)可代表記憶裝置100的一生產階段(production phase),以及階段Phase(1)以及Phase(2)可代表供該使用者使用記憶裝置100的一使用者階段的多個子階段,但本發明不限於此。依據某些實施例,階段Phase(0)以及Phase(1)可代表記憶裝置100的一生產階段的多個子階段,以及階段Phase(2)可代表供該使用者使用記憶裝置100的一使用者階段。另外,一系列時間區間諸如{period(1), period(2), …}可被描述為{period(i)},其中索引i可為一正整數。第19圖所示的實施例中對應於週#1、週#2等的該系列操作可分別視為該系列時間區間{period(1), period(2), …}中由記憶體控制器110所進行的相關操作的例子。舉例來說,於某一時間區間諸如period(i)(例如週#1、週#2等中的任何週)內由記憶體控制器110所寫入至非揮發性記憶體120的所有資料可被統稱為資料DATA(i)。在另一例子中,於某一時間區間諸如period(i)內由記憶體控制器110所寫入至非揮發性記憶體120的所有刷新的(refreshed)資料可被統稱為資料DATA_RF(i)。
在階段Phase(0)中,一第一生產工具諸如另一主裝置(例如個人電腦,諸如桌上型電腦及膝上型電腦)可對多個測試樣本進行背景掃描,以及依據該多個測試樣本的谷資訊來進行基於該強化學習模型的該機器學習,以產生表TB1、TB2以及TB3的各自的初始版本(initial version)。舉例來說,該多個測試樣本可代表具有與非揮發性記憶體120相同的產品型號的多個非揮發性記憶體。在另一例子中,該多個測試樣本可代表具有與非揮發性記憶體元件122-1、122-2、…與122-N相同的產品型號的一組非揮發性記憶體元件。依據本實施例,該多個測試樣本可被安裝於具有與記憶裝置100相同的產品型號的多個記憶裝置,但本發明不限於此。依據某些實施例,該多個測試樣本的至少一部分(例如一部分或全部)可被安裝於耦接至該第一生產工具的一第二生產工具,諸如具有與記憶裝置100相同的產品型號的另一記憶裝置,以及該另一記憶裝置可具有一變更的架構(例如一或多個插槽等),以供安裝該多個測試樣本的上述至少一部分。
在階段Phase(1)中,記憶體控制器110(例如微處理器112)可對記憶裝置100中的非揮發性記憶體120(尤其,非揮發性記憶體元件122-1、122-2、…與122-N)進行背景掃描以及依據非揮發性記憶體120的谷資訊進行基於該強化學習模型的該機器學習,以產生表TB1、TB2以及TB3的各自的客製化版本(customized version)。如此一來,記憶體控制器110(例如微處理器112)可將表TB1、TB2以及TB3的各自的初始版本更新為表TB1、TB2以及TB3各自的客製化版本。
在階段Phase(2)中,記憶體控制器110可進行前景(foreground)以及背景(background)處理。該前景處理可包含步驟S10至S18的操作,以及該背景處理可包含步驟S20~S23的操作。為了有更好的理解,對應於C語言的某些虛擬碼(pseudo code)可用來說明這個工作流程,但本發明不限於此。舉例來說,虛擬碼 “i++” 可代表以增量諸如一來增加索引i,以及虛擬碼 “i = 1” 可代表將索引i的初始值設為1。
在步驟S10中,於第一時間區間諸如period(1)內,記憶體控制器110可寫入資料DATA(i)(例如資料DATA(1)),且使用表TB1來讀取資料DATA(i)(例如資料DATA(1))。之後,記憶體控制器110可用增量諸如一來增加索引i。
在步驟S11中,記憶體控制器110可檢查是否i < 3。若i < 3,則進入步驟S12;否則,進入步驟S13。
在步驟 S12中,於當前時間區間諸如period(i)(例如:第二時間區間諸如period(2))內,記憶體控制器110可寫入資料DATA(i)(例如資料DATA(2)),使用表TB1來讀取資料DATA(i)(例如資料DATA(2)),以及使用表TB2來讀取資料DATA(i - 1)(例如資料DATA(1))。之後,記憶體控制器110可用增量諸如一來增加索引i。
在步驟 S13中,於當前時間區間諸如period(i)(例如:第三時間區間諸如period(3),或後續時間區間諸如period(4)、period(5)等中的一者)內,記憶體控制器110可寫入資料DATA(i),使用表TB1來讀取資料DATA(i),使用表TB2來讀取資料DATA(i - 1),以及使用表TB3來讀取資料DATA(i - 2)。之後,記憶體控制器110可用增量諸如一來增加索引i。
在步驟S14中,於當前時間區間諸如period(i)(例如:該第三時間區間諸如period(3),或後續時間區間諸如period(4)、period(5)等中的一者)內,記憶體控制器110可將資料DATA(i - 2)刷新為資料DATA_RF(i),以及使用表TB1來讀取資料DATA_RF(i)。
在步驟 S15中,記憶體控制器110可檢查是否i < 4。若i < 4,則進入步驟S13;否則,進入步驟S16。
在步驟S16中,於當前時間區間諸如period(i)(例如:第四時間區間諸如period(4),或後續時間區間諸如period(5)、period(6)等中的一者)內,記憶體控制器110可使用表TB2來讀取資料DATA_RF(i - 1)。
在步驟S17中,記憶體控制器110可檢查是否i < 5。若i < 5,則進入步驟S13;否則,進入步驟S18。
在步驟S18中,於當前時間區間諸如period(i)(例如第五時間區間諸如period(5),或後續時間區間諸如period(6)、period(7)等中的一者)內,記憶體控制器110可使用表TB3來讀取資料DATA_RF(i - 2)。請注意,於步驟S15、S17以及S18中的任何步驟至步驟S13的子流程中,記憶體控制器110可用增量諸如一來增加索引i。
在步驟S20中,於該第一時間區間諸如period(1)內,記憶體控制器110可進行背景掃描以更新表TB1。之後,記憶體控制器110可用增量諸如一來增加索引i。
在步驟 S21中,記憶體控制器110可檢查是否i < 3。若i < 3,則進入步驟S22;否則,進入步驟S23。
在步驟S22中,於當前時間區間諸如period(i)(例如該第二時間區間諸如period(2))內,記憶體控制器110可進行背景掃描以更新表TB1以及TB2。之後,記憶體控制器110可用增量諸如一來增加索引i。
在步驟S23中,於當前時間區間諸如period(i)(例如:該第三時間區間諸如period(3),或後續時間區間諸如period(4)、period(5)等中的一者)內,記憶體控制器110可進行背景掃描以更新表TB1、TB2以及TB3。之後,記憶體控制器110可用增量諸如一來增加索引i,接著,進入步驟S23以進行針對下一時間區間的操作。
由於表TB1、TB2以及TB3透過該背景處理中的背景掃描來被連續地更新,且由於從表TB1、TB2以及TB3選取以供於讀取目標資料(例如待讀取的資料DATA(i))的期間來使用的表對應於該目標資料的資料壽命,記憶體控制器110可依據這個表來準確地設定讀取電壓,且因此可在大多數狀況中透過N2處理來正確地取得該目標資料的每一位元。為了簡明起見,本實施例與前述實施例相仿的內容在此不重複贅述。
為了更好的理解,該方法可用第20圖所示的工作流程來說明,但本發明不限於此。依據某些實施例,一或多個步驟可於第20圖所示的工作流程中增加、刪除或修改。
基於該方法,本發明的設備(例如電子裝置10、記憶裝置100以及記憶體控制器110)能增強整體效能以及避免相關技術中的問題,諸如位元錯誤率提高、隨機讀取延遲增加、以及該資料保留問題所衍生出的某些相關問題。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置 50:主裝置 52:處理器 54:電源供應電路 100:記憶裝置 110:記憶體控制器 112:微處理器 112C:程式碼 112M:唯讀記憶體 114:控制邏輯電路 114E:ECC及隨機化器電路 114TD:表及資料刷新控制電路 116:隨機存取記憶體 118:傳輸介面電路 120:非揮發性記憶體 122-1,122-2~122-N:非揮發性記憶體元件 M(1, 1, 1)~M(Nx, Ny, Nz):記憶細胞 MBLS(1, 1)~MBLS(Nx, Ny):上方選擇電路 MSLS(1, 1)~MSLS(Nx, Ny):下方選擇電路 BL(1)~BL(Nx):位元線 WL(1, 1)~WL(Ny, Nz):字線 BLS(1)~BLS(Ny):上方選擇線 SLS(1)~SLS(Ny):下方選擇線 SL(1)~SL(Ny):源極線 PS2D(1)~PS2D(Ny):電路模組 S(1, 1)~S(Nx, Ny):次要電路模組 M(nx, ny, nz):記憶細胞 Mch:棒段 Md:(棒段Mch的)上側 Ms:(棒段Mch的)下側 Mfg:第一管狀局部結構 Mcg:第二管狀局部結構 Phase(0)~Phase(2):階段 S10~S23:步驟
第1圖為依據本發明一實施例之一電子裝置的示意圖。 第2圖為依據本發明一實施例之一三維(three-dimensional,3D)NAND型快閃記憶體的示意圖。 第3圖依據本發明一實施例繪示第2圖所示之三維NAND型快閃記憶體的某些局部結構。 第4圖依據本發明一實施例繪示第2圖所示之三維NAND型快閃記憶體的複數個記憶細胞中的一個記憶細胞的某些實施細節。 第5圖依據本發明一實施例繪示一閾電壓(threshold voltage,可簡稱Vth)追蹤控制方案。 第6圖繪示第5圖所示的閾電壓追蹤控制方案的某些實施細節。 第7圖依據本發明一實施例繪示如第5圖所示的閾電壓追蹤控制方案的某些復原層級(recovery stage)以及這些復原層級之間的關係。 第8圖依據本發明一實施例繪示第5圖所示的閾電壓追蹤控制方案的一測試流程。 第9圖依據本發明一實施例繪示透過第8圖所示的測試流程而取得的某些測試結果。 第10圖依據本發明一實施例繪示針對某一耐久循環(endurance cycle)諸如150個編程/抹除(program and erase,P/E)循環的TLC閾電壓分佈圖。 第11圖依據第10圖所示實施例繪示針對一較高耐久循環諸如5000個編程/抹除循環的TLC閾電壓分佈圖。 第12圖依據本發明一實施例繪示使用一背景掃描控制方案來處理的某些實體區塊。 第13圖依據本發明一實施例繪示針對一雜訊容限(noise margin)記錄控制方案的一TLC閾電壓分佈圖。 第14圖繪示對應於第13圖所示的TLC閾電壓分佈圖的谷位置及高度圖。 第15圖繪示第13圖所示的TLC閾電壓分佈圖中的一部分的波谷的某些硬解碼(hard-decoding,HD)通過範圍(pass range)。 第16圖依據本發明一實施例繪示透過一強化學習(reinforcement learning)控制方案從第10圖所示的TLC閾電壓分佈圖的谷資訊取得的某些最佳讀取點。 第17圖依據第16圖所示實施例繪示透過該強化學習控制方案從第11圖所示的TLC閾電壓分佈圖中的谷資訊取得的某些最佳讀取點。 第18圖依據本發明一實施例繪示指出資料保留改善的三組曲線。 第19圖依據本發明一實施例繪示一種藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法。 第20圖是依據本發明一實施例的如第19圖所示方法的工作流程。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
114E:ECC及隨機化器電路
114TD:表及資料刷新控制電路
116:隨機存取記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1,122-2~122-N:非揮發性記憶體元件

Claims (20)

  1. 一種藉助於機器學習來針對一記憶裝置的服務品質(quality of service,QoS)優化(optimization)進行存取控制的方法,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory)以及用來控制該非揮發性記憶體的存取的一記憶體控制器,該非揮發性記憶體包含至少一非揮發性記憶體元件,該方法包含: 對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊(valley information),以及依據該谷資訊進行基於一強化學習模型(reinforcement learning model)的機器學習,以透過基於該強化學習模型的該機器學習來預先準備多個表,以供用來從該非揮發性記憶體讀取資料,其中該多個表中的每一表包含一組讀取電壓,以及該組讀取電壓是從基於該強化學習模型的該機器學習取得; 於一第一時間區間內,寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料,其中該第一表是被選取作為該第一時間區間內用於該第一資料的一適當表;以及 於一第二時間區間內,使用該多個表中的一第二表來讀取該第一資料,其中該第二表是被選取作為該第二時間區間內用於該第一資料的該適當表,以及該第二時間區間是在一時間軸上的該第一時間區間的下一個時間區間。
  2. 如申請專利範圍第1項所述之方法,另包含: 於一第三時間區間內,使用該多個表中的一第三表來讀取該第一資料,其中該第三表是被選取作為該第三時間區間內用於該第一資料的該適當表,以及該第三時間區間是在該時間軸上的該第二時間區間的下一個時間區間。
  3. 如申請專利範圍第2項所述之方法,另包含: 於該第三時間區間內,對該第一資料進行資料刷新(refresh)。
  4. 如申請專利範圍第3項所述之方法,其中對該第一資料進行該資料刷新另包含: 將透過使用該第三表從至少一舊的實體位址剛被讀取的該第一資料寫入到至少一新的實體位址; 無效化(invalidate)於該至少一舊的實體位址的一儲存單元;以及 更新一邏輯對實體位址映射關係(logical-to-physical address mapping relationship),以將該第一資料刷新為位於該至少一新的實體位址的相同資料。
  5. 如申請專利範圍第3項所述之方法,其中對該第一資料進行該資料刷新另包含: 使用該第三表來從至少一舊的實體位址讀取該第一資料; 將該第一資料寫入到至少一新的實體位址; 無效化(invalidate)於該至少一舊的實體位址的一儲存單元;以及 更新一邏輯對實體位址映射關係(logical-to-physical address mapping relationship),以將該第一資料刷新為位於該至少一新的實體位址的相同資料。
  6. 如申請專利範圍第1項所述之方法,另包含: 於該第二時間區間內,寫入第二資料以及使用該第一表來讀取該第二資料,其中該第一表是被選取作為該第二時間區間內用於該第二資料的一適當表;以及 於一第三時間區間內,使用該第二表來讀取該第二資料,其中該第二表是被選取作為該第三時間區間內用於該第二資料的該適當表,以及該第三時間區間是在該時間軸上的該第二時間區間的下一個時間區間。
  7. 如申請專利範圍第6項所述之方法,另包含: 於一第四時間區間內,使用該多個表中的一第三表來讀取該第二資料,其中該第三表是被選取作為該第四時間區間內用於該第二資料的該適當表。
  8. 如申請專利範圍第7項所述之方法,另包含: 於該第四時間區間內,對該第二資料進行資料刷新(refresh)。
  9. 如申請專利範圍第8項所述之方法,其中對該第二資料進行該資料刷新另包含: 將透過使用該第三表從至少一舊的實體位址剛被讀取的該第二資料寫入到至少一新的實體位址; 無效化(invalidate)於該至少一舊的實體位址的一儲存單元;以及 更新一邏輯對實體位址映射關係(logical-to-physical address mapping relationship),以將該第二資料刷新為位於該至少一新的實體位址的相同資料。
  10. 如申請專利範圍第8項所述之方法,其中對該第二資料進行該資料刷新另包含: 使用該第三表來從至少一舊的實體位址讀取該第二資料; 將該第二資料寫入到至少一新的實體位址; 無效化(invalidate)於該至少一舊的實體位址的一儲存單元;以及 更新一邏輯對實體位址映射關係(logical-to-physical address mapping relationship),以將該第二資料刷新為位於該至少一新的實體位址的相同資料。
  11. 如申請專利範圍第1項所述之方法,其中針對該電壓分佈的多個波谷的其中的一個波谷,該谷資訊包含一谷位置(valley location)、一谷高度(valley height)以及一谷寬度(valley width)的資訊。
  12. 如申請專利範圍第11項所述之方法,其中該強化學習模型採用關於該谷高度以及該谷寬度的一權重函數(weighting function)。
  13. 如申請專利範圍第12項所述之方法,其中該權重函數具有對該谷高度的正相關,並且具有對該谷寬度的負相關。
  14. 如申請專利範圍第11項所述之方法,其中該谷寬度是一硬解碼(hard-decoding)通過範圍。
  15. 一記憶裝置,包含: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及 一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置的運作,其中該控制器包含: 一處理電路,用來依據來自一主裝置的複數個主裝置指令來控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體,其中: 該控制器對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊,並且依據該谷資訊進行基於一強化學習模型的機器學習,以透過基於該強化學習模型的該機器學習來預先準備多個表,以供用來從該非揮發性記憶體讀取資料,其中該多個表中的每一表包含一組讀取電壓,以及該組讀取電壓是從基於該強化學習模型的該機器學習取得; 於一第一時間區間內,該控制器寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料,其中該第一表是被選取作為該第一時間區間內用於該第一資料的一適當表;以及 於一第二時間區間內,該控制器使用該多個表中的一第二表來讀取該第一資料,其中該第二表是被選取作為該第二時間區間內用於該第一資料的該適當表,以及該第二時間區間是在一時間軸上的該第一時間區間的下一個時間區間。
  16. 如申請專利範圍第15項所述之記憶裝置,其中於一第三時間區間內,該控制器使用該多個表中的一第三表來讀取該第一資料,其中該第三表是被選取作為該第三時間區間內用於該第一資料的該適當表,以及該第三時間區間是在該時間軸上的該第二時間區間的下一個時間區間。
  17. 如申請專利範圍第16項所述之記憶裝置,其中於該第三時間區間內,該控制器對該第一資料進行資料刷新(refresh)。
  18. 一種記憶裝置的控制器,該記憶裝置包含該控制器以及一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該控制器包含: 一處理電路,用來依據來自一主裝置的複數個主裝置指令來控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體,其中: 該控制器對該非揮發性記憶體進行背景掃描以收集該非揮發性記憶體中的記憶細胞的電壓分佈的谷資訊,並且依據該谷資訊進行基於一強化學習模型的機器學習,以透過基於該強化學習模型的該機器學習來預先準備多個表,以供用來從該非揮發性記憶體讀取資料,其中該多個表中的每一表包含一組讀取電壓,以及該組讀取電壓是從基於該強化學習模型的該機器學習取得; 於一第一時間區間內,該控制器寫入第一資料以及使用該多個表中的一第一表來讀取該第一資料,其中該第一表是被選取作為該第一時間區間內用於該第一資料的一適當表;以及 於一第二時間區間內,該控制器使用該多個表中的一第二表來讀取該第一資料,其中該第二表是被選取作為該第二時間區間內用於該第一資料的該適當表,以及該第二時間區間是在一時間軸上的該第一時間區間的下一個時間區間。
  19. 如申請專利範圍第18項所述之控制器,其中於一第三時間區間內,該控制器使用該多個表中的一第三表來讀取該第一資料,其中該第三表是被選取作為該第三時間區間內用於該第一資料的該適當表,以及該第三時間區間是在該時間軸上的該第二時間區間的下一個時間區間。
  20. 如申請專利範圍第19項所述之控制器,其中於該第三時間區間內,該控制器對該第一資料進行資料刷新(refresh)。
TW109127041A 2019-08-19 2020-08-10 藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法、相關記憶裝置及其控制器 TWI729903B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/543,639 US10811075B1 (en) 2019-08-19 2019-08-19 Method for performing access control regarding quality of service optimization of memory device with aid of machine learning, associated memory device and controller thereof
US16/543,639 2019-08-19

Publications (2)

Publication Number Publication Date
TW202109537A TW202109537A (zh) 2021-03-01
TWI729903B true TWI729903B (zh) 2021-06-01

Family

ID=72838781

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109127041A TWI729903B (zh) 2019-08-19 2020-08-10 藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法、相關記憶裝置及其控制器

Country Status (3)

Country Link
US (1) US10811075B1 (zh)
CN (1) CN112394880B (zh)
TW (1) TWI729903B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058278A (ko) * 2020-10-30 2022-05-09 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
CN112492591B (zh) * 2020-11-06 2022-12-09 广东电网有限责任公司电力调度控制中心 一种电力物联网终端接入网络的方法及装置
US11630765B2 (en) * 2020-12-14 2023-04-18 Google Llc Flash translation layer design using reinforcement learning
KR20220105940A (ko) * 2021-01-21 2022-07-28 삼성전자주식회사 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
JP2022147448A (ja) 2021-03-23 2022-10-06 キオクシア株式会社 メモリシステム及びデータ管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013211B2 (en) * 2016-09-06 2018-07-03 Samsung Electronics Co., Ltd. Storage devices including nonvolatile memory devices and access methods for nonvolatile memory devices
US10216422B2 (en) * 2016-11-24 2019-02-26 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and access method for nonvolatile memory device
TWI657456B (zh) * 2018-05-14 2019-04-21 慧榮科技股份有限公司 用來於記憶裝置中藉助於機器學習來進行的記憶體存取管理之方法,記憶裝置及其控制器以及電子裝置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8274838B2 (en) * 2010-07-19 2012-09-25 Sandisk Technologies Inc. Programming non-volatile memory with bit line voltage step up
CN106170773A (zh) * 2014-01-09 2016-11-30 桑迪士克科技有限责任公司 用于裸芯上缓冲式非易失性存储器的选择性回拷
TWI559314B (zh) * 2014-12-27 2016-11-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI692771B (zh) * 2017-11-14 2020-05-01 慧榮科技股份有限公司 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
CN109445688B (zh) * 2018-09-29 2022-04-15 上海百功半导体有限公司 一种存储控制方法、存储控制器、存储设备及存储系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013211B2 (en) * 2016-09-06 2018-07-03 Samsung Electronics Co., Ltd. Storage devices including nonvolatile memory devices and access methods for nonvolatile memory devices
US10216422B2 (en) * 2016-11-24 2019-02-26 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and access method for nonvolatile memory device
TWI657456B (zh) * 2018-05-14 2019-04-21 慧榮科技股份有限公司 用來於記憶裝置中藉助於機器學習來進行的記憶體存取管理之方法,記憶裝置及其控制器以及電子裝置

Also Published As

Publication number Publication date
CN112394880B (zh) 2023-11-21
US10811075B1 (en) 2020-10-20
TW202109537A (zh) 2021-03-01
CN112394880A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
TWI729903B (zh) 藉助於機器學習來針對記憶裝置的服務品質優化進行存取控制的方法、相關記憶裝置及其控制器
US10535419B2 (en) Setting a default read signal based on error correction
US9442662B2 (en) Device and method for managing die groups
US10019376B2 (en) Memory system and operating method thereof
US10162544B2 (en) Memory system and operating method of memory system for controlling memory blocks divided into memory sub-blocks containing a plurality of memory pages
US9940063B2 (en) Memory system and operating method thereof
TWI760215B (zh) 用來藉助於資訊排列進行記憶裝置的存取管理的方法、記憶裝置及其控制器、以及電子裝置
US10025514B2 (en) Memory system and method of controlling nonvolatile memory
KR20130087230A (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법
US10534703B2 (en) Memory system and operation method thereof
US11334462B2 (en) Memory system and operating method thereof
US20230386570A1 (en) Methods of configuring a memory
US9582196B2 (en) Memory system
CN113010459A (zh) 存储器系统、存储器控制器以及操作存储器系统的方法
CN106406749B (zh) 存储系统及其操作方法
US10073628B2 (en) Memory system and operating method of memory system
US20170168722A1 (en) Memory system and operating method of memory system
US11538535B2 (en) Apparatus for rapid data destruction
US10042789B2 (en) Programming interruption management
US9977622B1 (en) Buffer operations in memory
CN111739573A (zh) 存储器系统及其操作方法
US20240071554A1 (en) Block family error avoidance bin scans after memory device power-on
CN115527590A (zh) 执行安全擦除的存储设备及其操作方法