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 Introduzione • 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 €! Architetture dei Calcolatori (lettere A-I) • 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 Classi di computer 1 Classi di computer (2) • Tre principali classi di computer (e relativi settori di mercato), caratterizzate da diverse applicazioni, requisiti e tecnologie • Desktop computer • Diverso tasso di crescita delle tre classi negli ultimi anni – Embedded computer: 40% per anno – Desktop computer e server: 9% anno – 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 Architetture dei Calcolatori 2004/05 Valeria Cardellini 3 1 Dietro un programma Un sistema elettronico: il computer • Esperienza da programmatori • Comunicare con un computer – Concentrata • • • • – Tramite segnali elettrici Sul linguaggio di programmazione (C, C++, Java, …) Sul problema da risolvere Su come risolvere il problema (algoritmo) Su come progettare il proprio sistema software • Uso di un alfabeto binario – Sistema in base 2: cifre 0 e 1 (bit = Binary digiT) • Comandi al computer • Il programmatore basa il proprio lavoro su vari strati di sistemi software, organizzati in modo gerarchico – Istruzioni – Rappresentate da numeri • Il sistema operativo • Il compilatore • … • Esempio: la sequenza di bit 1000110010100000 – Rappresenta l’istruzione binaria “somma due numeri” • Per poter scrivere un programma efficiente occorre conoscere l’architettura dei calcolatori Architetture dei Calcolatori 2004/05 Valeria Cardellini 4 Architetture dei Calcolatori 2004/05 Valeria Cardellini 5 Un programma in assembler Dalle istruzioni in binario all’assembler swap: • Un esempio di traduzione • Programmazione in linguaggio macchina binario • Per semplificare e velocizzare: si usa un programma assemblatore che • Da un programma in assembler MIPS ad un programma in linguaggio macchina binario – 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 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 • Ad esempio 00000000101000010000000000011000 – L’assemblatore prende un’istruzione del tipo: add A, B – La traduce in 1000110010100000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 Architetture dei Calcolatori 2004/05 Valeria Cardellini 6 Architetture dei Calcolatori 2004/05 Valeria Cardellini 00000011111000000000000000001000 7 2 Da un linguaggio di programmazione ad alto livello all’assembler Il processo di traduzione completo • 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 compilatore Programma in linguaggio ad alto livello – Offre astrazioni notevoli • • • • swap: swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Variabili, tipizzazione dei dati Procedure, funzioni Programmazione ad oggetti Gestione di eccezioni 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 – Aumenta la produttività del programmatore – Permette al programma di essere indipendente dal computer sul quale viene sviluppato 00000000100011100001100000100001 Programma in linguaggio 10001100011000100000000000000000 macchina binario (MIPS) 10001100111100100000000000000100 10101100111100100000000000000000 Architetture dei Calcolatori 2004/05 Valeria Cardellini 8 Architetture dei Calcolatori 2004/05 Valeria Cardellini 10101100011000100000000000000100 00000011111000000000000000001000 9 Architettura del set di istruzioni, organizzazione e hardware Il meccanismo di astrazione • L’astrazione permette di progettare a livelli • L’architettura del set di istruzioni di un calcolatore – Ogni livello conosce solamente quello che lo strato immediatamente sottostante mette a disposizione ed offre dei servizi al livello immediatamente superiore – 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) • E’ un principio di progettazione universale in informatica – Progettazione software • Livelli di rete TCP/IP, gerarchia ISO/OSI • Organizzazione del calcolatore – Progettazione hardware – 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 • 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 • 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 10 Architetture dei Calcolatori 2004/05 Valeria Cardellini 11 3 L’architettura del set di istruzioni Organizzazione di un calcolatore • L’architettura del set di istruzioni di un calcolatore si riferisce a • 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 – … – 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 • Il termine “architettura di un calcolatore” copre tutti e tre gli aspetti (architettura del set di istruzioni, organizzazione e hardware) software instruction set hardware Architetture dei Calcolatori 2004/05 Valeria Cardellini 12 Architettura di riferimento dei calcolatori Processore Unità di controllo 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 Unità di elaborazione dati Sottosistema di interfaccia 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 Sottosistema di interconnessione Architetture dei Calcolatori 2004/05 Valeria Cardellini 13 Componenti principali di un calcolatore • Architettura di Von Neumann (1946) • Un calcolatore deve essere in grado di svolgere i seguenti compiti – – – – – Architetture dei Calcolatori 2004/05 Valeria Cardellini 14 Architetture dei Calcolatori 2004/05 Valeria Cardellini 15 4 … e loro interconnessione All’esterno della scatola… il mouse Processore Unità di controllo Dispositivi di I/O Memoria Unità di elaborazione dati Bus • Sistema di puntamento • Inventato negli anni 1960 (da Doug Engelbart) • Mouse elettromeccanico che usa una sfera Dispositivi di I/O Interfaccia di I/O – 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 Interfaccia di I/O dati indirizzi controllo • Per i mouse più recenti usata la tecnologia ottica – Il mouse è in realtà un processore ottico in miniatura • 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 monitor 17 All’esterno della scatola… il monitor (2) • Monitor CRT • Usa la stessa tecnologia del televisore ma con prestazioni migliori • 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 – 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) – Elementi luminosi (pixel) controllati da una matrice di selezione – Migliori ma costosi – Colori: 24 bit per pixel per le componenti rosso (R), verde (G), blu (B) Architetture dei Calcolatori 2004/05 Valeria Cardellini Architetture dei Calcolatori 2004/05 Valeria Cardellini 18 Architetture dei Calcolatori 2004/05 Valeria Cardellini 19 5 Dentro la scatola… la scheda madre (2) Dentro la scatola… la scheda madre Processore Pentium 4 • 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 Processore • Serve ad assicurare – La connessione tra le varie componenti • Il processore, la memoria, la cache, i dispositivi di I/O Interfaccia del processore – 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à Slot bus I/O M e m o r i a Disco e interfaccia USB Grafica – Controller hard disk – Scheda audio/video integrata Architetture dei Calcolatori 2004/05 Valeria Cardellini 20 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 21 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) – 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) – Il tempo di accesso è costante ed indipendente dall’indirizzo della cella a cui si vuole accedere e dalla sequenza dei precedenti accessi • 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 • Memoria volatile: il contenuto delle celle viene perso ad ogni interruzione della corrente di alimentazione • 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 Architetture dei Calcolatori 2004/05 Valeria Cardellini 22 Architetture dei Calcolatori 2004/05 Valeria Cardellini 23 6 Dentro la scatola… il disco rigido (2) 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 Testina Motore per la rotazione dei dischi • Basata su tecnologia magnetica/ottica o un mix • Esempi • Costituito da un insieme di piatti rotanti (da 1 a 15) • Piatti rivestiti di una superficie magnetica • Esiste una testina (bobina) per ogni faccia – 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 – 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) 24 L’organizzazione dei dati sul disco Architetture dei Calcolatori 2004/05 Valeria Cardellini 25 L’organizzazione dei dati sul disco rigido (2) tracce • Nei dischi più vecchi – Ogni traccia conteneva lo stesso numero di settori settori – Le tracce esterne (più lunghe) memorizzavano informazioni con densità minore traccia • Nei dischi recenti • Suddivisione della superficie del disco in anelli concentrici, detti tracce • Registrazione seriale su tracce concentriche – 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 – 1000-5000 tracce • Tracce adiacenti separate da spazi • Una zona contiene lo stesso numero di settori per traccia • 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 – Più settori per traccia nelle zone esterne rispetto a quelle interne – Densità di registrazione (quasi) costante Architetture dei Calcolatori 2004/05 Valeria Cardellini 27 7 Lettura/scrittura di un disco Relazione tra tecnologia e informatica • La tecnologia è alla base della rapidissima evoluzione dell’informatica • Evoluzione rapidissima • 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 – Prestazioni relative per unità di costo delle tecnologie usate nei computer 28 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 Legge di Moore per CPU 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 • Più transistor in una CPU significano: • 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 Densità logica dei microprocessori 30 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 8 Evoluzione della tecnologia Capacità di un chip di memoria (DRAM) Anno Dimensione 1980 64 Kb 1983 256 Kb 1986 1989 1992 1 Mb 4 Mb 16 Mb 1996 1999 64 Mb 256 Mb 2002 512 Mb Il processo di produzione • Il silicio è un semiconduttore Processore • 2X in velocità ogni 1,5 anni (dal 1985) – Non conduce bene l’elettricità • E’ possibile modificare il silicio in modo che • 100X in prestazioni nell’ultimo decennio – 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) Memoria • Capacità DRAM: 2X ogni 2 anni (dal 1996) • 64X in miglioramento della dimensione nell’ultimo decennio Disco • Capacità: 2X ogni anno (dal 1997) • Il processo di produzione – Parte da un lingotto di silicio – Tagliato orizzontalmente in wafer (2mm di spessore) – Tagliato in die (chip) • 250X in dimensione nell’ultimo decennio Architetture dei Calcolatori 2004/05 Valeria Cardellini 32 Il processo di produzione (2) Architetture dei Calcolatori 2004/05 Valeria Cardellini 33 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 34 Architetture dei Calcolatori 2004/05 Valeria Cardellini 35 9 Le principali pietre miliari Quasi tutta l’evoluzione ha avuto luogo negli ultimi 55 anni Architetture dei Calcolatori 2004/05 Valeria Cardellini 36 10