Shared Controller Address Contention in SMP Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In symmetric multiprocessing (SMP) systems, address contention between multiple CPU cores requesting data from shared memory leads to inefficient computing and latency issues due to serialization effects, as conventional methods like locks and semaphores introduce operational latencies and inefficient resource utilization.

Innovation Solution

A shared controller manages secondary requests and data returns by assuming ownership of all requests, maintaining a stack of vectors for each secondary requestor and operation type, allowing intelligent data management and parallel data transmission, thereby reducing the burden on intermediary controllers and improving SMP processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple CPU cores request data from the same memory address simultaneously, then the system can process more workloads in parallel, but address contention occurs leading to serialization effects and increased latency

Engineering Contradiction:
Improveworkload processing capacityVSAvoidaddress contention latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces intermediary controllers (L3 cache controllers) as mediators between CPU cores and the shared memory controller. These intermediaries buffer and manage memory requests, allowing multiple CPU cores to submit requests simultaneously without direct contention at the memory controller. The intermediary controllers queue and forward requests in an organized manner, reducing serialization delays while maintaining parallel request acceptance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If conventional synchronization mechanisms like locks and semaphores are used to manage address contention, then data access order is maintained, but operational latencies increase and resource utilization becomes inefficient

Engineering Contradiction:
Improvedata access correctnessVSAvoidoperational latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a self-service mechanism where the memory system automatically tracks and manages data return paths without requiring external synchronization control. When data is returned from memory, the system autonomously identifies which CPU core(s) requested the data and routes it appropriately. This eliminates the need for locks and semaphores, as the system self-manages the coordination of multiple requestors through automatic path tracking and intelligent routing.

Inventive Principle:
Principle #25Self-service

3Productivity

If a shared controller manages all memory requests directly, then resource utilization can be optimized, but the controller becomes a bottleneck causing serialization effects

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidrequest processing speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the memory management function by distributing request handling across multiple intermediary controllers (L3 cache controllers), each serving specific CPU cores. This segmentation prevents any single controller from becoming a bottleneck, as requests are initially processed and buffered at the intermediary level. The shared memory controller then receives organized batches of requests rather than being overwhelmed by simultaneous individual requests from all CPU cores.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11461151B2Controller address contention assumption
Publication Date: 2022.10.04 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11461151B2 patent drawing
  • US11461151B2 patent drawing
  • US11461151B2 patent drawing

AI summary

Embodiments of the present invention are directed to a computer-implemented method for controller address contention assumption. A non-limiting example computer-implemented method includes a shared controller receiving a fetch request for data from a first requesting agent, the receiving via at least one intermediary controller. The shared controller performs an address compare using a memory address of the data. In response to the memory address matching a memory address stored in the shared controller, the shared controller acknowledges the at least one intermediary controller's fetch request, wherein upon acknowledgement, the at least one intermediary controller resets, wherein the acknowledging comprises exchanging tokens by the shared controller and the at least one intermediary controller, wherein the at least one intermediary controller transmits an identity of the first requesting agent and a type of operation associated with the requested data, and wherein the shared controller transmits an acceptance.