Bunch Buffer Load Latency Amelioration in Compute Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional processing architectures face challenges in efficiently managing and processing large, complex datasets due to high load latency, which can lead to stalled compute elements and reduced throughput, especially when accessing storage and obtaining necessary data.

Innovation Solution

The implementation of a two-dimensional array of compute elements with bunch buffers, where control word bunches are loaded into buffers coupled to each compute element, enabling autonomous operation and operational looping without additional control word loading, thereby reducing load latency and expediting task execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If control words are loaded into compute elements in traditional processing architectures, then compute elements can execute operations, but load latency increases and compute elements stall waiting for data

Engineering Contradiction:
Improveprocessing throughputVSAvoidload latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent loads multiple control words into buffer memory in advance before they are needed for execution. This preliminary action allows compute elements to continuously execute operations without stalling, as the buffer memory supplies control words ahead of time, eliminating wait states and reducing load latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces buffer memory as an intermediary component between the control word storage and compute elements. This buffer acts as a mediator that decouples the data supply rate from the compute element execution rate, allowing compute elements to operate continuously while control words are loaded at a different pace into the buffer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If control words are continuously loaded to compute elements, then operations can be executed, but additional control word loading delays autonomous operation

Engineering Contradiction:
Improveoperation execution rateVSAvoidcontrol word loading mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent enables compute elements to operate autonomously by loading multiple control words into buffer memory in advance. Once loaded, the buffer memory self-serves the compute elements by supplying control words without requiring continuous external loading, allowing compute elements to execute operations independently without stalling for control word availability.

Inventive Principle:
Principle #25Self-service

3Reliability

If compute elements wait for data from storage, then data accuracy is ensured, but throughput is reduced due to stalled compute elements

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary loading of control words into buffer memory before compute elements need them. This advance preparation ensures that when compute elements are ready to execute operations, the necessary control words are already available in the buffer, eliminating wait states and maintaining continuous throughput while ensuring data accuracy through proper control word execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20230031902A1Load latency amelioration using bunch buffers
Publication Date: 2023.02.02 ASCENIUM INC
  • US20230031902A1 patent drawing
  • US20230031902A1 patent drawing
  • US20230031902A1 patent drawing

AI summary

Techniques for task processing based on load latency amelioration using bunch buffers are disclosed. A two-dimensional array of compute elements is accessed. Each compute element within the array of compute elements is known to a compiler and is coupled to its neighboring compute elements within the array of compute elements. Control for the compute elements is provided on a cycle-by-cycle basis. The control is enabled by a stream of wide control words generated by the compiler. Sets of control word bits are loaded into buffers. Each buffer is associated with and coupled to a unique compute element within the array of compute elements. The sets of control word bits provide operational control for the compute element with which it is associated. Operations are executed within the array of elements. The operations are based on a selected set of control word bits which comprise a control word bunch.