FR2772948A1 - Microcontroleur avec interface perfectionnee et procede d'utilisation - Google Patents
Microcontroleur avec interface perfectionnee et procede d'utilisation Download PDFInfo
- Publication number
- FR2772948A1 FR2772948A1 FR9716198A FR9716198A FR2772948A1 FR 2772948 A1 FR2772948 A1 FR 2772948A1 FR 9716198 A FR9716198 A FR 9716198A FR 9716198 A FR9716198 A FR 9716198A FR 2772948 A1 FR2772948 A1 FR 2772948A1
- Authority
- FR
- France
- Prior art keywords
- register
- microcontroller
- interface
- data
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 5
- 238000000034 method Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
Abstract
Pour accélérer les opérations de lecture ou de modification des paramètres de fonctionnement d'un microcontrôleur (1), on prévoit de réaliser une interface (5) munie de trois registres : un registre (9) d'adresse, un registre (8) d'instruction et de donnée, et un registre (7) auxiliaire. Le registre d'instruction et de données pointe par adressage indirect le registre auxiliaire. Le registre d'adresse est par ailleurs doté d'un mécanisme (18) d'incrémentation automatique. Avec l'adressage indirect et l'incrémentation automatique on montre qu'il est possible de réduire le nombre d'interventions extérieures au moment de lectures ou écritures contigües.
Description
MICROCONTROLEUR AVEC INTERFACE PERFECTIONNEE
ET PROCEDE D'UTILISATION
La présente invention a pour objet un microcontrôleur muni d'une interface perfectionnée ainsi qu'un procédé d'utilisation de ce microcontrôleur et de cette interface. L'invention vise à accélérer les relations entre un microcontrôleur et le monde extérieur par le biais de son interface incorporée.
ET PROCEDE D'UTILISATION
La présente invention a pour objet un microcontrôleur muni d'une interface perfectionnée ainsi qu'un procédé d'utilisation de ce microcontrôleur et de cette interface. L'invention vise à accélérer les relations entre un microcontrôleur et le monde extérieur par le biais de son interface incorporée.
Cette accélération concerne principalement la mise au point du fonctionnement du microcontrôleur. Elle pourrait néanmoins concerner toute phase classique d'utilisation du microcontrôleur.
Un microcontrôleur est un circuit comportant, sur un même circuit intégré, d'une part un microprocesseur (ou unité centrale de traitement) et d'autre part une mémoire programme. Le jeu d'instructions du microprocesseur contenu dans la mémoire programme est adapté à un programme, une application que le microcontrôleur doit exécuter. On connaît des microcontrôleurs avec des jeux d'instructions plus ou moins puissants, et donc des programmes plus ou moins importants, selon l'application à laquelle ils sont destinés: contrôle de disque dur dans un microordinateur de type compatible, commande d'un organe quelconque (feu de clignotement) dans le domaine de l'automobile.
La mise au point des jeux d'instructions et du programme des microcontrôleurs est souvent lente et fastidieuse. En effet, le microcontrôleur comporte naturellement une interface pour échanger des informations avec le monde extérieur. Ces informations sont essentiellement des données à recevoir, et des ordres à envoyer, correspondant à l'utilisation future du microcontrôleur. Dans ce but l'interface, comporte un bus de commande, et le plus généralement deux registres d'échange de données ou d'adresses.
L'interface possède en elle-même, en général, un circuit câblé de nature à assurer une conversion série parallèle entre un protocole interne au microcontrôleur (parallèle) et un protocole généralement utilisé dans la relation avec le microcontrôleur (série). Plus généralement l'interface comporte des circuits de conversion de protocole. Dans certains cas, le bus de commande est lui-même inexistant: il est remplacé par une configuration particulière de bits de mots chargés dans les registres d'échange.
Dans tous les cas, pour des raisons de coûts, on admet de réduire la structure d'échange avec le monde extérieur à son strict minimum. Ceci est la raison pour laquelle, en particulier, le nombre de registres est peu élevé.
Il s'ensuit alors une lourdeur d'utilisation du microcontrôleur, notamment lors de la phase de réglage du programme d'utilisation. En effet, au cours d'une telle phase de réglage, le microcontrôleur est en relation avec un circuit hôte. La relation a alors pour but de surveiller le fonctionnement du microcontrôleur.
Dans ce cas, il faut pouvoir lire des états électriques du microcontrôleur à certaines étapes (celles où un défaut de fonctionnement est constaté). La relation a aussi pour but de forcer le fonctionnement du microcontrôleur. Dans ce cas, le circuit hôte va écrire des états dans certains registres du microcontrôleur.
Le circuit hôte a, pour chaque action de lecture effectuée sur le microcontrôleur, à lancer trois opérations:
- une première opération consiste à charger dans les registres d'échange de l'interface, d'une part un ordre de lecture et, d'autre part, l'adresse de l'endroit où une donnée doit être lue dans le microcontrôleur;
- une deuxième opération concerne la mise à exécution de l'ordre chargé;
- et une troisième opération concerne la lecture dans un registre d'échange de l'interface de la donnée lue à l'adresse indiquée.
- une première opération consiste à charger dans les registres d'échange de l'interface, d'une part un ordre de lecture et, d'autre part, l'adresse de l'endroit où une donnée doit être lue dans le microcontrôleur;
- une deuxième opération concerne la mise à exécution de l'ordre chargé;
- et une troisième opération concerne la lecture dans un registre d'échange de l'interface de la donnée lue à l'adresse indiquée.
Ce mécanisme est long. Il pose un problème de durée de mise au point, notamment lorsque le nombre d'emplacements de la mémoire du microcontrôleur à lire est important.
Au moment de l'écriture pour le forçage du microcontrôleur, l'opération est un peu plus courte.
Elle comporte d'une part le chargement de l'ordre d'écriture et de la donnée à écrire, ainsi que de l'adresse où cette donnée doit être écrite dans la mémoire (ou un registre) du microcontrôleur. Au cours d'une deuxième étape le circuit hôte donne l'ordre au microcontrôleur d'exécuter l'instruction d'écriture qui est disponible dans les registres d'échange.
Il faut donc deux étapes dans ce dernier cas pour modifier une donnée. C'est trop long.
Les endroits de la mémoire du microcontrôleur où il faut écrire ou lire sont variés. Dans la suite de cet exposé on se contentera de parler de la mémoire. Cette appellation de mémoire du microcontrôleur concerne autant une mémoire proprement dite que des registres de fonctionnement du microcontrôleur. Cette mémoire peut ainsi être d'une part une mémoire programme: là où sont stockées les instructions à exécuter dans le microprocesseur. D'autre part, elle peut être une mémoire de données: là où sont stockées des données mesurées ou des paramètres de commande du microcontrôleur.
Enfin, cette mémoire pourra représenter un lot de registres de paramétrisation ou de fonctionnement du microcontrôleur: notamment un lot de registres de paramétrisation de ses périphériques. Ainsi il est connu que l'interface elle-même, du fait des différents protocoles qu'elle est susceptible d'accepter, doit être paramétrée par des états mémorisés dans des registres. D'autres périphériques comme des compteurs internes, des registres de fréquence d'horloge, ou même des registres de surveillance du microcontrôleur sont ainsi concernés par les échanges avec l'interface.
Notamment, en ce qui concerne la surveillance du fonctionnement du microcontrôleur, il est prévu, dans certaines applications, de constituer une batterie supplémentaire de registres utilisables, en émulation, pour surveiller le fonctionnement du microcontrôleur.
Cette surveillance est rendue nécessaire lors des étapes de mise au point.
Dans ces conditions, la lenteur des communications effectuées au niveau de l'interface est encore accentuée par la nature structurellement compliquée de la relation en adressage indirect avec les registres supplémentaires.
L'invention a pour objet de résoudre ce problème crucial de la lenteur des échanges, en accélérant notablement le fonctionnement de l'interface. Plutôt que de souscrire à une opération en trois étapes, ou en deux étapes pour l'écriture, l'invention modifie l'architecture du microcontrôleur de façon à ce que celle-ci puisse ne s'effectuer qu'en une seule étape.
Dans l'invention, on dote l'interface d'un registre supplémentaire auxiliaire. En outre, on prévoit un mécanisme d'incrémentation automatique de l'adresse contenue dans l'un des deux registres d'échange prévu à l'origine. En effet, dans l'invention on a remarqué que, notamment pour la mise au point, la surveillance de registres ou de zones mémoires à adresses contigües était principalement envisagée. De ce fait, l'automate ajouté dans la structure de l'invention est un automate qui rajoute un incrément d'adresse correspondant à la contiguïté concernée. Dans la pratique l'incrément d'adresse vaut 1. Il pourrait néanmoins en être autrement.
Dans un perfectionnement, on a même prévu que l'automate lui-même serait corrélé à la lecture ou à l'écriture du registre auxiliaire. Dans ces conditions, il suffit de lire ou d'écrire le registre auxiliaire pour qu'automatiquement un ordre chargé dans le registre de commande s'exécute. On montrera ainsi qu'avec l'invention on va trois fois plus vite pour la gestion de l'interface.
L'invention a donc pour objet un microcontrôleur comportant
- une unité centrale de traitement,
- une mémoire programme et/ou de données en relation avec l'unité centrale,
- une interface d'entrée sortie,
- un premier registre d'échange pour contenir un code instruction et une information relative à une donnée à lire ou à écrire, et un deuxième registre d'échange pour contenir une adresse, les premier et deuxième registres étant reliés à l'interface, et
- un circuit de basculement relié à l'interface, à la mémoire programme et à l'unité centrale, pour basculer, en fonction d'un signal de commande disponible sur cette interface, une liaison de l'unité centrale à la mémoire programme en une liaison aux deux registres d'échange, caractérisé en ce qu'il comporte
- un registre auxiliaire connecté à l'interface,
- un circuit d'incrémentation automatique d'adresse pour incrémenter la valeur d'une adresse contenue dans le deuxième registre d'échange, et
- des moyens d'adressage indirect vers le registre auxiliaire qui prélèvent dans le premier registre d'échange, à titre d'information relative à la donnée, l'adresse du registre auxiliaire où cette donnée est stockée.
- une unité centrale de traitement,
- une mémoire programme et/ou de données en relation avec l'unité centrale,
- une interface d'entrée sortie,
- un premier registre d'échange pour contenir un code instruction et une information relative à une donnée à lire ou à écrire, et un deuxième registre d'échange pour contenir une adresse, les premier et deuxième registres étant reliés à l'interface, et
- un circuit de basculement relié à l'interface, à la mémoire programme et à l'unité centrale, pour basculer, en fonction d'un signal de commande disponible sur cette interface, une liaison de l'unité centrale à la mémoire programme en une liaison aux deux registres d'échange, caractérisé en ce qu'il comporte
- un registre auxiliaire connecté à l'interface,
- un circuit d'incrémentation automatique d'adresse pour incrémenter la valeur d'une adresse contenue dans le deuxième registre d'échange, et
- des moyens d'adressage indirect vers le registre auxiliaire qui prélèvent dans le premier registre d'échange, à titre d'information relative à la donnée, l'adresse du registre auxiliaire où cette donnée est stockée.
L'invention a également pour objet un procédé de lecture écriture dans une mémoire de donnée d'un microcontrôleur à partir d'une interface d'entrée sortie dans lequel:
- on charge dans des premier et deuxième registres d'échange du microcontrôleur un code instruction, une information relative à une donnée à lire ou à écrire, et une adresse,
- on bascule le fonctionnement d'une unité centrale de traitement du microcontrôleur pour que cette unité centrale exécute l'instruction dont le code est chargé dans le premier registre,
caractérisé en ce que:
- on charge la donnée lue ou à écrire dans un registre auxiliaire en relation avec l'interface,
- on incrémente automatiquement avec un automate l'adresse chargée dans le deuxième registre, et
- on exécute avec un adressage indirect orienté vers le registre auxiliaire l'instruction dont le code est chargé dans le premier registre.
- on charge dans des premier et deuxième registres d'échange du microcontrôleur un code instruction, une information relative à une donnée à lire ou à écrire, et une adresse,
- on bascule le fonctionnement d'une unité centrale de traitement du microcontrôleur pour que cette unité centrale exécute l'instruction dont le code est chargé dans le premier registre,
caractérisé en ce que:
- on charge la donnée lue ou à écrire dans un registre auxiliaire en relation avec l'interface,
- on incrémente automatiquement avec un automate l'adresse chargée dans le deuxième registre, et
- on exécute avec un adressage indirect orienté vers le registre auxiliaire l'instruction dont le code est chargé dans le premier registre.
L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci ne sont données qu'à titre indicatif et nullement limitatif de l'invention. Les figures montrent:
figure 1 et figure 2: une représentation schématique d'un microcontrôleur selon l'état de la technique et selon l'invention respectivement.
figure 1 et figure 2: une représentation schématique d'un microcontrôleur selon l'état de la technique et selon l'invention respectivement.
Les figures 1 et 2 montrent un microcontrôleur 1, comportant une unité centrale 2, une mémoire programme 3 et une mémoire de données 4. La mémoire programme et la mémoire de donnée peuvent en pratique être confondues en une seule mémoire. En principe la mémoire programme 3 est une mémoire non volatile ou une mémoire sauvegardée. La mémoire 4 peut être une mémoire volatile. Il est néanmoins possible que la mémoire 3 soit elle-même une mémoire volatile et que son chargement soit prévu au moment de la mise en service du microcontrôleur 1. Les mémoires 3 et 4, symboliquement représentées ici peuvent également comporter des registres de paramétrisation (fonctionnement du microcontrôleur ou de ses périphériques). Elles peuvent également représenter comme indiqué précédemment, des registres de surveillance du fonctionnement du microcontrôleur en mode émulation.
Le microcontrôleur des figures 1 et 2 comporte également une interface d'entrée/sortie 5. L'interface 5 sert à assurer la relation entre un circuit hôte 6 et le microcontrôleur 1. Dans un exemple, le circuit hôte est un micro-ordinateur de type compatible relié à l'interface par une liaison 7 de type RS232. Dans un exemple, l'interface 5 est une interface parallèle/série. En effet, du côté du microcontrôleur l'interface fonctionne en parallèle: il y a autant de fils que nécessaire dans les bus de communication avec les circuits du microcontrôleur. Par contre, dans la relation 7 avec le circuit hôte 6, le nombre de fils est généralement réduit. On connaît même par ailleurs des bus à deux fils. L'interface 5, est donc naturellement chargée d'assurer la conversion de protocole entre l'extérieur et l'intérieur du microcontrôleur 1.
Le microcontrôleur 1 comporte par ailleurs, un premier registre 8 d'échange et un deuxième registre 9 d'échange. Le premier registre 8 est destiné à contenir un code instruction 10 et une information il relative à une donnée à lire ou à écrire. Dans l'état de la technique, figure 1, la donnée chargée dans la partie il du registre 8 est la donnée elle-même: celle qui a été lue ou qui est à écrire telle quelle dans une des mémoires 3 ou 4. Dans l'invention, figure 2, on verra que l'information relative à la donnée à lire ou à écrire est en fait une information d'adresse. L'adresse est celle d'un registre auxiliaire où la donnée lue proprement dite a été écrite, ou bien celle qui étant à écrire a été écrite avant l'écriture. Le registre 9 comporte une information d'adresse de là où il faut lire ou écrire la donnée référencée dans la partie ll du registre 8.
Les circuits des figures 1 et 2, comportent enfin un circuit de basculement 12 pour basculer, en fonction d'un signal de commande, une liaison 13 de l'unité centrale 2 à la mémoire de programme 3, en une liaison 14 de l'unité centrale 2 au jeu des registres 8 et 9.
Le signal de commande du circuit de basculement 12, est véhiculé par un bus 15 relié à l'interface.
Dans l'état de la technique, pour la lecture, le fonctionnement est le suivant. Dans un premier temps, au moyen de l'interface 5, le circuit hôte 6 charge, dans les registres 8 et 9, un code d'instruction dans la partie 10 et une adresse dans le registre 9. Pendant ce temps l'unité centrale 2 est toujours en liaison normale 13 entre sa mémoire programme 3 et sa mémoire de donnée 4, (ou la même mémoire). Au cours d'une deuxième étape, le circuit hôte 6 envoie un ordre à travers l'interface 5, sur le bus 15, de manière à faire basculer le circuit 12. Dans ces conditions, le code instruction chargé dans la partie 10, est transmis, au travers d'un décodeur d'instruction 16 à l'unité centrale 2. Celle-ci exécute l'instruction. Par exemple, l'instruction étant une instruction de lecture, l'unité centrale 2 provoque la lecture dans la mémoire 4, d'une information stockée à une adresse "mem" dont la valeur est stockée dans le registre 9.
Le code instruction chargé dans le registre 10 a ensuite pour effet de faire exécuter par l'unité centrale 2 le transfert de la valeur lue dans la mémoire 4 dans la partie 11 du registre 8. A l'issue de la lecture, la donnée lue à l'adresse "mem" est disponible dans la partie 11 du registre 8. Au cours d'une troisième étape, le circuit hôte 6 va alors aller lire le contenu du registre 8. On voit que cette opération est assez longue.
Dans l'invention, figure 2, on a décidé de modifier l'architecture du microcontrôleur de la figure 1. On y a d'une part ajouté un registre auxiliaire 17. Le registre auxiliaire 17, est connecté d'une part à l'interface, d'autre part à l'unité centrale 2. Ceci signifie que le registre 17 peut être adressé par l'unité centrale 2, de même que par l'interface 5.
Le microcontrôleur 1 de l'invention comporte de plus, un circuit d'incrémentation 18 pour incrémenter automatiquement la valeur d'une adresse contenue dans le deuxième registre 9. Comme indiqué précédemment, l'information stockée dans la partie 11 du registre 8, ne concerne plus la donnée elle-même mais contient, en lecture ou en écriture, l'adresse du registre auxiliaire 17.
L'utilisation du circuit de l'invention, est alors bien plus simple que celui de l'état de la technique.
En effet, dans une version de base, il suffit de piloter le circuit 18 pour provoquer l'incrémentation du lieu où les données sont à lire ou à écrire. Ce pilotage du circuit 18, peut être, dans une première approche, réalisé par une connexion du bus 15 au circuit 18. Le fonctionnement du microcontrôleur 1 est alors le suivant. Pour la lecture d'un endroit de la mémoire, il y a la succession des ordres suivants:
- chargement du code instruction de lecture dans la zone 10, et chargement de l'adresse du registre 17 dans la zone 11 du registre 8. Au cours de la même étape est chargée l'adresse "mem - 1", la zone de la mémoire 4 où doit être lue l'information, dans le registre 9;
- au cours d'une deuxième étape, l'ordre de lecture est envoyé par le bus 15. En même temps que l'ordre de basculement est envoyé au circuit 12, le circuit 18 modifie la valeur de l'adresse stockée dans le registre 9, de cette façon celle-ci devient "mem". Le circuit central de traitement 2 exécute alors l'instruction de lecture chargée dans la zone 10 du registre 8.
- chargement du code instruction de lecture dans la zone 10, et chargement de l'adresse du registre 17 dans la zone 11 du registre 8. Au cours de la même étape est chargée l'adresse "mem - 1", la zone de la mémoire 4 où doit être lue l'information, dans le registre 9;
- au cours d'une deuxième étape, l'ordre de lecture est envoyé par le bus 15. En même temps que l'ordre de basculement est envoyé au circuit 12, le circuit 18 modifie la valeur de l'adresse stockée dans le registre 9, de cette façon celle-ci devient "mem". Le circuit central de traitement 2 exécute alors l'instruction de lecture chargée dans la zone 10 du registre 8.
Cependant, le code d'instruction de cette instruction de lecture est différent du code instruction de l'instruction de lecture dans la figure 1, en ce sens que le résultat lu dans la mémoire 4 ne devra pas être stocké à l'issue dans la zone 11 du registre 8, mais devra l'être dans le registre 17 auxiliaire;
- au cours d'une troisième étape, le circuit hôte 6 lit le résultat dans le registre 17 (au lieu de le lire dans le registre 8).
- au cours d'une troisième étape, le circuit hôte 6 lit le résultat dans le registre 17 (au lieu de le lire dans le registre 8).
Pour cette première lecture il n'y a pas de gain réalisé avec le circuit de l'invention.
Par contre, pour une lecture suivante, il n'est plus nécessaire de charger ni le registre 8 ni le registre 9. Il suffit simplement d'envoyer sur le bus 15 l'ordre de basculement, ou de maintien de la relation 14 entre l'unité centrale de traitement et le jeu des registres 8. Autrement dit, en deux étapes seulement au lieu de trois dans ce cas, les données stockées dans la mémoire 4 à l'adresse "mem + 1" sont disponibles dans le registre 17. On voit donc que dans ce cas, la durée de l'opération de lecture est réduite de 30 %. Ainsi de suite pour les zones suivantes de la mémoire 4.
Pour l'écriture, dans ce cas, la durée serait la même puisqu'il faudrait inscrire dans le registre 17 la donnée à écrire, et lancer l'instruction par un ordre sur le bus 15.
Dans un perfectionnement, on a prévu de se passer de l'ordre envoyé par l'interface 5, sur le bus 15.
Plus exactement, on a décidé de se passer de l'étape au cours de laquelle l'ordre de basculement était envoyé sur le bus 15. Dans ce but, on remplace cette étape, autonome, par une exécution automatique de cette étape à la fin de la lecture ou de l'écriture des données dans le registre 17.
Ainsi, pour la lecture, le code instruction chargé dans la zone 10 du registre 8 est encore différent. Il est tel que l'unité centrale de traitement 2 l'interprète, d'une part, pour lire des données en mémoire 4 et les écrire dans le registre 17, et, d'autre part, pour surveiller le registre 17 ou l'interface 5 et détecter l'instant où le circuit hôte 6 aura lu la donnée disponible dans le circuit 17. En effet, dès que cette lecture est effectuée, l'unité centrale 2 provoque une incrémentation par le circuit 18 de l'adresse dans le registre 9 et l'exécution, à nouveau, du code instruction qui est resté stocké dans le circuit 10. La surveillance de la lecture du registre 17 ou de l'interface 5 se fait d'une manière naturelle par l'unité centrale 2 par la lecture d'un des registres destiné à la gestion du périphérique de l'interface 5 ou du registre 17 comme cela a été envisagé précédemment. La surveillance par l'unité centrale 2 de la lecture du registre 17 ou de l'interface 5 au moment de la lecture est représentée par les liaisons en tirets 20 et 21. La commande de l'incrémentation du circuit 18 est représentée par une liaison en tirets 22. L'unité centrale de traitement 2 sait donc facilement provoquer la réitération des lectures successives et la mise à disposition sur le registre 17 de toutes les données lues.
Pour l'écriture, c'est exactement le même mécanisme qui se produit, sauf que l'unité centrale 2 surveille maintenant le fait que le circuit hôte 6 a écrit une nouvelle donnée dans le registre 17.
En simplifiant, on voit que pour 100 lectures successives le circuit de l'invention nécessite 102 interventions du circuit hôte 6 sur l'interface 5, au lieu de 300 dans l'état de la technique. En ce qui concerne l'écriture, il y aura 101 actions au lieu de 200 dans l'état de la technique. Les gains de vitesse d'échange entre le circuit hôte et le microcontrôleur 2, sont donc très significatifs.
Pour faire cesser l'opération, on peut doter l'unité centrale 2 d'un compteur. Ce compteur serait préchargé en fonction du nombre d'incréments de positions dans la mémoire 4 qu'il y a lieu de considérer. Le compteur serait analogue à un compteur 24 de piles qui prélève les instructions les unes après les autres dans la mémoire programme 3. On peut tout aussi bien, plus simplement, avant de lire ou d'écrire la dernière donnée dans le registre 17, changer le code instruction mémorisé dans la zone 10 du registre 8 de façon à ce que ce code instruction ne prévoie plus l'incrémentation automatique du circuit 18.
On a montré un circuit 18 extérieur à l'unité centrale 2. Cependant, bien naturellement, la fonction du circuit 18 sera elle-même exécutée par l'unité centrale 2. De ce fait, l'automate 18 ne sera classiquement qu'une des opérations naturellement effectuée par l'unité centrale 2. Le comptage pourra également être limité par un comptage par l'unité centrale 2 du nombre d'itérations à entreprendre. Le nombre d'itérations peut même être chargé comme un des arguments du code instruction ou de l'adresse "mem" au démarrage. Alternativement, le circuit hôte 6 pourra comporter un compteur 19 lui indiquant à partir de quand il convient de modifier le code d'instruction chargé dans la zone 10 du registre 8 pour faire cesser l'itération.
Claims (4)
1 - Microcontrôleur (1) comportant
- une unité centrale de traitement (2),
- une mémoire programme (3) et/ou de données (4) en relation avec l'unité centrale,
- une interface (5) d'entrée sortie,
- un premier registre d'échange (8) pour contenir un code instruction et une information relative à une donnée à lire ou à écrire, et un deuxième registre d'échange (9) pour contenir une adresse, les premier et deuxième registres étant reliés à l'interface, et
- un circuit (12) de basculement relié à l'interface, à la mémoire programme et à l'unité centrale, pour basculer, en fonction d'un signal (15) de commande disponible sur cette interface, une liaison (13) de l'unité centrale à la mémoire programme en une liaison (14) aux deux registres, caractérisé en ce qu'il comporte
- un registre auxiliaire (17) connecté à l'interface,
- un circuit (18) d'incrémentation automatique d'adresse (mem) pour incrémenter la valeur d'une adresse contenue dans le deuxième registre, et
- des moyens d'adressage indirect vers le registre auxiliaire qui prélèvent (10) dans le premier registre, à titre d'information relative à la donnée, l'adresse du registre auxiliaire (17) où cette donnée est stockée.
2 - Microcontrôleur selon la revendication 1, caractérisé en ce qu'il comporte
- des moyens (20, 21) pour lancer l'exécution de l'instruction dont le code est chargé dans le premier registre dès que l'interface a lu ou écrit des données dans le registre auxiliaire.
3 - Procédé de lecture écriture dans une mémoire de donnée d'un microcontrôleur (1) à partir d'une interface (5) d'entrée/sortie dans lequel
- on charge dans des premier (8) et deuxième (9) registres d'échanges du microcontrôleur un code instruction (10), une information (11) relative à une donnée à lire ou à écrire, et une adresse (mem),
- on bascule (12) le fonctionnement d'une unité centrale de traitement (2) du microcontrôleur pour que cette unité centrale exécute l'instruction dont le code est chargé dans le premier registre,
caractérisé en ce que
- on charge la donnée lue ou à écrire dans un registre auxiliaire (17) en relation avec l'interface,
- on incrémente (18) automatiquement avec un automate l'adresse chargée dans le deuxième registre, et
- on exécute avec un adressage indirect (11) orienté vers le registre auxiliaire l'instruction dont le code est chargé dans le premier registre.
4 - Procédé selon la revendication 3, caractérisé en ce que
- on exécute l'instruction dont le code est chargé dans le premier registre à chaque fois (20, 21) que le registre auxiliaire est lu ou écrit par l'interface.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9716198A FR2772948B1 (fr) | 1997-12-19 | 1997-12-19 | Microcontroleur avec interface perfectionnee et procede d'utilisation |
US09/213,522 US6182207B1 (en) | 1997-12-19 | 1998-12-17 | Microcontroller with register system for the indirect accessing of internal memory via auxiliary register |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9716198A FR2772948B1 (fr) | 1997-12-19 | 1997-12-19 | Microcontroleur avec interface perfectionnee et procede d'utilisation |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2772948A1 true FR2772948A1 (fr) | 1999-06-25 |
FR2772948B1 FR2772948B1 (fr) | 2000-03-10 |
Family
ID=9514874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9716198A Expired - Fee Related FR2772948B1 (fr) | 1997-12-19 | 1997-12-19 | Microcontroleur avec interface perfectionnee et procede d'utilisation |
Country Status (2)
Country | Link |
---|---|
US (1) | US6182207B1 (fr) |
FR (1) | FR2772948B1 (fr) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401167B1 (en) | 1997-10-10 | 2002-06-04 | Rambus Incorporated | High performance cost optimized memory |
AU9604698A (en) * | 1997-10-10 | 1999-05-03 | Rambus Incorporated | Method and apparatus for two step memory write operations |
DE10147956B4 (de) * | 2001-09-28 | 2007-10-31 | Infineon Technologies Ag | Halbleiterspeichereinrichtung |
US7506133B2 (en) * | 2003-08-20 | 2009-03-17 | Seiko Epson Corporation | Method and apparatus for high speed addressing of a memory space from a relatively small address space |
JP4984666B2 (ja) * | 2006-06-12 | 2012-07-25 | ソニー株式会社 | 不揮発性メモリ |
JP2008078800A (ja) * | 2006-09-19 | 2008-04-03 | Ricoh Co Ltd | 画像形成装置 |
KR100967026B1 (ko) * | 2009-01-21 | 2010-06-30 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그 캐쉬리드 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5426769A (en) * | 1993-08-26 | 1995-06-20 | Metalink Corp. | System and method for producing input/output expansion for single chip microcomputers |
US5524267A (en) * | 1994-03-31 | 1996-06-04 | International Business Machines Corporation | Digital I/O bus controller circuit with auto-incrementing, auto-decrementing and non-incrementing/decrementing access data ports |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2364254B2 (de) * | 1973-12-22 | 1976-03-18 | Schaltungsanordnung fuer datenverarbeitende geraete | |
US3972025A (en) * | 1974-09-04 | 1976-07-27 | Burroughs Corporation | Expanded memory paging for a programmable microprocessor |
GB1540923A (en) * | 1975-12-01 | 1979-02-21 | Intel Corp | Programmable single chip mos computer |
US5428760A (en) * | 1991-12-12 | 1995-06-27 | Intel Corporation | Circuitry and method for sharing internal microcontroller memory with an external processor |
-
1997
- 1997-12-19 FR FR9716198A patent/FR2772948B1/fr not_active Expired - Fee Related
-
1998
- 1998-12-17 US US09/213,522 patent/US6182207B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5426769A (en) * | 1993-08-26 | 1995-06-20 | Metalink Corp. | System and method for producing input/output expansion for single chip microcomputers |
US5524267A (en) * | 1994-03-31 | 1996-06-04 | International Business Machines Corporation | Digital I/O bus controller circuit with auto-incrementing, auto-decrementing and non-incrementing/decrementing access data ports |
Also Published As
Publication number | Publication date |
---|---|
FR2772948B1 (fr) | 2000-03-10 |
US6182207B1 (en) | 2001-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2606903A1 (fr) | Procede et dispositif de gestion de points d'arret dans un moniteur de logiciel | |
FR2772948A1 (fr) | Microcontroleur avec interface perfectionnee et procede d'utilisation | |
BE1001065A3 (fr) | Conversion du mode de signaux de commande pour ordinateurs. | |
FR2738367A1 (fr) | Procede et appareil de telechargement rapide de fonctions dans une memoire volatile | |
EP3258380B1 (fr) | Coeur de processeur asynchrone et microcontrôleur de noeud de capteur communicant comportant un tel coeur de processeur | |
EP0742516A2 (fr) | Dispositif de mise en service d'un circuit intégré | |
FR2685106A1 (fr) | Systeme de commande d'interruption d'entree/sortie pour une machine virtuelle. | |
EP0540427A1 (fr) | Circuit d'interface pour carte à circuit intégré | |
FR2752631A1 (fr) | Procede de chargement d'un systeme d'exploitation | |
FR2632092A1 (fr) | Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385 | |
FR2708359A1 (fr) | Procédé pour exploiter un processeur numérique de signal et dispositif mettant en Óoeuvre le procédé. | |
JPH10214203A (ja) | 情報処理装置 | |
FR2902254A1 (fr) | Pilotage d'un dispositif multifonctions | |
EP1632863B1 (fr) | Dispositif programmable d'interface de commande | |
EP0635789A1 (fr) | Circuit intégré du type microcontroleur à mémoire morte contenant un programme générique, notamment de test, station de test et procédé de fabrication correspondants | |
JP2556268B2 (ja) | プログラムダウンロード方式 | |
JPH0740244B2 (ja) | マイクロプロセツサ | |
FR2772949A1 (fr) | Partage de l'adressage indirect des registres d'un peripherique dedie a l'emulation | |
EP0575228A1 (fr) | Procédé pour charger un programme dans une mémoire de programmes associée à un processeur | |
FR2897174A1 (fr) | Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur | |
EP0006485A1 (fr) | Dispositif d'adressage de pages dans un système de traitement de données | |
CA2150285A1 (fr) | Dispositif pour l'optimisation des performances d'un processeur | |
WO2002073622A1 (fr) | Dispositif electronique a memoire et procedes de commande d"un tel dispositif | |
FR2824650A1 (fr) | Systeme de traitement de donnees et procede de distribution d'acces a des memoires | |
JPH07311731A (ja) | ディジタル信号処理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20070831 |