Microprogrammable Device Code Signature Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing microprogrammable devices face challenges in reliably detecting code corruption due to electromagnetic interference, as signature computation may be unreliable or fail when the code is corrupted, leading to unpredictable execution and potential undetected damage.
Innovation Solution
A microprogrammable device is configured to operate in two-stage instruction cycles, where the code memory is read and instructions are decoded and executed in one phase, and a signature is computed and checked in another phase, using a signature computation unit to compare the computed signature with a reference signature to detect corruption and disable the device if necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the processor executes the signature computation function periodically with lowest priority, then the device can detect code corruption, but the signature computation may fail or be unreliable when the code is corrupted
Solution Approach 1:
The instruction cycle is segmented into two distinct phases: a first phase for normal code execution and a second phase for signature computation. This segmentation ensures that signature computation occurs in a controlled, predictable manner independent of the corrupted code execution path, thereby improving reliability without excessive complexity.
Solution Approach 2:
The signature computation is performed as a preliminary check within the instruction cycle structure, specifically during the second phase when the code memory is read. This preliminary action allows corruption detection to occur before corrupted code can cause significant damage, and the structured timing ensures reliable execution.
2Productivity
If the processor executes other code functions with higher priority, then the device operates efficiently, but the signature computation function may not be executed when code is corrupted
Solution Approach 1:
The signature computation function is executed periodically at fixed intervals within the instruction cycle structure. This periodic execution ensures that regardless of the priority of other code functions, the signature computation will occur at predictable times, assuring corruption detection capability while maintaining overall system productivity.
Solution Approach 2:
By embedding the signature computation as a preliminary action within the structured instruction cycle, the system ensures that corruption detection is performed as part of the normal operational rhythm rather than as an interrupt or lower-priority task, guaranteeing execution even when other high-priority functions are running.
3Measurement precision
If the signature computation involves all elements in code memory, then complete corruption detection is achieved, but the computation time increases
Solution Approach 1:
The signature computation is integrated into the continuous operation of the instruction cycle, utilizing the natural read operations of the code memory. By performing signature computation during the second phase when code memory is already being accessed for instruction fetch, the system achieves complete corruption detection without adding significant computation time, as the useful action of reading code continues uninterrupted.
Data Source
AI summary
A microprogrammable electronic device has a code memory storing a software and/or firmware code having instructions. The microprogrammable electronic device is configured to compute a signature of the code stored in the code memory, and to detect any corruption of the code stored in the code memory on the basis of the computed signature. The microprogrammable electronic device is characterized by being further configured to operate according to instruction cycles, each divided into a respective first and a respective second operating phase; to read a first instruction from the code memory at the first operating phase of an instruction cycle; to decode and execute the read first instruction at the second operating phase of the instruction cycle; to read a second instruction from the code memory at the second operating phase of the instruction cycle; and to compute the signature on the basis of the read second instruction.


