CN111459413A - Method and device for improving SSD performance, computer equipment and storage medium - Google Patents

Method and device for improving SSD performance, computer equipment and storage medium Download PDF

Info

Publication number
CN111459413A
CN111459413A CN202010242300.6A CN202010242300A CN111459413A CN 111459413 A CN111459413 A CN 111459413A CN 202010242300 A CN202010242300 A CN 202010242300A CN 111459413 A CN111459413 A CN 111459413A
Authority
CN
China
Prior art keywords
voltage threshold
data
reading
vth
ssd
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.)
Granted
Application number
CN202010242300.6A
Other languages
Chinese (zh)
Other versions
CN111459413B (en
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.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System 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 Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN202010242300.6A priority Critical patent/CN111459413B/en
Publication of CN111459413A publication Critical patent/CN111459413A/en
Application granted granted Critical
Publication of CN111459413B publication Critical patent/CN111459413B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

The invention relates to a method and a device for improving SSD performance, computer equipment and a storage medium, wherein the method comprises the following steps: acquiring a voltage threshold table, wherein the voltage threshold table records a voltage threshold Vth when all data blocks of the SSD read data; pre-reading all data blocks at regular intervals according to a voltage threshold Vth recorded on a voltage threshold table, dynamically adjusting the voltage threshold Vth of the data blocks, and updating the adjusted voltage threshold Vth into the voltage threshold table; acquiring a data reading instruction of a host, wherein the data reading instruction comprises target data block information of data to be read; acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information; and reading data according to the acquired target voltage threshold Vth. The method and the device can successfully read the corresponding voltage threshold stored in the voltage threshold table at one time, reduce the data reading times, reduce the SSD command response delay and improve the IO performance of the SSD.

Description

Method and device for improving SSD performance, computer equipment and storage medium
Technical Field
The present invention relates to the field of SSD, and more particularly, to a method, an apparatus, a computer device and a storage medium for improving SSD performance.
Background
SSD (Solid State Disk), as a new type of storage medium, uses NAND (flash memory) particles as data storage, and has the greatest advantage of high read/write performance compared to conventional HDD (Hard Disk Drive).
With the upgrading of NAND technology, from the initial use of S L C (Single-L ev Cell, Single-layer Cell) to the present Q L C (Quad-L ev Cell, or called 4bit M L C), Q L C has advantages over S L C in large capacity and low cost, but the disadvantage is also obvious, the bit error rate of Q L C NAND is higher than that of S L C, the NAND has many Cell unit error bit numbers after disturb or retention, when data is read again, the correct data can be read by reading again for many times, which may cause the IO performance of SSD to be degraded.
As shown in fig. 1-3, after data is written into a NAND for a period of time, due to the characteristics of the NAND, a NAND internal cell changes with Disturb or Retention, and if data is read with a default Vth (voltage threshold), the read data is not correct, and Vth needs to be adjusted (added or subtracted by Δ th) many times, and then the NAND data is read again until the data is correctly obtained, which may cause an increase in command response delay of the SSD and a decrease in IO performance.
Disclosure of Invention
The present invention is directed to overcome the defects of the prior art, and provides a method, an apparatus, a computer device and a storage medium for improving SSD performance.
In order to achieve the purpose, the invention adopts the following technical scheme:
in a first aspect, the present invention provides a method for improving SSD performance, comprising the steps of:
acquiring a voltage threshold table, wherein the voltage threshold table records voltage thresholds Vth when all data blocks of the SSD read data;
pre-reading all data blocks at regular intervals according to a voltage threshold value Vth recorded on a voltage threshold value table, dynamically adjusting the voltage threshold value Vth of the data blocks, and updating the adjusted voltage threshold value Vth into the voltage threshold value table;
acquiring a data reading instruction of a host, wherein the data reading instruction comprises target data block information of data to be read;
acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information;
and reading data according to the acquired target voltage threshold Vth.
In a second aspect, the present invention provides an apparatus for improving SSD performance, including:
the table acquisition unit is used for acquiring a voltage threshold table, and the voltage threshold table records voltage thresholds Vth when all data blocks of the SSD read data;
the pre-reading adjusting unit is used for pre-reading all the data blocks at regular intervals according to the voltage threshold Vth recorded on the voltage threshold table, dynamically adjusting the voltage threshold Vth of the data blocks and updating the adjusted voltage threshold Vth into the voltage threshold table;
the instruction acquisition unit is used for acquiring a data reading instruction of a host, wherein the data reading instruction comprises target data block information of data to be read;
the target acquisition unit is used for acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information;
and the data reading unit is used for reading data according to the acquired target voltage threshold Vth.
In a third aspect, the present invention provides a computer device, where the computer device includes a memory and a processor, where the memory stores a computer program thereon, and the processor implements the method for improving SSD performance as described above when executing the computer program.
In a fourth aspect, the present invention provides a storage medium storing a computer program, which when executed by a processor, can implement the method for improving SSD performance as described above.
Compared with the prior art, the invention has the beneficial effects that: by periodically pre-reading the data of all the data blocks in the SSD, dynamically adjusting the voltage threshold Vth of the data blocks during pre-reading and updating the voltage threshold Vth into the voltage threshold table, when a host issues a reading instruction to read the data, the host can read correct data at one time by using the corresponding voltage threshold Vth stored in the voltage threshold table, so that the data reading times are reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
The invention is further described below with reference to the accompanying drawings and specific embodiments.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 is a diagram illustrating distribution of SSD default voltage threshold Vth;
FIG. 2 is a schematic diagram of voltage threshold Vth distribution after SSD passes Disturb;
FIG. 3 is a schematic diagram of voltage threshold Vth distribution after Retention of an SSD;
fig. 4 is a schematic flowchart of a method for improving SSD performance according to an embodiment of the invention;
FIG. 5 is a sub-flow diagram of a method for improving SSD performance according to an embodiment of the present invention;
FIG. 6 is a flowchart illustrating a method for improving SSD performance according to another embodiment of the present invention;
FIG. 7 is a schematic block diagram of an apparatus for improving SSD performance according to an embodiment of the present invention;
FIG. 8 is a schematic block diagram of a pre-read adjustment unit of an apparatus for improving SSD performance according to an embodiment of the present invention;
FIG. 9 is a schematic block diagram of an apparatus for improving SSD performance according to another embodiment of the present invention;
FIG. 10 is a schematic block diagram of a computer device provided by an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It will be understood that the terms "comprises" and/or "comprising," when used in this specification and the appended claims, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It is also to be understood that the terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in the specification of the present invention and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
It should be further understood that the term "and/or" as used in this specification and the appended claims refers to and includes any and all possible combinations of one or more of the associated listed items.
Fig. 4 is a flowchart illustrating a method for improving SSD performance according to an embodiment of the present invention. As shown in fig. 4, the method includes the following steps S110 to S150.
S110, a voltage threshold table is obtained, and the voltage threshold table records voltage thresholds Vth when all data blocks of the SSD read data.
After data is written into the NAND for a period of time, due to the characteristics of the NAND, the NAND internal cell changes with Disturb or Retention, as shown in fig. 2 and 3, if the data is read by using the default voltage threshold Vth (as shown in fig. 1) at this time, the data read is not correct, the voltage threshold Vth needs to be adjusted multiple times (for example, Δ th is added or subtracted) in the reading process, and then the NAND data is read again until the data is correctly obtained, which may cause the command response delay of the SSD to increase, and the IO performance to decrease.
In this embodiment, the voltage threshold Vth when data is read from all data blocks of the SSD is recorded in the voltage threshold table, and after the voltage threshold table is obtained, data is further read according to the real-time voltage threshold Vth recorded in the voltage threshold table, so that data can be read at one time, the number of data reads is reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
And S120, pre-reading all the data blocks at regular intervals according to the voltage threshold Vth recorded on the voltage threshold table, dynamically adjusting the voltage threshold Vth of the data blocks, and updating the adjusted voltage threshold Vth into the voltage threshold table.
In the present embodiment, as described above, after the SSD writes data into the NAND for a period of time, due to the characteristics of the NAND, the NAND internal cell changes with Disturb or Retention, and the voltage threshold Vth recorded in the voltage threshold table cannot be used for directly reading the data of the corresponding data block. According to the scheme, all data blocks of the SSD are pre-read in sequence at regular time, the voltage threshold Vth of a specific data block is adjusted in the pre-reading process, the latest voltage threshold Vth which can be used for reading the data of the data block is obtained and replaced by the original voltage threshold Vth, and therefore the voltage threshold Vth in the voltage threshold table is all the latest, the SSD can directly record the voltage threshold Vth in the voltage threshold table according to the reading command of a host, the data of the corresponding data block is read at one time, the SSD command response delay is reduced, and the performance of the SSD in the actual data reading process is improved.
Referring to FIG. 5, in one embodiment, step S120 includes steps S121-S124.
And S121, reading a voltage threshold value Vth in the voltage threshold value table.
In this embodiment, a voltage threshold Vth of all data blocks of the SSD is recorded in the voltage threshold table, and before updating the voltage threshold table, it is necessary to determine whether the voltage threshold Vth currently recorded in the voltage threshold table is available, so that it is necessary to obtain the voltage threshold table and read the voltage threshold Vth therein, and perform data pre-reading based on the voltage threshold Vth, so as to further determine whether the voltage threshold Vth is available.
S122, pre-reading the data on the corresponding data block according to the voltage threshold Vth, and judging whether the reading is successful.
In this embodiment, after the voltage threshold Vth in the voltage threshold table is periodically acquired, data pre-reading is performed on the corresponding data block according to the voltage threshold Vth, and in the pre-reading process, the pre-reading can be successfully performed only if the voltage threshold Vth meets the read voltage requirement of the data block, so that whether the current voltage threshold Vth is available can be further determined according to whether the pre-reading is successful, that is, the pre-reading result.
In one embodiment, step S122 is: and creating a voltage threshold automatic scanning task, and regularly pre-reading the data on each data block of the SSD by the voltage threshold automatic scanning task.
The method comprises the steps of creating a voltage threshold automatic scanning task in the SSD, setting interval execution time for the voltage threshold automatic scanning task, operating the voltage threshold automatic scanning task at intervals, automatically executing SSD data pre-reading according to a voltage threshold table, pre-reading data on each data block in sequence, and updating the voltage threshold table.
And S123, if the pre-reading is unsuccessful, adjusting the voltage threshold Vth of the corresponding data block, and re-executing the step of pre-reading the data on the corresponding data block according to the voltage threshold Vth.
And S124, if the pre-reading is successful, correspondingly updating the voltage threshold value Vth into a voltage threshold value table, and storing the associated data blocks.
In this embodiment, when the pre-reading is unsuccessful, the voltage threshold Vth meeting the current standard is too large or too small, an adjusted voltage threshold Vth is obtained by dynamically adjusting the voltage threshold Vth, that is, adding or subtracting Δ th, the data on the corresponding data block is pre-read by using the adjusted voltage threshold Vth until the pre-reading is successful, and the voltage threshold Vth corresponding to the pre-reading success is updated to the voltage threshold table for calling.
After the pre-reading is successful, the corresponding voltage threshold value Vth is updated to the voltage threshold value table to replace the original voltage threshold value Vth, so that the voltage threshold value Vth in the voltage threshold value table is guaranteed to be available at the latest, the SSD can directly record the voltage threshold value Vth in the voltage threshold value table according to a reading command of a host, data of a corresponding data block is read at one time, the SSD command response delay is reduced, and the performance of the SSD in actual data reading is improved.
S130, acquiring a data reading instruction of the host, wherein the data reading instruction comprises target data block information of the data to be read.
In this embodiment, the host issues a data reading instruction, the SSD obtains the raw data reading instruction, analyzes the data reading instruction, obtains target data block information of the data to be read, and further reads data stored in the target data block based on the target data block information.
S140, acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information.
In this embodiment, the voltage threshold Vth in the voltage threshold table is stored in association with the data block, and according to the target data block information, the target voltage threshold Vth corresponding to the target data block can be obtained, and based on the target voltage threshold Vth, data on the target data block can be read at a time, so that the SSD data reading performance and efficiency are improved.
And S150, reading data according to the acquired target voltage threshold Vth.
In this embodiment, the voltage threshold Vth in the voltage threshold table is all available at the latest, and the data of the corresponding data block can be directly read at one time by reading the data of the corresponding data block based on the obtained target voltage threshold Vth, so that the response delay of the SSD command is reduced, and the performance of the SSD when the data is actually read is improved.
According to the invention, the data of all the data blocks in the SSD are periodically pre-read, the voltage threshold of the data blocks is dynamically adjusted during pre-reading, and the data blocks are updated into the voltage threshold table, and when a host issues a reading instruction to read the data, the correct data can be read at one time by using the corresponding voltage threshold stored in the voltage threshold table, so that the data reading times are reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
Fig. 6 is a flowchart illustrating a method for improving SSD performance according to another embodiment of the invention. As shown in fig. 6, the method for improving SSD performance of this embodiment includes steps S210-S260. Steps S220 to S260 are similar to steps S110 to S150 in the above embodiments, and are not described herein again. The added step S210 in the present embodiment is explained in detail below.
S210, a voltage threshold table is newly established for the SSD, and the voltage threshold Vth when all data blocks of the SSD read data is recorded in the voltage threshold table.
In this embodiment, a voltage threshold table is newly established in the SSD, a voltage threshold Vth when all data blocks (blocks) of the SSD read data is recorded in the voltage threshold table, and when the voltage threshold Vth of a data block changes, the voltage threshold table is adjusted and updated in time, the most accurate voltage threshold Vth corresponding to the data block is written into the voltage threshold table, and when a subsequent host needs to read data block data, data reading can be performed according to the corresponding voltage threshold Vth in the voltage threshold table, so that accurate data can be read at one time, the number of data reading times is reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
Fig. 7 is a schematic block diagram of an apparatus for improving SSD performance according to an embodiment of the present invention. As shown in fig. 7, the present invention also provides a device for improving the performance of the SSD corresponding to the above method for improving the performance of the SSD. The device for improving the SSD performance comprises a unit for executing the method for improving the SSD performance, and can be configured in a desktop computer, a tablet computer, a portable computer and other terminals. Specifically, referring to fig. 7, the apparatus for improving SSD performance includes a table obtaining unit 10, a pre-read adjusting unit 20, an instruction obtaining unit 30, a target obtaining unit 40 and a data reading unit 50.
The table acquiring unit 10 is configured to acquire a voltage threshold table, where voltage thresholds Vth when data is read from all data blocks of the SSD are recorded in the voltage threshold table.
After data is written into a NAND for a period of time, due to the characteristics of the NAND, a NAND internal cell changes with Disturb or Retention, and if data is read by using a default voltage threshold Vth at this time, the read data is not correct, the voltage threshold Vth needs to be adjusted for multiple times (for example, Δ th is added or subtracted) in the reading process, and then the NAND data is read again until the data is obtained correctly, so that command response delay of the SSD is increased, and IO performance is reduced.
In this embodiment, the voltage threshold Vth when data is read from all data blocks of the SSD is recorded in the voltage threshold table, and after the voltage threshold table is obtained, data is further read according to the real-time voltage threshold Vth recorded in the voltage threshold table, so that data can be read at one time, the number of data reads is reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
And a pre-reading adjusting unit 20, configured to pre-read all the data blocks at regular intervals according to the voltage threshold Vth recorded in the voltage threshold table, dynamically adjust the voltage threshold Vth of the data block, and update the adjusted voltage threshold Vth into the voltage threshold table.
In the present embodiment, as described above, after the SSD writes data into the NAND for a period of time, due to the characteristics of the NAND, the NAND internal cell changes with Disturb or Retention, and the voltage threshold Vth recorded in the voltage threshold table cannot be used for directly reading the data of the corresponding data block. According to the scheme, all data blocks of the SSD are pre-read in sequence at regular time, the voltage threshold Vth of a specific data block is adjusted in the pre-reading process, the latest voltage threshold Vth which can be used for reading the data of the data block is obtained and replaced by the original voltage threshold Vth, and therefore the voltage threshold Vth in the voltage threshold table is all the latest, the SSD can directly record the voltage threshold Vth in the voltage threshold table according to the reading command of a host, the data of the corresponding data block is read at one time, the SSD command response delay is reduced, and the performance of the SSD in the actual data reading process is improved.
Referring to fig. 8, the pre-reading adjusting unit 20 includes a reading sub-unit 21, a pre-reading sub-unit 22, an adjusting sub-unit 23, and an updating sub-unit 24.
And a reading subunit 21 for reading the voltage threshold Vth in the voltage threshold table.
In this embodiment, a voltage threshold Vth of all data blocks of the SSD is recorded in the voltage threshold table, and before updating the voltage threshold table, it is necessary to determine whether the voltage threshold Vth currently recorded in the voltage threshold table is available, so that it is necessary to obtain the voltage threshold table and read the voltage threshold Vth therein, and perform data pre-reading based on the voltage threshold Vth, so as to further determine whether the voltage threshold Vth is available.
And the pre-reading subunit 22 is configured to pre-read data on the corresponding data block according to the voltage threshold Vth, and determine whether reading is successful.
In this embodiment, after the voltage threshold Vth in the voltage threshold table is periodically acquired, data pre-reading is performed on the corresponding data block according to the voltage threshold Vth, and in the pre-reading process, the pre-reading can be successfully performed only if the voltage threshold Vth meets the read voltage requirement of the data block, so that whether the current voltage threshold Vth is available can be further determined according to whether the pre-reading is successful, that is, the pre-reading result.
In one embodiment, the pre-reading subunit 22 includes a pre-reading module, and the pre-reading module is configured to create a voltage threshold auto-scan task, and pre-read data on each data block of the SSD periodically through the voltage threshold auto-scan task.
The method comprises the steps of creating a voltage threshold automatic scanning task in the SSD, setting interval execution time for the voltage threshold automatic scanning task, operating the voltage threshold automatic scanning task at intervals, automatically executing SSD data pre-reading according to a voltage threshold table, pre-reading data on each data block in sequence, and updating the voltage threshold table.
And the adjusting subunit 23 is configured to, if the pre-reading is unsuccessful, adjust the voltage threshold Vth of the corresponding data block, and re-perform pre-reading of data on the corresponding data block according to the voltage threshold Vth.
And the updating subunit 24 is configured to, if the pre-reading is successful, correspondingly update the voltage threshold Vth into the voltage threshold table, and store the voltage threshold in association with the data block.
In this embodiment, when the pre-reading is unsuccessful, the voltage threshold Vth meeting the current standard is too large or too small, an adjusted voltage threshold Vth is obtained by dynamically adjusting the voltage threshold Vth, that is, adding or subtracting Δ th, the data on the corresponding data block is pre-read by using the adjusted voltage threshold Vth until the pre-reading is successful, and the voltage threshold Vth corresponding to the pre-reading success is updated to the voltage threshold table for calling.
After the pre-reading is successful, the corresponding voltage threshold value Vth is updated to the voltage threshold value table to replace the original voltage threshold value Vth, so that the voltage threshold value Vth in the voltage threshold value table is guaranteed to be available at the latest, the SSD can directly record the voltage threshold value Vth in the voltage threshold value table according to a reading command of a host, data of a corresponding data block is read at one time, the SSD command response delay is reduced, and the performance of the SSD in actual data reading is improved.
The instruction obtaining unit 30 is configured to obtain a data reading instruction of the host, where the data reading instruction includes information of a target data block where data to be read is located.
In this embodiment, the host issues a data reading instruction, the SSD obtains the raw data reading instruction, analyzes the data reading instruction, obtains target data block information of the data to be read, and further reads data stored in the target data block based on the target data block information.
And the target acquisition unit 40 is used for acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information.
In this embodiment, the voltage threshold Vth in the voltage threshold table is stored in association with the data block, and according to the target data block information, the target voltage threshold Vth corresponding to the target data block can be obtained, and based on the target voltage threshold Vth, data on the target data block can be read at a time, so that the SSD data reading performance and efficiency are improved.
And a data reading unit 50, configured to read data according to the acquired target voltage threshold Vth.
In this embodiment, the voltage threshold Vth in the voltage threshold table is all available at the latest, and the data of the corresponding data block can be directly read at one time by reading the data of the corresponding data block based on the obtained target voltage threshold Vth, so that the response delay of the SSD command is reduced, and the performance of the SSD when the data is actually read is improved.
According to the invention, the data of all the data blocks in the SSD are periodically pre-read, the voltage threshold of the data blocks is dynamically adjusted during pre-reading, and the data blocks are updated into the voltage threshold table, and when a host issues a reading instruction to read the data, the correct data can be read at one time by using the corresponding voltage threshold stored in the voltage threshold table, so that the data reading times are reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
Fig. 9 is a schematic block diagram of an apparatus for improving SSD performance according to another embodiment of the invention. As shown in fig. 9, the device for improving SSD performance of this embodiment is added with a table creation unit 60 on the basis of the above embodiment.
The table creating unit 60 is configured to create a voltage threshold table for the SSD, and record the voltage threshold Vth when data is read from all data blocks of the SSD in the voltage threshold table.
In this embodiment, a voltage threshold table is newly established in the SSD, a voltage threshold Vth when all data blocks (blocks) of the SSD read data is recorded in the voltage threshold table, and when the voltage threshold Vth of a data block changes, the voltage threshold table is adjusted and updated in time, the most accurate voltage threshold Vth corresponding to the data block is written into the voltage threshold table, and when a subsequent host needs to read data block data, data reading can be performed according to the corresponding voltage threshold Vth in the voltage threshold table, so that accurate data can be read at one time, the number of data reading times is reduced, the SSD command response delay is reduced, and the IO performance of the SSD is improved.
It should be noted that, as can be clearly understood by those skilled in the art, the specific implementation processes of the above-mentioned apparatus for improving SSD performance and each unit may refer to the corresponding descriptions in the foregoing method embodiments, and for convenience and brevity of description, no further description is provided herein.
Referring to fig. 10, fig. 10 is a schematic block diagram of a computer device according to an embodiment of the present application. The computer device 500 may be a terminal or a server, where the terminal may be an electronic device with a communication function, such as a smart phone, a tablet computer, a notebook computer, a desktop computer, a personal digital assistant, and a wearable device. The server may be an independent server or a server cluster composed of a plurality of servers.
Referring to fig. 10, the computer device 500 includes a processor 502, memory, and a network interface 505 connected by a system bus 501, where the memory may include a non-volatile storage medium 503 and an internal memory 504.
The non-volatile storage medium 503 may store an operating system 5031 and a computer program 5032. The computer programs 5032 include program instructions that, when executed, cause the processor 502 to perform a method of improving SSD performance.
The processor 502 is used to provide computing and control capabilities to support the operation of the overall computer device 500.
The internal memory 504 provides an environment for the operation of the computer program 5032 in the non-volatile storage medium 503, and when the computer program 5032 is executed by the processor 502, the processor 502 can be enabled to perform a method for improving the performance of the SSD.
The network interface 505 is used for network communication with other devices. Those skilled in the art will appreciate that the configuration shown in fig. 10 is a block diagram of only a portion of the configuration relevant to the present teachings and is not intended to limit the computing device 500 to which the present teachings may be applied, and that a particular computing device 500 may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
Wherein the processor 502 is adapted to run a computer program 5032 stored in the memory.
It should be understood that, in the embodiment of the present Application, the Processor 502 may be a Central Processing Unit (CPU), and the Processor 502 may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate arrays (FPGAs) or other Programmable logic devices, discrete Gate or transistor logic devices, discrete hardware components, and the like. Wherein a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
It will be understood by those skilled in the art that all or part of the flow of the method implementing the above embodiments may be implemented by a computer program instructing associated hardware. The computer program includes program instructions, and the computer program may be stored in a storage medium, which is a computer-readable storage medium. The program instructions are executed by at least one processor in the computer system to implement the flow steps of the embodiments of the method described above.
Accordingly, the present invention also provides a storage medium. The storage medium may be a computer-readable storage medium.
The storage medium may be a usb disk, a removable hard disk, a Read-Only Memory (ROM), a magnetic disk, or an optical disk, which can store various computer readable storage media.
Those of ordinary skill in the art will appreciate that the elements and algorithm steps of the examples described in connection with the embodiments disclosed herein may be embodied in electronic hardware, computer software, or combinations of both, and that the components and steps of the examples have been described in a functional general in the foregoing description for the purpose of illustrating clearly the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
In the embodiments provided in the present invention, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative. For example, the division of each unit is only one logic function division, and there may be another division manner in actual implementation. For example, various elements or components may be combined or may be integrated into another system, or some features may be omitted, or not implemented.
The steps in the method of the embodiment of the invention can be sequentially adjusted, combined and deleted according to actual needs. The units in the device of the embodiment of the invention can be merged, divided and deleted according to actual needs. In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a storage medium. Based on such understanding, the technical solution of the present invention essentially or partially contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a terminal, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention.
While the invention has been described with reference to specific embodiments, the invention is not limited thereto, and various equivalent modifications and substitutions can be easily made by those skilled in the art within the technical scope of the invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (10)

1. A method for improving SSD performance, comprising the steps of:
acquiring a voltage threshold table, wherein the voltage threshold table records voltage thresholds Vth when all data blocks of the SSD read data;
pre-reading all data blocks at regular intervals according to a voltage threshold value Vth recorded on a voltage threshold value table, dynamically adjusting the voltage threshold value Vth of the data blocks, and updating the adjusted voltage threshold value Vth into the voltage threshold value table;
acquiring a data reading instruction of a host, wherein the data reading instruction comprises target data block information of data to be read;
acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information;
and reading data according to the acquired target voltage threshold Vth.
2. The method of claim 1, wherein the step of pre-reading all data blocks at regular intervals according to the voltage threshold Vth recorded in the voltage threshold table, dynamically adjusting the voltage threshold Vth of the data blocks, and updating the adjusted voltage threshold Vth into the voltage threshold table comprises:
reading a voltage threshold value Vth in a voltage threshold value table;
pre-reading data on a corresponding data block according to the voltage threshold Vth, and judging whether reading is successful or not;
if the pre-reading is unsuccessful, adjusting a voltage threshold value Vth of the corresponding data block, and re-executing the step of pre-reading the data on the corresponding data block according to the voltage threshold value Vth;
and if the pre-reading is successful, correspondingly updating the voltage threshold value Vth into a voltage threshold value table, and storing the associated data block.
3. The method of claim 1, wherein the step of pre-reading data on a corresponding data block according to a voltage threshold Vth comprises:
and creating a voltage threshold automatic scanning task, and regularly pre-reading the data on each data block of the SSD by the voltage threshold automatic scanning task.
4. The method of improving SSD performance of claim 1, wherein the step of obtaining a table of voltage thresholds is preceded by the step of,
a voltage threshold table is newly established for the SSD, and the voltage threshold Vth when all data blocks of the SSD read data is recorded in the voltage threshold table.
5. An apparatus for improving SSD performance, comprising:
the table acquisition unit is used for acquiring a voltage threshold table, and the voltage threshold table records voltage thresholds Vth when all data blocks of the SSD read data;
the pre-reading adjusting unit is used for pre-reading all the data blocks at regular intervals according to the voltage threshold Vth recorded on the voltage threshold table, dynamically adjusting the voltage threshold Vth of the data blocks and updating the adjusted voltage threshold Vth into the voltage threshold table;
the instruction acquisition unit is used for acquiring a data reading instruction of a host, wherein the data reading instruction comprises target data block information of data to be read;
the target acquisition unit is used for acquiring a target voltage threshold value Vth corresponding to the target data block from the voltage threshold value table according to the target data block information;
and the data reading unit is used for reading data according to the acquired target voltage threshold Vth.
6. The apparatus of claim 5, wherein the pre-read adjustment unit comprises a read subunit, a pre-read subunit, an adjustment subunit, and an update subunit;
the reading subunit is used for reading a voltage threshold value Vth in a voltage threshold value table;
the pre-reading subunit is used for pre-reading the data on the corresponding data block according to the voltage threshold Vth and judging whether the reading is successful;
the adjusting subunit is configured to adjust a voltage threshold Vth of the corresponding data block if the pre-reading is unsuccessful, and re-perform pre-reading of data on the corresponding data block according to the voltage threshold Vth;
and the updating subunit is used for correspondingly updating the voltage threshold value Vth into the voltage threshold value table and storing the voltage threshold value Vth in association with the data block if the pre-reading is successful.
7. The apparatus of claim 6, wherein the pre-reading subunit comprises a pre-reading module, and the pre-reading module is configured to create a voltage threshold auto-scan task, and periodically pre-read data on each data block of the SSD through the voltage threshold auto-scan task.
8. The apparatus of claim 5, further comprising a table creation unit configured to create a voltage threshold table for the SSD, and record the voltage threshold Vth of all data blocks of the SSD during data reading in the voltage threshold table.
9. A computer device comprising a memory having stored thereon a computer program and a processor that, when executing the computer program, implements a method of improving SSD performance as recited in any one of claims 1 to 4.
10. A storage medium storing a computer program which, when executed by a processor, implements a method of improving SSD performance as recited in any of claims 1-4.
CN202010242300.6A 2020-03-31 2020-03-31 Method, device, computer equipment and storage medium for improving SSD performance Active CN111459413B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010242300.6A CN111459413B (en) 2020-03-31 2020-03-31 Method, device, computer equipment and storage medium for improving SSD performance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010242300.6A CN111459413B (en) 2020-03-31 2020-03-31 Method, device, computer equipment and storage medium for improving SSD performance

Publications (2)

Publication Number Publication Date
CN111459413A true CN111459413A (en) 2020-07-28
CN111459413B CN111459413B (en) 2024-04-02

Family

ID=71681641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010242300.6A Active CN111459413B (en) 2020-03-31 2020-03-31 Method, device, computer equipment and storage medium for improving SSD performance

Country Status (1)

Country Link
CN (1) CN111459413B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022134712A1 (en) * 2020-12-23 2022-06-30 深圳大普微电子科技有限公司 Method for managing threshold voltage, and method for reading nand flash data
CN115793991A (en) * 2023-01-20 2023-03-14 苏州浪潮智能科技有限公司 Data reading method and device, electronic equipment and readable storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106448737A (en) * 2016-09-30 2017-02-22 北京忆芯科技有限公司 Flash memory data reading method and device and solid disk drive
US20180246782A1 (en) * 2015-11-30 2018-08-30 Huawei Technologies Co., Ltd. Flash Memory Error Correction Method and Apparatus
US20190012228A1 (en) * 2017-07-07 2019-01-10 Epostar Electronics (Bvi) Corporation Data reading method and storage controller
CN109582228A (en) * 2018-11-15 2019-04-05 深圳忆联信息系统有限公司 The hardware-accelerated method and device for reading to retry automatically based on nand flash memory controller
CN110471624A (en) * 2019-08-07 2019-11-19 深圳忆联信息系统有限公司 SSD reads accelerated method, device, computer equipment and the storage medium retried
US20200005862A1 (en) * 2018-06-29 2020-01-02 Micron Technology, Inc. Misplacement mitigation algorithm

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180246782A1 (en) * 2015-11-30 2018-08-30 Huawei Technologies Co., Ltd. Flash Memory Error Correction Method and Apparatus
CN106448737A (en) * 2016-09-30 2017-02-22 北京忆芯科技有限公司 Flash memory data reading method and device and solid disk drive
US20190012228A1 (en) * 2017-07-07 2019-01-10 Epostar Electronics (Bvi) Corporation Data reading method and storage controller
US20200005862A1 (en) * 2018-06-29 2020-01-02 Micron Technology, Inc. Misplacement mitigation algorithm
CN109582228A (en) * 2018-11-15 2019-04-05 深圳忆联信息系统有限公司 The hardware-accelerated method and device for reading to retry automatically based on nand flash memory controller
CN110471624A (en) * 2019-08-07 2019-11-19 深圳忆联信息系统有限公司 SSD reads accelerated method, device, computer equipment and the storage medium retried

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022134712A1 (en) * 2020-12-23 2022-06-30 深圳大普微电子科技有限公司 Method for managing threshold voltage, and method for reading nand flash data
CN115793991A (en) * 2023-01-20 2023-03-14 苏州浪潮智能科技有限公司 Data reading method and device, electronic equipment and readable storage medium
CN115793991B (en) * 2023-01-20 2023-04-14 苏州浪潮智能科技有限公司 Data reading method and device, electronic equipment and readable storage medium

Also Published As

Publication number Publication date
CN111459413B (en) 2024-04-02

Similar Documents

Publication Publication Date Title
CN111324303B (en) SSD garbage recycling method, SSD garbage recycling device, computer equipment and storage medium
CN111459413A (en) Method and device for improving SSD performance, computer equipment and storage medium
CN110377233B (en) SSD (solid State disk) reading performance optimization method and device, computer equipment and storage medium
JP2014089734A (en) Reducing write, and estimating and displaying residual life of nonvolatile memory
CN110362275B (en) Method for improving service quality of solid state disk and solid state disk
CN110825327A (en) SSD temperature control method and device, computer equipment and storage medium
CN110941395A (en) Dynamic random access memory, memory management method, system and storage medium
US9092310B2 (en) Host command based read disturb methodology
CN112466378A (en) Solid state disk operation error correction method and device and related components
CN111124314A (en) SSD performance improving method and device for mapping table dynamic loading, computer equipment and storage medium
CN110704084A (en) Method and device for dynamically allocating memory in firmware upgrade, computer equipment and storage medium
CN112114752A (en) Method and device for improving reliability of solid-state storage device, computer device and storage medium
CN113641309A (en) Weak block identification method and device of SSD, computer equipment and storage medium
CN113377179A (en) Method and device for reducing working temperature of solid state disk, computer equipment and medium
CN110993014B (en) Behavior test method and device of SSD in idle state, computer equipment and storage medium
CN111949460A (en) Method and device for testing D3-supported characteristic of solid state disk, computer equipment and storage medium
CN110825326A (en) Method and device for improving SSD random reading performance, computer equipment and storage medium
CN108984124B (en) Method and device for reducing write amplification, computer equipment and storage medium
CN113687796B (en) IO task processing method and device, computer equipment and storage medium
CN112000591B (en) SSD scanning method capable of designating logical block address, SSD scanning device, SSD scanning computer equipment and storage medium
US11443191B2 (en) Computing device and parameter synchronization method implemented by computing device
CN112130765B (en) EEPROM data reading and writing method and device
CN114816833B (en) Writing method, device and system of flash data
CN111913666A (en) Method and device compatible with Nand particles with different protocols, computer equipment and storage medium
CN110516479B (en) Data writing method and related device

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
GR01 Patent grant
GR01 Patent grant