EP1103897A1 - Dispositif de mémoire - Google Patents

Dispositif de mémoire Download PDF

Info

Publication number
EP1103897A1
EP1103897A1 EP00403317A EP00403317A EP1103897A1 EP 1103897 A1 EP1103897 A1 EP 1103897A1 EP 00403317 A EP00403317 A EP 00403317A EP 00403317 A EP00403317 A EP 00403317A EP 1103897 A1 EP1103897 A1 EP 1103897A1
Authority
EP
European Patent Office
Prior art keywords
memory
instructions
processor
instruction
cache memory
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.)
Withdrawn
Application number
EP00403317A
Other languages
German (de)
English (en)
Inventor
Jean-Marc Masgonty
Michel Schinz
Christian Piguet
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.)
CSEM Centre Suisse dElectronique et de Microtechnique SA Recherche et Développement
Original Assignee
CSEM Centre Suisse dElectronique et de Microtechnique SA Recherche et Développement
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 CSEM Centre Suisse dElectronique et de Microtechnique SA Recherche et Développement filed Critical CSEM Centre Suisse dElectronique et de Microtechnique SA Recherche et Développement
Publication of EP1103897A1 publication Critical patent/EP1103897A1/fr
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a memory device comprising a main memory and cache memory.
  • One of these types is used dynamically, that is, during the main program execution, the program instructions, which are extracted from the main memory intended for the processor, are also copied dynamically in the cache memory and extracted from it when the processor has it again need for program execution. In this way, this execution can be faster because obtaining an instruction from a small memory requires less time and consumes less energy than if this instruction is found in large main memory. This solution is especially interesting, if an instruction or a group of instructions must be used often at the during the execution of a program.
  • the other type of memory arrangement is used as part of what can call a hierarchical organization of memory.
  • the most used instruction groups are saved in a memory of small size and less used groups in a large memory.
  • the the distribution of instructions is therefore static in this kind of hierarchy.
  • the objective is the same as in the previous case, namely that the instructions frequently used are stored in a small memory with access time shorter and consuming less energy.
  • cache memory as well memory dynamic (RAM) than static memory (ROM), when the latter is used in the same context and for the same benefits as dynamic memory.
  • the addresses issued by the processor include a label generally represented by the most significant bits.
  • the address is presented both to the associated cache memory to the processor and to a comparator which compares the label of this address to instruction labels stored in a particular section of the cache. If the comparison establishes that the label is in this section of the cache (we speak then of a "hit” - “hit” in English), the corresponding instruction is in the cache memory and it is extracted from it to be transferred to the processor. Otherwise (it is then a "miss” - "miss” in English), the address is then transmitted to the program memory where the instruction sought is located; the latter is then extracted to be passed to the processor. In case the cache memory is of type dynamic, this same instruction and its label are then preferably written to cache for later use.
  • the object of the invention is to provide a memory device enabling increase the speed of access to the instructions of a program to be executed by a processor and reduce the energy consumed to ensure this access.
  • each address A and each instruction I are defined on 16 bits, this number obviously not being limiting.
  • Each address A is composed, going from the most significant bit to the least bit significant, a label field c1, a cache address field c2 and an instruction selection field c3 comprising in the example described 8, 6 and 2 bits respectively.
  • the memory device 2 comprises a main program memory 3, with 2 14 locations, this number also being given only by way of example.
  • This memory 3 contains the program to be executed by the processor 1.
  • the memory device 2 also comprises a ROM cache memory 4 and a dynamic cache memory RAM 5, the capacities of which are here chosen at 2 6 locations.
  • the width of the memory locations in memories 3 to 5 can be chosen according to the application envisaged. In the example, it is 64 bits, each location storing a block B of 4 instructions I of, each, 16 bits.
  • the read only cache memory 4 is connected by its address input to a label comparator 6 which receives fields c1 and c2 from each address delivered by processor 1 and which is also connected to a read-only memory section of labels 7 in which labels are permanently stored intended to designate instruction blocks B stored in the read only cache memory 4.
  • the dynamic cache memory 5 is connected to a label comparator 8 which also receives fields c1 and c2 from each address from processor 1 and which is connected to a dynamic memory section of labels 9.
  • Memories 3 to 5 are connected by their instruction outputs to inputs respective of a multiplexer 10. This selectively transmits the instruction blocks B which receives memories 3 to 5 at its exit according to the state of two lines 11 and 12 by which this multiplexer is respectively connected to comparators 6 and 8. These lines 11 and 12 transmit touch / miss signals coming respectively from these comparators 6 and 8, to the multiplexer 10 for it allow to become transparent for the blocks of instructions whose label presents coincidence with those stored in memory sections 7 and 9 respectively.
  • the output of the multiplexer 10 is connected to a buffer 13 intended to transfer blocks B to another instruction selection multiplexer 14.
  • the latter is connected at the input of instructions from processor 1 to transmit one of the instructions I of a instruction block B transmitted to the multiplexer 14, as a function of the value of the two bits least significant (field c3) of address A, this value passing on a line 15.
  • the memory device 2 also includes a writing logic 16 which is connected to receive each address A, except its two least significant bits, some instruction blocks B from main memory 3, and touchdown / missed signals passing through lines 11 and 12.
  • the writing logic 16 is designed so that at case where, when an address is sent by processor 1, lines 11 and 12 both transmit a misfire, the instruction block which is then at the address corresponding in memory 3 and the label of this address are transferred respectively in RAM 5 and in the dynamic memory section labels 9.
  • Such writing logic is known per se in the technology of dynamic cache memories so that no detailed description is given here. It will be noted here that in order to save energy, the fourteen bits of address A applied to comparators 6 and 8 are only transmitted to memory 3 when lines 11 and 12 transmit a missed signal. In contrary cases (line 11 or line 12 transmitting a touch signal), memory 3 does not receive address A. This function of transmission / non-transmission of address A to memory 3 according to the signals of the lines 11 and 12 can be done by simple logic included in block 16.
  • the ROM cache memory 4 contains, statically, blocks of instructions whose instructions are used frequently over a long period of time during the execution of the program by the processor 1. Such blocks of instructions are also called “long life” blocks as opposed to instruction blocks which can be used often by the processor but for a short period of time (“short lifespan”).
  • the ROM memory section 7 of the ROM memory 4 contains the labels for these long-lived instruction blocks. Its content is also established once and for all.
  • the contents of memory 5 and its memory section 9 labels are dynamically variable and take care of a block respectively instructions and an associated label of a given address A, when this label is neither present in the memory section 7 associated with the ROM cache memory 4, nor in that, 9 associated with the RAM cache memory 5.
  • the label is in memory section 7, it is because it is a block long-life instructions in the ROM cache memory 4.
  • the comparator 6 transfers the field c2 of the address to the ROM memory 4 and produces a touchdown signal which is sent to the multiplexer 10.
  • the instruction block designated by the fields c2 is taken out of memory 4 and transferred by multiplexer 10 to the buffer 13.
  • Field c3 of the address designates the instruction in the transmitted block, this instruction being passed to processor 1 by multiplexer 14, to be executed.
  • Comparator 8 produced a misfire signal on line 12 and logic 16 is therefore not activated.
  • the label is in memory section 9, it is because of a block instructions last used by processor 1.
  • line 11 has a missed signal and line 12 a touchdown signal provided respectively by the comparators 6 and 8.
  • the multiplexer 10 is then transparent for the instruction block located in the cache memory RAM 5 and designated by the field c2 of address A corresponding.
  • the requested instruction is transmitted to processor 1 by via multiplexer 14 and field c3 of this address A.
  • the instruction block designated by the corresponding address is in the memory program 3.
  • lines 11 and 12 both carry a missed signal
  • the fourteen most significant bits of address A are then sent by block 16 to the memory 3 and the corresponding instruction block B is then transferred directly to from main memory 3 to multiplexer 10 which becomes transparent for this direct route.
  • Logic 16 can then be configured by the misfire signals to transfer the instruction block to the RAM cache memory 5 and the associated label in memory section 9.
  • each instruction block B contained in memory 3 is added a flag bit (not designated in the drawing) which can be located anywhere in these blocks.
  • These flags can be incorporated into the instructions of the program by calculation, based in particular on an analysis of the frequency instructions, or be added individually to each block of instructions at the choice of the programmer using simulations of the program to be executed by processor 1.
  • the flag bit is registered as being active in an instruction block B, when it is worth writing this block in RAM 5 and performing writing the address label in memory section 9. However, if the flag bit is listed as inactive, it can act on write logic 16 for inhibit it and prevent such writing from being performed, whereby the block of instructions B concerned is passed only directly to the multiplexer 10 for allow the execution of the instruction required by the program.
  • the defining signal the state of the flag can be applied to this logic 16 via a connection 17.
  • the advantage of the presence of a flag in the instruction blocks naturally consists in avoiding any unnecessary writing in the RAM memory 5 as regards infrequent instructions or whose writing in the RAM would prevent the maintenance in this one. these more desired blocks.
  • the size of the RAM memory can thus be reduced to what is strictly necessary. This results in a gain in consumption and speed of work, because it avoids writing and reading in the RAM cache memory.
  • the invention is not limited to the embodiment described and shown.
  • the sizes of memories, addresses and instruction blocks have not been given only to fix ideas and are therefore not limiting.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Ce dispositif de mémoire fonctionne avec un processeur (1) dont il contient le programme à exécuter et qui émet des adresses (A) à destination de ce dispositif de mémoire. Une mémoire de programme (3) stocke des blocs d'instructions (B) à exécuter. Une mémoire cache dynamique (5) stocke des blocs d'instructions (B) dont la fréquence d'utilisation pendant l'exécution dudit programme présente des conditions prédéterminées. Des moyens d'extraction et de transmission (8, 9, 10, 12) extraient sélectivement de la mémoire principale (3) ou de la mémoire cache dynamique (5) des blocs d'instructions (B) destinés à être exécutés par le processeur (1). Une mémoire cache morte (4) stocke des blocs d'instructions (B) utilisés le plus fréquemment par le processeur (1) au cours de l'exécution du programme. Les moyens d'extraction et de transmission (6, 7, 11) sont également agencés pour, en fonction du contenu des adresses (A), envoyer sélectivement des blocs d'instructions à partir de la mémoire cache morte (4) vers le processeur (1). <IMAGE>

Description

La présente invention est relative à un dispositif de mémoire comprenant une mémoire principale et une mémoire cache.
Dans les circuits intégrés de traitement des données, il est connu d'utiliser différents types de mémoires selon l'usage que fait le circuit des instructions contenues dans la mémoire. Ainsi, il est courant d'utiliser à côté d'une mémoire principale de grande capacité, une mémoire cache de plus petite capacité.
On connaít essentiellement deux types d'arrangement de mémoire optimisant les facteurs de vitesse et de consommation.
L'un de ces types est utilisé dynamiquement, c'est-à-dire qu'au cours de l'exécution du programme principal, les instructions du programme, qui sont extraites de la mémoire principale à destination du processeur, sont également copiées dynamiquement dans la mémoire cache et extraites de celle-ci lorsque le processeur en a à nouveau besoin pour l'exécution du programme. De cette manière, cette exécution peut être plus rapide, car l'obtention d'une instruction à partir d'une mémoire de petite taille demande moins de temps et consomme moins d'énergie que si cette instruction se trouvait dans la mémoire principale de grande taille. Cette solution est surtout intéressante, si une instruction ou un groupe d'instructions doit être souvent utilisé au cours de l'exécution d'un programme.
L'autre type d'arrangement de mémoire est utilisé dans le cadre de ce que l'on peut appeler une organisation hiérarchique de la mémoire. Dans ce cas et une fois pour toutes, les groupes d'instructions les plus utilisés sont enregistrés dans une mémoire de petite taille et les groupes moins utilisés dans une mémoire de grande taille. La répartition des instructions est donc statique dans ce genre de hiérarchie. Bien entendu, l'objectif est le même que dans le cas précédent, à savoir que les instructions fréquemment utilisées sont rangées dans une petite mémoire ayant un temps d'accès plus court et consommant moins d'énergie. Dans le cadre de la présente invention et pour la suite de la description, on conviendra d'appeler "mémoire cache" aussi bien la mémoire dynamique (RAM) que la mémoire statique (ROM), dès lors que cette dernière est utilisée dans le même contexte et pour les mêmes avantages que la mémoire dynamique.
Pour mettre en oeuvre l'extraction des instructions d'une mémoire cache, les adresses délivrées par le processeur comportent une étiquette représentée en général par les bits de poids le plus fort. L'adresse est présentée à la fois à la mémoire cache associée au processeur et à un comparateur qui compare l'étiquette de cette adresse à des étiquettes d'instructions mémorisées dans une section particulière de la mémoire cache. Si la comparaison établit que l'étiquette se trouve dans cette section de la mémoire cache (on parle alors d'un "touché"- "hit" en anglais), l'instruction correspondante se trouve dans la mémoire cache et elle est extraite de celle-ci pour être transférée vers le processeur. Sinon (il s'agit alors d'un "raté"- "miss" en anglais), l'adresse est alors transmise à la mémoire de programme où se trouve l'instruction cherchée; cette dernière est alors extraite pour être passée vers le processeur. Dans le cas où la mémoire cache est de type dynamique, cette même instruction ainsi que son étiquette sont ensuite de préférence écrites dans la mémoire cache pour une utilisation ultérieure.
L'invention a pour but de fournir un dispositif de mémoire permettant d'augmenter la rapidité d'accès aux instructions d'un programme à exécuter par un processeur et de réduire l'énergie consommée pour assurer cet accès.
Elle a donc pour objet un dispositif de mémoire présentant les caractéristiques telles que définies dans la revendication 1..
Grâce à ces caractéristiques, on peut éviter toute inscription inutile d'instructions dans la mémoire cache dynamique, ce qui permet de conférer à cette mémoire une taille réduite au stricte minimum. Ainsi, il est possible de réduire la consommation et d'augmenter la vitesse de travail du dispositif.
Des développements avantageux de l'invention sont définies dans les sous-revendications.
D'autres caractéristiques et avantages de l'invention apparaítront au cours de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant au dessin annexé sur lequel:
  • la figure unique représente un schéma simplifié d'un dispositif de mémoire selon un mode de réalisation préféré de l'invention.
Sur cette figure, on voit représenté un processeur 1 qui fournit des adresses A à un dispositif de mémoire 2 selon l'invention et qui reçoit de ce dernier des instructions I destinées à y être exécutées. Dans l'exemple représenté, chaque adresse A et chaque instruction I sont définies sur 16 bits, ce nombre n'étant évidemment pas limitatif. Chaque adresse A est composée, en allant du bit le plus significatif au bit le moins significatif, d'un champ d'étiquette c1, d'un champ d'adresse de mémoire cache c2 et d'un champ de sélection d'instruction c3 comprenant dans l'exemple décrit respectivement 8, 6 et 2 bits.
Le dispositif de mémoire 2 comprend une mémoire principale de programme 3, de 214 emplacements, ce nombre n'étant également donné qu'à titre d'exemple. Cette mémoire 3 contient le programme à exécuter par le processeur 1.
Le dispositif de mémoire 2 comprend également une mémoire cache morte ROM 4 et une mémoire cache dynamique RAM 5 dont les capacités sont ici choisies à 26 emplacements.
La largeur des emplacements de mémoire dans les mémoires 3 à 5 peut être choisie selon l'application envisagée. Dans l'exemple, elle est de 64 bits, chaque emplacement stockant un bloc B de 4 instructions I de, chacune, 16 bits.
La mémoire cache morte 4 est connectée par son entrée d'adresse à un comparateur d'étiquette 6 qui reçoit les champs c1 et c2 de chaque adresse délivrée par le processeur 1 et qui est connecté également à une section de mémoire morte d'étiquettes 7 dans laquelle sont mémorisées de façon permanente des étiquettes destinées à désigner des blocs d'instruction B rangés dans la mémoire cache morte 4.
De façon analogue, la mémoire cache dynamique 5 est connectée à un comparateur d'étiquette 8 qui reçoit également les champs c1 et c2 de chaque adresse provenant du processeur 1 et qui est connecté à une section de mémoire dynamique d'étiquettes 9.
Les mémoires 3 à 5 sont connectées par leurs sorties d'instructions à des entrées respectives d'un multiplexeur 10. Celui-ci transmet sélectivement les blocs d'instructions B qui lui parviennent des mémoires 3 à 5 à sa sortie en fonction de l'état de deux lignes de commande 11 et 12 par lesquelles ce multiplexeur est connecté respectivement aux comparateurs 6 et 8. Ces lignes 11 et 12 transmettent des signaux de touché/raté provenant respectivement de ces comparateurs 6 et 8, au multiplexeur 10 pour lui permettre de devenir transparent pour les blocs d'instructions dont l'étiquette présente une coïncidence avec celles stockées respectivement dans les sections de mémoire 7 et 9.
La sortie du multiplexeur 10 est connectée à un tampon 13 destiné à transférer les blocs B à un autre multiplexeur 14 de sélection d'instructions. Ce dernier est connecté à l'entrée d'instructions du processeur 1 pour lui transmettre l'une des instructions I d'un bloc d'instructions B transmis au multiplexeur 14, en fonction de la valeur des deux bits les moins significatifs (champ c3) de l'adresse A, cette valeur transitant sur une ligne 15.
Le dispositif de mémoire 2 comprend également une logique d'écriture 16 qui est connectée pour recevoir chaque adresse A, sauf ses deux bits les moins significatifs, certains blocs d'instructions B de la mémoire principale 3, et les signaux de touché/raté transitant sur les lignes 11 et 12. La logique d'écriture 16 est conçue de telle façon qu'au cas où, lors de l'émission d'une adresse par le processeur 1, les lignes 11 et 12 transmettent toutes deux un raté, le bloc d'instructions qui se trouve alors à l'adresse correspondante dans la mémoire 3 et l'étiquette de cette adresse sont transférés respectivement dans la mémoire RAM 5 et dans la section de mémoire dynamique d'étiquettes 9. Une telle logique d'écriture est connue en soi dans la technologie des mémoires cache dynamiques de sorte que l'on n'en donne pas de description détaillée ici. On notera ici qu'afin d'économiser de l'énergie, les quatorze bits de l'adresse A appliqués aux comparateurs 6 et 8 ne sont transmis à la mémoire 3 que lorsque les lignes 11 et 12 transmettent un signal de raté. Dans les cas contraires (ligne 11 ou ligne 12 transmettant un signal de touché), la mémoire 3 ne reçoit pas l'adresse A. Cette fonction de transmission/non-transmission de l'adresse A à la mémoire 3 en fonction des signaux des lignes 11 et 12 peut être réalisée par une logique simple inclue dans le bloc 16.
Le fonctionnement de ce dispositif de mémoire est le suivant.
La mémoire cache ROM 4 contient, de façon statique, des blocs d'instructions dont les instructions sont utilisées fréquemment sur une longue période de temps donnée pendant l'exécution du programme par le processeur 1. De tels blocs d'instructions sont encore appelés blocs à "longue durée de vie" par opposition à des blocs d'instructions qui peuvent être souvent utilisés par le processeur mais pendant une courte période de temps ("faible durée de vie"). La section de mémoire d'étiquettes 7 de la mémoire ROM 4 contient les étiquettes de ces blocs d'instructions à longue durée de vie. Son contenu est également établi une fois pour toutes.
En revanche, les contenus de la mémoire 5 et de sa section de mémoire d'étiquettes 9 sont dynamiquement variables et se chargent respectivement d'un bloc d'instructions et d'une étiquette associée d'une adresse A donnée, lorsque cette étiquette n'est présente ni dans la section de mémoire 7 associée à la mémoire cache ROM 4, ni dans celle, 9 associée à la mémoire cache RAM 5.
Ainsi, lorsqu'une adresse A est émise par le processeur 1, l'étiquette de son champ c1 va être comparée à celles présentes dans les sections de mémoire d'étiquettes 7 et 9, respectivement par les comparateurs 6 et 8.
Si l'étiquette se trouve dans la section de mémoire 7, c'est qu'il s'agit d'un bloc d'instructions à longue durée de vie se trouvant dans la mémoire cache ROM 4. Le comparateur 6 transfère le champs c2 de l'adresse à la mémoire ROM 4 et produit un signal de touché qui est envoyé au multiplexeur 10. Le bloc d'instructions désigné par le champs c2 est sorti de la mémoire 4 et transféré par le multiplexeur 10 vers le tampon 13. Le champs c3 de l'adresse désigne l'instruction dans le bloc transmis, cette instruction étant passée vers le processeur 1 par le multiplexeur 14, pour être exécutée. Le comparateur 8 a produit un signal de raté sur la ligne 12 et la logique 16 n'est donc pas activée.
Si l'étiquette se trouve dans la section de mémoire 9, c'est qu'il s'agit d'un bloc d'instructions dernièrement utilisé par le processeur 1. Dans ce cas, la ligne 11 porte un signal de raté et la ligne 12 un signal de touché fournis respectivement par les comparateurs 6 et 8. Le multiplexeur 10 est alors transparent pour le bloc d'instructions se trouvant dans la mémoire cache RAM 5 et désigné par le champs c2 de l'adresse A correspondante. L'instruction recherchée est transmise au processeur 1 par l'intermédiaire du multiplexeur 14 et du champs c3 de cette adresse A.
Si l'étiquette ne se trouve dans aucune des sections de mémoire d'étiquettes 7 et 9, le bloc d'instructions désigné par l'adresse correspondante se trouve dans la mémoire de programme 3. Dans ce cas, les lignes 11 et 12 portent toutes deux un signal de raté, les quatorze bits les plus significatifs de l'adresse A sont alors envoyés par le bloc 16 à la mémoire 3 et le bloc d'instructions B correspondant est alors transféré directement à partir de la mémoire principale 3 vers le multiplexeur 10 qui devient transparent pour cette voie directe. La logique 16 peut alors être configurée par les signaux de raté pour transférer le bloc d'instructions dans la mémoire cache RAM 5 et l'étiquette y afférente dans la section de mémoire 9.
Etant donné que les instructions à longue durée de vie sont rangées en permanence dans la mémoire cache ROM 4, on peut réduire considérablement la consommation et augmenter la vitesse de travail de l'ensemble. Ces instructions sont toujours disponibles ce qui peut être important pour des applications en temps réel dans lesquelles on peut ainsi réduire par exemple le temps de réponse du dispositif. En outre, les instructions provenant d'une mémoire ROM sont toujours valides, alors que celles provenant d'une mémoire RAM peuvent ne pas l'être. Le dispositif de mémoire selon l'invention présente ainsi un taux de touché élevé. Ces avantages n'entravent pas le fait que la mémoire RAM 5 peut être dynamisée et se charger d'instructions qui, pendant l'exécution du programme, sont temporairement d'usage fréquent. Ce cas peut être très utile pendant l'exécution de boucles de programme.
Toutefois, pour que le concept de l'invention ait une efficacité maximale, il importe d'optimiser autant que possible la taille de la mémoire RAM. En effet, plus la taille de cette dernière est grande, plus le nombre de "touchés" est important mais, également, plus sa consommation est grande. Par ailleurs, il peut arriver que le programme exécuté par le processeur 12 implique la mise en oeuvre d'instructions à usage très peu fréquent, voire à usage unique. Dans ce cas, il conviendrait d'éviter de les inscrire dans la mémoire cache RAM 5.
A cet effet, à chaque bloc d'instructions B contenu dans la mémoire 3 est adjoint un bit de drapeau (non désigné sur le dessin) qui peut être situé à un endroit quelconque dans ces blocs. Ces drapeaux peuvent être incorporés dans les instructions du programme par le calcul, en fonction notamment d'une analyse de la fréquence d'utilisation des instructions, ou être ajoutés individuellement à chaque bloc d'instructions au choix du programmeur à l'aide de simulations du programme devant être exécuté par le processeur 1.
Le bit de drapeau est inscrit comme étant actif dans un bloc d'instructions B, lorsqu'il vaut la peine d'écrire ce bloc dans la mémoire RAM 5 et de procéder à l'inscription de l'étiquette de son adresse dans la section de mémoire 9. En revanche, si le bit de drapeau est inscrit comme inactif, il peut agir sur la logique d'écriture 16 pour l'inhiber et empêcher qu'une telle écriture soit effectuée, moyennant quoi le bloc d'instructions B concerné est passé seulement directement vers le multiplexeur 10 pour permettre l'exécution de l'instruction requise par le programme. Le signal définissant l'état du drapeau pourra être appliqué à cette logique 16 par l'intermédiaire d'une connexion 17.
L'avantage de la présence d'un drapeau dans les blocs d'instructions consiste naturellement à éviter toute inscription inutile dans la mémoire RAM 5 pour ce qui concerne des instructions peu fréquentes ou dont l'inscription dans la RAM empêcherait le maintien dans celle-ci de blocs plus souhaités. La taille de la mémoire RAM peut ainsi être réduite au strict nécessaire.
Il en résulte un gain en consommation et en vitesse de travail, car on évite des écritures et des lectures dans la mémoire cache RAM.
L'invention n'est pas limitée au mode de réalisation décrit et représenté. En particulier, les tailles des mémoires, des adresses et des blocs d'instructions n'ont été données que pour fixer les idées et ne sont donc nullement limitatives.

Claims (5)

  1. Dispositif de mémoire destiné à fonctionner avec un processeur (1) contenant le programme à exécuter, le processeur étant adapté pour émettre des adresses (A) à destination de ce dispositif de mémoire, ce dernier comprenant une mémoire principale de programme (3) dans laquelle sont stockés des instructions (I) ou des blocs d'instructions (B) à exécuter par ledit processeur (1), et une mémoire cache dynamique (5) dans laquelle sont stockés des instructions ou des blocs d'instructions dont la fréquence d'utilisation pendant l'exécution dudit programme présente des conditions prédéterminées, ledit dispositif de mémoire comprenant également des moyens d'extraction et de transmission (8, 9, 10, 12) pour, en fonction du contenu desdites adresses (A), extraire sélectivement de ladite mémoire principale (3) ou de ladite mémoire cache dynamique (5) des instructions ou des blocs d'instructions destinés à être exécutés par ledit processeur (1) et transmettre ces instructions ou blocs d'instructions vers ce dernier, chaque instruction ou bloc d'instructions stocké dans ladite mémoire principale de programme étant pourvu d'un drapeau, caractérisé en ce que ladite mémoire principale de programme (3) comprend une sortie (17) sur laquelle, lors de l'extraction d'une instruction ou d'un bloc d'instructions, est présenté l'état du drapeau associé à ce dernier, et en ce que le dispositif de mémoire comprend également une logique de commande d'écriture (16), qui en fonction de l'état dudit drapeau, inscrit ou non dans ladite mémoire cache dynamique (5), l'instruction ou le bloc d'instructions extrait de ladite mémoire principale (3).
  2. Dispositif de mémoire suivant la revendication 1, caractérisé en ce qu'il comprend également une mémoire cache morte (4) dans laquelle sont stockés des instructions (I) ou des blocs d'instructions (B) à longue durée de vie, et en ce que lesdits moyens d'extraction et de transmission (6, 7, 11) sont également agencés pour, en fonction du contenu desdites adresses (A), envoyer sélectivement des instructions ou des blocs d'instructions à partir de ladite mémoire cache morte (4) vers ledit processeur (1).
  3. Dispositif de mémoire suivant la revendication 2, caractérisé en ce que, lesdites adresses (A) contenant chacune une étiquette (c1), lesdits moyens d'extraction et de transmission comprennent une section de mémoire morte d'étiquettes (7) associée à ladite mémoire cache morte (4), ainsi que des moyens de comparaison (6) qui délivrent un signal de touché/raté dont l'état est déterminé selon que l'étiquette (c1) d'une adresse (A) délivrée par ledit processeur (1) coïncide avec une étiquette (c1) se trouvant dans ladite section de mémoire morte d'étiquettes (4), et en ce que l'état dudit signal de touché/raté commande sélectivement le passage de l'instruction ou du bloc d'instructions pointé par l'adresse correspondante vers ledit processeur (1).
  4. Dispositif de mémoire suivant la revendication 3, caractérisé en ce que lesdits moyens d'extraction et de transmission comprennent une section de mémoire dynamique d'étiquettes (9) associée à ladite mémoire cache dynamique (5), ainsi que des moyens de comparaison (8) qui délivrent un signal de touché/raté dont l'état est déterminé selon que l'étiquette (cl) d'une adresse (A) délivrée par ledit processeur (1) coïncide avec une étiquette se trouvant dans ladite section de mémoire dynamique d'étiquettes (9), et en ce que l'état dudit signal de touché/raté commande sélectivement le passage de l'instruction ou du bloc d'instructions pointé par l'adresse correspondante vers ledit processeur (1).
  5. Dispositif de mémoire suivant les revendications 3 et 4, caractérisé en ce que lesdits moyens d'extraction et de transmission comprennent également un multiplexeur (10) connecté par son entrée aux sorties de ladite mémoire principale de programme (3), de ladite mémoire cache dynamique (5) et de ladite mémoire cache morte (4), la sortie de ce multiplexeur (10) étant reliée audit processeur (1) et ses entrées de commande étant connectées respectivement à des lignes de sortie (11, 12) desdits comparateurs (6, 8) pour lui appliquer les signaux de touché/raté respectifs.
EP00403317A 1999-11-29 2000-11-28 Dispositif de mémoire Withdrawn EP1103897A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9915004 1999-11-29
FR9915004A FR2801695B1 (fr) 1999-11-29 1999-11-29 Dispositif de memoire

Publications (1)

Publication Number Publication Date
EP1103897A1 true EP1103897A1 (fr) 2001-05-30

Family

ID=9552656

Family Applications (1)

Application Number Title Priority Date Filing Date
EP00403317A Withdrawn EP1103897A1 (fr) 1999-11-29 2000-11-28 Dispositif de mémoire

Country Status (2)

Country Link
EP (1) EP1103897A1 (fr)
FR (1) FR2801695B1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0083400A2 (fr) * 1981-12-31 1983-07-13 International Business Machines Corporation Système multiprocesseur avec au moins trois niveaux de hiérarchie de mémoire
GB2256735A (en) * 1991-06-12 1992-12-16 Intel Corp Non-volatile disk cache.
US5313605A (en) * 1990-12-20 1994-05-17 Intel Corporation High bandwith output hierarchical memory store including a cache, fetch buffer and ROM
WO1994012929A1 (fr) * 1992-11-23 1994-06-09 Seiko Epson Corporation Systeme et procede de mise en antememoire de microcode

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0083400A2 (fr) * 1981-12-31 1983-07-13 International Business Machines Corporation Système multiprocesseur avec au moins trois niveaux de hiérarchie de mémoire
US5313605A (en) * 1990-12-20 1994-05-17 Intel Corporation High bandwith output hierarchical memory store including a cache, fetch buffer and ROM
GB2256735A (en) * 1991-06-12 1992-12-16 Intel Corp Non-volatile disk cache.
WO1994012929A1 (fr) * 1992-11-23 1994-06-09 Seiko Epson Corporation Systeme et procede de mise en antememoire de microcode

Also Published As

Publication number Publication date
FR2801695B1 (fr) 2003-08-22
FR2801695A1 (fr) 2001-06-01

Similar Documents

Publication Publication Date Title
FR2664719A1 (fr) Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
FR2834809A1 (fr) Dispositif pour moteur de compression de memoire cache pour la compression de donnees sur des memoires cache integrees pour augmenter la taille de memoire cache effective
FR2645663A1 (fr) Procedes et circuits pour gerer une pile en memoire
EP1510925A2 (fr) Mémoire cache à lecture asynchrone et dispositif de controle de l&#39;accès à une mémoire de données comprenant une telle mémoire cache
FR2667706A1 (fr) Antememoire hierarchique a circuits integres.
FR2606903A1 (fr) Procede et dispositif de gestion de points d&#39;arret dans un moniteur de logiciel
EP0881574A1 (fr) Dispositif d&#39;instrumentation pour machine avec mémoire à accès non uniforme.
FR2645986A1 (fr) Procede pour accelerer les acces memoire d&#39;un systeme informatique et systeme pour la mise en oeuvre du procede
EP0166838A1 (fr) Procédé et dispositif pour détecter une configuration de bits particulière dans un train de bits en série
FR2632092A1 (fr) Circuit de conditionnement d&#39;ecriture d&#39;antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
FR2560412A1 (fr) Appareil de traitement de donnees
EP1103897A1 (fr) Dispositif de mémoire
FR2600441A1 (fr) Unite de gestion de memoire
EP3611623A1 (fr) Contrôleur mémoire comprenant deux buffers et un selecteur d&#39;un mode de remplissage desdits buffers
EP0512881B1 (fr) Procédé et dispositif de sélection d&#39;informations utilisables par une unité locale reliée à un système de transmission numérique
EP1748355B1 (fr) Dispositif d&#39;interfaçage unidirectionnel de type FIFO entre un bloc maître et un bloc esclave et bloc esclave correspondant
FR2737590A1 (fr) Dispositif de gestion d&#39;interruptions
EP0733977A1 (fr) Système informatique avec mémoires hiérarchisées
EP0557197B1 (fr) Système de partage de temps d&#39;accès à une mémoire partagée entre un processeur et d&#39;autres applications
FR2769727A1 (fr) Procede et systeme de controle d&#39;acces partages a une memoire vive
FR2629230A1 (fr) Dispositif de controle et d&#39;acquisition de donnees a grande vitesse
EP1256880A1 (fr) Système de traitement de données et procédé de distribution d&#39;accès à des mémoires
FR3084178A1 (fr) Acces direct en memoire
EP0407295A1 (fr) ProcÀ©dé d&#39;observation de l&#39;exécution d&#39;un programme chargé dans un système informatique et dispositif pour la mise en oeuvre dudit procédé
EP0006485A1 (fr) Dispositif d&#39;adressage de pages dans un système de traitement de données

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): CH DE FR GB LI

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

17P Request for examination filed

Effective date: 20011023

AKX Designation fees paid

Free format text: CH DE FR GB LI

17Q First examination report despatched

Effective date: 20031205

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20061026