Per-Thread TLB Flush Tracking for Power-Efficient Processor Wakeups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems waste power by issuing TLB Shootdown interrupts to processors that have already flushed their TLB information, causing unnecessary wake-ups from low-power states during memory re-allocation, leading to increased overall power consumption.

Innovation Solution

Implementing a mechanism where the OS tracks TLB flushes on a per-thread basis using a special register space to identify processors that have already flushed their TLB information, preventing unnecessary TLB Shootdown interrupts and allowing processors to remain in a sleep state longer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the OS issues TLB Shootdown interrupts to all processors during memory re-allocation, then TLB consistency is maintained, but power consumption increases due to unnecessary processor wake-ups

Engineering Contradiction:
ImproveTLB consistencyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the processor set into two groups: processors that have flushed their TLBs (and don't need interrupts) and processors that haven't flushed (and do need interrupts). This segmentation is achieved through per-thread TLB flush tracking, allowing the OS to selectively issue interrupts only to the necessary subset of processors, thereby maintaining TLB consistency while reducing unnecessary wake-ups and power consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a feedback mechanism where processors report their TLB flush status to the OS through a tracking data structure. This feedback allows the OS to make informed decisions about which processors need TLB Shootdown interrupts, enabling selective interrupt issuance that maintains consistency while minimizing power consumption from unnecessary wake-ups.

Inventive Principle:
Principle #23Feedback

2Loss of energy

If the OS tracks TLB flushes on a per-thread basis using register space, then unnecessary interrupts are prevented, but device complexity increases

Engineering Contradiction:
Improvepower wasteVSAvoidtracking mechanism complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent implements self-service by having processors automatically update their own TLB flush status in the tracking data structure when they flush their TLBs. This self-updating mechanism eliminates the need for complex centralized tracking logic, reducing overall system complexity while still enabling the OS to identify which processors need interrupts and prevent unnecessary wake-ups.

Inventive Principle:
Principle #25Self-service

3Use of energy by moving object

If processors remain in sleep state longer, then power consumption decreases, but response time to legitimate interrupts increases

Engineering Contradiction:
Improvepower consumptionVSAvoidinterrupt response time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent applies preliminary action by having processors flush their TLBs and update their flush status before entering sleep states. This preliminary flushing ensures that when processors wake up, they are ready to handle legitimate TLB-related interrupts immediately, maintaining fast response times for necessary interrupts while allowing longer sleep durations to reduce overall power consumption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9081707B2Apparatus and method for tracking TLB flushes on a per thread basis
Publication Date: 2015.07.14 INTEL CORP
  • US9081707B2 patent drawing
  • US9081707B2 patent drawing
  • US9081707B2 patent drawing

AI summary

A method is described that includes recognizing that TLB information of one or more hardware threads is to be invalidated. The method also includes determining which ones of the one or more hardware threads are in a state in which TLB information is flushed. The method also includes directing a TLB shootdown to those of the or more hardware threads that are in a state in which TLB information is not flushed.