FR3047136A1 - - Google Patents

Download PDF

Info

Publication number
FR3047136A1
FR3047136A1 FR1650644A FR1650644A FR3047136A1 FR 3047136 A1 FR3047136 A1 FR 3047136A1 FR 1650644 A FR1650644 A FR 1650644A FR 1650644 A FR1650644 A FR 1650644A FR 3047136 A1 FR3047136 A1 FR 3047136A1
Authority
FR
France
Prior art keywords
data
circuit
pipeline
buffer
coupled
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.)
Granted
Application number
FR1650644A
Other languages
English (en)
Other versions
FR3047136B1 (fr
Inventor
Eldar Zianbetov
Edith Beigne
Pendina Gregory Di
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.)
Centre National de la Recherche Scientifique CNRS
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Centre National de la Recherche Scientifique CNRS
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
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 Centre National de la Recherche Scientifique CNRS, Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR1650644A priority Critical patent/FR3047136B1/fr
Priority to EP17152929.0A priority patent/EP3200350B1/fr
Priority to US15/416,705 priority patent/US10152253B2/en
Publication of FR3047136A1 publication Critical patent/FR3047136A1/fr
Application granted granted Critical
Publication of FR3047136B1 publication Critical patent/FR3047136B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/01Modifications for accelerating switching
    • H03K19/017Modifications for accelerating switching in field-effect transistor circuits
    • H03K19/01707Modifications for accelerating switching in field-effect transistor circuits in asynchronous circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits

Abstract

L'invention concerne un circuit asynchrone comprenant : un pipeline asynchrone (600) comprenant deux étages, ou plus, (502, 504, 506, 508), chaque étage comportant : un circuit tampon (512, 514, 516, 518) pour mémoriser temporairement des données à transférer d'un étage vers le suivant sur la base d'un protocole de poignée de main, le circuit tampon comprenant une mémoire non volatile ; et un circuit de détection de présence de données (604, 614) adapté à générer une valeur de détection de présence de données indiquant si des données sont mémorisées ou pas par le circuit tampon ; et un circuit de commande adapté à réaliser une opération de sauvegarde de données en contrôlant indépendamment chaque circuit tampon pour sauvegarder les données qu'il mémorise vers sa mémoire non volatile sur la base de la valeur de détection de présence de données correspondante.

Description

SAUVEGARDE DE DONNEES DANS UN CIRCUIT ASYNCHRONE
Domaine de 1'invention
La présente invention concerne le domaine des circuits asynchrones, et en particulier un pipeline asynchrone ayant des capacités de mémorisation non volatile de données.
Exposé de l'art antérieur
Contrairement aux conceptions à base de circuits synchrones qui reposent sur un signal d'horloge, les circuits asynchrones ont l'avantage d'être plus ou moins insensibles aux variations de retard résultant par exemple de variations dans le processus de fabrication. En outre, en évitant l'utilisation d'une horloge, les circuits asynchrones ont une consommation d'énergie relativement faible. Les circuits asynchrones sont en général conçus pour fonctionner sur la base d'événements déterminés en utilisant un protocole de poignée de main spécifique. L'élément de base d'un circuit d'une conception asynchrone est basé sur un circuit connu sous le nom de porte C ou circuit de Muller. Ce circuit comprend une bascule volatile pour mémoriser un état. Ainsi si le circuit asynchrone voit son alimentation coupée, les données mémorisées par les diverses portes C seront perdues.
Il serait souhaitable de prévoir une porte C ayant une capacité de mémorisation non volatile, de sorte que l'état du circuit pourrait être restauré à la suite d'une . coupure d'alimentation. Toutefois, il y a un problème en ce que les opérations de mémorisation non volatile de données ont tendance à consommer des quantités d'énergie relativement élevées. On a donc besoin dans la technique d'un système de sauvegarde de données dans un pipeline asynchrone qui permette de réduire la consommation d'énergie au moins une partie du temps. Résumé
Un objet de modes de réalisation de la présente description est de résoudre au moins partiellement un ou plusieurs problèmes de l'art antérieur.
Selon un aspect, on prévoit un circuit asynchrone comprenant : un pipeline asynchrone comprenant deux étages, ou plus, chaque étage comportant : un circuit tampon pour mémoriser temporairement des données à transférer d'un étage vers le suivant sur la base d'un protocole de poignée de main, le circuit tampon comprenant une mémoire non volatile ; et un circuit de détection de présence de données adapté à générer une valeur de détection de présence de données indiquant si des données sont mémorisées ou pas par le circuit tampon ; et ion circuit de commande adapté à réaliser une opération de sauvegarde de données en contrôlant indépendamment chaque circuit tampon pour sauvegarder les données qu' il mémorise vers sa mémoire non volatile sur la base de la valeur de détection de présence de données correspondante.
Selon un mode de réalisation, le circuit de détection de présence de données comprend une autre mémoire non volatile adaptée à mémoriser la valeur de détection de présence de données, le circuit de commande étant adapté à contrôler chaque circuit de détection de présence de données pour restaurer la valeur de détection de présence de données à partir de l'autre mémoire non volatile pendant une phase de mise sous tension.
Selon un mode de réalisation, chacun des circuits de détection de présence de données est adapté à générer la valeur de détection de présence de données sur la base de l'état d'un signal d'accusé de réception reçu d'un étage suivant du pipeline, et d'un signal d'accusé de réception généré par le circuit tampon correspondant.
Selon un mode de réalisation, le pipeline asynchrone comprend une ou plusieurs paires de lignes de données et une ligne d'accusé de réception couplant le circuit tampon de chaque étage de pipeline au suivant, les circuits tampons étant agencés pour mettre en œuvre un protocole de poignée de main à quatre phases pour le transfert d'un jeton de données à partir d'une phase de pipeline vers la suivante, le protocole de poignée de main à quatre phases comprenant le fait d'amener le signal d'accusé de réception présent sur la ligne d'accusé de réception d'un premier état vers un deuxième état et de le ramener vers le premier état, et le circuit de détection de présence de données d'un premier étage de pipeline étant adapté à générer une valeur de détection de présence de données indiquant que des données sont présentes dans le circuit tampon du premier étage de pipeline lorsque le signal d'accusé de réception provenant de l'étage de pipeline suivant est dans le premier état et le signal d'accusé de réception généré par le circuit tampon du premier étage de pipeline est dans le deuxième état.
Selon un mode de réalisation, le circuit de commande comprend une mémoire non volatile mémorisant une table de jetons indiquant la présence de jetons de données dans le pipeline asynchrone.
Selon ion mode de réalisation, le circuit tampon de chaque étage de pipeline est un demi-tampon comprenant des première et deuxième portes C, chaque porte C comprenant : des premier et deuxième nœuds d'entrée et des premier et deuxième inverseurs couplés de façon croisée entre des premier et deuxième nœuds de mémorisation complémentaires, le deuxième nœud de mémorisation formant un nœud de sortie de la porte C ; et une mémoire non volatile comprenant : un premier élément résistif ayant une première borne couplée au premier nœud de mémorisation ; un deuxième élément résistif ayant une première borne couplée au deuxième nœud de mémorisation, au moins l'un des premier et deuxième éléments résistifs étant programmable pour prendre l'un d'au moins deux états résistifs, une valeur de donnée étant représentée par les résistances relatives des premier et deuxième éléments résistifs, une deuxième borne du premier élément résistif étant couplée à une deuxième borne du deuxième élément résistif par l'intermédiaire d'un premier transistor ; et le circuit de commande étant adapté, pendant une phase de sauvegarde d'un bit de données mémorisé sur les premier et deuxième nœuds de mémorisation vers la mémoire non volatile, à rendre conducteur le premier transistor pendant que des niveaux logiques différents sont appliqués aux premier et deuxième nœuds d'entrée de la porte C.
Selon un mode de réalisation, le premier transistor est adapté à conduire un courant d'écriture pendant la phase de sauvegarde, et le circuit de la porte C est agencé de telle sorte que le courant d'écriture passe à travers au moins un transistor de chacun des premier et deuxième inverseurs pendant la phase d'écriture.
Selon un mode de réalisation, chacune des première et deuxième portes C est adaptée à recevoir un premier signal d'entrée sur le premier nœud d'entrée et un deuxième signal d'entrée sur le deuxième nœud d'entrée ; et le premier inverseur comprend : des premier et deuxième transistors ayant leurs nœuds de commande couplés au premier ou au deuxième nœud de mémorisation ; des troisième et quatrième transistors couplés en parallèle entre eux et couplant le premier transistor du premier inverseur à un rail de tension d'alimentation ; et des cinquième et sixième transistors couplés en parallèle entre eux et couplant le deuxième transistor du premier inverseur au rail de tension de masse.
Selon un mode de réalisation, au moins l'un des premier et deuxième éléments résistifs est de l'un des types suivants : un élément à couple de transfert de spin ayant une anisotropie dans le plan ; un élément à couple de transfert de spin ayant une anisotropie perpendiculaire au plan ; un élément à oxydation-réduction (RedOx) ; un élément ferroélectrique ; et un élément à changement de phase.
Selon un autre aspect, on prévoit un procédé de sauvegarde de données dans un pipeline asynchrone comprenant deux étages de pipeline ou plus, le procédé comprenant : générer, par un circuit de détection de présence de données de chaque étage de pipeline, une valeur de détection de présence de données indiquant si des données sont mémorisées par un circuit tampon de chaque étage de pipeline, les circuits tampons mémorisant temporairement des données à transférer d'un étage vers le suivant sur la base d'un protocole de poignée de main, chaque circuit tampon comprenant une mémoire non volatile ; et réaliser une opération de sauvegarde de données en contrôlant indépendamment chaque circuit tampon pour sauvegarder les données qu'il mémorise vers sa mémoire non volatile sur la base de la valeur de détection de présence de données correspondante.
Brève description des dessins
Les objets et avantages susmentionnés, et d'autres, apparaîtront clairement à la lecture de la description détaillée suivante de modes de réalisation, donnés à titre d'illustration et non de limitation en faisant référence aux dessins joints dans lesquels : la figure 1 illustre schématiquement un exemple de porte C ; la figure 2 illustre schématiquement un exemple de circuit comprenant une porte C et une mémoire non volatile ; la figure 3 illustre schématiquement un demi-tampon asynchrone selon un exemple de réalisation ; la figure 4A illustre schématiquement un demi-tampon asynchrone de 1 bit ayant une mémorisation non volatile de données selon un exemple de réalisation de la présente description ; la figure 4B illustre schématiquement un demi-tampon asynchrone de n bits ayant une mémorisation non volatile de données selon un exemple de réalisation de la présente description ; la figure 5A illustre schématiquement un pipeline asynchrone selon un exemple de réalisation de la présente description ; la figure 5B est un chronogramme illustrant un exemple de signaux dans le circuit de la figure 5A selon un exemple de réalisation ; la figure 6 illustre schématiquement un pipeline asynchrone comprenant des circuits de détection de présence de données selon un exemple de réalisation de la présente description ; la figure 7 illustre schématiquement un pipeline asynchrone comprenant des contrôleurs de mémorisation non volatile de données selon un exemple de réalisation de la présente description ; la figure 8 illustre schématiquement l'un des contrôleurs de mémorisation non volatile de données de la figure 7 plus en détail selon un exemple de réalisation de la présente description ; la figure 9 est un chronogramme illustrant des exemples de signaux dans le pipeline asynchrone de la figure 7 selon un exemple de réalisation ; et la figure 10 est un organigramme illustrant des opérations dans un procédé de mémorisation non volatile de données et de restauration de données selon un exemple de réalisation de la présente description.
Description détaillée
Dans la description qui suit, le terme "connecté" est utilisé pour désigner une connexion directe entre deux éléments, tandis que le terme "couplé" est utilisé pour désigner une connexion qui pourrait être directe, ou qui pourrait se faire par l'intermédiaire d'un ou plusieurs éléments intermédiaires comme des résistances, des condensateurs ou des transistors.
La figure 1 illustre un exemple de porte C 100, connue aussi sous le nom de circuit de Muller. Elle comprend deux nœuds d'entrée de données pour recevoir des signaux d'entrée A et B. Deux transistors, 102, 104, qui sont par exemple des transistors PMOS, sont couplés en série entre eux entre un rail de tension d'alimentation VDD et un nœud de mémorisation Q de la porte C. Deux autres transistors 106, 108, qui sont par exemple des transistors NMOS, sont couplés en série entre eux entre le nœud de mémorisation Q et un rail de tension de masse. Les transistors 104 et 106 ont leurs nœuds de commande couplés au nœud d'entrée recevant le signal A, et les transistors 102 et 108 ont leurs nœuds de commande couplés au nœud d'entrée recevant le signal B.
Deux inverseurs 110, 112 sont couplés de façon croisée entre le nœud de mémorisation Q et un autre nœud de mémorisation Z, qui forme le nœud de sortie de la porte C. L'inverseur 112 a par exemple son entrée couplée au nœud de mémorisation Z et sa sortie couplée au nœud de mémorisation Q, et a ses bornes d'alimentation couplées aux rails de tension d'alimentation par l'intermédiaire d'autres transistors. En particulier, une borne d'alimentation haute de l'inverseur 112 est couplée au rail de tension d'alimentation VDD par l'intermédiaire de chacun de deux transistors 114, 116, qui sont par exemple des transistors PMOS, couplés en parallèle entre eux. La borne d'alimentation basse de l'inverseur 112 est couplée au rail de tension de masse par l'intermédiaire de chacun de deux transistors 118, 120, qui sont par exemple des transistors NMOS, couplés en parallèle entre eux. Les transistors 114 et 118 ont leurs nœuds de commande couplés au nœud d'entrée destiné à recevoir le signal A, et les transistors 116 et 120 ont leurs nœuds de commande couplés à l'autre nœud d'entrée destiné à recevoir le signal B.
En fonctionnement, la porte C a par exemple un fonctionnement défini par la table de vérité suivante :
En d'autres termes, lorsque les valeurs des signaux d'entrée A et B sont au même niveau logique, la sortie Z est mise à ce niveau logique. Lorsque les valeurs des signaux d'entrée A et B sont à des niveaux logiques différents entre eux, le circuit est dans un état de veille dans lequel la sortie Z reste inchangée, en d'autres ternes 1'état de tension sur les nœuds de mémorisation Q et Z n'est pas modifié.
La figure 2 illustre un circuit 200 comprenant la porte C 100 de la figure 1, à laquelle a été ajoutée une mémoire non volatile. Les éléments de la porte C 100 portent les mêmes références qu'en figure 2, et ne vont pas être décrits de nouveau détail. Le circuit de la figure 2 est décrit plus en détail dans la demande de brevet français déposée sous le numéro FR14/58289, dans la demande de brevet européen déposée sous le numéro EP15183551 et dans la demande de brevet des États-Unis numéro US14/845213, le contenu de ces demandes étant incorporé ici comme référence, dans les limites autorisées par la loi.
Le circuit 200 de la figure 2 comprend deux éléments résistifs 202, 204, dont chacun peut être programmé pour prendre l'un d'une pluralité d'états résistifs. Les éléments résistifs 202 et 204 peuvent être d'un type quelconque d'élément à commutation de résistance pour lequel la résistance est programmable par le sens d'un courant qu'on fait passer dedans. Par exemple, les éléments à commutation de résistance 202, 204 sont des éléments à couple de transfert de spin ayant une anisotropie dans le plan ou perpendiculaire au plan, comme cela est décrit plus en détail dans la publication intitulée "Magnonic spin-transfer torque MRAM with low power, high speed, and error-
free switching", N.Mojumder et al., IEDM Tech. Digest (2010), et dans la publication intitulée "Electric toggling of magnets", E. Tsymbal, Natural Materials Vol 11, janvier 2012. En variante, les éléments résistifs pourraient être ceux qui sont utilisés dans des mémoires à commutation résistive RAM RedOx (RAM à réduction-oxydation) , qui sont par exemple décrits plus en détail dans la publication intitulée "Redox-Based Résistive Switching Memories -Nanoionic Mechanisms, Prospects and Challenges", Rainer Waser et al., Advanced Materials 2009, 21, pages 2632 à 2663. Dans encore un autre exemple, les éléments résistifs pourraient être ceux qui sont utilisés dans une FeRAM (RAM ferroélectrique) ou dans une PCRAM (RAM à changement de phase).
Quel que soit le type des éléments résistifs, un bit de donnée est par exemple mémorisé de façon non volatile en mettant l'un des éléments à une résistance relativement haute (Rmax)/ et 1'autre à une résistance relativement basse (Rmin) · Dans 1'exemple de la figure 2, l'élément 202 est programmé pour avoir une résistance Rmax et l'élément 204 une résistance Rmin représentant une valeur du bit de donnée, et comme cela est représenté par les références Rmin et Rmax entre parenthèse, la programmation opposée des valeurs de résistance mémorise la valeur de donnée opposée. Chacun des éléments à commutation de résistance 202, 204 a par exemple seulement deux états résistifs correspondant aux résistances haute et basse Rmax et Rmin, mais les valeurs exactes de Rmin et Rmax peuvent varier en fonction de conditions comme le procédé de fabrication, les matériaux, les variations de température, etc.
Le bit de donnée non volatile représenté par les éléments résistifs 202, 204 dépend duquel des éléments résistifs a la résistance Rmax et Rmin, en d'autres termes des résistances relatives. Les éléments résistifs 202, 204 sont par exemple sélectionnés de telle sorte que Rmax soit toujours significativement plus grande que Rmin, par exemple supérieure d'au moins 20 %. En général, le rapport entre la résistance Rmax et la résistance Rmin est par exemple compris entre 1,2 et 10 000. Rmin est par exemple dans la région des 2 kilo-ohms ou moins, et Rmax est par exemple dans la région des 6 kilo-ohms ou plus, bien que de nombreuses autres valeurs soient possibles.
Il apparaîtra clairement à l'homme de l'art que dans certains modes de réalisation, plutôt que les deux éléments résistifs 202, 204 soient programmables, un seul soit programmable. Dans un tel cas, l'autre élément résistif a par exemple une résistance fixe à un niveau intermédiaire à environ à la moitié du chemin entre Fmin et Rmax, Par exemple égal, avec une tolérance de 10 %, à (Rmin+(Rmax-Rmin)/2). Par exemple, l'un des éléments résistifs 202, 204 pourrait correspondre à une résistance de valeur fixe. En variante, l'un des éléments résistifs 202, 204 pourrait être constitué d'une paire d'éléments résistifs programmables couplés en parallèle entre eux et dans des orientations opposées, de sorte que quel que soit le sens dans lequel chaque élément est programmé, la valeur de résistance reste relativement constante au niveau intermédiaire. L'élément résistif 202 est couplé entre le nœud de mémorisation Q et un nœud intermédiaire 206. L'élément résistif 204 est couplé entre le nœud de mémorisation Z et un nœud intermédiaire 208. Les nœuds intermédiaires 206 et 208 sont couplés entre eux par l'intermédiaire d'un transistor 210, qui est par exemple un transistor NMOS. Le transistor 210 reçoit sur son nœud de commande un signal d'écriture WR.
Le nœud 206 est en outre couplé au rail de tension de masse par l'intermédiaire d'un transistor 212, qui est par exemple un transistor NMOS. De façon similaire, le nœud 208 est en outre couplé au rail de tension de masse par l'intermédiaire d'un transistor 214, qui est aussi par exemple un transistor NMOS. Les nœuds de commande des transistors 212 et 214 sont contrôlés par un signal de lecture RD.
La figure 2 illustre aussi les inverseurs 110 et 112 plus en détail. L'inverseur 110 comprend par exemple un transistor 216, qui est par exemple un transistor PMOS, couplé entre le nœud de mémorisation Z et le rail de tension d'alimentation VDD.
Optionnellement, dans le but d'équilibrer les chemins de lecture pendant une phase de restauration décrite plus en détail ci-après, un autre transistor 217, qui est par exemple un transistor PMOS, est couplé entre le transistor 216 et le rail de tension d'alimentation VDD. L'inverseur 110 comprend aussi par exemple un transistor 218, qui est par exemple un transistor NMOS, couplé entre le nœud de mémorisation Z et un nœud commun 220. Dans certains modes de réalisation, le nœud commun 220 est connecté au rail de tension de masse, alors que dans des modes de réalisation alternatifs comme celui représenté en figure 2, le nœud commun 220 est couplé au rail de tension de masse par l'intermédiaire d'un transistor 222, qui est par exemple un transistor NMOS contrôlé par un signal Az décrit plus en détail ci-après. L'inverseur 112 comprend par exemple un transistor 226, qui est par exemple un transistor PMOS, couplé entre le nœud de mémorisation Q et la borne de tension haute de l'inverseur 112. L'inverseur 112 comprend aussi par exemple un transistor 228, qui est par exemple un transistor NMOS, couplé entre le nœud de mémorisation Q et la borne de tension basse de l'inverseur 112. Les transistors 118 et 120 sont couplés entre la borne de tension basse de l'inverseur 112 et le nœud commun 220. Optionnellement, un transistor 230, qui est par exemple un transistor PMOS ayant son nœud de commande couplé de façon à recevoir le signal Az, est couplé entre les nœuds de mémorisation Q et Z.
La figure 2 illustre aussi un bloc de commande 232, fournissant les signaux de commande RD, WR et Az aux transistors correspondants du circuit 200.
La figure 3 illustre schématiquement un demi-tampon 300 constitué d'une paire de portes C 302, 304. Un tel demi-tampon forme par exemple une portion principale de chaque étage d'un pipeline asynchrone, comme on va le décrire plus en détail ci-après. La porte C 302 a l'une de ses entrées couplée à une ligne d'entrée de données 306 recevant un signal de données d'entrée 1.0, et son autre entrée couplée à une ligne d'entrée de données 308 recevant un signal d'entrée de données 1.1. Les autres entrées des portes C 302 et 304 sont couplées à une ligne d'accusé de réception 310 recevant un signal d'accusé de réception 0_ack. Les sorties des portes C 302, 304 sont couplées à des lignes de données de sortie 312 et 314 respectivement, la ligne 312 fournissant un signal de données de sortie 0.0, et la ligne 314 fournissant un signal de données de sortie 0.1. Les lignes 312 et 314 sont aussi couplées à des entrées respectives d'une porte NON OU à deux entrées 316, qui fournit sur sa sortie un signal d'accusé de réception I_ack sur une ligne d'accusé de réception 318.
Un bit de données est transmis sur les lignes de données d'entrée 306, 308 et sur les lignes de données de sortie 312, 314 en utilisant un protocole selon lequel : - des états logiques "01" sur les lignes 1.0 et 1.1 respectivement ou sur les lignes 0.0 et O.l respectivement transmettent par exemple un bit logique "1" ; - des états logiques "10" sur les lignes 1.0 et 1.1 respectivement ou sur les lignes 0.0 et 0.1 respectivement transmettent par exemple un bit logique "0" ; - des états logiques "00" sur les lignes 1.0 et 1.1 ou sur les lignes 0.0 et 0.1 indiquent par exemple un état de repos dans lequel aucune donnée n'est transmise ; et - des états logiques "il" sur les lignes 1.0 et 1.1 ou sur les lignes 0.0 et 0.1 sont par exemple un état interdit.
La figure 4A illustre schématiquement un demi-tampon 400 très similaire à celui de la figure 3, et les éléments similaires portent les mêmes références numériques et ne seront pas décrits de nouveau détail. Cependant, dans le demi-tampon 400, les portes C 302, 304 sont remplacées par des portes C 402, 404 respectivement, chacune ayant une capacité de mémorisation non volatile de données. Par exemple, chacune de ces portes C 402, 404, est mise en œuvre par le circuit de la figure 2, et reçoit des signaux d'entrée WR, RD et Az décrits en relation avec la figure 2. En outre, une porte 406 est connectée entre la sortie de la porte C 402 et la ligne de sortie 312, et relie la sortie de la porte C 402 à la ligne de sortie 312 seulement lorsque le signal Az et l'inverse RD du signal RD sont activés. De façon similaire, une porte 408 est connectée entre la sortie de la porte C 404 et la ligne de sortie 314, et relie la sortie de la porte C 404 à la ligne de sortie 314 seulement lorsque le signal Az et l'inverse RD du signal RD sont activés. Ces portes 406, 408 empêchent par exemple les sorties des portes C 402, 404 d'être propagées pendant qu'elles sont dans des états non stables, par exemple pendant que des données sont en cours de restauration à partir des éléments non volatiles 202, 204 vers les nœuds de mémorisation Q et Z.
Bien que dans 1'exemple de la figure 4A le demi-tampon comporte une seule paire de portes C 402, 404, permettant la transmission d'un seul bit de données à la fois en utilisant les lignes de données d'entrée 306, 308 et les lignes de données de sortie 312, 314, dans des variantes de réalisation d'autres paires de portes C, et d'autres lignes d'entrée et de sortie, pourraient être prévues pour que plus qu'un seul bit de données soit transmis à la fois, comme on va maintenant le décrire plus en détail en faisant référence à la figure 4B.
La figure 4B illustre schématiquement un demi-tampon 450 similaire au demi-tampon 400 de la figure 4A, et les éléments similaires portent les mêmes références et ne seront pas décrits de nouveau détail. Cependant, le demi-tampon 450 est un demi-tampon à n bits qui comporte une pluralité de 2n lignes de données d'entrée 1.0g I.lg à I.0n_]_, I.ln_^ et une pluralité de 2n lignes de données de sortie O.Oq, O.Iq à. O.0n_^, 0.1η_χ. Dans un tel cas, des paires de portes C sont par exemple équipées d'un circuit d'accusé de réception local formé par la porte NON OU 316. Chaque porte NON OU 316 fournit sa sortie sur une ligne 451, et ces sorties sont par exemple fusionnées sur la ligne de sortie de signal d'accusé réception 318, par exemple par une porte C 452.
La figure 5A illustre schématiquement un pipeline asynchrone 500 selon un exemple de réalisation. Le pipeline comprend par exemple au moins deux étages de pipeline couplés en série. Dans l'exemple de la figure 5Ά, il y a quatre étages de pipeline 502, 504, 506 et 508. Chaque étage de pipeline 502, 504, 506 et 508 comprend respectivement un demi-tampon 512, 514, 516 et 518, qui est par exemple mis en œuvre par le circuit 400 de la figure 4A. Les demi-tampons 512, 514, 516 et 518 reçoivent par exemple respectivement des signaux de données de n bits sur des lignes Aj__2<2n-1: 0>, Αί_^<2η-1:0>, Aj<2n-1:0> et Α·^+ι<2η-1: 0>. Les lignes Aj__2<2n-1:0> sont par exemple couplées à la sortie d'un circuit logique 520. En outre, les lignes de sortie de données des demi-tampons 512, 514, 516 et 518 de chaque étage sont couplées respectivement à des circuits logiques 522, 524, 526 et 528 de chaque étage, qui fournissent des signaux de sortie à l'étage suivant, ou le signal de sortie du pipeline dans le cas de l'étage final 508. Les demi-tampons 512, 514, 516 et 518 de chaque étage sont aussi couplés à des lignes d'accusé de réception pour recevoir le signal d'accusé de réception provenant de l'étage suivant, et transmettre le signal d'accusé de réception à un étage précédent. Par exemple, l'étage 506 est considéré comme étant un étage de rang i dans le pipeline, et a des lignes de données d'entrée Aj_<2n-1:0> pour recevoir des signaux de données provenant du circuit logique 524 de l'étage précédent, génère un signal d'accusé de réception de rang i, acki, et reçoit un signal d'accusé de réception de rang (i+1) , acki+i, provenant du demi-tampon 518 de l'étage suivant 508.
Bien que cela ne soit pas illustré en figure 5A, le pipeline est par exemple terminé par un tampon capable de mémoriser les données provenant du pipeline et de générer un signal d'accusé de réception vers le dernier demi-tampon du pipeline. En variante, le pipeline peut se terminer avec un demi-tampon.
Les signaux de données et d'accusé de réception pendant un transfert de données de un bit d'un étage vers le suivant vont maintenant être décrits plus en détail en faisant référence à la figure 5B.
La figure 5B est un chronogramme illustrant un exemple des signaux 1.0, 1.1 reçus par un demi-tampon et du signal I_ack généré par le demi-tampon 400 de la figure 4A, qui fait par exemple partie de l'un des étages du pipeline de la figure 5A.
Un protocole de poignée de main à quatre phases sur une ligne de connexion à double rail est par exemple utilisé pour chaque transmission de donnée. Comme cela est représenté en figure 5B, pendant une séquence de transmission de donnée 530 d'un "1" logique, les quatre phases du protocole de poignée de main sont référencées 532, 534, 536 et 538. Pendant la phase 532, le signal d'entrée 1.1 sur la ligne 308 est amené au niveau de l'état logique "1" par l'étage précédent. Le demi-tampon répond dans la phase 534 en amenant le signal d'accusé de réception I_ack sur la ligne 318 de l'état logique "1" à l'état logique "0". Dans la phase 536, l'étage précédent ramène ensuite le signal d'entrée 1.1 à un niveau logique "0". Le demi-tampon répond dans la phase 538 en renvoyant le signal d'accusé de réception l_ack sur la ligne 318 à un niveau logique "1".
La figure 5B illustre aussi un état de repos dans lequel les signaux 1.0 et 1.1 restent bas et le signal I_ack reste haut. La figure 5B illustre aussi une autre séquence 542 pour la transmission d'un état logique "0", qui est identique à la séquence 530, excepté que c'est le signal 1.0 qui est amené au niveau logique "1".
La figure 6 illustre schématiquement un pipeline asynchrone 600 similaire au pipeline 500 de la figure 5A, mais comprenant en plus des circuits de détection de présence de données associés à chaque étage, comme on va le décrire maintenant plus en détail.
De façon avantageuse, selon les modes de réalisation décrits ici, des circuits de détection de présence de données indiquent la présence de données dans un pipeline asynchrone. Cela permet de déclencher des séquences de mémorisation non volatile de données seulement pour les étages dans lesquels se trouvent des données, évitant par cela une consommation d'énergie pour des étages de pipeline dans lesquels il n' y a pas de données. Par exemple, une phase de sauvegarde non volatile est déclenchée afin de permettre de réaliser un blocage d'alimentation. Le blocage d'alimentation est une technique utilisée pour réduire la consommation d'énergie en déconnectant des circuits de la tension d'alimentation lorsqu'ils sont au repos. Une telle technique est par exemple décrite plus en détail dans la demande de brevet des États-Unis publiée sous le numéro US2013/0198549, dont le contenu est incorporé ici comme référence dans les limites autorisées par la loi.
Chacun des étages de pipeline 502, 504, 506 et 508 en figure 6 est par exemple associé à un circuit de détection de présence de données mis en œuvre par une porte ET à deux entrées 602, 604, 606 et 608 respectivement, chaque porte ET ayant l'une de ses entrées couplée à la ligne d'entrée d'accusé de réception provenant de l'étage suivant (la ligne 310 en figure 3) et l'autre de ses entrées couplée à la ligne de sortie d'accusé de réception vers l'étage précédent (la ligne 318 en figure 3). L'entrée couplée à la ligne de sortie d'accusé de réception est par exemple inversée, de sorte que lorsque le signal I_ack sur cette ligne est bas, et le signal d'accusé de réception d'entrée 0_ack provenant de l'étage suivant est haut, la sortie de la porte ET est activée pour indiquer que des données sont mémorisées par le demi-tampon. En effet, en référence à la figure 5B, cet état correspond à la phase 534, la phase 536 et une partie de la phase 538, pendant lesquelles le signal I_ack est bas indiquant que des données ont été transférées à partir de l'étage précédent, et le signal 0_ack provenant de l'étage suivant n'est pas encore passé à l'état bas, indiquant que les données n'ont pas encore été transférées à l'étage suivant. Dans certains cas, il peut être possible que le signal d'accusé de réception acki passe à l'état bas avant que le signal acki+i revienne à un niveau haut.
Dans un exemple de la figure 6, une valeur de données de n bits 610 a été reçue par le demi-tampon 514, et le signal d'accusé de réception acki-ι vers le demi-tampon 512 précédent a été amené à l'état bas, de sorte que les données sont libérées. Ainsi, le demi-tampon 514 mémorise les données, et le signal sur la sortie de la porte ET 604 est haut. Cette valeur de données de n bits est ensuite transmise à l'étage suivant 506, comme cela est représenté par un cercle en pointillés 610'. La valeur de données est émise à partir du demi-tampon 514, et est traitée par le circuit logique 524, avant d'être acquise par le demi-tampon 516. Le signal d'accusé de réception acki est ensuite amené à l'état bas pour indiquer que les données ont été acquises, et cette valeur de données va ensuite être transférée vers le demi-tampon 516.
Dans certains modes de réalisation, la sortie de chacune des portes ET 602, 604, 606 et 608 est couplée à un circuit de sortie 612, 614, 616 et 618 respectivement, qui est adapté à échantillonner le signal de sortie de la porte ET lorsqu'un signal d'état de sauvegarde (SS) est activé. Par exemple, chacun des circuits de sortie 612 à 616 est mis en œuvre par une bascule ayant son entrée D connectée à la sortie de la porte ET 602 à 608 correspondante respectivement, son entrée d'horloge recevant le signal d'état de sauvegarde SS, et sa sortie Q fournissant le bit d'indication de présence de données pour l'étage de pipeline correspondant. Les bits d'indication de présence de données 620 provenant de chacun des circuits de sortie 612 à 618 sont par exemple utilisés par un contrôleur de mémoire non volatile associé à chaque demi-tampon pendant une opération de mémorisation non volatile pour mémoriser seulement les données maintenues par des demi-tampons contenant des données.
Alors qu'un exemple particulier de mise en œuvre des circuits de détection de présence de données est représenté en figure 6, dans des variantes de réalisation, d'autres mises en œuvre seraient possibles. Par exemple, dans certains modes de réalisation, un état logique "1" sur l'une quelconque des lignes d'entrée de données d'un demi-tampon pendant que le signal d'accusé de réception I_ack sur la sortie du demi-tampon est bas, pourrait être utilisé comme indication que des données sont mémorisées par le demi-tampon. En outre, la technique décrite dans la publication de Y.Thonnart et al. intitulée "Automatic Power Régulation Based on an Asynchronous Activity Détection and its Application to ANOC Node Leakage Réduction", ASYNC2008, pourrait aussi être utilisée, le contenu de cette publication étant incorporé ici comme référence dans les limites autorisées par la loi. Un avantage du fait de baser la détection de présence de données sur les signaux d'accusé de réception seuls est que les circuits de détection peuvent être d'une complexité relativement faible.
La figure 7 illustre le pipeline asynchrone 600 plus en détail selon un exemple de réalisation. Chacun des demi-tampons 512, 514, 516 et 518 comprend par exemple une mémoire non volatile correspondante 702, 704, 706 et 708, mise en œuvre par exemple dans chaque porte C comme décrit précédemment en relation avec la figure 2. En outre, la figure 7 illustre un exemple dans lequel des contrôleurs de mémoire non volatile (NVM) (NVM CONTROLLER) 712, 714, 716 et 718 sont associés aux étages de pipeline 502, 504, 506 et 508 respectivement. Chaque contrôleur de NVM 702 à 708 comprend par exemple l'un correspondant des circuits de détection de présence de données 602 à 608 de la figure 6, ainsi que des circuits pour mettre en œuvre les opérations de sauvegarde et de restauration de données, comme on va le décrire plus en détail ci-après. Les contrôleurs de NVM 712 à 718 fournissent chacun par exemple des signaux de commande locaux AZi, RDi et WRi aux mémoires non volatiles correspondantes 702 à 708 des demi-tampons 512 à 518. En effet, les contrôleurs de NVM comprennent chacun par exemple un circuit mettant en œuvre le circuit de commande 232 de la figure 2 pour contrôler chaque porte C non volatile.
Dans l'exemple de la figure 7, les signaux d'accusé de réception à destination et en provenance de chaque demi-tampon 512 à 518 passent par exemple par 1'intermédiaire du contrôleur de NVM correspondant 712 à 718, de sorte que ces signaux sont gelés pendant les opérations de sauvegarde et de restauration de données, empêchant ainsi temporairement que des données se déplacent dans le pipeline pendant un temps suffisant pour un achèvement correct de ces opérations. Comme cela est illustré en figure 7, les signaux d'accusé de réception générés par les demi-tampons 512 à 518 sont respectivement notés acki-2 à acki+i, et les signaux d'accusé de réception reçus par les contrôleurs de NVM 712 à 718 à partir du-. contrôleur de NVM de l'étage suivant sont notés ackgi-i à ackgi+2·
Chaque contrôleur de NVM 712 à 718 comporte par exemple des entrées pour recevoir, à partir d'un circuit de commande (CTRL) 720, les signaux rstn, WRNV, RDNV, AzNV, Az, RD and WR, qui vont être décrits plus en détail en relation avec les figures 8 et 9.
La figure 8 illustre schématiquement 1'étage de pipeline 504 et le contrôleur de NVM 714 correspondant plus en détail selon un exemple de réalisation. Les autres contrôleurs de NVM 712, 716 et 718 comprennent par exemple des circuits similaires.
Le circuit de sortie 614 du contrôleur de NVM 714 dans 1'exemple de la figure 8 est par exemple une bascule D comprenant une mémoire non volatile 802. La bascule non volatile 814 est par exemple mise en œuvre par une paire de bascules à verrouillage couplées en série, chaque bascule à verrouillage étant par exemple mise en œuvre par ion circuit similaire à celui de la figure 2, mais sans les transistors 102 à 108, 114, 116, 118, 120 et 217. En variante, la bascule non volatile 814 pourrait être mise en œuvre par un dispositif décrit dans l'une des publications suivantes : demande de brevet internationale publiée sous le numéro W02014/110566 ; demande de brevet des États-Unis publiée sous le numéro US2013/0286721 ; et brevet des États-Unis US6862226, le contenu de ces publications étant incorporé ici comme référence dans les limites autorisées par la loi. L'entrée de donnée de la bascule 614 est couplée à la sortie de la porte ET 604, qui a par exemple l'une de ses entrées couplée de façon à recevoir le signal acki-i sur la ligne de sortie d'accusé de réception du demi-tampon 514, cette entrée étant inversée, et son autre entrée couplée de façon à recevoir le signal d'accusé de réception ackgi sur la ligne d'accusé de réception provenant de l'étage suivant. Le bit de détection de présence de données généré sur la sortie Q de la bascule 614 est utilisé pour contrôler si des opérations de sauvegarde ou de restauration de données sont réalisées ou pas dans la mémoire non volatile 704 du demi-tampon 512. Par exemple, la sortie Q de la bascule 614 est couplée à une entrée d'une porte NON ET à trois entrées 804. Une autre entrée de la porte NON ET 804 est couplée au signal RDNV, et encore une autre entrée inversée de la porte NON ET 804 est couplée au signal d'entrée AZNV. Une ligne 806 sur la sortie de la porte NON ET 804 est couplée à une entrée d'une porte OU à deux entrées 808, qui a son autre entrée couplée de façon à recevoir le signal AZ. La ligne 806 sur la sortie de la porte NON ET 804 est aussi couplée à une entrée d'une porte ET à deux entrées 810 par l'intermédiaire d'un inverseur 812, l'autre entrée de la porte ET 810 étant couplée de façon à recevoir le signal RD. La sortie de l'inverseur 812 est aussi couplée à une entrée d'une porte OU à deux entrées 814, dont l'autre entrée est couplée de façon à recevoir l'inverse du signal de réinitialisation rstn. La sortie de la porte OU 814 est couplée à une entrée de la porte ET à deux entrées 816, dont l'autre entrée est couplée de façon à recevoir le signal WR.
Le signal WR est aussi couplé à une entrée d'une porte ET à deux entrées 818, dont l'autre entrée est couplée à la sortie Q de la bascule 614. La sortie de la porte ET 818 est couplée à une entrée d'une porte OU à deux entrées 820, dont l'autre entrée reçoit le signal d'accusé de réception ackgi provenant du contrôleur de NVM de l'étage suivant. La sortie de la porte OU 820 est couplée à 1'entrée d'accusé de réception du demi-tampon 512.
Le signal d'accusé de réception acki-i généré par le demi-tampon 512 est par exemple couplé à une entrée d'une porte ET à deux entrées 822, dont l'autre entrée est couplée de façon à recevoir le signal WR inversé. Ce signal WR est aussi couplé à l'entrée d'horloge CK de la bascule 614. La sortie de la porte ET 822 fournit le signal d'accusé de réception ackgi-i.
La mémoire non volatile de la bascule 614 reçoit par exemple le signal RDNV sur son entrée de lecture, le signal AZNV sur son entrée Az, et le signal WR provenant de la sortie d'une porte OU à deux entrées 824. La porte OU 824 a une entrée couplée à la sortie d'une porte ET à deux entrées 826, qui à son tour a l'une de ses entrées couplée au signal WRNV et son autre entrée couplée à la sortie de la porte OU 814. Le signal WRNV est aussi fourni à une entrée d'une porte C à deux entrées 828 ayant une réinitialisation active à l'état bas. Une autre entrée de réinitialisation de la porte C 828 est inversée et couplée au signal de réinitialisation rstn, et la deuxième entrée de la porte C 828 est couplée à la sortie d'une autre porte C à deux entrées 830 ayant une réinitialisation active à l'état bas. La porte C 828 a une entrée inversée couplée de façon à recevoir le signal de réinitialisation rstn et ses autres entrées couplées respectivement à la sortie de l'inverseur 812 et au signal de lecture RD.
Le signal de réinitialisation rstn est inversé par un inverseur 832 pour fournir le signal à l'entrée de la porte OU 814. La sortie de l'inverseur 832 est aussi couplée à une entrée d'une porte OU à deux entrées 834, dont l'autre entrée est couplée à la sortie de la porte C 828, qui est aussi couplée à une entrée de la porte OU 824. La sortie de la porte OU 834 est couplée à une entrée de réinitialisation R de la bascule 614.
Dans certains modes de réalisation, la valeur de détection de présence de données sur la sortie Q de la bascule 614 fournit aussi une valeur de sortie OUT de chaque contrôleur de NVM, ces lignes étant couplées à un circuit de commande de sorte que les valeurs de détection de présence de données peuvent être mémorisées dans une table de jetons, comme on va le décrire plus en détail dans la suite.
Les signaux WR, RD et AZ sont des signaux de lecture et d'écriture globaux destinés à contrôler les opérations de sauvegarde et de restauration vers/à partir de la mémoire non volatile des demi-tampons, et ces signaux sont propagés comme signaux de commande locaux vers les demi-tampons seulement si des données sont présentes. Les signaux WRNV, RDNV et AZNV sont des signaux de commande pour contrôler les opérations de sauvegarde et de restauration vers/à partir de la mémoire non volatile de la bascule 614. Le signal rstn est un signal de réinitialisation pour initialiser les états des portes C 830, 828 et de la bascule 614 après une mise sous tension.
En fonctionnement, lorsque le signal d'écriture WR est activé, la bascule 614 échantillonne la sortie de la porte ET 604, qui indique, sur la base d'une analyse des signaux d'accusé de réception, s'il y a des données maintenues par le demi-tampon 504. La valeur échantillonnée à partir de la porte ET 604 est par exemple mémorisée dans la mémoire non volatile 802 avant que le pipeline passe dans un état de coupure d'alimentation. Ces données peuvent être récupérées, pendant une phase de récupération, lors d'une mise sous tension pour indiquer quels demi-tampons doivent être restaurés. La porte NON ET 804 est utilisée pour empêcher la propagation de l'état non défini sur la sortie de la bascule 614 pendant la phase de récupération.
La sortie de la porte NON ET 804 est utilisée pour générer le signal d'écriture local WRi vers la mémoire non volatile 704 du demi-tampon 504, qui va être activé lorsque le signal d'écriture WR est activé et qu' il y a des données dans le demi-tampon 504. En outre, la sortie de la bascule 614 est utilisée pour bloquer, en utilisant la porte ET 818 et la porte OU 820, le signal d'accusé de réception d'entrée pour 1'empêcher de passer à l'état bas pendant que le signal d'écriture WR est activé. De façon similaire, la porte ET 822 bloque le signal d'accusé de réception ackgi-i pour l'empêcher d'être activé jusqu'à ce que le signal d'écriture WR soit passé à l'état bas. Ainsi, une impulsion haute du signal d'écriture WR provoque un état gelé dans lequel la propagation des données dans le pipeline est suspendue pendant l'écriture de la mémoire non volatile 704. La durée de cette impulsion haute est par exemple choisie de façon à être suffisamment longue pour que cette opération d'écriture soit réalisée.
Une fois que le signal d'écriture WR est passé à l'état bas, les signaux d'accusé de réception sont libérés, et le pipeline continue son fonctionnement normal à partir de l'état gelé.
Le signal WRNV est utilisé pour écrire 1'état de présence de données détecté mémorisé par la bascule 614 dans la mémoire non volatile 802. Ainsi le signal WRNV est par exemple activé une fois que l'opération de détection a été réalisée par la porte ET 604 et que la bascule 614 mémorise un niveau logique valide.
Pendant une mise sous tension, le signal de réinitialisation global rstn est utilisé pour réinitialiser les portes C 828 et 830 et la bascule 614. Une fois que tous les états initiaux ont été établis, la phase de récupération survient, dans laquelle d'abord le bit de donnée mémorisé par la mémoire non volatile 802 est restauré vers la bascule 614 par une séquence d'impulsions des signaux RDNV et AZNV. Pendant cette phase de récupération, la sortie Q de la bascule 614 est restaurée à la valeur de la valeur de présence de données détectée, mais cette valeur est bloquée par la porte NON ET 804 pendant que les signaux RDNV et AZNV sont activés. Un niveau haut sur la sortie Q de la bascule 614 permet aux signaux AZ et RD de passer à travers les portes 808 et 810 et de contrôler la mémoire non volatile 704 pour restaurer les données mémorisées dans le stockage volatil du demi-tampon 512. En outre, une sortie haute de la bascule 614 est utilisée, par l'intermédiaire de l'inverseur 812 et des portes C 830, 828, pour déclencher une réinitialisation de la bascule 614 à la suite d'une récupération pour effacer la valeur maintenue par la mémoire non volatile 802. En effet, la porte C 828 génère une valeur haute si des données ont été précédemment détectées comme présentes et si un niveau haut du signal WRNV arrive, provoquant la réinitialisation de la bascule 614 et une sur-écriture de la mémoire non volatile 802, et préparant ainsi la bascule 614 pour un cycle suivant de détection de présence de données.
La figure 9 est un chronogramme illustrant des signaux dans le pipeline 600 de la figure 7 selon un exemple de réalisation. Du haut vers le bas, la figure 7 illustre la tension d'alimentation VDD du demi-tampon 512, le signal d'accusé de réception ackgi-2, les signaux de données Aj__2<0> et Aj__2<l>, le signal d'accusé de réception ackgi-i, les signaux de données Ai_i<0> et Aj__]_<l>, le signal d'accusé de réception ackgi, les signaux de données Aj_<0> et Aj_<l>, le signal d'accusé de réception ackgi+i, les signaux de données A-j_+]_<0> et A-j_+]_<l>, le signal d'accusé de réception ackgi+2, les signaux rstn, WR, AZ, RD, WRNV, AZNV et RDNV reçus par les contrôleurs de NVM, les signaux WRi-i, AZi-i et RDi-i fournis au demi-tampon 512 par le contrôleur de NVM 712 correspondant, les signaux WRj_, AZ± et RDi fournis au demi-tampon 514 par le contrôleur de NVM 714 correspondant, les signaux WRi+i, AZi+i et RDi+i fournis au demi-tampon 516 par le contrôleur de NVM 716 correspondant et les signaux WRi+2, AZi+2 et RDi+2 fournis au demi-tampon 518 par le contrôleur de NVM 718 correspondant.
Pendant une première période 902, une phase d'initialisation a lieu dans laquelle toutes les bascules et toutes les portes C de l'étage de pipeline sont mises dans un état initial, et tous les éléments non volatils sont effacés et mis dans un état initial. Ainsi, les signaux d'écriture WRNV, WR, WRi-i, WRi, WRi+i et WRi+2 sont activés.
Pendant une période suivante 904, un fonctionnement standard a lieu dans lequel des données rentrent et se propagent dans le pipeline.
Pendant une période suivante 906, une phase de sauvegarde a lieu pendant laquelle les contrôleurs de NVM 712 à 718 analysent l'état du pipeline et détectent la présence de données dans les demi-tampons. Si des données sont détectées dans un étage, elles sont mémorisées dans la mémoire non volatile locale du demi-tampon. Dans l'exemple de la figure 9, des données sont détectées dans le demi-tampon 518, et ainsi le signal WRi+2 est activé pour écrire les données de ce demi-tampon dans sa mémoire volatile. Peu de temps après, le signal WR est activé, le signal WRNV est activé pour écrire les bits de détection de présence de données générés dans chaque contrôleur dans la mémoire non volatile correspondante.
Le pipeline reprend ensuite par exemple son fonctionnement normal pendant une période 908, mais ensuite par exemple un blocage d'alimentation survient, et la tension d'alimentation VDD est amenée à l'état bas pendant une période 910. À la fin de cette période, une mise sous tension survient, et la tension d'alimentation VDD est de nouveau activée.
Une période d'initialisation 912 par exemple survient ensuite, pendant laquelle le signal de réinitialisation rstn est appliqué à la totalité des bascules et des portes C de sorte qu'elles passent dans un état logique stable.
Dans une période suivante 914, une phase de restauration a lieu, pendant laquelle le résultat de l'opération de détection de présence de données précédente est restauré, dans chacun des contrôleurs du pipeline, à partir de la mémoire non volatile 802 de la bascule 614 vers le stockage volatil de la bascule. Pour cela, le signal AZNV est par exemple amené à un état bas, et peu de temps après le signal RDNV est amené à l'état haut. Le signal AZNV revient ensuite à un niveau haut, et le signal RDNV revient à un niveau bas.
Dans une opération suivante 916, les bits de détection de présence restaurés dans chaque contrôleur sont utilisés pour contrôler si une opération de restauration est réalisée ou pas dans le demi-tampon correspondant. Dans cet exemple, le signal de commande local AZi+2 est amené à l'état bas et peu de temps après le signal de commande local RDi+2 est amené à l'état haut pour récupérer les données mémorisées dans la mémoire non volatile du demi-tampon 518 vers sa portion volatile.
Pendant une période suivante 918, le pipeline reprend son fonctionnement normal à partir de l'état mémorisé précédemment, et les mémoires non volatiles 802 des bascules 614 de chaque contrôleur sont effacées par un niveau haut du signal WRNV de sorte que la bascule est prête pour une opération de détection de présence de données suivante.
Alors que dans l'exemple de la figure 9 une seule opération de sauvegarde est illustrée avant la coupure d'alimentation, en pratique il peut y avoir plusieurs opérations de sauvegarde conduisant à la phase de coupure d'alimentation, chaque opération de sauvegarde écrasant l'écriture des résultats de l'opération de sauvegarde précédente.
La figure 10 est un organigramme illustrant des étapes dans un procédé de sauvegarde et de restauration de données dans un pipeline asynchrone, par exemple le pipeline 600 de la figure 7, selon un exemple de réalisation. Ces opérations sont par exemple réalisées par les contrôleurs de NVM 712 à 718 et le circuit de commande 720 de la figure 7. À partir d'un point de départ 1000 du procédé, dans une étape 1001, un fonctionnement normal du pipeline a lieu, pendant lequel des données sont introduites dans le pipeline.
Dans une étape 1002, on détermine s'il y a assez d'énergie pour alimenter le pipeline. Par exemple, le pipeline asynchrone fait partie d'un dispositif électronique portable alimenté par une batterie, et l'étape 1002 implique une vérification de l'état de charge de la batterie. Quand le niveau d'énergie est élevé, le fonctionnement de pipeline 1001 continue par exemple sans sauvegarde de données. Par contre, lorsque le niveau d'énergie descend en dessous d'un certain seuil, le procédé va par exemple à une étape 1003.
Dans l'étape 1003, une phase de sauvegarde est lancée, par exemple en activant le signal WR.
Dans une étape suivante 1004, on détermine si la présence de jetons de données a été détectée dans l'un quelconque des étages du pipeline. Si oui, dans une opération suivante 1005, les données présentes dans chaque étage de pipeline correspondant sont mémorisées localement, et dans une étape suivante 1006, une table de jetons est par exemple mise à jour. La table de jetons est par exemple une table mémorisée dans une mémoire non volatile du circuit de commande 720 de la figure 7 et indique, pour chaque étage de pipeline, si des données étaient présentes ou pas à l'instant de la dernière opération de sauvegarde. Ensuite, dans une étape 1007, le pipeline asynchrone voit son alimentation coupée. L'étape 1007 est aussi réalisée directement après l'étape 1004 si aucun jeton n'est détecté et le pipeline peut par conséquent être considéré comme vide de données.
Dans une étape suivante 1008, on détermine encore une fois s'il y a de l'énergie disponible, par exemple puisqu'une batterie alimentant le pipeline asynchrone a été chargée, ou qu'un dispositif de collecte d'énergie a pompé dans un condensateur d'alimentation ayant une quantité d'énergie suffisante. Dans la négative, le procédé revient dans l'étape de coupure d'alimentation 1007. Si par contre de l'énergie est devenue disponible, l'étape suivante est l'étape 1009, dans laquelle une mise sous tension du pipeline asynchrone a lieu.
Dans une étape suivante 1010, la table de jetons se trouvant dans le circuit de commande 720 est par exemple restaurée à partir du stockage non volatil, puis on détermine dans une étape 1011 si la dernière information de détection de présence de données indiquait la présence de données dans le pipeline. Par exemple, la table de jetons contient un bit de données pour chaque étage du pipeline indiquant s'il contenait des données ou pas. Si au moins un jeton était présent dans le pipeline, une ou plusieurs opérations de lecture de mémoire non volatile 1012 sont réalisées pour restaurer les données du pipeline. Ensuite, dans une étape 1013, la table de jetons est réinitialisée dans la mémoire non volatile, puis dans une étape 1014, le fonctionnement normal du pipeline est repris. Le fonctionnement normal du pipeline est aussi par exemple repris directement après l'étape 1011 si aucun jeton n'est détecté dans le pipeline.
Un avantage des modes de réalisation décrits ici est que la consommation d'énergie peut être réduite pendant une sauvegarde non volatile d'un pipeline asynchrone en détectant l'emplacement où des données sont présentes dans le pipeline, et en réalisant des opérations de sauvegarde et de restauration seulement dans les étages du pipeline dans lesquels des données sont présentes.
Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art. Par exemple, alors que dans les exemples de réalisation chaque étage du circuit asynchrone comprend un demi-tampon, dans des variantes de réalisation on pourrait utiliser d'autres types de circuits tampons.
En outre, il apparaîtra clairement à l'homme de l'art que la tension d'alimentation VDD dans les divers modes de réalisation pourrait avoir un niveau quelconque, par exemple entre 1 V et 3 V, et plutôt que d'être à 0 V, la tension de masse pourrait aussi être considérée comme une tension d'alimentation qui pourrait avoir un niveau quelconque, comme un niveau négatif.
En outre, il apparaîtra clairement à l'homme de l'art que, dans tous les modes de réalisation décrits ici, tous les transistors NMOS pourraient être remplacés par des transistors PMOS et/ou que tous les transistors PMOS pourraient être remplacés par des transistors NMOS. Il apparaîtra clairement à l'homme de l'art comment on pourrait mettre en œuvre les circuits en utilisant seulement des transistors PMOS ou seulement des transistors NMOS, par exemple en inversant les rails d'alimentation. En outre, alors qu'on a décrit ici des transistors basés sur la technologie MOS, dans des variantes de réalisation on pourrait utiliser d'autres technologies, comme la technologie bipolaire.

Claims (10)

  1. REVENDICATIONS
    1. Circuit asynchrone comprenant : un pipeline asynchrone (600) comprenant deux étages, ou plus, (502, 504, 506, 508) , chaque étage comportant : un circuit tampon (512, 514, 516, 518) pour mémoriser temporairement des données à transférer d'un étage vers le suivant sur la base d'un protocole de poignée de main, le circuit tampon comprenant une mémoire non volatile (702, 704, 706, 708) ; et un circuit de détection de présence de données (604, 614) adapté à générer une valeur de détection de présence de données indiquant si des données sont mémorisées ou pas par le circuit tampon ; et un circuit de commande (712, 714, 716, 718, 720) adapté à réaliser une opération de sauvegarde de données en contrôlant indépendamment chaque circuit tampon pour sauvegarder les données qu'il mémorise vers sa mémoire non volatile (702, 704, 706, 708) sur la base de la valeur de détection de présence de données correspondante.
  2. 2. Circuit asynchrone selon la revendication 1, dans lequel le circuit de détection de présence de données (604, 614) comprend une autre mémoire non volatile (802) adaptée à mémoriser la valeur de détection de présence de données, dans lequel le circuit de commande (712, 714, 716, 718, 720) est adapté à contrôler chaque circuit de détection de présence de données (604, 614) pour restaurer la valeur de détection de présence de données à partir de l'autre mémoire non volatile pendant une phase de mise sous tension.
  3. 3. Circuit asynchrone selon la revendication 1 ou 2, dans lequel chacun des circuits de détection de présence de données (604, 614) est adapté à générer la valeur de détection de présence de données sur la base de l'état d'un signal d'accusé de réception (ackg) reçu d'un étage suivant du pipeline, et d'un signal d'accusé de réception (ack) généré par le circuit tampon (512, 514, 516, 518) correspondant.
  4. 4. Circuit asynchrone selon la revendication 3, dans lequel le pipeline asynchrone comprend une ou plusieurs paires de lignes de données et une ligne d'accusé de réception couplant le circuit tampon (512, 514, 516, 518) de chaque étage de pipeline au suivant, dans lequel les circuits tampons (512, 514, 516, 518) sont agencés pour mettre en œuvre un protocole de poignée de main à quatre phases pour le transfert d'un jeton de données à partir d'une phase de pipeline vers la suivante, le protocole de poignée de main à quatre phases comprenant le fait d'amener le signal d'accusé de réception présent sur la ligne d'accusé de réception d'un premier état vers un deuxième état et de le ramener vers le premier état, et dans lequel le circuit de détection de présence de données (604, 614) d'un premier étage de pipeline est adapté à générer une valeur de détection de présence de données indiquant que des données sont présentes dans le circuit tampon du premier étage de pipeline lorsque le signal d'accusé de réception provenant de l'étage de pipeline suivant est dans le premier état et le signal d'accusé de réception généré par le circuit tampon du premier étage de pipeline est dans le deuxième état.
  5. 5. Circuit asynchrone selon l'une quelconque des revendications 1 à 4, dans lequel le circuit de commande (720) comprend une mémoire non volatile mémorisant une table de jetons indiquant la présence de jetons de données dans le pipeline asynchrone.
  6. 6. Circuit asynchrone selon l'une quelconque des revendications 1 à 5, dans lequel le circuit tampon (512, 514, 516, 518) de chaque étage de pipeline est un demi-tampon comprenant des première et deuxième portes C, chaque porte C comprenant : des premier et deuxième nœuds d'entrée et des premier et deuxième inverseurs (110, 112) couplés de façon croisée entre des premier et deuxième nœuds de mémorisation complémentaires (Q, Z) le deuxième nœud de mémorisation (Z) formant un nœud de sortie de la porte C ; et une mémoire non volatile comprenant : un premier élément résistif (202) ayant une première borne couplée au premier nœud de mémorisation (Q) ; un deuxième élément résistif (204) ayant une première borne couplée au deuxième nœud de mémorisation (Z), au moins l'un des premier et deuxième éléments résistifs étant programmable pour prendre l'un d'au moins deux états résistifs (Rmiru Rmax) , une valeur de donnée étant représentée par les résistances relatives des premier et deuxième éléments résistifs, une deuxième borne du premier élément résistif (202) étant couplée à une deuxième borne du deuxième élément résistif (204) par l'intermédiaire d'un premier transistor (210) ; et dans lequel le circuit de commande est adapté, pendant une phase de sauvegarde d'un bit de donnée mémorisé sur les premier et deuxième nœuds de mémorisation vers la mémoire non volatile, à rendre conducteur le premier transistor (210) pendant que des niveaux logiques différents sont appliqués aux premier et deuxième nœuds d'entrée de la porte C.
  7. 7. Circuit asynchrone selon la revendication 6, dans lequel le premier transistor (210) est adapté à conduire un courant d'écriture pendant la phase de sauvegarde, et dans lequel le circuit de la porte C est agencé de telle sorte que le courant d'écriture passe à travers au moins un transistor de chacun des premier et deuxième inverseurs (110, 112) pendant la phase d'écriture.
  8. 8. Circuit asynchrone selon la revendication 6 ou 7, dans lequel : chacune des première et deuxième portes C est adaptée à recevoir ion premier signal d'entrée (A) sur le premier nœud d'entrée et un deuxième signal d'entrée (B) sur le deuxième nœud d'entrée ; et le premier inverseur (112) comprend : des premier et deuxième transistors (226, 228) ayant leurs nœuds de commande couplés au premier ou au deuxième nœud de mémorisation (Q, Z) ; des troisième et quatrième transistors (114, 116) couplés en parallèle entre eux et couplant le premier transistor du premier inverseur à un rail de tension d'alimentation (VDD) ; et des cinquième et sixième transistors (118, 120) couplés en parallèle entre eux et couplant le deuxième transistor du premier inverseur au rail de tension de masse.
  9. 9. Circuit asynchrone selon l'une quelconque des revendications 6 à 8, dans lequel au moins l'un des premier et deuxième éléments résistifs (202, 204) est de l'un des types suivants : un élément à couple de transfert de spin ayant une anisotropie dans le plan ; un élément à couple de transfert de spin ayant une anisotropie perpendiculaire au plan ; un élément à oxydation-réduction (RedOx) ; un élément ferroélectrique ; et un élément à changement de phase.
  10. 10. Procédé de sauvegarde de données dans un pipeline asynchrone comprenant deux étages de pipeline ou plus, le procédé comprenant : générer, par un circuit de détection de présence de données (604, 614) de chaque étage de pipeline, une valeur de détection de présence de données indiquant si des données sont mémorisées par un circuit tampon (512, 514, 516, 518) de chaque étage de pipeline, les circuits tampons mémorisant temporairement des données à transférer d'un étage vers le suivant sur la base d'un protocole de poignée de main, chaque circuit tampon comprenant une mémoire non volatile ; et réaliser une opération de sauvegarde de données en contrôlant indépendamment chaque circuit tampon (512, 514, 516, 518) pour sauvegarder les données qu'il mémorise vers sa mémoire non volatile sur la base de la valeur de détection de présence de données correspondante.
FR1650644A 2016-01-27 2016-01-27 Sauvegarde de donnees dans un circuit asynchrone Expired - Fee Related FR3047136B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1650644A FR3047136B1 (fr) 2016-01-27 2016-01-27 Sauvegarde de donnees dans un circuit asynchrone
EP17152929.0A EP3200350B1 (fr) 2016-01-27 2017-01-24 Sauvegarde de données dans un circuit asynchrone
US15/416,705 US10152253B2 (en) 2016-01-27 2017-01-26 Data back-up in an asynchronous circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1650644 2016-01-27
FR1650644A FR3047136B1 (fr) 2016-01-27 2016-01-27 Sauvegarde de donnees dans un circuit asynchrone

Publications (2)

Publication Number Publication Date
FR3047136A1 true FR3047136A1 (fr) 2017-07-28
FR3047136B1 FR3047136B1 (fr) 2018-02-16

Family

ID=56611295

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1650644A Expired - Fee Related FR3047136B1 (fr) 2016-01-27 2016-01-27 Sauvegarde de donnees dans un circuit asynchrone

Country Status (3)

Country Link
US (1) US10152253B2 (fr)
EP (1) EP3200350B1 (fr)
FR (1) FR3047136B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880964A (zh) * 2019-05-02 2020-11-03 Emc知识产权控股有限公司 用于基于出处的数据备份的方法和系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11855627B1 (en) 2022-01-13 2023-12-26 Kepler Computing Inc. Asynchronous consensus circuit using multi-function threshold gate with input based adaptive threshold

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19929600A1 (de) * 1998-09-01 2000-03-02 Lg Semicon Co Ltd Asynchrone Differentielle Abfühl-Logikschaltung (ASDL)
US6356117B1 (en) * 2000-09-29 2002-03-12 Sun Microsystems, Inc. Asynchronously controlling data transfers within a circuit
WO2012171988A1 (fr) * 2011-06-15 2012-12-20 Centre National De La Recherche Scientifique Cellule de mémoire comprenant une mémoire volatile et une mémoire non volatile

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004040582A1 (fr) 2002-11-01 2004-05-13 Matsushita Electric Industrial Co., Ltd. Procede permettant d'amorcer un circuit bistable non volatile a l'aide d'une element de changement de resistance
US9134787B2 (en) 2012-01-27 2015-09-15 Nvidia Corporation Power-gating in a multi-core system without operating system intervention
US9196337B2 (en) 2012-04-25 2015-11-24 Qualcomm Incorporated Low sensing current non-volatile flip-flop
US9147454B2 (en) 2013-01-14 2015-09-29 Qualcomm Incorporated Magnetic tunneling junction non-volatile register with feedback for robust read and write operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19929600A1 (de) * 1998-09-01 2000-03-02 Lg Semicon Co Ltd Asynchrone Differentielle Abfühl-Logikschaltung (ASDL)
US6356117B1 (en) * 2000-09-29 2002-03-12 Sun Microsystems, Inc. Asynchronously controlling data transfers within a circuit
WO2012171988A1 (fr) * 2011-06-15 2012-12-20 Centre National De La Recherche Scientifique Cellule de mémoire comprenant une mémoire volatile et une mémoire non volatile

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880964A (zh) * 2019-05-02 2020-11-03 Emc知识产权控股有限公司 用于基于出处的数据备份的方法和系统

Also Published As

Publication number Publication date
US10152253B2 (en) 2018-12-11
EP3200350A1 (fr) 2017-08-02
EP3200350B1 (fr) 2020-04-15
US20170212702A1 (en) 2017-07-27
FR3047136B1 (fr) 2018-02-16

Similar Documents

Publication Publication Date Title
EP2993786B1 (fr) Porte c munie d&#39;une sauvegarde non volatile
EP0298848A2 (fr) Détecteur électrique de niveau logique binaire
FR3009421A1 (fr) Cellule memoire non volatile
EP2821998B1 (fr) Dispositif à mémoire non volatile
EP3633677A1 (fr) Circuit memoire imc a cellules 6t
FR3041806A1 (fr) Dispositif de memoire non volatile, par exemple du type eeprom, ayant une capacite memoire importante, par exemple 16mbits
FR2665973A1 (fr) Circuit d&#39;optimisation d&#39;effacement automatique pour une memoire a semiconducteur programmable et effacable electriquement et procede s&#39;y rapportant.
FR2970589A1 (fr) Cellule mémoire volatile/non volatile
FR2473814A1 (fr) Circuit mos dynamique ne dependant pas d&#39;un rapport de resistances destine a constituer des circuits logiques divers
FR3008534B1 (fr) Procede de gestion du fonctionnement d&#39;un dispositif de memoire associant un plan-memoire du type sram et un plan memoire du type non volatil, et dispositif de memoire correspondant
FR3047136A1 (fr)
US9063843B2 (en) Data processing apparatus
FR2801419A1 (fr) Procede et dispositif de lecture pour memoire en circuit integre
EP3158562B1 (fr) Registre ayant une mémoire non volatile pour la sauvegarde et la restauration d&#39;une mémoire volatile
FR2475269A1 (fr) Procede de synchronisation d&#39;elevation de tension dans une memoire dynamique a semi-conducteur
WO2015086845A1 (fr) Systeme d&#39;ecriture de donnees dans une mémoire
EP3427383B1 (fr) Communications asynchrones résistant aux rayonnements
EP1818942A1 (fr) Dispositif de mémoire non volatile
EP0833346B1 (fr) Mémoire à accès série avec sécurisation de l&#39;écriture
FR3004576A1 (fr)
EP4020479A1 (fr) Lecture différentielle de mémoire rram à faible consommation
FR2724483A1 (fr) Procede de decodage d&#39;adresse dans une memoire en circuit integre et circuit memoire mettant en oeuvre le procede
FR2810438A1 (fr) Circuit de detection d&#39;usure
EP0606796A1 (fr) Procédé de programmation en champ uniforme d&#39;une mémoire électriquement programmable et mémoire mettant en oeuvre le procédé
FR3055735A1 (fr) Amplificateur de detection apte a controler une operation de lecture dans une memoire

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20170728

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 5

ST Notification of lapse

Effective date: 20210905