FR3097345A1 - Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant - Google Patents

Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant Download PDF

Info

Publication number
FR3097345A1
FR3097345A1 FR1906337A FR1906337A FR3097345A1 FR 3097345 A1 FR3097345 A1 FR 3097345A1 FR 1906337 A FR1906337 A FR 1906337A FR 1906337 A FR1906337 A FR 1906337A FR 3097345 A1 FR3097345 A1 FR 3097345A1
Authority
FR
France
Prior art keywords
processing unit
instructions
application program
restart
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1906337A
Other languages
English (en)
Other versions
FR3097345B1 (fr
Inventor
Loic Pallardy
Ignazio Antonino Urzi
Jean-Francis Duret
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 Grenoble 2 SAS
STMicroelectronics Grand Ouest SAS
Original Assignee
STMicroelectronics Grenoble 2 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 Grenoble 2 SAS, STMicroelectronics Grand Ouest SAS filed Critical STMicroelectronics Grenoble 2 SAS
Priority to FR1906337A priority Critical patent/FR3097345B1/fr
Priority to US16/899,327 priority patent/US11614949B2/en
Priority to CN202010538243.6A priority patent/CN112083965B/zh
Publication of FR3097345A1 publication Critical patent/FR3097345A1/fr
Application granted granted Critical
Publication of FR3097345B1 publication Critical patent/FR3097345B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

Le circuit intégré (CI) comprend une unité de traitement (13) configurée pour démarrer avec un jeu d’instructions de démarrage, puis pour déterminer la taille des instructions d’un programme applicatif (APP) et éventuellement redémarrer sur sa propre initiative, en étant reconfigurée, afin qu’elle exécute les instructions du programme applicatif. Une seule mémoire de démarrage est par conséquent nécessaire. Figure pour l’abrégé : Fig 1

Description

PROCEDE DE GESTION DU FONCTIONNEMENT D’UNE UNITE DE CALCUL CAPABLE DE FONCTIONNER AVEC DES INSTRUCTIONS DE TAILLES DIFFERENTES ET CIRCUIT INTEGRE CORRESPONDANT
Des modes de mise en œuvre 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).
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.
Il 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.
Un tel processeur est donc capable d’exécuter des programmes applicatifs codés sur 32 ou 64 bits.
Actuellement, un système sur puce incorporant un tel processeur, incorpore également un coprocesseur.
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 »).
Le coprocesseur charge alors le code du programme applicatif dans une mémoire programme et identifie la taille des instructions.
Puis le coprocesseur configure le processeur en conséquence et le démarre avec des instructions de démarrage ayant la taille identifiée.
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.
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.
Une telle solution évite l’utilisation d’un coprocesseur mais nécessite l’utilisation de deux systèmes sur puce.
Il 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 microprocesseur capable de fonctionner et de démarrer selon un jeu d’instructions choisi parmi plusieurs jeux d’instructions de tailles différentes.
Selon des modes de mises en œuvre 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 de 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.
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 de référence différentes, par exemple 32 ou 64 bits, le procédé comprenant :
- 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;
- une délivrance à l’unité de traitement d’un signal de sélection 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 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 reconfiguration et un redémarrage de l’unité de traitement à partir de cette commande de redémarrage afin qu’elle exécute les instructions du programme applicatif.
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.
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.
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.
De ce fait aucun coprocesseur n’est nécessaire pour effectuer cette gestion de l’unité de traitement (microprocesseur).
L’unité de traitement est généralement reliée à un bus.
Aussi, selon un mode de mise en œuvre, la reconfiguration et le redémarrage 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.
Ainsi évite que des données fantômes circulent sur le bus lors du redémarrage de l’unité de traitement.
Selon un autre mode de mise en œuvre, 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.
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 :
- aucune donnée ne circule sur le bus, et
- l’unité de traitement n’exécute aucune opération.
Ainsi, la encore, on évite que des données fantômes circulent sur le bus lors du redémarrage de l’unité de traitement.
Selon un mode de mise en œuvre, 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.
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
Selon un mode de mise en œuvre, 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
Le mot numérique peut par exemple être stocké dans un registre du type programmable une fois (« OTP » : One Time Programmable), ou bien être délivré sur une entrée du circuit intégré par un utilisateur.
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.
Les deux tailles de référence sont respectivement égales à 32 bits et 64 bits, par exemple.
Selon un autre aspect, il est proposé un circuit intégré, ou système sur puce, comprenant :
- une mémoire programme 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 configuré pour stocker un jeu d’instructions de démarrage ayant l’une des tailles de référence,
- une unité de traitement destinée à exécuter ledit programme applicatif et configurée pour recevoir un signal de sélection désignant la taille de référence desdites instructions du programme applicatif, et des moyens de commande 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 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.
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é de 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:
- aucune donnée ne circule sur le bus, et
- l’unité de traitement n’exécute aucune opération.
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.
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 :
- aucune donnée ne circule sur le bus, et
- l’unité de calcul n’exécute aucune opération.
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.
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 réinitialisation configuré 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.
Selon encore un autre mode de réalisation, les moyens de commande comportent un étage de redémarrage configuré pour délivrer un signal de redémarrage sur ladite broche de réinitialisation 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.
Selon encore un autre mode de réalisation, l’étage de redémarrage comprend un circuit logique configuré 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 réinitialisation.
Selon encore un autre mode de réalisation, les moyens de commande sont configurés 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.
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.
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.
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.
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.
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.
De préférence, les deux tailles de référence sont respectivement égales à 32 bits et 64 bits.
Selon un autre aspect, il est proposé un appareil incorporant un circuit intégré tel que défini ci-avant.
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 :
illustrent différents modes de réalisation et de mise en œuvre de l’invention.
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.
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 ») configuré 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é.
L’unité de traitement 13 comprend ici au moins une mémoire cache 15 (celle-ci étant optionnelle) et au moins un cœur de traitement 15a.
Bien entendu, l’unité de traitement 13 peut comprendre plusieurs mémoires caches et/ou plusieurs cœurs de traitement.
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.
Le moyen de mémoire de démarrage comprend par exemple une mémoire non volatile stockant le jeu d’instructions de démarrage par exemple codées sur 32 bits.
En variante, la taille de référence du jeu d’instructions de démarrage peut être égale à 64 bits.
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é.
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 S1.
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.
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.
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 ».
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.
En réponse à la commande de redémarrage émise par l’unité de traitement 13 et lorsque :
a) aucune donnée ne circule sur le bus 16,
b) la mémoire cache 15 est inactive, et
c) l’unité de traitement 13 n’exécute aucune opération, c’est-à-dire lorsque le cœur de traitement 15a n’exécute aucune opération,
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:
- 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 dans la mémoire programme 11 des instructions du programme applicatif APP.
Dans le cas d’un démarrage à 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.
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.
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, l’unité de traitement 13 peut être configurée pour exécuter le programme applicatif APP sans redémarrage préalable.
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.
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.
Les moyens de commande 14 sont en outre reliés à :
- 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 S6,
- 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
- une broche d’adressage 22 destinée à recevoir le signal S4 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.
La figure 2 illustre un exemple de mode de réalisation des moyens de commande 14.
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.
Le contrôleur de réinitialisation 23 est configuré pour délivrer le signal de démarrage S5 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 ».
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.
Les moyens de commande 14 comprennent en outre :
- une troisième mémoire 27 non volatile contenant la taille des instructions de démarrage,
- 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.
L’étage de redémarrage 24 est configuré pour délivrer le signal de redémarrage S6 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.
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.
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.
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.
Les premier et deuxième multiplexeurs 29 et 30 sont configurés pour délivrer respectivement 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 « 0 », 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 ».
En d’autres termes, lors du démarrage du circuit intégré CI (démarrage « à 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.
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 correspondant aux conditions de redémarrage, et pour délivrer le signal de redémarrage S6 sur la broche de réinitialisation 20.
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.
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émarrage S2.
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.
Des signaux S33, S34 et S35 circulent respectivement sur les entrées 33, 34 et 35.
Le signal S35 est à « 0 » lorsqu’aucune instruction circule sur le bus 16 et à 1 dans le cas contraire.
Le signal S34 est à « 1 » lorsque la mémoire cache 15 n’est pas vide et à 0 dans le cas contraire.
Le signal S33 est à « 1 » lorsque le cœur de traitement 15a n’exécute aucune instruction et à « 0 » dans le cas contraire.
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.
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.
Les entrées 32, 33 et 34 sont chacune reliées à une entrée différente de la porte logique NON ET 39.
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.
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.
Dans ce qui suit, les mêmes références alpha-numériques désignent les mêmes éléments.
La figure 3 illustre un exemple d’un deuxième mode de réalisation du circuit intégré CI.
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.
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 S1.
Le signal de sélection S1 peut être par exemple communiqué par l’utilisateur du système sur puce.
La figure 4 illustre un exemple d’un troisième mode de réalisation du circuit intégré CI.
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.
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 S1, le programme applicatif APP étant stocké dans une mémoire externe au circuit intégré CI, par exemple une carte SD 43.
Lors de la recopie du programme applicatif APP dans la mémoire programme 11, l’unité de traitement 13 lit l’entête H du programme applicatif APP formant le signal de sélection S1.
On se réfère à la figure 5 qui illustre un premier exemple de mise en œuvre du circuit intégré CI.
Dans une étape 40, le contrôleur de réinitialisation 23 démarre le système sur puce CI, notamment l’unité de traitement 13.
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.
Le programme applicatif APP est chargé dans la mémoire 11.
Puis par exemple durant une étape 41, le signal de sélection S1 est délivré à l’unité de traitement 13.
Si le circuit intégré CI 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 S1.
Si le circuit intégré CI 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.
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 S1 à partir de l’entête H.
Dans l’étape 42, l’unité de traitement 13 compare la taille indiquée dans le signal de sélection S1 avec la taille des instructions de démarrage.
Si la taille des instructions de démarrage et celle désignée par le signal de sélection S1 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).
Si 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 par défaut, l’unité de traitement stocke dans l’étape 44 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 l’unité de traitement 13 émet la commande de redémarrage S2.
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.
Durant l’étape 46, l’étage de redémarrage 24 délivre :
- le signal S6 sur la broche de réinitialisation 20,
- le signal S3 (comprenant le contenu de la première mémoire 25) sur la broche 21, et
- le signal S4 (comprenant le contenu de la deuxième mémoire 26) sur la broche 22.
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.
Puis on poursuit à l’étape 43.
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.
On se réfère à la figure 6 qui illustre un deuxième exemple de mise en œuvre du circuit intégré CI.
On retrouve les étapes 40, 41, 42, 43, 44, 45 et 46.
Ce mode de mise en œuvre diffère du premier exemple de mise en œuvre illustré à la figure 5 en ce 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.
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.
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.

Claims (24)

  1. Procé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 (S1) 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 (S1) 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.
  2. 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.
  3. 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 (S1) est la taille des instructions de démarrage.
  4. 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 (S1) est la taille des instructions de démarrage, 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 :
    - aucune donnée ne circule sur le bus, et
    - l’unité de traitement n’exécute aucune opération.
  5. 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.
  6. 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.
  7. 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.
  8. Procédé selon la revendication 7, dans lequel les deux tailles de référence sont respectivement égales à 32 bits et 64 bits.
  9. Circuit intégré (CI) 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 (S1) 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.
  10. 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 applicatif 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.
  11. 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 (APP) 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.
  12. 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.
  13. 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.
  14. Circuit intégré selon l’une des revendications 9 à 13, dans 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.
  15. 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.
  16. Circuit intégré selon la revendication 15, dans lequel l’étage de redémarrage comprend un circuit logique (31) configuré pour recevoir ladite commande de redémarrage (S6) et des signaux d’entrée correspondant auxdites conditions (S33, S34 S35) et pour délivrer le signal de redémarrage (S6) sur ladite broche de réinitialisation (20).
  17. 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).
  18. 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.
  19. 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).
  20. 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).
  21. 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).
  22. 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.
  23. Circuit intégré selon la revendication 22, dans lequel les deux tailles de référence sont respectivement égales à 32 bits et 64 bits.
  24. .Appareil (CP) comprenant un circuit intégré selon l’une quelconque des revendications 9 à 23.
FR1906337A 2019-06-13 2019-06-13 Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant Active FR3097345B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1906337A FR3097345B1 (fr) 2019-06-13 2019-06-13 Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant
US16/899,327 US11614949B2 (en) 2019-06-13 2020-06-11 Method and device for managing operation of a computing unit capable of operating with instructions of different sizes
CN202010538243.6A CN112083965B (zh) 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1906337A FR3097345B1 (fr) 2019-06-13 2019-06-13 Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant
FR1906337 2019-06-13

Publications (2)

Publication Number Publication Date
FR3097345A1 true FR3097345A1 (fr) 2020-12-18
FR3097345B1 FR3097345B1 (fr) 2021-06-25

Family

ID=68138418

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1906337A Active FR3097345B1 (fr) 2019-06-13 2019-06-13 Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant

Country Status (3)

Country Link
US (1) US11614949B2 (fr)
CN (1) CN112083965B (fr)
FR (1) FR3097345B1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US20130205115A1 (en) * 2012-02-07 2013-08-08 Qualcomm Incorporated Using the least significant bits of a called function's address to switch processor modes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162617B2 (en) * 2003-02-14 2007-01-09 Fine Arc Incorporated Data processor with changeable architecture
JP4319093B2 (ja) * 2003-06-30 2009-08-26 株式会社リコー 電子装置及びパラメータ更新方法
US7676659B2 (en) * 2007-04-04 2010-03-09 Qualcomm Incorporated System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding
US8347067B2 (en) * 2008-01-23 2013-01-01 Arm Limited Instruction pre-decoding of multiple instruction sets
TWI363298B (en) * 2008-02-29 2012-05-01 Hon Hai Prec Ind Co Ltd Communication device and firmware update method thereof
CN101676863B (zh) * 2008-08-15 2012-12-26 北京北大众志微***科技有限责任公司 一种双宽度指令***的性能无损切换方法及其应用***
WO2011114476A1 (fr) * 2010-03-17 2011-09-22 富士通株式会社 Système de processeur multicœur, programme de notification et procédé de notification
US8938552B2 (en) * 2010-08-02 2015-01-20 Cleversafe, Inc. Resolving a protocol issue within a dispersed storage network
US20120216281A1 (en) * 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US9201652B2 (en) * 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
GB2522290B (en) * 2014-07-14 2015-12-09 Imagination Tech Ltd Running a 32-bit operating system on a 64-bit machine
US9990505B2 (en) * 2014-08-12 2018-06-05 Redwall Technologies, Llc Temporally isolating data accessed by a computing device
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US10534619B2 (en) * 2016-02-26 2020-01-14 Smart Modular Technologies, Inc. Memory management system with multiple boot devices and method of operation thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US20130205115A1 (en) * 2012-02-07 2013-08-08 Qualcomm Incorporated Using the least significant bits of a called function's address to switch processor modes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BOR-SUNG LIANG ET AL: "Instruction set architecture scheme for multiple fixed-width instruction sets and conditional execution", VLSI DESIGN, AUTOMATION AND TEST, 2005. (VLSI-TSA-DAT). 2005 IEEE VLSI -TSA INTERNATIONAL SYMPOSIUM ON HSINCHU, TAIWAN 27-29 APRIL 2005, PISCATAWAY, NJ, USA,IEEE, US, 27 April 2005 (2005-04-27), pages 325 - 328, XP010829596, ISBN: 978-0-7803-9060-7, DOI: 10.1109/VDAT.2005.1500087 *

Also Published As

Publication number Publication date
CN112083965B (zh) 2024-05-07
US20200394047A1 (en) 2020-12-17
FR3097345B1 (fr) 2021-06-25
US11614949B2 (en) 2023-03-28
CN112083965A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
EP1619590B1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
US7032106B2 (en) Method and apparatus for booting a microprocessor
EP0392932B1 (fr) Procédé et dispositif pour accélérer les accès mémoire, utilisant un algorithme LRU modifié
FR3103586A1 (fr) Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR2881540A1 (fr) Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu'a ce que les donnees stockees dans celles-ci ne soient utilisees.
FR2898703A1 (fr) Procede,independant du jeu de puces,pour mettre a jour et configurer localement et a distance le bios systeme
US11893379B2 (en) Interface and warm reset path for memory device firmware upgrades
FR2583540A1 (fr) Gestion de memoire pour systeme a microprocesseur.
EP1617335A1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
FR2880963A1 (fr) Points d'arrets logiciels destines a etre utilises avec des dispositifs a memoire
TW201519253A (zh) 用於減少喚醒時間之系統單晶片、操作系統單晶片之方法以及包括系統單晶片之電腦系統
WO2016132052A1 (fr) Circuit dram muni d'un processeur integre
FR3103585A1 (fr) Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
WO2008009609A2 (fr) Coeur processeur a frequence pilotee et procede de demarrage dudit coeur processeur dans un mode programme
EP0394115B1 (fr) Dispositif d'accélération des accès mémoire dans un système informatique
FR3097345A1 (fr) Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant
WO2016038272A1 (fr) Mecanisme haute performance pour generation d'informations de journalisation d'un processus informatique
EP0435718A1 (fr) Processeur à plusieurs unités microprogrammées avec mécanisme d'exécution anticipée des instructions
US8495287B2 (en) Clock-based debugging for embedded dynamic random access memory element in a processor core
EP3629185B1 (fr) Procédé de gestion de la fourniture d'informations, en particulier des instructions, à un microprocesseur et système correspondant
US20230176735A1 (en) Accelerating system boot times via host-managed device memory
CN115374051A (zh) SoC片上SRAM复用方法、电子设备及SoC芯片
WO2005124555A2 (fr) Dispositif de controle de la couverture structurelle d'un logiciel et procede mettant en oeuvre le dispositif
EP3764223A1 (fr) Procédé de gestion d'instructions d'un programme contenues dans une mémoire programme et circuit intégré correspondant
EP4187392A1 (fr) Procédé de gestion d'une mémoire au sein d'un système sur puce

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20201218

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6