FR 2821456 A1 20020830 FR 0102701 A 20010228 MICROPROCESSEUR A ARCHITECTURE HARVARD AYANT UN ESPACE ADRESSABLE LINEAIRE La présente invention concerne généralement les microprocesseurs et plus particulièrement un microprocesseur utilisant une mémoire non volatile contenant des instructions exécutables d'un programme et une mémoire volatile pour stocker des données utilisées par le programme. A l'heure actuelle, les microprocesseurs peuvent présenter deux architectures de connexion avec les mémoires. Dans la première architecture, appelée Von Neumann, le microprocesseur est connecté à l'ensemble des mémoires par un bus d'adresse et de données unique. Par conséquent, le microprocesseur ne peut accéder à un instant donné, qu'à une seule donnée ou un seul code d'instruction. Pour accélérer l'exécution d'un programme, on a mis au point une seconde architecture, dite Harvard, dans laquelle le microprocesseur peut accéder simultanément à un code d'instruction et à une donnée, lesquels sont à cet effet stockés dans des mémoires différentes. Cette architecture nécessite de prévoir un microprocesseur à deux bus différents, l'un étant dédié à l'accès au programme et connecté à la mémoire contenant le programme, et l'autre étant dédié à l'accès aux données et connecté à la mémoire contenant les données. De cette manière, le microprocesseur peut au cours d'un même cycle d'horloge lire une instruction dans la mémoire programme et effectuer une opération de lecture ou d'écriture d'une donnée dans la mémoire de données. Il en résulte qu'un microprocesseur à architecture Harvard prend moins de cycles d'horloge pour exécuter un programme qu'un microprocesseur à architecture Von Neumann. Toutefois, l'architecture Harvard présente quelques inconvénients notamment en terme de flexibilité de l'utilisation des mémoires connectées au microprocesseur. En effet, cette architecture impose de stocker dans des zones mémoire respectives prédéfinies et distinctes, les instructions du programme et les données non modifiables, incluant les paramètres de fonctionnement, ou qui doivent être stockées de manière non volatile. Cette architecture ne peut pas être utilisée dans le cas d'un microprocesseur connecté à une seule mémoire non volatile et une seule mémoire volatile. En outre, elle ne permet pas de stocker des instructions de programme dans la mémoire volatile, par exemple à des fins de test. Par ailleurs, elle n'autorise pas non plus qu'un programme puisse se modifier lui-même en écrivant dans une mémoire, en tant que données, des codes d'instruction exécutables. La présente invention a pour but de supprimer ces inconvénients en proposant une architecture à deux bus, sans pour autant affecter la linéarité de l'espace adressable par le microprocesseur, que l'on obtient avec une architecture Von Neumann. Cet objectif est atteint par la prévision d'un microprocesseur relié à un premier espace mémoire par l'intermédiaire d'un premier bus, et à un second espace mémoire par l'intermédiaire d'un second bus, et comprenant une unité de traitement munie d'un bus d'accès à des instructions de programme exécutable et d'un bus d'accès à des données, caractérisé en ce qu'il comprend une unité d'interface de bus connectée d'un côté au bus d'accès aux instructions de programme et au bus d'accès aux données, et de l'autre au premier et au second bus, l'unité d'interface comprenant des premiers moyens de commutation pour relier le bus d'accès au programme soit au premier bus, soit au second bus, en fonction d'une requête d'accès au programme, émise par l'unité de traitement, et des seconds moyens de commutation, pour relier le bus d'accès aux données soit au premier bus, soit au second bus, en fonction d'une requête d'accès aux données, émise par l'unité de traitement. Avantageusement, les premiers moyens de commutation sont indépendants des seconds moyens de commutation, l'unité d'interface comprenant en outre des moyens de contrôle d'accès conçus pour gérer des conflits d'accès qui se produisent lorsque l'unité de traitement émet en même temps une requête d'accès à une donnée et une requête d'accès à une instruction de programme, qui concernent le même espace mémoire. Selon une particularité de l'invention, les moyens de contrôle d'accès sont conçus pour donner la priorité à une requête d'accès à une donnée, lorsqu'il se produit un conflit d'accès aux espaces mémoire. De préférence, les moyens de contrôle d'accès sont conçus pour autoriser l'accès simultané à une instruction de programme dans l'un des deux espaces mémoire et une donnée dans l'autre des deux espaces mémoire. Également de préférence, les moyens de contrôle d'accès comprennent des moyens pour interdire l'accès de l'unité de traitement à une instruction de programme à la suite de l'émission par l'unité de traitement de requêtes d'accès simultanées à une instruction et une donnée dans le même espace mémoire. Avantageusement, les moyens de contrôle d'accès comprennent des moyens pour autoriser l'accès de l'unité de traitement à un espace mémoire uniquement pendant une durée où l'espace mémoire autorise son accès. Selon une autre particularité de l'invention, le microprocesseur est connecté à un décodeur d'adresse d'instruction de programme et un décodeur d'adresse de donnée, qui sont conçus pour générer des signaux de sélection en fonction des adresses figurant sur les bus d'accès au programme et aux données, et en fonction des requêtes d'accès émises par l'unité de traitement, ces signaux de sélection étant appliqués en entrée de l'unité d'interface et comprenant deux signaux de sélection indiquant une requête d'accès à une instruction de programme respectivement dans le premier et le second espace mémoire, et deux signaux de sélection indiquant une requête d'accès à une donnée respectivement dans le premier et le second espace mémoire. De préférence, le microprocesseur comprend des moyens de commande pour commander les premiers moyens de commutation de manière à connecter le bus d'accès au programme au premier ou au second bus, lorsque les signaux de sélection indiquent une requête d'accès à une instruction de programme, dans l'espace mémoire respectif, et pas de requête simultanée à une donnée dans celui-ci. Avantageusement, le microprocesseur comprend des moyens de commande pour commander les seconds moyens de commutation de manière à connecter le bus d'accès aux données, au premier bus ou au second bus, lorsque les signaux de sélection indiquent une requête d'accès à une donnée, dans l'espace mémoire correspondant. Selon encore une autre particularité de l'invention le premier espace mémoire comprend une mémoire non volatile, et le second espace mémoire comprend une mémoire volatile. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un microprocesseur, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 représente d'une manière schématique l'architecture d'un microprocesseur selon l'invention, connecté à une mémoire programme et une mémoire de données ; - la figure 2 représente le circuit d'un composant de l'architecture montrée sur la figure 1 ; - les figures 3 et 4 représentent des circuits de respectivement deux composants du circuit montrés sur la figure 2 ; Les figures 5a à Sd représentent des circuits de variantes de réalisation d'un composant de l'architecture montrée sur la figure 1 ; La figure 6 représente le circuit d'un composant de l'architecture montrée sur la figure 1 ; - la figure 7 illustre sous la forme de chronogrammes différents signaux utilisés dans l'architecture représentée sur la figure 1. Le microprocesseur 1 montré sur la figure 1 présente une architecture Harvard. A cet effet, il comprend d'une manière classique une unité de traitement 2 comportant une interface d'accès au programme et une interface d'accès aux données. L'interface d'accès au programme comprend : - un port de sortie compteur de programme PC donnant l'adresse de l'instruction à exécuter, - un port d'entrée de bus d'instruction INS, - une sortie de requête d'instruction de programme NPR qui est à l'état actif pendant un cycle d'horloge lorsqu'une instruction ou une opérande d'instruction doit être lue, - une entrée correspondante d'acceptation d'instruction de programme NPA qui doit être générée lorsque l'instruction ou l'opérande est lue dans la mémoire, L'interface d'accès aux données comprend : - un port de sortie d'adresse A donnant l'adresse mémoire d'une donnée à accéder, - un port d'entrée de données DBI, - un port de sortie de données DBO, - une sortie de mode d'accès en lecture ou écriture RW indiquant si l'adresse fournie par le port A est à accéder en lecture ou en écriture, - une sortie de requête de donnée NDR qui est à l'état actif pendant un cycle d'horloge lorsqu'une opération de lecture ou d'écriture doit être effectuée, et - une entrée correspondante d'acceptation de donnée NDA qui doit être activée lorsqu'une opération d'accès à une donnée est effectuée par la mémoire. Conformément à l'architecture Harvard, le microprocesseur 1 est connecté d'un côté à une mémoire programme 4 et un décodeur d'adresse 6 de mémoire programme, et de l'autre côté, à une mémoire de données 5 et un décodeur d'adresse 7 de mémoire de données. La mémoire programme 4 est non volatile, par exemple de type ROM, E2PROM ou Flash, tandis que la mémoire de données 5 est de type volatile, par exemple de type RAM. Le port PC et la sortie NPR de l'unité de traitement 2 sont connectés au décodeur d'adresse 6, tandis que le port d'adresse A et la sortie NDR de l'unité de traitement 2 sont connectés au décodeur d'adresse 7. Selon l'invention, le microprocesseur 1 comprend une unité d'interface 3 connectée entre l'unité de traitement 2 d'une part, et d'autre part les mémoires 4, 5, cette unité d'interface étant conçue pour assurer un accès linéaire à l'espace mémoire adressable par le microprocesseur 1. En outre, les décodeurs d'adresse 6,7 sont conçus pour fournir différents signaux de sélection de mode d'accès des mémoires programme et de données 4, 5. En particulier, le décodeur d'adresse 6 de mémoire programme délivre un signal de sélection NPPSEL indiquant une demande d'accès à une instruction ou opérande dans la mémoire programme 4, et un signal de sélection NPDSEL indiquant une demande d'accès à une instruction ou opérande dans la mémoire de données 5. Le décodeur d'adresse 7 de mémoire de données 5 délivre un signal de sélection NDDSEL indiquant un accès à une donnée dans la mémoire de données 5, et un signal de sélection NDPSEL indiquant un accès à une donnée dans la mémoire programme 4. Les signaux de sélection sont générés par les décodeurs d'adresse 6,7 uniquement selon que l'adresse figurant sur le bus A ou PC correspond à une adresse de la mémoire 4 ou de la mémoire 5. En outre, les signaux NPR et NDR permettent respectivement d'activer les décodeurs 6,7, lorsqu'ils sont à l'état actif. Sur la figure 1, l'unité d'interface 3 comprend une unité de contrôle d'accès 12 au programme, connectée à l'entrée NPA de l'unité de traitement 2, une unité de contrôle d'accès 13 aux données, connectée à l'entrée NDA, et un multiplexeur de bus 11 connecté entre l'unité de traitement 2 et les mémoires 4,5. Par ailleurs, le port de sortie de données DBO de l'unité de traitement (2) est connecté simultanément, via des sorties DOP et DOD respectives de l'unité d'interface 3, aux ports d'entrée DI de donnée des mémoires 4 et 5. Plus précisément, le multiplexeur de bus 11 est relié aux ports PC, A, DBI et INS, ainsi qu'à la sortie RW de l'unité de traitement. Il comprend deux interfaces de connexion identiques pour se connecter respectivement aux deux mémoires 4,5. Chacune de ces interfaces comprend un port de sortie AP, AD destiné à être connecté au port d'entrée d'adresse AD de la mémoire 4,5, un port d'entrée de donnée DIP, DID destiné à être connecté au port de sortie de donnée DO de la mémoire 4,5, une sortie de mode d'accès RWP, RWD connectée à l'entrée correspondante RW de la mémoire, et une sortie de sélection de composant NCSP, NCSD connectée à l'entrée correspondante CSN de la mémoire 4,5. En outre, les quatre signaux de sélection NPPSEL, NPDSEL, NDDSEL et NDPSEL sont appliqués en entrée du multiplexeur 11 et de l'unité de contrôle d'accès 12 au programme, tandis que seuls les signaux NDDSEL et NDPSEL relatifs aux accès à la mémoire de données 5 sont appliqués en entrée de l'unité de contrôle d'accès 13 à aux données. Les unités de contrôle d'accès 12, 13 reçoivent en outre respectivement les signaux NPR et NDR issus de l'unité de traitement 2. Dans la description qui suit, tous les signaux mentionnés ci-dessus sont par exemple actifs à l'état bas (niveau logique 0). Sur la figure 2, le multiplexeur Il comprend une unité de contrôle de bus 21 qui reçoit en entrée les quatre signaux de sélection NPPSEL, NPDSEL, NDDSEL et NDPSEL et délivre en sortie les signaux de sélection de composant NCSP, NCSD, et deux signaux de commande CMD25, CMD26 respectifs de deux multiplexeurs 25,26 à deux entrées 0 et 1 et une sortie. Ces deux multiplexeurs 25, 26 reçoivent en entrée les adresses provenant des ports PC et A de l'unité de traitement 2, et suivant la valeur de leurs signaux de commande respectifs CMD25, CMD26, appliquent sur les ports de sortie d'adresse AP, AD du multiplexeur de bus 11, l'adresse provenant soit du port PC, soit du port A. Les signaux NPDSEL et NDPSEL de sélection indiquant une donnée dans la mémoire programme ou d'une instruction dans la mémoire de données, sont appliqués en tant que signaux de commande respectivement à deux multiplexeurs 23,24 auxquels sont appliqués en entrée les données lues dans les mémoires 4,5 et provenant des ports d'entrée DIP et DID du multiplexeur 11. Les sorties de ces multiplexeurs sont connectées respectivement aux ports de sortie INS et DBO du multiplexeur de bus 11, de manière à orienter vers ces ports, l'entrée de donnée provenant soit de la mémoire programme 4, soit de la mémoire de données 5. De cette, manière, lors d'un accès à une donnée dans la mémoire programme (NDPSEL = 0), le port DIP relié au port de sortie de donnée DO de la mémoire programme est relié au port de sortie de donnée DBO du multiplexeur 11. Pour les autres types d'accès, c'est le port DID qui est relié au port de sortie de donnée DBO du multiplexeur 11. De même, lors d'un accès à une instruction dans la mémoire de données 4 (NPDSEL = 0), le port DID du multiplexeur 11 est relié au port de sortie d'instruction INS de celui-ci. Dans le cas contraire, c'est le port DIP du multiplexeur 11 qui est connecté au port de sortie INS. En outre, le multiplexeur de bus 11 comprend un démultiplexeur de signal 27 pour orienter le signal RW provenant de l'unité de traitement 2 soit vers la mémoire de programme 4 au travers de la sortie RWP, soit vers la mémoire de données 5 au travers de la sortie RWD, en fonction des signaux de sélection NDPSEL et NDDSEL relatifs à l'accès à une donnée dans la mémoire programme ou dans la mémoire de données. Sur la figure 3, l'unité de contrôle de bus 21 comprend par exemple trois portes logiques ET 31,32, 33. La porte 31 reçoit en entrée les signaux de sélection NPPSEL et NDPSEL et délivre en sortie le signal NCSP. De même, la porte 33 reçoit en entrée les signaux de sélection NPDSEL et NDDSEL et délivre en sortie le signal NCSP. De cette manière, les signaux NCSP et NCSD sont liés aux signaux de sélection par les relations suivantes : NCSD = NPDSEL ET NDDSEL, et NCSP = NPPSEL ET NDPSEL. (1) La troisième porte ET 33 comprend une entrée inversée sur laquelle est appliqué le signal de sélection NPDSEL et une entrée directe sur laquelle est appliqué le signal NDDSEL, la sortie de cette porte fournissant le signal CMD26 de commande du multiplexeur 26 montré sur la figure 2. De cette manière, l'entrée 1 du multiplexeur 26, c'est-à-dire le bus PC, est sélectionnée pour définir l'adresse d'accès à la mémoire de données 5 si les signaux de sélection NDDSEL et NPDSEL satisfont la condition suivante : NPDSEL = 0 AND NDDSEL = 1 (2) Dans le cas contraire, c'est le bus A qui est relié au port d'adresse AD de la mémoire de données 5. Le circuit 21 fournit également le signal de commande CMD25 du multiplexeur 25, ce signal de commande correspondant au signal NDPSEL, de sorte que le port d'adresse AD de la mémoire de données 5 est relié au bus d'adresse A si le signal NDPSEL = 1 et au bus PC dans le cas contraire. La figure 4 montre un exemple de réalisation du circuit de multiplexeur de signal 27. Ce circuit comprend deux multiplexeurs 36 et 37, à deux entrées 0,1, dont l'entrée 0 reçoit le signal RW issu de l'unité de traitement 2, et l'entrée 1 les signaux de sélection NDPSEL et NDDSEL respectivement. L'entrée de commande du de chaque multiplexeur 36,37 est en outre rebouclée sur l'entrée 1. De cette manière, le signal RW en entrée est appliqué sur la sortie RWP de l'interface 11, c'est-àdire sur l'entrée RW de la mémoire programme, si NDPSEL = 0, et sur la sortie RWD de l'interface 11, c'est-à-dire sur l'entrée RW de la mémoire de données 5, si NDDSEL = 0. Dans le cas contraire, les sorties RWP et RWD sont forcées à 1. La figure 5a représente un premier mode de réalisation de l'unité de contrôle d'accès 12 au programme. Sur cette figure, l'unité de contrôle d'accès 12 comprend deux portes logiques ET 45,46 dont les entrées sont inversées. La première porte 45 reçoit en entrée les signaux de sélection NDDSEL et NPDSEL, tandis que la seconde porte 46 reçoit les signaux de sélection NDPSEL et NPPSEL. Les sorties de ces deux portes sont connectées à une porte OU 47 dont la sortie est reliée à l'entrée de commande et l'entrée 1 d'un multiplexeur 48 à deux entrées 0,1, la sortie de ce multiplexeur fournissant le signal NPA qui est appliqué en entrée de l'unité de traitement 2, et l'entrée 0 du multiplexeur recevant le signal NPR issu de l'unité de traitement. Ainsi, le signal NPA est égal à 1 (accès de l'unité de traitement au programme bloqué) lorsque la condition suivante est réalisée : (NDPSEL = 0 ET NPPSEL = 0) OU (NDDSEL = 0 ET NPDSEL = 0) (3) et est égal au signal NPR dans le cas contraire. La figure Sb représente un second mode de réalisation de l'unité de contrôle d'accès 12 qui peut être utilisé lorsque la mémoire programme 4 présente une sortie ACKN de signal d'acquittement NPMA d'une requête d'accès. A l'état haut, ce signal indique qu'aucun accès avec la mémoire n'est en cours. Si ce signal d'acquittement NPMA existe, il est appliqué en entrée de l'unité de contrôle d'accès 12. Le circuit représenté sur cette figure correspond au circuit représenté sur la figure Sa, à la différence qu'il comprend un second multiplexeur 49 à deux entrées 0,1, qui est interposé entre l'entrée du signal NPR et l'entrée 0 du multiplexeur 48, le signal NPR étant appliqué sur l'entrée 1 de ce multiplexeur 49 et le signal NPMA étant appliqué sur l'entrée 0 de celui-ci. En outre, le multiplexeur 49 est commandé par le signal de sélection NPPSEL. De cette manière, dans le cas où la condition (3) n'est pas réalisée, l'unité de contrôle d'accès 12 délivre en sortie le signal NPMA si le signal de sélection NPPSEL est à 0 et le signal NPR dans le cas contraire. La figure 5c représente un troisième mode de réalisation de l'unité de contrôle d'accès 12 qui peut être utilisé lorsque seule la mémoire de données 5 présente une sortie ACKN de signal d'acquittement NDMA. Dans ce cas, ce signal d'acquittement est appliqué en entrée de l'unité de contrôle d'accès 12. Le circuit représenté sur cette figure correspond au circuit représenté sur la figure 5b, à la différence que le signal NDMA est appliqué à l'entrée 0 du multiplexeur 49 à la place du signal NPMA, et le multiplexeur 49 est commandé par le signal de sélection NPDSEL au lieu du signal NPPSEL. De cette manière, dans le cas où la condition (3) n'est pas réalisée, l'unité de contrôle d'accès 12 délivre en sortie le signal NDMA si le signal de sélection NPDSEL est à 0, et le signal NPR dans le cas contraire. La figure 5d représente un quatrième mode de réalisation de l'unité de contrôle d'accès 12 qui peut être utilisé lorsque les deux mémoires 4,5 présentent une sortie ACKN de signal d'acquittement NDMA et NPMA, respectivement. Dans ce cas, les deux signaux d'acquittement sont appliqués en entrée de l'unité de contrôle d'accès 12. Le circuit représenté sur cette figure correspond au circuit représenté sur la figure 5c, à la différence qu'il comprend un troisième multiplexeur 50 à deux entrées 0,1, interposé entre l'entrée 1 du multiplexeur 49 et l'entrée du signal NPR qui est reliée à l'entrée 1 du multiplexeur 50 dont l'entrée 0 reçoit le signal NPMA, et l'entrée de commande le signal NPPSEL. De cette manière, dans le cas où la condition (3) n'est pas réalisée, l'unité de contrôle d'accès 12 délivre en sortie le signal NPMA si le signal de sélection NPPSEL est à 0, le signal NDMA si le signal de sélection NPDSEL est à 0, et le signal NPR dans le cas contraire. Dans le cas où les mémoires 4 et 5 ne délivrent pas de signaux NPMA et NDMA, l'unité de contrôle 13 applique sur l'entrée NDA de l'unité de traitement 2, le signal NDR issu de cette dernière. Dans le cas où seule la mémoire programme 4 délivre un tel signal NPMA, l'entrée NDA reçoit le signal NPMA si le signal de sélection NDDSEL = 0 et le signal NDR dans le cas contraire. Une telle fonction est réalisable à l'aide d'un unique multiplexeur dont l'entrée de commande reçoit le signal NDDSEL, l'entrée 0 reçoit le signal NPMA et l'entrée 1 le signal NDR. De même, dans le cas où seule la mémoire de données 5 délivre un tel signal NDMA, l'entrée NDA reçoit le signal NDMA si le signal de sélection NDPSEL = 0 et le signal NDR dans le cas contraire. Dans le cas où les deux signaux NPMA et NDMA sont disponibles, l'unité de contrôle d'accès 13 peut être réalisée de la manière représentée sur la figure 6. Sur cette figure, l'unité de contrôle 13 comprend deux multiplexeurs 61 et 62 à deux entrées 0,1. Le multiplexeur 61 reçoit le signal NPMA sur son entrée 0, le signal NDR sur son entrée 1 et le signal NDDSEL sur son entrée de commande. La sortie de ce multiplexeur 61 est reliée à l'entrée 1 du second multiplexeur 62 dont l'entrée 0 reçoit le signal NDMA, l'entrée de commande le signal NDPSEL et la sortie fournit le signal NDA qui est appliqué en entrée de l'unité de traitement 2. Ainsi, le signal NDA vaut NDMA si NDDSEL = 0, NPMA si NDPSEL = 0 et NDR dans le cas contraire. La figure 7 illustre la fonction de l'unité d'interface 3, à l'aide de chronogrammes des différents signaux mentionnés ci-avant, en synchronisme avec le signal d'horloge CK du microprocesseur 1. Ces signaux sont à l'état actif lorsqu'ils sont au niveau logique 0. La phase 71 représentée sur cette figure correspond à un accès étendu à la mémoire de données 4. Un tel accès se produit lorsque l'unité de traitement 2 délivre un signal NDR à l'état actif pendant 2 cycles d'horloge, c'est-à-dire avec un cycle d'attente W. Dans ce cas, le signal NDDSEL qui est généré par le décodeur d'adresse 7 correspond au signal NDR, et le signal NDMA qui est généré par la mémoire 5 est à l'état actif seulement durant le second cycle où le signal NDR est actif. Il en résulte que durant la phase 71, le signal NDA est à l'état actif uniquement pendant le second cycle où a lieu l'accès à la mémoire 5. La phase 72 illustre le cas d'un accès standard, simultané aux mémoires 4,5, une donnée étant accédée dans la mémoire de données 5 et une instruction ou une opérande étant lue dans la mémoire programme 4. Dans ce cas, l'unité de traitement émet des requêtes d'accès aux deux mémoires (NPR et NDR à l'état actif). En réponse, et à l'aide des adresses mémoire à accéder, les décodeurs d'adresse 6,7 placent les signaux de sélection NPPSEL et NDDSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active les mémoires 4,5 à l'aide des signaux NCSP et NCSD. Les signaux NDMA et NPMA passent alors également à l'état actif, et l'unité de contrôle d'accès 12 applique le signal NPMA sur l'entrée NPA de l'unité de traitement 2 qui est alors autorisée à effectuer la lecture d'une instruction ou opérande dans la mémoire programme 4. Pendant ce temps, l'unité de contrôle d'accès 13 applique le signal NPMA sur l'entrée NDA de l'unité de traitement 2 qui est ainsi autorisée à effectuer un accès à une donnée dans la mémoire programme 4. Cette phase montre que l'unité de traitement 2 peut accéder simultanément aux mémoires 4 et 5 durant un seul cycle d'horloge, pour lire une instruction dans la mémoire programme 4 et une donnée dans la mémoire de données 5. Durant la phase 73, l'unité de traitement 2 effectue un accès à la mémoire programme 4 pour accéder à une donnée. A cet effet, elle place sa sortie NDR à l'état actif. En réponse, et à l'aide de l'adresse mémoire à accéder, le décodeur d'adresse 7 place le signal de sélection NDPSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active la mémoire 4 à l'aide du signal NCSP. Le signal NPMA passe alors également à l'état actif et l'unité de contrôle d'accès 12 applique le signal NDMA sur l'entrée NPA de l'unité de traitement 2 qui est ainsi autorisée à accéder à une donnée dans la mémoire programme 4. Durant la phase 74, l'unité de traitement 2 effectue un accès à la mémoire de données 5 pour lire une instruction de programme ou une opérande. A cet effet, elle place sa sortie NPR à l'état actif. En réponse, et à l'aide de l'adresse mémoire à accéder, le décodeur d'adresse 6 place le signal de sélection NPDSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active la mémoire 5 à l'aide du signal NCSD. Le signal NDMA passe alors également à l'état actif et l'unité de contrôle d'accès 12 applique le signal NDMA sur l'entrée NPA de l'unité de traitement 2 qui est ainsi autorisée à effectuer la lecture d'une instruction dans la mémoire de données 5. Dans les deux phases précédentes, aucun conflit d'accès aux mémoires n'est apparu, et donc l'opération d'accès de l'unité de traitement est effectuée en un seul cycle d'horloge. Il en résulte que contrairement à l'architecture Harvard de l'art antérieur, les données et le programme sont accessibles dans tout l'espace mémoire adressable par le microprocesseur, et ce sans introduire des cycles de traitement supplémentaire. La phase 75 illustre le cas inverse de la phase 72, où l'unité de traitement émet simultanément une requête d'accès à une donnée dans la mémoire programme 4 et requête de lecture d'une instruction ou opérande dans la mémoire de données 5. Les signaux NPR et NDR passent donc à l'état actif en même temps. Dans ce cas, les décodeurs d'adresse 6,7 placent les signaux NDPSEL et NPDSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active les mémoires 4,5 à l'aide des signaux NCSP et NCSD. Les signaux NDMA et NPMA passent alors également à l'état actif et l'unité de contrôle d'accès 12 applique le signal NDMA sur l'entrée NPA de l'unité de traitement 2 qui est alors autorisée à effectuer la lecture d'une instruction ou opérande dans la mémoire de données 5. Pendant ce temps, l'unité de contrôle d'accès 13 applique le signal NPMA sur l'entrée NDA de l'unité de traitement 2 qui est ainsi autorisée à effectuer un accès à une donnée dans la mémoire programme 4. Cette phase montre que, dans ce cas également, un accès simultané aux deux mémoires 4 et 5 durant un seul cycle d'horloge (signaux NPA et NDA actifs en même temps), peut être effectué sans conflit, ce qui n'était pas le cas des architectures antérieures. Durant la phase 76, l'unité de traitement 2 cherche à accéder à la mémoire programme 4 pour lire à la fois une instruction ou opérande, et une donnée. Les signaux NPR et NDR passent donc à l'état actif en même temps. Il en résulte que les signaux NDPSEL et NPPSEL passent également à l'état actif en même temps, de même que le signal NCSP issu du contrôleur de bus 21, et donc le signal NPMA issu de la mémoire programme 4. Durant un premier cycle où les signaux NDR et NPR sont actifs, l'entrée NDA reçoit le signal NPMA (NDPSEL = 0) et le signal NPA est forcé à 1 (inactif). Par conséquent, l'accès à la donnée en mémoire programme est effectué, tandis que la lecture de l'instruction est interdite, ce qui entraîne l'introduction d'un cycle d'attente W pour la lecture de l'instruction. A la fin du cycle d'accès à la donnée, le signal NDR repasse à l'état inactif, ce qui fait repasser les signaux NDPSEL et NDA à l'état inactif, le signal NDR étant appliqué dans ce cas à l'entrée NDA par l'unité de contrôle 13. Il en résulte que pendant le second cycle, le signal NPA passe à l'état actif (= NPMA), ce qui autorise la lecture demandée d'une instruction dans la mémoire programme 4. La phase 77 illustre le cas de deux accès simultanés à la mémoire de données 5 pour lire une instruction, et accéder à une donnée. Ici encore les signaux NPR et NDR sont placés à l'état actif en même temps par l'unité de traitement 2. Il en résulte que les signaux NDDSEL et NPDSEL passent également à l'état actif en même temps, de même que le signal NCSD issu du contrôleur de bus 21, et donc le signal NDMA issu de la mémoire de données 5. Durant un premier cycle où les signaux NDR et NPR sont actifs, l'entrée NDA reçoit le signal NPMA (NDPSEL = 0) et le signal NPA est forcé à 1 (inactif). Par conséquent, l'accès à la donnée en mémoire programme est effectué, tandis que la lecture de l'instruction est interdite, ce qui entraîne également l'introduction d'un cycle d'attente W. A la fin du cycle d'accès à la donnée, le signal NDR repasse à l'état inactif, ce qui fait repasser les signaux NDPSEL et NDA à l'état inactif. Pendant le second cycle, le signal NPA passe à l'état actif (= NDMA) et autorise la lecture demandée d'une instruction dans la mémoire de données 5. Par conséquent, deux demandes d'accès simultanées à la même mémoire, programme ou de données, sont exécutées en deux cycles d'horloge. Il est à noter que l'accès à la donnée est effectué en premier, ce qui est conforme au mode de fonctionnement des microprocesseurs dans lequel l'accès à une donnée résulte de l'exécution d'une instruction lue précédemment. Il est en effet préférable de terminer l'exécution d'une instruction, précédente avant de lire l'instruction suivante. Grâce à une unité d'interface réalisable par un circuit logique relativement simple, l'invention permet donc d'obtenir un accès indifférencié au programme et aux données, ceux-ci étant répartis d'une manière quelconque dans deux espaces mémoire accessibles simultanément par l'unité de traitement au moyen de deux bus respectifs. REVENDICATIONS 1. Microprocesseur relié à un premier espace mémoire (4) par l'intermédiaire d'un premier bus (AP, DIP, DOP, RWP), et à un second espace mémoire (5) par l'intermédiaire d'un second bus (AD, DID, DOD, RWD), et comprenant une unité de traitement (2) munie d'un bus d'accès (PC, INS) à des instructions de programme exécutable et d'un bus d'accès (A, DBO, DBI, RW) à des données, caractérisé en ce qu'il comprend une unité d'interface (3) de bus connectée d'un côté au bus d'accès (PC, INS) aux instructions de programme et au bus d'accès (A, DBO, DBI, RW) aux données, et de l'autre au premier (AP, DIP, DOP, RWP) et au second bus (AD, DID, DOP, RWD), l'unité d'interface (3) comprenant des premiers moyens de commutation (23,25, 26) pour relier le bus d'accès au programme soit au premier bus, soit au second bus, en fonction d'une requête d'accès (NPR) au programme, émise par l'unité de traitement (2), et des seconds moyens de commutation (24,25, 26,27), pour relier le bus d'accès aux données soit au premier bus, soit au second bus, en fonction d'une requête d'accès (NDR) aux données, émise par l'unité de traitement. 2. Microprocesseur selon la revendication l, caractérisé en ce que les premiers moyens de commutation (23,25, 26) sont indépendants des seconds moyens de commutation (24,25, 26,27), l'unité d'interface (3) comprenant en outre des moyens (12,13) de contrôle d'accès conçus pour gérer des conflits d'accès qui se produisent lorsque l'unité de traitement (2) émet en même temps une requête d'accès à une donnée et une requête d'accès à une instruction de programme, qui concernent le même espace mémoire (3,4). 3. Microprocesseur selon la revendication 2, caractérisé en ce que les moyens de contrôle d'accès (12, 13) sont conçus pour donner la priorité à une requête d'accès à une donnée, lorsqu'il se produit un conflit d'accès aux espaces mémoire (3,4). 4. Microprocesseur selon la revendication 2 ou 3, caractérisé en ce que les moyens de contrôle d'accès (12, 13) sont conçus pour autoriser l'accès simultané à une instruction de programme dans l'un des deux espaces mémoire (3,4) et une donnée dans l'autre des deux espaces mémoire. 5. Microprocesseur selon l'une quelconque des revendications 2 à 4, caractérisé en ce que les moyens de contrôle d'accès (12,13) comprennent des moyens (45 à 48) pour interdire l'accès de l'unité de traitement (2) à une instruction de programme à la suite de l'émission par l'unité de traitement de requêtes d'accès simultanées à une instruction et une donnée dans le même espace mémoire (3,4). 6. Microprocesseur selon l'une quelconque des revendications 2 à 5, caractérisé en ce que les moyens de contrôle d'accès (12,13) comprennent des moyens (49,50 61,62) pour autoriser l'accès de l'unité de traitement à un espace mémoire (3,4) uniquement pendant une durée où l'espace mémoire autorise son accès. 7. Microprocesseur selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il est connecté à un décodeur d'adresse (6) d'instruction de programme et un décodeur d'adresse (7) de donnée, qui sont conçus pour générer des signaux de sélection (NPPSEL, NPDSEL, NDPSEL, NDDSEL) en fonction des adresses figurant sur les bus d'accès au programme (PC, INS) et aux données (A, DBO, DBI, RW), et en fonction des requêtes d'accès (NPR, NDR) émises par l'unité de traitement (2), ces signaux de sélection étant appliqués en entrée de l'unité d'interface (3) et comprenant deux signaux de sélection (NPPSEL, NPDSEL) indiquant une requête d'accès à une instruction de programme respectivement dans le premier (4) et le second espace mémoire (5), et deux signaux de sélection (NDDSEL, NDPSEL) indiquant une requête d'accès à une donnée respectivement dans le premier (4) et le second espace mémoire (5). 8. Microprocesseur selon la revendication 7, caractérisé en ce qu'il comprend des moyens de commande pour commander les premiers moyens de commutation (23, 25,26) de manière à connecter le bus d'accès (PC, INS) au programme au premier ou au second bus, lorsque les signaux de sélection (NPPSEL, NDPSEL, NPDSEL, NDPSEL) indiquent une requête d'accès à une instruction de programme, dans l'espace mémoire (4,5) respectif, et pas de requête simultanée à une donnée dans celui-ci. 9. Microprocesseur selon la revendication 7 ou 8, caractérisé en ce qu'il comprend des moyens de commande pour commander les seconds moyens de commutation (24 à 27) de manière à connecter le bus d'accès (A, DBO, DBI, RW) aux données, au premier bus ou au second bus, lorsque les signaux de sélection (NPPSEL, NDPSEL, NPDSEL, NDPSEL) indiquent une requête d'accès à une donnée, dans l'espace mémoire (4,5) correspondant. 10. Microprocesseur selon l'une quelconque des revendications 1 à 9, caractérisé en ce que le premier espace mémoire (4) comprend une mémoire non volatile, et le second espace mémoire (5) comprend une mémoire volatile.