Brevet FR2913785A1 — publié le 20080919

GESTION DE MEMOIRE TAMPON CIRCULAIRE La présente invention concerne la gestion d'accès à une mémoire tampon circulaire. Dans certaines applications, comme par exemple dans le domaine de la vidéo, une mémoire de stockage de masse, ou mémoire externe, stocke des 5 données qui sont destinées à être traitées selon un algorithme déterminé, par un processeur d'un dispositif de traitement de données. La mémoire interne d'un microprocesseur est généralement de capacité relativement réduite par rapport à une mémoire externe dans laquelle peuvent être stockées des données se rapportant à des images vidéo par exemple. Le 10 transfert de données depuis la rnémoire externe vers la mémoire interne permet au microprocesseur de traiter de manière partielle, c'est-à-dire par étapes, toutes les données d'une image vidéo. Afin de réaliser un tel transfert de données depuis la mémoire externe vers la mémoire interne, ou vice-versa, il est classique d'utiliser un dispositif de 15 type DMA ('Direct Memory Access', en anglais). Un tel dispositif, classiquement appelé un DMA, permet de réaliser des transferts directs de données entre une mémoire externe et une mémoire interne associée au processeur, sans recourir à l'intervention du microprocesseur, sauf exception, notamment pour initier le transfert des données. 20 A cet effet, l'utilisation d'une mémoire tampon circulaire est très avantageuse. Une mémoire tampon circulaire comprend des sous-zones tampon qui sont utilisées de manière circulaire. Différentes méthodes de gestion d'accès à une telle mémoire tampon circulaire peuvent être mises en place. 25 Ces méthodes de gestion d'accès peuvent correspondre à une `fonction de lien' selon laquelle des registres de programmation de chaque canal de transfert de données du DMA contiennent une adresse destinée à être utilisée pour la gestion de l'accès à la mémoire. A cette adresse est stocké un jeu de paramètres pour chaque transfert de données programmé qui permettent de 30 gérer l'accès à cette mémoire circulaire. De tels paramètres peuvent être plus ou moins complexes à gérer en fonction notamment du nombre de dimensions qui correspondent au transfert de données. On peut ainsi prévoir un transfert à une dimension, qui permet de parcourir une sous-zone tampon de la mémoire tampon circulaire, ou encore un transfert à deux dimensions au cours duquel il est prévu de parcourir toutes les sous-zones tampon de la mémoire tampon circulaire. On peut aussi prévoir d'enchaîner sur un autre parcours de la mémoire tampon circulaire du même type, en parcourant plusieurs fois les sous-zones tampon de la mémoire tampon circulaire, en totalité ou partiellement. Plus précisément, dans des registres de programmation de chaque canal de transfert du DMA est mémorisée l'adresse mémoire destinée à être utilisée à la fin d'un parcours de sous-zones tampon programmé pour récupérer le prochain jeu de paramètres. Le prochain jeu de paramètres correspond au prochain parcours de sous-zones tampon à réaliser depuis la mémoire externe vers la mémoire interne, ou vice versa. Une telle gestion d'accès à une mémoire tampon circulaire présente de nombreux désavantages. En effet, elle requiert un mécanisme spécifique visant à récupérer le jeu de paramètres pour chaque nouveau parcours de sous-zones tampon à gérer. De plus, cette récupération du jeu de paramètres peut introduire un délai dans la gestion des transferts de données au niveau du DMA, notamment lorsque les jeux de paramètres sont stockés à l'extérieur du DMA. Lorsque ces jeux de paramètres sont seulement accessibles par le DMA via un port du DMA qui est par ailleurs utilisé pour d'autres applications, il peut se poser des problèmes supplémentaires liés à la bande passante attachée à ce port. Il convient de noter que l'ajout d'un port supplémentaire au DMA pourrait résoudre un tel problème de bande passante mais introduirait d'autres problèmes notamment une augmentation de la taille du DMA, ce qui induit une augmentation du coût du dispositif final. De telles méthodes de gestion d'accès mémoire peuvent également correspondre à un transfert de données en deux dimensions basé sur la gestion de deux valeurs de décalage (ou `offsets' en anglais), une première valeur de décalage qui permet de parcourir une sous-zone tampon de la mémoire tampon circulaire et une seconde valeur de décalage qui permet de passer d'une sous-zone tampon courante à la sous-zone tampon suivante dans cette mémoire tampon circulaire. Puis, une fonction modulo est utilisée de sorte à permettre le passage de 5 la dernière sous-zone tampon à la première sous-zone tampon de la mémoire tampon circulaire. Toutefois, une fonction de modulo, n'imposant aucune restriction quand à la taille de la zone modulo et à l'alignement des adresses de début et de fin de zone modulo, requiert une quantité de logique importante. Dupliquer cette 10 logique pour chaque canal d'un DMA présente donc un coût élevé relativement à la taille du dispositif. La plupart des DMA ne permettent donc pas de disposer d'une fonction modulo pour chaque canal de transfert. La fonction modulo peut être réalisée pour un coût moindre en termes de quantité de logique, mais il en résulte alors des restrictions d'utilisation quand 15 à l'alignement des adresses de début et de fin de zone, et également des restrictions relativement à la taille de la zone modulo (souvent en 2" éléments). La présente invention vise à pallier les inconvénients précités. Un premier aspect de la présente invention propose un procédé de gestion d'accès à une mémoire tarnpon circulaire, pour au moins un canal de 20 transfert de données pour une quantité de données déterminée, ladite mémoire tampon circulaire comprenant une série de sous-zones tampons espacées respectivement d'un saut d'adresse mémoire et ordonnées depuis une première sous-zone tampon jusqu'à une dernière sous-zone tampon; ledit procédé comprenant les étapes suivantes : 25 /a/ initialiser, d'une part, une adresse de départ à partir d'un premier registre stockant une valeur indiquant une adresse mémoire de la première sous-zone tampon de ladite mémoire tampon circulaire, et, d'autre part, un compteur à partir d'un second registre stockant une valeur indiquant le nombre de sous-zones tampon de ladite mémoire ; 30 /b/ accéder auxdites sous-zones tampon successivement depuis la première sous-zone tampon jusqu'à la dernière sous-zone tampon à partir de ladite adresse de départ et en fonction dudit saut d'adresse sur la base de la valeur dudit compteur; et /c/ répéter les étapes /a/ et /b/ de sorte à transférer ladite quantité de données déterminée. Grâce à de telles dispositions, on est en mesure de gérer un accès, soit en écriture, soit en lecture, à une mémoire tampon circulaire de manière simple, tout en limitant le nombre de registres à gérer. En procédant ainsi, il n'est plus requis d'accéder à un jeu de paramètres dédiés au transfert de données considéré, comme cela est le cas dans le cadre d'une gestion de mémoire tampon circulaire basée sur une fonction de lien. On peut donc s'affranchir des inconvénients qui sont attachées à une telle gestion. Il convient de noter ici que la quantité de données déterminée pour un canal de transfert, qui est utilisée pour déterminer si le transfert en cours est terminé, peut être gérée selon un quelconque mécanisme connu de l'homme du métier. On peut notamment prévoir de déterminer cette quantité de données à transférer par le nombre de sous-zones tampon à parcourir. Par ailleurs, les données relatives à une sous-zone tampon peuvent être transférées (en lecture ou en écriture) de manière décalée dans le temps par rapport aux données relatives à la sous-zone tampon suivante. Ces mécanismes de gestion dans le temps sont bien connus de l'homme du métier. Par exemple, un registre du DMA peut être écrit par le système dans lequel le DMA est intégré, lorsque le transfert de la sous zone tampon suivante doit être réalisé. Ce registre ainsi activé indique au DMA de poursuivre le transfert de données pour la quantité de données défini précédemment. Il est également à noter que la gestion d'un accès à une telle mémoire tampon circulaire dans le contexte d'une pluralité de canaux de transfert de données est simple à mettre en oeuvre dès lors que l'on prévoit que les premier et second registres ainsi que le compteur sont gérés par canal de transfert. De ce fait, un mode de réalisation de la présente invention permet de s'affranchir notamment des contraintes d'alignement qu'impose la mise en oeuvre d'une gestion basée sur une fonction modulo telle que celle décrite ci-avant. Dans un tel contexte, lorsqu'un nombre N de canaux de transfert distincts sont utilisés pour gérer une ou des mémoires tampon circulaires, les premier et second registres et le compteur sont alors avantageusement dupliqués N fois et gérés indépendamment pour chaque canal de transfert de données. Aucune limitation n'est attachée à la présente invention au regard de l'utilisation de la mémoire tampon circulaire considérée. Ainsi, elle peut avantageusement être mise en oeuvre dans le contexte des mémoires couplées à un microprocesseur mais cela reste uniquement un exemple 10 d'application de la présente invention. Dans un mode de réalisation de la présente invention, le procédé de gestion d'accès comprend en outre les étapes suivantes avant l'étape /a/ : /a-1/ initialiser l'adresse de départ à une valeur indiquant l'adresse d'une sous-zone tampon déterminée parmi lesdites sous-zones tampon de la 15 mémoire tampon circulaire et le compteur (CNT) à une valeur indiquant le nombre de sous-zones tampon comprises entre la sous-zone tampon déterminée et la dernière sous-zone tampon ; /a-2/ accéder aux sous-zones tampon successivement depuis la sous-zone tampon déterminée jusqu'à la dernière sous-zone tampon en fonction du 20 saut d'adresse sur la base de la valeur dudit compteur. Classiquement, la mémoire tampon circulaire est comprise dans une mémoire globale. On peut aussi prévoir de mettre en oeuvre les étapes suivantes avant l'étape /a/ : /a-i/ initialiser l'adresse de départ à une valeur indiquant une adresse 25 d'une zone spécifique de la mémoire globale différente des sous-zones tampon de la mémoire tampon circulaire et le compteur (CNT) à une valeur correspondant à une quantité de données à transférer depuis ladite zone spécifique ; /a-ii/ accéder à ladite zone spécifique de la mémoire globale sur la 30 base de la valeur dudit compteur. Dans ce cas, le démarrage d'un transfert de données peut commencer par un transfert de données depuis une zone mémoire qui est à l'extérieur des sous-zones tampon de la mémoire tampon circulaire. Après avoir transféré le nombre de sous zones tampon correspondant à la valeur initialisée dans le compteur CNT, le transfert redémarre au début de la mémoire tampon circulaire. Dans un mode de réalisation de la présente invention, l'étape /b/ 5 comprend les étapes suivantes : /1/ parcourir une sous-zone tampon courante ; /2/ passer à la sous-zone tampon suivante ; /3/ décrémenter le compteur d'une unité ; et /4/ si la valeur du compteur est différente de 0, répéter les étapes /1/ 10 à /4/, sinon retourner à l'étape /a/. En procédant ainsi, le compteur indique le nombre de sous-zones tampon qu'il reste à parcourir jusqu'à la dernière souszone tampon de la mémoire tampon circulaire. Puis, lorsqu'il est détecté que la dernière sous- 15 zone tampon vient d'être parcourue, alors l'étape d'initialisation est répétée. La mise en oeuvre de telles étapes reste simple. Dans un mode de réalisation de la présente invention, l'étape /1/ comprend les étapes suivantes : /1-V initialiser un sous-compteur à partir d'un troisième registre 20 indiquant la taille d'une sous-zone tampon ; /1-ii/ parcourir la sous-zone tampon courante selon ladite taille en décrémentant ledit sous-compteur respectivement ; et /1-iii/ si la valeur du sous-compteur est différente de 0, retourner à l'étape /1-ii/, 25 sinon passer à l'étape /2/. On gère ainsi le parcours d'une sous-zone tampon de la mémoire sur la base de la gestion d'un sous-compteur et d'un registre indiquant la taille de cette sous-zone tampon. Un deuxième aspect de la présente invention concerne un dispositif de 30 gestion d'accès à une mémoire circulaire tampon pour un canal de transfert de données, adapté pour mettre en oeuvre un procédé de gestion d'accès selon le premier aspect de la présente invention. Un troisième aspect de la présente invention propose un dispositif DMA comprenant un dispositif de gestion selon le deuxième aspect. D'autres aspects, buts et avantages de l'invention apparaîtront à la lecture de la description d'un de ses modes de réalisation. L'invention sera également mieux comprise à l'aide des dessins, sur lesquels : la figure 1 illustre les principales étapes d'une gestion de mémoire tampon circulaire selon un mode de réalisation de la présente invention ; la figure 2 illustre une mémoire tampon gérée selon un mode de réalisation de la présente invention ; la figure 3 illustre une architecture d'un dispositif mettant en oeuvre une gestion de mémoire tampon circulaire selon un mode de réalisation de la présente invention ; la figure 4 illustre une utilisation de la gestion de mémoire tampon circulaire dans le contexte d'un transfert de données vidéo. Les figures 5 et 6 illustrent une gestion du transfert de données entre les mémoires interne et externe basée sur des mémoires tampon circulaires. La figure 1 illustre les principales étapes d'une gestion de mémoire tampon circulaire selon un mode de réalisation de la présente invention. Un tel mode de réalisation est basé sur la gestion d'une étape d'initialisation 10 d'un point de départ du parcours de la mémoire tampon circulaire pour procéder au transfert de données considéré. Ce point de départ dans la mémoire correspond à une adresse de départ qui est récupérée dans un premier registre. Au cours de cette étape d'initialisation 10, il est également prévu de mettre à jour un compteur de sous-zones tampon à partir d'un second registre qui indique le nombre de sous-zones tampon à parcourir dans la mémoire tampon circulaire. Cette étape d'initialisation est destinée à être mise en oeuvre à chaque fin de parcours de la mémoire tampon circulaire. Une fois cette étape 10 réalisée, on effectue le parcours de la sous-zone tampon courante de la mémoire tampon circulaire à une étape 11. Ainsi, successivement, on est en mesure de parcourir une à une les sous-zones tampon depuis la première jusqu'à la dernière. Cette étape de parcours 11 d'une sous-zone tampon courante est basée : sur l'adresse de départ du parcours, sur la taille d'une sous-zone tampon de la mémoire, sur un saut d'adresse qui permet de passer d'une sous-zone tapon courante à une sous-zone tampon suivante, et - sur la gestion d'un compteur qui indique le nombre de sous- zones tampon qu'il reste à parcourir avant d'atteindre la dernière sous-zone tampon. Ainsi, après le parcours de la sous-zone tampon courante de la mémoire tampon circulaire, il est possible soit de passer à une sous-zone tampon suivante (flèche 12), dans le cas où le compteur indique qu'il reste au moins une sous-zone tampon suivante à parcourir dans la mémoire tampon circulaire, soit, lorsque la sous-zone tampon courante qui vient d'être parcourue correspond à la dernière sous-zone tampon de la mémoire tampon circulaire, d'effectuer à nouveau l'étape d'initialisation 10 (flèche 13) pour recommencer un parcours programmé de la mémoire tampon circulaire. Le transfert de données, en écriture ou en lecture, est terminé lorsqu'une quantité de données déterminée a été transférée. Cet aspect n'est pas décrit en détail ici. Pour contrôler la fin du transfert, on peut utiliser toute méthode bien connue de l'homme du métier. La figure 2 illustre une mémoire tampon circulaire selon un mode de réalisation de la présente invention. Cette mémoire tampon circulaire 15 comprend un nombre entier n de sous-zones tampon successives, ces sous-zones tampon étant espacées les unes des autres d'un saut d'adresse ADDINC, et l'adresse du premier élément stocké dans la première sous-zone tampon est notée RLDADD. Par la suite, on note : ADD : l'adresse courante, c'est-à-dire l'adresse des données à lire ou à écrire dans la mémoire 15 ; ADDINC : le saut d'adresse entre deux sous-zones tampon successives, ce saut d'adresse peut être égal à une unité dans le cas où les sous-zones tampon sont successives; NBELT : le nombre d'éléments restant à transférer pour la sous-zone tampon courante ; - NBELT RLD : le nombre d'éléments total dans chaque sous- zone tampon. RLDADD (pour 'ReLoaD ADDress' en anglais) : l'adresse de départ de parcours dans la mémoire tampon circulaire ; - CNT : le compteur pour compter le nombre de sous-zones tampon restant à lire ou à écrire avant de retourner à la première sous-zone tampon ; - CNTRLD (pour 'CouNter ReLoaD valeur' en anglais) : le nombre de sous-zones tampon moins 1. Il convient de noter qu'il est aisé d'adapter un mode de réalisation de la présente invention au cas où le saut d'adresse géré ADDINC représente un saut d'adresse entre l'adresse de début d'une sous-zone tampon et l'adresse de début de la sous-zone tampon suivante. A la fin d'un transfert de données depuis une sous-zone tampon, c'est- à-dire lorsque NBELT est égal à 0, la valeur du compteur CNT est contrôlée. Si la valeur du compteur est différente de 0, alors il est accédé à la sous-zone tampon suivant. Cette valeur du compteur CNT est alors décrémentée et la valeur de l'adresse courante ADD est modifiée de sorte à pointer sur le premier élément de la sous-zone tampon suivant, en utilisant l'information ADDINC. Si la valeur du compteur est égale à 0, alors il est accédé à la première sous-zone tampon. Le compteur CNT est alors rechargé avec la valeur CNTRLD et l'adresse courante ADD est rechargée avec la valeur RLDADD. II convient de noter que, dans un mode de réalisation de la présente invention, quelque soit la valeur du compteur CNT, à chaque changement de sous-zone tampon, le champ NBELT est rechargé avec la valeur NBELT_RLD. Avantageusement, un mode de réalisation de la présente invention permet une gestion de tampon circulaire simple au regard d'une gestion basée sur une fonction de lien ou encore sur une fonction modulo. Dans un mode de réalisation de la présente invention, toutes les n sous-zones tampon sont parcourues en premier lieu en partant d'une adresse de départ RLDADD, qui correspond dans l'exemple, à l'adresse des premières données de la première sous-zone tampon. Puis, les différentes sous-zones tampon sont parcourues en incrémentant l'adresse courante ADD de la fin d'une sous-zone tampon du saut d'adresse ADDINC, ce qui permet de passer ainsi d'une sous-zone tampon à un autre et finir un parcours de la mémoire tampon circulaire par la sous-zone tampon n. Une configuration matérielle d'un dispositif de gestion d'accès à une mémoire tampon circulaire selon un mode de réalisation de la présente invention peut reposer sur l'ajout d'un compteur CNT et d'une unité de décrémentation pour gérer ce compteur, et de deux registres, les premier et second registres. Un dispositif de gestion d'accès à une mémoire tampon circulaire adapté pour mettre en oeuvre un tel procédé de gestion d'accès comprend, 20 dans un mode de réalisation de la présente invention : - un premier registre 306 adapté pour contenir une valeur indiquant une adresse mémoire de la première sous-zone tampon de ladite mémoire ; - un second registre 308 adapté pour contenir une valeur indiquant le nombre de sous-zones tampon de ladite mémoire ; 25 - une unité d'initialisation 304, 309 adaptée pour initialiser, d'une part, une adresse de départ à partir dudit premier registre, et, d'autre part, un compteur CNT à partir dudit second registre ; - une unité de gestion d'accès à la mémoire tampon circulaire, adaptée pour déterminer les adresses mémoire successives permettant de parcourir 30 lesdites sous-zones tampon successivement depuis la première sous-zone tampon jusqu'à la dernière sous-zone tampon à partir de ladite adresse de départ et en fonction dudit saut d'adresse, sur la base de la valeur dudit compteur CNT ; et - une unité de gestion de répétition d'accès à la mémoire tampon circulaire adaptée pour déclencher l'unité de gestion d'accès à la mémoire tampon circulaire en fonction de ladite quantité de données déterminée. L'unité de gestion d'accès 303 peut en outre être adaptée pour : - parcourir une sous-zone tampon courante ; et - passer à la sous-zone tampon suivante ; et adaptée pour coopérer, afin de fournir l'adresse courante (ADD) de parcours de la mémoire tampon circulaire, avec : - une unité de décrémentation (312) adaptée pour décrémenter le 10 compteur (CNT) d'une unité à chaque passage à la sous-zone tampon suivante ; et une unité de contrôle de compteur (311) adaptée pour activer les première et seconde unités d'initialisation (304, 309) si la valeur du compteur est égale à 0. 15 La figure 3 illustre une telle architecture d'un dispositif mettant en oeuvre une gestion de mémoire tampon circulaire selon un mode de réalisation de la présente invention. Un tel dispositif comprend l'unité de détermination d'adresse 303 adaptée pour déterminer l'adresse des prochaines données à lire ou à écrire en mémoire à partir, d'une part, de l'adresse courante ADD 301 20 des dernières données lues ou écrites et, d'autre part, d'un saut d'adresse ADDINC 302. Tant que le parcours de données contenues dans les sous-zones tampon de la mémoire tampon circulaire n'est pas terminé, soit on parcourt la sous-zone tampon courante et on détermine alors l'adresse ADD suivante 25 pour l'accès mémoire en incrémentant l'adresse précédente, soit on vient de parcourir une sous-zone tampon et l'adresse courante suivante est alors déterminée de sorte à obtenir la première adresse de la prochaine sous-zone tampon à parcourir en fonction du saut d'adresse ADDINC. Puis, lorsque les données de la dernière sous-zone tampon, c'est-à-dire 30 la sous-zone tampon n dans la mémoire 15, ont été transférés, alors la prochaine adresse à prendre en compte pour récupérer les prochaines données correspond à celle qui est stockée dans le registre RLDADD 306. Ce dispositif comprend également l'unité de contrôle de compteur 311 en charge de contrôler si la valeur du compteur CNT est égale à 0, ainsi que l'unité de décrémentation 312 en charge de décrémenter la valeur du compteur CNT en fonction du parcours de sous-zone tampon. L'unité de décrémentation 312 reçoit une information de fin de sous-zone tampon 307, ainsi que la valeur courante du compteur CNT, 310. Puis, à partir de ces informations, cette unité de décrémentation est en mesure de déterminer la nouvelle valeur du compteur CNT représentant le nombre de sous-zones tampon restant à parcourir avant de revenir à la première sous-zone tampon de la mémoire tampon circulaire. Lorsque l'unité de contrôle 311 détecte que la valeur du compteur CNT est nulle, il fournit une information de fin de parcours 313 à l'unité de mise à jour d'adresse 304 et l'unité de mise à jour de compteur 309. Dans ce cas, il convient de prendre en compte pour la prochaine adresse en mémoire, celle qui est stockée dans le registre RLDADD 306. Cette unité de mise à jour 304 est adaptée pour fournir la prochaine adresse des données à lire ou écrire qui correspond, sur réception de cette information de fin de parcours 313, à l'adresse contenue dans le registre RLDADD, c'est-à-dire à l'adresse de départ de la première sous-zone tampon de la mémoire tampon circulaire considérée, et dans les autres cas pour fournir l'adresse déterminée par l'unité de détermination 303. L'unité de mise à jour de compteur 309 est adaptée pour fournir une valeur courante du compteur CNT 310 qui correspond soit à la valeur du compteur CNT issue de l'unité de décrémentation 312, soit à la valeur stockée dans le registre CNTRLD 308, cette dernière valeur étant fournie sur réception de l'information de fin de parcours 313. La figure 4 illustre une utilisation de la gestion de mémoire tampon circulaire dans le contexte d'un transfert de données vidéo. Cette figure illustre les principales étapes réalisées au cours d'un traitement de données de type vidéo au niveau d'un DMA 40. Dans une mémoire externe 44 sont stockées des données décodées à partir de données codées selon un protocole de type MPEG-2 ou encore MPEG-4 (pour 'Moving Pictures Experts Group'). Certaines des données stockées dans la mémoire externe 44 sont transférées vers la mémoire interne 15 couplée à un micro processeur 46 via un message 41. Puis, dans un échange de messages 43 entre le microprocesseur 46 et sa mémoire interne 15 qui est utilisée comme une mémoire tampon circulaire, le microprocesseur récupère ces données dans la mémoire interne 15 pour les traiter, et les renvoie ainsi traitées vers la mémoire interne 15. Ensuite, les données traitées sont transmises par le DMA à la mémoire externe 44 pour y être stockées. Dans une application de traitement de données vidéo, les données traitées ainsi stockées dans la mémoire externe sont ensuite utilisées par des applications d'affichage pour afficher les images correspondantes à ces données. En procédant ainsi, le microprocesseur peut traiter par parties successives les données relatives à une image. A cet effet, une image est divisée en une pluralité de sous blocs de données, qui correspondent aux parties successives à traiter comme décrit ci-avant. La mémoire 15 est gérée comme une ou plusieurs zones mémoire tampon circulaires afin de stocker les données. Les figures 5 et 6 illustrent une gestion du transfert de données entre les mémoires interne et externe basée sur des mémoires tampon circulaires. Une image est représentée sous la forme d'une pluralité de lignes horizontales Li de pixels pour i compris entre 1 et N et j compris entre 1 et M, M et N étant des nombres entiers. Dans l'exemple d'application décrit ci-dessous, en référence aux figures 5 et 6, le traitement d'un pixel de la ligne Li de l'image par le microprocesseur est basé sur les pixel P;,i P;,i_1 et Pi j_2. La mémoire interne comprend d'une part une mémoire tampon circulaire source 21 et d'autre part une mémoire tampon circulaire destination 22. On peut donc prévoir de mettre en oeuvre un tel traitement en traitant les pixels d'une image, ligne par ligne. La mémoire tampon circulaire source 21 comprend ici quatre sous-zones tampon source 211-214, et la mémoire tampon circulaire destination 22 comprend deux sous-zones destination 221 et 222. Comme illustrée à la figure 5, à une étape donnée du traitement, ici référencée étape K, la ligne de pixels LK_2 est mémorisée dans la sous- mémoire source 211, la ligne de pixels LK_1 est mémorisée dans la sous-mémoire source 212, et la ligne de pixels LK est mémorisée dans la sous-mémoire source 213. A cette étape K, le DMA transfère la ligne de pixels LK+j depuis la 5 mémoire externe vers la sous-mémoire source 214 de la mémoire interne, à une sous-étape 201. A cette étape K également, le microprocesseur traite, à une sous-étape 202, chacun des pixels Pi,K de la ligne LK, pour i compris entre 1 et N, en fonction de Pi,K et des pixels respectifs Pi,K-1 de la ligne LK-1 et P;,K_2 de la ligne 10 LK_2 qui sont stockés dans les sous-mémoire source 211-213, comme cela est requis par le traitement à appliquer sur les données de l'image stockées dans la mémoire externe. La nouvelle ligne LKobtenue à l'issue de la sous étape 202 mise en oeuvre par le microprocesseur est stockée dans la première sous-mémoire de 15 destination 221 de la mémoire interne. Egalement, à une sous-étape 203, le DMA transfère le résultat obtenu à l'étape précédente K-1, c'est-à-dire la ligne de pixels LK..1 traitée par le microprocesseur, depuis la seconde sous-mémoire 222 de destination de la mémoire interne vers la mémoire externe. 20 A l'étape suivante, étape K+1, telle qu'illustrée par la figure 6, la ligne de pixels LK-1 est mémorisée dans la sous-mémoire source 212, la ligne de pixels LK est mémorisée dans la sous-mémoire source 213, et la ligne de pixels LK+1 est mémorisée dans la sous-mémoire source 214. A cette étape K+1, le DMA transfère la ligne de pixels LK+2 depuis la 25 mémoire externe vers la sous-mémoire source 211 de la mémoire interne, à une sous-étape 301. A cette étape K+1 également, le microprocesseur traite, à une sous-étape 302, chacun des pixels P;,K+1 de la ligne LK+1, pour i compris entre 1 et N, en fonction de P;,K+1 et des pixels respectifs P1,K de la ligne LK et P;,K_1 de la 30 ligne LK_1 qui sont stockés dans les sous-mémoires source 212-214 de la mémoire interne. La nouvelle ligne LK+1 obtenue à l'issue de la sous étape 302 mise en oeuvre par le microprocesseur est ensuite stockée dans la seconde sous-mémoire de destination 222 de la mémoire interne. Egalement, à une sous-étape 303, le DMA transfère le résultat obtenu à l'étape précédente K, c'est-à-dire la ligne de pixels LK traitée par le microprocesseur, depuis la première sous-mémoire 221 de destination de la mémoire interne vers la mémoire externe. Les étapes décrites ci-avant peuvent ainsi être répétées de sorte à permettre au microprocesseur de traiter toutes les données de l'image stockée dans la mémoire externe, en vue notamment d'un affichage, en appliquant un procédé de gestion d'accès selon un mode de réalisation de la présente invention.15 REVENDICATIONS 1. Procédé de gestion d'accès à une mémoire tampon circulaire, pour au moins un canal de transfert de données pour une quantité de données déterminée, ladite mémoire tampon circulaire comprenant une série de sous-zones tampons espacées respectivement d'un saut d'adresse mémoire (ADDINC) et ordonnées depuis une première sous-zone tampon jusqu'à une dernière sous-zone tampon (1-n) ; ledit procédé comprenant les étapes suivantes : /a/ initialiser, d'une part, une adresse de départ à partir d'un premier registre (RLDADD) stockant une valeur indiquant une adresse mémoire de la première sous-zone tampon de ladite mémoire tampon circulaire, et, d'autre part, un compteur (CNT) à partir d'un second registre (CNTRLD) stockant une valeur indiquant le nombre de sous-zones tampon de ladite mémoire ; /b/ accéder auxdites sous-zones tampon successivement depuis la première sous-zone tampon jusqu'à la dernière sous-zone tampon à partir de ladite adresse de départ et en fonction dudit saut d'adresse sur la base de la valeur dudit compteur (CNT) ; et /c/ répéter les étapes /a/ et /b/ de sorte à transférer ladite quantité de données déterminée. 2. Procédé de gestion d'accès selon la revendication 1, comprenant en outre les étapes suivantes avant l'étape /a/ : /a-1/ initialiser l'adresse de départ à une valeur indiquant une adresse d'une sous-zone tampon déterminée parmi lesdites sous-zones tampon de la mémoire tampon circulaire et le compteur (CNT) à une valeur indiquant le nombre de sous-zones tampon comprises entre la sous-zone tampon déterminée et la dernière sous-zone tampon ; /a-2/ accéder aux sous-zones tampon successivement depuis la sous-zone tampon déterminée jusqu'à la dernière sous-zone tampon en fonction du saut d'adresse sur la base de la valeur dudit compteur.30 3. Procédé de gestion d'accès selon la revendication 1 ou 2, dans lequel la mémoire tampon circulaire est comprise dans une mémoire globale ; ledit procédé comprenant en outre les étapes suivantes avant l'étape /a/ : /a-i/ initialiser l'adresse de départ à une valeur indiquant une adresse d'une zone spécifique de la mémoire globale différente des sous-zones tampon de la mémoire tampon circulaire et le compteur (CNT) à une valeur correspondant à une quantité de données à transférer depuis ladite zone spécifique ; /a-ii/ accéder à ladite zone spécifique de la mémoire globale sur la 10 base de la valeur dudit compteur. 4. Procédé de gestion selon l'une quelconque des revendications précédentes, dans lequel la mémoire tampon circulaire est adaptée pour être utilisée pour un nombre N de canaux de transfert distincts, et dans lequel les 15 premier et second registres et le compteur sont dupliqués N fois et gérés indépendamment pour chaque canal de transfert de données. 5. Procédé de gestion d'accès selon l'une quelconque des revendications 1 à 4, comprenant en outre à l'étape /b/ les étapes suivantes : 20 /1/ parcourir une sous-zone tampon courante ; /2/ passer à la sous-zone tampon suivante ; /3/ décrémenter le compteur (CNT) d'une unité ; et /4/ si la valeur du compteur est différente de 0, répéter les étapes /1/ à /4/, 25 sinon retourner à l'étape /a/. 6. Dispositif de gestion d'accès à une mémoire circulaire tampon pour un canal de transfert de données pour une quantité de données déterminée, ladite mémoire comprenant une série de sous-zones tampons espacées 30 respectivement d'un saut d'adresse (ADDINC) et ordonnées depuis une première sous-zone tampon jusqu'à une dernière sous-zone tampon ; ledit dispositif comprenant :- un premier registre (306) adapté pour contenir une valeur indiquant une adresse mémoire de la première sous- zone tampon de ladite mémoire ; - un second registre (308) adapté pour contenir une valeur indiquant le nombre de sous-zones tampon de ladite mémoire ; - une première unité d'initialisation (304) adaptée pour initialiser une adresse de départ à partir dudit premier registre ; - une seconde unité d'initialisation (309) adaptée pour initialiser un compteur (CNT) à partir dudit second registre ; - une unité de gestion d'accès (303) à la mémoire tampon circulaire, adaptée pour déterminer les adresses mémoire successives permettant de parcourir lesdites sous-zones tampon successivement depuis la première sous-zone tampon jusqu'à la dernière sous-zone tampon à partir de ladite adresse de départ et en fonction dudit saut d'adresse, sur la base de la valeur dudit compteur (CNT) ; et - une unité de gestion de répétition d'accès à la mémoire tampon circulaire adaptée pour déclencher l'unité de gestion d'accès à la mémoire tampon circulaire en fonction de ladite quantité de données déterminée. 7. Dispositif de gestion d'accès selon la revendication 6, dans lequel la mémoire tampon circulaire est adaptée pour être utilisée pour un nombre N de canaux de transfert distincts, et dans lequel les premier et second registres et le compteur sont dupliqués N fois et gérés indépendamment pour chaque canal de transfert de données. 8. Dispositif de gestion d'accès selon la revendication 6 ou 7, dans lequel l'unité de gestion d'accès d'adresse (303) est en outre adaptée pour : parcourir une sous-zone tampon courante ; et passer à la sous-zone tampon suivante ; et adaptée pour coopérer, afin de fournir l'adresse courante (ADD) de parcours de la mémoire tampon circulaire, avec : une unité de décrémentation (312) adaptée pour décrémenter le compteur (CNT) d'une unité à chaque passage à la sous-zone tampon suivante ; etune unité de contrôle de compteur (311) adaptée pour activer les première et seconde unités d'initialisation (304, 309) si la valeur du compteur est égale à 0. 9. DMA comprenant un dispositif de gestion d'accès à une mémoire tampon circulaire selon l'une quelconque des revendications 6 à 8.10