ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N 3 Sistema
















































- Slides: 48
ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 3 • • • Sistema numerico Base 2, 3, 4, 5, 8, 10, 12, 16 Aritmetica binaria Conversione da base “N” a base 10 Conversione da base 10 a base “N” A. S. E. 3. 1
Richiami • • Segnali analogici Segnali numerici Segnali digitali Conversione da segnale analogico a segnale numerico • Conversione da segnale numerico a segnale analogico • Codifica A. S. E. 3. 2
Riepilogo (1) • Segnale Analogico – Un segnale analogico ha un’ampiezza che varia in maniera continua nel tempo • Segnale campionato – Viene “congelato” il valore che il segnale analogico assume a intervalli regolari di tempo • Segnale numerico 1 – Viene assegnato al segnale campionato il valore numerico relativo all’intervallo di appartenenza A. S. E. 3. 3
Riepilogo (2) • Segnale numerico 2 – Al segnale quantizzato si può associare il valore numerico “codificato” • Segnale digitale (binario) – Particolare segnale numerico che può assumere solo due valori “ 0” e “ 1” • Al valore “ 0” si associa, per esempio, 0 V • Al valore “ 1” si associa, per esempio, 5 V A. S. E. 3. 4
Codifica (1/4) • Un valore numerico può essere codificato per mezzo di un numero n di simboli (cifre) binari – il numero di cifre binarie necessario per la codifica è n = élog 2 Nù, dove N è il numero di livelli da codificare; • se vale n = log 2 N, allora N = 2 n e tutte le possibili sequenze di n cifre binarie sono utilizzate nella codifica; • se invece n > log 2 N, allora la codifica utilizza un sottoinsieme N < 2 n delle possibili sequenze di n cifre binarie; – è possibile utilizzare diverse leggi di codifica, e il loro numero C è una funzione di N, n: • se N = 2 n , allora C è dato dal numero di permutazioni di N oggetti: A. S. E. 3. 5
Codifica (2/4) • se invece N < 2 n , allora C può essere determinato considerando che: – bisogna individuare N simboli di codifica fra i 2 n possibili simboli rappresentabili con n cifre binarie; il loro numero è pari alle combinazioni C(2 n, N) di N oggetti estratti da un insieme di 2 n elementi: – per ciascuna combinazione, possono essere definite P(N) = N! permutazioni diverse; – complessivamente, il numero di codifiche è quindi dato da: – nota: se N = 2 n , sfruttando la proprietà 0!=1, l’espressione di CN coincide proprio col risultato ottenuto in precedenza, CN = N! A. S. E. 3. 6
Codifica (3/4) • Esempio: N = 7 • n = 3, CN = 8! = 40320 Valore A B C 0 1 1 1 1 0 2 1 1 1 3 1 1 0 4 0 1 1 5 0 1 0 6 0 0 1 A B C 0 0 0 1 1 0 2 0 1 1 3 1 1 0 4 1 1 1 Valore A B C 5 1 1 0 0 6 1 0 1 1 1 2 0 1 0 3 1 0 1 4 0 0 1 5 1 1 0 6 0 1 1 …. . Valore A. S. E. 3. 7
Codifica (4/4) • Fra tutte le codifiche, due sono più significative: • codifica naturale; • codifica Gray; • Esempio: N = 8 (n = 3, CN = 8! = 40320) Valore A B C 0 0 0 0 1 2 0 1 0 2 0 1 1 3 0 1 0 4 1 0 0 4 1 1 0 5 1 0 1 5 1 1 1 6 1 1 0 6 1 0 1 7 1 1 1 7 1 0 0 CODIFICA NATURALE A. S. E. CODIFICA GRAY 3. 8
Notazione Posizionale • Per rappresentare una quantità maggiore di quella associata a ciascun simbolo (cifra, digit) si usano più digit per formare un numero • La posizione relativa di ciascun digit all’interno del numero è associata ad un peso, dato dalla base di rappresentazione b • Notazione posizionale • Rappresenta il polinomio A. S. E. 3. 9
Sistema Decimale • Il sistema decimale è il sistema posizionale comunemente utilizzato nella nostra vita quotidiana • Ad esempio il numero decimale 872. 64, significa: • Ciascuna cifra della rappresentazione è un simbolo dell’alfabeto decimale (0, 1, 2, …, 9) • La posizione di una cifra all’interno del numero, relativa alla virgola decimale, indica il suo peso, ossia l’esponente ad essa associata nel suo sviluppo polinomiale A. S. E. 3. 10
Sistema numerico non posizionale • I numeri romani non danno luogo a un sistema numerico posizionale • Come in un sistema posizionale, uno stesso simbolo in posizioni diverse assume valori diversi – a differenza di un sistema posizionale, il peso di una cifra non è esprimibile come una potenza della base di rappresentazione – non è definita una base di numerazione per i numeri romani • lo sviluppo polinomiale non è possibile – Esempio • I; IV; VI; etc… A. S. E. 3. 11
Sistema Numerico • Base (radice) • Numero di simboli diversi di un sistema numerico • Digit (Cifra) • ciascun simbolo = DIGIT denota una quantità Base Sistema Digit 2 binario 0, 1 3 ternario 0, 1, 2 4 quaternario 0, 1, 2, 3 5 quinario 0, 1, 2, 3, 4 8 ottale 0, 1, 2, 3, 4, 5, 6, 7 10 decimale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 12 duodecimale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B 16 esadecimale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F A. S. E. 3. 12
Rappresentazione completa • Uno stesso numero rappresenta quantità diverse in funzione della base utilizzata – Si deve quindicare la base utilizzata. Ad esempio: • Altri esempi: • Nel caso rappresentazione binaria, una “binary digit” si indica come bit (letteralmente “pezzetto”) A. S. E. 3. 13
Tabella Decimale Binario Ternario Ottale Esadecimale 0 0 0 1 1 1 2 10 2 2 2 3 11 10 3 3 4 100 11 4 4 5 101 12 5 5 6 110 20 6 6 7 111 21 7 7 8 1000 22 10 8 9 1001 100 11 9 10 101 12 A 11 102 13 B 12 1100 110 14 C 13 1101 111 15 D 14 1110 112 16 E 15 1111 120 17 F 16 10000 121 20 10 A. S. E. 3. 14
Operazioni aritmetiche di base • Le quattro operazioni aritmetiche di base sono: – – Addizione Sottrazione Moltiplicazione Divisione • Tali operazioni sono note in base decimale • Si possono eseguire con le stesse modalità in qualunque base diversa da 10 • Si considera ora il sistema binario e quello ternario – quello binario è di gran lunga il più importante A. S. E. 3. 15
Addizione • Addizione di due digit – Può essere espressa i modo tabellare • Sistema binario b a+b a Sistema ternario a a+b 0 1 0 0 1 1 0 1 C=1 0 0 0 b 1 1 2 2 A. S. E. 1 2 0 2 C=1 0 1 C=1 3. 16
Addizione binaria 1 • Somma di due bit • x + y • s = Somma • c = Carry (RIPORTO) x 0 0 1 1 • Esempio carry (c) 1 addendo somma 1 1 1 0 1 0 1 1 1 0 0 1 A. S. E. 1 1 0 y 0 1 s 0 1 1 0 c 0 0 0 1 89 + 117 = 206 3. 17
Addizione binaria 2 • In caso di numeri frazionari si deve allineare il punto binario • Esempio 1011. 011+110. 1011 =10010. 0001 1 1 0 1 0 1 1 1. 0. 0. 1 0 1 1 0 0 A. S. E. 1 1 0 1 1 11. 375 + 06. 6875 = 18. 0625 3. 18
Addizione ternaria 1 x 0 0 0 1 1 1 2 2 2 • Somma di due digit • x + y • d = Somma • c = Carry (RIPORTO) • Esempio: riporto (c) addendo somma 1 1 2 1 1 1 0 2 0 1 2 2 2 1 1 1 0 2 1 0 A. S. E. 0 2 2 1 1 2 y 0 1 2 s 0 1 2 0 2 0 1 c 0 0 0 1 1 1666 + 1420 = 3086 3. 19
Addizione ternaria 2 • In caso di numeri frazionari si deve allineare il punto ternario • Esempio 2012. 012+120. 1022 =2202. 1212 2 2 1 0 1 2 0 2. 0 0. 1 2. 1 1 1 0 2 A. S. E. 2 2 1 2 2 59. 1851 + 15. 4320 = 73. 6171 3. 20
Sottrazione • Sottrazione di due digit – Può essere espressa i modo tabellare • Sistema binario b a-b a Sistema ternario b a-b 0 1 0 0 1 B=1 1 1 0 0 a 1 1 2 2 A. S. E. 1 2 2 1 B=1 2 0 B=1 1 0 3. 21
Sottrazione binaria 1 • Sottrazione di due bit • x - y • D = Differenza • B = Borrow (PRESTITO) x 0 0 1 1 • Esempio 1 minuendo 1 prestito (b) sottraendo differenza 1 1 1 0 0 1 1 1 0 A. S. E. 1 1 0 0 y 0 1 0 1 1 D 0 1 1 0 B 0 1 0 0 206 – 117 = 89 3. 22
Sottrazione binaria 2 • In caso di numeri frazionari si deve allineare il punto binario • Esempio 10010. 0001 - 1011. 011 =110. 1011 1 0 0 1 1 1 0. 1. 0. 1 0 0 1 1 0 A. S. E. 0 1 1 1 0 1 18. 0625 11. 375 = 06. 6875 3. 23
Sottrazione ternaria 1 x 0 0 0 1 1 1 2 2 2 • Sottrazione di due digit • x - y • D = Differenza • B = Borrow (PRESTITO) • Esempio 1 1 minuendo 1 1 sottraendo 1 differenza 2 prestito (b) 1 0 2 0 1 2 2 2 1 0 1 2 A. S. E. 2 2 0 2 1 1 y 0 1 2 D 0 2 1 1 0 2 2 1 0 B 0 1 1 0 0 0 3086 – 1420 = 1666 3. 24
Sottrazione ternaria 2 • In caso di numeri frazionari si deve allineare il punto ternario • Esempio: prestito (b) minuendo sottraendo differenza 2 2 1 1 2 0 2. 1 2 0. 1 0 2 2 73. 6171 59. 1851 = 15. 4320 • Esempio 2: – 2012. 012 - 120. 1022 = 2202. 1212 A. S. E. 3. 25
Moltiplicazione • Moltiplicazione di due digit – Può essere espressa i modo tabellare • Sistema binario a x b 0 0 0 a 1 0 b Sistema ternario a x b 1 0 0 0 a 1 0 2 0 A. S. E. b 1 2 0 0 1 2 C=1 3. 26
Moltiplicazione binaria x 0 0 1 • Prodotto di due bit • X * Y • P = Prodotto • Esempio moltiplicando moltiplicatore Prodotti parziali prodotto 1 0. 1 1 0. 0 0 0. 1 0 1 1 1 0 y 0 1 0 P 0 0 0 1 1 1 2. 75 * 5 = 13. 75 1 1 A. S. E. 3. 27
Moltiplicazione ternaria • Prodotto di due digit • • • X x Y P = Prodotto C = Carry • Esempio moltiplicando moltiplicatore 1 0 Prodotti parziali prodotto 2 2 1 1 1 2 0 0 0 2 2 1 0 0 1 0 2 2 1 65 * 11 = 715 x 0 0 0 y 0 1 2 P 0 0 0 C 0 0 0 1 1 1 2 2 2 0 1 2 0 2 1 0 0 0 1 1 1 A. S. E. 3. 28
Divisione binaria • Operazione divisione si effettua con moltiplicazioni e sottrazioni multiple • Divisione binaria: dividendo 1 0 1 - 1 1 1 0 - 0 0. 1 1 1 0 1 1 0 0 0 1 - 1 1 resto 1 0 A. S. E. divisore quoziente 3. 29
Divisione Ternaria • Esempio dividendo 2 0 1 -1 2 1 1 0 0 1 2 1 0 2 0 1 2 divisore quoziente resto A. S. E. 3. 30
Conversione di base • Un numero è un insieme di simboli o cifre che rappresentano una certa quantità – la rappresentazione di un numero è relativa alla base di rappresentazione utilizzata • Una numero può essere espresso in qualunque base di rappresentazione – esistono diverse rappresentazioni di uno stesso valore (numero) • Un intero espresso in base a è un intero anche in base b • Un numero frazionario espresso in base a è un numero frazionario anche in base b • Esistono due tecniche di conversione da una base ad un’altra (a b): – metodo polinomiale (le operazioni si fanno nella base d’arrivo) – metodo iterativo (le operazioni si fanno nella base di partenza) A. S. E. 3. 31
Metodo polinomiale • Il numero “N” espresso in base “a” ha la forma: • In base a = 10 si ha: • In base “b” il numero “N” risulta espresso da: • Calcolando il risultato di questo polinomio in aritmetica in base b, i può completare la conversione: A. S. E. 3. 32
Esempio 1 • Convertire 1101 in base 2 nell’equivalente in base 10 A. S. E. 3. 33
Esempio 2 • Convertire il numero binario 101. 011 nell’equivalente in base 10 • Convertire il numero ternario 201. 1 nell’equivalente in base 10 A. S. E. 3. 34
Esempio 3 • Convertire il numero esadecimale D 3 F nell’equivalente in base 10 • Osservazione: il metodo polinomiale è conveniente per la conversione da una generica base a alla base 10 A. S. E. 3. 35
Esempio 4 (numeri frazionari) • Conversione da base a a base 10 • Rappresentazione polinomiale del numero in base a: • Esempio : convertire il numero binario 1101. 101 in base 10: A. S. E. 3. 36
Metodo iterativo (numeri interi) • Tecnica delle divisioni successive – Si basa sul teorema della divisione con resto; • Dividendo un numero per la sua base, il resto della divisione intera è l’ultima cifra della sua rappresentazione in tale base A. S. E. 3. 37
Esempio 1 • Convertire il numero 52 in base 10 nell’equivalente in base 2 52 2 0 26 2 0 13 2 1 6 2 0 3 2 • Quindi: 1 1 A. S. E. 3. 38
Esempio 2 • Convertire il numero 58506 in base 10 nell’equivalente in base 16 58506 16 10 3656 16 • Quindi (A) 8 (8) 228 16 4 14 (4) (E) A. S. E. 3. 39
Esempio 3 • Convertire il numero 58506 in base 10 nell’equivalente in base 8 58506 8 2 7313 8 1 914 8 2 114 8 2 • Quindi A. S. E. 14 8 6 1 3. 40
Osservazione • Il metodo iterativo utilizza l’aritmetica della base di partenza – è particolarmente conveniente per la conversione da base 10 ad una generica base b diversa da 10 A. S. E. 3. 41
Metodo iterativo (numeri frazionari) • Conversione da base 10 a base b • La parte intera procedimento prima visto • Per la parte frazionaria in base b si ha • Moltiplicando per la base si ha • La conversione può non avere fine, si arresta una volta raggiunta la precisione desiderata (con un certo numero di cifre decimali) A. S. E. 3. 42
Esempio • Conversione da base 10 a base 16 A. S. E. 3. 43
Errore di Conversione • Avendo arrestato la conversione al quarto passaggio si commette un errore di conversione • L’entità dell’errore si può valutare convertendo di nuovo il risultato ottenuto in base 10 e valutando la differenza rispetto al numero di partenza (in aritmetica decimale) A. S. E. 3. 44
Osservazione • È vera la seguente uguaglianza: • Quindi, per convertire dalla base a alla base b un numero frazionario lo si può moltiplicare per , il cui risultato è un numero intero, convertibile con il metodo delle divisioni successive, e quindi si deve dividere (in base b) il risultato ottenuto per • Dualmente, si può anche considerare: – OSS 1: m’ potrebbe anche essere diverso da m; – OSS 2: la divisione in base b diventa adesso uno spostamento della posizione della virgola, dato che A. S. E. 3. 45
Esempio 1 • Convertire il numero 61. 25 da base 10 a base 8 – m = 2, si moltiplica per 102 =100 e si eseguono le divisioni successive in base 10: 6125 8 5 765 8 5 95 8 7 11 8 3 1 – Il risultato si divide per 102(10) = 144(8), quindi risulta: • N = 13755 / 144 = 75. 2 – N. B. : la divisione è eseguita in base 8! A. S. E. 3. 46
Esempio 2 • Convertire il numero 61. 25 da base 10 a base 8 – si moltiplica per 82 = 64 in base 10, e si eseguono le divisioni successive per 8 in base 10 (8(10)) 3920 8 0 490 8 2 61 8 5 7 – il risultato si divide per 82(10) = 100(8), quindi risulta • N(8) = 7520 / 100 = 75. 2 – N. B. : la divisione è fatta in base 8 (ma ora ha complessità nulla!) A. S. E. 3. 47
Conclusioni • Aritmetica binaria • Conversione da base “N” a base 10 • Conversione da base 10 a base “N” A. S. E. 3. 48
















































