Memory Controller With Ring Bus for Interconnecting Memory Clients to Memory Devices
First Claim
1. An integrated circuit device comprising:
- a plurality of memory control circuits, each memory control circuit includes a memory interface providing access to one or more memory devices separate from the integrated circuit;
a memory client operable to send or receive data to the memory devices by sending memory access requests to the memory control circuits; and
a bus interconnecting the memory control circuits in a topography distributed around the integrated circuit.
0 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of a distributed memory controller system implemented on a single integrated circuit device are described. In one embodiment, a memory controller that provides an interconnection circuit between a first plurality of memory devices to a second plurality of memory clients includes a ring bus to route at least one of the memory request and data return signals between the memory clients and the memory devices. The ring bus is configured in a ring topography that is distributed across a portion of an integrated circuit device, resulting in a reduction in the maximum wiring density at the center of memory controller. The ring bus structure also reduces the overall number of interconnections as well as the number of storage elements, thus reducing the total area used by the memory controller. The ring bus couples memory clients that are physically located within the ring topography on the integrated circuit to external memory devices through memory device interface circuits located on the integrated circuit device. The memory controller also includes deadlock avoidance mechanisms that utilize virtual channels on the ring bus for one or more defined types of bus traffic.
12 Citations
32 Claims
-
1. An integrated circuit device comprising:
-
a plurality of memory control circuits, each memory control circuit includes a memory interface providing access to one or more memory devices separate from the integrated circuit; a memory client operable to send or receive data to the memory devices by sending memory access requests to the memory control circuits; and a bus interconnecting the memory control circuits in a topography distributed around the integrated circuit. - View Dependent Claims (2)
-
-
15. A memory controller coupling a plurality of memory clients on an integrated circuit device to external memory devices, comprising:
-
a plurality of read bus switches, each read bus switch of the plurality of read bus switches coupled to a respective memory device of the external memory devices; one or more of the memory clients coupled to at least one read bus switch, and configured to transmit a memory request to a target memory device and receive a memory read transfer from the target memory device in response to the memory request; a central memory controller circuit coupled to at least one read bus switch and each of the one or more memory clients, and configured to route the memory request to the target memory device; a ring bus connected between pairs of read bus switches of the plurality of read bus switches, and configured to transmit the memory read transfer between the target memory device and a requesting memory client; an arbiter circuit coupling each memory client of the one or more memory clients to a respective memory channel; a sequencer circuit coupling each arbiter to a respective read bus switch corresponding to the requesting memory client; and a client interface coupling the arbiter circuit to the requesting memory client and configured to implement a flow control protocol for the requesting memory client. - View Dependent Claims (17, 18, 19)
-
-
16. The memory controller of 15, wherein each respective memory device comprises a dynamic random access memory.
-
20. An integrated circuit device including a memory control circuit, the integrated circuit device comprising:
-
a plurality of read bus switches, each read bus switch of the plurality of read bus switches coupled to a respective memory device located off of the integrated circuit device; one or more memory clients coupled to each read bus switch of the plurality of read bus switches, and configured to transmit a memory request to a target memory device and receive a memory read transfer from the target memory device in response to the memory request; and a ring bus connected between pairs of read bus switches of the plurality of read bus switches, and configured to transmit both memory requests from a requesting client to a target memory device, and memory read transfers between the target memory device and the requesting memory client;
wherein each read bus switch comprises,a ring stop circuit configured to receive incoming read and write data traffic from adjacent ring stop circuits on the ring bus; an arbiter circuit coupling the ring stop circuit to a respective memory channel; a sequencer circuit coupling each arbiter to the respective memory channel; and a client interface coupling the ring stop circuit to the requesting memory client and configured to implement a flow control protocol for the requesting memory client. - View Dependent Claims (21, 22)
-
- 23. (canceled)
-
26. A memory controller coupling a plurality of memory clients on an integrated circuit device to a plurality of memory devices, comprising:
-
a plurality of ring bus stops, each coupled to a respective memory device of the plurality of memory devices; a memory controller circuit coupled to at least one ring bus stop and each of the plurality of memory clients, and configured to route memory access signals between the plurality of memory clients and memory devices; a ring bus connected between pairs of ring bus stops, and configured to physically transmit the memory access signals between the plurality of memory clients and memory devices; and a deadlock avoidance circuit configured to prevent deadlock of the memory access signals on the ring bus. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
Specification