Brevet FR3047136A1 (20170728)
REVENDICATIONS1. 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,\n<CLM>\1\tpour mémoriser 5 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,\n<CLM>\1\t; et un circuit de détection de présence de données (604,\n<CLM>\1\tadapté à générer une valeur de détection de présence de 10 données indiquant si des données sont mémorisées ou pas par le circuit tampon ; et un circuit de conimande (712, 714, 716, 718,\n<CLM>\1\tadapté à réaliser une opération de sauvegarde de données en contrôlant indépendamment chaque circuit tampon pour sauvegarder les données 15 qu'il mémorise vers sa mémoire non volatile (702, 704, 706,\n<CLM>\1\tsur la base de la valeur de détection de présence de données correspondante.\n<CLM>\1\tCircuit asynchrone selon la revendication 1, dans lequel le circuit de détection de présence de données (604,\n<CLM>\1\t20 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 collunande (712, 714, 716, 718,\n<CLM>\1\test adapté à contrôler chaque circuit de détection de présence de données (604,\n<CLM>\1\tpour restaurer la valeur de détection de présence de données 25 à partir de l'autre mémoire non volatile pendant une phase de mise sous tension.\n<CLM>\1\tCircuit asynchrone selon la revendication 1 ou 2, dans lequel chacun des circuits de détection de présence de données (604,\n<CLM>\1\test adapté à générer la valeur de détection de 30 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,\n<CLM>\1\tcorrespondant. 3047136 30\n<CLM>\1\tCircuit 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,\n<CLM>\1\tde chaque étage de pipeline au suivant, dans lequel les circuits tampons (512, 514, 516,\n<CLM>\1\tsont agencés pour mettre en oeuvre 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,\n<CLM>\1\td'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.\n<CLM>\1\tCircuit 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.\n<CLM>\1\tCircuit asynchrone selon l'une quelconque des revendications 1 à 5, dans lequel le circuit tampon (512, 514, 516,\n<CLM>\1\tde chaque étage de pipeline est comprenant des première et deuxième portes C, comprenant des premier et deuxième noeuds d'entrée et des premier et deuxième inverseurs (110,\n<CLM>\1\tcouplés de façon croisée entre des premier et deuxième noeuds de mémorisation complémentaires (0, Z) le deuxième noeud de mémorisation (Z) formant un noeud de sortie de la porte C ; et une mémoire non volatile comprenant : un demi-tampon chaque porte C 3047136 31 un premier élément résistif (202) ayant une première borne couplée au premier noeud de mémorisation (0) ; un deuxième élément résistif (204) ayant une première borne couplée au deuxième noeud de mémorisation (Z), au moins l'un 5 des premier et deuxième éléments résistifs étant programmable pour prendre l'un d'au moins deux états résistifs (Rmin, 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 10 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 noeuds de mémorisation vers la mémoire non volatile, à 15 rendre conducteur le premier transistor (210) pendant que des niveaux logiques différents sont appliqués aux premier et deuxième noeuds d'entrée de la porte C.\n<CLM>\1\tCircuit asynchrone selon la revendication 6, dans lequel le premier transistor (210) est adapté à conduire un 20 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,\n<CLM>\1\tpendant la phase d'écriture. 25\n<CLM>\1\tCircuit asynchrone selon la revendication 6 ou 7, dans lequel : chacune des première et deuxième portes C est adaptée à recevoir un premier signal d'entrée (A) sur le premier noeud d'entrée et un deuxième signal d'entrée (B) sur le deuxième noeud 30 d'entrée ; et le premier inverseur (112) comprend : des premier et deuxième transistors (226,\n<CLM>\1\tayant leurs noeuds de commande couplés au premier ou au deuxième noeud de mémorisation (Q, Z) ; des troisième et quatrième transistors (114,\n<CLM>\1\tcouplés en 35 parallèle entre eux et couplant le premier transistor du premier 3047136 32 inverseur à un rail de tension d'alimentation (VDD) ; et des cinquième et sixième transistors (118,\n<CLM>\1\tcouplés en parallèle entre eux et couplant le deuxième transistor du premier inverseur au rail de tension de masse. 5\n<CLM>\1\tCircuit 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,\n<CLM>\1\test de l'un des types suivants : un élément à couple de transfert de spin ayant une 10 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 15 un élément à changement de phase.\n<CLM>\1\tProcé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 20 données (604,\n<CLM>\1\tde 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,\n<CLM>\1\tde chaque étage de pipeline, les circuits tampons mémorisant temporairement des données à transférer d'un étage vers le suivant sur la base 25 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,\n<CLM>\1\tpour sauvegarder les données qu'il mémorise vers sa mémoire 30 non volatile sur la base de la valeur de détection de présence de données correspondante.