CN113874942A - Data reading method, storage controller and electronic equipment - Google Patents
Data reading method, storage controller and electronic equipment Download PDFInfo
- Publication number
- CN113874942A CN113874942A CN201980096783.9A CN201980096783A CN113874942A CN 113874942 A CN113874942 A CN 113874942A CN 201980096783 A CN201980096783 A CN 201980096783A CN 113874942 A CN113874942 A CN 113874942A
- Authority
- CN
- China
- Prior art keywords
- target
- read voltage
- storage area
- voltage model
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Landscapes
- Read Only Memory (AREA)
Abstract
The application discloses a solid state disk data reading method, which comprises the following steps: the method comprises the steps that a controller receives a read request which is sent by a host and comprises position indication information of requested data; according to the target physical position indicated by the position indication information, determining a target read voltage model corresponding to a target storage area where the target physical position is located, wherein each storage area in the nonvolatile storage medium comprises a plurality of target storage units which are obtained by dividing according to target division granularity, and the read voltage model is a function of the identification of the target storage unit; acquiring a parameter value of a target reading voltage model from a corresponding relation between the storage area and the parameter value of the reading voltage model; determining a reading 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 reading voltage model and the parameter value of the target reading voltage model; and acquiring request data according to the reading voltage corresponding to the target physical position and sending the request data to the host.
Description
This application claims priority to a patent application having application number PCT/CN2019/088460, filed on 26.5.2019, the entire contents of which are incorporated herein by reference.
The present application relates to the field of data storage technologies, and in particular, to a data reading method, a storage controller, and an electronic device.
A Solid State Drive (SSD) refers to a storage medium such as a hard disk or a memory card made of a solid state electronic memory chip array, and quality of service (QoS) of the SSD is an ability of the SSD product to provide a stable, consistent and predictable request response service to a host, and is one of key factors for building competitiveness of the SSD product. The SSD may be applied to a data center, a server, and the like, and read response time (read latency) is a key performance index of QoS, and mainly depends on the number of read operations occurring in a flash memory (flash) medium in response to a host request. The flash is used as a main storage medium of the SSD, the characteristics of the flash are affected by multiple factors such as erase/erase cycles (PE), data retention time (retention time), and the like, and a voltage signal carrying data may send a drift, so that a host request can be successfully responded by a plurality of read operations, thereby causing a long read delay in QoS.
At present, in the prior art, the read delay can be reduced by a voltage reading prefabrication table technology, that is, a specific formula is summarized by analyzing the relation between factors influencing the read voltage and voltage offset, a compensation table of influencing factors and the read voltage is manufactured or a fitting method, and the read voltage is compensated according to the table lookup or calculation of the values of the influencing factors when the compensation table is used, so that the first read success rate is improved, and the read delay is reduced. However, the read voltage look-up table technique is related to the sample to be sampled, and different read voltage look-up tables need to be made for different storage media, which is a heavy task. In addition, the storage medium can change in the using process, the reliability of the technology of using the read voltage prefabricated table is low, the improvement range of the first read success rate is limited, and therefore the effect of reducing the read delay is not good.
Disclosure of Invention
The application provides a data reading method, a storage controller and electronic equipment, and aims to solve the problem of long reading delay in the prior art.
In a first aspect, the present application provides a data reading method, which is applied to a controller, where 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 nonvolatile storage medium. The method comprises the following steps: the method comprises the steps that a controller receives a reading request sent by a host, wherein the reading request comprises position indication information of requested data; the controller determines a target read voltage model corresponding to a target storage area where the target physical position is located according to the target physical position indicated by the position indication information, wherein the target physical position is the physical position of the request data in the nonvolatile storage medium, the nonvolatile storage medium comprises one or more storage areas, each storage area comprises a target storage unit obtained by dividing a plurality of nonvolatile storage media according to target division granularity, and the read voltage model is a function of the identification of the target storage unit; the controller obtains the parameter values of a target reading voltage model corresponding to a target storage area from the corresponding relation between the storage area and the parameter values of the reading voltage model according to the target storage area, wherein one storage area corresponds to one or more parameters of the reading voltage model in the corresponding relation between the storage area and the parameter values of the reading voltage model; the controller determines a reading 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 reading voltage model and the parameter value of the target reading voltage model; and the controller acquires the request data according to the reading voltage corresponding to the target physical position and sends the request data to the host.
Through the scheme, the controller can determine a target reading voltage model corresponding to a target storage area where the target physical position is located according to the target physical position indicated by the position indication information of the request data in the reading request sent by the host, and obtain the parameter value of the target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model according to the target storage area, and further determine the reading 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 reading voltage model and the parameter value of the target reading voltage model, wherein the reading voltage model is a function of the identifier of the target storage unit. In the embodiment of the application, the read voltage model corresponding to the nonvolatile storage medium is divided into a plurality of parts according to the parameter values of the different read voltage models corresponding to the different storage areas in the nonvolatile storage medium, and each part is represented by the corresponding read voltage model and the parameter value of the read voltage model, so that the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the time delay of the read operation can be reduced.
In addition, 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, and the controller only needs to store the parameter values of the read voltage models corresponding to different storage areas, does not need to store a specific read voltage value, and can reduce the cost of a storage space.
In one possible embodiment, the controller may obtain the parameter value of the target read voltage model corresponding to the target storage region by: and when the target storage area corresponds to the parameter values of the plurality of reading voltage models in the corresponding relation between the storage area and the parameter values of the reading voltage models, the controller selects one or more of the parameter values of the plurality of reading voltage models corresponding to the target storage area as target reading voltage model parameters according to the target physical position.
In one possible embodiment, the controller may specifically determine the target read voltage model corresponding to the target storage area where the target physical location is located by: and the controller determines a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
In one possible implementation, the read voltage model is a model determined according to read voltage characteristics of target memory cells in the nonvolatile memory medium, and the target division granularity is determined according to the structure of the nonvolatile memory medium and the read voltage characteristics of the memory cells at different division granularities in the nonvolatile memory medium.
In one possible embodiment, the read voltage model is used to characterize the correspondence between the identity of the target memory cell and the optimal read voltage.
In one possible implementation, in a scenario where the parameter value of the target read voltage model includes a coefficient of the identification of the target memory cell in the function of the identification of the target memory cell and a value of a constant term in the function of the identification of the target memory cell, the controller may determine the read voltage corresponding to the target physical location by: the controller determines a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area according to the target reading voltage model and the parameter value of the target reading voltage model, and calculates the reading voltage corresponding to the target physical position according to the identification of the target storage unit in which the target physical position is located and the function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area.
In a possible embodiment, since the read voltage corresponding to the nonvolatile storage medium may drift under the influence of multiple factors, such as the number of times of erasing and writing, the data retention time, the number of times of reading operations, and the temperature, in order to further improve the accuracy of the read voltage determined by the controller, the controller also updates the parameter value of the read voltage model corresponding to the storage region in the nonvolatile storage medium on line, so that the parameter value of the read voltage model can accurately follow the change of the read voltage of the nonvolatile storage medium. Specifically, when any one of the storage areas in the nonvolatile storage medium satisfies a preset update condition, 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.
In one possible embodiment, when the controller is in a system idle time window or meets a preset updating period, the controller determines a first error parameter under any one corresponding read voltage in each storage area; and when the first error parameter is larger than or equal to the first threshold value, the controller updates the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
In one possible embodiment, the preset update period is related to the use state of the storage area; alternatively, the preset update period is related to an average lifetime of a plurality of storage areas included in the nonvolatile storage medium.
In a possible embodiment, for any one 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 the plurality of read voltage models, the storage area compresses the parameter values of the plurality of read voltage models, which satisfy a set condition, among the parameter values of the plurality of read voltage models, into one read voltage model, and the set condition is that the parameter values of the read voltage models are the same or nearly flat, which is equivalent to compressing the correspondence between the storage area and the parameter values of the read voltage model, so that the content of storage in the correspondence between the storage area and the parameter values of the read voltage model can be reduced, the storage space occupied by the parameter values of the read voltage model is reduced, and the storage space of the controller can be saved.
In a possible embodiment, after the controller performs the rewrite or erase operation on the data in one storage area, the influence of the erase times, the data retention time, the read times, and other factors on the read voltage may be reset, so that after the controller performs the rewrite or erase operation on the data in one storage area, it is further required to initialize the parameter value of the read voltage model corresponding to the storage area. Specifically, after performing an overwrite operation or an erase operation on data in one storage area, the controller initializes a parameter value of a read voltage model corresponding to the storage area where the overwrite operation or the erase operation is performed to a set value, where the set value is a default value (pre-configured in the controller) or a pre-configured preset value determined according to a read voltage characteristic of the storage area where the overwrite operation or the erase operation is performed.
In one possible embodiment, the target storage unit may be a physical unit in the nonvolatile storage medium, and specifically may be any one of a grain die, a Plane, a block, a string, a layer, a page, and the like. Or, the target storage unit may also be a logical unit formed by logically abstracting physical units in the nonvolatile storage medium, and the positions of the physical units in one logical unit may be continuous or discontinuous, and specifically may be a storage unit formed by a plurality of die, a storage unit formed by a plurality of planes, or a storage unit formed by a plurality of blocks; a memory cell constructed for a plurality of strings; a storage unit configured by a plurality of layers, a storage unit configured by a plurality of pages, or the like.
In a second aspect, the present application provides a storage controller having a front end for connecting to a host and a back end for connecting to a non-volatile storage medium. The storage controller includes: a receiving unit, a processing unit and a transmitting unit. The receiving unit is used for receiving a reading request sent by a host, wherein the reading request comprises position indication information of request data; the processing unit is used for determining a target reading voltage model corresponding to a target storage area where the target physical position is located according to the target physical position indicated by the position indication information, wherein the target physical position is the physical position of the request data in the nonvolatile storage medium, the nonvolatile storage medium comprises one or more storage areas, each storage area comprises a plurality of target storage units obtained by dividing the nonvolatile storage medium according to the target division granularity, and the reading voltage model is a function of the identification of the target storage unit; according to a target storage area, obtaining a parameter value of a target reading voltage model corresponding to the target storage area from a corresponding relation between the storage area and the parameter value of the reading voltage model, wherein one storage area corresponds to one or more parameters of the reading voltage model in the corresponding relation between the storage area and the parameter value of the reading voltage model; determining a reading 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 reading voltage model and the parameter value of the target reading voltage model; acquiring request data according to the reading voltage corresponding to the target physical position; and the sending unit is used for sending the request data to the host.
In a possible implementation manner, when the processing unit 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, the processing unit is specifically configured to: and when the target storage area corresponds to the parameter values of the plurality of reading voltage models in the corresponding relation between the storage area and the parameter values of the reading voltage models, selecting one or more of the parameter values of the plurality of reading voltage models corresponding to the target storage area as target reading voltage model parameters according to the target physical position.
In a possible implementation manner, when determining, according to the target physical location indicated by the location indication information, a target read voltage model corresponding to a target storage area where the target physical location is located, the processing unit is specifically configured to: and determining a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
In one possible embodiment, the read voltage model is used to characterize the correspondence between the identity of the target memory cell and the optimal read voltage.
In one possible implementation, the parameter values of the target read voltage model include coefficients of the identification of the target memory cell in a function of the identification of the target memory cell and values of constant terms in the function of the identification of the target memory cell. When determining 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, the processing unit is specifically configured to: determining a function which is 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 a target read voltage model and the parameter value of the target read voltage model; and calculating the reading voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area.
In one possible embodiment, the processing unit is further configured to: and when any one of the storage areas meets a preset updating condition, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
In a possible implementation, the processing unit is specifically configured to: when the memory controller is in a system idle time window or meets a preset updating period, determining a first error parameter under any one corresponding reading voltage in each memory area; and when the first error parameter is larger than or equal to a first threshold value, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
In one possible embodiment, the preset update period is related to the use state of the storage area; alternatively, the preset update period is related to an average lifetime of a plurality of storage areas included in the nonvolatile storage medium.
In one possible embodiment, for any one storage region in the correspondence relationship between the storage region and the parameter values of the read voltage model, when the storage region corresponds to the parameter values of the plurality of read voltage models, which satisfy a set condition among the parameter values of the plurality of read voltage models, of the storage region 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 nearly flat.
In one possible embodiment, the processing unit is further configured to: after rewriting or erasing operation is carried out on the data in one storage area, initializing the parameter value of a read voltage model corresponding to the storage area which carries out the rewriting or erasing operation to a set value; wherein the set value is a default value or a preset value pre-configured and determined according to the read voltage characteristic of the memory region where the overwrite operation or the erase operation is performed.
In a possible implementation, when performing a rewrite operation or an erase operation on data in one storage area, the processing unit is specifically configured to: an overwrite operation or an erase operation is performed on all data in one memory area.
In one possible embodiment, the target storage unit may be a physical unit in the nonvolatile storage medium, and specifically may be any one of a grain die, a Plane, a block, a string, a layer, a page, and the like. Or, the target storage unit may also be a logical unit formed by logically abstracting physical units in the nonvolatile storage medium, and the positions of the physical units in one logical unit may be continuous or discontinuous, and specifically may be a storage unit formed by a plurality of die, a storage unit formed by a plurality of planes, or a storage unit formed by a plurality of blocks; a memory cell constructed for a plurality of strings; a storage unit configured by a plurality of layers, a storage unit configured by a plurality of pages, or the like.
In a third aspect, the present application provides an electronic device comprising: a communication interface, a controller, and a memory. The communication interface is used for receiving a read request sent by a host, wherein the read request comprises position indication information of request data; a memory storing code instructions; a controller for calling 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 position is located according to the target physical position indicated by the position indication information, wherein the target physical position is the physical position of the request data in the nonvolatile storage medium, the nonvolatile storage medium comprises one or more storage areas, each storage area comprises a target storage unit obtained by dividing a plurality of nonvolatile storage media according to target division granularity, and the read voltage model is a function of the identification of the target storage unit; according to a target storage area, obtaining a parameter value of a target reading voltage model corresponding to the target storage area from a corresponding relation between the storage area and the parameter value of the reading voltage model, wherein one storage area corresponds to one or more parameters of the reading voltage model in the corresponding relation between the storage area and the parameter value of the reading voltage model; determining a reading 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 reading voltage model and the parameter value of the target reading voltage model; acquiring request data according to the reading voltage corresponding to the target physical position; the communication interface is further configured to: and sending the request data to the host.
In a possible implementation manner, when 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 a parameter value of the read voltage model according to the target storage area, the controller is specifically configured to: and when the target storage area corresponds to the parameter values of the plurality of reading voltage models in the corresponding relation between the storage area and the parameter values of the reading voltage models, selecting one or more of the parameter values of the plurality of reading voltage models corresponding to the target storage area as target reading voltage model parameters according to the target physical position.
In a possible implementation manner, when determining, according to the target physical location indicated by the location indication information, a target read voltage model corresponding to a target storage area where the target physical location is located, the controller is specifically configured to: and determining a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
In one possible embodiment, the read voltage model is used to characterize the correspondence between the identity of the target memory cell and the optimal read voltage.
In one possible implementation, the parameter values of the target read voltage model include coefficients of the identification of the target memory cell in a function of the identification of the target memory cell and values of constant terms in the function of the identification of the target memory cell. When determining 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, the controller is specifically configured to: determining a function which is 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 calculating the reading voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area.
In one possible embodiment, the controller is further configured to: and when any one of the storage areas meets a preset updating condition, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
In a possible embodiment, when the controller updates the parameter value of the read voltage model corresponding to the storage region in the correspondence between the storage region and the parameter value of the read voltage model, the controller is specifically configured to: when the controller is in a system idle time window or meets a preset updating period, determining a first error parameter under any one corresponding reading voltage in each storage area; and when the first error parameter is larger than or equal to the first threshold value, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
In one possible embodiment, the preset update period is related to the use state of the storage area; or, the preset update period is related to an average service life of a plurality of storage areas included in the nonvolatile storage medium.
In one possible embodiment, for any one storage region in the correspondence relationship between the storage region and the parameter values of the read voltage model, when the storage region corresponds to the parameter values of the plurality of read voltage models, which satisfy a set condition among the parameter values of the plurality of read voltage models, of the storage region 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 nearly flat.
In one possible embodiment, the controller is further configured to: after the data in one storage area is subjected to rewriting or erasing operation, initializing a parameter value of a read voltage model corresponding to the storage area subjected to rewriting or erasing operation to a set value, wherein the set value is a default value or a preset value which is preset and determined according to the read voltage characteristics of the storage area subjected to rewriting or erasing operation.
In a possible embodiment, when the controller performs a rewrite operation or an erase operation on data in one of the storage areas, the controller is specifically configured to: an overwrite operation or an erase operation is performed on all data in one memory area.
In one possible embodiment, the target storage unit may be a physical unit in the nonvolatile storage medium, and specifically may be any one of a grain die, a Plane, a block, a string, a layer, a page, and the like. Or, the target storage unit may also be a logical unit formed by logically abstracting physical units in the nonvolatile storage medium, and the positions of the physical units in one logical unit may be continuous or discontinuous, and specifically may be a storage unit formed by a plurality of die, a storage unit formed by a plurality of planes, or a storage unit formed by a plurality of blocks; a memory cell constructed for a plurality of strings; a storage unit configured by a plurality of layers, a storage unit configured by a plurality of pages, or the like.
In a fourth aspect, the present application provides a communication system comprising a host, a controller, and a non-volatile storage medium, the non-volatile storage medium comprising one or more storage regions, each storage region comprising a target storage unit obtained by dividing the non-volatile storage medium by a target division granularity, the read voltage model being a function of an identification regarding the target storage unit. The host is used for sending a reading request to the controller and receiving request data returned by the controller, wherein the reading request comprises position indication information of the request data. The controller is used for receiving a read request sent by a host, and determining a target read voltage model corresponding to a target storage area where a target physical position is located according to the target physical position indicated by position indication information in the read request, wherein the target physical position is the physical position of request data in a nonvolatile storage medium; according to the target storage area, acquiring a parameter value of a target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model; determining a reading 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 reading voltage model and the parameter value of the target reading voltage model; and acquiring request data according to the reading voltage corresponding to the target physical position, and sending the request data to the host.
In a fifth aspect, the present application further provides a computer-readable storage medium having stored thereon computer-executable instructions, which, when executed on a computer, cause the computer to perform the method provided in any one of the above-mentioned first aspects.
In a sixth aspect, the present application also provides a computer program product containing instructions, which when executed on a computer, cause the computer to perform the method provided in any one of the embodiments of the first aspect.
It is understood that the apparatus, the computer storage medium, or the computer program product of any of the data reading methods provided above are all configured to execute the corresponding methods provided above, and therefore, the beneficial effects achieved by the apparatus, the computer storage medium, or the computer program product may refer to the beneficial effects of the corresponding methods provided above, and are not described herein again.
Fig. 1 is a schematic structural diagram of a TLC storage particle provided in an embodiment of the present application;
fig. 2 is a schematic structural diagram of a communication system according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of another communication system according to an embodiment of the present application;
fig. 4 is a schematic flowchart of a data reading method according to an embodiment of the present application;
FIG. 5 is a schematic diagram illustrating a relationship between a storage area and a target storage unit in a nonvolatile storage medium according to an embodiment of the present application;
FIG. 6a is a schematic diagram illustrating a parameter value storage manner of a TLC NAND read voltage model according to an embodiment of the present disclosure;
FIG. 6b is a schematic diagram illustrating a parameter value storage manner of a QLC NAND read voltage model according to an embodiment of the present application;
FIG. 7 is a schematic diagram of another parameter value storage manner for a TLC NAND read voltage model according to an embodiment of the present application;
FIG. 8 is a flowchart illustrating a method for establishing a read voltage model corresponding to a non-volatile storage medium according to an embodiment of the present disclosure;
FIG. 9a is a schematic flow chart illustrating a process for updating parameter values of a read voltage model according to an embodiment of the present disclosure;
FIG. 9b is a schematic flow chart illustrating another method for updating parameter values of a read voltage model according to an embodiment of the present disclosure;
FIG. 10 is a schematic flow chart illustrating a process for calculating parameter values of a read voltage model according to an embodiment of the present disclosure;
fig. 11 is a schematic structural diagram of a memory controller according to an embodiment of the present application;
fig. 12 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
At present, most storage devices use SSDs for data storage, such as hard disks or memory cards. The QoS of an SSD, which is one of the key factors affecting the market competitiveness of a storage device, is the ability of the storage device to provide stable, consistent, and predictable request response services to a host. The QoS may include multiple performance indicators, where read response time is a key performance indicator of QoS, depending primarily on the number of read operations that occur in the flash media in response to host requests. The flash medium is used as a main storage medium of the SSD, the characteristics of the flash medium are influenced by a plurality of factors such as erasing times, data retention time, reading times and the like, and a voltage signal carrying data can be sent and drifted, so that the back end needs to perform a plurality of reading operations (trial and error) to successfully respond to a host request, thereby influencing the reading delay index of QoS and causing longer reading delay.
As a Cell (Cell) with higher storage density is gradually replaced by a three-dimensional (3-dimension, 3D) memory (x-level Cell, xLC) in which each Cell stores x bits (x is an integer greater than 2) (e.g., a triple-level Cell (TLC) in which each Cell stores 3 bits and a quad-level Cell (QLC) in which each Cell stores 4 bits, etc.) to become a mainstream storage medium, a read delay index of QoS is facing more and more challenges. Fig. 1 is a schematic view of an internal hierarchical structure of a TLC particle according to an embodiment of the present invention. Among them, the minimum unit of the write operation is a page (page), which can be divided into three types, i.e., an upper page (upper page), a middle page (middle page), and a lower page (lower page) (for the QLC particle, the page can be divided into a top page (top page), an upper page (upper page), a middle page (middle page), and a lower page (lower page)). An upper page, a middle page and a lower page may form a Word Line (WL), and several WLs form a Layer (Layer) or a string (string) in different directions, for example, in fig. 1, a plurality of WLs in the horizontal direction form a Layer, and a plurality of WLs in the vertical direction form a string. The minimum unit of erase operations of a page is called a block. Multiple blocks form planes (planes) which can form dies (die). A plurality of die form an encapsulation package.
In addition, in many applications the controller will group some blocks into super blocks. The super block is characterized in that the internal blocks are erased or programmed at the same time, and the states of the use conditions of the internal blocks of the super block are consistent or close, such as the erasing times, the data retention time and the like.
Compared with the 2D MLC, the logic state in each Cell (Cell) is increased from 4 (2 bits) to 2 by the 3D xLCxAnd (x bit), the voltage signal window for distinguishing different logic states becomes smaller, and thus the accuracy requirement of reading voltage is improved. In addition, the number of pages in the block and the number of blocks in the die are gradually increased, the physical inconsistency of each layer in the flash is increased, and all the pages are set to be uniform and effectiveThe read voltage becomes increasingly difficult.
In order to solve the above problems, the present application provides a data reading method, a memory controller, and an electronic device, so as to reduce read latency.
In the present application, the plural number means two or more. In order to make the objects, technical solutions and advantages of the present application more clear, the present application will be further described in detail with reference to the accompanying drawings.
Fig. 2 is a hardware architecture diagram of a communication system applied in the embodiment of the present application, as shown in fig. 2, the system includes a host, an SSD controller, and a flash array, and the host can access/retrieve data in the flash array in the SSD through the SSD controller. The host may be connected to the front end of the SSD controller through a plurality of interfaces such as a non-volatile memory host controller interface (NVMe)/serial attached small computer system interface (SCSI is an abbreviation of small computer system interface), an SAS)/peripheral component interconnect express (PCIe) interface, and the like, the rear end of the SSD controller may be connected to the flash array through a flash memory interface (NAND flash interface, NFI), and the host performs operations such as reading, writing, and erasing on data in the flash array through the SSD controller.
In addition, the embodiment of the present application can also be applied to the hardware architecture of another communication system as shown in fig. 3. The controller in this system is similar to the SSD controller in the system shown in fig. 2. The difference is that the controller and the flash array in the system are packaged into an independent chip, and the host is connected with the controller through interfaces such as Universal Flash Storage (UFS)/embedded multimedia memory card (eMMC), and accesses data through the interfaces. For example, a chip packaged by the controller and the flash array can be applied to a mobile terminal such as a mobile phone, a tablet computer, a wearable device, and the like.
As shown in fig. 4, the data reading method provided in this embodiment of the application is applied to a controller, a front end of the controller is used to connect a host, a rear end of the controller is used to connect a nonvolatile storage medium, and the nonvolatile storage medium may be a flash-based storage medium such as a 3D NAND flash and a 2D NAND flash, or may also be a Magnetic Random Access Memory (MRAM), a Resistive Random Access Memory (RRAM), a phase change memory (PCRAM), a Ferroelectric Random Access Memory (FRAM), a nanotube memory (NRAM), and other novel nonvolatile storage media. The method can be applied to the communication system shown in fig. 2 or fig. 3, and mainly includes the following steps:
s401: the controller receives a read request sent by a host, wherein the read request comprises position indication information of requested data.
When the host needs to read certain data from the nonvolatile storage medium managed by the controller, the host may send a read request to the controller, where the data requested by the read request may be referred to as request data, and the read request may carry position indication information. The location indication information may be used to indicate a logical address, i.e. a logical address, such as a Logical Page Address (LPA), when the host accesses the requested data, where the logical address and the physical address have a mapping relationship, and a physical location of the requested data in the nonvolatile storage medium may be determined according to the logical address of the requested data. In practical applications, the position indication information may also be other information having a corresponding relationship with the physical position, for example, the position indication information may be a key value, and a corresponding value may be obtained through a preset corresponding relationship between the key value and the value, and the value may be the physical position of the data, which is not limited in this embodiment of the present application.
For example, when the nonvolatile storage medium is a 3D NAND TLC memory, the read request received by the controller may include one or more LPAs, and the controller determines a Physical Page Number (PPN) corresponding to each LPA according to a mapping relationship between the LPA and the PPN, and further determines information used for representing a physical location of data requested by the host in the nonvolatile storage medium, such as a page number, a layer number, a block number plane number, a die number, and a channel number, according to the PPN corresponding to each LPA.
Specifically, when the controller receives a read request sent by the host, the controller may obtain a physical address of the requested data stored in the nonvolatile storage medium according to the location indication information, where the physical address of the requested data is referred to as a target physical location.
S402: and the controller determines a target reading voltage model corresponding to the target storage area where the target physical position is located according to the target physical position indicated by the position indication information. The target physical location is a physical location of the request data in the nonvolatile storage medium, the nonvolatile storage medium includes one or more storage regions, each storage region includes a plurality of target storage units obtained by dividing the nonvolatile storage medium according to a target division granularity, and the read voltage model is a function of an identifier (such as a number of the target storage unit) of the target storage unit.
The relationship between the nonvolatile storage medium, the storage area, and the target storage unit is shown in fig. 5, where the nonvolatile storage medium includes at least one storage area, each storage area includes a plurality of target storage units, each target storage unit may be represented by a corresponding physical location, and a plurality of physical locations included in one storage area may be corresponding to at least one target storage unit included in the storage area. It should be noted that, the number of target memory cells included in each memory region is not limited in the present application, the number of target memory cells included in each memory region is mainly determined according to the read voltage characteristics of the target memory cells, and the characteristics of the read voltage in each memory region continuously change with respect to the identifiers of the target memory cells, so the number of target memory cells included in each memory region may be the same or different.
Further, the target storage unit may be a physical unit in the nonvolatile storage medium, and specifically may be any one of a grain die, a Plane, a block, a string, a layer, a page, and the like. Or, the target storage unit may also be a logical unit formed by logically abstracting physical units in the nonvolatile storage medium, and the positions of the physical units in one logical unit may be continuous or discontinuous, and specifically may be a storage unit formed by a plurality of die, a storage unit formed by a plurality of planes, or a storage unit formed by a plurality of blocks; a memory cell constructed for a plurality of strings; a storage unit configured by a plurality of layers, a storage unit configured by a plurality of pages, or the like.
The read voltage refers to a corresponding conversion voltage when converting an analog signal into a data signal, and the read voltage characteristic may refer to a change rule of a corresponding error parameter when reading the read voltage by using different devices under different conditions (e.g., different temperatures, different times, different PEs, different data retention times, and different read counts). In a specific implementation, the read voltage model is used to characterize the correspondence between the identity of the target memory cell and the optimal read voltage. The read voltage model is a function of the identification of the target memory cell, is used for representing the rule that the read voltage changes along with the change of the identification of the target memory cell, is a qualitative description of the read voltage, but not a quantitative description, and for example, when the read voltage model is a linear model, the read voltage model represents that the read voltage changes along with the change of the identification of the target memory cell in a linear manner. The read voltage model may be a linear model or a nonlinear model, and may be represented by a functional relationship between the optimal read voltage and the identity of the target memory cell, for example, when the read voltage model is a linear model, the functional relationship between the optimal read voltage and the identity of the target memory cell is a linear function, and may be represented as y ═ ax + b, where y represents the optimal read voltage, x represents the identity of the target memory cell, and a and b are parameter values of the read voltage model. The target memory cell is usually indicated by the number of the target memory cell, and the number of the target memory cell may be indicated by continuous numbers or discontinuous numbers, for example, the number of the target memory cell may be 1,2,3 …, N (N is a positive integer), or the number of the target memory cell may be 1,3,5 … 2N-1, etc. which are changed according to a specific law (an arithmetic series, an geometric series, etc.).
S403: and the controller acquires the parameter value of the target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model according to the target storage area.
In the corresponding relationship between the storage areas and the parameter values of the read voltage models, one storage area corresponds to one or more parameters of the read voltage models. The corresponding relation between the storage area and the parameter value of the reading voltage model can be stored in the controller in the form of a table, the table can comprise an identifier corresponding to the storage area, and the identifier of the storage area and the parameter value of the reading voltage model are stored in the table in a one-to-one correspondence manner; the table may also not store the identifier of the storage area, and 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 the index value corresponding to the storage area is determined according to the physical position of the storage area, so as to reduce the table entries in the table, and further reduce the storage space occupied by the table.
For any one of the storage regions in the correspondence of the storage region and the parameter value of the read voltage model, the storage region may correspond to one or more read voltage model parameters. For example, for TLC NAND, one memory region corresponds to parameter values of 7 read voltage models, and when the read voltage model is a linear model and the parameter values of the read voltage model are respectively represented by a and b, the parameter values of the 7 read voltage models are respectively denoted as r1a, r1b, r2a, r2b, r3a, r3b, r4a, r4b, r5a, r5b, r6a, r6b, and r7a, r7b, and the storage formats of the memory regions in the correspondence relationship between the memory regions and the parameter values of the read voltage model can be as shown in fig. 6 a. For another example, for the QLC NAND, one storage region corresponds to 15 parameter values of the read voltage model, and when the read voltage model is a linear model and the parameter values of the read voltage model are respectively represented by a and b, the 15 parameters of the read voltage model are respectively denoted as r1a, r1b, r2a, r2b, r3a, r3b, r4a, r4b, r5a, r5b, r6a, r6b …, r15a, and r15b, and the storage format of the storage region in the correspondence relationship between the storage region and the parameter values of the read voltage model can be as shown in fig. 6 b.
In the embodiments of the present application, the storage method of the parameter values of the read voltage model in the correspondence relationship between the storage region and the parameter values of the read voltage model is not limited, and the storage methods shown in fig. 6a and 6b are only for example and are not limited to the present application. For any one of the corresponding relationships between the storage regions and the parameter values of the read voltage model, the storage order of the parameter values of the read voltage model corresponding to the storage regions may be arranged in the order shown in fig. 6a and 6b, or may be arranged in other orders as needed, and the size of the storage space occupied by the parameter values of each read voltage model may be the same or different.
Further, for any one storage area in the corresponding relationship between the storage area and the parameter values of the read voltage model, when the storage area corresponds to the parameter values of the plurality of read voltage models, which satisfy the set condition, among the parameter values of the plurality of read voltage models, of 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 corresponding relationship between the storage area and the parameter values of the read voltage model, so that the content of storage in the corresponding relationship between the storage area and the parameter values of the read voltage model can be reduced, the storage space occupied by the parameter values of the read voltage model is reduced, and the storage space of the controller can be saved. In this embodiment, the two read voltage models having the same or similar parameter values mean that the difference between the parameter values of the two read voltage models is small, for example, the difference between the corresponding 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.
For example, for TLC NAND, the read voltage model corresponding to the storage region is a linear read voltage model y ═ ax + b, y represents a read voltage, x represents an identification of the target memory cell, a and b are parameter values of the read voltage model, and the parameter values of 7 read voltage models corresponding to one storage region are denoted as r1, r1, r2, r2, r3, r3, r4, r4, r5, r5, r6, and r7, r7, respectively, if r2 and r3 are similar and r4 and r5 are similar and r6 and r7 are similar, then r2, r2, r3, r3 may be compressed into a read voltage model parameter, r4, r4, r5, r5 may be a read voltage model parameter, r6, r6 and r7, r7 may be compressed into a read voltage model corresponding to the storage region, and the storage voltage model may be changed into a storage voltage model corresponding storage voltage format as shown by the parameter values of a storage region corresponding to the storage voltage model Such as the storage format shown in fig. 7.
In a specific implementation, the read voltage model is usually expressed by a functional relationship between the read voltage and the identity of the target memory cell, i.e. the read voltage model is a function of the identity of the target memory cell, and therefore the parameter value of the target read voltage model includes a coefficient of the identity of the target memory cell in the function of the identity of the target memory cell and a value of a constant term in the function of the identity of the target memory cell, i.e. the parameter value of the target read voltage model includes a coefficient before the identity of the independent variable target memory cell in the function of the identity of the target memory cell and a value of a constant term in the function, and when the constant term is not included in the function, 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 identity of the target memory cell is a linear function, which may be represented as y ═ ax + b, where y represents the read voltage, x represents the identity of the target memory cell, and a and b are parameter values of the read voltage model.
S404: and the controller determines the reading 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 reading voltage model and the parameter value of the target reading voltage model.
S405: and the controller acquires the request data according to the reading voltage corresponding to the target physical position and sends the request data to the host.
In step S402, the controller may specifically determine a target read voltage model corresponding to the target storage area where the target physical location is located by: and the controller determines a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
The read voltage model is a model determined according to read voltage characteristics of a target storage unit in the nonvolatile storage medium, and the target division granularity is determined according to the structure of the nonvolatile storage medium and the read voltage characteristics of the storage unit in the nonvolatile storage medium under different division granularities. The structure of the nonvolatile storage medium determines the optional range of the partition granularity of the nonvolatile storage medium, for example, for 3D NAND, the nonvolatile storage medium may be partitioned by the granularity of die, plane, block, layer, string, and page, and the granularity of multiple die, multiple plane, multiple block, multiple layer, multiple string, and multiple page.
That is, as shown in fig. 8, the process of determining the read voltage model of different storage areas in the nonvolatile storage medium mainly includes the following steps:
s801: and determining the target division granularity according to the structure of the nonvolatile storage medium and the read voltage characteristics of the storage unit under different division granularities in the nonvolatile storage medium. Under the target division granularity, the optimal reading voltage of the target storage unit in the nonvolatile storage medium changes according to a certain rule, namely the target storage unit under the target division granularity can represent the reading voltage, so that the determined reading voltage model can accurately represent the reading voltage, and the accuracy of the reading voltage is improved.
S802: and dividing the nonvolatile storage medium into one or more storage areas according to the read voltage characteristics of the storage units under the target division granularity in the nonvolatile storage medium. Wherein, for any one of the storage areas, the characteristic of the read voltage continuously changes according to a specific rule along with the change of the identification of the target storage unit included in the storage area.
S803: and respectively determining a reading voltage model corresponding to each storage area according to the variation trend of the reading voltage characteristic corresponding to each storage area. The read voltage model corresponding to the nonvolatile storage medium is divided into a plurality of parts, and each part is represented by the corresponding read voltage model and the parameter value of the read voltage model, so that the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the time delay of the read operation is reduced.
After the reading voltage model corresponding to each storage area is determined, the reading voltage at different physical positions in each storage area is sampled, and the parameter value of the reading voltage model corresponding to each storage area is estimated, so that the corresponding relation between the storage area and the parameter value of the reading voltage model is obtained. Generally, determining the read voltage models of different storage regions and the corresponding relationship between the storage regions and the parameter values of the read voltage models is completed by technicians on line, and the read voltage models of different storage regions and the corresponding relationship between the storage regions and the parameter values of the read voltage models are configured in the controller in advance, so that the controller is not required to determine the read voltage models of different storage regions and the corresponding relationship between the storage regions and the parameter values of the read voltage models when reading data on line.
In step S403, when the correspondence between the storage area and the parameter value of the read voltage model includes the identifier corresponding to the storage area, the controller may directly 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 identifier of the target storage area. When the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are arranged according to the index values of the storage region corresponding to the parameter values of the read voltage model and do not include the identifier of the storage region, the controller obtains the model parameters of the target read voltage from the corresponding relationship between the storage region and the parameter values of the read voltage model according to the target index values according to the target physical positions, wherein the target index values are used for indicating the storage positions of the parameter values of the target read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model.
When the target storage region corresponds to the parameter values of the multiple read voltage models in the correspondence between the storage region and the parameter values of the read voltage models, the controller may obtain the parameter values of all the read voltage models corresponding to the target storage region from the correspondence between the storage region and the parameter values of the read voltage models according to the target storage region, and then select one or more of the parameter values of all the read voltage models corresponding to the target storage region as target read voltage model parameters according to the target physical position, or the controller may select one or more of the parameter values of the multiple read voltage models corresponding to the target storage region from the correspondence between the storage region and the parameter values of the read voltage models according to the target physical position as target read voltage model parameters.
In step S404, in a scenario where the parameter value of the target read voltage model includes a coefficient of the identification of the target memory cell in the function of the identification of the target memory cell and a value of a constant term in the function of the identification of the target memory cell, the controller may determine the read voltage corresponding to the target physical location by: the controller determines a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area according to the target reading voltage model and the parameter value of the target reading voltage model, and calculates the reading voltage corresponding to the target physical position according to the identification of the target storage unit in which the target physical position is located and the function which is satisfied by the reading 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 target memory cell identifier, and may be represented as y ═ ax + b, where y denotes a read voltage, x denotes the target memory cell identifier, a and b denote parameter values (which are constants) of the target read voltage model, and if the identifier of the target memory cell in which the target physical location is located is 2, then the read voltage y ═ 2a + b corresponding to the target physical location.
It should be noted that, when the target storage unit is a logic unit formed after logical abstraction of a physical unit in the nonvolatile storage medium, before determining 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, the controller maps the target physical location to the corresponding target storage unit according to the mapping relationship between the physical location in the nonvolatile storage medium and the target storage unit.
For example, in a scenario where a read voltage model corresponding to each storage region in the nonvolatile storage medium is a linear model, that is, the read voltage model is y ═ ax + b, where y represents an optimal read voltage, x represents a number of a target storage unit, one target storage unit is a layer, a and b are parameter values of the read voltage model, and parameter values of the read voltage model in a correspondence relationship between the storage region and the parameter values of the read voltage model are arranged according to index values of the storage region corresponding to the parameter values of the read voltage model, and an identifier of the storage region is not included, the controller may determine, by the following steps, a read voltage corresponding to a target physical position indicated by position indication information of a requested data value in a read request sent by the host:
1. the method comprises the steps that a controller receives a read request of a host, wherein the read request comprises an LPA (low-pass architecture) requesting data;
2. the controller determines the PPN corresponding to the LPA in the read request through an LPA-PPN mapping table, determines a page number, a block number, a channel number, a CE number, a die number and a plane number corresponding to the LPA according to the PPN corresponding to the LPA, and determines a layer number corresponding to the LPA according to the page number corresponding to the LPA.
3. The controller determines the storage position of the parameter value of the target reading voltage model corresponding to the storage area corresponding to the LPA in the corresponding relation between the storage area and the parameter value of the reading voltage model according to the information of the page number, the block number, the channel number, the CE number, the die number, the plane number corresponding to the LPA and the layer corresponding to the LPA;
4. and the controller acquires the parameter value of the target reading voltage model from the corresponding relation between the storage area and the parameter value of the reading voltage model according to the determined storage position.
And if the storage area where the page corresponding to the LPA is located corresponds to the multiple read voltage models, the controller selects one or more parameters of the read voltage models from the parameter values of the corresponding multiple read voltage models according to the physical position of the page corresponding to the LPA. For example, when a lower page in the TLC NAND is read, the read operation strategy of the controller is configured to require two read voltages to perform the read operation, and at this time, the controller needs to obtain parameter values of read voltage models corresponding to the two read voltages.
5. And the controller calculates the reading voltage corresponding to the page corresponding to the LPA according to the layer number corresponding to the LPA, the reading voltage model y ═ ax + b and the acquired reading voltage model parameter values a and b.
Because the read voltage corresponding to the nonvolatile storage medium may drift when affected by multiple factors, such as the number of times of erasing and writing, the data retention time, the number of times of reading operations, the temperature, and the like, 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 region in the nonvolatile storage medium on line, so that the parameter value of the read voltage model can accurately follow the change of the read voltage of the nonvolatile storage medium. Specifically, when any one of the storage areas in the nonvolatile storage medium satisfies a preset update condition, 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.
When the preset condition is met, the controller can determine the effective reading voltage corresponding to the storage region through a specific online reading voltage optimization algorithm (such as online voltage search), determine the parameter value of the reading voltage model corresponding to the storage region according to the effective reading voltage, and update the parameter value of the reading voltage model corresponding to the storage region in the corresponding relation between the storage region and the parameter value of the reading voltage model according to the calculated parameter value of the reading voltage model. When the controller dynamically updates the parameter value of the read voltage model corresponding to the storage region in the corresponding relationship between the storage region 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 region, and can also passively update the parameter value of the read voltage model corresponding to the storage region. The parameter value of the read voltage model corresponding to the storage region in the corresponding relationship between the active update storage region and the parameter value of the read voltage model, or the parameter value of the read voltage model corresponding to the storage region in the corresponding relationship between the passive update storage region and the parameter value of the read voltage model can be ensured to be dynamically updated in the corresponding relationship between the storage region and the parameter value of the read voltage model. These two modes will be described in detail below.
Firstly, when the controller is in a system idle time window or meets a preset updating period, the controller determines a first error parameter under a read voltage corresponding to any one of the storage areas;
and when the first error parameter is larger than or equal to a first threshold value, the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the read voltage model.
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 that a load of a read/write IO of the controller is lower than a certain specific value, so that the controller is relatively idle. The preset update period may be set in advance, and the preset update period may include one period or a plurality of different periods. The setting of the preset update period corresponding to one storage region may be related to the usage state of the storage region (e.g., the number of PEs and the number of read operations), or related to the average lifetime of a plurality of storage regions included in the nonvolatile storage medium. For example, the average lifetime of the plurality of storage regions may be represented by an average PE, and a larger preset update period may be used when the average PE is smaller (e.g., early in life) and a smaller preset update period may be used when the average PE is larger (e.g., late in life).
In addition, a first error parameter may be used to indicate the degree of error in the read data, which may be the number of error bits or the bit error rate RBER. The first threshold may be a preset fault tolerance threshold, and if the first error parameter is smaller than the first threshold, it indicates that the first error parameter is within the fault tolerance range, and if the first error parameter is greater than or equal to the first threshold, it indicates that the first error parameter is not within the fault tolerance range.
Specifically, when the controller is in a system idle time window or meets a preset update period, the controller takes a read voltage value obtained by calculating a currently stored parameter value of the read voltage model corresponding to the storage area in a corresponding relation between the storage area and the parameter value of the read voltage model as a detected read voltage, samples a physical position included in the storage area according to the detected read voltage, and obtains an error parameter under the detected read voltage as a first error parameter. If the first error parameter is less than the first threshold, the controller may determine that the read voltage corresponding to the memory region is valid and not update it. If the first error parameter is greater than or equal to the first threshold, the controller may determine that the read voltage corresponding to the memory region is invalid and needs to be updated.
When the controller updates the parameter value of the read voltage model corresponding to the storage region, the controller may determine the current effective read voltage by an attempted method, for example, the controller may test an error parameter under a plurality of voltages in a manner that the voltage gradually increases or decreases, determine the read voltage with the minimum error parameter as the current effective read voltage, thereby calculating a parameter value of the effective read voltage model according to the effective voltage and the read voltage model corresponding to the storage region, and replace the read voltage corresponding to the storage region in the correspondence relationship between the storage region and the parameter value of the read voltage model with the calculated parameter value of the effective read voltage model, so as to update the parameter value of the read voltage model corresponding to the storage region.
In the method for actively updating the parameter value of the read voltage model in the corresponding relationship between the storage region and the parameter value of the read voltage model, the controller actively updates the parameter value of the read voltage model in the corresponding relationship between the storage region 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 corresponding relationship between the storage region and the parameter value of the read voltage model in each preset updating period, so that the parameter value of the read voltage model in the corresponding relationship between the storage region and the parameter value of the read voltage model is updated once every period of time. Therefore, the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are actively updated, so that the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are in a dynamic updating state, and the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are guaranteed to be real-time and effective.
In addition, when the preset update period triggers the controller to actively update the parameter value of the read voltage model corresponding to the storage region, the preset update period may trigger the controller to actively update the parameter value of the read voltage model corresponding to the storage region by a timer interrupt, or trigger the controller to actively update the parameter value of the read voltage model corresponding to the storage region by another forcing signal, where the specific forcing signal may be set in advance, which is not limited in this application.
Secondly, passively updating the parameter value of the read voltage model corresponding to the storage region by the controller may specifically include: and when the second error parameter of the first read request data is larger than or equal to the second threshold value under the reading voltage determined by the parameter value of the reading voltage model corresponding to the storage area, the controller updates the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the parameter values of the storage area and the reading voltage model.
The first-time read request data refers to request data which is read from the storage area for the first time by the controller according to a read voltage corresponding to the storage area in the read voltage management, and the request data is data acquired based on a read request sent by the host and is not data which is acquired by sampling actively by the controller. The second threshold may be the same as or different from the first threshold.
Specifically, the controller reads the request data from the storage area for the first time at 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 may determine that the parameter value of the read voltage model corresponding to the memory region is valid, and thus not update it. If the second error parameter is greater than or equal to the first threshold, the controller may determine that the parameter value of the read voltage model corresponding to the memory region is invalid and needs to be updated.
It should be noted that, when the controller obtains the current effective read voltage in the process of updating the parameter value of the read voltage model corresponding to the storage area), the controller may also update the parameter value in a manner that the voltage gradually increases or decreases, and the specific implementation process is consistent with the description in the first manner, which is not described herein again in this embodiment of the application.
When the controller updates the read voltages corresponding to the plurality of storage regions in the correspondence relationship between the storage regions and the parameter values of the read voltage model, the controller may determine the storage region where the parameter values of the read voltage model are invalid, and then the controller may update only the parameter values of the read voltage model of the storage region where the parameter values of the read voltage model are invalid in the correspondence relationship between the storage region and the parameter values of the read voltage model. In the embodiment of the application, when the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relationship between the parameter values of the storage area and the read voltage model, whether the parameter value of the read voltage model corresponding to the storage area stored in the corresponding relationship between the parameter values of the storage area and the read voltage model is valid is determined, and the parameter value is updated when the parameter value of the read voltage model corresponding to the storage area stored in the corresponding relationship between the parameter values of the storage area and the read voltage model is determined to be invalid, so that unnecessary operations can be avoided, and further, the system bandwidth and the load overhead are saved.
In the above passive method for updating the parameter values of the read voltage model in the correspondence relationship between the storage region and the parameter values of the read voltage model, the controller updates the parameter values of the read voltage model to the current parameter values of the valid read voltage model when the parameter values of the read voltage model in the correspondence relationship between the storage region and the parameter values of the read voltage model are invalid, so that the controller updates the parameter values of the one or more read voltage models when one or more invalid parameter values of the read voltage model appear in the correspondence relationship between the storage region and the parameter values of the read voltage model in each period of time. Therefore, the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are passively updated, so that the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are in a dynamic updating state, and the parameter values of the read voltage model in the corresponding relationship between the storage region and the parameter values of the read voltage model are guaranteed to be real-time and effective.
For ease of understanding, the process of the controller actively updating the correspondence relationship between the storage region and the parameter value of the read voltage model and passively updating the correspondence relationship between the storage region and the parameter value of the read voltage model will be respectively illustrated by the process flows shown in fig. 9a and 9 b.
FIG. 9a is a flowchart illustrating a method for actively updating the correspondence between the storage area and the parameter value of the read voltage model by the controller, taking the controller in the system idle time window as an example. Specifically, assuming that all the parameter values of the read voltage model in the correspondence between the storage area and the parameter values of the read voltage model need to be updated, when the controller is in the system idle time window, the controller may determine an error parameter corresponding to the parameter value of each read voltage model in the correspondence between the storage area and the parameter values 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 values of the read voltage model (for example, when the error parameter corresponding to the error parameter is smaller than a first threshold, it is determined that the update is not needed, and when the error parameter corresponding to the error parameter is greater than or equal to the first threshold, it is determined that the update is needed), thereby obtaining parameter value record information of the read voltage model to be updated (i.e., a storage record of invalid read voltage in the read voltage management information); and the controller updates the parameter value recording information of the read voltage model to be updated by a method for updating the parameter value of the read voltage model. And finishing when the parameter value recording information of all the read voltage models to be updated is updated, or finishing the idle time window of the system.
FIG. 9b is a flow chart of a controller passively updating the correspondence between the storage area and the parameter value of the read voltage model. Specifically, the controller receives a read request sent by the host, determines a corresponding read voltage model according to the position indication information included in the read request, obtains a parameter value of the corresponding read voltage model from a corresponding relationship between the parameter values of the storage region and the read voltage model, calculates a corresponding read voltage according to the determined read voltage model, the parameter value of the read voltage model, and an identifier of a target storage unit indicated by the position indication information in the read request, marks the parameter value of the read voltage model in the corresponding relationship between the parameter values of the storage region and the read voltage model as an invalid parameter value of the read voltage model when the requested data obtained based on the read voltage for the first time fails (i.e., the data is read for the first time fails), and updates or ends the parameter value of the invalid read voltage model.
It should be noted that the step of determining, by the controller, the invalid parameter value of the read voltage model in the correspondence relationship between the memory region and the parameter value of the read voltage model, and the step of updating the invalid parameter value of the read voltage model in the correspondence relationship between the memory region and the parameter value of the read voltage model may be executed synchronously or asynchronously. That is, the controller may first determine the parameter values of all the invalid read voltage models in the correspondence between the storage region and the parameter values of the read voltage models, and then update the parameter values of all the invalid read voltage models one by one; or after the controller determines a parameter value of an invalid read voltage model in the corresponding relation between the storage area and the parameter value of the read voltage model, the controller updates the parameter value of the invalid read voltage model, then determines the parameter value of the next invalid read voltage model to update, and so on; alternatively, the controller may determine the invalid parameter values of the read voltage model in the correspondence relationship between the storage region and the parameter values of the read voltage model, and update the determined invalid parameter values of the read voltage model.
In practical 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 flash storage medium such as a memory, backup needs to be performed in the nonvolatile storage medium, and when the system is initialized, the correspondence between the storage area and the parameter value of the read voltage model is imported from the nonvolatile storage medium into the flash storage medium, so that initialization is completed. Or the controller directly stores the corresponding relation between the storage area and the parameter value of the read voltage model in a storage medium which has both quick access and nonvolatile characteristics.
Specifically, in a scenario where the read voltage model is a linear model (y ═ ax + b), in the process of actively updating the parameter values of the read voltage model in the correspondence between the storage region and the parameter values of the read voltage model and passively updating the parameter values of the read voltage model in the correspondence between the storage region and the parameter values of the read voltage model, the effective parameter values of the read voltage model can be calculated in the following manner, as shown in fig. 10:
s1001: intermediate parameters Sum _ N, Sum _ XX, Sum _ XY, Sum _ X, and Sum _ Y for calculating parameters of an effective read voltage model are set to record and process information required for parameter value update of the read voltage model, initialized to 0 at the start of online update.
S1002: performing online read voltage search on the physical position of a sampling sample in a nonvolatile storage medium; the sampling samples can be configured in advance off-line or randomly generated on-line.
S1003: and judging whether the reading voltage of the sampling sample is effective or not.
When the read voltage of the sampling sample is determined to be valid, the read voltage of the sampling sample can be determined according to the magnitude relation between the read voltage of the sampling sample and the read voltages of other sampling samples, for example, when the read voltage of the sampling sample is obviously greater than or obviously less than the read voltages of other sampling samples, the read voltage of the sampling sample is considered to be invalid.
S1004: and if the reading voltage of the sampling sample is effective, updating the parameter value of the reading voltage model. The serial number of the target storage unit of the ith effective sampling sample is recorded as Xi, the dereferencing of the jth reading voltage is recorded as Yij, and the operation related to updating the parameter value of the reading voltage model comprises the following steps:
Sum_N++;
Sum_XX+=Xi*Xi;
Sum_XY+=Xi*Yij;
Sum_X+=Xi;
Sum_Y+=Yij;
s1005: if the sampling sample is invalid, performing online reading voltage search of the next sampling sample;
s1006: after sampling of all sampling samples corresponding to the parameters of the read voltage model is completed, calculating the parameter values of the read voltage model through the following formula, and completing updating of the parameter values of the read voltage model corresponding to the jth read voltage in the parameter values of the read voltage model:
Alpha=Sum_XX*Sum_N-Sum_X*Sum_X;
a=(Sum_XY*Sum_N-Sum_X*Sum_Y)/Alpha;
b=(Sum_XX*Sum_Y-Sum_XY*Sum_X)/Alpha;
where ". sup." denotes multiplication and "/" denotes division.
When the memory area to be updated corresponds to the parameter values of the plurality of read voltage models, the steps S1001 to S1006 are performed for each parameter value of the read voltage model. The updating process of the parameter values of the plurality of read voltage models corresponding to the storage area to be updated can be sequentially performed according to a set sequence, and can also be simultaneously performed in parallel.
When the controller performs the rewrite or erase operation on the data in one storage area, the influence of factors such as the number of times of erase, the data retention time, the number of times of read operation on the read voltage is reset, so that after the controller performs the rewrite or erase operation on the data in one storage area, the parameter value of the read voltage model corresponding to the storage area needs to be initialized. Specifically, after performing an overwrite operation or an erase operation on data in one storage area, the controller initializes a parameter value of a read voltage model corresponding to the storage area where the overwrite operation or the erase operation is performed to a set value, where the set value is a default value (pre-configured in the controller) or a pre-configured preset value determined according to a read voltage characteristic of the storage area where the overwrite operation or the erase operation is performed. In addition, the controller initializes parameter values of a read voltage model corresponding to a memory area where the overwrite operation or the erase operation is performed, to values before the overwrite operation or the erase operation is performed, after the overwrite or the erase operation is performed on data in one memory area.
Wherein the controller typically performs a rewrite operation or an erase operation on all data in one storage area. For different types of nonvolatile storage media, some nonvolatile storage media can directly write data in a storage unit with data stored therein, overwrite the original data, that is, directly perform rewrite operations, such as RRAM, PCRAM, FRAM, NRAM, and the like; some non-volatile storage media need to erase the original data in the storage unit before writing new data, so that an erase operation is performed first, for example, flash-based non-volatile storage media.
Through the scheme, the controller can determine a target reading voltage model corresponding to a target storage area where the target physical position is located according to the target physical position indicated by the position indication information of the request data in the reading request sent by the host, and obtain the parameter value of the target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model according to the target storage area, and further determine the reading 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 reading voltage model and the parameter value of the target reading voltage model, wherein the reading voltage model is a function of the identifier of the target storage unit. In the embodiment of the application, the read voltage model corresponding to the nonvolatile storage medium is divided into a plurality of parts according to the parameter values of the different read voltage models corresponding to the different storage areas in the nonvolatile storage medium, and each part is represented by the corresponding read voltage model and the parameter value of the read voltage model, so that the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the time delay of the read operation can be reduced.
In addition, 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, and the controller only needs to store the parameter values of the read voltage models corresponding to different storage areas, does not need to store a specific read voltage value, and can reduce the cost of a storage space.
The above description mainly introduces the scheme provided by the embodiment of the present application from the perspective of interaction between various devices. It will be appreciated that each of the devices, such as the host and the controller, for implementing the above-described functions, includes corresponding hardware structures and/or software modules for performing the respective functions. Those of skill in the art will readily appreciate that the various illustrative devices and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiment of the present application, the controller may be divided into the functional modules according to the above method example, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. It should be noted that, in the embodiment of the present application, the division of the module is schematic, and is only one logic function division, and there may be another division manner in actual implementation.
In the case of dividing each functional module according to each function, the embodiment of the present application provides a possible structural schematic diagram of the controller related to the above embodiment. As shown in fig. 11, the memory controller 1100 includes a receiving unit 1101, a processing unit 1102, and a transmitting unit 1103. Wherein, the receiving unit 1101 is configured to support the controller to execute step S401 in the data reading method provided in fig. 4; the processing unit 1102 is configured to support the controller to execute the process of acquiring the request data in step S402, step S403, step S404, and step S405 in the data reading method provided in fig. 4, and/or other processes for the technology described herein, for example, the parameter value updating process of the read voltage model shown in fig. 10 (steps S1001-S1006); the sending unit 1103 is used to support the controller to execute a process of sending the request data to the host in step S405 in the data reading method provided in fig. 4. For specific description, reference is made to relevant explanations in the above embodiments, and details of the embodiments of the present application are not repeated herein.
In terms of 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 sender, and the receiver and the sender may constitute a communication interface.
The embodiment of the present application further provides an electronic device, which has the function of the storage controller shown in fig. 11, and specifically may be a storage device or a communication device. Referring to fig. 12, an 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 connected to each other by a bus 1204. In an embodiment of the present application, the controller 1203 is configured to control and manage actions of the electronic device 1200, for example, a process of acquiring request data in steps S402, S403, S404, and S405, and/or other processes used in the technology described herein, for example, a parameter value updating process of a read voltage model as shown in fig. 10 (steps S1001-S1006). The communication interface 1201 is used to support the electronic device 1200 for communication. A memory 1202 for storing program codes and data for the electronic device 2100.
The controller 1203 may be, for example, 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, transistor logic, hardware components, or any combination thereof that may implement or execute the various illustrative logical blocks, modules, and circuits described in connection with the present disclosure. The processor 1102 may also be a combination of computing functions, e.g., comprising one or more microprocessors, a digital signal processor and a microprocessor, or the like. The bus 1204 may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus 1204 may be divided into an address bus, a data bus, a control bus, and the like. For ease of illustration, only one thick line is shown in FIG. 12, but this is not intended to represent only one bus or type of bus.
The embodiment of the present application further provides a communication system, where the system includes a host, a controller, and a nonvolatile storage medium, where the nonvolatile storage medium includes a plurality of storage areas, the nonvolatile storage medium includes one or more storage areas, each storage area includes a target storage unit obtained by dividing the nonvolatile storage medium according to a target division granularity, and a read voltage model is a function of an identifier (e.g., a number of the target storage unit) of the target storage unit. The communication system may be the system shown in fig. 2 or fig. 3. In the embodiment of the application, the host can be used for a nonvolatile storage medium, and sends a read request to the controller and receives request data sent by the controller; the controller may be used for management and may be used to perform the steps performed by the controller in the data reading method provided in fig. 4. The controller is configured to perform steps S401-S405 in FIG. 4, or to perform the parameter value update process (steps S1001-S1006) of the read voltage model shown in FIG. 10, and/or other processes of the techniques described herein. For a specific process, reference is made to the description in the embodiment shown in fig. 4 or fig. 10, and details of the embodiment of the present application are not repeated herein.
In another embodiment of the present application, there is also provided a computer-readable storage medium having stored thereon computer-executable instructions that, when executed on a computer, cause the computer to perform the data reading method provided in fig. 4 above.
In another embodiment of the invention of the present application, there is also provided a computer program product having a computer storage medium having computer-executable instructions stored thereon, which when invoked by a computer, are used to cause the computer to perform the data reading method provided in fig. 4 above.
In this embodiment of the application, the controller may determine, according to a target physical location indicated by location indication information of request data in a read request sent by the host, a target read voltage model corresponding to a target storage area where the target physical location is located, and obtain, 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, and may further determine, according to an identifier of a 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, a read voltage corresponding to the target physical location, where the read voltage model is a function of the identifier of the target storage unit. In the embodiment of the application, the read voltage model corresponding to the nonvolatile storage medium is divided into a plurality of parts according to the parameter values of the different read voltage models corresponding to the different storage areas in the nonvolatile storage medium, and each part is represented by the corresponding read voltage model and the parameter value of the read voltage model, so that the accuracy of the read voltage calculated according to the read voltage model corresponding to each storage area can be improved, and the time delay of the read operation can be reduced.
In addition, 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, and the controller only needs to store the parameter values of the read voltage models corresponding to different storage areas, does not need to store a specific read voltage value, and can reduce the cost of a storage space.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It will be apparent to those skilled in the art that various changes and modifications may be made in the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if such 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 encompass such modifications and variations.
Claims (36)
- A data reading method is applied to a controller, the front end of the controller is used for connecting a host, and the back end of the controller is used for connecting a nonvolatile storage medium, and the method comprises the following steps:the controller receives a read request sent by a host, wherein the read request comprises position indication information of request data;the controller determines a target reading voltage model corresponding to a target storage area where the target physical position is located according to the target physical position indicated by the position indication information; the target physical location is a physical location of the request data in the nonvolatile storage medium, the nonvolatile storage medium includes one or more storage regions, each storage region includes a plurality of target storage units obtained by dividing the nonvolatile 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 a parameter value of the target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model according to the target storage area; in the corresponding relation between the storage areas and the parameter values of the reading voltage model, one storage area corresponds to one or more parameters of the reading voltage model;the controller determines a reading 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 reading voltage model and the parameter value of the target reading voltage model;and the controller acquires the request data according to the read voltage corresponding to the target physical position and sends the request data to the host.
- The method of claim 1, wherein the obtaining, by the controller, the parameter value of the target read voltage model corresponding to the target storage region from the correspondence between the storage region and the parameter value of the read voltage model according to the target storage region comprises:and when the target storage area corresponds to the parameter values of the plurality of read voltage models in the corresponding relationship between the storage area and the parameter values of the read voltage models, the controller selects one or more of the parameter values of the plurality of read voltage models corresponding to the target storage area as the target read voltage model parameters according to the target physical position.
- The method of claim 1 or 2, wherein the determining, by the controller, 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 includes:and the controller determines a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
- The method of any one of claims 1-3, wherein the read voltage model is used to characterize the correspondence of the identity of the target memory cell to an optimal read voltage.
- The method of any of claims 1-4, wherein the parameter values of the target read voltage model include coefficients of the identity of the target memory cell in the function of the identity of the target memory cell and values of constant terms in the function of the identity of the target memory cell;the controller determines, 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, a read voltage corresponding to the target physical location, including:the controller determines a function which is 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 the controller calculates the reading voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area.
- The method of any one of claims 1-5, further comprising:and when any one of the storage areas meets a preset updating condition, the controller updates the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
- The method of claim 6, wherein when any one of the storage areas satisfies a preset updating 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 updating period, the controller determines a first error parameter under any one corresponding reading voltage in each storage area;and when the first error parameter is larger than or equal to a first threshold value, the controller updates the parameter value of the read voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the read voltage model.
- The method of claim 7, wherein the preset update period is related to a usage status of the storage area; alternatively, the preset update period is related to an average service life of a plurality of storage areas included in the nonvolatile storage medium.
- The method according to any one of claims 1 to 8, wherein for any one of the storage regions in the correspondence relationship between the storage region and the parameter values of the read voltage model, when the storage region corresponds to the parameter values of the plurality of read voltage models, the storage region is compressed into one read voltage model corresponding to the parameter values of the plurality of read voltage models that satisfy a set condition that the parameter values of the read voltage models are the same or nearly flat.
- The method of any one of claims 1-9, further comprising:and after the controller executes rewriting or erasing operation on the data in one storage area, initializing a parameter value of a read voltage model corresponding to the storage area executing the rewriting or erasing operation to a set value, wherein the set value is a default value or a preset value which is preset and determined according to the read voltage characteristic of the storage area executing the rewriting or erasing operation.
- The method of claim 10, wherein the controller performs a rewrite operation or an erase operation on data in one of the storage areas, comprising:the controller performs a rewrite operation or an erase operation on all data in one of the storage areas.
- The method according to any one of claims 1 to 11, wherein the target storage unit is any one of a grain die, a Plane, a block, a string, a layer, and a page;or the target storage unit is a storage unit formed by a plurality of die;or the target storage unit is a storage unit formed by a plurality of planes;or the target storage unit is a storage unit formed by a plurality of blocks;or the target storage unit is a storage unit formed by a plurality of strings;or the target storage unit is a storage unit formed by a plurality of layers;alternatively, the target storage unit is a storage unit composed of a plurality of pages.
- A storage controller, comprising: a receiving unit, a processing unit and a transmitting unit;the receiving unit is used for receiving a read request sent by a host, wherein the read request comprises position indication information of request data;the processing unit is configured to determine, according to the target physical location indicated by the location indication information, a target read voltage model corresponding to a target storage area where the target physical location is located; the target physical location is a physical location of the request data in the nonvolatile storage medium, the nonvolatile storage medium includes one or more storage regions, each storage region includes a plurality of target storage units obtained by dividing the nonvolatile 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, obtaining the parameter value of the target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model, wherein in the corresponding relation between the storage area and the parameter value of the reading voltage model, one storage area corresponds to one or more parameters of the reading voltage model; determining a reading 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 reading voltage model and the parameter value of the target reading voltage model; acquiring the request data according to the reading voltage corresponding to the target physical position;and the sending unit is used for sending the request data to the host.
- The memory controller according to claim 13, wherein the processing unit, when obtaining the parameter value of the target read voltage model corresponding to the target memory region from the correspondence between the memory region and the parameter value of the read voltage model according to the target memory region, is specifically configured to:and when the target storage area corresponds to the parameter values of the plurality of read voltage models in the corresponding relationship between the storage area and the parameter values of the read voltage models, selecting one or more of the parameter values of the plurality of read voltage models corresponding to the target storage area as the target read voltage model parameters according to the target physical position.
- The storage controller according to claim 13 or 14, wherein the processing unit, when determining 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, is specifically configured to:and determining a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
- The memory controller of any of claims 13-15, wherein the read voltage model is used to characterize the correspondence of the identity of the target memory cell to an optimal read voltage.
- The memory controller of any of claims 12-16, wherein the parameter values of the target read voltage model include coefficients of the identity of the target memory cell in the function of the identity of the target memory cell and values of constant terms in the function of the identity of the target memory cell;when determining 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, the processing unit is specifically configured to:determining a function which is 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 calculating the reading voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area.
- The storage controller of any of claims 13-17, wherein the processing unit is further to: and when any one of the storage areas meets a preset updating condition, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
- The memory controller according to claim 18, wherein the processing unit, when updating the parameter of the read voltage model corresponding to the memory region in the correspondence between the parameter values of the memory region and the read voltage model, is specifically configured to:when the memory controller is in a system idle time window or meets a preset updating period, determining a first error parameter under any one corresponding reading voltage in each memory area;and when the first error parameter is larger than or equal to a first threshold value, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
- The storage controller of claim 19, wherein the preset update period is related to a usage status of the storage area; alternatively, the preset update period is related to an average service life of a plurality of storage areas included in the nonvolatile storage medium.
- The memory controller according to any one of claims 13 to 20, wherein for any one of the correspondence relationships between the memory region and the parameter values of the read voltage model, when the memory region corresponds to the parameter values of a plurality of read voltage models, the memory region is compressed into one read voltage model corresponding to the parameter values of a plurality of read voltage models that satisfy a set condition that the parameter values of the read voltage models are the same or nearly flat.
- The storage controller of any of claims 13-21, wherein the processing unit is further to: after rewriting or erasing operation is carried out on the data in one storage area, initializing the parameter value of a read voltage model corresponding to the storage area which carries out the rewriting or erasing operation to a set value;the set value is a default value or a preset value which is configured in advance and determined according to the read voltage characteristic of a storage area for executing the rewriting operation or the erasing operation.
- The memory controller of claim 22, wherein the processing unit, when performing a rewrite operation or an erase operation on data in one of the memory areas, is specifically configured to:an overwrite operation or an erase operation is performed on all data in one of the storage areas.
- The storage controller of any of claims 13-23, wherein the target storage unit is any of a die, a Plane, a block, a string, a layer, and a page;or the target storage unit is a storage unit formed by a plurality of die;or the target storage unit is a storage unit formed by a plurality of planes;or the target storage unit is a storage unit formed by a plurality of blocks;or the target storage unit is a storage unit formed by a plurality of strings;or the target storage unit is a storage unit formed by a plurality of layers;alternatively, the target storage unit is a storage unit composed of a plurality of pages.
- An electronic device comprising a communication interface, a controller, and a memory;the communication interface is used for receiving a read request sent by a host, wherein the read request comprises position indication information of request data;the memory stores code instructions;the controller is used for calling the code instructions stored by the memory and executing: determining a target reading voltage model corresponding to a target storage area where the target physical position is located according to the target physical position indicated by the position indication information; the target physical location is a physical location of the request data in the nonvolatile storage medium, the nonvolatile storage medium includes one or more storage areas, each storage area includes a plurality of target storage units obtained by dividing the nonvolatile storage medium according to a target division size, and the read voltage model is a function of an identifier of the target storage unit; according to the target storage area, obtaining the parameter value of the target reading voltage model corresponding to the target storage area from the corresponding relation between the storage area and the parameter value of the reading voltage model, wherein in the corresponding relation between the storage area and the parameter value of the reading voltage model, one storage area corresponds to one or more parameters of the reading voltage model; determining a reading 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 reading voltage model and the parameter value of the target reading voltage model; acquiring the request data according to the reading voltage corresponding to the target physical position;the communication interface is further configured to: and sending the request data to the host.
- The apparatus of claim 25, wherein the controller, when obtaining the parameter value of the target read voltage model corresponding to the target storage area from the correspondence between the parameter values of the read voltage model and the storage area according to the target storage area, is specifically configured to:and when the target storage area corresponds to the parameter values of the plurality of read voltage models in the corresponding relationship between the storage area and the parameter values of the read voltage models, selecting one or more of the parameter values of the plurality of read voltage models corresponding to the target storage area as the target read voltage model parameters according to the target physical position.
- The apparatus according to claim 25 or 26, wherein the controller, when determining 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, is specifically configured to:and determining a target reading voltage model corresponding to the target storage area where the target physical position is located from the corresponding relation between the storage area and the reading voltage model according to the target physical position indicated by the position indication information.
- The apparatus of any one of claims 25-27, wherein the read voltage model is used to characterize the correspondence of the identity of the target memory cell to an optimal read voltage.
- The apparatus of any one of claims 25-28, wherein the parameter values of the target read voltage model include coefficients of the identity of the target memory cell in the function of the identity of the target memory cell and values of constant terms in the function of the identity of the target memory cell;when determining 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, the controller is specifically configured to:determining a function which is 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 calculating the reading voltage corresponding to the target physical position according to the identification of the target storage unit where the target physical position is located and a function which is satisfied by the reading voltage in the target storage area and the identification of the target storage unit in the target storage area.
- The apparatus of any one of claims 25-29, wherein the controller is further configured to: and when any one of the storage areas meets a preset updating condition, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
- The device according to claim 30, wherein the controller, when updating the parameter value of the read voltage model corresponding to the storage region in the correspondence between the parameter values of the storage region and the read voltage model, is specifically configured to:when the controller is in a system idle time window or meets a preset updating period, determining a first error parameter under any one corresponding reading voltage in each storage area;and when the first error parameter is larger than or equal to a first threshold value, updating the parameter value of the reading voltage model corresponding to the storage area in the corresponding relation between the storage area and the parameter value of the reading voltage model.
- The apparatus of claim 31, wherein the preset update period is related to a usage state of the storage area; alternatively, the preset update period is related to an average service life of a plurality of storage areas included in the nonvolatile storage medium.
- The apparatus according to any one of claims 25 to 32, wherein for any one of the storage regions in the correspondence relationship between the storage region and the parameter values of the read voltage model, when the storage region corresponds to the parameter values of the plurality of read voltage models, the storage region is compressed into one read voltage model corresponding to the parameter values of the plurality of read voltage models that satisfy a set condition that the parameter values of the read voltage models are the same or nearly flat.
- The apparatus of any one of claims 25-33, wherein the controller is further configured to:after the data in one storage area is subjected to rewriting or erasing operation, initializing a parameter value of a read voltage model corresponding to the storage area subjected to rewriting or erasing operation to a set value, wherein the set value is a default value or a preset value which is preset and determined according to the read voltage characteristics of the storage area subjected to rewriting or erasing operation.
- The apparatus as claimed in claim 34, wherein said controller, when performing a rewrite operation or an erase operation on data in one of said storage areas, is specifically configured to:an overwrite operation or an erase operation is performed on all data in one of the storage areas.
- The apparatus of any one of claims 25-35, wherein the target storage unit is any one of a die, a Plane, a block, a string, a layer, and a page;or the target storage unit is a storage unit formed by a plurality of die;or the target storage unit is a storage unit formed by a plurality of planes;or the target storage unit is a storage unit formed by a plurality of blocks;or the target storage unit is a storage unit formed by a plurality of strings;or the target storage unit is a storage unit formed by a plurality of layers;alternatively, the target storage unit is a storage unit composed of a plurality of pages.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/088460 | 2019-05-26 | ||
CN2019088460 | 2019-05-26 | ||
PCT/CN2019/089569 WO2020237637A1 (en) | 2019-05-26 | 2019-05-31 | Data reading method, storage controller, and electronic device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113874942A true CN113874942A (en) | 2021-12-31 |
Family
ID=73552469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980096783.9A Pending CN113874942A (en) | 2019-05-26 | 2019-05-31 | Data reading method, storage controller and electronic equipment |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113874942A (en) |
WO (1) | WO2020237637A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117111717A (en) * | 2023-10-24 | 2023-11-24 | 荣耀终端有限公司 | Flash memory control method, electronic equipment and storage medium |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113554274A (en) * | 2021-06-22 | 2021-10-26 | 未鲲(上海)科技服务有限公司 | Data processing method, system and storage medium |
CN114356218B (en) * | 2021-12-07 | 2024-01-16 | 广州致存科技有限责任公司 | Data error correction method, device and medium of Flash memory |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101516577B1 (en) * | 2008-11-10 | 2015-05-06 | 삼성전자주식회사 | Nonvolatile semi-conductor memory device and method for calculating read voltage non-volatile semiconductor memory device |
KR101642465B1 (en) * | 2008-12-12 | 2016-07-25 | 삼성전자주식회사 | Access method of non-volatile memory device |
KR20130034522A (en) * | 2011-09-28 | 2013-04-05 | 삼성전자주식회사 | Data read method from nonvolatile memory, and apparatus for executing the same |
CN106981302B (en) * | 2017-03-20 | 2019-05-21 | 记忆科技(深圳)有限公司 | A kind of method of the optimal read voltage of rapid evaluation |
CN107247636B (en) * | 2017-06-06 | 2020-05-26 | 苏州浪潮智能科技有限公司 | Method and device for data reconstruction optimization in solid state disk |
-
2019
- 2019-05-31 CN CN201980096783.9A patent/CN113874942A/en active Pending
- 2019-05-31 WO PCT/CN2019/089569 patent/WO2020237637A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117111717A (en) * | 2023-10-24 | 2023-11-24 | 荣耀终端有限公司 | Flash memory control method, electronic equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
WO2020237637A1 (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9472244B2 (en) | Apparatus power control | |
EP3399421B1 (en) | Flash memory device access method and apparatus | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
EP2937774A1 (en) | Storage controller, storage system and method of operating storage controller | |
US11249897B2 (en) | Data storage device and operating method thereof | |
CN107111452B (en) | Data migration method and device applied to computer system and computer system | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
KR102374239B1 (en) | Method and device for reducing read latency | |
CN111399750B (en) | Flash memory data writing method and computer readable storage medium | |
CN113874942A (en) | Data reading method, storage controller and electronic equipment | |
CN107665091B (en) | Data reading method, data writing method and storage controller thereof | |
US11041763B2 (en) | Adaptive throttling | |
CN113924546A (en) | Wear-aware block mode switching in non-volatile memory | |
US11231883B1 (en) | Detecting last page written in multi-plane non-volatile memory | |
CN111989646B (en) | Apparatus and method for counter update operation | |
KR20200076431A (en) | Operating method of memory controller and memory system, and memory system | |
KR20200030866A (en) | Controller and operation method thereof | |
KR20210144249A (en) | Storage device and operating method of the same | |
US11922062B2 (en) | Controller and operating method thereof | |
US11656778B2 (en) | Selection of block size for namespace management in non-volatile memory devices | |
CN113574497A (en) | Data storage method and storage chip | |
CN106055488B (en) | Data storage device and operation method thereof | |
KR20200121068A (en) | Data Storage Device and Operation Method Thereof, Controller Therefor | |
KR20200015185A (en) | Data storage device and operating method thereof | |
CN111897745A (en) | Data storage method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |