Variable Size Logical Registers for Graph Stream Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In graph stream processing systems, the fixed register width leads to inefficiency as it cannot accommodate different data types efficiently, resulting in either multiple clock cycles for loading or the need for wide registers to handle the largest data type, limiting throughput in compute-intensive applications.

Innovation Solution

A system and method that utilize Single Instruction Multiple Data (SIMD) threads with a dispatch mask, where a thread scheduler initiates SIMD threads, and an instruction iterator determines the data type and number of clock phases required for execution, using a Content Addressable Memory (CAM) to map logical registers to physical registers, allowing for efficient management of different data types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the register width is fixed to handle the largest data type, then all data types can be accommodated, but the system efficiency deteriorates due to unnecessary use of wider registers for smaller data types

Engineering Contradiction:
Improveregister width adaptabilityVSAvoidsystem efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements variable register widths that can be dynamically adjusted based on the data type being processed. The register file contains multiple banks with different widths (e.g., 8-bit, 16-bit, 32-bit, 64-bit), and the system selectively activates appropriate register widths using control signals. This dynamic adaptation allows the system to match register width to data type requirements, avoiding the inefficiency of always using the widest register width while maintaining the ability to handle all data types.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If multiple clock cycles are used to load registers for different data types, then all data types can be processed, but the throughput decreases due to increased execution time

Engineering Contradiction:
Improvedata type supportVSAvoidthroughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the register file into multiple independent banks, each with a specific width (e.g., 8-bit bank, 16-bit bank, 32-bit bank, 64-bit bank). Each bank can be independently accessed and loaded in a single clock cycle. The system uses control signals to select the appropriate bank based on the data type requirement, enabling single-cycle loading for each data type while maintaining support for all data types through the segmented bank structure.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If wide registers are used to hold the largest data type, then all data types fit in one register, but the precision and efficiency deteriorate due to unused register bits

Engineering Contradiction:
Improveregister utilizationVSAvoiddata processing precision
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent applies local quality by providing different register widths in different banks according to the specific data type requirements. Each bank is optimized for its specific width, ensuring that register bits are fully utilized without waste. For example, 8-bit data uses the 8-bit bank with all bits actively used, while 64-bit data uses the 64-bit bank. This localized optimization ensures both ease of operation and processing precision by matching register capacity exactly to data requirements.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11853762B1Single instruction multiple data execution with variable size logical registers
Publication Date: 2023.12.26 BLAIZE INC
  • US11853762B1 patent drawing
  • US11853762B1 patent drawing
  • US11853762B1 patent drawing

AI summary

Systems, apparatuses and methods are disclosed for efficient management of registers in a graph stream processing (GSP) system. The GSP system includes a thread scheduler module operative to initiate a Single Instruction Multiple Data (SIMD) thread, the SIMD thread including a dispatch mask with an initial value. A thread arbiter module operative to select an instruction from the instructions and provide the instruction to each of one or more compute resources, and an instruction iterator module, associated with the each of one or more compute resources operative to determine a data type of the instruction. The instruction iterator module iteratively executes the instruction based on the data type and the dispatch mask.