Banked Memory Access Efficiency via AOS to SOA Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for converting between array of structures (AOS) and structure of arrays (SOA) formats are inefficient, leading to performance degradation and power losses due to suboptimal bus utilization, as they rely on structure size rather than maximizing transfer bus bandwidth.

Innovation Solution

A controller computes partition sizes and offsets to ensure full utilization of the transfer bus bandwidth by fetching calculated portions of data, allowing for SIMD operations that fill the bus width in each cycle, thereby improving efficiency and reducing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conversion between AOS and SOA is based on structure size, then data can be transferred between formats, but bus utilization and transfer bandwidth are not maximized leading to performance degradation and power losses

Engineering Contradiction:
Improveconversion efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments the data transfer process into multiple smaller transactions instead of transferring entire structures at once. The controller divides large structure transfers into smaller chunks that can be efficiently transmitted over the memory bus, maximizing bandwidth utilization and reducing power consumption by avoiding unnecessary data transfers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically changes transfer parameters such as transaction size and access pattern based on the specific data structure being converted. By adjusting these parameters, the system optimizes bus utilization for each conversion operation, ensuring maximum efficiency while minimizing power consumption.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If entire structures are read and written during conversion, then complete data transfer is achieved, but bandwidth utilization is suboptimal and transfer time increases

Engineering Contradiction:
Improvetransfer speedVSAvoidconversion time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The conversion process is segmented into multiple fine-grained transactions rather than monolithic structure transfers. This allows the memory bus to be fully utilized with each transaction, transferring maximum data per cycle and significantly reducing overall conversion time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller performs preliminary analysis of the data structure characteristics before initiating transfer, pre-calculating optimal transfer parameters. This preliminary action enables subsequent transfers to proceed at maximum speed without unnecessary delays.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If memory access is not optimized for parallel processing, then data can be accessed sequentially, but performance of parallel processing tasks suffers

Engineering Contradiction:
Improveparallel processing performanceVSAvoidmemory access complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements different memory access patterns for different data elements based on their specific requirements. Elements that will be processed in parallel are arranged and accessed in patterns that maximize parallel throughput, while maintaining simplicity for sequential access patterns where applicable.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3129953B1Improved banked memory access efficiency by a graphics processor
Publication Date: 2020.11.25 INTEL CORP
  • EP3129953B1 patent drawingFigure 1
  • EP3129953B1 patent drawingFigure 2
  • EP3129953B1 patent drawingFigure 3A~3B

AI summary

Conversion of an array of structures (AOS) to a structure of arrays (SOA) improves the efficiency of transfer from the AOS to the SOA. A similar technique can be used to convert efficiently from an SOA to an AOS. The controller performing the conversion computes a partition size as the highest common factor between the structure size of structures in AOS and the number of banks in a first memory device, and transfers data based on the partition size, rather than on the structure size. The controller can read a partition size number of elements from multiple different structures to ensure that full data transfer bandwidth is used for each transfer.