IP Library Granted Patent US 7,650,465
Granted Patent B2
US 7,650,465 · App. 11/505,865 · Granted Jan 19, 2010

Micro tag array having way selection bits for reducing data cache access power

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 7,650,465
App. No.
11/505,865
Granted
Jan 19, 2010
Kind
B2
Abstract

Processors and systems having a micro tag array that reduces data cache access power. The processors and systems include a cache that has a plurality of datarams, a processor pipeline register, and a micro tag array. The micro tag array is coupled to the cache and the processor pipeline register. The micro tag array stores base address data bits or base register data bits, offset data bits, a carry bit, and way selection data bits. When a LOAD or a STORE instruction is fetched, at least a portion of the base address and at least a portion of the offset of the instruction are compared to data stored in the micro tag array. If a micro tag array hit occurs, the micro tag array generates a cache dataram enable signal. This signal enables only a single dataram of the cache.

Claims (69)

1. A processor that implements load and store instructions, comprising:

a cache that includes a plurality of datarams;

a processor pipeline register that stores base address data bits and offset data bits; and

a micro tag array, coupled to the cache and the processor pipeline register, wherein the micro tag array comprises:

a base register configured to store base address data bits,

an offset register configured to store offset data bits,

a carry bit register configured to store a first carry bit, and

a way selection register configured to store way selection data bits and wherein the micro tag array is configured to invalidate, upon a tagram write, an array entry whose way selection data bits correspond to an intended refill way of the cache, and

if first selected base address data bits stored in the processor pipeline register match base address data bits stored in the base register of the micro tag array, and

if first selected offset data bits stored in the processor pipeline register match offset data bits stored in the offset register of the micro tag array, and

if a second carry bit formed by an addition of second selected base address data bits stored in the processor pipeline register and second selected offset data bits stored in the processor pipeline register match the first carry,

the micro tag array outputs an enable signal that enables a first dataram of the cache specified by way selection data bits stored in the way selection register of the micro tag array.

2. The processor of claim 1 , wherein the first selected base address data bits consist of a subset of the base address data bits stored in the processor pipeline register.

3. The processor of claim 1 , wherein the first selected offset data bits consist of a subset of the offset data bits stored in the processor pipeline register.

4. The processor of claim 1 , wherein the second selected base address data bits consist of a subset of the base address data bits stored in the processor pipeline register, and the second selected offset data bits consist of a subset of the offset data bits stored in the processor pipeline register.

5. The processor of claim 1 , wherein the micro tag array outputs an enable signal that enables a tagram of the cache if the first selected offset data bits stored in the processor pipeline register match offset data bits stored in the micro tag array.

6. The processor of claim 1 , wherein the micro tag array includes a plurality of array entries, each array entry storing base address data bits, offset data bits, a carry bit, and way selection data bits.

7. The processor of claim 6 , wherein data stored in the micro tag array is replaced according to a least-recently-filled replacement scheme.

8. A processor that implements load and store instructions, comprising:

a cache that includes a plurality of datarams;

a processor pipeline register that stores base register data bits, base address data bits, and offset data bits; and

a micro tag array, coupled to the cache and the processor pipeline register, wherein the micro tag array comprises:

a base register configured to store base address data bits,

an offset register configured to store offset data bits,

a carry register configured to store a first carry bit,

a way selection register configured to store way selection data bits and wherein the micro tag array is configured to invalidate, upon a tagram write, an array entry whose way selection data bits correspond to an intended refill way of the cache, and

if first selected base register data bits stored in the processor pipeline register match base register data bits stored in the base register of the micro tag array, and

if first selected offset data bits stored in the processor pipeline register match offset data bits stored in the offset register of the micro tag array, and

if a second carry bit formed by an addition of first selected base address data bits stored in the processor pipeline register and second selected offset data bits stored in the processor pipeline register match the first carry bit,

the micro tag array outputs an enable signal that enables a first dataram of the cache specified by way selection data bits stored in the way selection register of the micro tag array.

9. The processor of claim 8 , wherein the first selected offset data bits consist of a subset of the offset data bits stored in the processor pipeline register.

10. The processor of claim 8 , wherein the second selected offset data bits consist of a subset of the offset data bits stored in the processor pipeline register.

11. The processor of claim 8 , wherein the micro tag array outputs an enable signal that enables a tagram of the cache if the first selected offset data bits stored in the processor pipeline register match offset data bits stored in the micro tag array.

12. The processor of claim 8 , wherein the micro tag array includes a plurality of array entries, each array entry storing base address data bits, offset data bits, a carry bit, and way selection data bits.

13. The processor of claim 12 , wherein data stored in the micro tag array is replaced according to a least-recently-filled replacement scheme.

14. A system, comprising:

a cache that includes a plurality of datarams;

a processor pipeline register that stores first data bits and second data bits; and

a micro tag array, coupled to the cache and the processor pipeline register, wherein the micro tag array comprises:

a first register configured to store first data bits,

a second register configured to store second data bits,

a carry register configured to store a first carry bit,

a way selection register configured to store way selection data bits and wherein the micro tag array is configured to invalidate, upon a tagram write, an array entry whose way selection data bits correspond to an intended refill way of the cache, and

if selected first data bits stored in the processor pipeline register match a first set of data bits stored in the first register of the micro tag array, and

if selected second data bits stored in the processor pipeline register match a second set of data bits stored in the second register of the micro tag array, and

if a second carry bit formed by an addition of a first subset of data bits stored in the processor pipeline register and a second subset of data bits stored in the processor pipeline register match the first carry bit,

the micro tag array outputs an enable signal that enables a first dataram of the cache specified by way selection data bits stored in the way selection register of the micro tag array.

15. The system of claim 14 , wherein the first data bits are base address data bits, and the second data bits are offset data bits.

16. The system of claim 14 , wherein the first data bits are base register data bits, and the second data bits are offset data bits.

17. The system of claim 14 , wherein the micro tag array includes a plurality of array entries, each array entry storing base address data bits, offset data bits, a carry bit, and way selection data bits.

18. The system of claim 17 , wherein data stored in the micro tag array is replaced according to a least-recently-filled replacement scheme.

19. A computer usable medium comprising a processor embodied in software, the processor comprising:

a cache that includes a plurality of datarams;

a processor pipeline register that stores first data bits and second data bits; and

a micro tag array, coupled to the cache and the processor pipeline register, wherein the micro tag array comprises:

a first register configured to store first data bits,

a second register configured to store second data bits,

a carry register configured to store a first carry bit,

a way selection register configured to store way selection data bits and wherein the micro tag array is configured to invalidate, upon a tagram write, an array entry whose way selection data bits correspond to an intended refill way of the cache, and

if selected first data bits stored in the processor pipeline register match a first set of data bits stored in the first register of the micro tag array, and

if selected second data bits stored in the processor pipeline register match a second set of data bits stored in the second register of the micro tag array, and

if a second carry bit formed by an addition of a first subset of data bits stored in the processor pipeline register and a second subset of data bits stored in the processor pipeline register match the first carry bit,

the micro tag array outputs an enable signal that enables a first dataram of the cache specified by way selection data bits stored in the way selection register of the micro tag array.

20. The computer usable medium of claim 19 , wherein the first data bits are base address data bits, and the second data bits are offset data bits.

21. The computer usable medium of claim 19 , wherein the first data bits are base register data bits, and the second data bits are offset data bits.

22. The computer usable medium of claim 19 , wherein the micro tag array includes a plurality of array entries, each array entry storing base address data bits, offset data bits, a carry bit, and way selection data bits.

23. The computer usable medium of claim 22 , wherein data stored in the micro tag array is replaced according to a last-recent-filled replacement scheme.

24. The computer usable medium of claim 19 , wherein the processor is embodied in hardware description language software.

25. The computer usable medium of claim 24 , wherein the processor is embodied in one of Verilog hardware description language software and VHDL hardware description language software.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2014
From: BRIDGE CROSSING, LLC
To: ARM FINANCE OVERSEAS LIMITED
Reel/Frame 033074/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2013
From: MIPS TECHNOLOGIES, INC.
To: BRIDGE CROSSING, LLC
Reel/Frame 030202/0440 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2008
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 021985/0015 →
SECURITY AGREEMENT Recorded Aug 24, 2007
From: MIPS TECHNOLOGIES, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 019744/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2006
From: KNOTH, MATTHIAS; KINTER, RYAN C.
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 018209/0543 →