Shifting Register Queue for Software Pipelining
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software pipelining techniques, such as Modulo Variable Expansion, increase code size significantly and are complex to implement, especially in cost and power-constrained environments like embedded systems, due to the complexity of register renaming logic in Rotating Register Files.
Innovation Solution
A shifting register queue system that emulates the behavior of a rotating register file without additional address decoding logic, allowing value movement between registers and reducing complexity by implementing shifting within the register file, enabling efficient allocation and reuse of registers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If Modulo Variable Expansion is used to support software pipelining, then code size increases significantly
Solution Approach 1:
The patent extracts the modulo operation logic from the address decoding path and implements it separately through a shifting register queue mechanism. This separation allows the register file to support software pipelining without requiring extensive code expansion, as the shifting mechanism handles the temporal value tracking independently.
Solution Approach 2:
The patent introduces a shifting register queue as an intermediary structure between the register file and the control logic. This intermediary handles the complexity of tracking temporal values of loop variables, allowing the main register file to remain simple while still supporting software pipelining operations.
2Reliability
If Rotating Register File is used to support software pipelining, then implementation complexity increases
Solution Approach 1:
The patent extracts the complex modulo operation and renaming logic from the address decoding path and implements it through a simpler shifting mechanism in the register queue. This removes the computational complexity from the critical address decoding path while maintaining software pipelining functionality.
Solution Approach 2:
The patent uses a shifting register queue that copies and shifts values through successive registers to represent temporal values. This copying mechanism replaces the complex renaming logic, using simple value propagation through the queue to track variable states across loop iterations.
3Reliability
If Rotating Register File is used, then register resources are wasted due to limited rotating section length
Solution Approach 1:
The patent implements a dynamic shifting mechanism where the register queue can be configured with flexible length and the shifting behavior can be controlled dynamically. This allows optimal utilization of register resources by adapting the queue size and shifting pattern to the specific software pipelining requirements, eliminating the waste associated with fixed-size rotating sections.
4Reliability
If address decoding logic is added for Rotating Register File, then critical path increases
Solution Approach 1:
The patent extracts the modulo operation and renaming logic from the address decoding critical path and implements it through a separate shifting register queue mechanism. This removal of complex logic from the critical path maintains high address decoding speed while still providing full software pipelining support through the independent shifting mechanism.
Data Source
AI summary
A system for supporting software pipelining using a shifting register queue is provided. The system includes a register file that comprises a plurality of registers. The register file is operable to receive a shift mask signal and a shift signal and to identify a shifting register queue within the register file based on the shift mask signal. The shifting register queue comprises a plurality of queue registers. The register file is further operable to shift the contents of the queue registers based on the shift signal.


