Sequence Partitioning for Multi-Core Schedule Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge lies in optimizing the execution time of programs on multi-core chips where not all computational resources are utilized due to data dependencies between instructions, leading to inefficiencies in parallel processing.

Innovation Solution

The approach involves partitioning the sequence of instructions and buffers into smaller partitions, optimizing each partition individually, and then merging them to create a more efficient schedule that maximizes resource utilization and reduces overall execution time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are assigned to be executed on spare units to increase utilization, then resource utilization is improved, but execution time is increased due to data dependencies

Engineering Contradiction:
Improveresource utilizationVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The sequence of instructions is divided into multiple partitions, where each partition can be independently optimized and executed on different computational units. This segmentation allows parallel execution of independent partitions while maintaining data dependency constraints within each partition, thereby improving resource utilization without significantly increasing overall execution time.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the entire sequence is optimized as a whole, then global optimality is achieved, but computational resources and time for optimization are excessive

Engineering Contradiction:
Improveoptimization qualityVSAvoidoptimization computational resources
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The optimization process is segmented into multiple iterations, where each iteration optimizes a specific partition of the instruction sequence. This divide-and-conquer approach reduces the computational complexity of each optimization iteration while achieving near-global optimality through cumulative improvements across all partitions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The sequence is pre-partitioned into multiple segments before optimization begins. This preliminary action allows subsequent optimization iterations to work on smaller, more manageable partitions, reducing the computational resources required while maintaining effective optimization quality.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If more computational resources are packed into chips, then computational power cost is reduced, but resource utilization is not maximized for every task

Engineering Contradiction:
Improvecomputational power efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By partitioning the instruction sequence and assigning different partitions to different computational units, the system effectively utilizes multiple computational resources simultaneously. This segmentation strategy enables better utilization of the computational power packed into chips, reducing the need for additional hardware resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically assigns different partitions of the instruction sequence to different computational units based on availability and dependency constraints. This dynamic resource allocation maximizes the utilization of packed computational resources while adapting to changing execution conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12079632B2Sequence partition based schedule optimization
Publication Date: 2024.09.03 EDGECORTIX INC
  • US12079632B2 patent drawing
  • US12079632B2 patent drawing
  • US12079632B2 patent drawing

AI summary

Sequence partition based schedule optimization is performed by generating a sequence and a schedule based on the sequence, dividing the sequence into a plurality of sequence partitions based on the schedule and the data dependency graph, each sequence partition including a portion of the plurality of instructions and a portion of the plurality of buffers, performing, for each sequence partition, a plurality of partition optimizing iterations, and merging the plurality of sequence partitions to produce a merged schedule.