EVOLUZIONE DEL MODELLO DI VON NEUMANN
Col tempo e con l'avanzare delle tecnologie il modelo di Von Neumann è evoluto.
Sono state intraprese modifiche sui dispositivi I/O, che ora vengono gestiti da sistemi dedicati.
Ogni periferica ha il suo processore dedicato che richiama l'attenzione della CPU con un segnale sul
control bus chiamato SEGNALE D'INTERRUZIONE.
Questo segnale va ad agire su uno dei bit del Condition Code dedicato proprio a carpire la presenza o
meno del suddetto segnale. ( il bit assume 1 quando è presente l'interruzione 0 se viceversa).
Il Condition Code viene controllato al termine di ogni istruzione.
Se si presenta il bit=0 allora la cpu continua con le prossime istruzioni, altrimenti esegue un programma
del OP dedicato a comprendere il motivo dell'interruzione chiamato ISP!!
I processori periferici con la loro LENTEZZA permettono alla CPU di svolgere diverse attività in
contemporanea. Anche la memoria centrale ha subito cambiamenti nel modello:
Data l'altissima velocità della CPU, per evitare che essa si adegui a ritmi più bassi di quelli che può
sostenere è stata ritagliata una piccola porzione di memoria e messa tra CPU e memoria centrale.
Questa memoria è chiamata CACHE. Funziona da Buffer dati tra la memoria centrale e la cpu.
E' una memoria velocissima ma di piccole dimensioni ( si parla di 256k 512 k) a causa dell'elevato costo.
Esistono 2 tipologie di CACHE;
L1 > posta internamente alla CPU;
L2 > sono esterne alla CPU e solitamente un pò più lente.
Le Memorie infatti in base alla loro velocità vengono classificate secondo il principio della GERARCHIA.
Più prossimi alla CPU e quindi PIU' VELOCI ma con MINOR CAPACITA'.
Più "lontani" dalla CPU, più lenti ma con MAGGIOR CAPACITA' DI ARCHIVIAZIONE.
Partendo dalla Cpu, ogni livello fa da BUFFER PER QUELLO SUCCESSIVO.
MODELLO ASTRATTO DI ESECUTORE
La cpu è un automa in grado di eseguire programmi prelevati dalla memoria centrale.
Essi "parla" un linguaggio chiamato "linguaggio macchina".
Il suddetto linguaggio è anche detto di basso livello data la sua bassa espressività.
Le operazioni eseguite dalla cpu sono di tipo elementare e sono di queste tipologie:
spostamento di stringhe di bit da registro a registro
attivano l'ALU
scorrimento o rotazione a destra o a sinistra dei bit dell'accumulatore;
interroga i bit del Condition Code;
Consente il salto in un punto qualsiasi del programma
Le istruzioni del programma vengono allocate nei registri di memoria.
L'ALLOCAZIONE nei registri è opera del PROGRAMMATORE.
L'importante è che egli rispetti un principio fondamentale:
DATI E ISTRUZIONI NON DOVRANNO MAI SOVRAPPORSI!!!
L'allocazione può essere:
STATICA;
DINAMICA;
Nel primo caso l'allocazione avviene prima dell'esecuzione del programma.
Nel secondo caso avviene durante l'esecuzione del programma ( durante l'esecuzione se ci sono errori di
programmazione, dati e istruzioni potrebbero sovrapporsi ALTERANDO LA STRUTTURA DEL
PROGRAMMA STESSO).
Proseguiamo definendo i PUNTATORI:
I puntatori non sono altro che INDIRIZZI relativi a dati o istruzioni.
si definiscono cosi 2 tipi di puntatori:
puntatore a dato
puntatore a istruzione
Un istruzione in linguaggio macchina è costituita da;
i= ( Codop, Pdi, Pdo, Pis,)
Codop: indica alla CPU cosa fare;
Pdi, Pdo: puntatori dati, servono ad eseguire l'operazione relativa al Codop, (detti di I e O)
Pis: puntatore d'istruzione che deve svolgere la Cpu, dopo quella corrente. ( lega tra loro i registri
contenenti istruzioni in modo che sia chiara l'esecuzione del programma).
In questo modo si posso dettagliare le fasi del ciclo della CPU:
Fetch;
Inizia con il prelievo dell'istruzione dalla memoria.
Per fare ciò la cpu comunica alla memoria l'indirizzo dell'istruzione presente nel registro PI. La risposta
della memoria viene depositata nell' IR.
In questo modo la CU può:
Interpretare il Codop;
ricevere i puntatori I/O;
Ricevere il puntatore Pi;
Questa fase si dice conclusa quando risulta aggiornato il contenuto del registro PI.
Operand Assembly;
Serve a predisporre gli operandi che servono al Codop.
Execute;
esegue le operazioni richieste dal CodOp presente in IR;
La Cpu riparte partendo dall'indirizzo in PI.
Purchè il ciclo della Cpu abbia inizio deve essergli somministrato l'indirizzo della prima istruzione da
eseguire,( contenuto in PI) e questa fase è detta fase di BOOT,
che serve sono da "spunto" all'avvio.
Una volta avviato, il ciclo non termina MAI!
La memoria dei calcolatori moderni può essere divisa in diverse parti:
Programmi e dati OS;
Programmi e dati UTENTE;
BUFFER;
I MICROPROCESSORI
Una Cpu, come gia detto, si compone di CU, ALU, Registri interni( che consentono velocità di scambio
all'interno della cpu).
Il modello di Von Neumann è detto SISD( single istruction, single data stream) dato che le istruzioni
vengono eseguite in modo seriale una dietro l'altra, con una Cpu che interpreta le istruzioni e genera
comando verso i dispositivi e l'Alu che svolge le operazioni logico-aritmetiche.
Le singole istruzioni vengono eseguite in questo modo:
1. Lettura dalla memoria
2. determinazione della successiva;
3. Determinazione del CodOp per conoscere l'azione da eseguire;
4. Eventuale det. indirizzo Operandi;
5. Esecuzione delle sequenze di operazioni elementari.
E' una MACCHINA SEQUENZIALE capace di fare un operazione alla volta, con la temporizzazione di un
CLOCK.
Microprocessori; Disposivito elettronico capace di contenere in un unico pezzo tutti i componenti facenti
parte della CPU.
I Microprocessori comunicano con gli altri dispositivi attraverso i bus (data, control, address).
In base a ciò si possono elencare alcune caratteristiche;
1. Parallelismo esterno; Numero bit trasferiti o prelevati in un solo accesso di memoria;
2. Capacità di indirizzamento; A quanti indirizzi si può accedere in modo parallelo;
3. numero, tipo, e parallelismo registri interni;
4. Tecniche di indirizzamento: modalità di costruzione dell'indirizzo logico con il quale prelevare o
salvare il valore dell' operando di una istruzione;
5. Repertorio istruzioni;
6. tempi necessari ad eseguire istruzioni fondamentali tipo l'addizione che serve per la valutazione
delle prestazioni in MIPS;
Per velocizzare le Cpu col tempo si è aumentato il numero di registri interni della Cpu. I classici registri
interni che si trovano all'interno di ogni Cpu sono;
PROSSIMA ISTRUZIONE;
ACCUMULATORE;
CONDITION CODE: Riporta lo stato dell' elaborazione attraverso bit dedicati;
1. Bit Segno (S) : con S=1 in ACC valore negativo, con S=0 valore valore positivo
2. Bit Zero (Z): con Z=1,in ACC valore = a zero, con Z0=0, il caso opposto;
3. Bit Overflow(O): con O=1 in ACC valore non corretto, Con O=0 , caso opposto;
4. Bit Carry(riporto): Con C=1, Si segnala un bit in più nella somma, Con C=0 il caso opposto;
5. Bit Interruzione; indica con I=1, Che il sistema d'interruzione ha chiesto l'attenzione della Cpu,
Con I=0 il caso opposto.
REGISTRO INDICE(X): Con il quale si calcolerà l'indirizzo di un operando con la tecnica
d'indirizzamento Relativa;
STACK POINTER (SP): Utile a gestire salti a sottoprogrammi, per il suo modo di gestire gli
indirizzi di memoria. Contiene un puntatore alla memoria ad un area che viene chiamata stack;
attraverso SP si accede a tale area con operazioni di inserzione(PUSH) o di estrazione(POP) con la
tecnica LIFO ( last-in, first-out) che comporta che l'ultimo elemento sia il primo ad essere estratto
"PILA DI PIATTI".
ISTRUCTION REGISTER (IR): Finita la Fase Fetch contiene l'istruzione prelevata dalla
memoria centrale completa di tutte le sue parti.
DATA BUFFER;
ADDRESS BUFFER;
I collegamenti tra registri interni e bus sono del seguente tipo:
ACC > DATA BUS;
PI, SP, X > ADDRESS BUS;
Esistono varie tecniche di indirizzamento per la costruzione dell'indirizzo di un operando;
IMMEDIATO; Valore contenuto gia nell'istruzione. ( 0 accessi in memoria)
DIRETTO;Nell'istruzione viene riportato l'indirizzo del valore;(1 accesso in memoria)
INDIRETTO;Nell' istruzione viene riportato l'indirizzo del registro contenente l'indirizzo del
valore da prelevare o depositare.( 2 accessi in memoria)
RELATIVO; Nell' istruzione viene riportato l'indirizzo del registro interno indice (X),da dove
prelevare o depositare.
Le sovrascritte tecniche vengono indicate in un istruzione o con la modifica del CodOp oppure con
l'aggiunta di bit appositi.
Nella gestione delle periferiche i Microprocessori si dividono in 2 categorie;
MEMORY-MAPPED > In cui i dispositivi I/O controllano l' AD, e rispondono solo quando
riconoscono un indirizzo a loro assegnato. ( Usa le stesse istruzioni utilizzate per leggere o
scrivere in memoria, con indirizzi dedicati all' I/O)
I/O MAPPED > Funziona con istruzioni specifiche per l'esecuzione dell'I/O e , dato che, lo
spazio indirizzi memoria e I/O sono diversi, sarà il control bus a comunicare alla UC se è un
accesso in memoria o una periferica.
I vantaggi dell I/O Mapped , oltre a non richiedere l'ausilio del Control bus e che non necessita di
istruzioni specifiche, permette di realizzare Cpu meno complesse, più economiche e veloci.
I Microprocessori in base al loro Repertorio di istruzioni si dividono in:
CISC > dotati di un ampio repertorio di istruzioni e perciò più complesse;
RISC > Dotati di un repertorio di istruzioni essenziale perciò ,meno complesse.
Il vantaggio RISC stà proprio nella sua semplicità, dato che i microprocessori RISC sono meno complessi
dei CISC e quindi più economici e veloci.
Il repertorio RISC, di istruzioni essenziali, riduce al minimo il numero di CLOCK nesessari alla loro
esecuzione.
Ottimizzazione notevole sia nel campo HardWare, data la sua semplicità e efficienza, sia nel campo
software, che compensa la rigidità dell'hardware.
In base al numero di operandi gestibile dal linguaggio macchina dei microprocessori:
1 operando;
2 operandi;
3 operandi;
UN MODELLO DI PROCESSORE
Per imparare il funzionamento di un processore, e le modalità con cui programmarli in linguaggio
macchina si introduce il linguaggio Assemblativo.
Questo linguaggio mantiene la corrispondenza 1 ad 1 con il linguaggio macchina, e al Codop si associano
codici mnemonici facili da
-
Riassunto esame fondamenti di informatica, prof. Scaringella
-
Riassunto esame Fondamenti di Informatica: Manuale di C/C++, prof. Dragoni
-
Riassunto esame Basi di dati, Prof. Persia, libro consigliato Sistemi di basi di dati e applicazioni, Angelo Chiane…
-
Riassunto Informatica