Introduction sur les systemes a base de microprocesseur

I ) Architecture d'un système à base de microprocesseur :

Un système à base de microprocesseur est formé des trois éléments :

- Une unité CPU (central processing unit )

- Une mémoire (ROM et RAM)

- Des ports d'entrées/sorties.

Les  trois  modules  sont  interconnectés  comme  le  montre  la  figure suivante autour de trois bus : bus de données, bus d'adresses et bus de contrôles et commandes

Bus : Il s'agit de plusieurs pistes électroniques qui sont reliées au microprocesseur. Ces bus assurent la communication interne et externe du microprocesseur.

Structure interne d'un microprocesseur

- Le bus de données : c'est un ensemble de fils bidirectionnels qui va permettre le transfert de données entre les différents éléments du système. C'est par ce bus que sont transmises les données qui doivent être traitées par le microprocesseur. A l'inverse, c'est également par ce bus que transitent les résultats en sortie du microprocesseur. Autrement dit, toutes les données entrantes et sortantes du microprocesseur sont véhiculées par le bus de données qui fixe la longueur du mot échangé avec la mémoire.

-  Le  bus  d'adresses :  il  permet  d'adresser  un  élément  par  le microprocesseur .il est unidirectionnel .il détermine la capacité maximale d'adressage du système, c'est à dire le nombre maximum de mots de la mémoire associée (ex : 16 bits "adressent" 64 Kmots).

- Le bus de commandes et de contrôle : c'est un bus qui permet de véhiculer les signaux de contrôles et de commandes tels que l'horloge les signaux  Rd/Wr  etc  ...  Ce  bus  sert  à  coordonner  tous  les  échanges d'informations décrits précédemment. Il véhicule des données qui valident la mémoire et les ports d'entrées ) sorties. Il introduit des délais d'attente lorsque des informations sont envoyées à un périphérique qui présente une vitesse de traitement réduite. Le bus de commandes évite les conflits de bus lorsque deux éléments cherchent à communiquer en même temps.

Remarque :

Dans  certains  cas,  le  bus  de  données  et  le  bus  d'adresses  sont multiplexés sur un seul bus. Une logique externe doit alors effectuer le démultiplexage.

-La mémoire sert au rangement de deux types d'informations :

-Des données : les informations traitée par le microprocesseur.

-Des  instructions : ensemble  d'informations  codées  qui  gère l'activité du  microprocesseur.

Remarque :

La mémoire morte (ROM : Read Only Memory) range en général le programme d'initialisation du système (exemple dans le PC elle range le BIOS : Basic Input Ouput systeme ) .

La mémoire vive (RAM : Random Axes Memory) sert au rangement des programmes utilisateurs c'est une mémoire volatile.

- Les interfaces d'entrées sorties vont permettre au microprocesseur de communiquer avec le monde extérieur, Nous trouvons des ports utilisés exclusivement pour l'entrée, et d'autres ports exclusivement pour la sortie. Il existe aussi des ports bidirectionnels. Donc le microprocesseur peut lire des données à partir d'une interface d'entrée (exemple souris, clavier disque dur, Etc. ...) de même il peut restituer le résultat de son traitement au monde extérieur en adressent des interfaces de sortie (tel que les imprimantes le clavier  etc.  ...)  donc  les  interfaces  d'entrées  /  sorties  vont  soulager  le microprocesseur pour la communication avec le monde extérieur .

Le microprocesseur doit Donc contrôler les fonctions effectuées par les autres modules, il doit chercher ainsi que décoder des instructions ranger en mémoire, et il doit adresser des interfaces d'entrées/sorties pour lire des données du monde extérieur, et restituer le résultat de son traitement.

II ) Architecture d'un CPU :

Une CPU est formée par les trois éléments fonctionnels interconnectés suivants :

► Registres.

► UAL : Unité arithmétique et logique.

► Circuit de contrôle.

II-1 ) Les registres :

II-1-1 ) L'accumulateur :

Il  s'agit  d'un  registre  d'usage  général  recevant  des  opérandes,  des résultats intermédiaires ou des résultats provenant de l'unité arithmétique et logique. Ils évitent des appels fréquents à la mémoire, réduisant ainsi les temps de calcul. Donc la plupart des opérations arithmétiques et logiques se font dans l'accumulateur.

II-1-2 ) Le compteur de programme :

Le compteur de programme contient l'adresse (décalage ou offset) de l'instruction suivante en mémoire qui doit être exécutée. Autrement dit, il doit indiquer au processeur la prochaine instruction à exécuter. Le registre compteur  de  programme  est  constamment  modifié  après  l'exécution  de chaque   instruction   afin   qu'il   pointe   sur   l'instruction   suivante.   Les microprocesseurs  de  la  famille  x86  dépendent  entièrement  du  registre compteur de programme pour connaître l'instruction suivante.

II-1-3 ) Registre d'instruction et décodeur d'instruction :

II-1-3-1 ) Le registre d'instruction :

Chaque opération que le microprocesseur va effectuer est codée (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 « opération code » , pour exécuter une instruction le microprocesseur transmet l'adresse se trouvant dans le registre compteur de programme à la mémoire , la mémoire 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  exécutée  par  le  processeur.  Cette instruction  sera acheminée (par un bus de données) au décodeur d'instructions qui sera chargé de l'interpréter.

II-1-3-2 ) Le décodeur d'instruction :

                C'est  lui  qui  va  interpréter  l'instruction  contenue  dans  le registre  d'instruction  (RI).  C'est-à-dire  qu'elle  est  l'opération  à  effectuer (Addition,  branchement  etc...)  Et  comment  aller  chercher  les  opérandes requises pour cette opération (par exemple, les nombres à additionner). Le décodeur d'instructions communique alors avec l'unité de commandes et de contrôles  qui  pourra  déclencher  les  événements  en  conséquence.  Par exemple, si le décodeur d'un 8086 reçoit l'octet 10000001 (le "Add mem/reg data"),  il  sait  que  le  processeur  doit  aller  chercher  3  autres  octets  en mémoire vive pour compléter l'instruction.

II-1-4/ Registres d'adresses :

Ces registres servent à gérer l'adressage de la mémoire. En effet le processeur peut utiliser un registre ou une paire de registres pour accéder à un emplacement mémoire, et puisque les registres peuvent être incrémenter ou  décrémenter  donc  on  peut  accéder  facilement  à  des  données  qui  se trouvent en mémoire d'une manière adjacente (tel que les tableaux)

II-1-5 Registre d'état (FLAGS) :

Le registre d'état FLAG sert à contenir l'état de certaines opérations effectuées par le processeur. Par exemple, quand le résultat d'une opération est trop grand pour être contenu dans le registre cible (celui qui doit contenir le résultat de l'opération), un bit spécifique du registre d'état (le bit OF) est mis à 1 pour indiquer le débordement

II-2 ) L'unité arithmétique et logique (UAL):

Comme  son  nom  l'indique,  cette  unité  peut  exécuter  deux  types d'opérations.

  - Opérations arithmétiques

Elles incluent l'addition et la soustraction qui sont des opérations de base (une  soustraction  est  une  addition  avec  le  complément  à  deux),  la multiplication  et la  division. Les données traitées sont considérées dans des représentations entières.

   - Opérations logiques

Ces opérations sont effectuées bit à bit sur les bits de même poids de deux mots, tel que ET, OU, NOT OU EXCLUSIF, de même les opérations de rotation et de décalage (arithmétique et logique)

Elle  reçoit  ses  opérandes  (les  octets  qu'elle  manipule)  du  bus  de données. Celles-ci peuvent provenir de registres ou de la mémoire. A la fin d'une opération, l'UAL peut aller modifier certains bits du registre d'état

(FLAG). Par exemple, dans le cas du débordement d'une addition (que le résultat de l'addition est trop grand pour entrer dans un registre), l'UAL va mettre le bit de débordement du FLAG à 1.

II-3 ) Unité de contrôle et commande :

Synchronisée par le signal de l'horloge, c'est elle qui déclenche les événements dans le processeur (on peut remarquer à ce sujet qu'elle est connectée à toutes les autres composantes du processeur). Par exemple, quand une information passe dans un bus, cette information est destinée à un seul endroit (par exemple, un registre). C'est donc l'unité de commande et de  contrôle  qui  va  "déverrouiller"  l'entrée  de  cette  destination  pour  que l'information qui circule sur le bus puisse y entrer (et ne pas entrer ailleurs en même temps).

Il s'agit donc essentiellement d'un automate exécutant les différentes séquences propres à chaque instruction. Cet automate peut être réalisé de plusieurs façons (câbler ou micro-programmer et dans les deux cas le jeu d'instructions est fixe). La plupart des unités de traitement sont micro- programmées et donc à jeux d'instructions fixes.

III ) Fonctionnement d'un système à base de microprocesseur :

III-1 ) Les interruptions :

Les   interruptions   permettent   au   matériel   (périphérique)      de communiquer  avec  le  processeur.  Dans  certains  cas,  on  désire  que  le processeur réagisse rapidement à un évènement extérieur : arrivée d'un paquet de données sur une connexion réseau, frappe d'un caractère au clavier, modification de l'heure. Les interruptions sont surtout utilisées pour la gestion des périphériques de l'ordinateur, en effet les systèmes à base de microprocesseurs peuvent comporter plusieurs éléments matériels 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 périphériques n'ont besoin du microprocesseur qu'à certains moments. Si un périphérique nécessite une intervention, il génère lui-même une demande d'interruption.

Une interruption est signalée au processeur par un signal électrique sur une borne spéciale. Lors de la réception de ce signal, le processeur (traite) l'interruption dès la fin de l'instruction qu'il était en train d'exécuter. Le traitement de l'interruption consiste soit :

-   à  l'ignorer  et  passer  normalement  à  l'instruction  suivante : c'est possible    uniquement    pour    certaines    interruptions,    nommées interruptions masquables. Il est en effet parfois nécessaire de pouvoir ignorer les interruptions pendant un certain temps, pour effectuer des traitements  très  urgents  par  exemple.  Lorsque  le  traitement  est terminé, le processeur  démasque  les interruptions et les prend alors en compte.

-   à exécuter un  traitant d'interruption  (interrupt handler). Un traitant d'interruption  est  un  programme  qui  est  appelé  automatiquement lorsqu'une interruption survient. L'adresse de début du traitant est donnée  par  la  table  des vecteurs   d'interruptions  (voir  chapitre interruption).

Remarque :

Parfois le microprocesseur est sollicité par plusieurs interruptions en même temps, pour répondre à ces appels un ordre de priorité est souvent pris en compte pour leurs traitements.

Les   interruptions   augmentent   considérablement   l'efficacité   du processeur.

Les interruptions sont de deux types :

*    Interruption matérielle.

*    Interruption logicielle.

III-2 /L'écriture en mémoire (WRITE):

Pour  écrire  une  donnée  dans  la  mémoire  le  microprocesseur  doit placer l'adresse de la donnée sur le bus d'adresses (son emplacement dans la mémoire) puis il place la donnée sur le bus de données et enfin génère le signal WRITE (ordre d'écriture dans la mémoire).

 

III-3 ) La lecture de la mémoire (READ):

La lecture de la mémoire (READ) étape 1

Pour lire une donnée de la mémoire le microprocesseur doit connaître son emplacement, en effet il dépose son adresse sur le bus d'adresses puis génère le signal READ (il demande une opération de lecture de la mémoire) alors la donnée sera acheminée vers le microprocesseur à travers le bus de données. La donnée sera stockée dans un registre dans le microprocesseur.

La lecture de la mémoire (READ) étape 2

Remarque :

Si la donnée est un code opératoire d'une instruction alors elle sera logée dans le registre d'instructions sinon elle sera logée dans un registre de données (en général 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 périphériques pour terminer leurs opérations (Notamment la mémoire), en effet en général dans la plupart des systèmes à base de microprocesseur on trouve  toujours  des  circuits  intermédiaires  entre  la  CPU  et  la  mémoire comme le montre la figure suivante :

Wait Stat (temps d'attente pour la synchronisation)

Ces circuits entraînent toujours des temps de retard supplémentaires ce qui oblige le microprocesseur à utiliser des Wait Stat (temps de retard) pour  synchroniser  les  transferts  entre  la  mémoire  et  la  CPU  .la  figure précédente montre que le microprocesseur perd environ 10 ns pour avoir l'information à cause du décodage et la bufférisation du bus.

Remarque :

Parfois  le  microprocesseur  utilise  plus  qu'un  seul  Wait  Stat  pour synchroniser  avec  ces  périphériques  (tout  dépend  du  temps  que  le périphérique demande pour achever son fonctionnement)

III- 5 /Communication avec les entrées/sorties :

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

Les  données  échangées  entre  un  périphérique et   le processeur transitent par l'interface (ou contrôleur) associé à ce périphérique .L'interface possède de la mémoire tampon pour stocker les données échangées (suivant le type d'interface,  cette  mémoire  tampon  fait  de  1  seul  octet  à  quelques Méga-octets).L'interface   stocke   aussi   des   informations   pour   gérer   la communication avec le périphérique :

- des informations de commande, pour définir le mode de fonctionnement de l'interface:   sens      de   transfert (entrée ou      sortie), mode    de   transfert  des données   (par   scrutation   ou   interruption),  etc.    Ces  informations de commandes sont communiquées à l'interface lors de la phase d'initialisation de celle-ci, avant le début du transfert.

- des informations d'état, qui mémorisent la manière dont le transfert c'est effectué (erreur de transmission, réception d'informations, etc). Ces informations sont destinées au processeur.

Lors de l'exécution des instructions d'entrées/sorties, le processeur met à 1 sa borne IO/M et présente l'adresse E/S sur le bus d'adresse. Le signal IO/M indique aux circuits de décodage d'adresses qu'il ne s'agit pas d'une  adress en  mémoire  principale,  mais  de  l'adresse  d'une  interface d'entrées/sorties.

Remarque :

La   communication   entre   le   microprocesseur   et   les  interfaces d' entrées/sorties peut être série (sur un seul fil bit par bit) ou parallèle (sur plusieurs fils)

III -6 ) Accès direct à la mémoire (DMA)

Lorsqu'un transfert en mémoire est nécessaire de la mémoire RAM à un port d'E/S, la CPU lit le premier octet en mémoire et le charge dans l'un des  registres  du  microprocesseur.  La  CPU  écrit  ensuite  l'octet  rangé précédemment sur le port d'E/S approprié.

Il en résulte que le microprocesseur effectue des opérations de lecture et d'écriture répétées. Ainsi un certain temps est perdu entre le traitement de chaque octet. Pour remédier à ce problème, une procédure est  mise au point pour  l'accès  direct  à  la  mémoire  (Direct  Memory  Acess),  qui  permet  de transférer des données de la mémoire RAM au port d'E/S sans passer par le microprocesseur. Pour cela, un contrôleur DMA, qui reprend le rôle de la CPU, c'est à dire qu'il gère les transferts de la RAM aux ports d'E/S.

cours microprocesseur architecture CPU registres accumulateur compteur de programme décodeur d'instruction UAL interruptions

Révisé le :11-11-2017 www.technologuepro.com Facebook Twitter RSS