ETLC2B2q - PoliTO

18
ETLC2 - B2 10/05/2007 2007 DDC 1 Page 1 10/05/2007 - 1 ETLC2 - B2 - 2007 DDC Politecnico di Torino Facoltà dell’Informazione Modulo Elettronica delle telecomunicazioni II B Protocolli B2 – Indirizzamento e allocazione » Transazioni » Indirizzamento » Allocazione » Esempio bus PCI 10/05/2007 - 2 ETLC2 - B2 - 2007 DDC Lezione B2 Modello e definizioni per strutture a bus • Indirizzamento Meccanismi di allocazione del canale Bus paralleli e multiplati, strutture miste Trasferimenti a burst, altre varianti Esempi: bus VME e PCI Migrazione verso bus seriali Riferimenti nel testo – Connessioni multipunto 5.4 10/05/2007 - 3 ETLC2 - B2 - 2007 DDC Livelli di protocollo Lezione B2 Lezioni gruppo D (integrità dei segnali) Lezione B1 10/05/2007 - 4 ETLC2 - B2 - 2007 DDC Servizi disponibili dal livello ciclo • Trasferimento di unitá di informazione (byte, ...), • Da una SORGENTE a una DESTINAZIONE Possono essere definiti anche trasferimenti 1-N e N-M (protocolli N-partner) • Cicli di SCRITTURA o di LETTURA • Il servizio consuma energia e tempo Tempo di ciclo t CY , legato a: »parametri del livello elettrico »protocollo di ciclo 10/05/2007 - 5 ETLC2 - B2 - 2007 DDC Sommario degli strati e relativi servizi • Livello elettrico: – Tensioni e correnti sono usate per rappresentare stati logici – Il servizio reso disponibile e’ il trasferimento di “1” e “0” • Livello ciclo: – I bit sono combinati in unità di INFORMAZIONE – Il servizio offerto è il trasferimento di unità di informazione • Livello transazione: – Le unità di informazione assumono un significato (dati, indirizzi, …) • Livello applicazione: – Realizza l’esecuzione di un programma (servizio reso all’utente finale) 10/05/2007 - 6 ETLC2 - B2 - 2007 DDC Definizione di transazione • Sequenza di uno o più cicli, che trasferisce unità di informazione associandovi un significato (Indirizzo, dato, vettore di priorità, ...) • Moduli visibili a livello transazione: MASTER: avvia le operazioni SLAVE: risponde ai comandi del master M S

Transcript of ETLC2B2q - PoliTO

Page 1: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 1

Page 1

10/05/2007 - 1 ETLC2 - B2 - 2007 DDC

Politecnico di TorinoFacoltà dell’Informazione

Modulo

Elettronica delle telecomunicazioni II

B Protocolli

B2 – Indirizzamento e allocazione» Transazioni» Indirizzamento» Allocazione» Esempio bus PCI

10/05/2007 - 2 ETLC2 - B2 - 2007 DDC

Lezione B2

• Modello e definizioni per strutture a bus• Indirizzamento• Meccanismi di allocazione del canale• Bus paralleli e multiplati, strutture miste• Trasferimenti a burst, altre varianti• Esempi: bus VME e PCI• Migrazione verso bus seriali

• Riferimenti nel testo– Connessioni multipunto 5.4

10/05/2007 - 3 ETLC2 - B2 - 2007 DDC

Livelli di protocollo

Lezione B2

Lezioni gruppo D(integrità dei segnali)

Lezione B1

10/05/2007 - 4 ETLC2 - B2 - 2007 DDC

Servizi disponibili dal livello ciclo

• Trasferimento di unitá di informazione (byte, ...),

• Da una SORGENTE a una DESTINAZIONE– Possono essere definiti anche trasferimenti 1-N e N-M

(protocolli N-partner)

• Cicli di SCRITTURA o di LETTURA

• Il servizio consuma energia e tempo– Tempo di ciclo tCY, legato a:

»parametri del livello elettrico»protocollo di ciclo

10/05/2007 - 5 ETLC2 - B2 - 2007 DDC

Sommario degli strati e relativi servizi

• Livello elettrico:– Tensioni e correnti sono usate per rappresentare stati logici– Il servizio reso disponibile e’ il trasferimento di “1” e “0”

• Livello ciclo:– I bit sono combinati in unità di INFORMAZIONE– Il servizio offerto è il trasferimento di unità di informazione

• Livello transazione:– Le unità di informazione assumono un significato

(dati, indirizzi, …)

• Livello applicazione:– Realizza l’esecuzione di un programma

(servizio reso all’utente finale)

10/05/2007 - 6 ETLC2 - B2 - 2007 DDC

Definizione di transazione

• Sequenza di uno o più cicli, che trasferisce unità di informazione associandovi un significato(Indirizzo, dato, vettore di priorità, ...)

• Moduli visibili a livello transazione:MASTER: avvia le operazioniSLAVE: risponde ai comandi del master

M S

Page 2: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 2

Page 2

10/05/2007 - 7 ETLC2 - B2 - 2007 DDC

Protocollo a livello transazione

• Sistemi punto-punto e multipunto (bus)

• Transazione come sequenza di cicli– Allocazione– Indirizzamento– Trasferimento– …..

• Bus paralleli e bus multiplati

• Tecniche per accelerare i trasferimenti

• Migrazione verso bus seriali

10/05/2007 - 8 ETLC2 - B2 - 2007 DDC

Sistemi punto-punto

• I due elementi che scambiano informazione sonogiá definiti

– Operazioni di scrittura o lettura(verso del trasferimento di informazione)

MASTER

SLAVE

(BUS)

A

3

Scrittura: M � S

Lettura: S � M

10/05/2007 - 9 ETLC2 - B2 - 2007 DDC

Sistemi multi-punto (bus)

• Più coppie di moduli convidono lo stesso supportofisico

– Occorre definire/scegliere i partecipanti al trasferimento

MASTER

SLAVE

BUS

A

1

B C Z

2 3 N

10/05/2007 - 10 ETLC2 - B2 - 2007 DDC

Sistemi a bus

• La configurazione puó essere variata aggiungendo o rimuovendo schede

• Sistemi MODULARI APERTI

• Tutte le unità devono seguire lo stesso protocollo– Definizione di protocollo:

insieme di regole che le interfacce devono seguire per unacorretta comunicazione

• Parametri:– numero massimo di schede– velocitá delle transazioni e parallelismo (throughput)– struttura fisica-elettrica (connettore, formato, livelli, ..)

10/05/2007 - 11 ETLC2 - B2 - 2007 DDC

Bus e punto-punto

• Collegamenti punto-punto– Più porte per modulo, supporti fisici separati– Condizioni elettriche ben definite– Richiede instradamento (routing) da un modulo all’altro

• Collegamenti multipunto/bus– Una porta per modulo, unico supporto fisico– Condizioni elettriche variabili– Richiede allocazione e indirizzamento

• Il punto-punto e’ piu’ costoso ma preferibile per– alte velocita’– lunghe distanze

10/05/2007 - 12 ETLC2 - B2 - 2007 DDC

Protocollo a livello transazione

• Presente nei sistemi multipunto (bus).

• Cicli specifici per definire i moduli che si scambianoinformazioni:

selezione dello slave: Indirizzamento

selezione del master: Allocazione(del canale)

– A queste segue il trasferimento vero e propriodell’informazione (dato, istruzione)

ALLOCAZIONE INDIRIZZAMENTO TRASFERIMENTO

Page 3: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 3

Page 3

10/05/2007 - 13 ETLC2 - B2 - 2007 DDC

Sistemi con piú slave

• Lo slave che partecipa al trasferimento vieneselezionato con una operazione di

INDIRIZZAMENTO

1 2 N

MASTER

SLAVE

BUS

A

3

10/05/2007 - 14 ETLC2 - B2 - 2007 DDC

Modi di indirizzamento

• Logico– La selezione dipende da un codice caratteristico dello Slave

» Memorie, banchi di registri

• Geografico– La selezione dipende dalla posizione (slot) del modulo Slave

» Identificazione della configurazione

• Codificato– N bit individuano 2N elementi

» Memorie

• Decodificato– M bit individuano M elementi (codici a singolo 1)

» Selezione diretta di registri, memorie dopo il decoder

10/05/2007 - 15 ETLC2 - B2 - 2007 DDC

Indirizzamento logico

10/05/2007 - 16 ETLC2 - B2 - 2007 DDC

Indirizzamento geografico

10/05/2007 - 17 ETLC2 - B2 - 2007 DDC

A

1

B C Z

2 3 N

MASTER

SLAVE

BUS

Trasferimenti in sistemi multimaster

• In un sistema con piú master e piú slave bisognadecidere tra quali unitá avviene ciascun trasferimento

10/05/2007 - 18 ETLC2 - B2 - 2007 DDC

1: selezione del master

• Il master che avvia la transazione viene selezionatocon una operazione di

ALLOCAZIONE (ARBITRAZIONE)

1

B C Z

2 3 N

MASTER

SLAVE

BUS

A

Page 4: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 4

Page 4

10/05/2007 - 19 ETLC2 - B2 - 2007 DDC

Modello del sistema di allocazione

• Catena request-allocatore-grant– Obiettivo: evitare collisioni

10/05/2007 - 20 ETLC2 - B2 - 2007 DDC

Tecniche di allocazione

• Collisione: accesso contemporaneo alla risorsa– da evitare ! --> meccanismi di allocazione

• Allocazione con token passing– GRANT assegnato a turno (senza valutare REQUEST)

• Allocazione con rivelatore di collisione– GRANT automatico, collisioni, accesso non deterministico

• Allocazione con arbitrazione– Valutazione dei REQUEST– Nessuna collisione– Accesso deterministico

10/05/2007 - 21 ETLC2 - B2 - 2007 DDC

Esempi di allocazione

• Tra persone collisione � tanti parlano assieme

• Riunione (poche persone)– Token passing: diritto a parlare (GRANT) assegnato a turno

» Indipendente da richiesta o meno, può essere rifiutato

• Gruppi “assembleari”– Chi vuole inizia a parlare (senza interrompere) – Collisione possibile; rileva, stop, ritenta (CSMA-CD)

• Gruppo “moderati”– Un ARBITRO centralizzato valuta le richieste– Assegnazione del GRANT con algoritmo (tempo, rango, …)– Nessuna collisione, accesso deterministico

10/05/2007 - 22 ETLC2 - B2 - 2007 DDC

Allocazione con token passing

• Usata nelle reti

• Arbitri con circuiti a riporto– daisy chain– Round robin

10/05/2007 - 23 ETLC2 - B2 - 2007 DDC

Allocazione con arbitrazione

• Usata nei bus paralleli

• Richiede un arbitro– Centralizzato

– Distribuito

10/05/2007 - 24 ETLC2 - B2 - 2007 DDC

Allocazione con collision detection

• CSMA/CD: Carrier Sense Multiple Access - Collision Detection

• Usata in reti (anche wireless)

• Arbitri distribuiti

Page 5: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 5

Page 5

10/05/2007 - 25 ETLC2 - B2 - 2007 DDC

Tecniche di arbitrazione

• FCFS (first Come First Served)– Problema della risoluzione temporale– Necessario altro meccanismo

• Priorità– Problema del blocco da parte di richieste ad alta priorità– Starvation– Necessari meccanismi di Fairness– Combinato con sincronizzazione

10/05/2007 - 26 ETLC2 - B2 - 2007 DDC

Arbitro FCFS

10/05/2007 - 27 ETLC2 - B2 - 2007 DDC

Arbitro a priorità

10/05/2007 - 28 ETLC2 - B2 - 2007 DDC

Starvation

10/05/2007 - 29 ETLC2 - B2 - 2007 DDC

Fairness

Campionamento richieste servizio camp serv camp

10/05/2007 - 30 ETLC2 - B2 - 2007 DDC

Circuiti per arbitri

• Codificatore a priorità (Priority encoder)

• Lineare– Centralizzato– Distribuito

• Codificato– Centralizzato– Distribuito

» Parallelo» Seriale

Page 6: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 6

Page 6

10/05/2007 - 31 ETLC2 - B2 - 2007 DDC

Circuito a priorità lineare

• Rete combinatoria

10/05/2007 - 32 ETLC2 - B2 - 2007 DDC

Circuito a priorità codificato

• Rete combinatoria

10/05/2007 - 33 ETLC2 - B2 - 2007 DDC

Circuiti distribuiti

• Rete combinatoria lineare

• Rete combinatoria codificata

10/05/2007 - 34 ETLC2 - B2 - 2007 DDC

Trasferimento del controllo

• Passaggio del controllo: deve essere sincronizzatocon le operazioni di trasferimento

– …– Fine di transazione con master1– Rilascio del bus da parte del Master1– Acquisizione del controllo da Master2– Inizio transazione con master2– …

• Meccanismo di sincronizzazione (Bus Busy)– Centralizzato– Distribuito

10/05/2007 - 35 ETLC2 - B2 - 2007 DDC

Trasferimento del controllo

10/05/2007 - 36 ETLC2 - B2 - 2007 DDC

A

1

B C Z

2 3 N

MASTER

SLAVE

BUS

2: selezione dello slave

• La seconda operazione è la selezione dello slave chepartecipa al trasferimento (indirizzamento)

Page 7: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 7

Page 7

10/05/2007 - 37 ETLC2 - B2 - 2007 DDC

1

B C Z

2 N

MASTER

SLAVE

BUS

A

3

3: trasferimento

• Uno volta selezionati master e slave il puó aver luogoil trasferimento (come un punto-punto)

10/05/2007 - 38 ETLC2 - B2 - 2007 DDC

Lezione B2

• Transazioni come sequenza di cicli• Modello e definizioni per strutture a bus• Indirizzamento• Meccanismi di allocazione del canale• Bus paralleli e multiplati, strutture miste• Trasferimenti a burst, altre varianti• Esempi: Bus VME, bus PCI• Migrazione verso bus seriali

10/05/2007 - 39 ETLC2 - B2 - 2007 DDC

Prestazioni di un bus

• Quantitá di informazione scambiata in un dato tempo.THROUGHPUT (T)

• T = P x V– P: larghezza del bus (parallelismo, numero di bit/ciclo)– V: velocità (numero di cicli/secondo)

se Tc = durata del ciclo/transazione, V = 1/tc)

• La durata del ciclo tc dipende da:– Parametri del livello elettrico: tTX, tK– Parametri dei moduli: tSU, tH, tWR, tEN, ...– Protocollo (numero di transizioni, SS o asincrono, …)

10/05/2007 - 40 ETLC2 - B2 - 2007 DDC

Bus paralleli

• Ogni segnale utilizza una connessione separata– Catena driver, pin sul connettore, pista, receiver,

terminazione,…

• Parallelismi attuali– dati: 32/64/128 bit– indirizzo: 32/64 bit

• Numero complessivo di pin/linee: >100

• Per ottenere elevata velocità (Tc breve, P alto):– Consumo elevato– Problemi di EMC

10/05/2007 - 41 ETLC2 - B2 - 2007 DDC

Relazione velocitá - consumo

• Alzando la velocità aumenta il consumo– Terminazioni con resistenza più bassa– Driver con RO piú bassa

• Aumentando il parallelismo aumenta il consumo– maggior numero di driver e terminazioni

• Per una data tecnologia, aumentare il throughputagendo su V e P aumenta il consumo

• Bus multiplato:– Minor numero di collegamenti– Minor consumo statico– Stesso consumo dinamico (legato alle transizioni)

10/05/2007 - 42 ETLC2 - B2 - 2007 DDC

Bus multiplati

• Bus convenzionale (parallelo)– indirizzi e dati usano gruppi di fili separati– Driver/receiver, piste sul backplane, piedini dei connettori

sono risorse costose» richiedono spazio» consumano energia

• Conviene ridurre il numero di “connessioni” usando lo stesso canali fisico per informazioni diverse:

bus MULTIPLATI

– Indirizzi, dati, altre informazioni) usano gli stessi fili in tempi diversi.

Page 8: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 8

Page 8

10/05/2007 - 43 ETLC2 - B2 - 2007 DDC

• Parallelo: Gruppi di linee separate per indirizzi e dati

• Multiplato: Indirizzi, dati, altro su un unico set di linee

ADD1 X X X X ADD2INDIRIZZO

CICLO

TRANSAZIONE

CICLO

DATA2DATA1DATI

Bus paralleli e bus multiplati

ADD1 DATA2ADD2DATA1INF

CICLO

TRANSAZIONE

CICLO

10/05/2007 - 44 ETLC2 - B2 - 2007 DDC

Relazione velocitá - consumo

• Alzando la velocità aumenta il consumo– Terminazioni con resistenza più bassa– Driver con RO piú bassa

• Aumentando il parallelismo aumenta il consumo– maggior numero di driver e terminazioni

• Per una data tecnologia, aumentare il throughputagendo su V e P aumenta il consumo

• Bus multiplato:– Minor numero di collegamenti– Minor consumo statico– Stesso consumo dinamico (legato alle transizioni)

10/05/2007 - 45 ETLC2 - B2 - 2007 DDC

Varianti di protocollo

• Tecniche per usare sempre tutte le linee– Multiplex A/D: indirizzamento e trasferimento sono

intrinsecamente sequenziali; a pari tecnologia un bus multiplato non è piú lento di un bus parallelo

– Pipeline tra i vari cicli di transazioni successive

• Combinazione di più cicli per ottimizzare il protocolloa livello di transazione

– Cicli con handshake a due fronti– Trasferimenti a burst– Cicli sincroni a burst entro transazioni asincrone– Cicli source synchronous

10/05/2007 - 46 ETLC2 - B2 - 2007 DDC

• Stessa banda (numero transizioni) per controlli e INF• Minor consumo

INF

STB

ACK

INF

STB

ACK tC

INF1

tCtC

INF2INF1

Handshake a due fronti (DDR)

10/05/2007 - 47 ETLC2 - B2 - 2007 DDC

INF ADD DATA3DATA2DATA1

cicloindirizzo

TRANSAZIONE

ciclodati 1

ciclodati 2

ciclodati N

Trasferimento a burst

• Viene trasferita una sequenza (burst) di dati, inviandosolo l’indirizzo del primo

– Per sequenze lunghe raddoppia la quantitá di informazionescambiata in un determinato tempo

10/05/2007 - 48 ETLC2 - B2 - 2007 DDC

Gestione di trasferimenti a burst

• Occorre un controller per generare l’indirizzo verso la memoria

IND

STB MEMORIA

IND

bus scheda

IND

STB MEMORIA

IND

bus scheda

CONTR.

Page 9: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 9

Page 9

10/05/2007 - 49 ETLC2 - B2 - 2007 DDC

Trasferimento a burst: memorie DDR

• Trasferimento Source Synchronous– DQS (Strobe dati) pilotato dalla memoria (dual edge)– Latenza di 2 cicli di clock

latenza ciclo

10/05/2007 - 50 ETLC2 - B2 - 2007 DDC

Lezione B2

• Transazioni come sequenza di cicli• Modello e definizioni per strutture a bus• Indirizzamento• Meccanismi di allocazione del canale• Bus paralleli e multiplati, strutture miste• Trasferimenti a burst, altre varianti

• Esempi: Bus VME e Bus PCI

• Migrazione verso bus seriali

10/05/2007 - 51 ETLC2 - B2 - 2007 DDC

Esempi/storia di bus industriali

• Prima generazione (8/16 bit- …. 1980)– S100, Multibus I, G96, STD, ....

• Seconda generazione (16/32/64 bit, 1980 … 1995)– VME 8/16/32/64 bit (esempio di evoluzione di un protocollo)

• Uso corrente (in obsolescenza)– PCI

• Nuovi progetti– Connessioni seriali punto-punto– LVDS, CDR, – Esempio: PCI � PCI express

10/05/2007 - 52 ETLC2 - B2 - 2007 DDC

Chi standardizza cosa ?

• Standard “ufficiali”– Emessi da enti internazionali

• Standard “de facto”– Emessi da (consorzi di) industrie

• Processo di definizione di uno standard– Gruppi di lavoro tecnici– Votazioni (1 voto/partecipante o ente)– Loop con revisioni e emissione (de facto)– Passaggio a ente ufficiale– Revisioni (loop)– Votazione (1 voto/paese) ed emissione ufficiale

10/05/2007 - 53 ETLC2 - B2 - 2007 DDC

Preparano e/o emettono standard

• ISO-IEC (JTC1 per Information Technologies)– UNINFO (Torino)– CEI

»…– CEN-ISSN– CENELEC– ANSI– …

• ETSI (Communications)

• IEEE Standard Organization– Technical committees (Pxxx)– http\\:…..

10/05/2007 - 54 ETLC2 - B2 - 2007 DDC

Quale bus ?

Bus paralleli

Da http://www.ni.com/swf/presentation/us/buscomp

Page 10: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 10

Page 10

10/05/2007 - 55 ETLC2 - B2 - 2007 DDC

Esempio di protocollo completo

• VMEbus (standard ISO-IEC 821)– Rev. C.1 nel 1985

• Bus di backplane per uso industriale(sistemi di controllo, gestione impianti, ...)

– Connettore indiretto, schede formato “Europa” (3U e 6U)– Tecnologia standard TTL

• Evoluzioni successive del protocollo– Inizialmente asincrono con cicli singoli– Espansione della larghezza 32 � 64– Protocollo sincrono con trasferimenti a burst

10/05/2007 - 56 ETLC2 - B2 - 2007 DDC

Estensioni a VMEbus

• Limiti al throughput– Iniziale: velocità e parallelismo dei processori– Negli anni 80: struttura di interconnessione (bus)

• Allargamento del data path– Dati da 16 a 32 bit– Dati e indirizzi da 32/64 bit: secondo connettore

• Varianti diprotocollo– protocollo multiplexato (miglio utilizzo delle linee)– data path a 64 bit– trasferimenti a blocchi– trasferimenti a blocchi sincroni (SSBLT)

10/05/2007 - 57 ETLC2 - B2 - 2007 DDC

Dimensioni piastre

http://physweb.bgu.ac.il/COURSES/SignalNoise/vxi_tutorial.pdf

10/05/2007 - 58 ETLC2 - B2 - 2007 DDC

Segnali principali in VMEbus (32)

• A01-A31 indirizzo• AS* strobe indirizzo• D00-D31 dati• WRITE* ciclo di scrittura• DS0*-DS1* strobe dati• DTACK*/BERR* conferma/errore dati

• AM0-AM6 estensione indirizzo• BBSY*, BCLR* gestione arbitro di bus• BRi*, BGiI*/BGiO* (4) richiesta bus e daisy-chain• IRQi* (8) richiesta di interrupt• IACKI*/IACKO* daisy-chain di interrupt• SYSRESET* reset generale

10/05/2007 - 59 ETLC2 - B2 - 2007 DDC

Caretteristiche elettriche

• Livelli TTL• Comandi attivi L• Protocollo asincrono con handshake a 4 transizioni

– Durata del ciclo legata alla velocità di master e slave

• Formato big endian– MSBy a 0x0– Molti processori little endian: MSBy a 0x3– Logica di byte swap al master

• Trasferimenti– Singoli (8/16/32)– A blocchi (256 …2048), 150 ns/word– Interrupt

10/05/2007 - 60 ETLC2 - B2 - 2007 DDC

Arbitration

Page 11: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 11

Page 11

10/05/2007 - 61 ETLC2 - B2 - 2007 DDC

Abitration policy

10/05/2007 - 62 ETLC2 - B2 - 2007 DDC

Addressing

10/05/2007 - 63 ETLC2 - B2 - 2007 DDC

Addressing protocol

10/05/2007 - 64 ETLC2 - B2 - 2007 DDC

Single cycles

10/05/2007 - 65 ETLC2 - B2 - 2007 DDC

VME: cicli base di lettura e di scrittura

A01-31 ADD1 ADD2

LETTURA SCRITTURA

AS*

D00-31 DATA2DATA1

DS0/1*

DTACK*(BERR*)

WRITE*

10/05/2007 - 66 ETLC2 - B2 - 2007 DDC

Byte alignment

Page 12: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 12

Page 12

10/05/2007 - 67 ETLC2 - B2 - 2007 DDC

Block transfer

10/05/2007 - 68 ETLC2 - B2 - 2007 DDC

Block transfer size

• Block transfers must not cross x0..0 boundaries– D32: 256 bytes (address x00)– D64: 2048 bytes (address x000)– Can cross with double AS cycle (go through arbitration)– Avoids too long use by a single master

• Allocated memory (malloc ()) can cross boundaries– If handled by block operations need special DMA controllers– Contiguous buffers with special drivers (cmem_rcc) or

special kernel functions

10/05/2007 - 69 ETLC2 - B2 - 2007 DDC

Error handling

10/05/2007 - 70 ETLC2 - B2 - 2007 DDC

Interrupt

10/05/2007 - 71 ETLC2 - B2 - 2007 DDC

VME64x

10/05/2007 - 72 ETLC2 - B2 - 2007 DDC

Segnali principali in VMEbus (32)

• A01-A31 indirizzo• AS* strobe indirizzo• D00-D31 dati• WRITE* ciclo di scrittura• DS0*-DS1* strobe dati• DTACK*/BERR* conferma/errore dati

• AM0-AM6 estensione indirizzo• BBSY*, BCLR* gestione arbitro di bus• BRi*, BGiI*/BGiO* (4) richiesta bus e daisy-chain• IRQi* (8) richiesta di interrupt• IACKI*/IACKO* daisy-chain di interrupt• SYSRESET* reset generale

Page 13: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 13

Page 13

10/05/2007 - 73 ETLC2 - B2 - 2007 DDC

Segnali

10/05/2007 - 74 ETLC2 - B2 - 2007 DDC

Control space register

10/05/2007 - 75 ETLC2 - B2 - 2007 DDC

Trasferimenti source synchronous

10/05/2007 - 76 ETLC2 - B2 - 2007 DDC

Prestazioni di VME

• Cicli singoli (1 µs/ciclo)– D8: 1MB/s– D16: 2MB/s– D32: 4MB/s

• Burst (VME 64)– D32: 20 … 25 MB/s (max 40)– D64: 40 … 50 MB/s (max 80)

10/05/2007 - 77 ETLC2 - B2 - 2007 DDC

PCI: posizione

• Peripheral Components Interconnect– Bus di livello intermedio per periferici

10/05/2007 - 78 ETLC2 - B2 - 2007 DDC

Scheda e backplane PCI

Page 14: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 14

Page 14

10/05/2007 - 79 ETLC2 - B2 - 2007 DDC

PCI: caratteristiche

• Livello elettrico: – RWS (Reflected Wave Switching)– Lunghezza max 10 cm (tP ≤ 5 ns)

• Ciclo: protocollo cadenzato asincrono– Clock 33/66 MHz– Doppia conferma: ACK = IRDY * TRDY – Indirizzamento geografico per la configurazione iniziale

• Transazione:– Bus Multiplato A/D, Trasferimenti a blocchi– Arbitro centralizzato (in pipeline)

• Sommario: http://www.techfest.com/hardware/bus/pci.htm

10/05/2007 - 80 ETLC2 - B2 - 2007 DDC

Terminologia PCI

• Agent– Qualunque modulo

• Master– Agent che può avviare una transazione

• Initiator– Pilota FRAME, Indirizzi e IRDY

• Target– Risponde alla richiesta di transazione del master– Attiva DEVSEL (locale)– Risponde sul bus con TRDY

10/05/2007 - 81 ETLC2 - B2 - 2007 DDC

PCI: segnali

10/05/2007 - 82 ETLC2 - B2 - 2007 DDC

PCI: segnali di sincronizzazione

• FRAME# – I/O– Signals the start and end of a transaction

• IRDY# – I/O – Assertion by initiator indicates that it is ready to send or

receive data• DEVSEL# – I/O

– Part of PCI’s distributed address decoding» Each target is responsible for decoding the address associated

with each transaction» When a target recognizes its address, it asserts DEVSEL# to

claim the corresponding transaction

• TRDY# – I/O– When the target asserts this signal, it tells the initiator that it

is ready to send or receive data

10/05/2007 - 83 ETLC2 - B2 - 2007 DDC

PCI: segnali

• STOP# – I/O– Used by target to indicate that it needs to terminate the

transaction

• IDSEL – I– Individual device select for configuration– one unique IDSEL line per agent– Allows the system host to configure agents before these

agents know the PCI addresses to which they must respond(solves the “chicken-and-egg” problem)

10/05/2007 - 84 ETLC2 - B2 - 2007 DDC

PCI: segnali indirizzo/dati/controllo

• AD[31:0] – I/O– 32-bit address/data bus– PCI is little endian (lowest numeric index is LSB)

• C/BE#[3:0] – I/O– 4-bit command/byte enable bus– Defines the PCI command during address phase– Indicates byte enable during data phases– Each bit corresponds to a “byte-lane” in AD[31:0]

» C/BE#[0] is the byte enable for AD[7:0]

Page 15: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 15

Page 15

10/05/2007 - 85 ETLC2 - B2 - 2007 DDC

PCI: segnali per arbitrazione

• REQ# – O– Asserted by initiator to request bus ownership– Point-to-point connection to arbiter – each initiator has its

own

• REQ# line

• GNT# – I– Asserted by system arbiter to grant bus ownership to the

initiator

• Point-to-point connection from arbiter – each initiatorhas its own GNT# line

10/05/2007 - 86 ETLC2 - B2 - 2007 DDC

PCI: configurazione iniziale

• Selezione diretta di scheda (geografica)• Segnale

IDSEL (uno per ciascunconnettore)

10/05/2007 - 87 ETLC2 - B2 - 2007 DDC

PCI: configurazione iniziale

10/05/2007 - 88 ETLC2 - B2 - 2007 DDC

Arbitraggio del bus

10/05/2007 - 89 ETLC2 - B2 - 2007 DDC

Ciclo di lettura

10/05/2007 - 90 ETLC2 - B2 - 2007 DDC

Ciclo di lettura

Page 16: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 16

Page 16

10/05/2007 - 91 ETLC2 - B2 - 2007 DDC

Ciclo di scrittura

10/05/2007 - 92 ETLC2 - B2 - 2007 DDC

Ciclo di scrittura

10/05/2007 - 93 ETLC2 - B2 - 2007 DDC

Codici comandi

• Il campo Bus Cmdindica il tipo dioperazione:

– Read– Write– Burst– I/O– Interrupt– ..

Memory Write and Invalidate1111

Memory Read Line 1110

Dual Address Cycle 1101

Memory Read Multiple 1100

Configuration Write 1011

Configuration Read 1010

Reserved 1001

Reserved 1000

Memory Write 0111

Memory Read 0110

Reserved 0101

Reserved 0100

I/O Write 0011

I/O Read 0010

Special Cycle 0001

Interrupt Acknowledge 0000

Command TypesC/BE[3:0]#

10/05/2007 - 94 ETLC2 - B2 - 2007 DDC

Alimentazione 3,3 o 5 V

• Difetto di specifica meccanica !

10/05/2007 - 95 ETLC2 - B2 - 2007 DDC

Segnali 3,3 V (CMOS)

10/05/2007 - 96 ETLC2 - B2 - 2007 DDC

Segnali 5 V (TTL)

Page 17: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 17

Page 17

10/05/2007 - 97 ETLC2 - B2 - 2007 DDC

Comparison 5/3,3 V signalling

10/05/2007 - 98 ETLC2 - B2 - 2007 DDC

Transmission environment

10/05/2007 - 99 ETLC2 - B2 - 2007 DDC

Specifiche per il clock

10/05/2007 - 100 ETLC2 - B2 - 2007 DDC

Specifiche elettriche

• Specifiche elettriche differenziate – 3,3 V: CMOS– 5 V: TTL

• Vincoli stringenti su lunghezze, C, L

• Piste equalizzate con meandri

(min) (max)

10/05/2007 - 101 ETLC2 - B2 - 2007 DDC

Timing budget

• Bus cadenzato a 33 o 66 MHz• Tempo di ciclo minimo pari a un periodo di clock• Specifiche diverse per 33 o 66 MHz

– Tval � tempo di valutazione, ritardo logiche di interfaccia– Th assorbito nel Tval del ciclo successivo

10/05/2007 - 102 ETLC2 - B2 - 2007 DDC

Operazioni in un ciclo di clock

Page 18: ETLC2B2q - PoliTO

ETLC2 - B2 10/05/2007

2007 DDC 18

Page 18

10/05/2007 - 103 ETLC2 - B2 - 2007 DDC

Distribuzione del clock

10/05/2007 - 104 ETLC2 - B2 - 2007 DDC

Evoluzione della famiglia di bus PCI

(TX+RX)5 x N4 x N2.500PCI Express-xN

Previsione max20 x N10.000

2004 (TX+RX)542.500PCI Express-x1

Clock più veloce16,89664266PCIx- 64/266

Clock più veloce8,44864133PCI(x)- 64/133

Data path più ampio

4,2246466PCI- 64/66

Clock più veloce, solo 3V

2,1123266PCI- 32/66

1990 - Prima generazione

1,0563233PCI- 32/33

NoteBanda (Gbps)

Parall dati (num fili)

CLOCK (MHz)

Versione

10/05/2007 - 105 ETLC2 - B2 - 2007 DDC

PCI- 66

• Additional 64-Bit Pins– AD[63:32]– REQ64# (Mirrors FRAME# ; requests a 64-bit transaction)– ACK64#

• Same as a standard 32-bit transaction, plus:– The initiator asserts REQ64# to mirror FRAME#– The target, in response, asserts ACK64# to mirror DEVSEL#

• Data is transferred on AD[31:0] and AD[63:32]– 66MHz PCI can only use 3.3V signaling– The loading allowance is cut in half (5 loads): only one or two

add-in slots are possible

10/05/2007 - 106 ETLC2 - B2 - 2007 DDC

PCI- express – livello fisico

• Collegamenti punto-punto, 2,5 Gb/s (� 10 Gb/s)• Full duplex (canali RX/TX separati)• Coppie differenziali LV, accoppiamento AC (lane)

– Ridotta EMI/EMC, basso consumo

• Ambiente trasmissivo ben controllato

• Codifica 8b/10b• Preenfasi per ridurre ISI• Modulare: possibile collegare più lane in parallelo

– Diversi connettori compatibili

• Interrupt e altri comandi diretti con messaggi

10/05/2007 - 107 ETLC2 - B2 - 2007 DDC

PCI- express – connettori

• Possibile up-plugging(board N in connettore N+m)