SMP OS Thread Context Virtualization for Interrupt Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiprocessor operating systems do not effectively utilize lightweight thread contexts in MIPS MT ASE processors, limiting their ability to appear as multiple CPUs to the operating system, which hinders scalability and efficient resource management.

Innovation Solution

Modifying SMP operating systems to enable lightweight thread contexts within a multithreaded processor to function as physical CPUs, allowing each thread context to control interrupt requests and share resources like TLBs and floating-point coprocessors, thereby enabling the operating system to schedule threads across multiple thread contexts as if they were separate processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If lightweight thread contexts are used in MIPS MT ASE processors, then resource utilization and scalability are improved, but the ability to appear as multiple independent CPUs to the operating system deteriorates

Engineering Contradiction:
ImprovescalabilityVSAvoidindependence of thread contexts
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates virtual copies of CPU functionality at the thread context level. Each lightweight thread context is configured with its own program counter, register file, and exception handling capability, effectively copying essential CPU state components to enable the operating system to treat each thread context as an independent processor while maintaining resource sharing benefits

Inventive Principle:
Principle #26Copying

2Productivity

If thread contexts share resources like TLBs and floating-point coprocessors, then resource utilization is improved, but interrupt handling and exception domain management become more complex

Engineering Contradiction:
Improveresource utilizationVSAvoidinterrupt management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the exception domain into virtual processing elements (VPEs), where each VPE is assigned a specific subset of thread contexts. This segmentation allows interrupt requests to be routed to specific VPEs rather than requiring global interrupt management across all thread contexts, simplifying the complexity while maintaining resource sharing benefits

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces virtual processing elements (VPEs) as intermediary layers between the operating system and lightweight thread contexts. VPEs act as mediators that manage interrupt requests and exception domains, allowing thread contexts to share resources while maintaining clear interrupt handling boundaries through the VPE abstraction layer

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If SMP operating systems are modified to treat thread contexts as physical CPUs, then scheduling efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvescheduling efficiencyVSAvoidoperating system configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes thread contexts universally compatible with standard SMP operating system interfaces by implementing full CPU-like functionality including program counters, register files, and exception handling. This universality allows existing SMP scheduling mechanisms to work directly with thread contexts without requiring fundamental changes to operating system architecture, improving scheduling efficiency while limiting complexity increases

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

Data Source

PatentUS7836450B2Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
Publication Date: 2010.11.16 MIPS TECH INC
  • US7836450B2 patent drawing
  • US7836450B2 patent drawing
  • US7836450B2 patent drawing

AI summary

A multiprocessing system is disclosed. The system includes a multithreading microprocessor, including a plurality of thread contexts (TCs), each comprising a first control indicator for controlling whether the TC is exempt from servicing interrupt requests to an exception domain for the plurality of TCs, and a virtual processing element (VPE), comprising the exception domain, configured to receive the interrupt requests, wherein the interrupt requests are non-specific to the plurality of TCs, wherein the VPE is configured to select a non-exempt one of the plurality of TCs to service each of the interrupt requests, the VPE further comprising a second control indicator for controlling whether the VPE is enabled to select one of the plurality of TCs to service the interrupt requests. The system also includes a multiprocessor operating system (OS), configured to initially set the second control indicator to enable the VPE to service the interrupts, and further configured to schedule execution of threads on the plurality of TCs, wherein each of the threads is configured to individually disable itself from servicing the interrupts by setting the first control indicator, rather than by clearing the second control indicator.