Bank-Based Versioning Cache Circuit for Rollback Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor designs face challenges in efficiently and speculatively executing traces and memory operations while reducing hardware and power consumption, particularly in maintaining memory coherency and handling out-of-order execution of instructions like load and store operations.

Innovation Solution

A circuit is introduced that includes a trace unit and an execution unit, with a memory system partitioned into banks and sub-units for caching and checkpointing, allowing for independent rollback of memory operations and concurrent execution, utilizing a versioning cache to manage speculative modifications and maintain memory order constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single monolithic cache is used for all memory operations, then hardware complexity is reduced, but performance deteriorates due to inability to handle out-of-order execution and speculative modifications efficiently

Engineering Contradiction:
Improveprocessor performanceVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the cache into multiple independent banks (first bank, second bank, third bank, etc.), where each bank handles specific types of memory operations. This segmentation allows the cache to efficiently manage out-of-order execution and speculative modifications without requiring a complete redesign of the entire memory system, thus improving performance while controlling hardware complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a versioning cache circuit as an intermediary between the execution unit and the memory banks. This versioning cache tracks speculative modifications and coordinates rollback operations across multiple banks, enabling efficient handling of out-of-order execution without requiring complex coordination logic in the memory banks themselves.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If speculative execution of traces is enabled, then processor performance improves, but memory coherency maintenance becomes more difficult

Engineering Contradiction:
Improveprocessor performanceVSAvoidmemory coherency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary actions by saving checkpoint data before speculative modifications are made to the cache. When a rollback is needed, the system can restore the cache state from these pre-saved checkpoints, ensuring memory coherency is maintained without requiring complex real-time coordination during speculative execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a rollback mechanism that allows the system to discard speculative modifications when they prove incorrect, and recover by restoring previous valid states from checkpoint data. This enables the processor to execute traces speculatively for performance improvement while maintaining the ability to correct errors and preserve memory coherency.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If independent rollback of memory operations is implemented, then memory coherency is improved, but hardware complexity increases

Engineering Contradiction:
Improvememory coherencyVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the cache into multiple independent banks, each capable of performing rollback operations independently. This segmentation allows memory coherency to be maintained through localized rollback operations without requiring system-wide coordination, reducing the hardware complexity compared to a monolithic approach while still achieving reliable coherency management.

Inventive Principle:
Principle #1Segmentation

4Productivity

If concurrent execution of memory operations is enabled, then processor performance improves, but handling out-of-order execution scenarios becomes more complex

Engineering Contradiction:
Improveprocessor performanceVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the cache into multiple banks that can execute memory operations concurrently and independently. Each bank handles specific operations without interfering with others, enabling concurrent execution for performance improvement while avoiding the complexity of coordinating out-of-order operations through a unified control mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The versioning cache circuit acts as an intermediary that tracks and coordinates concurrent memory operations across multiple banks. It maintains the necessary metadata to manage out-of-order execution scenarios without requiring complex inter-bank communication or coordination logic, thus improving performance while controlling hardware complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8370576B1Cache rollback acceleration via a bank based versioning cache ciruit
Publication Date: 2013.02.05 SUN MICROSYSTEMS INC
  • US8370576B1 patent drawing
  • US8370576B1 patent drawing
  • US8370576B1 patent drawing

AI summary

An embodiment of the present invention includes a circuit for tracking memory operations with trace-based execution. Each trace includes a sequence of operations that includes zero or more of the memory operations. At least some of the active memory operations access the memory in an execution order that is different from the program order. The circuit includes a first memory that caches data accessed by the memory operations. This memory is partitioned into N banks. Checkpoint entries, which are stored in a second memory also partitioned into N banks, are associated with each trace. Each entry refers to a checkpoint location in the first memory. A sub-circuit receives rollback requests and responds by overwriting checkpoint locations. Each of the N memory units consisting of a bank in the first memory and the corresponding bank in the second memory may be rolled back independently and concurrently with other memory units.