Rotating Alias Registers for Software Pipelining

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory disambiguation techniques in compiler optimization struggle to effectively handle aliased memory operations, leading to errors and inefficiencies in instruction-level parallelism, particularly in software pipelining, where overlapping memory accesses can result in incorrect data speculation and alias detection.

Innovation Solution

The use of rotating alias registers, which are dynamically allocated and compared to detect memory aliases at runtime, allowing for efficient detection and handling of aliased operations through a rotating register file and alias detection logic, enabling recovery and reordering of operations to eliminate aliases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory operations are scheduled out of order to improve instruction-level parallelism, then productivity is improved, but reliability deteriorates due to incorrect data speculation and alias detection errors

Engineering Contradiction:
Improveinstruction-level parallelismVSAvoidalias detection accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Alias registers are introduced as intermediary structures to mediate between out-of-order memory operations and the alias detection mechanism. These registers temporarily hold address information from memory operations, enabling the system to detect aliases even when operations are executed out of order. The alias register file acts as a buffer that decouples the timing of operation execution from alias checking, allowing productive reordering while maintaining detection accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If software pipelining is used to overlap execution of successive iterations, then productivity is improved, but device complexity increases due to additional alias detection mechanisms

Engineering Contradiction:
Improveloop execution efficiencyVSAvoidalias detection hardware
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The alias detection mechanism operates periodically in synchronization with the software pipeline iterations. Alias registers are allocated and checked at regular intervals corresponding to iteration boundaries, rather than continuously. This periodic operation allows the complex alias detection functionality to be implemented in a structured, rhythm-based manner that integrates naturally with the pipelined execution model, reducing the burden on the detection hardware.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The alias detection mechanism is segmented into multiple alias registers organized in a file structure, where each register handles specific address ranges or specific iterations. This segmentation divides the complex task of detecting all aliases across all iterations into smaller, manageable units that can be processed independently and in parallel, reducing the complexity burden on any single detection component.

Inventive Principle:
Principle #1Segmentation

3Reliability

If alias registers are used to detect memory aliases at runtime, then reliability is improved, but device complexity increases due to additional registers and comparison logic

Engineering Contradiction:
Improvealias detection accuracyVSAvoidregister file and comparison circuitry
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The alias registers serve multiple functions: they store address information for alias detection, buffer values between production and consumption operations, and enable both in-order and out-of-order execution tracking. This multi-functionality means that a single register structure accomplishes several tasks that would otherwise require separate hardware components, thereby improving reliability without proportionally increasing complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2875427B1Allocation of alias registers in a pipelined schedule
Publication Date: 2020.08.26 INTEL CORP
  • EP2875427B1 patent drawingFigure 1
  • EP2875427B1 patent drawingFigure 2A~2C
  • EP2875427B1 patent drawingFigure 3

AI summary

In an embodiment, a system includes a processor including one or more cores and a plurality of alias registers to store memory range information associated with a plurality of operations of a loop. The memory range information references one or more memory locations within a memory. The system also includes register assignment means for assigning each of the alias registers to a corresponding operation of the loop, where the assignments are made according to a rotation schedule, and one of the alias registers is assigned to a first operation in a first iteration of the loop and to a second operation in a subsequent iteration of the loop. The system also includes the memory coupled to the processor. Other embodiments are described and claimed.