Instruction Compression via Dynamic EIT Table Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional instruction compression methods fail to effectively reduce program code size when frequently used long instructions lack corresponding short instruction mappings, leading to inefficient code compression.

Innovation Solution

A method that analyzes program code to identify frequently used instruction groups, sorts them based on a cost function, and replaces them with Execution-on-Instruction-Table (EIT) instructions, which have a parameter referencing the corresponding instruction group in a customizable instruction table, allowing for flexible compression and reduced code size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If fixed mapping between long instructions and short instructions is used for all programs, then code size can be reduced for programs with matching instruction patterns, but programs with different frequently used instructions cannot benefit from compression

Engineering Contradiction:
Improveprogram code sizeVSAvoidprogram-specific instruction compression
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent transforms the static fixed mapping approach into a dynamic program-specific mapping system. An instruction compressor analyzes each program's frequently used long instructions and generates a customized mapping table, allowing the compression scheme to adapt to different program characteristics and maximize code size reduction for each specific program

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies different compression strategies to different programs based on their specific instruction usage patterns. Instead of a uniform fixed mapping, each program receives a tailored mapping table that reflects its local characteristics, enabling optimal compression for each program's frequently used instructions

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If long instructions are compressed to short instructions, then code size is reduced, but the ability to encode complex operations is limited

Engineering Contradiction:
Improveprogram code sizeVSAvoidinstruction encoding capability
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the instruction execution process into multiple stages: a compressed short instruction is stored in an instruction table, and during execution, the corresponding full-length instruction is retrieved and executed. This segmentation allows short instructions to serve as space-efficient proxies while maintaining the full encoding capability of long instructions when needed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an instruction table as an intermediary data structure between the compressed instruction stream and the execution unit. The instruction table acts as a mediator that translates compact EIT instructions back into their full-length counterparts, enabling space-efficient storage while preserving complete instruction functionality during execution

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9672041B2Method for compressing variable-length instructions including PC-relative instructions and processor for executing compressed instructions using an instruction table
Publication Date: 2017.06.06 ANDES TECH
  • US9672041B2 patent drawing
  • US9672041B2 patent drawing
  • US9672041B2 patent drawing

AI summary

A method for compressing instruction is provided, which includes the following steps. Analyze a program code to be executed by a processor to find one or more instruction groups in the program code according to a preset condition. Each of the instruction groups includes one or more instructions in sequential order. Sort the one or more instruction groups according to a cost function of each of the one or more instruction groups. Put the first X of the sorted one or more instruction groups into an instruction table. X is a value determined according to the cost function. Replace each of the one or more instruction groups in the program code that are put into the instruction table with a corresponding execution-on-instruction-table (EIT) instruction. The EIT instruction has a parameter referring to the corresponding instruction group in the instruction table.