Instruction Line Prefetch Control Using Branch Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Integrated circuits face inefficiencies due to inactive processing units during lag times while accessing non-volatile memory, leading to energy consumption and reduced data processing volume, particularly when branch instructions cause misalignment in prefetching.
Innovation Solution
Implement a method and circuit design that stores instruction lines in volatile memory only if they lack branch instructions, using reference instructions to determine branch status, and selectively access either non-volatile or volatile memory based on branch detection, minimizing inactive periods and energy waste.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the prefetch device stores the next instruction line in volatile memory to reduce lag time, then the processing unit activity is improved, but energy consumption increases due to storing and wasting power on instructions that may not be executed
Solution Approach 1:
The system performs preliminary detection of branch instructions in the current instruction line before deciding whether to prefetch the next instruction line. This preliminary action prevents unnecessary prefetching when branch instructions are present, thereby avoiding energy waste while maintaining productivity when prefetching is beneficial.
Solution Approach 2:
The system uses feedback from the comparison result of the current instruction line with branch instructions to control the prefetching decision. When branch instructions are detected, the feedback mechanism prevents prefetching; when no branch instructions are present, prefetching is enabled, creating a closed-loop control that optimizes both energy consumption and processing activity.
2Use of energy by moving object
If the processing unit waits for the next instruction line to be read from non-volatile memory, then energy consumption is reduced, but the processing unit remains inactive during the lag time
Solution Approach 1:
The system performs preliminary detection of branch instructions before the processing unit becomes inactive. This allows the system to make an informed decision about whether to prefetch, ensuring that prefetching only occurs when it will actually improve productivity by providing the next instruction line when needed, rather than wasting energy on instructions that will never be executed.
3Productivity
If the system stores all next instruction lines in volatile memory to eliminate processing unit inactivity, then productivity is improved, but energy waste increases due to storing instructions that are not executed
Solution Approach 1:
The system performs preliminary detection of branch instructions in the current instruction line before initiating the prefetch operation. This preliminary check ensures that prefetching only occurs when the next instruction line is likely to be executed, preventing energy waste on storing and discarding instructions that will not be used, while still maintaining high productivity when prefetching is beneficial.
Solution Approach 2:
The system uses feedback from the branch instruction detection to control the prefetching operation. The comparison result provides feedback that enables or disables prefetching, creating a smart control mechanism that prevents energy waste on unnecessary prefetches while maintaining productivity when prefetching is needed, thus resolving the contradiction between productivity improvement and energy loss.
Data Source
AI summary
In an embodiment a method for operating an integrated circuit includes sequentially requesting, by a processor of an integrated circuit, different instruction lines; determining, by a first comparator of the integrated circuit, while the processor processes a current instruction line supplied in response to a corresponding request, whether or not at least one of the instructions of the current instruction line is a branch instruction by comparing the at least one of the instructions to reference instructions; executing, by the processor, all instructions of the current instruction line before executing a next instruction line when the at least one instruction is a branch instruction from a program memory of the integrated circuit; and executing, by the processor, all instruction of the current instruction line before executing a next instruction line from first and second volatile memory of the integrated circuit when the at least one instruction is not a branch instruction.

