Brevet FR3097345A1 — publié le 20201218

Description Titre de l'invention : PROCEDE DE GESTION DU FONC- TIONNEMENT D'UNE UNITE DE CALCUL CAPABLE DE FONCTIONNER AVEC DES INSTRUCTIONS DE TAILLES DIF- FERENTES ET CIRCUIT INTEGRE CORRESPONDANT [0001] Des modes de mise en oeuvre et de réalisation de l'invention concernent des circuits intégrés et plus particulièrement un circuit intégré formant un système sur puce connue de l'homme du métier sous le terme système sur puce (« System on chip » SoC, en langue anglaise). [0002] Un système sur puce comprend une unité de traitement et une mémoire non volatile de démarrage boot memory ») comprenant des instructions de démarrage de l'unité de calcul. [0003] 11 existe des processeurs capables de fonctionner indifféremment selon des modes de fonctionnement différents, chaque mode de fonctionnement étant défini par la taille des instructions, par exemple 32 bits ou 64 bits. [0004] Un tel processeur est donc capable d'exécuter des programmes applicatifs codés sur 32 ou 64 bits. [0005] Actuellement, un système sur puce incorporant un tel processeur incorpore également un coprocesseur. [0006] Lors du démarrage (« boot ») du système sur puce, seul le coprocesseur démarre et exécute des instructions codées sur une taille unique et fixée, par exemple 32 bits, le processeur restant dans un état d'initialisation (« reset »). [0007] Le coprocesseur charge alors le code du programme applicatif clans une mémoire programme et identifie la taille des instructions. [0008] Puis le coprocesseur configure le processeur en conséquence et le démarre avec des instructions de démarrage ayant la taille identifiée. [0009] Cependant, l'implémentation d'un coprocesseur et des périphériques associés requiert une importante surface sur le silicium, engendre une consommation électrique supplémentaire du système sur puce, et n'est pas adapté à un système sur puce de taille réduite. [0010] Une autre solution possible consiste à utiliser deux systèmes sur puce différents ayant respectivement deux mémoires de démarrage sur 32 et 64 bits. [0011] Une telle solution évite l'utilisation d'un coprocesseur niais nécessite l'utilisation de deux systèmes sur puce. [0012] 11 existe ainsi un besoin de réduire la complexité et la consommation d'énergie d'un circuit intégré ou système sur puce comprenant une unité de traitement tel un micro- 2 processeur capable de fonctionner et de démarrer selon un jeu d'instructions choisi parmi plusieurs jeux d'instructions de tailles différentes. [0013] Selon des modes de mises en oeuvre et de réalisation, il est avantageusement proposé d'utiliser l'unité de traitement elle-même, destinée à exécuter un programme applicatif, pour déterminer les conditions dc son fonctionnement selon la taille du codage du programme applicatif, et d'utiliser l'unité de traitement de manière à ce qu'elle s'auto-configure pour éventuellement commander son propre redémarrage de façon à aller chercher dans une mémoire programme les instructions du programme applicatif. [0014] Selon un aspect, il est proposé un procédé de gestion du fonctionnement d'une unité de traitement destinée à exécuter un programme applicatif codé avec des instructions pouvant avoir des tailles dc référence différentes, par exemple 32 ou 64 bits, le procédé comprenant : [0015] - un démarrage de l'unité de traitement avec un jeu d'instructions de démarrage ayant une taille, par exemple 32 bits, prise parmi les tailles de référence; [0016] - une délivrance à l'unité dc traitement d'un signal de sélection désignant la taille de référence desdites instructions du programme applicatif ; et [0017] - dans le cas où la taille de référence désignée par le signal de sélection est différente de la taille des instructions de démarrage, une émission par l'unité de traitement d'une commande de redémarrage et une rcconfiguration et un redémarrage de l'unité dc traitement à partir de cette commande de redémarrage afin qu'elle exécute les instructions du programme applicatif. [0018] L'unité de traitement est donc configurée pour démarrer avec un jeu d'instructions ayant une taille par défaut (taille fixe), puis pour déterminer la taille des instructions du programme applicatif et éventuellement redémarrer sur sa propre initiative en se reconfigurant pour exécuter les instructions du programme applicatif. [0019] Cette commande de redémarrage permet notamment de réinitialiser des registres de l'unité de traitement et contient en particulier une adresse mémoire des instructions du programme applicatif permettant à l'unité de traitement de pointer à cette adresse pour redémarrer en exécutant les instructions du programme applicatif. [0020] En d'autres termes, lors du premier démarrage (ou démarrage «à froid ») de l'unité de traitement coïncidant avec le démarrage du système sur puce, l'unité de traitement exécute les instructions de démarrage contenues dans la mémoire de démarrage, puis lors d'un redémarrage (c'est-à-dire un démarrage local ultérieur ou démarrage « chaud ») de l'unité de traitement (le système sur puce lui ne démarre pas car il n'a pas été réinitialisé), l'unité de traitement reconfigurée exécute les instructions du programme applicatif. [0021] De ce fait aucun coprocesseur n'est nécessaire pour effectuer cette gestion de l'unité de traitement (microprocesseur). 3 [0022] L'unité de traitement est généralement reliée à un bus. [0023] Aussi, selon un mode de mise en oeuvre, la reconfiguration et le redémarrage de r unité de traitement en vue de l'exécution des instructions du programme applicatif, s'effectuent en réponse à la commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies: [0024] - aucune donnée ne circule sur le bus, et [0025] - l'unité de traitement n'exécute aucune opération. [0026] Ainsi évite que des données fantômes circulent sur le bus lors du redémarrage de r unité de traitement. [0027] Selon un autre mode de mise en oeuvre, le procédé comprend une exécution du programme applicatif par l'unité de traitement, sans redémarrage de l'unité de traitement, dans le cas où la taille de référence désignée par le signal de sélection est la taille des instructions de démarrage. [0028] Cela étant même dans le cas où la taille de référence désignée par le signal de sélection est la taille des instructions de démarrage, il est possible d'effectuer un redémarrage de l'unité de traitement en vue de l'exécution des instructions du programme applicatif, en réponse à une commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies : [0029] - aucune donnée ne circule sur le bus, et [0030] - l'unité de traitement n'exécute aucune opération. [0031] Ainsi, la encore, on évite que des données fantômes circulent sur le bus lors du re- démarrage de l'unité de traitement. [0032] Selon un mode de mise en oeuvre, lorsque l'unité de traitement est associée à une mémoire cache, le redémarrage de l'unité de traitement s'effectue lorsqu'en outre la mémoire cache est inactive. [0033] On évite ainsi que des données fantômes soient stockées dans la mémoire cache lors du redémarrage de l'unité de traitement [0034] Selon un mode de mise en oeuvre, le signal de sélection comprend un mot numérique ou un entête dudit programme applicatif par exemple recopié à partir d'une carte SD [0035] Le mot numérique peut par exemple être stocké dans un registre du type pro- grammable une fois (« OTP » : One Time Programmable), ou bien être délivré sur une entrée du circuit intégré par un utilisateur. [0036] Même s'il est possible de prévoir plus de deux tailles de référence, l'unité de traitement est en général destinée à exécuter le programme applicatif codé avec des instructions pouvant avoir deux tailles de référence différentes. [0037] Les deux tailles de référence sont respectivement égales à 32 bits et 64 bits, par exemple. [0038] Selon un autre aspect, il est proposé un circuit intégré, ou système sur puce, comprenant : [0039] - une mémoire programme configurée pour stocker des instructions d'un programme applicatif pouvant avoir des tailles de référence différentes, [0040] - un moyen de mémoire de démarrage configure pour stocker un jeu d'instructions de démarrage ayant l'une des tailles de référence, [0041] - une unité de traitement destinée à exécuter ledit programme applicatif et configurée pour recevoir un signal dc sélection désignant la taille de référence desdites instructions du programme applicatif, et des moyens de commande configurés pour [0042] -démarrer l'unité de traitement avec le jeu d'instructions de démarrage, et [0043] - dans le cas où la taille de référence désignée par le signal de sélection est différente de la taille des instructions de démarrage, recevoir une commande de redémarrage délivrée par l'unité de traitement et reconfigurer et redémarrer l'unité de traitement à partir de cette commande de démarrage afin qu'elle exécute les instructions du programme applicatif. [0044] Selon un mode de réalisation, le circuit intégré comprend en outre un bus relié à l'unité de traitement, et les moyens de commande sont configurés pour reconfigurer et redémarrer l'unité dc traitement afin qu'elle exécute les instructions du programme applicatif en réponse à ladite commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies: [0045] - aucune donnée ne circule sur le bus, et [0046] - l'unité de traitement n'exécute aucune opération. [0047] Selon un autre mode de réalisation, l'unité de traitement est configurée pour exécuter le programme applicatif sans redémarrage préalable, dans le cas où la taille de référence désignée par le signal de sélection est la taille des instructions de démarrage. [0048] Selon encore un autre mode de réalisation, le circuit intégré comprend en outre un bus relié à l'unité de traitement, et les moyens de commande sont configurés pour reconfigurer et redémarrer l'unité de traitement afin qu'elle exécute les instructions du programme applicatif dans le cas où la taille de référence désignée par le signal de sélection est la taille des instructions de démarrage en réponse à une commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies : [0049] - aucune donnée ne circule sur le bus, et [0050] - l'unité de calcul n'exécute aucune opération. [0051] Selon encore un autre mode de réalisation, lorsque le circuit intégré comprend en outre une mémoire cache associée à l'unité de traitement, et les moyens de commande sont configurés pour reconfigurer et redémarrer de l'unité de traitement lorsqu'en outre la mémoire cache est inactive. [0052] Selon encore un autre mode de réalisation, l'unité de traitement comporte une broche de réinitialisation, et les moyens de commande comportent un contrôleur de M'initialisation configure pour délivrer un signal de démarrage sur ladite broche de façon à démarrer l'unité de traitement avec, par défaut, le jeu d'instructions de démarrage. [0053] Selon encore un autre mode de réalisation, les moyens de commande comportent un étage de redémarrage configure pour délivrer un signal de redémarrage sur ladite broche de reinitialisation en réponse à la commande de redémarrage émise par l'unité de traitement et lorsque toutes lesdites conditions (mentionnées ci-avant) sont remplies. [0054] Selon encore un autre mode de réalisation, l'étage de redémarrage comprend un circuit logique configure pour recevoir ladite commande de redémarrage et des signaux d'entrée correspondant auxdites conditions et pour délivrer le signal de redémarrage sur ladite broche de reinitialisation. [0055] Selon encore un autre mode de réalisation, les moyens de commande sont configures pour délivrer à l'unité de traitement, lors d'un redémarrage, une première indication représentative de la taille de référence désignée et une deuxième indication représentative de l'adresse de stockage des instructions du programme applicatif. [0056] Selon encore un autre mode de réalisation, les moyens de commande comportent une première mémoire inscriptible une seule fois après chaque démarrage (c'est-à-dire après chaque démarrage « à froid ») et destinée à contenir la première indication, et une deuxième mémoire destinée à stocker la deuxième indication, et l'unité de traitement est configurée pour stocker ces deux indications dans les deux mémoires respectives en vue d'un redémarrage. [0057] Selon encore un autre mode de réalisation, le circuit intégré comprend une mémoire auxiliaire destinée à stocker un mot numérique représentant le signal de sélection. [0058] Selon encore un autre mode de réalisation, l'unité de traitement est configurée pour lire un entête du programme applicatif formant ledit signal de sélection. [0059] Selon encore un autre mode de réalisation, le circuit intégré comporte une interface de communication destinée à recevoir le signal de sélection. [0060] Selon encore un autre mode de réalisation, l'unité de traitement est destinée à exécuter le programme applicatif codé avec des instructions pouvant avoir deux tailles de référence différentes. [0061] De préférence, les deux tailles de référence sont respectivement égales à 32 bits et 64 bits. [0062] Selon un autre aspect, il est proposé un appareil incorporant un circuit intégré tel que défini ci-avant. [0063] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : 6 [0064] [fig.1] [0065] [fig.2] [0066] [fig.3] [0067] [fig.4] [0068] [fig.5] [0069] [fig.6] [0070] illustrent différents modes de réalisation et de mise en oeuvre de l'invention. [0071] On se réfère à la figure 1 qui représente un exemple d'un mode de réalisation d'un circuit intégré CI, incorporé dans un appareil électronique CP, par exemple une tablette. [0072] Le circuit intégré CI forme ici un système sur puce (« SOC ») et comprend : une mémoire programme 11 configurée pour stocker des instructions d'un programme applicatif APP pouvant avoir des instructions de tailles de référence différentes, un moyen de mémoire de démarrage 12 (« boot memory ») configure pour stocker un jeu d'instructions de démarrage ayant l'une des tailles de référence, la taille des instructions de démarrage étant fixée, une unité de traitement 13, par exemple un microprocesseur, destinée à exécuter ledit programme applicatif et configurée pour recevoir un signal de sélection S1 désignant la taille de référence desdites instructions du programme applicatif, et des moyens de commande 14 dont on reviendra ci-après sur la structure et la fonctionnalité. [0073] L'unité de traitement 13 comprend ici au moins une mémoire cache 15 (celle-ci étant optionnelle) et au moins un coeur de traitement 15a. [0074] Bien entendu, l'unité de traitement 13 peut comprendre plusieurs mémoires caches et/ou plusieurs coeurs de traitement. [0075] Dans un souci de simplification, on suppose que l'unité de traitement 13 est destinée à exécuter le programme applicatif APP codé avec des instructions pouvant avoir deux tailles de référence différentes, par exemple des tailles de référence respectivement égales à 32 bits et 64 bits. [0076] Le moyen de mémoire de démanage comprend par exemple une mémoire non volatile stockant le jeu d'instructions de démarrage par exemple codées sur 32 bits. [0077] En variante, la taille de référence du jeu d'instructions de démanage peut être égale à 64 bits. [0078] Mais quelle que soit la taille des instructions du programme applicatif, le circuit intégré ne comporte qu'une seule mémoire de démarrage 12 stockant un seul jeu d'instructions de démarrage codées sur un nombre de bits fixé. 7 [0079] Le circuit intégré CI comprend en outre un bus 16 relié à l'unité de traitement 13, à la mémoire programme 11, au moyen de mémoire de démarrage 12, aux moyens de commande 14 et une mémoire auxiliaire 18 destinée ici à stocker un mot numérique M1 représentant le signal de sélection SI. [0080] Le circuit intégré CI comprend en outre une interface de chargement 19 pour charger le programme applicatif APP dans la mémoire programme 11 du type mémoire volatile pendant l'exécution des instructions de démarrage du circuit intégré CI. [0081] Les moyens de commande 14 sont configurés pour démarrer l'unité de traitement 13 avec le jeu d'instructions de démarrage lors du démarrage initial du circuit intégré, c'est-à-dire lors du tout premier démarrage (appelé démarrage « à froid ») de l'unité de traitement. [0082] Les démarrages ultérieurs de l'unité de traitement, alors que le circuit intégré, ou système sur puce, est déjà démarré, sont des démarrages « à chaud » et sont également appelés « redémarrage ». [0083] Les moyens de commande 14 sont en outre configurés pour recevoir une commande de redémarrage S2 délivrée par l'unité de traitement 13 notamment dans le cas où la taille de référence désignée par le signal de sélection S1 est différente de la taille des instructions de démarrage. [0084] En réponse à la commande de redémarrage émise par l'unité de traitement 13 et lorsque : [0085] a) aucune donnée ne circule sur le bus 16, [0086] b) la mémoire cache 15 est inactive, et [0087] c) l'unité de traitement 13 n'exécute aucune opération, c'est-à-dire lorsque le coeur de traitement 15a n'exécute aucune opération, [0088] les moyens de commande 14 sont configurés pour reconfigurer et redémarrer l'unité de traitement 13 afin qu'elle exécute les instructions du programme applicatif APP. Cette commande de redémarrage contient: [0089] - une première indication S3 représentative de la taille de référence désignée, et [0090] - une deuxième indication S4 représentative de l'adresse de stockage dans la mémoire programme 11 des instructions du programme applicatif APP. [0091] Dans le cas d'un déman-age à froid, l'unité de traitement 13 exécute les instructions de démarrage stockées à partir d'une adresse initiale dans la mémoire de démarrage 12. Cette adresse initiale est communiquée par le signal S4. [0092] Les conditions a), b) et c) énoncées ci-dessus permettent de redémarrer l'unité de traitement 13 de manière à éviter que des données fantômes circulent sur le bus 16 ou soient stockées dans la mémoire cache 15. [0093] Si la taille de référence désignée par le signal de sélection Si est la taille des ins- tructions de démarrage, l'unité de traitement 13 peut être configurée pour exécuter le 8 programme applicatif APP sans redémarrage préalable. [0094] Cela étant, même si la taille de référence désignée par le signal de sélection S1 est la taille des instructions de démarrage, un redémarrage de l'unité de traitement est possible. [0095] En d'autres termes, les moyens de commande sont alors configurés pour redémarrer l'unité de traitement 13 avec les instructions du programme applicatif en réponse à une commande de redémarrage émise par l'unité de traitement 13 et si les conditions de redémarrage a), b) et c) mentionnées ci-avant sont remplies, c'est-à-dire si et aucune donnée ne circule sur le bus 16, la mémoire cache 15 est vide, et l'unité de traitement 13 n'exécute aucune opération. Après le redémarrage l'unité de traitement 13 exécute le programme applicatif APP. [0096] Les moyens de commande 14 sont en outre reliés à : [0097] - une broche de réinitialisation 20 de l'unité de traitement 13 destinée à recevoir un signal de démarrage S5 ou un signal de redémarrage 56, [0098] - une broche 21 d'indication de la taille de référence désignée destinée à recevoir le signal S3 représentatif de la taille de référence désignée, et [0099] - une broche d'adressage 22 destinée à recevoir le signal 54 représentatif de l'adresse de stockage dans la mémoire programme 11 des instructions du programme applicatif APP ou de l'adresse initiale de stockage du jeu d'instructions de démarrage dans la mémoire de démarrage 12. [0100] La figure 2 illustre un exemple de mode de réalisation des moyens de commande 14. [0101] Les moyens de commande 14 comportent un contrôleur de réinitialisation 23 de structure classique, un étage de redémarrage 24, une première mémoire 25 inscriptible une seule fois après chaque démarrage et une deuxième mémoire 26, reliés au bus 16. [0102] Le contrôleur de réinitialisation 23 est configuré pour délivrer le signal de démarrage 55 sur la broche 20 de façon à démarrer l'unité de traitement 13 avec le jeu d'instructions de démarrage, lors d'un démarrage « à froid ». [0103] La première mémoire 25 est réalisée par exemple à partir d'un registre contrôlé par une machine d'état et un circuit logique qui empêchent après un redémarrage, une nouvelle écriture dans le registre tant qu'un nouveau démarrage de l'unité de traitement n'a pas eu lieu. [0104] Les moyens de commande 14 comprennent en outre : [0105] - une troisième mémoire 27 non volatile contenant la taille des instructions de démarrage, [0106] - une quatrième mémoire 28 non volatile contenant l'adresse de stockage du jeu d'instructions de démarrage dans la mémoire de démarrage 12, et deux multiplexeurs 29 et 30. [0107] L'étage de redémarrage 24 est configuré pour délivrer le signal de redémarrage 56 9 sur la broche de réinitialisation 20 en réponse à la commande de redémarrage émise par l'unité de traitement 13 et lorsque toutes les conditions de redémarrage mentionnées ci-avant sont remplies. [0108] La première mémoire 25 contient la taille des instructions du programme applicatif APP et la deuxième mémoire 26 contient l'adresse de stockage du programme applicatif APP dans la mémoire 11, l'unité de traitement 13 étant en outre configurée pour stocker la taille et l'adresse du programme applicatif APP dans ces deux mémoires respectives en vue d'un redémarrage. [0109] Le premier multiplexeur 29 comprend une première entrée couplée à la troisième mémoire 27, une deuxième entrée couplée à la première mémoire 25, une sortie reliée à la broche 21 de l'unité de traitement 13 et une entrée de commande reliée à une sortie du contrôleur de réinitialisation 23. [0110] Le deuxième multiplexeur 30 comprend une première entrée couplée à la quatrième mémoire 28, une deuxième entrée couplée à la deuxième mémoire 26, une sortie reliée à la broche 22 de l'unité de traitement 13 et une entrée de commande reliée à la sortie du contrôleur de réinitialisation 23. [0111] Les premier et deuxième multiplexeurs 29 et 30 sont configurés pour délivrer respec- tivement les contenus des troisième 27 et quatrième mémoires 28 sur les broches 21 et 22 de l'unité de traitement 13 lorsque la sortie du contrôleur de réinitialisation 23 est à l'état bas « O », et pour délivrer respectivement les contenus des première 25 et deuxième 26 mémoires sur les broches 21 et 22 de l'unité de traitement 13 lorsque la sortie du contrôleur de réinitialisation 23 est à l'état bas « 1 ». [0112] En d'autres termes, lors du démarrage du circuit intégré CI (démanage « à froid »), les signaux S3 et S4 contiennent respectivement les contenus des troisième 27 et quatrième mémoires 28, et lors du redémarrage de l'unité de traitement 13 (démarrage à chaud ») les signaux S3 et S4 contiennent respectivement les contenus des première 25 et deuxième mémoires 26. [0113] L'étage de redémarrage 24 comprend un circuit logique 31 configuré pour recevoir la commande de redémarrage S2 et pour recevoir des signaux con-espondant aux conditions de redémarrage, et pour délivrer le signal de redémarrage S6 sur la broche de réinitialisation 20. [0114] Le circuit logique 24 comprend cinq entrées 32, 33, 34, 35 et 36 reliées au bus 16, et une sortie 37 reliée à la broche 20. [0115] L'entrée 36 est reliée au contrôleur de réinitialisation 23 et l'entrée 32 reçoit la commande de déman-age S2. [0116] Le signal S5 est par défaut à « 1 » lorsqu'aucun arrêt de l'unité de traitement 13 n'est requis par le contrôleur d'réinitialisation. [0117] Des signaux S33. S34 et S35 circulent respectivement sur les entrées 33, 34 et 35. [0118] Le signal S35 est à « 0 » lorsqu'aucune instruction circule sur le bus 16 et à 1 dans le cas contraire. [0119] Le signal S34 est à « 1 » lorsque la mémoire cache 15 n'est pas vide et à 0 dans le cas contraire. [0120] Le signal S33 est à « 1 » lorsque le coeur de traitement 15a n'exécute aucune ins- truction et à « 0» dans le cas contraire. [0121] Le circuit logique 31 comprend un inverseur 38, une porte logique NON ET 39, un moyen pour augmenter la largeur d'impulsion d'un signal d'horloge 40 (« Pulse strecher » en anglais) et une porte logique ET 41. [0122] L'entrée 35 est reliée à l'entrée de l'inverseur 38, la sortie de l'inverseur 38 étant reliée à une entrée de la porte logique NON ET 39. [0123] Les entrées 32, 33 et 34 sont chacune reliées à une entrée différente de la porte logique NON ET 39. [0124] La sortie de la porte logique NON ET 39 est reliée à une entrée du moyen 40 pour augmenter la largeur d'impulsion d'un signal d'horloge. [0125] Une sortie du moyen 40 est reliée à une première entrée de la porte logique ET 41, l'entrée 36 est reliée à une deuxième entrée de la porte logique ET 41 et une sortie de la porte logique ET 41 est reliée à la sortie 37. [0126] Dans ce qui suit, les mêmes références alpha-numériques désignent les mêmes éléments. [0127] La figure 3 illustre un exemple d'un deuxième mode de réalisation du circuit intégré CI. [0128] On retrouve la mémoire programme 11, le moyen de mémoire de démarrage 12, l'unité de traitement 13, les moyens de commande 14 et le bus 16. [0129] Ce mode de réalisation diffère du mode de réalisation illustré à la figure 1 en ce qu'une interface de communication 42 est reliée au bus 16 et configurée pour recevoir le signal de sélection SI. [0130] Le signal de sélection Si peut être par exemple communiqué par l'utilisateur du système sur puce. [0131] La figure 4 illustre un exemple d'un troisième mode de réalisation du circuit intégré CI. [0132] On retrouve la mémoire programme 11, le moyen de mémoire de démarrage 12, l'unité de traitement 13, les moyens de commande 14 et le bus 16. [0133] Ce mode de réalisation diffère du mode de réalisation illustré à la figure 1 en ce que le programme applicatif APP comprend un entête H formant le signal de sélection Si, le programme applicatif APP étant stocké dans une mémoire externe au circuit intégré CI, par exemple une carte SD 43. [0134] Lors de la recopie du programme applicatif APP dans la mémoire programme 11, 11 l'unité de traitement 13 lit l'entête H du programme applicatif APP formant le signal de sélection Si. [0135] On se réfère à la figure 5 qui illustre un premier exemple de mise en oeuvre du circuit intégré Cl. [0136] Dans une étape 40, le contrôleur de réinitialisation 23 démarre le système sur puce Cl, notamment l'unité de traitement 13. [0137] Les signaux S3 et S4 comprennent respectivement les contenus des troisième 27 et quatrième mémoires 28 de sorte que l'unité de traitement 13 démarre avec les instructions de démarrage contenues dans le moyen de mémoire 12. [0138] Le programme applicatif APP est chargé dans la mémoire 11. [0139] Puis par exemple durant une étape 41, le signal de sélection Si est délivré à l'unité de traitement 13. [0140] Si le circuit intégré Cl comporte la mémoire auxiliaire 18, l'unité de traitement 13 lit dans cette mémoire 18 le mot numérique M1 représentant le signal de sélection Si. [0141] Si le circuit intégré Cl comporte l'interface de communication 42, l'unité de traitement 13 lit le signal de sélection S1 par l'intermédiaire de ladite interface. [0142] Si le programme applicatif APP comporte l'entête H et l'interface de communication, lors de la recopie, l'unité de traitement 13 détermine le signal de sélection Si à partir de l'entête H. [0143] Dans l'étape 42, l'unité de traitement 13 compare la taille indiquée dans le signal de sélection Si avec la taille des instructions de démarrage. [0144] Si la taille des instructions de démarrage et celle désignée par le signal de sélection Si sont égales, l'unité de traitement 13 exécute le programme applicatif APP codé avec les instructions ayant ladite taille désignée (étape 43). [0145] Si la taille de référence désignée par le signal de sélection Si est différente de la taille des instructions de démarrage par défaut, l'unité de traitement stocke dans l'étape 44 la taille des instructions du programme applicatif APP et l'athesse du programme applicatif APP dans la mémoire 11 dans respectivement les première 25 et deuxième 26 mémoires. Puis l'unité de traitement 13 émet la commande de redémarrage 52. [0146] Si à l'étape 45 toutes les conditions de redémarrage, c'est-à-dire si aucune donnée ne circule sur le bus 16, si la mémoire cache 15 est vide, et si l'unité de traitement 13 n'exécute aucune opération, on poursuit par l'étape 46. [0147] Durant l'étape 46, l'étage de redémarrage 24 délivre : [0148] - le signal S6 sur la broche de réinitialisation 20, [0149] - le signal S3 (comprenant le contenu de la première mémoire 25) sur la broche 21, et [0150] - le signal S4 (comprenant le contenu de la deuxième mémoire 26) sur la broche 22. [0151] L'unité de traitement 13 redémarre avec les instructions du programme applicatif APP ayant une taille égale à la taille de référence désignée. 12 [0152] Puis on poursuit à l'étape 43. [0153] Si à l'étape 45 les conditions de redémarrage ne sont pas remplies, on attend jusqu'à ce que les conditions de redémarrage soient remplies. [0154] On se réfère à la figure 6 qui illustre un deuxième exemple de mise en oeuvre du circuit intégré CI. [0155] On retrouve les étapes 40, 41, 42, 43, 44, 45 et 46. [0156] Ce mode de mise en oeuvre diffère du premier exemple de mise en oeuvre illustré à la figure 5 en cc que même si dans l'étape 42 les tailles de référence des instructions de démarrage et celle désignée par le signal de sélection S1 sont égales, l'unité de traitement 13, dans l'étape 48, stocke la taille des instructions du programme applicatif APP et l'adresse du programme applicatif APP dans la mémoire 11 dans respectivement les première 25 et deuxième 26 mémoires, puis émet la commande de redémarrage S2 de sorte que l'unité de traitement 13 redémarre avec les instructions du programme applicatif APP. [0157] Si dans l'étape 45 toutes les conditions de redémarrage sont remplies, c'est-à-dire si aucune donnée ne circule sur le bus 16, si la mémoire cache 15 est vide, et si l'unité de traitement 13 n'exécute aucune opération, on poursuit à l'étape 46, puis à l'étape 43. [0158] Bien entendu, le procédé ci-avant décrit avec l'unité de traitement 13 associée à la mémoire cache 15 s'applique aussi dans le cas où une mémoire cache n'est pas présente, la condition sur la mémoire cache inactive ne s'appliquant pas. 13 [Revendication 1] REVENDICATIONSProcédé de gestion du fonctionnement d'une unité de traitement (13) destinée à exécuter un programme applicatif (APP) codé avec des instructions pouvant avoir des tailles de référence différentes, le procédé comprenant : - un démarrage (40) de l'unité de traitement avec un jeu d'instructions de démarrage ayant une taille prise parmi les tailles de référence; - une délivrance à l'unité de traitement d'un signal de sélection (SI) désignant la taille de référence desdites instructions du programme applicatif ; et dans le cas où la taille de référence désignée par le signal de sélection (Si) est différente de la taille des instructions de démarrage, une émission par l'unité de traitement d'une commande de redémarrage (S2) et une reconfiguration et un redémarrage (44) de l'unité de traitement à partir de cette commande de redémarrage (S2) afin qu'elle exécute les instructions du programme applicatif. [Revendication 2] [Revendication 3] [Revendication 4] Procédé selon la revendication 1, dans lequel, l'unité de traitement (13) étant reliée à un bus (16), la reconfiguration et le redémarrage (44) de l'unité de traitement en vue de l'exécution des instructions du programme applicatif, s'effectuent en réponse à la commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies: - aucune donnée ne circule sur le bus, et - l'unité de traitement n'exécute aucune opération. Procédé selon la revendication 1 ou 2, comprenant une exécution (42) du programme applicatif (APP) par l'unité de traitement (13), sans redémarrage de l'unité de traitement, dans le cas où la taille de référence désignée par le signal de sélection (Si) est la taille des instructions de démarrage. Procédé selon la revendication 1 ou 2, comprenant, l'unité de traitement (13) étant reliée à un bus (16), et dans le cas où la taille de référence désignée par le signal de sélection (Si) est la taille des instructions de démarrage, un redémarrage de l'unité de traitement en vue de 14 [Revendication 5] [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] l'exécution des instructions du programme applicatif en réponse à une commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies : - aucune donnée ne circule sur le bus, et - l'unité de traitement n'exécute aucune opération. Procédé selon la revendication 2 ou 4, dans lequel l'unité de traitement (13) est associée à une mémoire cache (15) et, le redémarrage de l'unité de traitement s'effectue lorsqu'en outre la mémoire cache est inactive. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel le signal de sélection comprend un mot numérique ou un entête dudit programme applicatif. Procédé selon l'une des revendications 1 à 6, dans lequel l'unité de traitement (13) est destinée à exécuter le programme applicatif codé avec des instructions pouvant avoir deux tailles de référence différentes. Procédé selon la revendication 7, dans lequel les deux tailles de référence sont respectivement égales à 32 bits et 64 bits. Circuit intégré (a) comprenant : - une mémoire programme (11) configurée pour stocker des instructions d'un programme applicatif pouvant avoir des tailles de référence différentes, - un moyen de mémoire de démarrage (12) configuré pour stocker un jeu d'instructions de démarrage ayant l'une des tailles de référence, - une unité de traitement (13) destinée à exécuter ledit programme applicatif (APP) et configurée pour recevoir un signal de sélection (S1) désignant la taille de référence desdites instructions du programme applicatif, et - des moyens de commande (14) configurés pour démarrer l'unité de traitement avec le jeu d'instructions de démarrage, et - dans le cas où la taille de référence désignée par le signal de sélection (Si) est différente de la taille des instructions de démarrage, recevoir une commande de redémarrage (S2) délivrée par l'unité de traitement et reconfigurer et redémarrer l'unité de traitement à partir de cette commande de démarrage afin qu'elle exécute les instructions du programme applicatif. Circuit intégré selon la revendication 9, comprenant en outre un bus (16) relié à l'unité de traitement (13), et dans lequel les moyens de commande (14) sont configurés pour reconfigurer et redémarrer l'unité de traitement afin qu'elle exécute les instructions du programme ap- 15 [Revendication 11] [Revendication 12] [Revendication 13] [Revendication 14] [Revendication 15] [Revendication 16] plicatif en réponse à ladite commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies: - aucune donnée ne circule sur le bus, et - l'unité de traitement n'exécute aucune opération. Circuit intégré selon l'une des revendications 9 ou 10, dans lequel l'unité de traitement (13) est configurée pour exécuter le programme applicatif (ÀPP) sans redémarrage préalable, dans le cas où la taille de référence désignée par le signal de sélection est la taille des instructions de démarrage. Circuit intégré selon la revendication 9 ou 10, comprenant en outre un bus (16) relié à l'unité de traitement (13), et dans lequel les moyens de commande (14) sont configurés pour reconfigurer et redémarrer l'unité de traitement afin qu'elle exécute les instructions du programme applicatif, dans le cas où la taille de référence désignée par le signal de sélection est la taille des instructions de démarrage en réponse à une commande de redémarrage émise par l'unité de traitement et lorsque toutes les conditions suivantes sont remplies : - aucune donnée ne circule sur le bus, et - l'unité de calcul n'exécute aucune opération. Circuit intégré selon l'une des revendications 10 ou 12, comprenant en outre une mémoire cache (15) associée à l'unité de traitement (13), et les moyens de commande sont configurés pour reconfigurer et redémarrer l'unité de traitement lorsqu'en outre la mémoire cache est inactive. Circuit intégré selon l'une des revendications 9 à 13, clans lequel l'unité de traitement (13) comporte une broche de réinitialisation (20), et les moyens de commande (14) comportent un contrôleur de réinitialisation (23) configuré pour délivrer un signal de démarrage sur ladite broche de façon à démarrer l'unité de traitement avec le jeu d'instructions de démarrage. Circuit intégré selon la revendication 14 prise en combinaison avec l'une quelconque des revendications 10,12 ou 13, dans lequel les moyens de commande (14) comportent un étage de redémarrage (24) configuré pour délivrer un signal de redémarrage (S6) sur ladite broche de réinitialisation (20) en réponse à la commande de redémarrage émise par l'unité de traitement et lorsque toutes lesdites conditions sont remplies. Circuit intégré selon la revendication 15, dans lequel l'étage de redémarrage comprend un circuit logique (31) configuré pour recevoir 16 [Revendication 17] [Revendication 18] [Revendication 19] [Revendication 20] [Revendication 21] [Revendication 22] [Revendication 23] [Revendication 24] ladite commande de redémarrage (S6) et des signaux d'entrée correspondant auxdites conditions (533, S34 S35) et pour délivrer le signal de redémarrage (S6) sur ladite broche de réinitialisation (20). Circuit intégré selon l'une des revendications 9 à 16, dans lequel les moyens de commande (14) sont configurés pour délivrer à l'unité de traitement (13), lors d'un redémarrage, une première indication (S3) représentative de la taille de référence désignée et une deuxième indication (S4) représentative de l'adresse de stockage des instructions du programme applicatif (APP). Circuit intégré selon la revendication 17, dans lequel les moyens de commande (14) comportent une première mémoire (25) inscriptible une seule fois après chaque démarrage et destinée à contenir la première indication (S3), et une deuxième mémoire (26) destinée à stocker la deuxième indication (S4), et l'unité de traitement (13) est configurée pour stocker ces deux indications dans les deux mémoires respectives en vue d'un redémarrage. Circuit intégré selon l'une quelconque des revendications 9 à 18, comprenant une mémoire auxiliaire (18) destinée à stocker un mot numérique (M1) représentant le signal de sélection (S1). Circuit intégré selon l'une quelconque des revendications 9 à 18, dans lequel l'unité de traitement (13) est configurée pour lire un entête (H) du programme applicatif (APP) formant ledit signal de sélection (S1). Circuit intégré selon l'une quelconque des revendications 9 à 18, comportant une interface de communication (42) destinée à recevoir le signal de sélection (S1). Circuit intégré selon l'une quelconque des revendications 9 à 21, dans lequel l'unité de traitement (13) est destinée à exécuter le programme applicatif (APP) codé avec des instructions pouvant avoir deux tailles de référence différentes. Circuit intégré selon la revendication 22, dans lequel les deux tailles de référence sont respectivement égales à 32 bits et 64 bits. .Appareil (CP) comprenant un circuit intégré selon l'une quelconque des revendications 9 à 23.