Large Lookup Tables for Image Processors via Memory Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Image processors face challenges in processing large lookup tables due to memory constraints, where the tables do not fit within local memory banks, leading to compilation issues and reduced performance.

Innovation Solution

A compiler generates code to distribute large lookup tables across multiple local memory banks, allowing each execution lane to access only a portion of the table by using shift-register arrays to read necessary indexes and values from other lanes, enabling access to the entire table through shift and vector access sequences.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If lookup tables are stored in local memory banks to maximize access speed, then execution speed is improved, but the size of lookup tables is limited by memory bank capacity

Engineering Contradiction:
Improveexecution speedVSAvoidlookup table size
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The lookup table is divided into multiple segments or partitions, with each partition stored in a separate local memory bank. Each execution lane is assigned to access a specific partition, allowing the overall lookup table size to exceed the capacity of individual memory banks while maintaining fast local access speeds.

Inventive Principle:
Principle #1Segmentation

2Productivity

If local memory banks are split into multiple smaller banks for parallel access, then parallel processing capability is improved, but lookup table storage capacity per bank is reduced

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidstorage capacity per bank
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The lookup table is segmented across multiple smaller memory banks, with each bank holding a portion of the overall table. This segmentation enables parallel access by different execution lanes simultaneously, improving productivity while the collective capacity of all banks accommodates the full lookup table size.

Inventive Principle:
Principle #1Segmentation

3Reliability

If lookup tables are replicated in every local memory bank to ensure accessibility, then access reliability is improved, but memory usage increases significantly

Engineering Contradiction:
Improveaccess reliabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Instead of uniform replication, each local memory bank stores a different partition of the lookup table tailored to the specific needs of its associated execution lanes. This local optimization ensures that each bank contains the relevant data for its designated lanes, maintaining access reliability for those lanes while avoiding redundant storage across all banks.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3743806B1Large lookup tables for an image processor
Publication Date: 2023.08.30 GOOGLE LLC
  • EP3743806B1 patent drawingFigure 1
  • EP3743806B1 patent drawingFigure 2
  • EP3743806B1 patent drawingFigure 3A

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for supporting large lookup tables on an image processor. One of the methods includes receiving an input kernel program for an image processor having a two-dimensional array of execution lanes, a shift-register array, and a plurality of memory banks. If the kernel program has an instruction that reads a lookup table value for a lookup table partitioned across the plurality of memory banks, the instruction in the kernel program are replaced with a sequence of instructions that, when executed by an execution lane, causes the execution lane to read a first value from a local memory bank and a second value from the local memory bank on behalf of another execution lane belonging to a different group of execution lanes.