Modello di Von Neumann ARCHITETTURA DEL CALCOLATORE.

Post on 01-May-2015

233 views 3 download

Transcript of Modello di Von Neumann ARCHITETTURA DEL CALCOLATORE.

Modello di Von Neumann

ARCHITETTURA DEL

CALCOLATORE

Sommario– Cenni di algebra di Boole

– Struttura• CPU

• MEMORIA CENTRALE

• INTERFACCIA DI I/O

• BUS

–Hardware e software

Cenni di algebra di Boole Il bit

Premettiamo che per bit si intende un simbolo che può assumere solo due valori, spesso indicati sulla carta :

• con 0/1, • vero/falso, • on/off,mentre a livello circuitale dal livello • di tensione 0V oppure 5V, • corrente 0 mA oppure 20 mA

Cenni di algebra di Boole Oggetti rappresentabili

• Con 1 bit si possono individuare due oggetti (0, 1),

• con 2 bit 4 oggetti (00, 01, 10, 11)

• con n bit 2n oggetti.

Cenni di algebra di Boole registro

Dal punto di vista realizzativo, un dispositivo elettronico in grado di memorizzare n bit si dice registro a n bit.

Es. registro ad 8 bit:

0 1 0 0 1 0 1 0

Cenni di algebra di BooleGruppi di bit e multipli

• 8 bit = 1 Byte• Il bit è abbreviato con la b il Byte con la B• 1 KB = 1 KByte = 210 Byte = 1024 Byte• 1 MB = 220 Byte = circa 1000 000 Byte• 1 GB = 230 Byte = circa 1000 000 000 Byte• 1 TB = 240 Byte = circa 1000 000 000 000 B• 1 Kb = 1 Kbit = 210 bit = 1024 bit • ….

Struttura John Von Neumann

Negli anni Cinquanta John Von Neumann ideò un computer:

• molto semplice se paragonato a quelli attuali

• decisamente innovativo all'epoca,

• chiamato Macchina di Von Neumann

StrutturaDescrizione

Componenti

1. Esecutore (CPU)

2. Memoria

3. Interfacce di I/O

4. BUS

StrutturaDescrizione

EsecutoreMemoria

Si tratta di una macchina dotata di un esecutore (la CPU Central Processing Unit) in grado di:

• scandire (leggere, capire ed eseguire) un elenco di istruzioni (programmi) e

• accedere a dati

memorizzati in un organo di memoria: • MC memoria centrale;

StrutturaDescrizione

EsecutoreI/O

• l'esecutore è in grado anche di scambiare dati con delle locazioni di memoria presenti su particolari dispositivi, dette interfacce di I/O (Input/Output), che provvedono ai trasferimenti con i dispositivi periferici che consentono lo scambio di informazioni con l'esterno, quali tastiera, monitor e stampanti.

StrutturaDescrizione istruzioni macchina

• In relazione alla specifica realizzazione della CPU, è definito un insieme di sequenze binarie (set istruzioni), normalmente di lunghezza multipla di 8 bit, dette istruzioni macchina, che specificano precise azioni da eseguire.

• Esempio set istruzioni – 00000011 IN leggere un valore da tastiera

– 00000010 OUT inviare un valore sul monitor

– 00000100 ADD sommare il contenuto dei registri A e B

– 00000101 SET B copiare il valore contenuto in A in B

StrutturaDescrizione

bus

• CPU, MC, interfacce di I/O sono collegate attraverso un sistema strutturato di conduttori detto bus

Struttura Schema

StrutturaEvoluzione

• L'evoluzione tecnologica e quella delle architetture non hanno mantenuto lo stesso passo.

• Attualmente ci troviamo nella situazione in cui la quasi totalità dei sistemi di elaborazione ha un tipo di architettura che fa riferimento a quella di Von Neumann

StrutturaEsempio

Vediamo ora, con un semplice esempio, di capire come funziona la macchina di Von Neumann.

Ci occuperemo solo della parte di esecuzione

StrutturaEsempio

Voglio che la mia macchina di Von Neumann esegua la somma di due numeri prelevati da tastiera e visualizzi a video risultato

Devo:1. predisporre un algoritmo risolutivo - programmatore2. tradurlo in un linguaggio (sequenza di istruzioni)

comprensibile al mio esecutore (CPU) – programma compilatore

3. caricarlo in memoria centrale (MC) – prg.caricatore4. farlo eseguire all’esecutore - CPU

Struttura Esempio Soluzione p.to 3-4 Uso Simulazione

I punti 3 (caricamento) e 4 (esecuzione) li simuleremo tramite il modello riportato nelle slide che seguono

Struttura EsempioSoluzione p.to 3 Caricamento

Struttura EsempioSoluzione p.to 4 Esecuzione IN

Struttura EsempioSoluzione p.to 4 Esecuzione SET B

Struttura EsempioSoluzione p.to 4 Esecuzione IN

Struttura EsempioSoluzione p.to 4 Esecuzione ADD

Struttura EsempioSoluzione p.to 4 Esecuzione OUT

StrutturaComponenti

• CPU

• MEMORIA CENTRALE

• INTERFACCIA DI I/O

• BUS (Dati, Indirizzi, Controllo)

Esaminiamo nel dettaglio i componenti fondamentali.

CPU

Ha il compito di eseguire il ciclo istruzione; in pratica, intesa come black box, è in grado di• effettuare operazioni di lettura/scrittura

– della memoria centrale o – dei registri di I/O e

• di interpretare i codici delle istruzioni • generando tutti i segnali elettrici necessari a

svolgere l'operazione richiesta. L'attività della CPU è scandita da un segnale

impulsivo periodico detto clock.

CPU sottosistemi

Al suo interno abbiamo diversi sottosistemi.

• UG (UNITA DI GOVERNO).

• ALU (UNITA ARITMETICO LOGICA).

• BUFFER

• REGISTRI

• BUS

CPU sottosistemi

BUFFER

• MDR (BUFFER DATI)

• MAR (BUFFER INDIRIZZI)

REGISTRI

• IR (INSTRUCTION REGISTER).

• PC (PROGRAM COUNTER).

• ACC (REGISTRO ACCUMULATORE).

CPU sottosistemi

• la logica di interruzione

• la logica di controllo del bus

UG (UNITA DI GOVERNO).

• È l'unità di governo dell'intera CPU; riceve in ingresso dal registro IR, che in seguito assumeremo a 8 bit, il codice dell'istruzione macchina; in base a esso vengono generati tutti i segnali di temporizzazione dei dispositivi interni ed esterni.

• Si tratta di un sistema le cui transizioni sono cadenzate dal clock

CLOCK

ALU (UNITA ARITMETICO LOGICA).• All'ALU è demandato il compito di effettuare le

operazioni – logiche e – aritmetiche sulle sequenze binarie lette – dalla memoria centrale o – dai registri di I/O.

• È importante capire che la ALU è un sistema combinatorio ed è caratterizzata da quanti bit può elaborare simultaneamente; si definisce così il grado di parallelismo della CPU.

ACC (REGISTRO ACCUMULATORE).

• Tipico dei primi elaboratori, è il registro sempre coinvolto nelle operazioni di ALU, ovvero che fornisce uno (o l'unico) operando e memorizza il risultato.

B (REGISTRO GENERALI DATI).

• Un secondo registro (ma potrebbe essere anche più di uno) che memorizza temporaneamente i dati nella CPU, eventualmente inviandoli alla ALU come secondo operando.

MEMORIA CENTRALE

• La memoria centrale (MC) è un dispositivo contenente un elevato numero di registri (chiamati locazioni di memoria o celle di memoria) in cui la CPU può leggere o scrivere dei valori.

• La dimensione di ogni cella è normalmente 8 bit = 1 byte

• Ogni locazione è identificata da un indirizzo (un numero binario che identifica univocamente la cella).

MEMORIA CENTRALE

MEMORIA CENTRALEesempio memoria da 8 byte

Indirizzo (3 bit) Contenuto (8 bit)

000 00000000

001 01001000

010 01110111

011 00010000

100 11110011

101 10010000

110 00010011

111 11111100

MEMORIA CENTRALE

• Oggi le MC sono realizzate con dispositivi a semiconduttore.

• Esse possono scambiare con la CPU un byte per volta, in lettura o scrittura;

• la scelta del byte da scambiare è determinata da un secondo tipo di informazione, che deve essere fornita dalla CPU: l'indirizzo trasmesso sul bus, parte indirizzi.

• Ipotizziamo che la nostra CPU emetta indirizzi a 16 bit e pertanto possa indirizzare fino 216 re- gistri di memoria centrale (65536);

• gli indirizzi partono quindi da 0 e arrivano a 65535.

MEMORIA CENTRALE

BUS INDIRIZZI

BUS DATI

BUS CONTROLLO

CPU

Memoria centrale

MEMORIA CENTRALEMEMORIA CENTRALE

BUS INDIRIZZI 3 bit

BUS DATI 8 bit

BUS CONTROLLO

CPU

Ind. Contenuto

000 00000000

001 01001000

010 01110111

011 00010000

100 11110011

101 10010000

110 00010011

111 11111100

Che dimensioni in bit hanno i due bus?

MEMORIA CENTRALE caratteristiche

La memoria centrale ha due caratteristiche fondamentali :

•che il tempo per trasferire un dato è dello stesso ordine di quello tipico di lavoro della CPU;

•che l'accesso è casuale: ciò significa che l'ordine di accesso può essere uno qualunque

MEMORIA CENTRALE tipologie

• RAM la parte di memoria centrale su cui è possibile sia leggere sia scrivere, ma che è volatile, ovvero perde i dati se non alimentata.

• ROM: la parte di MC non volatile ma su cui la CPU può solo leggere si chiama ROM (Read Only Memory).

MEMORIA CENTRALE ROM

• Si tratta di un tipo di memoria fondamentale, in cui i valori dei dati memorizzati sono predisposti in fase di fabbricazione; all'avvio la CPU carica un valore predefinito nel program counter e a quell'indirizzo deve trovare una serie di istruzioni valide: bisogna quindi utilizzare una ROM almeno per il programma di avvio.

INTERFACCIA DI I/OInput/Output

Ogni dispositivo aggiuntivo (unità di ingresso, di uscita, dischi ecc.) interagisce autonomamente con il resto del sistema mediante un'interfaccia (circuito di raccordo) connessa al bus di sistema.

L'aggiunta di una nuova interfaccia connessa al bus permette quindi di aggiungere dispositivi inizialmente non previsti nel sistema, senza modificare quelli esistenti.

Queste interfacce mostrano alla CPU almeno due registri su cui appoggiare i dati in ingresso e in uscita; essi sono accessibili con specifiche istruzioni macchina.

INTERFACCIA DI I/O

• INPUT (UNITA DI INGRESSO). Permette all'utente di interagire con la macchina (per esempio utilizzando una tastiera numerica) per introdurre informazioni codificate con uno o più byte.

 • OUTPUT (UNITA DI USCITA). Permette alla

macchina di trasferire a una periferica uno o più byte che codificano informazioni (es. monitor)

INTERFACCIA DI I/O

BUS

• Il bus è il sistema di interconnessione strutturato che fornisce i percorsi per il trasferimento dei dati, degli indirizzi e dei segnali di controllo necessari allo scambio dei dati tra gli altri moduli.

• Fisicamente consiste in piste tracciate su circuito stampato e alcuni componenti elettronici per mantenere la correttezza delle forme d'onda dei segnali trasmessi.

BUSsuddivisione

Il bus è diviso in almeno quattro sezioni:

• dati,

• indirizzi,

• controlli e

• alimentazioni.

bus dati

• Il bus dati è bidirezionale e condiviso da tutti i moduli, quindi sono previste regole per evitare conflitti. Tramite i segnali di controllo si decide chi debba assumere la gestione del bus (come vedremo in seguito potrebbe non essere solo la CPU a poter pilotare il bus); successivamente viene abilitata solo la memoria o la periferica interessata tramite un segnale specifico chip select derivato dagli indirizzi emessi.

bus indirizzi

• Il bus indirizzi è unidirezionale (da chi pilota, di norma la CPU, alle memorie o le interfacce di I/O). Se il bus indirizzi ha n bit, si possono indirizzare 2n locazioni di memoria centrale.

bus controlli

• Il bus controlli ha diversi segnali, tra cui certamente gli strobe (impulsi) di comando della lettura o della scrittura, i segnali per l'acquisizione del controllo del bus, i segnali di interruzione che consentono a un'interfaccia di I/O di chiedere servizio alla CPU, i chip select, il reset e i clock.

bus alimentazioni

• Il bus alimentazioni distribuisce la massa e le tensioni di alimentazioni positive e negative.

Hardware e software

La Macchina di Von Neumann ci consente di capire bene la differenza tra hardware e software.

HardwareEsiste una componentistica tangibile di tipo

elettronico, elettrico e meccanico: questa è chiamata hardware.

Sono hardware l'unità centrale, il monitor, la tastiera, l'alimentatore, il disco, i microprocessori, i chip di memoria.

Software

Affinchè la Macchina di Von Neumann funzioni, però, è necessario che le celle della memoria centrale riportino sequenze binarie opportune, dette istruzioni macchina codificanti, operazioni significative della CPU tramite le quali realizziamo un programma, ovvero in ultima analisi la codifica di un algoritmo di risoluzione di un problema.