IP Library Granted Patent US 10,198,359
Granted Patent B2
US 10,198,359 · App. 15/903,579 · Granted Feb 5, 2019

Systems and methods for addressing a cache with split-indexes

Inventor: Richard Richmond (Belfast, GB)
Assignee: Linear Algebra Technologies, Limited
G06F12/0884G06F12/0804G06F12/0811G06F12/0842G06F12/0875G06F12/0895G06F2212/283G06F2212/455
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 10,198,359
App. No.
15/903,579
Granted
Feb 5, 2019
Kind
B2
Abstract

Cache memory mapping techniques are presented. A cache may contain an index configuration register. The register may configure the locations of an upper index portion and a lower index portion of a memory address. The portions may be combined to create a combined index. The configurable split-index addressing structure may be used, among other applications, to reduce the rate of cache conflicts occurring between multiple processors decoding the video frame in parallel.

Claims (47)

1. A cache comprising:

cache lines referenced by indexes;

a register to:

determine a first index portion from a first set of bits of a first address associated with a first memory location of main memory; and

determine a second index portion from a second set of bits of the first address; and

a module to map the first memory location of the main memory to a first cache line referenced by a first index, the first index based on a combination of the first index portion and the second index portion, the cache to store data from the first memory location of the main memory in the first cache line.

2. The cache of claim 1 , wherein the module is to concatenate the first index portion and the second index portion to determine the first index.

3. The cache of claim 1 , wherein the register is further to:

determine a first tag from a third set of bits of the first address;

determine a second tag from a fourth set of bits of the first address; and

combine the first tag and the second tag to determine an identifier to identify the first memory location.

4. The cache of claim 3 , wherein the register is to combine the first tag and the second tag by concatenating the first tag and the second tag to determine the identifier.

5. The cache of claim 3 , wherein the first set of bits of the first address and the second set of bits of the first address are separated by the third set of bits of the first address.

6. The cache of claim 3 , wherein the register is to determine, based on a fifth set of bits of the first address, a position within the first cache line to which the first memory location is mapped.

7. The cache of claim 1 , wherein the module is to permit simultaneously accesses of different ones of the cache lines by different processors.

8. A computing system comprising:

one or more processors;

memory; and

a cache including a plurality of cache lines, the cache to:

determine a first index from a first set of bits of a first address associated with a first memory location of the memory;

determine a second index from a second set of bits of the first address; and

cache data from the first memory location of the memory in a first cache line referenced by a combined index, the combined index based on a combination of the first index and the second index.

9. The computing system of claim 8 , wherein the cache is to concatenate the first index and the second index to determine the combined index.

10. The computing system of claim 8 , wherein the cache is further to combine a third set of bits of the first address and a fourth set of bits of the first address to determine an identifier to identify the first memory location.

11. The computing system of claim 10 , wherein the cache is to concatenate the third set of bits of the first address and the fourth set of bits of the first address to determine the identifier.

12. The computing system of claim 10 , wherein the first set of bits of the first address and the second set of bits of the first address are separated by the third set of bits of the first address.

13. The computing system of claim 10 , wherein the cache is further to determine, based on a fifth set of bits of the first address, a position within the first cache line to which the first memory location is mapped.

14. The computing system of claim 10 , wherein the first cache line is one of a plurality of cache lines, and the cache is to permit simultaneously accesses of different ones of the cache lines by different ones of the one or more processors.

15. One or more non-transitory computer readable storage media comprising computer executable instructions that, when executed by a computing system, cause the computing system to at least:

determine a first index from a first set of bits of a first address associated with a first memory location of main memory;

determine a second index from a second set of bits of the first address; and

cache data from the first memory location of the main memory in a first cache line referenced by a combined index, the combined index based on a combination of the first index and the second index.

16. The one or more storage media of claim 15 , wherein the instructions, when executed, cause the computing system to concatenate the first index and the second index to determine the combined index.

17. The one or more storage media of claim 15 , wherein the instructions, when executed, further cause the computing system to combine a third set of bits of the first address and a fourth set of bits of the first address to determine an identifier to identify the first memory location.

18. The one or more storage media of claim 17 , wherein the instructions, when executed, cause the computing system to concatenate the third set of bits of the first address and the fourth set of bits of the first address to determine the identifier.

19. The one or more storage media of claim 17 , wherein the first set of bits of the first address and the second set of bits of the first address are separated by the third set of bits of the first address.

20. The one or more storage media of claim 17 , wherein the instructions, when executed, further cause the computing system to determine, based on a fifth set of bits of the first address, a position within the first cache line to which the first memory location is mapped.

21. A caching method comprising:

determining, by executing an instruction with a processor, a first index from a first set of bits of a first address associated with a first memory location of main memory;

determining, by executing an instruction with the processor, a second index from a second set of bits of the first address; and

caching data from the first memory location of the main memory in a first cache line referenced by a combined index, the combined index based on a combination of the first index and the second index.

22. The method of claim 21 , further including concatenating the first index and the second index to determine the first index.

23. The method of claim 21 , further including combining a third set of bits of the first address and a fourth set of bits of the first address to determine an identifier to identify the first memory location.

24. The method of claim 23 , wherein the combining of the third set of bits of the first address and the fourth set of bits of the first address to determine the identifier includes concatenating the third set of bits of the first address and the fourth set of bits of the first address to determine the identifier.

25. The method of claim 23 , wherein the first set of bits of the first address and the second set of bits of the first address are separated by the third set of bits of the first address.

26. The method of claim 23 , further including determining, based on a fifth set of bits of the first address, a position within the first cache line to which the first memory location is mapped.

27. The method of claim 21 , wherein the first cache line is one of a plurality of cache lines, and further including accessing different ones of the cache lines simultaneously with different processors.

Assignments (2)
MERGER Recorded Oct 26, 2022
From: LINEAR ALGEBRA TECHNOLOGIES LIMITED
To: MOVIDIUS LIMITED
Reel/Frame 061546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2018
From: RICHMOND, RICHARD
To: LINEAR ALGEBRA TECHNOLOGIES LIMITED
Reel/Frame 046810/0023 →
Continuity (2)
Continuation 14716588 · May 19, 2015
Related Publication 20180260333A1 · Sep 13, 2018