Post on 15-Jul-2016
description
Un peu d'histoire1643 (Pascal)
– Premières machines à calculer – Peu de progrès jusqu'au XX siècle
• 1940 (ENIAC 1943-46 : 30 t, 160m2)– Technologie = Tubes à vide (18.000) et commutateurs (6.000)
• 1958 La révolution du transistor– Ex: CDC 1604 (25.000 transistors)
• 1965 Les mini-ordinateurs (IBM System/360?)– Circuit Intégré = dizaines de transistors sur une puce
• 1975 Les micro-ordinateurs– VLSI (Very Large Scale Integration) = dizaines de milliers de
transistors sur une puce– Ordinateur = outil de bureau (PC=Personnal Computer)
1ère génération (~1950)
Un peu d'histoire- Ordinateur
Ensemble de tubes (~20 000) Chargement manuel par le programmeur à l’aide d’interrupteurs L’utilisateur exécute son programme immédiatement après le chargement Pas de SE - Inconvénients
Très encombrant Très lent Très peu fiable
2ème génération Ordinateurs “mainframes”
Un peu d'histoire
Traitement par lots (cartes perforées) L’enchainement des lots est décrit par une carte perforée spéciale (carte de
contrôle) Le SE se limite à un moniteur résident qui enchaine les lots - Inconvénients
Lent Non interactif
Mono-programmation
Un peu d'histoire
E/S tamponnées - Utilisation d’unités d‘échange (UE) capables :
de fonctionner simultanément avec l’UC (asynchronisme) de transférer des tampons = blocs d’octets Exécution pgm i // lecture pgm i+1
Un peu d'histoire Les cartes sont lues par l’UE et stockées dans des tampons (buffers) d’entrée L’UC lit les données dans le tampon d’entrée et produit le résultat dans un tampon
de sortie
Contraintes : Il faut gérer la synchronisation d’accès aux tampons
Ecrire (tampon) => tampon vide Le périphérique peut être particulièrement lent La place mémoire utilisée peut être grande
Un peu d'histoire
E/S Spoolées
Tampons supplémentaires en mémoire secondaire (files d’attente de données à lire ou à écrire sur un périphérique lent)
SPOOL = simultaneous peripheral operations on-line Spooling d'impression : documents à imprimer chargés dans un tampon en
mémoire secondaire, "aspirés" par l'imprimante selon sa propre vitesse
3ème génération (1960/1970) - Systèmes multi-programmés
Un peu d'histoire
Plusieurs tâches en mémoire simultanément Multiplexage du processeur entre les tâches Perte du processeur lors des E/S - Avantages
Meilleure utilisation de l’UC
Un peu d'histoire - Inconvénients
Complexité Taille de mémoire grande Partage et protection des ressources
Multi-programmation
Un peu d'histoire
Multi-programmation et protection
Éviter qu’une tâche puisse lire / écrire dans la zone mémoire affectée à une autre tâche
Éviter qu’une tâche puisse manipuler la zone réservée au système autrement que par les appels système
Éviter qu’une tâche puisse lire / écrire des données d’E/S d’une autre tâche => Complexifie la gestion des ressources (mémoire, E/S, …)
3ème génération (suite) - Systèmes à temps partagé (1970)
Partage du temps processeur entre les tâches
Un peu d'histoire Quantum de temps
Tâches en mémoire ou “swappée” sur disque Plus grand nombre de tâches Une mémoire plus grande allouée à chaque tâche
- Avantages
Temps de réponse corrects pour tâches courtes, même en présence de tâches longues et non interactives
- Inconvénients
Complexité L’utilisation du processeur peut être moins bonne
Systèmes mono/multiprogrammés et temps partagé
Un peu d'histoire
4ème génération (après 1970)
Ordinateurs personnels Architectures spécialisées Systèmes répartis
Ordinateurs personnels Initialement
Un peu d'histoire Mono-tâches (MS/DOS, Windows3/11) Dédiés à un utilisateur Pas de protection / sécurité Très interactifs Très conviviaux
Evolution Multi-tâches (MacIntosh, Windows NT/2000/XP, Unix, Linux) Multi-utilisateurs Connections réseaux (exploitation dans les systèmes répartis)
Systèmes parallèles multiprocesseurs
SMP (Symetric Multi Processeurs) Systèmes généralistes (serveurs BD, Web, SI, NFS, …) Processeurs standards Partage total de la mémoire
Machines de calcul parallèles Architectures spécialisées
Processeurs spécifiques pour le calcul vectoriel
Un peu d'histoire Réseaux spécialisés Partage total ou partiel de la mémoire (bancs)
Systèmes clustérisés
Plusieurs noeuds (= machines) partageant un disque (share disk) ou bien ne partageant rien (share nothing)
Un peu d'histoire Un nœud est également appelé un serveur
Connectés par un réseau spécialisé (SCI, Ethernet, …) Invention des réseaux locaux à haut débit (Local Area Network) Échanges rapides de données de grandes taille
3 caractéristiques : Montée en charge Passage à l’échelle (extensibilité / scalability) Haute disponibilité (serveurs back-up)
Systèmes à Haute Disponibilité
Haute disponibilité Temps d’indisponibilité < quelques minutes par an Pas de transparence à la panne (vue par les clients) Relancement automatique Serveurs back-up (prennent le relais en cas de panne)
Systèmes Clustérisés
Un peu d'histoire
Systèmes Distribués / Répartis
Distribution de l’exécution sur un ensemble de serveurs distants En général, pas de mémoire / disque partagé Pas de matériel spécifique Pas d’état global
Applications multi-usagers / multi-localisations
Un peu d'histoire Télé-conférence, commerce électronique, SI, … Évolution dynamique des serveurs Données distribuées et partagées
Couverture du terme système réparti
Englobe maintenant : Architectures distribuées fortement couplées :
Systèmes parallèles multi-processeurs Architectures clusters
Architectures distribuées faiblement couplées Grilles de calcul Grilles d'entreprises Architectures pair à pair Applications Web
Motivations pour les systèmes répartis
Un peu d'histoire
Partage de ressources sur le réseau : Processeur, mémoire, serveurs Code mobile Données mobiles
Potentiel : Disponibilité Montée en charge Passage à l’échelle
Systèmes Temps-réel
Contraintes temporelles Temps d'exécution bornés
Utilisés dans des situations spécifiques systèmes d’imagerie médicale, systèmes de contrôle industriel, robotique,
Un peu d'histoire …
Hard real-time systems Peu ou pas de mémoire secondaire Pas de temps-partagé Temps de commutation très court SE complètement spécifique
Soft real-time Systems Utilisés dans les applications multimédia, réalité virtuelle Contraintes de temps plus souples Gestion de priorités de tâches Gestion spécifique de la mémoire
Systèmes « handled »
Personal Digital Assistants (PDAs) Téléphones cellulaires Systèmes d’exploitation spécifiques Contraintes :
Mémoire limitée
Un peu d'histoire Processeurs lents Petits écrans Faible consommation d’énergie
http://mrproof.blogspot.com/search/label/R%C3%A9seaux%20Informatique
Architecture de base
Architecture des Ordinateurs et Systèmes d'Exploitation
• Idée de Von Neuman (1945), peu de changement depuis :
Unité de Commande = bus
Mémoire
Unité de TraitementEntrées
Sorties
Architecture des Ordinateurs et Systèmes d'Exploitation
– Mémoire = stocke les informations et les programmes– UC = cherche les instructions en mémoire, les reconnait et indique à l'UT ce qu'elle doit effectuer– UT = assure les opérations élémentaires que demande l'UC (opérations logiques, arithmétiques, ...)– Bus = transfère les informations
Architecture des Ordinateurs et Systèmes d'Exploitation
Représentation de l'Information
• Une information peut être représentée de plusieurs façons :ex : le chiffre quatre : 4 100 IV
• Représentation des nombresReprésentation usuelle = base 10 symboles = { 0,1,2,3,...9 }
1999 = 1 * 103 + 9 * 102 + 9 * 101 + 9
Représentations courantes en Informatique = bases 2, 8, 16. base 2 = binaire (représentation interne) un bit : { 0,1 } base 8 = octal { 0,1,2,3,...7 } base 16 = héxadécimal { 0,1,2,3,...9,A,B,C,D,E,F }
NumérationNumération enen basebase bb
Architecture des Ordinateurs et Systèmes d'Exploitation
Représentation et codage des données
Numérotation romaine
MCMXCIX : M vaut toujours 1000, C vaut 100…
Numérotation arabe : représentation positionnelle
la rang de chaque chiffre indique son poids dans 1999 le 9 le plus à droite vaut 9, le deuxième 90… la valeur d’un chiffre dépend de sa position
Représentations courantes des nombres
plusieurs bases : XXXb indique que le nombre XXX est écrit en base b représentation usuelle : base 10 représentations courantes en informatique : bases 2 (binaire, interne), 8 (octal) et 16 (hexadécimal)
NumérationNumération enen basebase 2,2, 8,8, 1010 etet 1616
Architecture des Ordinateurs et Systèmes d'Exploitation
Bases ai ∈ {Chiffres}b = 2 ou Binaire 0,1b = 8 ou Octal 0,1,2,3,4,5,6,7
b = 10 ou Décimal 0,1,2,3,4,5,6,7,8,9b = 16 ou Hexadécimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
En base b on utilise b chiffres
x = anan-1…a1a0 a0 est le chiffre des unités
Bases Exemples2 ou Binaire 10012 = 910
8 ou Octal 1428 = 9810
10 ou Décimal 12810
16 ou Hexadécimal E2A116 = 5801710
Architecture des Ordinateurs et Systèmes d'Exploitation
NumérationNumération :: exemplesexemples
Pour les bases supérieures à 10 on peut également introduire des symboles séparateurs :
système sexagésimal : longitude = 2°20’14’’
Exo1
ChangementChangement dede basebase :: bb àà 1010
Architecture des Ordinateurs et Systèmes d'Exploitation
N(10) = d0.b0 + … + di.bi +… + dn.bn
i : rang bi : poids du chiffre le chiffre le plus à gauche est le chiffre de poids fort, celui le plus à droite le chiffre de poids faible
Exemple :
143(5) = 3*50 + 4*51 + 1*52 = 3+20+25 = 48(10)
AB(16) = 11*160 + 10*161 = 11+160 = 171(10)
1001(2) = 1*20 + 0*21 + 0*22 + 1*23 = 1+0+0+8 = 9(10)
le poids des chiffres en binaire et 1, 2, 4, 8, 16, 32, 64…
IntervalleIntervalle d’und’un nombrenombre dede nn chiffreschiffres
Architecture des Ordinateurs et Systèmes d'Exploitation
Avec n chiffres on peut coder en base b, la valeur maximale suivante (cas où tous les chiffres sont à la valeur maximale soit b-1)
Nmax(10) = (b-1).b0 + … + (b-1).bi + … + (b-1).b(n-1)
= (b-1) . (1 + … + bi + … + b(n-1))= b . (1 + … + bi + … + b(n-1)) - (1 + … + bi + … + b(n-1))= b + … + bi + … + bn – (1 + … + bi + … + b(n-1) )= bn – 1
Avec n chiffres on donc coder bn valeurs en base b
Dans un ordinateur on code les nombres sur 8, 16 ou 32 bits
8 bits : Nmax = 28 – 1 = 255 on peut coder 256 valeurs 16 bits : Nmax = 65 535 (65 000 couleurs…) 32 bit : Nmax = 4 294 967 296
Kilo,Kilo, Méga,Méga, TeraTera
Architecture des Ordinateurs et Systèmes d'Exploitation
On utilise souvent en informatique Kilo, Mega at Tera.
traditionnellement un Kilo vaut 1000 : 1Km = 1000m en base 2, 1000 n’est pas une puissance de 2, on prend la valeur immédiatement supérieure
1 Kilo = 210 = 1024 1 Mega = 220 = 1 048 576 1 Tera = 230 = 1 073 741 824
Un octet est un regroupement de 8 bits
1 Ko = 1024 octets 1 Mo = 1024 Ko 1 Go = 1024 Mo
ChangementChangement dede basebase :: 1010 àà bb
Architecture des Ordinateurs et Systèmes d'Exploitation
Algorithme des divisions successives
on divise le nombre par la base puis le quotient par la base ainsi de suite jusqu’à obtention d’un quotient nul la suite des restes correspond aux chiffres dans la base visée on obtient en premier le bit de poids faible et en dernier le bit de poids fort
Pour convertir un nombre d’une base b1 vers une base b2, il suffit de convertir le nombre de la base b1 en base 10, puis ce nombre en base 10 en base b2
BaseBase 1010 àà 22 etet 1616 :: exemplesexemples
Architecture des Ordinateurs et Systèmes d'Exploitation
conversion de 11(10) en base 2
11 2
conversion de 1023(10) en base 16
1023 16
1
ResteBit de poids 1
5 2
1 2 2
0 1
Bit de
15
Reste digit de poids
1Reste
digit de poids 16
63 16
15 3 16
3 0
Reste
11(10) = 1 0 1 1 (2)
Vérification :
poids 8
1023(10) = 3FF (16)
Vérification :
digit de poids256
1*1 + 1*2 + 0*4 + 1*8 = 11 3*16² + 15*16 + 15*1 = 1023
ParticularitéParticularité :: basesbases 2,2, 88 etet 1616
Architecture des Ordinateurs et Systèmes d'Exploitation
Bases correspondant à des puissances de 2 : conversions très faciles
base 8 : découpage par blocs de 3 chiffres
001 010 011 101 1 2 3 5 = 12358
base 16 : découpage par blocs de 4 chiffres
0010 1001 1101 2 9 D = 29D16
Pour simplifier la notation binaire on utilise en informatique la notation hexadécimale
simplification de la lecture et écriture des adresses mémoires…
OpérationsOpérations arithmétiquesarithmétiques
1 255+ 1 + 2551 1 0 retenu
1 1 0 510
F F 255 1 0 1+ F F + 255 1 0 1
Architecture des Ordinateurs et Systèmes d'Exploitation
Mêmes principes que ceux utilisés en base 10
1 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 e 1 0 1
1 1 1 1 1 1 A CX
ORR1
I0G1ER1 0 1
1 1 0 1 F E
retenue
510 1 1 0 0 1
Dans l’ordinateur, les opérations sont faites en base 2
Il existe aussi des opérations logiques (Cours n°3)
TypesTypes d’informationsd’informations
Architecture des Ordinateurs et Systèmes d'Exploitation
Les nombres sont codés en binaire
Pour les nombres fractionnaires
on écrit la partie entière en binaire on garde la virgule la partie décimale se décompose en puissances négatives de 2
Exemple : 0,7510
0,75 * 2 = 1,5 (on garde 1 reste 0,5) 0,5 * 2 = 1 (on garde 1 reste 0 : terminé)
0,7510 = 0,112 = 1 * 2-1 + 1 * 2-2 = ½ + ¼
Les types d’informations directement traitées par un processeurs sont :
TypesTypes d’informationsd’informations
Architecture des Ordinateurs et Systèmes d'Exploitation
Les données
entiers : entiers naturels et entiers relatifs flottants : décrivent les réels, simple et double précision caractères le codage de ces trois types est défini par des standards(normes spécifiées par des organisations internationales)
Les instructions
leur codage est spécifique d’un processeur
L’informationL’information
Architecture des Ordinateurs et Systèmes d'Exploitation
Dans un ordinateur, l’information est numérisée (digitale)
L’information est la connaissance d’un état parmi un nombre fini d’états possibles Une information non numérisée est une information analogique : une grandeur physique continue (tension ou courant)
L’unité de mesure de l’information est le bit
un bit est la quantité d’information liée à la connaissance d’un état parmi deux un bit d’information peut être représenté par un digit binaire prenant les valeurs 0 ou 1 rappel : avec n bits, on peut représenter 2n états
CodageCodage :: dépassementdépassement dede capacitécapacité
11
01
10
00
10
00
10
00
0 1 1 0 1 0 1 01
Architecture des Ordinateurs et Systèmes d'Exploitation
Codage = représentation avec un nombre limité de bits
Problème pour le dépassement de capacité
Exemple pour les entiers naturels
Représentation Codage sur 8 bits1 0 1 0 1 0 1 0
+ 1 1 0 0 0 0 0 0
1 0 1 1 0 1 0 1 0
170+ 192 +
362
362 est trop petit pour être codé sur 8 bits
CodageCodage desdes entiersentiers naturelsnaturels
Architecture des Ordinateurs et Systèmes d'Exploitation
Entiers naturels (unsigned en C) codés sur un nombre d’octets fixé (un octet = 8 bits)
généralement 1, 2 (short en C) ou 4 (int ou long en C)
Sur un octet on peut coder les nombres de 0 à 255 (28
possibilités) : attentions aux dépassements (overflow)
deux possibilités : ignorer l’overflow (tourne) ou provoquer l’exécution d’une routine particulière
Nombre représenté en base 2, les bits sont rangés dansdes cellules correspondant à leur poids, on complète à gauche par des 0
128 64 32 16 8 4 2 1
0 0 0 0 1 1 0 1
CodageCodage desdes entiersentiers relatifsrelatifs
Architecture des Ordinateurs et Systèmes d'Exploitation
Problème : coder le signe du nombre
Idée simple : introduire un bit de signe (0 : + ; 1 : -)
sur 4 bits : 0110 = 6 et 1110 = - 6 sur n bits on code [-(2n-1-1),2n-1-1] : car on utilise n-1 bits pour coder le nombre
Limitations de ce type de solution
deux représentations pour 0 : 0000 ou 1000 addition difficile alors que c’est l’opération la plus utilisée (extraction du signe, test pour faire une addition ou une soustraction, calcul du nouveau signe)
Pour simplifier l’addition on représente les entiers négatifs en complément à 2
ComplémentComplément àà deuxdeux
Architecture des Ordinateurs et Systèmes d'Exploitation
La représentation de –x est obtenue par le complément à deux de x
on code en binaire sa valeur absolue on complémente (inverse) tous les bits on ajoute 1
Exemple : pour x = 22 sur 1 octet
X = 0 0 0 1 0 1 1 0 : on complémente 1 1 1 0 1 0 0 1 : on ajoute 1 -X = 1 1 1 0 1 0 1 0
Le premier bit d’un nombre indique son signe, s’il est négatif, son complément permet de retrouver sa valeur absolue
ComplémentComplément àà 22 etet entiersentiers relatifsrelatifs
Architecture des Ordinateurs et Systèmes d'Exploitation
En machine les nombres négatifs sont directement codés en complément
soustraction : on complémente la deuxième opérande et on effectue une addition addition et soustraction : un seul circuit réalisant l’addition on ne considère pas le signe des nombres
Représentation non complètement symétrique : le plus petit nombre n’a pas d’opposé : sur n bits
le plus grand entier positif est 2n-1-1 le plus petit entier négatif est - 2n-1
EntiersEntiers relatifsrelatifs :: exempleexemple
Architecture des Ordinateurs et Systèmes d'Exploitation
111 -1110 -2
101 -3
000
0
-4100
1 001
2 010
3 011
Algorithme d’addition traditionnel avec les deux méthodes1
0 0 0 0 0 0 0 1+ 1 0 0 0 0 0 0 1
1 0 0 0 0 0 1 0+1 –1 = -2 la méthode
simple du bit de signe ne fonctionne pas
retenue0 0 0 0 0 0 0 1
+ 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0+1 –1 = 0 la méthode du
complément à deux fonctionne
CodageCodage desdes réelsréels :: virgulevirgule flottanteflottante
Architecture des Ordinateurs et Systèmes d'Exploitation
Par exemple codifié 3,25 qui s’écrit (11,01)2
première machine = virgule fixe : nombre séparé en deux parties(chiffres avant et après la virgule)
Depuis les années soixante : virgule flottante
flottant stocké sous la forme M * BE
M : Mantisse ; B : Base ; E : Exposant exemple : 123 . 103 = 123 000
Représentation IEEE 754 (signe 1 bit, exposant et mantisse sur32 ou 64 bits pour simple et double précision)
SM : signe de la mantisse : 1 bit Eb : exposant biaisé : 8 ou 11 bits M : Mantisse : 23 ou 52 bits SM Eb M
MantisseMantisse etet exposantexposant
Architecture des Ordinateurs et Systèmes d'Exploitation
Signe : bit de poids fort (0 = + ; 1 = -)
Exposant
placé avant la mantisse pour simplifier les comparaisons (pour ceci il ne doit pas être représenté en complément à deux : 2-1 > 2) sans signe mais biaisé de 127 (simple précision) :
Eb = 0 ⇒ E = 0 – 127 = -127 Eb = 255 ⇒ E = 255 – 127 = 128
les exposants 128 (erreur) et 0 (nb dénormalisé) sont interdits
Mantisse
normalisée : bit de poids fort n’est pas 0 et un seul chiffre avant la virgule ex : 11,01 = 1,101 * 21
ÉvaluationÉvaluation d’und’un réelréel
2Architecture des Ordinateurs et Systèmes d'Exploitation
SM Eb M
f1f2…fn
Comme le bit de poids fort de la mantisse est nécessairement 1 :on ne l’indique pas (gaspillage de place), il est implicite
Mantisse
partie fractionnaire = f1f2 …fn ⇒ m = 1,f1f2…fn
nombre x = (-1)SM * 1,M * 2Eb-127
Exemple
x = (-2,5)10 = -1,01*21 (SM = 1 ; Eb = 1000 0000 ; M = 01)
OpérationsOpérations
Architecture des Ordinateurs et Systèmes d'Exploitation
Additions et soustractions
il faut que les exposants aient la même valeur exemple : 3 * 103 + 9,98 * 105 = on dénormalise : 3 * 103 = 0,03 * 105
on additionne les mantisses : 0,03 + 9,98 = 10,01 on normalise : 10,01 * 105 = 1,001 * 106
Multiplications et divisions
on additionne ou on soustrait les exposants on multiplie les mantisses on normalise le résultat
Nombre infini de valeurs dans un intervalle : codées avec un nombre fini de bits ⇒ problème de précision (arrondi)
CodageCodage desdes caractèrescaractères
Architecture des Ordinateurs et Systèmes d'Exploitation
Caractères : symboles alphanumériques (& , . A 5 …)
données non numériques (l’addition n’a pas de sens) comparaison ou tri utile table de correspondance entre les nombres et les caractères
Code ASCII (American Standard Code for Information Interchange)
7 bits pour représenter les caractères (ASCII étendu = 8 bits) 0 (00) à 31 (1F) : caractères spéciaux : sauts, bips… 48 à 57 : chiffres dans l’ordre (valeur = 4 bits de poids faible) 65 à 90 les majuscules et 97 à 122 les minuscules (on modifie le5ème bit pour passer des majuscules aux minuscules : +32)…
En machine on accède aux mots par octet
ASCII étendu : caractères accentués… Compatibilité : nécessaire d’expliciter le codage utilisé : iso-latin-1
Architecture des Ordinateurs et Systèmes Ph. Leray
CodeCode ASCIIASCIIUn peu d'Arithmétique binaire
• Table d’addition :0 0 1 1
+ 0 + 1 + 0 + 1Somme 0 1 1 0Retenue 0 0 0 1
• Addition de 2 nombres binaires :
Ret : 11110100101
+ 10111
Architecture des Ordinateurs et Systèmes Ph. Leray
10111100
Architecture des Ordinateurs et Systèmes d'Exploitation
Représentation des entiers naturels
• Passage de la base 10 vers la base B:divisions successives par B22 / 2 = 11 (reste 0)11 / 2 = 5 (reste 1)5 / 2 = 2 (reste 1)2 / 2 = 1 (reste 0)1 / 2 = 0 (reste 1) (22)10 = (10110)2
• Passage de la base B à la base 10 :(X)B = (xn-1xn-2...x1x0)B = (xn-1* Bn-1 + xn-2 * Bn-2 + .. + x1* B + x0)10
ex: (10110)2 = 1 * 24 + 0 * 23 + 1 * 22 + 1 * 21 + 0 = 16 + 4 + 2 = (22)10
Architecture des Ordinateurs et Systèmes Ph. Leray
Représentation des réels(Virgule fixe)
– Même méthode pour la partie entière– On garde la virgule– La partie décimale se décompose en puissances négatives de 2
• Ex : (0,75)10 = ?0,75 * 2 = 1,5 (on garde 1, reste 0,5)0,5 * 2 = 1,0 (on garde 1 , reste 0 : terminé)➜ (0,75)10 = (0,11)2 = 1 * 2 -1 + 1 * 2-2 ( = 0,5 + 0,25)
• Ex : (0,65) 10 = ?0,65 * 2 = 1,3 (1) 0,4 * 2 = 0,8 (0)0,3 * 2 = 0,6 (0) 0,8 * 2 = 1,6 (1)0,6 * 2 = 1,2 (1) 0,6 ...0,2 * 2 = 0,4 (0)➜ (0,65)10 = (0,101 00 1 )2
Architecture des Ordinateurs et Systèmes Ph. Leray
Codage des nombresCodage = représentation av e c un nombre limité de bits .
• Problème de « dépassement de capacité »Exemple pour les entiers naturels :
Représentation Codage sur 8 bits
10101010 (170) 1 0 1 0 1 0 1 0+ 11000000 (192) + 1 1 0 0 0 0 0 0
101101010 (362) ? 1 0 1 1 0 1 0 1 0
➜ 362 est un entier trop grand pour être codé sur 8 bits
1 0 0 1 0 1 1 0
Architecture des Ordinateurs et Systèmes Ph. Leray
Codage des entiers relatifs 1/3• Problème = représenter le signe
• Première méthode : signe ("+" = 0, "-" = 1) + valeur absolue– ex: codage de (-22)10 sur 8 bits (1 bit de signe + 7 bits)=
signe
– Avantage : facile à lire pour l'utilisateur– Problèmes :
» 2 représentations possibles pour 0 (+0 et -0)» comment additionner 2 nombres de signe différent ?
0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1
1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1
Codage des entiers relatifs 2 /3
Architecture des Ordinateurs et Systèmes Ph. Leray
• Seconde méthode : complément à 2technique de passage de X à -X (en complément à 2) =
+22 +1» on part de X :
» on complémente : (0 devient 1, et inversement)
» on ajoute 1 :-22 -1
1 1 1 0 1 0 1 0
– Inconvénient : plus difficile à interpréter– Avantages :
» un seul codage pour 0» pas de problème d'addition
0 0 0 0 0 0 0 11 0 0 0 0 0 0 1
0 0 0 0 0 0 0 11 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
Codage des entiers relatifs 3 /3
Architecture des Ordinateurs et Systèmes Ph. Leray
1 + (-1) = ??
"Signe + valeur absolue" Complément à 2
Retenues1 1 1 1 1 1 1 1 1
+ +
1 0 0 0 0 0 1 0
L’algorithme d’addition n ’est pas adapté à ce
codage
L’algorithme d’addition pour les entiers naturels marche aussi
pour le codage en complément à 2
Codage des réels (IEEE 754) 1 /2
Architecture des Ordinateurs et Systèmes Ph. Leray
(Virgule flottante)
• Codage sur 32 bits (simple), 64 (double) ou 80 (étendue)• inspiré de la notation scientifique (ex : +1,05 x 10-6)• Ex en simple précision :
1 8 23
S E M
X = (-1)S * 1,M * 2E-127 avec 0 < E < 255
ex: X = (-1,5)10 (S=1; M=0,5; E=127)
X = 1 01111111 1000…000
X X X X0
Codage des réels (IEEE 754) 2 /2
Architecture des Ordinateurs et Systèmes Ph. Leray
Cas particuliers :– ± (M=0, E=255) (résultat d’un div/0,...)
– 0– NaN
(M=0, E=0) (M0, E=255)
(impossible d’écrire 0 sous la forme 1,M*2E-127)
(le résultat n’est pas un nombre : / , ...)
Les dépassements de capacité :① ② ③ ④
-max
-min
+min
+max
– (1) débordement supérieur négatif– (2) débordement inférieur négatif– (3) débordement inférieur positif– (4) débordement supérieur positif
Codage des caractères (code ASCII) 1 /2
Architecture des Ordinateurs et Systèmes Ph. Leray
• Idée = associer un nombre à un caractère
• Codage ASCII (American Standard Code for Information Exchange) =
– 7 bits (donc 128 possibilités)– Les caractères 0 (00) à 31 (1F) sont des caractères spéciaux
» saut de ligne, tabulation, beep ...– Les caractères 32 (20) à 127 (7F) représentent :
» les minuscules» les majuscules» les signes de ponctuation …
Architecture des Ordinateurs et Systèmes Ph. Leray
Codage des caractères (code ASCII) 2 /2
Table des codes ASCII (hexadécimal)
00 NUL 01 SOH 02 STX 03 ETX 04 EOT 05 ENQ 06 ACK 07 BEL08 BS 09 HT 0A NL 0B VT 0C NP 0D CR 0E SO 0F SI10 DLE 11 DC1 12 DC2 13 DC3 14 DC4 15 NAK 16 SYN 17 ETB18 CAN 19 EM 1A SUB 1B ESC 1C FS 1D GS 1E RS 1F US20 SP 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '28 ( 29 ) 2A * 2B + 2C , 2D - 2E . 2F /30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 738 8 39 9 3A : 3B ; 3C < 3D = 3E > 3F ?40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W58 X 59 Y 5A Z 5B [ 5C \ 5D ] 5E ^ 5F _60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g68 h 69 i 6A j 6B k 6C l 6D m 6E n 6F o70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w78 x 79 y 7A z 7B { 7C | 7D } 7E ~ 7F DEL
Architecture des Ordinateurs et Systèmes Ph. Leray
Codage des caractères (code ASCII) 3 /2
La couche physiqueDe la porte logique au chemin de données
Architecture des Ordinateurs et Systèmes Ph. Leray
Codage des caractères (code ASCII) 4 /2
Architecture des Ordinateurs et Systèmes Ph. Leray
Porte Symbole Fonction Table de Vérité
NOT In Out Out = InIn Out0 11 0
AND A
BOut = A.B
A B Out0 0 00 1 01 0 01 1 1
OR Out = A+BA B Out0 0 00 1 11 0 11 1 1
XOR Out = A⊕BA B Out0 0 00 1 11 0 11 1 0
Codage des caractères (code ASCII) 5 /2
Portes logiques= Composants de base d'un ordinateur
NAND = NOT AND
NOR = NOT OR
LogiqueLogique desdes propositionspropositions
Architecture des Ordinateurs et Systèmes Ph. Leray
Un peu d'algèbre de BooleA + 0 = A A . 0 = 0A + 1 = 1 A . 1 = A A + A = A A . A = A
A + A = 1 A . A = 0
AB = A + B A + B = A . B (théorèmes de Morgan)
A = A A + (A.B) = A A + (AB) = A + B A (A + B) = A (A+B)(A+B) = A+B
LogiqueLogique desdes propositionspropositions
p q p ∨ q p ∧ q
V V V V
V F V F
F V V F
F F F F
Architecture des Ordinateurs et Systèmes Ph. Leray
AB = AB + AB
Algèbre de Boole et circuits logiques Proposition = énoncé vrai ou faux
a : les élèves sont présents b : le professeur est présent cours si a et b
Combinaison par des connecteurs
(non logique) (et logique) (ou logique non exclusif)
p pV F
F V
LogiqueLogique desdes propositionspropositions
Architecture des Ordinateurs et Systèmes Ph. Leray
tables de vérités
Architecture des Ordinateurs et Systèmes Ph. Leray
NotionNotion ensemblisteensemblistea b
R R
a a b
aa b
R
a b
PassagePassage àà l’algèbrel’algèbre dede BooleBoole
Architecture des Ordinateurs et Systèmes Ph. Leray
Il y a d’autres connecteurs et quelques lois dans la logique des propositions : a b = (a b)…
a b a b a ∧ b a ∨b (a ∨ b)
V V F F F V F
V F F V F V F
F V V F F V F
F F V V V F V
Georges Boole a exprimé la logique des propositions en termes algébriques
Claude Shannon a proposé :V = 1 et F = 0
a b ⇒a b ⇒a ⇒ a
a b a.b 1 a
AlgèbreAlgèbre dede BooleBoole
Architecture des Ordinateurs et Systèmes Ph. Leray
Il existes 16 fonctions à deux variables : toutes ne sont pas intéressantes
a b a b a b ab ab a ⊕ b a ⊕ b0 0 0 1 0 1 0 1
0 1 1 0 0 1 1 0
1 0 1 0 0 1 1 0
1 1 1 0 1 0 0 1
Ou exclusif ou xor
Non ou ou nor
Non et ou nand
a b
a
b
ab
AlgèbreAlgèbre dede BooleBoole
Architecture des Ordinateurs et Systèmes Ph. Leray
ab ab
OpérationsOpérations dede basebase
Architecture des Ordinateurs et Systèmes Ph. Leray
Toutes les fonctions peuvent s’exprimer à l’aide des trois opérations logiques et, ou, non
Avec n variables on peut construire 2n fonctions Une fonction à trois variables peut se décomposée en deux
f(a,b,c) = f(0,b,c) si a=0 et f(a,b,c) = f(1,b,c) si a=1 f(a,b,c) = a.f(1,b,c) + a.f(0,b,c)
groupe logique complet = ensemble de fonction à partir desquels il est possible de réaliser toutes les fonctions {et,ou,non}… Fonctions à n variables décomposables et fonctions à 2 variables exprimable avec {et,ou,non} ⇒ récurrence…
L’algèbre de Boole se construit sur les booléens à partir des trois opérations internes : +, * et
ThéorèmesThéorèmes etet axiomesaxiomes ((11))
Architecture des Ordinateurs et Systèmes Ph. Leray
Théorème des constantes
a 0 a
a 0 0
a 0 a
a 1 1
Idempotence
a 1 a
a 1 a
a a a
a a a
a a 0
Complémentation
a a 1
a a 0
a a 1
ThéorèmesThéorèmes etet axiomesaxiomes ((22))
Architecture des Ordinateurs et Systèmes Ph. Leray
Commutativité
a b b a
a b
b a
a b
b a
ThéorèmesThéorèmes etet axiomesaxiomes ((33))
Architecture des Ordinateurs et Systèmes Ph. Leray
Distributivité
a (bc)a(b c)
Associativité
(a b)(a c) ab ac
a (b c)
(a b) c
a b c
a(bc) (ab)c
abc
Théorème de De Morgan
ab a ba b a b
TableTable dede véritévérité etet équationéquation
Architecture des Ordinateurs et Systèmes Ph. Leray
Pour concevoir un circuit, il faut le modéliser.
on utilise une table de vérité on obtient une équation qu’on simplifie (algébrique ou Karnaugh) on trace le schéma électrique du circuit
éléments constitutifs d’un ordinateur : exclusivement portes nand ou bien nor (système complet)
Table de vérité : présente toutes les combinaisons possibles des n entrés (2n lignes) et les états de sortie correspondant
Une fois la table de vérité écrite, il faut la transformer en équation logique
somme (fonction ou) de produit (fonction et)
ÉquationÉquation :: exempleexemple
a b F(a,b)
0 0 1
0 1 0
1 0 1
1 1 1
Architecture des Ordinateurs et Systèmes Ph. Leray
Simplification algébrique de l’équation
F (a, b)
F (a, b)
a.b a.(b b)
a.b a
F(a,b)=1 si
F (a, b)
F (a, b)
((a.b).a)
(a b).a
a=0 et b=0 soit a=1 et b=1 donc si a.b= 1F (a, b)
a.a b.a
a=1 et b=0 soit a=1 et b=1 donc si a.b=1 a=1 et b=1 donc si a.b=1
F(a,b) = a.b+a.b+a.b
F (a, b)
F (a,
b)
F (a, b)
ÉquationÉquation :: exempleexemple
Architecture des Ordinateurs et Systèmes Ph. Leray
b.a
b a
b a
DiagrammesDiagrammes dede KarnaughKarnaugh
Architecture des Ordinateurs et Systèmes Ph. Leray
Table de Karnaugh : principe
départ : somme de produits où chaque produit doit contenir toutes les variables : (a+a)b = b
chaque colonne diffère de sa voisine d’un seul littéral les tables de Karnaugh sont à deux dimensions : on regroupe
des variables on regroupe les 1 en morceaux rectangulaires
1. plus grands morceaux possibles2. moins de morceaux possibles3. nouveau morceau que s’il permet de regrouper des 1 non
encore regroupés4. la ligne du haut et du bas ainsi que colonne de droite et de
gauche sont adjacentes
Morceau = produit de variable : variable et son inverse dans le même morceau = élimination de la variable
KarnaughKarnaugh :: exempleexemple n°n°11
Architecture des Ordinateurs et Systèmes Ph. Leray
F (a, b)
a.b a.b a.b
b ba 1 1
a 0 1
F (a, b) b a
KarnaughKarnaugh :: exempleexemple n°n°22
Architecture des Ordinateurs et Systèmes Ph. Leray
F (a, b)
a.b.c
ab abc
F (a, b)
a.b.c
ab(c c)
abc
F (a, b)
abc
abc abc abc
bc bc bc bca 1 1 1 0
a 0 0 1 0
KarnaughKarnaugh :: exempleexemple n°n°33
Architecture des Ordinateurs et Systèmes Ph. Leray
F (a, b) ac bc
PortesPortes etet circuitscircuits logiqueslogiques
Architecture des Ordinateurs et Systèmes Ph. Leray
Un ordinateur travaille en base 2
Électroniquement 0 correspondait à une tension de 0 à 0,8V et 1 à une tension de 2,8 à 2,5V (tensions données par les constructeurs de composants) Toute fonction binaire peut être représentée par une expression booléenne Tout circuit électrique ou électronique à deux valeurs de tension peut être représenté par une expression booléenne
Préférable de représenter les circuits par des symboles logiques et non par des expressions booléennes
Correspondance entre les différentes fonctions logiques (+,*…) et des symboles appelés portes logiques
PortesPortes etet circuitscircuits logiqueslogiques
Architecture des Ordinateurs et Systèmes Ph. Leray
PortesPortes logiqueslogiques
NON a
OU a b
ET a b
OUexclusif a ⊕ b
XOR