Data reading method, storage controller and electronic device
By determining and updating the read voltage model of the target storage area in the memory controller, the accurate read voltage is calculated, which solves the problem of long read delay in SSD, and improves the efficiency of read operation and the reliability of the medium.
Patent Information
- Application Number
- CN201980096783.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-05-26
- Filing Date
- 2019-05-31
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2039-05-31
AI Technical Summary
In the prior art, solid-state hard disk (SSD) has a long read delay due to the characteristics of the flash memory medium during the read operation, which affects the quality of service (QoS). The existing read voltage prefabricated technology has low reliability and large workload, and the first read is successful. The rate increase is limited.
By determining the target read voltage model corresponding to the target storage area in the storage controller, an accurate read voltage is calculated based on the parameter values of the read voltage model, the read operation delay is reduced, and the parameter values of the read voltage model are updated online to follow the medium Changes to reduce storage space overhead.
It improves the accuracy and efficiency of read operations, reduces read delay, enhances the reliability of storage media, and reduces the overhead of storage space.
Smart Images

Figure CN113874942B_ABST
Abstract
Description
[0001] This application claims priority to patent application No. PCT / CN2019 / 088460, filed on May 26, 2019, the entire contents of which are incorporated herein by reference. Technical Field
[0002] The present application relates to the technical field of data storage, and in particular to a data reading method, a storage controller and an electronic device. Background Art
[0003] Solid state drive (SSD) refers to a storage medium such as a hard disk or memory card made of a solid-state electronic storage chip array. The quality of service (QoS) of SSD refers to the ability of SSD products to provide stable, consistent and predictable request response services to the host. It is one of the key factors in shaping the competitiveness of SSD products. SSD can be used in scenarios such as data centers and servers. Read response time (read latency) is a key performance indicator of QoS, which mainly depends on the number of read operations that occur in the flash media in response to the host request. As the main storage medium of SSD, flash is affected by many factors such as the number of program / erase cycles (PE) and data retention time. The voltage signal carrying data will drift, so multiple read operations are required to successfully respond to the host request, resulting in a long read latency in QoS.
[0004] At present, in the prior art, the read delay can be reduced by the read voltage pre-tabulation technology, that is, by analyzing the relationship between the factors affecting the read voltage and the voltage offset, making an influencing factor and read voltage compensation table or summarizing a specific formula by a fitting method, and compensating the read voltage after looking up the table or calculating according to the influencing factor value when using it, thereby improving the first read success rate and reducing the read delay. However, the read voltage pre-tabulation technology is related to the sampled samples, and different read voltage pre-tabulations need to be made for different storage media, which is a large workload. In addition, the storage medium will change during use, and the reliability of the read voltage pre-tabulation technology is low, and the improvement of the first read success rate is limited, so the effect of reducing the read delay is not good. Summary of the invention
[0005] The present application provides a data reading method, a storage controller and an electronic device to solve the problem of long reading delay in the prior art.
[0006] In a first aspect, the present application provides a data reading method, which is applied to a controller, wherein a front end of the controller is used to connect to a host, and a back end of the controller is used to connect to a non-volatile storage medium. The method comprises: a controller receives a read request sent by a host, wherein the read request comprises location indication information of requested data; the controller determines a target read voltage model corresponding to a target storage area where the target physical location is located according to a target physical location indicated by the location indication information, wherein the target physical location is a physical location of the requested data in a non-volatile storage medium, the non-volatile storage medium comprises one or more storage areas, each storage area comprises a plurality of target storage units obtained by dividing the non-volatile storage medium according to a target division granularity, and the read voltage model is a function of an identifier of the target storage unit; the controller obtains a parameter value of the target read voltage model corresponding to the target storage area from a correspondence between the storage area and the parameter value of the read voltage model according to the target storage area, wherein in the correspondence between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model; the controller determines a read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model and the parameter value of the target read voltage model; the controller obtains the request data according to the read voltage corresponding to the target physical location, and sends the request data to the host.
[0007] Through the above scheme, the controller can determine the target read voltage model corresponding to the target storage area where the target physical location is located according to the target physical location indicated by the location indication information of the request data in the read request sent by the host, and obtain the parameter value of the target read voltage model corresponding to the target storage area from the correspondence between the storage area and the parameter value of the read voltage model according to the target storage area, and then determine the read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model and the parameter value of the target read voltage model, wherein the read voltage model is a function of the identifier of the target storage unit. Since in the embodiment of the present application, different storage areas in the non-volatile storage medium correspond to different parameter values of the read voltage model, it is equivalent to dividing the read voltage model corresponding to the non-volatile storage medium into multiple parts, each part is characterized by its own corresponding read voltage model and the parameter value of the read voltage model, and then the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the delay of the read operation can be reduced.
[0008] In addition, the controller determines the read voltage corresponding to the target physical location based on the identifier of the target storage unit where the target physical location is located, the target read voltage model, and the parameter value of the target read voltage model. The controller only needs to store the parameter values of the read voltage model corresponding to different storage areas, and does not need to store specific read voltage values, which can reduce storage space overhead.
[0009] In one possible implementation, the controller may obtain the parameter value of the target read voltage model corresponding to the target storage area in the following manner: when the target storage area corresponds to multiple parameter values of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, the controller selects one or more from the parameter values of the multiple read voltage models corresponding to the target storage area according to the target physical position as the target read voltage model parameters.
[0010] In one possible implementation, the controller may specifically determine the target read voltage model corresponding to the target storage area where the target physical location is located in the following manner: the controller determines the target read voltage model corresponding to the target storage area where the target physical location is located from the correspondence between the storage area and the read voltage model based on the target physical location indicated by the position indication information.
[0011] In one possible implementation, the read voltage model is a model determined based on the read voltage characteristics of the target storage unit in the non-volatile storage medium, and the target partition granularity is determined based on the structure of the non-volatile storage medium and the read voltage characteristics of the storage unit at different partition granularities in the non-volatile storage medium.
[0012] In a possible implementation manner, the read voltage model is used to characterize the corresponding relationship between the identifier of the target storage unit and the optimal read voltage.
[0013] In one possible implementation, in a scenario where the parameter value of the target read voltage model includes the coefficient of the identification of the target storage cell in a function regarding the identification of the target storage cell and the value of the constant term in the function regarding the identification of the target storage cell, the controller may determine the read voltage corresponding to the target physical location by the following method: the controller determines the function satisfied by the read voltage in the target storage area and the identification of the target storage cell in the target storage area based on the target read voltage model and the parameter value of the target read voltage model, and calculates the read voltage corresponding to the target physical location based on the identification of the target storage cell where the target physical location is located and the function satisfied by the read voltage in the target storage area and the identification of the target storage cell in the target storage area.
[0014] In a possible implementation, since the read voltage corresponding to the non-volatile storage medium may drift under the influence of multiple factors such as the number of erase and write times, data retention time, the number of read operations, and temperature, in order to further improve the accuracy of the read voltage determined by the controller, the controller also needs to update the parameter value of the read voltage model corresponding to the storage area in the non-volatile storage medium online, so that the parameter value of the read voltage model can accurately change with the change of the read voltage of the non-volatile storage medium. Specifically, when any one of each storage area in the non-volatile storage medium meets the preset update condition, the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model.
[0015] In one possible implementation, when the controller is in a system idle time window or meets a preset update cycle, the controller determines a first error parameter under any corresponding read voltage in each storage area; when the first error parameter is greater than or equal to a first threshold, the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model.
[0016] In a possible implementation, the preset update period is related to the usage status of the storage area; or, the preset update period is related to the average service life of a plurality of storage areas included in the non-volatile storage medium.
[0017] In one possible implementation, for any storage area in the correspondence between the storage area and the parameter values of the read voltage model, when the storage area corresponds to the parameter values of multiple read voltage models, the parameter values of the multiple read voltage models among the parameter values of the multiple read voltage models corresponding to the storage area that meet the set conditions are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or approximately the same, which is equivalent to compressing the correspondence between the storage area and the parameter values of the read voltage model, thereby reducing the stored content in the correspondence between the storage area and the parameter values of the read voltage model, reducing the storage space occupied by the parameter values of the read voltage model, and thereby saving the storage space of the controller.
[0018] In a possible implementation, after the controller performs a rewrite or erase operation on data in a storage area, the influence of factors such as the number of erase and write operations, data retention time, and the number of read operations on the read voltage will be reset. Therefore, after the controller performs a rewrite or erase operation on data in a storage area, it is also necessary to initialize the parameter value of the read voltage model corresponding to the storage area. Specifically, after the controller performs a rewrite or erase operation on data in a storage area, the controller initializes the parameter value of the read voltage model corresponding to the storage area performing the rewrite or erase operation to a set value, wherein the set value is a default value (pre-configured in the controller) or a pre-configured preset value determined according to the read voltage characteristics of the storage area performing the rewrite or erase operation.
[0019] In a possible implementation, the target storage unit may be a physical unit in a non-volatile storage medium, specifically any one of a die, a plane, a block, a string, a layer, a page, etc. Alternatively, the target storage unit may also be a logical unit formed by logically abstracting a physical unit in a non-volatile storage medium. The positions of the physical units in a logical unit may be continuous or discontinuous. Specifically, it may be a storage unit composed of multiple dies, or a storage unit composed of multiple planes, or a storage unit composed of multiple blocks; a storage unit composed of multiple strings; a storage unit composed of multiple layers, or a storage unit composed of multiple pages, etc.
[0020] In a second aspect, the present application provides a storage controller, the front end of which is used to connect to a host, and the back end of which is used to connect to a non-volatile storage medium. The storage controller includes: a receiving unit, a processing unit, and a sending unit. The receiving unit is used to receive a read request sent by a host, wherein the read request includes location indication information of the requested data; the processing unit is used to determine, according to the target physical position indicated by the location indication information, a target read voltage model corresponding to a target storage area where the target physical position is located, wherein the target physical position is a physical position of the requested data in a non-volatile storage medium, wherein the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to a target division granularity, and the read voltage model is a function of an identifier of the target storage unit; according to the target storage area, from the correspondence between the storage area and the parameter value of the read voltage model, a parameter value of the target read voltage model corresponding to the target storage area is obtained, wherein, in the correspondence between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model; according to the identifier of the target storage unit where the target physical position is located, the target read voltage model and the parameter value of the target read voltage model, a read voltage corresponding to the target physical position is determined; and, according to the read voltage corresponding to the target physical position, the request data is obtained; the sending unit is used to send the request data to the host.
[0021] In one possible implementation, when the processing unit obtains the parameter value of the target read voltage model corresponding to the target storage area from the correspondence between the storage area and the parameter value of the read voltage model according to the target storage area, it is specifically used to: when the target storage area corresponds to multiple parameter values of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, select one or more from the parameter values of the multiple read voltage models corresponding to the target storage area according to the target physical position as the target read voltage model parameter.
[0022] In one possible implementation, when the processing unit determines the target read voltage model corresponding to the target storage area where the target physical location is located based on the target physical location indicated by the location indication information, it is specifically used to: determine the target read voltage model corresponding to the target storage area where the target physical location is located from the correspondence between the storage area and the read voltage model based on the target physical location indicated by the location indication information.
[0023] In a possible implementation, the read voltage model is used to characterize the corresponding relationship between the identifier of the target storage unit and the optimal read voltage.
[0024] In a possible implementation, the parameter value of the target read voltage model includes the coefficient of the identification of the target storage unit in the function of the identification of the target storage unit and the value of the constant term in the function of the identification of the target storage unit. When the processing unit determines the read voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located, the target read voltage model and the parameter value of the target read voltage model, it is specifically used to: determine the function satisfied by the read voltage in the target storage area and the identification of the target storage unit in the target storage area according to the target read voltage model and the parameter value of the target read voltage model; calculate the read voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and the function satisfied by the read voltage in the target storage area and the identification of the target storage unit in the target storage area.
[0025] In a possible implementation, the processing unit is further configured to: when any one of each storage area meets a preset update condition, update the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model.
[0026] In one possible implementation, the processing unit is specifically used to: determine a first error parameter under a corresponding read voltage for any one of the storage areas when the storage controller is in a system idle time window or meets a preset update cycle; and when the first error parameter is greater than or equal to a first threshold, update the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model.
[0027] In a possible implementation, the preset update period is related to the usage status of the storage area; or, the preset update period is related to the average service life of a plurality of storage areas included in the non-volatile storage medium.
[0028] In one possible implementation, for any storage area in the correspondence between storage areas and parameter values of read voltage models, when the storage area corresponds to parameter values of multiple read voltage models, parameter values of multiple read voltage models that meet set conditions among the parameter values of the multiple read voltage models corresponding to the storage area are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or approximately the same.
[0029] In one possible implementation, the processing unit is also used to: after performing a rewrite or erase operation on the data in one of the storage areas, initialize the parameter value of the read voltage model corresponding to the storage area where the rewrite operation or erase operation is performed to a set value; wherein the set value is a default value or a pre-configured preset value determined based on the read voltage characteristics of the storage area where the rewrite operation or erase operation is performed.
[0030] In a possible implementation manner, when the processing unit performs a rewrite operation or an erase operation on data in a storage area, the processing unit is specifically configured to: perform a rewrite operation or an erase operation on all data in a storage area.
[0031] In a possible implementation, the target storage unit may be a physical unit in a non-volatile storage medium, specifically any one of a die, a plane, a block, a string, a layer, a page, etc. Alternatively, the target storage unit may also be a logical unit formed by logically abstracting a physical unit in a non-volatile storage medium. The positions of the physical units in a logical unit may be continuous or discontinuous. Specifically, it may be a storage unit composed of multiple dies, or a storage unit composed of multiple planes, or a storage unit composed of multiple blocks; a storage unit composed of multiple strings; a storage unit composed of multiple layers, or a storage unit composed of multiple pages, etc.
[0032] In a third aspect, the present application provides an electronic device, which includes: a communication interface, a controller and a memory. The communication interface is used to receive a read request sent by a host, wherein the read request includes location indication information of the requested data; the memory stores code instructions; the controller is used to call the code instructions stored in the memory to execute: determining a target read voltage model corresponding to a target storage area where the target physical location is located according to the target physical location indicated by the location indication information, wherein the target physical location is a physical location of the requested data in a non-volatile storage medium, the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to a target division granularity, and the read voltage model is a function of an identifier of the target storage unit; obtaining a parameter value of the target read voltage model corresponding to the target storage area from a correspondence between the storage area and the parameter value of the read voltage model according to the target storage area, wherein in the correspondence between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model; determining a read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model and the parameter value of the target read voltage model; obtaining the request data according to the read voltage corresponding to the target physical location; the communication interface is also used to send the request data to the host.
[0033] In one possible implementation, when the controller obtains the parameter value of the target read voltage model corresponding to the target storage area from the correspondence between the storage area and the parameter value of the read voltage model according to the target storage area, it is specifically used to: when the target storage area corresponds to multiple parameter values of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, select one or more from the parameter values of the multiple read voltage models corresponding to the target storage area according to the target physical position as the target read voltage model parameters.
[0034] In one possible implementation, when the controller determines the target read voltage model corresponding to the target storage area where the target physical position is located based on the target physical position indicated by the position indication information, it is specifically used to: determine the target read voltage model corresponding to the target storage area where the target physical position is located from the correspondence between the storage area and the read voltage model based on the target physical position indicated by the position indication information.
[0035] In a possible implementation, the read voltage model is used to characterize the corresponding relationship between the identifier of the target storage unit and the optimal read voltage.
[0036] In a possible implementation, the parameter value of the target read voltage model includes the coefficient of the target storage unit's identification in the function of the target storage unit's identification and the value of the constant term in the function of the target storage unit's identification. When the controller determines the read voltage corresponding to the target physical location according to the identification of the target storage unit where the target physical location is located, the target read voltage model and the parameter value of the target read voltage model, it is specifically used to: determine the function satisfied by the read voltage in the target storage area and the identification of the target storage unit in the target storage area according to the target read voltage model and the parameter value of the target read voltage model; calculate the read voltage corresponding to the target physical location according to the identification of the target storage unit where the target physical location is located and the function satisfied by the read voltage in the target storage area and the identification of the target storage unit in the target storage area.
[0037] In a possible implementation manner, the controller is further configured to: when any one of the storage areas meets a preset update condition, update the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model.
[0038] In one possible implementation, when the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence between the storage area and the parameter value of the read voltage model, it is specifically used to: determine the first error parameter under any corresponding read voltage in each storage area when the controller is in a system idle time window or satisfies a preset update cycle; when the first error parameter is greater than or equal to a first threshold, update the parameter value of the read voltage model corresponding to the storage area in the correspondence between the storage area and the parameter value of the read voltage model.
[0039] In a possible implementation, the preset update period is related to the usage status of the storage area; or, the preset update period is related to the average service life of a plurality of storage areas included in the non-volatile storage medium.
[0040] In one possible implementation, for any storage area in the correspondence between storage areas and parameter values of read voltage models, when the storage area corresponds to parameter values of multiple read voltage models, parameter values of multiple read voltage models that meet set conditions among the parameter values of the multiple read voltage models corresponding to the storage area are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or approximately the same.
[0041] In one possible implementation, the controller is also used to: after performing a rewrite or erase operation on the data in one of the storage areas, initialize the parameter value of the read voltage model corresponding to the storage area where the rewrite operation or erase operation is performed to a set value, wherein the set value is a default value or a pre-configured preset value determined based on the read voltage characteristics of the storage area where the rewrite operation or erase operation is performed.
[0042] In a possible implementation manner, when the controller performs a rewrite operation or an erase operation on the data in one of the storage areas, it is specifically configured to: perform a rewrite operation or an erase operation on all the data in one of the storage areas.
[0043] In a possible implementation, the target storage unit may be a physical unit in a non-volatile storage medium, specifically any one of a die, a plane, a block, a string, a layer, a page, etc. Alternatively, the target storage unit may also be a logical unit formed by logically abstracting a physical unit in a non-volatile storage medium. The positions of the physical units in a logical unit may be continuous or discontinuous. Specifically, it may be a storage unit composed of multiple dies, or a storage unit composed of multiple planes, or a storage unit composed of multiple blocks; a storage unit composed of multiple strings; a storage unit composed of multiple layers, or a storage unit composed of multiple pages, etc.
[0044] In a fourth aspect, the present application provides a communication system, which includes a host, a controller, and a non-volatile storage medium, wherein the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to the target division granularity, and the read voltage model is a function of the identifier of the target storage unit. The host is used to send a read request to the controller and receive the request data returned by the controller, wherein the read request includes the location indication information of the request data. The controller is used to receive the read request sent by the host, determine the target read voltage model corresponding to the target storage area where the target physical position is located according to the target physical position indicated by the location indication information in the read request, wherein the target physical position is the physical position of the request data in the non-volatile storage medium; obtain the parameter value of the target read voltage model corresponding to the target storage area from the corresponding relationship between the storage area and the parameter value of the read voltage model according to the target storage area; determine the read voltage corresponding to the target physical position according to the identifier of the target storage unit where the target physical position is located, the target read voltage model, and the parameter value of the target read voltage model; and obtain the request data according to the read voltage corresponding to the target physical position, and send the request data to the host.
[0045] In a fifth aspect, the present application further provides a computer-readable storage medium, on which computer-executable instructions are stored. When the instructions are executed on a computer, the computer executes the method provided in any one of the embodiments of the first aspect above.
[0046] In a sixth aspect, the present application further provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method provided in any one of the embodiments of the first aspect above.
[0047] It can be understood that the device, computer storage medium or computer program product of any of the data reading methods provided above is used to execute the corresponding method provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding method provided above and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] Figure 1 A schematic diagram of the structure of a TLC storage particle provided in an embodiment of the present application;
[0049] Figure 2 A schematic diagram of the structure of a communication system provided in an embodiment of the present application;
[0050] Figure 3 A schematic diagram of the structure of another communication system provided in an embodiment of the present application;
[0051] Figure 4A flowchart of a data reading method provided in an embodiment of the present application;
[0052] Figure 5 A schematic diagram of the relationship between a storage area and a target storage unit in a non-volatile storage medium provided in an embodiment of the present application;
[0053] Figure 6a A schematic diagram of a parameter value storage method of a TLC NAND read voltage model provided in an embodiment of the present application;
[0054] Figure 6b A schematic diagram of a parameter value storage method of a QLC NAND read voltage model provided in an embodiment of the present application;
[0055] Figure 7 A schematic diagram of another parameter value storage method of a TLC NAND read voltage model provided in an embodiment of the present application;
[0056] Figure 8 A schematic flow chart of a method for establishing a read voltage model corresponding to a non-volatile storage medium provided in an embodiment of the present application;
[0057] Figure 9a A schematic diagram of a process for updating parameter values of a read voltage model provided in an embodiment of the present application;
[0058] Figure 9b A schematic diagram of another process for updating parameter values of a read voltage model provided in an embodiment of the present application;
[0059] Fig.10 A schematic diagram of a flow chart for calculating parameter values of a read voltage model provided in an embodiment of the present application;
[0060] Fig.11 A schematic diagram of the structure of a storage controller provided in an embodiment of the present application;
[0061] Fig.12 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0062] At present, most storage devices use SSD for data storage, such as hard disks or memory cards. The QoS of SSD refers to the ability of storage devices to provide stable, consistent and predictable request response services to the host, which is one of the key factors affecting the market competitiveness of storage devices. QoS can include multiple performance indicators, among which the read response time is a key performance indicator of QoS, which mainly depends on the number of read operations that occur in the flash medium in response to the host request. As the main storage medium of SSD, the characteristics of flash media are affected by multiple factors such as the number of erase and write times, data retention time, and the number of read operations. The voltage signal carrying data will drift, so that the backend needs multiple read operations (trial and error) to successfully respond to the host request, thus affecting the read delay indicator of QoS and causing a long read delay.
[0063] As higher storage density cells are gradually replacing two-dimensional (2D) MLC (multi-level cell) storage with 2 bits per cell, from three-dimensional (3D) storage with x bits per cell (x-level cell, xLC) (such as three-bit storage per cell (triple-level cell, TLC) and four-bit storage per cell (quad-level cell, QLC)) to become the mainstream storage medium, the QoS read latency indicator is facing more and more challenges. Figure 1 As shown, it is a hierarchical structure diagram of the internal structure of a TLC particle provided by an embodiment of the present application. Among them, the smallest unit of write operation is page, and pages can be divided into three types, namely upper page, middle page and lower page (for QLC particles, pages can be divided into top page, upper page, middle page and lower page). An upper page, a middle page and a lower page can form a word line (WL), and several WLs form layers or strings in different directions. For example, Figure 1 Multiple WLs in the horizontal direction form a layer, and multiple WLs in the vertical direction form a string. The smallest erase operation unit composed of pages is called a block. Multiple blocks form a plane, and multiple planes can form a die. Multiple dies form a package.
[0064] In addition, in many applications, the controller will group some blocks into a super block. The characteristics of a super block in an application are that the blocks inside it will be erased or programmed at the same time, and the usage conditions of the blocks inside the super block are consistent or close, such as the number of erase and write times and data retention time.
[0065] Compared with 2D MLC, the number of logic states in each cell of 3D xLC increases from 4 (2 bits) to 2 x The voltage signal window for distinguishing different logical states becomes smaller, so the accuracy requirement of the read voltage increases. In addition, the number of pages in a block and the number of blocks in a die gradually increase, and the physical inconsistency of each level inside the flash increases, making it increasingly difficult to set a unified effective read voltage for all pages.
[0066] In order to solve the above problems, the present application provides a data reading method, a storage controller and an electronic device to reduce the read latency.
[0067] It should be noted that the term "multiple" in the present application refers to two or more. In order to make the purpose, technical solution and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings.
[0068] Figure 2 A hardware architecture diagram of a communication system used in an embodiment of the present application is shown in FIG. Figure 2 As shown, the system includes a host, an SSD controller and a flash array, and the host can store / access data in the flash array in the SSD through the SSD controller. Among them, the host can be connected to the front end of the SSD controller through multiple interfaces such as non-volatile memory express (NVMe) / serial attached SCSI (SCSI is the abbreviation of small computer system interface), SAS) / peripheral component interconnect express (PCIe) interface, and the back end of the SSD controller can be connected to the flash array through a flash memory interface (NAND flash interface, NFI), and the host can read, write or erase data in the flash array through the SSD controller.
[0069] In addition, the embodiments of the present application can also be applied to Figure 3Another communication system hardware architecture is shown in FIG. Figure 2 The SSD controller in the system shown is similar. The difference is that the controller and the flash array in the system are packaged into an independent chip, and the host is connected to the controller through an interface such as universal flash storage (UFS) / embedded multi media card (eMMC), and accesses data through the interface. Exemplarily, the chip packaged with the controller and the flash array can be applied to mobile terminals such as mobile phones, tablet computers, wearable devices, etc.
[0070] like Figure 4 As shown, a data reading method provided by an embodiment of the present application is applied to a controller, wherein the front end of the controller is used to connect to a host, and the back end of the controller is used to connect to a non-volatile storage medium, which can be a flash-based storage medium such as 3D NAND flash, 2D NAND flash, or a new type of non-volatile storage medium such as a magnetic random access memory (MRAM), a resistive random access memory (RRAM), a phase change random access memory (PCRAM), a ferroelectric random access memory (FRAM), and a nanotube random access memory (NRAM). The method can be applied to the above Figure 2 or Figure 3 The communication system shown mainly includes the following steps:
[0071] S401: The controller receives a read request sent by a host, where the read request includes location indication information of requested data.
[0072] Among them, when the host needs to read certain data from the non-volatile storage medium managed by the controller, the host can send a read request to the controller. The data requested by the read request can be called request data, and the read request can carry location indication information. The location indication information can be used to indicate a logical address, that is, a logical address used by the host to access the request data, such as a logical page address (LPA). There is a mapping relationship between the logical address and the physical address. The physical location of the request data in the non-volatile storage medium can be determined according to the logical address of the request data. In practical applications, the location indication information can also be other information that has a corresponding relationship with the physical location. For example, the location indication information can be a key value. The corresponding value value is obtained through the corresponding relationship between the preset key value and the value value. The value value can be the physical location of the data, and the embodiment of the present application does not limit this.
[0073] For example, when the non-volatile storage medium is a 3D NAND TLC memory, the read request received by the controller may include one or more LPAs. The controller determines the PPN corresponding to each LPA through the mapping relationship between the LPA and the physical page number (PPN), and then determines the page number, layer number, block number, plane number, die number, channel number and other information used to characterize the physical location of the data requested by the host in the non-volatile storage medium according to the PPN corresponding to each LPA.
[0074] Specifically, when the controller receives a read request sent by the host, the controller can obtain the physical address of the requested data stored in the non-volatile storage medium according to the location indication information. The physical address of the requested data is referred to as the target physical location.
[0075] S402: The controller determines a target read voltage model corresponding to a target storage area where the target physical location is located according to the target physical location indicated by the location indication information. The target physical location is a physical location of the requested data in a non-volatile storage medium, the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to the target division granularity, and the read voltage model is a function of an identifier of the target storage unit (such as a number of the target storage unit).
[0076] The relationship between the non-volatile storage medium, the storage area and the target storage unit is as follows: Figure 5As shown, the non-volatile storage medium includes at least one storage area, each storage area includes multiple target storage units, each target storage unit can be represented by a corresponding physical position, and the multiple physical positions included in a storage area can be the physical positions corresponding to at least one target storage unit included therein. It should be noted that the present application does not limit the number of target storage units included in each storage area. The number of target storage units included in each storage area is mainly determined according to the read voltage characteristics of the target storage units. The read voltage characteristics in each storage area continuously change with respect to the identification of the target storage unit, so the number of target storage units included in each storage area may be the same or different.
[0077] Furthermore, the target storage unit may be a physical unit in a non-volatile storage medium, specifically any one of a die, a plane, a block, a string, a layer, a page, etc. Alternatively, the target storage unit may also be a logical unit formed by logically abstracting a physical unit in a non-volatile storage medium. The positions of the physical units in a logical unit may be continuous or discontinuous. Specifically, it may be a storage unit composed of multiple dies, or a storage unit composed of multiple planes, or a storage unit composed of multiple blocks; a storage unit composed of multiple strings; a storage unit composed of multiple layers, or a storage unit composed of multiple pages, etc.
[0078] The read voltage refers to the conversion voltage corresponding to the conversion from the analog signal to the data signal. The read voltage characteristic may refer to the change law of the corresponding error parameter when the read voltage is read using different devices under different conditions (e.g., different temperatures, different times, different PEs, different data retention times, different read operation counts). In a specific implementation, the read voltage model is used to characterize the correspondence between the identification of the target storage unit and the optimal read voltage. The read voltage model is a function of the identification of the target storage unit, and is used to characterize the law of the change of the read voltage as the identification of the target storage unit changes. It is a qualitative description of the read voltage, rather than a quantitative description. For example, when the read voltage model is a linear model, it means that the read voltage changes linearly with the change of the identification of the target storage unit. The read voltage model can be a linear model or a nonlinear model, and can be represented by a functional relationship between an optimal read voltage and an identifier of a target storage unit. For example, when the read voltage model is a linear model, the functional relationship between the optimal read voltage and the identifier of the target storage unit is a linear function, which can be represented by y=ax+b, wherein y represents the optimal read voltage, x represents the identifier of the target storage unit, and a and b are parameter values of the read voltage model. The identifier of the target storage unit is usually represented by the number of the target storage unit, and the number of the target storage unit can be represented by a continuous number or a discontinuous number. For example, the number of the target storage unit can be 1, 2, 3..., N (N is a positive integer), or the number of the target storage unit can be represented by a number that changes according to a specific rule (arithmetic progression or geometric progression, etc.), such as 1, 3, 5...2N-1, etc.
[0079] S403: The controller obtains, according to the target storage area, a parameter value of the target read voltage model corresponding to the target storage area from a correspondence between the storage area and the parameter value of the read voltage model.
[0080] Among them, in the correspondence between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model. The correspondence between the storage area and the parameter value of the read voltage model can be stored in the controller in the form of a table, and the table can include the identifier corresponding to the storage area, and the identifier of the storage area and the parameter value of the read voltage model are stored in the table in a one-to-one correspondence; the table may also not store the identifier of the storage area, and arrange the parameter value of the read voltage model according to the index value of the storage area corresponding to the parameter value of the read voltage model, and the index value corresponding to the storage area is determined according to the physical location of the storage area, so as to reduce the table items in the table, thereby reducing the storage space occupied by the table.
[0081] For any storage area in the correspondence between the storage area and the parameter value of the read voltage model, the storage area may correspond to one or more read voltage model parameters. For example, for TLC NAND, one storage area corresponds to 7 parameter values of the read voltage model. When the read voltage model is a linear model and the parameter values of the read voltage model are represented by a and b respectively, the parameter values of the 7 read voltage models are respectively recorded as r1a, r1b, r2a, r2b, r3a, r3b, r4a, r4b, r5a, r5b, r6a, r6b and r7a, r7b. The storage format of the corresponding relationship between the storage area and the parameter value of the read voltage model can be as follows: Figure 6a As shown. For another example, for QLC NAND, one storage area corresponds to 15 parameter values of the read voltage model. When the read voltage model is a linear model and the parameter values of the read voltage model are represented by a and b respectively, the parameters of the 15 read voltage models are respectively recorded as r1a, r1b, r2a, r2b, r3a, r3b, r4a, r4b, r5a, r5b, r6a, r6b…, r15a, r15b. The storage format of the corresponding relationship between the storage area and the parameter value of the read voltage model can be as follows: Figure 6b shown.
[0082] It should be noted that the embodiment of the present application does not limit the storage method of the parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model. Figure 6a as well as Figure 6b The storage method shown is only an example and does not limit the present application. For any storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model, the storage order of the parameter value of the read voltage model corresponding to the storage area can be as follows: Figure 6a as well as Figure 6b The order shown is arranged in sequence, and can also be arranged in other orders as needed. In addition, the size of the storage space occupied by the parameter value of each read voltage model can be the same or different.
[0083] Further, for any storage area in the correspondence between the storage area and the parameter values of the read voltage model, when the storage area corresponds to the parameter values of multiple read voltage models, the parameter values of multiple read voltage models that meet the set conditions in the parameter values of the multiple read voltage models corresponding to the storage area are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or similar, which is equivalent to compressing the correspondence between the storage area and the parameter values of the read voltage model, thereby reducing the storage content in the correspondence between the storage area and the parameter values of the read voltage model and reducing the storage space occupied by the parameter values of the read voltage model, thereby saving the storage space of the controller. In the embodiment of the present application, the parameter values of two read voltage models being the same or similar means that the parameter values of the two read voltage models are slightly different, for example, the difference between the corresponding parameter values in the parameter values of the two read voltage models is within a set range, and the set range is determined according to the accuracy of the read voltage.
[0084] For example, for TLC NAND, the read voltage model corresponding to the storage area is a linear read voltage model y=ax+b, where y represents the read voltage, x represents the identifier of the target storage unit, a and b are parameter values of the read voltage model, and the parameter values of the 7 read voltage models corresponding to a storage area are recorded as r1a, r1b, r2a, r2b, r3a, r3b, r4a, r4b, r5a, r5b, r6a, r6b and r7a, r7b. If r2a and r3a are close, and r2b and r3b are close, r4a and r5a are close, r4b and r5b are close, r6a and r7a are close, and r6b and r7b are close, then r2a, r2b, r3a, and r3b can be compressed into a read voltage model parameter, r4a, r4b, r5a, and r5b can be compressed into a read voltage model parameter, r6a, r6b, and r7a, and r7b can be compressed into a read voltage model parameter. At this time, the storage format in the corresponding relationship between the storage area and the parameter value of the read voltage model can be changed from the storage format shown in 6a to the storage format shown in Figure 7 The storage format shown.
[0085] In a specific implementation, the read voltage model is usually represented by a functional relationship between the read voltage and the identification of the target storage unit, that is, the read voltage model is a function of the identification of the target storage unit, and therefore, the parameter value of the target read voltage model includes the coefficient of the identification of the target storage unit in the function of the identification of the target storage unit and the value of the constant term in the function of the identification of the target storage unit, that is, the parameter value of the target read voltage model includes the coefficient before the identification of the independent variable target storage unit in the function of the identification of the target storage unit and the value of the constant term in the function, and when the function does not include the constant term, the value of the constant term in the function is 0. For example, when the read voltage model is a linear model, the functional relationship between the read voltage and the identification of the target storage unit is a linear function, which can be represented as y=ax+b, wherein y represents the read voltage, x represents the identification of the target storage unit, and a and b are parameter values of the read voltage model.
[0086] S404: The controller determines a read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model, and the parameter value of the target read voltage model.
[0087] S405: The controller obtains the request data according to the read voltage corresponding to the target physical position, and sends the request data to the host.
[0088] In step S402, the controller can specifically determine the target read voltage model corresponding to the target storage area where the target physical location is located in the following manner: the controller determines the target read voltage model corresponding to the target storage area where the target physical location is located from the correspondence between the storage area and the read voltage model based on the target physical location indicated by the position indication information.
[0089] The read voltage model is a model determined according to the read voltage characteristics of the target storage unit in the non-volatile storage medium, and the target partitioning granularity is determined according to the structure of the non-volatile storage medium and the read voltage characteristics of the storage unit at different partitioning granularities in the non-volatile storage medium. The structure of the non-volatile storage medium determines the optional range of the partitioning granularity of the non-volatile storage medium. For example, for 3D NAND, the non-volatile storage medium can be partitioned at granularities such as die, plane, block, layer, string, and page, as well as multiple dies, multiple planes, multiple blocks, multiple layers, multiple strings, and multiple pages.
[0090] That is to say, Figure 8 As shown, the process of determining the read voltage models of different storage areas in the non-volatile storage medium mainly includes the following steps:
[0091] S801: Determine a target partition granularity according to the structure of the non-volatile storage medium and the read voltage characteristics of the storage unit at different partition granularities in the non-volatile storage medium. Wherein, at the target partition granularity, the optimal read voltage of the target storage unit in the non-volatile storage medium changes according to a certain rule, that is, the target storage unit at the target partition granularity can characterize the read voltage, so that the determined read voltage model can accurately characterize the read voltage, thereby improving the accuracy of the read voltage.
[0092] S802: Divide the non-volatile storage medium into one or more storage areas according to the read voltage characteristics of the storage unit at the target division granularity in the non-volatile storage medium, wherein for any storage area, the read voltage characteristics continuously change according to a specific rule as the identifier of the target storage unit included in the storage area changes.
[0093] S803: Determine the read voltage model corresponding to each storage area according to the change trend of the read voltage characteristic corresponding to each storage area, which is equivalent to dividing the read voltage model corresponding to the non-volatile storage medium into multiple parts, each part is characterized by its own corresponding read voltage model and parameter value of the read voltage model, thereby improving the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area and reducing the delay of the read operation.
[0094] After determining the read voltage model corresponding to each storage area, the parameter value of the read voltage model corresponding to each storage area is estimated by sampling the read voltage at different physical locations in each storage area, and the corresponding relationship between the storage area and the parameter value of the read voltage model is obtained. Usually, determining the read voltage models of different storage areas and the corresponding relationship between the storage areas and the parameter values of the read voltage model is completed offline by a technician, and the read voltage models of different storage areas and the corresponding relationship between the storage areas and the parameter values of the read voltage model are pre-configured in the controller, and the controller does not need to determine the read voltage models of different storage areas and the corresponding relationship between the storage areas and the parameter values of the read voltage model when reading data online.
[0095] In step S403, when the correspondence between the storage area and the parameter value of the read voltage model includes an identifier corresponding to the storage area, the controller can directly obtain the parameter value of the target read voltage model corresponding to the target storage area from the storage area and the correspondence between the storage area and the parameter value of the read voltage model according to the identifier of the target storage area. When the parameter values of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model are arranged according to the index value of the storage area corresponding to the parameter value of the read voltage model, and do not include the identifier of the storage area, the controller obtains the model parameters of the target read voltage from the correspondence between the storage area and the parameter value of the read voltage model according to the target physical position according to the target index value, wherein the target index value is used to indicate the storage position of the parameter value of the target read voltage model in the correspondence between the storage area and the parameter value of the read voltage model.
[0096] When a target storage area corresponds to multiple parameter values of the read voltage model in the correspondence between the storage area and the parameter values of the read voltage model, the controller may obtain, based on the target storage area, the parameter values of all the read voltage models corresponding to the target storage area from the correspondence between the storage area and the parameter values of the read voltage model, and then select one or more parameter values of all the read voltage models corresponding to the target storage area as the target read voltage model parameters according to the target physical position; or, the controller may select one or more parameter values of multiple read voltage models corresponding to the target storage area in the correspondence between the storage area and the parameter values of the read voltage model according to the target physical position as the target read voltage model parameters.
[0097] In step S404, in a scenario where the parameter value of the target read voltage model includes the coefficient of the identification of the target storage unit in the function of the identification of the target storage unit and the value of the constant term in the function of the identification of the target storage unit, the controller can determine the read voltage corresponding to the target physical position by the following method: the controller determines the function satisfied by the read voltage in the target storage area and the identification of the target storage unit in the target storage area according to the target read voltage model and the parameter value of the target read voltage model, and calculates the read voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and the function satisfied by the read voltage in the target storage area and the identification of the target storage unit in the target storage area. For example, the target read voltage model is a linear function of the identification of the target storage unit, which can be expressed as y=ax+b, where y represents the read voltage, x represents the identification of the target storage unit, a and b are the parameter values of the target read voltage model (constants), and if the identification of the target storage unit where the target physical position is located is 2, then the read voltage corresponding to the target physical position is y=2a+b.
[0098] It should be noted that when the target storage unit is a logical unit formed after logical abstraction of a physical unit in a non-volatile storage medium, the controller must map the target physical position to the corresponding target storage unit based on the mapping relationship between the physical position in the non-volatile storage medium and the target storage unit before determining the read voltage corresponding to the target physical position based on the identifier of the target storage unit where the target physical position is located, the target read voltage model, and the parameter value of the target read voltage model.
[0099] For example, in a non-volatile storage medium, the read voltage model corresponding to each storage area is a linear model, that is, the read voltage model is y=ax+b, wherein y represents the optimal read voltage, x represents the number of the target storage unit, one target storage unit is a layer, a and b are parameter values of the read voltage model, and in the correspondence between the storage area and the parameter value of the read voltage model, the parameter value of the read voltage model is arranged according to the index value of the storage area corresponding to the parameter value of the read voltage model, and in a scenario where the identifier of the storage area is not included, the controller can determine the read voltage corresponding to the target physical position indicated by the position indication information of the requested data value in the read request sent by the host through the following steps:
[0100] 1. The controller receives a read request from the host, which includes the LPA of the requested data;
[0101] 2. The controller determines the PPN corresponding to the LPA in the read request through the LPA-PPN mapping table, and determines the page number, block number, channel number, CE number, die number and plane number corresponding to the LPA according to the PPN corresponding to the LPA, and determines the layer number corresponding to the LPA according to the page number corresponding to the LPA.
[0102] 3. The controller determines the storage location of the parameter value of the target read voltage model corresponding to the storage area corresponding to the LPA in the correspondence between the storage area and the parameter value of the read voltage model according to the information of the page number, block number, channel number, CE number, die number, plane number and the layer corresponding to the LPA;
[0103] 4. The controller obtains the parameter value of the target read voltage model from the corresponding relationship between the storage area and the parameter value of the read voltage model according to the determined storage location.
[0104] If the storage area where the page corresponding to the LPA is located corresponds to multiple read voltage models, the controller selects one or more parameters of the read voltage model from the corresponding parameter values of the multiple read voltage models according to the physical location of the page corresponding to the LPA. For example, when performing a read operation on the lower page in the TLC NAND, the controller's read operation strategy is configured to require two read voltages for the read operation. At this time, the controller needs to obtain the parameter values of the read voltage models corresponding to each of the two read voltages.
[0105] 5. The controller calculates the read voltage corresponding to the page corresponding to the LPA according to the layer number corresponding to the LPA, the read voltage model y=ax+b, and the obtained read voltage model parameter values a and b.
[0106] Since the read voltage corresponding to the non-volatile storage medium will drift under the influence of multiple factors such as the number of erase and write times, data retention time, the number of read operations, and temperature, in order to further improve the accuracy of the read voltage determined by the controller, the controller also needs to update the parameter value of the read voltage model corresponding to the storage area in the non-volatile storage medium online, so that the parameter value of the read voltage model can accurately change with the change of the read voltage of the non-volatile storage medium. Specifically, when any one of each storage area in the non-volatile storage medium meets the preset update condition, the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model.
[0107] Wherein, when the preset conditions are met, the controller can determine the effective read voltage corresponding to the storage area through a specific online read voltage optimization algorithm (such as online voltage search), and determine the parameter value of the read voltage model corresponding to the storage area according to the effective read voltage, and update the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model according to the calculated parameter value of the read voltage model. Wherein, when the controller dynamically updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model, the controller can actively update the parameter value of the read voltage model corresponding to the storage area, or passively update the parameter value of the read voltage model corresponding to the storage area. Actively updating the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model, or passively updating the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model, can ensure that the parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model is dynamically updated. The following describes these two methods in detail.
[0108] First, when the controller is in a system idle time window or meets a preset update cycle, the controller determines a first error parameter under any corresponding read voltage in each storage area;
[0109] When the first error parameter is greater than or equal to a first threshold, the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model.
[0110] Among them, the controller being in the system idle time window may mean that the controller is in an idle state, and the idle state may be understood as the read and write IO load of the controller being lower than a certain value, so that the controller is relatively idle. The preset update cycle may be set in advance, and the preset update cycle may include one cycle or multiple different cycles. The setting of the preset update cycle corresponding to a storage area may be related to the usage status of the storage area (e.g., the number of PEs and the number of read operations), or to the average service life of multiple storage areas included in the non-volatile storage medium. For example, the average service life of multiple storage areas may be represented by an average PE. When the average PE is small (e.g., early in life), a larger preset update cycle may be used, and when the average PE is large (e.g., at the end of life), a smaller preset update cycle may be used.
[0111] In addition, the first error parameter can be used to indicate the error degree in the read data, and the first error parameter can be the number of error bits or the bit error rate RBER. The first threshold can be a pre-set fault tolerance threshold. If the first error parameter is less than the first threshold, it means that it is within the fault tolerance range. If the first error parameter is greater than or equal to the first threshold, it means that it is not within the fault tolerance range.
[0112] Specifically, when the controller is in a system idle time window or meets a preset update cycle, the controller uses the read voltage value calculated from the parameter value of the read voltage model corresponding to the storage area currently stored in the correspondence between the storage area and the parameter value of the read voltage model as the detected read voltage, and samples the physical location included in the storage area according to the detected read voltage, and obtains the error parameter under the detected read voltage as the first error parameter. If the first error parameter is less than the first threshold, the controller can determine that the read voltage corresponding to the storage area is valid, and thus does not update it. If the first error parameter is greater than or equal to the first threshold, the controller can determine that the read voltage corresponding to the storage area is invalid and needs to be updated.
[0113] When the controller updates the parameter value of the read voltage model corresponding to the storage area, the controller can determine the current effective read voltage by trial and error. For example, the controller can test the error parameters under multiple voltages in a manner of gradually increasing or decreasing the voltage, and determine the read voltage with the smallest error parameter as the current effective read voltage. The effective read voltage parameter value is calculated based on the effective voltage and the read voltage model corresponding to the storage area, and the read voltage corresponding to the storage area in the correspondence between the storage area and the parameter value of the read voltage model is replaced with the calculated parameter value of the effective read voltage model to update the parameter value of the read voltage model corresponding to the storage area.
[0114] In the above method of actively updating the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, the controller actively updates the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model in each system idle time window, or actively updates the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model in each preset update cycle, thereby achieving an update of the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model once every period of time. Therefore, actively updating the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model can make the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model in a dynamically updated state, thereby ensuring that the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model is real-time and effective.
[0115] In addition, when the controller is triggered to actively update the parameter value of the read voltage model corresponding to the storage area through a preset update cycle, it can be triggered by a timer interrupt, and can also be triggered by other forced signals to actively update the parameter value of the read voltage model corresponding to the storage area. The specific forced signal can be set in advance, and the embodiments of the present application are not limited to this.
[0116] The second type is that the controller passively updates the parameter value of the read voltage model corresponding to the storage area, which may specifically include: when a second error parameter of the request data read for the first time is greater than or equal to a second threshold under the read voltage determined by the parameter value of the read voltage model corresponding to the storage area, the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence between the storage area and the parameter value of the read voltage model.
[0117] The request data read for the first time refers to the request data read from the storage area for the first time by the controller according to the read voltage corresponding to the storage area in the read voltage management. The request data is data obtained based on the read request sent by the host, and is not data actively sampled and obtained by the controller. The second threshold value may be the same as the first threshold value, or may be different from the first threshold value.
[0118] Specifically, the controller reads the request data from the storage area for the first time under the read voltage determined by the parameter value of the read voltage model corresponding to the storage area, and the error parameter of the read request data is the second error parameter. If the second error parameter is less than the first threshold, the controller can determine that the parameter value of the read voltage model corresponding to the storage area is valid, and thus does not update it. If the second error parameter is greater than or equal to the first threshold, the controller can determine that the parameter value of the read voltage model corresponding to the storage area is invalid and needs to be updated.
[0119] It should be noted that when the controller updates the parameter value of the read voltage model corresponding to the storage area to obtain the current effective read voltage), it can also be updated in a manner of gradually increasing or decreasing the voltage. The specific implementation process is consistent with the description in the first method, and the embodiments of the present application will not be repeated here.
[0120] When the controller updates the read voltages corresponding to multiple storage areas in the correspondence between the storage area and the parameter value of the read voltage model, the controller may first determine the storage area whose parameter value of the read voltage model is invalid, and then the controller may only update the parameter value of the read voltage model of the storage area whose parameter value of the read voltage model is invalid in the correspondence between the storage area and the parameter value of the read voltage model. In an embodiment of the present application, when the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence between the storage area and the parameter value of the read voltage model, it first determines whether the parameter value of the read voltage model corresponding to the storage area stored in the correspondence between the storage area and the parameter value of the read voltage model is valid, and updates it when it is determined that it is invalid, thereby avoiding unnecessary operations and saving system bandwidth and load overhead.
[0121] In the above-mentioned method of passively updating the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, the controller will update the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model to the current valid parameter value of the read voltage model when the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model is invalid, so that in each period of time, when one or more invalid parameter values of the read voltage model appear in the correspondence between the storage area and the parameter value of the read voltage model, the controller will update the parameter value of the one or more read voltage models. Therefore, passively updating the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model can make the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model in a dynamically updated state, thereby ensuring that the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model is real-time and valid.
[0122] For ease of understanding, Figure 9a and Figure 9b The processing flow shown in the figure exemplifies the process of the controller actively updating the corresponding relationship between the storage area and the parameter value of the read voltage model and passively updating the corresponding relationship between the storage area and the parameter value of the read voltage model.
[0123] Figure 9a The present invention is a flowchart of a controller actively updating the correspondence between a storage area and a parameter value of a read voltage model, taking the controller being in a system idle time window as an example. Specifically, assuming that all parameter values of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model need to be updated, when the controller is in the system idle time window, the controller can determine the corresponding error parameter under each parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, and determine the parameter value of the read voltage model that needs to be updated in the correspondence between the storage area and the parameter value of the read voltage model (for example, when the corresponding error parameter is less than the first threshold, it is determined that it does not need to be updated, and when the corresponding error parameter is greater than or equal to the first threshold, it is determined that it needs to be updated), thereby obtaining the parameter value record information of the read voltage model to be updated (i.e., the storage record of invalid read voltage in the read voltage management information); the controller updates the parameter value record information of the read voltage model to be updated by the method of updating the parameter value of the read voltage model. The process ends when all parameter value record information of the read voltage model to be updated is updated, or the system idle time window ends.
[0124] Figure 9bThe present invention is a flowchart of a controller passively updating the correspondence between a storage area and a parameter value of a read voltage model. Specifically, the controller receives a read request sent by a host, determines the corresponding read voltage model according to the position indication information included in the read request, obtains the corresponding parameter value of the read voltage model from the correspondence between the storage area and the parameter value of the read voltage model, calculates the corresponding read voltage according to the determined read voltage model, the parameter value of the read voltage model and the identifier of the target storage unit indicated by the position indication information in the read request, and when the request data obtained for the first time based on the read voltage fails (i.e., the first read data fails), the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model is marked as an invalid parameter value of the read voltage model, and the invalid parameter value of the read voltage model is updated or the process ends.
[0125] It should be noted that the step of determining the invalid parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model by the controller, and the step of updating the invalid parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model can be performed synchronously or asynchronously. That is, the controller can first determine all the invalid parameter values of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model, and then update all the invalid parameter values of the read voltage model one by one; or, after the controller determines an invalid parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model, it updates the parameter value of the invalid read voltage model, and then determines the next invalid parameter value of the read voltage model to update, and so on; or, while the controller determines the invalid parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model, it updates the parameter value of the invalid read voltage model that has been determined, and the embodiment of the present application does not specifically limit this.
[0126] In actual applications, when the controller updates the parameter value of the read voltage model in the correspondence between the storage area and the parameter value of the read voltage model, if the correspondence between the storage area and the parameter value of the read voltage model resides in a fast storage medium such as a memory, it is necessary to make a backup in a non-volatile storage medium. When the system is initialized, the correspondence between the storage area and the parameter value of the read voltage model is imported from the non-volatile storage medium to the fast storage medium to complete the initialization. Alternatively, the controller directly stores the correspondence between the storage area and the parameter value of the read voltage model in a storage medium that has both fast access and non-volatile characteristics.
[0127] Specifically, in the scenario where the read voltage model is a linear model (y=ax+b), in the process of the controller actively updating the parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model and passively updating the parameter value of the read voltage model in the corresponding relationship between the storage area and the parameter value of the read voltage model, the effective parameter value of the read voltage model can be calculated in the following manner, such as Fig.10 As shown:
[0128] S1001: Set intermediate parameters Sum_N, Sum_XX, Sum_XY, Sum_X and Sum_Y used to calculate the parameters of the effective read voltage model to record and process the information required for updating the parameter values of the read voltage model, which are initialized to 0 when the online update starts.
[0129] S1002: Performing an online read voltage search on a physical location of a sample in a non-volatile storage medium; wherein the sample may be pre-configured offline or randomly generated online.
[0130] S1003: Determine whether the read voltage of the sample is valid.
[0131] Among them, when judging whether the read voltage of the sampling sample is valid, it can be determined based on the magnitude relationship between the read voltage of the current sampling sample and the read voltages of other sampling samples. For example, when the read voltage of the current sampling sample is obviously greater than or obviously less than the read voltages of other sampling samples, the read voltage of the current sampling sample is considered to be invalid.
[0132] S1004: If the read voltage of the sample is valid, update the parameter value of the read voltage model. The target storage unit of the i-th valid sample is numbered as Xi, and the value of the j-th read voltage is recorded as Yij. The operations involved in updating the parameter value of the read voltage model include:
[0133] Sum_N++;
[0134] Sum_XX+=Xi*Xi;
[0135] Sum_XY+=X i *Yij;
[0136] Sum_X+=Xi;
[0137] Sum_Y+=Yij;
[0138] S1005: If the sample is invalid, perform an online search for the read voltage of the next sample;
[0139] S1006: After completing the sampling of all the samples corresponding to the parameters of the read voltage model, the parameter value of the read voltage model is calculated by the following formula to complete the update of the parameter value of the read voltage model corresponding to the jth read voltage in the parameter value of the read voltage model:
[0140] Alpha=Sum_XX*Sum_N-Sum_X*Sum_X;
[0141] a=(Sum_XY*Sum_N-Sum_X*Sum_Y) / Alpha;
[0142] b=(Sum_XX*Sum_Y-Sum_XY*Sum_X) / Alpha;
[0143] Among them, “*” represents multiplication and “ / ” represents division.
[0144] When the storage area to be updated corresponds to parameter values of multiple read voltage models, the above steps S1001 to S1006 are performed for each parameter value of the read voltage model. The updating process of the parameter values of the multiple read voltage models corresponding to the storage area to be updated can be performed sequentially in a set order or simultaneously in parallel.
[0145] After the controller performs a rewrite or erase operation on the data in a storage area, the influence of factors such as the number of erase and write operations, data retention time, and the number of read operations on the read voltage will be reset. Therefore, after the controller performs a rewrite or erase operation on the data in a storage area, it is also necessary to initialize the parameter value of the read voltage model corresponding to the storage area. Specifically, after the controller performs a rewrite or erase operation on the data in a storage area, the parameter value of the read voltage model corresponding to the storage area performing the rewrite operation or erase operation is initialized to a set value, wherein the set value is a default value (pre-configured in the controller) or a pre-configured preset value determined according to the read voltage characteristics of the storage area performing the rewrite operation or erase operation. In addition, after the controller performs a rewrite or erase operation on the data in a storage area, the parameter value of the read voltage model corresponding to the storage area performing the rewrite operation or erase operation is initialized to the value before the rewrite operation or erase operation is performed.
[0146] Among them, the controller usually performs a rewrite operation or an erase operation on all the data in a storage area. For different types of non-volatile storage media, some non-volatile storage media can directly write data into the storage unit where the data is stored, overwriting the original data, that is, directly performing a rewrite operation, such as RRAM, PCRAM, FRAM, and NRAM; some non-volatile storage media need to erase the original data in the storage unit before writing new data, so an erase operation must be performed first, such as flash-based non-volatile storage media.
[0147] Through the above scheme, the controller can determine the target read voltage model corresponding to the target storage area where the target physical location is located according to the target physical location indicated by the location indication information of the request data in the read request sent by the host, and obtain the parameter value of the target read voltage model corresponding to the target storage area from the correspondence between the storage area and the parameter value of the read voltage model according to the target storage area, and then determine the read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model and the parameter value of the target read voltage model, wherein the read voltage model is a function of the identifier of the target storage unit. Since in the embodiment of the present application, different storage areas in the non-volatile storage medium correspond to different parameter values of the read voltage model, it is equivalent to dividing the read voltage model corresponding to the non-volatile storage medium into multiple parts, each part is characterized by its own corresponding read voltage model and the parameter value of the read voltage model, and then the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the delay of the read operation can be reduced.
[0148] In addition, the controller determines the read voltage corresponding to the target physical location based on the identifier of the target storage unit where the target physical location is located, the target read voltage model, and the parameter value of the target read voltage model. The controller only needs to store the parameter values of the read voltage model corresponding to different storage areas, and does not need to store specific read voltage values, which can reduce storage space overhead.
[0149] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of interaction between various devices. It is understandable that each device, such as a host and a controller, includes a hardware structure and / or software module corresponding to the execution of each function in order to realize the above functions. It should be easily appreciated by those skilled in the art that, in combination with the devices and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.
[0150] The embodiment of the present application can divide the controller into functional modules according to the above method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated module can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation.
[0151] In the case of dividing each functional module according to each function, the embodiment of the present application provides a possible structural diagram of the controller involved in the above embodiment. Fig.11 As shown, the storage controller 1100 includes a receiving unit 1101, a processing unit 1102 and a sending unit 1103. The receiving unit 1101 is used to support the controller to execute Figure 4 Step S401 of the data reading method provided; the processing unit 1102 is used to support the controller to execute Figure 4 The process of obtaining the requested data in step S402, step S403, step S404, and step S405 in the data reading method provided, and / or other processes used for the technology described herein, for example, Fig.10 The parameter value updating process of the read voltage model shown in FIG. 1 (steps S1001-S1006); the sending unit 1103 is used to support the controller to execute Figure 4 The process of sending the request data to the host in step S405 in the provided data reading method is described in detail in the relevant description of the above embodiment, and the embodiment of the present application will not be repeated here.
[0152] In hardware implementation, the processing unit 1102 may be a processor; the receiving unit 1101 may be a receiver; the sending unit 1103 may be a transmitter; and the receiver and the transmitter may constitute a communication interface.
[0153] The present application also provides an electronic device having Fig.11 The function of the storage controller shown can be a storage device or a communication device. Fig.12 , the electronic device 1200 includes: a communication interface 1201, a memory 1202, and a controller 1203. The communication interface 1201, the memory 1202, and the controller 1203 are interconnected via a bus 1204. In an embodiment of the present application, the controller 1203 is used to control and manage the actions of the electronic device 1200, for example, the process of obtaining the request data in step S402, step S403, step S404, and step S405, and / or other processes for the technology described herein, for example, Fig.10 The parameter value updating process of the read voltage model is shown (steps S1001-S1006). The communication interface 1201 is used to support the electronic device 1200 to communicate. The memory 1202 is used to store program codes and data of the electronic device 2100.
[0154] Among them, the controller 1203 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component or any combination thereof, which can implement or execute the various exemplary logic blocks, modules and circuits described in combination with the contents disclosed in this application. The processor 1102 can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on. The bus 1204 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus 1204 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.12 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0155] The embodiment of the present application also provides a communication system, which includes a host, a controller and a non-volatile storage medium, wherein the non-volatile storage medium includes multiple storage areas, the non-volatile storage medium includes one or more storage areas, each storage area includes multiple target storage cells obtained by dividing the non-volatile storage medium according to the target division granularity, and the read voltage model is a function of the identification of the target storage cell (such as the number of the target storage cell). The communication system can be Figure 2 or Figure 3 In the embodiment of the present application, the host can be used for non-volatile storage media, and send read requests to the controller, and receive request data sent by the controller; the controller can be used for management, and can be used to execute Figure 4 The steps performed by the controller in the provided data reading method. The controller is used to perform Figure 4 Steps S401 to S405 in, or for executing Fig.10 The parameter value update process of the read voltage model shown (steps S1001-S1006), and / or other processes of the technology described in this document. For specific processes, please refer to the above Figure 4 or Fig.10 The description in the illustrated embodiment will not be repeated here for the embodiments of the present application.
[0156] In another embodiment of the present application, a computer-readable storage medium is further provided, wherein the computer-executable instructions are stored on the computer storage medium. When the instructions are executed on a computer, the computer executes the above-mentioned Figure 4 The data reading method provided.
[0157] In another embodiment of the present invention, a computer program product is provided. The computer storage medium of the computer program product stores computer executable instructions. When the computer executable instructions are called by a computer, the computer executes the above-mentioned Figure 4 Provided data reading methods.
[0158] In an embodiment of the present application, the controller can determine the target read voltage model corresponding to the target storage area where the target physical location is located according to the target physical location indicated by the location indication information of the request data in the read request sent by the host, and obtain the parameter value of the target read voltage model corresponding to the target storage area from the corresponding relationship between the storage area and the parameter value of the read voltage model according to the target storage area, and then determine the read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model and the parameter value of the target read voltage model, wherein the read voltage model is a function of the identifier of the target storage unit. Since in an embodiment of the present application, different storage areas in the non-volatile storage medium correspond to different parameter values of the read voltage model, it is equivalent to dividing the read voltage model corresponding to the non-volatile storage medium into multiple parts, each part is characterized by its own corresponding read voltage model and the parameter value of the read voltage model, and then the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the delay of the read operation can be reduced.
[0159] In addition, the controller determines the read voltage corresponding to the target physical location based on the identifier of the target storage unit where the target physical location is located, the target read voltage model, and the parameter value of the target read voltage model. The controller only needs to store the parameter values of the read voltage model corresponding to different storage areas, and does not need to store specific read voltage values, which can reduce storage space overhead.
[0160] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0161] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0162] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0163] Obviously, those skilled in the art can make various changes and modifications to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A data reading method, characterized in that: Applied in a controller, the front end of the controller is used to connect to a host, and the back end is used to connect to a non-volatile storage medium, the method includes: The controller receives a read request sent by the host, wherein the read request includes location indication information of the requested data; The controller determines, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located; wherein the target physical position is a physical position of the request data in the non-volatile storage medium, the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to a target division granularity, and the read voltage model is a function of an identifier of the target storage unit; The controller acquires, according to the target storage area, a parameter value of the target read voltage model corresponding to the target storage area from a correspondence relationship between the storage area and the parameter value of the read voltage model; wherein, in the correspondence relationship between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model; The controller determines a read voltage corresponding to the target physical location according to an identifier of a target storage unit where the target physical location is located, the target read voltage model, and a parameter value of the target read voltage model; The controller obtains the request data according to the read voltage corresponding to the target physical position, and sends the request data to the host.
2. The method according to claim 1, characterized in that The controller acquires, according to the target storage area, a parameter value of the target read voltage model corresponding to the target storage area from a correspondence between the storage area and the parameter value of the read voltage model, including: When, in the correspondence between the storage area and the parameter values of the read voltage model, the target storage area corresponds to multiple parameter values of the read voltage model, the controller selects one or more from the multiple parameter values of the read voltage model corresponding to the target storage area according to the target physical position as the target read voltage model parameters.
3. The method according to claim 1 or 2, characterized in that The controller determines, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to a target storage area where the target physical position is located, including: The controller determines, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located from the correspondence between the storage area and the read voltage model.
4. The method according to any one of claims 1 to 3, characterized in that: The read voltage model is used to characterize the corresponding relationship between the identifier of the target storage unit and the optimal read voltage.
5. The method according to any one of claims 1 to 4, characterized in that The parameter value of the target read voltage model includes a coefficient of the identification of the target memory cell in the function regarding the identification of the target memory cell and a value of a constant term in the function regarding the identification of the target memory cell; The controller determines the read voltage corresponding to the target physical location according to the identifier of the target storage unit where the target physical location is located, the target read voltage model, and the parameter value of the target read voltage model, including: The controller determines, according to the target read voltage model and the parameter value of the target read voltage model, a function satisfied by the read voltage in the target storage area and the identifier of the target storage unit in the target storage area; The controller calculates a read voltage corresponding to the target physical location according to an identifier of a target storage unit where the target physical location is located and a function satisfied by a read voltage in the target storage area and an identifier of a target storage unit in the target storage area.
6. The method according to any one of claims 1 to 5, characterized in that Also includes: When any one of the storage areas meets a preset update condition, the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model.
7. The method according to claim 6, characterized in that When any one of the storage areas meets a preset update condition, the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model, including: When the controller is in a system idle time window or meets a preset update period, the controller determines a first error parameter under any corresponding read voltage in each storage area; When the first error parameter is greater than or equal to a first threshold, the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model.
8. The method according to claim 7, characterized in that The preset update period is related to the use status of the storage area; or, the preset update period is related to the average service life of multiple storage areas included in the non-volatile storage medium.
9. The method according to any one of claims 1 to 8, characterized in that For any storage area in the correspondence between the storage area and the parameter values of the read voltage model, when the storage area corresponds to the parameter values of multiple read voltage models, the parameter values of multiple read voltage models that meet the set conditions among the parameter values of the multiple read voltage models corresponding to the storage area are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or approximately the same.
10. The method according to any one of claims 1 to 9, characterized in that: Also includes: After the controller performs a rewrite or erase operation on the data in one of the storage areas, the controller initializes the parameter value of the read voltage model corresponding to the storage area where the rewrite operation or erase operation is performed to a set value, wherein the set value is a default value or a pre-configured preset value determined according to the read voltage characteristics of the storage area where the rewrite operation or erase operation is performed.
11. The method according to claim 10, characterized in that The controller performs a rewrite operation or an erase operation on data in one of the storage areas, including: The controller performs a rewrite operation or an erase operation on all data in one of the storage areas.
12. The method according to any one of claims 1 to 11, characterized in that: The target storage unit is any one of a die, a plane, a block, a string, a layer, and a page; Alternatively, the target storage unit is a storage unit composed of multiple dies; Alternatively, the target storage unit is a storage unit composed of multiple planes; Alternatively, the target storage unit is a storage unit consisting of multiple blocks; Alternatively, the target storage unit is a storage unit consisting of multiple strings; Alternatively, the target storage unit is a storage unit composed of multiple layers; Alternatively, the target storage unit is a storage unit composed of multiple pages.
13. A storage controller, characterized in that: include: A receiving unit, a processing unit, and a sending unit; The receiving unit is used to receive a read request sent by a host, wherein the read request includes location indication information of the requested data; The processing unit is configured to determine, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located; wherein the target physical position is the physical position of the requested data in a non-volatile storage medium, the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to the target division granularity, and the read voltage model is a function of the identifier of the target storage unit; according to the target storage area, from the correspondence between the storage area and the parameter value of the read voltage model, obtain the parameter value of the target read voltage model corresponding to the target storage area, wherein, in the correspondence between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model; according to the identifier of the target storage unit where the target physical position is located, the target read voltage model and the parameter value of the target read voltage model, determine the read voltage corresponding to the target physical position; and, according to the read voltage corresponding to the target physical position, obtain the requested data; The sending unit is used to send the request data to the host.
14. The storage controller according to claim 13, wherein: When the processing unit acquires, according to the target storage area, from the correspondence between the storage area and the parameter value of the read voltage model, the parameter value of the target read voltage model corresponding to the target storage area, the processing unit is specifically configured to: When, in the correspondence between the storage area and the parameter values of the read voltage model, the target storage area corresponds to multiple parameter values of the read voltage model, one or more are selected from the multiple parameter values of the read voltage model corresponding to the target storage area according to the target physical position as the target read voltage model parameters.
15. The storage controller according to claim 13 or 14, characterized in that: When the processing unit determines, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located, the processing unit is specifically configured to: According to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located is determined from the correspondence between the storage area and the read voltage model.
16. The storage controller according to any one of claims 13 to 15, characterized in that: The read voltage model is used to characterize the corresponding relationship between the identifier of the target storage unit and the optimal read voltage.
17. The storage controller according to any one of claims 13 to 16, wherein: The parameter value of the target read voltage model includes a coefficient of the identification of the target memory cell in the function regarding the identification of the target memory cell and a value of a constant term in the function regarding the identification of the target memory cell; When the processing unit determines the read voltage corresponding to the target physical position according to the identifier of the target storage unit where the target physical position is located, the target read voltage model and the parameter value of the target read voltage model, it is specifically used to: Determining, according to the target read voltage model and parameter values of the target read voltage model, a function satisfied by a read voltage in the target storage area and an identifier of a target storage unit in the target storage area; The read voltage corresponding to the target physical location is calculated according to the identifier of the target storage unit where the target physical location is located and a function satisfied by the read voltage in the target storage area and the identifier of the target storage unit in the target storage area.
18. The storage controller according to any one of claims 13 to 17, wherein: The processing unit is further configured to update the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model when any one of the storage areas meets a preset update condition.
19. The storage controller according to claim 18, wherein: When updating the parameter of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model, the processing unit is specifically used to: When the storage controller is in a system idle time window or meets a preset update period, determining a first error parameter under any corresponding read voltage in each storage area; When the first error parameter is greater than or equal to a first threshold, the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model is updated.
20. The storage controller according to claim 19, wherein: The preset update period is related to the use status of the storage area; or, the preset update period is related to the average service life of multiple storage areas included in the non-volatile storage medium.
21. The storage controller according to any one of claims 13 to 20, characterized in that: For any storage area in the correspondence between the storage area and the parameter values of the read voltage model, when the storage area corresponds to the parameter values of multiple read voltage models, the parameter values of multiple read voltage models that meet the set conditions among the parameter values of the multiple read voltage models corresponding to the storage area are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or approximately the same.
22. The storage controller according to any one of claims 13 to 21, characterized in that: The processing unit is further configured to: after performing a rewrite or erase operation on the data in one of the storage areas, initialize the parameter value of the read voltage model corresponding to the storage area where the rewrite or erase operation is performed to a set value; The set value is a default value or a pre-configured preset value determined according to a read voltage characteristic of a storage area where a rewrite operation or an erase operation is performed.
23. The storage controller according to claim 22, wherein: When the processing unit performs a rewrite operation or an erase operation on the data in one of the storage areas, the processing unit is specifically used to: A rewrite operation or an erase operation is performed on all data in one of the storage areas.
24. The storage controller according to any one of claims 13 to 23, characterized in that: The target storage unit is any one of a die, a plane, a block, a string, a layer, and a page; Alternatively, the target storage unit is a storage unit composed of multiple dies; Alternatively, the target storage unit is a storage unit composed of multiple planes; Alternatively, the target storage unit is a storage unit consisting of multiple blocks; Alternatively, the target storage unit is a storage unit consisting of multiple strings; Alternatively, the target storage unit is a storage unit composed of multiple layers; Alternatively, the target storage unit is a storage unit composed of multiple pages.
25. An electronic device, characterized in that: including a communication interface, a controller and a memory; The communication interface is used to receive a read request sent by a host, wherein the read request includes location indication information of the requested data; The memory stores code instructions; The controller is used to call the code instructions stored in the memory to execute: determining, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located; wherein the target physical position is the physical position of the requested data in the non-volatile storage medium, the non-volatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the non-volatile storage medium according to the target division granularity, and the read voltage model is a function of the identifier of the target storage unit; according to the target storage area, obtaining the parameter value of the target read voltage model corresponding to the target storage area from the correspondence between the storage area and the parameter value of the read voltage model, wherein, in the correspondence between the storage area and the parameter value of the read voltage model, one storage area corresponds to one or more parameters of the read voltage model; determining the read voltage corresponding to the target physical position according to the identifier of the target storage unit where the target physical position is located, the target read voltage model and the parameter value of the target read voltage model; obtaining the requested data according to the read voltage corresponding to the target physical position; The communication interface is also used to send the request data to the host.
26. The device according to claim 25, characterized in that When the controller obtains the parameter value of the target read voltage model corresponding to the target storage area from the corresponding relationship between the storage area and the parameter value of the read voltage model according to the target storage area, it is specifically used to: When, in the correspondence between the storage area and the parameter values of the read voltage model, the target storage area corresponds to multiple parameter values of the read voltage model, one or more are selected from the multiple parameter values of the read voltage model corresponding to the target storage area according to the target physical position as the target read voltage model parameters.
27. The device according to claim 25 or 26, characterized in that When the controller determines, according to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located, the controller is specifically used to: According to the target physical position indicated by the position indication information, a target read voltage model corresponding to the target storage area where the target physical position is located is determined from the correspondence between the storage area and the read voltage model.
28. The device according to any one of claims 25 to 27, characterized in that The read voltage model is used to characterize the corresponding relationship between the identifier of the target storage unit and the optimal read voltage.
29. The device according to any one of claims 25 to 28, characterized in that The parameter value of the target read voltage model includes a coefficient of the identification of the target memory cell in the function regarding the identification of the target memory cell and a value of a constant term in the function regarding the identification of the target memory cell; When the controller determines the read voltage corresponding to the target physical position according to the identifier of the target storage unit where the target physical position is located, the target read voltage model and the parameter value of the target read voltage model, it is specifically used to: Determining, according to the target read voltage model and parameter values of the target read voltage model, a function satisfied by a read voltage in the target storage area and an identifier of a target storage unit in the target storage area; The read voltage corresponding to the target physical location is calculated according to the identifier of the target storage unit where the target physical location is located and a function satisfied by the read voltage in the target storage area and the identifier of the target storage unit in the target storage area.
30. The device according to any one of claims 25 to 29, characterized in that The controller is further configured to update the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the storage area and the parameter value of the read voltage model when any one of the storage areas meets a preset update condition.
31. The device according to claim 30, characterized in that When the controller updates the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model, the controller is specifically used to: When the controller is in a system idle time window or meets a preset update period, determining a first error parameter under any corresponding read voltage in each storage area; When the first error parameter is greater than or equal to a first threshold, the parameter value of the read voltage model corresponding to the storage area in the correspondence relationship between the storage area and the parameter value of the read voltage model is updated.
32. The device according to claim 31, characterized in that The preset update period is related to the use status of the storage area; or, the preset update period is related to the average service life of multiple storage areas included in the non-volatile storage medium.
33. The device according to any one of claims 25 to 32, characterized in that For any storage area in the correspondence between the storage area and the parameter values of the read voltage model, when the storage area corresponds to the parameter values of multiple read voltage models, the parameter values of multiple read voltage models that meet the set conditions among the parameter values of the multiple read voltage models corresponding to the storage area are compressed into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or approximately the same.
34. The device according to any one of claims 25 to 33, characterized in that The controller is also used for: After performing a rewrite or erase operation on the data in one of the storage areas, the parameter value of the read voltage model corresponding to the storage area where the rewrite operation or erase operation is performed is initialized to a set value, wherein the set value is a default value or a pre-configured preset value determined according to the read voltage characteristics of the storage area where the rewrite operation or erase operation is performed.
35. The device according to claim 34, characterized in that When the controller performs a rewrite operation or an erase operation on data in one of the storage areas, it is specifically used to: A rewrite operation or an erase operation is performed on all data in one of the storage areas.
36. The device according to any one of claims 25 to 35, characterized in that The target storage unit is any one of a die, a plane, a block, a string, a layer, and a page; Alternatively, the target storage unit is a storage unit composed of multiple dies; Alternatively, the target storage unit is a storage unit composed of multiple planes; Alternatively, the target storage unit is a storage unit consisting of multiple blocks; Alternatively, the target storage unit is a storage unit consisting of multiple strings; Alternatively, the target storage unit is a storage unit composed of multiple layers; Alternatively, the target storage unit is a storage unit composed of multiple pages.
Citation Information
Patent Citations
Maintenance operations for multi-level data storage cells
CN101484947A
Method of reading data from a non-volatile memory and devices and systems to implement same
CN103035294A