1 1. ASPECTS MATERIELS 1.1 Unités périphériques 1.1.1 Hiérarchie des Mémoires Les différents éléments de la mémoire d'un ordinateur sont ordonnés en fonction des critères suivants: Temps d'accès Capacité et coût par bit Quand on s'éloigne du CPU vers les mémoires auxiliaires, on constate que le temps d'accès et la capacité des mémoires augmentent, mais le coût par bit diminue. - les éléments de mémoires situés dans l'unité centrale de traitement (CPU) sont les registres qui sont caractérisés par une grande vitesse et servent principalement au stockage des opérandes et des résultats intermédiaires - L'antémémoire ou mémoire cache est une mémoire rapide de faible capacité (par rapport à la mémoire centrale) utilisée comme mémoire tampon entre le CPU et la mémoire centrale. cette mémoire permet au CPU de faire moins d'accès à la mémoire centrale et ainsi de gagner du temps. - La mémoire centrale est l'organe principal de rangement des informations utilisées par le CPU. pour exécuter un programme, il faut le charger en mémoire centrale (instructions + données). cette mémoire est une mémoire à semi-conducteur, mais son temps d'accès est beaucoup plus grand que celui des registres et du cache. - La mémoire d'appui sert de mémoire intermédiaire entre la mémoire centrale et les mémoires auxiliaires. Elle est présente dans les ordinateurs les plus évolués et permet d'augmenter la vitesse d'échange des informations entre des 2 niveaux. - les mémoires auxiliaires, appelés aussi mémoires de masse (dont les mémoires d'archivage), sont des mémoires périphériques de grande capacité et de coût relativement faible. elles servent d'éléments de stockage permanent et utilisent pour cela des supports magnétiques (disque, cartouches, bandes), et des supports optiques (disques optiques), tandis que les niveaux les plus proches du 1 2 processeur central font appel à la technologie des semi-conducteurs 1.1.2 Disques Magnétiques Les disques sont des mémoires vives non volatiles. Une unité de disques magnétiques est constitué d'un empilement de plusieurs disques dont les 2 surfaces sont recouvertes d'une couche magnétisable. Les disques tournent autour d'un axe central avec une vitesse de plusieurs milliers de tours par minute. Entre les disques se trouvent les têtes de lecture/écriture. La surface de chaque disque sont structurées en pistes et en secteurs. Les pistes sont des cercles concentriques, il y a en a plusieurs centaines par surface. Elles sont divisées en secteurs (de 10 à 100 par pistes) et chaque secteur contient un certain nombre d'octets. l'ensemble des pistes ayant un rayon donné forme un cylindre. Les pistes d'un cylindre ont la particularité de pouvoir être lues ou écrites sans déplacer les têtes. un disque neuf n'est pas structuré en pistes et secteurs, il faut le formater c'est à dire effectuer ces subdivisions. L'accès aux informations d'un disque est un accès semi séquentiel. Il faut indiquer le cylindre auquel on désire accéder, ce qui est fait directement par positionnement de l'ensemble rigide des têtes de lecture/écriture et ensuite il faut attendre que le bon secteur vienne sous la tête, ce qui prend en moyenne une demi - rotation. Pour obtenir un bloc de données, il faut spécifier l'unité de disque, le cylindre, la surface (surface + cylindre = piste), et le secteur; de plus il faut spécifier le nombre d'informations à transférer et l'adresse en mémoire centrale où on doit effectuer le transfert. Donc, pour transférer des informations, trois temps sont à considérer : temps de positionnement des têtes sur le bon cylindre temps d'attente, dû à la rotation du disque pour atteindre le bon secteur temps de transfert des informations. L'information est enregistrée en série sur les pistes concentriques. Les pistes contiennent toutes le même nombre de bits, la densité varie donc en fonction de la piste. La densité atteint son maximum sur la piste la plus proche de l'axe central; Les pistes sont divisées en secteurs et chaque secteur est séparé du suivant par une petite zone non utilisée qui permet de repérer les secteurs et de les synchroniser. 2 3 Les disques utilisent des têtes ultra - légères très proches de la surface du disque. L’altitude de vol des têtes (distance entre le disque et la tête de lecture/écriture) est inférieure à 0,25 microns. La moindre particule de poussière a une taille 10 fois plus grande. C'est pourquoi les disques durs sont placés dans des boîtiers hermétiques. Ces disques sont appelés disque durs et sont fixes dans leur unité. Dans les formats les plus courants 3"1/2 ou 5"1/4, les disques ont une capacité pouvant atteindre plusieurs gigabytes. Les Disquettes (floppy disks) sont principalement utilisées dans les systèmes tels que les micro-ordinateurs. elles sont constituées d'un petit disque en matière plastique souple recouvert d'une couche magnétisable et conservé dans une pochette d'où il ne sort jamais.Le principe de fonctionnement est le même que celui des disques durs. Une nouvelle technologie des lecteurs floptiques permet de stocker 21 mégabytes de données sur des disquettes 3"1/2. Cette augmentation de capacité est obtenue par l'ajout d'un capteur optique (laser) aux têtes magnétiques de lecteur/écriture qui ont elles-mêmes gagnées en finesse. Le capteur détecte un élément de positionnement optique placé sur une piste optique du disque, ce qui augmente considérablement la précision de positionnement des têtes de lecture/écriture. 1.1.3. Bandes Magnétiques Les bandes et cartouches magnétiques sont semblables à celles utilisées pour l'enregistrement de la musique. Elles sont constituées d'un ruban souple servant de support à une couche magnétisable, enroulé d'un support plastique. caractéristiques: * la longueur est généralement de 2400 pieds (+/732 m) * la largeur d'1/2 pouce (+/- 1,27 cm) * la bande est divisée en pistes dont le nombre est de 7 ou 9 (la valeur 9 étant la valeur standard) * le byte est enregistré transversalement, càd 8 bits sont répartis sur 8 pistes, la neuvième étant utilisée pour un bit de parité * la densité longitudinale a évolué en 25 ans de 200 à 6500 bpi * les modes d'enregistrement utilisés sont les modes NRZI, PE et GCR * Le temps de lecture d'une bande est de quelques minutes, ce sont les supports de données relativement lents. 3 4 Les bandes/cartouches, montées sur les unités de lecture/écriture, sont des mémoires auxiliaires, non volatiles et à accès séquentiel. Elles ont les avantages suivants: * unités qui sont des périphériques standard disponible dans la plupart des petits ou des grands systèmes, ce qui permet l'échange de bandes/cartouches entre systèmes. * la méthode d'enregistrement est une méthode très économique (1milliard de bits équivaut à +/- 1$) * les données peuvent être conservées sans problèmes au moins pendant une vingtaine d'années ( bon moyen d'archivage). Elles ont aussi des inconvénients: * l'accès séquentiel --> d'où une certaine lenteur * La nécessité d'intervention d'un opérateur pour le montage ou la démontage de la bande ou de la cartouche dans le lecteur. Organisation des données: exemple d'enregistrement avec la méthode CGR: Les informations que l'on désire stocker sont déposées dans une mémoire tampon par groupe de 7 caractères de 8 bits + 1 bit de parité, auxquels on ajoute un 8ième caractère de contrôle. On divise ces 8 caractères en 2 groupes de 4. Dans chaque groupe on obtient 9 colonnes de 4 bits que l'on code avec la table de codage de la méthode du GCR. on enregistre ainsi des groupes de 5 bits le long de chaque piste. Le travail de codage - décodage, contrôle, synchronisation est transparent à l'utilisateur. il est effectué au niveau de l'unité de bande et de son contrôleur. Les fichiers sont composés d'enregistrement logiques qui eux-mêmes sont composés d'un ensemble de caractères. Sur la bande chaque enregistrement logique correspond à un bloc physique. Les blocs sont terminés par des bits de contrôle, appelés Cheksum, et sont séparés par des petites zones non magnétisées appelés Gaps. Les fichiers sont séparés par une marque de fin de fichier. Les cartouches ou cassettes magnétiques ( cartridges) suivent le même principe que les bandes magnétiques, mais le format est réduit et leur manipulation plus aisée. 4 5 1.1.4 Autres unités périphériques 1.1.4.1 DISQUES OPTIQUES Les disques optiques numériques sont la révélation de ces dernières années: Ils offrent de grandes capacité de stockage sur des supports amovibles. Ils sont d'une très grande fiabilité; L'inconvénient majeur est la relative lenteur de ces systèmes. Les mémoires magnétiques présentent un certain nombre d'inconvénient comme la sensibilité aux poussières, aux rayures, à la température et aux champs magnétiques. L'optique permet d'éviter ces problèmes et offre des densités d'informations au moins 10 fois plus grandes que celles des mémoires magnétiques, pouvant atteindre des dizaines de Mbits / cm². CD-ROM sont des compacts disques enregistrés définitivement à l'usine. Les disques compacts ont une capacité d'environ 650 Mbytes pour un coût très bas. On peut aussi regarder ces images sur un ordinateur ou un poste de TV. Les Cd s'imposent donc comme le support multimédia grand public. L'information est stockée le long d'une spirale de microcuvettes disposées à la surface du disque, celle-ci est revêtue d'une couche réflective, l'ensemble étant enserré dans une couche protectrice de résine. Lors de la lecture, on mesure la quantité de lumière réfléchie pour reconnaître les bits 0 ou à 1. Une cuvette diffracte la lumière et donc ne réfléchit qu'une faible partie alors qu'en l'absence de cuvette, la lumière est réfléchie en grande partie les disques WORM (Write Once Read Many) que l'on peut écrire une fois et lire autant que l'on désire, ont constitué la première génération des médias d'archivage. Les disques optiques utilisent un rayon laser pour la lecture et l'écriture des données. L'écriture est réalisée à l'aide d'un puissant faisceau laser en creusant des petits trous ou des cuvettes dans la surface métallique ultra - mince d'un disque en plastique. Ces microcuvettes ont un diamètre d'environ 0,6 µm La lecture est réalisé avec un laser moins puissant qui se contente de détecter la présence ou l'absence des trous en des endroits précis. Si un trou existe, la lumière émise par le rayon 5 6 laser n'est pas réfléchie, ce qui n'est pas le cas lors de l'absence de trou. Les trous sont espacés d'environ 2µm. Cette technique est adaptée aux disques à lecture seule Inconvénient : * écriture unique avantage : * les données sont inaltérables et les disques ont une très longue durée de vie (archivage de données sensibles) Les disques Magnéto - optiques (DMO) sont des disques effaçables que l'on peut lire et écrire plusieurs fois. On utilise les propriétés Magnéto - optiques de certains alliages de matériaux rares, de fer ou de cobalt. Ces matériaux peuvent inverser localement leur polarisation magnétique sous l'effet conjugué d'un champ magnétique et d'un rayon laser qui chauffe le point d'enregistrement La surface se compose de 3 couches: la plus profonde est en aluminium qui réfléchit le faisceau laser La deuxième est une couche d’alliage cristallin magnétisable à haute température la dernière est une fine pellicule plastique. Les opérations d'écriture se déroulent en 2 phases 1premier passage efface toute la zone du disque à écrire Le faisceau laser chauffe un point du disque à une température critique (+/- 150 degrés). 2à cette température le point peut être magnétisé par une tête magnétique qui met tous les bits à 0. ensuite on recommence par écrire uniquement les bits à 1. 2 passages nécessaires à l'écriture expliquent la lenteur de ce processus. La lecture s'effectue aussi à l'aide d'un faisceau laser, mais avec une faible puissance. Le rayon lumineux est réfléchi par la couche d'aluminium et ensuite polarisé de manière différente suivant l'orientation magnétique de la deuxième couche. Le faisceau est ensuite analysé pour savoir si l'information est un 0 ou un 1. avantage:* la tête d'un disque magnéto-optique peut rester à une plus grande distance , ce qui évite les problèmes dus aux crashs des têtes sur le disques. la magnétisation est réalisée a haute température, les disques magnéto - optiques sont insensibles aux champs magnétiques. 6 7 Les Disques réinscriptibles purement optiques !! Le principe consiste à modifier la structure du disque qui devient amorphe ou cristalline. Ceci est réalisé en chauffant plus ou moins un point à l'aide d'un faisceau laser. Suivant la température appliquée, le point à la surface du disque refroidit dans un état ou un autre. La lecture s'effectue par réflexion d'un faisceau laser de faible puissance. Une forte réflexion indique une structure cristalline alors qu’une faible réflexion indique une structure amorphe en ce point précis. Avenir des technologies magnétiques et optique Ces 2 technologies ont encore une très grande marge de progression. Elles vont évoluer conjointement. Les performances sont en faveur de la technologie magnétique, alors que le spectre d'utilisation est en faveur de l'optique. En effet les disques optiques sont amovibles et peuvent être transportés d'une machine à une autre. L'utilisation du faisceau laser permet de définir plus précisément des plus petites points du disque qui contiennent chacun un bit d'information. Les Juke-boxes Les lecteurs de cartouches magnétiques et de disques magnétooptiques permettent de charger une seule cartouche ou un seul disque. Pour offrir de très grande capacité de stockage, on utilise des systèmes composés d'un robot, d'un ou plusieurs lecteurs et d'emplacements pour le stockage de centaines voir milliers de cartouches ou de disques. Ces systèmes sont appelés juke-boxes. Les robots manipulent rapidement les cartouches/disques pour les insérer dans les lecteurs ou pour ensuite les ranger à leur place. De tels systèmes peuvent atteindre de très grande capacité de stockage (> 1 Terabytes), tout en ayant un temps d'accès relativement court et ceci dans un volume réduit (sans intervention manuelle). Le temps moyen de recherche et de chargement d'un disque dans un lecteur est d'environ 10 à 20 secondes; 1.1.4.2. VISUALISATION PAR TUBES À RAYONS CATHODIQUES Le tube à rayon cathodiques (TCR) (CRT), basé sur les mêmes principes techniques que le téléviseurs. aujourd’hui c'est l'unité de sortie par excellence de tout ordinateur, grand ou petit. Dans une TRC, un filament incandescent émet des électrons, qui sont projetés vers l'écran par un système d'accélération, de focalisation et de déviation. On crée ainsi un faisceau 7 8 d'électrons que l'on peut diriger avec une grande précision sur l'écran, à l'endroit choisi, où il provoquera la luminescence d'un phosphore spécial recouvrant la paroi interne de l'écran. Dans un écran couleur, trois faisceaux séparés excitent chacun une couche de luminophores de couleur différente. Pour obtenir une image persistante sur un écran vidéo TRC, il faut rafraîchir l'image 25 à 50 fois par seconde. On peut classer les terminaux dotés d'écran de visualisation en 2 types: * l'affichage de textes (écrans alphanumériques) * dans la formation d'images (écrans graphiques) Avec la diminution des coûts du matériel, et l'émergence des interfaces utilisateurs graphiques, et les écrans alphanumériques tendent à disparaître au profit des écrans graphiques. Ecrans alphanumériques Un écran alphanumérique est limité à l'affichage de caractères répartis sur un certain nombre de lignes. le faisceau d'électrons balaie l'écran par lignes (raster scan). chaque ligne est composée de plusieurs centaines de points. Si les caractères sont définis sur des matrices 5X7, ils occuperont des cellules de 7X10 points, car il faut tenir compte des espaces séparateurs entre les caractères et entre les lignes vidéo. l'écran contient généralement de texte organisée en 24 lignes et 80 colonnes. L'écran est balayé par le faisceau sur 264 lignes, dont on ne retiendra pour l'écriture du texte que 240. Le balayage de l'écran est répété systématiquement 50 fois par seconde. Dans certains cas, on préfère rafraîchir l'écran par lignes alternées (paires ou impaires) 25 fois par seconde (mode entrelacé). A chaque ligne de balayage, le terminal répétera les actions suivantes: chercher le caractère suivant dans la mémoire RAM locale (qui contient le texte à afficher) lire la séquence de bits correspondant au caractère désiré et à la ligne vidéo courante dans la mémoire ROM locale interpréter les bits 0/1 provenant de la matrice comme des commandes pour intensité du faisceau Les informations à afficher sur un écran sont stockées dans une mémoire RAM dite de rafraîchissement qui est locale à l'écran. Pour changer les informations affichés à l'écran, il suffit de modifier le contenu de la mémoire de rafraîchissement. 8 9 Ecrans graphiques Les écrans graphiques, outre l'affichage des caractères, permettent l'affichage de toutes sortes d'images ou de dessins. Avec l'apparition des interfaces utilisateurs graphiques basées sur l'utilisation de fenêtres et d'icônes, ils ont supplanté les écrans alphanumériques. Ecrans graphiques à balayage TV Dans le cas des écrans à balayage, il faut imaginer l'écran divisé en petits domaines élémentaires ou pixels qui forment un certain nombre de lignes et de colonnes. Le terme pixels résulte de la contraction de picture elements . Les premiers écrans étaient des écrans monochromes ou pouvant afficher des images binaires (bitmap) où chaque élément est représente par un bit. C'est à dire que chaque point de l'écran peut être allumé ou éteint. Ensuite sont apparus les écrans à niveaux de gris. Pour cela il faut plusieurs bits pour coder chaque élément de l'image (8bits permettent de représenter 256 niveaux de gris). C'est une image pixmap. Enfin les écrans couleurs permettent l'affichage des images en couleur, mais pour cela il faut des mémoires - images plus grandes, car pour chaque élément de l'image il faut indiquer les valeurs des trois couleurs de base. Une image à afficher est définie dans une mémoire - image de l'écran; chaque élément de l'image correspond à un pixel de l'écran. On peut faire évoluer l'image en changeant le contenu de la mémoire - image. Indépendamment du contenu, l'image est rafraîchie périodiquement sur l'écran. Tout l'écran est rafraîchi périodiquement ligne par ligne. Une sophistication de rafraîchissement consiste à effectuer un rafraîchissement entrelacé, cela signifiant que dans une première passe toutes les lignes paires sont rafraîchie et ensuite, dans une deuxième passe toutes les lignes impaires. Certains écrans permettent de définir plusieurs niveaux de gris pour chaque pixel. Dans ce cas il faut associer n bits à chaque pixel pour obtenir 2 exposant n niveaux ou tonalités de gris. Dans les écrans couleurs, il faut prévoir une mémoire - image par canon d’électrons, chaque faisceau étant dirigé sur une couche phosphore donnant l'une des 3 couleurs fondamentales, soit bleu, vert ou rouge. On peut naturellement obtenir des couleurs composées en mélangeant les 3 couleurs de base. Dans certains moniteurs couleurs, les intensités variables des 3 couleurs peuvent créer jusqu'à 16 millions de teintes. On trouve généralement des écrans de 8bits et des écrans de 16bits. Ils diffèrent par la taille de la mémoire image. 9 10 Ecrans vectoriels ou à balayage cavalier Dans ce type de visualisation, on adresse point par point sans pour autant faire un balayage systématique. On utilise le faisceau comme le stylo des traceurs de courbes: il est programmé pour dessiner une image par traits, selon un parcours défini par une séquence de commandes stockées dans une mémoire locale. Le rafraîchissement de l'image est accompli en suivant les traits dans l'ordre dictée par le programme. Il est indispensable de repeindre les traits composant l'image au moins 50 fois par seconde. Un écran TRC à balayage cavalier trace les images avec un faisceau continu Les écrans vectoriels sont adaptés aux applications où dominent les lignes, les structures filiformes, les dessins par traits. 1.1.4.3.ACCESSOIRES "D'ENTRÉE" ASSOCIÉS AUX TERMINAUX DE VISUALISATION Le clavier est le dispositif d'interaction par excellence pour tout ce qui se rapporte à la saisie de texte. Il ressemble à celui d'une machine à écrire, les touches engendrent des signaux électroniques qui définissent leur emplacement. A l'aide de tables stockées, par ex. dans une mémoire ROM, on peut faire correspondre un codage approprié, par ex. le code ASCII, aux touches d'un tel clavier. Le crayon lumineux (Light Pen) Il s'agit d'un détecteur de lumière, envoyant un signal au moment précis, où le faisceau rafraîchit le point indiqué. On l'utilise comme un stylo; Il suffit de pointer sur l'écran à l'endroit choisi et de presser sur un bouton interrupteur. La corrélation entre le point signalé et l’élément concerné dans la mémoireimage est établie Automatiquement à l'instant où le crayon détecte le passage du faisceau. La souris (Mouse) le manche à balai (Joystick) la manette à boule (Trackball) par déplacement d'une marque clignotante affichée sur l'écran et appelée curseur la souris fonctionne selon différents principes: * soit par l'intermédiaire d'une boule qui entraîne 2 roues (horizontale et verticale) permettant de quantifier les déplacements rotatifs de la souris * soit par un rayon lumineux et une tablette recouverte d'un fin quadrillage sur laquelle on déplace la souris 10 11 1.1.4.4.AUTRES MOYENS DE VISUALISATION Les écrans tactiles (touchscreens) l'utilisateur de pointer et de toucher directement avec son doigt un point de l'écran Ecrans plats Les écrans à cristaux liquides (LCD) Liquid Crystal Display Les cristaux liquides se présentent comme un liquide où les molécules ont une structure cristalline. particularité: les cristaux liquides sont arrangés en couches en formant une spirale Les molécules de la couche supérieure forment un angle droit avec celles de la couche inférieure Quand un champ électrique est appliqué, les molécules s'alignent toutes parallèlement les unes par rapport aux autres. De plus les cristaux liquides sont orientés à 90° , ils ont la propriété de changer la polarisation de la lumière aussi de 90°. Le principe de base d'un écran à cristaux liquides est de prendre en sandwich des cristaux liquides entre 2 filtres polarisants orientés à 90°. Un filtre polarisant laisse un rayon ou une onde lumineuse orientée parallèlement au filtre. ainsi à l'état normal, la lumière traverse les différentes couches. Si on applique une tension suffisante aux cristaux liquides, ceux-ci s'orientent de manière parallèle et le rayon lumineux n'est plus polarisé, il est arrêté par le filtre polarisant. La quantité de lumière traversante peut être modulée par l'orientation des cristaux liquides eux-mêmes directement modulés par la tension électrique appliquée. Il est possible de faire des écrans couleurs, à chaque pixel est composé de 3 sous-pixels, un par couleur (bleu, rouge et vert). Un film comportant des bandes alternatives colorées ajoute à la lumière émanant du cristal liquide Technologie dite de matrice passive: consiste à utiliser une matrice de fils électriques jouant le rôle d'électrodes. L’intersection d'un fil horizontal avec un fil vertical permet de déterminer la charge appliquée à un point particulier de l'écran. seul un pixel peut être activé à la fois car il faut sélectionner une ligne et une colonne. Technologie de matrice active: Appelés aussi TFT (Thin Film Transistor) consiste à remplacer la matrice d'électrodes par une matrice de transistors, chacun contrôlable directement. Cette technologie, offrant des écrans d'excellente qualité, est beaucoup plus complexe à maîtriser. En effet, il faut produire des films comportant plusieurs millions de transistors sans aucun transistor défectueux. 11 12 Les écrans à Plasma sont composés d'une matrice d'ampoules néon miniatures. Des électrodes horizontales et verticales connectent toute les ampoules d'une même ligne et celles d'une même colonne. Chaque ampoule peut être allumée ou éteinte. Pour en allumer une, il faut appliquer une certaine tension aux lignes horizontales et verticales correspondant à cette ampoule. Le principal avantage est qu'ils ne nécessitent pas de rafraîchissement périodique. Ils offrent un affiche très stable, mais il nécessitent beaucoup d'énergie. 1.1.4.5.UNITÉS PERMETTANT L'ÉCRITURE OU LE DESSIN Imprimantes avec Impact La tête du mécanisme d'impression avait la forme d'un cylindre sur lequel les caractères étaient gravés. L'écriture exigeait un ajustement en hauteur du cylindre, suivi par une rotation amenant le caractère choisi en face du papier. Entre cylindre et papier se trouvait un ruban imbibé d'encre, comme dans les machines mécaniques. vitesse 7-15 cps (caract/sec). L'imprimante à boule : les caractères sont inscrits sur une sphère interchangeable et la vitesse de 15 à 30 cps. L'imprimante à marguerite (Daisy Wheel): chaque pétale porte un caractère à son extrémité. La pétale, sélectionnée par rotation, frappe le papier et le ruban encreur interposé. Ces imprimantes permettent des vitesse de 20 à 80 cps L'imprimante à tambour, à chaîne et à bande. sont caractérisées par des caractères préformés et gravés sur des supports en rotation rapide. Pour chaque position d'impression le long de la ligne, il existe un marteau qui frappe le ruban et le papier au passage du caractère désiré. Pour cette raison on les appelle aussi imprimantes à la volée (On-The-Fly Printers). La vitesse de ces machines varie, selon les modèles, entre 300 et 1500 lpm (ligne/Min.) Les imprimantes matricielles (Matrix printers) sont dites aussi imprimantes à points (Dot printers) la tête d'impression se déplace le long de la ligne à imprimer; Ces aiguilles peuvent être actionnés par des électro-aimants. Chaque aiguille peut frapper le papier et naturellement le ruban interposé. Simple et fiable, cette technologie permet de produire des imprimantes peu coûteuses. Leur résolution est relativement faible. Les imprimantes à impact sont encore très utilisées dans les administrations car elles permettent de faire des copies carbone. 12 13 Les imprimantes sans impact Les imprimantes thermiques ressemblent aux imprimantes à aiguilles. Mais au lieu de frapper un ruban, les aiguilles brûlent la surface d'un papier sensible à la chaleur. Le fonctionnement est silencieux mais il faut utiliser du papier spécial. 2 technologies: Le transfert thermique et la sublimation thermique Ces 2 technologies utilisent un rouleau de Cellophane recouvert d'une encre à l'état solide composé d'une succession de régions jaune, cyan et magenta dont la taille est celle de la surface d'impression. Une série de têtes thermiques est disposée perpendiculairement au sens de défilement du papier. L'impression d'une feuille couleur nécessite donc le passage du papier devant chaque couleur, ce qui fait 3 passages Le transfert thermique utilise un rouleau de Cellophane recouvert d'une encre à base de cire. Lorsque un des têtes thermiques est activée, sa chaleur fait fondre la cire et la sublimation thermique utilise un rouleau de Cellophane recouvert d'un colorant spécial. Quand l'une des têtes est activée, sa chaleur fait passer le colorant de l'état solide à l'état solide à l'état gazeux. Il se diffuse alors sur le papier et retourne à l'état solide. Les imprimantes à jet d'encre (ink jet printers) sont également silencieuse et leur vitesse est comparable à celle des imprimantes thermiques, mais elles ont l'avantage de pouvoir imprimer tout symbole ou graphisme sans les contraintes des imprimantes matricielles. fonctionnement: création d'un faisceau de gouttelettes d'encre chargées électriquement et dirigées sur le papier avec une grande précision par un système par un système de plaque de déviation. La qualité d'impression est très bonne et cette technique permet aussi d'imprimer en couleurs en utilisant des encres de couleurs différentes. La résolution varie entre 200 ppp et 400 ppp.(point par pouce) Les Imprimantes à laser utilisent des méthodes électrostatiques. Elles commencent par former une image électrostatique sur un tambour photoconducteur. Le tambour passe devant une station d'encrage ou l'encre chargée électriquement est attiré uniquement par les points précédemment chargés ( de signe électrique opposé). L'image est transférée sur le papier par friction du papier sur le tambour. Cette technique permet l'impression sur du papier ordinaire. Les imprimantes à laser créent une image point par point de la page à imprimer sur 13 14 un tambour recouvert d'une couche photosensible; des particules noircissantes sont attirées aux endroits chargés du tambour et transférées ensuite sur le papier par contact, en exploitant la force entre charges électrostatiques. Le papier est enfin chauffé pour fixer définitivement les particules. On atteint des résolutions verticales et horizontales variant entre 300 dpi et 2000 dpi (standard actuel 600 dpi). Les traceurs utilisent des périphériques spécialisés : Les traceurs de courbes (Plotters) le traceur à rouleau de papier: la plume ne se déplace que selon un axe horizontal le long d'une génératrice du cylindre. La composition des 2 mouvements de la plume et du rouleau du papier permet de tracer des courbes à 2 dimensions Les traceurs de type table: la plume se déplace selon 2 directions orthogonales sur le papier posé à plat. 1.1.4.6. LA LECTURE OPTIQUE (OPTICAL READERS OU SCANNERS) Les digitaliseurs (Scanners) sont des équipements périphériques qui permettent de numériser une image à partir d'une copie sur un support solide tel que le papier. Le résultat de la digitalisation est une image digitale ou numérique stockée dans un fichier. Différents appareils permettent de digitaliser à partir d'images papier, de transparents, de diapositives ou de négatifs photo. La précision varie de 100 à plus de 1000 dpi. Fonctionnement: La couleur blanche réfléchit pratiquement toute la lumière alors que la noir ne réfléchit presque rien. La réflexion des différents niveaux de gris est directement proportionnelle à leur intensité. La plupart des digitaliseurs utilisent des cellules CCD (charge coupled device) pour mesurer la quantité de lumière sui leur parvient. Une cellule CCD transforme une quantité de lumière en un signal électrique qui leur est proportionnel. Ensuite le signal électrique est transformé en une valeur numérique. Les appareils couleur nécessitent 3 passages au dessus de l'image. En effet, il faut évaluer chacune de 3 couleurs primaires séparément. Pour cela ils utilisent des filtres colorés, un par couleur primaire (rouge, vert et bleu). Un logiciel généralement associé aux digitaliseurs et celui de la reconnaissance des caractères (OCR optical Character Recognition). Le programme après digitalisation, d'effectuer une analyse de reconnaissance des caractères. On peut tenter récupérer un fichier texte qui peut être édité à l'aide d'un logiciel de traitement de texte. 14 15 1.1.4.7.TRAITEMENT DE LA VOIX La voix peut être traitée en entrée ou en sortie dans les systèmes informatiques. Les unités de sortie sont plus développées que les unités d'entrée Le premier problème : en entrée:la numérisation de la voix ( conversation analogique/numérique) et le stockage de cette information. Le second est la reconnaissance du contenu de cette information, cad : des phonèmes des mots des phrases et de leur sens!! Ceci est possible de nos jours, mais de manière limitée (vocabulaire de quelques mots) et dans des bonnes conditions de bruit de fond. En sortie: on dispose de générateur de sons, de phonèmes, permettant de synthétiser la parole (voice synthesizer). Un autre type d'équipement permettant d'enregistrer et de stocker la voix sous forme numérique, et de la reproduire après certaines manipulations (suppression des blancs), mais sans avoir analysé le contenu. technique de la messagerie vocale (téléphonie). 1.1.4.8 AUTRES UNITÉS PÉRIPHÉRIQUES De très nombreuses autres unités périphériques sont couramment utilisées dans diverses circonstances particulières, et leur nombre croît sans cesse avec les nouvelles applications informatiques. Certaines de ces unités périphériques sont illustrés par les documents 20K à 21C 1.2 Processeur central 1.2.1 Horloge «temps de cycle» Les circuits qui synchronisent et contrôlent toutes les opérations de l'ordinateur sont situés dans l'unité de commande. Les signaux périodiques générés par l'horloge définissent le cycle de base ou cycle machine (Clock cycle), durée élémentaire régissant le fonctionnement de la machine. Le temps d'exécution d'une instruction dépend du type d'opération à effectuer. Un cycle instruction peut s'étendre sur plusieurs cycles machine. Le terme cycle CPU pour indiquer le temps d'exécution de l'instruction la plus courte ou la durée d'une action élémentaire provoquant un changement d'état. 15 16 Le cycle mémoire est beaucoup plus long que le cycle CPU et limite la performance de l'ordinateur. Ces fréquences vont typiquement de l'ordre du Mégahertz (million de cycle par Sec) au Gigahertz. 1.2.2 Registres compteur Ordinal (CO) Le Program counter (PC) contient toujours l'adresse en mémoire de la prochaine instruction à exécuter. Le CO est automatiquement incrémenter après chaque utilisation. La taille du CO dépend du nombre de positions de mémoires adressables. Par exemple avec un CO de 16 bits on peut adresser une mémoire de 2 exposant 16 mots. Le programmeur n'a pas accès au CO directement. Registres d'indice (XR) ou d'index (Index Registers) peuvent être utilisés comme les registres généraux pour sauvegarder et pour compter. Mais en plus ils ont une fonction spéciale qui est de plus grande utilité dans la manipulation des tableaux de données. Ils peuvent être utilisés pour manipuler des adresses selon l'adressage indexé. principe de l'adressage indexé: l'adresse effective d'un opérande est obtenue en sommant la partie adresse de l'instruction avec le contenu du registre d'index spécifié. Registres d'instruction (RI) lorsque le CPU va chercher une instruction en mémoire, il la place dans le RI. La taille du RI correspond à la taille du motmémoire. Le programmeur n'a pas d'accès au RI. Les bits correspondant à la zone code opération sont envoyés au décodeur, soit à la mémoire de microprogrammation pour déterminer l'opération à exécuter. Les registre d'opérations (d'unités fonctionnelles) L'accumulateur (ACC) l’ACC contient un des opérandes avant l'exécution et le résultat après. Il peut servir de registre tampon dans les opérations d'E/S. généralement l'ACC a la même taille que le mot-mémoire. Mais dans la plupart des machines il possède une extension qui permet de doubler sa taille. Cette extension est appelée le registre Q, pour contenir le résultat d'une multiplication ou le dividende et le quotient d'une division. L'extension Q est utilisée dans les opérations en double précision pour contenir les bits les moins significatifs. Le programmeur à accès a l'ACC, qui est toujours très sollicité pendant le traitement des données. 16 17 Les registres spécialisés les registres à décalage (shift registers) les registres pour opérations arithmétiques en virgule flottante (floating point registers) Les registres d'état (PSW = Program Status Word) appelés aussi registre condition, le registre d'état contient différents bits appelés drapeaux (flags) indiquent l'état d'une condition particulière. Les registres pointeur de pile (SP = Stack Pointer) utilisé pour simuler une pile dans la mémoire dans laquelle on réserve une zone de mémoire. Le registre SP fonctionne comme un registre d'Adresse mémoire (RA) utilisé uniquement pour la partie pile de la mémoire RAM. Lorsque un mot est chargé dans la pile, son adresse est inscrite dans le SP. Lorsqu'un mot est lu, la lecture se fait à partir de l'adresse indiquée par le pointeur SP. Le pointeur indique à tout instant l'adresse correspondant au sommet de la pile. Le fonctionnement d'une pile (LIFO = Last In First Out): chaque fois qu'un mot doit être enregistré dans la zone mémoire réservé pour la pile, il est placé à l'adresse qui suit celle du mot enregistré précédemment les informations enregistrées dans la pile sont lues dans l'ordre inverse de celui dans lequel elles ont été enregistrées. Une fois que le mot est lu, son emplacement dans la pile devient disponible pour une nouvelle information. Les registres relatifs à l’adressage en mémoire centrale Dans un environnement de multiprogrammation: mémoire non pagée, divisée en partitions que les limites inférieure et supérieure de la partition référenciée sont connues du CPU et que chaque adresse référenciée est comparée à ces limites pour vérifier qui ne les excède pas. Il faut dans ce cas 2 registres par ex. Le Relocation Register (RR): contient l'adresse du premier mot de la partition et le Protection Register (PR): sa longueur Ces registres sont chargés par le système exécutif lors de chaque changement de tâche mémoire pagée Les circuits de traduction adresse virtuelle / adresse physique, sous contrôle du système exécutif, réalisent également ce genre de vérification. on trouve dans le CPU, une partie plus ou moins grande de la table d'équivalence adresses virtuelles/physiques (page map) D'une manière générale, l'ensemble des circuits d'adressage 17 18 de la mémoire centrale, de vérification de la validité des références, et les registres associés, constituent une unité fonctionnelle du CPU parfois relativement autonome ex.: le Memory Management unit (MMU) Le Store Control etc.. 1.1.3 Les Indicateurs (Flags) - registre d'un seul bit représente des valeurs d'exception ex.: division par Zéro représente des états de type d'opération: ils sont à l'image de ce qui est en train de se passer si ils sont bien utiliser par les compilateurs, ils permettent d'augmenter la vitesse de traitement. Les registres Flags sont rassemblés ensemble et forment le PSW (Program Status Word) Les flags peuvent avoir des fonctionnement assez brutaux: les flags peuvent induire un comportement qui n'est pas habituel de la part des ordinateurs ex.: lors d'une baisse de courant , les senseurs envoient un signal au flag qui signale au CPU un sauvetage général (registre Cache). génération d'un trapping. 1.1.4 Interruptions, changements de contexte Le changement d'activité du CPU appelés changement de contexte (Context switching) est liée une mise en mémoire +/- généralisée des différents registres et indicateurs, qui représentent exactement l'état dans lequel se trouvait la machine au moment de l'interruption. Lors d'un changement de contexte, l’état du processus en cours est sauvé et celui du processus à poursuivre est restauré. 1.1.5 Evolution des processeurs, augmentations de puissance Multiplications On assiste à une multiplication et une banalisation des registres. certains groupes de registres vont être désignés pour certaines tâches, mais à l'intérieur d'un même groupe, ils sont banalisés. l'idée va être de duplicier des ensembles de registres qui on le même nom de 0 à 31 par ex.: entre les 2 ensembles, on met un interrupteur qui bascule 18 19 - - entre le groupe 1 ou le groupe 2. --> lors du changement de contexte plus de sauvegarde - restauration des informations. on met le système exécutif dans le groupe 1 et les tâches sur le groupe 2 Le basculement de l'interrupteur n'est pas commandé par une instruction du système exécutif; on simule l'existence d'un seul groupe numéroté de 0 à 31. Dès lors on va avoir jusqu'à 8 groupes de registres avec un interrupteur électronique qui sélectionne et qui rend actif électroniquement le groupe. ( le système exécutif sait à quel tâche appartient le groupe de registre. chaque fois qu'il y a interruption, on bascule sur le groupe 1 et le système exécutif reprend la main. Pré - lecture des instructions Comme on possède des CPU bien éclatés pour des opérations différentes et bien fonctionnelles. L'idée est que plusieurs instructions peuvent être lues à la fois Il faut que les instructions soient différentes Il faut plusieurs registres counter --> Register stack (permet de lire plusieurs instructions) Instruction decoding ---> permet de faire la prélecture prélecture: On la lit sans encore savoir si on va l'exécuter, une fois qu'elle est dans le CPU, on va exécuter l'instruction à condition qu'elle ne sait pas conflictuelle avec une instruction qui s’exécute déjà. on peut lire déjà l'instruction suivante et ainsi de suite. * Si une interruption arrive de ce travail de prélecture, on ne la prend pas en compte tout de suite. On va parfois attendre plusieurs cycle avant d'exécuter l'interruption, le temps que de l'ordre soit remis dans l'ordre des instructions en cours. * Dans ce modèle de travail, le programme Counter va aussi travailler de façon Hardware avec des pointeurs pour savoir ce qui est prélu, lu et exécuté. * Ce mécanisme est implanté dans la plupart des machines actuelles y compris dans les micro-ordinateurs ex.: Intel 486 +/- 6 instructions prélues. * Afin de rendre le système encore plus performants, on peut duplicier les unités de fonctionnalité ex.: plusieurs ADD ==> plusieurs instructions les mêmes en même temps. * si on rencontre une condition JUMP (if then else), on prélit les deux branches en même temps jusqu'au moment ou le résultat du test sort le bon JUMP. on ne garde alors que la bonne branche. 19 20 * Utilisation des registres instructions qui permet de lire plusieurs instructions à l'avance. PIPELINE PROCESS--> Phénomène de pseudo parallélisme ou plusieurs processus sont en cours simultanément. (ex. chaîne de montage voiture) 1.2.6 Microprocesseurs & Microprogrammation a. Microprocesseurs la micro-électronique est à la base du développement accéléré de l'ordinateur pendant la dernière décennie. * Elle est à l'origine de l'accroissement de la taille des mémoires centrales et de l'augmentation du nombre et de la puissance des unités de traitement dont on profité les ordinateurs de haut de gamme, les machines parallèles et les supercomputers. * elle a donné naissance à toute une série de composants d'un niveau élevé, permettant ainsi de construire facilement et avec un nombre relativement petit de boîtiers des machines bon marché. Tout commença en 1971, avec l'Intel 4004. il s'agissait d'un CPU entièrement intégré sur une microplaquette de quelques mm(carré) Microprocesseur: circuit intégré réalisant une unité de traitement complète (unité de commande + UAL) Evolution des microprocesseurs Dès 1975, les progrès technologique s'accélère et permet d'intégrer de + en + de circuits dans une puce. Dans les années 80, apparition des architecture 32 bits, on peut disposer de microprocesseurs assez puissants ( plusieurs dizaine ou centaines de MIPS). On atteint actuellement les limites des architectures 32 bits et on est passé aux architecture 64 bits qui deviennent le standard actuel ( Alpha de DEC). Certains processeurs adoptent déjà une architecture 128 bits soit pour le bus de données, soit pour le bus des instructions. Les progrès technologique permettraient d'augmenter la densité des composants, d'améliorer encore les performances et de baisser ultérieurement les prix. Limite quantité de matière implique dimension: atome 10 exp(-7) - 10 exp(-4) ==> 1 micron = 1000 atomes actuellement 1/10 de micron (petit cube) = 1 milliard d'atome si on gagne encore 1 facteur 10 dans les prochaines années le cube contiendra 1 million d'atomes. Le problème sera avant la taille , la pureté du cristal Evolution des microprocesseurs RISC et CISC Dans le milieu des années 70, on remarque que seule une partie du jeu d'instructions des microprocesseurs est réellement utilisée pendant l'exécution des programmes. A partir de cette constatation est né le concept d'un microprocesseur avec un jeu 20 21 limité d'instruction, les microprocesseurs sont RISC (Reduced Instruction Set Computer). Ces microprocesseurs sont caractérisées par un jeu restreint d'instruction simples effectuées rapidement en un cycle d'horloge. Par opposition au terme RISC, les microprocesseurs classiques ont été appelés CISC (Complex Instruction Set Computer) Les microprocesseurs RISC (Reduced Instruction Set Computer) né suite à une constatation dans 80% des cas, un processeur n'utilise que 20% de son jeu d'instructions. les instructions les + utilisées sont celles de transfert entre unité centrale et mémoire et les branchements aux sous-programmes. L'évolution conduit à développer des processeurs ayant des jeu d'instructions de + en + complexes. Ces instructions complexes sont de programmes microcodés dont le décodage est effectué à l'intérieur du processeur et dont l'exécution peut prendre plusieurs cycles d'horloge. Le temps passé au décodage n'est pas pénalisant comparé au temps d'accès à la mémoire. Caractéristiques d'un RISC: exécution des instructions en un seul cycle d'horloge simplification du format des instructions (généralement 32 bits) réduction et simplification du jeu d'instruction (modes d'adressage limités) utilisation intensive des registres séquenceur câblé - Problèmes du RISC est lié à la compilation des programmes et plus particulièrement à la génération de code. un effort particulier a du être apporté à la génération de code et son optimisation: l'allocation optimales de registres (pour éviter des accès à la mémoire) l'élimination des redondances l'optimisation des boucles (expressions non modifié dans une boucle sont sorties de la boucle). le remplacement d'opérations lentes par des opérations rapides. l'optimisation des pipelines Les RISC sont plus simples que les CISC ce qui entraîne un temps de conception plus court, des circuits plus petits laissant la place pour des registres, des co-processeurs permettant d'augmenter les performances. De plus la simplicité de l'architecture est aussi un avantage pour l'utilisateur car le jeu d'instruction est plus facile à utiliser. L'avènement des processeurs RISC pose le problème nécessaire de développer de nouveaux buts plus performants. 21 22 Différences entre RISC et CISC L'évolution des CISC vise à simplifier la tâche du compilateur tandis que le concept RISC vise à simplifier le matériel pour augmenter les performances en utilisant une nouvelle génération de compilateurs. Au départ très différentes l'une de l'autre, les processeur RISC et CISC migrent vers un même objectif: l’exécution d'une ou plusieurs instructions en un seul cycle d'horloge avec des fréquences de + en + rapides. Pour cela les 2 familles utilisent les mêmes principes : de mémoire cache de gestionnaire de mémoire de pipeline et d'architecte parallèles Les transputers Un transputer est une sorte de petit micro-ordinateur très simple contenant un microprocesseur, une mémoire locale et des liens pour pouvoir le connecter à un autre transputer. Un transputer est intégré dans un seul circuit. Le but des transputers est de développer des briques de base peu coûteuses destinées à construire des systèmes parallèles concurrents. C'est en 1985 qu'apparut le premier Transputer (T414) développé par la compagnie IMMOS. C'est un processeur 32 bits avec 2kbytes de mémoire et 4 liens de connexion à d'autres transputers. Le T800 (intègre aussi une unité de traitement des nombres flottants), le T425, le T805 et ensuite le T9000. La programmation d'un système construit à partir de plusieurs transputers se réalise à l'aide du langage OCCAM qui permet de tirer pleinement parti de cette architecture parallèle où les processus s'exécute de façon concurrente et s'échangent des messages. b. microprogrammation Une technique de conception et de fonctionnement des processeurs centraux, appelée microprogrammation et existant de longue date, est particulièrement d’application dans le cas des microprocesseur, dans la mesure où, selon ce principe de microprogrammation, le jeu d’instruction n’est plus défini de manière rigide, correspondent aux opérations pouvant être réalisées globalement par les unités fonctionnelles ; au contraire, ces dernières vont être divisées en sous-unités ou « micro-unités » qui ne sont capables que d’opérations tout à fait élémentaires ou micro-instructions et le code opératoires est décodés et interprété au moyen d’une table présente dans une « mémoire de contrôle » (control store) interne au processeur, de manière à définir quelles micro-unités fonctionnelles doivent être activées, dans quel ordre, etc., pour réaliser une opérations complexe. Il s’agit donc d’une programmation interne au processeur central (appelée microprogrammation, définissant un microcode, dont l’exécution est régie par un « micro compteur ordinal » souvent appelé sequencer) qui permet de définir la 22 23 suite d’opérations à associer à un code opératoire donné. Cette définition correspond à l’information présente dans la mémoire de contrôle ; celle-ci est généralement de type ROM (read-only memory) parfois modifiable (writeable control store), et peut éventuellement être multiple, c’est-à-dire qu’un choix peut être opéré entre plusieurs microcodes, donc entre plusieurs interprétations différentes d’un même jeu d’instructions. Cette méthode est utilisée par de nombreux constructeurs pour exécuter sur un processeur donné le jeu d’instructions d’un autre, par exemple d’un modèle antérieur, ou pour rendre un processeur compatible avec celui d’un autre constructeur ; on emploie dans ce cas le terme « émulation » (plutôt que simulation). 1.2.7 Systèmes puissants, super-ordinateurs développement des ordinateurs se poursuit dans 2 directions principales: accroissement des performances et miniaturisation des composants. Dans le haut de gamme, on construit des ordinateurs aux performances extrêmes répondant aux exigences des applications scientifiques et des techniques les plus avancées. L'autre extrémité de la gamme on cherche à développer des microplaquettes (chips) contenant un nombre toujours plus grand de circuits logiques. L'accent est mis sur le rapport prix/performance. L'idée est de fabriquer un CPU sur une seule puce; c'est la définition même de microprocesseur. En plus du processeur les microplaquette peuvent contenir les coprocesseurs arithmétiques, les mémoires cache, et les autres fonctions de communication et d'E/S. Fabriqués en grande quantités, ces microprocesseur offrent des performances à des prix relativement bas. Les scientifiques et les ingénieurs ont toujours dû affronter des problèmes dépassant la capacité de calcul des machines les plus puissantes (météorologie, aérodynamique, physique de particules , les mathématiques appliquées etc.). On résout des problèmes, soit en augmentant la vitesse d'exécution de l'Unité centrale, soit en mettant plusieurs processeurs en parallèle, ce qui permet d'exécuter plusieurs travaux en même temps et de distribuer un calcul donné sur plusieurs processeurs. La technologie moderne permet d'envisager des architecture exploitant la simultanéité des opérations à tous les niveaux. on conçoit des machines avec plusieurs additionneurs ou multiplicateurs pouvant travailler en même temps au sein de l'UAL. multiprocesseur: On fait aussi des machines avec plusieurs processeurs, pouvant fonctionner en parallèle multiordinateur: chacun doté de sa propre mémoire et capable 23 24 de communiquer avec les autres grâce à des réseaux très performants Parallélisme signifie que plusieurs actions peuvent se dérouler en même temps de manière concurrente. Par conséquent, en augmentent le parallélisme d'une machine on augmente sa capacité de traitement. Mais la machine devient plus complexe et plus difficile à programmer. Les systèmes hautement parallèle ne peuvent que rarement profiter, bien que dans une moindre mesure, des possibilités offertes par l'architecture. Les machines parallèles représentent la seule direction de recherche envisageable pour atteindre le Tflops (mille milliards d'opérations en virgule flottante par seconde) avant la fin du siècle. Pipelining est adopté pour accroître les performances des unités de traitement des ordinateurs de n'importe quel niveau de puissance. Il s'agit d'une idée très simple de l'organisation du travail à la chaîne, par exemple chaînes d'assemblage des voitures, etc. Le Pipelining est une technique permettant d'effectuer davantage de travail par unité de temps quand il faut répéter une opération donné sur un grand nombre d'opérandes. Elle consiste à segmenter une opération complexe en séquence d'actions plus simples . chaque action simple est réalisée par un dispositif particulier. plusieurs instruction complexes peuvent ainsi être traitées en même temps tout en étant à des stades différentes d’exécution. Au lieu de concevoir une unité s capable d'effectuer l'opération p dans le Temps T, on divisera le travail en segments P1,P2,P3,P4,... exécutés par des sous-unités S1, S2, S3,S4,... dans des temps T1,T2,T3,T4,... fractions du temps T. Dès que la chaîne du pipeline est pleine, cad que les sous-unités sont occupées, on commence à sortir des résultats à un rythme beaucoup plus élevé que dans le cas de l'unité non segmentée. Il ne s'agit pas d'augmenter la vitesse d'exécution d'une opération, mais de produire davantage de résultat par seconde, en fournissant continuellement des opérande à l'entrée du pipeline. voilà donc une méthode pour accroître ma capacité en Mflops. Il suffit de segmenter les différentes opérations en virgule flottante et restructurer le Hardware concerné de manière analogue au station de montage. On peut gagner encore plus de temps en arrangeant des pipelines en parallèle (pipelines multiples). avec 3 additionneurs segmentés en 5 stations et travaillant en même temps, on améliorera le productivité exprimé en Mflops d'un facteur 15. La technique du pipelining peut aussi s'appliquer à des dispositifs autres que ceux faisant partie de l'UAL. Par exemple, la section de l'unité de commande qui traite les instructions peu être organisée en pipeline. comme suit: - chercher en mémoire centrale l’instruction suivante 24 25 décoder le code opératoire chercher l'opérande activer le séquenceur ou le effectuer l'opération avancer le Compteur Ordinal Les actions ainsi définies peuvent se le temps, le débit est nécessairement microcode d'une unité suivre et se recouvrir dans augmenté. Processeurs Scalaires et Vectoriels La technique de pipelining ouvre la voie au traitement systématique de blocs de données, qu'on appelle aussi vecteurs (Vectors). Un vecteur est une variable ayant plusieurs valeurs. un pipeline doit fonctionner automatiquement une fois l'opération lancée, sans intervention ultérieure de la part du programme. Le programme doit se limiter à spécifier le type d(opération désirée et les vecteurs concernés, ce qui peut se faire en une seule opération Processeur Vectoriel Une unité d'exécution (UAL) organisée pour effectuer des opérations sur des vecteurs. Une telle opération est déclenchée par une instruction vectorielle faisant partie du jeu d'instruction de la machine. Avec une seule instruction, on peut donc provoquer la somme de 2 vecteurs, cad les éléments correspondant aux deux vecteurs. Processeur Scalaire s'il en possède pas la faculté d'opérer sur des vecteurs, et qu'il ne peut qu'exécuter des instructions dont l'effet se limite à des variables scalaires, cad des variables ayant une seule valeur. * Pour être efficace, - un processeur vectoriel doit disposer de blocs ultra - rapides, capable de stocker les vecteurs mémoire centrale et prêts à être avalés par l'un - Il doit posséder suffisamment de registre pour résultats produits, avant de les envoyer vers la de registres provenant de la des pipelines y déposer les mémoire * Souvent, Les résultats issus d'un pipeline doivent être soumis à d'autres pipelines pour des traitements ultérieures. Inutile dans ces cas de leur imposer un voyage aller et retour vers la mémoire et d'encombrer davantage le bus. Certains systèmes offrent le possibilité d'enchaîner les opérations vectorielles (Chaining). Des vecteurs peuvent subir des traitements successifs, programmés à l'avance, sans quitter le CPU, limitant l'accès à la mémoire. On réalise ainsi un autre niveau de pipelining. Processeur superscalaires Ce nom est donné à des processeurs capables d'exécuter en parallèle un petit nombre d'instruction (de 2 à 5). La 25 26 simultanéité est réelle. On peut par exemple exécuter une instruction en virgule flottante pendant que l'autre unité fait des opérations avec des nombres entiers et qu'une troisième s'occupe d'un transfert mémoire registre. C'est le processeur qui gère ses unités de traitement et qui s'organise à optimiser le parallélisme. La performance des machines superscalaires dépend beaucoup du compilateur qui doit être capable de trouver suffisamment d'instructions pouvant être exécutées en parallèle, cad n'ayant pas de dépendances entre les variables. Approche VLIW (Very Long Instruction Word) consiste à placer dans un mot de taille assez grande (plus de 100 bits), plusieurs instructions prêtes à être exécutées en parallèle par des unités fonctionnelles multiples indépendantes; Le VLIW est similaire à l'approche superscalaire mais la gestion du parallélisme n'est plus effectués par le processeur. Le concept VLIW fait entièrement confiance au compilateur qui arrange les instructions dans ces grands mots structurés. Un processeur superscalaire livre au aux différentes unités fonctionnelles des instructions individuelles issues du compilateur, tout en laissant au hardware la responsabilité de décider du nombre d'instructions à exécuter à chaque instant. L'affectation des opérations aux unités de traitement est codée dans l'instruction elle-même. Un des premiers microprocesseurs à utiliser cette technique est le i860 d’Intel qui a des instructions d'une longueur de 128 bits. Architecture des superordinateurs L'existence des superordinateurs est très courte. définition: machines capables de résoudre des problèmes qui ne peuvent pas être traités des systèmes existants. cette définition en rallonge pas leur durée de vie. superlatifs des constructeur s'en méfier classer ? * ==> comment les la plupart des machines à haute performances sont des Mono ou Multiprocesseurs vectoriels à pipeline multiple L’idée du niveau de performance: - nombre d'unités de traitement - du cycle machine - de la capacité de la mémoire centrale ainsi que des registres affectés aux calculs vectoriels dans les processeurs. - des débits du bus reliant la mémoire aux processeurs centraux et des connexions entre la mémoire centrale et les mémoires auxiliaires - plus l'indispensable logiciel capable d'exploiter ces ressources. 26 27 Les MIPS et Les Mflops sont des indicateurs souvent trompeurs et leur calcul varie selon le fabriquant. Si la plupart des ordinateurs peuvent être décrits comme des machines dotées de processus vectoriels à pipelines, il faut encore distinguer entre les différents niveaux d'intégration de ces processeurs. En effet, plusieurs constructeurs offrent en option des processeurs pour les calculs vectoriels que l'on peut brancher sur des ordinateurs scalaires. la tendance est à la généralisation et à la diffusion des facilités vectorielles. Les Machines Parallèles Le progrès technologique permet de réaliser des architectures d'un très haut niveau de parallélisme, avec des centaines (voir milliers) de processeurs. ces machines sont aussi des supercomputers, en effet pour certaines applications, ils peuvent offrir des performance remarquables. L'idée de base de tout ordinateur parallèle est de distribuer le travail nécessaire à la solution d'un problème sur plusieurs processeurs faisant partie de la même machine. On observe en effet que la plupart des programmes que l'on exécute en séquence, il existe des blocs d'instructions totalement indépendants, qui pourraient être exécutés en même temps. Cela implique un nouveau style de programmation et une complexité accrue au niveau du logiciel. Il est évident que certains problèmes tels ceux rencontrés dans les mathématiques appliquées, traitement d'images ou en physique, possèdent un bon niveau de parallélisme naturel et peuvent être adaptés à un traitement parallèle. d'autre, il y a des programmes qui ne se prêtent pas facilement à une telle décomposition. Conclusion: on dispose de puissantes machines scalaires exécutant leurs instructions selon le principe de Von Neumann et dont on a appris à se servir depuis une quarantaine d'années. depuis une quinzaine d'années, des processeurs vectoriels très puissants, capable de résoudre des problèmes qui étaient réputés infaisables, à cause du temps d'exécution sur les machines scalaires. on peut compter sur toute une gamme de machines parallèles avec d'énormes capacité de calcul, distribuées sur des grandes quantités de processeurs, amis qui demandent au programmeur une approche différente. Parallélisme distinguer 2 niveaux de parallélisme parallélisme interne à l'intérieur d'un ordinateur classique, sous 3 formes: 27 28 parallélisme par duplication: réaliser une simultanéité réelle de certaines opérations ou actions, en multipliant les dispositifs affectés à ces tâches ex.: additionneurs parallèles Bus multilignes pour transferts parallèles mémoire à blocs indépendant entrelacés additionneurs ou multiplicateur supplémentaire etc.. parallélisme par anticipation: on réalise un accroissement des performances en effectuant certaines actions susceptibles de réduire le temps d'attente d'une unité critique ex.: recouvrir dans le temps d'exécution d'une instruction avec la recherche de l'instruction suivante doter le CPU d'une antémémoire faire un transfert de données entre une unité périphérique et la mémoire en vue de traiter ultérieurement et pendant que le CPU fait autre chose etc. Le recouvrement des actions dans un pipeline, peut être cité comme exemple de ce type de parallélisme parallélisme par multiplexage Lorsque plusieurs unités lentes sont servies par unité rapide, on réalise, on réalise une simultanéité apparente. C’est le cas par ex.: des systèmes utilisés en temps partagés (Time Sharing). parallélisme externe on peut distinguer 3 types d'architecture: SISD (Single Instruction Single Data stream) = Von Neumann = strictement séquentielle te dépourvue de parallélisme externe. Elle a donc une seule unité de commande traitant une seule séquence d'instructions (Single Instruction stream) et une seule unité d'exécution (UAL) traitant une unique séquence de données (Single Data stream). SIMD (Single Instruction Multiple Data streams) une unité de commande unique, mais plusieurs unités d'exécution. Tous les processeurs exécutent la même instruction simultanément. On peut classer dans cette catégorie les processeurs vectoriels qui exécutent la même instruction sur des tableaux différents. MIMD (Multiple instruction Multiple Data streams) on peut classer dans cette catégories les multiprocesseurs, où chaque processeurs exécute un programme différent, et aussi les machines parallèles où tous les processeurs travaillent au même problème MISD (Multiple instructions Single Data stream) pour de raisons de symétrie, on prévoit l'architecture de ce type, dont on n'a pas encore vue un exemplaire de cette catégorie 28 29 parallélisme transparent On remarquera que la plupart de ces techniques, visant à l’accroissement des performances, ne concernent pas directement l'utilisateur = parallélisme transparent pipelining L’antémémoire parallélisme visible: nécessitant la collaboration de l'utilisateur pour être réalisé efficacement. ex.: Machines vectorielle et parallèles, où la programmation joue un rôle fondamental dans la recherche d'une performance maximale. 1.2.8 Ensemble de processeurs, réseaux locaux Dans cette architecture, l’ensemble des éléments forme "un système informatique" mais en répond plus à la définition que nous avons donné jusqu'ici, basée essentiellement sur une mémoire centrale qu'accèdent un ou plusieurs processeurs et où réside une partie fondamentale du système exécutif. Ici les fonctions du système sont totalement distribuées, déconnectées (loose coupling) il faut bien entendu un ensemble de conventions, de normes, de protocoles pour que ces différents éléments puissent échanger des informations et coopérer à la réalisation des tâches. Un réseau d'ordinateurs est un ensemble d'ordinateurs, géographiquement dispersés, reliés entre eux par un ou plusieurs liens afin de permettre les échanges d'informations Réseau local LAN Local Area Network réseau dont les nœuds se trouvent dans le même bâtiment ou dans des bâtiments voisins, donc éloignés jusqu’à quelques centaines de mètres 1.2.9 Développements récents (micro-ordinateurs et station de travail) Par rapport aux gros ordinateurs, les micros offrent une vitesse de calcul comparable, mais des mémoires plus petites et surtout des dispositifs d'E/S et des périphériques moins performants. Mais mentionnons le développement explosif des Stations de travail personnel (PWS) telles APOLLO, SUN, DECstation regroupant en un système compact la plupart des développements des chapitres précédents. De tels outils associés avec une avalanche d'ordinateur personnels, obtiennent le nouveau rôle de SERVEURS, amènent au concept d'informatique distribuée ou répartie, lié fortement aux développements des réseaux et de la Télématique. 29 30 2. ASPECTS LOGICIELS Le Système Exécutif 2.2.1 Segmentation, réentrance, overlays Segmentation concerne le division du programmes en module, ou segments chaque segment correspond à une entité logique, telle une procédure ou un bloc de données, indépendante des autres segments * La segmentation permet au programmeur de définir plusieurs espaces d'adresses séparées. Par exemple le concepteur du compilateur pourrait envisager des segments correspondant aux différents phases de la compilation; Les donnée seraient aussi associées à des segments séparés (texte source, code objet, table des symboles, arbre syntaxique, etc.) ce qui aurait l'avantage d'éviter les débordements et donc le recouvrement de tables. * On peut considérer la segmentation comme une alternative au retassement, les segments se prêtant plus mieux à l'occupation de l'espace mémoire fragmenté Le système exécutif se charge de placer en mémoire les segments nécessaires à l'exécution des programmes prêts à utiliser le CPU C'est le système qui doit savoir où sont stockés les différents segments. Pour cela il organise et gère un ensemble de tables de segments (segment table). une table par Job, contenant les adresses de chargement des segments de chaque programme. * L'adresse est structurée et contient 2 champs: le numéro du segment le déplacement (offset) à l'intérieur du segment chaque processus est associé à une table de segments. Le calcul de l'adresse effective est réalisé, comme d'habitude, à l'aide d'un dispositif spécial, en ajoutant l'offset à l'adresse de chargement du segment qui est stockée dans la table des segments. Réentrance Le code Réentrant (également appelé code pur) est un code invariant. si le code est Réentrant, il ne change jamais pendant l'exécution. Ainsi deux ou plusieurs processus peuvent exécuter le même code en même temps. chaque processus possède sa propre copie de registres et son stockage de données afin de contenir les données pour l'exécution de processus. Les données pour les 2 processus différents vont bien sûr varier pour chaque processus. On peut partager d'autres programmes très utilisés: compilateurs, systèmes à fenêtres, systèmes de base de données, etc. Pour pouvoir partager un code, il faut que celui-ci soit Réentrant. Un autre avantage de la segmentation concerne le partage du code ou des données. chaque processus possède une table de segments 30 31 associée à son bloc de contrôle de processus, que le dispatcher utilise afin de définir la table des segments matérielle quand on alloue l’UC à ce processus. Les segments sont partagés quand les entrées dans les tables de segments de 2 processus différentes pointent vers les mêmes emplacement physiques. Le partage se produit au niveau du segment. Ainsi, toute information peut être partagée si elle est définie comme un segment. on peut partager plusieurs segments, un programme constitué de plusieurs segments peut donc être partagé. Envisagez l’utilisation d'un éditeur de texte dans un système en temps partagé Un éditeur complet peut être très grand et composé de plusieurs segments Overlays ( segment de recouvrement) Il y a de nombreuses années, les programmes étaient trop volumineux pour entrer dans la mémoire disponible. La solution généralement adoptée fut de diviser les programmes en parties appelées des segments de recouvrement (overlays). Le segment 0 s'exécute en premier. Lorsqu'il se termine, il appelle un autre segment de recouvrement. certains systèmes de recouvrement étaient trop complexes et permettaient d'avoir plusieurs segments en mémoire simultanément. Les segments de recouvrement étaient stockés sur le disque et effectuaient des va-et-vient entre le disque et la mémoire principale. Le système d'exploitation effectuait les déplacements des segments, mais le découpage du programme en plusieurs parties devait être fait par les programmeurs: c'était long et fastidieux. Très vite on demanda à l'ordinateur de s'acquitter de cette tâche. On adopta le principe de la mémoire virtuelle 2.2.2 Mémoire virtuelle multiple, machine virtuelle Mémoire Virtuelle multiple (Multiple Virtual Storage) Le principe de mémoire virtuelle établit un découplage total entre les notions d’espace d’adressage physique et virtuel. Le premier est fixé, limité, bien défini, et sert à l’implantation matérielle de certaines pages de l’autre. La manière dont ce dernier, l’espace virtuel, est considéré ou défini n’a de conséquence que sur l’algorithme qui réalise l’implantation physique et sur les structures de données associées à cet algorithmes, dans le matériel et le logiciel de pagination. Par exemple, le fait que l’espace virtuel soit +/- grand n’a d’influence que sur le nombre de bits nécessaire pour « compter » ou numéroter les pages virtuelles. Rien n’empêche donc, dans ce principe, que Iton démultiplie l’espace virtuel et que l’on en considère « plusieurs » ; cela revient à ajouter un paramètre dans la référence aux pages virtuelles, spécifiant à quel espace virtuel elles appartiennent. Dans ce contexte de mémoire virtuelle multiple (multiple virtual storage, MVS), chaque tâche ou travail « vit » dans un espace 31 32 d’adressage indépendant des autres, et le système exécutif, implanté physiquement en mémoire réelle, gère l’implantation physique des différentes pages de ces différents espaces. Machine Virtuelle Certains systèmes permettent aux programmes systèmes d'être facilement appelés par les programmes d'application. Comme avant , bien que les programmes système soient à un niveau supérieur de celui des routines, les programmes d’application peuvent visualiser tout ce qui est en dessous d'eux dans la hiérarchie comme si ceux-ci faisaient partie de la machine elle-même. cette approche en couche est amenée à conclusion logique dans le concept de machine virtuelle. En utilisant le scheduling de l'UC et les techniques de la mémoire virtuelle, un système exécutif peut créer l'illusion de processus multiples, chacun en cours d'exécution sur son propre processeurs avec sa propre mémoire (virtuelle). Normalement, le processus possède des caractéristiques supplémentaires, comme les appels système et un système de fichiers, qui ne sont pas fournies par le matériel nu. L'approche de la machines virtuelle, ne fournit aucune fonction supplémentaire mais elle propose une interface identique au matériel sous-jacent nu. On fournit à chaque procédure une copie (virtuelle) de l'ordinateur sous-jacent. Les ressources de l'ordinateur physique sont partagées pour créer les machines virtuelles. Le scheduling de l'UC peut être utilisé pour partager l'UC et faire croire aux utilisateurs qu'ils possèdent leur propre processeur. Le concept de machine virtuelle possède plusieurs avantages. notez que dans cet environnement les diverse ressources du système sont complètement partagées. chaque machine virtuelle est entièrement isolée des autres, par conséquent il n'existe pas de problème de sécurité. En revanche, il n'y a aucun partage direct des ressource, afin de pouvoir fournir le partage, on a implémenté 2 approches: 1tout d'abord, il est possible de partager un mini - disque. Ce schéma est modélisé autour d'un disque physique partagé, mais implémenté par logiciel. Avec cette technique on peut partager des fichiers 2il est possible de définir un réseau de machines virtuelles, chacune d'elles peut envoyer de informations sur le réseau de communication virtuel. Le réseau à nouveau modélisé selon les réseaux de communication physiques mais il est implémenté par logiciel. Un tel système de machine virtuelle est un moyen parfait pour la recherche et le développement des systèmes exécutif. Normalement modifier un système exécutif est une tache difficile. Comme les systèmes exécutif sont des programmes grands et complexes, il est difficile d'assurer qu'un changement à un endroit ne provoquera pas d'erreurs peu claires dans une autre partie. Ainsi la machine virtuelle permet de tester soigneusement toutes les modifications apportés au système exécutif. 32 33 2.3 Gestion des unités périphériques Les E/S sont le domaine le plus délicat dans la conception et la réalisation d'un système d'exploitation; Leur importance est fondamentale, mais toute généralisation est rendue difficile par la grande variété des unités périphériques et des procédures d'E/S utilisées dans les ordinateurs actuels. Quelques aspects du problème proviennent des causes matérielles et de facteurs objectifs mais aussi du souci de gestion optimale des ressources et de simplification de la tâche de l'utilisateur. quelques exemples: diversité fonctionnelle des unités périphériques l’énorme différence de vitesse entre les unités la diversité de codage et de structure des informations échangées la différence entre les méthodes d'accès (séquentiel, aléatoire, etc.) la grande diversité des conditions d'erreur la complexité des systèmes de liaison entre périphériques et unité centrale (DMA, canaux, bus, unités de commande) Le haut degré de parallélismes des opérations La nécessité de protéger les utilisateurs et de leur cacher les détails des E/S la nécessité de rendre les programmes le plus indépendant des types de périphériques concernés. Une approche répandue Le système exécutif réalise ces objectifs en s'efforçant de traiter tous les périphériques de la même manière et en confinant tous les traitements particuliers dans des modules spécialisés, appelés gestionnaire d'unité périphérique (Device Handlers, Drivers). on peut concevoir une structure interne à ce niveau du système s’occupant de la gestion des E/S. en procédant de l'extérieur vers l'intérieur, on peut identifier quatre sous - niveaux de logiciel soit: des procédures standard (programme de bibliothèques) utilisé par des applications et contenant des requêtes au superviseur provoquant le passage en mode privilégié. un logiciel d'E/S indépendant des unités périphériques des drivers, commandant chaque unité dans le détail des programmes de service des interruptions agissant en collaboration avec les fonctions du noyau. L’utilisateur dispose d'un jeu d'instruction d'E/S virtuelles. Une instruction d'E/S virtuelle se présente, selon le langage de programmation utilisé, sous la forme d'un appel de procédure système (Read, Write, Print, etc.) contenant les arguments nécessaires (noms des variables ou des fichiers, taille, format, unité logique, etc.). 33 34 2.4. Gestion de l'information / des fichiers Les problèmes qui se posent aux concepteurs de systèmes de fichiers et les approches adoptées pour les résoudre. Du point de vue de l'utilisateur: les aspects les plus importants de tout système de fichiers concernent son apparence et sa fonctionnalité. On s'attend bien sûr que l'interface soit simple et conviviale et que les fichiers soient protégés et leur intégrité assurée. permettre la création et la destruction de fichiers assurer et empêcher l'accès au fichier selon des directives de ceux qui les ont crées. permettre à l'utilisateur de donner un nom symbolique à un fichier et de l'appeler ensuite par ce nom. offrir des méthodes d'accès efficaces et adaptées aux applications permettre le partage des fichiers distinguer entre protection en écriture, lecture, exécution, ... protéger les fichiers de toute défaillance du matériel ou du logiciel faciliter la manipulation d'un fichier Du point de vue du concepteur/réalisateur D'autres aspects du système sont extrêmement importants, par exemple: la gestion efficace de l'espace disque. le choix et l'implantation d'un système de catalogage la manipulation des fichiers physiques de façon de façon transparente pour l'utilisateur travaillant sur des fichiers logiques. la mise en œuvre d'un système de sauvegarde acceptable, pour assurer l'intégrité des données. la réalisation d'une certaine indépendance du matériel spécifique l’efficacité et la rapidité du système la protection des fichiers contre les erreurs des utilisateurs et du système et envers les accès non autorisés 2.5. Logiciels utilitaires associés au Système Exécutif 3. IMPLANTATION DR SYSTÈMES ET MESURES DE PERFORMANCES 34 35 Qu’en est-il de l’exécution des programmes écrits en langage de haut niveau ? Si c’est simplement « plus rapide », on pourrait faire exécuter un ensemble de programmes écrits en langage de haut niveau sur une machine RISC puis sur une machine CISC et voir dans quel cas l’exécution est la plus rapide. Malheureusement, les programmes d’évaluation de performance (appelés souvent benchmarks) ne sont pas faciles à écrire. Par exemple, en quel langage doit-on les écrire ? On sait qu’en Fortran les programmes sont gros et peu structurés, qu’ils comportent peu d’appels de procédure et beaucoup de GOTO ; comme les machines RISC exécutent plutôt bien les appels de procédures mais plutôt mal les sauts, est-ce que la comparaison est juste ? Autre question : quels types de programmes doit-on inclure dans le jeu d’essai de test de performance ? Des petits programmes extrêmement récursifs, comme les tours de Hanoï ou la fonction d’Ackermann, s’exécutent très bien sur les machines RISC, mais sont-ils réellement représentatifs ? Nous avons évoqué les difficultés qu’il y avait à exécuter de vrais programmes, ce qui explique que l’on ait crée de toutes pièces des programmes de test ayant les mêmes caractéristiques générales qu’un échantillon préalablement sélectionné de programmes réels. En général, ces jeux d’essai (benchmarks) ne font aucune E/S et ne testent donc que les performances du compilateur et de l’UC. Au cours des années 70, deux chercheurs du Laboratoire national de physique en Grande-Bretagne ont mis au point un benchmark synthétique qui mesurait en whetstones par seconde les performances en calcul flottant ( un whetstone était une instruction virgule flottante statistiquement « moyenne »). Pour comparer les machines RISC et CISC, on utilise maintenant couramment le successeur du whetstone, que son inventeur n’a pas hésité à appeler le dhrystone. A la différence de son prédécesseur, le dhrystone ne mesure que les calculs sur entiers. Même si les résultats obtenus ne sont pas indépendants de la qualité des compilateurs, de l’allocation de registre et des performances des caches, on considère en général que le nombre de dhrystones par seconde reflète grosso modo la puissance d’une machine. 35