TWI814352B - 使用最佳化讀取電壓表以讀取資料的方法及電腦程式產品及裝置 - Google Patents
使用最佳化讀取電壓表以讀取資料的方法及電腦程式產品及裝置 Download PDFInfo
- Publication number
- TWI814352B TWI814352B TW111115126A TW111115126A TWI814352B TW I814352 B TWI814352 B TW I814352B TW 111115126 A TW111115126 A TW 111115126A TW 111115126 A TW111115126 A TW 111115126A TW I814352 B TWI814352 B TW I814352B
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- flash memory
- data
- reading
- nand flash
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004590 computer program Methods 0.000 title claims abstract description 6
- 238000005457 optimization Methods 0.000 title abstract description 6
- 230000007613 environmental effect Effects 0.000 claims abstract description 41
- 230000007246 mechanism Effects 0.000 claims abstract description 12
- 238000003860 storage Methods 0.000 claims description 23
- 239000010410 layer Substances 0.000 claims 6
- 238000013500 data storage Methods 0.000 claims 2
- 239000002356 single layer Substances 0.000 claims 2
- 238000001914 filtration Methods 0.000 claims 1
- 230000001960 triggered effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 239000007787 solid Substances 0.000 description 11
- 238000013403 standard screening design Methods 0.000 description 8
- 238000013480 data collection Methods 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 7
- 238000004242 micellar liquid chromatography Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 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/26—Sensing or reading circuits; Data output 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/08—Address circuits; Decoders; Word-line control 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Stored Programmes (AREA)
Abstract
本發明涉及一種使用最佳化讀取電壓表以讀取資料的方法、電腦程式產品和裝置。該方法由閃存控制器的微控制器單元執行,包含:依據NAND閃存模組的目前環境參數和最佳化讀取電壓表的內容決定特定記憶單元類型的一組讀取電壓,其中,所述最佳化讀取電壓表包含多筆紀錄,每筆所述紀錄包含一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數;以及以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。通過最佳化讀取電壓表的使用,可降低啟動讀取重試機制的次數。
Description
本發明涉及儲存裝置,尤指一種使用最佳化讀取電壓表以讀取資料的方法、電腦程式產品及裝置。
閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。提昇資料的讀取正確率,一直是影響閃存控制器的系統整體效能的重要課題。因此.本發明提出一種使用最佳化讀取電壓表以讀取資料的方法、產品電腦程式及裝置,用於提升資料的讀取正確率。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種使用最佳化讀取電壓表以讀取資料的方法,由閃
存控制器的微控制器單元執行,包含:依據NAND閃存模組的目前環境參數和最佳化讀取電壓表的內容決定特定記憶單元類型的一組讀取電壓,其中,所述最佳化讀取電壓表包含多筆紀錄,每筆所述紀錄包含一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數;以及以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。
本說明書另涉及一種電腦程式產品,包含程式碼。當閃存控制器的微控制器單元執行所述程式碼時,實施如上所述的使用最佳化讀取電壓表以讀取資料的方法。
本說明書更另涉及一種使用最佳化讀取電壓表以讀取資料的裝置,包含:閃存介面,耦接NAND閃存模組;以及微控制器單元,耦接所述閃存介面。微控制器單元用於依據所述NAND閃存模組的目前環境參數和最佳化讀取電壓表的內容決定特定記憶單元類型的一組讀取電壓,其中,所述最佳化讀取電壓表包含多筆紀錄,每筆所述紀錄包含一組讀取電壓參數,和所述組讀取電壓參數關聯到的環境參數;以及驅動所述閃存介面以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。
上述實施例的優點之一,通過最佳化讀取電壓表的使用,可降低啟動讀取重試機制的次數。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
100:網路
112:個人電腦
114:手機
116:平板電腦
120:雲端儲存系統
130:伺服器
20:運算設備
210:處理單元
212:資料搜集和反饋模組
214:表格更新啟動模組
220:NAND快閃儲存裝置
230:NAND閃存模組
240:閃存控制器
242:資料讀取監視模組
244:回報模組
246:表格更新模組
250:隨機存取記憶體
260:通訊介面
310:閃存介面
331:介面
333#0~333#15:NAND閃存單元
CH#0~CH#3:通道
CE#0~CE#3:致能訊號
410:處理單元
412:資料搜集和反饋模組
414:表格更新啟動模組
420#0~420#n:NAND快閃儲存裝置(固態硬碟)
430:RAID控制器
450:隨機存取記憶體
460:通訊介面
S510~S550:方法步驟
S605~S610:方法步驟
710:請求
720:回覆
730:資料讀取交易
750:讀取效能資料處理模組
810:表格傳遞模組
820,830:請求
圖1為依據本發明實施例的網路環境的示意圖。
圖2為依據本發明實施例的運算設備的方塊圖。
圖3為依據本發明實施例的NAND閃存模組的示意圖。
圖4為依據本發明實施例的雲端儲存系統的方塊圖。
圖5為依據一些實施方式的資料讀取方法的流程圖。
圖6為依據本發明實施例的資料讀取方法的流程圖。
圖7為依據本發明實施例的讀取效能資料的搜集與回報的順序圖。
圖8為依據本發明實施例的更新最佳化讀取電壓表的順序圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。
本發明提出一種動態更新最佳化讀取電壓表(Optimization Read Voltage(RV)Table)的機制,可應用在網路環境中的運算設備和雲端儲存系統中的NAND閃存儲存裝置,而最佳化讀取電壓表使用在從NAND閃存儲存裝置讀取資料的過程中。NAND閃存儲存裝置可為NAND閃存卡、NAND閃存記憶體模組、固態硬碟(Solid State Drive,SSD)等。參考圖1,運算設備可以是個人電腦112、手機114、平板電腦116、筆記型電腦(Laptop PC)、數位相機、數位攝
影機,或者其他的消費性電子產品,其中配備NAND閃存卡、NAND閃存記憶體模組、固態硬碟,或者以上的任意組合,用於儲存多樣的使用者資料,例如數位文件、高解析度影像、視訊檔案等。運算設備可通過網路100上傳多樣的使用者資料到雲端儲存系統120並儲存,以及從雲端儲存系統120下載使用者資料,讓各種應用程式可載入並加以處理。雲端儲存系統120可包含一個或多個獨立磁碟冗餘陣列(Redundant Array of Independent Disks,RAID),並且每個獨立磁碟冗餘陣列包含數個固態硬碟。
參考圖2所示的運算設備20(例如個人電腦112、手機114、平板電腦116)的硬體架構的實施例。運算設備20中可設置處理單元210、NAND快閃儲存裝置220、隨機存取記憶體(Random Access Memory,RAM)250和通訊介面260,並且通過匯流排架構彼此連接。處理單元210(又可稱為主機端,Host Side),可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。RAM 250可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於儲存執行過程中需要的資料,例如,變數、資料表等。通訊介面260可為區域網路(Local Area Network,LAN)模組、無線區域網路模組、藍芽模組、2G/3G/4G/5G電信通訊模組,或者上述模組的任意組合,用於通過網路100和閃存研究實驗室中的伺服器130通訊。NAND快閃儲存裝置220(又可稱為裝置端,Device Side)包含NAND閃存模組230和閃存控制器240,閃存控制器240用於依據處理單元210發出的命令來存取NAND閃存模組230中的資料。詳細來說,閃存控制器240可包含微控制器單元(Microcontroller Unit,MCU),並且當載入和執行適當程式碼時,
和閃存控制器240中的其他元件協作已完成特定功能。例如,MCU驅動主機介面(Host Interface)從處理單元210接收主機命令和必要的使用者資料,並且根據主機命令驅動閃存介面(Flash Interface)以從NAND閃存模組230的指定位址讀取資料,寫入資料到NAND閃存模組230的指定位址,抹寫NAND閃存模組230的指定位址的資料等等。MCU執行背景操作來增進NAND閃存模組230的效能,例如垃圾回收(Garbage Collection,GC)程序、磨耗平均(Wear-Leveling,WL)程序等等。
處理單元210與閃存控制器240的主機介面之間可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage,UFS)、嵌入式多媒體卡(Embedded Multi-Media Card,eMMC)等通訊協定彼此溝通。閃存控制器240的閃存介面與NAND閃存模組230之間可以雙倍資料率(Double Data Rate,DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存介面使用數個電子訊號來協調閃存控制器240與NAND閃存模組230間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
NAND閃存模組230提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),
用於儲存大量的使用者資料,例如高解析度圖片、影片等。NAND閃存模組230中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可組態為單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)、三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。參考圖3,NAND閃存模組230中的介面331可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元333#0、333#4、333#8及333#12。每個NAND閃存單元可封裝為獨立的芯片(die)。閃存控制器240的閃存介面310可通過介面331發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元333#0至333#3、333#4至333#7、333#8至333#11、或333#12至333#15,接著以並行的方式從致能的NAND閃存單元讀取使用者資料,或者寫入使用者資料至致能的NAND閃存單元。
當一個實體塊中的每個記憶單元為SLC而能夠紀錄兩個狀態時,每個實體字元線儲存單一頁面的使用者資料,其需要一個讀取電壓(Read Voltage,RV)來判斷每個SLC中的電荷為兩個狀態中的哪一個。當一個實體塊中的每個記憶單元為MLC而能夠紀錄四個狀態時,每個實體字元線儲存雙頁面(包含最高有效位頁面一Most Significant Bit Page,和最低有效位頁面一Least Significant Bit Page)的使用者資料,其需要三個讀取電壓來判斷每個MLC中的電荷為四個狀態中的哪一個。當一個實體塊中的每個記憶單元為TLC而能夠紀錄八個狀態時,每個實體字元線儲存三頁面(包含最高有效位頁面,中間有效位頁面一Center Significant Bit Page,和最低有效位頁面)的使用者資料,其需要七個讀取電壓來判斷每個TLC中的電荷為八個狀態中的哪一個。當一個實體塊中的每個記憶單元為QLC而能夠紀錄十六個狀態時,每個實體字元線儲存四頁面(包含頂有效
位頁面一Top Significant Bit Page,最高有效位頁面,中間有效位頁面,和最低有效位頁面)的使用者資料,其需要十五個讀取電壓來判斷每個QLC中的電荷為十六個狀態中的哪一個。
針對不同類型的實體頁面,NAND閃存模組230的製造商提供建議讀取電壓,使得閃存控制器240能夠據以從NAND閃存模組230的記憶單元讀取資料。例如,NAND閃存模組230的製造商可提供如下的建議讀取電壓{0.8V,1.4V,2.4V,3.2V,3.9V,4.8V,5.7V},用於指示閃存控制器240可從組態為三層式單元的記憶單元中讀取最高、中間和最低有效位頁面的資料。
參考圖4所示的雲端儲存系統120的硬體架構的實施例。雲端儲存系統120中可設置處理單元410、隨機存取記憶體450、通訊介面460和RAID控制器430,並且RAID控制器430連接多個固態硬碟420#0至420#n(可泛稱為NAND快閃儲存裝置)。處理單元410、隨機存取記憶體450、通訊介面460和固態硬碟420#0至420#n的功能分別類似於圖2的處理單元210、隨機存取記憶體250、通訊介面260和固態硬碟220,為求簡明不再贅述。RAID控制器430可將固態硬碟420#0至420#組織為RAID群組。在一些實施例中,兩個或以上(n>=2)的固態硬碟可配置為RAID 1,形成資料鏡像(data mirroring),但不包含奇偶校驗(parity)或條帶劃分(striping)。數據會一模一樣的寫入至少兩個固態硬碟,從而產生一組鏡像的固態硬碟。群組中的任何一個固態硬碟都可服務讀取請求。在另一些實施例,兩個或以上(n>=2)的固態硬碟可配置為RAID 2,形成位元層級(bit-level)的條帶,搭配特定漢明碼奇偶校驗(Hamming-code parity)。依據不同固態硬碟中的相應位元計算漢明碼奇偶校驗,並儲存於至少一個奇偶校驗的固態硬碟。在更另一些實施例,三個或以上(n>=3)的固態硬碟可配置為RAID 5,形成塊層級(chunk-level)的條帶,搭配分散式奇偶校驗。奇偶校驗訊息分散在固態硬碟中,可讓缺少一個固
態硬碟的情況下依然正常運行。當單一固態硬碟毀損,可從分散的奇偶校驗計算出缺少的資料,使得資料不會因此遺失。在更另一些實施例,四個或以上(n>=4)的固態硬碟可配置為RAID 6,形成塊層級的條帶,搭配著兩倍的分散式奇偶校驗。奇偶校驗訊息分散在固態硬碟中,可讓缺少兩個固態硬碟的情況下依然正常運行。兩倍的奇偶校驗提供最多兩個固態硬碟失效的錯誤容忍度。
隨著NAND閃存模組230運行時編程/抹寫的週期增加、環境溫度的變化、儲存的次數上升,NAND閃存模組230中所儲存資料的安定性會變差。在先前的實施方式中,NAND閃存模組230的製造商除了提供上述建議讀取電壓之外,還提供讀取重試表(Read Retry Table),其中紀錄了多組的RV參數。每組的RV參數都關聯到一種極端的案例。在讀取重試機制中,閃存控制器240反覆執行一個迴圈,直到讀取資料是正確的,或者所有的RV參數組都已經嘗試過為止。讀取重試機制好像一種盲試(Blind-try)程序。參考圖5所示的資料讀取方法的流程圖,此方法由閃存控制器240中的MCU執行,用於依據主機端發送的主機讀取命令驅動閃存控制器240中的閃存介面,用以從NAND閃存模組230的一個或者多個指定頁面讀取資料,詳細說明如下:
步驟S510:驅動閃存介面以NAND閃存模組230的製造商提供的建議讀取電壓從NAND閃存模組230的第一個或者下一個指定頁面以建議讀取電壓讀取資料和循環冗餘校驗碼(Cyclic Redundancy Check,CRC Code)。
步驟S520:判斷讀取的頁面是否為無法回復錯誤的(Uncorrectable Error Correction Code,UECC)頁面。如果是,流程繼續進行步驟S530的處理;否則,流程繼續進行步驟S550的處理。詳細來說,MCU可搭配CRC碼來判斷讀取頁面的資料是否正確。如果通過檢查,則代表此頁面是正確頁面。如果不能通過檢查,MCU啟動錯誤修正
程序,嘗試通過錯誤修正碼(Error Correcting Code,ECC)來更正讀取頁面中的錯誤位元。如果修正成功,則代表此頁面是正確頁面。如果錯誤修正程序失敗,則代表此頁面是UECC頁面。
步驟S530:啟動讀取重試機制。讀取重試機制反覆執行一個迴圈,直到讀取資料是正確的,或者所有的RV參數組都已經嘗試過為止。
迴圈中包含以下操作:依據一組RV參數調整讀取電壓;以調整後的讀取電壓讀取資料;以及判斷讀取的資料是否正確。
步驟S540:判斷讀取的頁面是否依然為UECC頁面。如果是,流程結束並且進入裝置錯誤狀態;否則,流程繼續進行步驟S550的處理。詳細來說,當所有的RV參數組都已經嘗試過且無法更正讀取頁面中的錯誤位元時,判定讀取的頁面為UECC頁面。
步驟S550:判斷讀取的頁面是否為最後一個指定頁面。如果是,流程結束並且進入下個操作的狀態;否則,流程繼續進行步驟S510的處理,用於讀取下一個指定頁面。
然而,因為讀取重試表中的RV參數關聯到極端的案例,造成讀取重試機制的成功率偏低。此外,過多的調整和檢驗迴圈的迭代(Iterations)將瞬間降低讀取速度,導致不良的讀取效率。
為了盡可能避免啟動讀取重試機制,本發明實施例提出多個最佳化讀取電壓表和使用最佳化讀取電壓表的方法。NAND快閃儲存裝置220的製造商可在出廠前,將這些最佳化讀取電壓表儲存在NAND閃存模組230的指定位置。每個最佳化讀取電壓表關聯於一個記憶單元類型,包含多筆紀錄,每筆紀錄中包含一組RV參數(可以RV偏移值或其他方式表示),以及此組RV參數關聯到的一組環境參數。例如,當NAND閃存模組230中的記憶單元可組態為SLC、MLC或TLC時,NAND閃存模組230中可儲存SLC、MLC和TLC最佳化讀取電壓表。每個RV偏移值可使用調整刻度(Adjustment Scale)表示,例如,”0”代表沒有調整,”+1”代表增加0.01V,”+2”代表增
加0.02V,”-1”代表降低0.01V,”-2”代表降低0.02V,依此類推。環境參數可包含資料耐久性(Data Endurance)、資料保存性(Data Retention)、溫度波動性(Temperature Swing)、讀取擾動性(Read Disturbance)、NAND閃存識別碼(NAND Flash ID)等。資料耐久性指出使用程度,可使用平均抹除次數(Average of Erase Count)表示,為所有實體塊的抹除次數的平均值。資料保存性指出資料的儲存時間長度,可使用時間刻度(Time Scale)表示,例如,”0.25”代表小於或等於一季,”0.5”代表小於或等於半年但大於一季,”1”代表小於或等於一年但大於半年,依此類推。溫度波動性指出運行時的溫度範圍,可使用溫度刻度(Temperature Scale)表示,例如,”0”代表0℃~9.99℃,”1”代表10℃~19.99℃,依此類推。讀取擾動性指出讀取頻率,可使用平均讀取次數(Average of Read Count)表示,為所有實體塊的讀取次數的平均值。NAND閃存識別碼攜帶了關於製造商、產品類型、製造日期等資訊。以MLC最佳化讀取電壓表為例,每筆紀錄的資料結構可表示為{RV0,RV1,RV2,EP0,EP1,EP2,EP3,EP4},其中”RV0”至”RV2”代表3個電壓偏移值,並且”EP0”至”EP4”分別代表資料耐久性、資料保存性、溫度波動性、讀取擾動性、NAND閃存識別碼等環境參數。以TLC最佳化讀取電壓表為例,每筆紀錄的資料結構可表示為{RV0,RV1,RV2,RV3,RV4,RV5,RV6,EP0,EP1,EP2,EP3,EP4},其中”RV0”至”RV6”代表7個電壓偏移值,並且”EP0”至”EP4”分別代表資料耐久性、資料保存性、溫度波動性、讀取擾動性、NAND閃存識別碼等環境參數。
除了最佳化讀取電壓表外,閃存控制器240也在NAND閃存模組230中的指定區域儲存目前環境參數,用於反應NAND閃存模組230的目前運行狀態。
參考圖6所示的資料讀取方法的流程圖,此方法由閃存控制器240中
的MCU執行,詳細說明如下:
步驟S605:依據NAND閃存模組230的目前環境參數和最佳化讀取電壓表的內容決定特定記憶單元類型的一組讀取電壓。詳細來說,在實際讀取資料之前(也就是在進入實際讀取資料的迴圈之前),MCU先獲取NAND閃存模組230的目前環境參數,並且針對每個記憶單元類型搜索相應的最佳化讀取電壓表,用於獲取適應於目前環境參數的一組RV偏移值。特定記憶單元類型可為SLC、MLC、TLC、QLC等。NAND閃存模組230的目前環境參數可包含資料耐久性、資料保存性、溫度波動性、讀取擾動性、NAND閃存識別碼等。NAND閃存模組230的資料耐久性、資料保存性、溫度波動性和讀取擾動性可分別以NAND閃存模組230目前的平均抹除次數、其中的資料的儲存時間長度、目前運行時的溫度範圍和目前的平均讀取次數來表示。MCU可先從最佳化讀取電壓表中濾除不屬於NAND閃存模組230的NAND閃存識別碼的紀錄;找出最佳化讀取電壓表的留下來紀錄中具有和目前環境參數最接近的環境參數的匹配紀錄;以及依據匹配紀錄中的內容產生此組讀取電壓。MCU可應用所屬技術領域人員知道的任何相似度比對演算法、決策樹、經驗法則(Heuristic Rules)等,用於在多組環境參數中找出和目前環境參數最接近的一組環境參數,本發明並不因此局限。
接著,根據搜索到的該組RV偏移值決定讀取電壓。可使用以下公式(1)決定讀取電壓:RVadj,i=RVrcm,i+RVoff,i其中,RVadj,i代表第i個最終決定的讀取電壓,RVrcm,i代表NAND閃存模組230的製造商所提供的第i個建議讀取電壓,RVoff,i代表搜索到的第i個RV偏移值,i為0至RVmax-1之間的整數,RVmax代表相應記憶單元類型的RV偏移值的總數(例如,相應於TLC的RV偏移值的總數為7)。假設讀取TLC塊的建議讀取電壓為{0.8V,1.4V,2.4V,3.2V,
3.9V,4.8V,5.7V},而搜索到的RV偏移值為{+1,+1,0,0,0,0,-2}:最終決定的讀取電壓為{0.81V,1.41V,2.4V,3.2V,3.9V,4.8V,5.68V}。最佳化讀取電壓表及其使用不僅可降低位元錯誤率(Bit Error Rate,BER),還可避免頻繁的啟動讀取重試機制。
步驟S610:驅動閃存介面以決定的讀取電壓從NAND閃存模組230的第一個或者下一個指定頁面以建議讀取電壓讀取資料和CRC碼。
圖6中的步驟S520至S550的技術細節可參考圖5的相應段落說明,為求簡明不再贅述。
然而,NAND閃存模組230中儲存的最佳化讀取電壓表的RV參數組在某些工作條件下可能不適合,或者某些工作條件超出了最佳化讀取電壓表中原先提供的多組的環境參數的範圍。為了解決如上所述的問題,本發明實施例另提出最佳化讀取電壓表的動態更新方法,用於修改指定的最佳化讀取電壓表中特定的環境參數組所對應的RV參數,或者是新增相應於最近偵測到的多組環境參數以及其所對應的RV參數組到指定的最佳化讀取電壓表。
參考圖2的方塊圖。在一個或者多個主機讀取命令執行成功後,閃存控制器240中的MCU於載入和執行資料讀取監視模組(Data-read Monitoring Module)242的程式碼時,產生讀取效能資料(Read-performance Data),並且儲存於閃存控制器240中的RAM,作為一筆資料讀取交易(Data-read Transaction)。讀取效能資料包含NAND閃存模組230的目前環境參數、特定記憶單元類型和位元錯誤率(Bit Error Rate,BER),BER用於衡量這筆資料讀取交易的品質,數值越高代表品質越低。
參考圖2的方塊圖和圖7的順序圖。為了完成讀取效能資料的搜集,閃存控制器240中的MCU可在背景載入和執行回報模組(Reporting Module)244的程式碼,用於監聽處理單元210是否請求讀取效能資料。處理單元210可週期性的載入和執行資料搜集和反饋模組
(Data Collection-and-feedback Module)212的程式碼,用於通過內部匯流排發出用以讀取效能資料的請求710給回報模組244。當回報模組244接收到請求710後,從閃存控制器240中的RAM讀取所有的資料讀取交易,並且通過內部匯流排傳送攜帶有資料讀取交易730的回覆720給資料搜集和反饋模組212。當資料搜集和反饋模組212蒐集完指定數目的資料讀取交易730後,通過網路100傳送資料讀取交易730給閃存研究實驗室中的伺服器130所執行的讀取效能資料處理模組750。工程師可通過讀取效能資料處理模組750所提供的人機界面挑選其BER超過閾值(Threshold)的資料讀取交易,並且使用人工智慧引擎、統計工具或其他演算法依據挑選出的資料讀取交易的內容來標示出不良設定的環境參數。工程師可依據不良設定的環境參數的內容設計並進行實驗,並且根據實驗結果來修改相應的最佳化讀取電壓表。工程師可修改相應最佳化讀取電壓表中的一筆紀錄,用於改變指定組的環境參數所關聯的指定組的的RV偏移值。或者,工程師可在相應最佳化讀取電壓表中新增一筆紀錄,包含一組新的環境參數和其關聯的一組RV偏移值。
參考圖2的方塊圖和圖8的順序圖。為了完成最佳化讀取電壓表的更新,處理單元210可在背景載入和執行表格更新啟動模組(Table-update Triggering Module)214的程式碼,用於監聽閃存研究實驗室中的伺服器130是否請求更新最佳化讀取電壓表;閃存控制器240中的MCU可在背景載入和執行表格更新模組(Table-update Module)246的程式碼,用於監聽處理單元210是否請求更新特定記憶單元類型的最佳化讀取電壓表。在特定記憶單元類型的最佳化讀取電壓表更新完成後,伺服器130的處理單元於載入和執行表格傳遞模組(Table Delivery Module)810的程式碼時通過網路100發出用於更新特定記憶單元類型的最佳化讀取電壓表的請求820給表格更新啟動模組214,其中攜帶欲更新的最佳化讀取電壓表的識別碼和更新後
最佳化讀取電壓表的紀錄。當表格更新啟動模組214接收到請求820後,通過內部匯流排發出用於更新特定記憶單元類型的最佳化讀取電壓表的請求830給表格更新模組246,其中攜帶欲更新的最佳化讀取電壓表的識別碼(包含特定記憶單元類型的資訊),以及傳送更新後的最佳化讀取電壓表的紀錄給表格更新模組246。當表格更新模組246接收到更新特定記憶單元類型的最佳化讀取電壓表的請求830和更新後的最佳化讀取電壓表的紀錄後,驅動閃存控制器240中的閃存介面,用於寫入更新後最佳化讀取電壓表的紀錄到NAND閃存模組230中的指定位置,使得之後的特定記憶單元類型的資料讀取操作可參考更新後的最佳化讀取電壓表來調整RV電壓。使用特定記憶單元類型的更新後最佳化讀取電壓表的資料讀取操作的技術細節,可參考圖6的相關說明。
雖然如上段落是以圖2的運算設備20中執行的資料搜集和反饋模組212和表格更新啟動模組214為例,說明其欲完成的功能以及與閃存研究實驗室中的伺服器130之間的互動,但是其中描述的技術細節同樣可應用在圖4的雲端儲存系統120中執行的資料搜集和反饋模組412和表格更新啟動模組414。雲端儲存系統120的固態硬碟420#0至420#n中的任何一個都可以圖2中的NAND快閃儲存裝置220實現,因此,固態硬碟420#0至420#n中的任何一個的閃存控制器都可執行如上所述資料讀取監視模組242、回報模組244和表格更新模組246的功能。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如主機端中的應用程式、裝置端中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例
如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖2至圖4中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖5至圖6的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S605~S610,S520~S550:方法步驟
Claims (13)
- 一種使用最佳化讀取電壓表以讀取資料的方法,由閃存控制器的微控制器單元執行,所述方法包含:依據NAND閃存模組的目前環境參數和最佳化讀取電壓表的內容決定特定記憶單元類型的一組讀取電壓,其中,所述最佳化讀取電壓表包含多筆紀錄,每筆所述紀錄包含關聯於所述特定記憶單元類型的一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數;以及以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。
- 如請求項1所述的使用最佳化讀取電壓表以讀取資料的方法,其中,所述特定記憶單元類型為單層式單元、多層式單元、三層式單元或者四層式單元。
- 如請求項1所述的使用最佳化讀取電壓表以讀取資料的方法,包含:從所述最佳化讀取電壓表中濾除不屬於所述NAND閃存模組的NAND閃存識別碼的紀錄;找出所述最佳化讀取電壓表的留下來紀錄中具有和所述目前環境參數最接近的所述環境參數的匹配紀錄;以及依據所述匹配紀錄中的所述一組讀取電壓參數產生所述一組讀取電壓。
- 如請求項1所述的使用最佳化讀取電壓表以讀取資料的方法,其中,所述目前環境參數包含所述NAND閃存模組目前的平均抹除次數、其中的資料的儲存時間長度、目前運行時的溫度範圍和目前的平均讀取 次數;以及每筆所述紀錄中的所述環境參數包含平均抹除次數、資料的儲存時間長度、運行時的溫度範圍和平均讀取次數。
- 如請求項1所述的使用最佳化讀取電壓表以讀取資料的方法,其中,所述一組讀取電壓參數包含多個讀取電壓偏移值,所述一組讀取電壓使用以下公式決定:RVadj,i=RVrcm,i+RVoff,i RVadj,i代表所述一組讀取電壓中的第i個讀取電壓,RVrcm,i代表所述NAND閃存模組的製造商所提供的第i個建議讀取電壓,RVoff,i代表匹配紀錄中的第i個讀取電壓偏移值,i為0至RVmax-1之間的整數,RVmax代表所述特定記憶單元類型的RV偏移值的總數。
- 如請求項1所述的使用最佳化讀取電壓表以讀取資料的方法,包含:當所述頁面判斷為無法回復錯誤的頁面時,啟動讀取重試機制,用於反覆執行迴圈,直到讀取資料是正確的,或者讀取重試表中的所有組的讀取電壓參數都嘗試過為止。
- 一種電腦程式產品,包含程式碼,其中,當閃存控制器的微控制器單元執行所述程式碼時,實施如請求項1至6中任一項所述的使用最佳化讀取電壓表以讀取資料的方法。
- 一種使用最佳化讀取電壓表以讀取資料的裝置,包含:閃存介面,耦接NAND閃存模組;以及微控制器單元,耦接所述閃存介面,用於依據所述NAND閃存模組的目前環境參數和最佳化讀取電壓表的內容決定特定記憶單元類型的一組讀取電壓,其中,所述最佳化讀取電壓表包含多筆 紀錄,每筆所述紀錄包含關聯於所述特定記憶單元類型的一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數;以及驅動所述閃存介面以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。
- 如請求項8所述的使用最佳化讀取電壓表以讀取資料的裝置,其中,所述特定記憶單元類型為單層式單元、多層式單元、三層式單元或者四層式單元。
- 如請求項8所述的使用最佳化讀取電壓表以讀取資料的裝置,其中,所述微控制器單元從所述最佳化讀取電壓表中濾除不屬於所述NAND閃存模組的NAND閃存識別碼的紀錄;找出所述最佳化讀取電壓表的留下來紀錄中具有和所述目前環境參數最接近的所述環境參數的匹配紀錄;以及依據所述匹配紀錄中的所述一組讀取電壓參數產生所述一組讀取電壓。
- 如請求項8所述的使用最佳化讀取電壓表以讀取資料的裝置,其中,所述目前環境參數包含所述NAND閃存模組目前的平均抹除次數、其中的資料的儲存時間長度、目前運行時的溫度範圍和目前的平均讀取次數;以及每筆所述紀錄中的所述環境參數包含平均抹除次數、資料的儲存時間長度、運行時的溫度範圍和平均讀取次數。
- 如請求項8所述的使用最佳化讀取電壓表以讀取資料的裝置,其中,所述一組讀取電壓參數包含多個讀取電壓偏移值,所述一組讀取電壓使用以下公式決定:RVadj,i=RVrcm,i+RVoff,i RVadj,i代表所述一組讀取電壓中的第i個讀取電壓,RVrcm,i代表所述 NAND閃存模組的製造商所提供的第i個建議讀取電壓,RVoff,i代表匹配紀錄中的第i個讀取電壓偏移值,i為0至RVmax-1之間的整數,RVmax代表所述特定記憶單元類型的RV偏移值的總數。
- 如請求項8所述的使用最佳化讀取電壓表以讀取資料的裝置,其中,所述所述微控制器單元當所述頁面判斷為無法回復錯誤的頁面時,啟動讀取重試機制,用於反覆執行迴圈,直到讀取資料是正確的,或者讀取重試表中的所有組的讀取電壓參數都嘗試過為止。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263298287P | 2022-01-11 | 2022-01-11 | |
US63/298,287 | 2022-01-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202329141A TW202329141A (zh) | 2023-07-16 |
TWI814352B true TWI814352B (zh) | 2023-09-01 |
Family
ID=85795092
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111115127A TWI787116B (zh) | 2022-01-11 | 2022-04-21 | 動態更新最佳化讀取電壓表的方法及電腦程式產品及裝置 |
TW111115126A TWI814352B (zh) | 2022-01-11 | 2022-04-21 | 使用最佳化讀取電壓表以讀取資料的方法及電腦程式產品及裝置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111115127A TWI787116B (zh) | 2022-01-11 | 2022-04-21 | 動態更新最佳化讀取電壓表的方法及電腦程式產品及裝置 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN116469440A (zh) |
TW (2) | TWI787116B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118502677A (zh) * | 2024-07-17 | 2024-08-16 | 成都佰维存储科技有限公司 | 存储器读重表优化方法、装置、可读存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201911057A (zh) * | 2017-08-11 | 2019-03-16 | 韓商愛思開海力士有限公司 | 記憶體系統及其操作方法 |
CN107452421B (zh) * | 2016-05-31 | 2020-06-16 | 建兴储存科技(广州)有限公司 | 固态储存装置及其状态预测方法 |
US11216208B1 (en) * | 2020-06-15 | 2022-01-04 | SK Hynix Inc. | Memory system, memory controller, and operation method of memory system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150085571A1 (en) * | 2013-09-24 | 2015-03-26 | Sandisk Technologies Inc. | Updating read voltages |
US10347344B2 (en) * | 2017-08-29 | 2019-07-09 | Micron Technology, Inc. | Read voltage calibration based on host IO operations |
CN109840047A (zh) * | 2017-11-27 | 2019-06-04 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
CN111863097B (zh) * | 2020-06-29 | 2022-06-17 | 联芸科技(杭州)有限公司 | 快闪存储器的读取控制方法及装置 |
-
2022
- 2022-04-21 CN CN202210420246.9A patent/CN116469440A/zh active Pending
- 2022-04-21 TW TW111115127A patent/TWI787116B/zh active
- 2022-04-21 TW TW111115126A patent/TWI814352B/zh active
- 2022-04-21 CN CN202210420240.1A patent/CN116469439A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107452421B (zh) * | 2016-05-31 | 2020-06-16 | 建兴储存科技(广州)有限公司 | 固态储存装置及其状态预测方法 |
TW201911057A (zh) * | 2017-08-11 | 2019-03-16 | 韓商愛思開海力士有限公司 | 記憶體系統及其操作方法 |
US11216208B1 (en) * | 2020-06-15 | 2022-01-04 | SK Hynix Inc. | Memory system, memory controller, and operation method of memory system |
Also Published As
Publication number | Publication date |
---|---|
TW202329141A (zh) | 2023-07-16 |
CN116469439A (zh) | 2023-07-21 |
TWI787116B (zh) | 2022-12-11 |
TW202329142A (zh) | 2023-07-16 |
CN116469440A (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10062442B2 (en) | Method for managing data blocks and method of data management for data storage device | |
US9472244B2 (en) | Apparatus power control | |
KR20150044753A (ko) | 데이터 저장 장치의 동작 방법 | |
US11126369B1 (en) | Data storage with improved suspend resume performance | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
US20220137815A1 (en) | Managing bin placement for block families of a memory device based on trigger metric values | |
US11016889B1 (en) | Storage device with enhanced time to ready performance | |
US20230017942A1 (en) | Memory sub-system event log management | |
CN112035060A (zh) | 一种存储介质的错误检测方法、系统及存储系统 | |
US20230266884A1 (en) | Operating method for storage controller and storage system including same | |
US20210109660A1 (en) | Operation method of a storage controller configured to control a nonvolatile memory device | |
US12061543B2 (en) | Power loss protection in memory sub-systems | |
US20240289039A1 (en) | Memory system and method of performing background operation | |
TWI814352B (zh) | 使用最佳化讀取電壓表以讀取資料的方法及電腦程式產品及裝置 | |
US20230221873A1 (en) | Method and non-transitory computer-readable storage medium and apparatus for dynamically updating optimization read voltage table | |
KR20200121068A (ko) | 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러 | |
CN111638993B (zh) | 一种存储介质的纠错方法、及其应用的系统及存储系统 | |
US11182087B2 (en) | Modifying write performance to prolong life of a physical memory device | |
US20230221872A1 (en) | Method and non-transitory computer-readable storage medium and apparatus for reading data with optimization read voltage table | |
US11960745B2 (en) | Empty page scan operations adjustment | |
US20230410878A1 (en) | Automated voltage demarcation (vdm) adjustment for memory device | |
US20240143226A1 (en) | Data storage device and method for managing a write buffer |