ORGANIZZAZIONE DEI CALCOLATORI INTRODUZIONE Mariagiovanna Sami 2007-08 1 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. 20072007-08 -2- UN PO’ DI STORIA 20072007-08 ENIAC: ¾ 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 -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 ¾ ¾ ¾ ¾ 20072007-08 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. -4- LA MACCHINA DI VON NEUMANN CPU ALU +registri I/O MEMORIA Unità di contr. 20072007-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. 20072007-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: 20072007-08 -7- UN PO’ DI STORIA Si ricordi il principio essenziale di funzionamento delle macchine a programma memorizzato: – – – 20072007-08 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. -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: ¾ ¾ ¾ ¾ ¾ ¾ 20072007-08 Memory buffer (registro di lettura/scrittura); Registro di indirizzamento della memoria (MAR); Registro Istruzioni; Contatore di Programma (PC); Accumulatore; Moltiplicatore/quoziente. -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. 20072007-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). 20072007-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. 20072007-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à. 20072007-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…): ¾ ¾ 20072007-08 La frequenza di clock aumenta del 30%; Il potenziale di prestazioni raddoppia. - 14 - LE TENDENZE NUMERO DI TRANSISTORI SUL CHIP VELOCITÀ logica X2 in 3 anni X2 in 3 anni DRAM X4 in 3-4 anni X2 in 10 anni Dischi X4 in 2-3- anni X2 in 10 anni 20072007-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. 20072007-08 - 16 - L’EVOLUZIONE 1964: la DEC introduce il PDP-8 – il primo minicomputer: ¾ ¾ ¾ ¾ 20072007-08 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!). - 17 - STRUTTURA A BUS DEL PDP-8 controll. console CPU Memoria primaria OMNIBUS 20072007-08 - 18 - Modulo di I/O Modulo di I/O QUALI TECNOLOGIE PER LE CLASSI DI CALCOLATORI? Fino gli anni ’90: ¾ ¾ 20072007-08 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. - 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: ¾ 20072007-08 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); - 20 - OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (2) ¾ 20072007-08 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). - 21 - OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (3) ¾ 20072007-08 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.). - 22 - OGGI- LE CLASSI DI APPLICAZIONI DEI CALCOLATORI (4) ¾ 20072007-08 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. - 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! 20072007-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 20072007-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: ¾ ¾ ¾ L’interfaccia tra processori e periferiche – – – Fondamenti sulle cache e valutazione delle prestazioni La memoria centrale e la memoria di massa Gestione della memoria tramite memoria virtuale 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 20072007-08 - 26 - IL CORSO Testo di riferimento: D.A.Patterson, J.H. Hennessy: “Struttura e progetto dei calcolatori: l’interfaccia hardware-software”, ed. Zanichelli 20072007-08 - 27 -