Lezione15 - Dipartimento di Ingegneria dell`Informazione
by user
Comments
Transcript
Lezione15 - Dipartimento di Ingegneria dell`Informazione
Lezione 15 Architettura di un calcolatore L’elaboratore Elettronico ? Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo ? Internamente all’elaboratore tutte le informazioni sono rappresentate in binario: ? dati ? programmi 1 Le unità fondamentali ? Le unità che compongono il calcolatore sono: ? La memoria centrale (CM) ? L’unità di controllo (CU) ? L’unità aritmetico logica (ALU) ? L’unità di ingresso/uscita (IO) ? Le unità di memoria di massa Le unità ? La memoria centrale: è il dispositivo in cui vengono mantenuti sia il programma che i dati su cui l’elaboratore opera ? L’unità di controllo: è il dispositivo che provvede alla esecuzione delle istruzioni che compongono un programma. Provvede a coordinare le altre unità. 2 Le unità ? L’unità aritmetico/logica: è il dispositivo che esegue le operazioni di calcolo (+,*,<,=,etc) e logiche (and,or,not,etc) ? Le unità ingresso/uscita: sono i dispositivi tramite i quali è possibile comunicare dati all’elaboratore (ingresso) e conoscere i risultati dell’elaborazione (uscita). Le unità ? Le unità di memoria di massa: sono dispositivi in cui è possibile mantenere grandi quantità di informazioni (dati o programmi) in modo permanente (anche quando un calcolatore è spento). 3 Interazione tra le unità ? Le unità sono collegate tra loro tramite bus ? Un bus è un insieme di linee in grado di trasmettere un segnale elettrico. ? Attraverso un bus le unità si scambiano dati o istruzioni Bus ? Il bus che collega la ALU alla CU è detto bus interno ? Il bus che collega la memoria con le altre parti del sistema è detto bus esterno ? I bus si possono dividere in bus per il ? trasferimento di dati ? trasferimento di indirizzi ? trasferimento di comandi 4 Bus esterno Unità di controllo Unità aritmetico-logica Bus interno Architettura della Calcolatore Unità di memoria centrale Unità periferica Interazione tra le unità ? Schema generale: ? L’unità di controllo acquisisce dalla memoria centrale l’istruzione ? se è una istruzione di IN/OUT trasferisce i dati verso o in uscita dalla memoria centrale ? se è una istruzione di elaborazione dei dati la trasferisce alla unità aritmentico -logica insieme al comando di quale operazione eseguire, preleva il risultato e lo trasferisce nella memoria centrale ? L’unità di controllo acquisisce l’istruzione successiva dalla memoria 5 La memoria centrale ? E’ un insieme di celle ciascuna delle quali può contenere una informazione in forma binaria ? La dimensione della cella è il numero di bit che essa contiene ? Tale dimensione è anche detta parola ? Sono possibili parole di 16, 32, 64 bit La memoria centrale ? Le celle costituiscono un insieme ordinato numerato progressivamente da 0 a N-1 ? N è la dimensione della memoria centrale detta capacità ? Si fa riferimento al contenuto di una cella tramite il suo indirizzo ? La memoria è volatile, cioè non mantiene le informazioni quando si spenge l’elaboratore 6 Capacità di memoria ? Se un calcolatore ha una memoria di 2 MB con parole di 16 bit di quante celle di memoria dispone? ? R: 16 bit = 2 byte, 2MB=1 milione di celle ? Se un calcolatore ha parole di 16 bit, quante celle di memoria può teoricamente indirizzare? ? R: 216 La memoria centrale ? Le operazioni che si possono eseguire sulla memoria centrale sono la scrittura e la lettura ? Non possono essere eseguite operazioni direttamente in memoria: il contenuto va trasferito su dei registri, elaborato, e poi riscritto ? La memoria centrale viene anche detta ad accesso casuale o Random Access Memory (RAM) poiché il tempo di accesso per una data cella è indipendente dalla cella (ovvero dal suo indirizzo) ? Il tempo di accesso è inferiore ai 100 ns 7 Scrittura ? Operazione con cui si deposita informazione in memoria centrale ? Necessita di un dato e un indirizzo della cella in cui si vuole scrivere. ? L’operazione è distruttiva ovvero cancella l’informazione precedentemente contenuta nella cella Lettura ? Operazione con cui si preleva informazione dalla memoria centrale ? Necessita dell’indirizzo della cella in memoria centrale da cui si vuole leggere ? E’ un’operazione non distruttiva, cioè si copia l’informazione presente nella cella lasciando quest’ultima inalterata 8 Architettura della memoria Registro indirizzi Decodificatore indirizzi bus MEMORIA CENTRALE Registro dati Organizzazione della memoria centrale ? I componenti fondamentali della memoria centrale sono: ? memoria: l’insieme delle celle ? registro indirizzi: contiene l’indirizzo della cella a cui si vuole far riferimento ? decodificatore di indirizzi: dispositivo che seleziona la cella il cui indirizzo è specificato nel registro indirizzi ? registro dati: contiene l’informazione che deve essere scritta o quella che è stata letta ? bus: collega la memoria al resto dei dispositivi 9 Cosa sono i registri? ? I registri sono dei dispositivi che permettono la memorizzazione dell’informazione (una o più parole) ? l’informazione transita velocemente sul bus ? i registri permettono di sincronizzare le operazioni fra i vari dispositivi, conservando per il tempo necessario l’informazione A cosa serve il decodificatore? ? L’indirizzo di una cella di memoria viene rappresentato come un numero in binario ? Es. la cella di indirizzo 9 è rappresentata come: 00000000 00001001 ? Il decodificatore acquisisce tale numero e attiva la cella corrispondente 10 Operazioni sulla memoria centrale ? Scrittura: ? L’indirizzo della cella passa dal bus e viene memorizzato nel registro indirizzi ? Il dato passa dal bus e viene memorizzato nel registro dati ? viene inviato un segnale di scrittura che attiva il trasferimento dell’informazione contenuta nel registro dati nella cella il cui indirizzo è nel registro indirizzi Operazioni sulla memoria centrale ? Lettura: ? L’indirizzo della cella passa dal bus e viene memorizzato nel registro indirizzi ? Viene inviato un segnale di lettura che attiva il trasferimento dell’informazione contenuta nella cella il cui indirizzo è nel registro indirizzi nel registro dati ? Viene trasferito sul bus il dato memorizzato nel registro dati 11 L’unità aritmetico logica ? E’ il dispositivo capace di eseguire le operazioni aritmetiche fondamentali, le operazioni logiche e di shift ? La CU trasmette alla ALU gli operandi, cioè i dati su cui deve eseguire una operazione, e un comando che indica quale operazione ? La ALU esegue l’operazione e pone il risultato sul registro risultato, e inoltre invia informazioni sulle condizioni dell’operazione Condizioni dell’operazione ? Le condizioni sono: ? risultato nullo ? positivo, negativo ? overflow sì o no ? carry sì o no ? Queste informazioni sono codificate in una parola di 4 bit ? Es. 0101 =non nullo, positivo,no overflow, sì carry 12 Architettura della ALU Registro accumulatore bus Cicuiti Aritmetico-Logici Registro risultato Operazioni in ALU ? Esecuzione di una operazione: ? si trasferisce un operando dal bus e si memorizza su registro accumulatore ? si invia un comando di operazione alla ALU ? si copia il risultato sul registro risultato ? si trasferisce il risultato sul bus 13 I registri accumulatori ? E’ il registro su cui può operare direttamente l’ALU ? Con una architettura a 16 bit è possibile operare in floating point a 32 bit utilizzando du registri accumulatori da 16 bit ciascuno ? Architetture che posseggono più di un registro accumulatore possono memorizzare risultati temporanei su questi per incrementare le prestazioni L’unità di controllo ? L’unità di controllo è il dispositivo che sovraintende e coordina tutti gli altri dispositivi ? La CU legge l’indirizzo da cui prelevare una istruzione dalla memoria la pone nel registro istruzione, la decodifica ed inizia tramite la logica di controllo ad attivare i vari dispositivi ? Successivamente si modifica (incrementa) l’indirizzo a cui leggere l’istruzione successiva e si ripete il ciclo 14 Architettura della unità centrale Registro contatore di programma Logica di controllo bus Decodificatore istruzione Registro istruzione Il registro contatore di programma ? Detto Program Counter (PC), contiene l’indirizzo della cella di memoria centrale in cui è contenuta l’istruzione che deve essere eseguita. ? La CU incrementa di 1 il contenuto del PC per leggere l’istruzione successiva ? Se l’istruzione da elaborare è un’istruzione di salto allora la CU scrive direttamente dentro il PC che contiene così l’indirizzo della istruzione a cui si vuole saltare 15 L’esecuzione delle istruzioni ? Esecuzione di una istruzione: ? Fase di fetch (o di prelievo) ? si copia il contenuto della cella in memoria centrale con indirizzo specificato dal program counter, sul registro istruzione o instruction register (IR) ? si incrementa il PC di uno L’esecuzione delle istruzioni ? Esecuzione di una istruzione: ? Fase di decodifica ? IR passa l’istruzione ad un decodificatore di istruzioni che genera i segnali per la logica di controllo 16 L’esecuzione delle istruzioni ? Esecuzione di una istruzione: ? Fase di esecuzione ? vengono attivati i dispositivi interessati all’esecuzione dell’istruzione (ALU) e coordinano il trasferimento delle informazioni da un dispositivo ad un altro (ex. dalla memoria centrale ad un dato registro) ? se l’istruzione era una istruzione di salto si modifica il contenuto del PC Sincronizzazione ? Ogni operazione avviene in modo sincronizzato rispetto ad un orologio (clock) interno al sistema ? Il clock di sistema genera impulsi a intervalli regolari ? Oggi i calcolatori hanno clock di quasi 2GHz=2miliardi di impulsi al secondo 17 Altri registri ? Esistono altri registri: ? registro di stato: mantiene informazioni per specificare il permesso di esecuzione di certe istruzioni, di accesso a certe aree di memoria, di abilitazione a ricevere segnali dalle unità periferiche ? registro base: usato per suddividere la memoria centrale in pagine, per indirizzare quantità maggiori di memoria o per la protezione di aree di memoria Implementazione dell’unità centrale ? Le funzioni elencate per la CU vengono realizzate in modo diverso in diverse architetture: ? Registri dedicati e registri generali: si possono avere architetture che contengono un insieme di registri generali ognuno dei quali può essere utilizzato come accumulatore, program counter, etc. 18 Central Unit ?Controllo cablato: l’esecuzione di una istruzione può essere controllata passo passo dai circuiti di decodifica e di tempificazione della CU ?Microprogrammazione: in una memoria a sola lettura vengono memorizzate delle microistruzioni che controllano i passi elementari in cui può essere decomposta l’esecuzione di un’istruzione Microporcessore ? Una unità centrale realizzata come un unico circuito (non un insieme di parti fisicamente separate) e integrato su larghissima scala (Very Large Scale of Integration o VLSI) in un unico supporto di silicio (chip) è detto microprocessore ? Un microprocessore moderno ha le dimensioni del cm quadrato 19 Velocità di elaborazione ? L’esecuzione di una istruzione è eseguita in diversi passi: fase di prelevamento dalla memoria, di decodifica, di esecuzione, di riscrittura in memoria. ? Complessivamente una istruzione viene eseguita in una decina di sottopassi, ciascuno dei quali impiega non meno di un colpo di clock ? Di conseguenza un calcolatore con un clock di 1 GHz è in grado di eseguire 100 MIPS (Million Instructions Per Second) Velocità di elaborazione ? Le istruzioni floating point possono essere realizzate su rappresentazioni di interi con apposite procedure programmate o essere eseguite in harware da dispositivi specializzati detti coprocessori matematici ? Per questi si parla di MFLOPS Million of Floating point Operations Per Second 20