MRAM CAM ROM Patching Intermediary Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing ROM patching methods require special compilation tools, increase code size, and cause performance degradation due to overhead from function checks and indirection table cycles, with coarse granularity necessitating entire function rewriting.

Innovation Solution

An information processing device with a MRAM-based Content-Addressable Memory (CAM) device that compares requested addresses with a vector of addresses to be patched, allowing for transparent substitution of executable instructions or data without code increase or performance penalty, using magnetic tunnel junctions and thermally-assisted switching for efficient patching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If special compilation tools and function check mechanisms are used for ROM patching, then patching capability is enabled, but code size increases and performance degrades

Engineering Contradiction:
Improvepatching capabilityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a CAM (Content-Addressable Memory) device as an intermediary between the processor and ROM. The CAM stores patch addresses and automatically intercepts memory access requests, comparing them against the patch address vector. When a match is found, the CAM redirects the access to the patched location. This intermediary mechanism enables patching without modifying the original ROM content or requiring function check insertions, thus maintaining execution performance while providing patching capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patch address vector is pre-loaded into the CAM device before program execution begins. This preliminary action allows the patching mechanism to be ready and operational from the start, eliminating the need for runtime compilation or function check insertion. The CAM continuously monitors memory access requests and automatically applies patches based on the pre-configured address vector, ensuring no performance penalty during execution.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If function check mechanisms are inserted in each function, then patching can be performed, but code size increases

Engineering Contradiction:
Improvepatching capabilityVSAvoidcode size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts the patching logic from the application code itself and places it in a separate CAM device. Instead of embedding function checks within each function in the ROM, the patching capability is taken out and implemented as an independent hardware component that operates transparently in the background. This separation allows the original ROM content to remain unchanged and minimal, while the CAM handles all patching operations externally.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If entire functions are rewritten in flash memory, then bugs can be corrected, but patching granularity is coarse and overhead increases

Engineering Contradiction:
Improvebug correctionVSAvoidpatching granularity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the patching mechanism to operate at the instruction level rather than the function level. The CAM device compares memory access requests against a vector of patch addresses, allowing individual instructions or small groups of instructions to be patched independently. This fine-grained segmentation enables precise bug correction without requiring entire functions to be rewritten, reducing both the overhead and complexity of the patching process.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2523105B1Information processing device comprising a read-only memory and a method for patching the read-only memory
Publication Date: 2019.12.04 CROCUS TECHNOLOGY
  • EP2523105B1 patent drawingFigure 1
  • EP2523105B1 patent drawingFigure 2~3

AI summary

Patching a read-only memory (120), including a program executable by a processor (170) is performed with a MRAM-based CAM device (160) connected to the address bus and comparing in the background the addresses requested by the processor (170) with the elements of a vector of addresses (xi). The match-in-place operation is done in parallel on all the elements of the vector xi and typically is performed in less than a clock cycle. If a match is found, the CAM device outputs a diversion address (yi) that's used to retrieve a substitution machine code element from a flash memory (220) that is presented to the processor in lieu of the one addressed in the ROM. This patching scheme is totally transparent, has little overhead, and extreme granularity.