Vous êtes sur la page 1sur 8

LES SYSTEMES A BASE DE MICROPROCESSEUR L'apparition des microprocesseurs date du dbut des annes 1970.

A cette poque, deux vnements favorables sont apparus :


le concept de "LSI (Large Scale Integration)" permettant d'intgrer plusieurs milliers de portes sur un mme substrat. l'arrive maturit de la technologie MOS caractrise par sa faible consommation.

La conjugaison de ces vnements a permis de regrouper une unit centrale d'ordinateur dans un seul circuit intgr appel "microprocesseur". Depuis, une multitude de composants de ce type sont apparus au sein de familles provenant essentiellement de grands constructeurs amricains : Intel, Motorola, Advanced Micro Devices (AMD), Texas Instruments,... et japonais : NEC, Mitsubishi,... Grce aux progrs de l'intgration, l'augmentation des performances a port sur :

la vitesse de fonctionnement. la largeur des mots traits (8, 16, 32, 64 bits). le nombre et la complexit des oprations ralisables.

L'intgration a galement permis de rassembler le microprocesseur et les lments associs (mmoire, organes d'entre-sortie,...) au sein d'un seul circuit appel "microcontrleur". Ce type de composant s'est rpandu dans un trs grand nombre de domaines (tlcommunications, tlvision, lectromnager, hifi...). L'objectif de ce cours est double : prsenter les notions de base ncessaires la comprhension des systmes utilisant des microprocesseurs et raliser des travaux pratiques permettant de programmer en langage machine (assembleur) une application d'acquisition de donnes.

I ) Architecture d'un systme base de microprocesseur :


Un systme base de microprocesseur est form des trois lments : - Une unit CPU (central processing unit ) - Une mmoire (ROM et RAM) - Des ports d'entres/sorties. Les trois modules sont interconnects comme le montre la figure suivante autour de trois bus : bus de donnes, bus d'adresses et bus de contrles et commandes Bus : Il s'agit de plusieurs pistes lectroniques qui sont relies au microprocesseur. Ces bus assurent la communication interne et externe du microprocesseur.

- Le bus de donnes : c'est un ensemble de fils bidirectionnels qui va permettre le transfert de donnes entre les diffrents lments du systme. C'est par ce bus que sont transmises les donnes qui doivent tre traites par le microprocesseur. A l'inverse, c'est galement par ce bus 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 qui fixe la longueur du mot chang avec la mmoire. - Le bus d'adresses : il permet d'adresser un lment par le microprocesseur .il est unidirectionnel .il dtermine la capacit maximale d'adressage du systme, c'est dire le nombre maximum de mots de la mmoire associe (ex : 16 bits "adressent" 64 Kmots). - Le bus de commandes et de contrle : c'est un bus qui permet de vhiculer les signaux de contrles et de commandes tels que l'horloge les signaux Rd/Wr etc ... Ce bus sert coordonner tous les changes d'informations dcrits prcdemment. Il vhicule des donnes qui valident la mmoire et les ports d'entres ) sorties. Il introduit des dlais d'attente lorsque des informations sont envoyes un priphrique qui prsente une vitesse de traitement rduite. Le bus de commandes vite les conflits de bus lorsque deux lments cherchent communiquer en mme temps. Remarque : Dans certains cas, le bus de donnes et le bus d'adresses sont multiplexs sur un seul bus. Une logique externe doit alors effectuer le dmultiplexage. -La mmoire sert au rangement de deux types d'informations : -Des donnes : les informations traite par le microprocesseur. -Des instructions : ensemble d'informations codes qui gre l'activit du microprocesseur.

Remarque : La mmoire morte (ROM : Read Only Memory) range en gnral le programme d'initialisation du systme (exemple dans le PC elle range le BIOS : Basic Input Ouput systeme ) . La mmoire vive (RAM : Random Axes Memory) sert au rangement des programmes utilisateurs c'est une mmoire volatile. - Les interfaces d'entres sorties vont permettre au microprocesseur de communiquer avec le monde extrieur, Nous trouvons des ports utiliss exclusivement pour l'entre, et d'autres ports exclusivement pour la sortie. Il existe aussi des ports bidirectionnels. Donc le microprocesseur peut lire des donnes partir d'une interface d'entre (exemple souris, clavier disque dur, Etc. ...) de mme il peut restituer le rsultat de son traitement au monde extrieur en adressent des interfaces de sortie (tel que les imprimantes le clavier etc. ...) donc les interfaces d'entres / sorties vont soulager le microprocesseur pour la communication avec le monde extrieur. Le microprocesseur doit Donc contrler les fonctions effectues par les autres modules, il doit chercher ainsi que dcoder des instructions ranger en mmoire, et il doit adresser des interfaces d'entres/sorties pour lire des donnes du monde extrieur, et restituer le rsultat de son traitement.

II ) Architecture d'un CPU :


Une CPU est forme par les trois lments fonctionnels interconnects suivants : Registres. UAL : Unit arithmtique et logique. Circuit de contrle.

II-1 ) Les registres :


II-1-1 ) L'accumulateur : Il s'agit d'un registre d'usage gnral recevant des oprandes, des rsultats intermdiaires ou des rsultats provenant de l'unit arithmtique et logique. Ils vitent des appels frquents la mmoire, rduisant ainsi les temps de calcul. Donc la plupart des oprations arithmtiques et logiques se font dans l'accumulateur. II-1-2 ) Le compteur de programme : Le compteur de programme contient l'adresse (dcalage ou offset) de l'instruction suivante en mmoire qui doit tre excute. Autrement dit, il doit indiquer au processeur la prochaine instruction excuter. Le registre compteur de programme 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 compteur de programme pour connatre l'instruction suivante. II-1-3 ) Registre d'instruction et dcodeur d'instruction :
II-1-3-1 ) Le registre d'instruction :

Chaque opration que le microprocesseur va effectuer est code (c'est--dire pour chaque instruction on assigne un code qui ne peut pas tre modifi ni chang par un autre code) appel instruction code ou opration code , pour excuter une instruction le microprocesseur transmet l'adresse se trouvant dans le registre compteur de programme la mmoire , la mmoire retourne au microprocesseur l'octet adresse par ce dernier ( le code de l'instruction) celui-ci sera stocker dans un registre appel registre d'instructions (RI) , donc Le registre d'instructions contient la prochaine

instruction tre excute par le processeur. Cette instruction sera achemine (par un bus de donnes) au dcodeur d'instructions qui sera charg de l'interprter.

II-1-3-2 ) Le dcodeur d'instruction :


C'est lui qui va interprter l'instruction contenue dans le registre d'instruction (RI). C'est--dire qu'elle est l'opration effectuer (Addition, branchement etc...) Et comment aller chercher les oprandes requises pour cette opration (par exemple, les nombres additionner). Le dcodeur d'instructions communique alors avec l'unit de commandes et de contrles qui pourra dclencher les vnements en consquence. Par exemple, si le dcodeur d'un 8086 reoit l'octet 10000001 (le "Add mem/reg data"), il sait que le processeur doit aller chercher 3 autres octets en mmoire vive pour complter l'instruction. II-1-4/ Registres d'adresses : Ces registres servent grer l'adressage de la mmoire. En effet le processeur peut utiliser un registre ou une paire de registres pour accder un emplacement mmoire, et puisque les registres peuvent tre incrmenter ou dcrmenter donc on peut accder facilement des donnes qui se trouvent en mmoire d'une manire adjacente (tel que les tableaux) II-1-5 Registre d'tat (FLAGS) : Le registre d'tat FLAG sert contenir l'tat de certaines oprations effectues par le processeur. Par exemple, quand le rsultat d'une opration est trop grand pour tre contenu dans le registre cible (celui qui doit contenir le rsultat de l'opration), un bit spcifique du registre d'tat (le bit OF) est mis 1 pour indiquer le dbordement

II-2 ) L'unit arithmtique et logique (UAL):


Comme son nom l'indique, cette unit peut excuter deux types d'oprations. - Oprations arithmtiques Elles incluent l'addition et la soustraction qui sont des oprations de base (une soustraction est une addition avec le complment deux), la multiplication et la division. Les donnes traites sont considres dans des reprsentations entires. - Oprations logiques Ces oprations sont effectues bit bit sur les bits de mme poids de deux mots, tel que ET, OU, NOT OU EXCLUSIF, de mme les oprations de rotation et de dcalage (arithmtique et logique) Elle reoit ses oprandes (les octets qu'elle manipule) du bus de donnes. Celles-ci peuvent provenir de registres ou de la mmoire. A la fin d'une opration, l'UAL peut aller modifier certains bits du registre d'tat (FLAG). Par exemple, dans le cas du dbordement d'une addition (que le rsultat de l'addition est trop grand pour entrer dans un registre), l'UAL va mettre le bit de dbordement du FLAG 1.

II-3 ) Unit de contrle et commande :


Synchronise par le signal de l'horloge, c'est elle qui dclenche les vnements dans le processeur (on peut remarquer ce sujet qu'elle est connecte toutes les autres composantes du processeur). Par exemple, quand une information passe dans un bus, cette information est destine un seul endroit (par exemple, un registre). C'est donc l'unit de commande et

de contrle qui va "dverrouiller" l'entre de cette destination pour que l'information qui circule sur le bus puisse y entrer (et ne pas entrer ailleurs en mme temps). Il s'agit donc essentiellement d'un automate excutant les diffrentes squences propres chaque instruction. Cet automate peut tre ralis de plusieurs faons (cbler ou micro-programmer et dans les deux cas le jeu d'instructions est fixe). La plupart des units de traitement sont micro- programmes et donc jeux d'instructions fixes.

III ) Fonctionnement d'un systme base de microprocesseur :


III-1 ) Les interruptions :
Les interruptions permettent au matriel (priphrique) de communiquer avec le processeur. Dans certains cas, on dsire que le processeur ragisse rapidement un vnement extrieur : arrive d'un paquet de donnes sur une connexion rseau, frappe d'un caractre au clavier, modification de l'heure. Les interruptions sont surtout utilises pour la gestion des priphriques de l'ordinateur, en effet les systmes base de microprocesseurs peuvent comporter plusieurs lments matriels tels que l'cran, les lecteurs de CD, lecteurs de DVD, les ADC (Analog to digital converter) et DAC (digital to analog converter ) etc...mais la majorit de ces priphriques n'ont besoin du microprocesseur qu' certains moments. Si un priphrique ncessite une intervention, il gnre lui-mme une demande d'interruption. Une interruption est signale au processeur par un signal lectrique sur une borne spciale. Lors de la rception de ce signal, le processeur (traite) l'interruption ds la fin de l'instruction qu'il tait en train d'excuter. Le traitement de l'interruption consiste soit : - l'ignorer et passer normalement l'instruction suivante : c'est possible uniquement pour certaines interruptions, nommes interruptions masquables. Il est en effet parfois ncessaire de pouvoir ignorer les interruptions pendant un certain temps, pour effectuer des traitements trs urgents par exemple. Lorsque le traitement est termin, le processeur dmasque les interruptions et les prend alors en compte. - excuter un traitant d'interruption (interrupt handler).Un traitant d'interruption est un programme qui est appel automatiquement lorsqu'une interruption survient. L'adresse de dbut du traitant est donne par la table des vecteurs d'interruptions (voir chapitre interruption). Remarque : Parfois le microprocesseur est sollicit par plusieurs interruptions en mme temps, pour rpondre ces appels un ordre de priorit est souvent pris en compte pour leurs traitements. Les interruptions augmentent considrablement l'efficacit du processeur. Les interruptions sont de deux types : * * Interruption matrielle. Interruption logicielle.

III-2 /L'criture en mmoire (WRITE):


Pour crire une donne dans la mmoire le microprocesseur doit placer l'adresse de la donne sur le bus d'adresses (son emplacement dans la mmoire) puis il place la donne sur le bus de donnes et enfin gnre le signal WRITE (ordre d'criture dans la mmoire).

III-3 ) La lecture de la mmoire (READ):

Pour lire une donne de la mmoire le microprocesseur doit connatre son emplacement, en effet il dpose son adresse sur le bus d'adresses puis gnre le signal READ (il demande une opration de lecture de la mmoire) alors la donne sera achemine vers le microprocesseur travers le bus de donnes. La donne sera stocke dans un registre dans le microprocesseur.

Remarque : Si la donne est un code opratoire d'une instruction alors elle sera loge dans le registre d'instructions sinon elle sera loge dans un registre de donnes (en gnral l'accumulateur)

III-4 ) Wait Stat (temps d'attente pour la synchronisation) :


Le Wait Stat n'est qu'un temps d'attente qu'il faut donner certains priphriques pour terminer leurs oprations (Notamment la mmoire), en effet en gnral dans la plupart des systmes base de microprocesseur on trouve toujours des circuits intermdiaires entre la CPU et la mmoire comme le montre la figure suivante :

Ces circuits entranent toujours des temps de retard supplmentaires ce qui oblige le microprocesseur utiliser des Wait Stat (temps de retard) pour synchroniser les transferts entre la mmoire et la CPU. La figure prcdente montre que le microprocesseur perd environ 10 ns pour avoir l'information cause du dcodage et la buffrisation du bus. Remarque : Parfois le microprocesseur utilise plus qu'un seul Wait Stat pour synchroniser avec ces priphriques (tout dpend du temps que le priphrique demande pour achever son fonctionnement)

III- 5 /Communication avec les entres/sorties :


Il peut s'agir d'un flux d'informations de l'extrieur vers l'ordinateur (Acquisition via le clavier, une connexion rseau, un disque dur, etc...), ou d'un flux de l'ordinateur vers l'extrieur (cran, rseau, disque, etc...).

Les donnes changes entre un priphrique et le processeur transitent par l'interface (ou contrleur) associ ce priphrique .L'interface possde de la mmoire tampon pour stocker les donnes changes (suivant le type d'interface, cette mmoire tampon fait de 1seul octet quelques Mga-octets).L'interface stocke aussi des informations pour grer la communication avec le priphrique : - des informations de commande, pour dfinir le mode de fonctionnement de l'interface: sens de transfert (entre ou sortie), mode de transfert des donnes (par scrutation ou interruption), etc. Ces informations de commandes sont communiques l'interface lors de la phase d'initialisation de celle-ci, avant le dbut du transfert. - des informations d'tat, qui mmorisent la manire dont le transfert c'est effectu (erreur de transmission, rception d'informations, etc). Ces informations sont destines au processeur. Lors de l'excution des instructions d'entres/sorties, le processeur met 1 sa borne IO/M et prsente l'adresse E/S sur le bus d'adresse. Le signal IO/M indique aux circuits de dcodage d'adresses qu'il ne s'agit pas d'une adress en mmoire principale, mais de l'adresse d'une interface d'entres/sorties. Remarque : La communication entre le microprocesseur et les interfaces dentres/sorties peut tre srie (sur un seul fil bit par bit) ou parallle (sur plusieurs fils)

III -6 ) Accs direct la mmoire (DMA)


Lorsqu'un transfert en mmoire est ncessaire de la mmoire RAM un port d'E/S, la CPU lit le premier octet en mmoire et le charge dans l'un des registres du microprocesseur. La CPU 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, une procdure est mise au point pour 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, un contrleur DMA, qui reprend le rle de la CPU, c'est dire qu'il gre les transferts de la RAM aux ports d'E/S.