FR3124867A1 - Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant. - Google Patents

Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant. Download PDF

Info

Publication number
FR3124867A1
FR3124867A1 FR2107062A FR2107062A FR3124867A1 FR 3124867 A1 FR3124867 A1 FR 3124867A1 FR 2107062 A FR2107062 A FR 2107062A FR 2107062 A FR2107062 A FR 2107062A FR 3124867 A1 FR3124867 A1 FR 3124867A1
Authority
FR
France
Prior art keywords
value
clock signal
period
lpclk
frequency clock
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.)
Pending
Application number
FR2107062A
Other languages
English (en)
Inventor
Laurent Meunier
Vincent Onde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
STMicroelectronics Grand Ouest SAS
Original Assignee
STMicroelectronics Rousset SAS
STMicroelectronics Grand Ouest SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS, STMicroelectronics Grand Ouest SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR2107062A priority Critical patent/FR3124867A1/fr
Priority to US17/807,452 priority patent/US20230006684A1/en
Publication of FR3124867A1 publication Critical patent/FR3124867A1/fr
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/24Automatic control of frequency or phase; Synchronisation using a reference signal directly applied to the generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/099Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
    • H03L7/0991Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator being a digital oscillator, e.g. composed of a fixed oscillator followed by a variable frequency divider
    • H03L7/0992Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator being a digital oscillator, e.g. composed of a fixed oscillator followed by a variable frequency divider comprising a counter or a frequency divider

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Transceivers (AREA)
  • Microcomputers (AREA)

Abstract

Le procédé de communication d’une valeur d’une base de temps de référence contenue dans un registre de compteur (RCNT) accessible par une unité de traitement (CPU) de microcontrôleur (MCU) pouvant avoir un fonctionnement en mode veille (VEI) et en mode actif (ACT), comprend une génération d’un signal d’horloge basse fréquence (LPclk) dans le mode veille et dans le mode actif, et une génération d’un signal d’horloge haute fréquence (HSclk) dans le mode actif. La valeur de la base de temps de référence est actualisée à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille (VEI), et l’accès au registre de compteur (RCNT) est cadencé avec le signal d’horloge haute fréquence (HSclk) dans le mode actif. Figure pour l’abrégé : Fig 1

Description

Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant.
Des modes de réalisation et de mise en œuvre concernent les circuits intégrés, en particulier les microcontrôleurs et la communication d’une base de temps de référence pour les opérations des microcontrôleurs.
Les systèmes d’exploitation exécutés par des microcontrôleurs d’application relativement simples, par exemple un système d’exploitation d’un microcontrôleur d’un objet connecté, s’appuient sur les horloges matérielles (usuellement « hardware » en anglais) pour maintenir un temps de référence du système.
Les horloges matérielles sont typiquement formées par un compteur incrémenté, ou actualisé, par les cycles d’horloge d’un signal d’horloge.
Les systèmes d’exploitation utilisent ce temps de référence du système comme un élément majeur de leurs planificateurs, pour maintenir une liste complète des délais d’exécution des tâches logicielles et les instants précis dans la planification des tâches. Les systèmes d’exploitation lisent aussi souvent le temps de référence du système pour s’y adapter et le comparer à un temps théorique.
En conséquence, il peut y avoir beaucoup d’accès au compteur fournissant le temps de référence pendant les activités logicielles du système d’exploitation, qui impliquent de nombreuses (re)planifications, et donc beaucoup d’accès en lecture du compteur et beaucoup d’accès en écriture pour programmer des interruptions dans des registre de comparateurs.
On peut considérer qu’il existe typiquement deux catégories d’horloges matérielles, l’une dite à basse consommation, l’autre dite à usage général. Les horloges à basse consommation sont typiquement cadencées par un signal d’horloge à une basse fréquence, par exemple 32 kHz, et fonctionnent en continu, en particulier pendant des modes à faible consommation, appelés « veille ». Les horloges à usage général, sont typiquement cadencées par un signal d’horloge à une haute fréquence, par exemple de quelques MHz, et fonctionnent dans un mode actif, et, en particulier, ne fonctionne pas pendant des modes de veille, l’oscillateur générant le signal d’horloge à une haute fréquence étant désactivé pour réduire la consommation de courant.
En conséquence, l’utilisation de l’horloge matérielle à usage général permet un accès rapide au compteur, mais l’horloge matérielle ne peut pas être utilisée en mode veille, de sorte que la référence temporelle est perdue lors de l’entrée en mode veille et l’horloge matérielle ne peut pas être utilisée pour programmer un réveil du système.
L’horloge matérielle à usage général n’est donc classiquement pas employée pour fournir le temps de référence du système.
L’utilisation de l’horloge matérielle à basse consommation peut quant à elle être utilisée en mode veille, et être utilisée pour programmer un réveil du système, mais l’accès au compteur est lent à cause de la basse fréquence du signal d’horloge qui le cadence.
En effet, il faut typiquement plusieurs cycles d’horloge pour programmer des interruptions dans un registre de comparateur, par exemple trois cycles d’horloges à 32kHz durent une centaine de µs. Pendant ce temps, l’unité centrale du système d’exploitation, qui fonctionne à grande vitesse (de l’ordre de 100 MHz), essaye parfois de programmer une nouvelle valeur du comparateur, ce qui n’est pas possible.
De plus, les opérations de planifications du système d’exploitation peuvent avoir lieu dans une section critique, c’est-à-dire lorsque les interruptions sont désactivées. Un accès au compteur de durée longue augmente donc le temps passé en section critique. La réactivité du système est affectée. Dans le pire des cas, des événements ou des données reçus de certains périphériques peuvent être perdus.
Par ailleurs, la résolution du compteur est faible car elle est basée sur la basse fréquence, et donc l’instant d’interruption programmé ne peut pas être très précis.
Classiquement, pour pallier ces problèmes des solutions logicielles très complexes et consommatrice de ressources calculatoires sont mises en œuvre et le débit des communications avec les périphériques est limité en dessous de sa capacité.
Par conséquent il existe un besoin de communiquer une valeur d’une base de temps de référence pouvant à la fois fonctionner dans un mode veille et ne présentant pas les problèmes de réduction de la réactivité du système, de limitation du débit des communications, en évitant les solutions logicielles complexes.
Il est proposé à cet égard, selon des modes de réalisation et de mise en œuvre, une horloge matérielle à haute vitesse et à faible consommation.
Selon un aspect, il est proposé un procédé de communication d’une valeur d’une base de temps de référence contenue dans un registre de compteur accessible par une unité de traitement de microcontrôleur pouvant avoir un fonctionnement en mode veille et en mode actif, comprenant une génération d’un signal d’horloge dit basse fréquence ayant une première fréquence, dans le mode veille et dans le mode actif, et une génération d’un signal d’horloge dit haute fréquence ayant une deuxième fréquence supérieure à la première fréquence, dans le mode actif, dans lequel la valeur de la base de temps de référence est actualisée à chaque période du signal d’horloge basse fréquence dans le mode veille, et l’accès au registre de compteur est cadencé avec le signal d’horloge haute fréquence dans le mode actif.
Par exemple, la première fréquence est inférieure à 1 MHz (mégaHertz) voire inférieure à 100kHz (kiloHertz), et la deuxième fréquence est supérieure à 1 MHz. En pratique, la première fréquence peut être comprise entre 32kHz et 300kHz (par exemple un quartz à 32,768kHz), et la deuxième fréquence peut être comprise entre 4MHz et 500MHz.
En d’autres termes, il est proposé de fournir une base de temps fonctionnant à la fois en mode veille et en mode actif, avec un accès à faible latence (rapide) en lecture et en écriture dans le mode actif.
Par exemple, le registre de compteur peut en effet inclure un registre de lecture accessible en lecture par l’unité de traitement et contenant ladite valeur de la base de temps de référence, ainsi qu’un registre de comparaison accessible en écriture par l’unité de traitement et contenant une valeur d’un instant d’interruption programmé.
Selon un mode de mise en œuvre, la valeur de la base de temps de référence est actualisée d’un incrément correspondant à la première fréquence, à chaque période du signal d’horloge basse fréquence dans le mode veille, et est actualisée d’un incrément correspondant à la deuxième fréquence, à chaque période du signal d’horloge haute fréquence dans le mode actif.
Ainsi, en outre de l’accès rapide au registre de compteur dans le mode actif, la valeur de la base de temps de références bénéficie d’une résolution plus fine.
Avantageusement, la valeur de la base de temps de référence actualisée à chaque période du signal d’horloge haute fréquence dans le mode actif est réalignée sur chaque période du signal d’horloge basse fréquence, le réalignement comprenant soit un saut à la prochaine valeur égale à un multiple du rapport de la deuxième fréquence sur la première fréquence à la fin de ladite période du signal d’horloge basse fréquence, soit un arrêt sur une valeur égale à un multiple dudit rapport jusqu’à la fin de ladite période du signal d’horloge basse fréquence.
Cela correspond en d’autres termes à une compensation d’une éventuelle dérive entre la première fréquence du signal d’horloge basse fréquence et la deuxième fréquence du signal d’horloge haute fréquence, de manière disciplinée par le signal d’horloge basse fréquence (c’est-à-dire que le signal d’horloge basse fréquence est pris comme référence pour compenser la dérive).
Selon un autre mode de mise en œuvre, la valeur de la base de temps de référence du registre de compteur accessible par l’unité de traitement est actualisée à chaque période du signal d’horloge basse fréquence dans le mode actif.
En d’autres termes, dans le mode actif, le registre de compteur est actualisé lentement à la première fréquence, mais est accessible rapidement à la deuxième fréquence, notamment le cas échéant en écriture dans le registre de comparaison, du fait du cadencement du registre de compteur par le signal d’horloge haute fréquence.
Avantageusement, une valeur de la base de temps de référence contenue par un registre de compteur racine est actualisée à chaque période du signal d’horloge basse fréquence dans le mode veille et dans le mode actif, la valeur de la base de temps de référence du registre de compteur accessible par l’unité de traitement étant synchronisée sur la valeur de la base de temps de référence du registre de compteur racine, à chaque période du signal d’horloge basse fréquence, dans le mode actif.
Par « compteur racine » on entend dans le cadre présent, un compteur qui n’est pas directement accessible par un élément extérieur (en particulier par l’unité de traitement), mais qui est utilisé pour générer une valeur destinée à être recopiée (synchronisée) dans le registre de compteur accessible par l’unité de traitement.
En d’autres termes, une horloge matérielle basse fréquence est dupliquée dans un domaine haute fréquence pour permettre un accès rapide au registre de compteur. La synchronisation correspond par exemple à une copie des valeurs d’un registre à l’autre.
Selon un autre mode de mise en œuvre, le registre de compteur accessible par l’unité de traitement contient des bits de poids fort et des bits de poids faible de la valeur de la base de temps de référence, et c’est la valeur des bits de poids fort qui est synchronisée sur la valeur de la base de temps de référence du registre de compteur racine à chaque période du signal d’horloge basse fréquence dans le mode actif, la valeur des bits de poids faible étant actualisée à chaque période du signal d’horloge haute fréquence dans le mode actif.
Cela correspond en d’autres termes à une horloge matérielle combinant une horloge matérielle lente toujours disponible et une horloge matérielle rapide disponible dans le mode actif.
Avantageusement, la valeur des bits de poids faible est réalignée sur chaque période du signal d’horloge basse fréquence, le réalignement comprenant soit une réinitialisation des bits de poids faible à la fin de ladite période du signal d’horloge basse fréquence, soit un blocage de la valeur des bits de poids faible à une valeur plafond égale au rapport de la deuxième fréquence sur la première fréquence, jusqu’à à la fin de ladite période du signal d’horloge basse fréquence.
Avantageusement, la valeur de l’instant d’interruption programmé contenue dans le registre de comparaison appartenant au registre de compteur accessible en écriture par l’unité de traitement, est synchronisée dans un registre de comparaison appartenant au registre de compteur racine avant chaque transition du mode actif vers le mode veille.
Selon un autre aspect, il est également proposé un circuit intégré de microcontrôleur pouvant avoir un fonctionnement en mode veille et en mode actif, comprenant une unité de traitement, et un circuit de référence temporelle comportant un registre de compteur configuré pour contenir une valeur d’une base de temps de référence et accessible par l’unité de traitement, un premier circuit d’horloge configuré pour générer un signal d’horloge dit basse fréquence ayant une première fréquence, dans le mode veille et dans le mode actif, et un deuxième circuit d’horloge configuré pour générer un signal d’horloge dit haute fréquence ayant une deuxième fréquence supérieure à la première fréquence, dans le mode actif, dans lequel le circuit de référence temporelle est configuré pour actualiser la valeur de la base de temps de référence à chaque période du signal d’horloge basse fréquence dans le mode veille, et pour cadencer l’accès au registre de compteur avec le signal d’horloge haute fréquence dans le mode actif.
Par exemple, le registre de compteur peut inclure un registre de lecture accessible en lecture par l’unité de traitement et contenant ladite valeur de la base de temps de référence, ainsi qu’un registre de comparaison accessible en écriture par l’unité de traitement et contenant une valeur d’un instant d’interruption programmé.
Selon un mode de réalisation, le circuit de référence temporelle comporte un circuit logique configuré pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la première fréquence, à chaque période du signal d’horloge basse fréquence dans le mode veille, et pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la deuxième fréquence, à chaque période du signal d’horloge haute fréquence dans le mode actif.
Avantageusement, le circuit de référence temporelle comporte en outre un circuit de compensation de dérive configuré pour commander le circuit logique de manière à réaligner la valeur de la base de temps de référence actualisée à chaque période du signal d’horloge haute fréquence dans le mode actif, sur chaque période du signal d’horloge basse fréquence, le réalignement comprenant soit un saut à la prochaine valeur égale à un multiple du rapport de la deuxième fréquence sur la première fréquence à la fin de ladite période du signal d’horloge basse fréquence, soit un arrêt sur une valeur égale à un multiple dudit rapport jusqu’à la fin de ladite période du signal d’horloge basse fréquence.
Selon un autre mode de réalisation, le circuit de référence temporelle est en outre configuré pour actualiser la valeur de la base de temps de référence du registre de compteur accessible par l’unité de traitement à chaque période du signal d’horloge basse fréquence dans le mode actif.
Avantageusement, le circuit de référence temporelle comporte en outre un registre de compteur racine configuré pour contenir une valeur de la base de temps de référence actualisée à chaque période du signal d’horloge basse fréquence dans le mode veille et dans le mode actif, le circuit de référence temporelle étant configuré pour synchroniser la valeur de la base de temps de référence du registre de compteur accessible par l’unité de traitement sur la valeur de la base de temps de référence du registre de compteur racine, à chaque période du signal d’horloge basse fréquence, dans le mode actif.
Selon un autre mode de réalisation, le registre de compteur accessible par l’unité de traitement est adapté pour contenir des bits de poids fort et des bits de poids faible de la valeur de la base de temps de référence, le circuit de référence temporelle est configuré pour synchroniser la valeur desdits bits de poids fort sur la valeur du registre de compteur racine, à chaque période du signal d’horloge basse fréquence, dans le mode actif, et pour actualiser la valeur desdits bits de poids faible de la valeur de la base de temps de référence à chaque période du signal d’horloge haute fréquence dans le mode actif.
Avantageusement, le registre de compteur accessible par l’unité de traitement est configuré pour réaligner la valeur des bits de poids faible sur le signal d’horloge basse fréquence, le réalignement comprenant soit une réinitialisation des bits de poids faible à la fin de ladite période du signal d’horloge basse fréquence, soit un blocage de la valeur des bits de poids faible à une valeur plafond égale au rapport de la deuxième fréquence sur la première fréquence, jusqu’à la fin de ladite période du signal d’horloge basse fréquence.
Avantageusement, le registre de compteur racine comporte un registre de comparaison, le circuit de référence temporelle étant configuré pour synchroniser une valeur d’un instant d’interruption programmé de mode veille dans le registre de comparaison du registre de compteur racine, sur la valeur de l’instant d’interruption programmé contenue dans le registre de comparaison appartenant au registre de compteur accessible en écriture par l’unité de traitement, avant chaque transition du mode actif vers le mode veille.
D’autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de modes de réalisation et de mise en œuvre, nullement limitatifs, et des dessins annexés, sur lesquels :
;
;
;
;
;
;
illustrent des modes de réalisation et de mise en œuvre de l’invention.
La illustre un microcontrôleur MCU réalisé de manière intégrée dans un circuit intégré, et par exemple destiné à équiper de manière économique un appareil APP simple, du type objet connecté (« IoT » pour « Internet of Things » en anglais).
En effet, les microcontrôleurs MCU d’objets connectés, tels que par exemple des appareils audios, de domotique, ou électroménagers, mettent en œuvre des systèmes d’exploitation ayant des fonctions relativement simples, notamment par rapport à des microcontrôleurs d’ordinateurs ou de téléphones multifonction. Les fonctions mises en œuvre dans les objets connectés sont usuellement la commande et la gestion de périphériques PRPH1-PRPHn de l’appareil APP, typiquement des périphériques de communication sans fil, ou encore un afficheur, et les périphériques propres à la destination première de l’objet.
En outre, dans les objets connectés, la consommation énergétique des microcontrôleurs MCU est typiquement contrainte à l’économie.
Le microcontrôleur MCU comporte une unité de traitement CPU, adaptée pour mettre en œuvre des opérations logicielles, en particulier le système d’exploitation.
Les opérations de l’unité de traitement peuvent être cadencées par un signal d’horloge interne ayant une fréquence de l’ordre d’une centaine de MHz (mégaHertz), et génère des signaux de sortie et de commande à des fréquences pouvant être de l’ordre de 10MHz ou plus. Cela étant, les fréquences des signaux de sortie et de commande sont adaptées aux communications avec les périphériques auxquels les signaux sont transmis, et peuvent être de l’ordre de dizaines de kHz pour les entrées-sorties, des centaines de kHz pour des liens séries asynchrones (par exemple un lien « UART » pour « Universal Asynchronous Receiver Transmitter » en anglais), et des dizaines de de MHz pour les liens série rapides (par exemple un lien « SPI » pour « Serial Peripheral Interface » en anglais)
Le microcontrôleur MCU peut avoir un fonctionnement en mode veille (VEI) et en mode actif (ACT), et on distingue à cet égard un domaine VEI relatif au mode veille, pouvant être appelé « domaine de veille » ou « domaine toujours allumé » (« always on domain » en anglais) et un domaine ACT relatif au mode actif, pouvant être appelé « domaine actif » (« run domain » en anglais).
Le domaine de veille VEI comporte un premier circuit d’horloge LPTIM, configuré pour générer un premier signal d’horloge dit « basse fréquence » LPclk, ayant une première fréquence. Le premier circuit d’horloge LPTIM est configuré pour générer le signal d’horloge basse fréquence LPclk dans le mode veille ainsi que dans le mode actif du microcontrôleur MCU. Le premier circuit d’horloge LPTIM est notamment optimisé pour une basse consommation d’énergie, et peut constituer une référence stable de temps pour le système.
Par exemple, la première fréquence est de l’ordre du kHz (kiloHertz), par exemple 32kHz.
Le domaine actif ACT comporte un deuxième circuit d’horloge HSTIM configuré pour générer un deuxième signal d’horloge dit « haute fréquence » HSclk, ayant une deuxième fréquence supérieure à la première fréquence. Le deuxième circuit d’horloge LPTIM est configuré pour générer le signal d’horloge haute fréquence HSclk dans le mode actif. Le deuxième circuit d’horloge HSTIM consomme plus d’énergie que le premier circuit d’horloge LPTIM et est notamment désactivé dans le mode veille.
Par exemple, la deuxième fréquence est de l’ordre du MHz (mégaHertz), par exemple 10MHz ou plus.
Le microcontrôleur comporte un circuit de référence temporelle TMPref comportant un registre de compteur RCNT configuré pour contenir une valeur d’une base de temps de référence. Le registre de compteur RCNT est accessible par l’unité de traitement CPU, par exemple par l’intermédiaire d’un bus système BSYS adapté pour des communication interne du circuit intégré MCU.
En effet, le système d’exploitation d’un point de vue logiciel, ou bien l’unité de traitement d’un point de vue matériel, utilise la base de temps de référence pour planifier son activité, c’est-à-dire pour maintenir la liste complète des délais d’exécution des tâches d’applications logicielles et les instants précis de la planification des tâches, et aussi pour s’adapter sur la base de temps de référence et la comparer à un temps théorique.
Le circuit de référence temporelle TMPref est configuré pour actualiser la valeur de la base de temps de référence contenue dans le registre de compteur RCNT avec le signal d’horloge basse fréquence LPclk dans le mode veille, et pour cadencer l’accès au registre de compteur RCNT avec le signal d’horloge haute fréquence HSclk dans le mode actif.
On distinguera bien le cadencement de l’accès au registre de compteur RCNT, c’est-à-dire la fréquence de rafraichissement des données contenues dans le registre, et l’actualisation de la valeur contenue dans le registre, c’est-à-dire l’incrémentation de la valeur de la base de temps commandée à une fréquence donnée. Le terme « incrémentation » signifie ici l’augmentation de ladite valeur d’une quantité correspondant à l’écoulement dans le temps d’une période à ladite fréquence donnée, qui n’est donc pas nécessairement valeur unitaire d’une unité de mesure du temps.
Par ailleurs, dans le mode veille VEI, l’unité de traitement CPU est inactive et en particulier n’établit pas d’accès pas au registre de compteur RCNT. Par conséquent, le cadencement de l’accès au registre de compteur RCNT pendant le mode veille VEI n’a fonctionnellement pas lieu d’être développé, mais on pourrait néanmoins considérer qu’il serait fait, comme l’actualisation de la valeur contenue, par le signal d’horloge basse fréquence LPclk.
Ainsi, le registre de compteur RCNT est non-seulement actualisé et actif dans le mode veille, ce qui permet notamment de pouvoir générer une interruption programmée pour « réveiller » le microcontrôleur MCU du mode veille vers le mode actif, et est en outre cadencé par le signal d’horloge haute fréquence dans le mode actif, ce qui permet un accès rapide avec une faible latence au registre de compteur RCNT.
Par exemple, comme illustré ci-après en relation par les figures 2, 4 et 6, le registre de compteur RCNT inclut un registre de lecture CNT (figures 2, 4, 6) accessible en lecture par l’unité de traitement CPU et contenant ladite valeur de la base de temps de référence, ainsi qu’un registre de comparaison CMP (figures 2, 4, 6) accessible en écriture par l’unité de traitement CPU et contenant une valeur d’un instant d’interruption programmé.
Le registre de comparaison CMP est ainsi destiné à contenir la valeur d’un instant, comparée à la valeur courante de la base de temps de référence, permettant de générer une interruption lorsque la valeur de la base de temps de référence atteint ou dépasse la valeur contenue dans le registre de comparaison CMP.
L’interruption peut par exemple être une interruption de réveil du mode veille vers le mode actif, ou le démarrage d’un ou plusieurs processus (dans un contexte multitâche), ou la signalisation d’un délai écoulé (« timeout » en anglais).
Enfin, l’actualisation de la valeur de la base de temps de référence contenue dans le registre de compteur RCNT peut être actualisée de différentes manières, en particulier par le signal d’horloge basse fréquence LPclk dans le mode veille, et notamment par le signal d’horloge haute fréquence HSclk ou le signal d’horloge basse fréquence LPslk dans le mode actif.
Des exemples de réalisation et de mise en œuvre notamment pour le cadencement et l’actualisation de la valeur de la base de temps de référence contenue dans le registre de compteur RCNT sont décrits ci-après en relation avec les figures 2 à 7.
La illustre un exemple de réalisation du circuit de référence temporelle TMPref tel que décrit ci-avant en relation avec la .
Dans cet exemple, le circuit de référence temporelle TMPref-2 comporte d’une part un circuit de commutation SWT configuré pour sélectionner soit le signal d’horloge basse fréquence LPclk dans le mode veille, soit le signal d’horloge haute fréquence HSclk dans le mode actif. Le signal d’horloge sélectionné est transmis en tant que signal d’horloge utile CLK.
Pour sélectionner le signal d’horloge LPclk, HSclk selon le mode de fonctionnement du microcontrôleur MCU, le circuit de commutation SWT peut être commandé par un signal de commande matériel PRGhw ou par un signal de commande logiciel PRGsw. Le signal de commande matériel PRGhw est par exemple généré matériellement par le microcontrôleur MCU, pour communiquer mode de fonctionnement veille ou actif dans lequel il se trouve. Le signal de commande logiciel PRGsw est par exemple issu de l’activité du système d’exploitation, et peut typiquement être écrit dans un registre de configuration CFG appartenant à une banque de registres REG du circuit de référence temporelle TMPref.
Le signal d’horloge utile CLK est distribué d’une part au registre de compteur RCNT, pour cadencer l’accès audit registre de compteur RCNT, c’est-à-dire l’accès en lecture du registre de lecture CNT, et l’accès en écriture du registre de comparaison CMP.
Le signal d’horloge utile CLK est distribué d’autre part à un circuit logique LGQ configuré pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la fréquence du signal d’horloge utile CLK, de manière cadencée par le signal d’horloge utile CLK.
En détails, le circuit logique LGQ est ainsi configuré pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la durée de la période (i.e. l’inverse de la fréquence) du signal d’horloge basse fréquence LPclk, à chaque période du signal d’horloge basse fréquence LPclk dans le mode veille ; et pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la durée de la période du signal d’horloge haute fréquence HSclk, à chaque période du signal d’horloge haute fréquence HSclk dans le mode actif.
De manière avantageuse, le circuit de référence temporelle TMPref-2 peut comporter en outre un circuit de compensation de dérive CPSDR configuré pour réaligner la valeur de la base de temps de référence CNTval ( ), actualisée à chaque période du signal d’horloge haute fréquence HSclk dans le mode actif.
Le circuit de compensation de dérive CPSDR reçoit en entrée le signal d’horloge basse fréquence LPclk et le signal d’horloge haute fréquence HSclk, et génère un signal de sortie adapté pour commander le circuit logique LGQ de manière à réaliser le réalignement.
On se réfère à cet égard à la .
La illustre l’évolution de la valeur de la base de temps de référence CNTval, par rapport au temps réel T, et en fonction d’éventuelles dérives de la deuxième fréquence (i.e. la fréquence du signal d’horloge haute fréquence HSclk), et du processus de réalignement 320, 330.
Le processus de réalignement, mis en œuvre par le circuit de compensation de dérive CPSDR, est discipliné par le signal d’horloge basse fréquence LPclk, c’est-à-dire qu’il est considéré que le signal d’horloge basse fréquence LPclk ne dérive pas, ce dernier servant de référence si la deuxième fréquence HSclk tend à dériver.
Le circuit de compensation de dérive CPSDR est par exemple configuré pour compter le nombre de périodes du signal d’horloge haute fréquence HSclk pendant une période du signal d’horloge basse fréquence LPclk.
Si le nombre de périodes compté est égal à la valeur attendue du rapport de la deuxième fréquence (i.e. la fréquence du signal d’horloge haute fréquence HSclk) sur la deuxième fréquence (i.e. la fréquence du signal d’horloge basse fréquence LPclk), alors le signal d’horloge haute fréquence n’a pas dérivé (310). Si le nombre de périodes compté est supérieur à la valeur attendue du rapport de la deuxième fréquence sur la première fréquence, alors le signal d’horloge haute fréquence est trop rapide (320). A l’inverse, si le nombre de périodes compté est inférieur à la valeur attendue du rapport de la deuxième fréquence sur la deuxième fréquence, alors le signal d’horloge haute fréquence est trop lent (330).
Par exemple, si la première fréquence LPclk vaut 32kHz, et la deuxième fréquence HSclk vaut 32MHz, le rapport de la deuxième fréquence sur la première fréquence vaut 1000, et la valeur de la base de temps de référence CNTval est incrémentée de 1 à chaque période du signal d’horloge haute fréquence HSclk.
A la période suivante du signal d’horloge basse fréquence LPclk, la valeur de la base de temps de référence CNTval est réalignée sur une valeur modulo ledit rapport des fréquences (i.e. 1000). Par « une valeur modulo le rapport », on entend « une valeur nulle modulo le rapport », ce qui signifie « une valeur égale à un multiple entier du rapport ». Les valeurs modulo ledit rapport sont représentées par la courbe en pointillée.
Ainsi, lorsque le signal d’horloge haute fréquence HSclk est trop lent, alors la valeur CNTval saute 330 ( ) à la valeur modulo suivante ; et lorsque le signal d’horloge haute fréquence HSclk est trop rapide, la valeur CNTval s’arrête 320 ( ) à la valeur modulo.
Ainsi, la valeur de la base de temps de référence CNTval est incrémentée modulo 1000 par le processus de réalignement, à chaque période du signal d’horloge basse tension LPclk.
La illustre un exemple de réalisation du circuit de référence temporelle TMPref tel que décrit ci-avant en relation avec la .
Dans cet exemple, le circuit de référence temporelle TMPref-4 est configuré pour actualiser la valeur de la base de temps de référence, contenue dans le registre de compteur RCNT, à chaque période du signal d’horloge basse fréquence LPclk dans le mode veille et dans le mode actif, tandis que l’accès au registre de compteur RCNT est cadencé avec le signal d’horloge haute fréquence HSclk dans le mode actif.
A cet égard, le circuit de référence temporelle TMPref-4 comporte d’une part une banque de registres HSREG dite haute fréquence, comprenant le registre de compteur RCNT, dont l’accès est cadencé par le signal d’horloge haute fréquence HSclk dans le mode actif. Et, le circuit de référence temporelle TMPref-4 comporte d’autre part une banque de registres LPREG dite basse fréquence, comprenant un registre de compteur racine RCNTR, qui est actualisé et cadencé par le signal d’horloge basse fréquence LPclk dans le mode actif et dans le mode veille.
Le registre de compteur RCNT de la banque de registres haute fréquence HSREG inclut, comme décrit précédemment, un registre de lecture HSCNT et destiné à contenir ladite valeur de la base de temps de référence, ainsi qu’un registre de comparaison HSCMP contenant une valeur d’un instant d’interruption programmé, respectivement accessibles en lecture et en écriture par l’unité de traitement CPU.
La banque de registre haute fréquence HSREG contient en outre un registre de configuration pouvant contenir une commande logicielle PRGsw, permettant de communiquer l’état actif ou de veille du microcontrôleur MCU. Une commande matérielle PRGhw telle que décrite précédemment en relation avec la peut être envisagée.
Le registre de compteur racine RCNTR de la banque de registres basse fréquence LPREG inclut de manière analogue un registre de lecture LPCNT configuré pour contenir une valeur racine de la base de temps de référence, actualisée à chaque période du signal d’horloge basse fréquence LPclk, et un registre de comparaison CMP destiné à contenir une valeur d’un instant d’interruption programmé.
La valeur de la base de temps de référence du registre de compteur RCNT accessible par l’unité de traitement dans le mode actif, est synchronisée avec un signal de synchronisation sync_cnt sur la valeur racine contenue dans le registre de lecture LPCNT du registre de compteur racine RCNTR, dans le mode veille et dans le mode actif.
La valeur de l’instant d’interruption programmé contenu dans le registre de comparaison LPCMP du registre de compteur racine RCNTR, est synchronisée avec un signal de synchronisation sync_cmp sur la valeur du registre de comparaison HSCMP du registre de compteur RCNT, en particulier dans le mode actif.
La illustre un organigramme du fonctionnement des synchronisations sync_cnt, sync_cmp entre les valeurs contenues dans le registre de compteur RCNT et le registre de compteur racine RCNTR.
Dans le mode veille, les accès au registre de lecture racine LPCNT et au registre de comparaison racine LPCMP sont d’une part cadencés par signal d’horloge basse fréquence LPclk, et d’autre part, la valeur racine contenue par le registre de lecture racine LPCNT est actualisée « act » à chaque période du signal d’horloge basse fréquence LPclk.
A chaque période du signal d’horloge basse fréquence LPclk, la valeur racine (LPCNT) est comparée à la valeur de l’instant d’interruption (LPCMP), et une interruption intrpt_vei est générée lorsque lesdites valeurs sont égales. En mode veille, l’interruption intrpt_vei est typiquement une interruption de réveil pour une transition du microcontrôleur MCU dans le mode actif.
Dans le mode actif, le signal d’horloge haute fréquence HSclk est disponible et permet de cadencer l’accès au registre de lecture HSCNT et au registre de comparaison HSCMP, tandis que le registre de lecture racine LPCNT est toujours cadencé et actualisé « act » par le signal d’horloge basse fréquence LPclk.
La valeur de la base de temps de référence du registre de lecture haute fréquence HSCNT, accessible par l’unité de traitement CPU, est synchronisée sync_cnt sur la valeur du registre de compteur racine RCNTR, par exemple à chaque période du signal d’horloge basse fréquence.
La valeur de l’instant d’interruption du registre de comparaison haute fréquence HSCMP, peut être écrite (ou programmée) par l’unité de traitement CPU_wrt, à la vitesse du cadencement par le signal d’horloge haute fréquence HSclk.
La programmation d’une nouvelle valeur d’instant d’interruption peut par exemple durer quelques périodes, par exemple trois périodes, du signal d’horloge cadençant l’accès au registre de comparaison HSCMP.
Le mécanisme de génération des interruption intrpt_act dans le mode actif est mis en œuvre de manière analogue, par comparaison de la valeur contenue dans le registre de comparaison HSCMP avec la valeur courant du registre de lecture HSCNT, à chaque période du signal d’horloge haute fréquence HSclk.
Par conséquent, l’unité de traitement CPU peut programmer rapidement des interruptions intrpt_act utiles dans le mode actif, par exemple pour des applications logicielles, sans être contraint par la latence des écritures dans le registre de comparaison HSCMP.
D’autre part, la valeur de l’instant d’interruption du registre de comparaison basse fréquence LPCMP est synchronisée sync_cmp sur la valeur du registre de comparaison haute fréquence HSCMP, en particulier lors d’une entrée dans le mode veille.
Il existe des processus de synchronisation entre des domaines cadencés à des fréquences différentes, permettant d’éviter des conflits en cas de modification de la valeur synchronisée dans le domaine haute fréquence pendant le transfert, plus lent, vers le domaine basse fréquence. Cela est avantageux pour la synchronisation des valeurs des instant d’interruption sync_cmp, étant donné que la synchronisation est faite du domaine haute fréquence vers le domaine basse fréquence, et que la valeur synchronisée peut être modifiée depuis le domaine haute fréquence. Cela étant, la synchronisation des valeurs de la base de temps de référence sync_cnt ne rencontre pas le problème de conflit causé par une modification pendant le transfert, étant donné que la synchronisation est faite du domaine basse fréquence vers le domaine haute fréquence, et que la valeur synchronisée n’est pas modifiée depuis le domaine haute fréquence.
La illustre un autre exemple de réalisation du circuit de référence temporelle TMPref tel que décrit ci-avant en relation avec la , pouvant être vu comme une variante de l’exemple décrit en relation avec les figures 4 et 5. Les éléments communs supportent les mêmes références et ne seront pas tous détaillés à nouveau.
La illustre un organigramme du fonctionnement des synchronisations entre le registre de compteur RCNT et le registre de compteur racine RCNTR de cette variante.
Dans cette variante, le registre de lecture HSCNT (appartenant au registre de compteur RCNT situé dans la banque de registre haute fréquence HSREG) comporte une séparation fonctionnelle entre les bits de poids fort HSCNT_msb et les bits de poids faible HSCNT_lsb de la valeur de la base de temps de référence.
Le circuit de référence temporelle TMPref-6 est configuré pour actualiser la valeur des bits de poids fort HSCNT_msb à chaque période du signal d’horloge basse fréquence LPclk dans le mode veille et dans le mode actif.
L’actualisation des bits de poids fort HSCNT_msb est faite de la même façon que décrite ci-avant en relation avec les figures 4 et 5, c’est-à-dire par le mécanisme de synchronisation sync_cnt sur la valeur racine du registre de lecture racine LPCNT qui est cadencé et actualisé « act » par le signal d’horloge basse fréquence LPclk.
Le circuit de référence temporelle TMPref-6 est parallèlement configuré pour actualiser « act » la valeur des bits de poids faible HSCNT_lsb à chaque période du signal d’horloge haute fréquence HSclk dans le mode actif.
Par exemple, on peut construire le registre de compteur haute fréquence RCNT pour qu’il contienne des mots ou données (c’est-à-dire les valeurs contenues dans le registre de lecture HSCNT_msb, HSCNT_lsb et dans le registre de comparaison HSCMP) ayant une plus grande taille que les mots ou données contenus dans le registre de compteur racine RCNTR.
Par exemple, les valeurs contenues dans le registre de compteur haute fréquence RCNT peuvent être codées sur 64 bits, avec 32 bits de poids fort HSCNT_msb et 32 bits de poids faible HSCNT_lsb, tandis que les valeurs contenues dans le registre de compteur racine RCNTR peuvent être codées sur 32 bits. Un mécanisme de mise en cohérence entre les bits de poids fort HSCNT_msb et les bits de poids faible HSCNT_lsb pourra être prévue. De même, un mécanisme de conversion de 64 bits vers 32 bits pourra être prévu pour la synchronisation sync_cmp de la valeur d’instant d’interruption du registre de comparaison HSCMP vers le registre de comparaison LPCMP. En pratique, le mécanisme de conversion (sync_cmp) peut simplement inclure une copie des bits de poids fort du registre HSCMP vers le registre LPCMP.
En alternative, les valeurs contenues dans le registre de compteur haute fréquence RCNT peuvent être codées sur 32 bits, avec une répartition de par exemple 24 bits de poids fort HSCNT_msb et 8 bits de poids faible HSCNT_lsb, ou 28 bits de poids fort HSCNT_msb et 4 bits de poids faible HSCNT_lsb, pour des valeurs contenues dans le registre de compteur racine RCNTR codées sur 32 bits. Un mécanisme de conversion de 32 bits vers 24 bits ou 28 bits pourra là aussi être prévu pour la synchronisation sync_cnt de la valeur de la base de temps de référence du registre de lecture HSCNT, à partir de la valeur racine du registre de lecture racine LPCNT.
La répartition peut avantageusement permettre de moduler un compromis entre la dynamique des bits de poids fort HSCNT_msb, qui tend à être la plus grande possible, et la précision des bits de poids faible HSCNT_lsb, pour laquelle la microseconde peut être suffisante et la nanoseconde superflue, selon les besoin des applications logicielles.
La répartition des bits de poids fort HSCNT_msb et des bits de poids faible HSCNT_lsb peut avantageusement être programmable en cours d’utilisation, selon une spécification des besoins des applications logicielles exécutées.
Enfin, dans cette variante, un mécanisme de réalignement de la valeur des bits de poids faible HSCNT_lsb sur le signal d’horloge basse fréquence LPclk similaire au réalignement décrit précédemment en relation avec la peut être mis en œuvre directement par le registre de compteur RCNT.
En effet, le registre de compteur RCNT peut être configuré pour mettre en œuvre ledit réalignement, soit en réinitialisant des bits de poids faible HSCNT_lsb à la fin de ladite période du signal d’horloge basse fréquence LPclk, soit en bloquant de la valeur des bits de poids faible HSCNT_lsb à une valeur plafond égale au rapport de la deuxième fréquence (i.e. la fréquence du signal d’horloge haute fréquence HSclk) sur la première fréquence (i.e. la fréquence du signal d’horloge basse fréquence LPclk), jusqu’à la fin de ladite période du signal d’horloge basse fréquence LPclk.
Cela correspond à un fonctionnement du registre de compteur RCNT à course finie (usuellement « single-shot » en anglais, par opposition à « free-running ») et réinitialisé à chaque période du signal d’horloge basse-fréquence LPclk. En d’autres termes, le registre de compteur RCNT est configuré pour s’arrêter lorsqu’il atteint une valeur plafond (égale audit rapport entre les fréquences, 1000 dans l’exemple donnée précédemment en relation avec les figures 2 et 3) et pour redémarrer à 0 à chaque période du signal d’horloge basse fréquence LPclk. L’unité de traitement CPU peut périodiquement mettre à jour la valeur plafond pour minimiser l’erreur et compenser la dérive.
En résumé, il a été décrit une technique de génération et de communication de la valeur de la base de temps de référence du microcontrôleur, dans un registre de compteur fonctionnant en permanence avec un accès à faible latence pour la lecture et la programmation en mode actif. La valeur de la base de temps de référence peut bénéficier de compensations de dérive et d’un mécanisme de transition de mode qui peut être automatique ou programmable. Dans des exemples de réalisation, le registre de compteur peut être obtenu au moyen d’un compteur dupliqué dans le domaine haute fréquence, ou d’un compteur dans le domaine haute fréquence basé sur une combinaison d’un compteur actualisé à haute fréquence dans le mode actif et d’un compteur toujours disponible actualisé à plus basse fréquence.

Claims (18)

  1. Procédé de communication d’une valeur d’une base de temps de référence contenue dans un registre de compteur (RCNT) accessible par une unité de traitement (CPU) de microcontrôleur (MCU) pouvant avoir un fonctionnement en mode veille (VEI) et en mode actif (ACT), comprenant une génération d’un signal d’horloge dit basse fréquence (LPclk) ayant une première fréquence, dans le mode veille et dans le mode actif, et une génération d’un signal d’horloge dit haute fréquence (HSclk) ayant une deuxième fréquence supérieure à la première fréquence, dans le mode actif, dans lequel la valeur de la base de temps de référence est actualisée à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille (VEI), et l’accès au registre de compteur (RCNT) est cadencé avec le signal d’horloge haute fréquence (HSclk) dans le mode actif.
  2. Procédé selon la revendication 1, dans lequel le registre de compteur (RCNT) inclut un registre de lecture (CNT) accessible en lecture par l’unité de traitement (CPU) et contenant ladite valeur de la base de temps de référence, ainsi qu’un registre de comparaison (CMP) accessible en écriture par l’unité de traitement (CPU) et contenant une valeur d’un instant d’interruption programmé.
  3. Procédé selon l’une des revendications 1 ou 2, dans lequel la valeur de la base de temps de référence (CNT) est actualisée d’un incrément correspondant à la première fréquence, à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille, et est actualisée d’un incrément correspondant à la deuxième fréquence, à chaque période du signal d’horloge haute fréquence (HSclk) dans le mode actif.
  4. Procédé selon la revendication 3, dans lequel la valeur de la base de temps de référence actualisée à chaque période du signal d’horloge haute fréquence (HSclk) dans le mode actif est réalignée sur chaque période du signal d’horloge basse fréquence (LPclk), le réalignement comprenant soit un saut (330) à la prochaine valeur égale à un multiple du rapport de la deuxième fréquence (HSclk) sur la première fréquence (LSclk) à la fin de ladite période du signal d’horloge basse fréquence (LPclk), soit un arrêt (320) sur une valeur égale à un multiple dudit rapport jusqu’à la fin de ladite période du signal d’horloge basse fréquence (LPclk).
  5. Procédé selon l’une des revendications 1 ou 2, dans lequel la valeur de la base de temps de référence (HSCNT ; HSCNT_msb) du registre de compteur accessible par l’unité de traitement (RCNT) est actualisée à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode actif.
  6. Procédé selon la revendication 5, dans lequel une valeur de la base de temps de référence (LPCNT) contenue par un registre de compteur racine (RCNTR) est actualisée à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille et dans le mode actif, la valeur de la base de temps de référence (HSCNT) du registre de compteur accessible par l’unité de traitement (RCNT) étant synchronisée (sync_cnt) sur la valeur de la base de temps de référence (LPCNT) du registre de compteur racine (RCNTR), à chaque période du signal d’horloge basse fréquence (LPclk), dans le mode actif.
  7. Procédé selon la revendication 6, dans lequel le registre de compteur accessible par l’unité de traitement (RCNT) contient des bits de poids fort (HSCNT_msb) et des bits de poids faible (HSCNT_msb) de la valeur de la base de temps de référence, et dans lequel c’est la valeur des bits de poids fort (HSCNT_msb) qui est synchronisée sur la valeur de la base de temps de référence (LPCNT) du registre de compteur racine (RCNTR) à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode actif, la valeur des bits de poids faible (HSCNT_lsb) étant actualisée à chaque période du signal d’horloge haute fréquence (HSclk) dans le mode actif.
  8. Procédé selon la revendication 7, dans lequel la valeur des bits de poids faible (HSCNT_lsb) est réalignée sur chaque période du signal d’horloge basse fréquence (LPclk), le réalignement comprenant soit une réinitialisation des bits de poids faible (HSCNT_lsb) à la fin de ladite période du signal d’horloge basse fréquence (LPclk), soit un blocage de la valeur des bits de poids faible (HSCNT_lsb) à une valeur plafond égale au rapport de la deuxième fréquence (HSclk) sur la première fréquence (LPclk), jusqu’à à la fin de ladite période du signal d’horloge basse fréquence (LPclk).
  9. Procédé selon l’une des revendications 6 à 8 prise en combinaison avec la revendication 2, dans lequel la valeur de l’instant d’interruption programmé contenue dans le registre de comparaison (CMP) appartenant au registre de compteur (RCNT) accessible en écriture par l’unité de traitement (CPU), est synchronisée (sync_cmp) dans un registre de comparaison (LPCMP) appartenant au registre de compteur racine (RCNTR) avant chaque transition du mode actif (ACT) vers le mode veille (VEI).
  10. Circuit intégré de microcontrôleur (MCU) pouvant avoir un fonctionnement en mode veille (VEI) et en mode actif (ACT), comprenant une unité de traitement (CPU), et un circuit de référence temporelle (TMPref) comportant un registre de compteur (RCNT) configuré pour contenir une valeur d’une base de temps de référence et accessible par l’unité de traitement (CPU), un premier circuit d’horloge (LPTIM) configuré pour générer un signal d’horloge dit basse fréquence (LPclk) ayant une première fréquence, dans le mode veille et dans le mode actif, et un deuxième circuit d’horloge (HSTIM) configuré pour générer un signal d’horloge dit haute fréquence (HSclk) ayant une deuxième fréquence supérieure à la première fréquence, dans le mode actif, dans lequel le circuit de référence temporelle (TMPref) est configuré pour actualiser la valeur de la base de temps de référence à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille (VEI), et pour cadencer l’accès au registre de compteur (RCNT) avec le signal d’horloge haute fréquence (HSclk) dans le mode actif (ACT).
  11. Circuit intégré selon la revendication 10, dans lequel le registre de compteur (RCNT) inclut un registre de lecture (CNT) accessible en lecture par l’unité de traitement (CPU) et contenant ladite valeur de la base de temps de référence, ainsi qu’un registre de comparaison (CMP) accessible en écriture par l’unité de traitement (CPU) et contenant une valeur d’un instant d’interruption programmé.
  12. Circuit intégré selon l’une des revendications 10 ou 11, dans lequel le circuit de référence temporelle (TMPref-2) comporte un circuit logique (LGQ) configuré pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la première fréquence, à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille, et pour actualiser la valeur de la base de temps de référence d’un incrément correspondant à la deuxième fréquence, à chaque période du signal d’horloge haute fréquence (HSclk) dans le mode actif.
  13. Circuit intégré selon la revendication 12, dans lequel le circuit de référence temporelle (TMPref-2) comporte en outre un circuit de compensation de dérive (CPSDR) configuré pour commander le circuit logique (LGQ) de manière à réaligner la valeur de la base de temps de référence (CNTval) actualisée à chaque période du signal d’horloge haute fréquence (HSclk) dans le mode actif, sur chaque période du signal d’horloge basse fréquence (LPclk), le réalignement comprenant soit un saut (330) à la prochaine valeur égale à un multiple du rapport de la deuxième fréquence (HSclk) sur la première fréquence (LPclk) à la fin de ladite période du signal d’horloge basse fréquence (LPclk), soit un arrêt (320) sur une valeur égale à un multiple dudit rapport jusqu’à la fin de ladite période du signal d’horloge basse fréquence (LPclk).
  14. Circuit intégré selon l’une des revendications 10 ou 11, dans lequel le circuit de référence temporelle (TMPref-4 ; TMPref-6) est en outre configuré pour actualiser la valeur de la base de temps de référence (HSCNT ; HSCNT_msb) du registre de compteur accessible par l’unité de traitement (RCNT) à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode actif.
  15. Circuit intégré selon la revendication 14, dans lequel le circuit de référence temporelle (TMPref-4 ; TMPref-6) comporte en outre un registre de compteur racine (RCNTR) configuré pour contenir une valeur de la base de temps de référence (LPCNT) actualisée à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode veille et dans le mode actif, le circuit de référence temporelle (TMPref-4 ; TMPref-6) étant configuré pour synchroniser (sync_cnt) la valeur de la base de temps de référence (HSCNT) du registre de compteur accessible par l’unité de traitement (RCNT) sur la valeur de la base de temps de référence (LPCNT) du registre de compteur racine (RCNTR), à chaque période du signal d’horloge basse fréquence (LPclk), dans le mode actif.
  16. Circuit intégré selon la revendication 15, dans lequel le registre de compteur accessible par l’unité de traitement (RCNT) est adapté pour contenir des bits de poids fort (HSCNT_msb) et des bits de poids faible (HSCNT_lsb) de la valeur de la base de temps de référence, et dans lequel le circuit de référence temporelle (TMPref-6) est configuré pour synchroniser (sync_cnt) la valeur desdits bits de poids fort (HSCNT_msb) sur la valeur du registre de compteur racine (RCNTR), à chaque période du signal d’horloge basse fréquence (LPclk) dans le mode actif, et pour actualiser la valeur desdits bits de poids faible (HSCNT_lsb) de la valeur de la base de temps de référence à chaque période du signal d’horloge haute fréquence (HSclk) dans le mode actif.
  17. Circuit intégré selon la revendication 16, dans lequel le registre de compteur accessible par l’unité de traitement (RCNT) est configuré pour réaligner la valeur des bits de poids faible (HSCNT_lsb) sur le signal d’horloge basse fréquence (LPclk), le réalignement comprenant soit une réinitialisation des bits de poids faible (HSCNT_lsb) à la fin de ladite période du signal d’horloge basse fréquence (LPclk), soit un blocage de la valeur des bits de poids faible (HSCNT_lsb) à une valeur plafond égale au rapport de la deuxième fréquence (HSclk) sur la première fréquence (LPclk), jusqu’à la fin de ladite période du signal d’horloge basse fréquence (LPclk).
  18. Circuit intégré selon l’une des revendications 15 à 17 prise en combinaison avec la revendication 11, dans lequel le registre de compteur racine (RCNTR) comporte un registre de comparaison (LPCMP), le circuit de référence temporelle (TMPref-4 ; TMPref-6) étant configuré pour synchroniser (sync_cmp) une valeur d’un instant d’interruption programmé de mode veille (LPCMP) dans le registre de comparaison (LPCMP) du registre de compteur racine (RCNTR), sur la valeur de l’instant d’interruption programmé contenue dans le registre de comparaison (CMP) appartenant au registre de compteur (RCNT) accessible en écriture par l’unité de traitement (CPU), avant chaque transition du mode actif (ACT) vers le mode veille (VEI).
FR2107062A 2021-06-30 2021-06-30 Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant. Pending FR3124867A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2107062A FR3124867A1 (fr) 2021-06-30 2021-06-30 Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant.
US17/807,452 US20230006684A1 (en) 2021-06-30 2022-06-17 Method for communicating a reference time base in a microcontroller, and corresponding microcontroller integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2107062A FR3124867A1 (fr) 2021-06-30 2021-06-30 Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant.
FR2107062 2021-06-30

Publications (1)

Publication Number Publication Date
FR3124867A1 true FR3124867A1 (fr) 2023-01-06

Family

ID=77021614

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2107062A Pending FR3124867A1 (fr) 2021-06-30 2021-06-30 Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant.

Country Status (2)

Country Link
US (1) US20230006684A1 (fr)
FR (1) FR3124867A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060149984A1 (en) * 2004-12-20 2006-07-06 Furuno Electric Company Limited Positioning signal receiving apparatus
US20070168687A1 (en) * 2006-01-17 2007-07-19 Brokish Charles W Cycle-accurate real-time clocks and methods to operate the same
WO2013009918A1 (fr) * 2011-07-11 2013-01-17 Qualcomm Incorporated Compteur en temps réel à horloges multiples
US20190196563A1 (en) * 2017-12-22 2019-06-27 Mediatek Inc. Cost-Effective Clock Structure For Digital Systems And Methods Thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735454B1 (en) * 1999-11-04 2004-05-11 Qualcomm, Incorporated Method and apparatus for activating a high frequency clock following a sleep mode within a mobile station operating in a slotted paging mode
CN100521807C (zh) * 2004-01-13 2009-07-29 Nxp股份有限公司 时基装置的同步
US10172092B1 (en) * 2015-07-24 2019-01-01 Marvell International Ltd. Systems and methods for providing a sleep clock on a wireless communications device
US20230299778A1 (en) * 2022-03-21 2023-09-21 Texas Instruments Incorporated Adaptive clock signal management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060149984A1 (en) * 2004-12-20 2006-07-06 Furuno Electric Company Limited Positioning signal receiving apparatus
US20070168687A1 (en) * 2006-01-17 2007-07-19 Brokish Charles W Cycle-accurate real-time clocks and methods to operate the same
WO2013009918A1 (fr) * 2011-07-11 2013-01-17 Qualcomm Incorporated Compteur en temps réel à horloges multiples
US20190196563A1 (en) * 2017-12-22 2019-06-27 Mediatek Inc. Cost-Effective Clock Structure For Digital Systems And Methods Thereof

Also Published As

Publication number Publication date
US20230006684A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
RU2599971C2 (ru) Физический уровень высокопроизводительного межсоединения
TWI634432B (zh) 多晶片封裝鏈結技術
US9489440B2 (en) Opportunistic, priority-based object synchronization
EP2778937B1 (fr) Procédé, appareil et système d'amélioration de communication unifilaire et inter-chip pour une interface série
CN100530134C (zh) 用于分布式计算机系统测量的系统及方法
JP2009187552A (ja) 電力制御システム及び電力制御方法
US9717055B2 (en) Method for performing alarm grouping control of an electronic device with aid of at least one grouping control strategy, and associated apparatus
US11269737B2 (en) Incrementally updating recovery map data for a memory system
EP2266011B1 (fr) Procede de gestion de la consommation d'energie pour les systemes multiprocesseurs
WO2016116020A1 (fr) Procédé et appareil permettant d'exécuter une opération expirée sur un objet
FR3124867A1 (fr) Procédé de communication d’une base de temps de référence dans un microcontrôleur, et circuit intégré de microcontrôleur correspondant.
US20140281085A1 (en) Method, apparatus, system for hybrid lane stalling or no-lock bus architectures
US20140149759A1 (en) Providing An Inter-Arrival Access Timer In A Processor
EP2709008B1 (fr) Procédé et dispositif de décompte du temps déporté pour unité de traitement dans un système de traitement de l'information
WO2023213118A1 (fr) Procédé et appareil de planification de tâches, et dispositif associé
US11297163B2 (en) Scenario profile based partitioning and management of application code
JP2011113173A (ja) リアルタイムクロック装置、情報処理装置、電子機器
US20210326191A1 (en) Methods and apparatus to align media workloads
US7752478B2 (en) Apparatus and method for real time tracking using a quadrature interface
US8762776B2 (en) Recovering from a thread hang
EP0999497A1 (fr) Séquenceur d'actions synchrones dans un système à processeur et circuit intégré comportant un tel séquenceur
Italiano et al. Calloutng: a new infrastructure for timer facilities in the FreeBSD kernel
US20230251914A1 (en) Sustainability-aware device configuration visibility and management
Both Time and Automation
Ali et al. Managing Large-Scale Infrastructure

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20230106

PLFP Fee payment

Year of fee payment: 3