FR2578347A1 - Procede et appareil d'essai fonctionnels rapides de memoires a acces direct - Google Patents

Procede et appareil d'essai fonctionnels rapides de memoires a acces direct Download PDF

Info

Publication number
FR2578347A1
FR2578347A1 FR8517408A FR8517408A FR2578347A1 FR 2578347 A1 FR2578347 A1 FR 2578347A1 FR 8517408 A FR8517408 A FR 8517408A FR 8517408 A FR8517408 A FR 8517408A FR 2578347 A1 FR2578347 A1 FR 2578347A1
Authority
FR
France
Prior art keywords
sequence
cells
memory
contents
cell
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
FR8517408A
Other languages
English (en)
Other versions
FR2578347B1 (fr
Inventor
David Merrill Jacobson
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.)
Fluke Corp
Original Assignee
John Fluke Manufacturing Co Inc
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 John Fluke Manufacturing Co Inc filed Critical John Fluke Manufacturing Co Inc
Publication of FR2578347A1 publication Critical patent/FR2578347A1/fr
Application granted granted Critical
Publication of FR2578347B1 publication Critical patent/FR2578347B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Tests Of Electronic Circuits (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

L'INVENTION CONCERNE UN PROCEDE ET UN APPAREIL DE CONTROLE FONCTIONNEL RAPIDE DE MEMOIRES A ACCES DIRECT. DES BITS ALEATOIRES SONT ECRITS SUCCESSIVEMENT 22, 28 DANS LES CELLULES DE LA MEMOIRE SUIVANT UNE PREMIERE SEQUENCE D'ADRESSES 30, 36, PUIS LES CONTENUS SONT LUS ET COMPLEMENTES SUIVANT UNE SECONDE SEQUENCE ET SONT LUS A NOUVEAU SUIVANT UNE TROISIEME SEQUENCE OPPOSEE A LA SECONDE. LES CONTENUS LUS SONT COMPARES 20 AVEC LES CONTENUS ATTENDUS, ET EN REPONSE, LES DERANGEMENTS SONT IDENTIFIES 34. L'INVENTION S'APPLIQUE NOTAMMENT AU CONTROLE DES MEMOIRES A ACCES DIRECT EN CIRCUITS INTEGRES.

Description

La présente invention se rapporte a'une façon générale aux essais de
fonctionnement d'ensembles de mémoires à accès direct, et concerne plus particulièrement un procédé et un appareil probabiliste destinés à détecter des dérangements dans des ensembles de mémoires en utilisant un algorithme d'essai fonctionnel rapide ayant
un degré élevé de fiabilité.
Les développements récents dans la technologie des mémoires à semiconducteurs ont augmenté substantiellement l'utilisation des mémoires à accès direct à semi-conducteurs (RAM) qui sont généralement des dispositifs d'intégration poussée (LSI) mettant
en oeuvre des techniques bipolaires ou à métal-oxyde-
semi-conducteurs (MOS). Un ensemble de RAM 10 représenté schématiquement sur la figure 1 comporte essentiellement un certain nombre de mémoires 12, des décodeurs d'adresses 14 et un tampon de données 16 connecté à des lignes omnibus 17 et 19 de données et d'adresses. Chaque mémoire ou pastille 12 contient un certain nombre de cellules de mémoires organisées en mots et susceptibles d'être écrites ainsi que d'être lues. Des signaux de lecture/écriture (R/W) sont appliqués aux RAM 12 par
une ligne omnibus de commande 21.
Des dérangements physiques qui peuvent apparaître dans toute partie d'une pastille de mémoire dépendent de facteurs tels que la densité des composants,
l'équipement des circuits et les procédés de fabrication.
Les procédures nécessaires pour détecter ces dérangements sont classés en trois catégories, les essais paramétriques en courant continu, les essais paramétriques en courant
alternatif et les essais de fonctionnement.
Dans les essais paramétriques en courant continu, des paramètres en courant continu de la pastille sont contrôlés quant à leurs niveaux de sortie inacceptables, leur forte consommation d'énergie, leur capacité pyramidale, leurs marges de bruit, les temps de montée et dedescente des signaux logiques et autres facteurs. Les essais paramétriques en courant alternatif, ou essais dynamiques, mesurent des paramètres en courant alternatif comme le temps d'accès à la mémoire, le temps de mise en place et le temps de maintien pour détecter tout mauvais fonctionnement. Des exemples de mauvais fonctionnement qui peuvent être détectés par des essais en courant alternatif comprennent la "lente récupération d'écriture" dans. laquelle la mémoire ne produit pas l'information correcte au temps d'accès spécifié quand chaque cycle de lecture est précédé par un cycle d'écriture, et le "manque de rémanence" lorsque la mémoire perd des informations en moins que le temps de maintien spécifié. Les essais de fonctionnement détectent des fautes - permanentes qui entrainent que la mémoire fonctionne de façon incorrecte. En général, une RAM à lecture/écriture peut être définie comme fonctionnant correctement si la valeur lue dans une cellule correspond à la valeur la plus récemment écrite dans la cellule, et ne dépend pas de la valeur écrite dans les autres
cellules ou de leur contenu.
Un essai de fonctionnement qui couvrirait toutes les fautes possibles est impraticable car la complexité d'un tel essai serait de l'ordre de 2n, o n est le nombre des cellules de la mémoire. Il en est ainsi car chaque cellule doit être contrôlée pendant un cycle de mesure pour tous les états possibles des autres cellules. Ainsi, pour contrôler une RAM de 1 kilobit, et en supposant un temps d'accès à une cellule de 500 nanosecondes, l'essai nécessiterait environ 10293 secondes. Par conséquent, pour développer une procédure d'essai pouvant être mise en pratique, les essais ne doivent pas concerner tous les dérangements possibles, mais seulement les sous-ensembles de dérangements qui risquent le plus d'apparaître. Cela est connu comme un établissement de modèle de faute. Le modèle sur lequel l'essai selon l'invention est basée ne fait que très peu de suppositions concernant l'équipement des pastilles sous contrôle, ou même concernant les lignes d'adresses qui sélectionnent des pastilles et qui sélectionnent des bits dans des pastilles. Le modèle est basé sur une hiérarchie des mémoires, commençant au niveau le plus bas, avec des cellules dans une pastille. Le niveau suivant est celui des pastilles en elle-même, suivi par une carte de pastilles. Le niveau le plus élevé est l'ensemble complet contrôlé. Chaque niveau de la hiérarchie est associé' avec un sous ensemble de bits d'adresses qui sélectionne parmi les composants constituants. Les niveaux de la hiérarchie sont organisés en rangées et en colonnes qui sont commandées chacune par des bits d'adresses séparés. Le modèle comprend des ensembles de mémoires, organisés en mots. Aux niveaux les plus élevés de la hiérarchie, il est courant qu'un mot entier réside dans un composant, c'est-à-dire qu'une carte contient généralement des mots entiers. Par exemple, un ensemble avec des mots à 16 bits comprenant une ou plusieurs cartes avec un nombre de 16 k x 1 pastilles contient tous les bits sur chaque carte, mais une pastille séparée pour chaque bit du mot. Par contre, un ensemble pourrait être réalisé à partir de 2K x 8 pastilles, avec 8 bits
de données différents sur chaque pastille.
Le modèle comprend les dérangements suivants: 1. Des cellules de RAM bloquées. Cela se produit quand une cellule est toujours à "1" ou à "0". Dans un type, une cellule peut se trouver sous un certain état de mise sous tension et peut être lue, mais, une fois passée dans l'état opposé, elle ne peut plus être changée. Dans un autre type, connu comme faute de transition, la cellule semble bloquée par rapport aux opérations d'écriture qui lui sont adressées, mais peut encore être changée d'état sous l'effet d'un dérangement
de couplage apparaissant simultanément.
2. Bits d'adresses bloqués. Ce dérangement couvre deux ensembles d'adresses. Si le dérangement se trouve à un niveau de la hiérarchie dans lequel chaque composant contient un mot entier, tous les bits du mot
sont concernés.
3. Décodeur défectueux. Dans ce cas, un décodeur de rangée ou un décodeur de rangement ne peut sélectionner lorsqu'il le devrait ou sélectionne lorsqu'il ne le devrait pas. Le premier cas entraine, dans une lecture, le retour des "0" ou des "1" en fonction de la conception
de la mémoire, tandis que les écritures sont inefficaces.
Une sélection mutiple entraine des écritures dans les cellules de mémoires concernées. Aux niveaux supérieurs à ceux de la pastille, une sélection multiple pendant une lecture produit une combinaison ET ou OU non destructive de plusieurs cellules en fonction de la conception de la mémoire. Cela est également vrai pour une sélection de colonnes multiples au niveau de la pastille en fonction de la conception de la pastille de mémoire particulière. Si des rangées multiples dans une pastille sont sélectionnées et que les cellules concernées ne contiennent pas toutes la même valeur, une lecture retourne une valeur indéterminée et les cellules concernées sont placées à cette valeur. Ce dérangement entraine également que des données soient
détruites pendant les cycles de régénération.
4. Bit de registre de données bloqué. Ce dérangement entraine que le même bit de tous les mots dans le composant concerné de l'ensemble de mémoires
semble bloqué.
5. Bits de registre de données sensibles aux courts-circuits ou à une configuration. Dans ce cas, il est impossible d'écrire des mots avec une configuration particulière dans certains ensembles de bits de données et concerne tous les composants subordonnés dans la
hiérarchie de la-mémoire.
6. Dérangements de couplages statiques. Dans ce type de dérangement, deux cellules sont couplées ensemble de manière qu'un ou plusieurs des quatre états possibles des cellules soient prohibés. Un cas spécial est le "pseudonyme" dans lequel les états 01 et 10 sont prohibés. En outre, une écriture dans une cellule suit toujours, affectant également d'autres cellules. Un pseudonyme inversé est toujours possible, dans lequel les états prohibés sont 00 et 01. Dans une mémoire statique, dans laquelle les cellules sont constituées par des bistables, cela peut résulter d'un couplage entre le côté vrai d'un bistable et le côté faux d'un bistable voisin. Les dérangements de couplage doivent
se trouver dans des cellules de la même pastille.
7. Dérangements de couplage dynamique. Dans ce cas, la mise en place d'une cellule peut changer, soit la mise à "1" ou la mise à "0" de certaines autres
cellules. Cela n'est pas nécessairement symétrique.
8. Dérangements sensibles à une configuration.
Ce type de dérangements rend impossible l'écriture d'une certaine configuration dans un groupe de cellules
voisines.
9. Courts-circuits entre adresses et données.
Ce type de dérangements apparaït comme des bits de données bloqués quand la ligne d'adresses surmonte la ligne de données ou comme un couplage dynamique avec certaines autres adresses lorsque la ligne de données surmonte
la ligne d'adresses.
10. Courts-circuits entre des lignes d'adresses ou de données et la ligne de lecture/écriture. Dans ce cas, si des données ou des adresses sont forcées à l'état faux, il apparait un bit d'adresses bloqué ou un bit de registres de données bloqué. Si la ligne de lecture/écriture est forcée à l'écriture lorsqu'une lecture est demandée, la mémoire ne retourne pas une valeur et la valeur lue est une certaine valeur fixe (généralement tous les "1" ou tous les "0" en fonction
de la réalisation de l'ensemble de mémoires.
Dans un essai de Galpat, dans un fond de "0", la première cellule (cellule C) est complémentée, puis elle est lue alternativement avec chaque autre cellule de la mémoire. La séquence est poursuivie avec chaque cellule de mémoire provenant éventuellement à la cellule d'essai. L'appareil exécute ensuite la même séquence en utilisant des données complémentées. Le temps d'exécution de l'essai de Galpat est proportionnel au carré du nombre des cellules, mais ne détecte pas de
nombreuses fautes.
Un essai de marche est un essai qui passe successivement par un ensemble d'adresses en effectuant la même chose à chaque adresse. Dans un type d'essai de marche standard, après l'écriture d'un fond de "0" dans la mémoire, l'appareil lit les données à la première adresse et y écrit un "1". La même procédure en deux phases de lecture/écriture se poursuit à chaque cellule suivante jusqu'à ce que l'appareil atteigne la fin de la mémoire, chaque cellule est ensuite contrôlée et ramenée à "0" dans l'ordre inverse jusqu'à ce que l'ensemble revienne à la première adresse. Enfin, l'essai est répété en utilisant des données complémentées. Dans un autre type d'essai de marche, plutôt que d'écrire le même bit dans toutes les cellules, une configuration
7 2578347
fixée de bits obtenue en appliquant une fonction arbitraire à l'adresse est écrite successivement dans
les cellules.
Un essai de marche d'un type ou d'un autre n'effectue pas un effet exhaustif des fautes de couplage, y compris de couplage asymétrique et inversé dans une mémoire à 1 x n qui est supposée ne contenir aucune faute de transition, de faute de blocage ou de faute de décodage d'accès multiples, mais nécessite au moins 14n opérations. Voir Suk et Reddy, IEEE Transactions on Computers, Vol. C-30, n 12 décembre 1981, pages
982 à 985.
Les dérangements de décodeurs se manifestent comme des fautes de couplage entre des cellules correspondantes dans les rangées concernées. Un essai de marche standard de tout ordre, utilisant la même valeur à toutes les adresses, ne détecte pas toutes les fautes de catégories données sur la rangée affectée
s'il ne détecte pas certaines de ces catégories.
L'utilisation d'une séquence fixe peut améliorer ces algorithmes en augmentant la probabilité que des cellules correspondantes soient contrôlées dans toutes les combinaisons possibles. Par exemple, dans un essai de court-circuit de RAM à séquence fixe, utilisé dans l'appareillage de série 9000 fabriqué par John Fluke Manufacturing Co., un balayage est effectué de l'écriture
en mémoire d'une valeur pour chaque position de mots.
Dans un second balayage, la valeur est comparée avec une valeur attendue. La valeur écrite à chaque position est obtenue en repliant l'adresse en un mot qui a la largeur de la ligne omnibus de données, et en complémentant et en faisant tourner le mot replié si l'adresse est paire. Les bits du mot résultant dépendent à peu près également de chaque bit de l'adresse, de sorte que l'essai convient pour détecter des pseudonymes causés par un court-circuit sur une ligne d'adresses aboutissant au décodeur et concernant certains bits de données. Néanmoins, l'ensemble des combinaisons utilisées est fixé par la séquence. Bien qu'il puisse exister une séquence qui trouve des dérangements des décodeurs pour une configuration particulière de mémoires, il est- possible de construire une configuration qui
rend inefficace une séquence donnée.
Il sera posé que TUk désigne l'opération de déclenchement d'une position de mémoire kfois, commençant par une transition croissante (0 à 1) et que TDk désigne la même chose en commençant par une transition décroissante; un T qui n'est pas suivi par un U ou un D désigne une première transition qui peut être croissante ou décroissante. Suk et Reddy montrent qu'un essai de ce genre doit contenir ce qui suit. Montée (en adresses) RTUk1 (kl>2) montée RTDk2(k2>2), descente RTUk3(k3>2), descente RTDk4(k4>2). En outre, kl>2 ou k2>2 ou une autre séquence de la forme montante RTk5(k5 pair) doit apparaître. D'une façon similaire k3>2 ou k4>2 ou une séquence de la forme descendante RTk6(k6
pair) soit apparaître.
Suk et Reddy proposent un essai 14N, appelé essai A qui trouve tous les dérangements de blocage, les dérangements de transition et les dérangements de décodage à accès multiples ou tous les dérangements de couplage. Cela suppose que la mémoire soit initialisée à tous les "0" et contienne les séquences suivantes: Montée RWcWc, montée RWcWc, descente RWcWCWc, descente RWcWc. Cependant, un essai de marche d'ordre inférieur à 14n ne détecte pas toutes les fautes de couplage isolées. - Suk et Reddy proposent un essai 16N, appelé essai B qui trouve toutes les combinaisons de dérangements de blocage, les dérangements de transition et les dérangements de couplage si aucun dérangement de décodage à accès multiple n'est présent. L'essai B comprend les séquences suivantes: montée RWcRWcRWc, montée RWcWC, descente RWcWcWc, descente RWcWc. Cet essai précédé par une passe pour initialiser la mémoire à "0" trouve probablement toutes les combinaisons de dérangements de blocage, des dérangements de fautes, des dérangements de couplage et des dérangements de décodeurs à accès multiples. Un essai 30N, développée par Nair, Thatte et Abraham contient les séquences suivantes, o WO et W1 indiquent une écriture O et 1 respectivement: montée WO, montée RW1, descente R, montée RWO, descente R, descente RW1, montée R, descente RWO, montée R, montée RWlWO, descente R, descente RWlWO, montée R, montée W1, montée RWOW1, descente R, descente RWOW1, montée R. Les essais ci-dessus ainsi que d'autres types sont résumés dans Abadair and Reghbati, Functional Testing of Semiconductor Random Access Memories, Computing
Surveys, vol. 15, n 3, septembre 1983, pages 175 à 198.
Chacun des essais précités, ainsi que d'autres qui sont connus, nécessitent un temps d'essai qui est d'une longueur impraticable ou qui manque de sécurité car il tend à négliger des fautes ou certaines classes
de fautes.
Un objet essentiel de l'invention est donc de proposer un essai fonctionnel de mémoires à accès direct en un temps aussi court que possible tout en
identifiant la plupart des dérangements courants, c'est-
à-dire les cellules de données bloquées, les décodeurs défectueux, les registres d'adresses ou de données défectueux et les dérangements entre des lignes d'adresses
et de données.
Un autre objet de l'invention est de proposer un procédé et un appareil pour contrôler des dérangements dans une mémoire à accès direct avec une haute probabilité d'identification des dérangements de couplage et des dérangements de décodeurs, qui affectent tous un certain nombre d'adresses différentes. Un autre objet encore de l'invention est de proposer un procédé et un appareil destinés à augmenter au maximum la probabilité d'identifier des dérangements en mémoire en utilisant un algorithme d'essai de mémoire
qui nécessite un temps d'essai aussi court que possible.
Un procédé de contrôle des dérangements dans des ensembles de mémoires à accès direct consiste à écrire des bits aléatoires successivement dans toutes les cellules de la matrice, à lire les bits et en réponse, à identifier les dérangements en mémoire. Tandis que de nombreux dérangements, comme les dérangements de décodeurs, affectent un grand nombre de paires de cellules, au minimum le nombre des cellules dans une rangée ou une colonne, et tandis que la probabilité à l'écriture de données aléatoires dans toutes les cellules, de ne pas écrire une combinaison de bits qui révèle un dérangement à une seule paire de cellules est au plus 0,75, la probabilité de ne pas détecter le dérangement de toutes les paires de cellules affectées est au plus 0,75k, o k est le nombre des paires de cellules concernées. Ainsi, si une colonne contient 32 cellules par exemple, la probabilité de ne pas trouver un dérangement apparaissant comme un ensemble de dérangements de couplage dynamique et de ne pas indiquer
une erreur est donc 0,7532, soit 0,0001004.
Selon un autre aspect, le procédé selon l'invention consiste à écrire des bits aléatoires, puis leurs compléments successivement dans les cellules dans une séquence d'adresses de cellules. Le contenu des cellules est ensuite lu par une séquence d'adresses 1l opposées, et comparé au premier contenu attendu, puis écrit à nouveau mais complémenté. Enfin, le contenu des cellules dans la séquence d'adresses est lu et comparé au second contenu attendu. Les dérangements en mémoire sont identifiés comme un résultat des comparaisons. L'appareil comporte un générateur de nombres pseudo-aléatoires réversibles réalisés soit à partir de circuits en utilisant par exemple des registres à décalage à recirculation, soit par logiciel, pour produire des séquences de bits aléatoires. Le générateur est d'un type réversible pour permettre que la pastille soit adressée sélectivement en montant ou en descendant pendant l'écriture d'une séquence, la mémoire exécutant la séquence d'essai bidirectionnelle. Le générateur produit ainsi la même séquence pseudo-aléatoire pour chaque mise en place initiale particulière du contenu produit afin de développer des séquences qui sont
répétitives mais avec des caractéristiques aléatoires.
Un circuit de contrôle identifie et enregistre les dérangements trouvés pendant l'essai, en fonction des bits lus dans la mémoire et de ceux attendus pour une séquence pseudo-aléatoire particulière produite. Etant donné qu'il existe qu'une tendance pour que les lignes d'adresses d'ordre supérieur soient utilisées moins fréquemment pendant l'adressage séquentiel, une seconde fonction d'adresse indépendante est ajoutée de manière que pendant des balayages successifs d'adresses, chaque adresse soit sélectionnée une fois et seulement une fois. La fonction d'adresse est convertie en paramètres par les dimensions de la mémoire pour produire une
activité substantielle sur toutes les lignes d'adresses.
Un autre objet de l'invention est donc de proposer un procédé et un appareil pour utiliser toutes les lignes d'adresses de façon à peu près égale dans
ai de dérangements en mémoire.
un essai de dérangements en mémoire.
Un autre objet est d'assurer un adressage uniforme dans un algorithme d'essai rapide d'une -mémoire
à accès direct.
D'autres caractéristiques et avantages de l'invention seront mieux compris au cours de la
description détaillée qui va suivre d'un exemple de
réalisation et en se référant aux dessins annexés sur lesquels: La figure 1 est un schéma simplifié d'un ensemble de mémoires à accès direct de type courant pouvant être contr81é selon l'invention, La figure 2 est un graphe d'un algorithme d'essai court de RAM selon l'invention, Les figures 3 à 5 sont des tableaux montrant les résultats d'un essai de dérangement selon l'invention, conjointement avec trois types différents de dérangements, et La figure 6 est un schéma simplifié d'un
appareil destiné à la mise en oeuvre de l'invention.
Un essai d'ensemble de RAM du type à marche rapide selon un aspect de l'invention consiste en un essai en cinq cycles comprenant trois "balayages" comme suit, o W est une "écriture", Wc est une "écriture du complément des données déjà écrites dans la cellule spécifiée" et R est une "lecture de données": montée en adresses WWc, descente RWc et montée R. Un "balayage" est défini comme une séquence d'adresses de cellules d'une adresse limite à une autre; un "cycle" est un accès de lecture ou d'écriture de chaque cellule pendant un balayage. Ainsi, un "1" ou un "0" puis son complément, sont écrits successivement dans toutes les cellules de mémoire aux cellules adressées en montant. Quand les cellules sont adressées en descendant, leurs contenus sont lus puis complémentés. Une différence entre le une cellule qui est lue et le contenu attendu contenu d'une cellule qui est lue et le contenu attendu indique un dérangement. Enfin, quand la mémoire est adressée en montant, les contenus des cellules sont
à nouveau lus et comparés avec les contenus attendus.
Il y a donc trois "balayages" des adresses des cellules, dont deux effectuent deux cycles de chaque cellule dans la séquence, comme l'indique la figure 2. Ainsi, chaque cellule est adressée cinq fois au total. Mais il faut noter que le premier cycle "d'écriture" de la séquence est en option et pourrait être éliminé pour former une séquence d'essai à quatre cycles. Le cycle "W" initial est préférable pour assurer que les cellules de l'ensemble de mémoires sont capables d'effectuer à la fois des
transitions de "0" à "1" et de "1" à "0".
Si tous les bits d'une séquence fixe sont écrits successivement dans toutes les cellules de mémoire, puis complémentés, etc..., en utilisant l'algorithme d'essai de la figure 2 selon un aspect de l'invention, toutes les cellules bloquées et toutes les cellules faussées sont localisées.. Cependant, certaines catégories de dérangements, en particulier ceux associés avec des
dérangements de décodeurs, tendent à être négligées.
Ainsi, selon un autre aspect de l'invention, un essai de marche rapide du type décrit ci-dessus est modifié en écrivant des bits aléatoires dans des cellules de mémoires successives, plutôt que d'écrire les mêmes bits ou une séquence fixe de bits dans les cellules pendant chaque balayage d'adresses. L'essai, écrit en pseudo-code est le suivant, o Z(X) est la fonction aléatoire et Z(X) est son complément: pour a = 0 à N-1 MEMOIRE (a) = Z(a) MEMOIRE(a) = Z(a) fin pour a = N-1 à 0 Si MEMOIRE (a) = Z(a) erreur MEMOIRE (a) = Z(a) fin pour a = 0 à N-1 Si MEMOIRE (a) = Z(a) erreur fin Ainsi, initialement, la mémoire est adressée en montant (a=0 à N-l), des bits aléatoires sont écrits dans des cellules successives de mémoire et puis leurs compléments sont écrits dans les cellules. Ensuite,
quand la mémoire est adressée en descendant, c'est-à-
dire adressée successivement entre les positions de mémoire N-1 et 0, les contenus des cellules sont lus et comparés avec les contenus attendus. S'il existe une différence, un message d'erreur est produit. Les contenus des cellules de mémoires sont complémentés quand la mémoire est adressée en descendant, et enfin, quand la mémoire est adressée en montant, les contenus sont lus et comparés avec ceux qui sont attendus. Un message d'erreur est produit en réponse à toute différence. Cet essai identifie toutes les fautes de blocage et toutes les fautes de pseudonymes (normales et inversées) entre des bits qui sont à des adresses différentes. Par conséquent, l'essai détecte tous les bits bloqués dans des registres donnés, les bits d'adresses- bloqués et tous les dérangements de décodeurs qui provoquent des pseudonymes, tous les "0" ou tous les "1" aux adresses concernées. L'essai détecte en outre virtuellement tous les dérangements qui affectent un certain nombre d'adresses, y compris toutes les fautes de décodeurs restantes, car elles affectent toute une rangée ou une colonne, des bits de registres de données en court-circuit ou sensibles à une configuration et
des courts-circuits entre adresses et données. Les courts-
circuits entre des lignes de données ou d'adresses et
les lignes de commande sont probablement identifiés.
Pendant une série donnée, l'essai a au moins 75% de chances de trouver un dérangement de couplage statique et 25% de chance de trouver une faute de couplage dynamique, ou une combinaison ET/OU de dérangement à accès multiples affectant une seule paire de cellules qui sont à des affaires différentes. L'essai a 50% de chances d'identifier un couplage statique ou des pseudonymes entre des cellules du même mot. En outre, une série d'essais avec un départ différent pour déclencher une séquence binaire aléatoire unique localise probablement des erreurs négligées pendant une série antérieure. Le cas sera considéré par exemple de fautes d'accès multiples ou du type de combinaisons ET/OU résultant d'un mauvais décodeur. Un tel dérangement entraine que des commandes de lecture dirigées vers des cellules d'une colonne, par exemple X, retournent le contenu de la cellule adressée combinée par une fonction ET (OU) avec le contenu de la cellule correspondante dans une autre colonne, par exemple Y. Ce dérangement peut être disymétrique, de sorte que
les cellules de la colonne Y sont lues correctement.
Dans certains cas, le dérangement n'est détecté que si Z(a) prend des valeurs particulières pour les cellules considérées, c'est-à-dire quand la cellule de la colonne X est à "1" tandis que la cellule correspondante de la colonne Y est à "0". Ainsi, si un dérangement de combinaisons ET/OU de ce type affecte seulement une paire de cellules, il est détecté avec une probabilité de 25% seulement. Mais si une colonne contient 32 cellules, la probabilité pour que cette combinaison n'apparaisse jamais et qu'aucune erreur ne soit indiquée
est (1-0,25)32 = 0,0001004.
c Pour confirmer que l'essai décrit ci-dessus indique une erreur lorsqu'un certain nombre de cellules
sont faussées, deux cas doivent être considérés.
1. Z(i) = Z(j) pour toutes les cellules i et j dans le groupe faussé. La seconde phase de l'essai selon l'invention, comprenant les phases RZ(i), Wz(i) trouve en accédant à la seconde cellule de groupe, par exemple Mj, la valeur fausse car le contenu lu est Z(i) en raison de l'opération Wz(i) , tandis que la valeur
Z(j) = Z(i) est attendue.
2. Z(i) = Z(j) pour certaines cellules i et j dans le groupe de cellules faussées. La phase finale de l'essai trouve toutes les cellules dans le groupe contenant les mêmes données tandis que certaines au
moins d'entre elles contiennent des valeurs opposées. Un argument similaire montre que même un "pseudonyme inversé" dans lequel
les lectures et les écritures sont inversées par rapport aux cellules
faussées, est toujours détecté.
Des lignes de rangées ouvertes, de nombreux dérangements de décodeurs et des amplificateurs de détection défectueux font tous apparaître un certain nombre de cellules comme "bloquées" et sont donc détectées. Des bits bloqués dans des registres d'adresses,
de nombreux dérangements de décodeurs et des courts-
circuits de lignes de rangées et de colonnes entrainent des pseudonymes des cellules et sont détectés ou
apparaissent comme ci-dessus.
Les autres types de dérangements sont plus complexes. L'exécution des essais selon l'invention concernant plusieurs types de fautes est néanmoins décrite ci-après. En ce qui concerne le codeur de rangées défectueux et le facteur d'erreurs, ce type de faute se produit lorsqu'un décodeur de rangées, essentiellement une porte ET, comporte une entrée qui est continuellement marquée plutôt que d'être commandée par une ligne d'adresses appropriée. Il sera supposé que la signification de la ligne concernée est 2k. Sans perte de généralité, il sera aussi supposé que la ligne concernée pénètre dans la porte non-inversée. La porte concernée marque sa sortie à la fois lorsqu'elle le doit, et sous l'effet d'un groupe d'adresses obtenues en soustrayant 2k des adresses des cellules commandées par la porte concernée, c'est-à-dire pour toutes les cellules le long d'une autre rangée identifiée ici comme rangée A; les cellules commandées par la porte concernée
sont dans la rangée-B.
Les lectures et les écritures des cellules de la rangée B se font correctement. Les écritures dans une cellule de la rangée A se font à la fois à l'adresse correcte, par exemple Ma et dans la cellule correspondante de la rangée B, M(a=2k). Les lectures d'une cellule dans la rangée A entrainent que le contenu des deux cellules soit combiné et que le résultat soit présenté à la partie de la mémoire et écrit à nouveau dans les deux cellules. En général, la combinaison est une opération ET dans la moitié de la mémoire dans laquelle une absence de charge représente un "1" et une opération OU dans la moitié de la mémoire o la présence d'une
charge représente un "1".
La combinaison ET sera d'abord considérée en se référant au tableau de la figure 3 qui représente le fonctionnement de l'essai de RAM selon l'invention pour les quatre affectations possibles de valeurs à Z(i) et Z(j) o j = (i+2k). Un "!" désigne une cellule de mémoire comme cible d'une écriture, un "?" désigne la cellule de mémoire comme la cible d'une lecture et un * indique qu'une valeur erronée a été lue ou qu'une un "*" indique qu'une valeur erronée a été lue ou qu'une valeur erronée a été écrite dans une cellule et un "=" indique qu'une erreur est signalée. Le symbole "1 0" par exemple indique qu'une cellule contenait un "1" mais qu'une opération de lecture sur cette cellule a placé son 6ontenu à "0". Comme l'indique le tableau, une erreur est signalée dans trois des quatre affectations possibles de valeurs à Z(i) et Z(j). Etant donné que ces valeurs sont choisies au hasard, un tel dérangement qui affecte une seule paire de cellules doit être détecté avec une probabilité P=0,75. Mais en fait, ce dérangement affecte toutes les paires de cellule dans la rangée A et la rangée B. Ainsi, si N est le nombre des cellules dans une rangée et Q est la probabilité pour que le dérangement ne soit pas détecté dans une seule paire de cellules, Q=l-P=0,25. Etant donné que l'affectation des valeurs aux cellules est choisie au hasard, le cas du dérangement apparaissant dans une paire de cellules est indépendant du cas correspondant d'une autre paire de cellules dans la rangée. Ainsi, la probabilité pour que toutes les
cellules de rangée n'indiquent pas une faute que QN.
Par exemple, pour une mémoire 64K, N=256 et
QN=0,25256=7,45xl0-155. Même pour une mémoire de lK,.
N=32 et QN=0,2532=5,42 x 10-20.Cela constitue une amélioration substantielle sur la probabilité qu'une erreur ne soit pas détectée pendant une séquence d'essai utilisant une configuration fixe, contrairement à une
configuration aléatoire, comme selon l'invention.
Si les contenus des cellules concernées sont combinés par erreur dans une opération OU, l'analyse est la même à l'exception près que les fautes sont détectées dans les cas o Z(i) et Z(j) sont 00, 10 et 01. Les résultats sont également les mêmes lorsqu'un décodeur défectueux apparait plus tôt dans la séquence
de marche au lieu de plus tard comme il le devrait.
Dans le cas d'un sélecteur de colonnes défectueux, il sera supposé pour cet exemple que le sélecteur de colonnes B est défectueux, de sorte que, bien que toutes les écritures soient correctes, il existe certaines autres colonnes, comme la colonne A, telle que lorsqu'une lecture est dirigée sur une cellule de cette colonne, les données de la cellule correspondante de la colonne B sont combinées et le résultat est présenté à la sortie de la mémoire. Les données dans les cellules réelles ne sont pas affectées. La combinaison peut se faire par une opération ET ou une opération OU en fonction
de la conception de la mémoire.
En ce qui concerne d'abord le cas o il se
produit une combinaison OU, l'analyse est similaire.
Les symboles utilisés sur la figure 4 sont les mêmes que ceux définis cidessus. En outre, "0:1?" indique que la cellule adressée contient réellement un "0" bien que lorsqu'elle est lue, cette cellule retourne un "1"
en raison de l'effet d'une autre cellule.
Comme l'indique la figure 4, des erreurs sont indiquées dans deux parmi les quatre affectations possibles des valeurs de Z(i) et Z(j). Ainsi, P=Q=0,5 et la probabilité qu'aucune erreur ne soit indiquée pour une colonne entière, dans le cas de N=256 est 0,5256= 8,64 x 10-78; pour N=32, la probabilité est 2,32 x -10. En ce qui concerne les fautes de couplage dynamique, un dérangement de couplage dynamique apparaît lorsqu'une transition particulière, par exemple de "0" à "1" d'une cellule place à "1" ou à "0" une autre cellule. Cette faute peut apparaître sous l'effet d'un
couplage capacitif entre les cellules.
En se référant au tableau de la figure 5, il sera supposé qu'en raison de couplages dynamiques, -la cellule j est placée à "1" en réponse à une transition de la cellule i de "0" à "1". Une erreur est détectée dans un seul cas, à savoir quand Z(i)=0 et Z(j)=l. Ainsi, P=0,25 et Q=0,75. La probabilité pour qu'une rangée entière de ce dérangement ne soit pas détectée est QN. Ainsi, pour une mémoire à 1K o N=32, la probabilité
est QN=0,7532=0,0001004.
Il apparait ainsi clairement que l'essai court de RAM utilisant une marche probabiliste, identifie virtuellement toutes les espèces de dérangements en
mémoire avec une haute probabilité.
De préférence, les données écrites dans les cellules et lues'ensuite sont produites de façon aléatoire
au moyen d'un générateur pseudo-aléatoire réversible.
Un générateur pseudo-aléatoire est un générateur de données du type dans lequel des données successives ont des caractéristiques aléatoires, mais dont la durée de. séquence est fixée, bien que généralement longue, et cette séquence est répétée en fonction d'une clé
qui déclenche le générateur. Des générateurs pseudo-
aléatoires réversibles sont bien connus et sont généralement d'un type câblé, orné par un certain nombre de registres à décalage à recirculation, comme cela est décrit par exemple dans Dixon, Spread Spectrum Systems, John Wiley & Sons, inc., 1976 au chapitre 3.2 "(Linear Code Generator Configurations)". Mais de préférence, le générateur de codes pseudoaléatoires petit être réalisé par logiciel de la manière décrite ci-après. Ainsi, le. générateur de codes peut comporter 32 générateurs de nombres aléatoires, à registres à décalage à réaction en parallèle, réalisés par Software, produisant un polynôme comme X33 - X13-1 ou éventuellement d'un ordre plus élevé. Chaque bit passe par une durée de cycles identiques de 233-1 en utilisant l'exemple de polynôme; la clé n'intervient que sur le point de départ. Bien qu'il puisse sembler que le choix de la clé soit arbitraire, il a été déterminé par assimilation que plus la qualité de la clé est bonne, plus le générateur passe par des essais statistiques. Une expérimentation a montré que les meilleurs résultats étaient obtenus en assemblant des mots à partir du multiplet le plus significatif (sélectionné en masquant avec OX7f800000) de la sortie d'une fonction aléatoire de librairie à UNIX C) basé sur l'énoncé en langage de programmation C: return((rendx = randx*113515245 + 12345) & OX7ffffffff). En variante, la fonction aléatoire de librairie Unix C modifiée pour produire 32 valeurs binaires peut être utilisée pour produire les valeurs de clés. Ainsi, de cette manière, le générateur pseudo-aléatoire réalisé par logiciel établit un ensemble d'une longueur de 64 mots, appelé SHFTRG, avec les 33 entrées inférieures initialisées par les nombres aléatoires. Ainsi, pour une séquence en montant des adresses, Z à chaque cycle est calculé dans le langage de programmation C de la manière suivante: Z = SHFTRG((i+33) & OX3F) = SHFTR((i+13) & OX3F) SHFTRG(i & OX3F) Pour une séquence descendante, le calcul est: SHFTRG(i & OX3F) = SHFTRG((i+13) & OX3F) (Z = SHFTRG((i+33) & OX3F)) Un échantillonnage presque uniforme des cellules de mémoires peut être réalisé en progressant pas à pas par les adresses, avec une valeur de pas qui est environ le nombre d'or, G =( 5-1) /2=0,618033989, soit la capacité de la mémoire. Un adressage uniforme de la mémoire est également souhaitable car l'adressage séquentiel tend à accroître l'activité des lignes d'adresses d'ordre inférieur tandis que l'activité est relativement rare sur les lignes d'ordre supérieur. De préférence, la mémoire est adressée avec une fonction d'adresses A
qui utilise uniformément tous les bits de mémoires.
Cette fonction doit assurer que pendant chaque balayage ou série d'essai, chaque adresse de la mémoire soit
atteinte une fois et une fois seulement.
Ainsi, selon un autre aspect de l'invention une fonction d'adresses A(i) est développée pour utiliser également toutes les lignes d'adresses, en adressant
exactement une fois chaque cellule de mémoire.
L'algorithme d'essai de mémoire est donc modifié de la manière suivante: pour i = 0 à N-1 MEMOIRE(A(i)) = Z(i) MEMOIRE(A(i)) = Z(i) fin pour i = N1 à 0 Si MEMOIRE(A(i)) = Z(i) erreur MEMOIRE(A(i)) = Z(i) fin pour i = 0 à N-1 Si MEMOIRE(A(i)) = Z(i) erreur fin Le choix diune fonction d'adresses approprié est décrit en détail dans Knuth, The Art of Computer
Programming, vol.3, Sorting and Searcring, pages 511-
513. La fonction d'adresses A doit être rapide et à évaluer. Ainsi, selon l'invention, A(i) = k*i mod N, o N est la dimension de la mémoire et k est premier par rapport à N. Si N est une puissance de 2, k peut être un nombre pair. En- variante, et pour plus de généralité, k peut être un nombre à peu près égal au nombre d'or multiplié par la dimension de la mémoire
par rapport à la dimension de la mémoir.
et premier par rapport à la dimension de la mémoire.
Cela entraine que les quelques premières adresses sondées soient presque uniformément étalées dans tout l'espace d'adressage de la mémoire. Les adresses suivantes remplissent progressivement les "trous" de la mémoire jusqu'à ce que cette dernière soit complètement sondée. Pour trouver une valeur k appropriée, il faut calculer le terme "k" = G*N. Ensuite, k est réglé pour être premier par rapport à N. Si N est une puissance de 2, k est forcé à être pair. Une technique générale pour des dimensions arbitraires de mémoire est représentée dans le code suivant: Si (gcd(k, N k) k++ o gcd est la fonction: longueur sans signe gcd (a,b) longueur sans signe a,b longueur temp sans signe si (a = 0) temp = a a =b%a b=temp retour(b); La figure 6 est un schéma simplifié montrant une réalisation d'un appareil d'essai de RAM rapide utilisant un générateur pseudoaléatoire 22 réalisé de préférence en logiciel comme décrit ci-dessus, mais
qui peut être en variante constitué par des circuits.
Un séquentiel de commande 20 qui consiste de préférence en un microprocesseur conventionnel, est connecté au générateur pseudo-aléatoire 22 pour écrire des données aléatoires et pour lire les données dans l'ensemble de mémoires en essai 10, en fonction de l'essai de marche probabiliste décrit ci-dessus. Le micro-processeur 20
applique une clé au générateur 22 de données pseudo-
aléatoires sur la ligne 26 et il émet à partir du générateur le premier mot aléatoire qui doit être mémorisé dans un registre de données 28. Le micro-processeur applique également au compilateur d'adresses 30, développant la fonction d'adresses, une première adresse représentant l'adresse limite inférieure dans une séquence d'adresses qui sera appliquée par le registre d'adresses
36 à l'ensemble de mémoires 10. Le premier mot pseudo-
aléatoire développé par le générateur 22 est donc écrit dans l'ensemble de mémoires 10 d'adresses initiales spécifiées par le compilateur 30 en fonction de l'adresse limite inférieure de la séquence. Le microprocesseur complémente ensuite le mot et l'écrit à nouveau au
mot adressé dans l'ensemble de mémoire sous contrôle.
Ce processus est répété pour des adresses successives de la séquence, jusqu'à l'adresse limite supérieure pour compléter le premier balayage représenté sur la
figure 2.
Le micro-processeur 20 commande ensuite le générateur 22 de séquence pseudo-aléatoire pour répéter la séquence des mots aléatoires dans l'ordre inverse, tandis que l'ensemble de mémoire 10, par l'intermédiaire
du compilateur 30, est adressé en descendant, c'est-
à-dire que les adresses se succèdent entre l'adresse supérieure et l'adresse limite inférieure. Les mots lus dans le registre de données de mémoires 28 sont comparés avec les mots pseudo-aléatoires correspondants provenant du générateur 22 dans le registre 32. Toute différence entre les données lues et les données correspondantes développées par le générateur 22 indique une faute de mémoire qui doit être affichée en 34. Après chaque lecture pendant ce balayage, les mots précédemment écrits dans les cellules de la mémoire contrôlée sont complémentés, ce qui termine le second balayage représenté
sur la figure 2.
Enfin, le microprocesseur 20 commande le générateur 22 de séquence pseudoaléatoire de manière
qu'il applique la séquence initiale des mots pseudo-
aléatoires au registre de données 28 pendant que les mots correspondants dans la mémoire 10 sont lus, mémorisés dans le registre 32 et comparés. Toutes différences entre les données lues et les données correspondantes développées par le générateur 22 indiquent une faute
en mémoire, et doivent être affichées en 34.
Etant donné que la séquence des données produites par le générateur pseudo-aléatoire 22 est une fonction des données clés initialement appliquées au générateur par le micro-processeur 20, le même essai peut être appliqué successivement à la mémoire 10 pour développer une "signature de mémoire" pour l'affichage 24. Cela permet à un technicien qui observe l'affichage 24 de déterminer si le profil de dérangement pour chaque pastille de mémoire est stable et de déterminer la qualité de cette mémoire. Il est en outre possible, par le développement de l'entrainement du technicien ou par une analyse logicielle, de déterminer une hypothèse de dérangement à partir du profil. Si toutes les erreurs concernent une seule pastille d'un ensemble contrôlé, cette pastille est probablement défectueuse. Si toutes les pastilles contrôlées présentent un profil de faute similaire, mais les profils indiquant que les fautes ne se produisent qu'à des adresses paires, une ligne
d'adresses bloquées est probablement la cause.
Ainsi, en traitant des bits aléatoires dans un essai de RAM rapide selon l'invention, la plupart des types des dérangements d'ensemble de mémoires sont identifiés avec une grande probabilité et en une courte période. La probabilité pour que toutes les fautes soient identifiées doit encore être augmentée en répétant l'essai
de marche probabiliste en utilisant une clé différente.
En outre, la fonction d'adresses incorporée dans l'essai tend à utiliser également toutes les lignes d'adresses d'ordre supérieur, ce qui améliore encore la probabilité
d'identification des défauts.
Bien entendu, diverses modifications peuvent être apportées-par l'homme de l'art au mode de réalisation décrit et illustré à titre d'exemple nullement limitatif
sans sortir du cadre de l'invention.

Claims (26)

REVENDICATIONS
1. Procédé de contrôle des dérangements dans un ensemble de mémoires à accès direct comportant plusieurs cellules de mémoires, chaque cellule étant adressable nominalement et de façon unique, procédé caractérisé en ce qu'il consiste essentiellement à écrire des bits aléatoires (22,28) dans les cellules, à lire les bits (20) et en réponse, à identifier des dérangements
en mémoire (20,34).
2. Procédé de contrôle de dérangements dans un ensemble de mémoires à accès direct comportant plusieurs cellules de mémoires, chaque cellule étant adressable nominalement de façon unique, procédé caractérisé en ce qu'il consite à écrire des bits aléatoires (22,28) successivement dans les cellules suivant une première séquence d'adresses de cellules (30,36), suivant une seconde séquence d'adresses de cellules en lisant et en complémentant ensuite les contenus des cellules, suivant une troisième séquence d'adresses de cellules opposée à la seconde séquence en lisant les contenus des cellules et en comparant *20 (20) les contenus lus dans les cellules avec des contenus attendus, et en réponse, à identifier les dérangements
en mémoire (20,34).
3. Procédé de contrôle des dérangements dans un ensemble de mémoires à accès direct comportant plusieurs cellules de mémoires, chaque cellule étant adressable nominalement de façon unique, procédé caractérisé en ce qu'il consiste à écrire des bits aléatoires (22,28) et leurs compléments, successivement dans les cellules en suivant une première séquence d'adresses de cellules (30, 36) suivant une seconde séquence d'adresses de cellules opposée à la première séquence en lisant les contenus des cellules puis en complémentant les contenus, suivant une troisième séquence d'adresses de cellules opposée à la première séquence en lisant les contenus des cellules et en comparant (20) les contenus lus dans lesdites cellules avec des contenus attendus, et en réponse, à identifier les
dérangements en mémoire (20,34).
4. Procédé de contrôle des dérangements dans un ensemble de mémoires à accès direct comprenant
plusieurs cellules de mémoires, chaque cellule étant.
adressable nominalement et de façon unique, procédé caractérisé en ce qu'il consiste à écrire des bits aléatoires (22,28) successivement dans les cellules, puis à complémenter les bits par une première séquence d'adresses de cellules (20,34), suivant une seconde séquence d'adresses de cellules opposée à la première séquence en lisant les contenus des cellules puis en complémentant les contenus, suivant la première séquence d'adresses de cellules en écrivant lesdits bits aléatoires successivement dans les cellules, à comparer (20) les contenus lus dans les cellules avec les bits aléatoires qui se trouvaient précédemment dans les cellules et en réponse à identifier les dérangements en mémoire
(20, 34). -
5. Procédé de contrôle des dérangements dans un ensemble de mémoires à accès direct comprenant plusieurs cellules de mémoires, chaque cellule étant adressable nominalement de façon unique, procédé caractérisé en ce qu'il consite à écrire des bits aléatoires (22,28) successivement dans les cellules suivant une première séquence étalée uniformément d'adresses de cellules, à lire les contenus des cellules suivant une seconde séquence d'adresses de cellules liée à. la première séquence, à comparer (20) les contenus lus avec des contenus attendus et en réponse, à identifier
des dérangements en mémoire (20,34).
6. Procédé selon la revendication 5, caractérisé en ce que les bits aléatoires sont obtenus à partir de séquences pseudo-aléatoires (22), les phases de lecture et d'écriture étant commandées en utilisant lesdites
séquences de bits pseudo-aléatoires.
7. Procédé selon la revendication 6, caractérisé en ce que lesdites séquences de bits pseudo-aléatoires sont réversibles, et ladite première et ladite seconde séquences d'adresses de cellules étant respectivement la séquence pseudo-aléatoire directe et la séquence
pseudo-aléatoire inverse.
8. Procédé selon la revendication 1, caractérisé en ce qu'il consiste également à adresser lesdites cellules de mémoires en utilisant une séquence
uniformément étalée d'adresses de cellules.
9. Procédé selon la revendication 2, caractérisé en ce qu'il consiste à adresser lesdites cellules de mémoire en utilisant une séquence uniformément étalée
d'adresses de cellules.
10. Procédé selon la revendication 3, caractérisé en ce qu'il consiste à adresser lesdites cellules de mémoire en utilisant une séquence uniformément
étalée d'adresses de cellules.
11. Procédé selon la revendication 4, caractérisé en ce qu'il consiste à adresser lesdites cellules de mémoire en utilisant une séquence uniformément
étalée d'adresses de cellules.
12. Appareil de contrôle de dérangements dans un ensemble de mémoires à accès direct comprenant plusieurs cellules de mémoire, chaque cellule de mémoire étant adressable nominalement et de façon unique, appareil caractérisé en ce qu'il comporte un dispositif (22) générateur d'une séquence de bits aléatoires, un dispositif (30, 36) d'adressage des cellules de mémoire, un dispositif (20) d'écriture de ladite séquence de bits aléatoires dans lesdites cellules, un dispositif (20) de lecture des contenus desdites cellules, un dispositif (20) de comparaison desdits contenus lus avec des contenus attendus pour identifier des dérangements de cellules de mémoires, et un dispositif
(34) qui indique lesdits dérangements.
13. Appareil de contrôle des dérangements dans un ensemble de mémoires à accès direct comprenant plusieurs cellules de mémoires, chaque cellule étant adressable nominalement et de façon unique, appareil caractérisé en ce qu'il comporte un dispositif (22) générateur d'une séquence de bits aléatoires, un dispositif (30) d'adressage des cellules de ladite mémoire, sélectivement suivant une première et une seconde séquences d'adresses, un dispositif (20) d'écriture de ladite séquence de bits aléatoires dans ladite mémoire suivant ladite première séquence d'adresses, un dispositif (20) de lecture des contenus de ladite mémoire suivant ladite seconde séquence d'adresses, et de comparaison desdits contenus lus avec des contenus attendus, un dispositif réagissant audit dispositif de comparaison en identifiant des dérangements en mémoire et un
dispositif (34) qui indique lesdits dérangements.
14. Appareil de contrôle des dérangements dans un ensemble de mémoires à accès direct comprenant plusieurs - cellules de mémoires, appareil caractérisé en ce qu'il comporte un dispositif (22) générateur d'une séquence de bits aléatoires, un dispositif (30) d'adressage des cellules de ladite mémoire, sélectivement suivant une première et une seconde séquence d'adresses, un processeur destiné à écrire lesdits bits aléatoires successivement dans les cellules et à complémenter les bits suivant ladite première séquence d'adresses, à lire suivant la seconde séquence d'adresses de cellules les contenus desdites cellules et à comparer les contenus avec des contenus attendus, puis à complémenter les contenus, à lire suivant ladite première séquence d'adresses les contenus desdites cellules, à comparer lesdits contenus avec des contenus attendus, et, en réponse auxdites phases de comparaison, à identifier des dérangements en mémoire, et un dispositif (34) étant prévu pour indiquer lesdits dérangements.
15. Appareil selon la revendication 12, caractérisé en ce que ledit dispositif indiquant les
dérangements consiste en un affichage visuel (34).
16. Appareil selon la revendication 13, caractérisé en ce que ledit dispositif indiquant les
dérangements consiste en un affichage visuel (34).
17. Appareil selon la revendication 14, caractérisé en ce que ledit dispositif indiquant les
dérangements consiste en un affichage visuel (34).
18. Appareil selon la revendication 12, caractérisé en ce que ledit dispositif générateur consiste
en un générateurde bits pseudo-aléatoires (22).
19. Appareil selon la revendication 13, caractérisé en ce que ledit dispositif générateur consiste
en un générateur de bits pseudo-aléatoires (22).
20. Appareil selon la reyendication 14, caractérisé en ce que ledit dispositif générateur consiste
en un générateur de bits pseudo-aléatoires (22).
21. Appareil selon la revendication 12, caractérisé en ce que ledit dispositif d'adressage (30) comporte un dispositif qui produit des adresses
pratiquement uniformes.
22. Appareil selon la revendication 13, caractérisé en ce que ledit dispositif d'adressage (30) comporte un dispositif qui produit des adresses
pratiquement uniformes.
23. Appareil selon la revendication 14, caractérisé en ce que ledit dispositif d'adressage comporte un dispositif qui produit des adresses
pratiquement uniformes.
24. Appareil de contrôle des dérangements dans un ensemble de mémoires à accès direct, comportant plusieurs cellules de mémoires, chaque cellule étant adressable nominalement et de façon unique, appareil caractérisé en ce qu'il comporte un dispositif (22) générateur d'une séquence de bits pseudo-aléatoires, un dispositif (30) qui produit sélectivement une première et une seconde séquence pratiquement uniformes d'adresses de cellules, un dispositif (28) d'écriture de ladite séquence de bits aléatoires dans lesdites cellules en suivant ladite première séquence d'adresses, un dispositif (20) de lecture des contenus desdites cellules suivant la seconde séquence d'adresses, et qui compare lesdits contenus lus avec ladite séquence de bits pseudo-aléatoires et un dispositif qui réagit audit dispositif de comparaison indiquant les dérangements
en mémoire (34).
25. Appareil selon la revendication 24, caractérisé en ce qu'il comporte en outre un dispositif
qui commande une clé de ladite séquence de bits pseudo-
aléatoires.
26. Procédé selon la revendication 6, caractérisé en ce qu'il consiste également à commander ladite séquence de bits pseudo-aléatoires en utilisant une clé, et à répéter ledit procédé en utilisant une
clé différente.
FR858517408A 1985-03-04 1985-11-25 Procede et appareil d'essai fonctionnels rapides de memoires a acces direct Expired - Fee Related FR2578347B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/708,749 US4715034A (en) 1985-03-04 1985-03-04 Method of and system for fast functional testing of random access memories

Publications (2)

Publication Number Publication Date
FR2578347A1 true FR2578347A1 (fr) 1986-09-05
FR2578347B1 FR2578347B1 (fr) 1992-09-04

Family

ID=24847047

Family Applications (1)

Application Number Title Priority Date Filing Date
FR858517408A Expired - Fee Related FR2578347B1 (fr) 1985-03-04 1985-11-25 Procede et appareil d'essai fonctionnels rapides de memoires a acces direct

Country Status (6)

Country Link
US (1) US4715034A (fr)
JP (1) JPS61202255A (fr)
CN (1) CN1006095B (fr)
DE (1) DE3607015A1 (fr)
FR (1) FR2578347B1 (fr)
GB (1) GB2172128B (fr)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868823B1 (en) * 1984-08-31 1999-07-06 Texas Instruments Inc High speed concurrent testing of dynamic read/write memory array
DE3634352A1 (de) * 1986-10-08 1988-04-21 Siemens Ag Verfahren und anordnung zum testen von mega-bit-speicherbausteinen mit beliebigen testmustern im multi-bit-testmodus
US4891811A (en) * 1987-02-13 1990-01-02 International Business Machines Corporation Efficient address test for large memories
US4782486A (en) * 1987-05-14 1988-11-01 Digital Equipment Corporation Self-testing memory
US4782487A (en) * 1987-05-15 1988-11-01 Digital Equipment Corporation Memory test method and apparatus
DE3718182A1 (de) * 1987-05-29 1988-12-15 Siemens Ag Verfahren und anordnung zur ausfuehrung eines selbsttestes eines wortweise organisierten rams
US4873705A (en) * 1988-01-27 1989-10-10 John Fluke Mfg. Co., Inc. Method of and system for high-speed, high-accuracy functional testing of memories in microprocessor-based units
US4876684A (en) * 1988-02-11 1989-10-24 John Fluke Mfg. Co., Inc. Method of and apparatus for diagnosing failures in read only memory systems and the like
US5033048A (en) * 1988-04-01 1991-07-16 Digital Equipment Corporation Memory selftest method and apparatus same
WO1989009471A2 (fr) * 1988-04-01 1989-10-05 Digital Equipment Corporation Procede et appareil d'autotest de memoire
US4903266A (en) * 1988-04-29 1990-02-20 International Business Machines Corporation Memory self-test
US4965799A (en) * 1988-08-05 1990-10-23 Microcomputer Doctors, Inc. Method and apparatus for testing integrated circuit memories
GB2222461B (en) * 1988-08-30 1993-05-19 Mitsubishi Electric Corp On chip testing of semiconductor memory devices
US4980888A (en) * 1988-09-12 1990-12-25 Digital Equipment Corporation Memory testing system
GB2228113B (en) * 1989-02-10 1993-01-27 Plessey Co Plc Circuit arrangement for verifying data stored in a random access memory
US5222067A (en) * 1990-03-08 1993-06-22 Terenix Co., Ltd. Detection of pattern-sensitive faults in RAM by use of M-sequencers
EP0446534A3 (en) * 1990-03-16 1992-08-05 John Fluke Mfg. Co., Inc. Method of functionally testing cache tag rams in limited-access processor systems
DE69114183T2 (de) * 1990-06-07 1996-05-30 Ibm System zur Reduzierung von Prüfdatenspeichern.
EP0470030A3 (en) * 1990-08-02 1993-04-21 International Business Machines Corporation Fast memory power-on diagnostics using direct memory addressing
US5377148A (en) * 1990-11-29 1994-12-27 Case Western Reserve University Apparatus and method to test random access memories for a plurality of possible types of faults
US5974570A (en) * 1990-12-01 1999-10-26 Hitachi, Ltd. Method for managing data processing system and high-reliability memory
AU660011B2 (en) * 1991-04-26 1995-06-08 Nec Corporation Method and system for fault coverage testing memory
DE4227281C1 (de) * 1992-08-18 1994-02-10 Siemens Ag Anordnung zum Testen eines Speichers nach dem Selbsttestprinzip
JP3645578B2 (ja) * 1992-09-17 2005-05-11 テキサス インスツルメンツ インコーポレイテツド スマート・メモリの組込み自己検査のための装置と方法
FR2697663B1 (fr) * 1992-10-30 1995-01-13 Hewett Packard Cy Circuit de test de mémoire.
US5471482A (en) * 1994-04-05 1995-11-28 Unisys Corporation VLSI embedded RAM test
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
US5757915A (en) * 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
US5588046A (en) * 1995-10-23 1996-12-24 Casio Phonemate, Inc. Digital telephone answering device and method of testing message storage memory therein
US5883844A (en) * 1997-05-23 1999-03-16 Stmicroelectronics, Inc. Method of stress testing integrated circuit having memory and integrated circuit having stress tester for memory thereof
US6339834B1 (en) * 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
GB2370126B (en) * 2000-07-18 2004-01-21 Sgs Thomson Microelectronics Memory testing
US6694461B1 (en) * 1999-07-26 2004-02-17 Ati International Srl System and method for testing integrated memories
US6532571B1 (en) * 2000-01-21 2003-03-11 International Business Machines Corporation Method to improve a testability analysis of a hierarchical design
US6728911B1 (en) 2000-11-16 2004-04-27 Utstarcom, Inc. System and method for testing memory systems
US6799291B1 (en) * 2000-11-20 2004-09-28 International Business Machines Corporation Method and system for detecting a hard failure in a memory array
US7200759B2 (en) * 2001-06-08 2007-04-03 Safenet B.V. Method and device for making information contents of a volatile semiconductor memory irretrievable
DE10161042B4 (de) * 2001-12-12 2004-02-05 Infineon Technologies Ag Verfahren zum Betreiben eines Halbleiterspeichers und Halbleiterspeicher
US7216270B1 (en) * 2004-05-14 2007-05-08 National Semiconductor Corporation System and method for providing testing and failure analysis of integrated circuit memory devices
US7346816B2 (en) * 2004-09-29 2008-03-18 Yen-Fu Liu Method and system for testing memory using hash algorithm
US7634696B2 (en) * 2005-03-03 2009-12-15 Sigmatel, Inc. System and method for testing memory
US7472337B2 (en) * 2005-03-22 2008-12-30 Cummins, Inc. Method and system for detecting faults in an electronic engine control module
JP2007241840A (ja) * 2006-03-10 2007-09-20 Toshiba Corp メモリ診断装置、メモリ診断方法、及びメモリ診断システム
JP5302050B2 (ja) * 2009-03-04 2013-10-02 富士通株式会社 障害解析のためのトレース装置およびトレース方法
ITTO20110355A1 (it) * 2011-04-21 2012-10-22 Red S R L Struttura di appoggio, in particolare per un veicolo
JP5986474B2 (ja) * 2012-09-28 2016-09-06 株式会社東芝 メモリ故障診断装置、メモリ故障診断方法
US9418759B2 (en) * 2014-05-06 2016-08-16 Intel IP Corporation Assist circuits for SRAM testing
CN105702299B (zh) * 2015-12-30 2018-09-28 工业和信息化部电子第五研究所 存储器单元失效检测方法与***
CN106201434B (zh) * 2016-07-05 2018-07-10 南通理工学院 可逆随机数生成器
US10510431B2 (en) * 2017-09-22 2019-12-17 Qualcomm Incorporated Detecting random telegraph noise defects in memory
US10658067B2 (en) 2018-05-14 2020-05-19 Micron Technology, Inc. Managing data disturbance in a memory with asymmetric disturbance effects
CN112098770B (zh) * 2020-08-20 2024-06-14 深圳市宏旺微电子有限公司 针对动态耦合故障模拟极端环境下的测试方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3751649A (en) * 1971-05-17 1973-08-07 Marcrodata Co Memory system exerciser
US3961252A (en) * 1974-12-20 1976-06-01 International Business Machines Corporation Testing embedded arrays

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3579199A (en) * 1969-02-03 1971-05-18 Gen Motors Corp Method and apparatus for fault testing a digital computer memory
US3719929A (en) * 1971-08-11 1973-03-06 Litton Systems Inc Memory analyzers
US3719885A (en) * 1971-12-13 1973-03-06 Ibm Statistical logic test system having a weighted random test pattern generator
US3924181A (en) * 1973-10-16 1975-12-02 Hughes Aircraft Co Test circuitry employing a cyclic code generator
NL7416755A (nl) * 1974-12-23 1976-06-25 Philips Nv Werkwijze en inrichting voor het testen van een digitaal geheugen.
US4125763A (en) * 1977-07-15 1978-11-14 Fluke Trendar Corporation Automatic tester for microprocessor board
GB2028517A (en) * 1978-08-22 1980-03-05 Catt I Testing digital circuits
US4195770A (en) * 1978-10-24 1980-04-01 Burroughs Corporation Test generator for random access memories
US4222514A (en) * 1978-11-30 1980-09-16 Sperry Corporation Digital tester
US4414665A (en) * 1979-11-21 1983-11-08 Nippon Telegraph & Telephone Public Corp. Semiconductor memory device test apparatus
FR2474226B1 (fr) * 1980-01-22 1985-10-11 Thomson Csf Dispositif de test pour enregistreur numerique multipiste
US4342084A (en) * 1980-08-11 1982-07-27 International Business Machines Corporation Main storage validation means
US4429389A (en) * 1981-05-26 1984-01-31 Burroughs Corporation Test pattern address generator
US4442519A (en) * 1982-03-05 1984-04-10 International Business Machines Corporation Memory address sequence generator
US4513418A (en) * 1982-11-08 1985-04-23 International Business Machines Corporation Simultaneous self-testing system
US4503537A (en) * 1982-11-08 1985-03-05 International Business Machines Corporation Parallel path self-testing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3751649A (en) * 1971-05-17 1973-08-07 Marcrodata Co Memory system exerciser
US3961252A (en) * 1974-12-20 1976-06-01 International Business Machines Corporation Testing embedded arrays

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COMPUTER DESIGN, vol. 15, no. 5, mai 1976, pages 169-172, Concord, US; J.H. DE JONGE et al.: "Moving inversions test pattern is thorough, yet speedy" *
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 25, no. 3A, août 1982, pages 1216-1227, New York, US; F. TSUI: "Testing of memory parts" *
PROCEEDINGS OF THE 1985 INTERNATIONAL TEST CONFERENCE, Philadelphie, 19-21 novembre 1985, pages 169-177, IEEE; D.M. JACOBSON et al.: "A fast, probabilistic algorithm for functional testing of random access memory systems" *
WESCON CONFERENCE RECORD, 13-21 septembre 1977, San Francisco, pages 1-10; W.E. SOHL et al.: "Selecting test patterns for 4K RAMS" *

Also Published As

Publication number Publication date
CN1006095B (zh) 1989-12-13
GB8528483D0 (en) 1985-12-24
JPS61202255A (ja) 1986-09-08
CN86102265A (zh) 1986-09-03
GB2172128B (en) 1989-05-17
FR2578347B1 (fr) 1992-09-04
US4715034A (en) 1987-12-22
DE3607015A1 (de) 1986-09-04
GB2172128A (en) 1986-09-10

Similar Documents

Publication Publication Date Title
FR2578347A1 (fr) Procede et appareil d'essai fonctionnels rapides de memoires a acces direct
JP4824936B2 (ja) ダイナミック・ランダム・アクセス・メモリ装置の検査方法
US7398439B2 (en) Semiconductor device with memory and method for memory test
FR2626402A1 (fr) Procede et systeme pour controler ou tester fonctionnellement a grande vitesse et avec une grande precision des memoires se trouvant dans des unites a microprocesseurs
EP0020999B1 (fr) Procédé de mesure du temps d'accès d'adresse de mémoires, mettant en oeuvre la technique de recirculation des données, et testeur en résultant
US20020184578A1 (en) Semiconductor integrated circuit
Karpovsky et al. Transparent memory BIST
Segura et al. A detailed analysis of CMOS SRAM's with gate oxide short defects
CN114690018A (zh) 一种集成电路芯片的测试方法、装置和存储介质
US7392465B2 (en) Testing ram address decoder for resistive open defects
Das et al. Exhaustive and near-exhaustive memory testing techniques and their BIST implementations
Treuer et al. Fault location algorithms for repairable embedded RAMs
US7689878B2 (en) System and method for testing defects in an electronic circuit
Sohl Selecting test patterns for 4K RAMs
KR100518599B1 (ko) 우선 순위 엔코더의 결함 여부 테스트가 가능한 캠 및우선 순위 엔코더의 결함 여부 테스트 방법
Li et al. Reliability-enhancement and self-repair schemes for SRAMs with static and dynamic faults
TWI841015B (zh) 用於測試模式的記憶體位址產生器、方法、測試裝置與記憶體裝置
JPH1027500A (ja) 半導体メモリ装置の高速ディスターブテスト方法及びワードラインデコーダ
US20240134735A1 (en) Memory address generation device, method and testing device for test mode and memory apparatus
Hamdioui et al. PPM Reduction on Embedded Memories in System on Chip
Sable et al. Built-in self-test technique for selective detection of neighbourhood pattern sensitive faults in memories
JPS6132756B2 (fr)
Kapavarpu et al. An Efficient and Low Power Sram Testing Using Clock Gating
Hamdioui et al. BIST enhancement for detecting bit/byte write enable faults in SOC SRAMs
Carrasco et al. On the HW Design of a Memory Control Unit Oriented to the Resistive Memory Technology

Legal Events

Date Code Title Description
ST Notification of lapse