Architecture de machines Codage des informations Cours 2000-2001
Codage de l ’information Association entre l ’information et sa représentation Exemple de codage : SOS et sa signification (Save Our Souls) SOS et son codage en Morse « … --- … »
Opérations sur les symboles binaires Principales opérations Algèbre de Boole Opérations sur les symboles binaires Tables de vérité d ’une opération Principales opérations OU (+) ET (x) NON (-) 0+0 = 0 0x0=0 0 = 1 0+1 = 1 0x1=0 1 = 0 1+0 = 1 1x0=0 1+1 = 1 1x1=1 Equivalents électroniques BIT : Binary digIT
Le binaire Définition du binaire Dans un ordinateur Utilisation de 2 symboles {0,1}, {V,F}, … Dans un ordinateur Toute information est binaire Représentation des lettres Représentation des nombres Codage des instructions du programme Avantages Simplicité de mise en œuvre (bistables) Utilisation de propriétés logiques
Principales unités utilisées Utilisation de puissances de 2 Octet (Byte) : 8 bits : 256 valeurs représentables Mot (Word): 32 bits : 4294967295 valeurs représentables Mot Double (DWord) 64 bits
La base 2 Utilisation de 0,1 pour représenter des nombres Addition en base 2 Similaire à l ’addition en base 10 Différence avec la logique 1+1 = 10 (0 et 1 de retenue) Si on se limite à n bits et que la retenue doit être propagée, on parle de dépassement de capacité
Conversion binaire/décimal/hexadécimal Décimal -> Binaire Conversion par divisions successives Binaire -> Décimal Puissances croissantes de droite à gauche 011000 = 0 x 20 + 0 x 21 + 0 x 22 + 1 x 23 + 1 x 24 + 0 x 25 Hexadécimal Groupement des bits par 4, utilisation des chiffres 0..9 + ABCDEF 193 = 11000001 = C1
Caractères et symboles ASCII 7 ou 8 bits pour représenter un caractère Exemple : A -> 01000001 Unicode 16 bits / caractère Premiers 256 caractères de la table ASCII
Le Décimal Codé Binaire (DCB) Représentation des chiffres sur 4 bits 2 -> 0010 5 -> 0101 Inefficace pour les opérations d ’addition et soustraction
Représentation des entiers (1) Utilisation d ’un nombre fixé de bits (n) Codage des nombres positifs sur n-1 bits Addition de deux nombres Bit de signe Le premier bit va indiquer si l ’entier est positif ou négatif Exemple : 65 sur 8 bits -65 sur 8 bits 01000001 11000001 Pb : adaptation de la soustraction
Représentation des entiers (2) Complément à 1 Codage des négatifs par inversion des bits du nombre positif correspondant Exemple : 65 sur 8 bits -65 sur 8 bits 01000001 10111110 Avantages Soustraction <=> Addition du complément 0 a 2 représentations (+0 et -0)
Représentation des entiers (3) Complément à 2 Complément à 1 + 1 Exemple : 65 sur 8 bits -65 sur 8 bits 01000001 10111111 Avantages Soustraction <=> Addition du complément 0 a 1 représentation, une valeur n ’existe pas
Représentation des nombres relatifs Conversion d ’un nombre relatif Choix de la précision sur un certain nombre de bits Virgule fixe Virgule flottante Simple/Double précision (1/8/23,1/11/52) Précision étendue (1/15/64)
Transmission de l ’information binaire Codes correcteurs et détecteurs Objectifs : retrouver des informations corrompues dans une séquence de bits idée : ajout de bits pour vérifier la validité des données Utilisations Transmission en réseau Stockage en mémoire
Parité/Double parité Ajout d ’un bit qui va représenter la parité des « 1 » Ex : 0010 -> 10010 Permet de détecter un nombre impair d ’erreurs Utilisé en transmission Extension du procédé en 2D pour la correction Utilisé pour le stockage sur bande Simple à mettre en œuvre
Hamming Ajout de k bits au message m Transmission de plus de données Transmission de m+k bits Chaque bit ki va contrôler plusieurs portions du message mi selon leur position Détection et correction d ’une erreur Recherche de la redondance maximale Transmission de plus de données Ex: 4 bits à transmettre m4 m3 m2 k3 m1 k2 k1 envoi de 7 bits
CRC (Cyclic Redundancy Check) Utilisation de d ’opérations sur les polynômes 1 message <-> coefficients d ’un polynôme binaire M(x) On utilise un polynôme G(x) par lequel on va diviser M(x)xr (r degré de G(x)). Le reste est la checksum R(x) On transmet T(x) = M(x)xr-R(x) Si T(x)/G(x) <> 0 alors il y a eu erreur Polynômes G(x) utilisés : CRC-12 : x12+x11+x3+x2+x+1 CRC-CCITT : x16+x12+x5+1
Algorithmes de compression Encodage sans perte Codage de huffmann arbre binaire des occurences Code LZW Code RLE Encodages spécialisés avec perte Ondelettes JPEG
Algorithmes de cryptage Systèmes basés sur des clefs qui permettent de décrypter le message Clef publique : permet le cryptage, clef secrète pour le décryptage Clef privée : permet le cryptage et le décryptage Diverses méthodes DES : Permutations de blocs de 64 bits RSA : Système à clef asymétrique basé sur l ’utilisation de nombres premiers codés sur 512/1024 ou 2048 bits PGP (Pretty Good Privacy) Clef privée générée aléatoirement encodée en RSA à l ’aide d ’une clef publique