IP Library Granted Patent US 9,686,191
Granted Patent B2
US 9,686,191 · App. 14/832,654 · Granted Jun 20, 2017

Performing read operations in network on a chip architecture

Inventors: Andy White (Austin, TX); Doug Meyer (San Diego, CA); Jerry Coffin (San Diego, CA)
Assignee: KnuEdge Incorporation
H04L45/72G06F12/109H04L49/3063H04L49/9068G06F2212/657
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 9,686,191
App. No.
14/832,654
Granted
Jun 20, 2017
Kind
B2
Abstract

Systems and methods to be used by a processing element from among multiple computing resources of a computing system, where communication between the computing resources is carried out based on network on a chip architecture, to send first data from memory registers of the processing element and second data from memory of the computing system to a destination processing element from among the multiple computing resources, by sending the first data to a memory controller of the memory along with a single appended-read command.

Claims (83)

1. A method comprising:

(a) receiving a first packet, at an intermediary computing resource from a first computing resource, wherein the first computing resource and the intermediary computing resource are among a plurality of computing resources of a computing system, the first packet comprising:

(i) first data that is, at least in part, retrieved from memory associated with the first computing resource,

(ii) an address corresponding to memory associated with the intermediary computing resource, and data specifying an instruction to read second data from the address corresponding to memory associated with the intermediary computing resource, and

(iii) an address of a destination computing resource from among the plurality of computing resources of the computing system, and data specifying an instruction to write the first data and the second data to memory associated with the destination computing resource;

(b) reading, by the intermediary computing resource, the second data from the address corresponding to memory associated with the intermediary computing resource; and

(c) transmitting a second packet, by the intermediary computing resource to a second computing resource from among the plurality of computing resources of the computing system, the second packet comprising:

(i) the first data and the second data, and

(ii) the address of the destination computing resource, and the data specifying the write instruction.

2. The method of claim 1 , wherein the second packet does not include the address corresponding to memory associated with the intermediary computing resource.

3. The method of claim 1 , wherein the second computing resource is the destination computing resource.

4. The method of claim 3 , wherein the first packet and the second packet each include an address corresponding to memory associated with the destination computing resource to which the first data and the second data are to be written.

5. The method of claim 1 , wherein

the second computing resource is a second intermediary computing resource from among the plurality of computing resources of the computing system, and

each of the first packet and the second packet further comprises

an address corresponding to memory associated with the second intermediary computing resource, and data specifying an instruction to read third data from the address corresponding to memory associated with the second intermediary computing resource, and

data specifying an instruction to write the third data to the memory associated with the destination computing resource.

6. The method of claim 5 , wherein the first packet and the second packet each include an address corresponding to the memory associated with the destination computing resource to which the third data is to be written.

7. The method of claim 1 , wherein

the first computing resource is an originator computing resource, and

all the first data associated with the first computing resource is retrieved from the memory associated with the first computing resource.

8. The method of claim 1 , wherein

the first computing resource is another intermediary computing resource, and

the first data associated with the first computing resource is data aggregated by the first computing resource, at least in part, from data received from an originator computing resource with data from the memory associated with the first computing resource.

9. The method of claim 1 , wherein the plurality of computing resources of the computing system comprises one or more controllers of one or more processing devices included in the computing system, a plurality of processing engines of the one or more processing devices, and one or more memory controllers of cluster memory of the one or more processing devices.

10. The method of claim 1 , further comprising ordering, by the intermediary computing resource in a payload of the second packet, the second data—read by the intermediary computing resource—after the first data—received from the first computing resource.

11. The method of claim 1 , further comprising ordering, by the intermediary computing resource in a payload of the second packet, the second data—read by the intermediary computing resource—before the first data—received from the first computing resource.

12. A computing apparatus comprising:

one or more hardware processors; and

non-transitory computer-readable medium encoding instructions that, when executed by the one or more hardware processors, cause the computing apparatus to perform operations comprising:

(a) receive a first packet from a first computing apparatus communicatively coupled with the computing apparatus, the first packet comprising:

(i) first data that is, at least in part, retrieved from memory associated with the first computing apparatus,

(ii) an address corresponding to memory associated with the computing apparatus, and data specifying an instruction to read second data from the address corresponding to memory associated with the computing apparatus, and

(iii) an address of a destination computing apparatus communicatively coupled with the computing apparatus, and data specifying an instruction to write the first data and the second data to memory associated with the destination computing apparatus;

(b) read the second data from the address corresponding to memory associated with the computing apparatus; and

(c) transmit a second packet, to a second computing apparatus communicatively coupled with the computing apparatus, the second packet comprising:

(i) the first data and the second data, and

(ii) the address of the destination computing apparatus, and the data specifying the write instruction.

13. The computing apparatus of claim 12 , wherein the second packet does not include the address corresponding to memory associated with the computing apparatus.

14. The computing apparatus of claim 12 , wherein the second computing apparatus is the destination computing apparatus.

15. The computing apparatus of claim 14 , wherein the first packet and the second packet each include an address corresponding to memory associated with the destination computing apparatus to which the first data and the second data are to be written.

16. The computing apparatus of claim 14 , wherein each of the first packet and the second packet further comprises

an address corresponding to memory associated with the second computing apparatus, and data specifying an instruction to read third data from the address corresponding to memory associated with the second computing apparatus, and

data specifying an instruction to write the third data to the memory associated with the destination computing apparatus.

17. The computing apparatus of claim 16 , wherein the first packet and the second packet each include an address corresponding to the memory associated with the destination computing apparatus to which the third data is to be written.

18. The computing apparatus of claim 12 , wherein

the first computing apparatus is an originator computing apparatus, and

all the first data associated with the first computing apparatus is retrieved from the memory associated with the first computing apparatus.

19. The computing apparatus of claim 12 , wherein the first data associated with the first computing apparatus is data aggregated by the first computing apparatus, at least in part, from data received from an originator computing apparatus with data from the memory associated with the first computing apparatus.

20. The computing apparatus of claim 12 is configured either as a controller of a processing device included in a computing system, a processing engine of the processing device, or a memory controller of cluster memory of the processing device.

21. A computing system comprising:

a plurality of computing resources; and

memory associated with respective ones of the computing resources,

wherein an intermediary computing resource of the plurality of computing resources is communicatively coupled with each of a first computing resource and a second computing resource of the plurality of computing resources, the intermediary computing resource being configured to

(a) receive a first packet from the first computing resource, the first packet comprising

(i) first data that is, at least in part, retrieved from memory associated with the first computing resource,

(ii) an address corresponding to memory associated with the intermediary computing resource, and data specifying an instruction to read second data from the address corresponding to memory associated with the intermediary computing resource, and

(iii) an address of a destination computing resource from among the plurality of computing resources, and data specifying an instruction to write the first data and the second data to memory associated with the destination computing resource;

(b) read the second data from the address corresponding to memory associated with the intermediary computing resource; and

(c) transmit a second packet to the second computing resource, the second packet comprising

(i) the first data and the second data, and

(ii) the address of the destination computing resource, and the data specifying the write instruction.

22. The computing system of claim 21 , wherein the second packet does not include the address corresponding to memory associated with the intermediary computing resource.

23. The computing system of claim 21 , wherein the second computing resource is the destination computing resource.

24. The computing system of claim 23 , wherein the first packet and the second packet each include an address corresponding to memory associated with the destination computing resource to which the first data and the second data are to be written.

25. The computing system of claim 21 , wherein

the second computing resource is a second intermediary computing resource, and

each of the first packet and the second packet further comprises

an address corresponding to memory associated with the second intermediary computing resource, and data specifying an instruction to read third data from the address corresponding to memory associated with the second intermediary computing resource, and

data specifying an instruction to write the third data to the memory associated with the destination computing resource.

26. The computing system of claim 25 , wherein the first packet and the second packet each include an address corresponding to the memory associated with the destination computing resource to which the third data is to be written.

27. The computing system of claim 21 , wherein

the first computing resource is an originator computing resource, and

all the first data associated with the first computing resource is retrieved from the memory associated with the first computing resource.

28. The computing system of claim 21 , wherein

the first computing resource is another intermediary computing resource that is communicatively coupled with an originator computing resource from among the plurality of computing resources, and

the first data associated with the first computing resource is data aggregated by the first computing resource, at least in part, from data received from the originator computing resource with data from the memory associated with the first computing resource.

29. The computing system of claim 21 , wherein the plurality of computing resources of the computing system comprises one or more controllers of one or more processing devices included in the computing system, a plurality of processing engines of the one or more processing devices, and one or more memory controllers of cluster memory of the one or more processing devices.

30. The computing system of claim 29 , wherein the first computing resource is a first processing engine of the plurality of processing engines, the intermediary computing resource is one of the one or more memory controllers, and the destination computing resource is a second processing engine of the plurality of processing engines.

31. The computing system of claim 29 , wherein the first computing resource is a first processing engine of the plurality of processing engines, the intermediary computing resource is a second processing engine of the plurality of processing engines, and the second computing resource is a third processing engine of the plurality of processing engines.

32. The computing system of claim 29 , wherein the first computing resource is a processing engine of the plurality of processing engines, the intermediary computing resource is a first one of the one or more memory controllers, and the destination computing resource is a second one of the one or more memory controllers.

33. The computing system of claim 29 , wherein at least one processing device from among the one or more processing devices is implemented as a system on a chip (SoC).

34. The computing system of claim 29 , wherein at least one computing resource of the plurality of computing resources is implemented as a microprocessor, a microcontroller, a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2026
From: PATTI, ROBERT S
To: TEATRO, INC.
Reel/Frame 074966/0181 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2018
From: KNUEDGE, INC.
To: FRIDAY HARBOR LLC
Reel/Frame 047156/0582 →
SECURITY INTEREST Recorded Oct 27, 2017
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, LP
Reel/Frame 044637/0011 →
SECURITY INTEREST Recorded Nov 11, 2016
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, L.P.
Reel/Frame 040601/0917 →
CHANGE OF NAME Recorded Apr 14, 2016
From: THE INTELLISIS CORPORATION
To: KNUEDGE INCORPORATED
Reel/Frame 038439/0227 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: WHITE, ANDY; MEYER, DOUG B.; COFFIN, JERRY
To: INTELLISIS CORPORATION
Reel/Frame 037283/0923 →
Continuity (1)
Related Publication 20170054635A1 · Feb 23, 2017