Split-Level History Buffer for CPU Register Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Central processing units (CPUs) face performance issues due to limited memory capacity in history buffers, which can lead to reduced efficiency in managing architected register data and impacting CPU performance.

Innovation Solution

Implementing a split-level history buffer by partitioning it into two portions, where older data is evicted from the register file to the first-level history buffer and results are stored in the second-level history buffer, allowing for increased storage capacity and efficient management of tagged instructions and their results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a single-level history buffer is used to manage architected register data, then the structure is simple, but the memory capacity is limited and CPU performance is impacted

Engineering Contradiction:
Improvememory capacityVSAvoidbuffer structure
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The history buffer is divided into multiple levels (first-level and second-level history buffers) with different capacities and functions. The first-level buffer handles recent instructions while the second-level buffer stores older instructions, segmenting the single buffer into functional portions that collectively provide increased memory capacity without overwhelming complexity in a single structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension to the history buffer structure by organizing data across multiple levels representing different time periods. This dimensional expansion allows the system to store more historical data (increasing quantity) while maintaining manageable complexity through hierarchical organization rather than a single monolithic structure.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If the history buffer capacity is increased to manage more tagged instructions, then CPU performance improves, but the circuit area required increases

Engineering Contradiction:
ImproveCPU performanceVSAvoidcircuit area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

By segmenting the history buffer into multiple levels, the patent achieves increased storage capacity (improving CPU performance) while distributing the circuit area across hierarchical levels. This segmentation allows efficient use of storage resources and reduces the need for a single large buffer that would consume excessive circuit area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second-level history buffer is nested within or associated with the first-level buffer structure, allowing the system to expand capacity by adding nested levels rather than proportionally increasing the primary buffer. This nesting approach enables performance improvement while controlling overall circuit area consumption through efficient spatial utilization.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10241800B2Split-level history buffer in a computer processing unit
Publication Date: 2019.03.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10241800B2 patent drawing
  • US10241800B2 patent drawing
  • US10241800B2 patent drawing

AI summary

A split level history buffer in a central processing unit is provided. A history buffer is partitioned into a first portion and a second portion, wherein the first portion includes a first tagged instruction. A result is generated for the first tagged instruction. A determination whether a second tagged instruction is to be stored in the first portion of the history buffer is made. Responsive to the determination that the second tagged instruction is to be stored in the first portion of the history buffer, the first tagged instruction and the generated result for the first tagged instruction is written to the second portion of the history buffer.