Anteprima
Vedrai una selezione di 1 pagina su 5
Architettura di Von Neumann Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

F O N D A M E N T I D I I N F O R M A T I C A 1

Architettura della macchina di Von Neumann

La macchina di Von Neumann si basa su cinque componenti fondamentali:

CPU (Central Processing Unit): il suo compito è quello di eseguire le istruzioni di un

• programma presente in memoria centrale o primaria (RAM) dopo averlo prelevato dalla

memoria secondaria o di massa, dalla ROM, o da altri dispositivi. Durante l'esecuzione del

programma la CPU legge o scrive dati in memoria centrale. Il risultato dell'esecuzione

dipende dal dato su cui si opera e dallo stato interno in cui la CPU stessa si trova, e può

mantenere la traccia delle operazioni passate.

RAM (Random Access Memory): detta anche memoria centrale, è una tipologia di

• memoria informatica caratterizzata dal permettere l'accesso diretto a qualunque indirizzo

di memoria con lo stesso tempo di accesso.

ROM (Read Only Memory): tipologia di memoria informatica non volatile.

• Unità di input: tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati.

• Unità di output: necessaria affinché i dati elaborati possano essere restituiti all'operatore

• Bus: canale di comunicazione che permette ai componenti di un sistema di dialogare tra

• loro scambiandosi informazioni o dati di sistema attraverso la trasmissione di segnali. Si

External Data Bus, External Address Bus, External Control Bus.

suddivide in

Struttura della CPU

Una generica CPU (Central Processing Unit) contiene:

Unità di controllo (CU): legge dalla memoria centrale (RAM) le istruzioni, se occorre legge

• anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è,

scrivendolo in memoria o in un registro della CPU. La frequenza con cui vengono eseguiti i

clock:

cicli di esecuzione è scandita da una componente detta ad ogni impulso di clock la

CU esegue un ciclo di esecuzione di istruzioni macchina. La velocità di elaborazione di un

processore dipende quindi dalla frequenza del suo clock (espressa in Hz).

Unità aritmetica e logica (ALU): si occupa di eseguire le operazioni logiche e aritmetiche.

• Stack: area di memoria dove la CPU può salvare momentaneamente e poi recuperare dati

• LIFO

di varia natura (generalmente risiede nella RAM collegata alla CPU). Segue la logica

(Last In First Out), ossia l'ultimo valore introdotto è il primo ad uscire.

Bus dati interno (Internal Data Bus): usato per il trasferimento dei dati fra i componenti

• Data Bus,

interni della CPU (non deve essere confuso con il che invece collegano la CPU

con le altre parti della macchina).

Bus indirizzi interno (Internal Address Bus): usato per il trasferimento dei dati fra i

• Bus,

registri interni della CPU (non deve essere confuso con l'Address che invece collega la

CPU con le altre parti della macchina).

Registri: speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile

• accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri

della CPU costituisce lo stato in cui essa si trova. I registri più importanti sono:

Program Counter (PC): contiene l'indirizzo in memoria della prossima istruzione

• da eseguire.

Instruction Register (IR): contiene il codice operativo dell'istruzione che deve

• fetch,

essere eseguita. Caricato durante la fase di tale registro mantiene il codice

decode,

dell'istruzione durante le fasi successive di esecuzione, ovvero la fase di in

execute,

cui l'istruzione viene decodificata, e di durante la quale vengono eseguite le

operazioni specificate dall'istruzione.

Memory Address Register (MAR): registro della CPU in grado di contenere

• l'indirizzo della locazione della cella di memoria RAM la quale contiene il dato o

l'informazione da leggere o da scrivere. È connesso al bus degli indirizzi.

Memory Buffer Register (MBR): contiene il dato da scrivere o letto durante

• un'operazione di accesso alla memoria. In altri termini contiene il dato puntato

dall'indirizzo contenuto nel MAR. È connesso al bus dati.

Accumulatore (Accumulator): un registro il cui funzionamento è strettamente

• legato a quello della ALU. Quasi tutte le operazioni logico-aritmetiche svolte dalla

ALU coinvolgono l'utilizzo dell'accumulatore.

Stack Pointer (SP): contiene l'indirizzo della locazione di memoria occupata dalla

• push,

cima (top) dello stack per permetterne le operazioni di che lo incrementerà, e

pop,

di che farà l'inverso, e più in generale per permettere le operazioni che

LIFO (Last In First Out)

implicano l'uso dello stack che seguono la logica ovvero che

l'ultimo elemento entrante sarà il primo ad uscire.

Registro dei flag (F): questo registro non contiene valori numerici convenzionali,

• ma è piuttosto un insieme di bit, detti appunto flag, che segnalano stati particolari

della CPU e alcune informazioni sul risultato dell'ultima operazione eseguita. I flag

più importanti sono:

Flag di stato:

• Overflow (W): indica se il risultato dell'operazione precedente era

• troppo grande per il campo: 0 assenza di overflow, 1 overflow

Zero (Z): vale 1 se l'ultima operazione ha avuto risultato zero,

• altrimenti vale 0.

Carry (C): vale 1 se l'ultima operazione ha ecceduto la capacità del

• registro che contiene il risultato, altrimenti vale 0 (esempio: in un

registro a 8 bit, che può rappresentare solo numeri da 0 a 255, la

somma 178+250 darebbe come risultato 172, cioè 428 - 256, e il

carry verrebbe posto a 1 insieme al flag di overflow).

Segno (N): indica il segno del risultato dell'operazione precedente: 0

• risultato positivo, 1 risultato negativo

Flag di controllo:

• Interrupt: se a questo flag viene assegnato valore 1, la CPU smette di

• rispondere alle richieste di servizio esterne delle periferiche (i segnali

delle linee IRQ) finché non viene ripristinato al valore 0, o finché non

arriva dall'esterno un segnale di RESET.

Ciclo di esecuzione di un'istruzione

Tipicamente la CPU è l'interprete del linguaggio macchina, e si basa sul seguente ciclo:

Acquisizione dell'istruzione (Instruction Fetch): il processore preleva l'istruzione

• dalla memoria centrale (RAM), presente nell'indirizzo (tipicamente logico) specificato da

un registro speciale, il Program Counter (PC).

Decodifica (Operand Assembly): word

una volta che la è stata prelevata, viene

• determinata quale operazione debba essere eseguita e come ottenere gli operandi, in

base ad una funzione il cui dominio è costituito dai codici operativi (tipicamente i bit alti

delle word) ed il codominio consiste nei brani di microprogramma da eseguire.

Esecuzione (Execute): viene eseguita la computazione desiderata. Nell'ultimo passo

• dell'esecuzione viene incrementato il PC: tipicamente di uno se l'istruzione non era un

salto condizionale, altrimenti l'incremento dipende dall'istruzione e dall'esito di questa.

Più dettagliatamente il ciclo di esecuzione di un'istruzione può essere così descritto:

1. La CPU invia sul bus indirizzi l'indirizzo della successiva istruzione da eseguire.

2. La CPU invia alla memoria un comando di richiesta di accesso in memoria.

3. La CPU attende l'arrivo sul bus dati del codice operativo dell'istruzione prelevata dalla

memoria.

4. La CPU decodifica l'istruzione.

5. La CPU esegue l'istruzione.

6. L'esecuzione continua al punto 1. prelievo

Le operazioni 1, 2 e 3 costituiscono la cosiddetta fase di (fetch) dell'istruzione, la fase 4 è

decodifica esecuzione

detta di e la fase 5 è detta di (execute). La fase di fetch viene ripetuta allo

stesso modo per tutte le istruzioni del programma, mentre ovviamentele fasi di esecuzione e di

decodifica variano da un'istruzione all'altra. Esaminiamo ora nel dettaglio.

Fase di fetch

• La fase di fetch (o di prelievo) è la prima parte di un ciclo di istruzione e, come suggerisce il

nome, effettua il prelievo di un'istruzione dalla memoria.

L'indirizzo dell'istruzione contenuto nel Program Counter (PC) viene copiato nel MAR e poi

inviato attraverso l'External Address Bus alla memoria. Contemporaneamente la CPU invia

READ

alla memoria un segnale di sull'External Control Bus, per indicare l'intenzione di

leggere il contenuto di una parola di memoria.

Dopo un tempo di ritardo (variabile da pochi ns a 1 µs), la memoria decodifica l'indirizzo

ricevuto e deposita sull'External Data Bus il contenuto della locazione di memoria

richiesta dalla CPU. A questo punto la CPU può leggere il contenuto del bus dati e copiarlo

Dettagli
Publisher
A.A. 2016-2017
5 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher UNSIGNED di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Danese Giovanni.