FR2589600A1 - Circuit de rafraichissement de memoire dynamique avec controle de parite - Google Patents

Circuit de rafraichissement de memoire dynamique avec controle de parite Download PDF

Info

Publication number
FR2589600A1
FR2589600A1 FR8611563A FR8611563A FR2589600A1 FR 2589600 A1 FR2589600 A1 FR 2589600A1 FR 8611563 A FR8611563 A FR 8611563A FR 8611563 A FR8611563 A FR 8611563A FR 2589600 A1 FR2589600 A1 FR 2589600A1
Authority
FR
France
Prior art keywords
memory
data signals
data
parity
signals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR8611563A
Other languages
English (en)
Inventor
John Robert Ramsey
Zbigniew Boleslaw Styrna
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.)
Microsemi Semiconductor ULC
Original Assignee
Mitel Corp
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 Mitel Corp filed Critical Mitel Corp
Publication of FR2589600A1 publication Critical patent/FR2589600A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Abstract

LE CIRCUIT EST UTILISE EN COMBINAISON AVEC UN MICROPROCESSEUR 1 POUR RAFRAICHIR, CONTROLER ET CORRIGER DES SIGNAUX DE DONNEES EMMAGASINES DANS UNE MEMOIRE DYNAMIQUE 2. LEDIT CIRCUIT COMPORTE UN CONTROLEUR A ACCES DE MEMOIRE DIRECT 6 POUR TRANSFERER A UN PERIPHERIQUE FICTIF DES SIGNAUX DE DONNEES EMMAGASINES A DES EMPLACEMENTS SUCCESSIFS DE LA MEMOIRE 2. LES SIGNAUX DE DONNEES APPARAISSANT SUR LE BUS DE DONNEES 3, DU FAIT DU TRANSFERT, SONT APPLIQUES A UN CIRCUIT DE CONTROLE DE PARITE 9 QUI DELIVRE UN SIGNAL D'INTERRUPTION AU MICROPROCESSEUR 1 QUAND UNE ERREUR DE PARITE EST DETECTEE. LE MICROPROCESSEUR 1 EXECUTE ALORS UN PROGRAMME DE RESTAURATION PAR LEQUEL, SOUS SON CONTROLE, DES VERSIONS CORRECTES DES SIGNAUX DE DONNEES EMMAGASINEES DANS UNE MEMOIRE NON VOLATILE 12 SONT TRANSFEREES DANS LA MEMOIRE 2. LES ERREURS DE PARITE DANS LES SIGNAUX DE DONNEES EMMAGASINES DANS LA MEMOIRE DYNAMIQUE 2 SONT DONC CORRIGEES AVANT QUE CEUX-CI AIENT ETE LUS PAR LE MICROPROCESSEUR 1.

Description

1 2589600
La présente invention concerne, d'une manière générale, des circuits de mémoire d'ordinateur et, en particulier, un circuit pour rafraichir, contr8ler et corriger des signaux de données emmagasinés
dans une mémoire dynamique.
Les mémoires à accès aléatoire (RAM) sont formées de cellules de
stockage qui sont généralement des transistors bipolaires MOS ou TTL.
Une cellule de stockage formée de transistors TTL fonctionne statiquement, de sorte qu'un signal de donnée mémorisé ne peut être perdu tant que les transistors sont sous tension. D'autre part, les
cellules de stockage formées de transistors MOS fonctionnent dyna-
miquement et les mémoires à accès aléatoires qui en sont composées sont appelées des mémoires à accès aléatoire dynamiques (DRAM). Les signaux de données sont emmagasinés sur des condensateurs parasites entre les bornes de canal et de source des transistors MOS. Un signal logique de niveau haut se caractérise par une charge électrique de valeur prédéterminée dans le condensateur. La charge décroissant en raison des courants de fuite, si, au terme d'une durée prédéterminée, le signal de donnée emmagasiné n'a pas été lu (par un microprocesseur, etc.), le signal logique de niveau haut peut devenir indifférenciable d'un signal logique de niveau bas et qu'il s'ensuit une perte de données. Il a été fabriqué des circuits pour rafratchir le signal de donnée mémorisé avant que la diminution de la charge dans le condensateur devienne critique. Dans de tels circuits de rafraîchissement DRAM connus, on utilise généralement des composants NMOS comprenant des générateurs d'adresse et des compteurs internes, etc., et ils délivrent toutes les deux millisecondes une impulsion de rafraîchissement d'environ 1 microseconde qui est appliquée à chaque
cellule dans la mémoire.
Il se trouve que les composants NMOS sont chers et un peu lents et, donc, les circuits de rafraîchissement DRAM connus sont, en pratique, très complexes et conséquents, occupant des surfaces de
cartes de circuit importantes.
Pour remplacer les circuits de rafraîchissement mentionnés ci-
dessus, une technique fut mise au point, dans laquelle un micro-
processeur était interrompu environ toutes les deux millisecondes pour exécuter un sous-programme de rafraîchissement qui provoquait la lecture de 128 emplacements successifs de mémoire DRAM. Un inconvénient évident de cette technique est qu'il faut un temps considérable au microprocesseur pour rafraîchir les emplacements de mémoire, alors qu'il pourrait, autrement, servir à des fonctions plus importantes. Pour assurer l'intégrité des données, les signaux de données qui sont lus par le microprocesseur (c'est-à-dire dans la mémoire DRAM) sont ordinairement contr8lés en ce qui concerne les erreurs de parité dues aux pertes de signal sus-mentionnées provenant des courants de
fuite.
Des circuits de contr8le et de correction de parité existants sont bien connus. Cependant, il s'avère que de tels circuits sont assez chers, qu'ils occupent des surfaces de cartes de circuit importantes et, qu'en pratique, ils fonctionnent indépendamment des circuits de rafraîchissement sus-mentionnés. Par exemple, les circuits de rafraîchissement fonctionnent habituellement de façon continue et
cycliquement pour rafraîchir le contenu de mémoires DRAM (indépen-
dament du microprocesseur y lisant les données), alors que les circuits de détection et de correction d'erreur de parité sont, en principe, activés seulement pendant que le microprocesseur lit les
donnés dans la mémoire.
Selon la technique antérieure, un cycle entier de bus de micro-
-processeur était habituellement nécessaire après l'exécution de chaque instruction de lecture de mémoire du microprocesseur pour réaliser un contr8le de parité sur les données. En cas de détection d'une erreur, une remise à zéro du système avait lieu, d'o résultait une coupure catastrophique puisque les données emmagasinées dans les accumulateurs ou les registres internes du microprocesseur étaient bel et bien perdues et, si le microprocesseur commandait des connexions dans un autocommutateur privé ou un autre système de télécommunications,
celles-ci étaient perdues.
Selon la présente invention, un contrôleur à accès de mémoire direct (DMAC) est utilisé pour rafraîchir les emplacements de mémoire DRAM en. réalisant un transfert de données de la mémoire à un périphérique fictif. Le contrôleur DMAC est, de préférence, programmé pour acquérir périodiquement du microprocesseur la commande des bus de données et d'adresse, lire un emplacememnt de mémoire DRAM et le
3 2589600
délivrer à un périphérique fictif (c'est-à-dire à une adresse de périphérique définie pour laquelle il n'existe pas de périphérique correspondant). Par consequent, les cellules de mémoire associées à l'emplacement de mémoire DRAM sont rafraîchies du fait d'avoir été lues par le contrôleur DMAC. De même qu'avec le circuit de rafraîchissement DEAM connu mentionné en premier, la présente invention permet, indépendamment du microprocesseur lisant la mémoire DRM, de rafraîchir cette dernière et de surmonter, ainsi, l'inconvénient de la technique de
rafraîchissement connue mentionnée en dernier qui occupe le micro-
processeur pendant un temps non négligeable. Toutefois, contrairement au circuit connu mentionné en premier, le contrôleur DMAC est une puce semiconductrice bon marché qui nécessite, en pratique, très peu de
circuits supplémentaires et qui est très rapide.
De plus, selon la présente invention, des signaux de données apparaissant sur le bus de données du fait qu'ils ont été lus par le
contrôleur DMAC sont appliqués à un circuit de contr3le de parité.
S'il y a détection d'une erreur de parité, un signal est produit pour interrompre le microprocesseur qui exécute alors un sous-programme de restauration pour remémoriser le signal de donnSes erroné dans sa forme correcte. Ceci peut être réalisé, par exemple, en déchargeant un minidisque, etc. Comme le contrôle de parité et la restauration de données sont effectués pendant le rafraîchissement de la mémoire DRAM, à l'inverse de la technique antérieure o le contrôle d'erreur a lieu seulement pendant une instruction de lecture du microprocesseur, les erreurs de parité sont détectées et corrigées avant que le microprocesseur lise les signaux de données. Ainsi, comparé aux circuits de correction et de détection de parité connus, la fréquence des événements de remise à
zéro du système est sensiblement réduite.
Le circuit de contrôle de parité et de rafraîchissement de mémoire DRAM de la présente invention se conforme aux exigences de rapidité et de prix des composants des micro-ordinateurs modernes, et il occupe une surface de carte de circuit réduite. En fait, on a constaté qu'alors que les circuits connus de rafraîchissement de mémoire DRAM NMOS utilisent environ 25 % des cycles de bus de microprocesseur, un exemple de réalisation satisfaisant de la présente
invention n'en utilise, en pratique, que 6,4 % seulement.
D'une manière générale, l'invention consiste en un circuit pour rafraîchir, contrôler et corriger des signaux de données emmagasinés dans une mémoire dynamique, comprenant un bus de données relié à la mémoire dynamique, un contrôleur à accès de mémoire direct relié à la mémoire et au bus de données, pour lire périodiquement des signaux de données successifs, de sorte que ceux-ci apparaissent sur le bus de données, un circuit de contrôle de parité relié au bus de données, pour détecter des erreurs de parité dans les signaux de données et produire, en réponse, des signaux d'interruption, et un circuit de restauration relié au bus de données et au circuit de contrôle de narité oour recevoir les signaux d'interruption et, en réponse, produire et emmagasiner les versions correctes des signaux de données dans Ia F^oire dynamique, afin que des signaux de données successifs soient rafraîchis du fait d'avoir été lus par le contrôleur à accès de mémoire direct et que les erreurs de parité soient corrigées du fait que le circuit de restauration emmagasine les versions correctes des
signaux de données dans la mémoire.
Plus particulièrement, l'invention est un circuit pour rafraîchir, contrôler et corriger des signaux de données emmagasinés dans une mémoire dynamique, comprenant un contrôleur à accès de mémoire direct pour lire périodiquement des signaux de données successifs, un circuit de contrôle de parité relié audit contrôleur pour détecter des erreurs de parité dans les signaux de données lus
par ledit contrôleur et produire, en réponse, des signaux d'inter-
ruption, une mémoire non-volatile pour emmagasiner des versions correctes des signaux de données, et un microprocesseur relié à la mémoire nonvolatile, à la mémoire dynamique et au circuit de contrôle de parité pour recevoir les signaux d'interruption, lire les versions correctes des signaux de données dans la mémoire non-volatile et emmagasiner, en réponse, les versions correctes dans la mémoire dynamique, afin que les signaux de données emmagasinés dans la mémoire dynamique soient rafraîchis du fait d'être lus par le contrôleur à accès de mémoire direct et corrigés du fait que le microprocesseur emmagasine les versions correctes des signaux de données dans la
mémoire dynamique.
2589600
L'invention concerne également une méthode pour rafraîchir, contr8ler et corriger des signaux de données emmagasinés dans une mémoire dynamique, comprenant les phases suivantes: transférer périodiquement des signaux de données emmagasinés dans des emplacements successifs de la mémoire dynamique à un périphérique fictif, détecter des erreurs de parité dans les signaux de données transférés et emmagasiner, en réponse, des versions correctes des signaux de données dans la mémoire dynamique, afin que les signaux de données soient rafraîchis du fait d'être transférés à un périphérique fictif et corrigés du fait que les versions correctes des signaux de
données sont emmagasinés dans la mémoire dynamique.
On comprendra mieux l'invention en se référant à la description
détaillée ci-dessous et au dessin joint qui est un bloc-diagramme schématique d'un circuit de rafraîchissement, de contrôle de parité et de correction de mémoire DRAM selon un exemple de réalisation préféré
de l'invention.
Sur la Figure, un microprocesseur 1 est relié à une mémoire dynamique à accès aléatoire DRAM 2 par un bus de données 3, un bus d'adresse 4 et un bus de commande 5. En pratique, le microprocesseur l adresse, parle bus d'adresse 4, des données dans la mémoire 2. Dans la mémoire 2, les données sont lues ou emmagasinées en réponse à une séquence prédéterminée de signaux sur le bus de commande 5, d'une manière classique. Des signaux de commande spéciaux comprennent des signaux de lecture/écriture, de sélection de puce et d'adresse de
mémoire valide.
Un contrôleur à accès de mémoire direct DMAC 6 est relié aux bus 3, 4 et 5, respectivement. Les contrôleurs à accès de mémoire dynamique sont bien connus dans la technique pour effectuer des transferts de données entre des périphériques et la mémoire dans un système de microprocesseur. Cependant, selon la présente invention, le contrôleur 6 est utilisé pour rafraîchir des emplacements de la mémoire 2 en transférant des données de celle-ci à un périphérique fictif, (c'est-à-dire une adresse de périphérique sur la carte de
mémoire du microprocesseur à laquelle ne correspond pas de péri-
phérique).
*6 2589600
Un circuit d'horloge 7 produit des signaux d'horloge en réponse à la réception de signaux d'un oscillateur 8. En particulier, le circuit d'horloge 7 produit un signal d'horloge sur une sortie C1 reliée à une entrée CLK du microprocesseur 1, pour synchroniser le fonctionnement du microprocesseur d'une manière connue. Un autre signal d'horloge est produit & la sortie C2 du circuit 7 et appliqué à
une entrée de requête REQ du contrôleur 6, pour produire pério-
diquement des requêtes de transfert DMA.
En fonctionnement, le circuit est d'abord alimenté de sorte que le microprocesseur exécute un programme d'initialisation ou d'instructions de démarrage, d'une manière connue. Sous la commande du programme d'initialisation, le microprocesseur 1 initialise le contrôleur 6 en chargeant, dans des registres internes de ce dernier, une série d'instructions, des première et dernière adresses de mémoire valides DRAM et l'adresse du périphérique fictif. Les instructions chargées font fonctionner le contrôleur 6 mode dit "mode de vol de cycle en chaîne" ou, en anglais, "cycle steal chain mode". Dans ce mode de fonctionnement, le contrôleur 6 acquiert réellement ou "vole" la commande des bus d'adresse et de données 3 et 4 du microprocesseur 1 en réponse à la réception d'un signal de requête DMA du circuit d'horloge 7. Le contrôleur 6 effectue alors un transfert de données de la mémoire 2 au périphérique fictif, décrit plus en détail dans la suite. Après que les données de la dernière adresse valide de la mémoire 2 ont été transférées, le contrôleur 6 revient à la première adresse de mémoire selon le mode de fonctionnement "en chalne" sus-mentionné. En pratique, sous la commande du programme d'initialisation, le microprocesseur 1 fait également passer des données dans la mémoire 2 à partir d'une mémoire externe 12 telle qu'un minidisque ou une mémoire EPROM. La mémoire externe 12 a des entrées de données, d'adresse et de commande reliées respectivement aux bus 3, 4 et 5,
d'une manière connue.
Après le programme d'initialisation, le microprocesseur 1 exécute, en pratique, un ou plusieurs programmes d'application sous la commande d'un programme de système de fonctionnement, afin d'accéder périodiquement aux données emmagasinées dans la mémoire 2, d'une
manière connue.
7 2589600
Pendant que le microprocesseur 1 exécute le programme, le circuit d'horloge 7 produit les signaux de requite DMA sus-mentionnés au rythme d'un toutes les 16 microsecondes. Le contrôleur 6 reçoit un premier signal de requête DMA et, 'en réponse, prend la commande ou acquiert le "contrôle" des bus de données et d'adresse 3 et 4, respectivement. Le contrôleur 6 lit alors un signal de données emmagasiné à la première adresse de mémoire valide de la mémoire 2 et tente de le mémoriser dans le périphérique fictif. Le fait de lire le signal de données emmagasiné à l'emplacement de mémoire entraîne le rafraîchissement des cellules de mémoire capacitives associées. Le contrôleur 6 abandonne alors le contrBle de bus au microprocesseur 1
qui continue l'exécution du programme.
Environ 16 microsecondes plus tard, un second signal de requête DMA est délivré par le circuit d'horloge 7 et appliqué à l'entrée REQ du contrôleur 6. Le contrôleur 6 reprend le contrôle de bus et tait se rafraîchir les cellules de mémoire associées à une seconde adresse de
mémoire valide de la mémoire 2, comme on l'a expliqué ci-dessus.
Le transfert de données DMA de la mémoire 2 au périphérique fictif est répété jusqu'à ce que tous les emplacements successifs de la mémoire 2 aient été rafraîchis, Après le rafraîchissement du dernier emplacement d'adresse de mémoire valide de la mémoire 2, le contr81eur 6 revient au premier emplacement d'adresse de mémoire
valide, comme on l'a expliqué ci-dessus.
Les signaux de données apparaissant sur le bus de données 3 sont aussi appliqués aux entrées de données DATA d'un circuit de contrôle de parité 9. Le circuit de contrôle de parité 9 a des entrées de commande CTRL reliées au bus de commande 5 et une entree de bit de parité I reliée à une sortie de bit de parité PO de la mémoire 2. Une sortie de parité impaire t0 est reliée à une entrée de bit de parité P1 de la mémoire 2, et une sortie de parité paire %E est reliée à une
entrée d'interruption INT du microprocesseur 1.
Pendant l'exécution du programme d'initialisation, le circuit de contrôle de parité 9 produit un bit de parité pour chaque octet de données apparaissant sur le bus de données 3, en réponse au transfert de données de la mémoire externe 12 à la mémoire 2. Les bits de parité sont transmis par la sortie &0 et appliqués à l'entrée P1 de la
8 2589600
mémoire 2 pour y être emmagasinés. Les bits de parité arrivent dans le circuit de contrôle de parité 9,t en repartent par l'intermédiaire de fils spécifiques reliés à la ménmoire 2, et, ainsi, ils n'apparaissent
pas sur le bus de données 3.
En fonctionnement normal (c'est-à-dire pendant l'exécution d'un ou plusieurs programmes d'application suivant celle du programme d'initialisation), le circuit de contrôle de parité 9 détecte la parité d'un signal de données apparaissant sur le bus de données 3 du fait qu'il a été lu par le contrôleur 6 et le compare avec le bit de parité emmagasiné reçu de la mémoire 2. Le circuit de contrôle de parité 9 détermine donc la parité d'une combinaison du signal de données reçu et du bit de parité associé, et si aucune erreur de parité n'est détectée, il délivre un signal logique haut à sa sortie C0 et un signal logique bas A sa sortie CE. Par contre, si une erreur de parité est détectée, la sortie SE passe au niveau logique haut, produisant ainsi un signal d'interruption pour interrompre le
microprocesseur 1.
Les signaux d'interruption apparaissant à l'entrée INT du microprocesseur 1 du fait de la détection de parité paire sont masqués pendant l'exécution du programme d'initialisation, de sorte que le
microprocesseur 1 n'est pas interrompu.
L'adresse dans la mémoire 2 d'un signal de données contenant une erreur de parité apparaît sur le bus d'adresse 4 (du fait qu'il est adressé par le contrôleur 6), et elle est conservée à une entrée d'adresse ADD d'une bascule d'emplacement défaillant 10 en réponse à la réception par celleci d'un signal d'activation provenant du bus de commande 5. Une sortie de la bascule 10 est reliée au bus de données
3, pour transmettre l'adresse conservée au microprocesseur 1.
Donc, s'il y a détection d'une erreur de parité dans un signal de données apparaissant sur le bus de données 3, le circuit de contrôle de parité 9 produit une interruption du microprocesseur 1 qui, à son tour, lit l'adresse d'emplacement défaillant conservée dans
la bascule 10.
A nouveau, un programme de restauration de données est exécuté par le microprocesseur 1 pour emmagasiner une version correcte du signal de données emmagasiné dans la mémoire externe 12 (tel qu'une
9 2589600
mémoire EPROM, un minidisque ou une autre mémoire non-volatile) à l'emplacement de la mémoire 2 correspondant à l'adresse de
1' emplacement défaillant.
En pratique, comme on l'a expliqué ci-dessus, pendant l'exécution du programme de système de fonctionnement, le micro- processeur 1 lit et écrit des données dans la mémoire 2. Le circuit de contrôle de parité 9 produit un bit de parité à sa sortie ú0, du fait des données écrites dans la mémoire 2. Le bit de parité produit est
chargé dans la mémoire 2 par l'intermédiaire de son entrée PI.
En fonctionnement normal, l'entrée d'interruption INT du microprocesseur 1 n'est pas masquée, les données lues dans la mémoire 2 sont contr81ées pour les erreurs de parité, comme on l'a expliqué ci-dessus à propos du rafraîchissement de DMA, et le microprocesseur est interrompu s'il y a détection d'une erreur de parité. Une version correcte du signal de données est alors chargé dans la mémoire 2
suivant le programme de restauration, comme on l'a expliqué ci-dessus.
Dans un prototype satisfaisant de l'invention, le micro-
processeur est un modèle 68 000 de la marque MOTOROLA, la mémoire 2 a une contenance de 2 mégaoctects, avec des puces dynamiques RAM de 64 K-octets arrangées par deux en 16 blocs de 128 K-octets, le contrôleur 6 est un modèle MOTOROLA 68450 et le circuit de contrôle de parité 6 est un générateur/contr8leur de parité pair-impair modèle LS20 de Texas Instruments. L'oscillateur 8 est un oscillateur à cristal dont la fréquence est de 16,384 MHz environ et le circuit d'horloge 7 produit un signal d'horloge d'environ 8 MHz à sa sortie C1 et un signal de requête DMA d'environ 64 KHz à sa sortie C2 pour
requérir du contrôleur 6 des transferts DMA toutes les 16 micro-
secondes. Dans le prototype satisfaisant, le bus de données a une largeur de 16 bits, de sorte qu'un bit de parité est calculé pour chaque octet de huit bits. Ainsi, la sortie L0 du circuit de contrôle de parité 9 produit 2 bits de parité pour le stockage dans la mémoire 2, qui dans l'exemple de réalisation satisfaisant, contient des signaux de données de 18 bits compris de deux mots de données de 8 bits et de deux bits
de parité correspondants.
2589600
En pratique, les mémoires dynamiques RAM telles que la mémoire 2 comprennent des circuits de décodage d'adresse pour décoder les adresse qui y sont demandées par le bus d'adresse 4 et produire des
signaux de sélection de cellule de mémoire en rangée et en colonne.
Dans l'exemple de réalisation satisfaisant, une carte de mémoire du microprocesseur est arrangée pour produire deux représentations de la mémoire 2; l'une à l'espace d'adresses de 000000 à 1FFFFF et l'autre à l'espace de 800000 à 9FFFFF en hexadécimal. Les adresses sur le bus d'adresse 4 sont décodées en utilisant des réseaux logiques programmables de sorte que les deux signaux de sélection en rangée et en colonne soient complètement décodés en réponse à la réception d'une adresse dans la première représentation de la mémoire 2, et que chacun des seize blocs soit sélectionné en rangée, un bloc seulement étant sélectionné en colonne, en réponse à la réception d'une adresse dans la seconde représentation de la mémoire 2. Ainsi, un bloc seul applique un signal de données au but de données 3, alors que tous les blocs sont rafraîchis en réponse à la réception du signal de sélection
en rangée.
Le microprocesseur utilise la première représentation pour écrire et lire des données dans la mémoire 2, alors que le contrôleur 6 utilise la seconde représentation pour effectuer le rafraîchissement. Selon le prototype satisfaisant, le contrôleur 6 régénère 128 emplacements (rangées de cellules de mémoire choisies) environ une fois toutes les deux millisecondes. Ainsi, toutes les 16
microsecondes environ, un emplacement est rafraîchi.
En bref, la présente invention utilise un contrôleur à accès de mémoire direct pour effectuer du rafraîchissement de mémoire DRAM sans nécessiter de circuits de rafraîchissement complexes et coûteux. Les données apparaissant sur le bus de données, du fait d'avoir été lues par le contrôleur 6, sont appliquées à un circuit de contr8le de parité pour la détection et la correction des erreurs de parité. Donc, les erreurs de parité se produisant dans la mémoire 2 sont corrigées avant d'être lues par le microprocesseur, et la frécuence des remises à zéro du système est considérablement réduite, comparé aux circuits
de contr8le et de correction de parité connus.
il 2589600 Selon le prototype satisfaisant, le contrôleur 6 comprend aussi trois canaux DMA supplémentaires pour effectuer des transferts de données de mémoire à mémoire, de périphérique à mémoire et de périphérique à périphérique. Oi réalise ainsi une économie considérable de cemposants en utilisant le contrôleur à accès de
mémoire direct à différentes fonctions.
Des spécialistes de la technique ayant pris connaissance de l'invention peuvent alors imaginer d'autres exemples de réalisation ou
variantes selon les principes de l'invention décrits ci-dessus.
Par exemple, des circuits supplémentaires de correction et de détection d'erreur peuvent être utilisés plutôt que de faire exécuter le programme de restauration sus-mentionné, de façon à réduire encore le temps que le microprocesseur passe à la détection et à la
correction d'erreur.
Le circuit d'horloge 7 peut être réglé pour produire une requête DMA une fois toutes les deux millisecondes, et le contrôleur 6 peut être prévu pour effectuer une salve de 128 transferts de données d'emplacements de mémoires contigus de la mémoire 2 au périphérique fictif, en réponse à la réception d'un signal de requête DMA. Ainsi, si une pluralité d'emplacements de mémoire successifs de la mémoire 2 contiennent des données erronées, le microprocesseur est relevé de la tache d'exécuter des programmes de restauration successifs qui
demandent du temps.
De plus, des circuits spécifiques peuvent être utilisés pour exécuter le programme de restauration sus-mentionné à la place du microprocesseur 1. Ou, dans une autre variante, le contr leur 6 peut être utilisé pour exécuter le programme de restauration, de façon à
occuper le microprocesseur moins longtemps.
De tels exemples de réalisation ou variantes de l'invention sont considérés comme faisant partie du champ de la présente invention,
définis dans les revendications jointes.
12 2589600

Claims (6)

REVENDICATIONS
1) Circuit pour rafraîchir, contr8ler et corriger des signaux de données emmagasinés dans une mémoire dynamique (2), caractérisé en ce qu'il comprend: (a) un bus de données (3) relié à ladite mémoire dynamique (2), (b) un contrôleur à accès de mémoire direct (6) relié à ladite mémoire (2) et audit bus de données (3) pour lire périodiquement des signaux de données successifs de sorte que ceux-ci apparaissent sur ledit bus de données (3), (c) un circuit de contr8le de parité (9) relié audit bus de données (3) pour détecter des erreurs de parité dans lesdits signaux de données et engendrer, en réponse, des signaux d'interruption, et (d) un moyen de restauration relié audit bus de données (3) et audit circuit de contr8le de parité (9) pour recevoir lesdits signaux d'interruption et, en réponse, produire et emmagasiner des versions correctes desdits signaux de données dans ladite mémoire dynamique (2), afin que lesdits signaux de données successifs soient rafraichis du fait d'être lus par le contrôleur à accès de mémoire direct (6) et que les erreurs de parité soient corrigées du fait que ledit moyen de restauration emmagasine des versions correctes desdits signaux de
données dans ladite mémoire (2).
2) Circuit selon la revendication 1, caractérisé en ce que ledit moyen de restauration consiste en une mémoire non-volatile (12) contenant lesdites versions correctes desdits signaux de données et un moyen pour les y retrouver et les emmagasiner dans ladite mémoire
dynamique (2) en réponse à la réception desdits signaux d'inter-
ruption. 3) Circuit selon la-revendication 2, caractérisé en ce que ledit moyen pour retrouver et emmagasiner lesdites versions correctes
desdits signaux de données es- un microprocesseur (1).
4) Circuit selon l'une des revendications 1 à 3, caractérisé en
ce qu'il comprend encore un circuit d'horloge (7) qui délivre des signaux de requête au contrôleur à accès de mémoire direct (6) pour lui faire lire périodiquement lesdits signaux de données emmagasinés
dans ladite mémoire (2).
13 2589600
) Circuit selon la revendication 2 ou 3, caractérisé en ce que
ladite mémoire non-volatile (12) est un minidisque.
6) Circuit selon la revendication 2 ou 3, caractérisé en ce que ladite mémoire non-volatile (12) est une mémoire à lecture seule effaçable. 7) Circuit pour rafraîchir, contrôler et corriger des signaux de données emmagasinés dans une mémoire dynamique, caractérisé en ce
qu'il comprend: -
(a) un contrôleur à accès de mémoire direct (6) pour lire périodiquement des signaux de données successifs, (b) un circuit de contrôle de parité (9) relié audit contrôleur à accès de mémoire direct (6) pour détecter les erreurs de parité dans lesdits signaux de données lus par ledit contrôleur (6) et produire, en réponse, des signaux d'interruption, (c) une mémoire non-volatile (12) pour emmagasiner des versions correctes desdits signaux de données, et (d) un microprocesseur (1) relié à ladite mémoire non-volatile (12), à ladite mémoire dynamique (2) et audit circuit de contrôle de parité (9) pour recevoir lesdits signaux d'interruption, lire lesdites versions correctes desdits signaux de données dans ladite mémoire non-volatile (12) et les emmagasiner, en réponse, dans ladite mémoire
dynamique (2).
8) Circuit selon la revendication 7, caractérisé en ce qu'il comprend encore un circuit d'horloge (7) pour engendrer un signal d'horloge et le transmettre audit contrôleur à accès de mémoire direct
(6) de façon à en synchroniser le fonctionnement.
9) Méthode pour rafraîchir, contrôler et corriger des signaux de données emmagasinés dans une mémoire dynamique (2), caractérisée en ce qu'elle comprend les phases suivantes: (a) transférer périodiquement des signaux de données emmagasinés
à des emplacements successifs de la mémoire dynamique (2) à un péri-
phérique fictif, et (b) détecter des erreurs de parité dans lesdits signaux de données transférés et emmagasiner, en réponse, des versions correctes desdits signaux de données dans la mémoire dynamique (2),
14 2589600
afin que lesdits signaux de données soient rafraîchis en réponse au fait d'être transférés audit périphérique fictif et corrigés en réponse au fait que lesdites versions correctes des signaux de données
soient emmagasinées dans ladite mémoire dynamique (2).
FR8611563A 1985-08-15 1986-08-07 Circuit de rafraichissement de memoire dynamique avec controle de parite Withdrawn FR2589600A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA000488829A CA1240066A (fr) 1985-08-15 1985-08-15 Circuit de regeneration et de controle de parite pour memoire dynamique

Publications (1)

Publication Number Publication Date
FR2589600A1 true FR2589600A1 (fr) 1987-05-07

Family

ID=4131191

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8611563A Withdrawn FR2589600A1 (fr) 1985-08-15 1986-08-07 Circuit de rafraichissement de memoire dynamique avec controle de parite

Country Status (8)

Country Link
US (1) US4682328A (fr)
JP (1) JPS6242396A (fr)
CN (1) CN86100445A (fr)
CA (1) CA1240066A (fr)
DE (1) DE3620858A1 (fr)
FR (1) FR2589600A1 (fr)
GB (1) GB2179183B (fr)
IT (1) IT1188283B (fr)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4881205A (en) * 1987-04-21 1989-11-14 Casio Computer Co., Ltd. Compact electronic apparatus with a refresh unit for a dynamic type memory
JPH0831074B2 (ja) * 1987-11-25 1996-03-27 株式会社日立製作所 チャネル制御方式
AU628971B2 (en) * 1989-05-22 1992-09-24 Tandem Computers Incorporated Sequential parity correction
CA2021834C (fr) * 1989-10-06 1993-12-21 Louis B. Capps, Jr. Indicateur d'erreur de parite pour bloc de memoire d'ordinateur personnel
JP2960752B2 (ja) * 1990-06-07 1999-10-12 シャープ株式会社 半導体記憶装置
US5588112A (en) * 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
US5778167A (en) * 1994-06-14 1998-07-07 Emc Corporation System and method for reassigning a storage location for reconstructed data on a persistent medium storage system
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6301562B1 (en) 1999-04-27 2001-10-09 New Transducers Limited Speech recognition using both time encoding and HMM in parallel
US6993705B1 (en) * 2000-12-21 2006-01-31 Emc Corporation Cyclic redundancy check (CRC) parity check system and method
WO2002069152A1 (fr) * 2001-02-24 2002-09-06 Blumrich Matthias A Gestion de coherence par fenetres d'ecriture/lecture
US6760881B2 (en) 2001-10-16 2004-07-06 International Business Machines Corporation Method for combining refresh operation with parity validation in a DRAM-based content addressable memory (CAM)
DE10152235B4 (de) * 2001-10-20 2015-01-08 Robert Bosch Gmbh Verfahren zum Erkennen von Fehlern bei der Datenübertragung innerhalb eines CAN-Controllers und ein CAN-Controller zur Durchführung dieses Verfahrens
US7228469B2 (en) * 2003-01-02 2007-06-05 Fujitsu Limited Portable information device, method for recovering data in portable information device, and computer product
US7107390B2 (en) * 2003-10-08 2006-09-12 Micron Technology, Inc. Parity-scanning and refresh in dynamic memory devices
CN100351802C (zh) * 2005-03-02 2007-11-28 华为技术有限公司 获取硬件信息的方法及系统
DE102005040917A1 (de) * 2005-08-30 2007-03-08 Robert Bosch Gmbh Datenverarbeitungssystem und Betriebsverfahren dafür
US9270976B2 (en) * 2005-11-02 2016-02-23 Exelis Inc. Multi-user stereoscopic 3-D panoramic vision system and method
TWI302311B (en) * 2006-06-09 2008-10-21 Innolux Display Corp Dynamic random access memory
US20160239441A1 (en) * 2015-02-13 2016-08-18 Qualcomm Incorporated Systems and methods for providing kernel scheduling of volatile memory maintenance events
WO2016157505A1 (fr) * 2015-04-02 2016-10-06 三菱電機株式会社 Dmac avec fonction de vérification de mémoire
IT201700000509A1 (it) * 2017-01-03 2018-07-03 Gabriele Ferrandino Cronografo

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5324741A (en) * 1976-08-20 1978-03-07 Toshiba Corp Memory controller
US4183096A (en) * 1978-05-25 1980-01-08 Bell Telephone Laboratories, Incorporated Self checking dynamic memory system
JPS55105897A (en) * 1979-01-31 1980-08-13 Hitachi Koki Co Ltd Memory device
JPS5698780A (en) * 1979-12-29 1981-08-08 Nec Corp Semiconductor memory device
US4380812A (en) * 1980-04-25 1983-04-19 Data General Corporation Refresh and error detection and correction technique for a data processing system
GB2080586B (en) * 1980-07-25 1984-03-07 Honeywell Inf Systems Dynamic memory system with error correction
US4493081A (en) * 1981-06-26 1985-01-08 Computer Automation, Inc. Dynamic memory with error correction on refresh
US4556952A (en) * 1981-08-12 1985-12-03 International Business Machines Corporation Refresh circuit for dynamic memory of a data processor employing a direct memory access controller
US4542454A (en) * 1983-03-30 1985-09-17 Advanced Micro Devices, Inc. Apparatus for controlling access to a memory
DE3332601A1 (de) * 1983-09-09 1985-03-28 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zum registrieren von adressen von einen fehlerhaften speicherinhalt aufweisenden speicherzellen

Also Published As

Publication number Publication date
DE3620858C2 (fr) 1990-11-08
GB8602171D0 (en) 1986-03-05
IT8619126A0 (it) 1986-01-21
GB2179183B (en) 1990-01-04
CN86100445A (zh) 1987-02-11
IT1188283B (it) 1988-01-07
CA1240066A (fr) 1988-08-02
US4682328A (en) 1987-07-21
GB2179183A (en) 1987-02-25
JPS6242396A (ja) 1987-02-24
DE3620858A1 (de) 1987-02-26

Similar Documents

Publication Publication Date Title
FR2589600A1 (fr) Circuit de rafraichissement de memoire dynamique avec controle de parite
EP0138964B1 (fr) Dispositif de commande de l'acces a une memoire
CN101960532B (zh) 用于节省存储器自刷新功率的系统、方法和装置
US7900120B2 (en) Memory system and method using ECC with flag bit to identify modified data
EP0563082B1 (fr) Rafraichissement synchrone d'une memoire ram dynamique
US5875153A (en) Internal/external clock option for built-in self test
US10585754B2 (en) Memory security protocol
US4939695A (en) Virtual type static semiconductor memory device including refresh detector circuitry
JPS61273649A (ja) コンピユ−タのメモリ管理システム
FR3032814A1 (fr)
JPS6213758B2 (fr)
EP0686981B1 (fr) Procédé de test de grands réseaux de mémoire pendant l'initialisation de système
EP1573541A2 (fr) Procede de memorisation de donnees avec correction d'erreur
US5915080A (en) Reprogramming device of a flash memory
KR100619202B1 (ko) 자동 프리챠지 인코딩 장치 및 방법
JPH03138742A (ja) メモリシステム
US5640361A (en) Memory architecture
EP1540658A1 (fr) Rafraichissement d'une memoire a points d'acces multiples dans les circuits integres
CA1306813C (fr) Dispositif ameliore de commande et de regeneration pour memoire
US6631441B2 (en) DRAM read and write circuit
US6400640B2 (en) Method for memory addressing
JPH04337857A (ja) マイクロプロセッサ装置
KR100327711B1 (ko) Dram
KR100262680B1 (ko) 시스템 신호를 한 어드레스 구성으로부터 다른 어드레스 구성으로 변환하기 위한 기술
EP1311962A1 (fr) Circuit de commande d'une memoire dram

Legal Events

Date Code Title Description
ST Notification of lapse