Brevet FR2508687A1 — publié le 19821231

La présente invention concerne un procédé ou un programme pour l'affectation de données à des mémoires de commande de traduction dans un système de projection pour une mémoire d'ordinateur. Un système de projection avantageux de l'art anté- rieur sépare des codes d'entrée d'un premier ensemble en un groupe d'entrée A et un groupe d'entrée B, orthogonal au groupe A Chaque groupe est à son tour projeté dans une table de dimensions K par T, dans laquelle l'état T ou état de traduction définit partiellement l'état de projection de sortie de chaque élément projeté Tous les états T, consi- dérés en combinaison, définissent sans ambiguïté l'état de projection de sortie Les états K ou états de clé définis- sent à leur tour sans ambiguïté chacun des éléments dans un groupe d'entrée qui ont été affectés à un état T donné Un détecteur de relation se présentant sous la forme d'une mémoire de défaut est adressé par les états T et il enre- gistre à chaque position d'adresse les états de clé corres- pondant à cette adresse Un comparateur reçoit les signaux de sortie de la mémoire de défaut et des mémoires de clé qui enregistrent les états K affectés, et lorsqu'apparait une coïncidence indiquant qu'une combinaison de code T correspond à un état d'entrée courant des signaux de sortie du premier ensemble, il génère un ordre sous l'effet duquel l'état d'entrée courant est projeté de façon à correspondre à un élément d'un second ensemble défini par les codes T. Cependant, le nombre d'états projetés qui sont associés à un code d'entrée d'un premier groupe d'entrée ne peut pas dépasser le nombre de codes T associés au second groupe De plus, le nombre total d'états projetés qui sont affectés à un état de code T donné d'un premier groupe ne peut pas dépasser le nombre d'états de code T du second groupe, et une fois qu'un état de groupe d'entrée auquel sont associés des états projetés donnés est affecté à un état T particulier, un autre état de groupe d'entrée ne peut pas être affecté au même état T s'il possède n'importe quel état projeté en commun avec un état projeté d'un état de groupe d'entrée affecté précédemment à l'état T particu- lier Ces restrictions limitent l'affectation d'états de groupe d'entrée aux codes K et T, et donc l'utilisation de la capacité maximale d'un système de projection Par exem- ple, dans un système de projection ayant une capacité de 4096 états projetés, les restrictions peuvent empêcher la projection réelle de plus de 3500 états Les procédés de l'in- vention pour affecter les codes K et T à des états de code de groupe d'entrée aident à optimiser la probabilité qu'un nombre donné d'états projetés puisse être accepté par un système de projection de capacité donnée. Un système de projection conforme à l'invention divise des signaux d'entrée codés identifiant des éléments dans un premier ensemble, en un groupe A et un groupe B qui est orthogonal au groupe A Des mémoires A et B respective- ment destinées au groupe A et au groupe B émettent des codes de clé (K) et des codes de traduction (T), lorsqu'on accède à ces mémoires par un groupe de signaux d'entrée. Les signaux de code T de la mémoire A et de la mémoire B définissent en combinaison un état ou un élément dans un second ensemble vers lequel des éléments sélectionnés du premier ensemble doivent être projetés Les codes X identi- fient un élément particulier dans le premier ensemble qui doit être projeté vers un élément particulier du second ensemble. Un programme conforme à l'invention, destiné à affecter des codes K et T aux positions d'adresse des mémoires A et B, comprend les opérations consistant à affecter un groupe B d'états d'entrée, ayant chacun des états projetés associés,àun plan d'implantation B,de dimensiors BK par BT, selon un arrangement uniforme, en maintenant appro- ximativement égaux les nombres d'états projetés qui sont associés aux états d'entrée affectés à chaque état BT; et à affecter un groupe A d'états d'entrée, ayant chacun des états projetés associés, àunpland'implantaticn A,ded Lmensims A Kpar AT, en arrangement serré, en maximisant le nombre d'états projetés qui sont associés aux états d'entrée affectés à l'état AT ayant le plus grand nombre d'états projetés asso- ciés aux états d'entrée qui lui ont été affectés précédem- ment Chacun des états d'entrée des groupes A et B est affec- té en ordre séquentiel, par rapport aux nombres d'états pro- jetés associés à eux, du plus grand au plus petit Les états BT sont arrangés en ordre séquentiel par rapport au nombre d'états projetés disponibles, du plus grand au plus petit, et l'ordre est mis à jour après chaque nouvelle affectation d'un état d'entrée B auplan dimpla-tation B Iesétatsd'entrée sont affectés de préférence à l'état BT le plus élevé admissible, dans l'ordre séquentiel Les états AT sont arrangés en ordre séquentiel par rapport aux nombres d'états projetés disponi- bles, du plus petit au plus grand, et l'ordre est mis à jour après chaque nouvelle affectation d'un état d'entrée A auplan dmizatation AJ Testasd'entrée A sont affectés de préférence à l'état AT le plus élevé admissible, dans l'ordre séquentiel. Selon un programme constituant une variante, les états d'entrée du groupe A sont tout d'abord affectés auplan dlmpntation A avecunrrariematuiforme, puis les états d'entrée du groupe B sont affectés autan d'implantation B avecunarrangemert uniforme Dans un autre programme encore, les états d'entrée du groupe B sont tout d'abord affectés aup/lnd Umpaatia B, puis les états d'entrée du groupe A sont affectés auplandinmplantatbion A,2 es deuxaffectations étant effectuées avec un arrangement uniforme. Une fois que les groupes d'entrée sont affectés aux plans d'imp 2 aratbn Aet B,es états de groupe d'entrée représentent les états d'adresse A et B respectifs, tandis que les états de table K et T qui leur correspondent représentent les données enregistrées aux états d'adresse correspondants. L'invention sera mieux comprise à la lecture de la description qui va suivre de modes de réalisation et en se référant aux dessins annexés sur lesquels: La figure 1 est un schéma synoptique d'un système informatique qui utilise une mémoire de données avec un tra- ducteur d'adresse conforme à l'invention; La figure 2 est une représentation schématique d'un système de projection sélective conforme à l'invention, mis en oeuvre sous la forme d'un traducteur d'adresse de mémoire; La figure 3 est une représentation schématique d'un autre mode de réalisation d'un traducteur d'adresse de mémoire conforme à l'invention; La figure 4 est une représentation schématique d'un autre mode de réalisation d'un traducteur d'adresse de mémoire conforme à l'invention; La figure 5 est une représentation schématique d'un autre mode de réalisation d'un traducteur d'adresse de mémoire conforme à l'invention; La figure 6 est une représentation schématique d'un mode de réalisation à trois dimensions d'un traducteur d'adresse de mémoire conforme à l'invention; La figure 7 est un plan d'p Ianationennémoie à deux dimensions montrant des adresses à traduire pour un exemple conforme à l'invention; La figure 8 est un plan d'implantadnà uxdeuxrimsns de données de clé B et de données de traduction B, pour l'exemple conforme à l'invention; La figure 9 est unpan d' Imp 1 an-bdanàdeuxdîmenrsÉ de données de clé A et de données de traduction A pour l'exemple conforme à l'invention; et La figure 10 est un organigramme qui illustre un algorithme destiné à l'affectation d'états de données à des mémoires de données dans le système de projection qui est représenté sur la figure 2. On va maintenant considérer la figure 1 qui représente un système informatique 10 conforme à l'inven- tion, comprenant une unité centrale 12 qui est connectée par un bus d'unité centrale, 14, à un contrôleur 16 Le contrôleur 16 est lui-même connecté par un bus de périphé- riques 18 à une mémoire de données 20 D'une manière classi- que, le bus d'unité centrale 14 peut également être connecté à des contrôleurs supplémentaires ou à des dispositifs péri- phériques, des dispositifs d'entrée/sortie ou des unités de mémoire De façon similaire, le bus de périphériques 18 peut être connecté de manière classique à d'autres unités de mémoire de données, comme une unité de disque ou d'autres mémoires de données telles que la mémoire de données 20. De façon générale, il n'est pas nécessaire que la mémoire de données 20 soit connectée par un contrôleur au bus de l'unité centrale, et elle pourrait être connectée directement au bus de l'unité centrale ou elle pourrait éga- lement être connectée à l'unité centrale 12, soit directe- ment soit par l'intermédiaire d'une antémémoire Il est cependant particulièrement avantageux d'utiliser la carac- téristique de traduction d'adresse de l'invention avec une très grande mémoire de données, comme une grande mémoire à tores, fabriquée par la firme Ampex Corporation et vendue sous la marque "MEGASTORE", destinée à être utilisée en tant que remplacement d'une mémoire à disque du type à une tête par piste Lorsque la mémoire de données 20 est utilisée de cette manière, elle est couplée par un bus de périphériques tel que le bus 18 à un contrôleur d'unité de disque, tel que le contrôleur 16 La mémoire de données comprend alors un circuit d'interface de bus 22 qui adapte spécialement la mémoire de données 20 à la connexion à la configuration particulière et aux exigences de signal particulières du bus de périphérique 18 Des modes de réalisation avantageux de la mémoire de données 20 sont décrits dans le brevet U S 4 238 838 et le brevet U S 4 096 583, qui a été redélivré sous le numéro RE 30 395 Un perfectionnement supplémentaire est décrit dans la demande de brevet France No 82 09482 dénosée le ler Juin 1982 par la Demnderesoe. La mémoire de données 20 comprend, outre le cir- cuit d'interface de bus 22, un module d'enregistrement de données 23, ayant un module d'enregistrement principal de 512 K mots de 18 bits et un module d'enregistrement desti- nataire 26 de 4 K mots de 18 bits, un traducteur d'adresse 28, et un circuit de synchronisation et de commande 30 Les modules d'enregistrement principal et destinataire 24, 26 sont avantageusement fabriqués sous la forme d'une seule mémoire à tores ou sous une autre forme de mémoire de données, avec une vingtième ligne d'adresse A 19 qui commande la sélection de positions d'adresse dans le module d'enregistre- ment principal 24 lorsqu'elle est à l'état logique 0, et la sélection de positions d'adresse dans la partie de module d'enregistrement destinataire 26, lorsqu'elle est à l'état logique 1 La partie de module d'enregistrement principal 24 du module d'enregistrement de données 23 réagit aux 19 signaux d'entrée d'adresse codés sous forme binaire et désignés par AO-A 18, en sélectionnant l'un des 512 K mots, sous l'effet d'un accès en mémoire De façon similaire, lorsqu'un signal d'entrée d'adresse A 19 détermine la sélection de la partie de module d'enregistrement destinataire 26 du module d'enre- gistrement de données 23, les signaux d'entrée d'adresse AO- A 18 déterminent la sélection de l'un des 4 K mots dans le module d'enregistrement destinataire 26 On notera que les bits d'adresse A 12-A 18 sont forcés à l'état zéro et que seuls les douze signaux d'entrée d'adresse de moindre poids AO-Ail, plus A 19, participent effectivement à l'adressage du module d'enregistrement destinataire 26, du fait que ceci suffit pour sélectionner un mot parmi 4 K mots Le module d'enregistrement de données 23 et le circuit de synchronisa- tion et de commande 30 sont de façon générale d'une nature classique et ils réagissent à des signaux provenant du bus de périphériques 18, transmis par l'intermédiaire du circuit d'interface de bus 22, de façon à accomplir des opérations d'enregistrement et de prélèvement de données aux positions d'adresse qui sont indiquées par les bits de données d'adresse AO-A 19. Le circuit d'interface de bus 22 est de nature classique et il dépend en particulier de la configuration du bus de périphériques 18 Il fonctionne de façon à fournir les signaux et les relations temporelles nécessaires pour satisfaire le protocole de bus exigé pour la communication sur le bus de périphériques 18, ainsi que pour communiquer à des parties appropriées de la mémoire de données 20 des signaux d'accès à la mémoire de données qui sont reçus par le bus de périphériques 18. En fonctionnement normal, la mémoire de données 20 se présente au contrôleur 16 sous la forme d'une mémoire de données de 512 K mots de 18 bits qui est accessible de façon directe au moyen de 19 bits d'adresse d'entrée AIO-AI 18 Le traducteur d'adresse 28 reçoit ces 19 bits ou signaux d'adresse et, en réponse, il émet 20 bits d'adresse de mémoire AOA 19 La plupart du temps, le traducteur d'adresse 28 convertit simplement les adresses d'entrée AIO-AI 18 en adresses de mémoire-correspondantes AOA 18, avec la ligne d'adresse A 19 à l'état logique 0, pour adresser un mot indi- que dans le module d'enregistrement principal 24 Cependant, le traducteur d'adresse 28 est conçu de façon à dévier des adresses identifiant des positions sélectionnées dans le module d'enregistrement principal 24, vers des adresses identifiant des positions d'adresse traduites correspondan- tes à l'intérieur du module d'enregistrement destinataire 26, avec la ligne de sortie d'adresse A 19 à l'état logique 1, pour indiquer la sélection du module d'enregistrement desti- nataire 26. On utilise donc avantageusement le traducteur d'adresse 28 pour dévier des adresses sélectionnant une position de mot défectueuse dans la partie de module d'enre- gistrement principal 24, vers une position de mot non défec- tueuse correspondante, dans le module d'enregistrement des- tinataire 26 La correspondance entre les positions défec- tueuses dans le module d'enregistrement principal 24 et les positions non défectueuses dans le module d'enregistrement destinataire 26 est préétablie dans le traducteur d'adresse 28, et la traduction est transparente pour le contrôleur 16 et l'unité centrale 12 Ainsi, le contrôleur 16 sait qu'il a envoyé vers la mémoire de données 20 une adresse relative à une position située à l'intérieur du module d'enregistre- ment principal 24 et il sait que l'accès aux données corres- pondantes est effectué Le contrôleur 16 ne sait pas que l'adresse réelle a été déviée ou traduite pour correspondre à une position d'enregistrement qui fonctionne,à l'intérieur du module d'enregistrement destinataire 26. Bien que la mémoire de données 20 ne réagisse qu'à 19 lignes d'adresse d'entrée AIO-AI 18 en fonctionnement normal, la vingtième ligne d'adresse d'entrée AI 19, corres- pondant à la ligne de sortie A 19, est également connectée au circuit d'interface de bus 22, de façon à pouvoir être attaquée par un dispositif externe Cette vingtième ligne d'adresse d'entrée et le signal qu'elle porte sont utilisés essentiellement en association avec un signal INVALIDATION DEFAUT * (*indique un niveau de signal inversé logique- ment) qui est également appliqué à des composants externes par l'intermédiaire du circuit d'interface de bus 22, pour permettre l'adressage sélectif de toutes les adresses dans le moduled'enregistrement de données 23 Ainsi, lorsque le signal INVALIDATION DEFAUT* est à l'état logique 0, le traducteur d'adresse 28 est effectivement invalidé, pour produire une correspondance directe entre les entrées d'adresse AIO-AI 19 et AO-A 19 Le module d'enregistrement de données 23 apparaît alors comme une mémoire de 516 K mots de 18 bits, dans laquelle on peut adresser n'importe quel mot au moyen des 20 bits d'adresse Pendant la phase de test, il devient ainsi possible d'écrire et de lire chaque mot du module d'enregistrement de données 23, dans un but de test, sans que le traducteur d'adresse 28 introduise une incertitude sur la position de mot exacteà laquelle on accède dans le module d'enregistrement de données 23 On peut ainsi repérer les positions de mot défectueuses dans le module d'enregistrement principal 24, ainsi que les positions de mot défectueuses qui peuvent apparaître dans le module d'enregistrement destinataire 26 Cette détection sans ambiguïtés de positions de mot défectueuses permet ainsi de concevoir le traducteur d'adresse 28 de façon qu'il traduise les adresses correspondant aux positions de mot défectueuses dans le module d'enregistrement principal 24, en adresses de positions de mot valides dans le module d'enregistrement destinataire 26, tout en évitant les adresses correspondant à des positions de mot défectueuses dans le module d'enregistrement destinataire 26. Dans un exemple particulier utilisant des tores de qualité courante de 0, 23 mm, sans reprise après câblage, on a trouvé que le seuil nominal optimal était de 3,05 m V, avec le courant de lecture Y fixé à 180 m A, et tous les autres courants d'attaque à 200 m A Avec les limites de seuil de détection établies entre 2,2 m V et 3,9 m V, on a trouvé environ 2262 positions de mot défectueuses dans le module d'enregistrement principal 24, qui nécessitaient une traduction ou une projection les faisant correspondre à des positions de mot valides dans le module d'enregistrement destinataire 26 Ceci signifie qu'en faisant varier le seuil de détection réel entre les limites supérieure et inférieure on a trouvé 2262 adresses auxquelles on a enregistré un 1 qui a été lu ensuite comme un zéro, ou auxquelles on a enre- gistré un O qui a été ensuite lu comme un 1, dans les condi- tions correspondant à la configuration la plus défavorable de 1 et de O Il arrive naturellement que lorsqu'on diminue la limite inférieure ou lorsqu'on augmente la limite supé- rieure, des positions d'enregistrement supplémentaires ne fonctionnent pas correctement On a trouvé que l'exemple considéré constituait un compromis acceptable entre un nom- bre raisonnable d'erreurs et des limites de fonctionnement appropriées pour tenir compte du vieillissement, des chan- gements de température et d'autres facteurs susceptibles d'affecter le fonctionnement de la mémoire. Le circuit de synchronisation et de commande 30 génère deux signaux de validation de mémoire morte program- mable à la mise sous tension, PPU 1 et PPU 2, sous l'effet d'un signal de sélection de module classique, qui indique l'adressage du module d'enregistrement principal particu- lier 24 Ces signaux sont accessoires pour le fonctionnement réel du transducteur d'adresse 28 et ils ont simplement pour fonction de le valider pendant les périodes au cours desquelles il reçoit effectivement et traduit ou transmet sans modification les adresses d'entrée, et d'invalider des mémoires mortes programmables qui font partie du traducteur d'adresse 28, lorsqu'elles ne sont pas effectivement utili- sées, dans le but de réduire l'énergie consommée Au prix d'une plus grande consommation d'énergie, on pourrait vali- der les mémoires mortes programmables en permanence, en éli- minant les signaux PPU 1 et PPU 2. On va maintenant considérer la figure 2 qui montre que le traducteur d'adresse 28 comporte une mémoire morte programmable de clé A, portant la référence 40, qui est une mémoire de 1 K mots de 4 bits; une mémoire motre programma- ble de traduction A, 42, qui est une mémoire de 1 K mots de 6 bits; une mémoire morte programmable de traduction B 44, qui est une mémoire de 512 mots de 6 bits; une mémoire morte de clé B, 46, qui est une mémoire de 512 mots de 3 bits; et une mémoire morte programmable de défaut, 48, qui est une mémoire de 4 K mots de 8 bits Ces mémoires mortes programmables 40-48 enregistrent les données nécessaires -pour détecter l'apparition d'une adresse entrante pour une position de mot défectueuse dans le module d'enregistrement principal 24, ainsi que les données nécessaires pour tradui- re l'adresse, en une adresse correspondant à une position de mot valide dans le module d'enregistrement destinataire 26. Du fait que les données sont particulières à chaque mémoire de données 20 et doivent être conservées pendant toute la durée de vie de la mémoire de données 20, les mémoires mor- tes programmables constituent un moyen commode et relative- ment économique pour recevoir et conserver ces données de façon permanente On notera qu'en fonction de considéra- tions de coût ou d'applications dans un système, on pourrait remplacer les mémoires mortes programmables 40-48 par d'autres formes de mémoires de données, comme des mémoires mortes programmables électriquement, des mémoire morbtnon prn- grammables et des mémoires vives Dans le cas o on utilise une mémoire d'un type volatil, on voit évidemment qu'il est nécessaire d'établir des moyens préservant les données pen- dant les périodes d'arrêt de la mémoire de données 20, ou d'écrire les données nécessaires dans les éléments de rem- placement des mémoires mortes programmables,dans le cadre d'une procédure d'initialisation, au moment de la remise en fonctionnement de la mémoire de données 20, après un arrêt. Ce problème est évidemment évité par l'utilisation de la caractéristique d'enregistrement permanent, non volatil, d'une mémoire morte programmable. Un premier multiplexeur 50 reçoit les signaux d'adresse d'entrée de moindre poids AIO-AI 5 sur son entrée B et les six bits de données de sortie d'adresse traduite de la mémoire morte programmable 42, ATO-AT 5, sur son entrée A. De façon similaire, un multiplexeur 52 reçoit les six signaux 1 i d'adresse d'entrée AI 6- AI 11 sur son entrée B et les six bits de données d'adresse traduite de sortie, provenant de la mémoire morte programmable de traduction 44, sur son entrée A Un signal d'ordre de traduction TRANSEN* est normalement à l'état haut de façon à attaquer les entrées de sélection B des multiplexeurs 50 et 52, pour que les signaux d'adresse entrants AIO-AI 5 soient présentés en sortie sous la forme de signaux d'adresse de mémoire AO-A 5, et pour que les signaux d'adresse entrants AI 6-AI 11 soient émis sous la forme de signaux d'adresse de mémoire A 6-All Lorsqu'apparait un signal de validation de traduction TRANSEN*, actif à l'état bas, les entrées A des multiplexeurs 50, 52 sont excitées de façon que les données enregistrées par la mémoire morte programmable de traduction A, 42, définissent l'état des bits d'adresse de mémoire de moindre poids AO-A 5, et de façon que les données enregistrées par la mémoire morte programmable de traduction B, 44, définissent l'état des bits d'adresse de mémoire A 6-All Une porte ET 54 à entrées multiples -reçoit les signaux d'entrée d'adresse AI 12-AI 18 et les présente en sortie sous la forme des signaux A 12-A 18, sous l'effet d'un état logique 1 du signal TRANSEN*, qui apparait lorsqu'aucune traduction ne doit avoir lieu Par conséquent, en l'absence de traduction, les signaux d'adresse d'entrée AI 12-AI 18 sont transmis inchangés sous la forme de signaux d'adresse de mémoire A 12- A 18 correspondants et, dans le cas o une adresse est tra- duite, les signaux d'adresse traduits A 12-A 18 sont présentés en sortie avec l'état logique 0 En association avec le bit d'adresse A 19, ces bits d'adresse à l'état logique O dési- gnent correctement le module-d'enregistrement destinataire 26, de 4 K mots, et seuls les 12 bits de moindre poids sont nécessaires pour identifier une position de mot dans le module 26. On peut ainsi voir que dans le cas o une traduc- tion d'adresse doit avoir lieu, les six bits de données émis par la mémoire morte programmable de traduction A, 42, et les six bits de données émis par la mémoire morte pro- grammable de traduction B, 44, se combinent pour former les 12 bits d'adresse de mémoire AO-All, nécessaires pour sélectionner une position de mot désignéedans le module d'enregistrement destinataire 26 Simultanément, ces 12 bits d'adresse sont transmis en tant que signaux d'entrée d'adresse à la mémoire morte programmable de défaut 48, pour sélectionner l'une des 4 K positions de mot dans la mémoire morte programmable de défaut 48 Chaque mot dans la mémoire morte programmable de défaut 48 correspond ainsi avec une correspondance biunivoque à un mot contenu dans le module d'enregistrement destinataire 26 Les 8 bits d'un mot de données adressé dans la mémoire morte programmable de défaut 48 sont transmis vers un ensemble d'entrées d'un com- parateur 56, dans lequel quatre bits désignés par FKO-FK 3 sont comparés avec les quatre bits de données désignés par AKO-AK 3 qui sont émis par la mémoire morte programmable de clé A, 40, dans lequel trois bits de données désignés par FK 4-FK 6 sont comparés à trois bits de données désignés par BKO-BK 2 qui sont émis par la mémoire morte programmable de clé B, 46, et dans lequel le huitième bit de données dési- gné par FK 7 est comparé à un niveau de tension de + 5 V qui correspond à un état logique 1 Lorsqu'apparait une iden- tité entre les huit paires de bits de données, le compara- teur 56 génère un signal de sortie appelé Défaut, qui indi- que que l'adresse entrante a sélectionné une position défectueuse dans le module d'enregistrement principal 24, etqlu'ne traduction d'adresse doit avoir lieu. Du fait que dans n'importe quelle mémoire de données 20 déterminée, il est improbable de trouver dans le module d'enregistrement principal 24 le nombre maximal de 4 K de positions de mot défectueuses, la totalité des 4 K positions de mot de la mémoire morte programmable de défaut 48 et du module d'enregistrement destinataire 26 ne sont habituellement pas utilisées On utilise donc le huitième bit de la mémoire morte programmable de défaut 48, désigné par FK 7, pour indiquer si une position de mot adressée dans la mémoire morte programmable de défaut 48 est ou non une adresse qui est effectivement utilisée pour la traduction. Lorsqu'un signal d'entrée d'adresse appliqué à la mémoire morte programmable de défaut 48 est un signal qui correspond réellement à une position de mot donnant lieu à traduction, le huitième bit de données FK 7 est placé à l'état logique 1, de façon à pouvoir être comparé avec succès au signal d'en- trée correspondant à l'état logique 1 qui est appliqué au comparateur 56 Ceci suppose que la mémoire morte programma- ble de défaut 48 est fabriquée dans un état dans lequel elle ne contient pas de données, ou dans lequel toutes les liai- sons fusibles des sorties de données sont intactes, ce qui donne des O partout Pour d'autres types de mémoires mortes programmables qui sont fabriquées avec un état de données initial correspondant exclusivement à des 1, il serait sou- haitable de changer le huitième bit en un O pour indiquer un état correspondant à une adresse défectueuse, afin qu'un changement effectif des données de la mémoire morte program- mable soit nécessaire pour indiquer un état correspondant à une adresse défectueuse, nécessitant une traduction. Du fait que la mémoire morte de traduction A 42 reçoit 10 bits d'adresse codés en binaire AIO-AI 9 qui correspondent à 1 K mots ou états et qu'elle n'émet que six bits de données traduites codés en binaire, il y a 16 états d'adresse (quatre bits codés en binaire) correspondant à chaque état d'adresse traduite qui est émis par la mémoire morte programmable de traduction 42 Une mémoire morte pro- grammable de clé 40 reçoit les dix adresses d'entrée et elle génère en réponse quatre bits de données de clé codés sous forme binaire qui définissent 16 états, pour permettre l'affectation de chacune des 16 adresses d'entrée correspon- dant à chaque état d'adresse traduite de la mémoire morte programmable de traduction A, 42, à l'un des 16 états que peut définir la mémoire morte programmable de clé A, 40. Entre eux, la mémoire morte programmable de clé A, 40, et la mémoire morte programmable de traduction A, 42, reçoivent donc dix bits d'adresse d'entrée codés sous forme binaire, qui permettent une projection particulière biunivoque des 1024 états définis par les bits d'adresse d'entrée AIO-AI 9 vers 1024 états définis par les bits de données de sortie codés sous forme binaire de la mémoire morte programmable de clé A, 40, et de la mémoire morte programmable de traduc- tion A, 42. D'une manière similaire, la mémoire morte program- mable de traduction B, 44, et la mémoire morte programmable de clé B, 46 reçoivent 9 bits d'adresse d'entrée codés sous forme binaire AI 10-AI 18 et elles déterminent une projection particulière biunivoque de 512 états définis par ces bits d'adresse d'entrée vers 512 états définis par les 9 bits de sortie codés sous forme binaire qui sont désignés par BTO-BT 5 et BKO-BK 2 On voit ainsi que les mémoires mortes programmables de traduction 42-44 accomplissent une traduc- tion d'adresse qui fait passer des 19 bits d'adresse d'en- trée AIO-AI 18 à 12 bits d'adresse de sortie AO-Ail Ainsi, à partir de l'ensemble d'états définis par les adresses d'entrée, le sous-ensemble d'états ou de positions de mot correspondant à des défauts de mémoire est traduit ou pro- jeté en un second ensemble d'états correspondant à des positions de mots dans le module d'enregistrement destina- taire 26 On voit en outre qu'il y a 128 états d'adresse d'entrée ( 7 bits) pour chacun des 4 K états d'adresse ( 12 bits) dans la mémoire morte programmable de défaut 48 et dans le module d'enregistrement destinataire 26 Les mémoires mortes programmables de clé A et B, 40, 46, enre- gistrent 7 bits de données de clé qui permettent une iden- tification sans ambiguïté de l'un des 128 états d'adresse correspondant à chaque signal de sortie combiné des mémoires mortes programmables de traduction qui doit être sélectionné en tant que position d'adresse défectueuse, et traduit en une position du module d'enregistrement destinataire 26. Par exemple, si l'adresse O était une adresse défectueuse et devait être traduite pour donner l'adresse d'ordre le plus bas dans le module d'enregistrement desti- nataire 26, les mémoires mortes programmables de traduction A et B, 42, 44, enregistreraient uniquement des O aux mots d'adresse d'entrée O qu'elles contiennent Douze bits de l'adresse traduite O produiraient ainsi une traduction fai- sant passer à la position de mot d'ordre le plus bas dans le module d'enregistrement destinataire 26 ainsi que dans la 25086-87 mémoire morte programmable de défaut 48 Cent vingt-sept positions d'adresse d'entrée non défectueuses seraient éga- lement affectées à l'état d'adresse traduite ne comportant que des 0, des mémoires mortes de traduction 42, 44 Cepen- dant, à chacune de ces 127 adresses non défectueuses ainsi qu'à l'adresse défectueuse serait affectée une combinaison particulière de codes de données de clé, dans les mémoires mortes programmables de clé A et B 40, 46 Le mot O de la mémoire morte programmable de défaut 48 enregistrerait alors la combinaison particulière de sept bits de données de clé de défaut qui coïncide avec la combinaison des sept bits de données de clé enregistrés dans les mémoires mortes programmables de clé A et B 40, 46 qui correspondent à celle des 128 positions d'adresse d'entrée qui correspond elle-m Cme à l'état d'adresse traduite ne comportant que des O des mémoires mortes programmables de traduction,cqui représente réellement une position d'enregistrement défec- tueuse A l'apparition de cette adresse, le comparateur 56 détecte une coïncidence entre l'ensemble des huit paires de signaux d'entrée et il génère un signal de défaut de sortie. Ce signal de défaut est appliqué à une entrée d'une porte NON-ET 60 dont la sortie génère le signal d'ordre de traduction TRANSEN* qui attaque les entrées de sélection B des multiplexeurs 50 et 52 Ce signal est égale- ment appliqué à une porte NON-ET 62 sont la sortie génère le vingtième signal d'adresse A 19 qui détermine la sélection du module d'enregistrement-principal 24 lorsqu'il est à l'état logique 0, ou du module d'enregistrement destinataire 26, lorsqu'il est à l'état logique 1. Le signal INVALIDATION DEFAUT* est reçu à partir de l'interface de bus concernant la mémoire de données 20 et il est transmis de façon àinvalider sélectivement la porte NON-ET 60 lorsqu'il est à l'état logique O Il est également inversé et appliqué à une porte NON-ET 64 qui reçoit en tant que second signal d'entrée le signal d'adres- se d'entrée AI 19 provenant de l'interface de bus Le signal de sortie de la porte NON-ET 64 est appliqué à une seconde entrée de la porte NON-ET 62, de façon qu'à l'apparition d'un état logique O pour le signal INVALIDATION DEFAUT*, le signal d'adresse de mémoire A 19 soit généré en correspon- dance directe avec le signal d'adresse d'entrée AI 19 reçu par le circuit d'interface de bus 22 On voit que l'appari- tion du signal INVALIDATION DEFAUT* a l'état logique O fait apparaître le signal TRANSEN* à l'état logique 1, ce qui fait que les bits d'adresse de mémoire AO-A 18 sont générés en correspondance directe avec les signaux d'adresse entrants AIOAI 18, pour permettre l'adressage de toutes les positions du module d'enregistrement de données 23, sans que ceci soit gêné par le traducteur d'adresse 28. Bien que le traducteur d'adresse 28 puisse théo- *riquement accepter 4 K erreurs, il existe certaines restric- tions sur la manière selon laquelle des adresses de traduc- tion peuvent être affectées aux adresses entrantes, pour des positions défectueuses Il en résulte que la probabilité d'être capable d'affecter correctement des traductions d'adresse pour accepter toutes les erreurs diminue considé- rablement lorsque le nombre d'erreurs dépasse environ 3500 sur 4096 Ceci résulte du fait qu'il y a un certain nombre de restrictions sur la manière selon laquelle des adresses relatives à des mots effectifs dans le module d'enregistre- ment principal 24 sont traduites en adresses pour des mots contenus dans le module d'enregistrement destinataire 26. Par exemple, on peut se représenter l'opération consistant à séparer les adresses d'entrée AIO-l I 9 en un groupe-A et les adresses d'entrée AI 101 118 en un groupe B comme une opération consistant à créer une matrice bidimensionnelle de positions de mot, dans laquelle les adresses A représen- tent une première dimension et les adresses B représentent la seconde dimension Pour chaque état d'adresse de la dimension A, il y a 9 bits ou 512 états d'adresse de la dimension B, et on peut considérer les états d'adresse de la dimension A comme 1024 lignes, chacune d'elles représen- tant un état d'adresse A, qui coupent 512 lignes de la dimension B, chacune d'elles représentant un état d'adresse B particulier et différent Il peut ainsi y avoir jusqu'à 512 erreurs associées à chaque adresse de la dimension A. Cependant, à chaque adresse de la dimension A doit être affectée une seule adresse particulière de traduction à 6 bits, par la mémoire morte programmable de traduction 42, et les positions de mot multiples défectueuses-qui peuvent être associées à cette adresse peuvent être distinguées sans ambiguïté enraflectatàIbacun une adresse de traduction parti- culière dans la mémoire morte programmable de traduction B, 44 Par exemple, si 6 positions de mot défectueuses sont associées à une adresse donnée de la dimension A, la-mémoire morte programmable de traduction A, 42, peut enregistrer des données affectant l'adresse traduite ne comportant que des O à cette adresse de la dimension A Cependant, une adresse de traduction B différente, dans la mémoire morte programmable 44, doit être affectée à chacune des adresses associées de la dimension B qui représentent des positions de mot défec- tueuses Par exemple, si les adresses défectueuses de la dimension B qui sont associées à l'adresse donnée de la dimension A sont 1, 10, 20, 33, 44 et 56, les états de données respectifs 0, 1, 2, 3, 4 et 5 seraient affectés aux positions de mot correspondantes dans la mémoire morte pro- grammable de traduction B, 44 On voit ainsi que bien que des positions d'erreur multiples puissent être associées à une adresse donnée de la dimension A, en affectant des états de données différents, dans la mémoire morte programma- ble de traduction B, 44, aux différentes adresses associées de la dimension B, on peut effectuer une traduction parti- culière, avec une correspondance biunivoque, faisant corres- pondre chaque adresse entrante qui identifie une position de mot défectueuse à une adresse traduite dans le module d'en- registrement destinataire 26 Cependant, la mémoire morte programmable de traduction B, 44, ne présente en sortie que 6 bits qui définissent 64 états particuliers Il est donc possible d'accepter un maximum de 64 positions de mot défectueuses associées à une ligne d'adresse donnée de la dimension A En outre, pour chaque adresse traduite de la dimension B dans la mémoire morte programmable de traduction B, 44, il ne peut y avoir que 8 adresses différentes associées de la dimension B qui sont distinguées par les trois bits * de la mémoire morte programmable de clé B, 46 Par consé- quent, lorsque le nombre total de positions de mot défec- tueuse augmente en se rapprochant de la capacité maximale de 4096, on assiste à une diminution de la probabilité d'exis- tence d'états disponibles dans les mémoires mortes program- mables B, 44 et 46, pour recevoir les erreurs multiples associées, dans une adresse donnée de-la dimension A De façon similaire, on assiste à une diminution de la probabi- lité d'avoir des états disponibles dans les mémoires mortes programmables de la dimension A, 40, 42, pour recevoir des positions de mot défectueuses multiples qui sont associées à une adresse donnée de la dimension A Une étude statisti- que a indiqué que pour la configuration représentée sur la figure 2, la probabilité qu'il soit possible de réaliser une traduction pour la totalité des positions de mot défectueu- ses diminue fortement lorsque le nombre de positions de mot défectueuses s'approche de 3500. Il existe un certain nombre de restrictions sur l'affectation d'états de données aux mémoires mortes program- mables A et B, 40-46, qui affectent la possibilité d'accep- ter le nombre maximal théorique d'erreurs Ces restrictions sont les suivantes 1 Il ne peut pas y avoir plus de 64 erreurs associées à chaque état de traduction de la dimension A ou au code d'adresse de traduction correspondant. 2 Il ne peut pas y avoir plus de 64 erreurs associées à chaque état de traduction de la dimension B ou au code d'adresse correspondant. 3 L'affectation d'un code d'adresse de la dimension A, associé avec une position de mot défectueuse, à une adresse traduite dans les mémoire mortes programmables A, 40, 42, doit se faire selon une projection avec une correspondance biunivoque. 4 L'affectation d'un code d'adresse de la dimension B, associé avec une position de mot défectueuse, à une adresse traduite dans les mémoires mortes programmables B, 44, 46, doit se faire selon une projection avec une correspondance biunivoque. L'affectation d'adresses traduites dans la mémoire morte programmable de traduction A, 42, aux adresses de la dimension A et des adresses traduites dans la mémoire morte programmable de traduction B, 44, aux adresses de la dimension B doit se faire de telle manière que pas plus d'une adresse d'entrée définissant une position de mot défectueuse soit associée à chaque combinaison d'un état de données de la mémoire morte programmable de traduction A, 42, et d'un état de données de la mémoire morte programmable de traduction B, 44. La figure 3 représente une autre configuration d'un traducteur d'adresse 70 qui offre plus de souplesse dans l'affectation des adresses de traduction aux adresses d'entrée pour les positions de mot défectueuses Bien qu'il soit représenté sous une forme légèrement simplifiée, le traducteur d'adresse 70 est essentiellement le m 8 me que le traducteur d'adresse 20 représenté sur la figure 2, à l'exception du fait qu'une mémoire de données adressable, appelée mémoire morte programmable-de correspondance, 72, est intercalée entre certaines des sorties de données de la mémoire morte programmable de traduction A, 42, et de la mémoire morte programmable de traduction B, 44, et 6 des entrées d'adresse de la mémoire morte programmable de défaut 48 Le mémoire morte programmable de correspondance 72 est une mémoire de 128 mots de 6 bits qui reçoit quatre des bits de sortie, désignés par AT 3-AT 6, de la mémoire morte program- mable de traduction A, 42, en tant que première partie du signal d'entrée d'adresse, et trois des bits de données de sortie, désignés par BTO-BT 2, de la mémoire morte programma- ble de traduction B, 44, en tant que seconde partie du signal d'entrée d'adresse Les bits de données de sortie restants BT 3-BT 5 sont appliqués à la mémoire morte program- mable de défaut 48, en tant que signaux d'entrée d'adresse. La mémoire morte programmable de correspondance 72 reçoit donc un total de 7 bits d'entrée d'adresse, qui permettent de sélectionner sans ambiguïté les 128 mots enregistrés dans cette mémoire, dont la moitié seulement seront réellement utilisés. De façon générale, le signal d'entrée à 12 bits et le signal de sortie à 7 bits de la mémoire morte progra m- mable de défaut 48 créent un tableau bidimensionnel de 4 K sur 128 Sur chacun des 4 K états ou mots d'adresse d'entrée doivent être projetés 128 des 512 K états d'adresse d'entrée du système, dont un au maximum doit être traduit Le signal de sortie de données de clé à 7 bits détermine celui qui doit être traduit. Cependant, bien qu'il réduise la taille des mémoires mortes programmables 40, 42, 44, 46 destinées à l'affectation de code du premier étage, le groupement des bits d'adresse d'entrée en un groupe A (AIO-AI 9) et un groupe B (AI 10-AI 19) impose des restrictions sur l'affecta- tion des états ou mots d'adresse d'entrée aux états ou mots d'adresse de mémoire La configuration de la figure 2 crée en fait deux tableaux bidimensionnels (AKO-AK 3) x (ATO-AT 5) et (BK 0-BK 2) x (BT 0-BT 5) Dans ces conditions, au lieu d'avoir la liberté d'affecter arbitrairement les états d'adresse d'entrée correspondant à des positions de mot défectueuses, à l'un des 4 K états ou adresses de tra- duction, le groupe A doit être affecté à un tableau de dimensions 64 x 16 et le groupe B doit être affecté à un tableau de dimensions 64 x 8 La préservation de l'unicité exige que chacun des 64 états AT (ATO-AT 5) corresponde à un maximum de 64 défauts qui doivent être distingués en affectant chacun d'eux à l'un particulier des 64 états BT (BTO-BT 5) De façon similaire, chacun des 64 états BT (BTO-BT 5) doit correspondre à un maximum de 64 défauts qui doivent être distingués en affectant chacun d'eux à l'un particulier des 64 états AT (ATO-AT 5) Ces restrictions conduisent à des difficultés dans l'affectation effective de plus de 3500 erreurs, sur ure capacité totale de 4096. L'utilisation de la mémoire morte programmable de correspondance 72 de la figure 3 ajoute une dimension ou un degré de liberté supplémentaire à l'affectation d'adresses d'entrée à des adresses de défaut, ce qui assou- plit ces restrictions Il est alors statistiquement proba- ble qu'un nombre d'erreur proche de la capacité totale d'erreur puissent être projetées du groupe d'adresse d'entrée B dans le tableau du second étage (BT 0-BT 5) x (BK 0-BK 2) La limite de la possibilité de projection avec succès apparat- tra très probablement au moment de la projection ultérieure du groupe d'adresse A dans le tableau du second étage (AT 0-AT 5) x (AKO-AK 3). Dans la configuration de la figure-3, un septième bit de sortie est ajouté à la mémoire morte de traduction A, 42, ce qui crée un tableau (ATO-AT 6) x (AKO-AK 2) de dimen- sions 128 x 16, vers lequel les lignes ou états d'entrée A peuvent être projetés de façon relativement aisée, au point de vue statistique, en laissant la moitié des états de sor- tie vides. La mémoire morte programmable de correspondance 72 crée ainsi un ensemble de cinq tableaux ou dimensions du troisième étage, (AK 0-AK 3), (ATO-AT 2) , (CTO-CT 5), (BT 3-BT 5) et (BKO-BK 2). Chaque état d'adresse d'entrée A correspondant à une position de mémoire défectueuse doit pouvoir être défini par une combinaison particulière de (AKO-AK 3), (ATO-AT 2) et (CTO-CT 5) tandis que chaque état d'adresse d'entrée B correspondant à une position de mémoire défectueuse doit pouvoir être défini simultanément par une combinaison parti- culière de (CTO-CT 5), (BT 3-BT 5) et (BKO-BK 2) La mémoire morte programmable de correspondance 72 fait ainsi dispa- raître les exigences strictes d'un tableau 64 x 64 défini par les adresses de traduction (ATO-AT 5) par (BT 0-BT 5) et ajoute une souplesse supplémentaire qui plermet à un état d'entrée A ou B donné de correspondre à plus de 64 posi- tions de défaut, ou permet l'affectation d'états d'entrée pour des positions de mot défectueuses dont l'affectation pourrait par ailleurs être impossible, à cause de restric- tions. La figure 4 représente une configuration d'un traducteur d'adresse 80 dans lequel une mémoire morte pro- grammable de défaut 82, de 512 K par 1 reçoit l'ensemble des 19 bits de l'information d'adresse d'entrée, AI 0-AI 18, et présente en sortie un seul bit qui définit le bit d'adresse traduite AT 19 et commande un multiplexeur 84 Un signal de sortie de données à l'état logique 1 provenant de la mémoire morte programmable de défaut 82 accède au module d'enregistrement destinataire 26 et commande le multiplexeur 84 de façon qu'il sélectionne les signaux d'entrée A, cons- titués par des bits d'adresse traduite ATO-AT 5 provenant de la mémoire morte programmable de traduction A, 42, et des bits d'adresse traduiteBTO-BT 5 provenant de la mémoire morte programmable de traduction B, 44 Les signaux d'entrée A restants qui correspondent aux signaux de sortie A 12-A 18 sont présumés être à l'état logique 0 Le multiplexeur 84 émet les 19 bits d'ordre inférieur de l'adresse traduite, AO-A 18 Dans cette configuration, la mémoire morte program- mable de défaut 82 enregistre un mot à 1 bit pour chaque mot adressable de la mémoire de données Si le mot est défectueux, une adresse traduite lui est affectée par les mémoires mortes programmables de traduction 42, 44, et la mémoire morte programmable de défaut 82 enregistre un 1. Si la position correspondant à une adresse d'entrée donnée n'est pas défectueuse, la mémoire morte programmable de défaut 82 enregistre un 0 Cette configuration est plus sou- ple que les configurations des figures 2 et 3, dans la mesure o elle n'impose aucune contrainte sur l'affectation d'adresse traduitesaux adresses d'entrée pour les positions de mot défectueuses On peut toujours utiliser la capacité totale de 4 K mots d'enregistrement pour les adresses tra- duites, dans le module d'enregistrement destinataire 26. Simultanément, la séparation des adresses d'entrée en deux dimensions réduit notablement la taille des mémoires mortes programmables de traduction A et B, 42, 44 L'inconvénient de la configuration de la figure 4 est évidemment la grande taille de la mémoire morte programmable de défaut 82 Les prix pratiqués en 1981 pour les éléments d'enregistrement de données qui constituent la mémoire morte programmable de défaut 82 rendent la configuration de la figure 4 moins économique que les configurations des figures 2 et 3. La figure 5 représente un traducteur d'adresse 90 qui constitue encore une autre configuration d'un traducteur d'adresse conforme à l'invention, qui sépare les-signaux d'adresse entrants en zones à plusieurs dimensions Dans la configuration de la figure 5, les adresses entrantes qui sont associées à une position de mot défectueuse sont tra- duites par les mémoires mortes programmables de traduction A et B, 42, 44, de façon à correspondre à une position dans le module d'enregistrement destinataire 26 Une mémoire mor- te programmable de défaut 92, de 4 K par 19, enregistre les adresses d'entrée complètes à 19 bits pour les positions de mot défectueuses qui sont traduites Un comparateur 94 reçoit les 19 bits ou signaux d'adresse d'entrée, ainsi que les 19 bits de données provenant de la mémoire morte pro- grammable de défaut 92, et lorsqu'une correspondance complè- te est atteinte, il génère un signal de sortie, appelé DEFAUT qui positionne le bit de plus fort poids A 19 de l'adresse traduite, et attaque également une entrée de sélection A d'un multiplexeur 96 Le multiplexeur 96 reçoit sur ses entrées A les bits d'adresse traduite ATO-AT 5 pro- venant de la mémoire morte programmable de traduction A, 42, et les signaux d'adresse traduite BTO-BT 5 provenant de la mémoire morte programmable de traduction B, 44, et les signaux d'adresse d'entrée AIOAI 18, sur son entrée B. Par conséquent, chaque fois que le signal de sor- tie d'adresse traduite des mémoires mortes programmables de traduction A et B, 42, 44, adresse une position de mot dans la mémoire morte programmable de défaut 92 qui enregistre l'adresse d'entrée courante, le comparateur 94 génère un signal de sortie indiquant qu'une traduction d'adresse doit être effectuée, et il commande le multiplexeur 96 de façon à remplacer l'adresse d'entrée par le signal de sortie à 12 bits provenant des mémoires mortes programmables de tra- duction A et B, 42,, 44 Il devient ainsi possible d'accep- ter la totalité des adresses en affectant 128 états d'adresse à chacun des 4 K états de traduction enregistrés par les mémoires mortes programmables de traduction 42, 44, tandis que la mémoire morte programmable de défaut 92 indi- que laquelle des 128 adresses correspond à une position de mot défectueuse qui doit être traduite, les 127 autres adresses étant transmises inchangées par le multiplexeur 96. La figure 6 représente un traducteur d'adresse 100 qui est fonctionnellement similaire au traducteur d'adresse 20 représenté sur la figure 2, à l'exception du fait que les adresses d'entrée sont séparées en trois dimensions ou grou- pes désignés par A, B et C Les adresses d'entrée AI 0-AI 6 sont transmises à une mémoire morte programmable de clé A, 102, de 128 mots de 3 bits, ainsi qu'à une mémoire morte programmable de traduction A, 104, de 128 mots de 4 bits. Les 7 bits de données qui sont enregistrés par les mémoires mortes programmables A, 102, 104, déterminent une projection particulière biunivoque des bits d'adresse d'entrée AIO-AI 6 vers les états de données qui sont définis par les 7 bits de données des mémoires mortes programmables A. Les bits d'adresse d'entrée AI 7-AI 12 sont transmis aux entrées d'adresse d'une mémoire morte programmable de clé B, 106, à 64 mots de 2 bits, et à une mémoire morte pro- grammable de traduction B, 108, à 64 mots de 4 bits Les 6 bits de données de la mémoire morte programmable de clé B 106 et de la mémoire morte programmable de traduction B, S, définissent une projection particulière biunivoque des 6 bits d'adresse d'entrée AI 7-AI 12 vers les états qui sont définis par les 6 bits de données enregistrés dans les mémoires mortes programmables B D'une manière similaire, une mémoire morte programmable de clé C, 110, et une mémoire morte programmable de traduction C, 112 reçoivent les 6 bits d'adresse d'entrée restants AI 13-AI 18. Comme avec la configuration de la figure 2, les 12 bits de données qui sont enregistrés par les mémoires mortes programmables de traduction A, B et C, 104, 108, et 112 sont combinés de façon à générer les signaux d'adresse traduits ATO-A T 11 qui sont transmis à une mémoire morte programmable de défaut 114, de 4 K par 8. A chaque position de mot faisant partie de la mémoire morte programmable de défaut 114, sont enregistrés 7 bits de données qui identifient les états de clé particu- liers identifiant, parmi un ensemble d'états de clé qui sont associés à l'adresse d'entrée défectueuse, celui qui est traduit pour correspondre à l'adresse de mot particulière dans la mémoire morte programmable de défaut 114 Ainsi, trois des 7 bits de données correspondent à trois bits enregistrés par la mémoire morte programmable de clé A, 102, deux des bits de données sont associés aux deux bits de données enregistrés par la mémoire morte programmable de clé B, 106, et les deux bits restants parmi les sept bits de données correspondent aux deux bits de données enregis- trés par la mémoire morte programmable de clé C, 110 La mémoire morte programmable de défaut 114 enregistre égale- ment à chaque position de mot un huitième bit de données qui indique si le mot adressé en particulier dans la mémoire morte programmable de défaut 114 représente une adresse de traduction ou simplement une adresse inutilisée Ce huitième bit est transmis à un comparateur 116 en tant que signal de validation Lorsque le comparateur 116 est validé par une indication d'une adresse de défauts sous l'action du huitiè- me bit de la mémoire morte programmable de défaut 114, il compare les 7 bits provenant de la mémoire morte programma- ble de défaut 114 avec les 7 bits correspondants provenant des mémoires mortes programmables de clé 102, 106 et 110, et il génère sur sa sortie le signal de traduction d'adresse de plus fort poids AT 19 Ce vingtième bitest également transmis à l'entrée de sélection B d'un multiplexeur (non représenté) qui réagit en présentant en sortie les 12 bits de données provenant des mémoires mortes programmables de traduction, en tant que signaux d'adresse de mémoire AO-A 11. En l'absence dfun signal de sortie à l'état logique 1 pro- venant du comparateur 116, le multiplexeur transmet simple- ment les signaux d'adresse d'entrée AIO-AI 18, en tant que signaux d'adresse de mémoire respectifs AO-A 18. La séparation des adresses d'entrée en trois dimensions au lieu de deux dimensions ne change pas le fonc- tionnement fondamental du traducteur 100, mais réduit effec- tivement la taille totale cumulée des mémoires mortes pro- grammables de traduction et de clé, et a une influence sur l'affectation des adresses de traduction Par exemple, dans la configuration à deux dimensions telle que celle représen- tée sur la figure 2, une ligne d'adresse A peut être asso- ciée au maximum à 64 positions de mot défectueuses, sur un total possible de 512 Dans la configuration qui est repré- sentée sur la figure 6, on peut considérer que la dimension A se combine séparément et indépendamment avec la dimension B ainsi qu'avec la dimension C pour définir l'un des 128 plans BC Chaque plan BC représentant une position d'adres- se défectueuse doit être affecté à l'un des 16 plans BT CT, de dimensions 16 x 16, ce qui permet d'accepter jusqu'à 256 erreurs dans un seul plan BC, sur un total de 4096 états d'adresse d'entrée De façon similaire, chaque plan AB-de dimensions 128 x 64, représentant une position d'adresse défectueuse, doit être affecté à l'un des 16 plans AT BT, et chaque plan AC, de dimensions 128 x 64, représentant une position d'adresse défectueuse, doit être affecté à l'un des 16 plans AT CT. On pourra mieux comprendre la manière selon laquelle les états de données sont affectés aux positions d'adresse de mot des mémoires mortes programmables du mode de réalisation de l'invention représenté sur la figure 2, en se référant aux figures 7-9 La figure 7 illustre la séparation des adresses entrantes en un groupe A correspon- dant à une première dimension et un groupe B correspondant à une seconde dimension Le résultat consiste en un plan dans lequel les adresses du groupe A augmentent horizonta- lement de gauche à droite et dans lequel les adresses du groupe B augmentent verticalement de haut en bas Chaque ligne d'adresse du groupe A rencontre chaque ligne d'adresse du groupe B et, de façon similaire, chaque ligne d'adresse du groupe B rencontre chaque ligne d'adresse du groupe A Chacun de ces points d'intersection représente un état d'entrée ou une position de mot dans le module d'enregistrement principal 24 On suppose qu'une partie de ces positions de mot sont défectueuses, et on a marqué d'un * les positions défectueuses Pour la commodité de la repré- sentation, les adresses de mot défectueuses ont été concen- trées dans le coin supérieur gauche du plan AB Cependant, en général, on peut s'attendre à ce que les positions d'adresse défectueuses soient réparties de façon aléatoire sur la totalité du plan AB. Pour faciliter l'affectation des états de données de clé et de traduction aux adresses d'entrée pour les mémoires mortes programmables A et les mémoires mortes pro- grammables B, il est commode de faire la liste des lignes qui rencontrent des positions de mot défectueuses, confor- mément au Tableau I et au Tableau II Dans le Tableau I, chacune des lignes B qui rencontre une position de mot défectueuse est indiquée dans la colonne Bi Face à chaque ligne indiquée, le tableau indique dans la colonne n(Bi) (qu'on appellera ultérieurement SB) le nombre total de positions de mot défectueuses que rencontre la ligne Dans la colonne suivante, désignée par A Bi, on a porté les intersections de la ligne A de chacune des positions de mot défectueuses que rencontre la ligne B donnée Ainsi, la ligne B appelée B 4, correspondant à l'adresse d'entrée codée en binaire 000000100 pour les lignes d'adresse AI 10-AI 18 a une intersection avec quatre positions de mot défectueuses qui apparaissent respectivement aux lignes A désignées par A 4, A 25, A 30 et A 35 La dernière colonne, ou colonne d'ordre de plan d'implantation, donne la liste séquentielle des lignes B par ordre du nombre de positions de mot défectueuses que rencontre cette ligne, en faisant figurer en premier les lignes B qui rencontrent le plus grand nombre de positions de mot défectueuses. Dans le Tableau II, la colonne Ai donne la liste des lignes de la dimension A qui rencontrent des positions de mot défectueuses, tandis que la colonne n(Ai) (qu'on désignera ultérieurement par SA) donne la liste des nombres de positions de mot défectueuses que rencontrent les lignes correspondantes figurant dans la colonne Ai La colonne B Ai donne la liste des intersections avec les lignes de la dimension B auxquelles apparaissent des positions de mot défectueuses La colonne d'ordre de plan d'implantation donne une liste numérique séquentielle des lignes A qui rencontrent des positions de mot défectueuses, dans l'ordre du nombre de positions de mot défectueuses rencontrées, avec le nombre le plus grand en premier. Il est également intéressant d'utiliser les tableaux représentés sur les figures 8 et 9 pour l'affecta- tion d'états de données aux mémoires mortes programmables A et B Ces figures divisent les données contenues dans les mémoires mortes programmables en une dimension de données de traduction, selon l'axe horizontal, et en une dimension orthogonale de données de clé, selon l'axe vertical Les mémoires mortes programmables B qui sont représentées sur la figure 8 ont une configuration 64 par 8 et elles sont représentées en deux sections, l'une sur l'autre, pour mieux conformer le tableau à la forme de l'espace de dessin dis- ponible La figure 9 représente le tableau d'états de données de 64 par 16 pour la mémoire morte programmable de traduction A, 42, et la mémoire morte programmable de clé A, 40. Pour l'exemple considéré, on affectera des états de données aux mémoires mortes programmables de traduction et de clé avec une implantation régulière ou uniforme pour les mémoires mortes programmables B et une implantation serrée pour les mémoires mortes programmables A Ainsi, en relation avec la figure 8, on tentera de remplir uniformé- ment les 64 positions d'erreur possibles qui sont associées à chacun des 64 états de traduction B, de façon que tous les états de traduction B soient emplis d'une manière approximativement égale au fur et à mesure que des lignes B sont affectées au plan d'implantation B de la figure 8 Par exemple, la ligne B 4 est affectée à BKO, BTO et rencontre 4 positions de défaut aux lignes A A 4, A 25, A 30 et A 35. Quatre des 64 états de défaut disponiblessont ainsi consom- més par cette affectation Il n'y aura pas d'autre première tentative de projeter une seconde ligne B dans l'état de traduction B désigné par BTO, jusqu'à ce qu'il y ait au moins quatre états de défaut projetés dans tous les autres états de traduction B, B Tl-BT 63 Le programme de projection de mémoire morte programmable envisagé ci-après soustrairait du maximum de 64 les quatre défauts affectés, pour indiquer états disponibles Des lignes B supplémentaires sont ensuite projetées vers les états de traduction B, surlabase du plus grandnombre d'états de défaut disponibles Si un con- flit empêche une projection vers l'état de traduction B ayant le plus grand nombre d'E 6 a-bdedéfautdisponibles, on essaie l'état de traduction B avec les états de défaut qui viennent en second dans l'ordre de disponibilité, et ainsi de suite. Au lieu d'une implantation uniforme, on préfère une technique d'implantation avec un remplissage maximal pour affecter les lignes A au plan d'implantation A, comme le montre la figure 9 On tente de remplir tout d'abord l'ensemble des 64 états de défaut de l'état de traduction A défini par ATO, puis de l'état AT 1, puis de l'état AT 2, et ainsi de suite Si un conflit empêche de projeter une ligne A vers ATO, on essaie de la projeter vers AT 1, puis vers AT 2, et ainsi de suite On obtient ainsi-la plus dense affectation de défauts aux états de traduction A, pour les états ayant les numéros les moins élevés, avec la possibili- té qu'il n'y ait pas de défauts affectés aux états ayant les numéros les plus élevés Les bits de traduction A codés sont alors pris en tant que signaux d'entrée d'adresse de plus fort poids pour le module d'enregistrement destinataire 26 et pour la mémoire morte programmable de défaut 48 Si, par exemple, les huit états de traduction A les plus élevés, AT 56-AT 63, demeurent vides, les 512 derniers mots de la mémoire morte programmable de défaut 48 ne seront jamais adressés, et il n'est pas nécessaire que ces mots soient réalisés matériellement, ce qui réduit le coût du traducteur 28, qui est réalisé avec des modules de 512 mots de 8 bits. En général, la fraction de la mémoire morte programmable de défaut 48 qu'on peut éventuellement supprimer dépend du nombre d'états d'adresse d'entrée qui doivent être traduits, et du rendement avec lequel ces états peuvent être affectés sans conflit aux états de traduction A d'ordre inférieur Si les 16 derniers états de traduction A AT 48-AT 63 étaient laissés vides, les 1 K derniers mots de la mémoire morte programmable de défaut 48 pourraient ne pas être réalisés matériellement En plus de la réduction possible du coût de la mémoire morte programmable de défaut 48, on pense qu'une implantation uniforme des lignes B dans le plan d'implanta- tion B augmente le nombre de lignes A qu'on peut affecter au plan d'implantation A sans conflit, la projection de lignes A sans conflit étant la limite la plus probable pour le nombre maximal d'états de défaut qu'on peut projeter. Bien que les lignes des dimensions A et B qui ne rencontrent pas de positions de mot défectueuses ne soient pas représentées explicitement dans les tableaux et les dessins, ces lignes correspondent également à des états affectés dans les tableaux A et B, conformément à la pro- jection avec une relation biunivoque Cependant, du fait qu'il n'y a aucun problème pour éviter que des lignes B multiples soient associées à des lignes A et que des lignes A multiples soient associées avec des lignes B, dans l'affectation d'adresses non défectueuses (il n'y a pas d'affectation d'un état de clé correspondant dans la mémoire morte programmable de défaut 48), il n'y aura jamais aucun problème pour l'affectation de lignes A ou B qui ne rencon- trent pas une position de mot défectueuse, à son état de données respectif du tableau A ou B On peut simplement affecter ces lignes en dernier (elles rencontrent O posi- tion de mot) à n'importe quel état de données qui est dis- ponible après l'affectation de lignes d'adresse qui ne ren- contrent pas de positions de mot défectueuses. Les lignes d'adresse A et B qui ne rencontrent pas de positions de mot défectueuses représentent en fait une situation d'état indifférent et, selon une variante, on pourrait affecter toutes ces adresses A à un seul état de données dans letableau A, et on pourrait affecter toutes ces adresses B à un seul état de données dans letableau B. Il est simplement nécessaire de faire en sorte, dans la programmation de la mémoire morte programmable de défaut 48, que la position de mot correspondante dans cette mémoire soit programmée de façon que le comparateur 56 ne produise pas une coïncidence, afin qu'aucune traduction d'adresse n'ait lieu pour ces lignes A et B qui ne rencontrent pas de position d'adresse défectueuse. Dans l'exemple considéré, après que toutes les lignes d'adresse B ont été affectées au tableau B de la figure 8, les lignes d'adresse A seront ensuite affectées au tableau A de la figure 9 Bien qu'on se représente le processus ci-dessus comme faisant intervenir l'affectation des lignes A au plan d'implantation A, AK x AT, et l'affec- tation des lignes B au plan d'implantation BK x BT, il faut se souvenir qu'en réalité les lignes A sont des états d'adresse d'entrée ou des positions de mot pour les mémoi- res mortes programmables A, 40, 42, et les états AK et AT sont les données affectées-aux positions de mot correspon- dantes, sous forme codée De façon similaire, les lignes B représentent des états d'adresse d'entrée ou des positions de mot pour les mémoires mortes programmables B, 44, 46, et les états BK et BT représentent les données enregistrées sous forme codée dans les positions de mot correspondantes. On va maintenant considérer le Tableau I, dans lequel la colonne d'ordre de plan d'implantation indique que la ligne de la dimension B désignée par B 4 est la pre- mière à être affectée Cette rubrique étant la première, il n'y a aucun conflit posssible, et la ligne B 4 est affectée à l'état de données 00 Ainsi, les données de clé B, BK, sont égales à O et les données de traduction B, BT, sont égales à O La ligne B 4 rencontre quatre positions d'adres- se de mot défectueuses correspondant aux lignes A désignées par A 4, A 25, A 30, et A 35 Ces données, en compagnie du nom- bre total d'erreurs, sont indiquées dans la case correspon- dant à la position 0, 0, dans le tableau B de la figure 8. La seconde rubrique dans le Tableau I dans la colonne d'ordre de plan d'implantation, correspond à la ligne B désignée par B 17 qui rencontre quatre positions de mot défectueuses, aux lignes désignées par A 16, A 29, A 30 et A 31 La ligne B désignée par B 17 est affectée sans aucune difficulté à l'état de données 0, 1 dans le tableau repré- senté sur la figure 8, et le nombre total associé de posi- tions de mot défectueuses ainsi que les intersections cor- respondantesavec les lignes A sont indiqués dans ce tableau. Du fait qu'il s'agit du premier passage dans BT 1, il n'y a aucun conflit possible résultant d'une double affectation à BT 1 de la même ligne A associée. A la ligne B 18 sort associées quatre positions de mot défectueuses, aux intersections avec les lignes A 29, A 30, A 31, et A 35 Conformément à la configuration de rem- plissage uniforme qui a été pré-établie, les 64 états de défaut pour chaque état de traduction B, ligne B 18, sont introduits à la position 0, 2 du plan d'implantation B. Les quatre positions de mot défectueuses et les intersec- tions correspondantes avec la ligne A sont indiquées dans l'espace disponible Ici encore, le premier passage-dans un état de traduction donné ne soulève pas de conflit, à moins que le nombre de défauts associés pour une ligne B dépasse 64. Le Tableau I indique que la ligne B suivante à affecter est la ligne B 19 A la ligne B 19 sont associées quatre positions de mot défectueuses, aux intersections avec les lignes A 27, A 29, A 30 et A 31 On peut affecter à la ligne B 19 l'état de données 0, 3 dans le tableau B représen- té sur la figure 8 D'une manière similaire, on peut affec- ter à toutes les lignes B qui figurent dans le Tableau II un état de données dans le tableau B représenté sur la figu- re 4, en prenant soin de faire en sorte que la ligne B ne soit pas affectée à une colonne BT telle que les lignes A qui lui sont associées soient également associées à une ligne B affectée précédemment à la même colonne. Dans l'exemple considéré, il n'y a pas eu un nombre d'erreurs suffisant pour établir des rubriques dans toutes les colonnes BT Cependant, dans une mémoire réelle, on prévoit qu'il existe au moins un défaut associé à la plupart des 512 lignes B Une fois que les 64 premières lignes B ont été placées dans le plan d'implantation B, il sera nécessaire de placer la soixante-cinquième ligne B dans une colonne BT déjà occupée par une ligne B On sélec- tionne en premier la colonne BT à laquelle est affecté le plus petit nombre d'états de défaut, et cette colonne sera très probablement la colonne BT 63 En quittant l'exemple considéré, pour illustrer la question, on supposera qu'à la colonne BT 63 est affectée la ligne B 14, avec quatre inter- sections de défaut en A 10, A 75, A 76 et A 200 A-la colonne BT 62 pourrait être affectée la ligne B 510, avec cinq inter- sections de défaut en A 10, A 35, A 501, A 729 et A 1023 Dans toutes les autres colonnes BT serait projetée une ligne B avec au moins cinq défauts associés. La ligne B suivante, ou soixante-cinquième ligne, à être projetée pourrait être la ligne B 485, avec quatre intersections de défaut en A 25, A 75, A 501, et A 842 La colonne BT 63 recevrait la première tentative de projection, du fait que c'est vers elle qu'à été projeté le plus petit nombre d'états de défaut Cependant, le défaut A 75, associé à la ligne B 585 entre en conflit avec le défaut A 75 associé à la ligne B 14, projetée précédemment On sélectionne alors la colonne BT la moins occupée suivante qui pourrait être la colonne 62 Cependant, le défaut A 501 associé à la ligne B 510 entre en conflit avec le défaut A 501 associé à la ligne B 485, ce qui fait qu'on ne peut pas utiliser la colonne B 62 On essaie des colonnes supplémentaires, comme la colonne BT 61, jusqu'à ce qu'on puisse projeter la ligne B 485, sans que les défauts associés ne créent un conflit. Un conflit serait équivalent à affecter la même adresse traduite à deux adresses d'entrée différentes identifiant des positions d'enregistrement défectueuses. Après achèvement du plan d'implantation B, on affecte les lignes A au plan d'implantation A, comme le montre la figure 9 Le processus est essentiellement le même, à l'exception du fait que chaque ligne A est affectée à un état AT qui a un nombre aussi faible que possible d'empla- èmejisdisponibles pour des défauts, au lieu d'effectuer une affectation uniforme vers l'état AT ayant le plus grans nombre d'emplacements disponibles pour des défauts, parmi les 64 possibles En considérant le tableau II, on voit que la ligne A 27 est la première à être affectée, avec quatre défauts en B 19, B 20, B 21 et B 22 Elle est affectée sans conflit à la position 0,0 On trouve ensuite la l-inge A 30, ayant quatre défauts en B 4, B 17, B 18 et B 19 Le défaut B 19 entre en conflit avec le défaut B 19 de la ligne A 27, ce qui impose l'affectation à la position 0,1 La troisième ligne à affecter est la ligne A 35 avec trois intersections de défauts aux lignes B 4, B 6 et B 18 La ligne A 35 peut être affectée à la position 1,0, qui est la première position essayée Ensuite, la ligne A 29 est affectée à la position 0,2 et le processus se poursuit et chaque ligne est affectée à l'état AT ayant le numéro le plus faible et ne créant pas un conflit, jusqu'à ce que toutes les lignes A aient été affectées au plan d'implantation A, comme il est représenté. Une fois que toutes les lignes A associées à des défauts ont été projetées, les lignes restantes, comme la ligne A Opeuvent être projetées vers les états AK, AT dispo- nibles restants. Les tableaux représentés sur les figures 8 et 9 définissent maintenant les données qui doivent être intro- duites dans'les mémoires mortes programmables A et B En considérant la figure 8, on voit que l'état de données 0,0 (modulo 64) est affecté à l'adresse B 4 Le mot d'adresse 4 dans la mémoire morte programmable de traduction B, 44, est ainsi chargé avec O (modulo 64), et le mot d'adresse 4 dans la mémoire morte programmable de clé B, 46, est égale- ment chargé avec l'état de données O (modulo 8) En poursui- vant avec le tableau B, on peut voir que le mot d'adresse 17 de la mémoire morte programmable de traduction B, 44, est chargé avec l'état de données 1 (modulo 64), tandis que la position de mot d'adresse 17 dans la mémoire morte pro- grammable de clé B, 46, est chargée avec l'état de données 0 On voit de façon similaire que les positions d'adresse 18, 19, 6, 3, 27 et 5 dans la mémoire morte programmable de traduction B, 44, sont respectivement chargées avec les états de données 2, 3, 4, 5, 6 et 7 (modulo 64) L'état de données O est chargé dans la mémoire morte programmable de clé B, 46 pour toutes ces positions d'adresse De façon similaire, le tableau A représenté sur la figure 9 montre les états de données pour la mémoire morte programmable de traduction A, le long de l'axe horizontal, et les états de données pour la mémoire morte programmable de clé A, 40, le * long de l'axe vertical, et les adresses d'entrée A correspon- dantes sont indiquées dans les zones d'intersection Ainsi, l'état de données 0,0 est chargé dans la mémoire morte pro- grammable de clé A, 40, et dans la mémoire morte programma- ble de traduction A, 42, à la position d'adresse 27 A l'adresse d'entrée A, 30, l'état de données 1 (modulo 64) est chargé dans la mémoire morte programmable de traduction A, 42, et l'état de données O est chargé dans la mémoire morte programmable de clé A, 40 D'une manière similaire, l'état de données approprie est chargé dans les positions de mot d'adresse dans les mémoires mortes programmables A, 40, 42, pour chaque adresse d'entrée. Les données contenues dans la mémoire morte pro- grammable de défaut 48 peuvent 8 tre obtenues à partir des tableaux A et B représentés sur les figures 9 et 8 Par exemple, l'adresse de mémoire morte programmable de défaut 0,0 correspond à la colonne ATO du tableau A et à la colonne BT O du tableau B Ceci correspond à la position d'erreur ou. de défaut A 35, B 4 Dans le tableau A, l'adresse A 35 corres- pond aux données de clé A 1, ce qui fait que 1 (modulo 16) doit être chargé dans les quatre premières positions de bit de l'adresse 0,0 de la mémoire morte programmable de défaut. De façon similaire, dans le tableau B, la ligne B 4 corres- pond à BK _ 0, ce qui fait-que O (modulo 8) doit être chargé dans les trois positions de bit de données suivantes de l'adresse 0,0 Enfin, 1 est chargé dans la huitième posi- tion de bit pour indiquer que cette adresse correspond à une position de mot défectueuse qui nécessite une traduction lui faisant correspondre une adresse dans le module d'enregistre- ment destinataire 26 Pour les mémoires mortes programmables qui ne présentent que des 1 à l'état intact (avant program- mation), on utiliserait probablement un O pour indiquer un état de traduction valide. De façon similaire, l'adresse 0,1 de la mémoire morte programmable de défaut correspond à la colonne ATO du tableau A et à la colonne ET 1 du tableau B La position d'adresse défectueuse A 16, B 17 est commune à ces colonnes. A l'adresse A 16 est affecté l'état de données de clé A dési- gné par AK 1, ce qui fait que 0001 doit être chargé dans les quatre premiers bits de la position d'adresse 0,1 (module 64) de la mémoire morte programmable de défaut La ligne d'adresse B 17 correspond à l'état de données de clé B dési- gné par BK, ce qui fait que 000 est chargé dans les trois bits suivants de la position de mot 0,1 (modulo 64), dans la mémoire morte programmable de défaut 48 Le huitième bit de cette position de mot est chargé avec un 1, pour indiquer qu'il représente une position d'adresse défectueuse qui nécessite une traduction lui faisant correspondre une adresse du module d'enregistrement destinataire 26 De manière similaire, chaque position de mot défectueuse correspond à une combinaison particulière d'une colonne AT du tableau A et d'une colonne BT du tableau B Cette com- binaison définit une adresse dans la mémoire morte program- mable de défaut 48, et les données qui se trouvent à cette adresse sont chargées avec les quatre bits correspondants des données de clé A, trois bits des données de clé B et un 1, pour indiquer la correspondance avec une adresse pour une position de mot défectueuse qui nécessite une tra- duction lui faisant correspondre une adresse dans le module d'enregistrement destinataire 26 Les 4 K positions disponi- bles dans la mémoire morte programmable de défaut 48 ne sont pas toutes utilisées, et les positions inutilisées, comme l'adresse 0,8 (modulo 64) sont chargées avec un bit O dans le bit numéro 8, pour indiquer qu'aucune traduction d'adres- se n'est à effectuer, et pour bloquer un signal de sortie de défaut du comparateur 56 Le Tableau III montre les données contenues dans la mémoire morte programmable de défaut 48 pour chacune des adresses actives dans l'exemple considéré. La colonne marquée "adresse de défaut" indique l'intersec- tion de la ligne A et de la ligne B à laquelle correspond la position de mot défectueuse pour l'adresse qui est tra- duite. Dans le fonctionnement du traducteur d'adresse 28, on supposera que l'adresse 0000000100 000000100, correspon- dant à l'adresse bidimensionnelle A 4, B 4, est reçue par la mémoire de données 20 à partir du contrôleur 16, en compa- gnie d'un ordre de lecture ou d'écriture approprié Ceci provoque l'accès à la position d'adresse 4 dans la mémoire morte programmable de clé A, 40, et dans la mémoire morte programmable de traduction A, 42 Ces mémoires mortes pro- grammables enregistrent respectivement 0001 et 000010 à ces positions De façon similaire, cette adresse d'entrée déter- mine l'adressage de la position 4 dans la mémoire morte pro- grammable de clé B, 46, et dans la mémoire morte programmable de traduction B, 44 Ces positions enregistrent également respectivement 000 et 000000 Il en résulte que la mémoire morte programmable de traduction A, 42, présente les six bits à la mémoire morte programmable de défaut 48 et à l'entrée A du multiplexeur 50 De façon similaire, la mémoi- re morte programmable de traduction B, 44, présente les six bits 000000 à la mémoire morte programmable de défaut 48 ainsi qu'à l'entrée A du multiplexeur 52 Simultanément, la mémoire morte programmable de clé A, 40, présente les quatre bits 0001 au comparateur 56, tandis que la mémoire morte programmable de clé B, 46, présente les trois bits 000 au comparateur 56 Les douze bits de données qui sont appliqués à l'entrée d'adresse de la mémoire morte programmable de défaut 48 déterminentl'adressage de la position d'adresse 2,0 (modulo 64) et, comme le montre le Tableau III, la mémoire morte programmable de défaut 48 réagit en présentant les huit bits 10001000 au comparateur 56 Ces huit bits de données coïncident avec les huit autres bits de données reçus par le comparateur 56, ce qui fait que ce dernier génère sur sa sortie un signal de défaut à l'état logique 1. Ce signal est inversé par la porte NON-ET 60 pour donner un niveau logique O sous l'effet duquel les multiplexeurs 50 et 52 sélectionnent leurs entrées A pour présenter respective- ment en sortie les signaux d'adresse de mémoire traduite AO-A 5 et A 6All Le signal de sortie au niveau logique O de la porte NON-ET 60 est à son tour inversé par la porte NON- ET 62, de façon à générer le vingtième signal d'adresse de mémoire A 19 au niveau logique 1, pour que le module d'enre- gistrement de données sélectionne sa partie qui constitue le module d'enregistrement destinataire 26 L'adresse d'entrée A 4, B 4 est ainsi traduite en une position d'adresse de mémoire traduite 2,0 (modula 64) dans le module d'enregistre- ment destinataire 26 qui effectue alors la lecture ou l'écriture de données à cette position d'adresse d'une manière qui est transparente pour le contrôleur 16, à l'exception d'un léger retard d'environ 0,25 microseconde qui est nécessaire pour accomplir la traduction d'adresse. Programme d'affectation des données Le programme d'affectation des données doit affecter les états des lignes d'entrée A au plan d'implan- tation A (figure 9) et les états des lignes d'entrée B au plan d'implantation B (figure 8) Une fois que ces affecta- tions sont effectuées, les données que doivent contenir les mémoires mortes programmables A, B et de défaut sont auto- matiquement définies, et les listes nécessaires pour pro- grammer ou pour rompre les liaisons fusibles de ces mémoi- res mortes programmables sont obtenues sans difficulté. L'affectation des états d'entrée A et B aux plans d'implan- tation A et B doit satisfaire aux règles suivantes 1 Il ne peut pas y avoir plus de 64 (NBT) erreurs (élément projeté) associées à chaque code d'entrée A Ceci résulte du fait qu'un seul code d'entrée A doit être affecté à une seule colonne AT dans le plan d'implan- tation A et que les erreurs multiples qui lui sont associées doivent être distinguées par l'affectation des états de ligne d'entrée B correspondants à des colonnes BT diffé- rentes dans le plan d'implantation BT Il y a 64 colonnes BT dans le plan d'implantation B dans la configuration considérée. 2 Il ne peut pas y avoir plus de 64 (NAT) erreurs (élément projeté) associées à chaque code B Ceci est simplement le réciproque du N O 1 ci-dessus. 3 L'affectation au plan d'implantation A d'un état de ligne d'entrée A auquel est associé un défaut ou un élément projeté doit se faire avec une projection établis- sant une relation biunivoque. 4 L'affectation au plan d'implantation B d'un état de ligne d'entrée B auquel est associé un défaut ou un élément projeté doit se faire avec une projection selon une relation biunivoque. Les affectations des lignes d'entrée A et des lignes d'entrée B aux plans d'implantation A et B doivent se faire de telle manière qu'il n'y ait pas plus d'un défaut ou d'un élément projeté associé à chaque combinaison d'une colonne BT et d'une colonne AT. Une étude statistique a indiqué que ces restric- tions limitent le nombre réel d'états qui peuvent être tra- duits à une valeur inférieure à la capacité réelle du maté- riel ( 4096 dans l'exemple considéré) L'organigramme repré- senté sur la figure 10 illustre un algorithme qui projette environ 3500 éléments sur une capacité maximale de 4096, avec une probabilité dépassant 99 % Une liste d'un program- me correspondant, en langage de programmation BASI Cest présentéedans le Tableau V, en annexe Le Tableau IV donne la définition de termes importants qui-sont utilisés dans l'organigramme de l'algorithme, tandis que le Tableau VI établit une corrélation entre les termes définis dans le Tableau IV et les termes utilisés dans le programme présenté dans le Tableau V Les limitations inhérentes au langage de programmation BASIC en ce qui concerne l'utilisation de noms de variables ont nécessité un remplacement de termes dans de nombreux cas Enfin, le Tableau VII indique les opérations qui sont effectuées dans les diverses cases de l'organigramme de la figure 10. L'algorithme représenté sur la figure 10 affecte tout d'abord les codes d'entrée B au plan d'implantation B, dans l'ordre allant du plus grand nombre au plus petit nom- bre d'états de défaut ou d'éléments projetés qui sont asso- ciés à chaque code B L'algorithme affecte ensuite les codes d'entrée A au plan d'implantation A dans l'ordre allant du plus grand nombre au plus petit nombre d'états de défaut ou d'éléments projetés associés à chaque code d'en- trée A Du fait qu'il y a deux fois moins de ligne d'entrée B que de lignes d'entrée A, il y a deux fois plus d'états de défaut par ligne, et la probabilité d'une projection avec succès d'un grand nombre d'erreurs est donc diminuée. Le fait de projeter en premier les lignes B élimine des restrictions qui pourraient par ailleurs être imposées par la projection antérieure des lignes A, et augmente donc la probabilité de projeter avec succès un nombre donné de lignes B Les lignes B sont projetées avec une implantation uniforme, dans laquelle une ligne B suivante est affectée de préférence à un état de colonne BT dans le plan d'implan- tation B ayant le plus grand nombre d'états de défaut dis- ponibles, avec un total de 64 Les colonnes BT sont exami- nées séquentiellement dans l'ordre des nombres d'états de défaut disponibles, et si un conflit empêche d'effectuer une projection vers la colonne BT ayant le plus grans nombre d'états de défaut, on essaie la colonne BT suivante, puis celles qui viennent à la suite, jusqu'à ce qu'on parvienne à effectuer une projection ou que toutes les colonnes BT aient été épuisées. Après la projection des lignes d'entrée B, on projette les lignes d'entrée A avec une implantation serrée. Les lignes d'entrée A sont également projetées dans l'ordre allant du plus grand nombre au plus petit nombre d'états projetés associés Les lignes d'entrée A sont projetées avec un ordre d'implantation serré, selon lequel on essaie de remplir en premier l'état ATO, puis l'état AT 1, puis l'état AT 2 et ainsi de suite On considère que cette implan- tation serrée optimise la probabilité d'affecter avec succès toutes les lignes A au plan d'implantation A, dans le cas de la présence d'un grand nombre d'états projetés. L'implantation serrée a en outre l'avantage de laisser potentiellement vides les états AT ayant des numéros élevés, sans affectation de défaut ou d'élément projeté, dans le cas o la projection porte sur un nombre d'états inférieur à la capacité totale d'éléments projetés Il peut ainsi être possible de réduire le coût du traducteur 28, en ne réalisant pas matériellement les positions d'adresse d'ordre élevé de la mémoire morte programmable de défaut 48. Un total de 2300 éléments projetés peuvent être acceptés relativement aisément, et le programme est capable de réduire le temps d'exécution en traitant simplement les éléments AT en ordre séquentiel de ATO à AT 63 si le nombre total d'erreurs à projeter est inférieur à 2300 Cependant, si le nombre total d'erreurs dépasse 2300, l'ordre séquentiel des éléments AT est initialisé de façon à correspondre à l'ordre ATO à AT 63 et il est modifié pour représenter les défauts dans le module d'enregistrement destinataire 26, mais il est mis à jour après chaque ligne A, de façon à maintenir l'ordre séquentiel allant du plus grand nombre d'états de défaut ou d'éléments projetés au plus petit nom- bre d'états de défaut disponibles ou d'éléments projetés La première alternative est en fait une approximation de la seconde, qui est une alternative préférable réduisant le temps d'exécution du programme. Dans le cas o le programme est incapable d'affec- ter une ligne B donnée au plan d'implantation B ou une ligne A donnée au plan d'implantation A, à cause d'un conflit, la ligne d'entrée-précédente est supprimée de l'affectation au plan d'implantation et elle est échangée, en ordre séquen- tiel, avec la ligne d'entrée non affectée Si la ligne d'en- trée non affectée ne peut toujours pas être affectée, la ligne d'entrée immédiatement précédente est retirée de son plan d'implantation et elle est échangée, dans l'ordre séquentiel des affectations, avec la ligne d'entrée non affectée Ce processus se poursuit jusqu'à ce que la ligne d'entrée non affectée soit affectée sans conflit Le pro- cessus d'affectation normal reprend ensuite et les lignes d'entrées dont l'affectation a été supprimée sont réaffec- tées au plan d'implantation correspondant. Le numéro de chaque ligne affectée sans succès est enregistré dans un tableau E 1 (I) pour éviter l'appari- tion d'une boucle sans fin dans laquelle chaque ligne, parmi deux, ne peut âtre affectée qu'après que l'affectation de l'autre a été supprimée. En considérant maintenant la figure 10, on voit que le-programme d'affectation de données est divisé en trois parties principales, désignées par ADTRAN I, II et III L'utilisation de trois parties n'est pas liée à l'algo- rithme, mais permet simplement de s'adapter à des restric- tions imposées par l'ordinateur particulier sur lequel le programme a été exécuté Les trois parties sont simplement enchaînées ensemble pour constituer un programme complet. Le programme commence en accédant au fichier d'entrée désigné par ADDR U qui contient la liste des adresses défectueuses ou des éléments projetés qui doivent être projetés de l'ensemble d'adresses d'entrée vers l'en- semble d'adresses de sortie On utilise cette liste pour générer un premier fichier pour-le groupe d'adresses d'en- trée B, désigné par B FREQ DAT, et un second fichier pour le groupe d'adresses d'entrée A, désigné par A FREQ DAT. Ces fichiers ont la forme générale des trois premières colonnes du Tableau I et du Tableau II et, pour chaque enregistrement, ils indiquent le numéro de ligne d'entrée (qu'il y ait ou non une position d'adresse défectueuse associée à la ligne), le nombre de positions d'adresse défectueuses ou d'éléments projetés associés à la ligne, et l'intersection des lignes d'entrée A avec la ligne d'en- trée B donnée, à chaque position d'adresse défectueuse. Le programme génère ensuite le fichier de travail BSEQ DAT, qui est déduit du fichier B FREQ DAT et donne la liste des lignes d'adresse d'entrée, en ordre séquentiel, du plus grand nombre d'adresses défectueuses associéesau plus petit nombre d'adresses défectueuses associées. Ainsi, une ligne rencontrant 4 positions d'adresse défec- tueuses, comme la ligne B 4 sur la figure 7, figurerait avant une ligne rencontrant 3 positions d'adresse défectueu- ses, comme la ligne BS Ceci termine la première partie du programme désignée par ADTRAN I. Le programme passe ensuite à la partie ADTRAN II qui affecte le groupe d'adresses d'entrée B au plan d'im- plantation B, consistant en un tableau TB(I,J) qui enregis- tre des données similaires à celles de la figure 8 Le pro- gramme détermine la ligne d'entrée B suivante à partir de l'information BSEQ DAT et il détermine l'état BT suivant à partir d'une liste enchainée FPBO (I) qui conserve les états BT dans l'ordre correspondant au plus grand nombre d'empla- cements vacants pour recevoir des éléments projetés ou des défauts Après un contrôle destiné à vérifier que le nombre de positions d'adresse défectueuses associées à la ligne B courante ne dépasse pas le nombre maximal qui peut être pro- jeté ( 64), le programme effectue un test pour déterminer s'il existe des conflits avec des affectations précédentes. Ainsi, la ligne B courante ne peut pas être projetée vers l'état BT courant si une position de défaut associée à la ligne B courante correspond à une position de défaut asso- ciée à une ligne B qui a été projetée précédemment vers le même état BT Si un conflit existe, le programme retourne au point B auquel un état BT suivant est obtenu à partir de la liste enchaînée FPBC(I), et cet état BT fait l'objet d'un test pour déterminer s'il existe des conflits. Lorsqu'on trouve un état BT sans conflit, la ligne d'entrée B courante est affectée à cet état BT, à un état de clé KB indiqué par une variable IBR(J) qui indique la rangée BK suivante disponible dans le plan d'implanta- tion B pour chaque colonne BT, désignée par J Après l'affectation au plan d'implantation B, la variable IBR(J) est mise à jour en incrémentant l'élément correspondant pour le faire passer à la colonne BT auquel la ligne d'en- trée B a été affectée Une seconde variable MBC(J) enre- gistre le nombre d'emplacements vacants disponibles pour recevoir des défauts ou des états projetés associés à chaque colonne BT Cette variable est initialisée à 64, et lorsqu'une ligne B est introduite dans le plan d'implanta- tion B, elle est mise à jour par soustraction du nombre de positions de défaut associées à la ligne B affectée, à partir de l'élément de MBC correspondant à la colonne BT vers laquelle la ligne B a été projetée La liste enchaînée FPBC(I) est ensuite mise à jour pour conserver les colonnes BT dans l'ordre allant du plus grand nombre d'emplacements vacants disponibles pour recevoir des défauts (MBC) au plus petit nombre d'emplacements vacants disponibles pour rece- voir des défauts, et le programme retourne au point A, auquel un état BT suivant est obtenu et testé pour détermi- ner l'existence de conflits. Dans le cas o le programme ne parvient pas à affecter une ligne d'entrée B donnée à l'une quelconque des 64 colonnes BT, le programme effectue un branchement pour localiser la ligne B affectée le plus récemment dans le plan d'implantation B, TB(I,J) Une fois que cette ligne B affec- tée le plus récemment a été localisée, son affectation est supprimée et les variables associées telles que IBR et MBC sont mises à jour pour représenter cette suppression d'affectation, tandis que l'ordre de la ligne dont l'affec- tation a été supprimée est échangé avec celui de la ligne B qui n'a pas pu etre affectée, dans le fichier BSEQ DAT. Le programme retourne ensuite au point A pour recommencer sa tentative d'affecter la ligne B qui n'a pas pu etre affec- tée, avec l'ordre séquentiel de la ligne B non affectée augmenté d'une unité Lorsque l'affectation de toutes les lignes B au plan d'implantation B est terminée, le program- me passe au point 3 auquel les fichiers BK(I) et BT(J) des mémoires mortes programmables sont écrits Le fichier BK procure simplement une liste séquentielle d'affectations des rangées de clé dans le plan d'implantation B, TB(I,J), dans l'ordre du numéro de ligne d'entrée B Le fichier BT procure une liste séquentielle des affectations des colon- nes BT associées à chaque ligne d'entrée B, dans l'ordre du numéro de ligne d'entrée B La seconde partie du program- me se termine alors avec la génération d'un fichier ASEQ DAT à partir de l'information du fichier A FREQ DAT. La partie III commence par l'obtention de la ran- gée d'entrée A suivante, de la colonne AT suivante dans le plan d'implantation A, et de la ligne B et de la colonne BT associées pour chaque défaut associé à la ligne d'entrée A courante Cette information est utilisée pour accéder aux fichiers de données d'entrée, afin de déterminer si la colonne AT comporte un état de rangée BK disponible, et un nombre suffisant d'emplacements vacants non affectés pour la réception d'états de défaut, MAC(J), pour recevoir la ligne A, et afin de déterminer si l'introduction de la ligne A entraînera une traduction vers une adressedans le module d'enregistrement destinataire 26,qui est défectueuse Si l'adresse est défectueuse, la colonne AT suivante est sélec- È 9687 tionnée On effectue également un test pour déterminer l'existence de conflits entre les lignes B associées à la ligne A courante et celles associées à des lignes A affec- tées précédemment à la colonne AT proposée Si tous les tests indiquent l'absence de conflit, le fichier de rangée B (BK) est lu pour chaque ligne B qui rencontre la ligne A à une position de défaut, la ligne A est affectée au plan d'implan- tation A, et pour chaque combinaison de AT, BT correspon- dant à une erreur sur la ligne d'entrée A, les termes 1, BR, et AR sont écrits dans le tableau de défauts F Le 1 indique que l'adresse associée correspond à un élément projeté ou à un état de défaut et doit être traduite, la rangée B est l'état de rangée BK auquel la ligne B est affectée et AR est l'état de rangée AK auquel la ligne A est affectée Le tableau F définit ainsi le contenu de la mémoire morte programmable de défaut 48. Le programme se poursuit ensuite en passant au point 4, auquel la listeenchaînée FPAC(I) est mise à jour pour représenter l'affectation de ligne A la plus récente, et un test est effectué pour déterminer si toutes les lignes A ont été affectées Dans la négative, le programme continue en passant au début de la partie ADTRAN III, pour affecter la ligne A suivante Si la dernière ligne A a été affectée, le programme se poursuit en écrivant les fichiers de mémoires mortes programmables AK, AT, DEFAUT et STATISTIQUE Les fichiers AK et AT correspondent aux fichiers BK et BT, et ils définissent le contenu de la mémoire morte programmable de clé A, 40, et de la mémoire morte programmable de tra- duction A, 42 Le fichier DEFAUT correspond au contenu du - tableau DEFAUT et il définit les données pour la mémoire morte programmable de défaut 48 Le fichier STATISTIQUE enregistre simplement des données concernant l'exécution du programme et n'est pas un élément important de l'algorithme d'affectation de données. Dans le cas o un conflit empêche l'affectation d'une ligne A à l'une des 64 positions de colonne AT dans le plan d'implantation A, le programme effectue un branchement pour supprimer l'affectation de la ligne A affectée le plus récemment, et il échange cette ligne, dans l'ordre séquen- tiel, avec la ligne A qui n'a pas pu être affectée Cette procédure est essentiellement identique à celle utilisée pour une ligne B qui n'a pas pu être affectée. Les configurations décrites ci-dessus traduisent l'adresse pour un mot complet-de 18 bits, chaque fois qu'un défaut apparait dans un ou plusieurs des bits du mot, dans le module d'enregistrement principal 24 Ceci conduit à une certaine inefficacité dans la mesure o 18 bits doivent être réaffectés ou traduits dès qu'un seul des 18 bits de la position de mot d'origine est défectueux Il serait naturellement possible de subdiviser chaque mot adressé en groupes d'un ou plusieurs bits, avec affectation de lignes ou de bits d'adresse supplémentaires pour sélectionner un seul de ces groupes pour la traduction d'adresse, afin d'éviter d'avoir à établir 18 bits disponibles pour traiter un seul bit défectueux Cependant, dans l'exemple considéré d'une mémoire à tores, on a trouvé qu'il était pratique et avantageux au point de vue du coût de transférer un mot complet de données enregistrées chaque fois qu'on trouve qu'un seul bit du mot est défectueux Ceci est particuliè- rement vrai dans le cas d'une mémoire à tores, dans laquelle on accède aux données un mot à la fois, et dans laquelle la séparation des données d'un seul mot de sortie en deux mots internes nécessiterait deux cycles de mémoire pour générer le mot de sortie unique Ceci allongerait notablement le temps de cycle de mémoire effectif Il faut en outre noter que bien qu'un retard de 0,25 microseconde soit associé au traducteur d'adresse 28, lorsque plusieurs cycles de mémoi- re doivent avoir lieu en succession, le retard correspondant à un cycle de mémoire suivant peut chevaucher le temps de cycle relatif à un cycle de mémoire précédent Ainsi, avec une configuration appropriée, le retard de 0,25 microseconde affecte uniquement le temps d'accès et non la cadence de transfert des données. On vient de décrire et de représenter diverses configurations de systèmes pour projeter sélectivement un sous-ensemble d'un premier ensemble dans un second ensemble 2 MÈâ 680 au moyen de traducteurs d'adresse de mémoire, mais il faut noter-que l'invention n'est pas limitée spécifiquement à cette application Par conséquent, de nombreuses modifica- tions peuvent être apportées aux procédés et aux dispositifs décrits et représentés, sans sortir du cadre de l'invention. ÈO 681 n (Bi) ou SB i i i i i i o A NNEBXES TAMBLAU I DIMVENSION B A Bi A 4, A 25, A 30, A 35 Ai 14 A 6, A 20, A 35 A 25 A 13 A 4, A 10, A 23 A 36 A 16, A 29, A 30, A 31 A 29, A 30, A 31, A 35 A 27, A 29, A 30, A 31 A 27 A 27 A 27 A 36 A 5 A 17, A 18, A 19 Ordre de plani d' implantationi i il Bi l 34 BS B 6 B 311 B 315 B 317 B 318 Bi 19 B 20 O B 321 B 23 B 326 BO *TAPBLEAU TI DIR Vf ENSIOIN A n (Ai) O ou SA i i i i i i i I O B Ai B 4, Bll B 26 G B 6 Bul B 10 BS B 17 B 27 B 27 B 27 BG Bll B 4, B 7 E 19, B 20, B 21, B 22 B 4, B 17, B 18, B 19 B 34, B 6, 1318 Bl S, E 23 B 17; B 18, B 319 B 17, B 18, B 319 Ordroe de plan. d 'imlplan tat ion. il la 7., i Ai A 4 AS A 6 Ai O A 13 A 14 A 16 A 17 A 118 A 19 A 20 A 23 A 25 A 27 A 30 A 35 2 0 A 36 A 29 A 31 AO 29 MO TABLEAU III NEMOIRE MORTE PROGRAIVKA-BLE DE DEFAUT (Modulo 64) Adresse de défaut Don-nées binaires A 35, B 4 1 ooo 0001 A 16, B 17 Oooo 0111 A 35, B 18 looo 0001 A 27, B 19 looo 0000 A 35, 136 looo 0001 Alo, Bll j 000 0100 A 17, B 27 looo 1000 A 14, B 5 looo 0110 A 13, B 10 j 000 0101 A 36, B 15 looo 0010 A 27, B 20 looo 0000 A 27, B 21 looo 0000 1000 0000 A 27, B 22 A 36, B 23 j 000 0010 A 5, B 26 1000 0011 Adresse 0,0 O 'l 0,2 Oi 3 0,5 lo 0,6 0,7 O's O'q 0,10 1 15 0,11 0,12 0,13 0,14 0,15 0,16 0, 63 1, O 1, 1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7 1, 8 1, 9 1, 10 1 000 A 30, B 4 A 30, B 17 A 30, B 18 A 30, 319 A 6, B 6 A 23, Bll A 185, B 27 2 È 5651 TABILEAU III (suite) Adresse de défaut 2 5 ô 8 6 8 7 (modulo 64) Adresse 1,63 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7 Donn 6 es binaires 1 000 0001 1 000 0000 1 000 0000 1 000 0000 1 000 0011 1 000 0001 1 000 0010 A 4, B 4 A 29, B 17 A 29, Bl 8 A 29, B 19 A 20, B 6 M, Bll A 19, B 27 2, 63 3, O 3, 1 3, 2 3, 3 3, 4 3, 5 3, 6 3, 7 3, 8 3, 9 O A 25, A 31, A 31, A 31, B 4 B 17 B 18 B 19 A 25, B 7 000 0001 3, 63 63 63 TABLEAU IV DEFIN ITIONS RELATIVES AU PROGRAMME A FREQ DAT Un fichier dans lequel chaque enregistrement B FRAQ DAT - ASEQ DAT - BSEQ DAT- FPAC (I) - IPAC - PPAC - FPBC(J) - IPBC - PPBC - contient un numéro de ligne A correspondant, le nombre total de positions de défaut sur la ligne A, SA et toutes les intersections des lignes B aux positions de défaut, BA(J). Un fichier dans lequel chaque enregistrement contient un numéro de ligne B correspondant, le nombre total de positions de défaut sur la ligne B, SB, et toutes les intersections des lignes A aux positions de défaut, AB(J). Une liste de toutes les lignes A, dans l'ordre allant du plus grand nombre de défauts au plus petit nombre de défauts. Une liste de toutes les lignes B, dans l'ordre allant du plus grand nombre de défauts au plus petit nombre de défauts. Une liste enchaînée des colonnes AT (AC), dans l'ordre allant du plus petit nombre d'états de défaut disponibles au plus grand nombre d'états de défaut disponibles. L'adresse 64 (NAC) désigne la tête de la liste, avec un pointeur séquentiel désignant la queue, qui désigne l'adresse 64 La liste est initialisée avec ATO en tête et AT 63 en queue. Un pointeur courant pour FPAC(I). Pointeur passé le plus récent pour FPAC(I). Une liste enchaînée des colonnes BT (BC), dans l'ordre allant du plus grand nombre d'états de défaut disponibles au plus petit nombre d'états de défaut disponibles L'adres- se 64 (NBC) désigne la tête de la liste, avec un pointeur séquentiel désignant la queue, qui désigne l'adresse 64 La liste est initialisée avec BTO en tête et BT 63 en queue. Un pointeur courant pour FPBC(I) Le pointeur passé le plus récent pour FPBC(I). IAR(J) - IBR(J) - MAC(J) - MBC(J) - FICHIER A RO - FICHIER A COL - FICHIER B RO - Etat de clé AK disponible suivant qui peut être affecté, pour une colonne AT donnée. Il est initialisé à O pour chacune des 64 colonnes AT. Etat de clé BK suivant disponible qui peut être affecté pour une colonne BT donnée. Il est initialisé à O pour chacune des 64 colonnes BT. Nombre d'emplacements vacants non affectés disponibles pour recevoir des états de défaut pour une colonne AT donnée Il est initialisé à 64 pour chacune des 64 colon- nes AT. Nombre d'emplacements vacants non affectés disponibles pour recevoir des états de défaut pour une colonne BT donnée Il est initialisé à 64 pour chacune des 64 colon- nes AT. Un fichier qui est adressable par un numéro de ligne A et qui contient la position de rangée AK affectée dans le plan d'implanta- tion A (figure 9) pour chaque numéro de ligne A Il enregistre les données à pro- grammer par rupture de liaisons fusibles dans la mémoire morte programmable de clé A, 40. Un fichier qui est adressable par un numéro de ligne A et qui contient la position de colonne AT affectée dans le plan d'implanta- tion A (figure 9) pour chaque numéro de ligne A Il enregistre les données à pro- grammer par rupture de liaisons fusibles dans la mémoire morte programmable de tra- duction A, 42. Un fichier qui est adressable par un numéro de ligne B et qui contient les positions de rangée BK affectées dans le plan d'implanta- tion B (figure 8) pour chaque numéro de 29 OG 687 FICHIER B C TA(I,J) - TB(I,J) - F(BC,AC) - ligne B Il enregistre les données à pro- grammer par rupture de liaisons fusibles dans la mémoire morte programmable de clé B, 46. OL Un fichier qui est adressable par un numéro de ligne B et qui contient les positions de colonne BT affectées dans le plan d'implan- tation B (figure 8) pour chaque numéro de ligne B Il enregistre les données à pro- grammer par rupture de liaisons fusibles dans la mémoire morte programmable de tra- duction B, 44. Une table bidimensionnelle qui correspond à la figure 9 et qui enregistre les numéros de ligne A affectés à la position d'adresse affectée AK, AT Elle est initialisée à -1 pour indiquer des espaces vides. Une table bidimensionnelle correspondant à la figure 8 et enregistrant les numéros de ligne B affectés à la position d'adresse affectée BK, BT Elle est initialisée à -1 pour indiquer des espaces vides. Un tableau de détection de défaut ayant des adresses qui correspondent auxpositions d'adresse dans la mémoire morte programmable de défaut 48 et le module d'enregistrement destinataire 26 Il enregistre initialement les indications des positions de mot défec- tueuses dans le module d'enregistrement des- tinataire 26 et il est fixé à zéro à chaque adresse correspondant à un défaut Il est initialisé à -1 dans le cas contraire A la fin du programme, il enregistre à chaque adresse de traduction BT, AT un 1 qui indi- que une adresse de traduction, 3 bits de clé BK et 4 bits de clé AK Les autres posi- tions d'adresse sont fixées à zéro pour des mémoires mortes programmables dont toutes FICHIER DEFAUT - STAT - ADDR U - NERR - NA - NB - NAT - NBT - NX - LAC(J) - LBC (I) - MA c(J) MBC(J) - IAR(J) - les positions sont à zéro en sortie de fabrication. Un fichier enregistrant le contenu de F(BC,AC). Un fichier de statistique qui joue un rôle accessoire dans l'algorithme du programme et enregistre des renseignements statisti- ques interessants. Un fichier d'adresse d'erreur qui contient le numéro d'adresse d'entrée de toutes les positions qui sont défectueuses dans le module d'enregistrement 23. Nombre courant d'erreurs. Nombre de lignes d'adresse d'entrée AI ( 1024). Nombre de lignes d'adresse d'entrée BI ( 512). Nombre de colonnes AT ( 64). Nombre de colonnes BT ( 64). Nombre de positions d'adresse défectueuses dans le module d'enregistrement destinatai- re 26. Nombre maximal d'états de défaut qui peuvent être affectés à une colonne AT donnée, AC(J) ( 64) Nombre maximal d'états de défaut qui peuvent être affectés à une colonne BT donnée, BC(I) ( 64). Nombre courant d'états de défaut non affec- tés dans la colonne AT désignée par J. Initialement égal à LAC(J). Nombre courant d'états de défaut non affec- tés dans la colonne BT désignée par J. Initialement égal à LBC(J). Etat de rangée AK suivant à affecter dans la colonne AT désignée par J Initialement égal à 0. Etat de rangée BK suivant à affecter dans la colonne BT désignée par J Initialement égal à 0. Nombre d'adresses tri Nombre de rangées AK tation A ( 16). Nombre de rangées BK tation B ( 8). Nombre d'adresses de d'entrée A numéro I. Nombre d'adresses de d'entrée B numéro I. Une table donnant la QB(I) ERR IN 2 DAT - IB - aduites. dans le plan d'implan- dans le plan d'implan- défaut sur une ligne défaut sur une ligne liste des nombres d'erreurs SA sur chaque ligne d'entrée AI numéro I. Une table donnant la liste des nombres d'erreurs SB sur chaque ligne d'entrée BI numéro I. Un fichier d'entrée donnant la liste des positions d'adresse défectueuses dans le module d'enregistrement destinataire 26. Numéro de ligne d'entrée B, BI. IBR(J) NT - NAR - NBR - SA (I) SB(I) - QA(I) -. TABLEAU V REM TRAIUCTION D'ADRESSE (P>HASE 1) REM 4 PROGRAIVlM DE G Ei ERATIO KL DE FICHIERS DE TRA VAILJ LET Zl= SPC 30 LET Z 2 = SPC ( 3) DI 114 1 %,Tll 63 l,Ql 511 l,All 63 l READ N 1,N 2,N 4,N 5 OPEN #1," 1/ADDR U" OPEN #2," 1/B FREQ DAT" 112 OPEN #3,-" 1/ERR IN 2 DAT' IF ERR O GOTO 290 -130 LET I= O READ #1;B,A LET S= O 160 IF B 7 i I GOTO 210 IF S ≥N 4 GOTO 8000 LET A 1 ISl=A LET S=S+l READ #1;B,A 200 GOTO 160 210 IF S>N 4 GOTO 8000 220 WRITE #2,I,0;I,S 230 MAT WRITE #2,-2,4;A 1 240 LET I=I+l 250 IF I 265 LET H=(B-N 2)* 1024 +A 270 LET C 2 = INT 275 LET Cl=Hll(C 2 *N 4) 280 WRITE #3;C 2,C 11 282 READ #1;B,A 285 GOTO 265 *290-IF SPC ( 8)-J 52 GOTO 9000 292 IF ERR O GOTO 9000 295 IF SPC ( 103 = 282 GOTO 370 300 IF S>N 4 GOTO 8000 310 WRITE #2,I,0;I,S 320 MAT WRITE #2,-2,4;A 1 2 ôa 687 330 LET S=O 340 FOR J=I+l TO N 2-1 350 WRITE #2,J,0;J,S 360 NEXT J 370 CLOSE #1 #2,#3 380 PRINT "FICHIER B FREQ TERMINJS" 390 REM GE 1 NERATION Dl U FICHIER A FREQ. 400 OPEN #1,l/ADDR U 410 OPEN #3,Ihl/A FREQ DAT- 430 LET T 0- 432 FOR I= O TO N 5-i 434 LET TllIl= O 436 NEXT I 440 FOR I= O TO Ni-i 450 WRITE #3,I;I,T 460 MAT WRITE #3,-2,4;Tl 470 NEXT I 490 IF ERR O GOTO 600 500 READ #1;B,A 505 IF B> N 2 GOTO 500 51.0 READ #3,A,2;S 511 IF S >N 5 GOTO 8000- 512 MAT READ #3,-2,4;T 1 514 LET Tl IISl=B 516 LET S=S+ 1 520 WRITE #3,-2,2;S 530 MAT WRITE #3,-2,4;Ti 540 GOTO 500 ' 600 IF SPC ( 8)îd 52 GOTO 9000 605 IF ERR O 610 CLOSE #1,#3 612 PRINT "FICHIER A FIREQ TER 1 Vf ENE"' 1980 REM GENERATION DE LA SEQLTENCE TRIEE B 1985 OPEN #2,l/B FREQ DA Tl 1990 OPEN #4,"l/BSEQ DAT" 2000 FOR I= O TO N 2-1 2010 READ #2,I,2;QlIl I 2020 NEXT I 2030 LET R=N 2-1 2040 LET E= O 2050 LET I=N 2-1 2060 IF QlIj,:;E GOTO 23 00 2070 WRITE e 4,R,0; 1 2080 LET R=R-1 2090 IF R 2100 LET I=I-1 2110 IF I≥ 0 GOTO 2060 2120 LET E=E+l 2130 GOTO 2050 2200 CLOSE #2,#4 2210 LET C=l 2300 GOTO 9900 3000 DATA 1024,512,64,64 8000 PRINT TROP VDERIREURS DANS U Nl E SEUTLE LIGNE 11 8010 GOTO 9900 9000 PRINT "ERREUR=" SPO (B) 9900 PRINT "h VLS EQOUJL (EN SEC) =" S Po ( 2) -zl) * 3600 +(( SPC ( 3)-Z 2)/10) 9910 IF C=l CHAIN " 1/ADTRAN 2 " 9920 END REM TRADUCTION D'ADYRESSE (:PHASE 2) LET ZI= SPC ( 2) 16 LET Z 2 = SPC ( 3 > DIM 1 %,M 2 l 63 j,R 2 l 63 l 22 DIM Ql 10231 DIM T 2 l 7,63 J,L 2 l 63 l, P 6 l 641,All 63 l DIM A 2 l 63 l,Ell 63 l PRINT "TRADUCTION D'ADRESSE' STADE READ Nl,N 2,N 3,N 4,N 5,N 6 100 REM INITIALISATION DE Li A TABLE DE OPEN #2,"l/ERR IN 2 DAT" FOR J= O TO N 4-1 LET L 2 lJl=N 3 FOR 1 = 0 TO N 6-1 210 LET T 2 lI,Jl=-l 220 NEXT I 230 NEXT J. 240 'IF ERR O GOTO 350 300 READ #2;C 2,Cl 320 LET L 2 lC 2 l=L 2 Ii C 2 I-l 340 GOTO 300 350 IF SPO ( 8) 52 GOTO 9100 360 IF ERR O GOTO 9100 370 CLOSE #2 380 PRINT "INITIALISATION DE LISTE ENCHA 390 REM 400 FOR I= O TO N 4-1 410 LET M 2 LI 1 I=L 2 lI 1 420 NEXT I 500 REM TRI LISTE ENCHAINEE BC PAR ORD 510 LET P 5 =N 4 520 LET I 1 =N 3 530 LET I= O 540 IF M 2 l 12 t 1 Il GOTO 580 550 LET P 6 lP 5 l=I 560 LET F 5 =I 58 O LET 1 = 1 + 1 2 "I 2 DECISION I 1 MEE I RE DECROISSANT DE M 2 (T) 590 IF I 600 LET I 1 = 11-1 610 IF Il≥ O GOTO 530 620 LET P 6 lP 5 l=N 4 830 REM INITIAMISATION DES NIOEJVROS DE RANGEES 840 FOR I= O TO N 4-1 850 LET R 2 lIl= O 860 NEXT I 910 PRINT "ilEBUT DE I'AFFECTATION DES RANGEEà/COLONNES" 1000 REM AFFECTATION D)ES RANGEES ET COLONNES 1005 PRINT "B"J,"BC","'BR",,"N(BC)","ISB"t 1010 OPEN #3," 1/B FREQ DA Tif 1030 OPEN #5,"l/BSEQ DAT" 1035 FOR X= O TO N 2-1 1040 READ #5,X;B 1050 READ #3,B,2; 52 1060 REN ASSIGN B 1070 MAT READ #3,-2,4;A 1 1100 LET P 4 =N 4 1110 LET P 5 =P 4 1120 LET P 4 =P 6 lF 4 l 1130 IF P 4 ≥N 4 GOTO 7000 1190 IF M 2 lP 41 Z 52 GOTO 1110 1200 IF R 2 lP 41 ≥N 6 GOTO 1110 1204 FOR I= O TO N 4-1 1208 LET E=T 2 lI,P 41 - 1210 IF E=-l GOTÈ 1300 1212 READ #3,E,2; 53 1214 MAT READ #3,-2,4;A 2 1216 FOR J 1 = 0 TO 52-1 1232 FOR K 1 = 0 TO 53-1 1234 IF AllJll=A 2 lKll GOTO 1110 1236 NEXT KI 1280 NEXT Ji 1290 NEXT I 1300 REM COEUFIRMLTION DE L't AFFECTATION POUR B 1810 LET R 4 =R 2 lP 4 l O 8687 LET T 2 lR 4,P 41 =B LET R 2 lP 4 l=R 2 lP 4 l+ 1 LET M 2 lP 4 l=M 2 lP 41-52 PRINT B,P 4,R 4,M 2 lP 4 l,52 LTP 7 =P 4 LET I=P 6 lP 4 l IF 1 =N 4 GOTO 1920 IF M 42 lP 4 l≥M 2 lIl GO-TO 1920 LET P 7 =I LET I=P 6 lIl GOTO 1880 IF P 7 =P 4 GOTO 2020 LET P 6 lP 5 l=P 6 lP 4 l LET P 6 lP 7 l=P 4 LET P 6 lP 4 l=I NEXTX CLOSE #3,#5 REM ECRITURE DES FICHIERS POUR LES MEMOIRES MORTES PRINT "ECRITURE DES FICHIERS-?OUR UIS NMEMOIRES MORTES OPEN #1,"l/B ROW" OPEN #2," 1/B COL" FOR I= O TO N 6-1 FOR J= O TO N 4-1 WRITE #1,T 2 lI,Jl;I WRITE #2,T 2 lI,Jl;J NEXT J NEXT I CLOSE * 1,#2 RM GENERATION DIE LA TABIZE DE SEQUENCE A OPEN * 7,"l/ASEQ DAT" OPEN * 4, "l/A FREQ DAT" FOR I= O TO Ni-i READ #4,I, 2;QlIl NEXT I LET R=Nl-l LET E= O LET I=N 1-l IF QlIII#E GOTO 4110 1860 1910 1930 2240 2360 4000 4040 4120 4300 7004 7010 7040 7060 7100 WRITE #7,R;l LET R =R-1 IF R LET 1 =I-1 IF I≥ O GOTO 4070 LET E=E+l GOTO 4060 CLOSE #4,#7 LET C=l GOTO 9900 R SUPPRPESSION DE LOAFFECTATION B PREGEDENTE IF 55 = 0 GOTO 7005 FOR 1 = 0 TO 55-1 IF EllIl=B GOTO 7008 NEXT I IF 55 = 64 GOTO 8000 LET Ell 55 l=B LET 55 = 55 + 1 IF X= O GOTO 8000 LET Xl=X-1 READ #5,Xl;D READ #3,D,2; 54 PRINT 'AF IN\V ALIDE DMNS IB= 1 B,;SUIPP' DE IL'M'FEC B=" 1 D FOR I=N 6-1 TO O STEP -2. LET P 4 = 114 LET P 5 =P 4 LET P 4 =P 6 lP 4 l IF P 4 =N 4 GOTO 7070- IF T 2 lI,? 4 l=D GOTO 7080 GOTO 7042 N 4 EXT I LET T 2 lI,P 4 l=-l LET R,2 lP 4 l=R 2 lP 4 l-l LET M 2 lP 4 l=M 2 lP 4 l+ 54 REM NOUJVE AU TRI DE LA LISTE ENGHAIPEE BC LET P 7 =N 4 LET I=P 6 lN 4 l ôa 687 7170 7200 ' 7310 7334 8020 8070 9000 9910. 9 P 9 Z O IF I=P 4 GOTO 7300 IF M 2 lP 4 l≥M,2 lIl GOTO 7180 Lfl T P 7 =I LET I=P 6 lIl GOTO 7130 LET P 6 lP 5 J=P 6 lP 4 l LET P 6 lP 7 l=P 4 LET P 6 lP 41 =l REM CHANGEMENT:D'ORDRE DANS "BSEQ DAT WRITE #5,Xl;B WRITE #5,X;D LET X=X-1 IF 55 = 0 GOTO 1040 FOR I= O TO 55 '-1 IF EllIJ=D GOTO 7008 NEXT I GOTO 1040 PRINT "AFFECTATION DE l B INVAJ 3 ID El'" PRINT "M 2 (I)=' FOR I= O TO N 4-1 PRINT MllIl NEXT I PRINT "T 2 (I,J)=" FOR I= O TO N 6-1 FOR J= O TO N 4-1 PRINT T 2 Ii I,Jl; NEXT J NEXT I GOTO 9900 REM SOUS-PROGRA Iqfl IE DE TRAITEMENT D'ERREUR PRINT "ERREUTR=" SPC ( 8) PRINT "'EN TIGTE"spc ( 10) DATA 1024,512,64,64,16,8 PRINT " TDEMFLS ECOTULE ="( SPC ( 2)-Zl)* 3600 +(( SPC ( 3) -Z 2)/10) IF C=l CHIAIN 1/ADTRAN 3 FMD ô 8687 *REM TRADUCTION D'ADRESSE (PHIASE 3) LET Zl= SPC ( 2) 16 LET Z 2 = SPC ( 3) DIM 1 %,Mll 63 l,Rll 631,Fll 63,631 30 DIM Tll 15,631,Lll 63 l,P 3 l 64 l, Bll 631,Dll 63 l DIM B 2 l 631,Ell 631 PRINT " 1 TRADUCTION D'ADRESSE STADJE 3 " READ Nl,N 2,N 3,N 4,N 5,N 6,N 7 REM INITI ALISATION)DE LA TABLE D 1 E Di ECISION 110 OPEN #2,"l/ERP, IN 2 DAT" FOR J= O TO N 3-1 LET LllJJ=N 4 FOR I= O TO N 5-i LET TllI,Jl=-l 160 NEXT I NEXT J 240 IF ERR O GOTO 350 300 READ #2;C 2,Cl 310 LET F 1 IIC 2,Cll=-l 330 LET LllCl I=LllCll-1 340 GOTO 300 350 IF SPC ( 8)052 GOTO 9100 360 IF ERR O GOTO 9100 370 CLOSE * 2 380 PRINT IITTI Al ISATI O N DE LA LISTE ENOHAIINEE'l 430 FOR I= O TO N 3-1 440 LET MllIll=L 1 I Il 450 NEXT I 500 OPEN #6,"l/STAT" 510 READ #6,0,29;E 7 520 CLOSE #6 530 IF -E 7 ≥N 7 GOTO 700 l ERREURS > N 7 ? 600 REM îINITIALISATIONI LISTE ENNCHAI Ns EE ALU NON TRIEE 610 LET P 3 lN 3 l= O 620 FOR I= O TO N 3-1 630 LET P 31111 =I+l 640 NEXT I 650 GOTO 830 700 REM TRI LISTE ENCHAINEE AU EN ORDRE CROISSANT DE N VlI) 710 LET P 2 =N 3 720 LET I 1 =N 4 5730 LET I=N 3-1 740 IF MllIjyÉI 1 GOTO 780 750 LET P 311 ll=P 2 755 LET P 2 =I 770 LET'P 3 lN 3 l=I 780 LET 1 =I-1 790 IF I≥ O GOTO 740 800 LET 11 = 11-1 810 IF I 1 ≥ 0 GOTO 730 830 REM I 1 NTIAILISATION DES NUMEROS DE RANGEES 880 FOR 1 = 0 TO N 3-1 890 LET RllIl= O 900 NEXT I 910 PRINT 1)EBUT D'AFYFECTATION DES RANGEESS/COIONINES A" 1000 1 REM AFFECTATION A 1005 PRINT -A", "AC","IAR",'1 N(A )II,n'SA Nn"BCI. 1010 OPEN #1," 1/B RO Wi" 1015 OPEN #2," 1/B COL" 1020 OPEN #4,t 1/A FPEQ DAT" 1030 OPEN #5," 1/ASEQ DAT" 1035 FOR X= O TO Nl-i 1040 READ #5,X;A 1 È 50 READ #4,A,2;Sl 1070 MAT READ #4,-2,4;B 1. 1100 LET P 1 =N 3 1110 LET P 2 =Pl 1120 LET Pl=P 3 lPil 1130 IF P 1 ≥N 3 GOTO 7000 1190 IF MllP 1 k 51 GOTO 1110 1200 IF R 1 lP 1 I≥N 5 GOTO 1110 1300 RE Mi CONTROLE DE I 11 EXISTEITJCE DE COM'LITS 1310 FOR J= O TO Si-i 1320 READ #2,l 31 lJl;B 2 lJl I i Lr 1 I 1 Tl 1 T lar siiit i 06 ZZ T-EN oj O=r UOJ 08 zz 1-SN 01 O=I EOJ OLZZ SE Nqclc) oszz Nsclo otzz rio:)"Vll Jz# lisao OEZZ Naclo ozzz lisatluox SUMIO Iq Eq 027 I Mo C 1 SUSIHOM 'SSOE Mmt IIUD 511 IMIECI ZIZZ Oú 29 MON swiiolqlu soi unoci sus:IHDIE soi Mfiiiiuos NM OTZZ s#it,#Iz#,Tt SESC) UD Oozz x ixam ot 6 T I=l Tdl úcl -12 'I MLT Td=lLJlEd 12 lrl SUT SZ lTcllúd=lZcllúcl IRI OUT 089 T 010 D SUT II 1 E cl=I 1 M OUT I=Ld 191 OOLT OUT 0109 lIITI-Z=>lTdlT Pl JI 069 T OZ ot,6 T 010 D Tcl=I JI 089 T lú,"Il E:d=I I Srl OL 9 T EII=Lcl ISI 099 T LX > Effl 12 OV ql MIVHOIZ-q 91,SIOE VI SC I-911 S;OE S Va à' Ot,6 T 010- D LNXS JI 999 T ST t'ci, Ts j licil TN 1 Eu ', Tci"-v imilici Z 99 T TSlTcllTW=lTcllTk-1 Mri 099 T T±lTcllTH=lTdlTU 1 M Ot 9 T r JJXIim 9 M 8 ZT+úU+ 91 *t U=IlcljtdlTj jsri oz 9 T 01 Civau OT 9 T lrl ZúI=ta lari Z 09 T 1-TS 01 o=r Eo J 009 T V=I-Icl"úUITI lar I OTST lTcll T'J=úU Igl OOST 9 V Mo Cl MOILIVIIOW Lirv à r E SOE NOILIVMIJU 00 Wa H 06-T r iixui_n OC'T OITT 010 E) Ofú-lTdltdlTd II O St IT Lcl ZEE=Pcl lai OOM L 9 WRITE #2,TllI,Jl;J NEXT J NEXT I FOR J= O TO N 3-1. FOR I= O TO N 4-1 IF Fl(I,JJ=-l LET FllI,JJ= O WRITE #3;FllI,JJ NEXT I NEXT J REM VOISE A JOUR A PARTIR DU MOT DE COMM'ANDE DE PROGRAT'MATION ET IDE TRADUCTION DJ'ADRESSE LET J 1- FOR 1 = 32 TO 36 WRITE #4,0,I;J NEXT I FOR 1 = 0 TO N 3 *N 4- 1 READ #3,I;F IF F= O GOTO 2570 ETAT INTACT= O LET Il= INT (I/N 2) WRITE #4,0,I 1 + 37;J LET I=Il*N 2 +N 2-1 NEXT I LET J= 3 l CONFIGURATIOND'ADRESSE A 4 K WRITE #4,0,46;j CLOSE #1,#2,#3,#4 PRINT -"AFFECTATION TERMlIFE-E" LET C= 1 GOTO 9900 REM SUPPRESSIONT DE LIJAFFECTATION A PRECEDENTE IF 55 = 0 GOTO 7005 FOR I= O TO 55-1 IF EllIl=A GOTO 7008 NEXT I IF 55 = 64 GOTO 8000 LET E 1 155 l=A LET 55 = 55 + 1 IF X= O GOTO 8000 2410 2490 2-500 2530 2560 3000 7001 7006 7027 7046 7077 7094 7120 7170 7300 LET Xl=X-1 READ #5,Xl;D READ #4,D,2; 54 IMAT READ #4,-2,4;Dl PRINT '1 A'FF INVJIDE DANTS A= "A,";S Ur PP DE L, 'M'FEG A="t D FOR I=N 5-1 TO O STEP 1 LET P 1 =N 3 LET P 2 =Pl LET Pl=P 3 lPil IF P 1 =N 3 GOTO 7070 IF T 1 lI,Pll=D GOTO 7080 GOTO 7042 NEXT I PRINT ERREUR DANS L'AFFECTATION A PPZCE 2 DSNTE" GOTO 8000 LET TllI,P 1 l=-1 LET RllP 2 l=RllPll-1 LET MllP 1 I=r M 1 lPll+ 54 FOR J= O O TO 54-1 READ #2,DIlJl;P 4 LET FllP 4,Pll= 255 NEXT J REM 4 NOUVEAU TRI IDE LA LISTE ENGUAINEE AC LET P 7 =Pl LET I=P 3 lPl I IF I=N 3 GOTO 7180 IF MllPl I≤ 111 lIl GOTO 7180 LET P 7 =I LET I=P 3 lI) GOTO 7130 IF P 7 =Pl GOTO 7300 LET P 3 lP 2 l=P 3 lPll LET P 3 lP 7 II=Pl LET P 3 lPl I=I REM CGH Ar GEIïOEI T D' ORDRE DAIS "IASEQ DAV' WRITE #5,Xl;A WRITE #5,X;D O 7335 8022 8035 8040 8045 9110 9910 LET X=X 1 IF 55 = 0 GOTO 1040 FOR 1 = O TO 55-1 IF EIlIl=D GOTO 7008 NEXT I GOTO 1040 PRINT PRINT 1 AFFE'CTATION NON EFFECOTUJEE 1 PRINT 'Ml(I)='; FOR I= O TO N 3-1 PRINT Mil Il; NEXT I PRINT PRINT 'F 11 (I, J): FOR I= O TO N 4-1 FOR J= O TO N 3-1 PRINT F 1 (I,Jl; NEXT J NEXT I PRINT FOR I= O TO N 5-1 FOR J= O TO N 3-1 PRINT TllI,Jl; NEXT J NEXT I PRINT GOTO 9900 PRINT "SRREUR="t SIPG ( 8)- PRINT "ENIG Io NE Si PC (io) DATA 1024, 512,64,64,16,8,2300 PRINT PRINT Il TEMVPS ECOUIJE = 1 ( 3)-Z 2)/10) IF C= 1 CHAIN " 1/CLOSE PH 2 " END TABLEAU VI TERMES UTILISES DANS LE TABLEAU V NA 1024 NB 512 NAT 64 NBT 64 NAR 16 NBT 8 Nombre d'adresses défectueuses au-dessous duquel la liste enchainée FPAC(I) ne sera pas mise à jour ( 2300) SB SD, nombre d'erreurs sur une ligne A dont l'affec- tation est supprimée Nombre de lignes A dont l'affectation est supprimé& Valeur initiale du temps au démarrage de l'exécuti' du programme ADTRAN II Valeur initiale du temps au démarrage de l'exécuti 4 du programme ADTRAN III Fonction IRIS spéciale 8) Fournit le nombre d'erreurs pour un message d'erreur Nombre de lignes d'entrée A Nombre de lignes d'entrée B TJRJE>H I,J A 1 A 2 T 1 T 2 Q(I) R 1 R 2 R 3 R 4 R Ll Variables temporaires AB(I) BA(I) Table TA(I,T) Table TB(I,J) Nombre d'erreurs sur chaque ligne d'entrée B IAR(J) IBR(J) AR BR Nombre d'enregistrements temporaires pour trier le fichier BSEQ DAT LAC(I) 64 - N 1 N 2 N 3 N 4 N 5 N 6 N 7 s 55 Z 1 Z 2 SPC SPC ( A B a on on L 2 LBC(I) 64 Mi MAC(I) M 2 MBC(I) E Nombre d'erreurs sur la ligne B E 1 (I) Une ligne dont l'affectation a été supprimée précé- demment et qui n'a pas encore été réaffectée E 7 Nombre total d'erreurs dans le module d'enregistre- ment 23 de 516 K Pl PPAC P 2 IPAC P 3 Liste enchaînée FPAC(I) P 4 IPBC P 5 PPBC P 6 Liste enchaînée FPBC(I) F 1 F(BC,AC) Bi(I) B 2 (I) D Variable temporaire pour un numéro de ligne A dont l'affectation a été supprimée D 1 (I) Lignes B associées au numéro de ligne A supprimée C 1 Adresse AT C 2 Adresse BT TABLEAU VII Légende de l'organigramme de la figure 10 ADTRAN I il Génération de B FREQ DAT. 12 Génération de A FREQ DAT. 13 Génération de BSEQ DAT. 14 ADTRAN II Obtention de B, BT suivants; test concernant l'espace disponible. 16 Test pour déterminer l'existence de conflits. 17 Affectation de B au plan d'implantation B; mise à jour de IBR, MBC. 18 Mise à jour de la liste enchaînée FPBC(I). 19 Ecriture de BK, BT dans les fichiers des mémoires mortes programmables. Génération de ASEQ DAT. 21 ADTRAN III 22 Obtention des A, AT suivants et des B, BT associés, test concernant l'espace disponible pour AT et les défauts dans le module d'enregistrement destinataire. 23 Lecture du fichier B RO (BK) pour chaque B associé à A; affectation de A au plan d'implantation pour chaque combinaison de AT, BT, écriture de 1, BR, AR dans le tableau de défauts F. 24 Localisation de la ligne B affectée le plus récem- ment. Suppression de l'affectation de la ligne B affectée le plus récemment. 26 Echange de l'ordre de la ligne B qui n'a pas pu être affectée et de la ligne B dont l'affectation a été supprimée, dans BSEQ DAT; mise à jour de FPBC (I) pour représenter la suppression de B. 27 Mise à jour de la liste enchaînée-FPAC(I); dernier A ? 28 Ecriture des fichiers AK, AT, DEFAUTS, STATISTIQUE. 29 Fin Enregistrement du A non affecté dans El(I). 31 Localisation de la ligne A affectée le plus récemment dans le plan d'implantation A. 32 Suppression de l'affectation de la ligne A affectée le plus récemment. 33 Echange de l'ordre de la ligne A qui n'a pas pu être affectée et de la ligne A dont l'affectation a été supprimée, dans ASEQ DAT; mise à jour de FPAC(I) pour indiquer la suppression de A. REVENDICATIONS 1 Procédé pour affecter des états de données à des mémoires ( 23, 26) définissant des relations de projection dans un système de projection pour mémoire d'ordinateur, caractérisé en ce que: on affecte un groupe B d'états d'en- trée, à chacun desquels sont associés des états projetés, à un plan d'implantation B, BK par BT, tout en maintenant approximativement égal le nombre d'états projetés associés aux états d'entrée affectés à chaque état BT; et on affecte un groupe A d'états d'entrée, à chacun desquels sont asso- ciés des états projetés, à un plan d'implantation A, AK par AT, tout en maximisant le nombre d'états projetés qui sont associés aux états d'entrée affectés à l'état AT ayant le plus grand nombre d'états projetés associés aux états d'en- trée qui lui ont été affectés précédemment. 2 Procédé selon la revendication 1, caractérisé en ce qu'on affecte le groupe B d'états d'entrée au plan d'implantation B dans l'ordre séquentiel allant du plus grand nombre au plus petit nombre d'états projetés qui leur sont associés. 3 Procédé selon l'une quelconque des revendica- tions 1 ou 2, caractérisé en ce qu'on affecte le groupe A d'états d'entrée au plan d'implantation A dans l'ordre séquentiel allant du plus grand nombre au plus petit nombre d'états projetés qui leursont associés. 4 Procédé selon l'une quelconque des revendica- tions 1 ou 2, caractérisé en ce qu'on effectue l'affecta- tion d'états du groupe d'entrée B aux états BT du plan d'implantation B dans un ordre préférentiel correspondant au plus grand nombre d'emplacements vacantsdisponibles pour recevoir des états projetés parmi les états BT. Procédé selon l'une quelconque des revendica- tions 1 ou 2, caractérisé en ce qu'on effectue l'affecta- tion d'états du groupe d'entrée A aux états AT du plan d'implantation A selon un ordre préférentiel correspondant au plus petit nombre d'emplacements vacants disponibles pour recevoir des états projetés parmi les états AT. 6 Procédé pour affecter des états de traduction à des mémoires de données ( 23, 26) dans-un système de pro- jection de mémoire d'ordinateur, dans lequel des signaux d'entrée codés sont divisés en plusieurs groupes, et les états de chaque groupe qui définissent partiellement des états d'entrée qui doivent être projetés sont affectés à un état de traduction définissant partiellement un état de plan d'implantation de sortie et un état de clé, ce qui établit une corrélation sans ambiguïté entre un état de clé et un état d'entrée de groupe, caractérisé en ce que: on ordonne séquentiellement les états de chaque groupe conformément au nombre d'états projetés qui sont associés à chaque état de groupe; on ordonne séquentiellement les états de tra- duction pour chaque groupe conformément à une séquence désirée d'états d'entrée de groupe et d'états de traduction associés; on affecte une corrélation entre les états de groupe et les états de traduction, dans l'ordre séquentiel de chacun; et on affecte un état de clé à chaque état de groupe, ce qui identifie sans ambiguïté l'état de groupe parmi tous les états de groupe auxquels est affectée une corrélation avec le même état de traduction. 7 Procédé selon la revendication 6, caractérisé en ce qu'il comprend en outre les opérations consistant à mettre à jour l'ordre séquentiel des états de traduction de chaque groupe, chaque fois qu'un état de traduction est affecté à un état d'un groupe. 8 Procédé selon l'une quelconque des revendica- tions 6 ou 7, caractérisé en ce qu'il comprend l'opération consistant à ordonner séquentiellement les groupes confor- mément au nombre d'états qu'ils contiennent, du plus petit nombre au plus grand, et à affecter la corrélation à tous les états dans un groupe avant d'affecter la corrélation à des états quelconques dans un groupe suivant, les groupes étant sélectionnés dans leur ordre séquentiel. 9 Procédé d'affectation d'états de traduction et de clé à des états de projection A et B, caractérisé en ce que: on génère une liste d'états de groupe A dans l'ordre séquentiel en allant du plus grand au plus petit des nombres d'états projetés qui leur sont associés; on génère une liste d'états de groupe B dans l'ordre séquentiel en allant du plus grand au plus petit des nombres d'états projetés qui leur sont associés; on ordonne-séquentiellement plu- sieurs états de traduction B conformément au nombre d'empla- cements vacants pour recevoir des états projetés; on déter- mine un état de groupe B suivant et on corrèle avec cet état un état de traduction B suivant, en effectuant un test pour déterminer les emplacements vacants dans l'état de traduction B, pour des états projetés supplémentaires, et en effectuant un test pour déterminer l'existence de con- flits parmi des états de groupe affectés précédemment; on sélectionne un état de traduction B-suivant dans l'ordre séquentiel, si l'un des tests donne un résultat négatif>,et on répète l'opération de détermination et de corrélation on échange un état de groupe B courant avec un état de groupe B corrélé précédemment lorsque tous les états de traduction B ont été testés sans succès; on génère un tableau qui enregistre la corrélation entre les états de groupe B et les états de traduction B; une fois que tous les états de groupe B ont été corrélés avec un état de traduction B, on ordonne séquentiellement plusieurs états de traduction A conformément au nombre d'emplacements vacants pour recevoir des états projetés; on détermine un état de groupe A suivant et on lui corrèle un état de tra- duction A suivant, en effectuant un test pour déterminer l'existence d'emplacements vacants dans l'état de traduction A, pour des états projetés supplémentaires, et pour détermi- ner l'existence de conflits parmi des états de groupe affec- tés précédemment; on sélectionne un état de traduction A suivant dans l'ordre séquentiel si l'un des tests donne un résultat négatif et on répète l'opération de détermination et de corrélation; on échange un état de groupe A courant avec un état de groupe A corrélé précédemment lorsque tous les états de traduction A ont été testés sans succès; et on génère un tableau qui enregistre la corrélation entre les états de groupe A et les états de traduction A. Procédé selon la revendication 9, caractérisé en ce qu'on ordonne séquentiellement les états de traduction B en allant du plus grand nombre au plus petit nombre d'emplacements vacants. 11 Procédé selon la revendication 9, caractérisé en ce qu'on ordonne séquentiellement les états de traduction B en allant du plus petit nombre au plus grand nombre d'em- placements vacants. 12 Procédé selon la revendication 9, caractérisé en ce qu'on ordonne séquentiellement à la fois les états de traduction A et les états de traduction B en allant du plus grand nombre au plus petit nombre d'emplacements vacants, disponibles pour recevoir des états projetés.