Brevet FR2769727A1 — publié le 19990416

Procédé et système de contrôle d'accès partagés à une mémoire vive. L'invention concerne le contrôle d'accès partagés à une mémoire vive par plusieurs entités pouvant fonctionner de façon complètement asynchrone. L'invention s'applique avantageusement mais non limitativement au domaine de la télévision. En effet, dans une telle application, les données affichées sur l'écran du téléviseur sont délivrées par un contrôleur d'écran après lecture d'une mémoire vive dont le contenu est le résultat d'un traitement logiciel effectué par un microprocesseur. Or, les signaux d'horloge cadençant respectivement le contrôleur d'écran et le microprocesseur sont totalement asynchrones en fréquence et en phase et chacune de ces deux entités peut être susceptible de vouloir accéder à la mémoire à un même instant. Une solution pour résoudre de tels accès partagés consiste à utiliser des mémoires dites "double accès", c'est-à-dire pour lesquelles deux entités sont capables aussi bien de lire ou d'écrire simultanément ou non dans chacune des cellules ou points mémoire de la mémoire. Or, une telle solution nécessite l'utilisation de mémoires de structure complexe et peut conduire à des dysfonctionnements dans certains cas spécifiques, en particulier lorsque l'une des entités souhaite écrire dans un pointmémoire alors que quasi sumultanément, l'autre entité souhaite lire ledit point- mémoire. L'invention vise à apporter une solution radicalement différente au contrôle d'accès partagés à une même mémoire. Ainsi, l'invention propose l'utilisation d'une mémoire vive simple accès, dont le partage n'est pas physique par différents accès (comme dans les mémoires double accès) mais temporel. Plus précisément, on effectue un partage temporel des demandes d'accès à la mémoire, et les accès partagés à la mémoire sont gérés par un séquenceur qui va segmenter le temps en fenêtres d'accès réservées de façon spécifique à chacune des entités utilisatrices de la mémoire. Le séquenceur est rythmé par une horloge choisie en fonction des priorités des différentes entités. Le signal d'horloge interne de l'entité la plus prioritaire sera celui qui rythmera le séquenceur. Enfin, une entité non prioritaire, ou auxiliaire, devra, à chacune de ses demandes d'accès, attendre que vienne sa prochaine fenêtre d'accès afin de lire ou stocker les données en cours de traitement. En d'autres termes, telle que revendiquée, l'invention propose un procédé de contrôle d'accès partagés à une mémoire vive, dans lequel plusieurs entités périphériques cadencées respectivement par leur propre signal d'horloge interne, sont susceptibles d'accéder à ladite mémoire. Selon une caractéristique générale de l'invention, la mémoire vive est une mémoire simple accès, c'est-à-dire à accès unique, et on définit une entité prioritaire parmi l'ensemble des entités périphériques, les autres entités étant définies comme étant des entités auxiliaires. On élabore une trame temporelle répétitive, rythmée par le signal d'horloge interne de l'entité prioritaire, cette trame étant subdivisée en fenêtres temporelles formant plusieurs groupes de fenêtres respectivement alloués aux entités périphériques. Et on autorise chaque entité périphérique à accéder à ladite mémoire uniquement au cours des fenêtres qui lui sont allouées. Ainsi, dans une application de télévision, l'entité prioritaire sera avantageusement le contrôleur d'écran. Certaines entités périphériques auxiliaires peuvent être de simples échantillonneurs de données. D'autres entités auxiliaires peuvent comporter une unité centrale de microprocesseur et des moyens d'entrée/sortie reliés à ladite mémoire et aptes à contenir une donnée devant être écrite dans la mémoire ou une donnée extraite de la mémoire et devant être lue par l'unité centrale. Dans ce cas, selon un mode de mise en oeuvre du procédé selon l'invention, en présence d'un signal de requête d'accès à la mémoire émis par l'unité centrale au cours d'une fenêtre temporelle qui ne lui est pas allouée, on valide la donnée présente dans les moyens d'entrée/sortie au cours de la prochaine fenêtre temporelle allouée à ladite unité centrale et on gèle le fonctionnement interne de l'unité centrale jusqu'à ladite validation. L'invention a également pour objet un système de contrôle d'accès partagés à une mémoire vive. Selon une caractéristique générale de l'invention, ce système comprend: une mémoire vive simple accès connectée sur un bus de données et un bus d'adresses, - plusieurs entités périphériques, réparties en une entité prioritaire et en entités auxiliaires, cadencées respectivement par leur propre signal d'horloge interne. Chaque entité périphérique est apte à délivrer un signal de requête d'accès à la mémoire et comporte des moyens d'entrée/sortie, connectés sur les bus de données et d'adresses. Ces moyens d'entrée/sortie sont aptes à contenir une donnée extraite de la mémoire ou une donnée devant être écrite dans la mémoire. Ces moyens d'entrée/sortie possèdent par ailleurs un port de contrôle pour recevoir au moins un signal de validation de la donnée contenue dans les moyens d'entrée/sortie. Le système selon l'invention comprend par ailleurs une interface de contrôle comportant un séquenceur rythmé par le signal d'horloge interne de l'entité prioritaire, de façon à élaborer une trame temporelle répétitive subdivisée en fenêtres temporelles formant plusieurs groupes de fenêtres respectivement alloués aux entités périphériques. L'interface comprend également des moyens de contrôle aptes en réponse à un signal de requête d'accès émanant d'une entité périphérique, à délivrer aux moyens d'entrée/sortie de cette entité le signal de validation de données uniquement au cours d'une fenêtre allouée à cette entité, autorisant ainsi l'accès de cette entité à la mémoire. Lorsque l'une des entités auxiliaires comporte une unité centrale d'un microprocesseur, les moyens de contrôle comportent avantageusement des moyens d'inhibition aptes, en présence d'un signal de requête d'accès à la mémoire émis par l'unité centrale au cours d'une fenêtre temporelle qui ne lui est pas allouée, à geler le fonctionnement interne de l'unité centrale jusqu'à la réception du signal de validation de données. Ce "gel" ou cette inhibition du fonctionnement de l'unité centrale peut se traduire par une interruption totale du fonctionnement de l'unité centrale ou bien par un gel ou un figeage du contenu des registres ou bascules internes de telle sorte qu'il n'y ait plus aucune évolution des données délivrées par ces bascules jusqu'à désactivation du signal de gel. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de réalisation et de mise en oeuvre, nullement limitatif, et des dessins annexés, sur lesquels: la figure 1 est un synoptique schématique d'un système de contrôle d'accès partagés selon l'invention, la figure 2 illustre une trame temporelle permettant le partage temporel des accès à la mémoire, et la figure 3 illustre plus en détail, mais toujours de façon schématique, une partie du dispositif de la figure 1. Sur la figure 1, la référence SY désigne d'une façon générale un système selon l'invention, permettant ici de contrôler les accès de trois entités périphériques, ou plus simplement périphériques, Pi, P2 et P3, à une mémoire vive MMV. L'un de ces périphériques, en l'espèce le périphérique P1, comporte dans l'exemple décrit, une unité centrale de microprocesseur CPU ainsi que des moyens d'entrée/sortie MES1 connectés sur le bus d'adresses BSR1 de la mémoire et sur le bus de données BSR2 de cette mémoire. D'une façon classique, ces moyens d'entrée/sortie MES1 comportent un port de sortie BFO10, connecté sur le bus d'adresses BSR1, comportant une mémoire tampon, connectée sur le bus d'adresses BS 10 de l'unité centrale pour stocker une adresse. Ce port de sortie BF10 est commandé de façon classique par un signal de validation d'adresse El permettant de valider et de délivrer effectivement l'adresse sur le bus d'adresses BSR1 de la mémoire. De même, les moyens d'entrée/sortie MES 1 comportent un port d'entrée de données BFI comportant une mémoire tampon, connectée entre le bus de données BSR2 de la mémoire MV et le bus de données BS 1 1 de l'unité centrale. Ce port d'entrée est commandé par un signal LD1 de validation de la donnée extraite de la mémoire MMV. D'une façon analogue, pour l'écriture d'une donnée dans la mémoire MMV, les moyens MES 1 comportent un port de sortie de données BF12 commandé par un signal de validation de donnée D1 permettant d'écrire effectivement la donnée dans la mémoire MMV. Ces moyens MES 1 comportent bien entendu un port de contrôle pour l'échange des différents signaux de validation El, LD1, Dl, mais aussi pour délivrer un signal C1 de requête d'accès à la mémoire et un signal RW1 représentatif du sens lecture/écriture. Le deuxième périphérique P2, qui est par exemple dans une application de télévision, le contrôleur d'écran, comprend des moyens d'entrée/sortie MES2 comportant un port de contrôle et un port de sortie BF20, connecté sur le bus d'adresses BSR1 de la mémoire, comportant notamment un pointeur d'adresses et commandable par un signal de validation d'adresses E2. En outre, ces moyens d'entrée/sortie MES2 comportent ici uniquement un port d'entrée de données BF21 comportant une mémoire tampon, connectée sur le bus de données BSR2 de la mémoire et commandable par un signal de validation de données LD2. Les moyens d'entrée/sortie MES3 du troisième périphérique P3 qui peut être par exemple un dispositif d'échantillonnage de données, comportent d'une façon analogue des ports de contrôle et de données BF31 et BF32 en lecture et en écriture, respectivement commandés par des signaux de validation LD3 et D3, ainsi qu'un port d'adresses BF30, commandé par un signal de validation E3 et comportant notamment un pointeur d'adresses. Le système selon l'invention comporte également une interface IF permettant de contrôler et de gérer les accès à la mémoire MMV. Matériellement, cette interface IF comporte des moyens de traitement qui peuvent être réalisés au moins partiellement de façon logicielle au sein d'un micro-contrôleur par exemple, ou bien par un circuit intégré spécifique (ASIC), soit encore par simple intégration matérielle ("hardware") dans le système (circuit intégré par exemple). Sur la figure 1, on a décomposé fonctionnellement l'interface IF en un contrôleur principal MC 1 comportant notamment un séquenceur SQ rythmé par le signal d'horloge de l'un des périphériques de façon à élaborer une trame temporelle répétitive dont on reviendra plus en détail ci- après sur la structure, et en un contrôleur du bus de données MC2 délivrant les signaux de validation de données LDi et/ou Di et en un contrôleur de bus d'adresses MC3 délivrant les signaux de validation d'adresses Ei. L'élaboration de la trame temporelle répétitive TR (figure 2) dépend du caractère prioritaire de l'un des périphériques. Plus précisément, on sélectionne parmi les entités périphériques P1, P2, P3, celle dont le traitement temps réel est le plus prioritaire, c'est-à-dire par exemple celle présentant le plus de contraintes temps réel. Dans l'application spécifique de la télévision, le traitement temps réel prioritaire est celui gérant l'écran d'affichage de façon à ne pas détériorer la qualité et la stabilité de l'image affichée. C'est donc l'entité périphérique P2 correspondant au contrôleur d'écran, qui sera désignée comme étant l'entité prioritaire, les autres entités étant les entités auxiliaires. En conséquence, la durée de la trame TR sera choisie ici comme étant la durée nécessaire pour afficher un caractère sur l'écran. Cette durée de trame TR correspond à un certain nombre de périodes du signal d'horloge CK2 du contrôleur d'écran. Ce nombre de périodes d'horloge est typiquement égal à 18, mais, à des fins de simplification, on n'en a représenté que 12 sur la figure 2. On suppose par ailleurs, à des fins de simplification, que le traitement d'affichage proprement dit nécessite trois accès à la mémoire au cours de fenêtres temporelles S2, S4 et S6, ayant chacune une durée de deux périodes du signal d'horloge CK2. Les fenêtres d'accès de l'entité prioritaire ayant été définies, on réserve les fenêtres d'accès restantes, à savoir les fenêtres Si, S3 et S5, aux autres entités périphériques. A titre indicatif, on alloue à l'unité centrale CPU les fenêtres Si1 et S5, tandis que l'on alloue à l'entité périphérique P3 la fenêtre S3. Le séquenceur de l'interface de contrôle est rythmé par le signal d'horloge CK2 de l'entité prioritaire. En conséquence, les demandes d'accès successives C2 émises par le périphérique P2 seront synchrones avec l'occurence des fenêtres temporelles S2, S4 et S6. Les signaux de validation d'adresses E2 et LD2 seront donc délivrés par les moyens de contrôle MC2 et MC3 au cours de ces fenêtres temporelles autorisant aussi l'accès du périphérique P2 à la mémoire MMV. Par contre, en ce qui concerne les autres périphériques, et notamment le périphérique P3, si un signal de requête d'accès C3 est émis au cours d'une fenêtre temporelle qui n'est pas allouée à ce périphérique, par exemple la fenêtre S 1, l'interface de contrôle ne délivrera le signal de validation d'adresses E3 et le signal de validation de données D3 ou LD3 en fonction de la valeur logique d'un signal RW3, qu'au cours de la prochaine fenêtre d'accès qui est allouée au périphérique P3, en l'espèce la fenêtre S3. Ainsi, le périphérique P3 n'aura effectivement accès à la mémoire MMV qu'au cours de la fenêtre S3 qui lui est allouée. Le même principe est appliqué au périphérique Pl dans le cas o un signal de requête d'accès C1, associé à un signal de requête RWl d'écriture ou de lecture, est émis par le périphérique P1 au cours d'une fenêtre temporelle d'accès qui ne lui est pas alloué. Cependant, il convient en outre de geler le fonctionnement interne de l'unité centrale CPU jusqu'à la réception du signal de validation LD 1 ou D 1 en fonction du sens lecture ou écriture. A cet effet, l'interface de contrôle IF comporte des moyens d'inhibition MH que l'on a représentés ici à des fins de simplification à l'intérieur du bloc MES 1. Plus précisément, comme illustré sur la figure 3, ces moyens d'inhibition MH comportent un décodeur d'adresses AD recevant l'adresse émise sur le bus BS10 de l'unité centrale et destiné à vérifier que cette adresse correspond bien à une adresse effective de la mémoire. Si tel est le cas, le signal SEL de sortie du décodeur passe au niveau logique "1" et est stocké dans une bascule référencée BD commandée par le signal de validation d'adresses ST délivré par l'unité centrale. Lorsque ce signal de validation d'adresses ST passe à 1, la sortie de la bascule BD qui est reliée à l'entrée d'une bascule de sortie FF (flip flop) fait passer la sortie de cette bascule FF à 1. Le signal logique correspondant WT, qui est délivré à l'unité centrale CPU, agit alors comme un signal de gel de cette unité centrale. Il convient de noter également que le passage du signal WT de l'état logique "O" à l'état logique "1" peut être utilisé comme une condition de génération du signal de requête d'accès C1. Les moyens d'inhibition MH comportent par ailleurs un détecteur de transitions DT dont la sortie est reliée à l'entrée R de remise à zéro de la bascule de sortie FF, et dont l'entrée est reliée à la sortie d'une porte logique OU, référencée PL, et recevant en entrée les signaux de validation LD1 et D1. L'émission par le contrôleur MC2 de l'interface de contrôle du signal de validation de données LD1 ou D1 (en fonction du sens lecture ou écriture requis), se traduit par une transition montante du signal correspondant. La détection de cette transition par le détecteur DT a pour effet de remettre la sortie de la bascule FF à zéro, c'est-à-dire de refaire passer à l'état bas le signal de gel WT, ce qui a pour conséquence de réactiver le fonctionnement interne de l'unité centrale CPU. REVENDICATIONS 1. Procédé de contrôle des accès partagés à une mémoire vive, dans lequel plusieurs entités périphériques cadencées respectivement par leur propre signal d'horloge interne sont susceptibles d'accéder à ladite mémoire, caractérisé par le fait que, la mémoire vive (MMV) étant une mémoire simple accès, on définit une entité prioritaire (P2) parmi l'ensemble des entités périphériques, les autres entités (P1, P3) étant définies comme étant des entités auxiliaires, on élabore une trame temporelle répétitive (TR), rythmée par le signal d'horloge interne (CK2) de l'entité prioritaire, et subdivisée en fenêtres temporelles (S1- S6) formant plusieurs groupes de fenêtres respectivement alloués aux entités périphériques, et on autorise chaque entité périphérique à accéder à ladite mémoire uniquement au cours des fenêtres qui lui sont allouées. 2. Procédé selon la revendication 1, dans lequel l'une des entités auxiliaire (Pi) comporte une unité centrale (CPV) d'un microprocesseur et des moyens d'entrée/sortie (MES1) reliés à ladite mémoire aptes à contenir une donnée devant être écrite dans la mémoire ou une donnée extraite de la mémoire et devant être lue par l'unité centrale, caractérisé par le fait qu'en présence d'un signal (C1) de requête d'accès à la mémoire émis par l'unité centrale au cours d'une fenêtre temporelle qui ne lui est pas allouée, on valide la donnée présente dans les moyens d'entrée/sortie au cours de la prochaine fenêtre temporelle allouée à ladite unité centrale, et on gèle le fonctionnement interne de l'unité centrale jusqu'à ladite validation. 3. Système de contrôle des accès partagés à une mémoire vive, caractérisé par le fait qu'il comprend une mémoire vive simple accès (MMV) connectée sur un bus de données et un bus d'adresses, plusieurs entités périphériques (P1- P3), réparties en une entité prioritaire et en entités auxiliaires, cadencées respectivement par leur propre signal d'horloge interne, aptes chacune à délivrer un signal de requête d'accès à la mémoire, et comportant chacune des moyens d'entrée/sortie, connectés sur les bus de données et d'adresses, contenant des moyens de stockage aptes à contenir une donnée extraite de la mémoire ou une donnée devant être écrite dans la mémoire, et possédant un port de contrôle pour recevoir au moins un signal de validation de la donnée contenue dans les moyens d'entrée/sortie, et une interface (IF) comportant un séquenceur (SQ) rythmé par le signal d'horloge interne de l'entité prioritaire de façon à élaborer une trame temporelle répétitive subdivisée en fenêtres temporelles formant plusieurs groupes de fenêtres respectivement alloués aux entités périphériques, et des moyens de contrôle (MC1-MC3) aptes en réponse à un signal de requête d'accès émanant d'une entité, à délivrer aux moyens d'entrée/sortie de cette entité le signal de validation de donnée uniquement au cours d'une fenêtre allouée à cette entité, autorisant ainsi l'accès de cette entité à la mémoire. 4. Système selon la revendication 3, caractérisé par le fait que l'une (P 1) des entités auxiliaires comporte une unité centrale d'un microprocesseur, par le fait que les moyens de contrôle comportent des moyens d'inhibition (MH) aptes, en présence d'un signal de requête d'accès à la mémoire émis par l'unité centrale au cours d'une fenêtre temporelle qui ne lui est pas allouée, à geler le fonctionnement interne de l'unité centrale jusqu'à la réception du signal de validation de donnée.