Brevet FR3086409A1 — publié le 20200327

Procédé de gestion de la fourniture d'informations, en particulier des instructions, à un microprocesseur et système correspondant Des modes de mise en oeuvre et de réalisation de l'invention concernent les processeurs, et notamment la gestion de la fourniture d'informations, par exemple des instructions, à ces processeurs en particulier lorsqu'une partie du logiciel à exécuter par le processeur se situe dans une mémoire externe et que cette partie de logiciel est amenée à être stockée dans une mémoire cache de façon à optimiser le temps d'exécution du code. Il existe un besoin de ne pas pénaliser le temps d'exécution d'un groupe d'instructions, par exemple un programme d'interruption, situé dans une autre mémoire, par exemple une mémoire flash interne, alors qu'une ligne d'instructions contenant une instruction précédente requise par le processeur et stockée dans la mémoire externe, est en cours de chargement en vue de son stockage dans une mémoire cache. Selon un aspect, il est proposé un procédé de gestion de la fourniture d'informations à un processeur. Le terme « information » s'entend dans un sens très large incluant par exemple des instructions, mais également éventuellement des données nécessaires à ces instructions telles que des notations valeur fixe dans un (« litteral » en langue anglaise) représentant une code source. Le processeur comportant au moins une mémoire cache, une première mémoire, par exemple une mémoire externe, coopère avec un ensemble de mémoires stockant au moins une première information, par exemple une instruction, au sein d'un premier groupe d'informations, et une deuxième mémoire, par exemple une mémoire interne telle qu'une mémoire flash, stockant au moins une deuxième information, 2 par exemple une ou plusieurs instructions d'un programme d'interruption, au sein d'un deuxième groupe d'informations. Un groupe d'informations peut comprendre plusieurs bits organisés typiquement en plusieurs mots, par exemple 4 mots de 64 5 bits. En fonction de la technologie utilisée pour la mémoire stockant ce groupe d'informations, celui-ci peut occuper par exemple une portion de ligne ou une ligne complète ou plusieurs lignes de cette mémoire 10 Le procédé comprend, - après un premier défaut de cache consécutif à une première requête de ladite première information émanant du processeur, une première fourniture au processeur de la première information issue de la première mémoire, puis, 15 - après une deuxième requête de ladite deuxième information émanant du processeur, une deuxième fourniture au processeur de la deuxième information issue de la deuxième mémoire, même si le premier groupe d'informations est en cours de transfert depuis la première mémoire en vue de son 20 chargement dans la mémoire cache. Ainsi, même si ce transfert de ce premier groupe d'informations prend plusieurs centaines de cycles du signal d'horloge cadençant le processeur, le programme d'interruption peut être effectué en temps réel. 25 Le chargement dans une mémoire cache s'effectue typiquement dans un emplacement de cette mémoire cache communément désigné par l'homme du métier sous la dénomination « ligne de cache ». Cette ligne de cache comporte un ensemble d'emplacements mémoire destinés à stocker un groupe de bits et représente l'élément indivisible 30 auquel on va accéder pour déterminer si l'on a ou non un défaut de cache (« miss » en langue anglaise) ou pour y stocker un nouveau groupe de bits émanant d'une autre mémoire à la suite d'un défaut de cache. En fonction de la technologie utilisée et de la taille de ligne de cache, une mémoire cache peut comporter une seule mémoire vive ou plusieurs mémoires vives accessibles en parallèle et la ligne de cache peut se situer au sein d'une portion de ligne ou d'une ligne ou de 5 plusieurs lignes de la mémoire vive unique ou au sein de plusieurs lignes dans plusieurs mémoires vives. Le deuxième groupe d'informations dans lequel se situe la deuxième information, peut être ou non destiné à être stocké dans la mémoire cache, c'est-à-dire qu'il peut être « cachable » ou « non 10 cachable » Si la deuxième information est destinée à être stockée dans la mémoire cache (c'est-à-dire si elle est « cachable »), alors le procédé comprend en outre un deuxième défaut de cache consécutif à la deuxième requête. En d'autres termes, la fourniture de la deuxième 15 information issue de la deuxième mémoire fait suite à un défaut de cache. Selon un mode de mise en oeuvre, on peut prévoir un contrôleur de cache couplé entre le processeur et l'ensemble de mémoires, et la première fourniture de la première information et la deuxième 20 fourniture de la deuxième information peuvent être alors respectivement effectuées sur deux bus distincts reliant respectivement la première mémoire et la deuxième mémoire au contrôleur de cache et sur un troisième bus reliant le contrôleur de cache et le processeur. Selon un mode de mise en oeuvre, si le deuxième groupe 25 d'informations est prêt à être chargé dans une ligne de cache de la mémoire cache avant que le premier groupe d'informations soit prêt à être chargé dans cette même ligne de cache (alors que le processeur a d'abord fait la requête de la première information puis la requête de la deuxième information) on interdit alors le chargement du premier 30 groupe d'informations dans ladite ligne de cache. En d'autres termes, si le premier groupe d'informations et le deuxième groupe d'informations sont destinés à être stockés dans une même ligne de cache, on va interdire le chargement du premier groupe d'informations dans cette ligne de cache si le deuxième groupe 4 d'informations qui a fait l'objet d'une requête postérieure, est prêt à être stocké dans la ligne de cache avant que le premier groupe d'informations ne soit prêt à y être stocké. En effet dans le cas d'une politique de remplacement 5 déterministe prévoyant par exemple que les informations émanant de la deuxième mémoire sont prioritaires, il est souhaitable de respecter cette priorité afin de ne pas casser le déterminisme du procédé. Aussi ce mode de mise en oeuvre évite d'écraser dans la ligne de cache, des informations prioritaires par des informations qui sont 10 moins prioritaires. Comme indiqué ci-avant, la première information peut comporter au moins une instruction à exécuter par le processeur. Par ailleurs, la deuxième information peut comporter au moins une instruction d'un programme d'interruption. 15 Selon un autre aspect, il est proposé un système, comprenant un processeur, un ensemble de mémoire configure pour coopérer avec le processeur et comportant au moins une mémoire cache, une première mémoire configurée pour stocker au moins une première information 20 au sein d'un premier groupe d'informations et une deuxième mémoire configurée pour stocker au moins une deuxième information au sein d'un deuxième groupe d'informations, et des moyens de contrôle configurés pour - après une première requête de ladite première information 25 émanant du processeur, effectuer une première fourniture au processeur de la première information issue de la première mémoire, puis - après une deuxième requête de ladite deuxième information émanant du processeur, effectuer une deuxième fourniture 30 au processeur de la deuxième information issue de la deuxième mémoire, même si le premier groupe d'informations est en cours de transfert depuis la première mémoire en vue de son chargement dans la mémoire cache, 5 typiquement dans une ligne de cache de cette mémoire cache. Selon un mode de réalisation, dans le cas où la deuxième information est « cachable », les moyens de contrôle sont configurés 5 pour effectuer ladite deuxième fourniture après un deuxième défaut de cache consécutif à ladite deuxième requête. Selon un mode de réalisation, les moyens de contrôle comprennent - un contrôleur de cache couplé entre le processeur et 10 l'ensemble de mémoires, et possédant au moins une première interface, une deuxième interface et une troisième interface, - un premier bus couplé entre la première interface et la première mémoire, 15 - un deuxième bus couplé entre la deuxième interface et la deuxième mémoire, - un troisième bus couplé entre la troisième interface et le processeur, Le contrôleur de cache est avantageusement configuré pour 20 fournir la première information délivrée par la première mémoire sur le premier bus, au processeur via la troisième interface et le troisième bus, et pour fournir la deuxième information délivrée par la deuxième mémoire sur le deuxième bus, au processeur via la troisième interface et le troisième bus. 25 Selon un mode de réalisation, les moyens de contrôle sont configurés pour, si le deuxième groupe d'informations est prêt à être chargé dans une ligne de cache de la mémoire cache avant que le premier groupe d'informations soit prêt à être chargé dans cette même ligne de cache, interdire le chargement du premier groupe. 30 Plus précisément, dans ce cas, selon un mode de réalisation, la première interface comporte une mémoire tampon configurée pour stocker le premier groupe d'informations extrait de la première mémoire et le contrôleur de cache est configuré pour faire avorter le processus de stockage du premier groupe d'informations 6 Comme indiqué ci-avant, la première information peut comporter au moins une instruction à exécuter par le processeur tandis que la deuxième information peut comporter au moins une instruction d'un programme d'interruption. 5 Le système peut comprendre un microcontrôleur incorporant le processeur, la mémoire cache, la deuxième mémoire et le contrôleur de cache, la première mémoire étant une mémoire externe au microcontrôleur. D'autres avantages et caractéristiques de 1' invention 10 apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : les figures 1 à 5 illustrent schématiquement des modes de réalisation et de mise en oeuvre de l'invention. 15 Sur la figure 1, la référence 1 désigne un système, en particulier un microcontrôleur, par exemple celui commercialisé par la société STMicroelectronics sous la référence STM32 Ce microcontrôleur comporte une unité centrale de calcul ou processeur 10, ainsi qu'un ensemble de mémoires comportant ici une 20 mémoire 17, externe au microcontrôleur, une mémoire interne 16, par exemple une mémoire flash, et une autre mémoire interne 15, par exemple une mémoire vive (mémoire RAM). La mémoire externe 17 est couplée à un contrôleur de mémoire 14 de structure classique. 25 Le microcontrôleur 1 comporte par ailleurs une mémoire cache 12, de structure classique, par exemple une mémoire 2-associative (2- ways-associative) couplée à un contrôleur de cache 11 Le contrôleur de cache 11 est couplé au contrôleur de mémoire 14 à la mémoire 15 et à la mémoire 16 par un circuit 30 d'interconnexion 13 comportant des ports d'entrée et des ports de sortie. La structure d'un tel circuit d'interconnexion, qui est en général un circuit d'interconnexion multicouches, ainsi que le protocole permettant l'échange et le routage des transactions à 7 l'intérieur du circuit d'interconnexion sont bien connus de l'homme du métier. Celui-ci pourra par exemple se référer notamment : à l'article de Venkateswara Rao et autres intitulé « A Frame 5 work on AMBA bus based Communication Architecture to improve the Real Time Computing Performance in MPSoC », International Journal of Computer Applications (0975-8887), Volume 91 - N° 5, Avril 2014, ou à une présentation générale de ces circuits d'interconnexion 10 effectuée en 2015 par A. Gerstlauer et disponible à l'adresse internet http://users.ece.utexas.edui-gerstliee382v f14/lectures/lecture 12.pdf. Par ailleurs, à titre indicatif mais non limitatif, on peut utiliser par exemple le circuit d'interconnexion commercialisé par la société ARM sous la référence NIC-400 (version R0p3 ). 15 Le circuit d'interconnexion 13 est connecté au contrôleur de cache 11 par deux bus BS1 et BS2. Le contrôleur de cache est relié par ailleurs au microprocesseur par un troisième bus BS3 ainsi que par un quatrième bus BS4 qui, comme on le verra plus en détail, permettra une configuration des 20 registres du contrôleur de cache. Les différents bus peuvent être de toute structure classique, et par exemple des bus AHB utilisant un protocole décrit par exemple dans le document AMBA 3 AHB-Lite Protocol V1.0 Specification, de la société ARM (2001, 2006). 25 Le contrôleur de cache 11, couplé entre le processeur 10 et l'ensemble de mémoires 15, 16 et 17, le premier bus BSI, le deuxième bus BS2, le troisième bus BS3 forment ici des moyens de contrôle configurés pour - après une première requête d'une première information, par 30 exemple une première instruction, émanant du processeur 10, effectuer une première fourniture au processeur 10 de la première instruction issue de la première mémoire 17, puis, 8 - après une deuxième requête d'une deuxième instruction émanant du processeur 10, effectuer une deuxième fourniture au processeur 10 de cette deuxième instruction issue de la deuxième mémoire 16 même si le groupe 5 d'instructions dans lequel figure la première instruction est en cours de transfert depuis la première mémoire 17 en vue de son chargement dans une ligne de cache de la mémoire cache 12. On reviendra plus en détail ci-après sur un exemple de mise en 10 oeuvre d'un tel procédé. Si l'on se réfère maintenant plus particulièrement à la figure 2, on voit que le contrôleur de cache 11 comporte dans cet exemple de réalisation une première interface 111 couplée au premier bus BS1, une deuxième interface 112 couplée au deuxième bus BS2 et une 15 troisième interface 113 couplée au troisième bus BS3. Le contrôleur de cache comporte également une interface de registre 116 couplée au bus BS4 La troisième interface 113 comporte une machine d'état destinée à gérer le dialogue avec le bus relié au processeur 10 20 Cette interface 113 reçoit les requêtes en provenance du processeur comportant les adresses des informations (instructions) requises en mémoire, et fournit les instructions au processeur lorsqu'elles sont disponibles. La première interface 111 est configurée pour recevoir les 25 requêtes d'instructions émanant du processeur 10 à destination de la mémoire externe 17 et pour fournir les instructions correspondantes au processeur 10. En outre, lorsqu'une instruction fait partie d'un groupe d'instructions au sein de la première mémoire, la première interface 30 111 comporte une mémoire tampon configurée pour stocker ce groupe d'instructions extrait de la mémoire 17 puis, lorsque le stockage est terminé, envoyer une indication à un circuit de contrôle de cache 114 qui commande l'écriture et la lecture dans la mémoire cache 12. 9 La deuxième interface 112 présente une structure équivalente à celle de la première interface 111 et est configurée pour cette fois-ci recevoir les requêtes d'instructions émanant du processeur 10 à destination de la mémoire interne 16 et pour renvoyer les instructions 5 au processeur 10 Les deux interfaces 111 et 112 comportent également des machines d'état. Comme indiqué ci-avant l'interface 116 permet de configurer les registres du contrôleur de cache en réponse à une indication de 10 configuration émanant du processeur, et permet notamment de désigner en fonction de l'adresse associée à une requête du processeur, dans quelle mémoire l'information ou l'instruction correspondante est stockée. On se réfère maintenant plus particulièrement aux figures 3 à 5 15 pour décrire un exemple de mise en oeuvre du procédé selon l'invention. Sur la figure 3, on suppose dans l'étape S30 que le processeur 10 émet sur le bus BS3 une requête d'une instruction INFI qui est présente au sein d'un groupe d'instructions LMI que l'on 20 suppose dans cet exemple, occuper une ligne de la mémoire externe 17. Le contrôleur de cache vérifie tout d'abord dans l'étape S31 si cette instructions INFI est déjà stockée dans une ligne de cache de la mémoire cache 12. 25 Si l'on n'a pas de défaut de cache, c'est-à-dire si cette instruction INFI est déjà stockée dans la ligne de cache de la mémoire cache, alors le contrôleur de cache fournit l'instruction INFI au processeur 10 (étape S32). Dans le cas où l'on a un défaut de cache c'est-à-dire si 30 l'instruction INFI n'est pas stockée dans une ligne de cache de la mémoire cache, alors le contrôleur de cache envoie une requête à la première interface 111 de façon que le groupe d'instructions LN/11 occupant la ligne de la mémoire 17 et contenant l'instruction INFI, 10 soit transmise sur le bus BS1 à cette première interface 111, l'instruction INFI étant transmise en premier (étape S33) Puis, dans l'étape S34, le contrôleur de cache fournit l'instruction INFI au processeur 10 sur le bus BS3 5 Parallèlement, l'ensemble du groupe d'instructions LN/11 est chargé dans une mémoire tampon de la première interface 111 (étape S35). On suppose également que postérieurement à la requête de l'instruction INFI, le processeur émet dans l'étape S36 une deuxième 10 requête d'une deuxième instruction INF2 qui est cette fois-ci stockée au sein d'un deuxième groupe d'instructions LM2 que l'on suppose dans cet exemple, occuper une ligne LM2 dans la mémoire interne 16 Dans cet exemple, on suppose que cette partie de mémoire contenant le groupe LM2 est « cachable » c'est-à-dire destinée à être 15 également stockée dans la mémoire cache. Le contrôleur de cache vérifie donc dans l'étape S37 si l'on est en présence d'un défaut de cache. En l'absence de défaut de cache, c'est-à-dire si l'instruction INF2 est déjà présente dans la mémoire cache, le contrôleur de cache 20 fournit l'instruction INF2 au processeur 10 (étape S38). Par contre, en présence d'un défaut de cache, la deuxième interface 112 va lire la mémoire interne 16 de façon à obtenir sur le bus BS2 le groupe d'instructions LM2 contenant l'instruction INF2 (étape S39). 25 Là encore, l'instruction INF2 est fournie en premier à l'interface 112 Et, le contrôleur de cache fournit cette instruction INF2 dans l'étape S40 au processeur 10, et ce même si le chargement du groupe d'informations LM1 est toujours en cours dans la mémoire tampon de 30 la première interface 111 (étape S35). De ce fait, si cette instruction INF2 déclenche un programme d'interruption, celui-ci peut être effectué immédiatement sans attendre la fin du chargement du groupe d'information LM1 dans la mémoire tampon de l'interface 111. 11 Puis, l'ensemble du groupe d'informations LM2 est chargé dans la mémoire tampon de l'interface 112 (étape S41), aux fins d'un stockage ultérieur dans une ligne de cache de la mémoire cache. Ceci est illustré plus en détail sur la figure 4. 5 Plus précisément, une fois le chargement du groupe d'informations LM1 effectué dans la mémoire tampon de la première interface 111 (étape S35), l'interface émet une indication à destination du circuit de contrôle de cache 114. Celui-ci va alors dans l'étape S42, charger ce groupe 10 d'informations LM1 dans une ligne de cache LC1 de la mémoire cache 12. Le même processus est effectué en ce qui concerne le groupe d'informations LM2 Lorsque celui-ci est chargé (étape S41) dans la mémoire 15 tampon de l'interface 112, cette interface émet une indication à destination du circuit de contrôle de cache qui charge alors le groupe d'instructions LM2 dans une ligne de cache LC2 de la mémoire cache 12 (étape S43). Lorsque les lignes de cache LC1 et LC2 sont différentes, il n'y 20 a pas de problème. Par contre, dans certains cas, la ligne de cache LC1 peut être identique à la ligne de cache LC2 En d'autres termes, le groupe d'instructions LM1 et le groupe d'instructions LM2 sont destinés à être stockés dans une même ligne 25 de cache, par exemple la ligne de cache LC1 Ceci est illustré sur la figure 5 Aussi, à la suite de la première requête de l'instruction INF1, le chargement du groupe d'instructions LM1 est effectué dans la mémoire tampon de la première interface 111 (étape S35) comme 30 indiqué ci-avant. Et ce groupe d'instructions LM1 est destiné ensuite à être chargé dans la ligne de cache LC1 de la mémoire cache 12. Parallèlement, il y a un chargement en cours du groupe d'instructions LM2 contenant la deuxième instruction INF2 requise par 12 le processeur, dans la mémoire tampon de la deuxième interface 112 (étape S41) Et, si le chargement S41 est terminé alors que le chargement S35 est alors en cours, le circuit de contrôle de cache 114 va alors 5 charger le groupe d'instructions LM2 dans la ligne de cache LC1 (étape S43) Et, de façon à ce que ce groupe d'instructions LM2 ne soit pas écrasé par le groupe d'instructions LMI le contrôleur de cache envoie une instruction d'avortement du chargement en cours du groupe 10 d'instructions LM1 dans la mémoire tampon de l'interface 111 (étape S50) L'invention permet donc de gérer en parallèle des accès à des mémoires différentes contenant par exemple des instructions à exécuter par le processeur, et de ne pas pénaliser l'exécution d'un 15 programme d'interruption stocké dans une mémoire, interne par exemple, alors qu'une série d'instructions issues d'une autre mémoire, externe par exemple, est en cours de chargement dans une mémoire tampon en vue de son chargement dans une ligne de cache de la mémoire cache. 20 Ceci s'applique que le programme d'interruption soit « cachable » ou non. Par ailleurs, dans le cas où deux séries d'instructions respectivement stockées par exemple dans deux lignes de mémoires des deux mémoires sont « cachables » et destinées à être stockées dans 25 une même ligne de cache, l'invention offre une politique avantageuse de remplacement dans la mémoire cache. En effet, dans le cas où une deuxième série d'instructions résultant d'une deuxième requête postérieure à une première requête, est prête à être chargée dans ladite ligne de cache avant la première série d'instructions résultant de la 30 requête antérieure, il est prévu un avortement du processus conduisant au chargement de la première série d'instructions REVENDICATIONS1. Procédé de gestion de la fourniture d'informations à un processeur, le processeur (10) coopérant avec un ensemble de mémoires comportant au moins une mémoire cache (12), une première mémoire (17) stockant au moins une première information (INF1) au sein d'un premier groupe d'informations (L1\41) et une deuxième mémoire (16) stockant au moins une deuxième information (LM2) au sein d'un deuxième groupe d'informations (LM2), le procédé comprenant, - après un premier défaut de cache consécutif à une première requête (S30) de ladite première information (INF1) émanant du processeur, une première fourniture (S34) au processeur de la première information issue de la première mémoire, puis - après une deuxième requête (S36) de ladite deuxième information (INF2) émanant du processeur, une deuxième fourniture (S40) au processeur de la deuxième information issue de la deuxième mémoire, même si le premier groupe d'informations (LM1) est en cours de transfert depuis la première mémoire en vue de son chargement (S35) dans la mémoire cache (12). 2. Procédé selon la revendication 1, comprenant en outre un deuxième défaut de cache consécutif à ladite deuxième requête (S36). 3. Procédé selon la revendication 2, dans lequel un contrôleur de cache (11) est couplé entre le processeur (10) et l'ensemble de mémoires, et la première fourniture de la première information et la deuxième fourniture de la deuxième information sont respectivement effectuées sur deux bus distincts (BS1, BS2) reliant respectivement la première mémoire (17) et la deuxième mémoire (16) au contrôleur de cache (11) et sur un troisième bus (BS3) reliant le contrôleur de cache (11) et le processeur (10). 4. Procédé selon la revendication 2 ou 3, dans lequel si le deuxième groupe d'informations (LM2) est prêt à être chargé dans une 14 ligne de cache (LC1) de la mémoire cache (12) avant que le premier groupe d'informations (LM1) soit prêt à être chargé dans cette même ligne de cache (LC1), on interdit (S50) le chargement du premier groupe d'informations dans ladite ligne de cache (LC1). 5 5. Procédé selon l'une des revendications précédentes, dans lequel ladite première information (INF1) comporte au moins une instruction à exécuter par le processeur. 6. Procédé selon l'une des revendications précédentes, dans lequel ladite deuxième information (INF2) comporte au moins une 10 instruction d'un programme d'interruption. 7. Système, comprenant un processeur (10), un ensemble de mémoire configuré pour coopérer avec le processeur (10) et comportant au moins une mémoire cache (12), une première mémoire (17) configurée pour stocker au moins une première 15 information (INF1) au sein d'un premier groupe d'informations (LM1) et une deuxième mémoire (16) configurée pour stocker au moins une deuxième information (INF2) au sein d'un deuxième groupe d'informations (LM2), et des moyens de contrôle (11, BS1, BS2, BS3) configurés pour : 20 - après une première requête de ladite première information (INF1) émanant du processeur, effectuer une première fourniture au processeur de la première information issue de la première mémoire, puis - après une deuxième requête de ladite deuxième 25 information (INF2) émanant du processeur relatif à la deuxième information, effectuer une deuxième fourniture au processeur de la deuxième information issue de la deuxième mémoire même si le premier groupe d'informations (LM1) est en cours de transfert depuis la première mémoire en vue 30 de son chargement dans la mémoire cache 8. Système selon la revendication 7, dans lequel les moyens de contrôle (11, B SI, BS2, BS3) sont configurés pour effectuer ladite deuxième fourniture après un deuxième défaut de cache consécutif à ladite deuxième requête. 15 9 Système selon la revendication 8, dans lequel les moyens de contrôle comprennent - un contrôleur de cache (11) couplé entre le processeur et l'ensemble de mémoires, et possédant au moins une 5 première interface (H 1), une deuxième interface (112) et une troisième interface (113), - un premier bus (BS 1 ) couplé entre la première interface (1H) et la première mémoire (17), - un deuxième bus (BS2) couplé entre la deuxième 10 interface (H2) et la deuxième mémoire (16), - un troisième bus (BS3) couplé entre la troisième interface (113) et le processeur (10), le contrôleur de cache (11) étant configuré pour fournir la première information délivrée par la première mémoire sur 15 le premier bus au processeur via la troisième interface et le troisième bus, et pour fournir la deuxième information délivrée par la deuxième mémoire sur le deuxième bus au processeur via la troisième interface et le troisième bus. 10. Système selon la revendication 8 ou 9, dans lequel les 20 moyens de contrôle sont configurés pour, si le deuxième groupe d'informations est prêt à être chargé dans une ligne de cache de la mémoire cache avant que le premier groupe d'informations soit prêt à être chargé dans cette même ligne de cache, interdire (S50) le chargement du premier groupe d'informations dans ladite ligne de 25 cache. 11. Système selon la revendication 10, dans lequel la première interface (111) comporte une mémoire tampon configurée pour stocker le premier groupe d'informations (LM1) extrait de la première mémoire et le contrôleur de cache (11) est configuré pour faire avorter 30 le processus de stockage du premier groupe d'informations (LIM1). 12. Système selon l'une des revendications 7 à 11, dans lequel ladite première information comporte au moins une instruction (INF1) à exécuter par le processeur. 16 13. Système selon l'une des revendications 7 à 12, dans lequel ladite deuxième information comporte au moins une instruction (INF) d'un programme d'interruption. 14. Système selon l'une des revendications 7 à 13, comprenant 5 un microcontrôleur (1) incorporant le processeur (10), la mémoire cache (12), la deuxième mémoire (16) et le contrôleur de cache (11), et dans lequel la première mémoire (17) est une mémoire externe au microcontrôleur (1)