Controllare i flussi dati

Transcript

Controllare i flussi dati
approfondimenti [
comunicazione ]
Controllare i flussi dati
con Serial RapidIO 2.0
I benefici dei canali virtuali
e le tecniche per accelerare
la loro adozione.
di D. MacAdam e R. Bishop
S
erial RapidIO (sRio) è una
tecnologia packet-based ad alte
prestazioni utilizzata in uno spettro
sempre crescente di applicazioni,
comprese le infrastrutture wireless, la
memorizzazione, l’imaging medicale
e gli apparati militari. La forza di sRio
sta nelle sue efficienti dotazioni legate
alle applicazioni e nell’ampiezza della
membership che lo sostiene. Con le
specifiche 2.0, sRio continua a offrire
ai progettisti di sistemi e alle strutture
embedded delle caratteristiche sempre
più allettanti. Con lo standard sRio 2.0
i progettisti di sistemi sono in grado di
scegliere velocità di link tra 1.25 Gb/s e
6.25 Gb/s e porte con ampiezze da 1x a
16x, assicurando un’elevata granularità
che permette di selezionare il tipo di
porta che meglio si adatta alla singola
applicazione. Al di là dei potenziamenti
introdotti a livello fisico con sRio 2.0, è
da segnalare un array di caratteristiche
di più alto livello sviluppate per offrire
un maggior controllo sul flusso del
traffico della struttura di commutazione.
Un maggiore
controllo sul traffico
I Vc (Virtual channel) per esempio
offrono la possibilità di controllare come
i vari tipi di flussi di traffico transitano
attraverso il sistema. I Vc mettono a
disposizione dei progettisti di sistema
la possibilità di controllare il flusso di
pacchetti dividendo il link in canali
separati e assegnando i pacchetti stessi
a un particolare canale. Il primo Vc
110
| marzo 2009 SELEZIONE DI ELETTRONICA
Fig. 1 - I vantaggi dell’allocazione di banda ai Virtual Channel
è il Vc0, ed è un Vc retrocompatibile
messo a disposizione in sRio 2.0 per
operare allo stesso modo di un link
conforme alla versione sRio 1.3. Oltre
a questo, sRio 2.0 supporta fino a
otto altri Vc. I Vc offrono una varietà di
potenziamenti per il controllo del flusso
dati nella struttura. A ciascun Vc può
essere garantita una porzione di banda
del link. Un progettista di sistemi può
disporre del controllo sulle reciproche
interazioni dei vari tipi di traffico e
possono, in effetti, isolarli uno dall’altro
attraverso l’allocazione della banda.
Ai traffici più sensibili alle latenze come lo streaming video - può essere
allocata una porzione dedicata di
banda della struttura di commutazione;
questo consente di assicurare al
consumatore un’esperienza d’uso di
alta qualità grazie a un livello minimo
garantito di prestazioni indipendente
dal traffico presente nella matrice di
commutazione. Per ottimizzare l’utilizzo
del link, sRio 2.0 consente di rendere
disponibile a tutti gli altri Vc qualsiasi
porzione di banda risultante da un
Vc che richiede meno della quota
garantita. In pratica, l’allocazione
della banda è intelligente e questo
assicura simultaneamente sia che
un Vc che richiede più di quanto gli
viene allocato non possa sottrarre
banda a un altro Vc sia che la banda
non rimanga inutilizzata nel caso vi
fossero pacchetti da inviare. La Fig.
1 illustra i vantaggi dell’allocazione
di banda ai Vc. Tre flussi di pacchetti
stanno condividendo un link e sono
allocati in banda in modo tale che il
10% sia dedicato a Vc_A, il 60% a Vc_
B e il 30% a Vc_C. Nella prima parte
della simulazione, solo Vc_A e Vc_
C hanno pacchetti da trasmettere,
quindi le loro bande aumentano al
di là dello loro rispettiva allocazione,
avvantaggiandosi della porzione
inutilizzata allocata a Vc_B. Come
illustrato, Vc_C è in grado di occupare
il 75% della banda di link disponibile
mentre Vc_A ha il rimanente 25%.
sRio 2.0 consente ai Vc di accedere
alla porzione non utilizzata del link
con pacchetti presenti in proporzione
alle loro allocazioni di banda. Nel
progredire della simulazione,
[
Vc_B presenta del traffico da inviare
attraverso il link condiviso. sRio 2.0
consente allo switch di rispondere
rapidamente alle mutate condizioni
di traffico e di cambiare l’uso della
banda per soddisfare le allocazioni
programmate. In questo caso, un
flusso intermittente ma sensibile alle
latenze come Vc_B viene rapidamente
approvvigionato allocandogli il suo
60%. Una volta che i pacchetti da Vc_B
sono stati trasmessi, l’uso del link viene
nuovamente ripartito ai Vc rimanenti in
funzione dei pacchetti da trasmettere.
sRio 2.0 offre un ulteriore livello di
controllo sulla ripartizione del link
assicurando una funzionalità ad
esclusivo appannaggio di Vc0. Vc0
può essere configurato per obbedire
alle allocazioni di banda come tutti
gli altri Vc o può essere configurato
per essere dotato automaticamente
con qualsiasi quantità di banda esso
richieda: la banda rimanente viene
divisa tra gli altri Vc in base ai pacchetti
presenti da trasmettere. Questo
consente al traffico del piano di
controllo trasmesso via Vc0 di operare
in modo completamente indipendente
dal traffico del piano dati e di essere
vincolato solamente alle regole di
priorità in conformità sRio 1.3.
I Vc offrono due modalità di
trasmissione dei pacchetti - Ct
(Continuous transmission) e Rt (Reliable
transmission). La Rt opera solo nelle
precedenti versioni delle specifiche
sRio, dove la trasmissione dei pacchetti
avviene senza perdite grazie al rinvio
degli stessi quando non è stato
possibile riceverli. La Ct è ottimizzata
per le basse latenze relative ai flussi di
traffico che possono gestire la perdita
dei pacchetti evitando le ritrasmissioni.
Vc0 supporta tutte le priorità definite e
opera esclusivamente in modalità Rt.
I Vc più alti (1-8) sono in grado
di operare in modalità CT o RT,
consentendo agli utenti di ottimizzare
il metodo di trasporto per tipi differenti
di dati. Per esempio, mentre il traffico
del piano di controllo può richiedere
le risposte e le consegne garantite
assicurate dalla modalità RT, il traffico
del piano dati (per esempio da una
sorgente audio) può beneficiare della
ridotta latenza della modalità CT,
evitando di soffrire qualora fossero
effettuate delle ritrasmissioni.
comunicazione ]
La sfida dei fornitori
di switch
Una delle sfide legate all’integrazione
di nuove caratteristiche in una specifica
è facilitarne l’integrazione nei sistemi
correnti e in quelli di generazione
successiva. La retro compatibilità è un
pilastro del processo di sviluppo delle
specifiche sRio, ma la promozione
dell’innovazione di uno standard è
altrettanto importante. Gli sviluppatori
di sistemi inizieranno a vedere più
prodotti conformi sRio 2.0 già nel
prossimo futuro. Però, l’ecosistema
non può evolvere tutto in una volta.
I benefici di sRio 2.0 - in particolare
quelli offerti dall’uso dei Vc - sono così
allettanti che gli sviluppatori saranno
ansiosi di beneficiarne. È probabile che
i fornitori di switch saranno tra i primi
ad adottare sRio 2.0. Gli switch sono
la base dell’ecosistema di struttura
approfondimenti
prodotti sRio 1.3 e sRio 2.0. Oltre
a questo molti sistemi rimarranno
probabilmente sul mercato per un
periodo di tempo ancora maggiore,
necessario per consentire ai
sottosistemi sRio 1.3 di comunicare
con i sottosistemi conformi sRio 2.0.
Molti dei benefici di sRio 2.0 possono
essere resi fruibili dai fornitori di switch
indipendentemente dal supporto
offerto dagli endpoint disponibili in
quanto i vantaggi sono focalizzati
sulla struttura di commutazione. I
vantaggi legati ai Vc sono talmente
convincenti che i fornitori che spingono
per una progressiva adozione della
tecnologia può rivelarsi per i progettisti
di sistema estremamente opportuna.
La sfida per i fornitori di switch sarà
pertanto di implementare un supporto
di transizione per le funzionalità Vc
nell’ambito della struttura sRio per i
sistemi che possono essere dominati
da endpoint conformi sRio 1.3. Oltre
a questo, i fornitori di switch devono
mettere a disposizione un meccanismo
di transizione semplice, in modo tale
che quando i sistemi evolveranno e
integreranno esclusivamente dispositivi
sRio 2.0, evolverà anche tutta la
struttura e le sue modalità d’uso dei Vc.
Come sfruttare
i Virtual Channel
in un sistema sRio 1.3
Fig. 2 - Dispositivi sRio 2.0 operanti
in un sistema sRio 1.3
embedded e - in definitiva - validano
le nuove specifiche. Gli endpoint di
elaborazione, come ad esempio i Dsp
e gli Fpga, possono però ritardare nella
produzione di nuovi dispositivi conformi
alle ultime revisioni di una specifica. I
fornitori di switch sono pertanto alle
prese con una serie di problematiche
legate alla produzione di soluzioni di
nuova generazione e - almeno all’inizio da commercializzare in sistemi limitati a
una tecnologia di generazione corrente,
basata su endpoint disponibili.
Con la disponibilità di endpoint
con supporto sRio 2.0 i progettisti
migreranno facendo evolvere i sistemi
esistenti o sviluppandone di nuovi.
Inevitabilmente vi sarà un periodo
protratto di sovrapposizione tra
Gli switch che supportano i Vc devono
prevedere una circuiteria interna
dedicata al routing dei pacchetti Vc
e devono supportare le specifiche
di allocazione di banda di sRio 2.0.
Questi cammini possono essere
sfruttati dai pacchetti conformi sRio 1.3
se lo switch dispone dell’intelligenza
per instradare un pacchetto sRio 1.3
come se fosse un pacchetto sRio 2.0
di un Vc di valore superiore. I fornitori
di switch possono offrire agli utenti
l’abilità di programmare un protocollo
di mappatura per trattare i pacchetti
sRio 1.3 entranti come pacchetti sRio
2.0 in termini di utilizzazione di buffer,
decisioni degli algoritmi di switching,
bilanciamento del carico e allocazione
della banda. Questo può mettere a
disposizione dei progettisti di sistema
la maggior parte dei controlli sulla
struttura definiti dalle specifiche
sRio 2.0, anche se la possibilità di
generare pacchetti di Vc superiori
SELEZIONE DI ELETTRONICA marzo 2009 |
111
approfondimenti [
non è disponibile. Questa capacità
consentirebbe al progettista di dettare
il trattamento dei vari flussi dati nel
sistema come se l’intera soluzione
stesse lavorando con dispositivi sRio
2.0. La Fig. 2 illustra questo concetto.
Benchè i dispositivi siano in grado di
generare solo traffico conforme sRio
1.3, lo switch può essere configurato
per trattare parte del traffico
come se fosse di un Vc superiore,
essenzialmente mappando un
pacchetto sRio 1.3 in un pacchetto sRio
2.0 di un valore Vc programmato. Un
metodo che può essere utilizzato per
comunicare allo switch come trattare un
particolare pacchetto prevede l’utilizzo
di un identificatore di destinazione
esclusivo. Questo potenziamento
permetterebbe allo switch di instradare
il pacchetto all’endpoint corretto
restringendo parallelamente il flusso
in uscita del pacchetto basandosi
sull’allocazione di banda assegnata
al Vc per il quale è mappato. Come
illustrato, attraverso questo tipo di
prestazione, tre differenti endpoint sono
trattati dallo switch come generatori
di Vc_A, Vc_B e Vc_C, mentre il
traffico risultante verso le destinazione
potrebbe simulare flessibilità e
reattività, come riportato nella Fig. 2; il
tutto senza utilizzare endpoint sRio 2.0.
Benché limiti potenzialmente l’uso di
un controllo di flusso transmitter-based,
questa capacità di mappatura Vc
consente al progettista di approssimare
in modo più preciso il flusso di traffico
nel sistema piuttosto che costringere
l’utente ad obbedire alle sole regole di
ordinamento dei pacchetti sRio 1.3.
Un altro elemento chiave dei Vc in sRio
2.0 è l’abilità di operare in modalità Ct,
il che consente ai pacchetti di essere
estratti in favore di una riduzione della
latenza. Qualsiasi sforzo di migrazione
per facilitare l’adozione dei Vc deve
indirizzare questa prestazione cruciale.
A differenza dei dispositivi sRio 2.0, i
dispositivi sRio 1.3 non accetteranno
un pacchetto se lo spazio di buffer
non è disponibile. I fornitori di switch
possono approssimare l’adozione della
modalità Ct sRio 2.0 con endpoint sRio
1.3 offrendo un’opzione di modalità
pseudo-Ct, dove un pacchetto
che deve essere ritrasmesso viene
rimpiazzato con un nuovo pacchetto.
Questa modalità può permettere agli
112
| marzo 2009 SELEZIONE DI ELETTRONICA
comunicazione ]
utenti di un sistema sRio 1.3 di fare leva
su molti dei benefici di latenza dei Vc
funzionanti in modalità Ct.
Comunicazioni tra sistemi
sRio 1.3 e sRio 2.0
Quando i nuovi endpoint sRio 2.0
faranno il loro ingresso sul mercato
sarà necessaRio fornire una soluzione
che possa fare da ponte tra le
due specifiche in modo tale che i
sottosistemi progettati per sRio 2.0
possano sfruttare tutti i loro vantaggi
mantenendo la capacità di comunicare
con i sottosistemi sRio 1.3 di vecchia
generazione. Questa è un’altra area
sottosistemi, ciascuno operante con una
versione differente di sRio, offrendo una
capacità programmabile di traduzione.
Consideriamo un sistema dotato di
una scheda di sistema sRio 1.3 di
vecchia generazione, di una scheda
di sistema sRio 2.0 e di una scheda
switching con capacità di traduzione,
come riportato nella Fig. 3. Lo
switch potrebbe avere una funzione
di traduzione programmabile per
convertire opzionalmente i pacchetti tra
i due sistemi. Questo permetterebbe
ai progettisti di sistemi di crescere con
le nuove specifiche man mano che
vengono rivisitati i sottosistemi, che
vengono introdotti nuovi sottosistemi
o che l’ecosistema sRio 2.0 evolve
per integrare tutti i componenti
necessari. Piuttosto che mappare
semplicemente i pacchetti in un Vc e
cambiare le modalità di gestione di
ciascun pacchetto, questa soluzione
altera l’header del pacchetto entrante,
ricalcola il Crc e genera praticamente
un nuovo pacchetto. Il progettista può
sfruttare questo tipo di soluzione con
un impatto minimo e dei vantaggi
sostanziali.
Accelerare
il successo di sRio 2.0
Fig. 3 - La combinazione di sRio1.3
con il sistema sRio 2.0
dove i fornitori di switch sRio possono
aiutare i progettisti a far migrare i
loro sistemi man mano che l’intero
ecosistema evolve. Una caratteristica
apprezzata sarebbe offrire uno switch
che operi come traduttore tra traffico
sRio 1.3 e traffico Vc sRio 2.0. sRio
offre una traduzione integrata retro
compatibile dei valori Vc in quanto la
porzione dello header che specifica
il valore Vc riutilizza i campi relativi a
priorità e a flussi con richieste critiche.
Benché questo consenta ai dispositivi
sRio 1.3 di trasferire i pacchetti sRio
2.0 che specificano un valore Vc, si
tratta di una traslazione statica che
può non soddisfare le esigenze dei
progettisti di sistemi che sono costretti
a supportare entrambe le versioni di
sRio nello stesso sistema. Uno switch
potrebbe, comunque, operare come
interconnessione intelligente tra due
sRio 2.0 promette di essere una potente
struttura embedded con caratteristiche
robuste capaci di supportare tutte
le modalità di traffico dati. I Virtual
Channel sono i principali componenti
protagonisti di un cambiamento che
riguarderà la capacità dei progettisti di
sistema di definire e controllare il flusso
di dati attraverso le loro strutture. La
sfida per i fornitori di switch è di offrire
ai loro clienti delle potenti soluzioni
sRio 2.0 capaci di fare leva da subito
sulle promettenti caratteristiche dei
Vc, offrendo contemporaneamente man mano che l’ecosistema continua
a crescere - un cammino di evoluzione
verso una soluzione sRio 2.0 completa.
David MacAdam
Staff Architectural Engineer
Robert Bishop
Director Technical Staff
Integrated Devices Technology
www.idt.com