IP Library › Granted Patent US 11,604,748
Granted Patent B2
US 11,604,748 · App. 17/086,010 · Granted Mar 14, 2023

Interconnect for direct memory access controllers

Inventors: Ruihua Peng (San Jose, CA); Monica Man Kay Tang (Santa Clara, CA); Xiaoling Xu (Cupertino, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F13/28G06F13/1689G06F13/4068G06F15/17375G06F15/7825
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,604,748
App. No.
17/086,010
Granted
Mar 14, 2023
Kind
B2
Abstract

A computing device is provided, including a plurality of memory devices, a plurality of direct memory access (DMA) controllers, and an on-chip interconnect. The on-chip interconnect may be configured to implement control logic to convey a read request from a primary DMA controller of the plurality of DMA controllers to a source memory device of the plurality of memory devices. The on-chip interconnect may be further configured to implement the control logic to convey a read response from the source memory device to the primary DMA controller and one or more secondary DMA controllers of the plurality of DMA controllers.

Claims (50)

1. A computing device comprising:

a plurality of memory devices;

a plurality of direct memory access (DMA) controllers; and

an on-chip interconnect configured to implement control logic to:

convey a read request from a primary DMA controller of the plurality of DMA controllers to a source memory device of the plurality of memory devices; and

broadcast or multi-cast a read response by conveying respective copies of the read response from the source memory device to the primary DMA controller and one or more secondary DMA controllers of the plurality of DMA controllers, wherein:

the plurality of memory devices further includes a plurality of destination memory devices respectively coupled to the plurality of DMA controllers;

the primary DMA controller and the one or more secondary DMA controllers are each configured to write data included in the read response to their corresponding destination memory devices;

at least one DMA controller of the plurality of DMA controllers is configured to receive a plurality of read responses;

the plurality of read responses include a respective plurality of sequential response indicators; and

the at least one DMA controller of the plurality of DMA controllers is configured to write the respective data included in the plurality of read responses to the corresponding destination memory device of the at least one DMA controller in a write order indicated by the respective sequential response indicators of the plurality of read responses.

2. The computing device of claim 1 , wherein:

a secondary DMA controller of the one or more secondary DMA controllers is configured to transmit a synchronization request to the primary DMA controller; and

the on-chip interconnect is configured to implement the control logic to convey the read request from the primary DMA controller to the source memory device in response to the primary DMA controller receiving the synchronization request.

3. The computing device of claim 1 , wherein the plurality of DMA controllers are configured to write the data included in the read response to a plurality of different respective pointer addresses at their corresponding destination memory devices.

4. The computing device of claim 1 , wherein the on-chip interconnect is configured to implement the control logic to convey the read response to each DMA controller of the plurality of DMA controllers.

5. The computing device of claim 1 , wherein the on-chip interconnect is configured to implement the control logic to:

convey the read response to a first subset of the plurality of DMA controllers; and

not convey the read response to a second subset of the plurality of DMA controllers.

6. The computing device of claim 5 , wherein the read request indicates the first subset of the plurality of DMA controllers to which the read response is configured to be conveyed.

7. The computing device of claim 1 , further comprising a respective plurality of processing devices communicatively coupled to the plurality of DMA controllers, wherein each processing device of the plurality of processing devices is a central processing unit (CPU), a core of a CPU, a graphics processing unit (GPU), a core of a GPU, a field-programmable gate array (FPGA), or an application-specific integrated circuit (ASIC).

8. The computing device of claim 1 , wherein the on-chip interconnect is a network-on-chip (NoC), a crossbar, or a ring network.

9. A method for use with a computing device, the method comprising:

at an on-chip interconnect, implementing control logic for a plurality of direct memory access (DMA) controllers at least in part by:

conveying a read request from a primary DMA controller of the plurality of DMA controllers to a source memory device of a plurality of memory devices; and

broadcasting or multi-casting a read response by conveying respective copies of the read response from the source memory device to the primary DMA controller and one or more secondary DMA controllers of the plurality of DMA controllers, wherein the plurality of memory devices further includes a plurality of destination memory devices respectively coupled to the plurality of DMA controllers;

at each of the primary DMA controller and the one or more secondary DMA controllers, writing data included in the read response to their corresponding destination memory devices;

receiving a plurality of read responses at a DMA controller of the plurality of DMA controllers, wherein the plurality of read responses include a respective plurality of sequential response indicators; and

at the DMA controller of the plurality of DMA controllers, writing the respective data included in the plurality of read responses to the corresponding destination memory device of the at least one DMA controller in a write order indicated by the respective sequential response indicators of the plurality of read responses.

10. The method of claim 9 , further comprising:

transmitting a synchronization request from a secondary DMA controller of the one or more secondary DMA controllers to the primary DMA controller; and

conveying the read request from the primary DMA controller to the source memory device in response to the primary DMA controller receiving the synchronization request.

11. The method of claim 9 , further comprising, at the plurality of DMA controllers, writing the data included in the read response to a plurality of different respective pointer addresses at their corresponding destination memory devices.

12. The method of claim 9 , wherein implementing the control logic further includes;

conveying the read response to a first subset of the plurality of DMA controllers; and

not conveying the read response to a second subset of the plurality of DMA controllers.

13. The method of claim 12 , wherein the read request indicates the first subset of the plurality of DMA controllers to which the read response is configured to be conveyed.

14. A computing device comprising:

a plurality of memory devices;

a plurality of direct memory access (DMA) controllers including a primary DMA controller and one or more secondary DMA controllers, wherein:

a secondary DMA controller of the one or more secondary DMA controllers is configured to transmit a synchronization request to the primary DMA controller; and

the primary DMA controller is configured to transmit a read request to a source memory device of the plurality of memory devices in response to receiving the synchronization request; and

an on-chip interconnect configured to implement control logic to:

convey the read request from the primary DMA controller to the source memory device; and

broadcast or multi-cast a read response by conveying respective copies of the read response from the source memory device to the primary DMA controller and one or more secondary DMA controllers of the plurality of DMA controllers,

wherein:

the primary DMA controller and the one or more secondary DMA controllers are each configured to write data included in the read response to corresponding destination memory devices of the plurality of memory devices;

at least one DMA controller of the plurality of DMA controllers is configured to receive a plurality of read responses;

the plurality of read responses include a respective plurality of sequential response indicators; and

the at least one DMA controller of the plurality of DMA controllers is configured to write the respective data included in the plurality of read responses to the corresponding destination memory device of the at least one DMA controller in a write order indicated by the respective sequential response indicators of the plurality of read responses.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2020
From: PENG, RUIHUA; TANG, MONICA MAN KAY; XU, XIAOLING
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 054229/0301 →
Continuity (1)
Related Publication 20220138130A1 · May 5, 2022
Cited By (1)
US 12,481,610