BELEX Compiler for Associative Processing Unit

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Gemini Associative Processing Unit (APU) programming using Assembly-like Programming Language (APL) is cumbersome and labor-intensive, requiring explicit specification of cell activation and Boolean operations, making it difficult for algorithm designers and programmers to implement mathematical expressions efficiently.

Innovation Solution

The introduction of the Bit-Engine Language of Expression (BELEX) and its compiler, which represent APU elements as vectors and matrices, allowing for the creation of a Tartan matrix to selectively perform Boolean operations between matrices, simplifying programming by overlaying linear-algebra concepts on Boolean algebra and enabling concurrent computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If APL is used to program the APU, then the APU's parallel processing capabilities can be utilized, but the programming becomes time-consuming and labor-intensive

Engineering Contradiction:
Improveprogramming efficiencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces a compiler as an intermediary tool that translates high-level mathematical expressions written in a domain-specific language into APL instructions. This compiler automatically handles the complex task of specifying cell activations and Boolean operations, allowing programmers to write intuitive mathematical code without manually managing the underlying parallel processing details. The compiler serves as a mediator between the programmer's intent and the APU's execution requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service by allowing the compiler to automatically generate the necessary APL code for concurrent cell activation and Boolean operations. Instead of requiring programmers to manually specify which cells to activate and what operations to perform, the compiler autonomously analyzes the mathematical expressions and produces the appropriate APL instructions, including the generation of bit vectors for row and column selections and the sequencing of operations.

Inventive Principle:
Principle #25Self-service

2Manufacturing precision

If explicit cell activation and Boolean operations are specified in APL, then precise control over computations is achieved, but programming becomes cumbersome and troublesome

Engineering Contradiction:
Improvecomputation control precisionVSAvoidprogramming structure complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent employs the use of bit vectors as templates or copies that represent selected rows and columns. These bit vectors are computed once and then reused multiple times to specify cell selections in different operations. The compiler generates these bit vectors that capture the selection patterns, allowing the same selection logic to be applied consistently across multiple Boolean operations without repeatedly writing out the full cell activation sequences.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If APL is used for APU programming, then in-memory computation capabilities can be accessed, but the programming process is not easy to use for implementing mathematical expressions

Engineering Contradiction:
Improvein-memory computation capabilityVSAvoidmathematical expression implementation ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent transforms the programming paradigm by changing the parameter representation from low-level cell identifiers and operation codes to high-level mathematical expression parameters. The compiler accepts mathematical expressions with standard operators and variables, automatically converting them into the parameter sequences required by the APU. This parameter transformation allows programmers to work with familiar mathematical notation while the system handles the conversion to APU-specific execution parameters.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20230035474A1Compiler for a parallel processor
Publication Date: 2023.02.02 GSI TECHNOLOGY INC
  • US20230035474A1 patent drawing
  • US20230035474A1 patent drawing
  • US20230035474A1 patent drawing

AI summary

A method for concurrently performing multiple computations in an associative processing unit (APU) includes having data in two matrices, representing data in two portions of a memory array of the APU, creating a Tartan matrix by computing an outer product between a first bit vector indicating selected rows and a second bit vector indicating selected columns, the Tartan matrix representing data stored in a third portion of the memory array wherein all cells having a value 1 in the Tartan matrix indicate selected cells, concurrently activating all cells of the matrices and storing a result of Boolean operations therebetween in one of the two matrices, wherein a new value is obtained on cells located at a same row and a same column as the selected cells in the Tartan matrix and an original value remains on other cells.