Brevet FR2425673A1 — publié le 19791207

La présente invention concerne un dispositif de traitement de données qui comprend un ordinateur avec une unité de traitement et une mémoire, la mémoire étant divisée en une pluralité de blocs de positions de mémoire, au-moins l'un des blocs ayant des positions de mémoire stockant des instructions qui comprennent une première information d'adresse se référant a une seconde information d'adresse, et l'unité de traitement étant apte à adresser n'importe laquelle des positions de mémoire dudit bloc de façon à obtenir la seconde information d'adresse avec l'aide de la première information d'adresse mémorisée dans la position de mémoire ainsi adressée et à finalement adresser une position de mémoire dans n'importe quel bloc avec l'aide de ladite seconde information d'adresse et des moyens indiquant le bloc de mémoire qui doit finalement être adresse. Un tel dispositif de traitement de données a déjà été décrit dans le brevet belge n0 823 30Q au nom de H. JAJISSEETS. Ce dispositif comprend plus particulièrement deux blocs de mémoire ou modules et les moyens indiquant le bloc qui doit être finalement adressé avec l'aide de la seconde information d'adresse fait appel à une bascule de bloc, dont les deux états indiquent, respectivement, l'un ou l'autre des deux blocs.Pour amener cette bascule unique de bloc dans l'un ou l'autre des deux états au moment approprié pendant l'exécution de l'instruction indiquée ci-dessus, c'està-dire dans le cas considéré ci-dessus pendant le cycle indirect, l'ordinateur comprend une paire de bascules auxiliaires, un circuit logique et un répertoire spécial d'instructions de commande. Juste avant que 11 instruction indiquée ci-dessus soit adressée dans la mémoire, l'ordinateur exécute une de ces. instructions de commande de façon à amener ces bascules auxiliaires dans un état approprié et pendant l'exécution ultérieure de l'instruction, le circuit logique de l'ordinateur amène la bascule de bloc dans l'un ou l'autre de ses états en fonction de l'état des bascules auxiliaires. De ce qui précéde, il résulte que les moyens indiquant le bloc de mémoire qui doit être finalement adressé sont relativement compliqués et qu'un temps d'ordinateur relativement important est consacré à- la commande du bloc et des bascules auxiliaires. Dans l'article intitulé : "8086 microcomputer bridges the gap between 8-bit and 16 bit designs" par B.J. Katz et autres publié dans Electronics, 16 février 1978, pages 99-1047 on décrit la façon avec laquelle une mémoire peut être étendue nar l'utilisation d'un registre à segments qui est en fait une extension de la bascule de bloc du brevet belge indiqué précédemment. Par suite, 13adresse de toute position de mémoire est obtenue par madition de l'adresse d'un segment de la mémoire comprenant une pluralité de tels segments et de l'adresse de la position à l'intérieur de ce segment Cela veut dire que, là encore, une spiration supplémentaire est nécessaire pour obtenir l'adresse recherchée. La présente invention a par conséquent pour objet de prévoir un dispositif de traitement de données du type décrit dans le brevet belge indiqué ci-dessus; mais qui ne souffre pas de ses incon vénients. Selon la présente invention, cet objet est atteint gra- ce au fait qu'une partie étendue dudit bloc de mémoire comporte un jeu de secondes positions de mémoire1 chacune mémorisant la seconde information d'adresse, une partie de cette seconde information d'adresse constituant le moyen indicateur du bloc qui doit être finalement adressé et l'unité de trartement obtenant cette seconde information d'adresse en adressant une seconde position de mémoire avec l'aide de la première information d'adresse. Grâce au fait que la seconde information d'adresse est en elle-même suffisante pour adresser l'un des blocs de mémoire, aucun autre temps d1 ordinateur nlest employé que celui qui est nécessaire dans un dispositif comprenant un seul bloc de mémoire. Pour mémoriser la seconde information d'adresse, il ne faut qu'un peu plus d'espaces de mémoire. On doit également souligner que la présente solution permet une extension facile dune mémoire d'ordinateur à n'importe quel nombre de blocs de mémoire sans avoir à modifier le répertoire d'instructions. De fait, comme cela a été décrit précédemment, la seconde information d'adresse est obtenue par une simple procédure d'adresse indirecte que 'importe quel ordinateur est normalement capable d'exécuter. Selon un autre aspect de présente invention, un dispositif de traitement de données, tel qu'il a été défini au commencement de cette description, est caractérisé en ce qu'au moins l'un des blocs de mémoire mémorise des mots ayant deux longueurs diffé rentes, les mots de petite longueur permettant d'adresser les positions de mémoire à l'intérieur dudit bloc de mémoire et les mots de grande longueur permettant d'adresser les positions de mémoire à l'intérieur de l'un des autres blocs. Un tel dispositif présente l'avantage que le répertoire d'instructions existant d'un ordinateur fonctionnant avec des mots d'une certaine longueur, c'est- -dire de 16 bits, peut être conservé lors de l'extension de la mémoire de cet ordinateur au-delà de la grandeur normalement définie par cette longueur. En outre, il s'est avéré possible d'assurer une construction de mémoire tout en pourvoyant efficacement aux mots de grandeur originelle, ainsi qu'aux mots d'une grandeur augmentée par fractions, par exemple de 18 bits, ce qui permet une plus grande souplesse, par exemple en programmation, en plus d'une capacité de mémoire plus grande. Selon un mode particulier de réalisation de la pré- sente invention, le dispositif de traitement de données comprend un ordinateur avec une unité de traitement et une mémoire qui est divisée en quatre blocs. Chaque bloc de mémoire comporte une capacité de 64 K mots, K étant égal à 1024, et contient 2 K-mots de 18 bits et 62 K mots de 16 bits. Cela permet à un ordinateur basé sur des mots de 16 bits d'utiliser une mémoire quatre fois plus grande que 216 = 64 K mots, ce qui serait la capacité maximum avec des mots de K 16 bits, étant donné que 29 = 2 mots parmi les 2 K mots de 18 bits auxquels on peut avoir accès au moyen des adresses à 9 bits contenues dans les mots d'instruction de 16 bits. Les 3K mots restants de dans 18 bits peuvent être utilisés pour des données en plus des 62 K mots de longueur normale de 16 bits. La présente invention sera bien comprise#à la lecture de la description suivante faite en relation avec les dessins cijoints dans lesquels La figure 1 est une représentation schématique d'un dispositif de traitement de données selon la présente invention ; La figure 2 représente la mémoire MEM de la figure 1 avec davantage de détails ; et La figure 3 représente l'évolution du contenu du registre Y de la figure 1 pendant le fonctionnement du dispositif de la figure 1. En liaison avec la figure 1, le dispositif de traite ment de données représenté comprend un ordinateur avec une mémoire teM et une unité de traitement CPU dont seule unité arithmétique AU et l'unité de commande CU sont représentées. ce dispositif de traitement est du type décrit dans le brevet belge indiqué ci-des- sus. L'unité arîthméthique AU comprend un registre-tampon de mémoire M à 18 bits pour mémoriser un mot qui doit être écrit ou être lu dans une position de mémoire de la mémoire #E# un registre de position de mémoire Y à 18 bits pour mémoriser une adresse d'une position de mémoire de la mémoire MEM, un registre d'accumulateur A à 18 bits, et un compteur d'instructions Pà 18 b pour mémoriser l'adresse d'une instruction en cours d'exécution ou devant être exécutée. Le registre-tampon de mémoire M et le registre de position de mémoire Y ont accès à la mémoire MEM par l'intermédiaire du canal de distribution DB qui est en fait un circuit de déclenche- ment commandé par l'unité de commande CU par l'intermédiaire des fils cw.Le registre-tampon de mémoire M, le registre de position de mémoire re Y, l'accumulateur A et le compteur d'instructions P sont relies à un autre circuit de déclenchement GC qui permet a ces registres d'être interconnectés et d'échange des informations entre eua, ces opérations étant également commandées par le circuit de commande CE par l'intermédiaire des fils cw. Le circuit de déclenchement GC est, par exemple, du type décrit dans le brevet belge n 776 495 (S. KOBUS et autres 26-3-2). L'unité de commande CE comprend un registre F à 16 bits et un circuit logique classique LC comportant les fils de commande cw indiqués ci-dessus. L'entrée du registre F est connectée à une sortie du canal de distribution DB et sa sortie est connectée au cir- cuit logique LC. La sortie du circuit LC formée par les fils de commande cw est connectée au canal de distribution DE et au circuit de déclenchement SC. Le registre F sert à mémoriser un mot d'instruction lu dans la mémoire MEM, alors que la fonction du circuit logique LC est d'éxécuter les commandes de commande classiques bien connues en techniques de traitement de données, c'est-à-dire les fonctions dé- crites dans le brevet belge cité ci-dessus ayant pour numéro 823 300. En liaison avec la figure 2, la mémoire MES est conszi- tuée de quatre blocs de mémoire MBO à tE3, dont seuls les blocs MBO et MB3 sont représentés, qui comprennent chacun 64 K positions de mémoire, K étant égal à 1024. Le bloc de mémoire MBO comprend une partie étendue EAO de 2 K positions de mémoire de 18 bits et une partie non étendue NEAO de 62 K positions de mémoire de 16 bits. La partie étendue EAO est divisée en deux secteurs EAO (so) et EAO (S1), K 3K comprenant, respectivement,2 et 2 positions de mémoire.Les po- sitions de mémoire de EAO (SO) mémorisent des adresses opérandes effectives de 18 bits telles que EOA, alors que les positions de mémoire dé EAO (S1) mémorisent les mots de données de 18 bits, les mots de données étant tous les types de mots à l'exception des mots d'instructions. La partie non étendue NEAO de > B0 mémorise les mots d'instructions de 16 bits et les mots de données Le bloc de mémoire MB3 est semblable au bloc ?4BO et mémorise des mots d'information similaires. En liaison avec les figures 1 à 3, le fonctionnement du dispositif de traitement de données est décrit ci-apres, toutes les opérations étant commandées par l'unité de commande CU de l'unité de traitement CPU et, plus particulièrement, par le circuit logique LC de l'unité de commande CU. On suppose que le compteur d'instructions P, ainsi que le registre Y mémorisent initialement une adresse A de 18 bits (figure 3) comprenant 16 bits O à 15 qui forment une adresse partielle U de 16 bits d'une position de mémoire dans chacun des blocs de mémoire MBO MB3, parceque 216= 64 K et deux bits d'adresse 16 et 17 indiquant l'un de ces blocs de mémoire. Au moyen deoetteadresse A mémorisée dans le registre Y, l'unité de commande CU adresse la mémoire EIEM et plus particulièrement la position de mémoire ML1 (figure 2) avec une adresse partielle U dans le bloc de mémoire MBO, alors que les bits supplémentaires 16 et 17 de l'adresse A sont, par exemple, égaux à 00 (figure 3). Il en résulte qu'un mot d'instruction de 16 bits représenté dans la figure 2 est mémorisé dans Mll et transféré de cette position de mémoire au registre-tampon de mémoire M ainsi qu'au registre F. Le mot d'instruction est, par exemple, une instruction de l'accumulateur A de 16 bits comprenant - une adresse V de 9 bits mémorisée dans les bits O à 8 de ML1 - un facteur K à deux bits mémorisé dans les bits 9 et 10 de ML1. On suppose que ce facteur K est égal a 10, indiquant que l'adresse V ne 9 bits est une adresse a utiliser pour adresser indirectement K un mot dans un secteur SO (mémorisant 29 = 2 mots)d'un bloc de me- moire, c'est-à-dire EAO (SO) à EA3 (SO) de MBO à MB3 ; un code opération CLOUA de 5 bits mémorisé dans les bits 11 à 15 de ML@. Le code opération CLDA et le facteur R sont analysés dans le circuit logique I,C, et le résultat de cette analyse est que l'instruction est une instruction de chargement de l'accumulateur A et que l'opération de chargement doit être exécutée sur un mot mé morisé dans une position de mémoire ayant une adresse effective obtenue avec l'aide de l'adresse partielle V mémorisée dans ltinstruc- tion. En conséquence, le circuit logique LC calcule d'abord une adresse indirecte IA en enregistrant l'adresse V de l'instruction LDA en bits O à 8 du registre Y et en mettant à zéro les bits 9 à 15 de ce registre Y.L'adresse indirecte IA obtenue ainsi finalement dans le registre Y comprend - des bits O à 8 formant 17 adresse partielle de 9 bits V d'une position de mémoire du secteur SO de chaque bloc MBO à 3 parce que 29 = K ; - des bits 9 à 15 à O , - des bits supplémentaires 16 et 17 égaux à 00 indiquant le bloc de mémoire MBO. Avec l'adresse indirecte IA ainsi stockée dans le registre Y, l'unité de commande CU adresse alors la mémoire MEM et plus particulièrement la position de mémoire ML2 avec l'adresse V du secteur EAO (SO) de MBO. En conséquence, un mot de 18 bits constituant une adresse opérande effective EAO et qui est mémorisée dans ML2 est d'abord transférée de MBO au registre-tampon de mémoire M, puis au registre Y. Il comprend (figure 3) des bits supplémentaires 16 et 17 égaux à 11 indiquant le bloc de mémoire MB3 et une adresse partielle W de 16 bits d'une position de mémoire à l'intérieur de ce bloc 133. Au moyen de l'adresse EOA mémorisée dans le registre Y, l'unité de commande CU adresse la mémoire t-EM et plus particulièrement la position de mémoire ML3 appartenant au secteur étendu EA3 (S1) et MB3. Par conséquent, un mot de données DW de 18 bits est transféré dans le registre-tampon M de mémoire pour traitement ultérieur. Cependant, ces opérations ne sont pas décrites, car elles sont sans importance pour la présente invention. Il est clair que les bits supplémentaires 16 et 17 de l'adresse opérande effective EOA indiquent le bloc de mémoire qui a finalement été adressé et que, par conséquent, l'un quelconque de ces blocs peut êtrè adressé. Il est évident que soit la partie étendue, soit la partie non étendue de ce bloc peut être adressée, de sorte que des mots de données de 16 bits ainsi que de 18 bits peuvent être obtenus. Par exemple, lorsqu'une instruction de saut est exécutée, l'adresse de retour de 18 bits, obtenue par augmentation du contenu du compteur d'instructions de 1, est mémorisée dans la zone étendue du bloc de mémoire MBO. Pour résumer, il découle de ce qui precede que l'adresse partielle V contenue dans un mot d'instructions lu dans une position de mémoire Mial du bloc de mémoire MBO permet à la position de mémoire ML2 d'un secteur étendu SO du même bloc de mémoire MBO d'être adressée et que cette position de mémoire ML2 mémorise une adresse étendue EOA permettant à l'un des blocs de mémoire MBO à MB3, par exemple à MB3, d'obtenir finalement des mots de données de 16 ou 18 bits. Comme cela a aussi été décrit précédemment et comme représenté dans la figure 2, chaque bloc de mémoire MBO à MB3 comporte une partie étendue EAO à EA3 et une partie non étendue NEAO à NEA3. En pratique, l'utilisation de blocs de mémoire ayant une partie non étendue est généralement préférée à l'utilisation de blocs de mémoire ayant des parties étendues et non étendues et, pour cette raison, les bits supplémentaires de la partie de mémoire devant être étendue sont mémorisés dans une ou plusieurs unités de mémoire séparées Dans le cas présent, il serait indiqué de mémoriser les 2 K x 2 bits supplémentaires d'une partie de mémoire à étendre dans une unité de mémoire à 2 K x 2 bits correspondante.Malheureusement, de telles unités de mémoire à 2 K x 2 bits ne sont pas actuellement disponibles et, par conséquent, il est fait usage de l'unité de mémoire à 4 K x 1 bit dont on dispose. De façon à être à même d'adresser simultanément une rangée de bits de O à 15 d'un bloc de mémoire non étendu et les bits supplémentaires associés 16 et 17, les bits supplémentaires de chaque jeu 2 K x 2 bits sont mémorisés en rangées homologues de deux ide ces unités de mémoire à 4 K x 1 bit. En général, lorsqu'on doit étendre m rangées d'une mémoire à n x p bits, chacune de q bits supplémentaires, on utilise une pluralité d'unités de mémoire supplémentaires comportant chacun ne au moins m rangées, des rangées homologues de ces unités de me- moire supplémentaires mémorisant ensemble q bits supplémentaires correspondants. La présente invention n'est pas limitée ans exemples de réalisation qui viennent d'être décrits, elle est an contraire susceptible de varlantes-et de modifications qui apparaitront -à l'homme de l'art. REWENDICATIONS 1 - Dispositif de traitement de données comprenant un ordinateur avec une unité de traitement et une mémoire, la mémoire étant divisée en une pluralité de blocs de positions de mémoire, au moins l'un des blocs comportant des positions de mémoire mémorisant des instructions comprenant une première information d'adresse se référant à une seconde information d'adresse, et l'unité de traitement étant apte à adresser n'importe quelle position de mémoire dudit bloc, de façon à obtenir alors la seconde information d'adresse avec l'aide de la première information d'adresse mémorisée dans la position de mémoire ainsi adressée et à finalement adresser une position de mémoire dans n importe lequel desdits blocs avec l'aide de la seconde information d'adresse et d'un moyen indiquant le bloc de mémoire qui doit être -finalement adressé, caractérisé en ce qu'une partie étendue (EAO) dudit bloc de mémoire (MBO) a un jeu [ (EAo) (50) # de secondes positions de mémoire (MB2), chacune mémorisant ladite seconde information d'adresse, une partie de ladite seconde information d'adresse constituant ledit moyen indicateur du bloc qui doit être finalement adresse et ladite unité de traitement obtenant la seconde information dladresse-par adressage d'une seconde position de mémoire avec l'aide de ladite première information d'adresse (V). 2 - Dispositif de traitement de données selon la revendication 1, caractérisé en ce que la partie étendue (EAO) dudit bloc de mémoire (MBO) a un jeu I.(EAO) (S1)-l de troisièmes positions de mémoire mémorisant des données capables aussi d'être adressées avec l'aide de ladite seconde information d'adresse. 3 - Dispositif de traitement de données selon la revendication 1, caractérisé en ce que le jeu [ (EAO) (50) j de secondes positions de mémoire (ML2) comprend un certain nombre de positions au moins égal au nombre maximum HK2) de positions accessibles au moyen de ladite première information d'adresse (V). 4 - Dispositif de traitement de données comprenant un ordinateur avec une unité de traitement et une mémoire, la mémoire étant divisééen une pluralité de blocs de positions de mémoire et l'unité de traitement étant apte à adresser les positions de mémoire dans l'un quelconque des blocs de mémoire, caractérisé en ce qu'au moins, l'un des blocs de mémoire mémorise des mots de deux longueurs différentes, les mots de longueur plus petite permettant d'adresser les positions de mémoire a l'intérieur dudit bloc de mémoire et des mots de longueur plus grande les positions de mémoire à l#in- térieur de n'importe lequel des autres blocs. 5 - Dispositif de traitement de données selon l'une des revendications 1 ou 4, caractérisé en ce que la partie étendue (EAO} dudit bloc de mémoire (MBO) comporte m rangées de p T q bits, alors que la partie restante ou non étendue (NEAO) dudit bloc de mémoire comporte (n-n) rangées de p bits, et en ce que ledit bloc de mémoire (MBO) est divisé en au moins une première unité de me- moire comportant n rangées de p bits et une pluralité de secondes unités de mémoire comportant au moins m rangées, des rangées homologues desdites secondes unités de mémoire mémorisant ensemble q bits correspondants