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