Vous êtes sur la page 1sur 23

Principes des microprocesseurs

Jacques BAUMANN juin 2003

Table des matires Introduction............................................................................................................. 3 Elments fondamentaux de l'ordinateur ................................................................. 4 Microprocesseurs ................................................................................................... 4 Organisation interne du microprocesseur ............................................................... 5 Unit Arithmtique et Logique (UAL) ...................................................................... 5 Le jeu de registres .................................................................................................. 5 L'unit de commande ............................................................................................. 6 Bus du microprocesseur ......................................................................................... 6 Bus d'adresse ......................................................................................................... 6 Bus de donnes...................................................................................................... 6 Bus de commande.................................................................................................. 6 Programmation du microprocesseur....................................................................... 6 Systme informatique classique ............................................................................. 7 UCT ........................................................................................................................ 8 Unit de mmoire ................................................................................................... 8 Ports d'entre ......................................................................................................... 8 Ports de sortie ........................................................................................................ 9 Historique des microprocesseurs ........................................................................... 9 4004 ....................................................................................................................... 9 8086 ....................................................................................................................... 9 80186 ..................................................................................................................... 9 80286 ..................................................................................................................... 10 80386 ..................................................................................................................... 10 80486 ..................................................................................................................... 10 Pentium .................................................................................................................. 10 Pentium Pro............................................................................................................ 11 Pentium II ............................................................................................................... 11 Pentium III .............................................................................................................. 11 Pentium 4 ............................................................................................................... 11 Traitement des instructions..................................................................................... 12 File d'attente des instructions ................................................................................. 13 Registre de segment .............................................................................................. 13 Pointeur d'instructions IP ........................................................................................ 14 Registres gnraux ................................................................................................ 15 Registres de pointeurs............................................................................................ 15 Drapeaux (flags) ..................................................................................................... 15 L'UCT ..................................................................................................................... 16 Gnrateur d'horloge.............................................................................................. 17 Gestion de la mmoire ........................................................................................... 18 Ports d'entre / sorties (E/S)................................................................................... 18 Interruptions............................................................................................................ 19
Informatique Microprocesseurs -1Jacques BAUMANN Juin 2003

Interrogations des E/S ............................................................................................ 19 E/S pilotes par interruptions.................................................................................. 20 Interruptions logicielles ........................................................................................... 21 Accs direct la mmoire (DMA) ........................................................................... 21 Type CISC .............................................................................................................. 22 Type RISC .............................................................................................................. 23 Programmation en assembleur............................................................................... 23

Informatique Microprocesseurs

-2-

Jacques BAUMANN Juin 2003

Introduction Le microprocesseur est un lment indispensable dans un ordinateur. Il s'agit d'un lment semi-conducteur au silicium dont la fabrication ncessite une prcision extrme. En effet, le microprocesseur intgre plusieurs millions de transistors utiliss en commutateurs. Le microprocesseur est non seulement prsent dans les ordinateurs, mais aussi dans d'autres types d'appareils lectroniques. Ce manuel apporte un approche simple de ce type de circuit complexe.

Informatique Microprocesseurs

-3-

Jacques BAUMANN Juin 2003

Elments fondamentaux de l'ordinateur Quel que soit son rle et sa nature, un ordinateur est toujours compos d'lments fondamentaux. Ceux-ci sont l'Unit Centrale de Traitement (UCT), la mmoire (par exemple RAM, ROM ou disque dur), et les ports d'entre / sorties, indispensables pour communiquer avec des lments extrieurs. Ces lments de base sont relis entre eux par trois types de bus: le bus d'adresse, le bus de donnes et le bus de commande. Comme chaque emplacement correspond une adresse, le bus d'adresse est utilis pour localiser l'lment souhait en mmoire. Le bus de donne est utilis pour transmettre des donnes que l'UCT doit traiter. Le bus de commande est utilis pour coordonner et synchroniser tous ces changes. Observez le schma ci-dessous. Il reprsente les lments essentiels de l'ordinateur. Les lments sont relis entre eux et au microprocesseur grce aux trois bus que nous venons de mentionner.

Elments fondamentaux de l'ordinateur

Microprocesseurs Les microprocesseurs sont des circuits intgrs trs haute intgration prsents dans des applications diverses. A l'intrieur de l'ordinateur, il est insr sur la carte mre, mais nous en trouvons galement sur les diverses cartes et priphriques, comme la carte graphique, la carte son, l'imprimante, etc. Il subsiste pourtant une diffrence importante entre ces microprocesseurs priphrique et l'UCT dessin sur l'image prcdente. Les microprocesseurs priphriques sont spcialiss dans le rle qui leur est affect, et sont incapables de communiquer directement entre eux. Dans les applications les plus diverses, nous utilisons le microcontrleur, un lment trs proche du microprocesseur. L'un de ces lments est illustr ci-dessous.

Exemple de microcontrleur

Informatique Microprocesseurs

-4-

Jacques BAUMANN Juin 2003

Il existe de trs nombreux types de processeurs. Celui qui est illustr ci-dessous est un processeur rcent de type x86. Ce processeur est insrer sur la carte mre, un emplacement prvu cet effet. Il ncessite un dispositif de refroidissement, car sa frquence est leve.

Exemple de microprocesseur

Organisation interne du microprocesseur Maintenant que nous savons ce qu'est un microprocesseur, penchons-nous sur son organisation intrieure. En effet, un nombre trs important de divers lments est compris dans la puce de silicium que vous avez pu observer ci-dessus. Le microprocesseur est divis en trois parties principales. Il s'agit de l'UAL (Unit Arithmtique et Logique), du jeu de registres, et de l'Unit de commande. L'unit arithmtique et logique est un lment particulirement important au cur du microprocesseur. L'unit arithmtique et logique est commande par l'unit de commande. Son rle et d'effectuer des oprations mathmatiques de base, comme des additions, des soustractions, des multiplications et des divisions. L'unit arithmtique et logique est galement capable d'effectuer des oprations logiques, comme les fonctions NON, ET, OU, OU-Exclusif, etc. Les lments que l'UAL doit traiter proviennent du jeu de registres.

Le jeu de registres Le jeu de registre contient l'ensemble des registres du microprocesseur. Un registre est une petite partie de mmoire intgre au microprocesseur, dans le but de recevoir des informations spcifiques, notamment des adresses et des donnes stockes durant l'excution d'un programme. Il existe plusieurs types de registres. Certains d'entre eux sont affects des oprations d'ordre gnral et sont accessibles au programmeur tout moment. Nous disons alors qu'il s'agit de registres gnraux. D'autres registres ont des rles bien plus spcifiques et ne peuvent pas servir un usage non spcialis. Enfin, d'autres registres sont invisibles et par consquent inaccessible au programmeur. Ces registres ne sont accessibles qu'au microprocesseur. Lorsque nous excutons un programme, l'UAL toujours accs ces registres. Nous verrons plus loin qu'il est possible d'affecter des valeurs notre guise aux registres gnraux.
Informatique Microprocesseurs Jacques BAUMANN Juin 2003

-5-

L'unit de commande Le rle de l'unit de commande est de coordonner et de synchroniser toutes les oprations que nous venons de dcrire. Elle est capable d'envoyer les signaux de synchronisation ncessaires.

Bus du microprocesseur Le microprocesseur est reli trois types de bus: le bus d'adresse, le bus de donnes et le bus de commande. Il s'agit de plusieurs pistes lectroniques qui sont relies au microprocesseur. Ces bus assurent la communication interne et externe du microprocesseur.

Bus d'adresse Le bus d'adresse est une voie unidirectionnelle qui sert envoyer un code d'adresse la mmoire et communiquer avec des dispositifs extrieurs. La largeur de ce bus est de 32 bits (32 lignes regroupes) sur les microprocesseurs Intel Pentium conventionnels. Cela signifie que ce microprocesseur est capable d'adresser 4295000000 ( 2 32 ) emplacements en mmoire.

Bus de donne Le bus de donne peut prsenter une largeur de 8 64 bits, selon l'anne et le type du microprocesseur. C'est par le bus de donne que sont transmises les donnes qui doivent tre traites par le microprocesseur. A l'inverse, c'est galement par le bus de donnes que transitent les rsultats en sortie du microprocesseur. Autrement dit, toutes les donnes entrantes et sortantes du microprocesseur sont vhicules par le bus de donnes.

Bus de commande Le bus de commande sert coordonner tous les changes d'informations dcrits prcdemment. Le bus de commande vhicule des donnes qui valident la mmoire et les ports d'entres / sorties. Le bus de commande introduit des dlais d'attente lorsque des informations sont envoyes un priphrique qui prsente une vitesse de traitement rduite. Le bus de commande vite les conflits de bus lorsque deux lments cherchent communiquer en mme temps.

Programmation du microprocesseur Le microprocesseur travaille partir d'un jeu d'instruction fixe, labor par le fabricant. Dans les processeurs de la famille x86 conventionnels (AMD, Intel), il existe 7 types d'instructions de base dcrits ci-dessous.

Informatique Microprocesseurs

-6-

Jacques BAUMANN Juin 2003

Transfert de donne Arithmtique Traitement binaire Boucles et branchements Chanes Sous-routines et interruptions Commande du microprocesseur

Notez qu'il existe des centaines de variantes de ces instructions de base. Chaque instruction est contenue sous la forme d'un code binaire, c'est dire d'une srie de 1 et de 0 que le microprocesseur doit dcoder et excuter. Autrefois, il fallait taper manuellement des sries de 1 et de 0 pour crire ces instructions. Il s'agissait d'un travail particulirement contraignant. A cet effet, le langage assembleur t labor. Il s'agit d'un langage de bas niveau, dans lequel les instructions entres sont directement traduit en langage machine (langage binaire), qui est en ralit le seul langage que le microprocesseur est capable de comprendre. Le langage assembleur et le langage machine qui en rsulte sont spcifiques au type de microprocesseur utilis. Par exemple, si nous crivons un programme en assembleur sur un ordinateur quip d'un microprocesseur x86 d'AMD ou Intel, ce programme ne pourra en aucun cas tre excut sur un ordinateur quip d'un microprocesseur Motorola. Le langage assembleur est utilis uniquement dans la programmation des puces et microprocesseurs, mais en aucun cas dans la conception de programmes applicatifs. Pour crire de tels programmes, nous utilisons des langages de programmation de haut niveau comme le C/C++, le Pascal ou le Basic. Ces langages de programmation ncessitent un compilateur, c'est dire un interprteur charg de traduire le code du langage volu en langage assembleur. Il est donc plus simple et plus rapide d'utiliser de tels interprteurs pour laborer des programmes applicatifs. Pour crire un programme en assembleur, nous avons au minimum besoin d'un diteur de texte (par exemple "Bloc-notes" dans Windows). Le langage assembleur sera tudi de faon dtaille plus loin.

Systme informatique classique Nous avons prcdemment observ les lments fondamentaux de l'ordinateur. A prsent, observons un schma plus dtaill et plus complet que ce que nous avons vu jusqu'ici.

Informatique Microprocesseurs

-7-

Jacques BAUMANN Juin 2003

Systme informatique classique

Pour tre efficace, l'ordinateur doit pouvoir recevoir et envoyer des informations vers des lments extrieurs. A prsent, examinons chaque lment contenu dans un systme informatique typique comme celui que nous connaissons. UCT: L'UCT (Unit Centrale de Traitement) est le microprocesseur que nous connaissons dj. Il contrle l'excution de chaque programme, adresse des emplacements en mmoire, y envoie des donnes et en rcupre. Il excute les instructions qui lui sont adresses par l'intermdiaire de la mmoire. Unit de mmoire: L'unit de mmoire est constitue de mmoire morte (ROM), de mmoire vive (RAM), et de mmoire auxiliaire de masse (disque dur). La mmoire morte (ROM) contient des donnes sous forme binaire qu'il n'est pas possible de modifier. L'exemple le plus vident est le BIOS (Basic Input / Output System), qui est un programme contenant des informations de configuration gnrales relatives l'ordinateur utilis. Ce programme est contenu dans la mmoire ROM, et, par consquent, il n'est pas possible de modifier ce programme. La mmoire RAM est volatile, ce qui signifie qu'elle est incapable de conserver des informations lorsqu'elle n'est pas alimente. Les informations qui s'y trouvent sont contenues sous forme binaire, et font l'objet d'changes frquents avec le microprocesseur. Le disque dur contient des informations qui peuvent tre modifies tout moment. Il est capable de conserver les informations qu'il contient durant un temps indtermin. Ports d'entre: L'ordinateur reoit des informations provenant de l'extrieur par les ports d'entre. Les priphriques les plus communs utilisant les ports d'entre sont la souris et le clavier, par exemple. L'UCT peut consulter ces priphriques en empruntant les ports d'entre.

Informatique Microprocesseurs

-8-

Jacques BAUMANN Juin 2003

Ports de sortie: Les ports de sortie sont utiliss par l'ordinateur pour envoyer des informations vers l'extrieur. Les priphriques de sortie les plus courants sont l'cran et l'imprimante, qui reoivent des donnes en provenance de l'ordinateur. Certains priphriques, comme les modems ou les disques durs, sont capable la fois d'envoyer et de recevoir des donnes de l'ordinateur. Ces priphriques ncessitent deux ports bien distincts, l'un pour recevoir des donnes (port d'entre), l'autre pour envoyer des donnes (port de sortie).

Historique des microprocesseurs Avant de nous intresser plus particulirement l'architecture interne des microprocesseurs, il convient de connatre l'volution impressionnante de ces composants. 4004 (1971): Le premier microprocesseur conu par Intel tait le 4004, conu l'origine pour la calculatrice Busicom. Ce microprocesseur possdait un bus de donne de 4 bits. Il fonctionnait la frquence de 108 KHz, et tait quip de 2300 transistors. Prcisons au passage que sa puissance tait gale celle de l'ENIAC, fabriqu en 1946, qui occupait 25 mtres carrs. Ci-dessous, vous pouvez observer une photo du processeur 4004.

Microprocesseur 4004

8086: Le 8086 (dvelopp en 1978) est le premier microprocesseur de type x86. Les microprocesseurs actuels sont en ralit des amliorations du 8086. Le 8086 tait quip d'un bus de donnes de 16 bits et fonctionnait des frquences diverses selon plusieurs variantes: 5, 8 ou 10 MHz.

Microprocesseur 8086

80186: Le 80186 est une version du 8086 lgrement amliore, qui intgre la puce plusieurs fonctionnalits supplmentaires, comme le gnrateur de signal d'horloge, le contrleur systme, le contrleur d'interruption, et le contrleur d'accs direct la mmoire (DMA). La frquence d'horloge tait de 8, 10, et 12,5 MHz.

Informatique Microprocesseurs

-9-

Jacques BAUMANN Juin 2003

80286: Le 286 est dvelopp en 1982. Il est capable d'adresser 16777216 emplacements mmoire. L'innovation la plus importante est la capacit de grer plusieurs programmes la fois (multitche), si le systme d'exploitation le permet.

Microprocesseur 286

80386: Le 386 est dvelopp en 1985. Il est dot d'un bus de donne et d'un bus d'adresse de 32 bits. Le 386SX avait un bus de donne externe de 16 bits, alors que l'autre variante, le 386DX possdait un bus de donne externe de 32 bits. Le 386 intgre l'assemblage en pipeline, permettant d'excuter une instruction avant que l'instruction prcdente soit termine. Le 386 prsentait une frquence de 16, 20, 25, et 33 MHz.

Microprocesseur 386

80486: Le 486 est dvelopp en 1989. Il intgre une mmoire cache de 8 Ko, permettant d'accrotre sa vitesse de traitement. Le 486 est le premier microprocesseur tre quip de plus d'un million de transistors. Le 486 prsentait des frquences 33, 40 et 66 MHz.

Microprocesseurs 486

Pentium: Le pentium t conu en 1993. Ce microprocesseur est dot de deux mmoires cache de 8 Ko, la premire pour les instructions, le seconde pour les donnes. L'architecture superscalaire (mthode deux pipeline) permet ce

Informatique Microprocesseurs

- 10 -

Jacques BAUMANN Juin 2003

microprocesseur d'excuter deux instructions simultanment. Le pentium original fonctionnait la frquence de 66 MHz.

Microprocesseurs pentium

Pentium Pro: Le pentium pro, apparat en 1995. Il reprend les caractristiques du pentium original, l'exception de trois units de calcul supplmentaire, et d'une seconde puce de mmoire prvue pour accrotre la vitesse. La frquence d'horloge peut atteindre 200 MHz. Pentium II: Le pentium II est apparu en 1997. Il est dot de la technologie MMX, qui permet d'exploiter plus efficacement le son, la vido, et le traitement d'image. A cet effet, pentium II comprend 57 instructions de base supplmentaires. Le pentium II atteint la frquence d'horloge de 450 MHz.

Microprocesseur Pentium II

Pentium III: Le pentium III est apparu en 1999. 70 nouvelles commandes ont t ajoutes pour amliorer son utilisation dans la vido et le traitement d'image 3D. Le pentium III atteint une frquence de 1 GHz. Pentium 4: Le pentium 4 est le microprocesseur utilis aujourd'hui. Il est capable d'atteindre des frquences particulirement leves, jusqu' 3 GHz.

Informatique Microprocesseurs

- 11 -

Jacques BAUMANN Juin 2003

Microprocesseur Pentium 4

Traitement des instructions A prsent, penchons-nous sur la faon utilise par le microprocesseur pour traiter les informations. Il existe deux units internes distinctes: l'UE (Unit d'Excution) et l'UIB (Unit d'Interfaage de Bus). Le rle de l'UIB est de rcuprer et stocker les informations traiter, et d'tablir les transmissions avec les bus du systme. L'UE excute les instructions qui lui sont transmises par l'UIB. L'image ci-dessous rsume les notions prsentes ici. Le microprocesseur pris comme exemple est le 8086/8088. Les processeurs actuels de la famille x86 traitent les informations de la mme faon.

Units internes de traitement des donnes

Nous pouvons prsent examiner plus en dtail le traitement des instructions par l'UE et l'UIB. Avec le microprocesseur 8085, le traitement des instructions se passait comme suit: Extraction des instructions par l'UIB Excution des instructions Extraction des nouvelles instructions

Lorsque l'excution d'une instruction est termine, l'UE reste inactif un court instant, pendant que l'UIB extrait l'instruction suivante. Pour remdier ce temps d'attente, le prtraitement ou traitement pipeline t introduit dans le 8086/8088. Durant que l'UE excute les informations qui lui sont transmises, l'instruction suivante est
Informatique Microprocesseurs Jacques BAUMANN Juin 2003

- 12 -

charge dans l'UIB. Les instructions qui suivront sont places dans une file d'attente. Lorsque l'UE fini de traiter une instruction l'UIB lui transmet instantanment l'instruction suivante, et charge la troisime instruction en vue de la transmettre l'UE. De cette faon, l'UE est continuellement en activit. Ci-dessous, vous pouvez observer un schma plus dtaill de l'UE et l'UIB. Nous y retrouvons les lments dont il t question prcdemment, comme les registres gnraux et l'Unit Arithmtique et Logique (UAL).

Schma dtaill du traitement des instructions

File d'attente d'instructions Nous avons dj mentionn la file d'attente d'instructions. Celle-ci contient des informations qui attendent d'tre traits par l'UE. La file d'attente est parfois appele capacit de traitement. Le microprocesseur 8088 est capable de mmoriser jusqu' six octets. Les microprocesseurs actuels sont bien entendu quip d'une file d'attente plus rapide et plus large, c'est dire capable d'emmagasiner plus d'informations.

Registres de segment Le microprocesseur 8088 possde quatre registres de segment comprenant 16 bits chacun. Il s'agit des registres CS, DS, SS et ES.

Informatique Microprocesseurs

- 13 -

Jacques BAUMANN Juin 2003

La mmoire vive est divise en plusieurs zones de 64 Ko appeles segments, comme illustr. Ces registres peuvent tre modifis, mais cela n'est gnralement pas ncessaire.

Segments en mmoire

Les registres de segments contiennent l'adresse de segments spcifiques, comme le montre le tableau ci-dessous. Notez que le recouvrement est une mthode visant regrouper les 4 segments en mmoire dans des emplacements regroups.
Registres de segment CS (Code Segment) DS (Data Segment) SS (Stack Segment) ES (Extra Segment) Contenu Segment o se trouve le programme source Segment o se trouve les donnes Segment o se trouve la pile Segment o se trouve les donnes supplmentaires

Le pointeur d'instructions IP Le pointeur d'instruction IP contient le dcalage de l'instruction suivante en mmoire qui doit tre excute. Autrement dit, il doit indiquer au processeur la prochaine instruction excuter. Le registre IP est constamment modifi aprs l'excution de chaque instruction afin qu'il pointe sur l'instruction suivante. Les microprocesseurs de la famille x86 dpendent entirement du registre IP pour connatre l'instruction suivante.

Informatique Microprocesseurs

- 14 -

Jacques BAUMANN Juin 2003

Les registres gnraux Les registres gnraux peuvent tre utiliss dans toutes les oprations arithmtiques que le programmeur insre dans le code assembleur. Un registre complet prsente une grandeur de 16 bits. Comme le montre le schma ci-dessous, chaque registre est en ralit divis en deux registres distincts de 8 bits. De cette faon, nous pouvons utiliser une partie du registre si nous dsirons y stocker une valeur n'excdant pas 8 bits. Si, au contraire, la valeur que nous dsirons y ranger excde 8 bits, nous utiliserons le registre complet, c'est dire 16 bits. Nous verrons plus loin qu'il est possible de manipuler facilement les registres gnraux.

Les registres gnraux

Les registres de pointeurs Les registres de pointeurs et les registres d'index sont prsents au nombre de quatre et font gnralement rfrence un emplacement en mmoire. Ces quatre registres sont illustrs ci-dessous. Nous comprendrons plus loin l'utilisation exacte de ces pointeurs, lorsque nous aurons abord la gestion de la pile.

Registres de pointeurs

Drapeaux (flags) Les drapeaux sont des indicateurs qui annoncent une condition particulire suite une opration arithmtique ou logique, comme le montre le schma ci-dessous.

Informatique Microprocesseurs

- 15 -

Jacques BAUMANN Juin 2003

Drapeaux (indicateurs d'tat)

Les drapeaux peuvent modifier la suite des instructions excutes par le microprocesseur, si cela est ncessaire.

L'UCT Ci-dessous, vous pouvez observer le schma simplifi de l'UCT du microprocesseur 8088. Vous n'avez pas besoin de connatre en dtail l'UCT, car cet lment est quelque peu complexe.

Schma simplifi de l'UCT

Informatique Microprocesseurs

- 16 -

Jacques BAUMANN Juin 2003

Les lignes que nous pouvons observer ci-dessus tant dsignes "AD7-AD0" servent la fois de lignes d'adresses et de ligne de donnes grce un mcanisme de multiplexage. Les lignes A8-A19 servent uniquement l'adressage. Nous retrouvons ici les trois bus dj mentionns. Le contrleur de bus gre la plupart des fonctions de contrle du bus la place du microprocesseur, dans le but d'accrotre l'efficacit de traitement de celui-ci. Lorsqu'un signal ALE est mis, les bistables d'adresses sont verrouilles, et l'envoi d'informations sur le bus d'adresse devient impossible. Le contrleur de bus peut donc contrler les informations mises sur le bus d'adresse.

Le gnrateur d'horloge Les microprocesseurs et les priphriques ont besoin de signaux de synchronisation prcis. A cet effet, nous utilisons le gnrateur d'horloge, quip d'un cristal destin fournir des signaux prcis. Ce cristal gnre une oscillation de 14, 31818 MHz qui est applique la sortie OSC. Un compteur division par trois compris l'intrieur du gnrateur d'horloge abaisse la frquence 4,772727 MHz, qui est applique la sortie HORLOGE. Cette frquence est ensuite drive et ajuste 2,386363 MHz, puis applique la sortie PCLK. La sortie RAZ sert remettre le 8088 0, et la sortie PRT sert le synchroniser avec le reste du systme. Le Pentium doit tre quip d'un oscillateur externe rgl la mme frquence que le systme, afin de contrler sa vitesse de base. Ci-dessous, nous pouvons observer le gnrateur d'horloge 8284, utilis avec le microprocesseur 8088.

Gnrateur d'horloge 8284

Informatique Microprocesseurs

- 17 -

Jacques BAUMANN Juin 2003

Gestion de la mmoire L'UCT est capable de lire et d'crire dans la mmoire RAM. L'unique opration possible dans la mmoire ROM est bien entendu la lecture. Les oprations de lecture (MRDC) se droulent en extrayant des donnes en mmoire. Les oprations d'criture (MWTC) se droulent en envoyant une valeur (par exemple le rsultat d'une opration arithmtique) vers la mmoire ROM.

Oprations en mmoire

Les ports d'entre / sortie (E/S) Pour communiquer avec le monde extrieur, l'ordinateur ncessite des ports d'entre et de sortie. Nous trouvons des ports utiliss exclusivement pour l'entre, et d'autres ports exclusivement pour la sortie. Il existe bien entendu des ports bidirectionnels. En d'autres termes, les ports d'E/S sont les interfaces entre l'ordinateur et les priphriques de communication. Chaque priphrique ncessite donc un port adapt. Sur l'illustration suivante nous apercevons des ports d'E/S et diffrents priphriques. Bien entendu, les ports d'E/S sont nombreux, et ils ne sont pas tous illustrs ci-dessous. En effet, le Pentium comprend 65000 ports.

Informatique Microprocesseurs

- 18 -

Jacques BAUMANN Juin 2003

Systme informatique typique

Interruptions Il arrive frquemment qu'un priphrique ou un programme ncessite une instruction que seule le microprocesseur peut effectuer. A cet effet, il est possible d'interrompre le microprocesseur quelques instants. Celui-ci va effectuer l'instruction demande, puis, une fois qu'elle est excute, reprend le travail initial. Il existe deux types d'interruptions: les interruptions matrielles provoques par les priphriques physiques, et les interruptions logicielles provoques par les programmes. Nous verrons ici les deux types d'interruptions. Il existe principalement deux faons de gnrer les interruptions matrielles. L'une par interrogation des E/S, l'autre par E/S pilotes par interruption.

Interrogation des E/S Dans la mthode d'interruption par interrogation des E/S, le microprocesseur interroge chaque priphrique tour de rle, via le multiplexeur. Ainsi, lorsqu'un priphrique besoin d'une interruption, il peut mettre sa requte quand le microprocesseur l'interroge. Si deux priphriques ncessitent une interruption en mme temps, le premier servi sera celui qui sera interrog en premier par le microprocesseur. Le schma ci-dessous montre cette faon d'mettre les interruptions.

Informatique Microprocesseurs

- 19 -

Jacques BAUMANN Juin 2003

Interruptions par interrogation des priphriques

E/S pilotes par interruption La mthode des E/S pilotes par interruption prsente des avantages certains. Le microprocesseur n'interroge pas les priphriques. Si un priphrique ncessite une interruption, il gnre lui-mme une demande d'interruption. Le microprocesseur arrte donc le programme en cours et traite l'instruction demande par le priphrique concern. Un numro de priorit est affect chaque priphrique. Un contrleur d'interruption programmable (PIC) est charg de grer les interruptions selon le numro des priphriques. Si deux priphriques ncessitent une interruption en mme temps, le priphrique qui prsente le numro de priorit le plus lev sera trait en premier. L'image ci-dessous reprsente ce mode d'interruption.

Informatique Microprocesseurs

- 20 -

Jacques BAUMANN Juin 2003

E/S pilotes par interruption

Interruptions logicielles Les interruptions logicielles sont semblables aux interruptions matrielles. L'unique diffrence rside dans le fait que les interruptions logicielles sont mises par des programmes. Les cinq premires interruptions sont dfinies par Intel. Les autres interruptions sont dfinies par le DOS et le BIOS. Ces interruptions ont une fonction dfinie, par exemple la lecture et l'criture sur le disque, l'criture des donnes l'cran, etc.

Accs direct la mmoire (DMA) Lorsqu'un transfert en mmoire est ncessaire de la mmoire RAM un port d'E/S, l'UCT lit le premier octet en mmoire et le charge dans l'un des registres du microprocesseur. L'UCT crit ensuite l'octet rang prcdemment sur le port d'E/S appropri. Il en rsulte que le microprocesseur effectue des oprations de lecture et d'criture rptes. Ainsi un certain temps est perdu entre le traitement de chaque octet. Pour remdier ce problme, nous avons mis au point l'accs direct la mmoire (Direct Memory Acess), qui permet de transfrer des donnes de la mmoire RAM au port d'E/S sans passer par le microprocesseur. Pour cela, nous ajoutons un contrleur DMA, qui reprend le rle de l'UCT, c'est dire qu'il gre les transferts de la RAM aux ports d'E/S. Le processus de transfert passant par l'UCT est illustr ci-dessous. Le parcours des donnes est illustr en vert.

Informatique Microprocesseurs

- 21 -

Jacques BAUMANN Juin 2003

Transfert utilisant l'UCT

Le concept du transfert direct par la mmoire est illustr ci-dessous. Observez que l'UCT n'est pas active durant le transfert, car elle est remplace par le contrleur DMA.

Transfert DMA n'utilisant pas l'UCT

Type CISC Tous les microprocesseurs que nous avons mentionns jusqu' maintenant sont de type CISC (Complex Intruction Set Computer). Toute la famille de microprocesseurs x86 est de type CISC. Ce type de microprocesseur peut traiter des instructions complexes, directement graves dans le silicium de la puce, pour augmenter la rapidit. Ces instructions sont graves dans le silicium car elles sont trop complexes
Informatique Microprocesseurs Jacques BAUMANN Juin 2003

- 22 -

pour tre ralises l'aide d'un programme interne. L'ajout de ces instructions augmente le prix du microprocesseur CISC. Le microprocesseur CISC ne peut traiter qu'une instruction la fois. De plus, les instructions complexes ne peuvent pas toutes tre traites en un seul cycle d'horloge. Les microprocesseurs courants fabriqus par Intel, AMD ou Cyrix sont de type CISC.

Type RISC Le microprocesseur de type RISC (Reduced Instruction Set Computer) n'a pas de fonctions supplmentaires graves dans la puce de silicium. Il en rsulte que les programmes utilisant ce type de microprocesseur doivent utiliser des instructions simples interprtables par le microprocesseur. Cela implique une programmation plus complexe et des compilateurs plus puissants. Les microprocesseurs RISC ncessitent galement de plus grandes quantits de mmoire. En revanche, les instructions tant simplifies, elles peuvent toutes tre excutes en un seul cycle d'horloge. De plus, ce type de microprocesseur est capable de traiter plusieurs instructions en mme temps. Les microprocesseurs fabriqus par Motorola sont de type RISC.

Programmation en assembleur Tout programme doit tre transform en langage machine (suite de code binaire) pour tre comprhensible par les circuits internes du microprocesseur. Le langage machine peut tre entr manuellement, mais cette tche est complexe et sujette de nombreuses erreurs. Le langage assembleur est le niveau suprieur au langage machine, et est utilis uniquement dans la programmation des microprocesseurs et autres composants semi-conducteurs complexes.

Informatique Microprocesseurs

- 23 -

Jacques BAUMANN Juin 2003

Vous aimerez peut-être aussi