IP Library Granted Patent US 9,342,294
Granted Patent B2
US 9,342,294 · App. 13/468,144 · Granted May 17, 2016

Information processing device comprising a read-only memory and a method for patching the read-only memory

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,342,294
App. No.
13/468,144
Granted
May 17, 2016
Kind
B2
Abstract

Patching a read-only memory, including a program executable by a processor is performed with a MRAM-based CAM device connected to the address bus and comparing in the background the addresses requested by the processor with the elements of a vector of addresses. The match-in-place operation is done in parallel on all the elements of the vector and typically is performed in less than a clock cycle. If a match is found, the CAM device outputs a diversion address that's used to retrieve a substitution machine code element from a flash memory 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.

Claims (22)

1. A method of patching executable instructions or data in a read-only memory accessible by a processor including a hardware interrupt interface and input bus, comprising the steps of:

providing a CAM device storing a vector of addresses of cells that must be patched in the read-only memory,

comparing the addresses of executable instructions or data in the read-only memory with the elements of the vector stored in the CAM device,

if the address requested by the processor matches with one of the elements in the vector of addresses to be patched, presenting to the processor a substitution executable instruction or data to replace an executable instruction or data already provided to the processor input bus when addressed by the processor in the read-only memory with a patched executable instruction or data stored in a patch memory; the CAM device including a MRAM-TCAM device comprising a plurality of MRAM memory cells, each MRAM memory cell comprising at least one magnetic tunnel junction, and

interrupting the processor by applying an interrupt signal to the interrupted interface if the address requested by the processor matches with one of the elements of the vector, so as to prevent the reading of the executable instruction of data provided on the processor input bus by the read-only memory, and

removing the interrupt signal from the interrupt interface after application of the patched executable instruction or data to the processor input bus to cause the processor to read the patched executable instruction or data.

2. The method of claim 1 , including a step of retrieving the substitution executable instruction or data from a second memory, based on an address stored in a target vector included in the CAM device.

3. An information processing device comprising a read-only memory, comprising executable instructions or data, a processor including a hardware interrupt interface and input bus, said processor being configured for addressing said read-only memory and fetching said executable instructions or data across a bus, a CAM device connected to said bus and arranged to compare the addresses requested by the processor with the elements of a vector of addresses to be patched and, if the address requested by the processor matches with one of the elements of the vector, to present to the processor a substitution executable instruction or data to replace an executable instruction or data already provided to the processor input bus when addressed by the processor in the read-only memory with a patched executable instruction or data stored in a patch memory; the CAM device being a MRAM device comprising a plurality of MRAM memory cells, each MRAM memory cell comprising at least one magnetic tunnel junction, wherein the CAM device is arranged to interrupt the processor by applying an interrupt signal to the interrupt interface if the address requested by the processor matches with one of the elements of the vector of addresses to be patched, said interrupt signal thereby interrupting the processor to prevent the reading of the executable instruction or data provided on the processor input bus by the read-only memory, and wherein the interrupt signal is removed from the interrupt interface after application of the patched executable instruction or data to the processor input bus to cause the processor to read the patched executable instruction or data.

4. The information device of claim 3 , comprising a second memory containing patched instructions or data, wherein the CAM device includes a target vector storing, for each element of the vector of addresses to be patched, the address in the second memory of the substitution executable instruction or data.

5. The information device of claim 3 , contained in a smart card.

6. An information processing device comprising a read-only memory, comprising:

executable instructions or data stored in the read-only memory,

a processor including dedicated hardware interrupt input and input bus, said processor being configured for addressing said read-only memory and fetching said executable instructions or data across a bus,

a CAM device connected to said bus and having an output connected to said interrupt input and being arranged to compare the addresses requested by the processor with the elements of a vector of addresses to be patched and, if the address requested by the processor matches with one of the elements of the vector, to present to the processor a substitution executable instruction or data to replace an executable instruction or data already provided to the processor input bus when addressed by the processor in the read-only memory with a patched executable instruction or data stored in a patch memory;

the CAM device being a MRAM device comprising a plurality of MRAM memory cells, each MRAM memory cell comprising at least one magnetic tunnel junction, wherein the CAM device is arranged to interrupt the processor by applying an interrupt signal directly to the interrupt input if the address requested by the processor matches with one of the elements of the vector of addresses to be patched, so as to prevent the reading of the executable instruction of data provided on the processor input bus by the read-only memory, and wherein the interrupt signal is removed from the interrupt interface after application of the patched executable instruction or data to the processor input bus to cause the processor to read the patched executable instruction or data.

7. The information device of claim 6 , comprising a second memory containing patched instructions or data, wherein the CAM device includes a target vector storing, for each element of the vector of addresses to be patched, the address in the second memory of the substitution executable instruction or data.

8. The information device of claim 6 , contained in a smart card.

9. An information processing device comprising a read-only memory, comprising executable instructions or data, a processor including a hardware interrupt interface and input bus, said processor being configured for addressing said read-only memory and fetch said executable instructions or data across a bus, a CAM device connected to said bus and arranged to compare the addresses requested by the processor with the elements of a vector of addresses to be patched and, if the address requested by the processor matches with one of the elements of the vector, to present to the processor a substitution executable instruction or data to replace an executable instruction or data already provided to the processor input bus when addressed by the processor in the read-only memory with a patched executable instruction or data stored in a patch memory;

the CAM device being a MRAM device comprising a plurality of MRAM memory cells, each MRAM memory cell comprising at least one magnetic tunnel junction, wherein the CAM device is configured such that, if the address requested by the processor matches with one of the elements of the vector of addresses to be patched, the CAM device will,

interrupt the processor by applying an interrupt signal to the interrupt interface so as to prevent the reading of the executable instruction of data provided on the processor input bus by the read-only memory, and wherein the interrupt signal is removed from the interrupt interface after application of the patched executable instruction or data to the processor input bus to cause the processor to read the patched executable instruction or data,

retrieve, from an address in a patch memory which is associated with said address requested by the processor, patched executable instructions or data, and

present the patched executable instructions or data to the processor in replacement of executable instructions or data at the address requested by the processor.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2024
From: CROCUS TECHNOLOGY SA
To: ALLEGRO MICROSYSTEMS, LLC
Reel/Frame 066350/0669 →
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2023
From: LLC "SBERBANK INVESTMENTS"
To: CROCUS TECHNOLOGY, INC.
Reel/Frame 064783/0420 →
CHANGE OF ADDRESS Recorded Aug 21, 2023
From: CROCUS TECHNOLOGY SA
To: CROCUS TECHNOLOGY SA
Reel/Frame 064658/0730 →
SECURITY INTEREST Recorded Apr 13, 2018
From: CROCUS TECHNOLOGY, INC.
To: LLC "SBERBANK INVESTMENTS"
Reel/Frame 045938/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2012
From: NACCACHE, DAVID
To: CROCUS TECHNOLOGY SA
Reel/Frame 028521/0891 →