Unaligned Memory Access Concurrency via Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory access methods fail to guarantee block concurrency when accessing data that is not naturally aligned, leading to potential partial updates and inconsistencies, especially when multiple CPUs access the same memory locations simultaneously.

Innovation Solution

The solution involves accessing memory data in aligned groups based on the address alignment size, ensuring that each group is accessed as a single unit, even if the address is not integral to the memory reference size, by using modified memory reference instructions that provide different levels of block concurrency, such as byte, two-byte, four-byte, and eight-byte concurrency, depending on the alignment size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If vector load and store instructions are used for unaligned memory accesses, then access speed is improved, but consistency and block concurrency are not guaranteed

Engineering Contradiction:
Improvememory access speedVSAvoidmemory access consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent segments unaligned memory access into multiple aligned access operations. When a vector load/store instruction cannot provide block concurrency for unaligned addresses, the system breaks down the unaligned access into multiple smaller aligned accesses that can be executed with consistency guarantees, then combines the results to achieve the desired unaligned access effect.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple CPUs access the same memory locations simultaneously without alignment guarantees, then processing parallelism is improved, but partial updates and data inconsistencies occur

Engineering Contradiction:
Improveprocessing parallelismVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary alignment analysis before executing memory access operations. By determining the alignment characteristics of memory addresses in advance, the system can pre-plan the access strategy (whether to use vector instructions or segmented aligned accesses), ensuring that subsequent parallel operations maintain consistency without requiring runtime synchronization overhead.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If conventional memory access methods are used for unaligned addresses, then implementation simplicity is maintained, but block concurrency cannot be guaranteed

Engineering Contradiction:
Improveimplementation simplicityVSAvoidblock concurrency guarantee
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements a dynamic memory access method that adapts to the alignment characteristics of each access request. The system dynamically selects between different access strategies (vector instructions for aligned accesses, segmented aligned accesses for unaligned accesses) based on real-time analysis of address alignment, providing both simplicity for aligned cases and reliability for unaligned cases without requiring complex static configuration.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3227773B1Method for accessing data in a memory at an unaligned address
Publication Date: 2020.05.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP3227773B1 patent drawingFigure 1
  • EP3227773B1 patent drawingFigure 2
  • EP3227773B1 patent drawingFigure 3

AI summary

A method for accessing data in a memory coupled to a processor comprising: receiving a memory reference instruction for accessing data of a first size at an address in the memory; determining an alignment size of the address in the memory; and accessing the data of the first size in one or more groups of data by accessing each group of data block concurrently. The groups of data have sizes that are multiples of the alignment size.