MRAM CAM ROM Patching Intermediary Mechanism
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Adaptability or versatility
If function check mechanisms are inserted in each function, then patching can be performed, but code size increases
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.
3Reliability
If entire functions are rewritten in flash memory, then bugs can be corrected, but patching granularity is coarse and overhead increases
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.
Data Source
Figure 1
Figure 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.