Les dispositifs informatiques utiles nécessitent une rétroaction, ce qui permet à un élément de circuit d'effectuer un nombre essentiellement illimité de calculs séquentiels. Les circuits de rétroaction utilisables doivent contenir des sections dont le nombre total d'entrées (en comptant à la fois celles qui sont renvoyées par les sorties et celles qui ne le sont pas) dépasse le nombre de sorties qui sont renvoyées à l'entrée (la seule façon dont le nombre d'entrées ne t dépasser le nombre de sorties de rétroaction serait si les circuits ne répondaient en aucune façon à des stimuli extérieurs). Étant donné que les fonctions logiques parfaitement réversibles ne peuvent pas avoir plus d'entrées que de sorties, il n'est pas possible de construire à partir d'elles les structures de rétroaction requises pour effectuer à plusieurs reprises des tâches informatiques non triviales.. Notez qu'avec la technologie CMOS utilisée dans les ordinateurs d'aujourd'hui, une rétroaction est nécessaire pour garantir que les résultats rapportés par les calculs dans différentes parties d'un circuit sont mis à la disposition simultanément d'autres parties, car s'ils n'étaient pas le timing relatif avec lequel les signaux arrivent, constituent des "informations" qui ne peuvent être parfaitement transmises en aval; d'autres technologies pourraient permettre à de nombreuses portes de propager des signaux exactement au même rythme tout en conservant la réversibilité, mais je ne connais aucune technologie pratique pour cela.
Notez que d'un point de vue CS, il est trivial de rendre un processus informatique réversible si l'on a un support de stockage initialement vide dont la taille est essentiellement proportionnelle au nombre d'étapes multiplié par la quantité d'état qui pourrait changer à chaque étape. Cette affirmation ne contredit pas l'affirmation du paragraphe précédent, car un stockage proportionnel au nombre d'étapes nécessitera des circuits proportionnels au nombre d'étapes, ce qui impliquera des circuits proportionnels à la quantité qui serait nécessaire si tous les retours étaient éliminés.
Si l'on est autorisé à avoir des sorties qui sont ignorées si, dans des conditions d'entrée appropriées, elles n'atteindront jamais le niveau haut, il pourrait être possible de concevoir un système qui, en théorie, bénéficierait d'une logique réversible. Par exemple, si l'on avait un algorithme qui fonctionnait sur un bloc de 256 mots de RAM et que l'on voulait utiliser un "processeur logique réversible" qui effectuait 1 000 000 d'opérations par seconde et chaque opération mettait à jour un registre, le compteur de programme ou un mot de RAM, on pourrait utiliser un "CPU réversible" qui:
- a exécuté un tas d'instructions et, sur chacune, envoyer tout ce qui a été écrasé dans un tampon LIFO
- après l'exécution d'un tas d'instructions, copiez la mémoire RAM dans un tampon de "transfert" initialement vierge
- en utilisant les valeurs du LIFO, exécutez tous les calculs en sens inverse
- écraser le contenu de la RAM principale avec le tampon de transfert, qui serait effacé au cours du processus.
La recette ci-dessus peut être répétée un certain nombre de fois pour exécuter l'algorithme pour un nombre arbitraire d'étapes; seule la dernière étape de la recette ne serait pas réversible. La quantité d'énergie dépensée par étape algorithmique dans des opérations non réversibles serait inversement proportionnelle à la taille du LIFO, et pourrait donc être rendue arbitrairement petite si l'on construisait pour construire un LIFO suffisamment grand.
Cependant, pour que cette capacité se traduise par toutes sortes d'économies d'énergie, il serait nécessaire d'avoir un LIFO qui stockerait l'énergie lorsque les informations seraient entrées et rendrait utilement cette énergie lors de la lecture. En outre, le LIFO devrait être suffisamment grand pour contenir les données d'état pour suffisamment d'étapes pour que le coût énergétique de son utilisation soit inférieur à la quantité d'énergie qu'il a utilement économisée. Étant donné que la quantité d'énergie perdue dans le stockage et la récupération de N octets à partir de n'importe quel FIFO pratique est peu susceptible d'être O (1), il n'est pas clair que l'augmentation de N réduira significativement la consommation d'énergie.