Brevet FR2639731A1 — publié le 19900601

L'invention se rapporte principalement à une gestion mémoire vive principale et étendue. Il est connu que l'augmentation de l'espace mémoire vive (RAM en terminologie anglo-saxonne) d'un ordinateur augmente sa puissance de traitement. Dans le cas où la mémoire vive associée å un microprocesseur dépasse les capacités d'adressage de celui-ci, on lui adjoint un dispositif de pagination (BANK-SWITCH en terminologie anglo-saxonne). De plus dans le cas des ordinateurs fonctionnant sous le système d'exploitation MS-DOS de la Société Microsoft, le système d'exploitation ne sait gérer que 640 k Octets (dans la suite de ce Brevet on utilisera k pour désigner kilo Octets égal à 1 024 Octets). Si un tel ordinateur est équipé d'une quantité de mémoire supérieure, celle-ci est gérée en tant que mémoire étendue, les adresses logiques et les adresses physiques étant différentes. De tels dispositifs sont connus par exemple comme appartenant à la norme EMS. Les dispositifs de type mémoire étendue sont souvent reliés sous forme cartes additionnelles pourdes ordinateurs dits compatibles PC c'est-à-dlre ayant un fonctionnement semblable à l'ordinateur PC, PC-XT ou PC-AT commercialisés par la Société IBM.Dans le cas où l'ordinateur est équipé d'une quantité de mémoire inférieure à 640 k Octets il n'est pas possible d'adjoindre de la mémoire de type EMS à la mémoire principale pour compléter les 640 k. Or, la mémoire étendue est beaucoup moins performante que la mémoire directement adressable par le microprocesseur. En effet, la mémoire étendue peut être utilisée soit en tant que disque virtuel par tous les logiciels, soit, en tant que mémoire RAM, uniquement à des logiciels spécialement adaptés. De plus, l'accès à la mémoire étendue evt plus lent que l'accès aux 640 premiers k. Le dispositif selon la présente invention permet de compléter la mémoire principale de l'ordinateur et de ne consacrer à la mémoire étendue que l'excédent de mémoire disponible, par exemple au-delà de 640 k dans le cas du système d'exploitation MS-DOS. Dans une version particulièrement perfectionnée du dispositif selon la présente invention, un même boitier c'est-à-dire un même circuit intégré mémoire peut être partiellement consacré à la mémoire étendue et partiellement consacré â compléter la mémoire vive principale. Avantageusement, le dispositif selon la présente invention effectue l'inscription dans les diverses mémoires pour en effectuer l'affectation et déterminer la quantité de mémoire effectivement présente. La mémoire de type étendue peut être rajoutée soit sur la carte mère si des emplacements y sont prévus, soit par exemple sur une carte fille connectée à un bus spécial. Toutefois la connexion d'une carte fille sur le bus standard par exemple de type IBM PC ne sort pas du cadre de la présente invention. L'invention a principalement pour objet un ordinateur comportant un microprocesseur, une mémoire vive, une mémoire morte, et un dispositif de gestion de mémoire vive, caractérisé par le fait qu'il comporte des moyens pour affecter toute la mémoire vive susceptible d'être gérée par le ~ système d'exploitation à la mémoire vive principale et l'excédent â la mémoire vive étendue. L'invention a aussi pour objet un ordinateur caractérisé par le fait qu'il comporte une carte mère contenant le microprocesseur et une carte fille comportant de la mémoire vive. L'invention a aussi pour objet un ordinateur caractérisé par le fait qu'il comporte des moyens permettant d'affecter une partie d'un même circuit intégré mémoire t la mémoire vive principale gérée par le système d'exploitation et l'excédent à la mémoire vive étendue. L'invention a aussi pour objet un ordinateur caractérisé par le fait qu'il teste la quantité de mémoire vive disponible. L'invention a aussi pour objet un ordinateur caractérisé par le fait qu'il est capable de fonctionner sous le système d'exploitation MS-DOS. L'invention a aussi pour objet un ordinateur caractérisé par le fait qu'il comporte le microprocesseur 8088 ou 8086. L'invention a aussi pour objet un ordinateur caractérisé par le fait qu'il comporte le processeur MT86G011. L'invention a aussi pour objet un ordinateur caractérisé par le fait que l'extension mémoire comporte des boîtiers de 256 k. L'invention a également pour objet un procédé d'initialisation de mémoire étendue caractérisé par le fait qu'il comporte les étapes suivantes - écriture dans la mémoire additionnelle d'au moins une case mémoire par page en commençant la dernière page et en terminant dans la partie gérée par le système d'exploitation, - lecture dans l'ordre inverse et mémorisation dans un tableau des pages où le nombre inscrit est égal au nombre relu, ces pages correspondant au sélecteur de pages valides. L'invention a aussi pour objet un procédé caractérisé par le fait que les nombres inscrits sont les numéros des sélecteurs. L'invention a aussi pour objet un procédé caractérisé par le fait que chaque page a 16 k. L'invention sera mieux comprise au moyen de la description ci-après et des figures annexées données comme des exemples non limitatifs parmi lesquelles - la figure 1 est un schéma général du dispositif selon la présente invention - la figure 2 est une carte de l'espace mémoire adressable par l'ordinateur selon la présente invention la figure 3 est un schéma d'un exemple de réalisation du dispositif selon la présente invention. Sur les figures 1 t 3, on a utilisé les mêmes références pour désigner les mêmes éléments. Sur la figure 1, on peut voir l'architecture de la gestion mémoire d'un ordinateur selon la présente invention. L'ordinateur comporte un microprocesseur 1, une mémoire morte 2, un dispositif de gestion de mémoire vive 3 et une mémoire vive 4. La mémoire morte comporte un programme de gestion et d'initialisation des mémoires étendues. Avantageusement, la mémoire 2 comporte d'autre part la partie du système d'exploitation assurant le chargement de celui-ci t partir d'un périphérique, cette partie du système d'exploitation est appelée BIOS en terminologie anglo-saxonne. Le fait de réunir dans une seule mémoire morte les deux programmes permet de limiter le nombre de circuits intégrés présents sur la carte mère de l'ordinateur. Avantageusement, le microprocesseur 1 appartent à la famille 8086 commercialisée par la Société INTEL. Par exemple le microprocesseur 1 est un 8086 ou un 8088. Dans une variante de réalisation le dispositif de gestion de mémoire vive 3 comporte le circuit MT86GOll commercialisé par la Société Multitech. Le circuit MT86G011 peut être associé à des portes logiques associées de façon connue pour effectuer des conversions d'adresses selon le type de circuits intégrés de mémoires utilisées. Bien que le circuit MT86GOll n'ait été au départ prévu que pour utiliser des mémoires de 1 Mégaoctet, la mémoire vive 4, grâce t un dispositif de conversion d'adresses au niveau des lignes et des colonnes, peut utiliser des mémoires de 64 k, 256 k ou de 1 Méga. Sur la figure 2, on peut voir un exemple de plan de carte mémoire d'un ordinateur travafflant sous le système d'exploitation MS-DOS. Dans l'exemple de la figure 2, la mémoire est limitée à 3 Mégas. Toutefois, les mémoires étendues plus gran-'-es ne suc: tent pas du cadre de la présente invention. La mémoire vive 4 comporte une première zone 41 correspondant à la mémoire vive présente dans l'ordinateur et vendue aux clients. La capacité de mémoire notée X sur la figure est par exemple égale à 512 k. Une zone mémoire référencée 42 faisant suite à la zone 41, va de X à 1 Méga et constitue donc avec cette dernière une zone de 1 Mégaoctet. Dans cette zone 42, se trouve la limite des 640 k directement gérés par le système d'exploitation MS-DOS. Dans la mesure où un microprocesseur de type 8088 n'est pas capable d'adresser plus de 1 Mégaoctet de mémoire, l'adresse logique de la mémoire étendue se trouve nécessairement entre 640 k et 1 Méga. Dans l'exemple illustré sur la figure 2, une page mémoire comporte 16 k. La zone 43 va de 1 Méga å 2 Mégas. La zone 44 va de 2 Mégas à 3 Mégas. Sur la figure 3, on peut voir un exemple de réalisation d'un ordinateur selon la présente invention. L'ordinateur selon la présente invention comporte une mémoire morte 2, un microprocesseur 1, un dispositif de gestion mémoire vive 3. La mémoire vive 41 placée par exemple sur la carte mère, un buffer bidirectionnel de bus 5 et trois bancs mémoire 42,43 et 44 placés par exemple sur une carte d'extension. Sur la figure 3, on a représenté seulement le bus d'adresse qui est relié aux mémoires vives, à savoir le bus 50 relié aux mémoires vives 42,43 et 44. Le dispositif de gestion mémoire vive 3 est relié aux mémoires vives 41,42,43 et 44 de façon t leur fournir un sélecteur permettant de choisir la page mémoire sélectionnée. Dans un exemple de réalisation on utilise les signaux de sélection de boîtiers type CHIP SELECT du circuit MT86G011. Dans la mesure où ce circuit n'était prévu que pour gérer des circuits mémoires de 1 M, il ne comporte que 3 signaux notés CASO, CAS1 et CAS2. Pour compléter la mémoire vive installée dans l'ordinateur par de la mémoire vive jusqu'à concurrence de 640 k on sélectionne le signal CASO. Toutefois celui-ci désigne aussi bien la zone 41 que la zone 42 des mémoires vives. On fcsirnit une indication supplémentaire en fournissant un niveau logique "1" sur la ligne d'adresse A19. Ainsi dans notre exemple lorsque cette ligne est à "1" (et CASO = 1) on se trouve dans les 128 k situés entre 512 et 640 k. Cela est vu comme les 24 premières pages physiques de la fonction pagination.Dans le cas d'utilisation de circuits intégrés du type 1 M, le signal CASO n'est pas suffisant pour l'adresser en totalité, en effet on risquerait de perdre 512 k. On va donc utiliser une combinaison du signal CASO avec le signal CAS1 ou avec le signal CAS2. Si on utilise deux circuits de 256 k alors on fournit des indications supplémentaires permettant l'adressage au moyen du signal MA9. Le signal CAS1 sélectionne le banc mémoire 43. Le signal CAS2 sélectionne le banc mémoire 44. Dans le cas où les bancs 43 et/ou 44 comportent des mémoires de type 256 k, on mémorisera avantageusement le signal MA9 dans un registre comme par exemple le registre vendu sous la référence 74LS107A déclenché par un signal RAS. Les sorties Q et Q du circuit 74LS107A fournissent chacune un signal d'autorisation utilisé pour diviser ltespace de 1 M en 2 espaces de 512 k. De même il est possible de diviser à nouveau chacun des espaces de 512 k en 2 espaces de 256 k à partir de chacun des signaux CAS1 ou CAS2. Par exemple, on utilise les signaux MA9 et MA9. En effet ces signaux contiennent l'adresse colonne quand le signal CAS1 ou CAS2 est actif.Le dispositif selon la présente invention a minimisé le temps de propagation du signal ainsi que le hardware impliqué dans la gestion des signaux de type CAS. Toutefois, il comporte l'inconvénient que plusieurs pages physiques sont sélectées pour une même adresse logique, ctest-a-dire pour un même numéro de page y compris dans l'espace compris entre l'adresse la plus haute de la zone 41 et 640 k. Le dispositif selon la présente invention fonctionne grâce à un programme stocké dans la mémoire 2 gérant la pagination, le bon numéro de page à utiliser. Une initialisation devra être appelée avant de pouvoir utiliser la pagination.Cette routine d'initialisation permet de connaître quels sont parmi les, par exemple 152 numéros de pages de 16 k, ceux qul sont disponibles en évitant les numéros qui sont redondants. Par la même occasion le système mesure la quantité de mémoire d'extension installée. La routine exécutée par le microprocesseur 1 consiste en une écriture de quelques adresses de chacune des pages physiques, ces adresses étant différentes dans chaque page. Par exemple on écrit le numéro de sélecteur permettant de sélectionner chacune des pages. Seuls le premier ou les quelques premiers octets de chaque page sont écrits pour minimiser le temps de traitement nécessaire à chaque allumage de la machine. Avantageusement, on commence par écrire la dernière page portant par exemple le numéro 152 et on continue jusqu'à la première page portant le numéro 1, pour terminer en écrivant les 8 pages de 16 k constituant la zone, accessible au système, de 128 k compris dans la zone 42. Ensuite on effectue la relecture dans le sens inverse pour terminer sur la page 152. Les numéros des pages pour lesquels les numéros de sélecteur correspondent sont stockés en mémoire vive sous forme d'une table. Il est bien entendu que dans le cas où l'initialisation de la mémoire étendue ne serait pas faite à l'initialisation de la machine, il est nécessaire de sauvegarder les mémoires dans lesquelles on écrit. Dans le cas d'utilisation de pages mémoires de 16 k les 13 bits de poids faibles sont valables. Pour des extensions mémoires dépassant les 640 k on utilise des signaux MA7, MA8 et MA9 pour la génération des adresses en mémoire vive. Avantageusement les signaux MA7, MA8 et MA9 passent par un buffer inverseur. Dans la mesure où le signal MA8 ne contient pas d'informations de rafraîchissement de mémoires dynamiques il sera multiplexé avec le signal SA8 par des multiplexeurs par exemple de type 74LS51 commandés par le signal SNACK0. Les adresses MA6 à MA0 sont fabriquées par 2 multiplexeurs par exemple de type 74LS158 par exemple contrôlés par le signal ADRS et utilisant SA6 à SA0 pour l'adressage des lignes et SA13 à SA7 pour l'adresse des colonnes de mémoires vives. Les noms des signaux de contrôle utilisés sont normalisés pour le circuit 8088 ou pour ie circuit MT86G011. Il est bien entendu que l'utilisation d'autres circuits et donc d'autres signaux de contrôle ne sort pas du cadre de la présente invention. La présente invention s'applique notamment à la réalisation de micro-ord5nateurs. La présente invention principalement à la réalisation de micro-ordinateurs fonctionnant sous le système d'exploitation MS-DOS. REVENDICATIONS 1. Ordinateur comportant un microprocesseur (1), une mémoire vive (4), une mémoire morte (2) et un dispositif de gestion de mémoire vive (3) caractérisé par le fait qu'il comporte des moyens (2,3) pour affecter toute la mémoire vive susceptible d'être gérée par le système d'exploitation à la mémoire vive principale et l'excédent à la mémoire vive étendue. 2. Ordinateur selon la revendication 1, caractérisé par le fait qu'il comporte une carte mère contenant le microprocesseur (1) et une carte fille comportant de la mémoire vive (4). 3. Ordinateur selon la revendication 1 ou 2, caractérisé par le fait qu'il comporte des moyens (2,3) permettant d'affecter une partie d'un même circuit Intégré mémoire à la mémoire vive principale gérée par le système d'exploitation et l'excédent à la mémoire vive étendue. 4. Ordinateur selon la revendication 1,2 ou 3, caractérisé par le fait qu'il teste la quantité de mémoire vive (4) disponible. 5. Ordinateur selon la revendication 1,2,3 ou 4, caractérisé par le fait qu'il est capable de fonctionner sous le système d'exploitation MS-DOS. 6. Ordinateur selon la revendication 1,2,3,4 ou 5, caractérisé par le fait qu'il comporte le microprocesseur 8088 ou 8086. 7. Ordinateur selon la revendication 1,2,3,4,5 ou 6, caractérisé par le fait qu'il comporte le processeur MT86G011. 8. Ordinateur selon la revendication 1,2,3,4,5,6 ou 7, caractérisé par le fait que l'extension mémoire (42,43,44) comporte des boîtiers de 256 k. 9. Procédé d'initialisation de mémoire étendue caractirisb par le fait qu'il eomporte les étapes suivantes - écriture dans la mémoire additionnelle (42,43,44) d'au moins une case mémoire par page en commençant par la dernière page et en terminant dans la partie gérée par le système d'exploitation, - lecture dans l'ordre inverse et mémorisation dans un tableau des pages où le nombre inscrit est égal au nombre relu, ces pages correspondant au sélecteur de pages valides. 10. Procédé selon la revendication 9, caractérisé par le fait que les nombres inscrits sont les numéros des sélecteurs. 11. Procédé selon la revendication 9 ou 10, caractérisé par le fait que chaque page a 16 k.