IP Library › Granted Patent US 11,797,456
Granted Patent B2
US 11,797,456 · App. 17/704,909 · Granted Oct 24, 2023

Systems and methods for coordinating persistent cache flushing

Inventor: Benjamin John Fuller (Concord, MA)
Assignee: Oracle International Corporation
G06F12/0891G06F1/32G06F12/0804G06F12/0833G06F13/1668G06F2212/60
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 11,797,456
App. No.
17/704,909
Granted
Oct 24, 2023
Kind
B2
Abstract

Techniques described herein provide a handshake mechanism and protocol for notifying an operating system whether system hardware supports persistent cache flushing. System firmware may determine whether the hardware is capable of supporting a full flush of processor caches and volatile memory buffers in the event of a power outage or asynchronous reset. If the hardware is capable, then persistent cache flushing may be selectively enabled and advertised to the operating system. Once persistent cache flushing is enabled, the operating system and applications may treat data committed to volatile processor caches as persistent. If disabled or not supported by system hardware, then the platform may not advertise support for persistent cache flushing to the operating system.

Claims (29)

1. A method comprising:

determining that a configuration option for a computing system has been selected to enable a first operating mode where data stored in volatile processor caches are part of a persistent memory state;

determining, by the computing system, whether hardware components of the computing system are capable of supporting persistent cache flushing, wherein firmware executing on the computing system is configured to not advertise support for the first operating mode to an operating system if the hardware components of the computing device are not capable of supporting persistent cache flushing; and

responsive to determining that the first operating mode is enabled and the hardware components are capable of supporting persistent cache flushing configuring one or more components of the computing device to perform persistent cache flush operations when power disruption events or power transition requests are detected.

2. The method of claim 1 , wherein determining whether hardware components support persistent cache flushing comprises determining whether a power supply unit in the computing device supports a programmable threshold correlated with energy stored in the power supply.

3. The method of claim 1 , wherein determining whether hardware components support persistent cache flushing comprises determining whether a battery backup unit contains sufficient energy capacity to support a persistent cache flush operation.

4. The method of claim 1 , wherein configuring the one or more components to perform persistent cache flushing comprises programming a voltage threshold based on the energy required to complete a cache flush operation.

5. The method of claim 1 , wherein configuring the one or more components to perform persistent cache flushing comprises configuring a GPIO pin such that an interrupt triggers a cache flush operation of data stored in volatile processor caches.

6. The method of claim 1 , further comprising: notifying the operating system responsive to determining that the hardware components support persistent cache flushing.

7. The method of claim 1 , wherein system firmware further presents a second option to select a second operating mode where data stored in volatile processor caches are not part of the persistent memory state.

8. The method of claim 1 , wherein the one or more components are initially in a default configuration that does not enable persistent cache flushing when power disruption events are detected.

9. The method of claim 1 , wherein the first operating mode is enabled responsive to a user selecting a configuration option to enable persistent cache flushing.

10. One or more non-transitory computer-readable media storing instruction which, when executed by one or more hardware processors cause:

determining that a configuration option for a computing system has been selected to enable a first operating mode where data stored in volatile processor caches are part of a persistent memory state;

determining, by the computing system, whether hardware components of the computing system are capable of supporting persistent cache flushing, wherein firmware executing on the computing system is configured to not advertise support for the first operating mode to an operating system if the hardware components of the computing device are not capable of supporting persistent cache flushing; and

responsive to determining that the first operating mode is enabled and the hardware components are capable of supporting persistent cache flushing configuring one or more components of the computing device to perform persistent cache flush operations when power disruption events or power transition requests are detected.

11. The media of claim 10 , wherein determining whether hardware components support persistent cache flushing comprises determining whether a power supply unit in the computing device supports a programmable threshold correlated with energy stored in the power supply.

12. The media of claim 10 , wherein determining whether hardware components support persistent cache flushing comprises determining whether a battery backup unit contains sufficient energy capacity to support a persistent cache flush operation.

13. The media of claim 10 , wherein configuring the one or more components to perform persistent cache flushing comprises programming a voltage threshold based on the energy required to complete a cache flush operation.

14. The media of claim 10 , wherein configuring the one or more components to perform persistent cache flushing comprises configuring a GPIO pin such that an interrupt triggers a cache flush operation of data stored in volatile processor caches.

15. The media of claim 10 , further comprising: notifying the operating system responsive to determining that the hardware components support persistent cache flushing.

16. The media of claim 10 , wherein system firmware further presents a second option to select a second operating mode where data stored in volatile processor caches are not part of the persistent memory state.

17. The media of claim 10 , wherein the one or more components are initially in a default configuration that does not enable persistent cache flushing when power disruption events are detected.

18. A system comprising:

means for determining that a configuration option for a computing system has been selected to enable a first operating mode where data stored in volatile processor caches are part of a persistent memory state;

means for determining whether hardware components of the computing system are capable of supporting persistent cache flushing, wherein firmware executing on the computing system is configured to not advertise support for the first operating mode to an operating system if the hardware components of the computing device are not capable of supporting persistent cache flushing; and

means for responsive to determining that the first operating mode is enabled and the hardware components are capable of supporting persistent cache flushing configuring one or more components of the computing device to perform persistent cache flush operations when power disruption events or power transition requests are detected.

19. The system of claim 18 , wherein means for determining whether hardware components support persistent cache flushing comprise means for determining whether a power supply unit in the computing device supports a programmable threshold correlated with energy stored in the power supply.

20. The system of claim 18 , wherein means for determining whether hardware components support persistent cache flushing comprise means for determining whether a battery backup unit contains sufficient energy capacity to support a persistent cache flush operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2022
From: FULLER, BENJAMIN JOHN
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 059411/0754 →
Continuity (2)
Provisional Application 63168974 · Mar 31, 2021
Related Publication 20220318154A1 · Oct 6, 2022