IP Library Granted Patent US 8,527,713
Granted Patent B2
US 8,527,713 · App. 11/343,765 · Granted Sep 3, 2013

Cache locking without interference from normal allocations

Inventors: Victor Roberts Augsburg (Cary, NC); James Norris Dieffenderfer (Apex, NC); Jeffrey Todd Bridges (Raleigh, NC); Thomas Andrew Sartorius (Raleigh, NC)
Assignee: QUALCOMM Incorporated
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,527,713
App. No.
11/343,765
Granted
Sep 3, 2013
Kind
B2
Abstract

A Block Normal Cache Allocation (BNCA) mode is defined for a processor. In BNCA mode, cache entries may only be allocated by predetermined instructions. Normal memory access instructions (for example, as part of interrupt code) may execute and will retrieve data from main memory in the event of a cache miss; however, these instructions are not allowed to allocate entries in the cache. Only the predetermined instructions (for example, those used to establish locked cache entries) may allocate entries in the cache. When the locked entries are established, the processor exits BNCA mode, and any memory access instruction may allocate cache entries. BNCA mode may be indicated by setting a bit in a configuration register.

Claims (35)

1. A method of restricting allocations in a cache, comprising:

entering a restricted mode and allowing only a predetermined set of one or more types of instructions to allocate cache entries in the restricted mode; and

exiting the restricted mode to enter a non-restricted mode and allowing any memory access instruction to allocate cache entries in the non-restricted mode.

2. The method of claim 1 wherein the restricted mode is entered by setting a Block Normal Cache Allocation (BNCA) indicator, and exited by resetting the BNCA indicator.

3. The method of claim 2 wherein the BNCA indicator is a bit in a configuration register.

4. The method of claim 1 wherein the predetermined set of one or more types of instructions includes types of instructions operative to load data into the cache and lock the cache entry against replacement.

5. The method of claim 4 wherein separate types of instructions are operative to load and lock instruction cache and data cache entries.

6. The method of claim 1 wherein the restricted and non-restricted modes are separately applicable to a data cache and an instruction cache.

7. The method of claim 1 wherein the cache is divided into two or more banks, and wherein restricted and non-restricted modes are separately applicable to each bank.

8. The method of claim 1 wherein the cache is a set associative cache, and wherein restricted and non-restricted modes are separately applicable to each set.

9. A method of managing a cache, comprising:

entering a restricted mode wherein only one or more predetermined types of instructions may allocate cache entries;

allocating cache entries using the predetermined types of instructions; and

exiting the restricted mode and allocating cache entries for any memory access instruction.

10. The method of claim 9 further comprising, after allocating cache entries using the predetermined types of instructions, locking the allocated cache entries against replacement.

11. The method of claim 9 further comprising:

processing an interrupt received during the restricted mode; and

performing memory accesses for memory access instructions in the interrupt code, without allocating any cache entries for the memory access instructions in the interrupt code.

12. The method of claim 9 wherein entering the restricted mode comprises setting a Block Normal Cache Allocation (BNCA) bit in a configuration register, and wherein exiting the restricted mode comprises clearing the BNCA bit.

13. A processor, comprising:

a cache memory;

a configuration register having a Block Normal Cache Allocation (BNCA) bit; and

a cache controller operative to control the allocation of entries in the cache by memory access instructions, and further operative to disallow said allocation, except for a predetermined set of one or more types of instructions, when the BNCA bit is set.

14. The processor of claim 13 wherein said predetermined set of one or more types of instructions includes locking allocation instructions.

15. The method of claim 1 , wherein each type of instruction is associated with a different type of operation to be performed.

16. The method of claim 15 , wherein the type of operation to be performed is specified by an operation code of the associated instruction.

17. The method of claim 9 , wherein each type of instruction is associated with a different type of operation to be performed.

18. The processor of claim 13 , wherein each type of instruction is associated with a different type of operation to be performed.

19. A processor, comprising:

means for storing cache entries;

means for storing a Block Normal Cache Allocation (BNCA) bit; and

means for controlling the allocation of entries in the means for storing cache entries by memory access instructions; and

means for disallowing said allocation, except for a predetermined set of one or more types of instructions, when the BNCA bit is set.

20. The processor of claim 19 wherein said predetermined set of one or more types of instructions includes locking allocation instructions.

21. The processor of claim 19 , wherein each type of instruction is associated with a different type of operation to be performed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2006
From: AUGSBURG, VICTOR ROBERTS; SARTORIUS, THOMAS ANDREW; DIEFFENDERFER, JAMES NORRIS; BRIDGES, JEFFREY TODD
To: QUALCOMM INCORPORATED
Reel/Frame 017335/0100 →
Continuity (1)
Related Publication 20070180199A1 · Aug 2, 2007