Processor Memory Write Alignment Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for relocating and initializing memory in computing systems are inefficient, particularly when data sizes are not aligned with register widths, leading to increased application wait times and performance degradation due to the need for multiple instructions to write partial data entities.

Innovation Solution

The system employs control logic in processors to determine alignment of destination buffers with register widths, using aligned and unaligned write operations to minimize the number of write operations, regardless of data size alignment, thereby reducing wait times and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If multiple instructions are used to write data entities smaller than register width, then data can be written with power-of-2 size alignment, but the number of instructions increases and application wait time increases

Engineering Contradiction:
Improvedata alignment precisionVSAvoiddata write speed
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent segments the data write operation into two distinct phases: an aligned write operation that handles the majority of data using power-of-2 size alignment, and an unaligned write operation that handles the remaining bytes. This segmentation allows the system to optimize for both alignment efficiency and complete data coverage, reducing the total number of instructions needed compared to traditional approaches that require multiple power-of-2 aligned writes for non-aligned data sizes

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing an unaligned write operation that writes exactly the remaining bytes needed after the aligned write, rather than continuing with additional power-of-2 aligned writes. This partial action approach writes only the necessary portion of data (the remainder bytes) using a single unaligned instruction, thereby reducing the total instruction count and application wait time while maintaining data integrity

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If multiple instructions are used for data relocation when data size is not aligned with register width, then complete data can be transferred, but performance of applications decreases due to increased wait time

Engineering Contradiction:
Improvedata transfer completenessVSAvoidapplication wait time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The data transfer process is segmented into an aligned transfer phase and an unaligned transfer phase. The aligned phase handles the bulk of data using efficient power-of-2 size operations, while the unaligned phase handles the remainder bytes in a single operation. This segmentation ensures complete data transfer reliability while minimizing the time applications must wait, as the unaligned phase completes the transfer in one instruction rather than multiple instructions

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The unaligned write operation performs partial action by transferring only the remaining bytes that were not covered by the aligned write operation. This partial transfer approach ensures complete data relocation while minimizing wait time, as it uses a single instruction to handle the remainder bytes instead of requiring multiple additional instructions that would increase application wait time

Inventive Principle:
Principle #16Partial or excessive action

3Manufacturing precision

If traditional write operations are used for data initialization, then data can be written with proper alignment, but the number of instructions increases when data size is not aligned with register width

Engineering Contradiction:
Improvememory initialization alignmentVSAvoidnumber of write operations
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The memory initialization process is segmented into an aligned initialization phase and an unaligned initialization phase. The aligned phase initializes the majority of memory using power-of-2 size alignment for optimal performance, while the unaligned phase initializes the remaining bytes in a single operation. This segmentation reduces the total number of write operations compared to traditional methods that would require multiple aligned writes to cover non-aligned data sizes

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The unaligned write operation performs partial initialization of the remaining bytes that were not covered by the aligned write operation. This partial initialization approach reduces device complexity by using a single unaligned write instruction instead of multiple aligned write instructions, thereby reducing the total number of operations while maintaining proper memory initialization for the complete data size

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9870318B2Technique to improve performance of memory copies and stores
Publication Date: 2018.01.16 ADVANCED MICRO DEVICES INC
  • US9870318B2 patent drawing
  • US9870318B2 patent drawing
  • US9870318B2 patent drawing

AI summary

A system and method for efficiently relocating and initializing a block of memory of the computer system. For data initialization and data relocation, multiple registers in a processor are used for intermediate storage of data to be written into the memory. Regardless of whether the amount of data to initialize or relocate is aligned with the register data size, the processor writes the data into the destination buffer with write operations that only utilize the register data size. The write operations utilize the register data size when each of the start and the end of the destination buffer is aligned with the register width, when the start of the destination buffer is unaligned with the register width, when a source buffer and the destination buffer are unaligned with one another for a copy operation, and when the source buffer and the destination buffer overlap.