IP Library Granted Patent US 7,941,585
Granted Patent B2
US 7,941,585 · App. 11/015,343 · Granted May 10, 2011

Local scratchpad and data caching system

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,941,585
App. No.
11/015,343
Granted
May 10, 2011
Kind
B2
Abstract

A RISC-type processor includes a main register file and a data cache. The data cache can be partitioned to include a local memory, the size of which can be dynamically changed on a cache block basis while the processor is executing instructions that use the main register file. The local memory can emulate as an additional register file to the processor and can reside at a virtual address. The local memory can be further partitioned for prefetching data from a non-cacheable address to be stored/loaded into the main register file.

Claims (32)

1. A RISC processor, comprising:

a main register file that is accessed using instructions described by instruction mnemonics; and

a data cache, the data cache partitioned to include a local memory, the local memory residing at a virtual address within the data cache, the size of the local memory dynamically changed on a cache block basis while the processor is executing instructions that use the main register file;

wherein the local memory emulates as an additional register file to the processor and data is moved between the main register file and the additional register file using a single instruction described by the same instruction mnemonics;

wherein a single load/store instruction is used to move data between the local memory and the main register file.

2. The processor of claim 1 , wherein a load/store instruction has access to the virtual address of the local memory when the load/store instruction's effective virtual address matches the virtual address of the local memory.

3. The processor of claim 1 , wherein the single instruction utilizes a register in the main register file which gives a zero base address and the RISC processor has register base plus 16 -bit signed constant offset addressing.

4. The processor of claim 1 , wherein a load instruction uses r 0 in the main register file to store a base address.

5. The processor of claim 1 , wherein a data width for a data transfer to or from the local memory can be selected from a group consisting of 8-bits (byte), 16 bits (half-word), 32-bits (word), or 64-bits (double-word).

6. The processor of claim 5 , wherein the data is signed or unsigned.

7. The processor of claim 1 , wherein the local memory is further partitioned for prefetching data from a non-cacheable address to be stored/loaded into a main register file.

8. The processor of claim 7 , wherein the prefetched data includes multiple outstanding loads awaiting to be executed is loaded into the main register file.

9. The processor of claim 7 , wherein a delay instruction is used to guarantee the prefetched data is deposited into the local memory.

10. The processor of claim 1 , further including a plurality of processors.

11. The processor of claim 10 , wherein the plurality of processors comprise a network processor.

12. A method of partitioning a data cache, comprising:

accessing a main register file using instructions described by instruction mnemonics;

dynamically partitioning the data cache to include a local memory, the local memory residing at a virtual address within the data cache, the size of which can be changed on a cache block basis; and

wherein the local memory emulates as an additional register file to a processor and data is moved between the main register file and the additional register file using a single instruction described by the same instruction mnemonics;

wherein partitioning includes uniquely choosing an address to allow for a single load/store instruction used to move data between the local memory address and a main register file address.

13. The method of claim 12 , wherein access to a virtual address of the local memory is granted when a load/store instruction's effective virtual address matches the virtual address of the local memory.

14. The method of claim 12 , wherein the chosen address gives a value of zero and a negative offset.

15. The method of claim 12 , wherein a data width for a data transfer to or from the local memory can be selected from a group consisting of 8-bits (byte), 16 bits (half-word), 32-bits (word), or 64-bits (double-word).

16. The method of claim 15 , wherein the data can be signed or unsigned.

17. The method of claim 12 , further including partitioning the local memory for prefetching data from a non-cacheable address to be stored/loaded into a main register file.

18. The method of claim 17 , wherein the prefetched data includes multiple outstanding loads awaiting to be executed loaded into the main register file.

19. The method of claim 17 , wherein a delay instruction is used to guarantee the prefetched data is deposited into the local memory.

20. A partitioned data cache, comprising:

means for accessing a main register file using instructions described by instruction mnemonics;

means for dynamically partitioning a local memory of the data cache on a cache block basis, the local memory residing at a virtual address within the data cache; and

wherein the local memory emulates as an additional register file to a processor and data is moved between the main register file and the additional register file using a single instruction described by the same instruction mnemonics;

wherein a single load/store instruction is used to move data between the local memory and the main register file.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
MERGER Recorded Jul 21, 2011
From: CAVIUM NETWORKS, INC.
To: CAVIUM, INC.
Reel/Frame 026632/0672 →
MERGER Recorded Mar 14, 2007
From: CAVIUM NETWORKS, A CALIFORNIA CORPORATION
To: CAVIUM NETWORKS, INC., A DELAWARE CORPORATION
Reel/Frame 019014/0174 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2005
From: ASHER, DAVID H.; CARLSON, DAVID A.; KESSLER, RICHARD E.
To: CAVIUM NETWORKS
Reel/Frame 017158/0111 →