IP Library Granted Patent US 11,341,052
Granted Patent B2
US 11,341,052 · App. 16/653,179 · Granted May 24, 2022

Multi-processor, multi-domain, multi-protocol, cache coherent, speculation aware shared memory and interconnect

Inventors: Kai Chirca (Dallas, TX); Matthew David Pierson (Frisco, TX); Timothy David Anderson (University Park, TX); Joseph Zbiciak (San Jose, CA)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F12/084G06F3/064G06F3/0604G06F3/0607G06F3/0632G06F3/0658G06F3/0659G06F3/0673G06F3/0679G06F9/30101G06F9/30123G06F9/3897G06F9/4881G06F9/5016G06F12/0607G06F12/0811G06F12/0815G06F12/0828G06F12/0831G06F12/0855G06F12/0857G06F12/0875G06F12/0891G06F12/10G06F12/1009G06F13/124G06F13/1642G06F13/1663G06F13/1668G06F13/4027H03M13/015H03M13/098H03M13/1575H03M13/276H03M13/2785G06F12/0833G06F12/0846G06F12/0851G06F12/0862G06F2212/1008G06F2212/1016G06F2212/1024G06F2212/1048G06F2212/304G06F2212/452G06F2212/6024G06F2212/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 11,341,052
App. No.
16/653,179
Granted
May 24, 2022
Kind
B2
Abstract

A device includes an interconnect and a plurality of devices connected to the interconnect. The plurality of devices includes a first interface connected to the interconnect and a second interface connected to the interconnect. The plurality of devices further includes a first memory bank connected to the interconnect and a second memory bank connected to the interconnect. The plurality of devices further includes an external memory interface connected to the interconnect and a controller configured to establish virtual channels among the plurality of devices connected to the interconnect.

Claims (61)

1. A device comprising:

an interconnect;

a plurality of devices connected to the interconnect including:

a first interface connected to the interconnect;

a second interface connected to the interconnect;

a first memory bank connected to the interconnect;

a second memory bank connected to the interconnect; and

an external memory interface connected to the interconnect;

a coherency controller including a first filter bank, a second filter bank, a first cache tag bank, and a second cache tag bank, wherein entries in the first filter bank correspond to entries in the first cache tag bank and entries in the first cache tag bank correspond to entries in the first memory bank and entries in the second filter bank correspond to entries in the second cache tag bank and entries in the second cache tag bank correspond to entries in the second memory bank, wherein the entries in the first filter bank indicate whether data associated with a first location in the first memory bank is stored on a first device coupled to one of the first interface and the second interface; and

a controller configured to establish virtual channels among the plurality of devices connected to the interconnect.

2. The device of claim 1 , wherein the controller is further configured to:

receive a request to write data from one of the first interface and the second interface; and

generate a Hamming code corresponding to the data; and

transmit the Hamming code and the data over the interconnect via one of the virtual channels.

3. The device of claim 1 , further comprising a multi-core shared memory controller (MSMC) bridge connected to the first interface, the MSMC bridge configured to convert a signal received from a processor device connected to the MSMC bridge to a format supported by the plurality of devices.

4. The device of claim 3 , wherein converting the signal includes altering a power of the signal, a clock domain of the signal, a number of bits indicated by the signal, or a combination thereof.

5. The device of claim 1 , wherein the plurality of devices further includes a second external memory interface and an external memory interleave circuit connected to the interconnect, wherein the external memory interface and the second external memory interface are connected to the interconnect through the external memory interleave circuit, and wherein the external memory interleave circuit is configured to interleave accesses to the external memory interface and the second external memory interface.

6. The device of claim 1 , wherein the controller is further configured to select a message from a plurality of messages received from the plurality of devices based on a number of credits available at a destination of the message and a credit threshold associated with the message.

7. The device of claim 1 , wherein the plurality of devices further includes a data routing unit (DRU) configured to translate between virtual memory addresses and physical memory addresses.

8. The device of claim 1 , further comprising a cache controller configured to cache data retrieved from the external memory interface, the first memory bank, or the second memory bank.

9. A system comprising:

a multi-core shared memory controller (MSMC) including:

an interconnect;

a plurality of devices connected to the interconnect including:

a first interface connected to the interconnect, wherein the first interface is connected to a first processor package;

a second interface connected to the interconnect, wherein the second interface is connected to a second processor package;

a first memory bank connected to the interconnect;

a second memory bank connected to the interconnect; and

an external memory interface connected to the interconnect;

a coherency controller including a first filter bank, a second filter bank, a first cache tag bank, and a second cache tag bank, wherein entries in the first filter bank correspond to entries in the first cache tag bank and entries in the first cache tag bank correspond to entries in the first memory bank and entries in the second filter bank correspond to entries in the second cache tag bank and entries in the second cache tag bank correspond to entries in the second memory bank, wherein the entries in the first filter bank indicate whether data associated with a first location in the first memory bank is stored on one of the first processor package and the second processor package; and

a controller configured to establish virtual channels among the plurality of devices connected to the interconnect; and

an external memory device connected to the external memory interface.

10. The system of claim 9 , wherein the controller is further configured to:

receive a request to write data from one of the first interface and the second interface;

generate a Hamming code corresponding to the data; and

transmit the Hamming code and the data over the interconnect via one of the virtual channels.

11. The system of claim 9 , further comprising a multi-core shared memory controller (MSMC) bridge connected to the first interface, the MSMC bridge configured to convert a signal received from a processor device connected to the MSMC bridge to a format supported by the plurality of devices.

12. The system of claim 11 , wherein converting the signal includes altering a power of the signal, a clock domain of the signal, a number of bits indicated by the signal, or a combination thereof.

13. The system of claim 9 , further including a second external memory device, wherein the plurality of devices further includes a second external memory interface and an external memory interleave circuit connected to the interconnect, wherein the external memory interface and the second external memory interface are connected to the interconnect through the external memory interleave circuit, wherein the second external memory device is connected to the second external memory interface, and wherein the external memory interleave circuit is configured to interleave accesses to the external memory device through the external memory interface and the second external memory device through the second external memory interface.

14. The system of claim 9 , wherein the controller is further configured to select a message from a plurality of messages received from the plurality of devices based on a number of credits available at a destination of the message and a credit threshold associated with the message.

15. The system of claim 9 , wherein the plurality of devices further includes a data routing unit (DRU) configured to translate between virtual memory addresses and physical memory addresses.

16. The system of claim 9 , wherein the MSMC further includes a cache controller configured to cache data retrieved from the external memory interface, the first memory bank, or the second memory bank.

17. A method comprising:

receiving, at a controller, a message from a first device of a plurality of devices connected to an interconnect, the plurality of devices including:

a first interface connected to the interconnect;

a second interface connected to the interconnect;

a first memory bank connected to the interconnect;

a second memory bank connected to the interconnect; and

an external memory interface connected to the interconnect; and

determining, at the controller, a virtual channel associated with a destination of the message; and

initiating, at the controller, transmission of the message and an identifier of the virtual channel over the interconnect;

wherein the controller includes a first filter bank, a second filter bank, a first cache tag bank, and a second cache tag bank;

wherein entries in the first filter bank correspond to entries in the first cache tag bank and entries in the first cache tag bank correspond to entries in the first memory bank and entries in the second filter bank correspond to entries in the second cache tag bank and entries in the second cache tag bank correspond to entries in the second memory bank;

wherein the entries in the first filter bank indicate whether data associated with a first location in the first memory bank is stored on a first device coupled to one of the first interface and the second interface.

18. The method of claim 17 , wherein the message includes a request to write data from one of the first interface and the second interface, the method further comprising:

generating a Hamming code corresponding to the data; and

initiating transmission of the Hamming code along with the data over the interconnect.

19. The method of claim 18 , further comprising caching the Hamming code and the data in the first memory bank or the second memory bank.

20. The method of claim 17 , wherein the plurality of devices further includes a data routing unit (DRU), the method further comprising:

transmitting a virtual a memory address referenced by the message to the DRU; and

receiving a translation of the virtual memory address from the DRU.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: CHIRCA, KAI; PIERSON, MATTHEW DAVID; ANDERSON, TIMOTHY DAVID; ZBICIAK, JOSEPH
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 051109/0211 →
Continuity (2)
Provisional Application 62745842 · Oct 15, 2018
Related Publication 20200117621A1 · Apr 16, 2020