Introduction à l'informatique DEUG Sciences et Technologie Première année Architecture Première Partie – 2 séances Catherine Mongenet Pierre Gançarski (supports réalisés par Catherine Mongenet et Pascal Schreck) Architecture des ordinateurs Ordinateur : machine électronique de traitement de l'information capable d'exécuter un ensemble d'instructions (programme) préalablement enregistré dans sa mémoire Codage de l'information Manipulation de l'information : calculer Stockage de l'information : mémoriser Traitement de l'information : communiquer Structure du processeur Exemples d'architectures 2 Calculer-mémoriser-communiquer Coder et calculer Arithmétique (entière + flottante) Texte : édition, mise en forme Multimédia : images, sons, vidéos Mémoriser à court terme : registres à moyen terme : mémoire vive à long terme : mémoire de masse Communiquer près : bus loin : réseau 3 Codage de l'information entiers naturels (1) Cailloux (calcul), bâtons, doigts codex de Dresde Systèmes de numérations zéro égyptiens, sumériens, romains Exemple : MCXV chinois, mayas numérotation positionnelle 14 → zéro numérotation décimale (base 10) 2003 = 2*1000 + 0*100 + 0*10 + 3 numérotation en base b n =(ckck-1 …c1c0)b= ck*bk + ck-1*bk-1 + ... + c1*b1 + c0*b0 (11111010011)2 = 210+29+28+27+26+0+24+0+0+21+20 (= (2003)10) 4 Codage de l'information entiers naturels (2) numérotation en base 2 exemples : (base 10) 0 1 2 19 (base 2) 0 1 10 10011 2003 11111010011 physique 11 1 1 arithmétique en base 2 11011011 + 1011 addition : 1110 0 1 10 multiplication : 11011011 * 101 11011011 11011011 0 10001000111 5 Codage de l'information précision → entiers positifs • bit : binary digit = chiffre binaire (⇒ 1 dispositif physique pour matérialiser 1 bit ) • pour représenter un entier en binaire, il faut plusieurs bits Ex : 7dec = 111 (3 bits) , 8dec = 1000 (4 bits), 15dec = 1111 (4bits) • Avec n bits, on représente au plus 2n entiers différents 4 bits → 24 = 16 8 bits (1 octet) → 28 = 256 16 bits (2 octets) → 216 = 32 bits (4 octets) → 232 = 65 536 (simple précision) 4 294 967 296 (double précision) • dépassement de capacité (overflow) 1 1 1 11 1 1 1 +1→ 1 0 0 0 00 0 0 0 6 Codage de l'information précision → entiers négatifs • bit de signe (simple) - 44 1 0 1 01 1 0 0 Signe 32 + 8+ 4 = • complément à 2 idée : Problème 44 = 00101100 - 44 = 10101100 - 44 11011000 -44 ≡ 2n - 44 (2n ) 0 (n= nombre de bits) en binaire ( n = 8) 100000000 - 0101100 = 11010100 - 44 1 1 0 10 1 0 0 En pratique complément à 1 44 = 00101100 - 44 = 11010100 44 = 00101100 11010011 +1 00000000 -44 = 11010100 7 Codage de l'information précision → flottants • Nombres décimaux à précision finie : flottants ( ≠ nombres réels ! ) • Forme normalisée 0.314157 * 1023 mantisse exposant codée sur n bits en complément à 2 codé sur m bits + bit de signe Existence de normes de représentation (IEEE 754) • les nombres réels ne sont pas représentables en informatique 8 Codage de l'information caractères • caractères : • ensemble fini ⇒ numérotation des caractères ⇒ code ASCII (sur 1 octet) • chaînes de caractères (exemple) : s al u t f ou l e ◊ ... … 65 A 1000001 66 B 1000010 67 C 68 D … … 97 a 98 b 1100001 1 octet 1100010 espace (32) fin de chaîne (0) chaîne avec 11 caractères (+ 1 pour indiquer la fin) • Années 90 : autres codages sur 16 ou 32 bits 9 Codage de l'information Images, vidéos, sons • Images - plusieurs formats standards - pixel = picture element - exemple : bitmap en noir et blanc 9 17 en-tête (2*2 octets) 153bits données de l ’ image pixel : 0 = noir, 1 = blanc 10 Codage de l'information Images, vidéos, sons • Images - image couleur : codage d'un pixel sur n bits avec 24 bits par pixel : palette de 16,7 millions de couleurs - image "3D" : tableaux de mots de n bits • Vidéos - plusieurs formats standards - dans sa version la plus simple : suite d’images souvent 25 images/seconde • Son - analogique → digital (discrétisation) • Hypermedia - adresses et méthodes de navigation ... 11 Codage de l'information informations de contrôle pendant sa transmission, une suite de bits peut être altérée nécessité d'utiliser des codes pour détecter, voire corriger les erreurs bit de parité : ajouter un bit de contrôle tous les x bits exemple : parité paire sur 7 bits tableau de bits de parité 1 0 1 01 1 0 0 ok 1 0 1 01 0 0 0 pb 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 12 Codage de l'information informations de contrôle pendant sa transmission, une suite de bits peut être altérée nécessité d'utiliser des codes pour détecter, voire corriger les erreurs ajouter un bit de contrôle tous les x bits bit de parité : exemple : parité paire sur 7 bits tableau de bits de parités contrôle et correction limité à une erreur par ligne/colonne code de Hamming, CRC ... 1 0 1 01 1 0 0 ok 1 0 1 01 0 0 0 pb 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 pb pb 13 Codage de l'information compression Objectif de la compression : diminuer le nombre de bits utilisés pour le stockage et la transmission de l'information Facteurs de compression taux de compression qualité de la compression temps de compression Deux types de compression compression sans perte après décompression, info restituée = info d'origine compression avec perte ou destructive 14 Codage de l'information compression compression sans perte : codage de redondances : aaaaaaaaaaaaaaabbaaabbbbbbbbbbbbb 15a2b3a13b arbres de Huffman, quadtree, octree… compression destructive jpeg : images fixes mpeg : séquences d'images mp3 : fichiers son 15 Synthèse : codage de l'information Toute information peut être codée à l'aide de 2 symboles (0 et 1) entiers, "réels" en virgule flottante caractères, textes multimédia : images,vidéos,sons … On peut représenter physiquement de l'information binaire avec des dispositifs physiques à deux états stables La manipulation des informations ainsi représentées passe par l'étude des fonctions de {0, 1}n dans {0,1} 16 Calculer booléens Georges Boole : • notion de vérité (binaire), preuve etc. (→ calcul de propositions) • 0 : faux, 1 : vrai → B = {0, 1} • logique combinatoire f : Bn → B étude des fonctions booléennes tableau de valeurs → tables de vérité 17 Calculer fonctions booléennes à une variable f : B →B 2 valeurs possibles pour les arguments f Nulle id non unité 0 0 ou 01 0 1 1 1 0 ou 01 1 0 1 2 ×2 = 4 fonctions possibles Fonctions booléennes à deux variables : f : B2 → B arguments : 2 ×2 = 4 valeurs possibles 24 = 16 fonctions possibles 18 Calculer f : B2 → B (x,y) f(x,y) 16 fonctions booléennes à deux variables : x y ⊕ ou et nand 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 2 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 3 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 19 Calculer f : Bn → B (x1, …, xn) f(x1, …,xn) n variables : 2n valeurs possibles pour les arguments n 22 fonctions possibles pour n=5 on a, 4 294 967 296 fonctions possibles Toute fonction booléenne peut s’ exprimer en utilisant uniquement les fonctions « non », « et » et « ou ». 20 Calculer et, ou, non ou : opération notée + et : opération notée . . 0 0 1 + 0 0 1 0 0 0 1 1 0 1 1 1 1 non : opération notée 0=1 1=0 On sait réaliser ces opérations électroniquement +5V x.y x nand y 0V alimentation électrique (5 V) 21 Calculer exemple Toute fonction booléenne peut s’ exprimer en utilisant uniquement les fonctions « non « etdonc » et «réaliser ou ». toute fonction booléenne électroniquement On»,sait On sait réaliser ces opérations électroniquement exemple : addition de deux entiers naturels codés sur 2 bits a a1 a0 calcul a0 + b0 o r = retenue a0 + b0 b c1 c0 c =a+b b1 b0 calcul a1 + b1 +r o = retenue a1+b1+r 22 Calculer exemple (suite) a1 a0 b1 b0 o c1 c0 C'est un circuit combinatoire 23 Calculer UAL addition, soustraction, fonctions booléennes bit à bit, etc ... Unité Arithmétique et Logique (UAL, en anglais : ALU) 1er opérande A résultat 2ème opérande B A+B A-B A>B ? A=0 ? A=B ? Aou B A et B choix de l’ op 24 Calculer On peut aussi réaliser un circuit combinatoire pour la multiplication, mais on préfère souvent le faire par un circuit plus complexe qui réalise un « programme » (on parle de couche micro-programmée) division entière opérations arithmétiques sur les flottants puissances, racines, etc. fonctions transcendantales (trigonométrie, logarithmes, etc.) 25 Calculer Dans l'UAL : choix de l’opération 1er opérande A résultat 2ème opérande B code opération 26 Calculer Dans l'UAL : choix de l’opération 1er opérande A + - résultat de l’opération numéro 2 (10) > 2ème opérande o1 o0 0 0 0 1 1 0 1 1 B & o0 o1 chaque opération possède un numéro qu'on appelle un code d’ opération On code aussi des instructions avec des 0 et des 1 ... 27 Calculer Choix des opérations ? Jeu d’instructions ⇒ spécifique à chaque processeur Exemples (arithmétiques) : MMX, MMX2, 3Dnow! Choix du codage des opérations ? Architecture d'un processeur ⇒ ces choix sont très liés à l'implantation matérielle 28 Synthèse : calculer On sait manipuler toute information codée avec des 0 et des 1 en utilisant des fonctions booléennes. On sait construire des dispositifs électroniques capable de calculer physiquement toute fonction booléenne. Dans un processeur, les dispositifs plus particulièrement chargés des calculs sont rassemblés dans des Unités Arithmétiques (entières ou flottantes) et Logiques : UAL. A un certain niveau d'abstraction, l'architecture d'un processeur consiste en le jeu d'instructions qu'il sait exécuter et le codage de ces instructions. 29 Mémoriser Niveaux – Hiérarchie _ + Critères d'évaluation des mémoires • Temps d'accès • Capacité • Coût par bit Registres Vitesse Capacité Mémoire cache Coût Plusieurs niveaux Proximité du processeur Mémoire centrale Mémoire de masse Différentes technologies _ + 30 Mémoriser Niveaux – Hiérarchie Registres • Conservation des informations proche de l’UAL • Stockage des opérandes et des résultats intermédiaires Mémoire cache • Tampon entre l'unité centrale et la mémoire centrale • Accélération des accès Mémoire centrale Organe principal de rangement des informations utilisées par l'unité centrale (instructions et données) Mémoire vive (RAM – Random Access Memory) Mémoire morte (ROM – Read Only Memory) Mémoire de masse Disques durs Disquettes, CD-ROM Bandes magnétiques CD-ROM spéciaux 31 Mémoriser technologies mémoires Mémoire = ensemble de composants électroniques capables de mémoriser chacun un bit La mémoire doit conserver la trace du passage du courant Il existe plusieurs technologies permettant de conserver la trace du courant, correspondant à plusieurs types de mémoire. - mémoires mortes } - mémoires statiques - mémoires dynamiques } ROM : infos conservées même hors alimentation électrique RAM : infos perdues hors alimentation électrique - mémoires de masse : magnétiques ou optiques 32 Mémoriser mémoires statiques Circuits séquentiels - l’ état d’ un circuit séquentiel dépend de ses entrées, ainsi que de l’ état précédent - circuit séquentiel de base : bascule Permet de mémoriser un bit Bascule a deux états stables (0 ou 1) Bascule asynchrone - prend en compte la valeur de ses entrées à tout moment Bascule synchrone - asservie à une horloge - les modifications des signaux d'entrée entre deux tops d'horloge sont sans incidence sur la valeur de sortie 33 Mémoriser mémoires statiques Rappel : Bascule RS (asynchrone) nand (1,1) = 0 nand (..,..) = 1 nand 1 S Q 110 0 R 1 S=0 R=0 Q = 1 (set) Q = 0 (reset) S Q R 0 Bascule D (synchrone) avec horloge (Clock) avec Clear et Preset Clr Q D Ck Pr 34 Mémoriser Clr Q D mémoires statiques Ck n bascules DD sont n bits une bascule estcapables capablede demémoriser mémoriser 1 bit Pr I0 I1 I2 I3 A0 A1 D Q D Q D Q D Q Ck Ck Ck Ck D Q D Q D Q D Q Ck Ck Ck Ck D Q D Q D Q D Q Ck Ck Ck Ck D Q D Q D Q D Q Ck Ck Ck Ck registre (4 bits) mémoire statique 4 mots de 4 bits D0 D1 D2 D3 CS RD OE 35 Mémoriser mémoires dynamiques les mémoires statiques (SRAM – Static RAM) sont rapides... mais chères ... ... les mémoires dynamiques (DRAM – Dynamic RAM) - un seul transistor couplé à un condensateur pour stocker un bit ( 6 transistors par bit en SRAM) le condensateur se décharge progressivement entrainant la perte de l'information le circuit doit être rafraîchi périodiquement (plusieurs milliers de fois par seconde) pour chaque bit : lire sa valeur et la réécrire immédiatement 36 Mémoriser mémoires statiques / dynamiques SRAM Utilisée pour les caches - plus rapide - plus coûteuse - taille plus importante DRAM - circuit de rafraîchissement plus lente - fabrication plus simple moins coûteuse - densité d'intégration plus grande (facteur 4) Utilisée pour la mémoire centrale 37 Mémoriser mémoires de masse Besoin de mémoire de masse - dotée (très) grande capacité - pour le stockage permanent de l'information en l'absence de courant (quelques années) Deux types de mémoire de masse - mémoires magnétiques - mémoires optiques disques durs, disquettes { bandes magnétiques CD-rom, DVD-rom 38 Mémoriser supports magnétiques : bandes et disques durs fumée trace de doigt cheveu Piste Secteur Cylindre 39 Mémoriser supports optiques : disques optiques Principe : rayon laser envoyé sur une surface réfléchissante. On observe (ou non) un rayon réfléchi. cuvette dans la pellicule réfléchissante trou dans la pellicule réfléchissante indice de réfraction du substrat transparent modifiable 1 fois (Recordable) – effaçable (Rewritable) – - pistes concentriques - vitesse angulaire constante 40 Mémoriser hiérarchie mémoire : caractéristiques Pour une « grosse » station de travail Taille Temps d’accès (ns) Débit (Mo/sec) Technologie Registres < 1 Ko 0,25 – 0,5 20 000 – 100 000 Mémoire spécialisée Cache < 16Mo 0,5 - 25 5 000 - 10 000 SRAM < 16 Go 80 - 250 1000 - 5000 DRAM > 100 Go 5 000 000 20 - 150 Support magnétique Mémoire principale Mémoire de masse 41