Brevet FR2778256A1 — publié le 19991105

La présente invention concerne d'une manière générale des dispositifs de calcul et plus particulièrement un procédé et un dispositif pour exécuter une insertion efficace de données dans une mémoire cache. La plupart des dispositifs de traitement modernes utilisent une mémoire cache pour accroître la vitesse de traitement. Une mémoire cache agit en tant qu'intermédiaire entre un circuit de traitement, tel qu'un processeur à usage général ou un processeur de signaux numériques, et un bloc de mémoire, de façon typique une mémoire dynamique à accès direct (connue sous le sigle DRAM). La mémoire cache, de façon typique une mémoire statique à accès direct (connue sous le sigle SRAM), est en général beaucoup plus petite que le bloc de mémoire principal (en termes de capa- cité de mémorisation), mais est nettement plus rapide. La mémoire cache conserve une partie des données dans le bloc de mémoire. Lorsque le processeur accède à des données, la mémoire cache est tout d'abord contrôlée, de manière à déterminer si les données résident dans la mémoire cache; si c'est le cas, on obtient un "succès dans la mémoire cache" et les données sont prélevées de la mémoire cache, qui peut délivrer ces données à grande vitesse en réponse à la demande d'accès à la mémoire. D'autre part, si les don- nées ne résident pas dans la mémoire cache, il apparaît un "insuccès en mémoire" et les données sont prélevées du bloc de mémoire. Après un insuccès en mémoire, le processeur est en général obligé d'attendre pendant plusieurs cycles d'horloge que les données soient extraites du bloc de mémoire. Les architectures de mémoire cache comportent souvent des cadences de succès comprises entre 90 et 95 %, en fonction de l'application. Le rendement réel dépend d'un certain nombre de facteurs incluant le système utilisé d'insertion en mémoire cache, les dimensions de la mémoire cache et l'application exécutée par le processeur. Les mémoires caches permettent par conséquent à une mémoire plus lente et moins coûteuse de mémoriser un nombre élevé de données, tout en mémorisant la partie des données la plus susceptible d'être consultée dans la mémoire cache fonctionnant à grande vitesse. Bien que la vitesse, avec laquelle les données peuvent être extraites du bloc de mémoire, a fortement aug- menté dans les mémoires caches, les architectures mêmes des mémoires caches peuvent être lentes par rapport aux capaci- tés de processeurs fonctionnant à grande vitesse. En outre une mémoire cache dissipe des quantités élevées d'énergie, ce qui est particulièrement important pour des dispositifs électroniques mobiles. C'est pourquoi, il s'est avéré nécessaire de disposer d'une architecture de mémoire cache fonctionnant à grande vitesse et avec une faible quantité d'énergie. La présente invention fournit un procédé et un dispositif pour l'insertion de données en mémoire cache. Le signal de sortie d'une mémoire cache est verrouillé dans un tampon de sortie. Lors de la réception d'une adresse de mémoire, la mémoire cache détermine si les données asso- ciées à l'adresse de mémoire sont mémorisées dans le tampon de sortie. Si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, les données sont extraites du tampon de sortie. Si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, la mémoire cache détermine si les données asso- ciées à l'adresse de mémoire sont mémorisées en elle. La présente invention fournit des avantages importants par rapport à l'art antérieur. Etant donné que la même ligne de transmission de données dans la mémoire cache peut être successivement le siège de succès à de mul- tiples reprises, la présente invention permet de contourner le circuit de consultation de la mémoire cache, lorsque les données sont disponibles dans le tampon de sortie associé à la mémoire cache. Ceci permet de réduire fortement la puis- sance consommée par le circuit de la mémoire cache et aug- mente la vitesse d'extraction de données en permettant une vitesse accrue du processeur. De façon plus précise l'invention concerne, selon un premier aspect, un procédé pour l'insertion de données en mémoire cache, caractérisé en ce qu'il comprend les étapes consistant à: verrouiller le signal de sortie d'une mémoire cache dans un tampon de sortie; recevoir une adresse de mémoire; déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie; et si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, extraire les don- nées du tampon de sortie; et si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, déterminer si les données associées à l'adresse de mémoire sont mémo- risées dans la mémoire cache. Selon une autre caractéristique de l'invention, ladite étape de verrouillage comprend le verrouillage du signal de sortie d'une mémoire cache dans un tampon de sor- tie intégré dans ladite mémoire cache. Selon une autre caractéristique de l'invention, ladite étape de verrouillage comprend le verrouillage du signal de sortie d'une mémoire cache dans un tampon de sor- tie situé à l'extérieur de ladite mémoire cache. Selon une autre caractéristique de l'invention, il comprend en outre l'étape consistant à mémoriser les données associées aux données situées dans le tampon de sortie. Selon une autre caractéristique de l'invention, ladite étape servant à déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie comprend l'étape consistant à comparer l'adresse reçue à l'adresse mémorisée. Selon une autre caractéristique de l'invention, il comprend en outre l'étape consistant à produire un signal d'invalidation si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie. Selon une autre caractéristique de l'invention, il comporte en outre l'étape consistant à invalider sélec- tivement des accès à la mémoire cache en réponse au signal d'invalidation. Selon un second aspect, la présente invention concerne un circuit de mémoire cache, caractérisé en ce qu'il comprend: une mémoire cache, à laquelle un accès est réa- lisé en réponse à une adresse de mémoire reçue; un tampon de sortie servant à mémoriser le signal de sortie de ladite mémoire cache; un circuit pour déterminer si les données asso- ciées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, et un circuit de commande pour: extraire les données du tampon de sortie si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie; et accéder à des données à partir de la mémoire cache si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, mais sont disponibles dans la mémoire cache. Selon une autre caractéristique de l'invention, ledit tampon de sortie est intégré dans ladite mémoire cache. Selon une autre caractéristique de l'invention, ledit dispositif de mémoire est situé à l'extérieur de ladite mémoire cache. Selon une autre caractéristique de l'invention, ledit circuit de commande comprend un registre pour une adresse correspondant aux données situées dans ledit tampon de sortie. Selon une autre caractéristique de l'invention, ledit circuit de commande comporte l'adresse située dans ledit registre à ladite adresse de mémoire pour déterminer si les données associées à l'adresse de mémoire sont mémo- risées dans le tampon de sortie. Selon une autre caractéristique de l'invention, ledit circuit de commande produit un signal d'invalidation si les données associées à l'adresse de mémoire sont mémo- risées dans le tampon de sortie. Selon une autre caractéristique de l'invention, ladite mémoire cache est invalidée en réponse audit signal d'invalidation. Selon un autre aspect, l'invention a trait à un dispositif de traitement qui comporte: un processeur, une mémoire principale, et un circuit de mémoire cache couplé audit proces- seur et à ladite mémoire principale, ledit circuit de mémoire cache comprenant: une mémoire cache, à laquelle un accès est réa- lisé en réponse à une adresse de mémoire reçue; un tampon de sortie servant à mémoriser le signal de sortie de ladite mémoire cache; un circuit pour déterminer si les données asso- ciées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, et un circuit de commande pour: extraire les données du tampon de sortie si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie; et accéder à des données à partir de la mémoire cache si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, mais sont disponibles dans la mémoire cache. Selon une autre caractéristique, ledit tampon de sortie est intégré dans ladite mémoire cache. Selon une autre caractéristique, le dispositif de mémoire est situé à l'extérieur de ladite mémoire cache. Selon une autre caractéristique, ledit circuit de commande comprend un registre pour une adresse correspon- dant aux données situées dans ledit tampon de sortie. Selon une autre caractéristique, ledit circuit de commande compare l'adresse située dans ledit registre à ladite adresse de mémoire pour déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie. Selon une autre caractéristique, ledit circuit de commande produit un signal d'invalidation si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie. Selon une autre caractéristique, ladite mémoire cache est invalidée en réponse audit signal d'invalidation. D'autres caractéristiques et avantages de la pré- sente invention ressortiront de la description donnée ci- après prise en référence aux dessins annexés, sur les- quels: - la figure 1 est une vue en perspective d'un téléphone à microprocesseur; - la figure 2 représente un schéma-bloc d'une architecture de dispositif électronique mobile, qui pour- rait être utilisée dans le téléphone à microprocesseur de la figure 1 ou dans d'autres dispositifs électroniques mobiles; - la figure 3 illustre un schéma-bloc d'une architecture de mémoire cache, qui pourrait être utilisée dans l'architecture de dispositifs électroniques mobiles de la figure 2 et dans d'autres dispositifs de traitement; et - la figure 4 illustre un organigramme décrivant le fonctionnement de l'architecture de mémoire cache de la figure 3. La présente invention sera mieux comprise en référence aux figures 1-4 des dessins, sur lesquels des chiffres de référence identiques sont utilisés pour dési- gner des éléments identiques sur les différentes figures. La figure 1 représente un téléphone à micropro- cesseur 2, qui associe la capacité d'une transmission sans fil de signaux vocaux et de données à des capacités de traitement similaire à un assistant numérique personnel (PDA) ou un ordinateur mobile. Le téléphone à microproces- seur 2 comprend un dispositif d'affichage 4, un clavier 6, un haut-parleur 7 et un microphone 8. La figure 2 représente une forme de réalisation prise à titre d'exemple d'une architecture générale de plate-forme de traitement de données sans fil, qui pourrait être utilisée par exemple dans la forme de réalisation du téléphone à microprocesseur 2 dans un dispositif dans un assistant numérique personnel (PDA) ou dans un autre dispo- sitif électronique mobile. La plate-forme 10 de traitement de données sans fil Comprend un ordinateur (central) à usage général 12 couplé à une structure de bus 14 compre- nant un bus 14a de transmission de données, un bus 14b de transmission d'adresses et un bus de commande 14c. Un ou plusieurs processeurs de signaux numériques (DSP) (ou d'autres coprocesseurs) 16 incluant le processeur de base 12a et l'interface périphérique 16b, sont couplés au bus 14 et à un ensemble mémoire/contrôleur de trafic 8, qui inclut une mémoire cache 18a du processeur DSP, une mémoire cache 18b d'une unité centrale CPU et une unité MMU (unité de gestion de mémoire) 18c. Un circuit accélérateur matériel (permettant d'accélérer un langage pour portables tel que "JAVA") et un contrôleur vidéo LCD 22, qui sont égale- ment couplés à l'ensemble mémoire/contrôleur de trafic 18. Le signal de sortie du contrôleur vidéo LCD est couplé à un dispositif d'affichage 4. L'ensemble mémoire/contrôleur de trafic 18 est couplé au bus 14 et à la mémoire principale 26, représentée sous la forme d'une mémoire SDRAM (mémoire dynamique syn- chrone à accès direct). Le bus 14 est également connecté au contrôleur d'entrée/sortie I/O 28, à l'interface 30 et une mémoire RAM/ROM 32. Une pluralité de dispositifs pourraient être couplés à la plate-forme 10 de transmission de données sans fil, comme par exemple une carte à puce 34, un clavier 36, une souris 38 ou un ou plusieurs ports en série 40, comme par exemple un port USB (de bus universel en série) ou un port en série RS232. L'interface 30 permet le cou- plage à une carte de mémoire flash 42 et/ou à une carte de mémoire DRAM 44. L'interface périphérique 16b permet de coupler le processeur DSP 16 à un convertisseur DAC (convertisseur numérique/analogique) 46, à une interface 48 du réseau ou à d'autres dispositifs. Dans la forme de réalisation préférée, la plate- forme 10 de traitement de données sans fil de la figure 2 utilise à la fois un processeur à usage général 12 et un processeur DSP 16. Contrairement à des dispositifs actuels, dans lesquels le processeur DSP 16 est affecté spécialement à des fonctions fixes spécifiques, le processeur DSP 16 de la figure 2 peut être utilisé pour un nombre quelconque de fonctions. Cela permet à l'utilisateur d'avoir des avan- tages complets du processeur DSP 16. Un domaine principal, dans lequel le processeur DSP 16 peut être utilisé, est associé à l'interface homme- machine (MMI). Ce qui est important, c'est que des fonc- tions telles que la reconnaissance de la parole, la com- pression et la décompression d'images et vidéo, le cryptage des données, la conversion texte - parole, etc. peuvent être exécutés plus efficacement en utilisant le processeur DSP 16. La présente architecture permet d'ajouter aisément de nouvelles fonctions et améliorations à la plate-forme 10 de traitement de données sans fil. On notera que la plate-forme 10 de traitement de données sans fil est un schéma-bloc général et que de nom- breuses modifications peuvent y être apportées. Par exemple la figure 2 représente des mémoires séparées à savoir une mémoire 18a pour le processeur DSP et une mémoire 18b pour l'autre processeur. Comme cela est connu du spécialiste de la technique, on pourrait également utiliser une seule mémoire cache dans une autre forme de réalisation. En outre, le circuit matériel d'accélération 20 est un élément facultatif. De tels dispositifs accélèrent la mise en oeuvre de langages tels que JAVA; cependant, ce circuit n'est pas nécessaire pour faire fonctionner le dispositif. En outre, bien que dans la forme de réalisation représentée on ait indiqué un seul processeur DSP, de multiples proces- seurs DSP (ou d'autres coprocesseurs) pourraient être cou- plés aux bus. La figure 3 représente une architecture de mémoire cache 50, qui peut augmenter fortement le rendement et la vitesse d'une mémoire cache. Bien que cette architec- ture de mémoire cache soit représentée de façon spécifique pour la mémoire cache d'instructions, il faut noter que l'architecture de mémoire cache 50 pourrait être également utilisée pour une mémoire cache de données ou une mémoire cache unifiée de données/d'instructions (moyennant de faibles modifications). En outre, cette architecture de mémoire cache pourrait être utilisée en liaison avec n'importe quel dispositif de traitement qui ferait partie d'une mémoire cache, incluant des téléphones à microproces- seur, des systèmes PDA, des ordinateurs de poche, des ordi- nateurs blocs-notes, des ordinateurs de bureau, etc. Dans l'architecture 50 de la mémoire cache, un contrôleur 52 de la mémoire cache reçoit une adresse de mémoire, dans ce cas, une adresse d'instruction à 32 bits IA[31:2], "[31:2]" indiquant que le contrôleur de la mémoire cache reçoit des bits "2" à "31" de l'adresse à 32 bits. L'adresse à 32 bits correspond à un espace de mémoire adressable de 232 = 4 gigaoctets ou 1 gigamot (un mot étant constitué de quatre octets). Le contrôleur 52 de la mémoire cache est couplé à un réseau d'étiquettes 54 et à un réseau de données 56. L'architecture représentée de la mémoire cache est agencée sous la forme d'une mémoire cache asso- ciative par ensembles à deux voies; par conséquent, à la fois le réseau d'étiquettes et le réseau de données compor- tent deux plans de mémoire respectivement 54a-b et 56a-b. Dans la forme de réalisation représentée, chaque plan 54a-b du réseau d'étiquettes est disposé sous la forme d'un réseau de mémoire 512 x 20. Les signaux de sortie des plans 54a et 54b sont envoyés à des comparateurs respectifs 57a et 57b. IA[31:13] sont également couplés aux deux compara- teurs 57a et 57b. Chaque comparateur 57a et 57b produit un signal de sortie à un bit, combiné de manière à former un signal SUCCES à deux bits. Le réseau d'étiquettes 54 est une mémoire asynchrone à deux ports, dans laquelle Q désigne le bus de transmission de données de sortie, AR désigne le bus de lecture d'adresses, D désigne le bus de transmission de données d'entrée et AW désigne le bus d'écriture d'adresses. Le signal IA[12:4] est appliqué au bus AR. De façon similaire, chaque plan 56a-b du réseau de données est disposé selon un agencement 512 x 128. Cha- cune des lignes à 128 bits peut être adressée sous la forme de quatre mots par les bits IA[12:4]. Chaque mot dans une ligne peut être adressé individuellement par IA[3:2]. La sortie de chaque réseau de données 56 est couplée à un mul- tiplexeur 58, conjointement avec la sortie d'une mémoire principale SD[31:0] (qui fournit des données dans le cas SUCCES = "00"). Le multiplexeur 58 est représenté sous la forme d'un multiplexeur 9:1 qui effectue une sélection parmi quatre mots à 32 bits à partir du premier plan de la mémoire d'étiquettes 56a, quatre mots à 32 bits à partir du second plan de la mémoire d'étiquettes 56b et un mot à 32 bits à partir de la mémoire principale. Le signal de sortie du multiplexeur 58 est commandé par IA[3:2] (qui indique le mot sélectionné dans la ligne), le signal SUCCES à 2 bits (qui indique quel plan 56a ou 56b a été le siège du succès) délivré par les comparateurs 57 et le signal de ligne de remplissage (qui indique que le mot provient de la mémoire principale en raison d'un insuccès). A la suite d'un insuc- cès, les mots sont présentés à la volée au processeur. Par conséquent, si l'accès au premier mot d'une ligne est un insuccès, le processeur n'a pas besoin d'attendre la fin de la charge de la ligne. En outre, une unité 60 basée sur un algorithme d'ancienneté (dit LRU) et des réseaux de bits valables 62a- b sont couplés au réseau d'étiquettes 64. Le contrôleur 62 de la mémoire cache comporte un registre interne 64, qui mémorise l'adresse de la ligne "active", qui est la ligne de données disponible dans le tampon de sortie du réseau de données 56 (IA_R[32:2]). Le contrôleur 52 de la mémoire cache délivre un signal d'invalidation si l'adresse demandée est égale à l'adresse comprise dans le registre 64 (c'est-à-dire si l'on a IA[31:2] = IA_R[32:2]). Cet aspect sera discuté plus loin de façon plus détaillée. On notera que la structure particulière de la mémoire cache 50 (c'est-àdire associative par ensembles à deux voies) et les dimensions du réseau d'étiquettes et du réseau de données et de l'adresse d'instruction sont don- nées uniquement à titre d'illustration. o Dans une mémoire cache associative par ensembles, chaque emplacement dans la mémoire principale (la "mémoire principale" est la mémoire dont les données sont insérées dans la mémoire cache au moyen de l'architecture de la mémoire cache) correspond à une adresse dans le réseau de données. Etant donné que le réseau de données est en géné- ral beaucoup plus petit que la mémoire principale, chaque adresse du réseau de données est configurée de manière à correspondre à un grand nombre d'adresses dans la mémoire principale. Des données délivrées par une mémoire spéci- fique d'adresses peuvent exister dans l'un quelconque des ensembles de la mémoire cache associative. Le fonctionnement d'une mémoire cache associative par ensemble est bien connu dans la technique et va être résumé ci-après pour une opération de lecture. Lorsqu'une adresse IA[31:0] est reçue pour un accès à la mémoire, IA[12:4] sont utilisés en tant qu'adresse dans chaque plan 54a et 54b du réseau d'étiquettes 54. Chaque plan du réseau d'étiquettes 54 délivre des bits de rang élevé A[31:13] en réponse à l'adresse. A[31:13] identifient l'adresse de la mémoire principale, à laquelle ses données sont mémorisées dans le plan respectif 54a-b. A[31-13] provenant de chaque plan 54a et 54b est comparé dans le comparateur respectif 54a et 54b aux bits de rang élevé de l'adresse actuelle IA[31:13]. Si l'adresse de rang élevé concorde dans l'un des plans (un succès dans la mémoire cache), alors les don- nées pour cette adresse de mémoire peuvent être extraites du réseau de données correspondant; s'il n'y a aucune concordance (un insuccès dans la mémoire cache), les don- nées doivent être extraites de la mémoire principale. Chaque adresse de mémoire dans la mémoire d'étiquettes pos- sède un bit valable correspondant. Ces bits indiquent si les données à l'emplacement correspondant dans la mémoire cache sont valables. L'unité LRU 60 détermine quel ensemble est mis à jour après un insuccès dans la mémoire cache. L'architecture 50 de la mémoire cache présente une caractéristique d'invalidation qui peut améliorer for- tement le rendement du fonctionnement de la mémoire cache. L'adresse arrivante IA[31:4] est comparée au bit correspon- dant de l'adresse de la ligne active (c'est-à-dire l'adresse des données actuellement disponibles dans les circuits de verrouillage intégrés du tampon de sortie de la mémoire). Si ces adresses sont identiques, les pas d'accès au réseau d'étiquettes 54 et au réseau de données 56 peu- vent être supprimés étant donné que l'on sait que les don- nées demandées sont actuellement prêtes pour être délivrées par le multiplexeur 58. IA[3:2] délivre l'information au multiplexeur 58 pour l'extraction du mot désiré à partir de la ligne active. Il faut noter que, dans la forme de réalisation représentée, les tampons de sortie des réseaux d'étiquettes forment le dispositif de mémoire servant à conserver les données de la ligne active; sinon, on pourrait prévoir une mémoire externe, telle qu'un tampon d'entrée dans le multi- plexeur 58, pour mémoriser la ligne active. Un organigramme décrivant le fonctionnement de l'architecture 50 de la mémoire cache est représenté sur la figure 4. Dans le bloc 70, une adresse (IA) est reçue pour un accès de lecture de données. Les bits importants de l'adresse IA (bits [31:4] dans l'exemple représenté) sont comparés aux bits correspondants de l'adresse de la ligne active dans le tampon de sortie de la mémoire dans le bloc 72. Si les bits ne concordent pas dans le bloc de décision 74, c'est-à-dire si les données demandées ne sont pas mémo- risées dans le tampon de sortie du réseau de données 56 de la mémoire cache, alors un accès aux réseaux d'étiquettes 54a-b est exécuté avec les bits appropriés dans le bloc 76. Les signaux de sortie des réseaux d'étiquettes 54 sont com- parés aux bits de rang élevé de l'adresse IA pour détermi- ner s'il existe un succès dans la mémoire cache, dans les blocs 78 et 80. S'il n'existe aucun succès ou si le bit de validation indique que les données sont altérées, alors les données sont extraites de la mémoire principale, dans le bloc 82, et les réseaux de données et d'étiquettes sont mis à jour pour la mémorisation de données provenant de la mémoire principale dans la mémoire cache. Le multiplexeur exécute une commutation sélective entre le signal IA[12:4] et le signal IA_R[12:4]. Après un insuccès dans la mémoire cache, IA_R est utilisé pour maintenir l'adresse stable pendant la durée de la charge d'une ligne provenant de la mémoire principale, étant donné que IA peut désigner une adresse à l'extérieur de la gamme de la ligne avant que la ligne soit complètement chargée. IA_R[31:13] (couplée à D) et IA_R[12:4] (couplée à AW) sont utilisés pour la mise à jour du réseau d'étiquettes après un insuccès. Dans le cas d'un succès dans le bloc de décision , alors dans le bloc 84, la ligne de mémoire, qui inclut des données demandées, est extraite du réseau de données 56, en réponse aux bits d'adresses de rang faible IA[12:4]. Cette ligne est verrouillée dans le tampon de sortie et l'adresse de la ligne active est mise à jour dans le registre de ligne active 64 dans le bloc 86. Le mot adressé par 1A[31:2] est ensuite transmis par le multiplexeur 58 en réponse aux bits IA[3:2] et au signal SUCCES dans le bloc 88. D'autre part, si l'adresse IA désigne des données qui font partie de la ligne active dans le bloc 74, alors le signal d'invalidation (DIS) est positionné dans le bloc 90. Ce signal arrête l'accès au réseau d'étiquettes et au réseau de données et déclenche l'extraction de données à partir de la ligne active actuellement mémorisée dans le tampon de sortie du réseau de mémoire. Par conséquent, lorsque le signal DIS est validé, les pas 76-98 peuvent être contournés. Par conséquent, l'énergie utilisée pour accéder au réseau d'étiquettes 54et au réseau de données 56 est conservée lorsque ces systèmes sont invalidés. L'invalidation de la mémoire cache fournit des avantages importants. Tout d'abord un grand nombre d'opéra- tions peuvent être supprimées lorsque les données demandées sont disponibles à partir de la ligne active dans le tampon de sortie. Pour des dispositifs électroniques mobiles, ceci peut conduire à des économies importantes d'énergie par réduction des accès aux réseaux d'étiquettes et de données 54 et 56 de la mémoire. En second lieu, les données peuvent être extraites immédiatement du tampon de sortie du réseau de données, pour une réponse plus rapide. Etant donné que le réseau de données mémorise de multiples mots dans chaque ligne, il existe une probabilité élevée que des lectures successives soient effectuées à partir de la même ligne lors de l'accès séquentiel à des instructions. En outre, si une boucle d'instructions peut être contenue dans une seule ligne dans le réseau de don- nées, les données provenant de la même ligne active peuvent être lues pour de nombreux cycles. C'est pourquoi, la pré- sente invention permet de réaliser une économie d'une quan- tité importante d'énergie et de temps. Bien que le processeur accède aux données à par- tir du tampon d'écriture du réseau de données 56, il peut fonctionner beaucoup plus rapidement que lorsque l'accès aux données doit être réalisé à partir du réseau de don- nées. Par exemple, bien que le réseau de données puisse être à même de produire des données à une cadence de MHz, le processeur peut être à même d'effectuer une lec- ture à partir du tampon d'écriture (sans accès du réseau de données 56) à une cadence de 160 MHz. En supposant un taux de succès global dans la mémoire cache de 95 % et une mémoire cache contenant 8 instructions par ligne, alors on a ce qui suit: 95 % des instructions proviennent de la mémoire cache: %*7/8 du temps, le processeur peut fonctionner à 160 MHz; pendant 95 %*1/8 du temps, le processeur présente une attente d'un cycle; pendant 5 % du temps le processeur attend des données en provenance de la mémoire principale. Le rendement peut être en outre amélioré au moyen d'un accroissement du nombre d'instructions par ligne de la mémoire cache. En supposant une architecture comportant seize instructions par ligne de la mémoire cache: % des instructions proviennent de la mémoire cache: pendant 95 %*15/16 du temps, le processeur peut fonctionner à 160 MHz; pendant 95 %*1/16 du temps, le processeur pré- sente une attente d'un seul cycle; pendant 5 % du temps, le processeur attend des données en provenance de la mémoire principale. Par conséquent, l'architecture 50 de la mémoire cache permet au processeur de travailler à des vitesses supérieures à celles que peut fournir la mémoire cache elle-même. Bien que la description détaillée de la présente invention ait concerné certaines formes de réalisation prises à titre d'exemple, différentes variantes de ces formes de réalisation ainsi que d'autres formes de réalisa- tion apparaîtront aux spécialistes de la technique, dans le cadre de la présente invention. REVENDICATIONS 1. Procédé pour l'insertion de données en mémoire cache, caractérisé en ce qu'il comprend les étapes consis- tant à: verrouiller le signal de sortie d'une mémoire cache (50) dans un tampon de sortie; recevoir une adresse de mémoire; déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie; et si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, extraire les don- nées du tampon de sortie; et si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, déterminer si les données associées à l'adresse de mémoire sont mémo- risées dans la mémoire cache. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape de verrouillage comprend le ver- rouillage du signal de sortie d'une mémoire cache dans un tampon de sortie intégré dans ladite mémoire cache. 3. Procédé selon la revendication 1, caractérisé en ce que ladite étape de verrouillage comprend le ver- rouillage du signal de sortie d'une mémoire cache dans un tampon de sortie situé à l'extérieur de ladite mémoire cache. 4. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à mémori- ser les données associées aux données situées dans le tam- pon de sortie. 5. Procédé selon la revendication 4, caractérisé en ce que ladite étape servant à déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie comprend l'étape consistant à comparer l'adresse reçue à l'adresse mémorisée. 6. Procédé selon l'une quelconque des revendica- tions 1 à 5, caractérisé en ce qu'il comprend en outre l'étape consistant à produire un signal d'invalidation si les données associées à l'adresse de mémoire sont mémori- sées dans le tampon de sortie. 7. Procédé selon la revendication 6, caractérisé en ce qu'il comporte en outre l'étape consistant à invali- der sélectivement des accès à la mémoire cache en réponse au signal d'invalidation. 8. Circuit de mémoire cache (50), caractérisé en ce qu'il comprend: une mémoire cache, à laquelle un accès est réa- lisé en réponse à une adresse de mémoire reçue; un tampon de sortie servant à mémoriser le signal de sortie de ladite mémoire cache; un circuit pour déterminer si les données asso- ciées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, et un circuit de commande (52) pour: extraire les données du tampon de sortie si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie; et accéder à des données à partir de la mémoire cache si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, mais sont disponibles dans la mémoire cache. 9. Circuit de mémoire cache selon la revendica- tion 8, caractérisé en ce que ledit tampon de sortie est intégré dans ladite mémoire cache. 10. Circuit de mémoire cache selon la revendica- tion 8, caractérisé en ce que ledit dispositif de mémoire est situé à l'extérieur de ladite mémoire cache. 11. Circuit de mémoire cache selon la revendica- tion 8, dans lequel ledit circuit de commande (52) comprend un registre (64) pour une adresse correspondant aux données situées dans ledit tampon de sortie. 12. Circuit de mémoire cache selon la revendica- tion 11, caractérisé en ce que ledit circuit de commande (52) comporte l'adresse située dans ledit registre à ladite adresse de mémoire pour déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie. 13. Circuit de mémoire cache selon la revendica- tion selon l'une quelconque des revendications 8 à 12, caractérisé en ce que ledit circuit de commande (52) pro- duit un signal d'invalidation si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sor- tie. 14. Circuit de mémoire cache selon la revendica- tion 13, caractérisé en ce que ladite mémoire cache est invalidée en réponse audit signal d'invalidation. 15. Dispositif de traitement, caractérisé en ce qu'il comporte: un processeur (12), une mémoire principale (26), et un circuit de mémoire cache couplé audit proces- seur et à ladite mémoire principale, ledit circuit de mémoire cache comprenant: une mémoire cache, à laquelle un accès est réa- lisé en réponse à une adresse de mémoire reçue; un tampon de sortie servant à mémoriser le signal de sortie de ladite mémoire cache; un circuit pour déterminer si les données asso- ciées à l'adresse de mémoire sont mémorisées dans le tampon de sortie, et un circuit de commande (52) pour: extraire les données du tampon de sortie si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie; et accéder à des données à partir de la mémoire cache si les données associées à l'adresse de mémoire ne sont pas mémorisées dans le tampon de sortie, mais sont disponibles dans la mémoire cache. 16. Dispositif de traitement selon la revendica- tion 15, caractérisé en ce que ledit tampon de sortie est intégré dans ladite mémoire cache. 17. Dispositif de traitement selon la revendica- tion 15, caractérisé en ce que le dispositif de mémoire est situé à l'extérieur de ladite mémoire cache. 18. Dispositif de traitement selon la revendica- tion 15, caractérisé en ce que ledit circuit de commande (52) comprend un registre (64) pour une adresse correspon- dant aux données situées dans ledit tampon de sortie. 19. Dispositif de traitement selon la revendica- tion 18, caractérisé en ce que ledit circuit de commande (52) compare l'adresse située dans ledit registre (64) à ladite adresse de mémoire pour déterminer si les données associées à l'adresse de mémoire sont mémorisées dans le tampon de sortie. 20. Dispositif de traitement selon l'une quel- conque des revendications 15 à 19, caractérisé en ce que ledit circuit de commande produit un signal d'invalidation si les données associées à l'adresse de mémoire sont mémo- risées dans le tampon de sortie. 21. Dispositif de traitement selon la revendica- tion 20, caractérisé en ce que ladite mémoire cache est invalidée en réponse audit signal d'invalidation.