Pipeline Registers Enable Combo-Move Instructions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing processing units face inefficiencies when moving multiple values between general-purpose registers, as executing separate instructions for each move operation can be inefficient and power-consuming, and often require additional registers for temporary storage.
Innovation Solution
The use of pipeline registers as temporary storage within processing units to execute combo-move instructions, which allow multiple values to be moved between registers in fewer clock cycles without the need for additional general-purpose registers, thereby reducing power consumption and avoiding register unavailability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If separate instructions are executed for each move operation between GPRs, then data movement can be performed, but processing efficiency decreases and power consumption increases
Solution Approach 1:
The patent combines multiple separate move instructions into a single combo-move instruction that can transfer multiple values between GPRs in one operation. This merging of operations reduces the total number of instructions executed, thereby improving processing efficiency and reducing power consumption associated with instruction fetch, decode, and execution cycles.
Solution Approach 2:
The combo-move instruction provides multi-functionality by enabling simultaneous movement of multiple data values between different GPR pairs. This single instruction can handle various data transfer scenarios (swap, rotate, parallel move) that would otherwise require multiple separate instructions, enhancing productivity without proportionally increasing power consumption.
2Ease of operation
If additional GPRs are used for temporary storage during value swapping, then move operations can be completed, but register availability decreases and device complexity increases
Solution Approach 1:
The patent introduces pipeline registers as intermediary storage elements that are distinct from the GPR file. These pipeline registers serve as temporary holding locations during combo-move operations, allowing values to be swapped between GPRs without requiring additional GPRs. This mediator approach maintains GPR availability while enabling complex move operations.
Solution Approach 2:
The patent separates the storage dimension by introducing a different type of register (pipeline register) that exists outside the traditional GPR hierarchy. This dimensional separation allows temporary storage functionality to be added without increasing the number of general-purpose registers, thus maintaining register availability while enabling efficient value swapping operations.
3Loss of time
If multiple separate instructions are used to move values between GPRs, then data transfer can be performed, but the number of clock cycles increases
Solution Approach 1:
The patent merges multiple sequential move instructions into a single combo-move instruction that executes in one clock cycle. By combining the functionality of multiple instructions (e.g., swapping two values, rotating three values) into one operation, the patent eliminates the sequential execution overhead and reduces the total clock cycles required, thereby reducing time loss and improving productivity.
Solution Approach 2:
The patent performs preliminary organization of data transfer paths and pipeline register allocations before instruction execution. This pre-preparation allows the combo-move instruction to execute multiple value transfers simultaneously or in tightly coordinated fashion within a single clock cycle, eliminating the sequential delays that would occur with separate instructions.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
In one example, a method includes responsive to receiving, by a processing unit, one or more instructions requesting that a first value be moved from a first general purpose register (GPR) to a third GPR and that a second value be moved from a second GPR to a fourth GPR, copying, by an initial logic unit and during a first clock cycle, the first value to an initial pipeline register, copying, by the initial logic and during a second clock cycle, the second value to the initial pipeline register, copying, by a final logic unit and during a third clock cycle, the first value from a final pipeline register to the third GPR, and copying, by the final logic unit and during a fourth clock cycle, the second value from the final pipeline register to the fourth GPR.