IP Library Granted Patent US 9,645,825
Granted Patent B2
US 9,645,825 · App. 14/597,560 · Granted May 9, 2017

Instruction cache with access locking

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 9,645,825
App. No.
14/597,560
Granted
May 9, 2017
Kind
B2
Abstract

An instruction cache includes instruction storage, a plurality of lock indicators, and control logic. The instruction storage includes a plurality of cache blocks to store instructions. Each of the lock indicators is associated with one of the cache blocks so as to control access to the associated cache block. The control logic is configured to: set to a write disable state, on access of a given one of the cache blocks, a given one of the lock indictors associated with the given one of the cache blocks; to determine whether a given instruction is stored in the instruction storage; and to deny write access to the given one of the cache blocks that is assigned to store the given instruction based on the given one of the block indicators being set to the write disable state.

Claims (39)

1. A system, comprising:

a processor configured to fetch instructions for execution; and

an instruction cache configured to store instructions for execution, the instruction cache comprising:

instruction storage comprising a plurality of cache blocks to store the instructions;

a plurality of lock indicators, each of the lock indicators assigned to control access to one of the cache blocks; and

control logic configured to:

responsive to access of a given one of the cache blocks, set to a write disable state a given one of the lock indicators assigned to control access to the given one of the cache blocks, wherein the access of the given one of the cache blocks comprises a write of an instruction to the given one of the cache blocks or a read of an instruction from the given one of the cache blocks; and

on determination that a given instruction fetched by the processor is not stored in the instruction storage, deny write access to the given one of the cache blocks based on the given one of the lock indicators being set to the write disable state, wherein the given one of the cache blocks is associated with the given instruction.

2. The system of claim 1 , wherein the control logic is configured to set each of the plurality of lock indicators to the write disable state as part of initialization of the instruction cache.

3. The system of claim 2 , wherein the control logic is configured to allow the given instruction to be written to the given one of the cache blocks only if the given one of the lock indicators is reset to a write enable state.

4. The system of claim 1 , wherein the control logic is configured to allow only instructions that are part of an instruction loop to be stored in the instruction storage.

5. The system of claim 1 , wherein the control logic is configured to reset all of the lock indicators to a write enable state based on execution of a loop branch instruction by the processor.

6. The system of claim 1 , wherein the control logic is configured to reset at least a portion of the lock indicators to a write enable state based on recognition, by the processor, of an interrupt service request.

7. The system of claim 1 , wherein the control logic is configured to reset at least a portion of the lock indicators to a write enable state based on recognition of execution of a subroutine call by the processor.

8. An instruction cache, comprising:

instruction storage, comprising a plurality of cache blocks to store instructions;

a plurality of lock indicators, each of the lock indicators associated with one of the cache blocks so as to control access to the associated cache block; and

control logic configured to:

set to a write disable state, responsive to access of a given one of the cache blocks, a given one of the lock indictors associated with the given one of the cache blocks, wherein the access of the given one of the cache blocks comprises a write of an instruction to the given one of the cache blocks or a read of an instruction from the given one of the cache blocks;

determine whether a given instruction is stored in the instruction storage; and

deny write access to the given one of the cache blocks that is assigned to store the given instruction based on the given one of the lock indicators being set to the write disable state.

9. The instruction cache of claim 8 , wherein the control logic is configured to set each lock indicator to the write disable state as part of initialization of the instruction cache.

10. The instruction cache of claim 9 , wherein the control logic is configured to allow the given instruction to be written to the given one of the cache blocks only if the given one of the lock indicators is reset to a write enable state.

11. The instruction cache of claim 8 , wherein the control logic is configured to allow only instructions that are part of an instruction loop to be stored in the instruction storage.

12. The instruction cache of claim 8 , wherein the control logic is configured to reset all of the lock indicators to a write enable state based on execution of a loop branch instruction by a device containing the instruction cache.

13. The instruction cache of claim 8 , wherein the control logic is configured to reset at least a portion of the lock indicators to a write enable state based on receipt of an interrupt service request by a device containing the instruction cache.

14. The instruction cache of claim 8 , wherein the control logic is configured to reset at least a portion of the lock indicators to a write enable state based on execution of a subroutine call by a device containing the instruction cache.

15. A method, comprising:

fetching, by a processor, instructions for execution;

storing the instructions in cache blocks of an instruction cache;

controlling access to the cache blocks via lock indicators, wherein each of the lock indicators controls access to one of the cache blocks;

setting to a write disable state, responsive to access of a given one of the cache blocks, a given one of the lock indictors associated with the given one of the cache blocks, wherein the access of the given one of the cache blocks comprises a write of an instruction to the given one of the cache blocks or a read of an instruction from the given one of the cache blocks;

determining whether a given instruction is stored in the instruction cache;

denying write access to the given one of the cache blocks that is assigned to store the given instruction based on the given one of the lock indicators being set to the write disable state.

16. The method of claim 15 , further comprising setting each of the plurality of lock indicators to the write disable state as part of initialization of the instruction cache.

17. The method of claim 15 , further comprising writing the given instruction to the given one of the cache blocks only if the given one of the lock indicators is reset to a write enable state.

18. The method of claim 15 , further comprising storing only instructions that are part of an instruction loop in the instruction cache.

19. The method of claim 15 , further comprising resetting all of the lock indicators to a write enable state based on execution of a loop branch instruction.

20. The method of claim 15 , further comprising resetting at least a portion of the lock indicators to a write enable state based on receipt of an interrupt service request or execution of a subroutine call.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2021
From: TEXAS INSTRUMENTS DEUTSCHLAND GMBH
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 055314/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: WIENCKE, CHRISTIAN; GRONING, MAX; REICHEL, NORBERT
To: TEXAS INSTRUMENTS DEUTSCHLAND GMBH
Reel/Frame 034725/0750 →