Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l’esecuzione dei programmi AA 2002/2003 © Morpurgo, Zanaboni 1 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti: • Il processore • La memoria • Le periferiche Interconnesse attraverso il bus AA 2002/2003 © Morpurgo, Zanaboni 2 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 1 Struttura logica • • • • processore (CPU: Central Processing Unit) memoria centrale ad accesso diretto (RAM: Random Access Memory) Canale di comunicazione (bus) Periferiche AA 2002/2003 © Morpurgo, Zanaboni 3 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi bus RAM Struttura fisica CPU Interfccia alle periferiche AA 2002/2003 © Morpurgo, Zanaboni 4 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 2 PROGRAMMI e LINGUAGGIO MACCHINA AA 2002/2003 © Morpurgo, Zanaboni 5 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Programmi • I programmi sono sequenze di istruzioni. • I programmi eseguibili da un computer devono essere scritti usando un linguaggio (di programmazione) che il computer è in grado di “comprendere”. AA 2002/2003 © Morpurgo, Zanaboni 6 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 3 Computer = macchina che svolge rapidamente operazioni elementari Programma = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso successioni di operazioni elementari specificate in un linguaggio “comprensibile” dal computer. Dato = informazione da elaborare rappresentata in un formato che consenta al programma di operare su di essa AA 2002/2003 © Morpurgo, Zanaboni 7 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi LA CPU AA 2002/2003 © Morpurgo, Zanaboni 8 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 4 Il processore - chip • Il processore è l’unità di elaborazione centrale (CPU: central processing unit) del computer. • Oggi le CPU sono costituite da circuiti che contengono milioni di microscopici interruttori acceso/spento (i transistor) collegati tra loro da sottilissimi fili. • I circuiti vengono “stampati” su una sottile lamina di silicio. Il chip che corrisponde a una CPU ha una superficie dell’ordine dei mm2. AA 2002/2003 © Morpurgo, Zanaboni 9 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Il processore - chip • Pertanto oggi si parla di microprocessore costituito da circuiti integrati: milioni di elementi tra loro collegati contenuti in una superficie quasi microscopica. AA 2002/2003 © Morpurgo, Zanaboni 10 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 5 Il processore AA 2002/2003 © Morpurgo, Zanaboni 11 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Il linguaggio macchina • Il processore è in grado di riconoscere (e quindi di eseguire) solo programmi scritti in un proprio linguaggio (linguaggio macchina) • Ogni modello di processore (es: Intel, Pentium, Motorola, PowerPC) ha un proprio linguaggio macchina diverso da quello degli altri processori AA 2002/2003 © Morpurgo, Zanaboni 12 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 6 Il processore - clock • In corrispondenza di ogni istruzione espressa nel linguaggio macchina il processore svolge una serie di operazioni elementari (il ciclo della macchina). • Il numero operazioni elementari svolte per ogni istruzione dipende dal tipo di processore (tra le 7 e le 10). AA 2002/2003 © Morpurgo, Zanaboni 13 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Il processore - clock • Il tempo impiegato dal processore per eseguire una operazione elementare è detto durata del ciclo di clock • Il numero di operazioni elementari svolte dal processore in una unità di tempo (cioè il numero di cicli di clock al secondo) è la frequenza di clock AA 2002/2003 © Morpurgo, Zanaboni 14 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 7 Il processore - clock Quindi: 1 Frequenza di clock = Durata di un ciclo di clock E’ un indicatore della “velocità” del processore nell’eseguire i programmi. Oggi si misura in Mhz (MegaHertz). 1 Mhz = 1 milione di cicli al secondo. AA 2002/2003 © Morpurgo, Zanaboni 15 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Il processore - clock • Dati due processori con lo stesso linguaggio macchina sarà più veloce quello con frequenza di clock maggiore • Non è possibile fare un confronto tra processori con linguaggi macchina diversi AA 2002/2003 © Morpurgo, Zanaboni 16 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 8 Il processore - clock Esempio Computer A Clock : 500MHz Linguaggio macchina richiede 10 operazioni elementari per istruzione Computer B Clock : 400MHz Linguaggio macchina richiede 6 operazioni elementari per istruzione Devono eseguire un programma di 100M istruzioni macchina A impiegherà 2 sec. AA 2002/2003 © Morpurgo, Zanaboni B impiegherà 1,5 sec. 17 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Il processore - registri • Per eseguire le operazioni elementari il processore ha bisogno di utilizzare delle memorie (di piccole dimensioni) alle quale accedere in modo veloce (es: una zona che contiene l’indirizzo dell’istruzione da eseguire, una per i dati su cui l’istruzione opera) • Queste memorie, che fisicamente sono contenute nel chip, sono chiamate registri del processore AA 2002/2003 © Morpurgo, Zanaboni 18 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 9 Memoria processore registro registro … registro Interfccia alle periferiche AA 2002/2003 © Morpurgo, Zanaboni 19 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Sistemi con più processori I co-processori • A seconda del tipo di uso che l’utente fa del computer, per velocizzarne le prestazioni si possono aggiungere dei co-processori. • Questi sono processori specializzati nell’esecuzione di compiti specifici (es: gestione dello schermo) che operano sotto il controllo della CPU. AA 2002/2003 © Morpurgo, Zanaboni 20 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 10 Memoria processore registro registro … registro co-processore Interfccia alle periferiche AA 2002/2003 © Morpurgo, Zanaboni 21 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Sistemi con più processori Sistemi paralleli • I sistemi paralleli sono sistemi con più CPU che operano in modo indipendente e condividono le altre risorse del computer. • Il coordinamento dei diversi processori è demandato al sistema operativo. • La velocità del computer risulta aumentata ma non moltiplicata, perché non è trascurabile il tempo che il sistema operativo deve dedicare al coordinamento dei processori AA 2002/2003 © Morpurgo, Zanaboni 22 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 11 processore registro registro Memoria … registro registro registro processore … registro Interfccia alle periferiche AA 2002/2003 © Morpurgo, Zanaboni 23 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi LA MEMORIA AA 2002/2003 © Morpurgo, Zanaboni 24 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 12 La memoria • La memoria è la componente che svolge la funzione di magazzino delle informazioni sulle quali opera il processore • L’unità di informazione minima è il bit (binary unit). Consideriamola come una casella nella quale possiamo scrivere il simbolo 0 oppure il simbolo 1. AA 2002/2003 © Morpurgo, Zanaboni 25 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi La memoria-il bit • • Avendo a disposizione un solo bit si possono rappresentare due elementi diversi: Si assegna al primo elemento la codifica 0 e al secondo la codifica 1 Avendo a disposizione due bit si possono rappresentare quattro elementi diversi, assegnando a ciascuno una codifica diversa: 00, 01, 10, 11 AA 2002/2003 © Morpurgo, Zanaboni 26 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 13 La memoria-il bit • Avendo a disposizione tre bit si possono rappresentare otto elementi diversi. • .… • Avendo a disposizione n bit si possono rappresentare 2n elementi diversi. AA 2002/2003 © Morpurgo, Zanaboni 27 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi La memoria-il byte • Agli albori dell’informatica c’era l’esigenza di rappresentare i caratteri stampabili (le lettere dell’alfabeto, le cifre da 0 a 9, lo spazio, la virgola etc…) per un numero totale di caratteri compreso tra 90 e 120. • Per poter rappresentare 128 elementi diversi servono almeno 7 bit (27=128). • E’ bene avere a disposizione un bit supplementare poter effettuare controlli sulla sequenza AA 2002/2003 © Morpurgo, Zanaboni 28 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 14 La memoria-il byte • Quindi per rappresentare i caratteri stampabili è necessaria una sequenza di 7+1=8 bit. • Una sequenza di 8 bit è detta byte, ed è diventata una unità di misura della occupazione di memoria. AA 2002/2003 © Morpurgo, Zanaboni 29 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi La memoria-il byte BYTE 1 0 0 1 0 1 1 1 = b BIT AA 2002/2003 © Morpurgo, Zanaboni 30 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 15 Le celle di memoria AA 2002/2003 © Morpurgo, Zanaboni 31 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Le celle di memoria • Ogni cella di memoria contiene un byte, ed è contraddistinta da un indirizzo • Volendo scrivere o leggere un dato dalla memoria il processore deve sempre specificare l’indirizzo della cella alla quale vuole accedere AA 2002/2003 © Morpurgo, Zanaboni 32 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 16 La memoria-unità di misura Le dimensioni di una memoria si misurano in: • Kbyte (kilo byte)= 210 byte = 1024 byte ¡ 103 byte • Mbyte (Mega byte)= 210 Kbyte = 1024 Kbyte= 220 byte ¡ 106 byte • Gbyte (Giga byte)= 210 Mbyte =1024 Mbyte = 230 byte ¡ 109 byte • Tbyte (Tera byte)= 210 Gbyte =1024 Gbyte = 240 byte ¡ 1012 byte AA 2002/2003 © Morpurgo, Zanaboni 33 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi L’ESECUZIONE DEI PROGRAMMI AA 2002/2003 © Morpurgo, Zanaboni 34 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 17 Quando chiediamo al computer di eseguire un programma accade che: • Il programma (già scritto in linguaggio macchina) viene trasferito nella memoria di lavoro (la memoria centrale), alla quale il processore può accedere velocemente • Per ogni istruzione del programma la CPU esegue tre tipi di operazioni, che costituiscono il ciclo della macchina: AA 2002/2003 © Morpurgo, Zanaboni 35 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Ciclo della macchina • Lettura (fetch)– il processore reperisce dalla memoria l’istruzione da eseguire • Decodifica (decode) – il processore identifica l’istruzione da eseguire • Esecuzione (exec) – il processore esegue le operazioni corrispondenti all’istruzione AA 2002/2003 © Morpurgo, Zanaboni 36 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 18 L’esecuzione dei programmi La memoria centrale è l’area di lavoro: • contiene i programmi in esecuzione in quel momento ed i relativi dati • in particolare, contiene sempre la parte del sistema operativo che governa l’utilizzo delle risorse di calcolo L’unità fisica che esegue i programmi in memoria centrale è la CPU AA 2002/2003 © Morpurgo, Zanaboni 37 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi L’esecuzione dei programmi •Si dice che un programma ha il controllo della CPU se la CPU sta eseguendo quel programma; •impropriamente, diremo che: • un programma P svolge un compito • per dire che • la CPU svolge quel compito sotto il controllo di P AA 2002/2003 © Morpurgo, Zanaboni 38 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 19 L’esecuzione dei programmi del Sistema Operativo (SO) •Quando il calcolatore è in attesa di comandi, il controllo della CPU è detenuto dal SO, che: • gestisce l’interfaccia utente • accetta i comandi dell’utente • avvia (lancia) l’esecuzione dei programmi applicativi AA 2002/2003 © Morpurgo, Zanaboni 39 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi L’esecuzione di un programma applicativo • La CPU è sotto il controllo del SO, che gestisce l’interfaccia utente • L’utente chiede, tramite l’interfaccia, di eseguire, ad esempio, WORD • La CPU, sotto il controllo del SO, riconosce la richiesta e • carica (trasferisce) WORD in memoria centrale • inizia ad eseguire WORD • L’esecuzione di WORD termina e la CPU riprende ad eseguire il SO; • nuovamente sotto il controllo del SO, la CPU è pronta ad accettare nuovi comandi AA 2002/2003 © Morpurgo, Zanaboni 40 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 20 Ma la situazione è più complessa •In realtà il SO gestisce l’esecuzione di più programmi e più utenti, per cui • si hanno più processi e il SO concede la CPU a ciascuno di essi, per piccoli intervalli di tempo, a rotazione o secondo altre politiche • tutto ciò è trasparente all’utente e non ce ne occuperemo in questo corso AA 2002/2003 © Morpurgo, Zanaboni 41 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Funzionamento della CPU Memoria centrale RI (Registro Istruzione) PC (Program counter) … … processore registri registro dati 1 … … registro dati k CPU AA 2002/2003 © Morpurgo, Zanaboni 42 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 21 La nostra CPU finta • Una CPU può leggere/scrivere il contenuto di una sola cella di memoria alla volta, specificandone l’indirizzo; • contiene inoltre dei registri, come area di lavoro veloce • la nostra CPU finta contiene i seguenti registri • il registro PC (Program counter) che contiene l’indirizzo dell’istruzione da reperire • il registro RI, (Registro istruzioni) che contiene l’istruzione da decodificare ed eseguire • 4 registri dati • il ciclo di esecuzione, nelle sue fasi, avviene come segue AA 2002/2003 © Morpurgo, Zanaboni 43 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Ciclo della macchina •La CPU esegue le istruzioni in memoria centrale ripetendo i seguenti passi (ciclo della macchina): •1) Lettura (fetch) •reperisce dalla memoria centrale l’istruzione da eseguire e la carica nel registro istruzioni RI •2) Decodifica (decode) • riconosce l’istruzione presente nel RI; •3) Esecuzione (exec) • esegue le operazioni dettate da tale istruzione •4) Torna al passo 1) • per la lettura della prossima istruzione AA 2002/2003 © Morpurgo, Zanaboni 44 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 22 Esempio con una CPU finta, che usa la numerazione decimale La nostra CPU finta usa una memoria centrale indirizzata da 2 cifre decimali, cioè di 100 elementi Indirizzi da 00 a 99 00 01 02 03 04 05 06 Celle di memoria di lunghezza 6 cifre decimali 013005 012006 112310 021006 999999 000120 000080 …. …….. AA 2002/2003 © Morpurgo, Zanaboni 45 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi Quando inizio il reperimento il PC contiene l’indirizzo dell’istruzione da eseguire in quel momento In questo esempio è l’istruzione di indirizzo 01 013005 012006 112310 021006 999999 000120 000080 00 01 02 03 04 05 06 PC RI 01 013005 processore registri 0 000000 1 000120 2 000000 3 000000 CPU …. …….. Nel reperimento: la CPU trasferisce l’istruzione da eseguire (di indirizzo 01) nel RI e si ottiene: AA 2002/2003 © Morpurgo, Zanaboni 46 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 23 che RI contiene l’istruzione da eseguire 00 01 02 03 04 05 06 013005 012006 112310 021006 999999 000120 000080 PC RI 02 012006 processore Registri dati 0 000000 1 000120 2 000000 3 000000 CPU …. …….. il PC punta già alla prossima, di indirizzo 02 ha inizio la decodifica ed esecuzione dell’istruzione in RI AA 2002/2003 © Morpurgo, Zanaboni Decodifica 47 01 2 0 06 trasferisci nel registro 2 00 01 02 03 04 05 06 011005 012006 112310 021006 999999 000120 000080 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi il dato contenuto nella cella di memoria 06 PC RI 02 012006 processore Registri dati 0 000000 1 000120 2 000000 3 000000 CPU …. …….. L’esecuzione trasferisce 000080 nel registro 2 AA 2002/2003 © Morpurgo, Zanaboni 48 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 24 00 01 02 03 04 05 06 011005 012006 112310 021006 999999 000120 000080 PC RI 02 012006 processore Registri dati 0 000000 1 000120 2 000080 3 000000 CPU …. …….. Inizia un nuovo ciclo di esecuzione, che reperisce l’istruzione puntata dal PC, ora quella di indirizzo 02, e così via AA 2002/2003 © Morpurgo, Zanaboni 49 Laboratorio di Informatica Lezione 4. CPU, RAM, esecuzione dei programmi 25