# US 8,751,869 B2 · Microprogrammable device code signature

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,869 B2
- Document ID: US8751869B2
- Status: Granted
- Kind: B2
- Application number: 12/848,857
- Filed: 2010-08-02
- Published: 2011-08-04
- Granted: 2014-06-10
- Earliest claimed: 2009-08-03
- Assignees: C.R.F. Societa Consortile per Azioni
- Applicants: Claudio Genta; Alberto Manzone
- Inventors: Claudio Genta; Alberto Manzone
- Web page: https://patentgrep.com/patent/US8751869B2

## CPC

- G06F 11/28: by checking the correct order of processing (G06F11/08 - G06F11/26 take precedence; monitoring patterns of pulse trains H03K5/19)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

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.

## Claims

### Claim 1

A microprogrammable electronic device comprising a code memory storing a code comprising a number of instructions, the microprogrammable electronic device being configured to at least:
operate according to instruction cycles, each instruction cycle divided into a respective first and a respective second operating phase;
read a first instruction from the code memory at the first operating phase of an instruction cycle;
decode and execute the read first instruction at the second operating phase of the instruction cycle;
the microprogrammable electronic device comprising a signature computation unit that is configured to at least:
read a second instruction from the code memory at the second operating phase of the instruction cycle concurrently with the microprogrammable electronic device decoding and executing the first read instruction, the second operating phase having a length equal to a length of the first operating phase;
compute a signature of the code on the basis of the read second instruction; and
detect a corruption of the code stored in the code memory on the basis of the computed signature differing from a reference signature.

### Claim 2 (depends on 1)

The microprogrammable electronic device of claim 1, wherein the signature computation unit is further configured to at least:
disable operation of the microprogrammable electronic device, in response to detecting the corruption of the code stored in the code memory.

### Claim 3 (depends on 1)

The microprogrammable electronic device of claim 1, wherein the signature computation unit is further configured to at least:
compute the signature on the basis of a cyclic redundancy check (CRC).

### Claim 4 (depends on 1)

The microprogrammable electronic device of claim 1, wherein the signature computation unit is further configured to at least:
compute the signature of the code on the basis of all instructions stored in the code memory.

### Claim 5

A non-transitory medium bearing instructions that, when executed by a microprogrammable electronic device, cause the microprogrammable electronic device to perform operations comprising:
operating according to instruction cycles, each instruction cycle divided into a respective first and a respective second operating phase;
reading a first instruction from a code memory storing a code at the first operating phase of an instruction cycle;
decoding and executing the read first instruction at the second operating phase of the instruction cycle;
reading a second instruction from the code memory at the second operating phase of the instruction cycle concurrently with the microprogrammable electronic device decoding and executing the first read instruction, the second operating phase having a length equal to a length of the first operating phase;
computing a signature of the code on the basis of the read second instruction; and
detecting a corruption of the code stored in the code memory on the basis of the computed signature differing from a reference signature.

### Claim 6 (depends on 5)

The non-transitory medium of claim 5, further bearing instructions that, when executed by the microprogrammable electronic device, cause the microprogrammable electronic device to perform operations comprising:
disabling operation of the microprogrammable electronic device, in response to detecting the corruption of the code stored in the code memory.

### Claim 7 (depends on 5)

The non-transitory medium of claim 5, further bearing instructions that, when executed by the microprogrammable electronic device, cause the microprogrammable electronic device to perform operations comprising:
computing the signature on the basis of a cyclic redundancy check (CRC).

### Claim 8 (depends on 5)

The non-transitory medium of claim 5, wherein computing the signature of the code on the basis of the read second instruction comprises:
computing the signature of the code on the basis of all instructions stored in the code memory.

### Claim 9

A method, comprising:
operating according to instruction cycles, each instruction cycle divided into a respective first and a respective second operating phase;
reading a first instruction from a code memory storing a code at the first operating phase of an instruction cycle;
decoding and executing the read first instruction at the second operating phase of the instruction cycle;
reading a second instruction from the code memory at the second operating phase of the instruction cycle concurrently with decoding and executing the first read instruction, the second operating phase having a length equal to a length of the first operating phase;
computing a signature of the code on the basis of the read second instruction; and
detecting a corruption of the code stored in the code memory on the basis of the computed signature differing from a reference signature.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
disabling operation of the microprogrammable electronic device, in response to detecting the corruption of the code stored in the code memory.

### Claim 11 (depends on 9)

The method of claim 9, further comprising:
computing the signature on the basis of a cyclic redundancy check (CRC).

### Claim 12 (depends on 9)

The method of claim 9, wherein computing the signature of the code on the basis of the read second instruction comprises:
computing the signature of the code on the basis of all instructions stored in the code memory.
