IP Library Granted Patent US 11,281,807
Granted Patent B2
US 11,281,807 · App. 16/403,275 · Granted Mar 22, 2022

Processing system, related integrated circuit and method

Inventors: Rosalino Critelli (Misterbianco, IT); Giuseppe Guarnaccia (Augusta, IT); Delphine Le-Goascoz (Grenoble, FR); Nicolas Anquet (Grenoble, FR)
Assignees: STMICROELECTRONICS (GRENOBLE 2) SAS; STMICROELECTRONICS S.R.L.
G06F21/72G06F3/0619G06F3/0623G06F3/0659G06F3/0679G06F11/1004G06F13/1668G06F21/572G06F21/85H04L9/0894
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 11,281,807
App. No.
16/403,275
Granted
Mar 22, 2022
Kind
B2
Abstract

In one example, an integrated circuit includes a register interface that includes a plurality of registers, a bus interface configured to monitor write requests transmitted to the register interface, where the write requests include a target address and data to be written. The bus interface is configured to receive the data to be written to the plurality of registers and register selection signals for selecting a respective register in the plurality of registers. The integrated circuit includes a monitoring circuit configured to monitor the register selection signals between the bus interface and the plurality of registers in order to determine when the data to be written to the plurality of registers is valid.

Claims (67)

1. A processing system comprising:

a non-volatile memory configured to store a firmware to be executed by a processor coupled to a bus system;

a co-processor coupled to the bus system, wherein the co-processor comprises a register interface comprising a plurality of registers and a processing circuit configured to perform a processing operation as a function of data stored in the plurality of registers, wherein the plurality of registers comprise a first set of registers configured to store a first set of configuration information and a second set of registers configured to store a second set of configuration information, wherein the register interface comprises:

a bus interface configured to monitor write requests transmitted via the bus system to the register interface, wherein the write requests comprise a target address and data to be written, wherein each register of the plurality of registers is associated with a respective address, wherein the bus interface is configured to set for each register of the plurality of registers a respective register selection signal when the target address of a write request corresponds to the address associated with the respective register, wherein each register is configured to store the data to be written when the respective register selection signal is set;

a cyclic redundancy check calculation circuit configured to compute a cyclic redundancy check value as a function of the data to be written to the first set of registers; and

a masking circuit configured to:

monitor the register selection signals associated with the registers of the first set of registers in order to determine a sequence of registers to which data has been stored;

compare the sequence of registers with a reference sequence;

when the comparison indicates that the sequence of registers corresponds to the reference sequence, providing the computed cyclic redundancy check value to the bus interface; and

when the comparison indicates that the sequence of registers does not correspond to the reference sequence, providing a value being independent from the computed cyclic redundancy check value to the bus interface.

2. The processing system according to claim 1 , wherein the cyclic redundancy check calculation circuit comprises:

a register or latch for storing the computed cyclic redundancy check value;

an XOR gate configured to generate a signal by combining the data to be written to the first set of registers and the cyclic redundancy check value stored in the register or latch; and

a combinational logic circuit configured to generate the computed cyclic redundancy check value as a function of the signal generated by the XOR gate.

3. The processing system according to claim 2 , wherein the cyclic redundancy check calculation circuit comprises a multiplexer for selecting a reference signal as a function of the register selection signals, and wherein the XOR gate is configured to generate the signal by combining the data to be written to the first set of registers, the cyclic redundancy check value stored in the register or latch and the selected reference signal.

4. The processing system according to claim 1 , wherein the processing circuit is a cryptographic processing circuit configured to perform cryptographic operations as a function of at least one cryptographic key, and wherein the first set of registers is configured to store the at least one cryptographic key.

5. The processing system according to claim 4 , wherein the non-volatile memory is arranged to store a bootloader firmware configured to store a cryptographic key to the first set of registers.

6. The processing system according to claim 4 , wherein the second set of register comprises:

a register for storing the data to be processed by the cryptographic processing circuit; and/or

a register for storing an address containing the data to be processed by the cryptographic processing circuit.

7. The processing system according to claim 6 , wherein the co-processor has associated a communication interface for interfacing a memory with the bus system, wherein the co-processor is configured to

analyze the communication exchanged between the memory and the bus system via the communication interface in order to detect a write operation to a given memory location belonging to a given memory area of the memory, and

encrypt the data received with the write operation with a cryptographic key stored in the first set of registers and store the encrypted data via the communication interface to the given memory location.

8. The processing system according to claim 6 , wherein the co-processor has associated a communication interface for interfacing a memory with the bus system, wherein the co-processor is configured to

analyze the communication exchanged between the memory and the bus system via the communication interface in order to detect a read operation to a given memory location belonging to a given memory area of the memory,

read via the communication interface the data stored at the given memory location from the memory and decrypt or encrypt the data read with a cryptographic key stored in the first set of registers.

9. The processing system according to claim 8 , wherein the memory corresponds to the non-volatile memory or a further non-volatile memory, and the memory area corresponds to a memory area for storing an application firmware to be executed by the processor.

10. The processing system according to claim 1 , wherein the register interface is configured to selectively inhibit write and/or read accesses to the first set of registers as a function of a lock signal.

11. An integrated circuit comprising:

a register interface comprising a plurality of registers,

a bus interface configured to

monitor write requests transmitted to the register interface, wherein the write requests comprise a target address and data to be written,

receive the data to be written to the plurality of registers and register selection signals for selecting a respective register in the plurality of registers; and

a monitoring circuit configured to monitor the register selection signals between the bus interface and the plurality of registers in order to determine when the data to be written to the plurality of registers is valid, wherein the monitoring circuit is configured to

compute a cyclic redundancy check value as a function of the data to be written, and

determine when the data to be written to the plurality of registers is valid by verifying the cyclic redundancy check value, and

limit access to the cyclic redundancy check value.

12. The integrated circuit according to claim 11 ,

wherein each register of the plurality of registers is associated with a respective address, wherein the bus interface is configured to set for each register of the plurality of registers a respective register selection signal when the target address of a write request corresponds to the address associated with the respective register, wherein each register is configured to store the data to be written when the respective register selection signal is set; and

wherein the monitoring circuit is configured to

monitor the register selection signals associated with the plurality of registers in order to determine a sequence of registers to which data has been stored;

compare the sequence of registers with a reference sequence;

when the comparison indicates that the sequence of registers corresponds to the reference sequence, providing the cyclic redundancy check value to the bus interface; and

when the comparison indicates that the sequence of registers does not correspond to the reference sequence, providing a value being independent from the cyclic redundancy check value to the bus interface.

13. A micro-controller comprising the integrated circuit according to claim 11 .

14. A method of operating a processing system comprising:

storing data to a first set of registers of a register interface via a bus interface, wherein the register interface comprises a plurality of registers, wherein the register interface comprises the bus interface configured to monitor write requests transmitted via a bus system to the register interface, wherein the write requests comprise a target address and data to be written, wherein each register of the plurality of registers is associated with a respective address, wherein the plurality of registers comprise the first set of registers configured to store a first set of configuration information and a second set of registers configured to store a second set of configuration information;

computing a cyclic redundancy check value as a function of the data stored to the first set of registers;

monitoring register selection signals associated with the registers of the first set of registers in order to determine a sequence of registers to which data has been stored;

comparing the sequence of registers with a reference sequence; and

when the comparing indicates that the sequence of registers corresponds to the reference sequence, obtaining the computed cyclic redundancy check value via the bus interface.

15. The method of claim 14 , further comprising:

at the bus interface, setting, for each register of the plurality of registers, a respective register selection signal when the target address of a write request corresponds to the address associated with the respective register; and

at each register, storing the data to be written when the respective register selection signal is set.

16. The method of claim 14 , further comprising:

when the comparison indicates that the sequence of registers does not correspond to the reference sequence, obtaining a value being independent from the computed cyclic redundancy check value via the bus interface.

17. The method of claim 14 , further comprising:

analyzing a communication exchanged between a memory and a bus system via a communication interface in order to detect a write operation to a given memory location belonging to a given memory area of the memory, and

encrypting the data received with the write operation with a cryptographic key stored in the first set of registers and storing the encrypted data via the communication interface to the given memory location.

18. The method of claim 14 , further comprising:

storing the computed cyclic redundancy check value at a register or latch;

generating a signal by combining the data to be written to the first set of registers and the cyclic redundancy check value stored in the register or latch at an XOR gate; and

generating the computed cyclic redundancy check value as a function of the signal generated by the XOR gate at a combinational logic circuit.

19. The method according to claim 18 , further comprising

receiving, at an input of a multiplexer, a plurality of reference signals corresponding to the number of register selection signals being monitored;

at the multiplexer, selecting one of the plurality of reference signals as a function of the register selection signals; and

generating, at the XOR gate, the signal by combining the data to be written to the first set of registers, the cyclic redundancy check value stored in the register or latch and the selected reference signal.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2019
From: LE-GOASCOZ, DELPHINE; ANQUET, NICOLAS
To: STMICROELECTRONICS (GRENOBLE 2) SAS
Reel/Frame 049831/0738 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2019
From: CRITELLI, ROSALINO; GUARNACCIA, GIUSEPPE
To: STMICROELECTRONICS S.R.L.
Reel/Frame 049831/0800 →
Priority Claims (1)
IT 102018000005506 · May 18, 2018 · national
Continuity (1)
Related Publication 20190354726A1 · Nov 21, 2019