ordinateur tres important

155
I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs 1. INTRODUCTION 1.1. Préambule. Un ordinateur est une machine capable de résoudre des problèmes en appliquant des instructions préalablement définies. La suite des instructions décrivant la façon dont l'ordinateur doit effectuer un certain travail est appelée programme. Les circuits électroniques de chaque ordinateur ne pouvant reconnaître et exécuter directement qu'un nombre très limité d'instructions, tout programme doit être, avant son exécution, converti pour n'être exprimé qu'avec ces instructions. Celles-ci sont du genre : additionner deux nombres voir si un nombre est nul changer d'emplacement mémoire une donnée L'ensemble des instructions exécutables directement par un ordinateur forme un langage qui permet aux utilisateurs de communiquer avec cet ordinateur. On parle de langage machine. Les concepteurs de l'ordinateur l'on créé avec des instructions les plus simples possible ( ceci réduit les coûts ). Ceci a pour conséquence que le langage de la machine en est d'autant plus compliqué. Il devient quasi impossible de programmer de cette façon. Pour résoudre ce problème, le programmeur va écrire dans un langage qui sera converti en langage machine. Deux possibilités existent : le langage de programmation est traduit : chaque instruction du langage de programmation est remplacée par l' ( ou les ) instruction(s) équivalente(s) en langage machine. Cette traduction constitue le programme équivalent en langage machine. Il peut donc être exécuté par l'ordinateur. Nous ne parlerons pas de langage traduit mais de programme compilé. le langage de programmation est interprété : chaque instruction est remplacée par son équivalent en langage machine qui sera immédiatement exécutée par l'ordinateur. On peut comparer ces deux façons de travailler à celles des traducteurs et interprètes pour les langues étrangères. La compilation traduit une fois pour toute un programme dans sa version langage machine, ce qui permet une plus grande rapidité lors de l'exécution. Toutefois, si vous modifiez une instruction, il faut recompiler tout le programme. C'est la même chose quand vous changez de type de machine avec un autre langage machine. L'interprétation impose la conversion à chaque exécution du programme. Ceci ralentit considérablement son exécution. Toutefois, si vous changez de machine, il n'y a rien à adapter. Le [email protected] - 1 -

Upload: lougouviet-koutiebou

Post on 05-Aug-2015

72 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

1. INTRODUCTION

1.1. Préambule.

Un ordinateur est une machine capable de résoudre des problèmes en appliquant des instructions préalablement définies.

La suite des instructions décrivant la façon dont l'ordinateur doit effectuer un certain travail est appelée programme.

Les circuits électroniques de chaque ordinateur ne pouvant reconnaître et exécuter directement qu'un nombre très limité d'instructions, tout programme doit être, avant son exécution, converti pour n'être exprimé qu'avec ces instructions. Celles-ci sont du genre :

additionner deux nombres voir si un nombre est nul changer d'emplacement mémoire une donnée

L'ensemble des instructions exécutables directement par un ordinateur forme un langage qui permet aux utilisateurs de communiquer avec cet ordinateur. On parle de langage machine. Les concepteurs de l'ordinateur l'on créé avec des instructions les plus simples possible ( ceci réduit les coûts ). Ceci a pour conséquence que le langage de la machine en est d'autant plus compliqué. Il devient quasi impossible de programmer de cette façon. Pour résoudre ce problème, le programmeur va écrire dans un langage qui sera converti en langage machine. Deux possibilités existent :

le langage de programmation est traduit : chaque instruction du langage de programmation est remplacée par l' ( ou les ) instruction(s) équivalente(s) en langage machine. Cette traduction constitue le programme équivalent en langage machine. Il peut donc être exécuté par l'ordinateur. Nous ne parlerons pas de langage traduit mais de programme compilé.

le langage de programmation est interprété : chaque instruction est remplacée par son équivalent en langage machine qui sera immédiatement exécutée par l'ordinateur.

On peut comparer ces deux façons de travailler à celles des traducteurs et interprètes pour les langues étrangères. La compilation traduit une fois pour toute un programme dans sa version langage machine, ce qui permet une plus grande rapidité lors de l'exécution. Toutefois, si vous modifiez une instruction, il faut recompiler tout le programme. C'est la même chose quand vous changez de type de machine avec un autre langage machine. L'interprétation impose la conversion à chaque exécution du programme. Ceci ralentit considérablement son exécution. Toutefois, si vous changez de machine, il n'y a rien à adapter. Le langage JAVA est interprété, tandis que le C, le COBOL, le PASCAL sont compilés.

Plus un langage de programmation est proche de la machine, plus il est rapide mais moins facile à écrire. Plus un langage est facile à écrire ( on parle de langage évolué ) et moins vite il s'exécutera.

La langage le plus proche du langage machine est appelé langage assembler ( assembleur en français ). Chaque type de machine a son propre assembler ( ainsi, l'assembler micro est radicalement différent de l'assembler 370 des IBM ). Je vous montrerai un exemple de chaque sorte, tout en signalant qu'il est impossible de le transporter sur l'autre type de machine. Il est possible d'écrire un programme en Assembler mais ceci demande une quantité énorme d'instructions peu parlantes ( sauf pour certains ) et donc un risque énorme de fautes ( des bugs ). Les programmeurs système l'utilisent régulièrement pour programmer un composant matériel.

Les langages évolués et donc faciles ( hum ? hum ? ) à utiliser comme le PASCAL, le JAVA, le C, le COBOL, le Fortran, le BASIC, … permettent une programmation plus rapide et plus sûre mais sont moins proches de la machine et plus lents. Ils demandent moins d'instructions ( en général, une instruction en L.E. est traduite en plusieurs instructions en L.A. ) et sont très lisibles ( hum ? hum ? ).

Nous n'étudierons pas l'Assembler dans ce graduat. Je conseille toutefois à ceux qui veulent connaître le fonctionnement de l'ordinateur de s'en préoccuper.

[email protected] - 1 -

Page 2: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

1.2. Le modèle à six couches.

Actuellement, un ordinateur est composé de plusieurs niveaux ( ou couches ) ( ou machines virtuelles ).Voici un schéma simplifié de ces couches :

Traduction ( par compilateur ou interprète )

Traduction ( assembler )

Interprétation partielle ( système d'exploitation )

Interprétation ( microprogramme )

Exécution directe du microprogramme par le matériel

Nous allons étudier ces différentes couches pour que vous compreniez bien le chemin parcouru par les programmes que vous serez amenés à réaliser plus tard. Retenez pour l'instant que votre programme ( couche 5 ) sera traduit successivement jusque la couche 0. L'idéal serait de disposer d'une machine capable d'utiliser votre programme directement sans traduction : autrement dit : que le langage machine de votre ordinateur soit le langage dans lequel vous écrivez. Ce n'est pas impossible, mais ce serait particulièrement coûteux et difficile à mettre au point ( voir SUN et JAVA ?)

[email protected] - 2 -

Couche 5 : couche des langages d'application ou évolués.

Couche 4 : couche du langage assembler

Couche 3 : couche du système d'exploitation

Couche 2 : couche machine traditionnelle

Couche 1 : couche microprogrammée

Couche 0 : couche physique

Page 3: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

1.3. Bref historique de l'ordinateur.

Je ne cite ici que les ordinateurs qui ont marqué l'histoire et je précise pourquoi.

Année Nom Constructeur On retient Caractéristiques1642 Pascal Engrenages Additions et soustractions1673 Leibniz Engrenages + multiplications et divisions1834 Mach.

AnalytiqueBabbage Cartes perforées

doncpremier langage(écrit par Ada Byron )

magasin mémoire moulin de calcul lecteur de cartes impression tests conditionnels

1936 Z 1 Zuse premier ordinateur à relais1943 Colossus Gouv. anglais calculateur

électroniquedécodage des messages de la marine allemande

1944 Mark 1 Aiken rouleau perforé1946 ENIAC 1 Eckert/Mauchley premier à tubes 18000 tubes

1500 relais 30 tonnes 140 kW 6000 commutateurs

1949 EDSAC Wilkes programme enregistré1951 Whirlwind 1 M.I.T. calcule en temps réel1951 UNIVAC 1 Eckert/mauchley premier calculateur commercialisé1952 IAS von Neumann premier binaire mémoire

unité arithmétique unité de contrôle entrée sortie

1960 PDP - 1 DEC premier mini-ordinateur ( 50 vendus )

premier écran de visualisation

premier jeu vidéo1961 1401 IBM machine de

gestionbandes magnétiques et cartes perforées

1962 7094 IBM machine scientifique

transistors

1963 B 5000 Burroughs langage algol 60 outils spécifiques pour l'algol 601964 360 IBM première famille puce de silicium

circuits intégrés multiprogrammation émulation anciens

1964 6600 CDC architecture parallèle

plusieurs unités de calcul

1965 PDP - 8 DEC bus unique vendu à + de 50000 exemplaires1970 PDP - 11 DEC coût réduit ( ? ) ordinateur des universités1974 8080 Intel CPU sur une puce naissance du micro1974 Cray -1 Cray super ordinateur.1978 VAX DEC super-mini 32 bits

Depuis 1980, l'explosion des ventes du micro ordinateur et son évolution constante me pousse à parler de l'évolution des processeurs et en particulier ceux fabriqués par Intel et AMD d'un côté et ceux fabriqués par Motorola de l'autre côté.

[email protected] - 3 -

Page 4: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

1.4. La famille Intel ( + AMD )

A sa fondation en 1968, Intel fabriquait des circuits de mémoire. Intel fut le premier fabricant de CPU intégrés sur une seule puce. Ces CPU s'appelaient 4004 et 8008. On était en 1972. Ils servaient comme contrôleurs de terminaux et dans des calculatrices. En 1974, sortait le 8080. La barrière des 16 Ko de mémoire était vaincue.En 1978, le 8086 apparaissait. C'était un vrai processeur 16 bits. Toutefois, comme il n'était pas parfaitement compatible avec son prédécesseur et qu'il était coûteux, Intel sortit la même année le 8088. Moins rapide, mais moins cher, il fut choisi par IBM pour équiper le P.C en 1980. Ce processeur est ainsi devenu le standard en matière d'ordinateur personnel.En 1982, son successeur, plus puissant et toujours compatible est né : le 80286. Il ajoute peu d'instructions de base mais casse la barrière des 1Mo de mémoire centrale : il peut adresser 16 Mo. Il équipe les AT.En 1985, le 80386 commence à équiper les PC : son adressage se fait en 32 bits, ce qui permet une plage mémoire de 70 To. En 1989, c'est le tour du 80486. Il comprend un coprocesseur mathématique intégré.En 1992, le Pentium est né. On peut dire que tous les successeurs sont basés sur la même structure. Ils comprennent de plus en plus d'instructions de série et sont de moins en moins coûteux en électricité car leur taille se réduit. Bien entendu, ils sont chaque fois plus puissants et donc plus performants.

Intel a un grand concurrent sur le marché des processeurs compatibles : A.M.D..Au début, A.M.D. avait la réputation de copier les processeurs Intel. Ils portaient d'ailleurs le même numéro. ( il existait un autre fabricant : Cyrix ). A partir du pentium, les noms ont changé. Si Cyrix continuait la série 80586 puis 80686, A.M.D. nommait ses processeurs K5 , K6 puis K7 ( ou Athlon). La guerre des prix s'est transformée en guerre des technologies car A.M.D. impose de plus en plus souvent ses processeurs avant ceux d'Intel.

L'important est de savoir qu'ils sont compatibles ( sauf pour quelques instructions destinées prioritairement aux jeux ). La technologie de l'un est de toute façon implémentée dans la version suivante de son concurrent. Les vitesses s'expriment en Mhz et la mémoire cache en Ko.

1.5. La famille Motorola.

C'est en 1975 que Motorola ( fabricant de semi-conducteurs ) sort son premier processeur : le 6800. Il ressemble très fort au 8080 d'Intel. En 1979, Motorola ose sortir un processeur qui n'est pas compatible avec son prédécesseur ni avec ceux d'Intel ; le 68000. Le problème de la compatibilité avec les anciens modèles est que vous devez freiner vos innovations. Ses registres ont une taille de 32 bits. Il est choisi par Atari, Amiga et surtout par Apple pour l'installer dans ses Macintosch. Il peut adresser 16 Mo de mémoire centrale. Les versions qui ont suivi permettront successivement l'utilisation de la mémoire virtuelle, la vraie gestion 32 bits et comprendront un coprocesseur arithmétique.

[email protected] - 4 -

Page 5: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

2. STRUCTURE D'UN ORDINATEUR.

Un ordinateur est un ensemble de composants électroniques modulaires, c'est-à-dire des composants pouvant être remplacés par d'autres composants ayant éventuellement des caractéristiques différentes. Ces composants sont architecturés autour d'une carte principale comportant de nombreux circuits intégrés (soudés sur la carte) et un grand nombre de connecteurs; cette carte est appelée carte-mère.

La carte-mère est logée dans un boîtier, comportant des emplacements pour les périphériques de stockage sur la face avant, ainsi que des boutons permettant de contrôler la mise sous tension de l'ordinateur et un certain nombre de voyants permettant de vérifier l'état de marche de l'appareil et l'activité des disques durs. Sur la face arrière le boîtier propose des ouvertures en vis-à-vis des cartes d'extension et des interfaces d'entrée-sortie connectées sur la carte-mère. Enfin le boîtier héberge une alimentation, chargée de fournir un courant électrique stable à l'ensemble des éléments constitutifs de l'ordinateur.

On appelle unité centrale l'ensemble composé du boîtier et de l'ensemble des éléments qu'il embarque. L'unité centrale doit être connectée à un ensemble de périphériques externes. Un ordinateur est généralement composé au minimum d'une unité centrale, un écran (moniteur), d'un clavier et d'une souris, mais il est possible de connecter une grande diversité de périphériques externes sur les interfaces d'entrée-sortie (ports séries, port parallèle, port USB, port firewire, ...) :

imprimante scanner

périphérique de stockage externe

appareil photo ou caméra numérique

assistant personnel (PDA)

...

2.1. La carte mère de l'ordinateur.

Présentation de la carte-mère

L'élément constitutif principal de l'ordinateur est la carte-mère, c'est sur cette carte que sont connectés ou soudés l'ensemble des éléments essentiels de l'ordinateur. La carte-mère contient des éléments embarqués (intégrés à la carte) :

Le chipset, circuit qui contrôle la majorité des ressources (interface de bus du processeur, mémoire cache et mémoire vive, slots d'extension,...)

L'horloge et la pile du CMOS

Le BIOS

Le bus système

Il existe plusieurs façons de caractériser une carte-mère:

son facteur d'encombrement son chipset

[email protected] - 5 -

Page 6: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

son type de support de processeur

Facteur d'encombrement d'une carte-mère

On entend généralement par facteur d'encombrement, la géométrie et les dimensions de la carte-mère. Afin de fournir des cartes-mères pouvant s'adapter dans différents boîtiers de marques différentes, des standards ont été mis au point :

AT baby AT full format

ATX

LPX

NLX

Le chipset

Le chipset (traduisez jeu de composants) est un circuit électronique chargé de coordonner les échanges de données entre les divers composants de l'ordinateur (processeur, mémoire; ...). Dans la mesure où le chipset est intégré à la carte-mère, il est important de choisir une carte-mère embarquant un chipset récent afin de garantir à votre PC un maximum de chances de pouvoir évoluer.

Certains chipsets intègrent parfois une puce graphique ou une puce audio (généralement sur les PC bas de gamme), ce qui signifie qu'il n'est pas nécessaire d'installer une carte graphique ou une carte son. Toutefois, étant donné la piètre qualité de certains de ces composants intégrés, il est généralement conseillé de les désactiver (lorsque cela est possible) dans le setup du BIOS et d'installer des cartes d'extension dans les emplacements prévus à cet effet !

L'horloge et la pile du CMOS

L'horloge temps réel (parfois notée RTC, ou real time clock) est un circuit chargé de la synchronisation des signaux du système. Elle est constituée d'un cristal qui, en vibrant, donne des impulsions (appelés tops d'horloge) afin de cadencer le système. On appelle fréquence de l'horloge (exprimée en Mhz) le nombre de vibrations du cristal par seconde, c'est-à-dire le nombre de tops d'horloge émis par seconde. Plus la fréquence est élevée, plus il y a de tops d'horloge et donc plus le système pourra traiter d'informations.

Lorsque vous mettez votre ordinateur hors tension, l'alimentation cesse de fournir du courant à la carte-mère. Or, lorsque vous le rebranchez, votre système d'exploitation est toujours à l'heure alors que l'unité centrale n'était plus alimentée pendant un certain temps. En réalité même lorsque votre PC est débranché ou qu'une panne d'électricité intervient, un circuit électronique appelé CMOS ( Complementary Metal-Oxyde Semiconductor, parfois appelé BIOS CMOS) conserve certaines informations sur le système, y compris l'heure et la date système. Le CMOS est continuellement alimenté par une pile (au format pile bouton) située également sur la carte-mère. Ainsi, les informations sur le matériel installé dans l'ordinateur (comme par exemple le nombre de pistes, de secteurs de chaque disque dur) sont conservées dans le CMOS. Dans la mesure où le CMOS est une mémoire lente, certains systèmes recopient le contenu du CMOS dans la RAM (mémoire rapide).

Ainsi, si vous constatez que votre PC à tendance à oublier l'heure, où que l'horloge prend du retard, pensez à en changer la pile !

Le BIOS

[email protected] - 6 -

Page 7: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le BIOS (Basic Input/Output System) est le programme servant d'interface entre le système d'exploitation et la carte-mère. Le BIOS est stocké dans une ROM (mémoire morte, c'est-à-dire une mémoire en lecture seule), ainsi il utilise les données contenues dans le CMOS pour connaître la configuration matérielle du système.

Il est possible de "configurer" le BIOS grâce à une interface ( nommée BIOS setup, traduisez configuration du BIOS ) accessible au démarrage de l'ordinateur par simple pression d'une touche ( généralement la touche Suppr. En réalité le setup du BIOS sert uniquement d'interface pour la configuration et les données sont stockées dans le CMOS. Pour plus d'informations n'hésitez pas à vous reporter au manuel de votre carte-mère).

Le processeur

Le processeur (aussi appelé microprocesseur) est le coeur de l'ordinateur, car il exécute les instructions des programmes grâce à un jeu d'instructions. Le processeur est caractérisé par sa fréquence, c'est-à-dire la cadence à laquelle il exécute les instructions. Ainsi, de manière grossière, un processeur cadencé à 600 Mhz effectuera 600 millions d'opérations par seconde.

La carte-mère possède un emplacement (parfois plusieurs dans le cas de cartes-mères multi-processeurs) pour accueillir le processeur. On distingue deux catégories de supports :

slot : il s'agit d'un connecteur rectangulaire dans lequel on enfiche le processeur verticalement socket : il s'agit d'un connecteur carré possédant un grand nombre de petits connecteurs sur lequel le

processeur vient directement s'enficher

Dans la mesure où le processeur rayonne thermiquement, il est nécessaire d'en dissiper la chaleur pour éviter que ses circuits ne fondent. C'est la raison pour laquelle il est généralement surmonté d'un dissipateur thermique, un matériau ayant une bonne conduction thermique, chargé d'augmenter la surface d'échange thermique du microprocesseur. Le dissipateur thermique comporte une base en contact avec le processeur et des ailettes afin d'augmenter la surface d'échange thermique. Un ventilateur accompagne généralement le dissipateur pour améliorer la circulation de l'air autour du dissipateur et améliorer l'échange de chaleur. C'est le ventilateur du boîtier qui est chargé d'extraire l'air chaud du boîtier et permettre à l'air frais provenant de l'extérieur d'y entrer.

La mémoire-cache

La mémoire-cache permet au processeur de se "rappeler" des opérations déjà effectuées auparavant. En effet, elle stocke les opérations effectuées par le processeur, pour qu'il ne perde pas de temps à recalculer des choses qu'il a déjà faites précédemment. La taille de la mémoire-cache est généralement de l'ordre de 512 Ko. Sur les ordinateurs récents ce type de mémoire est directement intégré dans le processeur.

La mémoire vive

La mémoire vive (RAM pour Random Access Memory) permet de stocker des informations pendant tout le temps de fonctionnement de l'ordinateur, son contenu est par contre détruit dès lors que l'ordinateur est éteint ou redémarré, contrairement à une mémoire de masse comme le disque-dur qui garde les informations même lorsqu'il est hors-tension.

Pourquoi alors se servir de mémoire alors que les disques durs sont moins chers? Car elle est extrêmement rapide comparée aux périphériques de stockage de type disque dur ( de l'ordre de quelques dizaines de nanosecondes: environ 70 pour la DRAM, 60 pour la RAM EDO, et 10 pour la SDRAM).

[email protected] - 7 -

Page 8: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les connecteurs d'extension

Les connecteurs d'extension (en anglais slots) sont des réceptacles dans lesquels il est possible d'enficher des cartes d'extension, c'est-à-dire des cartes offrant de nouvelles fonctionnalités ou de meilleures performances à l'ordinateur. Il existe plusieurs sortes de connecteurs :

connecteur ISA (Industry Standard Architecture) : permettant de connecter des cartes ISA, les plus lentes fonctionnant en 16-bit connecteur

VLB (Vesa Local Bus): Bus servant autrefois à connecter des cartes graphiques connecteur

PCI (Peripheral Component InterConnect) : permettant de connecter des cartes PCI, beaucoup plus rapides que les cartes ISA et fonctionnant en 32-bit

connecteur AGP (Accelerated Graphic Port): un connecteur rapide pour carte graphique.

connecteur AMR (Audio Modem Riser): ce type de connecteur permet de brancher des mini-cartes sur les PC en étant équipés

Le bus système

On appelle bus, le canal permettant de transférer des données entre deux éléments. Le bus système est le canal (pistes de la carte-mère) reliant le microprocesseur à la mémoire vive du système. Un bus est caractérisé par sa largeur, c'est-à-dire le nombre de bits pouvant être simultanément transmis, et par sa fréquence, c'est-à-dire la cadence à laquelle les paquets de bits peuvent être transmis. Des caractéristiques du bus système dépendent donc les caractéristiques générales du système. La fréquence du microprocesseur est égale à la fréquence du bus système multiplié par un facteur. Ainsi un PC tournant à 400 Mhz sera plus rapide s'il est basé sur un bus système cadencé à 133 Mhz (3 x 133 Mhz) que si la carte-mère a un bus dont la fréquence est 100 Mhz (la fréquence du processeur étant alors égale à 4 x 100 Mhz).

2.2. Le processeur

Qu'est-ce qu'un processeur?

Le processeur (CPU: Central Processing Unit) est un circuit électronique cadencé au rythme d'une horloge interne, c'est-à-dire un élément qui envoie des impulsions (que l'on appelle top). A chaque top d'horloge les éléments de l'ordinateur accomplissent une action. La vitesse de cette horloge (le nombre de battements par secondes) s'exprime en Mégahertz, ainsi un ordinateur à 200Mhz a donc une horloge envoyant 200,000,000 de battements par seconde (un cristal de quartz soumis à un courant électrique permet d'envoyer des impulsions à une fréquence précise).

A chaque top d'horloge (pour les instructions simples) le processeur :

lit l'instruction à exécuter en mémoire effectue l'instruction

[email protected] - 8 -

Page 9: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

passe à l'instruction suivante

Le processeur est en fait constitué:

d'une unité de commande qui lit les instructions et les décode d'une unité de traitement (UAL - unité arithmétique et logique) qui exécute les instructions.

Lorsque tous les éléments d'un processeur sont regroupés sur une même puce, on parle alors de microprocesseur.

A quoi ressemble une instruction?

Les instructions ( opération que le processeur doit accomplir ) sont stockées dans la mémoire principale. Une instruction est composée de deux champs:

le code opération: c'est l'action que le processeur doit accomplir le code opérande: c'est les paramètres de l'action. Le code opérande dépend de l'opération, cela peut

être une donnée ou bien une adresse d'un emplacement mémoire

code opération champ opérande

Une instruction peut être codée sur un nombre d'octets variant de 1 à 4 suivant le type de données.

les registres

Lorsque le processeur traite des donnés (lorsqu'il exécute des instructions) le processeur stocke temporairement les données dans de petites mémoires de 8, 16 ou 32 octets ( qui ont l'avantage d'être très rapides ) que l'on appelle registres. Suivant le type de processeur le nombre de registres peut varier entre une dizaine et plusieurs centaines.

Les registres les plus importants sont :

le registre accumulateur: il permet de stocker les résultats des opérations arithmétiques et logiques

le registre tampon: il permet de stocker temporairement une des opérandes

le registre d'état: il permet de stocker les indicateurs

le registre instruction: il contient l'instruction en cours de traitement

le compteur ordinal: il contient l'adresse de la prochaine instruction à traiter

le registre tampon: il permet de stocker temporairement une donnée provenant de la mémoire

les signaux de commande

Les signaux de commande sont des signaux électriques qui permettent au processeur de communiquer avec le reste du système (le signal Read/Write - lecture/écriture - permet notamment de signaler à la mémoire qu'il désire lire ou écrire une information.

Qu'est-ce qu'un microprocesseur ?

[email protected] - 9 -

Page 10: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le premier microprocesseur (Intel 4004) a été inventé en 1971.

Depuis, la puissance des microprocesseurs augmente exponentiellement. Quels sont donc ces petits morceaux de silicium qui dirigent nos ordinateurs?

Le processeur (CPU) est le cerveau de l'ordinateur, c'est lui qui coordonne le reste des éléments, il se charge des calculs, bref il exécute les instructions qui ont été programmées.

Toutes ces opérations sont des informations numériques.

Les microprocesseurs utilisent des petits transistors (équivalents transistors) pour faire des opérations de base; il y en a plusieurs millions sur un seul processeur.

Les éléments principaux d'un microprocesseur sont :

Une horloge qui rythme le processeur. A chaque TOP d'horloge le processeur effectue une instruction, ainsi plus l'horloge a une fréquence élevée, plus le processeur effectue d'instructions par seconde (MIPS: Millions d'instruction par seconde). Par exemple un ordinateur ayant une fréquence de 100 Mhz effectue 100 000 000 d'instructions par seconde

Une unité de gestion des bus qui gère les flux d'informations entrant et sortant

Une unité d'instruction qui lit les données arrivant, les décode puis les envoie à l'unité d'exécution.

Une unité d'exécution qui accomplit les tâches que lui a donné l'unité d'instruction.

[email protected] - 10 -

Page 11: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le processeur travaille en fait grâce à un nombre très limité de fonctions (ET logique, Ou logique, addition ...), celles-ci sont directement câblées sur les circuits électroniques. Il est impossible de mettre toutes les instructions sur un processeur car celui-ci est limité par la taille de la gravure, ainsi pour mettre plus d'instructions il faudrait un processeur ayant une très grande surface, or le processeur est constitué de silicium et le silicium coûte cher, d'autre part il chauffe beaucoup. Le processeur traite donc les informations compliquées à l'aide d'instructions simples.

Le parallélisme

Le parallélisme consiste à exécuter simultanément sur des processeurs différents des instructions relatives à un même programme. Cela se traduit par le découpage d'un programme en plusieurs processus qui seront traités par des processeurs différents dans le but de gagner en temps d'exécution. Cela nécessite toutefois une communication entre les différents processus. C'est le même principe de fonctionnement que dans une entreprise: le travail est divisé en petits processus traités par des services différents et qui ne servent à rien si la communication entre les services ne fonctionne pas .

Le pipelining

Le pipelining est un principe simple à comprendre. Un programme comporte généralement des portions de code (plus ou moins grandes) qui sont traitées de nombreuses fois par le processeur.

Dans les technologies n'utilisant pas le pipelining, le microprocesseur doit effectuer l'instruction, puis aller chercher la suivante, ce qui utilise deux cycles d'horloge.

Le pipelining permet de mettre à disposition du microprocesseur les instructions qu'il va devoir effectuer. Les instruction font la "file" (c'est ce que l'on nomme le pipeline) dans la mémoire cache. Ainsi, pendant que le microprocesseur exécute une instruction, la suivante est déjà à sa disposition.

Le pipelining permet donc d'économiser un cycle d'horloge !

L'architecture CISC

L'architecture CISC (Complex Instruction Set Computer, ce qui signifie "ordinateur avec jeu d'instructions complexes") est utilisée par tous les processeurs de type x86, c'est-à-dire les processeurs fabriqués par Intel, AMD, Cyrix, ... Les processeurs basés sur l'architecture CISC peuvent traiter des instructions complexes, qui sont directement câblées sur leurs circuits électroniques, c'est-à-dire que certaines instructions difficiles à créer à partir des instructions de base sont directement imprimées sur le silicium de la puce afin de gagner en rapidité d'exécution sur ces commandes. L'inconvénient de ce type d'architecture provient justement du fait que des fonctions supplémentaires sont imprimées sur le silicium, d'où un coût élevé.

[email protected] - 11 -

Page 12: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

D'autre part, les instructions sont de longueurs variables et peuvent parfois prendre plus d'un cycle d'horloge ce qui les rend lentes à l'exécution étant donné qu'un processeur basé sur l'architecture

CISC ne peut traiter qu'une instruction à la fois!

L'architecture RISC

Contrairement à l'architecture CISC, un processeur utilisant la technologie RISC (Reduced Instruction Set Computer, dont la traduction est "ordinateur à jeu d'instructions réduit") n'a pas de fonctions supplémentaires câblées. Cela impose donc des programmes ayant des instructions simples interprétables par le processeur. Cela se traduit par une programmation plus difficile et un compilateur plus puissant. Cependant vous vous dîtes qu'il peut exister des instructions qui ne peuvent pas être décrites à partir des instructions simples... En fait ces instructions sont tellement peu nombreuses qu'il est possible de les câbler directement sur le circuit imprimé sans alourdir de manière dramatique leur fabrication.

L'avantage d'une telle architecture est bien évidemment le coût réduit au niveau de la fabrication des processeurs l'utilisant. De plus, les instructions, étant simples, sont exécutées en un cycle d'horloge, ce qui rend l'exécution des programmes plus rapides qu'avec des processeurs basés sur une architecture CISC.

De plus, de tels processeurs sont capables de traiter plusieurs instructions simultanément en les

traitant en parallèle.

CISC ou RISC

A comparer les spécificités des deux types d'architecture on pourrait conclure que les processeurs basé sur une architecture de type RISC sont les plus utilisés... Cela n'est malheureusement pas le cas... En effet les ordinateurs construits autour d'une architecture RISC nécessitent une quantité de mémoire plus importante que les ordinateurs de type CISC

2.3. La mémoire RAM ou mémoire centrale.

Rôle de la mémoire vive (RAM)

La mémoire vive, généralement appelée RAM (Random Access Memory, traduisez mémoire à accès aléatoire), est la mémoire principale du système, c'est-à-dire qu'il s'agit d'un espace permettant de stocker de manière temporaire des données lors de l'exécution d'un programme.

En effet le stockage de données dans la mémoire vive est temporaire, contrairement au stockage de données sur une mémoire de masse telle que le disque dur (mémoire avec laquelle les novices la confondent généralement), car elle permet uniquement de stocker des données tant qu'elle est alimentée électriquement. Ainsi, à chaque fois que l'ordinateur est éteint, toutes les données présentes en mémoire sont irrémédiablement effacées.

La mémoire morte, appelée ROM pour Read Only Memory (traduisez mémoire en lecture seule) est un type de mémoire permettant de conserver les informations qui y sont contenues même lorsque la mémoire n'est plus alimentée électriquement. A la base, ce type de mémoire ne peut être accédée qu'en lecture. Toutefois il est désormais possible d'enregistrer des informations dans certaines mémoires de type ROM.

Fonctionnement de la mémoire vive

[email protected] - 12 -

Page 13: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

La mémoire vive est constituée de centaines de milliers de petits condensateurs emmagasinant des charges. Lorsqu'il est chargé, l'état logique du condensateur est égal à 1, dans le cas contraire il est à 0, ce qui signifie que chaque condensateur représente un bit de la mémoire.

Etant donné que les condensateurs se déchargent, il faut constamment les recharger (le terme exact est rafraîchir) à un intervalle de temps régulier appelé cycle de rafraîchissement (d'une durée d'environ 15 nanosecondes (ns) pour une mémoire DRAM).

Chaque condensateur est couplé à un transistor (de type MOS) permettant de "récupérer" ou de modifier l'état du condensateur. Ces transistors sont rangés sous forme de tableau (matrice), c'est-à-dire que l'on accède à une "case mémoire" (aussi appelée point mémoire) par une ligne et une colonne.

Chaque point mémoire est donc caractérisé par une adresse, correspondant à un numéro de ligne et un numéro de colonne. Or cet accès n'est pas instantané et s'effectue pendant un délai appelé temps de latence. Par conséquent l'accès à une donnée en mémoire dure un temps égal au temps de cycle auquel il faut ajouter le temps de latence.

Ainsi, pour une mémoire de type DRAM, le temps d'accès est de 60 nanosecondes (35ns de délai de cycle et 25ns de temps de latence). Sur un ordinateur, le temps de cycle correspond à l'inverse de la fréquence de l'horloge, par exemple pour un ordinateur cadencé à 200Mhz, le temps de cycle est de 5ns (1/(200.106)).

Par conséquent un ordinateur ayant une fréquence élevée et utilisant des mémoires dont le temps d'accès est beaucoup plus long que le temps de cycle du processeur doit effectuer des cycles d'attente (en anglais wait state) pour accéder à la mémoire. Dans le cas d'un ordinateur cadencé à 200Mhz utilisant des mémoires de types DRAM (dont le temps d'accès est de 60ns), il y a 11 cycles d'attente pour un cycle de transfert. Les performances de l'ordinateur sont d'autant diminuées qu'il y a de cycles d'attentes, il est donc conseillé d'utiliser des mémoires plus rapides.

La correction d'erreurs

Certaines mémoires possèdent des mécanismes permettant de pallier les erreurs afin de garantir l'intégrité des données qu'elles contiennent. Ce type de mémoire est généralement utilisée sur des systèmes travaillant sur des données critiques, c'est la raison pour laquelle on trouve ce type de mémoire dans les serveurs.

Bit de parité

[email protected] - 13 -

Page 14: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les barrettes avec bit de parité permettent de s'assurer que les données contenues dans la mémoire sont bien celles que l'on désire. Pour ce faire, un des bits de chaque octet stocké en mémoire sert à conserver la somme des bits de données. Le bit de parité vaut 0 lorsque la somme des bits de données est impaire et 1 dans le cas contraire.

De cette façon les barrettes avec bit de parité permettent de vérifier l'intégrité des données mais ne permettent pas de corriger les erreurs. De plus pour 8 Mo de mémoire, seulement 7 serviront à

stocker des données, dans la mesure où le dernier mégaoctet conservera les bits de parité.

Barrettes ECC

Les barrettes de mémoire ECC (Error Correction Coding) sont des mémoires possédant plusieurs bits dédiés à la correction d'erreur (on les appelle ainsi bits de contrôle). Ces barrettes, utilisées principalement dans les serveurs, permettent de détecter les erreurs et de les corriger.

Types de barrettes de mémoire vive

Il existe de nombreux types de mémoires vives. Celles-ci se présentent toutes sous la forme de barrettes de mémoire enfichables sur la carte-mère.

Les premières mémoires se présentaient sous la forme de puces appelées DIP (Dual Inline Package). Désormais les mémoires se trouvent généralement sous la forme de barrettes, c'est-à-dire des cartes enfichables dans des connecteurs prévus à cet effet. On distingue deux types de barrettes de RAM :

les barrettes au format SIMM (Single Inline Memory Module) : il s'agit de circuits imprimés dont une des faces possède des puces de mémoire. Il existe deux types de barrettes SIMM, selon le nombre de connecteurs :

o Les barrettes SIMM à 30 connecteurs (dont les dimensions sont 89x13mm) sont des mémoires 8 bits qui équipaient les premières générations de PC (286, 386).

o Les barrettes SIMM à 72 connecteurs (dont les dimensions sont 108x25mm) sont des mémoires capables de gérer 32 bits de données simultanés. Ces mémoires équipent des PC allant du 386DX aux premiers pentiums. Sur ces derniers le processeur travaille avec un bus de données d'une largeur de 64 bits, c'est la raison pour laquelle il faut absolument équiper ces ordinateurs de deux barrettes SIMM. Il n'est pas possible d'installer des barrettes 30 broches sur des emplacements à 72 connecteurs dans la mesure où un détrompeur (encoche au centre des connecteurs) en empêche l'enfichage.

les barrettes au format DIMM (Dual Inline Memory Module) sont des mémoires 64 bits, ce qui explique pourquoi il n'est pas nécessaire de les apparier. Les barrettes DIMM possèdent des puces de mémoire de part et d'autre du circuit imprimé et ont également 84 connecteurs de chaque côté, ce qui les dote d'un total de 168 broches. En plus de leurs dimensions plus grandes que les barrettes SIMM (130x25mm) ces barrettes possèdent un second détrompeur pour éviter la confusion.

[email protected] - 14 -

Page 15: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

A noter que les connecteurs DIMM ont été améliorés afin de permettre une insertion facile des

barrettes grâce à des leviers situés de part et d'autre du connecteur.

DRAM PM

La DRAM (Dynamic RAM, RAM dynamique) est le type de mémoire le plus répandu au début du millénaire. Il s'agit d'une mémoire dont les transistors sont rangés dans une matrice selon des lignes et des colonnes. Un transistor, couplé à un condensateur donne l'information d'un bit. 1 octet comprenant 8 bits, une barrette de mémoire DRAM de 256 Mo contiendra donc 256000000*8 bits soit 2 048 000 000 (256000000*8) transistors. Ce sont des mémoires dont le temps d'accès est de 60ns.

D'autre part, les accès mémoire se font généralement sur des données rangées consécutivement en mémoire. Ainsi le mode d'accès en rafale (burst mode) permet d'accéder aux trois données consécutives à la première sans temps de latence supplémentaire. Dans ce mode en rafales, le temps d'accès à la première donnée est égal au temps de cycle auquel il faut ajouter le temps de latence, et le temps d'accès aux trois autres données est uniquement égal aux temps de cycle, on note donc sous la forme X-Y-Y-Y les quatre temps d'accès, par exemple la notation 5-3-3-3 indique une mémoire pour laquelle 5 cycles d'horloge sont nécessaires pour accéder à la première donnée et

3 pour les suivantes.

DRAM FPM

Pour accélérer les accès à la DRAM, il existe une technique, appelée pagination consistant à accéder à des données situées sur une même colonne en modifiant uniquement l'adresse de la ligne, ce qui permet d'éviter la répétition du numéro de colonne entre la lecture de chacune des lignes. On

parle alors de DRAM FPM (Fast Page Mode). La FPM permet d'obtenir des temps d'accès de l'ordre de 70 à 80 nanosecondes pour une fréquence de fonctionnement pouvant aller de 25 à 33 Mhz.

DRAM EDO

La DRAM EDO (Extended Data Out, soit Sortie des données améliorée parfois également appelé "hyper-page") est apparue en 1995. La technique utilisée avec ce type de mémoire consiste à adresser la colonne suivante pendant la lecture des données d'une colonne. Cela crée un chevauchement des accès permettant de gagner du temps sur chaque cycle. Le temps d'accès à la mémoire EDO est donc d'environ 50 à 60 nanosecondes pour une fréquence de fonctionnement allant de 33 à 66 Mhz.

Ainsi, la RAM EDO, lorsqu'elle est utilisée en mode rafale permet d'obtenir des cycles de la forme 5-2-2-2, soit un gain de 4 cycles sur l'accès à 4 données. Dans la mesure où la mémoire EDO n'acceptait

pas des fréquences supérieures à 66 Mhz, elle a disparu au bénéfice de la SDRAM.

SDRAM

La SDRAM (Synchronous DRAM, traduisez RAM synchrone), apparue en 1997, permet une lecture des données synchronisée avec le bus de la carte-mère, contrairement aux mémoires EDO et FPM (qualifiées d'asynchrones) possédant leur propre horloge. La SDRAM permet donc de s'affranchir des temps d'attente dus à la synchronisation avec la carte-mère. Celle-ci permet d'obtenir un cycle en mode rafale de la forme 5-1-1-1, c'est-à-dire un gain de 3 cycles par rapport à la RAM EDO. De cette façon la SDRAM est capable de fonctionner avec une cadence allant jusqu'à 150 Mhz, lui permettant d'obtenir des temps d'accès d'environ 10ns.

[email protected] - 15 -

Page 16: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

DDR-SDRAM

La DDR-SDRAM (Double Data Rate SDRAM) est une mémoire basée sur la technologie SDRAM, permettant de doubler le taux de transfert de la SDRAM à fréquence égale.

DR-SDRAM (Rambus DRAM)

La DR-SDRAM (Direct Rambus DRAM ou encore RDRAM) est un type de mémoire permettant de transférer les données sur un bus de 16 bits de largeur à une cadence de 800Mhz, ce qui lui confère une bande passante de 1,6 Go/s. Comme la SDRAM, ce type de mémoire est synchronisé avec l'horloge du bus pour améliorer les échanges de données. En contrepartie, la mémoire RAMBUS est une technologie propriétaire, ce qui signifie que toute entreprise désirant construire des barrettes de RAM selon cette technologie doit reverser des droits (royalties) aux sociétés RAMBUS et Intel.

2.4. La mémoire ROM ou mémoire morte.

La mémoire morte (ROM)

Il existe un type de mémoire permettant de stocker des données en l'absence de courant électrique, il s'agit de la ROM (Read Only Memory, dont la traduction est mémoire en lecture seule) appelée parfois mémoire non volatile, car elle ne s'efface pas lors de la mise hors tension du système.

Ce type de mémoire permet notamment de conserver les données nécessaires au démarrage de l'ordinateur En effet, ces informations ne peuvent être stockées sur le disque dur étant donné que les paramètres du disque (essentiels à son initialisation) font partie de ces données vitales à l'amorçage. Différentes mémoires de type ROM contiennent des données essentielles au démarrage, c'est-à-dire:

Le BIOS est un programme permettant de piloter les interfaces d'entrée-sortie principales du système, d'où le nom de BIOS ROM donné parfois à la puce de mémoire morte de la carte-mère qui l'héberge

Le chargeur d'amorce: un programme permettant de charger le système d'exploitation en mémoire (vive) et de le lancer. Celui-ci cherche généralement le système d'exploitation sur le lecteur de disquette, puis sur le disque dur, ce qui permet de pouvoir lancer le système d'exploitation à partir d'une disquette système en cas de dysfonctionnement du système installé sur le disque dur

Le Setup CMOS, c'est l'écran disponible à l'allumage de l'ordinateur permettant de modifier les paramètres du système (souvent appelé BIOS à tort...)

Le Power-On Self Test (POST), programme exécuté automatiquement à l'amorçage du système permettant de faire un test du système (c'est pour cela par exemple que vous voyez le système "compter" la RAM au démarrage)

Etant donné que les ROM sont beaucoup plus lentes que les mémoires de types RAM (une ROM a un temps d'accès de l'ordre de 150 ns tandis qu'une mémoire de type SDRAM a un temps d'accès d'environ 10 ns), les instructions contenues dans la ROM sont parfois copiées en RAM au démarrage, on parle alors de shadowing (en français cela pourrait se traduire par ombrage, mais on parle généralement de mémoire fantôme).

Les types de ROM

Les ROM ont petit à petit évolué de mémoires mortes figées à des mémoires programmables, puis reprogrammables.

ROM

Les premières ROM étaient fabriquées à l'aide d'un procédé inscrivant directement les données binaires dans une plaque de silicium grâce à un masque. Ce procédé est maintenant obsolète.

[email protected] - 16 -

Page 17: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

PROM

Les PROM (Programmable Read Only Memory) ont été mises au point à la fin des années 70 par la firme Texas Instruments. Ces mémoires sont des puces constituées de milliers de fusibles pouvant être "grillés" grâce à un appareil appelé programmateur de ROM, envoyant un fort courant (12V) dans certains fusibles. Ainsi, les fusibles grillés correspondent à des 0, les autres à des 1.

EPROM

Les EPROM (Erasable Programmable Read Only Memory) sont des PROM pouvant être effacées. Ces puces possèdent une vitre permettant de laisser passer des rayons ultra-violets. Lorsque la puce est en présence de rayons ultra-violets d'une certaine longueur d'onde, les fusibles sont reconstitués, c'est-à-dire que tous les bits de la mémoire sont à nouveau à 1. C'est pour cette raison que l'on qualifie ce type de PROM d'effaçable.

EEPROM

Les EEPROM (Electrically Erasable read Only Memory) sont aussi des PROM effaçables, mais contrairement aux EPROM, celles-ci peuvent être effacées par un simple courant électrique, c'est-à-dire qu'elle peuvent être effacées même lorsqu'elles sont en position dans l'ordinateur. Ces mémoires sont aussi appelées mémoires flash (ou ROM flash), et l'on qualifie de flashage l'action consistant à reprogrammer une EEPROM.

2.5. Le bus AGP

Le premier bus AGP (Accelerated Graphics Port) est sorti en même temps que le Pentium II en Mai 1997, sur des chipsets à base de "Slot One". Puis ils sont apparus sur des supports à base de Super 7.

Il sert à la connexion de cartes vidéos. Son avantage est de pouvoir partager la mémoire vive centrale pour stocker des textures, ainsi les cartes utilisant ce support ont besoin de moins de mémoire, donc elles sont moins chères.

Le bus AGP est cadencé à 66 Mhz (soit deux fois plus que le bus PCI), ce qui lui offre une bande passante de 528 Mo/s (132 Mo/s pour le bus PCI), donc de meilleures performances, notamment pour l'affichage de scènes 3D compliquées.

Le bus AGP a suivi des évolutions (AGP 1X 2X) si bien que l'on peut aujourd'hui trouver les cartes graphiques aussi bien en version PCI ou en AGP

Avec l'apparition du bus AGP 4X, la bande passante passera à 1Go/s. Cette norme utilisera une fois de plus un nouveau type de support, si bien que les cartes existantes seront incompatibles avec cette norme.

2.6. Les périphériques externes.

Sur un PC on peut connecter des périphériques externes.

Les périphériques externes sont comme leur nom l'indique connectés à l'extérieur du PC, c'est-à-dire sur les ports de communication (COM1, COM2, COM3 ..) ou le(s) port(s) imprimante (LPT1, LPT2 ...) Il s'agit principalement:

du scanner de l'imprimante

des modems externes

[email protected] - 17 -

Page 18: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le moniteur, la souris et le clavier peuvent être considérés d'une certaine façon comme des périphériques externes.

2.6.1. Les moniteurs.

Le moniteur à tube cathodique

Les moniteurs (écrans d'ordinateur) sont la plupart du temps des tubes cathodiques, c'est à dire un tube en verre dans lequel un canon à électrons émet des électrons dirigés par un champ magnétique vers un écran sur lequel il y a de petits éléments phosphorescents (luminophores) constituant des points (pixels) émettant de la lumière lorsque les électrons viennent les heurter.

Le champ magnétique dévie les électrons de gauche à droite afin de créer un balayage, puis vers le bas une fois arrivé en bout de ligne.

Ce balayage n'est pas perçu par l'oeil humain grâce à la persistance rétinienne, essayez par exemple d'agiter votre main devant votre écran pour visualiser ce phénomène: vous voyez votre main en plusieurs exemplaires ... )

Le moniteur couleur

Un moniteur noir et blanc permet d'afficher des dégradés de couleur (niveaux de gris) en variant l'intensité du rayon.

Pour les moniteurs couleur, trois faisceaux d'électrons sont utilisés simultanément en visant chacun un point d'une couleur spécifique: un rouge, un vert et un bleu (RGB: Red/Green/Blue ou en français RVB: Rouge/vert/bleu).Cependant ces luminophores sont situés de façon tellement proche que l'oeil n'a pas un pouvoir séparateur assez fort: il voit une couleur composée de ces trois couleurs. Essayez de mettre une minuscule goutte d'eau sur le verre de votre moniteur: celle-ci faisant un effet de loupe va vous faire apparaître les luminophores.

Il existe deux grandes catégories de tubes:

[email protected] - 18 -

Page 19: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les tubes FST-Invar et Cromaclear dont les luminophores sont ronds (grâce à une grille appelée masque)

Les tubes Trinitron dont le masque est constitué de fentes verticales, laissant passer plus de

lumière

Les moniteurs à cristaux liquides

Cette technologie est basée sur un écran composé de deux plaques transparentes entre lesquelles il y a une fine couche de liquide dans laquelle il y a des molécules (cristaux) qui ont la propriété de s'orienter lorsqu'elles sont soumises à du courant électrique. L'avantage majeur de ce type d'écran est son encombrement réduit, d'où son utilisation sur les ordinateurs portables.

Les caractéristiques

Les moniteurs sont souvent caractérisés par les données suivantes:

La définition: c'est le nombre de points qu'il peut afficher, ce nombre de points est actuellement compris entre 640x480 (640 points en longueur, 480 points en largeur) et 1600x1200.

La taille: Il ne faut pas confondre la définition de l'écran et la taille de l'écran. En effet un écran d'une taille donnée peut afficher différentes définitions. La taille se calcule en mesurant la diagonale de l'écran et est exprimée en pouces, c'est-à-dire 2.55 cm.

La résolution: Elle détermine le nombre de pixels par unité de surface (pixels par pouce carré (en anglais DPI: Dots Per Inch).

Le pas de masque: C'est la distance qui sépare deux points, plus celle-ci est petite plus l'image est précise

La fréquence de balayage: C'est le nombre d'images qui sont affichées par seconde, on l'appelle aussi rafraîchissement, elle est exprimée en Hertz. Plus cette valeur est élevée meilleur est le confort visuel (on ne voit pas l'image scintiller), il faut donc qu'elle soit supérieure à 67 Hz (limite inférieure à partir de laquelle l'oeil remarque véritablement l'image "clignoter".

2.6.2. Le CD-ROM.

Le CD-ROM (Compact Disc - Read Only Memory) est un disque optique de 12 cm de diamètre et de 1mm d'épaisseur, permettant de stocker des informations numériques, c'est-à-dire correspondant à 650 Mo de données informatiques (correspondant à 300000 pages dactylographiées) ou bien jusqu'à 78 min de données audio. Le Compact Disc a été inventé par Sony © et Philips ©.

La composition d'un CD-ROM

Le CD est constitué de matière plastique, recouvert d'une fine pellicule métallique sur une des faces. Les pistes sont gravées en spirales, ce sont en fait des alvéoles d'une profondeur de 0,83µ et espacées de 1,6µ. ces alvéoles forment un code binaire, une alvéole correspond à un 0, un espace à un 1.

[email protected] - 19 -

Page 20: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Exemple: prenons la séquence suivante: 110010101. Celle-ci correspond sur le CD-ROM à deux espaces,

deux trous, un espace, un trou, un espace, un trou, un espace.

On a ainsi une séquence binaire que le lecteur parcourt grâce à un laser; celui-ci est réfléchi lorsqu'il

rencontre un espace, il ne l'est pas lorsqu'il rencontre une alvéole.

Le lecteur de CD-ROM

C'est une cellule photoélectrique qui permet de capter le rayon réfléchi, grâce à un miroir semi-réfléchissant comme expliqué sur le dessin suivant:

Un chariot permet de déplacer le miroir de façon à pouvoir accéder au CD-ROM en entier.

Il est ainsi possible de stocker sur ce support des musiques, des images, des vidéos, du texte et tout

ce qui peut être enregistré de façon numérique.

Ses caractéristiques

Le lecteur CD-ROM est caractérisé:

Par sa vitesse: celle-ci est calculée par rapport à la vitesse d'un lecteur de CD-Audio (150 Ko/s). Un lecteur allant à 3000 Ko/s sera caractérisé de 20X (20 fois plus vite qu'un lecteur 1X)

Par son temps d'accès. C'est le temps moyen qu'il met pour aller d'une partie du CD à une autre. Par son type: ATAPI (IDE) ou SCSI

2.6.3. Le DVD-ROM.

Le DVD-ROM (Digital Versatile Disc - Read Only Memory) est une variante du CD-ROM dont la capacité est largement plus grande que celle du CD-ROM. En effet, les alvéoles du DVD sont beaucoup plus petite (0,4µ et un espacement de 0.74µ), impliquant un laser avec une longueur d'onde beaucoup plus faible.

[email protected] - 20 -

Page 21: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les DVD existent en version "double couche", ces disques sont constitués d'une couche transparente à base d'or et d'une couche réflexive à base d'argent. Pour aller lire ces deux couches le lecteur dispose de deux intensités pour le laser:

avec une intensité faible le rayon se réfléchit sur la surface dorée lorsqu'on augmente cette intensité le rayon traverse la première couche et se réfléchit sur la surface

argentée.

Il existe 4 types de DVD différents:

Type de support Capacité Temps musical équivalent Nombre de CD équivalent

CD 650Mo 1h18 min 1

DVD simple face simple couche 4.7Go 9h30 7

DVD simple face double couche 8.5Go 17h30 13

DVD double face simple couche 9.4Go 19h 14

DVD double face double couche 17Go 35h 26

L'intérêt du DVD touche en priorité le stockage vidéo qui demande une place de stockage importante. Un DVD de 4,7 Go permet de stocker plus de deux heures de vidéo compressées en MPEG-2 (Motion Picture Experts Group), un format qui permet de compresser les images tout en gardant une très grande qualité d'image.

Les zones

Les DVD Vidéo sont conçus pour n'être consultables que dans certaines régions du monde: c'est le découpage en zone (qui "empêche" le piratage). Il est ainsi théoriquement impossible de lire un DVD d'une zone en étant dans une autre. Heureusement, les lecteurs de DVD pour PC peuvent les lire grâce à des utilitaires.

[email protected] - 21 -

Page 22: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les premiers graveurs de DVD sont apparus il y a peu de temps. Le seul frein est l'existence de deux normes concurrentes et incompatibles:

DVD-RAM de Toshiba © et Matsushita © stockant 2.6 Go DVD-RW de Sony ©, Philips © et HP © stockant 3 Go

Les deux normes permettent de réinscrire des données jusqu'à 1000 fois.

2.6.4. Le disque dur.

Le rôle du disque dur

Le disque dur est l'organe du PC servant à conserver les données de manière permanente, contrairement à la RAM, qui s'efface à chaque redémarrage de l'ordinateur. Il a été inventé au début des années 50 par IBM.

Le fonctionnement interne

Un disque dur est constitué non pas d'un seul disque, mais de plusieurs disques rigides (en anglais hard disk signifie disque dur) en métal, en verre ou en céramique empilés les uns après les autres à une très faible distance les uns des autres. Ils tournent très rapidement autour d'un axe (à plusieurs milliers de tours par minute actuellement) dans le sens inverse des aiguilles d'une montre. Un ordinateur fonctionne de manière binaire, il faut donc stocker les données sous forme de 0 et de 1, c'est pourquoi les disques sont recouverts d'une très fine couche magnétique de quelques microns d'épaisseur, elle-même recouverte d'un film protecteur.

La lecture et l'écriture se font grâce à des têtes (head) situées de part et d'autre de chacun des plateaux (un des disques composant le disque dur). Ces têtes sont des électroaimants qui se baissent et se soulèvent (elles ne sont qu'à quelques microns de la surface, séparées par une couche d'air provoquée par la rotation des disques qui crée un vent d'environ 250km/h) pour pouvoir lire l'information ou l'écrire. De plus ces têtes peuvent balayer latéralement la surface du disque pour pouvoir accéder à toute la surface...

[email protected] - 22 -

Page 23: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Cependant, les têtes sont liées entre-elles et seulement une seule tête peut lire ou écrire à un moment donné. On parle donc de cylindre pour désigner l'ensemble des données stockées verticalement sur la totalité des disques.

L'ensemble de cette mécanique de précision est contenue dans un boîtier totalement hermétique, car la moindre particule peut détériorer l'état de surface du disque. Vous pouvez donc voir sur un disque des opercules permettant l'étanchéité, et la mention "Warranty void if removed" qui signifie littéralement "la garantie expire si retiré" car seul les constructeurs de disques durs peuvent les

ouvrir (dans des salles blanches: exemptes de particules).

La lecture et l'écriture

Les têtes de lecture/écriture sont dites "inductives", c'est-à-dire qu'elles sont capables de générer un champ magnétique. C'est notamment le cas lors de l'écriture, les têtes en créant des champs positifs ou négatifs viennent polariser la surface du disque en une très petite zone, ce qui se traduira lors du passage en lecture par des changements de polarité induisant un courant dans la tête qui sera ensuite transformé par un convertisseur analogique numérique (CAN) en 0 et en 1 compréhensibles par l'ordinateur.

Les têtes commencent à inscrire des données à la périphérie du disque (piste 0), puis avancent vers le centre. Les données sont organisées en cercles concentriques appelés "pistes", créées par le formatage de bas niveau.

Les pistes sont séparées en quartiers (entre deux rayons) que l'on appelle secteurs, c'est la zone dans laquelle on peut stocker les données (512 octets en général).

[email protected] - 23 -

Page 24: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

On appelle cylindre l'ensemble des données situées sur une même piste de plateaux différents (c'est-à-dire à la verticale les unes des autres) car cela forme dans l'espace un "cylindre" de données.

On appelle cluster la zone minimale que peut occuper un fichier sur le disque. En effet le système d'exploitation exploite des blocs qui sont en fait plusieurs secteurs (entre 1 et 16 secteurs). Un

fichier minuscule devra donc occuper plusieurs secteurs (un cluster).

Le mode bloc des disques durs

Le mode bloc et le transfert 32 bits permettent d'exploiter pleinement les performances de votre disque dur. Le mode bloc consiste à effectuer des transferts de données par bloc, c'est-à-dire par paquets de 512 octets généralement, ce qui évite au processeur d'avoir à traiter une multitude de minuscules paquets d'un bit. Le processeur a alors du "temps" pour effectuer d'autres opérations. Ce mode de transfert des données n'a malheureusement une véritable utilité que sous DOS car Windows 95 et Windows NT utilisent leur propre gestionnaire de disque dur, ce qui rend ce gestionnaire obsolète.

Une option du BIOS (IDE HDD block mode ou Multi Sector Transfer, ...) permet parfois de déterminer le nombre de blocs pouvant être gérés simultanément. Ce nombre se situe entre 2 et 32. Si vous ne le connaissez pas, plusieurs solutions s'offrent à vous:

consulter la documentation de votre disque dur rechercher les caractéristiques de votre disque sur Internet Le déterminer expérimentalement en effectuant des tests:

o exécuter scandisk sur votre ordinateur pour éliminer les erreurs o augmenter progressivement le nombre de blocs puis faire une copie et lancer scandisk o Si des erreurs apparaissent remettre la valeur précédente...sinon continuer

Le mode bloc peut toutefois générer des erreurs lors de la gravure de CD (le tampon se vide).* La solution consiste alors à désactiver l'un des deux gestionnaires:

la gestion logicielle du mode 32-bit sous Windows le mode bloc dans le BIOS

Le mode 32 bits des disques durs

Le mode 32 bits (par opposition au mode 16 bits) est caractérisé par un transfert des données sur 32 bits (Rappel: un ordinateur fonctionne avec des données binaires, c'est-à-dire avec des zéros ou des 1, schématiquement une porte qui s'ouvre ou bien qui se ferme. Le transfert sur 32 bits correspond à 32 portes qui s'ouvrent et se ferment simultanément. En mode 16 bits on a deux mots (ensemble de bits) de 16 bits qui sont transmis successivement, puis assemblés).

Le gain de performance relatif au passage du mode 16 bits au mode 32 bits (pour les disques durs) est généralement insignifiant. Quoi qu'il en soit il n'est la plupart du temps plus possible de choisir le mode, car la carte-mère détermine seule le type de mode à adopter en fonction du type de disque dur branché sur l'interface E-IDE.

[email protected] - 24 -

Page 25: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

La détermination automatique du mode 32 bits peut toutefois ralentir les lecteurs de CD-ROM IDE dont la vitesse est supérieure à 24x lorsqu'ils sont seuls sur une nappe IDE. En effet, dans le cas où le lecteur de CD-ROM est seul sur le port, le BIOS peut ne pas détecter sa compatibilité avec le mode 32 bits (puisqu'il cherche un disque dur) auquel cas il passe en mode 16 bits. Le taux de transfert est alors en dessous du taux de transfert annoncé par le constructeur d'où une grande déception de son possesseur... Heureusement, il existe une solution: brancher sur la même nappe que le lecteur de CD-ROM un

disque dur supportant le mode 32 bits, ce qui aura pour effet d'activer le mode .

L'interface SCSI

L'interface SCSI est une interface qui permet la prise en charge d'un nombre important d'unités (disques durs, CD-ROM, Graveur, scanner, ...), c'est-à-dire plus d'une dizaine simultanément. Elle est beaucoup utilisée pour sa stabilité notamment au niveau du taux de transfert. En effet, c'est un adaptateur SCSI (carte adaptatrice sur un emplacement PCI ou ISA ou bien directement intégré sur la carte-mère pour les configurations haut de gamme) qui se charge de la gestion et du transfert des données avec un microprocesseur dédié. Le microprocesseur central est alors déchargé de ses activités concernant le flux de données, il ne communique qu'avec la carte SCSI. Ainsi chaque contrôleur SCSI a ses propres caractéristiques (fréquence, ...), le BIOS n'a donc aucune influence sur les performances de l'interface SCSI étant donné qu'elle possède elle-même son propre BIOS. Il est toutefois possible d'optimiser cette interface en faisant évoluer le BIOS de la carte SCSI.

Les caractéristiques du disque

Le taux de transfert est la quantité de données qui peuvent être lues ou écrites sur le disque en un temps donné. Il s'exprime aujourd'hui en Méga-Octets par seconde

Le temps de latence (aussi appelé délai rotationnel) représente le temps entre lequel le disque a trouvé la piste et où il trouve les données.

Le temps d'accès est le temps que met la tête pour aller d'une piste à la piste suivante (elle doit être la plus petite possible).

Le temps d'accès moyen est le temps que met le disque entre le moment où il a reçu l'ordre de fournir des données et le moment où il les fournit réellement.

La densité radiale est le nombre de pistes par pouce (tpi: Track per Inch)

La densité linéaire est le nombre de bits par pouce sur une piste donnée (bpi: Bit per Inch)

La densité surfacique est le rapport de la densité linéaire sur la densité radiale (s'exprime en bit par pouces carré)

2.6.5. Le clavier.

Présentation du clavier

De la même façon que sur une machine à écrire, le clavier permet de saisir des caractères (lettres, chiffres, symboles ...), il s'agit donc du périphériques d'entrée essentiel pour l'ordinateur, car c'est grâce à lui qu'il est possible d'envoyer des commandes.

Les types de claviers

Il existe 4 types de claviers pour PC, les trois premiers ont été inventés par IBM, le dernier est la conséquence d'une modification due à la sortie de Microsoft Windows 95. Voici les quatre types de clavier:

[email protected] - 25 -

Page 26: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

le clavier à 83 touches, de type PC/XT Le clavier à 84 touches, de type PC/AT Le clavier à 102 touches, appelé aussi clavier étendu Le clavier à 105 touches compatible Microsoft Windows 95

Les clavier de type PC/XT

Il s'agit du premier clavier pour PC, il a la particularité d'être dissocié de l'ordinateur, contrairement à tous les ordinateurs de l'époque (Apple II, Amiga, ...) pour lesquels l'ordinateur et le clavier étaient une seule et même entité.

Ce clavier comportait 83 touches, mais était critiqué pour la disposition des touches et leurs disproportions (notamment les touches Maj et Entrée qui étaient trop petites et mal placées). D'autre part, la communication entre le clavier et l'unité centrale était à sens unique, ce qui signifie que le clavier ne pouvait pas comporter d'afficheur de type LED.

Les clavier de type PC/AT

Ce clavier à 94 touches a équipé les PC de type AT en 1984.

Ce type de clavier corrige les erreurs de son prédécesseur en redimensionnant notamment les touches Maj et Entree. D'autre part ce clavier est bidirectionnel, c'est-à-dire qu'il peut afficher des états à l'aide d'afficheurs LED. Enfin, la carte-mère équipant les PC de type AT comportait un contrôleur permettant de paramétrer:

La fréquence de répétition, c'est-à-dire le nombre de caractères envoyés par seconde lorsqu'une touche est enfoncée

Le délai de répétition: le temps au bout duquel l'ordinateur considère que la touche est enfoncée, afin de différencier une simple pression de touche (un caractère) d'un enfoncement de touche

prolongé

Les claviers étendus

Les nouveaux ordinateurs compatibles IBM lancés en 1986 étaient équipés de claviers comportant 102 touches.

[email protected] - 26 -

Page 27: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Ce clavier comporte, par rapport à son prédécesseur différents blocs de touches. Les touches de fonctions ont été déplacés sur le bord haut du clavier à partir de ce modèle, et des touches de contrôle de curseur représentant des flèches ont été ajoutées à ce clavier.

Les claviers compatibles Windows

Microsoft a défini trois nouvelles touches permettant d'effectuer des raccourcis vers des fonctionnalités de Windows.

Ces trois nouvelles touches sont, de gauche à droite:

La touche Windows gauche La touche Windows droite La touche Application

Voici certains des raccourcis que permettent ces nouvelles touches:

Combinaison Description

WIN - E Afficher l'explorateur

WIN - F Rechercher un fichier

WIN - F1 Afficher l'aide

WIN - M Minimiser tous les fenêtres du bureau

WIN - Pause Afficher les propriétés du système

WIN - Tab Explorer la barre des tâches

WIN - R Afficher la boîte "Exécuter"

2.6.6. La souris.

Le pilotage de la souris permet de déplacer un curseur sur l'écran avec lequel (en cliquant sur les boutons) on peut sélectionner, déplacer, manipuler des objets à l'écran.

Constitution d'une souris

La souris comporte une bille sur laquelle tournent deux rouleaux. Ces rouleaux comportent chacun un disque cranté qui tourne entre une photodiode et une LED (Diode électroluminescente) laissant passer la

[email protected] - 27 -

Page 28: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

lumière par séquence. Lorsque la lumière passe, la photodiode renvoie un "1", lorsqu'elle rencontre un obstacle, la photodiode renvoie un "0". A l'aide de ces informations, le PC peut connaître la position de votre curseur (voire la vitesse...!!).

Astuce: A force de l'utiliser, votre souris récolte de la poussière qui vient se déposer sur les rouleaux, ainsi la souris peut avoir des réactions curieuses. Il suffit d'ouvrir la cage contenant la bille et de nettoyer les rouleaux (avec une brosse à dents par exemple).

Aujourd'hui, on utilise de plus en plus la souris sans boule. ( Optical Wheel Mouse ).

2.6.7. L'imprimante.

L'imprimante permet de faire une sortie imprimée (sur papier) des données de l'ordinateur.

Il en existe plusieurs types dont les plus courants sont:

l'imprimante laser l'imprimante à jet d'encre l'imprimante à bulles d'encre l'imprimante matricielle (à aiguilles) l'imprimante à marguerite

L'imprimante à marguerite

Les imprimantes à marguerite sont basées sur le principe des machines dactylographiques. Tous les caractères sont imprimés en relief sur une matrice en forme de marguerite. Pour imprimer, un ruban imbibé d'encre est placé entre la marguerite et la feuille de telle façon que lorsque la matrice frappe le ruban, celui-ci dépose de l'encre uniquement au niveau du relief du caractère. Ce type d'imprimantes est devenu obsolète car elles sont beaucoup trop bruyantes et trop lentes...

L'imprimante matricielle

Elle permet d'imprimer des documents grâce à un va-et-vient de la tête sur le papier. La tête est constituée de petites aiguilles, poussées par des électro-aimants, qui viennent taper contre un ruban de carbone situé entre la tête et le papier.

[email protected] - 28 -

Page 29: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Ce ruban de carbone défile pour qu'il y ait continuellement de l'encre dessus.

A chaque fin de ligne un rouleau fait tourner la feuille.

Les imprimantes matricielles les plus récentes sont équipées de têtes d'impression comportant 24 aiguilles, ce qui leur permet d'imprimer avec une résolution de 216 points par pouce.

L'imprimante jet d'encre

La technologie du jet d'encre a été inventée par Canon, elle repose sur le principe simple mais efficace qu'un fluide chauffé produit des bulles.

Le chercheur qui a découvert ce principe avait mis accidentellement en contact une seringue remplie d'encre et un fer à souder, cela créa une bulle dans la seringue qui fit jaillir de l'encre de la seringue.

Les têtes des imprimantes actuelles sont composées de nombreuses buses (jusqu'à 256), équivalentes à plusieurs seringues, qui sont chauffées entre 300 et 400°c plusieurs fois par seconde grâce à un signal impulsionnel.

Chaque buse produit une bulle minuscule qui fait s'éjecter une gouttelette extrêmement fine. Le vide

engendré par la baisse de pression aspire une nouvelle goutte ...

L'imprimante laser

L'imprimante laser reproduit à l'aide de points l'image que lui envoie le PC par le port LPT. Grâce au laser, les points sont plus petits et la définition est meilleure.

Fonctionnement:

Un ionisateur de papier charge les feuilles positivement. Un ionisateur de tambour charge le tambour négativement.Le laser quant à lui (grâce à un miroir qui lui permet de se placer) charge le tambour positivement en certains points. Du coup, l'encre du toner chargée négativement se dépose sur les parties du toner ayant

[email protected] - 29 -

Page 30: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

été chargées par le laser, qui viendront se déposer sur le papier.

Ainsi, l'imprimante laser n'ayant pas de tête mécanique est beaucoup plus rapide et moins bruyante.

Les langages de description de page

Le langage de description de page est le langage standard que l'ordinateur utilise pour communiquer avec l'imprimante. En effet, il faut que l'imprimante soit capable d'interpréter les informations que l'ordinateur lui envoie.

Les deux langages de description de page principaux sont les suivants:

Langage PCL: il s'agit d'un langage constitué de séquences binaires. Les caractères sont transmis selon leur code ASCII

Langage PostScript: ce langage, utilisé à l'origine pour les imprimantes Apple LaserWriter, est devenu le standard en matière de langage de description de page. Il s'agit d'un langage à part entière basé sur un ensemble d'instructions

2.6.8. Le modem.

Histoire rapide du modem

Le morse a été le premier codage a permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un langage binaire en quelque sorte...). Il permit d'effectuer des communications beaucoup plus rapides que le Pony Express. L'interpréteur était l'homme à l'époque, il fallait donc une bonne connaissance du code...

De nombreux codes furent inventés dont le code d'Emile Baudot (portant d'ailleurs le nom de code Baudot, les anglais l'appelaient Murray Code).

Le 10 mars 1876, le Dr Graham Bell met au point le téléphone, une invention révolutionnaire qui permet de faire circuler de l'information vocale dans des lignes métalliques.

Ces lignes permirent l'essor des télescripteurs, des machines permettant de coder et décoder des caractères grâce au code Baudot (Les caractères étaient alors codés sur 5 bits, il y avait donc 32 caractères uniquement...).

Dans les années 60, le code ASCII (American Standard Code for Information Interchange) est adopté comme standard. Il permet le codage de caractères sur 8 bits, soit 256 caractères possibles.

Grâce aux techniques de digitalisation et de modulation aux alentours de 1962, ainsi que l'essor des ordinateurs et des communications le transfert de données via modem vit le jour...

[email protected] - 30 -

Page 31: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Principe du modem

Le modem est le périphérique utilisé pour transférer des informations entre plusieurs ordinateurs (2 à la base) via les lignes téléphoniques. Les ordinateurs fonctionnent de façon digitale, ils utilisent le langage binaire (une série de zéros et de uns), mais les modems sont analogiques. Les signaux digitaux passent d'une valeur à une autre, il n'y a pas de milieu, de moitié, c'est du Tout Ou Rien (un ou zéro). L'analogique par contre n'évolue pas "par pas", il couvre toutes les valeurs. ainsi vous pouvez avoir 0, 0.1, 0.2, 0.3 ...1.0 et toutes les valeurs intermédiaires.

Un piano par exemple marche plus ou moins de façon analogue car il n'y a pas "de pas" entre les notes. Un violon par contre peut moduler ses notes pour passer par toutes les fréquences possibles.

Un ordinateur marche comme un piano, un modem comme un violon. Le modem convertit en analogique l'information binaire provenant de l'ordinateur. Il envoie ensuite ce nouveau code dans la ligne téléphonique. On peut entendre des bruits bizarres si l'on monte le son provenant du modem.

Ainsi, le modem module les informations numériques en ondes analogiques; en sens inverse il démodule les données numériques. C'est pourquoi modem est l'acronyme de MOdulateur/DEModulateur.

La connexion par la ligne téléphonique

Une ligne téléphonique est conçue pour fonctionner avec un téléphone, c'est pour cela qu'un modem a besoin d'établir une communication avec un ordinateur distant grâce à un numéro de téléphone avant de pouvoir échanger des informations. On appelle protocole le langage utilisé par les ordinateurs pour communiquer entre eux. Les deux protocoles les plus utilisés sont:

le protocole PPP le protocole SLIP

2.7. Les périphériques internes.

Sur un PC on peut connecter des périphériques internes. Les périphériques internes sont connectés à l'intérieur du PC, c'est-à-dire sur les ports AGP, PCI, ou ISA de la carte-mère Il s'agit principalement:

de la carte vidéo (indispensable) qui permet de fournir l'image au moniteur de la carte son qui permet d'avoir le son sur le PC d'un modem interne de la carte réseau (qui permet d'interconnecter plusieurs ordinateurs) de cartes TV, Capture d'image, Radio ...

2.7. Les cartes graphiques.

[email protected] - 31 -

Page 32: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les cartes accélératrices 2D

Les cartes 2D n'ont pas changé de principe depuis leur création. Chaque puce possède de nombreux circuits qui permettent d'exécuter de nombreuses fonctions:

déplacement des blocs (curseur de la souris par exemple) tracé de lignes tracé de polygones

Ainsi, les performances des cartes 2D n'évoluent plus depuis quelques temps.

Leurs performances sont tributaires du type de mémoire utilisée sur la carte (les mémoires SGRAM ou WRAM, mémoires vidéo spécifiques à 10 ns, donnent des résultats bien meilleurs que la mémoire EDO (60 ns))

La fréquence du RAM-DAC (RAM Digital Analogic Converter), ainsi que la quantité de mémoire vidéo ne permettent en rien d'avoir de meilleures performances, elles permettent juste d'avoir un meilleur taux de rafraîchissement (nombre d'images par seconde) et de pouvoir accéder à des résolutions plus grandes.

Les cartes accélératrices 3D

Le domaine de la 3D est beaucoup plus récent, donc plus porteur. On arrive à des puissances de calculs sur PC supérieures à celles de certaines stations de travail.

Le calcul d'une scène 3D est un processus qui se décompose grossièrement en quatre étapes:

le script: mise en place des éléments la geométry: création d'objets simples le setup: découpage en triangles 2D le rendering: C'est le rendu, c'est-à-dire le plaquage des textures

Ainsi, plus la carte accélératrice 3D calcule elle-même ces étapes, plus l'affichage est rapide. Les premières puces n'effectuaient que le rendering, laissant le processeur s'occuper du reste. Depuis, les cartes possèdent un "setup engine" qui prend en charge les deux dernières étapes. A titre d'exemple, un Pentium II à 266 Mhz qui calcule les trois premières étapes peut calculer 350 000 polygones par secondes, lorsqu'il n'en calcule que deux, il atteint 750 000 polygones par seconde. Cela montre à quel point ces cartes déchargent le processeur.

Le type de bus est lui aussi déterminant. Alors que le bus AGP n'apporte aucune amélioration dans le domaine de la 2D, les cartes utilisant ce bus plutôt que le bus PCI sont beaucoup plus performantes. Cela s'explique par le fait que le bus AGP est directement relié à la mémoire vive, ce qui lui offre une bande passante beaucoup plus grande que le bus PCI.

Ces produits de haute technologie ont maintenant besoin de la même qualité de fabrication que les processeurs, ainsi que des gravures allant de 0.35 µm à 0.25 µ:m.

Glossaire des fonctions accélératrices 3D et 2D

Terme Définition

2D Graphics Affiche une représentation d'une scène selon 2 axes de référence (x et y)

3D Graphics Affiche une représentation d'une scène selon 3 axes de référence (x,y, et z)

Alpha blending Le monde est composé d'objets opaques, translucides et transparents. L'alpha blending est une manière d'ajouter des informations de transparence à des objets translucides. Cela est fait

[email protected] - 32 -

Page 33: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

en effectuant un rendu des polygones a travers des masques dont la densité est proportionnelle à la transparence des objets. La couleur du pixel résultant est une combinaison de la couleur du premier plan et de la couleur de l'arrière-plan. L'alpha a généralement une valeur comprise entre 0 et 1 calculée de la manière suivante:nouveau pixel=(alpha)*(couleur du premier pixel)+(1-alpha)*(couleur du second pixel)

Alpha bufferC'est un canal supplémentaire pour stocker l'information de transparence (Rouge-Vert-Bleu-Transparence).

Anti-aliasing appelé aussi anti-crénelage)

Technique permettant de faire apparaitre les pixels de façon moins crénelée.

Effets atmosphérique

Effets tels que le brouillard ou bien l'effet de distance, qui améliorent le rendu d'un environnement.

Bitmap Image pixel par pixel

Bilinear filteringPermet de fluidifier le passage d'un pixel d'un endroit à un autre (lors d'une rotation par exemple)

BitBLTC'est l'une des fonctions d'accélération les plus importantes, elle permet de simplifier le déplacement d'un bloc de données, en prenant en compte les particularités de la mémoire-vidéo. Elle est par exemple utilisée lors du déplacement d'une fenêtre

Blending Combinaison de deux images en les ajoutant bit-à-bit

Bus MasteringUne fonction du bus PCI permettant de recevoir directement des informations de la mémoire sans transiter par le processeur

Correction de perspective

Une méthode pour faire du mappage (enveloppage) avec des textures (texture mapping). Elle prend en compte la valeur de Z pour mapper les polygones. Lorsqu'un objet s'éloigne de l'objectif, il apparaît plus petit en hauteur et en largeur, la correction de perspective consiste à dire que le taux de changement dans les pixels de la texture est proportionnel à la profondeur.

Depth Cueing Baisse l'intensité des objets s'éloignant de l'objectif

DitheringPermet d'archiver des images de qualité 24-bit dans des tampons plus petits (8 ou 16 bits). Le dithering utilise deux couleurs pour en créer une seule

Double bufferingUne méthode utilisant deux tampons, une pour l'affichage, l'autre pour le calcul du rendu, ainsi lorsque le rendu est fait les deux tampons sont échangés.

Flat shading ou Constant shading

Assigne une couleur uniforme sur un polygone. L'objet ainsi rendu apparait de façon facettisée.

FogUtilise la fonction blending pour un objet avec une couleur fixe (plus il s'éloigne de l'objectif, plus cette fonction est utilisée)

Gamma

Les caractéristiques d'un affichage utilisant des phosphores sont non-linéaires: un petit changement de la tension à basse tension crée un changement dans l'affichage au niveau de la brillance, ce même changement à plus haute tension ne donnera pas la même magnitude de brillance. La différence entre ce qui est attendu et ce qui est mesuré est appelée Gamma

Gamma Correction Avant d'être affichées, les données doivent être corrigées pour compenser le Gamma

Gouraud Shading (lissage Gouraud)

Algorithme ( portant le nom de l'inventeur ) permettant un lissage des couleurs par interpolation. Il assigne une couleur à chaque pixel d'un polygone en se basant sur une interpolation de ses arêtes, il simule l'apparence de surfaces plastiques ou métalliques.

InterpolationFaçon mathématique de régénérer des informations manquantes ou endommagées. Lorsqu'on agrandit une image par exemple, les pixels manquants sont régénérés par interpolation.

Line Buffer C'est un tampon fait pour mémoriser une ligne vidéo

Lissage GouraudAlgorithme permettant un lissage des couleurs par interpolation. Il assigne une couleur à chaque pixel d'un polygone en se basant sur une interpolation de ses arêtes, il simule l'apparence de surfaces plastiques ou métalliques.

Lissage PhongAlgorithme (portant le nom de Phong Bui-Tong) permettant un lissage des couleurs en calculant le taux de lumière en de nombreux points d'une surface, et en changeant la couleur des pixels en fonction de la valeur. Il est plus gourmand en ressources que le lissage Gouraud

MIP Mapping C'est un mot provenant du latin "Multum in Parvum" qui signifie "Plusieurs en un". Cette méthode permet d'appliquer des textures de différentes résolutions pour des objets d'une même image, selon leur taille et leur distance. Cela permet entre autre de mettre des textures

[email protected] - 33 -

Page 34: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

de plus hautes résolutions lorsqu'on se rapproche d'un objet.

Projection C'est le fait de réduire un espace en 3-Dimension en un espace en 2-Dimension

Rasterisation Transforme une image en pixels

Rendu (Rendering)C'est le fait de créer des images réalistes sur un écran en utilisant des modèles mathématiques pour le lissage, les couleurs ...

Rendering enginePartie matérielle ou logicielle chargée de calculer les primitives 3D (Généralement des triangles)

Tesselation ou facettisation

Le fait de calculer des graphiques en 3D peut-être divisé en 3 parties: la facettisation, la géométrie et le rendu. La facettisation est la partie consistant à découper une surface en plus petites formes, en la découpant (souvent en triangles ou en quadrilatères)

Texture MappingConsiste à stocker des images constituées des pixels (texels), puis à envelopper des objets 3D de cette texture pour obtenir une représentation plus réaliste des objets

Tri-linear filteringBasé sur le principe du filtrage bilinéaire, le filtrage trilinéaire consiste à faire une moyenne de deux niveaux de filtrage bilinéaire.

Z-bufferPartie de la mémoire qui stocke la distance de chaque pixel à l'objectif. Lorsque les objets sont rendus à l'écran, le rendering engine doit supprimer les surfaces cachées.

Z-buffering C'est le fait de supprimer les faces cachées en utilisant les valeurs stockées dans le Z-buffer

2.7.2. La carte réseau.

Qu'est-ce qu'une carte réseau ?

Les cartes réseau (appelées Network Adapter Card en anglais) constituent l’interface entre l’ordinateur et le câble du réseau. La fonction d’une carte réseau est de préparer, d’envoyer et de contrôler les données sur le réseau. Pour préparer les données à envoyer, la carte réseau utilise un transceiver qui transforme les données parallèles en données séries. Chaque carte dispose d’une adresse unique, qui lui permet d’être différenciée de toutes les autres cartes du réseau (MAC ADRESS) et même d'internet.

Les cartes réseau disposent de paramètres qu’il faut configurer. Parmi eux figurent l’interruption matérielle (IRQ), l’adresse de base du port E/S et l’adresse de base de la mémoire (DMA).

Pour garantir la compatibilité entre l’ordinateur et le réseau, la carte doit être adaptée à l’architecture du bus de données de l’ordinateur et avoir le type de connecteur approprié au câblage. Chaque carte est conçue pour s’adapter à un certain type de câble. Certaines cartes comprennent plusieurs connecteurs d’interfaces (à paramétrer soit avec les cavaliers, soit avec les DIP, soit de façon logicielle). NB : Certaines topologies réseau propriétaires utilisant la paire torsadée ont recours au connecteur RJ-11. Ces topologies sont parfois appelées « pré-10BaseT ».

Enfin pour garantir cette compatibilité entre ordinateur et réseau, la carte doit être compatible avec la structure interne de l’ordinateur (architecture du bus de données) et avoir un connecteur adapté à la nature du câblage.

Quel est le rôle de la carte réseau ?

Une carte réseau sert d’interface physique entre l’ordinateur et le câble. Elle prépare pour le câble réseau les données émises par l’ordinateur, les transfère vers un autre ordinateur et contrôle le flux de données entre l’ordinateur et le câble. Elle traduit aussi les données venant du câble et les traduit en octets afin que l’Unité Centrale de l’ordinateur les comprenne. Ainsi une carte réseau est une carte d'extension s'insérant dans un connecteur d’extensions (slot).

La préparation des données

[email protected] - 34 -

Page 35: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les données se déplacent dans l’ordinateur en empruntant des chemins appelés « Bus ». Plusieurs chemins côte à côte font que les données se déplacent en parallèle et non en série (les unes à la suite des autres).

Les premiers bus fonctionnaient en 8 bits (8 bits de données transportés à la fois) L’ordinateur PC/AT d’IBM introduit les premiers bus 16 bits Aujourd’hui, la plupart des bus fonctionnent en 32 bits

Toutefois sur un câble les données circulent en série (un seul flux de bits), en se déplaçant dans un seul sens. L’ordinateur peut envoyer OU recevoir des informations mais il ne peut pas effectuer les deux simultanément. Ainsi, la carte réseau restructure un groupe de données arrivant en parallèle en données circulant en série (1 bit).

Pour cela, les signaux numériques sont transformés en signaux électriques ou optiques susceptibles de voyager sur les câbles du réseau. Le dispositif chargé de cette traduction est le Transceiver.

Le rôle d'identificateur La carte traduit les données et indique son adresse au reste du réseau afin de pouvoir être distinguée des

autres cartes du réseau. Adresses : définies par l’IEEE (Institute of Electrical and Electronics Engineer) qui attribue des plages

d’adresses à chaque fabriquant de cartes réseau. Elles sont inscrites sur les puces des cartes : procédure appelée « Gravure de l’adresse sur la

carte ». Par conséquent, chaque carte a une adresse UNIQUE sur le réseau.

Les autres fonctions de la carte réseau

L’ordinateur et la carte doivent communiquer afin que les données puissent passer de l’un vers l’autre. L’ordinateur affecte ainsi une partie de sa mémoire aux cartes munies d’un Accès Direct à la Mémoire (DMA : Direct Access Memory).

La carte indique qu’un autre ordinateur demande des données à l’ordinateur qui la contient. Le bus de l’ordinateur transfère les données depuis la mémoire de l’ordinateur vers la carte réseau.

Si les données circulent plus vite que la carte ne peut les traiter, elles sont placées dans la mémoire tampon affectée à la carte (RAM) dans laquelle elles sont stockées temporairement pendant l’émission et la réception des données.

Envoi et contrôle des données

Avant que la carte émettrice envoie les données, elle dialogue électroniquement avec la carte réceptrice pour s’accorder sur les points suivants :

Taille maximale des groupes de données à envoyer Volume de données à envoyer avant confirmation Intervalles de temps entre les transmissions partielles de données Délai d’attente avant envoi de la confirmation Quantité que chaque carte peut contenir avant débordement Vitesse de transmission des données

Si une carte plus récente, donc plus perfectionnée, communique avec une carte plus lente, elles doivent trouver une vitesse de transmission commune. Certaines cartes ont des circuits leur permettant de s’adapter au débit d’une carte plus lente.

Il y a donc acceptation et ajustement des paramètres propres à chacune des deux cartes avant émission et réception des données.

Paramètres de configuration de la carte

[email protected] - 35 -

Page 36: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les cartes réseau sont munies d’options de configuration. Entre autres :

Interruption (IRQ) : Dans la plupart des cas, ce sont les IRQ 3 et 5 qui sont attribués aux cartes réseau. L’IRQ 5 est même conseillée (si elle est disponible !) et la plupart des cartes l’utilisent comme paramètre par défaut.

Adresse de base du port d’entrée/sortie (E/S) : Chaque périphérique doit utiliser une adresse de base différente pour le port correspondant. Les numéros de port suivants (en notation hexadécimale) sont souvent attribuables à une carte réseau, sauf s’ils sont déjà pris.

Adresse de base de la mémoire : Elle désigne un emplacement de la mémoire vive (RAM) de l’ordinateur. La carte utilise cet emplacement comme tampon pour les données qui entrent et qui sortent. Ce paramètre est parfois appelé « adresse de début » (RAM Start Address). En général, l’adresse de base de la mémoire pour une carte réseau est D8000. Le dernier 0 est parfois supprimé pour certaines cartes réseau. Il est essentiel de prendre soin de ne pas sélectionner une adresse de base déjà utilisée par un autre périphérique. A noter toutefois que certaines cartes réseau n’ont pas de réglage pour l’adresse de base de la mémoire car elles n’utilisent pas les adresses RAM de la machine.

Le transceiver

Remarque : il est possible de configurer la carte de manière logicielle. Les paramètres doivent correspondre avec la disposition des cavaliers ou des commutateurs DIP (Dual Inline Package) situés sur la carte réseau. Les réglages sont fournis avec la documentation de la carte. Beaucoup de cartes récentes sont en PnP (Plug and Play). Cela dispense de configurer la carte à la main mais peut parfois être gênant (apparition de conflits) auquel cas il est généralement agréable de pouvoir désactiver l'option PnP et configurer la carte "à la main".

2.8. Le BIOS.

Présentation du BIOS

Tous les PC utilisent un BIOS ("Basic Input/Output System" traduisez "Système d'entrées/sorties basique") pour permettre le contrôle du matériel.

C'est un composant essentiel de votre ordinateur, il s'agit d'un petit logiciel dont une partie est dans une mémoire morte (ROM: que vous ne pouvez donc pas modifier), et une autre partie est dans un EEPROM (ROM que l'on peut modifier par impulsions électriques, d'où le terme flasher lorsque vous la modifiez).

Lorsque le système est mis sous-tension ou réamorcé (Reset), le CPU est lui aussi réamorcé et le BIOS va effectuer les opérations (barbares) suivantes:

Faire le test du CPU Vérifier le BIOS Vérifier la configuration du CMOS Initialiser le timer (l'horloge interne) Initialiser le contrôleur DMA Vérifier la mémoire vive et la mémoire cache Installer toutes les fonctions du BIOS Vérifier toutes les configurations (clavier, disquettes, disques durs ...)

La plupart des BIOS ont un "setup" (programme de configuration) qui permet de modifier la configuration basique du système. Ce type d'information est stockée dans une RAM auto-alimentée afin que l'information soit conservée même lorsque le système est hors-tension (nous avons vu que la mémoire vive était réinitialisée à chaque redémarrage).

Il existe de nombreux BIOS dans votre machine:

Le BIOS de la carte-mère que nous allons voir Le BIOS qui contrôle le clavier

[email protected] - 36 -

Page 37: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le BIOS de la carte vidéo et éventuellement Le BIOS de contrôleurs SCSI qui permettent de booter sur le périphérique SCSI, qui communique alors

avec le DOS sans pilote supplémentaire Le BIOS de cartes réseau qui permettent de booter sur le réseau

Lorsque le système est mis sous tension, le BIOS affiche un message de copyright à l'écran, puis il effectue les tests de diagnostics et d'initialisation. Lorsque tous les tests ont été effectués, le BIOS affiche un message du genre:

"TO ENTER SETUP BEFORE BOOT PRESS CTRL-ALT-ESC OR DEL KEY"

qui signifie "PRESSEZ "CTRL-ALT-ESC" ou la touche "DEL" pour entrer dans le "SETUP" avant le démarrage du PC"

Le BIOS Award

Lorsque vous appuyez sur la touche "Suppr" au démarrage de l'ordinateur, vous tombez sur un écran ressemblant à peu de chose près à celui-ci:

[email protected] - 37 -

Page 38: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

3. LES SYSTEMES DE NUMERATION.

3.1. Introduction.

Nous avons vu que l'ordinateur ne pouvait utiliser que des nombres binaires pour stocker ses informations ( condensateurs chargés ou non ) et pour calculer. Un rappel des systèmes de numération me semble donc indispensable pour bien saisir la suite des informations. Nous allons revoir rapidement le système de numération décimale avant d'aborder les numérations binaires et hexadécimales.

3.2. La numération décimale.

3.2.1. Les entiers positifs.

Vous avez compté sur vos doigts. De là vient le fait qu'on utilise 10 symboles pour écrire les nombres.

Un nombre comme 7258 peut être décomposé en

7 * 1000 + 2 * 100 + 5 * 10 + 8 * 1 ou encore

7 * 10 3 + 2 * 10 2 + 5 * 10 1 + 8 * 10 0 ce qui nous permet d'écrire la formule générale :

3.2.2. Les décimaux.

De la même façon, le nombre 314,25 peut être décomposé en :

3 * 100 + 1 * 10 + 4 * 1 + 2 * 0,1 + 5 * 0,01 ou encore

3 * 10 ² + 1 * 10 1 + 4 * 10 0 + 2 * 10 –1 + 5 * 10 -2

3.2.3. Les nombres négatifs

Nous avons l'habitude de représenter les nombres négatifs en plaçant le signe – devant le nombre. Le signe + est inutile.

3.3. La numération binaire.

Un ordinateur n'étant capable de reconnaître que deux positions : ouvert et fermé , nous n'utiliserons que deux signes qui représentent ces états. Nous avons choisi 0 et 1.

3.3.1. Les entiers positifs.

Si nous utilisons le même principe que pour la numération décimale, un nombre écrit comme ceci signifie :

1 0 0 1 1 0 1

1 * 2 6 + 0 * 2 5 + 0 * 2 4 + 1 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 et donc

1 * 64 + 0 * 32 + 0 * 16 + 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 en décimal ou 77.

[email protected] - 38 -

Page 39: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Comment convertir un nombre décimal en binaire ? Il suffit de décomposer en facteurs de 2 de cette manière :347 2 restera 1 173 2 restera 186 2 restera 043 2 restera 1

21 2 restera 1 10 2 restera 0 5 2 restera 1 2 2 restera 0

1 2 restera 10

Vous formez le nombre binaire composé par les restes en commençant par le bas, soit

1 0 1 0 1 1 0 1 1

En contrôlant, nous obtenons

256 + 64 + 16 + 8 + 2 + 1 = 347

Rassurez-vous, vous ne devrez pas tout traduire en binaire, la machine le fait pour vous. Toutefois, il est indispensable de bien comprendre la façon dont elle stocke et manipule les informations.

Le bit

Bit signifie "binary digit", c'est-à-dire 0 ou 1 en numérotation binaire. C'est la plus petite unité d'information manipulable par une machine. On peut les représenter physiquement:

par une impulsion électrique, qui, lorsqu'elle atteint une certaine valeur, correspond à la valeur 1. par des trous dans une surface grâce à des bistables, c'est-à-dire des composants qui ont deux états d'équilibre (un correspond à l'état 1,

l'autre à 0)

Avec un bit on peut avoir soit 1, soit 0. Avec 2 bits on peut avoir quatre états différents (2*2):

0 00 11 01 1

Avec 3 bits on peut avoir huit états différents (2*2*2):

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

[email protected] - 39 -

Page 40: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Avec huit bits on a 2*2*2*2*2*2*2*2=256 possibilités, c'est ce que l'on appelle un octet.

27 =128 26 =64 25 =32 24 =16 23 =8 22 =4 21 =2 20 =10 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Le plus petit nombre est 0, le plus grand est 255, il y a donc 256 possibilités Cette notion peut être étendue à n bits, on a alors 2n possibilités.

Il a été décidé que l'ordinateur manipulerait des informations par certains multiples de 8 bits.

L'octet est une unité d'information composée de 8 bits. Il permet de stocker un caractère, telle qu'une lettre, un chiffre ... Ce regroupement de nombres par série de 8 permet une lisibilité plus grande, au même titre que l'on apprécie, en base décimale, de regrouper les nombres par trois pour pouvoir distinguer les milliers. Par exemple le nombre 1 256 245 est plus lisible que 1256245.

Une unité d'information composée de 16 bits est généralement appelée mot (en anglais word)

Une unité d'information de 32 bits de longueur est appelée double mot (en anglais double word, d'où l'appellation dword).

Une unité d'information de 64 bits de longueur est appelée quadruple mot ( en abrégé qword ).

On appelle représentation (ou codification) d'un nombre la façon selon laquelle il est décrit sous forme binaire. La représentation des nombres sur un ordinateur est indispensable pour que celui-ci puisse les stocker, les manipuler. Toutefois le problème est qu'un nombre mathématique peut être infini (aussi grand que l'on veut), mais la représentation d'un nombre dans un ordinateur doit être fait sur un nombre de bits prédéfini. Il s'agit donc de prédéfinir un nombre de bits et la manière de les utiliser pour que ceux-ci servent le plus efficacement possible à représenter l'entité. Ainsi il serait idiot de coder un caractère sur 16 bits (65536 possibilités) alors qu'on en utilise généralement moins de 256...

Pour représenter un nombre entier naturel après avoir défini le nombre de bits sur lequel on le code, il suffit de ranger chaque bit dans la cellule binaire correspondant à son poids binaire de la droite vers la gauche, puis on "remplit" les bits non utilisés par des zéros.

KiloOctets, MégaOctets

Un kilo-octet (Ko) ne vaut pas 1000 octets mais 210 = 1024 octets Un méga-octet (Mo) vaut 220 octets = 1024 Ko = 1 048 576 octets Un giga-octet (Go) vaut 230 octets = 1024 Mo = 1073741824 octets Un terra-octet (To) vaut 240 octets = 1024 Go = 1099511627776 octets

Les opérations en binaire

Les opérations arithmétiques simples telles que l'addition, la soustraction et la multiplication sont faciles à effectuer en binaire.

L'addition en binaire

[email protected] - 40 -

Page 41: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

L'addition en binaire se fait avec les mêmes règles qu'en décimal : On commence à additionner les bits de poids faibles (les bits de droite) puis on a des retenues lorsque la somme de deux bits de mêmes poids dépasse la valeur de l'unité la plus grande (dans le cas du binaire: 1), cette retenue est reportée sur le bit de poids plus fort suivant...

Par exemple:

  0 1 1 0 1+ 0 1 1 1 0- - - - - -  1 1 0 1 1

La table de multiplication en binaire est très simple:

0x0=0 0x1=0

1x0=0 1x1=1

Le principe est le même que pour les décimaux : décalage d'un rang vers la gauche à chaque ligne, report si l'on atteint 2 au lieu de 10.

Par exemple:

    0 1 0 1 x   0 0 1 0 - - - - - -    0 0 0 0  0 1 0 1  0 0 0 0    - - - - - -  0 1 0 1 0

3.3.2. Les entiers négatifs.

Il n'existe pas de signe – en binaire ( seulement 1 et 0 ). Il a fallu se mettre d'accord sur une méthode :

Représentation d'un entier relatif

[email protected] - 41 -

La multiplication en binaire

Page 42: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Un entier relatif est un entier pouvant être négatif. Il faut donc coder le nombre de telle façon que l'on puisse savoir s'il s'agit d'un nombre positif ou d'un nombre négatif, et il faut de plus que les règles d'addition soient conservées. L'astuce consiste à utiliser un codage que l'on appelle complément à deux.

un entier relatif positif ou nul sera représenté en binaire (base 2) comme un entier naturel, à la seule différence que le bit de poids fort (le bit situé à l'extrême gauche) représente le signe. Il faut donc s'assurer pour un entier positif ou nul qu'il est à zéro (0 correspond à un signe positif, 1 à un signe négatif). Ainsi si on code un entier naturel sur 4 bits, le nombre le plus grand sera 0111 (c'est-à-dire 7 en base décimale).D'une manière générale le plus grand entier relatif positif codé sur n bits sera 2n-1-1

un entier relatif négatif grâce au codage en complément à deux. Principe du complément à deux: soit à représenter un nombre négatif.

o Prenons son opposé (son équivalent en positif) o On le représente en base 2 sur n-1 bits o On complémente chaque bit (on inverse, c'est-à-dire que l'on remplace les zéros par des 1 et

vice-versa) o On ajoute 1

On remarquera qu'en ajoutant le nombre et son complément à deux on obtient 0...

Voyons maintenant cela sur un exemple: On désire coder la valeur -5 sur 8 bits. Il suffit d'écrire 5 en binaire: 00000101 de complémenter à 1: 11111010 d'ajouter 1: 11111011 la représentation binaire de -5 sur 8 bits est 11111011

Remarques:

Le bit de poids fort est 1, on a donc bien un nombre négatif Si on ajoute 5 et -5 (00000101 et 11111011) on obtient 0 (avec une retenue de 1...)

La représentation binaire de – 5 sur un mot est 1111111111111011

Comment l'ordinateur différencie-t-il 11111011 qui vaut 251 s'il est positif et – 5 s'il est négatif ? Il faut lui dire si vous travailler avec des nombres signés ou non. Ceci signifie :

Taille enoctets

Dénomination Usage Validité en arithmétique signée

Validité en arithmétique non signée

1 byte court -128 à 127 0 à 2552 word entier -32768 à 32767 0 à 655354 dword entier long -2147483648 à 2147483647 0 à 4294967295

Nous verrons plus loin qu'il faut éviter d'autres confusions.

3.3.3 Les nombres décimaux.

Comme il n'existe pas de signe – en binaire, il n'existe pas non plus de virgule. Reprenons la règle générale étudiée en numération décimale et appliquons la au binaire.

Si j'écrivais ( pas possible ) en binaire

[email protected] - 42 -

Page 43: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

1 0 1 , 0 1 11 * 2 ² 0 * 2 1 1 * 2 0 0 * 2 -1 1 * 2 -2 1 * 2 –3

1 * 4 0 * 2 1 * 1 0 * 0,5 1 * 0,25 1 * 0,1254 1 0,25 0,125 Ceci nous donne un total de 5,375

Nous ne travaillons plus avec des dixièmes, centièmes, … mais des demis, quarts, huitièmes, …

Ce n'est déjà plus si simple. Ceci se complique encore quand il faut signaler où se trouve la virgule. Il a donc été décidé de copier l'écriture scientifique d'un nombre décimal :

Rappel :

le nombre 124,3145 en écriture scientifique se note 0,1243145 * 10 ³. Vous verrez parfois 0.1243145 E 3le nombre 0,04578 en écriture scientifique se note 0,4578 * 10 –1. Vous verrez parfois 0.4578 E -1 le nombre – 551,22 en écriture scientifique se note -0,55122 * 10 ³. Vous verrez parfois –0.55122 E 3le nombre - 0,002147 en écriture scientifique se note - 0,2147 * 10 –2. Vous verrez parfois –0.2147 E -2

Dans l'expression – 0,2147 * 10 –2 , on trouve les caractéristiques suivantes :

mantisse

signe exposant

Il a fallu s'entendre sur la manière de représenter ces nombres : c'est la norme IEEE 754 (Institute of Electrical and Electronic Engineers ).

Sur un nombre exprimé en simple précision ( dword ), on aura

Sur un nombre exprimé en double précision

Mais c'est encore plus compliqué car il y a le signe de l'exposant. On n'inscrit pas un 1 dans son bit de poids fort. On inscrit l'exposant en excédent à 127 ou 1023, les négatifs pas.

Voici un exemple : 432,5 en décimal s'écrirait 11011,1 ( vérifiez ).

En écriture scientifique 0.110111 * 2 5

En simple précision.

le signe du nombre est positif donc le bit de poids fort est 0

[email protected] - 43 -

S1

Exposant8 bits

Mantisse23 bits

S1

Exposant11 bits

Mantisse52 bits

Page 44: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

l'exposant est positif, on fait donc 128 + 5 133 ou sur 8 bits : 1 0 0 0 0 1 0 1 la mantisse 1 1 0 1 1 1

Voici le nombre :

0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s exposant mantisse

Ce n'est pas tout, car comme le premier chiffre de la mantisse est toujours un 1, on a décidé de s'en passer. Ce qui nous permet de disposer d'un digit de plus pour la mantisse. La représentation finale est donc :

0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s exposant mantisse

Heureusement, la machine le fait pour nous. Essayez d'en faire quelques uns pour le plaisir.

Simple précision Double précisionBit de signe 1 1Bits d'exposant 8 11Bits de mantisse 23 52Nombre total de bits 32 64Codage de l'exposant Excédant 127 Excédant 1023Variation de l'exposant -126 à + 127 -1022 à 1023Plus petit nombre normalisé 2 – 126 2 – 1022Plus grand nombre normalisé environ 2 128 Environ 2 1024Echelle des nombres décimaux environ 10 – 38 à 10 38 Environ 10 –308 à 10 308

3.4. La numération hexadécimale.

Les nombres binaires étant de plus en plus longs, il a fallu introduire une nouvelle base: la base hexadécimale. La base hexadécimale consiste à compter sur une base 16, c'est pourquoi au-delà des 10 premiers chiffres on a décidé d'ajouter les 6 premières lettres : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

Base décimale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Base hexa - décimale

0 1 2 3 4 5 6 7 8 9 A B C D E F

Base binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Un exemple

Le nombre 27 (en base 10) vaut en base 16 : 1*161 + 11*160= 1*161 + B*160 c'est-à-dire 1B en base 16.

Le nombre FB3 (en base 16) vaut en base 10 : F*162 + B*161 + 3*160=3840+176+3=4019

Pour convertir un octet en hexadécimale, on le partage en 2 groupes de 4 bits, qui correspondent chacun à un chiffre hexadécimal.

2 A D 50010 1010 1101 0101

[email protected] - 44 -

Page 45: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

3.5. Les caractères.

La mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de méthode pour stocker directement les caractères. Chaque caractère possède donc son équivalent en code numérique: c'est le code ASCII (American Standard Code for Information Interchange - traduisez " Code Américain Standard pour l'Echange d'Informations"). Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles, de 0 à 127). Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas de caractères accentués, ni de caractères spécifiques à une langue. Pour coder ce type de caractère il faut recourir à un autre code. Le code ASCII a donc été étendu à 8 bits (un octet) pour pouvoir coder plus de caractères (on parle d'ailleurs de code ASCII étendu...). Ce code attribue les valeurs 0 à 255 (donc codées sur 8 bits, soit 1 octet) aux lettres majuscules et minuscules, aux chiffres, aux marques de ponctuation et aux autres symboles (caractères accentués dans le cas du code iso-latin1).

Le code ASCII étendu n'est pas unique et dépend fortement de la plate-forme utilisée.

Les codes 0 à 31 ne sont pas des caractères. On les appelle caractères de contrôle car ils permettent de faire des actions telles que:

o retour à la ligne (CR) o Bip sonore (BEL)

Les codes 65 à 90 représentent les majuscules Les codes 97 à 122 représentent les minuscules

(il suffit de modifier le 5ème bit pour passer de majuscules à minuscules, c'est-à-dire ajouter 32 au code ASCII en base décimale)

caractère code code caractère code code caractère code code

[email protected] - 45 -

Page 46: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

ASCII Hexa ASCII Hexa ASCII Hexa

NUL 0 00 9 57 39 r 114 72

SOH 1 01 : 58 3A s 115 73

STX 2 02 ; 59 3B t 116 74

ETX 3 03 < 60 3C u 117 75

EOT 4 04 = 61 3D v 118 76

ENQ 5 05 > 62 3E w 119 77

ACK 6 06 ? 63 3F x 120 78

BEL 7 07 @ 64 40 y 121 79

BS 8 08 A 65 41 z 122 7A

TAB 9 09 B 66 42 { 123 7B

LF 10 0A C 67 43 | 124 7C

VT 11 0B D 68 44 } 125 7D

FF 12 0C E 69 45 ~ 126 7E

CR 13 0D F 70 46 suppression 127 7F

SO 14 0E G 71 47

SI 15 0F H 72 48

DLE 16 10 I 73 49

DC1 17 11 J 74 4A

DC2 18 12 K 75 4B

DC3 19 13 L 76 4C

DC4 20 14 M 77 4D

NAK 21 15 N 78 4E

SYN 22 16 O 79 4F

ETB 23 17 P 80 50

CAN 24 18 Q 81 51

EM 25 19 R 82 52

SUB 26 1A S 83 53

ESC 27 1B T 84 54

FS 28 1C U 85 55

GS 29 1D V 86 56

RS 30 1E W 87 57

US 31 1F X 88 58

Espace 32 20 Y 89 59

! 33 21 Z 90 5A

" 34 22 [ 91 5B

# 35 23 \ 92 5C

$ 36 24 ] 93 5D

% 37 25 ^ 94 5E

& 38 26 _ 95 5F

' 39 27 ` 96 60

( 40 28 a 97 61

) 41 29 b 98 62

* 42 2A c 99 63

+ 43 2B d 100 64

, 44 2C e 101 65

- 45 2D f 102 66

. 46 2E g 103 67

/ 47 2F h 104 68

0 48 30 i 105 69

1 49 31 j 106 6A

2 50 32 k 107 6B

[email protected] - 46 -

Page 47: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

3 51 33 l 108 6C

4 52 34 m 109 6D

5 53 35 n 110 6E

6 54 36 o 111 6F

7 55 37 p 112 70

8 56 38 q 113 71

Table des caractères ASCII Etendue

Les deux jeux de caractères ASCII étendus les plus couramment utilisés sont :

Le code ASCII étendu OEM, c'est-à-dire celui qui équipait les premières machines de type IBM PC

Le code ASCII étendu ANSI, utilisé par les systèmes d'exploitation récents

Je vous rappelle de bien vous méfier et de préciser à la machine le type de donnée qu'il manipule. Ainsi le byte suivant

0 1 0 0 1 1 0 1

représente aussi bien le caractère M que l'entier 77.

[email protected] - 47 -

Page 48: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

4. ALGEBRE DE BOOLE

Un processeur est composé de transistors permettant de réaliser des fonctions sur des signaux numériques. Ces transistors, assemblés entre eux forment des composants permettant de réaliser des fonctions très simples. A partir de ces composants il est possible de créer des circuits réalisant des opérations très complexes. L'algèbre de Boole (du nom du mathématicien anglais Georges Boole 1815 - 1864) est un moyen d'arriver à créer de tel circuit.

L'algèbre de Boole est une algèbre se proposant de traduire des signaux en expressions mathématiques. Pour cela, on définit chaque signal élémentaire par des variables logiques et leur traitement par des fonctions logiques. Des méthodes (table de vérité) permettent de définir les opérations que l'on désire réaliser, et à transcrire le résultat en une expression algébrique. Grâce à des règles appelées lois de composition, ces expressions peuvent être simplifiées. Cela va permettre de représenter grâce à des symboles un circuit logique, c'est-à-dire un circuit qui schématise l'agencement des composants de base (au niveau logique) sans se préoccuper de la réalisation au moyen de transistors (niveau physique).

Variable logique

Un ordinateur ne manipule que des données binaires, on appelle donc variable logique une donnée binaire, c'est-à-dire une donnée ayant deux états possibles: 0 ou 1.

Fonction logique

On appelle fonction logique une entité acceptant plusieurs valeurs logiques en entrée et dont la sortie (il peut y en avoir plusieurs) peut avoir deux états possibles: 0 ou 1.

En réalité ces fonctions sont des composants électroniques admettant des signaux électriques en entrée, et restituent un signal en sortie. Les signaux électroniques peuvent prendre une valeur de l'ordre de 5 Volts (c'est l'ordre de grandeur général) que l'on représente par un 1, ou 0 V que l'on représente par un 0.

Les portes logiques

Les fonctions logiques de bases sont appelées portes logiques. Il s'agit de fonctions ayant une ou deux entrées et une sortie:

La fonction OU (en anglais OR) positionne sa sortie à 1 si l'une ou l'autre de ses entrées est à 1 La fonction ET (en anglais AND) positionne sa sortie à 1 si ses deux entrées sont à 1 La fonction OU EXCLUSIF (en anglais XOR) positionne sa sortie à 1 si l'une ou l'autre de ses entrées

est à 1 mais pas les deux simultanément La fonction NON (appelée aussi inverseur) positionne sa sortie à 1 si son entrée est à 0, et vice-versa

On définit généralement les fonctions NON OU (couramment appelée NOR) et NON ET (NAND) comme étant la composition respective d'un NON avec un OU et un ET.

Chronogramme

[email protected] - 48 -

Page 49: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Un chronogramme est un diagramme montrant l'évolution des entrées et des sorties en fonction du temps. Voici par exemple ce à quoi pourrait ressembler un chronogramme de l'opérateur ET:

Ce chronogramme est un chronogramme idéal ; en réalité les signaux électriques ne passent pas instantanément de 0 à 1, les pentes (ici verticales) sont obliques, et le traitement des entrées cause un retard sur les sorties:

Expression algébrique

Le but de l'algèbre de Boole est de décrire le traitement de signaux sous forme d'expression algébrique. Comme nous l'avons vu, les signaux sont représentés par des noms de variables. Les fonctions logiques sont représentées par des opérateurs:

la fonction OU est représentée par un plus :

la fonction ET est représentée par un point :

la fonction NON est représenté par une barre au-dessus de la variable inversée : Elle est parfois représentée par un / devant la variable inversée

la fonction OU EXCLUSIF est représenté par un plus encerclé:

Une expression algébrique sera donc une expression du type:

Table de vérité

Une table de vérité est un tableau permettant de décrire toutes les possibilités de sorties en fonction de entrées. On place donc les variables d'entrées dans les colonnes de gauche en les faisant varier de telle façon à couvrir l'ensemble des possibilités. La colonne (ou les colonnes si la fonction a plusieurs sorties) de droite décrit la sortie. Voici par exemple les tables de vérités des portes logiques:

Nom de la porteEntréeSortie

[email protected] - 49 -

Page 50: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

  A B S

OU

0 0 0

0 1 1

1 0 1

1 1 1

ET

0 0 0

0 1 0

1 0 0

1 1 1

NON OU

0 0 1

0 1 0

1 0 0

1 1 0

NON ET

0 0 1

0 1 1

1 0 1

1 1 0

NON0 1

1 0

Il est possible à partir de la table de vérité d'une fonction d'écrire l'expression algébrique de celle-ci. Soit la table de vérité suivante:

Entrée Sortie

A B S

0 0 0

0 1 0

1 0 1

1 1 0

La sortie vaut 1 lorsque A vaut 1 et B vaut 0, l'expression algébrique de cette fonction est donc:

Prenons maintenant la table de vérité suivante:

Entrée Sortie

A B C S

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 0

La sortie vaut 1 lorsque

A vaut 0 B vaut 1

[email protected] - 50 -

Page 51: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

C vaut 0

ou A vaut 1 B vaut 1 C vaut 0

L'expression algébrique de cette fonction est donc:

Les lois de composition

Les lois de composition sont des règles logiques qui permettent de simplifier l'écriture des expressions algébriques.

Associativité (A.B).C est équivalent à A.(B.C) (A+B)+C est équivalent à A+(B+C)

Absorption A.(A+B) est équivalent à A A+A.B est équivalent à A

Commutativité A.B est équivalent à B.A A+B est équivalent à B+A

Distributivité A+(B.C) est équivalent à (A+B).(A+C) A.(B+C) est équivalent à A.B+A.C

Idempotence A.A est équivalent à A A + A est équivalent à A

Identité 1.A est équivalent à A 0+A est équivalent à A

Inversion A./A est équivalent à 0 A+/A est équivalent à 1

Nullité 0.A est équivalent à 0 1+A est équivalent à 1

Théorème de De Morgan

est équivalent à

est équivalent à

Exemple de simplification d'expression

[email protected] - 51 -

Page 52: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Soit la simplification suivante:

Représentation des portes logiques

La représentation conventionnelle des portes logiques est la suivante:

[email protected] - 52 -

Page 53: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

5. FONCTIONNEMENT DE L'ORDINATEUR

Le but de cette partie du cours n'est pas de faire de vous des électroniciens ni des architectes de l'ordinateur. Toutefois, il me semble qu'un gradué en informatique doit connaître l'organisation de la mémoire, les notions de registres, piles, interruptions …

5.1. Les registres du processeur.

Au centre de chaque processeur se trouvent ses registres, sortes de variables matérielles. Le processeur y charge des données en provenance de la mémoire, les traite, puis les renvoie dans la mémoire. Ce mécanisme est plus rapide que le traitement direct dans la mémoire car le passage par le bus est réduit. Il est extrêmement important de connaître ces registres et de leurs rôles. Les registres de base du 8086 sont 14 registres de 16 bits. Depuis, sont apparus des registres 32 bits ( depuis le 80386 ) mais nous ne les utiliserons pas ( ou peu ) ; le dos étant incapable de s'en servir.

Les registres généraux servent à transmettre les paramètres d'appel pour les fonctions (interruptions ) du BIOS et du DOS. Ils peuvent également servir pour les opérations arithmétiques qui constituent la base de l'activité du processeur.

Les quatre registres de gauche peuvent être divisés en 2 sous-registres. La partie de droite ( ou demi-registre de poids faible ) porte la même initiale que le registre auquel elle appartient suivie de L ( pour LOW ). Le demi-registre de poids fort porte un H (comme HIGH ). Attention toutefois : si vous utilisez les deux parties, le registre y relatif est utilisé également.

Exemple : chargeons dans DL le nombre décimal 212 ( soit 11010100 ) et le nombre décimal 13 dans DH ( soit 00001101). Le registre DX vaudra 0000110111010100 ou 3540 en décimal. Vous pouvez d'ailleurs

[email protected] - 53 -

Registres généraux.

Accumulateur Destination Index

Base Source Index

Compteur Pointeur de Pile ( Stack Pointer )

Données Pointeur de Base

DI

SI

SP

BP

AX

AH AL

BX

BH BL

CX

CH CL

DX

DH DL

Page 54: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

retrouver 3540 par le calcul suivant : la partie de gauche vaut 256 X 13 = 3328 et la partie de droite 212, soit un total de 3540.

Ces demis-registres peuvent être utilisés pour traiter des données dont la taille est inférieure ou égale à 8 bits. Attention : le transfert entre les registres et la mémoire centrale et retour se fait par registre entier.

Le registre des indicateurs ( FLAG REGISTER ) sert à mémoriser l'état du processeur à la suite de diverses opérations mathématiques. Ainsi, lors de l'addition de 2 registres de 16 bits, un programme pourra tester si la somme ne dépasse pas 65535, c'est à dire la taille d'un registre, en vérifiant si l'indicateur de retenue ( carry flag ) a changé de valeur . Les indicateurs de signe, de zéro, de débordement ont des rôles analogues. Une comparaison de deux registres modifie un indicateur .

Les fonctions du BIOS et du DOS affectent souvent les indicateurs. Nous étudierons plus loin comment connaître la valeur d'un indicateur et la signification du bit à 1 ou à 0.

[email protected] - 54 -

REGISTRE DE FLAG.

CF : Carry Flag

PF : Parity Flag

AF : Auxillary Flag

ZF : Zero Flag

SF : Sign Flag

TF : Trap Flag

IF : Interrupt Flag

DF : Direction Flag

OF : Overflow Flag

LES REGISTRES DE SEGMENTS.

Data Segment Extra Segment Code Segment Stack Segment

CS SS ES DS

COMPTEUR DE PROGRAMME.

Instruction Pointer

IP

O D I T S Z A P C

Page 55: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le registre CS : ( segment de code = code segment ) détermine en association avec le registre IP ( pointeur d'instruction = Instruction Pointer ) la cellule de mémoire où réside la prochaine instruction machine à exécuter. Dès que le processeur a exécuté une instruction, le registre IP est automatiquement incrémenté de façon à référencer la prochaine instruction machine : c'est ainsi que le programme peut être exécuté instruction par instruction.

Le registre DS : ( segment de données = data segment ) est utilisé pour former une adresse de données, c'est à dire chaque fois qu'il s'agit de lire ou d'écrire des données en mémoire.

Le registre SS : ( segment de pile = stack segment ) est utilisé pour référencer une adresse mémoire où commence la pile. La pile sert à recueillir l'adresse de retour lors de l'appel d'un sous-programme ( par un CALL par exemple). La pile est aussi utilisée pour transmettre des paramètres aux procédures et aux fonctions et pour mémoriser des variables locales ( par des langages évolués ).

Le registre ES : ( extra segment ) est laissé à la libre disposition du programmeur. On s'en servira notamment pour accéder à des données ou pour la copie de variables d'un segment de 64 Kb vers un autre segment de 64 Kb.

5.2. La formation des adresses en mémoire.

Il est important de connaître la façon dont le processeur adresse la mémoire; c'est un processus relativement compliqué. Un peu d'histoire.

A l'époque de construire un microprocesseur , il fallait démontrer sa supériorité par rapport à ses concurrents ( Z80, 6502, … ) en dépassant leur capacité d'adressage ( 64 Kb ). INTEL décida d'adresser 1 Mb de mémoire ou 1024 Kb. ( ‘640 Kb should be enough for everyone’ Bill Gates : 1981 ).

Pour adresser 1024 Kb, il faut 20 bits. Les registres n'en comptent que 16. La solution réside dans l'utilisation de deux registres de 16 bits. Le 8088 et ses successeurs ne possèdent pas un registre d'adresse spécifique.

Vous trouverez à la page suivante un schéma reprenant la méthode d’adressage de la mémoire centrale jusqu’au premier Mb.

Les deux registres vont se répartir le travail de la façon suivante :

le premier registre appelé registre de segment pointera sur un début de segment le second registre appelé registre d’offset ou de déplacement donnera la position dans le segment

spécifié par le registre de segment. Chaque segment comprend 65536 bytes ( de 0 à 65535 ).

Ce système semble relativement facile à comprendre. Dans la réalité, il n’en est rien. Car voici comment travaille réellement l’adressage :

[email protected] - 55 -

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

00

Adresse logique

Adresse de segment

16 bits

16 bits

20 bits

Page 56: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Comment fonctionne le processeur ?

Il multiplie le nombre du registre de segment par 16 ( décalage de 4 bits vers la gauche ). Il ajoute le contenu du registre d’offset au nombre donné par le registre de segment.

Nous n’écrirons pas les adresses en binaire mais bien en hexadécimal plus compréhensible ; exemple :

Adresse 5000h : 1AC2h nous donne :

5000h X 16d = 5000h X 10h = 50000h 50000h + 1AC2h = 51AC2h = 5 X 65536 + 1 X 4096 + 10 X 256 + 12 X 16 + 2 = 334530d

Et celui qui essaye de traduire l’adresse 4FFFh : 1AD2h

4FFFh X 10h = 4FFF0h 4FFF0h + 1AD2h = 51AC2h

Une adresse réelle peut donc être référencée logiquement de plusieurs façons. Chaque registre de segment désigne un segment de 65536 bytes. Comme chaque progression dans le registre de segment fait avancer de 16 bytes, on constate donc que deux segments consécutifs se recouvrent de 65520 bytes.

Pour éviter des calculs fastidieux, nous prendrons les segments 1000h ; 2000h ; … ; 9000h ; A000h ;… ;F000h.Nous arrivons ainsi à 16 segments non superposables de 64 Kb donc 1Mb de mémoire vive.

Pour désigner une cellule de la mémoire, nous procéderons donc ainsi :

5.3. Modification lors de l'apparition du 80386.

Lors de la création du 80386, INTEL a inclus des registres 32 bits que nous allons ajouter à ceux étudiés.

[email protected] - 56 -

4000 h : 1DEF h

adresse d’offset

adresse de segment

Comme toutes les adresses seront exprimées en hexadécimal, nous nous abstiendrons dans ce cas d’écrire les h à l’arrière des nombres : on aura donc :

4000 : 1DEF

Adresse d’offset

Adresse physique

Page 57: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Ils portent le même nom que les registres 16 bits qu'ils contiennent dans la partie faible mais ce nom est précédé de E. La demi-partie forte de EAX n'existe pas.

Exemple :

Il en va de même avec EBX,ECX, EDX, ESI,On a de même

Les registres de segment sont restés à 16 bits mais il en existe 2 de plus : FS et GS qui remplissent le même rôle que le registre EDI, EBP et ESP.

Le registre IP a également été doublé st s'appelle désormais EIP. Quant au registre de flag,, il est passé à 32 bits. Voici les améliorations apportées dans la partie faible :

[email protected] - 57 -

AX

EAX

AH AL

CF : Carry Flag

PF : Parity Flag

AF : Auxillary Flag

ZF : Zero Flag

SF : Sign Flag

TF : Trap Flag

IF : Interrupt Flag

DF : Direction Flag

OF : Overflow Flag

IOPL : Input/output Privilege Level NTF : Nested Task Flag

CNT IOPL AZSTIDO P

Page 58: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

D'autres flags sont apparus dans la partie forte : VIRTUAL MODE FLAG, RESUME FLAG, ALIGNMENT CHECK FLAG, ).Le DOS est maintenant conçu pour utiliser les registres de 32 bits mais ne permet le travail qu'en mode réel.Le mode protégé de WINDOWS 95-98, NT, 2000, XP et OS/2-WARP ne permettent plus de travailler avec les routines du DOS.

5.4. Communication du processeur avec le matériel.

Un programme communique avec le matériel, c'est à dire les circuits auxiliaires et les cartes d'extension, par l'intermédiaire des ports d'entrée-sortie. Un port est en contact avec l'extérieur, sur 8, 16 ou 32 bits, identifié par une adresse comprise entre 0 et 65535. Il donne accès aux registres d'un circuit extérieur. En règle générale, un périphérique occupe toute une série de ports.

Pour communiquer avec les ports, le processeur se sert du bus de données et d'adresses, exactement comme dans le cas d'un accès à la mémoire. Il commence par envoyer sur une ligne spéciale du bus un signal destiné à prévenir tous les dispositifs reliés qu'il va s'adresser non pas à une mémoire mais à un port. Il transfère ensuite l'adresse du port dans les 16 ( ou 32 ) bits inférieurs du bus d'adresses et attend que l'un des appareils à l'écoute se déclare concerné, après quoi il envoie les données sur le bus de données. Le même phénomène se déroule dans le sens inverse pour une lecture. C'est alors la carte d'extension qui envoie le contenu du port au processeur, mais uniquement sur sa requête.

Les adresses des ports ne sont pas distribuées par le système : chaque matériel est responsable de la zone d'adressage de ses ports. Il en résulte inévitablement des conflits entre différentes cartes qui occupent les mêmes adresses. C'est pourquoi la plupart des cartes d'extension sont munies de micro-interrupteurs DIP qui permettent de changer les adresses utilisées. Les adresses de ports des circuits auxiliaires et de certaines interfaces standard ont été fixées à l'origine par IBM et font partie des paramètres standard de la micro-informatique. Certaines différences existent entre les différents type de processeur ( exemples avec le tableau suivant ).

Circuit PC/XT ATContrôleur DMA (8237A-5). 000-OOF 000-01FContrôleur d'interruption (8259A). 020-021 020-03FTemporisateur. 040-043 040-05FInterface périphérique programmable (PPI 8255A-5) 060-063 néantClavier (8042). Néant 060-06FHorloge en temps réel (MC146818) Néant 070-07FRegistre de page DMA 080-083 080-09FContrôleur d'interruption n2 (8259A) néant OAO-OBFContrôleur DMA n2 (8237A-5) néant OCO-ODFCoprocesseur arithmétique Néant OFO-OF1Coprocesseur arithmétique Néant 0F8-OFFContrôleur de disque dur 320-32F lFO-lF8Manette de Jeux (Joysticks) 200-20F 200-207Unité d'extension 210-217 néant2nde imprimante parallèle néant 278-27FSeconde interface série 2F8-2FF 2F8-2FFCarte de prototype 300-31F 300-31FCarte de réseau Néant 360-36Fl ère Imprimante parallèle 378-37F 378-37FCarte d'écran monochrome et 1ère imprimante parallèle 380-3BF 3BO-3BFCarte vidéo couleur/graphique 3DO-3DF 3DO-3DFContrôleur de disquette 3FO-3F7 3FO-3F7Première interface série 3F8-3FF 13F8-3FF

(adresses exprimées en hexadécimal)

[email protected] - 58 -

Page 59: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

5.5. Les interruptions.

Les interruptions ont été définies comme des mécanismes permettant à un périphérique d'interrompre brièvement le processeur dans l'exécution courante pour l'obliger à se brancher sur un sous-programme appelé gestionnaire d'interruption. Mais les interruptions servent aussi de moyen de communication entre le programme et les fonctions du BIOS ou du DOS. Ce sont les interruptions logicielles qui sont déclenchées par les programmes lorsqu'ils ont besoin d'exécuter une fonction DOS, BIOS, de gestion de mémoire EMS, etc… La fonction appelée est considérée par le processeur comme un sous-programme qui une fois achevé rend la main à l'appelant.

Pour déclencher une fonction DOS ou BIOS par une interruption logicielle, le programme appelant n'a pas besoin de connaître l'adresse de la routine concernée, il lui suffit de connaître le numéro de l'interruption souhaitée. Ces numéros sont standardisés. C'est ainsi qu'indépendamment de la version du DOS, le service de ses fonctions est assuré par l'interruption 21h. Le gestionnaire est invoqué par une table des vecteurs d'interruption où se trouve l'adresse de la fonction recherchée. Le numéro de l'interruption constitue l'indice d'entrée dans la table qui est initialisée au démarrage du système de façon que les différents vecteurs d'interruption pointent sur les fonctions du BIOS.

L'avantage du système est patent : les fabricants de PC compatibles n'ont pas le droit de copier le BIOS de la ROM d'IBM. Mais ils peuvent implémenter en ROM les mêmes fonctionnalités qu'IBM avec une programmation différente.

Il existe 256 interruptions pour un 8088 ou ses dérivés. Les interruptions matérielles et logicielles sont mises sur un même pied, seul le type d'appel les distingue. Dans une interruption logicielle, c'est le programme qui fixe le numéro d'interruption tandis que dans une interruption matérielle, c'est le périphérique qui s'en charge.

Chaque élément de la table des vecteurs d'interruption occupe deux mots successifs car il s'agit d'un pointeur FAR qui donne le segment et l'offset du gestionnaire associé. La table s'étend donc sur 1024 bytes. Elle commence à la mémoire d'offset 0.

La table des vecteurs est stockée en mémoire vive. Elle peut donc être modifiée par n'importe quel programme. Les programmes résidents et les drivers de périphériques font usage de cette possibilité. Les virus aussi.

Vous trouverez à la page suivante un tableau reprenant les adresses des différents vecteurs d'interruption et les différents services rendus par chacun d'eux. La table est valable pour tous les PC. En invoquant une interruption, vous êtes sûr de déclencher partout le même effet.

Il faut noter que de nombreux vecteurs ne sont exploitables que si le matériel correspondant est installé. Il en est ainsi de l'interruption 33h qui sert à activer les fonctions du driver de souris ou de l'interruption 5Ch qui sert d'interface avec les fonctions du NETBIOS lorsqu'un réseau est présent.

La mention "Réservé" signifie que l'interruption en question est exploitée par un des composants système (le plus souvent DOS ) mais qu'elle n'a fait l'objet d'aucune documentation concernant son fonctionnement.

[email protected] - 59 -

Page 60: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

N° Adresse Fonction00 000-003 CPU: Division par zéro01 004-007 CPU: Pas à pas02 008 - OOB CPU: NMI (Défaut dans RAM)03 OOC - OOF CPU: Point d'arrêt atteint04 010-013 CPU: Débordement numérique05 014-017 Copie d'écran06 018 - 01B Instruction inconnue (80286 seul.)07 01D - 01F Réservé08 020-023 IRQ0 : Timer (Appel 18,2 fois/sec.)09 024 -027 IRQ1 : ClavierOA 028 - 02B IRQ2: deuxième 8259 (AT uniquement)OB 02C -02F IRQ3: Interface série 2OC 030-033 IRQ4: Interface série 1OD 034-037 IR05: Disque durOE 038 - 03B IR06: DisquetteOF 03C - 03F IRQ7: Imprimante10 040-043 BIOS: Fonctions vidéo11l 044-047 BIOS: Détermination configuration12 048 - 04B BIOS: Détermination taille RAM13 04C - 04F BIOS: Fonctions disquette/disque dur14 050-053 BIOS: Accès à interface série15 054-057 BIOS: Fonctions cassette ou étendues16 058-05B BIOS : Interruption du clavier17 05C - 05F BIOS: Accès à imprimante parallèle18 060-063 Appel du BASIC en ROM19 064-067 BIOS: Démarrage à chaud (ALT+CTRL+DEL)1A 068 - 06B BIOS: Lecture date et heure1 B 06C - 06F Touche Break actionnée1 C 070-073 Appelé après chaque INT 0810 074-077 Adresse de la table de paramètres vidéo1 E 078 - 07B Adresse de table paramètres disquette1 F 07C - 07F Adresse des caractères graphiques20 080-083 DOS: Terminaison du programme21 084-087 DOS: Fonction de DOS22 088 - 08B Adresse de routine DOS fin du programme23 08C - 08F Adresse de routine CTRL-BREAK du DOS24 090-093 Adresse de routine d'erreur du DOS25 094-097 DOS: Lecture disquette/disque dur26 098 - 09B DOS: Ecriture sur disquette/disque dur27 09C - 09F DOS: Fin programme, laisser résident28-3F OAO --OFF Réservé pour différentes fonctions non encore documentées du DOS40 100-103 BIOS: Fonctions disquette41 104-107 Adresse table des paramètres disque dur 142-45 108--117 Réservé46 118 – 11B Adresse table des paramètres disque dur 247-49 11C-127 Librement définissable par le programme .utilisateur4A 128-12B Heure alarme atteinte (AT seulement)4B-67 12C-19F Librement définissable par le programme utilisateur 68-6F 1AO -1 BF Inutilisé70 1CO - IIC3 IRQ08: Horloge temps réel (AT seulement)71 1C4 - lC7 IRQ09: (AT seulement)72 1C8 - 1CB IR010: (AT seulement)73 11C- 1CF IRQ11: (AT seulement)74 1 DO - 1 D3 IRQ12: (AT seulement)75 1 D4 - 1 D7 IRQ13: 80287 NMI (AT seulement)76 1 D8 - 1 DB IRQ14: Disque dur (AT seulement)77 1 DC - 1 DF IRQ15: (AT seulement)78-7F 1EO-1FF Inutilisé80-F0 200-3C3 Utilisé à l'intérieur de l'interpréteur BASICF1 –FF 3C4 -3CF Inutilisé

Les adresses sont exprimées en hexadécimal.

[email protected] - 60 -

Page 61: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les interruptions matérielles sont générées par les différents composants matériels et parviennent au processeur par l'intermédiaire du contrôleur d'interruption. Nous allons examiner le fonctionnement de ce type d'interruption en tenant compte de l'évolution des standards ( plus de standard depuis l'AT ).

[email protected] - 61 -

PC

Priorité décroissante

bits 7 6 5 4 3 2 1 0

Timer

Clavier

2ème port série

1er port série

Disquette

Port parallèle

Interrupt Controller au port 20h

XT

Priorité décroissante

bits 7 6 5 4 3 2 1 0

Timer

Clavier

2ème port série

1er port série

disque dur

Disquette

Port parallèle

Interrupt Controller au port 20h

Page 62: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

[email protected] - 62 -

AT Priorité décroissante

bits 7 6 5 4 3 2 1 0

Timer

Clavier

2ème port série

1er port série

2èmè port parallèle

Disquette

1er Port parallèle

Interrupt Controller au port 20h

Priorité décroissante

bits 7 6 5 4 3 2 1 0

horloge en temps réel

Coprocesseur mathématique

Disque dur

Disponible pour cartes d'extension telles que souris, streamer, lecteurs CD-ROM, etc…

Interrupt Controller au port A0h

Page 63: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Le PC et l'XT disposaient de 8 interruptions matérielles ( de 8 à 15) . On pouvait brancher jusqu'à 8 périphériques sur le contrôleur d'interruptions par le moyen des lignes IRQ0 jusqu'à IRQ7. L'IRQ0 a priorité sur les autres. Si deux interruptions parviennent simultanément aux lignes IRQ3 et IRQ5, c'est d'abord IRQ3 qui sera pris en compte. Le numéro de l'interruption associée se trouve en ajoutant 8 au numéro d'IRQ.

Dans certaines conditions, un programme peut être amené à interdire l'exécution des interruptions matérielles. Pour qu'une telle interruption soit autorisée par le processeur, il faut que l'indicateur d'interruption soit à 1. Si le programme y place 0, la demande du contrôleur d'interruption est ignorée.

On peut interdire individuellement une interruption en replaçant le registre d'interruption par un masque.

A partir de l'AT, un deuxième contrôleur d'interruption est apparu. Ils permettent 15 interruptions matérielles ( et pas 16 ) car l'IRQ2 pointe sur le deuxième contrôleur. Ces interruptions du second contrôleur qui s'appellent IRQ8 jusqu'IRQ15 ont donc priorité sur les IRQ de 3 à 7. Lors d'une demande d'interruption de ces 8 nouvelles, le deuxième contrôleur simule une interruption IRQ2 au premier.

Tableau des interruptions et services ( ou fonctions ) relatifs à ces interruptions. Voici les fonctions standards.

Interruption N° Fonction N° ( AH ) RôleBIOS 10h : vidéo 00h Modification du mode vidéo

01h Modification de la taille du curseur02h Modification de la position du curseur03h Lecture de la position du curseur04h Lecture de la position du crayon optique05h Sélection de la page active06h Défilement de l'écran vers le haut07h Défilement de l'écran vers le bas08h Lecture d'un caractère et de son attribut09h Ecriture d'un caractère et de son attribut0Ah Ecriture d'un caractère0Bh Modification de la palette de couleurs

DOS : 21h 15h Ecriture séquentielle ( FCB )16h Création d'un fichier ( FCB )17h Renomme un fichier ( FCB )18h Réservé19h Lecture du disque courant1Ah Modification de l'adresse de la DTA1Bh Lecture des paramètres du disque courant1Ch Lecture des paramètres d'un disque quelconque1Dh Réservé1Eh Réservé1Fh Réservé20h Réservé21h Lecture relative ( FCB )22h Ecriture relative ( FCB )23h Taille d'un fichier ( FCB )24h Sélection d'un enregistrement relatif ( FCB )25h Modification de l'adresse d'une interruption 26h Création d'un nouveau PSP27h Lecture relative d'un bloc d'enregistrements28h Ecriture relative d'un bloc d'enregistrements29h Analyse d'un nom de fichier2Ah Lecture de la date du système2Bh Modification de la date du système

DOS : 21h 2Ch Lecture de l'heure du système2Dh Modification de l'heure du système

[email protected] - 63 -

Page 64: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Interruption N° Fonction N° ( AH ) RôleDos : 21h 2Eh Active/Désactive le drapeau de la vérification

2Fh Lecture de l'adresse de la DTA30h Lecture de la version de MS-DOS31h Installation en mode résident32h Lecture des informations disque33h Lecture/écriture du flag du Ctrl-c 34h Lecture du flag lndos35h Lecture de l'adresse d'une interruption36h Lecture de l'espace disque disponible37h Détermine le caractère de switch38h Lecture/écriture des paramètres d'un pays 39h Création d'un nouveau répertoire3Ah Suppression d'un répertoire3Bh Modification du répertoire courant 3Ch Création d'un fichier ( handle )3Dh Ouverture d'un fichier ( handle )3Eh Fermeture d'un fichier ( handle )3Fh Lecture dans un fichier ( handle )40h Ecriture dans un fichier ( handle )41h Effacement d'un fichier ( handle )42h Positionnement du pointeur de fichier43h Lecture/Modification des attributs d'un fichier44h Gestion des périphériques45h Duplique un handle46F Force la duplication d'un handle47h Lecture du répertoire courant48h Allocation d'un bloc de mémoire49h Libération d'un bloc de mémoire4Ah Ajustement de la taille d'un bloc mémoire4Bh Exécution d'un programme4Ch Terminaison d'un programme4Dh Lecture du code de retour

DOS : 21h 4Eh Cherche le premier fichier d'un répertoire ( handle )4Fh Cherche les fichiers suivants d'un répertoire ( handle )50h Modification de l'adresse du PSP 51h Lecture de l'adresse du PSP52h Réservé53h Réservé54h Lecture de l'état du drapeau de vérification62h Lecture de l'adresse du PSP

DOS : 25h Lecture absolue sur disqueDOS : 26h Ecriture absolue sur disqueDOS : 27h Installation d'un programme en mode résidentDOS : 2Fh Impression différée ( spooler )BIOS : 33h souris 00h Test de présence de la souris

01h Montre le pointeur de la souris02h Cache le pointeur de la souris03h Lecture de position et état des boutons04h Modification de la position de la souris05h Lecture des boutons enfoncés06h Lecture des boutons relâchés07h Modification de l'intervalle de déplacement horizontal08h Modification de l'intervalle de déplacement vertical09h Définition d'un curseur graphique

BIOS : 41h Adresse de tables des paramètres du disque dur 1BIOS : 46h Adresse de tables des paramètres du disque dur 2

[email protected] - 64 -

Page 65: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

5.6. Les pointeurs NEAR et FAR.

Dans les langages évolués ( PASCAL et C ), l’adressage de la mémoire se fait au moyen de pointeurs. En réalité, il existe 2 sortes de pointeurs :

pointeurs à accès court : on parlera ici de pointeurs NEAR : ils indiquent juste l’offset d’un objet ( le segment est celui en court d’usage ). Le pointeur est un mot ( 16 bits ).

pointeurs à accès long : on parlera ici de pointeurs FAR : ils indiquent le segment et l’offset de l’objet. Ils occupent 2 mots consécutifs : le mot inférieur désigne l’offset et le mot supérieur désigne le segment.

En PASCAL, tous les pointeurs sont FAR tandis qu’en C, il existe des pointeurs FAR et NEAR suivant le modèle mémoire mis en service.

5.7. La pile.

La pile ( stack en anglais ) est un tableau de type LIFO ( Last In, First Out ). Le registre de segment SS (Stack Segment ) pointe sur le début de la pile tandis que le registre SP (Stack Pointer ) indique la position du dernier élément placé sur la pile. L'ordinateur a besoin de cette pile chaque fois qu'une rupture se produit dans un programme ( appel d'une sous-routine, interruption,…). Il y sauve l'adresse à laquelle il doit continuer le programme une fois cette rupture terminée.Imaginez-vous la pile comme un ensemble d'assiettes. Vous pouvez les empiler une à une mais vous ne pouvez retirer que celle du dessus à la fois, c'est à dire dans l'ordre inverse de l'empilage. La pile contient un ensemble de mots ( 2 bytes ).

La pile est à l'envers : le début se trouve à une adresse supérieure à celle de la fin. Exemple : pile de 50 éléments dont le début est à l'adresse 2CFD:1000. SP est décrémenté de 2 à chaque remplissage d'une zône de la pile.

le stack segment indique l'entrée de la pile : 2CFD : 1000. L'adresse SS : SP est donc 2CFD : 1000. la fin de la pile avant remplissage de la dernière cellule porte l'adresse SS:SP 2CFD : 0F9E

Exemple pratique : les instructions PUSH et POP ajoutent et retirent respectivement des cellules ( 2 ) à la pile. Le contenu peut être un registre de 16 bits ou une zône mémoire de 16 bits. Repartons de la pile ci-dessus :

[email protected] - 65 -

SP = 1000 MOV AX , 1MOV BX , 5

SP = 0FFE (op n°1) PUSH AX (op n° 1)

SP = 0FFC (op n°2) PUSH BX (op n° 2)MOV AX , 3

SP = 0FFE (op n°3) POP AX (op n° 3)

Au moment d'un PUSH, le SP est décrémenté de 2 puis la cellule pointée est remplie. Lors d'un POP, SP est incrémenté de 2 mais le contenu de la cellule 2 contient toujours 5 qui sera écrasé lors du prochain PUSH.Quant au registre AX, il prend successivement les valeurs 1 puis 3 puis 5.Quant au registre BX, il reste à la valeur 5.

1

5

Page 66: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Exercice : Voici un programme avec les instructions rencontrées ci-dessus + un appel de sous-programme. ( un appel NEAR. CS vaut 4000 et ne changera pas ).

CS : IP = 4000 : 0000 …………….. début du programme 4000 : 0007 push AX 4000 : 0009 push BX 4000 : 000B push CX 4000 : 000D call sous-programme appel d'une sous-routine 4000 : 0012 ………………

Voici la représentation de la pile et les adresses si le départ est 03FE

[email protected] - 66 -

03FE Le programme remplit normalement la pile

jusqu'à l'appel du sous-programme.03FC

Lors de cet appel, l'adresse de retour dans le 03FA

programme est emmagasinée dans la pile.

03F8 Si l'appel avait été long ( FAR ), la pile aurait

03F6 emmagasiné aussi le contenu de CS.

AX

BX

CX

0012

Page 67: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

6. LA PROGRAMMATION EN ASSEMBLER PC.

Je n'ai nullement l'intention de vous donner un cours d'Assembler PC. Toutefois, quelques rudiments nous permettront de visualiser pratiquement les notions vues dans les pages précédentes. Toutefois, si ceci suscite une passion incontrôlable pour l'Assembler, je ne peux que m'en réjouir. Je me tiens d'ailleurs à votre disposition.

6.1. Les instructions de l'Assembler PC.

Nous allons travailler avec le compilateur Borland TASM et le linker Tlink. Créez un répertoire TASM et copiez TASM.EXE et TLINK.EXE ainsi que les autres fichiers associés.

Voici un premier programme comportant quelques instructions :

TITLE Notre premier programme; ; ; **********************************; * Projet: Programme de bienvenue *; * *; * Assemblage: TASM LIST1 *; * TLINK LIST1 *; **********************************ASSUME CS:CODE,DS:DATA,SS:STACK ; Modèle de segmentation DOS; ************************************************; *** Fixe la taille de la pile ***; ************************************************STACK SEGMENT STACK DB 100H DUP (0) ; 256 octets pour la pileSTACK ENDS ; ************************************************; *** Début du segment de données ***; ************************************************ DATA SEGMENTQUESTION DB 13,10,"Tapez votre nom SVP (max. 12 caractères) :",13,10,"$"PHRASE DB "Bonjour,"INPUT DB 13,14 DUP (32) DB " c'est votre programme en assembleur qui vous parle !! ", 13 ,10,"$"DATA ENDS; ************************************************; *** Début du programme ***; ************************************************CODE SEGMENTBEGINN PROC NEAR ; Indique le début ; du programme MOV AX,DATA ; Transmet … DS MOV DS,AX ; le segment de données; ---------------------------------------------------; - MOV AH,09H ; Pose la question - MOV DX,OFFSET QUESTION ; - INT 21H ; -; -; --------------------------------------------------- MOV AH,0CH ; Attend la saisie MOV AL,0AH ; Encore

[email protected] - 67 -

Page 68: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

MOV DX,OFFSET INPUT ; une INT 21H ; fonction de DOS MOV BL,BYTE PTR [INPUT+1] MOV BH,0 MOV WORD PTR [INPUT]," " MOV BYTE PTR [INPUT+2+BX],"," MOV CX,12 ; A r‚p‚ter 12 xBOUCLE: MOV AH,09H ; Affiche la phrase MOV DX,OFFSET PHRASE ; … l'écran INT 21H ; (fonction de DOS) LOOP BOUCLE ; Recommence si CX<>0 MOV AX,4C00H ; Termine le programme INT 21H ; sans message d'erreurBEGINN ENDP ; Fin de la procédureCODE ENDS ; Fin du programmeEND BEGINN ; Point d'entrée

Généralités :

Le code assembler peut être écrit en majuscule ou en minuscule. Tout ce qui se trouve derrière le ";" est considéré comme commentaires. "TITLE" au début du programme agit comme le ";". Toutes les lignes qui ne commencent pas par "." ou ";" sont les lignes de code du programme. Les lignes qui commencent par un "." donnent des directives au compilateur. En voici la signification

+ .DATA : montre au compilateur où il trouvera les données du programme. Les mots comme "QUESTION" sont des labels ( étiquettes ) qui facilitent l'appel de ces données.En C, on aurait eu : Char question = "\nTapez votre nom SVP …..\n$"

+ .CODE : indique à l'assembler que les lignes qui suivent doivent être considérée comme du code programme exécutable.

+ . BEGINN indique le début d'une procédure et sa fin

+ .END indique la fin du programme. Si des lignes de code sont écrites après le END, le compilateur n'en tiendra pas compte.

+ la structure générale d'une ligne de programme est la suivante :< label > < : > <mnémonique [ opérande ] > <; commentaires >

+ BOUCLE : le signe ":" indique un repère de branchement.

Le label et les commentaires sont facultatifs Une ligne ne peut contenir qu'un label, qu'un commentaire ou qu'une instruction. Elle peut également

être vide. Pour plus de lisibilité, les champs sont en général alignés à l'aide de tabulation Si une instruction comprend deux opérandes, celui de gauche est la destination. Deux opérandes d'une même instruction ne peuvent jamais accéder tous les deux à une adresse

mémoire. Il faut donc passer par un registre pour déplacer une donnée en mémoire. Un label correspond à une adresse en langage machine. Il s'agit en réalité de l'adresse de la première

instruction suivant le label. Il n'a donc aucun effet sur le code à l'endroit où il apparaît. Certains mots sont réservés et ne peuvent être utilisés comme label :

+ les noms des instructions+ les noms des registres+ les directives d'assemblages (dw, db, equ, macro,…)

[email protected] - 68 -

Page 69: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les instructions proprement dites :

5.1.1) Les données

Chaque instruction peut travailler avec des données de 3 types :

les registres du processeur : leur nom suffit. Les valeurs immédiates : c'est un nombre ou un caractère défini dans le programme. Le signe b placé

derrière un nombre signifie que le nombre est indiqué en binaire ; le signe h indique un nombre au format hexadécimal. Le signe d et l'absence de signe indiquent un nombre exprimé en décimal. Attention à ceci :01000001h est la constante binaire dont la valeur décimale est 6565 est la constante décimale dont la valeur décimale est aussi 6541h est la constante hexadécimale dont la valeur décimale est 65"A" est un caractère dont la valeur décimale est toujours 65.

Les variables : une variable est un emplacement mémoire réservé pour le programme. Cet emplacement est réservé au moment de l'assemblage et sa taille est fonction du type de donnée voulu :

- un octet ( 8bits ) pour un nombre non signé de 0 à 255- un octet pour un nombre signé de –128 à +127- un octet pour un caractère- un mot ( 16 bits ) pour un nombre non signé de 0 à 65535- un mot pour un nombre signé de –32768 à +32767- un double-mot pour un nombre non signé de 0 à 232 - 1 - un double-mot pour un nombre signé de –231 à 231 - 1

Les pseudo-instructions de déclaration de variables : DB ( Declare byte ), DW ( Declare Word ), DD (Declare Double word ), DQ ( Declare Quad word ) permettent de déclarer et éventuellement d'initialiser une ou plusieurs variables. Un identificateur peut éventuellement être assigné à la variable. Exemples :

Lettre db "B" ; réservation d'un octet initialisé avec le caractère BVar1 db -19 ; réservation d'un octet initialisé avec le nombre –19Var2 db 237 ; réservation d'un octet initialisé avec le nombre 237Var3 dw ? ; réservation d'un mot non initialisé. Var4 dw 0F7A4h ;

; réservation d'un double-mot initialisé à 0Var6 dw 62115, 121, 2052 ;

; réservation de la variable chaine1 contenant bonjour Les mêmes pseudo-instructions permettent de déclarer et éventuellement d'initialiser des tableaux

Tab1 db 10 dup (0) ; déclaration d'un tableau de 10 octets initialisés à 0Tab2 dw 100 dup (?) ; déclaration d'un tableau de 100 mots non initialisésTab3 dd 5 dup (0,1,2,3,4) ; déclaration d'un tableau de 5 doubles mots initialisés à 0,1,2,3,4Tab3 dd 0,1,2,3,4 ; même déclaration que la précédente.

On appelle ces instructions "pseudo-instructions" car elles ne produisent pas de code à l'assemblage si ce n'est celui de la variable déclarée.Il n'existe pas en assembler d'instruction pour définir si une variable est signée ou non. On le saura grâce à certaines instructions que nous étudierons plus tard.Si plusieurs valeurs, séparées par des virgules, sont présentes sur une même ligne, plusieurs emplacements seront réservés en mémoire.Il est possible de définir des constantes ( leur valeur ne pourra être changée durant l'exécution du programme au moyen de la pseudo-instruction equ :

Const1 equ 17Cinq equ 2*2+1

[email protected] - 69 -

Page 70: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

La taille des données doit parfois être spécifiée ( par exemple dans le cas d'utilisation d'une valeur immédiate. Une instruction comme add var1,10 où var1 est un word ne serait pas acceptée car on ne connaît pas la taille de 10 en mémoire. L'instruction doit devenir : add word ptr var1,10 ( autres variantes : byte ptr et dword ptr ).

5.1.2) Les différentes méthodes d'adressage des cellules mémoire.

Il est possible d'adresser de 3 façons une cellule mémoire :

L'adressage direct L'adressage basé L'adressage indexé.

De plus, on peut combiner ces trois modes.

A] L'adressage direct :

L'opération travaille avec le contenu de la zone mémoire dont l'adresse se trouve dans l'identificateur. Var1 dd 347 ; var1 contient 347 sur du dwordVar2 dd 124 ; var2 contient 124 sur un dwordVar3 dw 541 ; var3 contient 541 sur un word….

Mov eax,dword ptr var1 ; eax reçoit le contenu de var1 ( soit 347 )Mov dword ptr var2, eax ; emplacement de var2 reçoit le contenu de eax ( soit 347 )Mov bx, word ptr var3 ; bx reçoit le contenu de var3

Nous ne connaissons pas l'adresse de var1, var2, var3 : c'est l'assembleur qui les gère.

B] L'adressage basé :

L'instruction travaille avec le contenu de la zone mémoire pointée par le registre BX. Le registre BX contient le déplacement à effectuer par rapport au début du segment données DS. L'adresse réelle de la variable s'obtient à l'aide de la combinaison DS:[BX] ( segment : offset ).

Var1 dd 347 ; var1 contient 347 sur du dwordVar2 dd 124 ; var2 contient 124 sur un dwordVar3 dw 541 ; var3 contient 541 sur un word….

Mov bx,4 ; bx reçoit la valeur 4Mov eax,[bx] ; eax reçoit le contenu se trouvant en DS:0004Mov bx, offset var1 ; bx reçoit l'offset de var1 ( déplacement par rapport à DS )Mov eax,[bx] ; eax reçoit les 4 octets se trouvant en DS:[bx]Mov bx, offset var3 ; bx reçoit l'offset de var3Mov ax,[bx] ; ax reçoit 541

On peut dire que les deux séries d'instructions suivantes fournissent le même résultat :

Mov eax,dword ptr var1Et

Mov bx, offset var1Mov eax, [bx]

Si le registre BP est utilisé au lieu de BX, le calcul d'adresse s'effectue à l'aide de SS:[BP]

C] L'adressage indexé.

Il est similaire à l'adressage basé, mais il travaille avec les registres d'index Si et DI. Le registre SI (ou DI ) contient le déplacement à effectuer par rapport au début du segment de données DS.

[email protected] - 70 -

Page 71: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Var1 dd 347 ; var1 contient 347 sur du dwordVar2 dd 124 ; var2 contient 124 sur un dwordVar3 dw 541 ; var3 contient 541 sur un word….

Mov si, offset var1 ; si reçoit l'offset de var1 ( déplacement par rapport à DS )Mov eax,dword ptr [si] ; eax reçoit les 4 octets se trouvant en DS:[SI]Mov si, offset var3 ; si reçoit l'offset de var3Mov ax,word ptr [si] ; ax reçoit 541Mov si, offset var2 ; si reçoit l'adresse de var2Mov eax,792Mov dword ptr [si],eax ; var2 reçoit la valeur de eax ( 792 )

D] L'adressage indexé et basé.

Ce mode d'adressage est la combinaison des deux modes d'adressage précédents. La combinaison des registres suivants est possible :

BX + SIBX + DI ( dans ces deux cas, registre de segment : DS ).BP + SI BP + DI ( dans ces deux cas, registre de segment : SS ).

Mov bx,8Mov si,4Mov di,1Mov eax,dword ptr [bx + si ] ; eax reçoit le double mot de l'adresse DS:000CMov ax, word ptr [bx + si ] ; ax reçoit le mot se trouvant à l'adresse DS:000CMov al,byte ptr [bx + di] ; al reçoit le byte situé en DS:0009Mov eax, dword ptr[bx + di] ; eax reçoit le double mot situé en DS:0009Mov ax,word ptr[bx][di] ; ax reçoit le mot situé en DS:0009

La notation [bx + di ] est équivalente à [bx][di]. E] L'adressage basé avec déplacement.

Le registre de base est soit BX ( segment DS ), soit BP ( segment SS ). Le déplacement est soit une valeur immédiate, soit un identificateur.

Var1 dd 347 ; var1 contient 347 sur du dwordVar2 dd 124 ; var2 contient 124 sur un dwordVar3 dw 541 ; var3 contient 541 sur un word….

Mov bx,0 ; bx reçoit la valeur 0Mov eax,dword ptr var1[bx] ; eax reçoit le contenu se trouvant au déplacement 0 par rapport à var1Mov bx, 4 ; bx reçoit la valeeur 4Mov eax,dword ptr var1[bx] ; eax reçoit le contenu se trouvant au déplacement 4 pr rapport

à ;var1, soit 124

F] L'adressage indexé avec déplacement.

Même principe, mais avec SI ou DI.

G] L'adressage basé et indexé avec déplacement.

Combinaison des 3 modes d'adressage.

Var4 db 51Var5 db 45,32,18,9,12,3,1…

mov bx,3

[email protected] - 71 -

Page 72: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

mov si,2mov cl,byte ptr var4[bx + si + 1] ; cl reçoit la valeur 3mov ax,word ptr [bx + si +124] ; ax reçoit le mot situé à l'adresse DS:0081

5.1.3.) Liste des instructions que nous allons utiliser.

NOM OPERANDES MNEMONIQUE ROLE INDICATEURS

1. Les instructions de test et de branchement.CALL Nom routine Appelle routine. IP placé sur la pile.CMP MR, RM,MI,RR,RI CoMPare Compare par soustraction AC CF OF PF SF ZFCMPSB RR CoMPare String

ByteCompare contenu adresse DS:SI et ES:DI + incrém.ou décrem SI et DI

AC CF OF PF SF ZF

CMPSW RR CoMPare String Word

Compare contenu adresse DS:SI et ES:DI + incrém.ou décrem SI et DI

AC CF OF PF SF ZF

CMPSD RR CoMPare String Double word

Compare contenu adresse DS:SI et ES:DI + incrém.ou décrem SI et DI

AC CF OF PF SF ZF

INT Nombre INTerrupt Appelle une interruption ; CS et IP sont inscrits sur le pile

INTO INTerrupt on Overflow

Déclenche une interruption si OF est à 1 (utiliser après instruction calcul )

IRET Interruption RETurn Permet au programme de reprendre après une interruption à CS:IP sur pile

JMP Label, reg, adr mém JuMP Saut inconditionnel (c'est un GOTO autorisé) : distance : SHORT (court) = -128 à 127NEAR entre –32768 et 32767FAR autres cas

JA Label, reg, adr mém Jump if Above Saut court si > ( en non signé ) JNBE Label, reg, adr mém Jump if Not Below

or EqualSaut court si > ( en non signé )

JAE Label, reg, adr mém Jump if Above or Equal

Saut court si >= ( en non signé )

JNB Label, reg, adr mém Jump if Not Below Saut court si >= ( en non signé ) JB Label, reg, adr mém Jump if Below Saut court si < ( en non signé ) JNAE Label, reg, adr mém Jump if Not Above

or EqualSaut court si < ( en non signé )

JBE Label, reg, adr mém Jump if Below or Equal

Saut court si <= ( en non signé )

JNA Label, reg, adr mém Jump if Not Above Saut court si <= ( en non signé ) JE Label, reg, adr mém Jump if Equal Saut court si = ( signé et non signé ) JZ Label, reg, adr mém Jump if Zero Saut court si = ( signé et non signé ) JNE Label, reg, adr mém Jump if Not Equal Saut court si <> ( signé et non signé ) JNZ Label, reg, adr mém Jump if Not Zero Saut court si <> ( signé et non signé ) JL Label, reg, adr mém Jump if Less Saut court si < ( signé ) JNGE Label, reg, adr mém Jump if Not Greater

or EqualSaut court si < ( signé )

JGE Label, reg, adr mém Jump if Greater or Equal

Saut court si >= ( signé )

JNL Label, reg, adr mém Jump if Not Less Saut court si >= ( signé ) JLE Label, reg, adr mém Jump if Less or

EqualSaut court si <= ( signé )

JNG Label, reg, adr mém Jump if Not Greater Saut court si <= ( signé ) JG Label, reg, adr mém Jump if Greater Saut court si > ( signé ) JNLE Label, reg, adr mém Jump if Not Less or

EqualSaut court si > ( signé )

JP Label, reg, adr mém Jump if Parity Saut court si Flag PARITY = 1 JS Label, reg, adr mém Jump if Sign Saut court si Flag SIGN = 1 JC Label, reg, adr mém Jump if Carry Saut court si Flag CARRY = 1

[email protected] - 72 -

Page 73: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

JO Label, reg, adr mém Jump if Overflow Saut court si Flag OVERFLOW = 1 LOOP Label, reg, adr mém LOOP Saute le nombre de fois spécifié dans

CX avec décrémentation de CX LOOPE Label, reg, adr mém LOOP While Equal Saute le nombre de fois spécifié dans

CX sauf si ZF = 0

NOM OPERANDES MNEMONIQUE ROLE INDICATEURS

LOOPNE

Label, reg, adr mém LOOP While Not Equal

Saute le nombre de fois spécifié dans CX sauf si ZF <> 0

NOP No OPeration Ne fait rien ( perd du temps )REP Instruction REPeat Répète l'instruction qui suit le nombre

de fois spécifié dans CX. Uniquement manipulation des chaînes

REPE Instruction REPeat Equal Répète l'instruction qui suit le nombre de fois spécifié dans CX et tant que DS:[SI] = ES:[DI]

REPNE Instruction REPeat Not Equal Répète l'instruction qui suit le nombre de fois spécifié dans CX et tant que DS:[SI] <> ES:[DI]

RET nombre RETurn Retourne programme appelant dans un même segment, désempile les param. d'appel si nombre est spécifié

Si PROC est utilisé lors de l'appel de la sous-routine, RET suffitREFF nombre RETurn Far Même effet pour appel long

SCASB SCAn String Byte Compare le valeur dans ES:DI avec le contenu de AL. Utilisé avec REPE et REPNE pour trouver un caractère

DI est incrémenté si DF = 0 et est décrémenté si DF = 1SCASW SCAn String Word Idem avec AX

SCASD SCAn String Double Idem avec EaxTEST MR, RM,MI,RR,RI TEST Et logique : positionne ZF Si 2 opérandes = : ZF =1

SETA reg, contenu mém SET if Above Oper. = 1 si > ( en non signé ) SETNBE reg, contenu mém SET if Not Below or

EqualOper. = 1 si > ( en non signé )

SETAE reg, contenu mém SET if Above or Equal

Oper. = 1 si >= ( en non signé )

SETNB reg, contenu mém SET if Not Below Oper. = 1 si >= ( en non signé ) SETB reg, contenu mém SET if Below Oper. = 1 si < ( en non signé ) SETNAE reg, contenu mém SET if Not Above or

EqualOper. = 1 si < ( en non signé )

SETBE reg, contenu mém SET if Below or Equal

Oper. = 1 si <= ( en non signé )

SETNA reg, contenu mém SET if Not Above Oper. = 1 si <= ( en non signé ) SETE reg, contenu mém SET if Equal Oper. = 1 si = ( signé et non signé ) SETZ reg, contenu mém SET if Zero Oper. = 1 si = ( signé et non signé ) SETNE reg, contenu mém SET if Not Equal Oper. = 1 si <> ( signé et non signé ) SETNZ reg, contenu mém SET if Not Zero Oper. = 1 si <> ( signé et non signé ) SETL reg, contenu mém SET if Less Oper. = 1 si < ( signé ) SETNGE reg, contenu mém SET if Not Greater

or EqualOper. = 1 si < ( signé )

SETGE reg, contenu mém SET if Greater or Equal

Oper. = 1 si >= ( signé )

SETNL reg, contenu mém SET if Not Less Oper. = 1 si >= ( signé ) SETLE reg, contenu mém SET if Less or

EqualOper. = 1 si <= ( signé )

SETNG reg, contenu mém SET if Not Greater Oper. = 1 si <= ( signé ) SETG reg, contenu mém SET if Greater Oper. = 1 si > ( signé ) SETNLE reg, contenu mém SET if Not Less or

EqualOper. = 1 si > ( signé )

SETP reg, contenu mém SET if Parity Oper. = 1 si Flag PARITY = 1 SETS reg, contenu mém SET if Sign Oper. = 1 si Flag SIGN = 1

[email protected] - 73 -

Page 74: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

SETC reg, contenu mém SET if Carry Oper. = 1 si Flag CARRY = 1 SETO reg, contenu mém SET if Overflow Oper. = 1 si Flag OVERFLOW = 1

NOM OPERANDES MNEMONIQUE ROLE INDICATEURS

2. Les instructions arithmétiques et logiques.AAA …………..……….. Ascii Adjust for

AdditionTransforme le contenu du registre AL en décimal non compacté

AAD ……………………

Ascii Adjust for Division

AH est multiplié par 10 et additionné à AL. Puis AH est mis à 0

AAM ……………………

Ascii Adjust for Multiplication

Utilisée pour corriger le produit de 2 nombres décimaux non compactés

AAS ……………………

Ascii Adjust for Subtraction

Corrige la diiférence dans AL pour obtenir un décimal non compacté

ADD Label, reg, adr mém ADDition Addition des 2 opérandes et somme dans destination

ADC Label, reg, adr mém ADdition and inCrementation

Même que ADD mais incrémente destination si CF = 1

SUB Label, reg, adr mém SUBtract Destination = destination – source SBB Label, reg, adr mém SuBtract with

BorrowDestination = destination – sourceEt décrémente destination si CF = 1

CBW ……………………. Convert Byte to Word

Conversion signée de AL en AX. AH contient bit fort de AL départ

CWD ……………………. Convert Word to Doubleword

Conversion signée de AX en DX et AX. DX contient bit fort de AX départ

CWDE ……………………. Convert Word to Extended Doubleword

Conversion de AX en EAX. Les bits forts de EAX deviennent le bit de poids fort de l'ancien AX

CDQ ……………………. Convert Doublewort to Quadword

Conversion de EAX en EDX et EAX.Les bits forts en EDX

DAA ……………………. Decimal Adjust for Addition

Corrige la somme de deux décimaux compactés

DAS ……………………. Decimal Adjust for Substraction

Corrige la différence de deux décimaux compactés

DEC Mem, reg DECrement Décrémente d'une unité l'opérandeINC Mrm, reg INCrement Incrémente d'une unité l'opérandeMUL REG 8-16-32

MEM 8-16-32MULtiply Multiplication non signée

Destination = destination * source avec adaptation taille destination

DIV REG 8-16-32 MEM 8-16-32

DIVision Division non signée destination = destination/source avec adaptation taille destination

IMUL REG 8-16-32 MEM 8-16-32

Signed Integer MULtiplication

Voir MUL avec signes

IDIV REG 8-16-32 MEM 8-16-32

Signed Integer DIVision

Voir DIV avec signes

AND MR, RM,MI,RR,RI AND Et logique : mise à 1 d'un bit si les 2 opérandes ont 1 à ce bit et 0 autrement

OR MR, RM,MI,RR,RI OR Ou logique : mise à 1 si un des deux bits au moins est à 1 et 0 autrement

XOR MR, RM,MI,RR,RI XOR Ou exclusif : mise à 1 d'un bit si un seul des deux bits est à 1

NOT reg, ,mém NOT Non logique : inverse tous les bitsNEG Reg, mem NEGative Donne l'opposé du nombre 3. Les instructions de déplacement des données.BSWAP Reg 32 Byte SWAP Inverse l'ordre des 4 octets d'un

registre 32 bitsCMPXCHG

RR, MR CoMPare and eXCHanGe

Compare destination avec source. S'ils sont égaux, destination reçoit

[email protected] - 74 -

Page 75: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

source; Autrement, AL, AX ou EAX reçoit le contenu de destination

NOM OPERANDES MNEMONIQUE ROLE INDICATEURSCMPXCHG8B

Reg, mem64 CoMPare abd eXCHanGe 8 Bytes

Compare les 64 bits formés par EDX:EAX avec une valeur mémoire. Si égalité : les 64 bits en mémoire sont remplacés par ECX:EBX Autrement, EDX:EAX replacé par les 64 bits mém

IN Reg, port Input from port Prend information sur port et place dans AX. Adresse du port en DX

LDS Reg16, mem32 Load segment to DS Permettent de faire pointer le registre destin. Et registre de segment (DS, ES, FS,GS ou SS ) à l'adresse 32 bits spécifiée par source. L'offset est placé dans registre destination et segment dans registre de segment

LES Reg16, mem32 Load segment to ESLFS Reg16, mem32 Load segment to FSLGS Reg16, mem32 Load segment to GSLSS Reg16, mem32 Load segment to SS

LEA Reg,mem Load Effective Adress

Transfère l'offset de la source dans registre de destination

LODSB ……………………. LOad String Byte Transfère variable de DS:SI dans ALLODSW ……………………. LOad String Word Transfère variable de DS:SI dans AXLODSD ……………………. LOad String Double Transfère variable de DS:SI dans EAXMOV MR, RM,MI,RR,RI MOVe Copie contenu de source dans destin.MOVSB ……………………. MOVe String Byte Déplace une donnée depuis l'adresse

formée par DS:SI vers l'adresse de ES:DI

MOVSW ……………………. MOVe String WordMOVSD ……………………. MOVe String DoublMOVSX RM,RR Move with Sign

eXtendCopie contenu de source dans destination en étendant le signe

MOVZX RM,RR Move with Zero eXtend

Copie contenu de source dans destination en l'étendant à 0.

PUSH R ou M PUSH Empile la donnée (SP décrémenté )PUSHA ……………………. PUSH All Empile tous les registresPUSHAD

……………………. PUSH All Empile tous les registres (même 32)

POP R ou M POP Récupère une donnée de la pilePOPA ……………………. POP All Récupère tous les registres de la pilePOPAD ……………………. POP All Récup tous les reg ( même 32 bits)STOSB ……………………. STOre String Byte Copie donnée de AL vers ES:DISTOSW ……………………. STOre String Word Copie donnée de AX vers ES:DISTOSD ……………………. STOre String Doub. Copie donnée de EAX vers ES:DIXLAT ……………………. EXtract LATeral Tire un octet d'une table de 256 bytes.

se trouvant en BX+AL. Le place en AL

4. Les instructions de manipulation de bits. RCL Mem –nbr, reg -nbr Remote Control Left Recule les bits vers la gauche de n

positions et complète les entrées à droite par CF et CF par les sorties à gauche

RCR Mem-nbr; reg-nbr Remote Contol Right

Recule les bits vers la droite avec même effet mais en sens contraire

ROL Mem –nbr, reg -nbr ROtate Left Rotation par la gauche et entrée par la droite.

CF = dernier bit décalé

ROR Mem –nbr, reg -nbr ROtate Rignt Même effet inversé Même effetSAL Mem –nbr, reg -nbr Shift Arithmetic Left Décalage à gauche avec remplacement

par des 0 à droiteCF = dernier bit décaléSHL Mem –nbr, reg -nbr SHift left

SAR Mem –nbr, reg –nbr Shift Arithmetic right

Décalage à droite avec replacement à gauche par bit signe

CF = dern. bit décalé

SHR Mem –nbr, reg -nbr SHift Rignt Décalage à droite avec injection de 0 CF = dern. bit décalé

[email protected] - 75 -

Page 76: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

STC ……………………. SeT Carry Positionne CF à 1 CF = 1CLC ……………………. CLear Carry Positionne CF à 0 CF = 0STD ……………………. SeT Direction Positionne DF à 1 DF = 1NOM OPERANDES MNEMONIQUE ROLE INDICATEURSCLD ……………………. CLear Direction Positionne DF à 0 DF = 0CLI ……………………. CLear Interruption Positionne IF à 0 IF = 0STI ……………………. SeT Interruption Positionne IF à 1 IF = 1CMC ……………………. CoMplement carry Inverse le bit du carry flag CF = - CFLAHF ……………………. Load AH from flags Copie les bits 0 à 7 du registre de flags

dans AHSAHF ……………………. Store AH into flags Copie les 8 bits de AH dans flags TousBSF RR16, RR32, RM16,

RM32Bit Scan Forward Cherche depuis la droite le premier bit

à 1 et note sa position dans dest. Si trouvé, ZF = 1, autrement ZF = 0

ZF

BSR RR16, RR32, RM16, RM32

Bit Scan Reverse Même effet depuis la gauche ZF

BT MI,MR,RI,RR Bit Test Vérifie si le bit testé = 1Si = 1 : CF = 1, autrement CF = 0

CF

BTC MI,MR,RI,RR Bit Test with Compliment

Inverse le bit sélectionné et note le remplacement dans CF

CF

BTR MI,MR,RI,RR Bit Test and Reset Met à 0 le bit sélectionné et CF = 1 si le bit a été mis à 1, autrement CF = 0

CF

BTS MI,MR,RI,RR Bit Test and Set Met à 1 le bit sélectionné et CF = 1 si le bit était déjà à 1

CF

SHLD MR CL, RR CL MR imm, RR imm

SHilft Left Double Décale les bits de n positions vers la gauche et les remplace par la droite par ceux de la source. 3 opérandes

SHRD MR CL, RR CL MR imm, RR imm

SHift Right Double Décale les bits de n positions vers la droite et les remplace par la gauche par ceux de la source. 3 opérandes

Toutes ces instructions ne fonctionnent pas nécessairement avec un XT ou un 286. ( entre autres, les instructions qui manipulent les registres 32 bits ).

Certaines instructions peuvent être ajoutées. (JNO, …). Vous disposez d'ailleurs de place en bas de page pour le faire.

Ce tableau ne constitue qu'un aide-mémoire destiné à rassembler les instructions. Nous allons les étudier en détail.

Quelques programmes élémentaires documentés.

Tout d'abord l'organisation d'un programme en assembler.

.386 ; voir ci-dessousTITLE nom du programmeASSUME CS:monprog, DS:donnees, SS:pile ; voir ci-dessous

donnees SEGMENT PARA PUBLIC USE 16 ; voir ci-dessous; définition des données

donnees ENDS ; fin du data segment

pile SEGMENT STACK ; voir ci-dessousDB 100h DUP (?) ; ou une autre taille

Pile ENDS ; fin du segment

Monprog SEGMENT PARA PUBLIC USE 16 ; définition du code-segmentORG 100h

[email protected] - 76 -

Page 77: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Start: JMP debut ;

Souprog1 PROC NEAR ; sous-programme 1;; écrire ici le contenu du sous-programme 1

sousprog1 ENDP ; fin du sous programme 1Souprog2 PROC NEAR ; sous programme 2

;; écrire ici le contenu du sous-programme 2

sousprog2 ENDP ; fin du sous programme 2Souprog3 PROC NEAR ; sous programme 3

;; écrire ici le contenu du sous-programme 3

sousprog3 ENDP ; fin du sous programme 3

Debut:; écrire les intructions du programme principal;INT 20h ; instruction de terminaison

Monprog ENDS ; fin du segment de codeEND Start ; fin du programme

La directive ASSUME permet d'associer un registre de segment à un segment en vue d'effectuer des vérifications lors de l'assemblage. A chaque accès à une adresse variable, l'assembler vérifie si cette variable se trouve dans le bon segment.PROC NEAR définit une procédure intra-segment.PROC FAR définit une procédutre extra-segment. Elle est définie FAR si elle doit être appelée depuis un autre segment de code.386 permet d'utiliser les instructions du 386.La déclaration des segments respecte la forma suivante :

NOM SEGMENT [alignement][statut][nb bits] Où alignement spécifie l'alignement de l'adresse de début du segment: Byte : adresse multiple de 1 Word : adresse multiple de 2 Dword : adresse multiple de 4 Para : adresse multiple de 16 Page : adresse multiple de 256

Use 16 : nombre de bits avec lesquels le segment travaille par défaut ( 16 )Use 32 : nombre de bits avec lesquels le segment travaille par défaut ( 32 )

Remarques :- les procédures appelées peuvent s'écrire : après le module principal juste avant le END. Juste avant le point d'entrée du programme

- La pile peut se trouver à la fin du programme juste avant la fin- Les données des sous-programmes s'écrivent dans le segment de données du programme principal

Voici un exemple décomposé : nous allons afficher une phrase à l'écran. Pour le faire, il faut appeler l'interruption 21h du DOS, fonction ( ou service 09h). Les paramètres seront passés par les registres DS:DX(DS contient l'adresse du segment de données et DX l'offset de la chaîne de caractères à afficher ). Une chaîne destinée à l'affichage se termine par le signe $. Dans la sous-routine, vous trouverez au début des commentaires; ils ne sont pas obligatoires mai vivement conseillés.

Programme principal.

.386donnees SEGMENT PARA PUBLIC USE 16

[email protected] - 77 -

Page 78: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

donnees ENDS

pile SEGMENT PARA STACK USE 16 "STACK"DB 2048 DUP(?)

pile ENDS

code SEGMENT PARA PUBLIC USE 16ASSUME CS:code, DS:donnees, SS:pile;

Debut:MOV ax,donnees ; charge dans ax l'adresse du segment de donnéesMOV ds, ax ; ds reçoit axMOV dx,offset chaine1 ; reçoit l'offset de chaîne1CALL aff_chaine ; appel de la sous-routine aff_chaineMOV ax,4C00h; ; ax reçoit la fonction d'arrêt 4C de l'interruption 21 INT 21h ; fin du programme

Code ENDSEND debut

Voici la sous-routine aff_chaine

Chaine1 db "Hello$" ; je pouvais aussi écrire "Hello","$"; ne se place pas dans la sous-routine

Aff_chaine PROC NEAR; procédure qui affiche une chaîne à l'écran;; paramètres d'entrée : DS = segment de données où se trouve la chaîne à afficher; DX= offset de la chaîne depuis début du segment DS;;

PUSH ax ; sauvegarde ax dans la pile car modificationMOV ax, 0900h ; service 9h de l'interruption 21hINT 21h ; appel de l'interruption 21hPOP ax ; restaure ax depuis la pile

; l'interruption 21 h sait que c'est dans ax qu'est la fonctionRET ; retour programme appelantENDP ; fin de la procédure aff_chaine

Et voici le programme complet.

.386

; à sauver comme suit : p35.asm ; à compiler comme suit : TASM p35.asm; à linker comme suit : TLINK p35.obj ou TLINK /3 p35.obj pour du code 32 bits

donnees SEGMENT PARA PUBLIC USE 16chaine1 DB "HELLO","$"donnees ENDS

pile SEGMENT PARA STACK USE 16 "STACK"DB 2048 DUP(?)

pile ENDS

code SEGMENT PARA PUBLIC USE 16

[email protected] - 78 -

Page 79: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

ASSUME CS:code, DS:donnees, SS:pile;Debut:

MOV ax,donneesMOV ds, axMOV dx,offset chaine1CALL aff_chaineMOV ax,4C00h; INT 21h

Aff_chaine PROC NEAR; procédure qui affiche une chaîne à l'écran;; paramètres d'entrée : DS = segment de données où se trouve la chaîne à afficher; DX= offset de la chaîne depuis début du segment DS;;

PUSH axMOV ax, 0900hINT 21hPOP axRETENDP

Code ENDSEND debut

Si la compilation ou le linkage ne fonctionne pas, inhibez l'option .386 puis éventuellement les USE 16

Voici une sous-routine qui intercepte une chaîne de caractères au clavier.

Chaine2 DB 256 DUP(0)

Lire_chaine PROC NEAR;; Lit une chaîne à l'écran; entrée : DS = segment dans lequel se trouve le buffer à remplir; DX = adresse d'offset du buffer; AL = nombre maximum de caractères à lire; sortie : AL = nombre de caractères réellement lus; modifie : aucun

PUSH bx ; sauve bx qui sera modifiéMOV bx,dx ; bx servira de base pour adresser le premier octet du bufferMOV BYTE PTR[bx], al ; nombre maximum d'octets à lire dans premier caractère du bufferMOV ax, 0A00h ; invoque la fonction 0Ah de lectureINT 21h ; interruption 21h du DOSMOV al, BYTE PTR [bx + 1] ; nombre de caractères réellement lusPOP bx ; récupère bxRET ; retour appelantENDP

Exercice : inclure la sous-routine "lire_chaine" dans le programme principal et réaliser un appel à cette sous-routine en permettant une longueur de chaîne maximale de 20 caractères.

.386

; à sauver comme suit : p36.asm ; à compiler comme suit : TASM p36.asm

[email protected] - 79 -

Page 80: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

; à linker comme suit : TLINK p36.obj ou TLINK /3 p36.obj pour du code 32 bits

donnees SEGMENT PARA PUBLIC USE 16chaine2 DB 256 DUP(0)donnees ENDS

pile SEGMENT PARA STACK USE 16 "STACK"DB 2048 DUP(?)

pile ENDS

code SEGMENT PARA PUBLIC USE 16ASSUME CS:code, DS:donnees, SS:pile;

Debut:MOV ax,donneesMOV ds, axMOV dx,offset chaine2MOV al,20CALL lire_chaineMOV ax,4C00h; INT 21h

Lire_chaine PROC NEAR

PUSH bx MOV bx,dxMOV BYTE PTR[bx], alMOV ax, 0A00hINT 21hMOV al, BYTE PTR [bx + 1]POP bxRETENDP

Code ENDSEND debut

Transformez le programme pour lire puis afficher la chaîne lue avec un message d'invite à entrer une chaîne.

Il existe plusieurs options à mettre en route lors de la compilation d'un programme source. Entre autres, vous avez la possibilité de demander le langage machine. Exemple : TASM p35.asm, p35.obj, p35.lst. Voici d'ailleurs ce listing :

Turbo Assembler Version 4.0 10/23/98 11:02:26 Page 1p35.asm

1 .386 2 3 00000000 donnees SEGMENT PARA PUBLIC 4 00000000 48 45 4C 4C 4F 24 chaine1 DB "HELLO","$" 5 00000006 donnees ENDS 6 7 00000000 pile SEGMENT PARA STACK "STACK" 8 00000000 0800*(??) DB 2048 DUP(?)

[email protected] - 80 -

Page 81: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

9 00000800 pile ENDS 10 11 00000000 code SEGMENT PARA PUBLIC 12 ASSUME

CS:code,DS:donnees;,SS:pile 13 14 00000000 debut: 15 00000000 66 B8 0000s MOV AX, donnees 16 00000004 8E D8 MOV DS,AX 17 00000006 66 BA 0000r MOV DX, offset chaine1 18 0000000A E8 00000006 CALL aff_chaine 19 0000000F 66 B8 4C00 MOV AX, 4C00h 20 00000013 CD 21 INT 21h 21 22 00000015 Aff_chaine PROC NEAR 23 00000015 66 50 PUSH AX 24 00000017 66 B8 0900 MOV AX,0900h 25 0000001B CD 21 INT 21h 26 0000001D 66 58 POP AX 27 0000001F C3 RET 28 00000020 ENDP 29 30 00000020 code ENDS 31 END debut

Turbo Assembler Version 4.0 10/23/98 11:02:26 Page 2Symbol Table

Symbol Name Type Value Cref (defined at #)

??DATE Text "10/23/98"??FILENAME Text "p35 "??TIME Text "11:02:26"??VERSION Number 030A@CPU Text 0F0FH #1@CURSEG Text CODE #3 #7 #11@FILENAME Text P35@WORDSIZE Text 4 #1 #3 #7 #11AFF_CHAINE Near CODE:0015 18 #22CHAINE1 Byte DONNEES:0000 #4 17DEBUT Near CODE:0000 #14 31

Groups & Segments Bit Size Align Combine Class Cref (defined at #)

CODE 32 0020 Para Public #11 12DONNEES 32 0006 Para Public #3 12 15PILE 32 0800 Para Stack STACK #7

[email protected] - 81 -

Page 82: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

En comparaison, voici le même programme écrit en COBOL

IDENTIFICATION DIVISION.PROGRAM-ID. p35. DATA DIVISION.WORKING-STORAGE SECTION. 77 chaine1 pic X(5) VALUE "HELLO".PROCEDURE DIVISION. prog. perform aff-chaine. go to fin. aff-chaine. Display chaine1. fin. stop run. END PROGRAM p35.

* Microsoft COBOL Code Generator P35.OBJ Page 0001* Address Code* C01E01:00000000 5B POP BX00000001 81C30000 ADD BX,OFFSET C01E0100000005 3BD8 CMP BX,AX00000007 7515 JNE 001Eh00000009 5A POP DX0000000A 59 POP CX0000000B 3A6E25 CMP CH,[BP+25h]0000000E 750C JNE 001Ch00000010 3A4E25 CMP CL,[BP+25h]00000013 7502 JNE 0017h00000015 FFE2 JMP DX00000017 8AC1 MOV AL,CL00000019 E90420 JMP 2020h0000001C 51 PUSH CX0000001D 52 PUSH DX0000001E 81EB0000 SUB BX,OFFSET C01E0100000022 53 PUSH BX00000023 BB0000 MOV BX,0000h00000026 53 PUSH BX00000027 FFE0 JMP AX00000029 1E PUSH DS0000002A 56 PUSH SI0000002B 57 PUSH DI0000002C B80000 MOV AX,0000h0000002F 50 PUSH AX00000030 B80000 MOV AX,0000h00000033 50 PUSH AX00000034 BB0000 MOV BX,0000h00000037 53 PUSH BX00000038 81EC6400 SUB SP,0064h0000003C 55 PUSH BP0000003D 89E5 MOV BP,SP0000003F 81EC2800 SUB SP,0028h00000043 B80000 MOV AX,0000h00000046 8ED8 MOV DS,AX

[email protected] - 82 -

Page 83: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

00000048 8CCB MOV BX,CS0000004A BA6C00 MOV DX,006Ch0000004D 9A00000000 CALL _MAKEENV00000052 B80000 MOV AX,0000h00000055 8ED8 MOV DS,AX00000057 B80000 MOV AX,OFFSET Lpt0000005A B220 MOV DL,20h0000005C 9A00000000 CALL _INITDAT00000061 B80000 MOV AX,0000h00000064 50 PUSH AX00000065 B80000 MOV AX,OFFSET C01E0100000068 50 PUSH AX00000069 E90900 JMP D005E D001A:*0000006C 503335202020202020 [P35 ] ; Entry P35: D005E:00000075 8E5E68 MOV DS,[BP+68h]00000078 8E4668 MOV ES,[BP+68h]0000007B EB10 JMP D01BB D00D6:0000007D 803E6801FF CMP DS:BYTE PTR [0168h],0FFh00000082 7405 JE D012800000084 C6066801FF MOV DS:BYTE PTR [0168h],0FFh D0128:00000089 B88D00 MOV AX,OFFSET D01560000008C C3 RET D0156: D01BB:0000008D E8EDFF CALL D00D600000090 E80200 CALL D024C00000093 EB14 JMP D027A D024C:00000095 31DB XOR BX,BX00000097 B90500 MOV CX,0005h0000009A BE6001 MOV SI,0160h0000009D 9A00000000 CALL _DISPLAY000000A2 8E4668 MOV ES,[BP+68h]000000A5 B8A900 MOV AX,OFFSET D027A000000A8 C3 RET D027A:000000A9 31D2 XOR DX,DX000000AB A16C01 MOV AX,DS:[016Ch]000000AE 86C4 XCHG AL,AH000000B0 9A00000000 CALL _STOPRUN D0301:000000B5 B8B900 MOV AX,OFFSET D031F000000B8 C3 RET D031F:000000B9 B8BD00 MOV AX,OFFSET D033D000000BC C3 RET D033D:** Data = 000000412 Code = 000000189*** Microsoft COBOL Code Generator Version 5.0* (C)Copyright Microsoft Corp 1984, 1993 URN AXUPA/ZZ0/00001* Native Code Generator REF GB04.04.14 I86

[email protected] - 83 -

Page 84: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Comment afficher plusieurs messages sans devoir réécrire du code ?

Nous allons modifier la procédure vue pour lui passer un numéro de message.

title Programme qui peut afficher plusieurs messages par procédure. donnees SEGMENT PARA PUBLIC USE16tabl DW mess0 DW mess1 DW mess2 DW mess3mess0 DB "Ceci est mon premier message. $"mess1 DB "Voici le second de ces messages. $"mess2 DB "Continuons avec le troisième. $" mess3 DB "Terminons avec le quatrième. $" donnees ENDS pile SEGMENT PARA STACK "STACK" USE16 DB 2048 DUP(?) pile ENDS

code SEGMENT PARA PUBLIC USE16 org 100h ASSUME CS:code,DS:donnees,SS:pile debut: MOV AX,donnees MOV DS,AX MOV AL,0 CALL writemno MOV AL,1 CALL writemno MOV AL,3 CALL writemno MOV AL,1 CALL writemno MOV AL,2 CALL writemno MOV AX,4C00h INT 21h writemno PROC NEAR ; Procédure d'affichage d'une chaîne par transmission; d'un code de position pour offset; entrée : AL = numéro du message ; sortie : ; modifie :

PUSH BX PUSH AX MOV AH,0 SHL AX,1 MOV BX,offset tabl ADD BX,AX MOV DX,[BX] MOV AH,09h INT 21h POP AX POP BX RET

[email protected] - 84 -

Page 85: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

writemno ENDP code ENDS END debut Utilisation d'interruptions BIOS.

Voici deux routines très pratiques qui permettent de positionner le curseur et de mettre un écran à blanc.

La première que nous appellerons tout simplement gotoxy appelle la fonction 02h de l'interruption 10h du BIOS.

GOTOXY PROC NEAR;; Procédure qui positionne le curseur à la colonne AL et à la ligne AH.;; Paramètres d'entrée : AL, AH; Paramètres de sortie :; Registres modifiés :; Appel de procédure :;

PUSH BX ; BH doit contenir le numéro de page ( prenez 0 qui convient PUSH DX ; à la plupart des cartes vidéo )MOV DX,AX ; DL doit contenir le numéro de colonne ( de 0 à 79)MOV AH,2 ; DH doit contenir le numéro de ligne ( de 0 à 24 )MOV BH,0 ; AH contient le numéro de la fonctionINT 10h ;POP DX ;POP BX ;RET

GOTOXY ENDP

La deuxième que nous appellerons CLRSCR appelle la fonction 06h de l'interruption 10h du BIOS.

CLRSCR PROC NEAR;; Procédure qui efface l'écran.;; Paramètres d'entrée : ; Paramètres de sortie :; Registres modifiés :; Appel de procédure :;

PUSH AXPUSH BX ; BH doit contenir l'attribut inséré pour blanchir PUSH CX ; CH doit contenir le numéro de la ligne du coin supérieur gauchePUSH DX ; CL doit contenir la colonne du coin supérieur gaucheMOV AL,0 ; DL doit contenir la colonne du coin inférieur droitMOV AH,6 ; DH doit contenir la ligne du coin inférieur droitMOV BH,7 ; AH contient le numéro de la fonctionMOV CX,0 ; AL contient le nombre de lignes du défilementMOV DH,24 ; ( 0 = effacement )MOV DL,79 ;INT 10h ;POP DX ;POP CX ;POP BX ;POP AXRET

CLRSCR ENDP

Attention : cette fonction est très puissante. Je vous recommande de changer les numéros de lignes et colonnes, le numéro de AL ( de 0 à 24 ) et même le BH.

[email protected] - 85 -

Page 86: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Je vais vous proposer une fonction supplémentaire qui affiche un caractère dans la couleur choisie et avec les attributs choisis.Cette procédure que j'appellerai CARACOL affiche un caractère un certain nombre de fois dans la couleur souhaitée à l'endroit choisi au préalable par GOTOXY.

CARACOL PROC NEAR;; Procédure qui affiche un caractère à la colonne et à la ligne données par GOTOXY.;; Paramètres d'entrée : ; Paramètres de sortie :; Registres modifiés :; Appel de procédure :;

PUSH AX ; BH doit contenir le numéro de page ( prenez 0 qui convient PUSH BX ; à la plupart des cartes vidéo )PUSH CX ; BL contient la couleurMOV AH,09h ; CX contient le nombre de caractères à écrire MOV BH,0 ; AH contient le numéro de la fonction ( 0Ah )MOV BL,8Dh ; MOV CX,1 ;MOV AL,"_" ;INT 10h ; AL contient le code asciiPOP CX ;POP BX ;POP AX ;RET

CARACOL ENDP

Voici un programme complet utilisant ces procédures.

donnees SEGMENT PARA PUBLIC chaine1 DB "HELLO","$"donnees ENDS

pile SEGMENT PARA STACK "STACK" DB 2048 DUP(?)pile ENDS

code SEGMENT PARA PUBLIC ASSUME CS:code, DS:donnees, SS:pile

debut: CALL CLRSCR MOV AL, 12 MOV AH, 8 CALL GOTOXY CALL CARACOL MOV AL, 16 MOV AH, 2 CALL GOTOXY MOV AX,donnees MOV DS,AX MOV DX,offset chaine1 CALL aff_chaine MOV AL, 20 MOV AH, 1 CALL GOTOXY

[email protected] - 86 -

Page 87: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

CALL CARACOL MOV AX, 4C00h INT 21h

Aff_chaine PROC NEAR PUSH AX MOV AX,0900h INT 21h POP AX RETaff_chaine ENDP

GOTOXY PROC NEAR PUSH BX PUSH DX MOV DX,AX MOV AH,2 MOV BH,0 INT 10h POP DX POP BX RETGOTOXY ENDP

CLRSCR PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,0 MOV AH,6 MOV BH,7 MOV CX,0 MOV DH,24 MOV DL,79 INT 10h POP DX POP CX POP BX POP AX RETCLRSCR ENDP

CARACOL PROC NEAR PUSH AX PUSH BX PUSH CX MOV AH,09h MOV BH,0 MOV BL,8Dh MOV CX,1 MOV AL,"_" INT 10h POP CX POP BX POP AX RETCARACOL ENDP

code ENDSEND debut

[email protected] - 87 -

Page 88: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Voici un exercice : passez à CARACOL le caractère à afficher et ses attributs couleur et autres.Comment indiquer l'attribut d'un caractère?

Avec des écrans RGB ( Red Green Blue ), il faut combiner ces couleurs pour avoir les autres. La couleur se note sur un byte, y compris l'intensité et la couleur de fond.

Voici les couleurs codées sur 4 bits

Intensité Rouge Vert Bleu Couleur0 0 0 0 NOIR 00 0 0 1 BLEU 10 0 1 0 VERT 20 0 1 1 CYAN 30 1 0 0 ROUGE 40 1 0 1 MAGENTA 5 0 1 1 0 BRUN 60 1 1 1 GRIS CLAIR 7 1 0 0 0 GRIS FONCE 8 1 0 0 1 BLEU CLAIR 9 1 0 1 0 VERT CLAIR A 1 0 1 1 CYAN CLAIR B1 1 0 0 ROUGE CLAIR C 1 1 0 1 MAGENTA CLAIR D 1 1 1 0 JAUNE E1 1 1 1 BLANC F

Clignote Couleur de fond Couleur du caractère

La couleur de fond ne peut jamais être claire donc il est inutile d'utiliser 4 signes. Si le bit 7 est à 1, la caractère va clignoter.

Exemple : un caractère vert clair clignotant sur fond rouge donne le byte 11001010b ou CAh ou 202d.

Ces considérations sont établies sur base d'une carte vidéo EGA ou VGA ( ou ultérieure ).

Il me semble maintenant que nous pouvons voir la représentation en mémoire d'un tel programme, l'état de la pile, des registres, … au moyen d'un outil livré avec TASM : TURBODEBUGGER.

Je vais vous expliquer les différentes fenêtres affichées avec le fichier des pages précédentes. Gardez-les à portée de main.

6.2. Visualisation de ces concepts.

Comment procéder ?

1. Enregistrer le programme au moyen d'un éditeur comme le bloc-notes sous le nom essai.asm

[email protected] - 88 -

Bit 7 Bit 6 Bit 5 Bit 0Bit 1Bit 2Bit 3Bit 4

Page 89: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

2. Compiler le programme : TASM ESSAI3. Linker le programme : TLINK ESSAI4. Lancer le programme : ESSAI5. Debugger le programme exe : TD ESSAI.EXE

Vous pouvez vérifier à chaque pas ( chaque fois que vous avancez d'une ligne dans le programme ) l'état de la mémoire, des registres et de la pile. Il suffit d'enfoncer la touche F7. Ce qui est modifié est en blanc.

[email protected] - 89 -

Fenêtre du code ( cs ) : attention : pas d'étiquettes, tout se fait par adresses

Fenêtre des données Etat des flags ( flag register )

Contenu des registres

Etat de la pile ( stack )

Page 90: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

7. LE MONTAGE ET L'INSTALLATION D'UN ORDINATEUR.

7.1. Le montage du boîtier et des périphériques.

Monter un ordinateur n'est pas très compliqué : il vous faut un tournevis en croix, un tournevis normal, une pince crocodile et bien entendu les pièces qui composent le PC.

Tous les composants ont des connections qui ne permettent pas de se tromper. Vous verrez après 2 installations que c'est aisé. Voici tout de même quelques conseils :

le processeur s'installe facilement sur la carte-mère. Un levier permet de l'enfoncer sans dommage dans la carte. Prévoyez un ventilateur suffisant ainsi que d'importantes ailettes de refroidissement. Ces ailettes de refroidissement doivent être bien fixées au processeur avec une couche de pâte conductrice de chaleur entre les deux. N'oubliez pas de raccorder le ventilateur à l'alimentation.

Les différentes cartes doivent être enfoncées correctement dans la carte-mère. Les supports de RAM disposent de petits leviers et de guides pour recevoir les barrettes. Un

détrompeur vous empêche de les placer à l'envers. Fixez bien les lecteurs de disquettes, disques durs, CDROM, DVDROM au châssis. Raccordez-les à

l'alimentation ( on ne peut se tromper ). Les nappes qui relient ces périphériques à la carte-mère ont un bord coloré. La coloration se place le plus près de l'alimentation des périphériques et du côté 0-1 des connecteurs sur la carte-mère.

Si vous placez plusieurs périphériques sur les nappes des CDROM, DVDROM et disques durs, vous devez en choisir un qui sera le maître ( master ) et le second l'esclave ( slave ). Il s'agit de cavaliers à placer correctement, le schéma figurant sur le périphérique.

Profitez-en pour noter les caractéristiques des disques durs sur papier ( têtes, secteurs, cylindres ). Raccordez les ports com, lpt, …à la carte-mère. Raccordez les témoins du boîtier à la carte-mère puis alimentez la carte-mère.

7.2. Le paramétrage du bios.

Quand vous allumerez votre ordinateur, il va d'abord essayer de reconnaître tous les composants. Il faudra l'aider un peu.

enfoncez la touche suppr ( ou delete ) jusqu'à l'apparition d'un menu bleu. Vous entrez dans le BIOS SETUP.

lancer la reconnaissance automatique des disques durs, à défaut, vous lui donnez les renseignements notés ci-dessus.

activez ou désactivez les cartes sons et écrans qui pourraient se trouver directement sur la carte-mère. activez ou désactivez les ports USB ( port plat de 8 mm de longueur )

7.3. L'installation du système d'exploitation.

Je vais résumer ici les étapes . Vous trouverez le détail plus loin.

préparez une disquette système DOS sur un autre PC en incluant les fichiers format.exe et fdisk.exe. complétez cette disquette avec la reconnaissance du lecteur de CDROM dont vous disposez ( ATAPI,

SCSI)

[email protected] - 90 -

Page 91: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

dans le SETUP, demandez que le premier BOOT ( lancement ) se fasse sur le lecteur de disquette. placez la disquette dans le lecteur et donnez successivement les commandes suivantes

+ FDISK/MBR ( si un virus se trouve dans le MASTER BOOT RECORD ) + FDISK pour partitionner + relancer le PC + FORMAT c:/S pour formater le disque dur

modifiez le SETUP pour booter à partir du lecteur de CDROM placez le CD dans le lecteur suivez les instructions ( choisissez FAT 32 si vous installez WIN98,…et NTFS si vous installez NT,

WIN2000 ou XP) quand l'installation est terminée, il faut demander le boot sur le disque dur ( dans le SETUP). votre ordinateur doit lancer WINDOWS. vérifiez que tous les périphériques sont reconnus. Au besoin, utilisez les drivers fournis par le fabricant. vérifiez l'absence de conflit ( paramètres, configuration, système)

Je n'envisagerai ici que l'installation de WINDOWS car vous verrez LINUX en système d'exploitation

7.4. La disquette de boot.

Qu'est-ce qu'une disquette BOOT?

Une disquette de boot est une disquette qui permet de démarrer l'ordinateur lorsque le système d'exploitation ne répond plus, dans le cas d'un virus par exemple. Cette disquette contient effectivement des informations spéciales qui permettent d'amorcer le système sans faire appel au disque dur. Il n'existe pas un seul type de disquette de démarrage: à chaque système d'exploitation sa disquette de démarrage.

Il est absolument nécessaire de posséder une disquette système, car c'est le seul moyen de pouvoir redémarrer l'ordinateur en cas de défectuosité du MBR!

Comment créer sa disquette d'amorçage? Sous MS-DOS

Insérer une disquette déprotégée vierge dans le lecteur a:

Il suffit ensuite de taper la commande: format a: /s L'argument /s signifie "copier les fichiers système"

Sous Windows 95/98

Insérer une disquette déprotégée vierge dans le lecteur a:

Allez ensuite dans: Démarrer/Panneau de configuration/Ajout Suppression de programmes/Disquette de démarrage Puis cliquez créer une disquette de démarrage

Il est essentiel de protéger la disquette boot en écriture

Que faire de sa disquette?

La disquette BOOT ne vous servira qu'à pouvoir réamorcer votre ordinateur sous MS-DOS après un plantage. Pour qu'elle soit "valable" il faut:

[email protected] - 91 -

Page 92: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Que la disquette BOOT ne soit pas infectée par un virus Avoir un antivirus sur disquette (qui fonctionne sous DOS) Avoir protégé la disquette en écriture pour qu'aucun virus ne puisse y trouver refuge après que vous

ayez passé l'antivirus Les disques d'installation de votre système d'exploitation (si c'est un CD-ROM il faudra veiller à ce que

les drivers de votre CD-ROM soit chargés lorsque vous bootez sur la disquette!)

Comment transférer les fichiers systèmes de la disquette vers le disque?

Lorsque le système a été réamorcé à l'aide de la disquette de démarrage et que le ou les disques durs ont été soigneusement vérifiés à l'aide d'un antivirus, vous pouvez transférer les fichiers systèmes de la disquette boot vers le disque dur afin de rendre possible l'amorçage à partir de ce dernier. Pour cela, il suffit de taper la commande suivante:

sys a: c:où a: et c: représentent respectivement les lettres associées à votre lecteur de disquette et au disque dur sur lequel le système s'amorce.

Le système d'exploitation auquel correspond la disquette système (celui sous lequel elle a été créée) doit correspondre au système présent sur le disque dur...

Avant de vouloir comprendre ce qu'est le formatage, il est essentiel de connaître le fonctionnement d'un disque dur. Beaucoup de personne ne distinguent pas le formatage de bas niveau (appelé aussi formatage physique) et le formatage de haut niveau (appelé aussi formatage logique).

Les disques durs, aussi petits soient-ils, contiennent des millions de bits, il faut donc organiser les données afin de pouvoir localiser les informations, c'est le but du formatage. La surface de chaque cylindre, originalement uniforme est divisée lors du formatage (par divisée on entend que les particules à la surface du disque sont magnétisées bien sûr...) en petites parcelles qui pourront plus facilement être repérées.

7.5. L'organisation des disques durs.

Le formatage de bas niveau

Le but du formatage de bas niveau est de diviser la surface des disques en éléments basiques:

pistes secteurs cylindres

Un disque dur est, rappelons-le, constitué de plusieurs plateaux circulaires tournant autour d'un axe et recouverts de part et d'autre par un oxyde magnétique, qui, en étant polarisé, va pouvoir stocker des données.

Les pistes sont des zones concentriques écrites de part et d'autre d'un plateau.

[email protected] - 92 -

Page 93: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Enfin ces pistes sont découpées en quartiers appelés secteurs.

Les pistes se comptent par milliers et comptent chacune de 60 à 120 secteurs environ.

On appelle cylindre l'ensemble des données situées sur une même pistes de plateaux différents (c'est-à-dire à la verticale les unes des autres) car cela forme dans l'espace un "cylindre" de données.

Le formatage physique consiste à ainsi organiser la surface de chaque plateau en entités appelées pistes et secteurs, en polarisant grâce aux têtes d'écriture des zones du disques. Les pistes sont numérotées en partant de 0, puis les têtes polarisent concentriquement la surface des plateaux. Lorsque l'on passe à la piste suivante, la tête laisse un "trou" (appelé gap en anglais) et ainsi de suite. Chaque piste est elle-même organisée en secteurs (numérotés en commençant à partir de 1) séparés entre eux par des gaps. Chacun de ces secteurs commence par une zone réservée aux informations du système appelée préfixe et se termine par une zone appelée suffixe Le formatage de bas niveau a donc pour but de préparer la surface du disque a accueillir des données (il ne dépend donc pas du système d'exploitation et permet grâce à des tests effectués par le constructeur de marquer les secteurs défectueux.

Lorsque vous achetez un disque dur, celui-ci a déjà subi un formatage de bas niveau, IL N'EST DONC PAS NECESSAIRE D'EFFECTUER UN FORMATAGE DE BAS NIVEAU!

[email protected] - 93 -

Page 94: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Somme de contrôle

Effectivement, pendant le formatage des tests de contrôle (algorithme permettant de tester la validité des secteurs grâce à des sommes de contrôle) sont effectués et à chaque fois qu'un secteur est considéré comme défectueux, la somme de contrôle (invalide) est inscrite dans le préfixe, il ne pourra alors plus être utilisé par la suite, on dit qu'il est "marqué défectueux".

Lorsque le disque lit des données, il envoie une valeur qui dépend du contenu du paquet envoyé, et qui est initialement stockée avec ceux-ci. Le système calcule cette valeur en fonction des données reçues, puis la compare avec celle qui était stockée avec les données. Si ces deux valeurs sont différentes, les données ne sont pas valides, il y a probablement un problème de surface du disque. Le contrôle de redondance cyclique (CRC: en anglais cyclic redundancy check), est basé sur le même principe pour contrôler l'intégrité d'un fichier.

Les utilitaires d'analyse tel que scandisk ou chkdsk opèrent autrement: ils inscrivent des données sur les secteurs à priori marqués valides, puis les relisent et les comparent. Si ceux-ci sont similaires, l'utilitaire passe au secteur suivant, dans le cas contraire ils marquent le secteur défectueux.

Formatage de haut niveau

Le formatage logique s'effectue après le formatage de bas niveau, il crée un système de fichiers sur le disque, qui va permettre à un système d'exploitation (DOS, Windows 95, Linux, OS/2, Windows NT, ...) d'utiliser l'espace disque pour stocker et utiliser des fichiers.

Les systèmes d'exploitation utilisent des systèmes de fichiers différents, ainsi le type de formatage logique dépend du système d'exploitation que vous installez. Ainsi, si vous formatez votre disque en un seul système de fichiers, cela limite naturellement le nombre et le type de systèmes d'exploitations que vous installez (en effet vous ne pourrez installer que des systèmes d'exploitation utilisant le même système de fichiers).

Heureusement, il y a une solution à ce problème qui consiste à, créer des partitions. Chacune des partitions peut effectivement avoir son propre système de fichiers, vous pouvez par conséquent installer des systèmes d'exploitation de natures diverses.

Qu'est-ce qu'une partition?

Le partitionnement d'un lecteur se fait après le formatage physique de ce lecteur. Il consiste à créer des zones sur le disque dont les données ne seront pas mélangées. Cela sert donc si l'on veut par exemple installer des systèmes d'exploitation différents n'utilisant pas le même système de fichiers. Il y aura donc au minimum autant de partitions que de systèmes d'exploitation utilisant des systèmes de fichiers différents. Dans le cas d'un utilisateur d'un système d'exploitation unique, il y aura une seule partition recouvrant tout le lecteur, sauf si l'utilisateur désire en créer plusieurs pour faire par exemple plusieurs lecteurs dont les données sont séparées.

Il y a trois sortes de partitions: les partitions principales, la partition étendue et les lecteurs logiques. Un disque peut contenir jusqu'à quatre partitions principales (dont une seule peut être active), ou trois partitions principales et une partition étendue. Dans la partition étendue l'utilisateur peut créer des lecteurs logiques (c'est-à-dire faire en sorte que l'on ait l'impression qu'il y a plusieurs disques durs de taille moindre).

Voyons voir un exemple, dans lequel le disque contient une partition principale et une partition étendue composée de trois lecteurs logiques (nous verrons par la suite les partitions principales multiples):

[email protected] - 94 -

Page 95: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Pour les systèmes DOS (DOS, Windows 9x), seulement la partition principale est bootable, c'est donc la seule sur laquelle on peut démarrer le système d'exploitation.

On appelle partitionnement le processus qui consiste à écrire les secteurs qui constitueront la table de partition (qui contient les informations sur la partition: taille de celle-ci en terme de nombre de secteurs, position par rapport à la partition principale, types de partitions présentes, systèmes d'exploitation installés,...).

Lorsque la partition est créée, on lui donne un nom de volume qui va permettre de l'identifier facilement.

Master Boot Record

Le secteur de démarrage (appelé Master Boot Record ou MBR en anglais) est le premier secteur d'un disque dur (cylindre 0, tête 0 et secteur 1), il contient la table de partition principale et le code qui, une fois chargé en mémoire, va permettre d'amorcer le système (booter). Ce programme, une fois en mémoire, va déterminer sur quelle partition le système va s'amorcer, et il va démarrer le programme (appelé bootstrap) qui va amorcer le système d'exploitation présent sur cette partition. D'autre part, c'est ce secteur du disque qui contient toutes les informations relatives au disque dur (fabricant, numéro de série, nombre d'octets par secteur, nombre de secteurs par cluster, nombre de secteurs,...). Ce secteur est donc le secteur le plus important du disque dur, il sert au setup du BIOS à reconnaître le disque dur. Ainsi, sans celui-ci votre disque dur est inutilisable, c'est donc une des cibles préférées des virus.

Les systèmes de fichiers

Dans toute cette section il s'agira de différencier le système de fichier FAT de la table d'allocation des fichiers (FAT en anglais).

On appelle FAT le système de fichiers utilisés par les systèmes d'exploitation DOS (DOS et Windows 95/98 ainsi que Windows NT, 2000 et XP et OS/2 qui la supportent).

Système d'exploitation Système de fichiers associé

DOS FAT16

Windows 95 FAT16 - FAT32 (pour la version OSR2)

Windows NT NTFS

OS/2 HPFS

Linux Linux Ext2

Le système de fichiers FAT est caractérisé par l'utilisation d'une table d'allocation de fichiers et de clusters (ou blocs).

[email protected] - 95 -

Page 96: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Les clusters sont les plus petites unités de stockage du système de fichier FAT. Un cluster représente en vérité un nombre fixé de secteurs du disque.

La FAT (File Allocation Table: table d'allocation des fichiers) est le coeur du système de fichiers. Elle est localisée dans le secteur 2 du cylindre 0 à la tête 1 (Elle est dupliquée dans un autre secteur par des mesures de précautions en cas d'accident). Dans cette table sont enregistrés les numéros des clusters utilisés, et où sont situés les fichiers dans les clusters.

Le système de fichiers FAT supporte des disques ou des partitions d'une taille allant jusqu'à 2 GB, mais autorise au maximum 65525 clusters. Ainsi, quelle que soit la taille de la partition ou du disque, il doit y avoir suffisamment de secteurs par cluster pour que tout l'espace disque puisse être contenu dans ces 65525 clusters. Ainsi, plus la taille du disque (ou de la partition) est importante, plus le nombre de secteurs par cluster doit être important.

Le système de fichier FAT utilise un répertoire racine (représenté sur les systèmes d'exploitations qui utilisent ce type de systèmes de fichiers par le signe C:\ ) , qui doit être situé à un endroit spécifique du disque dur. Ce répertoire racine stocke les informations sur les sous-répertoires et fichiers qu'il contient. Pour un fichier, il stockera donc:

le nom de fichier la taille du fichier la date et l'heure de la dernière modification du fichier les attributs du fichier le numéro du cluster auquel le fichier commence

Utiliser des partitions multiples

Il y a, comme on l'a précédemment vu, trois sortes de partitions: les partitions principales, la partition étendue et les lecteurs logiques. Un disque peut contenir jusqu'à quatre partitions principales (dont une seule peut être active), ou trois partitions principales et une partition étendue. Dans la partition étendue l'utilisateur peut créer des lecteurs logiques (c'est-à-dire faire en sorte que l'on ait l'impression qu'il y a plusieurs disques durs de taille moindre).

Partition principale

Une partition principale doit être formatée logiquement, puis contenir un système de fichier correspondant au système d'exploitation installé sur celle-ci. Si jamais vous avez plusieurs partitions principales sur votre disque, une seule sera active et visible à la fois, cela dépendra du système d'exploitation sur lequel vous avez démarré l'ordinateur. En choisissant le système d'exploitation que vous lancez au démarrage, vous déterminez la partition qui sera visible. La partition active est la partition sur laquelle un des systèmes d'exploitation est démarré au lancement de l'ordinateur. Les partitions autres que celle sur laquelle vous démarrez seront alors cachées, ce qui empêchera d'accéder à leur données. Ainsi, les données d'une partition principale ne sont accessibles qu'à partir du système d'exploitation installé sur cette partition.

Partition étendue

La partition étendue a été mise au point pour outrepasser la limite des quatre partitions principales, en ayant la possibilité de créer autant de lecteurs logiques que vous désirez dans celle-ci. Au moins un lecteur logique est nécessaire dans une partition étendue, car vous ne pouvez pas y stocker de données directement.

Beaucoup de machines sont formatées en une grande partition utilisant l'intégralité de l'espace disponible du lecteur. Ce n'est pourtant pas la solution la plus avantageuse en terme de performances et de capacité. La solution est de créer plusieurs partitions, ce qui va vous permettre:

d'installer plusieurs systèmes d'exploitation sur votre disque d'économiser de l'espace disque

[email protected] - 96 -

Page 97: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

d'augmenter la sécurité de vos fichiers d'organiser vos données plus facilement

Voyons voir à quoi pourrait ressembler un système comportant plusieurs systèmes d'exploitation:

Qu'est-ce qu'un système de fichiers

Les disques durs, aussi petits soient-ils, contiennent des millions de bits, il faut donc organiser les donnèes afin de pouvoir localiser les informations, c'est le but du système de fichiers. Un disque dur est, rappelons-le, constitué de plusieurs plateaux circulaires tournant autour d'un axe. Les pistes (zones concentriques écrites de part et d'autre d'un plateau) sont divisées en quartiers appelés secteurs (d’une taille de 512 octets). Le formatage logique d’un disque permet de créer un système de fichiers sur le disque, qui va permettre à un système d'exploitation (DOS, Windows 9x, UNIX, ...) d'utiliser l'espace disque pour stocker et utiliser des fichiers. Le système de fichiers est basé sur la gestion des clusters (en français « unité d’allocation »), c’est-à-dire la plus petite unité de disque que le système d’exploitation est capable de gérer. Un cluster est constitué d’un ou plusieurs secteurs, ainsi plus la taille d’un cluster est importante, moins le système d’exploitation aura d’entités à gérer… En contrepartie, étant donné qu’un système d’exploitation ne sait gérer que des unités d’allocation entière, c’est-à-dire qu’un fichier occupe un nombre entier de cluster, le gaspillage est d’autant plus grand qu’il y a de secteurs par cluster. On comprend alors toute l’importance du choix du système de fichiers.

Système de fichiers et système d'exploitation

En réalité le choix du système de fichiers se fait en premier lieu suivant le système d’exploitation que vous utilisez. D’une manière générale, plus le système d’exploitation est récent plus le nombre de systèmes de fichiers supportés sera important. Ainsi, sous DOS et sur les premières versions de Windows 95 la FAT16 est de rigueur. A partir de Windows 95 OSR2 vous avez le choix entre les systèmes de fichiers FAT16 et FAT32. Si jamais la taille de la partition est supérieure à 2Go, le système de fichier FAT est exclu, vous devez donc utiliser le système FAT32 (ou modifier la taille de la partition). En dessous de cette limite, la FAT16 est recommandée pour des partitions d’une capacité inférieure à 500Mo, dans l’autre cas l’utilisation de FAT32 est préférable. Dans le cas de Windows NT (jusqu’à la version 4) vous avez le choix entre le système FAT16 et NTFS, par contre celui-ci ne supporte pas la FAT32. A partir de WIN 2000, la FAT32 est supportée. D’une manière générale le système NTFS est conseillé car il procure une sécurité plus grande ainsi que des performances accrues par rapport à la FAT. Microsoft recommande en fait d’utiliser une petite partition (comprise entre 250 et 500Mo) de type FAT pour le système d’exploitation, afin de pouvoir démarrer à partir d’une disquette DOS bootable en cas de malheur, et de conserver les données sur une seconde partition pour stocker vos données. Sous Windows NT5 l’éventail s’agrandit puisqu’il accepte des partitions de type FAT16, FAT32 et NTFS. Une fois de plus, le système de fichiers le plus récents (NTFS 5) est conseillé, puisqu’il offre de plus nombreuses fonctionnalités que les

[email protected] - 97 -

Page 98: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

systèmes FAT. Pour les mêmes raisons que précédemment vous pouvez toutefois opter pour une partition de type FAT.

Système d'exploitation Types de système de fichiers supportés

DOS FAT16

Windows 95 FAT16

Windows 95 OSR2 FAT16, FAT32

Windows 98 FAT16, FAT32

Windows NT4 FAT, NTFS (version 4)

Windows 2000 (NT5) FAT, FAT16, FAT32, NTFS (versions 4 et 5)La cohabitation de plusieurs systèmes de fichiers

Lorsque plusieurs systèmes d’exploitations cohabitent sur une même machine, le problème du choix du système de fichiers est à son paroxysme. En effet, le système de fichiers est étroitement lié au système d’exploitation, ainsi lorsqu’il y a plusieurs systèmes d’exploitations, il faut choisir pour chacun d’entre eux le système d’exploitation en prenant en compte le fait qu’il est possible que l’on ait à accéder à des données de l’un à partir d’un autre. Une première solution consiste à utiliser des partitions FAT pour tous les systèmes, en faisant attention à n’utiliser que des partitions d’une taille inférieure à 2Go. La solution la plus adaptée est d’utiliser pour chacun des systèmes une partition dont le système de fichiers est le plus adapté, et de dédier une partition en FAT16 aux données vouées à être partagées par les différents systèmes d’exploitation.

Le système de fichier FAT16

Le premier système de fichier ayant été utilisé sur un système d’exploitation Microsoft est le système FAT, qui utilise une table d’allocation de fichiers (en anglais FAT, File Allocation Table). La table d’allocation de fichiers est en fait un index qui liste le contenu du disque, afin d’enregistrer l’emplacement des fichiers sur celui-ci. Etant donné que les blocs qui constituent un fichier ne sont pas toujours stockés de manière contigüe sur le disque (c’est ce que l’on appelle la fragmentation), la table d’allocation permet de conserver la structure du fichier en créant des liens vers les blocs constitutifs du fichier. Le système FAT est un système 16 bits permettant de décrire un fichier par un nom d’une longueur de 8 caractères et une extension qui en comporte 3.

Pour améliorer ce point, la version originale de Windows 95 (employant le système FAT16) a été dotée d’une prise en charge améliorée de la FAT, il s’agit du système VFAT (Virtual FAT). La VFAT est un système 32 bits permettant d’enregistrer un fichier avec un nom de 255 caractères de long. Les programmeurs ont toutefois du veiller à la compatibilité ascendante, de telle façon a pouvoir accéder à ces fichiers à partir d’environnements 16 bits (DOS). La solution a donc été d’affecter un nom pour chaque système. C’est la raison pour laquelle il est possible d’utiliser des noms longs sous Windows 95, tout en pouvant y accéder sous DOS.

Le système de fichiers FAT est un système 16 bits, cela signifie qu’il ne peut pas adresser les clusters sur plus de 16 bits. Le nombre maximum de clusters repérables avec le système FAT est ainsi de 2^16, soit 65535 clusters. Or, étant donné qu’un cluster est constitué d’un nombre fixé (4,8,16,32, ...) de secteurs de 512 octets contigüs, la taille maximale d’une partition FAT se trouve en multipliant le nombre de clusters par la taille d’un cluster. Avec des clusters d’une taille 32Ko, la taille maximale d’une partition FAT est donc de 2Go.

D’autre part, un fichier ne peut occuper qu’un nombre entier de clusters, c’est-à-dire que si un fichier occupe plusieurs clusters, le dernier sera occupé en partie, et la place inoccupée restante est autant de place perdue. Par conséquent plus la taille d’un cluster est réduite, moins il y a de gaspillage de place. On estime

[email protected] - 98 -

Page 99: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

qu’un fichier gaspille en moyenne la moitié d’un cluster, cela signifie que sur une partition de 2Go 16Ko seront perdus par fichier…

La table d'allocation des fichiers

La Table d’Allocation de Fichiers est une liste de valeurs numériques permettant de décrire l’allocation des clusters d’une partition, c’est-à-dire l’état de chaque cluster de la partition dont elle fait partie. La table d’allocation est en fait un tableau dont chaque cellule correspond à un cluster. Chaque cellule contient un chiffre qui permet de savoir si le cluster qu’elle représente est utilisé par un fichier, et, le cas échéant, indique l’emplacement du prochain cluster que le fichier occupe. On obtient donc une chaîne FAT, c’est-à-dire une liste chaînée de références pointant vers les différents clusters successifs, jusqu’au cluster de fin de fichier. Chaque entrée de la FAT a une longueur de 16 ou 32 bits (selon qu’il s’agit d’une FAT16 ou d’une FAT32). Les deux premières entrées permettent de stocker des informations sur la table elle-même, tandis que les entrées suivantes permettent de référencer les clusters. Certaines entrées peuvent contenir des valeurs indiquant un état du cluster spécifique. Ainsi la valeur 0000 indique que le cluster n’est pas utilisé, FFF7 permet de marquer le cluster comme défectueux pour éviter de l’utiliser, et les valeurs comprises entre FFF8 et FFFF spécifient que le cluster contient la fin d’un fichier. Chaque partition contient en réalité deux copies de la table, stockées de manière contigüe sur le disque, afin de pouvoir la récupérer si jamais la première copie est corrompue.

Le système de fichier FAT32

Bien que la VFAT soit astucieuse, elle ne permet pas de remédier aux limitations de la FAT16. Ainsi, un nouveau système de fichiers (et non une meilleure prise en charge de la FAT telle que VFAT) est apparu avec Windows 95 OSR2. Ce système de fichiers, appelé FAT32 utilise des valeurs 32 bits pour les entrées de la FAT.

Avec l’apparition du système de fichiers FAT32, le nombre maximal de clusters par partition est passé de 65535 à 268 435 456. La FAT32 autorise donc des partitions d’une taille beaucoup plus élevée (jusqu’à 2 téraoctets). Puisqu’une partition FAT32 peut contenir beaucoup plus de clusters qu’une partition FAT16, il est possible de réduire de façon significative la taille des clusters et de limiter par la même occasion le gaspillage d’espace disque. A titre d’exemple, pour une partition de 2Go, il est possible d’utiliser des clusters de 4Ko avec le système FAT32 (au lieu de 32Ko en FAT16), ce qui diminue l’espace gaspillé par un facteur 8.

En contrepartie la FAT32 n’est pas compatible avec les versions de Windows antérieures à la version OEM Service Release 2. Un système démarrant avec une version précédente ne verra tout simplement pas ce type de partition. Autre remarque, les utilitaires de gestion de disque fonctionnant en 16 bits tels que d’anciennes versions de Norton Utilities ne pourront plus fonctionner correctement. En terme de performances, l’utilisation d’un système FAT32 au détriment du système FAT16 apporte en pratique un léger gain en performances de l’ordre de 5%.

Système de fichier FAT16 ou FAT32?

Le nombre de clusters étant limité, la taille maximale d'une partition dépend de la taille de chaque cluster. Voyons la taille maximale d'une partition suivant la taille des clusters et du système de fichiers utilisé:

Taille d'un cluster Système de fichier FAT16 Système de fichier FAT32

[email protected] - 99 -

Page 100: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

512 octets 32 Mo N/A

1 Ko 64 Mo N/A

2 Ko 128 Mo N/A

4 Ko 256 Mo 8 Go

8 Ko 512 Mo 16 Go

16 Ko 1 Go 32 Go

32 Ko 2 Go 2 To

Lorsque vous formatez un disque dur, il faut donc déterminer avec précaution le type de système de fichiers à utiliser, en prenant celui permettant d'avoir un espace disponible le plus proche possible de la taille désirée!

Le système de fichiers NTFS

Le système de fichiers NTFS (New Technology File System) utilise un système basé sur une structure appelée « table de fichiers maître », ou MFT (Master File Table), permettant de contenir des informations détaillées sur les fichiers. Ce système permet ainsi l’utilisation de noms longs, mais, contrairement au système FAT32, il est sensible à la casse, c’est-à-dire qu’il est capable de différencier des noms en majuscules de noms en minuscules.

Pour ce qui est des performances, l’accès aux fichiers sur une partition NTFS est plus rapide que sur une partition de type FAT car il utilise un arbre binaire performant pour localiser les fichiers. La limite théorique de la taille d’une partition est de 16 exaoctets (17 milliards de To), mais la limite physique d’un disque est de 2To.

C’est au niveau de la sécurité que NTFS prend toute son importance, car il permet de définir des attributs pour chaque fichier. La version 5 de ce système de fichiers (en standard sous Windows 2000 alias NT 5) amène encore de nouvelles fonctionnalités parmi lesquelles des performances accrues, des quotas de disque par volume définis pour chaque utilisateur. NTFS v.5 apporte la possibilité d’administration à distance...

La table des fichiers maîtres

La Table d’Allocation de Fichiers est un tableau de valeurs numériques dont chaque case permet de décrire l’allocation des clusters d’une partition, c’est-à-dire l’état (l'occupation ou non par un fichier) de chaque cluster de la partition dont elle fait partie.

Le système de fichiers NTFS est basé sur une structure différente, appelée table de fichiers maîtres, contenant des enregistrements sur les fichiers et les répertoires de la partition. Le premier enregistrement, appelé descripteur, contient des informations sur la MFT (une copie de celui-ci est stockée dans le second enregistrement). Le troisième enregistrement contient le fichier journal, un fichier qui contient toutes les actions effectuées sur la partition. Les enregistrements suivants, constituant ce que l’on nomme le noyau, référencent chaque fichier et répertoire de la partition sous forme d’objets affectés d’attributs. Cela signifie que les informations relatives à chaque fichier sont stockés dans le fichier, qui est lui même enregistré au sein de la MFT. La MFT représente donc une structure de stockage des données de la partition, et non une liste de clusters.

Qu'est-ce que la fragmentation?

Lorsque vous enregistrez un fichier sur le disque (celui-ci étant vide à la base), toutes les informations concernant ce fichier sont écrites les unes à la suite des autres. Lorsque vous enregistrez un deuxième fichier, celui-ci va s'enregistrer à la suite du premier et ainsi de suite.

[email protected] - 100 -

Page 101: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Cependant, lorsque vous effacez un fichier, celui-ci crée un vide dans l'espace disque. Or, les disques durs ayant horreur du vide (c'est une image... :), les fichiers suivants vont combler les trous, et vont donc se retrouver éparpillés en portions de fichiers sur le disque.

Ainsi, lorsque vous voudrez accéder à un fichier, la tête du disque va devoir parcourir l'ensemble des endroits où les morceaux du fichiers sont éparpillés pour pouvoir lire celui-ci. Cela se traduit donc par une baisse de performances....

Comment remédier à cette fragmentation?

Vous copiez et détruisez inévitablement vos fichiers, la défragmentation est donc inévitable...

Il existe tout de même un moyen d'y remédier: utiliser régulièrement (une fois par mois environ) un utilitaire de défragmentation, qui va réorganiser les données stockées sur le disque de telle façon que les "parcelles" de fichiers soient à nouveau bout à bout et forment un fichier plus "compact"!

7.6. Amélioration des performances de votre ordinateur.

Le but de l'overclocking

Un processeur est normalement prévu pour tourner à une fréquence donnée, c'est-à-dire celle à laquelle son fonctionnement est certifié. Il peut cependant être intéressant d'augmenter cette fréquence car c'est elle qui régit la vitesse du processeur. On peut ainsi gagner en puissance sans dépenser d'argent.

D'autre part, il est aussi possible d'augmenter la fréquence des bus de la carte-mère, c'est-à-dire la vitesse de communication entre le processeur et les autres éléments.

C'est ce processus d'augmentation de la fréquence du processeur que l'on nomme overclocking (mot anglais qui pourrait se traduire par "surfréquençage").

Malgré tout, ce processus n'est pas sans danger pour votre ordinateur. En effet, une augmentation de fréquence s'accompagne tout d'abord de l'élévation de la température des éléments qui la subissent. Il faut ainsi veiller à ce que les éléments touchés par cette élévation de température soient convenablement ventilés (le processeur est bien évidemment un élément qui subira une grande élévation de température, mais les autres éléments la subiront aussi...). La première chose à faire est donc d'ajouter des radiateurs/ventilateurs supplémentaires pour évacuer le surplus de chaleur.

D'autre part, les cartes additionnelles peuvent ne pas accepter une augmentation de fréquence trop importante (une carte PCI, par exemple, est initialement prévue pour tourner à 33 Mhz).

Ainsi, dans le meilleur des cas votre système fonctionnera correctement. Il peut toutefois devenir instable ou se bloquer, auquel cas il suffit de revenir à la configuration précédente. Certains éléments pourraient même

[email protected] - 101 -

Page 102: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

surchauffer et griller, auquel cas il faudrait les changer et le processus d'overclocking pourrait éventuellement revenir plus cher que de changer de processeur...

Comprendre les notions de fréquence

Pour comprendre l'overclocking, il faut effectivement connaître les notions de fréquence et les relations qui existent entre les fréquences de la carte-mère et du microprocesseur.

Il faut tout d'abord savoir comment les constructeurs déterminent la fréquence à laquelle le processeur tourne: les processeurs fabriqués par un constructeur sont issus d'une même série de base. Cependant, à la fin de la production les processeurs subissent des tests de fréquence, c'est-à-dire que l'on soumet les processeurs à une fréquence donnée, puis on regarde si le processeur fonctionne de manière stable. Le processeur peut toutefois fonctionner à une fréquence plus élevée sans qu'on le sache, et c'est presque toujours le cas, car les fabricants pour assurer la qualité de leurs processeurs utilisent une grande marge de sécurité, et c'est sur celle-ci que l'on va empiéter lorsque l'on poussera le processeur dans ces derniers retranchements pour gagner des mégahertz, synonymes de puissance! Ainsi, un Pentium 150 aura vraisemblablement peu de différences avec un Pentium 166.

Un processeur tourne à une vitesse plus élevée que la carte-mère, il existe donc ce que l'on appelle un coefficient multiplicateur (ou coefficient de multiplication) qui définit la vitesse relative du processeur par rapport à la carte-mère. Un coefficient de 2 signifiera donc: " le processeur tourne à une fréquence deux fois plus élevée que la carte-mère".

On peut donc effectuer un overclocking de deux façons:

en modifiant le coefficient multiplicateur (la carte-mère ne subit aucun changement de fréquence, seul le processeur tourne à une vitesse plus élevée)

en modifiant la fréquence de base, c'est-à-dire celle de la carte-mère (le processeur subit alors lui aussi une élévation de fréquence proportionnelle au coefficient multiplicateur). Les fréquences possibles de la carte-mère dépendent du type de carte-mère (une carte-mère récente pourra bien évidemment "passer" des fréquences plus élevées), elles peuvent se situer parmi les fréquences suivantes:

o 50Mhz o 60Mhz o 66Mhz o 75Mhz o 83Mhz o 100Mhz o et plus...

Possibilités d'overclocking

Processeur de baseBus système (carte-mère)

Bus PCI Coeff. Multiplicateur Résultat

Pentium 7560 Mhz66 Mhz

30 Mhz33 Mhz

1.51.5

Pentium 90Pentium 100

Pentium 9060 Mhz66 Mhz

33 Mhz33 Mhz

1.52

Pentium 100Pentium 133

Pentium 100 66 Mhz 33 Mhz 2 Pentium 133

Pentium 12066 Mhz66 Mhz

33 Mhz33 Mhz

22.5

Pentium 133Pentium 166

Pentium 15066 Mhz66 Mhz

33 Mhz33 Mhz

2.53

Pentium 166Pentium 200

[email protected] - 102 -

Page 103: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Pentium 166 66 Mhz 33 Mhz 3 Pentium 200 Quel type d'overclocking choisir?

Il y a donc deux façons principales d'overclocker son système:

l'overclocking du processeur seulement l'overclocking de la carte-mère et de tous ses composants

Quel type d'overclocking vaut-il donc mieux choisir?

Un bus de type PCI a, par exemple, sa fréquence reliée à celle de la carte-mère par un coefficient de 0.5, c'est-à-dire qu'avec une carte-mère tournant à 66Mhz le bus PCI aura une fréquence de 33Mhz. Ainsi, une augmentation de la fréquence de base de la carte-mère aura pour conséquence directe l'augmentation proportionnelle de la fréquence du bus PCI, c'est-à-dire de l'ensemble des composants qui y sont rattachés.

Il vaut donc mieux augmenter la fréquence de la carte-mère que le coefficient multiplicateur. Voyons cela sur un exemple: un Pentium 166 dont la fréquence de base est 83Mhz et dont le coefficient multiplicateur est 2 (2x83=166) aura de meilleures performances qu'un Pentium 200 dont la fréquence de base est 66Mhz et dont le coefficient multiplicateur est 3 (3x66=200). En effet, certains organes jouent le rôle de frein, car le processeur "attend" en quelque sorte que ceux-ci aient effectués leurs opérations avant de continuer les siennes!

Le refroidissement et l'aération

Dès que l'on commence à pratiquer l'overclocking, la température des éléments qui sont soumis à l'overclocking ont des surchauffes importantes qui peuvent leur être néfastes. Un processeur est généralement testé pour résister à une température de l'ordre de 80°C, au-delà les dégâts peuvent être irréversibles. C'est pour cela que l'on ne parle jamais d'overclocking sans parler de refroidissement et d'aération. Le processeur se refroidit généralement bien grâce à un ventilateur adapté. Ce n'est toutefois pas le seul élément qui souffre de la surchauffe liée à l'overclocking: les chipsets, les barrettes de mémoire, ainsi que les régulateurs de tension doivent être refroidis.

Quels sont les systèmes de refroidissement à utiliser?

Le système le plus couramment utilisé est le ventilateur monté sur un radiateur (le radiateur est une plaque de métal comportant des ailettes qui permet d'améliorer les échanges de température entre le processeur sur lequel il est monté et l'air ambiant). Le ventilateur peut aussi être monté directement sur le processeur, mais le refroidissement sera moins bon; parfois une petite plaque de métal intercalée entre le ventilateur et le processeur aide à dissiper la chaleur du processeur. Le ventilateur doit être le plus volumineux possible (optez par exemple pour un ventilateur spécial Cyrix 6x86 M1, réputé pour chauffer énormément) pour permettre un brassage d'air important qui contribuera aussi à la ventilation du boîtier...

Certains afficionados de l'overclocking utilisent une pâte conductrice (de chaleur, type silicone) entre le processeur et le ventilateur pour avoir le meilleur échange possible. Il existe aussi des ventilateurs dotés d'une alarme (reliée au haut-parleur de votre ordinateur) qui se déclenchera en cas d'avarie du ventilateur. En effet une panne de ventilateur peut directement causer la mort de votre processeur. C'est pourquoi ce type de ventilateur est conseillé lorsque vous overclockez votre processeur de façon sévère. Enfin, il existe des éléments destinés à assurer un excellent refroidissement: il s'agit des plaques à effet Peltier, qui agissent telle une pompe à chaleur, en abaissant fortement la température d'un côté (le côté du processeur), mais en chauffant l'autre, qui doit être refroidi par un ventilateur. Ce type de système est conseillé pour l'overclocking!

L'aération est, elle aussi, très importante car c'est le brassage de l'air du boîtier qui va permettre d'évacuer la chaleur, que les éléments ont fourni à l'air, à l'extérieur. C'est pour cela qu'un boîtier "ordonné" permet de minimiser les obstacles à la ventilation. En effet les nappes des disques dur (notamment les nappes SCSI, qui sont très larges), si elles sont situées devant un élément qui chauffe (devant le processeur par exemple)

[email protected] - 103 -

Page 104: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

vont nuire à la circulation d'air et risquent de provoquer une surchauffe (même pour des processeurs non-overclockés...).

D'autre part, les disques sont eux aussi sensibles à une augmentation de chaleur trop importante, il faut donc veiller à ne pas les caser dans un endroit confiné mais de préférence dans une zone où ils peuvent bénéficier du ventilateur de l'alimentation générale par exemple.

Qu'est-ce que le BIOS?

Le BIOS (Basic Input Output System) est une petite mémoire située sur la carte-mère, dont les données définissent les paramètres du système. Certaines données sont inscrites dans une mémoire morte (ROM) il n'est donc pas possible de les modifier, par contre certains paramètres sont accessibles depuis le setup du BIOS, que l'on active dès le démarrage en appuyant généralement sur la touche <F1> ou <SUPPR> (il se peut qu'il s'agisse d'une autre touche, auquel cas au démarrage vous verrez un message du genre "HIT 'DEL' TO ENTER SETUP" qui signifie littéralement "Appuyez sur la touche 'DEL' pour entrer dans le SETUP". TO SETUP est un mot anglais qui signifie CONFIGURER, le setup du bios est donc en quelque sorte un "Panneau de configuration du BIOS".

Le setup du BIOS se présente généralement sous forme de menus que l'on sélectionne grâce au clavier (mis à part de rares BIOS qui exploitent la souris, comme le BIOS WIN d'AMI par exemple, présentant les sections sous forme de fenêtres). Les paramètres sont classés dans ces sections sous forme d'options pour lesquelles on a généralement un nombre de choix limité. Cependant, vu le nombre d'options présentes, l'ensemble des configurations possibles en faisant varier tous les paramètres du BIOS est immense. De plus, ces options sont systématiquement en anglais ce qui empêche les anglophobes d'optimiser leur machine à moins d'avoir un guide ;)

Il n'existe pas un seul type de BIOS. Plusieurs constructeurs existent, mais les principaux BIOS sont actuellement

AMI BIOS (de American Megatrends) Award BIOS ou BIOS Award

D'autre part chacun de ces constructeurs fournit plusieurs versions de BIOS, si bien qu'on estime qu'il existe plus de 1800 versions de BIOS différentes... C'est pour cela que nous étudierons uniquement les BIOS AWARD et les BIOS AMI

Pourquoi optimiser le BIOS?

La configuration du BIOS sert, comme nous l'avons vu, a permettre de régler le fonctionnement du chipset. On peut donc modifier des paramètres tels que la vitesse de transfert de données entre les différents composants de la carte-mère ainsi que la façon dont ils s'effectuent. Cependant, tous les paramètres par défaut (c'est-à-dire les paramètres tel qu'ils sont lorsque le constructeur vend le BIOS) sont configurés de telle façon que n'importe quel ordinateur utilisant ce BIOS fonctionne correctement sans modifier les paramètres. De plus, lorsqu'un assembleur (la personne ou l'entreprise qui monte les PC) fournit un PC, il ne s'occupe généralement pas d'optimiser le BIOS pour vous. En effet, pour une telle entreprise, un PC monté rapidement c'est généralement une grande somme d'argent gagnée car la demande est grande. Toutefois ces paramètres standards sont aussi les paramètres les moins avantageux pour votre configuration.

Ainsi, en optimisant le BIOS il est possible de gagner jusqu'à plus de 50% de puissance supplémentaire! Cette opération prend cependant du temps car il ne faut pas modifier tous les paramètres à la fois. En effet, il est préférable de modifier un ou deux paramètres puis de lancer le système, tout en testant si il fonctionne correctement. Le mieux étant d'utiliser des logiciels appelés Benchmark qui permettent d'évaluer les performances du système en attribuant une note relative à des tests effectués. Effectivement, il peut arriver que votre ordinateur se révèle d'une très grande rapidité tout en générant un tas d'erreurs (telles que des bugs ou des plantages) le rendant instable (comme dans le cas de l'overclocking).

[email protected] - 104 -

Page 105: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

A quoi ressemble le setup du BIOS?

Les différents BIOS offrent à peu près les mêmes fonctions, leur présentation varie toutefois d'un constructeur de BIOS à l'autre (un même constructeur gardera généralement la même présentation). On retrouve généralement les rubriques suivantes:

STANDARD CMOS SETUP ADVANCED CMOS SETUP ADVANCED CHIPSET SETUP POWER MANAGEMENT BIOS SETUP PERIPHERAL SETUP AUTO CONFIGURATION WITH BIOS DEFAULTS AUTO CONFIGURATION WITH POWER ON DEFAULTS CHANGE PASSWORD HARD DISK UTILITY WRITE TO CMOS AND EXIT DO NOT WRITE TO CMOS AND EXIT

La fonction Video ROM BIOS shadow

La vidéo peut légèrement être accélérée grâce au paramétrage du BIOS.

Il est vrai que la ROM BIOS contient des routines (lignes de programme) spécialement dédiées à l'affichage graphique, cependant la ROM est lue octet par octet, ce qui rend l'accès à ces données extrêmement lente. La fonction shadow RAM ou vidéo ROM BIOS shadow permet de copier dès le démarrage le contenu de cette ROM (temps d'accès de l'ordre de 170 ns) dans la RAM (temps d'accès de l'ordre de 60ns pour les barrettes de mémoire SIMM, 10ns pour les mémoires DIMM). Pour information, la zone de mémoire dans laquelle la ROM est copiée-collée se site entre 640KO et 1024Ko, on l'appelle Adaptersegment. Cette option est intéressante pour les jeux et les applications graphiques tournant sous MS-DOS car ils utilisent cette ROM.

Toutefois, les systèmes d'exploitation récents (Windows 95 et 98, Windows NT, OS/2, ...) possèdent tous leurs propres drivers de carte vidéo (gestionnaires d'affichage graphique), ainsi la fonction shadow RAM (ou vidéo ROM BIOS shadow) peut être désactivée pour les possesseurs de systèmes d'exploitation récents ne travaillant plus sous DOS.

D'une manière générale, de nombreux périphériques possèdent une ROM (dont le temps d'accès n'est pas des plus avantageux), le contenu de celle-ci (connaissant son adresse exacte) peut donc être copiée en RAM grâce à la fonction ROM shadow du BIOS. Toutefois l'utilisation de cette option est déconseillée car la plupart des adaptateurs (cartes) possèdent désormais leur propres drivers, si bien que l'intéraction peut provoquer des dysfonctionnements.

Désactiver les options inutiles

Certaines options du BIOS sont parfois inutiles pour les PC récents ou pour l'utilisation que vous en faîtes (options de réseau, ...), il est ainsi possible d'accélérer le démarrage en les désactivant.

L'anti-virusLe BIOS dispose d'un petit anti-virus qui empêche toute écriture sur le secteur Boot de votre disque dur. Seule l'installation d'un nouveau système d'exploitation nécessite l'accès à cette partie (très sensible) du disque. Il suffit d'activer l'option Virus Warning

Le recalibrage du lecteur de disquettes

A chaque démarrage, le BIOS recalibre le lecteur de disquettes, c'est-à-dire qu'il détermine si le lecteur de disquette est de type 40 ou 80 pistes. On peut l'éviter en désactivant l'option Boot Up Floppy Seek.

La mémoire-cache En configurant correctement la mémoire cache, on peut améliorer considérablement les

[email protected] - 105 -

Page 106: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

performances de l'ordinateur. Suivant la machine, il est souvent utile d'activer les options CPU Internal Cache et CPU External Cache. Il est donc conseillé de faire des tests avec ces options activées et désactivées pour obtenir les meilleurs résultats...

Désactiver les tests au démarrage pour gagner du temps

Les tests mémoire effectués par le BIOS sont totalement inutiles. Si ces options existent désactivez les:

Above 1 MB Memory Test

Memory Parity Check Error

Memory Test Tick Sound

Activez par contre l'option Quick Power On Self Test qui accélère le démarrage de votre PC.

Le mode bloc des disques durs

Le mode bloc permet au système de transférer plusieurs secteurs d'un seul coup. Activez l'option IDE HDD Block Mode si votre disque le permet..

Vitesse de répétition du clavier

En activant l'option Typematic Rate Setting (vitesse de répétition du clavier, c'est-à-dire la vitesse à laquelle le clavier réécrit un caractère lorsqu'on laisse le doigt sur une touche). Les options Typematic Rate et Typematic Delay définissent la fréquence de répétition d'une touche en une minute et l'intervalle de temps nécessaire à une répétition de touche. Les valeurs de 30 et 250 sont les valeurs optimales.

Vitesse d'accès à la mémoire

L'option DMA Clock face="Arial,Verdana,Helvetica"> définit la vitesse d'accès direct à la mémoire. Plus la valeur entrée est haute, meilleurs sont les résultats. Il faut modifier cette valeur petit à petit (en l'augmentant) pour trouver le réglage optimal (dépend de votre carte-mère).

Performances de la mémoire

Activez les options DRAM Fast Leadoff, DRAM Posted Write Buffer Réglez la valeur DRAM Read Burst à la valeur la plus basse supportée par votre PC.

Performances du PCI

Activez les options CPU to PCI Posting, PCI Burst et PCI to CPU Posting permettant respectivement de créer un système de buffer pour contenir les données envoyées par le CPU vers le bus PCI, de transférer plus de données à la fois et de gérer un buffer PCI vers CPU.

Performances de l'AGP

L'option AGP Aperture Size permet de définir la mémoire attribuée aux textures. Plus celle-ci est élevée, plus les accès mémoire seront rapides. Modifiez donc cette valeur pas à pas pour trouver le réglage optimal.

Boot sequence

L'option Boot sequence permet de définir l'ordre dans lequel le système va choisir les lecteurs sur lesquels il va démarrer. La séquence d'amorçage commence généralement par le lecteur de disquettes (séquence A, C), ce qui signifie que si le système détecte une disquette dans le lecteur, il va vérifier si celle-ci contient un secteur d'amorçage puis booter dessus s'il en existe un, dans le cas contraire il enverra un message d'erreur spécifiant que la disquette n'est pas bootable, ou n'est pas une disquette système (exemple de message: "Non-system disk or disk error, Replace and strike any key when ready" ce qui signifie "La disquette n'est pas une disquette système ou bien il y a une erreur de disque-dur, retirez-la et appuyez sur n'importe quelle touche pour continuer" ;). Cette option est inutile dès lors que vous n'avez pas l'intention de démarrer à l'aide d'une disquette système. En effet cette option ralentit de façon conséquente le démarrage de l'ordinateur et est de plus très énervante lorsque vous avez, comme moi, tendance à oublier une disquette dans le lecteur. Pour désactiver cette option il faut modifier (à l'aide des touches PgUp et Pgdown) la séquence de boot, et mettre une séquence du genre 'C, A'. Il ne faudra pas oublier de remettre la séquence 'A, C' le jour où vous voudrez démarrer avec une disquette système.

Auto-détection des disques

La détection des disques durs au démarrage est une opération un peu longue, pour peu que vous ayez plusieurs disques durs. Pour gagner du temps au démarrage il est donc conseillé de fixer les paramètres de vos disques dures dans le STANDARD CMOS SETUP. Soit vous connaissez le nombre de cylindre, de pistes, de secteurs par piste de votre disque dur (ces valeurs sont généralement inscrites sur le disque) auquel cas vous les rentrez manuellement ou bien vous lancez la détection automatique des disques dur (IDE HDD AUTO

[email protected] - 106 -

Page 107: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

DETECTION) qui vous déterminera ces valeurs...

Les paramètres du BIOS concernant la mémoire

Les temps d'accès à la mémoire ont une grande importance dans le BIOS en matière de performances. Ainsi, en réglant les nombreux paramètres il est possible d'obtenir un gain allant jusqu'à 20% par rapport à la configuration automatique par défaut.

Les paramètres concernant la mémoire sont généralement dans la section "Chipset Features Setup". Ces paramètres sont:

Les cycles d'attente (waitstates) Les accès en salves Le rafraîchissement

Pour pouvoir modifier ces valeurs, il s'agit dans un premier temps de désactiver la configuration automatique en attribuant à l'option Auto Configuration la valeur disabled (la valeur enabled attribue les réglages les plus sûrs pour tous les types de mémoire, donc les moins rapides... il est toutefois intéressant de les noter car cela constitue un point de départ). Il s'agira d'aller modifier une par une les options puis à chaque essai noter la valeur précédente et la nouvelle valeur pour la remodifier si vous voyez un problème apparaître après changement.

L'accès en salves

Pourquoi existe-t-il différents réglages pour la mémoire? Car il existe une grande variété de types de mémoires ayant chacune des paramètres de réglage différents.

L'option DRAM R/W comprend deux valeurs: la première valeur correspond au nombre de cycles du processeur pour la lecture (R comme Read), la seconde pour l'écriture (W comme Write). Les valeurs sont généralement X444 pour la lecture, X333 pour l'écriture (plus vous mettez des valeurs petites, plus les accès à la mémoire seront rapides, mais plus votre configuration risque d'être instable. C'est pourquoi il faut veiller à diminuer progressivement ces valeurs en les testant à chaque fois).

Les cycles d'attente

Les options FP Mode DRAM Read WS et EDO Read WaitState caractérisent la synchronisation de la RAM en lecture pour les barrettes de mémoire DRAM et EDO (elles sont parfois appelées DRAM Read WS, DRAM Read Wait States, ...). Cette option permet de définir le nombre de cycles d'attente par rapport au bus système, car le bus système est parfois trop rapide par rapport à la mémoire ce qui provoque généralement des blocages. Ainsi, vous pouvez essayer de baisser le nombre de cycles d'attente pour accélérer le système. Si par contre vous avez des problèmes car vous avez augmenté la vitesse du bus système (overclocking), vous pouvez essayer de les baisser...

Il existe aussi des cycles d'attente internes aux barrettes de mémoire. Les données étant stockées comme dans des tableaux, il existe deux signaux:

CAS (Column Address Strobe) RAS (Row Address Strobe)

Ces signaux doivent être espacés dans le temps, et ce délai entre les deux types de signaux est appelé RAS to CAS delay qui pourrait se traduire par "délai entre les signaux correspondant aux lignes et les signaux correspondants aux colonnes" Le rafraîchissement

[email protected] - 107 -

Page 108: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Il existe de très nombreuses options de rafraîchissement dans le BIOS. Pour comprendre la notion de rafraîchissement il est nécessaire de connaître le fonctionnement d'une mémoire dynamique.

Une mémoire dynamique est composée d'une multitude de condensateurs qui perdent leur charge au cours du temps, c'est-à-dire que la mémoire perd progressivement ... la mémoire. Il faut donc la lui rafraîchir grâce à de petites impulsions électriques qui viennent recharger les condensateurs. Ces impulsions ont une durée de l'ordre de la milli-seconde, or le temps dans un ordinateur est repéré par rapport à la fréquence d'horloge. On indiquera donc les durées des intervalles de rafraîchissement par rapport à la fréquence d'horloge ("1 CLK" correspond à une impulsion d'horloge tandis que "2T ou 3T" correspond au nombre de cycles processeurs (CPU)). Ces valeurs doivent être les plus faibles possible pour avoir une bonne optimisation. Chaque valeur peut généralement être baissée d'une unité par rapport à la valeur fixée par l'auto-configuration.

Que signifie le terme flasher?

Le BIOS (Basic Input Output System) est, comme nous l'avons vu précédemment, une petite mémoire située sur la carte-mère, dont les données définissent les paramètres du système. Ceux-ci peuvent toutefois contenir des erreurs (bugs). De plus, avec l'apparition de nouveaux matériels les constructeurs de BIOS peuvent décider de mettre à jour leur BIOS. Cependant, cela n'est pas si simple qu'il n'y parait, car comme vous le savez peut-être le BIOS est une mémoire qui se conserve lorsque vous éteignez le PC (il serait en effet très désagréable de devoir configurer le BIOS à chaque démarrage de l'ordinateur...). Ainsi, les BIOS ont évolué depuis quelques années pour pouvoir être mis à jour.

Sur les premiers PC les BIOS étaient des mémoires mortes soudées à la carte-mère; impossible donc de les modifier. Certains fabricants proposaient toutefois des correctifs logiciels (appelés patchs) qui étaient stockés sur le disque dur et se mettaient en mémoire (RAM) pour corriger les éventuels bugs. Il ne pouvaient toutefois agir qu'après le boot du PC. Les constructeurs de BIOS ont ensuite vendu des BIOS insérables sur des supports, pouvant être changé matériellement. Le problème était cependant le prix de ces mémoires qui coûtaient très cher à l'époque. Puis vint l'apparition des mémoires programmables électroniquement, c'est-à-dire une mémoire pouvant être modifiée grâce à une machine en envoyant des impulsions électriques par des connecteurs prévus à cet effet. Ce type de programmateur de puce était cependant rare, si bien que l'opération coûtait cher à l'utilisateur. Il existe désormais des cartes-mères comportant des mémoires flash, mémoires pouvant être modifiées directement par logiciel. Les BIOS situés sur des cartes-mères comportant ce type de mémoire peuvent être mis à jour (on parle souvent d'upgrader le BIOS ou d'une upgradation, qui est un mot francisé provenant du verbe to upgrade qui signifie mettre à jour) grâce au programme (appelé firmware) de mise à jour du BIOS fourni par le fabricant. Le problème est toutefois de se procurer les mises à jour de son BIOS (problème maintenant résolu grâce à l'accessibilité d'Internet). Ces mises à jour sont disponibles sous forme de fichier binaire contenant une image du BIOS, et qui sera transférée dans la mémoire flash grâce au firmware.

Le flashage du BIOS est donc une mise à jour du BIOS par voie logicielle, c'est-à-dire grâce à un programme permettant de remplacer l'ancienne version du BIOS par une nouvelle.

Pourquoi flasher le BIOS?

Avant de flasher son BIOS, il faut se demander l'intérêt du flashage. En effet, le BIOS permet de mettre à jour le BIOS pour diverses raisons (correction de bugs, ajout de nouvelles fonctionnalités, support de nouveau matériel), toutefois les évolutions apportées ne vous touchent pas forcément directement, de plus le nouveau BIOS peut - pourquoi pas - apporter de nouveaux bugs...

Ainsi, les améliorations que le flashage peut apporter (décrites dans le fichier texte accompagnant le nouveau BIOS) valent-il la peine d'encourir les risques du flashage du BIOS (aussi minimes soient-ils)?

Si votre système fonctionne correctement et que vous voulez flasher votre BIOS "pour voir" ou bien dans l'attente d'améliorations hypothétiques, abstenez-vous (je sais que si vous avez un nouveau BIOS et que vous êtes en train de lire cette section vous ne tiendrez pas compte de ce conseil...)

[email protected] - 108 -

Page 109: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Dans quelles conditions faut-il flasher son BIOS

Le flashage du BIOS conditionne le matériel que l'on flashe, c'est-à-dire qu'il modifie la façon de se comporter du matériel doté d'un tel BIOS (il peut s'agir aussi bien de la carte-mère que d'une carte vidéo, une carte SCSI, ...), il faut donc être très prudent.

Opérations à respecter:

bien lire la documentation fournie avec le BIOS et le firmware, ainsi que celle de votre matériel. Certains matériels nécessitent la mise en place d'un jumper (cavalier) pour permettre le flashage. En effet, puisque le BIOS est modifiable par voie logicielle, il peut aussi l'être par des virus (Exemple: le virus Tchernobyl). Le cavalier permet donc d'activer ou désactiver la protection contre l'écriture par voie matérielle (impossible donc pour le virus d'agir...)

s'assurer que le BIOS que vous avez récupéré et que vous allez transférer correspond bien au matériel que vous désirez modifier. Dans le cas contraire, il se pourrait (bien que le firmware (logiciel fourni avec le BIOS qui se charge du transfert) réalise généralement un test de vérification) que vous transfériez des données qui ne correspondent pas à votre matériel, ce qui aurait le même effet que de modifier votre micro-onde pour qu'il lise des cassettes vidéos...

vérifier l'intégrité du BIOS et du firmware (s'il y a eu des erreurs pendant le téléchargement le fichier risque d'être corrompu, auquel cas il est prudent de recommencer le téléchargement)

effectuer le flashage du BIOS sous un environnement stable, c'est-à-dire sous MS-DOS (en mode natif et non une fenêtre DOS ou un vulgaire "redémarrer en mode MS-DOS). Il s'agit donc de redémarrer l'ordinateur avec une disquette système DOS, c'est le moyen le plus sûr. Une disquette accompagne généralement les matériels "flashables"; elle permet d'amorcer le système sous un DOS stable, propice au flashage. De plus elle contient la plupart du temps un programme permettant une copie de sauvegarde du BIOS actuel pour pouvoir le restaurer en cas de problème

prendre garde qu'aucun programme soit résident en mémoire. Il faut ainsi passer un antivirus récent sur sa machine (disquette système et disque dur) avant de procéder à l'upgrade du BIOS

Il faut enfin travailler dans un environnement électrique stable, c'est-à-dire minimiser les risques de coupures de courant pendant l'opération de transfert (orage, prise électrique peu sûre, coupures Electrabel fréquentes, ...)

7.7. Les interruptions ( aspect pratique ).

Qu'est-ce qu'une interruption?

Puisque le processeur ne peut pas traiter plusieurs informations simultanément (il traite une information à la fois, le multitâche consiste à alterner des morceaux d'instructions de plusieurs tâches différentes), un programme en cours d'exécution peut grâce à une interruption être momentanément suspendu, le temps que s'exécute une routine d'interruption. Le programme interrompu peut ensuite reprendre son exécution. Il existe 256 adresses d'interruption différentes.

Une interruption devient une interruption matérielle lorsqu'elle est demandée par un composant matériel du PC. En effet, il existe dans l'ordinateur de nombreux périphériques. Ceux-ci ont généralement besoin d'utiliser les ressources du système, ne serait-ce que pour communiquer avec lui... Ainsi, lorsque ceux-ci ont besoin d'une ressource, ils envoient parfois au système une demande d'interruption pour que ce dernier leur prête son attention. Ainsi, les périphériques ont un numéro d'interruption, que l'on appelle IRQ (Interruption request, ce qui signifie "requête d'interruption"). Pour

[email protected] - 109 -

Page 110: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

utiliser une image, chaque périphérique tire une ficelle reliée à une cloche pour signaler à l'ordinateur qu'il veut qu'on prête attention à lui.

Cette "ficelle" est en fait une ligne physique qui relie le slot à la carte-mère. Pour un slot ISA 8 bits par exemple, il y a 8 lignes IRQ (Interruption Request Line) qui relient le slot ISA 8 bit à la carte-mère, c'est-à-dire IRQ0 à IRQ7. Ces IRQ sont contrôlés par un contrôleur d'interruption qui permet de "donner la parole à l'IRQ ayant la plus grande priorité. Pour les slots 16 bits, les IRQ 8 à 15 ont été ajoutés, il a donc fallu ajouter un second contrôleur d'interruption, la liaison entre les deux groupes d'interruptions se fait par l'intermédiaire de l'IRQ 2 reliée à l'IRQ9 (et appelée cascade). La cascade vient donc en quelque sorte "insérer" les IRQ 8 à 15 entre les IRQ 1 et 3

La priorité étant donnée par ordre d'IRQ croissant, et les IRQ 8 à 1 étant insérées entre les IRQ 1 et 3, l'ordre de priorité est donc le suivant:

Qu'appelle-t-on DMA

Des périphériques ont besoin d'"emprunter de la mémoire" au système on leur définit alors un canal d'accès direct à la mémoire appelé DMA (Direct Memory Access soit Accès direct à la mémoire).

Elle désigne un emplacement de la mémoire vive (RAM) de l’ordinateur. Les périphériques utilisent cet emplacement comme tampon (en anglais buffer) pour les données qui entrent et qui sortent. Ce paramètre est parfois appelé « adresse de début » (RAM Start Address). Cette méthode permet à un périphérique d'emprunter des canaux spéciaux qui lui donnent un accès direct à la mémoire, sans faire intervenir le microprocesseur, afin de le décharger de ces tâches.

Il y a 8 canaux DMA sur un PC. Les quatre premiers canaux DMA ont une largeur de bande de 8 bits tandis que les DMA 4 à 7 ont une largeur de bande de 16 bits. Les DMA sont généralement assignés comme suit:

DMA0 - libre DMA1 - (carte son)/ libre DMA2 - contrôleur de disquettes DMA3 - port parallèle (port imprimante) DMA4 - contrôleur d'accès direct à la mémoire

(renvoi vers DMA0) DMA5 - (carte son)/ libre DMA6 - (SCSI)/ libre DMA7 - disponible

Adresses de base

Les périphériques ont parfois besoin d'échanger des informations avec le système, c'est pourquoi on leur assigne des adresses par lesquelles il peuvent envoyer et recevoir des informations, ces adresses sont appelées adresses de base (appelées aussi ports d'entrée/sortie, ports d'E/S, adresse d'E/S, adresses de ports

[email protected] - 110 -

Page 111: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

d'E/S, ports de base, parfois I/O address c'est la notation anglaise qui signifie Input/Output Address, soit Adresse d'entrée - sortie).

C'est par l'intermédiaire de cette adresse de base que le périphérique peut communiquer avec le système d'exploitation. Il ne peut donc y avoir qu'une adresse de base unique par périphérique.

Voici une liste de quelques adresses de base courantes:

060h - clavier 170h/376h - contrôleur IDE secondaire 1F0h/3F6h - contrôleur IDE primaire 220h - carte son 300h - carte réseau 330h - carte adaptatrice SCSI 3F2h - contrôleur de lecteur de disquettes 3F8h - COM1 3E8h - COM2 3E8h - COM3 2E8h - COM4 378h - LPT1 278h - LPT2

Tous ces éléments sont toutefois transparents pour l'utilisateur moyen, c'est-à-dire qu'il n'a pas à s'en préoccuper

Pourquoi y'a t'il des conflits matériels

Une interruption est donc une ligne reliant un périphérique avec le processeur, l'interruption est matérielle lorsqu'elle est demandée par un composant matériel du PC. C'est le cas, par exemple, lorsqu'une touche a été frappée et que le clavier veut attirer l'attention du processeur sur cet événement. Mais les 256 interruptions ne peuvent pas toutes être demandées comme des interruptions matérielles. Les différents périphériques appellent toujours des interruptions bien précises. Ainsi, lors de l'installation de cartes d'extension, il faut veiller, au moment de la configuration, à ce que la même interruption ne soit pas utilisée par deux périphériques différents.

En effet, si deux périphériques ont le même IRQ, le système ne saura pas à quel matériel il doit donner la main ... le système se bloque ou fonctionne anormalement ... on appelle ça un conflit matériel. Un conflit matériel ne se produit pas uniquement pour deux périphériques ayant la même interruption matérielle, il peut aussi y avoir un conflit lorsque deux périphériques ont la même adresse d'entrées/sorties ou sont assignés aux mêmes canaux DMA.

Comment configurer les IRQ des périphériques

L'IRQ d'une carte peut donc être modifié, car il faut lui allouer un numéro d'IRQ non utilisé par un autre périphérique.

Sur les anciens périphériques il est fixé grâce à des jumpers (cavaliers) présents sur la carte Sur les cartes récentes (comportant un BIOS Plug & Play), le paramétrage des ressources (IRQ, DMA,

Adresses d'entrée-sortie) se fait grâce à un petit utilitaire (souvent sous DOS) fourni avec la carte réseau (il s'appelle généralement setup.exe, install.exe, ezconf.exe, config.exe, ...) il permet de modifier logiciellement les valeurs de l'IRQ, DMA, ... Il faut généralement désactiver le mode plug & play pour pouvoir modifier les paramètres manuellement

Enfin, de nombreuses cartes sont paramétrable à loisir (il est possible d'affecter une valeur d'IRQ sous Windows). C'est le notamment le cas de la plupart des cartes sons

[email protected] - 111 -

Page 112: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

Il n'est pas toujours évident d'arriver à trouver des ressources pour tous les périphériques, voici donc les ressources déjà utilisées et qui ne peuvent donc pas être assignées à vos cartes d'extension:

IRQ Périphérique

0 Horloge interne

1 clavier

2contrôleur d'interruptions programmable Renvoi vers les IRQ 8 à 15

3 port de communication COM2/COM3

4 port de communication COM1/COM4

5 libre

6 contrôleur de disquettes

7 port imprimante LPT1

8 CMOS (Horloge temps réel)

9 libre

10 libre

11 libre

12 port souris PS2/libre

13processeur numérique de données (Coprocesseur mathématique)

14 contrôleur de disques durs primaire (IDE)

15 contrôleur de disques durs secondaire (IDE)

Comme on peut le remarquer, les ports COM1 et COM4 ainsi que les ports COM2 et COM3 utilisent les mêmes interruptions ... illogique ... En fait il est possible d'utiliser le port COM1 et le port COM4 (ainsi que le port COM2 et le port COM3) à condition que ceux-ci ne soient pas actifs simultanément. Dans le cas contraire l'ordinateur peut se bloquer ou avoir un comportement anormal.

Résoudre les conflits matériels

Lorsque vous vous trouvez face à un problème que vous pensez relatif à la configuration matérielle de votre machine, la première chose à faire est de tenter de l'isoler. Cela signifie tenter d'éliminer toutes les variables possibles, généralement en ouvrant la machine, et, en ôtant petit à petit tous les éléments susceptibles de provoquer un conflit, ou bien de les isoler par voie logicielle (dans votre système d'exploitation), jusqu'à la découverte de l'élément responsable.

[email protected] - 112 -

Page 113: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

1. INTRODUCTION.................................................................................................................................................11.1. Préambule.......................................................................................................................11.2. Le modèle à six couches.................................................................................................21.3. Bref historique de l'ordinateur........................................................................................31.4. La famille Intel ( + AMD ).............................................................................................41.5. La famille Motorola........................................................................................................4

2. STRUCTURE D'UN ORDINATEUR.................................................................................................................52.1. La carte mère de l'ordinateur...........................................................................................52.2. Le processeur..................................................................................................................82.3. La mémoire RAM ou mémoire centrale.......................................................................122.4. La mémoire ROM ou mémoire morte..........................................................................152.5. Le bus AGP...................................................................................................................162.6. Les périphériques externes............................................................................................172.7. Les périphériques internes............................................................................................30

[email protected] - 113 -

Page 114: ORDINATEUR Tres Important

I.E.P.S.C.F. Marche en Famenne Structure des Ordinateurs

2.8. Le BIOS........................................................................................................................353. LES SYSTEMES DE NUMERATION.............................................................................................................37

3.1. Introduction...................................................................................................................373.2. La numération décimale................................................................................................373.3. La numération binaire...................................................................................................373.4. La numération hexadécimale........................................................................................433.5. Les caractères................................................................................................................44

4. ALGEBRE DE BOOLE.....................................................................................................................................475. FONCTIONNEMENT DE L'ORDINATEUR..................................................................................................52

5.1. Les registres du processeur...........................................................................................525.2. La formation des adresses en mémoire.........................................................................545.3. Modification lors de l'apparition du 80386...................................................................565.4. Communication du processeur avec le matériel...........................................................575.5. Les interruptions...........................................................................................................585.6. Les pointeurs NEAR et FAR........................................................................................645.7. La pile...........................................................................................................................64

6. LA PROGRAMMATION EN ASSEMBLER PC.............................................................................................666.1. Les instructions de l'Assembler PC..............................................................................666.2. Visualisation de ces concepts........................................................................................87

7. LE MONTAGE ET L'INSTALLATION D'UN ORDINATEUR.....................................................................897.1. Le montage du boîtier et des périphériques..................................................................897.2. Le paramétrage du bios.................................................................................................897.3. L'installation du système d'exploitation........................................................................897.4. La disquette de boot......................................................................................................907.5. L'organisation des disques durs....................................................................................917.6. Amélioration des performances de votre ordinateur...................................................1007.7. Les interruptions ( aspect pratique )............................................................................108

[email protected] - 114 -