Pipelined Store-Mark Acquisition Deadlock Avoidance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deadlocks occur when multiple threads attempt to store-mark the same cache lines during processor operations, leading to performance issues due to the disparity between microprocessor clock speeds and memory access speeds.

Innovation Solution

A system that processes store-mark requests in a pipelined manner while keeping track of their state, removing or preventing store-marks associated with younger requests if they fail, to avoid deadlocks by suppressing or removing store-mark requests and reordering stores to cache lines marked by a thread, ensuring exclusive access and merging of consecutive and non-consecutive stores without violating memory models.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If store-mark requests are processed in a pipelined manner to improve processing efficiency, then productivity is improved, but deadlock conditions may occur when multiple threads attempt to store-mark the same cache lines

Engineering Contradiction:
Improvestore-mark request processing efficiencyVSAvoiddeadlock avoidance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary tracking of store-mark requests and their states before actual execution. By maintaining state information for each store-mark request and identifying younger requests in advance, the system can preemptively remove store-marks that would cause deadlocks, allowing pipelined processing to proceed without blocking

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism (store-mark state tracking and removal logic) that mediates between competing store-mark requests from different threads. This intermediary monitors request states and selectively removes store-marks to break potential deadlock cycles, enabling the pipelined processor to maintain both high throughput and deadlock freedom

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If store-marks are maintained on cache lines to enable reordering of stores and merging of non-consecutive stores, then manufacturing precision of memory ordering is improved, but device complexity increases due to additional tracking and management mechanisms

Engineering Contradiction:
Improvememory ordering accuracyVSAvoidstore-mark management complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system applies store-marks locally to specific cache lines rather than globally to all memory. Each cache line independently carries store-mark information, allowing the memory system to maintain precise ordering control only where needed (on lines with pending stores) while leaving other lines unaffected, thus balancing precision with complexity

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the store-mark management into discrete, manageable components: individual store-mark requests per thread, per-cache-line store-mark flags, and thread-specific younger request tracking. This segmentation allows the complex memory ordering problem to be broken into smaller, independently manageable units that can be processed in a pipelined fashion

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8732407B2Deadlock avoidance during store-mark acquisition
Publication Date: 2014.05.20 SUN MICROSYSTEMS INC
  • US8732407B2 patent drawing
  • US8732407B2 patent drawing
  • US8732407B2 patent drawing

AI summary

Some embodiments of the present invention provide a system that avoids deadlock while attempting to acquire store-marks on cache lines. During operation, the system keeps track of store-mark requests that arise during execution of a thread, wherein a store-mark on a cache line indicates that one or more associated store buffer entries are waiting to be committed to the cache line. In this system, store-mark requests are processed in a pipelined manner, which allows a store-mark request to be initiated before preceding store-mark requests for the same thread complete. Next, if a store-mark request fails, within a bounded amount of time, the system removes or prevents store-marks associated with younger store-mark requests for the same thread, thereby avoiding a potential deadlock that can arise when one or more other threads attempt to store-mark the same cache lines.