IP Library Granted Patent US 11,720,248
Granted Patent B2
US 11,720,248 · App. 17/715,022 · Granted Aug 8, 2023

Configurable cache for multi-endpoint heterogeneous coherent system

Inventors: Kai Chirca (Dallas, TX); Matthew David Pierson (Frisco, TX)
Assignee: Texas Instruments Incorporated
G06F3/0604G06F3/064G06F3/0607G06F3/0632G06F3/0658G06F3/0659G06F3/0673G06F3/0679G06F9/30101G06F9/30123G06F9/3897G06F9/4881G06F9/5016G06F12/0607G06F12/084G06F12/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,720,248
App. No.
17/715,022
Granted
Aug 8, 2023
Kind
B2
Abstract

A device includes a memory bank. The memory bank includes data portions of a first way group. The data portions of the first way group include a data portion of a first way of the first way group and a data portion of a second way of the first way group. The memory bank further includes data portions of a second way group. The device further includes a configuration register and a controller configured to individually allocate, based on one or more settings in the configuration register, the first way and the second way to one of an addressable memory space and a data cache.

Claims (68)

1. A circuit comprising:

a cache configuration register; and

a controller coupled to the cache configuration register, the controller configured to:

receive a random allocation pointer;

retrieve an AND mask from the cache configuration register;

retrieve an OR mask from the cache configuration register;

perform a first AND operation with a first bit of the random allocation pointer and a first AND mask bit to generate a first output bit;

perform a second AND operation with a second bit of the random allocation pointer and a second AND mask bit to generate a second output bit;

perform a first OR operation with the first output bit and a first OR mask bit to generate a first way identifier bit; and

perform a second OR operation with the second output bit and a second OR mask bit to generate a second way identifier bit.

2. The circuit of claim 1 , wherein:

a set of most significant bits of the random allocation pointer is a way group identifier.

3. The circuit of claim 2 , wherein:

the set of most significant bits of the random allocation pointer includes three most significant bits.

4. The circuit of claim 2 , wherein:

the controller is configured to allocate a way to one of an addressable memory space and a data cache; and

the way is allocated based on the first way identifier bit, the second way identifier bit, and the way group identifier.

5. The circuit of claim 1 , wherein:

the controller is configured to receive a memory access request from a requesting device; and

the controller retrieves the AND mask and the OR mask based on a characteristic of the requesting device.

6. The circuit of claim 5 , wherein:

the characteristic is one of real-time or non-real-time.

7. The circuit of claim 5 , wherein:

the way is allocated to a cache tag associated with the memory access request based on the first way identifier bit, the second way identifier bit, and a way group identifier.

8. A method comprising:

receive, by a controller, a random allocation pointer;

retrieving, by the controller, an AND mask from a cache configuration register coupled to the controller;

retrieving, by the controller, an OR mask from the cache configuration register;

performing, by the controller, a first AND operation with a first bit of the random allocation pointer and a first AND mask bit to generate a first output bit;

performing, by the controller, a second AND operation with a second bit of the random allocation pointer and a second AND mask bit to generate a second output bit;

performing, by the controller, a first OR operation with the first output bit and a first OR mask bit to generate a first way identifier bit; and

performing, by the controller, a second OR operation with the second output bit and a second OR mask bit to generate a second way identifier bit.

9. The method of claim 8 , wherein:

a set of most significant bits of the random allocation pointer is a way group identifier.

10. The method of claim 9 , wherein:

the set of most significant bits of the random allocation pointer includes three most significant bits.

11. The method of claim 9 , further comprising:

allocating, by the controller, a way to one of an addressable memory space and a data cache; wherein the way is allocated based on the first way identifier bit, the second way identifier bit, and the way group identifier.

12. The method of claim 8 , further comprising:

receiving, by the controller, a memory access request from a requesting device;

wherein the controller retrieves the AND mask and the OR mask based on a characteristic of the requesting device.

13. The method of claim 12 , wherein:

the characteristic is one of real-time or non-real-time.

14. The method of claim 12 , further comprising:

allocating, by the controller, the way to a cache tag associated with the memory access request based on the first way identifier bit, the second way identifier bit, and a way group identifier.

15. A system comprising:

a memory;

a cache configuration register; and

a controller coupled to the cache configuration register and the memory, the controller configured to:

receive a random allocation pointer;

retrieve an AND mask from the cache configuration register;

retrieve an OR mask from the cache configuration register;

perform a first AND operation with a first bit of the random allocation pointer and a first AND mask bit to generate a first output bit;

perform a second AND operation with a second bit of the random allocation pointer and a second AND mask bit to generate a second output bit;

perform a first OR operation with the first output bit and a first OR mask bit to generate a first way identifier bit; and

perform a second OR operation with the second output bit and a second OR mask bit to generate a second way identifier bit.

16. The system of claim 15 , wherein:

a set of most significant bits of the random allocation pointer is a way group identifier.

17. The system of claim 16 , wherein:

the set of most significant bits of the random allocation pointer includes three most significant bits.

18. The system of claim 16 , wherein:

the controller is configured to allocate a way to one of an addressable memory space and a data cache; and

the way is allocated based on the first way identifier bit, the second way identifier bit, and the way group identifier.

19. The system of claim 15 , wherein:

the controller is configured to receive a memory access request from a requesting device; and

the controller retrieves the AND mask and the OR mask based on a characteristic of the requesting device.

20. The system of claim 19 , wherein:

the way is allocated to a cache tag associated with the memory access request based on the first way identifier bit, the second way identifier bit, and a way group identifier.

Continuity (3)
Continuation 16653263 · Oct 15, 2019
Provisional Application 62745842 · Oct 15, 2018
Related Publication 20220229779A1 · Jul 21, 2022