Memory controller with ring bus for interconnecting memory clients to memory devices
First Claim
1. An integrated circuit device comprising:
- 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, wherein the memory controller circuit comprises,a switch matrix configured to transmit the memory requests from the requesting memory client to the target memory device;
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;
a plurality of memory clients operable to send or receive data to one or more memory devices by sending memory access requests to the central memory controller circuit; and
a ring bus connected between pairs of read bus switches of a plurality of read bus switches, and configured to transmit a memory read transfer between the target memory device and a requesting memory client, wherein the ring bus comprises a counter rotating ring bus coupling all of the plurality of read bus switches together in a ring topography.
1 Assignment
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.
7 Citations
21 Claims
-
1. An integrated circuit device comprising:
-
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, wherein the memory controller circuit comprises, a switch matrix configured to transmit the memory requests from the requesting memory client to the target memory device; 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; a plurality of memory clients operable to send or receive data to one or more memory devices by sending memory access requests to the central memory controller circuit; and a ring bus connected between pairs of read bus switches of a plurality of read bus switches, and configured to transmit a memory read transfer between the target memory device and a requesting memory client, wherein the ring bus comprises a counter rotating ring bus coupling all of the plurality of read bus switches together in a ring topography. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. 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, wherein each memory device represents a dynamic random access memory channel; 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, wherein the memory controller circuit comprises, a switch matrix configured to transmit the memory requests from the requesting memory client to the target memory device; 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; and 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, wherein the ring bus comprises a counter rotating ring bus coupling all of the plurality of read bus switches together in a ring topography.
-
-
14. The memory controller of 13, wherein each respective memory device comprises a dynamic random access memory.
-
15. 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, wherein each memory device represents a dynamic random access memory channel; one or more memory clients 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 coupled to each read bus switch of the plurality of read bus switches, 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 a ring bus connected between pairs of read bus switches of the plurality of read bus switches, the ring bus comprising a counter rotating ring bus coupling all of the plurality of read bus switches together in a ring topography, 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. - View Dependent Claims (16, 17)
-
-
18. 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 comprising a next ring stop virtual channel for each ring bus stop and one or more reserved buffer entries in an input buffer of each ring bus stop, the deadlock avoidance circuit configured to prevent deadlock of the memory access signals on the ring bus, wherein the deadlock comprises multi-hop deadlock caused by filling an input buffer of a ring bus stop with transactions of any memory access signal type, and wherein the memory access signals comprise types consisting of;
read requests, write acknowledgments, read returns, and write requests. - View Dependent Claims (19, 20, 21)
-
Specification