Processor Self-Relative Addressing for Persistent Memory Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The use of absolute memory addresses in non-volatile memory systems leads to conflicts and instability due to data persistence across multiple executions of an application, making it difficult to manage simultaneous access and invalid address handling, especially with the advent of persistent data structures that outlast a single application execution.

Innovation Solution

Implementing self-relative memory addressing modes in processors that allow for position-independent pointers, which store a memory offset relative to an absolute address, enabling support for invalid addresses through reserved offset values and mechanisms to handle NULL pointers without impacting performance or code size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of stationary object

If absolute memory addresses are used in non-volatile memory systems, then data can be stored persistently across multiple executions, but address conflicts and instability occur due to data persistence

Engineering Contradiction:
Improvedata persistenceVSAvoidaddress stability
Core Design Contradiction:
Duration of action of stationary objectVSReliability

Solution Approach 1:

The patent transforms absolute memory addresses into self-relative addresses by changing the addressing parameter. Instead of using fixed absolute addresses that cause conflicts when data persists across executions, the system uses addresses relative to a base pointer, allowing the same logical address to map to different physical locations in subsequent executions while maintaining data persistence.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If self-relative memory addressing modes are implemented, then position-independent pointers are enabled, but additional instructions and code modifications are required

Engineering Contradiction:
Improveposition-independent addressingVSAvoidinstruction complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent makes the load and store instructions universal by enabling them to operate in both absolute addressing mode and self-relative addressing mode through a mode bit. This multi-functionality allows the same instruction set to handle different addressing schemes without requiring separate instructions, thereby reducing the increase in device complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If reserved offset values are used to indicate invalid memory addresses, then NULL pointer support is provided, but performance may be impacted due to additional validation checks

Engineering Contradiction:
ImproveNULL pointer supportVSAvoidaddress validation performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements self-service by having the processor automatically detect invalid memory addresses through the reserved offset value mechanism. When a self-relative address calculation results in the reserved offset value, the processor automatically generates a data access exception without requiring explicit software validation checks, thereby maintaining performance while supporting NULL pointers.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250021342A1Processor Supporting Self-Relative Addressing Modes
Publication Date: 2025.01.16 ORACLE INT CORP
  • US20250021342A1 patent drawing
  • US20250021342A1 patent drawing
  • US20250021342A1 patent drawing

AI summary

A processor may implement self-relative memory addressing by providing load and store instructions that include self-relative addressing modes. A memory address may contain a self-relative pointer, where the memory address stores a memory offset that, when added to the memory address, defines another memory address. The self-relative addressing mode may also support invalid memory addresses using a reserved offset value, where a load instruction providing the self-relative addressing mode may return a NULL value or generate an exception when determining that the stored offset value is equal to the reserved offset value and where a store instruction providing the self-relative addressing mode may store the reserved offset value when determining that the pointer is an invalid or NULL memory address.