Vous êtes sur la page 1sur 10

Objectifs

Connatre

Circuits Logiques
ELE1300

des formes dencodage de linformation en


binaire
Le concept de distance entre des mots binaires

tre capable de

Codes et contrle des erreurs

Passer dun format dencodage un autre


Coder, dtecter et corriger des erreurs de
transmission

JP David

12 avril 2016

Circuits logiques - JP David

Elle

12 avril 2016

Lui

Tes la?

Tes la?

Ttais vraiment bon ce matin


dans ta prsentation

Ttais vraiment con ce matin


dans ta prsentation

Tes la?

Tes la?

Circuits logiques - JP David

12 avril 2016

Circuits logiques - JP David

Les codes reprsentatifs

Code Ascii

Quest-ce que le code?

Le Code ASCII (acronyme de Amrican Standard Code


for Information Interchange) est certainement lun des
plus anciens codes reprsentatifs utiliss en
informatique.
Dans sa premire version, le code Ascii comportait 7
bits (128 symboles). Il fut ensuite largi 8 bits (256
symboles).
Il est largement supplant aujourdhui par des codes
plus modernes comme le code Unicode (plus de 110
mille caractres) souvent encod au moyen de la norme
UTF-8

Un code est une rgle pour convertir de l'information


(mot, image...) sous une autre forme de reprsentation.
On utilise des codes au quotidien
Lalphabet
Les chiffres et les nombres
La sonnerie de votre tlphone qui reprsente un
appelant particulier
Votre pseudo

12 avril 2016

Circuits logiques - JP David

12 avril 2016

Circuits logiques - JP David

Le code Ascii ()

volution des codes texte

Source : http://en.wikipedia.org/wiki/UTF-8

Circuits logiques - JP David

12 avril 2016

L\H

NUL

DLE

SP

SOH

DC1

STX

DC2

"

ETX

DC3

EOT

DC4

ENQ

NAK

ACK

SYN

&

BEL

ETB

'

BS

CAN

HT

EM

LF

SUB

VT

ESC

{
|

FF

FS

<

CR

GS

SO

RS

>

SI

US

DEL

12 avril 2016

Circuits logiques - JP David

Caractre de fin de ligne

Le code ISO/CEI 8859-1


ISO/CEI 8859-1

LF (Line feed : '\n', 0x0A, 10 en decimal)


CR (Carriage return : '\r', 0x0D, 13 en decimal)

x0

x1

x2

x3

x4

x5

x6

0x

x7

x8

x9

xA

xB

xC

xD

xE

xF

Inutilis

1x

En Unix, un seul caractre (LF) est utilis pour un passage


la ligne.
Bonjour\nJe mappelle JP David\n
En Windows : le LF est prcd du caractre CR
Bonjour\r\nJe mappelle JP David\r\n

Circuits logiques - JP David

Dbut

Fin

Nbre
d'octets

Octet 1

Octet 2

Octet 3

Octet 4

Octet 5

&

'

<

>

4x

5x

6x

7x

Inutilis

Ax

NBSP

Bx

Cx

Dx

Ex

Fx

Circuits logiques - JP David

12 avril 2016

10

Le Code BCD (acronyme de Binary Coded Decimal)


est trs rpandu pour reprsenter les chiffres dcimaux.
Une faon simple de procder : reprsenter chaque
chiffre par le code binaire 4 bits qui lui est associ
(code BCD 8421) :

Octet 6

U+0000

U+007F

0xxxxxxx

U+0080

U+07FF

110xxxxx 10xxxxxx

16

U+0800

U+FFFF

1110xxxx 10xxxxxx 10xxxxxx

21

U+10000

U+1FFFFF

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

26

U+200000

U+3FFFFFF

111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

31

U+4000000 U+7FFFFFFF

1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Circuits logiques - JP David

"

Le code BCD

11

12 avril 2016

9x

Le code UTF-8
Nbre
de bits

SP

3x

8x

Mais, en C par exemple, une criture/lecture dans un fichier


au format texte fait des corrections automatiques qui
peuvent rapidement devenir des bogues
12 avril 2016

2x

0000
0001
0010
0011
0100

11

12 avril 2016

0
1
2
3
4

0101
0110
0111
1000
1001

5
6
7
8
9

Circuits logiques - JP David

12

Le code BCD ()

Le code de Gray

Comment reprsenter un nombre en code BCD8421?


On associe chaque chiffre le code binaire
correspondant:

Problmatique :
(CAS IDAL)

125
105
536
749

:
:
:
:

0001
0001
0101
0111

0010
0000
0011
0100

0101
0101
0110
1001

:
:
:
:

000100100101
000100000101
010100110110
011101001001

Circuits logiques - JP David

12 avril 2016

13

Le code de Gray ()

v1(t)
v0(t)
Nombre observ
:

12 avril 2016

000

001

010
011

v1(t)

v0(t)

Nombre observ
:

000

001

010

011

100

101

110

111

t
t

12 avril 2016

Circuits logiques - JP David

14

Le problme vient du fait que dans la reprsentation usuelle des


nombres, il arrive que deux bits ou plus changent de valeur en
mme temps.

(CAS REL)

Le code de Gray ()

Problmatique () :

v2(t)

v2(t)

011

100

101

110

111

101

Circuits logiques - JP David

Frank Gray (Bell Labs) propose au dbut des annes 1950 une
solution : celle dun code o les transitions dun nombre au
suivant nimpliquent le changement que dun seul bit la fois.
Le code de Gray est ainsi n

1
1
111

111

15

12 avril 2016

Circuits logiques - JP David

16

Le code de Gray ()

Le code de Gray ()
Il est possible de construire le code de Gray de faon
itrative :

Solution :

debut

Itration 1

(CAS REL)

v2(t)

des 0
0

0
1

1
t

v1(t)

00
01
11
10

0
t

v0(t)
Nombre observ
:

000

001

011

010

110

111

101

rsultat
prcde
nt

des 0
0 00
0 01
0 11
0 10
1 10
1 11
1 01
1 00

mirroir

des 1

100

Itration 2

rsultat
prcde
nt

mirroir

des 1
Circuits logiques - JP David

12 avril 2016

17

Le code de Gray ()
0=
1=
2=
3=
4=
5=
6=
7=
8=
9=
10=
11=
12=
13=
14=
15=

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0

12 avril 2016

0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0

0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0

Circuits logiques - JP David

12 avril 2016

18

Do viennent les erreurs?


Problme de base en communication :

Avec Karnaugh

10

11

15

14

13

12

Circuits logiques - JP David

v(t) + BRUIT

v(t)

METTEUR

CANAL

RCEPTEUR

BRUIT

19

12 avril 2016

Circuits logiques - JP David

20

0 ou 1 dans la vraie vie

Dtection et correction derreurs

Problme de base en communication () :


1

Notion de distance de Hamming :


0

Jenvoie Je reois
0
1
00
10
000
001

1
ERREUR

12 avril 2016

Est-ce?
0? 1?
00? 10? 11?
000? 001? 010? 100?

ERREUR

Circuits logiques - JP David

21

Dtection et correction derreurs ()


La rponse serait peut-tre vident si certains mots taient impossibles
dans un code:

12 avril 2016

Circuits logiques - JP David

22

Dtection et correction derreurs ()


Remarque : Cest le fait quon ne trouve pas deux mots
du code qui soient diffrents par un seul bit qui permet
de dtecter lerreur sur un bit

Code : {000,011,101,110}
Mots impossibles : {001,010,100,111}

2 bits diff.

Jenvoie
000
000
000
000
011
011
011
011

12 avril 2016

Je reois
001
010
100
000
010
001
111
011

Erreur?
OUI
OUI
OUI
NON
OUI
OUI
OUI
NON

Circuits logiques - JP David

000

011

2 bits diff.

101

23

12 avril 2016

2 bits diff.

2 bits diff.
Circuits logiques - JP David

110

24

Exemple : le bit de parit (suite)

Exemple : le bit de parit


bn

bn 1 L b3 b2
n bits dinformation

b1

p
bit de parit (ou dimparit)

le nombre de bits 1 est pair

Distance minimale
observe : 1 bit

codage le plus utilis

ou

Aucune dtection
derreur possible

le nombre de bits 0 est pair


Le bit p est tel que :

ou

le nombre de bits 1 est impair


ou

NOMBRE
BINAIRE

MOT DE
CODE

000
001
010
011
100
101
110
111

0000
0011
0101
0110
1001
1010
1100
1111

le nombre de bits 0 est impair

12 avril 2016

Circuits logiques - JP David

25

Exemple : le bit de parit (suite)


110

111

100

000

BITS MIS :

1100

1111

1001

0000

BITS REUS :

1110

1111

0101

0001

INFORMATION TRANSMETTRE :

PARIT NON VRIFIE

Capacit de dtection :
1 erreur par mot de
code

Circuits logiques - JP David

26

La correction derreurs

Ex, n=5, D=11


Si un mot subit 5 inversions de bit, il sera une distance
5 du mot dorigine et minimum 6 de tous les autres. On
peut donc le retrouver en cherchant le seul et unique mot
donc la distance est infrieure ou gale 5.

PARIT VRIFIE
PARIT VRIFIE
LES ERREURS NE SONT PAS DTECTES
PARIT NON VRIFIE
LERREUR EST DTECTE
Circuits logiques - JP David

Une erreur dans un


mot de code est
dtectable.

Pour dtecter des changements sur n bits, il faut


une distance de Hamming de n+1 entre tous les
mots licites.
Pour dtecter et corriger des changements sur n
bits, il faut une distance de Hamming de 2n+1 entre
tous les mots licites.

LERREUR EST DTECTE

12 avril 2016

12 avril 2016

Distance minimale
observe : 2 bits

27

12 avril 2016

Circuits logiques - JP David

28

La parit orthogonale
INFORMATION :

110

111

100

La parit orthogonale (suite)

000

BITS MIS :

1100

1111

1001

0000

1010

BITS REUS :

1100

1011

1001

0000

1010

1 1 0

1 1 1

1 0 0

1 1 0

0 0 0

1 0 1

1 0 1

1 0 0

0 0 0

1 0 1

Vrification :

LERREUR EST
CORRIGIBLE
BITS MIS :

1100

1111

1001

0000

PARIT NON VRIFIE

1010
PARIT NON VRIFIE

Circuits logiques - JP David

12 avril 2016

29

Le code de Hamming
A

b3

b1
b2

Parit B

B
Parit A
=?

b0

1
En parit paire, le
nombre de 1 doit
tre pair.
Parit A = 0

C
Circuits logiques - JP David

30

Le code de Hamming (suite)

Parit C

12 avril 2016

12 avril 2016

B
Parit A

Circuits logiques - JP David

31

12 avril 2016

Parit B
=?

0
1

Parit C
=?
C
Circuits logiques - JP David

32

Le code de Hamming (suite)

Le code de Hamming (suite)

Soit un mot de N bits numrots b0..bN-1


On cre un nouveau mot de N+P bits
numrots H0..HN+P-1
Hx est un bit de parit pour x = 2j (1,2,4 )
Hi est un bit de donne bk sinon.
Soit B(i), lexpression binaire de i

Encoder le nombre : 1001001111 011001

Hi participe au codage de parit de Hx si et


seulement si B(i) a un 1 commun avec B(x)

10

11

12

13

14

15

16

17

18

19

20

21

0
0
0
0
1

0
0
0
1
0

0
0
0
1
1

0
0
1
0
0

0
0
1
0
1

0
0
1
1
0

0
0
1
1
1

0
1
0
0
0

0
1
0
0
1

0
1
0
1
0

0
1
0
1
1

0
1
1
0
0

0
1
1
0
1

0
1
1
1
0

0
1
1
1
1

1
0
0
0
0

1
0
0
0
1

1
0
0
1
0

1
0
0
1
1

1
0
1
0
0

1
0
1
0
1

Le bit 4 se code en binaire : 00100, il sert donc calculer la


parit de :00101 (5), 00110 (6), 00111 (7),01100 (12), 01101
(13), 01110 (14), 01111 (15),10100 (20), 10101 (21)

Circuits logiques - JP David

12 avril 2016

33

12 avril 2016

2
0
0
0
1
0

1
3
0
0
0
1
1

4
0
0
1
0
0

0
5
0
0
1
0
1

0
6
0
0
1
1
0

1
7
0
0
1
1
1

0
1
0
0
0
0
1

1
2
0
0
0
1
0

0
1
0
0
0
0
1

1
3
0
0
0
1
1

4
0
0
1
0
0

0
5
0
0
1
0
1

0
6
0
0
1
1
0

1
2
0
0
0
1
0

1
3
0
0
0
1
1

1
4
0
0
1
0
0

0
5
0
0
1
0
1

0
1
0
0
0
0
1

1
2
0
0
0
1
0

1
3
0
0
0
1
1

1
4
0
0
1
0
0

0
1
0
0
0
0
1

1
2
0
0
0
1
0

1
3
0
0
0
1
1

1
4
0
0
1
0
0

12 avril 2016

8
0
1
0
0
0

0
9
0
1
0
0
1

0
10
0
1
0
1
0

1
11
0
1
0
1
1

1
12
0
1
1
0
0

1
13
0
1
1
0
1

1
14
0
1
1
1
0

0
15
0
1
1
1
1

1
7
0
0
1
1
1

8
0
1
0
0
0

0
9
0
1
0
0
1

0
10
0
1
0
1
0

1
11
0
1
0
1
1

1
12
0
1
1
0
0

1
13
0
1
1
0
1

1
14
0
1
1
1
0

0
6
0
0
1
1
0

1
7
0
0
1
1
1

8
0
1
0
0
0

0
9
0
1
0
0
1

0
10
0
1
0
1
0

1
11
0
1
0
1
1

1
12
0
1
1
0
0

1
13
0
1
1
0
1

0
5
0
0
1
0
1

0
6
0
0
1
1
0

1
7
0
0
1
1
1

0
8
0
1
0
0
0

0
9
0
1
0
0
1

0
10
0
1
0
1
0

1
11
0
1
0
1
1

1
12
0
1
1
0
0

0
5
0
0
1
0
1

0
6
0
0
1
1
0

1
7
0
0
1
1
1

0
8
0
1
0
0
0

0
9
0
1
0
0
1

0
10
0
1
0
1
0

1
11
0
1
0
1
1

1
12
0
1
1
0
0

(en parit paire de 1)

16
1
0
0
0
0

1
17
1
0
0
0
1

1
18
1
0
0
1
0

0
19
1
0
0
1
1

0
20
1
0
1
0
0

1
21
1
0
1
0
1

0
15
0
1
1
1
1

16
1
0
0
0
0

1
17
1
0
0
0
1

1
18
1
0
0
1
0

0
19
1
0
0
1
1

0
20
1
0
1
0
0

1
21
1
0
1
0
1

1
14
0
1
1
1
0

0
15
0
1
1
1
1

16
1
0
0
0
0

1
17
1
0
0
0
1

1
18
1
0
0
1
0

0
19
1
0
0
1
1

0
20
1
0
1
0
0

1
21
1
0
1
0
1

1
13
0
1
1
0
1

1
14
0
1
1
1
0

0
15
0
1
1
1
1

16
1
0
0
0
0

1
17
1
0
0
0
1

1
18
1
0
0
1
0

0
19
1
0
0
1
1

0
20
1
0
1
0
0

1
21
1
0
1
0
1

1
13
0
1
1
0
1

1
14
0
1
1
1
0

0
15
0
1
1
1
1

1
16
1
0
0
0
0

1
17
1
0
0
0
1

1
18
1
0
0
1
0

0
19
1
0
0
1
1

0
20
1
0
1
0
0

1
21
1
0
1
0
1

Circuits logiques - JP David

34

Circuits pour coder la parit

Le code de Hamming (suite)


0
1
0
0
0
0
1

Circuits logiques - JP David

35

La porte XOR est vraie si et seulement si un


nombre impair dentres sont vraies. Cest
donc la fois :
lmission : lencodeur de parit car elle
ajoute un bit vrai si et seulement si il y en
avait un nombre impair.
En rception : le dtecteur derreur de
parit.
12 avril 2016

Circuits logiques - JP David

36

Circuits pour coder la parit


(en parit paire de 1)

Les sommes de contrle


Pour verifier lintgrit dun fichier, on peut
envoyer un checksum
Le checksum est une function logicomathmatique de tous les bits du fichier
Exemple :

Canal bruit

La somme de tous les mots de 32 bits du fichier


Encodeur de parit
12 avril 2016

Remarque : le bit de parit est une sorte de


checksum (sur un bit)

Dtection derreur
Circuits logiques - JP David

37

12 avril 2016

Circuits logiques - JP David

38

Probabilit de faux ngatif


Pour un checksum de N bits, il y a une
chance sur 2N que le fichier soit diffrent si
le checksum est correct
Si on veut se protger de la modification
malveillante dun fichier, on utilise des
fonctions cryptographiques (one-way) :
H=F(x) : relativement facile calculer
x=F-1(H) : quasi impossible calculer

Exemple : MD5, SHA1-2-3


12 avril 2016

Circuits logiques - JP David

39

10

Vous aimerez peut-être aussi