WO2023016407A1 - 数据传输方法、系统、装置及设备 - Google Patents

数据传输方法、系统、装置及设备 Download PDF

Info

Publication number
WO2023016407A1
WO2023016407A1 PCT/CN2022/110865 CN2022110865W WO2023016407A1 WO 2023016407 A1 WO2023016407 A1 WO 2023016407A1 CN 2022110865 W CN2022110865 W CN 2022110865W WO 2023016407 A1 WO2023016407 A1 WO 2023016407A1
Authority
WO
WIPO (PCT)
Prior art keywords
sub
portal
sqe
identification information
metadata
Prior art date
Application number
PCT/CN2022/110865
Other languages
English (en)
French (fr)
Inventor
吉辛维克多
李君瑛
曲会春
古列维奇埃琳娜
陆钢
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023016407A1 publication Critical patent/WO2023016407A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Definitions

  • the present application relates to the field of computer technology, and in particular to a data transmission method, system, device and equipment.
  • the host usually sends the submission queue element (submission queue element, SQE) (also referred to as data
  • SQE submission queue element
  • An operation request such as a read data request or a write data request, etc.
  • the host when the host sends the SQE to the IO device, it first generates a long command including the SQE, and then generates a message including the SQE and the address for storing the SQE according to the long command to perform the sending operation.
  • the above long command format limits It can only provide 64 bytes of space for carrying the data sent by the host to the IO device, and the length of SQE is usually just 64 bytes, as shown in Figure 1. Therefore, the space for carrying data provided by the above long instructions Just finished being occupied by SQE.
  • the IO device in addition to obtaining the SQE, the IO device also needs to obtain the metadata of the SQE (such as the sequence number (sequence) of the SQE, the identification of the process sending the SQE, the identification of the process receiving the SQE, etc.), and
  • the metadata of the SQE has a certain length. Therefore, the IO device cannot simultaneously obtain the metadata of the SQE and the SQE through the above method. How to provide a method for the IO device to simultaneously obtain the metadata of the SQE and the SQE has become a technical problem to be solved urgently.
  • the present application provides a data transmission method, system, device and equipment, which can realize the acquisition of SQE and metadata of SQE by IO equipment at the same time.
  • a data transmission method includes: a host sends a first message to an IO device, the first message includes a first SQE and identification information of a first sub-portal, wherein the first sub-portal uses To store the first SQE, the identification information of the first sub-portal corresponds to the metadata of the first SQE, and then the IO device receives and parses the first message to obtain the identification information of the first SQE and the first sub-portal, and according to the first SQE The identification information of a sub-portal is used to obtain the metadata of the first SQE.
  • the host does not need to transmit the metadata of the SQE and the SQE to the IO device. It only needs to send a message including the SQE and the identification information of the sub-portal used to store the SQE to the IO device.
  • the IO device After the message is received, the SQE and the metadata of the SQE can be acquired simultaneously according to the message containing the SQE and the identification information of the sub-portal included in the message.
  • the method before the host sends the first packet to the IO device, the method further includes: the host acquires identification information of multiple sub-portals included in the first portal, and the first portal belongs to the IO device; The metadata of an SQE and the identification information of the first sub-portal determine the first sub-portal corresponding to the metadata of the first SQE.
  • the host determines the sub-portal corresponding to the metadata of the SQE by matching the metadata of the SQE with the identification information of multiple sub-portals, and then sends the identification information of the sub-portals corresponding to the metadata of the SQE to the IO device through a message , so that the IO device can obtain the metadata of the SQE according to the corresponding relationship between the identification information of the sub-portal and the metadata of the SQE.
  • the host does not need to transmit the metadata of the SQE and the SQE to the IO device, but the IO device can simultaneously Obtain the SQE and metadata of the SQE.
  • the identification information of the first sub-portal includes one or more of the following: a serial number of the first sub-portal, a first address of the first sub-portal, and a last address of the first sub-portal.
  • the identification information of the sub-portal can be various information such as serial number, first address, and last address. That is to say, this embodiment of the application is applicable to IO devices with various sub-portal identification information , can improve the applicability and commercial value of this application.
  • the first sub-portal includes multiple apertures
  • the metadata of the first SQE includes the first type of data and the second type of data
  • the identification information of the first sub-portal corresponds to the first type of data
  • the multiple The identification information of the aperture corresponds to the second type of data.
  • the host can determine the first type of data by matching the first type of data with the identification information of the first sub-portal.
  • the sub-portal determines the plurality of apertures included in the first sub-portal as apertures corresponding to the second type of data, and then, when the host sends the first message to the IO device, the first message may include the first SQE, the first The identification information of the sub-portal and the identification information of the aperture.
  • the IO device After receiving and analyzing the first message, the IO device can obtain the first SQE, the identification information of the first sub-portal and the identification information of the aperture, and then according to the identification of the first sub-portal The information acquires the first type of data, and the second type of data is acquired according to the identification information of the aperture.
  • the host does not need to transmit the metadata of the SQE (that is, the first type of data and the second type of data) together with the SQE to the IO device, it only needs to send the identification information including the SQE, the sub-portal and the aperture to the IO device
  • the IO device can obtain the SQE and SQE metadata at the same time according to the SQE, sub-portal identification information and aperture identification information included in the message.
  • the IO device obtains the metadata of the first SQE according to the identification information of the first sub-portal, which specifically includes: the IO device obtains the first type of data according to the identification information of the first sub-portal, and according to The identification information of multiple apertures is used to obtain the second type of data.
  • the metadata of the first SQE includes one or more of the following: the serial number of the first SQE in multiple SQEs, the serial number of the epoch corresponding to the first SQE, the An identifier, an identifier of a process receiving the first SQE, and a priority level of the first SQE, wherein the first SQE belongs to multiple SQEs.
  • the IO device can obtain the serial numbers of multiple SQEs, the serial numbers of the epochs corresponding to multiple SQEs, the identifiers of processes sending multiple SQEs, and the process IDs of processes receiving multiple SQEs while acquiring multiple SQEs. ID, priority levels of multiple SQEs, etc.
  • the IO device can use the serial numbers of multiple SQEs, the serial numbers of the epochs corresponding to multiple SQEs, the IDs of processes that send multiple SQEs, and the The identification of the process, the priority level of multiple SQEs, etc. sort multiple SQEs or perform other operations. If multiple SQEs are lost during the transmission process, the IO device can also determine which SQE is lost.
  • embodiments of the present application are applicable to scenarios where IO devices obtain various SQE metadata, can meet user needs in different scenarios, and improve the applicability and commercial value of the present application.
  • the method further includes: the IO device sorts the multiple SQEs according to the metadata of the multiple SQEs.
  • the IO device can obtain the metadata of multiple SQEs, so as to achieve the purpose of sorting multiple SQEs. It can be understood that in the IO device When multiple SQEs can be sorted, if multiple SQEs are lost during transmission, the IO device can also determine which SQE is lost.
  • the host is connected to the IO device through one or more of PCIe, CXL, and CCIX.
  • the embodiment of the present application can be applied to the process of data transmission between IO devices and hosts connected through various connection modes, which improves the applicability and commercial value of the present application.
  • the present application provides a data transmission system, the system includes: a host, configured to send a first message to an IO device, the first message includes the identification information of the first SQE and the first sub-portal, and the first sub-portal
  • the portal is used to store the first SQE, and the identification information of the first sub-portal corresponds to the metadata of the first SQE;
  • the IO device is used to receive and analyze the first message, and obtain the identification information of the first SQE and the first sub-portal;
  • the IO device is configured to acquire metadata of the first SQE according to the identification information of the first sub-portal.
  • the host is further configured to: acquire identification information of multiple sub-portals included in the first portal, where the first portal belongs to an IO device; and then, by matching metadata of the first SQE with the first sub-portal The identification information of the first SQE determines the first sub-portal corresponding to the metadata of the first SQE.
  • the identification information of the first sub-portal includes one or more of the following: a serial number of the first sub-portal, a first address of the first sub-portal, and a last address of the first sub-portal.
  • the first sub-portal includes multiple apertures
  • the metadata of the first SQE includes the first type of data and the second type of data
  • the identification information of the first sub-portal corresponds to the first type of data
  • the multiple The identification information of the aperture corresponds to the second type of data.
  • the IO device is specifically configured to: acquire the first type of data according to the identification information of the first sub-portal; and then acquire the second type of data according to the identification information of multiple apertures.
  • the metadata of the first SQE includes one or more of the following: the serial number of the first SQE in multiple SQEs, the serial number of the epoch corresponding to the first SQE, the ID, the ID of the process receiving the first SQE, and the priority level of the first SQE.
  • the IO device is further configured to: sort the multiple SQEs according to the metadata of the multiple SQEs.
  • the host is connected to the IO device through one or more of PCIe, CXL, and CCIX.
  • a data transmission method includes: the IO device receives and parses the first message sent by the host, and obtains the identification information of the first SQE and the first sub-portal, and the first sub-portal is used to store the first For SQE, the identification information of the first sub-portal corresponds to the metadata of the first SQE; then, according to the identification information of the first sub-portal, the metadata of the first SQE is acquired.
  • a data transmission device in a fourth aspect, includes various modules for executing the data transmission method described in the third aspect.
  • a fifth aspect provides an IO device, the IO device includes a processor and a memory; the processor is configured to execute instructions stored in the memory, so that the IO device implements the method provided in the third aspect above.
  • a computer-readable storage medium where the computer-readable medium stores instructions, and the instructions are used to implement the method provided in the third aspect above.
  • a computer program product including a computer program.
  • the computer program When the computer program is read and executed by a computing device, the computing device executes the method provided in the third aspect above.
  • FIG. 1 is a schematic diagram of a long instruction and an SQE exemplarily shown in the present application;
  • FIG. 2 is a schematic diagram of an exemplary portal shown in this application.
  • Fig. 3 is a schematic diagram of a sub-portal exemplarily shown in this application.
  • Fig. 4 is the schematic diagram of the pore size that the present application exemplarily shows
  • Fig. 5 is a schematic diagram of an epoch exemplarily shown in this application.
  • FIG. 6 is a schematic diagram of an application scenario involved in this application.
  • FIG. 7 is an interactive schematic diagram of a data transmission method provided by the present application.
  • Fig. 8 is a schematic diagram of a first portal exemplarily shown in this application.
  • Fig. 9 is a schematic diagram of another first portal exemplarily shown in this application.
  • FIG. 10 is a schematic structural diagram of a data transmission device provided by the present application.
  • Fig. 11 is a schematic structural diagram of an IO device provided by the present application.
  • SQ is a (first in first out, FIFO) linear table used to store one or more SQEs. It only allows SQEs to be inserted at one end of the table and SQEs to be deleted at the other end of the table. SQ is similar to queuing in daily life, and the SQE that enters the queue first leaves first.
  • the portal belongs to the IO device, and specifically refers to the storage space allocated for SQ in the memory of the IO device (for the detailed introduction of the IO device, please refer to the related description in FIG. 3 ).
  • the IO device stores an SQE in the SQ, which actually stores the SQE in the portal corresponding to the SQ.
  • the portal has a first address and a tail address.
  • the first address refers to the address where the IO device can start storing SQE when storing SQE in the portal.
  • the tail address refers to when the IO device 630 stores SQE in the portal.
  • the address to reach when the space is full.
  • the portal of each SQ can be a continuous address space in the memory, or a discontinuous address space, which is not limited in this embodiment.
  • Sub-portals Multiple sub-portals can form a portal, as shown in FIG. 3 , that is, the portal included in the IO device can be divided into multiple sub-portals, and each sub-portal is used to store one SQE.
  • the size of the address space of each sub-portal among the multiple sub-portals included in one portal may be equal, partially equal or completely unequal, which is not specifically limited here.
  • multiple apertures can form a sub-portal, as shown in Figure 4, that is, when the IO device divides the portal into multiple sub-portals, each sub-portal in the multiple sub-portals can also be divided into multiple apertures .
  • the number of apertures included in each sub-portal can be the same, partly the same or completely different, and the size of the address space of each aperture among the multiple apertures included in each sub-portal can be equal or partially Equal or totally unequal are not specifically limited here.
  • multiple sub-portals can form an epoch, and multiple epochs can form a portal, as shown in Figure 5, that is, when the IO device divides the portal into multiple sub-portals, it can first divide the portal into multiple epochs , and then divide each of the multiple epochs into subportals.
  • the number of sub-portals included in each era can be the same, partly the same or completely different, and the size of the address space of each sub-portal among the multiple sub-portals included in each era can be equal or partially equal Or completely unequal, not specifically limited here.
  • a portal includes multiple eras
  • the IO device when the IO device stores the SQE to be stored in the portal, it first selects a sub-portal in an era from the multiple eras included in the portal for storage. If there is a free sub-portal for storing the SQE to be stored, the IO device will always use this era to store the SQE to be stored. If there is no free sub-portal in the selected era for storing the SQE to be stored, the IO The device will select a sub-portal in a new era from the remaining eras included in the portal for storage.
  • FIG. 6 shows a schematic structural diagram of a data transmission system.
  • the data transmission system involved in this application includes: a host 610 , an input output fabric (referred to as IO fabric for short) channel 620 and an IO device 630 .
  • the host 610 can be connected to the IO device 630 through the IO interconnection channel 620 .
  • the host 610 may be a computing core and a control core, and is the final execution unit for information processing and program execution.
  • the host computer 610 includes a processor 611 and a memory 612.
  • the processor 611 can be a central processing unit (central process unit, CPU), and can also be other general processors, digital signal processors (digital signal processors, DSP), application specific integrated circuits ( application specific integrated circuit, ASIC), field-programmable gate array (field-programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • a general purpose processor may be a microprocessor or any conventional processor or the like.
  • the processor 611 may also be an on-chip (system of chip, SoC) or embedded processor.
  • the processor 611 has functions such as processing instructions, executing operations, and processing data.
  • the processor 611 can allocate independent memory resources for multiple processes, so as to run multiple processes.
  • the memory 612 may be implemented by a random access device (random access memory, RAM) or other storage media.
  • the memory 612 can be used to store program codes of multiple processes, and store data generated when multiple processes run.
  • the IO interconnection channel 620 is an interconnection mechanism between the host computer 610 and the IO device 630, for example, a peripheral component interconnect express (PCIe), a computer express link (CXL), and a cache-coherent interconnection protocol (cache coherent interconnect for accelerators, referred to as CCIX) and so on.
  • PCIe peripheral component interconnect express
  • CXL computer express link
  • CCIX cache coherent interconnection protocol
  • the IO device 630 is a hardware device capable of data transmission with the host 610 .
  • the IO device 630 can be a network interface controller (network interface controller, NIC), a host bus adapter (host bus adapter, HBA), a host channel adapter (host channel adapter, HCA), an accelerator (accelerator), a graphics processor (graphics processing unit, GPU) and so on.
  • the IO device 630 includes a memory 631 .
  • the memory 631 can be implemented by RAM or other storage media.
  • Various applications can be installed on the host 610, such as video playback applications, social networking applications, etc.
  • the applications installed on the host 610 are running, they can generate SQE, and then the processor 611 in the host 610 sends the SQE
  • the IO device 630 performs corresponding operations according to the SQE.
  • the host 610 and the IO device 630 usually realize the sending and receiving of SQE based on the SQ of the portal, and the process is specifically as follows:
  • the IO device 630 may send the identification information of the portal to the host 610, and the host 610 establishes a correspondence between the portal and a specific application. Then, when the host 610 obtains the SQE sent by the specific application, it first generates a long command including the SQE, and then generates a message including the SQE and the identification information of the portal corresponding to the specific application according to the long command, and then sends the message Send to the IO device 630. The IO device 630 stores the SQE in the SQ based on the portal according to the identification information of the portal corresponding to the specific application in the packet.
  • the identification information of the portal is used to indicate the address for storing the SQE in the IO device 630, including but not limited to a combination of one or more of the following: serial number of the portal, first address of the portal, last address of the portal, and the like.
  • the present application provides a data transmission method, which can be applied to the data transmission system shown in Figure 6, and the host 610 in the system shown in Figure 6 does not need to transmit the metadata of the SQE together with the SQE to the
  • the IO device 630 can realize that the IO device 630 obtains the SQE and the metadata of the SQE at the same time.
  • the data transmission method of this embodiment includes the following steps:
  • the host 610 acquires information about portals included in the IO device 630 .
  • the portal information included in the IO device 630 includes the identification information of each portal in the portal, the identification information of the era included in each portal, the identification information of the sub-portals included in each portal, the identification information of the apertures included in each portal, and the identification information of each sub-portal.
  • the identification information of the era includes but is not limited to a combination of one or more of the following: serial number of the era, the first address of the era, the end address of the era, etc.;
  • the identification information of the sub-portal includes but is not limited to one or more of the following Combination: the serial number of the sub-portal, the first address of the sub-portal, the last address of the sub-portal, etc.;
  • the identification information of the aperture includes but not limited to the combination of one or more of the following: the serial number of the aperture, the first address of the aperture, the tail address of the aperture wait.
  • the IO device 630 can provide a driver for other devices (such as the host 610) to obtain the information of the portal included in the IO device 630, and the host 610 can obtain the IO through the above-mentioned driver provided by the IO device 630.
  • Device 630 includes information on portals.
  • the host 610 acquires the first SQE and metadata of the first SQE.
  • the host 610 will continuously generate multiple SQEs to be sent to the IO device 630.
  • the first SQE can be any one of the multiple SQEs.
  • the metadata of the first SQE can be is the serial number of the SQE.
  • the metadata of the first SQE can be the priority level of the SQE, and the metadata of the first SQE can also be the serial number of the era to which the first SQE belongs, One or more of the identifier of the process sending the first SQE, the identifier of the process receiving the first SQE, and the like.
  • the priority level of multiple SQEs refers to the priority level of multiple SQEs processed by the IO device 630. It can be understood that after the IO device 630 stores multiple SQEs, it can subsequently process multiple SQEs according to the priority levels of multiple SQEs;
  • the serial number of the era to which the first SQE belongs refers to the serial number of the era selected from the multiple eras included in the first portal when the host 610 sends the SQE to the IO device 630 when the first portal includes multiple eras.
  • the first portal refers to the portal selected by the host 610 from the portals included in the IO device 630 to store the first SQE when sending the first SQE to the IO device 630 . Refer to S703 for a detailed process of the host 610 selecting a portal for storing the first SQE from the portals included in the IO device 630 .
  • S703 The host 610 selects a first portal from portals included in the IO device 630 according to the first SQE.
  • the lengths of the multiple SQEs generated by the host 610 are the same, and the size of the address space of multiple sub-portals obtained by dividing each portal by the IO device 630 is also the same.
  • a portal whose address space size matches the length of the first SQE may be selected from the portals included in the IO device 630 as the first portal.
  • the portal whose address space size matches the length of the first SQE refers to the portal whose address space size of the included sub-portal is greater than or equal to the length of the first SQE.
  • the host 610 determines a first sub-portal from multiple sub-portals included in the first portal according to the metadata of the first SQE, where the first sub-portal is used to store the first SQE.
  • the host 610 can determine the first sub-portal corresponding to the metadata of the first SQE by matching the metadata of the first SQE with the identification information of the first sub-portal, that is, the host 610 can send the first sub-portal to
  • the metadata of the SQE is matched with the identification information of the multiple sub-portals included in the first portal, and the sub-portal that matches the metadata of the first SQE among the identification information of the multiple sub-portals is determined as the first sub-portal corresponding to the metadata of the first SQE. Subportal.
  • the identification information of only one sub-portal may match the metadata of the first SQE, or the identification information of at least two sub-portals may match the metadata of the first SQE.
  • the identification information of only one sub-portal matches the metadata of the first SQE, determine the sub-portal as the first sub-portal corresponding to the metadata of the first SQE; when there are at least two sub-portals among the multiple sub-portals When the information matches the metadata of the first SQE, any one of the at least two sub-portals may be determined as the first sub-portal corresponding to the metadata of the first SQE, which is not specifically limited here.
  • only one of the sub-portals among the sub-portals matches the metadata of the first SQE as an example.
  • the metadata of multiple SQEs are the serial numbers of multiple SQEs
  • the multiple sub-portals are sub-portal 1, sub-portal 2, ..., sub-portal n
  • multiple sub-portals The identification information of the portal is the serial number of multiple sub-portals. If the host 610 matches the serial number 1 of SQE1 with the serial numbers of multiple sub-portals respectively, and determines that the serial number 1 of sub-portal 1 matches the serial number 1 of SQE1, the host 610 can match the serial number 1 of the sub-portal with the serial number 1 of SQE1.
  • Portal 1 is determined to be the first sub-portal corresponding to the serial number 1 of SQE1; if the host 610 matches the serial number 2 of SQE2 with the serial numbers of multiple sub-portals and determines that the serial number 2 of sub-portal 2 matches the serial number 2 of SQE2, the host 610 can determine the sub-portal 2 as the first sub-portal corresponding to the serial number 2 of SQE2; ...; if the host 610 matches the serial number n of SQEn with the serial numbers of multiple sub-portals respectively, determine the serial number n of the sub-portal n and the serial number of SQEn If the serial number n matches, the host 610 may determine the sub-portal n as the first sub-portal corresponding to the serial number n of the SQEn.
  • the multiple SQEs are SQE1 and SQE2
  • the metadata of multiple SQEs are the serial numbers of multiple SQEs
  • the multiple sub-portals are the sub-portal with the first address d1, the sub-portal with the first address d2, and the sub-portal with the first address d3.
  • the portal and the sub-portal whose first address is d4, the identification information of multiple sub-portals is the first address of multiple sub-portals, if the host 610 matches the serial number 1 of SQE1 with the first addresses of multiple sub-portals respectively, it determines that the first address is d1
  • the host 610 can assign any one of the sub-portal whose first address is d1 and the sub-portal whose first address is d3
  • the sub-portal is determined to be the first sub-portal corresponding to the sequence number 1 of SQE1; if the host 610 matches the sequence number 2 of SQE2 with the first addresses of multiple sub-portals, determine the first address d2 and the first address of the sub-portal whose first address is d2
  • the above two examples are only examples to reflect the process that the host 610 determines the sub-portal that matches the metadata of the first SQE among the identification information of the multiple sub-portals as the first sub-portal.
  • the host 610 determines the sub-portal whose identification information of the multiple sub-portals matches the metadata of the first SQE as the first sub-portal can also be other, for example, the metadata of the first SQE is calculated, and the calculation result obtained is If it matches the identification information of the sub-portal, it is determined that the sub-portal is the first sub-portal, which is not specifically limited here.
  • the host 610 generates a long command including the first SQE, and then generates a first message including the first SQE and identification information of the first sub-portal according to the long command.
  • the host 610 sends the first packet to the IO device 630, and correspondingly, the IO device 630 receives the first packet sent by the host 610.
  • the IO device 630 parses the first packet to obtain the identification information of the first SQE and the first sub-portal.
  • the IO device 630 acquires metadata of the first SQE according to the identification information of the first sub-portal.
  • the multiple messages sent by the host 610 to the IO device 630 include SQE1 and sequence number 1 of sub-portal 1 message 1, message 2 including SQE2 and sequence number 2 of sub-portal 2, ..., message n including SQEn and sequence number n of sub-portal n
  • the IO device 630 can determine the serial number of the SQE as 1 according to the serial number 1 of the sub-portal; The IO device 630 can determine that the sequence number of the SQE is 2 according to the sequence number 2 of the sub-portal; ...; if the IO device 630 receives the message n and resolves the sequence number n of the SQE and the sub-portal from the message n, then the IO
  • step S704 assume that the multiple messages sent by the host 610 to the IO device 630 are message 1 including SQE1 and the first address d1 of the sub-portal and including SQE2 and the first address d2 of the sub-portal message 2, if the IO device 630 receives the message 1 and parses the message 1 to get the SQE and the first address d1 of the sub-portal, then the IO device 630 can determine the serial number of the SQE as 1 according to the first address d1; if the IO device 630 receives the message 2 and parses the message 2 to obtain the SQE and the first address d2 of the sub-portal, then the IO device 630 can determine that the sequence number of the SQE is 2 according to the first address d2.
  • the first message sent by the host 610 to the IO device 630 may also include Identification information of the first portal.
  • the IO device 630 can first find the first portal from the multiple portals it includes according to the identification information of the first portal, and then search for the first portal according to the identification information of the first sub-portal. Find the first sub-portal among multiple sub-portals of .
  • the IO device 630 can determine the serial numbers of multiple SQEs, and according to the multiple The serial number of an SQE is used to sort multiple SQEs. If multiple SQEs are lost during transmission, the IO device 630 may also determine the serial number of the lost SQE.
  • the host 610 does not need to transmit the SQE metadata and the SQE to the IO device 630, it only needs to send the SQE and the sub-portal used to store the SQE to the IO device 630
  • the IO device 630 can obtain the SQE and the metadata of the SQE at the same time according to the message of the identification information of the SQE and the sub-portal included in the message.
  • the metadata of the first SQE to be sent by the host 610 to the IO device 630 includes the first type of data and the second type of data.
  • the host 610 executes step S703 from the IO device 630.
  • the first portal selected among the portals may include an aperture, and then, the host 610 may determine the sub-portal whose identification information corresponds to the first type of data among the plurality of sub-portals included in the first portal as the first sub-portal, and assign the first sub-portal
  • the multiple included apertures are determined as apertures corresponding to the second type of data, wherein the identification information of the multiple apertures included in the first sub-portal corresponds to the second type of data.
  • the generated first message may include the first SQE, identification information of the first sub-portal, and identification information of apertures included in the first sub-portal.
  • the first type of data may be the sequence number of the first SQE, etc.
  • the second type of data may be the sequence numbers of multiple sub-SQE blocks into which the first SQE is divided, etc.
  • the identification information of only one sub-portal may match the first type of data among the multiple sub-portals, or the identification information of at least two sub-portals may match the first type of data.
  • the identification information of the sub-portal matches the first type of data, determine the sub-portal as the first sub-portal corresponding to the first type of data; when the identification information of at least two sub-portals among the multiple sub-portals match the first type of data , any one of the at least two sub-portals may be determined as the first sub-portal corresponding to the first type of data metadata, which is not specifically limited here.
  • the IO device 630 After the IO device 630 receives and parses the first message to obtain the first SQE, the identification information of the first sub-portal, and the identification information of the aperture included in the first sub-portal, it can obtain the first type of data according to the identification information of the first sub-portal
  • the second type of data is acquired according to the identification information of the aperture included in the first sub-portal, so as to achieve simultaneous acquisition of the metadata of the first SQE and the first SQE.
  • the multiple SQEs are SQE1 and SQE2, and the length of SQE1 and SQE2 is both 150 bytes, which exceeds the limit of 64 bytes.
  • the host can divide the SQE into multiple sub-SQE blocks, assuming that SQE1 is divided into sub-SQE blocks 01.
  • Sub-SQE block 02, sub-SQE block 03, SQE2 is divided into sub-SQE block 01', sub-SQE block 02', sub-SQE block 03', the length of each sub-SQE block is 50 bytes, and the metadata of SQE Including the serial number of the SQE (that is, the first type of data mentioned above) and the serial number of the sub-SQE blocks included in the SQE (that is, the second type of data mentioned above), the multiple sub-portals are sub-portal 1 and sub-portal 2, sub-portal Portal 1 includes Aperture 01, Aperture 02 and Aperture 03, sub-portal 2 includes Aperture 01', Aperture 02' and Aperture 03', and the identification information of the aperture is the serial number of the aperture.
  • the host 610 can determine the sub-portal 1 as the first portal corresponding to the serial number 1 of SQE1.
  • a sub-portal if the host 610 matches the serial number 01 of the sub-SQE block 01 with the serial numbers of multiple apertures included in the sub-portal 1, and determines that the serial number 01 of the aperture 01 matches the serial number 01 of the sub-SQE block 01, then the host 610 can Aperture 01 is determined as the first aperture corresponding to the serial number 01 of the sub-SQE block 01; if the host computer 610 matches the serial numbers of the multiple apertures included in the sub-SQE block 02 with the serial number 02, the serial number 02 of the aperture 02 is determined to be If the sequence number 02 of the sub-SQE block 02 matches, the host 610 can determine the aperture 02 as the first aperture corresponding to the sequence number 02 of the sub-SQE block 02; After matching the sequence numbers of the aperture 03 and determining that the sequence number 03 of the aperture 03 matches the sequence number 03 of the sub-SQE block 03, the host 610 can determine the aperture 03 as the first aperture corresponding to the sequence number 03 of the sub-SQE
  • the host 610 can determine sub-portal 2 as the first sub-portal corresponding to SQE2, determine aperture 01' as the first aperture corresponding to sub-SQE block 01', and determine aperture 02' as the corresponding sub-SQE block 02' Aperture 03' is determined as the first aperture corresponding to sub-SQE block 03'.
  • the multiple messages sent by the host 610 to the IO device 630 are message 1 including sub-SQE block 01, serial number 1 of sub-portal 1 and serial number 01 of aperture 01, sub-SQE block 02, sub- Message 2 with sequence number 1 of portal 1 and sequence number 02 of aperture 02, message 3 including sub-SQE block 03 in SQE1, sequence number 1 of sub-portal 1 and sequence number 03 of aperture 03, including sub-SQE block 01 in SQE2 , message 4 with sequence number 2 of sub-portal 2 and sequence number 01' of aperture 01', message 5 including sub-SQE block 02 in SQE2, sequence number 2 of sub-portal 2 and sequence number 02' of aperture 02', including SQE2
  • the serial number 2 of the sub-portal 2 and the message 6 of the serial number 03' of the aperture 03' if the IO device 630 receives the message 1 and parses the message 1 to obtain the sub-SQE block
  • the IO device 630 can pair sub-SQE block 01 and sub-SQE block according to the sequence numbers of the three sub-SQE blocks 02 and sub-SQE block 03 are merged to obtain SQE1.
  • the IO device 630 can perform sub-SQE block 01 ', sub-SQE block 02' and sub-SQE block 03' are merged to obtain SQE2.
  • the host 610 does not need to transmit the metadata of the SQE (that is, the first type of data and the second type of data) together with the SQE to the IO device 630, it only needs to send the SQE, Sub-portal identification information and aperture identification information message, after receiving the message, the IO device 630 can realize SQE and SQE according to the SQE included in the message, the sub-portal identification information and the aperture identification information. Get the metadata at the same time.
  • the multiple SQEs transmitted from the host 610 to the IO device 630 have a sequence. During the transmission process, multiple SQEs may be out of order, but the subsequent IO device 630 needs to process multiple SQEs in the order of multiple SQEs. Therefore, in this scenario, the IO device 630 needs to obtain serial numbers of multiple SQEs.
  • the host 610 is to send 32 SQEs to the IO device 630
  • the serial numbers of the 32 SQEs are 0 to 31
  • the first portal with the first address D is composed of four 4 kilobytes
  • the first portal includes a total of 32 sub-portals from sub-portal 0 to sub-portal 31, each sub-portal occupies 512 bytes, and the first addresses of the 32 sub-portals are d0 to d31.
  • the host 610 can refer to the following correspondence (1) to determine the first sub-portal from the multiple sub-portals:
  • y 1 is the serial number of the first sub-portal determined by the host 610 from multiple sub-portals
  • x 1 is the serial number of the SQE to be sent (ie, the first SQE mentioned above).
  • the host 610 sends message 0 including SQE0 and sequence number 0 of subportal 0, message 1 including SQE1 and sequence number 1 of subportal 1, ..., including SQE31 and subportal 31 to IO device 630 according to the first subportal determined above.
  • the IO device 630 can refer to the following correspondence (2) to obtain the sequence number of the SQE parsed from the message i:
  • x 2 is the serial number of the SQE obtained by the IO device 630 from the message i
  • y 2 is the serial number of the sub-portal obtained by the IO device 630 from the message i.
  • the host 610 can refer to the following correspondence (3) to determine the first sub-portal from among the multiple sub-portals:
  • D 1 is the first address of the first sub-portal determined by the host 610 from the first portal
  • the portal is a sub-portal 31 .
  • the host 610 sends to the IO device 630 a message 0 including SQE0 and the first address d0 of sub-portal 0, a message 1 including SQE1 and the first address d1 of sub-portal 1, ..., including SQE31 and sub-portal
  • the IO device 630 can refer to the following correspondence (4) to obtain the serial number of the SQE parsed from the message i:
  • D 1 ' is the first address of the sub-portal that IO device 630 parses from message i
  • D' is the first address of the portal that the first address of the sub-portal that IO device 630 parses from message i belongs to
  • w 1 ' is the bit width corresponding to the address space size of the sub-portal obtained by the IO device 630 from the message i
  • >> is the right shift operator.
  • the length of the SQE that the host 610 can send to the IO device 630 is limited, if the length of the SQE exceeds the limit (for example, exceeds 64 bytes), then the host 610 can send the SQE Divide into multiple sequential sub-SQE blocks for transmission, and then, after receiving the multiple sub-SQE blocks, the IO device 630 can recombine the multiple sub-SQE blocks in order to form an SQE.
  • the limit for example, exceeds 64 bytes
  • the IO device 630 needs to obtain the serial numbers of multiple SQEs and the serial numbers of the sub-SQE blocks included in each SQE in the multiple SQEs, so that the IO device 630 can The sequence numbers are combined to obtain each sub-SQE.
  • the first portal with the first address D is composed of four 4-kilobyte pages.
  • the first portal There are 8 sub-portals including sub-portal 0 to sub-portal 7. Each sub-portal occupies 2048 bytes.
  • the first addresses of the 8 sub-portals are d0 to d7.
  • Each sub-portal is divided into 4 apertures from aperture 0 to aperture 3.
  • Each aperture Occupying 512 bytes, the first addresses of the 4 sub-apertures included in the jth sub-portal among the 8 sub-portals are dj0 to dj3, as shown in FIG. 9 .
  • the host 610 can refer to the corresponding relationship (3) to determine the first sub-portal from the multiple sub-portals , and refer to the following correspondence (5) to determine the first aperture from the multiple apertures included in the first sub-portal:
  • D 2 is the head address of the first aperture determined by the host 610 from the multiple apertures included in the first sub-portal
  • x 1 ' is the serial number of the sub-SQE block to be sent
  • w 2 is the address space size of the first aperture Corresponding bit width.
  • the host 610 sends to the IO device 630 the sub-SQE block 0, Message 0 of the first address d0 of subportal 0 and the first address d00 of aperture 0 in subportal 0, including sub SQE block 1 in SQE0, the first address d0 of subportal 0 and the first address d01 of aperture 1 in subportal 0
  • the IO device 630 can refer to the corresponding relationship (4) to obtain the parsing from the message i
  • D 2 ′ is the serial number of the sub-SQE block that IO device 630 parses from message i
  • D 2 is the first address of the aperture that IO device 630 parses from message i
  • w 2 ′ is The bit width corresponding to the address space size of the aperture obtained by parsing the packet i.
  • the IO device 630 parses the sub-SQE block, the first address d0 of the sub-portal and the first address d00 of the aperture from the message 0, according to the above relationship (4), the IO device 630 can determine the SQE to which the parsed sub-SQE block belongs The serial number of is 0, according to the above relationship (6), the IO device 630 can determine that the serial number of the sub-SQE block obtained by parsing is 0;
  • the first address of the aperture is d01, according to the above relationship (4), the IO device 630 can determine that the sequence number of the SQE to which the analyzed sub-SQE block belongs is 0, and according to the above-mentioned relationship (6), the IO device 630 can determine that the analyzed sub-SQE The serial number of the block is 1; ...; when the IO device 630 obtains the sub-SQE block, the first address d0 of the sub-portal and the first address d03 of the aperture from the message
  • the IO device 630 can determine that the sequence number of the analyzed sub-SQE block is 3. Then, the IO device 630 may combine the acquired sub-SQE block 0, sub-SQE block 1, sub-SQE block 2, and sub-SQE block 3 to obtain SQE0.
  • the IO device 630 can be combined to obtain SQE1, SQE2, . . . , SQE7.
  • FIG. 10 is a schematic structural diagram of a data transmission device 1000 provided by the present application.
  • the first sub-portal is used to store the first SQE
  • the identification information of the first sub-portal corresponds to the metadata of the first SQE
  • the first portal belongs to the IO device 630
  • processing Module 1020 configured to acquire metadata of the first SQE according to the identification information of the first sub-portal.
  • the identification information of the first sub-portal includes one or more of the following: a serial number of the first sub-portal, a first address of the first sub-portal, and a last address of the first sub-portal.
  • the first sub-portal includes multiple apertures
  • the metadata of the first SQE includes the first type of data and the second type of data
  • the identification information of the first sub-portal corresponds to the first type of data
  • the first The identification information of the plurality of apertures included in the sub-portal corresponds to the second type of data.
  • the processing module 1020 is specifically configured to: obtain the first type of data according to the identification information of the first sub-portal, and obtain the second type of data according to the identification information of multiple apertures included in the first sub-portal. type data.
  • the metadata of the first SQE includes one or more of the following: the serial number of the first SQE in multiple SQEs, the serial number of the epoch corresponding to the first SQE, the ID, the ID of the process receiving the first SQE, and the priority level of the first SQE.
  • the processing module 1020 is further configured to: sort the multiple SQEs according to the metadata of the multiple SQEs.
  • the host is connected to the IO device through one or more of PCIe, CXL, and CCIX.
  • the data transmission device 1000 in the embodiment of the present application may be realized by an ASIC, or a programmable logic device (programmable logic device, PLD), and the above-mentioned PLD may be a complex programmable logic device (complex programmable logical device, CPLD), Realized by FPGA, generic array logic (GAL) or any combination thereof; the data transmission device 1000 can also be realized by software, and when realized by software, each module realizing the data transmission device 1000 is a software module.
  • PLD programmable logic device
  • CPLD complex programmable logical device
  • GAL generic array logic
  • the data transmission device 1000 is only an example provided by the embodiment of the present application, and the data transmission device 1000 may have more or fewer components than those shown in FIG. 10 , and two or more components may be combined , or can be implemented with different configurations of components.
  • FIG. 11 is a schematic structural diagram of an IO device 1100 provided by the present application.
  • the IO device 1100 includes: a processor 1110 , a memory 1120 and a communication interface 1130 , wherein the processor 1110 , memory 1120 and the communication interface 1130 can be connected to each other through the bus 1140.
  • the processor 1110 , memory 1120 and the communication interface 1130 can be connected to each other through the bus 1140.
  • the processor 1110 can read the program codes (including instructions) stored in the memory 1120 and execute the program codes stored in the memory 1120, so that the IO device 1100 executes the steps in the data transmission method provided by the above method embodiments.
  • the processor 1110 may have multiple specific implementation forms.
  • the processor 1110 may be a CPU, a graphics processing unit (graphics processing unit, GPU), etc., and the processor 1110 may also be a single-core processor or a multi-core processor.
  • the processor 1110 may be a combination of a CPU and a hardware chip.
  • the aforementioned hardware chip may be realized by ASIC or PLD.
  • the aforementioned PLD may be CPLD, FPGA, GAL or any combination thereof.
  • the processor 1110 may also be implemented solely by a logic device with built-in processing logic, such as FPGA or DSP.
  • the memory 1120 can store program codes as well as program data.
  • the program code includes: the code of the receiving module 1010 and the code of the processing module 1020, etc.
  • the program data includes: the first SQE, the metadata of the first SQE, the identification information of the first sub-portal and the identification information of multiple apertures, etc. .
  • the memory 1120 can be a non-volatile memory, such as a read-only memory (read-only memory, ROM), a programmable read-only memory (programmable ROM, PROM), an erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • Memory 1120 can also be volatile memory, which can be RAM, which acts as an external cache.
  • the communication interface 1130 can be a wired interface (such as an Ethernet interface, an optical fiber interface, other types of interfaces (such as an infiniBand interface)) or a wireless interface (such as a cellular network interface or using a wireless local area network interface), for communicating with other devices or devices .
  • a wired interface such as an Ethernet interface, an optical fiber interface, other types of interfaces (such as an infiniBand interface)
  • a wireless interface such as a cellular network interface or using a wireless local area network interface
  • the communication interface 1130 can adopt a protocol family above the transmission control protocol/internet protocol (transmission control protocol/internet protocol, TCP/IP), for example, a remote function call (remote function call, RFC) Protocol, simple object access protocol (simple object access protocol, SOAP) protocol, simple network management protocol (simple network management protocol, SNMP) protocol, common object request broker architecture (common object request broker architecture, CORBA) protocol and distributed protocol etc.
  • a remote function call remote function call
  • simple object access protocol simple object access protocol
  • SOAP simple network management protocol
  • SNMP simple network management protocol
  • common object request broker architecture common object request broker architecture
  • CORBA common object request broker architecture
  • the bus 1140 may be a PCIe or an extended industry standard architecture (extended industry standard architecture, EISA for short) bus or the like.
  • the above bus 1140 can be divided into address bus, data bus, control bus and so on. For ease of representation, only one thick line is used in FIG. 11 , but it does not mean that there is only one bus or one type of bus.
  • the IO device 1100 in the embodiment of the present application may correspond to the IO device 630 that executes S707 and S708 in the method shown in FIG. S707 and S708 in the method shown in FIG. 7 are not repeated here for the sake of brevity.
  • the IO device 1100 is only an example provided by the embodiment of the present application, and the IO device 1100 may have more or fewer components than those shown in FIG. 11 , and two or more components may be combined, or It can be realized with different configurations of components.
  • the present application also provides a computer-readable storage medium, and instructions are stored in the computer-readable storage medium, and when the instructions are executed, some or all steps of the data transmission method described in the above-mentioned embodiments can be implemented.
  • the present application also provides a computer program product.
  • the computer program product is read and executed by a computer, some or all steps of the data transmission method described in the above method embodiments can be realized.
  • all or part may be implemented by software, hardware or any combination thereof.
  • software When implemented using software, it may 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 the computer, the processes or functions according to the embodiments of the present application will be generated in whole or in part.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server, or data center by wired (eg, coaxial cable, optical fiber, DSL) or wireless (eg, infrared, wireless, microwave, etc.) means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
  • the available medium may be a magnetic medium (such as a floppy disk, a hard disk, or a magnetic tape), an optical medium, or a semiconductor medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了数据传输方法、系统、装置及设备,其中,方法包括:主机向IO设备发送包括第一SQE和第一子门户的标识信息的第一报文,由IO设备接收并解析第一报文得到第一SQE和第一子门户的标识信息,然后IO设备根据第一子门户的标识信息获取第一SQE的元数据。由此,可以实现IO设备同时获取SQE和SQE的元数据。

Description

数据传输方法、系统、装置及设备
本申请要求于2021年8月11日提交中国专利局、申请号为202110920583.X、申请名称为“数据传输方法、系统、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据传输方法、系统、装置及设备。
背景技术
目前,主机通常基于门户(portal)的提交队列(submission queue,SQ)向输入输出(input output,IO)设备发送上层应用程序发送的提交队列元素(submission queue element,SQE)(也可以称为数据操作请求,如读数据请求或者写数据请求等),令IO设备执行对应的操作。
上述方法中主机在向IO设备发送SQE时,首先生成包括SQE的长指令,然后根据该长指令生成包括SQE和用于存储SQE的地址的报文进行发送操作,当前,上述长指令格式限定了其仅能提供64字节的空间用于携带主机向IO设备发送的数据,而SQE的长度通常刚好是64字节,如图1所示,因此,上述长指令提供的用于携带数据的空间刚好被SQE占用完。
但是,在某些场景下,IO设备除了需要获取SQE之外,还需要获取SQE的元数据(如SQE的序号(sequence)、发送SQE的进程的标识、接收SQE的进程的标识等),而SQE的元数据具有一定长度,因此,IO设备无法通过上述方法同时获取SQE和SQE的元数据,如何提供一种IO设备能够同时获取SQE和SQE的元数据的方法成为亟待解决的技术问题。
发明内容
本申请提供了一种数据传输方法、系统、装置及设备,可以实现IO设备同时获取SQE和SQE的元数据。
第一方面,提供了一种数据传输方法,该方法包括:主机向IO设备发送第一报文,第一报文包括第一SQE和第一子门户的标识信息,其中,第一子门户用于存储第一SQE,第一子门户的标识信息与第一SQE的元数据对应,然后,IO设备接收并解析第一报文,得到第一SQE以及第一子门户的标识信息,并根据第一子门户的标识信息,获取第一SQE的元数据。
通过上述方案可以看出,主机并不需要将SQE的元数据和SQE一起传输给IO设备,其仅需向IO设备发送包括SQE和用于存储SQE的子门户的标识信息的报文,IO设备在接收到报文后,根据报文中包括的SQE和子门户的标识信息的报文,就可以实现SQE和SQE的元数据的同时获取。
在一种可能的实现方式中,在主机向IO设备发送第一报文之前,方法还包括:主机获取第一门户包括的多个子门户的标识信息,第一门户属于IO设备;主机通过匹配第一SQE的元数据和第一子门户的标识信息,确定第一SQE的元数据对应的第一子门户。
根据本实现方式,主机通过匹配SQE的元数据和多个子门户的标识信息,确定SQE的元数据对应的子门户,然后通过报文将SQE的元数据对应的子门户的标识信息发送给IO设备,使得IO设备可以根据该子门户的标识信息与SQE的元数据的对应关系获取SQE的元数据,如此,可以实现主机无需将SQE的元数据和SQE一起传输给IO设备,但IO设备可以 同时获取到SQE和SQE的元数据。
在一种可能的实现方式中,第一子门户的标识信息包括如下一种或多种:第一子门户的序号、第一子门户的首地址、第一子门户的尾地址。
可以看到,在本申请实施例中,子门户的标识信息可以为序号、首地址、尾地址等多种信息,也就是说,本申请实施例适用于子门户标识信息多种多样的IO设备,可以提高本申请的适用性和商业价值。
在一种可能的实现方式中,第一子门户包括多个孔径,第一SQE的元数据包括第一类型数据以及第二类型数据,第一子门户的标识信息对应第一类型数据,多个孔径的标识信息对应第二类型数据。
在具体实现中,考虑到第一SQE的元数据可能包括第一类型数据和第二类型数据两种数据,此时,主机可通过匹配第一类型数据和第一子门户的标识信息确定第一子门户,将第一子门户包括的多个孔径确定为第二类型数据对应的孔径,然后,主机在向IO设备发送第一报文时,第一报文中可包括第一SQE、第一子门户的标识信息和孔径的标识信息,IO设备在接收并解析第一报文后,可得到第一SQE、第一子门户的标识信息和孔径的标识信息,然后根据第一子门户的标识信息获取第一类型数据,根据孔径的标识信息获取第二类型数据。
可以看出,主机并不需要将SQE的元数据(即第一类型数据和第二类型数据)和SQE一起传输给IO设备,其仅需向IO设备发送包括SQE、子门户的标识信息和孔径的标识信息的报文,IO设备在接收到报文后,根据报文中包括的SQE、子门户的标识信息和孔径的标识信息,就可以实现SQE和SQE的元数据的同时获取。
在一种可能的实现方式中,IO设备根据第一子门户的标识信息,获取第一SQE的元数据,具体包括:IO设备根据第一子门户的标识信息,获取第一类型数据,并根据多个孔径的标识信息,获取第二类型数据。
在一种可能的实现方式中,第一SQE的元数据包括如下一种或多种:第一SQE在多个SQE中的序号、第一SQE对应的纪元的序号、发送第一SQE的进程的标识、接收第一SQE的进程的标识、第一SQE的优先级别,其中,第一SQE属于多个SQE。
根据本实现方式,IO设备可以实现在获取多个SQE的同时,获取到多个SQE的序号、多个SQE对应的纪元的序号、发送多个SQE的进程的标识、接收多个SQE的进程的标识、多个SQE的优先级别等,在获取到上述信息后,IO设备可以根据多个SQE的序号、多个SQE对应的纪元的序号、发送多个SQE的进程的标识、接收多个SQE的进程的标识、多个SQE的优先级别等对多个SQE进行排序或者其他操作,若多个SQE在传输过程中有SQE发生了丢失的情况,IO设备还可以确定丢失的SQE具体是哪一个。
此外,还可以看出,本申请实施例适用于IO设备获取多种多样的SQE的元数据的场景,可以满足用户在不同场景下的需求,提高了本申请的适用性和商业价值。
在一种可能的实现方式中,方法还包括:IO设备根据多个SQE的元数据,对多个SQE进行排序。
上述实现方式,考虑到IO设备可能需要对主机发送的多个SQE进行排序,因此,IO设备可以获取多个SQE的元数据,从而实现对多个SQE进行排序的目的,可以理解,在IO设备可以对多个SQE进行排序的情况下,若多个SQE在传输过程中有SQE发生了丢失的情况,IO设备还可以确定丢失的SQE具体是哪一个。
在一种可能的实现方式中,主机通过PCIe、CXL、CCIX中的一种或者多种连接IO设备。
可以看到,本申请实施例可应用于通过多种连接方式进行连接的IO设备和主机进行数据 传输的过程中,提高了本申请的适用性和商业价值。
第二方面,本申请提供一种数据传输系统,该系统包括:主机,用于向IO设备发送第一报文,第一报文包括第一SQE和第一子门户的标识信息,第一子门户用于存储第一SQE,第一子门户的标识信息与第一SQE的元数据对应;IO设备,用于接收并解析第一报文,得到第一SQE以及第一子门户的标识信息;IO设备,用于根据第一子门户的标识信息,获取第一SQE的元数据。
在一种可能的实现方式中,主机,还用于:获取第一门户包括的多个子门户的标识信息,第一门户属于IO设备;然后,通过匹配第一SQE的元数据和第一子门户的标识信息,确定第一SQE的元数据对应的第一子门户。
在一种可能的实现方式中,第一子门户的标识信息包括如下一种或多种:第一子门户的序号、第一子门户的首地址、第一子门户的尾地址。
在一种可能的实现方式中,第一子门户包括多个孔径,第一SQE的元数据包括第一类型数据以及第二类型数据,第一子门户的标识信息对应第一类型数据,多个孔径的标识信息对应第二类型数据。
在一种可能的实现方式中,IO设备,具体用于:根据第一子门户的标识信息,获取第一类型数据;然后,根据多个孔径的标识信息,获取第二类型数据。
在一种可能的实现方式中,第一SQE的元数据包括如下一种或多种:第一SQE在多个SQE中的序号、第一SQE对应的纪元的序号、发送第一SQE的进程的标识、接收第一SQE的进程的标识、第一SQE的优先级别。
在一种可能的实现方式中,IO设备,还用于:根据多个SQE的元数据,对多个SQE进行排序。
在一种可能的实现方式中,主机通过PCIe、CXL、CCIX中的一种或者多种连接IO设备。
第三方面,提供一种数据传输方法,该方法包括:IO设备接收并解析主机发送的第一报文,得到第一SQE以及第一子门户的标识信息,第一子门户用于存储第一SQE,第一子门户的标识信息与第一SQE的元数据对应;然后,根据第一子门户的标识信息,获取第一SQE的元数据。
第四方面,提供一种数据传输装置,该装置包括用于执行第三方面所述的数据传输方法的各个模块。
第五方面,提供了一种IO设备,所述IO设备包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述IO设备实现如上述第三方面提供的方法。
第六方面,提供了一种计算机可读存储介质,所述计算机可读介质存储有指令,所述指令用于实现如上述第三方面提供的方法。
第七方面,提供了一种计算机程序产品,包括计算机程序,当所述计算机程序被计算设备读取并执行时,使得所述计算设备执行如上述第三方面提供的方法。
附图说明
图1是本申请示例性示出的长指令和SQE的示意图;
图2是本申请示例性示出的门户的示意图;
图3是本申请示例性示出的子门户的示意图;
图4是本申请示例性示出的孔径的示意图;
图5是本申请示例性示出的纪元的示意图;
图6是本申请涉及的一种应用场景的示意图;
图7是本申请提供的一种数据传输方法的交互示意图;
图8是本申请示例性示出的一种第一门户的示意图;
图9是本申请示例性示出的另一种第一门户的示意图;
图10是本申请提供的一种数据传输装置的结构示意图;
图11是本申请提供的一种IO设备的结构示意图。
具体实施方式
为了便于理解本申请实施例,下面先对本申请实施例涉及的概念及术语等进行介绍。
(1)SQ是一种(first in first out,FIFO)的线性表,用于存储一个或多个SQE,它只允许在表的一端插入SQE,而在表的另一端删除SQE。SQ类似于日常生活中的排队,最早进入队列的SQE最早离开。
(2)门户,如图2所示,属于IO设备,具体指IO设备(关于IO设备的详细介绍请参见图3相关描述)在存储器中为SQ划分的存储空间。IO设备向SQ中存储一个SQE,实际上是将SQE存储在SQ对应的门户中。门户具有首地址和尾地址,首地址是指IO设备在向门户中存储SQE时,可以开始存储SQE的地址,尾地址是指IO设备630在向门户中存储SQE时,当门户中所有的存储空间都被存满时到达的地址。每个SQ的门户可以是存储器中一段连续的地址空间,也可以是不连续的地址空间,本实施例不作限定。
(3)子门户,多个子门户可以组成一个门户,如图3所示,即,IO设备中包括的门户可以划分成多个子门户,每个子门户用于存储一个SQE。在具体实现中,一个门户包括的多个子门户中各个子门户的地址空间的大小可以是相等的,也可以是部分相等或者完全不相等的,此处不作具体限定。
(4)孔径,多个孔径可以组成一个子门户,如图4所示,即,IO设备在将门户划分成多个子门户时,还可以将多个子门户中的各个子门户划分成多个孔径。在具体实现中,各个子门户包括的孔径的数量可以相同,也可以是部分相同或者完全不同,各个子门户包括的多个孔径中各个孔径的地址空间的大小可以是相等的,也可以是部分相等或者完全不相等的,此处不作具体限定。
(5)纪元,多个子门户可以组成一个纪元,多个纪元可以组成一个门户,如图5所示,即,IO设备在将门户划分成多个子门户时,可以先将门户划分成多个纪元,然后将多个纪元中的每个纪元划分成多个子门户。在具体实现中,各个纪元包括的子门户的数量可以相同,也可以部分相同或者完全不同,各个纪元包括的多个子门户中各个子门户的地址空间的大小可以是相等的,也可以是部分相等或者完全不相等的,此处不作具体限定。
在一个门户包括多个纪元的情况下,IO设备在向该门户中存储待存储SQE时,先从门户包括的多个纪元中选择一个纪元中的子门户进行存储,若选择出的纪元中一直有空余的子门户用于存储待存储的SQE,则IO设备会一直使用该纪元存储待存储的SQE,若选择出的纪元中没有空余的子门户用于存储待存储的SQE的情况下,IO设备会从门户包括的剩余纪元中选取一个新的纪元中的子门户进行存储。
下面对本申请实施例涉及的应用场景进行简要说明。
本申请适用于数据(即SQE)传输的场景,参见图6,图6示出了一种数据传输系统的结构示意图。如图6所示,本申请涉及的数据传输系统包括:主机610、输入输出互联(input output fabric,简称为IO fabric)通道620以及IO设备630。其中,主机610可以通过IO互联通道620连接IO设备630。
主机610可以是运算核心和控制核心,是信息处理、程序运行的最终执行单元。主机610包括处理器611和存储器612,处理器611可以为中央处理单元(central process unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。处理器611还可以为一种片上芯片(system of chip,SoC)或者嵌入式处理器。处理器611具有处理指令、执行操作、处理数据等功能。处理器611可以为多个进程分配独立的存储器资源,从而运行多个进程。存储器612可以由随机存取器(random access memory,RAM)或其他存储介质实现。存储器612可用于存储多个进程的程序代码,以及存储多个进程运行时产生的数据。
IO互联通道620是主机610与IO设备630之间的互连机制,例如,快捷外围部件互连标准(peripheral component interconnect express,PCIe)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,简称为CCIX)等等。
IO设备630是可以与主机610进行数据传输的硬件设备。IO设备630可以为网络接口控制器(network interface controller,NIC)、主机总线适配器(host bus adapter,HBA)、主机通道适配器(host channel adaptor,HCA)、加速器(accelerator)、图形处理器(graphics processing unit,GPU)等等。IO设备630包括存储器631。存储器631可以由RAM或其他存储介质实现。
主机610上可以安装各种应用程序,如视频播放应用程序、社交应用程序等等,主机610上安装的应用程序在运行时,可以生成SQE,然后由主机610中的处理器611将该SQE发送给IO设备630,由IO设备630根据SQE执行对应的操作等。
目前,主机610和IO设备630通常基于门户的SQ实现SQE的发送和接收,该过程具体为:
IO设备630在创建基于门户的SQ之后,可以将门户的标识信息发送给主机610,由主机610建立门户与特定应用程序的对应关系。然后,主机610在获取到特定应用程序发送的SQE时,首先生成包括SQE的长指令,然后根据该长指令生成包括SQE以及特定应用程序对应的门户的标识信息的报文,然后将该报文发送给IO设备630。IO设备630根据该报文中的特定应用程序对应的门户的标识信息将SQE存储到基于该门户的SQ中。其中,门户的标识信息用于指示IO设备630中用于存储SQE的地址,包括但不限于如下一种或多种的组合:门户的序号、门户的首地址、门户的尾地址等。
但是,上述主机610和IO设备630之间进行SQE传输的方法,存在着IO设备630无法同时获取SQE和SQE的元数据的问题。
需要说明的是,本申请所涉及的“同时”并不限定为同一时刻,也可以指间隔较短的时间。
为了解决上述问题,本申请提供了一种数据传输方法,可以应用于图6所示的数据传输系统,图6所示系统中的主机610利用该方法无需将SQE的元数据和SQE一起传输给IO设备630,就可以实现IO设备630同时获取SQE和SQE的元数据。
下面结合图7对本申请提供的数据传输方法的进行详细的介绍。如图7所示,本实施方式的数据传输方法,包括如下步骤:
S701:主机610获取IO设备630包括的门户的信息。
其中,IO设备630包括的门户的信息包括门户中各个门户的标识信息、各个门户包括的纪元的标识信息、各个门户包括的子门户的标识信息和各个门户包括的孔径的标识信息、各个子门户的地址空间的大小、各个孔径的地址空间的大小等。其中,纪元的标识信息包括但不限于如下一种或多种的组合:纪元的序号、纪元的首地址、纪元的尾地址等;子门户的标识信息包括但不限于如下一种或多种的组合:子门户的序号、子门户的首地址、子门户的尾地址等;孔径的标识信息包括但不限于如下一种或多种的组合:孔径的序号、孔径的首地址、孔径的尾地址等。
在一种可能的实现方式中,IO设备630可以提供用于其他设备(如主机610)获取IO设备630包括的门户的信息的驱动程序,主机610可以通过IO设备630提供的上述驱动程序获取IO设备630包括的门户的信息。
S702:主机610获取第一SQE和第一SQE的元数据。
通常,主机610会连续生成多个待向IO设备630发送的SQE,第一SQE可以为该多个SQE中的任意一个,在多个SQE各自有序号的情况下,第一SQE的元数据可以为该SQE的序号,在多个SQE各自有优先级别的情况下,第一SQE的元数据可以为该SQE的优先级别,第一SQE的元数据还可以为第一SQE所属的纪元的序号、发送第一SQE的进程的标识、接收第一SQE的进程的标识等等中的一种或者多种。多个SQE的优先级别,指多个SQE被IO设备630处理的优先级别,可以理解为,IO设备630在存储了多个SQE之后,后续可以按照多个SQE的优先级别先后处理多个SQE;第一SQE所属的纪元的序号,指在第一门户包括多个纪元的情况下,主机610向IO设备630发送该SQE时,从第一门户包括的多个纪元中所选择的纪元的序号。其中,第一门户指主机610在向IO设备630发送第一SQE时,从IO设备630包括的门户中选择出的用于存储第一SQE的门户。主机610从IO设备630包括的门户中选择出用于存储第一SQE的门户的详细过程参见S703。
S703:主机610根据第一SQE从IO设备630包括的门户中选择第一门户。
通常,主机610生成的多个SQE的长度是相同的,IO设备630对每个门户进行划分得到的多个子门户的地址空间大小也是相同的,主机610在获取到IO设备630包括的门户的信息后,可以从IO设备630包括的门户中选择一个地址空间大小与第一SQE的长度匹配的门户作为第一门户。其中,地址空间大小与第一SQE的长度匹配的门户,指包括的子门户的地址空间大小大于或者等于第一SQE的长度的门户。
S704:主机610根据第一SQE的元数据,从第一门户包括的多个子门户中确定第一子门户,所述第一子门户用于存储第一SQE。
在本申请具体的实施例中,主机610可以通过匹配第一SQE的元数据和第一子门户的标识信息,确定第一SQE的元数据对应的第一子门户,即主机610可以将第一SQE的元数据与第一门户包括的多个子门户的标识信息进行匹配,将多个子门户的标识信息中与第一SQE的元数据匹配的子门户确定为第一SQE的元数据对应的第一子门户。
在具体实现中,多个子门户中可能仅有一个子门户的标识信息与第一SQE的元数据匹配,也可能有至少两个子门户的标识信息与第一SQE的元数据匹配,当多个子门户中仅有一个子门户的标识信息与第一SQE的元数据匹配时,将该子门户确定为第一SQE的元数据对应的第一子门户,当多个子门户中有至少两个子门户的标识信息与第一SQE的元数据匹配 时,可以将至少两个子门户中任意一个子门户确定为第一SQE的元数据对应的第一子门户,此处不作具体限定。
为了简便陈述,在接下来的实施例中,均以多个子门户中仅有一个子门户的标识信息与第一SQE的元数据匹配为例进行描述。
举例来讲,假设多个SQE为SQE1、SQE2、…、SQEn,多个SQE的元数据为多个SQE的序号,多个子门户为子门户1、子门户2、…、子门户n,多个子门户的标识信息为多个子门户的序号,若主机610将SQE1的序号1分别与多个子门户的序号进行匹配后,确定子门户1的序号1与SQE1的序号1匹配,则主机610可以将子门户1确定为SQE1的序号1对应的第一子门户;若主机610将SQE2的序号2分别与多个子门户的序号进行匹配后,确定子门户2的序号2与SQE2的序号2匹配,则主机610可以将子门户2确定为SQE2的序号2对应的第一子门户;…;若主机610将SQEn的序号n分别与多个子门户的序号进行匹配后,确定子门户n的序号n与SQEn的序号n匹配,则主机610可以将子门户n确定为SQEn的序号n对应的第一子门户。
又例如,假设多个SQE为SQE1和SQE2,多个SQE的元数据为多个SQE的序号,多个子门户为首地址为d1的子门户和首地址为d2的子门户、首地址为d3的子门户和首地址为d4的子门户,多个子门户的标识信息为多个子门户的首地址,若主机610将SQE1的序号1分别与多个子门户的首地址进行匹配后,确定首地址为d1的子门户的首地址d1和首地址为d3的子门户的首地址d3均与SQE1的序号1匹配,则主机610可以将首地址为d1的子门户和首地址为d3的子门户中的任意一个子门户确定为SQE1的序号1对应的第一子门户;若主机610将SQE2的序号2分别与多个子门户的首地址进行匹配后,确定首地址为d2的子门户的首地址d2和首地址为d4的子门户的首地址d4均与SQE2的序号2匹配,则主机610可以将首地址为d2的子门户和首地址为d4的子门户中的任意一个子门户确定为SQE2的序号2对应的第一子门户。
需要说明的是,上述两种举例仅仅是作为示例,以体现主机610将多个子门户的标识信息中与第一SQE的元数据匹配的子门户确定为第一子门户的过程,在实际应用中,主机610将多个子门户的标识信息与第一SQE的元数据匹配的子门户确定为第一子门户的过程还可以为其他,例如,对第一SQE的元数据进行计算,得到的计算结果和子门户的标识信息匹配,则确定该子门户为第一子门户,此处不作具体限定。
S705:主机610生成包括第一SQE的长指令,然后根据该长指令生成包括第一SQE和第一子门户的标识信息的第一报文。
S706:主机610向IO设备630发送第一报文,对应地,IO设备630接收主机610发送的第一报文。
S707:IO设备630解析第一报文,得到第一SQE以及第一子门户的标识信息。
S708:IO设备630根据第一子门户的标识信息,获取第一SQE的元数据。
继续以步骤S704中针对主机610从多个子门户中确定第一子门户所举的第一个例子为例,假设主机610向IO设备630发送的多个报文为包括SQE1和子门户1的序号1的报文1、包括SQE2和子门户2的序号2的报文2、…、包括SQEn和子门户n的序号n的报文n,若IO设备630接收到报文1并从报文1中解析得到SQE和子门户的序号1,则IO设备630根据子门户的序号1可以确定该SQE的序号为1;若IO设备630接收到报文2并从报文中解析得到SQE和子门户的序号2,则IO设备630根据子门户的序号2可以确定该SQE的序号为2;…;若IO设备630接收到报文n并从报文n中解析得到SQE和子门户的序号n,则IO 设备630根据子门户的序号n可以确定该SQE的序号为n。
继续以步骤S704中所举的第二个例子为例,假设主机610向IO设备630发送的多个报文为包括SQE1和子门户的首地址d1的报文1和包括SQE2和子门户的首地址d2的报文2,若IO设备630接收到报文1并从报文1中解析得到SQE和子门户的首地址d1,则IO设备630根据首地址d1可以确定该SQE的序号为1;若IO设备630接收到报文2并从报文2中解析得到SQE和子门户的首地址d2,则IO设备630根据首地址d2可以确定该SQE的序号为2。
在一种可能的实现方式中,若IO设备630包括多个门户,多个门户中包括标识信息相同(如序号相同)的子门户,主机610向IO设备630发送的第一报文还可包括第一门户的标识信息。IO设备630在接收并解析第一报文后,可以先根据第一门户的标识信息从自身包括的多个门户中查找到第一门户,然后根据第一子门户的标识信息从第一门户包括的多个子门户中查找到第一子门户。
可以理解,在主机610待向IO设备630传输的多个SQE的元数据为多个SQE的序号的情况下,通过步骤S701至步骤S708,IO设备630可以确定多个SQE的序号,并根据多个SQE的序号对多个SQE进行排序。若多个SQE在传输的过程中发生了丢失的情况,IO设备630也可以确定丢失的SQE的序号。
通过图7所示的数据传输方法可以看出,主机610并不需要将SQE的元数据和SQE一起传输给IO设备630,其仅需向IO设备630发送包括SQE和用于存储SQE的子门户的标识信息的报文,IO设备630在接收到报文后,根据报文中包括的SQE和子门户的标识信息的报文,就可以实现SQE和SQE的元数据的同时获取。
在一种可能的实现方式中,主机610待向IO设备630发送的第一SQE的元数据包括第一类型数据和第二类型数据,此时,主机610在执行步骤S703从IO设备630包括的门户中选择的第一门户可包括孔径,然后,主机610可以将第一门户包括的多个子门户中标识信息与第一类型数据对应的子门户确定为第一子门户,并将第一子门户包括的多个孔径确定为第二类型数据对应的孔径,其中,第一子门户包括的多个孔径的标识信息对应第二类型数据。然后,主机610在执行步骤S705时,所生成的第一报文可包括第一SQE、第一子门户的标识信息以及第一子门户包括的孔径的标识信息。其中,第一类型数据可以为第一SQE的序号等,第二类型数据可以为第一SQE被分割成的多个子SQE块的序号等。
在具体实现中,多个子门户中可能仅有一个子门户的标识信息与第一类型数据匹配,也可能有至少两个子门户的标识信息与第一类型数据匹配,当多个子门户中仅有一个子门户的标识信息与第一类型数据匹配时,将该子门户确定为第一类型数据对应的第一子门户,当多个子门户中有至少两个子门户的标识信息与第一类型数据匹配时,可以将至少两个子门户中任意一个子门户确定为第一类型数据元数据对应的第一子门户,此处不作具体限定。
IO设备630在接收并解析第一报文得到第一SQE、第一子门户的标识信息和第一子门户包括的孔径的标识信息后,可以根据第一子门户的标识信息获取第一类型数据,根据第一子门户包括的孔径的标识信息获取第二类型数据,从而实现第一SQE的元数据和第一SQE的同时获取。
为了简便陈述,在接下来的实施例中,均以多个子门户中仅有一个子门户的标识信息与第一类型数据匹配为例进行描述。
举例来讲,假设多个SQE为SQE1和SQE2,SQE1和SQE2的长度均为150字节,超过了64字节的限制,主机可以将SQE分割成多个子SQE块,假设SQE1被分割成子SQE块 01、子SQE块02、子SQE块03,SQE2被分割成子SQE块01'、子SQE块02'、子SQE块03',上述每个子SQE块的长度均为50字节,SQE的元数据包括该SQE的序号(即上文所述第一类型数据)以及该SQE包括的子SQE块的序号(即上文所述第二类型数据),多个子门户为子门户1和子门户2,子门户1包括孔径01、孔径02和孔径03,子门户2包括孔径01'、孔径02'和孔径03',孔径的标识信息为孔径的序号。
若主机610将SQE1的序号1分别与多个子门户的序号进行匹配后,确定子门户1的序号1与SQE1的序号1匹配,则主机610可以将子门户1确定为SQE1的序号1对应的第一子门户,若主机610将子SQE块01的序号01与子门户1包括的多个孔径的序号进行匹配后,确定孔径01的序号01与子SQE块01的序号01匹配,则主机610可以将孔径01确定为子SQE块01的序号01对应的第一孔径;若主机610将子SQE块02的序号02子门户1包括的多个孔径的序号进行匹配后,确定孔径02的序号02与子SQE块02的序号02匹配,则主机610可以将孔径02确定为子SQE块02的序号02对应的第一孔径;若主机610将子SQE块03的序号03子门户1包括的多个孔径的序号进行匹配后,确定孔径03的序号03与子SQE块03的序号03匹配,则主机610可以将孔径03确定为子SQE块03的序号03对应的第一孔径。
同样地,主机610可以将子门户2确定为SQE2对应的第一子门户,并将孔径01'确定为子SQE块01'对应的第一孔径,将孔径02'确定为子SQE块02'对应的第一孔径,将孔径03'确定为子SQE块03'对应的第一孔径。
假设主机610根据上述举例向IO设备630发送的多个报文为包括子SQE块01、子门户1的序号1和孔径01的序号01的报文1、包括SQE1中的子SQE块02、子门户1的序号1和孔径02的序号02的报文2、包括SQE1中的子SQE块03、子门户1的序号1和孔径03的序号03的报文3,包括SQE2中的子SQE块01、子门户2的序号2和孔径01'的序号01'的报文4、包括SQE2中的子SQE块02、子门户2的序号2和孔径02'的序号02'的报文5、包括SQE2中的子SQE块03、子门户2的序号2和孔径03'的序号03'的报文6,若IO设备630接收到报文1并从报文1中解析得到子SQE块、子门户的序号1和孔径的序号01,则IO设备630根据子门户的序号1可以确定该子SQE块所属的SQE的序号为1,根据孔径的序号01可以确定该子SQE块的序号为01;若IO设备630接收到报文2并从报文2中解析得到子SQE块、子门户的序号2和孔径的序号02,则IO设备630根据子门户的序号1可以确定该子SQE块所属的SQE的序号为1,根据孔径的序号02可以确定该子SQE块的序号为02;…;若IO设备630接收到报文6并从报文6中解析得到子SQE块、子门户的序号2和孔径的序号03',则IO设备630根据子门户的序号2可以确定该子SQE块所属的SQE的序号为2,根据孔径的序号03'可以确定该子SQE块的序号为03'。
可以理解,IO设备630在接收到子SQE块01、子SQE块02和子SQE块03,并确定三个子SQE块的序号后,可根据三个子SQE块的序号对子SQE块01、子SQE块02和子SQE块03进行合并,得到SQE1,IO设备630在接收到子SQE块01'、子SQE块02'和子SQE块03',并确定三个子SQE块的序号后,可对子SQE块01'、子SQE块02'和子SQE块03'进行合并,得到SQE2。
通过上述实施例可以看出,主机610并不需要将SQE的元数据(即第一类型数据和第二类型数据)和SQE一起传输给IO设备630,其仅需向IO设备630发送包括SQE、子门户的标识信息和孔径的标识信息的报文,IO设备630在接收到报文后,根据报文中包括的SQE、子门户的标识信息和孔径的标识信息,就可以实现SQE和SQE的元数据的同时获取。
为了便于更清楚地理解本申请提供的数据传输方法,下面结合一些具体的应用场景,进行详细说明。
应用场景1,主机610向IO设备630传输的多个SQE具有顺序,在传输的过程中,多个SQE可能会发生乱序,然而后续IO设备630需要按照多个SQE的顺序处理多个SQE。因此,在该场景中,IO设备630需要获取多个SQE的序号。
举例来讲,如图8所示,假设主机610待向IO设备630发送32个SQE,该32个SQE的序号是0至31,首地址为D的第一门户是由4个4千字节的页组成的,第一门户包括子门户0至子门户31共32个子门户,每个子门户占用512字节,32个子门户的首地址为d0至d31。
先以多个子门户的标识信息为多个子门户的序号为例,主机610可以参考如下对应关系(1)从多个子门户中确定第一子门户:
y 1=x 1   (1)
其中,y 1为主机610从多个子门户中确定的第一子门户的序号,x 1为待发送的SQE(即上述所述第一SQE)的序号。
当待发送的SQE为SQE0时,根据上述关系(1),主机610可以确定第一子门户的序号y 1=0,即第一子门户为子门户0;当待发送的SQE为SQE1时,根据上述关系(1),主机610可以确定第一子门户的序号y 1=1,即第一子门户为子门户1;…;当待发送的SQE为SQE31时,根据上述关系(1),主机610可以确定第一子门户的序号y 1=31,即第一子门户为子门户31。
在主机610根据上述确定的第一子门户向IO设备630发送了包括SQE0和子门户0的序号0的报文0、包括SQE1和子门户1的序号1的报文1、…、包括SQE31和子门户31的序号31的报文31共32个报文之后,IO设备630可以参考如下对应关系(2)获取从报文i中解析得到的SQE的序号:
x 2=y 2    (2)
其中,x 2为IO设备630从报文i中解析得到的SQE的序号,y 2为IO设备630从报文i中解析得到的子门户的序号。
当IO设备630从报文0中解析得到SQE和子门户的序号0时,根据上述关系(2),IO设备630可以确定解析得到的SQE的序号x 2=0;当IO设备630从报文1中解析得到SQE和子门户1的序号1时,根据上述关系(2),IO设备630可以确定解析得到的SQE的序号x 2=1;…;当IO设备630从报文31中解析得到SQE和子门户的序号31时,根据上述关系(2),IO设备630可以确定中解析得到的SQE的序号x 2=31。
再以多个子门户的标识信息为多个子门户的首地址为例,主机610可以参考如下对应关系(3)从多个子门户中确定第一子门户:
D 1=D+x 1<<w 1   (3)
其中,D 1为主机610从第一门户中确定的第一子门户的首地址,w 1为第一子门户的地址空间大小对应的位宽,例如,假设第一子门户的地址空间大小为512字节,512=2 9,则w 1为9,<<为左移运算符。
当待发送的SQE为SQE0时,根据上述关系(3),主机610可以确定第一子门户的首地址D 1=D+0<<9=D+0(字节)=d0,即子门户0的首地址,因此,确定的第一子门户为子门户0;当待发送的SQE为SQE1时,根据上述关系(3),主机610可以确定第一子门户的首地址D 1=D+1<<9=D+512(字节)=d1,即子门户1的首地址,因此,确定的第一子门户为子门 户1;…;当待发送的SQE为SQE31时,根据上述关系(3),主机610可以确定第一子门户的首地址D 1=D+31<<9=D+15872(字节)=d31,即子门户31的首地址,因此,确定的第一子门户为子门户31。
在主机610根据上述确定的第一子门户向IO设备630发送了包括SQE0和子门户0的首地址d0的报文0、包括SQE1和子门户1的首地址d1的报文1、…、包括SQE31和子门户31的首地址d31的报文31共32个报文之后,IO设备630可以参考如下对应关系(4)获取从报文i中解析得到的SQE的序号:
x 2=(D 1'-D')>>w 1'   (4)
其中,D 1'为IO设备630从报文i中解析得到的子门户的首地址,D'为IO设备630从报文i中解析得到的子门户的首地址所属的门户的首地址,w 1'为IO设备630从报文i中解析得到的子门户的地址空间大小对应的位宽,>>为右移运算符。
当IO设备630从报文0中解析得到SQE和子门户的首地址d0时,根据上述关系(4),IO设备630可以确定解析得到的SQE的序号x 2=(d0-D)>>9=0(字节)>>9=0;当IO设备630从报文1中解析得到SQE和子门户的首地址d1时,根据上述关系(4),IO设备630可以确定解析得到的SQE的序号x 2=(d1-D)>>9=512(字节)>>9=1;…;当IO设备630从报文31中解析得到SQE和子门户的首地址d31时,根据上述关系(4),IO设备630可以确定解析得到的SQE的序号x 2=(d31-D)>>9=15872(字节)>>9=31。
应用场景2,由上文可知,主机610可向IO设备630发送的SQE的长度是有限制的,若SQE的长度超过了限制(例如,超过了64字节),那么,主机610可将SQE分成多个具有顺序的子SQE块进行发送,然后,IO设备630在接收到多个子SQE块之后,可将多个子SQE块按照顺序重新合并成为SQE。因此,在该场景中,IO设备630需要获取多个SQE的序号以及多个SQE中各个SQE包括的子SQE块的序号,以便IO设备630根据各个SQE的序号以及各个SQE包括的子SQE块的序号合并得到各个子SQE。
举例来讲,假设主机610待向IO设备630发送8个长度均为160字节的SQE,该8个SQE的序号是0至7,每个SQE块均被分成了4个子SQE块,每个子SQE块的大小为40字节,每个SQE包括的4个子SQE块的序号均是0至3,首地址为D的第一门户是由4个4千字节的页组成的,第一门户包括子门户0至子门户7共8个子门户,每个子门户占用2048字节,8个子门户的首地址为d0至d7,每个子门户被分成孔径0至孔径3共4个孔径,每个孔径占用512字节,8个子门户中的第j个子门户包括的4个子孔径的首地址为dj0至dj3,如图9所示。
以多个子门户的标识信息为多个子门户的首地址、多个孔径的标识信息为多个孔径的首地址为例,主机610可以参考对应关系(3)从多个子门户中确定第一子门户,以及参考如下对应关系(5)从第一子门户包括的多个孔径中确定第一孔径:
D 1=D+x 1<<w 1   (3)
D 2=D 1+x 1'<<w 2   (5)
其中,D 2为主机610从第一子门户包括的多个孔径中确定的第一孔径的首地址,x 1'为待发送的子SQE块的序号,w 2为第一孔径的地址空间大小对应的位宽。
主机610根据上述关系(3)从多个子门户中确定第一子门户的过程已在场景1中详细描述,具体可以参考场景1中的相关描述,为了简洁,此处不再展开赘述。
以SQE0被分成子SQE块0、子SQE块1、子SQE块2以及子SQE块3以及确定的第一子门户为首地址为d0的子门户0为例,当待发送的子SQE块为子SQE块0时,根据上述 关系(5),主机610可以确定第一孔径的首地址D 2=d0+0<<9=d0+0(字节)=d00,即确定的第一孔径为首地址为d00的孔径;当待发送的子SQE块为子SQE块1时,根据上述关系(5),主机610可以确定第一孔径的首地址D 2=d0+1<<9=d0+512(字节)=d01,即确定的第一孔径为首地址为d01的孔径;当待发送的子SQE块的序号为2时,根据上述关系(5),主机610可以确定第一孔径的首地址D 2=d0+2<<9=d0+1024(字节)=d02,即确定的第一孔径为首地址为d02的孔径;当待发送的子SQE块为子SQE块3时,根据上述关系(5),主机610可以确定第一孔径的首地址D 2=d0+2<<9=d0+1536(字节)=d03,即确定的第一孔径为首地址为d03的孔径。
在主机610根据上述确定的首地址为d0的第一子门户以及从该第一子门户包括的多个孔径中确定的第一孔径,向IO设备630发送了包括SQE0中的子SQE块0、子门户0的首地址d0和子门户0中的孔径0的首地址d00的报文0、包括SQE0中的子SQE块1、子门户0的首地址d0和子门户0中的孔径1的首地址d01的报文1、…、包括子门户0的首地址d0和子门户0中的孔径3的首地址d03的报文3之后,IO设备630可以参考对应关系(4)获取从报文i中解析得到的子SQE块所属的SQE的序号,以及参考如下对应关系(6)获取从报文i中解析得到的子SQE块的序号:
x 2=(D 1'-D')>>w 1'   (4)
x 2'=(D 2'-D 2)>>w 2'   (6)
其中,D 2'为IO设备630从报文i中解析得到的子SQE块的序号,D 2为IO设备630从报文i中解析得到的孔径的首地址,w 2'为IO设备630从报文i中解析得到的孔径的地址空间大小对应的位宽。
当IO设备630从报文0中解析得到子SQE块、子门户的首地址d0和孔径的首地址d00时,根据上述关系(4),IO设备630可以确定解析得到的子SQE块所属的SQE的序号为0,根据上述关系(6),IO设备630可以确定解析得到的子SQE块的序号为0;当IO设备630从报文1中解析得到子SQE块、子门户的首地址d0和孔径的首地址d01时,根据上述关系(4),IO设备630可以确定解析得到的子SQE块所属的SQE的序号为0,根据上述关系(6),IO设备630可以确定解析得到的子SQE块的序号为1;…;当IO设备630从报文3中解析得到子SQE块、子门户的首地址d0和孔径的首地址d03时,根据上述关系(4),IO设备630可以确定解析得到的子SQE块所属的SQE的序号为0,根据上述关系(6),IO设备630可以确定解析得到的子SQE块的序号为3。然后,IO设备630可以将上述获取到的子SQE块0、子SQE块1、子SQE块2、子SQE块3进行合并,得到SQE0。
与IO设备得到SQE0的方式类似,IO设备630可以合并得到SQE1、SQE2、…、SQE7。
上文详细阐述了本申请提供的数据传输方法,基于相同的发明构思,下面继续介绍本申请提供的数据传输装置1000和IO设备1100。
参见图10,图10是本申请提供的一种数据传输装置1000的结构示意图,如图10所示,数据传输装置1000包括:接收模块1010,用于接收并解析主机610发送的第一报文,得到第一SQE以及第一子门户的标识信息,第一子门户用于存储第一SQE,第一子门户的标识信息与第一SQE的元数据对应,第一门户属于IO设备630;处理模块1020,用于根据第一子门户的标识信息,获取第一SQE的元数据。在一种可能的实现方式中,第一子门户的标识信息包括如下一种或多种:第一子门户的序号、第一子门户的首地址、第一子门户的尾地址。
在一种可能的实现方式中,第一子门户包括多个孔径,第一SQE的元数据包括第一类型数据以及第二类型数据,第一子门户的标识信息对应第一类型数据,第一子门户包括的多个 孔径的标识信息对应第二类型数据。
在一种可能的实现方式中,处理模块1020,具体用于:根据第一子门户的标识信息,获取第一类型数据,并根据第一子门户包括的多个孔径的标识信息,获取第二类型数据。
在一种可能的实现方式中,第一SQE的元数据包括如下一种或多种:第一SQE在多个SQE中的序号、第一SQE对应的纪元的序号、发送第一SQE的进程的标识、接收第一SQE的进程的标识、第一SQE的优先级别。
在一种可能的实现方式中,处理模块1020,还用于:根据多个SQE的元数据,对多个SQE进行排序。
在一种可能的实现方式中,主机通过PCIe、CXL、CCIX中的一种或者多种连接IO设备。
应理解的是,本申请实施例的数据传输装置1000可以通过ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),FPGA,通用阵列逻辑(generic array logic,GAL)或其任意组合实现;数据传输装置1000也可以通过软件实现,在通过软件实现时,实现数据传输装置1000的各个模块为软件模块。
具体地,上述数据传输装置1000执行各种操作的具体实现,可参照上述图7所述数据传输方法实施例中相关内容中的描述,为了说明书的简洁,这里不再赘述。
应当理解,数据传输装置1000仅为本申请实施例提供的一个例子,并且,数据传输装置1000可具有比图10示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
参见图11,图11是本申请提供的一种IO设备1100的结构示意图,该IO设备1100包括:处理器1110、存储器1120以及通信接口1130,其中,处理器1110、存储器1120以及通信接口1130之间可以通过总线1140相互连接。其中,
处理器1110可以读取存储器1120中存储的程序代码(包括指令),执行存储器1120中存储的程序代码,使得IO设备1100执行上述方法实施例提供的数据传输方法中的步骤。
处理器1110可以有多种具体实现形式,例如处理器1110可以为CPU、图形处理器(graphics processing unit,GPU)等,处理器1110还可以是单核处理器或多核处理器。处理器1110可以由CPU和硬件芯片的组合。上述硬件芯片可以是ASIC实现,或PLD实现。上述PLD可以是CPLD、FPGA、GAL或其任意组合。处理器1110也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或DSP等。
存储器1120可以存储程序代码以及程序数据。其中,程序代码包括:接收模块1010的代码和处理模块1020的代码等,程序数据包括:第一SQE、第一SQE的元数据、第一子门户的标识信息和多个孔径的标识信息等等。
在实际应用中,存储器1120可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器1120也可以是易失性存储器,易失性存储器可以是RAM,其用作外部高速缓存。
通信接口1130可以为有线接口(例如以太网接口、光纤接口、其他类型接口(例如,infiniBand接口))或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他设备或装置进行通信。当通信接口1130为有线接口时,通信接口1130可以采用传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)之上的协议族,例如,远程函数调用(remote function call,RFC)协议、简单对象访问协议(simple object access protocol, SOAP)协议、简单网络管理协议(simple network management protocol,SNMP)协议、公共对象请求代理体系结构(common object request broker architecture,CORBA)协议以及分布式协议等等。
总线1140可以是PCIe或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。上述总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,本申请实施例的IO设备1100可对应于执行本申请实施例中图7所述方法中S707和S708的IO设备630,并且IO设备1100中的各个模块的操作和/或功能可以实现图7所述方法中的S707和S708,为了简洁,在此不再赘述。
应当理解,IO设备1100仅为本申请实施例提供的一个例子,并且,IO设备1100可具有比图11示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,该指令被运行时可以实现上述实施例中记载的数据传输方法的部分或者全部步骤。
本申请还提供一种计算机程序产品,当计算机程序产品被计算机读取并执行时,可以实现上述方法实施例中记载的数据传输方法的部分或者全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质、或者半导体介质等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (20)

  1. 一种数据传输方法,其特征在于,所述方法包括:
    主机向输入输出IO设备发送第一报文,所述第一报文包括第一提交队列元素SQE和第一子门户的标识信息,所述第一子门户用于存储所述第一SQE,所述第一子门户的标识信息与所述第一SQE的元数据对应;
    所述IO设备接收并解析所述第一报文,得到所述第一SQE以及所述第一子门户的标识信息;
    所述IO设备根据所述第一子门户的标识信息,获取所述第一SQE的元数据。
  2. 根据权利要求1所述的方法,其特征在于,在所述主机向IO设备发送第一报文之前,所述方法还包括:
    所述主机获取第一门户包括的多个子门户的标识信息,所述第一门户属于所述IO设备;
    所述主机通过匹配所述第一SQE的元数据和所述第一子门户的标识信息,确定所述第一SQE的元数据对应的第一子门户。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一子门户的标识信息包括如下一种或多种:所述第一子门户的序号、所述第一子门户的首地址、所述第一子门户的尾地址。
  4. 根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述第一子门户包括多个孔径,所述第一SQE的元数据包括第一类型数据以及第二类型数据,所述第一子门户的标识信息对应所述第一类型数据,所述多个孔径的标识信息对应所述第二类型数据。
  5. 根据权利要求4所述的方法,其特征在于,所述IO设备根据所述第一子门户的标识信息,获取所述第一SQE的元数据,具体包括:
    所述IO设备根据所述第一子门户的标识信息,获取所述第一类型数据;
    所述IO设备根据所述多个孔径的标识信息,获取所述第二类型数据。
  6. 根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述第一SQE的元数据包括如下一种或多种:所述第一SQE在多个SQE中的序号、所述第一SQE对应的纪元的序号、发送所述第一SQE的进程的标识、接收所述第一SQE的进程的标识、所述第一SQE的优先级别,其中,所述第一SQE属于所述多个SQE。
  7. 根据权利要求6所述的方法,其特征在于,所述方法还包括:
    所述IO设备根据所述多个SQE的元数据,对所述多个SQE进行排序。
  8. 根据权利要求1至7中任一权利要求所述的方法,其特征在于,所述主机通过快捷外围部件互连标准PCIe、计算机快速链接CXL、缓存一致互联协议CCIX中的一种或者多种连接所述IO设备。
  9. 一种数据传输系统,其特征在于,所述系统包括:
    主机,用于向IO设备发送第一报文,所述第一报文包括第一SQE和第一子门户的标识信息,所述第一子门户用于存储所述第一SQE,所述第一子门户的标识信息与所述第一SQE的元数据对应;
    所述IO设备,用于接收并解析所述第一报文,得到所述第一SQE以及所述第一子门户的标识信息;
    所述IO设备,用于根据所述第一子门户的标识信息,获取所述第一SQE的元数据。
  10. 根据权利要求9所述的系统,其特征在于,所述主机,还用于:
    获取第一门户包括的多个子门户的标识信息,所述第一门户属于所述IO设备;
    通过匹配所述第一SQE的元数据和所述第一子门户的标识信息,确定所述第一SQE的元数据对应的第一子门户。
  11. 根据权利要求9或10所述的系统,其特征在于,所述第一子门户的标识信息包括如下一种或多种:所述第一子门户的序号、所述第一子门户的首地址、所述第一子门户的尾地址。
  12. 根据权利要求9至11中任一权利要求所述的系统,其特征在于,所述第一子门户包括多个孔径,所述第一SQE的元数据包括第一类型数据以及第二类型数据,所述第一子门户的标识信息对应所述第一类型数据,所述多个孔径的标识信息对应所述第二类型数据。
  13. 根据权利要求12所述的系统,其特征在于,所述IO设备,具体用于:
    根据所述第一子门户的标识信息,获取所述第一类型数据;
    根据所述多个孔径的标识信息,获取所述第二类型数据。
  14. 根据权利要求9至13中任一权利要求所述的系统,其特征在于,所述第一SQE的元数据包括如下一种或多种:所述第一SQE在多个SQE中的序号、所述第一SQE对应的纪元的序号、发送所述第一SQE的进程的标识、接收所述第一SQE的进程的标识、所述第一SQE的优先级别。
  15. 根据权利要求14所述的系统,其特征在于,所述IO设备,还用于:
    根据所述多个SQE的元数据,对所述多个SQE进行排序。
  16. 根据权利要求9至15中任一权利要求所述的系统,其特征在于,所述主机通过PCIe、CXL、CCIX中的一种或者多种连接所述IO设备。
  17. 一种数据传输方法,其特征在于,应用于IO设备,所述方法包括:
    所述IO设备接收并解析主机发送的第一报文,得到第一SQE以及第一子门户的标识信息,所述第一子门户用于存储所述第一SQE,所述第一子门户的标识信息与所述第一SQE的元数据对应;
    所述IO设备根据所述第一子门户的标识信息,获取所述第一SQE的元数据。
  18. 一种数据传输装置,其特征在于,应用于IO设备,所述装置包括:
    接收模块,用于接收并解析所述主机发送的第一报文,得到第一SQE以及第一子门户的标识信息,所述第一子门户用于存储所述第一SQE,所述第一子门户的标识信息与所述第一SQE的元数据对应;
    处理模块,用于根据所述第一子门户的标识信息,获取所述第一SQE的元数据。
  19. 一种计算机可读存储介质,其特征在于,所述计算机可读介质存储有指令,所述指令用于实现权利要求17所述的方法。
  20. 一种IO设备,其特征在于,所述IO设备包括处理器和存储器,所述存储器用于存储计算机指令,所述IO设备运行时,所述处理器执行所述计算机指令以实现权利要求17所述的方法。
PCT/CN2022/110865 2021-08-11 2022-08-08 数据传输方法、系统、装置及设备 WO2023016407A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110920583.X 2021-08-11
CN202110920583.XA CN115904488A (zh) 2021-08-11 2021-08-11 数据传输方法、系统、装置及设备

Publications (1)

Publication Number Publication Date
WO2023016407A1 true WO2023016407A1 (zh) 2023-02-16

Family

ID=85200553

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/110865 WO2023016407A1 (zh) 2021-08-11 2022-08-08 数据传输方法、系统、装置及设备

Country Status (2)

Country Link
CN (1) CN115904488A (zh)
WO (1) WO2023016407A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116665727A (zh) * 2023-07-26 2023-08-29 成都泛联智存科技有限公司 写i/o汇聚方法、装置、存储设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209644A (zh) * 2015-12-28 2017-09-26 华为技术有限公司 一种数据处理方法以及NVMe存储器
CN109983449A (zh) * 2018-06-30 2019-07-05 华为技术有限公司 数据处理的方法和存储系统
WO2020000485A1 (zh) * 2018-06-30 2020-01-02 华为技术有限公司 一种基于NVMe的数据写入方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209644A (zh) * 2015-12-28 2017-09-26 华为技术有限公司 一种数据处理方法以及NVMe存储器
CN109983449A (zh) * 2018-06-30 2019-07-05 华为技术有限公司 数据处理的方法和存储系统
WO2020000485A1 (zh) * 2018-06-30 2020-01-02 华为技术有限公司 一种基于NVMe的数据写入方法、装置及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116665727A (zh) * 2023-07-26 2023-08-29 成都泛联智存科技有限公司 写i/o汇聚方法、装置、存储设备和存储介质
CN116665727B (zh) * 2023-07-26 2023-09-22 成都泛联智存科技有限公司 写i/o汇聚方法、装置、存储设备和存储介质

Also Published As

Publication number Publication date
CN115904488A (zh) 2023-04-04

Similar Documents

Publication Publication Date Title
JP3473975B2 (ja) ネットワークシステムおよびネットワークにおける通信方法
US9348789B2 (en) Computer system and network interface supporting class of service queues
US7894480B1 (en) Computer system and network interface with hardware based rule checking for embedded firewall
CN111352889B (zh) 一种基于mctp协议的设备管理方法、设备、装置和介质
US9479464B1 (en) Computer system and network interface with hardware based packet filtering and classification
WO2017000593A1 (zh) 报文处理方法及装置
US9535702B2 (en) Asset management device and method in a hardware platform
CN114556881B (zh) 一种地址翻译方法及装置
WO2023016407A1 (zh) 数据传输方法、系统、装置及设备
CN114710467B (zh) Ip地址存储方法、装置和硬件网关
CN114885045A (zh) 一种在高速智能网卡/dpu内节约dma通道资源方法和装置
CN116599892B (zh) 一种服务器系统、路由方法、装置及电子设备和存储介质
WO2023061180A1 (zh) 基于多频率的数据发送和接收方法、装置和设备
CN114338386B (zh) 一种网络的配置方法、装置、电子设备及存储介质
WO2022078001A1 (zh) 静态规则的管理方法、装置、电子设备和存储介质
CN114567614A (zh) 基于fpga实现arp协议处理的方法及装置
CN111865794A (zh) 一种逻辑端口的关联方法、系统、设备及数据传输系统
WO2023097903A1 (zh) 报文传输方法、装置、电子设备和存储介质
CN115996203B (zh) 网络流量分域方法、装置、设备和存储介质
US20240069754A1 (en) Computing system and associated method
CN111625701B (zh) 搜索方法、装置、服务器及存储介质
US20230060132A1 (en) Coordinating data packet processing between kernel space and user space
JP5581995B2 (ja) メッセージ受信装置およびマイクロコントローラ
WO2024078356A1 (zh) 规则处理、规则查找方法、装置、设备及可读存储介质
CN105791125B (zh) 一种三态内容寻址存储器中写数据的方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22855388

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE