Microprogrammable Device Code Signature Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesignature computation reliabilityVSAvoidexecution control complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvecode execution efficiencyVSAvoidcorruption detection assurance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If the signature computation involves all elements in code memory, then complete corruption detection is achieved, but the computation time increases

Engineering Contradiction:
Improvecorruption detection accuracyVSAvoidsignature computation time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8751869B2Microprogrammable device code signature
Publication Date: 2014.06.10 CENTRO RICERCHE FIAT SCPA
  • US8751869B2 patent drawing
  • US8751869B2 patent drawing
  • US8751869B2 patent drawing

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.