Introduzione Architetture dei Calcolatori (lettere A-I) La “rivoluzione” informatica • Dopo la rivoluzione agricola e quella industriale – Nascita della “Società della Informazione” • Innovazione e progresso senza precedenti – Se l’industria dei trasporti avesse avuto la stessa rapida evoluzione della tecnologia informatica • Oggi sarebbe possibile volare in 5 secondi da Roma a Stoccolma con 50 centesimi! – Oggi, con meno di 1000 € si acquista un PC che ha migliori prestazioni, maggiore quantità di memoria e maggiori dimensioni del disco di un computer acquistato nel 1980 per 1000000 €! • Non è tutto “rose e fiori” – Sviluppo disordinato per la veloce obsolescenza – Necessario un processo di aggiornamento continuo • Hardware, software ed anche livello di conoscenza delle persone Architetture dei Calcolatori 2004/05 Valeria Cardellini 1 1 Classi di computer • Tre principali classi di computer (e relativi settori di mercato), caratterizzate da diverse applicazioni, requisiti e tecnologie • Desktop computer – Più nota, tende ad ottimizzare il rapporto prezzo/prestazioni per un singolo utente • Server – Fornitura di servizi a larga scala, efficienti, affidabili, disponibili e scalabili (accelerazione dovuta alla rapida diffusione dei servizi basati sul Web); caratterizzata dal più ampio range di capacità computazionale e costo • Embedded computer – Più diffusa, maggiore tasso di crescita nel mercato; presenta il più ampio range di applicazioni e prestazioni (ad es. sofisticati router di rete, telefoni cellulari); spesso caratterizzata da requisiti real-time (massimo tempo di esecuzione consentito) e di consumo elettrico Architetture dei Calcolatori 2004/05 Valeria Cardellini 2 Classi di computer (2) • Diverso tasso di crescita delle tre classi negli ultimi anni – Embedded computer: 40% per anno – Desktop computer e server: 9% anno Architetture dei Calcolatori 2004/05 Valeria Cardellini 3 2 Dietro un programma • Esperienza da programmatori – Concentrata • • • • Sul linguaggio di programmazione (C, C++, Java, …) Sul problema da risolvere Su come risolvere il problema (algoritmo) Su come progettare il proprio sistema software • Il programmatore basa il proprio lavoro su vari strati di sistemi software, organizzati in modo gerarchico • Il sistema operativo • Il compilatore • … • Per poter scrivere un programma efficiente occorre conoscere l’architettura dei calcolatori Architetture dei Calcolatori 2004/05 Valeria Cardellini 4 Un sistema elettronico: il computer • Comunicare con un computer – Tramite segnali elettrici • Uso di un alfabeto binario – Sistema in base 2: cifre 0 e 1 (bit = Binary digiT) • Comandi al computer – Istruzioni – Rappresentate da numeri • Esempio: la sequenza di bit 1000110010100000 – Rappresenta l’istruzione binaria “somma due numeri” Architetture dei Calcolatori 2004/05 Valeria Cardellini 5 3 Dalle istruzioni in binario all’assembler • Programmazione in linguaggio macchina binario • Per semplificare e velocizzare: si usa un programma assemblatore che – Prende in ingresso un programma scritto in assembler • Linguaggio composto da istruzioni simboliche che corrispondono a istruzioni binarie • Genera il corrispondente programma in linguaggio macchina • Ad esempio – L’assemblatore prende un’istruzione del tipo: add A, B – La traduce in 1000110010100000 Architetture dei Calcolatori 2004/05 Valeria Cardellini 6 Un programma in assembler swap: • Un esempio di traduzione • Da un programma in assembler MIPS ad un programma in linguaggio macchina binario muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 assemblatore 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 Architetture dei Calcolatori 2004/05 Valeria Cardellini 00000011111000000000000000001000 7 4 Da un linguaggio di programmazione ad alto livello all’assembler • Una semplificazione ulteriore – Un programma compilatore traduce da un linguaggio di programmazione ad alto livello in linguaggio assembler • Un linguaggio di programmazione ad alto livello – Offre astrazioni notevoli • • • • Variabili, tipizzazione dei dati Procedure, funzioni Programmazione ad oggetti Gestione di eccezioni – Aumenta la produttività del programmatore – Permette al programma di essere indipendente dal computer sul quale viene sviluppato Architetture dei Calcolatori 2004/05 Valeria Cardellini 8 Il processo di traduzione completo swap: swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } compilatore Programma in linguaggio ad alto livello Programma in linguaggio assembler (MIPS) muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 assemblatore 00000000101000010000000000011000 00000000100011100001100000100001 Programma in linguaggio macchina binario (MIPS) 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 Architetture dei Calcolatori 2004/05 Valeria Cardellini 10101100011000100000000000000100 000000111110000000000000000010009 5 Il meccanismo di astrazione • L’astrazione permette di progettare a livelli – Ogni livello conosce solamente quello che lo strato immediatamente sottostante mette a disposizione ed offre dei servizi al livello immediatamente superiore • E’ un principio di progettazione universale in informatica – Progettazione software • Livelli di rete TCP/IP, gerarchia ISO/OSI – Progettazione hardware • Progettazione per moduli e sottosistemi • Nella programmazione, il linguaggio ad alto livello astrae e semplifica le complicazioni del linguaggio assembler; a sua volta, il linguaggio assembler svolge la stessa funzione verso il linguaggio macchina Architetture dei Calcolatori 2004/05 Valeria Cardellini 10 Architettura del set di istruzioni, organizzazione e hardware • L’architettura del set di istruzioni di un calcolatore – Descrive le caratteristiche del sistema che hanno un’influenza diretta sull’esecuzione di un programma – Si tratta della parte visibile al programmatore (anche ai compilatori) • Organizzazione del calcolatore – Si riferisce alle unità operazionali ed alla loro interconnessione ad alto livello – E’ la parte del sistema che realizza le specifiche dell’architettura del set di istruzioni • Hardware del calcolatore – Si riferisce alle specifiche del calcolatore, inclusi i dettagli sul livello logico-digitale e la tecnologia di packaging Architetture dei Calcolatori 2004/05 Valeria Cardellini 11 6 L’architettura del set di istruzioni • L’architettura del set di istruzioni di un calcolatore si riferisce a – Insieme delle istruzioni – Numero di bit che rappresentano tipi di dati – Tecniche di indirizzamento della memoria, … ... the attributes of a [computing] system as seen by the programmer, i.e. the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls of the logic design, and the physical implementation. – Amdahl, Blaaw, and Brooks (1964) L’insieme delle istruzioni rappresenta un’interfaccia critica tra l’hardware ed il software di basso livello software instruction set hardware Architetture dei Calcolatori 2004/05 Valeria Cardellini 12 Organizzazione di un calcolatore • L’organizzazione di un calcolatore si riferisce a – Capacità e caratteristiche prestazionali delle principali unità funzionali che compongono il sistema (ad esempio registri, ALU, ...) – Segnali di controllo scambiati tra le diverse unità funzionali che compongono il sistema – Modo in cui le unità funzionali sono interconnesse – Organizzazione del sottosistema di memorizzazione – … • Il termine “architettura di un calcolatore” copre tutti e tre gli aspetti (architettura del set di istruzioni, organizzazione e hardware) Architetture dei Calcolatori 2004/05 Valeria Cardellini 13 7 Architettura di riferimento dei calcolatori • Architettura di Von Neumann (1946) • Un calcolatore deve essere in grado di svolgere i seguenti compiti – – – – – Memorizzare i dati sui quali operare Memorizzare sequenze di istruzioni Eseguire le istruzioni sui dati Controllare il flusso di esecuzione Comunicare con gli utenti e con altri dispositivi Sottosistema di elaborazione Sottosistema di memorizzazione Sottosistema di interfaccia Sottosistema di interconnessione Architetture dei Calcolatori 2004/05 Valeria Cardellini 14 Componenti principali di un calcolatore Processore Unità di controllo Unità di elaborazione dati Dispositivi di input Memoria Tastiera Mouse Disco Monitor Dispositivi di output Stampante • Processore o unità centrale di elaborazione (Central Processing Unit – CPU) • Memoria principale (Main Memory – MM) • Dispositivi di Input/Output (I/O) e loro interfacce Architetture dei Calcolatori 2004/05 Valeria Cardellini 15 8 … e loro interconnessione Processore Unità di controllo Unità di elaborazione dati Bus Dispositivi di I/O Dispositivi di I/O Interfaccia di I/O Interfaccia di I/O Memoria dati indirizzi controllo • Bus di sistema: collega i componenti principali di un calcolatore (linee dati, indirizzo, controllo) Architetture dei Calcolatori 2004/05 Valeria Cardellini 16 All’esterno della scatola… il mouse • Sistema di puntamento • Inventato negli anni 1960 (da Doug Engelbart) • Mouse elettromeccanico che usa una sfera – La rotazione della sfera fa scorrere due rotelle lungo gli assi x e y – La composizione degli spostamenti delle rotelle determina lo spostamento effettivo – 3 byte inviati ogni volta che il mouse fa un certo spostamento minimo: 1 - Spostamento sull’asse x 2 - Spostamento sull’asse y 3 - Posizione dei bottoni • Per i mouse più recenti usata la tecnologia ottica – Il mouse è in realtà un processore ottico in miniatura Architetture dei Calcolatori 2004/05 Valeria Cardellini 17 9 All’esterno della scatola… il monitor • Monitor CRT • Usa la stessa tecnologia del televisore ma con prestazioni migliori – Tubo a raggi catodici (Cathode Ray Tube – CRT) • L’immagine viene scandita da un raggio su uno schermo rivestito di fosfori – Refresh rate: frequenza con cui i quadri sono riprodotti (es. 85 Hz) • L’immagine è composta da una matrice di pixel – Risoluzione dello schermo: numero di pixel (es. 1024x768) – Colori: 24 bit per pixel per le componenti rosso (R), verde (G), blu (B) Architetture dei Calcolatori 2004/05 Valeria Cardellini 18 All’esterno della scatola… il monitor (2) • Monitor LCD • Basato sulla conduzione di luce polarizzata da parte dei cristalli liquidi (Liquid Crystal Display - LCD) • Il pixel LCD non è la sorgente della luce, bensì controlla la trasmissione della luce • Conduzione influenzata da campi elettrici • Campi generati da elettrodi trasparenti • Display a matrice attiva – Elementi luminosi (pixel) controllati da una matrice di selezione – Migliori ma costosi Architetture dei Calcolatori 2004/05 Valeria Cardellini 19 10 Dentro la scatola… la scheda madre • La base della struttura è costituita dalla scheda madre (motherboard) • Contiene circuiti integrati o chip – Il processore, la memoria, la cache, i connettori per i dispositivi di I/O • Serve ad assicurare – La connessione tra le varie componenti • Il processore, la memoria, la cache, i dispositivi di I/O – L’alimentazione a tutte le componenti – Controllo dello stato della macchina • Il bus è costituito da una serie di piste sul circuito stampato • In genere implementa anche alcune funzionalità – Controller hard disk – Scheda audio/video integrata Architetture dei Calcolatori 2004/05 Valeria Cardellini 20 Dentro la scatola… la scheda madre (2) Processore Pentium 4 Processore Interfaccia del processore Slot bus I/O Architetture dei Calcolatori 2004/05 Valeria Cardellini M e m o r i a Disco e interfaccia USB Grafica 21 11 Dentro la scatola… la memoria principale • Contiene sia le istruzioni che i dati necessari ai programmi in esecuzione • Memorizzazione binaria (bit) di istruzioni e dati • L’unità di misura della capacità di memoria è il bit – In genere si adotta il byte (pari a 8 bit) ed i suoi multipli • Kbyte (210 = 1024 byte), Mbyte (220 = 1048576 byte), Gbyte (230 = 1073741824 byte), Tbyte (240 byte) • Caratterizzata anche dalla dimensione di ogni singolo elemento (cella o parola) che può essere trasferito – Da 32 bit a 128 bit nei calcolatori più recenti • Ad ogni parola di memoria è associato un indirizzo composto da k bit, tramite il quale il processore accede all’informazione memorizzata nella parola • I 2k indirizzi (corrispondenti a 2k parole) costituiscono lo spazio di indirizzamento del calcolatore – Indirizzo a 32 bit → spazio di indirizzamento di 232 o 4G parole Architetture dei Calcolatori 2004/05 Valeria Cardellini 22 Caratteristiche della memoria principale • Tempo di accesso in memoria: tempo necessario per rispondere ad una richiesta di lettura o scrittura • Memoria ad accesso casuale (Random Access Memory - RAM) – Il tempo di accesso è costante ed indipendente dall’indirizzo della cella a cui si vuole accedere e dalla sequenza dei precedenti accessi • Memoria volatile: il contenuto delle celle viene perso ad ogni interruzione della corrente di alimentazione Architetture dei Calcolatori 2004/05 Valeria Cardellini 23 12 Dentro la scatola… il disco rigido • Memoria secondaria (o di massa) – Non volatile • Non necessita di alimentazione per mantenere i dati memorizzati – Di grande capacità – Economica • Basata su tecnologia magnetica/ottica o un mix • Esempi – Hard disk (disco rigido o magnetico) • Confezionati in un package che unisce diversi dischi – – – – Dischi ottici: CD, DVD Memorie FLASH removibili Floppy e Zip drive Nastri magnetici Architetture dei Calcolatori 2004/05 Valeria Cardellini 24 Dentro la scatola… il disco rigido (2) Testina Motore per la rotazione dei dischi • Costituito da un insieme di piatti rotanti (da 1 a 15) • Piatti rivestiti di una superficie magnetica • Esiste una testina (bobina) per ogni faccia – Generalmente piatti a doppia faccia • Le testine di facce diverse sono collegate tra di loro e si muovono contemporaneamente • Velocità di rotazione costante (ad es. 7200 RPM) Architetture dei Calcolatori 2004/05 Valeria Cardellini 25 13 L’organizzazione dei dati sul disco tracce settori traccia • Suddivisione della superficie del disco in anelli concentrici, detti tracce • Registrazione seriale su tracce concentriche – 1000-5000 tracce • Tracce adiacenti separate da spazi • Ciascuna traccia è divisa in settori – Il settore è la più piccola unità che può essere trasferita (scritta o letta) – Centinaia di settori per traccia, generalmente di lunghezza fissa (ad es., 512 byte) – Il settore contiene, tra l’altro, un ID del settore, i dati e un codice di correzione di errore: la capacità formattata scende del 15% • La stessa traccia su piatti diversi forma un cilindro Architetture dei Calcolatori 2004/05 Valeria Cardellini 26 L’organizzazione dei dati sul disco rigido (2) • Nei dischi più vecchi – Ogni traccia conteneva lo stesso numero di settori – Le tracce esterne (più lunghe) memorizzavano informazioni con densità minore • Nei dischi recenti – Per aumentare le prestazioni del disco, si utilizzano maggiormente le tracce esterne: zoned bit recording (o multiple zone recording) – Tracce raggruppate in zone sulla base della loro distanza dal centro • Una zona contiene lo stesso numero di settori per traccia – Più settori per traccia nelle zone esterne rispetto a quelle interne – Densità di registrazione (quasi) costante Architetture dei Calcolatori 2004/05 Valeria Cardellini 27 14 Lettura/scrittura di un disco • Il processo di lettura/scrittura è composta da tre fasi: - Posizionamento della testina sul cilindro desiderato (tempo di posizionamento o seek) • Dischi di diametro piccolo permettono di ridurre il tempo di posizionamento - Attesa che il settore desiderato ruoti sotto la testina di lettura/scrittura (latenza di rotazione) - Operazione di lettura o scrittura di un settore (tempo di trasferimento) Architetture dei Calcolatori 2004/05 Valeria Cardellini 28 Relazione tra tecnologia e informatica • La tecnologia è alla base della rapidissima evoluzione dell’informatica • Evoluzione rapidissima – Prestazioni relative per unità di costo delle tecnologie usate nei computer Anno Tecnologia Prestazioni 1951 Valvola 1 1965 Transistor 35 1975 Circuito integrato 900 1995 Circuito integrato a larghissima scala 2.400.000 2005 Circuito integrato a ultra scala 6.200.000.000 Architetture dei Calcolatori 2004/05 Valeria Cardellini 29 15 I circuiti integrati • Un transistor è un interruttore (on/off) pilotato da segnali elettrici • Un circuito integrato combina un insieme di transistor su un pezzo di silicio (chip) • Rapido aumento della capacità di integrare – Un maggior numero di componenti su aree via via più piccole • Legge di Moore – Il numero di transistor su di un chip raddoppia ogni 18 mesi – Circa un aumento del 60% all’anno (quadruplica ogni 3 anni) – Conseguenze della legge di Moore • Aumento della capacità dei chip di memoria • Aumento della capacità delle CPU Architetture dei Calcolatori 2004/05 Valeria Cardellini 30 Legge di Moore per CPU • Più transistor in una CPU significano: Densità logica dei microprocessori Architetture dei Calcolatori 2004/05 Valeria Cardellini – Eseguire direttamente istruzioni più complesse – Maggiore memoria sul chip (cache) – Maggiore parallelismo interno • N.B. Altro fattore tecnologico decisivo è la frequenza di funzionamento 31 16 Evoluzione della tecnologia Capacità di un chip di memoria (DRAM) Anno Dimensione 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 512 Mb Processore • 2X in velocità ogni 1,5 anni (dal 1985) • 100X in prestazioni nell’ultimo decennio Memoria • Capacità DRAM: 2X ogni 2 anni (dal 1996) • 64X in miglioramento della dimensione nell’ultimo decennio Disco • Capacità: 2X ogni anno (dal 1997) • 250X in dimensione nell’ultimo decennio Architetture dei Calcolatori 2004/05 Valeria Cardellini 32 Il processo di produzione • Il silicio è un semiconduttore – Non conduce bene l’elettricità • E’ possibile modificare il silicio in modo che – Si comporti da conduttore – Si comporti come un isolante – Si comporti come un conduttore o isolante a seconda delle condizioni (come un interruttore o transistor) • Il processo di produzione – Parte da un lingotto di silicio – Tagliato orizzontalmente in wafer (2mm di spessore) – Tagliato in die (chip) Architetture dei Calcolatori 2004/05 Valeria Cardellini 33 17 Il processo di produzione (2) Architetture dei Calcolatori 2004/05 Valeria Cardellini 34 Evoluzione dei calcolatori • Prima fase: macchine meccaniche – Pascaline di Pascal (1632-1662), macchina differenziale e macchina analitica di Babbage (1792-1871) • Seconda fase: appare l’elettronica – Relè, tubi a vuoto, transistor • Terza fase: computer digitali • Quarta fase: networking • Quinta fase: quantum computing? Architetture dei Calcolatori 2004/05 Valeria Cardellini 35 18 Le principali pietre miliari Quasi tutta l’evoluzione ha avuto luogo negli ultimi 55 anni Architetture dei Calcolatori 2004/05 Valeria Cardellini 36 19