Brevet FR2287067A1 — publié le 19760430

L'invention se rapporte aux dispositifs diadressage de mémoire principale dans les calculateurs pour le traitement de l'information et elle concerne plus parti culièrement Une mémoire tampon pour le transfert de données de façon bid irectionnel I e entr e la mémoire tampon et la mémoire principale dont la structure permet à 1t unité centrale ou CPU d'effectuer le plus grand nombre possible de cycles lecture/écriture dans la mémoire tampon tout en assurant l'échange de données nécessaires au traitement qui est en cours ainsi que celui des entrée/sortie pour les appareils périphériques. II est connu des systèmes informatiques où la mémoire centrale directement accessible mot par mot par l'unité centrale se distingue des mémoires auxiliaires dont les informations doivent être chargées par blocs en mémoire centrale pour être traitées. Les développeme@ts technologiques notamment des semi-conducteurs intégrés ont contribué à l'appari tion de mémoires très rapides dont ie temps diaccès est d'un ordre de grandeur inférieur à ceiui des mémoires à tores et à la création d'un nouveau concept de hiérarchisation des mémoires.C'est ainsi que l'on a pensé à organiser la mémoire centrale en deux n ive aux , le premier ayant un faibl e temps diaccès et une faibie capacité., I 'aut re un temps d' accès et une capacité plus importants. Dans les deux cas, l'unité centrale peut accéder à l'un et l'autre niveau et on s'arrange pour que dans la plupart des cas les réiérences mémoires de mandées par l'unité central e se trouvent dans le premier niveau , I accès au deuxième niveau devant rester exceptionnel. Ceci peut se réaliser soit par une extension de la mémoire centrale dans laquelle le premier et le deuxième niveau peuvent en première approximation s'assai mi ler respective ment à une mémoire centrale et une mémoire auxiliaire appelée mémoire étendue, les échangesentre niveaux étant gérés par microgramme nécessitent peu d' éléments matériels, soit par itintro- duction d'une mémoire tampon intermédiaire venan@ s'intercaler entre l'unité centrale et le deuxième niveau normalement apparenté à la mémoire centrale La mémoire intermédiaire correspondant au premier niveau est quelquefois appelée antémémoire, la partie correspondant au deuxième niveau constitue la mémoire principale. Les échanges entre antémémoires et mémoire principale sont entièrement assurés par Itagencement de circuits logiques appropriés de telle sorte que I 'antémémoire est totalement inconnue du programmeur et n'a d'autre but que d'antémémoire les performances de la machine. Lors d t une référence mémoire l' ' uni té centrale vérifie par voie associative si l'information cherchée se trouve dans 'antémémoire et seulement dans la négative elle fait appel à la mémoire principale.La mémoire tampon a donc un caractère associatif puisqulil faut détecter si une information s'y trouve ou non ce qui n'implique pas qulelle soit elle même associative mais tout au moins qu' el le soit dotée d'un dispositif de topographie. Le chargement de la mémoire tampon se fait à propos des demandes de l'unité centrale et l'on pari e que le bloc d'informations qui entoure l'information demandée à des chances diêtre à nouveau référencé et on le transmet de la mémoire principale à la mémoire tampon. La mémoire principale étant remise à jour à toute opération de rangement, il n'y a aucun transfert à prévoir de la mémoire tampon vers la mémoire principale. Certains monoprocesseurs sont munis diune mémoire tampon de lecture ou antémémoire don t le fonctionnement vient d'être exposé, toutefo is les dispositifs utilisés pour ranger ou mettre à jour une information en mémoire principale demeurent rel ative ment lents car ils demandent à l'unité centrale de fournir des cycles d'écriture en mémoire supplémentaires, diautre part 'execution des programmes d'entrée sortie relatifs aux unités de@drée sortie se fait au détriment du programme qui est en cours en volant des cycles mémoires à l'unité centr al e. La présente invention a pou r but un dis positif permettant diadresser la mémoire princi pa I e sans perte de cycles par l'unité centrale caractérisé par le fait qulil comprend en combinaison une mémoire tampon de lecture une mémoire tampon d'écriture et une mémoire tampon d'entrée sortie de données pour les appareils périphériques, chaque tampon comprenant des moyens pour échanger des donn ées avec I unité centrale ou CPU de façon que le nombre de bytes transférés par cycle d'écriture ou de lecture soit le meme quelque soit le tampon lu ou écrit alors que le nombre de bytes transférés vers la mémoi re principale ou MMU reste un multiple du nombre de bytes transférés entre les tampons et le CPU.Les dits tampons de lecture et d écriture étant caractérisés en ce qu'ils comprennent des moyens pour. contrôler si l'adresse demandée par le CPU est déjà présente drns un des tampons de lecture ou diécri ture et des moyens pour prendre ces données dans le tampon où elles sont présentes. Afin diautoriser le plus grand nombre possib I e de cyc les écriture en mémoi re principale le transfert des données dans le tampon d'écriture à partir du CPU s'effectue au moyen de deux registres et de leur bascule de vai idi té associée de la façon suivante. Si les deux bascules de vali dité sont à zéro le transfert a lieu dans le premier registre ou si I 'une seulement des 2 bascules de validité est à zéro le transfert a lieu dans le registre dont la bascule de validité est à zéro. Si une bascule de validité est déjà à "un" au moment où le CPU fait un cycle d'écriture un un cycle mémoire sera fait pour un ou deux mots en accord avec les bts d'ordre élevés des deux registres adresse associés. Lors dire cycle d'éc -it ure de deux mots les deux bascules de validité seront remises à zéro alors que pour un cycle écriture d'un mot ce sera la donnée la plus vieille qui sera envoyée à la mémoire principale et la bascule de validité correspondante sera remise à zéro.A la fi n du cycle d'écriture de la mémoire principale si un tampon de lecture contient une donnée de même adresse que celle qui vient diêtre écrite en mémoire principale son contenu est remis à jour à la valeur de la nouvelle donnée. L'invention sera mieux comprise à I aide de la des cr;ption faite au regard des dessins annexés qui va suivre. La figure 1 représente le dispositif de I invention ou MBU (abrévi ation du terme analo-saxor Memory buffer Un ou unité tampon de mémorisation , comprise entre I ! un ité central e CPU et la mémoire principale. La fi gure 2 représente I'unité tampon de la lecture RBU (abréviation du terme ang lo-saxon "Read Buffer Unit" La figure 3 se décompose en les figures 3A et 36 qui représentent l'unité tampon diécri ture WB U (abréviation du terme anglo-saxon "W rite Buffer Unit") La figure 4 représente l'unité tampon IS;C ainsi que l'ensemble des I iaisons entre les divers tampons et l'uni té centrale d'une part et la m émoire principa I e ou MMU d' autre part. L'unité tampon 105 ou MBU de la figure 1 est comprise entre l'unité centrale CPU 100 et la mémoire principale 104. E lie est constituée de trois tampons 101, 102,103. Le tampon 101 est réservé aux opérations de lecture des données entre la mémoire principale 104 et le CPU 100.11 est composé de bl ocs de données ayant chacun une capacité de 16 Bytes. Chaque fois qu'une demande de lecture est fait e en mémoire principale un bloc de 16 bytes est transféré dans la mémoire tampon 10 pour être ensuite transféré par blocs due 4 bytes vers l'unité centraie. Lorsqu'une demande drécritur e -en mémoire principale est faite les données sont transférées par bloc de 4 bytes du CPU 100 dans le tampon 102 et par bloc 8 bytes du tampon 102vers la mémoire principale. L'unité tampon 103 est réservée aux opérations d'entrée sortie c'est à dire au transfert des don nées ent re la mémoire principale 104 et les unités périphériques au travers de l'unté centrale. Les données en lecture ou en écriture sont transmises par b I ocs de 4 byte s entre le CPU 100 et le tampon d'entrée sorti e 103 et la mémoire principale 104. On voit sur cette figure que quelquesoit le mode d'accès à la mémoire 104 le CPU 100 transfère toujours des blocs de 4 bytes à l'unité tampon MBU 105.Le flux de bytes entre le CPU 100 et le MBU 105 est donc constant quel que soit ce mode d'accès et la durée du cycle est évidemment constante, la technologie utilisée pour les trois tampons étant la même (mémoire semiconducteurs intégrés ou technologie MS). La figure 2 représente les détails de l'unité tampon de lecture,el le doit entre lue en présence de la figure 4. Dans son principe l'unité tampon de lecture reflète une image diune zone de I a mémoire principale. Comme la mémoire principale elle est divisée en un même nombre de colonnes numérotées de Oà Q-1, les colonnes de l'une ou I t autre mémoi re se correspondant de numéro à numéro.Ainsi que la mémoire principale la mémoire tampon de lecture se divise en rangées en nombre inférieur à celui de la mémoire principale et les intersections rangées/colonnes délémitent des zones ou des blocs de données. A chaque bloc de données est attribué un nombre fixe et constant de bytes. Ainsi à une mémoire princ:-pal e comprenant Q colonnes et R rangées contenant donc Q X R blocs de données contenant chac un B bytes est associée la mémoire tampon de lecture comprenant Q colonnes et r rangées avec rtcR soit Qx r blocs de données. Dans une réalisation préférée de l'invention les valeurs Q 128,r=4 etB = 16 bytes définissent une capaci té de mémoire tampon de lecture de 8 K bytes. L'unité tampon de lecture reçoit des données de la mémoire principale MMU pour les transférer vers I ' unité de t rai tement ou CPU. Lors de l'initialisation diun "J#B" c'est à dire de l'initi ali sation dune unité de travail pour l'unité de multitraitement, la mémoire tampon est vide de toute donnée correspondant à ce'U#B"et et à la première demande de lecture le CPU adresse un bloc de donnée en mémoire principale et ce bloc est ensuite transféré simultanément à l'unité de traitement CPU et dans une des 4 rangées qui est libre de la colonne correspondante de la mémoire tampon de lecture. A la d emande suivant e l' ' adr esse demandée est comparée au contenu des 4 blocs de données correspondant au numéro de colonne demandé, s'il y a égalité cela signifie que le bloc de données est déjà dans la mémoire tampon et c'est ce bloc qui sera envoyé au CPU, slil n'y a pas égalité le CPU adress e directement I a mémoi re principale et I e bloc de données est transféré à la fois vers le CPU et dans une des 4 rangées qui est libre de la colonne correspondante du bloc tampon de lecture . Ainsi à chaque fois qu'une demande de lecture est exécutée le CPU va rechercher dans la mémoire tampon de lecture s il n rexiste pas le bloc de données correspon dant à 1 ' ad resse de mandée. Ainsi il est aisé de voir que ce mécanisme permet de gagner un temps précieux dans l'execution de nombreux "J#B"où très souvent les mêmes données sont utilisées de façon répétitive tout au long du traitement. Sur la figure 2 1 ladres se phys ique demandée AW est prise en compte dans le registre RA 200 et elle est comparée avec le contenu du tampon d'adresse TR 201 dans les comparateurs 218,219,220 et 221. Pour effectuer cette comparaison le contenu de l'adresse physique qui est composé d'une zone de bits allant du bit 8 sur une longueur de 13 bits et dune zone de bits allant du bit 21 sur une lo ngueu r de 7 représentant respectivement 1 iadres se du b loc de données dans la mémoire principale et I e numéro de la colonne, est envoyé dgune e part en ce qui concerne la première zone de bits à l'entrée des comparateurs 218 à 221 et du autre part en ce qui concerne la deuxième zone de bits à l'entrée du décodeur de colonnes DC1203.Si le bloc de données est présent dans la mémoire tampon de lecture son a dresse existe dans une des quatr e rangées numérotées de O à 3 du tampon TR 201 et sur la colonne sélectionnée par le décodeur de colonne DC1 203, le byte correspondant au contenu de cette adresse est donc présent à l'une des entrées des comparateurs 218 à 221 qui sont en liaison avec les rangées du tampon TR. Lorsque légalité a lieu une des sorties des comparateurs 218 à 221 prend llétat 1 logique.La deuxième zone de bits dans adresse physique qui correspond à adresse colonne est envoyée au décodeur DC2 204 pour sélectionner une colonne de la mémoire tampon de données TD 202. Comme la mémoire tampon TR la mémoire tampon de données TD est composée de 4 rangées numérotées de O à 3 et de 128 colonnes sélectionnables par le décdeur DC2 204. La sortie d'un des comparateurs 218 à 221 qui est à un logique valide le transfert du bloc sur l'une des portes 222, 223, 224 ou 225. Le bloc de données ainsi sélectionné est transmis au CPU par le bus D1 par l'intermédiaire de la porte ',OU > ' 226. SWil n'y a pas égalité entre l'adresse physique et les adresses correspondant a la colonne sélectionnée qui apparaissent aux entrées des comparateurs 218, 219, 220 et 221 les sorties E0 à E3 desdits compara teurs sont dans l'état O logique. (Les états des sorties E0 à E3 sont envo yées au CPU). L'adresse physique adresse alors directement la mémoire principale et le bloc des données est transféré à la fois vers le CPU et vers le bloc tampon TD 202. Le transfert dans le bloc TD 202 s'opère en fonc tion d'un byte d'occupation ACT de 4 bits situé dans ia rangée appelée ACT du tampon TR 201. Lorsque la colonne est sélectionne le CPU lit le byte ACT et le trans fert des données a lieu sur la rangée qui a le bit 0 d'ordre le plus bas. Le rangement des données s'effectue à l'aide des portes "ET" 214, 215, 21t, 217 qui sélectionnent une des portes de données 210, 211, 212, 213 pour transférer le contenu du 3us dans une des rangées de la mémoire tampon TD 202. Le mécanisme de mise à jour des registres ACT est établi de façon qu'un bloc de données nouvellement lu soit toujours rangé dans la rangée la plus tard utilisée. L'agorithme de mise à jour est le suivant. A chaque lecture d'une rangée, le bit de ACT qui correspond à cette rangée est mis à 1 et si les trois autres bits sont déjà à 1 le CPU les remet à zéro.Pour transférer un bloc de données dans une rangée, la rangée sélectionnée est celle qui parmi toutes celles qui ont le bit correspondant de ACT à Ocelle qui a le numéro de rangée d'ordre le plus bas. La lecture du byte ACT se fait sur le bus ACT1 et sa mise à jour se fait par le CPU sur le bus ACT2 la mise à jour s'opérant par l'intermédiaire du registre RACT 205. Les figures 3A et 3B représentent le tampon d'écriture WBU. La figure 3A doit être lue en présence de la figure 36 et la figure 3B doit etre lue en présence de la figure 4. Lorsque le CPU effectue une opération d'écriture sesdonnées et adresses sont mémorisées respectivement dans un des registres DWEO 350 ou DWB1 351 pour les données et dans un des registres AWBO 320 ou AWB1 321 pour les adresses. Les deux registres de données et les deux regis res d'adresse sont utilisés de façon à avoir le plus grand nombre possible de cyclesd'ériture a 8 bytes dans la mémoire principale alors que les transferts du CPU dans le tampon d'écriture ont lieu avec des cycles de 4 bytes.Le regroupement de mots de 4 bytes en mots de 8 bytes se fait à l'aide des sélectionneurs 344, 345, 346 et 347 et l'aiguillage d'un mot de données de 4 bytes dans un registre DWEO ou DWB1 se fait à l'aide de bits de validité associés à chaque registre dont la génération a lieu a l'intérieur du tampon d'écriture suivant la règle suivante Le mot de données de 4 bytes est transféré dans le registre dont le bit de validait; est à zéro ou dans le registre DWBO si les deux bits de validité sont à zéro.Sur la figure 33 l'aiguillage est obtenu à l'aide des portes 352 et 353, la porte 352 autorise la prise en compte des données dans le registre DWBO 350 si le signal de validité VWBO est à zéro logique et la porte 353 autorise la prise en compte des données dans le registre DWB1 351 si le bit de validité VWBO est à 1 logique et si le bit de validité VWBl est à 0 logique. Si les deux bits de validité sont tous les deux à 1 logique cela signifie que les deux registres DWBO et DWBl sont remplis, le transfert pour avoir lieu entre CPU et WBU devra attendre que les bits de validitéVWBO etVWB1 soient remis à zéro. Si lorsque le CPU fait un cycle d'écriture, un bit de validité est déjà à 1, un cycle mémoire sera fait. Ce cycle d'écriture est pour un ou deux mots en accord avec les bits dlordre élevé des 2 registre d'adresse. Si c'est un cycle d'écriture d'un mot, ciest le donnée la plus vieille qui est envoyée dans la mémoire principale et son bit correspondant est remis à zéro. Si c'est un cycle d'écriture de cieux mots les deux bits de validité sont remis à zéro. La génération des bits de validité VWEO etVWB1 est obtenue à laide de circuits logiques 307 à 312.Lorsque un cycle d'écriture du CPU dans WBU a lieu le signal #/ RE est généré par le CPU vers l'entrée des portes "ET" 307 et 309. Les circuits 311 et 312 sont formés chacun d'un circuit OU à deux entrées dont la sortie est reliée à entrée d'un inverseur. Les sorties VWBO et VW' B1 de ces circuits sont à un logique respectivement si les équations logiques suivantes sont vraies. VWB0 = (#RE1 # FT* # VWB0 *) V (VWB0 # M) VWB1 = (#RE1 # FT* # VWB0 # VWB1*) V(VWB1#M) Ces conditions sont réalisées en ce qui concerne le signal VWBO par la porte "ET" 307 qui reçoit à son entrée les signaux $ RE1 et FTi venant du CPU et la sortie VWBO* de la logique 311 dont la sortie est reliée à une entrée de la porte "OU" de la logique 311, et par la porte "ET" 308 d'auto- maintien de la logique 311, dont-une entrée reçoit le signal VWBO de la logique 311 et dont l'autre entrée reçoit le signal M de maintien généré par le circuit"non out 306.Le signal VWB1 est obtenu à partir de la parte "ET" 309 que re@it à son entrée les signaux # RE1, et FT* venant du CFU ainsi que les signaux VWBO et VWB1* venant respectivement de la sortie VWB0 de la logique 311 et de la sortie VWB1* de la logique 312, et àpartir de la porte "ET"310 d'auto maintien qui reçoit à son entrée le signal VWB1 de la logique 312 et le signal M de maintien généré par le circuit "non OU': 306 bis. Le signal FT marque la fin d'un transfert entre WEU et le MMU et remet donc à zéro les signaux VWB0 et VWB1. Cette remise à zéro s'effectue d'une façon différente suivant qutil s'agit d'un cycle d'écriture d'un mot ou de deux mots en mémoire principale MMU. Le renseignement est donné par ie signal C en sortie de la porte "ET" 325 dont le fonctionnement est décrit plus loin. Si C = 1, le cycle d'écriture est de deux mots. La remise à zéro de VWB0 et VWB1 s'effectue en appliquant un zéro logique sur une entrée de la perte d'auto maintien correspondante 308 ou 310 à laide des circuits "non" OU" respectivement 306 et 306 bis.Une entrée du circuit "non OU" 306 est reliée à la sortie du circuit "ET 303" qui reçoit d'une part le signal FT en provenance de l'inverseur 302 dont l'entrée reçoit le signal FT * du CPU et d'autre part le signal C désigné plus haut, l'autre entrée du circuit "non OU" 306 est reliée à la sortie de la "porte ET" 304 dont les entrées reçoivent le signal C* en provenance de la sortie de l'inveur 329, le signal LWS, en sur- tie du circuit "OU 335", et le signal FT en provenance de I'inverseur 302. Une entrée du circuit "non OU 306 bis est reliée à la sortie de la porte "ET 303" déjà décrite et l'autre entrée est reliée à ia sortie de la porte "ET T 305" dont les entrées reçoivent le signal C en provenance de la sortie de l'inverseur 329, le signal LWB2 en sortie du circuit "OU" 332 et le signai FT en provenance de l'inverseur 302. La génération de signaux LWB 1 et LWB2 sera explicitée plus loin. Les circuits 324 à 329 permettent à l'aide des contenus des registres d'adresse AWB0 320 et AWB1 321 de déterminer si le transfert vers le MMU sera d'un mot ou de deux mots. A chaque cycle d'écriture du CPU dans WBU l'adresse du mot d'écriture est prise en compte par l'un des registres AWBO ou AWB1 en fonction des bits de validité correspondants VWBO ou VWB1. La prise en compte s'effectue par les portes322 et 323. Le transfert dans le registre AWBO n'a lieu que si le bit de validité VWBO est à zéro et le transfert dans AWB1 n'a lieu que si le bit de validité est déjà à "un". Le comparateur 324 figure 3A permet de comparer le contenu des deux registres d'adresse AWB0 et AWB1, s'il y a égalité des contenus le cycle d'écriture demandé entre WESU et MMU sera pour deux mots si non il sera diun mot. La comparaison s'effectue bits à bits.Lorsqu'il s'agit d'un cycle mémoire de 2 mots l'assemblage des 4 bytes de DWEO et des 4 bytes de DWB1 pour former les deux mots peut se faire de deux manières, DWB0 peut occuper les poids les plus faibles, les deux mots sont alors formés dans l'ordre (DWB0, DWB1) du sélectionneur 346 ou alors c'est DWB1 qui occupe les poids les plus faibles les deux mots sont alors formés dans tordre (DWB1, DWB0) dans le sélectionneur 347. L'inversion entre les deux mots est commandée par les bits (AWB1) 29. On réalise le range men@dans l'ordre DWB0, DWB1 par la condition (AWB0) 29* (AWB1) 29 ou par (AWB0) 29. (AWB1) 29*.Cela revient à dire qu'il y aura un cycle d'écriture du WBU vers MMU de deux mots si : (AWB0 = AWB1) # [(AWB0) 29* # (AWB0) 29] # [(AWB0) 29 # AWB1 29*]= C Sur la figure 3A le signal C est réalisé à laide des circuits logiques 324, 325, 326, 327, 328, 300, 301. La condition AWBO = AWB1 est réalisée à l'aide du comparateur 324 qui réalise une comparaison bit à bit des mots adresse AWlBo et AWB1 sa sortie est mise en "ET" avec la sortie du circuit "OU" 326 au travers de la porte "ET 325" pour réaliser le signal C. Le circuit "OU" 326 à deux entrées reçoit sur une entrée la sortie de la porte "ET" 327 qui réalise la condition (AWB0) 29 * (AWB1) 29. Une entrée étant reliée à la position de bit 29 du registre (AWB1) 321 de la figure 3EB, l'autre entrée étant reliée à la sortie du circuit "non ET" 300 qui inverse le bit (,\ WSO) 29 en provenance de la position de bit 29 du registre AWBO 320 de la figure 3E, et sur l'autre entrée la sortie de la porte "ET" 328 qui réalise la condition (AWB-O) 29 (AWB1) 29* une entrée étant reliée à la position de bit 29 du registre AWB0 320 de la figure 3E, l'autre entrée étant reliée à la sortie du circuit "non ET" 301 qui inverse le bit (AwEi) ) 29 en provenance de la position de bit 29 du registre AWE1 321 de la figure 3E.Lorsque la condition marquée est réalisée, le signal C de la figure 3A en sortie de la porte "ET" à deux entrées 325 est a 1, ce signal valide alors les entrées des portes 340, et 341 figure 3U. Les données du sélectionneur 346 figure 3b seront acheminées par la porte 340 si (AWB0) 29* en sortie de l'inverseur 348 est un logique ou par la porte 341 si (AWB0) 29 est à un logique. Par contre si ces conditions ne sont pas réalisées alors le signal C est à zéro, le signal c* à la sortie de l'inverseur 329 de la figure 3A prend la valeur 1 pour valider l'une des entrées des portes 338, 339 afin de transmettre le mot de donnée DWE0 ou le mot de donnée DWE1 doublé.Dans ce cas, la sélection entre DWB0 et DWB1 s'opère à l'aide des signaux LWB1 et LWB2 pour déterminer qu'elle est le registre de DWB0 ou de DWB1 qui contient la donnée la plus ancienne. Si LWB = 1 la donnée la plus ancienne est dans DWBO si LWE2 = 1 la donnée la plus ancienne est dans DWB1. L'équation pour laquelle LWB1 = 1 est la suivante LWB1 = (VWB0 # VWB1*) V (LWB1 # VWB0) L'équation pour laquelle LWB2 = 1 est la suivante : LWB2 = (VB0* # VWB1) V (LWB2 # VWB1) Ces deux équations sont réalisées à l'aide des circuits logiques 330 à 335.Le signal LWEl est obtenu a la sortie de la porte "OU" 335 reliée sur une entrée à la porte "ET" 333 qui réalise la condition VWB0#VWB1 une entrée de la porte "ET" 333 étant reliée à la sortie VWBO de la logique 311 l'autre entrée étant reliée à la sortie VWB1* de la logique 312, et reliée sur l'autre entrée a la porte "ET" 334 qui réalise la condition LWB1 VWB0, une entrée de la porte "ET" 334 étant reliée à la sortie VWB0 de la logique 311 l'autre entrée étant reliée à la sortie de la porte "OU" 335 pour réaliser l'auto maintien du signal LWB1. Le signal LWB2 est obtenu a la sortie de la porte "OU" 332 reliée sur une entrée à la porte "ET" 330 qui réalise la condition VWB0*# VWB1, une entrée de la porte "ET"330 étant reliée à la sortie VWB0* de la logique 311 Il autre entrée étant reliée à la sortie VWB1 de la logique 312, et reliée sur l'autre entrée à la porte "ET" 331 qui réalise la condition LWB2 A VWB1 une entrée de la porte "ET" 331 étant reliée à la sortie--VWB1 de la logique 312 I'autre entrée étant reliée à la sortie de la porte "OU"332 pour réaliser l'auto maintien du signal LWB2. Ainsi au moment d'un cycle d'écriture du CPU ver WBU si ie bit de validité VWB0 est déjà à 1 logique alors que VWB1 est à zéro la sortie de LWB1 prend la valeur 1 et reste à 1 par la porte ET 334. Comme le signal VWBO est à un cela signifie qu'il y a des données dans le registre DWBO 350.La porte 353 conditionnée par VWB1 fs VWBo transmet donc les nouvelles données dans le registre DWB1 351 et à la fin de ce transfert le signal VWB1 prend le niveau 1 logiq!Je. Donc au moment de ia prise en compte de données dans le registre DWB1 la donnée la plus ancienne est transmise par la porte 338 validée par LWB1' et c*, et est transmise vers le MMu au travers du circuit "OU" 342 et par la porte 343 conditionnée par les sorties VWBo et VWB1 des logiques 311 et 312 de la figure 3A. On peut faire le raisonnement inverse en supposant que la donnée la plus ancienne se trouve dans le registre DWB1. C'est alors le signal LWB2 lorsqu'll est à un logique qui valide le transfert de DWB1 vers le MMU. Le mot d'adresse AW est transmis au MMU au travers diun multiplexeur formé du circuit "OU" 318 et des portes 315, 316 et 317. Lors d'un cycle écriture de deux mots le signal c en sortie du circuit "ET" 325 est à un logique et adresse AW est prise en compte dans le registre AWBO pour être transmise par la porte 315. Lors d'un cycle d'écriture d'un double mot il s!agit alors de transmettre la donnée ia plus ancienne, si LWB1 = la donnée la plus ancienne est dans DWBO et son adresse correspondante se trouve dans le registre AWBO, elle est alors transmise vers la MMU par la porte 316.Par contre si LWB2 = 1 la donnée la Dlus ancienne est a!ors DWB1 et son adresse correspondante se trouve dans le registre AWB1, elle est alors transmise vers le MMU par la porte 317. On voit donc que 11organisation du tampon d'écriture permet d'écrire le plus grand nombre possible de cycles de 8 bytes dans la mémoire principale alors que les cycles CPU sont de 4 bytes. La figure 4 représente les liaisons entre les tampons de lecture, d'écriture et 1#C, avec la mémoire principale MMU et le CPU ainsi que ia structure du tampon lX C, elle doit être lue en présence des figures 2 et 3B. La mémoire principale MMU 400 reçoit le bus de données d'écriture en provenance de la porte 343 du tampon d'écriture WBU et d'autre part du tampon i9' C par ie bus venant du registre 402, d'autre part les données de lecture sont transmises par e bus CHDR vers les portes 210 à 213 du tampon de lecture (RBU figure 2) et vers le registre 402 du tampon 1# C de la figure 4. L'adresse mémoire AW peut venir directement du CPU 401 ou du tampon d'écriture à à la la sortie de la porte "OU"318 du multiplexeur d'adresse de la figure 3B. Le CPU 401 transmet sur le bus CHDW les données à écrire d'une part dans le tampon d'écriture WBU de la figure 3B et d'autre pat dans le tampon 1#C 402 de la figure 4 et reçoit les données lues d'une part du tampon 1# C de la figure 4 et d'autre part du tampon de lecture RBU en sortie de ici porte OU 226. Il reçoit aussi le byte d'activité ACT lu dans le tampon TR de la figure 2 sur l'entrée ACT les bits d'activité remis à jour sont transmis par la sortie ACT2 du CPU vers le registre RACT 205.Lorsque l'adresse de lecture demandée se trouve déjà dans le répertoire tampon TR une des sorties des comparateurs d'adresse 218 à 221 est à un logique, et l'état E0' E1, E2, E3 des sorties sont transmis par le bus En à len- trée En du CPU. Le signa # RE 1 est envoyé à l'entrée des mémoires de validité 307 et 309 à chaque écriture de données dans le tampon WBU. Le signal FTk est émis par le CPU vers le tampon WBU pour siganl er la fin d'un transfert. Le signal c. autorise la mise à jour du tampon de lecture RBU et du tampon répertoire TR 201 de la figure 2 en validant l'entrée des portes numérotées 206 à 213. La ligne cM permet de commander les cycles de mémoire principale. Les entrées Ho et H1 reçoivent les signaux des comparateurs 354 et 355 de la figure 3A et permettent de contrôler si au moment d'une lecture l'adresse demandée est dans le tampon d'écriture en comparant le registre d'adresse dont le bit de validité est à un. Sl c'est le cas les signaux H0 et H1 valident les entrées des prtes 376 et 377 et les données sont lues directement dans les tampons d'écrituritures DWB0 350 et DWB1 351. Les données échangées entre la mémoire principale et le tampon lX C sont de 16 bytes et les données échangées entre ce tampon et le CPU sont de 4 bytes. II est compost d'un registre 402 à 16 bytes qui est en liaison avec les sorties CHDW et CHDR de la mémoire principale. Ce registre peut être vide ourem!; par mot de 4 bytes par le CPU à laide des portes 403 à 410 les portes 403, 405, 407, 409 sélectionnent les bytes qui sont à écrire dans le registre 402 les portes 404, 406, 408, 410 sélectioment les bytes qui sont à lire du registre 402.Pour réaliser les transferts en lectu re et en écriture des 4 bytes de données dans le registre 402 oei compteur d 5 états wient sélectionner les entrées des 4 portes de lecture ou des 4 portes d'écriture 403 à 410. Dans l'état 0 le compteur ne sélectionne aucune porte. La progression du compteur est assuréepour chaque cycle CPU par le signal CI C la sélection écriture lecture se fait à l'aide du signal W/R, W/R = 1 pour une :ecture. a porte "non ET" 41t permet d'effectuer lé- criture lorsque W/R = 0. Les signaux de sélection des portes 403 à 410 sont obtenus à partir des états des bascules 412 à 414 du compteur de sélec tion par la matrice de décodage B 4t2. De ce qui précède on voit que le système présente une grande sou plesse et apporte une solution complète au problème de hiérarchisation des mémoires. II permet en effet d'uniformiser les cycles de unité centrale quelque soit le type de demande d'accésdu CPU à l'unité tampon WBU grâce à la structure des trois tampons qui vient d'etre décrite et à leur interdépendance. D'autre part le système de topographie utilisé permet à l'unité centrale de savoir pour chaque opération de lecture si lwinforma- tion demandée est présente dans un quelconque des tampons de lecture ou d'écriture et de la prendre là où elle se trouve, cet avantage permet un gain de temps appréciable dans le déroulement des programmes. Enfin l'organisation du tampon écriture permet d'adapter les rythmes d'échanges de bytes en autorisant le plus grand nombre possible de cycles mémoire. La description qui 'vient d'être faite d'une réalisation préférée de l'invention n'a été donnée qu'à titre d'exemple non limitatif et il est bien évident que de nombreuses variantes du dispositif peuvent être envisagées par l'homme de métier bien au fait des techniques des ordinateurs. REVENDICATIONS Revendication 1 Dispositif permettant d'adresser la mémoire principale dans un ordinateur caractérisé par le fait qu'il comprend en combinaison une mémoire tampon de lecture, une mémoire tampon d'écriture et une mémoire tampon d'entrée sortie de données pour les appareils périphériques disposées entre la mémoire principale et l'unité centrale, chaque mémoire tampon comprenant des moyens pour échanger des données d'une part avec l'unité centrale de façon que le nombre de bytes transférés par cycle d'écriture ou de lecture soit le même quelque soit le tampon lu ou écrit, diantre part avec la mémoire principale de façon que le nombre de bytes transférés soit un multiple du nombre de bytes transférés entre les tampons et Unité centrale. Revendication 2: Dispositif permettant d'adresser la mémoire principale dans un ordinateur Jans perte de cycle par l'unité centrale selon la revendication 1 caractérisé par le fait que les dits tampons de lecture et d'écriture comprennent des moyens pour contrô ler si l'adresse demandée par le CPU est déjà présente dans un des deux tampons et des moyens pour prendre ces données dans le tampon où elles sont présentes. Revendication 3 Dispositif permettant d'adresser la mémoire principale dans un ordinateur sans perte de cycles par unité centrale selon les revendications 1 et 2, caractérisé par le fait que la mémoire tampon d'écriture se compose de deux registres de données et de deux registres d'adresse auxquels sont associés des bascules de validité pour la mémorisation dtun 1er et 2ème mots de données d'une part et d'adresse d'autre part, écrits par l'unité centrale dans le tampon d'écriture, auxquels sont associés des moyens pour aiguiller le transfert du premier mot ou du 2ème mot de données et du 1er mot ou du 2ème mot d'adresse dans un des deux registres de données et d'adres se en fonction de i'état de deux bascules de validité associées, le transfert ayant lieu respectivement dans le 1er registre de données et dans le 1er registre dladresse si les deux bascules de validité sont dans l'état zéro logique ou respectivement dans le registre de données et dans le registre d'adresse dont la bascule de validité associée est à zéro ainsi que d'un ensemble de moyens reliés aux bascules de validité pour indiquer les registres de données et d'adresse les plus tard chargés, les dits registres d'adresse et les dites bascules de validité étant reliées à un ensemble de moyens pour indiquer slil s'agit d'un cycle d'écriture d'un mot ou d'un double mot afin de commander des moyens de transfert des dits mots vers la mémoire principale, le transfert d'un simple mot étant obtenu à partir des moyens de transfert qui sont reliés à ensemble des dits moyens reliés aux bascules de validité pour indiquer les registres de données et dl adresse les plus tard chargés. Revendication 4 Dispositif permettant d'adresser la mémoire principale dans un ordinateur sans perte de cycles par l'unité centrale selon la revendication 3, caractérisé par le fait qu'un cycle d'écriture mémoire a lieu lorsque les deux bascules de validité sont dans l'état un logique. Revendication 5 Dispositif permettant d'adresser la mémoire principale dans un ordinateur sans perte de cycles par unité centrale selon la revendication 1 caractérisé par le fait que la transmission des données de lecture se fait d'une part entre le tampon de lecture et l'unité centrale et diantre part entre le tampon entrée sortie pour les appareils périphériques et l'unité centrale, sur un bus unique. Revendication 6 Dispositif permettant d'adresser la mémoire principale dans un ordinateur sans perte de cycles par l'unité centrale selon les revendica tions 1 et 5 caractérisé par le fait que la transmission des données d'écriture se fait entre le tampon d'écriture et l'unité centrale d'une part et entre le tampon d'entrée sortie, pour les appareils périphériques et l'unité centrale diantre part, sur un bus unique.