CN106210041B - A kind of method for writing data and server end network interface card - Google Patents

A kind of method for writing data and server end network interface card Download PDF

Info

Publication number
CN106210041B
CN106210041B CN201610539890.2A CN201610539890A CN106210041B CN 106210041 B CN106210041 B CN 106210041B CN 201610539890 A CN201610539890 A CN 201610539890A CN 106210041 B CN106210041 B CN 106210041B
Authority
CN
China
Prior art keywords
data
network interface
interface card
server end
written
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.)
Active
Application number
CN201610539890.2A
Other languages
Chinese (zh)
Other versions
CN106210041A (en
Inventor
雷春
王�琦
陈步林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
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 Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201610539890.2A priority Critical patent/CN106210041B/en
Publication of CN106210041A publication Critical patent/CN106210041A/en
Application granted granted Critical
Publication of CN106210041B publication Critical patent/CN106210041B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present embodiments relate to field of communication technology more particularly to a kind of method for writing data and relevant apparatus, to reduce the time delay of data writing process.In the embodiment of the present invention, since server end network interface card is after the data write request order for receiving client-server transmission, one side server end network interface card is directly parsed, and the first data read command is returned to client end processor, to be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent data write request order, to which directly the memory block that data are sent to the second destination address meaning can be written into from the memory block of server end network interface card when receiving the second data read command of server return.

Description

A kind of method for writing data and server end network interface card
Technical field
The present embodiments relate to the communications field more particularly to a kind of method for writing data and server end network interface card.
Background technique
Fig. 1 illustrates a kind of client (English is known as Initiator) in the prior art and server (English title The structural schematic diagram of connection relationship between Target).As shown in Figure 1, (English is known as client end processor 111 Initiator X86) pass through client NIC 112 and immediate data access (Remote Direct Memory Access, letter Claim RDMA) fusion Ethernet (RDMA over Converged Ethernet, abbreviation ROCE) connection, and by ROCE with exchange Machine 113 connects, and client end processor 111 is connect with the memory block 121 of client.(English is known as server processor 115 Target X86) it is connect with server end network interface card 114, server end network interface card 114 is carried on the NVME agreement (NVME of switching network Over Fabric, abbreviation NOF) agreement connect with interchanger 113, and the connection storage equipment of server processor 115, storage is set Standby includes the solid for complying with standard nonvolatile memory (Non-Volatile Memory Express, abbreviation NVME) agreement The memory block 124 of hard disk 123 (Solid State Drive, abbreviation SSD) and server end, the memory block of server end 124 are alternatively referred to as the memory of server end.
Client end processor 111 and server processor 115 carry out storage across network and need to realize NOF agreement, tie Structure (English is known as Fabric) uses ROCE switching network, and ROCE is the rdma protocol based on two layers of Ethernet, in main RDMA (English Referred to as Host RDMA) it arrives under the transmission mode of main RDMA (English is known as Host RDMA), client end processor 111 may be implemented Memory block RDMA between server processor 115 is moved.For example, client end processor 111 will based on rdma protocol Data to be written are written from the memory block of client 121 to the memory block of server end 124, the memory block 124 of the server end It is simultaneously also the memory block of the corresponding data of NVME agreement, according to NVME agreement again by the solid of data-moving to server end Hard disk 123.
Based on the structural schematic diagram of the connection relationship between client shown in FIG. 1 and server, Fig. 1 a is illustrated It is based on structure shown in FIG. 1, is written into data from the write-in of the memory block of client 121 to the memory block of server end 124 A kind of method flow schematic diagram, as shown in Fig. 1 and Fig. 1 a:
Step 3101, client end processor 111 is in the determining memory block 124 for needing to be written into data write service device end When, client end processor 111 generates data write request order (English is known as Capsule), and writes data into request command Client NIC 112 (Net Interface Card, abbreviation NIC) and switching network are passed sequentially through, server end network interface card is sent to 114;Wherein, it is poly- scattered chain (Scatter Gather List, abbreviation SGL) format that data write request order, which is format, that is, is counted According to containing the source address of one or more data to be written in write request order;Source address is being located at for data to be written The address of the memory block 121 of client;
Step 3102, it after server end network interface card 114 receives data write request order, is deposited based on direct memory block (Direct Memory Access, abbreviation DMA) technology is taken to write the data into the storage that request command is pass-through to server end In area 124, server processor 115 reads data write request order from the memory block of server end 124.
Step 3103, server processor 115 parses data write request order, finds data write request after parsing Order is the data write request order of SGL format, then server processor 115 is applied in the memory block 124 of server end Memory block, and record the destination address on the memory block of server end 124 applied, generate data read command (English is known as RDMA_READ);The target on the memory block 124 of source address and server end is carried in the data read command Location;
Step 3104, data read command is sent to server end network interface card 114 by server processor 115;
Step 3105, data read command is passed sequentially through switching network by server end network interface card 114 and client NIC 112 is saturating The memory block 121 of client is reached, client end processor 111 reads the data read command from the memory block of client 121;
Step 3106, client end processor 111 is according to the data read command, the number for the source address that the address SGL is directed toward According to reading, and reading data response command (English is known as READ RESPOUNSE) is generated, is carried in reading data response command Data to be written;
Step 3107, reading data response command is passed sequentially through client NIC 112 and exchange by client end processor 111 Net is sent to server end network interface card 114;
Step 3108, server end network interface card 114 is written into data based on dma mode and stores to the clothes of destination address meaning The memory block 124 at business device end.
To sum up, since client and server end interaction times are more and complex in above-mentioned data writing scheme, because This leads to data writing process, and there are biggish time delays.
Summary of the invention
The embodiment of the present invention provides a kind of method for writing data and server end network interface card, to reduce data writing process Time delay.
The embodiment of the present invention provides a kind of method for writing data, comprising:
Server end network interface card receives the data write request order that client end processor is sent, wherein data write request The source address that data to be written are located at the memory block of client is carried in order;
Server end network interface card returns to server end after successfully parsing data write request order, to client end processor The first data read command that network interface card generates, and to server processor transparent data write request order;First data are read Order is taken to carry the first object address that data to be written to be written, first object address is the memory block of server end network interface card Address;
Server end network interface card receives the number to be written that client end processor is sent after receiving the first data read command According to, and receive the second data read command that server processor returns after receiving data write request order;The The second destination address of data to be written is carried in two data read commands, the second destination address is the ground of the memory block of server Location;
Server end network interface card is written into the memory block that data are stored in first object address meaning, and is written into data The memory block of the second destination address meaning is sent to from the memory block of first object address meaning.
In the embodiment of the present invention, since server end network interface card is in the data write request for receiving client-server transmission After order, one side server end network interface card is directly parsed, and returns to the first data read command to client end processor, To be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent transmission number According to write request order, thus when receiving the second data read command of server return, it can be directly from server end The memory block of network interface card is written into the memory block that data are sent to the second destination address meaning.
Optionally, server end network interface card is on-site programmable gate array FPGA network interface card.It is compiled in this way, server end network interface card has Cheng Nengli, after one side server end network interface card receives data write request order, not only as the prior art, by this Data write request order is pass-through to server end, and FPGA network interface card also parses data write request order, and to Client returns to the first data read command.
Optionally, the format of data write request order is the poly- scattered chain SGL format for meeting NOF agreement.In this way, can be more preferable Improve the larger problem of data writing process time delay under NOF agreement.And in the data write request order of SGL format include to The source address of data is written, so as to reduce the time delay for carrying out method for writing data based on SGL format.
Optionally, the first data read command carries source address;Source address is carried in second data read command;
Server end network interface card is written into data and is sent to the second destination address from the memory block of first object address meaning Before signified memory block, further includes: server end network interface card determines the source address and first carried in the second data read command The source address carried in data read command is consistent.
That is, server end network interface card is with determining the source carried in the second data read command in the embodiment of the present invention After the source address carried in location and the first data read command is consistent, it is written into data and is deposited from first object address is signified Storage area is sent to the memory block of the second destination address meaning.As it can be seen that with this solution, server end network interface card can be made accurately to find out Data to be written corresponding to second data read command, to more accurately be written into data from first object address institute The memory block of finger is sent to the memory block of the second destination address meaning.
Optionally, before server end network interface card returns to the first data read command to client end processor, further includes: service Device end network interface card determines that the idle storage space capacity of the memory block of server end network interface card is not less than the data volume of data to be written.
In this way, the idle storage space capacity that server end network interface card is avoided in the memory block of server end network interface card is lesser In the case of, data can not be written by, which going caused by obtaining data to be written, stores the service connected to server end network interface card The problem of memory block at device end, to make entire scheme more rationally, efficiently.
The embodiment of the present invention provides a kind of server end network interface card, comprising:
Receiving unit, for receiving the data write request order of client end processor transmission;Receive client end processor The data to be written sent after the first data read command for receiving transmission unit transmission, and receive server-side processes The second data read command that device returns after the data write request order for receiving transmission unit transmission;
Transmission unit, for returning to the first data read command to client end processor, and it is saturating to server processor Pass data write request order;
Processing unit, for generating the first data read command after successfully parsing data write request order;Logical It crosses after receiving unit receives data to be written, is written into the memory block that data are stored in first object address meaning, and It is written into the memory block that data are sent to the second destination address meaning from the memory block of first object address meaning;
Wherein, the source address that data to be written are located at the memory block of client is carried in data write request order, first Data read command carries the data to be written first object address to be written, and first object address is depositing for server end network interface card The address of storage area;The second destination address of data to be written is carried in second data read command, the second destination address is service The address of the memory block of device.
In the embodiment of the present invention, since server end network interface card is in the data write request for receiving client-server transmission After order, one side server end network interface card is directly parsed, and returns to the first data read command to client end processor, To be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent transmission number According to write request order, thus when receiving the second data read command of server return, it can be directly from server end The memory block of network interface card is written into the memory block that data are sent to the second destination address meaning.
Optionally, server end network interface card is on-site programmable gate array FPGA network interface card.It is compiled in this way, server end network interface card has Cheng Nengli, after one side server end network interface card receives data write request order, not only as the prior art, by this Data write request order is pass-through to server end, and FPGA network interface card also parses data write request order, and to Client returns to the first data read command.
Optionally, the format of data write request order is the poly- scattered chain SGL format for meeting NOF agreement.In this way, can be more preferable Improve the larger problem of data writing process time delay under NOF agreement.And in the data write request order of SGL format include to The source address of data is written, so as to reduce the time delay for carrying out method for writing data based on SGL format.
Optionally, the first data read command carries source address;Source address is carried in second data read command;
Processing unit is written into data from the memory block of first object address meaning and is sent to the second destination address meaning Memory block before, be also used to: determining the source address carried in the second data read command and taken in the first data read command The source address of band is consistent.
That is, server end network interface card is with determining the source carried in the second data read command in the embodiment of the present invention After the source address carried in location and the first data read command is consistent, it is written into data and is deposited from first object address is signified Storage area is sent to the memory block of the second destination address meaning.As it can be seen that with this solution, server end network interface card can be made accurately to find out Data to be written corresponding to second data read command, to more accurately be written into data from first object address institute The memory block of finger is sent to the memory block of the second destination address meaning.
Optionally, processing unit, before returning to the first data read command to client end processor by transmission unit, It is also used to: determining that the idle storage space capacity of the memory block of server end network interface card is not less than the data volume of data to be written.
In this way, the idle storage space capacity that server end network interface card is avoided in the memory block of server end network interface card is lesser In the case of, data can not be written by, which going caused by obtaining data to be written, stores the service connected to server end network interface card The problem of memory block at device end, to make entire scheme more rationally, efficiently.
The embodiment of the present invention provides a kind of server end network interface card, comprising:
Receiver, for receiving the data write request order of client end processor transmission;Client end processor is received to exist The data to be written sent after the first data read command of transmitter transmission are received, and receives server processor and exists Receive the second data read command returned after the data write request order of transmitter transmission;
Transmitter, for returning to the first data read command to client end processor, and to server processor transparent transmission Data write request order;
Processor, for generating the first data read command after successfully parsing data write request order;Passing through After receiver receives data to be written, it is written into the memory block that data are stored in first object address meaning, and will be to Write-in data are sent to the memory block of the second destination address meaning from the memory block of first object address meaning;
Wherein, the source address that data to be written are located at the memory block of client is carried in data write request order, first Data read command carries the data to be written first object address to be written, and first object address is depositing for server end network interface card The address of storage area;The second destination address of data to be written is carried in second data read command, the second destination address is service The address of the memory block of device.
In the embodiment of the present invention, since server end network interface card is in the data write request for receiving client-server transmission After order, one side server end network interface card is directly parsed, and returns to the first data read command to client end processor, To be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent transmission number According to write request order, thus when receiving the second data read command of server return, it can be directly from server end The memory block of network interface card is written into the memory block that data are sent to the second destination address meaning.
Optionally, server end network interface card is on-site programmable gate array FPGA network interface card.It is compiled in this way, server end network interface card has Cheng Nengli, after one side server end network interface card receives data write request order, not only as the prior art, by this Data write request order is pass-through to server end, and FPGA network interface card also parses data write request order, and to Client returns to the first data read command.
Optionally, the format of data write request order is the poly- scattered chain SGL format for meeting NOF agreement.In this way, can be more preferable Improve the larger problem of data writing process time delay under NOF agreement.And in the data write request order of SGL format include to The source address of data is written, so as to reduce the time delay for carrying out method for writing data based on SGL format.
Optionally, the first data read command carries source address;Source address is carried in second data read command;
Processor is written into data from the memory block of first object address meaning and is sent to the second destination address meaning Before memory block, it is also used to:
The source address one for determining the source address carried in the second data read command and being carried in the first data read command It causes.
That is, server end network interface card is with determining the source carried in the second data read command in the embodiment of the present invention After the source address carried in location and the first data read command is consistent, it is written into data and is deposited from first object address is signified Storage area is sent to the memory block of the second destination address meaning.As it can be seen that with this solution, server end network interface card can be made accurately to find out Data to be written corresponding to second data read command, to more accurately be written into data from first object address institute The memory block of finger is sent to the memory block of the second destination address meaning.
Optionally, processor is also used before returning to the first data read command to client end processor by transmitter In:
Determine that the idle storage space capacity of the memory block of server end network interface card is not less than the data volume of data to be written.
In this way, the idle storage space capacity that server end network interface card is avoided in the memory block of server end network interface card is lesser In the case of, data can not be written by, which going caused by obtaining data to be written, stores the service connected to server end network interface card The problem of memory block at device end, to make entire scheme more rationally, efficiently.
In the embodiment of the present invention, since server end network interface card is in the data write request for receiving client-server transmission After order, one side server end network interface card is directly parsed, and returns to the first data read command to client end processor, To be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent transmission number According to write request order, thus when receiving the second data read command of server return, it can be directly from server end The memory block of network interface card is written into the memory block that data are sent to the second destination address meaning.As it can be seen that being taken in the embodiment of the present invention Device end network interface card be engaged in after parsing data write request, that is, generates the first data read command, but the second data read command It is after server end network interface card parses data write request and to write data into request command and pass through server-side processes Device, server processor generate the second data read command and server processor and send it to server end network interface card It just obtains afterwards.As it can be seen that server end network interface card generates the time of the first data read command earlier than reception in the embodiment of the present invention To the time of the second data read command.And since server end network interface card is only transparent data write request life in the prior art It enables, and after receiving the second data read command, the second data read command is sent to client end processor, so that objective Family end processor transmits data to be written to server end network interface card.As it can be seen that client end processor receives in the embodiment of the present invention The time of first data read command earlier than the time for receiving the second data read command in the prior art, and then at client Manage device can beginning earlier to server end network interface card transmit data to be written, thus save entire data writing process when Between, reduce time delay when data write-in.
Detailed description of the invention
To describe the technical solutions in the embodiments of the present invention more clearly, make required in being described below to embodiment Attached drawing is briefly introduced.
Fig. 1 is a kind of client (English is known as Initiator) in the prior art and server (English referred to as Target) Between connection relationship structural schematic diagram;
Fig. 1 a is to be written into data based on structure shown in FIG. 1 depositing to server end is written from the memory block of client A kind of method flow schematic diagram of storage area;
Fig. 2 is a kind of schematic architectural diagram for communication system that the embodiment of the present invention is applicable in;
Fig. 2 a is the schematic architectural diagram for another communication system that the embodiment of the present invention is applicable in;
Fig. 2 b is a kind of flow diagram of method for writing data provided in an embodiment of the present invention;
Fig. 2 c is a kind of form schematic diagram of data write request order provided in an embodiment of the present invention;
Fig. 2 d is a kind of flow diagram of method for writing data provided in an embodiment of the present invention;
Fig. 3 is a kind of structural schematic diagram of server end network interface card provided in an embodiment of the present invention;
Fig. 4 is the structural schematic diagram of another server end network interface card provided in an embodiment of the present invention.
Specific embodiment
In order to which the purpose of the present invention, technical solution and beneficial effect is more clearly understood, below in conjunction with attached drawing and implementation Example, the present invention will be described in further detail.It should be appreciated that specific embodiment described herein is only used to explain this hair It is bright, it is not intended to limit the present invention.
It should be understood that the technical solution of the embodiment of the present invention can be applied to various communication systems, and such as: global system for mobile telecommunications (Global System of Mobile Communication, abbreviation GSM) system, CDMA (Code Division Multiple Access, abbreviation CDMA) system, wideband code division multiple access (Wideband Code Division Multiple Access, abbreviation WCDMA) General Packet Radio Service (General Packet Radio Service, abbreviation GPRS) system, Long term evolution (Long Term Evolution, abbreviation LTE) system, LTE frequency division duplex (Frequency Division Duplex, abbreviation FDD) system, LTE time division duplex (Time Division Duplex, abbreviation TDD), universal mobile communications system Unite (Universal Mobile Telecommunication System, abbreviation UMTS), global interconnection inserting of microwave (Worldwide Interoperability for Microwave Access, abbreviation WiMAX) communication system and future 5G communication system etc..
Client in the embodiment of the present invention can refer to user equipment (User Equipment, abbreviation UE), access terminal, Subscriber unit, subscriber station, movement station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication Equipment, user agent or user apparatus.Access terminal can be cellular phone, wireless phone, session initiation protocol (Session Initiation Protocol, abbreviation SIP) phone, wireless local loop (Wireless Local Loop, abbreviation WLL) stand, Personal digital assistant (Personal Digital Assistant, abbreviation PDA), the handheld device with wireless communication function, It calculates equipment or is connected to other processing equipments of radio modem, mobile unit, wearable device, in the following 5G network Terminal device etc..
Server end in the embodiment of the present invention can be the equipment for being communicated with client, for example, it may be Base station (Base Transceiver Station, abbreviation BTS) in gsm system or CDMA, is also possible in WCDMA system Base station (NodeB, abbreviation NB), can also be in LTE system evolved base station (Evolutional Node B, abbreviation eNB or ENodeB) or the server end can be in relay station, access point, mobile unit, wearable device and future 5G network Network side equipment or the following evolution PLMN network in the network equipment etc..
Fig. 2 shows a kind of schematic architectural diagrams for communication system that the embodiment of the present invention is applicable in.Fig. 2 a shows this hair The schematic architectural diagram of the applicable another communication system of bright embodiment.As shown in figures 2 and 2 a, which may include Client and server end.Client includes the client NIC 1102 connecting with interchanger 1103, with client NIC 1102 The client end processor 1101 of connection, the memory block 1201 for the client being connect with client end processor 1101.Server end packet The server end network interface card 2101 connecting with interchanger 1103 is included, and the server end network interface card connecting with server end network interface card 2101 Memory block 1202, further include the server processor 1105 being connect with server end network interface card 2101, with server-side processes The memory block 1204 of SSD1203 and server end that device 1105 connects.Optionally, SSD can be based on the disk of NVME standard.The present invention In embodiment client end processor and server processor can be include universal serial bus (PCI-Express, abbreviation PCIe) The X86 system of interface can also be the non-X86 system for including PCIe.With X86 in following the description and attached drawing in the embodiment of the present invention It is introduced for system, skilled person will appreciate that, the application range of the embodiment of the present invention is not limited to X86 system.
As shown in Fig. 2, the server end network interface card in the embodiment of the present invention has programmability, and server end network interface card can The memory block of server end network interface card is connected, which can be data buffer zone (English is known as DATABUF), the embodiment of the present invention In server end network interface card on the one hand realize the main RDMA network interface card function of standard, on the other hand realize NOF function of hardware acceleration.Client End processor can realize NOF agreement.
As shown in Figure 2 a, there are the queues of two protocol layers of NVME and RDMA for the memory block of client, by the queue of NVME After command mapping to RDMA queue, NOF order is transmitted to the RDMA queue of the memory block of server end by ROCE switching network, After the mapping for equally carrying out a RDMA queue and NVME queue, client end processor and server processor set up communication Channel.The queue of the NVME protocol layer of the memory block of client includes transmit queue (Send Queue, abbreviation SQ) and completes Queue (Completion Queue, abbreviation CQ), the queue of the rdma protocol layer of the memory block of client include SQ, receive team Arrange (Receive Queue, abbreviation RQ) and CQ.The queue of the NVME protocol layer of the memory block at service area end includes SQ and CQ, The queue of the rdma protocol layer of the memory block of client includes SQ, RQ and CQ.The order that SQ includes is order to be sent, CQ packet The order included is the response received, and the order that RQ includes is the order to be processed received.
As shown in Figure 2 a, equally there is also a data buffer zones for the memory block of client, and (English claims for storing data For DATA) queue.The memory block of server end network interface card includes data field and data buffer zone.Optionally, the storage of server end Area also equally is stored in a data buffer zone, wherein storing data queue.The PCIe SSD of server end includes two regions, It include that (English is known as Flash for NVME, buffer area (English is known as Buffer) and flash memory control zone in each region Controller)。
In the embodiment of the present invention, optionally, client and server transmits data according to NOF agreement, interchanger two sides Client NIC and server network interface card are for unloading ROCE agreement, wherein NOF agreement is carried on above ROCE agreement, SSD and clothes Business device processor by PCIe be connected foundation agreement be NVME agreement.
Fig. 2 b illustrates a kind of flow diagram of method for writing data provided in an embodiment of the present invention.
Based on system architecture shown in Fig. 2 and Fig. 2 a, as shown in Figure 2 b, a kind of data write-in provided in an embodiment of the present invention Method, comprising:
Step 201, server end network interface card receives the data write request order that client end processor is sent, wherein data The source address that data to be written are located at the memory block of client is carried in write request order;
Step 202, server end network interface card returns after successfully parsing data write request order to client end processor The first data read command that server end network interface card generates, and to server processor transparent data write request order;The One data read command carries the data to be written first object address to be written, and first object address is server end network interface card The address of memory block;
Step 203, server end network interface card receives what client end processor was sent after receiving the first data read command Data to be written, and receive the second reading data that server processor returns after receiving data write request order Order;The second destination address of data to be written is carried in second data read command, the second destination address is depositing for server The address of storage area;
Step 204, server end network interface card is written into the memory block that data are stored in first object address meaning, and will be to Write-in data are sent to the memory block of the second destination address meaning from the memory block of first object address meaning.
Since server end network interface card 2101 is after the data write request order for receiving client-server transmission, one Aspect server end network interface card 2101 is directly parsed, and returns to the first data read command to client end processor 1101, with Just it is written into the memory block 1202 that data are stored in server end network interface card;Another aspect server end network interface card 2101 is to server Transparent data write request order, thus when receiving the second data read command of server return, it can be directly from clothes The memory block 1202 of business device end network interface card is written into the memory block that data are sent to the second destination address meaning.
As it can be seen that in the embodiment of the present invention server end network interface card 2101 generates first after parsing data write request Data read command, but the second data read command be server end network interface card 2101 parse data write request after and It writes data into request command and passes through server processor 1105, the second reading data of generation of server processor 1105 What order and server processor 1105 just obtained after sending to server end network interface card 2101.As it can be seen that the present invention is implemented Example in server end network interface card 2101 generate the first data read command time earlier than receive the second data read command when Between.Again due to the only transparent data write request order of server end network interface card 2101 in the prior art, and receiving second After data read command, the second data read command is sent to client end processor 1101, so that client end processor 1101 transmit data to be written to server end network interface card 2101.As it can be seen that client end processor 1101 receives the embodiment of the present invention In the first data read command time earlier than the time for receiving the second data read command in the prior art, and then client Processor 1101 can beginning earlier transmit data to be written to server end network interface card 2101, write to save entire data The time for entering process reduces time delay when data write-in.
In above-mentioned steps 201, the memory block 1201 that data to be written are located at client is carried in data write request order Source address, multiple format may be present based on different agreements in data write request.Optionally, the lattice of data write request order Formula is the poly- scattered chain SGL format for meeting NOF agreement, that is, includes the source address that data to be written are located at the memory block of client.Such as This, can preferably improve the problem that data writing process time delay is larger under NOF agreement, and the data write request life of SGL format It include the source address of data to be written in order, so as to reduce the time delay for carrying out method for writing data based on SGL format.It is optional Ground, in the embodiment of the present invention, client end processor 1101 realizes NOF agreement, rather than original NVME agreement, NVME standard are By PCIe direct attached storage, and NOF standard is then to reconnect memory by switching network.Fig. 2 c illustrates this A kind of form schematic diagram for data write request order that inventive embodiments provide, as shown in Figure 2 c, client end processor 1101 The data write request order of sending can order to be known as " capsule " in NOF agreement.It include two in data write request order (English claims for part, respectively submission queue entries (English is known as Submission Queue Entry) field and data field For Data Section).In order to keep the format compatible with the write request order of NVME agreement, such as command type and order The compatibility of the information such as number, the data field (English is known as Data Section) in the embodiment of the present invention may include one or more The SGL of a SGL, NOF agreement can be a 16B field, indicate the source address of data to be written, the length of data to be written, The information such as key (English is known as Key) value of data to be written.One data write request order may have the SGL of multiple 16B.
Optionally, server end network interface card 2101 is field programmable gate array (Field-Programmable Gate Array, abbreviation FPGA) network interface card.In this way, server end network interface card 2101 has programmability, and FPGA network interface card can be faster Data write request is parsed, and then more rapidly returns to the first data read command to client end processor 1101, so as to It is written into the memory block 1202 that data are stored in server end network interface card;Another aspect server end network interface card 2101 is saturating to server Data write request order is passed, thus when receiving the second data read command of server return, it can be directly from service The memory block 1202 of device end network interface card is written into the memory block that data are sent to the second destination address meaning.
Optionally, the first data read command carries source address;Source address is carried in second data read command;Server End network interface card 2101 is written into the storage that data are sent to the second destination address meaning from the memory block of first object address meaning Before area, further includes: server end network interface card 2101 determines that the source address carried in the second data read command and the first data are read Take the source address carried in order consistent.That is, server end network interface card 2101 determines the second data in the embodiment of the present invention After the source address carried in reading order and the source address carried in the first data read command are consistent, be written into data from The memory block of first object address meaning is sent to the memory block of the second destination address meaning.As it can be seen that with this solution, can make Server end network interface card 2101 accurately finds out data to be written corresponding to the second data read command, thus more accurately will be to Write-in data are sent to the memory block of the second destination address meaning from the memory block of first object address meaning.
Optionally, before server end network interface card 2101 returns to the first data read command to client end processor 1101, also It include: the idle storage space capacity for the memory block 1202 that server end network interface card 2101 determines server end network interface card not less than to be written Enter the data volume of data.Optionally, if server end network interface card 2101 determines that the free time of the memory block 1202 of server end network interface card deposits Store up spatial content be less than data to be written data volume, then server end network interface card 2101 after executing above-mentioned steps 201, and to 1105 transparent data write request order of server processor;Server end network interface card 2101 receives server processor 1105 After the second data read command returned after receiving data write request order, the second data read command is passed through Client-server receives the data to be written that client-server is returned later, and is written into data and is sent to second The memory block of destination address meaning.The second destination address of data to be written, the second target are carried in second data read command Address is the address of the memory block of server.
In this way, server end network interface card 2101 avoids the idle storage space appearance in the memory block of server end network interface card 1202 It measures in lesser situation, data can not be written by, which going caused by obtaining data to be written, stores to server end network interface card 2101 The problem of memory block 1204 of the server end connected, to make entire scheme more rationally, efficiently.
Optionally, server end network interface card 2101 is written into data and is sent to from the memory block of first object address meaning The memory block of two destination addresses meaning, comprising: server end network interface card 2101 is based on direct memory access (Direct Memory Access, abbreviation DMA) mode is written into data and is sent to the second destination address institute from the memory block of first object address meaning The memory block of finger.
In specific implementation, dma mode is a kind of completely by the working method of hardware execution I/O exchange in this mode In, dma controller completely takes over the control to bus from server processor 1105, data exchange without server end at Device 1105 is managed, and is carried out directly between memory and input-output equipment.When DMA works, issue ground from dma controller to memory Location and control signal, carry out address modification, to a counting number of transmission word, and with interrupt mode to server processor The end of 1105 report transfer operations.
In this way, data can be written by way of without server processor 1105 from first object address institute The memory block of finger is sent to the memory block of the second destination address meaning, improves data write rate.
Based on above-mentioned discussion, in order to more clearly introduce the scheme of the embodiment of the present invention, Fig. 2 d illustrates this A kind of flow diagram for method for writing data that inventive embodiments provide, as shown in Figure 2 d, this method comprises:
Step 3201, client end processor 1101 and processor-server negotiate RDMA success, client end processor 1101 Determining that client end processor 1101 generates data write-in when needing to be written into the memory block 1204 at data write service device end Request command (English is known as Capsule), and write data into request command and pass sequentially through 1102 (Net of client NIC Interface Card, abbreviation NIC) and switching network, it is sent to server end network interface card 2101.Wherein, data write request order It is poly- scattered chain (Scatter Gather List, abbreviation SGL) format for format, i.e., contains one in data write request order The source address of a or multiple data to be written;Source address is the ground positioned at the memory block of client 1201 of data to be written Location;
Step 3202, after server end network interface card 2101 receives data write request order, on the one hand based on direct Memory block access (Direct Memory Access, abbreviation DMA) technology writes the data into request command and is pass-through to server In the memory block 1204 at end, asked so that server processor 1105 reads data write-in from the memory block of server end 1204 Ask order.On the other hand, server end network interface card 2101 parses data write request order, and writes in successfully parsing data After entering request command, the first data read command is generated.Wherein, data to be written to be written in the first data read command First object address, first object address are the address of the memory block 1202 of server end network interface card;
Step 3203, the first data read command is passed sequentially through switching network and client NIC by server end network interface card 2101 1102 are pass-through to the memory block 1201 of client, client end processor 1101 read from the memory block of client 1201 this first Data read command;It optionally, include the source address of data to be written in the first data read command;
Step 3204, client end processor 1101 is according to first data read command, by the data to be written of source address It reads, and generates reading data response command, data to be written are carried in reading data response command;
Step 3205, reading data response command is passed sequentially through client NIC 1102 and handed over by client end processor 1101 Draping is sent to server end network interface card 2101;
Step 3206, server end network interface card 2101 receives client end processor 1101 and is receiving the first data read command The data to be written sent afterwards, server end network interface card 2101 are written into the storage that data are stored in first object address meaning Area;
Step 3207, server processor 1105 parses data write request order, finds that data write-in is asked after parsing Asking order is the data write request order of SGL format, then server processor 1105 applies for the memory block of server end Storage region in 1204, and the second destination address on the memory block of server end 1204 applied is recorded, it is raw At the second data read command;The on the memory block 1204 of source address and server end is carried in second data read command Two destination addresses;
Step 3208, server processor 1105 sends the second data read command to server end network interface card 2101;
Step 3209, server end network interface card 2101 is determining the second data after receiving the second data read command When the source address carried in reading order is consistent with the source address of the first data read command, data are written into from first object The memory block of address meaning is sent to the memory block of the second destination address meaning.
Optionally, in above-mentioned steps 3202, the memory block that request command is pass-through to server end is write the data into 1204, and no sequencing is parsed to data write request order, for example can first carry out to data write request order Parsing, writes the data into the memory block 1204 that request command is pass-through to server end later;Or it first writes the data into and asks It asks order to be pass-through to the memory block 1204 of server end, then data write request order is parsed.
It optionally, can be in the free time storage for the memory block 1202 for determining server end network interface card in above-mentioned steps 3202 Spatial content not less than data to be written data volume and then execute above-mentioned steps 3202 in data write request order It is parsed;If it is determined that the idle storage space capacity of the memory block 1202 of server end network interface card is less than the data of data to be written Amount then no longer executes parsing in above-mentioned steps 3202 to data write request order, but only writes the data into Request command is pass-through to the memory block 1204 of server end, and server processor 1105 is parsing data write request order, Find that data write request order is the data write request order of SGL format after parsing, then 1105 Shen of server processor Please storage region in the memory block 1204 of server end, and record apply on the memory block of server end 1204 The second destination address, generate the second data read command, and to server end network interface card 2101 send, server end network interface card 2101 Server processor 1105 is received after the second data read command returned after receiving data write request order, it will Second data read command passes through client-server, receives the data to be written that client-server is returned later, and It is written into the memory block that data are sent to the second destination address meaning.
Optionally, in above-mentioned steps 3209, server end network interface card 2101 after receiving the second data read command, Be also possible to also be not carried out above-mentioned steps 3206, server end network interface card 2101 can wait for a period of time at this time, etc. above-mentioned steps 3206 are finished, that is, be written into data write-in be located at server end network interface card memory block 1202 on first object address it Afterwards, then it is written into the memory block that data are sent to the second destination address meaning from the memory block of first object address meaning.
Optionally, in above-mentioned steps 3209, server end network interface card 2101 after receiving the second data read command, It is also possible to also be not carried out above-mentioned steps 3202, server end network interface card 2101 can no longer execute above-mentioned steps 3202 at this time, only The memory block 1204 that request command is pass-through to server end is only write the data into, server processor 1105 is in parsing data Write request order finds that data write request order is the data write request order of SGL format, then server end after parsing Processor 1105 applies for the storage region in the memory block 1204 of server end, and record apply positioned at server end The second destination address on memory block 1204 generates the second data read command, and sends to server end network interface card 2101, service Device end network interface card 2101 receives the second data that server processor 1105 returns after receiving data write request order and reads After taking order, the second data read command is passed through into client-server, receives what client-server was returned later Data to be written, and it is written into the memory block that data are sent to the second destination address meaning.
Optionally, one or more source addresses of data to be written are carried in data write request order, the first data are read One or more source addresses that data to be written are carried in order are taken, and positioned at the of the memory block of server end network interface card 1202 One destination address.One or more source addresses of data to be written are carried in second data read command, and are located at server Second destination address of the memory block 1204 at end.Optionally, data to be written are carried in reading data response command, and be located at The first object address of the memory block 1202 of server end network interface card.
As it can be seen that when data will be written to server end in client, client is first sent out to server end in the embodiment of the present invention A data writing commands are sent, data to be written is not carried in the data writing commands, but carries data to be written One or more source addresses, after waiting for server end returns to a data read command, client is just written into data and returns Back to server end.Based on this method process, in solution provided by the embodiment of the present invention, pass through server end network interface card 2101, it can be FPGA network interface card, after receiving data write request order, not only as the prior art, which is write Enter request command and be pass-through to server end, and FPGA network interface card also parses data write request order, and to client Return to the first data read command.As it can be seen that in the embodiment of the present invention server end network interface card 2101 parsing data write request it Afterwards, that is, the first data read command is generated, but the second data read command is to parse data in server end network interface card 2101 to write Enter after requesting and write data into request command and passes through server processor 1105, the life of server processor 1105 It is just obtained after being sent at the second data read command and server processor 1105 to server end network interface card 2101. As it can be seen that the time that server end network interface card 2101 generates the first data read command in the embodiment of the present invention counts earlier than receiving second According to the time of reading order.And since server end network interface card 2101 is only the order of transparent data write request in the prior art, And after receiving the second data read command, the second data read command is sent to client end processor 1101, so that Client end processor 1101 transmits data to be written to server end network interface card 2101.As it can be seen that client end processor 1101 receives In the embodiment of the present invention time of the first data read command earlier than receive in the prior art the second data read command when Between, so client end processor 1101 can beginning earlier transmit data to be written to server end network interface card 2101, to save The time for having saved entire data writing process reduces time delay when data write-in.
For example, the technical solution as provided by the embodiment of the present invention counteracts the behaviour of 2 PCIe of server end Make time delay, according to test experience, it is believed that this time delay is equal to 2us, and (English is known as if FPGA network interface card is with interchanger 1103 Switch the bandwidth of processing) is 40Gbps, and (English is known as MEM for the memory block 1204 for the server end hung under FPGA network interface card CACHE) cache size are as follows: 40Gbps*2us=80Kbits=10KB;As it can be seen that for FPGA network interface card, the amount of this caching It is that can be realized with the memory block 1204 for the server end hung under FPGA network interface card.
It may be seen from the foregoing that in the embodiment of the present invention, since server end network interface card is receiving client-server After the data write request order of transmission, one side server end network interface card is directly parsed, and is returned to client end processor The first data read command is returned, to be written into the memory block that data are stored in server end network interface card;Another aspect server Hold network interface card to server transparent data write request order, thus in the second data read command for receiving server return When, can the memory block that data are sent to the second destination address meaning directly be written into from the memory block of server end network interface card. As it can be seen that in the embodiment of the present invention server end network interface card generates the first data read command after parsing data write request, But the second data read command is after server end network interface card parses data write request and to write data into request command Pass through server processor, server processor generate the second data read command and server processor to What server end network interface card just obtained after sending.As it can be seen that server end network interface card generates the first reading data in the embodiment of the present invention The time of order is earlier than the time for receiving the second data read command.And since server end network interface card is only in the prior art Transparent data write request order, and after receiving the second data read command, the second data read command is sent to Client end processor, so that client end processor transmits data to be written to server end network interface card.As it can be seen that client end processor connects Time of the first data read command in the embodiment of the present invention is received earlier than receiving the second data read command in the prior art Time, and then client end processor can beginning earlier to server end network interface card transmit data to be written, to save The time of entire data writing process reduces time delay when data write-in.
Fig. 3 is a kind of structural schematic diagram of server end network interface card provided in an embodiment of the present invention.
Based on same idea, the embodiment of the present invention provides a kind of server end network interface card, for executing above method process, such as Shown in Fig. 3, server end network interface card 300 optionally can also be wrapped including receiving unit 301, processing unit 302, transmission unit 303 Include storage unit 304;
Receiving unit 301, for receiving the data write request order of client end processor transmission;Receive client process The data to be written that device is sent after the first data read command for receiving the transmission of transmission unit 303, and receive server The second data read command that end processor returns after the data write request order for receiving the transmission of transmission unit 303;
Transmission unit 303, for returning to the first data read command to client end processor, and to server processor Transparent data write request order;
Processing unit 302, for generating the first data read command after successfully parsing data write request order; After receiving data to be written by receiving unit 301, it is written into data and is stored in depositing for first object address meaning Storage area, and it is written into the memory block that data are sent to the second destination address meaning from the memory block of first object address meaning;
Wherein, the source address that data to be written are located at the memory block of client is carried in data write request order, first Data read command carries the data to be written first object address to be written, and first object address is depositing for server end network interface card The address of storage area;The second destination address of data to be written is carried in second data read command, the second destination address is service The address of the memory block of device.
In the embodiment of the present invention, since server end network interface card is in the data write request for receiving client-server transmission After order, one side server end network interface card is directly parsed, and returns to the first data read command to client end processor, To be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent transmission number According to write request order, thus when receiving the second data read command of server return, it can be directly from server end The memory block of network interface card is written into the memory block that data are sent to the second destination address meaning.
Optionally, data are written for storage tape in storage unit 304.
Optionally, server end network interface card is on-site programmable gate array FPGA network interface card.It is compiled in this way, server end network interface card has Cheng Nengli, after one side server end network interface card receives data write request order, not only as the prior art, by this Data write request order is pass-through to server end, and FPGA network interface card also parses data write request order, and to Client returns to the first data read command.
Optionally, the format of data write request order is the poly- scattered chain SGL format for meeting NOF agreement.In this way, can be more preferable Improve the larger problem of data writing process time delay under NOF agreement.And in the data write request order of SGL format include to The source address of data is written, so as to reduce the time delay for carrying out method for writing data based on SGL format.
Optionally, the first data read command carries source address;Source address is carried in second data read command;
Processing unit 302 is written into data from the memory block of first object address meaning and is sent to the second destination address Before signified memory block, it is also used to:
The source address one for determining the source address carried in the second data read command and being carried in the first data read command It causes.
That is, server end network interface card is with determining the source carried in the second data read command in the embodiment of the present invention After the source address carried in location and the first data read command is consistent, it is written into data and is deposited from first object address is signified Storage area is sent to the memory block of the second destination address meaning.As it can be seen that with this solution, server end network interface card can be made accurately to find out Data to be written corresponding to second data read command, to more accurately be written into data from first object address institute The memory block of finger is sent to the memory block of the second destination address meaning.
Optionally, processing unit 302 are returning to the first reading data life to client end processor by transmission unit 303 Before order, it is also used to:
Determine that the idle storage space capacity of the memory block of server end network interface card is not less than the data volume of data to be written.
In this way, the idle storage space capacity that server end network interface card is avoided in the memory block of server end network interface card is lesser In the case of, data can not be written by, which going caused by obtaining data to be written, stores the service connected to server end network interface card The problem of memory block at device end, to make entire scheme more rationally, efficiently.
It may be seen from the foregoing that in the embodiment of the present invention, since server end network interface card is receiving client-server After the data write request order of transmission, one side server end network interface card is directly parsed, and is returned to client end processor The first data read command is returned, to be written into the memory block that data are stored in server end network interface card;Another aspect server Hold network interface card to server transparent data write request order, thus in the second data read command for receiving server return When, can the memory block that data are sent to the second destination address meaning directly be written into from the memory block of server end network interface card. As it can be seen that in the embodiment of the present invention server end network interface card generates the first data read command after parsing data write request, But the second data read command is after server end network interface card parses data write request and to write data into request command Pass through server processor, server processor generate the second data read command and server processor to What server end network interface card just obtained after sending.As it can be seen that server end network interface card generates the first reading data in the embodiment of the present invention The time of order is earlier than the time for receiving the second data read command.And since server end network interface card is only in the prior art Transparent data write request order, and after receiving the second data read command, the second data read command is sent to Client end processor, so that client end processor transmits data to be written to server end network interface card.As it can be seen that client end processor connects Time of the first data read command in the embodiment of the present invention is received earlier than receiving the second data read command in the prior art Time, and then client end processor can beginning earlier to server end network interface card transmit data to be written, to save The time of entire data writing process reduces time delay when data write-in.
Fig. 4 is a kind of structural schematic diagram of server end network interface card provided in an embodiment of the present invention.
Based on same idea, the embodiment of the present invention provides a kind of server end network interface card, for executing above method process, such as Shown in Fig. 4, server end network interface card 400 includes receiver 405, transmitter 404, processor 401 and memory 402, wherein is received Device 405 and transmitter 404 also can be collectively referred to as transceiver 403;
Processor 401 executes following process for reading the program in memory 402:
The data write request order that client end processor 401 is sent is received by receiver 405;Successfully parsing data After write request order, the first data read command is generated;First is returned to client end processor 401 by transmitter 404 Data read command, and to 401 transparent data write request order of server processor;Client is received by receiving unit The data to be written that processor 401 is sent after the first data read command for receiving the transmission of transmitter 404, and receive clothes The second reading data life that business device end processor 401 returns after the data write request order for receiving the transmission of transmitter 404 It enables;After receiving data to be written by receiver 405, it is written into data and is stored in depositing for first object address meaning Storage area, and it is written into the memory block that data are sent to the second destination address meaning from the memory block of first object address meaning;
Receiver 405, for receiving the data write request order of the transmission of client end processor 401;It receives at client The data to be written that reason device 401 is sent after the first data read command for receiving the transmission of transmitter 404, and receive service The second data read command that device end processor 401 returns after the data write request order for receiving the transmission of transmitter 404;
Transmitter 404, for returning to the first data read command to client end processor 401, and to server-side processes 401 transparent data write request order of device;
Memory 402 is also used to store data to be written;
Wherein, the source address that data to be written are located at the memory block of client is carried in data write request order, first Data read command carries the data to be written first object address to be written, and first object address is depositing for server end network interface card The address of storage area;The second destination address of data to be written is carried in second data read command, the second destination address is service The address of the memory block of device.
In the embodiment of the present invention, since server end network interface card is in the data write request for receiving client-server transmission After order, one side server end network interface card is directly parsed, and returns to the first data read command to client end processor, To be written into the memory block that data are stored in server end network interface card;Another aspect server end network interface card is to server transparent transmission number According to write request order, thus when receiving the second data read command of server return, it can be directly from server end The memory block of network interface card is written into the memory block that data are sent to the second destination address meaning.
Optionally, server end network interface card is on-site programmable gate array FPGA network interface card.It is compiled in this way, server end network interface card has Cheng Nengli, after one side server end network interface card receives data write request order, not only as the prior art, by this Data write request order is pass-through to server end, and FPGA network interface card also parses data write request order, and to Client returns to the first data read command.
Optionally, the format of data write request order is the poly- scattered chain SGL format for meeting NOF agreement.In this way, can be more preferable Improve the larger problem of data writing process time delay under NOF agreement.And in the data write request order of SGL format include to The source address of data is written, so as to reduce the time delay for carrying out method for writing data based on SGL format.
Optionally, the first data read command carries source address;Source address is carried in second data read command;
Processor 401 is written into data from the memory block of first object address meaning and is sent to the second destination address institute Before the memory block of finger, it is also used to:
The source address one for determining the source address carried in the second data read command and being carried in the first data read command It causes.
That is, server end network interface card is with determining the source carried in the second data read command in the embodiment of the present invention After the source address carried in location and the first data read command is consistent, it is written into data and is deposited from first object address is signified Storage area is sent to the memory block of the second destination address meaning.As it can be seen that with this solution, server end network interface card can be made accurately to find out Data to be written corresponding to second data read command, to more accurately be written into data from first object address institute The memory block of finger is sent to the memory block of the second destination address meaning.
Optionally, processor 401 are returning to the first data read command to client end processor 401 by transmitter 404 Before, it is also used to:
Determine that the idle storage space capacity of the memory block of server end network interface card is not less than the data volume of data to be written.
In this way, the idle storage space capacity that server end network interface card is avoided in the memory block of server end network interface card is lesser In the case of, data can not be written by, which going caused by obtaining data to be written, stores the service connected to server end network interface card The problem of memory block at device end, to make entire scheme more rationally, efficiently.
Wherein, bus architecture may include the bus and bridge of any number of interconnection, one specifically represented by processor 401 The various circuits for the memory 402 that a or multiple processors 401 and memory 402 represent link together.Bus architecture may be used also To link together various other circuits of such as peripheral equipment, voltage-stablizer and management circuit or the like, these are all It is known in the art, therefore, it will not be further described herein.Bus interface provides interface.Transceiver can be Multiple element includes transmitter and transceiver, provides the unit for communicating over a transmission medium with various other devices.Place It manages device 401 and is responsible for management bus architecture and common processing, memory 402 can store processor 401 and execute operation when institute The data used.
It may be seen from the foregoing that in the embodiment of the present invention, since server end network interface card is receiving client-server After the data write request order of transmission, one side server end network interface card is directly parsed, and is returned to client end processor The first data read command is returned, to be written into the memory block that data are stored in server end network interface card;Another aspect server Hold network interface card to server transparent data write request order, thus in the second data read command for receiving server return When, can the memory block that data are sent to the second destination address meaning directly be written into from the memory block of server end network interface card. As it can be seen that in the embodiment of the present invention server end network interface card generates the first data read command after parsing data write request, But the second data read command is after server end network interface card parses data write request and to write data into request command Pass through server processor, server processor generate the second data read command and server processor to What server end network interface card just obtained after sending.As it can be seen that server end network interface card generates the first reading data in the embodiment of the present invention The time of order is earlier than the time for receiving the second data read command.And since server end network interface card is only in the prior art Transparent data write request order, and after receiving the second data read command, the second data read command is sent to Client end processor, so that client end processor transmits data to be written to server end network interface card.As it can be seen that client end processor connects Time of the first data read command in the embodiment of the present invention is received earlier than receiving the second data read command in the prior art Time, and then client end processor can beginning earlier to server end network interface card transmit data to be written, to save The time of entire data writing process reduces time delay when data write-in.
It should be understood by those skilled in the art that, the embodiment of the present invention can provide as method or computer program product. Therefore, complete hardware embodiment, complete software embodiment or embodiment combining software and hardware aspects can be used in the present invention Form.It is deposited moreover, the present invention can be used to can be used in the computer that one or more wherein includes computer usable program code The shape for the computer program product implemented on storage media (including but not limited to magnetic disk storage, CD-ROM, optical memory etc.) Formula.
The present invention be referring to according to the method for the embodiment of the present invention, the process of equipment (system) and computer program product Figure and/or block diagram describe.It should be understood that every one stream in flowchart and/or the block diagram can be realized by computer program instructions The combination of process and/or box in journey and/or box and flowchart and/or the block diagram.It can provide these computer programs Instruct the processor of general purpose computer, special purpose computer, Embedded Processor or other programmable data processing devices to produce A raw machine, so that being generated by the instruction that computer or the processor of other programmable data processing devices execute for real The device for the function of being specified in present one or more flows of the flowchart and/or one or more blocks of the block diagram.
These computer program instructions, which may also be stored in, is able to guide computer or other programmable data processing devices with spy Determine in the computer-readable memory that mode works, so that it includes referring to that instruction stored in the computer readable memory, which generates, Enable the manufacture of device, the command device realize in one box of one or more flows of the flowchart and/or block diagram or The function of being specified in multiple boxes.
These computer program instructions also can be loaded onto a computer or other programmable data processing device, so that counting Series of operation steps are executed on calculation machine or other programmable devices to generate computer implemented processing, thus in computer or The instruction executed on other programmable devices is provided for realizing in one or more flows of the flowchart and/or block diagram one The step of function of being specified in a box or multiple boxes.
Although preferred embodiments of the present invention have been described, it is created once a person skilled in the art knows basic Property concept, then additional changes and modifications may be made to these embodiments.So it includes excellent that the following claims are intended to be interpreted as It selects embodiment and falls into all change and modification of the scope of the invention.
Obviously, various changes and modifications can be made to the invention without departing from essence of the invention by those skilled in the art Mind and range.In this way, if these modifications and changes of the present invention belongs to the range of the claims in the present invention and its equivalent technologies Within, then the present invention is also intended to include these modifications and variations.

Claims (15)

1. a kind of method for writing data characterized by comprising
Server end network interface card receives the data write request order that client end processor is sent, wherein the data write request The source address that data to be written are located at the memory block of the client is carried in order;
After successfully parsing the data write request order, Xiang Suoshu client end processor returns the server end network interface card The first data read command that the server end network interface card generates, and to data write request described in server processor transparent transmission Order;First data read command carries the data to be written first object address to be written, the first object Address is the address of the memory block of the server end network interface card;
The server end network interface card receives what the client end processor was sent after receiving first data read command The data to be written, and receive what the server processor returned after receiving the data write request order Second data read command;The second destination address of the data to be written is carried in second data read command, it is described Second destination address is the address of the memory block of the server;
The data to be written are stored in the memory block of the first object address meaning by the server end network interface card, and by institute State the memory block that data to be written are sent to the second destination address meaning from the memory block of the first object address meaning.
2. the method as described in claim 1, which is characterized in that the server end network interface card is on-site programmable gate array FPGA Network interface card.
3. method according to claim 1 or 2, which is characterized in that the format of the data write request order is to meet NOF The poly- scattered chain SGL format of agreement.
4. method as claimed in claim 3, which is characterized in that first data read command carries the source address;Institute It states and carries the source address in the second data read command;
The data to be written are sent to described by the server end network interface card from the memory block of the first object address meaning Before the memory block of second destination address meaning, further includes:
The server end network interface card determines the source address and first data carried in second data read command The source address carried in reading order is consistent.
5. method as claimed in claim 4, which is characterized in that the server end network interface card is returned to the client end processor Before first data read command, further includes:
The server end network interface card determines the idle storage space capacity of the memory block of the server end network interface card not less than described The data volume of data to be written.
6. a kind of server end network interface card characterized by comprising
Receiving unit, for receiving the data write request order of client end processor transmission, the data write request order The middle source address for carrying data to be written and being located at the memory block of the client;
Processing unit, for generating the first data read command after successfully parsing the data write request order;
The transmission unit, for returning to first data read command to the client end processor, and to the service Data write request order described in the processor transparent transmission of device end, first data read command carry the data to be written and to write The first object address entered, the first object address are the address of the memory block of the server end network interface card;
The receiving unit is also used to receive the client end processor and sends after receiving first data read command The data to be written, and receive server processor returns after receiving the data write request order the Two data read commands, carry the second destination address of the data to be written in second data read command, and described Two destination addresses are the address of the memory block of the server;
The processing unit is also used to after receiving the data to be written by the receiving unit, will be described to be written Enter the memory block that data are stored in the first object address meaning, and by the data to be written from the first object address Signified memory block is sent to the memory block of the second destination address meaning.
7. server end network interface card as claimed in claim 6, which is characterized in that the server end network interface card is field programmable gate Array FPGA network interface card.
8. server end network interface card as claimed in claims 6 or 7, which is characterized in that the format of the data write request order For the poly- scattered chain SGL format for meeting NOF agreement.
9. server end network interface card as claimed in claim 8, which is characterized in that first data read command carries the source Address;The source address is carried in second data read command;
The data to be written are sent to described second from the memory block of the first object address meaning by the processing unit Before the memory block of destination address meaning, it is also used to:
It determines and carries in the source address carried in second data read command and first data read command The source address is consistent.
10. server end network interface card as claimed in claim 9, which is characterized in that the processing unit, single by the transmission Before member returns to the first data read command to the client end processor, it is also used to:
Determine that the idle storage space capacity of the memory block of the server end network interface card is not less than the data of the data to be written Amount.
11. a kind of server end network interface card characterized by comprising
Receiver, for receiving the data write request order of client end processor transmission, in the data write request order Carry the source address that data to be written are located at the memory block of the client;
Processor, for generating the first data read command after successfully parsing the data write request order;
Transmitter, for returning to first data read command to the client end processor, and at the server end Manage data write request order described in device transparent transmission, first data read command carry that the data to be written to be written the One destination address, the first object address are the address of the memory block of the server end network interface card;
The receiver is also used to receive what the client end processor was sent after receiving first data read command Data to be written, and receive the second data that server processor returns after receiving the data write request order Reading order carries the second destination address of the data to be written, second target in second data read command Address is the address of the memory block of the server;
The processor is also used to after receiving the data to be written by the receiver, by the number to be written According to the memory block for being stored in the first object address meaning, and the data to be written are signified from the first object address Memory block be sent to the memory block of the second destination address meaning.
12. server end network interface card as claimed in claim 11, which is characterized in that the server end network interface card is field-programmable Gate array FPGA network interface card.
13. the server end network interface card as described in claim 11 or 12, which is characterized in that the lattice of the data write request order Formula is the poly- scattered chain SGL format for meeting NOF agreement.
14. server end network interface card as claimed in claim 13, which is characterized in that described in first data read command carries Source address;The source address is carried in second data read command;
The data to be written are sent to second mesh from the memory block of the first object address meaning by the processor Before the memory block for marking address meaning, it is also used to:
It determines and carries in the source address carried in second data read command and first data read command The source address is consistent.
15. server end network interface card as claimed in claim 14, which is characterized in that the processor is passing through the transmitter Before returning to the first data read command to the client end processor, it is also used to:
Determine that the idle storage space capacity of the memory block of the server end network interface card is not less than the data of the data to be written Amount.
CN201610539890.2A 2016-07-05 2016-07-05 A kind of method for writing data and server end network interface card Active CN106210041B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610539890.2A CN106210041B (en) 2016-07-05 2016-07-05 A kind of method for writing data and server end network interface card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610539890.2A CN106210041B (en) 2016-07-05 2016-07-05 A kind of method for writing data and server end network interface card

Publications (2)

Publication Number Publication Date
CN106210041A CN106210041A (en) 2016-12-07
CN106210041B true CN106210041B (en) 2019-09-20

Family

ID=57473499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610539890.2A Active CN106210041B (en) 2016-07-05 2016-07-05 A kind of method for writing data and server end network interface card

Country Status (1)

Country Link
CN (1) CN106210041B (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967121B (en) * 2017-10-25 2020-04-14 华为技术有限公司 Data writing method and storage device
CN108829353A (en) * 2018-06-15 2018-11-16 郑州云海信息技术有限公司 A kind of networking storage system and method based on NVMe
CN111542803B (en) 2018-06-30 2021-10-01 华为技术有限公司 NVMe-based data writing method, device and system
KR102471219B1 (en) * 2018-06-30 2022-11-25 후아웨이 테크놀러지 컴퍼니 리미티드 Data reading method, device and system based on NVMe
CN109117386B (en) * 2018-07-12 2021-03-09 中国科学院计算技术研究所 System and method for remotely reading and writing secondary storage through network
US10956336B2 (en) 2018-07-20 2021-03-23 International Business Machines Corporation Efficient silent data transmission between computer servers
CN110764688B (en) * 2018-07-27 2023-09-05 杭州海康威视数字技术股份有限公司 Method and device for processing data
CN110895517B (en) * 2018-09-13 2023-10-31 阿里巴巴集团控股有限公司 Method, equipment and system for transmitting data based on FPGA
CN111857546B (en) * 2019-04-28 2024-08-02 伊姆西Ip控股有限责任公司 Method, network adapter and computer program product for processing data
CN118605797A (en) * 2019-10-28 2024-09-06 华为技术有限公司 Method and device for accessing solid state disk
CN113360077B (en) * 2020-03-04 2023-03-03 华为技术有限公司 Data storage method, computing node and storage system
CN113778319A (en) * 2020-06-09 2021-12-10 华为技术有限公司 Data processing method of network card and network card
WO2022141250A1 (en) * 2020-12-30 2022-07-07 华为技术有限公司 Data transmission method and related apparatus
CN115242813A (en) * 2021-04-23 2022-10-25 华为技术有限公司 File access method, network card and computing device
CN113641604B (en) * 2021-07-16 2024-02-02 济南浪潮数据技术有限公司 Data transmission method and system
CN114285676B (en) * 2021-11-24 2023-10-20 中科驭数(北京)科技有限公司 Intelligent network card, network storage method and medium of intelligent network card
CN116610390B (en) * 2023-07-18 2023-11-03 苏州浪潮智能科技有限公司 Data injection method, device, system, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997911A (en) * 2010-10-21 2011-03-30 中兴通讯股份有限公司 Data migration method and system
CN102609215A (en) * 2012-04-11 2012-07-25 成都市华为赛门铁克科技有限公司 Data processing method and device
CN103618808A (en) * 2013-11-08 2014-03-05 北京奇虎科技有限公司 Method, device and system for processing address change of server terminal
CN103793749A (en) * 2014-02-27 2014-05-14 四川物联恒安安全技术研究有限公司 Safety production comprehensive supervisory platform data transmission method
CN104063344A (en) * 2014-06-20 2014-09-24 华为技术有限公司 Data storage method and network interface card

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
CN101399696B (en) * 2007-09-24 2011-09-21 国际商业机器公司 Method and system for client software installation through network and corresponding client

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997911A (en) * 2010-10-21 2011-03-30 中兴通讯股份有限公司 Data migration method and system
CN102609215A (en) * 2012-04-11 2012-07-25 成都市华为赛门铁克科技有限公司 Data processing method and device
CN103618808A (en) * 2013-11-08 2014-03-05 北京奇虎科技有限公司 Method, device and system for processing address change of server terminal
CN103793749A (en) * 2014-02-27 2014-05-14 四川物联恒安安全技术研究有限公司 Safety production comprehensive supervisory platform data transmission method
CN104063344A (en) * 2014-06-20 2014-09-24 华为技术有限公司 Data storage method and network interface card

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"分布式文件系统客户端关键技术研究";桂莅;《中国优秀硕士学位论文全文数据库信息科技辑》;20130501;全文 *
"海量文件分布式存取技术研究";及莹;《中国优秀硕士学位论文全文数据库信息科技辑》;20141230;全文 *

Also Published As

Publication number Publication date
CN106210041A (en) 2016-12-07

Similar Documents

Publication Publication Date Title
CN106210041B (en) A kind of method for writing data and server end network interface card
CN106664290A (en) Data transmission method and device for photoelectric hybrid network
CN110324848A (en) Information processing method and relevant apparatus
EP1980952B1 (en) Methods and apparatus for high speed data processing by a user equipment UE
WO2021139832A1 (en) Aperiodic srs sending method and related device
CN109587732A (en) A kind of transmission method and device of service quality stream
JP2022501929A (en) Data transmission method and equipment
CN105141603B (en) Communication data transmission method and system
CN109041119A (en) A kind of data transmission method, relevant device and system
CN105893323A (en) Data reading method and data reading equipment
CN110312283B (en) Information processing method and device
CN104468509A (en) Method and system for transmitting mobile phone network game data and mobile phone user side
CN115543474B (en) NVMe-oF semi-unloading processing method and device and hardware acceleration equipment
CN109309943A (en) Multi-card multi-standby terminal and its data card method for handover control, device, storage medium
CN115066975A (en) Layer 2 downstream data in-line processing using integrated circuits
CN113961139A (en) Method for processing data by using intermediate device, computer system and intermediate device
CN113014510B (en) Data caching method and device in distributed test of inertial navigation system
CN103139098B (en) Data transfer control method, device and system and fibre channel media
CN109417507A (en) The message of section retards accesses
CN112822737B (en) Method, equipment and storage medium for realizing mobile network system switching
CN115176428A (en) Command and response descriptor handling in a software and hardware interworking system
CN111698274B (en) Data processing method and device
CN109818772A (en) A kind of network performance support method and device
CN106933646B (en) Method and device for creating virtual machine
CN113783808B (en) Data forwarding method and device for adaptive switching of forwarding modes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200423

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou

Patentee before: Huawei Technologies Co.,Ltd.