ORGANIZZAZIONE DEI CALCOLATORI INTRODUZIONE Mariagiovanna Sami 1
08-2 - UN PO DI STORIA L idea di calcolatore programmabile risale alla prima metà dell Ottocento - la macchina analitica di Charles Babbage (ideata ma non realizzata - problemi tecnologici ed economici ne impedirono la realizzazione). Primo calcolatore elettronico programmabile realizzato e utilizzabile per scopi generali: ENIAC (Electronic Numeric Integrator and Computer) progettato da Eckert e Mauchly all Unversità di Pennsylvania nel 1943, prodotto nel 1946, usato fino al 1955.
ENIAC: UN PO DI STORIA Aritmetica decimale (non binaria!) 20 registri accumulatori di 10 cifre; Programmata manualmente mediante interruttori 18000 tubi a vuoto; 30 tonnellate, 140 kw di consumo 5.000 addizioni al secondo 08-3 -
UN PO DI STORIA ENIAC era scarsamente programmabile non esiste spazio di memoria condiviso fra memoria e dati concetto innovativo, proposto da Alan Turing e John von Neumann: calcolatore a programma memorizzato macchina IAS Esiste una memoria che registra programmi e dati; L ALU opera su dati binari; L unità di controllo comanda la lettura delle istruzioni dalla memoria, le interpreta e ne comanda l esecuzione; inoltre controlla le operazioni di I/O; IAS: progettato a Princeton, completato nel 1952. 08-4 -
LA MACCHINA DI VON NEUMANN CPU ALU MEMORIA +registri I/O Unità di contr. 08-5 -
LA MACCHINA DI VON NEUMANN La memoria è costituita da un insieme di posizioni (di norma indicate come parole) tutte di uguale dimensione e identificate mediante il loro indirizzo (sostanzialmente, il numero d ordine in un elenco lineare!). La memoria registra sia istruzioni sia dati (un istruzione, come un dato, nella memoria è rappresentata come un numero binario). L ALU è costituita da unità funzionali capaci di compiere su comando dell unità di controllo operazioni di tipo aritmetico (es. addizioni, sottrazioni) e logico (operazioni booleane). All ALU è associato un certo numero di registri cui può facilemente accedere. 08-6 -
LA MACCHINA DI VON NEUMANN Il sistema di ingresso-uscita (I/O) è costituito dalle unità che consentono al calcolatore di comunicare col mondo esterno, ricevendo informazione ( ingresso ) o fornendone ( uscita ). L unità di controllo è l unica parte attiva del calcolatore l unità che interpreta le istruzioni del programma (tradotte nel linguaggio della macchina) e invia i comandi alle altre in modo da eseguirle (es., invia alla memoria l indirizzo di un dato da leggere e il comando di lettura). L insieme ALu-Registri-Unità di controllo viene normalmente indicato come CPU (Central Processing Unit spesso anche processore) Tornando agli esempi storici: 08-7 -
UN PO DI STORIA Si ricordi il principio essenziale di funzionamento delle macchine a programma memorizzato: Le istruzioni sono registrate in memoria così come i dati; le istruzioni del programma sono memorizzate in sequenza (cioè in indirizzi consecutivi); L unità di controllo è dotata di un registro detto contatore di Programma (Program Counter) che indica la prossima istruzione che dovrà essere eseguita; Terminata l esecuzione di un istruzione, l unità di controllo automaticamente legge l istruzione il cui indirizzo è contenuto nel PC e aggiorna il PC in modo che indichi la prossima istruzione. 08-8 -
Alcuni dettagli sulla macchina IAS: Memoria: 1000 parole di 40 bit, capaci di ospitare due istruzioni; Aritmetica binaria; CPU dotata di un insieme di registri: Memory buffer (registro di lettura/scrittura); Registro di indirizzamento della memoria (MAR); Registro Istruzioni; Contatore di Programma (PC); Accumulatore; Moltiplicatore/quoziente. 08-9 -
E gli aspetti commerciali? 1947: Eckert e Mauchly fondano un azienda che diventa l UNIVAC (Universal Automatic Computer); 1960: censimento USA utilizza l UNIVAC I; UNIVAC diventa poi parte della Sperry Rand; 1953; IBM (azienda di macchine per ufficio e sistemi meccanografici) produce il 701 calcolatore a programma memorizzato per calcoli scientifici e nel 1955 il 702 per applicazioni commerciali. 08-10 -
La seconda generazione : Seconda metà degli anni 50: calcolatori con CPU realizzata a transistori (invenzione del transistore: 1947, dovuta a William Shockley dei Bell Labs,) calcolatori più veloci, meno ingombranti, che occupano meno potenza; Terza generazione (seconda metà degli anni 60): circuiti integrati su piccola scala (fino a 100 transistori su un chip). 1971: primo microprocessore (4004 Intel parole di quattro bit, qualche migliaio di transistori sul chip). 08-11 -
I LIVELLI DI INTEGRAZIONE 1965: Small-Scale Integration fino a 100 transistori su un chip; Fino al 1971: Medium-Scale Integration fino a 3000 dispositivi su un chip; Dal 1971 al 1977: Large-Scale Integration fino a 100000 dispositivi su un chip; Dal 1978: Very Large Scale Integration (VLSI) da 100.000 a 100.000.000 dispositivi su un chip; Ultra-Large Scale Integration oltre i 100.000.000. 08-12 -
LA LEGGE DI MOORE (Gordon Moore uno dei fondatori della Intel): Il numero di transistori sul chip raddoppia ogni anno (fino al 1970) - dal 1970, raddoppia ogni 18 mesi; Il costo di un chip resta circa immutato; Maggiore densità percorsi elettrici più brevi prestazioni più elevate; Diminuisce il consumo di potenza; aumenta l affidabilità. 08-13 -
LA LEGGE DI MOORE 1971: Intel 4004 poche migliaia di dispositivi sul chip; 2000: Intel Pentium IV alcune decine di milioni di dispositivi sul chip. 2004: si supera il miliardo di transistori su un chip. Ogni anno (fino al 2004 ): La frequenza di clock aumenta del 30%; Il potenziale di prestazioni raddoppia. 08-14 -
LE TENDENZE logica DRAM Dischi NUMERO DI TRANSISTORI SUL CHIP X2 in 3 anni X4 in 3-4 anni X4 in 2-3- anni VELOCITÀ X2 in 3 anni X2 in 10 anni X2 in 10 anni 08-15 -
L EVOLUZIONE Introduzione del concetto di famiglia CPU con diverse capacità (es., velocità, dimensioni della memoria, capacità di eseguire funzioni complesse ) ma uguale linguaggio di macchina (quindi compatibili capaci di eseguire lo stesso programma oggetto): IBM 360, 1964. 08-16 -
L EVOLUZIONE 1964: la DEC introduce il PDP-8 il primo minicomputer: costo e dimensioni ridotti, Può funzionare in ambienti non protetti ; Capace di reagire ad eventi esterni asincroni (= indipendenti dal programma in corso di esecuzione) applicazioni embedded, non più solo per eseguire dei calcoli! STRUTTURA A BUS fortemente modulare, ammette l aggiunta di moduli a seconda delle necessità del cliente (entro limiti!). 08-17 -
STRUTTURA A BUS DEL PDP-8 controll. console CPU Memoria primaria Modulo di I/O Modulo di I/O OMNIBUS 08-18 -
QUALI TECNOLOGIE PER LE CLASSI DI CALCOLATORI? Fino gli anni 90: Personal computers e processori embedded: sostanzialmente la stessa tecnologia dagli anni 80, tecnologia CMOS; Supercomputers: negli anni 80-90, tecnologie diverse (essenzialmente bipolari) con densità di integrazione molto mjinore e consumo di potenza molto elevato, che richiedeva particolari teniche di raffreddamento. 08-19 -
OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI Oggi: le stesse tecnologie sono usate in calcolatori digitali per applicazioni che vanno dagli elettrodomestici ai supercomputer: sostanzialmente, si possono distinguere: Personal computers: le caratteristiche cambiano a seconda che si tratti di calcolatori da scrivania o di portatili (nel secondo caso i vincoli di consumo sono molto più forti); 08-20 -
OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (2) Server: orientati per sopportare carichi di lavoro elevati (singole applicazioni complesse piuttosto che un gran numero di applicazioni semplici, come nel caso di un Web Server). La tecnologia è la stessa di quella di un PC, ma deve fornire grande espandibilità sia in termini di capacità di elaborazione che in termini di connettività (normalmente sono accessibili solo da rete). 08-21 -
OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (3) Al limite superiore: supercomputer, oggi sistemi multiprocessore costituiti da centinaia, migliaia o anche decine di migliaia di processori collegati fra loro, usati per calcoli scientifici e ingegneristici complessi (es. meteo, modelli sismici, ricerca petrolifera, genomica e proteomica, etc.). 08-22 -
OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (4) Calcolatori embedded: di gran lunga la classe più ampia, col più esteso spettro di applicazioni dal microprocessore relativamente semplice per un elettrodomestico al sistema di elaborazione in un cellulare o un PDA, fino alle reti di centinaia o migliaia di processori su un aereo o una nave. Sistemi progettati per eseguire una particolare applicazione (o insieme di applicazioni) di norma integrata con lo hardware in un solo sistema. Requisiti particolari: (spesso) vincoli di costo e consumo, richiesta di grande affidabilità. Negli ultimi anni il settore è cresciuto molto più rapidamente dei due precedenti. 08-23 -
OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (6) Nel 2002: unità vendute per le diverse classi: PC: 131 milioni Server + supercomputer: 5 milioni Calcolatori embedded: 1122 milioni (in questo caso si contano i singoli processori su un auto di classe elevata ce ne sono più di 150 ): in assoluto, la CPU più venduta è l ARM (processore tipico per sistemi embedded es., telefoni cellulari) Oggi i calcolatori embedded hanno effettuato il sorpasso anche in termini di dollari, non solo in volume di vendite! 08-24 -
IL CORSO I livelli di astrazione nella rappresentazione di un calcolatore L architettura generale di un calcolatore: processori, bus, memoria, sottosistema di I/O Il linguaggio macchina: le operazioni svolte dall hardware La rappresentazione delle istruzioni all interno del calcolatore Il processore: unità di elaborazione e unità di controllo 08-25 -
IL CORSO Unità di controllo: cenni a soluzione cablata e a microprogrammazione La valutazione delle prestazioni: le misure di base La gerarchia di memoria: Fondamenti sulle cache e valutazione delle prestazioni La memoria centrale e la memoria di massa Gestione della memoria tramite memoria virtuale L interfaccia tra processori e periferiche Il funzionamento del bus Le interfacce di I/O Tecniche di interfacciamento di dispositivi di I/O Miglioramento delle prestazioni mediante l uso della pipeline 08-26 -
IL CORSO Testo di riferimento: D.A.Patterson, J.H. Hennessy: Struttura e progetto dei calcolatori: l interfaccia hardware-software, ed. Zanichelli 08-27 -