A data management device, a data management method, and a data storage device

By designing a data management device in a hierarchical storage system, the management unit manages the data transmission channels between storage media, and the data migration unit performs data migration, solving the problems of large data migration delay and high resource overhead, and achieving more efficient data migration.

CN118642654BActive Publication Date: 2025-06-20HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202410805797.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-08
Filing Date
2020-07-23
Publication Date
2025-06-20
Estimated Expiration
2040-07-23

AI Technical Summary

Technical Problem

In hierarchical storage systems, data migration delay is large and resource overhead is high, which is mainly due to the independent data flow, control flow and interface protocol of different storage media, the CPU needs to perform multiple processing.

Method used

A data management device is designed, including a management unit and a data migration unit, and the data transmission channels between different storage media are managed through the management unit. The data migration unit uses these channels to migrate data between the second storage medium and the first storage medium to avoid processing such as protocol conversion through the CPU.

Benefits of technology

By directly using the data transmission channel managed by the management unit for data migration, the delay of CPU processing is reduced, the overhead of CPU resources is reduced, and the efficiency of data migration is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118642654B_ABST
    Figure CN118642654B_ABST
Patent Text Reader

Abstract

A data management device, a data management method, and a data storage device. The data management device includes a management unit and a data migration unit. The management unit manages the data transfer channels between two storage media with different transfer performances. Then, the data migration unit uses the managed data transfer channels to migrate data between the two storage media. In this way, data can be directly migrated between storage media with different transfer performances through the data management device without the need for the CPU in the system to perform processing such as instruction conversion and protocol conversion, which can save the latency of the CPU for the above processing. Moreover, since the migration of data does not require the use of the CPU, the resource overhead of the CPU can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The application number of the original application is 202010718684.4, and the original application date is July

[0002] 23, 2020. The entire content of the original application is incorporated herein by reference.

[0003] This application claims the priority of a Chinese patent application with the application number 202010271256.1 and the application title "A Storage Device", which was filed with the Chinese Patent Office on April 8, 2020. The entire content of this application is incorporated herein by reference. Technical Field

[0004] This application relates to the field of storage technologies, and particularly to a data management device, a data management method, and a data storage device. Background Art

[0005] The design of a hierarchical storage system is a trend to solve the data storage problem. Its main idea is: different performance storage media are set in the storage system, and the advantages of different performance storage media are utilized to ensure the optimization of the performance of the storage system. For example, the hierarchical storage system may include a first type of storage medium with a small storage capacity but a fast read / write speed, and a second type of storage medium with a large storage capacity but a slow read / write speed. In this way, a larger storage capacity can be provided by the second type of storage medium, and a faster read / write speed can be provided by the first type of storage medium, improving the overall performance of the hierarchical storage system.

[0006] As an example, in a hierarchical storage system, independent data streams, control streams, and interface protocols are usually set for different storage media. In this way, the central processing unit (CPU) of the hierarchical storage system can quickly access different storage media.

[0007] However, in a hierarchical storage system, there are scenarios of data migration. For example, if the data required by the CPU is stored in the second type of storage medium, then this data needs to be migrated from the second type of storage medium to the first type of storage medium first before it can be used by the CPU. Since different storage media are set with independent data streams, control streams, and interface protocols, when performing the above data migration, the CPU needs to perform processing such as decoding, protocol conversion, and encoding on the data, which will result in a relatively large delay in data migration. The above processing process also needs to occupy resources such as the cache and computing of the CPU, which will cause a relatively large resource overhead. Therefore, how to reduce the delay in the data migration process and reduce the resource overhead is a technical problem that needs to be solved urgently at present. Summary of the Invention

[0008] An embodiment of the present application provides a data management device, a method, and a data storage device, which are used to reduce the latency of data migration between different storage media in a hierarchical storage system.

[0009] In a first aspect, a data management device is provided. The data management device includes a management unit and a data migration unit. Among them, the management unit manages the data transmission channels between two different storage media. For example, it manages the data transmission channels between at least two first storage media and a second storage media. The transmission performance of the first storage media is lower than that of the second storage media, and there is a data transmission channel between each first storage media and the second storage media. Then, the data migration unit migrates data between the second storage media and at least two first storage media by using the data transmission channels managed by the management unit.

[0010] In the above technical solution, data can be directly migrated between storage media with different transmission performances through this data management device, without the need to perform processing such as instruction conversion and protocol conversion through the CPU in the system, which can save the latency of the CPU for the above processing. Moreover, since the CPU is not required to migrate data, the resource overhead of the CPU can be reduced.

[0011] In a possible design, the transmission performance of the data transmission channels managed by the management unit matches the transmission performance of the second storage media. In this way, the latency of migrating data between at least two first storage media and the second storage media can be minimized. The transmission performance of the second storage media may refer to the throughput rate, data processing ability, etc. of the second storage media. The transmission performance of the data transmission channels matching the transmission performance of the second storage media means that the transmission performance of the data transmission channels matches the transmission performance of the second storage media and will not become a bottleneck for the transmission performance of the second storage media.

[0012] In a possible design, the management unit can determine the number N of the first storage media according to the first ratio between the transmission bit width of the second storage media and the transmission bit width of the first storage media, or according to the second ratio between the transmission bandwidth of the second storage media and the transmission bandwidth of the first storage media, where N is an integer not less than 2; then, based on the number N of the first storage media, establish the data transmission channels between the N first storage media and the second storage media.

[0013] In the above technical solution, the management unit can manage the data transmission channels between different storage media in various ways, which can increase the flexibility of the data management device.

[0014] In a possible design, the data management device further includes a data processing unit, which receives a data reading instruction and reads target data from the second storage medium according to the data reading instruction.

[0015] In the above technical solution, a data processing unit can be provided in the data management device to facilitate communication between the data management device and other modules, and the other module can be a CPU in a storage system, etc.

[0016] In a possible design, if the target data corresponding to the data reading instruction received by the data processing unit is stored in at least two first storage media, the data migration unit is further configured to migrate the target data from the at least two first storage media to the second storage medium.

[0017] In the above technical solution, the data processing unit can read data from different storage media respectively. In this way, other modules can use only one protocol to read data from different storage media, which can simplify the communication protocol between the data management device and other modules.

[0018] In a possible design, the data management device further includes a data processing unit, which is configured to receive a first data writing instruction and write first data to the at least two first storage media according to the first data writing instruction.

[0019] In a possible design, the data processing unit is further configured to receive a second data writing instruction and write second data to the second storage medium according to the second data writing instruction.

[0020] In the above technical solution, the data management device can not only read data from different storage media through the data processing unit, but also write data to the storage media through the data processing unit. Among them, the data processing unit for reading data and the data processing unit for writing data can be the same data processing unit or independent data processing units respectively, which is not limited herein.

[0021] In a possible design, the first data writing instruction and the second data writing instruction use the same protocol. In this way, other modules can use only one protocol to access different storage media, which can simplify the communication protocol between the data management device and other modules.

[0022] Second aspect, a data management method is provided. In this method, first, data transfer channels between at least two first storage media and a second storage media are managed, where the transfer performance of the first storage media is lower than that of the second storage media, and there is one data transfer channel between each of the first storage media and the second storage media; then, data is migrated between the second storage media and the at least two first storage media by using the data transfer channels.

[0023] In a possible design, the transfer performance of the data transfer channels matches that of the second storage media. The transfer performance of the second storage media may refer to the throughput rate, data processing capacity, transfer bit width, transfer bandwidth, etc. of the second storage media. The transfer performance of the data transfer channels matching that of the second storage media means that the transfer performance of the data transfer channels matches that of the second storage media and will not become a bottleneck for the transfer performance of the second storage media.

[0024] In a possible design, managing data transfer channels between at least two first storage media and a second storage media includes:

[0025] Determining the number N of the first storage media according to a first ratio between the transfer bit width of the second storage media and the transfer bit width of the first storage media, or according to a second ratio between the transfer bandwidth of the second storage media and the transfer bandwidth of the first storage media; where N is an integer not less than 2;

[0026] Establishing data transfer channels between the N first storage media and the second storage media based on the number N of the first storage media.

[0027] In a possible design, the method further includes:

[0028] Receiving a data reading instruction and reading target data from the second storage media according to the data reading instruction.

[0029] In a possible design, the method further includes:

[0030] Migrating the target data from the at least two first storage media to the second storage media.

[0031] In a possible design, the method further includes:

[0032] Receiving a first data writing instruction and writing first data to the at least two first storage media according to the first data writing instruction.

[0033] In a possible design, the method further includes:

[0034] Receive a second data writing instruction, and write second data to the second storage medium according to the second data writing instruction.

[0035] In a possible design, the protocols used by the first data writing instruction and the second data writing instruction are the same.

[0036] In a third aspect, a data storage device is provided, including a controller, at least two first storage media, and a second storage medium; the controller communicates with the at least two first storage media and the second storage medium respectively; wherein, there is a data transmission channel between each of the first storage media and the second storage medium; the controller is used to implement the methods in the second aspect and various designs of the second aspect. The data storage device can be a memory, etc.

[0037] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer is caused to execute the method executed by the data management device in the first aspect.

[0038] In a fifth aspect, an embodiment of the present application provides a computer program product, which stores a computer program, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer is caused to execute the method executed by the data management device in the first aspect.

[0039] In a sixth aspect, the present application provides a chip system, which includes a processor and may further include a memory, and is used to implement the method executed by the data management device in the first aspect. The chip system can be composed of chips, or can include chips and other discrete devices.

[0040] In a seventh aspect, an embodiment of the present application provides a storage system, which includes the data management device described in the first aspect or the third aspect.

[0041] For the beneficial effects of the above second aspect to seventh aspect and their implementation manners, reference can be made to the description of the beneficial effects of the first aspect and its implementation manners. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1 A schematic diagram of an example of a hierarchical system involved in the present application;

[0043] Figure 2 A schematic diagram of an example of migrating data between different storage media in a hierarchical system;

[0044] Figure 3A schematic structural diagram of an example of the data management device provided in the embodiments of the present application;

[0045] Figure 4 A schematic diagram of an example of the management unit 301 provided in the embodiments of the present application;

[0046] Figure 5 A schematic diagram of an example of the data migration unit 302 in the embodiments of the present application;

[0047] Figure 6 A schematic diagram of an example of the number of data migration units 302 in the embodiments of the present application;

[0048] Figure 7 A schematic diagram of another example of the number of data migration units 302 in the embodiments of the present application;

[0049] Figure 8 A schematic structural diagram of another example of the data management device provided in the embodiments of the present application;

[0050] Figure 9 A schematic structural diagram of another example of the data management device provided in the embodiments of the present application;

[0051] Figure 10 A schematic structural diagram of another example of the data management device provided in the embodiments of the present application;

[0052] Figure 11 A schematic structural diagram of another example of the data management device provided in the embodiments of the present application;

[0053] Figure 12 A schematic flowchart of an example of the data management method provided in the embodiments of the present application;

[0054] Figure 13 A schematic structural diagram of another example of the data management device provided in the embodiments of the present application. Detailed implementation manners

[0055] In order to make the objectives, technical solutions, and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described in detail below in conjunction with the accompanying drawings of the specification and specific implementation manners.

[0056] In the embodiments of the present application, "a plurality of" means two or more. In view of this, in the embodiments of the present application, "a plurality of" can also be understood as "at least two". "At least one" can be understood as one or more, for example, understood as one, two or more. For example, including at least one means including one, two or more, and does not limit which ones are included. For example, including at least one of A, B, and C, then what can be included are A, B, C, A and B, A and C, B and C, or A, B, and C. "And / or" describes the association relationship of associated objects and indicates that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the character " / ", unless otherwise specified, generally represents an "or" relationship between the front and back associated objects.

[0057] Unless otherwise stated, the ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish multiple objects and are not used to limit the order, time sequence, priority or importance of multiple objects.

[0058] The methods and devices in the embodiments of the present application can be applied to a hierarchical system. Please refer to Figure 1 , which is a schematic diagram of an example of a hierarchical system. As Figure 1 shown, storage media with different performances are located at different levels. For example, in Figure 1Among them, there are three levels, which are marked as Level 1 to Level 3 from top to bottom. Among them, the storage medium in Level 3 is a hard disk. For example, it can include a serial advanced technology attachment (SATA) hard disk, a small computer system interface (SCSI) hard disk, a serial attached SCSI (SAS) hard disk, a fibre channel (FC) hard disk, a hard disk drive (HDD), and a solid state drive (SSD), etc.; the storage medium in Level 2 is a storage class memory (SCM), for example, it can include a phase-change memory (PCM), a resistive random-access memory (ReRAM), a magnetic random access memory (MRAM), etc.; the storage medium in Level 1 is a dynamic random access memory (DRAM), for example, it can include a synchronous dynamic random-access memory (SDRAM), a double data rate SDRAM (DDR SDRAM), etc.

[0059] From Level 1 to Level 3, the storage capacity of the storage medium in each level gradually decreases, but the read and write speed gradually increases. In this way, a larger storage capacity can be provided by the lower-layer storage medium, and a faster read and write speed can be provided by the upper-layer storage medium, which can give full play to the advantages of different media and improve the performance of the storage system.

[0060] In Figure 1 In the hierarchical system shown, the CPU of the system accesses the storage media in different levels through different protocols and interfaces. As an example, corresponding controllers can be set for the storage media in different levels. Taking Figure 1 the storage media in Level 1 and Level 2 in Figure 2, a memory controller can be set for the storage medium in level 1, and an SCM controller can be set for the storage medium in level 2. When the CPU needs to access the storage medium in level 1, it sends instructions to the memory controller; when the host CPU needs to access the storage medium in level 2, it sends instructions to the SCM controller, thereby achieving the purpose of quickly accessing the storage media of each level.

[0061] However, in a hierarchical system, there are scenarios where data migration is required, for example, migrating data stored in a storage medium at level 2 to a storage medium at level 1. Figure 2 When the above data migration is required, the SCM controller first reads the data from the storage medium of level 2, and then sends the read data to the CPU through the protocol and interface for communicating with the CPU. The CPU performs protocol conversion and other processing on the received information, generates information for communicating with the memory controller, and sends it to the memory controller through the interface for communicating with the memory controller. Finally, the memory controller decodes the information, obtains the data, and stores the data in the storage medium of level 1.

[0062] It can be seen that when performing the above data migration, the CPU and storage medium controllers at different levels need to process the data, which will cause a large delay in data migration. In addition, the above processing process needs to occupy CPU cache, computing and other resources, which will cause a large resource overhead. Therefore, how to reduce the delay and resource overhead in the data migration process is a technical problem that needs to be solved urgently.

[0063] In view of this, the present application provides a data management device, which includes a management unit and a data migration unit. The management unit manages the data transmission channel between two storage media with different transmission performances, and then the data migration unit uses the managed data transmission channel to migrate data between the two storage media. In this way, data can be directly migrated between storage media with different transmission performances through the data management device without the need for protocol conversion, data movement, and other processing through the CPU, which can reduce the CPU's delay in performing the above processing. Moreover, since the CPU does not need to be used to migrate data, the CPU's resource overhead can be reduced.

[0064] The data management device provided by the present application will be described below with reference to the accompanying drawings.

[0065] It should be noted that the data management device provided in the present application can be applied to any system including storage media with different transmission performances, or it can be understood that the data management device is a part of the system, and the system can be such as Figure 1The hierarchical system shown may also be other systems, which are not limited herein. For the convenience of description, in the following, this data management device will be applied to, for example, Figure 1 the hierarchical system shown. This system may be a server or a storage system, etc., which is not limited in the embodiments of the present invention.

[0066] Please refer to Figure 3 , which is a schematic structural diagram of an example of the data management device provided by the embodiments of this application. As Figure 3 shown, the data management device includes a management unit 301 and a data migration unit 302. The data management device can be used to manage data in storage media with different transmission performances. Taking the storage media with different transmission performances including a first storage media and a second storage media as an example, wherein the transmission performance of the first storage media is lower than that of the second storage media. The data management device can be respectively connected to at least two first storage media and the second storage media, and there is a data transmission channel between each first storage media and the second storage media. The management unit 301 is used to manage the data transmission channels between the at least two first storage media and the second storage media, and the data migration unit 302 uses the data transmission channels managed by the management unit 301 to migrate data between the second storage media and the at least two first storage media.

[0067] Among them, the management unit 301 manages the data transmission channels between the first storage media and the second storage media. It can be understood that the management unit 301 determines multiple data transmission channels for data transmission between the first storage media and the second storage media. In the embodiments of the present invention, the management unit 301 determining multiple data transmission channels for data transmission between the first storage media and the second storage media is referred to as a virtual transmission channel. Since the transmission performance of the first storage media is lower than that of the second storage media, multiple data transmission channels, that is, multiple first storage media are used to perform data transmission with the second storage media in parallel to narrow the gap between the transmission performances of the first storage media and the second storage media.

[0068] In one implementation, one data transmission channel corresponds to the data bits in the first storage media for data transmission, and the management unit 301 can be a device for combining the data bits of at least two first storage media. Please refer to Figure 4 , which is a schematic diagram of an example of the management unit 301. In Figure 4 , taking the first storage media as the SCM in level 2 shown in Figure 1 , and the second storage media as Figure 1For the DRAM in level 1 shown, the management unit 301 can be a super SCM port physical layer (super SCM PHY), which takes the data bits of at least two SCMs as a virtual data transmission channel. For example, the data bits of 8 SCMs are taken as a virtual data transmission channel, and this virtual data transmission channel is uniformly controlled by the data read pulse (DQS) in the super SCM PHY. In this way, the virtual data transmission channel can synchronously transmit the data in multiple SCMs. Compared with a single SCM, its transmission performance is improved. For example, the transmission bandwidth of a single SCM is 800 MB / s. If this virtual data transmission channel contains the data bits of 8 SCMs, then the transmission bandwidth of this virtual data transmission channel is 800 * 8 = 6400 MB / s, thereby improving the rate of data migration between the SCM and the DRAM and reducing the latency of data migration.

[0069] As an example, the transmission performance of the virtual data transmission channel matches the transmission performance of the second storage medium. The transmission performance of the second storage medium can refer to the throughput rate, data processing ability, transmission bit width, or transmission bandwidth, etc. The transmission performance of the data transmission channel matching the transmission performance of the second storage medium means that the transmission performance of the data transmission channel matches the transmission performance of the second storage medium and will not become a bottleneck for the transmission performance of the second storage medium. In this way, the amount of data sent by the virtual data transmission channel matches the unit amount of data that the second storage medium can process. Thus, when the second storage medium receives data through this virtual data transmission channel, it can directly process the data, further reducing the latency of data migration.

[0070] In the embodiments of the present application, the transmission performance can be represented by the transmission bit width or the transmission bandwidth. Then, the management unit 301 can determine the number N of the first storage media according to the first ratio between the transmission bit width of the second storage medium and the transmission bit width of the first storage medium, or according to the second ratio between the transmission bandwidth of the second storage medium and the transmission bandwidth of the first storage medium, where N is an integer not less than 2. Then, the management unit 301 establishes a data transmission channel between the N first storage media and the second storage medium based on the number N of the first storage media.

[0071] For example, if the first storage medium is SCM and the second storage medium is DDR4, and the management unit 301 determines that the transmission bit width of the SCM is 8 bits (bit) and the transmission bit width of the DDR4 is 64 bit, then the ratio between the transmission bit width of the DDR4 and that of the SCM is 8. Thus, the management unit 301 determines to establish data transmission channels between 8 SCMs and 1 DDR4. Another example, if the first storage medium is SCM and the second storage medium is DDR5, and the management unit 301 determines that the transmission bandwidth of the SCM is 800 MB / s and the transmission bandwidth of the DDR5 is 3200 MB / s, then the ratio between the transmission bandwidth of the DDR5 and that of the SCM is 4. Thus, the management unit 301 determines to establish data transmission channels between 4 SCMs and 1 DDR5.

[0072] It should be noted that if other parameters are used to represent the transmission performance of different storage media, the management unit 301 can also determine the value of N in other ways, which is not limited herein.

[0073] Please refer to Figure 5 , which is a schematic diagram of an example of the data migration unit 302 in the embodiment of the present application. As Figure 5 shown, the data migration unit 302 can be composed of multiple modules such as an encoding and decoding module, a scrambling or descrambling module, a cyclic redundancy check (CRC) module, and an encryption and decryption module. Through the data migration unit 302, encoding and decoding processing, scrambling or descrambling processing, cyclic redundancy check (CRC) processing, and encryption processing are performed on the data in the managed data transmission channel to ensure the reliability of the migrated data in the managed data transmission channel. Of course, the data migration unit 302 can also be an independent chip, and the independent chip can be used to implement the functions of the above multiple modules. The specific implementation manner of the data migration unit 302 is not limited herein.

[0074] In the embodiment of the present application, the number of data migration units 302 can be one or multiple. Specifically, the management unit 301 can create virtual data transmission channels between the first storage medium and the second storage medium according to the number of the first storage medium and the second storage medium.

[0075] For example, the management unit 301 is used to manage the data transfer channels between eight first storage media and one second storage media. For example, the management unit 301 creates a virtual data transfer channel between every four first storage media and the second storage media. That is to say, the management unit 301 creates a total of two virtual data transfer channels. Each virtual data transfer channel includes the data transfer channels between four first storage media and the second storage media. In this case, as an example, the number of data migration units 302 can be one, as Figure 6 shown, the data migration units 302 are respectively connected to two virtual data transfer channels, and are used to migrate data between the multiple first storage media and the second storage media through the two virtual data transfer channels.

[0076] As another example, the number of data migration units 302 can also be multiple. Specifically, the number thereof can be the same as the number of virtual data transfer channels. As Figure 7 shown, the management unit 301 creates two virtual data transfer channels between the first storage media and the second storage media. Therefore, the number of data migration units 302 is also two. Each data migration unit 302 is respectively connected to a virtual data transfer channel to migrate data. In this case, by respectively migrating data through multiple independent data migration units 302, the situation that data between multiple virtual data transfer channels is blocked can be avoided, and the quality of service (QoS) of the data management device can be improved.

[0077] Furthermore, in order to facilitate the CPU in the system to read the data in the first storage media and the second storage media, the data management device in the embodiment of the present application may further include a data processing unit 303, which is used to receive a data reading instruction and read target data from the second storage media according to the data reading instruction.

[0078] As an example, please refer to Figure 8, the data processing unit 303 is respectively connected to the second storage medium and the data migration unit 302. When the data processing unit 303 receives the data reading instruction, it first reads the target data from the second storage medium. If the target data does not exist in the second storage medium, the data processing unit 303 sends a migration instruction to the data migration unit 302. According to this migration instruction, the data migration unit 302 migrates the target data from at least two first storage media to the second storage medium. Alternatively, after receiving the data reading instruction, the data processing unit 303 first determines whether the target data is stored in the first storage medium or the second storage medium. For example, the storage capacity of the first storage medium is greater than that of the second storage medium. Therefore, the amount of data stored in the first storage medium is larger and the amount of data stored in the second storage medium is smaller. Therefore, if the amount of the target data is greater than the threshold, it is determined that the target data is stored in the first storage medium; otherwise, it is determined that the target data is stored in the second storage medium. If the target data is stored in the first storage medium, the data migration unit 302 migrates the target data from the first storage medium to the second storage medium; if the target data is stored in the second storage medium, the target data is directly read from the second storage medium.

[0079] As can be seen from the above process, regardless of which storage medium the target data to be read by the data processing unit 303 when receiving the data reading instruction is stored in, the data processing unit 303 can obtain the target data. Therefore, the data processing unit 303 only needs to present a unified data reading interface externally, and reads the data stored in the first storage medium and the second storage medium through this unified data reading interface. In this way, the Figure 2 controllers for the two storage media (i.e., the SCM controller and the memory controller) in the system shown can be unified into the data management device in the embodiment of the present application, which can reduce the performance requirements for the storage medium controllers in the system, and can Figure 2 change the parallel structure between different storage media shown into the series structure in the embodiment of the present application, simplifying the system architecture. In addition, since the CPU can read data from or write data to the two storage media through the unified data reading interface, that is, the CPU can access these two storage media using only one protocol (including memory semantics and input and output (IO) semantics, etc.), which can simplify the data access process of the CPU.

[0080] Further, in addition to reading data from the first storage medium and the second storage medium, the CPU may also need to write data to the first storage medium or the second storage medium. In the embodiments of the present application, the data management device may further include a data processing unit 304, configured to receive a first data write instruction and write first data to at least two first storage mediums according to the first data write instruction, or the data processing unit 304 is further configured to receive a second data write instruction and write second data to the second storage medium according to the second data write instruction.

[0081] As an example, please refer to Figure 9 , the data processing unit 304 is respectively connected to the second storage medium and the data migration unit 302. When the data processing unit 304 receives the first data write instruction, it can directly write the first data carried in the first data write instruction to at least two first storage mediums through the data migration unit 302; or, the data processing unit 304 can also determine whether to write the first data to the first storage medium or the second storage medium according to a preset policy. The preset policy may be to judge the data volume of the first data. If the data volume of the first data is less than the threshold, it is determined to write the first data to the second storage medium, otherwise, write the first data to the first storage medium; or, the storage location of the first data is indicated in the first data write instruction. For example, the storage location of the first data is at least two first storage mediums, then the data processing unit 304 will write the first data to at least two first storage mediums according to this. The processing manner of the data processing unit 304 for the second data write instruction is similar to that for the first data write instruction, and will not be elaborated here.

[0082] From the above process, it can be seen that the data processing unit 304 can write data to the first storage medium and the second storage medium respectively according to the data write instruction. Therefore, similar to the data processing unit 303, the data processing unit 304 only needs to present a unified data write interface externally, and write data to the first storage medium and the second storage medium through this unified data write interface. That is to say, the CPU can write data to these two storage mediums using only one protocol, that is, in the above process, the first data write instruction and the second data write instruction received by the data processing unit 304 use the same protocol, thereby simplifying the data write process of the CPU.

[0083] It should be noted that the data processing unit 303 and the data processing unit 304 can be two independent data processing units. Among them, the data processing unit 303 is the data processing unit for data reading, and the data processing unit 304 is the data processing unit for data writing. Alternatively, the data processing unit 303 and the data processing unit 304 can also be integrated into the same data processing unit. This data processing unit realizes the function of the data processing unit 303 through the program code for data reading and a data reading interface, and realizes the function of the data processing unit 304 through the program code for data writing and a data writing interface. In this case, the data processing unit 303 and the data processing unit 304 are used to receive the data reading instruction and the data writing instruction of the CPU, and can also communicate with the data migration unit 302 to read data from at least two first storage media or write data to at least two first storage media.

[0084] In addition, considering that the transmission performance of the first storage medium is lower than that of the second storage medium, when writing data to at least two first storage media, the amount of data sent to at least two first storage media per unit time will be greater than the amount of data written to at least two first storage media. Therefore, in order to ensure that the data can be completely written to at least two first storage media, a cache unit 305 can also be set in the data management device. As an example, please refer to Figure 10 for the structural block diagram of another example of the data management device. In Figure 10 , the cache unit 305 is connected to the data processing unit 304 and is used to receive and cache data from the data processing unit 304. When the data processing unit 304 determines to write data to at least two first storage media, the data processing unit 304 first sends the data to the cache unit 305, and then reads the data from the cache unit 305 in batches and writes the read data to at least two first storage media until all the data in the cache unit 305 is written to at least two first storage media.

[0085] Furthermore, in order to reduce the load of the data processing unit 304, the data management device in the embodiment of the present application can also include a writing processing unit 306. As an example, please refer to Figure 11 , the writing processing unit 306 is respectively connected to Figure 10The cache unit 305 shown is connected to the data migration unit 302, which is used to read data from the cache unit 305 and then write the read data into at least two first storage media by using the data migration unit 302. In this case, when the data processing unit 304 receives the first write data instruction, it only needs to store the data carried in the first write data instruction into the cache unit 305. Then, after the write processing unit 306 reads the data from the cache unit 305, it writes the data into at least two first storage media, which can reduce the load of the data processing unit 304.

[0086] In a possible implementation manner, if the first storage medium is the SCM as shown in Figure 2 the write processing unit 306 is used to write data into at least two first storage media.

[0087] From Figures 8 - 11 the data management device shown, it can be seen that the data management device can directly communicate with the CPU to read data from the first storage medium and the second storage medium or write data to the first storage medium or the second storage medium. From this perspective, the above data management device can be replaced Figure 2 the memory controller and the SCM controller shown in, so as to obtain a new structure system composed of the data management device and the CPU. In the new structure system, the parallel structure between different levels of storage media shown in Figure 2 becomes the series connection shown in Figures 8 - 11 as shown in, and the design of the controller for different levels of storage media can also be simplified.

[0088] Based on the same inventive concept, an embodiment of the present application provides a data management method, which is applied to any one of the data management devices shown in Figures 3 - 11 Please refer to Figure 12 , which is a flowchart of an example of this method. The description of this flowchart is as follows:

[0089] S1201. The management unit 301 manages the data transmission channels between at least two first storage media and the second storage media.

[0090] Among them, the relationship between the transmission performances of the first storage medium and the second storage medium has been introduced in the foregoing content and will not be elaborated here. The management unit 301 manages the data transmission channels between each first storage medium and the second storage medium.

[0091] Specifically, the management unit 301 may randomly create virtual data transfer channels between the multiple first storage media and the second storage media. Alternatively, the management unit 301 may determine the number N of the first storage media according to a first ratio between the transfer bit width of the second storage media and the transfer bit width of the first storage media, or according to a second ratio between the transfer bandwidth of the second storage media and the transfer bandwidth of the first storage media, and then establish data transfer channels between the N first storage media and the second storage media based on the number N of the first storage media. The specific process may refer to the foregoing description of the management unit 301 and will not be elaborated here.

[0092] Of course, the management unit 301 may also create the managed data transfer channels between the first storage media and the second storage media in other ways, which is not limited in the embodiments of the present application.

[0093] S1202. The data migration unit 302 migrates data between the second storage media and the at least two first storage media by using the data transfer channels.

[0094] In a possible implementation manner, if the data management device further includes a data processing unit 303, the method may further perform step S1203, that is:

[0095] S1203. The data processing unit 303 receives a data reading instruction and reads target data from the second storage media according to the data reading instruction.

[0096] Specifically, after the data processing unit 303 receives the data reading instruction, it may determine the storage location of the target data. If the target data is stored in the second storage media, the data processing unit 303 directly reads the target data from the second storage media; if the target data is stored in the at least two first storage media, the data processing unit 303 uses the data migration unit 302 to migrate the target data from the at least two first storage media to the second storage media, and then reads the target data from the second storage media. The specific process may refer to the foregoing description of the data processing unit 303 and will not be elaborated here.

[0097] In a possible implementation manner, if the data management device further includes a data processing unit 304, the method may further perform step S1204, that is:

[0098] S1204. The data processing unit 304 receives a first data writing instruction and writes first data to the at least two first storage media according to the first data writing instruction.

[0099] S1205. The data processing unit 304 receives a second data writing instruction and writes second data to the second storage medium according to the second data writing instruction.

[0100] In the embodiments of the present application, the protocols used for the first data writing instruction and the second data writing instruction are the same. Taking the data processing unit 304 receiving the first data writing instruction as an example, the data processing unit 304 can determine the storage location of the first data according to a preset policy. If it is determined that the first data is stored in the second storage medium, the data processing unit 304 directly writes the first data into the second storage medium; if it is determined that the first data is stored in at least two first storage media, the data processing unit 304 uses the data migration unit 302 to write the first data into at least two first storage media. Alternatively, the data processing unit 304 writes the first data into the corresponding storage medium according to the storage location indicated in the first writing instruction. The specific process can refer to the foregoing description of the data processing unit 304 and will not be elaborated here.

[0101] It should be noted that steps S1203 to S1205 are optional steps, that is, they are not necessarily executed. Therefore, Figure 12 Steps S1203 to S1205 are represented by dashed lines in

[0102] In the above technical solution, data can be directly migrated between storage media with different transmission performances through this data management device, without the need to be processed by the CPU in the system, which can reduce the latency of the CPU for the above processing. Moreover, since migrating data does not require the use of the CPU, the resource overhead of the CPU can be reduced.

[0103] In the above embodiments provided by the present application, in order to implement each function in the method provided by the above embodiments of the present application, the storage system may include a hardware structure and / or software module, and implement the above functions in the form of a hardware structure, a software module, or a combination of a hardware structure and a software module. Whether a certain function among the above functions is executed in the form of a hardware structure, a software module, or a combination of a hardware structure and a software module depends on the specific application and design constraint conditions of the technical solution.

[0104] Figures 3 - 11 The division of modules in the embodiments shown is illustrative, merely a logical function division. In actual implementation, there may be other division methods. In addition, in each embodiment of the present application, each functional module may be integrated in a processor, may exist separately physically, or two or more modules may be integrated in one module. The above integrated modules may be implemented in the form of hardware or in the form of software functional modules.

[0105] Such as Figure 13The data management device 1300 provided by the embodiment of the present application is shown below. Among them, the data management device 1300 can be a chip system. In the embodiment of the present application, the chip system can be composed of chips, or can include chips and other discrete devices.

[0106] The data management device 1300 includes at least one controller 1320, which is used to implement or support the data management device 1300 to implement the method provided by the embodiment of the present application. For specific details, please refer to the detailed description in the method example, which will not be elaborated here.

[0107] The data management device 1300 has a communication interface 1310, and the communication interface 1310 is used to communicate with the CPU.

[0108] In the embodiment of the present application, the specific connection medium between the above-mentioned communication interface 1310 and the controller 1320 is not limited. In the embodiment of the present application Figure 13 it is shown that the controller 1320 and the communication interface 1310 are connected through a bus 1330. This bus can be a bus that communicates using a data consistency protocol. The bus is Figure 13 shown as a thick line in the figure. The connection manners between other components are only for illustrative purposes and are not limited thereto. The bus can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, Figure 13 only one thick line is shown in the figure, but it does not mean that there is only one bus or one type of bus.

[0109] In the embodiment of the present application, the controller 1320 can be a super SCM PHY, or a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, and can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiment of the present application. The general-purpose processor can be a microprocessor or any conventional processor, etc. The steps of the method disclosed in combination with the embodiment of the present application can be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.

[0110] An embodiment of the present invention further provides a data storage device, including a controller, at least two first storage media, and a second storage media; the controller communicates with the at least two first storage media and the second storage media respectively; wherein, there is a data transmission channel between each of the first storage media and the second storage media; the controller is used to implement the method described above in the embodiment of the present invention. The data storage device may be a memory, etc., and the present invention does not limit this. The controller may be a Field Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC), etc., or a combination of the above. The data storage device further includes a communication interface. In the embodiment of the present invention, the controller may refer to Figure 13 the controller 1320 therein, which will not be elaborated here.

[0111] An embodiment of the present application further provides a computer-readable storage medium, including instructions, which when running on a computer, cause the computer to execute Figure 12 the data management method in the embodiment shown in Figures 3 - 11 or execute the method executed by the data management device in

[0112] An embodiment of the present application further provides a computer program product, including instructions, which when running on a computer, cause the computer to execute Figure 12 the data management method in the embodiment shown in Figures 3 - 11 or execute the method executed by the data management device in

[0113] An embodiment of the present application provides a chip system, which includes a processor and may further include a memory, and is used to implement the functions of the data management device in the foregoing method. The chip system may be composed of chips or may include chips and other discrete devices.

[0114] An embodiment of the present application provides a storage system, which includes Figures 3 - 11 the data management device in the embodiment shown in

[0115] In the method provided by the embodiments of the present application, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more integrated available media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a digital video disc (DVD)), or a semiconductor medium (such as an SSD), etc.

Claims

1. A data management device, characterized in that, Comprising: A data processing unit, configured to receive a data access instruction sent by a data processing device in the system, and execute the data access instruction to perform a memory access operation on at least two first storage media and / or a second storage media, wherein the transmission performance of the at least two first storage media is lower than that of the second storage media; A management unit, configured to manage a data transmission channel between the at least two first storage media and the second storage media; A data migration unit, configured to migrate data by using the data transmission channel when it is determined that data needs to be migrated between the at least two first storage media and the second storage media; Wherein, the data management device and the data processing device are independent devices in the system.

2. The device according to claim 1, characterized in that, The transmission performance of the data transmission channel matches that of the second storage media.

3. The device according to claim 1 or 2, characterized in that, The management unit is specifically configured to: determine the number N of the first storage media according to a first ratio between the transmission bit width of the second storage media and the transmission bit width of the first storage media, or according to a second ratio between the transmission bandwidth of the second storage media and the transmission bandwidth of the first storage media; where N is an integer not less than 2; Establish a data transmission channel between the N first storage media and the second storage media based on the number N of the first storage media.

4. The device according to claim 1 or 2, characterized in that, The data access instruction is a data read instruction, and the data processing unit reads target data from the second storage media according to the data read instruction.

5. The device according to claim 4, characterized in that, The data migration unit is further configured to migrate the target data from the first storage media to the second storage media.

6. The device according to claim 1 or 2, characterized in that, The data access instruction is a first data write instruction, and the data processing unit writes first data to the at least two first storage media according to the first data write instruction.

7. The device according to claim 6, characterized in that, The data access instruction is a second data write instruction, and the data processing unit writes second data to the second storage media according to the second data write instruction.

8. The device according to claim 7, characterized in that, The first data write instruction and the second data write instruction use the same protocol.

9. A data management method, characterized in that, Comprising: The data management device receives a data access instruction of the data processing device in the system, and executes the data access instruction to perform a memory access operation on at least two first storage media and / or a second storage media, wherein the transmission performance of the at least two first storage media is lower than that of the second storage media; The data management device manages a data transmission channel between the at least two first storage media and the second storage media, wherein the data management device and the data processing device are independent devices in the system; The data management device migrates data by using the data transmission channel when it is determined that data needs to be migrated between the first storage media and the second storage media.

10. The method according to claim 9, characterized in that, The transmission performance of the data transmission channel matches that of the second storage media.

11. The method according to claim 9 or 10, characterized in that, The data management device manages a data transmission channel between the at least two first storage media and the second storage media, including: Determine the number N of the first storage media according to a first ratio between the transfer bit width of the second storage media and the transfer bit width of the first storage media, or according to a second ratio between the transfer bandwidth of the second storage media and the transfer bandwidth of the first storage media; where N is an integer not less than 2; Establish a data transfer channel between the N first storage media and the second storage media based on the number N of the first storage media.

12. The method according to claim 9 or 10, characterized in that, The data access instruction is a data read instruction, and the execution of the data access instruction to perform a memory access operation on the first storage media and / or the second storage media includes: Read target data from the second storage media according to the data read instruction.

13. The method according to claim 12, characterized in that, The method further includes: Migrate the target data from the at least two first storage media to the second storage media.

14. The method according to claim 9 or 10, characterized in that, The data access instruction is a first data write instruction, and the execution of the data access instruction to perform a memory access operation on the first storage media and / or the second storage media includes: Write first data to the at least two first storage media according to the first data write instruction.

15. The method according to claim 14, wherein, The data access instruction is a second data write instruction, and the execution of the data access instruction to perform a memory access operation on the first storage media and / or the second storage media includes: Write second data to the second storage media according to the second data write instruction.

16. The method according to claim 15, wherein, The first data write instruction and the second data write instruction use the same protocol.

17. A data storage device, wherein, Comprising a controller, at least two first storage media and a second storage media; the controller communicates with the at least two first storage media and the second storage media respectively; The controller is configured to: Receive a data access instruction sent by a data processing device in the system, and execute the data access instruction to perform a memory access operation on the first storage media and / or the second storage media; Manage a data transfer channel between the at least two first storage media and the second storage media, the transfer performance of the first storage media being lower than the transfer performance of the second storage media; When it is determined that data needs to be migrated between the first storage media and the second storage media, then use the data transfer channel to migrate the data; Wherein, the controller and the data processing device are independent devices in the system.

18. The data storage device according to claim 17, wherein, The transfer performance of the data transfer channel matches the transfer performance of the second storage media.

19. The data storage device according to claim 17 or 18, wherein, The controller is specifically configured to: determine the number N of the first storage media according to a first ratio between the transfer bit width of the second storage media and the transfer bit width of the first storage media, or according to a second ratio between the transfer bandwidth of the second storage media and the transfer bandwidth of the first storage media; where N is an integer not less than 2; Establish a data transfer channel between the N first storage media and the second storage media based on the number N of the first storage media.

20. The data storage device according to claim 17 or 18, wherein, The data access instruction is a data read instruction, and the controller is further configured to read target data from the second storage media according to the data read instruction.

21. The data storage device according to claim 20, wherein, The controller is further configured to migrate the target data from the at least two first storage media to the second storage media.

22. The data storage device according to claim 17 or 18, wherein, The data access instruction is a first data write instruction, and the controller is further configured to write first data to the at least two first storage media according to the first data write instruction.

23. The data storage device according to claim 22, wherein, The data access instruction is a second data write instruction, and the controller is further configured to write second data to the second storage media according to the second data write instruction.

24. The data storage device according to claim 23, wherein, The first data write instruction and the second data write instruction use the same protocol.

25. A computer storage medium, wherein, The computer storage medium stores instructions that, when executed on a computer, cause the computer to perform the method according to any one of claims 9-16.

26. A computer program product, wherein, The computer program product stores instructions that, when executed on a computer, cause the computer to perform the method according to any one of claims 9-16.

Citation Information

Patent Citations

  • Solid disc storage system and solid disc controller of paralleling data access architecture

    CN101398745A