SIMD Table Lookup Using Segmented Crossbar Networks
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
Data Source
Figure 1
Figure 2
Figure 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.