Loop Scheduling for VLIW Processors Using Priority-Based Resource Allocation

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

VSEngineering 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

Engineering Contradiction:
Improveinstruction-level parallelismVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

2Reliability

If execution units are allocated to higher priority loops, then loop execution accuracy improves, but loss of time increases for lower priority loops

Engineering Contradiction:
Improveloop execution accuracyVSAvoidexecution time for lower priority loops
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If loop scheduling is optimized to reduce execution cycles, then productivity improves, but use of energy increases due to intensified processing

Engineering Contradiction:
Improveexecution cycle reductionVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

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.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9292287B2Method of scheduling loops for processor having a plurality of functional units
Publication Date: 2016.03.22 SAMSUNG ELECTRONICS CO LTD
  • US9292287B2 patent drawing
  • US9292287B2 patent drawing
  • US9292287B2 patent drawing

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.