Evoluzione dei Sistemi Prof. Giuseppe Pirlo Dipartimento di Informatica Università degli Studi di Bari Languages, Levels, Virtual Machines A multilevel machine Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Contemporary Multilevel Machines A six-level computer. The support method for each level is indicated below it . Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembler Sistema Operativo (1960) ISA Users: Programmatori (Traduzione) Contemporary Multilevel Machines Micoprogrammed ALU + registers (data path) Livello logico-digitale (gate) Users: Sistemisti (Interpretazione) (Wilkes ’51) vs “wired logic” A six-level computer. The support method for each level is indicated below it . Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Evolution of Multilevel Machines • Invention of microprogramming (Wikes 1951) • Invention of operating system (IBM 1960) (chiamate di sistema, sistemi batch/time-sharing) • Migration of functionality to microcode (CISC) • Elimination of microprogramming (RISC) Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Milestones in Computer Architecture (1) Some milestones in the development of the modern digital computer. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Milestones in Computer Architecture (2) Some milestones in the development of the modern digital computer. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Computer Generations • 0th Generation Mechanical Computers (1642 – 1945) • First Generation Vacuum Tubes (1945 – 1955) • Second Generation Transistors (1955 – 1965) • Third Generation Integrated Circuits (1965 – 1980) • Fourth Generation Very Large Scale Integration (1980 – …) (GUI, …) • Fifth Generation Pervasive Computers / Ubiquitous Computers (1990 – …) Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Von Neumann Machine (1952) The original Von Neumann machine. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 PDP-8 Innovation – Single Bus (1965) The PDP-8 omnibus Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 IBM 360 (1964) The initial offering of the IBM 360 product line. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Technological and Economic Forces Moore’s law predicts a 60-percent annual increase in the number of transistors that can be put on a chip. The data points given in this figure are memory sizes, in bits. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 The Computer Spectrum Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Intel Computer Family (1) The Intel CPU family. Clock speeds are measured in MHz (megahertz) where 1 MHZ is 1 million cycles/sec. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Intel Computer Family (2) The Pentium 4 chip. The photograph is copyrighted by the Intel Corporation, 2003 and is used by permission. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Intel Computer Family (3) Moore’s law for (Intel) CPU chips. Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Core i7 Introdotto nel 2008 come diretto discendente CPU 8088 (PC IBM) Core i7 (Architettura Nahalem – prima architettura): CPU a 4 processori, 731 milioni di transistor, frequenza 3,2 GHz , larghezza di linea 45 nanometri Core i7 (Architettura Sandy Bridge – architetture recenti): CPU da 2 a 6 processori, 1,16 miliardi di transistor, frequenza 3,5 GHz , larghezza di linea 32 nanometri - Retrocompatibilità (stesse funzionalità ISA): 80286, 80486, Pentium, Pentium II, Pentium Pro, Pentium III, Pentium 4 (stessi registri, stesse istruzioni, stesso standard in virgola mobile IEEE 754 su chip, ecc.) 17 Core i7 Packaging: - Supporto LGA (Land Grid Array) quadrato (37,5 mm di lato) con 1155 pad posti sul fondo. - Consuma tra i 17 e i 150 Watt (problemi di dissipazione di calore) 5 stati di funzionamento x risparmiare energia (da “piena esecuzione a quello di “sonno profondo”) 18 Parallelismo Tassonomia di Flynn Single Instruction Stream Multiple Instruction Stream Single Data Stream Multiple Data Stream SISD SIMD (Calcolatori sequenziali) (più processori eseguono la stessa istruzione su dati diversi) MISD MIMD (più processori eseguono istruzioni differenti sullo stesso dato – non realizzabile!) (più processori eseguono istruzioni differenti su dati differenti) Parallelismo a livello di istruzione (1) Per parallelismo si intende la capacità di eseguire più azioni allo stesso istante. Esistono due tipologie di parallelismo: – a livello di processore, e quindi sono presenti più processori che lavorano congiuntamente sullo stesso problema – a livello di istruzione, cioè il parallelismo viene sfruttato all’interno delle singole istruzioni per fare in modo che l’elaboratore esegue più istruzioni contemporaneamente. Uno dei concetti applicati è quello di pipeline. Il meccanismo di pipeline divide il ciclo di esecuzione in più parti e ciascuna parte è affidata ad una componente hardware. Parallelismo a livello di istruzione (2) a) b) Pipeline a cinque fasi Avanzamento degli stadi in funzione del tempo. Sono rappresentanti nove cicli Pipeline: Prestazioni Sia •k: numero di stadi della pipeline •n: numero di istruzioni da eseguire •t: tempo di uno stadio (tempo massimo). (si considerino inoltre trascurabili i tempi di commutazione da uno stadio al successivo) Allora il tempo totale richiesto Tpipe per eseguire le n istruzioni (senza salti) è: Tpipe=[k + (n-1)] t Il fattore di velocizzazione (speed-up) della pipeline rispetto ad una architettura tradizionale è: Tconvenzionale nkt nk T pipe [k (n 1)]t [k (n 1)] Multiprocessori Un sistema composto da più CPU ed una unica unità di memoria condivisa viene detto Multiprocessore. E’ necessario che le CPU siano ben sincronizzate per evitare conflitti nelle operazioni sulla memoria condivisa. Ad esempio: Se nella memoria è contenuta una immagine da elaborare è possibile affidare una sezione della immagine ad ogni CPU che eseguirebbe il medesimo programma delle altre sulla sezione di immagine ad essa affidata, riducendo il tempo di elaborazione dell’immagine Multicomputer Un multicomputer è un sistema composto da più CPU dotate di una memoria privata nel quale vengono contenuti dati che non sono condivisi ma utili all’elaborazione. Il minor scambio sul bus rende più veloce l’esecuzione. L’area condivisa è utilizzata per contenere, ad esempio, il codice del programma da eseguire. Le CPU sono così debolmente connesse e la comunicazione fra di loro avviene attraverso l’uso di messaggi che viaggiano sul bus che le collega. Parallelismo a livello di processore (1) Un array computer (ovvero un array di processori) consiste in un insieme di processori che eseguono le medesime istruzioni su insiemi diversi di dati. La singola unità di controllo invia i dati a ciascuna coppia processorememoria. Ogni processore esegue la medesima istruzione degli altri a passi sincronizzati sui dati contenuti nella memoria ad esso associata. Parallelismo a livello di processore (1) Sia P un processo e supponiamo che sia costituito da una frazione seriale fs (realizzabile in un tempo Ts) e da una frazione fp realizzabile in parallelo (realizzabile in un tempo Tp) dove ovviamente fs+fp =1. Sia T1 e Tn rispettivamente il tempo di esecuzione del processo su 1 ed n processori: T1=Ts+Tp (può essere considerato normalizzato a 1) Tn=Ts+Tp/n Lo speed-up S(n) con n processori è pari a T1/Tn (Legge di Andahl) T1 S ( n) Tn 1 1 n fp 1 f s nf s (1 f s ) f fs s n n