6 lucidi per pagina - Dipartimento di Informatica

Corso di Architettura (Prof. Scarano)
07/03/2002
Un ripasso…
• Un quadro della situazione:
Lezione 3
Codifica della informazione (2)
Architettura. Vi.ttorio Scarano
– dove siamo, dove stiamo andando e perché
Vittorio Scarano
Architettura
• Una rivisitazione:
– la notazione posizionale
– rappresentazione in base 2 degli interi
– conversione binario-decimale degli interi
– rappresentazione in base 16
Corso di Laurea in Informatica
Università degli Studi di Salerno
2
Un quadro della situazione
Notazione posizionale
• Dove siamo…
Memoria
Principale
Sistema di
Interconnessione
Architettura. Vi.ttorio Scarano
• Se scriviamo il numero in base b
– Codifica della informazione
– Rappresentazione degli interi
Central
Processing
Unit
Architettura. Vi.ttorio Scarano
Input/Output
• Dove stiamo andando..
– aritmetica binaria
Registri
Unità
Aritmetico
Logica
• Perché:
– per poter progettare la Unità
Aritmetico-Logica
Interconnessione
interna alla CPU
• Una cifra in posizione i di un numero in base b
– ha peso xi ·bi
• Quindi, il valore del numero è la somma dei pesi di
ogni cifra:
∑ (x ⋅ b )
n −1
i
i
i=0
Unità di
Controllo
3
Il sistema binario
4
Conversione decimale-binario
• Procedimento che a partire da un intero decimale N
• Si consideri un numero espresso in base 2
– ottiene la rappresentazione di N in binario
x(n-1) x(n-2) .. x2 x1 x0
• Sequenza ripetuta di divisioni:
• Una cifra in posizione i di un numero in base b
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
x(n-1) x(n-2) .. x2 x1 x0
– dove ogni cifra in posizione i viene indicata con xi
– ha peso xi ·2i
• Quindi, il valore del numero è la somma dei pesi di
n −1
ogni cifra:
i
∑ (x ⋅ 2 )
i=0
i
• Il bit di posizione 0 viene detto meno significativo (peso minore)
• Il bit a 1 di posizione maggiore viene detto più significativo (ha peso
maggiore)
5
– Dividiamo N per 2 (divisione tra interi)
• Si ottiene un quoziente N1 (intero) ed un resto R1 (intero) che può
essere 0 oppure 1
• Il resto R1 rappresenta il bit meno significativo mentre il quoziente
N1 viene diviso per 2 (divisione tra interi)
• Si ottiene un quoziente N2 (intero) ed un resto R2 (intero) che può
essere 0 oppure 1
• Il resto R2 rappresenta il secondo bit meno significativo mentre il
quoziente N2 viene diviso per 2 (divisione tra interi)
• … fino a quando Ni vale 0
6
1
Corso di Architettura (Prof. Scarano)
07/03/2002
Esempio: conversione in binario di 11
Resto
11/2
5/2
2/2
1/2
=
=
=
=
5
2
1
0
• Rappresentazione in base 16
con resto 1
con resto 1
con resto 0
con resto 1
– Usa 16 ‘cifre’: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
Quoziente
•
•
•
•
Il sistema esadecimale (1)
1 0 1 1
• Verifichiamo:
• 10112 è uguale in base 10 a:
• 1·23 + 0·22 + 1·21 + 1·20 = 8 + 0 + 2 + 1 = 1110
• Il valore delle cifre:
– 0,1,2,3,4,5,6,7,8,9 hanno il consueto valore decimale
– A vale 10, B vale 11, … , F vale 15
• Stesso meccanismo della notazione posizionale pesata:
∑ (x ⋅ (16) )
n −1
i
i
i =0
7
La base 16 e la base 2 (2)
• La conversione tra base 16 e base 2 (e viceversa) è
molto semplice
• Infatti, per convertire da base 16 a base 2 basta:
• Per convertire da base 2 a base 16 basta:
– Convertire a gruppi di 4 bit per volta (con la corrispondente
cifra esadecimale) partendo dai quattro bit meno significativi
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
La base 16 e la base 2 (1)
8
– Convertire una cifra esadecimale alla volta nella
corrispondente rappresentazione in base 2
• Esempio:
– Per convertire 1AC516 in base 2:
• Esempio:
– Per convertire 10010100100111016 in base 16:
100101001001110
1AC5
4
A
4
E
000110101100 0101
9
Notazione posizionale per i frazionari (1)
• Rappresentazione in base 2 dei numeri frazionari
• Conversione binario decimale dei numeri frazionari
• Rappresentazione degli interi con segno
• Per i numeri con la frazione il meccanismo è lo stesso
– vengono usate posizioni e potenze negative della base
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
Organizzazione della lezione
10
– rappresentazione a modulo e segno
– rappresentazione in complemento a due
• Se scriviamo un numero frazionario in base b
x(n-1) x(n-2) .. x2 x1 x0 . x-1 x-2 x-3 …x-m
– dove ogni cifra in posizione i viene indicata con xi
• Una cifra in posizione i di un numero in base b
– ha peso xi ·bi
• Quindi, il valore del numero è la somma dei pesi di
n −1
−m
ogni cifra:
i
i
11
∑ (x ⋅ b )+ ∑ (x ⋅ b )
i=0
i
i = −1
i
12
2
Corso di Architettura (Prof. Scarano)
07/03/2002
Conversione decimale-binario per i
numeri con parte frazionaria
Notazione posizionale per i frazionari (2)
• Procedimento che a partire da una frazione F < 1
• ottiene la rappresentazione di F in binario (o una approssimazione)
– x2 =8, x1 =5 , x0 =3
– x-1 =4, x-2 =3
• Sequenza ripetuta di moltiplicazioni:
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
• Quindi per la rappresentazione di 853.43 si ha che:
• Essendo composta da n=3 cifre intere e da m=2 cifre
decimali il suo valore è:
∑ (x ⋅ b ) + ∑ (x ⋅ b ) =
n −1
i
−m
i
i
i
i=0
i = −1
= x2 ⋅10 2 + x1 ⋅101 + x0 ⋅100 + x−1 ⋅10−1 + x− 2 ⋅10− 2 =
= 8 ⋅10 2 + 5 ⋅101 + 3 ⋅100 + 4 ⋅10 −1 + 3 ⋅10 − 2
– Moltiplichiamo F per 2
• Si ottiene una parte intera (che può essere 0 oppure 1) ed una parte
decimale F1
• La parte intera rappresenta il bit più significativo mentre F1 viene
moltiplicato per 2
• Si ottiene una parte intera (che può essere 0 oppure 1) ed una parte
decimale F2
• La parte intera rappresenta il secondo bit più significativo mentre
F2 viene moltiplicato per 2
• … fino a quando Fi vale 0 oppure decidiamo di fermarci…
13
Esempio: conversione in binario di 0.81
•
•
•
•
•
•
0.81 · 2
0.62 · 2
0.24 · 2
0.48 · 2
0.96 · 2
0.92 · 2
=
=
=
=
=
=
1.62
1.24
0.48
0.96
1.92
1.84
Alcuni commenti
0. 1 1 0 0 1 1
1
1
0
0
1
1
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
Parte intera
14
• Il processo di conversione di una frazione non
necessariamente termina
• Una frazione decimale con un numero finito di cifre
può essere rappresentata con un numero infinito di cifre
binarie
– possiamo terminare il procedimento quando riteniamo di
aver raggiunto una precisione desiderata
15
Rappresentazione con modulo e segno
• Finora abbiamo solamente considerato la
rappresentazione di interi positivi
• Due rappresentazioni:
• Per rappresentare un numero con segno:
– si usa il bit più significativo per indicare il + (=0) e - (=1)
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
Interi con segno
16
– rappresentazione con modulo e segno
– rappresentazione in complemento a due
17
• Si consideri un numero espresso in base 2
x(n-1) x(n-2) .. x2 x1 x0
• Quindi, il valore del numero è la somma dei pesi delle
n-1 bit meno significativi con il bit più significativo
che indica il segno:
 n−2
∑(
∑(
x ⋅ 2i

 i =0 i
A =  n− 2
−
x ⋅ 2i
 i =0 i

)
se xn−1 = 0
)
se xn−1 = 1
18
3
Corso di Architettura (Prof. Scarano)
07/03/2002
Modulo e segno: esempi (1)
Modulo e segno: esempi (2)
x3 x2 x1 x0
1 1 0 1
• Essendo composta da n=4 cifre ed essendo il suo bit
più significativo a 0 (segno più) il suo valore è:
∑ (x ⋅ 2 ) = x ⋅ 2 + x ⋅ 2 + x ⋅ 2
n−2
i=0
i
2
i
1
2
1
0
0
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
x3 x2 x1 x0
0 1 0 1
=
• Essendo composta da n=4 cifre ed essendo il suo bit
più significativo a 1 (segno meno) il suo valore è:
−
∑ (x ⋅ 2 ) = −(x ⋅ 2 + x ⋅ 2 + x ⋅ 2 ) =
n−2
i=0
i
i
= 1 ⋅ 4 + 0 ⋅ 2 + 1 ⋅1 = 5
2
2
1
1
0
0
= −(1 ⋅ 4 + 0 ⋅ 2 + 1⋅1) = −5
19
Modulo e segno: esempi (3)
20
Modulo e segno: esempi (4)
x7 x6 x5 x4 x3 x2 x1 x0
1 1 0 1 0 1 0 1
• Essendo composta da n=8 cifre ed essendo il suo bit
più significativo a 0 (segno più) il suo valore è:
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
x7 x6 x5 x4 x3 x2 x1 x0
0 1 1 0 0 1 0 1
∑ (x ⋅ 2 ) =
n−2
i
i
i=0
= x6 ⋅ 26 + x5 ⋅ 2 5 + x4 ⋅ 24 + x3 ⋅ 2 3 + x2 ⋅ 2 2 + x1 ⋅ 21 + x0 ⋅ 2 0 =
5
4
3
2
1
−
∑ (x ⋅ 2 ) =
n−2
i
i
i=0
(
0
= 64 + 32 + 0 + 0 + 4 + 0 + 1 = 10110
21
Alcuni problemi del “modulo e segno”
22
Esercizi
• Addizione e sottrazione complicata da
• Convertire in base 2 (e verificare il risultato):
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
– segni dei numeri
– modulo dei numeri
• Doppia rappresentazione dello zero:
– infatti lo zero può essere rappresentato (con n=8 bit)
• sia da 00000000
• che da 10000000
• Non va bene! Vorremmo…
– una rappresentazione che faciliti la progettazione della ALU
• che non deve essere complicata da problemi nati dalla
rappresentazione
)
= − x6 ⋅ 2 6 + x5 ⋅ 25 + x4 ⋅ 2 4 + x3 ⋅ 23 + x2 ⋅ 2 2 + x1 ⋅ 21 + x0 ⋅ 2 0 =
= −(1 ⋅ 2 6 + 0 ⋅ 2 5 + 1 ⋅ 2 4 + 0 ⋅ 2 3 + 1⋅ 2 2 + 0 ⋅ 21 + 1 ⋅ 2 0 ) =
= −(64 + 0 + 16 + 0 + 4 + 0 + 1) = 8510
= 1 ⋅ 2 + 1⋅ 2 + 0 ⋅ 2 + 0 ⋅ 2 + 1 ⋅ 2 + 0 ⋅ 2 + 1 ⋅ 2 =
6
• Essendo composta da n=8 cifre ed essendo il suo bit
più significativo a 1 (segno meno) il suo valore è:
23
– 0,16510
– 0,9310
• Convertire in base 10:
– 0,1010111012
– 0,0000000012
• Convertire in base 10 i seguenti numeri in base 2
espressi secondo “modulo e segno”
– 110111012
– 010010012
24
4
Corso di Architettura (Prof. Scarano)
07/03/2002
Problemi (2)
• Sappiamo come convertire un intero da base 10 a base
2 e sappiamo come convertire una frazione F < 1 da
base 10 a base 2. Come si può convertire un numero
intero con parte frazionaria > 1?
• Supponiamo di non usare la rappresentazione “modulo
e segno”. Quanto vale MAXINTn (il massimo intero
positivo che si può rappresentare con n bit)?
Architettura. Vi.ttorio Scarano
Architettura. Vi.ttorio Scarano
Problemi (1)
– Ad esempio, come si può convertire in binario 125,476?
– Un suggerimento: vedete la definizione di notazione
posizionale per i numeri frazionari
– Un altro suggerimento:
– Suggerimento:
•
•
•
•
MAXINT2=3
MAXINT3=7
MAXINT4=15
quindi…..
quando 22= 4
quando 23= 8
quando 24=16
– Cercate di “intuire” la formula e poi cercatene la
dimostrazione formale
• vedere sullo Stallings a pag. 350
25
26
5