Brevet FR2949597A1 — publié le 20110304

PF100003 DISPOSITIF D'ADRESSAGE D'UNE MEMOIRE A PARTIR D'UN COMPTEUR Domaine de l'invention L'invention concerne un dispositif d'adressage d'une mémoire à partir d'un compteur, l'adressage se faisant selon une séquence prédéfinie. Elle se rapporte au domaine des circuits électroniques et plus particulièrement des dispositifs comportant des mémoires vidéo et leurs circuits d'adressage. Les mémoires plus particulièrement concernées sont les mémoires 1 o vidéo de type RAM, acronyme de l'anglais Random Access Memory, par exemple les mémoires de stockage des images vidéo. Le type d'adressage exploité est un adressage séquentiel, de séquence connue c'est-à-dire prédéfinie. 15 Etat de la technique Depuis toujours, les objectifs, lors de la conception de circuits intégrés, ont été d'augmenter la fréquence de fonctionnement, de diminuer la taille des circuits ainsi que de minimiser le temps de développement et de validation des fonctionnalités à intégrer dans les composants. 20 Les circuits de commande d'adresses mémoire, que ce soit pour l'écriture ou la lecture de mémoire vidéo, exploitent généralement des dispositifs de comptage pour l'incrémentation de ces adresses et des circuits de transcodage placés entre la sortie de ces circuits de comptage et l'entrée adresses de la mémoire. Ces circuits de transcodage effectuent le lien entre le 25 compteur et le bus adresses de la mémoire et permettent en quelque sorte la mise en correspondance des séquences de comptage avec les séquences d'adressage. Il s'agit par exemple de mémoire d'adressage aussi appelée LUT, acronyme de l'anglais Look Up Table, qui fait donc partie du dispositif 30 d'adressage des mémoires vidéo et dont le bus adresses est directement relié à la sortie du compteur, les poids binaires étant mis en correspondance. Le bus données de cette mémoire d'adressage est relié au bus adresse de la mémoire vidéo à adresser. Le contenu de la mémoire d'adressage permet de faire correspondre n'importe quel mot de comptage à une adresse de la mémoire vidéo. Il peut également s'agir, pour ces circuits de transcodage, d'une combinaison de portes logiques telles que � ET �, � OU �, � NON ET �, � OU EXCLUSIF � ... permettant de faire correspondre un mot binaire prédéfini à un autre mot binaire, un mot de sortie du compteur à une adresse de la mémoire vidéo. Cette deuxième solution évite d'avoir à incrémenter le compteur jusqu'à l'obtention de la bonne adresse. Dans un exemple, les images ou blocs d'images d'une séquence 1 o d'images vidéo en mode entrelacé sont mémorisés de manière temporaire dans une mémoire vidéo, successivement, une trame paire puis une trame impaire. Pour la lecture, les lignes de chaque trame mémorisée sont adressées et extraites alternativement, par exemple ligne par ligne ou 2 lignes par 2 lignes, pour être traitées puis à nouveau mémorisées dans une mémoire 15 comme image ou bloc d'image en mode pseudo progressif. Ainsi, la ligne ou les deux lignes d'une trame impaire sont mémorisées à la suite de la ligne ou des deux lignes de la trame paire précédent la trame impaire. Le traitement est par exemple une interpolation en mouvement permettant de faire correspondre les trames à un même instant. 20 Cette conversion d'un mode trame en mode bi-trame, ou inversement, exploitant des mémoires vidéo pour un stockage temporel des données vidéo, est également utilisée dans la norme MPEG, dans le cadre du codage de macroblocs en mode trame ou bi-trame ou dans le cadre de codage MBAFF, acronyme de l'anglais MacroBlock Adaptive Field Frame. 25 Comme on le verra plus loin, il est supposé que le nombre de lignes successives extraites puis mémorisées corresponde à une puissance de deux, par exemple 2 lignes successives, 4 lignes successives, 8 lignes successives mémorisées selon 2, 4 ou 8 adresses successives. 30 Les méthodes connues de l'art antérieur, si elles utilisent un logiciel de gestion du compteur d'adressage, nécessitent généralement un nombre important de lignes de code pour générer la logique de commande en fonction des adresses à sélectionner. Ou bien, l'exploitation de circuits logiques rend le dispositif de commande complexe, non optimisé en termes de temps de réponse. Exposé de l'invention Un des buts de l'invention est de pallier les inconvénients précités. Elle a pour objet un dispositif d'adressage d'une mémoire vidéo à partir d'un compteur, l'adressage se faisant selon une séquence prédéfinie non continument croissante, la séquence d'adressage consistant en une sélection de pluralités d'adresses successives, une première pluralité d'adresses étant constituée 1 o successivement d'un premier groupe de g adresses successives 0, 1, 2, , ...g-1, un groupe pouvant se limiter à une seule adresse, puis de groupes suivants de g adresses successives correspondant à un saut de s adresses par rapport à la première adresse du groupe d'adresses précédent, s, s+1, s+g-1 ; 2s, 2s+1,...2s+g-1 ;..., lors d'un premier balayage des adresses successives de la 15 mémoire, une deuxième pluralité d'adresses, lors d'un deuxième balayage des adresses successives de la mémoire, étant constituée successivement de groupes de g adresses successives à la suite, respectivement, des groupes de la pluralité précédente, g, g+1...g+g-1 ; s+g, s+g+1...s+g+g-1 ; 2s+g, 2s-Fg-F1, ...2s+g+g-1 ;... et ainsi de suite pour les autres pluralités d'adresses, 20 s et g étant des naturels puissance de deux, s>g, s>1, caractérisé en ce que, la séquence d'adressage étant mise en correspondance avec la séquence de comptage par incrémentation du compteur, pour chaque mot de comptage correspondant à une puissance de deux, la sortie du compteur au niveau binaire 1 est reliée à l'entrée adresse de la mémoire vidéo dont le mot 25 d'adresse mis en correspondance est au niveau binaire 1. Selon une mise en oeuvre particulière, la séquence d'adressage prédéfinie correspond à un désentrelacement de trames, les lignes paires se succédant dans la première partie de la mémoire et les lignes impaires se succédant dans la deuxième partie de la mémoire. 3o Selon une mise en oeuvre particulière, la séquence d'adressage prédéfinie correspond à une lecture ou écriture, 2 lignes par 2 lignes ou 4 lignes par 4 lignes, d'une mémoire vidéo contenant, dans une première partie de la 4 mémoire une trame paire et dans une deuxième partie de la mémoire une trame impaire. L'invention a pour principal avantage que de simples liaisons filaires entre le compteur d'adressage et le bus d'adresses de la mémoire vidéo sont nécessaires pour adresser la mémoire. Simplement, chacune des sorties du compteur correspondant à un poids du mot de comptage est reliée à chacune des entrées adresse de la mémoire vidéo correspondant à un poids de l'adresse mémoire, d'une manière spécifique définie par une table de 1 o correspondance de ces poids, relative à la séquence d'adressage souhaitée. Quelle que soit la complexité de l'adressage successif de la séquence, la même performance est garantie. Une simple ligne de codage définissant la correspondance entre les sorties du compteur et les entrées adresse de la mémoire vidéo est 15 suffisante. Aucune simulation et mise au point ne sont nécessaires pour valider le logiciel correspondant à la logique de commande. Brève description des dessins D'autres particularités et avantages de l'invention apparaitront 20 clairement dans la description suivante donnée à titre d'exemple non limitatif, et faite en regard des figures annexées 1 et 2 qui représentent les tableaux de correspondance entre les sorties compteur et les entrées adresse de la mémoire vidéo. 25 Description détaillée des modes de réalisation de l'invention L'idée repose sur la définition d'un compteur en binaire et non en entier, qui offre l'avantage de voir l'évolution d'au moins un bit à chaque cycle d'horloge, et l'utilisation de cette information pour adresser comme souhaité un élément tel qu'une mémoire pour y écrire ou y lire des données suivant une 30 logique déterminée et déterministe, c'est çà dire non aléatoire. Pour adresser de façon linéaire une mémoire, par exemple l'incrémenter de l'adresse 0 à l'adresse 63, il suffit de faire correspondre chaque sortie d'un compteur 6 bits, d'incrémentation unitaire, à chaque entrée adresse de l'élément ciblé, de poids correspondant. Ceci représente le cas le plus simple, c'est pourquoi en général l'adresse est directement incrémentée sans passer par un circuit intermédiaire. Par contre, l'exploitation classique d'un compteur pour effectuer une séquence d'adressage qui ne correspond pas à une simple incrémentation d'adresse, par exemple pour un stockage dans un ordre prédéfini, n'est plus possible, nécessitant l'aide d'une combinaison de portes logiques ou d'un algorithme de codage définissant cette logique. L'invention, comme indiqué plus haut, permet de se passer de tels circuits et/ou algorithmes en faisant correspondre, d'une manière dépendant de la séquence 1 o d'adressage, les bits du mot de comptage aux bits d'adresse de la mémoire vidéo, de la manière décrite ci-après. Le tableau en figure 1 comporte une première colonne représentant la séquence de comptage d'un compteur 6 bits, donc de 0 à 63. 15 La deuxième colonne représente la séquence prédéterminée d'adressage souhaité de la mémoire vidéo pour l'enregistrement des données. D'une autre manière, les mots se présentant successivement sur le bus de données de la mémoire vidéo doivent être enregistrés selon cette séquence qui doit être connue à l'avance. Dans le cas de l'exemple, il s'agit d'un désentrelacement, 20 enregistrement deux lignes par deux lignes, lignes d'une première trame aux adresses 0 à 31 et lignes d'une deuxième trame aux adresses 32 à 63. Ainsi, la séquence d'adressage est la suivante : 00, 01, 32, 33, 02, 03, 34, 35, 04, 05, 36, 37... Les colonnes 3 à 8 du tableau représentent les bits relatifs à la 25 valeur de l'adresse de la colonne 2, le bit de plus faible poids 20 à droite, le bit de plus fort poids 25 à gauche. Les bits sont numérotés 0 à 5 selon leur poids. Pour chaque puissance de deux du compteur, 20, 21, 22, 23, 24, 25, la valeur de l'adresse en colonne 2 est notée et le bit de poids correspondant du mot d'adresse est indiqué dans la colonne appropriée parmi 30 les colonnes 3 à 8, en mentionnant dans cette colonne le numéro de bit concerné du compteur, c'est-à-dire celui à la valeur 1. On remarque ainsi que ces adresses mémoires peuvent être obtenues directement de la sortie compteur à condition de relier la sortie compteur au bus adresses selon la correspondance suivante : Bit de poids 0 du compteur relié au bit de poids 0 de l'adresse. Bit de poids 1 du compteur relié au bit de poids 5 de l'adresse. Bit de poids 2 du compteur relié au bit de poids 1 de l'adresse. Bit de poids 3 du compteur relié au bit de poids 2 de l'adresse. Bit de poids 4 du compteur relié au bit de poids 3 de l'adresse. Bit de poids 5 du compteur relié au bit de poids 4 de l'adresse. En effet, pour chacune de ces adresses, tous les autres bits que ceux mentionnés sont à la valeur 0 puisque la sortie compteur correspondante est une valeur puissance de deux. Le deuxième tableau en figure 2 représente les mêmes première 15 et deuxième colonnes. Les colonnes 3 à 8 correspondent ici aux bits de sortie du compteur, le bit de plus faible poids à droite, celui de plus fort poids à gauche. Sont représentés, pour les bits en sortie compteur activés à 1 et correspondant aux mots de comptage puissances de deux, les valeurs numéraires souhaitées pour l'adresse en entrée mémoire vidéo. 20 Par exemple, pour la valeur 16 en sortie du compteur, le bit au niveau 1 est le bit de poids 4. La valeur souhaitée du mot d'adressage est la valeur 8 correspondant au bit de poids 3 au niveau 1. La ligne 2 du tableau 2 indique les numéros de bits de l'adresse mémoire pour ces valeurs souhaitées et donc la correspondance entre la sortie compteur (1 ère ligne) et l'entrée 25 mémoire (2ème ligne). Le tableau est complété en fonction de ces valeurs numéraires. Par exemple, la valeur de compteur 27 (011011) correspond aux bits de poids 0, 1, 3 et 4 à un. En mettant dans ces colonnes 4, 5, 7 et 8, la valeur représentative du poids pour le mot d'adressage et non pas celle pour le mot de 30 sortie du compteur, on a respectivement les valeurs 8, 4, 32 et 1. Leur somme correspond bien à la valeur d'adresse 45 (101101). 10 Ainsi, simplement en définissant les liaisons pour les seules puissances de deux, ce qui nous donne une seule possibilité, chaque adresse différente est affectée à un mot différent du compteur. L'ordre de comptage est lié à l'ordre de séquencement des adresses par cette mise en correspondance. Aucun décodage des bits du compteur n'est ainsi nécessaire pour assurer les 720 séquences d'adressage (soit factorielle 6) différentes possibles, dans le cas d'un adressage sur 6 bits, ce qui permet de garantir les mêmes performances en terme de fréquence de fonctionnement et les mêmes ressources nécessaires pour la mise en oeuvre, par exemple la surface nécessaire aux composants. D'autre part, l'absence de procédure de décodage, plus ou moins complexe, permet d'affirmer que le fonctionnement sera celui attendu, sans que soit nécessaire la moindre simulation pour valider la fonction souhaitée. La séquence d'adressage doit suivre certaines règles pour la mise en correspondance des sorties compteur avec les entrées adresse mémoire. Ainsi, l'adresse zéro est la première valeur adressée et correspond à la valeur zéro du compteur. Un groupe d'adresses consécutives de nombre g est défini. Ce groupe peut se limiter à une seule adresse. La séquence prédéfinie se compose alors, pour une pluralité d'adresse, d'une première adresse ou d'un premier groupe d'adresses suivi, après un saut de s adresses par rapport à cette première adresse ou première adresse du groupe, d'une deuxième adresse ou deuxième groupe d'adresses et ainsi de suite jusqu'à atteindre les dernières adresses de la mémoire. L'adresse ou le groupe d'adresses de la pluralité d'adresses suivante, dans la séquence, est alors la première adresse ou le premier groupe d'adresses succédant à la première adresse ou premier groupe d'adresses de la pluralité précédente. Un saut de même valeur est effectué comme précédemment jusqu'à atteindre les dernières adresses pour cette pluralité et ainsi de suite pour les pluralités d'adresses suivantes jusqu'à balayer l'ensemble des adresses de la mémoire. Par exemple, si g=2 et s=4, pour 16 valeurs d'adresse (mot d'adresse de 4 bits), on a la succession suivante : 0, 1,4,5,8,9, 12, 13,2,3,6,7, 10, 11, 14, 15. Pour g=2 et s=8, on a la succession d'adresses suivante : 0,1,8,9,2,3,10,11,4,5,12,13,6,7,14,15. Les conditions sur s et g sont bien sur s>g et s>1. Il est supposé également que les valeurs de s et g sont des puissances de deux. Ainsi, à chaque mot de comptage correspondant à une puissance de deux, lors de la séquence de comptage incrémentale, correspond un mot d'adresse qui est 1 o également une puissance de deux, lors du déroulement de la séquence d'adressage mise en correspondance avec la séquence de comptage. En fait, lorsque le compteur vaut 2p alors l'adresse vaut 2a. Simplement en reliant, pour chacune de ces correspondances de mots binaires puissances de deux, la sortie du compteur correspondant au bit à 1 du mot de comptage à l'entrée de 15 l'adresse mémoire correspondant au bit à 1 du mot d'adresse, la séquence de comptage incrémentale correspond à la séquence d'adressage spécifique. L'invention est décrite, dans ce qui précède, à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes 20 de l'invention sans pour autant sortir de son domaine. Les exemples sont relatifs à l'adressage d'une mémoire vidéo. L'utilisation d'autres types de composants de mémorisation laisserait le dispositif dans le périmètre de l'invention. 25 REVENDICATIONS1. Dispositif d'adressage d'une mémoire vidéo à partir d'un compteur, l'adressage se faisant selon une séquence prédéfinie non continument croissante, la séquence d'adressage consistant en une sélection de pluralités d'adresses successives, une première pluralité d'adresses étant constituée successivement d'un premier groupe de g adresses successives 0, 1, 2, , ...g-1, un groupe pouvant se limiter à une seule adresse, puis de groupes suivants de g adresses successives correspondant à un saut de s adresses par rapport à la première adresse du groupe d'adresses précédent, s, s+1, s+g-1 ; 2s, 2s+1,...2s+g-1 ;..., lors d'un premier balayage des adresses successives de la mémoire, une deuxième pluralité d'adresses, lors d'un deuxième balayage des adresses successives de la mémoire, étant constituée successivement de groupes de g adresses successives à la suite, respectivement, des groupes de la pluralité précédente, g, g+1...g+g-1 ; s+g, s+g+1...s+g+g-1 ; 2s+g, 2s+g+1, ...2s+g+g-1 ;... et ainsi de suite pour les autres pluralités d'adresses, s et g étant des naturels puissance de deux, s>g, s>1, caractérisé en ce que, la séquence d'adressage étant mise en correspondance avec la séquence de comptage par incrémentation du compteur, pour chaque mot de comptage correspondant à une puissance de deux, la sortie du compteur au niveau binaire 1 est reliée à l'entrée adresse de la mémoire vidéo dont le mot d'adresse mis en correspondance est au niveau binaire 1. 2. Dispositif selon la revendication 1, caractérisé en ce que la séquence d'adressage prédéfinie correspond à un désentrelacement de trames, les lignes paires se succédant dans la première partie de la mémoire et les lignes impaires se succédant dans la deuxième partie de la mémoire. 3. Dispositif selon la revendication 1, caractérisé en ce que la séquence 3o d'adressage prédéfinie correspond à une lecture ou écriture, 2 lignes par 2 lignes ou 4 lignes par 4 lignes, d'une mémoire vidéo contenant, dans une première partie de la mémoire une trame paire et dans une deuxième partie de la mémoire une trame impaire.