FR 2461301 A1 19810130 FR 7812119 A 19780425 24613C 1 La présente invention a pour objet une architecture nouvelle d'un microprocesseur ou microcalculateur permettant de résoudre facilement les problèmes soulevés par l'autopro- grammation. Par autoprogrammation, on entend l'ensemble des possi- bilités qui sont offertes à un programme pour en modifier un /de ffonctions/ autre. Si on assimile un programme P1 à un ensemRDe/Ti telles que Pi = (fi, f2, fi) l'autoprogrammation se trouve réalisée si fi est un sous pro- lo gramme capable de modifier le sous programme fj. De ce fait, le programme P1 est transformé en un programme P2 tel que P2 = (fl i f2 *.. fi *.. gj). Cette propriété peut s'étendre de proche en proche de façonà modifier le programme entier pour exécuter des travaux prévus mais complètement différents de ceux définis à l'aide des fonctions primitives. Le program- me P1 évolue donc dans le temps en fonction de son propre historique. L'autoprogrammation peut conduire à des problèmes extrê- mement complexes, puisqu'il faut prévoir à l'avance toutes les évolutions possibles du programme par lui-même, mais dans beaucoup d'applications, les évolutions possibles du programme en fonction d'événements sont très bien prévisibles. Dans les gros systèmes informatiques, utilisant des gros processeurs, l'autoprogrammation peut conduire à utiliser des espaces mémoires qui peuvent aller en augmentant au fur et à mesure de l'évolution dans le temps du programme de départ. Dans le cas o pour certaines applications des microprocesseurs la taille mémoire es-t réduite, il est souhaitable que l'évolu- tion du programme de départ ne prenne pas plus de taille mémoir qu'à l'origine. Pour arriver à ce résultat, une solution con- siste à opérer des modifications du contenu des instructions ou données à des adresses spécifiques du programme de départ, cette modification pourra par exemple porter sur lecontenu de la zone du code opération d'une instruction particulière du programme de départ. Ainsi un programme de départ Pl qui à l'adresse 10A contenait une instruction comportant un code opératoire d'addition pourra voir son code opération se trans- 2 24613C1 former en soustraction sans que pour autant la dimension du programme de départ soit modifiée. De même, on pourra modifier un opérande immédiat pour prendre en compte une valeur nouvelle en fonction d'un événement. On rappelle que le champ opérande d'une instruction contient un opérande immédiat lorsque son contenu porte sur une donnée et non pas sur une adresse. Cet opérande peut se situer dans une instruction immédiate mais il peut également faire partie des données permanentes d'entrée du programme. Ainsi en fonction de la modification effectuée sur un opérande immédiat, les actions entreprises par le pro- gramme seront différentes par la suite. La technique de l'autoprogrammation peut avoir des appli- cations très diverses dans les systèmes qui tendent à rempla- cerlamonnaie fiduciaire telle que les billets de banque, les pièces de monnaie, les systèmes dans lesquels l'intégrité et la confidentialité d'information conservée dans les fichiers doit être assurée, les systèmes informatiques o il est néces- saire d'assurer, l'inviolabilité d'un programme par des évé- nements externes pour réaliser des fonctions spécifiques sur toute machine programmables en particulier sur des ordinateurs ou petitescalculatricesévoluéesou dans les systèmes ou une habilitation et un contrôle d'accès sont nécessaires. Ainsi dans une application bancaire, il pourra être nécessaire d'effectuer les mémorisations successives des transactions effectuées sur un compte,l'autoprotection contre des accès frauduleux aux données du compte mémorisé, de contrôler 1 'ac- cès au dispositif de mémorisation o se trouve ces données en comparant un code à une donnée inaccessible à un fraudeur, et de modifier le comportement du dit dispositif de mémorisation vis-à vis de son environnement extérieur en fonction de l'his- torique des événements qui auront lieu durant tout le temps de son utilisation. Le dispositif selon l'invention permet de résoudre le délicat problème de la mémorisation des programmes enregistrés dans les petites calculatrices programmables.On connait en effet des réalisations de petitescalculatrices pro- grammables par l'utilisateur, mais dont le principal défaut estde ne pouvoir conserver le programme enregistré en l'ab- sence d'alimentation ou de source d'énergie. C'est pourquoi il est nécessaire de coupler à ces calculatrices au moment de 3 2 24613C 1 leur utilisation des supports d'enregistrement tels que cartes magnétiques ou mémoires à fusibles o seule une lecture des informations qu'elles contiennent est possible. Ces mémoires sont connues dans l'état de la technique sousles appellations "R0m" abréviation du terme anglo- saxon "Read Only Memory" ou mémoire CM0S à faible consommation abréviation du terme anglo-saxon " Complementary Metal Oxyde Semi conductor". Ces supportsd'enregistrement sont encombrants,peu pratique et relativement coûteux. Le dispositif selonl'invention résoud ces problèmes. Une partie du programme concernant les fonc- tions élémentaires (fonction arithmétique et fonction clas- sique de calcul) de la petite calculatrice, est enregistrée de façon définitive, une deuxième partie du programme est des- tinée à prendre en charge l'autoprogrammation de fonctions introduites au clavier de la petite calculatrice par l'uti- lisateur. Enfin la troisième partie de la mémoire contient les différents programmes introduits par l'utilisateur en fonction de ses besoins et évoluant dans le temps. Des exemples d'application qui viennent d'être données, il découle que les dispositifs de mémorisation correspondants doivent d'une part être de dimensions physiques très réduites et d'autre part être munis de dispositifs de mémorisation pour conserver les tnformations enregistrées de façon perma- nente. Les microprocesseurs actuels qui sont réalisés en tech- nique LSI, abréviation du terme anglo-saxon "Large scale inte- gration répondent bien au premier critère de faible encombre- ment exigé dans les applications précitées. Par contre, la structure monolithique ne comprend que les dispositifs de cal- cul permettant de réaliser que les fonctions arithmétiques et logiques ainsi que les dispositifs de commande, aucune de ces structures comprend les dispositifs de mémorisation qui généralement font partie d'une autre structure monolithique qui s'adapte sur les connexions externes du microprocesseur Des exemples de réalisation de ces microprocessseurs peuvent être trouvés dans le livre intitulé "Les microprocesseurs, Techniques et applications par RODNAY ZAKS et PIERRE LE BEUX" par et édité/"SYBEX" 313 rue Lecourbe 75015 PARIS. La réalisation d'un dispositif de mémorisation autoprogrammé nécessite donc, en utilisant des moyens classiques,au moins une pastille de 4 246130 1 semiconducteurs sur laquelle sont réalisésles structures d'une unité arithmétique logique et d'un organede commande et une autre pastille sur laquelle se trouve réalisé le dispositif de mémorisation. L'association de ces deux pastilles est réalisée à l'aide de connexion dont les dimensions ne sont pas négli- geables relativement à la dimension de chacunes des pastilles et va à l'encontre de l'exigence du critère de faible encom- brement rencontré plus haut. La mémoire classique utilisée est destinée à recevoir un ou plusieurs programmes ainsi que des données, l'accès à ces programmes et données se faisant à l'aide d'un registre d'adresse pour la recherche d'une instruc- tion ou d'une donnée en mémoire et d'un registre de sortie chargé par l'instruction ou la donnée lue dans la mémoire à l'adresse indiquée par le registre d'adresse. Dans les appli- cations ci-dessus recherchées, il est important de pouvoir conserver les informations enregistrées à la mise hors tension du dispositif de mémorisation, et d'autres parts,,la nécessité de modifier les informations (instructions et données) déjà mémorisées, conduit naturellement à l'emploi de mémoiresins- criptibles non volatives-En effet, un programme -inscrit dans une mémoire permanente non inscriptible et non effaçable du type ROM (abréviation du terme anglo-saxon "Read only memory") ne pourra par nature même de la mémoire, être modifié. Par contre, une mémoire inscriptible, du type PROM (abréviation du terme anglo-saxon "Programmable Read Only Memory") se prête bien aux différentes applications envisagées plus haut car cette mémoire est non volatile et l'on peut à tout moment modi- fier son contenu. On rappelle qu'une mémoire PROM est une mémoire ROM qui peut être programmée directement par l'utili- sateur. Chaque cellule de cette mémoire est équipée d'un fusi- ble et la programmation s'effectue en faisant sauter les fusi- bles de cette mémoire. D'autres mémoires reprogrammables du type EPROM réalisées à l'aide de la technologie MOS (abrévia- tion du terme anglo-saxon "Metal Oxyde Semiconductor") peuvent être aussi utilisées. Les mémoires PROM et EPROM rencontrent toutefois deux types de limitation pour les applications préci- tées. L'association de ces deux types de mémoires aux micropro- cesseurs classiques imposent la mise dansun état repos de tous 2461301 les éléments du microprocesseur lorsque la tension d'écriture est fournie à l'une de ces mémoires, cette tension ne pouvant venir que de l'extérieur du microprocesseur, ce qui entraîne qu'aucun programme ne peut se dérouler pendant cette phase, elle rend impossible 1 'autoprogrammation de la mémoire par le microprocesseur car le compteur ordinal qui assure l'adressage de la dite mémoire ne peut à la fois pointer sur une adresse Ai de la mémoire dont le contenu est à modifier et pointer sur une autre adresse Aj de la même mémoire pour mettre en oeuvre une séquence d'écriture dans la zone mémoire située à l'adresse A. C'est donc un but de l'invention que de réaliser une nouvelle architecture de microprocesseur monolithique par laquelle l'autoprogrammation non volatile, est possible en faisant évoluer ses fonctionnalités par la prise en compte des différents états antérieurs face à une situation déterminé Le microprocesseur selon l'invention comprend des moyens de mémorisationpermanents inscriptibles électriquement mot par mot, des moyens permettant un double accès simultané aux moyen de mémorisation associés à des moyens de distribution de la tension d'écriture ne perturbant pas le fonctionnement normal du microprocesseur ainsi que des-moyens d'écriture et de lec- ture des données à l'intérieur des dits moyens de mémorisation L'invention sera mieux comprise à l'aide de la descrip- tion faite en regard des dessins qui va suivre. La figure 1 est un schéma de principe de réalisation de l'adressage de la mémoire du microprocesseur autoprogrammée selon l'invention. La figure 2 est une variante d'exécution de cette struc- ture montrée à la figure 1. La figure 3 montre une réalisation complète du micropro- cesseur autoprogrammé selon l'invention. La figure 4 est un chronogramme montrant l'état des dif- férents signaux entrant dans la séquence d'écriture de la mémoire M2. La figure 5 est un diagramme simplifié des étapes de traitement exécutées par le sous-Proqramme PROG d'écriture. La figure 6 montre une variante d'exécution du micro- processeur autoproqrammé selon l'invention. 24613C1 La figure 7 montre un mode de réalisation de l'automate d'écriture utilisé dans la réalisation du microprocesseur de la figure -6. Sur la fiqure 1, la mémoire PROM ou EPROM 101 du micro- processeur de l'invention est adressée par les registres A1102 et A2 103. La mémoire 101 pourra avoir une capacité quelconque, on pourra par exemple utilisé une capacité de 4 K Bytes, le Byte pouvant avoir une dimension de 8 bits. Dans cette confi- guration, les registres A1 et A2 devront comporter au moins 12 bits. On rappelle que la désignation bit estla contraction du terme anglais Binary digit et est employé pour désigner un chiffre binaire 1 ou O toute matérialisation de ce chiffre à l'intérieur d'une machine informatique. Le registre A1 102 est utilisé à la fois comme registre de stockage temporaire d'une adresse de la mémoire 101 ou comme compteur ordinal, dans ce dernier cas il sera utilisé aux fins d'assurer la pro- gression des adresses de la mémoire 101. Le registre A2 103 est aussi utilisé comme registre d'adresse et contient toujours l'adresse dont le contenu doit être modifié. Naturellement, le rôle des registres A1 et A2 pourra être interverti. Les regis- tres R1 105 et R2 106 sont des registres de données qui peu- vent avoir des longueurs quelconques de 4, 8, 16 bits qui dé- pendent de la dimension des mots dans la mémoire 101 qui est définie à partir du type d'application envisagée. Les regis- tres R1 105 et R2 106 sont respectivement associés aux regis- tres d'adresse A1 102 et A2 103. Une information ou donnée qui doit être lue dans la mémoire 101 et qui est adressée par le registre A1 verra son contenu transféré de la mémoire 101 dans le registre R1 105, de même une information ou donnée qui doit être lue dans la mémoire 101 et qui est adressée par le regis- tre A1 verra son contenu transferé de la mémoire 101 dans le registre R1 105, de même une information ou donnée àécrire dont le contenu serait dans le registre R1 105 sera écrite à l'adresse de la mémoire désignée par le registre A1 102. La même dualité existe avec lesregistres A2 et R2. Sur la figure 1, la sortie 2 du registre A1 est reliée par le bus A1 à l'entrée 1 de la mémoire 101, la sortie 2 du registre A2 est reliée à l'entrée 2 de la mémoire 101 par le bus A2. Les données à lire ou à écrirede la mémoire 101 sont placées soit sur le 246 13G 1 bus D1 reliant la borne 3 d'entrée-sortie de la mémoire 101 à la borne 1 d'entrée-sortie du registre R1 105, soit sur le bus D reliant la borne 4 d'entrée/sortie dela mémoire 101 à la borne 1 d'entrée sortie du registre R2 106. Les bornes d'entrée/sortie de chacun des registres R1 et R2 sont reliées sur le bus D qui communique avec les entrées 1 de chacun des registres AI et A2. L'unité de commande 104 assure la synchro- nisation des échanges des informations sur le '.js D et l'adres- sage de la mémoire 101, ses sorties 2 et 3 commandent respecti- vement la lecture ou l'écriture des informations dans les regis- tresAl, A2 et R1, R2. Chaque entrée 3 de chacun des quatres registres peuvent être commandées isolément par l'unité de trai- tement et de commande 104. L'unité 104 communique par son entrée 1 avec le bus d'entrée sortie des données reliant le microprocesseur à des organes externes. La borne d'entrée/ sortie 4 communique avec le bus D et peut transférer des don- nées ou informations dans l'un quelconque des 4 registres pré- cités ou recevoir des données de l'un quelconque des deux registres R1 ou R2. Lors d'une écriture d'information dans la mémoire 101, la tension de programmation Vp est fournie par des organes externes au microprocesseur. Le fonctionnement du microprocesseur est le suivant. Le programme de traitement est résidant dans la mémoire 101. La donnée ou l'instruction de ce programme à modifier est intro- duite dans le registre R2 par le programme traité par le couple de registresA1 - R1. L'adresse concernée est introduite dans le registre A2. Le programme se branche ensuite sur une séquence d'écriture à l'adresse correspondante trouvée dans le regis- tre A1, il vérifie ensuite que l'écriture a été faite dans de bo. nnesconditions. L'écriture dans les mémoires du type PROM et EPROM nécessitant un certain délai, il est nécessaire de maintenir l'adresse et la donnée à écrire stables à l'entrée de la mémoire pendant tout le cycle d'écriture. En conséquence les quatres registres doivent pouvoir garder en mémoire les informations qu'ils contiennent pendant au moins tout le cycle d'écriture, ce qui peut se faire en utilisant des "latchs" ou loquets qui sont destinés à préserver l'information qui se présente de façon temporaire sur le bus o ils sont connectés puisque généralement les données déposées sur un bus sont rapidement modifiées. L'exemple de la figure 2 montre une variante de réali- sation d'un microprocesseur montré à la figure 1. L'exemple de réalisation de la figure 1 fait appel à 2 remarques: - 1 - Les circuits d'accès à la mémoire doivent être com- plexes puisqu'une même cellule peut avoir deux accès simultanés et indépendants et, 2 - La structure permet l'autodestruction d'un programme puisque à un instant donné, l'adresse A1 peut être égale à l'adresse A2 et cette propriété peut être utilisée dans des ap- plications nécessitant la -protection de certaines informations. L'exemple de réalisation de la figure 2 est beaucoup plus sim- ple. Sur la figure 2, la mémoire PROM ou EPROM 101 est parta- gée en 2 mémoires M1 et M2, la mémoire M1 étant adressée par le registre A 102 et la-mémoire M2 étant adressée par le re- gistre A2 103. Le partage de la mémoire 101 en 2 mémoires est la seule caractéristique de l'exemple de réalisation montrée à la figure 2, les autres éléments restant inchangés par rap- port aux éléments montrés à la figure 1. Les tensions de pro- grammation de chaque bloc mémoire M1 et M2 sont indépendantes afin de pouvoir programmer un bloc par un programme situé dans l'autre. Cette structure permet les avantages suivants: Dans la plupart des applications, il est possible de bâ- tir les programmes de façon que le bloc M1 de mémoire contien- ne tous les programmes ou toutes les parties des programmes non évolutives et que le bloc M2 contienne les programmes ou partie de programmes évolutives. Dans ce type d'application, la réalisation de la mémoire M1 peut être faiteà partir d'une "Read Only Memory" ROM,de façon à réduire les coûts de revient et la surface de cette partie de mémoire, dans ce cas, la ten- sion Vpl d'écriture disparaît. Par contre le deuxième bloc est nécessairement réalisé par une mémoire PROM et EPROM. On voit donc dans ce cas que les problèmes d'adressage sont facilement résolus puisqu'un registre d'adresse d'une mémoire ne peut pas adresser un élément mémoire de l'autre mémoire. La figure 3 montre une réalisation complète du micropro- cesseur autoprogrammé selon l'invention. Toutes les unités 2 4 6 130 1 composant le microprocesseur sont organisées autour d'un bus D (BUS D). Comme précédemment l'unité de mémoire 101 est divisée en deux blocs M1 et M2, M1 contenant les parties de programme non évolutives et M2 contenant les parties de programmes évolu- tives. Le bloc M1 est adressé par le registre d'adresse A1 102 qui joue le rôle du compteur ordinal rencontré dans les microprocesseurs classiques. Ce registre d'adresse 102 est asso- cié au registre de données IR 105. Le bloc M2 est adressé par le registre d'adresse A2 103 et est associé au registre de don- nées O 106. Comme dans les exemples précédents, les blocs mé- moires M1 et M2 sont composés de cellules mémoires non volatiles type ROM, PROM, ou EPROM. La tension de programmation PG est fournie à partir de la bascule P 113. Les autres éléments de la figure 3 sont repris à partir de C'uomposant l'architec- ture classique du microordinateur. Le registre PSW 112 est un registre spécialisé (abréviation du terme anglo-saxon "Program Status Word") qui contient toutes les informations nécessaires à l'exécution d'un programme. La mémorisation d'un mot PSW permet de préserver certains états de fonctionnement de micro- processeur, ainsi certains accès à des informations de program- mes internes au microprocesseur seront interdites aux utilisa- teurs du micropro-c-sseurçpardes positions de bit privilégiées à l'intérieur du mot PSW. De façon également classique, le micro- processeur contient une unité arithmétique logique 107 reliée sur ses entrées 1 et 2 à un registre accumulateur 108 et à un registre de mémorisation temporaire 109, ces deux registres étant reliés également par leurs entrées au bus de données (BUS D) ainsi que la sortie 3 de l'unité arithmétique logique 107. Le microprocesseur est aussi constitué par un ensemble de registres 111 du travail de R0 à R7 et de pile adressés par un registre d'adresse RAM 110 dont l'entrée est aussi connectée au bus D. Avec cette architecture,un programme,qui est exécuté dans les sections M1 et M2 de la mémoire 101,ira modifier le contenu d'informations contenues dans la mémoire M2. Plus pré- cisément, si ce programme doit modifier le contenu mémoire à l'adresse 2FOH (soit le 752à mot de la mémoire) par le résultat d'une opération se trouvant dans l'accumulateur, Ce programme pourra ranger préalablement l'adresse 2FO dans les registres de travail R0 et R1. L'autoprogrammation sera obtenue par un sous programme appelé "PROG" rangé dans la mémoire M1. Ce programme devra réaliser toutes les fonctions nécessaires à l'écriture en mémoire, en particulier il devra utiliser des séquences compatibles avec la technologie utilisée. Si les mémoires programmables sont réalisées dans une technologie FAMOS les chronogrammes devront être montrés à figure 4 dans laquelle on a fait apparaître l'é- volution du signal d'horloge, le temps de maintien de la donnée dans le registre D 106 et l'instant de présence du signal PG d'écriture transmis par la bascule P 113. On s'aperçoit que la donnée et l'adresse dans les registres D 106 et A2 103 devront être conservées dans ces registres durant un temps très impor- tant par rapport au cycle microprocesseur, en effet si son temps de cycle est de 5Psl'adressage et la donnée devront restés stables pendant toute la phase d'écriture soit 50 ms. Les phases opératoires du programme PROG sont montrées à la figure 5. A l'étape 500, le contenu de l'accumulateur 108 est chargé dans le registre D 106 ce qui a pour effet d'introduire la donnée ou l'information à modifier dans le registre D. A l'é- tape 501, le contenu des registres RO R1 est transféré dans le registre d'adresse A2 103 ce qui a pour effet l'introduction de l'adresse de la donnée ou de l'information à modifer dans le registre A2 103. A l'étape 502 la bascule P 113 émet le signal PG de commande de l'écriture de la donnée dans la mé- moire M2. A l'étape 503, un compte est déclanché pour contrôler le temps nécessaire à l'écriture de l'information ou de la donnée dans la mémoire M2. Le contrôle a lieu à l'étape 504. D.ans l'exemple on a supposé que ce temps était de 50 ms. A la fin de ce délai, l'écriture est terminée à l'étape 505 et un retour est effectué au programme qui avait appelé le sous-pro- gramme PROG à l'étape 506 en recherchant les informations né- cessaires à ce retour dans les registres de pile. La liste des microinstructions permettant l'exécution du sous-programme PROG peut être la suivante PROG Microinstructions Commentaires MOVD,A Charger l'accumulateur dans D. MOVA,R0 Charger R0 dans l'accu- mulateur 1l1 MOVA2H, A MOVA, R1 MOVA2L, A MOVA,# FFH MOVR1, A MOVA, 28H MOVR2, A MOVA, t 1H OUTLP, A DJNZR1, Compt DJNZR2, Compt CLRA OUTPA RET Charger l'accumulateur dans la partie haute du registre A2 Charger R1 dans A. Chargement des paramè- tres nécessaires au temps de comptage de ms. Commande d'écriture Signal PG. Décrémentation du re- gistre R1. Décrémentation du re- gistre R2. Arrêt d'écriture. L'incidence le déroulement du programme principal consis- te à charger les paramètres nécessaires à l'appel du programme PROG, la liste des microinstructions est alors: MOVA, # 02H 1 MOVRO, A Chargement de l'adresse MOVA, # FOH dans R R MOVR1, A j MOVA, #data Chargement de la donnée à modifier dans l'accu- mulateur A. CALL PROG De ce qui précède, il apparait que les registres A2 et D restent verrouillés pendant toute la phase d'écriture (signal PG) tandis que le bus sert au transfert des instructions néces- saires au déroulement du programme PROG d'écriture. Dans un autre mode de réalisation de l'invention il sera possible de remplacer le programme d'écriture PR0G par un auto- mate d'écriture réalisé entièrement à l'aidede circuits logique L'exemple de réalisation de la figure 6, montre la structure d'un microprocesseur permettant l'autoprogrammation non vola- COMT tile dans laquelle le programme d'écriture PR0G est remplacé par un automate d'écriture 114. Le microprocesseur décrit précédemment réalise la fonction d'autoprogrammation non volatile grâce à l'emploi d'un double accés simultané à la mémoire PR0M ou EPR0M par 4 registres associés 2 à 2 et du programme PROG correspondant. Cette fonction peut être aussi réalisée par simple accès à la mémoire non volatile autopro- grammable à l'aide d'un seul registre d'adresse 102 d'un seul registre de donnée 105 et de l'automate d'écriture 114. L'automate d'écriture est connecté sur le BUS D reliant comme précédemment l'unité de traitement 10.4 au registre d'adresse A 102 et au registre de donnée R 105, il contrôle le verrouil- lage des registres A 102 et R 105 par émission du signal de commande PG d'écriture dans la mémoire 101. Cet automate est commandé par une instruction d'écriture W émise par l'unité de traitement 104. Lorsque le cycle d'écriture dans la mémoire PR0M ou EPR0M 101 est terminé l'automate d'écriture délivre un signal d'acquittement Acq à l'unité de traitement qui re- prend le programme en cours interrompu durant le cycle d'écri- ture. Cet automate permet donc une distribution de la tension d'écriture(signal PG) ne perturbant pas le fonctionnement nor- mal du microprocesseur. Le registre de donnée R 105 est bidi- rectionnel c'est à dire qu'il doit pouvoir contenir des données lues ou à écrire dans la mémoire PR0M. Le registre A 102 est multiplexé sur le BUS D entre l'automate d'écriture 114 et l'unité de traitement 104. En phase de traitement le registre A est chargé par le compteur ordinal de l'unité de traitement 104 et le registre R est utilisé en tant que registre de lecture des instructions et données de la mémoire PR0M 101. En phase d'autoprogrammation, le contrôle est donné par l'unité de traitement à l'automate d'écriture, pour l'émission microcode W. Cet automate génère alors la séquence d'écriture requise compatible avec la technologie de la mémoire PR0M uti-- lisée.Les données o les instructions à modifier sont intro- * duites par le registre R 105. A la fin de la séquence d'écri- ture le contrôle est rendu à l'unité de traitement qui reprend le cours normal du programme ainsi modifié. Le contenu du re- gistre A est alors restauré soit par l'automate d'écriture, soit par l'unité de traitement. 23246130 1 La figure 7 montre un exemple de réalisation de l'auto- mate d'écriture. Sur cette figure les signaux demicrocoded'écr ture 111 sont introduits à l'entrée 1 du décodeur 701 qui émet sur sa sortie 2 un signal de validation VAL à l'entrée 14 du compteur 702 autorisant sa progression au rythme des si- gnaux de cycle H du microprocesseur appliqués sur son entrée15 Si,comme dans l'exemple de la figure a le temps de cycle micro* processeurest de 5 ps et le temps de cycle d'écriture et devra de 50 ms,le compteur/ comprendre 14 basculespour compterles temi de cycle microprocesseur pendant 50 ms, ou encore pendant 000 cycles microprocesseur. Le compteur 702 est associé à un décodeur 703 dont la sortie 14 signale à l'entrée K de la bascule 704 que les 10 000 cycles sont comptés. La sortie Q de la bascule 704 délivre le signal PG de commande d'écriture Cette bascule est mise dans l'état "un" binaire lorsque le si- gnal VAL est présent et est remise à Zéro binaire lorsque la capacité 10 000 de comptage est atteinte. Le signal d'acquit- tement de cycle est émis par l'amplificateur inverseur 705 dont l'entrée est reliée àla sortie Q de la bascule 704. L'exemple qui vient d'être donné d'une réalisation préféré de l'invention n'est nullement limitatif, il est bien évident que l'homme de l'art bien au fait des techniques des microprocesseurs pourra concevoir d'autres modes de réalisa- tion de l'invention sans pour autant sortir de son cadre. 1 3 14 2461301 REVENDICATIONS 1. Microprocesseur à structure monolithique comprenant, reliés par une même ligne de données au moins une mémoire morte programmable, une unité de traitement des informations contenues dans la dite mémoire morte programmable ainsi que des organes transmetteurs ou récepteurs d'informations, caractérisé en ce qu'il comprend, en outre des moyens commandés par l'unité de trai- tement pour écrire des informations à l'intérieur de la dite mé- moire morte programmable. 2. Microprocesseur selon la revendication 1 caractérisé en ce que les moyens permettant l'écriture des données ou d'informa- tions à l'intérieur de la dite mémoire morte programmable compre- nant des moyens d'adressage simultanés, d'une donnée ou d'une information à modifier dans la mémoire morte programmable et d'une séquence d'instruction mémorisée à l'intérieur de la dite mé- moire morte programmable, pour permettre l'écriture dans la dite mémoire morte programmable de la donnée ou de l'information à modifier. 3. Microprocesseur selon la revendication 1 caractérisé en ce que les dits moyens permettant l'adressage simultané se compo- sent d'un premier registre d'adresse pour l'adressage de la donnée ou de l'information à modifier et d'un deuxième registre assurant la progression d'adresse de la dite séquence d'écriture autorisant l'écriture de la donnée modifiée dans la dite mémoire morte programmable. 4. Microprocesseur selon les revendications 1 et 2 caracté- risé en ce que les dits moyens d'adressage simultanés comprennent en outre un premier registre de mémorisation de la donnée à modi- fier et d'un deuxième registre pour contenir les informations ou données nécessaires à l'exécution de la séquence d'écriture de la dite donnée à modifier. 5. Microprocesseur selon les revendications 1 et 2 caracté- risé en ce que les moyens permettant l'écriture des données ou d'informations à l'intérieur de la dite mémoire programmable comprennent en outre un moyen de génération de la tension néces- saire à l'écriture des dites données ou informations dans la dite mémoire morte programmable pendant toute la durée nécessaire à l'écriture des dites données ou informations. 6. Microprocesseur selon la revendication 1 caractérisé en ce que les moyens permettant l'écriture des données ou informa- 246130 1 tions à l'intérieur de la dite mémoire morte programmable compre- nant un automate d'écriture commandé par l'unité de traitement, des registres d'adresse et de donnée associés par le bus de don- nées d'une part à l'unité de traitement et d'autre part à l'auto- mate d'écriture, les dits registres d'adresse et de donnée étant vérouillés chaque fois que l'automate d'écriture est commandé par l'unité de traitement. 7. Microprocesseur selon la revendication 6 caractérisé en ce que chaque fin d'un cycle d'écriture de la mémoire programmable est signalé par un signal d'acquittement de cycle transmis par l'automate d'écriture à l'unité de traitement pour lui permettre la reprise du programme en cours interrompu.