Elementi di informatica Architetture degli elaboratori Il calcolatore ? Un calcolatore è sistema composto da un elevato numero di componenti ? Il suo funzionamento può essere descritto se lo si considera come un sistema strutturato in forma gerarchica ? Ogni componente ha una sua funzione 1 Funzionalità di un calcolatore Codifica dell'Informazione 3 Funzionalità di un calcolatore: elaborazione ?Flessibilità Adatta a svolgere diverse tipologie di compiti ?Modularità Ogni componente ha una funzione specifica ?Scalabilità Ogni componente può essere sostituito con uno equivalente ?Standardizzazione Componenti facilmente sostituibili in caso di malfunzionamento ?Riduzione dei costi Grazie alla produzione su larga scala ?Semplicità Di installazione ed esercizio del sistema 2 Funzionalità di un calcolatore: memorizzare dati la memorizzazione dei dati: ? per brevi periodi (i risultati di operazioni intermedie) ? per lunghi periodi (archivi elettronici che sostituiscono quelli cartacei) Funzionalità di un calcolatore: trasferimento dati Trasferimento dei dati: ? Comunicazione con l’ambiente esterno; ? Uso di dispositivi ausiliari “periferiche” che svolgono operazioni di ingresso uscita. 3 Funzionalità di un calcolatore: controllo L’utente la realizza impartendo comandi al calcolatore Il calcolatore coordina le risorse al fine di svolgere le operazioni corrispondenti ai comandi Il modello concettuale 4 Il modello architetturale L’architettura di riferimento ? Il componente principale è l’unità di elaborazione centrale (central ( central processing unit unit,, CPU,, processore CPU processore)) a cui sono affidate le operazioni di controllo e coordinamento; ? Per la memorizzazione dei dati è presente una memoria (indirizzo); ? Il collegamento tra queste unità è realizzato da un bus (master(master -slave) 5 Lo schema di riferimento Lo schema di riferimento RAM CPU Scheda madre (motherboard ) Bus dati Bus indirizzi Bus di controllo Interfacce di I/O Interfaccia di I/O Schermo Tastiera e mouse Altoparlanti Interfacce di I/O Memoria di massa 6 Scheda madre Connettori per schede di I/O aggiuntive Zoccolo per la CPU Connettori per la memoria Connettori per dischi fissi Caratteristiche del collegamento al Bus ? Semplicità un’unica linea di connessione ? costi ridotti di produzione ? Estendibilit Estendibilità à aggiunta di nuovi dispositivi molto semplice ? Standardizzabilit Standardizzabilità à 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é perch é funge da master sul controllo del bus 7 Il bus Il bus può essere suddiviso in tre componenti ? Bus dati ? Bus indirizzi ? Bus di controllo L’esecutore Un calcolatore esegue un programma sulla base dei seguenti principi: ? Dati e istruzioni in memoria; ? I contenuti della memoria sono indirizzabili in base alla posizione; ? Le istruzioni vengono eseguite in modo sequenziale; 8 Tre tipologie di istruzioni ? Istruzioni aritmetico aritmetico--logiche (Elaborazione dati) Somma, Sottrazione, Divisione, .. And, Or, Xor Xor,…. ,…. Maggiore, Minore, Uguale,… ? Controlo 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) Elementi di una CPU ?Unità di controllo legge le istruzioni dalla memoria e ne determina il tipo ?Unità aritmetico logica esegue le operazioni necessarie per eseguire le istruzioni ?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; esistono registri di uso generico e registri specifici; 9 I registri sempre presenti: PC (Program Counter Counter)) indica la prossima istruzione da eseguire IR (Instruction Register) contiene una copia dell’istruzione da eseguire MAR (Memory Address Register Register)) contiene l’indirizzi di memoria dove estrarre il dato MDR (Memory (Memory Data Register Register)) contiene una copia del dato estratto dalla memoria PSW (Processor ( Processor Status Word) codifica sullo stato di esecuzione dell’istruzione Struttura del data path 10 Struttura della CPU Esecuzione delle istruzioni Ciclo Fetch Fetch--Decode Decode--Execute (leggi leggi--decodifica decodifica--esegui esegui)) 1. Prendi l’istruzione corrente dalla memoria e mettila nel registro istruzioni(IR); istruzioni(IR); 2. Incrementa in program counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva; 3. Determina il tipo dell’istruzione corrente (decodifica) (decodifica);; 4. Se l’istruzione usa una parola in memoria determina dove si trova; 5. Carica la parola se necessario, in un registro della CPU; 6. Esegui l’istruzione. 7. Torna al punto 1 e inizia a eseguire l’istruzione successiva; 11 Il clock Le varie unità operano in modo coordinato dal punto di vista della temporizzazione degli eventi. Un orologio (clock) fornisce una cadenza temporale a cui tutte le attività elementari sono sincronizzate La frequenza di clock è il numero di attività elementari nell’unità di tempo (Mhz) Concorre a determinare la velocità di elaborazione Evoluzione delle CPU 12 La memoria 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 dimesioni per l’archivio Diverse tecnologie ?Elettronica: veloce ma costosa e volatile ?Magnetica e ottica non volatile ed economica, ma molto lenta Criteri di caratterizzazione di una memoria Velocità ?Tempo di accesso (quanto passa tra una richiesta e la relativa risposta) ?Velocità di trasferimento (quanti byte al secondo si possono trasferire) Volatilità ?Cosa succede quando la memoria non è alimentata? ?Per quanto tempo i dati vi rimangono memorizzati? Capacità ?Quanti Byte può contenere? Qual è la dimensione massima? Costo (per bit) Modalità di accesso ?Diretta (o casuale): il tempo di accesso è indipendente dalla posizione ?Sequenziale: il tempo di accesso dipende dalla posizione ?Mista: combinazione dei due casi precedenti 13 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” R.O.M. elettronica ma permanente e di sola lettura Flash: elettronica ma permanente e riscrivibile 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. In quasi tutti i calcolatori è di 8 bit (un byte). I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), su cui la CPU esegue le operazioni. 14 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). La 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). 15 Memoria e collegamenti con bus • • • Viene selezionata la parola di indirizzo 0110 due il contenuto è 01101100; l’operazione è di lettura (load) o di scrittura (store ) a seconda dei comandi presenti sul bus di controllo 0110 Bus indirizzi D ECODIFICATORE linee di selezione parola 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 1 1 0 linea 1 2 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 Memoria vs. CPU ? Le CPU sono sempre state 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. 16 Le memorie gerarchiche Memorie di gran 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. Una gerarchia di memoria Memoria formata da una MPV e una 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à! 17 Gerarchia di memoria Sistema di memoria CPU Memoria piccola e veloce Livello 1 Trasferimento di dati Livello 2 Memoria grande e lenta Il principio di località Località spaziale: quando si accede all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad 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à temporale: quando si accede 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. 18 Come si sfrutta la località Diversi approcci a seconda del tipo di 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 ratio – h) cresce fino a superare il 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! L’effetto della località Effetto del principio di località 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 19 Packaging Fino 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à 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’errore. 20