Calcolatori Elettronici e Sistemi Operativi
modulo Calcolatori Elettronici
Prof. Laura Tarantino
Dipartimento di Ingegneria Elettrica e dell’Informazione
Lezione 1 – Argomento 3
Conservazione dell’informazione: concetti di base
Informatica
informazione
automatica
Trattamento automatico dell’informazione
rappresentazione
conservazione deleghiamo uno strumento
relazione
tra dati
elaborazione
deve esistere un linguaggio comune tra delegante e delegato
2
1
Flusso tradizionale dell’informazione
ambiente
Trasferimento
Elaborazione
Memorizzazione
Controllo
3
La macchina di Von Neumann (1)
Sistema di calcolo
Dispositivi
Memoria
(passiva)
Input
Output
Processore
(attivo)
Central Processing Unit (CPU)
4
2
La macchina di Von Neumann (2)
Sistema di calcolo
Dispositivi
Memoria
Input
Processore
Output
Unità di
calcolo
Unità di
controllo
5
La memoria - generalità
Funzioni:
— Supporto alla CPU: deve fornire dati ed istruzioni il più
rapidamente possibile
— Archiviazione: deve consentire di archiviare dati e
programmi, garantendone la conservazione e la
reperibilità anche dopo elevati periodi di tempo
Esigenze diverse:
— velocità per il supporto alla CPU
— non volatilità e capacità per l’archiviazione
Tecnologie diverse:
— elettronica: veloce, ma costosa e volatile
— magnetica e ottica: non volatile ed economica, ma
molto lenta
6
3
La macchina di Von Neumann (3)
Sistema di calcolo
Dispositivi
Memoria
principale
Input
Memoria
secondaria
Processore
Output
Unità di
calcolo
Unità di
controllo
7
Conservare in memoria - i componenti
la memoria principale è una successione ordinata di
componenti digitali che possono assumere uno tra due
valori e conservarlo stabile nel tempo finché c’è
alimentazione
ogni componente elementare della memoria può
rappresentare e conservare un bit
8
4
Conservare in memoria - le celle
i bit nella memoria sono raggruppati in celle
— tutte le celle della memoria sono composte dallo
stesso numero di bit
— se una cella è composta da k bit può assumere 2k
configurazioni distinte
8 bit
Esempio
se una cella è composta da 8 bit (che
costituiscono un byte) può assumere
28 = 256 configurazioni distinte
possiamo ad esempio rappresentare i
numeri assoluti nell’intervallo [0, 255]
9
Conservare in memoria - gli indirizzi (1)
bisogna poter accedere a celle selezionate, e non
casualmente
— ogni cella della memoria viene associata ad un
identificatore univoco detto indirizzo della cella
— se la memoria contiene N celle gli indirizzi vanno da
0 a N-1
8 bit
Esempio
se abbiamo una memoria con 8
parole gli indirizzi vanno da 0 a 7
0
1
2
3
4
5
6
7
10
5
Conservare in memoria - gli indirizzi (2)
la cella è la più piccola unità di memoria indirizzabile
nella maggior parte dei calcolatori una cella è composta
da un byte (8 bit)
si parla quindi di memoria indirizzabile al byte
11
Conservare in memoria - le parole
per la maggior parte delle elaborazioni reali il potere
rappresentazionale del byte (255 configurazioni) è
insufficiente
i byte vengono quindi raggruppati per formare stringhe di
bit più lunghe, dette parole
— tutte
le parole della memoria sono composte dallo
stesso numero di byte
32 bit
— nei
calcolatori attuali le parole
sono composte da 32 bit (4 byte)
12
6
Terminologia - unità di misura (1)
bit (quantità minima di informazione)
8 bit = 1 byte
16 bit = 2 byte = mezza parola
32 bit = 4 byte = 1 parola
64 bit = 8 byte = parola doppia
13
Terminologia - unità di misura (2)
= 210 byte = 1024 byte
1 kilobyte
1 megabyte = 220 byte = circa un milione di byte
1 gigabyte
= 230 byte = circa un miliardo di byte
1 terabyte
= 240 byte = circa mille miliardi di byte
14
7
Conservare in memoria - indirizzi (3)
l’indirizzo della parola è l’indirizzo di uno dei suoi byte
32 bit
0
4
8
12
...
15
Conservare in memoria - indirizzi (4)
Come vengono numerati i byte di una parola?
little endian
3
2
1
0
MSB
(most significant byte)
LSB
(least significant byte)
0
1
2
3
big endian
Little Endian:
la parola ha l’indirizzo del byte meno significativo
(Intel 80x86)
Big Endian :
la parola ha l’indirizzo del byte più significativo
(IBM/Motorola PowerPC, Sparc)
16
8
Conservare in memoria - indirizzi (5)
Gli indirizzi in memoria sono codificati in binario
Con k bit si possono costruire 2k configurazioni diverse,
quindi con un indirizzo da k bit si possono indirizzare:
— 2k byte, ossia
— 2k/4 = 2k-2 parole
(ricorda: 1 parola = 4 byte)
Esempio
con 8 bit si possono indirizzare
— 28 = 256 byte, ossia
— 28/4 = 26 = 64 parole
17
Organizzazione della memoria
Allineata se tutte le parole iniziano ad indirizzi che sono
multipli di 4
0
1
2
3
Allineata
Non
Allineata
18
9
Conservazione nelle parole di memoria (1)
tutte le stringhe sono da 32 bit
si ottengono 232 configurazioni diverse che possono
contenere interi, relativi, reali, caratteri (e istruzioni)
Nel caso degli interi assoluti si possono rappresentare
i numeri da 0 a 232 - 1 = 4 292 967 295dieci
Estensione (solo stringhe a 32 bit):
1101 → 0000 0000 0000 0000 0000 0000 0000 1101
aggiungere zeri “in testa” non cambia il valore del polinomio
19
Conservazione nelle parole di memoria (2)
Nel caso dei relativi
0000 ... 0000 0000
0000 ... 0000 0000
0000 ... 0000 0000
...
0111 ... 1111 1111
0111 ... 1111 1111
0111 ... 1111 1111
1000 ... 0000 0000
1000 ... 0000 0000
1000 ... 0000 0000
...
1111 ... 1111 1111
1111 ... 1111 1111
1111 ... 1111 1111
0000 0000 =
0000 0001 =
0000 0010 =
1111
1111
1111
0000
0000
0000
1111
1111
1111
0000
0000
0000
0
1
2
= 2 147 483 645
= 2 147 483 646
= 2 147 483 647
= –2 147 483 648
= –2 147 483 647
= –2 147 483 646
1111 1101 =
1111 1110 =
1111 1111 =
-3
-2
-1
20
10
Nel caso dei reali: Standard IEEE 754 (1)
Precisione singola (una parola)
23
8
segno
mantissa
1
esponente
polarizzato
bisogna sottrargli 127
per ottenere l’esponente reale
significante della mantissa
l’1 della parte intera è sottinteso
visto che è sempre presente
polarizzazione
numdieci = (-1)segno x (1 + significante) x 2 (esp_pol - 127)
(-1) 0 = 1
(-1) 1 = -1
21
Nel caso dei reali: Standard IEEE 754 (2)
Precisione doppia (due parole)
segno
mantissa
1
20
11
esponente
polarizzato
significante della mantissa (prima parte)
significante della mantissa (seconda parte)
32
polarizzazione = 1023
in totale 52 bit per il significante
22
11
Nel caso dei reali: Casi speciali
non viene aggiunto l’1 della
parte intera della mantissa
Esponente Significante
polarizzato
tutti 0
tutti 0
tutti 0
≠0
tutti 1
tutti 0
tutti 1
altro
≠0
qualsiasi
tra 0 e il più piccolo numero
normalizzato
Oggetto rappresentato
0
numero denormalizzato
+/- infinito
ad es., dopo
divisione per zero
Not a Number (NaN)
numero in virgola mobile
dopo operazione non consentita
ad es., 0/0 oppure ∞ - ∞
23
12