Microprocessor Pipeline Livelock Detection and Cache Write Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreaded pipelined microprocessor systems face livelock situations where threads are unable to be fully processed due to cache overwrites, leading to continuous delays and inefficiencies, especially in systems with limited cache memory.

Innovation Solution

Implement a method to detect livelock states and prevent threads from changing cache contents, reducing the number of threads that can modify caches to prevent data overwrites and allow previously stalled threads to be processed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads are processed simultaneously through the pipeline, then productivity is improved, but livelock occurs due to cache overwrites

Engineering Contradiction:
Improvethread processing throughputVSAvoidcache data integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by detecting the livelock state before it fully develops and preventing cache writes from threads that would cause overwrites. The system monitors thread progress and cache access patterns, identifying when multiple threads are competing for the same cache lines, and preemptively restricts cache write access for certain threads to break the livelock cycle before it causes complete processing failure.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary control mechanism that mediates between multiple threads and the cache memory. This intermediary monitors cache access requests from different threads, detects potential conflict scenarios where threads would overwrite each other's data, and selectively grants or denies cache write permissions to prevent livelock while maintaining productive thread execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If cache size is increased to prevent overwrites, then reliability is improved, but device complexity and resource consumption increase

Engineering Contradiction:
Improvecache data integrityVSAvoidcache memory size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting thread access parameters to the cache rather than changing the cache size itself. The system modifies which threads are permitted to write to cache memory based on detected livelock conditions, changing the access control parameters to prevent overwrites while maintaining a compact cache size suitable for embedded systems.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses copying by creating virtual copies or representations of cache access permissions rather than physically expanding the cache. The system implements software-based cache coherence management that virtualizes cache access control, allowing multiple threads to safely access cache resources without requiring additional physical cache memory beyond what is needed for actual data storage.

Inventive Principle:
Principle #26Copying

3Reliability

If thread cache access is restricted to prevent livelock, then reliability is improved, but productivity decreases

Engineering Contradiction:
Improvelivelock preventionVSAvoidthread execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making cache access permissions dynamic rather than static. The system continuously monitors thread execution progress and cache access patterns, adjusting which threads can write to cache in real-time based on current system state. This dynamic control allows the system to permit cache writes during normal operation (maintaining productivity) while restricting writes only when livelock conditions are detected (ensuring reliability).

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements periodic action by regularly checking for livelock conditions and adjusting cache access permissions in periodic intervals. The system periodically evaluates thread progress and cache state, temporarily restricting cache writes for affected threads just long enough to break the livelock cycle, then gradually restoring normal cache access as threads complete their execution, thereby minimizing productivity impact while ensuring reliability.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8719555B2Method for overcoming livelock in a multi-threaded system
Publication Date: 2014.05.06 ARM NORWAY
  • US8719555B2 patent drawing
  • US8719555B2 patent drawing

AI summary

A microprocessor pipeline arrangement 1 includes a plurality of functional units P1, P2, P3, . . . , PN. A number of the functional units P1, P3, PN have access to a respective cache memory C1, C3, CN from which it can retrieve data needed to process threads that pass through the pipeline. The pipeline arrangement 1 also includes a number of monitors to determine when the system enters a state of livelock (e.g. inter-cache livelocks, intra-cache livelocks and/or “near-livelock” situations): a top-level monitor MT to detect livelock situations in the pipeline as a whole; and second-level (“local”) monitors M1 and M3 associated with individual caches C1 and C3.If the system is determined to have entered a livelock state, e.g. by the top-level monitor MT, the number of threads able to change the contents of one or more of the caches C1, C3, CN is reduced.