Latency Scheduling Mechanism for Register Pressure Bounded Sub-Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compiler technologies face challenges in balancing instruction scheduling for latency hiding with managing register pressure, leading to either excessive register demand or high compilation overhead, especially in Just-In-Time (JIT) compilation where dynamic optimization is required within a limited time budget.

Innovation Solution

A latency scheduler divides a code block into sub-blocks based on bounded register pressure thresholds and schedules each sub-block for processing, allowing for flexible latency hiding while controlling register demand, thereby reducing compilation overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If instruction scheduling is performed before register allocation to hide latencies, then latency hiding capability is improved, but register demand increases causing spills and performance degradation

Engineering Contradiction:
Improvelatency hidingVSAvoidregister demand
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The code block is divided into multiple sub-blocks with bounded register pressure, allowing the scheduler to work on smaller units that don't exceed register allocation limits while still achieving latency hiding across the entire block

Inventive Principle:
Principle #1Segmentation

2Productivity

If static compilation tracks register demand while scheduling instructions, then scheduling optimization is improved, but compiler complexity and compilation time increase due to backtracking

Engineering Contradiction:
Improvescheduling optimizationVSAvoidcompiler complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Register pressure bounds are predetermined and applied before scheduling begins, eliminating the need for backtracking and complex optimization loops while still enabling effective latency hiding through the sub-block division strategy

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10691430B2Latency scheduling mehanism
Publication Date: 2020.06.23 INTEL CORP
  • US10691430B2 patent drawing
  • US10691430B2 patent drawing
  • US10691430B2 patent drawing

AI summary

An apparatus to facilitate instruction scheduling is disclosed. The apparatus includes one or more processors to receive a block of instructions, divide the block of instructions into a plurality of sub-blocks based on a register pressure bounded by a predetermined threshold and instructions in each of the plurality of sub-blocks for processing.