Memory Allocation Method for Multi-Processor Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor systems with limited memory allocation, existing memory allocation algorithms are inefficient due to the need for sophisticated algorithms that require significant overhead, leading to waste and inefficiencies when handling small data segments, especially with traditional sixteen byte alignment methods that use headers for tracking allocations.

Innovation Solution

A method that allows for non-standard memory allocations by locating unallocated memory addresses based on multiples of the requested data size, eliminating the need for headers and aligning bytes on address boundaries, thereby enabling more efficient storage and retrieval of small data segments without the overhead of traditional systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If traditional sixteen byte alignment methods with headers are used for memory allocation, then data can be stored with proper alignment, but memory overhead increases and storage density decreases

Engineering Contradiction:
Improvedata alignmentVSAvoidmemory overhead
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent extracts and eliminates the header component from traditional memory allocation structures. By removing the header that traditionally precedes each allocated block, the system achieves headerless allocation where data can be stored immediately at the allocated address without any overhead structure, directly reducing memory overhead while maintaining alignment through alternative tracking mechanisms

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the alignment parameter from fixed sixteen-byte alignment to flexible alignment based on data size multiples. Instead of forcing all allocations to sixteen-byte boundaries with headers, the system allocates memory in multiples of the actual data size (1-byte, 2-byte, 4-byte, 8-byte alignments), optimizing both alignment precision and memory utilization

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If sophisticated memory allocation algorithms are used, then memory can be managed dynamically, but the overhead becomes too large for small processing units with limited memory

Engineering Contradiction:
Improvedynamic memory managementVSAvoidallocation overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the memory management approach into size-based categories (1-byte, 2-byte, 4-byte, 8-byte, 16-byte alignments). By dividing memory allocation into discrete size segments rather than using a single complex algorithm for all allocations, the system achieves dynamic management capability while keeping each segment's handling simple and overhead minimal

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by implementing only the essential memory allocation functionality needed for small processing units. Rather than implementing a full-featured sophisticated allocation algorithm, the system uses a streamlined approach that handles the core allocation needs with minimal overhead, sacrificing some advanced features to reduce complexity

Inventive Principle:
Principle #16Partial or excessive action

3Ease of manufacture

If fixed sixteen byte allocation blocks are used, then memory allocation is simple, but small data segments waste significant memory space

Engineering Contradiction:
Improveallocation simplicityVSAvoidmemory waste
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent introduces dynamics into the allocation system by making the allocation block size variable based on the data being stored. Instead of fixed sixteen-byte blocks, the system dynamically selects allocation sizes (1, 2, 4, 8, or 16 bytes) matching the actual data size, enabling both simplicity and efficiency by adapting to each allocation request

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by optimizing each memory allocation according to its specific data size requirements. Rather than applying a uniform allocation strategy throughout memory, the system tailors the allocation size locally to match each data segment, ensuring that each byte allocated serves a specific purpose without waste

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2153330B1Arrangements for memory allocation
Publication Date: 2012.11.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP2153330B1 patent drawingFigure 1
  • EP2153330B1 patent drawingFigure 2
  • EP2153330B1 patent drawingFigure 3

AI summary

In one embodiment a method is disclosed for allocating memory for a processor unit in a group of processing units. The method can include receiving a memory allocation request where the request can indicate a number of binary segments to be stored. The method can determine if the number indicates a nonstandard allocation, and locate an unallocated memoryaddress based on a multiple of the number if the number indicates a nonstandard allocation. The method can also include locating an unallocated memory address from a poolofmemoryaddresses, where the poolofaddresses includes the integer multiples of the binarysegments and excludes addresses that are two times the number of binary segments such that the address can be utilized to determine the allocation.