Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB) Architettura degli Elaboratori (Prima Unità) Renato.LoCigno@dit.unitn.it www.dit.unitn.it/~locigno/didattica/archit/02-03/index.html Tipi di Bus Il bus è una struttura di comunicazione Esistono problemi di tempi di propagazione del segnale e quindi di sincronizzazione dei dispositivi Bus sincroni: funzionamento governato da un segnale di clock Bus asincroni: funzionamento governato solamente dall interazione tra master e slave Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 2 Bus sincrono Il processore distribuisce un segnale di temporizzazione sulle cui transizioni avvengono gli eventi Esiste un ciclo del bus che consente di sapere quando gli indirizzi, controlli e dati sono validi Indirizzi e controlli vengono fissati all inizio de ciclo I dati sono validi nella seconda metà del ciclo La durata del ciclo (e quindi la velocità del bus) dipendono dai dispositivi e dai tempi di latenza/propagazione Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 3 1
Bus sincrono: funzionamento base Bus clock Time Address and command Data t 0 t 1 t 2 Indica valori validi (1/0, alto/basso) su una struttura parallela Bus cycle Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 4 Latenza e propagazione I tempi di propagazione fanno si che i dispositivi vedano situazioni diverse del bus, o meglio le condizioni imposte da un dispositivo risultano valide per gli altri dopo un tempo legato alla propagazione dei segnali Questo è un vincolo di prestazioni insormontabile per un bus, quindi per avere prestazioni elevate è necessario o avere distanze molto piccole o avere strutture più sofisticate che consentano di compensare i ritardi di propagazione Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 5 Bus sincrono: effetto del tempo di propagazione Time Bus clock Seen by master Address and command t AM Data t DM Seen by slave Address and command Data t AS t DS t 0 t t 1 2 Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 6 2
Bus asincrono Al posto di un segnale di clock che garantisce il corretto funzionamento tenuto conto del massimo ritardo si usano due segnali di handshake Handshake (letteralmente stretta di mano ): tecnica per sincronizzare due dispositivi o, più in generale, un trasmettitore ed un ricevitore Master ready: indica quando il master del bus ha inviato segnali ed indirizzi Slave ready: indica quando il dispositivo slave ha decodificato correttamente comandi e indirizzi Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 7 Address and command Ciclo di un bus asincrono Time Master-ready Slave-ready Data t 0 t 1 t 2 t 3 t 4 t 5 Bus cycle Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 8 Altre strutture (intermedie) E` possibile mettere insieme i vantaggi dei bus sincroni e asincroni usando un clock a velocità elevata ed un solo segnale di handshake che comunica quando lo slave ha letto/scritto i dati Consente di fare comunicazioni su più colpi di clock, consentendo la coesistenza di dispositivi veloci e dispositivi lenti Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 9 3
Bus sincrono multiclock 1 2 3 4 Time Clock Address Command Data Slave-ready Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 10 Bus e... Bus Un elaboratore può avere più di un bus di comunicazione Tipicamente esiste un bus privato del processore, che serve a far comunicare le diverse parti (ALU, Cache,...) realizzate sul singolo circuito integrato All esterno del processore è necessario comunicare con gli altri dispositivi e quindi le comunicazioni devono seguire uno standard Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 11 Esempio di una architettura moderna Processor Main memory Processor bus Bridge PCI bus Additional memory SCSI controller Ethernet interface USB controller ISA interface Disk controller SCSI bus CD-ROM controller Video IDE disk CD- Disk 1 Disk 2 ROM Keyboard Game Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 12 4
Bus di comunicazione standard PCI (Peripheral Component Interconnect) parallelo: 32/64 linee dati evoluzione dei bus proprietari Intel ISA ed EISA eredita da Microchannel, NuBus e altri SCSI (Small Computer System Interface) essenzialmente nato per connettere dischi e dispositivi ad alta velocità l interfaccia SCSI lavora sempre in DMA USB (Universal Serial Bus) sistema basato su canali seriali punto-punto destinatoessenzialmente a periferche esterne Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 13 PCI: caratteristiche Nasce per essere un estensione del bus interno del processore sulla scheda madre Funziona a 33 o 66 MHz (motivo per cui il clock dei PC è sempre un multiplo di questi numeri) Host PCI bridge Main memory Configurazione tipica: Disk PCI bus Printer Ethernet interface Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 14 Serve a superare limitazioni elettriche Bridge PCI Aiuta a pilotare molti dispositivi (rigenera clock e segnali) Mantiene unica a livello logico la struttura di comunicazione Non altera lo schema di indirizzamento Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 15 5
PCI: trasferimento dati Il bus PCI è un bus a sincrono con ciclo di lunghezza variabile Il master viene chiamato initiator Lo slave viene chiamato target Modalità di trasferimento a burst Usa lo stesso insieme di linee per trasferire prima e l indirizzo iniziale e poi i dati 3 possibili modi di indirizzamento: memory mapped, I/O, configurazione Conf. Plug&Play automatica Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 16 PCI: linee e segnali CLK: clock a 33 o 66 MHz FRAME#: segnala la durata di una comunicazione (in numero di dati da trasferire) AD: 32 (64) linee di indirizzo e dati C/BE: 4 (8) linee di comando/abilitazione dei singoli byte dati IRDY#, TRDY#: Initiator, Target Ready SEL#: ACK del dispositivo selezionato come target IDSEL#: selezione del dispositivo da inizializzare #: identifica un segnale attivo basso Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 17 CLK PCI: operazione di read 1 2 3 4 5 6 7 Frame# AD Adress D1 D2 D3 D4 C/BE# Cmnd Byte enable IRDY# TRDY# SEL# Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 18 6
PCI: uso di IRDY#, TRDY# 1 2 3 4 5 6 7 8 9 CLK Frame# AD Adress #1 #2 #3 #4 C/BE# Cmnd Byte enable IRDY# TRDY# SEL# Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 19 PCI: configurazione Avviene all accensione dell elaboratore Ciascun dispositivo ha le proprie caratteristiche e configurazione in una ROM (Read Only Memory) Si lavora in modalità di indirizzamento di inizializzazione I dispositivi hanno un segnale in ingresso (IDSEL#) che attiva seleziona il dispositivo per la configurazione quando i comandi indicano che la configurazione è in atto 21 linee AD (AD11-31) sulla scheda madre possono essere collegate ad altrettanti IDSEL# (massimo 21 periferiche su un bus PCI) Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 20 PCI: configurazione Il software di configurazione controlla tutte le 21 possibilità Tutte le volte che trova un dispositivo legge la configurazione e gli assegna un indirizzo Le 11 linee basse (AD0-10) sono usate per leggere la configurazione e trasferire dati da e alla periferica è evidente che il processore non è un dispositivo come tutti gli altri per un bus PCI Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 21 7
SCSI: caratteristiche Progettato principalmente per rendere efficienti le operazioni di I/O da disco L interfaccia lavora sempre in DMA, memorizzando localmente anche grandi quantità di dati da scaricare sui dischi o in memoria Genera gli interrupt opportuni per comunicare al processore l avvenuto trasferimento Parallelismo 8 o 16 (Wide SCSI) Operazioni piuttosto complesse (interfaccia cara) Velocità da 5 a 640 Mbytes/s su distanze fino a 25 metri Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 22 USB: caratteristiche Bus per periferiche esterne, connesse tutte ad una stessa porta sul PC Sistema di comunicazione ad albero basato su canali seriali di tipo punto-punto Supera le limitazioni delle classiche porte serali/parallele, che non possono essere solo per un dispositivo alla volta Velocità elevata (grazie ai canali punto-punto) per delle periferiche esterne e variabile da un dispositivo ad un altro (da 1.5 a 480Mbit/s) Supporto per comunicazioni sincrone/isocrone (microfono numerici, videocamere) Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 23 USB: caratteristiche L uso di canali seriali punto-punto limita i costi grazie all uso di una sola coppia di fili per le comunicazioni La trasmissione punto-punto consente di sfruttare tecniche tipiche delle telecomunicazioni, come la distribuzione del clock codificato sul segnale dati I segnali vengono inviati su tutti i rami dell albero, realizzando comunicazioni di tipo broadcast Trasferimento organizzato a pacchetti di dati Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 24 8
Host computer USB: topologia e connessione Root hub Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 25 USB: caratteristiche Un è un dispositivo che copia il segnale da una porta a tutte le altre porte L unico modo di comunicazione ammesso è il polling, cioè i dispositivi periferici possono solamente rispondere alle interrogazioni del processore (niente DMA, niente interrupt,... ) Gli indirizzi USB non sono visti dal processore (sono gestiti dal root hub ) Il sistema di comunicazioni è complesso e richiede l uso di protocolli piuttosto sofisticati Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 26 Host computer USB: linee a velocità diversa F/LS HS F/LS HS HS Root hub HS HS F/LS HS: High speed (480 Mbit/s) F/LS: full/low speed (1.5/10 Mbit/s) Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 27 9
USB: caratteristiche Con l introduzione di HS alcuni hub possono fare conversione di velocità rendendo le comunicazioni più efficienti Indirizzamento su 7 bit, che consente di collegare fino a 127 dispositivi Le comunicazioni sono sempre gestite dal root hub, che è collegato al bus interno di un elaboratore Renato.LoCigno@dit.unitn.it Architetture degli Elaboratori 1 I 28 10