Thread Scheduling via Hardware Sharing Hierarchy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of modern multiprocessor systems with multiple processing units and shared hardware components leads to performance issues due to contention over shared resources, necessitating improved techniques for managing software threads and hardware components.

Innovation Solution

A computer-based mechanism that creates a hierarchical graph structure representing hardware sharing relationships between processing units, allowing for load balancing and thread scheduling based on affinity and resource availability, to optimize resource allocation and reduce contention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processing units and shared hardware components are used to increase computing power, then system productivity is improved, but device complexity increases and contention over shared resources occurs

Engineering Contradiction:
Improvesystem performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the multiprocessor system into processing units and hardware components, creating a hierarchical graph structure that represents sharing relationships. This segmentation allows the operating system to manage complexity by breaking down the system into manageable units with defined relationships, enabling controlled access and allocation of shared resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical graph structure as an intermediary between the operating system and the physical hardware components. This graph acts as a mediator that abstracts the complex sharing relationships, allowing the OS to make scheduling decisions without directly managing the intricate web of shared resources between multiple processing units.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If processor sets abstraction is used to manage resource allocation, then ease of operation is improved, but adaptability to variations in multiprocessor architecture is limited

Engineering Contradiction:
Improveresource managementVSAvoidarchitecture adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic hierarchical graph structure that can adapt to different multiprocessor architectures. The graph is constructed based on actual hardware sharing relationships, allowing the system to dynamically adjust to variations in architecture. This dynamic approach enables the same resource management mechanisms to work across different processor configurations without requiring architecture-specific implementations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The hierarchical graph structure serves as a universal abstraction that can represent various multiprocessor architectures. By using a unified graph-based model that can capture different sharing relationships (processor-to-processor, processor-to-component, component-to-component), the system achieves architecture independence while maintaining ease of operation through consistent resource management interfaces.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If threads are assigned to processing units without considering hardware sharing relationships, then scheduling simplicity is maintained, but contention over shared resources increases

Engineering Contradiction:
Improveresource utilizationVSAvoidresource contention
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent incorporates feedback mechanisms where the hierarchical graph structure provides information about hardware sharing relationships to the thread scheduling decisions. The system uses this feedback to identify potential contention scenarios and adjust thread assignments accordingly, placing threads on processing units that minimize shared resource conflicts while maximizing resource utilization.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary construction of the hierarchical graph structure that encodes hardware sharing relationships before thread scheduling begins. This preliminary action allows the system to pre-identify potential contention points and plan thread assignments that avoid these conflicts, rather than reacting to contention after it occurs. The graph structure is built in advance to guide intelligent scheduling decisions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8156495B2Scheduling threads on processors
Publication Date: 2012.04.10 ORACLE AMERICAN INC
  • US8156495B2 patent drawing
  • US8156495B2 patent drawing
  • US8156495B2 patent drawing

AI summary

A device, system, and method are directed towards managing threads and components in computer system with one or more processing units. A processor group has an associated hierarchical structure containing nodes that may correspond to processing units, hardware components, or abstractions. The processor group hierarchy may be used to assign one or more threads to one or more processing units, by traversing the hierarchy based on various factors. The factor may include load balancing, affinity, sharing of components, loads, capacities, or other characteristics of components or threads. A processor group hierarchy may be used in conjunction with a designated processor set.