CH694190A5 - Module de contr"le comprenant une m'moire morte, en particulier une m'moire d'instructions . consommation 'lectrique r'duite. - Google Patents

Module de contr"le comprenant une m'moire morte, en particulier une m'moire d'instructions . consommation 'lectrique r'duite. Download PDF

Info

Publication number
CH694190A5
CH694190A5 CH00218/03A CH2182003A CH694190A5 CH 694190 A5 CH694190 A5 CH 694190A5 CH 00218/03 A CH00218/03 A CH 00218/03A CH 2182003 A CH2182003 A CH 2182003A CH 694190 A5 CH694190 A5 CH 694190A5
Authority
CH
Switzerland
Prior art keywords
read
memory
control module
reading
module according
Prior art date
Application number
CH00218/03A
Other languages
English (en)
Inventor
Philippe Mosch
Original Assignee
Xemics Sa
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 Xemics Sa filed Critical Xemics Sa
Publication of CH694190A5 publication Critical patent/CH694190A5/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/08Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements
    • G11C17/10Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM
    • G11C17/12Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM using field-effect devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/002Isolation gates, i.e. gates coupling bit lines to the sense amplifier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microcomputers (AREA)

Description


  



   La présente invention concerne un module de contrôle comprenant une  mémoire morte, en particulier une mémoire d'instruction, à 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 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  le cas d'un processeur de traitement de signal, les instructions  dans la mémoire sont fréquemment lues séquentiellement 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. 



   La fig. 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 ROM  permet de stocker un bit indiquant un état logique zéro (0) ou un  (1). La fig. 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 transistor. 



     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, 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 à 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 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écharge CK, ce qui rend chacun 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 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, 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 fig. 1) pour commander  les 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. 



     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 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 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  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  é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. 



   Un but de la présente invention est donc de proposer un module de  contrôle amélioré par rapport aux mémoires de l'art antérieur, en  particulier une mémoire d'instruction dont la consommation élec-trique  est réduite. 



   En particulier, un but de la présente invention est de proposer un  module de contrôle à consommation électrique réduite et apte à être    utilisé dans un processeur massivement parallèle, notamment dans  un processeur de traitement de signal. 



   La demande de brevet EP 0 917 154 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. 



   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 16 bits peut être utilisée pour coder 2<16> instructions  différentes. Le degré de liberté disponible pour coder les différentes  instructions dans une architecture de processeur optimisé est donc  limité, en sorte que la réduction de consom-mation que permet la  solution décrite dans EP 0 917 154 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 que  des compilateurs spéciaux doivent être utilisés pour générer ce code.  Ces compilateurs ne sont pas toujours dispo-nibles 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. 



   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. 



   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  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 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  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 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 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 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  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 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  à titre d'exemple et illustrée par les figures suivantes:      La fig. 1 déjà décrite illustre de manière schéma-tique la structure  d'un module de contrôle selon l'art antérieur.     La fig. 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 module  de l'invention.     La fig. 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 fig. 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 fig. 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 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 fig. 3 illustre de manière schématique la structure d'un module  de contrôle selon l'invention, cette structure étant illustrée de  manière plus détaillée sur la fig. 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 exemple être constituées par des éléments de type NOR comme illustré  sur la fig. 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 circuit de précharge de colonne 4,  constitué par exemple par une ligne supplémentaire de transistors  de précharge comme illustré sur la fig. 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 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 transistors sur cette ligne. La tension des  colonnes 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 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  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 fonctionnement du circuit 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 cycles 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  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 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 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  commandant chaque mo-dule, 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 la ligne d'instruction  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 fig. 4 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 cycle en cours. Il 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 ROM au cours de n'importe quel cycle 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 d'adresse ou même  en fonction du contenu d'autres portions de la ROM ou de l'état de  registres dans le datapath. Il 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 pos-sible  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. 



   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. Il est toutefois également possible d'utiliser une  mémoire temporaire 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 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 fig. 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 é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. 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  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 fig. 4 comporte quatre  groupes de quatre colonnes chacun; on comprendra qu'en pratique un  nombre de 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 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 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 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 lecture des deuxièmes 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 que la même mémoire peut être balayée selon ces deux modes  simplement en permutant les bits 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 (à gauche de la figure) est chargé au flanc montant  du signal d'hor-loge CK dans un élément de mémoire 32, par exemple  une bascule. Ce bit est à l'état logique "zéro" lorsque les données  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  CK. La sortie de la porte 30 prend donc l'état logique "zéro" uniquement  lorsque le signal CK 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  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 chargé dans les éléments de mémoire correspondants 60 au flanc  montant d'un 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. 



   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 plusieurs groupes prédéfinis, ou à n'importe  quelle section de la mémoire morte 2. 



   La fig. 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 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 très légèrement le circuit de la fig. 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 à  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 fig. 5. 



   La présente invention concerne donc un module de contrôle 1 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 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 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  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 ("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 avec des composants autres que des ROMS, par exemple  avec des composants de type EEPROM, FPGA, Flash ou RAM.

Claims (18)

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électionner à 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) pour un module de cont-rôle selon l'une des revendications 1 à 14, pans 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 pour la fabrication d'un module de contrôle selon l'une des revendications 1 à 14, contenant un fichier électro-nique 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.
CH00218/03A 2000-08-17 2000-08-17 Module de contr"le comprenant une m'moire morte, en particulier une m'moire d'instructions . consommation 'lectrique r'duite. CH694190A5 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH2182000 2000-08-17

Publications (1)

Publication Number Publication Date
CH694190A5 true CH694190A5 (fr) 2004-08-31

Family

ID=32778521

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00218/03A CH694190A5 (fr) 2000-08-17 2000-08-17 Module de contr"le comprenant une m'moire morte, en particulier une m'moire d'instructions . consommation 'lectrique r'duite.

Country Status (1)

Country Link
CH (1) CH694190A5 (fr)

Similar Documents

Publication Publication Date Title
EP0020983B1 (fr) Système de mémoire comportant un dispositif d&#39;emmagasinage sérié
FR2711834A1 (fr) Circuit programmable de mémoire de codes pour mémoire flash.
EP1111621A1 (fr) Mémoire flash programmable page par page
EP0875830B1 (fr) Circuit testable à faible nombre de broches
EP1292889A1 (fr) Memoire eeprom securisee comprenant un circuit de correction d&#39;erreur
EP1172820A1 (fr) Mémoire série programmable et effacable électriquement à lecture par anticipation
FR3075444A1 (fr) Systeme comportant une memoire adaptee a mettre en oeuvre des operations de calcul
WO1999023552A1 (fr) Microprocesseur, notamment pour carte a puce
FR2843229A1 (fr) Cellule de memoire morte et procedes de programmation et de fabrication de celle-ci
FR2628237A1 (fr) Fichier de registres de vecteurs, systeme informatique pour le traitement de vecteurs utilisant un tel fichier et procede de gestion des acces a ce fichier
WO2002015192A1 (fr) Module de controle comprenant une memoire morte a consommation electrique reduite
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.
EP0833346B1 (fr) Mémoire à accès série avec sécurisation de l&#39;écriture
WO2003015282A2 (fr) Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs
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
FR2673316A1 (fr) Dispositif d&#39;adressage sequentiel d&#39;une memoire, notamment pour carte a memoire.
FR2700056A1 (fr) Procédé de programmation en champ uniforme d&#39;une mémoire électriquement programmable et mémoire mettant en Óoeuvre le procédé.
EP1085520B1 (fr) Procédé d&#39;écriture en mode page d&#39;une mémoire non volatile électriquement programmable/effaçable et architecture correspondante
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
FR2864320A1 (fr) Nouvelle architecture de memoire fifo et procede de gestion d&#39;une telle memoire.
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é
EP0595707B1 (fr) Séquenceur linéaire avec signaux de sortie binaires

Legal Events

Date Code Title Description
PCAR Change of the address of the representative

Free format text: XEMICS SA; RUE DE LA MALADIERE 71; 2007 NEUCHATEL (CH) -TRANSFER TO- XEMICS SA#RUE DE LA MALADIERE 71; 2007 NEUCHATEL (CH)

Representative=s name: XEMICS SA#RUE DE LA MALADIERE 71; 2007 NEUCHATEL (CH)

PFA Name/firm changed

Owner name: SEMTECH NEUCHATEL SA

Free format text: XEMICS SA#RUE DE LA MALADIERE 71#2007 NEUCHATEL (CH) -TRANSFER TO- SEMTECH NEUCHATEL SA#RUE DE MONRUZ 2#2000 NEUCHATEL (CH)

PL Patent ceased