TWI787116B - Method and computer program product and apparatus for dynamically updating optimization read voltage table - Google Patents

Method and computer program product and apparatus for dynamically updating optimization read voltage table Download PDF

Info

Publication number
TWI787116B
TWI787116B TW111115127A TW111115127A TWI787116B TW I787116 B TWI787116 B TW I787116B TW 111115127 A TW111115127 A TW 111115127A TW 111115127 A TW111115127 A TW 111115127A TW I787116 B TWI787116 B TW I787116B
Authority
TW
Taiwan
Prior art keywords
read
flash memory
data
nand flash
voltmeter
Prior art date
Application number
TW111115127A
Other languages
Chinese (zh)
Other versions
TW202329142A (en
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 慧榮科技股份有限公司
Application granted granted Critical
Publication of TWI787116B publication Critical patent/TWI787116B/en
Publication of TW202329142A publication Critical patent/TW202329142A/en

Links

Images

Classifications

    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention is related to a method, a computer program product, and an apparatus for dynamically updating optimization read voltage (RV) table. The method, performed by a microcontroller unit of a flash controller, includes: obtaining a data-read transaction and replying with the data-read transaction to a host side after listing to a request for read-performance data, which is issued by the host side, thereby enabling the data-read transaction to be used to update an optimization RV table for a designated memory-unit type; and programming entries of an updated optimization RV table for the designated memory-unit type into a designated location of a NAND flash module after listening to a request for updating the optimization RV table for the designated memory-unit type, which is issued by the host side. The data-read transaction includes the current environmental parameters of the NAND flash module, the designated memory-unit type, and a bit error rate (BER). Each entry of the updated optimization RV table includes a set of RV parameters, and environmental parameters associated with the set of RV parameters. With the update and the usage of optimization RV table, the number of times the read retry mechanism is triggered would be reduced.

Description

動態更新最佳化讀取電壓表的方法及電腦程式產品及裝置 Method for dynamically updating and optimizing reading voltmeter, computer program product and device

本發明涉及儲存裝置,尤指一種動態更新最佳化讀取電壓表的方法、電腦程式產品及裝置。 The invention relates to a storage device, in particular to a method for dynamically updating and optimizing reading of a voltmeter, a computer program product and a device.

閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。提昇資料的讀取正確率,一直是影響閃存控制器的系統整體效能的重要課題。因此.本發明提出一種動態更新最佳化讀取電壓表的方法、產品電腦程式及裝置,用於提升資料的讀取正確率。 Flash memory is usually divided into NOR flash memory and NAND flash memory. NOR flash memory is a random access device. The central processing unit (Host) can provide any address for accessing NOR flash memory on the address pin, and obtain the data stored on the address from the data pin of NOR flash memory in time. material. In contrast, NAND flash memory is not random access, but sequential access. NAND flash memory cannot access any random address like NOR flash memory. Instead, the CPU needs to write the value of the sequence of bytes (Bytes) into the NAND flash memory to define the type of request command (Command) (such as , read, write, erase, etc.), and the address used on this command. The address can point to a page (the smallest data block for writing operations in flash memory) or a block (the smallest data block for erasing operations in flash memory). Improving the accuracy rate of reading data has always been an important issue affecting the overall performance of the flash memory controller system. therefore. The present invention proposes a method for dynamically updating and optimizing the reading of a voltmeter, a product computer program and a device for improving the reading accuracy of data.

有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。 In view of this, how to alleviate or eliminate the deficiencies in the above-mentioned related fields is a problem to be solved.

本說明書涉及一種動態更新最佳化讀取電壓表的方法,由閃存控制器的微控制器單元執行,包含:當監聽到主機端發出的讀取效能資 料的請求後,獲取並且回覆資料讀取交易給所述主機端,使得所述資料讀取交易能夠被用於更新特定記憶單元類型的最佳化讀取電壓表;以及當監聽到所述主機端發出的更新所述特定記憶單元類型的所述最佳化讀取電壓表的請求後,寫入所述特定記憶單元類型的更新後的最佳化讀取電壓表的多筆紀錄到NAND閃存模組的指定位置。 This specification relates to a method for dynamically updating and optimizing the read voltage meter, which is executed by the microcontroller unit of the flash memory controller, including: when monitoring the read performance information sent by the host After the data request, obtain and reply the data read transaction to the host side, so that the data read transaction can be used to update the optimized read voltage table of the specific memory cell type; and when the host receives the After the request sent by the terminal to update the optimized read voltage table of the specific memory cell type, write multiple records of the updated optimized read voltage table of the specific memory cell type to the NAND flash memory The specified location of the module.

本說明書另涉及一種電腦程式產品,包含程式碼。當閃存控制器的微控制器單元執行所述程式碼時,實施如上所述的動態更新最佳化讀取電壓表的方法。 This manual also relates to a computer program product, including program codes. When the microcontroller unit of the flash memory controller executes the program code, the method for dynamically updating the optimized reading voltage table as described above is implemented.

本說明書更另涉及一種動態更新最佳化讀取電壓表的裝置,包含:閃存介面,耦接NAND閃存模組;以及微控制器單元,耦接所述閃存介面。微控制器單元用於當監聽到主機端發出的讀取效能資料的請求後,獲取並且回覆資料讀取交易給所述主機端,使得所述資料讀取交易能夠被用於更新特定記憶單元類型的最佳化讀取電壓表;以及當監聽到所述主機端發出的更新所述特定記憶單元類型的所述最佳化讀取電壓表的請求後,驅動所述閃存介面以寫入所述特定記憶單元類型的更新後的最佳化讀取電壓表的多筆紀錄到所述NAND閃存模組的指定位置。 This specification further relates to a device for dynamically updating the optimized reading voltmeter, comprising: a flash memory interface coupled to a NAND flash memory module; and a microcontroller unit coupled to the flash memory interface. The microcontroller unit is used to obtain and reply data read transactions to the host after listening to the request for reading performance data sent by the host, so that the data read transactions can be used to update specific memory unit types The optimized reading voltage table of the device; and after listening to the request sent by the host to update the optimized reading voltage table of the specific memory cell type, driving the flash memory interface to write the Multiple records of the updated optimized read voltmeter for a specific memory cell type are stored in designated locations of the NAND flash memory module.

所述資料讀取交易包含所述NAND閃存模組的目前環境參數、所述特定記憶單元類型和位元錯誤率。每筆所述紀錄包含一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數。 The data reading transaction includes the current environmental parameters of the NAND flash memory module, the specific memory cell type and bit error rate. Each record includes a set of read voltage parameters and an environment parameter associated with the set of read voltage parameters.

上述實施例的優點之一,通過最佳化讀取電壓表的更新和使用,可降低啟動讀取重試機制的次數。 As one of the advantages of the above embodiments, by optimizing the update and usage of the read voltmeter, the number of times to initiate the read retry mechanism can be reduced.

本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。 Other advantages of the present invention will be explained in more detail with the following description and drawings.

100:網路 100: Internet

112:個人電腦 112: personal computer

114:手機 114: mobile phone

116:平板電腦 116: Tablet PC

120:雲端儲存系統 120:Cloud storage system

130:伺服器 130: server

20:運算設備 20:Computing equipment

210:處理單元 210: processing unit

212:資料搜集和反饋模組 212:Data Collection and Feedback Module

214:表格更新啟動模組 214: Form update start module

220:NAND快閃儲存裝置 220: NAND flash storage device

230:NAND閃存模組 230: NAND flash memory module

240:閃存控制器 240: Flash memory controller

242:資料讀取監視模組 242: Data reading monitoring module

244:回報模組 244:Return module

246:表格更新模組 246:Form update module

250:隨機存取記憶體 250: random access memory

260:通訊介面 260: communication interface

310:閃存介面 310: Flash interface

331:介面 331: interface

333#0~333#15:NAND閃存單元 333#0~333#15: NAND flash memory unit

CH#0~CH#3:通道 CH#0~CH#3: channel

CE#0~CE#3:致能訊號 CE#0~CE#3: enable signal

410:處理單元 410: processing unit

412:資料搜集和反饋模組 412: Data Collection and Feedback Module

414:表格更新啟動模組 414: Form update start module

420#0~420#n:NAND快閃儲存裝置(固態硬碟) 420#0~420#n: NAND flash storage device (solid state drive)

430:RAID控制器 430:RAID controller

450:隨機存取記憶體 450: random access memory

460:通訊介面 460: communication interface

S510~S550:方法步驟 S510~S550: method steps

S605~S610:方法步驟 S605~S610: method steps

710:請求 710: request

720:回覆 720: reply

730:資料讀取交易 730: Data reading transaction

750:讀取效能資料處理模組 750:Read performance data processing module

810:表格傳遞模組 810: Form transfer module

820,830:請求 820,830: request

圖1為依據本發明實施例的網路環境的示意圖。 FIG. 1 is a schematic diagram of a network environment according to an embodiment of the present invention.

圖2為依據本發明實施例的運算設備的方塊圖。 FIG. 2 is a block diagram of a computing device according to an embodiment of the invention.

圖3為依據本發明實施例的NAND閃存模組的示意圖。 FIG. 3 is a schematic diagram of a NAND flash memory module according to an embodiment of the present invention.

圖4為依據本發明實施例的雲端儲存系統的方塊圖。 FIG. 4 is a block diagram of a cloud storage system according to an embodiment of the present invention.

圖5為依據一些實施方式的資料讀取方法的流程圖。 FIG. 5 is a flowchart of a data reading method according to some implementations.

圖6為依據本發明實施例的資料讀取方法的流程圖。 FIG. 6 is a flowchart of a data reading method according to an embodiment of the invention.

圖7為依據本發明實施例的讀取效能資料的搜集與回報的順序圖。 FIG. 7 is a sequence diagram of collecting and reporting read performance data according to an embodiment of the present invention.

圖8為依據本發明實施例的更新最佳化讀取電壓表的順序圖。 FIG. 8 is a sequence diagram of updating an optimized reading voltage table according to an embodiment of the present invention.

以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。 The following description is a preferred implementation mode of the invention, and its purpose is to describe the basic spirit of the invention, but not to limit the invention. For the actual content of the invention, reference must be made to the scope of the claims that follow.

必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。 It must be understood that words such as "comprising" and "including" used in this specification are used to indicate the existence of specific technical features, values, method steps, operations, components and/or components, but do not exclude the possibility of adding More technical characteristics, numerical values, method steps, operation processes, components, components, or any combination of the above.

於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 Words such as "first", "second", and "third" used in the claims are used to modify the elements in the claims, and are not used to indicate that there is a priority order, a pre-relationship, or an element An element preceding another element, or a chronological order in performing method steps, is only used to distinguish elements with the same name.

必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。 It must be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, intervening elements may be present. In contrast, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements present. Other words used to describe the relationship between elements may be interpreted in a similar fashion, eg, "between" versus "directly between," or "adjacent" versus "directly adjacent," and so forth.

本發明提出一種動態更新最佳化讀取電壓表(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),並且每個獨立磁碟冗餘陣列包含數個固態硬碟。 The present invention proposes a mechanism for dynamically updating an Optimization Read Voltage (RV) Table, which can be applied to computing devices in a network environment and NAND flash storage devices in cloud storage systems to optimize The read voltmeter is used in the process of reading data from the NAND flash storage device. NAND flash storage devices can It is a NAND flash memory card, a NAND flash memory module, a solid state drive (Solid State Drive, SSD) and the like. With reference to Fig. 1, computing device can be personal computer 112, mobile phone 114, panel computer 116, notebook computer (Laptop PC), digital camera, digital video camera, or other consumer electronic products, wherein is equipped with NAND flash memory card, NAND flash memory Body modules, solid state drives, or any combination of the above, are used to store various user data, such as digital files, high-resolution images, video files, etc. The computing device can upload and store various user data to the cloud storage system 120 through the network 100, and download user data from the cloud storage system 120, so that various application programs can be loaded and processed. The cloud storage system 120 may include one or more redundant arrays of independent disks (Redundant Array of Independent Disks, RAID), and each redundant array of independent disks includes several solid state drives.

參考圖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)程序等等。 Refer to the embodiment of the hardware architecture of the computing device 20 (such as the personal computer 112 , the mobile phone 114 , the tablet computer 116 ) shown in FIG. 2 . A processing unit 210 , a NAND flash storage device 220 , a random access memory (Random Access Memory, RAM) 250 , and a communication interface 260 may be disposed in the computing device 20 , and are connected to each other through a bus structure. The processing unit 210 (also referred to as the host side, Host Side) can be implemented in a variety of ways, such as using general-purpose hardware (for example, a single processor, multi-processors with parallel processing capabilities, graphics processing units, or other computing capabilities) processor) and, when executing software and/or firmware instructions, provide the functionality described hereinafter. The RAM 250 can be implemented as a dynamic random access memory (Dynamic Random Access Memory, DRAM), a static random access memory (Static Random Access Memory, SRAM) or a combination of the above two, used to store data needed during execution , for example, variable, data table, etc. The communication interface 260 can be a Local Area Network (LAN) module, a wireless LAN module, a Bluetooth module, a 2G/3G/4G/5G telecommunications communication module, or any combination of the above modules, It is used to communicate with the server 130 in the flash memory research laboratory through the network 100 . NAND flash storage device 220 (also referred to as device side, Device Side) includes NAND flash memory module 230 and flash memory controller 240, flash memory control The device 240 is used for accessing the data in the NAND flash memory module 230 according to the commands issued by the processing unit 210 . In detail, the flash memory controller 240 may include a Microcontroller Unit (MCU), and when loading and executing appropriate codes, it cooperates with other components in the flash memory controller 240 to complete specific functions. For example, the MCU drives the host interface (Host Interface) to receive host commands and necessary user data from the processing unit 210, and drives the flash memory interface (Flash Interface) to read data from the specified address of the NAND flash memory module 230 according to the host command, Writing data to the specified address of the NAND flash memory module 230, erasing data at the specified address of the NAND flash memory module 230, and so on. The MCU performs background operations to improve the performance of the NAND flash memory module 230 , such as garbage collection (Garbage Collection, GC) procedures, wear-leveling (Wear-Leveling, WL) procedures, and so on.

處理單元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)等控制訊號。 The host interface of the processing unit 210 and the flash memory controller 240 can be connected by a universal serial bus (Universal Serial Bus, USB), an advanced technology attachment (ATA), a serial advanced technology attachment (SATA), Communication protocols such as peripheral component interconnect express (PCI-E), universal flash storage (UFS), and embedded multi-media card (eMMC) communicate with each other. The flash memory interface of the flash memory controller 240 and the NAND flash memory module 230 can communicate with each other with a double data rate (Double Data Rate, DDR) protocol, for example, open NAND flash (Open NAND Flash Interface, ONFI), double data rate rate switch (DDR Toggle) or other communication protocols. The flash memory interface uses several electronic signals to coordinate data and command transmission between the flash memory controller 240 and the NAND flash memory module 230, including data lines (Data Line), clock signals (Clock Signal) and control signals (Control Signal). Data lines can be used to transmit commands, addresses, read and write data; control signal lines can be used to transmit chip enable (Chip Enable, CE), address extraction enable (Address Latch Enable, ALE), command extraction enable Can (Command Latch Enable, CLE), Write Enable (Write Enable, WE) and other control signals.

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閃存單元。 The NAND flash memory module 230 provides a large amount of storage space, usually hundreds of gigabytes (Gigabytes, GB), or even several terabytes (Terabytes, TB), for storing a large amount of user data , such as high-resolution images, videos, etc. The NAND flash memory module 230 includes a control circuit and a memory array, and the memory cells in the memory array can be configured as single-level cells (Single Level Cells, SLCs), multi-level cells (Multiple Level Cells, MLCs), three-layer Triple Level Cells (TLCs), Quad-Level Cells (QLCs), or any combination of the above. Referring to FIG. 3 , the interface 331 in the NAND flash memory module 230 can include four input/output channels (I/O channels, hereinafter referred to as channels) CH#0 to CH#3, and each channel is connected to four NAND flash memory units, for example, Channel CH#0 is connected to NAND flash memory units 333#0, 333#4, 333#8 and 333#12. Each NAND flash memory cell can be packaged as an independent die. The flash memory interface 310 of the flash memory controller 240 can send one of the enable signals CE#0 to CE#3 through the interface 331 to enable the NAND flash memory units 333#0 to 333#3, 333#4 to 333#7, 333# 8 to 333#11, or 333#12 to 333#15, and then read user data from the enabled NAND flash memory unit in parallel, or write user data to the enabled NAND flash memory unit.

當一個實體塊中的每個記憶單元為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中的電荷為十六個狀態中的哪一個。 When each memory cell in a physical block is SLC and can record two states, each physical word line stores user data of a single page, which requires a read voltage (Read Voltage, RV) to determine each Which of the two states is the charge in the SLC. When each memory cell in a physical block is MLC and can record four states, each physical word line stores double pages (including the most significant bit page-Most Significant Bit Page, and the least significant bit page-Least Significant Bit Page), which requires three read voltages to determine which of the four states the charge in each MLC is in. When each memory cell in a physical block is TLC and can record eight states, each physical word line stores three pages (including the most significant bit page, the middle significant bit page-Center Significant Bit Page, and the least significant bit Page ), which requires seven read voltages to determine which of eight states the charge in each TLC is in. When each memory cell in a physical block is QLC and can record sixteen states, each physical word line stores four pages (including the top significant bit page-Top Significant Bit Page, the most significant bit page, the middle significant bit page, and LSB page), which requires fifteen read voltages to determine which of sixteen states the charge in each QLC is in.

針對不同類型的實體頁面,NAND閃存模組230的製造商提供建議讀取電壓,使得閃存控制器240能夠據以從NAND閃存模組230的記憶單元讀取資料。例如,NAND閃存模組230的製造商可提供如下的建議讀取電壓{0.8V,1.4V,2.4V,3.2V,3.9V,4.8V,5.7V},用於指示閃存控制器240可從組態為三層式單元的記憶單元中讀取最高、中間和最低有效位頁面的資料。 For different types of physical pages, the manufacturer of the NAND flash memory module 230 provides recommended read voltages, so that the flash memory controller 240 can read data from the memory cells of the NAND flash memory module 230 accordingly. For example, the manufacturer of the NAND flash memory module 230 may provide the following recommended read voltage {0.8V, 1.4V, 2.4V, 3.2V, 3.9V, 4.8V, 5.7V}, which is used to indicate that the flash memory controller 240 can read from Read data from MSB, MSB, and LSB pages in memory cells configured as triple-level cells.

參考圖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,形成塊層級的條帶,搭配著兩倍的分散式奇偶校驗。奇偶校驗訊息分散在固態硬碟中,可讓缺少兩個固態硬碟的情況下依然正常運行。兩倍的奇偶校驗提供最多兩個固態硬碟失效的錯誤容忍度。 Refer to the embodiment of the hardware architecture of the cloud storage system 120 shown in FIG. 4 . A processing unit 410, a random access memory 450, a communication interface 460, and a RAID controller 430 can be set in the cloud storage system 120, and the RAID controller 430 is connected to a plurality of solid state drives 420#0 to 420#n (which can be generally referred to as NAND flash memory device). The functions of the processing unit 410, the random access memory 450, the communication interface 460, and the solid state disks 420#0 to 420#n are similar to those of the processing unit 210, the random access memory 250, the communication interface 260, and the solid state disks in FIG. 2, respectively. Disc 220, for the sake of brevity will not be repeated. The RAID controller 430 can organize the solid state disks 420#0 to 420# into RAID groups. In some embodiments, two or more (n>=2) SSDs can be configured as RAID 1, forming data mirroring, but not including parity or striping . Data will be written identically to at least two solid-state drives, resulting in a set of mirrored solid-state drives. Any SSD in the group can service read requests. In other embodiments, two or more (n>=2) SSDs can be configured as RAID 2, forming bit-level stripes, with a specific Hamming-code parity check (Hamming-code parity). Calculate the Hamming code parity according to the corresponding bits in different SSDs, and store it in at least one odd Even-parity SSD. In still other embodiments, three or more (n>=3) solid-state drives can be configured as RAID 5 to form chunk-level stripes with distributed parity. The parity information is distributed among the SSDs, allowing normal operation without an SSD. When a single SSD is damaged, the missing data can be calculated from the scattered parity, so that the data will not be lost. In still other embodiments, four or more (n>=4) SSDs can be configured as RAID 6, forming block-level striping with twice the distributed parity. The parity information is distributed among the SSDs, allowing normal operation without two SSDs. Twice the parity provides error tolerance for up to two SSD failures.

隨著NAND閃存模組230運行時編程/抹寫的週期增加、環境溫度的變化、儲存的次數上升,NAND閃存模組230中所儲存資料的安定性會變差。在先前的實施方式中,NAND閃存模組230的製造商除了提供上述建議讀取電壓之外,還提供讀取重試表(Read Retry Table),其中紀錄了多組的RV參數。每組的RV參數都關聯到一種極端的案例。在讀取重試機制中,閃存控制器240反覆執行一個迴圈,直到讀取資料是正確的,或者所有的RV參數組都已經嘗試過為止。讀取重試機制好像一種盲試(Blind-try)程序。參考圖5所示的資料讀取方法的流程圖,此方法由閃存控制器240中的MCU執行,用於依據主機端發送的主機讀取命令驅動閃存控制器240中的閃存介面,用以從NAND閃存模組230的一個或者多個指定頁面讀取資料,詳細說明如下: As the programming/erasing cycle of the NAND flash memory module 230 increases, the ambient temperature changes, and the number of times of storage increases, the stability of the data stored in the NAND flash memory module 230 will deteriorate. In the previous implementation, the manufacturer of the NAND flash memory module 230 provides a read retry table (Read Retry Table) in addition to the above suggested read voltage, which records multiple sets of RV parameters. Each set of RV parameters is associated with an extreme case. In the read retry mechanism, the flash memory controller 240 executes a loop repeatedly until the read data is correct, or all RV parameter sets have been tried. The read retry mechanism is like a blind-try program. With reference to the flow chart of the data reading method shown in FIG. 5, this method is executed by the MCU in the flash memory controller 240, and is used to drive the flash memory interface in the flash memory controller 240 according to the host read command sent by the host end, for from One or more designated pages of the NAND flash memory module 230 read data, and the details are as follows:

步驟S510:驅動閃存介面以NAND閃存模組230的製造商提供的建議讀取電壓從NAND閃存模組230的第一個或者下一個指定頁面以建議讀取電壓讀取資料和循環冗餘校驗碼(Cyclic Redundancy Check,CRC Code)。 Step S510: Drive the flash memory interface to read data and cyclic redundancy check from the first or next specified page of the NAND flash memory module 230 with the recommended read voltage provided by the manufacturer of the NAND flash memory module 230 Code (Cyclic Redundancy Check, CRC Code).

步驟S520:判斷讀取的頁面是否為無法回復錯誤的(Uncorrectable Error Correction Code,UECC)頁面。如果是,流程繼續進行步驟 S530的處理;否則,流程繼續進行步驟S550的處理。詳細來說,MCU可搭配CRC碼來判斷讀取頁面的資料是否正確。如果通過檢查,則代表此頁面是正確頁面。如果不能通過檢查,MCU啟動錯誤修正程序,嘗試通過錯誤修正碼(Error Correcting Code,ECC)來更正讀取頁面中的錯誤位元。如果修正成功,則代表此頁面是正確頁面。如果錯誤修正程序失敗,則代表此頁面是UECC頁面。 Step S520: Determine whether the read page is an Uncorrectable Error Correction Code (UECC) page. If yes, the process continues with the step Processing of S530; otherwise, the flow continues to process of step S550. Specifically, the MCU can be used with the CRC code to determine whether the data on the read page is correct. If it passes the check, it means the page is correct. If the check fails, the MCU starts an error correction program to try to correct the error bits in the read page by using an Error Correcting Code (ECC). If the correction is successful, it means that this page is the correct page. If the bugfixes fail, the page is a UECC page.

步驟S530:啟動讀取重試機制。讀取重試機制反覆執行一個迴圈,直到讀取資料是正確的,或者所有的RV參數組都已經嘗試過為止。迴圈中包含以下操作:依據一組RV參數調整讀取電壓;以調整後的讀取電壓讀取資料;以及判斷讀取的資料是否正確。 Step S530: Start the read retry mechanism. The read retry mechanism executes a loop repeatedly until the read data is correct, or all RV parameter sets have been tried. The loop includes the following operations: adjusting the reading voltage according to a set of RV parameters; reading data with the adjusted reading voltage; and judging whether the read data is correct.

步驟S540:判斷讀取的頁面是否依然為UECC頁面。如果是,流程結束並且進入裝置錯誤狀態;否則,流程繼續進行步驟S550的處理。詳細來說,當所有的RV參數組都已經嘗試過且無法更正讀取頁面中的錯誤位元時,判定讀取的頁面為UECC頁面。 Step S540: Determine whether the read page is still a UECC page. If yes, the process ends and enters the device error state; otherwise, the process proceeds to step S550. Specifically, when all RV parameter sets have been tried and error bits in the read page cannot be corrected, it is determined that the read page is a UECC page.

步驟S550:判斷讀取的頁面是否為最後一個指定頁面。如果是,流程結束並且進入下個操作的狀態;否則,流程繼續進行步驟S510的處理,用於讀取下一個指定頁面。 Step S550: Determine whether the read page is the last specified page. If yes, the process ends and enters the state of the next operation; otherwise, the process proceeds to step S510 for reading the next specified page.

然而,因為讀取重試表中的RV參數關聯到極端的案例,造成讀取重試機制的成功率偏低。此外,過多的調整和檢驗迴圈的迭代(Iterations)將瞬間降低讀取速度,導致不良的讀取效率。 However, because the RV parameter in the read retry table is associated with extreme cases, the success rate of the read retry mechanism is low. In addition, too many iterations of the adjustment and verification loops (Iterations) will instantly reduce the reading speed, resulting in poor reading efficiency.

為了盡可能避免啟動讀取重試機制,本發明實施例提出多個最佳化讀取電壓表和使用最佳化讀取電壓表的方法。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閃存識別碼等環境參數。 In order to avoid starting the reading retry mechanism as much as possible, the embodiment of the present invention proposes a plurality of optimized reading voltmeters and methods for using the optimized reading voltmeters. The manufacturer of the NAND flash memory device 220 can store these optimized reading voltage tables in designated locations of the NAND flash memory module 230 before leaving the factory. Each optimized reading voltmeter is associated with a memory unit type, and includes multiple records, each record includes a set of RV parameters (which can be represented by RV offset value or other methods), and the associated RV parameters of this set A set of environment parameters. For example, when the memory cells in the NAND flash memory module 230 can be configured as SLC, In the case of MLC or TLC, the NAND flash memory module 230 can store SLC, MLC and TLC optimized reading voltage tables. Each RV offset value can be represented by an adjustment scale (Adjustment Scale), for example, "0" represents no adjustment, "+1" represents an increase of 0.01V, "+2" represents an increase of 0.02V, and "-1" represents a decrease of 0.01 V, "-2" means decrease by 0.02V, and so on. The environmental parameters may include Data Endurance, Data Retention, Temperature Swing, Read Disturbance, NAND Flash ID, etc. Data durability refers to the degree of usage, which can be represented by the Average of Erase Count (Average of Erase Count), which is the average of the erase counts of all physical blocks. Data retention refers to the length of data storage time, which can be represented by a time scale (Time Scale), for example, "0.25" means less than or equal to one quarter, "0.5" means less than or equal to half a year but greater than one season, "1" means less than or equal to One year but greater than half a year, and so on. Temperature fluctuation indicates the temperature range during operation, which can be represented by a temperature scale (Temperature Scale), for example, "0" represents 0°C~9.99°C, "1" represents 10°C~19.99°C, and so on. The read disturbance refers to the read frequency, which can be represented by the average read count (Average of Read Count), which is the average of the read counts of all physical blocks. The NAND Flash ID carries information about the manufacturer, product type, date of manufacture, and more. Taking the MLC optimized reading voltmeter as an example, the data structure of each record can be expressed as {RV0, RV1, RV2, EP0, EP1, EP2, EP3, EP4}, where "RV0" to "RV2" represent three The voltage offset value, and "EP0" to "EP4" respectively represent environmental parameters such as data durability, data retention, temperature fluctuation, read disturbance, and NAND flash memory identification code. Taking the TLC optimized reading voltmeter as an example, the data structure of each record can be expressed as {RV0, RV1, RV2, RV3, RV4, RV5, RV6, EP0, EP1, EP2, EP3, EP4}, where "RV0 " to " RV6 " represent 7 voltage offset values, and " EP0 " to " EP4 " respectively represent environmental parameters such as data durability, data retention, temperature fluctuation, read disturbance, and NAND flash memory identification code.

除了最佳化讀取電壓表外,閃存控制器240也在NAND閃存模組230 中的指定區域儲存目前環境參數,用於反應NAND閃存模組230的目前運行狀態。 In addition to optimizing the read voltmeter, the flash memory controller 240 is also in the NAND flash memory module 230 The designated area in , stores the current environmental parameters, and is used to reflect the current running status of the NAND flash memory module 230 .

參考圖6所示的資料讀取方法的流程圖,此方法由閃存控制器240中的MCU執行,詳細說明如下: With reference to the flow chart of the data reading method shown in Figure 6, this method is carried out by the MCU in the flash memory controller 240, described in detail as follows:

步驟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)等,用於在多組環境參數中找出和目前環境參數最接近的一組環境參數,本發明並不因此局限。 Step S605: Determine a set of read voltages for a specific memory cell type according to the current environmental parameters of the NAND flash memory module 230 and the contents of the optimized read voltage table. Specifically, before actually reading data (that is, before entering the loop of actually reading data), the MCU first obtains the current environmental parameters of the NAND flash memory module 230, and searches for the corresponding best memory cell type. Read the voltmeter to obtain a set of RV offset values adapted to the current environmental parameters. The particular memory cell type may be SLC, MLC, TLC, QLC, etc. The current environmental parameters of the NAND flash memory module 230 may include data durability, data retention, temperature fluctuation, read disturbance, NAND flash memory identification code, and the like. The data durability, data retention, temperature fluctuation and reading disturbance of the NAND flash memory module 230 can be respectively calculated according to the current average erasing times of the NAND flash memory module 230, the storage time length of the data therein, and the current operating temperature. range and the current average read count. MCU can first filter out the record of the NAND flash memory identification code that does not belong to the NAND flash memory module 230 from the optimal reading voltmeter; find out that the remaining record of the optimal reading voltmeter has the closest to the current environmental parameter The matching records of the environmental parameters; and generating the set of read voltages according to the content in the matching records. The MCU can apply any similarity comparison algorithm, decision tree, and empirical rules (Heuristic Rules) known to those skilled in the art to find a set of environmental parameters closest to the current environmental parameters among multiple sets of environmental parameters. The invention is not limited thereby.

接著,根據搜索到的該組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),還可避免頻繁的啟動讀取重試機制。 Then, the read voltage is determined according to the searched set of RV offset values. The read voltage can be determined using the following formula (1): RV adj,i =RV rcm,i +RV off,i where RV adj,i represents the i-th final determined read voltage, and RV rcm,i represents the NAND flash memory The i-th recommended reading voltage provided by the manufacturer of the module 230, RV off, i represents the i-th RV offset value found, i is an integer between 0 and RV max -1, and RV max represents the corresponding The total number of RV offset values for the memory cell type (eg, the total number of RV offset values corresponding to TLC is 7). Assume that the recommended reading voltage for reading a TLC block is {0.8V, 1.4V, 2.4V, 3.2V, 3.9V, 4.8V, 5.7V}, and the searched RV offset value is {+1,+1, 0,0,0,0,-2}: The final read voltage is {0.81V, 1.41V, 2.4V, 3.2V, 3.9V, 4.8V, 5.68V}. Optimizing the reading of the voltmeter and its use not only reduces the Bit Error Rate (BER), but also avoids frequent activation of the read retry mechanism.

步驟S610:驅動閃存介面以決定的讀取電壓從NAND閃存模組230的第一個或者下一個指定頁面以建議讀取電壓讀取資料和CRC碼。 Step S610: Drive the flash memory interface with a determined read voltage to read data and CRC codes from the first or next designated page of the NAND flash memory module 230 with a recommended read voltage.

圖6中的步驟S520至S550的技術細節可參考圖5的相應段落說明,為求簡明不再贅述。 For technical details of steps S520 to S550 in FIG. 6 , reference may be made to corresponding paragraphs in FIG. 5 , and details are omitted for simplicity.

然而,NAND閃存模組230中儲存的最佳化讀取電壓表的RV參數組在某些工作條件下可能不適合,或者某些工作條件超出了最佳化讀取電壓表中原先提供的多組的環境參數的範圍。為了解決如上所述的問題,本發明實施例另提出最佳化讀取電壓表的動態更新方法,用於修改指定的最佳化讀取電壓表中特定的環境參數組所對應的RV參數,或者是新增相應於最近偵測到的多組環境參數以及其所對應的RV參數組到指定的最佳化讀取電壓表。 However, the RV parameter set of the optimized read voltage table stored in the NAND flash memory module 230 may not be suitable under certain operating conditions, or some operating conditions exceed the original set of RV parameters provided in the optimized read voltage table. The range of environmental parameters. In order to solve the above-mentioned problems, the embodiment of the present invention further proposes a dynamic update method for an optimized reading voltmeter, which is used to modify the RV parameters corresponding to a specific environmental parameter group in the specified optimal reading voltmeter, Or add multiple sets of recently detected environmental parameters and their corresponding RV parameter sets to the designated optimized reading voltmeter.

參考圖2的方塊圖。在一個或者多個主機讀取命令執行成功後,閃存控制器240中的MCU於載入和執行資料讀取監視模組(Data-read Monitoring Module)242的程式碼時,產生讀取效能資料(Read-performance Data),並且儲存於閃存控制器240中的RAM,作為一筆資料讀取交易(Data-read Transaction)。讀取效能資料包含NAND閃存模組230的目前環境參數、特定記憶單元類型和位元錯誤率(Bit Error Rate,BER),BER用於衡量這筆資料讀取交易的品質,數值越高代表品質越低。 Refer to the block diagram in Figure 2. After one or more host read commands are executed successfully, the MCU in the flash memory controller 240 generates read performance data ( Read-performance Data), and stored in the RAM in the flash memory controller 240, as a data-read transaction (Data-read Transaction). The reading performance data includes the current environmental parameters of the NAND flash memory module 230, the specific memory cell type, and the bit error rate (Bit Error Rate, BER). BER is used to measure the quality of the data reading transaction. The higher the value, the better the quality. lower.

參考圖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偏移值。 Refer to the block diagram in FIG. 2 and the sequence diagram in FIG. 7 . In order to complete the collection of read performance data, The MCU in the flash memory controller 240 can load and execute the program code of the reporting module (Reporting Module) 244 in the background to monitor whether the processing unit 210 requests to read performance data. The processing unit 210 can periodically load and execute the program code of the Data Collection-and-feedback Module (Data Collection-and-feedback Module) 212, for sending a request 710 for reading performance data to the feedback module through the internal bus. Group 244. After the report module 244 receives the request 710, it reads all data read transactions from the RAM in the flash memory controller 240, and transmits the reply 720 carrying the data read transaction 730 to the data collection and feedback module through the internal bus. Group 212. After the data collection and feedback module 212 collects the specified number of data read transaction transactions 730, the data read transaction 730 is sent to the read performance data processing module executed by the server 130 in the flash memory research laboratory through the network 100 Group 750. Engineers can use the man-machine interface provided by the reading performance data processing module 750 to select data reading transactions whose BER exceeds the threshold (Threshold), and use artificial intelligence engines, statistical tools, or other algorithms to read data based on the selected data. The content of the transaction to mark the environmental parameters of bad settings. Engineers can design and conduct experiments according to the content of badly set environmental parameters, and modify the corresponding optimal reading voltmeter according to the experimental results. Engineers can modify a record in the corresponding optimized reading voltmeter to change the RV offset value of the specified group associated with the environmental parameters of the specified group. Alternatively, the engineer can add a new record in the corresponding optimized reading voltmeter, including a new set of environmental parameters and their associated set of RV offset values.

參考圖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的相關說明。 Refer to the block diagram of FIG. 2 and the sequence diagram of FIG. 8 . In order to complete the update of the optimized reading voltmeter, the processing unit 210 can load and execute the program code of the table-update triggering module (Table-update Triggering Module) 214 in the background, which is used to monitor the server in the flash memory research laboratory 130 whether to request to update the optimized read voltmeter; the MCU in the flash memory controller 240 can load and execute the program code of the Table-update Module (Table-update Module) 246 in the background to monitor whether the processing unit 210 requests to update Optimized read voltmeter for a specific memory cell type. After the update of the optimized read voltmeter for the specific memory cell type is completed, the processing unit of the server 130 loads and executes the table transfer module The program code of (Table Delivery Module) 810 sends a request 820 for updating the optimized read voltage table of a specific memory cell type through the network 100 to the table update startup module 214, which carries the optimized read table to be updated. Get the identification code of the voltmeter and the record of reading the voltmeter after updating. When the table update activation module 214 receives the request 820, it sends a request 830 to the table update module 246 through the internal bus to update the optimal reading voltage table of the specific memory cell type, which carries the optimal read voltage table to be updated. The identification code of the optimized read voltmeter (including the information of the specific memory cell type), and the updated record of the optimized read voltmeter is sent to the table updating module 246. After the table updating module 246 receives the request 830 for updating the optimized reading voltage table of a specific memory cell type and the record of the updated optimal reading voltage table, it drives the flash memory interface in the flash memory controller 240 to use After writing and updating, the optimized reading voltage table is recorded to a specified position in the NAND flash memory module 230, so that the data reading operation of the specific memory cell type can refer to the updated optimized reading voltage table Adjust RV voltage. For the technical details of the data read operation using the updated optimized read voltmeter for a specific memory cell type, please refer to the related description of FIG. 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的功能。 Although the above paragraphs take the data collection and feedback module 212 and the table update activation module 214 executed in the computing device 20 of FIG. , but the technical details described therein are also applicable to the data collection and feedback module 412 and the form update activation module 414 executed in the cloud storage system 120 of FIG. 4 . Any one of the solid-state hard drives 420#0 to 420#n of the cloud storage system 120 can be realized by the NAND flash storage device 220 in FIG. The flash memory controllers can all execute the functions of the data reading monitoring module 242 , the reporting module 244 and the table updating module 246 as described above.

本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如主機端中的應用程式、裝置端中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實 現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。 All or part of the steps in the method of the present invention can be implemented by computer instructions, such as an application program on the host side, a firmware translation layer (Firmware Translation Layer, FTL) on the device side, a driver program for specific hardware, and the like. In addition, it is also possible Now in other types of programs. Those skilled in the art can write the methods of the embodiments of the present invention into computer instructions, which will not be described again for the sake of brevity. The computer instructions implemented according to the method of the embodiment of the present invention can be stored in a suitable computer-readable medium, such as DVD, CD-ROM, USB disk, hard disk, and can also be placed through a network (for example, the Internet, or other suitable means of access to the web server.

雖然圖2至圖4中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖5至圖6的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。 Although the elements described above are included in FIGS. 2 to 4 , it is not excluded to use more other additional elements to achieve better technical effects without violating the spirit of the invention. In addition, although the flowcharts in FIGS. 5 to 6 are executed in a specified order, those skilled in the art can modify the order of these steps without violating the spirit of the invention while achieving the same effect. Therefore, The invention is not limited to using only the sequence described above. In addition, those skilled in the art may also integrate several steps into one step, or perform more steps sequentially or in parallel in addition to these steps, and the present invention is not limited thereby.

雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention is described using the above examples, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, the invention covers modifications and similar arrangements obvious to those skilled in the art. Therefore, the claims of the application must be interpreted in the broadest manner to include all obvious modifications and similar arrangements.

212:資料搜集和反饋模組 212:Data Collection and Feedback Module

244:回報模組 244:Return module

710:讀取效能資料的請求 710: Request to read performance data

720:回覆 720: reply

730:資料讀取交易 730: Data reading transaction

750:讀取效能資料處理模組 750:Read performance data processing module

Claims (13)

一種動態更新最佳化讀取電壓表的方法,由閃存控制器的微控制器單元執行,所述方法包含:當監聽到主機端發出的讀取效能資料的請求後,獲取並且回覆資料讀取交易給所述主機端,使得所述資料讀取交易能夠被用於更新特定記憶單元類型的最佳化讀取電壓表,其中,所述資料讀取交易包含NAND閃存模組的目前環境參數、所述特定記憶單元類型和位元錯誤率;以及當監聽到所述主機端發出的更新所述特定記憶單元類型的所述最佳化讀取電壓表的請求後,寫入所述特定記憶單元類型的更新後的最佳化讀取電壓表的多筆紀錄到所述NAND閃存模組的指定位置,其中,每筆所述紀錄包含一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數。 A method for dynamically updating and optimizing the read voltmeter, which is executed by the microcontroller unit of the flash memory controller, the method includes: after monitoring the request for reading performance data sent by the host end, obtaining and replying to the data read transaction to the host side, so that the data reading transaction can be used to update the optimized reading voltage table of a specific memory cell type, wherein the data reading transaction includes the current environmental parameters of the NAND flash memory module, The specific memory cell type and the bit error rate; and after listening to the request sent by the host to update the optimized reading voltage table of the specific memory cell type, write to the specific memory cell Multiple records of the updated optimized read voltmeter of the type are stored in specified positions of the NAND flash memory module, wherein each record includes a set of read voltage parameters, and the set of read voltage parameters The environment parameter to which the parameter is associated. 如請求項1所述的動態更新最佳化讀取電壓表的方法,包含:依據所述NAND閃存模組的目前環境參數和所述更新後的最佳化讀取電壓表的內容決定所述特定記憶單元類型的一組讀取電壓;以及以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。 The method for dynamically updating the optimized reading voltmeter as described in claim 1, comprising: determining said a set of read voltages for specific memory cell types; and reading data from pages of the NAND flash memory module with the set of read voltages. 如請求項1所述的動態更新最佳化讀取電壓表的方法,其中,所述特定記憶單元類型為單層式單元、多層式單元、三層式單元或者四層式單元。 The method for dynamically updating and optimizing the read voltmeter according to claim 1, wherein the specific memory cell type is a single-layer cell, a multi-layer cell, a three-layer cell or a four-layer cell. 如請求項1所述的動態更新最佳化讀取電壓表的方法,包含:從所述更新後的最佳化讀取電壓表中濾除不屬於所述NAND閃存模 組的NAND閃存識別碼的紀錄;找出所述更新後的最佳化讀取電壓表的留下來紀錄中具有和所述目前環境參數最接近的所述環境參數的匹配紀錄;以及依據所述匹配紀錄中的所述一組讀取電壓參數產生所述一組讀取電壓。 The method for dynamically updating the optimized read voltmeter as described in claim 1, comprising: filtering out items that do not belong to the NAND flash memory module from the updated optimized read voltmeter. The record of the NAND flash memory identification code of group; Find the matching record with the environmental parameter closest to the current environmental parameter in the leftover record of the optimized reading voltmeter after finding out the update; And according to the Matching the set of read voltage parameters in the record generates the set of read voltages. 如請求項1所述的動態更新最佳化讀取電壓表的方法,其中,所述目前環境參數包含所述NAND閃存模組目前的平均抹除次數、其中的資料的儲存時間長度、目前運行時的溫度範圍和目前的平均讀取次數;以及每筆所述紀錄中的所述環境參數包含平均抹除次數、資料的儲存時間長度、運行時的溫度範圍和平均讀取次數。 The method for dynamically updating and optimizing the read voltmeter as described in claim 1, wherein the current environmental parameters include the current average number of erasing times of the NAND flash memory module, the storage time length of the data therein, and the current operating The temperature range during operation and the current average reading times; and the environmental parameters in each record include the average erasing times, the storage time length of data, the operating temperature range and the average reading times. 如請求項1所述的動態更新最佳化讀取電壓表的方法,其中,所述一組讀取電壓參數包含多個讀取電壓偏移值,所述一組讀取電壓使用以下公式決定:RVadj,i=RVrcm,i+RVoff,i RVadj,i代表所述一組讀取電壓中的第i個讀取電壓,RVrcm,i代表所述NAND閃存模組的製造商所提供的第i個建議讀取電壓,RVoff,i代表匹配紀錄中的第i個讀取電壓偏移值,i為0至RVmax-1之間的整數,RVmax代表所述特定記憶單元類型的RV偏移值的總數。 The method for dynamically updating and optimizing the read voltmeter as described in claim 1, wherein the set of read voltage parameters includes a plurality of read voltage offset values, and the set of read voltages is determined using the following formula : RV adj,i =RV rcm,i +RV off,i RV adj,i represents the i-th read voltage in the set of read voltages, RV rcm,i represents the manufacturer of the NAND flash memory module The i-th suggested read voltage provided, RV off, i represents the i-th read voltage offset value in the matching record, i is an integer between 0 and RV max -1, and RV max represents the specific memory The total number of RV offset values for the unit type. 一種電腦程式產品,包含程式碼,其中,當閃存控制器的微控制器單元執行所述程式碼時,實施如請求項1至6中任一項所述的動態更新最佳化讀取電壓表的方法。 A computer program product, comprising program code, wherein, when the microcontroller unit of the flash memory controller executes the program code, implements the dynamic update optimization reading voltmeter as described in any one of claims 1 to 6 Methods. 一種動態更新最佳化讀取電壓表的裝置,包含:閃存介面,耦接NAND閃存模組;以及 微控制器單元,耦接所述閃存介面,用於當監聽到主機端發出的讀取效能資料的請求後,獲取並且回覆資料讀取交易給所述主機端,使得所述資料讀取交易能夠被用於更新特定記憶單元類型的最佳化讀取電壓表,其中,所述資料讀取交易包含NAND閃存模組的目前環境參數、所述特定記憶單元類型和位元錯誤率;以及當監聽到所述主機端發出的更新所述特定記憶單元類型的所述最佳化讀取電壓表的請求後,驅動所述閃存介面以寫入所述特定記憶單元類型的更新後的最佳化讀取電壓表的多筆紀錄到所述NAND閃存模組的指定位置,其中,每筆所述紀錄包含一組讀取電壓參數,和所述一組讀取電壓參數關聯到的環境參數。 A device for dynamically updating and optimizing the read voltmeter, comprising: a flash memory interface coupled to a NAND flash memory module; and A microcontroller unit, coupled to the flash memory interface, is used to obtain and reply a data read transaction to the host after monitoring the request for reading performance data sent by the host, so that the data read transaction can is used to update an optimized read voltage table for a specific memory cell type, wherein the data read transaction includes the current environmental parameters of the NAND flash memory module, the specific memory cell type and bit error rate; and when listening After receiving the request from the host to update the optimized read voltage table of the specific memory cell type, drive the flash memory interface to write the updated optimized read voltage table of the specific memory cell type. Taking multiple records of the voltmeter to a designated location of the NAND flash memory module, wherein each record includes a set of read voltage parameters and the environmental parameters associated with the set of read voltage parameters. 如請求項8所述的動態更新最佳化讀取電壓表的裝置,其中,所述微控制器單元依據所述NAND閃存模組的目前環境參數和所述更新後的最佳化讀取電壓表的內容決定所述特定記憶單元類型的一組讀取電壓;以及驅動所述閃存介面以所述一組讀取電壓從所述NAND閃存模組的頁面讀取資料。 The device for dynamically updating the optimized read voltage meter as described in claim 8, wherein the microcontroller unit is based on the current environmental parameters of the NAND flash memory module and the updated optimized read voltage The contents of the table determine a set of read voltages for the specific memory cell type; and drive the flash memory interface to read data from a page of the NAND flash memory module with the set of read voltages. 如請求項8所述的動態更新最佳化讀取電壓表的裝置,其中,所述特定記憶單元類型為單層式單元、多層式單元、三層式單元或者四層式單元。 The device for dynamically updating and optimizing reading of a voltmeter according to claim 8, wherein the specific memory cell type is a single-layer cell, a multi-layer cell, a three-layer cell or a four-layer cell. 如請求項8所述的動態更新最佳化讀取電壓表的裝置,其中,所述微控制器單元從所述更新後的最佳化讀取電壓表中濾除不屬於所述NAND閃存模組的NAND閃存識別碼的紀錄;找出所述更新後的最佳化讀取電壓表的留下來紀錄中具有和所述目前環境參數最接近的所述環境參數的匹配紀錄;以及依據所述匹配紀錄中的所述一組讀取電壓參數產生 所述一組讀取電壓。 The device for dynamically updating the optimized read voltmeter as described in claim 8, wherein the microcontroller unit filters out the elements that do not belong to the NAND flash memory module from the updated optimized read voltmeter. The record of the NAND flash memory identification code of group; Find out the matching record that has the closest described environmental parameter with described current environmental parameter in the remaining record of the optimized reading voltmeter after described update; And according to described Matching the set of read voltage parameters in the record produces The set of read voltages. 如請求項8所述的動態更新最佳化讀取電壓表的裝置,其中,所述目前環境參數包含所述NAND閃存模組目前的平均抹除次數、其中的資料的儲存時間長度、目前運行時的溫度範圍和目前的平均讀取次數;以及每筆所述紀錄中的所述環境參數包含平均抹除次數、資料的儲存時間長度、運行時的溫度範圍和平均讀取次數。 The device for dynamically updating and optimizing the reading voltmeter as described in claim 8, wherein the current environmental parameters include the current average number of erasing times of the NAND flash memory module, the storage time length of the data therein, and the current operation The temperature range during operation and the current average reading times; and the environmental parameters in each record include the average erasing times, the storage time length of data, the operating temperature range and the average reading times. 如請求項8所述的動態更新最佳化讀取電壓表的裝置,其中,所述一組讀取電壓參數包含多個讀取電壓偏移值,所述一組讀取電壓使用以下公式決定:RVadj,i=RVrcm,i+RVoff,i RVadj,i代表所述一組讀取電壓中的第i個讀取電壓,RVrcm,i代表所述NAND閃存模組的製造商所提供的第i個建議讀取電壓,RVoff,i代表匹配紀錄中的第i個讀取電壓偏移值,i為0至RVmax-1之間的整數,RVmax代表所述特定記憶單元類型的RV偏移值的總數。 The device for dynamically updating and optimizing the read voltmeter as described in claim 8, wherein the set of read voltage parameters includes a plurality of read voltage offset values, and the set of read voltages is determined using the following formula : RV adj,i =RV rcm,i +RV off,i RV adj,i represents the i-th read voltage in the set of read voltages, RV rcm,i represents the manufacturer of the NAND flash memory module The i-th suggested read voltage provided, RV off, i represents the i-th read voltage offset value in the matching record, i is an integer between 0 and RV max -1, and RV max represents the specific memory The total number of RV offset values for the unit type.
TW111115127A 2022-01-11 2022-04-21 Method and computer program product and apparatus for dynamically updating optimization read voltage table TWI787116B (en)

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
TWI787116B true TWI787116B (en) 2022-12-11
TW202329142A TW202329142A (en) 2023-07-16

Family

ID=85795092

Family Applications (2)

Application Number Title Priority Date Filing Date
TW111115126A TWI814352B (en) 2022-01-11 2022-04-21 Method and computer program product and apparatus for reading data with optimization read voltage table
TW111115127A TWI787116B (en) 2022-01-11 2022-04-21 Method and computer program product and apparatus for dynamically updating optimization read voltage table

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW111115126A TWI814352B (en) 2022-01-11 2022-04-21 Method and computer program product and apparatus for reading data with optimization read voltage table

Country Status (2)

Country Link
CN (2) CN116469439A (en)
TW (2) TWI814352B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201528274A (en) * 2013-09-24 2015-07-16 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
CN111863097A (en) * 2020-06-29 2020-10-30 联芸科技(杭州)有限公司 Reading control method and device of flash memory
US11210210B2 (en) * 2017-11-27 2021-12-28 Huawei Technologies Co., Ltd. Read latency reduction method and apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107452421B (en) * 2016-05-31 2020-06-16 建兴储存科技(广州)有限公司 Solid state storage device and state prediction method thereof
KR20190017550A (en) * 2017-08-11 2019-02-20 에스케이하이닉스 주식회사 Memory system and operating method of memory system
KR20210155055A (en) * 2020-06-15 2021-12-22 에스케이하이닉스 주식회사 Memory system, memory controller, and operating method of memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201528274A (en) * 2013-09-24 2015-07-16 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
US11210210B2 (en) * 2017-11-27 2021-12-28 Huawei Technologies Co., Ltd. Read latency reduction method and apparatus
CN111863097A (en) * 2020-06-29 2020-10-30 联芸科技(杭州)有限公司 Reading control method and device of flash memory

Also Published As

Publication number Publication date
TW202329142A (en) 2023-07-16
TW202329141A (en) 2023-07-16
CN116469440A (en) 2023-07-21
CN116469439A (en) 2023-07-21
TWI814352B (en) 2023-09-01

Similar Documents

Publication Publication Date Title
US9472244B2 (en) Apparatus power control
US8984253B2 (en) Transaction log recovery
US11126369B1 (en) Data storage with improved suspend resume performance
KR20150044753A (en) Operating method for data storage device
US20220326851A1 (en) Managing bin placement for block families of a memory device based on trigger metric valves
US11775389B2 (en) Deferred error-correction parity calculations
KR20210006102A (en) Memory system for determining usage of buffer based on i/o throughput and operation method thereof
US11915776B2 (en) Error avoidance based on voltage distribution parameters of block families
US11941277B2 (en) Combination scan management for block families of a memory device
US20230059923A1 (en) Executing a refresh operation in a memory sub-system
CN113272905A (en) Defect detection in memory with time varying bit error rate
EP4002129A1 (en) Time-based combining for block families of a memory device
TWI787116B (en) Method and computer program product and apparatus for dynamically updating optimization read voltage table
US20220129154A1 (en) Managing bin placement for block families of a memory device using trigger metric scores
WO2022094131A1 (en) Multiple open block families supporting multiple cursors of a memory device
US20230221873A1 (en) Method and non-transitory computer-readable storage medium and apparatus for dynamically updating optimization read voltage table
US20230221872A1 (en) Method and non-transitory computer-readable storage medium and apparatus for reading data with optimization read voltage table
US11467897B1 (en) Adaptive data integrity scan frequency
US11182087B2 (en) Modifying write performance to prolong life of a physical memory device
US11960745B2 (en) Empty page scan operations adjustment
US11798614B2 (en) Automated voltage demarcation (VDM) adjustment for memory device
US20230377664A1 (en) Memory sub-system for memory cell touch-up
CN112035060A (en) Error detection method and system for storage medium and storage system