Vector Address Generation Using Bit-Interleaved Memory Bank Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for accessing binary data vectors in memory units with multiple banks face inefficiencies due to the need for overlapping addresses and complex address mapping, especially when dealing with power-of-2 strides, leading to increased operating cycles and reduced performance.

Innovation Solution

A method that uses bit-level XOR functions to determine offsets for each memory bank, allowing for parallel access to binary data vectors by shifting mapping table results and controlling multiplexer stages to shuffle data elements, enabling efficient access and storage across multiple memory banks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data vectors are accessed using power-of-2 strides in memory banks, then data access patterns match common workload requirements, but overlapping addresses occur causing access conflicts and reduced performance

Engineering Contradiction:
Improvedata access efficiencyVSAvoidaccess conflict frequency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The memory address space is segmented into multiple banks, and the patent applies bit-interleaved segmentation where specific bits of the address are used to select different banks. This segmentation strategy distributes data elements across banks to eliminate overlaps while maintaining power-of-2 stride access patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension for address mapping by using bit-interleaved bank selection instead of traditional sequential or modulo-based approaches. This dimensional change in address interpretation allows simultaneous access to multiple banks without conflicts.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If complex address mapping is used to handle power-of-2 strides, then data can be accessed in parallel across memory banks, but the address mapping complexity increases leading to more operating cycles

Engineering Contradiction:
Improveparallel access speedVSAvoidaddress mapping complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent replaces complex mechanical address mapping logic with a simpler bit-interleaved selection mechanism. Instead of using complex comparators and control logic, the system directly uses specific bits of the address to select banks, significantly reducing hardware complexity while maintaining parallel access capability.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent changes the address mapping parameters by reinterpreting which bits of the address correspond to bank selection versus offset within bank. This parameter reassignment simplifies the mapping function and reduces the number of operating cycles required.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If multiple different power-of-2 strides are used to compose data vectors, then flexibility in data structure access is improved, but ensuring elements are stored in distinct banks becomes much more difficult

Engineering Contradiction:
Improvedata structure access flexibilityVSAvoidbank distribution management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal bit-interleaved addressing scheme that works for all power-of-2 strides. The same bank selection logic based on address bits handles different strides uniformly, providing multi-functionality without requiring separate management mechanisms for each stride type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The address itself contains the bank selection information through its bit structure. The system uses the address bits directly to select banks, making the address self-sufficient for bank distribution without requiring additional control signals or management overhead.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10996949B2Address generation for high-performance vector processing
Publication Date: 2021.05.04 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10996949B2 patent drawing
  • US10996949B2 patent drawing
  • US10996949B2 patent drawing

AI summary

A method for accessing a binary data vector in a memory unit comprising a plurality of memory banks in which the binary data vector is stored in portions includes receiving a start address of the binary data vector and a power-of-2-stride elements of the data vector and determining offsets, wherein the offsets are determined by applying a plurality of bit-level XOR functions to the start address resulting in a Z vector, using the Z vector for accessing a mapping table, and shifting mapping table access results according to a power-of-2-stride of the binary data vector. Additionally, the method includes determining a sequence of portions of the binary data vector in the n memory banks depending on a binary equivalent value of the Z vector, and accessing the binary data vector in the n memory banks of the memory unit in parallel.