Multi-threaded Polling Device Driver for CPU Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current device drivers in computer systems face performance and latency issues due to single-threaded operations, especially in non-real-time operating systems, leading to inefficient CPU utilization and unbalanced processor core usage.

Innovation Solution

Implementing a multi-threaded polling device driver that partitions device operations into multiple threads, allowing concurrent control of devices and dynamic adjustment of execution quanta to optimize thread execution and relinquish processor cores, thereby improving performance and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a device driver is implemented as a single execution thread driven by device interrupts, then the design and implementation is simple, but the performance and latency are poor especially on heavy loaded systems

Engineering Contradiction:
Improveease of design and implementationVSAvoidperformance and latency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent divides a single device driver thread into multiple worker threads that can operate concurrently. Each worker thread is assigned to handle specific devices or device groups, allowing parallel processing of interrupt requests and improving overall system performance while maintaining manageable complexity through structured organization

Inventive Principle:
Principle #1Segmentation

2Loss of time

If a device driver is changed from interrupt driven operation to polling operation, then the latency issue is improved, but the CPU utilization increases decreasing the efficiency of operations when the device is lightly loaded

Engineering Contradiction:
ImprovelatencyVSAvoidCPU utilization
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The patent implements a hybrid approach where the device driver can dynamically switch between interrupt-driven and polling modes based on system conditions and device activity levels. This allows the system to optimize for low latency when needed while conserving CPU resources during normal operation, resolving the contradiction between latency improvement and CPU efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent modifies operational parameters by introducing configurable polling intervals and interrupt thresholds that can be adjusted based on device criticality and system load. This allows the driver to adapt its behavior to balance latency requirements against CPU utilization, improving efficiency in both lightly and heavily loaded conditions

Inventive Principle:
Principle #35Parameter changes

3Productivity

If a polling device driver is split into multiple threads, then the overhead for polling operation is decreased, but the latency increases

Engineering Contradiction:
Improveefficiency of device driverVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the polling operations into multiple specialized worker threads, each responsible for specific device groups or task types. This segmentation allows parallel execution of polling operations across multiple threads, decreasing overall overhead while maintaining low latency through targeted, efficient polling intervals for each device category

Inventive Principle:
Principle #1Segmentation

4Loss of time

If a driver thread is pinned to a particular processor core to reduce latency in a multi-core system, then the performance is increased, but the processor core is underutilized and CPU utilization becomes unbalanced

Engineering Contradiction:
ImprovelatencyVSAvoidprocessor core utilization
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent implements dynamic thread-to-core assignment where driver threads can be migrated between processor cores based on system conditions, device activity patterns, and load balancing requirements. This dynamic assignment allows the system to maintain low latency by keeping critical threads on appropriate cores while simultaneously improving overall CPU utilization by redistributing workloads as conditions change

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent designs worker threads with multi-functional capabilities that can handle multiple device types and operation modes. This universality allows a single thread to effectively serve multiple functions across different processor cores, improving core utilization while maintaining the low-latency benefits of dedicated thread assignments when needed

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

Data Source

PatentUS10719466B2System and method for implementing a multi-threaded device driver in a computer system
Publication Date: 2020.07.21 RAMBUS INC
  • US10719466B2 patent drawing
  • US10719466B2 patent drawing
  • US10719466B2 patent drawing

AI summary

A polling device driver is partitioned into a plurality of driver threads for controlling a device of a computer system. The device has a first device state of an unscouted state and a scouted state, and a second device state of an inactive state and an active state. A driver thread of the plurality of driver threads determines that the first device state of the device state is in the unscouted state, and changes the first state of the device to the scouted state. The driver thread further determines that the second device state of the device is in the inactive state and changes the second device state of the device to the active state. The driver thread executes an operation on the device during a pre-determined time slot configured for the driver thread.