Unified Memory Access via Immutable Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managed operating systems face performance overhead due to the need to copy data between isolation contexts, which hinders I/O performance and introduces security vulnerabilities from unchecked pointers in unmanaged languages, while managed languages provide correctness benefits but at the cost of performance.

Innovation Solution

Implementing a unified memory access model with immutable buffers that allow zero-copy I/O semantics, enabling data transfer across system layers without copying, and using zero-copy caching and type-safe type casting to enhance performance and security in both managed and unmanaged code systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is transferred between isolation contexts in managed operating systems, then security and correctness are improved, but I/O performance deteriorates due to required data copying

Engineering Contradiction:
Improvesoftware correctnessVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies the copying principle in reverse by eliminating unnecessary copies. Instead of copying data between isolation contexts, the system uses zero-copy I/O semantics where data remains in immutable buffers and is accessed directly by multiple computing entities through controlled memory access, thereby maintaining security while eliminating performance overhead

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of immutable buffers with controlled access semantics. These buffers act as intermediaries between isolated computing entities, allowing data sharing without copying while maintaining isolation guarantees through the garbage collector's ability to discern and protect these special buffer regions

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If unchecked pointers are used in unmanaged languages, then I/O throughput is improved, but security vulnerabilities increase

Engineering Contradiction:
ImproveI/O throughputVSAvoidsecurity vulnerabilities
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent changes the fundamental parameter of memory access semantics by introducing immutable buffers with special garbage collector discernment. This allows the system to maintain type safety and security checks while achieving unchecked-pointer-like performance, as the garbage collector can efficiently identify and skip these immutable buffer regions without compromising security

Inventive Principle:
Principle #35Parameter changes

3Reliability

If managed programming languages are used, then software correctness is improved, but performance deteriorates due to abstraction layer overhead

Engineering Contradiction:
Improvesoftware qualityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent eliminates the performance penalty of managed languages by removing the need for data copying between isolation contexts. Immutable buffers allow managed code to access data directly without abstraction layer overhead, achieving native-like performance while retaining the safety benefits of managed programming

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The immutable buffer mechanism serves as an intermediary that reconciles the needs of managed code safety with unmanaged code performance. The garbage collector's ability to discern these buffers creates a transparent interface that provides both security checking and high-performance access

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2941707B1Shared and managed memory unified access
Publication Date: 2016.11.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2941707B1 patent drawingFigure 1
  • EP2941707B1 patent drawingFigure 2
  • EP2941707B1 patent drawingFigure 3A~3B

AI summary

A managed memory in which multiple computing entities each have a corresponding entity-specific portion that is subject to garbage collection. An immutable buffer is located outside of managed memory. For a given computing entity, the corresponding managed memory portion contains entity-specific objects that can be accessed by a specific computing entity, but not by the other multiple computing entities. For one or more of the entity-specific managed memory portions, the portion also includes a reference to shared memory, such as an immutable buffer. The reference is structured to be ignored by the garbage collector, though the reference may appear just as a normal object in the managed memory portion. Thus, a unified memory access model is made possible in which the methods for a computing entity to access a regular object in managed memory is similar to how the computing entity accesses shared memory.