LDE Compiler Logic Compression for Programmable ASIC Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current compilers for programmable application-specific integrated circuit (ASIC) based network devices lack efficiency in translating and compressing source code into executable form for lookup and decision engines (LDEs), leading to suboptimal use of processing resources and increased storage needs.
Innovation Solution
A lookup and decision engine (LDE) compiler that breaks down source code into unique assignments and conditions, determines all possible condition paths, and simplifies and compresses the logic to minimize data representation, converting it into an output file that configures processing elements on the LDEs for efficient execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If source code is translated and compressed into executable form for LDEs, then storage requirements are reduced and processing efficiency is improved, but the compiler complexity increases
Solution Approach 1:
The compiler is divided into multiple distinct modules: a symbol mapper module that creates symbol tables, a code generator module that produces executable instructions, and a code parallelizer module that determines permutations. This segmentation allows each module to handle specific aspects of the compilation process independently, making the overall complex system manageable and maintainable while achieving efficient code compression
Solution Approach 2:
The patent introduces intermediate data structures and tables (such as symbol tables that correlate source code symbols with input layers and bit offsets) that serve as mediators between the source code and the final executable configuration. These intermediaries facilitate the transformation process by organizing information in a structured way that enables efficient compression and execution
2Reliability
If all permutations of source code conditions are determined and executed, then code coverage and correctness are improved, but processing time increases
Solution Approach 1:
The code parallelizer module performs preliminary analysis to determine all permutations of conditions in the source code before code generation. By pre-calculating which assignment statements are executed under each permutation of conditions and organizing this information in advance, the system ensures complete code coverage and correctness without adding processing time during actual execution, as the permutation logic is resolved during compilation
Data Source
AI summary
A processing network including a plurality of lookup and decision engines (LDEs) each having one or more configuration registers and a plurality of on-chip routers forming a matrix for routing the data between the LDEs, wherein each of the on-chip routers is communicatively coupled with one or more of the LDEs. The processing network further including an LDE compiler stored on a memory and communicatively coupled with each of the LDEs, wherein the LDE compiler is configured to generate values based on input source code that when programmed into the configuration registers of the LDEs cause the LDEs to implement the functionality defined by the input source code.


