Per-Processor Memory Buffer Bitmaps for Multiprocessor Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multiprocessor systems face contention issues with existing memory subpool arrangements, which affect efficient memory allocation and usage tracking.

Innovation Solution

Pre-allocating memory buffers for each processor in a multiprocessor system and implementing a metadata bitmap to track the usage state of each buffer, allowing for efficient allocation and deallocation of memory resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing memory subpool arrangements are used in multiprocessor systems, then memory allocation can be performed, but contention issues arise affecting efficient memory allocation and usage tracking

Engineering Contradiction:
Improvememory allocation efficiencyVSAvoidmemory usage tracking accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the memory management system by creating per-processor memory buffers and per-processor bitmaps. Each processor has its own dedicated memory buffer pool and corresponding bitmap, dividing the shared memory management task into independent per-processor units. This segmentation eliminates contention by allowing each processor to manage its own memory buffers without interfering with others.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a bitmap as an intermediary data structure between the memory buffer and the processor. The bitmap acts as a mediator that tracks the usage state of memory buffers, providing a clear and contended-free mechanism for monitoring memory allocation status. Each processor's bitmap serves as a local intermediary that eliminates the need for global synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If per-processor memory buffers with bitmap metadata are implemented, then contention is reduced and memory management efficiency improves, but device complexity increases

Engineering Contradiction:
Improvememory management efficiencyVSAvoidmemory structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a simplified copy of the memory buffer metadata in the form of a bitmap for each processor. Instead of maintaining complex global metadata structures, each processor has a local bitmap copy that tracks only its own buffer usage. This copying approach simplifies the overall system by replacing complex shared metadata management with simple per-processor bitmaps.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent implements preliminary allocation of memory buffers to each processor during system initialization. By pre-allocating and binding memory buffers to specific processors before actual work begins, the system eliminates runtime allocation contention. The bitmap is also pre-configured to track these pre-allocated buffers, establishing the management structure in advance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10223301B2Pre-allocating memory buffers by physical processor and using a bitmap metadata in a control program
Publication Date: 2019.03.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10223301B2 patent drawing
  • US10223301B2 patent drawing
  • US10223301B2 patent drawing

AI summary

Aspects of the present invention include a method, system and computer program product that implements a memory management scheme for each processor in a multiprocessor system. The method includes pre-allocating, for each processor in a multiprocessor system, a set of memory buffers; and implementing a metadata bitmap for each pre-allocated set of memory buffers, wherein the metadata bitmap for each pre-allocated set of memory buffers comprises a plurality of bits, and wherein each of the plurality of bits is indicative of a usage state of a corresponding one of the memory buffers within each pre-allocated set of memory buffers.