Brevet FR2738367A1 — publié le 19970307

La présente invention propose un procédé de téléchargement de fonctions entre un ordinateur personnel et une carte à mémoire. Elle concerne également le dispositif qui permet le fonctionnement de ce procédé. La carte à memoire utilisée est du type PCMCIA (Association internationale de carte à mémoire pour ordinateur personnel). I1 existe actuellement de nombreuses cartes PCMCIA commercialisées à travers le monde. I1 s'agit de carte à mémoire, mais également des cartes modem/fax, de réseau (ethernet), de sécurité ou d'interface pour les cartes à puces. Ces autres cartes sont communément appelées cartes I/O (entrée/sortie). Lorsque ces cartes doivent permettre le téléchargement de nouvelles fonctions ou d'améliorer les fonctions existantes, on leur adjoint une mémoire flash. Cette mémoire est donc associée aux constituants classiques d'une carte PCMCIA, à savoir une interface, un processeur et de l'électronique propre à chaque fonction spécifique. Le document EP-A-0.419.005 concerne un appareil et un procédé pour charger un système d'entrée/sortie de base (BIOS) mémorisé dans une mémoire à accès direct d'un système d'ordinateur personnel. Le système d'ordinateur personnel comprend un processeur système, une carte système, une mémoire principale à accès aléatoire, une mémoire morte et au moins une mémoire à accès direct. La mémoire morte comporte une première zone de BIOS et des données représentant le type de processeur système et la configuration des entrées/sortie de la carte système. La première zone de BIOS lance le système et la mémoire à accès direct pour lire un bloc d'initialisation maître dans le système à partir de la mémoire à accès direct. Le bloc d'initialisation maître comporte un segment de données et un segment de code exécutable. Le segment de données comporte des données représentant le matériel système et une configuration du système qui est prise en charge par le bloc d'initialisation maître. La première zone de BIOS confirme que le bloc d'initialisation maître est compatible avec le matériel système en vérifiant que les données provenant du segment de données du bloc d'initialisation maître sont en accord avec le processeur système, la carte système, et la configuration d'entrée/sortie système. Si le bloc d'initialisation maître est compatible avec le matériel système, la première zone de BIOS dirige le processeur système pour qu'il exécute le segment de code exécutable du bloc d'initialisation maître. Le segment de code exécutable confirme que la configuration du système n'a pas changé et charge dans le reste de la zone de BIOS, de la mémoire à accès direct vers la mémoire à accès aléatoire.Le segment de code exécutable vérifie ensuite l'authenticité du reste de la zone de BIOS et dirige le processeur système pour qu'il commence d exécuter le BIOS maintenant dans la mémoire à accès aléatoire. L'exécution du BIOS dans la mémoire à accès aléatoire initialise ensuite le système d'exploitation pour commencer l'exploitation du système d'ordinateur personnel. Ce document expose que les données chargées dans la mémoire tampon son recopiées dans une mémoire à accès aléatoire. Ceci représente le cas des systèmes traditionnels où un programme est téléchargé dans une mémoire additionnelle. L'objet de l'invention consiste donc en un mécanisme permettant le chargement rapide de nouvelles fonctions dans une mémoire volatile. Ce procédé et son dispositif de mise en oeuvre permettent donc une flexibilité accrue du fonctionnement des cartes PCMCIA, en effet toute nouvelle fonction peut être implantée ultérieurement par un simple ajout d'un logiciel externe. De plus, la mémoire de type flash, qui est relativement onéreuse et non disponible à court terme, n'est plus indispensable au fonctionnement de ce type de carte à mémoire, ce qui permet des réductions substantielles de coût et d'encombrement. A cet effet, la présente invention concerne un procédé de téléchargement de fonctions entre, d'une part, un ordinateur personnel comportant au moins un processeur, une mémoire, une unité d'entrée-sortie et une unité de communication et, d'autre part, une carte à mémoire ou d'entrée/sortie du type PCMCIA (Association internationale de carte à mémoire d'ordinateur personnel) comportant une mémoire tampon, un processeur et un dispositif d'application ; une interface PCMCIA est présente entre l'ordinateur et la carte ; le procédé est caractérisé en ce qu'il permet de charger la fonction dans la mémoire tampon par accès rapide à cette mémoire, celle-ci étant directement dirigée vers le processeur de ladite carte PCMCIA qui peut donc l'exécuter. La mémoire tampon est exécutable directement par le processeur de la carte PCMCIA (à la manière d'un mécanisme d'accès direct à une mémoireexécutable) pour permettre le transfert des fonctions exécutables par ladite carte. La mémoire tampon, à accès direct au processeur de la carte PCMCIA, autorise l'accès direct par l'ordinateur aux différentes cases de la mémoire par auto-incrémentation de l'adresse. La présente invention concerne également un dispositif de mise en oeuvre du procédé, caractérisé par le fait que le canal de transmission de données provenant de l'ordinateur personnel est un câblage direct de celui-ci sur la carte PCMCIA pour une exécution rapide des données transmises par le processeur de ladite carte, de sorte que ledit ordinateur accède directement à l'espace programme du processeur de la carte. D'une part, la mémoire de l'ordinateur personnel a une fonction de stockage de toutes les fonctions dudit ordinateur. D'autre part, la mémoire de la carte PCMCIA a une fonction de stockage de la ou des fonctions devant être exécutées, sans stockage durable. Les dessins ci-joints sont donnés à titre d'exemples indicatifs et non limitatifs. Ils représentent un mode de réalisation préféré selon l'invention. Ils permettront de comprendre aisément l'invention. Les figures 1 à 5 représentent les différentes étapes du téléchargement d'une fonction dans le cas d'un ordinateur personnel et d'une carte à mémoire PCMCIA selon l'état de la technique. Les figures 6 à 9 représentent les différentes étapes du téléchargement d'une fonction dans le cas d'un ordinateur personnel et d'une carte à mémoire PCMCIA selon l'invention. La présente invention concerne essentiellement une mémoire tampon 3 qui permet l'accès direct au processeur 4 d'une carte à mémoire du type PCMCIA 2. A l'inverse d'une mémoire tampon simple 13 qui est un espace auquel on accède en positionnant convenablement l'adresse de la case mémoire que l'on veut lire ou écrire simultanément avec les signes de lecture ou d'écriture, la mémoire tampon 3 selon l'invention, c'est-à-dire à accès direct, permet d'accéder aux différentes cases mémoire sans avoir à positionner l'adresse. En général, le principe utilisé consiste en une auto incrémentation de l'adresse. A chaque lecture, le pointeur de l'adresse se déplace "d' une unité". Bien entendu, ce principe n'est pas limitatif pour la présente invention. Cette mémoire tampon à accès direct au processeur 4 de la carte 2 fonctionne de façon sensiblement similaire à une mémoire à accès direct qui est utilisée pour transférer des données entre un système et un autre. Ce système de mémoire à accès direct est donc connecté sur les bus de données des deux systèmes concernés. La mémoire à accès direct au processeur est elle utilisée pour transférer les fonctions exécutables par le second système c'est-à-dire la carte PCMCIA 2. Le transfert se fait par un bus de données entre le premier système, c'est-à-dire l'ordinateur personnel 1, et le dispositif à accès direct 2. La carte 2 va donc pouvoir voir le dispositif à accès direct sur son bus d'exécution. Ladite carte 2 va donc pouvoir exécuter la fonction directement. Si l'on s'intéresse maintenant aux figures, on peut mettre en évidence sur les figures 1 à 5 l'état actuel de la technique dans le domaine de la présente invention. Le mode de réalisation représenté sur ces figures comporte un ordinateur personnel 11 qui est connecté à une carte à mémoire de type PCMCIA classique 12. Cette carte 12 est donc essentiellement constituée par une mémoire tampon 13 de communication, un processeur 14, un dispositif d'application 15 et enfin, une mémoire flash 16. Selon la figure 1, l'utilisateur veut exécuter une nouvelle fonction F2 qui l'introduit dans l'ordinateur personnel 11. Selon la figure 2, la fonction F2 est transférée vers la mémoire tampon 13, transfert qui est associé au transfert du code de ladite fonction F2. Selon la figure 3, la fonction F2 est ensuite transférée à la mémoire flash 16 via le processeur 14. La figure 4 représente l'envoi de la demande d'exécution depuis la mémoire flash 16 de la fonction F2 avec les paramètres P2. Ces paramètres P2 se retrouvent au niveau de la mémoire tampon 13. Enfin, selon la figure 5, le processeur 14 interprète la commande reçue et exécute la fonction F2. Puis il renseigne l'ordinateur associé au dispositif d'application 15 de la bonne exécution de F2 en écrivant une valeur V2 dans la mémoire tampon 13. Selon un mode préférentiel de réalisation, la fonction F2 est conservée en mémoire dans la mémoire flash 16, mais ceci n'est pas obligatoire. Un des problèmes de ce dispositif selon l'état de la technique provient du fait que si plusieurs fonctions F sont chargées en mémoire flash 16, l'ensemble des codes exécutables peut dépasser la capacité de la mémoire. Il y a alors des risques d'effacement ou de saturation du système. Selon les figures 6 à 9, la présente invention simplifie de manière importante le téléchargement d'une fonction. Selon la figure 6, et de manière analogue à la figure 1, l'utilisateur charge la fonction F1 à l'intérieur d'un ordinateur personnel 1. Selon la figure 7, cette fonction F1 est ensuite transmise via un canal de transmission de données 6, la fonction F1 provenant de l'ordinateur 1 en direction de la carte à mémoire de type PCMCIA 2 dont la structure est caractéristique. Cette carte 2 comprend essentiellement trois éléments importants, à savoir la mémoire tampon 3 permettant l'accès direct au processeur 4 de la carte 2, le processeur 4 et enfin le dispositif d'application 5. Selon la figure 7, la fonction F1 est donc transférée au niveau de la mémoire tampon 3 à accès direct simultanément avec les paramètres P1. Selon la figure 8, le processeur 4 interprète le fait que la mémoire tampon à accès direct 3 est remplie par une fonction permettant son exécution directe par ce processeur 4. Il exécute alors F1 avec les paramètres P1. La figure 9, enfin, décrit l'inscription de la valeur V1 après exécution de la fonction F1. Ladite fonction F1 peut résider dans la mémoire tampon 3 au cas où il y aurait une deuxième exécution successive à réaliser. Néanmoins, chaque nouvelle fonction écrase la fonction précédente. Le temps de chargement doit donc être rapide. Il faut donc un accès direct à mémoire de cette carte 2 pour l'ordinateur personnel 1 ainsi qu'un accès direct à exécution par le processeur 4. Dans le mode de réalisation selon l'invention, la mémoire flash 16 n'est donc plus nécessaire. Le cas traditionnel, utilisé dans le cadre d'une carte PCMCIA 12, nécessite le téléchargement d'une nouvelle fonction F2 par le canal de transmission de données, interprété par le processeur 14 de la carte 12 et ensuite écrit dans la mémoire flash 16. L'exécution se fait alors dès que toute la fonction F2 est écrite dans ladite mémoire flash 16, et lorsque le processeur 14 reçoit la commande d'exécution par le canal de transmission de données. Le cas traditionnel nécessite environ un temps de 1 à 2 secondes pour charger une fonction de 2 K octets. Le mécanisme utilisé dans le cadre de l'invention utilise un principe dérivé du DMA (direct memory access = accès direct à la mémoire). L'idée est de câbler le canal de transmission de données de manière à ce qu'il soit directement exécutable par le processeur. Si ce canal de données permet un chargement de type DMA, le système hôte (un ordinateur personnel dans le cas concret d'une carte PCMCIA), peut alors accéder directement à l'espace programme du processeur, on a alors un mécanisme DPA (direct processor access = accès direct au processeur). Par exemple, la spécification DVB (Digital Video Broadcasting = Radio ou télédiffusion vidéo en numérique) élaborée en Europe en 1995 est une application particulière d'utilisation du standard PCMCIA qui définit notamment un mécanisme de transfert extrêmement rapide permettant d'écrire une mémoire tampon de données à une vitesse de l'ordre de 300 nanosecondes par octet. Un chargement de 2 K octets prend alors un temps de 600 microsecondes. Dans l'invention, cette mémoire tampon 3 étant exécutable directement par le processeur 4 interne, le téléchargement d'une nouvelle fonction F1 dont le code exécutable est de 2 K octets nécessite alors 600 microsecondes ce qui est négligeable par rapport aux deux secondes des système s traditionnels et également du temps d'exécution lui-même (qui est de l'ordre de 100 à 500 millisecondes dans le cas d'un accès à une carte à puce par exemple). Ceci permet donc de faire résider toutes les fonctions dans l'ordinateur personnel et non plus dans la carte PCMCIA et de les faire exécuter en temps voulu en utilisant le chargement rapide de type DPA. On a même l'avantage de charger simultanément l'appel à l'exécution de la fonction, les arguments de ladite fonction et le code exécutable de cette fonction. REFERENCES 1. Ordinateur personnel 2. Carte à mémoire de type PCMCIA 3. Mémoire tampon permettant l'accès direct au processeur 4 de la carte 2 4. Processeur de la carte 2 5. Dispositif d'application de la carte 2 6. Canal de transmission de données provenant de l'ordinateur 1 en direction de la carte 2 11. Ordinateur personnel 12. Carte à mémoire de type PCMCIA 13. Mémoire tampon de communication de la carte 12 14. Processeur de la carte 12 15. Dispositif d'application de la carte 12 16. Mémoire flash de la carte 12 F1. Exécution d'une nouvelle fonction au niveau de l'ordinateur 1 et de la carte 2 F2. Exécution d'une nouvelle fonction au niveau de l'ordinateur 11 et de la carte 12 P1. Paramètres de la commande d'exécution de F1 P2. Paramètres de la commande d'exécution de F2 V1. Valeur témoin de l'exécution de F1 V2. Valeur témoin de l'exécution de F2 REVENDICATIONS 1. Procédé de téléchargement de fonctions (F1) entre, d'une part, un ordinateur personnel (1) comportant au moins un processeur, une mémoire, une unité d'entrée-sortie et une unité de communication et, d'autre part, une carte à mémoire ou d'entrée/sortie du type PCMCIA (2) comportant une mémoire tampon (3), un processeur (4) et un dispositif d'application (5) ; une interface PCMCIA est présente entre l'ordinateur (1) et la carte (2), caractérisé en ce qu'il permet de charger la fonction (F1) dans la mémoire tampon (3) par accès rapide à cette mémoire, celle-ci étant directement dirigée vers le processeur (4) de ladite carte PCMCIA (2) qui peut donc l'exécuter. 2. Procédé, selon la revendication 1, caractérisé en ce que la mémoire tampon (3) est exécutable directement par le processeur (4) de la carte PCMCIA (2) (à la manière d'un mécanisme d'accès direct à une mémoire exécutable) pour permettre le transfert des fonctions exécutables par ladite carte (2). 3. Procédé, selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que la mémoire tampon (3), à accès direct au processeur (4) de la carte PCMCIA (2), autorise l'accès direct aux différentes cases de la mémoire par auto-incrémentation de l'adresse pour l'ordinateur. 4. Dispositif, permettant le fonctionnement du procédé selon l'une quelconque des revendications 1 à 3, caractérisé par le fait que le canal de transmission de données (6) provenant de l'ordinateur personnel (1) est un câblage direct de celui-ci sur la carte PCMCIA (2) pour un transfert rapide des données exécutables vers le processeur (4) de ladite carte (2), de sorte que ledit ordinateur (1) accède directement à l'espace programme du processeur (4) de la carte (2). 5. Dispositif, selon la revendication 4, caractérisé par le fait que la mémoire de l'ordinateur personnel (1) a une fonction de stockage de toutes les fonctions (F1) dudit ordinateur (1), et que la mémoire (3) de la carte PCMCIA (2) a une fonction de stockage de la ou des fonctions (F1) devant être exécutées, sans stockage durable.