IP Library › Granted Patent US 9,141,394
Granted Patent B2
US 9,141,394 · App. 13/552,421 · Granted Sep 22, 2015

Switching between processor cache and random-access memory

Inventor: Premanand Sakarda (Acton, MA)
Assignee: Marvell World Trade Ltd.
G06F9/4401G06F2212/2515
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,141,394
App. No.
13/552,421
Filed
Jul 18, 2012
Granted
Sep 22, 2015
Kind
B2
Art Unit
2116
USPC
713/2
Abstract

The present disclosure describes techniques and apparatuses for switching between processor cache and random-access memory. In some aspects, the techniques and apparatuses are able to reduce die size of application-specific components by forgoing dedicated random-access memory (RAM). Instead of using dedicated RAM, a memory having a cache configuration is reconfigured to a RAM configuration during operations of the application-specific component and then, when the operations are complete, the memory is configured back to the cache configuration. Because many application-specific components already include memory having the cache configuration, reconfiguring this memory rather than including a dedicated RAM reduces die size for the application component.

Claims (72)

1. A System-on-Chip (SoC) comprising:

a switchable memory configured to switch between a second-level (L2) processor cache configuration and a static random-access memory (SRAM) configuration; and

a controller configured to:

dynamically switch, responsive to a power-down event or a power-on event, the switchable memory from the L2 cache configuration to the SRAM configuration by:

disabling the switchable memory as L2 cache by writing to an L2 cache enable bit in a control register;

cleaning the switchable memory;

clearing an SRAM select bit in a configuration register;

invalidating the switchable memory as L2 cache;

waiting for the switchable memory to become idle;

setting the SRAM select bit in the configuration register; and

configuring a bank of the switchable memory for SRAM;

load boot code from a non-volatile memory into the switchable memory while the switchable memory is in the SRAM configuration, the non-volatile memory being a boot read-only memory (ROM) within the SoC that is configured to store the boot code;

execute the boot code from the switchable memory while the switchable memory is in the SRAM configuration effective to boot an operating system of the SoC; and

dynamically switch, responsive to booting the operating system of the SoC, the switchable memory from the SRAM configuration to the L2 cache configuration.

2. The System-on-Chip of claim 1 , wherein the SoC does not include a random access memory dedicated for execution of the boot code.

3. The System-on-Chip of claim 1 , wherein the controller is further configured to dynamically switch the switchable memory from the L2 cache configuration to the SRAM configuration responsive to the power-down event and prior to the power-on event, the power-down event being a hibernation or suspend mode, the power-on event being a reset or cold boot.

4. The System-on-Chip of claim 1 , wherein the controller is further configured to dynamically switch the switchable memory from the L2 cache configuration to the SRAM configuration responsive to the power-on event, the power-on event being a reset from a hibernation mode or a suspend mode.

5. The System-on-Chip of claim 1 , wherein executing the boot code is effective to boot the operating system of the SoC from a boot device, the boot device configured to store an operating system image of the operating system.

6. The System-on-Chip of claim 1 , wherein the controller is further configured, after dynamically switching the switchable memory from the SRAM configuration to the L2 cache configuration, to use or enable use of the switchable memory while the switchable memory is in the L2 cache configuration.

7. The System-on-Chip of claim 1 , wherein the controller is further configured to dynamically switch the memory from the SRAM configuration to the L2 cache configuration by:

copying data from a bank of the switchable memory to a second memory;

disabling the bank of the switchable memory;

clearing an L2 select bit;

clearing the L2 cache enable bit in a control register; and

invalidating the switchable memory.

8. A method comprising:

responsive to a power-on event, switching a switchable memory from a second-level (L2) processor cache configuration to a static random-access memory (SRAM) configuration by:

disabling the switchable memory as L2 cache by writing to an L2 cache enable bit in a control register;

cleaning the switchable memory;

clearing an SRAM select bit in a configuration register;

invalidating the switchable memory as L2 cache;

waiting for the switchable memory to become idle;

setting the SRAM select bit in the configuration register; and

configuring a bank of the switchable memory for (SRAM);

loading boot code from a non-volatile memory to the switchable memory configured to the SRAM configuration, the non-volatile memory being a boot read-only memory (ROM) that is internal to a System-on-Chip within which the switchable memory is integrated and that is configured to store the boot code;

executing a first portion of the boot code from the switchable memory effective to detect and configure a boot device having an operating system image;

executing a second portion of the boot code from the switchable memory effective to boot the operating system image from the boot device; and

after booting the operating system image from the boot device, switching the switchable memory from the SRAM configuration to the processor cache configuration by:

copying data from the bank of the switchable memory to another memory;

disabling the bank of the switchable memory;

clearing an L2 select bit;

clearing the L2 cache enable bit in the control register; and

invalidating the switchable memory.

9. The method of claim 8 , wherein the power-on event is a reset, cold boot, resume from a hibernate mode, or resume from a sleep mode.

10. The method of claim 8 , wherein the other memory is a dynamic RAM (DRAM) or flash memory external to a System-on-Chip within which the switchable memory is integrated.

11. The method of claim 8 , wherein the method is performed by an application specific integrated-circuit (ASIC), a System-on-Chip (SoC), an application processor, or a cellular processor.

12. The method of claim 8 , wherein the boot device includes flash memory and executing the second portion of the boot code from the switchable memory is effective to boot the operating system image from the boot device using a flash controller.

13. The method of claim 8 further comprising:

prior to booting the operating system image, executing another portion of the boot code from the switchable memory effective to authenticate the operating system image as a trusted operating system image; and

responsive to a failure to authenticate the operating system image, preventing the operating system image from booting.

14. The method of claim 8 further comprising:

prior to booting the operating system image, executing another portion of the boot code from the switchable memory effective to authenticate the operating system image as a trusted operating system image; and

responsive to a failure to authenticate the operating system image, providing an indication of the failed authentication to a user or a security policy manager.

15. A controller configured to:

dynamically switch, responsive to a power-down event or a power-on event, a switchable memory from a second-level (L2) processor cache configuration to a static random-access memory (SRAM) configuration;

load boot code from a non-volatile memory into the switchable memory while the switchable memory is in the SRAM configuration, the non-volatile memory being a boot read-only memory (ROM) that is internal to a System-on-Chip within which the switchable memory is integrated and that is configured to store the boot code;

execute the boot code from the switchable memory while the switchable memory is in the SRAM configuration effective to boot an operating system; and

dynamically switch, responsive to booting the operating system, the switchable memory from the SRAM configuration to the L2cache configuration by:

copying data from a bank of the switchable memory to another memory;

disabling the bank of the switchable memory:

clearing an L2 select bit;

clearing an L2 cache enable bit in a control register; and

invalidating the switchable memory.

16. The controller of claim 15 , wherein the controller is embodied as firmware or logic circuitry within a device having the switchable memory.

17. The controller of claim 15 , wherein the controller dynamically switches the switchable memory from the L2 processor cache configuration to the SRAM configuration by:

disabling the switchable memory as L2 cache by writing to the L2cache enable bit in the control register;

cleaning the switchable memory;

clearing an SRAM select bit in a configuration register;

invalidating the switchable memory as L2 cache;

waiting for the switchable memory to become idle;

setting the SRAM select bit in the configuration register; and

configuring a bank of the switchable memory for SRAM.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2013
From: SAKARDA, PREMANAND
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 030265/0820 →
LICENSE Recorded Apr 23, 2013
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 030266/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2013
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 030265/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2013
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD
Reel/Frame 030266/0090 →
Continuity (2)
Provisional Application 61513443 · Jul 29, 2011
Related Publication 20130031346A1 · Jan 31, 2013