CN112965669A - Data storage system and method - Google Patents
Data storage system and method Download PDFInfo
- Publication number
- CN112965669A CN112965669A CN202110361567.1A CN202110361567A CN112965669A CN 112965669 A CN112965669 A CN 112965669A CN 202110361567 A CN202110361567 A CN 202110361567A CN 112965669 A CN112965669 A CN 112965669A
- Authority
- CN
- China
- Prior art keywords
- target
- nvme
- data
- channel
- target channel
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
The application discloses a data storage system and a method, wherein the system comprises an NVMe master controller connected with a host computer, and a plurality of storage media which are connected with the NVMe master controller and mounted on a plurality of channels. The NVMe master controller is used for judging whether the target channel is idle, and if so, acquiring a target data packet corresponding to the target channel in the target command from the host and sending the target data packet to the target channel so as to be stored in a storage medium mounted on the target channel. By applying the method, the problem that other data are blocked in the host when the target channel is busy can be avoided, so that the data transmission speed is improved. In addition, the NVMe master controller supports out-of-order transmission of data packets in the target command, so that the target data packets can be sent to the target channel under the condition that the target channel is judged to be idle, the service efficiency of the channel is improved, and the data transmission speed is improved.
Description
Technical Field
The present application relates to the field of information communication technologies, and in particular, to a data storage system and method.
Background
With the development of science and technology, terminals have become an essential part of human life, and Solid State Drives (SSDs) have become an essential part of terminals in order to store important files in life.
Currently, a Redundant Array of Independent Modules (RAIM) includes a solid state disk master including a cache medium and an Embedded memory standard (eMMC) based chip mounted on a Multi-channel. In the data storage process, after the data in the target command is stored in the cache medium by the solid state disk master control, the data is sent to the corresponding eMMC chip according to the channel sequence. When the processing time for storing data in a certain channel is too long, the eMMC chip corresponding to the channel cannot continuously receive the next data, which results in that the rest of the data that needs to be stored in the channel is always stored in the cache medium, and if the storage space of the cache medium is full and the channel still cannot receive the data, the data in other commands will be blocked in the host, which results in that other idle channels cannot continuously store the data, so that the number of times of performing read/write Operations Per Second (IOPS) in data transmission is reduced, that is, the data transmission speed is reduced.
Therefore, how to increase the data transmission speed is an urgent problem to be solved by those skilled in the art.
Disclosure of Invention
The application aims to provide a data storage system for improving the speed of data transmission. The application aims to further provide a data storage method.
In order to solve the above technical problem, the present application provides a data storage system, including: the system comprises an NVMe master controller connected with a host computer and a plurality of storage media which are connected with the NVMe master controller and mounted on a plurality of channels;
the NVMe master controller is configured to, when a target channel is idle, obtain a target data packet corresponding to the target channel from the host, and send the target data packet to the target channel, so that the storage medium mounted on the target channel stores the target data packet.
Preferably, the NVMe master acquires, from the host, a data packet corresponding to the target channel in the plurality of storage commands.
Preferably, the storage medium is a storage medium whose busy duration cannot be predicted.
Preferably, the number of the storage media is positively correlated with the size of the hard disk storage space.
Preferably, the number of channel controllers for storing the target data packet in the storage medium matches the number of channels.
Preferably, the NVMe master acquires the target data packet corresponding to the target channel from the host through a PCIe interface.
Preferably, the NVMe master is further configured to calculate the amount of data stored in each of the channels.
Preferably, the NVMe master is further configured to monitor the lifetime of each channel eMMC, and issue a warning when the lifetime reaches a set threshold.
In order to solve the above technical problem, the present application further provides a data storage method, where the method is applied to a storage system, and the storage system includes: the system comprises an NVMe master controller connected with a host computer and a plurality of storage media which are connected with the NVMe master controller and mounted on a plurality of channels; the method comprises the following steps:
judging whether the target channel is idle;
if yes, obtaining a target data packet corresponding to the target channel from the host;
and sending the target data packet to the target channel so as to store the target data packet to the storage medium mounted on the target channel.
The data storage system comprises an NVMe main controller connected with a host and a plurality of storage media which are connected with the NVMe main controller and mounted on a plurality of paths. The NVMe master controller is used for judging whether the target channel is idle, and if so, acquiring a target data packet corresponding to the target channel in the target command from the host and sending the target data packet to the target channel so as to be stored in a storage medium mounted on the target channel. By applying the method, the problem that other data are blocked in the host when the target channel is busy can be avoided, so that the data transmission speed is improved. In addition, the NVMe master controller supports out-of-order transmission of data packets in the target command, so that the target data packets can be sent to the target channel under the condition that the target channel is judged to be idle, the service efficiency of the channel is improved, and the data transmission speed is improved.
In addition, the data storage method provided by the application corresponds to the data storage system and has the same effect.
Drawings
In order to more clearly illustrate the embodiments of the present application, the drawings needed for the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present application, and that other drawings can be obtained by those skilled in the art without inventive effort.
Fig. 1 is a schematic structural diagram of a data storage system according to an embodiment of the present application;
fig. 2 is a data storage method according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments in the present application without any creative effort belong to the protection scope of the present application.
The core of the application is to provide a data storage system for improving the speed of data transmission. The core of the application is to further provide a data storage method.
In order that those skilled in the art will better understand the disclosure, the following detailed description will be given with reference to the accompanying drawings.
Fig. 1 is a schematic structural diagram of a data storage system according to an embodiment of the present application. As shown in fig. 1, the data storage system includes: the Non-Volatile Memory device comprises a Non-Volatile Memory host 10 controller interface specification (NVMe) -based NVMe master 11 connected with a host 10, and a plurality of storage media 12 mounted on a plurality of channels and connected with the NVMe master 11.
The NVMe master 11 is configured to, when a target channel is idle, obtain a target data packet corresponding to the target channel from the host 10, and send the target data packet to the target channel, so that the storage medium 12 mounted on the target channel stores the target data packet. A storage medium 12 for storing data.
In order to improve the compatibility of the data storage system provided in the embodiment of the present application, as a preferred embodiment, the storage medium 12 is a storage medium whose busy duration cannot be predicted, for example, an eMMC chip. Because the interface of the eMMC chip is simple, the storage protocol is simple, and meanwhile, the eMMC chip can be compatible with the original eMMC chip when the eMMC chip is updated, the data storage system provided by the embodiment of the application can still store the target data packet in the updated eMMC chip. In addition, the storage medium whose busy duration cannot be predicted may be a Secure Digital Memory Card (SD).
Assuming that one channel is hung on M eMMC chips, and one channel has N total channels, the total overhead capacity is the capacity of N × M × one eMMC chip, and the IOPS is the IOPS of N × M × one eMMC chip.
Further, in order to improve the utilization efficiency of the hard disk storage space, as a preferred embodiment, the number of the storage media 12 is positively correlated with the size of the hard disk storage space, that is, in a specific implementation, if the storage media 12 are specifically eMMC chips, the number of the eMMC chips hung on each channel may be determined according to the size of the hard disk storage space.
In the embodiment of the present application, the storage medium 12 on which the target packet is stored and hung on the target channel is specifically implemented by the channel controller 13. The number of the channel controllers 13 is not limited, and in a specific implementation, there may be only one channel controller 13, or there may be at least two channel controllers 13.
In order to increase the speed of storing data packets in the storage medium 12, as a preferred embodiment, the number of channel controllers 13 matches the number of channels, i.e. one channel controller 13 is connected to a storage medium 12 hanging on the same channel.
The data storage system provided by the embodiment of the application comprises an NVMe master controller connected with a host and a plurality of storage media which are connected with the NVMe master controller and mounted on a plurality of paths. The NVMe master controller is used for judging whether the target channel is idle, and if so, acquiring a target data packet corresponding to the target channel in the target command from the host and sending the target data packet to the target channel so as to be stored in a storage medium mounted on the target channel. By applying the method, the problem that other data are blocked in the host when the target channel is busy can be avoided, so that the data transmission speed is improved. In addition, the NVMe master controller supports out-of-order transmission of data packets in the target command, so that the target data packets can be sent to the target channel under the condition that the target channel is judged to be idle, the service efficiency of the channel is improved, and the data transmission speed is improved.
On the basis of the above embodiment, the NVMe master 11 acquires a packet corresponding to a target channel from the plurality of storage commands from the host 10.
It can be understood that, since the NVMe master 11 can obtain 65536 commands from the host 10, after the NVMe master 11 obtains a data packet corresponding to a target channel from a plurality of storage commands from the host 10 and writes the data packet to the storage medium 12, the idle channel is not always in an idle state, so that the use efficiency of the channel is further improved, and the data transmission speed is further improved.
In addition, in order to further increase the speed of data transmission, as a preferred embodiment, the NVMe master 11 obtains a target packet corresponding to a target channel from the host 10 through a Peripheral Component Interconnect express (PCIe) interface.
On the basis of the above embodiment, the NVMe master 11 is further configured to calculate the amount of data stored in each channel, and monitor the lifetime of each eMMC chip. In specific implementation, when the eMMC chips of each channel reach the life threshold, the NVMe master controller 11 may further send an alarm signal, so as to remind a user that the hard disk cannot continue to store data, thereby replacing the hard disk in time.
According to the data storage system provided by the embodiment of the application, the NVMe master controller is further used for calculating the stored data volume of each channel in the process of storing the target data packet in the target channel and monitoring the service life of each eMMC chip, so that the health condition of the storage medium can be acquired in time, a user is reminded when the service life reaches a set threshold value, and the use experience of the user is improved.
Fig. 2 is a data storage method according to an embodiment of the present application. As shown in fig. 2, the method is applied to a storage system, and the storage system includes: the NVMe storage system includes an NVMe master 11 connected to a host 10, and a plurality of storage media 12 mounted on a plurality of channels and connected to the NVMe master 11. The method comprises the following steps:
s10: and judging whether the target channel is idle, if so, entering S11, and if not, ending.
S11: and acquiring a target data packet corresponding to the target channel from the host.
S12: and sending the target data packet to the target channel so as to store the target data packet to a storage medium mounted on the target channel.
Since the embodiment of the method portion corresponds to the embodiment of the system portion, please refer to the description of the embodiment of the system portion for the embodiment of the method portion, which is not repeated here.
The data storage device provided by the embodiment of the application judges whether the target channel is idle, and if so, acquires the target data packet corresponding to the target channel in the target command from the host and sends the target data packet to the target channel so as to be stored in a storage medium mounted on the target channel. By deploying the device, the problem that other data are blocked in the host when the target channel is busy can be avoided, and the data transmission speed is improved. In addition, the NVMe master controller supports out-of-order transmission of data packets in the target command, so that the target data packets can be sent to the target channel under the condition that the target channel is judged to be idle, the service efficiency of the channel is improved, and the data transmission speed is improved.
A data storage system and method provided by the present application are described in detail above. The embodiments are described in a progressive manner in the specification, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other. It should be noted that, for those skilled in the art, it is possible to make several improvements and modifications to the present application without departing from the principle of the present application, and such improvements and modifications also fall within the scope of the claims of the present application.
It is further noted that, in the present specification, relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
Claims (9)
1. A data storage system, comprising: the system comprises an NVMe master controller connected with a host computer and a plurality of storage media which are connected with the NVMe master controller and mounted on a plurality of channels;
the NVMe master controller is configured to, when a target channel is idle, obtain a target data packet corresponding to the target channel from the host, and send the target data packet to the target channel, so that the storage medium mounted on the target channel stores the target data packet.
2. The data storage system of claim 1, wherein the NVMe master fetches a data packet corresponding to the target channel from a plurality of storage commands from the host.
3. Data storage system according to claim 1, characterized in that the storage medium is embodied as a storage medium for which a busy duration cannot be foreseen.
4. The data storage system of claim 3, wherein the number of storage media is positively correlated to the size of the hard disk storage space.
5. The data storage system of claim 1, wherein the number of channel controllers for storing the target data packet to the storage medium matches the number of channels.
6. The data storage system of claim 1, wherein the NVMe master retrieves the target data packet corresponding to the target channel from the host over a PCIe interface.
7. The data storage system of claim 1 or 2, wherein the NVMe master is further configured to calculate the amount of data stored for each of the channels.
8. The data storage system of claim 7, wherein the NVMe master is further configured to mark the target channel if the target channel has stored a target amount of data that reaches a corresponding upper limit of the storage medium.
9. A data storage method is applied to a storage system, and the storage system comprises the following steps: the system comprises an NVMe master controller connected with a host computer and a plurality of storage media which are connected with the NVMe master controller and mounted on a plurality of channels; the method comprises the following steps:
judging whether the target channel is idle;
if yes, obtaining a target data packet corresponding to the target channel from the host;
and sending the target data packet to the target channel so as to store the target data packet to the storage medium mounted on the target channel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110361567.1A CN112965669B (en) | 2021-04-02 | 2021-04-02 | Data storage system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110361567.1A CN112965669B (en) | 2021-04-02 | 2021-04-02 | Data storage system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965669A true CN112965669A (en) | 2021-06-15 |
CN112965669B CN112965669B (en) | 2022-11-22 |
Family
ID=76280962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110361567.1A Active CN112965669B (en) | 2021-04-02 | 2021-04-02 | Data storage system and method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965669B (en) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101740103A (en) * | 2008-11-11 | 2010-06-16 | 西安奇维测控科技有限公司 | Multi-channel flash memory controller |
CN102073561A (en) * | 2011-01-26 | 2011-05-25 | 浪潮电子信息产业股份有限公司 | Method for correcting error of write operation of solid state hard disk |
WO2014201865A1 (en) * | 2013-06-20 | 2014-12-24 | 深圳市瑞耐斯技术有限公司 | Nand flash memory device and random writing method therefor |
CN105511807A (en) * | 2015-11-30 | 2016-04-20 | 杭州华澜微电子股份有限公司 | Data storage management method and system based on storage equipment |
US20160253091A1 (en) * | 2015-02-27 | 2016-09-01 | HGST Netherlands B.V. | Methods and systems to reduce ssd io latency |
CN106126124A (en) * | 2016-06-29 | 2016-11-16 | 联想(北京)有限公司 | A kind of data processing method and electronic equipment |
US20180081796A1 (en) * | 2016-09-22 | 2018-03-22 | Silicon Motion, Inc. | Data Storage Device and Data Writing Method Thereof |
US20190004736A1 (en) * | 2017-07-03 | 2019-01-03 | Samsung Electronics Co., Ltd. | Storage device previously managing physical address to be allocated for write data |
CN111475438A (en) * | 2015-08-12 | 2020-07-31 | 北京忆恒创源科技有限公司 | IO request processing method and device for providing quality of service |
CN111913654A (en) * | 2019-05-09 | 2020-11-10 | 爱思开海力士有限公司 | Controller and memory system having the same |
-
2021
- 2021-04-02 CN CN202110361567.1A patent/CN112965669B/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101740103A (en) * | 2008-11-11 | 2010-06-16 | 西安奇维测控科技有限公司 | Multi-channel flash memory controller |
CN102073561A (en) * | 2011-01-26 | 2011-05-25 | 浪潮电子信息产业股份有限公司 | Method for correcting error of write operation of solid state hard disk |
WO2014201865A1 (en) * | 2013-06-20 | 2014-12-24 | 深圳市瑞耐斯技术有限公司 | Nand flash memory device and random writing method therefor |
US20160253091A1 (en) * | 2015-02-27 | 2016-09-01 | HGST Netherlands B.V. | Methods and systems to reduce ssd io latency |
CN111475438A (en) * | 2015-08-12 | 2020-07-31 | 北京忆恒创源科技有限公司 | IO request processing method and device for providing quality of service |
CN105511807A (en) * | 2015-11-30 | 2016-04-20 | 杭州华澜微电子股份有限公司 | Data storage management method and system based on storage equipment |
CN106126124A (en) * | 2016-06-29 | 2016-11-16 | 联想(北京)有限公司 | A kind of data processing method and electronic equipment |
US20180081796A1 (en) * | 2016-09-22 | 2018-03-22 | Silicon Motion, Inc. | Data Storage Device and Data Writing Method Thereof |
US20190004736A1 (en) * | 2017-07-03 | 2019-01-03 | Samsung Electronics Co., Ltd. | Storage device previously managing physical address to be allocated for write data |
CN111913654A (en) * | 2019-05-09 | 2020-11-10 | 爱思开海力士有限公司 | Controller and memory system having the same |
Also Published As
Publication number | Publication date |
---|---|
CN112965669B (en) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958907B (en) | Context-aware dynamic command scheduling for data storage systems | |
US10635355B1 (en) | Bandwidth limiting in solid state drives | |
AU2015258208B2 (en) | Resource allocation and deallocation for power management in devices | |
CN107885456B (en) | Reducing conflicts for IO command access to NVM | |
US9244865B2 (en) | Obtaining diagnostic information through host interfaces | |
CN101452369B (en) | Method and system for controlling logical unit of USB mass storage device | |
CN101419842B (en) | Loss equalizing method, apparatus and system for hard disc | |
CN109791522B (en) | Data migration method and system and intelligent network card | |
EP2454668B1 (en) | Feedback reporting from non-volatile block storage device to processing device | |
US9400603B2 (en) | Implementing enhanced performance flash memory devices | |
US20180188980A1 (en) | Memory apparatus and methods thereof for write amplification aware wear leveling | |
CN104991737B (en) | A kind of hard disk implementation method based on storage card array architecture | |
KR20220066814A (en) | Data aggregation in zns drive | |
US20100235599A1 (en) | Access control device, storage system, and access control method | |
CN112765055B (en) | Control unit of storage device | |
CN112764669B (en) | Hardware accelerator | |
CN107870739B (en) | Disk file storage method and system | |
CN111356991B (en) | Logical block addressing range conflict crawler | |
KR20190023292A (en) | Data storage device and operating method thereof | |
US11467942B2 (en) | Predictive performance indicator for storage devices | |
CN112965669B (en) | Data storage system and method | |
US10228885B2 (en) | Deallocating portions of data storage based on notifications of invalid data | |
CN105260140A (en) | Disk size monitoring method and apparatus | |
CN116235138A (en) | Data reading method and related device applied to solid state disk SSD | |
CN113196225A (en) | Open channel vector command execution |
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 |