High-Level Compiler Automatic Data Compression Algorithm Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current electronic design automation (EDA) tools face challenges in automatically selecting and implementing optimal data compression algorithms during high-level compilation for complex systems on target devices like FPGAs and ASICs, requiring user intervention and additional work to determine compression methods and algorithms.
Innovation Solution
A method and apparatus for automatic data compression algorithm selection during high-level compilation, where a high-level compiler identifies data types in kernel arguments and instantiates appropriate hardware for compression/decompression units, allowing users to signal compression requirements through specific terms in the kernel definition, and tracks compression status to ensure consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If automatic compression algorithm selection is implemented during high-level compilation, then user workload is reduced and efficiency is improved, but device complexity and compilation system complexity increase
Solution Approach 1:
The compilation system performs self-service by automatically analyzing data types in kernel arguments and selecting appropriate compression algorithms without user intervention. The system inspects argument types (integer, float, double, structure) and autonomously determines compression strategies, reducing user workload while managing internal complexity through automated decision-making logic
Solution Approach 2:
The system changes compilation parameters dynamically based on data type detection. By identifying argument types (integer, float, double, structure) and their compression requirements, the compiler adjusts compression algorithm selection and hardware instantiation parameters automatically, improving efficiency while containing complexity through parameter-driven decision making
2Reliability
If compression hardware is automatically instantiated based on data type, then appropriate compression methods are ensured, but device complexity and resource requirements increase
Solution Approach 1:
The system applies local quality by instantiating compression hardware selectively based on specific data type requirements. Different compression algorithms are applied to different data types (integer, float, double, structure) only where needed in the kernel arguments, ensuring appropriateness while avoiding unnecessary hardware complexity in regions where compression is not required
Solution Approach 2:
The compilation system changes hardware instantiation parameters based on detected data types. By analyzing argument types and their compression suitability, the system dynamically determines which compression hardware to instantiate and where, ensuring method appropriateness while managing hardware complexity through conditional instantiation based on data type parameters
3Reliability
If compression status tracking is implemented, then data integrity is maintained, but system complexity and overhead increase
Solution Approach 1:
The system implements feedback by tracking compression status of data associated with kernel arguments and generating notifications when compression state inconsistencies are detected. This feedback mechanism maintains data integrity by ensuring compressed and uncompressed data are used appropriately, while managing system complexity through targeted status tracking and notification rather than comprehensive monitoring
Data Source
AI summary
A method for performing a high-level compilation of a computer program language (CPL) description of a system to generate a hardware description language (HDL) of the system includes inserting one or more compression/decompression units into the HDL in response to detecting a user inserted term in a kernel definition of an argument in the CPL description to indicate that the argument requires compression.


