IP Library Granted Patent US 8,131,970
Granted Patent B2
US 8,131,970 · App. 12/427,609 · Granted Mar 6, 2012

Compiler based cache allocation

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 8,131,970
App. No.
12/427,609
Granted
Mar 6, 2012
Kind
B2
Abstract

Techniques a generally described for creating a compiler determined map for the allocation of memory space within a cache. An example computing system is disclosed having a multicore processor with a plurality of processor cores. At least one cache may be accessible to at least two of the plurality of processor cores. A compiler determined map may separately allocate a memory space to threads of execution processed by the processor cores.

Claims (31)

1. A computing system, comprising:

a multicore processor comprising a plurality of processor cores;

a cache that is accessible to at least two of the plurality of processor cores; and

a compiler configured to create a map to allow allocation of memory space within the cache, wherein the compiler is configured to create the map for the allocation of memory space within the cache based at least in part on characteristics of one or more software applications, wherein the one or more software applications comprise threads of execution to be implemented on the plurality of processor cores.

2. The computing system of claim 1 , wherein the characteristics of the one or more software applications include locality of reference.

3. The computing system of claim 1 , wherein the characteristics of the one or more software applications include profile information.

4. The computing system of claim 1 , wherein the compiler is further configured to create the map for the allocation of memory space within the cache within a hardware located in front of the cache, based at least in part on information which has been determined by the compiler and sent to the hardware.

5. The computing system of claim 1 , wherein a processor core of the plurality of processor cores is configured to translate the map for the allocation of memory space within the cache to the cache by re-indexing address bits in the cache.

6. The computing system of claim 1 , wherein the map for the allocation of memory space within the cache is configured by the compiler to restrict a number of ways the plurality processor cores have access into the cache.

7. The computing system of claim 6 , wherein the compiler is configured to restrict the number of ways separately at a cache line.

8. A computing system, comprising:

a multicore processor comprising a plurality of processor cores;

a cache that is accessible to at least two of the plurality of processor cores; and

a compiler configured to create a map to allow allocation of memory space within the cache, wherein the map for the allocation of memory space within the cache is reconfigured dynamically over the course of the execution of one or more software applications by a processor core of the plurality of processor cores.

9. The computing system of claim 8 , wherein one or more Bloom filters are configured to determine when to initiate a re-mapping of the cache.

10. The computing system of claim 8 , wherein reference counts based at least in part on a thread identification of a thread of execution, collected by a performance counter, are used to determine when to initiate a re-mapping of the cache.

11. The computing system of claim 8 , wherein the compiler is configured to create the map for the allocation of memory space within the cache based at least in part on characteristics of one or more software applications.

12. A method for the allocation of memory space within a cache in a multicore processor computing system, comprising:

creating a map of memory space within the cache using a compiler to allocate memory space within the cache to one or more processor cores within the multi-core computing system, wherein creating the map comprises creating the map for the allocation of memory space within the cache based at least in part on characteristics of one or more software applications, threads of execution of which are to be processed on the one or more processor cores within the multicore processor computing system.

13. The method of claim 12 , wherein creating the map comprises creating the map for the allocation of memory space within the cache within a hardware located in front of the cache, based at least in part on information which has been determined by the compiler and sent to the hardware.

14. The method of claim 12 , further comprising translating the map for the allocation of memory space within the cache from the compiler to the cache by re-indexing address bits in the cache.

15. The method of claim 12 , further comprising restricting a number of ways the one or more processor cores have access into the cache.

16. The method of claim 12 , further comprising restricting the number of ways the one or more processor cores have access into the cache separately at a cache line.

17. A method for the allocation of memory space within a cache in a multicore processor computing system, comprising:

creating a map of memory space within the cache using a compiler to allocate memory space within the cache to one or more processor cores within the multi-core computing system; and

reconfiguring the map for the allocation of memory space within the cache dynamically over the course of the execution of the-one or more software applications.

18. The method of claim 17 , further comprising determining when to initiate a re-mapping of the cache using one or more Bloom filters.

19. A computer accessible medium having stored thereon computer executable instructions for performing a procedure for allocating a cache space within a multicore processor computing system, the procedure comprising:

creating a compiler determined map for the allocation of memory space within the cache, wherein creating the compiler determined map comprises creating the compiler determined map for the allocation of memory space within the cache based at least in part on characteristics of one or more software applications, threads of execution of which are to be processed on one or more processor cores within the multicore processor computing system; and

partitioning the cache in accordance with the compiler determined map.

20. The computer accessible medium of claim 19 wherein the procedure further comprises reconfiguring the map for the allocation of memory space within the cache dynamically over the course of the execution of the one or more software applications.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: EMPIRE TECHNOLOGY DEVELOPMENT, LLC
To: MERCURY KINGDOM ASSETS LIMITED
Reel/Frame 053378/0053 →
RELEASE OF SECURITY INTEREST Recorded Jun 26, 2020
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 053047/0864 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2011
From: LSTAR TECHNOLOGIES LLC
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 027119/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2011
From: CONTE, THOMAS M., MR.; WOLFE, ANDREW, MR.
To: LSTAR TECHNOLOGIES LLC
Reel/Frame 026531/0009 →