TWI862428B - 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI862428B TWI862428B TW113107893A TW113107893A TWI862428B TW I862428 B TWI862428 B TW I862428B TW 113107893 A TW113107893 A TW 113107893A TW 113107893 A TW113107893 A TW 113107893A TW I862428 B TWI862428 B TW I862428B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- error bit
- unit
- memory control
- threshold
- Prior art date
Links
- 230000005055 memory storage Effects 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 40
- 230000008859 change Effects 0.000 claims description 16
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 238000003066 decision tree Methods 0.000 claims description 5
- 238000012417 linear regression Methods 0.000 claims description 5
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 238000012706 support-vector machine Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 2
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/12005—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1202—Word line control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元。所述方法包含:設定分別對應於多個實體抹除單元的多個預設讀取次數閾值;在背景操作中,響應於多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數;根據多個第一錯誤位元數判斷是否需要對第一實體抹除單元進行更新操作;響應於不需要對第一實體抹除單元進行更新操作,選擇多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測第一字元線的電壓分佈變化量;以及根據電壓分佈變化量計算第一實體抹除單元的新讀取次數閾值。
Description
本發明是有關於一種記憶體管理技術,且特別是有關於一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元。
智慧型手機、平板電腦及個人電腦在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。固態硬碟就是一種以快閃記憶體模組作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,當實體抹除單元中的一個實體程式化單元所儲存的資料被進行多次(例如,讀取次數達到十萬次至百萬次)讀取操作後,此實體程式化單元所儲存的資料很有可能會因為記憶胞被反覆地施加讀取電壓而產生錯誤位元或遺失,甚至還可能造成同一實體抹除單元中儲存於其他實體程式化單元中的資料產生錯誤位元或遺失。此現象一般稱為讀取干擾(read disturb)。
為了避免讀取干擾的現象,現今的記憶體儲存裝置可基於程式化/抹除循環(PE cycle)次數以分階段地生成多個固定的讀取次數閾值。然而,採用固定的讀取次數閾值會有一定的弊端。若是採用較為嚴苛的讀取次數閾值,會造成處理成本的浪費。若是採用較為寬鬆的讀取次數閾值,則無法即時進行預防讀取干擾的操作,而導致資料遺失(data loss)問題。因此,如何訂定合適的讀取次數閾值實為本發明領域技術人員所致力的課題之一。
有鑑於此,本發明提供一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元,可因應實際使用狀況自適應地調整實體抹除單元的讀取次數閾值,以有效地抑制讀取干擾發生的機率,並提升可複寫式非揮發性記憶體模組的效能。
本發明的範例實施例提供一種記憶體控制方法,其用於記憶體儲存裝置。所述記憶體儲存裝置包括可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元。所述記憶體控制方法包括:設定分別對應於所述多個實體抹除單元的多個預設讀取次數閾值;在背景操作(background operation)中,響應於所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取所述第一實體抹除單元中的多條字元線(word lines)以取得多個第一錯誤位元數;根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行更新(refresh)操作;響應於不需要對所述第一實體抹除單元進行所述更新操作,選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈(voltage distribution)變化量;以及根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值。
在本發明的一範例實施例中,其中根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行所述更新操作的步驟包括:判斷所述多個第一錯誤位元數是否皆小於第一閾值;以及響應於所述多個第一錯誤位元數皆小於所述第一閾值,判斷不需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,其中根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行所述更新操作的步驟包括:響應於至少一第一錯誤位元數大於或等於所述第一閾值,對具有所述至少一第一錯誤位元數的至少一字元線執行讀取重試(read retry)操作,以取得至少一第二錯誤位元數。
在本發明的一範例實施例中,其中根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行所述更新操作的步驟包括:判斷所述至少一第二錯誤位元數是否皆小於第二閾值;以及響應於所述至少一第二錯誤位元數皆小於所述第二閾值,判斷不需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,其中根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行所述更新操作的步驟包括:響應於所述至少一第二錯誤位元數的至少其中之一大於或等於所述第二閾值,判斷需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,其中根據所述電壓分佈變化量計算所述第一實體抹除單元的所述新讀取次數閾值的步驟包括:取得所述第一實體抹除單元的程式化/抹除循環次數,並根據所述程式化/抹除循環次數獲取閾值上限值。
在本發明的一範例實施例中,其中根據所述電壓分佈變化量計算所述第一實體抹除單元的所述新讀取次數閾值的步驟包括:根據所述電壓分佈變化量、所述讀取次數、所述程式化/抹除循環次數以及所述閾值上限值計算所述新讀取次數閾值。
在本發明的一範例實施例中,其中根據所述電壓分佈變化量計算所述第一實體抹除單元的所述新讀取次數閾值的步驟包括:通過閾值產生模型,根據所述程式化/抹除循環次數以及所述讀取次數生成預測電壓分佈變化量;以及比較所述電壓分佈變化量與所述預測電壓分佈變化量以計算所述新讀取次數閾值。
在本發明的一範例實施例中,其中所述閾值產生模型為支持向量機模型(Support Vector Machines,SVM)、決策樹模型、多項式回歸(Polynomial Regression)模型、線性回歸(Linear Regression)模型或遞迴神經網路(Recurrent Neural Network,RNN)模型。
在本發明的一範例實施例中,所述記憶體控制方法更包括:讀取分別對應於所述多條字元線的多個實體程式化單元以取得所述多個第一錯誤位元數。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以設定分別對應於所述多個實體抹除單元的多個預設讀取次數閾值。所述記憶體控制電路單元更用以在背景操作中,響應於所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取所述第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數。所述記憶體控制電路單元更用以根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行更新操作。所述記憶體控制電路單元更用以響應於不需要對所述第一實體抹除單元進行所述更新操作,選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量。所述記憶體控制電路單元更用以根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以判斷所述多個第一錯誤位元數是否皆小於第一閾值。所述記憶體控制電路單元更用以響應於所述多個第一錯誤位元數皆小於該第一閾值,判斷不需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以響應於至少一第一錯誤位元數大於或等於所述第一閾值,對具有所述至少一第一錯誤位元數的至少一字元線執行讀取重試操作,以取得至少一第二錯誤位元數。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以判斷所述至少一第二錯誤位元數是否皆小於第二閾值。所述記憶體控制電路單元更用以響應於所述至少一第二錯誤位元數皆小於所述第二閾值,判斷不需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以響應於所述至少一第二錯誤位元數的至少其中之一大於或等於所述第二閾值,判斷需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以取得所述第一實體抹除單元的程式化/抹除循環次數,並根據所述程式化/抹除循環次數獲取閾值上限值。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述電壓分佈變化量、所述讀取次數、所述程式化/抹除循環次數以及所述閾值上限值計算所述新讀取次數閾值。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以通過閾值產生模型根據所述程式化/抹除循環次數以及所述讀取次數生成預測電壓分佈變化量。所述記憶體控制電路單元更用以比較所述電壓分佈變化量與所述預測電壓分佈變化量以計算所述新讀取次數閾值。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以讀取分別對應於所述多條字元線的多個實體程式化單元以取得所述多個第一錯誤位元數。
本發明的範例實施例另提供一種記憶體控制電路單元,其用以控制可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元。所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面。所述記憶體管理電路用以設定分別對應於所述多個實體抹除單元的多個預設讀取次數閾值。所述記憶體管理電路更用以在背景操作中,響應於所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取所述第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數。所述記憶體管理電路更用以根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行更新操作。所述記憶體管理電路更用以響應於不需要對所述第一實體抹除單元進行所述更新操作,選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量。所述記憶體管理電路更用以根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值。
在本發明的一範例實施例中,所述記憶體管理電路更用以判斷所述多個第一錯誤位元數是否皆小於第一閾值。所述記憶體管理電路更用以響應於所述多個第一錯誤位元數皆小於所述第一閾值,判斷不需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,所述記憶體管理電路更用以響應於至少一第一錯誤位元數大於或等於所述第一閾值,對具有所述至少一第一錯誤位元數的至少一字元線執行讀取重試操作,以取得至少一第二錯誤位元數。
在本發明的一範例實施例中,所述記憶體管理電路更用以判斷所述至少一第二錯誤位元數是否皆小於第二閾值。所述記憶體管理電路更用以響應於所述至少一第二錯誤位元數皆小於所述第二閾值,判斷不需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,所述記憶體管理電路更用以響應於所述至少一第二錯誤位元數的至少其中之一大於或等於所述第二閾值,判斷需要對所述第一實體抹除單元進行所述更新操作。
在本發明的一範例實施例中,所述記憶體管理電路更用以取得所述第一實體抹除單元的程式化/抹除循環次數,並根據所述程式化/抹除循環次數獲取閾值上限值。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述電壓分佈變化量、所述讀取次數、所述程式化/抹除循環次數以及所述閾值上限值計算所述新讀取次數閾值。
在本發明的一範例實施例中,所述記憶體管理電路更用以通過閾值產生模型根據所述程式化/抹除循環次數以及所述讀取次數生成預測電壓分佈變化量。所述記憶體管理電路更用以比較所述電壓分佈變化量與所述預測電壓分佈變化量以計算所述新讀取次數閾值。
在本發明的一範例實施例中,所述記憶體管理電路更用以讀取分別對應於所述多條字元線的多個實體程式化單元以取得所述多個第一錯誤位元數。
基於上述,本發明的記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元可先分別對可複寫式非揮發性記憶體模組的多個實體抹除單元設置多個預設讀取次數閾值(例如是,多個較嚴苛的讀取次數閾值)。在背景模式(意即,記憶體儲存裝置處於休眠眠狀態)中,當一實體抹除單元的讀取次數大於其預設讀取次數閾值時,記憶體儲存裝置可判斷是否此實體抹除單元進行更新操作。若判斷需要進行更新操作,記憶體儲存裝置則對此實體抹除單元進行更新操作;反之,若判斷不需要進行更新操作,記憶體儲存裝置則藉由此實體抹除單元中具有最大錯誤位元數的字元線的電壓分佈變化量及其他關聯於此實體抹除單元的當前使用狀況的參數來計算新讀取次數閾值。
也就是說,本發明的記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元可因應實際使用狀況自適應地調整實體抹除單元的讀取次數閾值,以避免由較為嚴苛的讀取次數閾值所造成的處理成本的浪費及/或由較為寬鬆的讀取次數閾值所造成的資料遺失問題,可有效地抑制讀取干擾發生的機率,提升可複寫式非揮發性記憶體模組的效能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。記憶體儲存裝置可與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11可包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可耦接至系統匯流排(system bus)110。
在一範例實施例中,主機系統11可透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料儲存至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11可透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在一範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。
在一範例實施例中,記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,主機系統11為電腦系統。在一範例實施例中,主機系統11可為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。在一範例實施例中,記憶體儲存裝置10與主機系統11可分別包括圖3的儲存裝置30與系統31。
圖3是根據本發明的範例實施例所繪示的系統與儲存裝置的示意圖。
請參照圖3,儲存裝置30可與系統31搭配使用以儲存資料。例如,系統31可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統。例如,儲存裝置30可為系統31所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的範例實施例所繪示的記憶體儲存裝置的方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元41、記憶體控制電路單元42與可複寫式非揮發性記憶體模組43。
連接介面單元41用以將記憶體儲存裝置10耦接主機系統11。記憶體儲存裝置10可經由連接介面單元41與主機系統11通訊。在一範例實施例中,連接介面單元41是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準。在一範例實施例中,連接介面單元41亦可以是符合序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、通用序列匯流排(Universal Serial Bus, USB)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、MCP介面標準、MMC介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元41可與記憶體控制電路單元42封裝在一個晶片中,或者連接介面單元41是佈設於一包含記憶體控制電路單元42之晶片外。
記憶體控制電路單元42耦接至連接介面單元41與可複寫式非揮發性記憶體模組43。記憶體控制電路單元42用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組43中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組43用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組43可包括單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、二階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell, TLC) NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell, QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組43中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組43中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在一範例實施例中,可複寫式非揮發性記憶體模組43的記憶胞可構成多個實體程式化單元,並且此些實體程式化單元可構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit, LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit, MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在一範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元可為實體頁(page)或是實體扇(sector)。若實體程式化單元為實體頁,則此些實體程式化單元可包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存用戶資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在一範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖5是根據本發明的範例實施例所繪示的記憶體控制電路單元的方塊圖。
請參照圖5,記憶體控制電路單元42包括記憶體管理電路51、主機介面52及記憶體介面53。
記憶體管理電路51用以控制記憶體控制電路單元42的整體運作。具體來說,記憶體管理電路51具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路51的操作時,等同於說明記憶體控制電路單元42的操作。
在一範例實施例中,記憶體管理電路51的控制指令是以韌體型式來實作。例如,記憶體管理電路51具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路51的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組43的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路51具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元42被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組43中之控制指令載入至記憶體管理電路51的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路51的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路51包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組43的記憶胞或記憶胞群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組43下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組43中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組43下達讀取指令序列以從可複寫式非揮發性記憶體模組43中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組43下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組43中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組43的資料以及從可複寫式非揮發性記憶體模組43中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組43執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路51還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組43以指示執行相對應的操作。
主機介面52是耦接至記憶體管理電路51。記憶體管理電路51可透過主機介面52與主機系統11通訊。主機介面52可用以接收與識別主機系統11所傳送的指令與資料。例如,主機系統11所傳送的指令與資料可透過主機介面52來傳送至記憶體管理電路51。此外,記憶體管理電路51可透過主機介面52將資料傳送至主機系統11。在本範例實施例中,主機介面52是相容於PCI Express標準。然而,必須瞭解的是本發明不限於此,主機介面52亦可以是相容於SATA標準、PATA標準、IEEE 1394標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面53是耦接至記憶體管理電路51並且用以存取可複寫式非揮發性記憶體模組43。例如,記憶體管理電路51可透過記憶體介面53存取可複寫式非揮發性記憶體模組43。也就是說,欲寫入至可複寫式非揮發性記憶體模組43的資料會經由記憶體介面53轉換為可複寫式非揮發性記憶體模組43所能接受的格式。具體來說,若記憶體管理電路51要存取可複寫式非揮發性記憶體模組43,記憶體介面53會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路51產生並且透過記憶體介面53傳送至可複寫式非揮發性記憶體模組43。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元42還包括錯誤檢查與校正電路54、緩衝記憶體55及電源管理電路56。
錯誤檢查與校正電路54是耦接至記憶體管理電路51並且用以執行錯誤檢查與校正操作以確保資料的正確性。具體來說,當記憶體管理電路51從主機系統11中接收到寫入指令時,錯誤檢查與校正電路54會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路51會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組43中。之後,當記憶體管理電路51從可複寫式非揮發性記憶體模組43中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路54會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。
緩衝記憶體55是耦接至記憶體管理電路51並且用以暫存資料。電源管理電路56是耦接至記憶體管理電路51並且用以控制記憶體儲存裝置10的電源。
在一範例實施例中,圖4的可複寫式非揮發性記憶體模組43可包括快閃記憶體模組。在一範例實施例中,圖4的記憶體控制電路單元42可包括快閃記憶體控制器。在一範例實施例中,圖5的記憶體管理電路51可包括快閃記憶體管理電路。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
請參照圖6,記憶體管理電路51可將可複寫式非揮發性記憶體模組43中的實體單元610(0)~610(B)邏輯地分組至儲存區601與閒置(spare)區602。一個實體單元是指一個虛擬區塊(VB)。一個虛擬區塊可包括多個實體程式化單元。例如,一個虛擬區塊可包含一或多個實體抹除單元。
儲存區601中的實體單元610(0)~610(A)用以儲存使用者資料(例如來自圖1的主機系統11的使用者資料)。例如,儲存區601中的實體單元610(0)~610(A)可儲存有效(valid)資料與無效(invalid)資料。閒置區602中的實體單元610(A+1)~610(B)未儲存資料(例如有效資料)。例如,若某一個實體單元未儲存有效資料,則此實體單元可被關聯(或加入)至閒置區602。此外,閒置區602中的實體單元(或未儲存有效資料的實體單元)可被抹除。在寫入新資料時,一或多個實體單元可被從閒置區602中提取以儲存此新資料。在一範例實施例中,閒置區602亦稱為閒置池(free pool)。
記憶體管理電路51可配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)。在一範例實施例中,每一個邏輯單元對應一個邏輯位址。例如,一個邏輯位址可包括一或多個邏輯區塊位址(Logical Block Address, LBA)或其他的邏輯管理單元。
須注意的是,一個邏輯單元可被映射至一或多個實體單元。若某一實體單元當前有被某一邏輯單元映射,則表示此實體單元當前儲存的資料包含有效資料。反之,若某一實體單元當前未被任一邏輯單元映射,則表示此實體單元當前儲存的資料未包含任何有效資料。
記憶體管理電路51可將描述邏輯單元與實體單元之間的映射關係的管理資料(亦稱為邏輯至實體映射資訊)記錄於至少一邏輯至實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路51可根據此邏輯至實體映射表中的資訊執行對記憶體儲存裝置10的資料存取操作。
為了訂定合適的讀取次數閾值,本發明提供一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元,可因應實際使用狀況自適應地調整實體抹除單元的讀取次數閾值,以有效地抑制讀取干擾發生的機率,提升記憶體儲存裝置10的效能。
首先,記憶體管理電路51可設定分別對應於可複寫式非揮發性記憶體模組43中的多個實體抹除單元的多個預設讀取次數閾值。具體來說,記憶體管理電路51可先採用較嚴苛的預設讀取次數閾值,以避免不能及時進行預防讀取干擾的操作而導致的資料遺失等問題。
接下來,在背景操作中(例如,記憶體儲存裝置10處於休眠狀態),當所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值時,記憶體管理電路51可執行如圖7所示的記憶體控制方法。
圖7是根據本發明的範例實施例所繪示的記憶體控制方法的流程圖。請參照圖7。
在步驟S701中,記憶體管理電路51可讀取所述第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數。具體來說,記憶體管理電路51可讀取分別對應於所述多條字元線的多個實體程式化單元以取得所述多個第一錯誤位元數。
在步驟S702中,記憶體管理電路51可判斷所述多個第一錯誤位元數是否皆小於第一閾值。若是所述多個第一錯誤位元數皆小於所述第一閾值,則進入步驟S703;反之,若是至少一第一錯誤位元數大於或等於所述第一閾值,則進入步驟S706。
在步驟S703中,記憶體管理電路51可判斷不需要對所述第一實體抹除單元進行更新操作。
接下來,在步驟S704中,記憶體管理電路51可選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量。
據此,在步驟S705中,記憶體管理電路51可根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值。
具體來說,記憶體管理電路51可取得所述第一實體抹除單元的程式化/抹除循環次數,並根據所述程式化/抹除循環次數獲取閾值上限值。所述閾值上限值可作為一校正參數,用以限定所述新讀取次數閾值的上限值。
在一範例實施例中,記憶體管理電路51可根據所述電壓分佈變化量、所述讀取次數、所述程式化/抹除循環次數以及所述閾值上限值計算所述新讀取次數閾值。進一步說明,記憶體管理電路51可收集關聯於所述第一實體抹除單元的當前使用狀況的多個參數,意即,所述讀取次數以及所述程式化/抹除循環次數。接下來,記憶體管理電路51可根據所述讀取次數以及所述程式化/抹除循環次數計算一預期電壓分佈變化量。
若是所述電壓分佈變化量大於或等於所述預期電壓分佈變化量,記憶體管理電路51可調降所述預設讀取次數閾值,以產生所述新讀取次數閾值;反之,若是所述電壓分佈變化量小於所述預期電壓分佈變化量,記憶體管理電路51可提高所述預設讀取次數閾值,並基於所述閾值上限值產生所述新讀取次數閾值。
在另一範例實施例中,記憶體管理電路51可通過一閾值產生模型(未繪示)根據所述程式化/抹除循環次數以及所述讀取次數生成一預測電壓分佈變化量。在本範例實施例中,閾值產生模型可例如是支持向量機模型(Support Vector Machines,SVM)、決策樹模型、多項式回歸(Polynomial Regression)模型、線性回歸(Linear Regression)模型或遞迴神經網路(Recurrent Neural Network,RNN)模型或是上述二者以上的組合。
接下來,記憶體管理電路51可比較所述電壓分佈變化量與所述預測電壓分佈變化量以計算所述新讀取次數閾值。具體來說,記憶體管理電路51可比較所述電壓分佈變化量與所述預測電壓分佈變化量以獲得一參考變量。
最後,記憶體管理電路51可根據所述參考變量及所述閾值上限值產生所述新讀取次數閾值。
據此,記憶體管理電路51可因應所述第一實體抹除單元的實際使用狀況自適應地調整所述第一實體抹除單元的讀取次數閾值。如此一來,記憶體管理電路51可提供最適合的讀取次數閾值(意即,所述新讀取次數閾值)給所述第一實體抹除單元,以避免提供一嚴苛的讀取次數閾值所造成的處理成本的浪費及/或提供一寬鬆的讀取次數閾值所造成的資料遺失(data loss)問題,以提升可複寫式非揮發性記憶體模組43的效能。
另一方面,在步驟S706中,記憶體管理電路51可對具有所述至少一第一錯誤位元數的至少一字元線執行讀取重試操作,以取得至少一第二錯誤位元數。
接下來,在步驟S707中,記憶體管理電路51可判斷所述第二錯誤位元數是否皆小於第二閾值。若是所述至少一第二錯誤位元數皆小於所述第二閾值,則進入步驟S703,並依序完成步驟S704以及步驟S705,以取得所述第一實體抹除單元的所述新讀取次數閾值。關於步驟S703至步驟S705的實施細節已詳述於前述內容,故不在此重述。
反之,若是所述至少一第二錯誤位元數的至少其中之一大於或等於所述第二閾值,則進入步驟S708。
在一範例實施例中,所述第一閾值大於或等於所述第二閾值。在另一範例實施立中,所述第一閾值小於所述第二閾值。關於所述第一閾值及所述第二閾值的設定,本發明不加以限制。
在步驟S708中,記憶體管理電路51可判斷需要對所述第一實體抹除單元進行所述更新操作。
最後,在步驟S709中,記憶體管理電路51可對所述第一實體抹除單元進行所述更新操作。具體來說,記憶體管理電路51可將所述第一實體抹除單元中儲存的資料複製至可複寫式非揮發性記憶體模組43中的其他實體抹除單元,以避免讀取干擾的發生。
圖8是根據本發明的範例實施例所繪示的記憶體控制方法的流程圖。請參照圖8。
在步驟S801中,設定分別對應於多個實體抹除單元的多個預設讀取次數閾值。
在步驟S802中,在背景操作中,響應於所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取所述第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數。
在步驟S803中,根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行更新操作。
在步驟S804中,響應於不需要對所述第一實體抹除單元進行所述更新操作,選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量。
在步驟S805中,根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值。
關於步驟S801至S805的實施細節,在前述的範例實施例中已有詳細的說明,故不再此重述。值得注意的是,圖8中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。
另外,圖8的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明的記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元可在背景模式中,當一實體抹除單元的讀取次數大於其預設讀取次數閾值時,記憶體儲存裝置可判斷是否此實體抹除單元進行更新操作。若判斷需要進行更新操作,記憶體儲存裝置則對此實體抹除單元進行更新操作;反之,若判斷不需要進行更新操作,記憶體儲存裝置則藉由此實體抹除單元中具有最大錯誤位元數的字元線的電壓分佈變化量及其他關聯於此實體抹除單元的當前使用狀況的參數來計算新讀取次數閾值。
換言之,本發明的記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元可因應實際使用狀況自適應地調整實體抹除單元的讀取次數閾值,以避免由較為嚴苛的讀取次數閾值所造成的處理成本的浪費及/或由較為寬鬆的讀取次數閾值所造成的資料遺失問題,可有效地抑制讀取干擾發生的機率,提升可複寫式非揮發性記憶體模組的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10:記憶體儲存裝置
11:主機系統
110:系統匯流排
111:處理器
112:隨機存取記憶體
113:唯讀記憶體
114:資料傳輸介面
12:輸入/輸出(I/O)裝置
20:主機板
201:隨身碟
202:記憶卡
203:固態硬碟
204:無線記憶體儲存裝置
205:全球定位系統模組
206:網路介面卡
207:無線傳輸裝置
208:鍵盤
209:螢幕
210:喇叭
30:儲存裝置
31:系統
32:SD卡
33:CF卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多晶片封裝儲存裝置
41:連接介面單元
42:記憶體控制電路單元
43:可複寫式非揮發性記憶體模組
51:記憶體管理電路
52:主機介面
53:記憶體介面
54:錯誤檢查與校正電路
55:緩衝記憶體
56:電源管理電路
601:儲存區
602:閒置區
610(0)~610(B):實體單元
612(0)~612(C):邏輯單元
S701:步驟(讀取所述第一實體抹除單元中多條字元線以取的多個第一錯誤位元數)
S702:步驟(所述多個第一錯誤位元數是否皆小於第一閾值?)
S703:步驟(判斷不需要對所述第一實體抹除單元進行更新操作)
S704:步驟(選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量)
S705:步驟(根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值)
S706:步驟(對具有所述至少一第一錯誤位元數的至少一字元線執行讀取重試操作,以取得至少一第二錯誤位元數)
S707:步驟(所述至少一第二錯誤位元數是否皆小於第二閾值?)
S708:步驟(判斷需要對所述第一實體抹除單元進行更新操作)
S709:步驟(將所述第一實體抹除單元進行更新操作)
S801:步驟(設定分別對應於多個實體抹除單元的多個預設讀取次數閾值)
S802:步驟(在背景操作中,響應於所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取所述第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數)
S803:步驟(根據所述多個第一錯誤位元數判斷是否需要對所述第一實體抹除單元進行更新操作)
S804:步驟(響應於不需要對所述第一實體抹除單元進行所述更新操作,選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量)
S805:步驟(根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值)
圖1是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的範例實施例所繪示的系統與儲存裝置的示意圖。
圖4是根據本發明的範例實施例所繪示的記憶體儲存裝置的方塊圖。
圖5是根據本發明的範例實施例所繪示的記憶體控制電路單元的方塊圖。
圖6是根據本發明的範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖7是根據本發明的範例實施例所繪示的記憶體控制方法的流程圖。
圖8是根據本發明的範例實施例所繪示的記憶體控制方法的流程圖。
S801:步驟(設定分別對應於多個實體抹除單元的多個預設讀取次數閾值)
S802:步驟(在背景操作中,響應於所述多個實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取所述第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數)
S803:步驟(根據所述多個第一錯誤位元數判斷是否需要對所述第
一實體抹除單元進行更新操作)
S804:步驟(響應於不需要對所述第一實體抹除單元進行所述更新操作,選擇所述多條字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測所述第一字元線的電壓分佈變化量)
S805:步驟(根據所述電壓分佈變化量計算所述第一實體抹除單元的新讀取次數閾值)
Claims (27)
- 一種記憶體控制方法,用於記憶體儲存裝置,其中該記憶體儲存裝置包括一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,且該記憶體控制方法包括:設定分別對應於該些實體抹除單元的多個預設讀取次數閾值;在背景操作中,響應於該些實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取該第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數;根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行更新(refresh)操作;響應於不需要對該第一實體抹除單元進行該更新操作,選擇該些字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測該第一字元線的電壓分佈(voltage distribution)變化量;以及根據該電壓分佈變化量計算該第一實體抹除單元的新讀取次數閾值,其中根據該電壓分佈變化量計算該第一實體抹除單元的該新讀取次數閾值的步驟更包括:取得該第一實體抹除單元的程式化/抹除循環次數,並根據該程式化/抹除循環次數獲取閾值上限值。
- 如請求項1所述的記憶體控制方法,其中根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行該更新操作的步驟包括:判斷該些第一錯誤位元數是否皆小於第一閾值;以及響應於該些第一錯誤位元數皆小於該第一閾值,判斷不需要對該第一實體抹除單元進行該更新操作。
- 如請求項2所述的記憶體控制方法,其中根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行該更新操作的步驟更包括:響應於至少一第一錯誤位元數大於或等於該第一閾值,對具有該至少一第一錯誤位元數的至少一字元線執行讀取重試(read retry)操作,以取得至少一第二錯誤位元數。
- 如請求項3所述的記憶體控制方法,其中根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行該更新操作的步驟更包括:判斷該至少一第二錯誤位元數是否皆小於第二閾值;以及響應於該至少一第二錯誤位元數皆小於該第二閾值,判斷不需要對該第一實體抹除單元進行該更新操作。
- 如請求項4所述的記憶體控制方法,其中根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行該更新操作的步驟更包括: 響應於該至少一第二錯誤位元數的至少其中之一大於或等於該第二閾值,判斷需要對該第一實體抹除單元進行該更新操作。
- 如請求項1所述的記憶體控制方法,其中根據該電壓分佈變化量計算該第一實體抹除單元的該新讀取次數閾值的步驟更包括:根據該電壓分佈變化量、該讀取次數、該程式化/抹除循環次數以及該閾值上限值計算該新讀取次數閾值。
- 如請求項1所述的記憶體控制方法,其中根據該電壓分佈變化量計算該第一實體抹除單元的該新讀取次數閾值的步驟更包括:通過閾值產生模型根據該程式化/抹除循環次數以及該讀取次數生成預測電壓分佈變化量;以及比較該電壓分佈變化量與該預測電壓分佈變化量以計算該新讀取次數閾值。
- 如請求項7所述的記憶體控制方法,其中該閾值產生模型為支持向量機模型(Support Vector Machines,SVM)、決策樹模型、多項式回歸(Polynomial Regression)模型、線性回歸(Linear Regression)模型以及遞迴神經網路(Recurrent Neural Network,RNN)模型的其中之一。
- 如請求項1所述的記憶體控制方法,更包括:讀取分別對應於該些字元線的多個實體程式化單元以取得該些第一錯誤位元數。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以設定分別對應於該些實體抹除單元的多個預設讀取次數閾值,該記憶體控制電路單元更用以在背景操作中,響應於該些實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取該第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數,該記憶體控制電路單元更用以根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行更新操作,該記憶體控制電路單元更用以響應於不需要對該第一實體抹除單元進行該更新操作,選擇該些字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測該第一字元線的電壓分佈變化量,該記憶體控制電路單元更用以根據該電壓分佈變化量計算該第一實體抹除單元的新讀取次數閾值,並且該記憶體控制電路單元更用以取得該第一實體抹除單元的程式化/抹除循環次數,並根據該程式化/抹除循環次數獲取閾值上限值。
- 如請求項10所述的記憶體儲存裝置,該記憶體控制電路單元更用以判斷該些第一錯誤位元數是否皆小於第一閾值,並且該記憶體控制電路單元更用以響應於該些第一錯誤位元數皆小於該第一閾值,判斷不需要對該第一實體抹除單元進行該更新操作。
- 如請求項11所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以響應於至少一第一錯誤位元數大於或等於該第一閾值,對具有該至少一第一錯誤位元數的至少一字元線執行讀取重試(read retry)操作,以取得至少一第二錯誤位元數。
- 如請求項12所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以判斷該至少一第二錯誤位元數是否皆小於第二閾值,並且該記憶體控制電路單元更用以響應於該至少一第二錯誤位元數皆小於該第二閾值,判斷不需要對該第一實體抹除單元進行該更新操作。
- 如請求項13所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以響應於該至少一第二錯誤位元數的至少其中之一大於或等於該第二閾值,判斷需要對該第一實體抹除單元進行該更新操作。
- 如請求項10所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該電壓分佈變化量、該讀取次數、該程式化/抹除循環次數以及該閾值上限值計算該新讀取次數閾值。
- 如請求項10所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以通過閾值產生模型根據該程式化/抹除循環次數以及該讀取次數生成預測電壓分佈變化量,並且該記憶體控制電路單元更用以比較該電壓分佈變化量與該預測電壓分佈變化量以計算該新讀取次數閾值。
- 如請求項16所述的記憶體儲存裝置,其中該閾值產生模型為支持向量機模型(Support Vector Machines,SVM)、決策樹模型、多項式回歸(Polynomial Regression)模型、線性回歸(Linear Regression)模型以及遞迴神經網路(Recurrent Neural Network,RNN)模型的其中之一。
- 如請求項10所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以讀取分別對應於該些字元線的多個實體程式化單元以取得該些第一錯誤位元數。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,且該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以設定分別對應於該些實體抹除單元的多個預設讀取次數閾值,該記憶體管理電路更用以在背景操作中,響應於該些實體抹除單元中的第一實體抹除單元的讀取次數大於其對應的預設讀取次數閾值,讀取該第一實體抹除單元中的多條字元線以取得多個第一錯誤位元數,該記憶體管理電路更用以根據該些第一錯誤位元數判斷是否需要對該第一實體抹除單元進行更新操作,該記憶體管理電路更用以響應於不需要對該第一實體抹除單元進行該更新操作,選擇該些字元線中具有最大的第一錯誤位元數的第一字元線,並且偵測該第一字元線的電壓分佈變化量,該記憶體管理電路更用以根據該電壓分佈變化量計算該第一實體抹除單元的新讀取次數閾值,並且該記憶體管理電路更用以取得該第一實體抹除單元的程式化/抹除循環次數,並根據該程式化/抹除循環次數獲取閾值上限值。
- 如請求項19所述的記憶體控制電路單元,該記憶體管理電路更用以判斷該些第一錯誤位元數是否皆小於第一閾值,並且該記憶體管理電路更用以響應於該些第一錯誤位元數皆小於該第一閾值,判斷不需要對該第一實體抹除單元進行該更新操作。
- 如請求項20所述的記憶體控制電路單元,其中該記憶體管理電路更用以響應於至少一第一錯誤位元數大於或等於該第一閾值,對具有該至少一第一錯誤位元數的至少一字元線執行讀取重試操作,以取得至少一第二錯誤位元數。
- 如請求項21所述的記憶體控制電路單元,其中該記憶體管理電路更用以判斷該至少一第二錯誤位元數是否皆小於第二閾值,並且該記憶體管理電路更用以響應於該至少一第二錯誤位元數皆小於該第二閾值,判斷不需要對該第一實體抹除單元進行該更新操作。
- 如請求項22所述的記憶體控制電路單元,其中該記憶體管理電路更用以響應於該至少一第二錯誤位元數的至少其中之一大於或等於該第二閾值,判斷需要對該第一實體抹除單元進行該更新操作。
- 如請求項19所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該電壓分佈變化量、該讀取次數、該程式化/抹除循環次數以及該閾值上限值計算該新讀取次數閾值。
- 如請求項19所述的記憶體控制電路單元,其中該記憶體管理電路更用以通過閾值產生模型根據該程式化/抹除循環次數以及該讀取次數生成預測電壓分佈變化量,並且 該記憶體管理電路更用以比較該電壓分佈變化量與該預測電壓分佈變化量以計算該新讀取次數閾值。
- 如請求項25所述的記憶體控制電路單元,其中該閾值產生模型為支持向量機模型(Support Vector Machines,SVM)、決策樹模型、多項式回歸(Polynomial Regression)模型、線性回歸(Linear Regression)模型以及遞迴神經網路(Recurrent Neural Network,RNN)模型的其中之一。
- 如請求項19所述的記憶體控制電路單元,其中該記憶體管理電路更用以讀取分別對應於該些字元線的多個實體程式化單元以取得該些第一錯誤位元數。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2024101023127 | 2024-01-25 | ||
CN202410102312.7A CN117636967B (zh) | 2024-01-25 | 2024-01-25 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Publications (1)
Publication Number | Publication Date |
---|---|
TWI862428B true TWI862428B (zh) | 2024-11-11 |
Family
ID=90034226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW113107893A TWI862428B (zh) | 2024-01-25 | 2024-03-05 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12147674B1 (zh) |
CN (1) | CN117636967B (zh) |
TW (1) | TWI862428B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661233A (zh) * | 2022-03-18 | 2022-06-24 | 合肥兆芯电子有限公司 | 表格排序方法、存储器存储装置及存储器控制电路单元 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120221772A1 (en) * | 2011-02-24 | 2012-08-30 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, systems including non-volatile memory read threshold voltage determination |
TWI569273B (zh) * | 2014-05-20 | 2017-02-01 | 創見資訊股份有限公司 | 非揮發性記憶體裝置讀取干擾管理方法 |
TWI796882B (zh) * | 2021-12-20 | 2023-03-21 | 群聯電子股份有限公司 | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7808831B2 (en) * | 2008-06-30 | 2010-10-05 | Sandisk Corporation | Read disturb mitigation in non-volatile memory |
CN105022695A (zh) * | 2014-04-21 | 2015-11-04 | 群联电子股份有限公司 | 数据存储方法、存储器控制电路单元与存储器存储装置 |
CN106681653B (zh) * | 2016-09-14 | 2019-10-25 | 合肥兆芯电子有限公司 | 存储器抹除方法、存储器控制电路单元及存储器存储装置 |
KR102687216B1 (ko) * | 2016-10-12 | 2024-07-22 | 삼성전자주식회사 | 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치 |
US10204693B2 (en) * | 2016-12-31 | 2019-02-12 | Western Digital Technologies, Inc. | Retiring computer memory blocks |
CN108461107B (zh) * | 2017-02-21 | 2021-09-28 | 北京忆恒创源科技股份有限公司 | 读阈值跟踪方法与装置 |
US10908988B2 (en) * | 2017-04-03 | 2021-02-02 | Hitachi, Ltd. | Storage apparatus |
JP2019168937A (ja) * | 2018-03-23 | 2019-10-03 | 東芝メモリ株式会社 | メモリシステム、制御方法及びコントローラ |
TWI661427B (zh) * | 2018-04-02 | 2019-06-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
US10691377B2 (en) * | 2018-09-21 | 2020-06-23 | Micron Technology, Inc. | Adjusting scan event thresholds to mitigate memory errors |
TWI784224B (zh) * | 2019-12-23 | 2022-11-21 | 大陸商合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
JP2021140847A (ja) * | 2020-03-05 | 2021-09-16 | キオクシア株式会社 | 半導体記憶装置 |
US11972822B2 (en) * | 2021-09-24 | 2024-04-30 | Sandisk Technologies Llc | Programmable ECC for MRAM mixed-read scheme |
US12230315B2 (en) * | 2022-08-12 | 2025-02-18 | Micron Technology, Inc. | Model for predicting memory system performance |
US12067267B2 (en) * | 2022-12-16 | 2024-08-20 | Macronix International Co., Ltd. | Managing data reliability in semiconductor devices |
CN115933998B (zh) * | 2023-02-16 | 2023-05-09 | 北京得瑞领新科技有限公司 | 获取最优判决电平的方法、装置、存储设备及存储介质 |
-
2024
- 2024-01-25 CN CN202410102312.7A patent/CN117636967B/zh active Active
- 2024-03-05 TW TW113107893A patent/TWI862428B/zh active
- 2024-07-01 US US18/761,237 patent/US12147674B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120221772A1 (en) * | 2011-02-24 | 2012-08-30 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, systems including non-volatile memory read threshold voltage determination |
TWI569273B (zh) * | 2014-05-20 | 2017-02-01 | 創見資訊股份有限公司 | 非揮發性記憶體裝置讀取干擾管理方法 |
TWI796882B (zh) * | 2021-12-20 | 2023-03-21 | 群聯電子股份有限公司 | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
CN117636967A (zh) | 2024-03-01 |
CN117636967B (zh) | 2024-04-30 |
US12147674B1 (en) | 2024-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI802068B (zh) | 記憶體效能優化方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI862428B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI722490B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI813498B (zh) | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI653632B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI810865B (zh) | 表格排序方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI757216B (zh) | 溫度控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI712886B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI804308B (zh) | 基於寫入行為預測的寫入控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI864969B (zh) | 資料儲存方法、主機系統及資料儲存系統 | |
TWI840148B (zh) | 記憶體的性能匹配方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI867977B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI856268B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI854523B (zh) | 記憶體操作管控方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
TWI810719B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112445418B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI726541B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN118550460A (zh) | 装置控制方法、存储器存储装置及存储器控制电路单元 | |
CN118915966A (zh) | 平均磨损方法、存储器存储装置及存储器控制电路单元 |