• Non ci sono risultati.

1 Introduzione al progetto SPES…

5.1 Il VMEbus

Il VMEbus è un bus standard per computer orientati ad applicazioni di controllo. Il termine VME è acronimo di Versa Module Eurocard ed è stato coniato per la prima volta nel 1981 da un consorzio delle compagnie Motorola, Mostek e Signetics. Il termine bus indica genericamente una tecnologia di interfacciamento di dispositivi elettronici, da cui il nome VMEbus.

Un computer basato su standard VME [vedi foto] si presenta come un cestello (crate) dove si possono installare da 1 a 21 moduli che si connettono attraverso un circuito stampato (backplane) dove sono montati dei connettori a 96 poli.

Figura 5.1 – Crate VME a 21 slot

Ogni modulo è costituito da una scheda elettronica che può avere la funzione di master o di slave.

Una scheda è di tipo master se è in grado di assumere il controllo del bus VME e quindi di gestire il trasferimento di un dato da (o verso) un’ altra scheda del sistema.

La scheda che va installata nella posizione più a sinistra del backplane (slot 1) ha una funzione particolare ed è detta “System Controller”.

Questo modulo ha un duplice compito:

- Bus Arbiter: riceve le richieste di accesso al controllo del bus (Bus Request) da parte di potenziali master e concede tale accesso (Bus Grant) non appena è completato il ciclo di bus corrente.

- Gestisce le richieste di Interruzione del flusso di elaborazione corrente (Interrupt Request) da parte di moduli che richiedono il servizio di eventi hardware.

Il VME è un sistema che supporta il multiprocessing: ciò significa che diverse schede con capacità di “intelligenza locale” possono essere installate sullo stesso backplane e trasferire dati sul bus senza interferire con l’attività di elaborazione del System Controller (se non per chiedere la mastership temporanea del bus). Il protocollo di arbitraggio del bus è completamente hardware e pertanto è molto veloce: il criterio di priorità, nel caso in cui due moduli chiedano contemporaneamente di assumere il controllo del bus, è determinato dalla posizione fisica delle schede sul backplane. Infatti, il segnale di Bus Grant generato dal System Controller si propaga lungo il backplane seguendo l’ordine di installazione delle schede (daisy chain): in pratica, se una scheda riceve il segnale Bus Grant senza avere il segnale Bus Request attivo trasmette il Grant alla scheda successiva, altrimenti

assume la mastership del bus attivando il segnale BGACK (Bus Grant Acknowledge) e quindi inizia il traferimento dei dati.

Il VME, nello standard originale, è un bus di tipo asincrono: ciò significa che il ciclo di trasferimento di un dato si adatta automaticamente al tempo di risposta del modulo slave secondo un protocollo di handshake hardware (Address Strobe, Data Transfer Acknowledge).

Le specifiche del VME hanno subito una significativa evoluzione nel corso degli anni pur mantenendo una piena compatibilità con lo standard originale; la larghezza del bus dati, ad esempio, è passata dalla prima versione a 16 bit (sul solo connettore P1) all’attuale che consente trasferimenti a 64 bit (possibili multiplexando dati e indirizzi nella modalita Block Transfer Mode). Le specifiche 2eSST (Two edge Source Synchronous Transfer), introdotte recentemente, prevedono la possibilità di trasferire i dati in modo sincrono usando entrambi i fronti del segnale di Address Strobe. Di conseguenza, la banda passante nominale è aumentata dai 40 Mbytes/sec originali agli attuali 320 Mbytes/sec. [17, 18, 19]

Caratteristiche del VME

Un elenco delle principali caratteristiche del VMEbus è rappresentato nella seguente tabella.

Oggetto Specifiche Note

Architettura Master/Slave Meccanismo di trasferimento Asincrono, con multiplexing opzionale Non c'è una sincronizzazione centrale del clock Range di indirizzamento 16-bit (Short I/O)

24-bit (standard) 32-bit (extended) 64-bit (long) Range di indirizzo selezionabile dinamicamente

Larghezza dei dati 8, 16, 24, 32 o 64 bit Larghezza selezionabile dinamicamente

Trasferimenti di dati non allineati

Supportato Compatibile con la

maggior parte dei microprocessori Rilevamento dell'errore Supportato Utilizzando Berr

(opzionale) Velocità trasferimento

dati

0 - 320 Mbyte/sec

Interrupts 7 livelli Sistema di priorità degli

interrupt con Status/Id Capacità di

multiprocessore

1 - 21 processori Arbitraggio flessibile del bus

Oggetto Specifiche Note

Capacità di diagnostica del sistema

Supportato Utilizzando Sysfail (opzionale)

Standard meccanici Singola altezza, Doppia altezza

160x100 mm eurocard 160x233 mm eurocard connettori DIM 603-2

Standard internazionali Si IEC 821, IEEE 1101,

IEEE 1014 Tabella 5.1 Principali caratteristiche del VME

Tra le caratteristiche principali merita di essere evidenziata la possibilità di gestire fino a 7 livelli di interrupt e di configurare dinamicamente l’ampiezza del bus dati.

Il controllo del trasferimento di dati avviene su 4 sotto-bus, chiamati Data Transfer Bus, Data Transfer Arbitration Bus, Priority Interrupt Bus, e Utility Bus.

Il VME64: un’architettura ibrida per accrescere la larghezza di banda.

I bus per microcomputer solitamente ricadono all'interno di una delle due seguenti categorie: “multiplexed” e “non-multiplexed”. I bus multiplexed condividono lo stesso set di pin per gli indirizzi e per le linee dati: durante la prima parte del ciclo viene trasferito l’indirizzo, mentre i dati vengono trasferiti durante la seconda metà del ciclo. Viceversa, le architetture non-multiplexed godono di un set di pin dedicato ai bit di indirizzo, ed uno ai bit di dati.

Figura 5.2 Multiplexed e non multiplexed buses.

Le specifiche VME64 prevedono l’utilizzo di entrambe le modalità. Per indirizzi e trasferimenti di dati fino a 32 bit, esso utilizza la modalità standard non-multiplexed, mentre il multiplexing è attivato per trasferimenti in block mode (MBLT) ottenendo di fatto una larghezza del bus dati di 64 bit.

Questo può ridurre (per trasferimenti in streaming di blocchi di grandi dimensioni) il rapporto tra cicli di indirizzo e cicli di dati dal 50% a meno dello 0.5%, diminuendo quindi drasticamente l'overhead.

Il Backplane

I moduli VME sono collegati tra loro attraverso un backplane. A seconda che il sistema sia a 3U o 6U il backplane ha una o due file di connettori a 96 poli (J1 e J2). Se il sistema e’ conforme alle specifiche VME64, i connettori J1 e J2 hanno due file di pin laterali addizionali che estendono il numero di pin a 160.

I connettori sono conformi agli standard industriali DIN 41612.

Il backplane del VME può essere lungo fino a 500mm. La massima velocità del bus è limitata di fatto dal carico capacitivo e induttivo delle piste del circuito stampato del backplane e dalle caratteristiche elettriche dei circuiti driver.

Appropriati resistori di terminazione devono essere applicati alle linee del bus per ridurre i disturbi (skew) sulle commutazioni.

Il bus VME è diffuso nelle applicazioni di controllo perchè riesce a coniugare delle buone prestazioni in termini di banda passante con un’ architettura modulare e una notevole robustezza meccanica. [18, 19]