Architecture de machines Codage des informations Cours 2003-2004
Codage de l’information Association entre l ’information et sa représentation Exemple de codage : Feu rouge et sa signification (STOP) SOS et son codage en Morse « … --- … » Permet de: Traiter l’information Transmettre et stocker Comprimer de l’information Crypter l’information
Le binaire Définition du binaire Dans un ordinateur Utilisation de 2 symboles {0,1}, {V,F}, … Avec n positions on peut coder 2n valeurs différentes Dans un ordinateur Toute information est binaire Représentation des lettres, nombre, images, sons, … Codage des instructions du programme Avantage: simplicité de mise en œuvre du point de vue électrique Bistables (composants à deux états) Utilisation de propriétés logiques Inconvénients Besoin de transformer la réalité en une suite binaire Difficulté à retrouver une information sans connaître le code
Codage en informatique Utilisation d’informations électriques Une information une valeur électrique Le codage est traduit par des changements Niveau Fréquence Changements de phase Valence de l’information: niveaux possibles Pour le traitement 2 niveaux => Binaire Pour les transmissions n niveaux avec n puissance de 2 La valence représente le nombre d’états élémentaires transmissibles par unité de temps
Différents niveaux de codage Bas niveau Encodage du binaire Transmissions Cryptage Compression Niveau élémentaire Représentation de données Entiers, lettres, nombres réels Niveau de structures complexes Codage des informations dans les fichiers Ex: codage des images Utilise et encapsule le niveau précédent Ex: Fichier texte ou document Word
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 Toute opération est décomposable en circuits élémentaires
La base 2 (ou plutôt la base n) Utilisation du binaire pour représenter des nombres 2 chiffres 0 et 1 Addition en base 2 Similaire à l ’addition en base 10 Différence avec la logique 1+1 = 10 (0 et 1 de retenue) et non 0 ! 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
Principales unités utilisées en informatique 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 : 18 milliards de milliards de valeurs Ces puissances sont choisies car elles permettent de représenter toute information accessible. Un information Une puissance de 2 bits Codage sur un octet, un mot, …
Symboles ASCII ASCII Etendu Unicode Texte Suite de symboles 7 bits pour représenter un caractère Exemple : A 01000001 ASCII Etendu 8 bits/caractère Multiples tables de conversion Unicode 16 bits / caractère Premiers 256 caractères de la table ASCII Regroupements par familles Texte Suite de symboles
Le Décimal Codé Binaire (DCB) Représentation des chiffres sur 4 bits 2 -> 0010 5 -> 0101 Pour les nombres : 10 -> 0001 0000 Inefficace pour les opérations d ’addition et soustraction 0110 (6) + 0100 (5) != 1010 (pas valide)
Représentation des entiers (1) Utilisation d ’un nombre fixé de bits (n) En général n = 2k (k=8,16,32,64) 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 16 bits -65 sur 16 bits 0000000001000001C1 1111111110111110C1 Avantages Soustraction <=> Addition du complément 0 a 2 représentations Exemple sur 8 bits +0 : 00000000 -0 : 11111111
Représentation des entiers (3) Complément à 2: (Complément à 1)+1 Exemple : 65 sur 8 bits -65 sur 8 bits 01000001C2 10111111C2 Avantages/Inconvénients Soustraction <=> Addition du complément 0 a une représentation Une valeur n ’existe pas Dans toutes ces représentations les nombres positifs sont les mêmes !
Représentation des nombres relatifs Conversion d ’un nombre relatif Choix de la précision sur un certain nombre de bits Détermine la plus petite différence entre deux valeurs Virgule fixe Puissances négatives de 2 Virgule flottante : ieee 754 Simple/Double précision (1/8/23,1/11/52) Précision étendue (1/15/64)
Encodage d’un signal continu Analogique = Signal continu Digital = Signal composé de points Caractéristiques d’un signal digital Fréquence d’échantillonnage Résolution Problèmes de reconstruction
Codage des images Une image matrice de pixels Caractéristiques Taille et résolution Nombre de couleurs Transformation en analogique pour affichage
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 (réseaux, bus, …) Stockage en mémoire (Ex: mémoire ECC)
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 Très utilisé Transmissions Détection simple Extension du procédé en 2D pour la correction Utilisé pour le stockage sur bande Simple à mettre en œuvre
Code de Hamming Ajout de k bits au message m Transmission de m+k bits Chaque bit ki va contrôler plusieurs portions du message mi selon sa 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 en réalité
CRC (Cyclic Redundancy Check) Utilisation de d ’opérations sur les polynômes 1 message coefficients d ’un polynôme binaire M(x) 1001= 1*x3+0 *x2+0 *x1+1*x0 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 Utilisé pour les stockages sur disque
Algorithmes de compression Encodage sans perte Codage de Huffmann arbre binaire des occurrences Code LZW : ajout de bits pour représenter des mots Code RLE : Nombre de mots Encodages spécialisés avec perte Ondelettes JPEG mp3
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