CN115643318A - Command execution method, device, equipment and computer readable storage medium - Google Patents
Command execution method, device, equipment and computer readable storage medium Download PDFInfo
- Publication number
- CN115643318A CN115643318A CN202211203019.7A CN202211203019A CN115643318A CN 115643318 A CN115643318 A CN 115643318A CN 202211203019 A CN202211203019 A CN 202211203019A CN 115643318 A CN115643318 A CN 115643318A
- Authority
- CN
- China
- Prior art keywords
- command
- protocol
- packet
- buffer
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004891 communication Methods 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
The present disclosure relates to a command execution method, apparatus, device, and computer-readable storage medium, the method comprising: acquiring a first protocol command from a host through a first protocol transceiving system, and writing the first protocol command into a packet shared buffer, wherein the host is in communication connection with the hardware equipment; and controlling the unloading engine through the first protocol transceiving system to execute the command in the packet sharing buffer zone. According to the method, the NVMe over TCP is realized through hardware equipment, the host end does not need to process NVMe-oF and a corresponding TCP protocol, a CPU at the host end is released for processing upper-layer services, the utilization rate oF the CPU is improved, meanwhile, data instructions related to the NVMe are directly processed based on the implementation oF the NVMe over TCP hardware, the data processing delay is reduced, the data throughput is increased, and the performance and the efficiency oF data processing are effectively improved.
Description
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a method, an apparatus, a device, and a computer-readable storage medium for executing a command.
Background
Non-Volatile Memory host controller interface specification (NVMe) is an interface specification for storage devices, which is used to specify data transmission between a computer and the storage devices. NVMe over Fabric (NVMe oF) is a formally proposed NVMe storage network access protocol in 2019.
The NVMe over has three important network Transmission layers, which are a Transmission Control Protocol (TCP), a Remote Direct address Access (RDAM) and an optical fiber, respectively, wherein the NVMe over TCP implemented based on the TCP implements Access separation, and is constructed based on the existing network, and the cost is low.
However, the NVMe over TCP implemented based on software consumes a lot of resources of a host Central Processing Unit (CPU), so that the CPU utilization rate is low and the performance bottleneck is caused.
Disclosure of Invention
In order to solve the above technical problem, the present disclosure provides a method, an apparatus, a device and a computer readable storage medium for executing a command, so as to improve the utilization rate of a CPU at a host.
In a first aspect, an embodiment of the present disclosure provides a command execution method, where the method is applied to a hardware device, where the hardware device includes at least a first protocol transceiving system, a packet shared buffer, and an offload engine, and the method includes:
acquiring a first protocol command from a host through a first protocol transceiving system, and writing the first protocol command into a packet shared buffer, wherein the host is in communication connection with the hardware equipment;
and controlling the unloading engine through the first protocol transceiving system to execute the command in the packet sharing buffer zone.
In some embodiments, obtaining the first protocol command from the host through the first protocol transceiving system comprises:
and arbitrating a queue with a request according to the doorbell information, and acquiring a first protocol command in the queue through a first protocol transceiving system.
In some embodiments, the hardware device further comprises a shared information buffer;
the writing the first protocol command into a packet shared buffer comprises:
converting the first protocol command into a second protocol command, and writing the second protocol command into a packet sharing buffer area;
and writing the shared information in the first protocol command into the shared information buffer.
In some embodiments, said controlling said offload engine via said first protocol transceiving system to execute commands in said packet shared buffer comprises:
classifying the commands in the packet sharing buffer area through the first protocol transceiving system, and determining the command type in the packet sharing buffer area;
and controlling the unloading engine to execute the command in the packet sharing buffer according to the command type.
In some embodiments, if the command type is to save data in the host to the storage system, controlling the offload engine to execute the command in the packet shared buffer includes:
storing data in the host into the packet sharing buffer through the first protocol transceiving system;
and sending the data in the packet sharing buffer to a storage system through the unloading engine.
In some embodiments, if the command type is to save data in the storage system to the host, controlling the offload engine to execute the command in the packet shared buffer includes:
and writing the data in the shared buffer area into a corresponding address in the host through the unloading engine according to the address information of the data in the packet shared buffer area.
In some embodiments, if the command type is second protocol command execution completion data, controlling the offload engine to execute the command in the packet shared buffer includes:
and assembling the second protocol command execution completion data in the packet sharing buffer into a completion information data packet, and writing the completion information data packet into the memory of the host through the unloading engine.
In a second aspect, an embodiment of the present disclosure provides a command execution apparatus, including:
an obtaining module, configured to obtain a first protocol command from a host through a first protocol transceiving system, and write the first protocol command into a packet shared buffer, where the host is in communication connection with the hardware device;
and the execution module is used for controlling an unloading engine through the first protocol transceiving system and executing the command in the packet sharing buffer.
In a third aspect, an embodiment of the present disclosure provides an electronic device, including:
a memory;
a processor; and
a computer program;
wherein the computer program is stored in the memory and configured to be executed by the processor to implement the method of the first aspect.
In a fourth aspect, the disclosed embodiments provide a computer-readable storage medium having a computer program stored thereon, the computer program being executed by a processor to implement the method of the first aspect.
In a fifth aspect, the disclosed embodiments also provide a computer program product comprising a computer program or instructions which, when executed by a processor, implement the command execution method as described above.
According to the command execution method, device, equipment and computer readable storage medium provided by the embodiment oF the disclosure, the NVMe over TCP is realized through hardware equipment, the host end does not need to process the NVMe-oF and a corresponding TCP protocol, the CPU at the host end is released for processing upper-layer services, the utilization rate oF the CPU is improved, meanwhile, data instructions related to the NVMe are directly processed based on the implementation oF the NVMe over TCP hardware, the data processing delay is reduced, the data throughput is increased, and the performance and the efficiency oF data processing are effectively improved.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure.
In order to more clearly illustrate the embodiments or technical solutions in the prior art of the present disclosure, the drawings used in the description of the embodiments or prior art will be briefly described below, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without inventive exercise.
FIG. 1 is a flow chart of a command execution method provided by an embodiment of the present disclosure;
fig. 2 is a schematic diagram of an application scenario provided in an embodiment of the present disclosure;
fig. 3 is a schematic diagram of a packet shared buffer structure according to an embodiment of the disclosure;
FIG. 4 is a diagram illustrating a buffer read/write pointer according to an embodiment of the present disclosure;
FIG. 5 is a flowchart of a command execution method according to another embodiment of the present disclosure;
fig. 6 is a schematic structural diagram of a command sending end according to an embodiment of the present disclosure;
fig. 7 is a schematic diagram of a command receiving end structure according to an embodiment of the present disclosure;
FIG. 8 is a schematic structural diagram of a command execution device according to an embodiment of the present disclosure;
fig. 9 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure.
Detailed Description
In order that the above objects, features and advantages of the present disclosure may be more clearly understood, aspects of the present disclosure will be further described below. It should be noted that the embodiments and features of the embodiments of the present disclosure may be combined with each other without conflict.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure, but the present disclosure may be practiced in other ways than those described herein; it is to be understood that the embodiments disclosed in the specification are only a few embodiments of the present disclosure, and not all embodiments.
The NVMe is a storage interface access protocol formally proposed in 2015, is specially designed for a Solid State Disk (SSD), and has the characteristics of multiple queues (64K), large depth (64K), no need of locking and the like compared with a conventional Serial Advanced Technology Attachment (SATA) and the like, and fully utilizes the characteristics of a Non-Volatile storage medium (NVM), thereby having lower delay and higher bandwidth. The NVMe oF is an NVMe storage network access protocol formally proposed in 2019, and compared with a conventional Small Computer System Interface (Internet Small Computer System Interface, iSCSI) protocol for realizing network storage access, the NVMe oF protocol reduces conversion from NVMe to the iSCSI protocol, and can realize network storage access based on native NVMe operation, thereby further reducing access delay and improving bandwidth.
To support network storage oF the data center, extension oF NVMe on a peripheral component interconnect express (PCIe) bus is implemented by NVMe oF. NVMe-oF currently has three important network transport layers, TCP, RDMA and fiber. Among them, TCP is the most widely used network transport layer protocol, NVMe over TCP implemented based on TCP achieves memory separation, and compared with RDMA using InfiniBand (IB) protocol, NVMe over TCP can be constructed based on existing network, and utilizes existing network infrastructure, which is lower in cost.
However, NVMe over TCP based software implementations have performance bottlenecks. If the kernel-state TCP is adopted for processing, because frequent context switching and interruption consume a large amount of host CPU resources, and simultaneously increase data processing delay, the NVMe over TCP realized based on software cannot meet the requirement for delay-sensitive applications; if the user-mode TCP is adopted, although polling is adopted to replace interruption, frequent context switching is avoided, the method completely occupies a CPU, cannot process more application programs, and is low in CPU utilization rate.
To address this problem, embodiments of the present disclosure provide a command execution method, which is described below with reference to specific embodiments.
Fig. 1 is a flowchart of a command execution method provided in an embodiment of the present disclosure. The method can be applied to the application scenario shown in fig. 2, which includes a host computer (MAC) and a hardware device (FPGA/ASIC). It is understood that the command execution method provided by the embodiment of the present disclosure may also be applied in other scenarios.
The following describes the command execution method shown in fig. 1 with reference to the application scenario shown in fig. 2, where the method includes the following specific steps:
s101, a first protocol command is obtained from a host through a first protocol transceiving system, and the first protocol command is written into a packet sharing buffer area.
The first protocol transceiving system is used for receiving or sending a first protocol command. The hardware equipment is in communication connection with the host, and the first protocol transceiving system acquires a first protocol command issued by the host through a PCIe bus and writes the first protocol command into the packet sharing buffer.
Specifically, the first protocol transceiving system is composed of a command transmitting terminal and a command processing receiving terminal, and the command transmitting terminal can simulate the remote storage system as a local storage system, so that the host can access the remote storage system in a manner of accessing the local storage system. The command sending end obtains a first protocol command from the host, converts the first protocol command into a second protocol command, and writes the second protocol command into a corresponding packet sharing buffer area.
The hardware equipment also comprises a protocol buffer control area used for storing the information of the read-write pointer in the packet sharing buffer area and indicating the position of the current command. And the command sending end acquires the first protocol command from the host, converts the first protocol command into a second protocol command, writes the second protocol command into the corresponding packet sharing buffer area, and simultaneously updates the write pointer information in the protocol buffer control area.
Fig. 3 is a schematic diagram of a packet shared buffer structure provided in the embodiment of the present disclosure, and fig. 4 is a schematic diagram of a buffer read-write pointer provided in the embodiment of the present disclosure. As shown in fig. 3, the packet sharing buffer is divided according to different protocol links, each link is composed of a receive buffer (Rx _ handle) and a transmit buffer (Tx _ handle), the transmit buffer is used for receiving the second protocol command sent by the sender in the first protocol transceiving system, and the receive buffer is used for receiving the protocol data sent by the remote storage system. Each buffer is formed by read and write pointers which, as shown in fig. 4, point to the same location when the buffer is empty, update the write pointer (write pointer increment) when new data is written, and update the read pointer (read pointer increment) when data is processed.
Alternatively, the first protocol command may be an NVMe command. As shown in fig. 2, in the hardware device, an NVMe command transmitting terminal (NVMe _ Tx) and an NVMe command data processing receiving terminal (NVMe _ Rx) jointly form a first protocol transceiving system, and are responsible for acquiring an NVMe command issued by a host. In some embodiments, after acquiring the NVMe command from the host, the first protocol transceiving system parses the NVMe command, converts the NVMe command into an NVMe-oF instruction, writes the NVMe command into a corresponding Packet shared Buffer (Packet _ Buffer), and updates corresponding pointer information in a protocol Buffer control area (Handle _ ctrl).
S102, controlling the unloading engine through the first protocol transceiving system, and executing the command in the packet sharing buffer.
The protocol buffer control region is located in the offload engine. After a command sending end in the first protocol transceiving system converts a first protocol command into a second protocol command and writes the second protocol command into a packet sharing buffer area, a write pointer in a protocol buffer control area is updated, and a packet sending process of an unloading engine is started. And the command processing receiving end in the first protocol transceiving system executes a processing flow corresponding to the command in the packet sharing buffer according to the data in the packet sharing buffer.
As shown in fig. 2, a command sender in the first protocol transceiving system writes an NVMe-od command into a corresponding packet shared buffer (Tx _ handle), updates a write pointer oF the buffer, and starts a packet sending process through an offload engine TOE. And a command processing receiving terminal in the first protocol transceiving system receives data according to the pointer information in the protocol buffer control area and analyzes and processes the data according to the NVMe over TCP protocol.
The embodiment of the disclosure obtains a first protocol command from a host through a first protocol transceiving system, and writes the first protocol command into a packet sharing buffer area; the unloading engine is controlled by the first protocol transceiving system, the command in the packet sharing buffer area is executed, NVMe over TCP can be realized through hardware equipment, a host end does not need to process NVMe-oF and a corresponding TCP protocol, a CPU at the host end is released for processing upper-layer services, the utilization rate oF the CPU is improved, meanwhile, data instructions related to NVMe are directly processed based on the implementation oF NVMe over TCP hardware, the data processing delay is reduced, the throughput oF data is increased, and the performance and the efficiency oF data processing are effectively improved.
In addition, the remote NVMe storage system is simulated into the NVMe SSD through the first protocol transceiving system, so that the host end can use remote storage as local storage, and the occupancy rate of a host CPU (central processing unit) is further reduced.
Fig. 5 is a flowchart of a command execution method according to another embodiment of the disclosure, as shown in fig. 5, the method includes the following steps:
s501, arbitrating a queue with a request according to doorbell information, and acquiring a first protocol command in the queue through a first protocol transceiving system.
Doorbell (DB) information generally represents that new information, requests, or instructions are written to a queue, and if doorbell information is received from a plurality of task queues on the host side, it represents that there are requests enqueued in the queue. And determining a task queue with a request according to the doorbell information, and further acquiring a first protocol command from the queue through a command transmitting end in the first protocol transceiving system.
S502, converting the first protocol command into a second protocol command, and writing the second protocol command into a packet sharing buffer area.
Specifically, the first protocol transceiving system is composed of a command transmitting terminal and a command processing receiving terminal, and the command transmitting terminal can simulate the remote storage system as a local storage system, so that the host can access the remote storage system in a manner of accessing the local storage system. The command sending end obtains a first protocol command from the host, converts the first protocol command into a second protocol command, and writes the second protocol command into a corresponding packet sharing buffer area.
The hardware device also comprises a protocol buffer control area used for storing the information of the read-write pointer in the packet sharing buffer area and indicating the position of the current command. And the command sending end acquires the first protocol command from the host, converts the first protocol command into a second protocol command, writes the second protocol command into the corresponding packet sharing buffer area, and simultaneously updates the write pointer information in the protocol buffer control area.
Fig. 6 is a schematic structural diagram of a command sending end according to an embodiment of the present disclosure. As shown in fig. 6, a command sending end (NVMe _ Tx) in the first protocol transceiving system includes an NVMe _ DB module, configured to arbitrate a queue with a request according to doorbell information; the NVMe _ link _ management module is responsible for establishing and deleting a link between the NVMe over TCP and the remote NVMe system; the NVMe _ NVMe-oF _ Trans module is used for converting the first protocol command into a second protocol command, namely analyzing the NVMe command and converting the NVMe command into the NVMe-oF command; the NVMe-oF _ TCP _ PDU is used for forming the NVMe-oF instruction into a corresponding protocol data Packet (PDU) according to the NVMe over TCP protocol.
S503, writing the shared information in the first protocol command into the shared information buffer area.
The hardware device also comprises a shared information buffer. After receiving the first protocol command, the first protocol transceiving system writes the shared information in the command into the shared information buffer area. Wherein the shared information may include address information of the first protocol command and queue information. The address information is used for indicating a target address of the command, and the queue information indicates a task queue in the host end corresponding to the command.
S504, classifying the commands in the packet sharing buffer area through the first protocol transceiving system, and determining the command type in the packet sharing buffer area.
And S505, controlling the unloading engine to execute the command in the packet sharing buffer area according to the command type.
And classifying according to the PDU type of the command in the packet sharing buffer zone through the first protocol transceiving system. Generally, the classification can be divided into three categories: and storing the data in the host to the storage system, storing the data in the storage system to the host, and executing the second protocol command to finish the data. Different operations are then performed by the first protocol transceiving system according to the different PDU types.
Optionally, if the command type is to store data in the host to the storage system, controlling the offload engine to execute the command in the packet shared buffer includes: storing data in the host into the packet sharing buffer through the first protocol transceiving system; and sending the data in the packet sharing buffer to a storage system through the unloading engine.
Fig. 7 is a schematic diagram of a command receiving end structure according to an embodiment of the disclosure. The DMA _ engine module is used for providing a DMA access mode. And when the PDU type of the command is to store the Data in the host into the storage system, acquiring the Data issued by the host into the Tx _ handle buffer by using a DMA mode through an H2C _ Data module, and sending the Data to the remote storage system.
Optionally, if the command type is to store data in the storage system to the host, controlling the offload engine to execute the command in the packet shared buffer includes: and writing the data in the shared buffer area into a corresponding address in the host through the unloading engine according to the address information of the data in the packet shared buffer area.
When the PDU type of the command is to store Data in the storage system to the host, the C2H _ Data module writes the Data in the Rx _ handle buffer into the host memory in the DMA form according to the address information in the address information shared region Share _ adress _ info as shown in fig. 2.
Optionally, if the command type is the second protocol command execution completion data, controlling the offload engine to execute the command in the packet shared buffer includes: and assembling the second protocol command execution completion data in the packet sharing buffer into a completion information data packet, and writing the completion information data packet into the memory of the host through the unloading engine.
And when the PDU type of the command is the second protocol command execution completion Data, the CQ _ Data module assembles the second protocol command execution completion Data in the current packet sharing buffer to obtain a completion information Data packet, and writes the completion information Data packet into the memory of the host.
The method comprises the steps that a queue with a request is arbitrated according to doorbell information, and a first protocol command in the queue is obtained through a first protocol transceiving system; converting the first protocol command into a second protocol command, and writing the second protocol command into a packet sharing buffer; writing the shared information in the first protocol command into the shared information buffer; classifying the commands in the packet sharing buffer area through the first protocol transceiving system, and determining the command type in the packet sharing buffer area; according to the command type, the unloading engine is controlled to execute the command in the packet sharing buffer area, NVMe over TCP can be realized through hardware equipment, the host end does not need to process NVMe-oF and a corresponding TCP protocol, a CPU at the host end is released for processing upper-layer services, the utilization rate oF the CPU is improved, meanwhile, different data instructions are processed in different modules based on the NVMe over TCP hardware realization, the data processing delay is reduced, the data throughput is increased, and the performance and the efficiency oF data processing are effectively improved.
The command execution method provided by the embodiment oF the disclosure can realize the NVMe over TCP protocol through hardware, and is compatible with the standard NVMe-oF protocol Target.
Fig. 8 is a schematic structural diagram of a command execution device according to an embodiment of the present disclosure. The command execution means may be a hardware device as described in the above embodiments, or the command execution means may be a component or assembly in the hardware device. The command execution device provided in the embodiment of the present disclosure may execute the processing flow provided in the embodiment of the command execution method, as shown in fig. 8, the command execution device 80 includes: an acquisition module 81, an execution module 82; the obtaining module 81 is configured to obtain a first protocol command from a host through a first protocol transceiving system, and write the first protocol command into a packet shared buffer, where the host is in communication connection with the hardware device; the execution module 82 is configured to control the offload engine through the first protocol transceiving system to execute the command in the packet shared buffer.
Optionally, the obtaining module 81 includes an arbitrating unit 811, configured to arbitrate a queue with a request according to the doorbell information, and obtain the first protocol command in the queue through the first protocol transceiving system.
Optionally, the obtaining module 81 includes a converting unit 812 and a communication unit 813; a conversion unit 812 is configured to convert the first protocol command into a second protocol command, and write the second protocol command into a packet shared buffer; the communication unit 813 is configured to write the shared information in the first protocol command into the shared information buffer.
Optionally, the execution module 82 includes a classification unit 821 and an execution unit 822; the classifying unit 821 is configured to classify the command in the packet shared buffer through the first protocol transceiving system, and determine a command type in the packet shared buffer; the execution unit 822 is configured to control the offload engine to execute the command in the packet shared buffer according to the command type.
Optionally, if the command type is to store data in the host to the storage system, the execution unit 822 is configured to store the data in the host to the packet shared buffer through the first protocol transceiving system; and sending the data in the packet sharing buffer to a storage system through the unloading engine.
Optionally, if the command type is to store data in the storage system to the host, the execution unit 822 is configured to write the data in the shared buffer to a corresponding address in the host through the offload engine according to address information of the data in the packet shared buffer.
Optionally, if the command type is second protocol command execution completion data, the execution unit 822 is configured to assemble the second protocol command execution completion data in the packet shared buffer into a completion information data packet, and write the completion information data packet into the memory of the host through the offload engine.
The command execution device in the embodiment shown in fig. 8 can be used to execute the technical solutions of the above method embodiments, and the implementation principles and technical effects are similar, which are not described herein again.
Fig. 9 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure. The electronic device may be a hardware device as described in the above embodiments. The electronic device provided in the embodiment of the present disclosure may execute the processing procedure provided in the embodiment of the command execution method, and as shown in fig. 9, the electronic device 90 includes: memory 91, processor 92, computer programs and communications interface 93; wherein the computer program is stored in the memory 91 and is configured to be executed by the processor 92 in a command execution method as described above.
In addition, the disclosed embodiments also provide a computer-readable storage medium, on which a computer program is stored, the computer program being executed by a processor to implement the command execution method described in the above embodiments.
Furthermore, the embodiments of the present disclosure also provide a computer program product, which includes a computer program or instructions, and when the computer program or instructions are executed by a processor, the computer program or instructions implement the command execution method as described above.
Computer program code for carrying out operations for the present disclosure may be written in any combination of one or more programming languages, including but not limited to an object oriented programming language such as Java, smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the disclosure herein is not limited to the particular combination of features described above, but also encompasses other combinations of features described above or equivalents thereof without departing from the spirit of the disclosure. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It is noted that, in this document, relational terms such as "first" and "second," and the like, are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrases "comprising one of 8230; \8230;" 8230; "does not exclude the presence of additional like elements in a process, method, article, or apparatus that comprises the element.
The foregoing are merely exemplary embodiments of the present disclosure, which enable those skilled in the art to understand or practice the present disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims (10)
1. A command execution method is applied to a hardware device, wherein the hardware device at least comprises a first protocol transceiving system, a packet sharing buffer and an unloading engine, and the method comprises the following steps:
acquiring a first protocol command from a host through a first protocol transceiving system, and writing the first protocol command into a packet shared buffer, wherein the host is in communication connection with the hardware equipment;
and controlling the unloading engine through the first protocol transceiving system to execute the command in the packet sharing buffer zone.
2. The method of claim 1, wherein obtaining the first protocol command from the host via the first protocol transceiving system comprises:
and arbitrating a queue with a request according to the doorbell information, and acquiring a first protocol command in the queue through a first protocol transceiving system.
3. The method of claim 1, wherein the hardware device further comprises a shared information buffer;
the writing the first protocol command into a packet shared buffer comprises:
converting the first protocol command into a second protocol command, and writing the second protocol command into a packet sharing buffer area;
and writing the shared information in the first protocol command into the shared information buffer.
4. The method of claim 1, wherein controlling the offload engine via the first protocol transceiver system to execute the command in the packet-shared buffer comprises:
classifying the commands in the packet sharing buffer area through the first protocol transceiving system, and determining the command type in the packet sharing buffer area;
and controlling the unloading engine to execute the command in the packet sharing buffer according to the command type.
5. The method of claim 4, wherein controlling the offload engine to execute the command in the packet shared buffer if the command type is to save data in a host to a storage system comprises:
storing data in the host into the packet sharing buffer through the first protocol transceiving system;
and sending the data in the packet sharing buffer to a storage system through the unloading engine.
6. The method of claim 4, wherein controlling the offload engine to execute the command in the packet shared buffer if the command type is to save data in the storage system to the host comprises:
and writing the data in the shared buffer area into a corresponding address in the host through the unloading engine according to the address information of the data in the packet shared buffer area.
7. The method of claim 4, wherein controlling the offload engine to execute the command in the packet shared buffer if the command type is second protocol command execution completion data comprises:
and assembling the second protocol command execution completion data in the packet sharing buffer into a completion information data packet, and writing the completion information data packet into the memory of the host through the unloading engine.
8. A command execution apparatus, comprising:
the device comprises an acquisition module, a packet sharing buffer and a processing module, wherein the acquisition module is used for acquiring a first protocol command from a host through a first protocol transceiving system and writing the first protocol command into the packet sharing buffer;
and the execution module is used for controlling an unloading engine through the first protocol transceiving system and executing the command in the packet sharing buffer.
9. An electronic device, comprising:
a memory;
a processor; and
a computer program;
wherein the computer program is stored in the memory and configured to be executed by the processor to implement the method of any one of claims 1-7.
10. A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the method according to any one of claims 1-7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211203019.7A CN115643318A (en) | 2022-09-29 | 2022-09-29 | Command execution method, device, equipment and computer readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211203019.7A CN115643318A (en) | 2022-09-29 | 2022-09-29 | Command execution method, device, equipment and computer readable storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115643318A true CN115643318A (en) | 2023-01-24 |
Family
ID=84942445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211203019.7A Pending CN115643318A (en) | 2022-09-29 | 2022-09-29 | Command execution method, device, equipment and computer readable storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643318A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827682A (en) * | 2023-02-10 | 2023-03-21 | 山东浪潮科学研究院有限公司 | Database query acceleration engine device, method and storage medium |
CN117075966A (en) * | 2023-08-31 | 2023-11-17 | 中科驭数(北京)科技有限公司 | Instruction processing method, device, equipment and readable storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663058A (en) * | 2014-06-24 | 2017-05-10 | 高通股份有限公司 | Disunited shared-information and private-information caches |
CN109117386A (en) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | A kind of system and method for network remote read-write secondary storage |
CN112988632A (en) * | 2019-12-02 | 2021-06-18 | 英特尔公司 | Shared memory space between devices |
CN114175005A (en) * | 2019-07-29 | 2022-03-11 | 赛灵思公司 | Programmable network interface device including a host computing device and a network interface device |
CN114764369A (en) * | 2021-01-15 | 2022-07-19 | 英特尔公司 | Virtual device portability |
-
2022
- 2022-09-29 CN CN202211203019.7A patent/CN115643318A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663058A (en) * | 2014-06-24 | 2017-05-10 | 高通股份有限公司 | Disunited shared-information and private-information caches |
CN109117386A (en) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | A kind of system and method for network remote read-write secondary storage |
CN114175005A (en) * | 2019-07-29 | 2022-03-11 | 赛灵思公司 | Programmable network interface device including a host computing device and a network interface device |
CN112988632A (en) * | 2019-12-02 | 2021-06-18 | 英特尔公司 | Shared memory space between devices |
CN114764369A (en) * | 2021-01-15 | 2022-07-19 | 英特尔公司 | Virtual device portability |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827682A (en) * | 2023-02-10 | 2023-03-21 | 山东浪潮科学研究院有限公司 | Database query acceleration engine device, method and storage medium |
CN115827682B (en) * | 2023-02-10 | 2023-04-18 | 山东浪潮科学研究院有限公司 | Database query acceleration engine device, method and storage medium |
CN117075966A (en) * | 2023-08-31 | 2023-11-17 | 中科驭数(北京)科技有限公司 | Instruction processing method, device, equipment and readable storage medium |
CN117075966B (en) * | 2023-08-31 | 2024-04-19 | 中科驭数(北京)科技有限公司 | Instruction processing method, device, equipment and readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642777B2 (en) | System and method for maximizing bandwidth of PCI express peer-to-peer (P2P) connection | |
US8719456B2 (en) | Shared memory message switch and cache | |
US7603429B2 (en) | Network adapter with shared database for message context information | |
CN115643318A (en) | Command execution method, device, equipment and computer readable storage medium | |
US20080086575A1 (en) | Network interface techniques | |
US9535760B2 (en) | Method and system for dedicating processors for desired tasks | |
US9390036B2 (en) | Processing data packets from a receive queue in a remote direct memory access device | |
US10795608B2 (en) | Computer, communication driver, and communication control method | |
US20200210224A1 (en) | Methods and apparatus for verifying completion of groups of data transactions between processors | |
CN112953967A (en) | Network protocol unloading device and data transmission system | |
US8250252B1 (en) | System and methods for using a DMA module for a plurality of virtual machines | |
CN113079113B (en) | Data transmission device and data transmission system | |
CN116868553A (en) | Dynamic network receiver driven data scheduling on a data center network for managing endpoint resources and congestion relief | |
CN115643321A (en) | Data processing method, device, equipment and computer readable storage medium | |
CN110868364B (en) | Bandwidth isolation device and method | |
CN116471242A (en) | RDMA-based transmitting end, RDMA-based receiving end, data transmission system and data transmission method | |
US9936003B1 (en) | Method and system for transmitting information in a network | |
CN114500403A (en) | Data processing method and device and computer readable storage medium | |
CN117234998B (en) | Multi-host data access method and system | |
US8918593B2 (en) | Method and system for memory management | |
CN115344192A (en) | Data processing method and device and electronic equipment | |
CN118057793A (en) | Data reading and writing method and related device | |
CN117785762A (en) | Information storage method, device, equipment and storage medium | |
CN117992125A (en) | Reducing index update messages for memory-based communication queues | |
KR20190064290A (en) | Method and Apparatus for acceleration of data sending and receiving based on network interface card |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |