ARCHITETTURA DEI CALCOLATORI Introduzione 2 z z Che cos’è un calcolatore? Come funziona un calcolatore? z è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso punto di vista z in questo corso, il punto di vista prevalente è quello del calcolatore come macchina programmabile, ovvero in grado di eseguire programmi Fondamenti di Informatica 1 Che cos’è un calcolatore? 3 “il calcolatore è un esecutore di programmi” z punto di vista degli utenti finali z viene considerato l’uso del calcolatore “il calcolatore è un sistema” z punto di vista funzionale z viene considerato il suo funzionamento e la sua architettura “il calcolatore è una macchina programmabile” z punto di vista della programmazione Fondamenti di Informatica Calcolatori e applicazioni 4 z Che cos’è un calcolatore? z z un calcolatore è una macchina programmabile, ovvero in grado di eseguire programmi Questa definizione descrive, in parte, il punto di vista degli utenti dei calcolatori z z l’utente di un calcolatore interagisce con il calcolatore attraverso una o più applicazioni una applicazione (o programma applicativo o programma) consente di far svolgere al calcolatore una molteplicità di operazioni z ciascuna operazione di una applicazione costituisce uno strumento per l’utente dell’applicazione, da utilizzare per perseguire un certo scopo Fondamenti di Informatica 2 Tipologie di applicazioni informatiche 5 z Esistono moltissime tipologie di applicazioni per i calcolatori z dai giochi alla gestione della telefonia z dalla gestione di immagini e documenti alla possibilità di comunicare con altre persone e calcolatori z dalla gestione alla simulazione di sistemi complessi z dal supporto delle attività individuali alla gestione dei sistemi informativi di grandi organizzazioni Fondamenti di Informatica Applicazioni e risoluzione di problemi 6 z La possibilità di poter eseguire su un medesimo calcolatore applicazioni diverse rende il calcolatore una macchina che può essere utilizzata da un utente per la risoluzione di problemi z z un utente può risolvere un problema usando una applicazione e un calcolatore se è in grado di fornire all’applicazione eseguita dal calcolatore le istruzioni dettagliate di come il problema possa essere risolto Dal punto di vista dell’utente, con riferimento all’esecuzione di una applicazione z le istruzioni che è possibile richiedere al calcolatore di eseguire sono quelle corrispondenti alle richieste di esecuzione delle operazioni fornite dall’applicazione z ciascuna applicazione può essere caratterizzata z z dall’insieme delle operazioni che fornisce (e dalle regole per usarle) dalla tipologia di informazioni che permette di gestire Fondamenti di Informatica 3 Uso di applicazioni 7 z Per usare una applicazione, l’utente deve conoscere l’insieme delle operazioni che l’applicazione fornisce, comprenderne il significato e saperne richiedere l’esecuzione z la capacità di comprendere e usare una applicazione è abbastanza indipendente dalla comprensione del funzionamento del calcolatore z è utile comprendere i principi e i meccanismi su cui è basata l’interazione con il calcolatore, e in particolare l’organizzazione e l’uso delle interfacce grafiche Fondamenti di Informatica Applicazioni e interfacce 8 z Una applicazione viene utilizzata tramite la sua interfaccia utente z l’interfaccia di una applicazione è il mezzo di interazione tra l’utente (utente dell’applicazione) e il calcolatore (esecutore dell’applicazione) z in generale, le applicazioni moderne dispongono di interfacce utente grafiche (GUI) z z l’interazione con una GUI avviene ad esempio selezionando menu e bottoni con il mouse alcune applicazioni sono basate su una interfaccia a caratteri z in questo caso, l’interazione può avvenire mediante la digitazione di una sequenza di comandi Fondamenti di Informatica 4 Architettura dei calcolatori 9 z Che cos’è un calcolatore? Come funziona un calcolatore? z z z un calcolatore è un sistema un sistema è un oggetto costituito da molte parti (componenti) che interagiscono, cooperando, al fine di ottenere un certo comportamento Studiare l’architettura di un sistema vuol dire z z z individuare ciascun componente del sistema comprendere i principi generali di funzionamento di ciascun componente comprendere come i vari componenti interagiscono tra di loro Fondamenti di Informatica Hardware e software 10 z La prima decomposizione di un calcolatore è relativa alle seguenti macro-componenti: hardware z la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici software z z l’insieme dei programmi che consentono all’hardware di svolgere dei compiti utili il software comprende il software di base (tra cui il sistema operativo) e il software applicativo Fondamenti di Informatica 5 Organizzazione a livelli 11 z Hardware e software sono organizzati a livelli (o strati) ciascun livello z z z corrisponde a una macchina (reale o virtuale) in grado di eseguire un proprio insieme di operazioni fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante è realizzato in termini dell’insieme di operazioni fornite dal livello immediatamente sottostante Software applicativo Software di base Hardware Fondamenti di Informatica Software e macchine virtuali 12 z In generale, il software ha lo scopo di mostrare ai suoi utenti il calcolatore come una macchina virtuale più semplice da usare rispetto all’hardware che viene effettivamente utilizzato z per macchina virtuale si intende una macchina che fisicamente non esiste nella realtà, ma di cui si può avere la sensazione dell’esistenza z il software di base ha lo scopo di mostrare all’utente il calcolatore come una macchina virtuale più semplice da gestire e programmare rispetto all’hardware utilizzato z il software applicativo mostra all’utente il calcolatore come una macchina virtuale che può essere utilizzata per la risoluzione di specifici problemi z il software applicativo viene realizzato in termini della macchina virtuale mostrata dal software di base, e dipende solo parzialmente dall’hardware utilizzato Fondamenti di Informatica 6 Organizzazione a livelli 13 Nell’organizzazione a livelli, l’hardware è l’unica macchina reale, mentre gli strati software corrispondono a macchine virtuali z il repertorio di operazioni (chiamate istruzioni) che l’hardware sa eseguire direttamente è chiamato linguaggio macchina del calcolatore z z z le diverse macchine e i relativi insiemi di operazioni sono via via più astratti z z z il linguaggio macchina è composto da istruzioni estremamente elementari, ma che il calcolatore sa eseguire in modo molto efficiente nel senso che il significato di ciascuna operazione è sempre più vicino alla logica dell’utente e più lontano dalla logica del calcolatore come dispositivo elettronico è per questo motivo che sono via via più semplici da usare le diverse macchine sono comunque ugualmente espressive z alla fin fine, l’unico responsabile dell’esecuzione del software è Fondamenti di Informatica comunque l’hardware disponibile Tipologie di calcolatori 14 z Esistono diversi tipi di calcolatori: z Personal computer z z z Notebook (portatile) z z z z Versione portatile del personal computer Usualmente dotata di caratteristiche (leggermente) inferiori in termini di potenza di calcolo e memorizzazione In alcuni casi la differenza è solo in espandibilità vs portabilità Handheld computer / PDA / SmartPhone z z z Dotati di monitor e tastiera separati dall’unità centrale Dotati di diversi dispositivi di memoria di massa interni o esterni all’unità centrale Di dimensioni limitate Usualmente privi di memorie di massa tradizionali z Sensori intelligenti Oggi la tendenza è di avere sistemi sempre più piccoli e integrati Fondamenti di Informatica 7 Tipologie di calcolatori 15 z z z Workstation z Versione “potente” del personal computer z Orientate alle applicazioni grafiche o CAD z Spesso condivise da più utenti Mainframe e minicomputer z calcolatori di elevata potenza di calcolo e memorizzazione z Orientati all’elaborazione dati per l’intera azienda z Condivisibili da più utenti (anche contemporaneamente) Cluster z Sistemi di calcolo basati sull’aggregazione di più macchine z Utilizzati per applicazioni computazionalmente pesanti z Calcolo numerico, simulazioni, etc Fondamenti di Informatica Il calcolatore “fuori” 16 Monitor Stampante Unità centrale Lettore floppy disk Mouse Tastiera Fondamenti di Informatica floppy disk 8 Caratteristiche dell’architettura 17 z Flessibilità z z adatta a svolgere diverse tipologie di compiti Modularità z ogni componente ha una funzione specifica z Scalabilità z Standardizzazione z z ogni componente può essere sostituito con uno equivalente componenti facilmente sostituibili in caso di malfunzionamento z Riduzione dei costi z Semplicità z z grazie alla produzione su larga scala di installazione ed esercizio del sistema Fondamenti di Informatica 18 Il calcolatore - modello funzionale Õ Ö Trasferimento ×Ø Õ Ö Elaborazione Õ Ö Controllo Memorizzazione Fondamenti di Informatica 9 19 Il calcolatore: modello concettuale 2. Memorizzazione 1. Elaborazione Interconnessione 3. Comunicazione (interfaccia) Fondamenti di Informatica Il calcolatore “dentro” 20 Scheda video Memoria RAM CPU Hard disk Fondamenti di Informatica 10 Il calcolatore “dentro” 21 Fondamenti di Informatica Architettura del calcolatore: il modello di Von Neumann 22 z Data la diversità di dispositivi e la complessità dell’architettura hardware di un calcolatore reale, serve un modello comune: Tutte le diverse tipologie di calcolatori sono accomunate dalla medesima architettura logica z Macchina di Von Neumann: modello semplificato dei calcolatori moderni z Von Neumann è stato il progettista (intorno al 1945) del primo calcolatore in cui i programmi potevano essere memorizzati anziché codificati mediante cavi e interruttori Fondamenti di Informatica 11 ARCHITETTURA DI UN ELABORATORE 23 Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni ’40). Fondamenti di Informatica MACCHINA DI VON NEUMANN 24 UNITÀ FUNZIONALI fondamentali • Processore (CPU) • Memoria Centrale (RAM & ROM) • Unità di I/O (ingresso / uscita) • Bus di sistema Fondamenti di Informatica 12 CPU & MEMORIA 25 • ALU (Arithmetic & Logic Unit) • Unità di Controllo • Registri Fondamenti di Informatica UNITÀ DI ELABORAZIONE (CPU) 26 ALU (Arithmetic / Logic Unit) Esegue le operazioni aritmetiche e logiche elementari Fondamenti di Informatica 13 UNITÀ DI ELABORAZIONE (CPU) 27 Unità di Controllo (Control Unit): controlla e coordina l’attività della CPU. (In particolare, controlla il trasferimento dei dati tra memoria e registri e la decodifica e l’esecuzione delle istruzioni) Fondamenti di Informatica UNITÀ DI ELABORAZIONE (CPU) 28 PC A B ALU IR Flag RINT RI RD CTRL clock Il clock dà la base dei tempi necessaria per mantenere il sincronismo fra le operazioni Fondamenti di Informatica 14 UNITÀ DI ELABORAZIONE (CPU) 29 PC A B ALU IR Flag RINT RI RD CTRL clock I registri (qui A, B, PC, Flag,…) sono locazioni usate per memorizzare dati, istruzioni, o indirizzi all’interno della CPU. L’accesso ai registri è molto veloce. Fondamenti di Informatica Arithmetic Logic Unit 30 PC A B ALU IR Flag RINT RI RD CTRL clock Esegue operazioni aritmetiche, logiche e confronti sui dati della memoria centrale o dei registri. Può essere semplice oppure (più spesso) molto complessa e sofisticata. Fondamenti di Informatica 15 31 z ESEMPIO SEMPLICE: ALU in grado di eseguire somma, sottrazione, prodotto, divisione con due operandi contenuti nei registri A e B. z I due operandi vengono caricati nei registri A e B; 2. La ALU viene attivata da un comando inviato dalla CPU che specifica il tipo di operazione; 3. Nel registro A viene caricato il risultato dell'operazione eseguita dalla ALU; 4. Il registro FLAG riporta sui suoi bit indicazioni sul risultato dell'operazione (riporto, segno, etc.). 1. Alterazione di due bit nel registro Flag: Fondamenti di Informatica carry (riporto) e sign (segno) I REGISTRI 32 • I registri sono locazioni di memoria interne a CPU, e come tali molto veloci. PC A B ALU IR Flag RINT RI RD CTRL clock Fondamenti di Informatica 16 I REGISTRI 33 PC A B ALU IR Flag RINT RI RD CTRL clock Instruction Register (IR) Contiene l’istruzione da eseguire. Fondamenti di Informatica I REGISTRI 34 PC A B ALU IR Flag RINT RI RD CTRL clock Registro Indirizzi (RI) Contiene l’indirizzo della cella di memoria da selezionare per il trasferimento di un dato con la CPU Fondamenti di Informatica 17 I REGISTRI 35 PC A B ALU IR Flag RINT RI RD CTRL clock Registro Dati (RD) o Accumulatore Contiene il dato attualmente oggetto di elaborazione e il risultato al termine dell’esecuzione Fondamenti di Informatica I REGISTRI 36 PC A B ALU IR Flag RINT RI RD CTRL clock Registro Interruzioni (RINT) Serve per scopi particolari (non discussi) Fondamenti di Informatica 18 I REGISTRI 37 PC A B ALU IR Flag RINT RI RD CTRL clock Registro dei Flag (Flag) Ogni flag indica la presenza/assenza di una proprietà nell’ultimo risultato generato dalla ALU. Altri bit riassumono lo stato del processore. Fondamenti di Informatica I REGISTRI 38 PC A B ALU IR Flag RINT RI RD CTRL clock Registri di uso generale (A,B,C,...) Sono usati per contenere sia dati (in particolare, operandi di operazioni aritmetico/logiche) sia indirizzi. Fondamenti di Informatica 19 I REGISTRI 39 PC A B ALU IR Flag RINT RI RD CTRL clock Program Counter (PC) Indica l’indirizzo della cella di memoria che contiene la prossima istruzione da eseguire Fondamenti di Informatica UNITÀ DI ELABORAZIONE (CPU) 40 La memoria centrale è una collezione di celle numerate, che possono contenere DATI e ISTRUZIONI. Le istruzioni sono disposte in memoria in celle di indirizzo crescente. Fondamenti di Informatica 20 UNITÀ DI ELABORAZIONE (CPU) 41 L'unità di controllo fa funzionare l’elaboratore. Da quando viene acceso a quando è spento, essa esegue in continuazione il ciclo di prelievo / decodifica / esecuzione (fetch / decode / execute ) . Fondamenti di Informatica Tre tipologie di istruzioni 42 z Istruzioni aritmetico-logiche (Elaborazione dati) z z z z Controllo del flusso delle istruzioni z z z z Somma, Sottrazione, Divisione, … And, Or, Xor, … Maggiore, Minore, Uguale, Minore o uguale, … Sequenza Selezione semplice, a due vie, a n vie, … Ciclo a condizione iniziale, ciclo a condizione finale, … Trasferimento di informazione z z Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce) Fondamenti di Informatica 21 Esecuzione delle istruzioni 43 z Ciclo Fetch–Decode–Execute (leggi–decodifica–esegui) 1. 2. 3. 4. 5. 6. 7. Prendi l’istruzione corrente dalla memoria e mettila nel registro istruzioni (IR). Incrementa il program counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva. Determina il tipo dell’istruzione corrente (decodifica). Se l’istruzione usa una parola in memoria, determina dove si trova. Carica la parola, se necessario, in un registro della CPU. Esegui l’istruzione. Torna al punto 1 e Fondamenti inizia adi eseguire l’istruzione Informatica successiva. Fase di Fetch 44 z z si accede alla prossima istruzione (cella il cui indirizzo è contenuto nel registro PC) ... … e la si porta dalla memoria centrale, memorizzandola nel Registro Istruzioni (IR) Fondamenti di Informatica 22 Fase di Decode 45 • si decodifica il tipo dell’istruzione in base al suo OpCode (codice operativo) Opcode OpCode Operazione 1 Somma 2 Sottrazione … … Fondamenti di Informatica Fase di execute 46 z z z si individuano i dati usati dall’istruzione si trasferiscono tali dati nei registri opportuni si esegue l’istruzione. Fondamenti di Informatica 23 47 Evoluzione delle CPU CPU Anno Frequenza (MHz) Dimensione registri / bus dati Numero di transistor 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 80386 SX 1988 16 — 33 32 / 16 275 000 80486 1989 33 — 50 32 / 32 1 200 000 Pentium 1993 60 — 200 32 / 64 3 100 000 Pentium II 1997 233 — 400 32 / 64 7 500 000 Pentium III 1999 450 — 1133 32 / 64 24 000 000 Pentium 4 2000 1600 — 2000 32 / 64 Fondamenti di Informatica 42 000 000 Legge di Moore 48 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. Fondamenti di Informatica 24 # Transistor [CPU Intel] 49 100 000 000 10 000 000 1 000 000 100 000 1989 1991 1993 1995 1997 1999 Fondamenti di Informatica Legge di Moore e progresso 50 z z z z z 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à) a prezzi 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. L’esistenza di tante aziende fa crescere la competitività che, a sua volta, stimola il progresso della tecnologia e lo sviluppo di nuove tecnologie. Fondamenti di Informatica 25 MULTITASKING 51 z z z z Poiché i registri compendiano tutto lo stato dell’elaborazione di un certo processo, salvando in memoria il contenuto di tutti i registri è possibile accantonare un processo per passare a svolgerne un altro ripristinando dalla memoria il contenuto di tutti i registri precedentemente salvati è possibile ripristinare lo stato di un processo accantonato, riprendendone l’esecuzione come se nulla fosse accaduto. Questa possibilità è ciò che consente a un sistema operativo di eseguire più compiti “allo stesso tempo” Fondamenti di Informatica La memoria 52 z z z 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: z z z velocità per il supporto alla CPU non volatilità ed elevate dimensioni per l’archivio Diverse tecnologie z z elettronica: veloce, ma costosa e volatile magnetica e ottica: non volatile ed economica, ma molto lenta Fondamenti di Informatica 26 Criteri di caratterizzazione di una memoria 53 z Velocità z z z tempo di accesso (quanto passa tra una richiesta e la relativa risposta) velocità di trasferimento (quanti byte al secondo si possono trasferire) Volatilità z z cosa succede quando la memoria non è alimentata? per quanto tempo i dati vi rimangono immagazzinati? z Capacità z Costo (per bit) Modalità di accesso z z z z z z quanti byte può contenere? qual è la dimensione massima? diretta (o casuale): il tempo di accesso è indipendente dalla posizione sequenziale: il tempo di accesso dipende dalla posizione mista: combinazione dei due casi precedenti associativa: indicato il dato, la memoria risponde indicando l’eventuale posizione che il dato occupa in memoria. Fondamenti di Informatica La memoria centrale (R.A.M.) 54 z Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione z Memoria ad accesso “casuale” z Tecnologia elettronica z z veloce ma volatile e costosa Due “eccezioni” z z R.O.M.: elettronica ma permanente e di sola lettura Flash: elettronica ma permanente e riscrivibile Fondamenti di Informatica 27 DISPOSITIVI DI MEMORIA 55 z z z z z RAM: Random Access Memory (ad accesso casuale): su di essa si possono svolgere operazioni sia di lettura che di scrittura ROM: Read Only Memory (a sola lettura): non volatili e non scrivibili dall’utente (che la ordina con un certo contenuto); in esse sono contenuti i dati e programmi per inizializzare il sistema PROM: Programmable ROM. Si possono scrivere soltanto una volta, mediante particolari apparecchi (detti programmatori di PROM). EPROM: Erasable-Programmable ROM (si cancellano sottoponendole a raggi ultravioletti). EEPROM: Electrically-Erasable-PROM (si cancellano elettricamente). Fondamenti di Informatica Indirizzi di memoria 56 z I bit nelle memorie sono raggruppati in celle: z z z Ogni cella ha un indirizzo: z z z z 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. 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. In quasi tutti i calcolatori è di 8 bit (un byte). I byte vengono raggruppati in parole (che oggi sono di 32/64 bit),Fondamenti su cui la CPU esegue le di Informatica operazioni. 28 Organizzazione della memoria 57 z Anche gli indirizzi della memoria rappresentati come numeri binari: z z z z sono 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). Oggi, RI è lungo tipicamente 32 bit → SPAZIO INDIRIZZABILE di 4 Gb Fondamenti di Informatica Le operazioni da effettuare sulla memoria 58 • Lettura (Read): il contenuto della cella di memoria indirizzata dal Registro Indirizzi è copiato nel Registro Dati. 0 1 r ea d RI RD (N bit ) 2N-1 Fondamenti di Informatica 29 Le operazioni da effettuare sulla memoria 59 • Scrittura (Write): il contenuto del Registro Dati è copiato nella cella di memoria indirizzata dal Registro Indirizzi. 0 1 writ e RI RD (N bit ) 2N-1 Fondamenti di Informatica Memoria vs. CPU 60 z Le CPU sono sempre state più veloci delle memorie z z z L’accesso alla memoria passa attraverso il bus z z z z 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à. 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. Fondamenti di Informatica 30 Il principio di località 61 z Località spaziale: quando si accede all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A. z z z le istruzioni del codice vengono in genere lette da locazioni consecutive della memoria; gli accessi ad array o a strutture dati sono “vicini”. Località temporale: quando si accede all’indirizzo A, è molto probabile negli accessi successivi si richieda di nuovo la cella A. z z cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoria; istruzioni vicine tendono ad utilizzare le stesse variabili. Fondamenti di Informatica Memoria cache 62 velocità CPU registri capacità Costo (€/bit) alta bassa alto bassa alta basso Memoria cache di livello 1 (L1) Memoria cache di livello 2 (L2) Memoria centrale RAM Memoria di massa Hard disk Fondamenti di Informatica 31 Memoria cache 63 Denominazione accesso Capacità Tempo di Registri Cache di livello 1 ns Cache di livello 2 Memoria centrale Hard Disk < 1 KB 2 KB – 64 KB < 1 ns 256 KB – 2 MB 256 MB – 2 GB 40 GB –300 GB 2 ns 10 ns 10 ms 1 Fondamenti di Informatica Memoria cache 64 z La presenza di una memoria cache efficiente (che, cioè, risponde “al posto della RAM” nel 95-98% dei casi) è fondamentale per le prestazioni del sistema computer z La presenza della cache complica notevolmente l’architettura di un sistema di elaborazione z z Problema del rimpiazzo Problema della scrittura (coerenza Fondamenti di Informaticadei dati) 32 65 La struttura della CPU Leggi Unità di controllo Scrivi PC BUS CONTROLLO o Periferiche PSW IR Memoria ocentrale M A R Indirizzo BUS INDIRIZZI M D R Dati BUS DATI Registro Registro ... Registro Stato ALU Esegui Operazione CPU Il Bus di Sistema interconnette la CPU, la memorie e le interfacce verso dispositivi periferici (I/O, memoria di Fondamenti di Informatica massa, etc.) Il bus di sistema 66 z Il bus di sistema collega tra loro i vari elementi del calcolatore z In ogni istante il bus è dedicato a collegare due unità, una trasmette ed una riceve z Il processore seleziona la connessione da attivare e indica l’operazione da svolgere z Approccio master-slave z CPU = master z Periferiche = slave Fondamenti di Informatica 33 Il bus di sistema 67 z Il bus è suddiviso in tre insiemi di linee: z Bus dati z z Bus indirizzi z z utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU e interfacce di I/O) identifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere Bus di controllo z in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura o lettura), informazioni di temporizzazione Fondamenti di Informatica Il bus di sistema: vantaggi e svantaggi 68 z Semplicità: 1 sola linea di connessione per qualunque # di dispositivi z Estendibilità: nuovi dispositivi possono essere aggiunti tramite un’interfaccia al bus senza influenzare l’HW preesistente z Standardizzabilità: definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente z Lentezza: l’uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi z Limitata capacità: al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati z Sovraccarico della CPU: l’unità centrale viene coinvolta in tutte le operazioni di trasferimento diFondamenti dati di Informatica 34 Fondamenti di Informatica 69 DISPOSITIVI PERIFERICI I dispositivi periferici 70 z Sono collegati al calcolatore tramite una circuiteria dedicata z z z interfaccia dispositivo che consente all’elaboratore di comunicare con una periferica (tastiere, mouse, dischi, terminali, stampanti, ...). Se la CPU deve gestire anche i periferici si ha un degrado delle prestazioni Generalmente i periferici contengono CPU dedicate, alloggiate fisicamente al loro interno Fondamenti di Informatica 35 71 Le interfacce z z z I periferici di diversi costruttori devono essere intercambiabili, senza modificare i programmi (blocchi indipendenti) Le interfacce sono molto diverse tra loro, e dipendono dal tipo di unità perife-rica da connettere. Sono state definite alcune interfacce standard: Fondamenti di Informatica L’interfaccia delle periferiche: standardizzazione 72 z E’ possibile avere una interfaccia diversa per ogni periferica z ma è più logico avere delle interfacce standard per periferiche simili z Esempi di interfacce standard: z Interfaccia seriale RS-232-C z Interfaccia PS2 z Interfaccia USB (Universal Serial Bus) z Interfaccia parallela Centronix z Interfaccia ISA z Interfaccia SCSI z Interfaccia EIDE Fondamenti di Informatica 36 L'interfaccia seriale 73 z z z E' l'interfaccia più comune e più semplice Il nome rispecchia la modalità di comunicazione utilizzata (seriale) RS232, RS432,… fissano gli standard (livelli di tensione, piedinatura, temporizzazione,…) z z L'intervallo tra due bit successivi è costante (velocità di trasmissione) Il parametro principale è la bit-rate Fondamenti di Informatica L'interfaccia parallela 74 z z z I bit vengono inviati tutti insieme, con l'aggiunta di segnali di controllo La comunicazione è più veloce, ma occorrono più fili rispetto alla seriale Di conseguenza è usata in modo monodirezionale (stampante, distanze brevi) Fondamenti di Informatica 37 I periferici più comuni 75 z Verranno analizzati: z z z z z z memorie video tastiera sistemi di puntamento (mouse, trackball, joystick, tavoletta, touch screen) stampante plotter Fondamenti di Informatica Fondamenti di Informatica 76 LA MEMORIA DI MASSA (MAGNETICA) 38 Una gerarchia di memoria 77 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: z z z aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit. Fondamenti di Informatica Caratteristiche dei diversi livelli 78 Capacità Velocità (TA) €/MByte registri ~1KB ~1ns NA cache 64 ÷ 1024 KB ~10ns 300 RAM 64 ÷ 2048 MB ~100ns 2 HD 8 ÷ 100 GB ~10ms 0.005 ~100ms 0.005 nastri/CD ~GB per unità Fondamenti di Informatica 39 Dischi magnetici 79 z z Sono piatti d’alluminio (o di altro materiale) ricoperti di materiale ferromagnetico. Fattore di forma (diametro) z z z 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) z z z è 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. Fondamenti di Informatica Tracce e settori 80 z Traccia (track): sequenza circolare di bit scritta mentre il disco compie una rotazione completa z z z Settore (sector): parte di una traccia corrispondente a un settore circolare del disco z z z z la larghezza di una traccia dipende dalla dimensione della testina e dall’accuratezza con cui la si può posizionare; la densità radiale va da 800 a 2000 tracce per centimetro (5-10 µm per traccia); tra una traccia e l’altra c’è un piccolo spazio di separazione (gap). un settore contiene 512 byte di dati, preceduti da un preambolo, e seguiti da un codice di correzione degli errori; la densità lineare è di circa 50-100kbit per cm (0.1-0.2 µm per bit); tra settori consecutivi si trova un piccolo spazio (intersector gap). Formattazione: operazione che predispone tracce e settori per la lettura/scrittura z un 15% circa dello spazio disco si perde in gap, preamboli e codici di correzione degli errori. Fondamenti di Informatica 40 Spazi tra tracce Settore 81 Tracce e settori Tracce Spazi tra record Fondamenti di Informatica Schema di un Hard Disk 82 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 grigioFondamenti formano un “cilindro” di Informatica 41 Prestazioni dei dischi 83 z Tempo di acceso (ms o 10-3s) z Seek time z z z Latency z z z la testina deve arrivare alla traccia giusta; dipende dalla meccanica (5-15 ms, 1 per tracce adiacenti). il disco deve ruotare fino a portare il dato nella posizione giusta; dipende dalla velocità di rotazione (5400-10800 RPM Æ 2.75.4ms). Transfer Rate (MBps) z Velocità di trasferimento del disco z z z dipende dalla densità di registrazione e dalla velocità di rotazione; un settore di 512 byte richiede fra 25 e 100 µsec (5-20 MB/sec). Velocità di trasferimento sistema di controllo Fondamentidel di Informatica z SCSI vs. EIDE Floppy disk 84 z Funzioni: z z z Struttura analoga a quella di un disco magnetico, z z z distribuzione software su grande scala (avvento PC); archiviazione dati. il disco si ferma quando non è operativo; l’avvio della rotazione comporta un ritardo di ½ sec. Caratteristiche tipiche di un floppy da 3.5” z z z z Capacità di 1.44 MB Tracce x settori: 80 x 18 RPM = 300 velocità di trasferimento di 500Kbps Fondamenti di Informatica 42 Hard Disk IDE/EIDE 85 z Situazione originaria: z z z disco contenuto nel PC XT IBM, Seagate da 10 MB con 4 testine, 360 cilindri e 17 settori/traccia, il controllore era in grado di gestire due unità; il SO inseriva parametri nei registri CPU e poi chiamava il BIOS (Basic Input Output System). IDE (Integrated Drive Electronics) z z controllore integrato nell’unità; procedure di chiamata del BIOS immutate z z z 4 bit per la testina, 6 bit per il settore e 10 bit per il cilindro; un’unità poteva avere al massimo 16 testine, 63 settori e 1024 cilindri per un totale di 1.032.192 settori (528 MB); EIDE (Extended IDE) z supportano lo schema LBE (Logical Block Addressing), Fondamenti di Informatica Small Computer System Interface – SCSI (1986) 86 z z Richiede un’interfaccia con il bus di sistema (host adaptor) Può controllare 8/16 dispositivi (compreso l’host adaptor), HD, CD-ROM, scanner, ... z z z Ogni dispositivo è identificato da un ID I connettori possono essere esterni o interni Di solito l’ID num. 0 è riservato al disco di bootstrap Fondamenti di Informatica 43 Andamento densità HD [by IBM] 87 Fondamenti di Informatica Andamento capacità HD [by IBM] 88 Fondamenti di Informatica 44 Fondamenti di Informatica 89 LA MEMORIA DI MASSA (OTTICA) Dischi ottici 90 z z z z 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 z z z z z z CD-ROM CD-R CD-RW DVD DVD-RAM … Fondamenti di Informatica 45 Compact Disk - CD 91 Proposto nel 1980 [da Philips e Sony] per sostituire i dischi in vinile per la musica. z Standard internazionale IS-10149 [libro rosso]. z z z diametro di 12 cm, spessore di 1.2 mm con un foro di 15 mm in mezzo; produzione: 1. 2. 3. 4. 5. laser ad alta potenza che brucia fori di 0,8 µm in un disco master (le depressioni si chiamano pit e le aree fra pit si chiamano land); dal master si ricava uno stampo; nello stampo viene iniettata una resina liquida di policarbonato che forma un CD con la stessa sequenza di fori del master, sul policarbonato viene depositato uno strato molto sottile di alluminio riflettente, copertura con uno strato protettivo e infine con Fondamenti di Informatica un’etichetta. Lettura di un CD 92 z z Un laser a bassa potenza manda una luce infrarossa (lunghezza d’onda di 0,78 µm) sul disco. I pit appaiono come cunette su una superficie piatta: z z z z z z un pit è alto circa un quarto della lunghezza d’onda del laser, la luce riflessa da un pit è sfasata di mezza lunghezza d’onda rispetto alla luce riflessa dalla superficie circostante, l’interferenza negativa riduce l’intensità della luce riflessa. I passaggi pit/land o land/pit indicano un 1, la loro assenza indica uno 0. Pit e land sono scritti in una spirale unica che compie 22.188 giri attorno al disco (circa 600 per ogni mm). Velocità lineare costante (120 cm/sec): z z z all’interno è di 530 rpm, all’esterno deve scendere a 200 rpm; l’unità è diversa da quella a velocità angolare costante usata per gli HD; 530 rpm sono molti meni dei 3600/10440 rpm degli HD. Fondamenti di Informatica 46 Pit e land su un CD 93 Fondamenti di Informatica CD-ROM 94 z z z 1984: Philips e Sony pubblicano il libro giallo, in cui viene definito lo standard dei CD-ROM (Compact Disc-Read Only Memory). z viene definita la struttura e il formato da utilizzare per memorizzare dati digitali invece che “semplice” musica. Rispetto ai CD audio i CD-ROM hanno z stesse dimensioni; z compatibilità dell’ottica e della meccanica; z stesso processo produttivo; z miglior capacità di correggere errori. Il libro verde [1986] aggiunge grafica e possibilità di mischiare audio, video e dati nello stesso settore. Fondamenti di Informatica 47 Velocità/capacità dei CD-ROM 95 z Velocità base (1x) z z z 75 settori/sec, 153.6 KByte/sec (175.2 in modalità 2). Velocità superiori crescono in proporzione z z Capacità z z z 32x corrisponde a 2400 settori/sec cioè quasi 5MB/sec 74 minuti di musica = 681.984.000 byte = circa 650 MB; 80 minuti di musica = circa 700 MB. Tempo di accesso z Fondamenti di Informatica alcune centinaia di millisecondi. CD Recordable (CD-R) 96 z CD che vengono scritti una sola volta (WORM): z z z utilizzati per backup, per produzioni in piccole serie, per la generazione di master, … standard definito nel libro arancione, dove si introduce anche il CD-ROM XA (CD-R scritti in modo incrementale); stesse dimensioni dei CD-ROM z z z dischi di policarbonato di 120 mm; contengono un solco largo 0,6 mm (guida per il laser di scrittura). La riflettività di pit e land è simulata z z c’è uno strato di colore fra il policarbonato e lo strato riflettente: nello stato iniziale questo strato è trasparente; per scrivere, un laser ad alta potenza colpisce un punto nello strato della superficie colorata, rompe un legame Fondamenti di Informatica chimico e crea una macchia scura. 48 CD ReWriteable (CD-RW) 97 z Dischi ottici riscrivibili. z Lo strato di registrazione utilizza una lega di argento, indio, antimonio e tellurio che ha due stati stabili: z z z lo stato cristallino con elevata capacità di riflessione (land); lo stato amorfo con ridotta capacità di riflessione (pit). Si usa un laser con tre potenze diverse: z z z ad alta potenza il laser scioglie la lega e un raffreddamento rapido la porta dallo stato cristallino allo stato amorfo; a potenza media la lega si scioglie e si raffredda tornando nel suo stato cristallino; a bassa potenza si rileva solo lo stato del materiale. Fondamenti di Informatica Digital Versatile Disk (DVD) 98 z Evoluzione tecnologica maggior densità dei dati: z z z z ¨ 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 z capacità di 4.7 GB z z 133 minuti di video fullscreen MPEG2 ad alta risoluzione (720 x 480) con colonna sonora in 8 lingue e sottotitoli in altre 32; 1x Fondamenti indicadi Informatica 1.4 MB/sec (vs. 150 KB/sec). 49 Diversi formati di DVD 99 z Esistono situazioni in cui servono più di 4.7 GB. Pertanto sono stati definiti quattro formati: 1. 2. 3. 4. z Lato unico, strato unico (4,7 GB). Lato unico, strato doppio (8,5 GB). Due lati, strato unico (9,4 GB). Due lati, strato doppio (17 GB). Tecnologia dello strato doppio: z z uno strato riflettente sul fondo coperto da uno stato semiriflettente; a seconda di dove viene indirizzato il laser, il raggio viene riflesso da uno strato o dall'altro; lo strato inferiore ha pit e land leggermente più grandi, per cui la sua capacità è leggermente Fondamenti di Informatica inferiore. Il video 100 z z z z z Monitor CRT vs LCD (Liquid Crystal Display) RGB vs monocromatico Alfanumerico vs grafico (risoluzione) Raster vs vettoriale (circuiti per rinfresco) La memoria associata determina: z z la risoluzione il numero di colori (paletta) Fondamenti di Informatica 50 Il video 101 z Grandezza: si misura in diagonale utilizzando il pollice come unità di misura Risoluzione: si misura in termini di numero di pixel z Esempi: z z z z 320 x 200, 256 colori, ognuno (8,8,8) bit Memoria: 64.000 bytes, 768 per la paletta 640 x 480, 16 colori Memoria: 307.200/2 = 153.600 bytes 1024 x 768, 16.777.216 colori (true color) Memoria: 2.359.296 bytes Fondamenti di Informatica La tastiera 102 z z z z z Insieme di tasti, connessi ad interruttori La circuiteria individua il/i tasto premuto ed invia il codice al sistema, che -attraverso una tabelladetermina il carattere ASCII E' possibile modificare tale tabella Risolve problemi di debounce e repeat Buffer circolare Fondamenti di Informatica 51 Sistemi di puntamento 103 z z Unità di input per sistemi grafici Differiscono per: z z z la tecnologia utilizzata la differente ergonomia dell'interazione con l'operatore umano Sono dispositivi che trasformano l'azione della mano dell'operatore sullo strumento di puntamento nello spostamento di un marker Fondamenti di Informatica Il mouse 104 z z z z E' lo strumento più economico e diffuso Trasmette la variazione di posizione (coordinate x e y) Mediante la pressione di tasti invia prefissate sequenze di caratteri Tecnologie: z z pallina di gomma LED e fotorivelatore su tavoletta tramata Fondamenti di Informatica 52 La trackball 105 z z z Analogo al mouse Tecnologia solo a pallina di gomma Alloggiato in posizione fissa: z z utilizzato in ambiente industriale e su computer portatili Fondamenti di Informatica Il joystick 106 z z z Cloche di puntamento usata soprattutto per i videogiochi Trasmette la posizione della cloche Trasmette segnali opportuni a fronte della pressione dei tasti (che possono avere funzioni di repeat) Fondamenti di Informatica 53 La tavoletta 107 z z z z Supporto piano su cui viene appoggiata una penna con punta metallica Trasmette le coordinate della posizione della punta della penna Risoluzione elevata (10 linee/mm) Tecnologie: z z a pressione sonora Fondamenti di Informatica Il touch screen 108 z z z z z Monitor sensibili al tocco del dito Trasmettono le coordinate del punto Risoluzione modesta Il dito interrompe due fasci ortogonali di luce infrarossa tra fotoemettitori e fotorivelatori Usato in ambienti industriali Fondamenti di Informatica 54 La stampante 109 z Collegate tramite: z z z z seriale parallela rete locale Velocità di stampa: z z z caratteri al secondo righe al minuto pagine al minuto Fondamenti di Informatica La stampante 110 z Tecnologia di stampa: z z z Ad impatto: martelletto su nastro inchiostrato: qualità buona, ma lenta; pochi colori Ad aghi: insieme di aghi; la qualità dipende dal numero di aghi, dalla loro distanza e precisione; lente ma grafiche; monocromatiche; costi bassi A getto d'inchiostro: gli aghi sono sostituiti da ugelli che spruzzano gocce di inchiostro; qualità migliore; possibilità del colore Fondamenti di Informatica 55 La stampante 111 z z Termiche: comprendono diversi tipi: aghi che bruciano carta termo-sensibile, calore che fa evaporare sostanze che si depositano sulla carta Laser: un raggio laser forma l'immagine della pagina su un cilindro fotosensibile che si carica elettrostaticamente nei punti colpiti da maggior intensità. Sul cilindro si deposita il toner, che viene trasferito a caldo sulla carta z Dot per inch, Page per minute Fondamenti di Informatica Il plotter 112 z A penna (piani o a rullo): z z z z z equipaggio mobile con 2 gradi di libertà una o più penne componente orizzontale: movimento penna componente verticale: movimento penna o trascinamento rullo A matrice di punti: z ricordano le stampanti a getto d'inchiostro Fondamenti di Informatica 56