BELEX Compiler for Associative Processing Unit
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


