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

Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento Download PDF

Info

Publication number
IT202100022565A1
IT202100022565A1 IT102021000022565A IT202100022565A IT202100022565A1 IT 202100022565 A1 IT202100022565 A1 IT 202100022565A1 IT 102021000022565 A IT102021000022565 A IT 102021000022565A IT 202100022565 A IT202100022565 A IT 202100022565A IT 202100022565 A1 IT202100022565 A1 IT 202100022565A1
Authority
IT
Italy
Prior art keywords
bit
bits
error
signature
data
Prior art date
Application number
IT102021000022565A
Other languages
English (en)
Inventor
Vivek Mohan Sharma
Roberto Colombo
Original Assignee
Stmicroelectronics Application Gmbh
St Microelectronics Int Nv
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, St Microelectronics Int Nv filed Critical Stmicroelectronics Application Gmbh
Priority to IT102021000022565A priority Critical patent/IT202100022565A1/it
Priority to US17/815,807 priority patent/US12068048B2/en
Priority to EP22192295.8A priority patent/EP4141677B1/en
Publication of IT202100022565A1 publication Critical patent/IT202100022565A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Detection And Correction Of Errors (AREA)
  • Electronic Switches (AREA)
  • Hardware Redundancy (AREA)

Description

DESCRIZIONE dell?invenzione industriale dal titolo:
?Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento?
TESTO DELLA DESCRIZIONE
Campo Tecnico
Le forme di attuazione della presente descrizione sono relative alla gestione degli errori nei 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 (?Engine Control Unit?), una Unit? di Controllo della Trasmissione (TCU, ?Transmission Control Unit?), un Sistema Frenante Antiblocco (ABS, ?Antilock Braking System?), un modulo di controllo della scocca (BCM, ?Body Control Module?) e/o un sistema audio multimediale e/o di navigazione. Di conseguenza, uno o pi? dei sistemi di elaborazione 10 possono anche implementare funzioni di controllo e di regolazione in tempo reale (?real-time?). Questi sistemi di elaborazione sono identificati di solito come Unit? di Controllo Elettroniche (ECU, ?Electronic Control Unit?).
La Figura 2 rappresenta uno schema a blocchi di un esempio di un sistema di elaborazione 10 digitale, come un microcontrollore, che pu? essere usato in uno qualsiasi dei sistemi di elaborazione 10 della Figura 1.
Nell?esempio considerato, il sistema di elaborazione 10 comprende un microprocessore 102, di solito l?Unit? di Elaborazione Centrale (CPU, ?Central Processing Unit?), programmato mediante istruzioni software. Di solito, il software eseguito dal microprocessore 102 ? memorizzato in una memoria di programma 104 non volatile, come una memoria Flash o una EEPROM. Cos?, la memoria 104 ? configurata per memorizzare il firmware dell?unit? di elaborazione 102, in cui il firmware comprende le istruzioni software che devono essere eseguite dal microprocessore 102. Generalmente, la memoria non volatile 104 pu? anche essere usata per memorizzare altri dati, come i dati di configurazione, per es., i dati di calibrazione.
Il microprocessore 102 ha di solito associata anche una memoria volatile 104b, come una memoria ad accesso casuale (RAM, ?Random-Access-Memory?). Per esempio, la memoria 104b pu? essere usata per memorizzare dati temporanei.
Come rappresentato nella Figura 2, di solito la comunicazione con le memorie 104 e/o 104b ? effettuata mediante uno o pi? controllori di memoria 100. Il controllore (i controllori) di memoria 100 pu? essere integrato (possono essere integrati) nel microprocessore 102 o connesso (connessi) al microprocessore 102 mediante un canale di comunicazione, come un bus di sistema del sistema di elaborazione 10. Similmente, le memorie 104 e/o 104b possono essere integrate con il microprocessore 102 in un singolo circuito integrato, o le memorie 104 e/o 104b possono essere sotto forma di un circuito integrato separato e connesso al microprocessore 102, per es., mediante le piste di una scheda a circuito stampato (PCB, ?Printed Circuit Board?).
Nell?esempio considerato, il microprocessore 102 pu? avere associate una o pi? periferiche/risorse (hardware) 106, selezionate tra il gruppo di:
- una o pi? interfacce di comunicazione IF, per es. per scambiare dati tramite il sistema di comunicazione 20, come una interfaccia UART (Universal Asynchronous Receiver/ Transmitter), Bus SPI (Serial Peripheral Interface), I<2>C (Inter-Integrated Circuit), bus CAN (Controller Area Network), e/o una interfaccia Ethernet e/o una interfaccia di debug; e/o
- uno o pi? convertitori analogico/digitali AD e/o convertitori digitale/analogici DA; e/o
- uno o pi? componenti digitali DC dedicati, come contatori e/o timer hardware, o un coprocessore crittografico; e/o
- uno o pi? componenti analogici AC, come comparatori, sensori, come un sensore di temperatura, ecc.; e/o
- uno o pi? componenti a segnali misti MSC, come un dispositivo di pilotaggio (?driver?) PWM (Pulse-Width Modulation).
Generalmente, componenti digitali DC dedicati possono corrispondere anche a una FPGA integrata nel sistema di elaborazione 10. Per esempio, in questo caso, la memoria 104 pu? comprendere anche i dati di programma per una tale FPGA.
Di conseguenza, il sistema di elaborazione digitale 10 pu? supportare differenti funzionalit?. Per esempio, il comportamento del microprocessore 102 ? determinato dal firmware memorizzato nella memoria 104, per es., le istruzioni software che devono essere eseguite da un microprocessore 102 di un microcontrollore 10. Cos?, installando un firmware differente, lo stesso (microcontrollore) hardware pu? essere usato per differenti applicazioni.
A questo riguardo, ci si aspetta che le future generazioni di tali sistemi di elaborazione 10, per es., microcontrollori atti a essere usati nelle applicazioni automotive, presentino un aumento della complessit?, dovuto principalmente al numero crescente di funzionalit? richieste (nuovi protocolli, nuove caratteristiche, ecc.) e ai vincoli stringenti delle condizioni di esecuzione (per es., un consumo di potenza pi? basso, maggiore velocit? e potenza di calcolo, ecc.).
Per esempio, recentemente sono stati proposti sistemi di elaborazione multi-core 10 pi? complessi. Per esempio, tali sistemi di elaborazione multi-core possono essere usati per eseguire (in parallelo) alcuni dei sistemi di elaborazione 10 rappresentati nella Figura 1, come alcune ECU di un veicolo.
La Figura 3 rappresenta un esempio di un sistema di elaborazione multi-core 10. Specificamente, nell?esempio considerato, il sistema di elaborazione 10 comprende una pluralit? di n core di elaborazione 1021...102n connessi a un sistema di comunicazione (on-chip) 114. Per esempio, nel contesto dei sistemi di controllo in tempo reale, i core di elaborazione 1021...102n possono essere core ARM Cortex?-R52. Generalmente, il sistema di comunicazione 114 pu? comprendere uno o pi? sistemi di bus, per es., basati sull?architettura di bus AXI (Advanced eXtensible Interface), e/o un NoC (Network-on-Chip).
Per esempio, come rappresentato nell?esempio del core di elaborazione 1021, ciascun core di elaborazione 102 pu? comprendere un microprocessore 1020 e un?interfaccia di comunicazione 1022 configurata per gestire la comunicazione tra il microprocessore 1020 e il sistema di comunicazione 114. Tipicamente, l?interfaccia 1022 ? un?interfaccia master configurata per inoltrare una data richiesta (di lettura o di scrittura) dal microprocessore 1020 al sistema di comunicazione 114, e per inoltrare una risposta opzionale dal sistema di comunicazione 114 al microprocessore 1020. Tuttavia, l?interfaccia di comunicazione 1022 pu? anche comprendere un?interfaccia slave. Per esempio, in questo modo, un primo microprocessore 1020 pu? inviare una richiesta a un secondo microprocessore 1020 (mediante l?interfaccia di comunicazione 1022 del primo microprocessore, il sistema di comunicazione 114 e l?interfaccia di comunicazione 1022 del secondo microprocessore).
Generalmente, ciascun core di elaborazione 1021...102n pu? comprendere anche ulteriori risorse locali, come una o pi? memorie locali 1026, identificata di solito come TCM (Tightly Coupled Memory).
Come menzionato in precedenza, tipicamente i core di elaborazione 1021...102n sono disposti per scambiare dati con una memoria non volatile 104 e/o una memoria volatile 104b. In un sistema di elaborazione multi-core 10, spesso queste memorie sono memorie di sistema, cio?, condivise per i core di elaborazione 1021...102n. Come menzionato in precedenza, ciascuno dei core di elaborazione 1021...102n pu? comprendere, tuttavia, una o pi? memorie locali 1026 aggiuntive.
Per esempio, come rappresentato nella Figura 3, il sistema di elaborazione 10 pu? comprendere uno o pi? controllori di memoria 100 configurati per connettere almeno una memoria non volatile 104 e almeno una memoria volatile 104b al sistema di comunicazione 114. Come menzionato in precedenza, una o pi? delle memorie 104 e/o 104b possono essere integrate nel circuito integrato del sistema di elaborazione 10 o connesse all?esterno del circuito integrato.
Come menzionato in precedenza, il sistema di elaborazione 10 pu? comprendere una o pi? risorse 106, come una o pi? interfacce di comunicazione o coprocessori (per es., un coprocessore crittografico). Le risorse 106 sono connesse di solito al sistema di comunicazione 114 mediante una rispettiva interfaccia di comunicazione 1062. In generale, l?interfaccia di comunicazione 1062 comprende almeno un?interfaccia slave. Per esempio, in questo modo, un core di elaborazione 102 pu? inviare una richiesta a una risorsa 106 e la risorsa restituisce i dati forniti. Generalmente, una o pi? delle interfacce di comunicazione 1062 possono comprendere anche una rispettiva interfaccia master. Per esempio, una tale interfaccia master pu? essere utile nel caso in cui la risorsa debba iniziare una comunicazione al fine di scambiare dati mediante una richiesta (di lettura e/o scrittura) con un altro circuito connesso al sistema di comunicazione 114, come una risorsa 106 o un core di elaborazione 102. Per esempio, a questo scopo, il sistema di comunicazione 114 pu? comprendere in effetti un Bus ad Alte Prestazioni (AHB, ?High-performance Bus?) AMBA (Advanced Microcontroller Bus Architecture), e un Bus Periferico Avanzato (APB, ?Advanced Peripheral Bus?) usato per connettere le risorse/periferiche 106 al bus AHB AMBA.
Spesso tali sistemi di elaborazione 10 comprendono anche uno o pi? controllori di Accesso Diretto in Memoria (DMA, ?Direct-Memory-Access?) 110. Per esempio, come rappresentato nella Figura 3, un controllore DMA 110 pu? essere usato per scambiare direttamente dati con una memoria, per es., la memoria 104b, in base a richieste ricevute da una risorsa 106. Per esempio, in questo modo, un?interfaccia di comunicazione IF pu? leggere direttamente i dati (mediante il controllore DMA 110) dalla memoria 104b e pu? trasmettere questi dati, senza dovere scambiare ulteriori dati con un?unit? di elaborazione 102. Generalmente, un controllore DMA 110 pu? comunicare con la memoria o le memorie mediante il sistema di comunicazione 114 o mediante uno o pi? canali di comunicazione dedicati.
A questo riguardo, indipendentemente dalla complessit? del sistema di elaborazione 10 (per es., rispetto al numero dei core di elaborazione 102 e/o al numero e al tipo delle risorse 106), un tipico sistema di elaborazione 10 comprende anche un circuito di raccolta dei guasti e di gestione degli errori 120.
Per esempio, la domanda di brevetto europeo n. EP 3 534 261 A1 descrive possibili forme di attuazione di un circuito di raccolta dei guasti e di gestione degli errori 120, che ? incorporato qui tramite citazione a questo scopo.
Specificamente, come rappresentato nella Figura 4, almeno uno dei circuiti 102, 104 e 106 pu? generare uno o pi? segnali di errore ERR1, ..., ERRm. Per esempio, tali segnali di errore ERR possono essere generati da almeno uno tra:
- una memoria 104 che supporta una funzione di rilevazione di errori e di correzione opzionale, che genera un segnale di errore ERR1 quando i dati letti dalla memoria 104 contengono errori e/o quando i dati non hanno potuto essere scritti nella memoria;
- un core di elaborazione 102 configurato per generare un segnale di errore ERR2 in risposta a un malfunzionamento hardware e/o software; e
- 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.
Nell?esempio considerato, i vari segnali di errore ERR1, ..., ERRm sono forniti al circuito di raccolta dei guasti e di gestione degli errori 120. In risposta ai segnali di errore ERR1, ..., ERRm, il circuito di raccolta dei guasti e di gestione degli errori 120 pu? eseguire varie operazioni.
Per esempio, il circuito di raccolta dei guasti e di gestione degli errori 120 pu? essere configurato per generare almeno uno tra:
- un segnale di interruzione (?interrupt?) IRQ fornito a un core di elaborazione 102;
- un segnale di richiesta di reset RST fornito a un circuito di gestione di reset del sistema di elaborazione 10;
- un segnale ET fornito a un terminale EP del sistema di elaborazione 10, per es., al fine di segnalare l?errore a un circuito esterno; e
- un segnale SET usato per impostare il livello di uscita di uno o pi? terminali critici per la sicurezza SCP del sistema di elaborazione 10.
Specificamente, a causa di un errore, i circuiti del sistema di elaborazione 10 possono non funzionare correttamente, generando eventualmente segnali scorretti ai pin/pad del sistema di elaborazione 10. Alcuni dei pin/pad del sistema di elaborazione 10a possono cos? essere pin/pad critici per la sicurezza, cio?, pin/pad che possono generare situazioni critiche quando pilotati scorrettamente. Per esempio, nella Figura 4 ? rappresentato schematicamente un primo pin critico per la sicurezza SCP1, che ? pilotato da un core di elaborazione 102, e un secondo pin critico per la sicurezza SCP2, che ? pilotato da una risorsa/periferica 106, come un?interfaccia di comunicazione o un dispositivo di pilotaggio a semi-ponte PWM.
Generalmente, ciascun pin/pad di ingresso/uscita del sistema di elaborazione 10 ha associato di solito un rispettivo circuito di pilotaggio IO, 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 IO e i blocchi del sistema di elaborazione 10a pu? anche essere disposta una logica dedicata, come uno o pi? multiplexer, che permette una configurazione della mappatura dei pin.
Di conseguenza, in linea con la descrizione del documento EP 3 534 261 A1, il circuito di pilotaggio IO di un pin/pad critico per la sicurezza SCP pu? essere 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 necessit? delle applicazioni specifiche. Preferibilmente, un tale ?stato di sicurezza? ? conforme alla specifica ISO2626.
La Figura 5 rappresenta una possibile implementazione del circuito di raccolta dei guasti e di gestione degli errori 120.
Nell?esempio considerato, il circuito di raccolta dei guasti e di gestione degli errori 120 comprende un registro 1200. Specificamente, nell?esempio considerato, il registro 1200 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 1200 pu? comprendere un numero corrispondente di bit di errore EB.
Nell?esempio considerato, il circuito di raccolta dei guasti e di gestione degli errori 120 comprende un circuito di reazione interna 1202. Specificamente, il circuito di reazione interna 1202 pu? essere configurato per generare il segnale di interrupt IRQ e/o il segnale di richiesta di reset RST in funzione del contenuto dei bit di errore EB del registro 1200. I bit di errore EB sono puramente opzionali e il circuito di reazione interna 1202 pu? anche generare direttamente il segnale di interrupt IRQ e/o il segnale di richiesta di reset RST in funzione del segnale (dei segnali) di errore ERR.
Similmente, il circuito di raccolta dei guasti e di gestione degli errori 120 comprende un circuito di reazione esterna 1204. Specificamente, il circuito di reazione esterna 1204 pu? essere configurato per generare il segnale di innesco (?trigger?) di errore ET e/o il segnale SET in funzione del contenuto dei bit di errore EB del registro 1200. Di nuovo, i bit di errore EB sono puramente opzionali e il circuito di reazione esterna 1204 pu? anche generare direttamente il segnale ET e/o il segnale SET in funzione del segnale (dei segnali) di errore ERR.
In generale, il comportamento dei circuiti di reazione 1202 e/o 1204 pu? anche essere programmabile, per es., impostando uno o pi? bit di configurazione nel registro 1200. Per esempio, nell?esempio considerato, il registro 1200 comprende:
- un rispettivo bit di abilitazione di interrupt IE per ciascuno dei segnali di errore ERR1..ERR3, cio?, il segnale di interrupt IRQ ? asserito quando anche il rispettivo bit di abilitazione di interrupt IE di un segnale di errore ERR asserito ? asserito;
- un rispettivo bit di abilitazione di innesco di errore ETE per ciascuno dei segnali di errore ERR1..ERR3, cio?, il segnale di innesco di errore ET ? asserito quando anche il rispettivo bit di abilitazione di innesco di errore ETE di un segnale di errore ERR asserito ? asserito.
Similmente, il registro 1200 pu? comprendere rispettivi bit di abilitazione di reset per il segnale di richiesta di reset REQ e/o rispettivi bit di abilitazione per il segnale di sicurezza SET.
Al fine di semplificare lo scambio di dati tra l?unit? di elaborazione 102 e il registro 1200, il registro 1200 pu? essere indirizzabile direttamente dall?unit? di elaborazione 102, il che ? rappresentato schematicamente nella Figura 3, dove il circuito di raccolta dei guasti e di gestione degli errori 120 ? connesso al sistema di comunicazione 114.
Tipicamente, come rappresentato nella Figura 6, i segnali di errore ERR hardware sono generati da circuiti di monitoraggio di sicurezza SM dedicati. Per esempio, tali circuiti di monitoraggio di sicurezza possono comprendere circuiti logici combinatori e/o sequenziali, che monitorano il funzionamento di un dato circuito. Generalmente, tali circuiti di monitoraggio di sicurezza SM possono anche comprendere componenti analogici, per es., al fine di rilevare una condizione di fuori campo (?out-of-range?) per un segnale analogico, come una tensione di alimentazione interna o un segnale indicativo della temperatura di funzionamento del sistema di elaborazione o di uno specifico circuito del sistema di elaborazione.
Per esempio, la Figura 6 rappresenta un circuito di monitoraggio di sicurezza SM104 configurato per monitorare uno o pi? segnali della memoria 104, un circuito di monitoraggio di sicurezza SM102 configurato per monitorare uno o pi? segnali di un core di elaborazione 102 e un circuito di monitoraggio di sicurezza SM106 configurato per monitorare uno o pi? segnali di una risorsa/periferica 106. Generalmente, il circuito di monitoraggio di sicurezza pu? anche essere integrato nel rispettivo circuito.
Di conseguenza, tipicamente ciascun circuito di monitoraggio di sicurezza SM monitora uno o pi? segnali generati dal e/o forniti al circuito associato, e determina se il comportamento del segnale (dei segnali) ? normale o indica un errore. In generale, le operazioni effettuate da un dato circuito di monitoraggio di sicurezza SM dipendono dal circuito associato e possono comprendere, per es.:
- un?analisi combinatoria, per es., combinando i segnali del circuito associato al fine di determinare se i livelli di segnale sono congruenti;
- un?analisi sequenziale, per es., confrontando l?evoluzione nel tempo di uno o pi? segnali con uno o pi? segnali di riferimento;
- un?analisi di uno o pi? segnali analogici, per es., confrontando il valore di un segnale analogico con uno o pi? valori di riferimento; o
- una combinazione delle analisi precedenti al fine di implementare un?analisi di comportamento anomalo pi? complessa.
Per esempio, il circuito di monitoraggio di sicurezza SM104 pu? comprendere un circuito di rilevazione di errori della memoria 104, che calcola (mediante operazioni logiche combinatorie e opzionalmente sequenziali) un codice di correzione di errore per i dati letti dalla memoria e confronta (mediante operazioni logiche combinatorie) il codice di correzione di errore calcolato con un codice di correzione di errore letto dalla memoria.
Di conseguenza, in risposta alla determinazione di un comportamento anomalo, il circuito di monitoraggio di sicurezza SM pu? asserire un rispettivo segnale di errore ERR, che segnala l?errore al sistema di raccolta dei guasti 120.
In considerazione di ci? che precede, ? chiaro che anche i circuiti di monitoraggio di sicurezza possono essere circuiti complessi, che possono essere soggetti a malfunzionamenti. Questo si applica in particolare ai circuiti di monitoraggio di sicurezza per le memorie o ad altri circuiti di monitoraggio di sicurezza comprendenti un circuito configurato per verificare un codice di correzione di errore (ECC, ?Error Correction Code?).
Sintesi
In considerazione di quanto precede, uno scopo delle varie forme di attuazione della presente descrizione ? di fornire soluzioni per monitorare il funzionamento di un circuito di monitoraggio di sicurezza comprendente un circuito configurato per verificare un codice di correzione di errore (ECC).
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, dispositivo 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, per es., implementato in un circuito integrato, come un microcontrollore. Specificamente, il sistema di elaborazione comprende un circuito configurato per fornire un dato numero N di bit di dati e un dato numero K di bit di codice di correzione di errore (ECC). Il circuito ha associato o comprende un circuito di rilevazione di errori.
Specificamente, in varie forme di attuazione, il circuito di rilevazione di errori ? configurato per ricevere i bit di dati e i bit di ECC. In seguito, il circuito di rilevazione di errori calcola ulteriori bit di ECC in funzione dei bit di dati secondo il codice ECC usato. In varie forme di attuazione, il codice ECC ? atto a correggere fino a un dato numero massimo di bit scorretti. Per esempio, in varie forme di attuazione, il codice ECC pu? essere un Codice di Correzione di Errore Singolo (SEC, ?Single-Error Correct?) Rilevazione di Errore Doppio (DED, ?Double-Error Detect?).
In varie forme di attuazione, il circuito di rilevazione di errori genera quindi una sindrome confrontando i bit di ECC calcolati con i bit di ECC ricevuti, in cui la sindrome ha K bit. Di conseguenza, il circuito di rilevazione di errori pu? confrontare la sindrome con una pluralit? di sindromi di riferimento indicative di errori correggibili. Specificamente, il circuito di rilevazione di errori ? configurato per confrontare la sindrome almeno con N K sindromi di riferimento di ribaltamento di bit singolo, in cui ciascuna sindrome di riferimento di ribaltamento di bit singolo ? associata a un rispettivo errore di ribaltamento di bit singolo. Di conseguenza, in risposta alla determinazione che la sindrome corrisponde a una sindrome di riferimento di ribaltamento di bit singolo, il circuito di rilevazione di errori pu? asserire un primo segnale di errore, per es., indicativo di un errore correggibile. Inoltre, il circuito di rilevazione di errori pu? asserire un bit di una firma di ribaltamento di bit corrispondente all?errore di ribaltamento di bit singolo indicato dalla rispettiva sindrome di riferimento di ribaltamento di bit singolo. Di conseguenza, la firma di ribaltamento di bit ha un dato numero di N K bit e indica la posizione di uno o pi? bit scorretti nei bit di dati e nei bit di ECC.
Per esempio, in varie forme di attuazione, il circuito pu? comprendere un circuito di correzione di errore. Specificamente, quando il primo segnale di errore ? asserito, il circuito di correzione di errore pu? generare bit di dati corretti invertendo ciascun bit dei bit di dati per il quale il corrispondente bit della firma di ribaltamento di bit ? asserito.
Di conseguenza, il circuito pu? essere, per esempio, un controllore di memoria del sistema di elaborazione. Specificamente, un tale controllore di memoria pu? ricevere una richiesta di lettura da un microprocessore e/o da un controllore DMA del sistema di elaborazione, in cui la richiesta di lettura comprende un dato indirizzo. Di conseguenza, il controllore di memoria pu? leggere il dato numero N di bit di dati e il dato numero K di bit di ECC dal dato indirizzo associato a una memoria trattata dal controllore di memoria. Quando il primo segnale di errore ? deasserito, il controllore di memoria pu? quindi fornire i bit di dati al microprocessore e/o al controllore DMA. Per contro, quando il primo segnale di errore ? asserito, il controllore di memoria pu? fornire i bit di dati corretti al microprocessore e/o al controllore DMA.
In varie forme di attuazione, il sistema di elaborazione comprende inoltre un circuito di test configurato per fornire, durante una modalit? di test, una sequenza di configurazioni (?pattern?) al circuito di rilevazione di errori, ciascuna configurazione comprendendo bit di dati e bit di ECC, e monitorare il primo segnale di errore e la firma di ribaltamento di bit rispettivi.
Specificamente, in varie forme di attuazione, il circuito di test ? configurato per ottenere una prima configurazione, la prima configurazione corrispondendo a una data sequenza di bit di dati e di bit di ECC calcolati in funzione dei bit di dati secondo lo schema/codice ECC usato, cio?, la prima configurazione non comprende errori di ECC. Per esempio, la prima configurazione pu? essere cablata in hardware (?hard-wired?) o programmabile. In seguito, il circuito di test fornisce la prima configurazione al circuito di rilevazione di errori e verifica se il primo segnale di errore ? deasserito e tutti i bit della firma di ribaltamento di bit sono deasseriti. Di conseguenza, il circuito di test pu? asserire uno o pi? segnali di errore in risposta alla determinazione che il primo segnale di errore ? asserito e/o almeno un bit della firma di ribaltamento di bit ? asserito.
In varie forme di attuazione, il circuito di test ottiene una sequenza di N K ulteriori firme di ribaltamento di bit, ciascuna ulteriore firma di ribaltamento di bit avendo asserito un bit singolo. Inoltre, il circuito di test ottiene per ciascuna ulteriore firma di ribaltamento di bit una rispettiva seconda configurazione, in cui ciascuna seconda configurazione corrisponde a una configurazione che ha un bit singolo ribaltato rispetto a una configurazione di riferimento nelle posizioni del bit singolo asserito della rispettiva ulteriore firma di ribaltamento di bit. La configurazione di riferimento corrisponde a una data sequenza di bit di dati e di bit di ECC calcolati in funzione dei rispettivi bit di dati secondo il dato schema di ECC, per cui ciascuna seconda configurazione corrisponde a una configurazione con un errore di bit singolo correggibile. Per esempio, la configurazione di riferimento per le seconde configurazioni pu? corrispondere alla prima configurazione.
In varie forme di attuazione, il circuito di test ? configurato per generare le N K seconde configurazioni, per es., mediante un circuito logico sequenziale, effettuando le seguenti fasi per ciascuna seconda configurazione. Dapprima, il circuito di test ottiene la configurazione di riferimento e genera la rispettiva ulteriore firma di ribaltamento di bit, in cui l?ulteriore firma di ribaltamento di bit ha asserito un bit singolo. In seguito, il circuito di test genera la rispettiva seconda configurazione invertendo il bit della configurazione di riferimento per cui il corrispondente bit dell?ulteriore firma di ribaltamento di bit ? asserito. Per esempio, il circuito di test pu? generare tale ulteriore firma di ribaltamento di bit mediante un contatore e un decodificatore one-hot, o un registro a scorrimento avente un bit singolo asserito. Di conseguenza, in varie forme di attuazione, il bit singolo ? posizionato in tutte le posizioni possibili della firma di ribaltamento di bit, cio?, al circuito di rilevazione di errori sono fornite N K seconde configurazioni.
In varie forme di attuazione, il circuito di test fornisce ciascuna seconda configurazione al circuito di rilevazione di errori e verifica se il primo segnale di errore ? asserito e la firma di ribaltamento di bit corrisponde alla rispettiva ulteriore firma di ribaltamento di bit. Di conseguenza, il circuito di test pu? asserire uno o pi? segnali di errore in risposta alla determinazione che il primo segnale di errore ? deasserito e/o la firma di ribaltamento di bit non corrisponde alla rispettiva ulteriore firma di ribaltamento di bit.
In varie forme di attuazione, il codice ECC usato pu? anche essere atto a rilevare un dato numero massimo di bit scorretti, in cui il dato numero massimo di bit scorretti rilevabili corrisponde al dato numero di bit scorretti correggibili pi? uno. Per esempio, come menzionato in precedenza, il codice ECC pu? essere un codice SECDED. In questo caso, il circuito di rilevazione di errori pu? essere configurato per impostare un secondo segnale di errore a un dato livello logico in risposta alla determinazione che i bit di dati e i bit di ECC hanno il dato numero massimo di bit scorretti rilevabili.
In questo caso, il circuito di test pu? anche ottenere una terza configurazione, in cui la terza configurazione corrisponde a una data sequenza di bit di dati e di bit di ECC che ha un dato numero di bit ribaltati rispetto alla prima configurazione o alla configurazione di riferimento, in cui il dato numero di bit invertiti/ribaltati corrisponde al numero massimo di bit scorretti rilevabili, per cui la terza configurazione rappresenta una configurazione con un errore non correggibile. Il circuito di test fornisce quindi la terza configurazione al circuito di rilevazione di errori e verifica se il primo segnale di errore ? asserito, il secondo segnale di errore ? impostato al dato livello logico e tutti i bit della firma di ribaltamento di bit sono deasseriti. Di conseguenza, il circuito di test pu? asserire l?uno o pi? segnali di errore in risposta alla determinazione che il primo segnale di errore ? deasserito, il secondo segnale di errore non ? impostato al dato livello logico e/o almeno un bit della firma di ribaltamento di bit ? asserito.
In varie forme di attuazione, lo stesso circuito di test pu? testare pi? circuiti di correzione di errore. Specificamente, in varie forme di attuazione, la pluralit? di circuiti di rilevazione di errori riceve in parallelo la sequenza di configurazioni fornita dal circuito di test. In questo caso, pu? essere usata una pluralit? di porte logiche OR per generare un primo segnale di errore combinato e una prima firma di ribaltamento di bit combinata combinando, rispettivamente, i primi segnali di errore e le firme di ribaltamento di bit forniti dalla pluralit? di circuiti di rilevazione di errori. Similmente, pu? essere usata una pluralit? di porte logiche AND per generare un secondo segnale di errore combinato e una seconda firma di ribaltamento di bit combinata combinando, rispettivamente, i primi segnali di errore e le firme di ribaltamento di bit forniti dalla pluralit? di circuiti di rilevazione di errori.
In questo caso, il circuito di test ? configurato per asserire l?uno o pi? segnali di errore quando uno qualsiasi tra i segnali di errore combinati o la firma di ribaltamento di bit combinata non soddisfa le verifiche precedenti, cio?, il circuito di test asserisce l?uno o pi? segnali di errore in risposta alla determinazione che:
- per la prima configurazione, il primo segnale di errore combinato ? asserito e/o almeno un bit della prima firma di ribaltamento di bit combinata ? asserito, e/o il secondo segnale di errore combinato ? asserito e/o almeno un bit della seconda firma di ribaltamento di bit combinata ? asserito, e/o
- per ciascuna delle seconde configurazioni, il primo segnale di errore combinato ? deasserito e/o la prima firma di ribaltamento di bit combinata non corrisponde alla rispettiva ulteriore firma di ribaltamento di bit, e/o il secondo segnale di errore combinato ? deasserito e/o la seconda firma di ribaltamento di bit combinata non corrisponde alla rispettiva ulteriore firma di ribaltamento di bit.
Breve descrizione delle figure
Forme di attuazione della presente descrizione saranno ora descritte con riferimento ai disegni annessi, che sono forniti puramente a titolo di esempio non limitativo, e nei quali:
- la Figura 1 rappresenta un esempio di un sistema elettronico comprendente una pluralit? di sistemi di elaborazione;
- le Figure 2 e 3 rappresentano esempi di sistemi di elaborazione;
- la Figura 4 rappresenta un esempio di un sistema di elaborazione comprendente un circuito di raccolta dei guasti e di gestione degli errori;
- la Figura 5 rappresenta un esempio del circuito di raccolta dei guasti e di gestione degli errori della Figura 4;
- la Figura 6 rappresenta un esempio della connessione tra una pluralit? di circuiti di monitoraggio di sicurezza e il circuito di raccolta dei guasti e di gestione degli errori;
- la Figura 7 rappresenta una forma di attuazione di un sistema di elaborazione configurato per generare bit di ECC in funzione di bit di dati;
- la Figura 8 rappresenta una forma di attuazione di un sistema di elaborazione configurato per usare i bit di ECC al fine di rilevare e opzionalmente correggere gli errori nei bit di dati;
- la Figura 9 rappresenta una forma di attuazione di un circuito di rilevazione di errori atto a essere usato nel sistema di elaborazione della Figura 8;
- la Figura 10 rappresenta una forma di attuazione di un circuito di monitoraggio di sicurezza comprendente un circuito di rilevazione di errori e un circuito di test configurato per testare la rilevazione di errori;
- la Figura 11 rappresenta una forma di attuazione del circuito di test della Figura 10;
- la Figura 12 rappresenta una forma di attuazione del funzionamento del circuito di test della Figura 10; e
- la Figura 13 rappresenta una seconda forma di attuazione di un circuito di test configurato per testare una pluralit? di circuiti di rilevazione di errori.
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 rappresentate o descritte in dettaglio per 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? o simili che compaiono in vari punti in tutta questa 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 non definiscono l?ambito o il significato delle forme di attuazione.
Nelle Figure da 7 a 13 che seguono, le parti, gli elementi o i componenti che sono gi? stati descritti con riferimento alle Figure da 1 a 6 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 un sistema di elaborazione configurato per monitorare il funzionamento di un circuito di monitoraggio di sicurezza comprendente un circuito di rilevazione di errori, cio?, un circuito configurato per verificare un codice di correzione di errore (ECC). Specificamente, varie forme di attuazione sono relative a un circuito di monitoraggio di sicurezza SMa configurato per testare un tale circuito di ECC.
La Figura 7 e la Figura 8 rappresentano un generico sistema di elaborazione 10a comprendente un dispositivo master 40 e un dispositivo slave 42, in cui il dispositivo master 40 e il dispositivo slave 42 usano un tradizionale schema di protezione di ECC.
Specificamente, nella Figura 7 il circuito master 40 trasmette dati DATA al dispositivo slave 42. Specificamente, il dispositivo slave 42 riceve i bit di dati DATA e i bit di codice di correzione di errore ECC aggiuntivi generati da un circuito di generazione di codice di correzione di errore 44 configurato per generare i bit ECC in funzione dei bit di dati DATA.
Per esempio, in varie forme di attuazione, il dispositivo master 40 pu? essere un core di elaborazione 102, in particolare un microprocessore 1020, o un controllore DMA 110. Per contro, il dispositivo slave 42 pu? essere una memoria come una memoria non volatile 104 o una memoria volatile 104b, per es., una memoria RAM. Per esempio, il circuito di generazione di codice di correzione di errore 44 pu? essere integrato nel controllore di memoria 100 della memoria 42. Per una descrizione generale di questi circuiti, e di un rispettivo sistema di elaborazione 10, si pu? fare riferimento alla descrizione precedente delle Figure da 1 a 3. Per esempio, il microprocessore 1020 o il controllore DMA 110 (dispositivo master 40) pu? inviare una richiesta di scrittura comprendente i dati DATA mediante il sistema di comunicazione 114 al controllore di memoria 100. Il controllore di memoria 100 pu? quindi calcolare, mediante il rispettivo circuito di generazione di codice di correzione di errore 44, i bit ECC e pu? scrivere i bit di dati DATA e i bit ECC nella memoria, per es., a un indirizzo di memoria incluso nella richiesta di scrittura.
Per contro, nella Figura 8 il circuito master 40 riceve dati DATA forniti dal dispositivo slave 42. Specificamente, il dispositivo slave 42 fornisce i bit di dati DATA e i bit di codice di correzione di errore ECC aggiuntivi.
Per esempio, a questo scopo, il microprocessore 1020 o il controllore DMA 110 (dispositivo master 40) pu? inviare una richiesta di lettura mediante il sistema di comunicazione 114 al controllore di memoria 100. Il controllore di memoria 100 pu? quindi leggere i bit di dati DATA e i bit ECC dalla memoria, per es., da un indirizzo di memoria incluso nella richiesta di lettura, e pu? trasmettere i bit di dati DATA al microprocessore 1020 o al controllore DMA 110.
Tuttavia, come rappresentato nella Figura 8, in questo caso, un circuito di rilevazione di errori 46 ? configurato per verificare i bit DATA e ECC, e generare eventualmente uno o pi? segnali di errore ERR. Per esempio, l?uno o pi? segnali di errore ERR possono essere forniti al circuito master 40 e/o a un circuito di raccolta dei guasti e di gestione degli errori 120. Si pu? fare riferimento alla descrizione delle Figure da 4 a 6 a questo riguardo.
Per esempio, il circuito di rilevazione di errori 46 pu? essere integrato nel controllore di memoria 100. Specificamente, nel caso di un semplice circuito di rilevazione di errori 46, questo circuito verifica solo la correttezza dei bit DATA e ECC. Tuttavia, il circuito di rilevazione di errori 46 pu? anche fornire informazioni concernenti la posizione dell?errore, che pu? cos? essere usata da un circuito di correzione di errore per correggere gli errori nei bit di dati DATA. Generalmente, il circuito di correzione di errore pu? essere integrato con il circuito di rilevazione di errori in un circuito di rilevazione di errori e di correzione 46, o il circuito di correzione di errore pu? essere un circuito separato. Di conseguenza, il circuito 46 pu? fornire effettivamente bit di dati DATA corretti al dispositivo master 40.
Inoltre, tali schemi di ECC possono anche essere usati per le comunicazioni scambiate mediante il sistema di comunicazione 114. Per esempio, un master del bus, come l?interfaccia 1022 pu? aggiungere i bit di ECC a una richiesta inviata al sistema di comunicazione 1144. Di conseguenza, il circuito slave di ricezione, come l?interfaccia slave 1062, pu? verificare i bit di ECC al fine di rilevare errori nella richiesta trasmessa. Generalmente, tali bit di ECC possono essere verificati mediante un rispettivo circuito di rilevazione di errori per ciascuna delle informazioni di indirizzo, di dati e di controllo di una richiesta, o una combinazione di queste informazioni.
Generalmente, il numero K di bit di ECC dipende dal numero N di bit di dati e dallo schema di ECC, per es., quanti bit possono essere riparati. Cos?, a seconda della complessit? del codice di correzione di errore (ECC) implementato, il circuito 46 ? atto a rilevare fino a un dato numero di bit ribaltati ed eventualmente a ripararli. Per esempio, nel campo dei microcontrollori atti a essere usati nel mercato automotive, lo schema di ECC adottato ? di solito atto a rilevare fino a due bit erronei e a riparare un bit erroneo, cosiddetto codice di Correzione di Errore Singolo (SEC) Rilevazione di Errore Doppio (DED). Per una descrizione generale dei codici di rilevazione di errori e opzionalmente di correzione, si pu? fare riferimento alla corrispondente pagina Web "Error detection and correction" di Wikipedia, per es., la versione del 6 maggio 2021, il cui contenuto ? incorporato qui tramite citazione.
Come menzionato in precedenza, le soluzioni qui descritte possono essere applicate in una qualsiasi situazione in cui sono usati dei bit di codice di correzione di errore ECC, per es., nel contesto di un Codice SECDED, come ? il caso, per es., per un microcontrollore basato su ARM Cortex R52. Per esempio, una possibile implementazione di un codice SECDED ? descritta nella Nota Applicativa XAPP383 "Single Error Correction and Double Error Detection (SECDED) with CoolRunner-II? CPLDs", v1.1, 1? agosto 2003. Un altro possibile circuito di rilevazione e di correzione di errore che usa un codice SECDED ? descritto nel documento US 8,381,083 B2. Questo documento descrive anche che i bit ECC possono essere calcolati anche per altri dati, per es., sia per i dati DATA sia per il rispettivo indirizzo.
La Figura 9 rappresenta a questo riguardo una forma di attuazione di un circuito di rilevazione di errori 46 atto a essere usato in uno schema SECDED, per es., come usato in un microcontrollore ARM Cortex R52.
Specificamente, nella forma di attuazione considerata, il circuito di rilevazione di errori 46 comprende un circuito di calcolo della sindrome 460 configurato per:
- ricevere i bit di dati DATA e i bit di ECC;
- calcolare i bit di ECC per i bit di dati DATA ricevuti; e
- confrontare i bit di ECC calcolati con i bit di ECC ricevuti.
Nel caso di un codice SEC, il risultato di questo confronto, detta sindrome SYN, ? indicativo della posizione del bit scorretto nel caso di un errore di bit singolo. Di conseguenza, la sindrome SYN corrisponde a una sequenza di bit avente K bit.
Di conseguenza, nel caso in cui la sindrome SYN sia differente da una sequenza di K bit impostati a zero, cio?, differente dal valore 0, ? rilevato un errore. Per esempio, questo ? rappresentato schematicamente nella Figura 9, dove una porta logica 464, come una porta logica OR, ? usata per generare un segnale di errore ERR1 in funzione della sindrome SYN, cio?, il segnale di errore ERR1 ? asserito quando almeno uno dei bit della sindrome SYN ? asserito. Tuttavia, nel caso di un codice SEC, il circuito di calcolo della sindrome 460 non ? in grado di rilevare errori di bit doppi. In effetti, il segnale di errore ERR1 sar? asserito sia per un errore di bit singolo sia per un errore di bit doppio.
Di conseguenza, in varie forme di attuazione, il circuito di verifica di codice di correzione di errore 46 comprende anche un circuito 462 configurato per rilevare specificamente errori di bit singoli. Per esempio, nel caso pi? semplice, il circuito di rilevazione di errori di bit singoli 46 pu? verificare una parit? pari o dispari, generando con ci? un segnale SB che indica che si ? verificato un errore di bit singolo. Per esempio, in questo caso, i bit ECC possono comprendere uno o pi? bit di parit? dedicati che possono anche non essere forniti al circuito di calcolo della sindrome 460.
Tuttavia, spesso tali circuiti di rilevazione di errori di bit singoli 462 non sono in grado di distinguere tra dati corretti ed errori di bit doppi. Cos?, combinando il segnale di errore ERR1 (che indica un errore di bit singolo o un errore di bit doppio) e il segnale SB (che indica un errore di bit singolo), ? possibile generare mediante un circuito logico combinatorio un segnale ERR2 che indica che si ? verificato un errore di bit doppio, per es., asserendo il segnale di errore ERR2 quando il segnale di errore ERR1 ? asserito e il segnale SB ? deasserito. Per esempio, nella forma di attuazione considerata, il circuito logico combinatorio comprende un inverter 468 e una porta logica AND 470.
Di conseguenza, il circuito di rilevazione di errori 46 pu? essere configurato per usare la sindrome SYN e il bit SB per generare una firma di errore di bit singolo SIG avente N+K bit. Per esempio, nella forma di attuazione considerata, questa operazione ? implementata nel circuito di rilevazione di errori di bit singoli 462.
Specificamente, nel caso di un errore di bit singolo, cio?, il segnale SB ? asserito, il circuito 46/462 ? configurato per asserire il bit del segnale SIG corrispondente alla posizione indicata dalla sindrome SYN, mentre gli altri bit del segnale SIG sono deasseriti.
Nel caso in cui il circuito 462 non fornisca direttamente il segnale SB, un corrispondente segnale SB pu? cos? essere generato mediante una combinazione logica dei bit del segnale SIG, per es., mediante una porta logica OR 466, perch? dovrebbe essere asserito al massimo soltanto uno dei bit del segnale SIG.
Generalmente, possono anche essere usati altri schemi di ECC al fine di generare la firma di ribaltamento di bit SIG, che potrebbe indicare anche che dovrebbe essere ribaltato pi? di un bit, per es., nel caso di un codice di Correzione di Errore Doppio. Similmente, in questo caso, i segnali di errore ERR1 e ERR2 potrebbero indicare in generale che si ? verificato un errore (segnali di errore ERR1) e opzionalmente che l?errore ? correggibile oppure no (segnali di errore ERR2).
Generalmente, queste soluzioni hanno in comune che la sindrome SYN ? confrontata con una pluralit? di sindromi di riferimento, in cui ciascuna sindrome di riferimento corrisponde a una data firma di ribaltamento di bit. Cos?, nel caso in cui la sindrome SYN corrisponda a una sindrome di riferimento, il circuito di rilevazione di errori pu? asserire i rispettivi bit della firma di errore SIG. Per esempio, nel caso di un codice SECDED, il circuito di rilevazione di errori userebbe N K sindromi di riferimento, ciascuna corrispondente a un rispettivo errore di bit singolo. Per esempio, la verifica delle firme di riferimento e l?impostazione della firma SIG (e dei segnali di errore) possono essere implementate mediante un circuito logico combinatorio.
A questo riguardo, usando un codice ECC SECDED adeguato, ciascuna sindrome di riferimento associata a un errore di bit singolo pu? anche avere una configurazione univoca in confronto a errori di ribaltamento di bit doppi. Di conseguenza, in generale, il circuito di rilevazione di errori pu?:
- non segnalare un errore (per es., deasserendo entrambi i segnali di errore ERR1 e ERR2) quando i bit della sindrome SYN sono tutti deasseriti;
- segnalare un errore correggibile (per es., asserendo il segnale di errore ERR1 e deasserendo il segnale di errore ERR2) quando la sindrome SYN corrisponde a una delle sindromi di riferimento (per es., di errore di bit singolo), asserendo anche i rispettivi bit della firma di ribaltamento di bit SIG; e
- segnalare un errore non correggibile (per es., asserendo il segnale di errore ERR1 e il segnale di errore ERR2) quando almeno un bit della sindrome SYN ? asserito e la sindrome SYN non corrisponde ad alcuna delle sindromi di riferimento.
Di conseguenza, in varie forme di attuazione, i segnali ERR1, ERR2 e SIG possono essere forniti a un circuito di correzione di errore, per es., implementato nel controllore di memoria 100, che cos? pu?:
- nel caso in cui non sia segnalato alcun errore (per es., il segnale ERR1 ? deasserito e il segnale ERR2 ? deasserito) fornire i dati DATA originali al dispositivo master richiedente, per es., inviando i dati DATA al sistema di comunicazione 114;
- nel caso di un errore di bit correggibile (per es., il segnale ERR1 ? asserito e il segnale ERR2 ? deasserito) ribaltare il livello logico del rispettivo (dei rispettivi) bit, in particolare nel caso di un bit di dati DATA, come indicato dalla firma SIG, e fornire i dati DATA corretti al dispositivo master 40 richiedente; e
- nel caso di un errore di bit non correggibile (per es., il segnale ERR1 ? asserito e il segnale ERR2 ? asserito), segnalare un errore al dispositivo master richiedente e/o a un circuito di raccolta dei guasti e di gestione degli errori 120.
Di conseguenza, nella forma di attuazione considerata, il circuito di rilevazione di errori 46 rappresenta un circuito di monitoraggio di sicurezza. A questo riguardo, il circuito di monitoraggio di sicurezza ? effettivamente abbastanza complesso e, a causa di un malfunzionamento del circuito 46, errori nei dati DATA possono non essere rilevati o possono essere segnalati errori anche quando i dati DATA sono corretti.
Gli inventori hanno cos? osservato che il funzionamento del circuito 46 dovrebbe essere verificato. A questo riguardo, gli inventori hanno osservato che la protezione di un circuito di monitoraggio di sicurezza SM potrebbe essere fatta con strategie differenti, per es.:
- duplicando il circuito di monitoraggio di sicurezza 46 e verificando se entrambi i circuiti forniscono la stessa uscita, o
- eseguendo qualche software specifico allo scopo di simulare la funzionalit? di monitoraggio di sicurezza, per es., scrivendo dati forniti nella memoria 104/104b e leggendo poi di nuovo i dati dalla memoria 104/104b.
Ciascuna di queste soluzioni ha suoi vantaggi e svantaggi. Per esempio, una duplicazione del circuito di monitoraggio di sicurezza aumenta l?area del dispositivo e richiede uno o pi? circuiti di monitoraggio di sicurezza per verificare la coerenza dei segnali di uscita generati dal monitor di sicurezza e dalla sua versione ridondante. Per contro, un test software richiede lo sviluppo e la verifica del test e spesso non ? possibile verificare l?intero circuito di monitoraggio di sicurezza.
Inoltre, il sistema di elaborazione 10a potrebbe essere configurato per permettere un auto-test integrato logico o LBIST (Logic Built-In Self-Test), che ? un modo per stimolare i nodi interni del circuito di monitoraggio di sicurezza e verificare i segnali forniti dal circuito di monitoraggio di sicurezza. Tuttavia, una tale soluzione LBIST richiede uno sforzo nello stadio di sviluppo di backend, che pu? consumare risorse e tempo di progetto, poich? la copertura LBIST potrebbe essere ottenuta soltanto dopo vari tentativi che richiedono tempo. Inoltre, la copertura target di solito ? ottenuta inserendo dei punti di test LBIST, il che significa anche un aumento dell?area.
La Figura 10 rappresenta una forma di attuazione di un circuito di monitoraggio di sicurezza SMa secondo la presente descrizione.
Specificamente, anche in questo caso il circuito di monitoraggio di sicurezza comprende una rilevazione di errori 46 configurata per ricevere N bit di dati DATA e K bit di ECC. Inoltre, il circuito di rilevazione di errori 46 ? configurato per generare, in funzione dei bit DATA e ECC ricevuti:
- una pluralit? di segnali di errore che indicano se si ? verificato un errore (per es., il segnale ERR1) e se l?errore pu? essere corretto oppure no (per es., il segnale ERR2); e
- una firma di ribaltamento di bit SIG che indica, nel caso di un errore correggibile, quale bit o quali bit dei bit di dati DATA e dei bit di ECC sono scorretti e cos? dovrebbero essere ribaltati/corretti.
Come descritto in precedenza, il circuito di rilevazione di errori 46 di solito ? un circuito logico combinatorio configurato per generare i livelli logici dei segnali di errore e la firma di ribaltamento di bit SIG in funzione dei livelli logici dei segnali DATA e ECC.
Generalmente, al fine di testare la funzionalit? completa del circuito 46, dovrebbero essere fornite al circuito 46 tutte le combinazioni di ingressi possibili. Tuttavia, di solito questo ? infattibile, perch? sarebbe necessario testare troppe combinazioni logiche. Tuttavia, gli inventori hanno osservato che di solito ? sufficiente che ciascun bit di ingresso della logica combinatoria sia stimolato sia con uno zero logico sia con un uno logico, e che ciascuna uscita della logica combinatoria 46 sia testata per un cambiamento di bit da zero a uno o viceversa.
Specificamente, in varie forme di attuazione, il circuito di monitoraggio di sicurezza SMa comprende a questo scopo un circuito di test hardware 48 configurato per:
- generare una data configurazione di bit PAT di N+K bit, che ? fornita selettivamente agli ingressi DATA e ECC del circuito di rilevazione di errori 46 durante una modalit? di test, per es., mediante un multiplexer 480 pilotato dal circuito di test 48 mediante un segnale di modalit? di test TM, e
- ricevere e verificare i segnali risultanti RES generati dal circuito di rilevazione di errori 46, cio?, i segnali di errore e la firma SIG.
Per esempio, la modalit? di test pu? essere avviata quando il sistema di elaborazione 10a ? acceso e/o in risposta a dati eventi, come un innesco di errore ET segnalato dal circuito di raccolta dei guasti e di gestione degli errori 120 (si veda, per es., la descrizione della Figura 5).
Come menzionato in precedenza, in varie forme di attuazione, il circuito di test 48 ? configurato per generare una sequenza di configurazioni PAT selezionata al fine di assicurare che, nel caso di un circuito di rilevazione di errori 46 che funziona correttamente, ciascun ingresso e ciascuna uscita del circuito di rilevazione di errori 46 sia impostato almeno una volta a zero e sia impostato almeno una volta a uno. Per esempio, al fine di generare la sequenza di configurazioni PAT e verificare il rispettivo risultato RES fornito dal circuito di rilevazione di errori 46, il circuito di test 48 pu? essere un circuito logico sequenziale che implementa una macchina a stati finiti.
Specificamente, in varie forme di attuazione, il circuito di test 48 ? configurato per generare tre tipi di configurazioni:
- una o pi? prime configurazioni/configurazioni base, che non comprendono un errore nei bit DATA e ECC, cio?, i bit ECC corrispondono ai bit calcolati per i bit di dati DATA secondo lo schema di ECC usato dal circuito di rilevazione di errori 46;
- una pluralit? di seconde configurazioni comprendenti errori correggibili, come un bit singolo ribaltato rispetto alla prima configurazione/configurazione base; e
- opzionalmente almeno una terza configurazione comprendente errori non correggibili, come due bit ribaltati rispetto alla prima configurazione/configurazione base.
Cos?, prendendo in considerazione che tutti i bit di ingresso devono essere testati, in varie forme di attuazione, il circuito di test 48 ? configurato per generare (almeno) le seguenti configurazioni PAT per uno schema SECDED:
- una configurazione base (con bit DATA e ECC corretti);
- N+K configurazioni, ciascuna di loro contenendo, in una posizione di bit differente, un ribaltamento di bit singolo rispetto alla configurazione base; e
- una configurazione con due bit ribaltati rispetto alla configurazione base.
Di conseguenza, in varie forme di attuazione, il circuito di test 48 ? configurato per determinare, per ciascuna delle configurazioni precedenti, il rispettivo risultato atteso e per confrontare il risultato atteso con il risultato RES ricevuto dal circuito di rilevazione di errori 46.
Di conseguenza, in varie forme di attuazione, le configurazioni generate dal circuito di test 48 (e, similmente, i risultati attesi) sono predeterminate. Per esempio, questo permette che il circuito di test 48 sia implementato con un circuito logico sequenziale, che pu? generare una sequenza di configurazioni predeterminata o pu? ottenere le configurazioni da una memoria di sola lettura o ROM (Read Only Memory). Questo comporta anche che non deve essere usato alcun codificatore di ECC del sistema di elaborazione 10a per generare le configurazioni. In effetti, tali codificatori di ECC, per es., implementati nel (nei) core di elaborazione 102 possono non essere disponibili durante l?operazione di auto-test del sistema di elaborazione 10a. Specificamente, in varie forme di attuazione, indipendentemente dallo schema di ECC usato, le configurazioni sono selezionate al fine di generare (almeno) tutti i possibili ribaltamenti di bit singoli per ciascun segnale di ingresso e di uscita, e in particolare per i segnali di DATA e di ECC forniti al circuito di rilevazione di errori 46 e la firma di ribaltamento di bit SIG ricevuta dal circuito di rilevazione di errori 46. Per esempio, a questo scopo, il circuito di test pu? generare configurazioni predeterminate, che dovrebbero testare tutti i possibili (N K) errori di ribaltamento di bit singolo nel segnale della firma SIG.
La Figura 11 rappresenta una possibile forma di attuazione del circuito di test 48.
Specificamente, nella forma di attuazione considerata, invece di memorizzare tutte le configurazioni, il circuito di test 48 memorizza solo una configurazione base BPAT. Specificamente, la configurazione base BPAT pu? essere cablata in hardware (?hardwired?), o pu? essere programmabile, per es., mediante un microprocessore 1020 o in funzione di dati di configurazione distribuiti mediante un modulo di configurazione hardware del sistema di elaborazione 10a.
Inoltre, nella forma di attuazione considerata, il circuito di test 48 comprende un contatore hardware digitale 482. Specificamente, in varie forme di attuazione, il contatore 482 ? configurato, quando abilitato (per es., mediante un segnale di inizio START), a incrementare un valore di conteggio CNT da un valore iniziale a un valore massimo corrispondente al numero di configurazioni da testare. Per esempio, in questo caso, il segnale di modalit? di test TM pu? essere asserito quando il contatore 482 ? in funzione.
Di conseguenza, in questo caso, la configurazione base BPAT e il valore di conteggio CNT possono essere forniti a un circuito 484 configurato per generare la configurazione PAT per il ciclo corrente (come indicato dal valore di conteggio CNT) da fornire al circuito di rilevazione di errori 46 in funzione della configurazione base BPAT e del valore di conteggio CNT.
Similmente, nella forma di attuazione considerata, il circuito di test 48 memorizza un risultato base BRES corrispondente ai valori dei segnali (segnali di errore e firma di ribaltamento di bit SIG) che ci si aspetta che siano forniti dal circuito di rilevazione di errori 46 per la configurazione base BPAT. Per esempio, considerando che la configurazione base BPAT non dovrebbe comprendere errori, il risultato base BRES pu? avere tutti i bit impostati bassi, per es., mediante un cablaggio hardware (?hardwiring?).
Di conseguenza, in questo caso, il risultato base BRES e il valore di conteggio CNT possono essere forniti a un circuito 488 configurato per generare il risultato atteso ERES per il ciclo corrente (come indicato dal valore di conteggio CNT) in funzione del risultato base BRES e del valore di conteggio CNT. Di conseguenza, un comparatore digitale 488 pu? essere configurato per confrontare il risultato atteso ERES con il risultato RES (cio?, i segnali di errore e la firma SIG) fornito dal circuito di rilevazione di errori 46, e per asserire un segnale di errore ERR3 nel caso in cui le sequenze di bit non corrispondano.
Specificamente, in varie forme di attuazione, il circuito di test 48 comprende un circuito 490 configurato per generare una firma di ribaltamento di bit FSIG che indica la posizione dei bit che dovrebbero essere ribaltati dal circuito 484 per il ciclo di test corrente.
Specificamente, in varie forme di attuazione, quando ? emulato un errore di ribaltamento di bit singolo, il valore di conteggio CNT pu? essere usato per generare una firma di test FSIG codificata one-hot. In alternativa, al fine di testare errori di bit singoli, il circuito 490 pu? anche comprendere un registro a scorrimento avente un bit singolo impostato alto. Di conseguenza, un tale registro a scorrimento rappresenta sostanzialmente un contatore codificato one-hot, cio?, i circuiti 482 e 490 possono anche essere implementati con un singolo registro a scorrimento/contatore codificato one-hot, in cui la firma FSIG pu? corrispondere a un sottoinsieme dei bit del contatore codificato one-hot.
Di conseguenza, in varie forme di attuazione, la firma FSIG indica la posizione del (dei) bit che deve essere ribaltato (che devono essere ribaltati) dal circuito 484. Per esempio, in questo caso, il circuito 484 pu? essere implementato con una pluralit? di porte logiche XOR, ciascuna porta logica XOR ricevendo un rispettivo bit della configurazione base BPAT e della firma FSIG. Generalmente, nel caso di una configurazione base BPAT cablata in hardware, pu? anche essere usato un circuito logico ottimizzato. Generalmente, invece di usare la configurazione base BPAT, il circuito di test 48 pu? anche ottenere una configurazione di riferimento differente senza errori e pu? generare le configurazioni correggibili combinando la configurazione di riferimento con la firma FSIG.
A questo riguardo, per errori correggibili, la firma FSIG corrisponde anche alla firma attesa SIG, cio?, il circuito 486 pu? usare la firma FSIG per generare il risultato atteso ERES.
In seguito, sar? descritta ora una possibile forma di attuazione delle configurazioni PAT generate dal circuito di test 48, che, per es., possono essere usate per un microcontrollore basato su ARM Cortex R52. Specificamente, nella forma di attuazione considerata, senza perdere di generalit?, il circuito di rilevazione di errori 46 ? configurato per ricevere N = 64 bit di dati DATA e K = 8 bit di ECC, cio?, le configurazioni PAT hanno 72 bit.
Per esempio, in varie forme di attuazione, tutti i bit di dati della configurazione base BPAT sono impostati a "0". Nello schema di ECC ARM, questo comporta che i bit di ECC siano impostati a 0x3 per la configurazione base BPAT. Tuttavia, pu? anche essere usata una qualsiasi altra configurazione base (senza errori). Di conseguenza, quando ? fornita la configurazione base BPAT, la firma SIG e i bit di errore ERR1 e ERR2 (cio?, il risultato RES) dovrebbero avere tutti i bit impostati bassi, cio?, il risultato base BRES ha tutti i bit impostati a "0".
In seguito, il circuito di test 48 pu? testare gli errori di bit correggibili, per es., gli N+K errori di bit singoli nel caso di uno schema SECDED. Come menzionato in precedenza, il circuito 490 pu? generare in questo caso la firma di ribaltamento di bit FSIG, che pu? essere usata per ribaltare i rispettivi bit della configurazione base BPAT o di un?altra configurazione di riferimento (senza errori).
Per queste configurazioni, il circuito di test 48 pu? verificare se il segnale di errore ERR1 ? asserito, il segnale di errore ERR2 ? deasserito e la firma SIG corrisponde alla firma FSIG. Per esempio, in seguito si ipotizzer? che i bit ECC corrispondano ai bit pi? significativi (MSB, ?Most-Significant Bit?) della firma SIG. Qui di seguito, c?? la lista di possibili configurazioni di bit singoli:
- configurazione PAT (bit di dati 0 ribaltato): DATA = 0x0000_0000_0000_0001, ECC = 0x3; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x00_0000_0000_0000_0001;
- configurazione PAT (bit di dati 1 ribaltato): DATA = 0x0000_0000_0000_0002, ECC = 0x3; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x00_0000_0000_0000_0002; - configurazione PAT (bit di dati 2 ribaltato): DATA = 0x0000_0000_0000_0004, ECC = 0x3; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x00_0000_0000_0000_0004;
...
- configurazione PAT (bit di dati 63 ribaltato): DATA = 0x8000_0000_0000_0000, ECC = 0x3; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x00_8000_0000_0000_0000;
- configurazione PAT (bit di ECC 0 ribaltato): DATA = 0x0000_0000_0000_0000, ECC = 0x2; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x01_0000_0000_0000_0000;
- configurazione PAT (bit di ECC 1 ribaltato): DATA = 0x0000_0000_0000_0000, ECC = 0x1; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x02_0000_0000_0000_0000;
- configurazione PAT (bit di ECC 2 ribaltato): DATA = 0x0000_0000_0000_0000, ECC = 0x7; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x04_0000_0000_0000_0000;
...
- configurazione PAT (bit di ECC 7 ribaltato): DATA = 0x0000_0000_0000_0000, ECC = 0x83; risultato atteso ERES: ERR1 = 1, ERR2 = 0, SIG = 0x80_0000_0000_0000_0000.
Infine, l?una o pi? configurazioni di errori non correggibili possono essere generate asserendo il rispettivo numero di bit del segnale FSIG, cio?, ribaltando i rispettivi bit della configurazione PAT, per es., ribaltando due bit nel caso di uno schema SECDED. In alternativa, le configurazioni di errori non correggibili possono essere fisse o programmabili. Per esempio, per questa configurazione non correggibile (queste configurazioni non correggibili), il circuito di test 48 pu? verificare se il segnale di errore ERR1 ? asserito, il segnale di errore ERR2 ? asserito e la firma SIG ha tutti i bit impostati a "0". Per esempio, una possibile configurazione di errore di bit doppio pu? essere la seguente configurazione PAT (bit di dati 0 ribaltato e ECC bit 0 ribaltato): DATA = 0x0000_0000_0000_0001, ECC = 0x2; risultato atteso ERES: ERR1 = 1, ERR2 = 1, SIG = 0x00_0000_0000_0000_0000.
La Figura 12 rappresenta a questo riguardo una forma di attuazione del funzionamento del circuito di test 48 nel caso di uno schema SECDED. Specificamente, come descritto in precedenza, in questo caso il circuito di test 48 ? configurato per:
- generare una prima configurazione senza errori (per es., la configurazione base BPAT) e verificare il risultato RES fornito dal circuito di rilevazione di errori 46;
- generare una sequenza di seconde configurazioni con un ribaltamento di bit singolo e verificare ogni volta il risultato RES; e
- generare una o pi? terze configurazioni con un ribaltamento di bit doppio e verificare ogni volta il risultato RES.
Per esempio, la prima configurazione/configurazione base BPAT e la terza configurazione/configurazione (le terze configurazioni/configurazioni) di ribaltamento di bit doppio possono essere fisse o programmabili. Per contro, la seconda configurazione/configurazione di ribaltamento di bit singolo pu? essere determinata nel circuito di test 48, per es., mediante il circuito 490, e/o anche le configurazioni di ribaltamento di bit singolo possono essere fisse o programmabili e possono cos? anche essere indipendenti dalla configurazione base BPAT. Per esempio, come descritto in precedenza, il circuito di test 48 pu? essere configurato per generare le configurazioni di ribaltamento di bit singolo, per es., invertendo un rispettivo bit della configurazione base BPAT in funzione della firma FSIG, in cui la firma FSIG pu? essere generata mediante un registro a scorrimento avente impostato alto un bit singolo, o mediante un decodificatore one-hot del valore di conteggio CNT, o altre soluzioni digitali simili. Generalmente, la selezione delle specifiche configurazioni pu? dipendere dallo schema di ECC usato e/o dalla specifica implementazione del circuito di rilevazione di errori 46.
Di conseguenza, dopo una fase di inizio 1000, che ? attivata, per es., in risposta al segnale di inizio START, il circuito di test 48 genera la configurazione base in una fase 1002 e fornisce in una fase 1004 la configurazione base al circuito di rilevazione di errori 46. In una fase 1006, il circuito di test confronta quindi il risultato RES fornito dal circuito di rilevazione di errori 46 con il risultato atteso ERES, per es., verifica se i segnali di errore ERR1 e ERR2 sono impostati a zero, e tutti i bit della firma SIG sono impostati a zero.
Nel caso in cui il risultato RES non corrisponda al risultato atteso ERES (uscita "N" della fase di verifica 1006), il circuito di test 48 procede a una fase 1030 in cui il circuito di test asserisce il segnale di errore ERR3, e la procedura termina a una fase di arresto 1034.
Per contro, nel caso in cui il risultato RES corrisponda al risultato atteso ERES (uscita "Y" della fase di verifica 1006), il circuito di test 48 genera in una fase 1008 la prima configurazione di ribaltamento di bit, per es., avente il primo bit della configurazione base BPAT o di un?altra configurazione di riferimento ribaltato, e il circuito di test 48 fornisce in una fase 1010 la configurazione di ribaltamento di bit singolo corrente al circuito di rilevazione di errori 46. Di conseguenza, in una fase 1012, il circuito di test confronta quindi il risultato RES fornito dal circuito di rilevazione di errori 46 con il risultato atteso ERES, per es., verifica se il segnale di errore ERR1 ? impostato a uno, il segnale di errore ERR2 ? impostato a zero, e il corrispondente bit della firma SIG ? impostato a uno, per es., confrontando la firma SIG con la firma FSIG.
Nel caso in cui il risultato RES non corrisponda al risultato atteso ERES (uscita "N" della fase di verifica 1012), il circuito di test 48 procede alla fase 1030 in cui il circuito di test asserisce il segnale di errore ERR3, e la procedura termina a una fase di arresto 1034.
Per contro, nel caso in cui il risultato RES corrisponda al risultato atteso ERES (uscita "Y" della fase di verifica 1012), il circuito di test 48 genera in una fase 1014 la prossima configurazione di ribaltamento di bit singolo, per es., facendo scorrere il bit "1" della firma FSIG. In seguito, il circuito di test verifica in una fase 1016 se la configurazione di ribaltamento di bit singolo corrente era l?ultima configurazione di ribaltamento di bit singolo, per es., in base al valore di conteggio CNT o usando un registro a scorrimento nel circuito 490 e rilevando che il bit impostato a "1" ha raggiunto la posizione di bit N+K+1.
Di conseguenza, nel caso in cui la configurazione di ribaltamento di bit singolo corrente non fosse l?ultima configurazione di ribaltamento di bit singolo (uscita "N" della fase di verifica 1016), il circuito di test 48 ritorna alla fase 1010, in cui il circuito di test fornisce la configurazione di ribaltamento di bit singolo corrente al circuito di rilevazione di errori 46.
Per contro, nel caso in cui la configurazione di ribaltamento di bit singolo corrente fosse l?ultima configurazione di ribaltamento di bit singolo (uscita "Y" della fase di verifica 1016), il circuito di test 48 genera la configurazione di ribaltamento di bit doppio in una fase 1018 e fornisce in una fase 1020 la configurazione di ribaltamento di bit doppio al circuito di rilevazione di errori 46. Di conseguenza, in una fase 1022, il circuito di test confronta quindi il risultato RES fornito dal circuito di rilevazione di errori 46 con il risultato atteso ERES, per es., verifica se i segnali di errore ERR1 e ERR2 sono impostati a uno, e tutti i bit della firma SIG sono impostati a zero.
Nel caso in cui il risultato RES non corrisponda al risultato atteso ERES (uscita "N" della fase di verifica 1022), il circuito di test 48 procede alla fase 1030 in cui il circuito di test asserisce il segnale di errore ERR3, e la procedura termina a una fase di arresto 1034.
Per contro, nel caso in cui il risultato RES corrisponda al risultato atteso ERES (uscita "Y" della fase di verifica 1022), il circuito di test 48 deasserisce in una fase 1032 il segnale di errore ERR2, e la procedura termina a una fase di arresto 1034. Generalmente, la fase 1032 ? puramente opzionale, perch? il segnale di errore ERR2 pu? anche essere deasserito di default.
Generalmente, il circuito di test 48 pu? anche testare pi? configurazioni di ribaltamento di bit doppio. Per esempio, come rappresentato nella Figura 12, nel caso in cui il risultato RES corrisponda al risultato atteso ERES (uscita "Y" della fase di verifica 1022), il circuito di test 48 pu? generare un?ulteriore configurazione di ribaltamento di bit doppio in una fase 1024 e pu? fornire, in una fase 1026, l?ulteriore configurazione di ribaltamento di bit doppio al circuito di rilevazione di errori 46. Di conseguenza, in una fase 1028, il circuito di test pu? quindi confrontare il risultato RES fornito dal circuito di rilevazione di errori 46 con il risultato atteso ERES, per es., pu? verificare se i segnali di errore ERR1 e ERR2 sono impostati a uno, e tutti i bit della firma SIG sono impostati a zero.
Nel caso in cui il risultato RES non corrisponda al risultato atteso ERES (uscita "N" della fase di verifica 1028), il circuito di test 48 procede alla fase 1030 in cui il circuito di test asserisce il segnale di errore ERR3, e la procedura termina a una fase di arresto 1034.
Per contro, nel caso in cui il risultato RES corrisponda al risultato atteso ERES (uscita "Y" della fase di verifica 1028), il circuito di test 48 procede alla fase 1032 o direttamente alla fase di arresto 1034.
La Figura 13 rappresenta un?ulteriore forma di attuazione, in cui lo stesso circuito di test 48 ? configurato per testare pi? circuiti di rilevazione di errori 46, come circuiti di rilevazione di errori 461, 462 e 463.
Generalmente, in questo caso, il circuito di test 48 pu? essere connesso, per es., mediante multiplexer sequenzialmente a uno dei circuiti di rilevazione di errori 461, 462 e 463.
Per contro, nella Figura 13, il circuito di test 48 fornisce la stessa configurazione PAT in parallelo a tutti i circuiti di rilevazione di errori 461, 462 e 463. Specificamente, nella forma di attuazione considerata, i risultati RES1, RES2 e RES3 forniti al circuito di rilevazione di errori 461, 462 e 463 sono combinati mediante una porta logica OR 492 per generare un primo segnale di risultato RESa e mediante una porta logica AND 492 per generare un secondo segnale di risultato RESb. Specificamente, nel caso in cui il circuito di rilevazione di errori 461, 462 e 463 funzioni correttamente, sia il primo segnale di risultato RESa sia il secondo segnale di risultato RESb dovrebbero corrispondere al risultato atteso ERES descritto precedentemente. Di conseguenza, in varie forme di attuazione, il circuito di test pu? essere configurato per confrontare ciascuno del primo segnale di risultato RESa e del secondo segnale di risultato RESb con il segnale di risultato atteso ERES.
Di conseguenza, le soluzioni precedenti permettono di testare un circuito di rilevazione di errori ECC 46. La soluzione descritta ? eseguita in hardware, con un tempo di esecuzione minimo, un overhead di area minimo e possibilmente senza alcun intervento software. Questo riduce la complessit? e il costo associati alla protezione della logica di monitor di sicurezza fatta con approcci tradizionali, come la duplicazione, o i test software. Inoltre, non deve essere usato alcuno strumento specifico per istanziare strutture di test LBIST di back-end, che di solito ? un?operazione molto complessa e che richiede tempo. Per contro, la soluzione qui descritta ? una soluzione di front-end e, come tale, pu? essere istanziata facilmente.
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 (12)

RIVENDICAZIONI
1. Sistema di elaborazione (10a) comprendente:
- un circuito (42, 100) configurato per fornire un dato numero N di bit di dati (DATA) e un dato numero K di bit di Codice di Correzione di Errore, ECC;
- un circuito di rilevazione di errori (46) configurato per:
- ricevere detti bit di dati (DATA) e detti bit di ECC,
- calcolare ulteriori bit di ECC in funzione di detti bit di dati (DATA) secondo un dato schema di ECC,
- generare una sindrome (SYN) confrontando detti bit di ECC calcolati con detti bit di ECC ricevuti, in cui detta sindrome ha K bit,
- confrontare detta sindrome (SYN) con una pluralit? di N K sindromi di riferimento di ribaltamento di bit singolo, in cui ciascuna sindrome di riferimento di ribaltamento di bit singolo ? associata a un rispettivo errore di ribaltamento di bit singolo, e
- in risposta alla determinazione che detta sindrome (SYN) corrisponde a una sindrome di riferimento di ribaltamento di bit singolo:
- asserire un primo segnale di errore (ERR1), e
- asserire un bit di una firma di ribaltamento di bit (SIG) corrispondente all?errore di ribaltamento di bit singolo indicato dalla rispettiva sindrome di riferimento di ribaltamento di bit singolo, in cui detta firma di ribaltamento di bit (SIG) ha un dato numero di N+K bit e indica la posizione di uno o pi? bit scorretti in detti bit di dati (DATA) e bit di ECC;
in cui detto sistema di elaborazione (10a) comprende inoltre un circuito di test (48) configurato per fornire, durante una modalit? di test (TM), una sequenza di configurazioni (PAT) a detto circuito di rilevazione di errori (46), ciascuna configurazione (PAT) comprendendo bit di dati (DATA) e bit di ECC, e monitorare il primo segnale di errore (ERR1) e la firma di ribaltamento di bit (SIG) rispettivi, in cui detto circuito di test (48) ? configurato per:
- ottenere (1002) una prima configurazione (PAT), detta prima configurazione (PAT) corrispondendo a una data sequenza di bit di dati (DATA) e di bit di ECC calcolati in funzione di detti dati bit di dati (DATA) secondo detto dato schema di ECC,
- fornire (1004) detta prima configurazione (PAT) a detto circuito di rilevazione di errori (46) e verificare (1006) se detto primo segnale di errore (ERR1) ? deasserito e tutti i bit di detta firma di ribaltamento di bit (SIG) sono deasseriti;
- ottenere una sequenza di N K ulteriori firme di ribaltamento di bit (FSIG), ciascuna ulteriore firma di ribaltamento di bit (SIG) avendo asserito un bit singolo;
- ottenere (1008, 1014) per ciascuna ulteriore firma di ribaltamento di bit (FSIG) una rispettiva seconda configurazione (PAT), in cui ciascuna seconda configurazione (PAT) corrisponde a una configurazione che ha un bit singolo ribaltato rispetto a una configurazione di riferimento nelle posizioni del bit singolo asserito della rispettiva ulteriore firma di ribaltamento di bit (FSIG), in cui detta configurazione di riferimento (BPAT) corrisponde a una data sequenza di bit di dati (DATA) e di bit di ECC calcolati in funzione dei rispettivi bit di dati (DATA) secondo detto dato schema di ECC, per cui ciascuna seconda configurazione corrisponde a una configurazione con un errore di bit singolo correggibile;
- fornire (1010) ciascuna di dette seconde configurazioni (PAT) a detto circuito di rilevazione di errori (46) e verificare (1012) se detto primo segnale di errore (ERR1) ? asserito e detta firma di ribaltamento di bit (SIG) corrisponde alla rispettiva ulteriore firma di ribaltamento di bit (FSIG); e
- asserire (1030) uno o pi? segnali di errore (ERR3) in risposta alla determinazione che:
- per detta prima configurazione (1006), detto primo segnale di errore (ERR1) ? asserito e/o almeno un bit di detta firma di ribaltamento di bit (SIG) ? asserito, e/o
- per ciascuna di dette seconde configurazioni (1012), detto primo segnale di errore (ERR1) ? deasserito e/o detta firma di ribaltamento di bit (SIG) non corrisponde alla rispettiva ulteriore firma di ribaltamento di bit (FSIG).
2. Sistema di elaborazione secondo la Rivendicazione 1, in cui detta configurazione di riferimento per dette seconde configurazioni corrisponde a detta prima configurazione (PAT).
3. Sistema di elaborazione secondo la Rivendicazione 1 o la Rivendicazione 2, in cui detto schema di ECC ? atto a rilevare un dato numero massimo di bit scorretti, detto dato numero massimo di bit scorretti rilevabili corrispondendo a detto dato numero di bit scorretti correggibili pi? uno, in cui detto circuito di rilevazione di errori (46) ? configurato per impostare un secondo segnale di errore (ERR2) a un dato livello logico in risposta alla determinazione che detti bit di dati (DATA) e detti bit di ECC hanno detto numero massimo di bit scorretti rilevabili, e in cui detto circuito di test (48) ? configurato per:
- ottenere (1024) una terza configurazione (PAT), detta terza configurazione (PAT) corrispondendo a una data sequenza di bit di dati (DATA) e di bit di ECC che ha un dato numero di bit ribaltati rispetto a detta prima configurazione o a detta configurazione di riferimento (BPAT), detto dato numero di bit ribaltati corrispondendo a detto numero massimo di bit scorretti rilevabili, per cui detta terza configurazione (PAT) rappresenta una configurazione con un errore non correggibile;
- fornire (1026) detta terza configurazione (PAT) a detto circuito di rilevazione di errori (46) e verificare (1006) se detto primo segnale di errore (ERR1) ? asserito, detto secondo segnale di errore (ERR2) ? impostato a detto dato livello logico e tutti i bit di detta firma di ribaltamento di bit (SIG) sono deasseriti;
- asserire (1030) detti uno o pi? segnali di errore (ERR3) in risposta alla determinazione che detto primo segnale di errore (ERR1) ? deasserito, detto secondo segnale di errore (ERR2) non ? impostato a detto dato livello logico e/o almeno un bit di detta firma di ribaltamento di bit (SIG) ? asserito.
4. Sistema di elaborazione secondo la Rivendicazione 3, in cui detto schema di ECC ? un Codice di Correzione di Errore Singolo (SEC) Rilevazione di Errore Doppio (DED).
5. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detto circuito di test (48) ? configurato per generare (1008, 1014) dette N K seconde configurazioni (PAT) effettuando le seguenti fasi per ciascuna seconda configurazione:
- ottenere detta configurazione di riferimento (BPAT),
- generare (490) la rispettiva ulteriore firma di ribaltamento di bit (FSIG), detta ulteriore firma di ribaltamento di bit (SIG) avendo asserito un bit singolo, e
- generare (484) la rispettiva seconda configurazione (PAT) invertendo il bit di detta configurazione di riferimento (BPAT) per cui il corrispondente bit di detta ulteriore firma di ribaltamento di bit (FSIG) ? asserito.
6. Sistema di elaborazione secondo la Rivendicazione 5, in cui detto circuito di test (48) ? configurato per generare detta ulteriore firma di ribaltamento di bit (FSIG) mediante:
- un contatore (482) e un decodificatore one-hot (490); o
- un registro a scorrimento (490) avente un bit singolo asserito.
7. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detto circuito (42, 100) comprende un circuito di correzione di errore configurato per:
- quando detto primo segnale di errore (ERR1) ? asserito, generare bit di dati (DATA) corretti invertendo ciascun bit di detti bit di dati (DATA) per il quale il corrispondente bit di detta firma di ribaltamento di bit (SIG) ? asserito.
8. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detto sistema di elaborazione (10a) comprende un microprocessore (1020) e/o un controllore DMA, e in cui detto circuito (42, 100) ? un controllore di memoria (100) configurato per:
- ricevere una richiesta di lettura da detto microprocessore (1020) e/o da detto controllore DMA, detta richiesta di lettura comprendendo un dato indirizzo;
- leggere detto dato numero N di bit di dati (DATA) e detto dato numero K di bit di ECC da detto dato indirizzo di una memoria (104, 104b);
- quando detto primo segnale di errore (ERR1) ? deasserito, fornire detti bit di dati (DATA) a detto microprocessore (1020) e/o a detto controllore DMA; e
- quando detto primo segnale di errore (ERR1) ? asserito, fornire detti bit di dati (DATA) corretti a detto microprocessore (1020) e/o a detto controllore DMA.
9. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, comprendente:
- una pluralit? di circuiti di rilevazione di errori (461, 462, 463), in cui detta pluralit? di circuiti di rilevazione di errori (461, 462, 463) ? configurata per ricevere in parallelo detta sequenza di configurazioni (PAT);
- porte logiche OR configurate per generare un primo segnale di errore combinato (RESa) e una prima firma di ribaltamento di bit combinata (RESa) combinando i primi segnali di errore (ERR1) e le firme di ribaltamento di bit (SIG) forniti da detta pluralit? di circuiti di rilevazione di errori (461, 462, 463);
- porte logiche AND configurate per generare un secondo segnale di errore combinato (RESb) e una seconda firma di ribaltamento di bit combinata (RESb) combinando i primi segnali di errore (ERR1) e le firme di ribaltamento di bit (SIG) forniti da detta pluralit? di circuiti di rilevazione di errori (461, 462, 463);
in cui detto circuito di test (48) ? configurato per asserire (1030) detti uno o pi? segnali di errore (ERR3) in risposta alla determinazione che:
- per detta prima configurazione (1006), detto primo segnale di errore combinato (ERR1) ? asserito e/o almeno un bit di detta prima firma di ribaltamento di bit combinata (SIG) ? asserito, e/o detto secondo segnale di errore combinato (ERR1) ? asserito e/o almeno un bit di detta seconda firma di ribaltamento di bit combinata (SIG) ? asserito, e/o
- per ciascuna di dette seconde configurazioni (1012), detto primo segnale di errore combinato (ERR1) ? deasserito e/o detta prima firma di ribaltamento di bit combinata (SIG) non corrisponde alla rispettiva ulteriore firma di ribaltamento di bit (FSIG), e/o detto secondo segnale di errore combinato (ERR1) ? deasserito e/o detta seconda firma di ribaltamento di bit combinata (SIG) non corrisponde alla rispettiva ulteriore firma di ribaltamento di bit (FSIG).
10. Circuito integrato comprendente un sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti.
11. Dispositivo, come un veicolo, comprendente una pluralit? di sistemi di elaborazione (10a) secondo una qualsiasi delle precedenti rivendicazioni da 1 a 9, in cui detti sistemi di elaborazione (10a) sono connessi mediante un sistema di comunicazione (20).
12. Procedimento di funzionamento di un sistema di elaborazione (10a) secondo una qualsiasi delle precedenti Rivendicazioni da 1 a 9, comprendente:
- attivare (START) detto circuito di test (48), per cui detto circuito di test (48):
- ottiene (1002) detta prima configurazione (PAT), fornisce (1004) detta prima configurazione (PAT) a detto circuito di rilevazione di errori (46) e verifica (1006) se detto primo segnale di errore (ERR1) ? deasserito e tutti i bit di detta firma di ribaltamento di bit (SIG) sono deasseriti; e
- ottiene (1008, 1014) detta sequenza di seconde configurazioni (BPAT) e la rispettiva ulteriore firma di ribaltamento di bit (FSIG), fornisce (1010) ciascuna seconda configurazione (PAT) a detto circuito di rilevazione di errori (46) e verifica (1012) se detto primo segnale di errore (ERR1) ? asserito e detta firma di ribaltamento di bit (SIG) corrisponde alla rispettiva ulteriore firma di ribaltamento di bit (FSIG).
IT102021000022565A 2021-08-31 2021-08-31 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento IT202100022565A1 (it)

Priority Applications (3)

Application Number Priority Date Filing Date Title
IT102021000022565A IT202100022565A1 (it) 2021-08-31 2021-08-31 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US17/815,807 US12068048B2 (en) 2021-08-31 2022-07-28 Processing system error management, related integrated circuit, apparatus and method
EP22192295.8A EP4141677B1 (en) 2021-08-31 2022-08-26 Processing system, related integrated circuit, device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102021000022565A IT202100022565A1 (it) 2021-08-31 2021-08-31 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Publications (1)

Publication Number Publication Date
IT202100022565A1 true IT202100022565A1 (it) 2023-03-03

Family

ID=78463835

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102021000022565A IT202100022565A1 (it) 2021-08-31 2021-08-31 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Country Status (3)

Country Link
US (1) US12068048B2 (it)
EP (1) EP4141677B1 (it)
IT (1) IT202100022565A1 (it)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11762736B2 (en) * 2021-05-18 2023-09-19 Samsung Electronics Co., Ltd. Semiconductor memory devices
US11972789B2 (en) * 2022-08-17 2024-04-30 Changxin Memory Technologies, Inc. Memory device with error per row counter (EpRC) performing error check and scrub (ECS)
US20250307046A1 (en) 2024-03-28 2025-10-02 Stmicroelectronics International N.V. Processing system, related integrated circuit, device and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381083B2 (en) 2009-10-22 2013-02-19 Arm Limited Error control coding for single error correction and double error detection
US20140250340A1 (en) * 2013-03-01 2014-09-04 International Business Machines Corporation Self monitoring and self repairing ecc
EP3534261A1 (en) 2018-03-02 2019-09-04 STMicroelectronics Application GmbH Processing system, related integrated circuit and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381083B2 (en) 2009-10-22 2013-02-19 Arm Limited Error control coding for single error correction and double error detection
US20140250340A1 (en) * 2013-03-01 2014-09-04 International Business Machines Corporation Self monitoring and self repairing ecc
EP3534261A1 (en) 2018-03-02 2019-09-04 STMicroelectronics Application GmbH Processing system, related integrated circuit and method

Also Published As

Publication number Publication date
US12068048B2 (en) 2024-08-20
EP4141677B1 (en) 2025-11-19
EP4141677A1 (en) 2023-03-01
US20230065623A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
EP4141677B1 (en) Processing system, related integrated circuit, device and method
US11764807B2 (en) Processing system, related integrated circuit, device and method
US11113136B2 (en) Processing system, related integrated circuit and method
US9207661B2 (en) Dual core architecture of a control module of an engine
US12061530B2 (en) Processing system, related integrated circuit, device and method
IT201900005020A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT201800003233A1 (it) Sistema di elaborazione, relativo circuito integrato e procedimento
CN116893930A (zh) 处理系统、相关集成电路以及设备和方法
US12019118B2 (en) Processing system, related integrated circuit, device and method
CN111880961A (zh) 用于透明寄存器数据错误检测和纠正的系统和方法
IT201800002895A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
CN116382951A (zh) 可编程信号聚合器
JP2010211347A (ja) 情報処理装置及びエラー検出方法
US12386546B2 (en) Processing system, related integrated circuit, device and method
CN116560902A (zh) 处理系统、相关集成电路和方法
IT202100007475A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
JP2024532975A (ja) データメモリの自己診断用の電子回路及び方法
CN115617565A (zh) 处理系统、相关集成电路、设备以及方法
US20250307046A1 (en) Processing system, related integrated circuit, device and method
CN116701045A (zh) 处理系统、相关集成电路、设备和方法
US12190120B2 (en) Processing system, related integrated circuit, device and method
US20250225068A1 (en) Processing system, and related method
US11797306B2 (en) Circuit for verifying the content of registers
CN115145753A (zh) 处理系统、相关集成电路、设备和方法
CN116893936A (zh) 处理系统、相关集成电路、设备和方法