Out-of-band Cache Recovery via BMC Debug Port

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NVDIMM-SWs face data integrity issues due to incomplete cache flush during catastrophic main processor failures, leading to potential data loss when the processor hangs due to high temperatures or software conflicts.

Innovation Solution

An out-of-band data recovery scheme is implemented using a debug port of the main processor, where a Baseboard Management Controller (BMC) communicates with the uncore to effect a processor cache flush and self-refresh, ensuring data persistence and logging catastrophic failures for recovery during system resets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the main processor is used to flush cache data to main memory during normal operation, then data throughput is maximized, but data integrity is compromised when the processor experiences catastrophic failures

Engineering Contradiction:
Improvedata throughputVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The debug port serves as an intermediary communication channel between the BMC and the processor cache. This separate communication path allows the BMC to issue flush commands and receive status information without relying on the main processor's instruction execution path, thereby maintaining data integrity even when the processor hangs or crashes

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service data recovery by allowing the BMC to autonomously detect processor failures through heartbeat monitoring and automatically initiate cache flush operations via the debug port without requiring main processor intervention. This self-service mechanism ensures data integrity during catastrophic failures

Inventive Principle:
Principle #25Self-service

2Ease of operation

If the processor cache is re-initialized during system reset, then system recovery is achieved, but data in the cache is lost

Engineering Contradiction:
Improvesystem recoveryVSAvoidcache data loss
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The BMC performs preliminary actions by monitoring processor health through heartbeat signals and detecting catastrophic failures before they result in data loss. Upon detecting a failure, the BMC initiates a flush command through the debug port to transfer cache data to main memory before the system reset occurs, preventing data loss during the subsequent cache re-initialization

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the BMC monitors processor status through heartbeat signals and receives flush status information from the debug port. This feedback loop enables the BMC to make informed decisions about when to initiate flush operations and when to trigger system resets, balancing system recovery with data preservation

Inventive Principle:
Principle #23Feedback

3Speed

If the main processor executes instructions continuously, then processing speed is maintained, but the system becomes vulnerable to hangs due to high temperatures or software conflicts

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem stability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The debug port acts as an intermediary control channel that allows the BMC to communicate with the processor independently of the main instruction execution path. This separate channel enables the BMC to issue flush commands and monitor processor health without being affected by processor hangs, maintaining system stability while preserving processing speed during normal operation

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The BMC performs self-service monitoring of processor health through heartbeat signals and automatically detects catastrophic failures. This self-service mechanism allows the system to maintain high processing speed during normal operation while having an autonomous safety mechanism ready to intervene when processor hangs or crashes occur

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10152393B2Out-of-band data recovery in computing systems
Publication Date: 2018.12.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10152393B2 patent drawing
  • US10152393B2 patent drawing
  • US10152393B2 patent drawing

AI summary

Embodiments of recovering data in computing devices and associated methods of operations are disclosed therein. In one embodiment, a method includes receiving a failure notification indicating that a core of a main processor is experiencing a catastrophic failure causing the core unable to execute instructions. In response, a flush command can be issued to an uncore of the processor via a debug port instructing the uncore to copy any data currently residing in a processor cache of the main processor to a volatile memory. The method further includes issuing a self-refresh command causing the volatile memory to enter a self-refresh mode in which the data copied from the processor cache is maintained and unmodifiable by the main processor during a reset of the main processor.