CA2419795A1 - Module de controle comprenant une memoire morte a consommation electrique reduite - Google Patents

Module de controle comprenant une memoire morte a consommation electrique reduite Download PDF

Info

Publication number
CA2419795A1
CA2419795A1 CA002419795A CA2419795A CA2419795A1 CA 2419795 A1 CA2419795 A1 CA 2419795A1 CA 002419795 A CA002419795 A CA 002419795A CA 2419795 A CA2419795 A CA 2419795A CA 2419795 A1 CA2419795 A1 CA 2419795A1
Authority
CA
Canada
Prior art keywords
rom
read
control module
memory
module according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002419795A
Other languages
English (en)
Inventor
Philippe Mosch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Semtech Neuchatel SARL
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2419795A1 publication Critical patent/CA2419795A1/fr
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Abstract

Module de contrôle (1), comprenant les éléments suivants: une mémoire morte (2), une mémoire temporaire (6), dans laquelle les données dans ladite mémoi re morte peuvent être transférées afin d'être accessible depuis l'extérieur du module de contrôle, un contrôleur de lecture (3), pour sélectionner à chaque cycle de lecture les portions de ladite mémoire morte transférées dans ladit e mémoire temporaire, dans lequel les portions sélectionnées par le contrôleur de lecture dépendent du contenu de ladite mémoire morte. Avantage: réduction de la consommation électrique, puisque la mémoire morte ne doit pas être lue lorsque les données sont déjà disponibles dans la mémoire temporaire.</SDOAB >

Description

2 PCT/CH00/00442 Module de contrôle comprenant une mémoire morte à consommation électrique réduite La présente invention concerne un module de contrôle comprenant une mémoire morte, en particulier une mémoire d'instruction, s à consommation réduite. La présente invention s'applique en particulier aux modules de contrôle utilisés notamment dans les microprocesseurs, notamment dans les microprocesseurs "massivement" parallèles tels que les processeurs de traitement de signal (DSP, Digital Signal Processor).
On connaît déjà des microprocesseurs comprenant un module de 1o contrôle (control bloc) et un chemin de données (datapath) par lequel transitent les données traitées par le processeur. Le module de contrôle comporte fréquemment une mémoire morte dans laquelle sont mémorisées des instructions de commande pour les différents modules du datapath, par exemple pour une ou plusieurs unités arithmétiques et logiques, etc. Dans 1s le cas d'un processeur de traitement de signal, les instructions dans la mémoire sont fréquemment lues séquentiêllement ou selon une séquence prédéterminée afin d'exécuter des séquences d'opérations sur le signal, par exemple des opérations de filtrage numérique, des fonctions de transformation du type FFT, etc..
2o La figure 1 illustre de manière schématique un module 1' de contrôle utilisé dans des processeurs de signaux connus. Le module 1' comprend une ROM (Read-Only Memory) 2' de m lignes et de n colonnes dans laquelle sont stockées les instructions. Un démultiplexeur 5' permet de sélectionner la ligne qui doit être lue. Chacune des m X n cellules de la 2s ROM permet de stocker un bit indiquant un état logique zéro (0) ou un (1).
La figure 2 illustre quatre cellules avoisinantes parmi les m X n cellules d'une ROM 2' de type NOR. Les cellules 201 et 202 dans cet exemple comprennent un transistor permettant de coder un "zéro" logique; des "un" sont programmés dans les cellules 200 et 203 par l'absence de 30 transistor.
Côpie de confirmation Les drains de tous les transistors d'une même colonne sont reliés à une même connexion C1, C2, etc.. La source de tous les transistors est reliée à un potentiel commun Vss, par exemple à la masse. La grille des transistors d'une même ligne est reliée à une connexion commune L1, L2, s etc..
La mémoire morte 2' utilise en outre un circuit de précharge de colonne 4', constitué dans cet exemple par une ligne supplémentaire de transistors de précharge 40' dont la grille est connectée à une ligne de précharge CK, la source à une tension d'alimentation Vdd et le drain à
1o chacune des colonnes C1, C2, etc..
Certaines mémoires mortes utilisent en outre une répartition des colonnes en groupes de colonnes adjacentes, un multiplexeur permettant de sélectionner, à chaque moment, parmi chaque groupe, la colonne qui doit être activée. Le nombre de colonnes de la mémoire-est dans ce cas 1s supérieur au nombre de bits de sortie délivrés à chaque cycle de lecture.
La mémoire 2' est lue en appliquant une tension basse (par exemple Vss) à la ligne de préeharge CK, ce qui rend chaeun des transistors de précharge 40' passant de façon à "précharger" chaque colonne avec une tension Vdd indiquant un état logique "un". Dans une seconde phase 2o d'évaluation, une tension haute (par exemple Vdd) est appliquée sur la ligne sélectionnée par le démultiplexeur 5', par exemple sur la ligne L1, rendant ainsi passant chaque transistor sur cette ligne, dans cet exemple le transistor 201. La colonne (C2) à laquelle ce transistor (201) est connecté
est ainsi "tirée" par l'intermédiaire de ce transistor au potentiel Vss du drain, 2s indiquant un "zéro" logique. Le potentiel des colonnes (C1) qui ne sont pas reliées par un transistor à la ligne sélectionnée (L1) reste à Vdd, indiquant un "un" logique. L'instruction mémorisée dans la ligne lue (L1) est donc disponible sur les colonnes C1, C2,.. de la ROM et peut être chargée dans le registre d'instruction 6' (illustré sur la figure 1) pour commander les so modules de traitement du signal dans le datapath du processeur. La lecture de la ROM est poursuivie lors du cycle suivant en sélectionnant une autre ligne sous le contrôle du contrôleur d'adresse évoqué plus haut.
3 La mémoire morte 2' consomme donc de l'électricité à chaque cycle de lecture pour précharger toutes les colonnes. Dans le cas d'une mémoire d'instructions utilisée dans un processeur de traitement de signal "massivement" parallèle, c'est-à-dire comprenant un grand nombre de s modules de traitement de signal en parallèle dans le datapath, le nombre de colonnes dans la mémoire d'instruction 2', et de manière générale la taille de cette mémoire, devient très importante, occasionnant une consommation électrique importante.
Dans les systèmes de l'art antérieur, toutes les colonnes sont 1o préchargées à chaque cycle, indépendamment de l'utilisation qui est faite de l'instruction lue. La consommation électrique à chaque cycle reste donc importante même lorsque seule une partie de l'instruction lue dans la mémoire est réellement utilisée pour commander les modules correspondants du datapath lors de ce cycle. Lorsque le programme 1s mémorisé dans la mémoire n'utilise pas de manière optimale les possibilités de traitement parallèle du processeur, et que de nombreux modules du datapath restent inutilisés à chaque cycle d'instruction, la consommation électrique de la mémoire morte 2' devient critique, particulièrement si le processeur est destiné à être utilisé dans un dispositif autonome 2o électriquement, par exemple dans une prothèse auditive, un téléphone portable, un récepteur GPS, un modem, etc.
On connaît d'autres types de mémoires mortes dynamiques ou statiques qui toutes présentent cependant l'inconvénient de consommer un courant électrique pour la lecture de chaque colonne.
2s Un but de la présente invention est donc de proposer un module de contrôle amélioré par rapport aûx mémoires de l'art antérieur, en particulier une mémoire d'instruction dont la consommation électrique est réduite.
En particulier, un but de la présente invention est de proposer un 3o module de contrôle à consommation électrique réduite et apte à être
4 utilisé dans un processeur massivement parallèle, notamment dans un processeur de traitement de signal.
La demande de brevet EP0917154 décrit une mémoire d'instructions dans laquelle la consommation électrique est réduite en optimisant le codage des instructions programmées de manière à limiter le nombre de "zéros" logiques, et donc le nombre de transistors dans la mémoire. La plupart des colonnes ne sont donc pas déchargées à chaque cycle d'évaluation, ce qui évite de devoir les recharger lors du cycle de précharge suivant.
1o Toutefois, dans un circuit "idéal ", la largeur de la ROM (c'est-à-dire le nombre de bits en sortie) correspond au nombre d'instructions à
coder, y compris les opérandes pour ces instructions. Par exemple, une ROM
de largeur 1.6 bits peut être utilisée pour coder 2'6 instructions différentes.
Le degré de liberté disponible pour coder les différentes instructions dans 1s une architecture de processeur optimisé est donc limité, en sorte que la réduction de consommation que permet la solution décrite dans EP0917154 est limitée.
Par ailleurs, le code mémorisé dans la mémoire ROM doit être complètement transcrit pour réduire le nombre de zéros logiques, en sorte 2o que des compilateurs spéciaux doivent être utilisés pour générer ce code.
Ces compilateurs ne sont pas toujours disponibles selon les applications. En outre, ces mémoires ne peuvent pas être utilisées en remplacement d'une mémoire d'instruction existante dans un processeur sans devoir transcrire complètement le code des applications écrites pour ce processeur.
2s Un but de la présente invention est donc également de proposer un module de contrôle à consommation électrique réduite, pouvant âtre programmé à l'aide d'instructions modifiées seulement de manière marginale par rapport aux instructions de programmation d'un module de contrôle conventionnel.

D'autres circuits existent qui permettent de réduire la consommation électrique en modifiant le circuit de précharge 4. En dépit des améliorations qu'autorisent ces circuits, un besoin subsiste pour des solutions permettant de réduire davantage la consommation.
s Selon l'invention, les objectifs ci-dessus sont atteints au moyen d'un module de contrôle comportant les caractéristiques de la revendication indépendante. Des variantes préférentielles sont par ailleurs indiquées dans les revendications dépendantes.
En particulier, ces objectifs sont atteints au moyen d'un module io comprenant une mémoire morte, une mémoire temporaire dans laquelle les données de ladite mémoire morte peuvent être transférées afin d'étre accessible depuis l'extérieur du module de contrôle, un contrôleur de lecture pour sélectionner à chaque cycle les portions de ladite mémoire morte :transférées dans ladite mémoire temporaire, et dans lequel les 1s portions sélectionnées par le contrôleur de lecture dépendent du contenu de la mémoire morte.
Cette solution permet de ne pas effectuer de lecture de la mémoire morte lorsque les données lues se trouvent déjà dans le registre d'instruction à la sortie de la mémoire morte. La consommation électrique 2o est donc réduite en évitant la précharge des colonnes contenant, sur la ligne sélectionnée, des données déjà disponibles hors de la mémoire morte.
Le contrôleur de lecture permet de choisir, à chaque cycle de lecture, si la ligne de la mémoire sélectionnée par le contrôleur d'adresses doit étre lue, ou quelles portions de cette ligne doivent être lues. Le 2s fonctionnement du contrôleur d'adresse est déterminé par les données lues précédemment dans la mémoire morte, par exemple par un ou plusieurs bits ajoutés à l'instruction précédente.
On connaît déjà l'usage de mémoires caches par lesquelles on fait transiter les données en sortie d'une mémoire principale à accès lent. Un so contrôleur d'adresse vérifie à chaque accès en lecture de la mémoire si l'adresse indiquée a déjà été demandée récemment. Lorsque c'est le cas, les données recherchées sont extraites de la mémoire cache au lieu d'être lues dans la mémoire principale plus lente, ce qui permet de réduire le temps d'accès. Les mémoires caches ne permettent toutefois généralement pas de s réduire la consommation électrique; au contraire, la consommation électrique de la mémoire cache rapide est souvent très importante. Par ailleurs, ces circuits nécessitent un contrôleur d'adresse complexe qui puisse vérifier si les données recherchées sont disponibles dans la mémoire cache;
la consommation de ce contrôleur s'ajoute à celle des mémoires. De 1o surcroît, ces mémoires caches ne sont pas directement reliées à la sortie de la mémoire morte, qui nécessite donc également une mémoire temporaire dans laquelle les données lues doivent être transférées à chaque cycle.
L'invention ne nécessite en revanche pas de mémoire temporaire ou de mémoire cache autre que le registre utilisé directement à la sortie de 1s _ la mémoire morte pour mémoriser les données lues à chaque cycle. Par ailleurs, elle permet également d'éviter la lecture de lignes ou de sections de lignes qui n'ont encore jamais été évaluées et qui ne se trouveraient donc pas dans une mémoire cache.
L'invention sera mieux comprise à l'aide de la description donnée 2o à titre d'exemple et illustrée par les figures suivantes:
La figure 1 déjà décrite illustre de manière schëmatique la structure d'un module de contrôle selon l'art antérieur.
La figure 2 déjà décrite illustre la structure de quatre cellules extraites d'une mémoire morte de type NOR, pouvant être utilisées dans le 2s module de l'invention.
La figure 3 illustre de manière schématique la structure d'un module de contrôle selon une variante préférentielle de l'invention La figure 4 illustre de manière plus détaillée la structure d'un module de contrôle selon une variante prëférentielle de l'invention La figure 5 est un tableau qui montre la conversion de code nécessaire pour programmer la mémoire d'instruction de l'invention.
Bien que la description qui suive se rapporte plus particulièrement au cas d'une mémoire morte d'instructions dans un s processeur de traitement de signal, l'homme du métier comprendra que l'invention peut en fait être appliquée à tout type de mémoire comprenant des portions lues dans une séquence prédéterminée.
La figure 3 illustre de manière schématique la structure d'un module de contrôle selon l'invention, cette structure étant illustrée de io manière plus détaillée sur la figure 4.
Le module de contrôle 1 comprend une ROM (Read Only Memory) 2 de m lignes et de (n+o) bits dans laquelle sont stockées les instructions. Chacune des m X (n+o) cellules de la ROM permet de stocker un bit indiquant un état logique zéro (0) ou un (1). Les cellules peuvent par 1s exemple être constituées par des éléments de type NOR comme illustré sur la figure 2, ou par n'importe quel autre type d'élément utilisé dans des mémoires de type ROM,EEPROM, Flash ou RAM.
Le module comprend en outre un cireuit de précharge de colonne 4, constitué par exemple par une ligne supplémentaire de transistors de 2o précharge comme illustré sur la figure 2, ou par d'autres moyens de précharge de type connu permettant d'imposer une tension de précharge, par exemple Vdd, sur les colonnes sélectionnées lors des cycles de précharge. Selon une caractéristique de l'invention, le circuit de précharge 4 permet de précharger sélectivement différentes sections ou groupes de 2s colonnes, comme on le verra plus loin.
A chaque cycle, la ligne indiquée par le contrôleur d'adresse non représenté est sélectionnée par le démultiplexeur 5 qui applique une tension de sélection (par exemple Vdd) sur cette ligne afin de rendre passant tous les transïstors sur cette ligne. La tension des colonnes 3o préchargées correspondant à ces transistors est ainsi "tirée" au potentiel ô
Vss du drain, tandis que les autres colonnes restent préchargées.
L'instruction correspondant aux colonnes préchargées de la ligne sélectionnée est donc disponible sur les colonnes et chargée dans un registre d'instruction 6 sous le contrôle d'un signal d'horloge CK. Les s données chargées dans le registre d'instructions 6 sont par exemple utilisées pour déterminer le fonctionnement de différents modules dans le datapath d'un processeur de traitement de signal.
Selon l'invention, une partie des bits lus à chaque cycle est chargée dans un contrôleur de lecture et de précharge 3 URC tandis que les 1o n autres bits sont transférés dans le registre d'instructions 6 par l'intermédiaire d'un circuit de contrôle de précharge et de transfert 4. Les o bits chargés et mémorisés dans le contrôleur 3 déterminent quelles sections de la mémoire morte 2 devront être préchargées et transférées lors de cycles de lecture ultérieurs, par exemple lors du prochain cycle. .Le 1s fonctionnement du eircuit de contrôle de précharge et de transfert 4 à
chaque cycle dépend donc de l'état du contrôleur 3 qui est déterminé, au cours des cyeles de lecture précédents, en fonction du contenu de la mémoire morte 2.
. Dans une variante préférentielle de l'invention, chaque ligne de 20 la mémoire morte 2 est divisée en plusieurs sections prédéfinies comportant chacune une ou plusieurs colonnes. Les sections sélectionnées lors de chaque cycle, c'est-à-dire celles qui sont préchargées et dont le contenu est transféré dans le registre 6, sont déterminées par un ou plusieurs bits mémorisés dans le contrôleur 3 au cours d'un ou plusieurs cycles de lecture 2s précédents. Chaque section regroupe de préférence les colonnes dans lesquelles sont mémorisés les bits de commande d'un module donné du datapath, par exemple d'une ALU etc. Le contrôleur 3 permet ainsi de déterminer, en fonction des indications lues dans la ROM 2 au cours des cycles précédents, quels sont les modules qui reçoivent une nouvelle so instruction. La largeur des différentes sections, c'est-à-dire le nombre de colonnes, peut être identique ou différente en fonction de la largeur du mot de commande de chaque module du datapath.

Dans une autre variante, le contrôleur 3 permet de choisir individuellement et lors de chaque cycle les colonnes qui doivent être préchargées et transférées. Cette variante offre une souplesse maximale, puisqu'il est possible de réutiliser des parties d'instructions ou d'opérandes s commandant chaque module, au prix toutefois d'un nombre o de bits de commande important et donc d'un accroissement substantiel de la largeur de la ROM et éventuellement de la consommation.
Dans une autre variante simplifiée, chaque ligne de la mémoire morte 2 comprend un seul bit indiquant simplement si Ia ligne d'instruction 1o suivante doit être lue ou si elle est identique au contenu du registre d'instructions 6. Cette solution nécessite un seul bit supplémentaire par ligne. Toutefois, chaque ligne doit être complètement relue même lorsqu'elle diffère très peu de la ligne précédente. Un exemple de réalisation de cette variante est décrit plus bas en relation avec les figure 1s et 5.
Le contrôleur de lecture et de précharge 3 est de préférence agencé de manière à recevoir à chaque cycle de lecture des instructions utilisées pour déterminer les sections et les colonnes qui devront être préchargées et transférées au cours du cycle suivant immédiatement le a~o cycle en cours. II permet ainsi d'éviter de relire plusieurs fois de suite les mêmes instructions dans la ROM 2. On comprendra toutefois qu'il est également possible dans le cadre de cette invention de réaliser le contrôleur 3 de manière à ce qu'il interprète les instructions lues dans la ROM de façon à contrôler la lecture de n'importe quelle section de cette 2s ROM au cours de n'importe quel cyele ou groupe de cycles de lecture ultérieurs. Par exemple, il est possible de prévoir des instructions plus ou moins complexes qui seront interprétées par le contrôleur 3 pour suspendre la lecture de portions de la ROM selon différents schémas et en fonction de différentes conditions, par exemple en fonction du contenu du contrôleur so d'adresse ou même en fonction du contenu d'autres portions de la ROM ou de l'état de registres dans le datapath. II est notamment possible de suspendre la lecture de lignes ou de portions de lignes en réponse à la détection d'un événement prédéfini dans le flux de données traité par le datapath; un circuit d'amorce ("trigger") peut être spécifiquement prévu pour détecter ces conditions. Par ailleurs, il est aussi possible de suspendre la lecture de sections de ligne lorsque les modules commandés par les instructions lues dans ces sections sont en mode de veille ou d'arrêt.
5 La mémoire temporaire d'instructions 6 est de préférence constituée par une seule ligne d'éléments de mémorisation, par exemple de bascules, comme on le verra plus loin. Elle permet ainsi de stocker une ligne complète d'instruction qui sera régénérée en tout ou en partie à chaque cycle. II est toutefois également possible d'utiliser une mémoire temporaire 1o permettant de stocker plusieurs lignes d'instructions qui pourront être réutilisées en tout ou en partie lors de plusieurs cycles ultérieurs, en fonction de l'état du contrôleur 3.
Lorsque la séquence d'instructions programmées dans la ROM 2 utilise de façon efficace les possibilités de traitement parallèle des modules du datapath, la plupart des instructions seront régénérées de façon importante à chaque cycle. Le nombre de sections qui peuvent être réutilisées est donc généralement inférieur au nombre de sections qui doivent être relues. Selon l'invention, les bits indiquant qu'une section de la ROM 2 doit être transférée dans la mémoire temporaire 6 seront donc de 2o préférence codés avec un état logique "un" consommant moins de courant lors de la lecture que les bits indiquant qu'un nouveau transfert n'est pas nécessaire. Rien n'empêche toutefois de coder l'instruction de transfert avec des états logiques différents selon les sections, en fonction du taux de réutilisation des instructions dans chaque section.
Nous allons maintenant décrire de manière plus détaillée à l'aide de la figure 4 un exemple de réalisation du module de contrôle de l'invention. Le module comprend une mémoire morte 2 avec un démultiplexeur 5, un contrôleur de lecture 3 incluant les éléments 30 à 33, un circuit de précharge 4 illustré de manière simplifiée et incluant les 3o éléments 41 ainsi qu'un registre d'instructions 6.

La mémoire morte 2 est dans cet exemple de type NOR et comporte m lignes et n+o bits de sortie. La mémoire est programmée en disposant à chaque intersection de lignes et de colonnes un transistor pour coder un "zéro" logique, ou pas de transistor pour coder un "un" logique.
s Les colonnes sont réparties en groupes de colonnes adjacentes, un multiplexeur 21 permettant de sélectionner à chaque moment, parmi chaque groupe, une seule colonne qui doit être activëe. Cette disposition permet de réduire le nombre de ligne et d'augmenter le nombre de colonnes de la mémoire, et ainsi d'obtenir une forme de la mémoire 1o approximativement carrée, ou du moins adaptée à la place à disposition sur le circuit intégré. Le nombre de colonnes de la mémoire est dans ce cas supérieur au nombre n+o de bits de sortie délivrés à chaque cycle de lecture. La mémoire illustrée sur la figure 4 comporte quatre groupes de quatre colonnes chacun; on comprendra qu'en pratique un nombre de 1s groupes beaucoup plus important et/ou un nombre de colonnes par groupes différent peuvent être utilisés.
La mémoire morte 2 est lue en préchargeant, au moyen des transistors de précharge 41, une seule colonne dans chacun des groupes.
Les colonnes sélectionnées par les éléments 21, en fonction des bits 2o correspondants du compteur d'adresse non représenté, sont donc chargées avec un potentiel Vdd tandis que les autres colonnes restent flottantes.
Au cours du cycle d'évaluation, une ligne indiquée par les autres bits fournis par le compteur d'adresse est sélectionnée par le démultiplexeur 5 en appliquant une tension élevée suffisante pour rendre 2s les transistors dont la grille est connectée à cette ligne passants. Les colonnes préchargées au cours du cycle de précharge précédent prennent donc un état logique qui dépend de la présence ou de l'absence de transistors sur la ligne sélectionnée; cet état est ensuite transféré par l'intermédiaire des multiplexeurs 21 et des éléments logiques 31 dans le so registre d'instructions 6, comme on le verra plus loin.
Le contrôleur d'adresse balaye la mémoire séquentiellement ligne par ligne, en sélectionnant pour chaque ligne tout d'abord la première colonne de chaque groupe, puis la seconde, et ainsi de suite jusqu'à la dernière de chaque groupe. Dans une variante préférentielle, la mémoire est lue en balayant successivement toutes les lignes avec la première colonne de chaque groupe sélectionnée, puis en passant à la s lecture des deuxièmés colonnes de chaque groupe, et ainsi de suite. Cette variante permet de limiter la décharge des colonnes par lecture de bits non significatifs entre deux cycles de précharge, et donc de réduire le courant de précharge nécessaire. On comprendra toutefois pue la même mémoire peut être balayée séton ces deux modes simplement en permutant les bits 1o de poids forts avec les bits de poids faibles du contrôleur d'adresse.
Sur l'exemple représenté, le bit fourni à chaque cycle par le premier multiplexeur 21 (à gauehe de la figure) est ehargé au flanc montant du signal d'horloge CIC dans un élément de mémoire 32, par exemple une bascule. Ce bit est à l'état logique "zéro" lorsque les données is accédées lors du prochain cycle doivent être transférées dans le registre d'instructions 6 , et à l'état logique "un" lorsque aucun transfert n'est nécessaire. Une porte logique 30 de type OU additionne le bit mémorisé
dans l'élément de mémoire 32 avec le signal d'horloge CIC. La sortie de la porte 30 prend done l'état logique "zéro" uniquement lorsque le signal CIC
2o est à "zéro" ET que un "zéro" est mémorisé dans l'élément 32. Les transistors de précharge 41 préchargent les colonnes sélectionnées par les multiplexeurs 21 lorsque cette condition est satisfaite.
Des portes logiques 31 de type OU additionnent le signal fourni par chaque multiplexeur 21 avec le bit de sortie de l'élément de mémoire 2s 32. L'état de sortie des portes 31 prend donc l'état logique "zéro"
uniquement lorsqu'un "zéro" est mémorisé dans l'élément de mémoire 32 (indiquant une mise à jour nécessaire) ET qu'un "zéro" est fourni par le multiplexeur 21 correspondant. Le signal à la sortie des portes 31 est ehargé
dans les éléments de mémoire correspondants 60 au flanc montant d'un so signal délivré par la porte logique "ET" 33, c'est-à-dire lorsqu'un "zéro"
est mémorisé dans l'élément de mémoire 32 ET que le signal d'horloge CK
passe à "un"

La valeur mémorisée dans l'élément de mémoire 32 détermine donc si les colonnes sélectionnées lors du prochain cycle doivent être préchargées par les transistors 41 et si leur contenu doit être mémorisé
dans les éléments de mémoire 60.
s On comprendra que des adaptations minimes peuvent étre apportées à ce circuit pour définir plus précisément, à l'aide de plusieurs bits ou de plusieurs phases à chaque cycle, quelles portions de la mémoire doivent être préchargées et transférées dans le registre d'instructions 6. Les portions de la mémoire choisies peuvent par exemple comprendre à un ou 1o plusieurs groupes prédéfinis, ou à n'importe quelle section de la mémoire morte 2.
La figure 5 illustre schématiquement et à titre d'exemple le transcodage qui doit être effectué sur la séquence d'instructions de commande indiquée dans la partie gauche du tableau pour programmer la is mémoire morte de l'invention. Le transcodage consiste simplement à
ajouter à chaque instruction un bit de programmation de la bascule 32, qui prend la valeur logique "un" lorsque l'instruction suivante est identique et ne doit donc pas être relue dans la mémoire morte 2 (deuxième colonne de la figure). Comme déjà indiqué plus haut, on pourrait aussi, en adaptant 2o très légèrement le circuit de la figure 4, coder les instructions de mise à
jour du registre 6 par des "un" afin de réduire la consommation électrique dans une application typique du circuit.
Les portions de la mémoire morte qui ne seront pas lues en raison du codage de l'instruction précédente peuvent être programmées à
2s n'importe quelle valeur. Une réduction supplémentaire de la consommation électrique peut être obtenue en les programmant avec "un"
logique, de façon à réduire le nombre de transistors dans la mémoire. Le codage correspondant est indiqué sur la troisième colonne de la figure 5.
La présente invention concerne donc un module de contrôle 1 3o comportant les caractéristiques revendiquées et dont un mode de réalisation a été décrit ci-dessus. La présente invention concerne toutefois également une mémoire morte 2 programmée de la manière décrite de façon à pouvoir être utilisée dans un tel module de contrôle, ainsi qu'un support de données informatiques quelconque, par exemple de type magnétique, optique ou magnéto-optique, dans lequel est mémorisée une séquence d'instructions pouvant être chargée dans une telle mémoire pour commander un module de contrôle du type revendiqué en obtenant les avantages attendus. La présente invention concerne également des circuits intégrés complets, par exemple vendus sous la forme de composants individuels, notamment des processeurs de signaux, et des dispositifs 1o d'assistance auditive équipés de tels circuits. Par ailleurs, l'invention peut être commercialisée sous la forme de bibliothèques de modules électroniques, par exemple sous la forme d'un fichier électronique décrivant le module de contrôle sous une forme fonctionnelle (netlist) ou structurelle (topographie), par exemple sous la forme d'un support de 1s données informatiques contenant un tel fichier électronique décrivant la fonction et/ou la topographie circuit électronique, apte à être ouvert ou importé dans un compilateur de circuit intégré pour générer les masques de fabrication du module de contrôle revendiqué.
Bien que la description ci-dessus décrive de manière plus détaillée 20 le cas particulier d'une mémoire morte dynamique de type NOR, l'homme du métier comprendra que l'invention peut également être appliquée à
d'autres types de mémoires dynamiques, ou même à des mémoires mortes de type statique. Par ailleurs, l'invention peut aussi être appliquée à des mémoires dans lesquelles la lecture se fait à l'aide d'amplificateurs de sens 2s ("sense amplifiers"). Tout comme la précharge des colonnes non lues peut être coupée, on peut aussi interrompre l'alimentation des amplificateurs de sens lorsqu'il n'est pas nécessaire de lire les colonnes correspondantes.
L'homme du métier comprendra par ailleurs que l'invention peut également être appliquée avee des composants autres que des ROMS, par 3o exemple avec des composants de type EEPROM, FPGA, Flash ou RAM.

Claims (18)

Revendications
1. Module de contrôle (1), comprenant les éléments suivants:
une mémoire morte (2), une mémoire temporaire (6), dans laquelle les données de ladite mémoire morte (2) peuvent être transférées afin d'être accessible depuis l'extérieur du module de contrôle, un contrôleur de lecture (3), pour sélectionner à chaque cycle de lecture les portions de ladite mémoire morte (2) transférées dans des portions de ladite mémoire temporaire (6), caractérisé en ce que lesdites portions sélectionnées par ledit contrôleur de lecture (3) dépendent du contenu de ladite mémoire morte.
2. Module de contrôle selon la revendication 1, caractérisé en ce que ladite mémoire morte (2) comporte au moins un bit qui indique une portion de ladite mémoire morte (2) qui se trouve déjà dans ladite mémoire temporaire (6) lors de l'accès séquentiel au contenu de ladite mémoire morte, ce bit permettant de commander ledit contrôleur de lecture (3) en sorte que ladite portion n'est pas sélectionnée pour être transférée dans ladite mémoire temporaire (6).
3. Module de contrôle selon l'une des revendications précédentes, contenant un circuit de précharge (4) des colonnes de ladite mémoire morte (2), les colonnes préchargées à chaque cycle de lecture dépendant du contenu de ladite mémoire morte (2).
4. Module de contrôle selon la revendication précédente, dans lequel seules les colonnes correspondant auxdites portions sélectionnées par ledit contrôleur de lecture (3) sont préchargées.
5. Module de contrôle selon l'une des revendications 1 ou 2, contenant un circuit de lecture des colonnes de ladite mémoire morte (2), ledit circuit de lecture incluant des amplificateurs de sens, les amplificateurs de sens activés à chaque cycle de lecture pour lire des colonnes dépendant du contenu de ladite mémoire morte (2).
6. Module de contrôle selon l'une des revendications précédentes, dans lequel chaque ligne de ladite mémoire morte (2) est divisée en plusieurs sections, ledit contrôleur de lecture (3) sélectionnant en fonction du contenu de ladite mémoire morte (2) les sections de la ligne sélectionnée transférées dans ladite mémoire temporaire (6) à chaque cycle de lecture.
7. Module de contrôle selon la revendication précédente, dans lequel au moins certaines lignes de ladite mémoire morte (2) contiennent au moins un bit indiquant les sections transférées dans ladite mémoire temporaire (6) lors d'au moins un cycle de lecture ultérieur.
8. Module de contrôle selon la revendication précédente, dans lequel chaque ligne de ladite mémoire morte (2) contient au moins un bit indiquant les sections transférées dans ladite mémoire temporaire (6) lors du prochain cycle de lecture.
9. Module de contrôle selon la revendication précédente, dans lequel ladite mémoire morte (2) consomme plus de courant pour la lecture d'un bit ayant un premier niveau logique que pour la lecture d'un bit ayant un second niveau logique, et dans lequel les bits indiquant qu'une section doit être transférée sont codés avec ledit second niveau logique.
10. Module de contrôle selon l'une des revendications précédentes, dans lequel ladite mémoire temporaire (6) est constituée par un registre d'instructions.
11. Module de contrôle selon l'une des revendications 6 à 10, dans lequel ladite mémoire morte (2) consomme plus de courant pour la lecture d'un bit ayant un premier niveau logique que pour la lecture d'un bit ayant un second niveau logique, et dans lequel la concentration de bits ayant ledit premier niveau logique est plus élevée dans les sections qui ne doivent pas être transférées dans ladite mémoire temporaire.
12. Module de contrôle selon l'une des revendications 2 à 11, dans lequel ladite mémoire morte (2) consomme plus de courant pour la lecture d'un bit ayant un premier niveau logique que pour la lecture d'un bit ayant un second niveau logique, et dans lequel ladite portion non sélectionnée de ladite mémoire morte (2) est codée avec des bits ayant le second niveau logique.
13. Module de contrôle selon l'une des revendications précédentes, dans lequel les colonnes de ladite mémoire morte sont divisées en plusieurs groupes, une pluralité de multiplexeurs (21) permettant de sélectionnées à chaque cycle de lecture une colonne dans chaque groupe de colonnes, seules les colonnes sélectionnées étant préchargées et lues durant ledit cycle.
14. Module de contrôle selon la revendication précédente, dans lequel ledit contrôleur de lecture (3) détermine à chaque cycle lesquels des signaux à la sortie desdits multiplexeurs (21) sont transférés dans un élément de ladite mémoire temporaire (6).
15. Processeur de traitement de signal comportant au moins un module de contrôle (1) selon l'une des revendications précédentes.
16. Dispositif d'aide auditive comprenant au moins un processeur de traitement de signal selon la revendication précédente.
17. Mémoire morte (2) dans laquelle est mémorisée une séquence d'instructions pour un chemin de données dans un microprocesseur, caractérisé en ce qu'une portion de chaque instruction indique si au moins une portion de l'instruction suivante dans ladite séquence est identique ou si elle doit être relue.
18. Support de données informatique contenant un fichier électronique décrivant la fonction et/ou la topographie circuit électronique, apte à être ouvert ou importé dans un compilateur de circuit intégré pour générer les masques de fabrication d'un module de contrôle selon l'une des revendications 1 à 14.
CA002419795A 2000-08-17 2000-08-17 Module de controle comprenant une memoire morte a consommation electrique reduite Abandoned CA2419795A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CH2000/000442 WO2002015192A1 (fr) 2000-08-17 2000-08-17 Module de controle comprenant une memoire morte a consommation electrique reduite

Publications (1)

Publication Number Publication Date
CA2419795A1 true CA2419795A1 (fr) 2002-02-21

Family

ID=4358115

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002419795A Abandoned CA2419795A1 (fr) 2000-08-17 2000-08-17 Module de controle comprenant une memoire morte a consommation electrique reduite

Country Status (6)

Country Link
US (1) US7107387B2 (fr)
AU (1) AU2000264226A1 (fr)
CA (1) CA2419795A1 (fr)
DE (1) DE10085482T1 (fr)
DK (1) DK200300237A (fr)
WO (1) WO2002015192A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4416572B2 (ja) * 2004-05-27 2010-02-17 富士通株式会社 信号処理回路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149734A (ja) * 1990-10-15 1992-05-22 Mitsubishi Electric Corp マイクロコンピュータ
KR0172366B1 (ko) * 1995-11-10 1999-03-30 김광호 불휘발성 반도체 메모리 장치의 독출 및 프로그램 방법과 그 회로
JPH09319569A (ja) * 1996-05-31 1997-12-12 Mitsubishi Electric Corp マイクロコンピュータ
US6279069B1 (en) * 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
US6336166B1 (en) * 1997-04-07 2002-01-01 Apple Computer, Inc. Memory control device with split read for ROM access
US5940332A (en) * 1997-11-13 1999-08-17 Stmicroelectronics, Inc. Programmed memory with improved speed and power consumption
FR2793591B1 (fr) * 1999-05-12 2004-01-02 St Microelectronics Sa Memoire morte a consommation statique reduite

Also Published As

Publication number Publication date
US7107387B2 (en) 2006-09-12
US20030156480A1 (en) 2003-08-21
DE10085482T1 (de) 2003-07-03
WO2002015192A1 (fr) 2002-02-21
AU2000264226A1 (en) 2002-02-25
DK200300237A (da) 2003-02-17

Similar Documents

Publication Publication Date Title
EP0020983B1 (fr) Système de mémoire comportant un dispositif d&#39;emmagasinage sérié
EP1111621A1 (fr) Mémoire flash programmable page par page
FR2711834A1 (fr) Circuit programmable de mémoire de codes pour mémoire flash.
EP1292889B1 (fr) Memoire eeprom securisee comprenant un circuit de correction d&#39;erreur
EP1510925A2 (fr) Mémoire cache à lecture asynchrone et dispositif de controle de l&#39;accès à une mémoire de données comprenant une telle mémoire cache
EP0006478B1 (fr) Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données
EP1027644B1 (fr) Microprocesseur, notamment pour carte a puce et procede de traitement d&#39;une instruction
EP1172820A1 (fr) Mémoire série programmable et effacable électriquement à lecture par anticipation
FR2629248A1 (fr) Procede de test de memoire a programmation unique et memoire correspondante
FR3075444A1 (fr) Systeme comportant une memoire adaptee a mettre en oeuvre des operations de calcul
EP0875830A1 (fr) Circuit testable à faible nombre de broches
CA2419795A1 (fr) Module de controle comprenant une memoire morte a consommation electrique reduite
EP0703584B1 (fr) Procédé de décodage d&#39;addresse dans une mémoire en circuit intégré et circuit mémoire mettant en oeuvre le procédé
CH694190A5 (fr) Module de contr&#34;le comprenant une m&#39;moire morte, en particulier une m&#39;moire d&#39;instructions . consommation &#39;lectrique r&#39;duite.
FR2828758A1 (fr) Procede d&#39;ecriture dans une memoire ram comportant un systeme d&#39;effacement de colonnes
FR2538928A1 (fr) Unite de traitement de donnees pourvue d&#39;une section de commande qui comporte un generateur d&#39;adresses destine a produire des adresses composees de parties d&#39;adresses caracteristiques
EP0606796B1 (fr) Procédé de programmation en champ uniforme d&#39;une mémoire électriquement programmable et mémoire mettant en oeuvre le procédé
FR2718867A1 (fr) Procédé d&#39;effacement d&#39;une mémoire et circuits de mise en Óoeuvre.
EP1085520B1 (fr) Procédé d&#39;écriture en mode page d&#39;une mémoire non volatile électriquement programmable/effaçable et architecture correspondante
WO1992015096A1 (fr) Dispositif d&#39;adressage sequentiel d&#39;une memoire, notamment pour carte a memoire
FR3107127A1 (fr) Procédé et dispositif de conception d’un circuit mémoire calculatoire
EP1542234A2 (fr) Procédé de réalisation d&#39;un plan mémoire étendu au moyen d&#39;une pluralité de mémoires série
WO1999013474A1 (fr) Procede d&#39;enregistrement d&#39;un mot binaire au moyen de cellules memoire du type programmable et effaçable electriquement
FR2831315A1 (fr) Memoire eeprom comprenant des moyens de lecture simultanee de bits speciaux d&#39;un premier et d&#39;un second type
EP0059125B1 (fr) Mémoire morte à adressage modifié

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead