EP1103897A1 - Dispositif de mémoire - Google Patents
Dispositif de mémoire Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
Description
- 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.
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.
Claims (5)
- 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).
- 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).
- 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).
- 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).
- 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.
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)
| 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 |
-
1999
- 1999-11-29 FR FR9915004A patent/FR2801695B1/fr not_active Expired - Fee Related
-
2000
- 2000-11-28 EP EP00403317A patent/EP1103897A1/fr not_active Withdrawn
Patent Citations (4)
| 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'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'arret dans un moniteur de logiciel | |
| EP0881574A1 (fr) | Dispositif d'instrumentation pour machine avec mémoire à accès non uniforme. | |
| FR2645986A1 (fr) | Procede pour accelerer les acces memoire d'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'ecriture d'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'un mode de remplissage desdits buffers | |
| EP0512881B1 (fr) | Procédé et dispositif de sélection d'informations utilisables par une unité locale reliée à un système de transmission numérique | |
| EP1748355B1 (fr) | Dispositif d'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'interruptions | |
| EP0733977A1 (fr) | Système informatique avec mémoires hiérarchisées | |
| EP0557197B1 (fr) | Système de partage de temps d'accès à une mémoire partagée entre un processeur et d'autres applications | |
| FR2769727A1 (fr) | Procede et systeme de controle d'acces partages a une memoire vive | |
| FR2629230A1 (fr) | Dispositif de controle et d'acquisition de donnees a grande vitesse | |
| EP1256880A1 (fr) | Système de traitement de données et procédé de distribution d'accès à des mémoires | |
| FR3084178A1 (fr) | Acces direct en memoire | |
| EP0407295A1 (fr) | ProcÀ©dé d'observation de l'exécution d'un programme chargé dans un système informatique et dispositif pour la mise en oeuvre dudit procédé | |
| EP0006485A1 (fr) | Dispositif d'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 |