Introduction Au Processeurs

24
1 Introduction au processeurs I- Préambule Le microprocesseur et son compagnon le microcontrôleur sont devenus des éléments incontournables en instrumentation, mais ils ont progressivement été complétés, par le biais de diverses approches technologiques, par d'autres composants numériques. Il faut tout d'abord corriger une idée fausse largement répandue par les médias : ce n'est pas le marché de l'informatique qui constitue le principal débouché du microprocesseur. L'informatique, et plus particulièrement le monde PC, est dominé par 3 fabricants de composants électroniques, dont Intel qui se taille actuellement la part du lion. Mais le marché du microprocesseur, plusieurs centaines de fabricants, est d'un tout autre ordre de grandeur et en 1998, derniers chiffres connus, 99% des microprocesseurs ont été destinés au marché des systèmes embarqués, c'est à dire essentiellement de l'instrumentation et du contrôle. II- Les processeurs Le développement de l'électronique numérique a conduit à l'apparition de plusieurs types de composants très puissants exploités en instrumentation: le microprocesseur, c'est un composant généraliste , employé préférentiellement dans les systèmes informatiques, qui nécessite quelques circuits complémentaires pour pouvoir dialoguer avec son environnement. Selon les types il peut traiter directement des données de 8, 16, 32, 64 et même quelquefois 128 bits. Dire que c'est un composant généraliste cela signifie qu'il peut tout faire, mais n'est optimisé pour rien. C'est le composant de base de l'informatique, mais en instrumentation on lui préférera généralement des composants plus spécialisés, donc plus optimisés pour les tâches qu'on leur confiera, et donc plus performants. le microcontrôleur est plus adapté aux applications embarquées car il comporte sur sa puce un certain nombre d'interfaces qui n'existent pas sur un microprocesseur, par contre il est généralement moins puissant en terme de rapidité ou de taille de mémoire adressable et le plus souvent cantonné aux données de 8 ou 16 bits. le processeur de signal est beaucoup plus spécialisé . Il est optimisé pour le traitement du signal, mais n'est pas prévu pour accomplir des tâches généralistes de bas niveau qu'exécutent les deux précédents. le composant ASIC ou FPGA. Ces composants sont souvent exploités complémentairement : un ASIC est très spécifique d'une application et a été spécialement développé pour celle-ci, à l'inverse le circuit FPGA est par construction destiné à faire, a priori, n'importe quoi puisque c'est l'utilisateur qui devra le configurer pour réaliser une application spécifique. Très souvent le FPGA sert à la mise au point, et un fondeur de silicium saura ensuite transcrire ses fonctionnalités en un circuit ASIC figé et a priori de moindre coût. L'un comme l'autre seront, selon les cas, employés soit en complément, soit en remplacement d'un processeur. III- Historique 1632 Oughtred en Angleterre invente la règle à calcul 1642 Pascal (F) imagine sa machine à calculer 1666 Moreland (GB) identifie la multiplication comme une suite d'additions 1770 Hahn (D) crée une machine à cylindre 1820 Babbage (GB) initie ses premiers travaux 1833 Babbage invente le concept de calculateur programmé, c'est à dire l'enchaînement automatique des opérations

Transcript of Introduction Au Processeurs

Page 1: Introduction Au Processeurs

1

Introduction au processeursI- Préambule

Le microprocesseur et son compagnon le microcontrôleur sont devenus deséléments incontournables en instrumentation, mais ils ont progressivement été complétés,par le biais de diverses approches technologiques, par d'autres composants numériques.

Il faut tout d'abord corriger une idée fausse largement répandue par les médias : cen'est pas le marché de l'informatique qui constitue le principal débouché dumicroprocesseur. L'informatique, et plus particulièrement le monde PC, est dominé par 3fabricants de composants électroniques, dont Intel qui se taille actuellement la part du lion.Mais le marché du microprocesseur, plusieurs centaines de fabricants, est d'un tout autreordre de grandeur et en 1998, derniers chiffres connus, 99% des microprocesseurs ont étédestinés au marché des systèmes embarqués, c'est à dire essentiellement del'instrumentation et du contrôle.

II- Les processeursLe développement de l'électronique numérique a conduit à l'apparition de plusieurs

types de composants très puissants exploités en instrumentation:• le microprocesseur, c'est un composant généraliste, employé préférentiellement

dans les systèmes informatiques, qui nécessite quelques circuits complémentairespour pouvoir dialoguer avec son environnement. Selon les types il peut traiterdirectement des données de 8, 16, 32, 64 et même quelquefois 128 bits. Dire quec'est un composant généraliste cela signifie qu'il peut tout faire, mais n'est optimisépour rien. C'est le composant de base de l'informatique, mais en instrumentation onlui préférera généralement des composants plus spécialisés, donc plus optimiséspour les tâches qu'on leur confiera, et donc plus performants.

• le microcontrôleur est plus adapté aux applications embarquées car il comporte sursa puce un certain nombre d'interfaces qui n'existent pas sur un microprocesseur,par contre il est généralement moins puissant en terme de rapidité ou de taille demémoire adressable et le plus souvent cantonné aux données de 8 ou 16 bits.

• le processeur de signal est beaucoup plus spécialisé. Il est optimisé pour letraitement du signal, mais n'est pas prévu pour accomplir des tâches généralistesde bas niveau qu'exécutent les deux précédents.

• le composant ASIC ou FPGA. Ces composants sont souvent exploitéscomplémentairement : un ASIC est très spécifique d'une application et a étéspécialement développé pour celle-ci, à l'inverse le circuit FPGA est parconstruction destiné à faire, a priori, n'importe quoi puisque c'est l'utilisateur quidevra le configurer pour réaliser une application spécifique. Très souvent le FPGAsert à la mise au point, et un fondeur de silicium saura ensuite transcrire sesfonctionnalités en un circuit ASIC figé et a priori de moindre coût. L'un commel'autre seront, selon les cas, employés soit en complément, soit en remplacementd'un processeur.

III- Historique• 1632 Oughtred en Angleterre invente la règle à calcul• 1642 Pascal (F) imagine sa machine à calculer• 1666 Moreland (GB) identifie la multiplication comme une suite d'additions• 1770 Hahn (D) crée une machine à cylindre• 1820 Babbage (GB) initie ses premiers travaux• 1833 Babbage invente le concept de calculateur programmé, c'est à dire

l'enchaînement automatique des opérations

Page 2: Introduction Au Processeurs

2

La machine analytique de Charles Babbage

• 1847-1854 Boole (GB) imagine l'algèbre qui porte son nom• 1880 Hollerith (USA) invente la carte perforée à l'occasion du premier recensement• 1885 création d'une petite compagnie qui deviendra IBM• 1897 Braun (USA) invente l'oscilloscope• 1906 Lee de Forest (USA) invente la triode• 1920 Morrison (USA) imagine l'horloge à quartz• 1938 Couffignal (F) le père de la numération binaire• 1944 Création de l'ENIAC, la première machine électronique (un monstre

comportant environ 18000 tubes électroniques!)

L'ENIAC• 1948 Bardeen, Brattain, Shockley (USA) découvrent l'effet transistor aux Bell Labs• 1949 première machine IBM à cartes perforées

Pupitre de contrôle d'un ordinateur IBM705• 1960 IBM 7070• 1962 Dreyfus (F) invente le mot informatique en lui assignant l'ensemble des

techniques de traitement automatique de l'information

Page 3: Introduction Au Processeurs

3

• 1968 Dreyfus (F) première exploitation d'un système multiprocesseurs (Centre deCalcul Scientifique de l'Armement à Arcueil, machine UNIVAC 7108)

• 1972 la compagnie INTEL (USA) invente le microprocesseur environ 2 ans après lepremier circuit intégré

• 1986 la même lance le 80386• 1990 les premiers circuits périphériques configurables (selon le concept FPGA)• 2000 la barrière du GHz est franchie pour des circuits à base de silicium (AMD et

Intel).

IV- Informatique industrielleIl n'y a pas de différence de principe entre un ordinateur et un micro-système utilisé

en informatique industrielle sinon dans le prix, la taille et la vitesse de traitement quiimpliquent encore aujourd'hui des technologies sensiblement différentes.

Par contre l'emploi qu'on en fait est réellement différent : Un CRAY est employé àdu calcul scientifique ou à de la gestion bancaire, tandis qu'un micro-ordinateur s'il peutcertes faire des calculs ou assurer la gestion d'un cabinet médical sera aussiessentiellement employé à des applications d'informatique industrielle.

Un micro-ordinateur peut servir à contrôler un processus industriel et pour ce faire illui sera adjoint des périphériques spécifiques et l'on parlera volontiers de micro-systèmeou système à microprocesseur, dont la figure ci-dessous donne une représentationschématique.

Micro-système

Ci-dessous, figure la composition d’un système minimal.

Page 4: Introduction Au Processeurs

4

V- Environnement d’un µPUn microprocesseur est le composant essentiel d'un micro-système. Il présente

divers avantages : - moins de composants- modification aisée du programme- consommation réduite. En technologie CMOS avec quelques mW on

peut avoir un système très puissant.

C'est un circuit intégré comportant l'équivalent de 5000 transistors jusqu'à environ 6millions pour le Pentium de dernière génération, lesquels sont assemblés pour permettrel'exécution d'opérations arithmétiques ou logiques, de décalages sur des mots binaires, decomparaisons, prises de décision... Notons que tout seul un µP ne peut rien faire, c'estcomme un moteur de voiture sans roues, sans boite de vitesse et sans carosserie... Ilcomporte diverses broches d'entrée/sortie sous forme de bus.

1- Les bus et les signaux de commande- Le bus d'adresse- Le bus de données- Le bus de commandes

2- L'environnement du µP- Mémoires ROM et RAM : stockage de données et du programme applicatif- Périphériques : autres dispositifs reliés au µP par le biais d'un coupleur

d'interface.

3- Fonctionnement simplifié du µPExplication du fonctionnement d'un µP relativement simple (typiquement 8 bits).

a- ConstitutionUn µP comporte 3 parties principales : une unité de contrôle, une unité arithmétique

et logique (ALU) et un certain nombre de registres, le tout relié par un réseau complexe debus interne muni de nombreux aiguillages.

Structure interne d'un microprocesseur

- L'unité de contrôle UCT décode l’instruction envoyée par la mémoire deprogramme et élabore les signaux de commande indispensables au traitement decette instruction.

Page 5: Introduction Au Processeurs

5

- L'ALU (unité arithmétique et logique) se charge de l'exécution des opérationsarithmétiques et logiques.

- Les registres sont de deux types : ceux accessibles par le programme et ceux quine le sont pas. Les premiers comportent :

• les registres de données stockant temporairement des informations• les registres d'adresses qui sont des pointeurs stockant des adresses

importantes, en particulier le registre d'index qui va permettre l'adressage ditindexé

• le registre d'état comportant différents bits positionnés à 0 ou 1 et indiquantsi le résultat d'une opération est nul, ou négatif, avec ou sans retenue, etc...

• le pointeur de pile est un registre qui pointe vers une zone particulière de lamémoire appelée pile, décrémenté lors d'un transfert de mot dans la pile etincrémenté quand un mot est lu. Son rôle est important lors des interruptions.

• le compteur ordinal, encore appelé compteur de programme, qui suit pas àpas l'exécution d'un programme. Au départ on le charge avec l'adresse de lapremière instruction. Pendant que le µP lit cette instruction dans la mémoire,la décode et l'exécute, le compteur est incrémenté de façon à contenirl'adresse de la prochaine instruction.

b- Cycle FetchUn µP sous tension va travailler, mais seulement si on lui en donne l'ordre en

"levant un drapeau". Ensuite le µP peut démarrer. Admettons que le compteur deprogramme (CP) contienne la valeur 0800H (en hexadécimal sur 16 bits). Ce nombrereprésente l'adresse de la première instruction à effectuer. Pour identifier cet ordre le µPva devoir en premier lieu aller le chercher (to fetch en anglais) ce qui implique toute unesuccession d'opérations élémentaires. Notons qu'en interne le bus du µP est sur 8 bits, cequi va impliquer 2 phases pour transmettre une adresse qui comporte 16 bits. On va doncavoir les opérations suivantes :

• transfert de l'octet de poids faible du CP dans le registre d'adresse• transfert de l'octet de poids fort du CP dans le registre d'adresse• envoi d'un ordre de lecture à la mémoire centrale (RD)• attente de WAIT puis• transfert du contenu du poids faible du CP vers l'ALU• incrémentation de 1 et retour dans le CP• transfert du poids fort du CP dans l'ALU et addition de la retenue éventuelle de

l'opération précédente, puis retour dans le CP• simultanément la donnée est transférée de la mémoire vers le registre de

données via le bus de données

Cet ensemble d'opérations constitue le premier cycle machine ou cycle FETCH.

c- Registre d'instructionLe mot chargé dans le registre d'instruction va être redistribué vers un décodeur

d'adresse interne à l'UCT permettant d'accéder à la MMP (mémoire de micro-programme).

d- Déroulement du micro-programme• chargement de la donnée dans le registre d'instructions de l'UCT• décodage, c'est à dire association de cette donnée (8 bits) avec le contenu d'un

compteur par 16 (4 bits) ce qui donne un mot de12 bits• ce mot sert d'adresse pour la ROM interne du µP (mémoire de micro-programme),

laquelle est constituée de registres de 32 bits.• le contenu du registre 32 bits correspondant va être envoyé sur un bus à 32 fils.

Page 6: Introduction Au Processeurs

6

Les processeurs MotorolaI- Avant-Propos

L’évolution des microprocesseurs a été, depuis leur création quelque peuanecdotique, fulgurante. Elle a connu l’euphorie de la jeunesse avec le foisonnement desnouveaux produits. Elle a connu des périodes d’interrogation avec la remise en cause del’architecture. Elle connaît une période de maturité relative avec la stabilisation dequelques grands concepts (mais cette maturité, ou du moins la stabilité qui en découle,est, selon toute évidence, un état provisoire). Les premiers produits ont ouvert deshorizons nouveaux qui ont justifié la profusion. Intel, Motorola, Rockwell, Zilog, Texas, NS,Fairchild et bien d’autres encore, se sont lancés à la conquête du marché. Certains sontdevenus (dans le domaine général) marginaux, d’autres ont tout simplement abandonné,d’autres encore se sont spécialisés ; deux géants se sont affrontés à coups d’avancéestechnologiques et d’annonces médiatiques, et ils ont proposé des produits d’un niveau desophistication tel que l’on conçoit mal de les surpasser sans remettre en cause le principe.Nous avons atteint avec les processeurs Intel et Motorola, l’asymptote du concept CISC(Complex Instruction Set Computer). Coté Motorola, citons :

- Les processeurs : 6800 - 6802, 6809, 68000, 68020, 68030 …- Les circuits de la périphérie : PIA 6821, ACIA 6850, DUART 68681, USART …- Les microcontrôleurs : 6805, 68HC11, 68302, 68331, 68332, 68340 ...

II- IntroductionA- Qu’est-ce qu’un microprocesseur CISC?

Dans la foule des types de processeurs actuellement utilisés, les CISC sontapparus les premiers; ils ont comme principale caractéristique de mettre à disposition duprogrammeur un jeu d’instructions très développé et un choix de modes d’adressageimportant. C’est le processeur qui s’adapte aux besoins de l’algorithme et non l’inverse(comme ce sera le cas dans la famille RISC).

B- Architecture de Communication1- Les signaux

Figure 1

Le microprocesseur communique avec son environnement en échangeant avec luides signaux électriques qui sont les représentations physiques de données binaires. Parexemple (et c’est un cas fréquent) le chiffre binaire 0 est représenté par le niveauélectrique 0 V (la ligne électrique correspondante est mise à la masse) et le chiffre binaire1 est représenté par le niveau électrique 5 V (par rapport à la masse). Le processeuréchange des données codées sur n bits, il a donc besoin de faire appel à n lignesélectriques pour les véhiculer, ces lignes constituent un ensemble cohérent appelé le busde données. Nous utiliserons désormais le terme bus pour désigner un ensemblecohérent (pouvant se réduire à 1) de lignes électriques. Le nombre n caractérise ce quel’on a coutume d’appeler la « taille du microprocesseur ». Les données peuvent être

Page 7: Introduction Au Processeurs

7

envoyées par le processeur vers un périphérique, ou lues par le processeur, enprovenance du périphérique; le bus de données est donc bidirectionnel. Toute donnéetransite par ce bus unique, le nombre de périphériques qui s’y connecte n’est pas limité. Aun instant donné un échange s’opère entre le processeur et un seul d’entre eux, les autresne doivent pas perturber cet échange, ils doivent donc être déconnectés ou considéréscomme tels.

Il est évident que les interrupteurs de la figure 1 ne peuvent être qu’électroniques.La déconnexion s’effectue en insérant une impédance très élevée, rendant négligeable lecourant circulant dans le brin concerné. Toute borne raccordée au bus doit donc êtrecapable de se mettre en haute impédance.

Le processeur échange tout périphérique en le considérant comme unemplacement en mémoire. Pour définir quel est l’emplacement avec lequel il dialogue, leprocesseur doit en fournir l’adresse. L’adresse est unique (tout du moins en premièreapproche), ce qui signifie qu’à une combinaison binaire unique, présente sur le busd’adresse, un seul emplacement quitte l’état de haute impédance.

Figure 2

L’ensemble constitué par le bus de données et le bus d’adresse ne suffit pas àcaractériser les échanges de façon complète. En particulier il ne permet pas de définir lesens de l’échange. Un troisième vus appelé bus de contrôle assure le contrôledirectionnel, temporel et événementiel des échanges. Au fur et à mesure de l’évolutiondes microprocesseurs ce bus a pris une importance de plus en plus grande. La fonctiondirectionnelle étant binaire, une ligne suffit à la définir. La fonction temporelle sertessentiellement à synchroniser le processeur et le périphérique avec lequel il dialogue;plusieurs lignes lui sont en général réservées. La fonction événementielle sert à attirerl’attention du processeur sur un périphérique dont l’état vient de changer. Si le processeurengage le dialogue avec ce dernier, il mettra en place un protocole nécessitant souventplusieurs lignes.

Un périphérique peut n’être relié qu’à quelques unes des lignes de contrôle (parexemple une mémoire n’est pas susceptible de générer une situation événementielle).

L’architecture de communication est donc définie par les trois bus et paramétréepar la taille des deux premiers et la nature des signaux du troisième.

Figure 3- Architecture de communication

Page 8: Introduction Au Processeurs

8

2- Le système à microprocesseurUn système est une combinaison entre un microprocesseur et divers périphériques.

La description de son fonctionnement est faite dans un programme. On distingue deuxtypes de programmes :

- Le programme général définissant, entre autres, le fonctionnement despériphériques, qui est figé. Il peut éventuellement contenir la définition des modesd’appel ou de chargement des programmes non liés intrinsèquement à lamachine.

- Le programme applicatif qui caractérise l’application en cours de fonctionnementsur la machine.

Pour essayer d’apporter à ces définitions un aspect concret on peut s’appuyer surl’exemple du micro ordinateur qui, lors de sa mise sous tension va exécuter un programme(intrinsèquement lié au matériel) qui notamment initialise tous les périphériques (et enparticulier le contrôleur de disque), ensuite il va charger, depuis le disque, un systèmed’exploitation ou bien attendre une information de la part de l’utilisateur pour choisir lesystème d’exploitation à charger. Le premier programme cité est figé, le second est libre.

Un programme réside dans une mémoire. A chaque type de programmecorrespond un type de mémoire. Le programme figé est hébergé par une mémoire morte;celle-ci a été programmée de façon définitive, dès qu’elle est alimentée on peut en lire lecontenu, celui-ci est immuable. Le programme que l’on va charger pour une applicationdonnée, et ce par tout moyen à disposition du programmeur, est, lui, hébergé dans unemémoire vive qui, lors de sa mise sous tension, a un contenu aléatoire, et qui conserve leséléments qu’on y écrit tant que l’on n’écrit rien d’autre à la place et que l’on maintient sonalimentation électrique. On désigne par ROM (Read only memory) la mémoire morte (oufigée) et par RAM (Random access memory) la mémoire vive.

L’application a besoin de stocker pour une durée au plus égale à son tempsd’exécution, des données relatives aux traitements en cours, c’est bien sur dans lamémoire vive qu’elle effectuera ces stockages.

Le monde extérieur interagit avec l’application en lui envoyant des stimuli (données)et en en recevant d’elle. Le micro ordinateur reçoit des données du clavier, des liaisonssérie, du contrôleur de disque, et en émet vert les liaisons série, l’écran, le contrôleur dedisque, entre autres. Il faut une adaptation électrique formelle et temporelle qui estréalisée par les circuits appelés génériquement Interfaces d’entrée/sortie (on utiliseégalement l’abréviation anglo-saxonne IO qui signifie Input Output).

Trois types de circuits constituent donc l’environnement applicatif dumicroprocesseur, ils sont tous reliés, au moins partiellement, au trois bus.

Figure 4- Système à microprocesseur

Page 9: Introduction Au Processeurs

9

C- Le modèle générique de programmationLa programmation est une succession d’appels d’instructions auxquelles on attribue

des opérandes :

Instruction Opérande1, Opérande2, ..., Opérande n

Une instruction est un micro câblage électronique combinatoire dans lemicroprocesseur, qui délivre en sortie des signaux dépendants des signaux placés àl’entrée. Les entrées sont précisées dans les termes d’opérandes, la destination de lasortie également. L’ensemble des câblages d’instructions est regroupé dans la partie duprocesseur que l’on nomme l’ALU (Arithmétic and Logic Unit). Une instruction est repéréepar un code que l’on peut considérer en première approximation comme la localisationligne-colonne du câblage de l’instruction considérée dans L’ALU.

Figure 5- Structure de l'ALU

L’exécution d’une instruction fait appel, soit à des données venant d’unpériphérique, soit à des résultats intermédiaires (issus d’un calcul précédent). Unprocesseur CISC possède un unique bus de données, il ne peut donc effectuer l’opérationsuivante :

Additionner le contenu de la mémoire d’adresse 100 avec le contenude l’interface de clavier et mettre le résultat dans l’interface d’écran

Il lui faudrait, pour pouvoir faire cela, voir simultanément trois emplacements, or iln’en voit qu’un par l’intermédiaire de son bus de données. Il utilise pour résoudre ceproblème une mémoire interne qu’on appelle Registre de données. L’instruction ci-dessusest alors décomposée de la manière suivante :

Transférer le contenu de la mémoire d’adresse 100 dans le registre dedonnées

Additionner le contenu de l’interface clavier au registre de donnéesCopier le contenu du registre de données dans l’interface écran

Un processeur peut posséder plusieurs registres de données.

Supposons que l’on veuille programmer l’algorithme suivant :

POUR i=2000 A 2100 FAIRECopier le contenu de l’adresse i dans l’adresse i+1000

FINFAIRE

La boucle contient deux définitions d’adresses variables, il est donc nécessaire depouvoir effectuer le calcul d’une adresse. Dans ce cas l’adresse ne peut pas figurer dansle programme. Celui-ci doit en revanche fournir au processeur le moyen de calculerl’adresse. Pour effectuer le calcul on se place dans un Registre d’adresse.

Page 10: Introduction Au Processeurs

10

Un registre d’adresse présente en outre un avantage certain dans un dialogue avecun périphérique (sous réserve que l’on dispose d’un nombre suffisant de registresd’adresse). Le fait d’affecter à un registre l’adresse du périphérique permet de ne plusavoir besoin d’aller lire l’adresse dans le programme, mais en interne, ce qui constitue ungain de temps appréciable. On peut comparer le fonctionnement du microprocesseur ànotre propre fonctionnement ; il est plus rapide d’utiliser une donnée qu’on a en tête qued’aller lire cette donnée dans un livre. Par exemple sur un 68000 on consommera 12cycles d’horloge pour générer une adresse fournie par le programme, alors qu’uneadresse contenue dans un registre d’adresse sera générée en 8 cycles. Il s’agit deregistres d’adresse d’usage général, mais le processeur contient également des registresd’adresse spécialisés. Ces registres sont de deux types. Un registre unique est appeléPointeur de programme. Il sert à localiser dans la mémoire programme la prochaineinstruction à exécuter. La fonction attribuée à l’autre type de registre spécialisé peut secomprendre à l’aide de l’analogie suivante :

Un employé du bureau d’études est entrain d’effectuer un calcul lorsque sontéléphone sonne. Bien sur cet employé ne note pas toutes les étapes de son calcul, il faitappel à sa mémoire. Toutefois s’il répond au téléphone, il ne retiendra pas tout ce quiconcerne le calcul et qu’il avait en tête au moment de l’appel; il est fort probable mêmequ’il ne saura plus à quel stade du calcul il s’était arrêté. Il va donc, avant de décrocher,noter sur son bloc notes tout ce qui lui permettra de reprendre le calcul, et comme le blocnotes est vaste, il va prendre la précaution de noter dans un emplacement unique qu’ilconnaît (dans le creux de sa main par exemple), à quel endroit sur le bloc-notes sontinscrites ces informations. Il peut maintenant répondre au téléphone en toute sécurité. Auretour il lira dans le creux de sa main l’emplacement de la sauvegarde et pourra ainsireprendre son calcul.

Le microprocesseur possède de la mémoire interne (les registres de données etd’adresse déjà mentionné). Si un événement le conduit à se dérouter pour traiter unprogramme relatif à un périphérique, il va utiliser ces registres, il faut donc les sauvegarderauparavant. Il faut aussi sauvegarder le contenu du pointeur de programme quicorrespond à la prochaine instruction dans le programme interrompu. Tout cela estsauvegardé dans la mémoire vive, dans une zone réservée à cet usage, appelée la pile.L’adresse de sauvegarde dans la pile est elle-même sauvée dans le registre appeléPointeur de pile. Sans un tel registre un microprocesseur est incapable de traiter deinterruptions et des sous-programmes.

Enfin un dernier registre est indispensable au fonctionnement. Il permet les prisesde décisions associées aux ruptures de conditionnelles séquence.

L’algorithme suivant représente un cas de prise de décision :

SI condition rempli ALORSEffectuer traitement 1

SINONEffectuer traitement 2

FINSI

Les opérateurs d’évaluation des conditions sont du type <, >, =, >0, <0, etc... LeStatus contient des témoins de résultats d’évaluation que l’on va pouvoir tester pourdécider de la poursuite en séquence ou de la rupture. Prenons comme exemple l’un deces témoins (en anglais flag) présent dans tous les microprocesseurs, c’est le témoin dezéro Z. Chaque opération positionne Z.

Page 11: Introduction Au Processeurs

11

Copier le contenu d’une adresse dans un registrepositionne Z à 1 si le contenu de l’adresse recopiée est 0.

Soustraire une valeur d’un registrepositionne Z à 1 si le résultat de la soustraction est 0. Dès lors il nous est possible

de comparer une valeur calculée (dans un registre) à une autre valeur.

Effectuer un calcul dans un registreSoustraire la valeur 100 au contenu du registreSI Z=1 ALORS

Effectuer Traitement 1SINON

Effectuer traitement 2FINSI

Bien sur il faudra décomposer la structure SI en instructions supportées par leprocesseur concerné. Par exemple les lignes suivantes utilisent un pseudo assembleur :

Brancher à Tr2 SI Z=0<Traitement 1>Brancher à FINSI

Tr2: <Traitement 2>FINSI:

Le jeu d’indicateurs est plus ou moins riche selon le processeur.

Figure 6- Modèle générique d’un processeur CISC

Le modèle générique d’un processeur CISC est présenté sur le schéma de laFigure 6.

III- Les microprocesseurs CISC et les microcontrôleursde MotorolaA- LES CISC1- Le 6800

C’est le premier né qui a une architecture très simple. Une ALU, deux registres dedonnées sur 8 bits appellés les accumulateurs A et B, un registre d’adresse sur 16 bitsque l’on appelle l’index X, un pointeur de pile sur 16 bits, un pointeur de programme sur 16bits et un status sur 8 bits dont 6 utiles. L’architecture de communication repose sur :

Page 12: Introduction Au Processeurs

12

• Un bus de données sur 8 bits (le processeur est dit « vrai 8 bits) car ses registresde données et sont bus de données sont tous sur 8 bits).

• Un bus d’adresse sur 16 bits.• Un bus de contrôle comprenant les signaux suivants :

- Phase d’horloge F 1- Phase d’horloge F 2- Reset- Interruption non masquable NMI- Arrêt HALT- Interruption masquable IRQ- Contrôle trois états TSC- Bus de données actif DBE- Bus disponible (micro en repli) BA- Adresse mémoire valide VMA- Lecture écriture R/W

Le signal « Bus disponible » indique à la périphérie qu’un autre processeur peutprendre le contrôle du bus d’adresse. Cela se produit dans deux cas: la ligne HALT a étéforcée à l’état actif (par celui qui veut prendre le contrôle) ou le processeur est en attented’interruption (provoquée par la rencontre de l’instruction WAI).

2- Le 6802Il ne diffère du 6800 que par deux points :

- Il contient 128 octets de RAM interne adressée de $00 à $7F.- Il possède un état de repli en faible consommation (sur batterie ou pile)

dans lequel la RAM interne est maintenue.

3- Le 6809Il réalise un progrès considérable par rapport au 6800. Son architecture interne se

compose, vue par le programmeur, de :• L’ALU• Un registre de données sur 16 bits pouvant être utilisé comme deux registres

sur 8 bits, assurant la compatibilité avec le 6800. On appelle le registre de 16bits l’accumulateur D et ses deux moitiés l’accumulateur A (octet fort) etl’accumulateur B (octet faible).

• 2 registres d’adresse d’usage général sur 16 bits appelés les index X et Y.• Un registre d’adresse sur 16 bits pouvant être utilisé soit en usage général,

soit comme pointeur de pile.• Un pointeur de pile dédié sur 16 bits.• Un pointeur de programme sur 16 bits.• Un status sur 8 bits tous utilisés.

Son architecture de communication repose sur :• Un bus de données sur 8 bits. On dit de ce fait que le 6809 est un 8/16 bits

car il communique sur 8 bits mais travaille en interne sur 16 bits.• Un bus d’adresse sur 16 bits.• Un bus de contrôle comprenant, outre les signaux déjà cités sur le 6800 :

- Une ligne supplémentaire d’état du bus BS qui combinée avec BApermet de distinguer quatre états.

- Une demande d’interruption rapide FIRQ- Une ligne de synchronisation pour les mémoires lentes- Une ligne de requête d’accès externe mémoire DMA

Page 13: Introduction Au Processeurs

13

Les processeurs 6800 6802 et 6809 sont synchrones, c’est à dire que lespériphériques doivent se synchroniser sur les signaux délivrés par le microprocesseur. Laseule entorse possible est la possibilité d’allonger le cycle du 6809 pour le synchronisersur une mémoire lente.

4- Le 68000Le concept change radicalement, il n’y a plus de compatibilité avec les processeurs

antérieurs.Son modèle de programmation comporte

• L’ALU• Huit registres de données sur 32 bits (utilisables également sur 16 ou 8 bits)• Sept registres d’adresse sur 32 bits (dont 24 seulement sont utilisables)• Deux pointeurs de pile sur 32 bits (dont 24 seulement sont utilisables)• Un pointeur de programme sur 32 bits (dont 24 seulement sont utilisables)• Un status sur 16 bits

L’architecture de communication repose sur :• Un bus de données sur 16 bits (le 68000 est donc un processeur 16/32 bits)• Un bus d’adresse sur 23 bits permettant d’adresser 223 unités de données,

comme les unités vues par le bus de données sont des mots de 16 bits onadresse en fait 224 octets.

• Un bus de contrôle dont les signaux se décomposent en six familles :- Etat du processeur FC0 FC1 FC2- Contrôle des périphériques synchrones E VMA VPA- Contrôle du système Reset Halt BERR- Contrôle des requêtes d’interruption IPL0 IPL1 IPL2- Contrôle de l’arbitrage d’accès au bus BR BG BGACK- Contrôle des dialogues asynchrones AS R/W UDS LDS DTACK

Le processeur est asynchrone, il peut donc se caler sur la vitesse du périphériqueavec lequel il dialogue. C’est le premier à posséder une architecture utilisateur /superviseur qui permet de protéger un système d’exploitation des accès intempestifsd’une application. Cette architecture a permis il y a déjà de nombreuses années, deuxsystèmes d’exploitation robustes, l’un pour la bureautique, le MAC OS (systèmed’exploitation du premier Mac Intosh) l’autre pour l’industrie, OS9.

5- Le 68010Il est passé quelque peu inaperçu alors qu’il apporte par rapport au 68000 des

fonctionnalités intéressantes.

Son modèle de programmation comporte trois registres nouveaux par rapport au68000 :

Un registre de Base Vecteur (VBR) qui définit l’adresse de base de la table desvecteurs d’exception. Ce registre initialisé en 0 est accessible au programmeur. Enpremière approximation un vecteur est un emplacement contenant l’adresse duprogramme associé à chacune des exceptions (les interruptions par exemple).

Les registres de transfert entre espaces (SFC, DFC) qui sont liés à l’existence desmodes utilisateur et superviseur. La encore nous abordons un domaine un peu délicat àexpliquer actuellement. Il est possible d’utiliser l’état du processeur pour décoder desadresses de blocs de mémoire, ainsi on peut dire: dans l’état utilisateur l’adresse 1000 est

Page 14: Introduction Au Processeurs

14

dans un certain pavé de mémoire, dans l’état superviseur elle se trouve dans un autrepavé, l’utilisateur ne peut donc pas voir la mémoire réservée au système d’exploitation.Mais si le système d’exploitation qui a lui tous les droits veut lire des données dansl’espace utilisateur et le recopier dans son propre espace, il doit indiquer dans les registresappropriés à quel espace appartient l’adresse à laquelle il accède faute de quoi il n’accèdequ’à son propre espace.L’architecture de communication est identique à celle du 68000.

6- Le 68020C’est un nouveau bond en avant qui est effectué, mais la compatibilité avec le

68000 reste assurée.Au modèle de programmation du 68010 on ajoute :

- Un troisième pointeur de pile- Deux registres pour contrôler et adresse la mémoire cache.

L’architecture de communication comporte les même grandes parties mais chacuned’elle est considérablement enrichie.

- Le bus de données est sur 32 bits, le 68020 est donc un vrai 32 bits.- Le bus d’adresse est sur 32 bits.- Le bus de contrôle possède beaucoup plus de fonctionnalités pour le

contrôle du bus asynchrone.

La nouveauté repose sur la possibilité de gérer de la mémoire cache, la richessedes modes d’adressage, le registre à barillet qui supprime une contrainte propre au 68000et les algorithmes internes accélérant les traitements. De plus un nouvel état apparaît. Làou le 68000 connaissait un état utilisateur et un état superviseur, le 68020 connaît un étatutilisateur, un état interruption et un état maître. Ces trois états sont hiérarchisés.

7- Le 68030Il apporte par rapport au 68020 une unité de gestion de mémoire paginée (PMMU)

intégrée, un bus synchrone, et une mémoire cache de données interne de 256 octets.Ceci concerne la partie visible pour le programmeur. Mais une autre nouveauté

invisible celle là apporte des accélérations importantes dans les traitements. Alors quepresque tous les CISC ont une architecture Von Neumann, le 68030 a quand à lui unearchitecture Harvard, c’est à dire en première approximation qu’il accepte un certainparallélisme interne cachant des temps d’exécution (on peut faire simultanément unelecture un calcul et une écriture).

Son modèle de programmation comporte les mêmes éléments que le 68020augmentés du registre de contrôle de mémoire paginée et du registre d’adressage decette même mémoire paginée.

8- Evolution du modèle de programmationLes schémas des figure 7 et 8 présentent les modèles de tous les processeurs

présentés.

Page 15: Introduction Au Processeurs

15

Figure 7- Registres internes : 6800, 6802, 6809, 68000, 68010

Figure 8- Registres internes : 68020, 68030

B- La notion de MicrocontrôleurL’objectif d’un microcontrôleur est de diminuer les interconnexions de circuits,

sources de plus-values et de pannes. Pour cela on va intégrer sur la même puce desilicium le microprocesseur et un certain nombre de périphériques.

Comme le microcontrôleur universel n’existe pas il est nécessaire de trouver uncompromis, il est donc rare qu’une application d’un certain niveau se contente despériphériques internes du microcontrôleur, c’est néanmoins possible dans des applicationscomme l’électroménager ou la domotique, et dans les applications de très grande diffusion

Page 16: Introduction Au Processeurs

16

(par exemple les montres) pour lesquelles on n’hésitera pas à fabriquer le microcontrôleursur mesures.

Parmi les périphériques que l’on va intégrer on trouve :- La mémoire RAM- La mémoire ROM ou plus souvent OTPROM- La mémoire EEPROM- Des ports de liaisons parallèles- Des ports de liaison série- Des compteurs temporisateurs- Des convertisseurs numériques analogiques et analogiques numériques- Des contrôleurs de DMA, etc...

C- La familles des microcontrôleursPlusieurs familles de microcontrôleurs existent chez Motorola. La famille la plus

ancienne est la famille 6805, dont l’élément le plus connu, le 68705.

Toutefois les microcontrôleurs Intel occupaient une place plus importante sur lemarché de cette époque. Sans remettre en cause l’intérêt de ces derniers (leur très faiblecoût), la famille 68HC11 a fait progresser dans des proportions importantes le marché deMotorola. Parallèlement au développement de la famille 68HC11, Motorola a, à lademande de sa clientèle, développé des microcontrôleurs ayant un cœur 16 et 32 bits(68000 68020), c’est la famille des 683XX.

Pour les microcontrôleurs nous distinguerons trois approches :

• Le modèle de programmation du cœur, qui correspond au modèle deprogrammation du microprocesseur intégré.

• Le modèle de programmation applicatif, qui définit l’organisation despériphériques internes.

• Le modèle de communication qui peut être de deux natures :- Communication avec des périphériques externes.- Communication avec l’application.

1- Le 6805Son créneau d’application est centré sur le « bas niveau », il n’est donc pas

nécessaire de lui attribuer un cœur très évolué. Il est en effet plus simple que celui du6800, mais possède quelques instructions le rendant plus apte à traiter des applicationsde type « Tout ou Rien » (Instructions de test et forçage de bits).

Le modèle de programmation comporte :- Un registre de données sur 8 bits l’Accumulateur A- Un registre d’adresse sur 8 bits l’Index X- Un pointeur de programme sur 11 bits PC- Un pointeur de pile sur 5 bits SP (invisible à la programmation)- Un status sur 5 bits.

Figure 9- Le modèle de programmation 6805

Page 17: Introduction Au Processeurs

17

Le modèle applicatif fait intervenir les circuits périphériques internes. Les différentesversions se distinguent par la nature et la quantité de ces périphériques. Un modèleapplicatif type est schématisé sur la figure 10 :

Figure 10- Modèle applicatif du 6805

Il n’y a pas de modèle de communication avec les périphériques. Il n’est paspossible avec ce microcontrôleur d’ajouter des périphériques. La seule communication sefait avec l’application elle-même, via les liaisons parallèles des ports A et B, via les entréesanalogiques du port C, ou via l’entrée de comptage et la sortie temporisée du timer.

2- Le 68HC11Beaucoup plus récente que la précédente cette famille bénéficie des progrès en

matière d’intégration sur le silicium. Les périphériques intégrés dans le modèle applicatifne constituent toutefois pas une véritable révolution, en revanche, leurs fonctionnalitéssont étendues, et le cœur est beaucoup plus évolué. Une autre différence majeure : les68HC11 possèdent des bus d’extension optionnels, et peuvent donc enrichir l’application(au détriment bien sur d’un surcroît de câblage.

Le modèle de programmation du 68HC11 se schématise sur la figure 11 :

Figure 11- Le modèle de programmation du 68HC11

Le modèle applicatif du 68HC11 est schématise sur la figure 12 et composé :- De la mémoire ROM- De la mémoire RAM- De la mémoire EEPROM- Un compteur temporisateur sur 16 bits.- Cinq ports parallèles Tout ou Rien pouvant être transformés en :

. Bus d’extension (adresse et données)

. Port série synchrone

Page 18: Introduction Au Processeurs

18

. Port série Asynchrone

. Port d’entrées analogiques

. Entrées de comptage

. Sorties événementielles.Les options nous les retrouvons sur le schéma de la figure 12, sous forme de pointillés.

Figure 12- Modèle applicatif du 68HC11

3- Le 68302Le 68302 est un microcontrôleur de haut de gamme et possède un cœur 68000. Il

s’agit d’un processeur orienté communication multiprotocoles. Le cœur 68000 correspondau modèle de programmation décrit plus haut. Le modèle applicatif se décompose en troisparties :

- Le cœur 68000- Le bloc du système intégré- Le processeur de communication

L’originalité du composant réside aussi bien dans le système intégré que dans leprocesseur de communication et dans les liens qui les unissent. Tout d’abord ceprocesseur de communication gère trois canaux sériels asynchrones, un canal synchroneet un port auxiliaire. Un processeur RISC avec un programme paramétrable parl’utilisateur assure le fonctionnement de cette partie. Les différents canaux peuventaccéder individuellement à plusieurs protocoles, et être associés à plusieurs couchesphysiques de réseaux, par simple configuration. La communication entre les ports sérielset l’application gérée par le cœur 68000 se fait par l’intermédiaire d’une RAM double-accès interne, voyant d’un côté les bus du processeur RISC, de l’autre ceux du 68000.

Vingt huit lignes de communication avec le monde extérieur peuvent être utilisées,soit comme les lignes de dialogue et de protocole des ports sériels, soit comme desentées soties parallèles TOR. Elles sont programmables individuellement.

Le schéma en trois blocs se trouve en figure 13. On notera que les bus du 68000sont disponibles à l’extérieur, le contrôleur n’étant pas autonome. Il faut au minimum luiadjoindre de la ROM externe et de la RAM (l’utilisation de la RAM interne devant êtreréservée à la communication).

Page 19: Introduction Au Processeurs

19

Figure 13- Schéma bloc du 68302

a- Le système intégréLe 68302 est destiné en priorité aux concentrateurs de réseaux puisqu’il peut gérer

simultanément trois voies avec des protocoles différents. Bien que puissant le 68000 estchargé par cette tâche, il est donc vraisemblable qu’il se comportera en coprocesseur d’unprocesseur central, déchargeant ce dernier de toute gestion de réseau. Pour faciliter lacommunication rapide un contrôleur de DMA est intégré, lequel est totalementindépendant des ports sériels et totalement disponible pour le programmeur.

Un contrôleur d’interruptions assure la prise en compte et le contrôle des prioritésdes interruptions internes et externes. Il génère un vecteur en direction du 68000 pourchacune d’elles. En complément ce contrôleur d’interruptions peut prendre en compte leslignes IPL de demande d’interruption de deux manières différentes: soit comme le codagebinaire d’un niveau d’interruption, soit comme trois lignes indépendantes de demandesd’interruption, qui peuvent être sensibles aux niveaux ou aux fronts.

Les deux ports parallèles sont associés à une logique de programmation quidéfinira le rôle de chaque borne individuellement et, le cas échéant, la direction decirculation des données sur cette borne.

La RAM double accès est le lien entre le processeur de communication et le cœur.C’est dans cette RAM de 1152 octets que doivent se situer les buffers des ports sériels.

Trois compteurs temporisateurs sur 16 bits sont à disposition de l’application. L’unde ces temporisateur peut assurer le rôle de chien de garde, c’est à dire qu’il génère uneinterruption s’il n’a pas été réarmé avant son échéance.

Pour faciliter la communication avec les périphériques externes une logique dedécodages de blocs d’adresse est incluse. On peut configurer trois sorties de « chipselect ».

La logique d’adressage des périphériques internes est également située dans cebloc. Lors de l’initialisation les éléments ont une adresse prédéfinie, mais l’utilisateur peutpar programmation leur affecter une adresse de son choix.

La logique de contrôle du système appartient elle aussi à ce bloc.

Page 20: Introduction Au Processeurs

20

b- Le processeur de communicationC’est la partie originale du composant. Elle comporte essentiellement six types de

blocs :- Le processeur RISC- Trois canaux de communication série indépendants qui supportent

différents protocoles de couche liaison tels que HDLC SDLC, le protocolestandard UART, le protocole Communication binaire synchrone (BISYNC),etc...

Les canaux sont appelés SCC (Serial communication contrôler).- Six canaux DMA, un par voie et par sens.- Un interface de couche physique paramétrable, accessible à chaque voie

sérielle, contenant un choix entre quatre types, dont NMSI qui comportetoutes les lignes de protocole modem.

- Un canal sériel synchrone, appelé SCP (Serial communication port).- Deux blocs auxiliaires permettant de créer les lignes nécessaires à certains

protocoles de couche physique. Ces blocs sont désignés par SCM (Serialmanagement contrôler).

Le schéma des deux parties décrites ci-dessus se trouve en figure 14 et 15.

Figure 14- Le système intégré du 68302

Figure 15- Processeur de communication du 68302

Page 21: Introduction Au Processeurs

21

4- Le 68331Il rassemble des fonctions fréquemment présentes dans une application. Il possède

un cœur 68020, mais ses bus de communication avec les périphériques sontconfigurables et ne sont pas nécessairement ceux du 68020. Les données sontéchangées avec l’extérieur sur 16 et non 32 bits, quand aux adresses elles sont sur 24bits. Le bus de contrôle peut être celui du 68020 mais ses fonctions peuvent en êtresimplifiées.

On peut distinguer quatre grands blocs dans le modèle applicatif :- Le cœur (68020)- Le module sériel (QSM)- Le module compteur temporisateur (GPT)- Le module de gestion des bus (SIM)

Figure 16- Modèle applicatif du 68331

a- Rôle du SIMQuelle que soit la configuration du SIM le bus de données (16 bits) ainsi que 19 bits

du bus d’adresse (A0 à A18) ainsi que quelques bits du bus de contrôle sont disponibles àl’extérieur. Les bits d’adresse A19 à A23 ainsi qu’une grande partie des bits de contrôlepeuvent être vus à travers des lignes de port configurables. Par exemple la ligned’adresse A19 peut être, par programmation du SIM, vue de l’extérieur, ou masquée, le bitdu port parallèle correspondant étant alors réservé à un « chip select » pré décodé, ou àune sortie tout ou rien d’usage général. La véritable originalité du composant repose doncsur le SIM qui permet de multiples configurations, s’adaptant à presque toutes lessituations.

b- Le module sériel QSMLes fonctions du bloc appelé QSM sont identiques dans leur esprit à celles

rencontrées sur le 68HC11 dans le module sériel. Il s’agit d’un port asynchrone (UART) etd’un port synchrone haut débit. Un générateur de baud est incorporé à ce bloc.

Les lignes d’interconnexion de ces ports avec le monde extérieur font parties deslignes configurables par le SIM, elles partagent donc les bornes avec d’autres fonctions(chip select).

c- Le module compteur temporisateur GPTLa encore il y a une grande similitude avec le bloc du même nom du 68HC11. Il

comporte deux timers fonctionnant en roue libre (c’est à dire qu’ils comptent enpermanence les signaux de leurs bases de temps). Un bloc de contrôle capture etcomparaison associé aux timers a pour mission de générer des événements vers lemonde extérieur à une « date » donnée, ceci sur une sortie dite de comparaison (sousentendu de temps). Il a également comme faculté celle de dater un événement extérieurse manifestant par un changement d’état sur une entrée dite de capture.

Page 22: Introduction Au Processeurs

22

Un accumulateur d’impulsions (PAC) fonctionne comme celui du 68HC11 ou celuidu 6805, c’est à dire qu’il sait compter le nombre de fronts survenant sur une entrée àl’intérieur d’un créneau matérialisé par l’état 1 d’une autre entrée.

On trouve également dans le bloc GPT un double générateur de modulation delargeurs d’impulsions. Cette fonction utilise l’un des timers roue libre qui peut égalementêtre utilisé pour le fonctionnement des entrées de capture et sorties de comparaison, il y adonc une exclusivité entre les fonctions potentielles, il n’est par exemple pas possible dechoisir une base de temps (réglée par le prédiviseur d’horloge) différente pour lemodulateur de largeurs d’impulsions de celle du contrôle des entrées de capture.

Toute application ne recourt en général qu’à une partie des fonctions potentielles duGPT, c’est pourquoi les connexions de ces fonctions au monde extérieur sont faites parl’intermédiaire d’un port dont les lignes, individuellement peuvent être programméeségalement en entrées sorties tout ou rien d’usage général.

5- Le 68340C’est également un composant non autonome, car lui non plus ne dispose pas de

mémoire interne. Cela rend indispensable la visibilité externe du bus processeur. Le cœurest un 68020 dont quelques rares instructions ont été supprimées.

Le modèle applicatif comporte six modules principaux :- Le cœur (68020)- Deux modules compteurs temporisateurs- Un module double liaison série asynchrone comparable à un DUART- Un module contrôleur de DMA deux canaux- Un module de gestion de bus comparable au SIM du 68331

Figure 17- Modèle applicatif du 68340

a- Le SIMLes blocs périphériques (ports série, canaux DMA et timers) possèdent leurs lignes

dédiées de communication avec l’extérieur. Le SIM gère les bus d’extension et lesfonctions auxiliaires qui peuvent partager les lignes des bus d’extension. Ces fonctionssont les requêtes et accusés de réception d’interruption, les chip select (blocs d’adressespré-décodés) et les ports parallèles tout ou rien. Le schéma des lignes gérées par le SIMest en figure 18.

Sept lignes de requêtes d’interruption sont utilisables, IRQ1 à IRQ7. Chacune d’elleest associée à un niveau de priorité. Le contrôleur d’interruption interne se charge de créerles signaux IPL nécessaires au cœur. A chaque interruption est associé un accusé deréception IACK1 à IACK7. La programmation du SIM permet d’affecter ces lignesindividuellement, soit au fonctions d’interruption, soit aux chip select, soit aux ports

Page 23: Introduction Au Processeurs

23

parallèles, soit au complément du bus d’adresse A24 à A 31, le contrôleur d’interruptionpeut donc être totalement ou partiellement inhibé.

Figure 18- Le SIM du 68340

b- Les compteurs temporisateursLes deux blocs sont indépendants. Chacun d’eux possèdent un compteur sur 16

bits et un étage de prédivision sur 8 bits. Il est possible par une connexion externe decascader les compteurs, offrant ainsi une capacité effective de comptage sur 48 bits.

Les fonctions programmables associées à chaque bloc sont :- Entrées de capture et sorties de comparaison- Génération de signaux carrés- Génération de signaux à rapport cyclique variable- Génération d’impulsions de largeur variable

Pour chaque module on peut choisir le niveau de priorité d’interruption et le numérode vecteur d’interruption. En revanche, les différentes interruptions que chacun peutsollicité sont associées au même vecteur, il faut par conséquent scruter un status pourconnaître la cause de l’interruption.

6- Exemples d’applications à base de microcontrôleursLe 6805, dans sa version REPROM 68705 a été utilisé dans des applications

simples telles que des terminaux dits de poche pour les réglages sur automatesprogrammables. Il a également été expérimentalement testé sur un module de réglagedes fonctions d’un ampli HI-FI, mais ses faibles capacités en RAM en limitent lespossibilités et dans ce dernier cas le 68HC11 lui a été préféré. La présence sur ce dernierde mémoire EEPROM facilite le stockage, sur l’ampli tuner des stations pré-réglées. Surce dernier nous avons également développé des applications de domotique concernant

Page 24: Introduction Au Processeurs

24

des modules de gestion de distribution électrique et de réglage d’appareils de chauffage etd’éclairage. Ces modules peuvent être autonomes ou cascadés par la liaison sériesynchrone, un module maître assure alors la supervision de l’installation. Des modulesutilisant un 68HC11 gèrent les différents mode de paiement (cartes à pré-paiement, carteVisa) Un module maître assure la coordination.

L’application la plus intéressante avec un 68302 est un développement de lasociété suisse Gespac. Il s’agit d’une carte de communication intelligente pouvant êtreutilisée comme concentrateur de réseau. Les trois ports peuvent être associés à différentsprotocoles de réseaux, les basses couches étant gérées directement et de façontransparente pour l’intelligence de la carte, par le processeur de communication. Le cœurassure, quand à lui, les fonctions des hautes couches et en particulier le routage etl’adaptation des protocoles entre eux, on peut donc considérer un tel produit comme unepasserelle.

Le 68331 est utilisé dans un autre développement de la société Gespac. Lecomposant est au cœur d’une unité centrale d’automate programmable dont les modulessont reliés par un réseau FIP. Le réseau FIP étant très exigeant ne peut être mis enoeuvre à partir d’un port série du 68331, en revanche il demande au processus applicatifd’assurer une mise à jour régulière des variables échangées sur le réseau, pour cela leGPT est très utile. En outre le puissance du cœur du 68331 a permis, sans nuire à lagestion du réseau, d’implanter sur les modules un moteur GRAFCET échangeant, via leréseau, des ordres de synchronisation avec les moteurs GRAFCET présents sur lesautres modules.

En ce qui concerne le 68340, c’est un produit de la société française AIM qui nous apermis de nous pencher sur sa mise en oeuvre. Il s’agit, comme dans le cas précédent,d’une unité centrale d’automate programmable. Le 68340 a été retenu ici pour lapuissance du coeur et la simplification de la circuiterie externe par la richesse des chipselect programmables. En outre un automate programmable doit disposer d’une liaison deconnexion à la console de programmation que le 68340 est apte à fournir, tout en laissantune liaison applicative disponible. Par ailleurs le bloc compteur temporisateur met àdisposition des fonctionnalités qui simplifient l’implantation d’un noyau multitâches surl’automate.