Enforcing transaction order in peer-to-peer interactions

US2016378709A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016378709-A1
Application numberUS-201615177348-A
CountryUS
Kind codeA1
Filing dateJun 9, 2016
Priority dateJun 23, 2015
Publication dateDec 29, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for computing includes submitting a first command from a central processing unit (CPU) to a first peripheral device in a computer to write data in a first bus transaction over a peripheral component bus in the computer to a second peripheral device in the computer. A second command is submitted from the CPU to one of the first and second peripheral devices to execute a second bus transaction, subsequent to the first bus transaction, that will flush the data from the peripheral component bus to the second peripheral device. The first and second bus transactions are executed in response to the first and second commands. Following completion of the second bus transaction, the second peripheral device processes the written data in.

First claim

Opening claim text (preview).

1 . A method for computing, comprising: submitting a first command from a central processing unit (CPU) to a first peripheral device in a computer to write data in a first bus transaction over a peripheral component bus in the computer to a second peripheral device in the computer; submitting a second command from the CPU to one of the first and second peripheral devices to execute a second bus transaction, subsequent to the first bus transaction, that will flush the data from the peripheral component bus to the second peripheral device; executing the first and second bus transactions in response to the first and second commands; and following completion of the second bus transaction, processing the written data in the second peripheral device. 2 . The method according to claim 1 , and comprising, after executing the first bus transaction, submitting a completion notification from the first peripheral device to the CPU, wherein the CPU submits the second command in response to the completion notification. 3 . The method according to claim 1 , wherein submitting the second command comprises instructing the first peripheral device to transmit an instruction over the bus to the second peripheral device to process the written data, and wherein executing the second bus transaction both flushes the data and causes the second peripheral device to execute the instruction and process the written data. 4 . The method according to claim 1 , wherein submitting the second command comprises instructing the second peripheral device to execute the second bus transaction and, after completion of the second bus transaction, to process the written data. 5 . The method according to claim 1 , wherein submitting the second command comprises instructing the first peripheral device to execute the second bus transaction, and wherein the method comprises, after executing the second bus transaction, submitting a completion notification from the first peripheral device to the CPU, wherein the CPU instructs the second peripheral device to process the written data in response to the completion notification. 6 . The method according to claim 1 , wherein executing the first bus transaction comprises writing the data to a memory of the second peripheral device in a posted write operation by direct memory access (DMA) over the bus. 7 . The method according to claim 1 , wherein executing the second bus transaction comprises executing, by the one of the first and second peripheral devices to which the second command was submitted, a read transaction directed over the bus to the other of the first and second peripheral devices. 8 . The method according to claim 1 , wherein the first peripheral device is a network interface controller (NIC), which couples the computer to a packet data network, and wherein executing the first bus transaction comprises receiving the data at the NIC over the network in a remote direct memory access (RDMA) operation and writing the received data to the second peripheral device. 9 . The method according to claim 8 , wherein receiving the data comprises receiving one or more RDMA packets over the network from a server, wherein the RDMA operation is initiated by a host processor in the server. 10 . The method according to claim 8 , wherein submitting the second command comprises instructing the NIC to transmit a data packet to a network address that is associated with the second peripheral device. 11 . The method according to claim 8 , wherein the second peripheral device is a graphics processing unit (GPU). 12 . Computing apparatus, comprising: a first peripheral device; a second peripheral device; peripheral component bus that interconnects at least the first and second peripheral devices; and a central processing unit (CPU), which is configured to a submit a first command to the first peripheral device to write data in a first bus transaction over the peripheral component bus to the second peripheral device, and to submit a second command to one of the first and second peripheral devices to execute a second bus transaction, subsequent to the first bus transaction, that will flush the data from the peripheral component bus to the second peripheral device, and to cause the second peripheral device to process the written data after execution of the first and second bus transactions, in response to the first and second commands, has been completed. 13 . The apparatus according to claim 12 , wherein the first peripheral device is configured, after executing the first bus transaction, to submit a completion notification to the CPU, wherein the CPU submits the second command in response to the completion notification. 14 . The apparatus according to claim 12 , wherein the second command instructs the first peripheral device to transmit an instruction over the bus to the second peripheral device to process the written data, and wherein executing the second bus transaction both flushes the data and causes the second peripheral device to execute the instruction and process the written data. 15 . The apparatus according to claim 12 , wherein the second command instructs the second peripheral device to execute the second bus transaction and, after completion of the second bus transaction, to process the written data. 16 . The apparatus according to claim 12 , wherein the second command instructs the first peripheral device to execute the second bus transaction, and wherein the first peripheral device is configured to submit, after executing the second bus transaction, a completion notification to the CPU, wherein the CPU instructs the second peripheral device to process the written data in response to the completion notification. 17 . The apparatus according to claim 12 , wherein the first bus transaction comprises writing the data to a memory of the second peripheral device in a posted write operation by direct memory access (DMA) over the bus. 18 . The apparatus according to claim 12 , wherein the second bus transaction comprises a read transaction by the one of the first and second peripheral devices to which the second command was submitted, directed over the bus to the other of the first and second peripheral devices. 19 . The apparatus according to claim 12 , wherein the first peripheral device is a network interface controller (NIC), which couples the computer to a packet data network, and wherein the NIC is configured to receive the data over the network in a remote direct memory access (RDMA) operation and to write the received data to the second peripheral device in the first bus transaction. 20 . The apparatus according to claim 19 , wherein the NIC is configured to receive the data in one or more RDMA packets over the network from a server, wherein the RDMA operation is initiated by a host processor in the server. 21 . The apparatus according to claim 19 , wherein the second command instructs the NIC to transmit a data packet to a network address that is associated with the second peripheral device. 22 . The apparatus according to claim 19 , wherein the second peripheral device is a graphics processing unit (GPU).

Assignees

Inventors

Classifications

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title

  • where the computing system component is a central processing unit [CPU] · CPC title

  • using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title

  • where the computing system component is an input/output interface (interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units G06F13/00) · CPC title

  • Alarm or error message display · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016378709A1 cover?
A method for computing includes submitting a first command from a central processing unit (CPU) to a first peripheral device in a computer to write data in a first bus transaction over a peripheral component bus in the computer to a second peripheral device in the computer. A second command is submitted from the CPU to one of the first and second peripheral devices to execute a second bus trans…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification G06F13/4282. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).