الاحلام الكبيرة
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


حب الوطن
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 les systèmes

اذهب الى الأسفل 
كاتب الموضوعرسالة
BOUGTOB
Admin
BOUGTOB


المساهمات : 14
تاريخ التسجيل : 06/10/2013
العمر : 39

les systèmes Empty
مُساهمةموضوع: les systèmes   les systèmes Icon_minitimeالأربعاء أكتوبر 09, 2013 6:03 pm

Introduction :
Toute opération logique ou arithmétique peut être effectuée soit par un circuit spécialise (logique câble) ou par un système a microprocesseur. Pour les systèmes simples , économiques qui demandent une grande rapidité d’exécution, la solution câblée est préférable. Par contre, lorsque systèmes deviennent complexes, l’emploi des microprocesseurs devient plus intéressant ou même nécessaire. De plus, une modification de la stratégie nécessite seulement la modification du contenu de la mémoire (logiciel), alors qu’en logique câblée la structure complète du système doit être recablee.          
Les microprocesseurs (up) ont fait leur apparition en 1971 avec Intel corporation qui avait introduit le 4004 (4bits) et le8008 (8bits). Maintenant, ils sont devenus une nécessite car on les trouve dans, pratiquement, tous les systèmes électroniques.
Ils sont même a l’origine de ce grand développement technologique.
Le nom ״ microprocesseurs״ provient de la réunion de deux mots :
- micro : intégration en un seul composant de faible encombrement
- processeur : commande d’une unité de logique programme.
Les microprocesseurs sont caractérises par les paramètres suivants :
- le nombre de bits transfères simultanément (4,8,16 ou 32 bits)
- l’ensemble des instructions (les opérations exécutables ainsi que les modes d’adressage).
- l’architecture du microprocesseur avec ses registres internes.
- la vitesse ou la durée d’exécution des instructions (μsec).
Les microprocesseurs les plus importants sont :
les microprocesseurs a״8״ bits (début d’apparition en 1971) :
       INTEL 8008                 ﴾1971﴿
       INTEL 8080                ﴾1973﴿
       MOTOROLA 6800     ﴾1974﴿
       ZILOG Z80                 ﴾1976﴿
       INTEL 8085                ﴾1977﴿
       MOTOROLA 6809
les microprocesseurs a “16” bits (début d’apparition en 1978) :
          INTEL  8086
          INTEL  8088
          MOTOROLA  68000
          ZILOG  Z8000
          NATIONAL  SEMICONDUCTOR NS  1600
les microprocesseurs a“32” bits (début d’apparition en 1986) :
           INTEL  8038
Systemes a microprocesseur .
Un système à microprocesseur est constitué de quatre types d'éléments :
- le microprocesseur, qui constitue l’unité centrale (CPU:central processing unit)
- les mémoires (ram, rom ’)
- les coupleurs de périphériques (es interfaces d'entrée/sortie) dont la fonction est d’assurer l’adaptation entre le microprocesseur et les dispositifs d’i/o (entrée/sortie ou input /output tels que le clavier, les afficheurs , l’écran ou la visu..).
C'est quatre éléments sont tous indispensables, si on souhaite avoir un système qui fonctionne et qui serve à quelque chose.
Le schéma fonctionnel d'une carte à microprocesseur n'a pas changé depuis le début des microprocesseurs. Pourtant l'évolution des techniques de fabrication a permis d'améliorer régulièrement les performances globales : vitesse et capacité de traitement. Pour mémoire les premiers microprocesseurs fonctionnaient à une fréquence d'horloge de 1MHz alors qu'aujourd'hui nous sommes au dessus du GHz dans les PC.
Les différents éléments communiquent par des ensembles de lignes que l'on nomme des bus. On distingue trois bus :
- le bus de données,
- le bus d'adresses,
- le bus de contrôle.














Architecture d'un MPU standard  :

Les compôsantes annexes :
Les différentes parties citées dans ce document constituent les éléments indispensables pour comprendre le fonctionnement de l'architecture de base d'un système à microprocesseur. Mais il y a bien d'autres composants qui sont utiles au bon fonctionnement d'une carte à base de microprocesseurs, par exemple les composants de gestion des adresses "'les décodeurs d'adresses"' qui permettent avec le microprocesseur d'établir le plan d'adressage (mapping) de la carte, et d'autres dont nous ne ferons pas référence ici dans le but de simplifier les choses mais que nous pouvons citer : la génération du signal d'horloge, la gestion des interruptions, la gestion du reset

Des constructeurs (Principaux)
Voici une liste, non exhaustive, de constructeurs de microprocesseurs, microcontrôleurs, mémoires et interfaces:
Advanced Micro Devices (AMD), Advanced RISC Machines (ARM), Atmel, Cyrix Corporation, Dallas Semiconductor, Digital Equipment Corp. (DEC/Alpha), Fujitsu Microelectronics, Harris Semiconductor, Hitachi Semiconductor, IBM Microelectronics, Intel, Integrated Device Technology, INMOS, Matra MHS, Microchip Technology, Mips Technologies, Mitsubishi Electronics, Motorola, National Semiconductor, NEC Electronics, Oki Semiconductor, Philips Semiconductor, Rockwell, SGS-Thomson, Siemens, SPARC, Sun microelectronics, Texas Instruments, Toshiba America Electronic Components, Western Digital, WSI, Zilog

Microprocesseur
Un microprocesseur est un circuit intégré complexe caractérisé par une très grande intégration et doté des facultés d'interprétation et d'exécution des instructions d'un programme.
Comme dans tout circuit intégré la technologie de fabrication impose au microprocesseur des caractéristiques:
- de temps de réponse qui se traduit par une plus ou moins grande vitesse d'exécution des instructions du programme.
- de consommation.
Fonction du microprocesseur
Le microprocesseur:
 organise l'enchaînement des tâches précisées dans la mémoire programme:
par une exploitation séquentielle des instructions situées aux adresses successives de la mémoire
 avec, éventuellement, des ruptures de séquence en fonction des sauts programmés.
 rythme et synchronise l'exécution de ces tâches.
 analyse le contenu du programme, sélectionne, gère et commande les circuits nécessaires à l'exécution de chaque tâche.
 prend en compte les informations extérieures au système.

Architecture interne du microprocesseur

l’unité centrale CPU (central processing unit) est constituée
 D’une unit arithmétique et logique (ALU : Arithmetic and logic unit).
 D’une section de commande(instruction decode and control)
 D’un groupe des registres internes
 D’une horloge pour la synchronisation des operations
 Des bus d’adresses, de donnes et de commandes.  
Unité arithmétique et logique
L'unité arithmétique et logique, abrégée UAL (ou bien ALU, Arithmetic Logic Unit en anglais), est l'organe de l'ordinateur chargé d'effectuer les calculs. Le plus souvent, l'UAL est incluse dans l'unité centrale ou le microprocesseur.
Les UAL peuvent être spécialisées ou pas. Les UAL élémentaires calculent sur des nombres entiers, et peuvent effectuer les opérations communes, que l'on peut séparer en quatre groupes :
1. Les opérations arithmétiques : addition, soustraction, changement de signe etc.,
2. les opérations logiques : compléments à un, à deux, ET, OU, OU-exclusif, NON, NON-ET etc.,
3. les comparaisons : test d'égalité, supérieur, inférieur, et leur équivalents « ou égal »,
4. éventuellement des décalages et rotations (mais parfois ces opérations sont externalisées).
Certaines UAL sont spécialisées dans la manipulation des nombres à virgule flottante, en simple ou double précision (on parle d'unité de calcul en virgule flottante ou floating point unit (FPU)) ou dans les calculs vectoriels. Typiquement, ces unités savent accomplir les opérations suivantes :
• additions, soustractions, changement de signe,
• multiplications, divisions,
• comparaisons,
• modulos
.Une UAL est schématisée comme sur la figure ci-contre.

Celle-ci possède deux entrées A et B sur lesquelles on présentera les données à traiter. L'entrée F désignera l'opération à effectuer. Enfin, celle-ci possède deux sorties, R qui sera le résultat de l'opération, et D les drapeaux qui indiqueront soit qu'il y a eu erreur (division par zéro, dépassement de capacité etc.), soit des codes conditions (supérieur, inférieur, égal à zéro etc.).

Cas du MC6800 :

En entrée, l’ALU dispose de deux registres (accumulateurs A et B) qui contiennent les deux opérandes sur lesquels Porte l’opération en cours ainsi que le résultat final. En Fonction des modalités de cette opération, des  “indicateurs” (z,n,v,c,h) peuvent être positionnes dans un           registre d’état“ ou condition code registre”(CCR)
L’unite de commande :
l’unite logique de commande, qui est la partie essentielle et la plus complexe du cpu, comprend :
 Un registre d’instruction
 Un decodeur d’instruction
 Une logique de cadencement et de commande
L’élément fondamental du fonctionnement du CPU est la séquence “extraction – décodage – exécution”. Lors du déroulement d’un programme, l’instruction est chargée dans “le registre d’instruction”.  sous forme d'un code op . Cet op – code est alors décode ou interprète par le “décodeur d’instruction” qui fournit tous les signaux de commande nécessaires pour l’exécution de cette  instruction.
les registres internes :
             les registres internes d’un microprocesseur ont pour de conserver les informations immédiatement disponibles a l’unité ALU. Le nombre et la fonction de ces registres sont permis les éléments les plus importants qui  différencient les microprocesseurs entre eux car ils         déterminent leur flexibilité.
Cas du MC 6800 :
Le nombre de registres internes du microprocesseur 6800 Est de six (6)
- trois (3) registres a“8” bits chacun (A,B,CCR) .
- trois (3) registres a“16” bits chacun (PC, IX, SP) .

Arichitecture interne du 68000
La figure ci-dessous illustre les différents registres constituants le 68000 ;
 16 registres 32 bits (D0 – D7, A0 – A7)
 Un registre 32 bits (Compteur de programme)
 Un registre 16 bits (Registre d’état)

1. Registres de données (D0-D7)
Chaque registre de données à une longueur de 32 bits.
Les opérandes de type OCTET occupent les 8 bits de poids faible.
Les opérandes de type MOT occupent les 16 bits de poids faible.
Les opérandes de type LONG MOT occupent la totalité des 32 bits du registre.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


Opérande OCTET

Opérande MOT
Opérande LONG MOT


2. Registres d’adresses (A0-A6)
Les 7 registres d’adresses ont une longueur de 32 bits, est contiennent une adresse sur 32 bits.
Les registres d’adresses n’utilisent que des opérandes de type MOT de 16 bits ou LONG MOT de 32 bits.

3. Registre d’état (SR : Status Register)
C’est un registre 16 bits divisé en deux octets :
 Octet de poids fort : octet SUPERVISEUR
 Octet de poids faible : octet UTILISATEUR
T S I2 I1 I0 N Z V C


a) Etude de l’octet UTILISATEUR
Les bits Carry (Retenue), Overflow (Débordement), Zero et Negative (Négation) sont des bits standards et  présents dans tous les microprocesseurs.

 Bit Retenu (C : Carry) : Ce bit est positionné à 1 si une retenue est générée sur le bit de poids fort lors d’une opération d’addition….,
 Bit Débordement (V : oVerflow) : Il est  positionné à 1 s’il y a eu débordement arithmétique, C’est à dire que le résultat ne peut être représenté dans la taille des opérandes. Sinon il est positionné à 0.
 Bit Zéro (Z : Zero) : Ce bit est positionné à 1 si le résultat d’une opération arithmétique nul. Sinon il est à 0.
Bit Négatif (N : Negative) :L’état 0 du bit N signifie que le résultat d’une opération est positif ou nul, et l’état 1 signifie que le résultat est négatif.
b) Etude de l’octet SUPERVISEUR
L’octet SUPERVISEUR du registre d’état contient des informations concernant l’état du système. L’octet UTILISATEUR, d’autre part, contient des informations sur l’état des bits du code condition (X, N, Z, V et C) concernant l’instruction ou le programme. Les bits de l’octet SUPERVISEUR ne pourront être altérés que lorsque le 68000 fonctionne dans le mode SUPERVISEUR.
 Le masque d’interruption (I0,I1,I2) :
Les 3 bits de poids faible de l’octet superviseur forment le masque d’interruption. Le 68000 fournit 7 niveaux d’interruptions. Le niveau d’une interruption est décodé à partir des signaux externes provenants des 3 broches IPL0, IPL1 et IPL2 du 68000. Les priorités d’interruption sont numérotées de 1 à 7, avec celle de niveau 7 qui a la plus haute priorité.
L’interruption de niveau 7 est non masquable et ne peut pas être désactivée. Le niveau 0 signifie qu’il n y a pas de demande d’interruption. Les interruptions de niveau 1 à 6 peuvent être activées ou désactivées par masque.
Niveau d’interruption Masque d’interruption
I2 I1 I0
Niveau 7
Niveau 6
Niveau 5
Niveau 4
Niveau 3
Niveau 2
Niveau 1
Niveau 0 1
1
1
1
0
0
0
0 1
1
0
0
1
1
0
0 1
0
1
0
1
0
1
0

Exemple :
Si le masque est positionné à 100, seulement les niveaux d’interruptions 5,6 et 7 qui seront activés, et les interruptions de niveau 1 à 4 sont désactivées, c’est à dire que les demandes d’interruption de niveau 1 à 4 seront ignorées par le processeur.
 Bit S : Ce bit spécifie si le processeur fonctionne en mode utilisateur ou superviseur. Lorsqu’il est à 1 le processeur est en mode superviseur
 Bit T (Trace) : Après l’exécution de chaque instruction le bit T est testé de manière interne par le processeur. Si ce bit est à 1 le processeur est en mode TRACE, ce qui provoque une EXCEPTION (équivalent à une interruption logicielle) et un programme de Trace sera appelé et exécuté. Sinon (T = 0) l’instruction suivante sera exécutée.
4. Compteur de programme (PC : Program Counter)
Le compteur de programme est un registre 32 bits, il contient l’adresse de l’instruction en cours d’exécution. Durant l’exécution d’une instructions ou la procédure de traitement d’une exception, le processeur incrémente automatiquement le contenu du PC ou place la nouvelle adresse dans le PC.
Le bus d’adresse ne comprend que 23 broches (A1-A23).
5. Pointeur de pile (SP : Stack Pointer) [Démonstration JSR et RTS dans PROGIC2]
Chaque mode de fonctionnement du 68000 (utilisateur ou superviseur) utilise son propre pointeur de pile. Mais ils ont la même adresse A7.
Les règles applicables aux registres d’adresses sont valables pour les pointeurs de pile. En particulier les accès à la pile portent toujours sur des mots ou des long mots.
Les deux pointeurs de pile fonctionne de la même manière ; le pointeur se déplace d’en haut vers le bas de la mémoire. A l’appel d’un sous-programme, le contenu du compteur de programme est transféré vers la pile appropriée (Superviseur ou Utilisateur). A la fin du sous-programme le contenu du compteur de programme sera restauré de la pile vers le registre PC par une instruction de retour.
Le registre compteur de programme est constitué de 32 bits, donc, 4 octets (2 mots) sont nécessaires pour sauvegarder son contenu dans la pile. La donnée est écrite en pile sous forme de mot 16 bits et occupe une adresse pair.
BROCHAGE ET SIGNAUX DU 68000


les bus :
Nous ne traiterons que des bus spécifiques aux microprocesseurs.
Des liaisons sont assurées entre les différents composants par des groupes de lignes électriques appelées bus.
Il existe 3 types de bus ayant chacun une fonction spécifique:
- le bus de données (DATA BUS) assure le transfert des informations entre le microprocesseur, la mémoire et les interfaces d'E/S (Entrées Sorties). Ce bus est bidirectionnel. Les données circulent en parallèle.

- le bus d'adresses (ADRESS BUS) permet de sélectionner la position de la donnée à transférer. Ce bus est unidirectionnel et les adresses circulent en parallèle. L'adresse est toujours imposée par le microprocesseur.

- le bus de contrôle ou de commande (CONTROL BUS) qui regroupe les autres liaisons, ce n'est pas véritablement un bus. Les informations ne circulent pas en parallèle, certaines lignes vont vers le microprocesseur et d'autres vont du microprocesseur vers la mémoire ou/et vers les interfaces
les mémoire :                                                                                                      
une mémoire est un ensemble de cellules elementares (bascules, charges electriques, charges magnetiques),chacune coressepondant a un “element binaire” ou bit(binary bigit). Pour ecrire ou lire une information,il faut specifier le numero de la cellule (adresse) ou difinir la position phesique du domaine contemant l’information.Suivant l’oranitation de la de la memoire, l’utilisateur aura Acces a un element binaire (bit) ou a un groupe d’elements Binaires formant un mot memoire (1,4,8,16,32,…bits. Le mot memoire binaire de “8”bits est appele byte.On distingue deux categories de memoire :
- les memoires a “lecture seule” ou memoires mortes :
ROM , PROM,…
- les memoires a “lecture/ecriture” ou mémoires vives :
RAM
Les memoires mortes :
les mémoires mortes ou READ-ONLY ne peuvent fonctionner qu’en lecture seulement. Elles sont utilisees lorsque les informations inscrites sont invariantes et doivent etre conservees meme apres coupure du courant  telles que le micro-logiciel ou programme de gestion du        microprocesseur.
les différents types des mémoires mortes sont :
ROM ( Read only memory):
Les informations sont inscrites lors de la fabrication du circuit. Les niveaux HAUT ou BAS sont representes par La presence ou l’absence d’une metallisation.
PROM ( Programmable ROM) :
La mémoire PROM est une ROM programmable par l’utilisateur(a l’aide d’un appareil special) mais une seule fois seulement et d’une manière définitive. Les états sont Representes par des microfusibles qui peuvent etre conserves(niveau HAUT) ou fondus (niveau BAS).
EPROM OU REPROM (Erasable PROM OU Reprogrammable ROM) :
Ces mémoires sont programmables avec l’avantage de pouvoir effacees par exposition a une sourse de rayonnements ultra-violette, a travers une fenetre de quartz. En effet, le niveau HAUT est represente par une charge qui se maitient indefiniment isolee et qui est eliminee par ces rayons.
EEPROM ( Elecricaly erasable PROM )
Pour eviter la reprogrammable inadequate et non economique des EPROM, les mémoires EEPROM ont ete mises ou point. L’inscriptionet et l’effacement de L’information se font “electriquement ”.sons deplacer le chip ou boitier de sa carte.
Les memoires vives :
la mémoire vive ou RAM(Random Access Memory), est une mémoire volatile ou la lecture ainsi que l’ectituresont possibles. Ce type de mémoire est utilise pour le  stockage “TEMPORAIRE ” des donnees, tant que l’alimentation est maintenue. Deux types des mémoires           vives existent :
RAM Statique :
Dans une mémoire RAM statique, l’information est stockee dans une bascule ou un bistable(du type TTL  Ou ECL) et donc conservee (statique) tant que l’alimentation existe. Ces memoire presentent l’inconvenient d’avoir une faible densite d’integration et une consommation importante mais une vitesse elevee.
RAM Dynamique  :
Dans une mémoire RAM dynamique, l’information est stockee sous forme d’une charge electrique dans une « capacite de structure » (du type MOSO OU CMOS).
La charge stockee disparaît lentement a cause des resistances de fuite .il faut donc periodiquement la regenerer (rafraichissement).pour cela , on lit la cellule mémoire a un intervalle fixe (quelques msec) et on la reinscrit avant que la charge (au niveau haut)n’ait atteint un niveau trop bas (la tension relative a la zone interdite )
Ce type de mémoire ,contrairement a la mémoire statique,permet des densites d’integration elevees (quatre fois plus que la mémoire statique) ,des consommation faibles mais des vitesses faibles (a cause des hautes impedances et des capacites parasites de la structure)
Organisation de la memoire :
une mémoire peut etre organisee sous différentes structure selon l’utilisateur :

la structure matricielle :
dans une structure matricielle, une cellule ou un bit est reperee par un numéro de ligne « x » et un numéro de colonne « y » ou globallement par son adresse « xy ».l’acces a cette mémoire est aleatoire.
EXEMPLE : une mémoire de « 4096 » bit (4 kbits) est adressee par un mot de « 12 » bits. Elle peut etre organisee sous forme :
 D’une matrice carre(64*64) soit « 6 » bits pour les lignes et « 6 » bits pour les colonnes.
 D’une matrice colonne(4096*1) soit les « 12 » bits pour les lignes
 D’une matrice rectangulaire(512*Cool soit 512 bytes.
 De matrice rectangulaires variables telles que [(le nombre de ligne)*(le nombre de colonne)]=4096.
la structure en groupe :
dans cette structure ,l’utilisateur peut accéder simultanément a un groupe de bits formant « un mot mémoire » (4,8,16,32 bits).
Les interfaces :
Un microprocesseur associé à ces mémoires ne sert à rien car il n'est pas possible de communiquer avec l'extérieur. Pour communiquer avec l'extérieur, on utilise des interfaces d'entrée/sortie.

Les interfaces d'entrée/sortie peuvent être divisées en trois groupes
- Les interfaces parallèles,
- Les interfaces séries,
- Les interfaces spécialisées.
Nous allons, ici nous focaliser sur ce qui est le plus utile dans les flippers.
Les interfaces parallèles sont très utilisées pour commander les lampes, les moteurs, les afficheurs et pour recevoir les informations en provenance des contacts de type interrupteur (switch dans notre jargon). Les interfaces communiquent avec l'extérieur par des ensembles de lignes que l'on appelle des ports parallèles.
Les interfaces séries sont très peu utilisées, Il y en a sur les flippers les plus récents pour communiquer avec des périphériques séries comme une imprimante (série) ou un dispositif de diagnostic.
Les interfaces spécialisées sont utilisées soit pour contrôler des périphériques analogiques. On trouve donc des convertisseurs analogique/numérique ou numérique/analogique. Il y a aussi des compteurs programmables (Timers) qui permettent de générer des temporisations ou des signaux de fréquences fixes ou variables. Il est aussi possible de citer le cas particulier de l'horloge temps réel (qui donne l'heure sur les flippers les plus récents).
Toutes ces interfaces d'E/S nécessitent des adaptations de signaux pour commander les lampes ou les moteurs car la puissance de commande est très faible sur chaque ligne. Le terme "'driver"' est souvent utiliser pour désigner les transistors ou les thyristors qui servent à gérer la puissance nécessaire.

Cas du MC6800 :
les principaux adaptateurs au microprocesseurs sont :
LE PIA (6821) qui assure l’echange d’information en parallele entre le                                          microprocesseur et  la permet pas des  liaisons a grande distance.L’acia (6850) qui assure l’echange. D’information peripherie. son Avantage reside dans le transfert de Des donnees a des distances   Importantes mais au depend de la   Vitesse.
Le tableau suivant presente quelques interfaces adaptadles au




microprocesseur 6800 :
circuit Reference fonction
6821                                  
6828
6840
6843
6844
6845
6850
68488 PIA
PIC
PTM
FDC
DMAC
CRTC
ACIA
GPIA Parallel interface adapter
Priority intrrupt controller programmable timer
Floppy disc controller
Direct mémory acces controller
Cathod-ray tube controller
Asynchronous communications
Interface adapter
Interface IEEE -488

     
Programmation d’un microprocesseur
La conception et la mise en oeuvre des programmes qui permettent une bonne utilisation d'un microprocesseur nécessitent la connaissance:

- du jeu d'instructions, avec leur expression mnémonique, leur code opération, leur relation fonctionnelle,
- des procédures de gestion de la pile.
- des modes d'adressage.
- du comportement des indicateurs d'état.
- du traitement des interruptions.

Si certaines de ces données sont communes à différentes familles de microprocesseur , d'autres sont spécifiques à une seule.
Un langage d'assemblage
Un langage d'assemblage (ou langage assembleur ou simplement assembleur par abus de langage, abrégé ASM) est un langage de bas niveau proche du langage machine qui peut être directement utilisé par le microprocesseur de la machine mais qui reste lisible par un humain. Le langage machine est une combinaison de bits rendue lisible en remplaçant les valeurs brutes par des symboles appelés mnémoniques (du grec mnêmonikos, relatif à la mémoire) simples et plus faciles à retenir.
Chaque microprocesseur a son propre langage machine, et donc son propre langage d'assemblage (l'exemple ci-dessus est pour le x86). Ces différents microprocesseur ont des tailles de registres differentes et un jeu d'instructions plus ou moins étendu, selon leur conception et leur utilisation.
Le jeu d'instruction est l'ensemble des opérations qu'un processeur d'ordinateur peut exécuter. Chaque opération est spécifié par un code, dit code-opération, abrégé opcode, auquel peuvent être associées des opérandes.

Instruction
L'instruction est l'élément clé de l'ordinateur car c'est elle qui permet de spécifier au processeur l'action à effectuer. Toutes les instructions sont stockées en mémoire et un compteur dans le processeur permet de passer de l'une à l'autre.
Une instruction est composée de deux éléments :
- le code opération : action à effectuer par le processeur
- le champ opérande : donnée ou bien adresse de la case mémoire contenant une donnée
code opération champ opérande
Une suite d'instructions, associée à des données, forme un programme informatique.
Les types d'instructions
L'ensemble des instructions est appelé jeu d'instruction. On peut les répartir selon plusieurs catégories selon le type d'action que son exécution déclenche.
Instructions d'affectation
Les instructions d'affectation permettent de faire des transferts de données entre les registres et la mémoire, c'est-à-dire :
- soit une écriture (du registre vers la mémoire)
- soit une lecture (de la mémoire vers un registre)
Instructions arithmétiques et logiques
Ces instructions portent sur le registre AX (l'accumulateur). Elles permettent d'effectuer une opération entre le registre AX et une donnée puis stocker le résultat dans AX. Ces instructions sont :
- l'addition : AX = AX + donnée
- la soustraction : AX = AX - donnée
- l'incrémentation : AX = AX + 1
- la décrémentation : AX = AX - 1
Instructions de comparaison
Permet de comparer le registre AX à une donnée. Le résultat de la comparaison est indiqué grâce à... des indicateurs...

Instructions de branchement
Ce type d'instruction permet de sauter à une instruction non consécutive à l'instruction en cours. En l'absence de ce type d'instruction le processeur passe automatiquement à l'instruction suivante (c'est-à-dire l'instruction contiguë (en mémoire) à l'instruction en cours).
Les modes d'adressage
on appelle mode d’adressage les differents moyens qui permettent a une instruction d’acceder a une adresse afin d’y effectyer un traitement.
Il existe 5 modes d'adressage :
- le mode d'adressage implicite
- le mode d'adressage immédiat
- le mode d'adressage relatif
- le mode d'adressage direct
- le mode d'adressage indirect

Le mode d'adressage implicite
Le mode d'adressage implicite correspond à une instruction ne comportant pas d'opérande. L'instruction est composée du code opération uniquement et sa taille peut varier entre 1 octet et 2 octets selon l'opération.
code opération (1 ou 2 octets)
Ce type d'instruction porte généralement sur des registres. Les opérations d'incrémentation ou de décrémentation d'un registre ont un mode d'adressage implicite.
Le mode d'adressage immédiat
On parle de mode d'adressage immédiat lorsque le code opérande contient une donnée. La taille de la donnée peut varier entre 1 et 2 octets.
code opération (1 ou 2 octets) code opérande (1 ou 2 octets)
Ce type d'instruction met en jeu un registre et une valeur (qu'il s'agisse d'une affectation, une addition, une soustraction ou bien même une comparaison), la taille de l'opérande dépendra donc du type de registre mis en jeu (1 octet pour un registre 8 bits, 2 pour un registre de 16 bits).
Dans le cas de l'instruction MOV BX, 8 l'opérande 8 sera codée sur 16 bits puisqu'il faut l'affecter à un registre 16 bits (BX).
Le mode d'adressage relatif
Ce type de mode d'adressage met en jeu un champ opérande contenant un entier relatif (sa taille est donc un octet).
code opération (1 octet) code opérande (1 octet)
On l'utilise pour les opérations de saut, l'entier relatif est appelé déplacement, il correspond à la longueur du saut que le processeur doit effectuer dans les instructions.
Le mode d'adressage direct
Le code opérande d'une instruction en mode d'adressage direct, contrairement au mode d'adressage immédiat, contient l'adresse d'une donnée en mémoire (au lieu de contenir la donnée). Une adresse étant codée sur 16 bits, la taille du champ opérande est donc de 2 octets.
code opération (1 ou 2 octets) code opérande (2 octets)
Il peut s'agir par exemple de l'affectation à un registre d'une donnée contenue dans une case mémoire. Ce mode d'adressage provoque un temps d'exécution de l'instruction plus long car l'accès à la mémoire principale est plus long que l'accès à un registre.
Le mode d'adressage indirect
Le mode d'adressage indirect permet d'accéder à une donnée par l'intermédiaire d'un registre (le registre BX) qui contient son adresse. Son utilité n'est pas apparente à ce stade, mais l'adressage indirect est très utile lors de l'utilisation de tableaux (parcours des cases d'un tableau) car il suffit d'incrémenter BX de la taille d'une case pour passer d'une case à une autre...
En adressage direct, on affecte directement au registre accumulateur (AX) l'adresse d'une donnée :
MOX AX, [110]
En adressage indirect, on affecte à AX l'adresse contenue dans le registre BX :
MOV AX, [BX]
Les modes d'adressage du 68000
Le processeur 68000 utilise 14 modes d ‘adressage différents qui pourraient être groupés dans 6 types de base.

1. Adressage direct registre
a) Adressage direct par registre de donnée
b) Adressage direct par registre d ‘adressage
2. Adressage Absolu mémoire
a) Adressage absolu court
b) Adressage absolu long
3. Adressage relatif au compteur de programme PC
a) Adressage relatif avec déplacement
b) Adressage relatif avec index et déplacement
4. Adressage mémoire indirect par registre
a) Indirect par registre
b) Indirect par registre avec post-incrémentation
c) Indirect par registre avec  pré-décrémentation
d) Indirect par registre avec déplacement
e) Indirect par registre avec index et déplacement
5. Adressage immédiat de données
a) Adressage absolu court
b) Adressage absolu long
6. Adressage implicite registre
a) Adressage direct par registre d ‘adressage
3. la forme d’une instruction
l’instruction s’écrit comme suit :
code opération + les opérandes
exemple
Exemple1 : Move.W D0,$1974
 Codage de l’instruction :



0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0












a) Adressage direct par registre  de données
Exemple1 : Move.W D0,$1974
 Codage de l’instruction :



0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0



 Rôle de l’instruction : L’instruction   MOVE.W D0,$1974 donne au processeur l’ordre de transférer les 16 bits de poids faible du registre de données D0 vers les emplacements destination de la mémoire $1974 et $1975.
 Taille de l’opérande :
La taille précisée par l’instruction peut être :
 l’octet (.B), le mot ( .W) ou le long mot ( .L).




Exemple2 : Move.W $1974,D3
 Codage de l’instruction :



0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0



 Rôle de l’instruction :
L’instruction move.w $1974,D3 donne au processeur l’ordre de transférer les 16 bits de l’emplacement source en  $1974 et $1975 vers les 16 bits de poids faible du registre de données D3.
Les 16 bits de poids fort du registre de données ne sont pas modifiés par l’opération.
 Taille de l’opérande :
La taille précisée par l’instruction peut être l’octet (.B), le mot (.W) ou le long mot ( .L).





b) Adressage direct par registre d’adresse
Exemple1 : Move.W A2,$141938
 Codage de l’instruction :



0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0


 Rôle de l’instruction :
L’instruction move.w A2,$141974 donne au processeur l’ordre de transférer les 16 bits de poids faible du registre de d’adresse A2 vers les emplacements destination de la mémoire $141938 et $141939.
 Taille de l’opérande :
La taille précisée par l’instruction peut être l’octet ( .B), le mot ( .W) ou le long mot ( .L).



1- Adressage mémoire indirect
a) Indirect par registre
Dans ce mode, l’adresse de l’opérande est le contenu du registre d’adresse spécifié.
Exemple : MOVE.L (A0),D3
b) Indirect par registre avec post-incrémentation
L’adresse de l’opérande est le contenu du registre d’adresse spécifié. Après l’exécution de l’instruction utilisant ce mode, le contenu du registre d’adresse spécifié est incrémenté de 1, 2 ou 4 suivant la taille de l’opérande. Si le registre spécifié était A7 (SP), l’adresse est incrémentée par 2 à la fois.
Exemple : MOVE.W (A4)+,$1938
c) Indirect par registre avec pré-décrémentation
Ce mode d’adressage est similaire au précédent, seulement que, le contenu du registre spécifié sera décrémenté avant d’être utilisé.  
Exemple : MOVE.W -(A4),$1938
d) Indirect par registre avec déplacement
Un mot d’extension est nécessaire pour ce mode d’adressage. L’adresse de l’opérande est la somme du contenu du registre spécifié et le contenu du mot d’extension signée sur 16 bits.
Exemple : MOVE.W $100(A3),$1938
e) Indirect par registre avec index et déplacement
L’adresse de l’opérande est la somme du contenu du registre d’adresse spécifié, l’octet de poids faible du mot d‘extension et le contenu du registre utilisé comme index.
Exemple : MOVE.W $0C(A0,D0),$1938
2- Adressage direct mémoire
a) Adressage absolu court
Un seul mot d’extension est nécessaire pour ce mode d’adressage. l’adresse de l’opérande est le contenu du mot d’extension.
Exemple : MOVE.W $1938,$1998
b) Adressage absolu long
Deux  mots d’extension sot nécessaire pour ce mode d’adressage. l’adresse de l’opérande est le contenu des deux mots d’extension, le premier mot représente le poids fort de l’adresse et le second le poids faible.
Exemple : JMP $123456
3- Adressage relatif au PC
a) Adressage relatif avec déplacement
Ce mode d’adressage génère l’adresse effective en additionnant le contenu du compteur de programme (PC) et le contenu du mot d’extension.
Exemple : LEA TABLE,A2
b) Adressage relatif avec index et déplacement
Ce mode exige un format du mot d’extension similaire à celui du mode indirect registre avec déplacement et index.
Exemple : MOVE.W TABLE(A0),D3
4- Adressage immédiat de données
L’opérande de l’adressage de données immédiat est la valeur qui suit immédiatement le mot de l’instruction.
Exemple : MOVE.W #$1938,D3
5- Adressage implicite registre
Il existe quelques instructions qui renvoient  à des registres spécifiques. Ces registres sont le compteur de programme (PC), le pointeur de pile  (SP- SSP ou USP), et le  registre d’état (SR).
Exemple2 : Move.W $1938,A3
 Codage de l’instruction :


0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0



Interruption
En informatique, une interruption est un arrêt temporaire de l'exécution normale d'un programme informatique par le microprocesseur afin d'exécuter un autre programme (appelé routine d'interruption).
Fonctionnement :
Lors d'une interruption, le microprocesseur sauve tout ou une grande partie de son état interne, généralement dans la pile système, et saute ensuite à la routine d'interruption, généralement en suivant une table qui donne pour chaque type d'interruption la routine à exécuter.
Une fois le traitement de l'interruption terminé, la routine se finit généralement par une (ou plusieurs) instruction de retour d'interruption, qui restaure l'état sauvé et fait repartir le processeur de l'endroit où il avait été interrompu
La pile
Une pile est une zone de mémoire dans laquelle on peut stocker temporairement des registres. Il s'agit d'un moyen d'accéder à des données en les empilant, telle une pile de livres, puis en les dépilant pour les utiliser. Ainsi il est nécessaire de dépiler les valeurs stockées au sommet (les dernières à avoir été stockées) pour pouvoir accéder aux valeurs situées à la base de la pile.
En réalité il s'agit d'une zone de mémoire et d'un pointeur qui permettent de repérer le sommet de la pile.
La pile est de type LIFO (Last In First Out), c'est-à-dire que la première valeur empilée sera la dernière sortie. (Si vous empilez des livres, il vous faudra les dépiler en commençant par enlever les livres du dessus. Le premier livre empilé sera donc le dernier sorti !)
Les instructions PUSH et POP
Les instructions PUSH et POP sont les instructions qui servent à empiler et dépiler les données. PUSH registre met le contenu du registre dans la pile (empilement). POP registre récupère le contenu de la pile et le stocke dans le registre (dépilage). Ainsi, l'instruction PUSH BX empile le contenu du registre BX, et l'instruction POP AX récupère le contenu du sommet de la pile et le transfère dans AX.
Appliocation
Objectif : Programmation, lecture et écriture de l’interface programmable et timer PIT68230
Sujet : Réaliser un programme effectuant les opérations suivantes :
 initialiser le port A du PIT 68230 en entrée
 initialiser le port B du PIT 68230 en sortie
 effectuer en programme bouclé la lecture des microswitchs, allumer
 les LEDs correspondantes à chaque microswitch à l’état 1.
 Reboucler le programme par instruction relative.
EQUIPEMENTS UTILISES :
 Micro-ordinateur PC
 Câble de liaison RS232 réf : 9006
 MONITEUR M168
 BOUCHON DE TEST réf : TEST_168
 Alimentation réf : 9212
 Résultat du fichier source assembleur « atst.asm »
1. INSTALLATION DU MATERIEL
Câbler les équipements comme indiqués dans la figure 1.1
Vérifier la position du commutateur de l’alimentation M9212 sur la position 7,5V
Connecter le câble de liaison série M9006 sur le port série P_SER1, puis sur le connecteur de liaison du PC, de préférence « COM1 », le logiciel M168 est paramètré par défaut sur « COM1 » »,
Connecter le bouchon TEST_168 avec la nappe 34 points


Lancement du logiciel M168
Démarrer Windows
Cliquer sur « démarrer », puis « programme », puis « mentor », puis « M168 », (uniquement
en cas d’installation dans le répertoire par défaut : M168).
Cliquer sur « fichier », puis « ouvrir », puis répertoire « ASM », puis à l’aide de l’ascenseur
fichier « tstcpu.asm »



3. Assemblage du fichier en mémoire
Cliquer sur le menu « Assembler » pour assembler le fichier chargé en mémoire vive del’ordinateur, dans le cas présent, atst.asm .
Cliquer sur « OK » sur le compte rendu d’assemblage
Resultat :























Jeu d'instruction utile  







Conclusion :
Microprocesseurs remplacement des logiques câblées , la logique câblée est étudiée et réalisée une fois pour toutes sur un schéma donné : les fonctions sont réalisées par une voie matérielle. Elle exige un grand nombre de composants et rend les montages encombrants et chers. Enfin, elle n'offre guère de souplesse : la durée des études pour réaliser un montage donné (et donc pour le modifier le cas échéant) est longue.

Le microprocesseur est d'une grande souplesse, car les fonctions sont réalisées par voie logicielle, et sont modifiables à tout moment en un temps réduit. De plus, le nombre de composants est réduit à sa plus simple expression.
Domaine d'application du microprocesseur
Tous les aspects de notre vie utilisent des les microprocesseur. Pensez à votre automobile, votre téléviseur, votre magnétoscope, votre four micro-ondes, Electroménager Caisses enregistreuses
balance, …… Dans l'informatique, Dans les appareils de mesure
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://1984.ahlamontada.net
 
les systèmes
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الاحلام الكبيرة :: دروس تعليمية :: الاعلام الالي-
انتقل الى: