Copy Engine Version Information Management for Memory Corruption Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory corruption detection methods, both software-based and hardware-based, face inefficiencies, particularly in handling block memory operations, which can lead to program crashes and security vulnerabilities due to the lack of effective version information management.

Innovation Solution

A copy engine is introduced to handle version information associated with block memory operations, comparing stored version information with expected information to detect mismatches and either preserve or overwrite it, ensuring only valid memory regions are accessed and modified during operations like copying, erasing, or compressing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software-based memory corruption detection methods are used, then memory safety can be improved, but processing efficiency deteriorates due to overhead

Engineering Contradiction:
Improvememory safetyVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

A copy engine is introduced as an intermediary component between the processor and memory system. This dedicated hardware unit handles block memory operations and version information management, offloading these tasks from the main processor while ensuring memory corruption detection. The copy engine maintains version information in dedicated storage and compares it during operations, providing memory safety without burdening the main processing pipeline.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If hardware-based memory corruption detection is implemented, then detection reliability is improved, but device complexity increases

Engineering Contradiction:
Improvedetection reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory system is segmented into distinct functional components: a copy engine for handling block operations, version information storage, and version comparison logic. This segmentation allows each component to be optimized independently and simplifies the overall system architecture by distributing functionality across specialized units rather than concentrating all detection logic in a single complex module.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The copy engine performs self-service by automatically managing version information during block memory operations. It retrieves version information, compares it with expected values, and handles detection without requiring intervention from the main processor or external software, thereby reducing system complexity while maintaining reliable detection.

Inventive Principle:
Principle #25Self-service

3Reliability

If version information is managed during block memory operations, then memory corruption detection is improved, but operation overhead increases

Engineering Contradiction:
Improvememory corruption detectionVSAvoidoperation overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Version information is prepared and stored in advance in dedicated storage before block memory operations occur. This preliminary action allows the copy engine to perform quick comparisons during operations without needing to generate or search for version information in real-time, significantly reducing operation overhead while maintaining detection capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9043559B2Block memory engine with memory corruption detection
Publication Date: 2015.05.26 ORACLE INT CORP
  • US9043559B2 patent drawing
  • US9043559B2 patent drawing
  • US9043559B2 patent drawing

AI summary

Techniques for handling version information using a copy engine. In one embodiment, an apparatus comprises a copy engine configured to perform one or more operations associated with a block memory operation in response to a command. Examples of block memory operations may include copy, clear, move, and/or compress operations. In one embodiment, the copy engine is configured to handle version information associated with the block memory operation based on the command. The one or more operations may include operating on data in a cache and/or modifying entries in a memory. In one embodiment, the copy engine is configured to compare version information in the command with stored version information. The copy engine may overwrite or preserve version information based on the command. The copy engine may be a coprocessing element. The copy engine may be configured to maintain coherency with other copy engines and/or processing elements.