User-Transparent Block Cache for Out-of-Core Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing out-of-core systems face efficiency and scalability issues due to cache misses, particularly with high-performance nonvolatile memory express (NVMe) solid state drives, and implementing user-space block caches with virtual memory interfaces is complex, requiring manual code modifications and optimizations.

Innovation Solution

A user-transparent block cache system using a multi-level Software Address Translation Cache (SATC) with a shared and private cache hierarchy, managed by a runtime module that performs automatic address translations and concurrency control, allowing seamless operation without manual code rewriting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If OS page cache is used for transparent caching, then user transparency is provided, but performance bottlenecks occur due to cache misses with high-performance NVMe SSD arrays

Engineering Contradiction:
Improveuser transparencyVSAvoidI/O performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces a user-space block cache as an intermediary layer between the OS page cache and NVMe SSD arrays. This mediator handles caching operations in user space, avoiding the performance bottlenecks of kernel-space page caches while maintaining user transparency through automatic address translation via SATC.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the caching functionality into distinct components: OS page cache for basic transparency, user-space block cache for performance optimization, and SATC for address translation. This segmentation allows each component to operate optimally in its own space without interfering with others.

Inventive Principle:
Principle #1Segmentation

2Productivity

If custom block caching components are implemented in user space, then performance issues are addressed, but code modifications and implementation complexity are required

Engineering Contradiction:
ImproveI/O performanceVSAvoidimplementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The SATC system provides self-service by automatically performing address translations and managing cache operations without requiring application developers to write custom caching code. The system serves itself by handling pin/unpin operations and address translation transparently.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The user-space block cache with SATC provides universal caching functionality that works with any application requiring out-of-core processing. It combines address translation, caching, and concurrency control in a single multi-functional system that eliminates the need for application-specific cache implementations.

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

3Reliability

If pin and unpin operations are performed for every memory access, then data residency is ensured, but efficiency is reduced due to storage-to-memory address translation and concurrency control overhead

Engineering Contradiction:
Improvedata residencyVSAvoidaccess efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The SATC performs address translations and concurrency control operations in advance, before actual data access occurs. By pre-translating addresses and managing cache state, the system ensures data residency is maintained without requiring pin/unpin operations on every memory access.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The SATC acts as an intermediary between applications and the block cache, handling all pin/unpin operations and address translations. This mediator absorbs the overhead of concurrency control and address translation, preventing these operations from becoming bottlenecks during actual data access.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of operation

If a virtual memory interface is provided for user-space block cache, then ease of use is improved, but address translation complexity increases

Engineering Contradiction:
Improveinterface simplicityVSAvoidaddress translation complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The SATC serves as an intermediary that handles the complexity of address translation while presenting a simple virtual memory interface to applications. It translates virtual addresses to physical addresses and manages cache block mappings automatically, hiding the translation complexity from users.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The SATC performs address translation automatically without user intervention. The system serves itself by maintaining translation tables and performing address conversions transparently, allowing applications to use simple virtual memory interfaces while the SATC handles the complex translation operations in the background.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12585588B2Out-of-core processing of in memory programs through a user transparent block cache
Publication Date: 2026.03.24 DELL PROD LP
  • US12585588B2 patent drawing
  • US12585588B2 patent drawing
  • US12585588B2 patent drawing

AI summary

Described herein are methods and systems for out-of-core processing of in-memory programs through user-transparent block cache comprising initiating a user program. Application code with memory instructions is initiated. A low level virtual machine or LLVM compiler reads and loads the memory and inserts a software translation call before the memory instructions. The software translation call with memory instructions are received by runtime module with multi-level cache that is built on top of shared cache, and load data blocks using the caches.