CN112965669A - Data storage system and method - Google Patents

Data storage system and method Download PDF

Info

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
Application number
CN202110361567.1A
Other languages
Chinese (zh)
Other versions
CN112965669B (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.)
Sage Microelectronics Corp
Original Assignee
Sage Microelectronics Corp
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 Sage Microelectronics Corp filed Critical Sage Microelectronics Corp
Priority to CN202110361567.1A priority Critical patent/CN112965669B/en
Publication of CN112965669A publication Critical patent/CN112965669A/en
Application granted granted Critical
Publication of CN112965669B publication Critical patent/CN112965669B/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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0653Monitoring storage devices or systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-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

Data storage system and method
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.
CN202110361567.1A 2021-04-02 2021-04-02 Data storage system and method Active CN112965669B (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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