1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des Systèmes Informatiques Jean-Jacques Girardot Deuxième séance
2 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Notation hexadécimale : 0x Représentation courte pour des suites de bits 16 “digits” ABCDEF Correspondance : hexa binaire dec. hexa binaire dec A B C D E F
3 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax En langage C main() { unsigned char a, b; a = 0x33; b = 0x09; printf(“a=0x%02x=%3d\n”, a, a); printf(“b=0x%02x=%3d\n”, b, b); } a=0x33= 51 b=0x09= 9
4 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Programmation des ordinateurs Cartes perforées : Machine de Babbage Première programmeuse : Ada Lovelace Commutateurs : l’ENIAC Machine de von Neumann Programme partageant la mémoire avec les données Langages de programmation Langage machine, ou assembleur Langages de haut niveau [Fortran, 1957] Systèmes d’exploitation
5 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Architecture de Von Neumann : Que contient la mémoire ? Morceaux de programmes Instructions Données Entiers, flottants, caractères, mots, etc. Cours 3 Cours 2 BUS UC MEM
6 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cycle de Von Neumann Chargement de la “prochaine” instruction désignée par le “registre instruction” MAJ compteur instructions Décodage instruction Localisation, chargement éventuel des données depuis la mémoire Exécution de l’instruction Rangement éventuel des résultats Retour à l’étape 1
7 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Un exemple EIP (instruction pointer) désigne l’adresse 0x1020 La CPU charge le mot situé à cette adresse : 0x544F La CPU m.à.j. EIP : 0x1022 La CPU décode l’instruction ADD AX,2 Ajouter 2 au contenu du registre AX La CPU exécute cette instruction Après exécution, AX vaut 0x116 0x544F 0x1020 EIP 0x114 AX ALU Mémoire CPU
8 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Mémoire : tableau de cellules adresse 0 adresse 1020 adresse 1021 adresse 1022 adresse N-1 une cellule la cellule suivante Aujourd’hui : une cellule = un octet Une mémoire de N cellules
9 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Le contenu d’une cellule 0xB2 Ce n’est pas un nombre Ce n’est pas un caractère L’interprétation du contenu d’une cellule est laissée à la discrétion du programme qui l’utilise...
10 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Comment assembler deux cellules de 8 bits pour former un mot de 16 bits ? x54 0x4F 0xBA 0x x544F 0xBA x4F54 0x01BA “Grand Indien -Big Endian” Motorola, MIPS... “Petit Indien - Little Endian” Intel la numérotation est toujours en octets
11 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Comment représenter un bit ? Quelles opérations leur appliquer ? Technologie des ordinateurs Relais électromagnétiques Tubes à vide Transistors Circuits intégrés LSI, VLSI... Réalisation physique des opérations
12 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Logique : NOT, NON Symbole : ou A Négation logique Notation C : ~A A A
13 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax En langage C main() { unsigned char a, b; a = 0x33; b = ~a; printf(“a=0x%02x, b=0x%02x\n”, a, b); } a=0x33, b=0xCC
14 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Logique : OR, OU Symbole : ou + Disjonction logique Z A B Vrai ssi au moins l’un des A ou B est vrai En C : A|B A B A B
15 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax En langage C a=0x33, b=0x55, c=0x77 main() { unsigned char a, b, c; a = 0x33; b = 0x55; c = a|b; printf(“a=0x%02x, b=0x%02x, c=0x%02x\n”, a, b, c); }
16 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Logique : AND, ET Symbole : ou Conjonction logique Z A B Vrai ssi les deux valeurs A et B sont vraies. En C : A&B A B A B
17 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax En langage C a=0x33, b=0x55, c=0x11 main() { unsigned char a, b, c; a = 0x33; b = 0x55; c = a&b; printf(“a=0x%02x, b=0x%02x, c=0x%02x\n”, a, b, c); }
18 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Logique : NAND, NON-ET Symbole : Z A B Vrai ssi l’une des deux valeurs A ou B est fausse En C : ~(A&B) ou encore (~A)|(~B) A B A B
19 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax En langage C a=0x33, b=0x55, c=0xee main() { unsigned char a, b, c; a = 0x33; b = 0x55; c = ~(a&b); printf(“a=0x%02x, b=0x%02x, c=0x%02x\n”, a, b, c); }
20 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Porte NAND - CMOS
21 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Logique : NOR, NON-OU Symbole : Z A B Vrai ssi les deux valeurs A et B sont fausses En C : ~(A|B) ou encore (~A)&(~B) A B A B
22 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax En langage C a=0x33, b=0x55, c=0x88 main() { unsigned char a, b, c; a = 0x33; b = 0x55; c = ~(a|b); printf(“a=0x%02x, b=0x%02x, c=0x%02x\n”, a, b, c); }
23 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Que fait ce circuit ? A B D E C
24 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Additionner deux bits Circuit avec : deux entrées, A et B deux sorties d : digit binaire r : retenue Table de vérité d : A ou-exclusif B r : A et B demi additionneur A B d r A B r d
25 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Une réalisation possible A B d r
26 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Additionneur 2 bits A0 A1 B0 B1 d0 r d1 Un additionneur 2 bits peut se réaliser avec 4 demi-additionneurs
27 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Représenter un bit ? La bascule RS dans sa version simple, deux portes NAND......et dans sa version élaborée...
28 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Représentations… Une représentation est une fonction (parfois même seulement une relation) dont la source est l’espace des objets à représenter, et le but un ensemble de mots de n bits. Exemple : Source : N, ensemble des entiers naturels But : {0,1} 8, ensemble des octets Relation : représentation en binaire pur sur 8 bits.
29 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Autre exemple Source : l’ensemble des caractères nécessaires à l’écriture de l’américain But : {0,1} 7, ensemble des mots de 7 bits Relation : représentation ASCII
30 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax L’Addition dans {0,1} n La retenue ?
31 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Représentation en binaire pur C’est une représentation canonique Si l’ensemble d’arrivée est {0,1} n, c’est une bijection de l’intervalle [0, 2 n -1] dans {0,1} n Exemples :
32 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Quelques égalités 178 = = = -78 = invalide 41 = = = = = = = -37 = invalide
33 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Représentation en complément à deux Si l’ensemble d’arrivée est {0,1} n, c’est une bijection de l’intervalle [-2 n-1, 2 n-1 -1] dans {0,1} n Exemples :
34 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Pour trouver l’opposé (ou complément à deux) d’un mot de n bits, le processeur : complémente tous les bits, ajoute 1 L’opposé dans {0,1} n
35 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Quelques égalités 178 = = invalide = -78 = = = = = = = invalide = -37 =
36 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax L’addition de la machine Indicateurs : Carry : retenue d’une addition en binaire pur Overflow : indicateur de dépassement de capacité en complément à deux ex : 0xb2 [178/-78]+ 0x74 [116] = 0x26 [38/294]
37 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Représentation en complément à un L’ensemble d’arrivée est {0,1} n L’intervalle de départ [-(2 n-1 -1), 2 n-1 -1] Exemples :
38 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Pour trouver complément à un d’un mot de n bits, le processeur : complémente tous les bits ex : - 0x01 = 0xfe - 0x34 = 0xcb note : 0 admet les deux codifications 0x00 et 0xff L’opposé dans {0,1} n
39 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Autres types de codage Codage en signe + valeur absolue -7 = ici le 1 er bit indique le signe. Codage par excès on ajoute une constante (par ex. 128 pour un octet) au nombre avant de le représenter en binaire pur Codage des nombres flottants représentation par signe + mantisse + exposant Codage des caractères sur 16 bits norme internationale ; utilisée dans le langage Java
40 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Interprétation des représentations en C Octet : 8 bits nombre non signé [0, 255] unsigned char nombre signé [-128, 127] signed char caractère du code ASCII char Mot de 16 bits nombre non signé [0, 65536] unsigned short nombre signé [-32768, 32767] signed short Mot de 32 bits nombre non signé [0, ] unsigned long nombre signé [ , ] signed long Mot : int l’un des char, short ou long sizeof(char)≤sizeof(short)≤sizeof(long)