IT201900006633A1 - 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
IT201900006633A1
IT201900006633A1 IT102019000006633A IT201900006633A IT201900006633A1 IT 201900006633 A1 IT201900006633 A1 IT 201900006633A1 IT 102019000006633 A IT102019000006633 A IT 102019000006633A IT 201900006633 A IT201900006633 A IT 201900006633A IT 201900006633 A1 IT201900006633 A1 IT 201900006633A1
Authority
IT
Italy
Prior art keywords
signal
time
circuit
digital
processing unit
Prior art date
Application number
IT102019000006633A
Other languages
English (en)
Inventor
Rolf Nandlinger
Original Assignee
Stmicroelectronics Application Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stmicroelectronics Application Gmbh filed Critical Stmicroelectronics Application Gmbh
Priority to IT102019000006633A priority Critical patent/IT201900006633A1/it
Priority to US16/857,544 priority patent/US11480994B2/en
Priority to EP20171289.0A priority patent/EP3736657B1/en
Priority to CN202010379147.1A priority patent/CN111913412A/zh
Publication of IT201900006633A1 publication Critical patent/IT201900006633A1/it
Priority to US17/933,680 priority patent/US11755062B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/01Modifications for accelerating switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • H04L12/40176Flexible bus arrangements involving redundancy
    • H04L12/40182Flexible bus arrangements involving redundancy by using a plurality of communication lines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25126Synchronize communication based on internal clock of microprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Microcomputers (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 del tempo all’interno dei sistemi di elaborazione, come i microcontrollori.
Sfondo
La Figura 1 rappresenta un tipico sistema elettronico, come il sistema elettronico di un veicolo, comprendente una pluralità di sistemi di elaborazione 10, come sistemi embedded o circuiti integrati, per es., una FPGA (Field Programmable Gate Array), un DSP (Digital Signal Processor) o un microcontrollore (per es., dedicato al mercato automotive).
Per esempio, nella Figura 1 sono rappresentati tre sistemi di elaborazione 101, 102 e 103 connessi attraverso un sistema di comunicazione 20 adatto. Per esempio, il sistema di comunicazione può comprendere un bus di controllo del veicolo, come un bus CAN (Controller Area Network), ed eventualmente un bus multimediale, come un bus MOST (Media Oriented Systems Transport), connesso al bus di controllo del veicolo attraverso un gateway. Tipicamente, i sistemi di elaborazione 10 sono situati in differenti posizioni del veicolo e possono comprendere, per es., una Unità di Controllo del Motore (ECU, “Engine Control Unit”), una Unità di Controllo della Trasmissione (TCU, “Transmission Control Unit”), un Sistema Frenante Antiblocco (ABS, “Anti-lock Braking System”), moduli di controllo della scocca (BCM, “Body Control Module”), e/o un sistema audio multimediale e/o di navigazione.
Le future generazioni di sistemi di elaborazione, in particolare microcontrollori dedicati alle applicazioni automotive, presenteranno un notevole aumento della complessità, dovuto principalmente al numero crescente di funzionalità (come nuovi protocolli, nuove caratteristiche, ecc.) e ai vincoli stringenti per quanto concerne le condizioni operative del sistema (come un consumo di potenza più basso, maggiore velocità e potenza di calcolo, ecc.).
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 come uno qualsiasi dei sistemi di elaborazione 10 della Figura 1.
Nell’esempio considerato, il sistema di elaborazione 10 comprende almeno una unità di elaborazione 102, come un microprocessore, di solito l’Unità di Elaborazione Centrale (CPU, “Central Processing Unit”), programmata attraverso istruzioni software. Di solito, il software eseguito dall’unità di elaborazione 102 è memorizzato in una memoria di programma 104, come una memoria non volatile, come una memoria Flash o una EEPROM. Generalmente, la memoria 104 può essere integrata con l’unità di elaborazione 102 in un singolo circuito integrato, oppure la memoria 104 può essere sotto forma di un circuito integrato separato e può essere connessa all’unità di elaborazione 102, per es., attraverso le piste di una scheda a circuito stampato.
Così, in generale, la memoria 104 contiene il firmware per l’unità di elaborazione 102, in cui il termine firmware comprende sia il software di un microprocessore sia i dati di programmazione di un circuito logico programmabile, come una FPGA.
Nell’esempio considerato, l’unità di elaborazione 102 può avere associate una o più risorse 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 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).
Di conseguenza, il sistema di elaborazione digitale 10 può supportare differenti funzionalità. Per esempio, il comportamento dell’unità di elaborazione 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.
Come menzionato in precedenza, i sistemi di elaborazione 10 possono controllare differenti operazioni del veicolo, in cui i sistemi di elaborazione 10 possono essere situati in differenti posizioni nel veicolo e ciascun sistema di elaborazione 10 può implementare una o più funzioni/operazioni. Molte di queste funzioni/operazioni possono essere eseguite in tempo reale (“real-time”). Per esempio, il controllo del motore è soggetto a leggi termodinamiche che dovrebbero essere bilanciate con lo stato in tempo reale del veicolo. Tipicamente, lo stato in tempo reale del veicolo è monitorato attraverso sensori, che possono essere connessi direttamente al sistema di elaborazione 10 che implementa l’Unità di Controllo del Motore (ECU) o ad altri sistemi di elaborazione 10 del veicolo. Similmente, al fine di controllare/comandare il funzionamento del motore, l’Unità di Controllo del Motore (ECU) deve controllare/comandare uno o più attuatori, per es. al fine di iniettare il carburante, aprire una valvola per lo scarico dei gas, ecc., che possono essere connessi direttamente al sistema di elaborazione 10 che implementa l’Unità di Controllo del Motore (ECU) o ad altri sistemi di elaborazione 10 del veicolo.
Così, in molte applicazioni, l’esecuzione di una prima operazione all’interno di un sistema di elaborazione 10 deve essere sincronizzata con l’esecuzione di una seconda operazione all’interno dello stesso sistema di elaborazione 10 o all’interno di un ulteriore sistema di elaborazione 10.
Sintesi
In considerazione di quanto precede, uno scopo delle varie forme di attuazione della presente descrizione è di fornire soluzioni per generare un riferimento di tempo all’interno di un sistema di elaborazione e per distribuire questo riferimento di tempo a uno o più circuiti del sistema di elaborazione.
Secondo una o più forme di attuazione, uno o più degli scopi precedenti sono raggiunti per mezzo di un sistema di elaborazione avente le caratteristiche esposte specificamente nelle rivendicazioni che seguono. Le forme di attuazione concernono inoltre un relativo circuito integrato, 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. In varie forme di attuazione, il sistema di elaborazione, come un circuito integrato, comprende una unità di elaborazione digitale programmabile in funzione di un firmware memorizzato in una memoria non volatile e una risorsa connessa all’unità di elaborazione digitale tramite un sistema di comunicazione. Per esempio, il sistema di elaborazione può essere un microcontrollore e l’unità di elaborazione digitale può essere un microprocessore del microcontrollore.
In varie forme di attuazione, il sistema di elaborazione comprende inoltre un circuito di riferimento di tempo comprendente un primo circuito contatore digitale configurato per generare, in risposta a un segnale di clock, un segnale di tempo di sistema comprendente una pluralità di bit indicativi di un conteggio di tic di tempo. Per esempio, in varie forme di attuazione, il primo circuito contatore digitale del circuito di riferimento di tempo è configurato per generare il segnale di tempo di sistema aumentando il valore del segnale di tempo di sistema di una data quantità in risposta al segnale di clock. In varie forme di attuazione, questa data quantità può essere programmabile per mezzo dell’unità di elaborazione.
In varie forme di attuazione, il sistema di elaborazione comprende inoltre un circuito di distribuzione della base tempi configurato per generare un segnale di base tempi selezionando un sottoinsieme dei bit del segnale di tempo di sistema. Per esempio, in varie forme di attuazione, il circuito di distribuzione della base tempi è configurato per generare un segnale di base tempi selezionando un primo sottoinsieme di un dato numero di bit del segnale di tempo di sistema quando un segnale di selezione ha un primo valore, e un secondo sottoinsieme del dato numero di bit del segnale di tempo di sistema quando il segnale di selezione ha un secondo valore, per cui la risoluzione di tempo del segnale di base tempi varia in funzione del segnale di selezione.
In varie forme di attuazione, il segnale di base tempi è fornito alla risorsa. In questo caso, la risorsa può essere configurata per rilevare un dato evento, memorizzare il segnale di base tempi in un registro in risposta all’evento, e segnalare l’evento all’unità di elaborazione digitale. Di conseguenza, l’unità di elaborazione digitale può leggere, in risposta all’evento che è stato segnalato dalla risorsa, tramite il sistema di comunicazione il segnale di base tempi dal registro.
Per esempio, la risorsa può essere un convertitore analogico/digitale e l’evento può corrispondere al completamento di una conversione da analogico a digitale, e/o la risorsa può essere una interfaccia di comunicazione e l’evento può corrispondere alla ricezione di dati tramite l’interfaccia di comunicazione.
In varie forme di attuazione, il circuito di riferimento di tempo può anche comprendere circuiti ulteriori.
Per esempio, in varie forme di attuazione, il circuito di riferimento di tempo comprende un circuito timer esteso comprendente un secondo circuito contatore digitale configurato per generare, in risposta al segnale di clock o a un segnale di innesco (“trigger”) generato in funzione del segnale di clock, un segnale di tempo di sistema esteso comprendente un numero di bit che è maggiore del numero di bit del segnale di tempo di sistema, in cui il segnale di tempo di sistema esteso è leggibile per mezzo dell’unità di elaborazione digitale.
In varie forme di attuazione, il circuito di riferimento di tempo comprende un circuito contatore di tempo operativo comprendente una pluralità di terzi circuiti contatori digitali configurato per generare, in risposta al segnale di clock o a un segnale di trigger generato in funzione del segnale di clock, rispettivi valori di conteggio, in cui ciascuno della pluralità di terzi circuiti contatori digitali può essere resettato, avviato e arrestato dall’unità di elaborazione digitale.
Infine, in varie forme di attuazione, il circuito di riferimento di tempo può comprendere un circuito generatore di trigger comprendente uno o più quarti circuiti contatori digitali configurati per generare, in risposta al segnale di clock o a un segnale di trigger generato in funzione del segnale di clock, almeno un segnale di trigger.
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 tipico sistema elettronico;
- la Figura 2 rappresenta un tipico sistema di elaborazione del sistema elettronico della Figura 1;
- la Figura 3 rappresenta una forma di attuazione di un sistema di elaborazione comprendente un circuito di riferimento di timer configurato per generare un segnale di tempo di sistema e un circuito configurato per usare il segnale di tempo di sistema;
- la Figura 4 rappresenta una forma di attuazione del circuito di riferimento di timer della Figura 3, in cui il circuito di riferimento di timer genera tramite un circuito contatore un segnale di tempo di riferimento globale e tramite un circuito di distribuzione della base tempi una pluralità di segnali di tempo di riferimento aggiuntivi;
- la Figura 5 rappresenta una forma di attuazione del circuito contatore della Figura 4;
- le Figure 6A e 6B rappresentano forme di attuazione di come una unità di elaborazione del sistema di elaborazione può ottenere il segnale di tempo di riferimento globale o uno dei segnali di tempo di riferimento aggiuntivi;
- le Figure 7 e 8 rappresentano forme di attuazione di uno o più circuiti che usano i segnali di tempo di riferimento aggiuntivi al fine di memorizzare una marcatura temporale (“time stamp”) direttamente a un livello hardware in risposta a dati eventi;
- la Figura 9 rappresenta una forma di attuazione del circuito di distribuzione della base tempi della Figura 4;
- la Figura 10 rappresenta una forma di attuazione ulteriore del circuito di riferimento di timer della Figura 3 comprendente anche un circuito timer esteso, un circuito contatore di tempo operativo e un circuito generatore di trigger;
- la Figura 11 rappresenta una forma di attuazione di un circuito generatore di trigger che genera un segnale di trigger atto ad attivare il circuito timer esteso, il circuito contatore di tempo operativo e il circuito generatore di trigger della Figura 10;
- la Figura 12 rappresenta una forma di attuazione del circuito timer esteso della Figura 10;
- la Figura 13 rappresenta una forma di attuazione del funzionamento del circuito timer esteso della Figura 12;
- le Figure 14, 15, 16 e 17 rappresentano una forma di attuazione del circuito generatore di trigger della Figura 10;
- la Figura 18 rappresenta una forma di attuazione del circuito contatore di tempo operativo della Figura 10;
- la Figura 19 rappresenta una forma di attuazione del funzionamento del circuito contatore di tempo operativo della Figura 18; e
- la Figura 20 rappresenta una forma di attuazione della trasmissione dei segnali di tempo di riferimento aggiuntivi della Figura 4 a uno o più circuiti del sistema di elaborazione.
Descrizione Dettagliata
Nella descrizione che segue, sono illustrati numerosi dettagli specifici, allo scopo di fornire una comprensione approfondita delle forme di attuazione. Le forme di attuazione possono essere attuate senza uno o più dei dettagli specifici o con altri procedimenti, componenti, materiali, ecc. In altri casi, operazioni, materiali o strutture ben note non sono illustrate o descritte in dettaglio 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” che compaiono in vari punti della presente descrizione non fanno necessariamente riferimento tutte alla stessa forma di attuazione. Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in un modo adeguato qualsiasi in una o più forme di attuazione.
I riferimenti usati qui sono forniti semplicemente per convenienza e quindi non definiscono l’ambito di protezione o l’ambito delle forme di attuazione.
Nelle Figure da 3 a 20 che seguono, le parti, gli elementi o i componenti che sono già stati descritti con riferimento alle Figure 1 e 2 sono indicati con gli stessi riferimenti usati precedentemente in tali Figure; la descrizione di tali elementi descritti precedentemente non sarà ripetuta in seguito al fine di non rendere troppo pesante la presente descrizione dettagliata.
Come descritto in precedenza con riferimento alle Figure 1 e 2, in molte applicazioni, l’esecuzione di una prima operazione all’interno di un sistema di elaborazione 10 deve essere sincronizzata con l’esecuzione di una seconda operazione all’interno dello stesso sistema di elaborazione 10 o all’interno di un ulteriore sistema di elaborazione 10.
Per esempio, in molte applicazioni, lo scambio di dati/messaggi con una o più delle risorse 106 del sistema di elaborazione 10, che possono comprendere per es. informazioni come dati di stato, dati di sensore, comandi di attuatore, ecc., dovrebbe essere collegato a qualche genere di riferimento di tempo/marcatura temporale. Per una correlazione temporale di queste funzioni/operazioni, è richiesta così una base tempi comune. Per esempio, l’approccio tradizionale a questo riguardo consiste nell’implementare qualche riferimento di tempo all’interno di ciascuno dei sistemi di elaborazione 10 configurati per eseguire operazioni sincronizzate, in cui il circuito di riferimento di tempo fornisce un tempo di sistema globale al rispettivo sistema di elaborazione 10. Per esempio, questo circuito di riferimento di tempo interno può essere implementato con un circuito timer o un clock in tempo reale (“real-time-clock”).
Per esempio, un sistema di elaborazione 10 può acquisire dati di sensore da un sensore tramite un convertitore analogico/digitale, ADC (si veda anche il blocco AD nella Figura 2). Tipicamente, a questo scopo, l’ADC è configurato per generare un’interruzione (“interrupt”) per l’unità di elaborazione 102 quando la conversione A/D è completata. In risposta a questo interrupt, l’unità di elaborazione 102, come un microprocessore programmato tramite istruzioni software, può leggere il campione digitale fornito dall’ADC e può anche leggere il tempo di sistema globale dal circuito di riferimento, associando con ciò un tempo di campionamento/marcatura temporale al campione digitale per i dati di sensore. Interrupt simili che indicano dati eventi, che dovrebbero quindi essere associati a una data marcatura temporale, possono anche essere generati da altre risorse 106 del sistema di elaborazione 10, come una interfaccia di comunicazione che genera un interrupt alla ricezione di un messaggio (come un messaggio di stato o un comando di attuazione), un circuito timer, ecc.
L’assegnazione di una marcatura temporale, cioè l’acquisizione del tempo di sistema globale e l’associazione di questo tempo a un dato evento, può così essere effettuata dall’unità di elaborazione 102, per es. tramite istruzioni software, per es. per mezzo di un sistema operativo installato sull’unità di elaborazione 102. Tuttavia, tali marcature temporali generate in software associate a dati eventi/interrupt segnalati da una o più delle risorse 106 possono avere soltanto un’accuratezza approssimativa in relazione all’istante di tempo in cui è stato ricevuto o generato l’evento/interrupt, per es. perché è necessario che siano trasferite dapprima attraverso vari strati di software prima che sia aggiunta una marcatura temporale software. Questo ritardo può così avere un impatto negativo sul comportamento in tempo reale del sistema complessivo e perciò il ritardo e la variazione sul ritardo dovrebbero essere i più piccoli possibile.
La Figura 3 rappresenta una forma di attuazione di un sistema di elaborazione 10a secondo la presente descrizione.
Nella forma di attuazione considerata, il sistema di elaborazione 10a comprende un circuito di riferimento di tempo 122 configurato per generare un segnale di riferimento di tempo GST, che è fornito a una pluralità di circuiti 110 del sistema di elaborazione 10a. Generalmente, il circuito 110 può essere un qualsiasi circuito del sistema di elaborazione 10a che richiede un tempo di riferimento. Per esempio, si può fare riferimento alla descrizione del sistema di elaborazione 10 rappresentato nella Figura 2. Per esempio, il circuito 110 può essere una unità di elaborazione 102 o una delle risorse 106 rappresentate nella Figura 2. Preferibilmente, il circuito di riferimento di tempo 122 e il circuito (i circuiti) 110 è integrato (sono integrati) nello stesso circuito integrato.
Specificamente, nella forma di attuazione considerata, il circuito di riferimento di tempo 122 è configurato per generare il segnale GST in risposta a un segnale di clock CLK fornito da un circuito oscillatore 120. Generalmente, il circuito oscillatore 120 può essere integrato nel circuito integrato del sistema di elaborazione 10a o può essere connesso almeno in parte a un pin del circuito integrato del sistema di elaborazione 10a. Per esempio, in varie forme di attuazione, il circuito oscillatore 120 può essere implementato con un oscillatore di riferimento esterno e un anello ad aggancio di fase (PLL, “Phase-Locked Loop”) interno.
Così, generalmente, il circuito di riferimento di tempo 122 riceve in ingresso un segnale di clock CLK e genera il segnale di riferimento di tempo GST. Specificamente, in varie forme di attuazione, il segnale di riferimento di tempo GST non è un mero segnale di trigger binario ma corrisponde a un segnale dati che ha una pluralità di bit, in cui il valore del segnale di riferimento di tempo GST rappresenta un tempo di sistema.
Per esempio, il segnale di riferimento di tempo GST può avere 32 o 64 bit.
Specificamente, in varie forme di attuazione, il circuito 122 è configurato per aumentare il segnale di riferimento di tempo GST in risposta al segnale di clock CLK, in modo tale che il segnale di riferimento di tempo GST corrisponda al numero di “tic” che sono trascorsi da una data data di partenza, di solito chiamata epoca. Generalmente, l’epoca può essere una data fissata, per es.
1° gennaio 1970 00:00:00 UT simile al tempo dei sistemi Unix o 1° gennaio 1601 00:00:00 UT simile al tempo dei sistemi basati su Windows, oppure variabile, per es. a partire dall’accensione del sistema di elaborazione 10a.
Per esempio, si può fare riferimento alla pagina Web https://en.wikipedia.org/wiki/System_time per possibili schemi di codifica di un tempo del sistema, che possono anche essere applicati al segnale di riferimento di tempo GST.
Di conseguenza, da un punto di vista di un circuito, ciascun tic determinato in funzione del segnale di clock CLK corrisponde a un dato periodo/tempo, come 100 ns o 1 ms, e il valore (di conteggio) del segnale GST può essere usato, per es., per innescare date operazioni all’interno dei circuiti 110. Inoltre, sincronizzando il valore del segnale GST tra sistemi di elaborazione 10a plurali (per es., usando un’interfaccia IF rappresentata nella Figura 2 e il sistema di comunicazione 20 rappresentato nella Figura 1) e usando la stessa risoluzione di tempo per i tic nei vari sistemi di elaborazione 10a, il funzionamento di questi sistemi di elaborazione 10a può essere sincronizzato.
Come menzionato in precedenza, il segnale GST è fornito a una pluralità di circuiti 110 del sistema di elaborazione 10a. Specificamente, in varie forme di attuazione il segnale GST può essere fornito con una risoluzione ridotta ai circuiti 110.
Per esempio, la Figura 4 rappresenta una forma di attuazione di un tale circuito di riferimento di tempo 122.
Specificamente, come descritto in precedenza, il circuito di riferimento di tempo 122 è configurato per aumentare un valore di conteggio. Per esempio, nella Figura 4 è rappresentato schematicamente un circuito contatore 124, configurato per aumentare il segnale GST in risposta al segnale di clock CLK.
Per esempio, la Figura 5 rappresenta una possibile forma di attuazione del circuito contatore 124.
Nella forma di attuazione considerata, il circuito contatore 124 comprende un circuito contatore digitale 1242 configurato per aumentare il valore del segnale GST di una data quantità INC in risposta a un segnale di clock NSC_CLK, per es. a ciascun fronte di salita o di discesa del segnale di clock NSC_CLK il circuito contatore digitale 1242 aumenta il valore del valore di conteggio (segnale GST) per il valore INC. Per esempio, nella forma di attuazione considerata, il circuito contatore digitale 1242 comprende:
- un registro 1248 configurato per memorizzare il valore di conteggio (segnale GST); e
- un circuito sommatore digitale 1246 configurato per sommare il valore di conteggio (segnale GST) fornito dal registro 1248 e il segnale INC, in cui il risultato è memorizzato di nuovo nel registro 1248 in risposta al segnale di clock NSC_CLK.
In varie forme di attuazione, il segnale INC è programmabile e può essere memorizzato a questo scopo in un registro 1244. In varie forme di attuazione, il contenuto del registro 1244 è programmabile, per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software. Per esempio, in varie forme di attuazione, il valore del segnale INC è determinato in funzione della frequenza del segnale di clock NSC_CLK al fine di implementare un contatore di nanosecondi 124. Per esempio, a questo scopo, il segnale GST può avere 64 bit e, per i segnali di clock usuali (per es., in una gamma tra 10 MHz e 100 MHz), il segnale INC può avere soltanto 16 bit.
In varie forme di attuazione, il contenuto del registro 1248, cioè il segnale GST, può essere leggibile dall’unità di elaborazione 102, per es. tramite istruzioni software. Inoltre, anche il contenuto del registro 1248 può essere scrivibile/programmabile, per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software. Per esempio, in questo modo, l’unità di elaborazione 102 può impostare un valore iniziale del registro 1248/segnale GST. In effetti, dopo l’avvio, il segnale GST indica sostanzialmente il tempo trascorso da quando il sistema di elaborazione 10a è stato acceso. Per contro, il fatto di sovrascrivere il contenuto del registro 1248 può sincronizzare il segnale GST rispetto a un’epoca/data di partenza e/o con altri sistemi di elaborazione 10.
Come menzionato in precedenza, in varie forme di attuazione, il registro può memorizzare 64 bit. Tuttavia, spesso l’unità di elaborazione 102 può supportare soltanto accessi di lettura e scrittura a 32 bit. In questo caso, è necessario che l’unità di elaborazione 102 esegua due accessi di lettura o scrittura al fine di leggere o scrivere il contenuto del registro 1248. Tuttavia, nel frattempo il contenuto del registro 1248 può essere già cambiato.
Di conseguenza, in varie forme di attuazione, il circuito contatore 124 può comprendere un ulteriore registro o latch 1250 configurato per memorizzare almeno parte del contenuto del registro 1248 quando è effettuato un accesso in lettura o scrittura al segnale GST. Per esempio, una volta che l’unità di elaborazione 102 richiede un accesso in lettura ai 32 bit più alti o più bassi del segnale GST (come indicato schematicamente da un segnale RW), il registro o latch 1250 può memorizzare il contenuto di tutti i bit del segnale GST o soltanto i rispettivi 32 bit più bassi o più alti del segnale GST attualmente non letti. In seguito, quando l’unità di elaborazione 102 richiede un accesso in lettura ai 32 bit più bassi o più alti rimanenti del segnale GST, i rispettivi bit possono essere letti dal registro o latch 1250.
Generalmente, il segnale di clock NSC_CLK può corrispondere direttamente al segnale di clock CLK rappresentato nella Figura 4. Per contro, nella forma di attuazione considerata, il circuito contatore 124 supporta una pluralità di segnali di clock CLK1..CLKk. In questo caso, il circuito contatore 124 può comprendere un multiplexer 1240 configurato per selezionare uno dei segnali di clock CLK1..CLKk come segnale di clock NSC_CLK in funzione di un segnale di selezione CLK_SEL. In varie forme di attuazione, anche il segnale CLK_SEL può essere programmabile (per es., il valore del segnale CLK_SEL può essere memorizzato in un registro), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
La Figura 4 rappresenta anche che il circuito di riferimento di tempo 122 può comprendere anche un circuito di distribuzione della base tempi 126. Specificamente, il circuito 126 è configurato per generare una pluralità di segnali di base tempi TBI0..TBIn, in cui ciascuno dei segnali di base tempi TBI0..TBIn è fornito a uno o più circuiti 110 rispettivi del sistema di elaborazione 10a.
In varie forme di attuazione, uno o più dei circuiti 110 possono essere selezionabili, per es. per mezzo di una programmazione adatta dell’unità di elaborazione 102 o per mezzo di dati di configurazione del sistema di elaborazione 10a che sono letti durante l’avvio del sistema di elaborazione 10a.
Per esempio, può essere sempre fornito un segnale di base tempi TBI0 all’unità di elaborazione 102 e/o possono essere forniti uno o più segnali di base tempi TBI1..TBIn a risorse 106 rispettive del sistema di elaborazione 10a.
Di conseguenza, come rappresentato schematicamente nelle Figure 6A e 6B, in varie forme di attuazione, l’unità di elaborazione 102 può essere interfacciata con il circuito di riferimento di tempo 122 tramite due interfacce.
Specificamente, come rappresentato nella Figura 6A, l’unità di elaborazione 102 può essere connessa al circuito di riferimento di tempo 122 tramite un bus di sistema 108, per es. usato per connettere le risorse 106 al sistema di elaborazione 102. Per esempio, un tale bus di sistema può comprendere uno o più bus AMBA (Advanced Microcontroller Bus Architecture), come un bus AMBA ad alte prestazioni AHB (AMBA High-performance Bus). Di conseguenza, in varie forme di attuazione, un microprocessore 102 può leggere il contenuto del registro 1248/segnale GST tramite istruzioni software tradizionali, per es. tramite un sistema operativo OS dell’unità di elaborazione 102, usando l’indirizzo associato al registro 1248/segnale GST.
Per contro, moltissimi processori moderni comprendono anche un contatore di marcatura temporale (TSC, “Time Stamp Counter”) interno, che è compreso per es. nei processori x86 a partire dal processore Pentium. Come rappresentato nella Figura 6B, in questo caso, uno dei segnali di base tempi, per es. TBI0, può corrispondere al segnale del Contatore di Marcatura Temporale TSC.
Sostanzialmente, mentre nella Figura 6A l’istruzione software deve accedere a una risorsa hardware del sistema di elaborazione 10a, che deve essere instradata attraverso il bus di sistema 108, l’accesso nella Figura 6B avviene a una risorsa interna (virtuale) del microprocessore 102.
Come descritto in precedenza, uno o più segnali di base tempi, per es. TBI1..TBIn possono essere forniti a rispettive risorse 106 (per es., programmabili) del sistema di elaborazione 10a. Per esempio, questo è rappresentato schematicamente nella Figura 7, in cui:
- un segnale di base tempi TBI1 è fornito a un convertitore analogico/digitale ADC del sistema di elaborazione 10a; e/o
- un segnale di base tempi TBI2 è fornito a una prima interfaccia di comunicazione IF1 del sistema di elaborazione 10a, come un’interfaccia SPI; e/o
- un segnale di base tempi TBI3 è fornito a una seconda interfaccia di comunicazione IF2 del sistema di elaborazione 10a, come un’interfaccia di bus CAN.
Così, nelle forme di attuazione considerate, una o più delle risorse 106 del sistema di elaborazione 10a ricevono direttamente un segnale di base tempi (TBI0..TBIn) indicativo del tempo di sistema globale GST.
Di conseguenza, queste una o più risorse 106 possono memorizzare direttamente il valore del rispettivo segnale di base tempi in risposta a dati eventi, per es. quando è generato un rispettivo interrupt per l’unità di elaborazione 102.
Per esempio, questo è rappresentato schematicamente nella Figura 7, in cui ciascuna (o almeno una) delle risorse 106 che riceve un segnale di base tempi può comprendere un registro rispettivo per memorizzare il valore del rispettivo segnale di base tempi, per es.:
- il convertitore analogico/digitale ADC può comprendere un registro REG1 per memorizzare il contenuto del segnale di base tempi TBI1;
- l’interfaccia IF1 può comprendere un registro REG2 per memorizzare il contenuto del segnale di base tempi TBI2; e
- l’interfaccia IF2 può comprendere un registro REG3 per memorizzare il contenuto del segnale di base tempi TBI3.
In varie forme di attuazione, il sistema di elaborazione 10a è così configurato in modo tale che l’unità di elaborazione 102 possa leggere il contenuto di questi registri (REG1, REG2, REG3). Di conseguenza, in questo modo, la marcatura temporale è memorizzata direttamente a un livello hardware quando è generato l’evento rispettivo, evitando con ciò che l’unità di elaborazione 102 debba ottenere separatamente, per es.
tramite istruzioni software (si vedano anche le Figure 6A e 6B), una marcatura temporale rispettiva.
Per esempio, la Figura 8 rappresenta una possibile forma di attuazione del sistema elettronico di un veicolo 30. Come descritto con riferimento alla Figura 1, in questo caso una pluralità di sistemi di elaborazione 10a, 10b, 10c e 10d sono connessi a un sistema di comunicazione 20, come un bus CAN.
Per esempio, in questa architettura, i blocchi del sistema di elaborazione 10a della Figura 7 possono essere integrati in un circuito integrato, in cui:
- il convertitore analogico/digitale ADC è connesso a un sensore analogico AS; e/o
- l’interfaccia di comunicazione IF1 è connessa a un sensore digitale DS, e/o
- l’interfaccia di comunicazione IF2 è connessa al sistema di comunicazioni 20.
Per esempio, in un tale sistema di elaborazione 10a, il convertitore analogico/digitale ADC può memorizzare il valore del rispettivo segnale di base tempi TBI1 nel registro REG1 quando è stata completata una conversione da analogico a digitale. Opzionalmente, il convertitore analogico/digitale ADC può generare (preferibilmente allo stesso tempo) un interrupt per l’unità di elaborazione 102.
Similmente, l’interfaccia IF1 può memorizzare il valore del segnale di base tempi TBI2 rispettivo nel registro REG2 quando è stata ricevuta una risposta dal sensore digitale DS. Opzionalmente, l’interfaccia IF1 può generare (preferibilmente allo stesso tempo) un interrupt per l’unità di elaborazione 102.
Infine, l’interfaccia IF2 può memorizzare il valore del segnale di base tempi TBI3 rispettivo nel registro REG3 quando un pacchetto di dati è stato ricevuto tramite il sistema di comunicazione 20, per es. da un altro sistema di elaborazione 10 connesso al sistema di comunicazione 20. Opzionalmente, l’interfaccia IF2 può generare (preferibilmente allo stesso tempo) un interrupt per l’unità di elaborazione 102.
Di conseguenza, una volta che l’unità di elaborazione 102 determina un dato evento di una delle risorse 106, per es. tramite un rispettivo interrupt o leggendo periodicamente il contenuto di un rispettivo registro di stato, l’unità di elaborazione 102 può anche leggere (per es., in aggiunta al campione digitale fornito dal convertitore ADC, i dati ricevuti dall’interfaccia IF1 e/o i dati ricevuti dall’interfaccia IF2) il contenuto del rispettivo registro che ha memorizzato il segnale di base tempi quando si è verificato l’evento. Per esempio, come rappresentato nella Figura 7, in varie forme di attuazione, le risorse 106, e in particolare i registri REG1, REG2, REG3, possono essere connesse a questo scopo al bus 108. Di conseguenza, in varie forme di attuazione, l’unità di elaborazione 102 può leggere il contenuto dei registri REG1, REG2, REG3 tramite istruzioni software.
Generalmente, i vari circuiti 110 (unità di elaborazione 102 e/o risorse 106) possono richiedere risoluzioni differenti del segnale di tempo GST. Di conseguenza, come rappresentato nella Figura 4, ciascun segnale di base tempi TBI0..TBIn può avere associato un rispettivo circuito di interfaccia di base tempi 1260..126n configurato per generare il segnale di base tempi TBI0..TBIn rispettivo in funzione del segnale GST.
Per esempio, in varie forme di attuazione, ciascuno dei segnali di base tempi TBI0..TBIn è connesso a una data risorsa 110 del sistema di elaborazione 10a. Così, conoscendo la risoluzione di tempo supportata da una data risorsa 110, ciascuna risorsa 110 può ricevere soltanto un dato numero di bit del segnale di riferimento di tempo GST. Così, l’instradamento dei bit può essere fissato a un livello hardware all’interno di ciascun circuito di interfaccia di base tempi 1260..126n, per es.:
- l’unità di elaborazione 102 può ricevere tutti i 64 bit del segnale GST;
- il convertitore ADC può ricevere 24 bit del segnale GST;
- l’interfaccia IF1 può ricevere 16 bit del segnale GST; e
- l’interfaccia IF2 può ricevere 32 bit del segnale GST.
Per contro, la Figura 9 rappresenta una forma di attuazione di un circuito di interfaccia di base tempi 126i programmabile, che può essere usato per almeno uno dei circuiti di interfaccia di base tempi 1260..126n.
Specificamente, nella forma di attuazione considerata, il circuito di interfaccia di base tempi 126i riceve in ingresso il segnale GST che ha un dato numero di bit N1 (per es., 64 bit) e fornisce in uscita un rispettivo segnale di base tempi TBIi, in cui il segnale di base tempi TBIi ha il numero di bit N2 (per es., 64, 32, 24 o 16 bit) supportato dalla rispettiva risorsa 110 connessa al segnale di base tempi TBIi.
Nella forma di attuazione considerata, il circuito di interfaccia di base tempi 126i comprende inoltre un circuito di selezione 1262, come un multiplexer, configurato per selezionare per il segnale TBIi N2 bit del segnale GST in funzione di un segnale di selezione CSEL. In varie forme di attuazione, il segnale CSEL può essere programmabile (per es., il valore del segnale CSEL può essere memorizzato in un registro), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
Per esempio, in varie forme di attuazione, il segnale CSEL può avere due bit e il circuito di selezione 1262 può essere configurato per usare la seguente mappatura per il segnale TBIi:
In varie forme di attuazione, il circuito di interfaccia di base tempi 126i può anche supportare uno o più segnali di tempo di riferimento ETB0 e ETB1 ulteriori. Per esempio, nella Figura 9 è rappresentato un multiplexer 1260 ulteriore che seleziona come segnale di tempo di riferimento corrente del circuito di interfaccia di base tempi 126i uno dei segnali GST, ETB0 o ETB1 in funzione di un segnale di selezione SSEL, cioè il circuito di selezione 1262 riceve in ingresso il segnale di tempo di riferimento corrente selezionato dal multiplexer 1260. In varie forme di attuazione, il segnale SSEL può essere programmabile (per es., il valore del segnale SSEL può essere memorizzato in un registro), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
Generalmente, nel caso in cui il segnale di tempo di riferimento ulteriore abbia un numero di bit che è minore del numero di bit (N1) del segnale GST, i bit mancanti (per es., i più significativi) possono essere impostati a “0”.
Per esempio, le risorse 106 di un sistema di elaborazione 10a che usano spesso un bus di marcatura temporale esterno possono essere un’interfaccia CAN FD (CAN with Flexible Data-Rate), un convertitore analogico/digitale sigma-delta, un ADC complesso, ecc.
Generalmente, nella misura in cui il segnale di tempo di riferimento ulteriore può avere un tempo di tic differente dal segnale GST, anche la selezione implementata all’interno del circuito di selezione 1262 (in funzione del segnale di selezione CSEL) può cambiare in base al fatto che sia stato selezionato il segnale di tempo di riferimento GST o un segnale di tempo di riferimento (ETB0, ETB1) ulteriore.
In varie forme di attuazione, il circuito di riferimento di tempo 122 può anche implementare funzioni ulteriori.
Per esempio, la Figura 10 rappresenta una forma di attuazione, in cui il circuito di riferimento di tempo 122 può comprendere (in aggiunta al circuito contatore 124 e al circuito di base tempi 126) uno o più dei seguenti circuiti opzionali:
- un circuito timer esteso 128; e/o
- un circuito contatore di tempo operativo 130; e/o - un circuito generatore di trigger 132.
Generalmente, questi circuiti 128, 130 e 132 hanno in comune che non ricevono direttamente il segnale di tempo di riferimento GST, ma sono pilotati tramite un segnale di trigger TRIG generato, per es., dal circuito contatore 124.
Specificamente, in varie forme di attuazione, il segnale di trigger TRIG corrisponde al segnale di clock CLK usato dal circuito contatore 124, per es. il segnale NSC_CLK rappresentato nella Figura 5.
Per contro, la Figura 11 rappresenta una forma di attuazione di un circuito generatore di trigger 134, che può essere compreso nel circuito contatore 124.
Specificamente, nella forma di attuazione considerata, il circuito generatore di trigger 134 implementa un prescaler per il segnale di clock CLK/NSC_CLK usato dal circuito contatore 124. Per esempio, nella forma di attuazione considerata, il circuito generatore di trigger 134 comprende a questo scopo un contatore digitale 1342 che genera un segnale COUNTER_EXP_INT quando il contatore raggiunge un dato valore di riferimento.
Per esempio, in varie forme di attuazione, il contatore 1342 è un contatore indietro (“down-counter”) che genera il segnale COUNTER_EXP_INT quando il valore di conteggio del contatore 1342 raggiunge 0. In questo caso, il contatore 1342 può essere configurato per impostare il valore di conteggio di nuovo a un valore di ricarico COUNTER_RELOAD_VAL. In varie forme di attuazione, il segnale COUNTER_RELOAD_VAL può essere programmabile (per es., il valore del segnale COUNTER_RELOAD_VAL può essere memorizzato in un registro), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
In varie forme di attuazione, il circuito generatore di trigger 134 può essere abilitato selettivamente. Per esempio, nella forma di attuazione considerata, il circuito generatore di trigger 134 può essere abilitato abilitando il contatore 1342 tramite un segnale di abilitazione (“enable”) COUNTER_EN. In varie forme di attuazione, il segnale COUNTER_EN può essere programmabile (per es., il valore del segnale COUNTER_EN può essere memorizzato in un registro), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
Così, il segnale di trigger TRIG può corrispondere al segnale COUNTER_EXP_INT che è sostanzialmente impostato ogni volta che il segnale di clock ha raggiunto un dato numero di cicli di COUNTER_RELOAD_VAL.
In varie forme di attuazione, il circuito generatore di trigger 134 è configurato anche per sincronizzare in un circuito 1340 il segnale di clock CLK/NSC_CLK usato dal circuito contatore 124 con un segnale ausiliario AEVENT indicativo di un dato evento, generando con ciò un segnale AUX_EVENT_SYNCED che è impostato quando il segnale di clock CLK/NSC_CLK è impostato e il segnale ausiliario AEVENT è impostato.
Nella forma di attuazione considerata, il circuito generatore di trigger 134 può così comprendere un multiplexer configurato per selezionare per il segnale di trigger TRIG il segnale AUX_EVENT_SYNCED o il segnale COUNTER_EXP_INT in funzione di un segnale di selezione EVENT_SOURCE_SEL. In varie forme di attuazione, il segnale EVENT_SOURCE_SEL può essere programmabile (per es., il valore del segnale EVENT_SOURCE_SEL può essere memorizzato in un registro), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
Così, nella forma di attuazione considerata, il circuito 124 implementa una Unità di Tempo di Base (BTU, “Base Time Unit”), che comprende sostanzialmente un contatore 1242, come un contatore di nanosecondi (NSC) a 64-bit. Preferibilmente, la granularità di tic di tempo di questo contatore è programmabile tramite il segnale INC e dovrebbe essere impostata in base a un segnale di clock NSC_CLK usato, in modo tale che un singolo periodo di tic sia uguale a un nanosecondo. Per esempio, ipotizzando una frequenza della sorgente di clock di 10 MHz, il gradino di incremento INC dovrebbe essere (10^9/10^5) = 100 o 0x64. Per contro, il generatore di eventi/trigger 134 è configurato per generare un impulso periodico in base a un contatore 1342 (per es., di timeout) programmabile che funziona con il segnale di clock NSC_CLK.
Come menzionato in precedenza, il segnale di trigger TRIG può essere usato dai circuiti opzionali 128, 130 e 132.
Per esempio, la Figura 12 rappresenta una forma di attuazione di un circuito timer esteso 128.
Specificamente, nella forma di attuazione considerata, il circuito timer esteso 128 è implementato con un circuito contatore 128 configurato per generare un segnale di tempo ENTP che ha 80 bit, in cui la sequenza di bit dei 64 bit più bassi segue il formato del Protocollo di Tempo di Rete (NTP, “Network Time Protocol”), che è descritto, per es., in https://en.wikipedia.org/wiki/ Network_Time_Protocol#Timestamps.
Specificamente, anche un tale formato di NTP usa sostanzialmente una prima sequenza di bit 1280b di 32 bit indicativa dei secondi trascorsi a partire dall’epoca del 1° gennaio 1900. Per contro, una seconda sequenza di bit 1280c di 32 bit è indicativa della frazione di secondi. Di conseguenza, il contatore (dei secondi) 1280b a 32 bit avrebbe un trabocco (“overflow”) nell’anno 2036. Per superare questo potenziale overflow, il formato NTPv4 aggiornato usa 64-bit per i secondi e 64-bit per la frazione di secondi. Ma questo intervallo esteso è sostanzialmente inutile per i tipici sistemi di elaborazione 10a, e di conseguenza è aggiunto soltanto un contatore di overflow 1280a a 16 bit aggiuntivo nella forma di attuazione considerata, usando sostanzialmente con ciò un contatore dei secondi a 48 bit (implementazione di IEEE 1588-2008).
In varie forme di attuazione, la risoluzione per la “frazione di secondi” memorizzata è di 1 nanosecondo. Di conseguenza, in questo caso, il contatore 1280c dovrebbe effettuare un “rollover” quando il rispettivo valore di conteggio raggiunge 0x3B9A_C9FF.
In varie forme di attuazione, il circuito timer esteso 128 può essere pilotato tramite il segnale di trigger TRIG o direttamente tramite il segnale di clock CLK/NSC_CLK usato dal circuito contatore 124.
Di conseguenza, in varie forme di attuazione, anche la dimensione del gradino di incremento ExNTP_INC_STEP per il circuito timer esteso 128, in particolare il contatore 1280c, può essere programmabile, per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software. Per esempio, quando il circuito timer esteso 128 usa il segnale di clock CLK/NSC_CLK che ha una frequenza di 100 MHz, il gradino ExNTP_INC_STEP dovrebbe essere impostato a 10. Per contro, quando il circuito timer esteso 128 usa il segnale di trigger TRIG con un valore di prescale COUNTER_RELOAD_VAL di 4 per lo stesso segnale di clock CLK/NSC_CLK (100MHz), la dimensione del gradino ExNTP_INC_STEP dovrebbe essere 40.
In varie forme di attuazione, il valore del circuito timer esteso 128 può essere leggibile e opzionalmente anche scrivibile per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software. Nel caso in cui l’unità di elaborazione 102 abbia meno bit, per es. soltanto 32, l’unità di elaborazione 102 può effettuare accessi consecutivi plurali ai valori dei contatori 1280a, 1280b e 1280c. Così, anche in questo caso può essere usato un registro o latch per memorizzare i bit rimanenti, come descritto con riferimento alla Figura 5 per il circuito contatore 124.
Inoltre, in varie forme di attuazione, il circuito timer esteso 128 può anche supportare un’operazione di sincronizzazione tramite un segnale di sincronizzazione SYNC fornito da un altro circuito timer di NTP 136, come il timer di NTP di un modulo conforme a Ethernet MAC (IEEE 1588-2008) (esterno o interno).
Per esempio, una procedura possibile per sincronizzare il circuito timer esteso 128 è rappresentata nella Figura 13.
Dopo una fase di inizio 1000, l’unità di elaborazione 102 ottiene (per es., dal modulo 136) e memorizza in una fase 1002 i 16 bit (MSB) nel contatore 1280a.
In una prossima fase 1004, l’unità di elaborazione 102 attiva la modalità di sincronizzazione del circuito timer esteso 128, per es. inviando un comando adatto al circuito timer esteso 128. Di conseguenza, il circuito timer esteso 128 memorizzerà il segnale SYNC nei 64 bit più bassi, cioè sovrascriverà il contenuto dei valori di conteggio 1280b e 1280c.
In varie forme di attuazione, l’unità di elaborazione 102 può allora ottenere, in una fase 1006, di nuovo i 16 MSB dal modulo 136 e può verificare, in una fase 1008, se i bit corrispondenti forniti dal modulo 136 sono cambiati, per es. è stato effettuato un overflow.
Nel caso in cui i bit siano cambiati (uscita “N” della fase di verifica 1008), l’unità di elaborazione 102 può ritornare alla fase 1002 per effettuare una nuova operazione di sincronizzazione.
Per contro, nel caso in cui i bit non siano cambiati (uscita “Y” della fase di verifica 1008), la procedura termina in una fase di arresto 1010.
Come menzionato in precedenza, il circuito di riferimento di tempo 122 può anche comprendere un circuito generatore di trigger 132 opzionale. Per esempio, la Figura 14 rappresenta una possibile implementazione del circuito generatore di trigger 132.
Specificamente, nella forma di attuazione considerata, il circuito generatore di trigger 132 riceve in ingresso il segnale di trigger TRIG e genera uno o più segnali di trigger TRIG0..TRIGm.
Per esempio, nella forma di attuazione considerata, il circuito generatore di trigger 132 comprende almeno un sotto-circuito generatore di trigger 1320..132m, in cui ciascun sotto-circuito generatore di trigger è configurato per generare uno o più segnali di trigger TRIG0..TRIGm rispettivi.
Per esempio, la Figura 15 rappresenta una possibile forma di attuazione di un sotto-circuito generatore di trigger 132i generico.
Nella forma di attuazione considerata, il sottocircuito generatore di trigger 132i comprende sostanzialmente un contatore digitale 1322 configurato per incrementare un rispettivo valore di conteggio in risposta al segnale di trigger TRIG e il sotto-circuito generatore di trigger 132i è configurato per impostare uno o più segnali di trigger TRIGi rispettivi in funzione del valore di conteggio del contatore 1322.
In varie forme di attuazione, il contatore 1322 non riceve direttamente il segnale di trigger TRIG, ma il segnale TRIG è fornito a un ulteriore circuito di pre-scale 1320 programmabile e il contatore 1322 è incrementato in risposta al segnale di trigger TRIG sottoposto a pre-scale. La rispettiva descrizione del circuito di pre-scale 1342 (si veda la Figura 11) si applica anche al circuito di prescale 1320.
Di conseguenza, in varie forme di attuazione, ciascun sotto-circuito generatore di trigger 132i può comprendere un rispettivo circuito di pre-scale 1320 e contatore 1322.
Come menzionato in precedenza, l’uno o più segnali di trigger TRIGi di un dato sotto-circuito generatore di trigger 132i sono generati in funzione del valore di conteggio del rispettivo contatore 1322.
Le Figure 16 e 17 rappresentano a questo riguardo due forme di attuazione che possono essere implementate in alternativa o anche in combinazione (per es., usando un rispettivo segnale di selezione di modalità).
Specificamente, la Figura 16 rappresenta una forma di attuazione, in cui il sotto-circuito generatore di trigger 132i è fatto funzionare come un contatore di timeout configurato per generare un segnale RE quando il contatore 1322 ha contato per un dato numero di cicli.
Per esempio, nella forma di attuazione considerata, il contatore 1322 è fatto funzionare come un contatore avanti (“up”) o indietro (“down”) e, quando il contatore 1322 raggiunge un dato valore (per es., 0x0000 0000 o 0xFFFF FFFF per un contatore a 32 bit), il contatore 1322 carica un dato valore di ricarico REL_VAL e genera un segnale di ricarico RE. In varie forme di attuazione, il segnale REL_VAL può essere programmabile (per es., il valore del segnale REL_VAL può essere memorizzato in un registro 1324), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software. Similmente, anche la direzione di conteggio (avanti o indietro) del contatore 1322 può essere programmabile.
Di conseguenza, nella forma di attuazione considerata, il segnale di trigger TRIGi può corrispondere al segnale di ricarico RE. Nella forma di attuazione considerata, il segnale di ricarico RE è memorizzato anche in un registro di stato 1326 del sotto-circuito generatore di trigger 132i.
Per contro, la Figura 17 rappresenta una forma di attuazione, in cui il sotto-circuito generatore di trigger 132i è fatto funzionare come un modulo di confronto.
Specificamente, nella forma di attuazione considerata, il contatore 1322 è di nuovo resettato a un dato valore di partenza (tipicamente 0) e il contatore 1322 è attivato, variando con ciò il rispettivo valore di conteggio. Per esempio, in varie forme di attuazione, il contatore 1322 può essere resettato e avviato tramite l’unità di elaborazione 102, per es. tramite istruzioni software. In varie forme di attuazione, la direzione di conteggio (avanti o indietro) del contatore 1322 può essere programmabile.
Nella forma di attuazione, il valore di conteggio del contatore 1322 è fornito a uno o più comparatori 1330. Per esempio, nella Figura 17 sono rappresentati quattro comparatori 13300..13303. Ciascuno dei comparatori 13300..13303 è configurato per confrontare il valore di conteggio del contatore 1322 con un rispettivo valore di confronto COMP_VAL0..COMP_VAL3. In varie forme di attuazione, i valori di confronto COMP_VAL0..COMP_VAL3 possono essere programmabili (per es., i valori di confronto COMP_VAL0..COMP_VAL3 possono essere memorizzati in rispettivi registri 13280..13283), per es. per mezzo dell’unità di elaborazione 102, per es. tramite istruzioni software.
Di conseguenza, nella forma di attuazione considerata, ciascuno dei comparatori 13300..13303 può generare un rispettivo segnale di trigger TRIGi0..TRIGi3 quando il valore di conteggio del contatore 1322 corrisponde al rispettivo valore di confronto COMP_VAL0..COMP_VAL3. Nella forma di attuazione considerata, i valori dei segnali di trigger TRIGi0..TRIGi3 sono memorizzati anche in rispettivi bit CMP0..CMP3 di un registro di stato 1326 del sottocircuito generatore di trigger 132i.
Generalmente, i segnali di trigger forniti dal sottocircuito generatore di trigger 132i possono così essere usati in vari modi, come:
- semplici indicatori (“flag”) che sono memorizzati in un registro di stato 1326 del sotto-circuito generatore di trigger 132i;
- generare un interrupt per l’unità di elaborazione 102;
- generare segnali di trigger/interrupt per altre risorse 106 del sistema di elaborazione 10a, come fare partire una conversione A/D, ottenere dati di sensore da un sensore digitale, ecc.
In varie forme di attuazione, ciascuno dei sottocircuiti generatori di trigger 132i può anche essere associato a un dato circuito 110 (unità di elaborazione 102 o risorsa 106) del sistema di elaborazione 10a.
In varie forme di attuazione, l’uso del segnale di trigger, come una semplice memorizzazione nel registro di stato 1326 o anche la generazione di un interrupt per l’unità di elaborazione 102 può essere programmabile.
Come menzionato in precedenza, in varie forme di attuazione, il circuito di riferimento di tempo 122 può anche comprendere un circuito contatore di tempo operativo 130. Per esempio, la Figura 18 rappresenta una forma di attuazione del circuito contatore di tempo operativo 130.
Nella forma di attuazione considerata, il circuito contatore di tempo operativo 130 comprende almeno un contatore 13020..1302l, in cui ciascun contatore 13020..1302l è configurato per generare un rispettivo valore di conteggio OTC0..OTCl, che può essere letto (ed eventualmente anche scritto) tramite l’unità di elaborazione 102, per es. tramite istruzioni software. Inoltre, in varie forme di attuazione, ciascuno dei contatori 13020..1302l può essere resettato e/o avviato e/o arrestato dall’unità di elaborazione 102, per es. tramite istruzioni software.
Generalmente, ciascuno dei contatori 13020..1302l può avere sostanzialmente l’architettura del contatore 1242 rappresentata nella Figura 5 (comprendendo anche eventualmente il registro o latch 1250 per migliorare l’accesso in lettura al valore di conteggio). In effetti, anche in questo caso, ciascuno dei contatori 13020..1302l è configurato per aumentare il rispettivo valore di conteggio con un dato rate di incremento, che è programmabile tramite l’unità di elaborazione 102, per es. tramite istruzioni software.
Di conseguenza, rispetto al circuito contatore 124 rappresentato nella Figura 5, ciascuno dei contatori 13020..1302l funziona in risposta al segnale di trigger TRIG e non direttamente al segnale di clock NSC_CLK. Tuttavia, come anche descritto con riferimento al circuito di tempo esteso 128, in varie forme di attuazione anche la sorgente di clock per il contatore 13020..1302l può essere scelta tra il segnale di clock NSC_CLK o il segnale di trigger TRIG. Così, impostando/programmando il rate di incremento in maniera appropriata, anche i contatori 13020..1302l possono essere usati come contatori di nanosecondi (in modo simile al circuito di tempo esteso 128).
Per esempio, i contatori 13020..1302l possono essere usati per monitorare il tempo di funzionamento di una data applicazione eseguita dall’unità di elaborazione 102.
In varie forme di attuazione, i contatori 13020..1302l sono configurati per conservare i rispettivi valori di conteggio e la rispettiva configurazione anche rispetto a un reset funzionale. Per esempio, questo è rappresentato schematicamente nella Figura 19.
Specificamente, in risposta a un reset all’accensione (“power-on reset”) o un reset distruttivo in una fase 2000, l’unità di elaborazione 102 può configurare, in una fase 2004, uno (o più) dei contatori 13020..1302l. Per esempio, l’unità di elaborazione 102 può leggere un dato valore di conteggio iniziale da una memoria non volatile 104 del sistema di elaborazione 10a e può scrivere il valore di conteggio iniziale nel contatore 13020..1302l selezionato.
Di conseguenza, il contatore 13020..1302l selezionato attenderà, in una fase 2006, un nuovo evento di conteggio (come indicato dal segnale di trigger TRIG o dal segnale di clock NSC_CLK). Specificamente, in assenza di un evento di conteggio (uscita “N” della fase 2006), il contatore ritorna alla fase 2006. Per contro, quando è segnalato un evento di conteggio (uscita “Y” della fase 2006), il contatore incrementa, in una fase 2008, il valore di conteggio.
Come rappresentato schematicamente nella Figura 19, in varie forme di attuazione, l’unità di elaborazione 102 può memorizzare periodicamente il valore di conteggio del contatore 13020..1302l selezionato. Per esempio, a questo scopo l’unità di elaborazione 102 può verificare in una fase 2010 se è trascorso un dato intervallo di memorizzazione. Nel caso in cui l’intervallo di memorizzazione non sia trascorso (uscita “N” della fase 2010), la procedura ritorna alla fase 2006. Per contro, nel caso in cui l’intervallo di memorizzazione sia trascorso (uscita “Y” della fase 2010), l’unità di elaborazione 102 può sovrascrivere, in una fase 2012, il valore di conteggio iniziale nella memoria non volatile 104 dell’unità di elaborazione 10a con il valore di conteggio corrente del contatore 13020..1302l selezionato, e la procedura ritorna alla fase 2012.
Di conseguenza, memorizzando il valore di conteggio in una memoria non volatile 104 e riprogrammando il valore di conteggio nel contatore 13020..1302l selezionato, il valore di conteggio può essere conservato anche dopo un reset all’accensione/distruttivo.
Per contro, quando avviene un reset funzionale in una fase 2002, i contatori 13020..1302l possono già conservare i rispettivi valori di conteggio e la rispettiva configurazione. Di conseguenza, in questo caso la fase 2004 può essere omessa, cioè la procedura può procedere direttamente alla fase 2006.
In varie forme di attuazione, uno o più dei segnali di riferimento di tempo (tempo di sistema globale GST e/o i segnali di riferimento di tempo TBI0..TBIn) possono essere trasmessi in un formato codificato.
Per esempio, questo è rappresentato schematicamente nella Figura 20 per i segnali di riferimento di tempo TBI0..TBIn. Specificamente, come descritto con riferimento alla Figura 4, ciascuno dei circuiti di interfaccia di base tempi 1260..126n è configurato per generare un rispettivo segnale di riferimento di tempo TBI0..TBIn, che è fornito a un rispettivo circuito 1100..110n (unità di elaborazione 102 o risorsa 106).
Nella forma di attuazione considerata, i segnali di riferimento TBI0..TBIn non sono trasmessi direttamente al rispettivo circuito 110, ma ciascun circuito di interfaccia di base tempi 1260..126n fornisce il rispettivo segnale di riferimento di tempo TBI0..TBIn a un circuito codificatore 1380..138n, generando con ciò rispettivi segnali di riferimento di tempo codificati. In seguito, ciascun circuito codificatore 1380..138n trasmette il rispettivo segnale di riferimento di tempo codificato tramite un rispettivo canale di comunicazione 1420..142n a un rispettivo circuito decodificatore 1400..140n. Infine, i circuiti decodificatori 1400..140n decodificano il rispettivo segnale di riferimento di tempo codificato ricevuto e forniscono il segnale di riferimento di tempo decodificato al rispettivo circuito 1100..110n.
Per esempio, i circuiti codificatori e decodificatori 1380..138n e 1400..140n possono essere:
- codificatori e decodificatori di codice Gray;
- codificatori e decodificatori con rilevazione ed eventualmente correzione degli errori.
Di conseguenza, le varie soluzioni descritte in precedenza possono avere una o più delle caratteristiche seguenti:
- il circuito contatore 124 può essere usato per implementare un contatore di nanosecondi (si veda, per es., la Figura 5);
- dal circuito 126 può essere generata una pluralità di segnali di tempo di riferimento TBI0..TBIn aggiuntivi, che può essere usata da una o più risorse 106 del sistema di elaborazione 10a al fine di memorizzare direttamente a un livello hardware un valore indicativo del valore di conteggio del circuito contatore 124 quando dati eventi sono rilevati nella rispettiva risorsa 106 (si vedano, per es., le Figure 6B e 7);
- i segnali di tempo di riferimento TBI0..TBIn aggiuntivi possono avere una risoluzione e/o una larghezza programmabili (si veda, per es., la Figura 9);
- i segnali di tempo di riferimento TBI0..TBIn aggiuntivi possono funzionare con un differente segnale di clock (si veda, per es., la Figura 11);
- può essere usato un timer di NTP esteso 128 che fornisce i secondi (e le frazioni di secondi) trascorsi dal 1° gennaio, 1900 (si veda, per es., la Figura 12);
- uno o più contatori di tempo (operazionale) 13020..1302l possono registrare l’esecuzione o il tempo di vita di applicazioni eseguite dall’unità di elaborazione 102 (si vedano, per es., le Figure 18 e 19);
- i circuiti generatori di trigger 1320..132m possono essere usati per generare degli interrupt periodici per l’unità di elaborazione 102 o le risorse 106 (si veda, per es., la Figura 16);
- i circuiti generatori di trigger 1320..132m possono essere usati per generare degli interrupt quando il valore del contatore raggiunge dati valori di confronto (si veda, per es., la Figura 17).
Di conseguenza, le soluzioni qui descritte usano un tempo di sistema globale GST ad alta risoluzione (64 bit), che è fornito a un livello hardware all’unità di elaborazione 102 e/o (con una risoluzione ridotta) a una o più risorse 106 del sistema di elaborazione 10a, che così possono memorizzare una marcatura temporale in risposta a dati eventi. Questa caratteristica permette alla (per es., al sistema operativo della) unità di elaborazione 102 di ottenere marcature temporali accurate basate su hardware invece di marcature temporali approssimative basate su software. In effetti, i valori catturati delle marcature temporali basate su hardware hanno un ritardo molto breve e costante rispetto all’evento che ha innescato la cattura delle marcature temporali. Il momento in cui l’unità di elaborazione 102 elabora i valori di marcature temporali hardware non ha così più alcuna influenza sull’accuratezza delle informazioni delle marcature temporali.
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 (11)

  1. RIVENDICAZIONI 1. Sistema di elaborazione (10a) comprendente: - una unità di elaborazione digitale (102) programmabile in funzione di un firmware memorizzato in una memoria non volatile (104); - una risorsa (106) connessa a detta unità di elaborazione digitale (102) tramite un sistema di comunicazione (108); - un circuito di riferimento di tempo (122) comprendente un primo circuito contatore digitale (124) configurato per generare, in risposta a un segnale di clock (CLK), un segnale di tempo di sistema (GST) comprendente una pluralità di bit indicativi di un conteggio di tic di tempo; in cui detto sistema di elaborazione (10a) comprende un circuito di distribuzione della base tempi (126) configurato per generare un segnale di base tempi (TBI0..TBIn) selezionando un sottoinsieme dei bit di detto segnale di tempo di sistema (GST), in cui detto segnale di base tempi (TBI0..TBIn) è fornito a detta risorsa (106), e in cui detta risorsa (106) è configurata per: - rilevare un dato evento, - memorizzare detto segnale di base tempi (TBI0..TBIn) in un registro (REG1..REG3) in risposta a detto evento, e - segnalare detto evento a detta unità di elaborazione digitale (102); e in cui detta unità di elaborazione digitale (102) è atta a leggere, in risposta a detto evento che è stato segnalato da detta risorsa (106), tramite detto sistema di comunicazione (108) detto segnale di base tempi (TBI0..TBIn) da detto registro (REG1..REG3).
  2. 2. Sistema di elaborazione (10a) secondo la Rivendicazione 1, in cui detta risorsa (106) è selezionata dalla lista di: - una interfaccia di comunicazione (IF), come una interfaccia UART (Universal Asynchronous Receiver/ Transmitter), Bus SPI (Serial Peripheral Interface), I<2>C (Inter-Integrated Circuit), bus CAN (Controller Area Network), o una interfaccia Ethernet o una interfaccia di debug; - un convertitore analogico/digitale (AD) o un convertitore digitale/analogico (DA); - un componente digitale (DC), come un timer hardware, un contatore o un coprocessore crittografico; - un componente analogico (AC), come un comparatore o un sensore, come un sensore di temperatura; e - un componente a segnale misto (MSC) analogico/digitale, come un driver PWM (Pulse-Width Modulation).
  3. 3. Sistema di elaborazione (10a) secondo la Rivendicazione 1 o la Rivendicazione 2, in cui: - detta risorsa (106) è un convertitore analogico/digitale (ADC), e in cui detto evento corrisponde al completamento di una conversione da analogico a digitale; o - detta risorsa (106) è una interfaccia di comunicazione (IF1, IF2), e in cui detto evento corrisponde alla ricezione di dati tramite detta interfaccia di comunicazione (IF1, IF2).
  4. 4. Sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti, in cui detto sistema di elaborazione (10a) è un microcontrollore, e in cui detta unità di elaborazione digitale (102) è un microprocessore di detto microcontrollore.
  5. 5. Sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti, in cui detto primo circuito contatore digitale (124) di detto circuito di riferimento di tempo (122) è configurato per generare detto segnale di tempo di sistema (GST) incrementando il valore di detto segnale di tempo di sistema (GST) di una quantità di dati (INC) in risposta a detto segnale di clock (CLK).
  6. 6. Sistema di elaborazione (10a) secondo la Rivendicazione 5, in cui detta quantità di dati (INC) è programmabile per mezzo di detta unità di elaborazione (102).
  7. 7. Sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti, in cui detto circuito di distribuzione della base tempi (126) è configurato per generare un segnale di base tempi (TBI0..TBIn) selezionando (1262): - un primo sottoinsieme di un dato numero di bit di detto segnale di tempo di sistema (GST) quando un segnale di selezione (CSEL) ha un primo valore; e - un secondo sottoinsieme di detto dato numero di bit di detto segnale di tempo di sistema (GST) quando detto segnale di selezione (CSEL) ha un secondo valore, per cui la risoluzione di tempo di detto segnale di base tempi varia in funzione di detto segnale di selezione (CSEL).
  8. 8. Sistema di elaborazione (10a) secondo una qualsiasi delle rivendicazioni precedenti, comprendente almeno uno tra: - un circuito timer esteso (128) comprendente un secondo circuito contatore digitale (1280a, 1280b, 1280c) configurato per generare, in risposta a detto segnale di clock (CLK) o a un segnale di trigger (TRIG) generato in funzione di detto segnale di clock (CLK), un segnale di tempo di sistema esteso (ENTP) comprendente un numero di bit che è maggiore del numero di bit di detto segnale di tempo di sistema (GST), in cui detto segnale di tempo di sistema esteso (ENTP) è leggibile per mezzo di detta unità di elaborazione digitale (102); e/o - un circuito contatore di tempo operativo (130) comprendente una pluralità di terzi circuiti contatori digitali (13020..1302l) configurati per generare, in risposta a detto segnale di clock (CLK) o a un segnale di trigger (TRIG) generato in funzione di detto segnale di clock (CLK), rispettivi valori di conteggio (OTC0..OTCl), in cui ciascuno di detta pluralità di terzi circuiti contatori digitali (13020..1302l) può essere resettato, avviato e arrestato da detta unità di elaborazione digitale (102); e/o - un circuito generatore di trigger (132) comprendente uno o più quarti circuiti contatori digitali (1322) configurato per generare, in risposta a detto segnale di clock (CLK) o a un segnale di trigger (TRIG) generato in funzione di detto segnale di clock (CLK), almeno un segnale di trigger (TRIG0..TRIGm).
  9. 9. Circuito integrato, come un microcontrollore, comprendente un sistema di elaborazione (10a) secondo una qualsiasi delle Rivendicazioni da 1 a 8.
  10. 10. Dispositivo, come un veicolo, comprendente una pluralità di sistemi di elaborazione (10a) secondo una qualsiasi delle Rivendicazioni da 1 a 8.
  11. 11. Procedimento per operare un sistema di elaborazione (10a) secondo una qualsiasi delle Rivendicazioni da 1 a 8, comprendente: - generare tramite detto circuito di riferimento di tempo (122) detto segnale di tempo di sistema (GST); - generare tramite detto circuito di distribuzione della base tempi (126) detto segnale di base tempi (TBI0..TBIn); - rilevare tramite detta risorsa (106) un dato evento, - in risposta a detto evento, memorizzare detto segnale di base tempi (TBI0..TBIn) in detto registro (REG1..REG3), - segnalare detto evento a detta unità di elaborazione digitale (102); e - leggere tramite detta unità di elaborazione digitale (102) detto segnale di base tempi (TBI0..TBIn) da detto registro (REG1..REG3).
IT102019000006633A 2019-05-08 2019-05-08 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento IT201900006633A1 (it)

Priority Applications (5)

Application Number Priority Date Filing Date Title
IT102019000006633A IT201900006633A1 (it) 2019-05-08 2019-05-08 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US16/857,544 US11480994B2 (en) 2019-05-08 2020-04-24 Processing system, related integrated circuit, device and method
EP20171289.0A EP3736657B1 (en) 2019-05-08 2020-04-24 Processing system, related integrated circuit, device and method
CN202010379147.1A CN111913412A (zh) 2019-05-08 2020-05-07 处理系统、相关集成电路、装置和方法
US17/933,680 US11755062B2 (en) 2019-05-08 2022-09-20 Processing system, related integrated circuit, device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000006633A IT201900006633A1 (it) 2019-05-08 2019-05-08 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Publications (1)

Publication Number Publication Date
IT201900006633A1 true IT201900006633A1 (it) 2020-11-08

Family

ID=67470577

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000006633A IT201900006633A1 (it) 2019-05-08 2019-05-08 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Country Status (4)

Country Link
US (2) US11480994B2 (it)
EP (1) EP3736657B1 (it)
CN (1) CN111913412A (it)
IT (1) IT201900006633A1 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201800005506A1 (it) * 2018-05-18 2019-11-18 Sistema di elaborazione, relativo circuito integrato e procedimento

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130042135A1 (en) * 2011-08-12 2013-02-14 Herbert Lopez-Aguado Controller core time base synchronization
US20150003443A1 (en) * 2012-03-22 2015-01-01 Bayerische Motoren Werke Aktiengesellschaft Gateway, Nodes, and Method for a Vehicle

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2091962A1 (en) * 1992-03-31 1993-10-01 Mark L. Witsaman Clock synchronization system
CN100570577C (zh) * 2001-08-29 2009-12-16 联发科技股份有限公司 高速程序跟踪
SE525930C2 (sv) * 2004-07-23 2005-05-31 Kvaser Consultant Ab Anordning för tidsstämpling av referenshändelser
US7512826B2 (en) * 2005-04-20 2009-03-31 International Business Machines Corporation Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer
DE102006013640A1 (de) * 2006-03-22 2007-09-27 Robert Bosch Gmbh Verfahren und Datenübertragungssystem zur Übergabe von Daten zwischen dem Datenübertragungssystem und einem Host-Prozessor eines Teilnehmers eines Datenübertragungssystems
US7968849B2 (en) * 2006-08-08 2011-06-28 Shimadzu Corporation Positron CT apparatus
DE102010041363A1 (de) * 2010-09-24 2012-03-29 Robert Bosch Gmbh Vorrichtung und Verfahren zur Bereitstellung einer globalen Zeitinformation in ereignisgesteuerter Buskommunikation
US8892933B2 (en) * 2012-04-23 2014-11-18 Analog Devices, Inc. Synchronization of multiple signal converters by transmitting signal conversion data and receiving unique correction values for the respective counters through the same data interface pins

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130042135A1 (en) * 2011-08-12 2013-02-14 Herbert Lopez-Aguado Controller core time base synchronization
US20150003443A1 (en) * 2012-03-22 2015-01-01 Bayerische Motoren Werke Aktiengesellschaft Gateway, Nodes, and Method for a Vehicle

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAUKE WEBERMANN: "CAN Send and Receive with Hardware Timestamping", 8 March 2017 (2017-03-08), pages 04 - 6, XP055657065, Retrieved from the Internet <URL:https://esd.eu/sites/default/files/paper_16_icc_timestamping_hauke_webermann1.pdf> [retrieved on 20200113] *

Also Published As

Publication number Publication date
US11755062B2 (en) 2023-09-12
US20200356134A1 (en) 2020-11-12
US20230013396A1 (en) 2023-01-19
EP3736657A1 (en) 2020-11-11
EP3736657B1 (en) 2022-07-27
US11480994B2 (en) 2022-10-25
CN111913412A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
EP1690184B1 (en) Apparatus and method for time ordering events in a system having multiple time domains
US8179924B2 (en) Timer with network synchronized time base
CN101802746B (zh) 用于信号接收和信号产生的电路装置以及用于运行所述电路装置的方法
IT201900005020A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT201800005506A1 (it) Sistema di elaborazione, relativo circuito integrato e procedimento
US9400734B2 (en) Apparatuses and methods for generating event codes including event source
Cereia et al. A user space EtherCAT master architecture for hard real-time control systems
TWI278636B (en) Integrated circuit, diagnostic device for receiving diagnostic data in integrated circuit and method for generating diagnostic data
IT201900006633A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US20050066062A1 (en) Method and device for determining time in a bus system and corresponding bus system
IT201800002895A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
Beyer et al. Towards the formal verification of lower system layers in automotive systems
US11281514B2 (en) Processing system, related integrated circuit, device and method
Mossige et al. Evaluation of Linux rt-preempt for embedded industrial devices for Automation and Power Technologies-A Case Study
Alanwar et al. Cyclops: PRU programming framework for precise timing applications
Kampmann et al. Agile latency estimation for a real-time service-oriented software architecture
IT202100007475A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US8938649B2 (en) Debug trace stream timestamping using upstream correlation
JP2009205528A (ja) 電子制御装置
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
Li et al. DRA: Ultra-Low Latency Network I/O for TSN Embedded End-Systems
US20210263777A1 (en) Real time sense &amp; control architecture
Popa et al. Lin bus testing software
Alrifaee et al. Agile Latency Estimation for a Real-time Service-oriented Software Architecture
Leteinturier et al. Advanced Gasoline Engine Management Platform for Euro IV & CHN IV Emission Regulation