Architettura dei sistemi di elaborazione: Modelli Architetturali La CPU: Generalità La “preistoria” dei sistemi di elaborazione •Fin dai tempi più antichi l’uomo ha costruito apparecchi utili per alleviare lo sforzo per il calcolo e per evitare errori. •Fra i più antichi ricordiamo –Abaco –Pallottoliere Prime macchine per l’elaborazione •Blaise Pascal (1623-1662) realizzò la prima macchina a ruote dentate in grado di eseguire somme e sottrazioni (pascaline) •Gottfried Wilhelm Leibniz (1646-1716) progettò la prima macchina in grado di eseguire tutte e quattro le operazioni aritmetiche. •Le macchine calcolatrici dei secoli XVII e XVIII non erano computer nel senso moderno del termine; dotate di un numero prestabilito di operazioni, non potevano essere programmate e l’utente doveva limitarsi a utilizzarle per eseguire un’operazione dopo l’altra. Macchine più complesse per la soluzione di problemi particolari •Inizio '800 Babbage –Macchina alle differenze –(tavole di calcolo) •Fine '800 Hollerith –Censimento U.S.A. 1890 –(utilizzo di schede perforate) •1927 Bush –Macchina per il calcolo degli integrali I primi calcolatori •Zuse (Germania) 1938 –Costruzione dello Z1 (interamente meccanico) –Operazioni binarie in virgola mobile –Nastro contenete le operazioni da eseguire –Passaggio ai relais (elettromeccanico) nella costruzione dello Z2 e successivamente dello Z3 (1941) I primi calcolatori •Aiken (U.S.A.) 1943 –Costruzione del Mark I nei laboratori I.B.M. –(elettromeccanico) •Prestazioni: –- somma in 0.3 secondi –- moltiplicazione in 4 secondi –- divisione in 10 secondi ENIAC (Electronic Numerical Integrator and Computer) •E’ la prima macchina completamente elettronica •Costruito nell’immediato dopoguerra, presso l’Università della Pennsylvania •Commissionato dal ministero della Difesa degli Stati Uniti allo scopo di calcolare le traiettorie di bombe e proiettili •Caratteristiche: –18 000 valvole termoioniche –30 tonnellate –alto 2 metri e mezzo –occupava 160 metri quadrati –aveva bisogno di 150 kilowatt di energia elettrica, che producevano una quantità di calore con cui si poteva riscaldare un intero palazzo ENIAC I Generazione - UNIVAC L'UNIVAC fu il primo calcolatore elettronico in grado di conservare il programma all'interno della memoria (grazie ad un'importante innovazione dovuta al matematico John Von Neumann). II Generazione (1955-1965) Tecnologia a transistor •TXO e TX2 macchine sperimentali costruite al MIT •Uno dei progettisti del TX2 fonda una propria società la Digital Equipment Corporation (DEC) • La DEC produce il PDP-1 (1961): – Memoria: 4k parole di 18 bit – – – – – Tempo di ciclo di 4 sec Prestazioni simili all’IBM 7090 Prezzo meno di un decimo Schermo grafico 512 512 pixel Comincia la produzione di massa (primi videogiochi) II Generazione: Minicomputer •DEC PDP-8 (1965) •Successore diretto del PDP-1 •Interconnessione a bus, molto flessibile •Architettura incentrata sull’I/O •Possibilità di connettere qualsiasi periferica •Prodotto in oltre 50.000 esemplari II Generazione: Supercomputer •Macchine molto potenti dedicate al number crunching •10 volte più veloci del 7090 • Architettura molto sofisticata • Parallelismo all’interno della CPU • Nicchia di mercato molto specifica (resta vero anche oggi) • CDC 6600 (1964) • Progettista del CDC 6600 è Seymour Cray, poi fondatore della CRAY III Generazione (1965-1980) Tecnologia LSI e VLSI • Evoluzione dell’architettura HW – Microprogrammazione – Unità veloci floating-point – Processori ausiliari dedicati alla gestione dell’I/O •Evoluzione dei Sistemi Operativi – Virtualizzazione delle risorse – Multiprogrammazione: esecuzione concorrente di più programmi – Memoria Virtuale: rimuove le limitazioni dovute alle dimensioni della memoria fisica III Generazione IBM: Serie IBM System/360 (famiglia elab.) •Macchine con lo stesso linguaggio •Range di prestazioni (e prezzo) 1-20 •Completa compatibilità •Portabilità totale delle applicazioni • OS comune OS/360 Digital PDP 11 •Architettura a bus (Unibus) •Prodotto in milioni di esemplari •Sistema operativo UNIX, indipendente dalla piattaforma I primi microprocessori Il termine microprocessore venne usato per la prima volta da Intel nel 1971, quando introdusse un computer microprogrammabile su un unico chip, la CPU Intel 4004 era completa di: - sommatore parallelo a 4 bit - 16 registri a 4 bit - un accumulatore - uno stack Frequenza massima di clock: 740KHz. Con l’aggiunta di memorie di tipo RAM e ROM, la CPU 4004 costituiva il sistema MCS-4. Realizzata con la stessa tecnologia, nel 1972 uscì la CPU Intel 8008, la prima in grado di operare a 8 bit. Frequenza massim di clock: 800KHz. …. nacque il Personal Computer •fine anni 70: Apple I, progettato in un garage nel tempo libero, venduto in scatola di montaggio •1981 PC IBM con Intel 8088 e MS DOS (Disk Operating System) della minuscola Microsoft •1981 PC M-20, della Olivetti processore Z8001 a 16 bit, OS proprietario, PCOS •1983 PC M-24, della Olivetti processore 8086, MS DOS •Informatica diffusa non solo per specialisti (importanza dei videogames) •Duopolio Intel/Microsoft •Apple: “prestazioni migliori” , “costi elevati”, come vedremo dovuta a migliore organizzazione dei bus Calcolatore elettronico oggi… Sistema elettronico digitale programmabile Elettronico digitale • Sfrutta componenti elettronici digitali (porte logiche) che operano su grandezze binarie (bit) che possono assumere due soli valori (0 e 1) Sistema: Parti (o componenti) che interagiscono in modo organico fra loro (architettura di von Neumann) Programmabile • Il comportamento del sistema è flessibile e specificato mediante un programma, ossia un insieme di ordini Vantaggi dei sistemi digitali •Riproducibilità del segnale analogico –a meno dell’errore di rappresentazione •Facilità di progetto •Flessibilità •Programmabilità •Velocità di funzionamento (ns, 10-9 s) •Economia Struttura di un moderno elaboratore •La struttura tipica di un calcolatore elettronico assume la forma attuale in base ad almeno due svolte tecnologiche fondamentali: – un modello costruttivo storico riconducibile allo scienziato austriaco J. Von Neumann (architettura di Von Neumann) anni ’40/’50 –l’invenzione del microprocessore da parte del tecnico italiano F. Faggin (microprocessore Intel 4004) 1971. Alberto Ferrari Modelli di Riferimento Un sistema di elaborazione, in generale, è una macchina che accetta in ingresso informazioni codificate in forma digitale, le elabora e produce informazioni in uscita. I blocchi funzionali che lo compongono sono: •Unità aritmetica •Unità di controllo •Memoria •Bus di comunicazione Un computer, rispetto a una macchina calcolatrice convenzionale, ha in più il concetto di programma memorizzato. Dati e istruzioni nella stessa memoria: modello di Von Neumann. Dati e istruzioni in memorie separate: modello Harvard. Architettura von Neumann Unità Aritmetica Dati Memoria B U S Stato Istruzioni Unità di Controllo Indirizzi Istruzioni Descrizione Lo schema si basa su quattro componenti fondamentali: •L’Unità di controllo si occupa di controllare tutte le operazioni del calcolatore, interpretare le istruzioni prelevate dalla memoria e inviare alle altre unità i segnali per l'esecuzione delle operazioni. •L’Unità aritmetico-logica, detta ALU (Arithmetic & Logic Unit), fornisce la capacità di effettuare operazioni aritmetiche di base Queste due unità sono spesso integrate in una CPU, Central Processing Unit – Unità di Elaborazione Centrale •La Memoria che ha lo scopo di conservare le istruzioni e i dati da elaborare e i risultati ottenuti dalle elaborazioni; •Il Bus, è un canale di comunicazione bidirezionale che collega tutti i componenti fra loro e che consente ai dati di transitare fra diversi componenti del calcolatore. Ad esso possono connettersi Le Unità di ingresso (Input) che immettono le informazioni nel calcolatore per farle elaborare; Le Unità di uscita (Output) che ricevono le informazioni dalla memoria del calcolatore per renderle pronte all’uso; Caratteristiche Fondamentali •Memoria Unica per Dati e Programma (RAM) •L’ipotesi di partenza è che sia le istruzioni che i dati sono disponibili in memoria (ad esempio sono state opportunamente “caricate” nella memoria usando l’unità di input) •Macchina di ridotta complessità •Criterio di valutazione di una architettura • Individuazione dei blocchi “congestionati” •Limiti –Unica memoria –Unico BUS (Collo di Bottiglia) Architettura Harvard Unità Aritmetica Dati Memoria Dati Stato Istruzioni Unità di Controllo Istruzioni Indirizzi Memoria Istruzioni Caratteristiche fondamentali •Memoria Dati • Accesso diretto alla ALU • Realizzazione: RAM •Memoria Istruzioni • Il contenuto rimane invariato • Realizzazione con memoria non volatile: ROM •Non presenta particolari “Colli di bottiglia” •Può essere migliorata per aumentarne la conccorrenzialità •Architettura alla quale si ispirano gli attuali microprocessori La CPU – Generalità la CPU, acronimo di Central Processing Unit, è l’unità centrale di elaborazione. Prende il nome di processore poiché svolge sistematicamente precise operazioni, elabora dunque un “processo”. Infatti, legge le istruzioni e i dati dalla memoria ed esegue le istruzioni. Tra le più famose industri costruttrici si annoverano: Intel, Motorola, IBM, AMD La CPU – Generalità Una caratteristica fondamentale del processore è la sua velocità, cioè la capacità di eseguire uno o più operazioni al secondo. Questa velocità viene regolata da un orologio, detto “clock”. La cosiddetta velocità di clock viene espressa in Hertz o cicli al secondo. Il legame tra la velocità di clock e la capacità elaborativa del processore è molto complesso. Molto spesso, tuttavia, si può affermare che maggiore è la velocità di esecuzione delle singole operazioni maggiore è la potenza del processore. La CPU – Generalità A livello fisico i processori sono realizzati (con un processo detto di “integrazione”) su chip contenenti milioni di transistor. Ogni transistor può essere visto come un interruttore che con il suo stato di “aperto” o “chiuso” può elaborare un bit di informazione. Il processore si connette alla scheda madre mediante opportuni “piedini” (ovvero piccoli connettori elettrici). La CPU – Generalità Il processore viene realizzato mediante una tecnologia detta a circuito integrato che produce un componente detto chip. Un chip si può descrivere come un insieme di cristalli di silicio lavorati e assemblati. Le piastrine di silicio vengono esposte a sostanze chimiche, per rendere possibile il passaggio di corrente elettrica. Il silicio così trattato diventa semiconduttore. Le barre di silicio vengono poi tagliate in sottili lamine dette wafer che contengono molti chip (vedi figura a lato). I singoli chip vengono testati e quelli non idonei scartati mentre quelli validi verranno estratti dal wafer con un laser o con un diamante. chip wafer La CPU – Generalità Per poterli maneggiare facilmente i chip vengono messi all'interno di un supporto di plastica mediante un procedimento detto packaging (impacchettamento). Il packaging del 486 Dato l’elevato livello di integrazione raggiunto (in un chip di lato 1 cm x 1 cm sono oggi presenti milioni di transistor) uno dei grandi problemi da affrontare è il surriscaldamento provocato dal passaggio della corrente. Per evitare che il processore si surriscaldi e lavori male, o che addirittura si guasti completamente, viene coperto da una sostanza morbida refrigerante e sopra di esso viene montata una ventola a motore. Vista ingrandita del chip