Brevet FR2693586A1 — publié le 19940114

La présente invention concerne un dispositif de lecture/écriture de données en mode sélectif multiplet par multiplet dans un système de traitement de données comprenant une mémoire de données dont les emplacements de mémoire contiennent chacun un nombre prédéterminé de multiplets. Au cours de la dernière décennie, des progrès considérables ont été réalisés dans l'informatique grâce à la technologie de fabrication des circuits élémentaires à base de semiconducteurs constituant les systèmes de traitement de données. Ces progrès ont permis une miniaturisation de plus en plus poussée entraînant un accroissement considérable de la puissance de traitement. Une des conséquences de cet accroissement de puissance est le traitement par l'unité de traitement du système de mots de données de plus en plus larges. Ainsi, le traitement qui se faisait par mots de 8 bits il y a quelques années, se fait par mots de 16 bits dans les micro-ordinateurs du commerce. Il existe maintenant des processeurs dont le traitement s'effectue sur des mots de 32 bits, et on envisage dorénavant un traitement par mots de 64 bits. Malgré cet accroissement de la largeur des mots de données pouvant être traités dans les processeurs actuels, l'unité élémentaire adressable en mémoire reste l'octet, c ' est-à-dire le mot de 8 bits. Lorsque l'on parle de la capacité de la mémoire principale d'un système de traitement de données, d'un disque dur ou d'une disquette, cette capacité est toujours exprimée en octets. Ceci provient du fait que le groupe de 8 bits reste l'unité d'information la plus adéquate pour représenter un caractère de données alphanumérique. Les processeurs 16 bits ont la possibilité de lire (ou d'écrire) en mémoire des mots de 8 bits ou des mots de 16 bits. Lorsqu'il s'agit de mots de 16 bits, il y a deux possibilités de lecture. Lorsque lton effectue une lecture par ordre croissant des adresses, celle-i commence soit par la partie de 8 bits de plus fort poids du mot de 16 bits, soit par la partie de 8 bits de plus faible poids. Ceci peut présenter une grande importance dans de nombreuses applications et en particulier dans les télécommunications qui nécessitent la transmission de blocs de données formés de séries d'octets. En effet, ces transmissions pouvant se faire en envoyant le bit le plus significatif en premier (mode MSB) ou en envoyant le bit le moins significatif en premier (mode LSB), il est nécessaire de déterminer laquelle des deux parties du mot de 16 bits doit être lue en premier. Ce type d'application dans laquelle on transmet une chaîne de multiplets de 8 bits utilise principalement l'adressage indirect. C'est-à-dire que les instructions qui commandent le transfert de l'information ont accès à un des registres généraux du processeur dans lequel se trouve l'adresse mémoire du mot en mémoire. Chaque instruction contient un groupe de deux bits qui commande l'incrémentation de l'adresse se trouvant dans le registre, sa décrémentation ou ni l'un ni l'autre. L'incrémentation est utilisée lorsqu'on désire lire en mémoire une série d'octets dans le sens des adresses croissantes. La décrémentation est utilisée lorsqu'on désire lire en mémoire une série d'octets dans le sens des adresses décroissantes.Et bien entendu, il n'y a aucune de ces deux commandes lorsque, soit l'opération de transmission est terminée, soit l'adresse chargée dans le registre l'est par une opération qui n'est ni l'incrémentation ni la décrémentation. Par conséquent, il faut donc disposer de deux bits de l'instruction pour prévoir les trois cas ci-dessus. On voit donc que ce type d'opération nécessite l'utilisation de deux bits dans chaque instruction, et l'emploi d'un incrémenteur-décrémenteur, donc d'un circuit logique relativement complexe et exigeant de nombreux transistors. Le but de l'invention est donc de réaliser un dispositif de lecture/écriture en mémoire d'un système de traitement de données ne nécessitant qu'un incrémenteur (ou un décrémenteur) pour les opérations d'adressage en mémoire de série de multiplets, et non un ensemble incrémenteur-décré menteur utilisé dans les systèmes de la technique antérieure. Un premier objet de l'invention est un dispositif de lecture de données multiplet par multiplet dans un système de données comportant une mémoire de données dont les emplacements de mémoire contiennent chacun un nombre prédéterminé de multiplets, le dispositif de lecture comprenant un moyen de sélection déterminant à quelle extrémité de chacun des emplacements de mémoire doit être lu le premier multiplet du nombre prédéterminé de multiplets en réponse à un bit de sélection se trouvant dans le registre d'état du système. Un autre objet de l'invention est un dispositif d'écriture de données multiplet par multiplet dans un système de traitement de données comprenant une mémoire de données dont les emplacements de mémoire contiennent chacun un nombre prédéterminé de multiplets, le dispositif d'écriture comprenant un moyen de sélection déterminant à quelle extrémité de chacun des emplacements de mémoire doit être écrit le premier multiplet d'un nombre prédéterminé de multiplets en réponse à un bit de sélection se trouvant dans le registre d'état du système. Les buts, objets et caractéristiques de l'invention seront mieux compris à la lecture de la description qui suit faite en référence aux dessins dans lesquels - la figure 1 représente un schéma synoptique d'un système de traitement de données incorporant le dispositif de lecture et d'écriture selon l'invention - la figure 2 représente un schéma synoptique d'un mode de réalisation préféré du dispositif de lecture de données en mémoire selon l'invention ; - la figure 3 représente un schéma synoptique d'un mode de réalisation préféré du dispositif d'écriture de données en mémoire selon l'invention ; et - les figures 4A et 4B représentent des exemples de réalisation du circuit de complémentation à un utilisés dans les dispositifs de lecture et d'écriture illustrés sur les figures 2 et 3. La figure 1 représente l'organisation générale d'un système de traitement de données incorporant l'invention. Un tel système de traitement de données préféré pour mettre en oeuvre l'invention est un processeur de données du type processeur de signal numérique ou un microprocesseur, sans que ce choix soit limitatif pour autant. Les instructions du programme, quelquefois appelées micro-instructions lorsque le système de traitement de données est un microprocesseur, sont emmagasinées dans une mémoire de programme 10. La mémoire de programme 10 est généralement une mémoire morte ou à lecture seulement (ROM) du type programmable (PROM) ou effaçable (EPROM). Mais la mémoire 10 pourrait être également une mémoire vive (RAM). La mémoire 10 communique par le bus 12 avec une unité de décodage et contrôle 14 qui contient l'essentiel de la logique du système chargée de décoder les instructions en provenance de la mémoire de programme 10 et de contrôler le cheminement des informations décodées dans les instructions. Ces informations peuvent être utilisées soit pour l'accès aux données, soit pour des opérations arithmétiques et logiques. Pour ce faire l'unité de décodage et contrôle 14 est reliée au bus d'adressage 16. Le bus 16 est connecté à un bloc de registres de traitement 18 qui contient les registres généraux utilisés pour le traitement des instructions. Certains de ces registres tels que A et B sont destinés à contenir les opérandes contenus dans les instructions ou en provenance de la mémoire de données. Le registre X peut servir de registre d'index pour l'adressage indirect. Il est associé à un incrémenteur INC utilisé pour incrémenter le contenu du registre X lorsque le processeur travaille en adressage indirect et qu'une série de multiplets doit être lue ou écrite en mémoire. Mais ces registres de traitement peuvent avoir d'autres fonctions dévolues la plupart du temps à l'unité de décodage et contrôle.Ainsi, le bloc de registres de traitement 18 contient le compteur de pro gramme PC, des registres de décalage utilisés principalement lors des opérations de multiplication ou division, tels qu'un registre à décalage de Booth, et le registre d'état (STAT), représenté sur la figure qui contient un certain nombre de paramètres déterminés après l'exécution d'une instruction du type arithmétique ou logique et un bit particulier dit "de sélection" qui permet comme on va le voir par la suite, de déterminer à quelle extrémité de l'emplacement de mémoire dont l'adresse se trouve dans le registre X, doit être lu ou écrit le premier multiplet d'un nombre prédéterminé de multiplets correspondant à la capacité de chaque emplacement. La plupart des registres du bloc 18 sont adressables au moyen du bus d'adressage 16. Le bus d'adressage 16 est également une entrée d'une unité de décodage d'adresse 20 dont la fonction est de décoder les adresses résultant du décodage des instructions par l'unité de décodage et contrôle 14 de façon à accéder aux données emmagasinées dans une mémoire de données 22. La mémoire de données est généralement une mémoire vive (RAM) mais ce pourrait être également une mémoire morte ou tout autre type de mémoire. On notera que le bloc de registres de traitement 18 est connecté au bus d'adressage 16 de manière à ce que le contenu de certains registres du bloc 18 tel que le registre X puisse être transmis à l'unité de décodage d'adresse 20 lorsque ce contenu est une adresse d'accès à la mémoire de données 22. De façon à effectuer les opérations arithmétiques et logiques commandées par le contenu des instructions du programme, une unité arithmétique et logique (ALU) 24 est connectée à la sortie du bloc de registres de traitement 18. La sortie de l'unité arithmétique et logique 24 est soit transmise à la mémoire de données 22 par le bus de données 26, soit à un des registres du bloc de registres de traitement 18 par le bus de résultat 28. Le bloc 27 entre le bus 26 et la mémoire 22 représente le dispositif d'écriture en mémoire multiplet par multiplet selon l'invention, comme il sera expliqué par la suite. Les données en provenance de la mémoire de données 22 dont l'adresse a été fournie par l'unité de décodage d'adresse 20 sont transmises à l'entrée de l'unité arithmétique et logique 24 au moyen du bus de lecture de mémoire 30. Le bloc 29 représente le dispositif de lecture en mémoire multiplet par multiplet selon l'invention, comme il sera expliqué par la suite. Comme illustré sur la figure 2 qui représente un schéma synoptique d'un mode de réalisation préféré du dispositif de lecture selon l'invention, les lignes du bus d'adressage 16 sont séparées en deux parties. Les lignes correspondant aux bits de poids fort 42 sont décodées par une unité de décodage d'adresse 40 pour accéder aux emplacements de mémoire dans la mémoire de données 22. Si chaque emplacement de mémoire 44 comporte 2 octets, le bus 42 comprend toutes les lignes du bus d'adressage 16 excepté la ligne AO correspondant au bit de poids le plus faible. Si chaque emplacement de mémoire 44 comporte 4 octets, le bus 42 comprend toutes les lignes du bus d'adressage 16 excepté les lignes AO et Ai correspondant aux deux bits de poids faible de l'adresse. Et ainsi de suite... Dans l'exemple de réalisation décrit ici, les multiplets de données considérés sont des octets, soit 8 bits. Ce qui signifie qu'un emplacement de mémoire contenant deux octets correspond à 16 bits, un emplacement de mémoire contenant quatre octets correspond à 32 bits, etc... Cependant, il faut bien comprendre que, bien que les processeurs actuels utilisent des mots de 8 bits ou octets comme unités d'information élémentaires, l'invention peut être appliquée également à des multiplets contenant plus ou moins de 8 bits. Ici, il est bon de préciser comment sont rangées les données en mémoire. Il existe deux méthodes de rangement en mémoire. Soit c'est l'octet de poids fort du mot mémoire qui se trouve être l'octet le plus à gauche 44-1 dans ltemplace- ment de mémoire 44, et dans ce cas, l'octet de poids faible est à droite en 44-2. Soit c'est l'octet de poids faible qui se trouve être l'octet le plus à gauche en 44-1 et dans ce cas, l'octet de poids fort est à l'extrémité droite de l'emplacement soit la partie 44-2. Lorsque l'on procède à la lecture de l'emplacement de mémoire 44, octet par octet, si on commence par lire l'octet de poids fort dans la partie la plus à gauche de l'emplacement de mémoire, soit la partie 44-1, on a coutume de dire que la lecture se fait en mode "big endian".Si par contre, on commence par lire l'octet de poids faible dans la partie la plus à droite 44-2 de l'emplacement de mémoire, on a coutume de dire que la lecture se fait en mode "little endian". Ainsi, avec des emplacements de mémoire contenant 16 bits, le mode "little endian" correspond à la lecture en premier des bits 7-0 dans 44-2. Comme il a été précisé ci-dessus, une des caractéristiques de l'invention est de nécessiter un incrémenteur (ou décrémenteur) lorsqu'on procède à l'adressage indirect en mémoire. Chaque instruction dispose donc d'un bit qui, lorsqu'il est à 1, commande l'incrémentation du contenu du registre contenant l'adresse, par exemple le registre X du bloc de registres 18 (voir figure 1) par l'incrêmenteur INC du bloc de registres 18. Si le processeur travaille en mode dit "little endian", l'octet de poids faible doit être reçu avant l'octet de poids fort et inversement si le processeur travaille en mode "big endian". Ce qui caractérise l'invention c'est la possibilité pour le processeur de pouvoir travailler aussi bien en mode "little endian" qu'en mode "big endian", tout en ne disposant que d'un incrémenteur. En revenant à la figure 2, les lignes correspondant aux bits de poids faible de l'adresse du bus d'adressage 16, soit AO, Au..., sont connectées à l'entrée d'un circuit de complémentation à un 46. Une autre ligne d'entrée 48 du circuit 46 provient d'un bit de sélection B/L du registre d'état STAT du bloc de registres 18. Le circuit de complémentation à un 46 a pour effet d'inverser chacun des bits sur les lignes AO, Al... si la valeur du bit B/L est égale à 1 (et a également pour effet d'inverser l'ordre de lecture des multiplets dans un emplacement de mémoire) et de n'avoir aucune action dans le cas inverse.Les lignes A'O, A'1,... à la sortie du circuit 46 sont connectées à l'entrée de commande d'un multiplexeur 50. Le multiplexeur 50 reçoit en entrées les octets contenus dans l'emplacement de mémoire 44 adressé par les bits de poids fort sur les lignes composant le bus 42. Il délivre à sa sortie tout le contenu de l'emplacement de mémoire 44, octet par octet en commençant par l'octet contenu dans la partie 44-2 de l'emplacement de mémoire si le bit B/L est à O (mode "little endian"), ou en commençant par l'octet contenu dans la partie 44-1 de l'emplacement de mémoire si le bit B/L est à 1 (mode "big endian"). Seules les entrées du multiplexeur 50 en provenance des multiplets se trouvant aux deux extrémités de l'emplacement de mémoire 44 ont été représentées sur la figure 2.Mais il est évident que chacun des octets de l'emplacement de mémoire 44 est également relié à une entrée du multiplexeur 50, de sorte que les octets sont lus l'un après l'autre en commençant soit par l'octet de gauche, soit par l'octet de droite. Bien que dans la description qui précède le bit de sélection B/L se trouve dans le registre d'état STAT, il est clair qu un tel bit pourrait être positionné dans tout autre registre. On voit donc que l'idée principale de l'invention est une sélection du mode de lecture de la mémoire (mode "little endian" ou "big endian") grâce à une modification dynamique de bits de poids faible de l'adresse, et qui ne nécessite qu'un incrémenteur, plutôt que d'avoir deux modes d'adressage possible nécessitant un décrémenteur en même temps qu'un incrémenteur. Ce choix d'architecture permet une optimisation (incrémentation et décrémentation) des ressources dans le cas où les deux modes d'adressage ne sont pas indispensables car la réalisation des deux modes d'adressage a un coût bien plus élevé que l'implémentation de l'invention. Bien que le mode de réalisation qui vient d'être décrit fasse appel à la seule incrémentation, il est aisé pour l'homme du métier de comprendre que le dispositif de la figure 2 pourrait s'accommoder de la seule décrémentation (plutôt que l'incrémentation) sans sortir du cadre de l'invention. Bien entendu, si seule la décrémentation est effectuée dans le mode d'adressage, les modes de lecture sont inversés, le mode de lecture "little endian" correspondant à l'octet de poids fort lu en premier et le mode "big endian" correspondant à l'octet de poids faible lu en premier. La figure 3 qui représente un schéma synoptique d'un mode de réalisation préféré du dispositif d'écriture selon l'invention, comporte certaines parties communes avec la figure 2. Ainsi les lignes du bus d'adressage sont également divisées en deux parties. Les lignes correspondant aux bits de poids fort 42 du bus d'adressage 16 sont décodées par l'unité de décodage d'adresse 40 pour accéder aux emplacements de mémoire dans la mémoire de données 22. De la même façon, le bus 42 comprend toutes les lignes du bus d'adressage 16 excepté la ligne AO correspondant au bit de poids le plus faible si chaque emplacement de mémoire 54 comporte 2 octets, le bus 42 comprend toutes les lignes du bus 16 excepté les lignes AO et Al correspondant aux deux bits de poids faible de l'adresse si chaque emplacement de mémoire comporte 4 octets... et ainsi de suite. Pour simplifier, la mémoire 22 étant la même que dans la figure 2, chaque emplacement de mémoire est composé d'un nombre prédéterminé d'octets et a donc une capacité multiple de 8 bits. Là encore, il est bon de préciser que l'invention peut être appliquée à des multiplets ou mots contenant plus ou moins de 8 bits. Comme on l'a vu précédemment, ce qui caractérise l'invention c'est la possibilité pour le processeur de pouvoir travailler aussi bien en mode "little endian" qu'en mode "big endian", tout en ne disposant que d'un incrémenteur. Les lignes du bus 16 correspondant aux bits de poids faible de l'adresse, soit AO, A1... sont connectées à l'entrée d'un circuit de complémentation à un 56. Une autre ligne d'entrée 58 du circuit 56 provient du bit de sélection B/L du registre d'état STAT du bloc de registres 18. Le circuit de complémentation à un 56 a pour effet d'inverser chacun des bits sur les lignes AO, Al... si la valeur du bit est égale à 1 et n'avoir aucune action dans le cas inverse. Les lignes A'O, A'1... à la sortie du circuit 56 sont connectées à l'entrée d'un démultiplexeur ou décodeur d'adresse 60. Le démultiplexeur 60 comporte autant de lignes de sortie qu'il y a d'octets contenus dans l'emplacement de mémoire 54. Les deux lignes de sortie 62 et 64 du démultiplexeur 60 attaquent respectivement deux circuits ET 66 et 68. L'autre entrée des circuits ET 66 et 68 est une ligne d'écriture 70 qui est active lorsque des données doivent être emmagasinées dans la mémoire 22 et que l'emplacement de mémoire est désigné par l'adresse se trouvant sur le bus 16. Le démultiplexeur 60 rend donc active la ligne 62 ou la ligne 64 selon la valeur du bit B/L se trouvant dans le registre d'état STAT et la valeur du bit AO. Lorsque la ligne 62 est active, le circuit ET 66 est passant si le signal d'écriture est haut sur la ligne 70, ce qui permet d'emmagasiner l'octet présent sur le bus de données 26 dans la partie gauche 54-1 de l'emplacement 54. Cet octet étant l'octet de poids fort du mot, le rangement en mémoire correspond au mode "big endian". Le rangement en mémoire correspond au mode "little endian" si l'octet est rangé dans la partie 54-2.Bien que seulement deux lignes de sortie du démultiplexeur 60, deux circuits ET, et deux parties (contenant chacune un octet) de l'emplacement de mémoire aient été représentées sur la figure 3, il est facile de concevoir qu'il existe autant de lignes de sorties du multiplexeur et de circuits ET qu'il y a d'octets contenus dans ltemplace- ment de mémoire 54. De la même façon que pour la lecture, le bit de sélection B/L pourrait être emmagasiné dans un autre registre que le registre d'état STAT. Comme pour le dispositif de lecture représenté sur la figure 2, le dispositif d'écriture représenté sur la figure 3 permet d'éviter l'utilisation simultanée d'un incrémenteur et d'un décrémenteur. On fera le choix soit d'un incrémenteur, comme c'est le cas pour le processeur représenté sur la figure 1, soit d'un décrémenteur. Bien entendu, si c'est la décrémentation qui est choisie dans le mode d'adressage, les modes d'écriture décrits ci-dessus sont inversés, c'està-dire que le mode "little endian" correspond alors à l'octet de poids fort écrit en premier et le mode "big endian" à l'octet de poids faible écrit en premier. Les figures 4A et 4B représentent des exemples de réalisation du circuit de complémentation à un utilisé dans l'invention. La figure 4A correspond à une mémoire dont chaque emplacement contient 16 bits composé d'un octet de poids fort et un octet de poids faible. Dans ce cas, le circuit de complémentation à un est un simple circuit OU EXCLUSIF qui a pour première entrée le bit B/L du registre d'état et pour deuxième entrée la ligne de bit de poids le plus faible AO du bus d'adressage. La sortie A'O est l'entrée AO lorsque le bit B/L est égal à 0, et est l'inverse de AO lorsque le bit B/L est égal à 1. Le circuit représente sur la figure 4B correspond à des emplacements de mémoire contenant 32 bits soit 4 octets de 8 bits. Dans ce cas, le circuit de complémentation à un est formé de deux circuits OU-EXCLUSIF ayant comme première entrée le bit B/L se trouvant dans le registre d'état, et comme deuxième entrée la ligne AO ou Al correspondant respectivement aux lignes de bits de poids le plus faible du bus d'adressage. Les sorties A'O et A'1 sont identiques aux entrées AO et Al lorsque le bit B/L est égal à O et sont les inverses des entrées AO et Al lorsque le bit B/L est égal à 1. L'invention qui vient d'être décrite permet donc de n'utiliser qu'un incrémenteur (ou un décrémenteur) au lieu de l'ensemble incrémenteur-décrémenteur indispensable dans les systèmes de l'art antérieur. Ceci permet une économie de circuits non négligeable puisqu'elle représente environ 400 transistors en moins sur un total d'environ 8000 transistors que comprend un processeur du type DSP, soit une économie d'environ 5 t de la surface de silicium. En outre, chaque instruction ne disposant que d'un seul bit au lieu de deux pour définir l'incrémentation en adressage indirect, le bit économisé peut être judicieusement utilisé dans un autre but, ce qui accroit encore l'efficacité du système. REVENDICATIONS 1. Dispositif de lecture de données multiplet par multiplet dans un système de traitement de données du type comprenant un registre de sélection (STAT), un bus d'adressage (16) et une mémoire de données (22) dont les emplacements adressés au moyen du bus d'adressage contiennent chacun un nombre prédéterminé de multiplets ; caractérisé en ce qu'il comprend un moyen de sélection (46, 50) déterminant à quelle extrémité de chacun desdits emplacements (44) doit être lu le premier multiplet dudit nombre prédéterminé de multiplets en réponse à un bit de sélection (B/L) se trouvant dans ledit registre de sélection. 2. Dispositif de lecture selon la revendication 1, dans lequel ledit moyen de sélection comprend un circuit de complémentation à un (46) connecté en entrée aux lignes de poids faible (AO, Al) dudit bus d'adressage dont les autres lignes déterminent l'adresse dudit emplacement de mémoire (44), ledit circuit de complémentation à un inversant lesdites lignes de poids faible lorsque ledit bit de sélection (B/L) est à 1, et un multiplexeur (50) déterminant dans quelle partie, à l'extrémité gauche ou à l'extrémité droite dudit emplacement de mémoire doit être lu le premier multiplet de données. 3. Dispositif de lecture selon la revendication 2, dans lequel chacun desdits emplacements de mémoire (44) contient 2 multiplets, et ledit circuit de complémentation à un (46) est un circuit OU-EXCLUSIF dont une entrée est ledit bit de sélection (B/L) et l'autre entrée est la ligne de poids le plus faible (AO) du bus d'adressage (16), la sortie (A'O) dudit circuit OU-EXCLUSIF étant inversée lorsque ledit bit de sélection est égal à 1 et inchangée lorsque ledit bit de sélection est égal à 0. 4. Dispositif de lecture selon la revendication 2, dans lequel chacun desdits emplacements de mémoire (44) contient 4 multiplets et ledit circuit de complémentation à un (46) est formé de deux circuits OU-EXCLUSIF dont une des deux entrées est l'une des deux lignes de poids les plus faibles (A'O, A'1) dudit bus d'adressage (16), et la deuxième entrée est ledit bit de sélection (B/L), la sortie (A'O, A'1) de chacun desdits circuits OU-EXCLUSIF étant inversée lorsque ledit bit de sélection est égal à 1 et inchangée lorsque ledit bit de sélection est égal à 0. 5. Système de traitement de données comprenant un dispositif de lecture selon l'une quelconque des revendication 1 à 4, et comportant en outre un incrémenteur (INC) pour incrémenter l'adresse d'un registre d'index (X) dans le cas d'adressage indirect, la lecture des données en mémoire pouvant se faire soit dans le mode commençant par le multiplet de poids fort soit dans le mode commençant par le multiplet de poids faible grâce audit dispositif de lecture. 6. Dispositif d'écriture de données multiplet par multiplet dans un système de traitement de données du type comprenant un registre de sélection (STAT), un bus d'adressage (16), un bus de données (26) et une mémoire de données (22) dont les emplacements adressés au moyen du bus d'adressage contiennent chacun un nombre prédéterminé de multiplets ; caractérisé en ce qu'il comprend un moyen de sélection (56, 60) déterminant à quelle extrémité de chacun desdits emplacements (54) doit être écrit le premier multiplet d'un nombre prédéterminé de multiplets fourni sur ledit bus de données (26) en réponse à un bit de sélection (B/L) se trouvant dans ledit registre de sélection. 7. Dispositif d'écriture selon la revendication 6, dans lequel ledit moyen de sélection comprend un circuit de complémentation à un (56) connecté en entrée aux lignes de poids faible (AO, Al) dudit bus d'adressage (16) dont les autres lignes déterminent l'adresse dudit emplacement de mémoire, ledit circuit de complémentation inversant la valeur desdites lignes de poids faible lorsque ledit bit de sélection est à 1, et un démultiplexeur (60) déterminant quelle est la partie, à l'extrémité gauche ou à l'extrémité droite dudit emplacement de mémoire (54), dans laquelle doit être écrit le premier multiplet en réponse aux lignes de sortie (AO, Al) dudit circuit de complémentation à un. 8. Dispositif d'écriture selon la revendication 7, dans lequel chacun desdits emplacements de mémoire (54) contient deux multiplets, et ledit circuit de complémentation à un (56) est un circuit OU-EXCLUSIF dont une entrée est ledit bit de sélection (B/L) et l'autre entrée est la ligne de poids le plus faible (AO) dudit bus d'adressage (16), la sortie (A'O) dudit circuit OU-EXCLUSIF étant inversée lorsque ledit bit de sélection est égal à 1 et inchangé lorsque ledit bit de sélection est égal à 0. 9. Dispositif d'écriture selon la revendication 7, dans lequel chacun desdits emplacements de mémoire (54) contient 4 multiplets et ledit circuit de complémentation à un (56) est formé de deux circuits OU-EXCLUSIF dont une des deux entrées est l'une des deux lignes de poids les plus faibles (AO, Al) dudit bus d'adressage 16, et la deuxième entrée est ledit bit de sélection (B/L), la sortie (A'O, A'1) de chacun desdits circuits OU-EXCLUSIF étant inversée lorsque ledit bit de sélection est égal à 1 et inchangée lorsque ledit bit de sélection est égal à 0. 10. Système de traitement de données comprenant un dispositif d'écriture selon l'une quelconque des revendications 6 à 9 et comportant en outre un incrémenteur (INC) pour incrémenter l'adresse d'un registre d'index (X) dans le cas d'adressage indirect, l'écriture des données en mémoire pouvant se ' faire soit dans le mode commençant par le multiplet de poids fort soit dans le mode commençant par le multiplet de poids faible grâce audit dispositif d'écriture.