Le infrastrutture Hardware: architettura Corso di Informatica CdL: Chimica Claudia d'Amato [email protected] Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Informatica – Claudia d'Amato 2 Il calcolatore: modello architetturale 1. Elaborazione Unità Centrale di Elaborazione Collegamenti (BUS/Cavi) 2. Memoria Memorizzazione Memoria Elettronica Magnetica Interconnessione 3. Comunicazione (interfaccia) Periferiche Informatica – Claudia d'Amato 3 Lo schema di riferimento Memoria di massa PC ALU Video/tastiera (terminale) Registri CPU Memoria Interfaccia di I/O Interfaccia di I/O dati BUS indirizzi controllo Informatica – Claudia d'Amato 4 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 Informatica – Claudia d'Amato Altoparlanti Interfacce di I/O Memoria di massa 5 Connettori per schede di I/O aggiuntive Scheda madre Zoccolo per la CPU Connettori per la memoria Connettori per dischi fissi Informatica – Claudia d'Amato 6 CPU – Central Processing Unit Unità Centrale di Elaborazione Informatica – Claudia d'Amato 7 Collegamento a BUS Semplicità • Estendibilità • utilizzo in mutua esclusione del bus Limitatà capacità • regole per la comunicazione da parte di dispositivi diversi Lentezza • aggiunta di nuovi dispositivi molto semplice Standardizzabilità • un’unica linea di connessione costi ridotti di produzione al crescere del numero di dispositivi collegati Sovraccarico del processore (CPU) • perchè funge da master sul controllo del bus Informatica – Claudia d'Amato 8 Organizzazione tipica di un calcolatore “bus oriented” CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus Informatica – Claudia d'Amato 9 L’ “esecutore” Un calcolatore basato sull’architettura di Von Neumann esegue un programma sulla base dei seguenti principi: • dati e istruzioni 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 sono eseguite in modo sequenziale. Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio 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 Informatica – Claudia d'Amato 000000 00000 100000 00001 00010 00011 10 L'esecuzione dei Programmi Quando istruzioni e dati di un programma da elaborare sono in memoria, la CPU esegue, fino alla terminazione del programma, le fasi: Fetch: estrazione di una istruzione dalla memoria Decode: identificazione dell'istruzione da eseguire Execute: esecuzione dell'istruzione (incluso recupero dalla memoria degli operandi o modifica della successione delle istruzioni) Informatica – Claudia d'Amato 11 Ciclo Fetch–Decode–Execute Fetch Decode Execute Informatica – Claudia d'Amato 12 Le parti di una CPU Data path (o percorso dei dati): si occupa dell’effettiva Unità di controllo elaborazione dei dati; comprende • una o più unità aritmetico-logiche (ALU - Arithmetic Logic Unit); • i registri, memoria ad alta velocità usate per risultati temporanei e informazioni di controllo • coordina le operazioni del processore (compreso 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; •… Informatica – Claudia d'Amato 13 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. Informatica – Claudia d'Amato 16 Tre tipologie di istruzioni Istruzioni aritmetico-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) Informatica – Claudia d'Amato 17 Miglioramento Prestazioni CPU Per migliorare le prestazioni di una CPU si può: 1. Ridurre il tempo necessario per l'esecuzione delle singole istruzione 1. Aumento delle frequenze dei processori → riduzione del tempo di ciclo di istruzione 2. Introduzione della memoria cache 2. Aumentare il numero di istruzioni da eseguire contemporaneamente (in parallelo) 1. Pipeline Informatica – Claudia d'Amato 23 CPU Pipeline La fase execute della 1a istruzione è eseguita parallelamente alla fase decode della 2a istruzione La fase decode delle seconda istruzione è eseguita parallelamente alla fase fetch della terza istruzione Numero di istruzioni eseguite durante il tempo di esecuzione di un singolo ciclo di istruzione è <= 3 In generale, l'incremento della velocità di esecuzione dovuta al pipelining è <= numero di fasi della pipeline • è uguale al numero di fasi della pipeline se la durata degli stadi è perfettamente bilanciata) Informatica – Claudia d'Amato 24 CPU Pipeline: Esempio... 5 Istr.1 Istr.2 Istr.1 Istr.2 Istr.3 Istr.1 Istr.2 Istr.3 Istr.4 Istr.1 Istr.2 Istr.3 Istr.4 Istr.5 Istr.1 Istr.2 Istr.3 Istr.4 Istr.5 Istr.6 10 ns 20 ns 30 ns 40 ns 50 ns 60 ns Stadio 4 3 2 1 0 Informatica – Claudia d'Amato 25 ...CPU Pipeline: Esempio 5 Istr.i-4 Istr.i-3 Istr.i-2 Istr.i-1 Istr.i Istr.i+1 Istr.i-3 Istr.i-2 Istr.i-1 Istr.i Istr.i+1 Istr.i+2 Istr.i-2 Istr.i-1 Istr.i Istr.i+1 Istr.i+2 Istr.i+3 Istr.i-1 Istr. i Istr.i+1 Istr.i+2 Istr.i+3 Istr.i+4 Istr.i Istr.i+1 Istr.i+2 Istr.i+3 Istr.i+4 Istr.i+5 20 ns 30 ns 40 ns 50 ns Stadio 4 3 2 1 0 10 ns Informatica – Claudia d'Amato 60 ns 26 La memoria Informatica – Claudia d'Amato 27 La memoria: Funzioni Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la 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 Informatica – Claudia d'Amato 28 La memoria centrale Informatica – Claudia d'Amato 29 La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso “casuale” Tecnologia elettronica • veloce ma volatile e costosa Due “eccezioni” • ROM: elettronica ma permanente e di sola lettura • Flash: elettronica ma non volatile e riscrivibile Informatica – Claudia d'Amato 30 Indirizzi di memoria I bit nelle memorie sono raggruppati in 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: • serve come accesso all’informazione; • in una memoria con N celle gli indirizzi vanno da 0 a N–1. La cella è l’unità indirizzabile più piccola. Informatica – Claudia d'Amato 31 Organizzazione della memoria Anche gli indirizzi della memoria sono rappresentati come numeri binari: • un indirizzo di M bit consente di indirizzare 2M celle; • 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). Informatica – Claudia d'Amato 33 Organizzazione della memoria 0 1 2 0 1 2 0 1 2 3 4 5 3 4 5 3 4 5 6 7 6 7 8 6 parole da 16 bit 8 parole da 12 bit 12 parole da 8 bit Informatica – Claudia d'Amato 9 10 11 34 Memoria vs. CPU Le CPU sono sempre state più veloci delle memorie • 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; È possibile fare memorie molto veloci se stanno nel chip della CPU, ma sono piccole e costose == I REGISTRI. Informatica – Claudia d'Amato 35 Memoria centrale – Chip Single Inline Memory Module (SIMM) • 30/72 pin sullo stesso lato della scheda; • trasferimento dati a 8/32 bit per volta; • utilizzabili “a coppie”. Dual In-line Memory Module (DIMM) • 168 pin su due lati; • 64 bit alla volta; • utilizzabili anche singolarmente RIMM • 184 pin • Moduli di RDRAM; • interfaccia DIMM 100MHz. Informatica – Claudia d'Amato 38 La memoria di massa (magnetica) Informatica – Claudia d'Amato 39 Una gerarchia di memoria Ottenuta per “generalizzazione” dell’applicazione del principio di località e tipicamente costituita da 1. 2. 3. 4. 5. registri contenuti nella CPU (qualche KB) cache (da circa 32KB a circa 1024KB) memoria principale (da circa 64MB a qualche GB) dischi fissi (da qualche GB a qualche TB) nastri magnetici e dischi ottici (da qualche GB a qualche TB per ogni supporto) Man mano che ci si sposta verso il basso nella gerarchia aumenta il valore dei parametri fondamentali: • • • aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit. Informatica – Claudia d'Amato 40 RAM Supporti esterni tecnologia magnetica (HD esterni) Informatica – Claudia d'Amato tecnologia ottica (CD, DVD) tecnologia elettronica (flash disk) Involucro esterno del calcolatore (case) Cache II liv Scheda madre (motherboard) Cache I liv Circuito Integrato (chip) Registri CPU Una gerarchia di memoria Disco fisso (hard disk) tecnologia magnetica 41 Dischi magnetici Sono piatti d’alluminio (o di altro materiale) ricoperti di materiale ferromagnetico. Fattore di forma (diametro) • sempre più piccolo (consente velocità di rotazione maggiori); • 3.5 pollici per i sistemi desktop e fino a 1 pollice per i mobili. Testina di un disco (strumento di lettura/scrittura) • è sospesa appena sopra la superficie magnetica • scrittura: il passaggio di corrente positiva o negativa attraverso la testina magnetizza la superficie • lettura: il passaggio sopra un’area magnetizzata induce una corrente positiva o negativa nella testina. Informatica – Claudia d'Amato 42 Tracce e settori Traccia (track): sequenza circolare di bit scritta mentre il disco compie una rotazione completa Settore (sector): parte di una traccia corrispondente a un settore circolare del disco Formattazione: operazione che predispone tracce e settori per la lettura/scrittura Informatica – Claudia d'Amato 43 Spazi tra tracce Settore Tracce e settori Tracce Spazi tra record Informatica – Claudia d'Amato 44 Schema di un Hard Disk Superficie 7 Testina di lettura/scrittura (una per superficie) Superficie 6 Superficie 5 Superficie 4 Superficie 3 Superficie 2 Superficie 1 Superficie 0 Direzione del movimento Le tracce in grigio formano un “cilindro” Informatica – Claudia d'Amato 45 Memorie Flash Funzioni: • trasferimento dati (la capacità dei floppy è limitata); • archiviazione dati “sensibili”. Tecnologia elettronica non volatile • bassi consumi • piccole dimensioni • capacità dai 256MB ai 4GB File system come per i dischi • Il sistema operativo gestisce l’accesso come se fossero dischi; Informatica – Claudia d'Amato 47 La memoria di massa (ottica) Informatica – Claudia d'Amato 48 Dischi ottici Lettura ottica basata sulla riflessione (o sulla mancata riflessione) di un raggio laser. Densità di registrazione più alte dei dischi magnetici. Creati in origine per registrare i programmi televisivi, poi usati come dispositivi di memoria nei calcolatori. Diversi tipi/caratteristiche • • • • • • CD-ROM CD-R CD-RW DVD DVD-RAM … Informatica – Claudia d'Amato 49 Digital Versatile Disk (DVD) Evoluzione tecnologica densità dei dati: maggior • pit più piccoli (0.4 vs. 0.8 µm); • spirale più serrata (0.74 vs. 1.6 µm); • laser rosso (0.65 vs. 0.78 µm). Caratteristiche dei DVD • capacità di 4.7 GB • 133 minuti di video fullscreen MPEG-2 ad alta risoluzione (720 x 480) con colonna sonora in 8 lingue e sottotitoli in altre 32; • 1x indica 1.4 MB/sec (vs. 150 KB/sec). Informatica – Claudia d'Amato 55