Brevet FR2871254A1 — publié le 20051209

DISPOSITIF DE COMMANDE ET PROCÉDÉ POUR TRAITER DES INSTRUCTIONS La présente invention se rapporte à un dispositif de commande et en particulier au traitement d'instructions par le dispositif de commande. Un microprocesseur ou, de manière générale, un dispositif de commande comporte un ensemble défini d'instructions. Cet ensemble d'instructions est utilisé pour écrire un programme d'ordinateur qui sera exécuté par le microprocesseur. Pour cela, le microprocesseur comporte une unité de décodage qui convertit les instructions de programme en des signaux de commande. Les signaux de commande sont traités par une unité de calcul du microprocesseur. Les microprocesseurs actuels sont classiquement fondés sur une architecture à 32 bits. Cela signifie qu'ils sont capables de traiter des instructions de 32 bits. À part des instructions de 32 bits, un microprocesseur 1s de 32 bits peut généralement également traiter des instructions de 16 bits. Des instructions de 32 bits permettent d'exécuter des fonctions complexes. Par rapport à des instructions de 16 bits, elles nécessitent une quantité plus grande d'espace mémoire. Lorsqu'un certain algorithme est mis en oeuvre par un programmeur, il peut se faire que certaines instructions apparaissent très fréquemment. Si ces instructions fréquemment utilisées sont des instructions à 32 bits, elles vont nécessiter une grande quantité de mémoire programme. En particulier dans des microdispositifs de commande ou microcontrôleurs employés dans le domaine des cartes à puce, l'espace mémoire disponible pour un programme est limité. Des instructions de 32 bits fréquemment utilisées ayant une grande exigence en terme d'espace mémoire peut entraîner des problèmes d'espace mémoire. Un autre inconvénient des instructions à 32 bits est une diminution du rapport de performance sur dimension de code d'un système microcontrôleur due à une utilisation d'antémémoire ou de mémoire cache médiocre puisque comparées à des instructions à 16 bits, uniquement moitié moins d'instructions à 32 bits peuvent être mémorisées dans une antémémoire ayant une dimension d'antémémoire déterminée à l'avance. Pour des solutions FPGA, il y a des solutions sur la manière dont peuvent apparaître des CPU ou unités centrales de programmation pouvant être reconfigurées. En outre, il y a une manière de donner à un programmeur plus de liberté au moyen d'un microcode et de produire un code programmable de cette manière. Ces possibilités cependant sont des inconvénients puisqu'ils ne peuvent ni être utilisées pour des systèmes fixés dans du matériel et n'ont qu'une petite souplesse. L'objectif de la présente invention est de mettre à disposition un dispositif de commande ou dispositif de commande et un procédé pour traiter des instructions et un programme d'ordinateur pour exécuter le procédé permettant d'avoir une grande souplesse à un coût supplémentaire modéré. La présente invention vise un dispositif de commande, caractérisé en ce qu'il comporte: io des moyens de réception pour recevoir une instruction; des moyens de comparaison formés pour fournir un signal de commutation en réponse à l'instruction reçue correspondant à une instruction de caractère générique déterminée à l'avance; des moyens pour fournir une instruction de remplacement 15 déterminée à l'avance; et des moyens d'émission en sortie formés pour émettre en sortie l'instruction reçue ou une instruction de remplacement déterminée à l'avance en fonction du signal de commutation. La présente invention se rapporte également à un procédé pour 20 traiter des instructions, le procédé destiné à recevoir des instructions comportant les étapes qui consistent à : a) recevoir une instruction; b) fournir un signal de commutation en réponse à l'instruction reçue correspondant à une instruction de caractère générique déterminée à 25 l'avance; et c) émettre en sortie l'instruction reçue ou une instruction de remplacement déterminée à l'avance en fonction du signal de commutation. La présente invention se rapporte également à un programme d'ordinateur ayant un code de programme pour mettre en oeuvre le procédé suivant l'invention lorsque le programme d'ordinateur tourne sur un ordinateur. La présente invention est fondée sur le fait qu'une ressource supplémentaire incorporée dans un dispositif de commande permet d'obtenir un rapport performance sur dimension de code amélioré pour un système de dispositif de commande. La présente invention permet de faire correspondre des instructions de configuration ou des codes opérationnels ou codes op d'instruction déjà présents à des codes op plus courts sur un dispositif de commande ou dispositif de commande ou microprocesseur. Ceci est particulièrement intéressant pour des programmateurs nécessitant de manière fréquente des instructions spéciales ayant des codes op ou codes opérationnels longs. Des instructions de ce genre peuvent conformément à la présente invention être exécutées sous une forme longue, telle que par exemple une mise en oeuvre à 32 bits, ou être mises en dérivation en combinaison avec une instruction de caractère générique à 16 bits par exemple plus petite et ainsi être mises en oeuvre d'une manière qui sauvegarde du code. io Un avantage de la présente invention est un rapport dimensionperformance de code amélioré du microcontrôleur. En outre, la performance ou le rendement est accru(e) par une utilisation d'antémémoire améliorée. Un autre avantage essentiel dans ce contexte est la possibilité de substituer des instructions erronées et d'obtenir ainsi une sécurité de conception plus grande. Des modes de réalisation préférés de la présente invention sont décrits dans la suite plus en détail en se référant aux dessins annexés dans lesquels: la Figure 1 représente une illustration sous forme d'un schéma d'un 20 dispositif de commande conforme à la présente invention; la Figure 2 représente une illustration sous forme de schéma détaillé d'un dispositif de commande ou dispositif de commande conforme à la présente invention; et la Figure 3 représente un autre mode de réalisation d'un dispositif 25 de commande conforme à la présente invention. Des références numériques similaires ou identiques sont utilisées dans la description qui suit de modes de réalisation préférés de la présente invention pour des éléments illustrés dans les différents dessins et ayant des effets similaires et une répétition de leur description sera omise. La Figure 1 représente une illustration sous forme d'un schéma d'un dispositif de commande ou dispositif de commande conforme à la présente invention. Le dispositif de commande comporte des moyens 102 de réception, des moyens 104 de comparaison et des moyens 106 pour fournir. Les moyens 102 de réception sont formés pour recevoir une instruction 112 et pour fournir une instruction 114 reçue aux moyens 104 de comparaison et aux moyens 106 pour fournir. Les moyens 104 de comparaison sont formés pour comparer l'instruction 114 reçue avec une instruction de caractère générique déterminée à l'avance. En fonction d'un résultat de comparaison, les moyens 104 de comparaison fournissent un signal 116 de commutation aux moyens pour fournir. En fonction du signal 116 de commutation, les moyens 106 pour fournir vont émettre en sortie une instruction 114 reçue ou une instruction de remplacement déterminée à l'avance en tant qu'une instruction 118 effective. L'instruction effective est classiquement reçue et décodée par des moyens de décodage (non représentés à la Figure 1). Une instruction est classiquement une instruction pouvant être lue io par machine comportant un code op ou code d'opération et une opérande. Le code op ou code d'opération définit une opération à exécuter par l'instruction. Des codes op sont généralement courts et limités par l'ensemble d'instructions. Une opérande définit des valeurs à traiter par le code op, qui sont transférées directement ou sont présentes dans des registres ou mémoires. Des opérandes sont uniquement limitées par une architecture de système. L'instruction 112 est une instruction provenant d'un ensemble d'instructions défini pour le dispositif de commande. L'ensemble d'instructions comporte au moins une instruction de caractère générique déterminée à l'avance. L'instruction de caractère générique déterminée à l'avance va contrairement à d'autres instructions de l'ensemble d'instructions être référée par la suite comme étant une instruction normale, qui n'est pas décodée par le dispositif de commande et ainsi qui n'invoque pas une opération dans une unité de calcul (non représentée à la Figure 1) du dispositif de commande. L'instruction de caractère générique déterminée à l'avance est caractérisée par la largeur de bit la plus petite possible. Les moyens 102 de réception pour recevoir l'instruction 112 sont classiquement une mémoire tampon d'entrée du dispositif de commande. En variante, les moyens 102 de réception peuvent être une ligne de transit. En correspondance avec cette conception, les moyens 102 de réception vont émettre en sortie une instruction 112 directement ou par exemple sous une forme synchronisée en tant que l'instruction 114 reçue. Les moyens 104 de comparaison vérifient si l'instruction 114 reçue est l'instruction de caractère générique déterminée à l'avance ou une instruction normale. Le signal de commutation fourni par les moyens 104 de comparaison indique si l'instruction 114 reçue est l'instruction de caractère générique déterminée à l'avance ou une instruction normale. Si l'instruction 114 reçue est une instruction normale, elle sera émise en sortie par les moyens 106 pour fournir pour être en tant qu'une instruction 118 effective. Si cependant l'instruction 114 reçue est l'instruction de caractère générique déterminée à l'avance, les moyens 106 pour fournir n'émettront pas en sortie l'instruction de caractère générique déterminée à l'avance en tant que l'instruction 118 effective, mais une instruction remplaçante déterminée à l'avance d'une manière commandée par le signal 116 de commutation. L'instruction de remplacement déterminée à l'avance est mémorisée dans les moyens 106 io pour fournir une instruction de remplacement déterminée à l'avance. En variante, l'instruction de caractère générique peut également être une instruction normale ou pouvant être exécutée. La Figure 2 représente une illustration sous forme d'un schéma détaillé d'un mode de réalisation du dispositif de commande ou dispositif de commande représenté à la Figure 1. Dans ce mode de réalisation, les moyens 202 de réception sont réalisés en tant qu'une ligne qui par exemple émane d'une mémoire de programme (non représentée à la Figure 2), telle que par exemple une architecture d'antémémoire, et fournit une instruction 214 reçue à des moyens 204 de comparaison. Conformément à ce mode de réalisation, les moyens 206 pour fournir comportent des moyens 206a de mémoire, des moyens 206b de commutation et une ligne 206c d'instruction de remplacement. Les moyens 204 de comparaison sont connectés aux moyens 206b de commutation par l'intermédiaire d'un signal 216 de commutation. Les moyens 206b de commutation émettent en sortie une instruction 218 effective. Dans ce mode de réalisation, l'instruction 214 reçue est une instruction à n bits. Les moyens 206a de mémoire sont formés pour mémoriser une instruction de remplacement de n bits déterminée à l'avance et la ligne 206c d'instruction de remplacement comporte également une 3o largeur de n bits. Les moyens 206b de commutation sont connectés à la fois aux moyens 202 de réception pour recevoir l'instruction 214 reçue et à la ligne 206c d'instruction de remplacement pour recevoir l'instruction de remplacement déterminée à l'avance. Commandés par le signal 216 de commutation, les moyens 206b de commutation vont émettre en sortie soit l'instruction 214 reçue soit l'instruction de remplacement déterminée à l'avance. Le signal 216 de commutation dans ce mode de réalisation est formé en tant qu'un signal à 1 bit. Ceci est suffisant puisque le signal 216 de commutation indique uniquement si les moyens 204 de comparaison ont reconnu une instruction normale ou une instruction de caractère générique déterminée à l'avance en tant qu'une instruction 214 reçue. Conformément à un mode de réalisation spécial, les moyens 204 de comparaison sont un décodeur, les moyens 206a de mémoire sont un registre CSFR qui peut être chargé au moyen d'une opération MTCR, et les moyens 206b de commutation sont un multiplexeur. Le dispositif de commande est un dispositif de commande 88 et les instructions 214 reçue io correspondent à un code op de 32 bits ou à un code op de 16 bits. L'instruction de caractère générique déterminée à l'avance est un code op de 16 bits. L'opération MTCR est déclenchée par une instruction d'écriture écrivant l'instruction de remplacement déterminée à l'avance dans le registre CSFR. Le registre CSFR est un registre de retenue mémorisant l'instruction de remplacement déterminée l'avance. Une nouvelle instruction de remplacement peut être définie comme étant une entrée CSFR en écrivant dans le CSFR supplémentaire au moyen de l'opération MTCR, même pendant qu'un programme tourne. Un code op à 16 bits supplémentaire sous la forme de l'instruction de caractère générique déterminée à l'avance est interprété par le décodeur 204 de sorte qu'une alternative à l'instruction définie sera exécutée à la place d'une instruction décodée. L'architecture décrite en se référant à la Figure 2 utilise une ressource incorporée supplémentaire sous la forme du CSFR et permet ainsi un rapport performance-dimension de code amélioré pour le dispositif de commande ou dispositif de commande en ajoutant une zone supplémentaire relativement petite, par exemple en définissant un ou plusieurs CSFR et un code op à 16 bits réservé en tant qu'une instruction de caractère générique. Présenté différemment, la Figure 2 représente une vue globale sous forme de schéma d'un système dans lequel une instruction de remplacement ou une instruction 211 effective peut être transférée à une CPU (non représentée à la Figure 2) conformément à la présente invention en programmant une CSFR et en utilisant un code op supplémentaire sous la forme d'une instruction de caractère générique déterminée à l'avance. La Figure 3 représente une illustration sous forme d'un schéma d'un autre mode de réalisation de la présente invention. Conformément à la description de la Figure 1, le dispositif de commande représenté à la Figure 3 comporte des moyens 102 de réception et des moyens 104 de comparaison. Des moyens 306 pour fournir dans ce mode de réalisation comporte une entrée supplémentaire. Les moyens 306 pour fournir fournissent l'instruction 118 effective à une unité 320 de décodage/de calcul du dispositif de commande ou dispositif de commande. L'unité 320 de décodage/de calcul est connectée à des moyens 322 de mémoire et à des moyens 324 pour écrire. Les moyens 320 de décodage/de calcul sont connectés aux moyens 322 de mémoire par l'intermédiaire d'un signal 326 de mémoire et connectés aux moyens 324 pour écrire par l'intermédiaire d'un signal 328 de io commande d'écriture. Les moyens 324 pour écrire sont connectés aux moyens pour fournir par l'intermédiaire d'un signal 330 d'écriture. Une instruction de remplacement déterminée à l'avance est écrite dans les moyens 306 pour fournir une instruction de remplacement déterminée à l'avance par l'intermédiaire du signal 330 d'écriture. L'instruction de is remplacement déterminée à l'avance est mémorisée dans les moyens 306 pour fournir et émise en sortie en tant qu'une instruction 118 effective d'une manière commandée par le signal 116 de commutation jusqu'à ce qu'une nouvelle instruction de remplacement déterminée à l'avance soit écrite dans les moyens 306 pour fournir par le signal 307 d'écriture. Les moyens 320 de décodage/de calcul sont formés pour décoder l'instruction reçue ou l'instruction de remplacement déterminée à l'avance en un signal de commande. Le signal de commande fait en sorte que les moyens de calcul, qui dans ce mode de réalisation sont intégrés dans les moyens 320 de calcul/de décodage ou réalisés de manière supplémentaire en tant que moyens 324 pour écriture, exécute une opération définie par l'instruction reçue ou l'instruction de remplacement déterminée à l'avance. L'instruction de remplacement déterminée à l'avance est définie de préférence par un programme exécuté par le dispositif de commande. Lorsqu'une partie de programme comporte une instruction récurrente de manière fréquente nécessitant plus d'espace mémoire que l'instruction de caractère générique déterminée à l'avance, il est avantageux de substituer l'instruction récurrente de manière fréquente dans cette partie de programme par l'instruction de caractère générique déterminée à l'avance. Avant que l'instruction 102 de caractère générique déterminée à l'avance ne soit reçue pour la première fois par les moyens 102 de réception, l'instruction de remplacement sous la forme de l'instruction de remplacement déterminée à l'avance est écrite dans les moyens 306 pour fournir. Classiquement, cela a lieu par l'intermédiaire d'une instruction d'écriture spéciale. Un remplacement d'instruction récurrent de manière fréquente par une instruction de caractère générique déterminée à l'avance peut être effectuée directement par un programmateur ou par un dispositif de compilage conçu de manière correspondante convertissant un programme en une séquence d'instructions pouvant être lue par machine, les instructions de la séquence d'instructions provenant de l'ensemble d'instructions du dispositif de commande. Conformément à un mode de réalisation, une instruction pour écrire io une instruction de remplacement déterminée à l'avance vers les moyens 306 pour fournir fait en sorte que les moyens 320 de calcul/de décodage écrivent l'instruction de remplacement déterminée à l'avance vers les moyens 306 pour fournir par l'intermédiaire des moyens 324 pour écrire. Ici, l'instruction de remplacement déterminée à l'avance est définie par l'instruction pour écrire. En variante, l'instruction de remplacement déterminée à l'avance est mémorisée dans la mémoire 322. Plusieurs instructions de remplacement déterminées à l'avance peuvent être mémorisées de manière fixe dans les cellules de mémoire de la mémoire 322 ou en tant que résultat d'un sousprogramme d'initialisation dû ou bien être dû au fait qu'un programme tourne. Dans ce cas l'instruction pour écrire fait en sorte que les moyens 320 de décodage/de calcul extraient une instruction de remplacement déterminée à l'avance d'une cellule de mémoire et l'écrivent dans les moyens 306 pour fournir par l'intermédiaire des moyens 324 pour écrire. Conformément à un autre mode de réalisation, des moyens pour fournir comportent plusieurs instructions de remplacement ou plusieurs moyens pour fournir sont mis en oeuvre dans un dispositif de commande ou contrôleur. Ceci permet d'utiliser une séquence d'instruction incluant plusieurs instructions par une instruction de caractère générique déterminée à l'avance unique. Lorsque le dispositif de commande comporte en outre une pluralité de moyens de comparaison ou lorsque des moyens de comparaison peuvent différencier entre plusieurs instructions de caractère générique déterminée à l'avance et peuvent indiquer cela par l'intermédiaire d'un signal de changement étendu, différentes instructions de caractère générique déterminées à l'avance correspondant à des instructions normales différentes peuvent être employées dans un programme. Le fait qu'un décodeur conformément à la technique de l'invention soit activé pour modifier des instructions en multiplexant le train de codes op et le contenu du CSFR permet de programmer une instruction reconfigurable. Ceci permet d'avoir un code op alternatif à chaque instruction du coeur ou noyau. Ainsi, la possibilité apparaît de représenter des instructions de 32 bits par des instructions de 16 bits. De la même manière, il est également possible de remplacer une instruction de 16 bits par une autre instruction de 16 bits. Ainsi une architecture à 32 bits est uniquement choisie à titre d'un exemple. La technique suivant l'invention peut être utilisée de manière avantageuse lo dans n'importe quelle autre architecture, et notamment également dans une architecture à 64 bits. Un aspect essentiel dans ce contexte et la possibilité de remplacer des instructions erronées et d'ainsi obtenir une sécurité de conception plus grande. II est possible de déposer des instructions dans une mémoire, telle que par exemple une NVM, pour les charger dans un fichier de registre et dans les écrire dans le CSFR au moyen d'une opération MTCR et d'exécuter ensuite ceux-ci par un code op court. À la place de l'instruction de caractère générique déterminée à l'avance qui est une instruction définie de l'ensemble d'instructions du dispositif de commande, une instruction non définie peut également être utilisée lorsque les moyens de comparaison sont formés pour fournir le signal de changement sensible à la reconnaissance d'une instruction non définie. Conformément à un autre mode de réalisation, les moyens de comparaison peuvent être programmés et n'importe quelle instruction peut être programmée dans les moyens de comparaison en tant que l'instruction de caractère générique déterminée à l'avance. À titre de variante au processus d'écriture décrit d'une instruction de remplacement déterminée à l'avance dans les moyens pour fournir, n'importe quelle autre manière peut être utilisée pour définir une instruction de remplacement déterminée à l'avance dans les moyens pour fournir. L'instruction de remplacement par exemple peut également être programmée de manière fixe ou être programmée par l'intermédiaire de moyens de commande supplémentaires, par exemple par des lignes de commande provenant du dispositif de commande. Le dispositif de commande peut être ainsi un circuit pour traiter des instructions conformément à la technique suivant l'invention, un microcontrôleur ou un microprocesseur ayant une Io architecture simple ou un processeur sophistiqué. Les moyens de décodage/de calcul représentés à la Figure 3 représentent une unité de calcul quelconque et en particulier il peut s'agir d'une pluralité d'unités de calcul, telles que par exemple une CPU ou une ALU d'un microprocesseur. En fonction des circonstances, le procédé suivant l'invention peut être mis en oeuvre dans du matériel ou du logiciel. La mise en oeuvre peut se faire sur un support de stockage numérique, en particulier un disque ou un compact-disc ou CD, ayant des signaux de commande qui peuvent être extraits de manière électronique, qui peuvent coopérer avec un système io d'ordinateur pouvant être programmé, tel que le procédé correspondant soit exécuté. En général, l'invention inclut également un produit de programme d'ordinateur ayant un code de programme mémorisé sur un support pouvant être lu par machine pour effectuer le procédé suivant l'invention lorsque le produit de programme d'ordinateur tourne sur un ordinateur. Dit différemment, is l'invention peut également être réalisée en tant qu'un programme d'ordinateur ayant un code de programme pour mettre en oeuvre le procédé lorsque le programme d'ordinateur tourne sur un ordinateur. REVENDICATIONS 1. Dispositif de commande, caractérisé en ce qu'il comporte: des moyens (102, 202) de réception pour recevoir une instruction (112) ; des moyens (104, 204) de comparaison formés pour fournir un signal (116, 216) de commutation en réponse au fait que l'instruction reçue correspond à une instruction de caractère générique déterminée à l'avance; des moyens (106, 206a, 206b) pour fournir formés pour émettre en sortie l'instruction reçue ou une instruction de remplacement déterminée à l'avance en fonction du signal de commutation. 2. Dispositif de commande suivant la revendication 1, caractérisé en ce que les moyens (306) pour fournir sont formés pour recevoir et mémoriser l'instruction de remplacement déterminée à l'avance. 3. Dispositif de commande suivant la revendication 2, caractérisé en ce qu'il comporte en outre des moyens (324) pour écrire formés pour écrire l'instruction de remplacement déterminée à l'avance vers les moyens (306) pour fournir en réponse à une instruction d'écriture. 4. Dispositif de commande suivant la revendication 3, caractérisé en ce qu'il comporte en outre une mémoire (322) pour mémoriser une instruction de remplacement déterminée à l'avance, les moyens (324) pour écrire étant formés pour écrire l'instruction de remplacement déterminée à l'avance à partir de la mémoire vers les moyens (306) pour fournir en réponse à une instruction d'écriture. 5. Dispositif de commande suivant l'une des revendications 1 à 4, caractérisé en ce qu'il comporte en outre des moyens (320) de décodage formés pour décoder l'instruction reçue ou l'instruction de remplacement déterminée à l'avance en un signal de commande pour commander les moyens (320, 324) de calcul. 6. Dispositif de commande suivant l'une des revendications 1 à 5, caractérisé en ce que l'instruction de remplacement déterminée à l'avance fait partie d'un ensemble d'instructions du dispositif de commande. 7. Dispositif de commande suivant la revendication 6, caractérisé en ce que l'instruction de caractère générique fait partie de l'ensemble d'instructions du dispositif de commande. 8. Dispositif de commande suivant l'une des revendications 1 à 7, caractérisé en ce que l'instruction de remplacement déterminée à l'avance comporte une largeur de bit plus grande que l'instruction de caractère générique déterminée à l'avance. 9. Dispositif de commande suivant l'une des revendications 1 à 8, caractérisé en ce que les moyens (206) pour fournir comportent un registre (206a) sur lequel peut être écrit, pour conserver l'instruction de remplacement déterminée à l'avance. 10. Dispositif de commande suivant l'une des revendications 1 à 9, caractérisé en ce que les moyens (206) pour fournir comportent un multiplexeur (206b) formé pour émettre en sortie une instruction reçue ou l'instruction de remplacement déterminée à l'avance en fonction du signal de commutation. 11. Dispositif de commande suivant l'une des revendications 1 à 10, caractérisé en ce qu'il comporte une pluralité de moyens pour fournir formés pour émettre en sortie l'instruction reçue ou une pluralité d'instructions de remplacement déterminées à l'avance en fonction du signal de commutation. 12. Procédé pour recevoir des instructions, caractérisé en ce qu'il comporte les étapes qui consistent: a) à recevoir une instruction; b) à fournir un signal de commutation en réponse au fait que l'instruction reçue correspond à une instruction de caractère générique déterminée à l'avance; et c) à émettre en sortie l'instruction reçue ou une instruction de remplacement déterminée à l'avance en fonction du signal de commutation. 13. Programme d'ordinateur ayant un code de programme pour mettre en oeuvre le procédé de la revendication 12, lorsque le programme d'ordinateur tourne sur un ordinateur.