IP Library Granted Patent US 7,984,247
Granted Patent B2
US 7,984,247 · App. 12/251,871 · Granted Jul 19, 2011

External memory controller node

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 7,984,247
App. No.
12/251,871
Granted
Jul 19, 2011
Kind
B2
Abstract

A memory controller to provide memory access services in an adaptive computing engine is provided. The controller comprises: a network interface configured to receive a memory request from a programmable network; and a memory interface configured to access a memory to fulfill the memory request from the programmable network, wherein the memory interface receives and provides data for the memory request to the network interface, the network interface configured to send data to and receive data from the programmable network.

Claims (57)

1. A computing machine embodied in an integrated circuit comprising:

a memory interface coupled to an external memory;

a plurality of heterogeneous computational nodes embodied in an integrated circuit and configured to make requests for memory accesses to the memory;

a memory controller configured to allow accesses by the heterogeneous computational nodes to the memory in response to the memory requests; and

a programmable interconnection network providing interconnections among the heterogeneous computational nodes and the memory controller, the interconnection network to route the requests from the heterogeneous computational nodes to the memory controller, route data for the requests between the heterogeneous computational nodes and the memory via the memory controller, and route data between the heterogeneous computational nodes.

2. The computing machine of claim 1 wherein the memory controller allows multiple independent simultaneous requests for memory accesses by the heterogeneous computational nodes to the memory.

3. The computing machine of claim 1 , wherein the memory controller is configured to place the requests in a queue and allow accesses by the heterogeneous computational nodes to the memory in an order established by the queue.

4. The computing machine of claim 1 , wherein the memory controller includes a predefined number of memory channels and is configured to receive memory requests assigned to corresponding memory channels of the predefined number of memory channels.

5. The computing machine of claim 4 , wherein the memory controller is configured to allow accesses by the heterogeneous computational nodes to the memory over the assigned memory channels.

6. The computing machine of claim 4 , wherein the memory controller is configured to allow requests sent over different channels of the plurality of memory channels to be processed in an order other than the order in which the requests are received by the memory controller.

7. The computing machine of claim 1 , wherein the memory controller includes ports that have parameters, the memory controller configured to generate memory locations for the requests based on the parameters and to allow accesses by the heterogeneous computational nodes to the memory at the memory locations in response to the requests.

8. The computing machine circuit of claim 7 , wherein the parameters are configured by the memory controller in response to a peek or a poke.

9. The computing machine of claim 1 , wherein the memory controller includes ports having parameters configured by the memory controller in response to the memory requests, the memory controller configured to allow accesses by the heterogeneous computational nodes to the memory using the configured parameters of the ports.

10. The computing machine of claim 9 , wherein the parameters are configured by the memory controller in response to a peek or a poke.

11. The computing machine of claim 1 , wherein the computing machine is in communication with an external memory device, and wherein the memory controller is configured to allow accesses by the heterogeneous computational nodes to the external memory device in response to the requests.

12. A computing machine embodied in an integrated circuit, the computing machine in communication with an external memory device, the integrated circuit comprising:

a plurality of heterogeneous computational nodes configured to make requests for data transfer to the external memory device;

a memory controller configured to allow accesses by the heterogeneous computational nodes to the external memory device in response to the requests; and

a programmable interconnection network providing interconnections among the heterogeneous computational nodes and the controller, the interconnection network to route the requests from the heterogeneous computational nodes to the controller, route data for the requests between the heterogeneous computational nodes and the external memory device via the controller, and route data between the heterogeneous computational nodes.

13. The computing machine of claim 12 , wherein the controller allows multiple independent simultaneous requests for data transfer by the heterogeneous computational nodes to the external memory device.

14. The computing machine of claim 12 , wherein the controller is configured to place the requests for data transfer in a queue and allow accesses by the heterogeneous computational nodes to the external memory device in an order established by the queue.

15. The computing machine of claim 12 , wherein the controller includes a predefined number of channels and is configured to receive requests for data-transfer, the requests assigned to corresponding channels of the predefined number of channels.

16. The computing machine of claim 15 , wherein the controller is configured to allow accesses by the heterogeneous computational nodes to the external memory device over the assigned channels.

17. The computing machine of claim 15 , wherein the controller is configured to allow requests sent over different channels of the plurality of channels to be processed in an order other than the order in which the requests are received by the controller.

18. The computing machine of claim 12 , wherein the controller includes ports that have parameters.

19. The computing machine of claim 18 wherein the controller is configured to generate memory locations for the data transfer requests based on the parameters and is configured to allow accesses by the heterogeneous computing nodes to the external memory device at the memory locations in response to the data transfer requests.

20. The computing machine of claim 19 , wherein the parameters are configured by the controller in response to a peek or a poke.

21. The computing machine of claim 12 , wherein the controller includes ports that have parameters configured by the controller in response to the requests for data transfer, the controller configured to allow accesses by the heterogeneous computing nodes to the external memory device using the configured parameters of the ports.

22. The computing machine of claim 21 , wherein the parameters are configured by the controller in response to a peek or a poke.

23. An adaptive computing machine comprising:

a memory;

a plurality of heterogeneous computational nodes embodied in an integrated circuit and configured to make requests for memory accesses to the memory;

a memory controller including ports having parameters, the memory controller configured to generate memory locations for the memory requests based on the parameters and configured to allow accesses by the heterogeneous computational nodes to the memory at the memory locations in response to the requests; and

a programmable interconnection network providing programmable interconnections among the heterogeneous computational nodes and the memory controller, the interconnection network to route the requests from the heterogeneous computational nodes to the memory controller, route data for the requests between the heterogeneous computational nodes and the memory via the memory controller, and route data between the heterogeneous computational nodes.

24. The adaptive computing machine of claim 23 wherein the memory controller allows multiple independent simultaneous requests for memory accesses by the heterogeneous computational nodes to the memory.

25. The adaptive computing machine of claim 23 , wherein the memory controller is configured to place the memory requests in a queue and allow accesses by the heterogeneous computational nodes to the memory in an order established by the queue.

26. The adaptive computing machine of claim 23 , wherein the memory controller includes a predefined number of memory channels and is configured to receive memory requests assigned to corresponding memory channels of the predefined number of memory channels.

27. The adaptive computing machine of claim 26 , wherein the memory controller is configured to allow accesses by the heterogeneous computational nodes to the memory over the assigned memory channels.

28. The adaptive computing machine of claim 26 , wherein the memory controller is configured to allow requests sent over different channels of the plurality of memory channels to be processed in an order other than the order in which the requests are received by the memory controller.

29. The adaptive computing machine of claim 23 , wherein the parameters are configured by the memory controller in response to a peek or a poke.

30. The adaptive computing machine of claim 23 , wherein the memory controller is configured to allow accesses by the heterogeneous computational nodes to the memory using the configured parameters of the ports.

31. The adaptive computing machine of claim 30 , wherein the parameters are configured by the memory controller in response to a peek or a poke.

32. The adaptive computing machine of claim 23 , wherein the adaptive computing machine is in communication with an external memory device, and wherein the memory controller is configured to allow accesses by the heterogeneous computational nodes to the external memory device in response to the requests.

33. An adaptive computing machine embodied in an integrated circuit and in communication with an external memory device, the adaptive computing machine comprising:

a plurality of heterogeneous computational nodes configured to make requests for data transfer to the external memory device;

a controller configured to allow accesses by the heterogeneous computational nodes to the external memory device in response to the memory requests; and

a programmable interconnection network to provide programmable interconnections among the heterogeneous computational nodes and the controller, the interconnection network to route the requests from the heterogeneous computational nodes to the controller, route data for the requests between the heterogeneous computational nodes and the external memory device via the controller, and route data between the heterogeneous computational nodes.

34. The adaptable computing machine of claim 33 wherein the controller allows multiple independent simultaneous requests for data transfer by the heterogeneous computational nodes to the external memory device.

35. The adaptive computing machine of claim 33 , wherein the controller is configured to place the requests for data transfer in a queue and allow accesses by the heterogeneous computational nodes to the external memory device in an order established by the queue.

36. The adaptive computing machine of claim 33 , wherein the controller includes a predefined number of channels and is configured to receive requests for data-transfer, the requests assigned to corresponding channels of the predefined number of channels.

37. The adaptive computing machine of claim 36 , wherein the controller is configured to allow accesses by the heterogeneous computational nodes to the external memory device over the assigned channels.

38. The adaptive computing machine of claim 36 , wherein the controller is configured to allow requests sent over different channels of the plurality of channels to be processed in an order other than the order in which the requests are received by the controller.

39. The adaptive computing machine of claim 33 , wherein the controller includes ports that have parameters.

40. The adaptive computing machine of claim 39 wherein the controller is configured to generate memory locations for the data transfer requests based on the parameters and is configured to allow accesses by the heterogeneous computing nodes to the external memory device at the memory locations in response to the data transfer requests.

41. The adaptive computing machine of claim 40 , wherein the parameters are configured by the controller in response to a peek or a poke.

42. The adaptive computing machine of claim 33 , wherein the controller includes ports that have parameters configured by the controller in response to the requests for data transfer, the controller configured to allow accesses by the heterogeneous computing nodes to the external memory device using the configured parameters of the ports.

43. The adaptive computing machine of claim 42 , wherein the parameters are configured by the controller in response to a peek or a poke.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2019
From: QST HOLDINGS, LLC
To: CORNAMI, INC.
Reel/Frame 050409/0253 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: QUICKSILVER TECHNOLOGY, INC.
To: TECHFARM VENTURES MANAGEMENT, LLC
Reel/Frame 037711/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: TECHFARM VENTURES MANAGEMENT, LLC
To: QST HOLDINGS, LLC
Reel/Frame 037712/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2016
From: FURTEK, FREDERICK CURTIS; MASTER, PAUL L.
To: QUICKSILVER TECHNOLOGY INC.
Reel/Frame 037537/0858 →