• Non ci sono risultati.

Architettura di un computer

N/A
N/A
Protected

Academic year: 2021

Condividi "Architettura di un computer"

Copied!
36
0
0

Testo completo

(1)

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

(2)

La tecnologia

Cerchiamo di capire alcuni concetti su cui si basa un elaboratore:

l’architettura di Von Neumann come astrazione delle architetture degli elaboratori

il modello teorico della macchina astratta la struttura a livelli

(3)

L’architettura di Von Neumann

Il processore [CPU (Unità centrale di elaborazione)] si divide 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 secondaria che come memoria principale

Unità di input/output, tramite la quale i dati vengono inseriti/restituiti all’utente

Bus che è il canale di comunicazioni tra tutti i componenti

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

(4)

Architettura di Von Neumann

(5)

Processore

La ALU esegue le operazioni aritmetiche e logiche.

L’unità di controllo permette di eseguire il ciclo fetch-decode-execute.

I Il controllo del ciclo di esecuzione è gestito attraverso il registro Program Counter (PC), che contiene l’indirizzo di memoria della prossima istruzione da eseguire. Le relative operazioni di controllo sono quelle che agiscono su tale registro, l’incremento sequenziale, o la modifica del suo valore.

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

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

(6)

Ciclo fetch-decode-execute

Fetch: si recupera dalla memoria la prossima istruzione da eseguire (ossia si recupera l’operazione il cui indirizzo è memorizzato nel PC). L’istruzione viene memorizzata nel registro istruzione.

Decode: L’istruzione presente nel registro istruzione è

decodificata attraverso circuiti logici e vengono recuperati gli operandi dalla memoria

Execute: si esegue l’operazione (primitiva) della macchina.

Se si tratta di un’operazione logico-aritmetica si utilizzerà la ALU e si salverà il risultato in memoria.

Il ciclo continua fino all’istruzione di STOP.

(7)

Il processore

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

(8)

Qualità del processore

Il processore è il componente del calcolatore che esegue tutte le operazioni di calcolo e la sua velocità influisce sulle prestazioni del PC

Per stimare la velocità con cui un processore effettua i calcoli occorre tenere conto di:

I ogni quanti secondi il processore è in grado di produrre un risultato 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)

(9)

Scheda madre

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

(10)

Gerarchia della memoria

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

Memoria principale: contiene dati ed istruzioni in attesa che questi siano prelevati dal microprocessore per essere elaborati, lavorando dunque in maniera strettamente

accoppiata con esso. Fornisce accesso ai dati molto

veloce, il costo è elevato ed è volatile. Una parte di questa è la memoria cache.

Memoria secondaria: include tutti quei dispositivi che

consentono all’utente la memorizzazione in modo definitivo dei dati (sia programmi, che dati). Le caratteristiche sono quindi la permanenza dei dati (non è volatile), un tempo maggiore per accedere ai dati, un costo inferiore.

(11)

Gerarchia della memoria

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

(12)

La memoria principale

È suddivisa in:

RAM ( Random Access Memory) è la memoria in cui sono caricati i dati che devono essere utilizzati dal calcolatore per elaborare. La RAM è volatile, statica. Il processore

identifica le celle della RAM tramite indirizzi assegnati che ne specificano la posizione (la memoria si rappresenta

come una stringa ordinata di elementi detti celle o parole). Il tempo di accesso alle celle della memoria è costante.

Cache RAM, una memoria integrata nel processore, che ha la caratteristica di essere molto veloce, ma ha un costo

elevato, vengono caricati i dati a cui il processore accede più di frequente

ROM, (Read Only Memory) è una memoria permanente presente sulla scheda madre, che contiene il BIOS (Basic I/O System), cioè le istruzioni che la CPU deve caricare per consentire l’avvio del sistema.

(13)

RAM

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

(14)

La memoria secondaria(1/2)

È suddivisa in:

I dischi magnetici, composti da uno o più dischi, sono letti e scritti mediante un braccio mobile dotato della testina di

lettura e scrittura. I dati vengono trasferiti ai dischi

magnetici tramite un buffer nella memoria centrale ed

occupano successive posizioni lungo le tracce. I settori dei dischi vengono letti e scritti interamente utilizzando il

numero della superficie, della traccia e del settore. Il tempo di accesso ai dischi magnetici è superiore rispetto a quello della memoria centrale.

(15)

La memoria secondaria (2/2)

È suddivisa in:

I dischi ottici, l’informazione viene registrata realizzando modificazioni della superficie riflettente e viene letta

mediante un raggio laser che riscontra le irregolarità della superficie 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 sequenziale ai dati e di solito sono usati per operazioni di backup.

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

(16)

HardDisck

(17)

Rappresentazione dei dati in memoria

Cosa sono i dati?

Nel linguaggio digitale, l’unità minima è il bit

Il bit assume solo due stati (spento 0, o acceso 1)

Il byte è costituito da 8 bit e gli stati rappresentabili sono 28 = 256

Ogni cella di memoria è denotata da un indirizzo anch’esso individuato in maniera univoca con una serie di bit (detto indirizzo 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

(18)

Cosa è il Bus

È un canale di comunicazione che permette a periferiche e

componenti di un sistema elettronico di trasmettere informazioni o dati di sistema. È in grado collegare tra loro diversi dispositivi.

(19)

Bus

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

(20)

La macchina astratta

È l’astrazione del concetto di calcolatore fisico quindi:

I È un esecutore di istruzioni che identificano i passi di un algoritmo

I Ha una memoria associata e una sua gestione

I 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 insieme di strutture dati e di algoritmi che permettano di

memorizzare ed eseguire programmi scritti in L.

(21)

L’interprete

È il componente che esegue le istruzioni contenute nei

programmi. Le operazioni comuni a tutti gli interpreti sono:

I operazione per elaborazione dei dati primitivi

I operazioni e strutture dati per il controllo della sequenza di esecuzione

I operazioni e strutture dati per il controllo del trasferimento dei dati

I operazioni e strutture dati la gestione della memoria

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

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

(22)

Il ciclo di esecuzione dell’interprete

1 acquisisci la prossima istruzione

2 decodifica istruzione

3 acquisisci gli operandi

4 viene eseguita l’operazione,

5 memorizzato il risultato

6 torna a 1

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

(23)

La macchina astratta e l’architettura di Von Neumann

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

(24)

Un altro esempio di Macchina Astratta

La Macchina di Turing è un dispositivo che ha associati i seguenti componenti:

Un nastro infinito su cui si possono scrivere e cancellare caratteri appartenenti a un alfabeto finito

Una testina capace di spostarsi a destra sinistra, leggere e scrivere sul nastro

Una serie di stati di cui alcuni sono definiti come iniziali e alcuni come terminali (la Macchina termina quando si

incontra uno stato finale)

La funzione di transizione che dato il carattere letto dalla testina e lo stato in cui si trova la macchina, associa un

nuovo stato, un’operazione elementare (scrivi sul nastro e/o sposta la testina) e un nuovo carattere da scrivere sulla

testina prima di spostarsi

(25)

Definizione Formale MdT

La Macchina di Turing è un dispositivo definito da una quadrupla

< Q, Σb, O, δ > dove:

Q = {qs, q1, · · · , qf} è un insieme finito di stati dove qs è lo stato iniziale e Qf = {qf 1, · · · , qfk} è l’insieme degli stati

finali tale che Qf ⊂ Q;

Σb = Σ ∪ {_}, dove Σ è un alfabeto finito e _ è il simbolo bianco;

O = {→, ←} ∪ Σb è l’insieme delle operazioni possibili;

δ : (Σb × Q \ Qf) → (O × Q) è la funzione di transizione definita 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

(26)

La macchina astratta e la MDT

(27)

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 tecnologia capace di eseguire un programma

Perchè si crea una pila di macchine astratte

Come sia possibile costruire una pila di macchine astratte?

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

(28)

Un sistema a livelli

Cerchiamo di capire il meccanismo dei livelli

(29)

Perchè abbiamo n Macchine Astratte?

Gli utenti che scrivono un programma devono utilizzare le

istruzioni di un Linguaggio che sarà poi eseguito dalla relativa Macchina Astratta ML Se avessimo solo la Macchina Astratta del livello Hardware (ML0), i programmi dovrebbero essere scritti come una sequenza di (0,1), dove una parte di questa

sequenza sarebbe l’istruzione, un’altra i dati La struttura

gerarchica delle Macchine Astratte permette di avere istruzioni più vicini al linguaggio naturale (quello che utilizziamo). Questo meccanismo è reso possibile dalle successive traduzioni da un linguaggio ad un altro fino alla traduzione del linguaggio L0 della Macchina Astratta Hardware ML0 che esegue il programma.

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

(30)

Come funziona la gerarchia di Macchine Astratte?

Abbiamo a disposizione una Macchina Astratta di un generico livello n ( MLn ) il cui linguaggio associato è Ln ed inoltre

abbiamo definito un nuovo linguaggio che chiamiamo Ln+1. Per definire un linguaggio abbiamo bisogno della sua sintassi e

della sua semantica. Dobbiamo pensare a come costituire una nuova 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 macchina astratta per Ln+1

(31)

Gerarchia Macchine Astratte

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

(32)

L’interpretare del linguaggio L

n+1

In questo caso viene scritto un programma con le istruzioni del linguaggio Ln tale che per ogni istruzione del linguaggio Ln+1 si abbia una sequenza di istruzioni del linguaggio Ln.

In questo modo quando si esegue un programma scritto con il linguaggio Ln+1 si interpreta (run time/ a tempo di esecuzione) ogni singola istruzione come una o più istruzioni del linguaggio Ln sull’input di Ln+1.

Quindi ogni volta che si eseguono istruzioni nel linguaggio Ln+1 queste sono re-interpretate.

(33)

Il compilatore del linguaggio L

n+1

In questo caso viene riscritto un programma con le istruzioni del linguaggio Ln partendo dalle istruzioni scritte nel linguaggio Ln+1. L’output del compilatore è un programma scritto in Ln. Questa operazione viene effettuata una volta sola.

In questo modo quando si esegue un programma scritto con il linguaggio Ln+1 si interpreta ogni singola istruzione come una o più istruzioni del linguaggio Ln.

In questo modo l’input del nostro programma interprete è il programma scritto in Ln+1.

In questo caso la compilazione è separata dall’esecuzione del programma.

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

(34)

Compilare o Interpretare?

Interpretare

Flessibilità nella modifica del linguaggio scritto in Ln+1 È facile il debugging

Minor memoria usata Compilare

Maggiore efficienza (il numero di operazioni a tempo di esecuzioni è minore)

(35)

Nella realtà

Solitamente si ha un linguaggio che è prima compilato in un

linguaggio intermedio Li e poi interpretato dal linguaggio Li in un linguaggio 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

(36)

Conclusione

Come è strutturato un elaboratore?

Cosa è una macchina astratta?

La struttura a livelli perchè e come?

Riferimenti

Documenti correlati

[r]

Spesso per risolvere un problema dobbiamo prima “matematizzarlo”, cioè tradurlo in una forma che poi possiamo elaborare con dei calcoli.. Alcuni esempi di traduzione in

Inserisci la parola o l’espressione del linguaggio comune accanto all’espressione corrispondente nel linguaggio burocratico.. linguaggio burocratico

 base (voto in decimi 6): l’alunno/a svolge compiti semplici anche in situazioni nuove, mostrando di possedere conoscenze e abilità fondamentali e di saper

• FileOutputStream implementa questi metodi nel caso parti- colare in cui l’output è un file, il cui nome è passato al costrut- tore di FileOutputStream ; in alternativa si

sarò portato a credere che la psiche non sia così contraria, alla precisione ed alla esattezza. Non cre- do al sorriso imperturbabile e misterioso della psiche, ai suoi

La classe di memoria automatica è relativa a quegli oggetti locali ad un blocco (funzione o programma) che viene liberata non appena si raggiunge la fine di quel blocco. La classe

Associazioni, fondazioni e altre persone giuridiche (senza società di capitali e società cooperative) la cui sede o il cui domicilio fiscale principale in Svizzera (in caso di sede