CN116917873A - Data access method, memory controller and memory device - Google Patents

Data access method, memory controller and memory device Download PDF

Info

Publication number
CN116917873A
CN116917873A CN202180088017.5A CN202180088017A CN116917873A CN 116917873 A CN116917873 A CN 116917873A CN 202180088017 A CN202180088017 A CN 202180088017A CN 116917873 A CN116917873 A CN 116917873A
Authority
CN
China
Prior art keywords
data
storage
storage unit
written
critical
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
Application number
CN202180088017.5A
Other languages
Chinese (zh)
Inventor
黄恩走
陈林峰
王金伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116917873A publication Critical patent/CN116917873A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Abstract

The embodiment of the application provides a storage device and a data access method, wherein the device comprises the following steps: a storage controller and a storage medium; the storage controller is used for selectively configuring the storage unit into a safe storage area or a non-safe storage area according to the current PE erasing times of the storage unit and a PE threshold value, and the PE threshold value is determined according to the operation error rate of the storage unit.

Description

Data access method, memory controller and memory device Technical Field
The present application relates to the field of storage technologies, and in particular, to a data access method, a storage controller, and a storage device.
Background
With the rapid development of storage technology, the scale and the read-write speed which can be supported by the storage device are obviously improved. As a newer storage device, solid State Disk (SSD) has obvious technical advantages over conventional storage devices such as Hard Disk Drives (HDD). For example, the SSD has no mechanical structure, and no seek process exists in the addressing process, so the read-write delay of the SSD can be as low as microsecond, and the read-write bandwidth can be as high as several GB/s (Gigabyte/Second).
In the use process, the error rate of the storage units in the SSD gradually rises along with the increase of the erasing times (P/E), and after the PE times of the storage units reach the PE capacity value corresponding to the upper limit of the error rate allowed by the product, the SSD needs to be set to be deactivated. In order to prolong the service life of the SSD, if a higher upper limit of the allowable error rate of the product is set, the reliability of data storage is difficult to ensure.
There is a need for a solution that balances the reliability of data storage and product lifetime of stored products.
Disclosure of Invention
The application provides a data access method and a storage device, which can balance the storage reliability and the service life of data of a storage product and improve the product competitiveness of the storage device.
In a first aspect, there is provided a storage device comprising: a storage controller and a storage medium coupled to the storage controller; the storage controller is configured to: selectively configuring a first storage unit in the storage medium into a safe storage area or a non-safe storage area according to the current PE erasing times of the first storage unit and a preset PE threshold value, wherein the PE threshold value is determined according to the operation error rate of each storage unit in the storage medium; the non-safety storage area is used for storing first data, the service fault-tolerance rate corresponding to the first data is larger than or equal to a preset non-critical data error rate threshold, the safety storage area is used for storing second data or the first data, and the service fault-tolerance rate corresponding to the second data is smaller than the non-critical data error rate threshold.
By adopting the technical precaution provided by the embodiment of the application, the storage unit is divided according to the PE threshold value by obtaining a piece of storage equipment with better comprehensive performance of reliability and product life, so that the storage equipment is enabled.
In one possible implementation, the PE threshold is greater than or equal to a PE capability base value; the PE capability basic value is the PE times when the operation error rate of each storage unit in the storage medium reaches the product reference error tolerance of the storage device, and the product reference error tolerance is smaller than or equal to the service error tolerance of the second data.
In one possible implementation, the memory controller is further configured to: receiving a writing instruction, wherein the writing instruction comprises data to be written and a service type of the data to be written; determining the data to be written as the first data or the second data according to the service type of the data to be written; storing the data to be written into a storage unit configured as an unsafe storage area in the storage medium or a storage unit configured as a safe storage area in the storage medium when the data to be written into is the first data; and when the data to be written is the second data, storing the data to be written into a storage unit which is configured as a safe storage area in the storage medium.
In one possible implementation, the storage controller is specifically configured to: when the service type of the data to be written belongs to the service type of the first data or the service type of the data to be written does not belong to the service type of the second data, determining that the data to be written is the first data; and/or determining that the data to be written is the second data when the service type of the data to be written belongs to the service type of the second data or the service type of the data to be written does not belong to the service type of the first data; the service type of the first data comprises any one of pictures, videos and audios; the service type of the second data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
In one possible implementation, the memory controller is further configured to: receiving a write instruction, wherein the write instruction comprises data to be written and a storage address of the data to be written; storing the data to be written into a storage unit pointed by the storage address; when the storage address belongs to the unsafe logic address section, the storage unit pointed by the storage address is a storage unit configured as an unsafe storage area in the storage medium; and when the storage address belongs to the safe logic address section, the storage unit pointed by the storage address is a storage unit configured as a safe storage area in the storage medium.
In one possible implementation, the memory controller is further configured to: receiving a partition configuration instruction, wherein the partition configuration instruction comprises the non-secure logical address section and the secure logical address section; allocating a first logical address to the first storage unit; wherein the first logical address belongs to the non-secure logical address section when the first storage unit is configured as a non-secure storage area and the first logical address belongs to the secure logical address section when the first storage unit is configured as a secure storage area.
In one possible implementation, the memory controller is further configured to: receiving a read instruction sent by a host, wherein the read instruction comprises a second logic address, and the second logic address points to a second storage unit; verifying the data read from the second storage unit; when the verification result is wrong and the second storage unit is configured as a non-secure storage area, sending a read instruction response to the host; wherein the read instruction response includes data read from the second memory location.
In one possible implementation, any storage unit in the storage medium is one or more blocks; alternatively, any storage unit in the storage medium is one or more granules, where any granule in the one or more granules includes at least two blocks, and the PE number of any granule is a maximum value of the PE number of each block in the at least two blocks, or the PE number of any granule is an average value of the PE number of each block in the at least two blocks.
In a second aspect, a data access method is provided, applied to a memory controller, the method comprising:
acquiring first data to be written;
when the service fault tolerance of the first data is greater than or equal to the non-critical data error rate threshold, writing the first data into a first storage unit belonging to a non-critical area in the storage device;
the current PE erasing times of the first storage unit are larger than the PE capability intermediate value; the PE capability intermediate value is smaller than a PE capability upper limit value, and the PE capability upper limit value is the PE times corresponding to the time when the operation error rate of any storage unit in the storage device reaches the non-critical data error rate threshold.
In the embodiment of the application, by writing the data with the service fault tolerance rate larger than or equal to the non-critical data bit error rate threshold into the first storage unit belonging to the non-critical area, wherein the current PE times are larger than the PE intermediate value, the non-critical data with lower reliability requirements can be written into the storage unit with more used times, on one hand, the first storage unit with lower reliability in the storage device can be more fully utilized on the premise of meeting the reliability requirements, on the other hand, the PE capability of the storage unit in the storage device can be more reasonably utilized, and the storage unit with higher reliability and less used PE times can be reserved for the reliability.
In one possible implementation, the storage device includes at least two storage units; the method further includes, before the acquiring the first data to be written:
classifying the storage units with PE times larger than the PE capacity intermediate value in the at least two storage units into a non-key area;
and classifying the storage units with PE times smaller than or equal to the PE capability intermediate value in the at least two storage units into a key area.
In one possible implementation, the PE capability intermediate value is greater than or equal to a PE capability base value; the PE capability basic value is smaller than the PE capability upper limit value;
and the PE capability basic value is the PE times corresponding to the time when the operation error rate of any storage unit in the storage device reaches the product reference error tolerance.
In one possible implementation, the PE capability intermediate value is less than a PE capability base value; the PE capability basic value is the PE times corresponding to the time when the operation error rate of any storage unit in the storage device reaches the product reference error tolerance;
the PE capability basic value is smaller than or equal to the PE capability upper limit value.
In one possible implementation manner, the PE capability intermediate value is determined according to an average value of current PE times of a storage unit in the storage device;
And when the ratio of the average value to the PE capability basic value is smaller than the starting optimization ratio, the method is used for starting the optimization ratio.
In one possible implementation, the method further includes:
and when the service fault tolerance rate of the first data is smaller than the non-critical error rate threshold, writing the first data into a storage unit belonging to a critical area.
In one possible implementation manner, the acquiring the first data to be written includes: receiving a write instruction sent by an application, wherein the write instruction comprises the first data and the service type of the first data;
and before the first data is written into a first storage unit belonging to a non-critical area in the storage device when the service fault tolerance rate of the first data is greater than or equal to a non-critical error rate threshold, the method comprises the following steps:
when the service type of the first data belongs to the service type of non-critical data or the service type of the first data does not belong to the service type of critical data, determining that the service fault tolerance rate of the first data is greater than or equal to a non-critical bit error rate threshold;
the service type of the non-key data comprises any one of pictures, videos and audios; the service type of the key data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
In one possible implementation manner, the acquiring the first data to be written includes: receiving a write instruction sent by a host, wherein the write instruction comprises the first data and a logic address for storing the first data;
the writing of the first data into a first storage unit belonging to a non-critical area in the storage device comprises the following steps of;
and when the logical address of the first data belongs to the logical address interval of the storage units in the non-critical area, writing the first data into the storage units in the non-critical area in the storage device.
In one possible implementation, the storage device includes at least two storage units; before the obtaining the first data to be written, the method further includes:
receiving a partition configuration instruction sent by a host, wherein the partition configuration instruction comprises a logic address interval of a non-key area and a logic address interval of a key area;
dividing the memory units with PE times larger than the PE capability intermediate value in the at least two memory units into a non-key area, and distributing logical addresses in a logical address interval of the non-key area for the memory units belonging to the non-key area;
and classifying the storage units with PE times smaller than or equal to the PE capability intermediate value in the at least two storage units into a key area, and distributing the logic addresses in the logic address interval of the key area to the storage units belonging to the key area.
In one possible implementation, the method further includes:
receiving a read instruction sent by a host, wherein the read instruction comprises a first address, and the first address points to a storage unit in the storage device;
verifying the data read from the storage unit pointed to by the first address;
when the verification result is wrong and the storage unit pointed by the first address belongs to a non-critical area, sending a read instruction response to the host; wherein the read instruction response includes data read from a memory location pointed to by the first address.
In one possible implementation, any of the memory cells is a block; or,
any one of the storage units is a granule, wherein any one of the granules comprises at least two blocks, the PE number of any one of the granules is the maximum value of the PE number of each of the at least two blocks, or the PE number of any one of the granules is the average value of the PE numbers of each of the at least two blocks.
In a third aspect, a data access method is provided, applied to a memory controller, the method comprising:
acquiring first data to be written;
writing the first data into a storage unit belonging to a non-critical area in the storage device;
The PE erasing times of the storage units belonging to the non-critical area are larger than the PE capability basic value; and the PE capability basic value is the maximum PE times corresponding to any storage unit in the storage device when the operation error rate does not exceed the product reference error tolerance of the storage device.
In one possible implementation manner, the writing the first data into a memory unit belonging to a non-critical area in the memory device includes: when the first data are non-critical data, the first data are written into a storage unit belonging to a non-critical area; the service fault tolerance rate corresponding to the non-critical data is larger than the product reference fault tolerance rate.
In one possible implementation manner, the acquiring the first data to be written includes: receiving a write instruction sent by an application, wherein the write instruction comprises the first data and the service type of the first data;
the method includes, when the first data is non-critical data, before the first data is written into a storage unit belonging to a non-critical area in the storage device, the method including: when the service type of the first data belongs to the service type of non-critical data or the service type of the first data does not belong to the service type of critical data, determining that the first data is the non-critical data; the service type of the non-key data comprises any one of pictures, videos and audios; the service type of the key data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
In an example, the non-critical data is data having a corresponding business fault tolerance threshold greater than a product reference fault tolerance of the storage device; the storage units belonging to the non-critical area are the storage units with PE times exceeding PE capability basic values; and the PE capability basic value is the maximum PE times of the storage unit when the operation error rate does not exceed the product reference error tolerance.
In one possible implementation manner, when a service fault tolerance threshold corresponding to the first data is greater than a product fault tolerance threshold of the storage device, writing the first data into a storage unit belonging to a non-critical area in the storage device; wherein the PE times of the storage units belonging to the non-critical area exceed the PE capability basic value; and the PE capability basic value is the maximum PE times of the storage unit when the operation error rate does not exceed the product reference error tolerance.
In one possible implementation, the number of PEs of any storage unit belonging to a non-critical area is less than the PE capability upper limit; and the PE capability upper limit value is the PE times of the storage unit when the operation error rate reaches the service fault tolerance rate corresponding to the non-key data.
As an example, the number of PEs of any storage unit belonging to the non-critical area is smaller than an upper limit value of PE capability, and an operation error rate corresponding to the upper limit value of PE capability is smaller than or equal to a service fault tolerance rate corresponding to the first data.
As one example, the first data is non-critical data; and the service fault tolerance rate of the non-critical data is greater than the operation error rate corresponding to the PE capability basic value and is less than or equal to the operation error rate corresponding to the PE capability upper limit value.
As an example, the service fault tolerance threshold corresponding to the first data is greater than the product fault tolerance threshold and is less than or equal to the operation error rate corresponding to the PE capability upper limit.
In one possible implementation manner, the acquiring the first data to be written includes: receiving a write instruction sent by an application, wherein the write instruction comprises the first data and the service type of the first data;
the method includes, when the first data is non-critical data, before the first data is written into a storage unit belonging to a non-critical area in the storage device, the method including:
when the service type of the first data belongs to the service type of non-critical data or the service type of the first data does not belong to the service type of critical data, determining that the first data is the non-critical data;
the service type of the non-key data comprises any one of pictures, videos and audios; the service type of the key data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
In one possible implementation manner, the acquiring the first data to be written includes: receiving a write instruction sent by an application, wherein the write instruction comprises the first data and a logic address for storing the first data;
the writing of the first data into the storage unit belonging to the non-critical area in the storage device comprises the following steps of;
and writing the first data into the storage units belonging to the non-critical area in the storage device when the logic address of the first data belongs to the logic address interval of the storage units belonging to the non-critical area.
In one possible implementation, the storage device includes at least two storage units; before the obtaining the first data to be written, the method further includes: receiving a partition configuration instruction sent by an application, wherein the partition configuration instruction comprises a logic address interval of a non-key area and a logic address interval of a key area; dividing the memory units with PE times larger than PE capability basic values in the at least two memory units into non-critical areas, and distributing logical addresses in a logical address interval of the non-critical areas for the memory units belonging to the non-critical areas; and classifying the storage units with PE times smaller than or equal to the PE capability basic value in the at least two storage units into a key area, and distributing the logic addresses in the logic address interval of the key area for the storage units belonging to the key area.
In one possible implementation, the method further includes:
acquiring second data to be written;
writing the second data into a storage unit belonging to a key area or a storage unit belonging to a non-key area;
the PE times of the memory units belonging to the key area are smaller than or equal to the PE capability basic value.
In one possible implementation manner, the writing the second data into the memory cell belonging to the critical area or the memory cell belonging to the non-critical area includes:
when the second data is key data, writing the second data into a storage unit belonging to a key area; wherein, the business fault tolerance rate corresponding to the key data is smaller than the non-key data error rate threshold;
when the second data is non-critical data, writing the second data into a storage unit belonging to a critical area or a storage unit belonging to a non-critical area;
wherein, the business fault tolerance rate corresponding to the non-critical data is greater than or equal to the non-critical data error rate threshold; the non-critical data error rate threshold is greater than the product reference fault tolerance.
In one possible implementation, the storage device includes at least two storage units; the method further comprises the steps of: receiving a partition configuration instruction; acquiring PE times of the at least two storage units; classifying the storage units with PE times larger than PE capability basic values in the at least two storage units into non-critical areas; and classifying the storage units with PE times smaller than or equal to the PE capability basic value in the at least two storage units into a key area.
In one possible implementation, the method further includes: acquiring PE times and operation error rates of at least one storage unit in the storage device; determining the corresponding relation between PE times and operation error rate; and determining the PE times of the operation error rate reaching the service fault tolerance rate of the non-key data as the PE capability upper limit value.
In one possible implementation, the method further includes:
receiving a read instruction sent by a host, wherein the read instruction comprises a first address, and the first address points to a storage unit in the storage device;
verifying the data read from the storage unit pointed to by the first address;
when the verification result is wrong and the storage unit pointed by the first address belongs to a non-critical area, sending a read instruction response to the host; wherein the read instruction response includes data read from a memory location pointed to by the first address.
In one possible implementation, the number of PEs of a storage unit belonging to a non-critical area is less than or equal to the PE capability upper limit; wherein,
the PE capability upper limit value is the PE times corresponding to the time when the operation error rate of any storage unit in the storage device reaches the service fault tolerance rate of non-critical data;
The number of the service types of the non-key data is at least one; the service fault tolerance of the non-critical data is the minimum value of the service fault tolerance corresponding to each service type in the at least one service type
In one possible implementation, any of the memory cells is a block; or, any one of the storage units is a granule, wherein any one of the granules comprises at least two blocks, the PE number of any one of the granules is the maximum value of the PE number of each of the at least two blocks, or the PE number of any one of the granules is the average value of the PE numbers of each of the at least two blocks.
In a fourth aspect, a data access method is provided, applied to a memory controller, the method including:
acquiring first data to be written;
when the first data are key data, the first data are written into a storage unit belonging to a key area in the storage device;
wherein, the PE times of any storage unit belonging to the key area is less than or equal to the PE capability intermediate value; the PE capability intermediate value is less than an upper PE capability limit value of a storage unit in the storage device.
In one possible implementation, the method further includes:
When the first data is non-critical data, writing the first data into a storage unit belonging to a non-critical area or a storage unit belonging to a critical area;
wherein the PE times of any memory unit belonging to the non-critical area is greater than the PE capability intermediate value and less than the PE capability upper limit value.
In one possible implementation, the traffic fault tolerance of critical data is less than the traffic fault tolerance of non-critical data. The service fault-tolerant rate of the key data is larger than or equal to the operation error rate corresponding to the PE capability intermediate value, and the service fault-tolerant rate of the non-key data is larger than or equal to the operation error rate corresponding to the PE capability upper limit value; the PE capability intermediate value is smaller than or equal to the PE times corresponding to the operation error rate of any storage unit when the operation error rate reaches the service fault tolerance rate of the key data; and the PE capability upper limit value is smaller than or equal to the PE times corresponding to the time when the operation error rate of any storage unit reaches the non-critical data error rate threshold.
In one possible implementation, in an example, the service fault tolerance of the critical data is less than a non-critical data bit error rate threshold, and the service fault tolerance of the non-critical data is greater than or equal to the non-critical data bit error rate threshold; and the PE capability upper limit value is smaller than or equal to the PE times corresponding to the time when the operation error rate of any storage unit reaches the non-critical data error rate threshold.
In one possible implementation manner, the PE capability upper limit value is greater than or equal to a PE capability base value, where the PE capability base value is a maximum number of PEs corresponding to any storage unit in the storage device when an operation error rate does not exceed a product reference error tolerance rate.
In one possible implementation, the PE capability intermediate value is equal to the PE capability base value, and the PE capability upper-limit value is greater than the PE capability base value.
The number of PEs corresponding to the non-critical data bit error rate threshold may be a PE capability upper limit, that is, the PE capability upper limit is the number of PEs corresponding to the time when the running bit error rate of any memory cell in the memory device reaches the non-critical data bit error rate threshold.
In one possible implementation manner, the PE capability intermediate value is smaller than a PE capability base value, or an operation error rate corresponding to the PE capability intermediate value is smaller than or equal to a service fault tolerance rate corresponding to the critical data; and the PE capability basic value is the maximum PE times of the storage unit when the operation error rate does not exceed the product reference error tolerance.
In practical applications, the service fault tolerance of critical data and non-critical data may both be greater than or equal to the product reference fault tolerance.
In one possible implementation manner, the PE capability upper limit value is greater than or equal to a PE capability base value, where the PE capability base value is a maximum number of PEs corresponding to any storage unit in the storage device when an operation error rate does not exceed a product reference error tolerance rate.
In one possible implementation, the service fault tolerance of the critical data is equal to the product reference fault tolerance of the storage device, and the PE capability intermediate value is equal to the PE capability base value.
In one possible implementation, the number of PEs of any storage unit belonging to a non-critical area is less than the PE capability upper limit; the PE capability upper limit value is the PE times of the storage unit when the operation error rate reaches the service fault tolerance rate corresponding to the non-key data; and the service fault tolerance corresponding to the non-critical data is greater than the product reference fault tolerance.
As an example, the PE capability intermediate value is the number of PEs in the storage unit when the running bit error rate reaches the service fault tolerance rate of the critical data; the PE capability intermediate value is smaller than the PE capability basic value, or the PE capability intermediate value is larger than or equal to the PE capability basic value.
In a fifth aspect, a data access method is provided, applied to a memory controller, the method including:
Receiving a read instruction; the read instruction includes a first address pointing to a memory location in the memory device;
reading data from a memory cell pointed to by the first address;
when the verification result of the read data is error, judging whether the storage unit pointed by the first address belongs to a non-critical area or not;
if yes, returning the read data to the application;
wherein the PE times of the storage units belonging to the non-critical area are larger than the PE capability basic value; and the PE capability basic value is the maximum PE times corresponding to any storage unit in the storage device when the operation error rate does not exceed the product reference error tolerance.
In yet another aspect, a memory controller is provided, the apparatus comprising an interface, a processor, and a memory. The interface is for communicating with the host and the storage medium. The memory is used for storing data and programs. The processor is configured to execute a program to implement the method in any one of the possible designs of the second aspect to the fifth aspect.
As one example, an interface may be used to receive write instructions, read instructions, partition configuration instructions, send corresponding response messages, and so forth.
In yet another aspect, there is provided a storage device comprising: a storage medium and a storage controller as in any possible implementation of the fifth aspect. Wherein the storage medium may be composed of particles. The storage controller is for communicating with the host and the storage medium. As one example, a memory controller may be used to receive write instructions, read instructions, partition configuration instructions, send corresponding response messages, and the like.
In one possible implementation, the storage device may be an SSD, or a chip within an SSD.
In still another aspect, an embodiment of the present application provides a control apparatus, including: the system comprises a transceiver module, a processing module and a storage module, wherein the transceiver module is used for receiving a writing instruction, a reading instruction, a partition configuration instruction, sending a corresponding response instruction and the like, the storage module is used for storing a program, and the processing module is used for executing the program to realize the method in any one of the possible designs of the second aspect to the fifth aspect.
When the apparatus is a chip in a memory device, the processing module may be a processor, and the transceiver module may be an input/output interface, a pin, or a circuit, etc.; if a memory module is included, the memory module may be a memory module (e.g., a register, a cache, etc.) within the chip, or may be a memory module external to the chip (e.g., a read-only memory, a random access memory, etc.).
The processor mentioned in any of the above may be a general purpose central processing unit (Central Processing Unit, CPU for short), a microprocessor, an application-specific integrated circuit (ASIC for short), or one or more integrated circuits for controlling the execution of the programs of the spatial multiplexing method of the above aspects.
In yet another aspect, the present application provides a computer-readable storage medium having instructions stored therein that are executable by one or more processors on a processing circuit. Which when run on a computer causes the computer to perform the method of any of the possible implementations of the second to fifth aspects described above.
In a further aspect, there is provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the method of any of the possible implementations of the second or fifth aspects described above.
Drawings
In order to more clearly illustrate the application or the technical solutions of the prior art, the following description will briefly explain the drawings used in the embodiments or the description of the prior art, and it is obvious that the drawings in the following description are some embodiments of the application, and other drawings can be obtained according to the drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic diagram of a memory device to which a data access method according to an embodiment of the present application is applied;
FIG. 2 is a flow chart of a data access method according to an embodiment of the application;
FIG. 3 is a schematic diagram of a process flow of a read phase in a data access method according to an embodiment of the present application;
FIG. 4 is a flow chart of another method for accessing data according to an embodiment of the present application;
FIG. 5 is a flowchart illustrating a processing procedure of a data area configuration stage of a data access method according to an embodiment of the present application;
FIG. 6 is a schematic diagram of a processing flow of a read phase in a data access method according to an embodiment of the present application;
FIG. 7 is a schematic diagram of an SSD according to an embodiment of the present application;
FIG. 8 is a schematic diagram of another SSD according to an embodiment of the present application;
FIG. 9 is a schematic diagram of a data access device according to an embodiment of the present application;
FIG. 10 is a schematic block diagram of a memory controller provided by an embodiment of the present application;
fig. 11 is a schematic block diagram of a storage device according to an embodiment of the present application.
Detailed Description
The terminology used in the description of the embodiments of the application herein is for the purpose of describing particular embodiments of the application only and is not intended to be limiting of the application.
The embodiment of the application provides a group of technical schemes related to a data access method for balancing the product reliability and the product service life of storage equipment.
Fig. 1 is a schematic diagram of a memory device to which a data access method according to an embodiment of the present application is applied. As shown in fig. 1, the storage device may include: a storage controller and a storage medium coupled to the storage controller.
The storage controller may also be simply referred to as a controller. The storage medium may be a storage array of particles. As one example, the storage device may also include an interface. Wherein an interface may be used to connect to the system bus.
In the embodiment of the present application, for example, the storage device may be a semiconductor storage device such as a Solid State Disk (SSD). Taking SSD as an example, the storage medium may be composed of nonvolatile medium particles (hereinafter simply referred to as particles). For example, the grain constituting the storage medium may be NAND-type (NAND) Flash (Flash), NOR-type (NOR) Flash, or the like. Each grain may be divided into a plurality of blocks (blocks), each block may be divided into a plurality of pages (pages), a minimum unit of write data may be a page, and a minimum unit of erase data may be a block.
In the embodiment of the application, when a user selects the storage device, besides the rate index and the capacity index of the storage device, factors such as reliability index, service life of a product, total possession cost (Total Cost of Ownership, TCO) and the like are considered.
For example, the reliability index may be expressed in terms of Bit Error Rate (BER) that the product is allowed to reach during a life cycle. BER may be defined as the ratio of the number of error bits per unit time, and may be equal to the number of error bits over a period of time divided by the total number of bits transmitted. BER is a performance index without units and can be expressed in terms of percentages. In one example, the BER of a memory device may refer to the bit number of data that allows for misreading when storing data of a unit data amount, which is equal to the number of erroneous bits divided by the total number of bits read. The bit error rate of a memory device when in use may be referred to as the operating bit error rate.
In the embodiment of the application, the BER allowed to be achieved by the storage device in the life cycle may be referred to as a product reference fault tolerance, and may also be referred to as a reference fault tolerance hereinafter. As one example, the product reference fault tolerance of a storage device may be determined based on the error correction capability that the storage device is capable of supporting with error correction code (error correction code, ECC) error correction functionality. In the embodiment of the application, the ECC error correction capability can be represented by the bit number ratio of the data which has errors in the data of the unit data quantity and can be corrected, and when the BER of the storage device exceeds the ECC error correction capability, the data which has the errors cannot be corrected.
In the embodiment of the application, the service life of the product of the storage device can be measured by using the number of erasing times (P/E) supported by the basic storage unit in the storage device. The overall cost of ownership of a storage device is closely related to the life of the storage device. In the embodiment of the present application, for convenience of description, P/E is denoted as PE.
It should be noted that, the flash memory medium needs to be erased before being written, and this operation of erasing before being written may be referred to as erasing, and the minimum unit of the erasing operation may be a block. Thus, the lifetime of an SSD may be determined from the number of PEs supported by the particles in the component storage device. In the using process of the product, the particles are continuously erased, the capability of the particles for storing electrons is reduced, the reliability is gradually reduced, the BER is gradually increased, when the executed PE times reach the PE capability basic value of the particles, the error bits of error data read from the particles are excessive, the BER of the storage device exceeds the product reference fault tolerance, namely, the accuracy of data read from the particles cannot meet the product reliability index. The PE capability base value may be defined as the maximum number of PEs when the BER of a memory unit in the memory device does not exceed the product reference fault tolerance.
According to the technical scheme provided by the embodiment of the application, the comprehensive capacity of the product of the storage equipment can be improved by balancing the reliability and the product life of the storage equipment and further reducing the total ownership cost of the storage equipment, or the comprehensive capacity of the product of the storage equipment can be improved by improving the reliability of the storage equipment.
The following describes a data access method provided in an embodiment of the present application.
Example 1
Fig. 2 is a flow chart of a data access method according to an embodiment of the application.
The execution body of the embodiment of the application can be a storage controller or a storage device. The storage controller may be coupled to a storage medium having at least two storage units disposed thereon.
As shown in fig. 2, the steps of the embodiment of the present application may include: zone configuration phase, writing phase. Wherein the step of the partition configuration (zone configuration) phase may comprise:
s101, obtaining a partition configuration instruction, wherein the partition configuration instruction is used for indicating that at least two storage units are divided into a key area and a non-key area.
In the embodiment of the application, the partition configuration instruction can be received from an interface or generated by a storage controller. In an example, the partition configuration instructions may be sent by an upper layer application, e.g., a system application, a user application, etc. In yet another example, partition configuration instructions may be generated by the storage controller after each power up. As an alternative embodiment, the storage controller may provide a configuration interface to the application that may be used to allow the application to instruct the storage controller to partition the storage units in the storage device.
In embodiments of the present application, critical areas may also be referred to as critical data areas (critical data zone) and non-critical areas may also be referred to as non-critical data areas (uncritical data zone). As one example, the region attribute of the storage unit divided into the critical region may be configured as a secure storage region, and the region attribute of the storage unit divided into the non-critical region may be configured as a non-secure storage region.
As an example, the BER requirement for the critical area may be 0, the BER requirement for the non-critical area may be greater than 0, and typical memory devices use only the critical area reliability index. In the embodiment of the application, the storage device can have two indexes of the BER of the key area and the BER of the non-key area.
S102, selectively dividing at least two storage units in the storage medium into storage units belonging to a key area and storage units belonging to a non-key area according to the current PE times and PE capability intermediate values of the storage units in the storage medium.
In an embodiment of the present application, the storage device may include at least two storage units. Wherein each memory cell may comprise one or more grains, or each memory cell may comprise one or more blocks. During use of the storage device, the storage controller may record the current number of PEs per storage unit. The memory controller may obtain a current number of PEs for a memory location in the memory device.
In the embodiment of the application, for any first storage unit in the storage medium, the storage controller can selectively configure the first storage unit as a secure storage area or a non-secure storage area according to the current PE times of the first storage unit and the PE intermediate value. As an example, a storage unit having a current PE number greater than the PE intermediate value may be configured as an unsecure storage area; and configuring a storage unit with the current PE times smaller than or equal to the PE intermediate value as a safe storage area.
Table 1-1 is an illustration of a range of PE times belonging to critical sections and non-critical memory units, and data that is permitted to be stored.
TABLE 1-1
In an embodiment of the present application, S102 may include: and classifying the memory units with PE times larger than the PE capability middle value and smaller than or equal to the PE capability upper limit value into a non-critical area. As one example, the zone attribute of a storage unit whose PE number exceeds the PE capability middle value and does not exceed the PE capability upper limit value may be configured as a non-critical or non-secure storage zone. Referring to FIG. 1, a set of memory cells of a memory device is partitioned into a subset, where the region properties of the memory cells in the subset are not critical.
In an embodiment of the present application, S102 may further include: memory locations with PE times less than or equal to the PE capability intermediate value may be assigned to the critical section. As one example, the zone attribute of a storage unit having a PE number less than or equal to the PE capability intermediate value may be configured as a critical or secure storage zone. Referring to FIG. 1, a set of memory cells of a memory device is partitioned into a subset, where the region properties of the memory cells in the subset are critical. In the embodiment of the present application, a memory cell with a region attribute configured as non-critical may indicate that the memory cell is a memory cell belonging to a non-critical region, and a memory cell with a region attribute configured as critical may indicate that the memory cell is a memory cell belonging to a critical region.
In the embodiment of the present application, as an optional implementation manner, the upper limit value of the PE capability may be determined according to the service fault tolerance of the data to be written. In order to meet the reliability requirement of an application scene on storage equipment, the operation error rate corresponding to the PE capability upper limit value is smaller than the service fault tolerance rate corresponding to data to be written. The PE capability upper limit may be determined for a service fault tolerance corresponding to a service type according to various data involved in an application scenario of the storage device.
In an alternative embodiment of determining the PE capability upper limit, the PE capability upper limit may be determined based on the number of PEs corresponding to the non-critical data bit error rate threshold. The non-critical data error rate threshold may be a service fault tolerance dividing value that divides data into non-critical data and non-critical data. The business fault-tolerance rate of the non-critical data is larger than the non-critical data bit error rate threshold data, and the business fault-tolerance rate of the critical data is smaller than or equal to the non-critical data bit error rate threshold. In an example, the PE capability upper limit may be a number of PEs corresponding to when an operating bit error rate of the memory cell reaches a non-critical data bit error rate threshold.
When determining the upper limit value of the PE capability, the storage controller may obtain, as an example, the reliability requirement of the data of each service type in the application scenario, that is, the service fault tolerance corresponding to each service type, in advance before S101; then, the service type with the service fault tolerance higher than the product reference fault tolerance can be selected from the service fault tolerance corresponding to all the service types involved in the application scene; then, selecting the lowest service fault-tolerant rate from the service types with service fault-tolerant rate higher than the product reference fault-tolerant rate as a target operation error rate corresponding to the PE capability upper limit value; and determining the PE capability upper limit value according to the target operation error rate.
In practical applications, the storage device may refer to various application scenarios, such as a database, a virtual desktop infrastructure (Virtual Desktop Infrastructure, VDI), a content delivery network (Content Delivery Network, CDN), video monitoring, and the like. Tables 1-2 are examples of service fault tolerance rates for data of different service types.
TABLE 1-2
As shown in tables 1-2, as an example, when an application scenario of the storage device is a multimedia server or a video monitoring service, service types of data stored in the storage device may include: metadata with high reliability requirements, and multimedia type data with low reliability requirements, such as pictures (Image), video (Video), audio (Audio), etc. The service fault tolerance rate corresponding to the data with higher reliability requirements is lower, and the service fault tolerance rate corresponding to the data with lower reliability requirements is higher. Taking table 1-2 as an example, the service types of the data with the service fault tolerance rate higher than the product reference fault tolerance rate can be pictures, time frequency and audio, and the minimum value of the service fault tolerance rate corresponding to the data of the service types can be 6bit/4096bit, namely 6bit/512byte. For example, in a Video monitoring service, an image displayed on a monitoring terminal may be synthesized by a plurality of Video frames (Video frames), and even if one of the Video frames has a small error, the influence on the integrity of the image is small.
In the embodiment of the present application, as an example, the storage controller may collect, in advance, a correspondence between the number of PEs of a group of storage units and an operation error rate. And then, determining the PE capability upper limit value according to the corresponding relation and the target operation error rate. Tables 1-3 are a set of illustrations of the correspondence between the number of PEs in a memory cell and the operating bit error rate.
Tables 1 to 3
Memory cell numbering PE times Operating error rate
1 1350 2bit/4096bit
1 1520 4bit/4096bit
1 2020 6bit/4096bit
2 1400 2bit/4096bit
2 1500 4bit/4096bit
2 2000 6bit/4096bit
3 1450 2bit/4096bit
3 1550 4bit/4096bit
3 2050 6bit/4096bit
As shown in tables 1-3, assuming that the product reference fault tolerance is 4bit/4096bit, and the minimum value of the PE times corresponding to the product reference fault tolerance is 1500 times, the PE capability basic value is 1500; assuming that the lowest service fault-tolerant rate is 6bit/4096bit, the minimum value of the PE times corresponding to the service fault-tolerant rate is 2000 times, and the PE capability upper limit value can be 2000. In the embodiment of the present application, the correspondence between the number of PEs in the storage unit and the operation error rate may also be obtained from other storage devices, which is not limited in the embodiment of the present application.
In the embodiment of the application, the intermediate value of the PE capability is selected in a plurality of ways. Tables 1-4 are a set of illustrations of alternative embodiments of PE capability intermediate values.
Tables 1 to 4
As shown in tables 2-4, as an example, when the PE capability upper limit value is the PE capability base value, the storage controller may select the PE number Pa smaller than the PE capability base value as the PE capability intermediate value.
As an example, when the PE capability upper limit value is greater than the PE capability base value, the PE number Pa that is less than the PE capability base value may be selected as the PE capability intermediate value.
As an example, when the PE capability upper limit value is greater than the PE capability base value, the PE capability base value may also be selected as the PE capability intermediate value.
As an example, when the PE capability upper limit value is greater than the PE capability base value and the PE number P1 corresponding to the service fault tolerance threshold of the critical data is greater than the PE capability base value, the PE number Pb greater than the PE capability base value and less than or equal to P1 may be selected as the PE capability intermediate value.
In the embodiment of the application, the PE capability basic value may be the maximum PE number of the storage unit when the operation error rate of the storage unit does not exceed the product reference error tolerance of the storage device. When the PE times of the storage unit are smaller than or equal to the PE capability basic value, the operation error rate of the storage unit does not exceed the product reference fault tolerance, and the reliability index of the storage device is achieved; when the PE times of the storage unit exceed the PE capability basic value, the operation error rate of the storage unit exceeds the product reference fault tolerance rate, and the reliability index of the storage device cannot be achieved.
After S102, the data access method provided in the embodiment of the present application further includes a step of a writing phase.
As shown in fig. 2, the steps of the write phase provided by the embodiment of the present application may include:
s201, obtaining data to be written.
In the embodiment of the application, the memory controller can be connected with a bus in the computing device through an interface, and receives operation instructions such as a write instruction, a read instruction and the like from the bus. Wherein the write instruction may be sent by a Host (Host) to the storage device over the bus. As one example, a host may receive a write instruction from an Application (APP), where the write instruction contains data to be written. As another example, S201 may include: the storage controller receives a write instruction sent by an application, wherein the write instruction comprises first data. As yet another example, the write instruction may also contain a fetch address designating the Data to be written, e.g., a memory address of the Data to be written in Double Data Rate (DDR) used in Host. Then, the memory controller may read the data to be written from the corresponding address in the DDR used by Host and write it into the memory cell of the memory device. As one example, the host may include a computing device to which the storage device belongs or a software system in the computing device.
S202, when the data to be written is non-critical data, the data to be written is written into a storage unit belonging to a non-critical area; wherein, the business fault tolerance rate of the non-critical data is larger than the error rate threshold of the non-critical data.
As an example, the non-critical data bit error rate threshold may be equal to the product reference fault tolerance. The product reference fault tolerance is the operation error rate of the storage unit when the PE times of the storage unit reach the PE capability basic value.
In the embodiment of the application, by writing the data with the service fault tolerance rate larger than or equal to the non-critical data bit error rate threshold into the first storage unit belonging to the non-critical area, wherein the current PE times are larger than the PE intermediate value, the non-critical data with lower reliability requirements can be written into the storage unit with more used times, on one hand, the first storage unit with lower reliability in the storage device can be more fully utilized on the premise of meeting the reliability requirements, on the other hand, the PE capability of the storage unit in the storage device can be more reasonably utilized, and the storage unit with higher reliability and less used PE times can be reserved for the reliability.
In the embodiment of the application, the storage controller can determine whether the data to be written is key data or non-key data according to the size relation between the service fault tolerance corresponding to the data to be written and the operation error rate corresponding to the PE capability basic value.
It should be noted that, taking a certain storage device SSD1 as an example, the product reference fault tolerance of the SSD1 is BER1, it may be indicated that the operation error rate may be increased to BER1 at maximum when the number of PEs of the storage unit in the SSD1 reaches the PE capability basic value. That is, the maximum number of PEs when the operation error rate of the memory cell does not exceed BER1 may be a PE capability base value.
As an alternative embodiment, when the number of PEs of the storage units in the SSD1 reaches the PE capability base value, the SSD1 may set the storage units for which the number of PEs is exhausted to the disabled state. Alternatively, as another alternative embodiment, when the operating bit error rate of the memory cells in SSD1 is greater than BER1, SSD1 may set those memory cells whose bit error rates are exceeded to a disabled state.
It should be noted that, assuming that the storage capacity identified in the product index of the SSD1 is SC1, the storage capacity supported by the actually deployed granules in the SSD1 may be greater than SC1, the multi-deployed granules may be used as spare granules, when the SSD1 is used, the SSD1 may set the storage unit in which the number of PEs in the SSD1 reaches the PE capability basic value to be in a deactivated state, and configure a new storage unit in the spare granules, so as to avoid that the storage capacity of the SSD1 is lower than the storage capacity identified by the product index due to the storage unit in which the number of PEs in the SSD1 is deactivated. After all spare particles in SSD1 are used, SSD1 will have a storage capacity that is lower than the storage capacity of the product identifier when the PE-depleted storage unit is re-deactivated. It should also be noted that the spare granule is not necessarily configured in the storage device in the embodiment of the present application.
In practical application, if the service fault tolerance corresponding to the data of various service types in the application scenario 1 is greater than or equal to BER1, the SSD1 may be selected for use in the application scenario 1. I.e. the probability of errors of the SSD1 is lower than the traffic fault tolerance of the data, the SSD1 is able to meet the reliability requirements of the traffic. As another alternative embodiment, assuming that the service fault tolerance corresponding to the data of the various services involved in the application scenario 1 is BER2, BER2 is smaller than BER1, since the operation error rate of the storage unit in the SSD1 in the initial use period is far smaller than BER1, at this time, the SSD1 may be selected to be used in the application scenario 1, and a new condition for disabling the storage unit may be set in the SSD1, for example, in an example, the SSD1 may set to disable the storage unit when the number of PEs of the storage unit reaches BER 2. That is, the service fault tolerance corresponding to the data of various service types related to the application scenario 1 may be smaller than the product reference fault tolerance BER1 of the SSD1, or may be greater than or equal to the product reference fault tolerance BER1 of the SSD 1.
In the following, taking an example that the service fault tolerance rate of data of various service types related to an application scenario is greater than or equal to the product reference fault tolerance rate of the storage device, the storage controller is exemplified to divide the critical data and the non-critical data according to the service fault tolerance rate corresponding to the service type of the data. For example, the storage controller may determine that data corresponding to the service fault tolerance rate, where the number of PEs is greater than the PE capability base value and less than the PE capability upper limit value, is non-critical data, and determine that data corresponding to the service fault tolerance rate, where the number of PEs is equal to the PE capability base value, is critical data. It should be noted that, for the case where BER2 is smaller than BER1, the storage controller may determine, as the key data, data having the number of PEs corresponding to the service fault tolerance less than or equal to the PE capability base value.
In practical applications, for data of various service types involved in an application scenario of a storage device, the key data may be data of some service types with smaller corresponding service fault tolerance. The traffic fault tolerance of the critical data may or may not be 0. As an example, the memory controller may also determine whether the data to be written is critical data according to the traffic type of the data to be written. For example, the storage controller may determine data of which the service type is metadata as critical data and data of which the service type is video, picture, audio as non-critical data.
In the embodiment of the application, when the PE capability intermediate value is the PE capability basic value, the PE times of any storage unit belonging to the non-critical area exceeds the PE capability basic value and is smaller than or equal to the PE capability upper limit value; the PE capability basic value is the maximum PE times of the storage unit when the operation error rate does not reach the product reference error tolerance; and the operation error rate corresponding to the PE capability upper limit value is smaller than the service fault tolerance rate corresponding to the first data.
By adopting the method provided by the embodiment of the application, the first data is stored in the storage units with PE times larger than the PE capability basic value, and the PE times of which part or all of the storage units in the storage device are actually executed are increased from the PE capability basic value to the PE capability upper limit value, so that the PE average times supported by the whole storage device are greatly improved, the service life of the storage device is prolonged, and the total possession cost of the storage device is reduced.
Tables 1-5 are a set of illustrations of the number of PEs supported by the storage device and the corresponding operating bit error rates.
Tables 1 to 5
The method provided by the embodiment of the application actually provides a new product life standard, and the PE capability upper limit value defined by the standard can support the storage of non-critical data with service fault tolerance greater than the product reference fault tolerance.
In practical applications, the product index of the storage device using the NAND Flash medium may further include: total number of written bytes (total byte written, TBW). TBW refers to the total amount of valid data that a storage device can write throughout a life cycle, in units of PB (Petabyte), TB (Terabyte), and so on. In general, the size of the TBW value is linear with the average number of PEs for the entire memory unit in the memory device. The bit error rate indicator of the storage device may also affect the TBW indicator. The life index of the original product is recorded as a basic TBW, for example, 1PB. Typically, the bit error rate requirement for the base TBW may be 0. Compared with the original product, the new product realized by the method provided by the embodiment of the application additionally defines a new service life index for non-key data of the service, and is marked as an enhanced TBW, for example, 1.5PB. The bit error rate requirement corresponding to the enhanced TBW may be greater than 0.
Tables 1-6 are a set of illustrations of lifetime index of a memory device and PE capability average value of a memory unit and applicable bit error rate.
Tables 1 to 6
In the embodiment of the present application, the PE number of the storage device may be an average value of PE numbers of storage units in the storage device.
Because the PE capability upper limit value can support the storage of non-critical data with the service fault tolerance greater than the product reference fault tolerance, when the error rate of the storage device is allowed to be reduced to the service fault tolerance of the non-critical data, the TBW supported by the storage device can be increased from the basic TBW to the enhanced TBW.
After S201, as an optional implementation manner, the step of the writing phase of the embodiment of the present application may further include:
s203, when the data to be written is key data, the data to be written is written into a storage unit belonging to the key area; wherein the service fault tolerance of the critical data is smaller than the service fault tolerance of the non-critical data.
In the embodiment of the present application, the step in step S202 may be adopted by the storage controller to determine whether the first data is critical data, which is not described herein.
As an alternative embodiment, S201 may include: and acquiring the data to be written and storing the first address of the data to be written. Accordingly, S202 may include: when the first address points to a storage unit belonging to a non-critical area, determining that the data to be written is non-critical data, and writing the data to be written into the storage unit belonging to the non-critical area pointed to by the first address; s203 may include: when the first address points to the storage unit belonging to the key area, determining the data to be written as key data, and writing the data to be written into the storage unit belonging to the key area pointed by the first address.
In an alternative embodiment, S202 may be replaced by the following steps: the storage controller may write the data to be written into the storage unit belonging to the non-critical area when the data to be written is non-critical data and the storage unit of the non-critical area is not yet full; and/or; and when the data to be written is non-critical data and the storage units in the non-critical area are full, writing the data to be written into the storage units belonging to the critical area.
In an alternative implementation manner, the storage controller may acquire a plurality of data to be written, and the storage controller may execute the access method provided by the embodiment of the present application for each data to be written.
In this way, non-critical data may also be stored into the memory location of the critical section when the non-critical section in the memory device has been occupied. In the embodiment of the application, the storage controller can also adopt other shunting modes, and when the shunting condition is met, non-critical data is stored in the critical area storage unit, so that the process of storing the data can uniformly utilize each storage unit. Other embodiments of the present application will be described herein and are not repeated here.
The embodiment of the application also provides an alternative implementation mode.
Wherein S101 may include: and obtaining a partition configuration instruction, wherein the partition configuration instruction comprises a logic address interval of a storage unit belonging to a key area and/or a logic address interval of a storage unit belonging to a non-key area. I.e. the configuration interface may be used to allow an application to indicate address intervals of memory locations belonging to critical areas and belonging to non-critical areas. The address of a storage unit may be represented by a logical block (Logical Block Address, LBA), for example.
Accordingly, S201 may include: and acquiring the data to be written and storing the first address of the data to be written. As an example, the memory controller may receive a write instruction sent by the application, where the write instruction includes data to be written and a first address.
Accordingly, S202 may include: when the first address points to a memory cell belonging to the non-critical area, the data to be written is written into the memory cell belonging to the non-critical area.
Accordingly, S203 may include: when the first address points to the memory cell belonging to the key area, the data to be written is written into the memory cell belonging to the key area.
In other embodiments of the present application, the step of sending the logical address interval corresponding to the indication key area and the logical address interval corresponding to the non-key area to the memory controller will be described in detail, and will not be described herein.
Example two
Based on the foregoing embodiments, the data access method provided in the embodiments of the present application may further include a step of a reading phase.
FIG. 3 is a flow chart illustrating a read phase of the data access method according to an embodiment of the present application. As shown in fig. 3, the steps of the read phase in an embodiment of the present application may include:
s301, acquiring a read instruction, wherein the read instruction comprises a first address pointing to a storage unit in a storage device.
In an embodiment of the present application, as an example, a memory controller may obtain a read instruction from an application from an interface; as one example, the first address may be a logical block address (Logical Block Address, LBA).
S302, reading data from the storage unit pointed by the first address.
In an embodiment of the present application, as an example, a memory controller may translate a logical block address to a physical address and read data from the block pointed to by the physical address.
S303, verifying the read data.
In the embodiment of the application, the storage controller can adopt various verification modes. As one example, the memory controller may employ an ECC check approach.
S304, when the verification result is wrong and the storage unit pointed by the first address belongs to a non-critical area, a read response is returned to the interface, and the read response contains the read data.
In this way, the application sending the read instruction can directly use the erroneous data returned by the storage device. For some non-critical data of which the traffic types are picture, video, audio, the occurrence of minor errors has less impact on the traffic presentation, e.g. the color of a pixel in a picture is wrong.
In an embodiment of the present application, as an alternative implementation, the read response may further include an error code to indicate that the read data is erroneous. In this way, the application may also decide by itself whether to use the erroneous data returned by the storage device after receiving the read response, or the application may instruct the storage device to re-read the data in the storage location pointed to by the first address.
In the embodiment of the present application, the following steps may also be used as an alternative implementation manner for S304. The memory controller may perform ECC correction on the erroneous data before returning a read response to the interface, and may return a read response containing the erroneous data to the interface when the error correction fails. When error correction is successful, a read response containing the correct data is returned to the interface.
Example III
The embodiment of the application also provides a data access method, and the method provided by the embodiment of the application can improve the product competitiveness by improving the satisfaction of the storage equipment on the reliability requirement.
Fig. 4 is a schematic flow chart of another data access method according to an embodiment of the application.
As shown in fig. 4, in an embodiment of the present application, the steps of the partition configuration stage may include:
s401, a partition configuration instruction is obtained, wherein the partition configuration instruction comprises a safe logical address section and a non-safe logical address section.
The technical details of this step can be seen from the description in S101.
S402, dividing at least two storage units in the storage device into storage units belonging to a key area and storage units belonging to a non-key area according to the PE capability intermediate value and the PE times of each storage unit.
In an example, the PE capability intermediate value may be a value between the minimum PE number and the maximum PE number corresponding to all storage units of the storage device, for example, an average value of PE numbers of all storage units, where the PE capability average value may be calculated by the storage controller, or may be calculated by host according to information of the storage controller and sent to the storage controller by an instruction.
In another example, the PE capability intermediate value may also be a value between 0 and the PE capability base value for the storage device.
In yet another example, the PE capability intermediate value may also be a value between 0 and an upper PE capability limit for the storage device.
In the embodiment of the application, in the divided storage units, the PE times of the storage units belonging to the key area are smaller than those of the storage units belonging to the non-key area. After the division is completed, the storage device can control to store the critical data with higher reliability requirement to the critical area preferentially, and store the non-critical data with lower reliability requirement to the non-critical area preferentially.
By adopting the mode, the storage device can always store the key data on the storage unit with higher reliability in the storage device, and higher reliability guarantee is provided for the key data. Moreover, after the division according to the reliability, when the operation error rate of the storage units in the critical area is smaller than the product reference error tolerance, the storage device can support the application scene with higher reliability requirement.
As an example, the partition configuration instruction in S401 may contain a PE capability intermediate value. The PE capability intermediate value is a threshold value for dividing the PE times of the storage unit. Accordingly, S402 may include: and dividing at least two storage units in the storage device into storage units belonging to the key area and storage units belonging to the non-key area according to the PE capability intermediate value and the PE times of each storage unit. Table 2-1 is an illustration of a range of PE times belonging to critical sections and non-critical memory units, and data that is permitted to be stored.
TABLE 2-1
In the embodiment of the application, after the division is completed, the storage controller can store the data to be written into each storage unit. As an example, the storage controller may set to preferentially store critical data to storage units belonging to the critical section and non-critical data to storage units belonging to the non-critical section. As another example, the storage device may set a storage unit belonging to a non-critical area for storing only non-critical data, and a storage unit belonging to a critical area may be used for storing critical data and non-critical data.
In practical applications, the storage controller may use a PE count smaller than the PE capability base value as the PE capability intermediate value at an early stage of use, and use the PE capability base value as the PE capability intermediate value at a later stage of use. In one example, the PE capability base value may be determined as the PE capability intermediate value after an average PE count for a storage unit in the storage device reaches the PE capability base value.
In other embodiments of the present application, the steps of the write phase will be described in detail.
In the embodiment of the application, the key data can be data with higher reliability requirements, and the non-key data can be data with lower reliability requirements. Taking the service fault tolerance rate as an example to represent the reliability requirement level of the data, table 2-2 is a set of schematic diagrams of the reliability requirement level corresponding to the critical data and the non-critical data.
TABLE 2-2
As shown in table 2-2, to ensure that the storage device meets the reliability requirements for storing critical data and non-critical data, the following relationship may be satisfied between the service fault tolerance E1 (e.g., e1_a, e1_b) of the critical data, the service fault tolerance E2 (e.g., e2_a, e2_b) of the non-critical data, and the product reference fault tolerance E0 of the storage device:
the product reference fault tolerance E0 is less than or equal to the service fault tolerance E1 of the key data and less than the service fault tolerance E2 of the non-key data
In practical applications, as an example, the intermediate value of PE capability may select the number of PEs corresponding to the service fault tolerance of the critical data, and the upper limit value of PE capability may select the number of PEs corresponding to the service fault tolerance of the non-critical data.
In the embodiment of the application, the data with different service types can correspond to different service fault tolerance rates, and the storage controller can determine the reliability requirement level of the data to be stored according to the service type of the data. For example, the service type of the key data may be metadata, etc., and the service type of the non-key data may be video, image, audio, etc. In other embodiments of the present application, the storage controller may also determine critical data and non-critical data based on the PE capability base value. In an example, the storage controller may use an operation error rate corresponding to the PE capability basic value as a boundary for dividing a service fault tolerance rate of the critical data and the non-critical data, determine data having a PE number equal to the PE capability basic value corresponding to the service fault tolerance rate as the critical data, and determine data having a PE number greater than the PE capability basic value and less than an upper limit value of the PE capability corresponding to the service fault tolerance rate as the non-critical data. In other embodiments of the present application, when the application scenario involves data of multiple service types, data corresponding to several service types with lower service fault tolerance rates corresponding to the service types may be selected as key data, that is, the service type involved in the key data is determined first, then, the maximum service fault tolerance rate in the service fault tolerance rates corresponding to the service types involved in the key data is taken as a dividing boundary, data corresponding to the service types with service fault tolerance rates less than or equal to the dividing boundary is determined as key data, and data corresponding to the service types with service fault tolerance rates greater than the dividing boundary is determined as non-key data. Or, books corresponding to a plurality of service types with higher service fault tolerance corresponding to the service types can be selected as non-critical data, namely, the service types related to the non-critical data are determined first, then, the minimum service fault tolerance in the service fault tolerance corresponding to each service type related to the non-critical data is used as a dividing boundary, the data corresponding to the service types with the service fault tolerance smaller than the boundary are determined as critical data, and the data corresponding to the service types with the service fault tolerance greater than or equal to the boundary are determined as non-critical data.
In the embodiment of the application, the upper limit value of the PE capability is selected in a plurality of ways. Tables 1-3 are a set of illustrations of alternative embodiments of upper PE capability limits.
Tables 2 to 3
As shown in tables 2-3, pm may be equal to the PE capability base value, i.e., the storage device may select the PE capability base value as the PE capability upper limit, as an example. The PE capability basic value is the maximum PE times of the storage unit when the operation error rate does not reach the product reference error tolerance. Namely, the PE times corresponding to the product reference fault tolerance are PE capability basic values.
As another example, pm may be equal to P2, where P2 is the traffic fault tolerance of the non-critical data, i.e. the storage device may determine the PE capability upper limit according to the number of PEs corresponding to the traffic fault tolerance of the non-critical data, so as to meet the reliability requirement of the non-critical data. The PE times corresponding to the service fault-tolerant rate of the non-critical data are PE times of the storage unit when the operation error rate reaches the service fault-tolerant rate of the non-critical data.
For example, the service fault tolerance of the non-critical data is denoted as E2, and the PE number of the storage unit is denoted as P2 when the operation error rate reaches E2, the upper limit value of the PE capability selected by the storage device may satisfy the following conditions:
PE times P2 corresponding to service fault tolerance E2 of non-critical data with PE capability upper limit value Pm less than or equal to
In practical applications, in order to be able to use more storage units with PE times exceeding the PE capability base value, the storage device may select P2 as the PE capability upper limit value.
In the embodiment of the application, the intermediate value of the PE capability is selected in a plurality of ways. The embodiments shown in tables 1-4 may be employed.
It should be noted that, when the upper limit value of the PE capability is equal to the basic value of the PE capability, the technical solution of the embodiment of the present application may also be implemented by adopting the technical solution details in the first embodiment, and correspondingly, the embodiment of the present application also has the technical effects brought by the first embodiment of the present application.
S403, distributing a logic address belonging to a safe logic address section for the storage unit belonging to the key area; memory cells belonging to non-critical areas are assigned logical addresses belonging to non-secure logical address segments.
In other embodiments of the present application, a logic address allocation embodiment will be described in detail.
After S403, the data access method provided in the embodiment of the present application may further include a processing step of the writing phase.
In an alternative implementation of the embodiment of the present application, as shown in fig. 4, the step of the writing phase may include:
S501, data to be written and storage addresses of the data to be written are acquired.
Wherein this step is similar to the embodiment of S201, reference is made to the description related to S201.
S502, when the storage address of the data to be written belongs to the non-safety logic address section, the data to be written is written into the storage unit belonging to the non-key area.
S503, when the storage address of the data to be written belongs to the safe logic address section, the data to be written is written into the storage unit belonging to the key area.
In the embodiment of the present application, as an example, the storage controller may determine whether the data to be written is critical data or non-critical data according to the size relationship between the service fault tolerance corresponding to the data to be written and the PE capability base value. For example, data corresponding to the service fault-tolerance rate and having the number of PEs equal to the PE capability base value is determined as critical data, and data corresponding to the service fault-tolerance rate and having the number of PEs greater than the PE capability base value and less than the PE capability upper limit value is determined as non-critical data. As one example, the memory controller may determine whether the data to be written is critical data according to a traffic type of the data to be written. For example, data whose service type is metadata is determined as critical data, and data whose service type is video, picture, audio is determined as non-critical data.
It should be noted that S502 and S503 may not be steps that must be performed simultaneously in the embodiment of the present application.
After the step of the writing phase, the data access method provided in the embodiment of the present application may further include a processing step of the reading phase. The processing steps of the reading phase of the embodiment of the present application may be as shown in the second embodiment, and the details and technical effects of the technical solution may be referred to the related descriptions in the foregoing embodiment.
The embodiment of the application also provides an optional implementation manner, in which the Host issues the partition configuration instruction to the storage device, where the partition configuration instruction may include, in addition to the PE capability intermediate value, a minimum service fault tolerance among service fault tolerance corresponding to each service type belonging to non-critical data. The storage controller can determine the PE capability upper limit value according to the minimum service fault tolerance rate corresponding to all non-critical data, and when the actual PE times of the storage unit are greater than the PE capability upper limit value, the storage controller can alarm to host.
Tables 2-4 are an illustration of the available threshold and the alarm threshold of the memory unit.
Tables 2 to 4
The embodiment of the application also provides an optional implementation manner, the host can issue a partition configuration instruction to the storage controller, and the difference between the host and the previous optional implementation manner is that the host does not issue a service fault tolerance rate in the partition configuration instruction, and the storage controller does not need to determine the PE capability upper limit value. As an alternative embodiment, the storage controller may store data into the storage unit, and the host decides whether to stop using the storage unit according to the read BER of the storage unit, or the host decides whether to stop using the storage device according to the read BER of the storage device.
As one example, the memory controller sends to host an average value of BER for each memory cell in the memory device. host determines to stop using the storage device when it is determined that the average value of BER exceeds the BER availability threshold. Illustratively, the BER availability threshold may be the BER availability threshold for the memory cells of the non-critical region shown in tables 2-4.
Example IV
The data access method provided by the embodiment of the application is described in detail below by taking SSD as an example.
It should be noted that, the SSD externally represents the storage address in a logical block address (Logical Block Address, LBA). Therefore, when the SSD divides the data area to which the storage unit belongs, the storage unit identified by the LBA may be configured with the area attribute, for example, the storage unit configuration area attribute belonging to the critical area is a critical area, and the storage unit configuration area attribute belonging to the non-critical area is a non-critical area. In practical applications, the SSD may configure the region attribute according to the storage unit identified by the physical address, and then configure the LBA address interval for the storage unit belonging to the critical region and the storage unit not belonging to the critical region.
For example, the operating mechanism of an SSD can be described by the following three phases of operating steps.
In the embodiment of the present application, stage 1 is a data zone (zone) configuration stage, wherein the key working steps may include steps 1.1 to 1.2.
Step 1.1, SSD provides zone configuration interface to the outside.
Step 1.2, the SSD receives a zone configuration command from the zone configuration interface, allocates storage space for a target zone, and identifies the zone's attribute as a critical or non-critical zone.
As an example, the SSD may configure a plurality of data areas and an area attribute of each data area, and allocate a storage unit for each data area. The following is a detailed description.
In practical application, fig. 5 is a flow chart illustrating a processing procedure of a data area configuration stage of the data access method according to an embodiment of the present application. As shown in fig. 5, the workflow of setting the zone attribute is as follows:
s601, the SSD is in a ready state.
In an embodiment of the present application, the SSD may be in a ready state before receiving the zone configuration command, for example, the SSD may be in a ready state after completing a series of operations of initialization. The initialization operations of the SSD may include up-current-path detection, device interface protocol negotiation, and so forth.
S602, receiving a zone configuration command.
In the embodiment of the application, after initialization is completed, the SSD is ready, and a zone configuration instruction can be received. The zone configuration command may be a partition configuration instruction in the foregoing embodiment. In one example, the SSD may receive a zone configuration command issued by the Host.
As an example, the zone configuration command may include a zone attribute of the data zone and an address of a corresponding storage unit, e.g., a zone attribute is a non-critical zone and an LBA address range of a storage unit corresponding to the non-critical zone, and, for example, a zone attribute is a critical zone and an LBA address range of a storage unit corresponding to the critical zone.
As one example, the zone configuration command may include a PE capability intermediate value. In practical applications, the zone configuration command may not include the PE capability intermediate value, and the SSD may perform partition configuration by default according to the PE capability base value as the PE capability intermediate value. As an example, the zone configuration command may also contain a PE capability upper limit.
S603, identifying the area attribute of the data area to be configured.
In the embodiment of the application, SSD can analyze the zone configuration command and acquire configuration parameters such as the zone attribute of the data zone to be configured.
S604, setting the area attribute of the data area to be configured as a key area or a non-key area.
The SSD may set the zone attribute in its management data as a critical storage area or a non-critical storage area. For example, LBA address space 1 belongs to critical areas and LBA2 address space 2 belongs to non-critical areas.
As an example, the number of PEs of a memory location in LBA address interval 1 may be less than or equal to the PE capability base value, and the number of PEs of a memory location in LBA address interval 2 may be greater than the PE capability base value.
In the embodiment of the present application, the management data of the SSD may be internal data for supporting the SSD to operate, and the management data may be stored on any storage medium inside the SSD. As one example, the correspondence of LBA addresses and zone attributes for individual storage units may be generated and managed by a zone management module.
In an embodiment of the present application, the working steps of the SSD writing data phase may include steps 2.1-2.2.
And 2.1, providing an I/O interface for the SSD.
As one example, the SSD may inform its device port, e.g., an upper layer application, to the Host via the system bus of the computing device.
And 2.2, the SSD receives a writing instruction from the I/O interface, judges whether the data attribute of the data to be written in the instruction is key data or non-key data, and stores the data to be written in a corresponding data storage area. The method for determining the data attribute of the data to be written in the write instruction may be, but is not limited to, the following method.
In one example, the write instruction may include an identifier of a data attribute of the data to be written, and the SSD may determine the data attribute according to the attribute identifier of the write instruction. For example, the identification is issued by Host. In practical applications, the identification may be a type of service of the data, e.g. metadata, video, image, audio, etc.
In the embodiment of the present application, the write command may also be referred to as a write command, and the read command may also be referred to as a read command.
In an optional implementation manner of the embodiment of the present application, the write instruction may include a storage address, such as a logical block address, of the data to be written in the SSD, where the SSD may record a range of the logical block address of the storage unit in the critical area and a range of the logical block address of the storage unit in the non-critical area when dividing the critical area and the non-critical area, and provide the LBA range of the critical area and the LBA range of the non-critical area after the partition configuration to the upper layer application when providing the ZONE configuration interface to the outside. The upper layer application may indicate the storage address of the data to be written in the write instruction, for example, specify an LBA belonging to the critical area for the critical data, and, for example, specify an LBA belonging to the non-critical area for the non-critical data, and then, after receiving the write instruction, the SSD may store the data to be written in the corresponding data storage area directly according to the data attribute according to the LBA corresponding to the data to be written.
In an example, the SSD may receive a write instruction from a Host from the I/O interface, where the Host may be a device, such as an upper layer application, capable of initiating a write instruction or a read instruction.
In an embodiment of the present application, the working steps of the SSD read data stage may include steps 3.1-3.3.
And 3.1, providing an I/O interface for the SSD.
As one example, the SSD may inform its device port, e.g., an upper layer application, to the Host via the system bus of the computing device.
And 3.2, after the SSD receives a read command from the I/O interface, reading data from the data storage unit corresponding to the LBA.
In step 3.3, if the read operation returns an uncorrectable error (uncorrectable error, UNC error), the SSD determines the data attributes of the target data. If the target data is key data, the SSD returns an error outwards through the I/O interface; if the target data is non-critical data, the SSD returns the read data out through the I/O interface.
In practical application, fig. 6 is a schematic diagram of a processing flow of a reading stage in the data access method according to the embodiment of the present application. As shown in fig. 6, in the embodiment of the present application, the basic read request processing flow of the SSD:
s701, the SSD is in a ready state.
S702, receiving a read instruction.
The SSD may receive a read command issued by the Host after being in a ready state.
S703, reading data according to the LBA in the read command.
And the SSD controller finds the NAND Flash area where the data is located according to the LBA information in the read command, and reads the data from the NAND Flash area.
S704, judging whether the read operation generates UNC errors, if not, executing S705, if yes, executing S706.
The SSD controller may determine whether a UNC error occurs for the read operation.
S705, return data.
The SSD may return data to the Host, and the process ends.
S706, judging whether the target data is key data, if not, executing S705, if yes, executing S707.
The SSD controller may determine whether the target data is critical data, and if so, return erroneous data when returning the data.
S707, returning an error.
The SSD may return an error message to the Host, and the process ends. Taking Host as an example, after the manual error information is applied, the storage device can be instructed to re-read the data.
By adopting the flow, the SSD can fully utilize the storage capacity of the NAND Flash in the scenes such as video monitoring, and the service life of the SSD is prolonged.
In practice, the two process flows described above can be flexibly varied on the basis of the core idea around the application.
Other technical scheme details and technical effects of the embodiments of the present application can be referred to the related descriptions in other embodiments of the present application.
Example five
The method provided by the embodiment of the application is further elaborated in the following with reference to the specific structure of the SSD.
Fig. 7 is a schematic structural diagram of an SSD according to an embodiment of the application. As shown in FIG. 7, in an embodiment of the present application, an SSD system device may include the following components: interface (Interface), controller (Controller), and storage Array (Array). The storage Array can be composed of NAND Flash medium particles, is a physical carrier for final storage of data, and can also be called as a NAND Flash Array (Array) module. As an example, the various components may include the following logic modules, wherein:
the interface module is used for undertaking management (Admin) command, I/O command and data transmission, and can set management
An (Admin) interface module and an I/O read-write module.
The controller is a controller unit of the SSD, and is used for bearing functions of SSD read-write command processing, data distribution management, NAND Flash management and the like, and an I/O processing (I/O processing) module, a Flash memory conversion layer (Flash Translation Layer, FTL) and a Zone management (Zone management) module can be arranged.
In embodiments of the present application, interfaces may be used to connect to a Host (Host). Host can divide SSD memory space into critical data areas or non-critical data areas through a Controller.
In the embodiment of the application, when the storage device configures the region attribute, the same region attribute can be configured for the regions in the same particle, namely, the regions on the same particle all belong to the key regions or all belong to the non-key regions.
It should be noted that, when the storage unit of the storage device is divided, the storage device may use all blocks in a granule as a group, and configure the area attribute for each group of blocks, and in an example, the maximum PE number in the PE numbers corresponding to each block in a group may be used as the PE number corresponding to each block in the group; in yet another example, an average of the number of PEs corresponding to each block of a group may be taken as the number of PEs corresponding to each block of the group. The PE times corresponding to each block are the PE times corresponding to each storage unit; in an example, the minimum number of PEs in the number of PEs corresponding to each block in a group may be taken as the number of PEs corresponding to each block in the group.
Based on the system architecture of the SSD, the implementation process of the data access method provided by the embodiment of the application in practical application can be the following three-stage workflow. Wherein:
in the embodiment of the present application, the 1 st stage is a set region attribute stage, and the workflow is as follows:
and 1.1, an interface is used for setting a management interface module and an I/O read-write module, and presenting the management interface module and the I/O read-write module to a Host.
The management interface module is used for receiving an Admin command and responding, and the I/O read-write module is used for receiving a read command, a write command and responding and is used for carrying out data transmission. In the embodiment of the present application, the read command may also be referred to as a read command, and the write command may also be referred to as a write command. Host may be an application. As one example, the SSD may send ports of the management interface and the I/O read-write interface to the Host at initialization.
And 1.2, the application issues a command for setting the zone attribute through the management interface module, wherein the command comprises information such as the size of the zone, the zone attribute and the like.
In one example, the size of the zone may be 50% of the physical capacity of the entire SSD.
In an example, the zone attribute may be non-critical or critical.
In one example, zone size information may include LBA starting address, LBA length, etc.
And 1.3, a Zone management module in the controller allocates a NAND Flash storage area according to the information in the step 1.2, and marks the attribute of the Zone.
In an example, allocating the NAND Flash storage area and labeling the zone's attribute may include: generating a zone with matched space size according to the information in the step 1.2, and recording the attribute of the zone.
In practical applications, as an example, the SSD may allocate an LBA address to a storage unit belonging to a non-critical area according to size information such as an LBA start address and an LBA length of the non-critical area indicated by the application.
In the embodiment of the application, the 2 nd stage is a data writing stage, and the working flow is as follows:
and 2.1, setting a management Interface module and an I/O read-write module by the Interface of the SSD, and presenting the management Interface module and the I/O read-write module to a Host.
And 2.2, the APP issues a write command through the I/O read-write module, wherein the write command contains information such as LBA starting address, LBA length, data attribute identification and the like.
As an example, as shown in fig. 7, the write command may be W1, W2, W3, W4, W5. Wherein,
the data of W1 and W4 may be non-critical data, and the data of W2, W3 and W5 may be critical data.
And 2.3, the I/O process module in the controller applies a physical storage area to the FTL module in the controller according to the information contained in the write command in the step 2.2.
And 2.4, inquiring Zone information from the Zone management module by the FTL module, distributing physical storage units from the corresponding zones according to the data attribute identification information in the step 2.2, and returning to the I/O process module.
In an example, the FTL module may query the Zone management module for Zone information where the LBA is located, for example, whether the Zone information belongs to a critical area or a non-critical area, allocate storage space for the LBA in a suitable NAND Flash storage unit, and return to the I/O process module.
And 2.5, the I/O process module persistently stores the data to the corresponding NAND Flash according to the returned information in the step 2.4.
In step 2.6, the i/O process module applies to the FTL module for LBA index information of the update write command, where the index information may indicate a physical storage area where the LBA data is located.
As one example, LBA0 stores data attribute information in block0 in die 0 (die 0) in NAND Flash grain 0 and LBA.
And 2.7, updating the index information and the data attribute information of the LBA in the management data of the SSD by the FTL module, and returning to the I/O process module.
In one example, the FTL module updates index information of the LBA in management data of the SSD and returns to the I/O process module.
In step 2.8, the I/O process module returns the index information of the updated LBA to the Host.
As an example, the SSD may further include a cache module, and step 2.8 may be performed before step 2.3, and the SSD may return to host after writing the data to the cache module.
In the embodiment of the application, the 3 rd phase is a data reading phase, and the working flow is as follows:
the step 3.1,SSD Interface module designs the management interface module and the I/O read/write module and presents them to the Host.
And 3.2, the APP issues a read command through the I/O read-write module in the step 1, wherein the read command contains information such as LBA starting address, LBA length and the like.
The I/O process module in step 3.3,SSD Controller queries the FTL module for physical storage location information of the LBA according to the command information in step 2.
And 3.4, the FTL module inquires LBA index information from SSD management data, and returns the physical storage unit position information and the data attribute information of the LBA to the I/O process module.
In an example, the FTL module queries LBA index information from SSD management data, queries the Zone management module for data attribute information of the LBA, and then returns physical storage unit location information and data attribute information of the LBA to the I/O process module.
And 3.5, the I/O process module reads data from the NAND Flash according to the physical storage unit position information of the LBA, and judges whether UNC error occurs in the reading operation.
And step 3.5.1, if not, the I/O process module returns data to the Host, and the flow is ended.
And 3.5.2, if the UNC error occurs, the I/O process module judges whether the target data is key data according to the data attribute information of the LBA.
In step 3.5.2.1, if the data is not critical, the I/O process module returns the data to the Host and the process ends.
In step 3.5.2.2, if the key data is the key data, the I/O process module returns an error message to the Host, and the process ends.
Other technical scheme details and technical effects of the embodiments of the present application can be referred to the related descriptions in other embodiments of the present application.
Example six
The embodiment of the application also provides an optional implementation method of the data access method.
Fig. 8 is a schematic diagram of another structure of an SSD according to an embodiment of the application. The memory device shown in fig. 7 is different in that the memory cells in fig. 8 may be blocks. The storage device may be divided into minimum units of storage in blocks in the granule when configuring partition attributes. The storage device may configure zone attributes for each block. As an example, two blocks on one grain may belong to critical and non-critical regions, respectively.
In practical applications, the critical data storage area and the non-critical data storage area may be defined in a logical sense, and the critical data storage area and the non-critical data storage area may be isolated from each other in the LBA area in the SSD. In addition, at the minimum erase unit (block) level of NAND Flash, memory cells belonging to critical areas and memory cells belonging to non-critical areas are also physically isolated from each other. That is, critical data and non-critical data are not stored in one block at the same time.
In the embodiment of the application, the SSD Interface module provides 1 special Interface to the Host. The interface is a management (Admin) interface to set the zone's LBA start address, LBA length, and zone's attributes.
With this embodiment, the data partitioning is done at block granularity. The granularity of the Block is smaller than the granularity of the particles, so that the storage medium is more flexible and sufficient to use. In the fifth embodiment of the present application, the area is divided according to the granularity of the particles, if the capacity of the particles is 2GB, but the size of the critical data to be stored therein is only 1GB, the remaining 1GB space cannot store non-critical data. And the area division is carried out by taking block as granularity, the granularity of division is smaller than the granularity of the granule, and the size of the block is 256MB, for example. In the scenario described above, non-critical data may be stored in a portion of the block in the grain.
As an example, when providing a zone configuration interface to the outside, the SSD may allow applications to divide areas by blocks, or may allow applications to divide areas by particles.
It should be noted that the above procedure provided by the embodiments of the present application is only one alternative implementation of the embodiments. In product practice, the above-described process may vary flexibly. For example, in the read workflow, querying the data attribute information of the LBA is initiated by the FTL module to the Zone management module in step 3.4; an alternative implementation flow is initiated by the I/O process module to the Zone management module in step 3.3.
In practical application, the data access method provided by the embodiment of the application can bring obvious technical effects.
In the technical scheme provided by the embodiment of the application, the service data are stored in a partition mode according to the dimensions of key, non-key and the like, and then in the process of reading the non-key data from the SSD, the SSD still returns the data to the Host even though UNC error occurs when the data are read from the NAND Flash. Therefore, the service life of the SSD can be effectively prolonged in service application scenes such as video monitoring, and the total possession cost of the SSD is reduced.
The beneficial effects of the embodiment of the application are exemplified below by combining the NAND Flash model and the business tolerant error ratio of the actual product application. Table 3 is a schematic representation of the comparison of the service life of SSDs.
TABLE 3 Table 3
As shown in table 3, for example, an SSD product uses a model of three-dimensional (3D) four-Level Cell (QLC) granule, where the product reference fault tolerance of the SSD product may be 300b/4KB, and in the original standard, the 3D QLC granule may ensure that the error rate of the data storage is lower than the product reference fault tolerance within 1500PE times.
In the original standard, it is assumed that the service allows 300b data errors in every 4KB memory unit of NAND Flash, which can be recorded as 300b/4K, and at this time, the PE number of times that the 3D QLC granule can be actually executed is 1500. When the number of PEs on which the granule is executed exceeds 1500, the granule will not be allowed to store data to prevent running bit error rates above the traffic-allowed error rate.
In the new standard, it is assumed that the traffic allows 330b data errors in the 4KB memory unit of NAND Flash, which may be referred to as non-critical data, with a traffic fault tolerance of 330b/4K. At this time, the number of PEs for which 3D QLC particles can be actually performed may increase to 2000. Thus, by using the method provided by the embodiment of the application on the NAND Flash of the model, the PE number of times that each storage unit in the storage device is actually executed can be increased from 1500 times to 2000 times, and based on the PE number, the storage device can obtain 33% of service life benefit.
In addition, the error reading data may be caused by errors occurring in the writing stage after the number of times the granule is executed by the PE gradually increases, or may be caused by errors occurring in the reading stage. When the error reading data is caused by errors in the writing stage, the upper layer application can directly use the error reading data by returning the error reading data to the upper layer application when the error reading data is generated, so that unnecessary PE times caused by repeatedly indicating the storage device to read the data in the particles with the error reading event when the upper layer application receives error code information representing the error reading of the data are avoided.
Example seven
The embodiment of the application also provides a data access device.
Fig. 9 is a schematic diagram of a data access device according to an embodiment of the application. As shown in fig. 9, an apparatus provided by an embodiment of the present application may include: a transceiver module 901 and a processing module 902.
The transceiver module 901 is configured to receive a read instruction, a write instruction, and a configuration instruction for obtaining an attribute of a region. The processing module 902 may be used to execute a program to implement any of the methods of the previous embodiments.
In an embodiment of the present application, the apparatus may further include a storage module 903. The storage module 903 may be used to store programs and data, among other things. As an example, the data access device may be a controller in the SSD referred to in the foregoing embodiments.
As one example, the data access device may be a memory controller.
In one possible implementation manner, a processing module is configured to selectively configure a first storage unit in a storage medium in a storage device as a secure storage area or a non-secure storage area according to a current erasing PE number of the first storage unit and a preset PE threshold, where the PE threshold is determined according to an operation error rate of each storage unit in the storage medium;
the non-safety storage area is used for storing first data, the service fault-tolerance rate corresponding to the first data is larger than or equal to a preset non-critical data error rate threshold, the safety storage area is used for storing second data or the first data, and the service fault-tolerance rate corresponding to the second data is smaller than the non-critical data error rate threshold.
In one possible implementation, the PE threshold is greater than or equal to a PE capability value;
and the PE capability value is the PE times when the operation error rate of each storage unit in the storage device reaches the reference error tolerance of the storage device, and the reference error tolerance is smaller than or equal to the service error tolerance of the second data.
In one possible implementation, the transceiver module is configured to receive, by the storage controller, a write instruction; the writing instruction comprises data to be written and a service type of the data to be written; the processing module is used for determining whether the data to be written is the first data or the second data according to the service type of the data to be written through the storage controller; the transceiver module is further configured to store the data to be written to a storage unit configured as an unsafe storage area in the storage medium or a storage unit configured as a safe storage area in the storage medium when the data to be written is the first data; and storing the data to be written to a storage unit configured as a secure storage area in the storage medium when the data to be written is the second data.
In a possible implementation manner, the processing module is specifically configured to determine that the data to be written is the first data when the service type of the data to be written belongs to the service type of the first data or the service type of the data to be written does not belong to the service type of the second data; and/or determining that the data to be written is the second data when the service type of the data to be written belongs to the service type of the second data or the service type of the data to be written does not belong to the service type of the first data; the service type of the first data comprises any one of pictures, videos and audios; the service type of the second data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
In a possible implementation manner, the transceiver module is further configured to receive a write instruction, where the write instruction includes data to be written and a storage address of the data to be written; the processing module is further used for storing the data to be written into a storage unit pointed by the storage address through the transceiver module; when the storage address belongs to the unsafe logic address section, the storage unit pointed by the storage address is a storage unit configured as an unsafe storage area in the storage medium; and when the storage address belongs to the safe logic address section, the storage unit pointed by the storage address is a storage unit configured as a safe storage area in the storage medium.
In one possible implementation, the transceiver module is further configured to receive a partition configuration instruction, where the partition configuration instruction includes the non-secure logical address section and the secure logical address section; allocating a first logical address to the first storage unit; wherein the first logical address belongs to the non-secure logical address section when the first storage unit is configured as a non-secure storage area and the first logical address belongs to the secure logical address section when the first storage unit is configured as a secure storage area.
In one possible implementation manner, the transceiver module is further configured to receive a read instruction sent by the host, where the read instruction includes a second logical address, and the second logical address points to the second storage unit; the processing module is also used for verifying the data read from the second storage unit; and the second storage unit is used for sending a read instruction response to the host through the transceiver module when the check result is wrong and the second storage unit is configured as an unsafe storage area; wherein the read instruction response includes data read from the second memory location.
In one possible implementation, any storage unit in the storage device is a block in the storage medium; or any storage unit in the storage device is a granule in the storage medium, where any granule includes at least two blocks, the PE number of any granule is the maximum value of the PE number of each block in the at least two blocks, or the PE number of any granule is the average value of the PE number of each block in the at least two blocks.
Fig. 10 is a schematic diagram of a memory controller according to an embodiment of the present application. As shown in fig. 10, the memory controller of the embodiment of the present application may include: a processor 1010 and an interface 1020. The memory controller may also include a memory 1030 for storing instructions and data.
Wherein the interface is operable to receive instructions and data from the host. As one example, the processor may be a microprocessor. As an example, the interface in the memory controller may be a hardware interface or a software interface. The processor executes instructions to implement the methods of the previous embodiments. As one example, the memory controller may be a chip. As one example, a storage controller may communicate with hosts and applications, etc. through interfaces in a storage device. In an example, the interface, processor, and memory may communicate over a bus 1060 in a storage device.
The embodiment of the application also provides a storage device. Fig. 11 is a schematic block diagram of a storage device according to an embodiment of the present application. As shown in fig. 11, the storage device in the embodiment of the present application may include: an interface 1001, a memory controller 1002, and a storage medium 1003 coupled to the memory controller.
The interface is used for communicating with the host, receiving a read instruction, a write instruction or a zone attribute configuration instruction and the like. The memory is used for storing data and programs. The memory controller is configured to perform any of the methods of the previous embodiments.
As an example, the storage medium may be a storage array or storage granules in the foregoing embodiments.
The embodiment of the application also provides a computing device. The computing device may include, among other things, the storage devices of the foregoing embodiments.
As an example, the aforementioned processing module may be a processor and the transceiver module may be a transceiver; if a memory module is also included, the memory module may be a memory.
As another example, when the device is a memory chip, the processing module may be a processor, and the transceiver module may be an input/output interface, pins or circuitry, etc.; if a memory module is included, the memory module may be a memory module (e.g., a register, a cache, etc.) within the chip, or may be a memory module external to the chip (e.g., a read-only memory, a random access memory, etc.).
The embodiment of the application also provides a storage device, which comprises: a storage controller and a storage medium coupled to the storage controller; the storage controller is configured to: selectively configuring a first storage unit in the storage medium into a safe storage area or a non-safe storage area according to the current PE erasing times of the first storage unit and a preset PE threshold value, wherein the PE threshold value is determined according to the operation error rate of each storage unit in the storage medium; the non-safety storage area is used for storing first data, the service fault-tolerance rate corresponding to the first data is larger than or equal to a preset non-critical data error rate threshold, the safety storage area is used for storing second data or the first data, and the service fault-tolerance rate corresponding to the second data is smaller than the non-critical data error rate threshold.
In one possible implementation, the PE threshold is greater than or equal to a PE capability base value; the PE capability basic value is the PE times when the operation error rate of each storage unit in the storage medium reaches the product reference error tolerance of the storage device, and the product reference error tolerance is smaller than or equal to the service error tolerance of the second data.
In one possible implementation, the memory controller is further configured to: receiving a writing instruction, wherein the writing instruction comprises data to be written and a service type of the data to be written; determining the data to be written as the first data or the second data according to the service type of the data to be written; storing the data to be written into a storage unit configured as an unsafe storage area in the storage medium or a storage unit configured as a safe storage area in the storage medium when the data to be written into is the first data; and when the data to be written is the second data, storing the data to be written into a storage unit which is configured as a safe storage area in the storage medium.
In one possible implementation, the storage controller is specifically configured to: when the service type of the data to be written belongs to the service type of the first data or the service type of the data to be written does not belong to the service type of the second data, determining that the data to be written is the first data; and/or determining that the data to be written is the second data when the service type of the data to be written belongs to the service type of the second data or the service type of the data to be written does not belong to the service type of the first data; the service type of the first data comprises any one of pictures, videos and audios; the service type of the second data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
In one possible implementation, the memory controller is further configured to: receiving a write instruction, wherein the write instruction comprises data to be written and a storage address of the data to be written; storing the data to be written into a storage unit pointed by the storage address; when the storage address belongs to the unsafe logic address section, the storage unit pointed by the storage address is a storage unit configured as an unsafe storage area in the storage medium; and when the storage address belongs to the safe logic address section, the storage unit pointed by the storage address is a storage unit configured as a safe storage area in the storage medium.
In one possible implementation, the memory controller is further configured to: receiving a partition configuration instruction, wherein the partition configuration instruction comprises the non-secure logical address section and the secure logical address section; allocating a first logical address to the first storage unit; wherein the first logical address belongs to the non-secure logical address section when the first storage unit is configured as a non-secure storage area and the first logical address belongs to the secure logical address section when the first storage unit is configured as a secure storage area.
In one possible implementation, the memory controller is further configured to: receiving a read instruction sent by a host, wherein the read instruction comprises a second logic address, and the second logic address points to a second storage unit; verifying the data read from the second storage unit; when the verification result is wrong and the second storage unit is configured as a non-secure storage area, sending a read instruction response to the host; wherein the read instruction response includes data read from the second memory location.
In one possible implementation, any storage unit in the storage medium is one or more blocks; or,
any storage unit in the storage medium is one or more granules, wherein any granule in the one or more granules comprises at least two blocks, the PE number of any granule is the maximum value of the PE number of each block in the at least two blocks, or the PE number of any granule is the average value of the PE numbers of each block in the at least two blocks.
The processor mentioned in any of the above may be a general purpose central processing unit (Central Processing Unit, CPU for short), a microprocessor, an application-specific integrated circuit (ASIC for short), or one or more integrated circuits for controlling the execution of the programs of the spatial multiplexing method of the above aspects.
In yet another aspect, a computer-readable storage medium having instructions stored therein that are executable by one or more processors on a processing circuit is provided. Which when run on a computer causes the computer to perform the method in the previous embodiments.
In yet another aspect, a computer program product containing instructions is provided which, when run on a computer, cause the computer to perform the method in the preceding embodiments.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions in accordance with the present application are produced in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital subscriber line), or wireless (e.g., infrared, wireless, microwave, etc.). The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid State Disk), etc.

Claims (17)

  1. A memory device, comprising:
    a storage controller and a storage medium coupled to the storage controller;
    the storage controller is configured to:
    selectively configuring a first storage unit in the storage medium into a safe storage area or a non-safe storage area according to the current PE erasing times of the first storage unit and a preset PE threshold value, wherein the PE threshold value is determined according to the operation error rate of each storage unit in the storage medium;
    the non-safety storage area is used for storing first data, the service fault-tolerance rate corresponding to the first data is larger than or equal to a preset non-critical data error rate threshold, the safety storage area is used for storing second data or the first data, and the service fault-tolerance rate corresponding to the second data is smaller than the non-critical data error rate threshold.
  2. The storage device of claim 1, wherein the PE threshold is greater than or equal to a PE capability base value;
    the PE capability basic value is the PE times when the operation error rate of each storage unit in the storage medium reaches the product reference error tolerance of the storage device, and the product reference error tolerance is smaller than or equal to the service error tolerance of the second data.
  3. The storage device of claim 1 or 2, wherein the storage controller is further configured to:
    receiving a writing instruction, wherein the writing instruction comprises data to be written and a service type of the data to be written;
    determining the data to be written as the first data or the second data according to the service type of the data to be written;
    storing the data to be written into a storage unit configured as an unsafe storage area in the storage medium or a storage unit configured as a safe storage area in the storage medium when the data to be written into is the first data;
    and when the data to be written is the second data, storing the data to be written into a storage unit which is configured as a safe storage area in the storage medium.
  4. A storage device according to claim 3, wherein the storage controller is specifically configured to:
    when the service type of the data to be written belongs to the service type of the first data or the service type of the data to be written does not belong to the service type of the second data, determining that the data to be written is the first data; and/or the number of the groups of groups,
    When the service type of the data to be written belongs to the service type of the second data or the service type of the data to be written does not belong to the service type of the first data, determining that the data to be written is the second data;
    the service type of the first data comprises any one of pictures, videos and audios; the service type of the second data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
  5. The storage device of claim 1 or 2, wherein the storage controller is further configured to:
    receiving a write instruction, wherein the write instruction comprises data to be written and a storage address of the data to be written;
    storing the data to be written into a storage unit pointed by the storage address;
    when the storage address belongs to the unsafe logic address section, the storage unit pointed by the storage address is a storage unit configured as a unsafe storage area in the storage medium; and when the storage address belongs to the safe logic address section, the storage unit pointed by the storage address is a storage unit configured as a safe storage area in the storage medium.
  6. The storage device of claim 5, wherein the storage controller is further to:
    receiving a partition configuration instruction, wherein the partition configuration instruction comprises the non-secure logical address section and the secure logical address section;
    allocating a first logical address to the first storage unit; wherein the first logical address belongs to the non-secure logical address section when the first storage unit is configured as a non-secure storage area and the first logical address belongs to the secure logical address section when the first storage unit is configured as a secure storage area.
  7. The memory device of any of claims 1-6, wherein the memory controller is further to:
    receiving a read instruction sent by a host, wherein the read instruction comprises a second logic address, and the second logic address points to a second storage unit;
    verifying the data read from the second storage unit;
    when the verification result is wrong and the second storage unit is configured as a non-secure storage area, sending a read instruction response to the host; wherein the read instruction response includes data read from the second memory location.
  8. The storage device according to any one of claims 1-8, wherein,
    any storage unit in the storage medium is one or more blocks; or,
    any storage unit in the storage medium is one or more granules, wherein any granule in the one or more granules comprises at least two blocks, the PE number of any granule is the maximum value of the PE number of each block in the at least two blocks, or the PE number of any granule is the average value of the PE numbers of each block in the at least two blocks.
  9. A method of data access, the method comprising:
    selectively configuring a first storage unit in a storage medium of a storage device into a safe storage area or a non-safe storage area according to the current erasing PE times of the first storage unit and a preset PE threshold value, wherein the PE threshold value is determined according to the operation error rate of each storage unit in the storage medium;
    the non-safety storage area is used for storing first data, the service fault-tolerance rate corresponding to the first data is larger than or equal to a preset non-critical data error rate threshold, the safety storage area is used for storing second data or the first data, and the service fault-tolerance rate corresponding to the second data is smaller than the non-critical data error rate threshold.
  10. The method of claim 9, wherein the PE threshold is greater than or equal to a PE capability value;
    and the PE capability value is the PE times when the operation error rate of each storage unit in the storage device reaches the reference error tolerance of the storage device, and the reference error tolerance is smaller than or equal to the service error tolerance of the second data.
  11. The method according to claim 9 or 10, characterized in that the method further comprises:
    receiving, by the memory controller, a write instruction; the writing instruction comprises data to be written and a service type of the data to be written;
    determining, by the storage controller, whether the data to be written is the first data or the second data according to the service type of the data to be written;
    storing the data to be written into a storage unit configured as an unsafe storage area in the storage medium or a storage unit configured as a safe storage area in the storage medium when the data to be written into is the first data;
    and when the data to be written is the second data, storing the data to be written into a storage unit which is configured as a safe storage area in the storage medium.
  12. The method according to claim 11, wherein the determining the data to be written as the first data or the second data according to the service type of the data to be written includes:
    when the service type of the data to be written belongs to the service type of the first data or the service type of the data to be written does not belong to the service type of the second data, determining that the data to be written is the first data; and/or the number of the groups of groups,
    when the service type of the data to be written belongs to the service type of the second data or the service type of the data to be written does not belong to the service type of the first data, determining that the data to be written is the second data;
    the service type of the first data comprises any one of pictures, videos and audios; the service type of the second data comprises any one of metadata, database data, virtual desktop infrastructure data and content distribution network data.
  13. The method according to claim 9 or 10, characterized in that the method further comprises:
    receiving a write instruction, wherein the write instruction comprises data to be written and a storage address of the data to be written;
    Storing the data to be written into a storage unit pointed by the storage address;
    when the storage address belongs to the unsafe logic address section, the storage unit pointed by the storage address is a storage unit configured as an unsafe storage area in the storage medium; and when the storage address belongs to the safe logic address section, the storage unit pointed by the storage address is a storage unit configured as a safe storage area in the storage medium.
  14. The method of claim 13, wherein prior to selectively configuring a first storage unit in a storage medium coupled to the storage controller as a secure storage area or a non-secure storage area based on a current number of PE erasures for the first storage unit and a preset PE threshold, the method further comprises:
    receiving a partition configuration instruction, wherein the partition configuration instruction comprises the non-secure logical address section and the secure logical address section;
    allocating a first logical address to the first storage unit; wherein the first logical address belongs to the non-secure logical address section when the first storage unit is configured as a non-secure storage area and the first logical address belongs to the secure logical address section when the first storage unit is configured as a secure storage area.
  15. The method according to any one of claims 9-14, further comprising:
    receiving a read instruction sent by a host, wherein the read instruction comprises a second logic address, and the second logic address points to a second storage unit;
    verifying the data read from the second storage unit;
    when the verification result is wrong and the second storage unit is configured as a non-secure storage area, sending a read instruction response to the host; wherein the read instruction response includes data read from the second memory location.
  16. The method according to any one of claims 9 to 15, wherein,
    any storage unit in the storage device is a block in the storage medium; or,
    any storage unit in the storage device is a granule in the storage medium, where any granule includes at least two blocks, the PE number of any granule is the maximum value of the PE number of each block in the at least two blocks, or the PE number of any granule is the average value of the PE number of each block in the at least two blocks.
  17. A data access device, comprising: the processing module and the storage module;
    The memory module is configured to store instructions and data to cause the processing module to perform the method of any of claims 9-16.
CN202180088017.5A 2021-05-31 2021-05-31 Data access method, memory controller and memory device Pending CN116917873A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/097446 WO2022252063A1 (en) 2021-05-31 2021-05-31 Data access method, storage controller and storage device

Publications (1)

Publication Number Publication Date
CN116917873A true CN116917873A (en) 2023-10-20

Family

ID=84322626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180088017.5A Pending CN116917873A (en) 2021-05-31 2021-05-31 Data access method, memory controller and memory device

Country Status (2)

Country Link
CN (1) CN116917873A (en)
WO (1) WO2022252063A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149085B (en) * 2023-09-07 2024-03-15 武汉麓谷科技有限公司 ZNS solid state disk-based rapid addressing method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063874B2 (en) * 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
CN103984509B (en) * 2014-06-11 2019-02-12 上海新储集成电路有限公司 Isomery NAND type solid state hard disk and the method for improving its performance
CN109164975A (en) * 2018-06-28 2019-01-08 华为技术有限公司 A kind of method and solid state hard disk writing data into solid state hard disk
CN110347335B (en) * 2019-07-30 2022-12-13 河南文正电子数据处理有限公司 Solid state disk data storage method and device

Also Published As

Publication number Publication date
WO2022252063A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
US11243706B2 (en) Fragment management method and fragment management apparatus
KR101564569B1 (en) Higher-level redundancy information computation
KR101912596B1 (en) Non-volatile memory program failure recovery via redundant arrays
US9977734B2 (en) Information processing device, non-transitory computer readable recording medium, and information processing system
KR102155191B1 (en) Management of and region selection for writes to non-volatile memory
US8832371B2 (en) Storage system with multiple flash memory packages and data control method therefor
KR102101650B1 (en) Mixed granularity higher-level redundancy for non-volatile memory
CN108628541B (en) File storage method, device and storage system
KR20130114681A (en) Dynamic higher-level redundancy mode management with independent silicon elements
CN111475438B (en) IO request processing method and device for providing quality of service
US11150990B2 (en) Method, apparatus and computer readable medium for managing a plurality of disks
CN112513804B (en) Data processing method and device
US9646721B1 (en) Solid state drive bad block management
US10564862B2 (en) Wear leveling method, memory control circuit unit and memory storage apparatus
CN108491290B (en) Data writing method and device
CN113396566A (en) Resource allocation based on comprehensive I/O monitoring in distributed storage system
CN115480707A (en) Data storage method and device
CN116917873A (en) Data access method, memory controller and memory device
US20210096772A1 (en) Apparatus and method for providing multi-stream operation in memory system
US11934264B2 (en) ECC parity biasing for Key-Value data storage devices
US20220391318A1 (en) Storage device and operating method thereof
CN108108118B (en) Data writing method and storage controller
US20210373785A1 (en) Data storage device with adaptive object storage capabilities
US10922242B2 (en) Adaptable logical to physical tables for multiple sector pattern support
US11086775B2 (en) Information processing device, non-transitory computer readable recording medium, and information processing system

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