Sei sulla pagina 1di 5

ESEMPI DI BUS

I pi comuni sono: ISA = Industry Standard Architecture (obsoleto) EISA = Enhanced ISA (max 33 MB/s) PCI = Peripheral Component Interconnect (max 64 bit a 66 MHz = 528 MB/s di trasferimento dati)

EVOLUZIONE DELLE CPU

I primi computer veri e propri, sviluppati a met del 1900, suscitarono l'interesse dei matematici, anche in relazione agli sviluppi della logica matematica di quel periodo. Abbiamo quindi alcune schematizzazioni del funzionamento dei computer cui si fa riferimento ancor oggi: in particolare il modello di Touring ed il modello di Von Noiman. Von Noiman il primo che mette le istruzioni macchina in RAM, come i dati.

Modello di Turing : in cui un computer ideale elabora una sequenza di istruzioni e numeri su lungo "nastro" di I/O Modello di Von Noiman o il modello ha le componenti: Memoria, ALU : esegue i calcoli Control Unit I/O bus che collega le componenti o la CPU esegue il seguente ciclo operativo: prende istruzione dalla memoria e la decodifica sposta operandi: A,B dalla memoria nei registri ( fetch ) operazione :da A e B calcola C (execute) sposta C dai registri in memoria ( store ) Modello di Harward : in cui ci sono memorie separate per istruzioni e dati

I computer moderni sono organizzati essenzialmente secondo il modello di Von Noiman, anche se, come vedremo pi avanti, le cose sono diventate molto pi complicate.

CPU : componenti e funzionamento


Le componenti principali della CPU sono:

L'unit che decodifica le istruzioni macchina L'unit che calcola gli indirizzi di memoria I registri, memorie ad accesso rapido, ove sono portati gli operandi per i calcoli, fra questi ricordiamo: o Il program counter (PC) : che contiene l'indirizzo dell'istruzione da eseguire

o L'istruction register : che contiene l'istruzione da eseguire L'unit aritmetico logica, che fa le operazioni vere e proprie

Il funzionamento della CPU segue essenzialmente il ciclo di Von Noiman, con le fasi, che gi abbiamo studiato, di: 1. fetch 2. execute Le CPU moderne sono pi complicate di cos ed usano tutti i trucchi possibili per rendere il calcolo pi veloce, vediamone in breve: Prefetch C' un buffer ( pre-fetch buffer) in cui le istruzioni vengono trasferite, la CPU le legge e decodifica in anticipo rispetto al momento in cui dovr eseguirle Branch Prediction La CPU cerca di indovinare quale sar la prossima istruzione, fra quelle nel pre-fetch buffer. Pipelines Le istruzioni sono scomposte in passi elementari (stage), i passi di diverse istruzioni sono eseguiti contemporaneamente da hardware diverso una specie di catena di montaggio: Schema di una pipeline Tempo: T1 T2 T3

stage lettura istruzione decodifica fetch operandi esecuzione risultati ai registri

T4

T5

T6

istr.1 istr.2 istr.3 istr.4 istr.5 istr.6 istr.1 istr.2 istr.3 istr.4 istr.5 istr.1 istr.2 istr.3 istr.4 istr.1 istr.2 istr.3 istr.1 istr.2

Con n stages si produce un'istruzione completa ogni ciclo di clock. Tempo di latenza: tempo perch la pipe si riempia: i salti nel programma "svuotano" la pipeline spesso e la rendono dannosa. Il P4A Northwood ha pipelines di 20 stages. CPU Superscalari

Pi pipeline lavorano in parallelo, ognuna con la sua ALU, ci sono pipelines diverse per interi e float apposito hardware risolve possibili conflitti (evita tentativi di usare gli stessi registri da parte di pipelines diverse)

Da quanto si vede appare evidente come sia difficile stimare a priori le performances di una data CPU, il clock non pi indicativo, abbiamo ad esempio che, per calcoli su numeri reali (float), le CPU AMD Athlon vanno meglio di un 30% delle CPU Intel Pentium IV di pari clock. importante inoltre l'organizzazione delle memorie cache e la velocit della RAM. Nella scelta di una CPU occorre fare quindi riferimento a benchmark che rispecchino quelle che sono le proprie esigenze.

CPU: Architetture
Anche per le architetture delle CPU abbiamo visto, nel tempo, alternarsi diverse tendenze. Allo svilupparsi dell'elettronica si assistito ad un aumento della complessit delle istruzioni macchina eseguite dalle CPU, (architettura CISC : "complex instruction set") si cercava, con una singola istruzione, di far il maggior lavoro possibile. Questa tendenza ha raggiunto l'apice con i Vax Digital, che , negli anni 90, avevano circa 300 diverse istruzioni macchina . Si poi trovato che catene istruzioni semplici, opportunamente organizzate in pipelines, potevano aver prestazioni migliori. Nasce quindi l'architettura RISC : (reduced instruction set), che stata quella adottate dalle workstation Unix degli anni 90. Un'altra tendenza quella denominata: VLIW: very long instruction words, qui pi istruzioni sono organizzate in un'unica lunga istruzione, le cui parti possono essere eseguite in parallelo. I processori della Trasmeta, e gli Itanium dell'Intel seguono questa filosofia. La situazione reale non sempre riconducibile a queste schematizzazioni; i progettisti seguono un approccio pragmatico, indipendente dalla teoria, il mercato delle CPU oggi dominato da CPU Intel che adottano un approccio ibrido CISC-RISC : istruzioni CISC vengono spezzate in istruzioni semplici, e passate ad un core RISC, con pi pipelines che lavorano in parallelo. Per alimentare le pipeline in modo continuo vengono utilizzate tecniche di pre-analisi del codice, che dovrebbero permettere di caricare e decodificare in anticipo le istruzioni che verranno eseguite in seguito. Un'altra importante evoluzione del calcolo l'introduzione del parallelismo. I computer paralleli hanno molte CPU, che lavorano insieme. Il modo di lavorare dei computer paralleli classificato secondo la cosiddetta "tassonomia di Flinn":

SISD:single instruction , single data : ogni CPU esegue le stesse operazioni diverse sugli stessi dati SIMD: single instruction muliple data: ogni CPU esegue la stessa operazione su dati diversi. MIMD: multiple instrution multiple data : ogni CPU esegue operazioni diverse su dati diversi.

Il parallelismo oggi relegato in un mercato di nicchia, e le macchine parallele sono costituite da reti di CPU commerciali, non pi progettate apposta per la macchina. Un discorso diverso va fatto per le macchine con pi CPU, che condividono la memoria, ma eseguono programmi (o task) diversi. Questa architettura (SMP : simmetric multi processing) comune nei grossi server. Nel 2005 iniziano anche ad apparire CPU con "core" multipli, che implementano quindi una specie di SMP all'interno del processore stesso. La maggior parte delle CPU per PC sono state, fino a pochi anni fa, a 32 bits, ovvero dotate di registri e parole di 32 bits. Queste CPU hanno delle limitazioni nella quantit di memoria che

possono utilizzare (circa 4 Gbyte), dovute al fatto che in 32 bit non si possono mettere indirizzi di memoria pi grandi di tanto. Questa limitazione grave per i grossi server, che sono equipaggiati con grandi quantit di memoria, in modo da minimizzare le operazioni di lettura e scrittura su disco, relativamente lente. Per questo il mercato dei grossi server aziendali era appannaggio di produttori che sviluppavano una loro linea dedicata di CPU a 64 bits, capaci di indirizzare quantit enormi di memoria. Le cose stanno cambiando, anche i produttori di CPU per PC, come AMD ed Intel stanno passando a produrre CPU a 64 bits, pur mantenendo la compatibilit con il vecchio software a 32 bits.

CPU presenti sul mercato oggi sino al 2007

Microprocessori : sono CPU dalle possibilit e costo limitato, a volte miniaturizzate, e sono usate un p da per tutto: elettrodomestici, telefonia, centraline delle automobili, badge per sky-pass etc etc. Si assiste oggi alla tendenza ad utilizzare microprocessori programmabili al posto di circuiti elettronici complessi, e ad inserire in pratica microprocessori ovunque. una vera rivoluzione tecnologica, cui non si d l'attenzione che meriterebbe.

CPU per Server o Workstation a 64 bits, RISC: questo era il tipo di processori pi importante negli anni 80, quando 5 grossi produttori si contendevano il mercato del calcolo con i loro prodotti: Silicon Graphics (SGI), SUN con i processori Sparc, HP con l'architettura PA-RISC, IBM con i Power e Digital con le Alfa. Sono equipaggiati con CPU di questo tipo, a 64 bits, i grossi server, ma sono rimasti sul mercato con la loro linea di CPU dedicate solo la SUN e l'IBM, ls Digital scomparsa e gli altri utilizzano processori Intel.

CPU usate dai Mac: la Apple utilizzava processori prodotti dalla Motorola, poi le sue macchine sono state equipaggiate con potenti processori Power G4 o Power G5, simili a quelli dei server IBM. Nel 2006 anche la Apple passa ad usare processori della Intel

CPU per PC: ci sono diversi produttori, ma il mercato se lo contendono in pratica Intel ed AMD, con prodotti simili. L'Intel stata una delle prime a produrre integrati, e fin dall'inizio i PC sono basati su processori Intel, si trattava tuttavia di macchine con possibilit limitate. Coi primi modelli "Pentium", attorno al 1995 le cose cambiano, il Pentium una CPU superscalare, a 32 bits, con pipeline efficienti, unit per il calcolo con numeri float integrata , memoria cache integrata, clock oltre 200 MHz. Il Pentiunm IV (2000-2004) ha un core RISC, lunghe pipelines, unit per il "branch prediction", un'architettura (netBurst) intesa a sfruttare al massimo l'alta velocit del processore, che nei modelli di fine 2004 arriva a 3.8 Ghz. Ci sono per problemi con la dissipazione termica ed a met 2004 i progettisti rinunciano a spingere i Pentium IV a 4 Ghz ed oltre, e la tendenza attuale (2005) di migliorare le prestazioni producendo CPU "multi core", cio mettendo su un unico cip pi CPU che condividono cache e bus. Si tende inoltre a integrare il controller della memoria nel processore ed a portare le memorie cache nella CPU.

L'AMD all'inizio produceva "cloni" dei processori Intel, ma il modello contemporaneo del Pentium IV, l'Athlon XP, ha prestazioni migliori delle CPU Intel, a parit di clock. Per l'Athlon XP lavora a frequenze di clock pi basse (max 2.4 Ghz) per cui alla fine i modelli di punta di Intel ed AMD hanno prestazioni simili. Nel 2003 l'AMD inizia a produrre l'Athlon 64, che pu lavorare anche a 64 bits, nel 2005, con la serie 600 dei Pentium IV l'Intel si accoda a questa linea di processori ibridi che possono lavorare a 32 o 64 bits; l'Intel ha anche una linea di processori a 64 bit dedicata ai server: gli Itanium, che per non ha mai sfondato. Le CPU per PC, che costano poco e vanno a 64 bits, vengono oggi usate per server di fascia media e bassa da quasi tutti i produttori. Per i portatili si utilizzano varianti a basso consumo dei processori per PC. Nel 2006 l'Intel, non riuscendo pi ad aumentare le prestazioni salendo col clock, abbandona il Pentium IV, e passa all'architettura "Core", che particolarmente attenta ai consumi. In questo stesso periodo, per aumentare le prestazioni, si inizia a mettere 2 CPU sullo stesso circuito integrato, gran parte dei PC e notebook del 2007 hanno quindi 2 processori, come i "Core 2 Duo" della Intel e gli "Athlon 64 X2" dell'AMD.

Processori dedicati: processori particolari vengono sviluppati per mercati di nicchia, siccome i costi per lo sviluppo di una CPU sono alti si tende a usare quando si pu processori per PC, dell'Intel o AMD. Meritano un cenno i processori sviluppati dalla Sony per le Playstation, si tratta di CPU fatte per la grafica; per la Playstation 3 stato sviluppato un processore "multi-core", con un clock di 3.2 Ghz ed estremamente potente.