Architetture degli Elaboratori 1
Corso di Corso di
Architettura degli Elaboratori Architettura degli Elaboratori
Il livello logico digitale:
CPU e Bus
Matteo Baldoni
Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 – I-10149 Torino [email protected] http://www.di.unito.it/ ~baldoni
Architetture degli Elaboratori 2
Connessioni di una CPU Connessioni di una CPU
Linee di controllo Linee dati
Linee indirizzi
Architetture degli Elaboratori 3
Connessioni di una CPU Connessioni di una CPU
Indirizzo: n piedini
corrispondono a 2n locazioni di memoria indirizzabili (valore tipico: 16, 20, 32, 64)
Dati: n piedini corrispondono a n dati letti/ scritti in una sola operazione (8, 16, 32, 36, 64)
Controllo:
controllo del bus
interrupt
arbitraggio del bus
segnali del coprocessore
stato
varie
Architetture degli Elaboratori 4
Connessioni al bus Connessioni al bus
I dispositivi hanno connessioni diverse a seconda della loro natura
Architetture degli Elaboratori 5
Bus Bus
Per portare i dati da e verso l'ALU (bus interno)
Per collegare la CPU alla memoria centrale e ai dispositivi di I/ O (bus esterno):
Attualmente un bus dedicato tra CPU e memoria (desktop attuali: 400 MHz) e
un bus dedicato solo per collegare i dispositivi (es.
standard PCI, 33 -> 66 MHz, standard ISA, 8.33 MHz)
Architetture degli Elaboratori 6
Gerarchie di bus Gerarchie di bus
Gestire un elevato numero di periferiche con diverse prestazioni ed
caratteristiche
Bus dedicati a seconda dei dispositivi connessi
Architetture degli Elaboratori 7
Un esempio di bus: PCI Un esempio di bus: PCI
Bus PCI per la connessione dei dispositivi nei desktop 64 linee dati
66 Mhz 528 Mbyte/ s Economico!
Architetture degli Elaboratori 8
Dispositivi attivi e passivi Dispositivi attivi e passivi
I dispositivi collegati ad un bus si dividono in
attivi (master): possono decidere di iniziare un
trasferimento, in genere sono collegati al bus per mezzo di un bus driver
passivi (slave): rimangono in attesa di richieste, in genere sono collegati per mezzo di un bus receiver
i dispositivi che si comportano sia come master che come slave (es. la CPU) sono collegati attraverso il bus
tranceiver
Wired-OR: OR booleano dei segnali contemporanei di richiesta di utilizzo del bus su una singola linea
Architetture degli Elaboratori 9
Larghezza del bus Larghezza del bus
Bus “larghi” sono più costosi di quelli stretti ma offrono una banda più larga e quindi maggiore velocità di trasferimento
Maggiore velocità si ottiene aumentando la banda (più bit/ trasferimento) o diminuendo il ciclo di bus (più bit/ secondo)
Es. bus CPU-memoria “dual channel”
Architetture degli Elaboratori 10
Bus sincrono Bus sincrono
Ha una linea pilotata da un oscillatore, ogni attività richiede un numero intero di cicli
La CPU mette l'indirizzo sul bus che necessita di un certo tempo per stabilizzarsi, dopodichè rimane disponibile
I dati sono disponibile nel terzo ciclo Vengono attivati i segnali di richiesta di accesso alla memoria e il segnale di lettura
Segnale di attesa dei dati La memoria nega il wait quando i dati sono disponibili
Architetture degli Elaboratori 11
Bus asincrono Bus asincrono
Il bus sincrono deve adattarsi al dispositivo più lento
Attivati i segnali di accesso alla memoria e lettura, attiva il segnale Master SYNchronization
Lo slave esegue il suo lavoro all'attivazione del segnale e quindi terminatolo attiva il segnale di Slave SINchronization
I dati vengono memorizzati dal master che nega i segnali di accesso alla memoria, lettura e maser synchronization
Lo slave dopo aver visto la negazione del segnale di master synchronization, nega a sua volta il segnale di slave synchronization
Architetture degli Elaboratori 12
Arbitraggio del bus Arbitraggio del bus
Cosa succede se più di un dispositivo richiede l'utilizzo del bus contemporaneamente?
È necessario un meccanismo di arbitraggio del bus per evitare ambiguità delle informazioni immesse sul bus stesso, sono possibili due strade:
arbitraggio centralizzato
arbitraggio decentralizzato Meccanismo del grant
Architetture degli Elaboratori 13
Arbitraggio del bus Arbitraggio del bus
Arbitro centralizzato
Daisy chaining: il grant viene trasmesso lungo la linea bus grant finché un dispositivo non accetta
l'assegnamento
Vince il dispositivo più vicino
Architetture degli Elaboratori 14
Arbitraggio del bus Arbitraggio del bus
Due (o più) livelli di priorità
L'assegnamento segue lo stesso meccanismo del daisy chaining ma di dispositivi con priorità più alta hanno
precedenza nell'assegnamento del grant da parte dell'arbitro
Linea di acknowledge
Scelta attenta delle priorità tra i vari dispositivi
Architetture degli Elaboratori 15
Arbitraggio del bus Arbitraggio del bus
Arbitro decentralizzato
Tante linee quanti dispositivi, ogni dispositivo osserva le linee prima di effettuare la richiesta (soluzione poco flessibile ma risparmia il costo dell'arbitro)
Soluzione con tre linee, bus request, busy e linea di arbitraggio
Più economico e più veloce del daisy chaining centralizzato