Hardware Flush Assist for Non-Volatile Memory Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current CPU architectures face performance limitations when executing flush operations and synchronization barriers, especially in high-volume usage models like databases operating directly with non-volatile memory, due to small tracker sizes, lack of pipelining, and concurrency optimization.

Innovation Solution

A memory controller architecture assists cache flushing to non-volatile memory by using hardware to pre-flush targeted regions ahead of software-initiated flush instructions, employing speculative snoops and writes to ensure cache coherency and reduce latency, allowing software to operate on mostly clean cache lines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If hardware pre-flush assist is implemented, then cache flush time is reduced, but device complexity increases

Engineering Contradiction:
Improvecache flush timeVSAvoidmemory controller architecture
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The memory controller performs speculative pre-flush operations before software initiates flush instructions. The hardware tracks cache line states and proactively flushes dirty cache lines to non-volatile memory in advance, so that when software flush instructions arrive, the cache lines are already clean, significantly reducing flush time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A hardware tracking structure acts as an intermediary between the cache and non-volatile memory. This tracking mechanism monitors cache line dirty states and coordinates pre-flush operations, mediating the interaction between software flush instructions and hardware memory operations to optimize performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If speculative snoops and pre-flush operations are performed, then data integrity is ensured, but processing overhead increases

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The hardware tracking structure autonomously monitors cache line states and identifies dirty cache lines without requiring software intervention. The system self-manages the pre-flush operations based on tracked state information, ensuring data integrity while minimizing software overhead through automated hardware-based state tracking and coordination.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10489298B2Hardware flush assist
Publication Date: 2019.11.26 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10489298B2 patent drawing
  • US10489298B2 patent drawing
  • US10489298B2 patent drawing

AI summary

An apparatus for assisting a flush of a cache is described herein. The apparatus comprises processing element. The processing element is to probe a cache line at an offset address and write the cache line at the offset address to a non-volatile memory in response to a flush instruction at a first address.