Vector Register Flag Circuitry for Contiguous Gather Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems, gather or scatter memory access operations often require serialization due to arbitrary addresses, leading to significant hardware and power costs, and timing path impacts, especially when addresses are contiguous, which existing technologies struggle to optimize without additional hardware.

Innovation Solution

A data processing apparatus with flag setting circuitry that generates flag information for vector registers with contiguous elements, allowing for reduced memory accesses by determining contiguous addresses, thereby improving performance without additional hardware costs or timing path impacts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If gather or scatter memory access operations are performed with arbitrary addresses, then flexibility in accessing data values is improved, but the operations require serialization leading to increased hardware costs and timing path impacts

Engineering Contradiction:
Improveflexibility in accessing data valuesVSAvoidhardware costs
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by setting flag information in advance to indicate whether a vector contains contiguous elements. This flag is set when the vector is created or loaded, before the memory access operation occurs. During the gather/scatter operation, the processing circuitry checks this pre-set flag to determine whether to perform optimization, thereby avoiding the need for complex runtime analysis hardware while maintaining the ability to optimize when applicable.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If gather or scatter memory access operations are performed with arbitrary addresses, then flexibility in accessing data values is improved, but the operations require serialization leading to increased timing path impacts

Engineering Contradiction:
Improveflexibility in accessing data valuesVSAvoidtiming path impacts
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The flag information indicating contiguousness is set in advance during vector creation or loading operations, not during the memory access operation itself. This preliminary setting of the flag allows the memory access path to simply check a pre-computed condition without performing complex analysis, thereby avoiding timing path impacts while maintaining flexibility for arbitrary address access when needed.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If additional hardware is added to optimize contiguous address detection in gather or scatter operations, then memory access efficiency is improved, but hardware costs and device complexity increase

Engineering Contradiction:
Improvememory access efficiencyVSAvoidhardware costs
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of adding hardware to the memory access path for real-time contiguous address detection, the patent uses preliminary action by setting a flag during vector creation or loading that indicates whether the vector contains contiguous elements. This shifts the detection work to an earlier time when the vector is being formed, allowing the memory access operation to simply check a pre-computed flag, thereby improving efficiency without adding hardware complexity to the critical memory access path.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The vector register or associated control logic serves itself by maintaining the contiguousness flag information internally. Rather than requiring external hardware assistance during memory access operations, the system uses its own pre-computed flag information to determine whether optimization is applicable, eliminating the need for additional detection hardware while maintaining the ability to optimize contiguous accesses.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3340037B1A data processing apparatus and method for controlling vector memory accesses
Publication Date: 2019.08.28 ARM LTD
  • EP3340037B1 patent drawingFigure 1
  • EP3340037B1 patent drawingFigure 2
  • EP3340037B1 patent drawingFigure 3

AI summary

An apparatus and method are provided for controlling vector memory accesses. The apparatus comprises a set of vector registers, and flag setting circuitry that is responsive to a determination that a vector generated for storage in one of the vector registers comprises a plurality of elements that meet specified contiguousness criteria, to generate flag information associated with that vector register. Processing circuitry is then used to perform a vector memory access operation in order to access in memory a plurality of data values at addresses determined from an address vector operand comprising a plurality of address elements. The address vector operand is provided in a specified vector register of the vector register set, such that the plurality of elements of the vector stored in that specified vector register form the plurality of address elements. The processing circuitry is arranged to determine whether the specified vector register has flag information associated therewith, and if it does, then that flag information is used when determining a number of accesses to memory required to access the plurality of data values. This provides an efficient mechanism for allowing gather or scatter type memory access operations to be implemented using a reduced number of accesses to memory in certain situations where the flag information has been generated for the associated address vector operand.