Informatica
Lezione 4
Psicologia dello sviluppo e dell'educazione (laurea
magistrale)
Anno accademico: 2007-2008
Rappresentazione dei numeri
• In realtà, una semplice codifica binaria come quella discussa
fino ad ora non è sufficiente, per due motivi:
– Numeri negativi
– Numeri frazionari
• Per questi numeri vengono utilizzate delle rappresentazioni
differenti
– Per esempio la notazione scientifica M x BE per i numeri frazionari
• M è la mantissa, B è la base dell’esponente, ed E è l’esponente
• Esempio in base 10: 5,75 = 0,575 x 102
• Stessa idea per la codifica binaria: rappresentare la mantissa e
l’esponente nella rappresentazione binaria, B=2
– Per esempio “complemento a due” per rappresentare i numeri
negativi
Rappresentazione dei numeri
negativi
• Un approccio con dei problemi: si può pensare di usare un bit
per il segno
– “0” identifica “+”
– “1” identifica “-”
• Gli altri bit vengono usati per codificare il valore assoluto
(modulo) del numero
• Esempio con 3 bit:
Numeri positivi e negativi
[-22+1, 22-1]
Solo numeri positivi
[0, 23-1]
-3
-2
-1
0
1
2
3
4
5
6
7
Rappresentazione dei numeri
negativi
• Con 3 bit avremo:
000
+0
001
+1
010
+2
011
+3
100
-0
101
-1
110
-2
111
-3
• Problemi:
– Il numero 0 ha due
rappresentazioni
– Per l’operazione di
somma si deve tener
conto dei segni degli
addendi
0010+
1011=
1101
(+2)
(-3)
(-5 ERRATO)
Rappresentazione dei numeri
negativi
• Complemento a due:
– Il bit più significativo rappresenta il segno del numero: 0 per i
numeri positivi e 1 per i numeri negativi
– La rappresentazione di un numero positivo si ottiene
codificando il valore assoluto del numero con i bit restanti
– La rappresentazione di un numero negativo si ottiene in tre
passi:
• Si rappresenta in complemento a due il numeri positivo con lo
stesso valore assoluto del numero negativo da codificare
• Si invertono tutti i bit in tale rappresentazione (01,10)
• Si somma uno al risultato ottenuto al passo precedente
Complemento a due
• Esempio (con 4 bit a disposizione):
– La codifica di +5 è 0101
– La codifica del numero –5 avviene in tre passi:
• La rappresentazione in complemento a due di +5 è 0101
• Invertendo tutti i bit si ottiene 1010
• Sommando 1 si ottiene 1011, la rappresentazione in
complemento a due di -5
Complemento a due
• Vice versa - per ottenere un numero con
segno data la sua rappresentazione in
complemento a due:
– Se il primo bit è 0 il numero è positivo: per
calcolarne il valore assoluto si esegue la
conversione da binario a decimale
– Se il primo bit è 1 il numero è negativo:
•
•
•
•
Si ignora il primo bit
Si invertono i restanti bit
Si converte il numero da binario a decimale
Si somma uno al numero ottenuto per ottenere il valore
assoluto del numero negativo
Complemento a due
• Esempio: 1011
–
–
–
–
Si esclude il primo bit
Invertendo 011 si ottiene 100 che è codifica di 4
Va aggiunto 1 per ottenere il valore assoluto 5
Il risultato è quindi -5
Complemento a due
3 bit:
4 bit:
0000
+0
0001
+1
0010
+2
0011
+3
0100
+4
0101
+5
0110
+6
000
+0
001
+1
010
+2
011
+3
0111
+7
100
-4
1000
-8
1001
-7
101
-3
1010
-6
110
-2
1011
-5
1100
-4
111
-1
1101
-3
1110
-2
1111
-1
•
Esempi di addizione:
0010+
1011=
1101
(+2)
(-5)
(-3)
0111+
1011=
0010
(+7)
(-5)
(+2)
Nel secondo
esempio, l’overflow
è ignorato
Complemento a due
• Codificare il numero negativo –1210
nella rappresentazione in complemento
a due
Codifica dell’informazione
bit
1 cifra binaria
memorizza 0 oppure 1
byte
8 bit
memorizza un carattere
parola
da 16 a 64 bit
numeri e indirizzi di memoria
Kilobyte (KB)
1024 byte
circa mezza pagina di testo
Megabyte (MB)
1024 KB
un libro di 200 pagine
Gigabyte (GB)
1024 MB
alcuni volumi
Terabyte (TB)
1024 GB
una biblioteca
Petabyte (PB)
1024 TB
molte biblioteche
Architettura dei computer
Processore
Memoria
principale
Unità centrale
Stampante
Periferiche
del calcolatore
Tastiera e monitor
Memoria secondaria
Periferiche di input/output
Architettura dei computer
• Un computer deve:
– elaborare l’informazione
– memorizzare l’informazione
– fare l’input/output dell’informazione
• Per ogni funzione di base si possono
prendere in considerazione i
componenti in grado di svolgerla
Architettura dei computer
• Un computer deve:
– elaborare l’informazione
• usando il processore (Central Processing Unit CPU)
– memorizzare l’informazione
• usando la memoria principale (RAM)
• usando la memoria secondaria
– fare l’input/output dell’informazione
• usando i dispositivi di input/output
Architettura dei computer
• Un computer deve:
– elaborare l’informazione
• usando il processore (Central Processing Unit CPU)
– memorizzare l’informazione
• usando la memoria principale (RAM)
• usando la memoria secondaria
– fare l’input/output dell’informazione
• usando i dispositivi di input/output
Componenti principali di un
computer
Processore
Memoria
principale
Unità centrale
Stampante
Periferiche
del calcolatore
Tasteria e monitor
Memoria secondaria
Periferiche di input/output
Componenti principali di un
computer
Processore
Insieme al processore
forma l’Unità Centrale
di un elaboratore
0
1
2
3
4
5
Memoria
principale
Unità centrale
Sequenza di celle
– Ad ogni cella è
associato un indirizzo
(un numero progressivo
a partire da 0)
Conserva i
programmi e i dati
usati dal processore
N
Memoria principale (RAM)
• Perché si chiama RAM (Random Access
Memory)?
– Si può accedere direttamente alle varie celle, una
volta noto il loro indirizzo
– Il tempo necessario per accedere ad una cella è lo
stesso, indipendentemente dalla posizione della
cella nella sequenza
– Il termine “random” (casuale) indica proprio il fatto
che non vi sono differenze nell’accesso alle varie
celle della memoria (il computer può accedere in
qualsiasi momento a qualsiasi locazione)
Memoria principale (RAM)
• Alcune proprietà della memoria principale
– Volatile: è fatta di componenti elettronici,
togliendo l’alimentazione si perde tutto
– (Relativamente) costosa (costo per bit)
• Dalla lezione 1: i costi sono in diminuzione
–…
Memoria principale (RAM)
• Alcune proprietà della memoria principale
–…
– Veloce: per leggere/scrivere una cella ci vuole un
tempo di accesso dell’ordine di poche decine di
nanosecondi (millesimi di milionesimi di secondo =
10-9 sec.)
• Tempo di accesso: il tempo tra
– Il momento in cui il processore specifica l’indirizzo della
cella sui cui vuole operare e dà il comando di
lettura/scrittura
– Il momento in cui l’operazione è terminata (il dato letto e
disponibile oppure il dato scritto è in memoria)
Memoria principale (RAM)
• Tutte le celle hanno la
stessa dimensione: 8, 16,
32, o 64 bit
• Le operazioni che si
eseguono sulla memoria
sono operazioni di lettura
e scrittura
• Una cella può contenere
(parte di) un dato o
un’istruzione
Contenuto (in questo
esempio, 8 bit)
Indirizzi
0
1
2
3
4
5
N
Memoria principale (RAM)
• Ogni calcolatore usa un numero di bit
costante per rappresentare gli indirizzi
• Maggiore è il numero di bit usati, maggiore
sarà il numero di celle indirizzabili: spazio di
indirizzamento
– Se si usano 16 bit per codificare gli indirizzi, si
potranno indirizzare fino a 65.536 celle (circa 64
KB di memoria, nell’ipotesi di celle di memoria di 1
byte)
– Con 32 bit si potranno indirizzare fino a
4.294.967.296 celle (circa 4 GB di memoria)
Memoria principale (RAM)
• Le unità di misura della memoria RAM
variano a seconda del tipo di calcolatore
e vengono espresse in MB o GB
• Nei PC generalmente si va dai 128MB
ai 4 GB
• La RAM, fino ad un certo limite, è
espandibile (slot di espansione)
L’Unità centrale: altri tipi di
memoria
• Memoria di sola lettura (ROM)
–
–
–
–
Non può essere modificata
A differenza della RAM non è volatile
Veloce quasi come la RAM
Contiene le informazioni di inizializzazione usate
ogni volta che si accende l’elaboratore (bootstrap)
L’Unità centrale: altri tipi di
memoria
• Memoria cache
– Livello di memoria intermedio tra i registri e la RAM
• Memorizza i dati usati più spesso senza doverli recuperare
tutte le volte dalla RAM (che è più lenta)
• Influisce moltissimo sulle prestazioni e sul costo della CPU (e
quindi del computer)
– È molto più costosa della RAM
– In genere è interna al processore (cache L1), ma esiste
anche una cache secondaria (L2) esterna al processore
– Le sue dimensione tipiche vanno dai 256KB a 1MB
L’Unità centrale: altri tipi di
memoria
• Buffer
– Piccole parti di RAM con funzioni di memoria temporanea
– Usati per il passaggio delle informazioni da un programma o
dispositivo ad un altro
– In Windows si parla di Clipboard, memoria temporanea usata per
esempio per le operazioni di Copia e Incolla
1
2
3
4
5
Foglio elettronico
Clipboard
(buffer)
Programma di videoscrittura
Famiglie di memoria
• SRAM (RAM statiche):
– Costi elevati
– Tempi di accesso ridotti
– Normalmente usate per la memoria cache
• DRAM (RAM dinamiche):
– Tempi di accesso più della SRAM (40-60 nanosecondi)
– Normalmente usate per la memoria principale
– SDRAM: DRAM sincrono, un clock (che ha una frequenza
misurata in MHz) sincronizza l’accesso alla memoria
– DDR: Double Data Rate, raddoppia la velocità di
trasferimento di dati tra la memoria e il processore
• VRAM (RAM video): usate per la gestione delle
immagini
Scarica

mag_lez4 - Dipartimento di Informatica