Instruction Buffer Compression for Branch Destination Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional information processing systems face challenges in achieving high compression rates for programs due to the inability to compress instructions that are branch destinations, leading to increased memory requirements.
Innovation Solution
An information processing system and method that allows for the compression of branch destination instructions by using an instruction buffer, selectors, a decompression section, and a control section to manage the selection and decoding of instructions, along with added identifiers to indicate compression status, enabling proper execution and storage of compressed branch destination instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If instructions that are branch destinations are not compressed, then the program can be executed correctly, but the compression rate decreases and memory size increases
Solution Approach 1:
The instruction buffer is divided into multiple buffer regions, each capable of storing a specific number of instructions (e.g., first buffer region for 2 instructions, second buffer region for 4 instructions). This segmentation allows the system to manage compressed instructions in controlled portions, ensuring that branch destination instructions can be properly identified and handled without compromising compression benefits.
Solution Approach 2:
The control section performs preliminary actions by determining in advance whether an instruction is a branch destination instruction and whether the instruction buffer contains compressed instructions. This preliminary determination allows the system to prepare the appropriate decompression or direct output path before execution is needed, ensuring correct program flow while maintaining compression.
2Quantity of substance
If branch destination instructions are compressed, then the compression rate improves, but the system complexity increases due to additional selection and decomposition mechanisms
Solution Approach 1:
The control section serves multiple functions: it determines whether instructions are branch destinations, checks whether the instruction buffer contains compressed instructions, selects appropriate buffer regions, and controls the overall execution flow. This multi-functionality reduces the need for separate dedicated circuits for each function, thereby managing complexity while achieving high compression rates.
Solution Approach 2:
The control section acts as an intermediary between the instruction buffer, decompression section, and execution units. It mediates the flow of instructions by determining compression status and directing the appropriate processing path, simplifying the overall system architecture compared to having separate hardwired paths for all possible instruction types.
3Quantity of substance
If multiple compressed instructions are stored in each instruction bit field, then memory efficiency improves, but the difficulty of determining branch destinations increases
Solution Approach 1:
Different buffer regions are assigned different capacities tailored to specific needs. The first buffer region stores 2 instructions while the second buffer region stores 4 instructions, allowing the system to optimize for local patterns in the program. This local optimization makes it easier to manage and identify branch destinations within each region while maintaining overall memory efficiency.
Solution Approach 2:
The control section uses feedback from the instruction buffer status and decompression section output to determine whether to proceed with decompression or direct execution. This feedback mechanism simplifies branch destination identification by continuously monitoring the state of compressed instructions and adjusting the execution path accordingly.
Data Source
AI summary
An information processing device for executing a compressed program includes: an instruction buffer; a first selector for selectively outputting one of a set of signals obtained by dividing the output from the instruction buffer; an instruction decompression section for decompressing the output from the first selector into an original instruction; a second selector for outputting the output from the instruction buffer when no compressed instruction is stored in the instruction buffer and outputting the output from the instruction decompression section otherwise; an instruction decoding section for outputting a signal indicating presence/absence of instruction branching based on a result of decoding the output from the selector; and a control section for instructing the first selector to select a predetermined one of the received signals when the signal from the instruction decoding section indicates that there is instruction branching.


