Vector Register File Managing Rotating Buffer Areas

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing applications, particularly in streaming mode, managing memory latency and aligning data blocks for efficient processing is challenging due to high memory latency and misalignment of data in memory, which limits register usage and performance.

Innovation Solution

A processor core with N-bit system memory interface, register file, and vector registers, along with specific instructions like VLOAD and VALIGN, allows for efficient data alignment and management of rotating buffer areas to handle misaligned data blocks by reading and writing data in one cycle, using a series of load instructions and alignment instructions to process data blocks across multiple registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If modular variable expansion technique is used to overcome memory latency, then the execution time is increased, but the number of available registers becomes insufficient

Engineering Contradiction:
Improvememory latencyVSAvoidnumber of available registers
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The register file is segmented into two distinct types: general purpose registers and vector registers. Vector registers are dedicated specifically for storing data blocks read from memory, while general purpose registers handle control and addressing operations. This segmentation allows the vector register file to be optimized for high-speed data storage without being constrained by the limited number of general purpose registers, thus resolving the contradiction between overcoming memory latency and maintaining sufficient register availability.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If traditional load instructions are used to load data blocks, then data alignment is maintained, but misaligned data in memory cannot be processed efficiently

Engineering Contradiction:
Improvedata alignmentVSAvoidprocessing efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent introduces vector load instructions that change the parameter of data alignment flexibility. Instead of requiring strict alignment, the vector load instruction can load data blocks starting from any memory address, including misaligned addresses. The vector register system accommodates these misaligned loads by storing the complete data block regardless of its starting position, thereby maintaining both alignment capability and processing efficiency for misaligned data.

Inventive Principle:
Principle #35Parameter changes

3Speed

If vector registers are used to store data blocks, then data processing speed is improved, but the complexity of managing rotating buffer areas increases

Engineering Contradiction:
Improvedata processing speedVSAvoidmanagement of rotating buffer areas
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The vector register system implements self-service mechanisms for managing rotating buffer areas. The hardware automatically handles the rotation of buffer pointers and the allocation of vector registers for data blocks, eliminating the need for complex software management. The vector load and store instructions inherently manage the rotating buffer logic, allowing fast data processing while keeping the management complexity low through hardware-assisted automation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20230315472A1System for managing a group of rotating registers defined arbitrarily in a processor register file
Publication Date: 2023.10.05 KALRAY
  • US20230315472A1 patent drawing

AI summary

A processor core including an N-bit system memory interface; a register file comprising a plurality of general purpose registers of capacity less than N bits; a set of N-bit vector registers ; in its instruction set, a register manipulation instruction executable with the following parameters: a) a value defining in the set of vector registers a buffer area formed by a plurality of consecutive vector registers, and b) a reference to a first general purpose register , the first general purpose register containing an index identifying a vector register within the buffer area; and an execution unit configured to, upon execution of a register manipulation instruction, read or write, in one cycle, N bits in a vector register identified from the value defining the buffer area and the index contained in the first general purpose register).