Cache Controller Atomic Primitive Execution Rejection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processor systems, concurrent accesses to shared resources can lead to unexpected or erroneous behavior, necessitating better control over atomic primitives to manage resource usage efficiently.

Innovation Solution

A method where a data item is exclusively assigned to a first processor core for executing an atomic primitive, with a cache controller managing multiple data states to determine if the execution is complete, and returning a rejection message to other processor cores until the primitive is finished, allowing other cores to perform tasks concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a data item is exclusively assigned to a first processor core for executing an atomic primitive, then data consistency and reliability are improved, but other processor cores must wait for the completion of the atomic primitive, reducing system productivity

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a cache controller as an intermediary between processor cores and the data item. The cache controller monitors the execution state of the atomic primitive and manages access requests from multiple cores. When the first core is executing the atomic primitive, the cache controller intercepts requests from other cores and returns rejection messages, preventing them from accessing the data item. This intermediary mechanism maintains data consistency without requiring other cores to continuously poll or wait actively, thereby preserving system productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If processor cores continuously check for completion of an atomic primitive, then access control reliability is improved, but energy consumption and processing overhead increase

Engineering Contradiction:
Improveaccess controlVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The cache controller automatically monitors the execution state of the atomic primitive and proactively manages access requests without requiring processor cores to continuously poll. When a request is received, the cache controller自行 checks whether the atomic primitive is complete and makes the access decision, eliminating the need for cores to repeatedly query the execution status. This self-service approach reduces energy consumption and processing overhead while maintaining reliable access control.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If a cache protocol with multiple data states is implemented, then precise control over data access is improved, but device complexity increases

Engineering Contradiction:
Improvedata access controlVSAvoidcache controller complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The cache controller implements a state machine with distinct states (e.g., exclusive state, shared state, invalid state) to track the data item's access status. Each state has well-defined transition rules and associated actions. This segmentation of the control logic into discrete states simplifies the overall operation: the cache controller only needs to track which state the data item is in and execute the corresponding predefined actions, making the complex state management tractable and easier to operate.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11321146B2Executing an atomic primitive in a multi-core processor system
Publication Date: 2022.05.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11321146B2 patent drawing
  • US11321146B2 patent drawing
  • US11321146B2 patent drawing

AI summary

The present disclosure relates to a method for a computer system comprising a plurality of processor cores, including a first processor core and a second processor core, wherein a cached data item is assigned to a first processor core, of the plurality of processor cores, for exclusively executing an atomic primitive. The method includes receiving, from a second processor core at a cache controller, a request for accessing the data item, and in response to determining that the execution of the atomic primitive is not completed by the first processor core, returning a rejection message to the second processor core.