Sei sulla pagina 1di 17

Capitolo 2

Bit

Descrizione
2.1 - Rappresentazione dell’informazione
2.2 – Codici binari dei segnali
2.3 - Trasmissione dell’informazione
2.4 - Protezione dell’informazione

Variabili binarie
Bit (binary digit) - Variabile x tale che:
x ∈ B{{0,1}}

2.1 logica positiva e negativa

Rappresentazione Segnali binari: {Presente, Assente}


} {High, Low}
}
binaria {Aperto, Chiuso} } {Luce, Buio}
} ecc.
dell’informazione
I Interruttore I C Contatto C L Lampada L
0 alto 1 0 aperto 1 0 accesa 1
1 basso 0 1 chiuso 0 1 spenta 0

logica negativa logica positiva

1
Configurazioni binarie
n bit
Configurazione binaria - Stringa
di lunghezza n di simboli 0 e 1. b1 b2 b3 bn

• n bit hanno 2n configurazioni binarie diverse.


• Una configurazione di n bit può rappresentare
Es: i valori di n segnali binari ad un certo istante.
abc • Una configurazione di n bit può rappresentare Rappresentazione
000 i valori di un segnale binario in n istanti. dell’informazione
100
010 a 0
001
x
110 b 0 1 0 0
101
011 t1 t2 t3
c 0
111 t

Diagrammi ad occhio Il modello


Andamento di n segnali:
010 101 000 … … sorgente canale destinazione

Relazione ingresso/uscita di un blocco:


messaggio
010 101 000 … …

stringa
11 00 01 10 01 ……….
alfabeto

2
La rappresentazione dell’informazione
Informazione - Stringa di lunghezza finita formata da simboli
si appartenenti ad un alfabeto di definizione A:
s1 s2 s3 …. si …… sn-1 sn con si ∈ A:{
{a1, a2, .., am}

Esempi:
“testo” e caratteri “numero” e cifre “musica” e note 2.2
“immagine”, pixel e toni di grigio “disegno” e pend./lung. di tratti Codici binari
“misura” e posizione di un indice “parlato” e fonemi

Simboli di informazione - Variabili a cui può essere assegnato


come valore uno qualsiasi degli elementi dell’alfabeto A

La codifica binaria Codice binario


della informazione Codice binario - Funzione dall’insieme delle 2n configurazioni
di n bit ad un insieme di M informazioni (simboli alfanumerici,
colori, eventi, stati interni, ecc.).
Condizione necessaria per la codifica: 2n ≥ M

0 0 0 ……..0 z
n.u.
1 0 0 ……..0
0 1 0 ……..0 1
5
1 1 0 ……..0 a
2n config. 0 0 1 ……..0 M
informazioni
0 0 1 ……..1 ?
m
0 1 1 ……..1
1 1 1 ……..1

3
Proprietà di un codice 0 più 1
00 01 11 10

2 1 meno 0 26.103 0
Il codice è una rappresentazione convenzionale dell’informazione. n.u.
segno 1
La scelta di un codice è condivisa da sorgente e destinazione Esempi colori
ed ha due gradi di libertà: Cifre decimali
• il numero di bit (qualsiasi, a patto che sia 2n ≥ M )
0000 zero 1111110 1000000000
• l’associazione tra configurazioni e informazioni;
0001 uno 0110000 0100000000
a parità di n e di M le associazioni possibili sono Altri
0010 due 1101101 0010000000
29
0011 tre 1111001 0001000000
C = 2n! / (2n-M)! miliardi
0100 quattro 0110011 0000100000
di
0101 cinque 1011011 0000010000
codici
0110 sei 0011111 0000001000
a
N = 1, M = 2 C=2 0111 sette 1110000 0000000100
4 bit
N = 2, M = 4 C = 24 1000 otto 1111111 0000000010
N = 3, M = 8 C = 64.320 1001 nove 1110011 0000000001
N = 4, M = 10 C = 29.000.000.000 BCD 7 segmenti uno su dieci
N.B. 1= acceso

Codice a 7 segmenti
Codici ridondanti e non ridondanti a

f b

Codici ridondanti
g
8
n > nmin
7 e c
non ridondanti nmin =  lg2 M
6
Codici d
n: n° di bit

5
4
3
Universal Product Code
a b c d e f g 0 1 2 3 4
2
1
0
2 22 42 62 5 6 7 8 9
M: n° di informazioni

4
La codifica Morse
Codici proprietari e standard

t0 t1 t2 t3 t0 t1 t2 t3
Codice proprietario - Codice fissato da un Costruttore per mettere E  D    Caratteristiche:
in comunicazione apparati da lui realizzati T  F    
A   H     •Lunghezza variabile
• L’uso di codici proprietari ottimizza le prestazioni e protegge il I   B    
mercato di certe apparecchiature. N   X     •Stringhe separate da pause
M   V    
Esempi: Linguaggio Assembler, Periferiche, Telecomando TV O    C    
S    Y    
R    L    
Codice standard - Codice fissato da norme internazionali ( de iure ) G    J     •Efficiente per l’uso da
o dal costruttore di una macchina utile per tutti gli altri ( de facto ). W    Z     parte di operatori umani
U    Q    
• L’uso di codici standard nelle unità di I/O consente di collegare
K    P     •Difficoltoso il progetto di
macchine fatte da costruttori diversi
ricetrasmettitori automatici
Esempi: Stampanti e Calcolatori, Calcolatori e Calcolatori

I 96 simboli di “testo” (ASCII a 7 bit)


000 001 010 011 100 101 110 111

0000 SP 0 @ P ' p
0001 ! 1 A Q a q
0010 " 2 B R b r
0011 # 3 C S c s
0100 $ 4 D T d t
La codifica 0101
0110
%
&
5
6
E
F
U
V
e
f
u
v
dei testi 0111 ' 7 G W g w
1000 ( 8 H X h x
1001 ) 9 I Y i y
1010 * : J Z j z
1011 + ; K [ k {
1100 , < L \ l |
1101 - = M ] m }
1110 . > N ^ n ~
1111 / ? O _ o DEL

5
Codice ASCII esteso (8 bit)

3 bit Trascodifica
8 conf.

5 bit : 32 configurazioni

N.B. - Lo standard Unicode (16 bit) consente di


rappresentare diversi sottoinsiemi di caratteri.

Bit map: un codice ridondante La trascodifica sul percorso dei dati


per simboli alfanumerici
Trascodifica
Unità di
Bianco/nero: Codici Codice elaborazione
1 pixel, 1 bit esterni interno e
di memoria
Colori: Trascodifica
1 pixel, 8 bit

Font
Il codice interno è di norma non ridondante per minimizzare il n° di bit
da elaborare e da memorizzare.
Il codice esterno è di norma ridondante, per semplificare la generazione
e la interpretazione delle informazioni, e standard, per rendere possibile
Matrice di pixel: ad es. 8x8 la connessione di macchine (o unità di I/O) fatte da Costruttori diversi.

6
Input/output di un ascensore
La calcolatrice tascabile
Presenza
al piano Display 3
(Encoder) di cabina
Codice M=5 2
ELABORAZIONE (Decoder)
ridondante nmin = 3 1
controllo
per la movimento M=5
Pulsanti T
Codice C cabina nmin = 3
visualizzazione di chiamata
BCD C e
dei dati (Encoder)
apertura/chiusura
per la C M=5
porte
rappresentazione nmin = 3
Codice C
interna Indicazione
ridondante dei numeri di presenza
3 Pulsantiera
per la (Decoder)
in cabina
introduzione 2 (Encoder)
M=5
dei dati e 1 M=5
nmin = 3
dei comandi nmin = 3
T

Esempio : un editor Le due macchine combinatorie per la


trascodifica nell’ascensore
tastiera uno su enne
x4 ENCODER x4 x3 x2 x1 y2 y1 y0
y2 0 0 0 0 0 0 0
x3 trascod.
buffer di input scan-code y1 0 0 0 1 0 0 1
x2 da 1 su 4 0 0 1 0 0 1 0
a binario y0 0 1 0 0 0 1 1
x1
memoria principale ASCII 1 0 0 0 1 0 0

y7 x2 x1 x0 y7 y6 y5 y4 y3 y2y1 y0
memoria video font/bit-map DECODER
y6 0 0 0 0 0 0 0 0 0 0 1
x2
y5 0 0 1 0 0 0 0 0 0 1 0
x1 trascod.
y4 0 1 0 0 0 0 0 0 1 0 0
schermo Riga- Colonna - Colore da binario
0 1 1 0 0 0 0 1 0 0 0
x0 y3
a 1 su 8
y2 1 0 0 0 0 0 1 0 0 0 0
y1 1 0 1 0 0 1 0 0 0 0 0
y0 1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0

7
Il sistema di numerazione in base 2
(il caso dei numeri naturali < 2n)
n bit
bn-1 bn-2 b1 b0 (N)2 = bn-1 .2n-1 + bn-2 .2n-2 + …+ b0 .20

La codifica N10 N2 N10 N2 Lunghezza della stringa in base 2 e in


0 0000 8 1000 base 10
dei numeri 1 0001 9 1001 Dato un numero decimale con m cifre
2 0010 10 1010 0 ≤ (N)10 ≤ 10m -1
3 0011 11 1011 per la sua rappresentazione binaria deve
4 0100 12 1100 essere 2n > 10 m e quindi
5 0101 13 1101 n = (m××log2 10) ≈ (3,32 m)
6 0110 14 1110
7 0111 15 1111

Numeri in base B Addizione (carry)


0+0 = 00 ri
0+1 = 01 ai Full si
1) Rappresentazione: Adder ri+1
1+0 = 01 bi
1+1 = 10
an-1 …… a0 , a-1 …… a-m ai ∈{0, 1, …., (B-1)}
ri ai bi ri+1 si

000 0 0
rn rn-1 rn-2 r1 0
001 0 1
2) Valore: an-1 an-2 a1 a0 + 010 0 1
011 1 0
bn-1 bn-2 b1 b 0 100 0 1
(N)B = (an-1 .Bn-1 + …+ a0 .B0 + a-1 .B-1 + a-2 .B-2 + … a-m .B-m)
101 1 0
sn sn-1 sn-2 s1 s0 110 1 0
111 1 1

8
Sottrazione (borrow) Moltiplicazione (shift and add)
0-0 = 0 pi y3 y2 y1 y0 ×
0-1 = n.a. ai Full di
1-0 = 1 bi Subtracter pi+1 x3 x2 x1 x0
1-1 = 0
pi ai bi pi+1 di x0y3 x0y2 x0y1 x0y0

000 0 0 x1y3 x1y2 x1y1 x1y0


pn pn-1 pn-2 p1 0
001 1 1
0 an-1 an-2 a1 a0 - 010 0 1 x2y3 x2y2 x2y1 x2y0
011 0 0
0 bn-1 bn-2 b1 b0 100 1 1 x3y3 x3y2 x3y1 x3y0
101 1 0
dn dn-1 dn-2 d1 d0 110 0 0
111 1 1 p7 p6 p5 p4 p3 p2 p1 p0

Moltiplicazione Rappresentazione dei numeri razionali

0.0 = 0 •Come coppia di interi (più un bit per il segno)


0.1 = 0
1.0 = 0
1.1 = 1
in in-1 ... i0 f1 f2 ... fn

s in in-1 ... i0 f1 f2 ... fn


P = Y.X
= Y.(xn-1 .2n-1 + … + x1 .21 + x0 .20) •Notazione scientifica
= (Y.xn-1).2n-1 + ...+(Y.x1).21 +(Y.x0).20
= Pn-1.2n-1 +…+P1.21 +P0.20 s mn mn-1 ... m0 s en en-1 ... e0
Pi = (Y.xi) = (yn-1 . xi ).2n-1 + … + (y0 . xi ).20

9
Conversioni da base 2 a base 10 Altri sistemi binari di numerazione
ESEMPIO: 100110
0+ • Sistema esadecimale: B =16
2+ cifre: 0,1,..,9,a,b,c,d,e,f
4+ codice binario: 0 = 0000, 1 = 0001, …, f = 1111
Conversione da base 2 a base 10
0+ n° di bit per cifra: 4
(N)10 = (bn-1 .2 + bn-2 .2 + … + b1 .2 + b0 .2 )10
n-1 n-2 1 0
0+
32 = • Sistema decimale: B = 10,
38 cifre: 0, 1, …,9
codice BCD: 0 = 0000, …, 9 = 1001
n° di bit per cifra: 4
Osservazione:
(N)10 = (bn-1 .2n-1 + bn-2 .2n-2 + … + b1 .21 + b0 .20)10 • Sistema ottale: B = 8,
(N)10/2= (bn-1 .2n-2 + bn-2 .2n-3 + … + b1 .20) + (b0 .2-1)10 cifre: 0, 1, …,7
= Q + R. 2-1 codice OCTAL: 0 = 000, …, 7 = 111
n° di bit per cifra: 3

Conversione di un numero naturale


N da base 10 a base 2
i=0 ESEMPIO: 131
A=N 131/2 = 65 +1.0,5
65 = 32 + 1.0,5
32/2 = 16 + 0
B = (A / 2) 10 = (Qi + Ri×2-1) 10 16/2 = 8 + 0
2.3
8/2 = 4 + 0 Trasmissione
4/2 = 2 + 0
A = Qi 2/2 = 1 + 0
dell’informazione
bi = Ri 1/2 = 0 + 1.0,5
10000011

NO SI fine
i = i+1 A=0

10
Modalità di trasmissione dei bit:
le unità di conversioni S/P e P/S
Elaborazione
trasmis. Convertitore Convertitore trasmis.
in serie S/P P/S in serie
trasmissione
in parallelo
Modalità

La modalità di trasmissione all’interno della macchina è di norma


in parallelo (per massimizzare la velocità di elaborazione)

La modalità di trasmissione all’esterno della macchina è di norma


in serie (per minimizzare la complessità del supporto fisico)

Modalità di trasmissione dei bit: La conversione P/S di un byte


compromesso spazio/tempo Ingresso:
Il selettore
b0 , b1, b2 , b3 , b4 , b5 , b6 , b7
n° segnali b0 0
b1 1
b2 Uscita:
8 Trasmissione in parallelo 2
b3 3
Es.: Codice a 8 bit b4 4 b0 b1 b2 b3 b4 b5 b6 b7
b5 5
b6 6 Data Path
4 b7 7 Stato:
Trasmissione in serie/parallelo
2 (N)2
Trasmissione in serie Oscillatore 000 001 010 011 100 101 110 111
1
Contatore
1 2 4 8 n° intervalli con 8 stati Controller

11
La serializzazione di due bit La distribuzione di due bit

u0
a i0 i1 u f0 a f0 f1
i0 0 0 0 0 i 0 1 0
0M D0
U u 0 0 1 0 E 1 0 1
i1 X 0 1 0 1 C 1 f1
1 u1
a 0 1 1 1
1 0 0 0 a
1 0 1 1
Contatore 1 1 0 0 Il Decoder genera 2 “flag di validità”, di cui
con 2 stati 1 1 1 1 uno solo alla volta ha valore 1.
Contatore
L’uscita che riceve tale valore è la
con 2 stati
se a=0 allora u=i0 destinazione del bit d’ingresso i
altrimenti u=i1

Conversione S/P di un byte


Il distributore

0 b0
1 b1
2 b2
3 b3
b0 b1 b2 b3 b4 b5 b6 b7 4 b4
5 b5 Protocolli
6 b6
7 b7

000 001 010 011 100 101 110 111 (N)2


Oscillatore

Contatore
con 8 stati

12
Modalità di controllo (ASCII a 7 bit) : Comunicazione asincrona di un byte:
codifica dei comandi e protocollo di scambio il protocollo RS232
0
telescrivente Comandi per il protocollo telescrivente
dato 1 bit
Selettore
000 001 Esempio: sorgente destinazione p a 12 vie Dispositivo
0000 NUL DLE 1
BEL 1 periferico
0001 SOH DC1
0010 STX DC2 ENQ
0011 ETX DC3 SOH
0100 EOT DC4 . Tx Contatore
0101 ENQ NAK .
0110 ACK SYN con 12 stati N.B. devono
LF operare “quasi”
0111 BEL ETB
1000 BS CAN CR Porta seriale allo stesso ritmo!
1001 HT EM STX
1010 LF SUB .
1011 VT ESC
1100 FF FS .
EOT Riposo Start I° bit II° bit . . . VIII° bit Parità Stop
1101 CR GS
1110 SO RS ACK/NAK
1111 SI US tempo

Comunicazione asincrona:
Sincronizzazione protocollo a stretta di mano
La destinazione deve sapere in quali istanti di tempo i valori
presenti sul canale sono significativi. segnale di richiesta
Si hanno due casi: Sorgente segnale di conferma Destinazione
o o
“accoppiamento stretto” “accoppiamento lasco” cliente segnali di dato servitore

req

ack
S D S D

dato risul.

13
Codici separabili: rilevazione di errori
bit di informazione bit di controllo
(information bits) (check bits)

2.3 I

Protezione
F
dell’informazione C
F
C R C bit di
F sindrome
Tx Rx d’errore

Disturbi e Guasti Gestione degli errori


NO
ricezione Correzione
sorgente canale destinazione Memoria
• linea di trasmissione N=N+1 in Tx ?
• unità di memoria NO
Ritrasmissione
NO SI
Perdita
Obiettivo: riconoscere alla destinazione le configurazioni modificate. Errore?
consentita?
Condizione necessaria: il codice deve essere ridondante SI Manutenzione
• se arriva una configurazione “non utilizzata” la destinazione SI o sostituzione
SI
ha la certezza della sua non integrità; E=E+1 del canale
• se arriva una configurazione “utilizzata” la destinazione E/N >k?
ha solo una certa probabilità che sia integra.
Scarto
NO
Ulteriore condizione - Le configurazioni non utilizzate devono
essere le modifiche più probabili delle configurazioni utilizzate.

14
Distanza minima di un codice
Distanza fra due configurazioni binarie di n bit: D(A,B) -
Numero di bit omologhi che hanno valore diverso.

Esempi: D(100,101) = 1; D(011,000) = 2; D(010,101) = 3


Codici con
rilevazione Distanza minima di un Codice C: DMIN (C) - Valore minimo
della distanza tra due qualsiasi delle configurazioni utilizzate.
di errori
Esempi: DMIN (Codice ASCII) = 1; DMIN (Codice semaforo) = 2

• I codice non ridondanti hanno DMIN=1.


• I codice ridondanti possono avere DMIN > 1.
Esempio: DMIN (UPC) = 2

L’ipotesi degli errori indipendenti


Distanza minima e rilevazione degli errori
Consideriamo una stringa di n bit e supponiamo che l’evento di
modifica di un bit (o errore) da parte di un disturbo • Un codice per la rilevazione di tutti i possibili errori singoli,
a) sia indipendente dalla posizione del bit nella stringa; o SEDC (Single Error Detection Code), deve non utilizzare
b) si verifichi con probabilità pari a p (tasso di errore). tutte le configurazioni che distano “uno” da ciascuna delle
La probabilità che la stringa ricevuta contenga e errori è data da: configurazioni utilizzate.

Pe = ( ne ) . pe . (1-p)n-e Un codice SED deve dunque avere almeno DMIN = 2 .

Esempio:
p=1% n P0 P1 P2 P3
N.B. molto alto! 8 92,27 % 7,46 % 0,26 % 0,005 % • Un codice per la rilevazione di modifiche su k bit deve
16 85.14 % 13,76 % 1,04 % 0,049 % avere almeno DMIN = k+1 .

Per n = 8 le modifiche più probabili riguardano un solo bit


Per n = 16 le modifiche più probabili riguardano uno o due bit

15
Il bit di parità : una semplice modalità
per ottenere la rilevazione di errori singoli
Bit di parità p - bit che la sorgente aggiunge ad una stringa di bit di
codifica al fine di renderne pari il n° di “uni”.
Errore di parità e - bit che la destinazione pone a 1 se e solo se riceve
una configurazione con un numero dispari di “uni”.
Codici con
correzione
x1
0
x2
0
p
0
x1
0
x2
0
p
0
e
0
di errori
0 1 1 0 0 1 1
1 0 1 0 1 0 1
1 1 0 0 1 1 0
1 0 0 1
Codice con 1 0 1 0
1 1 0 0
DMIN = 2 1 1 1 1

La correzione di errori singoli (esempio)


Calcolo del bit di parità
100 101 100 101

110 111 110 111

x1
x2
000 001 000 001

010 011 010 011

confronto
Tx trasmette Se P1>> P2 ogni configurazione
p = F(x1, x2) e = F(x1, x2, p) o NO = 000 o SI = 111 errata può essere corretta
= F(F(x1, x2), p)
•Funzione composta
A causa dei disturbi Rx può
•Disposizione in serie
ricevere una terna qualsiasi

16
Il codice di Hamming
Distanza minima e correzione degli errori Stringa ricevuta
i1 t3 r3
i2 t5 r5
Il codice dell’esempio precedente ha DMIN=3. i3 t6 r6
i4 t7 r7
t1 r1
• Ogni SECC (Single Error Correction Code) deve avere Bit di controllo t2 r2
c1 t4 r4
DMIN ≥ 3. da aggiungere
c2 Bit di sindrome
c1 = F(i1, i2, i4) s1
c2 = F(i1, i3, i4 ) c3 da calcolare
• Un codice con DMIN = 2k+1 rileva 2k errori e può correggerne Stringa s2
c3 = F(i2, i3, i4 ) s1 = F(r3, r5, r7, r1)
fino a k . Trasmessa s2 = F(r3, r6, r7, r2 ) s3
il bit errato è ri con i = (s3 s2 s1)2 s3 = F(r5, r6, r7, r4)
Di solito si corregge un solo bit e si usa la ridondanza introdotta
per valutare la “qualità” del canale (manutenzione/sostituzione) ES.: I = 0001 R=0011
c1 = 1 s1 = 0
c2 = 1 s2 = 1
c3 = 1 s3 = 1

Codici separabili: correzione di errori


Hamming (Bell Labs, 1950) ha dimostrato che per correggere gli
errori singoli su informazioni codificate con I bit occorrono C bit
di controllo tali che 2C ≥ I + C + 1 .

I
correzione

F
C
F
C R C bit di
F
sindrome
Tx Rx d’errore
Le 2C configurazioni delle sindromi di errore devono indicare
se non c’è errore (1 situazione) e se c’è, dov’è (I + C situazioni).

17

Potrebbero piacerti anche