CPU chips e bus anno accademico 2006 2007 pagina 1
Layout di una cpu anno accademico 2006 2007 pagina 2
I bus in un sistema a microprocessore anno accademico 2006 2007 pagina 3
Proprietà di un bus Bus width ( dimensioni del bus) Bus clocking (temporizzazione) Syncrounous bus (bus sincroni) Asyncrounous bus (bus asincroni) Bus arbitration ( gestione del bus) Bus operation (operazioni sul bus) anno accademico 2006 2007 pagina 4
Bus Width Le linee di indirizzamento (address lines) gestiscono la modalità d indirizzamento: se un bus ha 11 linee d indirizzamento gli indirizzi gestibili sono 2 11. Maggiori sono le linee disponibili per l indirizzamento e più ampio è lo spazio d indirizzamento stesso. Di contro maggiori sono i costi: più fili e connettori più grandi. anno accademico 2006 2007 pagina 5
Multiplexed bus Per contenere il numero dei fili del bus pur aumentando le sue dimensioni si possono multiplexare alcune linee, ossia far viaggiare sullo stesso filo informazioni diverse in istanti diversi. Normalmente vengono multiplexate le linee dei dati e degli indirizzi. Per un operazione di scrittura, l indirizzo deve essere inviato nel ciclo di bus n, mentre i dati vengono inviati al ciclo successivo ( n+1 ). Multiplexare un bus riduce i costi ma rallenta anche le operazioni sul bus stesso. anno accademico 2006 2007 pagina 6
Evoluzione storica dei bus per i chip della Intell anno accademico 2006 2007 pagina 7
Bus skew Per aumentare la capacità di trasferimento dei dati ( bytes per second) è necessario diminuire il ciclo del bus (piu trasferimenti di dati al secondo) o aumentare la dimensione ( più dati per ogni trasferimento) del bus stesso. Diminuire il ciclo del bus è più complicato perché si da origine al bus asimmetrico (bus skew). Minore è il ciclo e maggiore è il problema del bus skew. La soluzione preferita è aumentare le dimensioni del bus. anno accademico 2006 2007 pagina 8
Valori di velocità per bus standard. Il tradizionale bus ISA (Industry standard architecture) disponibile sui PC basati sui microprocessori Intel ha una velocità di 8.33 MHz Il più recente PCI bus ha una velocità di 33 MHz o 66 MHz. anno accademico 2006 2007 pagina 9
Bus sincroni 25 ns anno accademico 2006 2007 pagina 10
anno accademico 2006 2007 pagina 11
Bus asincroni: tempi di lettura anno accademico 2006 2007 pagina 12
Il Protocollo Bus Le regole che definiscono come lavora il bus e come si devono comportare tutti i dispositivi collegati al bus stesso, sono chiamate il protocollo del bus. In aggiunta sono definite anche le specifiche elettriche ( tensioni, assorbimenti di potenza, temporizzazione dei segnali) e meccaniche (tipo di connettori, disposizioni delle linee sul connettore stesso). Alcuni bus standard sono Omnibus (PDP-8), Unibus (PDP-ll), Multibus (8086), IBM PC bus (PC/XT), ISA bus (PC/AT), EISA bus (80386), Microchannel (PS/2), PCI bus (many PCs), SCSI, Universal Serial Bus (modern PCs), FireWire (consumer electronics), anno accademico 2006 2007 pagina 13
Masters and slaves Alcuni dispositivi sono attivi e possono iniziare il trasferimento (lettura o scrittura) dei dati, altri invece sono passivi e aspettano la richiesta di trasferimento. Gli attivi sono chiamati masters; i passivi invece slaves. Quando la CPU ordina al controllore del disco di leggere o scrivere un blocco, la Cpu si comporta come master mentre il controllore come slave. Comunque anche il controllore del disco può eseguire trasferimenti diretti in memoria comportandosi anche come master. anno accademico 2006 2007 pagina 14
Master e slave nella gestione di un bus anno accademico 2006 2007 pagina 15
Bus drivers, bus receivers and bus transceivers I masters sono collegati al bus tramite un chip che si chiama bus driver ; gli slaves invece con un bus receiver. Dispositivi che agiscono come master e, in differenti istanti,anche come slave si collegano con bus transceiver. Questi dispositivi di interfaccia hanno configurazioni tipo tri-state, per permettere loro di scollegarsi dal bus, quando non necessario o sono aggangiati al bus in modo leggermente differente con una configurazione open collector. anno accademico 2006 2007 pagina 16
Bus arbitration Per il corretto funzionamento un solo dispositivo fra quelli collegati allo stesso bus può agire come master. Se esistono due o piu masters è necessario un meccanismo di arbitraggio L arbitraggio può essere centralizzato e decentralizzato. anno accademico 2006 2007 pagina 17
Arbitraggio centralizzato L arbiter determina chi sul bus si comporta come master. Molte CPU hanno l arbitro integrato, altri sistemi hanno un elemento singolo che funziona come arbitro. Bus request è un wired-or che viene attivato (Basso) quando uno o più dispositivo lo richiedono. E necessario un meccanismo per capire chi ha fatto richiesta. anno accademico 2006 2007 pagina 18
Daisy Chain Wired or Uno qualunque dei dispositivi richiede il bus abbassando la linea bus request. L arbitro concede bus grant. Il 1, se ha fatto richiesta trattiene il grant e si prende il bus, altrimenti lo inoltra. Se più dispositivi richiedono contemporaneamente attenzione, quello con maggior priorità è il più vicino all arbitro. anno accademico 2006 2007 pagina 19
Decentralized bus arbitration Un sistema a microprocessore può avere n linee a priorità diversa per richiedere il bus. Quando un dispositivo desidera usare il bus, attiva la sua linea di richiesta. Tutti dispositivi monitorano le linee di richiesta così che alla fine di ciascun ciclo del bus, il singolo dispositivo (che necessità di diventare master), sa se un dispositivo a più alta priorità ha richiesto il bus (e tale dispositivo diventa master al ciclo successivo) o se lui stesso, al ciclo successivo, può diventare master. anno accademico 2006 2007 pagina 20
Decentralized arbitration Wired or Bus request è un wired-or: serve per richiedere il bus. BUSY è attivata dal corrente bus master. La terza linea è usata per l arbitraggio: è un daisy chain. Per due richieste contemporanee la priorità è stabilita dalla successione degli elementi concatenati. anno accademico 2006 2007 pagina 21
Block transfer Normalmente viene trasferito sul bus un dato (di lettura o scrittura) per volta. Tuttavia, soprattutto quando la cache è presente, viene trasferito un intero blocco di dati. Il trasferimento di un blocco è più efficiente che il trasferimento del singolo byte. anno accademico 2006 2007 pagina 22
Trasferimenti di blocchi di dati. La lettura di un blocco di 4 parole richiede 6 cicli invece dei 12 necessari per i singoli trasferimenti. anno accademico 2006 2007 pagina 23
Interrupt Quando la CPU richiede ad un dispositivo di I/O un operazione, essa normalmente aspetta un segnale di interrupt quando questa operazione è stata eseguita. Poiché molti dispositivi di I/O possono richiedere un interrupt contemporaneamente, è necessario gestire l arbitraggio. L usuale soluzione è di assegnare priorità ai dispositivi e usare un arbitro centralizzato (es: 8259A) per assegnare la priorità. anno accademico 2006 2007 pagina 24
Interrupt Controller Un dispositivo causa un interrupt, attivando la sua linea e conseguentemente l 8259A attiva il segnale di INT verso la CPU. Quando la CPU può rispondere, essa attiva INTA (INTerrupt Acknowledge). A sua volta l 8259A specifica quale dispositivo di I/O ha richiesto l interrupt mettendo sul bus dati il numero del dispositivo richiedente La CPU usa quel numero come indice all interno di una tabella di puntatori alle routine di gestione degli interrupt. anno accademico 2006 2007 pagina 25
Embedded Processors Negli apparati elettronici, anche di costo contenuto (per es televisori, cellulari, palmari, forni a microonde, videocamere, videoregistratori, stampanti etc,etc), i microprocessori sono quasi sempre presenti. Essi sono ottimizzati per svolgere le funzioni richieste e non necessitano di strutture sofisticate per avere alte prestazioni. Tali tipi di microprocessori sono anche chiamati embedded processors e sono programmati in assembler o nei frequenti casi in cui la complessità del software cresce in C, C++ o Java. anno accademico 2006 2007 pagina 26
Linguaggi di programmazione per sistemi embedded Linguaggi tipo il C,C ++,Java producono codice di ridotte dimensioni compatibile con gli spazi ridotti di memoria tipici dei sistemi embedded. In particolare il Java è indipendente dalla particolare piattaforma, tuttavia necessita di un sofware di dimensioni relativamente ampie per realizzare la funzione dell interprete ed esegue le istruzioni con alti tempi. Una soluzione al problema è la costruzione di un chip che abbia come set d istruzioni lo stesso del JAVA. anno accademico 2006 2007 pagina 27
MicroJava 701 2 bus ( uno a 64 bit per la memoria, l altro di 32 bit PCI); Cache: 16 kb per i dati e 16 kb per il programma 2M di transistor per il core e 1.5M per la cache. anno accademico 2006 2007 pagina 28
anno accademico 2006 2007 pagina 29
anno accademico 2006 2007 pagina 30
anno accademico 2006 2007 pagina 31
Caratteristiche del SUN microjava 701 system Una memoria PROM 16 linee I/O (che si possono interfacciare a bottoni, interruttori, lampade,tastiera). Tre timer programmabili. Ha 316 pin(59 per il bus PCI, 123 per il bus di memoria, 3 per il controllo, 3 per il timer, 11 interrupts, 10 di testing, 16 linee di I/O. Sleep mode per risparmiare la batteria, un controllore dell interrupt integrato. anno accademico 2006 2007 pagina 32
Il microprocessore (8086) ROM:microcodice Demultiplexer, multiplexer Alu (Arithmetic Logic unit): Sommatori, comparatori anno accademico 2006 2007 pagina 33