CN111949557A - Data reading method and device and storage equipment - Google Patents

Data reading method and device and storage equipment Download PDF

Info

Publication number
CN111949557A
CN111949557A CN201910407063.1A CN201910407063A CN111949557A CN 111949557 A CN111949557 A CN 111949557A CN 201910407063 A CN201910407063 A CN 201910407063A CN 111949557 A CN111949557 A CN 111949557A
Authority
CN
China
Prior art keywords
read
length
data
predefined
read command
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
CN201910407063.1A
Other languages
Chinese (zh)
Other versions
CN111949557B (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.)
Beijing Zhaoyi Innovation Technology Co Ltd
Original Assignee
Beijing Zhaoyi Innovation Technology 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 Beijing Zhaoyi Innovation Technology Co Ltd filed Critical Beijing Zhaoyi Innovation Technology Co Ltd
Priority to CN201910407063.1A priority Critical patent/CN111949557B/en
Publication of CN111949557A publication Critical patent/CN111949557A/en
Application granted granted Critical
Publication of CN111949557B publication Critical patent/CN111949557B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Abstract

The invention discloses a data reading method and device and storage equipment. The method comprises the following steps: receiving a read command without a predefined length, acquiring a starting logical address contained in the read command without the predefined length, and determining the data length to be read by the read command without the predefined length according to the data length read by the read command without the predefined length N times before the read command without the predefined length; and N is a positive integer larger than 1, the conversion from the logical address to the physical address is carried out according to the determined data length which is read by the read command without the predefined length at present and the initial logical address, and the data is read according to the converted physical address. The technical scheme provided by the embodiment of the invention can reduce redundant address conversion time and improve the read access performance of the storage device.

Description

Data reading method and device and storage equipment
Technical Field
The embodiment of the invention relates to the technical field of storage equipment, in particular to a data reading method and device and storage equipment.
Background
The NAND flash memory device and the host can be connected through a plurality of interface protocols, wherein the emmc (embedded Multi Media card) is an embedded memory standard specification which is established by the MMC association and mainly aims at products such as mobile phones or tablet computers.
If the host is connected with the NAND flash storage device based on the eMMC protocol, the access to the NAND flash storage device has two modes of predefined and open-ended. In the case of an open-ended read command, the read command includes a start address of data to be read and a length of the data to be read, but the length of the data to be read included in the read command is usually much larger than the length of the data to be actually read. In the prior art, the number of logical addresses to be converted is usually determined according to the length of data to be read contained in a read command, and actually, data in all the logical address conversion physical addresses cannot be read, i.e. during the read operation, useless logical address-to-physical address conversion is performed without wasting time.
Disclosure of Invention
The invention provides a data reading method and device and a storage device, and aims to improve the read access performance of the storage device.
In a first aspect, an embodiment of the present invention provides a data reading method, where the method includes:
receiving a read command without a predefined length, and acquiring a starting logical address contained in the read command without the predefined length;
determining the data length to be read by the read command without the predefined length according to the data length read by the read command without the predefined length N times before the read command without the predefined length currently; n is a positive integer greater than 1;
converting the logical address into the physical address according to the determined data length to be read by the read command without the predefined length at present and the initial logical address;
and reading the data according to the converted physical address.
Optionally, determining the length of data to be read by the read command without the predefined length according to the length of data read by the read command without the predefined length N times before the current read command includes:
dividing the data length in the read command without the predefined length into a plurality of levels of preset gears;
and determining the data length to be read by the read command without the predefined length according to the preset gear at which the data length read by the read command without the predefined length N times before the read command without the predefined length currently exists.
Optionally, determining the length of data to be read by the read command without the predefined length according to the preset gear where the length of data read by the read command without the predefined length N times before the read command without the predefined length currently exists includes:
acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are located;
determining a preset gear with the maximum number of times in preset gears where the data length read by the read command with the length not defined in advance is located for N times as a read gear of the data length to be read by the read command with the length not defined in advance;
and determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
Optionally, determining the length of data to be read by the read command without the predefined length according to the preset gear where the length of data read by the read command without the predefined length N times before the read command without the predefined length currently exists includes:
acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are located;
determining a preset gear where the maximum upper limit data length value is located in preset gears where the data lengths read by the read commands without the predefined lengths for N times are located as a read gear where the data lengths to be read by the read commands without the predefined lengths are currently located;
and determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
Optionally, after reading the data according to the converted physical address, the method further includes:
if the stop command is not received, repeatedly executing the operation of converting the logical address into the physical address according to the estimated data length to be read in the current reading operation, and reading the data according to the converted physical address until the stop command is received;
and adding one to the last logic address converted last time as the initial logic address of the conversion operation from the logic address to the physical address each time the conversion from the logic address to the physical address is carried out.
In a second aspect, an embodiment of the present invention further provides a data reading apparatus, where the apparatus includes: the device comprises a read command receiving module, a data length determining module, an address converting module and a data reading module, wherein the length of the read command receiving module is not predefined;
the read command receiving module is used for receiving the read command without the predefined length and acquiring a starting logical address contained in the read command without the predefined length;
the data length determining module is used for determining the data length to be read by the read command without the predefined length according to the data length read by the read command without the predefined length for N times before the read command without the predefined length currently; n is a positive integer greater than 1;
the address conversion module is used for converting the logical address into the physical address according to the determined data length to be read by the read command without the predefined length at present and the initial logical address;
and the data reading module is used for reading data according to the converted physical address.
Optionally, the data length determining module includes a gear division sub-module and a data length determining sub-module:
the gear division submodule is used for dividing the data length in the read command without the predefined length into a plurality of levels of preset gears;
and the data length determining submodule is used for determining the data length to be read by the read command without the predefined length according to the preset gear where the data length read by the read command without the predefined length for N times before the read command without the predefined length currently exists.
Optionally, the data length determining submodule includes a first preset gear acquiring unit, a first read gear acquiring unit, and a first data length determining unit;
the first preset gear acquiring unit is used for acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are respectively located;
the first reading gear acquiring unit is used for determining a preset gear with the maximum number of times in preset gears where the data length read by the reading command with the length not defined in advance is located for N times as a reading gear with the data length to be read by the reading command with the length not defined in advance currently;
and the first data length determining unit is used for determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
Optionally, the data length determining submodule includes a second preset gear acquiring unit, a read gear acquiring unit, and a second data length determining unit;
the second preset gear acquiring unit is used for acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are respectively located;
the second reading gear acquiring unit is used for determining a preset gear where the maximum upper limit data length value in preset gears where the data length read by the reading command without the predefined length is located for N times as a reading gear where the data length to be read by the reading command without the predefined length is located currently;
and the second data length determining unit is used for determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
In a third aspect, an embodiment of the present invention further provides a storage device, where the storage device includes the data reading apparatus according to any embodiment of the present invention.
According to the data reading method provided by the embodiment of the invention, the length of the data to be read by the current read command without the predefined length is determined according to the length of the data to be read by the read command without the predefined length N times before the current read command without the predefined length, so that the length of the data to be read by the determined read command without the predefined length is as close as possible to the length of the data to be actually read, thereby reducing redundant address conversion time, solving the problem of poor read access performance caused by longer redundant address conversion time in the prior art, and realizing the effect of improving the read access performance of the storage device.
Drawings
Fig. 1 is a flowchart of a data reading method according to an embodiment of the present invention;
fig. 2 is a flowchart of a data reading method according to a second embodiment of the present invention;
fig. 3 is a block diagram of a data reading apparatus according to a third embodiment of the present invention.
Detailed Description
The present invention will be described in further detail with reference to the accompanying drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the invention and are not limiting of the invention. It should be further noted that, for the convenience of description, only some of the structures related to the present invention are shown in the drawings, not all of the structures.
Example one
Fig. 1 is a flowchart of a data reading method according to an embodiment of the present invention. The embodiment is applicable to a case where a storage device reads data, and the method may be executed by a data reading apparatus in the embodiment of the present invention, where the apparatus may be implemented in a software and/or hardware manner, and may be generally integrated in the storage device, and the method in the embodiment of the present invention specifically includes the following steps:
s110, receiving a read command without a predefined length, and acquiring a starting logical address contained in the read command without the predefined length.
The storage device can be a storage device based on a NAND flash, the storage device and a host communicate through an eMMC protocol, and the host has two modes of predefined and open-ended access to the NAND flash storage device. For open-ended read access, the host sends a read command without a predefined length to the NAND flash memory device, where the read command without the predefined length includes a start logical address and a length of data to be read, but since the NAND flash memory device cannot know in advance when a stop command sent by the host can be received to end a read operation, that is, the NAND flash memory device cannot accurately know in advance the length of data to be read, the length of the data to be read included in the read command without the predefined length is usually much greater than the length of the data to be read.
The storage device of the NAND flash comprises a front end layer, a conversion layer and a back end layer, wherein the front end layer is used for communicating with a host, for example, receiving a control instruction sent by the host, and the control instruction comprises a read command, a write command and an erase command; the translation layer is used for performing software operation according to the control instruction, and the software operation comprises but is not limited to conversion from a logical address to a physical address, address mapping table management, wear leveling management and bad block management; and the back end layer is used for reading, writing or operating the NAND flash memory according to the control instruction. Specifically, the front-end layer receives a read command with no predefined length sent by the host, and interprets a start logical address included in the read command with no predefined length.
S120, determining the data length to be read by the read command without the predefined length according to the data length read by the read command without the predefined length for N times before the read command without the predefined length currently; n is a positive integer greater than 1.
Specifically, before the NAND flash memory device receives a read command with no predefined length currently, if at least N times of read commands with no predefined length have been received and a read operation is performed, determining a data length to be read by the read command with no predefined length currently according to a data length read by the read command with no predefined length N times before the read command with no predefined length currently; if M (M is a positive integer less than N) times of read commands without the predefined length are received and read operation is carried out, determining the length of data to be read contained in the read commands without the predefined length as the length of data to be read by the read commands without the predefined length currently or determining the length of data to be read by the read commands without the predefined length currently according to the length of data to be read by the read commands without the predefined length currently before the read commands without the predefined length currently; if the current read command without the predefined length is the first received read command without the predefined length, determining the length of the data to be read contained in the read command without the predefined length as the length of the data to be read by the current read command without the predefined length. Illustratively, N is 10.
The data length read by the read command without the predefined length N times before the read command without the predefined length currently is the data length actually read by the read command without the predefined length N times before the read command without the predefined length currently, where the actually read data length refers to the data length actually read in the process from when the read command without the predefined length is received to when the read data is stopped after the stop command is received.
And S130, converting the logical address into the physical address according to the determined data length which is read by the read command without the predefined length at present and the starting logical address.
Specifically, the translation layer performs address translation according to the starting logical address that is de-read by the front-end layer and the data length that is determined by the translation layer in S120 and is to be read by the read command that is currently not of the predefined length, where the starting logical address corresponds to the starting physical address, and the number of the physical addresses to be translated is determined by the determined data length that is to be read by the read command that is currently not of the predefined length.
And S140, reading data according to the converted physical address.
Specifically, the back-end layer sequentially reads data stored in the physical addresses according to the physical addresses given by the translation layer.
According to the data reading method provided by the embodiment of the invention, the length of the data to be read by the current read command without the predefined length is determined according to the length of the data to be read by the read command without the predefined length N times before the current read command without the predefined length, so that the length of the data to be read by the determined read command without the predefined length is as close as possible to the length of the data to be actually read, thereby reducing redundant address conversion time, solving the problem of poor read access performance caused by longer redundant address conversion time in the prior art, and realizing the effect of improving the read access performance of the storage device.
Example two
The embodiment is embodied and optimized on the basis of the above technical solution, fig. 2 is a flowchart of a data reading method provided in a second embodiment of the present invention, and referring to fig. 2, the method in the second embodiment of the present invention specifically includes the following steps:
s210, receiving a read command without a predefined length, and acquiring a starting logical address contained in the read command without the predefined length.
And S220, dividing the data length in the read command without the predefined length into a plurality of levels of preset gears.
Specifically, the data length in the read command without the predefined length may be averagely divided into multiple preset stages, that is, the difference between the upper limit value and the lower limit value of each preset stage is the same, but the present application is not limited thereto, and a person skilled in the art may divide the multiple preset stages according to actual situations.
S230, determining the data length to be read by the read command without the predefined length according to the preset gear where the data length is read by the read command without the predefined length N times before the read command without the predefined length currently.
Optionally, S230 specifically includes the following steps:
acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are located;
determining a preset gear with the maximum number of times in preset gears where the data length read by the read command with the length not defined in advance is located for N times as a read gear of the data length to be read by the read command with the length not defined in advance;
and determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
If there are X (X is greater than or equal to 2) preset gears with the largest number of times among preset gears where the data length read by the read command with the length not predefined for N times is located, the preset gear where the maximum upper limit data length value among the X preset gears is located may be determined as the read gear where the data length to be read by the read command with the length not predefined currently is located, or the preset gear where the minimum upper limit data length value among the X preset gears is located may be determined as the read gear where the data length to be read by the read command with the length not predefined currently is located, which may be set by a person skilled in the art according to actual conditions.
Illustratively, the data length of the read command without the predefined length is 128K, and the read command is divided into four preset gears 0K-16K, 16K-32K, 32K-64K and 64K-128K, where each preset gear includes an upper limit value and does not include a lower limit value. Then, the preset gear positions where the data length read by the read command without the predefined length is 10 times before the read command without the predefined length currently is determined, if the data length read by the read command without the predefined length for 10 times is 16K, 20K and 20K respectively, the preset gear position with the largest number of times in the preset gear positions where the data length read by the read command without the predefined length is 10 times is 0K-16K, 0K-16K is determined as the read gear position of the data length to be read by the read command without the predefined length currently, and 16K is determined as the data length to be read by the read command without the predefined length currently. If the length of the data actually read by the read command without the predefined length is 10K, compared with the prior art that a 128K address is converted, namely a multi-conversion 118K address, only a 6K address is converted by using the technical scheme of the application, so that the number of the multi-conversion addresses is reduced, and the read access speed is improved.
Optionally, S230 specifically includes the following steps:
acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are located;
determining a preset gear where the maximum upper limit data length value is located in preset gears where the data lengths read by the read commands without the predefined lengths for N times are located as a read gear where the data lengths to be read by the read commands without the predefined lengths are currently located;
and determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
S240, according to the determined data length which is read by the read command without the predefined length at present and the starting logical address, the conversion from the logical address to the physical address is carried out.
And S250, reading data according to the converted physical address.
According to the data reading method provided by the embodiment of the invention, the data length in the read command without the predefined length is divided into a plurality of preset gears, and the data length to be read by the read command without the predefined length is determined according to the preset gear where the data length read by the read command without the predefined length for N times before the read command without the predefined length is located, so that the determined data length to be read by the read command without the predefined length is close to the actual data length to be read to a greater extent, and therefore, the redundant address conversion time is reduced as much as possible, and the effect of the read access performance of the storage device is improved. It is understood that the larger the number of divided preset steps, the closer the determined data length to be read by the read command without the predefined length currently is to the actual data length to be read.
It should be noted that, in practical applications, tests such as an 8K read test (reading 8K data each time) or a 16K read test (reading 16K data each time) are usually performed on the NAND flash memory device, and for such tests, the technical scheme of the present application may greatly improve the read access speed.
On the basis of the above technical solution, optionally, after reading data according to the converted physical address, the method further includes:
if the stop command is not received, repeatedly executing the operation of converting the logical address into the physical address according to the estimated data length to be read in the current reading operation, and reading the data according to the converted physical address until the stop command is received;
and adding one to the last logic address converted last time as the initial logic address of the conversion operation from the logic address to the physical address each time the conversion from the logic address to the physical address is carried out.
The method comprises the steps that an open read access starts when an open read command is received, data reading is stopped after a stop command is received, if the back-end layer reads data in all physical addresses converted by a conversion layer and does not receive the stop command, the read operation is not finished, the conversion layer needs to continue to convert a logical address into the physical address, and the back-end layer needs to continue to read data of the newly converted physical address until the stop command is received.
For example, if it is determined that the length of the data to be read by the read command without the predefined length is 16K, the translation layer converts the 16K physical address, the back-end layer reads all the data in the 16K physical address, but the front-end layer still does not receive the stop instruction at this time, the translation layer is repeatedly executed to continue converting the 16K new physical address and the back-end layer reads the data in the 16K new physical address until the front-end layer receives the stop command, and then the read operation is ended.
The advantage of this is that when the length of data actually read by the read command without predefined length is different from the length of data read by the read command without predefined length N times before the read command without predefined length, the translation layer can also translate enough physical addresses for the back-end layer to read data.
EXAMPLE III
Fig. 3 is a block diagram of a data reading apparatus according to a third embodiment of the present invention, and referring to fig. 3, the apparatus includes: a read command receiving module 110, a data length determining module 120, an address converting module 130, and a data reading module 140 having no predefined length;
a read command receiving module 110 without predefined length, configured to receive a read command without predefined length and obtain a start logical address included in the read command without predefined length;
a data length determining module 120, configured to determine, according to the data length read by N times of read commands without predefined length before the read command without predefined length currently, the data length to be read by the read command without predefined length currently; n is a positive integer greater than 1;
an address translation module 130, configured to perform translation from a logical address to a physical address according to the determined length of data to be read by a read command without a predefined length currently and a starting logical address;
and a data reading module 140, configured to read data according to the converted physical address.
In the data reading apparatus provided in the embodiment of the present invention, the data length determining module determines the data length to be read by the read command without the predefined length currently according to the data length read by the read command without the predefined length N times before the read command without the predefined length currently, so that the determined data length to be read by the read command without the predefined length currently is as close as possible to the actual data length to be read, thereby reducing the redundant address conversion time, solving the problem of poor read access performance caused by the longer redundant address conversion time in the prior art, and achieving the effect of improving the read access performance of the storage device.
On the basis of the above technical solution, optionally, the data length determining module 140 includes a gear division submodule and a data length determining submodule:
the gear division submodule is used for dividing the data length in the read command without the predefined length into a plurality of levels of preset gears;
and the data length determining submodule is used for determining the data length to be read by the read command without the predefined length according to the preset gear where the data length read by the read command without the predefined length for N times before the read command without the predefined length currently exists.
Optionally, the data length determining submodule includes a first preset gear acquiring unit, a first read gear acquiring unit, and a first data length determining unit;
the first preset gear acquiring unit is used for acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are respectively located;
the first reading gear acquiring unit is used for determining a preset gear with the maximum number of times in preset gears where the data length read by the reading command with the length not defined in advance is located for N times as a reading gear with the data length to be read by the reading command with the length not defined in advance currently;
and the first data length determining unit is used for determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
Optionally, the data length determining submodule includes a second preset gear acquiring unit, a second reading gear acquiring unit, and a second data length determining unit;
the second preset gear acquiring unit is used for acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are respectively located;
the second reading gear acquiring unit is used for determining a preset gear where the maximum upper limit data length value in preset gears where the data length read by the reading command without the predefined length is located for N times as a reading gear where the data length to be read by the reading command without the predefined length is located currently;
and the second data length determining unit is used for determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
Optionally, the data reading apparatus further includes a repeating module, configured to, when the stop command is not received, repeatedly perform, according to the estimated length of the data to be read in the current read operation, the conversion from the logical address to the physical address, and read the data according to the converted physical address until the stop command is received;
and adding one to the last logic address converted last time as the initial logic address of the conversion operation from the logic address to the physical address each time the conversion from the logic address to the physical address is carried out.
The device can execute the method provided by any embodiment of the invention, and has the corresponding functional modules and beneficial effects of the execution method. For technical details not described in detail in this embodiment, reference may be made to the method provided in any embodiment of the present invention.
Example four
The fourth embodiment of the present invention further provides a storage device, which includes the data reading apparatus according to any embodiment of the present invention.
The storage device comprises any one of the above-mentioned devices, and thus the storage device has corresponding functions and advantages.
It is to be noted that the foregoing is only illustrative of the preferred embodiments of the present invention and the technical principles employed. It will be understood by those skilled in the art that the present invention is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the invention. Therefore, although the present invention has been described in greater detail by the above embodiments, the present invention is not limited to the above embodiments, and may include other equivalent embodiments without departing from the spirit of the present invention, and the scope of the present invention is determined by the scope of the appended claims.

Claims (10)

1. A data reading method, comprising:
receiving a read command without a predefined length, and acquiring a starting logical address contained in the read command without the predefined length;
determining the data length to be read by the read command without the predefined length according to the data length read by the read command without the predefined length N times before the read command without the predefined length currently; n is a positive integer greater than 1;
according to the determined data length to be read by the read command without the predefined length at present and the initial logical address, the conversion from the logical address to the physical address is carried out;
and reading data according to the converted physical address.
2. The method of claim 1, wherein determining the length of data to be read by the current no predefined length read command according to the length of data read by the N no predefined length read commands before the current no predefined length read command comprises:
dividing the data length in the read command without the predefined length into a plurality of levels of preset gears;
and determining the data length to be read by the read command without the predefined length according to the preset gear at which the data length read by the read command without the predefined length N times before the read command without the predefined length currently exists.
3. The data reading method according to claim 2, wherein the determining the length of data to be read by the read command without the predefined length according to the preset gear at which the data length read by the read command without the predefined length N times before the read command without the predefined length currently exists comprises:
acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are located;
determining the preset gear with the maximum number of times in preset gears where the data length read by the read command with the length not defined in advance is located for N times as the read gear of the data length to be read by the read command with the length not defined in advance;
and determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
4. The data reading method according to claim 2, wherein the determining the length of data to be read by the read command without the predefined length according to the preset gear at which the data length read by the read command without the predefined length N times before the read command without the predefined length currently exists comprises:
acquiring preset gears in which data lengths read by the read commands without the predefined length for N times before the read commands without the predefined length currently are located;
determining a preset gear where the maximum upper limit data length value in preset gears where the data lengths read by the read commands without the predefined lengths in the N times are located as a read gear where the data lengths to be read by the read commands without the predefined lengths are currently located;
and determining the upper limit data length value of the reading gear as the data length to be read by the reading command without the predefined length currently.
5. The data reading method according to claim 1, further comprising, after the reading data according to the converted physical address:
if the stop command is not received, repeatedly executing the operation of converting the logical address into the physical address according to the estimated data length to be read in the current reading operation, and reading the data according to the converted physical address until the stop command is received;
and adding one to the last logic address converted last time as the initial logic address of the conversion operation from the logic address to the physical address each time the conversion from the logic address to the physical address is carried out.
6. A data reading device is characterized by comprising a reading command receiving module without predefined length, a data length determining module, an address conversion module and a data reading module;
the read command receiving module without the predefined length is used for receiving the read command without the predefined length and acquiring a starting logic address contained in the read command without the predefined length;
the data length determining module is used for determining the data length to be read by the read command without the predefined length according to the data length read by the read command without the predefined length for N times before the read command without the predefined length currently; n is a positive integer greater than 1;
the address conversion module is used for converting a logical address into a physical address according to the determined data length to be read by the read command without the predefined length at present and the initial logical address;
and the data reading module is used for reading data according to the converted physical address.
7. The data reading apparatus according to claim 6, wherein the data length determination module includes a gear division sub-module and a data length determination sub-module:
the gear division submodule is used for dividing the data length in the read command without the length defined in advance into a plurality of levels of preset gears;
the data length determining submodule is used for determining the data length to be read by the read command without the predefined length according to the preset gear where the data length read by the read command without the predefined length for N times before the read command without the predefined length currently exists.
8. The data reading device according to claim 7, wherein the data length determination submodule includes a first preset gear acquisition unit, a first read gear acquisition unit, and a first data length determination unit;
the first preset gear acquiring unit is used for acquiring preset gears in which data lengths read by the read command without the predefined length for N times before the read command without the predefined length currently exists;
the first reading gear acquiring unit is used for determining the preset gear with the maximum number of times in preset gears where the data length read by the read command with the length not defined in advance is located for N times as the reading gear with the data length to be read by the read command with the length not defined in advance currently;
the first data length determining unit is configured to determine an upper limit data length value of the reading range as a data length to be read by a read command without a predefined length currently.
9. The data reading device according to claim 7, wherein the data length determination submodule includes a second preset gear acquisition unit, a second reading gear acquisition unit, and a second data length determination unit;
the second preset gear acquiring unit is used for acquiring preset gears in which data lengths read by the read command without the predefined length for N times before the read command without the predefined length currently exists;
the second reading gear acquiring unit is configured to determine a preset gear in which a maximum upper limit data length value is located in preset gears in which data lengths read by the N read commands without the predefined length are located as a reading gear in which data lengths to be read by the read commands without the predefined length are currently located;
and the second data length determining unit is used for determining the upper limit data length value of the reading gear as the data length to be read by a read command without the predefined length currently.
10. A storage device comprising a data reading apparatus according to any one of claims 6 to 9.
CN201910407063.1A 2019-05-16 2019-05-16 Data reading method and device and storage device Active CN111949557B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910407063.1A CN111949557B (en) 2019-05-16 2019-05-16 Data reading method and device and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910407063.1A CN111949557B (en) 2019-05-16 2019-05-16 Data reading method and device and storage device

Publications (2)

Publication Number Publication Date
CN111949557A true CN111949557A (en) 2020-11-17
CN111949557B CN111949557B (en) 2024-01-23

Family

ID=73335855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910407063.1A Active CN111949557B (en) 2019-05-16 2019-05-16 Data reading method and device and storage device

Country Status (1)

Country Link
CN (1) CN111949557B (en)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324867A (en) * 2007-06-16 2008-12-17 深圳市硅格半导体有限公司 Device and method for managing data based on semiconductor storage medium
CN101976182A (en) * 2010-11-15 2011-02-16 记忆科技(深圳)有限公司 Solid state disk prereading method and device
CN104426965A (en) * 2013-08-30 2015-03-18 华为技术有限公司 Self-management storage method and system
CN105353989A (en) * 2015-11-19 2016-02-24 华为技术有限公司 Stored data access method, related controller, device, mainframe and system
CN105723320A (en) * 2016-02-01 2016-06-29 华为技术有限公司 Data arrangement method, storage apparatus, storage controller and storage array
US20170097897A1 (en) * 2015-10-02 2017-04-06 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program
CN107015920A (en) * 2015-12-30 2017-08-04 三星电子株式会社 The operating method of storage device and storage device
CN108829613A (en) * 2018-05-24 2018-11-16 中山市江波龙电子有限公司 Date storage method and storage equipment
US20180336129A1 (en) * 2017-05-18 2018-11-22 Western Digital Technologies, Inc. Locality Grouping During Garbage Collection with Flush of Buffered Write Data Upon Completion of Garbage Collection Operation
CN109240938A (en) * 2017-07-11 2019-01-18 东芝存储器株式会社 Storage system and the control method for controlling nonvolatile memory

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324867A (en) * 2007-06-16 2008-12-17 深圳市硅格半导体有限公司 Device and method for managing data based on semiconductor storage medium
CN101976182A (en) * 2010-11-15 2011-02-16 记忆科技(深圳)有限公司 Solid state disk prereading method and device
CN104426965A (en) * 2013-08-30 2015-03-18 华为技术有限公司 Self-management storage method and system
US20170097897A1 (en) * 2015-10-02 2017-04-06 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program
CN105353989A (en) * 2015-11-19 2016-02-24 华为技术有限公司 Stored data access method, related controller, device, mainframe and system
CN107015920A (en) * 2015-12-30 2017-08-04 三星电子株式会社 The operating method of storage device and storage device
CN105723320A (en) * 2016-02-01 2016-06-29 华为技术有限公司 Data arrangement method, storage apparatus, storage controller and storage array
US20180336129A1 (en) * 2017-05-18 2018-11-22 Western Digital Technologies, Inc. Locality Grouping During Garbage Collection with Flush of Buffered Write Data Upon Completion of Garbage Collection Operation
CN109240938A (en) * 2017-07-11 2019-01-18 东芝存储器株式会社 Storage system and the control method for controlling nonvolatile memory
CN108829613A (en) * 2018-05-24 2018-11-16 中山市江波龙电子有限公司 Date storage method and storage equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J JAINA等: "Extracting network connections from Windows 7 64-bit physical memory", 《2015 IEEE INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND COMPUTING RESEARCH (ICCIC)》 *
任诗: "阵列式星载海量存储器文件管理软件技术研究", 《全国优秀博硕士学位论文全文库(硕士) 信息科技辑》 *

Also Published As

Publication number Publication date
CN111949557B (en) 2024-01-23

Similar Documents

Publication Publication Date Title
US10761731B2 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
US10783086B2 (en) Method and apparatus for increasing a speed of accessing a storage device
EP2187315A1 (en) Method for accessing data in flash memory and data accessing controller
US20100169549A1 (en) Memory system and controller
CN106326134A (en) Flash Translation Layer (FTL) address mapping method and device
WO2011095516A1 (en) Method and system for mass storage on flash memory
CN101419843A (en) Flash memory recognition method, recognition device and chip controller
CN109324991B (en) Hot plug device, method, medium and system of PCIE (peripheral component interface express) equipment
EP2160686A2 (en) Phased garbage collection and house keeping operations in a flash memory system
KR20150055413A (en) Data storage device
KR20150057069A (en) Data storage device and operating method thereof
CN110888602A (en) Method and device for improving reading performance based on solid state disk and computer equipment
CN105094742B (en) A kind of method and apparatus for writing data
CN111949557B (en) Data reading method and device and storage device
CN117215485A (en) ZNS SSD management method, data writing method, storage device and controller
CN115878029A (en) Address mapping method and control system for solid state disk
US11755439B2 (en) Memory controller, test device and link identification method
US10310746B2 (en) Method, associated memory device and controller thereof for performing dynamic resource management
CN116069387B (en) Storage device adaptation method, adaptation device, storage device and readable storage medium
CN110489061B (en) Trim implementation method with low resource consumption
US20240111422A1 (en) Method of optimizing quality of service (qos) in solid-state drives (ssds) and an ssd thereof
US20230305952A1 (en) Memory system and operating method of a controller of the memory system
US20230359393A1 (en) Memory system and operating method of the memory system
CN117331970A (en) Data query method, device, computer storage medium and acceleration card
CN111949203A (en) Memory and control method and control device thereof

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant