SIMD Table Lookup Using Segmented Crossbar Networks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processing systems face challenges in efficiently and scalably implementing SIMD table lookup operations due to high hardware costs and complexity associated with crossbar implementations, which become unmanageable as data vector sizes increase.

Innovation Solution

The approach involves using multiple SIMD instructions to perform partial table lookups, specifying subsets of indices for non-contiguous table entries, reducing the size of crossbars needed and implementing them using Benes or Clos networks, thereby lowering complexity and hardware requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a conventional crossbar implementation is used for SIMD table lookup operations, then the desired functionality of mapping indices to table entries is achieved, but the hardware cost increases significantly due to requiring N N-input multiplexors for N table entries

Engineering Contradiction:
ImprovefunctionalityVSAvoidhardware cost
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the full table lookup operation into multiple partial lookups, where each SIMD instruction processes a subset of indices rather than all N indices simultaneously. This segmentation allows using smaller crossbars with fewer multiplexors for each partial lookup, significantly reducing hardware cost while maintaining the ability to process the complete table through multiple coordinated instructions

Inventive Principle:
Principle #1Segmentation

2Productivity

If the size of data vectors increases to handle larger datasets, then processing capability is improved, but conventional crossbar implementations become unmanageable and non-scalable

Engineering Contradiction:
Improveprocessing capabilityVSAvoidscalability
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By segmenting the lookup operation into multiple SIMD instructions that each handle a portion of the data vector, the system can process arbitrarily large data vectors without requiring proportionally larger crossbars. Each instruction uses a manageable-sized crossbar, making the system scalable to large data vectors while maintaining processing capability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each SIMD instruction performs a partial lookup of only the necessary subset of table entries rather than the full table. This partial action approach allows the hardware to be sized for the subset rather than the complete dataset, enabling scalability to larger vectors without proportionally increasing hardware complexity

Inventive Principle:
Principle #16Partial or excessive action

3Device complexity

If multiple SIMD instructions are used to specify subsets of indices for partial table lookups, then crossbar size and complexity are reduced, but the number of instructions required increases

Engineering Contradiction:
Improvecrossbar sizeVSAvoidnumber of instructions
Core Design Contradiction:
Device complexityVSExtent of automation

Solution Approach 1:

The lookup operation is segmented into multiple SIMD instructions, each handling a specific subset of indices. While this increases the instruction count, it dramatically reduces crossbar size and hardware complexity. The segmentation allows the hardware to be optimized for smaller, more manageable lookup operations rather than requiring a single large complex crossbar

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3335108B1Table lookup using SIMD instructions
Publication Date: 2019.12.18 QUALCOMM INC
  • EP3335108B1 patent drawingFigure 1
  • EP3335108B1 patent drawingFigure 2
  • EP3335108B1 patent drawingFigure 3

AI summary

Systems and methods pertain to looking up entries of a table. A processor receives one or more single instruction multiple data (SIMD) instructions, including a first SIMD instruction which specifies a first subset of indices. A first subset of table entries is looked up, using a crossbar, with the first subset of indices. A first vector output of the first SIMD instruction is based on whether the outputs of the crossbar belong to a desired subset of table entries. Similarly, second, third, and fourth SIMD instructions specify corresponding second, third, and fourth subsets of indices to lookup the remaining table entries using the crossbar. The size of the crossbar is based on the number of indices in the subset of indices used to lookup table entries.