Brevet FR3087907A1 — publié le 20200501

Microcontrôleur destiné à exécuter un traitement paramétrable Des modes de réalisation de l'invention concernent les microcontrôleurs. Il existe des coprocesseurs de signaux numériques (« DSP » pour « Digital Signal Processing » en anglais) dédiés à exécuter de façon logicielle des fonctions pour libérer la bande passante du processeur d'un microcontrôleur. Les coprocesseurs de signaux numériques DSP sont généralement performants mais très coûteux. D'autres types de traitements, par exemple des filtrages numériques de signaux, des opérations matricielles ou des transformations de Fourier rapide, sont typiquement exécutés de façon logicielle par le processeur, et sont généralement répétitifs sur une grande quantité de données. Cela contraint le processeur à exécuter cette tâche, pour laquelle il n'est en outre pas toujours optimisé. Il existe un besoin de proposer une autre solution, moins couteuse, pour l'exécution de ces traitements. Une solution proposée selon des modes de réalisation est de fournir un module dédié à un traitement spécifique et couplé au processeur, pour décharger le processeur de ce traitement, à très faible coût et polyvalent. Selon un aspect, il est proposé un microcontrôleur destiné à exécuter un traitement paramétrable par au moins un paramètre, comportant un processeur et un module matériel couplé au processeur et configuré pour exécuter matériellement ledit traitement, le processeur étant configuré pour délivrer ledit au moins un paramètre au module matériel. Un module matériel est un élément programmé matériellement, « en dur », lors de sa fabrication, classiquement pour mettre en oeuvre un calcul. Un module matériel et sa programmation matérielle sont usuellement désignés par les termes anglais « hardware », et « hardware programmed » ou encore « hardware coded ». 2 Par paramètres, on entend des valeurs définissant et faisant varier la mise en oeuvre d'un traitement d'un type donné, par exemple les paramètres définissant une fréquence de coupure d'un traitement du type filtrage. Les paramètres sont différents des valeurs de variables 5 d'entrée du traitement, sur lesquelles sont appliqués des calculs. Il est ainsi proposé en particulier un microcontrôleur comportant un module matériel universel pour un type de traitement donné, par exemple un filtrage numérique, le traitement pouvant être paramétré selon toute application, tout en bénéficiant d'un faible coût 10 et d'une faible consommation d'énergie. Le processeur du microcontrôleur peut alors être libéré des exécutions des traitements de ce type et prendre en charge des autres opérations pour lequel il est mieux optimisé. En d'autres termes, les performances du microcontrôleur, notamment la rapidité, sont améliorées. 15 Selon un mode de réalisation, le traitement est d'un type spécifique choisi dans le groupe comprenant un filtrage numérique, un calcul matriciel, une transformation de Fourier rapide. En effet, ces trois exemples de traitements peuvent être exécutés par des mêmes moyens élémentaires, et dépendent de l'ordre 20 d'exécution des opérations. Ainsi, le fabricant du microcontrôleur peut choisir notamment parmi ces trois types de traitement, en adaptant le cadencement des opérations sans nécessairement modifier les autres éléments du module matériel. Selon un mode de réalisation, le module matériel comporte un 25 registre d'entrée destiné à recevoir des valeurs d'entrée du traitement, un registre de sortie destiné à fournir des valeurs de sortie du traitement, et au moins un registre de paramètres configuré pour stocker les valeurs dudit au moins un paramètre. Par exemple, le registre d'entrée, le registre de sortie et ledit 30 au moins un registre de paramètres sont situés à des emplacements mémoire respectifs dans un registre partagé. Cela permet de bénéficier d'une flexibilité par exemple pour optimiser l'utilisation de l'espace mémoire, ou pour adapter la mémoire du registre partagé à des contraintes dépendant d'un contexte d'utilisation donné. Avantageusement, le registre d'entrée, le registre de sortie et ledit au moins un registre de paramètres sont capable de recevoir et 5 stocker des groupes de valeurs destinées à une exécution future du traitement. Cela permet notamment des transferts de données par paquets, notamment en réception, et de réduire la probabilité d'engorgement et de blocage des entrées en mémoire. 10 Selon un mode de réalisation, le microcontrôleur comprend en outre un dispositif pilote d'accès direct en mémoire, dans lequel le module matériel est configuré pour générer des requêtes d'écriture dans le registre d'entrée et/ou des requêtes de lecture dans le registre de sortie, les requêtes étant destinées et adaptées au dispositif pilote 15 d'accès direct en mémoire. Cela permet d'éviter l'usage de signaux d'interruption destiné au microprocesseur, et permet de décharger en outre le microprocesseur des tâches de gestion des entrées-sorties du module matéri el 20 Selon un mode de réalisation, le module matériel comporte un circuit multiplicateur et accumulateur et un séquenceur configuré matériellement pour piloter le circuit multiplicateur et accumulateur de façon à exécuter ledit traitement. Les commandes de pilotage des opérations du circuit 25 multiplicateur et accumulateur, délivrée par le séquenceur, définissent le traitement à exécuter par le module matériel, par ailleurs paramétré par des paramètres. En outre, il est possible de réaliser divers types de traitements à partir des mêmes éléments du circuit multiplicateur et accumulateur, en faisant varier l'ordre d'exécution des opérations de 30 chaque élément, commandé par le séquenceur. Ainsi, une modification du séquenceur permet de modifier le type de traitement exécuté par le module matériel et d'adapter le module pour différentes réalisations de microcontrôleurs destinés à exécuter différents traitements. 4 Selon un mode de réalisation, ledit au moins un paramètre comprend au moins un paramètre représentatif d'un compromis entre la dynamique des valeurs issues du traitement et la précision de ces valeurs, le circuit multiplicateur et accumulateur étant configuré pour 5 mettre en oeuvre ce compromis lors de l'exécution du traitement. Par exemple, le circuit multiplicateur et accumulateur est configuré pour tronquer N bits de poids fort et A-N bits de poids faible sur une valeur calculatoire comportant M bits, avec A un entier positif tel que A REVENDICATIONS1. Microcontrôleur destiné à exécuter un traitement paramétrable par au moins un paramètre (b[i], a[i]), comportant un processeur (CPU) et un module matériel (MM) couplé au processeur et configuré pour exécuter matériellement ledit traitement, le processeur (CPU) étant configuré pour délivrer ledit au moins un paramètre (b[i], a[i]) au module matériel. 2. Microcontrôleur selon la revendication 1, dans lequel le traitement (TRT) est d'un type spécifique choisi dans le groupe comportant un filtrage numérique, un calcul matriciel, une transformation de Fourier rapide. 3. Microcontrôleur selon l'une des revendications précédentes, dans lequel le module matériel (MM) comporte un registre d'entrée (INRG) destiné à recevoir des valeurs d'entrée (x[n]) du traitement, un registre de sortie (OUTRG) destiné à fournir des valeurs de sortie (y[n]) du traitement, et au moins un registre de paramètres (PRMb, PRMa) configuré pour stocker les valeurs dudit au moins un paramètre (b[i], a[i]). 4. Microcontrôleur selon la revendication 3, dans lequel le registre d'entrée (INRG), le registre de sortie (OUTRG) et ledit au moins un registre de paramètres (PRM) sont situés à des emplacements mémoire respectifs dans un registre partagé (MEM). 5. Microcontrôleur selon l'une des revendications 3 ou 4, dans lequel le registre d'entrée (INRG), le registre de sortie (OUTRG) et ledit au moins un registre de paramètres (PRM) sont capable de recevoir et stocker des groupes de valeurs destinées à une exécution future du traitement. 6. Microcontrôleur selon l'une des revendications 3 à 5, comprenant en outre un dispositif pilote d'accès direct en mémoire (DMA), dans lequel le module matériel (MM) est configuré pour générer des requêtes d'écriture dans le registre d'entrée (INRG) et/ou des requêtes de lecture dans le registre de sortie (OUTRG), les 15 requêtes étant destinées et adaptées au dispositif pilote d'accès direct en mémoire (DMA). 7. Microcontrôleur selon l'une des revendications précédentes, dans lequel le module matériel (MM) comporte un circuit 5 multiplicateur et accumulateur (MAC) et un séquenceur (SEQ) configuré matériellement pour piloter le circuit multiplicateur et accumulateur (MAC) de façon à exécuter ledit traitement. 8. Microcontrôleur selon la revendication 7, dans lequel ledit au moins un paramètre comprend au moins un paramètre (N, A) 10 représentatif d'un compromis entre la dynamique des valeurs issues du traitement et la précision de ces valeurs, le circuit multiplicateur et accumulateur (MAC) étant configuré pour mettre en oeuvre ce compromis lors de l'exécution du traitement. 9. Microcontrôleur selon la revendication 8, dans lequel le 15 circuit multiplicateur et accumulateur (MAC) est configuré pour tronquer N bits de poids fort (TRN_N) et A-N bits de poids faible (TRN A-N) sur une valeur calculatoire (SUM) comportant M bits, avec A un entier positif tel que A 10. Module matériel configuré pour exécuter matériellement un 25 traitement (TRT) paramétrable par au moins un paramètre (b[i], a[i]), ledit au moins un paramètre (b[i], a[i]) étant destiné à être délivré par un processeur d'un microcontrôleur. 11. Module matériel selon la revendication 10, dans lequel ledit traitement (TRT) est d'un type spécifique choisi dans le groupe 30 comportant un filtrage numérique, un calcul matriciel, une transformation de Fourier rapide. 12. Module matériel selon l'une des revendications 10 ou 11, comportant un registre d'entrée (INRG) destiné à recevoir des valeurs d'entrée (x[n]) du traitement, un registre de sortie (OUTRG) destiné à 16 fournir des valeurs de sortie (y[n]) du traitement, et au moins un registre de paramètres (PRMb, PRMa) configuré pour stocker les valeurs dudit au moins un paramètre (b[i], a[i]). 13. Module matériel selon la revendication 12, dans lequel le 5 registre d'entrée (INRG), le registre de sortie (OUTRG) et ledit au moins un registre de paramètres (PRM) sont situés à des emplacements mémoire respectifs dans un registre partagé (MEM). 14. Module matériel selon l'une des revendications 12 ou 13, dans lequel le registre d'entrée (INRG), le registre de sortie (OUTRG) 10 et ledit au moins un registre de paramètres (PRM) sont capable de recevoir et stocker des groupes de valeurs destinées à une exécution future du traitement. 15. Module matériel selon l'une des revendications 10 à 14, configuré pour générer des requêtes d'écriture dans le registre d'entrée 15 (INRG) et/ou des requêtes de lecture dans le registre de sortie (OUTRG), les requêtes étant destinées et adaptées à un dispositif pilote d'accès direct en mémoire (DMA) annexe. 16. Module matériel selon l'une des revendications 10 à 15, comportant un circuit multiplicateur et accumulateur (MAC), et un 20 séquenceur (SEQ) configuré matériellement pour piloter le circuit multiplicateur et accumulateur (MAC) de façon à exécuter ledit traitement. 17. Module matériel selon la revendication 16, dans lequel ledit au moins un paramètre comprend au moins un paramètre (N, A) 25 représentatif d'un compromis entre la dynamique des valeurs issues du traitement et la précision de ces valeurs, le circuit multiplicateur et accumulateur (MAC) étant configuré pour mettre en oeuvre ce compromis lors de l'exécution du traitement. 18. Module matériel selon la revendication 17, dans lequel le 30 circuit multiplicateur et accumulateur (MAC) est configuré pour tronquer N bits de poids fort (TRN_N) et A-N bits de poids faible (TRN A-N) sur une valeur calculatoire (SUM) comportant M bits, avec A un entier positif tel que A 19. Appareil électronique, tel qu'un ordinateur de bord d'un véhicule (APP), comportant un microcontrôleur (MC) selon l'une des revendications 1 à 9