Shifting Register Queue for Software Pipelining

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If Modulo Variable Expansion is used to support software pipelining, then code size increases significantly

Engineering Contradiction:
Improvesoftware pipelining supportVSAvoidcode size
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If Rotating Register File is used to support software pipelining, then implementation complexity increases

Engineering Contradiction:
Improvesoftware pipelining supportVSAvoidregister renaming logic
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #26Copying

3Reliability

If Rotating Register File is used, then register resources are wasted due to limited rotating section length

Engineering Contradiction:
Improvesoftware pipelining supportVSAvoidregister resources
Core Design Contradiction:
ReliabilityVSLoss of substance

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.

Inventive Principle:
Principle #15Dynamics

4Reliability

If address decoding logic is added for Rotating Register File, then critical path increases

Engineering Contradiction:
Improveregister renamingVSAvoidaddress decoding critical path
Core Design Contradiction:
ReliabilityVSSpeed

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7836279B2Method and system for supporting software pipelining using a shifting register queue
Publication Date: 2010.11.16 STMICROELECTRONICS INT NV
  • US7836279B2 patent drawing
  • US7836279B2 patent drawing
  • US7836279B2 patent drawing

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.