Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
MEMORIA PRINCIPALE
È una composizione di elementi, ciascuno capace di memorizzare un singolo bit, raggruppati in
word di dimensione fissata, la memoria è RAM(Random Access Memory), cioè è possibile accedere
ad ogni indirizzo in tempo costante. La memoria contiene sia i dati che le istruzioni che
compongono i programmi; il significato di una data sequenza di bit dipende da come viene
interpretato dalla CPU.
Il trasferimento di dati tra CPU e memoria avviene tramite un apposito bus, spesso diviso in: bus
dati e bus di indirizzi.
CPU
è il cervello dell’architettura di Von NEUMANN, si occupa di decodificare ed eseguire le istruzioni e
di coordinare tutte le componenti. La CPU interagisce con la memoria e con i dispositivi input/
output
ALU
Fa da calcolatrice. Ha 2 set di ingressi che rappresentano 2 operandi in codifica binaria, e un set di
uscita. Sa fare tutte le operazioni, i confronti fra numeri e sa utilizzare i postulati logici
UNITÀ DI CONTROLLO
La CU decodifica le istruzioni e coordina le componenti per determinarne l’esecuzione. In ingresso
riceve i bit dell’istruzione da eseguire, codifica in linguaggio macchina. Invia in uscita un insieme di
segnali di controllo verso le altre componenti e anche dati estratti dall’istruzione
REGISTRI
Memorizzano temporaneamente dati e istruzioni, agevolandone il passaggio da un componente
all’altro. Un bit di controllo determina la modalità di:
• lettura, in cui l’output è il dato memorizzato
• Scrittura, in cui il dato memorizzato viene sostituto dai dati in ingresso
Instruction Register (IR): memorizza i bit che codificano l’istruzione in corso di esecuzione
Program Counter (PC): contiene l’indirizzo in memoria della prossima istruzione da eseguire
Memory Buffer Register (MBR): mantiene temporaneamente i dati scambiati con la memoria
Memory Address Register (MAR): memorizza l’indirizzo in memoria cui fare accesso per leggere e
scrivere i dati
INPUT/OUTPUT
interfacciano il sistema al mondo esterno condendo il caricamento di dati e programmi e il controllo
di dispositivi di output. La comunicazione tra CPU e I/O avviene in modo analogo all’accesso in
memoria; la CPU legge e scrive dati tramite apposite porte; in alcuni sistemi alle porte viene
assegnato un indirizzo
ISTRUZIONI
L’instruction set è l’insieme delle istruzioni eseguibili da parte di un determinato processore,
comprende: spostamento dati; trasformazione dati; controllo di programma.
Il codice di ciascuna istruzione deve specificare: l’operazione da eseguire; gli operandi; la
destinazione; come determinare l’indirizzo dell’istruzione successiva
INDIRIZZAMENTO
Per specificare gli operandi e destinazione, le istruzioni possono fare uso di indirizzamento:
implicito; immediato; diretto; indiretto; indicizzato.
La codifica del contenuto delle locazioni di memoria non dipende dagli indirizzi e neppure dalla
specifica sequenza di bit memorizzata.
ESECUZIONE DELLE ISTRUZIONI
L’esecuzione di un’istruzione richiede due passi principali:
FETCH:
• il contenuto dell’indirizzo memorizzato nel registro PC viene copiato nel registro IR
EXECUTE:
• l’istruzione memorizzata nel registro IR viene decodificata dalla CU che coordina tutte
le unità per ottenere il risultato desiderato.
IL CLOCK
Il ritmo con cui si susseguono le micro operazioni è determinato da un segnale periodico
chiamato clock di sistema. Per migliorare l’efficienza alcuni processori fanno uso della tecnica del
PIPELINING: istruzioni multiple sono eseguite in parallelo; in casi ideali consente di eseguire
un’istruzione per ciascun ciclo di clock
LATENZA E BANDA
Le prestazioni dei dispositivi di memorizzazione si misurano in termini di:
• latenza: il tempo che passa tra la richiesta da parte della CPU e l’arrivo dei dati
• Larghezza di banda: la quantità di dati trasferibili per unità di tempo
PRINCIPI DI LOCALITÀ
L’efficienza di un sistema di memoria gerarchico dipende dalla prevedibilità con cui si accede ai dati:
• località temporale: quando si accede ad un dato è probabile che in breve vi si acceda
nuovamente
• località spaziale: quando si accede ad un dato è probabile si debba accedere anche ai dati che
sono memorizzati nelle vicinanze
MEMORIA CACHE
Memorizza una parte della memoria centrale, la dimensione della cache è limitata; le operazioni di
scrittura sono più complicate:
write-through:
• strategia si scrivono sempre i dati sia nella memoria che nella cache
write-back:
• Strategia le linee sono effettivamente scritte in memoria principale solo quando
vengono rimpiazzate nella cache
LA SHELL
I sistemi Unix moderni consentono modalità di interazioni eterogenee: interfacce grafiche, shell
testuale. La SHELL è un programma che riceve, interpreta ed esegue i comandi impartiti dall’utente
sotto forma di istruzioni testuali. La maggior parte dei comandi consiste nella manipolazione delle
informazioni memorizzate nel calcolatore ed organizzate in file.
COMANDI PRINCIPALI DELLA SHELL
cd
• comando consente di modificare la directory corrente
pwd
• Comando mostra il percorso assoluto della directory corrente
touch prova.txt
• Comando crea un nuovo file vuoto dal nome ‘prova.txt’
cp sorgente destinazione
• Comando crea una copia del file ‘sorgente’ dandogli il nome
‘destinazione’
mv vecchionome nuovonome
• Comando modifica il nome del file ‘vecchionome’ e lo cambia in
‘nuovonome’
mkdir nomedir
• Comando crea una nuova directory dal nome ‘nomedir’
rm nomefile
• Comando elimina il file ‘nomefile’
rmdir nomedir
• Comando elimina la directory vuota ‘nomedir’
cat nomefile
• Comando stampa a video il contenuto di ‘nomefile’
less nomefile
• Comando consente di esaminare il contenuto di ‘nomefile’ in modo interattivo
LINGUAGGIO
Un programma è una sequenza di istruzioni che effettuano un calcolo. I linguaggi formali sono
definiti in termini di regole sintattiche:
• simboli
• Struttura
Il processo di analisi della struttura sintattica di un’espressione in un linguaggio formale si chiama
parsing, il mancato rispetto delle regole determina errori di sintassi.
LINGUAGGI DI PROGRAMMAZIONE
Sono linguaggi formali progettati per esprimere dei calcoli. Tutti i linguaggi di programmazione
consentono di implementare gli stessi algoritmi
LINGUAGGI MACCHINA
Le istruzioni sono codificate in un linguaggio macchina che dipende dall’architettura del processore.
Processori di architetture diverse non possono eseguire gli stessi programmi
LINGUAGGIO ASSSEMBLY
Per risolvere le difficoltà nella programmazione in linguaggio macchina. Le istruzioni in binario
vengono sostituite da istruzioni mnemoniche. Ad ogni istruzione in linguaggio macchina, corrisponde
una specifica istruzione assembly.
LINGUAGGI DI ALTO LIVELLO
I linguaggi assembly mantengono molti dei limiti del linguaggio macchina:
• dipendenza dalla specifica architettura della CPU
• Programmi composti da lunghe sequenze di istruzioni elementari
per superare i tali limiti si usano i linguaggi di alto livello, i quali fanno uso di astrazioni che
nascondono i dettagli relativi al funzionamento della CPU. I linguaggi di alto livello includono
istruzioni:
• complesse
• Indipendenti dall’architettura della CPU
L’uso dei linguaggi di alto livello aumenta: produttività; complessità; portabilità
COMPILATORI
È un programma che traduce il codice sorgente scritto in un linguaggio di programmazione in un
linguaggio differente
INTERPRETE
È un programma che consente di eseguirne un altro. Gli interpreti traducono ed eseguono
un’istruzione alla volta
• l’uso di un interprete è più semplice per il programmatore in quanto elimina il passaggio
intermedio della compilazione
• La compilazione può richiedere molto tempo
• I programmi compilati tendono ad essere più efficienti di quelli interpretati
BIT
I computer elaborano l’informazione sotto forma di bit. Essi sono una cifra binaria che può assumere
solo 2 valori (0/1; vero/falso; ecc). Si preferisce un sistema digitale, cioè basato su valori, perché
quelli analogici sono soggetti ad errori.
ALGEBRA BOOLEANA
AND e-Not-a-Xor
-or Er
XY XX
Y XY
XY
X
Y +
X Y X . &
Ol i
&
i
&
&
&
& & &
P I
I 1 &
&
O
10 1 &
i 1
1
Il &
(y (x
& y)(x
z) z)
+
X x
1 y
0 +
=
xx yx
X e x +
+
+ + +
= = =
. =
= .
xx
1 1x
+
x 0
1 k
= =
. = XTY XY7x 5 T
+
x y
xx X
x x +
X
= = =
. = .
.
X X
0 y X
X X + xy X
= =
=
. X(x y)
XA) = 7 x
= +
+ =
= 0
XX =
* 1
X =
A 11
B F
12 15
D
10 11
E
13
= =
= =
= = =
PORTE LOGICHE
In un computer la CPU memorizza ed elabora bit di informazione tramite un elaborato complesso di
porte logiche.
• i bit sono rappresentati dallo stato di un circuito
• Ciascuna porta logica è un dispositivo che realizza un operatore booleano
• Realizzate tramite interruttori attivabili elettronicamente
• Le tecnologie usate per costruire le porte logiche hanno scandito l’evoluzione dei computer
LEGGE DI MOORE
È una legge empirica secondo cui il numero di transistor raddoppia ogni anno
RETI LOGICHE
Sono composizioni di porte logiche che rappresentano in astratto i circuiti digitali; possono
elaborare informazioni di vario genere, purché codificata in binario
CODIFICHE BINARIE
Una codifica è una funzione che assegna sequenze di bit ad un insieme di alternative;
l’assegnamento deve essere univoco.
Possiamo distinguere 2 tipi di codifica:
• quelle che usano sequenze di lunghezza uniforme sono dette codifiche a lunghezza fissa
• Le altre sono codifiche a lunghezza variabile
LO STANDARD IEEE 754
Lo standard definisce:
• codifiche dei numeri in virgola mobile
• le regole per l’arrotondamento
• Le operazioni aritmetiche e le funzioni matematiche
• La gestione delle eccezioni
CODIFICA DI IMMAGINI
Le immagini possono essere codific