Morton Coordinate Adjustment Processor for Multi-Dimensional Data Locality

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for storing and accessing multi-dimensional arrays in memory, such as row-major and column-major orders, often lead to inefficient data retrieval and caching, particularly for algorithms that require multi-dimensional locality, resulting in suboptimal performance and cache utilization.

Innovation Solution

The use of Morton coordinates, which map multi-dimensional data onto a single dimension while preserving locality, allowing for efficient rearrangement and conversion between different orders, is facilitated by specialized processor instructions that adjust Morton coordinates, enabling faster and more efficient data access and caching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If data is stored in row-major or column-major order, then memory storage is simple, but data retrieval efficiency and cache utilization deteriorate for algorithms requiring multi-dimensional locality

Engineering Contradiction:
Improvesimplicity of memory storageVSAvoiddata retrieval efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies Morton order (Z-order curve) to transform multi-dimensional data coordinates into a one-dimensional memory layout. By interleaving the bits of multi-dimensional indices (e.g., for a 2D array at position [x,y], the Morton index interleaves bits of x and y), the patent preserves spatial locality in a linear memory arrangement, enabling efficient cache utilization while maintaining storage simplicity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If data is rearranged to Morton order, then data access performance and cache utilization improve, but data structure complexity increases

Engineering Contradiction:
Improvedata access performanceVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs Morton order rearrangement as a preliminary data organization step before processing. By pre-transforming the data layout into Morton order, subsequent algorithms benefit from improved cache locality and access patterns without needing to perform complex coordinate transformations during execution, thus improving performance while managing complexity through upfront preparation.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If existing row-major or column-major storage is used, then implementation is straightforward, but algorithms requiring neighboring data points suffer from suboptimal performance

Engineering Contradiction:
Improveimplementation simplicityVSAvoidalgorithm performance for neighboring data access
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent uses Morton order to map multi-dimensional neighboring relationships into linear memory sequences. Points that are spatially adjacent in multi-dimensional space (e.g., pixels in an image) are stored in contiguous or near-contiguous memory locations when organized by Morton order, ensuring that algorithms accessing neighboring data points achieve optimal performance while maintaining implementation feasibility through systematic coordinate transformation.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentEP3218816B1Morton coordinate adjustment processors, methods, systems, and instructions
Publication Date: 2021.09.22 INTEL CORP
  • EP3218816B1 patent drawingFigure 1
  • EP3218816B1 patent drawingFigure 2A
  • EP3218816B1 patent drawingFigure 2B

AI summary

A processor includes a decode unit to decode an instruction that is to indicate a source packed data operand to include Morton coordinates, a dimensionality of a multi-dimensional space having points that the Morton coordinates are to be mapped to, a given dimension of the multi-dimensional space, and a destination. The execution unit is coupled with the decode unit. The execution unit, in response to the decode unit decoding the instruction, stores a result packed data operand in the destination. The result operand is to include Morton coordinates that are each to correspond to a different one of the Morton coordinates of the source operand. The Morton coordinates of the result operand are to be mapped to points in the multi-dimensional space that differ from the points that the corresponding Morton coordinates of the source operand are to be mapped to by a fixed change in the given dimension.