A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di...

36
Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36

Transcript of A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di...

Page 1: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Architettura di un computer

Modulo di InformaticaDott.sa Sara Zuppiroli

A.A. 2012-2013

Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36

Page 2: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La tecnologia

Cerchiamo di capire alcuni concetti su cui si basa unelaboratore:

l’architettura di Von Neumann come astrazione dellearchitetture degli elaboratoriil modello teorico della macchina astrattala struttura a livelli

Modulo di Informatica () Architettura A.A. 2012-2013 2 / 36

Page 3: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

L’architettura di Von Neumann

Il processore [CPU (Unità centrale di elaborazione)] sidivide a sua volta in:

I Unità calcolo, nella quale uno dei sottosistemi più rilevanti èl’unità aritmetica e logica (o ALU)

I Unità di controllo

Unità di memoria, intesa sia come memoria di secondariache come memoria principaleUnità di input/output, tramite la quale i dati vengonoinseriti/restituiti all’utenteBus che è il canale di comunicazioni tra tutti i componenti

Modulo di Informatica () Architettura A.A. 2012-2013 3 / 36

Page 4: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Architettura di Von Neumann

Modulo di Informatica () Architettura A.A. 2012-2013 4 / 36

Page 5: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Processore

La ALU esegue le operazioni aritmetiche e logiche.L’unità di controllo permette di eseguire il ciclofetch-decode-execute.

I Il controllo del ciclo di esecuzione è gestito attraverso ilregistro Program Counter (PC), che contiene l’indirizzo dimemoria della prossima istruzione da eseguire. Le relativeoperazioni di controllo sono quelle che agiscono su taleregistro, l’incremento sequenziale, o la modifica del suovalore.

I Il controllo dei dati in memoria principali avviene attraversoregistri e operazioni su tali registri.

Modulo di Informatica () Architettura A.A. 2012-2013 5 / 36

Page 6: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Ciclo fetch-decode-execute

Fetch: si recupera dalla memoria la prossima istruzione daeseguire (ossia si recupera l’operazione il cui indirizzo èmemorizzato nel PC). L’istruzione viene memorizzata nelregistro istruzione.Decode: L’istruzione presente nel registro istruzione èdecodificata attraverso circuiti logici e vengono recuperatigli operandi dalla memoriaExecute: si esegue l’operazione (primitiva) della macchina.Se si tratta di un’operazione logico-aritmetica si utilizzerà laALU e si salverà il risultato in memoria.

Il ciclo continua fino all’istruzione di STOP.

Modulo di Informatica () Architettura A.A. 2012-2013 6 / 36

Page 7: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Il processore

Modulo di Informatica () Architettura A.A. 2012-2013 7 / 36

Page 8: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Qualità del processore

Il processore è il componente del calcolatore che eseguetutte le operazioni di calcolo e la sua velocità influisce sulleprestazioni del PCPer stimare la velocità con cui un processore effettua icalcoli occorre tenere conto di:

I ogni quanti secondi il processore è in grado di produrre unrisultato elementare (è una frequenza e si calcola in Mhz)

I quanto complesso è il calcolo di ciascun risultato e quanto’intelligente’ è il processore nel produrlo (tipo di architettura)

Modulo di Informatica () Architettura A.A. 2012-2013 8 / 36

Page 9: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Scheda madre

Modulo di Informatica () Architettura A.A. 2012-2013 9 / 36

Page 10: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Gerarchia della memoria

Il computer opera utilizzando diversi tipi di memoria, che sonoorganizzati in maniera gerarchica nel seguente modo:

Memoria principale: contiene dati ed istruzioni in attesache questi siano prelevati dal microprocessore per essereelaborati, lavorando dunque in maniera strettamenteaccoppiata con esso. Fornisce accesso ai dati moltoveloce, il costo è elevato ed è volatile. Una parte di questaè la memoria cache.Memoria secondaria: include tutti quei dispositivi checonsentono all’utente la memorizzazione in modo definitivodei dati (sia programmi, che dati). Le caratteristiche sonoquindi la permanenza dei dati (non è volatile), un tempomaggiore per accedere ai dati, un costo inferiore.

Modulo di Informatica () Architettura A.A. 2012-2013 10 / 36

Page 11: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Gerarchia della memoria

Modulo di Informatica () Architettura A.A. 2012-2013 11 / 36

Page 12: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La memoria principaleÈ suddivisa in:

RAM ( Random Access Memory) è la memoria in cui sonocaricati i dati che devono essere utilizzati dal calcolatore perelaborare. La RAM è volatile, statica. Il processoreidentifica le celle della RAM tramite indirizzi assegnati chene specificano la posizione (la memoria si rappresentacome una stringa ordinata di elementi detti celle o parole). Iltempo di accesso alle celle della memoria è costante.Cache RAM, una memoria integrata nel processore, che hala caratteristica di essere molto veloce, ma ha un costoelevato, vengono caricati i dati a cui il processore accedepiù di frequenteROM, (Read Only Memory) è una memoria permanentepresente sulla scheda madre, che contiene il BIOS (BasicI/O System), cioè le istruzioni che la CPU deve caricare perconsentire l’avvio del sistema.

Modulo di Informatica () Architettura A.A. 2012-2013 12 / 36

Page 13: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

RAM

Modulo di Informatica () Architettura A.A. 2012-2013 13 / 36

Page 14: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La memoria secondaria(1/2)

È suddivisa in:I dischi magnetici, composti da uno o più dischi, sono letti escritti mediante un braccio mobile dotato della testina dilettura e scrittura. I dati vengono trasferiti ai dischimagnetici tramite un buffer nella memoria centrale edoccupano successive posizioni lungo le tracce. I settori deidischi vengono letti e scritti interamente utilizzando ilnumero della superficie, della traccia e del settore. Il tempodi accesso ai dischi magnetici è superiore rispetto a quellodella memoria centrale.

Modulo di Informatica () Architettura A.A. 2012-2013 14 / 36

Page 15: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La memoria secondaria (2/2)

È suddivisa in:I dischi ottici, l’informazione viene registrata realizzandomodificazioni della superficie riflettente e viene lettamediante un raggio laser che riscontra le irregolarità dellasuperficie riflettente. I dischi ottici sono ri-scrivibili e non.Fanno parte di questa categoria i CD, i CD-ROM e i DVD.I nastri magnetici consentono solo un accesso sequenzialeai dati e di solito sono usati per operazioni di backup.

Modulo di Informatica () Architettura A.A. 2012-2013 15 / 36

Page 16: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

HardDisck

Modulo di Informatica () Architettura A.A. 2012-2013 16 / 36

Page 17: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Rappresentazione dei dati in memoriaCosa sono i dati?

Nel linguaggio digitale, l’unità minima è il bitIl bit assume solo due stati (spento 0, o acceso 1)Il byte è costituito da 8 bit e gli stati rappresentabili sono28 = 256Ogni cella di memoria è denotata da un indirizzo anch’essoindividuato in maniera univoca con una serie di bit (dettoindirizzo di memoria)

Kb (kilobit) = 210 = 1024, circa l’ordine di 103

Mb (megabit) = 220, dell’ordine di 106

Gb (gigabit) = 230, dell’ordine di 109

Tb (terabit) = 240, dell’ordine di 1012

Pb (petabit) = 250 dell’ordine di 1015

Modulo di Informatica () Architettura A.A. 2012-2013 17 / 36

Page 18: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Cosa è il Bus

È un canale di comunicazione che permette a periferiche ecomponenti di un sistema elettronico di trasmettere informazionio dati di sistema. È in grado collegare tra loro diversi dispositivi.

Modulo di Informatica () Architettura A.A. 2012-2013 18 / 36

Page 19: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Bus

Modulo di Informatica () Architettura A.A. 2012-2013 19 / 36

Page 20: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La macchina astratta

È l’astrazione del concetto di calcolatore fisico quindi:I È un esecutore di istruzioni che identificano i passi di un

algoritmoI Ha una memoria associata e una sua gestioneI Ha associato un proprio linguaggio con un numero finito di

istruzioni detto Linguaggio Macchina (L)I Ha un algoritmo di esecuzione e memorizzazione dei

programmi

Supponiamo di avere un linguaggio di programmazione L.Definiamo Macchina Astratta per L un qualsiasi insiemedi strutture dati e di algoritmi che permettano dimemorizzare ed eseguire programmi scritti in L.

Modulo di Informatica () Architettura A.A. 2012-2013 20 / 36

Page 21: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

L’interprete

È il componente che esegue le istruzioni contenute neiprogrammi. Le operazioni comuni a tutti gli interpreti sono:

I operazione per elaborazione dei dati primitiviI operazioni e strutture dati per il controllo della sequenza di

esecuzioneI operazioni e strutture dati per il controllo del trasferimento

dei datiI operazioni e strutture dati la gestione della memoria

L’interprete esegue un ciclo per poter eseguire le istruzionidi un algoritmo.

Modulo di Informatica () Architettura A.A. 2012-2013 21 / 36

Page 22: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Il ciclo di esecuzione dell’interprete

1 acquisisci la prossima istruzione2 decodifica istruzione3 acquisisci gli operandi4 viene eseguita l’operazione,5 memorizzato il risultato6 torna a 1

Quando si da l’istruzione di STOP il ciclo termina.

Modulo di Informatica () Architettura A.A. 2012-2013 22 / 36

Page 23: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La macchina astratta e l’architettura di VonNeumann

Modulo di Informatica () Architettura A.A. 2012-2013 23 / 36

Page 24: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Un altro esempio di Macchina AstrattaLa Macchina di Turing è un dispositivo che ha associati iseguenti componenti:

Un nastro infinito su cui si possono scrivere e cancellarecaratteri appartenenti a un alfabeto finitoUna testina capace di spostarsi a destra sinistra, leggere escrivere sul nastroUna serie di stati di cui alcuni sono definiti come iniziali ealcuni come terminali (la Macchina termina quando siincontra uno stato finale)La funzione di transizione che dato il carattere letto dallatestina e lo stato in cui si trova la macchina, associa unnuovo stato, un’operazione elementare (scrivi sul nastro e/osposta la testina) e un nuovo carattere da scrivere sullatestina prima di spostarsi

Modulo di Informatica () Architettura A.A. 2012-2013 24 / 36

Page 25: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Definizione Formale MdTLa Macchina di Turing è un dispositivo definito da una quadrupla< Q,Σb,O, δ > dove:

Q = {qs,q1, · · · ,qf} è un insieme finito di stati dove qs è lostato iniziale e Qf = {qf1, · · · ,qfk} è l’insieme degli statifinali tale che Qf ⊂ Q;Σb = Σ ∪ {_}, dove Σ è un alfabeto finito e _ è il simbolobianco;O = {→,←} ∪ Σb è l’insieme delle operazioni possibili;δ : (Σb ×Q \Qf )→ (O ×Q) è la funzione di transizionedefinita come:

δ(a,q) =

(o1,qn) se a = a1,q = q1...

...(o2,qn) se a = a2,q = q2...

...

Modulo di Informatica () Architettura A.A. 2012-2013 25 / 36

Page 26: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

La macchina astratta e la MDT

Modulo di Informatica () Architettura A.A. 2012-2013 26 / 36

Page 27: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Un sistema a livelli

Per capire questo meccanismo useremo:il concetto di Macchina Astratta che come abbiamo visto èin grado di cogliere i concetti fondamentali di tecnologiacapace di eseguire un programmaPerchè si crea una pila di macchine astratteCome sia possibile costruire una pila di macchine astratte?

Modulo di Informatica () Architettura A.A. 2012-2013 27 / 36

Page 28: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Un sistema a livelliCerchiamo di capire il meccanismo dei livelli

Modulo di Informatica () Architettura A.A. 2012-2013 28 / 36

Page 29: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Perchè abbiamo n Macchine Astratte?

Gli utenti che scrivono un programma devono utilizzare leistruzioni di un Linguaggio che sarà poi eseguito dalla relativaMacchina Astratta ML Se avessimo solo la Macchina Astrattadel livello Hardware (ML0), i programmi dovrebbero essere scritticome una sequenza di (0,1), dove una parte di questasequenza sarebbe l’istruzione, un’altra i dati La strutturagerarchica delle Macchine Astratte permette di avere istruzionipiù vicini al linguaggio naturale (quello che utilizziamo). Questomeccanismo è reso possibile dalle successive traduzioni da unlinguaggio ad un altro fino alla traduzione del linguaggio L0 dellaMacchina Astratta Hardware ML0 che esegue il programma.

Modulo di Informatica () Architettura A.A. 2012-2013 29 / 36

Page 30: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Come funziona la gerarchia di MacchineAstratte?Abbiamo a disposizione una Macchina Astratta di un genericolivello n ( MLn ) il cui linguaggio associato è Ln ed inoltreabbiamo definito un nuovo linguaggio che chiamiamo Ln+1. Perdefinire un linguaggio abbiamo bisogno della sua sintassi edella sua semantica. Dobbiamo pensare a come costituire unanuova macchina astratta MLn+1 che esegua il linguaggio Ln+1.Avendo a disposizione MLn con le relative istruzioni che puòeseguire tale macchina astratta abbiamo due possibilità:

interpretare il linguaggio Ln+1 in Ln

compilare il linguaggio Ln+1 in Ln

In entrambi i casi avrò implementato una nuova macchinaastratta per Ln+1

Modulo di Informatica () Architettura A.A. 2012-2013 30 / 36

Page 31: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Gerarchia Macchine Astratte

Modulo di Informatica () Architettura A.A. 2012-2013 31 / 36

Page 32: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

L’interpretare del linguaggio Ln+1

In questo caso viene scritto un programma con le istruzioni dellinguaggio Ln tale che per ogni istruzione del linguaggio Ln+1 siabbia una sequenza di istruzioni del linguaggio Ln.In questo modo quando si esegue un programma scritto con illinguaggio Ln+1 si interpreta (run time/ a tempo di esecuzione)ogni singola istruzione come una o più istruzioni del linguaggioLn sull’input di Ln+1.Quindi ogni volta che si eseguono istruzioni nel linguaggio Ln+1

queste sono re-interpretate.

Modulo di Informatica () Architettura A.A. 2012-2013 32 / 36

Page 33: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Il compilatore del linguaggio Ln+1

In questo caso viene riscritto un programma con le istruzioni dellinguaggio Ln partendo dalle istruzioni scritte nel linguaggio Ln+1.L’output del compilatore è un programma scritto in Ln. Questaoperazione viene effettuata una volta sola.In questo modo quando si esegue un programma scritto con illinguaggio Ln+1 si interpreta ogni singola istruzione come una opiù istruzioni del linguaggio Ln.In questo modo l’input del nostro programma interprete è ilprogramma scritto in Ln+1.In questo caso la compilazione è separata dall’esecuzione delprogramma.

Modulo di Informatica () Architettura A.A. 2012-2013 33 / 36

Page 34: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Compilare o Interpretare?

InterpretareFlessibilità nella modifica del linguaggio scritto in Ln+1

È facile il debuggingMinor memoria usata

CompilareMaggiore efficienza (il numero di operazioni a tempo diesecuzioni è minore)

Modulo di Informatica () Architettura A.A. 2012-2013 34 / 36

Page 35: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Nella realtà

Solitamente si ha un linguaggio che è prima compilato in unlinguaggio intermedio Li e poi interpretato dal linguaggio Li in unlinguaggio più a basso livello.È il caso di Java, che viene prima compilato e poi interpretato.Perchè?Per rendere più ’portabile’ il codice.

Modulo di Informatica () Architettura A.A. 2012-2013 35 / 36

Page 36: A.A. 2012-2013 Dott.sa Sara Zuppiroli Modulo di Informaticazuppirol/Architettura.pdf · Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente Bus

Conclusione

Come è strutturato un elaboratore?Cosa è una macchina astratta?La struttura a livelli perchè e come?

Modulo di Informatica () Architettura A.A. 2012-2013 36 / 36