21/03/2007 Informatica Pietro Storniolo [email protected] http://www.pa.icar.cnr.it/storniolo/info200607 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Le infrastrutture HardWare L’architettura di riferimento Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Funzionalità Funzionalità di un calcolatore Trasferimento Ambiente esterno Controllo Elaborazione Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Memorizzazione Copyright © 2005 – The McGraw-Hill Companies srl 1 21/03/2007 Caratteristiche dell’ dell’architettura flessibilità flessibilità nel calcolo modularità odularità della struttura scalabilità scalabilità dei componenti standardizzazione dei componenti abbattimento dei costi semplicità semplicità di installazione e di esercizio del sistema disponibilità disponibilità di applicazioni a basso prezzo di vendita Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Il calcolatore: modello concettuale 2. Memorizzazione 1. Elaborazione Interconnessione 3. Comunicazione (interfaccia) Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Il calcolatore: modello architetturale 2. 1. Elaborazione Unità Centrale di Elaborazione Memoria Memorizzazione Memoria Magnetica Elettronica Interconnessione Collegamenti (BUS/Cavi) 3. Comunicazione (interfaccia) Periferiche Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 2 21/03/2007 Lo schema di riferimento Video/tastiera (terminale) Memoria di massa PC ALU Registri CPU Memoria Interfaccia di I/O Interfaccia di I/O dati BUS indirizzi controllo Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Lo schema di riferimento RAM CPU Scheda madre (motherboard) Bus dati Bus indirizzi Bus di controllo Interfacce di I/O Interfaccia di I/O Tastiera e mouse Schermo Memoria di massa Altoparlanti Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Connettori per schede di I/O aggiuntive Interfacce di I/O Copyright © 2005 – The McGraw-Hill Companies srl Scheda madre Zoccolo per la CPU Connettori per la memoria Connettori per dischi fissi Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 3 21/03/2007 Collegamento a BUS ☺ Semplicità Semplicità ☺ Estendibilità Estendibilità ☺ Standardizzabilità Standardizzabilità • • • un’unica linea di connessione costi ridotti di produzione aggiunta di nuovi dispositivi molto semplice regole per la comunicazione da parte di dispositivi diversi Lentezza • utilizzo in mutua esclusione del bus Limitatà Limitatà capacità capacità • al crescere del numero di dispositivi collegati Sovraccarico del processore (CPU) • perchè funge da master sul controllo del bus Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Le infrastrutture HardWare Il processore Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl CPU – Central Processing Unit Unità Unità Centrale di Elaborazione Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 4 21/03/2007 Organizzazione tipica di un calcolatore “bus oriented” oriented” CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl L’ “esecutore” esecutore” Un calcolatore basato sull’ sull’architettura di Von Neumann esegue un programma sulla base dei seguenti principi: • dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura; • i contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto; • le istruzioni vengono eseguite in modo sequenziale. Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali: • il concetto di tipo di dato è quasi assente, • il numero di operandi è limitato (in genere non più di due), • il numero di operazioni previste è ridotto. Struttura istruzione codice operativo dest src1 src2 Linguaggio assemblatore add R01 R02 R03 Linguaggio macchina 000000 00000 100000 00001 00010 00011 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Ciclo Fetch– Fetch–Decode– Decode–Execute Fetch Decode Execute Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 5 21/03/2007 Le parti di una CPU Data path (o percorso dei dati) dati) • è la parte che si occupa dell’effettiva elaborazione dei dati; • comprende dispositivi diversi • una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit); • alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro). Unità Unità di controllo • coordina le operazioni di tutto il processore (anche quelle del data path!); • regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all’uscita dell’ALU; • invia all’ALU il codice dell’operazione da eseguire; • riceve indicazioni sull’esito dell’operazione appena eseguita dall’ALU e gestisce opportunamente queste informazioni; • comprende alcuni registri di uso specifico • Program Counter (PC) – qual è l’istruzione successiva; • Instruction Register (IR) – istruzione in corso d’esecuzione; • … Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Data Path Registri … … … … R00 R01 R02 R03 X Registri ingresso ALU add Registro uscita ALU X Y X + Y esito A L U X + Y Y Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Unità di controllo PSW Bus dati Data path Bus indirizzi CPU Bus controllo Unità Unità di controllo IR PC Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Memoria Copyright © 2005 – The McGraw-Hill Companies srl 6 21/03/2007 CPU In grado di eseguire solo istruzioni codificate in linguaggio macchina Ciclo Fetch – Decode - Execute 1. Prendi l’istruzione corrente dalla memoria (quella individuata dal contenuto del PC) e mettila nell’IR (Instruction Register), contemporaneamente incrementa il Program Counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva (fetch) 2. Determina il tipo di istruzione da eseguire (decode) 3. Se l’istruzione usa dei dati presenti in memoria, determinane la posizione; 4. Carica la parola, se necessario, in un registro della CPU; 5. Esegui l’istruzione (execute) 6. Torna al punto 1 e inizia a eseguire l’istruzione successiva. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Tre tipologie di istruzioni Istruzioni aritmeticoaritmetico-logiche (Elaborazione dati) • Somma, Sottrazione, Divisione, … • And, Or, Xor, … • Maggiore, Minore, Uguale, Minore o uguale, … Controllo del flusso delle istruzioni • Sequenza • Selezione semplice, a due vie, a n vie, … • Ciclo a condizione iniziale, ciclo a condizione finale, … Trasferimento di informazione • Trasferimento dati e istruzioni tra CPU e memoria • Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce) Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Tipologie di istruzioni Architettura di riferimento: load/ load/store • le operazioni aritmetico-logiche possono essere eseguite solo su dati che siano già stati caricati nei registri; • le operazioni di caricamento dei dati dalla memoria nei registri (load) e di archiviazione dei risultati dai registri nella memoria (store) debbono essere previste esplicitamente. Un processore in architettura load/ load/store dovrà dovrà quindi essere in grado di eseguire le seguenti categorie di istruzioni: • Istruzioni aritmeticoaritmetico-logiche (Elaborazione dati) • Somma, Sottrazione, Divisione, … • And, Or, Xor, … • Maggiore, Minore, Uguale, Minore o uguale, … • Controllo del flusso delle istruzioni • Sequenza • Salto condizionato o non condizionato (per realizzare selezioni e cicli) • Trasferimento di informazione • Trasferimento dati e istruzioni tra CPU e memoria • Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce) Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 7 21/03/2007 Esempi di istruzioni Istruzione add R01,R02,R03 Significato Categoria R01 ← R02 + R03 aritmetico-logica aritmetico-logica addi R01,R02,421 R01 ← R02 + 421 lw R01,R02,421 R01 ← M[R02 + 421] trasferimento sw R01,R02,421 M[R02 + 421] ← R01 trasferimento beq R01,R02,–421 se (R01 == R02) vai a PC–421 j 84210 vai a 84210 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari salto (condizionato) salto (non condizionato) Copyright © 2005 – The McGraw-Hill Companies srl Istruzioni aritmeticoaritmetico-logiche Un’ Un’istruzione aritmeticoaritmetico-logica, ad esempio add RZ,RX,RY, RZ,RX,RY, viene eseguita in quattro passi: 1. l’istruzione viene prelevata dalla memoria e scritta nell’IR mentre il PC viene incrementato (si tratta della fase di fetch già descritta in precedenza); 2. viene letto il contenuto dei due registri RX e RY (in pratica l’unità di controllo attiva i collegamenti tra i registri RX e RY, individuati dal contenuto dell’IR, e i registri di ingresso all’ALU e provvede a effettuare il trasferimento dei dati); 3. la ALU opera sui dati letti dal banco dei registri, eseguendo l’operazione indicata dal codice compreso nell’istruzione (l’unità di controllo attiva il collegamento di un pezzo dell’IR con l’ingresso di controllo dell’ALU); 4. il risultato calcolato dall’ALU viene scritto nel registro RZ (anche il registro destinazione viene individuato a partire dal contenuto dell’IR). Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Istruzioni di trasferimento Un’ Un’istruzione di trasferimento, ad esempio lw RY,RX,base, RY,RX,base, viene eseguita in cinque passi: 1. l’istruzione viene prelevata dalla memoria e scritta nell’IR mentre il PC viene incrementato; 2. viene letto il contenuto del registro RX; RX 3. la ALU opera sui dati letti dal banco dei registri e sulla base scritta nell’IR; 4. il risultato calcolato dall’ALU viene utilizzato come indirizzo per la memoria dati; 5. il dato proveniente dalla memoria viene scritto nel registro RY. RY Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 8 21/03/2007 Istruzioni di controllo Un’ Un’istruzione di trasferimento, ad esempio beq RX,RY,salto, RX,RY,salto, viene eseguita in quattro passi: 1. l’istruzione viene prelevata dalla memoria e scritta nell’IR mentre il PC viene incrementato; 2. viene letto il contenuto dei due registri RX e RY; RY 3. la ALU opera sui dati letti dal banco dei registri, eseguendo l’operazione indicata dal codice compreso nell’istruzione (nel caso dell’esempio si tratta di una sottrazione, per verificare poi se il risultato è uguale o diverso da zero); contemporaneamente il contenuto del PC viene sommato al valore del salto per calcolare l’eventuale destinazione del salto; 4. l’esito dell’operazione viene utilizzato per decidere quale valore debba essere memorizzato nel PC. PC Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Unità Unità funzionali richieste dai diversi tipi di istruzioni Tipo di istruzione Aritmetico-logico Unità Unità funzionali utilizzate Banco Memoria Banco ALU registri (istruzioni) registri Trasferimento Memoria Banco Memoria Banco ALU (dati) registri (registri ← memoria) (istruzioni) registri Memoria Trasferimento Memoria Banco ALU (dati) (registri → memoria) (istruzioni) registri Salto (condizionato) Salto (non condizionato) Memoria Banco ALU (istruzioni) registri Memoria (istruzioni) Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Durata indicativa di ogni categoria di istruzione (tempi in ns). ns). Tipo di istruzione Memoria Lettura ALU Memoria Scrittura istruzioni registro dati registro Totale (MI) (LR) (AL) (MD) (SR) AritmeticoAritmetico-logico 10 5 10 – 5 30 Trasferimento (registri ← memoria) 10 5 10 10 5 40 Trasferimento (registri → memoria) 10 – 35 10 5 10 Salto (condizionato) 10 5 10 – – 25 Salto (non condizionato) 10 – – – – 10 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 9 21/03/2007 Un esempio Esecuzione di una successione di quattro istruzioni per il caricamento di due dati dalla memoria nei registri R01 e R02, la loro somma e la registrazione in memoria del risultato. lw R01,R11,421 MI LR AL lw R02,R11,842 Tempo MD SR 40 ns add R03,R01,R02 MI LR AL MD SR 40 ns 30 ns MI LR AL SR 35 ns MI LR AL sw R03,R11,421 MD 145 ns Ordine di esecuzione delle istruzioni Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Incrementare le prestazioni con il parallelismo Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Migliorare le prestazioni di una CPU La frequenza di clock • influenza direttamente il tempo di ciclo del data path e quindi le prestazioni di un calcolatore; • è limitata dalla tecnologia disponibile. Il parallelismo permette di migliorare le prestazioni senza modificare la frequenza di clock. Esistono due forme di parallelismo: • parallelismo a livello delle istruzioni (architetture pipeline o architetture superscalari); • parallelismo a livello di processori (Array computer, multiprocessori o multicomputer). Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 10 21/03/2007 Architettura pipeline Organizzazione della CPU come una “catena di montaggio” montaggio” • la CPU viene suddivisa in “stadi”, ognuno dedicato all’esecuzione di un compito specifico; • l’esecuzione di un’istruzione richiede il passaggio attraverso (tutti o quasi tutti) gli stadi della pipeline; • in un determinato istante, ogni stadio esegue la parte di sua competenza di una istruzione; • in un determinato istante, esistono diverse istruzioni contemporaneamente in esecuzione, una per ogni stadio. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Prestazioni di una pipeline Il tempo di esecuzione (latenza (latenza)) della singola istruzione non diminuisce, anzi aumenta • il tempo di attraversamento (latenza) della pipeline corrisponde al numero degli stadi (N) moltiplicato per il tempo di ciclo (T); • il tempo di ciclo è limitato dallo stadio più lento! Aumenta il numero di istruzioni completate nell’ nell’unità unità di tempo (throughput (throughput)) • si completa un’istruzione a ogni ciclo di clock; • l’incremento di throughput è quasi proporzionale al numero degli stadi! Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Evoluzione architetture Vista la disponibilità disponibilità di un maggior numero di transistor si inseriscono più più pipeline nella stessa CPU • aumenta il parallelismo perché è possibile eseguire contemporaneamente diversi flussi di istruzioni; istruzioni • è necessario garantire che non ci siano conflitti tra le istruzioni che vengono eseguite insieme; di solito il controllo è affidato al compilatore. Stadio 1 Memoria Istruzioni (MI) Stadio 2 Stadio 3 Stadio 4 Stadio 5 Lettura Registri (LR) ALU (AL) Memoria Dati (MD) Scrittura Registri (SR) Lettura Registri (LR) (AL) Memoria Dati (MD) Scrittura Registri (SR) ALU Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 11 21/03/2007 Architetture superscalari In alternativa si possono replicare le unità unità funzionali • rappresentano lo stadio più lento della pipeline (in genere richiedono diversi cicli di clock); • è più semplice evitare i conflitti tra le diverse istruzioni. execute ALU 1 ALU 2 LOAD STORE S1 fetch S2 S3 decode lettura operandi Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari S5 FP 1 write back FP 2 Copyright © 2005 – The McGraw-Hill Companies srl Multiprocessori Diverse CPU condividono una memoria comune: comune: • le CPU debbono coordinarsi per accedere alla memoria; • esistono diversi schemi di collegamento tra CPU e memoria, quello più semplice prevede che ci sia un bus condiviso; • se i processori sono veloci il bus diventa un collo di bottiglia; • esistono soluzioni che permettono di migliorarne le prestazioni, ma si adattano a sistemi con un numero limitato di CPU (<20). La memoria condivisa rende più più semplice il modello di programmazione: programmazione: • si deve parallelizzare l’algoritmo, ma si può trascurare la “parallelizzazione” dei dati. CPU CPU CPU CPU mem bus condiviso Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Multicalcolatori Sistemi composti da tanti calcolatori collegati fra loro • ogni calcolatore è dotato di una memoria privata e non c’è memoria in comune; • comunicazione tra CPU basata su scambio di messaggi. Non è efficiente collegare ogni calcolatore a tutti gli altri, quindi vengono usate topologie particolari: • griglie a 2/3 dimensioni, alberi e anelli; • i messaggi, per andare da fonte a destinazione, spesso devono passare da uno o più calcolatori intermedi o switch. • Tempi di trasferimento dei messaggi dell’ordine di alcuni microsecondi sono comunque facilmente ottenibili. Sono stati costruiti multicalcolatori con ~10.000 CPU. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 12 21/03/2007 Struttura di un multicomputer mem mem mem mem CPU CPU CPU CPU bus condiviso Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Evoluzione delle CPU Intel Frequenza Dim. Dim. registri Numero di (MHz) bus dati transistor MHz) CPU Anno 8086 1978 4.77 — 12 8/16 29 000 80286 1982 8 — 16 16/16 134 000 80386 1986 16 — 33 32/32 275 000 80486 1989 33 — 50 32/32 1 200 000 3 100 000 Pentium 1993 60 — 200 32/64 Pentium II 1997 233 — 400 32/64 7 500 000 Pentium III 1999 450 — 1133 32/64 24 000 000 (Willamette) 2000 1300 — 2000 32/64 42 000 000 (Northwood) 2002 2000 — 3400 32/64 55 000 000 (Prescott) 2004 2800 — 3800 32/64 125 000 000 Pentium 4 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Legge di Moore Osservazione fatta da Gordon Moore nel 1965: il numero dei transistor per cm2 raddoppia ogni X mesi In origine X era 12. Correzioni successive hanno portato a fissare X=18. Questo vuol dire che c’è un incremento di circa il 60% all’anno. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 13 21/03/2007 # Transistor [CPU Intel] Intel] 100 000 000 10 000 000 1 000 000 100 000 1989 1991 1993 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari 1995 1997 1999 Copyright © 2005 – The McGraw-Hill Companies srl Legge di Moore e progresso Il progresso della tecnologia provoca un aumento del numero di transistor per cm2 e quindi per chip. Un maggior numero di transistor per chip permette di produrre prodotti migliori (sia in termini di prestazioni che di funzionalità funzionalità) a prezzi ridotti. ridotti. I prezzi bassi stimolano la nascita di nuove applicazioni (e.g. non si fanno video game per computer da milioni di $). Nuove applicazioni aprono nuovi mercati e fanno nascere nuove aziende. aziende. L’esistenza di tante aziende fa crescere la competitività competitività che, a sua volta, stimola il progresso della tecnologia e lo sviluppo di nuove tecnologie. tecnologie. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Le infrastrutture HardWare La memoria centrale Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 14 21/03/2007 La memoria Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl La memoria Supporto alla CPU: CPU: deve fornire alla CPU dati e istruzioni il più più rapidamente possibile Archivio: Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità reperibilità anche dopo elevati periodi di tempo Diverse esigenze: • velocità per il supporto alla CPU • non volatilità ed elevate dimensioni per l’archivio Diverse tecnologie • elettronica: veloce, ma costosa e volatile • magnetica e ottica: non volatile ed economica, ma molto lenta Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Criteri di caratterizzazione di una memoria Velocità Velocità Volatilità Volatilità Capacità Capacità Costo (per bit) Modalità Modalità di accesso • • • • diretta (o casuale) sequenziale mista associativa Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 15 21/03/2007 La memoria centrale Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso “casuale” casuale” Tecnologia elettronica • veloce ma volatile e costosa Due “eccezioni” eccezioni” • ROM: elettronica ma permanente e di sola lettura • Flash: elettronica ma non volatile e riscrivibile Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Indirizzi di memoria I bit nelle memorie sono raggruppati in celle: celle: • tutte le celle sono formate dallo stesso numero di bit; • una cella composta da k bit, è in grado di contenere una qualunque tra 2k combinazioni diverse di bit. Ogni cella ha un indirizzo: indirizzo: • serve come accesso all’informazione; • in una memoria con N celle gli indirizzi vanno da 0 a N–1. La cella è l’unità unità indirizzabile più più piccola. piccola. In quasi tutti i calcolatori è di 8 bit (un byte). byte). I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), bit), su cui la CPU esegue le operazioni. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 16 21/03/2007 Organizzazione della memoria Anche gli indirizzi della memoria sono rappresentati come numeri binari: • un indirizzo di M bit consente di indirizzare 2M celle; • per 6 o 8 celle bastano 3 bit, per 12 celle ne servono 4; • il numero di bit nell’indirizzo determina il numero massimo di celle indirizzabili nella memoria ed è indipendente dal numero di bit per cella (una memoria con 212 celle richiede sempre 12 bit di indirizzo, quale che sia la dimensione di una cella). Una memoria può essere organizzata in diversi modi: • con 96 bit possiamo avere 6 celle di 16 bit (6*16=96), o 8 celle di 12 bit (8*12=96) o 12 celle di 8 bit (12*8=96). Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Organizzazione della memoria 0 0 1 2 3 4 5 1 2 3 4 5 6 7 6 parole da 16 bit 0 1 2 3 4 5 6 7 8 8 parole da 12 bit 9 10 12 parole da 8 bit 11 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Memoria e collegamenti con bus linee di selezione parola 0110 Bus indirizzi DECODIFICATORE Viene selezionata la parola di indirizzo 0110due il contenuto è 01101100; l’operazione è di lettura (load) load) o di scrittura (store) store) a seconda dei comandi presenti sul bus di controllo linea 0 0 linea 1 0 linea 2 0 linea 3 0 linea 4 0 linea 5 0 linea 6 1 linea 7 0 linea 8 0 linea 9 0 linea 10 0 linea 11 0 linea 12 0 linea 13 0 linea 14 0 linea 15 0 16 celle di memoria di 8 bit ciascuna 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 parola selezionata leggi/scrivi Bus di controllo Dato (letto o da scrivere) Bus dati Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 17 21/03/2007 Memoria vs. CPU Le CPU sono sempre state più più veloci delle memorie • l’aumento di integrazione ha consentito di realizzare CPU pipeline e super scalari, molto efficienti e veloci; • nelle memorie è aumentata la capacità più che la velocità. L’accesso alla memoria passa attraverso il bus • la frequenza di funzionamento del bus è molto più bassa di quella della CPU; • il bus può essere impegnato ad effettuare trasferimenti controllati da dispositivi di I/O “autonomi” (e.g. DMA). È difficile riordinare le istruzioni in modo da poter sfruttare i tempi di attesa della memoria. È possibile fare memorie molto veloci se stanno nel chip della CPU, ma sono piccole e costose. costose. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Le memorie gerarchiche Memorie di gran capacità capacità, relativamente lente, economiche ed accessibili tramite il bus: • MGL ovvero Memoria Grossa e Lenta; • dimensioni pari a circa 10 unità; • tempo di accesso (TA) di circa 10 unità. Memorie veloci, integrate nello stesso chip della CPU, ma costose: • MPV ovvero Memoria Piccola e Veloce; • dimensioni pari a circa 1 unità; • tempo di accesso pari a circa 1 unità. Obiettivo: realizzare una memoria grossa e veloce • dimensioni pari a circa quelle della memoria grossa; • prestazioni pari a circa quelle della memoria veloce. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Una gerarchia di memoria Memoria formata da una MPV e una MGL: MGL: • la MPV contiene una copia di alcune celle della MGL; • quando la CPU chiede una particolare cella di memoria la richiesta va ad entrambe le memorie: • se il dato si trova nella MPV, viene passato direttamente alla CPU; • se il dato si trova nella MGL, viene anche caricato nella MPV. Ipotesi: distribuzione uniforme delle richieste • la frequenza con cui si trova il dato cercato nella MPV (hit ratio) sarà in media il 10% (1/10), in questi casi il tempo di accesso (hit time) sarà pari a 1 unità; • la frequenza con cui è necessario accedere alla MGL (miss ratio) sarà in media il 90% (9/10), in questi casi il tempo di accesso (miss penalty) sarà pari a 10 unità; • il tempo medio di accesso sarà 0.1*1+0.9*10=9.1 unità! Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 18 21/03/2007 Gerarchia di memoria Sistema di memoria Memoria piccola e veloce Livello 1 CPU Trasferimento di dati Livello 2 Memoria grande e lenta Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Il principio di località località Località Località spaziale: spaziale: quando si accede all’ all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A. A. • le istruzioni del codice vengono in genere lette da locazioni consecutive della memoria; • gli accessi ad array o a strutture dati sono “vicini”. Località Località temporale: temporale: quando si accede all’ all’indirizzo A, è molto probabile negli accessi successivi si richieda di nuovo la cella A. • cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoria; • istruzioni vicine tendono ad utilizzare le stesse variabili. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Come si sfrutta la località località Diversi approcci a seconda del tipo di località località: • località temporale: temporale i dati prelevati dalla MGL vengono conservati nella MPV il più a lungo possibile; • località spaziale: spaziale quando si copia un dato dalla MGL alla MPV, si copiano anche i dati vicini (cache line o blocco). La frequenza di successo (hit (hit ratio – h) cresce fino a superare il 99%: 99%: • in effetti h dipende da due caratteristiche contrastanti: • la dimensione dei blocchi un blocco grande sfrutta meglio la località spaziale; • quanti sono i blocchi in memoria se c’è spazio per tanti blocchi un dato resta in memoria più a lungo e può sfruttare più a lungo la località temporale; • c’è anche il problema del costo della cache! Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 19 21/03/2007 L’effetto della località località Effetto del principio di località località sull’ sull’esempio di prima: • tempo di accesso alla cache pari a 1 unità (TA TAC = 1); 1 • tempo di accesso alla memoria (detto anche miss penalty, ovvero penalità di fallimento) pari a 10 unità (TAM TAM = 10); 10 • frequenza di successo (hit ratio, h = 0.99); 0.99 • frequenza di fallimento (miss ratio, m = 1 – h = 0.01); 0.01 • tempo di accesso medio pari a: TA = h * TAC + m * TAM TA = 0.99 * 1 + 0.01 * 10 = 1.09 Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl La memoria centrale Tecnologia elettronica (veloce ma volatile) volatile) Gerarchia di memoria: memoria: ai livelli più più alti corrispondono le tecnologie più più veloci ma anche più più costose • cache interna (Static RAM – SRAM) • cache esterna (SRAM) • memoria RAM (Dynamic RAM – DRAM e sue varianti) • area di swap su memoria di massa Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Memoria cache: SRAM Interna (L1) stessa frequenza della CPU Esterna (L2 e/o L3) • Tre diverse posizioni/configurazioni • Saldata sulla motherboard • Card Edge Low Profile (CELP) socket • COAST (Cache On A STick) module • Diverse tipologie • Asynchronous SRAM (più economica), TA compreso tra 12 e 20ns, OK per bus tra 50 e 66 MHz • Synchronous Burst SRAM (Synch SRAM) Bus fino a 66 MHz Bus oltre i 66 MHz • Synchronous Pipelined Burst SRAM (PB SRAM) TA compreso tra 4.5 e 8ns, OK per bus fino a 133 MHz Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 20 21/03/2007 Memoria centrale – DRAM Fast Page Mode DRAM (FPM DRAM) DRAM) • TA=70-60ns • Per la lettura si attiva la riga, la colonna, si validano i dati, si trasferiscono i dati, poi si disattiva la colonna • I miglioramenti di velocità nascono dal progresso della tecnologia di integrazione. Extended Data Out DRAM (EDO DRAM) DRAM) • TA = 70-50ns • Non richiede la disattivazione della colonna e del buffer di uscita; 60ns è il minimo per bus a 66MHz Burst EDO DRAM (BEDO DRAM) DRAM) • Evoluzione di EDO DRAM (pipeline + 2-bit burst counter) • Mai davvero supportata. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Memoria centrale – DRAM Synchronous DRAM (SDRAM) SDRAM) • Sfrutta la sequenzialità delle richieste: una volta trovato il primo dato gli altri vengono recuperati velocemente. • Fornisce dati fino a 10ns (100MHz) PC133 SDRAM • Evoluzione della SDRAM per bus a 133MHz • Trasferimento dati fino a 1.6GBps Double Data Rate DRAM (DDR (DDR DRAM) DRAM) • Sfrutta entrambi i fronti del clock per trasferire dati: raddoppia la frequenza efficace non quella effettiva. Direct Rambus DRAM (DRDRAM (DRDRAM)) • Risultato della collaborazione tra Intel e Rambus • Nuova architettura: 600-800MHz (1000MHz nel 2001) con bus di sistema a 133MHz. • 1 canale arriva fino a 1.6GBps (4 canali 6.4 GBps) Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl Packaging Fino all’ all’inizio degli anni ‘90 la memoria veniva prodotta, acquistata e installata su chip singoli • densità variabili da 1 Kbit a 1 Mbit; • i PC avevano zoccoli vuoti dove inserire altri chip. Oggi si monta un gruppo di chip, tipicamente 8 o 16, su un piccola scheda stampata che si vende come unità unità minima installabile nei PC • SIMM (Single Inline Memory Module) se la fila di connettori si trova da un solo lato della scheda; • DIMM (Dual Inline Memory Module) se i connettori si trovano su ambedue i lati della scheda Sia SIMM che DIMM sono a volte dotate di un codice di rilevazione o di correzione dell’ dell’errore. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 21 21/03/2007 Memoria centrale – Chip Single Inline Memory Module (SIMM) SIMM) • 30/72 pin sullo stesso lato della scheda; • trasferimento dati a 8/32 bit per volta; • utilizzabili “a coppie”. Dual InIn-line Memory Module (DIMM (DIMM)) • 168 pin su due lati; • 64 bit alla volta; • utilizzabili anche singolarmente RIMM • Moduli di RDRAM; • interfaccia DIMM 100MHz. Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari Introduzione ai sistemi informatici Copyright © 2005 – The McGraw-Hill Companies srl 22