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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-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
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.
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)
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)
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)
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 |
-
2016
- 2016-07-05 CN CN201610539890.2A patent/CN106210041B/en active Active
Patent Citations (5)
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)
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. |