Hardware Memory Corruption Detection via Metadata Validation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory corruption, caused by programming errors or malicious attacks, leads to system malfunctions and performance degradation, and existing software solutions for detection are cumbersome and resource-intensive.
Innovation Solution
A memory corruption detection system that manages heap memory by validating pointers through a metadata table with unique identifiers for contiguous memory blocks, generating and comparing MCD unique IDs to detect and prevent memory corruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software solutions are used for memory corruption detection, then memory corruption can be detected, but the computer program runs significantly slower and the solutions are difficult to use
Solution Approach 1:
The patent replaces software-based memory corruption detection with a hardware-based solution. A memory management unit (MMU) is introduced that operates at the hardware level to validate memory addresses and detect corruption. This hardware implementation performs detection functions parallel to the main execution flow, eliminating the performance penalty of software-based approaches while maintaining detection reliability.
Solution Approach 2:
The patent introduces an intermediary memory management unit (MMU) between the processor and memory. This MMU acts as a mediator that intercepts memory access instructions, validates addresses against a metadata table, and prevents unauthorized or corrupted memory access. The MMU handles detection functions separately from the main program flow, allowing the program to execute at full speed while detection occurs in parallel through the intermediary hardware component.
2Reliability
If software debugging tools are used for memory corruption detection, then memory corruption can be detected, but the solutions are difficult to use in debugging the computer program
Solution Approach 1:
The patent implements a self-service memory protection system where the hardware automatically performs detection and prevention functions without requiring manual debugging intervention. The MMU continuously validates memory accesses, maintains a metadata table of allocated memory regions, and automatically blocks unauthorized access. This eliminates the need for developers to manually configure or monitor debugging tools, making the system both reliable and easy to use.
3Ease of manufacture
If traditional memory management is used, then memory allocation is simple, but memory corruption can occur leading to system malfunctions
Solution Approach 1:
The patent implements preliminary action by pre-establishing a metadata table that defines the boundaries and properties of allocated memory regions before actual memory access occurs. When memory is allocated, the MMU immediately registers the memory region in the metadata table with unique identifiers. This preliminary setup enables automatic validation of all subsequent memory accesses without complicating the allocation process itself, maintaining simplicity while preventing corruption through pre-configured protection.
Solution Approach 2:
The patent replaces traditional software-based memory management with a hardware-enforced system. The MMU uses hardware logic to automatically validate memory addresses against the metadata table, replacing manual or software-based checks. This hardware enforcement maintains the simplicity of memory allocation from the programmer's perspective while providing robust, automatic protection against memory corruption that cannot be bypassed by software errors.
Data Source
AI summary
Memory corruption detection technologies are described. A processor core of a processor can receive a first pointer produced by a first memory access instruction of an application being executed by the processor. The first pointer includes a first memory address of a first memory object and a third metadata value and the memory address identifies a memory block in the first set of one or more contiguous memory blocks. The processor core compares the third metadata value to the first metadata value and communicates a memory corruption detection message to the application when the third metadata value does not match the first metadata value. The processor core provides the first memory object to the application when the third metadata value matches the first metadata value.


