ECC Memory Controller for Dangling Pointer and Secure Access Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current ECC memory controllers are not equipped to detect software errors or malicious activities effectively, particularly in debugging software programs or identifying unauthorized access to secure memory regions.

Innovation Solution

An ECC memory controller system that includes a state machine to write erroneous data words and syndromes to memory addresses, ensuring that ECC errors occur when these addresses are read, thereby detecting dangling pointers and unauthorized access by generating ECC errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If ECC memory is used to detect and correct data errors, then reliability of data storage is improved, but the ability to detect software errors and malicious activities is not provided

Engineering Contradiction:
Improvedata storage reliabilityVSAvoidsoftware error detection capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The ECC memory controller is enhanced to perform multiple functions: traditional ECC error detection and correction, plus detection of software errors through dangling pointer detection, and detection of malicious activities through secure mode monitoring. The syndrome generator and comparator work together to detect both hardware-induced bit errors and software logic errors, making the ECC system universal for multiple types of error detection.

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

Solution Approach 2:

The system performs preliminary actions by writing specific patterns to freed memory locations before they can be reused, and by establishing secure mode indicators in memory regions before unauthorized access attempts occur. This preliminary marking enables the ECC controller to detect subsequent improper accesses as errors, allowing detection of software bugs and security violations before they cause system failure.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional ECC syndrome generation is used, then single bit errors can be corrected, but software errors such as dangling pointers cannot be detected

Engineering Contradiction:
Improveerror correction capabilityVSAvoidsoftware error detectability
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The ECC system applies different quality checks to different memory locations based on their state. Freed memory locations are marked with specific patterns that trigger error detection, while allocated memory undergoes normal ECC checking. The secure mode indicator creates local quality differentiation between secure and non-secure memory regions, enabling detection of unauthorized accesses without affecting normal operation in secure regions.

Inventive Principle:
Principle #3Local quality

3Productivity

If memory is freed and reused, then memory utilization efficiency is improved, but dangling pointer access cannot be detected

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoiddangling pointer detection
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

When memory is freed, the system performs a preliminary action of writing a specific pattern (e.g., all zeros or all ones) to the freed location and updating the ECC syndrome accordingly. This preliminary marking allows the ECC controller to detect any subsequent access to the freed memory as an error, enabling dangling pointer detection while maintaining high memory utilization through efficient reuse of freed blocks.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10360104B2ECC memory controller to detect dangling pointers
Publication Date: 2019.07.23 SILICON LABORATORIES INC
  • US10360104B2 patent drawing
  • US10360104B2 patent drawing
  • US10360104B2 patent drawing

AI summary

A system and method of utilizing ECC memory to detect software errors and malicious activities is disclosed. In one embodiment, after a pool of memory is freed, every data word in that pool is modified to ensure that an ECC error will occur if any data word in that pool is read again. In another embodiment, the ECC memory controller is used to detect and prevent non-secure applications from accessing secure portions of memory.