Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software
Argomenti Architettura del computer Motore di esecuzione
Architettura del computer
Cosa hanno in comune? Schema di funzionamento
Architettura generale di Von Newmann Schema di funzionamento segue architettura di Von Newmann. Prevede: memoria, unità centrale di elaborazione e dispositivi di input (ingresso) e output (uscite). Il bus di comunicazione permette lo scambio di dati tra le altre componenti. Tra i dispositivi di ingresso: Mouse Tastiera Scanner Tra i dispositivi di ingresso e uscita: Hard disk Memoria USB Tra i dispositivi di uscita: Monitor Stampante Casse audio
Memoria La memoria contiene: il programma in esecuzione i dati su cui il programma stesso opera Ha le seguenti proprietà: Lunghe sequenze di locazioni discrete ogni locazione è tipicamente di 1 byte (8 bit) Indirizzi univoci ogni locazione di memoria ha un indirizzo intero a partire da 0 indica la posizione della locazione nella sequenza Contiene valori le locazioni di memoria memorizzano valori Capacità finita delle locazioni sia per il numero di locazioni sia per la capacità di ogni locazione (numero di bit)
Locazioni in memoria Ogni locazione è organizzata in unità dette celle. Ogni locazione è in grado di contenere: un carattere ASCII; oppure un numero intero [0, 255]; oppure una sequenza di 8 bit. La capacità di una singola locazione è limitata. Si può ovviare al problema usando una sequenza di indirizzi. L indirizzo della prima locazione è l indirizzo dell intero blocco. I blocchi di 4 byte identificano una sola unità e sono detti parole di memoria o word.
Memoria E ad accesso causale o diretto RAM (Random Access Memory): il computer può accedere sia in lettura sia in scrittura alle locazione in memoria in qualsiasi ordine. Ordine di grandezza della RAM: GigaByte (GB) o MegaByte (MB) Avere molta memoria è preferibile: evita problemi di spazio per i programmi e i dati.
Schema CPU CPU (Central Processing Unit) o processore si compone di 3 parti: 1. Unità aritmetica/logica (Arithmetic Logic Unit, ALU) che esegue l elaborazione vera e propria; 2. Unità di controllo (UC) che coordina le attività della macchina; 3. Unità dei registri che contiene le celle di memorizzazione dei dati.
Arithmetic Logic Unit (ALU) Esegue tutti i calcoli legati alla esecuzione della istruzione. Possiede il circuito per la somma e sottrazione. Ci sono altri circuiti dedicati alla moltiplicazione o al confronto. Il circuito impiega porte logiche quali AND e OR per eseguire operazioni di somma binaria.
Unità dei registri I registri possono essere generici e speciali. Quelli generici: memorizzano temporaneamente i dati elaborati dalla CPU; conservono i dati in ingresso alla circuiteria dell ALU; forniscono uno spazio per i risultati ottenuti dall ALU. Due di quelli speciali sono: 1. registro istruzione in cui viene posta la istruzione su cui sta lavorando l unità di controllo; 2. registro Program Counter (PC) che fornisce la locazione della prossima istruzione da eseguire.
Unità di controllo Trasferisce i dati della memoria, necessari alla esecuzione di una istruzione, nei registri generici. Informa l ALU della nuova collocazione. Attiva la circuiteria appropriata. Dice all ALU il registro che deve ricevere i risultati.
Bus E un insieme di fili che collega la memoria e la CPU. La CPU effettua operazioni di lettura dalla memoria e di scrittura nella memoria tramite il bus. L addizione di due numeri richiede: l impiego della ALU che esegue la addizione appena riceve la istruzione dalla unità di controllo; l impiego della unità di controllo che coordina il trasferimento dei dati tra la memoria e i registri.
Periferiche Sono dispositivi che si connettono alle porte di ingresso e uscita del processore per fornire input e ricevere output. Non sono parti vere e proprie del processore. Sono specializzate per codificare o decodificare i dati scambiati dal processore col mondo fisico. I cavi che vanno dalla periferica al computer sono connessi all unità di ingresso o di uscita: quella di ingresso porta le informazioni dalla periferica al computer; quella di uscita porta le informazioni dalla memoria al dispositivo.
Periferiche di ingresso e uscita Le chiavi USB possono sia ricevere che inviare dati dal/al processore. Sono connesse ad entrambe le unità di ingresso e uscita. Gli hard disk come anche le chiavi USB sono archivi permanenti di dati. Possono aumentare la capacità della memoria RAM del processore.
Periferiche di ingresso La tastiera inserisce i caratteri alfanumerici. Permette di immettere dati, testi e comandi al computer. Trasforma le battute sui tasti in formato binario Il mouse è un dispositivo di puntamento che segnala al computer gli spostamenti del puntatore sul monitor. Lo scanner è usato per l inserimento di immagini ma anche di testi.
Periferiche di uscita Il monitor decodifica le informazioni provenienti dalla memoria del computer tramite rappresentazione RGB.
Driver delle periferiche E un programma che gestisce e controlla una determinata periferica collegata al computer. Traduce il fenomeno fisico in segnale binario e viceversa. Il computer interpreta il segnale binario riportato dalla periferica e prepara l output.
Motore di esecuzione
Il motore di esecuzione Il computer esegue i programmi in memoria copiando le relative istruzioni nella CPU. Ogni istruzione viene decodificata ed eseguita dalla CPU. Il prelievo delle istruzioni dalla memoria segue l ordine di memorizzazione, a meno di istruzioni particolari. Il processore è il motore di esecuzione delle istruzioni, detto ciclo macchina. Il ciclo macchina, detto Fetch/Execute cycle, si compone di tre fasi: 1. Reperimento dell istruzione (Fetch) 2. Decodifica dell istruzione (Decode) 3. Esecuzione dell istruzione (Execute)
Ciclo macchina Per capire il funzionamento del ciclo macchina si richiama due registri speciali: Contatore di programma (Program counter o PC) Registro delle istruzioni Il contatore di programma contiene l indirizzo della istruzione successiva da eseguire. Il computer è quindi in grado di sapere a che punto del programma si trova. Il registro delle istruzioni contiene le istruzioni da eseguire.
Ciclo macchina Elementi elaboratore coinvolti RAM CPU CPU RAM CPU CPU CPU RAM Fasi del Ciclo La CPU inizia un nuovo ciclo con la fase di riperimento. Fetch istruzione (IF) Decodifica istruzione (ID) Fetch Dati (DF) Esecuzione Istruzione (EX) Restituzione Risultato (RR) Descrizione La CPU preleva la istruzione successiva dal PC, la mette nel registro istruzioni e incrementa il PC. La CPU decodifica la istruzione. La CPU ottiene i dati necessari all istruzione con il reperimento. La unità di controllo esegue la istruzione. La CPU salva il risultato in memoria.
Ciclo Macchina Elementi elaboratore coinvolti controllo Fasi del Ciclo Fetch istruzione (IF) Descrizione registri controllo ALU Decodifica istruzione (ID) Fetch Dati (DF) Esecuzione Istruzione (EX) Durante la esecuzione della istruzione la unità di controllo attiva la circuiteria coivolta: ALU in caso di operazione aritmetica. controllo Restituzione Risultato (RR)
Unità di controllo E la implementazione hardware del ciclo macchina. Preleva una istruzione dalla memoria ed esegue su di essa le altre operazioni del ciclo. Possiede due registri: Registro dell istruzione in cui è messa la istruzione su cui sta lavorando; PC che da la locazione della prossima istruzione.
Unità di controllo Inizia il ciclo macchina prelevando la istruzione dalla locazione di memoria specificata nel PC. Effettua la decodifica: Determina la operazione richiesta; Individua l indirizzo di memoria dei dati necessari all istruzione; Individua l indirizzo di destinazione del risultato. Segue la fase di fetch dei dati inviandoli alla circuiteria coinvolta nella esecuzione della istruzione. Dice alla circuiteria che ha eseguito la istruzione di inviare i risultati in memoria all indirizzo determinato nella fase di decodifica.
Arithmetic Logic Unit (ALU) Effettua i conti. Questo circuito impiega porte logiche per eseguire le operazioni specificate dalla istruzione. Le istruzioni di trasferimento dei dati non usano la ALU. Il passo Fetch Dati ottiene i dati dalla memoria per la esecuzione da parte dell ALU di operazioni. Il passo Restituzione Risultato copia il valore prodotto dall ALU nella memoria, all indirizzo specificato nella istruzione.
Program Counter (PC) L indirizzo della prossima istruzione è memorizzato nel PC, registro dell unità di controllo. Nei computer moderni le istruzioni impiegano 4 byte, 1 parola. La istruzione successiva si trova all indirizzo PC + 4, quindi 4 byte dopo nella sequenza. 4 è aggiunto al PC A termine del passo Fetch il PC è incrementato di 4. Al Fetch successivo il PC punta all istruzione giusta.
Architettura interna La macchina ha 16 registri generici e 256 celle di memoria. I registri sono numerati da 0 a F in esadecimale. Ogni registro è lungo 1 byte. Ogni cella ha una capacità di 8 bit. Ha un indirizzo univoco che va da 0 a 255, numerati da 00 a FF in esadecimale.
Esecuzione della istruzione ADD 2000, 1000, 1080 SOMMA Indirizzo 1 addendo Indirizzo risultato ADD 2000,1000,1080 Indirizzo 2 addendo locazioni 2000,1000,1080 valori 52, 12, 40
Esecuzione della istruzione ADD 2000, 1000, 1080 Istruzione da eseguire ADD 2000,1000,1080, che il PC dice essere all indirizzo 800. Alla fase di Fetch tale istruzione viene spostata dalla memoria alla unità di controllo, e l indirizzo nel PC viene incrementato di 4. Alla fase di Decodifica gli indirizzi dei dati vengono inviati alla memoria (1000 e 1080), l operazione + viene impostata nell ALU e viene impostato l indirizzo di restituzione (2000). Alla fase di Fetch i valori dei due operandi (quelli associati a 1000 e 1080) vengono prelevati dalla memoria e posti nell ALU (siano 12 e 40). Alla fase di Execute viene eseguita la operazione +, producendo il risultato 52. Alla fase di Restituzione del Risultato la risposta viene restituita alla memoria nella locazione 2000, il valore aggiornato del PC viene inviato alla memoria in preparazione del nuovo ciclo.
Il clock (orologio) del computer Il clock di un computer è un circuito detto oscillatore che genera impulsi per coordinare le attività della macchina. Più rapidamente sono generati questi impulsi, più rapidamente il computer esegue il ciclo macchina. Le velocità di macchina sono misurate in Hertz (Hx). 1 Hz equivale a 1 ciclo (impulso) al secondo. il clock di un normale laptop gira attorno a 1-3 GHz. il clock di uno smartphone è circa 1 GHz.
Referenze Glenn Brookshear, Informatica una panoramica generale, 11-esima versione, Pearson, Cap 2 e 3. Donatella Sciuto, Giacomo Buonanno, Luca Mari, Introduzione ai sistemi informatici, V edizione, Mc Graw Hill Education, Cap 6 e 7.