CPU Pool Segmentation for I/O Stall Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Inefficient CPU resource utilization due to I/O operations stalling, particularly in multi-core CPU systems, where high workloads lead to wait periods for memory access and communication, resulting in reduced performance and increased latency.

Innovation Solution

Dividing CPU cores into two or more pools based on service levels (SL) associated with I/O operations, where high SL operations are processed by one pool and lower SL operations by another, optimizing CPU resource allocation and workload distribution to prevent stalls and enhance throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If CPU cores are used to process all I/O operations in a single pool, then resource utilization is simplified, but CPU utilization becomes inefficient due to stalls caused by memory access wait periods

Engineering Contradiction:
ImproveCPU pool structureVSAvoidCPU utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides CPU cores into multiple pools (first CPU pool and second CPU pool) based on service levels. The first pool handles I/O operations with lower stall probability, while the second pool handles operations more likely to stall. This segmentation allows the system to optimize resource allocation for different operation types, improving overall CPU utilization by preventing stalls in time-sensitive operations.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If I/O operations are processed without service level differentiation, then scheduling is simpler, but response times increase due to stalls from memory access wait periods

Engineering Contradiction:
ImproveI/O scheduling mechanismVSAvoidI/O operation response time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent assigns different service levels to different I/O operations based on their characteristics and memory allocation requirements. Operations identified as likely to stall are routed to the second CPU pool, while others use the first pool. This local quality differentiation ensures that time-sensitive operations receive preferential treatment, reducing overall I/O response times.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If CPU cores are allocated dynamically based on workload patterns, then adaptability to changing conditions improves, but allocation complexity and adjustment overhead increase

Engineering Contradiction:
ImproveCPU allocation adaptabilityVSAvoidCPU pool allocation mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic CPU pool allocation where the system monitors I/O workload patterns and adjusts the distribution of CPU cores between pools accordingly. The allocation period can be dynamically adjusted based on observed workload patterns, allowing the system to adapt to changing conditions while maintaining manageable complexity through automated adjustment.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11556391B2CPU utilization for service level I/O scheduling
Publication Date: 2023.01.17 EMC IP HLDG CO LLC
  • US11556391B2 patent drawing
  • US11556391B2 patent drawing
  • US11556391B2 patent drawing

AI summary

One or more aspects of the present disclosure relate to service level input/output scheduling to control central processing unit (CPU) utilization. Input/output (I/O) operations are processed with one or more of a first CPU pool and a second CPU pool of two or more CPU pools. The second CPU pool processes I/O operations that are determined to stall any of the CPU cores.