Address Generation Accelerator for Iterated Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High performance computing systems experience a low ratio of sustained performance to peak performance due to unutilized computational capacity, necessitating improved address generation within data processing systems.

Innovation Solution

A method and system that includes a block computation engine with an address generation accelerator to accelerate the generation of read and write requests by referencing operand data structures, enhancing the computation engine's ability to perform iterated operations efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional address generation methods are used in high performance computing systems, then the system can maintain simple architecture, but the sustained performance remains low due to unutilized computational capacity

Engineering Contradiction:
Improvesustained performanceVSAvoidaddress generation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The address generation function is segmented from the main computation engine and implemented as a separate address generation accelerator. This dedicated component handles address calculation independently, allowing the computation engine to focus on mathematical operations without being bottlenecked by address generation delays, thereby improving sustained performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An address generation accelerator acts as an intermediary component between the computation engine and memory system. This mediator handles the complex task of generating addresses for iterated operations, using specialized data structures (operand and operation data structures) to efficiently compute addresses without burdening the main computation pipeline.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If address generation is accelerated using dedicated hardware, then computational resource utilization increases, but the device complexity and hardware requirements increase

Engineering Contradiction:
Improvecomputational resource utilizationVSAvoidhardware structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The compiler performs preliminary actions by generating optimized operand and operation data structures during the compilation phase. These pre-processed data structures contain all necessary information for the address generation accelerator to efficiently compute addresses at runtime, shifting complexity from runtime hardware to compile-time software processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces traditional mechanical address generation methods (performed by general-purpose processors) with a specialized address generation accelerator. This substitution uses optimized hardware logic that leverages the pre-processed data structures to generate addresses much faster than general-purpose processors, improving computational resource utilization.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Speed

If the system uses general-purpose processors for all operations, then device complexity remains low, but address generation becomes a bottleneck limiting sustained performance

Engineering Contradiction:
Improveaddress generation speedVSAvoidprocessing architecture
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The processing architecture is segmented into distinct functional units: a general-purpose computation engine for mathematical operations and a specialized address generation accelerator for address calculation. This segmentation allows each component to be optimized for its specific function, with the address generator achieving high speed through dedicated hardware while the computation engine maintains flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The address generation accelerator is designed with universal capabilities to handle various types of iterated operations through a unified interface. By using standardized operand and operation data structures, the same hardware architecture can efficiently generate addresses for different computational patterns, reducing the need for multiple specialized units.

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

Data Source

PatentEP2368181B1Operation data structure
Publication Date: 2016.11.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP2368181B1 patent drawingFigure 1
  • EP2368181B1 patent drawingFigure 2
  • EP2368181B1 patent drawingFigure 3

AI summary

A compiler is designed, in response to receiving pre-processed code, to identify a code section that is not a candidate for acceleration and identifying a code block specifying an iterated operation that is a candidate for acceleration. In response to identifying the code section, the compiler generates post-processed code containing one or more lower level instructions corresponding to the identified code section, and in response to identifying the code block, the compiler creates and outputs an operation data structure separate from the post-processed code that identifies the iterated operation. The compiler places a block computation command in the post-processed code that invokes processing of the operation data structure to perform the iterated operation and outputs the post-processed code.