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