WO2002017095A1 - Circuit de commande d'une memoire dram - Google Patents

Circuit de commande d'une memoire dram Download PDF

Info

Publication number
WO2002017095A1
WO2002017095A1 PCT/FR2001/002669 FR0102669W WO0217095A1 WO 2002017095 A1 WO2002017095 A1 WO 2002017095A1 FR 0102669 W FR0102669 W FR 0102669W WO 0217095 A1 WO0217095 A1 WO 0217095A1
Authority
WO
WIPO (PCT)
Prior art keywords
instructions
series
memory
circuit
instruction
Prior art date
Application number
PCT/FR2001/002669
Other languages
English (en)
Inventor
Pierre Marty
Gaëlle REY
Pascal Chauvet
Original Assignee
Stmicroelectronics S.A.
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 Stmicroelectronics S.A. filed Critical Stmicroelectronics S.A.
Priority to EP01965353A priority Critical patent/EP1311962A1/fr
Priority to JP2002521719A priority patent/JP2004507817A/ja
Publication of WO2002017095A1 publication Critical patent/WO2002017095A1/fr
Priority to US11/446,553 priority patent/US7395399B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Definitions

  • the present invention relates to a memory control circuit, and in particular a control circuit for an external memory of SDRAM, DDR or RAMBUS type comprising several memory areas.
  • Many electronic systems need to store a large amount of data in a memory and they need to access this data quickly.
  • Memories of the dynamic RAM or DRAM type generally comprising several memory zones each accessible by means of a cache with high data rate, are suitable for this type of use. These memories are generally discrete integrated circuits (external memories) which must be connected to memory control circuits making the connection with the rest of the electronic system.
  • FIG. 1 schematically represents a memory control circuit 2 connected to a memory 4 of DRAM type via a COM control bus and a DAT data bus.
  • the memory 4 comprises two memory zones A and B each of which is connected to the data bus DAT by means of a cache, respectively BUFA and BUFB.
  • the memory 4 is clocked by a clock signal CK.
  • the memory zones A and B are both organized in several memory pages (not shown), each of which comprises a predetermined number of words.
  • BUFA and BUFB caches are connected by the COM control bus to circuit 2.
  • Circuit 2 includes a priority management block 8 connected to receive write and / or read requests from blocks (not shown) which are also connected to the bus DAT for exchanging data with the memory 4.
  • the block 8 receives write and / or read requests intended for one or the other of the memory zones.
  • block 8 receives simultaneously two requests provided by two blocks, it processes in priority the request received from that of the two blocks which has priority over the other.
  • the order of priority of the blocks is generally progressed when the circuit is initialized.
  • Circuit 2 also includes a block 10, connected between the output of block 8 and the COM bus, which converts requests received by block 8 from a communication protocol specific to circuit 2 to a communication protocol specific to memory. 4.
  • the protocol accepted by a memory depends on the type and manufacturer of the memory.
  • FIG. 2 schematically illustrates two series of instructions supplied by the block 10 in cadence with the clock signal CK.
  • block 10 receives a first request to write a word, intended for an address A1 "of a page A1 of the memory area A, then a second request to write a word, intended for an address Bl 'of a page Bl of the memory area B.
  • write requests each begin with the rewriting of the data of the cache considered in a page previously processed (cache preload, instruction PRE), followed by the writing of the page considered in said cache (activation of the cache, ACT instruction), followed
  • the cache cannot receive any other instruction, and block 10 must supply two "NOP" non-instructions between the precharge instruction and the instruction d next activation.
  • the block 10 supplies the bus COM with an ACT A1 command for activating the page commanding the cache BUFA to read the address page Al of the memory area A.
  • activation instruction is supplied to the BUFA cache in one period T but the activation operation is executed in three periods, and block 10 must supply two NOP instructions between the activation instruction and the following write instruction .
  • block 10 provides an instruction WR A1 'for writing the address word Al' in the cache BUFA. It will be noted that the word which must be written at the address A1 'is supplied to the data bus DAT when the instruction WR A1 is supplied. Only one period is necessary to execute the write operation.
  • the operation of writing the address word Al 'of the page A1 of the memory area A is terminated.
  • the second write request proceeds in a similar fashion to the first write request.
  • block 10 provides a PRE B0 instruction for precharging the BUFB cache.
  • block 10 provides an ACT Bl instruction for activating the address page Bl of the memory area B.
  • block 10 provides a writing instruction WR Bl' of the address word Bl 'of the page Bl.
  • the execution of a request to read a word from a page of a memory area is similar to the execution of a request to write a word described above, a word read (RD) instruction replacing 1 word writing instruction (WR).
  • RD word read
  • WR word writing instruction
  • An object of the present invention is to provide a control circuit allowing access with a high data rate to a DRAM type memory comprising at least two zones.
  • Another object of the present invention is to provide such a circuit which can operate with an inexpensive memory having a low maximum operating frequency.
  • the present invention provides a memory control circuit comprising at least two areas which cannot be accessed simultaneously, the circuit comprising first means for memorizing series of instruction reading and / or writing separately for each of said zones, second means for detecting that a first instruction intended for a first zone is a predetermined instruction which must be followed by a period during which the first zone cannot receive another instruction, and third means for, during said period, providing instructions to another area of the memory.
  • each of the areas of the memory is accessible via a particular cache.
  • the circuit further comprises fourth means for receiving read and / or write requests and for writing them each in the form of a series of instructions in the first means, each series of instructions comprising a predetermined number of data.
  • said predetermined number of data of a series of instructions notably comprises an indication of the order of priority existing between each series of instructions stored in the first means.
  • said predetermined number of data of a series of instructions notably comprises an indication that the series of instructions is aimed at reading or writing from the memory.
  • said predetermined number of data of a series of instructions notably comprises the addresses for which said series of instructions is intended.
  • said predetermined number of data of a series of instructions notably comprises the instructions forming said series of instructions.
  • said predetermined number of data of a series of instructions notably comprises the time necessary to execute said series of instructions.
  • the first means comprise for each zone of the memory a predetermined number of registers.
  • said predetermined number of registers comprises index registers for managing the writing and reading of the other registers of said predetermined number of registers, respectively by the fourth and second means.
  • FIG. 1, previously described schematically represents a conventional control circuit of a DRAM memory
  • Figure 2, previously described illustrates the operation of the control circuit of Figure 1
  • FIG. 3 schematically represents a control circuit according to the present invention
  • Figure 4 schematically illustrates the operation of the control circuit of Figure 3
  • FIG. 5 schematically represents the structure of a set of registers of the control circuit according to the present invention.
  • FIG. 3 schematically represents a memory control circuit according to the present invention, connected to a memory 4.
  • the control circuit comprises a recognition block 12 connected to receive write and / or read requests from blocks (not shown) of the circuit which are connected to the DAT bus to exchange data with the memory 4.
  • the control circuit further comprises two sets of registers 14 (A ') and 1S (B') provided for memorizing the data supplied by block 12.
  • a decision block 18 is connected to the outputs of the sets of registers 14 and 16.
  • the output of block 18 is supplied to a state machine 20 connected to the command bus COM.
  • the state machine 20 is clocked by the same clock signal CK as the memory 4.
  • block 12 When block 12 receives a request intended for the memory area A or B, it translates the request into instructions and information, as will be seen below. These instructions / information are respectively stored in the set of registers 14 or 16 depending on whether they are intended for zone A or B. If block 12 receives two requests simultaneously from two blocks of the circuit, it processes the request as a priority from the block with the highest priority according to conventional priority management. The instructions stored in the sets of registers 14 and 16 are analyzed by block 18 to determine whether an instruction should be followed by a period during which the cache for which it is intended cannot receive other instructions.
  • the block 18 analyzes the information / instructions stored in the other set of registers to determine whether, during said period, it is possible to provide an instruction from the other set registers to the other cache.
  • the state machine 20 provides a timing signal to the decision block 18 so as to receive at each new period of the clock signal CK an instruction to be supplied to one or other of the memory caches. If no instruction is to be provided, the state machine 20 produces an NOP instruction.
  • the state machine 20 translates the instructions supplied by block 18 into elementary coded instructions accepted by memory 4.
  • FIG. 4 schematically illustrates two series of instructions supplied in time with the clock signal CK by the state machine 20.
  • the two series of instructions correspond respectively to a first request to write a word to an address Al 'of a page Al of the memory area A, and to a second request to write a word to an address Bl' of a page Bl of the memory area B.
  • each request begins by a page preload instruction, followed by a page activation instruction and a word writing instruction.
  • the precharge PRE A0, activation ACT A1 and write WR A1 'instructions intended for the memory area A are, as before, provided with an interval of three periods T at times to, tl and t2 respectively.
  • the precharge instruction PRE B0 intended for the memory area B is supplied to the bus COM at an instant tO 'situated a period T after the instant tO.
  • the instant t0 ' is the beginning of the period following the PRE A0 instruction during which the BUFA cache cannot receive any other instruction.
  • the activation instruction ACT B1 intended for the memory area B is supplied to the bus COM at an instant tl 'situated two periods T after the instant tl.
  • an NOP instruction is thus inserted between the ACT A1 and ACT B1 instructions.
  • Such an intermediate NOP instruction is necessary for most memories, which cannot, by construction, receive two ACT instructions in succession.
  • the instant tl 'could be located a period T after the instant tl.
  • the write instruction WR Bl 'intended for the memory area B is supplied at an instant t2' situated a period T after the instant t2. Note that the writing of the word A1 takes place before the writing of the word B1, that is to say respecting the order of priority with which the writing requests have been supplied to the sets of registers 14 and 16.
  • the present invention makes it possible to supply the memory 4 with two write requests in eight periods of the clock signal CK.
  • This figure is to be compared with the fourteen periods of the clock signal which are necessary according to the prior art to supply the same requests to the same memory.
  • This gain in speed can be generalized to other write / read requests, not shown, which can be supplied to the memory.
  • the present invention makes it possible to obtain a high data rate without using a faster clock signal than according to the prior art.
  • a memory control circuit according to the present invention it is possible with a memory control circuit according to the present invention, to have a higher data rate than with a control circuit according to the prior art, while using a clock signal of higher frequency. bass than according to the prior art.
  • a control circuit according to the present invention allowing a high data rate with a memory operating at a low frequency, the present invention allows the use of an inexpensive memory.
  • the present invention is also suitable for memory control circuits performing write and read in packets.
  • a memory performs a series of writes or reads in packets on a first cache, said cache cannot receive any other instruction and the COM command bus is free to provide. instructions to the second cache.
  • the DAT data bus is used for writes or reads. Block 18 is thus provided for, during a write / read by packet in a cache, to provide the other cache only with instructions which do not involve the use of the DAT data bus (such as the precharge instructions and previously described).
  • FIG. 5 schematically represents the set of registers 14.
  • the set of registers 16 has an identical structure. tick.
  • the set of registers 14 comprises a type register (TYP), an order register (ORD), an address register (ADR), a command register (CMD), a size register (SIZ), a byte validation register (BE), a write index register (WRI) and a read index register (RDI).
  • the write index register contains an address updated by block 12.
  • the read index register contains an address updated by block 18.
  • the registers of type, order, address, control, size and validation of bytes are FIFO type and they each contain an equal number of data each identifiable by an address.
  • the FIFO registers are connected so as to be written by block 12 at the address contained in the write index register and read by block 18 at the address contained in the read index register. It will be noted that a comparison of the addresses included in the write and read index registers makes it possible to know the filling rate of the FIFO registers. If all the addresses of the FIFO registers are used, it is no longer possible to store the data relating to a request in this set of registers, and an error message is produced.
  • Each request received by block 12 gives rise to the writing of data in the FIFO registers, and to an incrementation of the address of the register of the write index.
  • the type register receives data indicating whether the request is a read or write request.
  • the order register receives an absolute time indicating the instant at which the request was supplied to the control circuit. This time indication allows the circuit 18 to select which instruction should be sent in priority.
  • the address register receives the page and word addresses, at which the request must be executed.
  • the command register contains the instructions necessary to execute the request. For example, the instructions ' PRE, ACT, WR for a request to write to a new page, and the instructions WR for a request to write to a page already activated.
  • the instructions necessary to execute the request are determined in particular as a function of the address of the page to which the request is intended, which is compared with the address of the page to which the previous request is intended. For this, the block 12 can read the command register, by a link not shown.
  • the size register receives the number of periods necessary to execute the request.
  • the byte validation register receives the number of data bytes concerned by each request (for example when all the bytes of a word must not be written or read).
  • the latter is provided for, when the data relating to a request is particularly simple and quick to process, to start processing the next request.
  • the number of data that can be stored in all of the FIFO registers determines the number of requests that block 18 can analyze in advance.
  • a write request can correspond to an activation instruction followed by a write instruction and a precharge instruction.
  • control circuit according to the present invention will then comprise as many sets of registers as the memory will have memory areas.

Abstract

L'invention concerne un circuit de commande d'une mémoire (4) comprenant au moins deux zones (A, B) auxquelles on ne peut pas accéder simultanément, le circuit comprenant des premiers moyens (14, 16) pour mémoriser des séries d'instructions de lecture et/ou d'écriture séparément pour chacune desdites zones, des deuxièmes moyens (18) pour détecter qu'une première instruction destinée à une première zone est une instruction prédéterminée qui doit être suivie d'une période pendant laquelle la première zone ne peut recevoir une autre instruction, et des troisièmes moyens (20) pour, pendant ladite période, fournir des instructions à une autre zone de la mémoire.

Description

CIRCUIT DE COMMANDE D'UNE MEMOIRE DRAM
La présente invention concerne un circuit de commande d'une mémoire, et en particulier un circuit de commande d'une mémoire externe de type SDRAM, DDR ou RAMBUS comprenant plusieurs zones mémoire. De nombreux systèmes électroniques doivent mémoriser une grande quantité de données dans une mémoire et ils doivent accéder à ces données rapidement. Des mémoires du type RAM dynamique, ou DRAM, comportant généralement plusieurs zones mémoire accessibles chacune par l'intermédiaire d'un cache à débit de données élevé, conviennent à ce genre d'utilisation. Ces mémoires sont généralement des circuits intégrés discrets (mémoires externes) qui doivent être reliés à des circuits de commande de mémoire faisant la liaison avec le reste du système électronique.
La figure 1 représente schématiquement un circuit de commande de mémoire 2 connecté à une mémoire 4 de type DRAM par l'intermédiaire d'un bus de commande COM et d'un bus de données DAT. La mémoire 4 comprend deux zones mémoire A et B dont chacune est reliée au bus de données DAT par l'intermédiaire d'un cache, respectivement BUFA et BUFB. La mémoire 4 est cadencée par un signal d'horloge CK. Les zones mémoire A et B sont toutes les deux organisées en plusieurs pages mémoire (non représentées) dont chacune comporte un nombre prédéterminé de mots. Les caches BUFA et BUFB sont reliés par le bus de commande COM au circuit 2. Le circuit 2 comprend un bloc de gestion de priorité 8 connecté pour recevoir des requêtes d'écriture et/ou de lecture depuis des blocs (non représentés) qui sont par ailleurs reliés au bus DAT pour échanger des données avec la mémoire 4. Ls bloc 8 reçoit des requêtes d'écriture et/ou de lecture destinées à l'une ou l'autre des zones mémoire. Lorsque le bloc 8 reçoit simultanément deux requêtes fournies par deux blocs, il traite en priorité la requête reçue depuis celui des deux blocs qui a la priorité sur l'autre. L'ordre de priorité des blocs est généralement prograiπré à l'initialisation du circuit. Le circuit 2 comprend en outre un bloc 10, relié entre la sortie du bloc 8 et le bus COM, qui convertit les requêtes reçues par le bloc 8 d'un protocole de cαimunication propre au circuit 2 vers un protocole de communication propre à la mémoire 4. Le protocole accepté par une mémoire dépend du type et du constructeur de la mémoire. La figure 2 illustre schématiquement deux séries d'instructions fournies par le bloc 10 en cadence avec le signal d'horloge CK. Dans l'exemple représenté, le bloc 10 reçoit une première requête d'écriture d'un mot, destinée à une adresse Al" d'une page Al de la zone mémoire A, puis une deuxième requête d'écriture d'un mot, destinée à une adresse Bl' d'une page Bl de la zone mémoire B. Dans l'exemple représenté, de telles requêtes d'écriture commencent chacune par la réécriture des données du cache considéré dans une page traitée précédemment (précharge du cache, instruction PRE), suivie de l'écriture de la page considérée dans ledit cache (activatiαn du cache, instruction ACT) , suivie
périodes. Ainsi, pendant deux périodes suivant la réception de l'instruction de précharge, le cache ne peut pas recevoir d'autre instruction, et le bloc 10 doit fournir deux non-instructions "NOP" entre l'instruction de précharge et l'instruction d'activation suivante. A un instant tl situé trois périodes T après l'instant to, le bloc 10 fournit au bus COM une commande ACT Al d'activation de page commandant au cache BUFA de lire la page d'adresse Al de la zone mémoire A. L'instruction d'activation est fournie au cache BUFA en une période T mais l'opération d'activation est exécutée en trois périodes, et le bloc 10 doit fournir deux instructions NOP entre l'instruction d'activation et l'instruction d'écriture suivante. A un instant t2, situé trois périodes T après l'instant tl, le bloc 10 fournit une instruction WR Al' d'écriture du mot d'adresse Al' dans le cache BUFA. On notera que le mot qui doit être écrit à l'adresse Al' est fourni au bus de données DAT lorsque l'instruction WR Al est fournie. Une seule période est nécessaire pour exécuter l'opération d'écriture. A un instant t3 situé une période T après l'instant t2, l'opération d'écriture du mot d'adresse Al' de la page Al de la zone mémoire A est terminée. La deuxième requête d'écriture se déroule d'une façon semblable à la première requête d'écriture. A l'instant t3, le bloc 10 fournit une instruction PRE B0 de précharge du cache BUFB. A un instant t4 situé trois périodes T après l'instant t3, le bloc 10 fournit une instruction ACT Bl d'activation de la page d'adresse Bl de la zone mémoire B. Enfin, à un instant t5 situé trois périodes T après l'instant t4, le bloc 10 fournit une instruction d'écriture WR Bl' du mot d'adresse Bl' de la page Bl.
On notera que lorsqu'une première et une deuxième requêtes d'écriture doivent être exécutées successivement dans une même page, le cache utilisé contient déjà la bonne page après la première écriture et il n'est pas nécessaire pour exécuter la deuxième requête d'écriture que le bloc 10 fournisse de nouveau les instructions de précharge et d'activation de ladite page. On notera également que certaines mémoires sont prévues pour faire suivre automatiquement toute écriture dans un mot d'un cache par une suite d'écritures dans les mots suivants du cache. Une telle suite d'écriture est appelée écriture par "paquets" (écriture en mode BURST) . Durant une écriture par paquets, le cache utilisé ne peut recevoir d'autre instruction et le bloc 10 fournit des ins- tructions NOP. Une écriture par paquets est classiquement interrompue par une instruction prédéterminée telle que l'instruction de précharge.
L'exécution d'une requête de lecture d'un mot d'une page d'une zone mémoire est semblable à l'exécution d'une requête d'écriture de mot décrite précédemment, une instruction de lecture de mot (RD) remplaçant 1 ' instruction d'écriture de mot (WR) .
Les récentes avancées technologiques ont permis de développer des mémoires DRAM fonctionnant à des fréquences très élevées allant jusqu'à 800 MHz. Il a jusqu'à présent été possible de développer des circuits de commande pouvant fournir les instructions de commande de telles mémoires, en utilisant des architectures particulièrement simples et rapides. Cependant, on souhaite accroître encore le débit des données échangées avec la mémoire. Il est possible d'accroître la vitesse d'accès aux mémoires, mais le développement de circuits de commande fonctionnant avec des signaux d'horloge plus rapides pose de nombreux problèmes, notamment un coût de développement élevé et une consommation élevée. L'utilisation de bus de commande et de données très larges permet également d'accroître le débit de données, mais une telle solution demande d'utiliser plusieurs mémoires dont chacune est reliée à une partie du bus, et l'utilisation de plusieurs mémoires est coûteuse.
Un objet de la présente invention est de prévoir un circuit de commande permettant d'accéder avec un débit de données élevé à une mémoire de type DRAM comprenant au moins deux zones.
Un autre objet de la présente invention est de prévoir un tel circuit de commande utilisant des bus de commande et de données ayant une largeur standard. Un autre objet de la présente invention est de prévoir un tel circuit fonctionnant avec un signal d'horloge de fréquence peu élevée.
Un autre objet de la présente invention est de prévoir un tel circuit qui puisse fonctionner avec une mémoire peu coûteuse ayant une fréquence maximale de fonctionnement peu élevée.
Pour atteindre ces objets, ainsi que d'autres, la présente invention prévoit un circuit de commande d'une mémoire comprenant au moins deux zones auxquelles on ne peut pas accéder simultanément, le circuit comprenant des premiers moyens pour mémoriser des séries d'instructions de lecture et/ou d'écriture séparément pour chacune desdites zones, des deuxièmes moyens pour détecter qu'une première instruction destinée à une première zone est une instruction prédéterminée qui doit être suivie d'une période pendant laquelle la première zone ne peut recevoir une autre instruction, et des troisièmes moyens pour, pendant ladite période, fournir des instructions à une autre zone de la mémoire.
Selon un mode de réalisation de la présente invention, ' chacune des zones de la mémoire est accessible par l'interé- diaire d'un cache particulier.
Selon un mode de réalisation de la présente invention, le circuit comprend en outre des quatrièmes moyens pour recevoir des requêtes de lecture et/ou d'écriture et pour les écrire chacune sous la forme d'une série d'instructions dans les pre- miers moyens, chaque série d'instructions comprenant un nombre prédéterminé de données.
Selon un mode de réalisation de la présente invention, ledit nombre prédêterrniné de données d'une série d'instructions comprend notamment une indication de l'ordre de priorité existant entre chaque série d'instructions mémorisée dans le premier moyen.
Selon un mode de réalisation de la présente invention, ledit nombre prédéterminé de données d'une série d'instructions comprend notamment une indication de ce que la série d'instruction vise à une lecture ou à une écriture de la mémoire. Selon un mode de réalisation de la présente invention, ledit nombre prédéterminé de données d'une série d'instructions comprend notamment les adresses auxquelles ladite série d'instructions est destinée. Selon un mode de réalisation de la présente invention, ledit nombre prédéterminé de données d'une série d'instructions comprend notamment les instructions formant ladite série d'instructions .
Selon un mode de réalisation de la présente invention, ledit nombre prédéterminé de données d'une série d'instructions comprend notamment la durée nécessaire pour exécuter ladite série d' instructions .
Selon un mode de réalisation de la présente invention, les premiers moyens comportent pour chaque zone de la mémoire un nombre prédéterminé de registres.
Selon un mode de réalisation de la présente invention, ledit nombre prédéterminé de registres comprend des registres d'index pour gérer l'écriture et la lecture des autres registres dudit nombre prédéterminé de registres, respectivement par les quatrièmes et deuxièmes moyens.
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitâtif en relation avec les figures jointes parmi lesquelles : la figure 1, précédemment décrite, représente schémati- qαement un circuit de commande classique d'une mémoire DRAM ; la figure 2, précédemment décrite, illustre le fonctionnement du circuit de commande de la figure 1 ; la figure 3 représente schématiquement un circuit de commande selon la présente invention ; la figure 4 illustre schématiquement le fonctionnement du circuit de commande de la figure 3 ; et la figure 5 représente schématiquement la structure d'un ensemble de registres du circuit de commande selon la présente invention.
La figure 3 représente schématiquement un circuit de commande de mémoire selon la présente invention, connecté à une mémoire 4. Selon la présente invention, le circuit de commande comprend un bloc de reconnaissance 12 connecté pour recevoir des requêtes d'écriture et/ou de lecture depuis des blocs (non représentés) du circuit qui sont reliés au bus DAT pour échanger des données avec la mémoire 4. Le circuit de commande comprend en outre deux ensembles de registres 14 (A') et 1S (B') prévus pour mémoriser les données fournies par le bloc 12. Un bloc de décision 18 est connecté aux sorties des ensembles des registres 14 et 16. La sortie du bloc 18 est fournie à une machine d'état 20 reliée au bus de commande COM. La machine d'état 20 est cadencée par le même signal d'horloge CK que la mémoire 4.
Lorsque le bloc 12 reçoit une requête destinée à la zone mémoire A ou B, il traduit la requête en des instructions et des informations, comme on le verra par la suite. Ces instructions/ informations sont respectivement mémorisées dans 1 'ensemble de registres 14 ou 16 selon qu'elles sont destinées à la zone A ou B. Si le bloc 12 reçoit simultanément deux requêtes provenant de deux blocs du circuit, il traite en priorité la requête provenant du bloc ayant la priorité la plus haute selon une gestion de priorité classique. Les instructions mémorisées dans les ensembles de registres 14 et 16 sont analysées par le bloc 18 pour déterminer si une instruction doit être suivie d'une période pendant laquelle le cache auquel elle est destinée ne peut recevoir d'autres instructions. Si une telle instruction existe dans l'un des ensembles de registres, le bloc 18 analyse les informations/ instructions mémorisées dans l'autre ensemble de registres pour déterminer si, pendant ladite période, il est possible de fournir une instruction de l'autre ensemble de registres à l'autre cache. La machine d'état 20 fournit un signal de cadencement au bloc de décision 18 de manière à recevoir à chaque nouvelle période du signal d'horloge CK une instruction devant être fournie à l'un ou l'autre des caches de la mémoire. Si aucune instruction ne doit être fournie, la machine d'état 20 produit une instruction NOP. La machine d'état 20 traduit les instructions fournies par le bloc 18 en instructions codées élémentaires acceptées par la mémoire 4.
La figure 4 illustre schématiquement deux séries d'instructions fournies en cadence avec le signal d'horloge CK par la machine d'état 20. Comme précédemment, les deux séries d'instructions correspondent respectivement à une première requête d'écriture d'un mot à une adresse Al' d'une page Al de la zone mémoire A, et à une deuxième requête d'écriture d'un mot à une adresse Bl' d'une page Bl de la zone mémoire B. Comme précédemment, chaque requête commence par une instruction de précharge de page, suivie d'une instruction d'activation de page et d'une instruction d'écriture de mot.
Les instructions de précharge PRE A0, d'activation ACT Al et d'écriture WR Al' destinées à la zone mémoire A sont, comme précédemment, fournies avec un intervalle de trois périodes T à des instants to, tl et t2 respectivement. Cependant, selon la présente invention, l'instruction de précharge PRE B0 destinée à la zone mémoire B est fournie au bus COM à un instant tO ' situé une période T après l'instant tO. L'instant t0' est le dçbut de la période suivant l'instruction PRE A0 pendant laquelle le cache BUFA ne peut recevoir d'autre instruction. De même, l'instruction d'activation ACT Bl destinée à la zone mémoire B est fournie au bus COM à un instant tl' situé deux périodes T après l'instant tl. On notera qu'une instruction NOP est ainsi intercalée entre les instructions ACT Al et ACT Bl. Une telle instruction NOP intercalaire est nécessaire pour la plupart des mémoires, qui ne peuvent, par construction, pas recevoir à la suite deux instructions ACT. Cependant, dans le cas d'une mémoire pouvant recevoir à la suite deux instructions ACT, l'instant tl' pourrait être situé une période T après l'instant tl. Enfin, l'instruction d'écriture WR Bl' destinée à la zone mémoire B est fournie à un instant t2' situé une période T après l'instant t2. On notera que l'écriture du mot Al a lieu avant l'écriture du mot Bl, c'est-à- dire en respectant l'ordre de priorité avec lequel les requêtes d'écriture ont été fournies aux ensembles de registres 14 et 16.
Dans l'exemple représenté, la présente invention permet de fournir à la mémoire 4 deux requêtes d'écriture en huit périodes du signal d'horloge CK. Ce chiffre est à comparer aux quatorze périodes du signal d'horloge qui sont nécessaires selon l'art antérieur pour fournir les mêmes requêtes à la même mémoire. Ce gain de vitesse peut être généralisé aux autres requêtes d'écriture/lecture, non représentées, qui peuvent être fournies à la mémoire. La présente invention permet d'obtenir un débit de données élevé sans utiliser un signal d'horloge plus rapide que selon l'art antérieur. Ainsi, il est possible avec un circuit de commande de mémoire selon la présente invention, d'avoir un débit de données plus élevé qu'avec un circuit de commande selon l'art antérieur, tout en utilisant un signal d'horloge de fréquence plus basse que selon l'art antérieur. En outre, un circuit de commande selon la présente invention permettant un débit de données élevé avec une mémoire fonctionnant à une fréquence peu élevée, la présente invention permet d'utiliser une mémoire peu coûteuse.
La présente invention est également adaptée à des circuits de commande de mémoires effectuant des écritures et des lectures par paquets. Lorsqu'une mémoire effectue sur un premier cache une suite d'écritures ou de lectures par paquets, ledit cache ne peut recevoir une autre instruction et le bus de commande COM est libre pour fournir des . instructions au deuxième cache. Cependant, le bus de données DAT est utilisé par les écritures ou les lectures. Le bloc 18 est ainsi prévu pour, lors d'une écriture/lecture par paquet dans un cache, ne fournir à l'autre cache que des instructions n'entraînant pas une utilisation du bus de données DAT (telles que les instructions de précharge et d'activation décrites précédemment) .
La figure 5 représente schématiquement l'ensemble de registres 14. L'ensemble de registres 16 a une structure iden- tique. L'ensemble de registres 14 comprend un registre de type (TYP) , un registre d'ordre (ORD) , un registre d'adresse (ADR) , un registre de commande (CMD) , un registre de taille (SIZ) , un registre de validation d'octets (BE) , un registre d'index d'écri- ture (WRI) et un registre d'index de lecture (RDI) . Le registre d'index d'écriture contient une adresse mise à jour par le bloc 12. Le registre d' index de lecture contient une adresse mise à jour par le bloc 18. Les registres de type, d'ordre, d'adresse, de commande, de taille et de validation d'octets sont de type FIFO et ils contiennent chacun un nombre égal de données repé- rables chacune par une adresse. Les registres FIFO sont connectés de manière à être écrits par le bloc 12 à l'adresse contenue dans le registre d'index d'écriture et lus par le bloc 18 à l'adresse contenue dans le registre d'index de lecture. On notera qu'une comparaison des adresses comprises dans les registres d'index d'écriture et de lecture permet de connaître le taux de remplissage des registres FIFO. Si toutes les adresses des registres FIFO sont utilisées, il n'est plus possible de mémoriser les données concernant une requête dans cet ensemble de registres, et un message d'erreur est produit.
Chaque requête reçue par le bloc 12 donne lieu à l'écriture de données dans les registres FIFO, et à une incrémentation de l'adresse du registre de l'index d'écriture.
Le registre de type reçoit une donnée indiquant si la requête est une requête de lecture ou d'écriture.
Le registre d'ordre reçoit un temps absolu indiquant l'instant auquel la requête a été fournie au circuit de commande. Cette indication de temps permet au circuit 18 de sélectionner quelle instruction doit être envoyée en priorité. Le registre d'adresse reçoit les adresses de page et de mot, auxquelles la requête doit être exécutée.
Le registre de commande contient les instructions nécessaires pour exécuter la requête. Par exemple, les instructions ' PRE, ACT, WR pour une requête d'écriture dans une nouvelle page, et les instructions WR pour une requête d'écriture dans une page déjà activée. Les instructions nécessaires pour exécuter la requête sont déterminées notamment en fonction de l'adresse de la page à laquelle la requête est destinée, qui est comparée à l'adresse de la page à laquelle la requête précédente est desti- née. Pour cela, le bloc 12 peut lire le registre de commande, par une liaison non représentée.
Le registre de taille reçoit le nombre de périodes nécessaires pour exécuter la requête.
Le registre de validation d'octets reçoit le nombre d'octets de données concernés par chaque requête (par exemple lorsque tous les octets d'un mot ne doivent pas être écrits ou lus) .
Afin de garantir un fonctionnement global rapide du bloc 18, ce dernier est prévu pour, lorsque les données concer- nant une requête sont particulièrement simples et rapides à traiter, commencer à traiter la requête suivante. Le nombre de données mémorisables dans l'ensemble des registres FIFO détermine le nombre de requêtes que le bloc 18 peut analyser à l'avance.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme du métier à la lecture de la description précédente. En particulier, on a décrit un circuit de commande dans lequel une requête d'écriture est exécutée d'une manière particulière, mais l'homme du métier adaptera sans difficultés la présente invention à un circuit de commande dans lequel une même requête est exécutée autrement. Par exemple, une requête d'écriture peut correspondre à une instruction d'activation suivie d'une instruction d'écriture et d'une instruction de précharge.
En outre, la présente invention a été décrite en rela- tion avec une mémoire comportant deux zones mémoire, mais l'homme du métier adaptera sans difficultés la présente invention à une mémoire comportant un plus grand nombre de zones mémoire. Le circuit de commande selon la présente invention comportera alors autant d'ensembles de registres que la mémoire aura de zones mémoire.

Claims

REVENDICATIONS
1. Circuit de commande d'une mémoire (4) comprenant au moins deux zones (A, B) auxquelles on ne peut pas accéder simultanément, caractérisé en ce que le circuit comprend : des premiers moyens (14, 16) pour mémoriser des séries d'instructions de lecture et/ou d'écriture séparément pour chacune desdites zones, des deuxièmes moyens (18) pour détecter qu'une première instruction destinée à une première zone est une instruction prédéterminée qui doit être suivie d'une période pendant laquelle la première zone ne peut recevoir une autre instruction, et des troisièmes moyens (20) pour, pendant ladite période, fournir des instructions à une autre zone de la mémoire.
2. Circuit selon la revendication 1, de commande d'une mémoire dont chacune des zones est accessible par l'intermédiaire d'un cache particulier (BUFA, BUFB) .
3. Circuit selon la revendication 1 ou 2, comprenant en outre des quatrièmes moyens (12) pour recevoir des requêtes de lecture et/ou d'écriture et pour les écrire chacune sous la forme d'une série d'instructions dans les premiers moyens, chaque série d'instructions comprenant un nombre prédéterminé de données.
4. Circuit selon la revendication 3, dans lequel ledit nombre prédéterminé de données d'une série d'instructions comprend notamment une indication (ORD) de l'ordre de priorité existant entre chaque série d'instructions mémorisée dans le premier moyen.
5. Circuit selon la revendication 3, dans lequel ledit nombre prédéterminé de données d'une série d'instructions comprend notamment une indication (TYP) de ce que la série d'instructions vise à une lecture ou à une écriture de la mémoire.
6. Circuit selon la revendication 3, dans lequel ledit nombre prédéterminé de données d'une série d'instructions comprend notamment les adresses (ADR) auxquelles ladite série d'instructions est destinée.
7. Circuit selon la revendication 3, dans lequel ledit nombre prédéterminé de données d'une série d'instructions comprend notamment les instructions (COM) formant ladite série d'instructions .
8. Circuit selon la revendication 3, dans lequel ledit nombre prédéterminé de données d'une série d'instructions comprend notair ent la durée (SIZ) nécessaire pour exécuter ladite série d'instructions .
9. Circuit selon l'une quelconque des revendications 4 à 8, dans lequel les premiers moyens comportent pour chaque zone de la mémoire un nombre prédéterminé de registres.
10. Circuit selon la revendication 9, dans lequel ledit nombre prédétermine de registres comprend des registres d'index (WRI, RDI) pour gérer l'écriture et la lecture des autres registres dudit nombre prédéterminé de registres, respectivement par les quatrièmes et deuxièmes moyens.
PCT/FR2001/002669 2000-08-25 2001-08-24 Circuit de commande d'une memoire dram WO2002017095A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP01965353A EP1311962A1 (fr) 2000-08-25 2001-08-24 Circuit de commande d'une memoire dram
JP2002521719A JP2004507817A (ja) 2000-08-25 2001-08-24 Dram制御回路
US11/446,553 US7395399B2 (en) 2000-08-25 2006-06-02 Control circuit to enable high data rate access to a DRAM with a plurality of areas

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0010943A FR2813427B1 (fr) 2000-08-25 2000-08-25 Circuit de commande d'une memoire dram
FR00/10943 2000-08-25

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US10111506 A-371-Of-International 2001-08-24
US40662703A Continuation 2000-08-25 2003-04-03

Publications (1)

Publication Number Publication Date
WO2002017095A1 true WO2002017095A1 (fr) 2002-02-28

Family

ID=8853733

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/002669 WO2002017095A1 (fr) 2000-08-25 2001-08-24 Circuit de commande d'une memoire dram

Country Status (4)

Country Link
EP (1) EP1311962A1 (fr)
JP (1) JP2004507817A (fr)
FR (1) FR2813427B1 (fr)
WO (1) WO2002017095A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1411962B1 (fr) 2001-03-15 2011-01-19 Neogenix Oncology, Inc. Traitement par anticorps monoclonal du cancer du pancreas
IT1399916B1 (it) * 2010-04-30 2013-05-09 Balluchi Dispositivo di memoria ad accesso di registro indicizzato

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
WO2000029959A1 (fr) * 1998-11-16 2000-05-25 Infineon Technologies Ag Controleur de memoire augmentant l'utilisation des bus de donnees en reorganisant les demandes de memoire

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
WO2000029959A1 (fr) * 1998-11-16 2000-05-25 Infineon Technologies Ag Controleur de memoire augmentant l'utilisation des bus de donnees en reorganisant les demandes de memoire

Also Published As

Publication number Publication date
FR2813427A1 (fr) 2002-03-01
FR2813427B1 (fr) 2002-11-29
EP1311962A1 (fr) 2003-05-21
JP2004507817A (ja) 2004-03-11

Similar Documents

Publication Publication Date Title
KR101027181B1 (ko) 메모리의 제어 방법 및 메모리 시스템
EP3259674B1 (fr) Circuit dram muni d'un processeur integre
FR2858874A1 (fr) Dispositif de commande de memoire, carte a puce et procede de commande d'une operation de lecture d'une memoire
FR2589600A1 (fr) Circuit de rafraichissement de memoire dynamique avec controle de parite
FR2884629A1 (fr) Dispositif d'amelioration de la bande passante pour des circuits munis de controleurs memoires multiples
US8069303B2 (en) Method and apparatus for controlling memory precharge operation
FR2642544A1 (fr) Systeme de traitement de donnees a programme de securite
WO2003038620A2 (fr) Procede de memorisation de donnees avec correction d'erreur
US6542416B1 (en) Methods and arrangements for conditionally enforcing CAS latencies in memory devices
EP1293984A2 (fr) Dispositif de mémoire à semi-conducteurs synchrone
EP0037252A2 (fr) Mémoire dynamique à semi-conducteurs
EP1311962A1 (fr) Circuit de commande d'une memoire dram
KR100619202B1 (ko) 자동 프리챠지 인코딩 장치 및 방법
EP3826015B1 (fr) Procédé d'écriture dans une mémoire volatile et circuit intégré correspondant
EP0733977B1 (fr) Système informatique avec mémoires hiérarchisées
EP3716086A1 (fr) Accès direct en mémoire
JP5363060B2 (ja) メモリモジュール、および、メモリ用補助モジュール
EP1416494A2 (fr) Dispositif de mémoire à semiconducteurs capable d'effectuer un traitement à grande vitesse
EP1460640A3 (fr) Architecture de mémoire adressable par son contenu augmentant la rapidité d'execution
FR2719939A1 (fr) Mémoire non volatile modifiable électriquement à interface de commande.
FR2700056A1 (fr) Procédé de programmation en champ uniforme d'une mémoire électriquement programmable et mémoire mettant en Óoeuvre le procédé.
JP2019133657A (ja) ページサイズ認識スケジューリング方法及び非一時的なコンピュータ読取可能記録媒体
FR2770661A1 (fr) Microprocesseur comprenant des moyens de concatenation de bits
US6631441B2 (en) DRAM read and write circuit
JP3746319B2 (ja) 半導体記憶装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2002 521719

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 2001965353

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001965353

Country of ref document: EP