Loop Scheduling for VLIW Processors Using Priority-Based Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In VLIW and CGRA processors, efficiently scheduling multiple loops to maximize instruction-level parallelism and minimize execution cycles is challenging due to constraints in hardware resources and data dependencies, leading to underutilization of execution units and increased power consumption.
Innovation Solution
A loop scheduling method that prioritizes loops based on iteration count and cycle requirements, assigns instructions to available execution units, and utilizes unrolling and predication guarding to optimize resource utilization, allowing lower priority loops to be scheduled using resources freed by higher priority loops.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple loops are scheduled simultaneously to maximize instruction-level parallelism, then processor productivity improves, but device complexity increases due to resource allocation constraints
Solution Approach 1:
The patent segments the scheduling process into distinct priority levels (higher priority loops and lower priority loops). The scheduler first allocates execution units to higher priority loops, then assigns remaining units to lower priority loops. This segmentation simplifies the overall scheduling complexity by breaking it into manageable hierarchical stages while maintaining high instruction-level parallelism through concurrent loop execution.
2Reliability
If execution units are allocated to higher priority loops, then loop execution accuracy improves, but loss of time increases for lower priority loops
Solution Approach 1:
The patent applies preliminary action by first scheduling higher priority loops and determining their execution unit requirements before allocating resources to lower priority loops. The scheduler performs preliminary allocation to critical loops, then utilizes remaining execution units and idle cycles for lower priority loops. This approach ensures that higher priority loops receive guaranteed resources for accurate execution while lower priority loops utilize leftover resources, minimizing their time loss without compromising overall system reliability.
3Productivity
If loop scheduling is optimized to reduce execution cycles, then productivity improves, but use of energy increases due to intensified processing
Solution Approach 1:
The patent implements continuity of useful action by continuously utilizing available execution units across different priority levels. Instead of leaving execution units idle during higher priority loop execution, the scheduler continuously assigns lower priority loop instructions to available units. This continuous utilization reduces total execution cycles and improves productivity while distributing energy consumption more efficiently across the processing timeline, preventing energy waste from idle hardware resources.
Data Source
AI summary
Provided is a loop scheduling method including scheduling a first loop using execution units, and scheduling a second loop using execution units available as a result of the scheduling of the first loop. An n-th loop (n>2) may be scheduled using a result of scheduling an (n−1)-th loop, similar to the (n−1)-th loop. The first loop may be a higher priority loop than the second loop.


