IT201900007398A1 - Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti - Google Patents

Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti Download PDF

Info

Publication number
IT201900007398A1
IT201900007398A1 IT102019000007398A IT201900007398A IT201900007398A1 IT 201900007398 A1 IT201900007398 A1 IT 201900007398A1 IT 102019000007398 A IT102019000007398 A IT 102019000007398A IT 201900007398 A IT201900007398 A IT 201900007398A IT 201900007398 A1 IT201900007398 A1 IT 201900007398A1
Authority
IT
Italy
Prior art keywords
memory
data
signal
access request
signals
Prior art date
Application number
IT102019000007398A
Other languages
English (en)
Inventor
Riccardo Gemelli
Om Ranjan
Denis Dutey
Original Assignee
St Microelectronics Srl
St Microelectronics Grenoble 2
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 St Microelectronics Srl, St Microelectronics Grenoble 2, St Microelectronics Int Nv filed Critical St Microelectronics Srl
Priority to IT102019000007398A priority Critical patent/IT201900007398A1/it
Priority to US16/881,949 priority patent/US11436162B2/en
Publication of IT201900007398A1 publication Critical patent/IT201900007398A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)
  • Seats For Vehicles (AREA)
  • Prostheses (AREA)
  • Fixed Capacitors And Capacitor Manufacturing Machines (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

DESCRIZIONE dell’invenzione industriale dal titolo:
“Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti”
TESTO DELLA DESCRIZIONE
Campo tecnico
La descrizione è relativa alla sicurezza funzionale dei sistemi elettrici e/o elettronici, come i circuiti di controllo elettronici tolleranti ai guasti (“faulttolerant”).
Una o più forme di attuazione possono applicarsi ai sistemi di controllo elettronici per automotive, per es. i circuiti di controllo per automobili.
Sfondo Tecnologico
Oggigiorno i veicoli moderni, le automobili in particolare, stanno diventando sistemi automotive sempre più complessi. A bordo dei veicoli può essere implementato un numero crescente di sistemi e di circuiti elettronici, che hanno funzioni di controllo sempre più rilevanti. Di conseguenza, gli standard di sicurezza e di affidabilità delle operazioni di tali sistemi e circuiti elettronici stanno diventando sempre più elevati.
Specificamente, per parti dell’infrastruttura di controllo che possono essere relative alla sicurezza, si può prendere in considerazione la tolleranza ai guasti quando si progettano i sistemi elettronici, facilitando tali sistemi a funzionare in modo appropriato anche nel caso di guasti imprevedibili, per es. condizioni anomale che possono causare un malfunzionamento di un sistema o di una parte di un sistema.
In particolare, nel contesto dei prodotti automotive rilevanti per la sicurezza, la tolleranza ai guasti dei sistemi elettronici può svolgere un ruolo nel soddisfare i requisiti di sicurezza, per es. secondo lo standard ISO 26262 (noto anche come Automotive Safety Integrity Level, in breve ASIL).
Un'infrastruttura di un sistema di controllo per automobile può appoggiarsi su unità di elaborazione di controllo, in breve CPU (“Control Processing Unit”). Una CPU può inviare segnali per controllare circuiti e sistemi elettronici, ad es. come un cervello controlla un corpo. Al fine di fare ciò, le CPU possono accedere, per es. leggere/scrivere, a istruzioni o a dati che possono essere memorizzati in una o più memorie, per es. memorie su chip (“on-chip”) o all’esterno del chip (“off-chip”).
Dopo avere effettuato un accesso ai dati, per es. leggendo istruzioni, l’operazione di una CPU può essere dettata completamente dal contenuto dei dati a cui ha effettuato l’accesso, per es. mediante l’esecuzione di una sequenza di istruzioni lette. Nel contesto di un sistema di controllo di un veicolo, tale contenuto di dati recuperato dalla memoria da parte della CPU può dettare un comportamento del veicolo stesso. Per cui, per motivi di sicurezza, i dati memorizzati in memorie a cui si accede mediante una CPU di controllo possono essere molto preziosi per intraprendere azioni decisive, per es. sterzare il volante per evitare una collisione con un ostacolo.
Di conseguenza, l’integrità delle operazioni di accesso alla memoria di una CPU può essere considerata di importanza assimilabile a quella dell’integrità della funzionalità della CPU stessa.
Integrità si riferisce alla proprietà di essere resilienti rispetto ai guasti o ad attacchi malevoli sui componenti hardware.
Nei sistemi relativi alla sicurezza per automotive, per es. i sistemi critici per la sicurezza (“safetycritical”), soluzioni esistenti per proteggere dai guasti tali memorie e la loro interfaccia possono essere molto costose e complesse.
In effetti, nei moderni sistemi di controllo elettronico per automobili, stanno crescendo anche le quantità di dati usate dalle CPU. Di conseguenza, le memorie configurate per memorizzare tali quantità di dati possono essere grandi e costose, per es. in termini di dimensione e densità. In alcuni casi, tali memorie possono essere situate su un chip differente da quello sul quale può essere situata la CPU.
Approcci di soluzioni note per proteggere le memorie e le loro interfacce dai guasti possono comprendere di fornire sistemi o sottosistemi ridondanti, per es.:
- fornire repliche multiple di un intero sistema di controllo a bordo di un veicolo; una tale soluzione presenta l’inconveniente di avere ingenti costi, per es. dal punto di vista dell’integrazione del sistema hardware (HW),
- fornire repliche multiple di uno o più blocchi di memoria; una tale soluzione può essere più economica che replicare l’intero sistema da un punto di vista HW ma presenta l’inconveniente di avere ingenti costi dal punto di vista dell’integrazione software (SW);
- impiegare blocchi di memoria con codice di correzione di errore (ECC, “Error-Correcting Code”) con una tecnica di codice di rilevazione di errore (EDC, “Error-Detecting Code”); tale soluzione presenta l’inconveniente di fornire una copertura limitata dei guasti (“limited fault coverage”), per es. con una copertura limitata di guasti di causa comune e di singolo punto, per es. una copertura limitata ai guasti di singolo bit o di due bit. Copertura dei guasti (“fault coverage”) può riferirsi alla percentuale di qualche tipo di guasto che può essere rilevata durante il test di un qualsiasi sistema ingegnerizzato.
Nonostante la vasta attività in tale settore, possono essere desiderabili ulteriori soluzioni perfezionate.
Scopo e sintesi
Uno scopo di una o più forme di attuazione è di contribuire a fornire una tale soluzione perfezionata.
Secondo una o più forme di attuazione, tale scopo può essere raggiunto per mezzo di un procedimento avente le caratteristiche esposte nelle rivendicazioni che seguono.
Un procedimento di gestione dell’accesso da CPU a memoria può essere un esempio di un tale procedimento.
Una o più forme di attuazione possono essere relative a un sistema corrispondente.
Un system-on-chip configurato per facilitare l’integrità, per es., di trasferimenti di dati multipli tra una CPU e una memoria può essere un esempio di un tale sistema.
Una o più forme di attuazione possono essere relative a un circuito corrispondente.
Un blocco hardware poco costoso integrato in un die di una CPU può essere un esempio di un tale circuito.
Una o più forme di attuazione possono essere relative a un veicolo (per es., un’automobile) equipaggiato con una o più forme di attuazione di un tale sistema.
Una o più forme di attuazione possono facilitare un aumento della tolleranza dei processori relativi alla sicurezza rispetto a guasti che possono verificarsi nel sistema di memoria.
Una o più forme di attuazione possono fornire un’architettura in cui la complessità relativa alla sicurezza del sistema è situata principalmente nel sistema di memoria HW invece che nella CPU (come nel caso di architetture con ridondanza, per es. SW).
Una o più forme di attuazione possono facilitare, vantaggiosamente:
- un aumento della copertura dei guasti di sistemi tolleranti ai guasti, per es. un insieme di casi di guasto che possono essere tollerati, facilitando il raggiungimento di un più alto livello di ISO 26262, specialmente per sistemi che comprendono memorie all’esterno del chip;
- un aumento dell’alta disponibilità del sistema di memoria;
- un risparmio sul costo di dispositivi di protezione dell’integrità della memoria “intrinseci” complessi (per es., l’ECC può essere rimosso);
- una semplificazione dell’architettura SW, evitando l’impiego di ridondanza SW.
Una o più forme di attuazione possono impiegare un blocco circuitale hardware replicatore di trasferimenti per facilitare il controllo di un accesso alla memoria aumentando la tolleranza del processore rispetto a guasti del sistema di memoria, per es. ripetendo gli accessi provenienti dal processore molteplici volte e/o in molteplici luoghi e verificando se i rispettivi dati a cui è stato effettuato l’accesso sono identici gli uni agli altri.
In una o più forme di attuazione, il controllo di accesso alla memoria usando una elaborazione di replica di trasferimenti può essere automatico, per es. non visibile al SW eseguito dal processore, riducendo così i ritardi nelle operazioni e riducendo la complessità delle fasi di integrazione.
In una o più forme di attuazione, l’impatto sulle prestazioni del sistema nei termini della latenza di accesso alla memoria può essere limitato grazie a meccanismi di risposta anticipata (“early response”).
In una o più forme di attuazione, la tolleranza ai guasti può essere aumentata per mezzo di una correzione mediante votazione a maggioranza tra i dati recuperati. Questo può facilitare, vantaggiosamente, la CPU a continuare l’esecuzione anche in presenza di un errore rilevato, per es. usando una triplicazione.
Le rivendicazioni sono parte integrante dell’insegnamento tecnico qui fornito con riferimento alle forme di attuazione.
Breve descrizione delle varie viste dei disegni
Una o più forme di attuazione saranno ora descritte, a puro titolo di esempio non limitativo, con riferimento alle Figure annesse, in cui:
- la Figura 1 è un esempio di uno schema di un’architettura di sistema secondo la presente descrizione;
- la Figura 2 è un esempio di uno schema di un procedimento relativo alla sicurezza secondo la presente descrizione,
- la Figura 2A è un esempio di uno schema di una o più forme di attuazione di un procedimento relativo alla sicurezza secondo la presente descrizione,
- la Figura 3 è un esempio di un veicolo equipaggiato con un sistema secondo la presente descrizione.
Descrizione dettagliata di esempi di forme di attuazione
Nella descrizione che segue, sono illustrati uno o più dettagli specifici, allo scopo di fornire una comprensione approfondita di esempi di forme di attuazione di questa descrizione. Le forme di attuazione possono essere ottenute senza uno o più dei dettagli specifici o con altri procedimenti, componenti, materiali, ecc. In altri casi, operazioni, materiali o strutture note non sono illustrate o descritte in dettaglio in modo tale che certi aspetti delle forme di attuazione non saranno resi poco chiari.
Un riferimento a “una forma di attuazione” nel quadro della presente descrizione intende indicare che una particolare configurazione, struttura, o caratteristica descritta con riferimento alla forma di attuazione è compresa in almeno una forma di attuazione. Per cui, le frasi come “in una forma di attuazione” che possono essere presenti in uno o più punti della presente descrizione non fanno necessariamente riferimento proprio alla stessa forma di attuazione.
Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in un modo adeguato qualsiasi in una o più forme di attuazione.
I riferimenti usati qui sono forniti semplicemente per convenienza e quindi non definiscono l’ambito di protezione o l’ambito delle forme di attuazione.
I disegni sono in forma semplificata e non sono in una scala precisa. Per semplicità, possono essere usati termini direzionali (su/giù, ecc.) o di movimento (in avanti/all’indietro, ecc.) con riferimento ai disegni. Il termine “accoppiare” e termini simili non indicano necessariamente connessioni dirette e immediate, ma comprendono anche connessioni attraverso dispositivi o elementi intermedi.
A titolo di introduzione a una descrizione dettagliata di esempi di forme di attuazione, si può fare riferimento dapprima alla Figura 1.
La Figura 1 è un esempio di uno schema di un sistema, per es. un system-on-chip (in breve, SoC) che integra una pluralità di componenti di un sistema di controllo elettronico per automobile, comprendente:
- un blocco circuitale di elaborazione 12, per es. un’unità di elaborazione centrale CPU o un’unità microcontrollore MCU (“Microcontroller Unit”),
- un blocco circuitale di memoria 14, per es. un blocco circuitale di memoria ad accesso casuale, in breve RAM (“Random-Access Memory”), configurato per memorizzare segnali di dati D, per es. dati da sensori sul veicolo V e/o istruzioni per fare funzionare il blocco circuitale di elaborazione 12, in una pluralità di locazioni di memoria interne indicizzate ADDR1, ADDRn e per fornire rispettivi segnali di dati D in funzione di rispettivi segnali di richiesta di accesso alla memoria RS1, RSn, detti segnali di richiesta di accesso alla memoria comprendendo indici di almeno una locazione di memoria ADDR1, ADDRn,
- un circuito di accoppiamento 100, per es. come un circuito di controllo di accesso 100, accoppiato a detta memoria di archiviazione dei dati 14 e configurato per ricevere segnali di richiesta di accesso alla memoria RS1, RSn emessi da un circuito di elaborazione 12 o per fornire segnali a detto circuito di elaborazione 12 e per elaborare segnali di richiesta di accesso alla memoria RS1, RSn emessi da un circuito di elaborazione 12, al fine di fornire una comunicazione dati tollerante ai guasti tra la CPU 12 e la memoria 14, per es. come risultato di un funzionamento come un replicatore di trasferimenti di dati.
In una o più forme di attuazione, il blocco circuitale di accoppiamento 100 e il blocco circuitale di elaborazione 12 possono essere integrati in uno stesso die, per es. il blocco circuitale di accoppiamento 100 essendo un componente hardware “poco costoso” integrato nello stesso die/chip in cui si trova la CPU.
In una o più forme di attuazione, il blocco circuitale di memoria 14 può essere compreso in un die/chip differente da quello che ospita la CPU e il blocco circuitale di accoppiamento 100.
In una o più forme di attuazione, il blocco circuitale di elaborazione 12 e il blocco circuitale di memoria 14 possono essere accoppiati al blocco circuitale di accoppiamento 100 mediante rispettivi bus, per esempio:
- un primo bus B12, per es. un bus conforme ad AXI 4 con funzionalità di protezione dell’integrità dei dati, che accoppia il blocco circuitale di elaborazione 12 e il blocco circuitale di accoppiamento 102 e configurato per comunicare dati relativi a richieste di accesso alla memoria dalla CPU, e
- un secondo bus B14, per es. un bus conforme ad AXI 4 con funzionalità di protezione di integrità dei dati, che accoppia il blocco circuitale di accoppiamento 100 e il blocco circuitale di memoria 14 e configurato per comunicare tra loro dati relativi a richieste di accesso alla memoria dalla CPU e/o dati letti dalla memoria come risultato di tali richieste di accesso ai dati dalla CPU.
In una o più forme di attuazione, un tale sistema 10 può essere configurato per essere accoppiato a ulteriori sistemi elettronici, per es. uno o più attuatori elettronici in un veicolo V, mediante un terzo bus B16, per es. un bus conforme ad APB (Advanced Peripheral Bus). Per esempio, tale bus B16 può facilitare lo scambio di segnali di controllo dalla CPU 12 agli attuatori dell’automobile.
In una o più forme di attuazione come esemplificato nella Figura 1, il blocco circuitale di sicurezza 100 può comprendere:
- un blocco circuitale replicatore di trasferimenti 102, configurato per ricevere richieste di accesso alla memoria RS1,…,RSn dalla CPU 12, accedere alla memoria 14 un numero di volte almeno doppio di quante richieste dalla CPU 12, almeno un numero di richieste di accesso alla memoria ricevute replicando dette richieste di accesso alla memoria ricevute RS1,…,RSn, per es. ricevendo una singola richiesta di accesso alla memoria RS e generando una replica RSc1 o due repliche RSc1, RSc2 di detta richiesta RS e, raccogliendo dati dalla memoria ogni volta che è effettuato un accesso, fornire tali dati raccolti D1, D2; D3 a un blocco circuitale comparatore o a un blocco circuitale di verifica dell’identità 104, e
- il blocco circuitale comparatore 104, configurato per verificare l’identità tra i dati D1, D2; D3 a cui accede il replicatore di trasferimenti 102 dal replicatore di trasferimenti 102 e per confrontarli tra loro a coppie, al fine di verificare se concordano, e configurato per fornire come uscita l’uno o l’altro tra:
- un segnale di abilitazione come risultato di detta verifica di identità, per es. nel caso in cui almeno una coppia di dati ricevuti a cui è stato effettuato l’accesso in memoria sono uguali tra loro, o
- fornire un flag/segnale di errore di integrità, nel caso in cui è trovato che almeno una coppia di dati ricevuti a cui è stato effettuato l’accesso in memoria non sono uguali tra loro, facilitando la fornitura di una risposta anticipata.
La Figura 2 è un esempio di un procedimento 20 di elaborazione di una richiesta di accesso alla memoria dalla CPU, per esempio impiegando un sistema 10 come esemplificato nella Figura 1.
Una o più forme di attuazione possono comprendere variabili booleane, che possono avere valori di “vero/falso”: per esempio, un enunciato vero può restituire un primo valore, per es. “1”, mentre un enunciato falso restituisce un secondo valore, per es. “0”.
In una o più forme di attuazione, il procedimento 20 comprende:
- ricevere 202, per es. mediante il circuito replicatore di trasferimenti 102, un segnale di richiesta di accesso alla memoria RS emesso dal circuito di elaborazione 12,
- replicare almeno una volta 204 un segnale di richiesta di accesso alla memoria RS nei segnali di richiesta di accesso alla memoria RS, per es. producendo un insieme di segnali comprendente, per es., il segnale di richiesta di accesso alla memoria RS originale e una sua replica RSc1,
- accedere 206 alla memoria di archiviazione dei dati 14 e recuperare da essa un insieme di segnali di dati, per esempio almeno un primo segnale di dati D1, un secondo segnale di dati D2 e opzionalmente un terzo segnale di dati (si veda, per esempio, la Figura 2A), in funzione di ciascun segnale di richiesta di accesso alla memoria nell’insieme di segnali di richiesta di accesso alla memoria replicati RS, RSc1,
- verificare l’identità 208, 210, per esempio comprendendo:
a) confrontare 208, per es. nel blocco circuitale di verifica dell’identità 104 nel circuito di accoppiamento 100, tali segnali di dati nell’insieme recuperato di segnali di dati D1, D2 tra loro a coppie, al fine di verificare se concordano l’uno con l’altro, per es. per verificare che il contenuto recuperato come risultato delle richieste multiple di accesso alla memoria sia sempre il medesimo, produrre un segnale indicatore CMP, per es. un indicatore booleano, come risultato del confronto 208,
b) valutare 210 il segnale indicatore CMP risultante da tale confronto, l’indicatore avendo un primo valore o un insieme di valori, per es. vero, se i dati sono uguali tra loro e avendo un secondo valore, per es. falso, in altri casi, per esempio in funzione di una tabella della verità predisposta, e fare funzionare il circuito di accoppiamento 100 per fornire o trasmettere selettivamente 212, 214 al circuito di elaborazione 12, in funzione del segnale indicatore CMP, per es. booleano, prodotto, l’uno o l’altro tra:
i) almeno un segnale, per es. D1, tra i segnali nell’insieme di segnali di dati D1, D2 quando il segnale indicatore CMP ha un primo valore, per es. vero, opzionalmente insieme a un segnale di flag di errore correggibile CEF come discusso in seguito (per esempio, con riferimento alla Figura 2A),
ii) un segnale di flag di errore UEF, in particolare un flag di errore di integrità, quando tutte le verifiche di identità hanno un esito negativo e il segnale indicatore CMP ha un secondo valore differente dal primo valore, per es. falso.
In una o più forme di attuazione, il fatto di replicare il segnale una volta può essere indicato in particolare per un sistema che può essere sicuro ma non tollerante ai guasti: in questo caso una duplicazione può essere sufficiente e il dispositivo 10 con il circuito di accoppiamento 100 può essere usato per ridurre il costo dei meccanismi che proteggono le RAM (per es., facilitando il fatto di evitare l’uso di memorie con EDC/ECC costose e complesse).
In una o più forme di attuazione, il fatto di replicare il segnale due volte può essere indicato in particolare per un sistema che può impiegare livelli di sicurezza tolleranti ai guasti: in questo caso una triplicazione può essere un’opzione e la CPU può continuare l’esecuzione anche se è rilevato un errore, come discusso in seguito con riferimento alla Figura 2A.
In una o più forme di attuazione come esemplificato nella Figura 2A, l’operazione di confrontare 208 tra loro i segnali di dati nell’insieme recuperato di segnali di dati (per es., a coppie) può essere interrotta prima del completamento, al fine di fornire una risposta anticipata e per limitare l’impatto sulla latenza del sistema.
In una o più forme di attuazione come esemplificato nella Figura 2A, il procedimento può comprendere:
- replicare almeno due volte 204’ un segnale di richiesta di accesso alla memoria RS’ nei segnali di richiesta di accesso alla memoria RS’ ricevuti, per es. producendo un insieme di segnali comprendente, per es., il segnale di richiesta di accesso alla memoria RS’ originale e un paio di loro repliche RSc1’, RSc2’,
- accedere 206’ alla memoria di archiviazione dei dati 14 e recuperare da essa un insieme di segnali di dati, per esempio almeno un primo segnale di dati D1’, un secondo segnale di dati D2’ e un terzo segnale di dati D3’, in funzione di ciascun segnale di richiesta di accesso alla memoria nell’insieme di segnali di richiesta di accesso alla memoria replicati Rs’, RSc1’, RSc2’,
- verificare l’identità, per esempio comprendendo:
- applicare un primo confronto 208’, per es. nel blocco circuitale di verifica dell’identità 104 nel circuito di accoppiamento 100, tra tale primo segnale di dati D1’ e tale secondo segnale di dati D2 nell’insieme di segnali di dati recuperati D1’, D2’, D3’, al fine di verificare se concordano l’uno con l’altro, per es. per verificare che il contenuto recuperato come risultato delle richieste multiple di accesso alla memoria sia sempre il medesimo, producendo un primo segnale indicatore CMP1, per es. un indicatore booleano, come risultato del primo confronto 208,
- valutare 210’ il primo segnale indicatore CMP1 risultante da tale primo confronto, l’indicatore avendo un primo valore o insieme di valori, per es. vero, se i dati sono uguali tra loro e avendo un secondo valore, per es. falso, in altri casi, per esempio in funzione di una tabella della verità predisposta, e fare funzionare il circuito di accoppiamento 100 per:
a) fornire o trasmettere selettivamente 214’ al circuito di elaborazione 12, in funzione del segnale indicatore CMP1, per es. booleano, prodotto, un segnale di flag di errore correggibile CEF quando il segnale indicatore CMP ha un secondo valore differente dal primo valore, per es. falso, nel caso in cui la verifica di identità abbia un esito negativo;
b) applicare un secondo confronto 216, per es. nel blocco circuitale di verifica dell’identità 104 nel circuito di accoppiamento 100, tra tale primo segnale di dati D1’ e tale terzo segnale di dati D3 nell’insieme recuperato di segnali di dati D1’, D2’, D3’, al fine di verificare se concordano l’uno con l’altro, per es. per verificare che il contenuto recuperato come risultato delle richieste multiple di accesso alla memoria è sempre il medesimo, producendo un secondo segnale indicatore CMP2, per es. un indicatore booleano, come risultato del secondo confronto 216.
Come menzionato, fornire o trasmettere 214’ flag di errore correggibile come risultato del primo confronto e valutazione 210’ facilita il fatto di limitare vantaggiosamente l’impatto sulle prestazioni del sistema nei termini della latenza di accesso alla memoria.
In una o più forme di attuazione come esemplificato nella Figura 2A, il procedimento può comprendere ulteriori operazioni di:
- valutare 218 il secondo segnale indicatore CMP2 risultante da tale secondo confronto 216, il secondo indicatore avendo un primo valore o insieme di valori, per es. vero, se i dati D1’, D3’, sono uguali tra loro e avendo un secondo valore, per es. falso, in altri casi, per esempio in funzione di una tabella della verità predisposta, e fare funzionare il circuito di accoppiamento 100 per:
i) fornire o trasmettere selettivamente 220 al circuito di elaborazione 12, in funzione del secondo segnale indicatore CMP2, per es. booleano, prodotto, un segnale di flag di errore correggibile CEF quando il secondo segnale indicatore CMP2 ha un secondo valore differente dal primo valore, per es. falso, nel caso in cui la verifica di identità abbia un esito negativo;
ii) applicare un terzo confronto 222, per es. nel blocco circuitale di verifica dell’identità 104 nel circuito di accoppiamento 100, tra tale secondo segnale di dati D2’ e tale terzo segnale di dati D3 nell’insieme recuperato di segnali di dati D1’, D2’, D3’, al fine di verificare se concordano l’uno con l’altro, per es. per verificare che il contenuto recuperato come risultato delle richieste multiple di accesso alla memoria sia sempre lo stesso, producendo un terzo segnale indicatore CMP3, per es. un indicatore booleano, come risultato del terzo confronto 222.
In una o più forme di attuazione come esemplificato nella Figura 2A, il procedimento può comprendere inoltre le operazioni di:
- valutare 228 il risultato del primo, del secondo e del terzo confronto 208’, 216, 222 in cui valutare comprende di verificare se un qualsiasi indicatore di confronto CMP1, CMP2, CMP3 ha un primo valore, per es. vero, e nel caso in cui almeno un indicatore abbia un primo valore, per es. CMP3=vero, CMP2=falso, CMP1=falso, indicativo del caso in cui una maggioranza di verifiche di identità 208’, 216, 222 hanno un esito positivo, e
- fornire o trasmettere selettivamente 220 al circuito di elaborazione 12, in funzione della valutazione 228, uno o l’altro tra:
- fornire qualsiasi dato nella coppia di dati che, quando confrontati, ha avuto come risultato una maggioranza di verifiche di identità positive; per esempio, se D1’ non è uguale a D2 mentre D3=D1 o D3’=D2’, allora fornire il terzo segnale D3;
- un segnale di flag di errore non correggibile UEF quando il primo, il secondo e il terzo segnale indicatore CMP1, CMP2 e CMP3 hanno un secondo valore differente dal primo valore, per es. falso, come risultato di verifiche di identità che hanno soltanto esiti negativi.
In una o più forme di attuazione, il procedimento può facilitare vantaggiosamente una tolleranza ai guasti perfezionata, facilitando una correzione di errore mediante votazione a maggioranza 228 tra le verifiche di identità di dati recuperati D1’, D2’, D3’.
In una o più forme di attuazione, il procedimento 20 per fare funzionare il dispositivo 10 può essere eseguito automaticamente, indipendentemente dalle istruzioni software ad alto o basso livello, per es. non essendo “visibile” a livello del software.
In una o più forme di attuazione, il circuito di elaborazione 12 e il circuito di accoppiamento 100 possono essere montati su uno stesso system-on-chip, mentre il circuito di memoria 14 può essere una memoria all’esterno del chip accoppiata al SoC mediante il secondo bus B14.
La Figura 3 è un esempio di un veicolo V equipaggiato con il dispositivo/sistema 10.
Come menzionato, i veicoli moderni, in particolare i veicoli stradali, possono essere equipaggiati con una pluralità di sottosistemi di rilevazione/sensori SD, per es. un sistema sensore radar/lidar, e possono comprendere una pluralità di attuatori A, per es. uno o più attuatori per il volante di sterzo manuale HS, in particolare per le automobili a guida autonoma (“self-driving car”). In una o più forme di attuazione, il dispositivo 10 a bordo del veicolo V può essere accoppiato ai sensori SD e agli attuatori A e può facilitare l’applicazione di una retroazione di sicurezza tra i due, in particolare per i veicoli automobilistici automatizzati o a guida autonoma.
Per esempio, come rappresentato nella Figura 3, quando un pedone P attraversa la strada inavvertitamente, il sensore lidar SD può rilevare la sua presenza e i dati provenienti dal sensore possono essere memorizzati nella memoria 14 e l’unità di elaborazione 10 può interrogare ciclicamente (“poll”) la memoria per verificare i cambiamenti nei dati.
Se si accede all’indirizzo erroneo nella memoria a causa di un guasto nell’hardware, questo può condurre a una situazione pericolosa. Per contro, grazie al circuito di accoppiamento 100 nel dispositivo 10, si può accedere ai dati in modo sicuro, facilitando una riduzione degli incidenti e aumentando la sicurezza stradale.
Una o più forme di attuazione possono comprendere un procedimento (per esempio, 20) di accesso a una memoria di archiviazione dei dati (per esempio, 14) configurata per memorizzare segnali di dati (per esempio, D) in una pluralità di locazioni di memoria indicizzate (per esempio, ADDR1, ADDRn). In una o più forme di attuazione, il procedimento può comprendere:
- accoppiare un circuito di controllo di accesso (per esempio, 100) a detta memoria di archiviazione dei dati, il circuito di controllo di accesso configurato per ricevere (per esempio, 202) segnali di richiesta di accesso alla memoria (per esempio, RS; RS’) che provengono da un circuito di elaborazione (per esempio, 12) e per accedere a locazioni di memoria indicizzate in detta pluralità di locazioni di memoria indicizzate per recuperare segnali di dati (per esempio, D1, D2; D1’, D2’, D3’) in esse in funzione di rispettivi segnali di richiesta di accesso alla memoria ricevuti (per esempio, RS; RS’),
- replicare almeno una volta (per esempio, 204) detti rispettivi segnali di richiesta di accesso alla memoria ricevuti in detto circuito di controllo di accesso per fornire, per ciascun detto rispettivo segnale di richiesta di accesso alla memoria ricevuto, almeno un rispettivo segnale di richiesta di accesso alla memoria replicato (per esempio, RSc1; RSc1’, RSc2’),
- accedere (per esempio, 206) a locazioni di memoria interne indicizzate in detta pluralità di locazioni di memoria interne indicizzate sia in funzione di un rispettivo segnale di richiesta di accesso alla memoria ricevuto sia in funzione di almeno un rispettivo segnale di richiesta di accesso alla memoria replicato per recuperare con ciò un primo segnale di dati (per esempio, D1; D1’) recuperato in funzione di detto rispettivo segnale di richiesta di accesso alla memoria ricevuto (per esempio, RS; RS’) ed almeno un secondo segnale di dati (per esempio, D2; D2’, D3’) recuperato in funzione di almeno un rispettivo segnale di richiesta di accesso alla memoria replicato (per esempio, RSc1; RSc1’, RSc2’),
- verificare l’identità (per esempio, 208, 210; 208’, 216, 222, 228) di detto primo segnale di dati recuperato e di detto almeno un secondo segnale di dati recuperato, e - fare funzionare detto circuito di controllo di accesso, per trasmettere (per esempio, 212, 214; 214’, 220, 226, 230, 232) a detto circuito di elaborazione:
i) un segnale tra detto primo segnale di dati recuperato e detto almeno un secondo segnale di dati come risultato di un esito positivo (per esempio, 212; 214’, 220, 226, 230) di detta verifica di identità di essi, ii) un segnale di flag di errore di integrità (per esempio, CEF; UEF) come risultato di un esito negativo di detta verifica di identità.
In una o più forme di attuazione, il procedimento può comprendere:
- ricevere in detto circuito di elaborazione detto l’uno o l’altro tra detti segnali trasmessi a esso da detto circuito di controllo di accesso, e
- fare funzionare detto blocco circuitale di elaborazione in funzione di detti segnali (per esempio, D1, CEF; D1’, CEF, UEF) trasmessi a esso da detto circuito di controllo di accesso.
In una o più forme di attuazione, il procedimento può comprendere:
- fornire detto blocco circuitale di elaborazione e detto circuito di controllo di accesso come un system-onchip, e
- fornire detta memoria di archiviazione dei dati come un blocco circuitale di memoria di archiviazione dei dati all’esterno del chip.
In una o più forme di attuazione, il procedimento può comprendere:
- replicare almeno due volte (per esempio, 204’) detti rispettivi segnali di richiesta di accesso alla memoria ricevuti (per esempio, RS’) in detto circuito di controllo di accesso per fornire, per ciascun detto rispettivo segnale di richiesta di accesso alla memoria ricevuto, almeno due rispettivi segnali di richiesta di accesso alla memoria replicati (per esempio, RSc1’, RSc2’),
- accedere (per esempio, 206’) a locazioni di memoria interne indicizzate in detta pluralità di locazioni di memoria interne indicizzate sia in funzione di un rispettivo segnale di richiesta di accesso alla memoria ricevuto sia in funzione di almeno due rispettivi segnali di richiesta di accesso alla memoria replicati per recuperare con ciò un primo segnale di dati (per esempio, D1’) recuperato in funzione di detto rispettivo segnale di richiesta di accesso alla memoria ricevuto così come almeno due ulteriori segnali di dati (per esempio, D2’, D3’) recuperati in funzione degli almeno due rispettivi segnali di richiesta di accesso alla memoria replicati,
- verificare l’identità (per esempio, 208’, 210’, 216, 218, 222, 224) di detto primo segnale di dati recuperato così come di detti almeno due ulteriori segnali di dati recuperati, e
- fare funzionare detto circuito di accoppiamento per fornire selettivamente (per esempio, 228) a detto circuito di elaborazione:
i) come risultato del fatto che detta verifica di identità fornisce soltanto esiti positivi, un segnale tra detto primo segnale di dati recuperato e detti almeno due ulteriori segnali di dati,
ii) come risultato del fatto che detta verifica di identità fornisce una maggioranza di esiti positivi rispetto agli esiti negativi, un segnale tra detto primo segnale di dati recuperato e detti almeno due ulteriori segnali di dati che hanno fornito un esito positivo di detta verifica di identità (per esempio, 208’, 216, 222) insieme a un primo segnale di flag di errore di integrità (per esempio, CEF), detto primo segnale di flag di errore di integrità essendo indicativo di un errore correggibile, ii) come risultato del fatto che detta verifica di identità (per esempio, 208’, 216, 222, 228) fornisce una maggioranza di esiti negativi rispetto agli esiti positivi, un secondo segnale di flag di errore di integrità (per esempio, UEF), detto secondo segnale di flag di errore di integrità essendo indicativo di un errore non correggibile.
Una o più forme di attuazione possono comprendere un system-on-chip, che può comprendere:
- un blocco circuitale di elaborazione (per esempio, 12) configurato per generare segnali di richiesta di accesso alla memoria (per esempio, RS1; RSn), e,
- un circuito di controllo di accesso (per esempio, 100) accoppiato a detto blocco circuitale di elaborazione e configurato per ricevere (per esempio, 202) segnali di richiesta di accesso alla memoria che provengono da un circuito di elaborazione e per accedere a locazioni di memoria indicizzate (per esempio, ADDR1, ADDRn) in una pluralità di locazioni di memoria indicizzate per recuperare segnali di dati (per esempio, D) in esse in funzione di rispettivi segnali di richiesta di accesso alla memoria ricevuti (per esempio, RS1, RSn),
in cui il system-on-chip è configurato per funzionare secondo una o più forme di attuazione del procedimento (per esempio, 20).
Una o più forme di attuazione possono comprendere un dispositivo (per esempio, 10), che può comprendere:
- una memoria di archiviazione dei dati all’esterno del chip (per esempio, 14) configurata per memorizzare segnali di dati (per esempio, D) in una pluralità di locazioni di memoria interne indicizzate (per esempio, ADDR1, ADDRn) e per fornire rispettivi segnali di dati in funzione di rispettivi segnali di richiesta di accesso alla memoria (per esempio, RS1, RSn),
- una o più forme di attuazione del system-on-chip, in cui detto circuito di controllo di accesso (per esempio, 100) è accoppiato a detta memoria di archiviazione dei dati all’esterno del chip.
In una o più forme di attuazione, il dispositivo può comprendere inoltre:
- un primo bus (per esempio, B12) che accoppia tra loro il blocco circuitale di elaborazione e il circuito di controllo di accesso e configurato per comunicare dati relativi a richieste di accesso alla memoria dal blocco circuitale di elaborazione, e
- un secondo bus (per esempio, B14) che accoppia il circuito di controllo di accesso e la memoria di archiviazione dei dati e configurato per comunicare tra loro dati relativi a richieste di accesso alla memoria dal circuito di elaborazione e/o dati letti dalla memoria (per esempio, D1, D2; D1’, D2’, D3’) come risultato di tali richieste di accesso ai dati dal circuito di elaborazione.
In una o più forme di attuazione, il primo bus e il secondo bus possono comprendere ciascuno un bus conforme ad AXI 4 equipaggiato con funzionalità di protezione dell’integrità.
Una o più forme di attuazione possono comprendere un veicolo (per esempio, V), equipaggiato con una pluralità di sensori (per esempio, SD) e di attuatori (per esempio, A) e con una o più forme di attuazione del system-on-chip o una o più forme di attuazione del dispositivo (10) secondo la presente descrizione, in cui la memoria di archiviazione dei dati può essere configurata per memorizzare dati dai sensori e il system-on-chip è accoppiato ai sensori e agli attuatori nel veicolo.
Per il resto si comprenderà che le varie opzioni di implementazione individuali rappresentate come esempio in tutte le figure che sono annesse a questa descrizione non intendono essere adottate necessariamente nelle stesse combinazioni rappresentate come esempio nelle figure. Una o più forme di attuazione possono così adottare queste opzioni (per il resto non obbligatorie) individualmente e/o in combinazioni differenti rispetto alla combinazione rappresentata come esempio nelle figure annesse.
Fermi restando i principi di fondo, i dettagli e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto è stato descritto, puramente a titolo di esempio, senza uscire dall’ambito di protezione. L’ambito di protezione è definito dalle rivendicazioni annesse.

Claims (9)

  1. RIVENDICAZIONI 1. Procedimento (20) di accesso a una memoria di archiviazione dei dati (14) configurata per memorizzare segnali di dati (D) in una pluralità di locazioni di memoria indicizzate (ADDR1, ADDRn), il procedimento (20) comprendendo: - accoppiare un circuito di controllo di accesso (100) a detta memoria di archiviazione dei dati (14), il circuito di controllo di accesso (100) configurato per ricevere (202) segnali di richiesta di accesso alla memoria (RS; RS’) che provengono da un circuito di elaborazione (12) e per accedere a locazioni di memoria indicizzate (ADDR1, ADDRn) in detta pluralità di locazioni di memoria indicizzate (ADDR1, ADDRn) per recuperare segnali di dati (D1, D2; D1’, D2’, D3’) in esse in funzione di rispettivi segnali di richiesta di accesso alla memoria ricevuti (RS; RS’), - replicare almeno una volta (204) detti rispettivi segnali di richiesta di accesso alla memoria ricevuti (RS; RS’) in detto circuito di controllo di accesso (100) per fornire, per ciascun detto rispettivo segnale di richiesta di accesso alla memoria ricevuto (RS; RS’), almeno un rispettivo segnale di richiesta di accesso alla memoria replicato (RSc1; RSc1’, RSc2’), - accedere (206) a locazioni di memoria interne indicizzate (ADDR1, ADDRn) in detta pluralità di locazioni di memoria interne indicizzate (ADDR1, ADDRn) sia in funzione di un rispettivo segnale di richiesta di accesso alla memoria ricevuto (RS; RS’) sia in funzione di almeno un rispettivo segnale di richiesta di accesso alla memoria replicato (RSc1; RSc1’, RSc2’) per recuperare con ciò un primo segnale di dati (D1; D1’) recuperato in funzione di detto rispettivo segnale di richiesta di accesso alla memoria ricevuto (RS; RS’) ed almeno un secondo segnale di dati (D2; D2’, D3’) recuperato in funzione di almeno un rispettivo segnale di richiesta di accesso alla memoria replicato (RSc1; RSc1’, RSc2’), - verificare l’identità (208, 210; 208’, 216, 222, 228) di detto primo segnale di dati recuperato e di detto almeno un secondo segnale di dati recuperato, e - fare funzionare detto circuito di controllo di accesso (100), per trasmettere (212, 214; 214’, 220, 226, 230, 232) a detto circuito di elaborazione (12): i) un segnale tra detto primo segnale di dati recuperato (D1; D1’) e detto almeno un secondo segnale di dati (D2; D2’, D3’) come risultato di un esito positivo (212; 214’, 220, 226, 230) di detta verifica di identità di essi (208, 210; 208’, 216, 222, 228), ii) un segnale di flag di errore di integrità (CEF; UEF) come risultato di un esito negativo di detta verifica di identità (208, 210; 208’, 216, 222, 228).
  2. 2. Procedimento secondo la rivendicazione 1, comprendente: - ricevere in detto circuito di elaborazione (12) detto l’uno o l’altro tra detti segnali trasmessi a esso (212, 214; 214’, 220, 226, 230) da detto circuito di controllo di accesso (100), e - fare funzionare detto blocco circuitale di elaborazione (12) in funzione di detti segnali (D1, CEF; D1’, CEF, UEF) trasmessi (212, 214; 214’, 220, 226, 230) a esso da detto circuito di controllo di accesso (100).
  3. 3. Procedimento secondo la rivendicazione 1 o la rivendicazione 2, comprendente: - fornire detto blocco circuitale di elaborazione (12) e detto circuito di controllo di accesso (100) come un system-on-chip, e - fornire detta memoria di archiviazione dei dati (14) come un blocco circuitale di memoria di archiviazione dei dati all’esterno del chip.
  4. 4. Procedimento secondo una qualsiasi delle rivendicazioni precedenti, comprendente: - replicare almeno due volte (204’) detti rispettivi segnali di richiesta di accesso alla memoria ricevuti (RS’) in detto circuito di controllo di accesso (100) per fornire, per ciascun detto rispettivo segnale di richiesta di accesso alla memoria ricevuto (RS’), almeno due rispettivi segnali di richiesta di accesso alla memoria replicati (RSc1’, RSc2’), - accedere (206’) a locazioni di memoria interne indicizzate (ADDR1, ADDRn) in detta pluralità di locazioni di memoria interne indicizzate (ADDR1, ADDRn) sia in funzione di un rispettivo segnale di richiesta di accesso alla memoria ricevuto (RS’) sia in funzione di almeno due rispettivi segnali di richiesta di accesso alla memoria replicati (RSc1’, RSc2’) per recuperare con ciò un primo segnale di dati (D1’) recuperato in funzione di detto rispettivo segnale di richiesta di accesso alla memoria ricevuto (RS’) così come almeno due ulteriori segnali di dati (D2’, D3’) recuperati in funzione degli almeno due rispettivi segnali di richiesta di accesso alla memoria replicati (RSc1’, RSc2’), - verificare l’identità (208’, 210’, 216, 218, 222, 224) di detto primo segnale di dati recuperato (D1’) così come di detti almeno due ulteriori segnali di dati recuperati (D2’, D3’), e - fare funzionare detto circuito di accoppiamento (100) per fornire selettivamente (228) a detto circuito di elaborazione (12): i) come risultato del fatto che detta verifica di identità (208’, 216, 222, 228) fornisce soltanto esiti positivi, un segnale tra detto primo segnale di dati (D1’) recuperato e detti almeno due ulteriori segnali di dati (D2’, D3’), ii) come risultato del fatto che detta verifica di identità (208’, 216, 222, 228) fornisce una maggioranza di esiti positivi rispetto agli esiti negativi, un segnale tra detto primo segnale di dati (D1’) recuperato e detti almeno due ulteriori segnali di dati (D2’, D3’) che hanno fornito un esito positivo di detta verifica di identità (208’, 216, 222) insieme a un primo segnale di flag di errore di integrità (CEF), detto primo segnale di flag di errore di integrità (CEF) essendo indicativo di un errore correggibile, ii) come risultato del fatto che detta verifica di identità (208’, 216, 222, 228) fornisce una maggioranza di esiti negativi rispetto agli esiti positivi, un secondo segnale di flag di errore di integrità (UEF), detto secondo segnale di flag di errore di integrità (UEF) essendo indicativo di un errore non correggibile.
  5. 5. System-on-chip, comprendente: - un blocco circuitale di elaborazione (12) configurato per generare segnali di richiesta di accesso alla memoria (RS1, RSn), e - un circuito di controllo di accesso (100) accoppiato a detto blocco circuitale di elaborazione (12) e configurato per ricevere (202) segnali di richiesta di accesso alla memoria (RS1, RSn) che provengono da un circuito di elaborazione (12) e per accedere a locazioni di memoria indicizzate (ADDR1, ADDRn) in una pluralità di locazioni di memoria indicizzate (ADDR1, ADDRn) per recuperare segnali di dati (D) in esse in funzione di rispettivi segnali di richiesta di accesso alla memoria ricevuti (RS1, RSn), in cui il system-on-chip è configurato per funzionare secondo il procedimento (20) secondo una qualsiasi delle rivendicazioni da 1 a 4.
  6. 6. Dispositivo (10), comprendente: - una memoria di archiviazione dei dati all’esterno del chip (14) configurata per memorizzare segnali di dati (D) in una pluralità di locazioni di memoria interne indicizzate (ADDR1, ADDRn) e per fornire rispettivi segnali di dati (D) in funzione di rispettivi segnali di richiesta di accesso alla memoria (RS1, RSn), - il system-on-chip secondo la rivendicazione 5, in cui detto circuito di controllo di accesso (100) è accoppiato a detta memoria di archiviazione dei dati all’esterno del chip (14).
  7. 7. Dispositivo (10) secondo la rivendicazione 6, comprendente inoltre: - un primo bus (B12) che accoppia tra loro il blocco circuitale di elaborazione (12) e il circuito di controllo di accesso (100) e configurato per comunicare dati relativi a richieste di accesso alla memoria (RS1, RSn; RS) dal blocco circuitale di elaborazione (12), e - un secondo bus (B14) che accoppia il circuito di controllo di accesso (100) e la memoria di archiviazione dei dati (14) e configurato per comunicare tra loro dati relativi a richieste di accesso alla memoria (RS1, RSn; RS) dal circuito di elaborazione (12) e/o dati letti dalla memoria (D1, D2; D1’, D2’, D3’) come risultato di tali richieste di accesso ai dati (RS) dal circuito di elaborazione (12).
  8. 8. Dispositivo (10) secondo la rivendicazione 7, in cui il primo bus (B12) e il secondo bus (B14) comprendono ciascuno un bus conforme ad AXI 4 equipaggiato con funzionalità di protezione dell’integrità.
  9. 9. Veicolo (V), equipaggiato con una pluralità di sensori (SD) e di attuatori (A) e con il system-on-chip secondo la rivendicazione 5 o il dispositivo (10) secondo una qualsiasi delle rivendicazioni da 6 a 8, in cui la memoria di archiviazione dei dati (14) è configurata per memorizzare dati dai sensori (SD) e il system-on-chip è accoppiato ai sensori (SD) e agli attuatori (A) nel veicolo (V).
IT102019000007398A 2019-05-28 2019-05-28 Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti IT201900007398A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT102019000007398A IT201900007398A1 (it) 2019-05-28 2019-05-28 Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti
US16/881,949 US11436162B2 (en) 2019-05-28 2020-05-22 Functional safety method, corresponding system-on-chip, device and vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000007398A IT201900007398A1 (it) 2019-05-28 2019-05-28 Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti

Publications (1)

Publication Number Publication Date
IT201900007398A1 true IT201900007398A1 (it) 2020-11-28

Family

ID=67876044

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000007398A IT201900007398A1 (it) 2019-05-28 2019-05-28 Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti

Country Status (2)

Country Link
US (1) US11436162B2 (it)
IT (1) IT201900007398A1 (it)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6717874B1 (en) * 2002-08-14 2004-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for reducing the effect of noise while reading data in series from memory
US20140281564A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Method of authenticating access to memory device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268632B2 (en) * 2010-09-24 2016-02-23 Rambus Inc. Memory device with ECC history table
US9612279B2 (en) * 2013-02-26 2017-04-04 Infineon Technologies Ag System and method for determining operational robustness of a system on a chip
JP5867495B2 (ja) * 2013-12-20 2016-02-24 株式会社デンソー 電子制御装置
US9983930B2 (en) * 2016-07-28 2018-05-29 Qualcomm Incorporated Systems and methods for implementing error correcting code regions in a memory
US20190243566A1 (en) * 2018-02-05 2019-08-08 Infineon Technologies Ag Memory controller, memory system, and method of using a memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6717874B1 (en) * 2002-08-14 2004-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for reducing the effect of noise while reading data in series from memory
US20140281564A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Method of authenticating access to memory device

Also Published As

Publication number Publication date
US11436162B2 (en) 2022-09-06
US20200379924A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
US10576990B2 (en) Method and device for handling safety critical errors
US9207661B2 (en) Dual core architecture of a control module of an engine
US6502019B1 (en) Electronic digital device employing fault detection
US11288145B2 (en) Workload repetition redundancy
US10078565B1 (en) Error recovery for redundant processing circuits
US20160283314A1 (en) Multi-Channel Network-on-a-Chip
US8499193B2 (en) Integrated dissimilar high integrity processing
US9372774B2 (en) Redundant computing architecture
DE102019129275A1 (de) Verfahren, Schaltung und integrierte Schaltung zum Transferieren von Daten und eines Datenprüffeldes
ITMI20082068A1 (it) Sistema elettronico per il rilevamento di un guasto
Kohn et al. Architectural concepts for fail-operational automotive systems
US8527714B2 (en) Secure avionics equipment and associated method of making secure
US11334451B2 (en) Method and apparatus for redundant data processing in which there is no checking for determining whether respective transformations are linked to a correct processor core
US20210146939A1 (en) Device and method for controlling a vehicle module
US20180293129A1 (en) Safe Execution in Place (XIP) From Flash Memory
Munir Safety Assessment and Design of Dependable Cybercars: For today and the future
CN108108262B (zh) 具有检查所选择的存储器访问的硬件检查单元的集成电路
KR101295770B1 (ko) 안전 무결성 확보를 위한 열차제어 시스템
US20060218432A1 (en) Method for the recognition and/or correction of memory access error electronic circuit arrangement for carrying out said method
US10467889B2 (en) Alarm handling circuitry and method of handling an alarm
CN110140112B (zh) 锁步系统的周期性非侵入性诊断
IT201900007398A1 (it) Procedimento di sicurezza funzionale, system-on-chip, dispositivo e veicolo corrispondenti
US20100229077A1 (en) Information processing apparatus and error detection method
Hayek et al. Safety chips in light of the standard IEC 61508: Survey and analysis
KR20080033393A (ko) 적어도 부분적으로 안전-결정적 프로세스들을 제어 또는조정하기 위한 마이크로프로세서 시스템