Brevet FR2427646A1 — publié le 19791228

L'invention a pour objet un procédé pour modifier l'exécution d'un programme écrit dans une mémoire morte ainsi qu'un appareillage pour la mise en oeuvre de ce procédé. Il est quelquefois utile de modifier un programme écrit dans une mémoire morte, ou "ROM". C'est, par exemple, le cas où il intervient une modification d'an cahier des charges sur la base duquel a été établi le program ne, ou bien lorsqu'àl'èxécution on découvre une anomalie dans un programme. Jusqu'à présent, une telle modification ou une telle anomalie signifie la mise au rebut du chip ou pastille de la mémoire morte et l'établissement d'un nouveau chip, avec les inconvénients d'ordre industriel et/ou financier y attachés, résultant notamment du fait que ces chips ne peuvent être construits économiquement qu'en nombre tres élevé. L'invention permet au contraire de conserver la mémoire affec tée au programme à modifier ou à corriger et elle propose d1adjoin dre à ladite mémoire une mémoire de correction ou de complément et de rendre opératoire ladite mémoire adjointe en lieu et place de la partie de la mémoire initiale qui doit btre complétée ou corrigée. La mémoire complémentaire peut être préparée par l'utilisa teur sans que se manifestent les inconvénbients liés à l'obtention d'une nouvelle mémoire complète. La mise en place de la mémoire adjointe se fait par simple enfichage sur un support prévu à l'avance. Dans la description qui suit, faite à titre d'exemple, on se réfère aux dessins annexés, dans lesquels - la figure I est une vue très schématique d'une carte prévue pour un système à microprocesseur et en attente de la mémoire com plémentaire ; - la figure 2 est une vue analogue à la figure 1, mais la mé moire complémentaire ayant été mise en place - la figure 3 est une vue montrant divers composants d'un système à microprocesseur - la figure 4 est un synoptique d'un appareillage selon l'in vention. Sur la carte 11 (figures I et 2), sont prévus un support 12 pour l'enfichage d'un chip 13 portant les circuits du microproces seur, un support 14 pour la mémoire morte 15 dans laquelle est écrit un programme, un support 16 pour une mémoire 17 du type RAM, un support 18 pour un périphérique 19, etc., le microprocesseur, les mémoires, le périphérique étant desservis par un premier bus ou groupe de conducteurs 21 (figure 5) affecté aux données, un second bus 22 affecté aux adresses et un troisième bus 23 affecté aux commandes. Conformément à l'invention, on prévoit sur la carte 11 un support 24 relié aux bus comme montré par les conducteurs ou groupes de conducteurs 25, 26 et 27. Le support 24 est destiné à recevoir une mémoire de correction MC d'un type permanent ou semi-permanent (ROM, PROM ou RPROM). Dans la mémoire NC est écrite la modification qu'on souhaite apporter à la mémoire ROM 15. Cette modification peut correspondre à une correction ou à un complément au programme enregistré dans la mémoire 15. On dispose également d'un bit ou mot PMC (présence de la mémoire de correction) (figure 4) révélateur de la présence ou de l'absence de la mémoire de correction MO ou mémoire 25. Lans la forme de réalisation représentée, l'infornation contenue dans ce bit ou mot (PMC) est copiée dans un registre 26 de la mémoire RAM 17 qui lui est exclusivement réservé. selon l'invention, également, le programme enregistré dans la mémoire 15 a été découpé en n pages logiques PLlr PL2, etc..., . Pour 1' exécution d'un programme comprenant la modification écrite dans la mémoire MC, on prévoit que la longueur maximale d'une page logique PL soit inférieure à la capacité de la mémoire MC. Pour l'exécution du programme écrit dans la mémoire 15, mais comportant n modifications, la capacité maximale d'une page logique PL est choisie égale à 1/n de la capacité de la mémoire MC. Au début du programme enregistré dans la mémoire 15, on a prévu, dans le but de pouvoir modifier l'exécution du programme écrit dans ladite mémoire, un bloc logique BID MC (abréviation de bloc logique de détection de la présence de la mémoire MC) pour détecter la présence de la mémoire MC. Le bloc logique BED PMC fait la lecture d'une adresse prévue de la mémoire MC, par exemple du contenu de la première adresse AMD de ladite mémoire. Cette information est mémorisée dans le registre 26 ou PMC, par exemple contenu dans la mémoire RAM 17. Par exemple, PMC = I si la mémoire MC est présente sur la carte (condition schématisée sur la figure 2) et PMC = O lorsque la mémoire MC est absente (condition schématisée sur la figure 1). On peut aussi rendre à volonté opératoire ou non la mémoire MC de modification, par une écriture à l'adresse AMC d'une information complémentaire lorsque l'exécution du programme écrit dans la mémoire 15 doit être modifiée. Avant chaque page logique PL1, PL2, 000 n est prévu un bloc logique, respectivement BLS1, BLS2, etc..., BLS . Chaque bloc logi- que BIS contient un saut conditionnel qui est fonction de l'information contenue dans PMC (abréviation de présence de la mémoire MC). Si PMC = 0, il y a exécution du programme constitué par la succession des pages logiques depuis PL1 jusqu'à PL comme schématisé par les flèches 311 312 .e- 31n- Si, par contre, PMC = 1 il s'exécute un saut vers une table miroir à trous TMT qui se trouve dans la mémoire MC et comme schéma tissé par les lignes 321, 322, etc..., 32n du schéma. Sa table TMT comporte, en dehors de l'adresse AMC, autant d'adresses qu'il y a de pages logiques PL, à savoir A1, A2 ... An. Dans chaque adresse A@ est prévue une instruction de saut inconditionnel au début de la page PLi, comme schématisé par les lignes 331, 332 ... 33n si la page PLi n'est pas à modifier par un complément ou par une correction. Si, par contre, la modification du programme affecte la page PLi, l'adresse correspondante Ai de la table à trous contient un saut inconditionnel au début d'une page logique corrigée P'i faisant partie de la mémoire MCI comme schématisé par la ligne 34i. A la fin de la page P'i se trouve une instruction de saut inconditionnel vers le bloc BLS comme schématisé par la ligne 35. Si, par exemple, la page PLi+1 est également modifiée, la lecture à l'adresse Ai+1 provoque un saut inconditionnel vers une page modifiée P'i+1 comme schématisé par la ligne 34i+1- On a supposé, dans 11 exemple, que la modification de la page n'affecte que la première partie de cette page. La page contient alors une instruction finale de saut inconditionnel vers le début de la partie non modifiée de la page Pli+1 comme schématisé par la ligne 33i+1 qui aboutit en un point intermédiaire du rectangle symbolisant la page Pi+1. La longueur de la page P'i+1 peut être ainsi tenue inférieure à la longueur d'une page logique PL. Dans une autre forme de réalisation, une page P'i+1 peut être d'une longueur supérieure à une page PL. REVENDICÂTIORS 1. Procédé pour modifier l'exécution d'une partie d'un pro gramme écrit dans une mémoire morte, notamment faisant partie d'un système à microprocesseur, caractérisé en ce qu'on établit une mémoire complémentaire comportant la partie modifiée et en ce qu'on lit ladite mémoire complémentaire en lieu et place de la partie à modifier de la mémoire morte. 2. Procédé selon la revendication 1, caractérisé en ce qu'on divise la mémoire morte en des pages logiques dont chacune est plus petite que la capacité maximale de la mémoire complémentaire. 3. Procédé selon la revendication I pour effectuer n modifications au programme écrit dans la mémoire morte, caractérisé en ce quton divise la mémoire morte en des pages logiques dont chacune a une capacité maximale égale à 1 de la capacité de la mémoire complé n mentaire. 4. Precédé selon la revendication 1, caractérisé en ce que la mémoire complémentaire comprend des adresses correspondant à chacane des pages logiques et en ce qu'avant lecture de chaque page logique on interroge la mémoire complémentaire pour savoir si la page logique à lire fait partie de la mémoire morte ou de la mémoire complémentaire. 5. Appareillage pour la mise en oeuvre du procédé selon l'une des revendications I à 4, comprenant, sur une carte à microprocesseur, la mémoire morte et des bus de liaison, caractérisé en ce qu'il comprend un support lié aux bus de liaison et propre à recevoir une mémoire complémentaire pour la modification du programme écrit sur la mémoire morte. 6. Appareillage selon la revendication 5, caractérisé en ce qu'il comprend un registre prenant l'une ou l'autre de deux conditions logiques suivant que la mémoire complémentaire est présente ou absente. 7. Appareillage selon la revendication 6, caractérisé en ce que ledit registre est prévu sur une mémoire RAM faisant partie de la carte.