IT201800003234A1 - Sistema di elaborazione, relativo circuito integrato e procedimento - Google Patents

Sistema di elaborazione, relativo circuito integrato e procedimento Download PDF

Info

Publication number
IT201800003234A1
IT201800003234A1 IT102018000003234A IT201800003234A IT201800003234A1 IT 201800003234 A1 IT201800003234 A1 IT 201800003234A1 IT 102018000003234 A IT102018000003234 A IT 102018000003234A IT 201800003234 A IT201800003234 A IT 201800003234A IT 201800003234 A1 IT201800003234 A1 IT 201800003234A1
Authority
IT
Italy
Prior art keywords
error
circuit
err
processing system
safety
Prior art date
Application number
IT102018000003234A
Other languages
English (en)
Inventor
Roberto Colombo
Original Assignee
Stmicroelectronics Application Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stmicroelectronics Application Gmbh filed Critical Stmicroelectronics Application Gmbh
Priority to IT102018000003234A priority Critical patent/IT201800003234A1/it
Priority to EP19159293.0A priority patent/EP3534261B1/en
Priority to US16/289,405 priority patent/US11113136B2/en
Publication of IT201800003234A1 publication Critical patent/IT201800003234A1/it
Priority to US17/406,910 priority patent/US11977438B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Circuits Of Receivers In General (AREA)

Description

DESCRIZIONE dell’invenzione industriale dal titolo:
“Sistema di elaborazione, relativo circuito integrato e procedimento”
TESTO DELLA DESCRIZIONE
Campo Tecnico
Le forme di attuazione della presente descrizione sono relative ai sistemi di elaborazione, come i microcontrollori.
Sfondo
La Figura 1 rappresenta un tipico sistema elettronico, come il sistema elettronico di un veicolo, comprendente una pluralità di sistemi di elaborazione 10, come sistemi embedded o circuiti integrati, per es., una FPGA (Field Programmable Gate Array), un DSP (Digital Signal Processor) o un microcontrollore (per es., dedicato al mercato automotive).
Per esempio, nella Figura 1 sono rappresentati tre sistemi di elaborazione 101, 102 e 103 connessi attraverso un sistema di comunicazione 20 adatto. Per esempio, il sistema di comunicazione può comprendere un bus di controllo del veicolo, come un bus CAN (Controller Area Network), ed eventualmente un bus multimediale, come un bus MOST (Media Oriented Systems Transport), connesso al bus di controllo del veicolo attraverso un gateway. Tipicamente, i sistemi di elaborazione 10 sono situati in differenti posizioni del veicolo e possono comprendere, per es., una Unità di Controllo del Motore (ECU, “Engine Control Unit”), una Unità di Controllo della Trasmissione (TCU, “Transmission Control Unit”), un Sistema Frenante Antiblocco (ABS, “Anti-lock Braking System”), moduli di controllo della scocca (BCM, “Body Control Module”), e/o un sistema audio multimediale e/o di navigazione.
La Figura 2 rappresenta uno schema a blocchi di un tipico sistema di elaborazione 10 digitale che corrisponde a uno qualsiasi dei sistemi di elaborazione 101, 102 e/o 103 menzionati in precedenza, come un microcontrollore.
Nella forma di attuazione considerata, il sistema di elaborazione 10 comprende almeno una unità di elaborazione 102, come un microprocessore, di solito l’Unità di Elaborazione Centrale (CPU, “Central Processing Unit”), programmata attraverso istruzioni software.
Nell’esempio considerato, il software eseguito dall’unità di elaborazione 102 è memorizzato in una memoria di programma non volatile 104a, come una memoria Flash o una EEPROM. Così, la memoria 104a è configurata per memorizzare il firmware per l’unità di elaborazione 102, in cui il termine firmware comprende sia il software di un microprocessore sia i dati di programmazione di un circuito logico programmabile, come una FPGA. Similmente, l’unità di elaborazione 102 può avere associate una o più memorie volatili 104b, come una memoria ad accesso casuale (RAM, “Random-Access Memory”), per es., una memoria statica ad accesso casuale (SRAM, “Static Random-Access Memory”) o una memoria dinamica ad accesso casuale (“Dynamic Random-Access Memory”), per es., per memorizzare risultati temporanei del programma eseguito dall’unità di elaborazione 102. In generale, ciascuna memoria 104a o 104b può essere integrata con l’unità di elaborazione 102 in un singolo circuito integrato, oppure la memoria può essere sotto forma di un circuito integrato separato e può essere connessa all’unità di elaborazione 102, per es., attraverso le piste di una scheda a circuito stampato.
Nell’esempio considerato, l’unità di elaborazione 102 può avere associate una o più risorse 106 ulteriori, come:
- una o più interfacce di comunicazione, come interfacce UART (Universal Asynchronous Receiver/ Transmitter), SPI (Serial Peripheral Interface), I<2>C (Inter-Integrated Circuit), CAN (Controller Area Network), Ethernet e/o di debug; e/o
- uno o più convertitori analogico/digitali e/o digitale/analogici; e/o
- uno o più componenti digitali dedicati, come contatori e/o timer hardware, o un coprocessore crittografico; e/o
- uno o più componenti analogici, come comparatori, sensori, come un sensore di temperatura, ecc.; e/o
- uno o più componenti a segnali misti, come un dispositivo di pilotaggio PWM (Pulse-Width Modulation).
La futura generazione di sistemi di elaborazione, in particolare microcontrollori dedicati alle applicazioni automotive, presenterà un notevole aumento della complessità, dovuto principalmente al numero crescente di funzionalità (come nuovi protocolli, nuove caratteristiche, ecc.) ed ai vincoli stringenti per quanto concerne le condizioni operative del sistema (come un consumo di potenza più basso, maggiore velocità e potenza di calcolo, ecc.). Per esempio, ci si aspetta che la complessità aumenti, in particolare nel contesto della prossima Car2X e del mondo della guida autonoma, perché la protezione e la sicurezza dei sistemi di elaborazione 10 diventeranno sempre più rilevanti.
Per questo motivo, le unità di elaborazione 10 dovrebbero essere atte a trattare correttamente gli errori. Per esempio, una funzione di codice di correzione degli errori (ECC, “Error-Correcting Code”) di una memoria del sistema di elaborazione 10 può rilevare ed eventualmente correggere gli errori di dati che affliggono la memoria. Similmente, altre funzioni di rilevazione degli errori possono permettere una diagnosi a livello di sistema dei temporizzatori (“timer”), degli ADC, delle interfacce di comunicazione e/o di altri moduli.
In risposta a un errore, il sistema di elaborazione può generare degli interrupt e/o dei reset. In varie applicazioni, può essere necessario che uno o più errori dovrebbero essere anche riportati ad altri sistemi di elaborazione. Per esempio, quando è ricevuto un segnale di errore, il sistema di elaborazione 10 può pilotare un pin di errore secondo un dato protocollo, aiutando con ciò ad assicurare la sicurezza e l’affidabilità del sistema completo.
Sintesi
In considerazione di quanto precede, varie forme di attuazione della presente descrizione forniscono soluzioni atte a perfezionare il comportamento di un sistema di elaborazione, come un microcontrollore, in risposta a un errore segnalato da uno dei circuiti del sistema di elaborazione.
Secondo una o più forme di attuazione, uno o più degli scopi precedenti sono raggiunti per mezzo di un sistema di elaborazione avente le caratteristiche esposte specificamente nelle rivendicazioni che seguono. Le forme di attuazione concernono inoltre un relativo circuito integrato e procedimento.
Le rivendicazioni sono parte integrante dell’insegnamento tecnico della descrizione qui fornita.
Come menzionato in precedenza, varie forme di attuazione della presente descrizione sono relative a un sistema di elaborazione. In varie forme di attuazione, il sistema di elaborazione comprende una pluralità di circuiti configurati per generare una pluralità di segnali di errore. Per esempio, i segnali di errore possono essere generati da:
- una memoria che supporta una funzione di rilevazione e/o correzione degli errori;
- un’unità di elaborazione configurata per generare un segnale di errore in risposta a un malfunzionamento hardware e/o software; e/o
- un’interfaccia di comunicazione configurata per generare un segnale di errore corrispondente a un segnale di errore hard indicativo di un malfunzionamento hardware e/o a un segnale di errore soft indicativo di un errore di trasmissione di dati.
In varie forme di attuazione, il sistema di elaborazione comprende una pluralità di pad di errore e un circuito di raccolta di guasti. Specificamente, in varie forme di attuazione, il circuito di raccolta di guasti è configurato per ricevere in ingresso i segnali di errore e per generare un rispettivo segnale di errore combinato per ciascuno dei pad di errore. Per esempio, in varie forme di attuazione, il circuito di raccolta di guasti comprende un circuito logico combinatorio configurato per generare il segnale di errore combinato instradando selettivamente i segnali di errore ai pad di errore in funzione di un primo insieme di bit di configurazione.
Per esempio, in varie forme di attuazione, il circuito logico combinatorio comprende un rispettivo primo sottocircuito combinatorio per ciascuno dei segnali di errore. Specificamente, ciascun primo sotto-circuito è configurato per ricevere in ingresso un rispettivo segnale di errore e una prima pluralità di bit di configurazione, uno per ciascun pad di errore. In seguito, ciascun primo sottocircuito genera, per ciascun pad di errore, un rispettivo segnale di uscita effettuando una prima operazione logica tra il segnale di errore ricevuto e un rispettivo bit di configurazione della prima pluralità di bit di configurazione. In varie forme di attuazione, il circuito logico combinatorio comprende inoltre un rispettivo secondo sotto-circuito combinatorio per ciascun pin di errore, in cui ciascun secondo sotto-circuito combinatorio è configurato per ricevere in ingresso un rispettivo segnale di uscita da ciascuno del primo circuito logico combinatorio e genera un rispettivo segnale di errore combinato per il rispettivo pad di errore combinando il segnale di uscita ricevuto attraverso una seconda operazione logica. Per esempio, la prima operazione logica può essere un’operazione di AND, e la seconda operazione logica può essere un’operazione di OR.
In varie forme di attuazione, il sistema di elaborazione comprende inoltre almeno un pad critico per la sicurezza (“safety-critical”). Specificamente, ciascun pad safety-critical ha associato un rispettivo circuito di interfaccia configurato per impostare il livello elettrico del pad safety-critical in funzione di un segnale di controllo di sicurezza. In questo caso, il circuito di raccolta di guasti può essere configurato per ricevere in ingresso i segnali di errore e per generare un rispettivo segnale di controllo di sicurezza per ciascuno dei pad safety-critical.
Per esempio, in varie forme di attuazione, il circuito di raccolta di guasti comprende un secondo circuito logico combinatorio configurato per generare il segnale di controllo di sicurezza instradando selettivamente i segnali di errore combinati ai pad safety-critical in funzione di un secondo insieme di bit di configurazione. Per esempio, il secondo circuito logico combinatorio può comprendere un rispettivo sotto-circuito combinatorio per ciascuno dei pad safety-critical. Specificamente, ciascun sotto-circuito combinatorio è configurato per ricevere in ingresso i segnali di errore combinati e una seconda pluralità di bit di configurazione e per generare per ciascun segnale di errore combinato un rispettivo segnale di uscita eseguendo una terza operazione logica tra un rispettivo segnale di errore combinato e un rispettivo bit di configurazione della seconda pluralità di bit di configurazione. In seguito, ciascun sotto-circuito combinatorio genera un rispettivo segnale di controllo di sicurezza per il rispettivo pad safety-critical combinando i rispettivi segnali di uscita attraverso una quarta operazione logica. Per esempio, la terza operazione logica può essere un’operazione di AND, e la quarta operazione logica può essere un’operazione di OR.
Breve descrizione delle figure
Forme di attuazione della presente descrizione saranno ora descritte con riferimento ai disegni annessi, che sono forniti a puro titolo di esempio non limitativo, e nei quali:
- la Figura 1 rappresenta un tipico sistema elettronico comprendente una pluralità di sistemi di elaborazione;
- la Figura 2 rappresenta un esempio di un sistema di elaborazione;
- la Figura 3 rappresenta una forma di attuazione di un sistema di elaborazione che comprende un circuito di raccolta di guasti che fornisce un segnale di errore combinato a un pin di errore;
- la Figura 4 rappresenta una prima forma di attuazione del circuito di raccolta di guasti della Figura 3;
- la Figura 5 rappresenta una forma di attuazione di un sistema nel quale il segnale di errore combinato della Figura 3 è fornito a uno o più dispositivi esterni;
- le Figure 6, 7 e 8 rappresentano una seconda forma di attuazione del circuito di raccolta di guasti della Figura 3; e
- la Figura 9 rappresenta una terza forma di attuazione del circuito di raccolta di guasti della Figura 3.
Descrizione Dettagliata
Nella descrizione che segue, sono illustrati numerosi dettagli specifici, allo scopo di fornire una comprensione approfondita delle forme di attuazione. Le forme di attuazione possono essere attuate senza uno o più dei dettagli specifici o con altri procedimenti, componenti, materiali, ecc. In altri casi, operazioni, materiali o strutture ben note non sono illustrate o descritte in dettaglio in modo da evitare di rendere poco chiari certi aspetti delle forme di attuazione.
Un riferimento a “una forma di attuazione” in tutta questa descrizione intende indicare che una particolare configurazione, struttura, o caratteristica descritta con riferimento alla forma di attuazione è compresa in almeno una forma di attuazione. Così, le frasi come “in una forma di attuazione” che compaiono in vari punti della presente descrizione non fanno necessariamente riferimento tutte alla stessa forma di attuazione. Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in un modo adeguato qualsiasi in una o più forme di attuazione.
I riferimenti usati qui sono forniti semplicemente per convenienza e quindi non definiscono l’ambito di protezione o l’ambito delle forme di attuazione.
Nelle Figure da 3 a 9 che seguono, le parti, gli elementi o i componenti che sono già stati descritti con riferimento alle Figure 1 e 2 sono indicati con gli stessi riferimenti usati precedentemente in tali Figure; la descrizione di tali elementi descritti precedentemente non sarà ripetuta in seguito al fine di non rendere troppo pesante la presente descrizione dettagliata.
Come menzionato in precedenza, varie forme di attuazione della presente descrizione sono relative a soluzioni per gestire gli errori all’interno di un sistema di elaborazione.
La Figura 3 rappresenta una forma di attuazione di un Sistema di elaborazione 10a che comprende un’unità di elaborazione 102, una o più memorie 104, come una memoria non volatile 104a e/o una memoria volatile 104b, ed eventualmente una o più risorse 106 ulteriori. Di conseguenza, la descrizione della Figura 2 si applica pienamente anche al sistema della Figura 3.
Nella forma di attuazione considerata, almeno uno dei blocchi 102, 104 e 106 può generare almeno un segnale di errore ERR. Per esempio, tali segnali di errore ERR possono essere generati da almeno una tra:
- una memoria 104 che supporta una funzione di rilevazione e/o di correzione degli errori, che genera un segnale di errore ERR1 quando i dati letti dalla memoria 104 contengono errori e/o quando non hanno potuto essere scritti dati nella memoria;
- un’unità di elaborazione 104 configurata per generare un segnale di errore ERR2 in risposta a un malfunzionamento hardware e/o software;
- un’interfaccia di comunicazione configurata per generare un segnale di errore ERR3, corrispondente a un segnale di errore hard indicativo di un malfunzionamento hardware e/o a un segnale di errore soft indicativo di un errore di trasmissione di dati.
In aggiunta o in alternativa, segnali di errore possono essere generati monitorando la tensione di alimentazione del sistema di elaborazione 10a (per es., al fine di rilevare condizioni di sovratensione e/o di sottotensione), il segnale di clock del sistema di elaborazione 10a (per es., al fine di rilevare l’assenza di un segnale di clock) e/o la temperatura del sistema di elaborazione 10a (per es., al fine di rilevare se la temperatura operativa corrente è fuori limite).
Nella forma di attuazione considerata, i vari segnali di errore ERR sono forniti a un circuito di raccolta di guasti 108.
Specificamente, nella forma di attuazione considerata, il circuito di raccolta di guasti 108 è configurato per generare un segnale di innesco (“trigger”) di errore ET, che è fornito a un pad/pin di errore EP del circuito integrato comprendente il sistema di elaborazione 10a. In generale, il termine circuito integrato non implica che il die sia montato all’interno di un package, ma per es. il die potrebbe anche essere montato direttamente su una scheda a circuito stampato (PCB, “Printed-Circuit-Board”). Così, il termine pad è usato per identificare il pad del die del circuito integrato e il termine pin identifica il pin o il lead di un package esterno opzionale del circuito integrato. Così, quando è usato il termine “pad/pin”, questo indica che il die ha un pad e, nel caso in cui sia usato un package esterno, anche il package ha un corrispondente pin, che è connesso al rispettivo
In varie forme di attuazione, il circuito di raccolta di guasti 108 può anche fornire il segnale (i segnali) di errore ERR all’unità di elaborazione 102 e/o a una o più delle risorse 106. A questo scopo, il circuito di raccolta di guasti 108 può anche generare uno o più segnali di interrupt IRQ, che sono forniti all’unità di elaborazione 102.
Per esempio, la Figura 4 rappresenta una possibile forma di attuazione del circuito di raccolta di guasti 108.
Nella forma di attuazione considerata, il circuito di raccolta di guasti 108 comprende un registro 1080. Specificamente, nella forma di attuazione considerata, il registro 1080 comprende uno o più bit di errore EB per memorizzare il valore dei segnali di errore ERR. Per esempio, considerando il caso di esempio di tre segnali di errore ERR1..ERR3, il registro 1080 può comprendere un numero corrispondente di bit di errore EB.
Nella forma di attuazione considerata, il circuito di raccolta di guasti 108 comprende anche un circuito generatore di trigger di errore 1084. Specificamente, il circuito generatore di trigger di errore 1084 è configurato per generare il segnale di trigger di errore ET in funzione del contenuto dei bit di errore EB del registro 1080. I bit di errore EB sono puramente opzionali e il circuito generatore di trigger di errore 1084 può anche generare direttamente il segnale di trigger di errore ET in funzione del segnale (dei segnali) di errore ERR.
In varie forme di attuazione, il comportamento del circuito generatore di trigger di errore 1084 può anche essere programmabile, per es. impostando uno o più bit di configurazione nel registro 1080. Per esempio, nella forma di attuazione considerata, il registro 1080 comprende un rispettivo bit di abilitazione di trigger di errore ETE per ciascuno dei segnali di errore ERR1..ERR3. Per esempio, in varie forme di attuazione, il contenuto di questi bit di abilitazione di trigger di errore ETE può essere programmato dall’unità di elaborazione 102 e/o durante una fase di configurazione del sistema di elaborazione 10a, per es., leggendo le corrispondenti informazioni di configurazione da una memoria non volatile, come la memoria 104a.
Così, il segnale ET corrisponde sostanzialmente a un segnale di errore combinato determinato combinando i segnali di errore ERR in funzione dei bit di abilitazione di trigger di errore ETE.
Per esempio, impostando i bit di abilitazione di trigger di errore ETE, il sistema di elaborazione 10a può essere configurato per segnalare soltanto errori critici per la sicurezza attraverso il segnale ET al pin/pad di errore EP (come errori di lettura di dati non correggibili, un malfunzionamento hardware dell’unità di elaborazione 102 e/o di una delle risorse 106, ecc.). Per contro, errori minori, che non influenzano la sicurezza del sistema possono non essere segnalati al pin/pad di errore EP. Per esempio, ipotizzando una memoria con una funzione di correzione degli errori, un errore non correggibile (per es., un errore di tre bit alla lettura di dati da una memoria non volatile atta a correggere fino a errori di due bit) può essere:
- critico per la sicurezza, per es. quando è letto (effettuato il fetch) di un codice da eseguire dalla memoria, nella misura in cui questo può avere come risultato un comportamento di esecuzione scorretto; o
- non critico per la sicurezza, per es. quando sono letti i dati di un’immagine JPEG dalla memoria.
Di conseguenza, a causa di un errore, i circuiti del sistema di elaborazione 10a possono non funzionare correttamente, generando eventualmente segnali scorretti ai pin/pad del sistema di elaborazione 10a. Alcuni dei pin/pad del sistema di elaborazione 10a possono così essere dei pin/pad safety-critical, cioè dei pin/pad che possono generare situazioni critiche quando pilotati scorrettamente. Per esempio, nella Figura 3 è rappresentato schematicamente un primo pin safety-critical SCP1 che è pilotato dall’unità di elaborazione 102 e un secondo pin safety-critical SCP2 che è pilotato da una risorsa 106, come un’interfaccia di comunicazione o un dispositivo di pilotaggio (“driver”) di semi-ponte PWM.
Generalmente ciascun pin/pad di ingresso/uscita del sistema di elaborazione 10a ha associato di solito un rispettivo circuito di pilotaggio 110, che è configurato per pilotare il rispettivo pin/pad in funzione del segnale ricevuto dal rispettivo blocco, per es. il sistema di elaborazione 102 e le risorse hardware 106. Generalmente, tra i circuiti di pilotaggio 110 e i blocchi del sistema di elaborazione 10a può anche essere disposta una logica dedicata, come un crossbar, che permette una configurazione della mappatura dei pin.
Di conseguenza, in varie forme di attuazione, il circuito di pilotaggio 110 dei pin/pad safety-critical SCP è configurato per impostare il livello di uscita del rispettivo pin a un dato stato di sicurezza in risposta a un segnale SET. Il livello di uscita, come uno stato di alta impedenza o un dato livello logico (alto o basso), può dipendere dalle specifiche necessità applicative. In varie forme di attuazione, è previsto che lo “stato di sicurezza” sia conforme alla descrizione fornita dalla specifica ISO2626.
Di conseguenza, in varie forme di attuazione, il circuito di raccolta di guasti 108 può essere configurato per generare anche il segnale SET per i circuiti di pilotaggio 110 al fine di mettere uno o più dei pin/pad safety-critical SCP in uno stato di sicurezza. Per esempio, in varie forme di attuazione, il segnale SET può corrispondere al segnale ET. In alternativa, il circuito 1084 può essere configurato per generare il segnale SET in funzione dei bit di errore EB ed eventualmente di uno o più bit di configurazione memorizzati nel registro 1080 (simili ai bit ETE).
Di conseguenza, nella forma di attuazione considerata, l’inoltro degli errori ERR al pin di errore EP (e così a un dispositivo esterno) e opzionalmente la commutazione dei pin/pad SCP sono indipendenti dal funzionamento dell’unità di elaborazione 102, per es., dal software eseguito da un microprocessore 102.
Come menzionato in precedenza, in aggiunta a controllare il comportamento esterno del sistema di elaborazione 10a (i pin di errore EP e i pin safetycritical opzionali SCP), il circuito di raccolta di guasti 108 può anche generare uno o più segnali interni, come la generazione di un segnale di interrupt (non mascherabile o mascherabile/configurabile) IRQ e/o un segnale di reset RST, l’attivazione di una modalità di debug, ecc. Per esempio, l’uno o più interrupt IRQ possono essere forniti all’unità di elaborazione 102 al fine di innescare (“trigger”) una data routine software, mentre il segnale di reset RST può resettare uno o più circuiti del sistema di elaborazione 10a (o eventualmente il sistema di elaborazione 10a completo).
In generale, il segnale di trigger di errore ET può anche essere usato a questo scopo. Per contro, nella forma di attuazione considerata, il circuito di raccolta di guasti 108 comprende un circuito di reazione interna 1082 aggiuntivo. Specificamente, nella forma di attuazione considerata, il circuito di reazione interna 1082 è configurato per generare uno o più segnali di interrupt IRQ e/o segnali di reset RST in funzione dei bit di errore EB o direttamente dei segnali ERR. In generale, il circuito di reazione interna 1082 è puramente opzionale, perché il sistema di elaborazione 10a può anche non eseguire alcuna reazione interna in risposta ai segnali di errore ERR.
Anche il comportamento del circuito di reazione interna 1082 può essere programmabile, per es., impostando uno o più bit di configurazione nel registro 1080. Per esempio, nella forma di attuazione considerata, il registro comprende (in aggiunta ai bit di abilitazione di trigger di errore ETE) un rispettivo bit di abilitazione di interrupt IE per ciascuno dei segnali di errore ERR1..ERR3. Per esempio, in varie forme di attuazione, il contenuto di questi bit di abilitazione di interrupt IE può essere programmato dall’unità di elaborazione 102 e/o durante una fase di configurazione del sistema di elaborazione 10a, per es., leggendo le corrispondenti informazioni di configurazione da una memoria non volatile, come la memoria 104a.
Al fine di semplificare lo scambio di dati tra l’unità di elaborazione 102 e i registri 1080, il registro 1080 può essere indirizzabile direttamente dall’unità di elaborazione 102, un cosiddetto registro di funzioni speciali dell’unità di elaborazione 102.
Di conseguenza, nella forma di attuazione considerata, il circuito di raccolta di guasti 108 è configurato per generare un segnale di errore combinato ET (per es., sotto forma di un segnale di trigger) al pin di errore EP in funzione dei segnali di errore ERR. Di conseguenza, il pin di errore EP può essere connesso a un dispositivo esterno, come un altro sistema di elaborazione, che può eseguire per es. una o più fasi in risposta al segnale di errore combinato/trigger di errore ET.
Le informazioni fornite dal pin di errore EP possono così essere critiche per la sicurezza di per sé stesse. Per esempio, nel settore automotive, la norma ISO 26262 “Road vehicles – Functional safety” detta le regole da seguire al fine di classificare un sistema come conforme alla sicurezza (“safety compliant”). L’implementazione reale di quelle regole sta ai progettisti del sistema, che possono tradurle in un’architettura differente.
Per esempio, una possibile soluzione per un circuito di raccolta di guasti 108 atto a trattare un pin di errore EP è descritta nel documento “AN4247 Application note Safety Manual for SPC570S family”, STMicroelectronics, luglio 2015, DocID024209 Rev 3. Specificamente, in questo documento è descritto un circuito di raccolta di guasti 108 che ha due pin/pad di errore esterni (si veda, in particolare, la sezione “4.5 Error Out Monitor (ERRM)”), cioè, un pin di errore EP1 e un pin di errore EP2. Specificamente, il segnale di errore ET fornito a entrambi i pin/pad di errore EP1/EP2 è lo stesso, cioè, per lo stato privo di guasti (“fault free”) dei pin/pad, il dispositivo esterno dovrebbe rilevare gli stessi segnali. Così, il dispositivo esterno può anche rilevare se i pin di errore EP1/EP2 non stanno funzionando in modo appropriato. Per esempio, una tale configurazione con due pin permette che il dispositivo esterno possa rilevare un malfunzionamento di un pin senza un software dedicato, per es. attraverso una logica combinatoria (per es., una porta XOR).
L’inventore ha osservato tuttavia che una tale configurazione con due pin può essere troppo limitativa per un ampio spettro di applicazioni.
Per esempio, la Figura 5 rappresenta un esempio nel quale il circuito di raccolta di guasti 108 genera di nuovo un segnale di errore ET in funzione di uno o più segnali di errore ERR interni (cioè, interni rispetto al sistema di elaborazione 10a). Specificamente, nell’esempio considerato, il segnale di errore combinato ET è fornito a una pluralità di dispositivi esterni, come un dispositivo 301, 302 e 303. Specificamente, questi dispositivi 30 possono essere configurati per eseguire differenti operazioni in risposta a differenti errori. Per esempio, il dispositivo 301 può riavviare il sistema di elaborazione 10a in uno stato di sicurezza/down-grade, o può spegnere il sistema di elaborazione 10a e commutare su un sistema di elaborazione 10a ridondante.
Tuttavia, quando è usato un singolo pin di errore EP o sono usati due pad/pin di errore EP1/EP2 ridondanti, lo stesso segnale di errore combinato ET è fornito a tutti i dispositivi esterni 30. Di conseguenza, l’inventore ha osservato che sarebbe utile che i pin/pad di errore EP usati per riportare esternamente un malfunzionamento interno ERR siano aumentati. Tuttavia, sarebbe vantaggioso che il sistema di elaborazione 10a renda possibile configurare individualmente, per ciascun pin di errore o ciascuna coppia di pin di errore EP, i rispettivi tipi di errore da riportare. Per esempio, il dispositivo 301 può trattare dati errori hardware del sistema di elaborazione 10a, mentre il dispositivo 302 può essere un modulo di reporting configurato per raccogliere semplicemente qualsiasi genere di segnale di errore.
A questo riguardo, l’inventore ha osservato che anche il numero dei pin/pad assegnato a ciascun tipo di errore dovrebbe essere preferibilmente configurabile, nella misura in cui non tutti gli errori possono contenere informazioni rilevanti per la sicurezza. Per esempio, gli errori riportati al dispositivo 301 possono essere rilevanti per la sicurezza, usando così due pin di errore ridondanti, mentre i segnali di errore combinati forniti ai dispositivi 302 e 303 possono essere riportati soltanto attraverso un singolo pin di errore.
In seguito, sarà così descritta una forma di attuazione di un circuito di raccolta di guasti 108 configurato per controllare l’instradamento dei segnali di errore ERR interni a una pluralità di pin/pad di errore EP preassegnati prendendo in considerazione anche il tipo di malfunzionamento/errore. In varie forme di attuazione, il circuito di raccolta di guasti 108 è anche atto a generare i segnali di controllo al fine di controllare il funzionamento di uno o più pin/pad safety-critical SCP.
Specificamente, la Figura 6 rappresenta una forma di attuazione di un circuito di raccolta di guasti 108 configurato per ricevere in ingresso un dato numero n di segnali di errore ERR1..ERRn e per generare in uscita:
- un primo gruppo di un dato numero m di segnali di errore combinati ET1..ETm per un corrispondente numero dei pin/pad di errore EP, e
- un secondo gruppo di un dato numero k di segnali di controllo di sicurezza SET1..SETk per un corrispondente numero dei pin/pad safety-critical SCP.
In varie forme di attuazione, il numero n di segnali di errore è maggiore del numero m dei pin/pad di errore EP. Per contro, il numero k dei pin/pad safety-critical SCP può essere maggiore del numero m dei pin/pad di errore EP. Per esempio, in varie forme di attuazione, il sistema di elaborazione 10a comprende m = 4 pin/pad di errore EP e k = 32 pin/pad safety-critical SCP.
Nella forma di attuazione considerata, il circuito di raccolta di guasti 108 comprende di nuovo un registro 1080 che comprende un dato numero n dei bit di errore EB per memorizzare i segnali di errore ERR1..ERRn. Nella forma di attuazione considerata, i bit di errore EB sono forniti di nuovo a un circuito generatore di trigger di errore 1084. In generale, i bit di errore EB sono puramente opzionali nella misura in cui il circuito generatore di trigger di errore 1084 può anche ricevere in ingresso direttamente i segnali di errore ERR1..ERRn.
Specificamente, nella forma di attuazione considerata, il circuito generatore di trigger di errore 1084 è configurato per generare gli m segnali di errore combinati ET1..ETm in funzione del tipo di errore. Di conseguenza, generalmente, il circuito generatore di trigger di errore 1084 è configurato per instradare selettivamente i segnali di errore ERR ai pin di errore EP. A questo scopo, il circuito 1084 può avere associate rispettive informazioni di configurazione che permettono ai segnali di errore ERR di essere instradati ai pin di errore EP.
Specificamente, nella forma di attuazione considerata, il registro 1080 comprende, per ciascun segnale di errore ERR1..ERRn, un rispettivo insieme ETE1..ETEn di bit di informazioni di instradamento per il rispettivo segnale di errore ERR. Specificamente, nella forma di attuazione considerata, ciascun insieme dei bit di informazioni di instradamento ETE comprende un rispettivo bit EOUT per ciascun pin di errore EP, cioè, ciascun insieme dei bit di informazioni di instradamento ETE1..ETEn comprende rispettivi bit EOUT1..EOUTm. Di conseguenza, i bit EOUT1..EOUTm di un dato insieme dei bit di informazioni di instradamento ETE indicano i pad di errore EP1..EPm ai quali deve essere instradato il rispettivo segnale di errore ERR.
La Figura 7 rappresenta una possibile forma di attuazione del circuito generatore di trigger di errore 1084.
Specificamente, come menzionato in precedenza, il circuito generatore di trigger di errore 1084 è implementato con un circuito combinatorio, che riceve in ingresso i segnali di errore ERR1..ERRn/bit di errore EB e fornisce in uscita i segnali di errore combinati ET1..ETm, per esempio, quattro segnali di errore combinati ET1, ET2, ET3 ed ET4 per quattro pin di errore EP1, EP2, EP3 e EP4.
Nella forma di attuazione considerata, il circuito generatore di trigger di errore 1084 comprende, per ciascun segnale di errore ERR1..ERRn, un corrispondente circuito combinatorio 10881..1088n. Specificamente, ciascuno dei circuiti 10881..1088n riceve in ingresso un rispettivo segnale di errore ERR e fornisce in uscita m segnali, uno per ciascun segnale di errore combinato ET/pin di errore EP. Specificamente, ciascuno degli m segnali è generato combinando il rispettivo segnale di errore ERR con un rispettivo bit EOUT1..EOUTm dell’insieme dei bit di informazioni di instradamento ETE1..ETEn associato al rispettivo segnale di errore ERR. Così, un dato circuito 1088i (con i = 1..n) è configurato per:
- ricevere in ingresso il rispettivo segnale di errore ERRi e i bit EOUT1..EOUTm del rispettivo insieme dei bit di informazioni di instradamento ETEi, e
- generare ciascuno degli m segnali di trigger eseguendo una combinazione logica del segnale di errore ERRi con un rispettivo bit EOUT1..EOUTm dell’insieme dei bit di informazioni di instradamento ETEi.
Per esempio, ipotizzando che il segnale di errore ERR sia impostato alto quando si verifica un errore e che un bit EOUT sia impostato alto per abilitare l’inoltro del segnale di errore, ciascuno degli m segnali può risultare da un’operazione logica di AND tra il segnale di errore ERRi con un rispettivo bit EOUT1..EOUTm dell’insieme dei bit di informazioni di instradamento ETEi. Per esempio, nella Figura 7 sono rappresentate quattro porte logiche AND AND1, AND2, AND3 ed AND4, che forniscono così in uscita i seguenti segnali: ERRi AND EOUT1, ERRi AND EOUT2, ERRi AND EOUT3 ed ERRi AND EOUT4.
Nella forma di attuazione considerata, il circuito generatore di trigger di errore 1084 comprende inoltre un circuito logico combinatorio 1090 configurato per combinare i segnali forniti dai circuiti 10881..1088n, che appartengono allo stesso pin di errore EP. Per esempio, nella forma di attuazione considerata, il circuito 1090 comprende, per ciascun pin di errore EP1..EPm, un rispettivo sotto-circuito 10901..1090m. Specificamente, ciascun sotto-circuito 1090j (con j = 1..m) riceve in ingresso il j-esimo segnale da ciascun circuito 10881..1088n e fornisce in uscita il segnale di errore combinato ETj per il rispettivo pin di errore EPj.
Per esempio, ipotizzando di nuovo gli esempi di livelli logici descritti in precedenza, ciascuno dei sottocircuiti 10901..1090m può essere implementato con una porta logica OR. Di conseguenza, nella forma di attuazione considerata, i segnali di errore ET saranno:
dove EOUTj,i indica che il corrispondente bit EOUTj appartiene all’insieme dei bit di informazioni di instradamento ETEi. Per esempio, nell’esempio di forma di attuazione, il segnale di errore combinato ET<1 >sarà:
Così, impostando i bit EOUT di un insieme dei bit di informazioni di instradamento ETEi, lo sviluppatore del software e/o del sistema può selezionare i pin di errore EP ai quali dovrebbe essere instradato un dato segnale di errore ERRi. Generalmente, i bit EOUT dell’insieme dei bit di informazioni di instradamento ETE possono essere organizzati in vari modi. Per esempio, ciascun insieme dei bit di informazioni di instradamento ETE può essere memorizzato in un rispettivo registro, cioè uno per ciascun segnale di errore ERR. Similmente, tutti i bit EOUT associati a un dato pin di errore EP possono essere memorizzati in un rispettivo registro, cioè uno per ciascun pin/pad di errore EP.
Per esempio, soltanto gli errori hardware critici possono essere instradati al pin di errore EP1, per es. impostando il bit EOUT1 dell’insieme dei bit di informazioni di instradamento ETE associato ad errori critici, come gli errori hardware. Per contro, qualsiasi genere di errore può essere instradato al pin di errore EP3, per es. impostando il bit EOUT3 di ciascun insieme dei bit di informazioni di instradamento ETE, cioè per tutti gli errori.
Così, in varie forme di attuazione, può essere ottenuta una configurazione critica per la sicurezza usando la stessa configurazione di bit per due pin di errore EP, per es. EOUT3 = EOUT1 per ciascun insieme dei bit di informazioni di instradamento ETE. Per esempio, il pin di errore EP3 può essere configurato come pin ridondante per il pin di errore EP1 impostando il bit EOUT3 dell’insieme dei bit di informazioni di instradamento ETE associato agli stessi errori critici, cioè un pin di errore è configurato come ridondante quando tutti i bit EOUT associati al pin hanno lo stesso valore dei bit EOUT associati a un altro pin di errore.
Come menzionato in precedenza, il circuito di raccolta di guasti 108 può anche essere configurato per controllare il funzionamento dei pin/pad safety-critical SCP. Per esempio, la Figura 6 rappresenta che il circuito di raccolta di guasti 108 può anche comprendere un ulteriore circuito combinatorio 1086 configurato per controllare il funzionamento di uno o più pad/pin safety-critical SCP. Specificamente, nella forma di attuazione considerata, il circuito 1086 è configurato per controllare il funzionamento dei pin/pad safety-critical SCP instradando selettivamente i segnali di trigger di errore ET ai pin safety-critical SCP. Di conseguenza, il circuito 1086 riceve in ingresso gli m segnali di errore combinati ET1..ETm e fornisce in uscita i k segnali di controllo di sicurezza SET1..SETk per i pin/pad safety-critical SCP.
Per esempio, la Figura 8 rappresenta una possibile forma di attuazione del circuito 1086.
Specificamente, come menzionato in precedenza, il circuito logico combinatorio 1084 riceve in ingresso i segnali di errore combinati ET1..ETm, per esempio quattro segnali di trigger di errore ET1, ET2, ET3 ed ET4, e fornisce in uscita i segnali di controllo di sicurezza SET1..SETk per i pin/pad safety-critical SCP1..SCPk.
Nella forma di attuazione considerata, il circuito 1086 comprende, per ciascun segnale di controllo di sicurezza SET1..SETk, un corrispondente circuito combinatorio 10921..1092k. Specificamente, ciascuno dei circuiti 10921..1092k riceve in ingresso i segnali di errore combinati ET1..ETm generati dal circuito 1084 e fornisce in uscita un rispettivo segnale di controllo di sicurezza SET1..SETk.
Specificamente, nella forma di attuazione considerata, l’instradamento dei segnali di errore combinati ET1..ETm all’interno di ciascuno dei circuiti 1092l (con l = 1..k) può essere specificato attraverso un rispettivo insieme dei bit di informazioni di instradamento di sicurezza STEl, cioè STE1..STEk, che specificano i segnali di errore combinati ET1..ETm da instradare al rispettivo pin/pad safety-critical SCP.
Per esempio, in varie forme di attuazione, ciascun circuito 10921 può implementare un multiplexer e il rispettivo insieme dei bit di informazioni di instradamento STEl è usato per selezionare uno (o eventualmente nessuno) dei segnali di errore combinati ET1..ETm da instradare al rispettivo pin/pad safety-critical SCP1.
Per contro, nella forma di attuazione rappresentata nella Figura 8, l’insieme dei bit di informazioni di instradamento STEl per un dato pin/pad safety-critical SCPl comprende un rispettivo bit di abilitazione SE1..SEm per ciascun segnale di errore combinato ET1..ETm che indica se il rispettivo segnale di trigger di errore ET1..ETm dovrebbe essere inoltrato al dato pin/pad safety-critical SCPl.
Per esempio, ipotizzando di nuovo che l’instradamento sia abilitato quando il rispettivo bit di abilitazione SE è impostato alto, ciascun blocco 1092l può implementare la <seguente operazione logica:>
dove SE<j,l >indica che il corrispondente bit SE<j >appartiene all’insieme dei bit di informazioni di instradamento STEl. Per esempio, nell’esempio di forma di attuazione, il segnale di controllo di sicurezza SET1 sarà:
SET1 =SE1,1 AND ET1 OR SE2,1 AND ET2 OR
SE3,1 AND ET3 OR SE4,1 AND ET4.
Per esempio, ipotizzando di nuovo quattro segnali di errore combinati ET, ciascun blocco 1092l può comprendere quattro porte logiche AND AND5, AND6, AND7 ed AND8 e una porta logica OR OR1 per implementare le equazioni precedenti.
In generale, i segnali di controllo di sicurezza SET possono non essere necessariamente identici al rispettivo segnale di trigger di errore ET, ma il segnale può anche corrispondere, per es., a una versione invertita del rispettivo segnale di errore combinato ET. Per esempio, a questo scopo, le operazioni di AND possono essere sostituite con operazioni di XOR.
Nella forma di attuazione considerata, ciascuno dei segnali di controllo di sicurezza SET è fornito a un rispettivo pin/pad safety-critical SCP per controllare lo stato del pin. Specificamente, ciascun pin del sistema di elaborazione 10a ha associato di solito un circuito di interfaccia 110. Specificamente, come rappresentato con riferimento all’interfaccia 1102, un circuito di interfaccia 110 di un pin safety-critical SCP comprende un buffer di uscita 1104 per pilotare il rispettivo pin SCP in funzione di un segnale di uscita O. nel caso di un pin di ingresso/uscita, il circuito di interfaccia 110 può anche comprendere un buffer di ingresso 1102 per acquisire un segnale di ingresso I indicativo del segnale applicato al rispettivo pin. Per esempio, al fine di usare il pin come pin di ingresso, il buffer di uscita 1104 può essere disattivato, ponendo con ciò il pin in uno stato di alta impedenza. Per esempio, in caso di segnali digitali I e O, il buffer di ingresso 1102 e il buffer di uscita 1104 possono essere implementati con dei trigger di Schmitt. Tuttavia, in generale, il segnale di uscita O può anche essere un segnale analogico.
Nella forma di attuazione considerata, il buffer di uscita 1104 di un dato pin safety-critical SCP può così essere configurato per pilotare il rispettivo pin SCP in funzione del rispettivo segnale di controllo di sicurezza SET. Per esempio, il buffer di uscita 1104 può impostare il livello elettrico del rispettivo pin safety-critical, per es. a un dato livello logico (per es., alto o basso) o a uno stato di alta impedenza. In varie forme di attuazione, ciascun insieme dei bit di informazioni di instradamento STEl può così contenere anche uno o più bit (che sono forniti al rispettivo buffer di uscita 1104) per configurare il livello elettrico al quale dovrebbe essere posto il rispettivo pin safety-critical SCP nel caso in cui il rispettivo segnale di controllo di sicurezza SET sia impostato.
Così, impostando i bit SEj dell’insieme dei bit di informazioni di instradamento di sicurezza STEl, lo sviluppatore del software e/o del sistema può decidere quali segnali di errore combinati ET dovrebbero essere instradati a quale pin safety-critical SCP, controllando con ciò il funzionamento dei pin safety-critical SCP, in particolare al fine di porre i pin safety-critical SCP in uno stato di sicurezza. Per esempio, come menzionato in precedenza, soltanto un errore hardware critico può essere instradato al pin di errore EP1, al fine di intraprendere le misure adatte per mantenere l’intero sistema in uno stato di sicurezza. Per contro, qualsiasi genere di errore può essere instradato al pin di errore EP2, per es. al fine di implementare una funzione di registrazione su file (“log”) degli errori. Di conseguenza, in questo caso, le informazioni fornite al pin EP1 sono rilevanti per la sicurezza e il progettista può impostare il bit SE1 dell’insieme dei bit di informazioni di instradamento di sicurezza STE1 al fine di inoltrare il segnale di errore combinato ET1 non solo al pin di errore EP1, ma anche a uno o più pin safety-critical SCP (in particolare il rispettivo circuito di interfaccia 110), ponendo con ciò il rispettivo pin safety-critical SCP in uno stato di sicurezza.
Anche in questo caso, i bit SE dell’insieme dei bit di informazioni di instradamento STE possono essere organizzati in vari modi. Per esempio, ciascun insieme dei bit di informazioni di instradamento STE può essere memorizzato in un rispettivo registro, cioè uno per ciascun segnale di controllo di sicurezza SET. Similmente, tutti i bit SE associati a un dato segnale di errore combinato ET possono essere memorizzati in un rispettivo registro, cioè uno per ciascun segnale di errore combinato ET.
Nelle forme di attuazione precedenti, i segnali di errore combinati ET e i segnali di controllo di sicurezza SET hanno così un primo livello logico (per es., basso) quando nessuno degli errori abilitato tramite i bit EOUT e SE è impostato. Per contro, i segnali di errore combinati ET e i segnali di controllo di sicurezza SET hanno un secondo livello logico (per es., alto), quando almeno uno degli errori è abilitato tramite il bit EOUT e il rispettivo bit SE è impostato.
Per contro, la Figura 9 rappresenta una forma di attuazione nella quale il circuito generatore di trigger di errore 1084 non riceve direttamente in ingresso i bit di errore EB o i segnali di errore ERR, ma un circuito aggiuntivo 1094 è connesso tra i bit di errore EB/i segnali di errore ERR e il circuito generatore di trigger di errore 1084.
Specificamente, come menzionato in precedenza, i circuiti 1084 e 1086 corrispondono sostanzialmente a due circuiti di instradamento, cioè:
- il circuito di instradamento 1084 è configurato per inoltrare i segnali ricevuti in ingresso ai pin di errore EP in funzione dei bit di configurazione EOUT; e
- il circuito di instradamento 1086 è configurato per inoltrare i segnali all’uscita dei circuiti di instradamento 1084 ai pin safety-critical SCP in funzione dei bit di configurazione SE.
Di conseguenza, il circuito 1094 può eseguire differenti operazioni sui bit di errore EB/i segnali di errore ERR prima che i dati elaborati ERR’ siano forniti in ingresso al circuito di instradamento 1094. Per esempio, il circuito 1094 può essere configurato per:
- selezionare soltanto un sottoinsieme dei segnali di errore ERR e/o combinare una pluralità dei segnali di errore ERR, riducendo con ciò il numero dei segnali ERR’ forniti al circuito di instradamento 1084; e/o
- mascherare dati errori ERR, cioè questi errori non sono mai segnalati al circuito 1084; e/o
- innescare un dato errore ERR, per es. a fini di test.
Di conseguenza, il registro 1080 può anche comprendere uno o più bit di configurazione per configurare il funzionamento del circuito 1094.
In varie forme di attuazione, il circuito 1094 può generare, per ciascun segnale di errore ERR, una rispettiva sequenza di bit seriale quando il rispettivo segnale di errore ERR è impostato, in cui una sequenza di bit differente è associata a ciascun segnale di errore ERR. Di conseguenza, invece di fornire un segnale di trigger di errore ET indistinguibile in ciascun pin di errore EP, ciascun segnale ET può corrispondere in effetti a una sequenza di bit indicativa di un rispettivo errore.
Di conseguenza, in generale, il sistema di elaborazione 10a comprende almeno due pin di errore EP (m ≥ 2). Nella forma di attuazione descritta, il circuito di raccolta di guasti 108 riceve in ingresso una pluralità di segnali di errore ERR generati dai vari circuiti del sistema di elaborazione 10a, e genera segnali di errore combinati ET per i pin di errore EP. Specificamente, il circuito di raccolta di guasti 108 è configurato per inoltrare selettivamente i segnali di errore ERR ai pin di errore EP. A questo scopo, il circuito di raccolta di guasti 108 comprende un primo circuito di instradamento 1084 configurato per generare i segnali di errore combinati ET inoltrando selettivamente i segnali di errore ERR ai pin di errore EP in funzione di un primo insieme di bit di configurazione EOUT.
In varie forme di attuazione, uno o più (k ≥ 1) pin del sistema di elaborazione 10a sono pin safety-critical SCP che hanno associato un circuito di interfaccia configurato per impostare selettivamente il livello elettrico del rispettivo pin in funzione di un segnale di controllo di sicurezza SET. In questo caso, il circuito di raccolta di guasti 108 genera anche i segnali di controllo di sicurezza SET per i pin safety-critical SCP. Specificamente, in varie forme di attuazione, il circuito di raccolta di guasti 108 comprende anche un secondo circuito di instradamento 1086 configurato per generare i segnali di controllo di sicurezza SET inoltrando selettivamente i segnali di errore combinati ET ai pin safety-critical SCP in funzione di un secondo insieme di bit di configurazione SE.
Come menzionato in precedenza, il circuito di raccolta di guasti 108 può anche essere configurato per memorizzare (attraverso il registro 1080) i segnali di errore ERR e/o per elaborare i segnali di errore ERR (attraverso il circuito 1094) prima che i segnali siano forniti al primo circuito 1084.
Naturalmente, fermi restando i principi di fondo dell’invenzione, i dettagli di costruzione e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto è stato descritto e illustrato qui, puramente a titolo di esempio, senza uscire con ciò dall’ambito della presente invenzione, come definito dalle rivendicazioni che seguono.

Claims (13)

  1. RIVENDICAZIONI 1. Sistema di elaborazione (10a) comprendente: - una pluralità di circuiti (102, 104, 106) configurati per generare una pluralità di segnali di errore (ERR, EB, ERR’); - una pluralità di pad di errore (EP); - un circuito di raccolta di guasti (108) configurato per ricevere in ingresso detti segnali di errore (ERR, EB, ERR’) e per generare un rispettivo segnale di errore combinato (ET) per ciascuno di detti pad di errore (EP), in cui detto circuito di raccolta di guasti (108) comprende: - un primo circuito logico combinatorio (1084) configurato per generare detto segnale di errore combinato (ET) instradando selettivamente detti segnali di errore (ERR, EB, ERR’) a detti pad di errore (EP) in funzione di un primo insieme di bit di configurazione (ETE).
  2. 2. Sistema di elaborazione (10a) secondo la Rivendicazione 1, in cui detto primo circuito logico combinatorio (1084) comprende un rispettivo primo sottocircuito combinatorio (1088) per ciascuno di detti segnali di errore (ERR, EB, ERR’), in cui ciascun primo sottocircuito combinatorio (1088) è configurato per: - ricevere in ingresso un rispettivo segnale di errore (ERR, EB, ERR’) e una prima pluralità di bit di configurazione (ETE), uno per ciascun pad di errore (EP), e - generare, per ciascun pad di errore (EP), un rispettivo segnale di uscita eseguendo una prima operazione logica (AND1, AND2, AND3, AND4) tra il segnale di errore (ERR, EB, ERR’) ricevuto e un rispettivo bit di configurazione (EOUT) di detta prima pluralità di bit di configurazione (ETE).
  3. 3. Sistema di elaborazione (10a) secondo la Rivendicazione 2, in cui detto primo circuito logico combinatorio (1084) comprende un rispettivo secondo sottocircuito combinatorio (1090) per ciascun pin di errore (EP), in cui ciascun secondo sotto-circuito combinatorio (1090) è configurato per: - ricevere in ingresso un rispettivo segnale di uscita da ciascuno di detti primi circuiti combinatori (1088), e - generare un rispettivo segnale di errore combinato (ET) per il rispettivo pad di errore (EP) combinando il segnale di uscita ricevuto attraverso una seconda operazione logica.
  4. 4. Sistema di elaborazione (10a) secondo la Rivendicazione 3, in cui detta prima operazione logica (AND1, AND2, AND3, AND4) è un’operazione di AND, e detta seconda operazione logica è un’operazione di OR.
  5. 5. Sistema di elaborazione (10a) secondo una qualsiasi delle precedenti Rivendicazioni da 2 a 4, in cui detto primo insieme di bit di configurazione (ETE) che comprende detta prima pluralità di bit di configurazione (ETE) è programmabile.
  6. 6. Sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti, comprendente almeno un pad safety-critical (SCP), in cui ciascun pad safety-critical (SCP) ha associato un rispettivo circuito di interfaccia (110) configurato per impostare il livello elettrico del pad safety-critical (SCP) in funzione di un segnale di controllo di sicurezza (SET), in cui detto circuito di raccolta di guasti (108) è configurato per ricevere in ingresso detti segnali di errore (ERR, EB, ERR’) e per generare un rispettivo segnale di controllo di sicurezza (SET) per ciascuno di detti almeno un pad safety-critical (SCP), e in cui detto circuito di raccolta di guasti (108) comprende un secondo circuito logico combinatorio (1086) configurato per generare detto segnale di controllo di sicurezza (SET) instradando selettivamente detti segnali di errore combinati (ET) a detti pad safety-critical (SCP) in funzione di un secondo insieme di bit di configurazione (STE).
  7. 7. Sistema di elaborazione (10a) secondo la Rivendicazione 6, in cui detto secondo circuito logico combinatorio (1086) comprende un rispettivo sotto-circuito combinatorio (1092) per ciascuno di detti pad safetycritical (SCP), in cui ciascun sotto-circuito combinatorio (1092) è configurato per: - ricevere in ingresso detti segnali di errore combinati (ET) e una seconda pluralità di bit di configurazione (STE); - generare, per ciascuno dei segnali di errore combinati (ET), un rispettivo segnale di uscita eseguendo una terza operazione logica (AND5, AND6, AND7, AND8) tra un rispettivo segnale di errore combinato (ET) e un rispettivo bit di configurazione (SE) di detta seconda pluralità di bit di configurazione (STE); e - generare un rispettivo segnale di controllo di sicurezza (SET) per il rispettivo pad safety-critical (SCP) combinando i rispettivi segnali di uscita attraverso una quarta operazione logica (OR1).
  8. 8. Sistema di elaborazione (10a) secondo la Rivendicazione 7, in cui detta terza operazione logica (AND5, AND6, AND7, AND8) è un’operazione di AND, e detta quarta operazione logica (OR1) è un’operazione di OR.
  9. 9. Sistema di elaborazione (10a) secondo la Rivendicazione 7 o la Rivendicazione 8, in cui detto secondo insieme di bit di configurazione (STE) che comprende detta seconda pluralità di bit di configurazione (STE) è programmabile.
  10. 10. Sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta pluralità di circuiti (102, 104, 106) configurati per generare una pluralità di segnali di errore (ERR, EB, ERR’) comprendono almeno una tra: - una memoria (104) che supporta una funzione di rilevazione e/o di correzione degli errori, detta memoria configurata per generare un segnale di errore (ERR1) quando i dati letti da detta memoria (104) contengono errori e/o quando dati non hanno potuto essere scritti in detta memoria (104); - un’unità di elaborazione (104) configurata per generare un segnale di errore (ERR2) in risposta a un malfunzionamento hardware e/o software; e - un’interfaccia di comunicazione (106) configurata per generare un segnale di errore (ERR3) corrispondente a un segnale di errore hard indicativo di un malfunzionamento hardware e/o a un segnale di errore soft indicativo di un errore di trasmissione di dati.
  11. 11. Circuito integrato, come un microcontrollore, comprendente un sistema di elaborazione (10a) secondo una qualsiasi delle Rivendicazioni da 1 a 10.
  12. 12. Procedimento per fare funzionare un sistema di elaborazione (10a) secondo una qualsiasi delle Rivendicazioni da 1 a 10, comprendente le fasi di: - fornire detto primo insieme di bit di configurazione (ETE) a detto sistema di elaborazione (10a); - generare, attraverso detta pluralità di circuiti (102, 104, 106), almeno un segnale di errore (ERR, EB, ERR’); e - generare, attraverso detto circuito di raccolta di guasti (108), un rispettivo segnale di errore combinato (ET) per ciascuno di detti pad di errore (EP) in funzione di detto primo insieme di bit di configurazione (ETE).
  13. 13. Procedimento secondo la Rivendicazione 12, comprendente le fasi di: - fornire detto secondo insieme di bit di configurazione (STE) a detto sistema di elaborazione (10a); e - generare, attraverso detto circuito di raccolta di guasti (108), un rispettivo segnale di controllo di sicurezza (SET) per ciascuno di detti almeno un pad di errore di sicurezza (SCP) in funzione di detto secondo insieme di bit di configurazione (STE).
IT102018000003234A 2018-03-02 2018-03-02 Sistema di elaborazione, relativo circuito integrato e procedimento IT201800003234A1 (it)

Priority Applications (4)

Application Number Priority Date Filing Date Title
IT102018000003234A IT201800003234A1 (it) 2018-03-02 2018-03-02 Sistema di elaborazione, relativo circuito integrato e procedimento
EP19159293.0A EP3534261B1 (en) 2018-03-02 2019-02-26 Processing system, related integrated circuit and method
US16/289,405 US11113136B2 (en) 2018-03-02 2019-02-28 Processing system, related integrated circuit and method
US17/406,910 US11977438B2 (en) 2018-03-02 2021-08-19 Processing system, related integrated circuit and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102018000003234A IT201800003234A1 (it) 2018-03-02 2018-03-02 Sistema di elaborazione, relativo circuito integrato e procedimento

Publications (1)

Publication Number Publication Date
IT201800003234A1 true IT201800003234A1 (it) 2019-09-02

Family

ID=62143523

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102018000003234A IT201800003234A1 (it) 2018-03-02 2018-03-02 Sistema di elaborazione, relativo circuito integrato e procedimento

Country Status (3)

Country Link
US (2) US11113136B2 (it)
EP (1) EP3534261B1 (it)
IT (1) IT201800003234A1 (it)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3719636A1 (en) 2019-04-03 2020-10-07 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201800003234A1 (it) 2018-03-02 2019-09-02 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato e procedimento
EP3661056B1 (en) 2018-11-27 2022-05-25 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method
DE102019203251B3 (de) * 2019-03-11 2020-06-18 Volkswagen Aktiengesellschaft Verfahren und System zur sicheren Signalmanipulation für den Test integrierter Sicherheitsfunktionalitäten
US20220318109A1 (en) 2021-03-30 2022-10-06 STMicroelectrics Application GMBH Processing system, related integrated circuit, device and method
US20220334865A1 (en) 2021-04-16 2022-10-20 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method
EP4120083A1 (en) 2021-07-13 2023-01-18 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method
IT202100022565A1 (it) 2021-08-31 2023-03-03 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT202200006455A1 (it) 2022-04-01 2023-10-01 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT202200006458A1 (it) 2022-04-01 2023-10-01 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010007469A1 (en) * 2008-07-16 2010-01-21 Freescale Semiconductor, Inc. Micro controller unit including an error indicator module
US20110179314A1 (en) * 2010-01-21 2011-07-21 Patel Nehal K Method and system of error logging
US20160239663A1 (en) * 2015-02-13 2016-08-18 International Business Machines Corporation Detecting a cryogenic attack on a memory device with embedded error correction

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346812B1 (en) * 2000-04-27 2008-03-18 Hewlett-Packard Development Company, L.P. Apparatus and method for implementing programmable levels of error severity
US8650470B2 (en) * 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US7269764B2 (en) * 2004-06-18 2007-09-11 International Business Machines Corporation Monitoring VRM-induced memory errors
US7596738B2 (en) * 2004-11-17 2009-09-29 Sun Microsystems, Inc. Method and apparatus for classifying memory errors
US7653848B2 (en) * 2006-07-14 2010-01-26 International Business Machines Corporation Selectively engaging optional data reduction mechanisms for capturing trace data
US9176803B2 (en) * 2006-08-14 2015-11-03 International Business Machines Corporation Collecting data from a system in response to an event based on an identification in a file of the data to collect
US7730361B2 (en) * 2007-03-30 2010-06-01 Texas Instruments Incorporated Aggregation of error messaging in multifunction PCI express devices
US8191029B2 (en) * 2008-12-12 2012-05-29 Lsi Corporation Timing error sampling generator, critical path monitor for hold and setup violations of an integrated circuit and a method of timing testing
US8966326B2 (en) * 2010-04-30 2015-02-24 SK Hynix Inc. Error detecting circuit and semiconductor apparatus including the same
CN102467417B (zh) * 2010-11-19 2014-04-23 英业达股份有限公司 计算机系统
DE102011016706A1 (de) * 2011-04-11 2012-10-11 Conti Temic Microelectronic Gmbh Schaltungsanordnung mit Fail-Silent-Funktion
US8738971B2 (en) * 2011-12-07 2014-05-27 Arm Limited Limiting certain processing activities as error rate probability rises
WO2013095470A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Error framework for a microprocessor and system
WO2013111317A1 (ja) * 2012-01-27 2013-08-01 富士通株式会社 情報処理方法、装置及びプログラム
JP6003350B2 (ja) * 2012-07-30 2016-10-05 富士通株式会社 監視装置、情報処理装置、及び監視方法
US9164826B2 (en) * 2013-01-23 2015-10-20 Allegro Microsystems, Llc Method and apparatus to recover from an erroneous logic state in an electronic system
JP6002856B2 (ja) * 2013-11-08 2016-10-05 株式会社日立製作所 監視システム、及び、監視方法
JP6210010B2 (ja) * 2014-03-27 2017-10-11 富士通株式会社 情報処理プログラム、装置及び方法
US10241852B2 (en) * 2015-03-10 2019-03-26 Siemens Aktiengesellschaft Automated qualification of a safety critical system
IT201800003234A1 (it) 2018-03-02 2019-09-02 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato e procedimento

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010007469A1 (en) * 2008-07-16 2010-01-21 Freescale Semiconductor, Inc. Micro controller unit including an error indicator module
US20110179314A1 (en) * 2010-01-21 2011-07-21 Patel Nehal K Method and system of error logging
US20160239663A1 (en) * 2015-02-13 2016-08-18 International Business Machines Corporation Detecting a cryogenic attack on a memory device with embedded error correction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3719636A1 (en) 2019-04-03 2020-10-07 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method

Also Published As

Publication number Publication date
EP3534261B1 (en) 2020-11-04
US20190272210A1 (en) 2019-09-05
US11113136B2 (en) 2021-09-07
US11977438B2 (en) 2024-05-07
EP3534261A1 (en) 2019-09-04
US20210382779A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
IT201800003234A1 (it) Sistema di elaborazione, relativo circuito integrato e procedimento
KR20180022759A (ko) 안전 관련 중대한 에러를 처리하는 방법 및 장치
JP2015509183A (ja) 回路装置、集積回路デバイス、プログラム製品、および方法(内部投票ベースのビルトイン・セルフ・テスト(bist)を備えるマルチコア・プロセッサ)
JP2007518988A (ja) 複数のクロックドメインを備える回路のテスティング
US9529686B1 (en) Error protection for bus interconnect circuits
US20090044048A1 (en) Method and device for generating a signal in a computer system having a plurality of components
EP4141677A1 (en) Processing system, related integrated circuit, device and method
CN104685509B (zh) 用于控制链接的程序块的分开的运行的方法和控制设备
US20220318109A1 (en) Processing system, related integrated circuit, device and method
JP2006513471A (ja) メモリアクセスエラーの検出及び/又は訂正方法、並びにこの方法を実行するための電子回路構成
IT201800002895A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
KR100423891B1 (ko) 트레이스 모듈을 구비한 마이크로프로세서
IT201800003233A1 (it) Sistema di elaborazione, relativo circuito integrato e procedimento
US20220334865A1 (en) Processing system, related integrated circuit, device and method
US7281162B2 (en) Program-controlled unit
IT202100007475A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
JP2000322282A (ja) マイクロコンピュータ
EP4254196A1 (en) Processing system, related integrated circuit, device and method
JPS63193237A (ja) 半導体集積回路装置
US20230064905A1 (en) Semiconductor device
US11764807B2 (en) Processing system, related integrated circuit, device and method
US20230314506A1 (en) Processing system, related integrated circuit, device and method
EP4296850A1 (en) Processing system, related integrated circuit, device and method
WO2006129356A1 (ja) 情報処理装置、および、その誤演算検出方法
CN116820922A (zh) 面向基于risc-v指令集的向量控制模块的验证方法及平台