FR 2681179 A1 19930312 FR 9111212 A 19910911 "Dispositif générateur de mots multiplexés La présente invention concerne un dispositif générateur de mots multiplexés comportant une mémoire de mots et des moyens pour engendrer des suites de mots par assemblage de groupes de mots lus successivement dans la mémoire. L'invention s'applique à la réalisation d'instruments, par exemple des générateurs de formes arbitraires t et bien entendu des générateurs de mots en tant que tels. Deux types d'architecture sont connues pour un tel générateur de mots Selon un premier type d'architecturer comme par exemple celui décrit dans l'article "A High-Speed Data Generator for Digital Testing" dans la revue Hewlett Packard Journal, july 1983, la mémoire opère à la fréquence de sortie. Ceci donne une grande souplesse dans le choix des séquences dont est constituée une suite de mots1 mais nécessite une mémoire rapide1 donc coûteuse. Selon un second type d'architecture, comme par exemple celui utilisé dans l'appareil référencé RS690 du constructeur Hilevel Technology, la mémoire est organisée en blocs de mots de façon à lire plusieurs mots d'un seul coup, c'est-à-dire à une seule adresse en un seul temps d'horloge, les k mots étant ensuite mis en série par un multiplexeur rapide, mais dont la capacité est limitée à k mots. La mémoire principale, ainsi que ses circuits de contrôle, opèrent k fois moins vitet pour une fréquence de sortie donnée. Néanmoins, la suite de mots à engendrer peut comporter des séquences de mots répétées plusieurs fois1 et pour économiser de la mémoire1 on désire que chacune de ces séquences soit mémorisée une seule fois, des instructions étant fournies pour en assurer la répétition. Comme ces séquences ont des longueurs arbitraires qui ne sont pas des multiples de blocs de k mots, certains types de séquences sont impossibles à traiter avec une telle organisation. Le générateur de mots selon l'invention cumule les avantages des deux architectures et évite leurs inconvénients. Un générateur de mots selon l'invention avec une mémoire organisée en blocs de mots est remarquable en ce que, la mémoire étant organisée en blocs de mots contenant chacun un groupe de mots, il existe pour lesdits blocs de mots plusieurs longueurs standard qui sont néanmoins en nombre limité1 et les moyens pour engendrer des suites de mots font appel selon les circonstances à des blocs de mots ayant l'une ou l'autre de ces longueurs standard. Par les mots : "des longueurs standard qui sont néanmoins en nombre limité" on entend que s'il est prévu de définir dans la mémoire des blocs de plusieurs longueurs1 il n'est pourtant pas prévu que ces longueurs soient quelconques : on est obligé d'utiliser seulement des blocs de longueur choisie parmi l'une des longueurs prévues. L'invention est en effet basée sur la reconnaissance qu'il est toujours possible de traiter des blocs de longueur quelconque en les ramenant à des blocs ayant des longueurs standard. Ainsi la gestion de la mémoire est simplifiée puisque les longueurs des blocs standard sont en nombre limité et connues à l'avance. Dans une forme de réalisation particulièrement avantageuse, le dispositif utilise seulement deux longueurs, par exemple une des longueurs standard est de quatre mots et l'autre longueur standard est de cinq mots. Pour gagner de la place en mémoire, un dispositif dont les moyens pour engendrer des suites de mots par assemblage de groupes de mots comportent un processeur programmé est remarquable en ce que les blocs de mots sont placées dans la mémoire à la suite les uns des autres, et les instructions de programme pour le processeur sont placées dans la même mémoire que les blocs de mots1 à la suite des blocs de mots de plus petite longueur, et sont lues dans le même pas de programme que le bloc de mots à la suite duquel elles sont placées. Pour lire la mémoire organisée de cette façon le dispositif, dont les moyens pour engendrer des suites de mots par assemblage de groupes de mots comportent un processeur programmé, est remarquable en ce que ce processeur est muni de moyens pour relire un nombre de fois prédéterminé une même suite de blocs de mots placés bout à bout dans la mémoire, et pour sortir entre deux des blocs de ladite suite de blocs1 lors de la dernière lecture de la suite. Le processeur est avantageusement muni de moyens pour, sous condition, aller directement de la fin d'un bloc de mots au début d'un autre bloc de mots, ces deux blocs de mots n'étant pas consécutifs, ainsi que de moyens pour1 après avoir lu ledit autre bloc de mots1 ou plusieurs blocs de mots consécutifs à partir de cet autre bloc de mots1 revenir au bloc de mots qui suit le bloc de mots de départ. La description qui va suivre, en regard des dessins annexés décrivant des exemples non limitatifs fera bien comprendre comment l'invention peut être réalisée. La figure 1 montre comment une suite de mots peut être définie par un utilisateur. La figure 2 illustre un processus pour lire en mémoire la suite montrée par la figure 1. La figure 3 illustre comment la suite de la figure 1 peut être transformée pour être mémorisée par blocs, lorsque l'on dispose de deux longueurs de blocs seulement. La figure 4 illustre un processus pour lire en mémoire la suite montrée par la figure 3. La figure 5 est un tableau illustrant la possibilité de découper une suite de mots en blocs de longueur déterminée. Les figures 6 à 9 montrent de la même façon que les figures 2 à 4 comment une autre suite de mots plus complexe peut également être transformée pour être mémorisée par blocs, lorsque l'on dispose de deux longueurs de blocs seulement. La figure 10 est un schéma simplifié d'architecture pour un dispositif selon l'invention. La figure 11 illustre comment la suite de la figure 9 peut être transformée, lorsqu'au moins certaines des instructions sont placées à la suite de blocs de plus petite longueur de la mémoire de mots. Il est courant qu'un dispositif générateur de mots offre par exemple trente deux voies en parallèle. Un mot de trente deux bits est représenté au moyen d'un bit par voie. La fonction du générateur de mots est de fournir des suites de tels mots. Sur la figure I est illustrée à titre d'exemple une suite de cent neuf mots (chacun d'eux ayant par exemple trente deux bits) qui doit pouvoir être fournie par le générateur. Ces cent neuf mots sont définis par l'utilisateur comme étant faits d'abord de trois mots (W3) puis d'une répétition de neuf fois onze mots (W11 x 9), et enfin de sept mots (W7). Il vient naturellement à l'idée de stocker ces mots en mémoire au moyen d'un bloc de trois mots1 puis d'un bloc de onze mots qui sera lu neuf fois de suite, puis d'un bloc de sept mots. Ainsi, le générateur de séquences d'adresse de lecture comportant un processeur programmable pour engendrer les séquences d'adresses, la suite ci-dessus pourrait être engendrée par un processeur dont le programme comporterait les instructions illustrées à la figure 2. Une ligne du tableau correspond à une étape de programme1 dont le numéro est indiqué à gauche (de 1 à 6). A chaque étape, les mots portant les numéros indiqués dans les cinq premières colonnes sont lus et l'opération indiquée en colonne 7 est réalisée. Le chiffre en colonne 6 mentionne le nombre de mots traités par l'étape de programme. En colonne 8 est indiqué l'éventuel opérande de l'opération de la colonne 7. Ainsi on lit d'abord les mots 1 à 3 (ligne 1), puis en ligne 2 on initialise (BEGIN) un compteur de boucle à 9 (opérande 9), et on lit les mots 4 à 7, puis en ligne 3 on lit les mots 8 à 11, en ligne 4 on lit les mots 12 à 14 (à ce stade les onze mots W11 de la figure 1 ont été lus) et on teste si le compteur de boucle n'est pas à zéro (JNZ), auquel cas on va à la ligne 2 (opérande 2). Au bout de neuf lectures de W11 le compteur de boucle est à zéro et, au lieu de boucler sur le ligne 2t on passe aux lignes 5 et 6 où on lit les mots 15 à 21. Ceci fournit donc bien la suite de mots de la figure 1. La mémoire étant organisée en une pluralité de blocs de longueur déterminée contenant chacune un groupe de mots et les longueurs de bloc étant exprimées en nombre de mots contenus dans un bloc, on désire utiliser seulement deux longueurs standard de blocs. On pourrait choisir des longueurs standard de trois et quatre, ce qui permettrait de décrire la suite de mots ci-dessus en regroupant sept mots en quatre mots et trois mots, et onze mots en : deux fois quatre mots plus trois mots. Toutefois cette solution facile ne mène pas loin, car d'autres exemples requerraient des solutions moins évidentes. Pour montrer qu'une solution générale est possible, choisissons par exemple d'utiliser des longueurs standard de quatre et cinq mots aucun des blocs ci-dessus (trois, onze et sept mots) n'est divisible en groupes de quatre ou de cinq mots. Néanmoins la suite de mots de la figure 1 peut aussi être décrite de la façon illustrée par la figure 3, dont les blocs sont basés sur des groupes de quatre ou de cinq mots. On pourra constater ci-après que les suites illustrées par les figures I et 3 sont identiques, bien que le premier et le dernier mot de la boucle soient différents, ainsi que le nombre de répétitions. Les contenus des groupes de mots W4t W9, W13 et W8 de la figure 3 sont respectivement (pour simplifier, l'indice d'un mot est utlisé par la suite pour désigner le mot lui même): W4 : 1 2 3 4 W9 : 5 6 7 8 9 10 Il 12 13 W13: 14 4 5 6 7 8 9 10 11 12 13 14 4 W8 : 14 15 16 17 18 19 20 21 Les blocs W9 et W13 sont lus cinq fois de suite (x5), L'aiguillage LL ("last loop") fait passer, seulement au dernier tour de boucle du bouclage x5, de la fin du bloc W9 au début du bloc W8. Les blocs W4, W9, W13 sont d'abord lus, fournissant les mots (voir ci-dessus les contenus successifs de W4, W9, W13) numéro 1 à 14 puis à nouveau les mots numéro 4 à 14 (correspondant au premier bouclage sur W11 de la figure 1) et enfin le mot numéro 4. Ensuite W9 et W13 sont relus encore trois fois, fournissant à chaque fois les mots numéro 5 à 14 suivis des mots numéro 4 à 14 et du mot numéro 4 et enfin à la quatrième et dernière relecture, seul le bloc W9 est lu (tout ceci correspond à la suite des rebouclages sur W11 de la figure 1 auquels il manque seulement le dernier mot (numéro 14) et l'aiguillage LL envoie lire le bloc W8, qui commence par le mot numéro 14 (celui qui manquait) et se termine par les mots numéro 15 à 21. Cette suite peut être construite par un processeur commandé dans l'ordre par les instructions suivantes : "début de boucle de programme" (BEGIN), "saut si compteur de boucle à zéro" (JZ), "saut sans condition" (JPA), des instructions "pas d'opération" (nop) pouvant en outre être insérées entre certaines des opérations précédentes. Ce programme est illustré à la figure 4. Le tableau se lit comme celui de la figure 2. Ainsi le processeur lit d'abord les mots 1 à 4 (ligne 1), puis en ligne 2 on initialise un compteur de boucle à 5 (opérande 5), et on lit les mots 5 à 8, puis en ligne 3 on lit les mots 9 à 13 et on teste si le compteur de boucle est à zéro (JZ), auquel cas on va à la ligne 7 (opérande 7). Au début cela n'est pas le cas et on continue par les lignes 4, 5 et 6, où on lit les mots numéro 14, 4 à 14, 4, et en ligne 6 on trouve l'opération JPA ("jump always"), c'est-à-dire sauter dans tous les cas à 2 (opérande 2). On relit donc tout le cycle commençant en ligne 2. A la fin de la cinquième lecture de W9, c est-à-dire en ligne 3, l'instruction JZ fait passer aux lignes 7 et 8 et on lit les mots 14 à 21. il est clair que toute séquence de plus de onze mots peut être décomposée en groupes de quatre ou cinq mots : le tableau de la figure 5 indique, pour différents blocs dont le nombres de mots N va de douze à quinze, le nombre C4 de groupes de quatre mots et le nombre C5 de groupes de cinq mots qui le constituent. Par exemple un bloc de quatorze mots est constitué d'un groupe de quatre mots plus deux groupes de cinq mots. Des blocs de plus de quinze mots peuvent être construits itérativement. On passe d'un bloc de N mots à un bloc de N+l mots en retirant un groupe de quatre mots et ajoutant un groupe de cinq mots (+i=-4+5). Si le bloc ne contient pas de groupe de quatre mots (par exemple N=15), il contient alors au moins trois groupes de cinq mots que l'on remplace par quatre groupes de quatre mots (+1=-15+16). il suffit donc de savoir transformer toute séquence comme celle de la figure 1 en une autre séquence basée sur des blocs dont le nombre de mots est 4, 5, 8 (2 x 4), 9 (5 + 4), 10 (2 x 5), ou bien n'importe quelle valeur plus grande que 12. Sur la figure 6 est illustrée à titre d'exemple une autre suite plus complexe, qui totalise 7150 mots. Ces 7150 mots sont définis par l'utilisateur comme étant faits d'abord de trois mots (W3) puis d'une répétition de 17 fois 419 mots, ces 419 mots étant eux-mêmes définis par sept mots W7 suivis d'une répétition de 12 fois 34 mots suivis de quatre mots W4, lesquels 34 mots sont eux mêmes définis par huit mots W8 puis appel ("call") d'une séquence extérieure W15 de quinze mots, et enfin onze mots W11, le tout enfin suivi de sept mots W7, d'un nouvel appel de la séquence extérieure W15 et enfin des deux mots W2. La suite ci-dessus pourrait être engendrée par un processeur dont le programme comporterait les instructions illustrées à la figure 7. Ainsi il lirait d'abord les mots 1 à 3 (ligne 1), puis en ligne 2 il lirait les mots 4 à 7, et il initialiserait (BEGIN) un compteur de boucle avec l'opérande 17 puis en ligne 3 il lirait les mots 8 à 10, en ligne 4 il lirait les mots Il à 13 et il initialiserait (BEGIN) un compteur de boucle avec l'opérande 12, en ligne 5 il lirait les mots 14 à 16 et il appellerait ("CALL") une sous-séquence dont l'adresse est donnée par l'opérande 13. A ce stade les seize premiers mots de la figure 6 auraient été lus. Il passerait donc à la ligne 13 pour lire successivement en lignes 13 à 15 les mots 41 à 55, et en ligne 15 l'instruction RETURN renverrait à la ligne six, qui suit la ligne cinq dont on était parti. il lirait alors en lignes 6 à 8 les mots 17 à 27, c'est-à-dire les mots W11 de la figure 6, et il testerait en ligne 8 si le compteur de boucle n'est pas à zéro (JNZ), auquel cas il irait à la ligne 4 (opérande 4). Au bout de douze lectures des lignes 4 à 8, le compteur de boucle serait à zéro et, au lieu de boucler sur le ligne 4, il passerait à la ligne 9 où il lirait les mots 28 à 31 et il testerait si le compteur de boucle n'est pas à zéro (JNZ), auquel cas il irait à la ligne 2 (opérande 2). Au bout de dix-sept lectures des lignes 2 à 9, incluant l'autre boucle de douze, le compteur de la boucle commençant en deux serait à zéro et, au lieu de boucler sur le ligne 2, il passerait aux lignes 10 et il où il lirait les mots 32 à 38. il appellerait alors la sous-séquence dont l'adresse 13 est donnée par ltopérande. Il il passerait donc à la ligne 13 pour lire successivement en lignes 13 à 15 les mots 41 à 55, puis il reviendrait à la ligne douze, qui suit la ligne onze dont il était parti, pour lire enfin les mots 39 et 40. Les mots utilisés par la description de le figure 6 sont au nombre de cinquante-sept (W3 + W7 + W8 + W11 + W4 + W7 + W2 et W15). La suite de mots de la figure 6 peut aussi être décrite de la façon illustrée par la figure 8, dont les blocs sont basés sur des groupes de quatre ou de cinq mots. On pourra constater ci-après que les suites illustrées par les figures 6 et 8 sont identiques, bien que le premier et le dernier mot de la boucle soient différents. Les contenus (numéros des mots) des groupes de mots W4, W8, ...., W4 et de la sous-séquence de la figure 8 sont respectivement: W4 : 1 2 3 4 W8 : 5 6 7 8 9 10 11 12 W8 : 13 14 15 16 41 42 43 44 W10: 54 55 17 18 19 20 21 22 23 24 W5 : 25 26 27 11 12 W4 : 25 26 27 28 W4 : 29 30 31 4 W14: 293031 32 33 34 35 36 37 38 41 42 43 44 W4 : 54 55 39 40 W9 : 45 46 47 48 49 50 51 52 53 Le groupe des blocs successifs "W8, appel de la sous-séquence W9, W10, W5" est lu douze fois de suite (x12). Le groupe des blocs successifs "W8, (X12) W4, W4" est lu dix-sept fois de suite (x17). Les aiguillages LL font passer de la fin d'un bloc au début d'un autre bloc, seulement au dernier tour de boucle des différents bouclages. Les mots utilisés par la description de le figure 8 sont au nombre de soixante-dix (W4 + W8 + W8 + W10 + W5 + W4 + W4 + W14 + W4 et W9), soit un peu plus que les cinquante-sept mots de la figure 6, mais il est maintenant possible de décrire la séquence avec des blocs de quatre ou cinq mots. Le programme réalisant cette suite de mots est illustré à la figure 9. Le processeur lit d'abord les mots 1 à 4 (ligne 1), puis en ligne 2 il lit les mots 5 à 8, et il initialise un compteur de boucle avec l'opérande 17, puis en ligne 3 il lit les mots 9 à 12, en ligne 4 il lit les mots 13 à 16 et il initialise un compteur de boucle avec l'opérande 15, en ligne 5 il lit les mots 41 à 44, et il appelle la sous-séquence à la ligne 15 ("CALL", opérande 15). il passe donc à la ligne 15 pour lire successivement en lignes 15 et 16 les mots 45 à 53, puis il revient à la ligne six (qui suit la ligne cinq dont il était parti), En ligne 6 il lit les mots 54, 55, 17, 18, 19. En ligne 7 il lit les mots 20 à 24, puis il teste si la boucle est à zéro (JZ), auquel cas il va à la ligne 9 (opérande 9). Au début cela n'est pas le cas et il continue en ligne 8, où il lit les mots numéro 25 à 27, 11, 12 et réalise l'opération JPA ("jump always"), c'est-à-dire sauter dans tous les cas à la ligne 4 (opérande 4). il recommence donc tout le cycle commençant en ligne 4. A la fin de la douzième lecture de W9, c'est-à-dire en ligne 7, l'instruction JZ fait passer à la ligne 9 et il lit les mots 25 à 28, puis il teste si la boucle est à zéro, auquel cas il va à la ligne il (opérande 11). Au début cela n'est pas le cas et il continue en ligne 10, où il lit les mots numéro 29 à 31, 4 et réalise l'opération JPA ("jump always"), c'est-à-dire sauter dans tous les cas à la ligne 2 (opérande 2). il recommence donc tout le cycle commençant en ligne 2. A la fin de la dix-septième lecture, en ligne 9, l'instruction JZ fait passer aux lignes 11 et 12 où il lit les mots 29 à 38, puis en ligne 13 il lit les mots 41 à 44 et il appelle la sous-séquence à la ligne 15 ("CALL", opérande 15). il passe donc à la ligne 15 pour lire successivement en lignes 15 et 16 les mots 45 à 53, puis il revient à la ligne 14 (qui suit la ligne 13 dont il était parti). En ligne 14, il lit les mots 54, 55, 39, 40. il est toujours possible de transformer une suite de mots pour la traiter exclusivement par blocs de quatre et cinq mots. Pour cela on utilise les transformations élémentaires suivantes, à partir d'une séquence comportant une boucle correspondant à la lecture, répétée n fois de suite, d'un groupe de L mots "1, 2, 3,... j, j*1, j+2,... dénommé ci-après "groupe de L mots initial": - Suppression de boucle : le groupe de L mots initial est remplacé par un bloc de n groupes mis bout-à-bout, de longueur nxB, qui est lu une seule fois. - Duplication de la boucle par k : au lieu de répéter le groupe de L mots initial, on répète un groupe qui est fait de k groupes de mots initiaux, donc de longueur kxL, et est répété seulement n/k fois. Avec par exemple un groupe de trois mots1 dupliqué par trois, on obtient un groupe de neuf mots qui peut être décomposé en deux groupes de quatre et cinq mots. De façon générale, une duplication est toujours nécessaire pour les groupes de 1, 2, 3, 6, 7 et 11 mots. Si le nombre de répétitions initial n'est pas divisible par k, on peut le modifier au moyen d'autres transformations ci-après. - Déplacement de k vers amont : soit k = pxL+j (où p et j sont respectivement le quotient et le reste de la division de k par L) ; on commence par lire pxL+j soit k mots puis on répète n-p fois un groupe de mots fait des mots "j+1, j+2...., L, 1, 2,...., j" c'est à dire dans lequel la partie "1, 2,...., j" et la partie "j+1, j+2...., L" ont été interverties. Au dernier tour de boucle, on sort après le mot L. Si n-p Supposons par exemple qu'une séquence à produire est définie par un premier mot unique, après lequel commence une boucle. En déplaçant la boucle en amont de trois, on ajoute trois mots au premier mot unique en question, et on obtient ainsi un groupe de quatre mots avant le début de la boucle. Ainsi les déplacements vers l'amont permettent d'obtenir qu'une boucle commence sur une césure entre deux groupes. - Déplacement de t vers l'aval : soit t = qxLti (où q et i sont respectivement le quotient et le reste de la division de t par L) ; on répète n-q fois le groupe de mots initial et au dernier tour de boucle, on sort de la boucle après le mot L-i, puis on lit un groupe de t = qxL+i mots fait du groupe de i mots L-i+1, L-i+2, ....L, et des q groupes initiaux restants. Si n-q Supposons par exemple qu'après une boucle il ne reste que deux mots à lire. En déplaçant la boucle en aval de deux, on ajoute deux mots avant les deux mots en question, et on obtient ainsi un groupe de quatre mots à lire après la boucle. Ainsi les déplacements vers l'aval permettent d'obtenir qu'une boucle se termine sur une césure entre deux groupes. Les différentes transformations ci-dessus peuvent être éxécutées successivement sur une même boucle. Dans le cas d'une boucle déplacée à la fois en amont et en aval les k premiers mots et les t derniers mots sont définis comme ci-dessus, et le groupe de mots "j+1, j+2,...., L, 1, 2,...., j" est lu n-p-m-l fois si L Dans le cas des appels de sous-séquence, il se peut que la sous-séquence n'ait pas une longueur correcte ou bien que la position de l'appel dans le programme principal ne soit pas convenable. Alors un appel d'une sous-séquence faite de mots "1, 2, 3,...L-1, L" peut être transformé d'une façon analogue à l'une des façons indiquées ci-dessus pour le programme principal - Suppression d'appel : l'appel à une sous-séquence est remplacé par l'insertion de la sous-séquence dans le programme. - Déplacement d'appel de k vers l'amont : les k premiers mots de la sous-séquence initiale sont insérés dans le programme puis il y a appel d'une sous-séquence faite des mots "k+l, k+2,..., L". - Déplacement d'appel de t vers l'aval : il y a appel d'une sous-séquence faite des mots "1, 2,..., t", puis les L-t derniers mots de la sous-séquence initiale sont insérés dans le programme. Dans le cas où une boucle contient un appel à sous-séquence, ainsi que dans le cas où une sous-séquence contient une boucle, les transformations ci-dessus peuvent être appliquées sans difficulté aux boucles et aux appels en question, moyennant quelques contraintes : par exemple un déplacement de boucle peut nécessiter le déplacement préalable de l'appel qu'elle contient. Ainsi donc, à l'aide des transformations définies ci-dessus, il est toujours possible de transformer une suite de mots de façon qu'elle puisse être décrite à l'aide de groupes de mots de longueur quatre ou de longueur cinq. Seules des séquences très courtes (de longueur 1, 2, 3, 6, 7, 11) ne peuvent pas être générées. L'architecture proposée pour réaliser le générateur de mots est représentée sur la figure 10. Elle comprend essentiellement quatre modules de voie identiques respectivement pour les voies CH1-8, CH9-16, CH17-24 et CH25-32. Chaque module, qui dessert huit voies, comporte une mémoire 62, un décodeur 61, une pile 60, et un multiplexeur de sortie 59. La mémoire enregistre les données concernant chacune des voies afférentes et les instructions de séquence. Le décodeur 61 décode les instructions. Le séquenceur 58 contrôle le déroulement d'une séquence. Il comprend essentiellement un compteur de boucle. La pile 60 sert à mémoriser des états de compteur et l'adresse de retour pour les sous-séquences. Le multiplexeur de sortie 59 répartit les bits d'un mot de huit bits sur chacune de voies. Comme on ne peut savoir à l'avance dans quel ordre seront placés les blocs de cinq mots et ceux de quatre mots, tous les blocs prévus dans la mémoire sont des blocs de cinq mots. La largeur d'un bloc de mots pour un groupe de huit voies est donc de quarante bits (soit cinq mots de huit bits chacun) ce qui conduit à une mémoire de quarante kilobits pour l'ensemble du circuit, avec une profondeur des suites de mots égale à deux cent cinquante six. Lorsque le bloc est de quatre mots, la place qui est prévue pour le cinquième mot ne sert à rien. Pour éviter de gaspiller cette place et pour permettre de stocker les instructions sans ajouter encore de capacité à la mémoire vive 62, les instructions sont stockées dans les positions de bits de données qui seraient autrement inutilisées dans le cas des blocs de quatre mots. Cela procure trente deux bits (un bit par voie, 32 voies) pour stocker les instructions et d'autres données. On peut utiliser ces trente deux bits à raison de seize bits pour le chiffre du nombre de répétitions, quatre bits pour le code d'instruction proprement dit, et douze bits pour pour indiquer le nombre de lignes suivantes de programme qui correspondent à un groupe de cinq mots (c'est-à-dire dans combien de blocs on trouvera la prochaine instruction). Comme il n'est pas possible de placer une instruction dans les étapes de programme correspondant à des blocs de cinq mots, on est conduit à modifier l'algorithme de conversion d'une suite de mots. La figure 11 présente la séquence de la figure 9 ainsi modifiée. Elle ne comporte plus d'instruction correspondant à un bloc de cinq mots, et il est aisé de vérifier que la suite de mots est toujours la même REVENDICATIONS: 1. Dispositif générateur de mots multiplexés comportant une mémoire de mots et des moyens pour engendrer des suites de mots par assemblage de groupes de mots lus successivement dans la mémoire, caractérisé en ce que, la mémoire étant organisée en blocs de mots contenant chacun un groupe de mots, il existe pour lesdits blocs de mots plusieurs longueurs standard qui sont néanmoins en nombre limité, et les moyens pour engendrer des suites de mots font appel selon les circonstances à des blocs de mots ayant l'une ou l'autre de ces longueurs standard. 2. Dispositif selon la revendication 1, caractérisé en ce qu'il existe seulement deux longueurs standard. 3. Dispositif selon la revendication 2, caractérisé en ce qu'une des longueurs standard est de quatre mots et l'autre longueur standard est de cinq mots. 4. Dispositif selon l'une quelconque des revendications précédentes, dont les moyens pour engendrer des suites de mots par assemblage de groupes de mots comportent un processeur programmé, caractérisé en ce que les blocs de mots sont placées dans la mémoire à la suite les uns des autres, et les instructions de programme pour le processeur sont placées dans la même mémoire que les blocs de mots, à la suite des blocs de mots de plus petite longueur, et sont lues dans le même pas de programme que le bloc de mots à la suite duquel elles sont placées. 5. Dispositif selon l'une quelconque des revendications précédentes, dont les moyens pour engendrer des suites de mots par assemblage de groupes de mots comportent un processeur programmé, caractérisé en ce que ce processeur est muni de moyens pour relire un nombre de fois prédéterminé une même suite de blocs de mots placés bout à bout dans la mémoire, et pour sortir entre deux des blocs de ladite suite de blocs1 lors de la dernière lecture de la suite. 6. Dispositif selon la revendication précédente, caractérisé en ce que le processeur est muni de moyens pour, sous condition, aller directement de la fin d'un bloc de mots au début d'un autre bloc de mots, ces deux blocs de mots n'étant pas consécutifs, ainsi que des moyens pour, après avoir lu ledit autre bloc de mots, ou plusieurs blocs de mots consécutifs à partir de cet autre bloc de mots, revenir au bloc de mots qui suit le bloc de mots de départ.