FR2927463A1 - Access control device i.e. memory controller, for double data rate type dynamic RAM in personal computer, has refresh control generator to maintain data in memory slots and selectively refresh memory locations indicated by register - Google Patents

Access control device i.e. memory controller, for double data rate type dynamic RAM in personal computer, has refresh control generator to maintain data in memory slots and selectively refresh memory locations indicated by register Download PDF

Info

Publication number
FR2927463A1
FR2927463A1 FR0800739A FR0800739A FR2927463A1 FR 2927463 A1 FR2927463 A1 FR 2927463A1 FR 0800739 A FR0800739 A FR 0800739A FR 0800739 A FR0800739 A FR 0800739A FR 2927463 A1 FR2927463 A1 FR 2927463A1
Authority
FR
France
Prior art keywords
memory
refresh
register
access
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0800739A
Other languages
French (fr)
Other versions
FR2927463B1 (en
Inventor
Francois Wellenreiter
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.)
Bull SA
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Priority to FR0800739A priority Critical patent/FR2927463B1/en
Publication of FR2927463A1 publication Critical patent/FR2927463A1/en
Application granted granted Critical
Publication of FR2927463B1 publication Critical patent/FR2927463B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

The device has an access control generator (482) for organizing requests for accessing volatile memory slots of an electronic memory i.e. double data rate (DDR) type dynamic RAM. A refresh control generator (486) maintains data in the memory slots. An allocated zone register (484) i.e. table, stores data indicating memory locations to be refreshed permanently. The refresh control generator selectively refreshes the memory locations indicated by the register.

Description

BULL5.FRD Dispositif de contrôle d'accès à une mémoire électronique amélioré BULL5.FRD Enhanced electronic memory access control device

L'invention concerne un dispositif de contrôle d'accès à une mémoire électronique. Le domaine des mémoires électroniques à accès direct a connu un développement spectaculaire lors des dernières décennies, passant de quelques kilo-octets à plusieurs giga-octets de nos jours. The invention relates to a device for controlling access to an electronic memory. The field of direct access electronic storage has grown dramatically in recent decades, from a few kilobytes to several gigabytes nowadays.

10 Cela a été rendu possible grâce à la technologie DRAM, qui permet de stocker des quantités importantes de données avec un accès très rapide à moindre coût. This has been made possible by DRAM technology, which allows large amounts of data to be stored with very fast access at a lower cost.

Ce type de mémoire est néanmoins limité par la nature volatile des données 15 qu'il stocke. En effet, ces technologies font usage de micro-capacités qui stockent l'information mais se déchargent seules en quelques micro-secondes. This type of memory is nevertheless limited by the volatile nature of the data it stores. Indeed, these technologies make use of micro-capacities that store the information but are unloaded alone in a few microseconds.

Dès lors, des quantités considérables d'efforts logiciels et matériels sont déployées pour maintenir les données de ces mémoires. Lorsque l'on connaît la taille des mémoires actuelles et leur utilisation moyenne réelle, c'est en outre une quantité importante d'électricité qui est gâchée à maintenir des portions de mémoire qui ne contiennent aucune information. Therefore, considerable amounts of software and hardware efforts are deployed to maintain the data of these memories. When we know the size of the current memories and their actual average use, it is also a significant amount of electricity that is wasted to maintain portions of memory that contain no information.

25 L'invention vient améliorer la situation. The invention improves the situation.

A cet effet, l'invention propose un dispositif de contrôle d'accès à une mémoire électronique, comportant, un contrôleur d'accès pour organiser des requêtes d'accès à des banques de mémoires volatiles, et un rafraîchisseur pour 30 maintenir les données du banc de mémoires volatiles. 20 Ce dispositif comporte en outre un registre pour désigner des plages de mémoire, et le rafraîchisseur est agencé pour rafraîchir sélectivement des plages de mémoire désignées par ledit registre. For this purpose, the invention proposes a device for controlling access to an electronic memory, comprising, an access controller for organizing requests for access to volatile memory banks, and a cooler for maintaining the data of the memory. bench of volatile memories. This device further comprises a register for designating ranges of memory, and the cooler is arranged to selectively refresh memory ranges designated by said register.

Ainsi, le maintien des données est réalisé uniquement pour les plages de mémoire contenant des données d'intérêt, ce qui est économique en termes de ressources matérielles et énergétiques. Thus, the maintenance of the data is carried out only for the memory ranges containing data of interest, which is economical in terms of material and energy resources.

D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la 10 lecture de la description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif à partir des dessins sur lesquels : Other characteristics and advantages of the invention will appear better on reading the description which follows, taken from examples given by way of non-limiting illustration from the drawings in which:

- la figure 1 représente un motif de base d'une mémoire de type DRAM ; FIG. 1 represents a basic pattern of a memory of the DRAM type;

15 - la figure 2 représente un schéma d'une architecture comprenant un contrôleur de mémoire selon l'invention associé à une mémoire DRAM à quatre banques de mémoire ; et FIG. 2 represents a diagram of an architecture comprising a memory controller according to the invention associated with a DRAM memory with four memory banks; and

- la figure 3 représente un élément du contrôleur de la figure 3. FIG. 3 represents an element of the controller of FIG.

Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. The drawings and the description below contain, for the most part, elements of a certain character. They can therefore not only serve to better understand the present invention, but also contribute to its definition, if any.

On a représenté sur la figure 1 un motif de base 2 d'une banque de mémoire de type DRAM. Le terme matrice peut également être utilisé pour désigner la DRAM, comme celle-ci est généralement vue comme un ensemble de colonnes et de rangées de capacités auxquelles on accède. FIG. 1 shows a basic pattern 2 of a DRAM type memory bank. The term matrix can also be used to refer to the DRAM, as it is usually seen as a set of columns and rows of capabilities accessed.

Le motif 2 comporte des lignes de sélection de rangée 4, des lignes de bits 6, et une ligne de sortie 8. 20 25 30 Les lignes de sélection de rangée 6 permettent d'accéder à un ensemble de capacités 10 au moyen de transistors d'accès 12. Pattern 2 includes row selection lines 4, bit lines 6, and an output line 8. Row select lines 6 provide access to a set of capacitors 10 by means of solid state transistors. access 12.

Les lignes de bits 6 sont en fait doublées en des lignes de bits "+" et "-" non représentées, et les transistors d'accès 12 sont organisés de façon telle que le potentiel de la capacité 10 peut être lu de façon différentielle sur les deux lignes de bits "+" et "". The bit lines 6 are in fact doubled into lines of bits "+" and "-" not shown, and the access transistors 12 are organized in such a way that the potential of the capacitance 10 can be read differentially on the two lines of bits "+" and "".

Les lignes 6 sont sélectionnées au moyen d'un sélectionneur de rangée 14 qui 10 active une rangée à lire sur la base d'adresses de lecture a0 et al qu'il reçoit. The lines 6 are selected by means of a row selector 14 which activates a row to be read on the basis of read addresses a0 and al which it receives.

Les lignes de bit "~" et "-" sont préchargées et égalisées au préalable à la moitié du potentiel de l'alimentation, et l'une sert de référence à l'autre. The bit lines "~" and "-" are preloaded and pre-equalized to half the potential of the power supply, and one serves as a reference to the other.

15 Sur activation d'une rangée, la lecture différentielle des lignes de bits "+" et "" d'une ligne de bits 6 est faite dans un amplificateur différentiel 16, également appelé Sense Amplifier. On activation of a row, the differential reading of bit lines "+" and "" of a bit line 6 is done in a differential amplifier 16, also called Sense Amplifier.

Outre la lecture des lignes de bits 6, l'amplificateur différentiel 16 a deux autres 20 rôles : In addition to reading the bit lines 6, the differential amplifier 16 has two other roles:

- régénérer un potentiel correct sur les lignes de bits "+" et "-" et dans la capacité 10 accédée, comme le potentiel de cette dernière a été altéré pendant la lecture, un mécanisme de pompe à charge permettant d'atteindre le niveau 25 de l'alimentation derrière le transistor d'accès 12 le cas échéant ; regenerate a correct potential on the bit lines "+" and "-" and in the capacitance 10 accessed, as the potential of the latter has been altered during reading, a charge pump mechanism to reach the level 25 the power supply behind the access transistor 12, if applicable;

- faire office de point mémoire tant que l'information de la rangée 4 doit être exploitée. - act as a memory point as long as the information in row 4 is to be used.

30 Les lignes de sortie 8 sont reliées à un sélectionneur de données 18. Le sélecteur de données 16 permet l'accès à la valeur d'un point mémoire à l'intersection de la rangée activée et d'une colonne donnée par un sélecteur de colonne 20 qui reçoit en entrée des adresses a2 et a3. La sortie du sélectionneur de données 18 est reliée au bus de données 22. The output lines 8 are connected to a data selector 18. The data selector 16 allows access to the value of a memory point at the intersection of the activated row and a given column by a selector column 20 which receives as input addresses a2 and a3. The output of the data selector 18 is connected to the data bus 22.

L'ensemble de l'amplificateur différentiel 16 avec le sélectionneur de données 20 constitue une matrice de points mémoires classiques de type SRAM. L'accès d'une rangée de la DRAM initialise les valeurs de cette SRAM. L'accès colonne n'est que l'exploitation de ladite SRAM. The whole of the differential amplifier 16 with the data selector 20 constitutes a matrix of SRAM type standard memory points. Access of a row of the DRAM initializes the values of this SRAM. The column access is only the exploitation of said SRAM.

Comme le temps d'accès d'une rangée est très long (plusieurs dizaines de ns) un grand nombre de bits à la fois sera lu à la fois, la taille d'une rangée pouvant atteindre 16 Kbits pour une DRAM de 1 Gbit. Le but est de trouver parmi les bits de la rangée un maximum d'accès colonne à exploiter, ces accès étant bien plus rapides que l'accès d'une rangée. As the access time of a row is very long (several tens of ns) a large number of bits at a time will be read at a time, the size of a row up to 16 Kbits for a DRAM of 1 Gbit. The goal is to find among the bits of the row a maximum access column to operate, these accesses being much faster than the access of a row.

Une autre particularité de cette mémoire est la dégradation de l'information au cours du temps due aux diverses fuites, d'où le nom de mémoire dynamique. Pour compenser cette dégradation un rafraîchissement périodique de la matrice est nécessaire, comme cela apparaîtra plus bas. Another peculiarity of this memory is the degradation of information over time due to various leaks, hence the name of dynamic memory. To compensate for this degradation a periodic refresh of the matrix is necessary, as will appear below.

A cet effet, la mémoire comprend également un ensemble de bascules 24 synchronisé par un signal RAS d'accès aux rangées, via un multiplexeur 26. Ces éléments permettent de réaliser les basculements nécessaires aux opérations d'écriture, de rafraîchissement et de lecture dans les lignes de bits 6. For this purpose, the memory also comprises a set of latches 24 synchronized by a RAS row access signal, via a multiplexer 26. These elements make it possible to perform the failovers required for the write, refresh and read operations in the data. bit lines 6.

La figure 2 montre un schéma simplifié d'une architecture classique de DRAM 30 à quatre banques 32 de mémoire. Figure 2 shows a simplified diagram of a conventional DRAM architecture 30 to four banks 32 of memory.

Pour l'accès aux rangées, les banques 32 sont reliées à un décodeur 34 qui reçoit les adresses à lire, et réalise le démultiplexage, le décodage et les basculements pour l'accès à la banque et à l'adresse de rangée correspondante dans cette banque. For access to the banks, the banks 32 are connected to a decoder 34 which receives the addresses to be read, and carries out the demultiplexing, the decoding and the switches for accessing the bank and the corresponding row address in this box. bank.

Pour l'accès aux colonnes 36, les banques 32 sont reliées à un décodeur 36 qui reçoit les adresses à lire, et réalise le décodage et les basculements pour l'accès la banque et à l'adresse de colonne correspondante dans cette banque. For access to the columns 36, the banks 32 are connected to a decoder 36 which receives the addresses to be read, and performs the decoding and switching to the bank access and the corresponding column address in this bank.

Typiquement, le nombre de banques de mémoire dans les DRAM est actuellement limité à huit au maximum. Typically, the number of memory banks in the DRAMs is currently limited to a maximum of eight.

Cette représentation est simplifiée. Les implémentations physiques impliquent en général : - un démultiplexeur de rangée, relié à un registre d'adresse rangée tampon, des décodeurs et des ensembles de bascules de rangée pour chaque banque de mémoire ; 15 - un registre d'adresse colonne tampon, des décodeurs et des ensembles de bascules de colonne pour chaque banque de mémoire. This representation is simplified. Physical implementations generally involve: - a row demultiplexer, connected to a buffer row address register, decoders and row latch sets for each memory bank; A buffer column address register, decoders and sets of column latches for each memory bank.

En fonction des caractéristiques recherchées pour la DRAM, les quatre banques 32 sont plus ou moins opérables de manière indépendante. Ainsi, pour 20 obtenir une DRAM la plus performante possible, les banques 32 seront totalement découplées. En revanche, comme c'est le cas ici, il est courant que les opérations sur les banques 32 soient couplées plus ou moins lâchement, pour des raisons de 25 répartition des pics de consommation. La DRAM 30 est commandée par une interface qui comprend un bus d'adresse 38, un bus de commande 39 et un bus de données 40. Les signaux émis par ces bus sont traités par un contrôleur de mémoire 42. Le contrôleur de mémoire 42 comporte un décodeur de commande 44, un registre de mode 46, et un contrôleur logique 48. 30 Le décodeur de commande 44 reçoit des signaux de commande CS#, WE#, CAS# et RAS# du bus de commande 39. La combinaison des signaux CS#, WE#, CAS# et RAS# à l'instant d'échantillonnage de l'horloge permet au décodeur 44 de déterminer la commande à effectuer. Depending on the characteristics sought for the DRAM, the four banks 32 are more or less operable independently. Thus, to obtain the best performing DRAM, the banks 32 will be fully decoupled. On the other hand, as is the case here, it is common for operations on banks 32 to be coupled more or less loosely, for reasons of distribution of consumption peaks. The DRAM 30 is controlled by an interface that includes an address bus 38, a control bus 39 and a data bus 40. The signals transmitted by these buses are processed by a memory controller 42. The memory controller 42 comprises a control decoder 44, a mode register 46, and a logic controller 48. The control decoder 44 receives control signals CS #, WE #, CAS # and RAS # from the control bus 39. The combination of the signals CS #, WE #, CAS # and RAS # at the sampling time of the clock allows the decoder 44 to determine the command to be performed.

Parmi les commandes les plus courantes on trouve : le repos ; le cycle sans opération ; la pré-charge ; l'activation, c'est-à-dire l'accès rangée, également appelé "activate" ; la lecture ou l'écriture d'une colonne ; la terminaison de salve d'écriture, également appelé "burst terminate" l'auto rafraîchissement ; et le chargement du registre de mode 46. Among the most common commands are: rest; the cycle without operation; pre-charge; activation, that is, staged access, also called "activate"; reading or writing a column; writing burst termination, also called "burst terminate" self refresh; and loading the mode register 46.

Le registre de mode 46 permet de configurer divers modes de fonctionnement. II sert par exemple à définir la longueur des salves de données, également appelée burst length, le cadrage des données, également appelé wrap mode ou encore la configuration électrique du bus de données 40. Le contrôleur de logique 48 reçoit des signaux du décodeur de commande 44 et du registre de mode 46, sur la base desquels il détermine les opérations à effectuer en termes de lecture et d'écriture dans les banques 32. The mode register 46 makes it possible to configure various modes of operation. It serves for example to define the data burst length, also called burst length, the data frame, also called wrap mode or the electrical configuration of the data bus 40. The logic controller 48 receives signals from the control decoder 44 and the mode register 46, on the basis of which it determines the operations to be performed in terms of reading and writing in the banks 32.

25 Le contrôleur de logique 48 intègre un ensemble de fonctions logiques de type filtre, qui désignent une adresse rangée à accéder pour rafraîchir la rangée en question, ou lire ou écrire dans une adresse de rangée spécifique. The logic controller 48 includes a set of filter-like logic functions, which designate a row address to access to refresh the row in question, or read or write to a specific row address.

Le contrôleur de logique 48 est relié à un rafraîchisseur 50. Le rafraîchisseur 50 30 est un compteur qui rafraîchit une rangée reçue du contrôleur de logique 48 au bout d'un nombre de cycles donné.20 Dans d'autres réalisations, le rafraîchisseur 50 peut être intégré au contrôleur de mémoire 42 de sorte que celui-ci communique directement avec les banques 32. Le rafraîchisseur 50 peut alors embarquer une partie ou la totalité de la logique de rafraîchissement du contrôleur de logique 48. The logic controller 48 is connected to a cooler 50. The cooler 50 is a counter that refreshes a row received from the logic controller 48 after a given number of cycles. In other embodiments, the cooler 50 may to be integrated in the memory controller 42 so that it communicates directly with the banks 32. The cooler 50 can then board some or all of the logic of the logic controller 48 refresh logic.

Dans d'autres réalisations encore, une réalisation mixte peut être envisagée, dans laquelle le contrôleur de logique 48 et le rafraîchisseur 50 partagent chacun une partie de la logique de rafraîchissement. L'interface de la DRAM est synchronisée au moyen d'une horloge rapide CLK, qui permet d'exprimer chacune des opérations en un nombre de cycles de cette horloge. Un signal CKE est également reçu pour contrôler l'activation de la DRAM. In still other embodiments, a mixed embodiment may be envisaged, in which the logic controller 48 and the cooler 50 each share part of the refresh logic. The interface of the DRAM is synchronized by means of a fast clock CLK, which makes it possible to express each of the operations in a number of cycles of this clock. A CKE signal is also received to control the activation of the DRAM.

Les opérations associées à ces commandes peuvent en outre nécessiter la 15 présence d'une adresse ou d'un code spécifique sur le bus d'adresse. The operations associated with these commands may further require the presence of a specific address or code on the address bus.

Les durées des opérations varient en fonction de l'enchaînement des commandes. Cela permet d'assurer le bon fonctionnement électrique aussi bien au niveau des matrices de cellules que pour la bonne utilisation du bus de 20 données. The durations of the operations vary according to the sequence of the orders. This makes it possible to ensure proper electrical operation both at the level of the cell matrices and for the proper use of the data bus.

II arrive que certaines durées découlent de besoins liés à des considérations de consommation. C'est par exemple le cas avec le tRRD, qui impose la durée entre deux commandes "activate", y compris sur des banques distinctes, ou 25 bien encore avec le tFAW, qui impose une durée totale pour 4 commandes d'activation consécutives. Some durations may arise from needs related to consumption considerations. This is for example the case with the tRRD, which imposes the duration between two "activate" commands, including on separate banks, or even with the tFAW, which imposes a total duration for 4 consecutive activation commands.

Le résultat de ces opérations est géré au niveau du bus de données 40 par un multiplexeur/démultiplexeur 52. Le multiplexeur/démultiplexeur 52 stocke les 30 valeurs des adresses mémoire lues sur la base des rangées désignées par les décodeurs 34, et des colonnes désignées par le décodeur 36. Les échanges de données sur le bus de données 40 sont gérés par un registre d'entrée/sortie 54 pour communication avec l'extérieur. The result of these operations is managed at the data bus 40 by a multiplexer / demultiplexer 52. The multiplexer / demultiplexer 52 stores the values of the read memory addresses based on the rows designated by the decoders 34, and columns designated by the decoder 36. The data exchanges on the data bus 40 are managed by an input / output register 54 for communication with the outside.

C'est sur le bus de données 40, qui est bidirectionnel, que se retrouvent les 5 données en provenance ou à destination de toutes les banques de mémoire 32. L'utilisateur doit gérer lui-même l'occupation du bus au cycle près. It is on the data bus 40, which is bidirectional, that the data coming from or destined for all memory banks 32 is found. The user must himself manage the occupation of the bus at the close cycle.

Avec les interfaces DRAM de type DDR, il y a deux données par cycle d'horloge, soit une pour chaque front d'horloge. L'essentiel des contraintes est 10 à la charge de l'utilisateur puisqu'il doit fournir à la DRAM, en plus des données, un signal d'échantillonnage par byte de données appelé le DQS, chaque front des DQS servant à échantillonner lesdites données dans la DRAM. With DRAM type DDR interfaces, there are two data per clock cycle, one for each clock edge. Most of the constraints are borne by the user since he must provide the DRAM, in addition to the data, with a data byte sampling signal called the DQS, each DQS edge serving to sample said data. in the DRAM.

Cela signifie que, en présence de données, les signaux DQS sont identiques au 15 signal d'horloge décalé d'un quart de cycle. En revanche, en sortie, quand la DRAM renvoie les DQS en même temps que les données lues, les fronts des DQS sont synchrones avec l'horloge de retour. This means that, in the presence of data, the DQS signals are identical to the quarter-cycle clock signal. On the other hand, at the output, when the DRAM returns the DQS at the same time as the read data, the edges of the DQS are synchronous with the return clock.

C'est alors encore à l'utilisateur de générer les signaux d'échantillonnage à 20 partir des DQS reçus en utilisant une boucle à verrouillage de délai, également appelée DLL ou Delay Lock Loop. It is then again for the user to generate the sampling signals from the received DQS using a delay-locked loop, also called DLL or Delay Lock Loop.

Lorsque la direction du bus de données 40 est retournée, quelques cycles sont alors perdus pendant lesquels le bus est maintenu en haute impédance, afin 25 d'éviter un mise en court circuit des éléments qui écrivent sur le bus, et en tenant compte des délais de transfert et de synchronisation. Il faut donc éviter de retourner le bus de données 40 trop souvent. When the direction of the data bus 40 is returned, a few cycles are lost during which the bus is held in high impedance, in order to avoid a short circuit of the elements that write on the bus, and taking into account the delays. transfer and synchronization. It is therefore necessary to avoid returning the data bus 40 too often.

Comme les écritures sont moins sensibles à la latence que les lectures, les 30 contrôleurs de DRAM retardent généralement les écritures afin de les regrouper pour augmenter l'efficacité de la DRAM. Because writes are less latency sensitive than reads, DRAM controllers typically delay writes in order to aggregate them to increase DRAM efficiency.

La figure 3 représente un mode de réalisation du contrôleur de logique 48. Fig. 3 shows an embodiment of the logic controller 48.

Le contrôleur logique 48 comporte trois éléments principaux : - un générateur de commandes d'accès 482 ; - un registre de zones allouées 484 ; et The logic controller 48 has three main elements: an access control generator 482; a register of allocated areas 484; and

un générateur de commandes de rafraîchissement 486. a refresh command generator 486.

Lorsque le contrôleur de logique 48 reçoit les signaux du décodeur de commande 44 et du registre de mode 46, il les dirige soit vers le générateur de commandes d'accès 482, soit vers le générateur de commandes de rafraîchissement 486. Le générateur de commandes d'accès 482 utilise les signaux reçus pour déterminer les opérations à effectuer en termes de lecture et d'écriture dans les banques 32. When the logic controller 48 receives the signals from the control decoder 44 and the mode register 46, it directs them either to the access control generator 482 or to the refresh command generator 486. The command generator 48 The access 482 uses the received signals to determine the operations to be performed in terms of reading and writing in the banks 32.

20 Le registre de zones allouées 484 stocke des données qui indiquent des plages ou zones d'adresses de la mémoire qui contiennent des données utiles au système qui exploite la mémoire. Le rôle de ce registre apparaîtra mieux avec ce qui suit. The allocated area register 484 stores data that indicates ranges or address areas of the memory that contain data that is useful to the system that operates the memory. The role of this registry will appear better with the following.

25 Le gestionnaire de rafraîchissement 486 fonctionne en coopération avec le registre de zones allouées 484 pour envoyer des commandes de rafraîchissement au rafraîchisseur 50. The refresh manager 486 cooperates with the allocated area register 484 to send refresh commands to the cooler 50.

Dans un cadre classique, le constructeur de la DRAM impose la durée de 30 rafraîchissement pour la totalité de la mérnoire, généralement 64ms, et donne le nombre de rangées à rafraîchir, par exemple 8K, soit une rangée à rafraîchir toutes les 7.8ps environ.15 C'est ensuite à l'utilisateur de déterminer les moments d'insertion des commandes d'auto rafraîchissement les plus propices afin de ne pas trop pénaliser ses propres accès. In a conventional setting, the DRAM constructor imposes the refresh time for the entire merge, typically 64ms, and gives the number of rows to refresh, for example 8K, ie one row to refresh every 7.8ps or so. It is then up to the user to determine the insertion times of the most suitable self-refresh commands in order not to penalize his own access too much.

Pour cela, il faut tenir compte du fait que cette commande va devoir fermer toutes les rangées encore ouvertes sur toutes les banques afin de rafraîchir la rangée repérée par le compteur de rafraîchissement. La durée d'une commande d'auto rafraîchissement est généralement d'environ 10 60 ns, et le rafraîchissement prend entre 1% et 2% de la bande passante totale de la mémoire. Dans le cadre de l'invention, le registre de zones allouées 484 permet au contrôleur 42 d'optimiser la gestion de la mémoire. En effet, le registre de zones allouées 484 est accessible par le système qui exploite la mémoire. For this, it must be taken into account that this command will have to close all rows still open on all banks to refresh the row identified by the refresh counter. The duration of an auto refresh command is typically about 10 60 ns, and the refresh takes between 1% and 2% of the total memory bandwidth. In the context of the invention, the allocated area register 484 allows the controller 42 to optimize the management of the memory. Indeed, the allocated area register 484 is accessible by the system that exploits the memory.

Cet accès permet d'attribuer des nouvelles adresses mémoire seulement dans 20 les zones dans lesquelles des adresses mémoire ont déjà été allouées, et d'imposer que ces zones soient remplies avant "d'ouvrir" une nouvelle zone. This access makes it possible to allocate new memory addresses only in the zones in which memory addresses have already been allocated, and to require that these zones be filled before "opening" a new zone.

Ainsi, le gestionnaire de rafraîchissement 486 peut ne réaliser le rafraîchissement que pour celles des zones de la mémoire qui contiennent des 25 données d'intérêt. Thus, the refresh manager 486 may only perform refresh for those areas of the memory that contain data of interest.

Comme les données sont de nature évanescentes, cela revient à ne pas alimenter les zones de mémoires qui ne sont pas désignées dans le registre de zones allouées. Dès lors, d'importants gains de consommation peuvent être réalisés, notamment lors d'un mode de veille. 15 30 Typiquement, les zones du registre de zones allouées sont des plages d'adresses mémoires qui sont déterminées à l'avance. Since the data are evanescent in nature, this amounts to not feeding the memory areas that are not designated in the allocated area register. Therefore, significant consumption gains can be made, especially during a standby mode. Typically, the areas of the allocated area register are memory address ranges that are determined in advance.

Une zone donnée contiendra ainsi un nombre choisi de lignes contiguës dans 5 les banques de mémoire, et est définie par un indice et une taille. A given area will thus contain a selected number of contiguous lines in the memory banks, and is defined by index and size.

Comme la taille des banques est connue, la taille et l'indice de chaque zone définissent sans ambiguïté la plage des adresses correspondantes. As the size of the banks is known, the size and index of each zone unambiguously define the range of corresponding addresses.

10 Cependant, pour des raisons de coût et de performances, la taille du registre de zones allouées 484 ne doit pas être trop importante. Néanmoins, plus la taille des zones est importante, plus les gains seront faibles. However, for reasons of cost and performance, the size of the allocated area register 484 should not be too large. Nevertheless, the larger the size of the zones, the smaller the gains will be.

Il convient donc de faire un compromis entre la granularité des zones et les 15 gains recherchés. It is therefore necessary to make a compromise between the granularity of the areas and the desired gains.

Le registre de zones allouées peut être mis en oeuvre de plusieurs manières. Ainsi, il peut être réalisé sous la forme d'une pile qui ne contient que les indices des zones de mémoire allouées. Sous une autre forme, il peut être réalisé par une table d'indices accompagnés à chaque fois d'un indicateur, un "1" indiquant que la zone est allouée, et un "0" indiquant à l'inverse que la zone est libre. The allocated area register can be implemented in several ways. Thus, it can be realized in the form of a stack which contains only the indices of the allocated memory areas. In another form, it can be realized by a table of indices accompanied each time by an indicator, a "1" indicating that the zone is allocated, and a "0" indicating conversely that the zone is free .

25 II est important que le dispositif d'allocation de la mémoire du côté du système qui exploite la mémoire soit synchronisé avec le registre de zones allouées 484. Cela garantit le bon fonctionnement de l'invention. It is important that the memory allocation device on the system side that operates the memory be synchronized with the allocated area register 484. This ensures the proper operation of the invention.

Ainsi, lorsqu'une adresse mémoire est libérée du côté du système, il doit être 30 déterminé côté système si cette adresse mémoire était la dernière activée d'une zone allouée donnée, pour permettre de refléter dans le registre d'adresses allouées 484 que cette zone n'est plus allouée. 20 Dans le cadre d'une application à un ordinateur du type PC, qui utilise comme système d'exploitation Linux (marque enregistrée), un allocateur de mémoire du système d'exploitation connu est Slab_alloc. Un allocateur de plus haut niveau, que nous nommerons Chunkalloc peut être intégré dans la structure existante. Les blocs disponibles pour Slab_alloc ne seront alors plus choisis dans la mémoire dans sa totalité, mais dans les zones de la mémoire qui sont gérées par ChunkAlloc. Thus, when a memory address is released from the system side, it must be determined on the system side if this memory address was the last activated of a given allocated area, to allow to reflect in the allocated address register 484 that this zone is no longer allocated. As part of an application to a PC-type computer, which uses as a Linux operating system (registered trademark), a known operating system memory allocator is Slab_alloc. A higher level allocator, which we will call Chunkalloc, can be integrated into the existing structure. The blocks available for Slab_alloc will no longer be chosen from the memory in its entirety, but from the areas of the memory that are managed by ChunkAlloc.

10 Cet allocateur doit donc maintenir une table de correspondance des adresses qu'il a alloué et des zones de mémoire correspondantes. This allocator must therefore maintain a correspondence table of the addresses it has allocated and corresponding memory areas.

Pour des raisons de cohérence des données au démarrage, le système d'exploitation doit démarrer en maintenant le rafraîchissement actif sur toutes 15 les zones de la mémoire. Ensuite, une fois ChunkAlloc démarré et initialisé, il aura pour tâche d'éteindre les zones inactives et pourra à ce moment réaliser son rôle d'allocateur. For reasons of data consistency at startup, the operating system must boot while keeping the refresh active on all areas of the memory. Then, once ChunkAlloc started and initialized, it will have the task of turning off the inactive areas and can at this time perform its role of allocator.

La correspondance que maintient l'allocateur est ici décrite sous la forme d'une 20 table, mais elle peut être réalisée sous toute autre forme appropriée pour maintenir une vue cohérente de l'occupation mémoire du côté de l'allocateur. The correspondence maintained by the allocator is here described in the form of a table, but it can be done in any other form suitable for maintaining a coherent view of the memory occupancy on the allocator side.

Dans le cadre de cette application, il a été déterminé que, pour une mémoire de 4Go, un ensemble de 4096 zones de mémoire représente un compromis 25 intéressant. Chaque zone de mémoire allouée contient alors une plage de 1 Mo. As part of this application, it has been determined that for a 4GB memory, a set of 4096 memory areas represents an interesting compromise. Each allocated memory area then contains a range of 1 MB.

Pour une gestion plus appropriée, l'allocateur peut allouer les adresses mémoires par lot de 64ko, et la correspondance à maintenir est alors basée sur l'allocation de ces lots et non pas sur la base des adresses mémoire allouées 30 individuelles.5 Lorsqu'un accès mémoire est demandé pour une adresse mémoire dans une zone non encore allouée, l'allocateur émet deux requêtes. For more appropriate management, the allocator can allocate the memory addresses in batch of 64kB, and the correspondence to be maintained is then based on the allocation of these batches and not on the basis of the individual allocated memory addresses. a memory access is requested for a memory address in a zone not yet allocated, the allocator sends two requests.

La première requête est adressée au générateur de commandes d'accès 482 5 pour l'accès à proprement parler. The first request is addressed to the access control generator 482 for the access itself.

La deuxième requête est adressée au registre de zones allouées 484 pour modifier celui-ci et refléter l'allocation de la zone de mémoire concernée. Cette requête forme donc une requête d'allumage de la plage de mémoire en 10 question. The second request is addressed to the allocated area register 484 to modify it and reflect the allocation of the memory area concerned. This request therefore forms a request to turn on the memory range in question.

Inversement, lorsque le dernier lot d'adresses mémoire d'une zone allouée donnée est libéré par le système, l'allocateur émet une requête au registre de zones allouées 484 pour modifier celui-ci et refléter la désallocation de la zone 15 de mémoire concernée. Cette requête forme donc une requête d'extinction de la plage de mémoire en question. Conversely, when the last set of memory addresses of a given allocated area is released by the system, the allocator issues a request to the allocated area register 484 to modify it and reflect the deallocation of the area of memory concerned. . This request therefore forms a request to turn off the memory range in question.

En variante, l'allocateur peut émettre des requêtes de rafraîchissement particulières. Ces requêtes sont interprétées par le générateur de commandes 20 de rafraîchissement non pas comme des requêtes de rafraîchissement classiques, mais comme des requêtes de modification du registre de zones allouées 484. Alternatively, the allocator can issue particular refresh requests. These requests are interpreted by the refresh command generator 20 not as conventional refresh requests, but as requests to modify the allocated zone register 484.

Le rafraîchissement des banques de mémoires peut ainsi être géré par 25 l'allocateur directement, ou en interne par le gestionnaire de commandes de rafraîchissement 486 en coopération avec le rafraîchisseur 50, ce dernier pouvant filtrer les zones non allouées pour ne pas les rafraîchir. The refresh of the memory banks can thus be managed by the allocator directly, or internally by the refresh control manager 486 in cooperation with the refresher 50, the latter being able to filter the unallocated areas so as not to refresh them.

D'un point de vue matériel, l'invention a été présentée en référence à des 30 registres et éléments groupés fonctionnellement. Ce regroupement a été présenté à des fins d'explication. From a hardware point of view, the invention has been presented with reference to functionally grouped registers and elements. This grouping was presented for explanation purposes.

Ces registres et éléments peuvent être mis en oeuvre de diverses manières, sans être groupés comme cela est présenté par exemple ou en étant mis en oeuvre ensemble dans un seul bloc. These registers and elements can be implemented in various ways, without being grouped as shown for example or by being implemented together in a single block.

En outre, dans ce qui précède, il conviendra d'apprécier que toutes les variantes peuvent être combinées entre elles dans la mesure de leur compatibilité. Bien que des modes préférés aient été présentés, il va de soi que l'invention englobe l'ensemble de ces variantes et leur combinaison. In addition, in the foregoing, it will be appreciated that all variants can be combined together to the extent of their compatibility. Although preferred modes have been presented, it goes without saying that the invention encompasses all of these variants and their combination.

Claims (5)

Revendicationsclaims 1. Dispositif de contrôle d'accès à une mémoire électronique, comportant, un contrôleur d'accès (482) pour organiser des requêtes d'accès à des banques de mémoires volatiles (32), et un rafraîchisseur (486) pour maintenir les données du banc de mémoires volatiles (32), caractérisé en ce qu'il comporte en outre un registre (484) pour désigner des plages de mémoire et en ce que le rafraîchisseur (486) est agencé pour rafraîchir sélectivement des plages de mémoire désignées par ledit registre (484). An electronic memory access control device, comprising, an access controller (482) for organizing access requests to volatile memory banks (32), and a refresher (486) for maintaining the data. of the volatile memory bank (32), characterized in that it further comprises a register (484) for designating memory ranges and in that the cooler (486) is arranged to selectively refresh memory ranges designated by said memory bank register (484). 2. Dispositif selon la revendication 1, caractérisé en ce quo le registre (484) est une table comprenant des indices de plage de mémoire associés à chaque fois à un indicateur de rafraîchissement. 2. Device according to claim 1, characterized in that the register (484) is a table comprising memory range indices each associated with a refresh indicator. 3. Dispositif selon la revendication 2, caractérisé en ce que le registre (484) est agencé pour recevoir une requête d'extinction d'une plage de mémoire, et pour modifier l'indicateur de rafraîchissement associé à l'indice de la plage de mémoire concerné de sorte qu'elle ne soit pas rafraîchie. 3. Device according to claim 2, characterized in that the register (484) is arranged to receive a request to extinguish a range of memory, and to modify the refresh indicator associated with the index of the range of memory concerned so that it is not refreshed. 4. Dispositif selon la revendication 2 ou 3, caractérisé en que le registre (484) est agencé pour recevoir une requête d'extinction d'une plage de mémoire, et pour modifier l'indicateur de rafraîchissement associé à l'indice de la plage de mémoire concerné de sorte qu'elle soit rafraîchie. 4. Device according to claim 2 or 3, characterized in that the register (484) is arranged to receive a request to extinguish a range of memory, and to modify the refresh indicator associated with the index of the range. of memory concerned so that it is refreshed. 5. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le registre (484) comporte des données désignant des plages de mémoire à rafraîchir en permanence. 15 5. Device according to one of the preceding claims, characterized in that the register (484) comprises data designating memory ranges to be refreshed permanently. 15
FR0800739A 2008-02-12 2008-02-12 DEVICE FOR CONTROLLING ACCESS TO AN ENHANCED ELECTRONIC MEMORY Active FR2927463B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0800739A FR2927463B1 (en) 2008-02-12 2008-02-12 DEVICE FOR CONTROLLING ACCESS TO AN ENHANCED ELECTRONIC MEMORY

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0800739A FR2927463B1 (en) 2008-02-12 2008-02-12 DEVICE FOR CONTROLLING ACCESS TO AN ENHANCED ELECTRONIC MEMORY

Publications (2)

Publication Number Publication Date
FR2927463A1 true FR2927463A1 (en) 2009-08-14
FR2927463B1 FR2927463B1 (en) 2011-04-01

Family

ID=39680890

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0800739A Active FR2927463B1 (en) 2008-02-12 2008-02-12 DEVICE FOR CONTROLLING ACCESS TO AN ENHANCED ELECTRONIC MEMORY

Country Status (1)

Country Link
FR (1) FR2927463B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784328A (en) * 1996-12-23 1998-07-21 Lsi Logic Corporation Memory system including an on-chip temperature sensor for regulating the refresh rate of a DRAM array
US6385113B1 (en) * 1999-04-30 2002-05-07 Madrone Solutions, Inc Method for operating an integrated circuit having a sleep mode
US20040027900A1 (en) * 2002-08-12 2004-02-12 Samsung Electronics Co., Ltd Semiconductor memory device and system outputting refresh flag
US20060133173A1 (en) * 2004-12-21 2006-06-22 Jain Sandeep K Method, apparatus, and system for active refresh management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784328A (en) * 1996-12-23 1998-07-21 Lsi Logic Corporation Memory system including an on-chip temperature sensor for regulating the refresh rate of a DRAM array
US6385113B1 (en) * 1999-04-30 2002-05-07 Madrone Solutions, Inc Method for operating an integrated circuit having a sleep mode
US20040027900A1 (en) * 2002-08-12 2004-02-12 Samsung Electronics Co., Ltd Semiconductor memory device and system outputting refresh flag
US20060133173A1 (en) * 2004-12-21 2006-06-22 Jain Sandeep K Method, apparatus, and system for active refresh management

Also Published As

Publication number Publication date
FR2927463B1 (en) 2011-04-01

Similar Documents

Publication Publication Date Title
US11024367B2 (en) Memory with on-die data transfer
US7433258B2 (en) Posted precharge and multiple open-page RAM architecture
JP5767778B2 (en) Memory with selective precharge
FR2771209A1 (en) SYNCHRONOUS SEMICONDUCTOR MEMORY DEVICE WITH PROGRAMMABLE LATENCY PERIOD
FR3028656A1 (en)
US20050144369A1 (en) Address space, bus system, memory controller and device system
EP3259674B1 (en) Dram circuit provided with a built-in processor
FR3042050A1 (en)
EP3080812B1 (en) Memory data writing circuit
EP3598451B1 (en) Sram/rom memory reconfigurable by connections to power supplies
FR2927463A1 (en) Access control device i.e. memory controller, for double data rate type dynamic RAM in personal computer, has refresh control generator to maintain data in memory slots and selectively refresh memory locations indicated by register
EP2043103B1 (en) Electronic memory device
FR2820874A1 (en) METHOD FOR THE RANDOM AND QUICK ACCESS MANAGEMENT OF A DRAM MEMORY
FR2801388A1 (en) Method of controlling DRAM by using cache registers for fact accessing storage element of cache are used to retrieve words of page of current request
EP0952587B1 (en) Fast DRAM layout
EP1902369B1 (en) Method for managing a non-volatile memory in a smart card
FR2769727A1 (en) METHOD AND SYSTEM FOR CONTROLLING SHARED ACCESS TO A RAM
EP3503104A1 (en) Memory circuit suitable for performing computing operations
FR2817996A1 (en) Integrated circuit cache memory, with DRAM cells, of content addressed memory type (CAM), uses temporary storage flip-flops and single comparator to compare contents of flip-flop with state function of read points
EP4036916A1 (en) Device comprising a non-volatile memory circuit
FR2802012A1 (en) Reducing access time on dynamic random access memory by interposing two read cache memories and two write cache memories between the dynamic random access memory and the column decoder
EP0908829A1 (en) Distributed memory access control system and method
WO2005111822A2 (en) Method and device for managing a bus
WO1993023802A1 (en) Information storage device connectable to a computer
FR2696023A1 (en) Rapid access memory circuit - uses groups of cells in memory with transfer through register that has bits beyond word length to aid mask access

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17