View
219
Download
0
Embed Size (px)
Citation preview
A.S.E.A.S.E. 7.7.11
ARCHITETTURA DEI SISTEMI ARCHITETTURA DEI SISTEMI ELETTRONICIELETTRONICI
LEZIONE N° 7LEZIONE N° 7• Addizione in C2Addizione in C2• CodiciCodici• RIEPILOGO Aritmetica in Base 2RIEPILOGO Aritmetica in Base 2• Interi assolutiInteri assoluti
• Somma, sottrazione, MoltiplicazioneSomma, sottrazione, Moltiplicazione
• Interi relativi Interi relativi • Somma, sottrazione, MoltiplicazioneSomma, sottrazione, Moltiplicazione
• Fattore di scalaFattore di scala• Rappresentazione normalizzataRappresentazione normalizzata• Operazioni in virgola mobileOperazioni in virgola mobile
– Somma, Sottrazione, MoltiplicazioneSomma, Sottrazione, Moltiplicazione
A.S.E.A.S.E. 7.7.22
RichiamiRichiami
• Sistema numericoSistema numerico• Base 2, 3, 4, 5, 8, Base 2, 3, 4, 5, 8, 1010, 12, 16, 12, 16• ConversioniConversioni• Aritmetica binariaAritmetica binaria• Rappresentazione di numeri con segnoRappresentazione di numeri con segno
A.S.E.A.S.E. 7.7.33
Addizione in Complemento a 2Addizione in Complemento a 2• Somma [-2Somma [-2n-1n-1<(X+Y)<2<(X+Y)<2n-1n-1-1]-1]
• Osservare che K non è possibile rappresentarlo su n bitOsservare che K non è possibile rappresentarlo su n bit• ** Per X < |Y| il risultato è rappresentato in C. 2Per X < |Y| il risultato è rappresentato in C. 2• **** Per Y < |X| il risultato è rappresentato in C. 2Per Y < |X| il risultato è rappresentato in C. 2• ****** Il risultato è rappresentato in C. 2Il risultato è rappresentato in C. 2
***2'0
0
**''
0
0
*''
0
0
''0
0Correzione2 C. SommaSommaAddendi
KYXZYXZY
XXY
ZZKYXZYXZ
Y
XYX
ZZKYXZYXZ
Y
X
ZZYXZYXZY
X
A.S.E.A.S.E. 7.7.44
Esempi Esempi • Parola di 4 bit Parola di 4 bit • 3 + 4 = 73 + 4 = 7 5 + (-3) = 25 + (-3) = 2 (-5) + 3 = (-(-5) + 3 = (-
2)2)
• (- 4) +(-3) = -7 (- 4) +(-3) = -7 6 + 5 =11 6 + 5 =11 (-6) + (-5) (-6) + (-5) =(-11)=(-11)
00 00 11 11
00 11 00 00
00 11 11 11
00 11 00 11
11 11 00 11
11 00 00 11 00
00 11 11 00
00 11 00 11
11 00 11 11
11 00 11 11
00 00 11 11
11 11 11 00
11 11 00 00
11 11 00 11
11 11 00 00 11
11 00 11 00
11 00 11 11
11 00 11 00 11
A.S.E.A.S.E. 7.7.55
OsservazioniOsservazioni
• Se la word si estende “K” bit si haSe la word si estende “K” bit si ha• per numeri positivi si aggiungono in testa K zeriper numeri positivi si aggiungono in testa K zeri• per numeri negativi si aggiungono in testa K unoper numeri negativi si aggiungono in testa K uno
• EsempioEsempioWord Word di 4 bitdi 4 bit
Word Word di 6 bitdi 6 bit
33 0.0110.011 0.00010.000111
44 0.1000.100 0.00100.001000
77 0.1110.111 0.00110.001111
-3-3 1.1011.101 1.11101.111011
-4-4 1.1001.100 1.11101.111000
-7-7 1.0011.001 1.11001.110011
A.S.E.A.S.E. 7.7.66
OverfloWOverfloW• Parola di 4 bit Parola di 4 bit • 3 + 4 = 73 + 4 = 7 5 + (-3) = 25 + (-3) = 2 (-5) + 3 = (-(-5) + 3 = (-
2)2)
• (- 4) +(-3) = -7 (- 4) +(-3) = -7 6 + 5 =11 6 + 5 =11 (-6) + (-5) (-6) + (-5) =(-11)=(-11)
00 00 00 00
00 00 11 11
00 11 00 00
00 11 11 11
11 11 00 11
00 11 00 11
11 11 00 11
11 00 00 11 00
00 11 00 00
00 11 11 00
00 11 00 11
11 00 11 11
00 00 11 11
11 00 11 11
00 00 11 11
11 11 11 00
11 11 00 00
11 11 00 00
11 11 00 11
11 11 00 00 11
11 00 11 00
11 00 11 00
11 00 11 11
11 00 11 00 11
1 nn ccOv
A.S.E.A.S.E. 7.7.77
CODICICODICI
• Numeri binarii OK per sistemi elettronici Numeri binarii OK per sistemi elettronici digitalidigitali
• Numeri decimali OK per sistema “uomo”Numeri decimali OK per sistema “uomo”• Necessità di rappresentare anche non Necessità di rappresentare anche non
numerinumeri• Codifica binaria di informazioni varieCodifica binaria di informazioni varie• EsempioEsempio
– Codifica binaria di numeri decimaliCodifica binaria di numeri decimali
A.S.E.A.S.E. 7.7.88
BCD (BCD (Binary-Coded Decimal Binary-Coded Decimal numbersnumbers))
• Necessità di rappresentare i numeri Necessità di rappresentare i numeri decimali in codice binariodecimali in codice binario
• 8421 BCD8421 BCD• si codifica in binario ciascuna cifra decimale si codifica in binario ciascuna cifra decimale
utilizzando i primi 10 numeri binari su 4 bitutilizzando i primi 10 numeri binari su 4 bit• EsempioEsempio
• 4534531010
• 010001010011010001010011• è possibile eseguire somme e sottrazioni in è possibile eseguire somme e sottrazioni in
BCDBCD
001101010100354
A.S.E.A.S.E. 7.7.99
Altri codici (1)Altri codici (1)
• Codici decimali pesatiCodici decimali pesati
B10B10 C9C9 84218421 24212421 54215421 50432150432100
00 99 00000000 00000000 00000000 01000001000011
11 88 00010001 00010001 00010001 01000101000100
22 77 00100010 00100010 00100010 01001001001000
33 66 00110011 00110011 00110011 01010001010000
44 55 01000100 01000100 01000100 01100001100000
55 44 01010101 10111011 10001000 10000010000011
66 33 01100110 11001100 10011001 10000110000100
77 22 01110111 11011101 10101010 10001010001000
88 11 10001000 11101110 10111011 10010010010000
99 00 10011001 11111111 11001100 10100010100000
A.S.E.A.S.E. 7.7.1010
Altri codici (2)Altri codici (2)
• Codici decimali non pesatiCodici decimali non pesati
B10B10 Eccesso a 3Eccesso a 3 2 su 52 su 5
00 00110011 1100011000
11 01000100 0001100011
22 01010101 0010100101
33 01100110 0011000110
44 01110111 0100101001
55 10001000 0101001010
66 10011001 0110001100
77 10101010 1000110001
88 10111011 1001010010
99 11001100 1010010100
A.S.E.A.S.E. 7.7.1111
BCD – Sette SegmentiBCD – Sette Segmenti
• Per visualizzare le cifre decimali si usa Per visualizzare le cifre decimali si usa frequentemente un Display a sette frequentemente un Display a sette segmentisegmenti
• È possibile realizzare un codificatore È possibile realizzare un codificatore • BCD SETTE SEGMENTIBCD SETTE SEGMENTI
a
b
ce
f
d
g
A.S.E.A.S.E. 7.7.1212
Tabella di “Corrispondenze”Tabella di “Corrispondenze”
• La tabella risultaLa tabella risulta88 44 22 11 aa bb cc dd ee ff gg
00 00 00 00 00 11 11 11 11 11 11 00
11 00 00 00 11 00 11 11 00 00 00 00
22 00 00 11 00 11 11 00 11 11 00 11
33 00 00 11 11 11 11 11 11 00 00 11
44 00 11 00 00 00 11 11 00 00 11 11
55 00 11 00 11 11 00 11 11 00 11 11
66 00 11 11 00 11 00 11 11 11 11 11
77 00 11 11 11 11 11 11 00 00 11 00
88 11 00 00 00 11 11 11 11 11 11 11
99 11 00 00 11 11 11 11 11 00 11 11
A.S.E.A.S.E. 7.7.1313
Interi AssolutiInteri Assoluti
• Base 2Base 2• Dinamica Dinamica • dati “N” bitdati “N” bit
• Esempio N = 8Esempio N = 8012 WN
Base 10Base 10 Base 2Base 2
0 0 0000000000000000
1616 0001000000010000
9595 0101111101011111
255255 1111111111111111
A.S.E.A.S.E. 7.7.1414
Somma di Interi AssolutiSomma di Interi Assoluti• N = 8N = 8
Base 10Base 10 Base 2Base 2
43+43+
25=25=
68 . 68 .
0111011001110110
0010101100101011
0001100100011001
0100010001000100
139+139+
141=141=
280. 280.
110001111000111100
1000101110001011
1000110110001101
110001100000110000
Il carry N+1 indica l’overflow
La somma di due numeri di N bit è rappresentabile sempre su N + 1 bit
24
A.S.E.A.S.E. 7.7.1515
Sottrazione di Interi AssolutiSottrazione di Interi Assoluti• N = 8N = 8
Base 10Base 10 Base 2Base 2
143+143+
86=86=
57 . 57 .
1111000011110000
1000111110001111
0101011001010110
0011100100111001
95+95+
141=141=
-46. -46.
110000000000000000
0101111101011111
1000110110001101
111101001110100100
Il borrow N+1 indica l’errore
210
A.S.E.A.S.E. 7.7.1616
Prodotto di Interi AssolutiProdotto di Interi Assoluti
• N = 5N = 5 Base 10Base 10 Base 2Base 2
19 x19 x23 =23 =57 . 57 . 380 .380 .
437 . 437 .
100111001110111101111001110011
10011010011010011001001100
0000000000000000100110000100110000011011010011011010
11
Il prodotto di due numeri su N bit è rappresentabile su 2N bit
121221212 2)1(2 NNNNN
A.S.E.A.S.E. 7.7.1717
Interi RelativiInteri Relativi
• Complemento a 2Complemento a 2• Dinamica Dinamica • dati “N” bitdati “N” bit
• Esempio N = 8 (+127 > W > -128)Esempio N = 8 (+127 > W > -128)
11 2'12 NN W
NWW N
22'
Base 10Base 10 Base 2 C-Base 2 C-22
87 87 256+87=34256+87=3433
0101011010101111
-123-123 256-256-123=133123=133
1000010100001011
A.S.E.A.S.E. 7.7.1818
Complemento a 2Complemento a 2
• Primo metodoPrimo metodo• Applicare la definizioneApplicare la definizione
• Secondo metodoSecondo metodo• complemento bit a bit più 1complemento bit a bit più 1
NWW N
22'
1010100111010100087
0101011187
A.S.E.A.S.E. 7.7.1919
Somma di Interi Relativi (C-2)Somma di Interi Relativi (C-2)• Se non c’è overflow la somma è sempre Se non c’è overflow la somma è sempre
correttacorretta– W’ rappresentazione di W in C-2W’ rappresentazione di W in C-2– Z’ rappresentazione di Z in C-2Z’ rappresentazione di Z in C-2
NNNNZWZWZW NNN
2222222''
Base 10Base 10 Base 2Base 2
43+43+
25=25=
68 . 68 .
0111011001110110
0010101100101011
0001100100011001
0100010001000100
Base 10Base 10 Base 2Base 2
43+43+
-25=-25=
18 . 18 .
111101111110111100
0010101100101011
1110011111100111
0001001000010010
A.S.E.A.S.E. 7.7.2020
Sottrazione di Interi Relativi (C-Sottrazione di Interi Relativi (C-2)2)
• Coincide con la sommaCoincide con la somma
A.S.E.A.S.E. 7.7.2121
Prodotto di Interi Relativi (C-2)Prodotto di Interi Relativi (C-2)
• N = 5N = 5 Base 10Base 10 Base 2 (C-Base 2 (C-2)2)
14 x14 x-13 =-13 =
42 .42 .14 .14 .
-182 . -182 .
011100111010011100110111001110
01110001110000000000000000
0000000000000000011100000011100000010000101010000101
00
Il prodotto di due numeri in C-2 non torna per i numeri negativi
ZWZWZW NNNN 2222 2
A.S.E.A.S.E. 7.7.2222
Prodotto di Interi Relativi (C-2)Prodotto di Interi Relativi (C-2)
• N=5 Estensione a 10N=5 Estensione a 10 Base 10Base 10 Base 2 (C-Base 2 (C-2)2)
-13 x-13 x14 =14 =42 .42 .
14 .14 .-182 . -182 .
11111100111111100111
00000011100000011100
00000000000000000000
11111001111111001100
11110011011110011000
11100110011100110000
00000000000000000000
11010010111010010100
Il prodotto di due numeri in C-2 torna se si estende larappresentazione a 2N bit
NN
NN
ZWZWZWZW
ZWZWWZW
NNNNN
NNN
22
22
2
2
2
2422
2
2
2
22
22222
222
A.S.E.A.S.E. 7.7.2323
Errori di rappresentazione 1Errori di rappresentazione 1
• In generale, la rappresentazione con un In generale, la rappresentazione con un numero numero finitofinito di cifre di un numero reale di cifre di un numero reale introduce erroreintroduce errore
• Se lavoriamo con interi, possiamo convertire Se lavoriamo con interi, possiamo convertire un numero decimale attraverso un numero decimale attraverso l’arrotondamento o il troncamentol’arrotondamento o il troncamento
• Per numeri frazionari si procede in maniera Per numeri frazionari si procede in maniera analogaanaloga– 11.6531 su 2 cifre decimali 11.6531 su 2 cifre decimali 11.65 (sia arr. che 11.65 (sia arr. che
tronc.) tronc.)
11.611.611 (troncato) 11 (troncato) =>=> 10111011
12 (arrotondato)12 (arrotondato) =>=> 11001100
A.S.E.A.S.E. 7.7.2424
Errori di rappresentazione 2Errori di rappresentazione 2
• Per i numeri negativi si applica la stessa Per i numeri negativi si applica la stessa definizione (si tronca verso -definizione (si tronca verso -))
• Va bene anche in complemento a 2Va bene anche in complemento a 21 2 3 4 5
-1
0Errore di Troncamento
X-5 -4 -3 -2 -1
1 2 3 4 5
-0.5
0.5
Errore di arrotondamento
X
-5 -4 -3 -2 -1
A.S.E.A.S.E. 7.7.2525
Errori di rappresentazione 3Errori di rappresentazione 3• Detta xDetta x** la rappresentazione di x, si definiscono la rappresentazione di x, si definiscono
due errori:due errori:– Errore Errore assolutoassoluto: : AA=|x-x=|x-x**||
– Errore Errore relativorelativo: : RR=|x-x=|x-x**|/|x||/|x|
• Supponiamo di operare con 4 cifre decimaleSupponiamo di operare con 4 cifre decimale (n = (n = – 314.1592 314.1592 AA=0.00265, =0.00265, RR=8.446 10=8.446 10-7-7
(n = (n = – 3.1415 3.1415 AA=9.265 10=9.265 10-5-5, , RR=2.949 10=2.949 10-5-5
• Inoltre, supponiamo di voler rappresentare Inoltre, supponiamo di voler rappresentare distanze per uso scientifico:distanze per uso scientifico:– Atomi: 10Atomi: 10-10-10mm– Galassie: 10Galassie: 102121mm
A.S.E.A.S.E. 7.7.2626
Virgola mobile 1Virgola mobile 1
• Dato un generico numero reale W*Dato un generico numero reale W*
• Si può rappresentare in complemento a Si può rappresentare in complemento a due con N bit utilizzando W tale che:due con N bit utilizzando W tale che:
• Esempio N = 10 (+esponente 6 bit)Esempio N = 10 (+esponente 6 bit)
1*1 222 NExN WW
7028747135259045235367182818284.2* eW
11100101010110117109.22347
11110000001010116875.2243
00000000000000100000.222
7
4
0
W
W
W
mantissa esponente
A.S.E.A.S.E. 7.7.2727
Virgola mobile 2Virgola mobile 2
• Fra tutte le rappresentazioni possibili ne Fra tutte le rappresentazioni possibili ne esiste una che utilizza al meglio la esiste una che utilizza al meglio la dinamica a disposizione ( minimo errore)dinamica a disposizione ( minimo errore)
• Per numeri positivi èPer numeri positivi è
• Per numeri negativi èPer numeri negativi è
511)W256 10 Nper (22 12 NN W
11100101010110117109.22347 7 W
)255W512- 10 Nper (22 21 NN W
A.S.E.A.S.E. 7.7.2828
Virgola mobile 3Virgola mobile 3
• La rappresentazione normalizzata è La rappresentazione normalizzata è caratterizzata dal fatto che le due cifre caratterizzata dal fatto che le due cifre più significative sono diversepiù significative sono diverse
• Esempio rappresentare Esempio rappresentare su 10 bit su 10 bit
77
0
201100100104022Int
tanormalizza azioneRappresent
7
)256128(65.162511
51151210per dinamica
E
kk
ZN
A.S.E.A.S.E. 7.7.2929
Virgola mobile 4Virgola mobile 4
• Esempio rappresentare -Esempio rappresentare - su 10 bit su 10 bit
7
77
0
21001101110
201100100104022Int
tanormalizza azioneRappresent
7
)256128(9.162512
51151210per dinamica
E
kk
ZN
A.S.E.A.S.E. 7.7.3030
Aritmetica in Virgola MobileAritmetica in Virgola Mobile
• Consideriamo X=XConsideriamo X=XMMxBxBXEXE
• Somma Z = X+Y=(XSomma Z = X+Y=(XMM2 2 XE-YEXE-YE +Y +YMM)x2)x2YEYE
• Sottrazione Z = X-Y=(XSottrazione Z = X-Y=(XMM22XE-YEXE-YE-Y-YMM)x2)x2YEYE
• Moltiplicazione Z = XxY=(XMoltiplicazione Z = XxY=(XMMxYxYMM)x2)x2XE+YEXE+YE
• Divisione Z = X÷Y=(XDivisione Z = X÷Y=(XMM÷Y÷YMM)x2)x2XE-YEXE-YE
• Somma e sottrazione sono più complesse Somma e sottrazione sono più complesse di moltiplicazione e divisione!di moltiplicazione e divisione!– Occorre allineare gli esponenti prima di Occorre allineare gli esponenti prima di
effettuare l’operazioneeffettuare l’operazione
A.S.E.A.S.E. 7.7.3131
Somma in virgola mobileSomma in virgola mobile
• calcolare calcolare + ln59 =3.1415 + + ln59 =3.1415 + 4.0775=7.2194.0775=7.219
2031.72461
20011001001010000010059ln
20100000100226059ln
65.12559ln/512
20110010010
6
6
66
0
7
E
A.S.E.A.S.E. 7.7.3232
Prodotto in virgola mobileProdotto in virgola mobile
• calcolare calcolare ∙ ln59 =3.1415 ∙ ∙ ln59 =3.1415 ∙ 4.0775=12.80994.0775=12.8099
6875.122406220110010110
20110010010010000010059ln
2010000010059ln
20110010010
5138
67
6
7
A.S.E.A.S.E. 7.7.3333
ErroreErrore
• Nella rappresentazione in virgola fissa Nella rappresentazione in virgola fissa l’errore e assoluto (± 0.5)l’errore e assoluto (± 0.5)
• Nella rappresentazione in virgola mobile Nella rappresentazione in virgola mobile l’errore è relativol’errore è relativo
A.S.E.A.S.E. 7.7.3434
ConclusioniConclusioni
• Interi assolutiInteri assoluti• Somma, sottrazioneSomma, sottrazione• Moltiplicazione, Moltiplicazione,
• Interi relativi Interi relativi • Somma, sottrazioneSomma, sottrazione• MoltiplicazioneMoltiplicazione
• Aritmetica in virgola mobileAritmetica in virgola mobile• Rappresentazione normalizzataRappresentazione normalizzata• Somma in virgola mobileSomma in virgola mobile• Prodotto in virgola mobileProdotto in virgola mobile