ES2963835T3 - Mechanical computing systems - Google Patents

Mechanical computing systems Download PDF

Info

Publication number
ES2963835T3
ES2963835T3 ES15912213T ES15912213T ES2963835T3 ES 2963835 T3 ES2963835 T3 ES 2963835T3 ES 15912213 T ES15912213 T ES 15912213T ES 15912213 T ES15912213 T ES 15912213T ES 2963835 T3 ES2963835 T3 ES 2963835T3
Authority
ES
Spain
Prior art keywords
logic
links
mechanical
input
mechanisms
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.)
Active
Application number
ES15912213T
Other languages
Spanish (es)
Inventor
Ralph C Merkle
Robert Freitas
James Ryley
Matthew Moses
Tad Hogg
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.)
CBN Nano Technologies Inc
Original Assignee
CBN Nano Technologies Inc
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 CBN Nano Technologies Inc filed Critical CBN Nano Technologies Inc
Application granted granted Critical
Publication of ES2963835T3 publication Critical patent/ES2963835T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06CDIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
    • G06C15/00Computing mechanisms; Actuating devices therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06CDIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
    • G06C21/00Programming-mechanisms for determining the steps to be performed by the computing machine, e.g. when a key or certain keys are depressed

Abstract

Sistemas y métodos para crear mecanismos informáticos mecánicos y sistemas completos de Turing que incluyan lógica combinatoria y lógica secuencial y sean energéticamente eficientes. Las realizaciones de la invención incluyen mecanismos informáticos mecánicos y sistemas computacionales que tienen una menor disipación de energía, un número menor de piezas básicas y otras ventajas sobre los sistemas anteriores. Se divulgan múltiples realizaciones que incluyen lógica de enlace mecánico, lógica de flexión mecánica y lógica de cable mecánico, junto con paradigmas de diseño (que incluyen diseños mecánicos, principios y un novedoso sistema de clasificación que clasifica los sistemas como Tipos 1 a 4) que enseñan cómo aplicar la principios generales a otras realizaciones. (Traducción automática con Google Translate, sin valor legal)Systems and methods for creating mechanical computing mechanisms and Turing complete systems that include combinatorial logic and sequential logic and are energy efficient. Embodiments of the invention include mechanical computing mechanisms and computing systems that have lower power dissipation, fewer basic parts, and other advantages over prior systems. Multiple embodiments are disclosed including mechanical link logic, mechanical bending logic, and mechanical cable logic, along with design paradigms (including mechanical designs, principles, and a novel classification system that classifies systems as Types 1 to 4) that They teach how to apply general principles to other implementations. (Automatic translation with Google Translate, without legal value)

Description

DESCRIPCIÓNDESCRIPTION

Sistemas de computación mecánica Mechanical computing systems

La presente invención se refiere al campo de la tecnología de la computación o los sistemas de computación relacionados con dispositivos de propósito general que pueden programarse para llevar a cabo un conjunto de operaciones aritméticas o lógicas. Más específicamente, la presente invención está dirigida a la computación mecánica, en donde un ordenador mecánico está construido a partir de componentes mecánicos en lugar de componentes electrónicos. The present invention relates to the field of computing technology or computing systems related to general purpose devices that can be programmed to carry out a set of arithmetic or logical operations. More specifically, the present invention is directed to mechanical computing, wherein a mechanical computer is constructed from mechanical components rather than electronic components.

Los métodos para la computación mecánica son conocidos en la técnica anterior. (Svoboda, “ Computing Mechanisms and Linkage” , New York, Den Publications, 1965; Bradley, “ Mechanical Computing in Microelectromechanical Systems (MEMS)” , Instituto de Tecnología de la Fuerza Aérea, AFIT/GE/ENG/03-04, Ohio, 2003; Sharma, Ram y col., “ Mecanical Logic Devices and Circuits” , 14th National Conference on Machines and Mechanisms [NaCoMM-09], 2009) Sin embargo, si bien el primer ejemplo de un diseño Turing completo es probablemente el motor analítico de Babbage, que se describió en 1837 (aunque nunca se construyó), la gran mayoría de las propuestas anteriores para la computación mecánica no son sistemas Turing completos. Más bien, son dispositivos de propósito especial no destinados a abordar la computación de propósito general en absoluto, o son sistemas o mecanismos parciales, que carecen de capacidades cruciales, que les permitirían proporcionar sistemas Turing completos. Por ejemplo, con respecto a los sistemas o mecanismos parciales, los ejemplos conocidos incluyen puertas lógicas construidas a partir de partes personalizadas, kits o incluso juguetes como Lego. Téngase en cuenta que las puertas lógicas mecánicas solas, incluso las universales, no permiten por sí mismas la computación Turing completa; también se requieren algunos medios de memoria. La computación Turing completa requiere un medio para la lógica combinatoria, así como un medio para la lógica secuencial. Methods for mechanical computation are known in the prior art. (Svoboda, “Computing Mechanisms and Linkage”, New York, Den Publications, 1965; Bradley, “Mechanical Computing in Microelectromechanical Systems (MEMS)”, Air Force Institute of Technology, AFIT/GE/ENG/03-04, Ohio , 2003; Sharma, Ram et al., “Mechanical Logic Devices and Circuits”, 14th National Conference on Machines and Mechanisms [NaCoMM-09], 2009) However, while the first example of a Turing complete design is probably the motor Babbage's analytical system, which was described in 1837 (although never built), the vast majority of previous proposals for mechanical computing are not Turing complete systems. Rather, they are special-purpose devices not intended to address general-purpose computing at all, or they are partial systems or mechanisms, lacking crucial capabilities, that would allow them to provide Turing-complete systems. For example, with respect to partial systems or mechanisms, known examples include logic gates built from custom parts, kits, or even toys such as Lego. Note that mechanical logic gates alone, even universal ones, do not by themselves enable Turing-complete computation; Some memory media is also required. Turing complete computation requires a means for combinatorial logic as well as a means for sequential logic.

La literatura sobre computación mecánica también incluye implementaciones a escala molecular de diversos componentes computacionales (nuevamente, frecuentemente no son sistemas Turing completos), incluidos (Drexler, “ Nanosystems: Molecular Machinery, Manufacturing, and Computation,” Nueva York, John Wiley & Sons, 1992; Hall, “ Nanocomputers and Reversible Logic” , Nanotechnology, 1994; Heinrich, Lutz y col., “ Molecule Cascades” , Science, 2002; Remon, Ferreira y col., “ Reversible molecular logic: a photophysical example of a Feynman gate” , ChemPhysChem, 12, 2009; Orbach, Remade y col., “ Logic reversibility and thermodynamic irreversibility demonstrated by DNAzyme-based Toffoli and Fredkin logic gates” , PNAS, 52, 2012; Roy, Sethi y col., “All-Optical Reversible Logic Gates with Optically Controlled Bacteriorhodopsin Protein-Coated Microresonators” , Advances in Optical Technologies, 2012). The mechanical computing literature also includes molecular-scale implementations of various computational components (again, often not Turing-complete systems), including (Drexler, “Nanosystems: Molecular Machinery, Manufacturing, and Computation,” New York, John Wiley & Sons, 1992; Hall, “Nanocomputers and Reversible Logic”, Nanotechnology, 1994; ” , ChemPhysChem, 12, 2009; Reversible Logic Gates with Optically Controlled Bacteriorhodopsin Protein-Coated Microresonators” , Advances in Optical Technologies, 2012).

El documento US-2011/278365 A1 describe un método de fabricación de un ordenador sin ensamblaje. Para evitar la etapa de ensamblaje típica, se produce una pluralidad de componentes físicos mediante fabricación aditiva en un patrón tridimensional de manera que, en el momento en que se completa dicha fabricación, dichos componentes ya están ensamblados en dicho patrón como la totalidad o parte de dicha máquina. La máquina está adaptada para realizar al menos un cálculo no trivial que se efectúa, al menos en parte, mediante el movimiento de al menos uno de dichos componentes. Document US-2011/278365 A1 describes a method of manufacturing a computer without assembly. To avoid the typical assembly step, a plurality of physical components are produced by additive manufacturing in a three-dimensional pattern such that, at the time said manufacturing is completed, said components are already assembled in said pattern as all or part of said machine. The machine is adapted to perform at least one non-trivial calculation that is carried out, at least in part, by the movement of at least one of said components.

El documento US-7.414.437 B1 describe un ordenador nanomecánico y, más precisamente, un elemento de conmutación a nanoescala electromecánica que puede construirse fácilmente usando técnicas de IC estándar. El elemento de conmutación eléctrica comprende al menos un primer pilar a nanoescala que se extiende hacia arriba desde un sustrato entre los primeros electrodos opuestos para flexionarse entre los primeros electrodos, y al menos un segundo pilar a nanoescala que se extiende hacia arriba desde el sustrato entre los segundos electrodos opuestos. El segundo pilar a nanoescala se acopla al primer pilar a nanoescala para flexionarse con el primer pilar a nanoescala alternativamente hacia y lejos de los segundos electrodos alternativos influenciados por la flexión del primer pilar a nanoescala, por lo que la flexión del primer pilar a nanoescala promueve una transferencia de carga entre los segundos electrodos opuestos a través del segundo pilar a nanoescala. US-7,414,437 B1 describes a nanomechanical computer and, more precisely, an electromechanical nanoscale switching element that can be easily constructed using standard IC techniques. The electrical switching element comprises at least a first nanoscale pillar extending upward from a substrate between the opposing first electrodes to flex between the first electrodes, and at least a second nanoscale pillar extending upward from the substrate between the second opposite electrodes. The second nanoscale pillar is coupled to the first nanoscale pillar to flex with the first nanoscale pillar alternately toward and away from the second alternative electrodes influenced by the bending of the first nanoscale pillar, whereby the bending of the first nanoscale pillar promotes a charge transfer between the opposing second electrodes through the second nanoscale pillar.

El documento Mahboob y col, “ Interconnect-free parallel logic circuits in a single mechanical resonator” , NATURE COMMUNICATIONS, (20110215), vol. 2, doi:10.1038/ncomms1201, página 198 describe un resonador electromecánico que emplea multiplexación por división de longitud de onda con activación y detección piezoeléctricas. The paper Mahboob et al, “Interconnect-free parallel logic circuits in a single mechanical resonator”, NATURE COMMUNICATIONS, (20110215), vol. 2, doi:10.1038/ncomms1201, page 198 describes an electromechanical resonator that employs wavelength division multiplexing with piezoelectric activation and detection.

El documento Sharma y col., “ Mecanical logic Devices and Circuits” , (20090000), URL: http://www.nacomm09.ammindia.org/NaCoMM-2009/nacomm09_final_pap/R/RCA18.pdf, (20160218) describe dispositivos y circuitos lógicos mecánicos. Sharma et al., “Mechanical logic Devices and Circuits”, (20090000), URL: http://www.nacomm09.ammindia.org/NaCoMM-2009/nacomm09_final_pap/R/RCA18.pdf, (20160218) describes devices and mechanical logic circuits.

Si bien los diseños anteriores para la computación mecánica varían en gran medida, las propuestas anteriores capaces de realizar la computación Turing completa (a diferencia de los dispositivos de propósito limitado) tienden a responder a un número sustancial de partes básicas (o “ primitivas” ) que incluyen varios tipos de engranajes, ejes y cojinetes de movimiento lineal, resortes (u otros medios de almacenamiento de energía, p. ej., algunos diseños usan bandas de caucho), retenes, trinquetes y gatillos, u otros mecanismos que tienen el potencial de disipar energía, aumentando a la vez la complejidad del dispositivo. Téngase en cuenta que dichos diseños requieren estas diversas primitivas para funcionar correctamente; no son opcionales. While previous designs for mechanical computing vary greatly, previous proposals capable of performing Turing-complete computation (as opposed to limited-purpose devices) tend to respond to a substantial number of basic (or “primitives”) parts. including various types of linear motion gears, shafts and bearings, springs (or other means of energy storage, e.g., some designs use rubber bands), detents, pawls and pawls, or other mechanisms that have the potential to dissipate energy, while increasing the complexity of the device. Note that such designs require these various primitives to function correctly; They are not optional.

Que el uso de muchos tipos de partes básicas en un sistema mecánico puede complicar el diseño, la fabricación y el ensamblaje, así como también reducir potencialmente la fiabilidad, es obvio. Reducir la complejidad de los mecanismos es un objetivo común de la invención. That the use of many types of basic parts in a mechanical system can complicate design, manufacturing and assembly, as well as potentially reduce reliability, is obvious. Reducing the complexity of mechanisms is a common goal of invention.

Téngase también en cuenta que muchos de los mecanismos utilizados en propuestas anteriores para la computación mecánica generan una fricción sustancial. Con la eliminación de dichos mecanismos se obtendrían beneficios más allá de la reducción de la complejidad del dispositivo, que incluyen la reducción del consumo de energía. Sin embargo, según la prevalencia de mecanismos generadores de fricción en los sistemas de computación mecánica, es difícil solucionar este problema. Note also that many of the mechanisms used in previous proposals for mechanical computing generate substantial friction. Eliminating such mechanisms would provide benefits beyond reducing device complexity, including reducing power consumption. However, based on the prevalence of friction-generating mechanisms in mechanical computing systems, it is difficult to solve this problem.

Quizás menos evidente que la fricción son otros modos de disipación de energía, incluidas las vibraciones, que pueden, p. ej., crear calor o generar radiación acústica. Por ejemplo, los trinquetes y gatillos, retenes u otros mecanismos que implican el impacto relativamente incontrolado de una parte de un mecanismo sobre otra pueden conducir a vibraciones que disipan energía, por lo que la eliminación de estos tipos de mecanismos también sería beneficiosa. Perhaps less obvious than friction are other modes of energy dissipation, including vibrations, which can e.g. e.g., create heat or generate acoustic radiation. For example, ratchets and pawls, detents, or other mechanisms that involve the relatively uncontrolled impact of one part of a mechanism on another can lead to energy-dissipating vibrations, so elimination of these types of mechanisms would also be beneficial.

El calor residual es un problema bien conocido para los sistemas computacionales, electrónicos o mecánicos, que disipan mucha más energía por operación de bit de la que se requiere en la teoría. Teóricamente, se pueden realizar cálculos donde la energía disipada es solo de ln(2) kBT por operación de bit irreversible. Esto se denomina límite de Landauer (Landauer, “ Irreversibility and Heat Generation in the Computing Process” , IBM Journal of Research and Development, 1961) y ha sido confirmado experimentalmente (Bert, Arkelyan y col., “ Experimental verification of Landauer's principle linking information and thermodynamics” , Nature, 7388, Nature Publishing Group, 2012). Waste heat is a well-known problem for computational systems, electronic or mechanical, which dissipate much more energy per bit operation than is required in theory. Theoretically, calculations can be performed where the energy dissipated is only ln(2) kBT per irreversible bit operation. This is called the Landauer limit (Landauer, “Irreversibility and Heat Generation in the Computing Process”, IBM Journal of Research and Development, 1961) and has been confirmed experimentally (Bert, Arkelyan et al., “Experimental verification of Landauer's principle linking information and thermodynamics”, Nature, 7388, Nature Publishing Group, 2012).

Téngase en cuenta que el límite de Landauer solo se aplica a operaciones irreversibles. Las operaciones reversibles pueden, en teoría, disipar energía cero. Si bien los ordenadores convencionales generalmente no se construyen sobre hardware reversible, se ha estudiado la computación reversible durante décadas (Landauer, “ Irreversibility and Heat Generation in the Computing Process” , IBM Journal of Research and Development, 1961; Bennett, “The Thermodynamics of Computación” , International Journal of Theortical Physics, 12, 1973; “ Logical reversibility of computation” , IBM Journal of Research and Development, 6, 1973; Toffoli, “Technical Report MIT/LCS/TM-151-Reversible Computing” , Autómatas, Lenguajes y Programación, Séptimo Coloquio, Noordwijkerhut, Países Bajos, Springer Verlag, 1980; Toffoli y Fredkin, “ Conservative Computing” , International Journal of Theoretical Physics, 3/4, 1982; Bennett y Landauer, “The Fundamental Physical Limits of Computation” , Scientific American, 1985; Feynman, “ Quantum Mechanical Computers” , Foundations of Physics, 6, 1986). Para una visión general de la computación reversible desde una perspectiva de software, véase (Perumalla, “ Introduction to Reversible Computing” , CRC Press, 2014). Note that the Landauer limit only applies to irreversible operations. Reversible operations can, in theory, dissipate zero energy. Although conventional computers are generally not built on reversible hardware, reversible computing has been studied for decades (Landauer, “Irreversibility and Heat Generation in the Computing Process,” IBM Journal of Research and Development, 1961; Bennett, “The Thermodynamics of Computation”, International Journal of Theortical Physics, 12, 1973; “Logical reversibility of computation”, IBM Journal of Research and Development, 6, 1973; Languages and Programming, Seventh Colloquium, Noordwijkerhut, Netherlands, Springer Verlag, 1980, “Conservative Computing”, International Journal of Theoretical Physics, 3/4, 1982; , Scientific American, 1985; Feynman, “Quantum Mechanical Computers”, Foundations of Physics, 6, 1986). For an overview of reversible computing from a software perspective, see (Perumalla, “Introduction to Reversible Computing”, CRC Press, 2014).

Ya sean reversibles o irreversibles, serían bastante útiles nuevos diseños de sistemas computacionales mecánicos que tengan el potencial de reducir la complejidad del dispositivo (junto con el diseño asociado, los costes de fabricación y ensamblaje) y usar menos energía por operación de bit que los diseños existentes. No estando sujetos al límite de Landauer, los diseños reversibles tienen en última instancia el potencial de utilizar la menor cantidad de energía. Sin embargo, los sistemas de computación existentes utilizan energía tan por encima del límite de Landauer que incluso los diseños irreversibles podrían mejorar en gran medida el estado de la técnica. Whether reversible or irreversible, new mechanical computing system designs that have the potential to reduce device complexity (along with associated design, manufacturing and assembly costs) and use less energy per bit operation than conventional designs would be quite useful. existing. Not being subject to the Landauer limit, reversible designs ultimately have the potential to use the least amount of energy. However, existing computing systems use energy so far above the Landauer limit that even irreversible designs could greatly improve the state of the art.

Sobre la base de lo anterior, es un objetivo proporcionar un mecanismo de computación mecánica binario que reduzca las desventajas de la técnica anterior, descritas anteriormente. Based on the above, it is an objective to provide a binary mechanical computing mechanism that reduces the disadvantages of the prior art, described above.

El objetivo se resuelve mediante un mecanismo de computación mecánica binario según la reivindicación 1. Las reivindicaciones dependientes analizan las realizaciones preferidas de la invención. The objective is solved by a binary mechanical computing mechanism according to claim 1. The dependent claims discuss preferred embodiments of the invention.

Según la invención, un mecanismo de computación mecánica binario está provisto de un bloque de anclaje y un conjunto, configurado para realizar una operación lógica combinatoria y/o una operación lógica secuencial, conjunto que solo requiere primitivas de lógica de eslabón mecánico, primitivas de lógica de flexión mecánica y/o primitivas de lógica de cableado mecánico. Una o más de dichas primitivas definen una o más entradas para datos, codificados por la posición física de las entradas, According to the invention, a binary mechanical computing mechanism is provided with an anchor block and an assembly, configured to perform a combinatorial logic operation and/or a sequential logic operation, which assembly only requires mechanical link logic primitives, logic primitives mechanical bending and/or mechanical wiring logic primitives. One or more such primitives define one or more inputs for data, encoded by the physical position of the inputs,

una o más de dichas primitivas definen una o más salidas para datos, codificados por la posición física de las salidas, en donde one or more of said primitives define one or more outputs for data, encoded by the physical position of the outputs, where

las primitivas se conectan entre sí para permitir o evitar selectivamente el movimiento de otras primitivas con respecto al bloque de anclaje basadas en la posición física de la una o más entradas, de modo que una o más salidas son el resultado de la operación lógica en la una o más entradas. The primitives are connected together to selectively allow or prevent the movement of other primitives with respect to the anchor block based on the physical position of the one or more inputs, so that one or more outputs are the result of the logical operation on the one or more entries.

Los mecanismos de computación mecánica según la invención tienen una menor disipación de energía, un menor número de partes básicas y otras ventajas sobre los sistemas anteriores. Se describen múltiples realizaciones que incluyen lógica de eslabón mecánico, lógica de flexión mecánica y lógica de cableado mecánico, junto con paradigmas de diseño (que incluyen diseños mecánicos, principios y un sistema de clasificación novedoso que categoriza los sistemas como tipos 1 a 4) que enseñan cómo aplicar los principios generales a otras realizaciones. The mechanical computing mechanisms according to the invention have lower power dissipation, a smaller number of basic parts and other advantages over previous systems. Multiple embodiments are described including mechanical link logic, mechanical bending logic, and mechanical wiring logic, along with design paradigms (including mechanical designs, principles, and a novel classification system that categorizes systems as types 1 to 4) that They teach how to apply general principles to other implementations.

Para una comprensión más completa de la presente invención, ahora se hace referencia a las siguientes descripciones tomadas junto con los dibujos adjuntos, en los que: For a more complete understanding of the present invention, reference is now made to the following descriptions taken together with the accompanying drawings, in which:

La Figura 1 representa una vista lateral de una junta rotatoria molecular. Figure 1 represents a side view of a molecular rotary joint.

La Figura 2 representa una vista lateral de un eslabonamiento de cuatro barras. Figure 2 represents a side view of a four-bar linkage.

La Figura 3 representa una vista superior de un mecanismo que puede servir como base para una puerta NAND o AND. Figure 3 represents a top view of a mechanism that can serve as a base for a NAND or AND gate.

La Figura 4 representa una vista superior de un mecanismo que puede servir como base para una puerta NOR, NAND, AND, u OR. Figure 4 represents a top view of a mechanism that can serve as the basis for a NOR, NAND, AND, or OR gate.

La Figura 5 representa una vista superior de una puerta XOR. Figure 5 represents a top view of an XOR gate.

La Figura 6 representa una vista superior de una puerta de Fredkin. Figure 6 represents a top view of a Fredkin door.

La Figura 7 representa una vista superior de una cerradura coplanaria en el estado (0,0). Figure 7 represents a top view of a coplanar lock in the (0,0) state.

La Figura 8 representa una vista superior de una cerradura coplanaria en el estado (1,0). Figure 8 represents a top view of a coplanar lock in state (1,0).

La Figura 9 representa una vista superior de una realización alternativa de una cerradura coplanaria en el estado (0,0). Figure 9 represents a top view of an alternative embodiment of a coplanar lock in the (0,0) state.

La Figura 10 representa una vista superior de una realización alternativa de una cerradura coplanaria en el estado (1,0) La Figura 11 representa una vista 3/4 de una cerradura no coplanaria en el estado (0,0). Figure 10 represents a top view of an alternative embodiment of a coplanar lock in the (1,0) state. Figure 11 represents a 3/4 view of a non-coplanar lock in the (0,0) state.

La figura 12 representa una vista superior de una cerradura no coplanaria en el estado (0,0). Figure 12 represents a top view of a non-coplanar lock in the (0,0) state.

La Figura 13 representa una vista 3/4 de una cerradura no coplanaria en el estado (1,0). Figure 13 represents a 3/4 view of a non-coplanar lock in state (1,0).

La Figura 14 representa una vista superior de una cerradura no coplanaria en el estado (1,0). Figure 14 represents a top view of a non-coplanar lock in state (1,0).

La Figura 15 representa una vista 3/4 de una cerradura no coplanaria en el estado (0,1). Figure 15 represents a 3/4 view of a non-coplanar lock in the (0,1) state.

La Figura 16 representa una vista superior de una cerradura no coplanaria en el estado (0,1). Figure 16 represents a top view of a non-coplanar lock in the (0,1) state.

La Figura 17 representa una vista superior de una balanza con una entrada de 0. Figure 17 represents a top view of a scale with an input of 0.

La Figura 18 representa una vista superior de una balanza con una entrada de 1 con un anclaje en la parte superior. Figure 18 represents a top view of a scale with an input of 1 with an anchor at the top.

La Figura 19 representa una vista superior de una balanza con una entrada de 1 con un anclaje en la parte inferior. Figure 19 represents a top view of a scale with an input of 1 with an anchor at the bottom.

La Figura 20 representa una vista superior de una balanza doble binaria con entradas (1,0). Figure 20 represents a top view of a double binary scale with inputs (1,0).

La Figura 21 representa una vista superior de una balanza doble binaria con entradas (1,1). Figure 21 represents a top view of a double binary scale with inputs (1,1).

La Figura 22 representa una vista superior de una puerta de conmutación. Figure 22 represents a top view of a switching door.

La Figura 23 representa una vista superior de una puerta NAND basada en cerraduras y balanzas. Figure 23 represents a top view of a NAND gate based on locks and scales.

La Figura 24 representa una vista superior de una puerta de Fredkin basada en cerraduras y balanzas. Figure 24 represents a top view of a Fredkin door based on locks and scales.

La Figura 25 representa una vista superior de una celda de registro de desplazamiento en su estado en blanco. La Figura 26 representa una vista superior de una celda de registro de desplazamiento después de que se ha proporcionado la entrada pero antes de que una señal de reloj se establezca en alto. Figure 25 depicts a top view of a shift register cell in its blank state. Figure 26 depicts a top view of a shift register cell after input has been provided but before a clock signal is set high.

La Figura 27 representa una vista superior de una celda de registro de desplazamiento después de que se ha proporcionado la entrada y se ha establecido una señal de reloj en alto. Figure 27 depicts a top view of a shift register cell after input has been provided and a clock signal has been set high.

La Figura 28a representa una vista superior de la mitad izquierda de un registro de desplazamiento de dos celdas. Figure 28a represents a top view of the left half of a two-cell shift register.

La Figura 28b representa una vista superior de la mitad derecha de un registro de desplazamiento de dos celdas. Figure 28b represents a top view of the right half of a two-cell shift register.

La Figura 29 representa una vista superior de un grupo de cancelación. Figure 29 represents a top view of a cancellation group.

La Figura 30 representa una vista superior de una cerradura basada en flexión. Figure 30 represents a top view of a flex-based lock.

La Figura 31 representa una vista superior de una polea de MCL y mecanismos asociados. Figure 31 represents a top view of an MCL pulley and associated mechanisms.

La Figura 32 representa una vista lateral de una polea de MCL y mecanismos asociados. Figure 32 represents a side view of an MCL pulley and associated mechanisms.

La Figura 33a-Figura 33c representan vistas superiores de diversos estados de una realización de una cerradura de MCL. Figure 33a-Figure 33c represent top views of various states of one embodiment of an MCL lock.

La Figura 34 representa una vista 3/4 de una manilla que puede usarse para crear una cerradura. Figure 34 represents a 3/4 view of a handle that can be used to create a lock.

La Figura 35 representa una vista 3/4 de dos manillas que forman una cerradura en el estado (0,0). Figure 35 represents a 3/4 view of two handles that form a lock in the state (0,0).

La Figura 36 representa una vista 3/4 de una cerradura en el estado (0,1). Figure 36 represents a 3/4 view of a lock in the (0,1) state.

La Figura 37 representa una vista 3/4 de una cerradura en el estado (1,0). Figure 37 represents a 3/4 view of a lock in state (1,0).

La Figura 38 representa una vista superior de un óvalo de MCL. Figure 38 represents a top view of an MCL oval.

La Figura 39 representa una vista superior de una balanza de MCL en el estado (0,0). Figure 39 represents a top view of an MCL balance in the (0,0) state.

La Figura 40 representa una vista superior de una balanza de MCL en el estado (0,1). Figure 40 represents a top view of an MCL balance in the (0,1) state.

La Figura 41 representa una vista superior de una balanza de MCL en el estado (1,0). Figure 41 represents a top view of an MCL balance in state (1.0).

La Figura 42 representa una vista superior de una balanza de MCL en el estado (1,0) después del accionamiento. Definiciones Figure 42 represents a top view of an MCL balance in the state (1.0) after actuation. Definitions

Las siguientes definiciones se usan en la presente memoria: The following definitions are used herein:

“ Bloque de anclaje” significa una o más estructuras rígidas a las que se pueden fijar partes básicas o conjuntos de nivel superior, y que también pueden servir como disipadores de calor. Téngase en cuenta que incluso cuando se escribe en singular, puede haber más de un bloque de anclaje, según lo determinen las necesidades de diseño. La forma de un bloque de anclaje puede ser arbitraria (“ bloque” no debe entenderse en el sentido de que la estructura es necesariamente rectangular, o cualquier forma simple). Un bloque de anclaje puede fabricarse de cualquier material apropiado, sin limitarse a, pero incluyendo cualquiera de los materiales sugeridos en la presente memoria a partir de los cuales podrían fabricarse partes básicas. Se supone que un bloque de anclaje está presente según sea necesario, ya sea que se indique explícitamente o no. “Anchor block” means one or more rigid structures to which basic parts or higher-level assemblies can be attached, and which can also serve as heat sinks. Note that even when written in the singular, there may be more than one anchor block, as determined by design needs. The shape of an anchor block can be arbitrary (“block” should not be understood to mean that the structure is necessarily rectangular, or any simple shape). An anchor block may be manufactured from any suitable material, not limited to, but including any of the materials suggested herein from which basic parts could be manufactured. An anchor block is assumed to be present as needed, whether explicitly stated or not.

“Anclado” significa fijado a un bloque de anclaje, o que se vuelve inmóvil con respecto a otras partes o mecanismos básicos relevantes. El anclaje puede ser permanente o condicional (p. ej., dependiendo de las entradas de datos o señales de reloj), y una parte anclada de manera condicional puede denominarse según su estado condicional relevante (es decir, si la parte no está anclada en una dada situación, puede denominarse no anclada, y viceversa). “Anchored” means fixed to an anchor block, or rendered immobile with respect to other relevant basic parts or mechanisms. Pinning can be permanent or conditional (e.g., depending on data inputs or clock signals), and a conditionally pinned part can be named according to its relevant conditional state (i.e., whether the part is not pinned on a given situation can be called unanchored, and vice versa).

“Atómicamente preciso” significa donde la identidad y la posición de cada átomo en una estructura se especifican por diseño. Las estructuras, tales como cristales o cuasicristales de origen natural o fabricados en masa, que tienen irregularidades superficiales, impurezas, agujeros, dislocaciones u otras imperfecciones, no son atómicamente precisas. Atómicamente preciso puede incluir, pero no necesariamente, el conocimiento de la composición isotópica. “Atomically precise” means where the identity and position of each atom in a structure is specified by design. Structures, such as naturally occurring or mass-produced crystals or quasicrystals, that have surface irregularities, impurities, holes, dislocations, or other imperfections, are not atomically precise. Atomically precise may include, but does not necessarily include, knowledge of isotopic composition.

Una “ balanza” es una estructura que transmite movimiento a través de un lado o recorrido de un mecanismo frente a otro. Pueden usarse balanzas, p. ej., para realizar cálculos y enrutar datos. Una balanza puede tener cualquier número de entradas y salidas, algunas de las cuales pueden anclarse, o anclarse de manera condicional (como cuando se conectan a una cerradura). La palabra “ balanza” y formas de la misma también se pueden usar en su sentido tradicional (p. ej., masas o fuerzas iguales “ se equilibran” entre sí) según lo dicte el contexto. A “scale” is a structure that transmits motion through one side or path of a mechanism versus another. Scales can be used, e.g. e.g., to perform calculations and route data. A scale can have any number of inputs and outputs, some of which can be anchored, or conditionally anchored (such as when connected to a lock). The word “scale” and forms thereof can also be used in its traditional sense (e.g., equal masses or forces “balance” each other) as the context dictates.

Una “ parte básica” es un bloque de construcción fundamental, o primitiva, de un mecanismo o sistema computacional. A “basic part” is a fundamental building block, or primitive, of a mechanism or computational system.

Por ejemplo, las partes básicas de MI,L son eslabones y juntas rotatorias, las partes básicas de MFL son eslabones y flexiones, y las partes básicas de MCL son cables, poleas y manillas. La “ parte básica” es sinónimo de “ primitiva” , y la distinción entre una parte básica y un mecanismo es que las partes básicas, al menos en sus implementaciones más simples (p. ej., una polea es una parte básica porque puede ser monolítica, pero algunas implementaciones de una polea podrían requerir un eje como una parte separada), no son obviamente divisibles lógicamente en partes más pequeñas. For example, the basic parts of MI,L are links and rotary joints, the basic parts of MFL are links and bends, and the basic parts of MCL are cables, pulleys and handles. “Basic part” is synonymous with “primitive,” and the distinction between a basic part and a mechanism is that basic parts, at least in their simplest implementations (e.g., a pulley is a basic part because it can be monolithic, but some implementations of a pulley might require a shaft as a separate part), they are not obviously logically divisible into smaller parts.

Un “ cable” es una estructura flexible que se utiliza para transmitir fuerzas de tracción, p. ej., directamente o a través de poleas. A “cable” is a flexible structure used to transmit tensile forces, e.g. e.g., directly or through pulleys.

“Coaxial” se refiere a juntas rotatorias que comparten el mismo eje de rotación. El término también se puede aplicar al concepto análogo en mecanismos coplanarios que tienen múltiples juntas que comparten arcos comunes de movimiento. “Coaxial” refers to rotating joints that share the same axis of rotation. The term can also be applied to the analogous concept in coplanar mechanisms that have multiple joints that share common arcs of motion.

“Sistema de computación” y formas del mismo que incluyen “sistema computacional” significa un sistema para llevar a cabo cálculos de propósito general. Dichos sistemas son Turing completos. Los dispositivos solo capaces de resolver un problema único o una clase limitada de problemas, tales como planímetros, sintetizadores o analizadores armónicos, solucionadores de ecuación, generadores de funciones y analizadores diferenciales, no son capaces de realizar cálculos de propósito general y, por lo tanto, no son “ sistemas de computación” Las fuentes de energía, los motores, los generadores de señales de reloj u otros componentes auxiliares de los medios computacionales Turing completos no forman parte de un sistema de computación. Pueden interconectarse diferentes tipos de sistemas computacionales. Por ejemplo, un sistema MLL podría tomar su entrada, proporcionar su salida o interactuar de otra manera con otros componentes, sistemas, sensores o fuentes de datos de computación mecánica o electrónica, si bien dicho sistema solo constituiría un sistema computacional MLL si los propios componentes MLL proporcionan medios computacionales Turing completos. “Computing system” and forms thereof including “computing system” means a system for carrying out general purpose calculations. Such systems are Turing complete. Devices only capable of solving a single problem or a limited class of problems, such as planimeters, harmonic synthesizers or analyzers, equation solvers, function generators, and differential analyzers, are not capable of general-purpose calculations and therefore , are not “computing systems” The power supplies, motors, clock signal generators, or other auxiliary components of Turing-complete computing media are not part of a computing system. Different types of computing systems can be interconnected. For example, an MLL system could take its input, provide its output, or otherwise interact with other mechanical or electronic computing components, systems, sensors, or data sources, although such a system would only constitute an MLL computing system if the components themselves MLLs provide Turing-complete computational means.

“ Coplanario” se refiere a un mecanismo que se mueve en uno o más planos paralelos. El término se usa para diferenciar implementaciones de mecanismos esencialmente planas (pero potencialmente multicapa) de las que utilizan movimiento en planos no paralelos. La distinción es en gran medida una cuestión de comodidad para la denominación y visualización, ya que los mecanismos descritos en la presente memoria pueden construirse de manera coplanaria o no coplanaria. “Coplanar” refers to a mechanism that moves in one or more parallel planes. The term is used to differentiate essentially planar (but potentially multilayer) implementations of mechanisms from those that use motion in non-parallel planes. The distinction is largely a matter of convenience for naming and display, since the mechanisms described herein can be constructed in a coplanar or non-coplanar manner.

“ Eslabón de datos” significa un eslabón que ayuda a transferir datos, de un lugar a otro. Un eslabón de datos puede denominarse simplemente “eslabón” cuando el contexto deja claro el significado. “Data link” means a link that helps transfer data from one place to another. A data link may simply be called a “link” when the context makes the meaning clear.

“ Conmutación seca” , aplicada a los componentes computacionales mecánicos descritos en la presente memoria, significa que no se aplica ninguna fuerza a los mecanismos que no son libres de moverse de alguna manera. “Dry switching,” as applied to the mechanical computing components described herein, means that no force is applied to mechanisms that are not free to move in some manner.

Una “ flexión” es un tipo de cojinete que permite el movimiento a través de la flexión de un material, en lugar de deslizarse o rodar. A “flex” is a type of bearing that allows movement through the bending of a material, rather than sliding or rolling.

“ Horquilla” significa una rama en una línea que permite que un eslabón de datos se acople a más de un otro eslabón de datos. Una horquilla puede, p. ej., permitir el copiado de una entrada/salida en múltiples enlaces o líneas. “Fork” means a branch in a line that allows one data link to be coupled to more than one other data link. A fork can e.g. e.g., allow copying of an input/output on multiple links or lines.

“ Entrada” significa los datos, por ejemplo codificados por posición física, suministrados a un mecanismo, p. ej., con el fin de almacenar los datos en la memoria, transmitir los datos a otro lugar, realizar una lógica combinatoria en los datos, o accionar el mecanismo (p. ej., a través de una señal de reloj). Por una variedad de razones, incluido el hecho de que la entrada a un mecanismo puede ser la salida de otro, por las cuales algunos mecanismos usan los mismos datos como entradas y salidas (p. ej., un registro de desplazamiento circular u otros mecanismos con un bucle de retroalimentación), y porque algunas realizaciones permiten la reversibilidad, puede haber poca distinción entre “ entradas” y “ salidas” , siendo el uso de un término o el otro más para fines didácticos. Por lo tanto, independientemente de qué término se use, se supone que ambos se usan, si corresponde, en un contexto determinado. “Input” means the data, for example encoded by physical position, supplied to a mechanism, e.g. e.g., in order to store the data in memory, transmit the data to another location, perform combinatorial logic on the data, or drive the mechanism (e.g., via a clock signal). For a variety of reasons, including the fact that the input to one mechanism can be the output of another, why some mechanisms use the same data as inputs and outputs (e.g., a circular shift register or other mechanisms with a feedback loop), and because some embodiments allow reversibility, there may be little distinction between “inputs” and “outputs,” with the use of one term or the other being more for didactic purposes. Therefore, regardless of which term is used, both are assumed to be used, if applicable, in a given context.

“ Línea” significa una secuencia de eslabones de datos conectados. También se llama “ línea de datos” “Line” means a sequence of connected data links. Also called “data line”

“ Eslabón” significa una estructura o cuerpo rígido conectado a una o más juntas rotatorias. “Link” means a rigid structure or body connected to one or more rotating joints.

Una “ cerradura” es una estructura con una pluralidad de entradas donde una o más de las entradas que se establecen en algún intervalo predefinido de valores dan como resultado que las otras entradas se bloqueen. Por ejemplo, en una cerradura de dos entradas, al establecerse una de las entradas en un valor distinto de cero, la otra entrada se bloquea hasta que la entrada distinta de cero vuelva a cero. En una cerradura binaria de dos entradas, el valor distinto de cero que se establece normalmente sería 1, pero el mecanismo de cerradura puede acoplarse bien antes de que la entrada realmente alcance 1 (p. ej., una entrada de 0,1 en una entrada puede ser suficiente para bloquear la otra entrada). A “lock” is a structure with a plurality of inputs where one or more of the inputs being set to some predefined range of values results in the other inputs being locked. For example, in a two-input lock, when one of the inputs is set to a non-zero value, the other input is locked until the non-zero input returns to zero. In a two-input binary lock, the non-zero value set would typically be 1, but the locking mechanism may engage well before the input actually reaches 1 (e.g., an input of 0.1 in a input may be enough to block the other input).

“ Puerta lógica” incluye puertas tradicionalmente irreversibles, tales como AND, CNOT, NAND, NOT, OR, NOR, XNOR, XOR, puertas reversibles, tales como puertas de Fredkin y de Toffoli, u otros mecanismos que proporcionan lógica combinatoria (p. ej., implementaciones reversibles de puertas tradicionalmente irreversibles o puertas lógicas de propósito especial). “Logic gate” includes traditionally irreversible gates, such as AND, CNOT, NAND, NOT, OR, NOR, XNOR, XOR, reversible gates, such as Fredkin and Toffoli gates, or other mechanisms that provide combinatorial logic (e.g. ., reversible implementations of traditionally irreversible gates or special-purpose logic gates).

“ MCL” significa Lógica de cableado mecánico (Mechanical Cable Logic), un paradigma para crear sistemas computacionales y mecanismos de los mismos, usando cables, manillas y poleas. “MCL” stands for Mechanical Cable Logic, a paradigm for creating computer systems and mechanisms using cables, handles, and pulleys.

Un “ mecanismo” es una combinación de partes básicas que forman un conjunto de un nivel de complejidad entre la de una parte básica y un sistema computacional. Por ejemplo, en MI,L, líneas, cerraduras, balanzas, puertas lógicas y registros de desplazamiento son todos componentes, como lo son cualesquiera subconjuntos que incluyen más de una parte básica. Debido a que son partes básicas, los eslabones y las juntas rotatorias, o cualquier otra parte básica, no son mecanismos. A “mechanism” is a combination of basic parts that form a set of a level of complexity between that of a basic part and a computational system. For example, in MI,L, lines, locks, scales, logic gates, and shift registers are all components, as are any subsets that include more than one basic part. Because they are basic parts, links and rotating joints, or any other basic parts, are not mechanisms.

“ MFL” significa lógica de flexión mecánica (Mechanical Flexure Logic), un paradigma para crear sistemas computacionales y mecanismos de los mismos, usando eslabones y flexiones. “MFL” stands for Mechanical Flexure Logic, a paradigm for creating computer systems and mechanisms using links and flexures.

“ MI,L” significa Lógica de eslabonamiento mecánico (Mechanical Linkage Logic), un paradigma para crear sistemas computacionales y mecanismos de los mismos, usando eslabones y juntas rotatorias. Téngase en cuenta que, por ser la primera y la realización más ampliamente descrita, se proporcionan detalles para MLL que no se repiten necesariamente para MFL, MCL u otras realizaciones. Por ejemplo, la sincronización se describe ampliamente en el contexto de MLL, pero no en otras realizaciones. Debido a la naturaleza lógica y mecánica análoga de las diversas realizaciones presentadas, y teniendo en cuenta las enseñanzas de la presente memoria, resultará evidente cómo aplicar la información presentada para una realización a otras realizaciones. “MI,L” stands for Mechanical Linkage Logic, a paradigm for creating computer systems and mechanisms using rotating links and joints. Please note that, as the first and most widely described embodiment, details are provided for MLL that are not necessarily repeated for MFL, MCL or other embodiments. For example, synchronization is broadly described in the context of MLL, but not in other embodiments. Due to the analogous logical and mechanical nature of the various embodiments presented, and taking into account the teachings herein, it will be apparent how to apply the information presented for one embodiment to other embodiments.

“ No coaxial” se refiere a dos o más juntas rotatorias que no comparten el mismo eje de rotación, o el concepto análogo en mecanismos coplanarios. “Non-coaxial” refers to two or more rotating joints that do not share the same axis of rotation, or the analogous concept in coplanar mechanisms.

“ Salida” significa los datos, por ejemplo codificados por la posición física, proporcionados por un mecanismo. Consulte “ Entrada” para detalles y comentarios adicionales sobre la intercambiabilidad de los dos términos. “Output” means the data, for example encoded by physical position, provided by a mechanism. See “Input” for additional details and comments on the interchangeability of the two terms.

Una “ polea” es un mecanismo que facilita el encaminamiento y/o transmisión de fuerzas por uno o más cables. Tradicionalmente, las poleas giran a medida que el cable se mueve, pero esto no es necesario; p. ej., un cable podría deslizarse por la superficie de una polea si la disipación de energía incurrida fuera lo suficientemente baja. Las poleas pueden anclarse o no anclarse. Las poleas no ancladas pueden moverse libremente según lo dicten sus cables acoplados, o sus movimientos pueden estar restringidos por una pista, ranura u otros medios de guía. A “pulley” is a mechanism that facilitates the routing and/or transmission of forces through one or more cables. Traditionally, the pulleys rotate as the cable moves, but this is not necessary; p. For example, a cable could slide across the surface of a pulley if the energy dissipation incurred was low enough. Pulleys can be anchored or not anchored. Unanchored pulleys can move freely as dictated by their attached cables, or their movements may be restricted by a track, groove, or other guiding means.

“Junta rotatoria” significa una o más conexiones entre cuerpos rígidos que permiten el movimiento de rotación alrededor de un eje. Las juntas rotatorias pueden anclarse o no anclarse. “Rotating joint” means one or more connections between rigid bodies that allow rotational movement about an axis. Rotating joints can be anchored or unanchored.

“ Eslabón de soporte” significa un eslabón que proporciona soporte físico o restricción cinemática a otros eslabones. “Support link” means a link that provides physical support or kinematic restraint to other links.

“ Turing completo” tiene su significado estándar como se usa en el campo de la ciencia computacional, con la salvedad de que, dado que los sistemas del mundo real tienen memoria, tiempo y otros parámetros limitados, se reconoce que existen tales limitaciones prácticas y, por lo tanto, se puede considerar que el término “ Turing completo” , cuando se aplica a un sistema real, incluye tales limitaciones (lo que da como resultado aquello que puede denominarse más precisamente un “ autómata lineal acotado” ). “Turing complete” has its standard meaning as used in the field of computer science, with the proviso that, since real-world systems have limited memory, time, and other parameters, it is recognized that such practical limitations exist and, Therefore, the term “Turing complete”, when applied to a real system, can be considered to include such limitations (resulting in what can be more accurately called a “bounded linear automaton”).

Introducción Introduction

En la presente memoria se muestra, en primer lugar, que un sistema computacional mecánico puede diseñarse únicamente a partir de dos partes básicas: eslabones y juntas rotatorias (más un bloque de anclaje al que se pueden fijar estas partes básicas; esto se asumirá posteriormente y no se menciona necesariamente cada vez), usando un paradigma de diseño denominado Lógica de eslabonamiento mecánico (“ MLL” ). Posteriormente, los paradigmas de MI,L se generalizan para mostrar otras formas en las que pueden diseñarse sistemas de computación mecánica simples y eficientes, tales como Lógica de flexión mecánica (“ MFL” ) y Lógica de cableado mecánico (“ MCL” ) (cualquiera de los cuales también podría usarse en combinación). Parte de esta generalización también incluye la descripción de un nuevo sistema de clasificación basado en formas en las que los sistemas de computación mecánica pueden disipar energía. This report shows, first of all, that a mechanical computing system can be designed only from two basic parts: links and rotating joints (plus an anchor block to which these basic parts can be fixed; this will be assumed later and is not necessarily mentioned every time), using a design paradigm called Mechanical Linkage Logic (“MLL”). Subsequently, the MI,L paradigms are generalized to show other ways in which simple and efficient mechanical computing systems can be designed, such as Mechanical Bending Logic (“MFL”) and Mechanical Wiring Logic (“MCL”) (either of which could also be used in combination). Part of this generalization also includes the description of a new classification system based on ways in which mechanical computing systems can dissipate energy.

Estos nuevos paradigmas pueden simplificar el diseño y la construcción de mecanismos y sistemas de computación mecánica, y reducir o eliminar las principales fuentes de disipación de energía, tales como la fricción y la vibración, funcionando a la vez a velocidades computacionales útiles. Dichos sistemas computacionales también pueden diseñarse para funcionar de manera reversible. Estos y otros factores ofrecen diversos beneficios superiores a los de los sistemas de computación propuestos anteriormente. These new paradigms can simplify the design and construction of mechanical computing mechanisms and systems, and reduce or eliminate major sources of energy dissipation, such as friction and vibration, while operating at useful computational speeds. Such computational systems can also be designed to operate reversibly. These and other factors offer several benefits over and above those of previously proposed computing systems.

Las realizaciones de la invención proporcionan todos los mecanismos necesarios para crear sistemas computacionales Turing completos. Por ejemplo, el uso de MLL, esto incluye líneas, puertas lógicas, cerraduras y balanzas, y mecanismos más complejos tales como registros de desplazamiento, cada uno de los cuales no requiere partes básicas distintas de los eslabones y juntas rotatorias. Otras realizaciones (p. ej., MFL y MCL) proporcionan partes básicas y mecanismos análogos para permitir también la creación de sistemas computacionales Turing completos. Embodiments of the invention provide all the mechanisms necessary to create Turing complete computing systems. For example, using MLL, this includes lines, logic gates, locks and scales, and more complex mechanisms such as shift registers, each of which does not require basic parts other than rotating links and joints. Other embodiments (e.g., MFL and MCL) provide analogous basic parts and mechanisms to also enable the creation of Turing-complete computing systems.

Computación mecánica energéticamente eficiente Energy Efficient Mechanical Computing

Como se analiza en la presente memoria, los sistemas de computación mecánica pueden disipar energía de varias maneras, incluida la fricción (que incluye el arrastre causado por el movimiento térmico a nivel atómico) y las vibraciones, lo que puede deberse no solo al hecho de hacer funcionar un sistema mecánico lo suficientemente rápido como para excitar sus frecuencias de resonancia (algo que puede evitarse controlando la velocidad del reloj), sino también a los impactos entre partes o liberaciones de energía relativamente no restringidas. Los ejemplos de dichos impactos entre partes y liberaciones de energía relativamente incontroladas incluyen los movimientos por encaje a presión de los mecanismos de trinquete y gatillo, y retenes. As discussed herein, mechanical computing systems can dissipate energy in several ways, including friction (which includes drag caused by thermal motion at the atomic level) and vibrations, which may be due not only to the fact that running a mechanical system fast enough to excite its resonance frequencies (something that can be avoided by controlling the clock speed), but also to impacts between parts or relatively unconstrained releases of energy. Examples of such part impacts and relatively uncontrolled energy releases include the snap-in movements of ratchet and trigger mechanisms and detents.

Teniendo en cuenta estos problemas, se definen cuatro categorías para dispositivos de computación mecánica: Tipo 1: Dispositivos que almacenan energía potencial (p. ej., en un resorte) y que luego liberan esta energía de manera no limitada mediante los grados de libertad computacionales. Los dispositivos que usan trinquetes y gatillos, o retenes, son ejemplos de un dispositivo de tipo 1, ya que se supone que la liberación de energía almacenada por el trinquete y el gatillo o retén no está vinculada a los grados de libertad computacionales. En dicho dispositivo, si, p. ej., estuvieran presentes un trinquete y un gatillo, mientras que el movimiento por encaje a presión del trinquete podría ocurrir con una periodicidad controlada por un sistema de reloj, la liberación de energía de ese movimiento por encaje a presión no estaría vinculada a la frecuencia de reloj. Más bien, la velocidad de la liberación de energía sería una función de, p. ej., la fuerza aplicada a, y la masa de, el trinquete, independientemente de la velocidad computacional general del sistema. La colisión resultante del gatillo con el trinquete podría generar vibraciones que desperdician energía. With these issues in mind, four categories are defined for mechanical computing devices: Type 1: Devices that store potential energy (e.g., in a spring) and then release this energy in an unconstrained manner through computational degrees of freedom. . Devices that use ratchets and triggers, or detents, are examples of a type 1 device, since the release of stored energy by the ratchet and trigger or detent is assumed not to be tied to computational degrees of freedom. On said device, if e.g. For example, if a ratchet and trigger were present, while the snapping movement of the ratchet could occur with a periodicity controlled by a clock system, the energy release of that snapping movement would not be linked to the frequency. of clock. Rather, the rate of energy release would be a function of e.g. e.g., the force applied to, and the mass of, the ratchet, regardless of the overall computational speed of the system. The resulting collision of the trigger with the pawl could generate vibrations that waste energy.

Tipo 2: Dispositivos que almacenan energía potencial y luego liberan esta energía de una manera controlada por los grados de libertad computacionales. Por ejemplo, en los sistemas MLL descritos en la presente memoria, si se va a colocar un resorte entre eslabones en una línea, a medida que el sistema impulse la línea hacia adelante y hacia atrás, el resorte se comprimiría y se descomprimiría. Esta compresión y descompresión se produciría gradualmente, a la frecuencia impuesta por un reloj del sistema. Al resorte no se le permitiría hacer encajar a presión una parte no restringida en su lugar a una velocidad que, desde la perspectiva del reloj del sistema, es arbitraria. Más bien, el movimiento del resorte y las partes acopladas se rigen por los grados de libertad computacionales. Téngase en cuenta que también en el escenario anterior, el resorte es parte de un eslabonamiento continuo y, por lo tanto, no se produce ninguna colisión de partes como cuando un trinquete es impactado por su gatillo. Esto también puede ayudar a reducir la disipación de energía. E, incluso si se producen colisiones de partes (p. ej., consulte las descripciones de las manillas en los sistemas MCL), dado que la velocidad con la que se producen dichos contactos se puede acoplar a los grados de libertad computacionales, es posible elegir velocidades que no disipen cantidades inaceptables de energía (y, de hecho, al provocar dichos impactos con el reloj del sistema, que preferentemente usa una señal tipo sinusoidal, incluso una velocidad de conmutación relativamente rápida puede dar como resultado velocidades de la parte muy bajas en el momento del impacto). Type 2: Devices that store potential energy and then release this energy in a manner controlled by computational degrees of freedom. For example, in the MLL systems described herein, if a spring was to be placed between links in a line, as the system drives the line back and forth, the spring would compress and decompress. This compression and decompression would occur gradually, at the frequency imposed by a system clock. The spring would not be allowed to snap an unconstrained part into place at a rate that, from the perspective of the system clock, is arbitrary. Rather, the motion of the spring and the attached parts are governed by computational degrees of freedom. Note that also in the above scenario, the spring is part of a continuous linkage and therefore no collision of parts occurs as when a ratchet is impacted by its trigger. This can also help reduce power dissipation. And, even if collisions of parts occur (e.g., see descriptions of handles in MCL systems), since the speed at which such contacts occur can be coupled to the computational degrees of freedom, it is possible choosing speeds that do not dissipate unacceptable amounts of power (and, in fact, by causing such impacts with the system clock, which preferably uses a sinusoidal type signal, even a relatively fast switching speed can result in very low part speeds at the moment of impact).

Tipo 3: Dispositivos que no almacenan más que cantidades triviales de energía potencial, pero tienen partes con grados de libertad no triviales no restringidos. Por ejemplo, dependiendo de la implementación, los sistemas podrían crearse usando MLL donde, debido a una o más cerraduras que están en la posición en blanco (0,0), los eslabones conectados pueden moverse libremente de manera esencialmente aleatoria debido al ruido térmico, vibraciones del sistema u otras causas. Entre otros problemas, dicho movimiento sin restricciones puede dar como resultado el tener que gastar energía para ajustar periódicamente mecanismos a un estado conocido, para garantizar una operación fiable. (Téngase en cuenta que dichas situaciones pueden evitarse con sistemas diseñados adecuadamente, y esto se presenta solo como ejemplo). Type 3: Devices that store no more than trivial amounts of potential energy, but have parts with unconstrained non-trivial degrees of freedom. For example, depending on the implementation, systems could be created using MLL where, due to one or more locks being in the blank position (0,0), the connected links are free to move essentially randomly due to thermal noise, system vibrations or other causes. Among other problems, such unrestricted movement can result in having to expend energy to periodically adjust mechanisms to a known state, to ensure reliable operation. (Please note that such situations can be avoided with properly designed systems, and this is presented as an example only.)

Tipo 4: Dispositivos que no almacenan más que cantidades triviales de energía potencial y no tienen más que los grados de libertad sin restricciones triviales. Por ejemplo, un sistema MLL diseñado adecuadamente donde todo el movimiento se acopla, directa o indirectamente, a entradas de datos y/o al reloj del sistema. No se permite que los componentes “ floten” libremente, como lo haría un eslabón conectado solo a una cerradura en el estado en blanco. Con respecto a la definición de grados de libertad sin restricciones “triviales” , esta se refiere a aquellos que ocurren en una porción suficientemente pequeña del sistema en general (p. ej., un tipo particular de mecanismo tiene este problema, pero el mecanismo es raro en el sistema en general), o a aquellos que ocurren con poca frecuencia, que no afectan materialmente la disipación de energía en general. Un ejemplo de grados de libertad no restringidos que ocurren con poca frecuencia sería cuando algunos mecanismos del sistema tienen grados de libertad temporalmente no restringidos durante un proceso de inicialización o reinicio. Es posible que dichos procesos solo sean necesarios con muy poca frecuencia en comparación con las operaciones de cálculo estándar y, por lo tanto, contribuirían muy poco a una disipación de energía del sistema. Con respecto a la definición de “trivial” cuando se usa en referencia a energía potencial, téngase en cuenta que todos los sistemas mecánicos almacenarán algo de energía potencial. Por ejemplo, en teoría, incluso los eslabones muy rígidos se deforman ligeramente cuando se les aplica fuerza. Suponiendo que no haya deformación permanente, técnicamente almacenan energía potencial. Dicho almacenamiento de energía potencial inevitable se considera trivial. El objetivo de los sistemas tipo 3 y tipo 4 es evitar sistemas que almacenan intencionalmente energía potencial para su posterior liberación, tal como en un sistema con resortes, donde esos resortes y su energía potencial se requieren para que el sistema funcione correctamente. Type 4: Devices that store no more than trivial amounts of potential energy and have no more than trivial unconstrained degrees of freedom. For example, a properly designed MLL system where all movement is coupled, directly or indirectly, to data inputs and/or the system clock. Components are not allowed to “float” freely, as a link connected only to a lock would in the blank state. Regarding the definition of “trivial” unconstrained degrees of freedom, this refers to those that occur in a sufficiently small portion of the overall system (e.g., a particular type of mechanism has this problem, but the mechanism is rare in the overall system), or to those that occur infrequently, which do not materially affect overall power dissipation. An example of infrequently occurring unconstrained degrees of freedom would be when some system mechanisms have temporarily unconstrained degrees of freedom during an initialization or reboot process. Such processes may only be needed very infrequently compared to standard calculation operations and would therefore contribute very little to a system energy dissipation. Regarding the definition of “trivial” when used in reference to potential energy, note that all mechanical systems will store some potential energy. For example, in theory, even very rigid links deform slightly when force is applied to them. Assuming no permanent deformation, they technically store potential energy. Such unavoidable potential energy storage is considered trivial. The goal of type 3 and type 4 systems is to avoid systems that intentionally store potential energy for later release, such as in a spring-loaded system, where those springs and their potential energy are required for the system to function properly.

Téngase en cuenta que la falta de deformación sustancial no es la única manera de lograr un sistema de tipo 3 o tipo 4. Las flexiones pueden tener una deformación sustancial, pero pueden diseñarse para almacenar cantidades triviales de energía potencial total o neta, como se explica en la presente memoria. Estas categorías se ordenan generalmente por su potencial de eficiencia energética, siendo los dispositivos de tipo 1 los dispositivos menos eficientes y los de tipo 4 los más eficientes. Dicho esto, la eficiencia energética de los sistemas específicos depende de los detalles de implementación. Un sistema de tipo 2 podría ser menos eficiente que un sistema de tipo 3. Una implementación deficiente podría hacer que cualquier energía del sistema sea ineficiente. Debido al uso de trinquetes y gatillos, retenes, resortes u otros mecanismos que almacenan y luego liberan energía potencial de una manera no vinculada a los grados de libertad computacionales, todos los sistemas Turing completos preexistentes para la computación mecánica pueden clasificarse como de tipo 1. Note that lack of substantial deformation is not the only way to achieve a type 3 or type 4 system. Flexures can have substantial deformation, but can be designed to store trivial amounts of total or net potential energy, as explained In the present memory. These categories are generally ordered by their energy efficiency potential, with type 1 devices being the least efficient devices and type 4 devices being the most efficient. That said, the energy efficiency of specific systems depends on implementation details. A type 2 system could be less efficient than a type 3 system. Poor implementation could make any system energy inefficient. Due to the use of pawls and triggers, detents, springs, or other mechanisms that store and then release potential energy in a manner not tied to computational degrees of freedom, all pre-existing Turing complete systems for mechanical computing can be classified as type 1.

Lógica de eslabonamiento mecánico Mechanical linkage logic

Un sistema MLL se construye a partir de varias partes básicas o primitivas. En las realizaciones descritas, estas son juntas rotatorias y eslabones, que juntos forman eslabonamientos mecánicos. Las juntas rotatorias y los eslabones se montan en un bloque de anclaje, y se pueden usar para crear mecanismos de orden superior tales como líneas de transmisión de datos, cerraduras y balanzas. Se pueden crear mecanismos de orden superior, incluidas las puertas lógicas (tanto reversibles como irreversibles) y registros de desplazamiento combinando cerraduras y balanzas, o se pueden implementar más directamente usando eslabones y juntas rotatorias. Esto es suficiente para construir un sistema computacional completo. An MLL system is built from several basic parts or primitives. In the described embodiments, these are rotary joints and links, which together form mechanical linkages. Rotating joints and links are mounted on an anchor block, and can be used to create higher-order mechanisms such as data transmission lines, locks, and scales. Higher order mechanisms, including logic gates (both reversible and irreversible) and shift registers, can be created by combining locks and scales, or implemented more directly using rotating links and joints. This is enough to build a complete computer system.

Para demostrar esto, utilizando solo eslabones y juntas rotatorias, se explica el diseño de líneas de datos, puertas lógicas, cerraduras y balanzas. Posteriormente, usando algunos de estos mecanismos, se describe la construcción de un registro de desplazamiento. Los registros de desplazamiento son simples, pero cuando se combinan con una o más puertas lógicas que proporcionan lógica combinatoria universal, contienen todos los elementos fundamentales requeridos para el cálculo. Si las partes básicas pueden construir un registro de desplazamiento y las puertas lógicas apropiadas, se deduce que puede construirse un sistema computacional completo. To demonstrate this, using only rotating links and joints, the design of data lines, logic gates, locks and scales is explained. Subsequently, using some of these mechanisms, the construction of a shift register is described. Shift registers are simple, but when combined with one or more logic gates that provide universal combinatorial logic, they contain all the fundamental elements required for computation. If the basic parts can construct a shift register and the appropriate logic gates, it follows that a complete computer system can be constructed.

Téngase en cuenta que la mayoría de los mecanismos descritos se adaptan a sistemas computacionales binarios. Como resultado, la mayoría de los eslabones se moverán entre dos posiciones permitidas. Sin embargo, existen algunas excepciones, tales como diseños donde, por ejemplo, cuando una entrada es 1, el mecanismo impulsa una o más entradas “ hacia atrás” (usos de palabras tales como “ avance” , “ hacia atrás” y otras direcciones son convenciones didácticas solamente, ya que no es necesario utilizar direcciones particulares en los mecanismos reales, ni es necesario que dichas direcciones sean coherentes desde un mecanismo hasta el siguiente). En otras palabras, dada una entrada de dos bits que comienza en (0,0), una entrada de 1 podría hacer que el mecanismo termine en un estado tal como (1, -1) o (1, -0,5) en lugar de (1,0). Siempre que el sistema esté diseñado para manejar correctamente dicha cinemática, esto no tiene por qué ser un problema. Además, los eslabones internos en la implementación de diversos mecanismos pueden moverse entre más de dos posiciones permitidas, incluso si las entradas y salidas siguen siendo binarias. El término binario se usa para fines ilustrativos porque es el tipo más común de sistema computacional utilizado en los ordenadores convencionales. Obviamente, podrían construirse sistemas computacionales ternarios, cuaternarios u otros sistemas computacionales no binarios utilizando las enseñanzas contenidas en la presente memoria. Note that most of the described mechanisms are adapted to binary computing systems. As a result, most links will move between two allowed positions. However, there are some exceptions, such as designs where, for example, when one input is 1, the mechanism drives one or more inputs “backward” (uses of words such as “forward,” “backward,” and other directions are teaching conventions only, since it is not necessary to use particular addresses in the actual mechanisms, nor is it necessary for those addresses to be consistent from one mechanism to the next). In other words, given a two-bit input starting at (0,0), an input of 1 could cause the mechanism to end up in a state such as (1, -1) or (1, -0,5) in instead of (1,0). As long as the system is designed to handle such kinematics correctly, this does not have to be a problem. Furthermore, the internal links in the implementation of various mechanisms can move between more than two allowed positions, even if the inputs and outputs remain binary. The term binary is used for illustrative purposes because it is the most common type of computing system used in conventional computers. Obviously, ternary, quaternary or other non-binary computing systems could be constructed using the teachings contained herein.

Los mecanismos descritos en la presente memoria se simularon o se representaron en diagramas, frecuentemente con Linkage v3 (gratuito desde www.linguagesimulator.com), Autodesk Inventor 2015/2016 o, para modelos moleculares, HyperChem, GROMACS o Gaussian. Muchas de las figuras de la presente memoria representan subconjuntos tomados del contexto de un sistema computacional completo. Como resultado, no son necesariamente funcionales como se muestra. Por ejemplo, es posible que un mecanismo dado no esté completamente restringido como se ilustra porque, en un sistema completo, el mecanismo se fijaría a otros componentes para satisfacer las restricciones faltantes, o se fijaría a alguna manera de accionamiento (p. ej., una señal de reloj). A veces se ha omitido el enrutamiento realista de datos en favor de, p. ej., líneas rectas, para mayor claridad. Generalmente se omiten estructuras de soporte auxiliares, tales como bloques de anclaje, o eslabones que sirven solo para proporcionar rigidez (“ eslabones de soporte” ). The mechanisms described herein were simulated or diagrammed, often with Linkage v3 (free from www.linguagesimulator.com), Autodesk Inventor 2015/2016 or, for molecular models, HyperChem, GROMACS or Gaussian. Many of the figures herein represent subsets taken from the context of a complete computer system. As a result, they are not necessarily functional as shown. For example, a given mechanism may not be fully constrained as illustrated because, in a complete system, the mechanism would be attached to other components to satisfy the missing constraints, or it would be attached to some form of actuation (e.g., a clock signal). Realistic data routing has sometimes been omitted in favor of e.g. e.g., straight lines, for greater clarity. Auxiliary support structures, such as anchor blocks, or links that serve only to provide rigidity (“support links”), are generally omitted.

Algunos diagramas representan partes dentro de los mecanismos que no son partes básicas de MLL. El ejemplo más frecuente de esto es el uso de correderas lineales en modelos de Linkage. Esto es una comodidad programática ya que se requiere algún método para la conducción de entradas para ejecutar una simulación en Linkage. En un sistema real, las correderas lineales se reemplazarían, p. ej., por conexiones a entradas/salidas apropiadas, tales como líneas de datos o señales de reloj. T éngase en cuenta que el solucionador cinemático usado por Linkage v3 no tiene el concepto de ciclos de reloj, por lo que no puede conducir varias entradas secuencialmente. Y Linkage y otros programas pueden fallar en mecanismos válidos simplemente porque el solucionador no puede calcular correctamente la cinemática. Debido a estas y otras reservas, las figuras en la presente memoria no deben tomarse como mecanismos de trabajo completos, sino más bien como ejemplos didácticos que, dadas las enseñanzas contenidas en la presente memoria, pueden adaptarse fácilmente para crear mecanismos de trabajo y combinarse para crear sistemas computacionales completos. Some diagrams represent parts within the mechanisms that are not basic parts of MLL. The most common example of this is the use of linear sliders in Linkage models. This is a programmatic convenience since some method of driving input is required to run a simulation in Linkage. In a real system, linear sliders would be replaced, e.g. e.g., by connections to appropriate inputs/outputs, such as data lines or clock signals. Note that the kinematic solver used by Linkage v3 does not have the concept of clock cycles, so it cannot drive multiple inputs sequentially. And Linkage and other programs can fail on valid mechanisms simply because the solver cannot correctly calculate the kinematics. Due to these and other reservations, the figures herein should not be taken as complete working mechanisms, but rather as teaching examples which, given the teachings contained herein, can be easily adapted to create working mechanisms and combined to create complete computing systems.

Juntas rotatorias Rotating joints

La fricción en una junta rotatoria puede hacerse más pequeña y más pequeña a medida que el tamaño de la junta rotatoria es cada vez más pequeño. A escala molecular, una junta rotatoria que comprende dos átomos que giran alrededor de un enlace sencillo tiene potencialmente un área de contacto cero, y varias juntas rotatorias que giran alrededor del eje de enlaces químicos simples se han analizado y se ha encontrado que tienen muy poca fricción. Por ejemplo, los enlaces simples carbono-carbono, usando átomos de carbono montados en soportes de diamante, son una forma de crear una junta rotatoria que proporciona rotación con muy poca disipación de energía. The friction in a rotating joint can get smaller and smaller as the size of the rotating joint gets smaller and smaller. At the molecular scale, a rotating joint comprising two atoms rotating around a single bond potentially has zero contact area, and several rotating joints rotating around the axis of single chemical bonds have been analyzed and found to have very little contact area. friction. For example, carbon-carbon single bonds, using carbon atoms mounted on diamond supports, are one way to create a rotating joint that provides rotation with very little energy dissipation.

La Figura 1 representa un modelo molecular de una posible implementación de una junta rotatoria que se usa para sujetar un miembro rotatorio. Una estructura de soporte superior 101 y una estructura de soporte inferior 102, que se conectarían, p. ej., a un bloque de anclaje, en un dispositivo completo, se usan para conectar un conjunto de enlaces superior e inferior, a lo largo del mismo eje de rotación, a un miembro rotatorio 103. Los enlaces superiores incluyen un enlace simple 104 carbono-carbono superior, un enlace simple 105 carbono-carbono superior y un enlace triple 106 carbono-carbono superior. Los enlaces inferiores incluyen un enlace simple 107 carbono-carbono superior, un enlace simple 108 carbono-carbono inferior y un enlace triple 109 carbono-carbono inferior La junta rotatoria se une a las estructuras de soporte mediante varios átomos de oxígeno, incluido el átomo 110 de oxígeno superior y el átomo 111 de oxígeno inferior. El miembro giratorio 103 como se representa es una losa de diamante aproximadamente circular, pero esta es solamente representativa, como lo son las otras estructuras. El miembro giratorio podría ser un eslabón, un volante (p. ej., para generar una señal de reloj), o cualquier otra cosa que deba rotar, en cualquier forma. Figure 1 represents a molecular model of a possible implementation of a rotary joint used to hold a rotating member. An upper support structure 101 and a lower support structure 102, which would be connected, e.g. e.g., to an anchor block, in a complete device, they are used to connect a set of upper and lower links, along the same axis of rotation, to a rotating member 103. The upper links include a single link 104 carbon -top carbon, a single 105 carbon-top carbon bond and a 106 top carbon-carbon triple bond. The bottom bonds include a top carbon-carbon single bond 107, a bottom carbon-carbon single bond 108, and a bottom carbon-carbon triple bond 109. The rotary joint is attached to the supporting structures by several oxygen atoms, including atom 110 of upper oxygen and the lower oxygen atom 111. The rotating member 103 as shown is an approximately circular diamond slab, but this is only representative, as are the other structures. The rotating member could be a link, a flywheel (e.g., to generate a clock signal), or anything else that must rotate, in any way.

Las simulaciones de la dinámica molecular indican que, con o sin las unidades acetilénicas ilustradas por los átomos de carbono y el enlace triple 106 superiores y los átomos de carbono y el enlace triple 109 inferiores, esta estructura permite la rotación con un arrastre notablemente pequeño. Sin embargo, interponer una unidad acetilénica entre los enlaces simples circundantes reduce aún más la disipación de energía de dicha junta rotatoria. Molecular dynamics simulations indicate that, with or without the acetylenic units illustrated by the upper carbon atoms and triple bond 106 and the lower carbon atoms and triple bond 109, this structure allows rotation with remarkably little drag. However, interposing an acetylene unit between the surrounding single bonds further reduces the energy dissipation of such a rotating joint.

Teniendo en cuenta este ejemplo, resultará obvio que las implementaciones variadas, incluidas otras estructuras moleculares, podrían proporcionar el mismo tipo de mecanismo. Por ejemplo, con pequeñas modificaciones al modelo representado en la Figura 1, los átomos de oxígeno ilustrados por el átomo 110 de oxígeno y el átomo 111 de oxígeno pueden reemplazarse por nitrógeno u otro elemento con una valencia, fuerza de enlace y propiedades estéricas adecuadas. De manera similar, el carbono podría reemplazarse con silicio u otros elementos apropiados. O, podrían usarse estructuras completamente diferentes, que incluyen nanotubos de carbono u otras estructuras, preferiblemente aquellas que pueden sujetar de forma rígida las juntas rotatorias a escala molecular. Given this example, it will be obvious that various implementations, including other molecular structures, could provide the same type of mechanism. For example, with minor modifications to the model depicted in Figure 1, the oxygen atoms illustrated by oxygen atom 110 and oxygen atom 111 can be replaced by nitrogen or another element with suitable valence, bond strength, and steric properties. Similarly, carbon could be replaced with silicon or other appropriate elements. Or, completely different structures could be used, including carbon nanotubes or other structures, preferably those that can rigidly hold rotating joints on a molecular scale.

Además, no es necesario que dicha junta rotatoria consista en solo una única unión o par (p. ej., superior e inferior) de uniones. Por ejemplo, en implementaciones más grandes, la junta rotatoria podría reemplazarse con un cojinete de joya en forma de V, un cojinete con elementos rodantes, fullerenos anidados (p. ej., nanotubos de carbono) o cualquiera de las muchas formas conocidas para permitir la rotación, preferiblemente con baja fricción. Además, pueden usarse múltiples juntas rotatorias coaxiales para crear una junta más fuerte (p. ej., usando una estructura similar a la del diseño interdigitado de una bisagra de puerta). Y, a escala molecular, la adición de juntas rotatorias adicionales en el mismo eje de rotación podría reducir aún más la barrera rotacional si se presta la debida atención a la simetría. Téngase en cuenta que si bien se puede formar una junta rotatoria usando una unión, la resistencia y la rigidez del dispositivo pueden beneficiarse de una parte rotatoria que se mantiene en dos lados, como se representa en la Figura 1, y/o usando múltiples uniones, tales como en el ejemplo de “ bisagra de puerta” . Con respecto a las realizaciones a escala molecular, para facilitar la descripción, se puede hacer referencia a que las juntas rotatorias rotan alrededor de una unión simple, aunque en algunos casos sería más preciso decir que se pueden usar uniones múltiples para formar un único eje de rotación para la junta rotatoria general. Furthermore, said rotating joint need not consist of only a single joint or pair (e.g., upper and lower) of joints. For example, in larger implementations, the rotating joint could be replaced with a V-shaped jewel bearing, a bearing with rolling elements, nested fullerenes (e.g., carbon nanotubes), or any of the many known ways to allow rotation, preferably with low friction. Additionally, multiple coaxial rotating joints can be used to create a stronger joint (e.g., using a structure similar to that of the interdigitated design of a door hinge). And, on a molecular scale, the addition of additional rotary joints on the same axis of rotation could further reduce the rotational barrier if due attention is paid to symmetry. Note that while a rotating joint can be formed using one joint, the strength and rigidity of the device can benefit from a rotating part held on two sides, as depicted in Figure 1, and/or using multiple joints. , such as in the “door hinge” example. With respect to the molecular scale embodiments, for ease of description, reference may be made to the rotary joints rotating around a single joint, although in some cases it would be more accurate to say that multiple joints may be used to form a single axis of rotation. rotation for the general rotating joint.

La magnitud de las barreras de rotación, el par de torsión requerido para superarlas, la longitud de los brazos de palanca (p. ej., eslabones) y el tiempo para que rote el eslabón a través del intervalo necesario de la junta rotatoria (y a cuánto asciende el intervalo) dependen del diseño de un sistema particular. Como ejemplo, las simulaciones de dinámica molecular muestran que la energía requerida para hacer rotar un eslabón conectado a una junta rotatoria molecular con una velocidad de rotación en radianes de 1 x 10 E9 radianes/s y una temperatura de 180 K puede estar por debajo de 1 x 10 E-25 J. El límite de Landauer es 1,72 x 10 E-21 J a 180 K. Este número está tan por encima de la cifra de 1 x 10 E-25 J para una rotación expresada en radianes de un eslabón alrededor de una junta rotatoria, que incluso mecanismos que utilizan muchas juntas rotatorias para realizar una operación de un único bit podrían hacerlo bajo el límite de Landauer. Además, se espera que el arrastre viscoso de las juntas rotatorias y la pérdida de energía de otros modos de vibración disminuyan rápidamente a medida que disminuye la temperatura de funcionamiento debido a que los fonones se congelan. The magnitude of the rotation barriers, the torque required to overcome them, the length of the lever arms (e.g., links), and the time for the link to rotate through the required rotary joint range (and at how much the interval is) depend on the design of a particular system. As an example, molecular dynamics simulations show that the energy required to rotate a link connected to a molecular rotary joint with a radian rotation speed of 1 x 10 E9 radians/s and a temperature of 180 K can be below 1 x 10 E-25 J. The Landauer limit is 1.72 x 10 E-21 J at 180 K. This number is well above the figure of 1 x 10 E-25 J for a rotation expressed in radians of a link around a rotating joint, which even mechanisms that use many rotating joints to perform a single-bit operation could do so under the Landauer limit. Furthermore, the viscous drag of rotating joints and the energy loss of other vibration modes are expected to decrease rapidly as the operating temperature decreases due to phonon freezing.

Eslabones Links

En su forma más básica, los eslabones son estructuras rígidas, similares a varillas, aunque en algunas implementaciones pueden tener formas diferentes o sustancialmente más complejas. En la mayor parte del análisis realizado en la presente memoria, que requiere estimaciones de valores tales como masa de eslabón, frecuencias de resonancia y conducción de calor, se asume que un eslabón está compuesto por una varilla de diamante de aproximadamente 20 nm de longitud y 0,5-0,7 nm de diámetro. Sin embargo, los eslabones podrían ser más grandes o más pequeños, o tener una forma completamente diferente (como se ve en los ejemplos de cerradura no coplanaria). In their most basic form, links are rigid, rod-like structures, although in some implementations they may have different or substantially more complex shapes. In most of the analysis performed herein, which requires estimates of values such as link mass, resonance frequencies, and heat conduction, it is assumed that a link is composed of a diamond rod approximately 20 nm in length and 0.5-0.7 nm in diameter. However, the links could be larger or smaller, or have a completely different shape (as seen in the non-coplanar lock examples).

Una de las formas más pequeñas para implementar un eslabón sería la de utilizar un enlace covalente simple como un eslabón. Por ejemplo, hay muchas moléculas que tienen más de una posible configuración, y la transición entre configuraciones (“ conformadoras” ) podría constituir el movimiento de un eslabón. Un ejemplo específico es el ciclohexano, que tiene varias conformaciones posibles, que incluyen dos conformaciones de silla, la conformación de bote básico y la conformación de bote torcido. El cambio entre diferentes conformaciones puede ocurrir a través de la rotación del enlace (aunque otros cambios, tales como cambios en el ángulo o torsión del enlace, también pueden estar presentes y usarse), similar al de la junta rotatoria previamente descrita, y da como resultado el movimiento de uno o más de los átomos en la estructura. One of the smallest ways to implement a link would be to use a simple covalent bond as a link. For example, there are many molecules that have more than one possible configuration, and the transition between configurations ("conformers") could constitute the movement of a link. A specific example is cyclohexane, which has several possible conformations, including two chair conformations, the basic boat conformation and the twisted boat conformation. The change between different conformations can occur through rotation of the bond (although other changes, such as changes in bond angle or torsion, may also be present and used), similar to that of the rotary joint previously described, and gives as results in the movement of one or more of the atoms in the structure.

Dicha capacidad de cambio de conformación molecular para propagarse a lo largo de distancias relativamente largas y a través de redes complejas se sabe que existe en biología, donde se denomina “ diseminación de conformación” . (Bray y Duke, “ Conformational spread: the propagation of allosteric states in large multiprotein complexes” , Annu Rev Biophys Biomol Struct, 2004), y resultará evidente que podrían diseñarse sistemas sintéticos que funcionen bajo los mismos principios que para enlaces más grandes, pero usando solo un enlace simple como un eslabón. Dichos diseños podrían permitir longitudes de eslabón en el intervalo expresado en ángstrom. Such ability of molecular conformation change to spread over relatively long distances and through complex networks is known to exist in biology, where it is called “conformational spread”. (Bray and Duke, “ Conformational spread: the propagation of allosteric states in large multiprotein complexes”, Annu Rev Biophys Biomol Struct, 2004), and it will be evident that synthetic systems could be designed that work under the same principles as for larger bonds, but using just a single link as a link. Such designs could allow link lengths in the range expressed in angstroms.

Independientemente de la implementación exacta de eslabones y juntas rotatorias, una de las tareas básicas en un sistema computacional es mover los datos de un lugar a otro. Los sistemas ilustrativos descritos usan eslabones conectados por juntas rotatorias para mover datos. Si bien muchos tipos de eslabonamientos funcionarían, incluidos los eslabonamientos que proporcionan un verdadero movimiento en línea recta, los eslabonamientos de 4 barras se usan con frecuencia como una manera ilustrativa de restringir con precisión el movimiento de eslabón. La Figura 2 representa una vista lateral de dicho eslabonamientos de 4 barras (téngase en cuenta que algunas veces se denominan eslabonamientos de 3 barras, ya que la estructura de soporte puede o no considerarse una barra adicional), que comprende un bloque de anclaje 205, el eslabón 202 de soporte izquierdo, el eslabón 207 de soporte derecho y el eslabón 204 de datos, en donde el extremo inferior del eslabón 202 de soporte izquierdo se conecta al lado izquierdo del bloque de anclaje 205 mediante la junta rotatoria 203 anclada izquierda y el extremo inferior del eslabón 207 de soporte derecho se conecta al lado derecho del bloque de anclaje 205 mediante la junta rotatoria 206 anclada derecha, y el extremo superior del eslabón 202 de soporte izquierdo se conecta al lado izquierdo del eslabón 204 de datos mediante la junta rotatoria 201 izquierda superior y el extremo superior del eslabón 207 de soporte derecho se conecta al lado derecho del eslabón 204 de datos mediante la junta rotatoria 208 derecha superior. Se impide que la junta rotatoria 203 anclada izquierda y la junta rotatoria 206 anclada derecha se muevan entre sí mediante el bloque de anclaje 205. El eslabón 204 de datos transmite el movimiento de un eslabón de soporte a otro eslabón de soporte. El eslabón 202 de soporte izquierdo y el eslabón 207 de soporte derecho se muestran desplazados a la izquierda. Los eslabones de soporte inclinados hacia la izquierda colocan el eslabón 204 de datos en una posición a la izquierda de la junta rotatoria 203 anclada izquierda y la junta rotatoria 206 anclada derecha. Arbitrariamente, esta posición izquierda puede denominarse “ 0” o “ baja” , mientras que si el eslabón de soporte izquierdo 202 y el eslabón de soporte derecho 207 estuvieran inclinados hacia la derecha, esa posición podría denominarse “ 1” o “ alta” . Esto proporciona una base para un sistema binario de almacenamiento y transferencia de datos. Regardless of the exact implementation of rotating links and joints, one of the basic tasks in a computer system is to move data from one location to another. Illustrative systems described use links connected by rotating joints to move data. While many types of linkages would work, including linkages that provide true straight-line motion, 4-bar linkages are frequently used as an illustrative way to precisely restrict link motion. Figure 2 represents a side view of said 4-bar linkage (note that these are sometimes called 3-bar linkages, as the supporting structure may or may not be considered an additional bar), comprising an anchor block 205, the left support link 202, the right support link 207 and the data link 204, wherein the lower end of the left support link 202 is connected to the left side of the anchor block 205 by the left anchor rotary joint 203 and the lower end of the right support link 207 is connected to the right side of the anchor block 205 by the right anchor rotary joint 206, and the upper end of the left support link 202 is connected to the left side of the data link 204 by the rotary joint 201 upper left and the upper end of the right support link 207 is connected to the right side of the data link 204 by the rotary joint 208 upper right. The left anchored rotary joint 203 and the right anchored rotary joint 206 are prevented from moving relative to each other by the anchor block 205. The data link 204 transmits movement from one support link to another support link. The left support link 202 and the right support link 207 are shown offset to the left. The left-inclined support links place the data link 204 in a position to the left of the left anchored rotary joint 203 and the right anchored rotary joint 206. Arbitrarily, this left position can be called "0" or "low", while if the left support link 202 and the right support link 207 were tilted to the right, that position could be called "1" or "high". This provides a basis for a binary data storage and transfer system.

Resultará evidente, incluso en ausencia del símbolo de junta rotatoria anclada, que la junta rotatoria 203 anclada izquierda y la junta rotatoria 206 anclada derecha son juntas rotatoria ancladas porque terminan en el bloque de anclaje 205. En las figuras siguientes, es posible que el bloque de anclaje no se muestre explícitamente. En su lugar, se adopta frecuentemente la comodidad esquemática de representar las juntas rotatorias no fijas como un círculo en la intersección de múltiples eslabones (que se representan generalmente como líneas o barras rectas, aunque algunos pueden tener formas más complejas), mientras que las juntas rotatorias fijas o ancladas se representan como un círculo y un triángulo con líneas diagonales cortas en su base. En otras figuras, generalmente para reducir la complejidad, algunas de estas comodidades pueden cambiarse o eliminarse. Las descripciones de las figuras y el contexto harán evidente cómo se deben interpretar dichos diagramas. It will be evident, even in the absence of the anchored rotary joint symbol, that the left anchored rotary joint 203 and the right anchored rotary joint 206 are anchored rotary joints because they end in the anchor block 205. In the following figures, it is possible that the block anchoring is not shown explicitly. Instead, the schematic convenience of representing non-fixed rotating joints as a circle at the intersection of multiple links (which are usually represented as straight lines or bars, although some may have more complex shapes) is often adopted, while joints Fixed or anchored rotating bodies are represented as a circle and a triangle with short diagonal lines at their base. In other figures, usually to reduce complexity, some of these conveniences may be changed or removed. The descriptions of the figures and the context will make it evident how these diagrams should be interpreted.

Como ya se ha descrito, la información puede transmitirse a lo largo de la longitud de un único eslabón de datos. Sin embargo, puede ser útil una transmisión y enrutamiento más complejos de datos. Un eslabón de datos puede conectarse a cualquier número de otros eslabones de datos para continuar la transmisión de datos. La transmisión de datos puede continuar en línea recta a través de eslabones de soporte adicionales (aunque, en realidad, es solo un eslabón de datos más largo, puede ser útil incluir eslabones de soporte adicionales para aumentar la rigidez), o puede cambiar de dirección en las juntas rotatorias, en cualquier ángulo y en cualquier plano deseado. Y, un eslabón puede conectarse a múltiples otros eslabones no solo secuencialmente, sino también a través de estructuras de horquilla, copiando efectivamente los datos para su uso en múltiples ubicaciones. Esto proporciona una flexibilidad considerable en el enrutamiento de datos. As already described, information can be transmitted along the length of a single data link. However, more complex transmission and routing of data may be useful. A data link can connect to any number of other data links to continue data transmission. Data transmission can continue in a straight line via additional support links (although in reality it is just a longer data link, it may be useful to include additional support links to increase rigidity), or it can change direction in rotating joints, at any angle and in any desired plane. And, a link can connect to multiple other links not only sequentially, but also through hairpin structures, effectively copying data for use in multiple locations. This provides considerable flexibility in data routing.

La transmisión de datos puede producirse en ambas direcciones. El movimiento de un primer eslabón de datos hace que se mueva un segundo eslabón de datos, y el movimiento del segundo eslabón de datos hace que el primer eslabón de datos se mueva. Esto significa que cada eslabón de datos en la cadena está vinculado a sus vecinos. Es posible hacer que todos los eslabones de datos en una cadena, que puede ser de cierta longitud significativa, compartan un movimiento común, una propiedad que puede utilizarse para compartir un único valor binario a lo largo de toda la longitud de la cadena. Un conjunto de eslabones conectados se denomina línea. Data transmission can occur in both directions. Movement of a first data link causes a second data link to move, and movement of the second data link causes the first data link to move. This means that each data link in the chain is linked to its neighbors. It is possible to make all data links in a chain, which may be of some significant length, share a common motion, a property that can be used to share a single binary value across the entire length of the chain. A set of connected links is called a line.

Escala Scale

MLL podría implementarse utilizando partes básicas de prácticamente cualquier tamaño deseado. Por ejemplo, a escala macroscópica, se podría utilizar un mecanizado convencional o la impresión 3D, con, p, ej., cojinetes de joya en forma de V o cojinetes con elementos rodantes para las juntas rotatorias, y vigas o varillas convencionales para los eslabones. A una escala más pequeña, p. ej., la impresión 3d , técnicas basadas en litografía, o cualquiera de las otras formas muy conocidas en las que pueden fabricarse dispositivos NEMS/MEMS, podrían utilizarse para crear dispositivos con mecanismos en el intervalo de nanómetros a micras. A una escala aún más pequeña, los mecanismos MLL podrían ser de escala molecular. Debido a las frecuencias operativas más altas y la reducción de la disipación de energía que se tiende a lograr con las partes más pequeñas, los sistemas MLL se implementarían preferiblemente a escalas tan pequeñas como sea factible (tomando en cuenta factores tales como los requisitos de rendimiento y el presupuesto). Por esta razón, si bien la mayoría de las enseñanzas en la presente memoria son independientes de la escala, las estimaciones de disipación de energía se centran en una realización ilustrativa a escala molecular. MLL could be implemented using basic parts of virtually any desired size. For example, on a macroscopic scale, conventional machining or 3D printing could be used, with, e.g., V-shaped jewel bearings or rolling element bearings for the rotating joints, and conventional beams or rods for the links. . On a smaller scale, e.g. For example, 3D printing, lithography-based techniques, or any of the other well-known ways in which NEMS/MEMS devices can be manufactured, could be used to create devices with mechanisms in the nanometer to micron range. On an even smaller scale, MLL mechanisms could be molecular scale. Due to the higher operating frequencies and reduced power dissipation that tends to be achieved with smaller parts, MLL systems would preferably be implemented at scales as small as feasible (taking into account factors such as performance requirements and the budget). For this reason, while most of the teachings herein are scale independent, the energy dissipation estimates focus on an illustrative embodiment at the molecular scale.

Los cojinetes, engranajes y rotores moleculares se han estudiado tanto teórica como experimentalmente, y la bibliografía representativa incluye (Han, Globus y col., “ Molecular dynamics simulations of carbon nanotube-based gears” , Nanotechnology, 1997; Kotttan, Clarke y col., “Artificial Molecular Rotors” , Chem. Rev., 2005; Khuong, Dang y col., “ Rotational dynamics in a crystalline molecular gyroscope by variable-temperature 13C NMR, 2H NMR, X-ray diffraction, and force field calculations” , J Am Chem Soc, 4, 2007; Frantz, Baldridge y col., “Application of Structural Principles to the Design of T riptycene-Based Molecular Gears with Parallel Axes” , CHIMIA International Journal for Chemistry, 4, 2009; Wang, Liu y col., “ Molecular Rotors Observed by Scanning Tunneling Microscopy” , Three-Dimensional Nanoarchitectures, 2011; Isobe, Hitosugi y col., “ Molecular bearings of finite carbon nanotubes and fullerenes in ensemble rolling motion” , Chemical Science, 3, 2013; Carter, Weinberg y col., “ Rotary Nanotube Bearing Structure and Methods for Manufacturing and Using the Same” , patente de EE. UU. n.° 9150405, 2015). Molecular bearings, gears and rotors have been studied both theoretically and experimentally, and representative literature includes (Han, Globus et al., “Molecular dynamics simulations of carbon nanotube-based gears”, Nanotechnology, 1997; Kotttan, Clarke et al. , “Artificial Molecular Rotors”, Chem. Rev., 2005; J Am Chem Soc, 4, 2007; al., “Molecular Rotors Observed by Scanning Tunneling Microscopy”, Three-Dimensional Nanoarchitectures, 2011; Isobe, Hitosugi et al., “Molecular bearings of finite carbon nanotubes and fullerenes in ensemble rolling motion”, Chemical Science, 3, 2013; , Weinberg et al., “Rotary Nanotube Bearing Structure and Methods for Manufacturing and Using the Same,” U.S. Patent No. 9150405, 2015).

Los motores moleculares, aunque no necesariamente se requieren para accionar los sistemas MLL, son bastante comunes ahora que todos los libros y conferencias se dedican al tema. (Joachim y Rapenne, “ Single Molecular Machines and Motors: Proceedings of the 1 st International Symposium on Single Molecular Machines and Motors” Springer, 2013; Calle, Silvi y col., “ Molecular Machines and Motors” , Topics in Current Chemistry, Springer, 2014) Molecular motors, although not necessarily required to drive MLL systems, are quite common now that all the books and conferences are devoted to the topic. (Joachim and Rapenne, “Single Molecular Machines and Motors: Proceedings of the 1 st International Symposium on Single Molecular Machines and Motors” Springer, 2013; Calle, Silvi et al., “Molecular Machines and Motors”, Topics in Current Chemistry, Springer , 2014)

Además, ya existe la computación a escala molecular, en diversas formas (generalmente no Turing completas). (Heinrich, Lutz y col., “ Molecule Cascades” , Science, 2002; Reif, “ Mechanical Computing: The Computational Complexity of Physical Devices” Encyclopedia of Complexity and System Science, Springer-Verlag, 2009; Remon, Ferreira y col., “ Reversible molecular logic: a photophysical example of a Feynman gate” , ChemPhysChem, 12, 2009; Orbach, Remade y col., “ Logic reversibility and thermodynamic irreversibility demonstrated by DNAzymebased Toffoli and Fredkin logic gates” , PNAS, 52, 2012; Roy, Sethi y col., “All-Optical Reversible Logic Gates with Optically Controlled Bacteriorhodopsin Protein-Coated Microresonators” , Advances in Optical Technologies, 2012). Furthermore, molecular scale computing already exists, in various forms (generally not Turing complete). (Heinrich, Lutz et al., “Molecule Cascades”, Science, 2002; Reif, “Mechanical Computing: The Computational Complexity of Physical Devices” Encyclopedia of Complexity and System Science, Springer-Verlag, 2009; Remon, Ferreira et al., “Reversible molecular logic: a photophysical example of a Feynman gate”, ChemPhysChem, 12, 2009; , Sethi et al., “All-Optical Reversible Logic Gates with Optically Controlled Bacteriorhodopsin Protein-Coated Microresonators”, Advances in Optical Technologies, 2012).

Además de otras técnicas presentes en la literatura, podrían crearse mecanismos y sistemas computacionales MLL a escala molecular utilizando, p. ej., la fabricación molecular mediante mecanosíntesis, o el ensamblaje de moléculas apropiadamente funcionalizadas utilizando equipos de tipo microscopía de fuerza atómica. La química o el autoensamblaje convencionales (incluidas las técnicas de tipo origami del ADN) también pueden ser una ruta factible para fabricar mecanismos MLL a escala molecular. Dado el número muy limitado de partes básicas requeridas (p. ej., eslabones y juntas rotatorias en MLL) para las realizaciones presentadas, la síntesis y el ensamblaje de las partes y los mecanismos básicos necesarios son, en muchos sentidos, más simples que las complejidades de la fabricación de un ordenador electrónico convencional o que la implementación de propuestas anteriores para la computación mecánica. In addition to other techniques present in the literature, MLL computational systems and mechanisms could be created at the molecular scale using, e.g. e.g., molecular manufacturing through mechanosynthesis, or the assembly of appropriately functionalized molecules using atomic force microscopy-type equipment. Conventional chemistry or self-assembly (including DNA origami-type techniques) may also be a feasible route to fabricate MLL mechanisms at the molecular scale. Given the very limited number of basic parts required (e.g., links and rotating joints in MLL) for the presented embodiments, the synthesis and assembly of the necessary basic parts and mechanisms are, in many ways, simpler than the complexities of manufacturing a conventional electronic computer or the implementation of previous proposals for mechanical computing.

Disipación de energía energy dissipation

Como se indica, un sistema MLL completo puede construirse con nada más que eslabones y juntas rotatorias. Dado que, particularmente a escala molecular, hay muy poca pérdida de energía por la rotación alrededor de una junta rotatoria bien diseñada, se puede diseñar un sistema computacional completo que disipa muy poca energía. Paradigmas adicionales de diseño MLL (p. ej., par de torsión y equilibrio de masas para reducir o prevenir la radiación acústica) también se analizan en la presente memoria, y estos pueden ayudar a reducir aún más la disipación de energía. Además del diseño físico del sistema computacional, también las condiciones de funcionamiento pueden afectar la disipación de energía. Por ejemplo, si un sistema MLL funciona en un vacío, la aceleración y la desaceleración de los eslabones se producen de manera suave, y las fuerzas aplicadas son lo suficientemente pequeñas como para que la deformación de las partes básicas contribuya a que la disipación de energía sea insignificante, pudiendo la disipación de energía reducirse aún más. As noted, a complete MLL system can be constructed with nothing more than rotating links and joints. Since, particularly at the molecular scale, there is very little energy loss from rotation around a well-designed rotating joint, a complete computational system can be designed that dissipates very little energy. Additional MLL design paradigms (e.g., torque and mass balance to reduce or prevent acoustic radiation) are also discussed herein, and these may help to further reduce power dissipation. In addition to the physical design of the computing system, operating conditions can also affect power dissipation. For example, if an MLL system operates in a vacuum, the acceleration and deceleration of the links occurs smoothly, and the applied forces are small enough that the deformation of the basic parts contributes to the energy dissipation. is insignificant, and energy dissipation can be reduced even further.

El diseño de los mecanismos MLL y su interacción con el sistema de sincronización también pueden influir en la disipación de energía. Por ejemplo, los sistemas MLL pueden diseñarse de tal manera que, al utilizar adecuadamente las fases de reloj, no se aplica fuerza a los mecanismos que no son libres de moverse (p. ej., dicho sistema no intenta mover un mecanismo bloqueado sin desbloquearlo primero). Esta es la versión MLL de “ conmutación seca” , un término normalmente usado en el campo de los relés para indicar que los conmutadores no tienen tensión a través de ellos cuando cambian de estado, pero en la presente memoria se usará en el contexto de MLL. Téngase en cuenta que, si bien es un hallazgo novedoso e importante de MLL el hecho de que sistemas computacionales completos pueden diseñarse sin nada más que eslabones y juntas rotatorias, los sistemas m Ll pueden incorporar o interactuar con componentes adicionales. Por ejemplo, en la presente memoria se describe cómo las levas y seguidores de leva son una forma de generar señales de reloj. Sin embargo, si bien las levas y seguidores de leva pueden diseñarse (como se explica en la presente memoria) para tener una disipación de energía mínima, dichos mecanismos son accesorios, y no efectivamente parte de MLL. Los motores u otras formas para alimentar el movimiento de los sistemas MLL son otro ejemplo de una función que puede acoplarse a un sistema MLL, pero que no se consideran parte de MLL, y lo mismo podría decirse, por ejemplo, de las interfaces de entrada/salida que hacen las veces de puente, p. ej., en MLL y sistemas electrónicos o sistemas mecánicos no NELL. The design of the MLL mechanisms and their interaction with the timing system can also influence energy dissipation. For example, MLL systems can be designed in such a way that, by properly utilizing clock phases, no force is applied to mechanisms that are not free to move (e.g., such a system does not attempt to move a locked mechanism without unlocking it). first). This is the MLL version of “dry switching”, a term normally used in the relay field to indicate that switches have no voltage across them when they change state, but here it will be used in the context of MLL. . Note that while it is a novel and important finding of MLL that complete computational systems can be designed with nothing more than rotating links and joints, m Ll systems can incorporate or interact with additional components. For example, it is described herein how cams and cam followers are a way of generating clock signals. However, while cams and cam followers can be designed (as explained herein) to have minimal energy dissipation, such mechanisms are accessory, and not effectively part of MLL. Motors or other ways to power the movement of MLL systems are another example of a function that can be attached to an MLL system, but are not considered part of the MLL, and the same could be said, for example, of input interfaces. /output that act as a bridge, e.g. e.g., in MLL and non-NELL electronic systems or mechanical systems.

Cualquier sistema mecánico puede disipar una cantidad sustancial de energía si se ejecuta lo suficientemente rápido como para excitar las resonancias mecánicas internas. Para mantener la disipación de energía lo más baja posible, un diseño adecuado puede evitar que los modos de vibración de baja frecuencia se acoplen al reloj, y los modos de vibración restantes pueden calcularse y evitarse eligiendo una velocidad de operación lo suficientemente lenta como para evitar excitarlos, así como una forma de onda de sincronización que minimiza su excitación. En un sistema mecánico a escala molecular, dichas frecuencias de resonancia pueden estar en el rango de gigahercios, y los límites que imponen a la velocidad de conmutación pueden, por lo tanto, ser correspondientemente altos. Any mechanical system can dissipate a substantial amount of energy if it is run fast enough to excite internal mechanical resonances. To keep power dissipation as low as possible, a proper design can prevent low-frequency vibration modes from coupling to the clock, and the remaining vibration modes can be calculated and avoided by choosing an operating speed slow enough to avoid excite them, as well as a timing waveform that minimizes their excitation. In a molecular-scale mechanical system, such resonance frequencies may be in the gigahertz range, and the limits they impose on the switching speed may therefore be correspondingly high.

La velocidad de conmutación de un sistema MLL, tal como en ordenadores electrónicos, se determina mediante uno o más relojes que producen señales de reloj. Si el espectro de frecuencia de una señal de reloj tiene un componente de su energía con frecuencias de resonancia iguales o superiores a las de los mecanismos a los que se conecta, entonces podría disiparse una fracción de la energía de reloj mayor de la necesaria. The switching speed of an MLL system, such as in electronic computers, is determined by one or more clocks that produce clock signals. If the frequency spectrum of a clock signal has a component of its energy with resonance frequencies equal to or higher than those of the mechanisms to which it is connected, then a larger fraction of the clock energy than necessary could be dissipated.

En un sistema MLL, los cambios en una señal de reloj son preferiblemente graduales para no generar componentes de mayor frecuencia. Por ejemplo, los cambios graduales inherentes a una transición en forma de onda sinusoidal entre 0 y 1 (potencialmente con áreas planas en 0 y 1 entre transiciones para permitir una sincronización no perfecta de mecanismos entre diferentes fases de reloj) permiten que una señal de reloj evite colocar una tensión mayor de la necesaria sobre los mecanismos del sistema, ya que las partes aceleran y deceleran de manera más uniforme que si, p. ej., se usara una onda cuadrada. In an MLL system, changes in a clock signal are preferably gradual so as not to generate higher frequency components. For example, the gradual changes inherent in a sinusoidal waveform transition between 0 and 1 (potentially with flat areas at 0 and 1 between transitions to allow non-perfect synchronization of mechanisms between different clock phases) allow a clock signal avoid placing greater than necessary stress on the system mechanisms, as the parts accelerate and decelerate more uniformly than if e.g. For example, a square wave will be used.

Existen muchas formas de generar señales de reloj. Una forma de generar una señal de reloj que cambia gradualmente es utilizar una masa giratoria cuyo movimiento de rotación se convierte en movimiento lineal o casi lineal. Esto es, conceptualmente, el equivalente de un volante y manivela, y dicho dispositivo puede realizarse con solo eslabones y juntas rotatorias. Algunas realizaciones de los sistemas MI,L pueden acoplarse a otros métodos para generar señales de reloj, tales como sistemas de resorte y masa, o levas y seguidores de leva, que se describen en la presente memoria. There are many ways to generate clock signals. One way to generate a gradually changing clock signal is to use a rotating mass whose rotational motion is converted to linear or near-linear motion. This is, conceptually, the equivalent of a flywheel and crank, and such a device can be made with only rotating links and joints. Some embodiments of the MI,L systems can be coupled to other methods of generating clock signals, such as spring and mass systems, or cams and cam followers, which are described herein.

Se analizaron varias fuentes posibles de disipación de energía, incluidos el desequilibrio térmico inducido por estrés, y la radiación acústica. Estos no fueron los principales factores limitantes en la frecuencia de funcionamiento, al menos para los sistemas ilustrativos analizados (p. ej., sistemas basados en diamante, a escala molecular). Las resonancias mecánicas y la inercia son los principales límites a la velocidad de conmutación para estos sistemas. Several possible sources of energy dissipation were analyzed, including stress-induced thermal imbalance and acoustic radiation. These were not the main limiting factors in the frequency of operation, at least for the illustrative systems analyzed (e.g., diamond-based systems, at the molecular scale). Mechanical resonances and inertia are the main limits on the switching speed for these systems.

Si bien el equilibrio térmico resulta no ser un factor limitante para los sistemas ilustrativos analizados, en algunas situaciones podría serlo, y un objetivo cuando se busca minimizar la disipación de energía podría ser el de hacer funcionar los mecanismos en modo isotérmico. Por esta razón pueden ser deseables tiempos de equilibrio térmico cortos. Para lograr esto, las partes básicas del sistema se acoplan preferiblemente bien a uno o más depósitos térmicos. Por ejemplo, los eslabones se unen generalmente a una junta rotatoria que se une a un bloque de anclaje, o a juntas rotatorias que se unen a otros eslabones, que a su vez se unen a un bloque de anclaje. Si bien la longitud exacta de la trayectoria puede variar basada en la implementación, esto tiende a mantener corta la trayectoria desde cualquier eslabón hasta un bloque de anclaje, que puede servir como depósito térmico. Although thermal balance turns out not to be a limiting factor for the illustrative systems analyzed, in some situations it could be, and an objective when seeking to minimize energy dissipation could be to operate the mechanisms in isothermal mode. For this reason short thermal equilibrium times may be desirable. To achieve this, the basic parts of the system are preferably tightly coupled to one or more thermal reservoirs. For example, links are generally attached to a rotary joint that is attached to an anchor block, or to rotary joints that are attached to other links, which in turn are attached to an anchor block. While the exact length of the path may vary based on implementation, this tends to keep the path from any link to an anchor block, which can serve as a thermal reservoir, short.

Téngase en cuenta que el diamante se utiliza como un material de bloque de anclaje ilustrativo (y también puede utilizarse para partes básicas), entre otras razones, debido a su alta rigidez (módulo de Young de aproximadamente 1000 Gpa). El diamante también tiene una buena conducción de calor, que puede ser superior a 2000 W/mK en el diamante natural, y más alta en el diamante sin defectos e isotópicamente purificado (un principio que también se aplica a otros materiales). Se podrían utilizar muchos otros materiales, tanto para los bloques de anclaje como para las partes básicas, aunque sería preferible una alta rigidez por varias razones, incluida la elevación de la frecuencia de vibraciones de resonancia, y una buena conducción de calor sería preferible si se desea un equilibrio térmico rápido. Otros materiales ilustrativos incluyen Carbyne (módulo de Young de 32.100 GPa), diversos fullerenos (p. ej., los nanotubos de carbono pueden tener módulos de Young de más de 1000 GPa, conductividad térmica de 3180-3500 W/mK o superior), carburo de silicio (módulo de Young de 450 GPa) y silicio (módulo de Young de 130-185 GPa, conductividad térmica de 148 W/mK). Téngase en cuenta que estos valores son aproximados y generalmente representan valores medidos a 300 K (temperatura ambiente). Los valores pueden variar sustancialmente dependiendo de la estructura atómica, la pureza, la composición isotópica, el tamaño, la forma y la temperatura de un material. Por ejemplo, si bien la conductividad térmica del silicio es de 148 W/mK a 300 K, puede superar los 3000 W/mK a temperaturas de aproximadamente 20 K. Note that diamond is used as an illustrative anchor block material (and can also be used for basic parts), among other reasons due to its high rigidity (Young's modulus of approximately 1000 Gpa). Diamond also has good heat conduction, which can be greater than 2000 W/mK in natural diamond, and higher in defect-free and isotopically purified diamond (a principle that also applies to other materials). Many other materials could be used, both for the anchor blocks and for the basic parts, although high rigidity would be preferable for several reasons, including raising the frequency of resonance vibrations, and good heat conduction would be preferable if You want rapid thermal equilibrium. Other illustrative materials include Carbyne (Young's modulus of 32,100 GPa), various fullerenes (e.g., carbon nanotubes can have Young's moduli of more than 1000 GPa, thermal conductivity of 3180-3500 W/mK or higher), silicon carbide (Young's modulus 450 GPa) and silicon (Young's modulus 130-185 GPa, thermal conductivity 148 W/mK). Please note that these values are approximate and generally represent values measured at 300 K (room temperature). Values can vary substantially depending on the atomic structure, purity, isotopic composition, size, shape and temperature of a material. For example, although the thermal conductivity of silicon is 148 W/mK at 300 K, it can exceed 3000 W/mK at temperatures of approximately 20 K.

Además, téngase en cuenta que los sistemas MLL no necesitan estar compuestos de un solo tipo de material. Cada uno de los varios materiales presenta diferentes ventajas y desventajas, que incluyen no solo propiedades volumétricas tales como rigidez, conductividad térmica y expansión térmica, sino que, a escala molecular, la fuerza de los enlaces individuales puede ser importante, así como pueden serlo el tamaño exacto de varias partes básicas y su separación interatómica (p. ej., de modo que se engranen correctamente con otras partes básicas, entre otras preocupaciones). Dicho esto, los sistemas MLL pueden usar una variedad de materiales diferentes. Also, keep in mind that MLL systems do not need to be composed of a single type of material. Each of the various materials presents different advantages and disadvantages, including not only volumetric properties such as stiffness, thermal conductivity and thermal expansion, but, at the molecular scale, the strength of the individual bonds can be important, as can the exact size of various basic parts and their interatomic separation (e.g., so that they mesh correctly with other basic parts, among other concerns). That said, MLL systems can use a variety of different materials.

El tiempo estimado de equilibrio térmico de una realización ilustrativa a escala molecular que utiliza eslabones de diamante de aproximadamente 20 nm de longitud es de ~0,54 ps. Teniendo esto en cuenta, incluso unos pocos nanosegundos de equilibrio térmico hacen que la energía disipada debido al desequilibrio térmico sea esencialmente igual a 0. Por lo tanto, el tiempo de equilibrio térmico no es el factor limitante en el tiempo de conmutación para dicha realización. The estimated thermal equilibrium time of an illustrative molecular scale embodiment using approximately 20 nm long diamond links is ~0.54 ps. Taking this into account, even a few nanoseconds of thermal equilibrium makes the energy dissipated due to thermal imbalance essentially equal to 0. Therefore, the thermal equilibrium time is not the limiting factor in the switching time for such an embodiment.

En teoría, se puede llevar a cabo una operación reversible con una energía igual a 0, siempre y cuando las operaciones irreversibles den como resultado la disipación de ln(2) kBT de calor (~3 x 10-21 J a temperatura ambiente) por bit borrado, independientemente de la eficiencia del hardware (límite de Landauer). Para reducir la disipación de energía de un programa que se ejecuta en un ordenador convencional (irreversible), los elementos lógicos del hardware pueden rediseñarse para disipar menos energía durante el proceso computacional. Esto podría resultar en una mejora significativa de la eficiencia energética, ya que un ordenador convencional disipa mucho más de ln(2) kBT por bit borrado. De hecho, incluso cuando se ejecutan instrucciones que no borran ningún bit, un ordenador convencional disipa mucho más de ln(2) kBT por operación. Como consecuencia, es posible reducir la disipación de energía de un ordenador convencional sin prestar atención a la reversibilidad. In theory, a reversible operation can be carried out with energy equal to 0, as long as the irreversible operations result in the dissipation of ln(2) kBT of heat (~3 x 10-21 J at room temperature) per bit erased, regardless of hardware efficiency (Landauer limit). To reduce the power dissipation of a program running on a conventional (irreversible) computer, the logical elements of the hardware can be redesigned to dissipate less power during the computational process. This could result in a significant improvement in energy efficiency, since a conventional computer dissipates much more than ln(2) kBT per bit erased. In fact, even when executing instructions that do not clear any bits, a conventional computer dissipates much more than ln(2) kBT per operation. As a consequence, it is possible to reduce the power dissipation of a conventional computer without paying attention to reversibility.

Sin embargo, si se mejora la eficiencia energética de un ordenador hasta el punto de que el límite de Landauer se vuelve significativo, la reversibilidad se vuelve importante, ya que permite que los cálculos se lleven a cabo bajo el límite de Landauer. En consecuencia, los mecanismos MLL están diseñados para permitir la reversibilidad, aunque tanto los sistemas computacionales reversibles como los irreversibles pueden implementarse usando MLL. Téngase en cuenta que la reversibilidad puede ocurrir a varios niveles. Por ejemplo, una compuerta de Fredkin individual es reversible. Sin embargo, la reversibilidad también se puede implementar a niveles más altos, tal como cuando se usa una cascada retráctil para borrar una serie de cálculos anteriores. Dichas técnicas son bien conocidas en la literatura, junto con apropiados esquemas de sincronización, tales como la sincronización de Bennett y la sincronización de Landauer. However, if the energy efficiency of a computer is improved to the point that the Landauer limit becomes significant, reversibility becomes important, as it allows calculations to be carried out under the Landauer limit. Consequently, MLL mechanisms are designed to allow reversibility, although both reversible and irreversible computational systems can be implemented using MLL. Note that reversibility can occur at several levels. For example, a single Fredkin gate is reversible. However, reversibility can also be implemented at higher levels, such as when a retractable cascade is used to erase a series of previous calculations. Such techniques are well known in the literature, along with appropriate synchronization schemes, such as Bennett synchronization and Landauer synchronization.

Puertas lógicas convencionales Conventional logic gates

Los eslabones y las juntas rotatorias no solo sirven como partes básicas para mover los datos de un lugar a otro, sino que también constituyen la base para las puertas lógicas. Un hallazgo importante de MLL es que cualquier puerta lógica, reversible o irreversible, puede implementarse solo con eslabones y juntas rotatorias, fijadas a un bloque de anclaje para mantenerlas en su lugar (y que también puede servir como un disipador térmico). Links and rotating joints not only serve as basic parts for moving data from one place to another, but they also form the basis for logic gates. An important finding of MLL is that any logic gate, reversible or irreversible, can be implemented with only rotating links and joints, fixed to an anchor block to hold them in place (and which can also serve as a heatsink).

Por ejemplo, la Figura 3 muestra un mecanismo que puede servir como una puerta AND y como una puerta NAND. El anclaje 301 y la corredera lineal 302 sirven como la primera entrada a la puerta, conectándose a la junta rotatoria 306. El anclaje 303 y la corredera lineal 304 sirven como la segunda entrada a la puerta, conectándose a la junta rotatoria 307. Las juntas rotatorias ancladas 305 y 309, más las juntas rotatorias no ancladas 306, 307, 308, 310 y 311 se conectan a través de los eslabones adecuados. Y la salida 310 de AND y la salida 311 de NAND proporcionan el uso de la puerta como una puerta AND o una puerta NAND. El funcionamiento de esta puerta es el siguiente. Si la corredera lineal 302 empuja la junta rotatoria 306 (una entrada de “ 1” , mientras que ningún movimiento de la corredera lineal sería una entrada de 0) y la corredera lineal 304 empuja sobre la junta rotatoria 307, el efecto será el de impulsar hacia adelante la salida 310 de AND, produciendo una salida de “ 1” . Si cualquiera de las entradas (o ambas) es 0, la salida 310 de AND termina en la misma posición en la que inició, produciendo una salida de “0” Esto reproduce la tabla de verdad prevista de una puerta AND. For example, Figure 3 shows a mechanism that can serve as an AND gate and as a NAND gate. The anchor 301 and the linear slide 302 serve as the first entrance to the door, connecting to the rotary joint 306. The anchor 303 and the linear slide 304 serve as the second entrance to the door, connecting to the rotary joint 307. The joints Anchored rotating joints 305 and 309, plus non-anchored rotating joints 306, 307, 308, 310 and 311 are connected through the appropriate links. And the AND output 310 and NAND output 311 provide the use of the gate as an AND gate or a NAND gate. The operation of this door is as follows. If the linear slider 302 pushes on the rotary joint 306 (an input of “1”, while no movement of the linear slider would be an input of 0) and the linear slider 304 pushes on the rotary joint 307, the effect will be to push forward the AND output 310, producing an output of “1”. If either input (or both) is 0, the AND output 310 terminates at the same position it started, producing an output of “0.” This reproduces the expected truth table of an AND gate.

Dado que una puerta NAND es una puerta AND con salida invertida, el mismo mecanismo puede usarse como una puerta NAND leyendo la salida 311 de NAND en lugar de la salida 310 de AND, suponiendo que, dado que la salida 311 de NAND se mueve en la dirección opuesta a la salida 310 de AND, ningún movimiento en la salida 311 de NAND representa una salida de “ 1” y el movimiento a la izquierda representa un “ 0” . Por supuesto, para su uso solo como puerta AND, no es necesario que la salida NAND 311 esté presente. Y, para su uso solo como puerta NAND, la salida AND 310 puede ignorarse. Las dos se combinan con fines ilustrativos; no necesariamente se combinarían así en el uso real. Dado que NAND es conocida por ser una puerta universal (lo que significa que todas las demás puertas pueden crearse con la combinación apropiada de puertas NAND), este mecanismo por sí solo sería suficiente para crear cualquier lógica combinatoria. Sin embargo, puede ser más eficiente construir otros tipos de puertas directamente, en lugar de a través de la combinación de puertas NAND, y para demostrar otros tipos de puertas, que incluyen realizaciones alternativas de la puerta NAND, posteriormente se describen puertas lógicas adicionales. Since a NAND gate is an AND gate with inverted output, the same mechanism can be used as a NAND gate by reading NAND output 311 instead of AND output 310, assuming that since NAND output 311 moves in the direction opposite to the AND output 310, no movement at the NAND output 311 represents an output of “1” and movement to the left represents a “0”. Of course, for use as an AND gate only, the NAND output 311 does not need to be present. And, for use as a NAND gate only, AND output 310 can be ignored. The two are combined for illustrative purposes; they would not necessarily be combined like this in actual use. Since NAND is known to be a universal gate (meaning that all other gates can be created with the appropriate combination of NAND gates), this mechanism alone would be enough to create any combinatorial logic. However, it may be more efficient to build other types of gates directly, rather than through the combination of NAND gates, and to demonstrate other types of gates, including alternative realizations of the NAND gate, additional logic gates are described later.

La Figura 4 muestra una puerta NOR realizada solo con eslabones y juntas rotatorias. La entrada 1 comprende el anclaje deslizante lineal 401 y se conecta a través de una junta rotatoria al inversor 405. La entrada 2 comprende el anclaje deslizante lineal 403 y la corredera lineal 404 y se conecta a través de una junta rotatoria al inversor 406. Como en todas estas figuras, las correderas lineales están presentes como una comodidad esquemática o programática y deben considerarse como representativas de alguna conexión adecuada cuando estos mecanismos individuales se combinan en un conjunto de nivel superior. Los inversores 405 y 406 invierten una señal hacia la izquierda en una señal hacia la derecha y viceversa y se conectan a través de juntas rotatorias a la parte superior derecha del mecanismo 407 y a la parte inferior derecha del mecanismo 408, respectivamente. Debido a los inversores, cuando cualquiera de las entradas empuja hacia la derecha, el movimiento se invierte en un movimiento hacia la izquierda en la parte superior derecha del mecanismo 407 y la parte inferior derecha del mecanismo 408. La posición de la salida 409 replica la tabla de verdad prevista, con la posición ilustrada que representa un “ 1” y la posición donde la salida se mueve a la izquierda que representa un “ 0” . Si bien son posibles otras implementaciones, esta puerta muestra la naturaleza modular de los mecanismos. Una puerta NOR es equivalente a una puerta AND con ambas entradas invertidas. La porción superior derecha del mecanismo 407 y la porción inferior derecha del mecanismo 408 muestran, por lo tanto, una implementación alternativa de una puerta AND, con un inversor conectado a cada entrada para crear en su lugar una puerta NOR. Quitar los inversores y conectar las entradas directamente a las ubicaciones apropiadas en la porción superior e inferior derecha del mecanismo daría como resultado una puerta AND. Además, como se muestra en la Figura 3, este mecanismo también podría servir como una puerta NAND al invertir la salida de la puerta AND. Finalmente, si los inversores se dejan en su lugar, pero la salida se invierte, la puerta NOR se convierte en una puerta OR. Figure 4 shows a NOR gate made with only rotating links and joints. Input 1 comprises the linear sliding anchor 401 and is connected through a rotary joint to the inverter 405. Input 2 comprises the linear sliding anchor 403 and the linear slide 404 and is connected through a rotary joint to the inverter 406. As In all of these figures, the linear slides are present as a schematic or programmatic convenience and should be considered as representing some proper connection when these individual mechanisms are combined into a higher-level assembly. Inverters 405 and 406 invert a leftward signal into a rightward signal and vice versa and are connected via rotary joints to the upper right portion of mechanism 407 and the lower right portion of mechanism 408, respectively. Because of the inverters, when either input pushes to the right, the motion is reversed into a counterclockwise motion at the top right of mechanism 407 and the bottom right of mechanism 408. The position of output 409 replicates the predicted truth table, with the illustrated position representing a “1” and the position where the output moves to the left representing a “0”. While other implementations are possible, this gate shows the modular nature of the mechanisms. A NOR gate is equivalent to an AND gate with both inputs inverted. The upper right portion of mechanism 407 and the lower right portion of mechanism 408 therefore show an alternative implementation of an AND gate, with an inverter connected to each input to create an NOR gate instead. Removing the inverters and connecting the inputs directly to the appropriate locations on the top and bottom right portion of the mechanism would result in an AND gate. Furthermore, as shown in Figure 3, this mechanism could also serve as a NAND gate by inverting the output of the AND gate. Finally, if the inverters are left in place, but the output is inverted, the NOR gate becomes an OR gate.

Finalmente, la Figura 5 muestra una puerta XOR implementada utilizando solo eslabones y juntas rotatorias. La entrada 1 comprende una junta rotatoria 501 anclada y una corredera lineal 502, mientras que la entrada 2 comprende una junta rotatoria 504 anclada y una corredera lineal 503. La entrada 1 y la entrada 2 se acoplan a la salida 505 a través de una serie de eslabones, juntas rotatorias ancladas y juntas rotatorias no ancladas. El movimiento, o la falta del mismo, en la salida 505 replica la tabla de verdad prevista para XOR. Finally, Figure 5 shows an XOR gate implemented using only rotating links and joints. Inlet 1 comprises an anchored rotary joint 501 and a linear slider 502, while inlet 2 comprises an anchored rotary joint 504 and a linear slider 503. Inlet 1 and inlet 2 couple to outlet 505 through a series of links, anchored rotating joints and unanchored rotating joints. The movement, or lack thereof, at output 505 replicates the truth table intended for XOR.

Lo anterior demuestra que cualquier puerta lógica puede implementarse directamente utilizando solo eslabones y juntas rotatorias. Téngase en cuenta que al transferir los datos de entrada junto con la salida prevista de una puerta lógica de modo que no se pierden datos durante el cálculo, las puertas lógicas que tradicionalmente se consideran irreversibles pueden hacerse reversibles. También existen puertas lógicas muy conocidas que son inherentemente reversibles, tales como la puerta de Toffoli y la puerta de Fredkin, que también se pueden implementar de muchas formas utilizando MLL. The above shows that any logic gate can be directly implemented using only rotating links and joints. Note that by transferring input data along with the intended output of a logic gate so that no data is lost during the calculation, logic gates that are traditionally considered irreversible can be made reversible. There are also well-known logic gates that are inherently reversible, such as the Toffoli gate and the Fredkin gate, which can also be implemented in many ways using MLL.

Puertas lógicas reversibles Reversible logic gates

La Figura 6 muestra una puerta de Fredkin (también llamada puerta CSWAP), una puerta reversible universal muy conocida. Las tres entradas a la puerta 601, 602 y 603 se conectan, a través de una serie de eslabones, juntas rotatorias ancladas y juntas rotatorias no ancladas, a las salidas 604, 605 y 606. Puede ser interesante señalar que esta implementación particular de una puerta de Fredkin se compone de tres puertas XOR y una puerta AND, más algunas líneas de datos bifurcadas utilizadas para replicar datos de modo que puedan usarse en más de un lugar dentro de la puerta. Esto demuestra no solo un enrutamiento de datos más sofisticado respecto a las puertas anteriores, sino que la lógica reversible puede construirse a partir de la lógica irreversible. Una puerta de Fredkin no borra ningún dato y, por lo tanto, no necesita estar sujeta al límite de Landauer. Figure 6 shows a Fredkin gate (also called CSWAP gate), a well-known universal reversible gate. The three gate inputs 601, 602 and 603 connect, through a series of links, anchored rotating joints and unanchored rotating joints, to the outputs 604, 605 and 606. It may be interesting to note that this particular implementation of a Fredkin gate is made up of three XOR gates and one AND gate, plus some branched data lines used to replicate data so that it can be used in more than one place within the gate. This demonstrates not only more sophisticated data routing compared to previous gates, but that reversible logic can be built from irreversible logic. A Fredkin gate does not erase any data and therefore does not need to be subject to the Landauer limit.

Teniendo en cuenta los ejemplos de puertas lógicas anteriores, resultará obvio que cualquier tipo de puerta lógica necesaria para implementar un sistema de computación completo de propósito general, reversible o irreversible, puede implementarse dentro de los paradigmas de diseño de MLL, utilizando solo eslabones y juntas rotatorias. Téngase en cuenta que cada uno de los ejemplos de puerta lógica anteriores son mecanismos coplanarios. Esto significa que funcionan en uno o más planos paralelos, y el movimiento se produce paralelo al plano de la imagen. Una de las ventajas de los diseños coplanarios es que son fáciles de representar en papel, para proporcionar al lector una comprensión intuitiva de cómo funcionan dichos mecanismos. Esta no es la única forma de implementar puertas lógicas, o cualquier mecanismo MLL, y en la presente memoria también se analizan mecanismos que se mueven en más de un plano. Téngase en cuenta también que en los mecanismos coplanarios, las líneas ocultas o de puntos generalmente no se utilizan para mostrar cuáles eslabones están detrás de cuáles otros eslabones. Esto se debe a que en gran medida no tiene importancia. En la mayoría de los casos, un eslabón dado podría estar encima o debajo de algún otro eslabón, y la función del mecanismo no se vería afectada, con sujeción a consideraciones tales como que los eslabones no choquen entre sí durante el movimiento. Tal vez se desee considerar también cuestiones tales como la disposición de los eslabones de una manera que minimice la distancia a un disipador de calor, o maximice la resistencia o rigidez del mecanismo, pero estos diseños ilustrativos están destinados a ser didácticos, no para proporcionar una implementación óptima. Las implementaciones optimizadas podrían diferir según los requisitos de un sistema computacional particular, incluidos los tipos de cálculos que se realizarán, la velocidad computacional deseada, el tamaño o la masa deseada del sistema, los materiales a partir de los cuales se fabrican los mecanismos y el entorno operativo (p. ej., temperaturas de funcionamiento). Given the logic gate examples above, it will be obvious that any type of logic gate needed to implement a complete general-purpose computing system, reversible or irreversible, can be implemented within MLL design paradigms, using only links and joints. rotary. Note that each of the logic gate examples above are coplanar mechanisms. This means that they operate in one or more parallel planes, and movement occurs parallel to the image plane. One of the advantages of coplanar designs is that they are easy to represent on paper, to provide the reader with an intuitive understanding of how such mechanisms work. This is not the only way to implement logic gates, or any MLL mechanism, and mechanisms that move in more than one plane are also discussed here. Note also that in coplanar mechanisms, hidden or dotted lines are generally not used to show which links are behind which other links. This is because it is largely unimportant. In most cases, a given link could be above or below some other link, and the function of the mechanism would not be affected, subject to considerations such as the links not colliding with each other during movement. You may also want to consider issues such as arranging the links in a way that minimizes the distance to a heat sink, or maximizes the strength or rigidity of the mechanism, but these illustrative designs are intended to be didactic, not to provide a guide. optimal implementation. Optimized implementations could differ depending on the requirements of a particular computing system, including the types of calculations to be performed, the desired computational speed, the desired size or mass of the system, the materials from which the mechanisms are made, and the operating environment (e.g. operating temperatures).

Cerraduras Locks

Ya se han descrito varias formas en las que pueden interactuar múltiples eslabones o líneas de datos. Por ejemplo, pueden compartir datos vinculando sus movimientos físicos entre sí alrededor de una junta rotatoria común. Y los eslabones o líneas de datos pueden proporcionar entrada/salida para una puerta lógica (por no mencionar su uso dentro de una puerta lógica). Sin embargo, métodos adicionales de interacción pueden ser útiles para implementar un sistema de computación completo. Several ways in which multiple links or lines of data can interact have already been described. For example, they can share data by linking their physical movements to each other around a common rotating joint. And data links or lines can provide input/output for a logic gate (not to mention use within a logic gate). However, additional methods of interaction can be useful to implement a complete computing system.

Otra forma en que múltiples eslabones o líneas pueden interactuar es a través de un mecanismo que haga que los eslabones interfieran con los movimientos de los demás. Es decir, la posición de un primer eslabón puede permitir o evitar que uno u otros más eslabones se muevan, y viceversa. Por ejemplo, considérese un mecanismo de dos entradas, donde cada entrada puede ser 0 o 1. El diseño puede ser tal que cuando ambas entradas son 0, una de las entradas podría convertirse en 1, pero cuando una de las entradas es 1, la otra se bloquea en su lugar y, por lo tanto, debe permanecer en 0. En este ejemplo, más de una entrada no puede convertirse en 1 al mismo tiempo, si bien son posibles otros diseños. Este mecanismo se denomina cerradura. Es común que una cerradura tenga entradas y salidas, al igual que una puerta lógica. Por ejemplo, una cerradura de 2 entradas tiene 2 entradas, y puede tener 0, 1 o 2 salidas. Cada línea de entrada a la cerradura puede continuar como una línea de salida, o puede terminar en la cerradura. Another way that multiple links or lines can interact is through a mechanism that causes the links to interfere with each other's movements. That is, the position of a first link can allow or prevent one or more links from moving, and vice versa. For example, consider a two-input mechanism, where each input can be 0 or 1. The design can be such that when both inputs are 0, one of the inputs could become 1, but when one of the inputs is 1, the another is locked in place and must therefore remain at 0. In this example, more than one input cannot become 1 at a time, although other designs are possible. This mechanism is called a lock. It is common for a lock to have inputs and outputs, just like a logic gate. For example, a 2-input lock has 2 inputs, and can have 0, 1, or 2 outputs. Each input line to the lock can continue as an output line, or it can end at the lock.

Uno de los usos de una cerradura es crear un punto de anclaje condicional. Como ya se ha explicado, una junta rotatoria puede anclarse o no anclarse, frecuentemente dependiendo de si la junta rotatoria se fija a un bloque de anclaje. Sin embargo, fijar una junta rotatoria a un bloque de anclaje no es la única manera de hacerla inmóvil. Más bien, una junta rotatoria puede conectarse a uno o más eslabones que, debido a la configuración del uno o más eslabones (ya sea que esta configuración es permanente o transitoria), no permite el movimiento de la junta rotatoria. Por ejemplo, considérese un triángulo formado por tres eslabones. Cada eslabón se fija a los otros dos eslabones mediante juntas rotatorias en cada extremo. Si dos de estas juntas rotatorias también se conectan a un bloque de anclaje, incluso si la tercera junta rotatoria no se conecta a un bloque de anclaje, esta se ancla efectivamente, ya que todo el triángulo es rígido. Ninguno de los eslabones del triángulo puede moverse el uno con respecto al otro, o con respecto al bloque de anclaje. En este ejemplo simple, suponiendo que no sea posible cambiar la configuración del eslabón, la tercera junta rotatoria se ancla efectivamente. Existen situaciones en las que es útil tener una junta rotatoria a veces anclada y a veces no anclada. Las cerraduras permiten esto: El lado de la cerradura que se bloquea no puede moverse, por lo que mientras esté bloqueado, puede actuar efectivamente como un punto de anclaje. La utilidad de los puntos de anclaje condicionales se explicará más adelante. Otro aspecto útil de algunas realizaciones de cerraduras es que, por ejemplo, una cerradura binaria con dos entradas puede tener tres estados: (0,0), también denominado “ en blanco” , (0,1) y (1,0). El estado en blanco puede ser útil para guardar el estado y permitir la computación reversible, como se puede ver en la presente memoria en la descripción de cómo se puede implementar un registro de desplazamiento ilustrativo. One of the uses of a lock is to create a conditional anchor point. As already explained, a rotary joint can be anchored or unanchored, often depending on whether the rotary joint is secured to an anchor block. However, securing a rotating joint to an anchor block is not the only way to make it immobile. Rather, a rotating joint may be connected to one or more links that, due to the configuration of the one or more links (whether this configuration is permanent or temporary), does not allow movement of the rotating joint. For example, consider a triangle made up of three links. Each link is attached to the other two links by rotating joints at each end. If two of these rotating joints are also connected to an anchor block, even if the third rotating joint is not connected to an anchor block, it is effectively anchored, since the entire triangle is rigid. None of the links of the triangle can move with respect to each other, or with respect to the anchor block. In this simple example, assuming it is not possible to change the link configuration, the third rotary joint is effectively anchored. There are situations where it is useful to have a rotating joint that is sometimes anchored and sometimes not anchored. Locks allow this: The side of the lock that is locked cannot move, so as long as it is locked, it can effectively act as an anchor point. The usefulness of conditional anchor points will be explained later. Another useful aspect of some lock embodiments is that, for example, a binary lock with two inputs can have three states: (0,0), also called "blank", (0,1) and (1,0). The blank state can be useful for saving state and allowing reversible computation, as can be seen herein in the description of how an illustrative shift register can be implemented.

Como ocurre con todas las realizaciones de MLL, hay varias formas de implementar cerraduras utilizando sólo eslabones y juntas rotatorias. La Figura 7 y la Figura 8 representan una cerradura coplanaria de dos entradas en dos estados diferentes. La Figura 7 muestra la posición de la cerradura donde ambas entradas son 0, mientras que la Figura 8 muestra la posición de la cerradura cuando una de las entradas es 1. La entrada superior 701 y la entrada inferior 702 se conectan a través de juntas rotatorias a las mitades superior e inferior de la cerradura, respectivamente. Cada mitad de la cerradura comprende un eslabonamiento de 4 barras, que comprende los eslabones 703, 705 y 712 en la mitad superior, y los eslabones 704, 706 y 713 en la mitad inferior. Además, cuatro eslabones diagonales 707, 708, 710 y 711, sujetan un eslabón adicional 709, que se conecta a los dos eslabonamientos de 4 barras a través de juntas rotatorias no ancladas. El funcionamiento del mecanismo es el siguiente: Cuando una de las entradas 701 o 702 se mueve de 0 a 1, el eslabonamiento de 4 barras respectivo se mueve. El movimiento del eslabonamiento de 4 barras, a través de los eslabones 707 y 710 para la mitad superior, o los eslabones 708 y 711 para la mitad inferior, provoca la rotación del eslabón 709. El eslabón 709, teniendo la misma longitud que los eslabones 703, 704, 712 y 713, y estando inicialmente en el mismo ángulo, permite que cualquiera de las entradas asuma un valor de 1 al girar a través del mismo arco que debe seguir el eslabonamiento de 4 barras cuando es movido por una entrada. As with all embodiments of MLL, there are several ways to implement locks using only links and rotating joints. Figure 7 and Figure 8 depict a two-input coplanar lock in two different states. Figure 7 shows the position of the lock where both inputs are 0, while Figure 8 shows the position of the lock when one of the inputs is 1. The upper input 701 and the lower input 702 are connected through rotating joints to the upper and lower halves of the lock, respectively. Each half of the lock comprises a 4-bar linkage, comprising links 703, 705 and 712 in the upper half, and links 704, 706 and 713 in the lower half. Additionally, four diagonal links 707, 708, 710 and 711, hold an additional link 709, which connects to the two 4-bar links through unanchored rotary joints. The operation of the mechanism is as follows: When one of the inputs 701 or 702 moves from 0 to 1, the respective 4-bar linkage moves. Movement of the 4-bar linkage, through links 707 and 710 for the upper half, or links 708 and 711 for the lower half, causes rotation of link 709. Link 709, having the same length as the links 703, 704, 712 and 713, and being initially at the same angle, allows any of the inputs to assume a value of 1 when rotating through the same arc that the 4-bar linkage must follow when moved by an input.

Sin embargo, una vez que una entrada ha movido el eslabonamiento de 4 barras superior o inferior, junto con el eslabón 709, el otro eslabonamiento de 4 barras (y, por lo tanto, su entrada/salida asociada) ya no está libre de moverse. La razón es que el eslabón 709 ahora no es paralelo, dependiendo de qué entrada se estableció en 1, a los eslabones 703 y 712, o a los eslabones 704 y 713. Debido a esto, la rotación del eslabón 709 no seguirá la del segundo eslabonamiento de 4 barras, en caso de que intente moverse. En esencia, uno de los eslabones (eslabón 705 para la parte superior, si aún no se ha movido, o el eslabón 706 para la parte inferior, si aún no se ha movido) intentará moverse a través de dos arcos diferentes a la vez, provocando el bloqueo del mecanismo. Esta es esencialmente una versión coplanaria de juntas rotatorias que no son coaxiales (descritas en otra parte en la presente memoria), pero en lugar de que los ejes de juntas rotatorias cambien (lo que sucede, pero estos ejes nunca fueron coaxiales en el sentido literal para empezar), el punto aquí es que el arco a través del cual se moverían los eslabones conectados cambia. Una vez que una de las entradas se establece en 1, el único movimiento permitido es volver a establecer esa entrada en 0 de modo que cualquiera de los lados (pero no ambos simultáneamente) son nuevamente libres de moverse a la posición “ 1” . However, once an input has moved the upper or lower 4-bar linkage, along with link 709, the other 4-bar linkage (and therefore its associated input/output) is no longer free to move. . The reason is that link 709 is now not parallel, depending on which input was set to 1, to links 703 and 712, or to links 704 and 713. Because of this, the rotation of link 709 will not follow that of the second link of 4 bars, in case it tries to move. Essentially, one of the links (link 705 for the top, if it hasn't moved yet, or link 706 for the bottom, if it hasn't moved yet) will attempt to move through two different arcs at once, causing the mechanism to lock. This is essentially a coplanar version of rotary joints that are not coaxial (described elsewhere herein), but instead of the rotating joint axes changing (which they do, but these axes were never coaxial in the literal sense to begin with), the point here is that the arc through which the connected links would move changes. Once one of the inputs is set to 1, the only movement allowed is to set that input back to 0 so that either side (but not both simultaneously) are again free to move to position “1”.

El diseño de la cerradura de la Figura 7 tiene la propiedad de que se bloquea rápidamente y se desbloquea lentamente. Por ejemplo, prácticamente cualquier movimiento de una de las entradas bloquea la otra entrada. Y, una vez que se ha establecido una entrada en 1, bloqueando el mecanismo, esa entrada debe regresar esencialmente a 0 antes de que la cerradura se desbloquee. Puede ser deseable diseñar cerraduras que tengan propiedades de bloqueo más graduales, y esto puede tener ventajas que incluyen cambios más suaves en la entropía (dando como resultado una reducción de la disipación de energía), una fuerza máxima reducida en los mecanismos a una dada velocidad de conmutación, y un tiempo reducido entre ciclos de bloqueo/desbloqueo, ya que existe menos preocupación de que una entrada deba poder establecerse en casi exactamente 0 antes de que la otra entrada pueda comenzar a moverse. La inclusión de resortes en las conexiones a una cerradura también puede ayudar en el funcionamiento de una cerradura, ya que el mecanismo puede entonces accionarse según se desee incluso en presencia de pequeños errores de posición que, de otro modo, bloquearían un mecanismo que se bloquea casi instantáneamente cuando no está exactamente en la posición desbloqueada (es decir, en “ 0” ). Otro método para lograr esto es reemplazar el eslabón 709 con un resorte de la misma longitud (o añadir un resorte y acortar el eslabón) que tenga una constante de resorte adecuadamente elegida. Si el eslabón 709 es, o incorpora, un resorte muy rígido, la cerradura solo permitirá pequeños errores de posición. Si el eslabón 709 es, o incorpora, un resorte más flexible, la cerradura permitirá errores de posición más grandes. The lock design in Figure 7 has the property that it locks quickly and unlocks slowly. For example, virtually any movement of one input blocks the other input. And, once an input has been set to 1, locking the mechanism, that input must essentially return to 0 before the lock will unlock. It may be desirable to design locks that have more gradual locking properties, and this may have advantages including smoother changes in entropy (resulting in reduced energy dissipation), reduced maximum force on the mechanisms at a given speed of switching, and a reduced time between lock/unlock cycles, as there is less concern that one input must be able to be set to almost exactly 0 before the other input can start moving. The inclusion of springs in the connections to a lock can also aid in the operation of a lock, as the mechanism can then be actuated as desired even in the presence of small positional errors that would otherwise block a locking mechanism. almost instantly when it is not exactly in the unlocked position (i.e. at “0”). Another method of accomplishing this is to replace link 709 with a spring of the same length (or add a spring and shorten the link) that has a properly chosen spring constant. If link 709 is, or incorporates, a very stiff spring, the lock will only allow small positional errors. If link 709 is, or incorporates, a more flexible spring, the lock will allow larger position errors.

La Figura 9 y la Figura 10 representan una cerradura donde, debido al cambio gradual del par de torsión a medida que el mecanismo pasa de desbloqueado a bloqueado, la acción de bloqueo es más gradual. La Figura 9 muestra el bloqueo cuando las entradas 901 y 902 están en 0, mientras que la Figura 10 muestra el estado del bloqueo después de que la entrada 901 se ha establecido en 1 mientras la entrada 902 sigue estando en 0. Las entradas 901 y 902 se conectan al resto del mecanismo a través de juntas rotatorias no ancladas. Téngase en cuenta que el establecimiento de una entrada en 1 da como resultado que la otra entrada retroceda ligeramente en este diseño. El sistema en general puede diseñarse para permitir esto, o el movimiento hacia atrás podría mantenerse en el interior del mecanismo, tal como utilizando resortes que absorban dicho movimiento en lugar de transmitirlos directamente a otros eslabones. Figure 9 and Figure 10 depict a lock where, due to the gradual change in torque as the mechanism goes from unlocked to locked, the locking action is more gradual. Figure 9 shows blocking when inputs 901 and 902 are at 0, while Figure 10 shows the blocking status after input 901 has been set to 1 while input 902 is still at 0. Inputs 901 and 902 are connected to the rest of the mechanism through unanchored rotating joints. Note that setting one input to 1 results in the other input moving back slightly in this layout. The overall system can be designed to allow this, or the rearward movement could be maintained within the mechanism, such as by using springs that absorb such movement rather than transmitting it directly to other links.

Al estar hechos de las mismas partes básicas, todos los mecanismos MLL tienden a compartir problemas similares. Los conceptos de cambios de entropía repentinos frente a los graduales, limitación de las fuerzas máximas y diseño de mecanismos para permitir una latencia reducida entre las fases de reloj pueden aplicarse a cualquier mecanismo MLL, no solo a las cerraduras. Being made of the same basic parts, all MLL mechanisms tend to share similar problems. The concepts of sudden versus gradual entropy changes, limiting maximum forces, and designing mechanisms to allow reduced latency between clock phases can be applied to any MLL mechanism, not just locks.

Mecanismos no coplanarios Non-coplanar mechanisms

Muchos de los mecanismos en la presente memoria son de diseño coplanario. Si bien se da preferencia a los diseños coplanarios para mayor claridad de presentación, los mecanismos MLL no necesitan ser coplanarios. Cualquier mecanismo m Ll puede implementarse de una manera que no sea coplanaria. Por ejemplo, la Figura 11 representa una cerradura, construida con eslabones y juntas rotatorias, que no es coplanaria. Más bien, como se explicará posteriormente, las juntas rotatorias permiten que los eslabones se muevan perpendiculares, en lugar de paralelos, a la cara del bloque de anclaje. Many of the mechanisms herein are of coplanar design. While preference is given to coplanar designs for clarity of presentation, MLL mechanisms do not need to be coplanar. Any m Ll mechanism can be implemented in a way that is not coplanar. For example, Figure 11 represents a lock, constructed with links and rotary joints, that is not coplanar. Rather, as will be explained later, rotating joints allow the links to move perpendicular, rather than parallel, to the face of the anchor block.

En la Figura 11 y las vistas posteriores del mismo mecanismo, se hará referencia al eslabón 1101 como Link1, al eslabón 1102 como Link2, al eslabón 1103 como Link3, al espacio 1104 como OpenJoint4, al espacio 1105 como OpenJoint5, al espacio 1106 como OpenJoint6, al espacio 1107 como OpenJoint7, a la junta rotatoria 1108 como Joint1, a la junta rotatoria 1109 como Joint2, a la junta rotatoria 1110 como Joint3, a la junta rotatoria 1111 como Joint4, y al bloque de anclaje 1112 como Anchor Block. El bloque de anclaje proporciona puntos de anclaje para las juntas rotatorias Joint1 y Joint4, que se conectan a Link1 y Link2, respectivamente. Link1 se conecta a Link2 mediante Joint2, y Link3 se conecta a Link2 a través de Joint3. Todas las juntas y Link1, Link2 y Link3 se muestran en la posición desbloqueada. In Figure 11 and subsequent views of the same mechanism, link 1101 will be referred to as Link1, link 1102 as Link2, link 1103 as Link3, space 1104 as OpenJoint4, space 1105 as OpenJoint5, space 1106 as OpenJoint6. , to space 1107 as OpenJoint7, to rotary joint 1108 as Joint1, to rotary joint 1109 as Joint2, to rotary joint 1110 as Joint3, to rotary joint 1111 as Joint4, and to anchor block 1112 as Anchor Block. The anchor block provides anchor points for the Joint1 and Joint4 rotary joints, which connect to Link1 and Link2, respectively. Link1 connects to Link2 through Joint2, and Link3 connects to Link2 through Joint3. All joints and Link1, Link2 and Link3 are shown in the unlocked position.

En la posición desbloqueada, que puede denominarse “ (0,0)” , el eje de Joint3 se alinea con el eje de Joint1, y el eje de Joint2 se alinea con el eje de Joint4. Por lo tanto, Joint1 y Joint3 pueden denominarse coaxiales, al igual que Joint2 y Joint4. Si se girara Link1 o Link3, una de sus juntas rotatorias se movería fuera de su plano actual y, por lo tanto, dependiendo de qué eslabón se giró, algunas de las juntas ya no serían coaxiales entre sí (una condición denominada “ no coaxial” ). Los conceptos de coaxial y no coaxial son importantes ya que, en esta realización, estas condiciones son las que definen la posición bloqueada frente a la desbloqueada. La razón de esto es que en la posición desbloqueada, Link1 y Link3 tienen cada uno un eje alrededor del cual pueden girar. Para Link1, se trata del eje definido por Joint1 y Joint3 cuando son coaxiales. Para Link3, se trata del eje definido por Joint2 y Joint4 cuando son coaxiales. Cuando estos conjuntos de juntas no están en la posición coaxial, la falta de alineación entre los dos ejes impide el giro, ya que un objeto rígido con un grado de libertad no puede girar simultáneamente alrededor de dos ejes diferentes. Como resultado, cuando Joint1 y Joint3 no son coaxiales, o Joint2 y Joint4 son no coaxiales, la cerradura se bloquea y el único movimiento permitido es volver a la posición desbloqueada. In the unlocked position, which may be referred to as “(0,0)”, the axis of Joint3 is aligned with the axis of Joint1, and the axis of Joint2 is aligned with the axis of Joint4. Therefore, Joint1 and Joint3 can be called coaxial, as can Joint2 and Joint4. If Link1 or Link3 were rotated, one of their rotating joints would move out of its current plane and therefore, depending on which link was rotated, some of the joints would no longer be coaxial with each other (a condition called “non-coaxial”). ). The concepts of coaxial and non-coaxial are important since, in this embodiment, these conditions are what define the locked versus unlocked position. The reason for this is that in the unlocked position, Link1 and Link3 each have an axis around which they can rotate. For Link1, this is the axis defined by Joint1 and Joint3 when they are coaxial. For Link3, this is the axis defined by Joint2 and Joint4 when they are coaxial. When these joint assemblies are not in the coaxial position, the lack of alignment between the two axes prevents rotation, since a rigid object with one degree of freedom cannot rotate simultaneously around two different axes. As a result, when Joint1 and Joint3 are not coaxial, or Joint2 and Joint4 are not coaxial, the lock is locked and the only movement allowed is to return to the unlocked position.

Téngase en cuenta que técnicamente, prácticamente cualquier cantidad de giro de Link1 o Link3 crearía una condición bloqueada. Sin embargo, con fines de explicación, las figuras posteriores muestran aproximadamente 30 grados de rotación. Esto es arbitrario, y se podría utilizar cualquier cantidad de giro que permita que el sistema actúe de manera fiable (al igual que cualquier otro ángulo, a diferencia de un ángulo perfectamente perpendicular a la cara del bloque de anclaje). Análogamente a la cerradura coplanaria, si Link2 se sustituyera por un resorte de longitud similar, la tolerancia de la cerradura para errores posicionales podría aumentarse en sus entradas, en la medida que se considere adecuada. Teniendo en cuenta esta explicación, resultará obvio que si Link1 o Link3 giraran una cantidad adecuada, cualquier eslabón que no hubiera girado estaría impedido de hacerlo hasta que el eslabón girado regresara a la posición desbloqueada. Note that technically, virtually any amount of Link1 or Link3 turning would create a locked condition. However, for explanation purposes, the later figures show approximately 30 degrees of rotation. This is arbitrary, and any amount of twist could be used that allows the system to act reliably (just like any other angle, as opposed to an angle perfectly perpendicular to the face of the anchor block). Analogously to the coplanar lock, if Link2 were replaced by a spring of similar length, the lock's tolerance for positional errors could be increased at its inputs to the extent deemed appropriate. Given this explanation, it will be obvious that if Link1 or Link3 were to rotate an appropriate amount, any link that had not rotated would be prevented from doing so until the rotated link returned to the unlocked position.

Para lograr este giro, OpenJoint4 y OpenJoint6 son puntos de conexión donde otros eslabones podrían conectarse a Link3, y OpenJoint5 y OpenJoint7 son puntos de conexión donde otros eslabones podrían conectarse a Link1. Estos otros eslabones pueden servir como entradas para la cerradura. Link1 y Link3 tienen cada uno un par de conexiones (OpenJoint5 y OpenJoint7, y OpenJoint4 y OpenJoint6, respectivamente) para no permitir cuatro entradas (aunque eso es posible, esa no es la intención de este diseño particular), sino más bien permitir que una línea de entrada continúe más allá de la cerradura si lo desea. Por ejemplo, OpenJoint5 puede considerarse como una continuación de OpenJoint7 (o viceversa) y OpenJoint4 puede considerarse como una continuación de OpenJoint6 (o viceversa). To achieve this twist, OpenJoint4 and OpenJoint6 are connection points where other links could connect to Link3, and OpenJoint5 and OpenJoint7 are connection points where other links could connect to Link1. These other links can serve as entrances for the lock. Link1 and Link3 each have a pair of connections (OpenJoint5 and OpenJoint7, and OpenJoint4 and OpenJoint6, respectively) so as not to allow four inputs (although that is possible, that is not the intention of this particular design), but rather to allow one entry line continue past the lock if desired. For example, OpenJoint5 can be considered a continuation of OpenJoint7 (or vice versa) and OpenJoint4 can be considered a continuation of OpenJoint6 (or vice versa).

La Figura 12 muestra una vista superior del mismo mecanismo de la Figura 11, siendo visibles en esta vista solo el eslabón 1101 y el bloque de anclaje 1112. Figure 12 shows a top view of the same mechanism as Figure 11, with only the link 1101 and the anchor block 1112 being visible in this view.

La Figura 13 muestra el mismo mecanismo de la Figura 11, pero en una posición bloqueada que podría denominarse “ (1,0)” . En este estado, 1101 ha rotado, a través de las juntas rotatorias 1108 y 1110, haciendo que las juntas rotatorias 1109 y 1111 no sean coaxiales. Debido a que 1109 y 1111 no son coaxiales, 1103 ya no es libre de rotar, de ahí el estado bloqueado. La rotación de 1101 se lograría mediante otros eslabones (no representados) conectados a 1105 y/o 1107. Figure 13 shows the same mechanism as Figure 11, but in a locked position that could be called “(1,0)”. In this state, 1101 has rotated, through the rotary joints 1108 and 1110, making the rotary joints 1109 and 1111 non-coaxial. Because 1109 and 1111 are not coaxial, 1103 is no longer free to rotate, hence the locked state. The rotation of 1101 would be achieved by other links (not shown) connected to 1105 and/or 1107.

La Figura 14 muestra una vista superior del estado del mecanismo en la Figura 13. En esta vista superior, se puede ver que 1101 ha girado aproximadamente 30 grados en sentido antihorario. 1102 no puede verse en esta vista, pero giraría con 1101 en este caso, revelando 1103 por debajo de él. Téngase en cuenta que la dirección de rotación es arbitraria. Tanto en el sentido horario como en el sentido antihorario tendrían el mismo efecto de bloquear la cerradura. Esto también es cierto para 1103. Figure 14 shows a top view of the state of the mechanism in Figure 13. In this top view, it can be seen that 1101 has rotated approximately 30 degrees counterclockwise. 1102 cannot be seen in this view, but it would rotate with 1101 in this case, revealing 1103 below it. Note that the direction of rotation is arbitrary. Both clockwise and counterclockwise would have the same effect of locking the lock. This is also true for 1103.

La Figura 15 muestra el mismo mecanismo de la Figura 13, pero en una posición bloqueada debido a la rotación de 1103 en lugar de 1102. Esta posición podría llamarse “ (0,1)” En este estado, 1103 ha rotado, a través de las juntas rotatorias 1109 y 1111, haciendo que las juntas rotatorias 1108 y 1110 no sean coaxiales, bloqueando así 1101. La rotación de 1103 sería provocada por otros eslabones (no mostrados) conectados a una o más de las OpenJoints, 1104 y 1106, de 1103. Figure 15 shows the same mechanism as Figure 13, but in a locked position due to the rotation of 1103 instead of 1102. This position could be called “(0,1)” In this state, 1103 has rotated, through the rotating joints 1109 and 1111, making the rotating joints 1108 and 1110 non-coaxial, thus locking 1101. The rotation of 1103 would be caused by other links (not shown) connected to one or more of the OpenJoints, 1104 and 1106, of 1103.

La Figura 16 muestra una vista superior del estado del mecanismo en la Figura 15. En esta vista superior se puede ver que 1103 ha girado aproximadamente 30 grados en el sentido horario, mientras que 1101 todavía está en su posición original. Como con 1101, la dirección de rotación es arbitraria. Ya sea en el sentido horario o en el sentido antihorario permitiría un funcionamiento adecuado de la cerradura, y se podrían usar uno o ambos. Figure 16 shows a top view of the state of the mechanism in Figure 15. In this top view it can be seen that 1103 has rotated approximately 30 degrees clockwise, while 1101 is still in its original position. As with 1101, the direction of rotation is arbitrary. Either clockwise or counterclockwise would allow proper operation of the lock, and one or both could be used.

Teniendo en cuenta estos ejemplos y los principios de MLL, muchos otros diseños (para cerraduras y todos los demás mecanismos MLL) resultarán obvios. Las implementaciones específicas que funcionan de manera más eficiente pueden depender del caso, y las realizaciones ilustrativas en la presente memoria no se proporcionan como ejemplos de mecanismos optimizados, sino más bien para demostrar cómo se pueden crear todos los elementos necesarios para un sistema computacional generalizable utilizando solo eslabones y juntas rotatorias, y que incluso dentro de las restricciones de solo utilizar eslabones y juntas rotatorias, se encuentran disponibles muchas opciones lógicas y mecánicas diferentes, que incluyen prácticamente cualquier tipo de puertas lógicas, reversibles e irreversibles, y mecanismos que funcionan en gran medida en dos dimensiones (“ coplanarios” ), o tres dimensiones (no coplanarios), completos con un robusto enrutamiento de datos, en cualquier ángulo que se desee. Given these examples and the principles of MLL, many other designs (for locks and all other MLL mechanisms) will become obvious. The specific implementations that work most efficiently may depend on the case, and the illustrative embodiments herein are not provided as examples of optimized mechanisms, but rather to demonstrate how all the elements necessary for a generalizable computational system can be created using only rotating links and joints, and that even within the restrictions of only using rotating links and joints, many different logical and mechanical options are available, including virtually any type of logic gates, reversible and irreversible, and mechanisms that operate in large measured in two dimensions (“coplanar”), or three dimensions (non-coplanar), complete with robust data routing, at any angle desired.

Balanzas Balances

La fuerza y el movimiento pueden transmitirse desde un extremo de un eslabón al otro extremo utilizando una junta rotatoria alrededor de la cual gira el eslabón. Dicho mecanismo se denominará “ balanza” , ya que con frecuencia la entrada está en el centro de un eslabón, y un lado se mueve “ arriba” o “ abajo” , conceptualmente similar a una clásica balanza de platillos. Por supuesto, el movimiento exacto dependerá de las fuerzas aplicadas, el diseño exacto del mecanismo y el estado del sistema. Force and motion can be transmitted from one end of a link to the other end using a rotating joint around which the link rotates. Such a mechanism will be called a “balance”, since the entrance is often in the center of a link, and one side moves “up” or “down”, conceptually similar to a classic pan balance. Of course, the exact movement will depend on the forces applied, the exact design of the mechanism, and the state of the system.

Una balanza simple se representa en dos estados diferentes en la Figura 17 (que muestra una entrada de 0, estando retraída la corredera lineal de entrada 1701) y la Figura 18 (que muestra el mismo mecanismo con una entrada de 1, estando extendida la corredera lineal de entrada 1701). En estas figuras, la entrada 1701 se conecta al eslabón 1702 mediante la junta rotatoria 1703. La junta rotatoria superior 1704 y la junta rotatoria inferior 1705 se conectan a través de eslabones a la salida superior 1706 y la salida inferior 1707, respectivamente. La junta rotatoria superior 1704 se ancla en estas representaciones, evitando que la salida superior 1706 se mueva, mientras que la junta rotatoria inferior 1705 no se ancla, permitiendo que la salida inferior 1707 se mueva si la entrada 1701 se mueve. A simple balance is represented in two different states in Figure 17 (showing an input of 0, with the input linear slide 1701 being retracted) and Figure 18 (showing the same mechanism with an input of 1, with the slide being extended). linear input 1701). In these figures, inlet 1701 is connected to link 1702 via rotary joint 1703. Upper rotary joint 1704 and lower rotary joint 1705 are connected via links to upper outlet 1706 and lower outlet 1707, respectively. The upper rotary joint 1704 is anchored in these representations, preventing the upper outlet 1706 from moving, while the lower rotary joint 1705 is not anchored, allowing the lower outlet 1707 to move if the inlet 1701 moves.

La Figura 19 representa lo que ocurriría si la junta rotatoria superior 1704 y la junta rotatoria inferior 1705 se invirtieran (es decir, si la junta rotatoria superior 1704 se desanclara y la junta rotatoria inferior 1705 se anclara), dada una entrada de 1. El movimiento de salida ocurriría en la salida superior 1706 en lugar de la salida inferior 1707. Una de las propiedades interesantes de las balanzas es que pueden diseñarse para conservar la suma de sus entradas. En el ejemplo anterior, si la entrada es 0, la salida es 0. Si la entrada es 1, la salida es 1. Esto también sería válido para una línea simple, pero se pueden construir balanzas complejas con múltiples entradas que aun así sumen sus salidas. Figure 19 represents what would happen if the upper rotary joint 1704 and the lower rotary joint 1705 were reversed (i.e., if the upper rotary joint 1704 was unpinned and the lower rotary joint 1705 was anchored), given an input of 1. The Output motion would occur at the upper outlet 1706 instead of the lower outlet 1707. One of the interesting properties of scales is that they can be designed to preserve the sum of their inputs. In the example above, if the input is 0, the output is 0. If the input is 1, the output is 1. This would also be true for a simple line, but complex scales can be built with multiple inputs that still add up. Departures.

Otra ventaja de las balanzas es que pueden enrutar datos de manera diferente dependiendo de otra entrada. Otra entrada, por ejemplo, puede controlar el estado de las cerraduras conectadas a una balanza. Las cerraduras actúan como anclajes condicionales, enrutando datos por una línea u otra dependiendo del estado de las cerraduras y permitiendo que una balanza funcione como un conmutador o “ puerta de conmutación” , Por ejemplo, una sola balanza con anclajes condicionales podría ponerse en cualquiera de las configuraciones mostradas en la Figura 17, Figura 18 y Figura 19, ya que los puntos de anclaje pueden cambiarse (este concepto se demuestra en las figuras posteriores). Another advantage of scales is that they can route data differently depending on another input. Another input, for example, can control the status of locks connected to a scale. The locks act as conditional anchors, routing data down one line or another depending on the state of the locks and allowing a scale to function as a switch or “switching gate.” For example, a single scale with conditional anchors could be placed on any of the configurations shown in Figure 17, Figure 18 and Figure 19, as the anchor points can be changed (this concept is demonstrated in subsequent figures).

La Figura 20 y la Figura 21 ilustran una forma en la que se pueden usar balanzas con múltiples entradas para conservar la suma de las entradas y para enrutar datos. Se representan dos estados del mismo mecanismo, que se forman al conectar entre sí dos balanzas de 2 entradas (una “ balanza doble binaria” ). Las entradas 2001 y 2002 se conectan al eslabón 2005 mediante juntas rotatorias. El eslabón 2005 se conecta al eslabón 2007 a través de una junta rotatoria. El eslabón 2007 se conecta al eslabón 2006 a través de una junta rotatoria. El eslabón 2006 se conecta a las salidas 2003 y 2004 a través de sus respectivas juntas rotatorias. La longitud fija del eslabón 2007 hace que la suma de las entradas se conserve. Dado que el eslabón 2007 no puede cambiar de longitud, si la entrada 2001 o 2002 se mueve, un correspondiente movimiento debe tener lugar en la salida 2003 o 2004. La Figura 20 muestra el estado del mecanismo cuando la entrada 2001 es 1, y la entrada 2002 es 0. La Figura 21 muestra el estado del mecanismo cuando la entrada 2001 y la entrada 2002 son ambas 1. Téngase en cuenta que el mecanismo en estas figuras (como suele ser el caso debido a la complejidad de sistemas más completos y a la necesidad de ilustraciones claras de los mecanismos básicos subyacentes de MLL) no se une a otros mecanismos como sí lo haría en un sistema MLL real. En este caso particular, sin restricciones adicionales este mecanismo no será fiable. Por ejemplo, cuando se mueve desde una entrada de (0,0) a (1,0), la suma de las salidas debe ser 1, ya que la suma de las entradas es 1. Sin embargo, no hay forma de indicar si las salidas serán (0,1) o (1,0), o incluso algo similar (0,5,0,5). En un sistema real, una forma de resolver este problema es con cerraduras. Al bloquear condicionalmente una de las salidas, la otra salida se ve obligada a moverse de manera predecible. Figure 20 and Figure 21 illustrate one way multi-input scales can be used to preserve the sum of inputs and to route data. Two states of the same mechanism are represented, which are formed by connecting two 2-input scales together (a “double binary scale”). Inlets 2001 and 2002 are connected to link 2005 by rotating joints. Link 2005 connects to link 2007 through a rotating joint. Link 2007 connects to link 2006 through a rotating joint. Link 2006 connects to outputs 2003 and 2004 through their respective rotating joints. The fixed length of link 2007 causes the sum of the entries to be preserved. Since link 2007 cannot change length, if input 2001 or 2002 moves, a corresponding movement must take place at output 2003 or 2004. Figure 20 shows the state of the mechanism when input 2001 is 1, and input 2002 is 0. Figure 21 shows the state of the mechanism when input 2001 and input 2002 are both 1. Note that the mechanism in these figures (as is often the case due to the complexity of more complete systems and the need for clear illustrations of the basic underlying mechanisms of MLL) does not bind to other mechanisms as it would in a real MLL system. In this particular case, without additional restrictions this mechanism will not be reliable. For example, when moving from an input of (0,0) to (1,0), the sum of the outputs must be 1, since the sum of the inputs is 1. However, there is no way to indicate whether the outputs will be (0,1) or (1,0), or even something similar (0,5,0,5). In a real system, one way to solve this problem is with locks. By conditionally blocking one of the outputs, the other output is forced to move in a predictable manner.

Puertas de conmutación Switching doors

Como se ha descrito anteriormente, las balanzas, junto con las cerraduras, son una forma en la que puede implementarse una puerta de conmutación. La Figura 22 muestra una puerta de conmutación con una entrada 2201 superior, una entrada 2202 inferior y una entrada 2203 central. La entrada intermedia se conecta, a través de una balanza, a la salida superior 2204 y la salida inferior 2205. Las entradas superior e inferior controlan si la entrada intermedia se encamina a la salida superior o a la salida inferior. Por ejemplo, si la entrada superior 2201 se establece en 1, entonces la cerradura superior a la que se conecta la entrada superior 2201 se bloquea. Dado que eso significa que la línea que va a la salida superior 2204 no puede moverse, cuando se proporciona una entrada de 1 en la entrada intermedia 2203, la balanza a la que está conectada la entrada intermedia 2203 debe mover la línea que conduce a la salida inferior 2205. Las entradas superior e inferior generalmente nunca serían 1 al mismo tiempo, por lo que podrían condensarse realmente en una entrada que controla ambas cerraduras, p. ej., una entrada de 0 que bloquea la cerradura superior, y una entrada de 1 que bloquea la cerradura inferior, o viceversa. As described above, scales, along with locks, are one way in which a switching door can be implemented. Figure 22 shows a switching door with an upper input 2201, a lower input 2202 and a central input 2203. The middle input is connected, via a scale, to the upper output 2204 and the lower output 2205. The upper and lower inputs control whether the intermediate input is routed to the upper output or the lower output. For example, if top input 2201 is set to 1, then the top lock that top input 2201 connects to is locked. Since that means that the line leading to the upper output 2204 cannot move, when an input of 1 is provided to the middle input 2203, the scale to which the middle input 2203 is connected must move the line leading to the bottom output 2205. The top and bottom inputs would generally never be 1 at the same time, so they could actually be condensed into one input that controls both locks, e.g. e.g., an input of 0 that locks the top lock, and an input of 1 that locks the bottom lock, or vice versa.

Las balanzas dobles binarias acopladas a las cerraduras también se pueden utilizar como puertas de conmutación. Dada una balanza doble binaria, una entrada se bloquea permanentemente, mientras que una entrada se desbloquea permanentemente y se conecta a una entrada (típicamente un reloj). A continuación, se puede usar una sola línea para conmutar dos cerraduras complementarias que están conectadas a las dos entradas restantes de la balanza doble. En esencia, la entrada de reloj se encamina a través de la balanza doble a una o la otra “ entrada” mediante la única línea que controla las dos cerraduras complementarias. Téngase en cuenta que se pueden usar puertas de conmutación (y otros mecanismos de MLL que tienen estados bloqueados) incluso cuando se desea la conmutación seca. En el caso de una puerta de conmutación como la de la Figura 22, la fuerza de reloj se aplica a través de una balanza que conecta dos cerraduras. Dado que el sistema puede diseñarse de modo que ambas cerraduras nunca se bloqueen simultáneamente cuando se aplica la fuerza de reloj, un lado siempre es libre de moverse. Por lo tanto, la fuerza de reloj no se dirige a un mecanismo inmóvil, sino más bien a un mecanismo que puede condicionalmente siempre moverse en una dirección u otra. Binary double scales attached to locks can also be used as switching doors. Given a binary double scale, one input is permanently locked, while one input is permanently unlocked and connected to one input (typically a clock). A single line can then be used to switch two complementary locks that are connected to the two remaining inputs of the double scale. In essence, the clock input is routed through the dual scale to one or the other “input” via the single line that controls the two complementary locks. Note that switching gates (and other MLL mechanisms that have locked states) can be used even when dry switching is desired. In the case of a switching gate like the one in Figure 22, the clock force is applied through a balance connecting two locks. Since the system can be designed so that both locks are never locked simultaneously when clock force is applied, one side is always free to move. Therefore, the clock force is not directed to an immobile mechanism, but rather to a mechanism that can conditionally always move in one direction or another.

Puertas lógicas utilizando cerraduras y balanzas Logic gates using locks and scales

Una propiedad interesante de las cerraduras y balanzas es que pueden utilizarse para crear todas las puertas lógicas tradicionales (además de otros mecanismos), reversibles e irreversibles. Antes de describir una forma en la que esto se puede realizar, facilitará la comprensión de la puerta lógica basada en cerradura ilustrativa el análisis de un método alternativo para proporcionar una entrada a un mecanismo (en este caso, una cerradura). Es típico pensar en una entrada binaria como una conexión única a una línea. Por ejemplo, en las puertas lógicas descritas anteriormente, tales como AND, NAND, NOR y XOR, cada una de estas puertas lógicas tomó dos entradas, frecuentemente representadas como dos actuadores lineales, pero que en un sistema MLL real serían, p. ej., dos conexiones a líneas de datos. La puerta de Fredkin toma tres entradas, y así tenía tres ubicaciones donde podrían conectarse líneas de datos. Cada una de las entradas a estas puertas lógicas ilustrativas era binaria, es decir, el mecanismo se diseñó de tal manera que una posición representaba 0, mientras que una segunda posición representaba 1. Aunque son posibles otras implementaciones, frecuentemente una entrada de 0 se ha representado como que ningún movimiento se produce en esa entrada, mientras que una entrada de 1 se representó por algún movimiento hacia adelante o hacia la derecha. An interesting property of locks and scales is that they can be used to create all traditional logic gates (as well as other mechanisms), reversible and irreversible. Before describing one way in which this can be realized, it will facilitate the understanding of the illustrative lock-based logic gate to discuss an alternative method of providing an input to a mechanism (in this case, a lock). It is typical to think of a binary input as a single connection to a line. For example, in the logic gates described above, such as AND, NAND, NOR and XOR, each of these logic gates took two inputs, often represented as two linear actuators, but which in a real MLL system would be e.g. e.g., two connections to data lines. The Fredkin gate takes three inputs, and thus had three locations where data lines could be connected. Each of the inputs to these illustrative logic gates was binary, that is, the mechanism was designed such that one position represented 0, while a second position represented 1. Although other implementations are possible, frequently an input of 0 has been represented as no movement occurring in that entry, while an entry of 1 was represented by some forward or rightward movement.

Sin embargo, existen otras formas de representar la entrada. Por ejemplo, en lugar de una entrada binaria usando una conexión que proporciona uno de dos valores posibles (0 o 1), una entrada binaria podría consistir en dos conexiones, una que representa 0 y la otra que representa 1. En este escenario, una de las conexiones a una entrada siempre se movería: La línea 0 se movería si la entrada fuera 0, y la línea 1 se movería si la entrada fuera 1. Esto contrasta con el hecho de que 0 anteriormente estaba representado por la ausencia de movimiento de una entrada. Esta estrategia de usar dos líneas por entrada binaria es útil con cerraduras porque permite que cualquier valor, 0 o 1, cree un estado bloqueado. Una entrada de 0 bloquea un lado de la cerradura, mientras que una entrada de 1 bloquea el otro. Una ventaja de tener tanto 0 como 1 dando como resultado un estado bloqueado en diferentes lados es que esto permite que una cerradura actúe como dos puntos de anclaje condicionales diferentes. Esto puede utilizarse, por ejemplo, para controlar qué lado de una balanza se mueve cuando se introduce la entrada en la balanza. El siguiente ejemplo muestra un mecanismo que ilustra cómo esta propiedad de las cerraduras se puede combinar con balanzas para crear puertas lógicas. However, there are other ways to represent the input. For example, instead of a binary input using a connection that provides one of two possible values (0 or 1), a binary input could consist of two connections, one representing 0 and the other representing 1. In this scenario, a of connections to an input would always move: Line 0 would move if the input were 0, and line 1 would move if the input were 1. This contrasts with the fact that 0 was previously represented by no movement of an entry. This strategy of using two lines per binary input is useful with locks because it allows any value, 0 or 1, to create a locked state. An input of 0 locks one side of the lock, while an input of 1 locks the other. An advantage of having both 0 and 1 resulting in a locked state on different sides is that this allows one lock to act as two different conditional anchor points. This can be used, for example, to control which side of a scale moves when input is entered onto the scale. The following example shows a mechanism that illustrates how this property of locks can be combined with scales to create logic gates.

La Figura 23 representa una forma en la que una puerta NAND puede construirse usando balanzas y eslabones. La entrada de reloj 2301 se conecta a la balanza 2302, que a su vez se conecta a la balanza 2303, que a su vez se conecta a la balanza 2304. A través de una serie de cerraduras y líneas, la entrada de reloj se dirige a las balanzas 2305 y 2306, y finalmente da como resultado el movimiento de la salida superior 2312 o la salida inferior 2311. Las entradas 2307 a 2310 proporcionan entradas a la puerta, con cuatro líneas de entrada utilizadas para representar dos entradas binarias, como se describió anteriormente. Específicamente, la entrada 2307 se indicará como “A0” (lo que significa que está asociada con la entrada “A” , y se moverá si la entrada “A” es 0), la entrada 2308 como “ B0” , la entrada 2309 como “A1” y la entrada 2310 como “ B1” Téngase en cuenta que para las entradas 2307 a 2310 hay dos entradas, cada una con la misma etiqueta. Esto se debe a que los mismos datos de entrada se usan en dos lugares diferentes dentro de la puerta. En realidad, esto no requeriría dos entradas separadas para cada una, sino más bien una entrada para cada una podría bifurcarse usando eslabones simples en forma de varilla, o conectarse a un único eslabón que proporcione múltiples puntos de conexión. La representación en la figura 23 se eligió por razones de claridad, no porque deba ser exactamente el modo como realmente se implementa el mecanismo (que generalmente es válido para todos los mecanismos descritos en la presente memoria). El mecanismo funciona de la siguiente manera: Si se acciona, las entradas 2307 a 2310 mueven el lado de la puerta a la que están conectadas y bloquean la puerta. En otras palabras, si la entrada (A, B) es (0,1), las líneas A0 se moverán, y las líneas B1 se moverán. Dado que A no es 1, las líneas A1 no se moverán, y dado que B no es 0, las líneas B0 no se moverán. Obviamente, se permite la entrada (0,0), (0,1), (1,0) o (1,1). Las entradas establecen un patrón de qué puertas se bloquean y cuáles no. Este patrón a su vez determina qué lado de cada balanza es libre de moverse. La entrada de reloj activa entonces las balanzas, con el resultado final que ya sea la salida inferior 2311, que representa (A NAND B)0, se moverá, o la salida superior 2312, que representa (A NAND B)1, se moverá. La salida resultante genera la tabla de verdad NAND: Figure 23 represents one way a NAND gate can be constructed using scales and links. The clock input 2301 is connected to the scale 2302, which in turn is connected to the scale 2303, which in turn is connected to the scale 2304. Through a series of locks and lines, the clock input is directed to the scales 2305 and 2306, and finally results in the movement of the upper output 2312 or the lower output 2311. Inputs 2307 to 2310 provide inputs to the gate, with four input lines used to represent two binary inputs, as shown. described above. Specifically, entry 2307 will be indicated as “A0” (meaning it is associated with entry “A”, and will be moved if entry “A” is 0), entry 2308 as “B0”, entry 2309 as “A1” and input 2310 as “B1” Note that for inputs 2307 to 2310 there are two inputs, each with the same label. This is because the same input data is used in two different places within the gate. In reality, this would not require two separate inputs for each, but rather one input for each could be branched using simple rod-shaped links, or connected to a single link providing multiple connection points. The representation in Figure 23 was chosen for reasons of clarity, not because it should be exactly how the mechanism is actually implemented (which is generally valid for all mechanisms described herein). The mechanism works as follows: If actuated, inputs 2307 to 2310 move the side of the door they are connected to and lock the door. In other words, if the input (A,B) is (0,1), lines A0 will move, and lines B1 will move. Since A is not 1, lines A1 will not move, and since B is not 0, lines B0 will not move. Obviously, input (0,0), (0,1), (1,0) or (1,1) is allowed. Entries establish a pattern of which doors are locked and which are not. This pattern in turn determines which side of each scale is free to move. The clock input then activates the scales, with the end result being that either the lower output 2311, representing (A NAND B)0, will move, or the upper output 2312, representing (A NAND B)1, will move . The resulting output generates the NAND truth table:

Como ya se ha mencionado, NAND es una puerta universal. Por lo tanto, de este ejemplo se deduce que se podría utilizar un sistema de cerraduras y balanzas para diseñar cualquier otra puerta lógica deseada, reversible o irreversible, utilizando combinaciones de puertas NAND. Sin embargo, esta puede no ser la manera más eficiente de implementar cualquier lógica deseada, y pueden usarse mecanismos similares basados en cerraduras y balanzas para implementar cualquier otra puerta lógica directamente, incluidas AND, OR, NOR, XOR, XNOR, NOT, Cn OT, Toffoli y otras. As already mentioned, NAND is a universal gate. Therefore, it follows from this example that a system of locks and scales could be used to design any other desired logic gate, reversible or irreversible, using combinations of NAND gates. However, this may not be the most efficient way to implement any desired logic, and similar lock-and-scale-based mechanisms can be used to implement any other logic gate directly, including AND, OR, NOR, XOR, XNOR, NOT, Cn OT , Toffoli and others.

Ya se ha descrito una implementación de una puerta de Fredkin. Las cerraduras y balanzas también se pueden usar para construir una puerta de Fredkin. Una puerta de Fredkin tiene tres entradas y tres salidas. Las tres entradas se llamarán A, B y C, y las tres salidas X, Y y Z. La entrada A siempre se conecta a la salida X. Si la entrada A es 0, entonces la entrada B se conecta a la salida Y y la entrada C se conecta a la salida Z. Si la entrada A es 1, entonces la entrada B se conecta a la salida Z y la entrada C se conecta a la salida Y. Como se señaló anteriormente, las puertas de Fredkin son puertas universales, lo que significa que cualquier operación lógica o aritmética puede calcularse con solo puertas de Fredkin. Esto no quiere decir que un sistema de computación MLL práctico deba componerse únicamente de puertas de Fredkin, ya que esta no necesariamente sería la configuración más eficiente para muchas tareas de cálculo. Como resultará obvio a partir de las enseñanzas en la presente memoria, muchos otros tipos de puertas pueden implementarse usando MLL. Las puertas de Fredkin se usan como una realización ilustrativa porque son universales y reversibles. An implementation of a Fredkin gate has already been described. Locks and scales can also be used to build a Fredkin gate. A Fredkin gate has three entrances and three exits. The three inputs will be named A, B and C, and the three outputs will be named X, Y and Z. Input A is always connected to output X. If input A is 0, then input B is connected to output Y and input C connects to output Z. If input A is 1, then input B connects to output Z and input C connects to output Y. As noted above, Fredkin gates are universal gates , meaning that any logical or arithmetic operation can be computed with just Fredkin gates. This is not to say that a practical MLL computing system should be composed solely of Fredkin gates, as this would not necessarily be the most efficient configuration for many computational tasks. As will be obvious from the teachings herein, many other types of gates can be implemented using MLL. Fredkin doors are used as an illustrative embodiment because they are universal and reversible.

La Figura 24 representa una puerta de Fredkin elaborada usando cerraduras y balanzas. Debido a la complejidad del mecanismo, se usa una notación simplificada donde las juntas rotatorias ancladas no se muestran explícitamente, pero se supone que están en los extremos no conectados de eslabones apropiados. La entrada o señal de reloj (actuador no mostrado, como con todas las entradas a este mecanismo) se uniría a la junta rotatoria 2401. La entrada para la entrada A1, A0, B1, B0, C1 y C0 se uniría a las juntas rotatorias 2402, 2403, 2404, 2405, 2406 y 2407, respectivamente. Las entradas B1, B0, C1 y C0 también se conectarían a las juntas rotatorias 2408, 2409, 2410 y 2411, respectivamente. La señal y entradas de reloj se conectan a través de una serie de eslabones y cerraduras, y para algunas salidas, balanzas, a la salida X12412, la salida X02413, la salida Y12414, la salida Y02415, la salida Z12416 y la salida Z02417. Téngase en cuenta que las salidas X1 y X0 no se muestran en el lado derecho junto a las otras salidas para reducir la complejidad de la figura. En realidad, obviamente podrían dirigirse a cualquier ubicación deseada. Téngase en cuenta que los eslabones 2418 y 2419 son parte de eslabonamientos de 4 barras, no de balanzas, lo que obliga a estos eslabones a permanecer verticales cuando se mueven. Los triángulos negros 2420 y 2421 ilustran eslabonamientos rígidos (no se usa una línea recta para evitar una representación con excesivas líneas que se cruzan entre sí, y esta representación es solo esquemática, los mecanismos reales podrían implementarse de muchas formas). Figure 24 represents a Fredkin door made using locks and scales. Due to the complexity of the mechanism, a simplified notation is used where the anchored rotary joints are not shown explicitly, but are assumed to be at the unconnected ends of appropriate links. The input or clock signal (actuator not shown, as with all inputs to this mechanism) would be attached to rotary joint 2401. The input for input A1, A0, B1, B0, C1 and C0 would be attached to rotary joints 2402, 2403, 2404, 2405, 2406 and 2407, respectively. Inputs B1, B0, C1, and C0 would also connect to rotating joints 2408, 2409, 2410, and 2411, respectively. The signal and clock inputs are connected through a series of links and locks, and for some outputs, scales, to output X12412, output X02413, output Y12414, output Y02415, output Z12416 and output Z02417. Note that outputs X1 and X0 are not shown on the right side next to the other outputs to reduce the complexity of the figure. In reality, they could obviously head to any desired location. Please note that links 2418 and 2419 are part of 4-bar linkages, not scales, which forces these links to remain vertical when moving. The black triangles 2420 and 2421 illustrate rigid linkages (a straight line is not used to avoid a representation with excessive lines crossing each other, and this representation is only schematic, the actual mechanisms could be implemented in many ways).

El estado en blanco se representa en la Figura 24. Conceptualmente, a partir de este estado, las entradas A, B y C se establecen durante una fase de reloj. Durante una fase de reloj posterior, la señal de reloj conectada a la junta rotatoria 2401 se establece en “ 1” , lo que provoca el movimiento de las diversas balanzas dentro del mecanismo, dando como resultado que las salidas X, Y y Z se establezcan según corresponda. Si bien un enfoque sencillo para construir un sistema sería el de usar puertas de Fredkin en todas partes, y usar la sincronización de Landauer trifásica, otros enfoques son factibles. Como resultará obvio a partir de los diversos esquemas de sincronización conocidos, puede haber fases de reloj adicionales y, al usar la sincronización de Bennet, el número de señales de reloj dependerá del número de etapas que se desee permitir en una cascada retráctil. The blank state is depicted in Figure 24. Conceptually, from this state, inputs A, B, and C are set during one clock phase. During a subsequent clock phase, the clock signal connected to rotating joint 2401 is set to “1”, which causes the various scales within the mechanism to move, resulting in outputs X, Y and Z being set. as appropriate. While a simple approach to building a system would be to use Fredkin gates everywhere, and use three-phase Landauer synchronization, other approaches are feasible. As will be obvious from the various known synchronization schemes, there may be additional clock phases and, when using Bennet synchronization, the number of clock signals will depend on the number of stages you wish to allow in a retractable cascade.

Registros de desplazamiento Shift registers

Los registros de desplazamiento se pueden usar como base para implementar la lógica secuencial en un sistema computacional. Por ejemplo, dos números que se sumarán, sustraerán, aplicarán AND o OR se almacenan en dos registros de desplazamiento y se sincronizan en una unidad aritmética y lógica que consiste en una puñado de puertas, enviándose el resultado a la entrada de un tercer registro de desplazamiento llamado el acumulador. En circuitos digitales reversibles, un registro de desplazamiento puede definirse como una serie de “celdas” , teniendo cada celda tres estados estables: 0, 1 y en blanco (b), que se pueden usar para almacenar información de estado. Las celdas se sincronizan mediante relojes sucesivos. La salida de cada celda se conecta a la entrada de la siguiente celda en la cadena. Los datos almacenados en la cadena se desplazan en una posición después de cada ciclo de reloj; los datos (0,1, o b) en la entrada se desplazan hacia adentro mientras que los datos al final de la matriz se desplazan hacia afuera. Los registros de desplazamiento sincronizados binarios se pueden implementar usando solo los relojes y las juntas rotatorias conectadas por eslabones (creando cerraduras y balanzas) descritos anteriormente. Los registros de desplazamiento son simples, pero cuando se combinan con la lógica combinatoria apropiada, contienen todos los elementos fundamentales requeridos para un sistema computacional. Shift registers can be used as a basis for implementing sequential logic in a computer system. For example, two numbers to be added, subtracted, ANDed, or ORed are stored in two shift registers and synchronized in an arithmetic and logic unit consisting of a handful of gates, with the result sent to the input of a third shift register. displacement called the accumulator. In reversible digital circuits, a shift register can be defined as a series of “cells”, each cell having three stable states: 0, 1 and blank (b), which can be used to store state information. The cells are synchronized by successive clocks. The output of each cell is connected to the input of the next cell in the chain. The data stored in the chain is shifted by one position after each clock cycle; the data (0,1, or b) at the input is shifted in while the data at the end of the array is shifted out. Binary synchronized shift registers can be implemented using only the clocks and rotating joints connected by links (creating locks and scales) described above. Shift registers are simple, but when combined with appropriate combinatorial logic, they contain all the fundamental elements required for a computing system.

Se puede construir un registro de desplazamiento combinando cerraduras y balanzas, y suponiendo la presencia de un sistema de reloj, de modo que cada celda (que podría verse como un flip-flop, y que también puede considerarse como una memoria intermedia y puede usarse para sincronizar fases de reloj de diferentes procesos al introducir retardos de fase de reloj) del registro de desplazamiento esté relacionada con su vecina en virtud del hecho de depender de una fase de reloj anterior o posterior, según corresponda. Esto permite copiar y desplazar datos a través del registro de desplazamiento, en lugar de establecer de manera determinista el contenido de todo el registro de desplazamiento simultáneamente. A shift register can be constructed by combining locks and balances, and assuming the presence of a clock system, so that each cell (which could be seen as a flip-flop, and which can also be considered a buffer and can be used to synchronize clock phases of different processes by introducing clock phase delays) of the shift register is related to its neighbor by virtue of depending on an earlier or later clock phase, as appropriate. This allows data to be copied and shifted through the shift register, rather than deterministically setting the contents of the entire shift register simultaneously.

La Figura 25, la Figura 26 y la Figura 27 representan una celda única de un registro de desplazamiento, en tres estados diferentes. En estas figuras, la entrada 02501 se conecta a través de una junta rotatoria a un lado de la cerradura 2505. La entrada 12502 se conecta a través de una junta rotatoria a un lado de la cerradura 2506. La señal de reloj 2503 (aunque se esquematiza de manera diferente para proporcionar un mecanismo que es más completo cuando es independiente, en un sistema real sería una conexión con el sistema de reloj) se une a la balanza 2504. Las cerraduras 2505 y 2506 determinan cuál de las salidas 2507 o 2508 se mueve cuando la señal de reloj se convierte en 1. La cerradura que contiene las salidas 2507 y 2508 puede considerarse como la cerradura de salida para toda la celda, mientras que las cerraduras 2505 y 2506 son cerraduras del área de retención. La importancia de este concepto quedará claro al conectar múltiples celdas en serie. Figure 25, Figure 26 and Figure 27 represent a single cell of a shift register, in three different states. In these figures, input 02501 is connected through a rotary joint to one side of lock 2505. Input 12502 is connected through a rotary joint to one side of lock 2506. Clock signal 2503 (although schematized differently to provide a mechanism that is more complete when independent, in a real system it would be a connection to the clock system) joins the scale 2504. The locks 2505 and 2506 determine which of the outputs 2507 or 2508 are moves when the clock signal becomes 1. The lock containing outputs 2507 and 2508 can be considered as the output lock for the entire cell, while locks 2505 and 2506 are holding area locks. The importance of this concept will become clear when connecting multiple cells in series.

La Figura 25 representa la celda en su estado en blanco, antes de que se haya proporcionado cualquier entrada, y mientras la señal de reloj es baja o está en 0. La Figura 26 representa la celda después de que la entrada 2501 se ha establecido en 1, pero antes de que la señal de reloj se haya movido a alta o 1. Esto da como resultado el bloqueo de la cerradura 2505. Figure 25 represents the cell in its blank state, before any input has been provided, and while the clock signal is low or at 0. Figure 26 represents the cell after input 2501 has been set to 1, but before the clock signal has moved to high or 1. This results in blocking the lock 2505.

La Figura 27 representa el mecanismo del estado anterior una vez que la señal de reloj se ha movido a alta. A medida que la señal de reloj 2503 empuja la balanza 2504, debido a que la cerradura 2505 está bloqueada, solo un lado de la balanza 2504 es libre de moverse. Por lo tanto, la señal de reloj que se mueve a alta se transmite a través de la cerradura 2506 y a la salida 2508. Téngase en cuenta que los movimientos entre estados tales como los ilustrados en la Figura 25, Figura 26 y Figura 27 no tienen lugar simultáneamente sino que están regidos por las señales de reloj y las entradas de datos (que pueden vincularse a las señales de reloj). Este comportamiento secuencial es lo que permite el funcionamiento adecuado de esta celda o buffer (también análogo a un pestillo en computación electrónica). Dicho comportamiento es fácil de realizar y muy conocido en implementaciones eléctricas, pero más complicado en una implementación mecánica. Figure 27 represents the mechanism of the previous state once the clock signal has been moved high. As the clock signal 2503 pushes the scale 2504, because the lock 2505 is locked, only one side of the scale 2504 is free to move. Therefore, the clock signal moving high is transmitted through the lock 2506 and to the output 2508. Note that movements between states such as those illustrated in Figure 25, Figure 26 and Figure 27 do not have place simultaneously but are governed by the clock signals and the data inputs (which can be linked to the clock signals). This sequential behavior is what allows the proper functioning of this cell or buffer (also analogous to a latch in electronic computing). Such behavior is easy to perform and well known in electrical implementations, but more complicated in a mechanical implementation.

La Figura 28a, que comprende la mitad izquierda, y la Figura 28b, que comprende la mitad derecha, representan colectivamente un registro de desplazamiento de dos celdas para ilustrar cómo se conectarían dos celdas y para explicar cómo los datos se moverían de una celda a la siguiente. En la Figura 28a, la celda 12801, y en la Figura 28b, la celda 22802, son cada una equivalentes al mecanismo representado en la Figura 25. En la Figura 28a, la celda 1 2801 tiene una conexión a una señal de reloj a través del eslabón 2803 (representado como un eslabón parcial para indicar la conexión a un sistema de reloj que no se muestra), y en la Figura 28b, la celda 22802 tiene una conexión a una señal de reloj a través del eslabón 2806. Los eslabones 2804 y 2805 conectan la celda 12801 y la celda 22802. Figure 28a, comprising the left half, and Figure 28b, comprising the right half, collectively represent a two-cell shift register to illustrate how two cells would be connected and to explain how data would move from one cell to the next. following. In Figure 28a, cell 12801, and in Figure 28b, cell 22802, are each equivalent to the mechanism depicted in Figure 25. In Figure 28a, cell 1 2801 has a connection to a clock signal through of link 2803 (represented as a partial link to indicate connection to a clock system not shown), and in Figure 28b, cell 22802 has a connection to a clock signal through link 2806. Links 2804 and 2805 connect cell 12801 and cell 22802.

Al igual que en la Figura 25, la Figura 26 y la Figura 27, se supone que está presente una señal de reloj multifase, y los eslabones 2803 y 2806, y las entradas de datos asociadas con cada celda funcionarían preferentemente en diferentes fases de reloj, requiriendo al menos un reloj trifásico para este diseño particular. Ya se ha descrito el funcionamiento de una celda única, pero demostrar cómo la celda 12801 pasa los datos a la celda 22802 puede ser instructivo. La secuencia de eventos es la siguiente: (1) en la fase de reloj 1, el reloj para la celda 12801 ya estaba en 0, y las entradas de datos se establecen para la celda 12801. Ya sea la cerradura superior o la inferior de la celda 12801 se bloquea, dependiendo de qué entrada se estableció en 1; (2) en la fase de reloj 2, la señal de reloj para la celda 12801 se establece en 1. Esto da como resultado el desbloqueo del lado de la balanza presente en la celda 12801 que se mueve, lo que a su vez mueve ya sea el eslabón 2804 o el eslabón 2805. Esto bloquea una de las cerraduras del área de retención de la celda 22802, copiando los datos de la celda 12801 en el área de retención de la celda 22802. Téngase en cuenta que la cerradura de salida de la celda 22802 aún no se ha movido; (3) en la fase de reloj 3, la señal de reloj para la celda 22802 se establece en 1. Esto copia los datos de las cerraduras del área de retención en la cerradura de salida de la celda 2 2802. En detalle, una de las cerraduras del área de retención de la celda 22802 ya estaba bloqueada, por lo que cuando la señal de reloj para la celda 22802 cambia de 0 a 1, solo la línea desbloqueada podría moverse. Cuando esta línea desbloqueada se movió, se bloqueó la cerradura de salida de la celda 22802. También se bloqueó la segunda de las dos cerraduras del área de retención de la celda 22802; y (4) la señal de reloj para la celda 1 se establece en 0. Esto elimina los datos de la celda 12801 desde la celda 22802 desbloqueando solo la cerradura del área de retención de la celda 2 2802 que se bloqueó inicialmente cuando el reloj de la celda 12801 se estableció en 1, ya que la otra cerradura acababa de ser bloqueada por la señal de reloj a la celda 22802. Este ciclo se repite a continuación a medida que nuevos datos se introducen en la celda 1. En la etapa 2 anterior, se observa que la cerradura de salida de la celda 2 2802 aún no se ha movido. Esto permite que estas celdas de registro de desplazamiento ilustrativas almacenen datos anteriores, mientras que los mecanismos tales como algunas de las puertas lógicas descritas en la presente memoria tienen su estado completamente determinado por las entradas de datos actuales. Esto se debe a que una celda puede contener no solo una entrada previa (que termina siendo desplazada hacia su cerradura de salida durante la fase de reloj 3), sino también la entrada actual, que se almacena en las cerraduras del área de retención. As in Figure 25, Figure 26 and Figure 27, it is assumed that a multiphase clock signal is present, and links 2803 and 2806, and the data inputs associated with each cell would preferably operate in different clock phases. , requiring at least a three-phase clock for this particular design. The operation of a single cell has already been described, but demonstrating how cell 12801 passes data to cell 22802 may be instructive. The sequence of events is as follows: (1) In clock phase 1, the clock for cell 12801 was already at 0, and the data inputs are set for cell 12801. Either the upper or lower lock of cell 12801 is blocked, depending on which entry was set to 1; (2) In clock phase 2, the clock signal for cell 12801 is set to 1. This results in unlocking the side of the balance present in moving cell 12801, which in turn moves already either link 2804 or link 2805. This locks one of the locks in the holding area of cell 22802, copying the data in cell 12801 to the holding area of cell 22802. Note that the output lock of cell 22802 has not yet been moved; (3) In clock phase 3, the clock signal for cell 22802 is set to 1. This copies the data of the holding area locks to the output lock of cell 2 2802. In detail, one of The locks holding area of cell 22802 was already locked, so when the clock signal for cell 22802 changes from 0 to 1, only the unlocked line could move. When this unlocked line moved, the exit lock of cell 22802 was blocked. The second of the two holding area locks of cell 22802 was also blocked; and (4) the clock signal for cell 1 is set to 0. This removes the data of cell 12801 from cell 22802 unlocking only the hold area lock of cell 2 2802 that was initially locked when the clock cell 12801 was set to 1, as the other lock had just been locked by the clock signal to cell 22802. This cycle is then repeated as new data is entered into cell 1. In step 2 above , it is observed that the exit lock of cell 2 2802 has not yet been moved. This allows these illustrative shift register cells to store previous data, while mechanisms such as some of the logic gates described herein have their state completely determined by current data inputs. This is because a cell can contain not only a previous input (which ends up being shifted to its output lock during clock phase 3), but also the current input, which is stored in the holding area locks.

A partir de esta descripción resultará evidente que si se desea reversibilidad en el nivel de la celda del registro de desplazamiento (u otro mecanismo), todo lo que se debe hacer es ejecutar las fases de reloj en el orden opuesto. Si se desea una cascada retráctil, entonces se puede usar un esquema como el de sincronización de Bennett, junto con el diseño de hardware apropiado (p. ej., la capacidad de almacenar bits 'basura' de modo que no se pierda información, lo que permite que el cálculo sea reversible para tantos niveles de profundidad como se desee). En el ejemplo actual, el registro de desplazamiento tiene solo 2 celdas de largo, solo se pueden almacenar 2 números. En un sistema real, dicho registro de desplazamiento puede ser arbitrariamente largo. Además, si bien esta implementación particular es un diseño de entrada en serie/salida en serie, resultará obvio dado este ejemplo que MLL se puede usar para realizar cualquier otro tipo de registro de desplazamiento deseado, tal como entrada en paralelo/salida en paralelo, entrada en serie/salida en paralelo, y otros. From this description it will be evident that if reversibility is desired at the level of the shift register cell (or other mechanism), all that needs to be done is to execute the clock phases in the opposite order. If a retractable cascade is desired, then a scheme such as Bennett's synchronization can be used, along with the appropriate hardware design (e.g. the ability to store 'garbage' bits so that no information is lost, thereby which allows the calculation to be reversible for as many depth levels as desired). In the current example, the shift register is only 2 cells long, only 2 numbers can be stored. In a real system, such a shift register can be arbitrarily long. Furthermore, while this particular implementation is a serial input/serial output design, it will be obvious from this example that MLL can be used to implement any other type of shift register desired, such as parallel input/parallel output. serial input/parallel output, and others.

Cancelación del impulso Impulse cancellation

Puede ser útil realizar cálculos sin alterar ni el centro de masa ni el memento de inercia de un grupo de estructuras computacionales, de modo que las fuerzas que estos cambios provocarían no se acoplen a todo el sistema, contribuyendo así potencialmente a la disipación de energía. Esto se puede lograr utilizando conjuntos de estructuras cuyos movimientos cancelen los cambios en el centro de masa o el par de torsión alrededor de cualquier eje (un “ grupo de cancelación” ). Dichas técnicas pueden aplicarse a cualquier estructura, tales como eslabones, cerraduras, puertas lógicas, balanzas, relojes y estructuras agregadas más grandes. Por ejemplo, considérese un eslabón o línea que se usa para transmitir datos desde un lugar a otro. Dicha estructura puede reemplazarse por cuatro estructuras paralelas, agrupadas conceptualmente como dos pares. Cada elemento de un par se mueve en la dirección opuesta, cancela los cambios en el centro de masa y el impulso lineal. Sin embargo, cada par aún podría crear un par de torsión. Por lo tanto, la dirección del movimiento de cada eslabón se invierte desde el primer par al segundo par, lo que da como resultado una cancelación del par de torsión. Dado este tipo de disposición, ninguna fuerza neta se acopla al dispositivo general y, por lo tanto, dichos grupos de cancelación pueden usarse para transmitir datos reduciendo al mismo tiempo la energía acoplada al resto de la estructura. It may be useful to perform calculations without altering either the center of mass or the moment of inertia of a group of computational structures, so that the forces that these changes would cause are not coupled to the entire system, thus potentially contributing to energy dissipation. This can be achieved by using sets of structures whose movements cancel changes in center of mass or torque around any axis (a “cancellation group”). Such techniques can be applied to any structure, such as links, locks, logic gates, scales, clocks, and larger aggregate structures. For example, consider a link or line that is used to transmit data from one place to another. This structure can be replaced by four parallel structures, conceptually grouped as two pairs. Each element of a pair moves in the opposite direction, canceling changes in center of mass and linear momentum. However, each pair could still create a torque. Therefore, the direction of motion of each link is reversed from the first pair to the second pair, resulting in torque cancellation. Given this type of arrangement, no net force is coupled to the overall device and therefore such cancellation groups can be used to transmit data while reducing the energy coupled to the rest of the structure.

La Figura 29 ilustra este concepto usando los grupos 2901 y 2902, cada uno de los cuales contiene dos miembros, 2903 y 2904, y 2905 y 2906, respectivamente. Dentro de un grupo, cada miembro se mueve en la dirección opuesta con respecto al otro miembro (si bien cada miembro no se conecta a los otros en el diagrama, en un sistema real los movimientos se sincronizarían, p. ej., mediante señales de reloj). Por ejemplo, como se representa, el miembro 2903 se ha movido a la derecha, mientras que el miembro 2904 se ha movido a la izquierda. Las aceleraciones que tienen lugar durante estos movimientos generarán fuerzas sobre la estructura de soporte subyacente (el bloque de anclaje, no mostrado). Dado que los miembros 2903 y 2904 aceleran en direcciones opuestas, los componentes lineales de su impulso se cancelarán. Sin embargo, en esta disposición seguirán generando un par de torsión neto en el bloque de anclaje. La adición del segundo par de miembros 2902 que contiene los miembros 2905 y 2906, que también se mueven en direcciones opuestas dentro del par, pero generan un par de torsión que es opuesto al par de torsión del grupo 2901, permite una cancelación completa. Figure 29 illustrates this concept using groups 2901 and 2902, each of which contains two members, 2903 and 2904, and 2905 and 2906, respectively. Within a group, each member moves in the opposite direction with respect to the other member (although each member is not connected to the others in the diagram, in a real system the movements would be synchronized, e.g., by signal signals). clock). For example, as shown, member 2903 has moved to the right, while member 2904 has moved to the left. The accelerations that occur during these movements will generate forces on the underlying support structure (the anchor block, not shown). Since members 2903 and 2904 accelerate in opposite directions, the linear components of their momentum will cancel. However, in this arrangement they will still generate net torque on the anchor block. The addition of the second pair of members 2902 containing members 2905 and 2906, which also move in opposite directions within the pair, but generate a torque that is opposite to the torque of group 2901, allows for complete cancellation.

Obviamente, muchos otros diseños podrían usarse ya sea para cancelar el impulso, o para reducir la necesidad de hacerlo en primer lugar (p. ej., reduciendo la masa o reduciendo los radios a los centros de rotaciones). Dado esto, la cancelación de impulso no se limita a ninguna disposición particular. Tampoco los grupos de cancelación se limitan a un número específico de miembros. Podrían usarse números impares, tal como donde los miembros de un grupo de cancelación no tienen las mismas masas o impulso. Por ejemplo, dos miembros podrían usarse para cancelar un otro miembro que genera dos veces el impulso. Y la cancelación de impulso no necesita ser completa. Además, las fuerzas a lo largo de cualquier eje pueden direccionarse de manera similar. Por ejemplo, en diseños reales, es posible que también sea necesario cancelar fuerzas que provocan un par de torsión a lo largo del eje Z, que se define para este ejemplo como perpendicular al plano de la figura. La complejidad y el aumento en masa de una cancelación completa pueden superar los beneficios, y la cantidad apropiada de cancelación (si corresponde), y qué componentes de fuerza cancelar, si corresponde, variarán de un caso a otro. Obviously, many other designs could be used either to cancel the boost, or to reduce the need to do so in the first place (e.g., by reducing mass or reducing radii to centers of rotations). Given this, momentum cancellation is not limited to any particular arrangement. Cancellation groups are also not limited to a specific number of members. Odd numbers could be used, such as where the members of a cancellation group do not have the same masses or momentum. For example, two members could be used to cancel another member that generates twice the boost. And impulse cancellation need not be complete. Furthermore, forces along any axis can be directed in a similar way. For example, in real designs, it may also be necessary to cancel forces that cause torque along the Z axis, which is defined for this example as perpendicular to the plane of the figure. The complexity and increase in mass of a full cancellation may outweigh the benefits, and the appropriate amount of cancellation (if any), and what force components to cancel, if any, will vary from case to case.

Relojes Watches

En un sistema MLL, un sistema de reloj sincroniza los mecanismos, y también proporciona fuerza para accionar los mecanismos. Es muy conocido en el campo de las ciencias de la computación que pueden usarse sistemas computacionales con diferentes números de señales (o fases) de reloj. Se requieren al menos 2 fases, pero 3 fases pueden ser ventajosas, y también se pueden usar números más altos. Un sistema de reloj MLL podría consistir en uno o más relojes que crean una pluralidad de señales de reloj. Estas señales podrían tomar la forma de movimiento recíproco transmitido a través de mecanismos, tales como a través de líneas, o el uso de tramas rígidas (que son en realidad simplemente eslabones de forma especializada, por ejemplo, una trama rígida podría conectarse a un reloj en una única ubicación y, a continuación, ramificarse, potencialmente en múltiples direcciones o dimensiones) para conectarse a muchas puertas u otros mecanismos), soportados por eslabones de soporte según sea necesario. El número óptimo de mecanismos conectados a un único reloj o señal de reloj será específico de la implementación, dependiendo de factores como la masa que se acciona, la rigidez del sistema y la velocidad de conmutación. Alternativamente, las señales de reloj podrían generarse mediante múltiples relojes locales, tales como osciladores o masas giratorias, con comunicación entre los relojes según se requiera para mantenerlos sincronizados. In an MLL system, a clock system synchronizes the mechanisms, and also provides force to drive the mechanisms. It is well known in the field of computer science that computer systems with different numbers of clock signals (or phases) can be used. At least 2 phases are required, but 3 phases can be advantageous, and higher numbers can also be used. An MLL clock system could consist of one or more clocks that create a plurality of clock signals. These signals could take the form of reciprocating motion transmitted through mechanisms, such as through lines, or the use of rigid frames (which are actually simply links of specialized shape; for example, a rigid frame could be connected to a clock). in a single location and then branch out, potentially in multiple directions or dimensions) to connect to many doors or other mechanisms), supported by support links as needed. The optimal number of mechanisms connected to a single clock or clock signal will be implementation-specific, depending on factors such as the mass being driven, system rigidity, and switching speed. Alternatively, clock signals could be generated by multiple local clocks, such as oscillators or rotating masses, with communication between the clocks as required to keep them synchronized.

Las señales de reloj podrían generarse de varias maneras. Por ejemplo, se pueden usar masas giratorias, osciladores armónicos, o levas y seguidores de leva, creando movimiento periódico en eslabones donde, por ejemplo, una posición puede representar “ 0” y otra posición puede representar “ 1” . Una masa giratoria, que es esencialmente un volante, puede servir como un oscilador simple. Los volantes de inercia, acoplados a eslabones mediante juntas rotatorias, podrían usarse para accionar cada señal de reloj hacia adelante y hacia atrás y no requieren partes más allá de eslabones y juntas rotatorias. Un volante de inercia podría mantenerse en movimiento constante mediante algún tipo de fuente de energía o motor, que repone la energía perdida en los mecanismos disipativos del sistema. Una discusión sobre exactamente cómo se podría implementar dicha fuente de energía o motor está más allá de los límites de la invención. Resulta obvio a partir de la literatura, que contiene un trabajo sustancial tanto sobre motores a macroescala como sobre motores a escala molecular, que incluyen biomotores (p. ej., ATPasas, flagelos) y motores sintéticos, que hay muchas formas de implementar dichos motores y muchas formas de alimentar dichos motores, incluidos los campos químicos, luminosos, de corriente continua y eléctricos externos. Clock signals could be generated in several ways. For example, rotating masses, harmonic oscillators, or cams and cam followers can be used, creating periodic motion in links where, for example, one position may represent “0” and another position may represent “1”. A rotating mass, which is essentially a flywheel, can serve as a simple oscillator. Flywheels, coupled to links by rotating joints, could be used to drive each clock signal back and forth and required no parts beyond links and rotating joints. A flywheel could be kept in constant motion by some type of power source or motor, which replenishes the energy lost in the dissipative mechanisms of the system. A discussion of exactly how such a power source or motor could be implemented is beyond the limits of the invention. It is obvious from the literature, which contains substantial work on both macroscale motors and molecular scale motors, including biomotors (e.g., ATPases, flagella) and synthetic motors, that there are many ways to implement such motors. and many ways to power such motors, including external chemical, light, direct current, and electrical fields.

Otros diseños de relojes introducen partes más allá de eslabones y juntas rotatorias, por lo que no se encuentran técnicamente en la definición de m Ll . Sin embargo, dado que el uso de sistemas de sincronización alternativos conectados a un sistema MLL puede resultar útil, se describe cómo se pueden diseñar dichas implementaciones de reloj alternativas para una disipación de energía mínima. Además, ya que un reloj único puede accionar muchos elementos lógicos, incluso si el propio reloj fuera algo disipativo, en general, el cálculo aún podría ser bastante eficiente. Other watch designs introduce parts beyond links and rotating joints, so they are not technically in the definition of m Ll. However, since the use of alternative timing systems connected to an MLL system can be useful, we describe how such alternative clock implementations can be designed for minimal power dissipation. Furthermore, since a single clock can drive many logic elements, even if the clock itself were somewhat dissipative, overall the computation could still be quite efficient.

Un sistema de sincronización alternativo consistiría en usar osciladores armónicos simples, preferiblemente con un factor Q elevado. El uso de osciladores armónicos simples tiene la ventaja de que se usaría una única frecuencia de sincronización, y que la frecuencia de sincronización sería proporcionada por un mecanismo muy simple. Usando dicho oscilador, los componentes se diseñarían preferiblemente para usar señales de reloj de tipo sinusoidal (incluidas señales con transiciones de tipo sinusoidal entre 0 y 1 con áreas planas intermedias para fines de temporización), y se diseñarían de tal manera que no generaran sobretonos de frecuencia significativamente más alta durante el funcionamiento (como, por ejemplo, si una parte móvil entra en colisión con otra parte móvil). Alternativamente, podría usarse una suma de osciladores simples, la suma que se aproxima a la señal de reloj deseada. El uso de un número suficiente de osciladores podría, en principio, aproximar la señal de reloj deseada con la máxima precisión deseada, a expensas de partes adicionales. Una forma de implementar un oscilador armónico es con un resorte (en el que se incluye una flexión u otras estructuras de propósito similar), que podría estar fabricado de cualquier material con las propiedades y constante de resorte apropiadas, incluyendo los mismos materiales que los eslabones. An alternative timing system would be to use simple harmonic oscillators, preferably with a high Q factor. The use of simple harmonic oscillators has the advantage that a single synchronization frequency would be used, and that the synchronization frequency would be provided by a very simple mechanism. Using such an oscillator, the components would preferably be designed to use sinusoidal-type clock signals (including signals with sinusoidal-type transitions between 0 and 1 with flat areas in between for timing purposes), and would be designed in such a way that they do not generate overtones of significantly higher frequency during operation (such as if a moving part collides with another moving part). Alternatively, a simple oscillator sum could be used, the sum approximating the desired clock signal. Using a sufficient number of oscillators could, in principle, approximate the desired clock signal with the maximum desired precision, at the expense of additional parts. One way to implement a harmonic oscillator is with a spring (including a flexure or other structures of similar purpose), which could be made of any material with the appropriate properties and spring constant, including the same materials as the links. .

Las levas y los seguidores de leva son otra forma de generar una señal de reloj. Se puede usar una leva y seguidor de leva para generar una señal de reloj muy suave, como se describe posteriormente. También se puede usar una leva para generar una señal de reloj con una forma de onda esencialmente arbitraria. Podría hacerse una leva, por ejemplo, a partir de un eslabón rotatorio soportado por juntas rotatorias en cada extremo. El eslabón forma así un eje que puede usarse como árbol de levas. La leva se fijaría al árbol de levas (o el árbol de levas podría ser en realidad la leva, suponiendo que tiene la forma de sección transversal apropiada). Puede construirse un seguidor de leva, por ejemplo, usando una rueda conectada a dos juntas rotatorias, conectadas a un brazo de palanca. La rotación del árbol de levas haría rotar la leva. La rueda de seguidor de leva se montaría hacia arriba y hacia abajo sobre la leva, haciendo que el brazo de palanca subiera y bajara junto con ella. El brazo de palanca sería un eslabón en un eslabonamiento adecuado. Se podrían usar muchas otras geometrías y posiciones relativas para la leva y el seguidor de leva, incluidos diseños donde el seguidor de leva rodea la leva, o viceversa, tal como con un rotor y un estator excéntricos, así como variaciones en los tipos de movimiento que realiza la leva, tal como diseños donde la leva simplemente se balancea hacia adelante y hacia atrás, o se mueve de una manera que está ella misma bajo control programático, así como combinaciones de las variaciones anteriores y evidentes. Cams and cam followers are another way to generate a clock signal. A cam and cam follower can be used to generate a very smooth clock signal, as described later. A cam can also be used to generate a clock signal with an essentially arbitrary waveform. A cam could be made, for example, from a rotating link supported by rotating joints at each end. The link thus forms an axle that can be used as a camshaft. The cam would be attached to the camshaft (or the camshaft could actually be the cam, assuming it has the appropriate cross-sectional shape). A cam follower can be constructed, for example, using a wheel connected to two rotating joints, connected to a lever arm. Rotation of the camshaft would rotate the cam. The cam follower wheel would ride up and down on the cam, causing the lever arm to rise and fall along with it. The lever arm would be a link in a suitable linkage. Many other geometries and relative positions for the cam and cam follower could be used, including designs where the cam follower surrounds the cam, or vice versa, such as with an eccentric rotor and stator, as well as variations in types of motion. that the cam performs, such as designs where the cam simply rocks back and forth, or moves in a way that is itself under programmatic control, as well as combinations of the above and obvious variations.

Si bien puede no ser obvio cómo se pueden hacer curvas suaves a nivel molecular, dado que los ángulos y las distancias están cuantificados por la naturaleza de los enlaces químicos, este problema puede superarse. Por ejemplo, en el diamante, las dislocaciones de Lomer enterradas se podrían usar para crear curvas suaves sobre la superficie de una leva Lonsdaleite (diamante hexagonal). De manera similar, podrían lograrse cambios graduales con el diamante y otros materiales, usando cambios en los patrones de enlace, la incorporación de elementos de radios atómicos variables, usando tensión para desplazar ligeramente un átomo o átomos, o usando estructuras naturalmente curvas, tales como los nanotubos. Usando estas estrategias, una implementación molecular de las levas y los seguidores de leva (y de hecho, cualquier parte de dicho sistema) podría realizarse a tolerancias precisas casi arbitrariamente, incluso a distancias por debajo de un único diámetro atómico. While it may not be obvious how smooth curves can be made at the molecular level, since angles and distances are quantified by the nature of chemical bonds, this problem can be overcome. For example, in diamond, buried Lomer dislocations could be used to create smooth curves on the surface of a Lonsdaleite cam (hexagonal diamond). Similarly, gradual changes could be achieved with diamond and other materials, using changes in bonding patterns, the incorporation of elements of varying atomic radii, using tension to slightly displace an atom or atoms, or using naturally curved structures, such as the nanotubes. Using these strategies, a molecular implementation of cams and cam followers (and indeed any part of such a system) could be realized to almost arbitrarily precise tolerances, even at distances below a single atomic diameter.

El uso de una masa giratoria para generar señales de reloj solo requiere juntas rotatorias y eslabones, las partes básicas de los sistemas MLL. Si se usaran una leva y un seguidor de leva, las juntas rotatorias que conectan el brazo de palanca del seguidor de leva a la rueda, y las que permiten que la leva gire, ya se han descrito nuevamente. Sin embargo, en un sistema basado en levas, hay un contacto giratorio entre la leva y las superficies de rueda de seguidor de leva, una situación que no se presenta cuando se consideran las partes básicas de MLL. Si bien esto puede parecer un mecanismo que crea una fricción de deslizamiento no deseada, no es necesariamente así. Las dos superficies no tienen que deslizarse una sobre otra, sino que giran sincrónicamente. El análisis indica que, especialmente en el caso de una implementación a escala molecular y atómicamente precisa (o casi), la disipación de energía de dicho mecanismo sería muy baja. Using a rotating mass to generate clock signals only requires rotating joints and links, the basic parts of MLL systems. If a cam and a cam follower were used, the rotating joints that connect the lever arm of the cam follower to the wheel, and those that allow the cam to rotate, have already been described again. However, in a cam-based system, there is rotating contact between the cam and the cam follower wheel surfaces, a situation that does not arise when considering the basic MLL parts. While this may seem like a mechanism that creates unwanted sliding friction, this is not necessarily the case. The two surfaces do not have to slide over each other, but rather rotate synchronously. The analysis indicates that, especially in the case of a molecular-scale and atomically precise (or nearly so) implementation, the energy dissipation of such a mechanism would be very low.

En dicho mecanismo a escala molecular, la muy ligera distorsión en la forma de la rueda y la muy ligera variación en la fuerza de atracción (van der Waals) entre la superficie y la rueda podrían provocar una muy ligera generación de fonones. Vistas en el marco de referencia del seguidor de leva, la rueda y la superficie serían estáticas, salvo por el desplazamiento a una frecuencia muy alta de las estructuras cristalinas dentro de ellas. Como consecuencia, no debería haber generación de fonones de baja frecuencia. Y la inercia y las incertidumbres posicionales causadas por el ruido térmico impedirán que el mecanismo pueda reproducir los componentes de frecuencia más alta en la señal de la leva, incluso en ausencia de un filtro de paso bajo en la salida (que podría usarse si se desea, y podría implementarse, p. ej., como un simple dispositivo de resorte y masa). In such a molecular scale mechanism, the very slight distortion in the shape of the wheel and the very slight variation in the attractive force (van der Waals) between the surface and the wheel could cause a very slight generation of phonons. Viewed in the frame of reference of the cam follower, the wheel and surface would be static, except for the displacement at a very high frequency of the crystalline structures within them. As a consequence, there should be no generation of low frequency phonons. And the inertia and positional uncertainties caused by thermal noise will prevent the mechanism from being able to reproduce the higher frequency components in the cam signal, even in the absence of a low-pass filter at the output (which could be used if desired. , and could be implemented, e.g., as a simple spring and mass device).

Además, podrían usarse diversos métodos de cancelación para minimizar el componente de señal de alta frecuencia que está codificado en la superficie de la leva. Esto puede realizarse, por ejemplo, usando una pluralidad de ruedas de seguidor de leva que leen una pluralidad de pistas en la superficie de leva, estando cada pista escalonada una cierta distancia. Al unir cada rueda de seguidor de leva al seguidor de leva, se sumarían o promediarían efectivamente sus salidas, cancelando al menos parte de la señal de ruido de alta frecuencia. Se podría usar cualquier número de pistas y ruedas de seguidor de leva, con cualquier forma deseada para cada pista (p. ej., podrían codificarse diferentes señales de cancelación en cada pista), dando como resultado una precisión arbitraria de la señal agregada. Otro método para reducir el ruido de alta frecuencia sería el de girar el eje cristalino del material del que está hecha la leva, y realizar una rotación correspondiente de la estructura cristalina de la rueda que se engrana con ellos. Al elegir de manera adecuada la rotación cristalina y ancho de la leva y seguidor de leva, otras señales de alta frecuencia pueden eliminarse debido al cambio en la sincronización y el espaciamiento atómico cuando la leva entra en contacto con la rueda del seguidor de leva. Otro método más para reducir la transmisión de señales de alta frecuencia es reducir la rigidez del acoplamiento de la leva y el seguidor de leva al resto del sistema. Por ejemplo, reducir la constante de resorte del brazo del seguidor de leva, o reducir la rigidez de las uniones en las que se monta el seguidor de leva, ayudaría a filtrar señales de alta frecuencia. Additionally, various cancellation methods could be used to minimize the high frequency signal component that is encoded on the cam surface. This can be done, for example, by using a plurality of cam follower wheels that read a plurality of tracks on the cam surface, each track being staggered a certain distance. By attaching each cam follower wheel to the cam follower, their outputs would be effectively summed or averaged, canceling out at least some of the high frequency noise signal. Any number of tracks and cam follower wheels could be used, with any desired shape for each track (e.g., different cancellation signals could be encoded in each track), resulting in arbitrary precision of the aggregated signal. Another method of reducing high frequency noise would be to rotate the crystalline shaft of the material the cam is made of, and perform a corresponding rotation of the crystalline structure of the wheel that meshes with them. By properly choosing the crystal rotation and width of the cam and cam follower, other high frequency signals can be eliminated due to the change in timing and atomic spacing when the cam contacts the cam follower wheel. Yet another method to reduce the transmission of high frequency signals is to reduce the rigidity of the cam and cam follower coupling to the rest of the system. For example, reducing the spring constant of the cam follower arm, or reducing the stiffness of the joints on which the cam follower mounts, would help filter out high frequency signals.

Teniendo en cuenta estos ejemplos, resultará obvio que estas no son las únicas formas de reducir los componentes de alta frecuencia. Hay muchas maneras de garantizar que las partes en contacto giratorio no creen ni transmitan señales de alta frecuencia, y el uso de partes atómicamente precisas permite en particular minimizar dichas señales. A medida que el seguidor de leva sube y baja sobre la superficie de leva curva, siguiendo la señal de reloj codificada en esa superficie, someterá la superficie de la leva a fuerzas inerciales. Cada aceleración o desaceleración del seguidor de leva creará una fuerza correspondiente en la superficie de la leva. Estas fuerzas periódicas crearán fonones a la frecuencia del reloj. Esta fuente de disipación de energía se puede cancelar si dos seguidores de leva siguen dos levas, codificando las dos levas señales iguales pero opuestas. Y, dado que la frecuencia de reloj es arbitraria, esta frecuencia puede reducirse hasta que la disipación de energía causada por el acoplamiento de los componentes de alta frecuencia de la señal de reloj a los modos de vibración mecánica se encuentre bajo los niveles deseados. Téngase en cuenta que el mecanismo de seguidor de leva descrito puede ejercer una fuerza relativamente fuerte cuando la leva está empujando el seguidor de leva. Sin embargo, durante el movimiento en la dirección opuesta, la fuerza está limitada por la fuerza de Van der Waals entre la leva y la rueda. Esto puede rectificarse, si es necesario, por ejemplo, usando dos seguidores de leva y dos levas (con las señales codificadas giradas adecuadamente entre sí), donde los seguidores de leva están en lados opuestos de sus respectivas levas. El primer seguidor de leva puede ejercer una fuerte fuerza en una dirección, mientras que el segundo seguidor de leva puede ejercer una fuerte fuerza en la dirección opuesta. Considering these examples, it will become obvious that these are not the only ways to reduce high-frequency components. There are many ways to ensure that parts in rotating contact do not create or transmit high frequency signals, and the use of atomically precise parts makes it possible in particular to minimize such signals. As the cam follower moves up and down the curved cam surface, following the clock signal encoded in that surface, it will subject the cam surface to inertial forces. Each acceleration or deceleration of the cam follower will create a corresponding force on the cam surface. These periodic forces will create phonons at the clock frequency. This source of energy dissipation can be canceled if two cam followers follow two cams, the two cams encoding equal but opposite signals. And, since the clock frequency is arbitrary, this frequency can be reduced until the power dissipation caused by the coupling of the high-frequency components of the clock signal to the mechanical vibration modes is below the desired levels. Note that the cam follower mechanism described can exert a relatively strong force when the cam is pushing the cam follower. However, during movement in the opposite direction, the force is limited by the Van der Waals force between the cam and the wheel. This can be rectified, if necessary, for example by using two cam followers and two cams (with the coded signals rotated appropriately relative to each other), where the cam followers are on opposite sides of their respective cams. The first cam follower can exert a strong force in one direction, while the second cam follower can exert a strong force in the opposite direction.

Análisis ilustrativo del tiempo de conmutación Illustrative analysis of switching time

Las ecuaciones constitutivas básicas del movimiento newtoniano simple y los supuestos sobre el tamaño y la resistencia física de los eslabones pueden aplicarse a un análisis del tiempo de conmutación, masa, fuerza y frecuencia de resonancia para una implementación a escala molecular de los mecanismos MLL. Para proporcionar un ejemplo concreto, se deben hacer varios supuestos, todos los cuales podrían variar en gran medida dependiendo de la implementación exacta, pero el rendimiento exacto de un sistema dado no es el punto, sino que el objetivo es hacer una estimación de una posible velocidad de funcionamiento de un sistema de tamaño molecular ilustrativo. Se supone que los eslabones tienen ~20 nm de longitud y aproximadamente de 0,5 nm a 0,7 nm de diámetro. Se supone que los eslabones están hechos de diamante o material similar, y se pueden arriostrar para aumentar su rigidez (p. ej., una viga con arriostramiento triangular, en lugar de solo una viga recta). Se supone que la diferencia posicional entre “0” y “ 1” es ~2 nm. Se supone que las juntas rotatorias son similares a las mostradas en la Figura 1, y se supone que el sistema funciona a temperatura ambiente. Estos supuestos permiten calcular la rigidez del eslabón y la junta rotatoria. Para determinar la frecuencia de resonancia, debe determinarse la masa. The basic constitutive equations of simple Newtonian motion and assumptions about the size and physical strength of the links can be applied to an analysis of switching time, mass, force, and resonance frequency for a molecular-scale implementation of MLL mechanisms. To provide a concrete example, several assumptions must be made, all of which could vary greatly depending on the exact implementation, but the exact performance of a given system is not the point, rather the goal is to make an estimate of a possible operating speed of an illustrative molecular size system. The links are assumed to be ~20 nm in length and approximately 0.5 nm to 0.7 nm in diameter. The links are supposed to be made of diamond or similar material, and can be braced to increase their rigidity (e.g., a triangularly braced beam, rather than just a straight beam). The positional difference between “0” and “1” is assumed to be ~2 nm. The rotating unions are assumed to be similar to those shown in Figure 1, and the system is assumed to operate at room temperature. These assumptions allow the stiffness of the link and the rotating joint to be calculated. To determine the resonant frequency, the mass must be determined.

La masa de un mecanismo típico puede variar ampliamente. Incluso usando un tipo de eslabón dado, la masa será bastante diferente dependiendo de si el mecanismo es un eslabón único de 4 barras, una cerradura, una balanza, una puerta lógica, etc., y de las implementaciones exactas de dichas estructuras. Para utilizar cifras redondas, la masa móvil de un eslabón puede ser de aproximadamente 8 x 10-23 kg, mientras que la masa móvil de un mecanismo hecho de varios eslabones podría ser del orden de 10-21 kg. Usando estos supuestos, la frecuencia de resonancia para un mecanismo a escala molecular ilustrativo puede ser de aproximadamente 13 GHz. Una señal de reloj de onda cuadrada conduciría a una disipación de energía sustancialmente más alta que la necesaria. Por lo tanto, se supone que la forma de onda del reloj se genera como una onda sinusoidal, convolucionada con una gaussiana para reducir los componentes de alta frecuencia no deseados, u optimizada usando la teoría de sistemas lineales estándar para minimizar la generación de resonancias no deseadas. Además, por razones de moderación, el reloj puede funcionar a una frecuencia muy por debajo de la frecuencia de resonancia de 13 GHz calculada. Dependiendo de varias suposiciones, tales como cuánta disipación de energía es aceptable y con cuánto margen de error, esto da como resultado tiempos de conmutación en el intervalo de 1 ns a 10 ns. Obviamente, esto es solo a modo de ejemplo. Las estructuras más grandes funcionarían probablemente a velocidades más lentas, mientras que estructuras más pequeñas, estructuras más rígidas, diseños que mueven distancias más cortas entre “0” y “ 1” , temperaturas de funcionamiento más bajas, o relajación de algunos de los parámetros de diseño conservadores asumidos, daría como resultado tiempos de conmutación más rápidos. The mass of a typical mechanism can vary widely. Even using a given link type, the mass will be quite different depending on whether the mechanism is a 4-bar single link, a lock, a scale, a logic gate, etc., and the exact implementations of those structures. To use round figures, the moving mass of a link may be approximately 8 x 10-23 kg, while the moving mass of a mechanism made of several links could be of the order of 10-21 kg. Using these assumptions, the resonance frequency for an illustrative molecular scale mechanism may be approximately 13 GHz. A square wave clock signal would lead to substantially higher power dissipation than necessary. Therefore, the clock waveform is assumed to be generated as a sine wave, convolved with a Gaussian to reduce unwanted high-frequency components, or optimized using standard linear systems theory to minimize the generation of non-resonances. desired. Additionally, for reasons of restraint, the clock can operate at a frequency well below the calculated 13 GHz resonance frequency. Depending on various assumptions, such as how much power dissipation is acceptable and with how much margin of error, this results in switching times in the range of 1 ns to 10 ns. Obviously, this is just an example. Larger structures would likely operate at slower speeds, while smaller structures, more rigid structures, designs that move shorter distances between “0” and “1”, lower operating temperatures, or relaxation of some of the Assumed conservative design, would result in faster switching times.

Resumen de MLL MLL Overview

Se ha demostrado que MLL es capaz de crear mecanismos que incluyen líneas, puertas lógicas, cerraduras, balanzas, puertas de conmutación y registros de desplazamiento, utilizando solo juntas rotatorias y eslabones. MLL proporciona cualquier lógica combinatoria usando varias combinaciones de puertas lógicas que, solas (p. ej., puertas NAND o Fredkin) o en conjunto, son universales. La lógica secuencial y, por lo tanto, la memoria, pueden proporcionarse mediante flip-flop o celdas, que pueden combinarse en registros de desplazamiento. MLL has been shown to be capable of creating mechanisms including lines, logic gates, locks, scales, switching gates and shift registers, using only rotating joints and links. MLL provides any combinatorial logic using various combinations of logic gates that, alone (e.g., NAND or Fredkin gates) or together, are universal. Sequential logic, and therefore memory, can be provided by flip-flops or cells, which can be combined into shift registers.

Teniendo en cuenta la disponibilidad de la lógica combinatoria y la lógica secuencial, resultará obvio que puede construirse un sistema computacional completo usando MLL. Por ejemplo, la arquitectura de Von Neumann, una conocida arquitectura Turing completa, requiere tres componentes principales: Una unidad de control, una unidad lógica aritmética y una memoria. Usando la lógica combinatoria y flip-flop, se puede crear una máquina de estado finito que puede usarse como unidad de control. La lógica combinatoria puede usarse para crear una unidad lógica aritmética. Y, se pueden usar flip-flop para crear memoria. Todo lo que se necesita para un sistema computacional completo. Por supuesto, dicho sistema no necesita basarse en la arquitectura de Von Neumann; esto es simplemente un ejemplo para ilustrar el hecho de que todos los componentes necesarios de un sistema Turing completo pueden proporcionarse usando MLL. Dependiendo de los mecanismos exactos utilizados y del esquema de sincronización empleado, un sistema computacional basado en MI,L puede ser irreversible, reversible o una combinación de los dos. La capacidad de crear mecanismos de computación mecánica y sistemas computacionales completos, usando solo eslabones y juntas rotatorias, puede proporcionar ventajas que incluyen reducción de fricción (y, por lo tanto, del consumo de energía y la generación de calor residual), simplificación del diseño y la fabricación de dispositivos, y robustez del dispositivo (p. ej., funcionamiento a temperaturas más extremas que lo permitido por muchos otros sistemas computacionales conocidos, dado que la lógica mecánica podría funcionar hasta cerca del punto de fusión de sus partes constituyentes, mientras que la computación electrónica sufre de problemas de banda prohibida a temperaturas extremas). Considering the availability of combinatorial logic and sequential logic, it will be obvious that a complete computational system can be built using MLL. For example, the Von Neumann architecture, a well-known Turing complete architecture, requires three main components: A control unit, an arithmetic logic unit, and a memory. Using combinatorial and flip-flop logic, a finite state machine can be created that can be used as a control unit. Combinatorial logic can be used to create an arithmetic logical unit. And, flip-flops can be used to create memory. Everything you need for a complete computer system. Of course, such a system need not be based on the Von Neumann architecture; This is simply an example to illustrate the fact that all the necessary components of a complete Turing system can be provided using MLL. Depending on the exact mechanisms used and the synchronization scheme employed, an MI,L-based computational system can be irreversible, reversible, or a combination of the two. The ability to create mechanical computing mechanisms and complete computational systems, using only rotating links and joints, can provide advantages including reduction of friction (and therefore energy consumption and waste heat generation), design simplification and device manufacturing, and device robustness (e.g., operation at more extreme temperatures than permitted by many other known computing systems, since the mechanical logic could operate up to near the melting point of its constituent parts, while that electronic computing suffers from bandgap problems at extreme temperatures).

Lógica de flexión mecánica Mechanical bending logic

Las flexiones pueden tomar el lugar de las juntas rotatorias utilizadas en MLL, dando como resultado la Lógica de flexión mecánica (“ MFL” ). Con la sustitución de juntas rotatorias por flexiones, todos los mecanismos MLL tienen mecanismos de MFL análogos. Por ejemplo, la Figura 30 muestra la versión MFL de la cerradura MLL representada en la Figura 7. Los extremos de eslabón 3001 y 3002 de los eslabones 3003 y 3004, respectivamente, son un lugar donde podrían conectarse mecanismos de entrada. Los extremos de eslabón anclados 3007 y 3008 de los eslabones 3003 y 3004 actúan de manera análoga a las juntas rotatorias ancladas. Téngase en cuenta que no hay juntas rotatorias reales presentes en la versión MFL de una cerradura. Más bien, las flexiones, ilustradas por los recortes semicirculares 3005 y 3006, proporcionan puntos flexibles entre varias partes de la estructura. Estas flexiones permiten que la fuerza, que puede introducirse en los extremos 3001 o 3002 de eslabones, se transmita a través de eslabones triangulares 3010 o 3011, respectivamente, y en los extremos 3012 o 3013 de eslabón (que pueden considerarse como salidas), respectivamente. El eslabón 3009 cumple el mismo propósito que el eslabón 709 en la cerradura MLL coplanaria de la Figura 7. Todo el mecanismo de la Figura 30 puede realizarse (aunque no es necesario que así sea) de una única pieza de material, donde los diferentes eslabones son monolíticos, pero lógicamente separables porque están delimitados por flexiones. Flexures can take the place of rotating joints used in MLL, resulting in Mechanical Bending Logic (“MFL”). With the replacement of rotating joints by bending, all MLL mechanisms have analogous MFL mechanisms. For example, Figure 30 shows the MFL version of the MLL lock depicted in Figure 7. Link ends 3001 and 3002 of links 3003 and 3004, respectively, are a location where input mechanisms could be connected. The anchored link ends 3007 and 3008 of the links 3003 and 3004 act analogously to the anchored rotary joints. Please note that there are no actual rotating joints present in the MFL version of a lock. Rather, the flexures, illustrated by semicircular cutouts 3005 and 3006, provide flexible points between various parts of the structure. These flexures allow force, which may be introduced into link ends 3001 or 3002, to be transmitted through triangular links 3010 or 3011, respectively, and into link ends 3012 or 3013 (which may be considered outputs), respectively. . Link 3009 serves the same purpose as link 709 in the coplanar MLL lock of Figure 7. The entire mechanism of Figure 30 can be made (but need not be) from a single piece of material, where the different links They are monolithic, but logically separable because they are bounded by inflections.

En general, el movimiento y la función de las cerraduras MFL y MLL son completamente análogos, pero los cambios en el ángulo relativo entre eslabones en MFL se facilitan mediante flexiones en lugar de juntas rotatorias. Si bien se usan cerraduras para demostrar la analogía entre MFL y MLL, será evidente que pueden realizarse las mismas analogías entre cualquier mecanismo y, por lo tanto, al reemplazarse las juntas rotatorias con flexiones, se puede realizar un sistema T uring completo usando MFL. Por supuesto, las flexiones requieren materiales adecuados, que pueden diferir de los de los eslabones, y la geometría de las flexiones no necesariamente tiene que ser solo la que se representa en la Figura 30. Las flexiones son conocidas en las artes mecánicas, y los diseños y materiales adecuados podrían adaptarse para casi cualquier grado de movimiento, tamaño, temperatura de funcionamiento u otros parámetros. In general, the movement and function of MFL and MLL locks are completely analogous, but changes in the relative angle between links in MFL are facilitated by flexures rather than rotary joints. Although locks are used to demonstrate the analogy between MFL and MLL, it will be evident that the same analogies can be made between any mechanism and therefore, by replacing the rotating joints with flexures, a complete T uring system can be realized using MFL. Of course, bends require suitable materials, which may differ from those of the links, and the geometry of the bends does not necessarily have to be just that depicted in Figure 30. Bends are known in the mechanical arts, and the Suitable designs and materials could be adapted for almost any degree of movement, size, operating temperature or other parameters.

Lógica de cableado mecánico Mechanical wiring logic

Otro método para implementar mecanismos y sistemas de computación que son análogos a MLL (y, por lo tanto, también a MFL) es el de reemplazar eslabones y juntas rotatorias con cables, poleas y manillas. Este paradigma de diseño se denominará Lógica de cableado mecánico (“ MCL” ). Con respecto a las partes básicas, o primitivas, los cables de MCL son análogos a los eslabones MLL, y las poleas MCL son análogas a las juntas rotatorias MLL. Las manillas son una primitiva adicional que no tienen un homólogo directo en MLL o MFL. Las manillas se usan para ayudar en la interacción de cables, por ejemplo, para crear cerraduras, y en ese sentido, ayudan en la construcción de mecanismos con funciones lógicas análogas, incluso si la parte en sí no tiene un análogo directo. Teniendo en cuenta las enseñanzas en la presente memoria, resultará obvio que al aplicar fuerza a un cable, el movimiento puede transmitirse por el cable y a otros mecanismos según se desee (de ahí su analogía con los eslabones). De manera similar, resultará evidente que las poleas se pueden usar, entre otros fines, para permitir que los cables se doblen de manera que el movimiento pueda dirigirse en cualquier dirección deseada (de ahí su analogía con las juntas rotatorias). Another method of implementing mechanisms and computing systems that are analogous to MLL (and therefore also MFL) is to replace rotating links and joints with cables, pulleys, and handles. This design paradigm will be referred to as Mechanical Wiring Logic (“MCL”). With respect to basic, or primitive, parts, MCL cables are analogous to MLL links, and MCL pulleys are analogous to MLL rotating joints. Handles are an additional primitive that do not have a direct counterpart in MLL or MFL. Handles are used to assist in the interaction of wires, for example to create locks, and in that sense, they assist in the construction of mechanisms with analogous logical functions, even if the part itself has no direct analogue. Taking into account the teachings herein, it will be obvious that by applying force to a cable, the movement can be transmitted through the cable and to other mechanisms as desired (hence its analogy with links). Similarly, it will become apparent that pulleys can be used, among other purposes, to allow cables to bend so that movement can be directed in any desired direction (hence their analogy with rotating joints).

Las primitivas MCL se pueden usar para crear, entre otras, estructuras, balanzas y cerraduras. Si bien las implementaciones MCL de balanzas y cerraduras pueden parecer diferentes a sus homólogas en MLL, vistas desde una perspectiva de “ caja negra” , las balanzas y cerraduras de MCL pueden implementarse para ser lógicamente equivalentes a los mecanismos respectivos en m Ll . Dicho esto, MCL también proporciona sistemas Turing completos. MCL primitives can be used to create, among others, structures, scales, and locks. While MCL implementations of scales and locks may appear different from their counterparts in MLL, viewed from a “black box” perspective, MCL scales and locks can be implemented to be logically equivalent to the respective mechanisms in m Ll. That said, MCL also provides Turing complete systems.

Pistas y canales Tracks and channels

Al igual que las juntas rotatorias de MLL, las poleas de MCL pueden anclarse o no anclarse. Sin embargo, en MLL los eslabones son rígidos y esto ayuda a restringir el movimiento de las juntas rotatorias no ancladas. En MCL, los cables no son rígidos, por lo que las restricciones geométricas adecuadas deben proporcionarse de una manera diferente. Una forma de hacer esto sería mantener la tensión en los cables apropiados (p. ej., cables de reloj) de modo que las poleas conectadas a dichas líneas no puedan moverse a menos que, en este ejemplo, las líneas de reloj se muevan, en cuyo caso el movimiento de la polea se limita a la trayectoria que definen los cables de reloj. Otra forma de abordar este problema sería montar poleas en eslabones donde fuera necesaria dicha restricción (aunque entonces se requeriría otra primitiva, y dado que esto desdibuja la distinción entre MLL y MCL, dicha realización no se analiza más adelante). Otra forma más es el uso de canales, pistas u otros medios de guía en el bloque de anclaje. En virtud de la fijación de manera deslizante a los medios de guía, el movimiento de poleas no ancladas se restringe apropiadamente. Like MLL rotating joints, MCL pulleys can be anchored or non-anchored. However, in MLL the links are rigid and this helps restrict the movement of unanchored rotating joints. In MCL, the cables are not rigid, so appropriate geometric constraints must be provided in a different way. One way to do this would be to maintain tension on the appropriate cables (e.g. clock cables) so that the pulleys connected to those lines cannot move unless, in this example, the clock lines move, in which case the movement of the pulley is limited to the path defined by the clock wires. Another way to approach this problem would be to mount pulleys on links where such a constraint would be necessary (although another primitive would then be required, and since this blurs the distinction between MLL and MCL, such an implementation is not discussed below). Yet another way is the use of channels, tracks or other guiding means in the anchor block. By virtue of the sliding attachment to the guide means, the movement of unanchored pulleys is appropriately restricted.

La Figura 31 y la Figura 32 muestran una vista superior y una vista lateral, respectivamente, de una polea que puede deslizarse en un canal. El bloque de anclaje 3101 contiene el canal 3104. La polea 3102 es monolítica con, o conectada a (de manera fija o rotatoria), el eje 3103. El eje 3103 se conecta a sí mismo y la polea 3102 al canal 3104 de manera deslizable. El cable de accionamiento 3105 se fija al eje 3103 y permite el movimiento de la polea en el canal (p. ej., accionar usando una línea de reloj). Téngase en cuenta que esto es solo una forma de accionar y guiar el movimiento de polea y de fijar una polea a una pista, canal u otros medios de guía. Muchos otros diseños resultarían obvios, tales como una polea con un eje que se extiende a través del bloque de anclaje con una parte inferior expandida que sobresale de modo que no pueda salir del canal, un canal y un eje biselados (p. ej., similar a una junta de cola de milano de perfil) que podría lograr el mismo objetivo, o la adición de otra estructura de eje en la parte superior de la polea, junto con otro bloque de anclaje, sujetando la polea entre los dos. Figure 31 and Figure 32 show a top view and a side view, respectively, of a pulley that can slide in a channel. The anchor block 3101 contains the channel 3104. The pulley 3102 is monolithic with, or connected to (fixed or rotating), the shaft 3103. The shaft 3103 connects itself and the pulley 3102 to the channel 3104 in a sliding manner. . Drive cable 3105 is attached to shaft 3103 and allows movement of the pulley in the channel (e.g., driving using a watch line). Please note that this is only one way of driving and guiding pulley movement and of securing a pulley to a track, channel or other guiding means. Many other designs would be obvious, such as a pulley with a shaft extending through the anchor block with an expanded bottom protruding so that it cannot exit the channel, a beveled channel and shaft (e.g. similar to a profile dovetail joint) that could achieve the same goal, or adding another shaft structure on top of the pulley, along with another anchor block, holding the pulley between the two.

Otra forma de proporcionar medios de guía consistiría en montar raíles en el bloque de anclaje, fijándose la polea a los raíles mediante uno cualquiera de los muchos medios conocidos. El punto no es la implementación mecánica exacta, sino más bien proporcionar algunos medios de guía, preferiblemente con baja fricción, teniendo en cuenta la flexibilidad de los cables; Se podría usar cualquiera de los muchos medios de guía conocidos. Another way of providing guide means would be to mount rails to the anchor block, the pulley being secured to the rails by any one of many known means. The point is not the exact mechanical implementation, but rather to provide some means of guidance, preferably with low friction, taking into account the flexibility of the cables; Any of the many known means of guidance could be used.

Comprendiendo ahora cómo se puede restringir el movimiento de la polea sin la necesidad de eslabones, las analogías entre MLL, MFL y MCL se vuelven más fáciles de describir. Dado que ya se ha demostrado que, en MLL, las cerraduras y las balanzas son suficientes (aunque no son la única manera) para crear sistemas Turing completos, se deduce que si existen mecanismos análogos en MCL, MCL también se pueden usar para crear sistemas Turing completos. Ya se ha indicado que, con respecto a las primitivas básicas, se pueden comparar los eslabones MLL con cables MCL, y se pueden comparar las juntas rotatorias MLL con poleas MCL. Para demostrar esto, y mostrar exactamente cómo se pueden usar cables y poleas para crear los mecanismos subyacentes de la computación Turing completa, se describe el diseño de una cerradura y una balanza. By now understanding how the movement of the pulley can be restricted without the need for links, the analogies between MLL, MFL and MCL become easier to describe. Since it has already been shown that, in MLL, locks and scales are sufficient (although not the only way) to create Turing complete systems, it follows that if analogous mechanisms exist in MCL, MCL can also be used to create Turing complete systems. Turing complete. It has already been indicated that, with respect to basic primitives, MLL links can be compared to MCL cables, and MLL rotary joints can be compared to MCL pulleys. To demonstrate this, and show exactly how cables and pulleys can be used to create the underlying mechanisms of Turing complete computing, the design of a lock and a scale is described.

Cerraduras MCL MCL Locks

Pueden crearse cerraduras en MCL usando manillas que son parte integral de, o se fijan a, cables u otras estructuras. Con el diseño apropiado, estas manillas permiten la reproducción de las características de una cerradura MLL. Específicamente, con respecto a una realización binaria con dos entradas, desde el estado (0,0) desbloqueado, hay dos movimientos permitidos, y son aquellos desde el estado (0,0) desbloqueado hacia uno de los estados bloqueados, (0,1) o (1,0). Desde cualquiera de los estados bloqueados, el único movimiento permitido es volver al estado desbloqueado. Téngase en cuenta que no hay ninguna razón por la cual las manillas no puedan fijarse a prácticamente cualquier estructura, según sea conveniente, y la construcción de cerraduras no es el único uso de las manillas. Locks can be created in MCL using handles that are an integral part of, or attached to, cables or other structures. With the proper design, these handles allow the reproduction of the characteristics of an MLL lock. Specifically, with respect to a binary implementation with two inputs, from the unlocked state (0,0), there are two allowed moves, and they are those from the unlocked state (0,0) to one of the locked states, (0,1 ) or (1,0). From any of the locked states, the only movement allowed is to return to the unlocked state. Please note that there is no reason why handles cannot be attached to virtually any structure as appropriate, and lock construction is not the only use for handles.

Una forma de implementar la lógica deseada se representa en las Figuras 33a-c. En la figura 33a, un primer cable 3301 es atravesado por un segundo cable 3302. Dos manillas 3303 y 3304, y 3305 y 3306, respectivamente, se fijan a cada cable. La Figura 33a muestra la cerradura en la posición (0,0), donde cualquier cable es libre de moverse. La Figura 33b muestra la cerradura en la posición (0,1), habiéndose movido el segundo cable, bloqueando así el primer cable en virtud del hecho de que una de las manillas 3305 del segundo cable está entre las manillas 3303 y 3304 del primer cable, evitando su movimiento en cualquier dirección. La Figura 33c muestra la cerradura en la posición (1,0), habiéndose movido el primer cable, bloqueando así el segundo cable. One way to implement the desired logic is depicted in Figures 33a-c. In Figure 33a, a first cable 3301 is traversed by a second cable 3302. Two handles 3303 and 3304, and 3305 and 3306, respectively, are fixed to each cable. Figure 33a shows the lock in position (0,0), where any wire is free to move. Figure 33b shows the lock in position (0,1), the second cable having moved, thus locking the first cable by virtue of the fact that one of the handles 3305 of the second cable is between the handles 3303 and 3304 of the first cable , preventing its movement in any direction. Figure 33c shows the lock in position (1,0), the first cable having moved, thus locking the second cable.

Son posibles muchos otros diseños que permiten que las manillas actúen como cerraduras. La Figura 34, la Figura 35, la Figura 36 y la Figura 37 representan un diseño de manilla ilustrativa que también puede imponer la restricción de que el único movimiento permitido en una cerradura desde el estado (0,1) o (1,0) es hacia (0,0). Este diseño de manilla es más complejo, pero requiere solo dos manillas (una en cada cable) en lugar de cuatro, para crear la lógica de bloqueo deseada. Many other designs are possible that allow the handles to act as locks. Figure 34, Figure 35, Figure 36 and Figure 37 represent an illustrative handle design that may also impose the constraint that the only movement allowed in a lock from the (0,1) or (1,0) state is towards (0,0). This handle design is more complex, but requires only two handles (one on each cable) instead of four, to create the desired locking logic.

La Figura 34 muestra una única manilla 3401. Generalmente, un cable se uniría a cualquier extremo (no mostrado), pero tales manillas podrían usarse en otros escenarios también, tales como conectadas a eslabones de MLL. Figure 34 shows a single 3401 handle. Generally, a cable would be attached to either end (not shown), but such handles could be used in other scenarios as well, such as connected to MLL links.

La Figura 35 muestra cómo dos de dichas manillas 3501 y 3502 se engranan entre sí para formar una cerradura. En esta figura, la cerradura se muestra en el estado en blanco (lo que significa, ninguna manilla se coloca para bloquear el movimiento de la otra). Figure 35 shows how two of said handles 3501 and 3502 mesh together to form a lock. In this figure, the lock is shown in the blank state (which means, neither handle is positioned to block the movement of the other).

La Figura 36 y la Figura 37 representan las mismas manillas 3501 y 3502 en el estado (0,1) y (1,0) (o viceversa; ya que el mecanismo es simétrico, la manivela que se define como la manilla 0 y la que se define como la manilla 1 es arbitraria). Figure 36 and Figure 37 represent the same handles 3501 and 3502 in the state (0,1) and (1,0) (or vice versa; since the mechanism is symmetrical, the crank that is defined as handle 0 and the which is defined as handle 1 is arbitrary).

Puede verse, al inspeccionar la forma de estas manillas y sus posiciones relativas en los estados en blanco, (0,1) y (1,0), que si dos cables u otras estructuras interactúan a través del movimiento apropiado de dichas manillas, esta restricción de que el único movimiento permitido desde el estado (0,1) o (1,0) sea hacia el estado (0,0) se aplica. It can be seen, by inspecting the shape of these handles and their relative positions in the blank states, (0,1) and (1,0), that if two cables or other structures interact through the appropriate movement of said handles, this The restriction that the only movement allowed from state (0,1) or (1,0) is to state (0,0) applies.

Óvalos de MCL MCL Ovals

Conceptualmente, puede ser útil definir una estructura en MCL denominada “óvalo” , ya que esta disposición de partes básicas es una forma de crear mecanismos más complejos tales como balanzas y registros de desplazamiento. Conceptually, it may be useful to define a structure in MCL called an “oval”, as this arrangement of basic parts is a way to create more complex mechanisms such as scales and shift registers.

Como se representa en la Figura 39, una forma de implementar un óvalo utiliza un bucle cerrado de cable 3801 (denominado “ cable lógico” para distinguirlo de cables que sirven como entradas/salidas, incluidos los que proporcionan señales de reloj, aunque esta distinción es solo para claridad de la descripción, ya que los cables lógicos también pueden proporcionar entrada/salida, como en el caso de los óvalos cruzados que pueden usarse para formar celdas y registros de desplazamiento), que puede incluir una o más estructuras, tales como la manilla 3802, y que pasan alrededor de una o más poleas 3803 (se representan dos poleas, pero otros números pueden usarse para cambiar las características de forma, longitud, vibración y entrópicas, u otras características diferentes de la oval, que a pesar del nombre, no necesariamente deben tener la forma oval). Si una o más de las poleas pueden ser no ancladas, pueden incluirse medios de guía tales como el raíl 3804. Las poleas no ancladas pueden accionarse (moverse a lo largo de sus medios de guía) mediante el cable 3805, que puede estar, p. ej., vinculado a una señal de reloj. As depicted in Figure 39, one way to implement an oval uses a closed loop of wire 3801 (referred to as a “logic wire” to distinguish it from wires that serve as inputs/outputs, including those that provide clock signals, although this distinction is just for clarity of description, as logic wires can also provide input/output, as in the case of crossed ovals that can be used to form cells and shift registers), which may include one or more structures, such as the handle 3802, and passing around one or more pulleys 3803 (two pulleys are represented, but other numbers can be used to change the shape, length, vibration and entropic characteristics, or other characteristics other than the oval, which despite the name , they do not necessarily have to be oval in shape). If one or more of the pulleys may be unanchored, guide means such as rail 3804 may be included. The unanchored pulleys may be driven (moved along their guide means) by cable 3805, which may be, e.g. . e.g., linked to a clock signal.

Se pueden incluir una o más carcasas de cable tales como las ilustradas por la carcasa 3806 para reducir la pérdida de energía, como se describe en otra parte de la presente memoria. Las manillas facilitan la interacción con otras estructuras y pueden conectarse a uno o más cables 3807 y 3808 de entrada/salida. Por sí mismo y en su forma más simple, un óvalo simplemente toma una entrada y puede (pero no tiene que) transmitirla como salida. Por ejemplo, si se mueve el cable 3807 y las poleas están ancladas, el lado opuesto del cable lógico también debe moverse, provocando el movimiento del cable 3808. Por lo tanto, el óvalo puede retransmitir datos, pero no tiene lugar ningún cálculo sustancial. Sin embargo, los óvalos pueden diseñarse para llevar a cabo cálculos al interactuar con otras estructuras (incluidos, p. ej., otros óvalos o cables). Cuando se combinan con cerraduras, esta es una manera de construir una balanza a través de MCL. One or more cable housings such as those illustrated by housing 3806 may be included to reduce power loss, as described elsewhere herein. The handles facilitate interaction with other structures and can be connected to one or more input/output cables 3807 and 3808. By itself and in its simplest form, an oval simply takes an input and can (but does not have to) transmit it as an output. For example, if cable 3807 is moved and the pulleys are anchored, the opposite side of the logical cable must also move, causing cable 3808 to move. Therefore, the oval can relay data, but no substantial calculation takes place. However, ovals can be designed to perform calculations by interacting with other structures (including, e.g., other ovals or cables). When combined with locks, this is a way to build a scale through MCL.

Balanzas de MCL MCL Balances

La Figura 39 representa una balanza como parte de un óvalo. Las balanzas y los óvalos también pueden servir como parte de un registro de desplazamiento. La balanza incluye la polea 3902 y la parte izquierda del cable lógico 3901. La Figura 39 representa un óvalo con poleas no ancladas y dos cables cruzados que proporcionan entrada de datos, proviniendo los dos cables cruzados, p. ej., de cables de datos u otro óvalo. Las estructuras opcionales tales como carcasas de cable se omiten para mayor claridad y, como es habitual, se supone que un bloque de anclaje está presente, pero no se representa. El cable lógico 3901 pasa alrededor de la polea 3902 (y su pareja, no etiquetada). Ambas poleas se montan en pistas, ilustradas por 3903. La línea de reloj 3904 acciona el mecanismo tirando de las poleas, lo que hará que se deslicen en sus pistas. El cable lógico tiene dos pares de manillas 3905 y 3906 y 3907 y 3908. Los cables 03909 y el cable 13910 proporcionan una entrada al óvalo. Cada cable cruzado tiene un par de manillas 3911 y 3912, y 3913 y 3914, respectivamente. Al cruzar el óvalo (en ángulos rectos en este diagrama, pero se pueden usar otros ángulos y diseños), los cables 0 y 1 pueden colocar sus manillas para interactuar con las manillas del óvalo. Las manillas triangulares 3915 y 3916 (mostradas como triangulares solamente para distinguirlas visualmente de las otras manillas; esta forma no es significativa) se conectan a la línea de salida 13917 y a la línea de salida 03918, respectivamente. Esta configuración es solo a modo de ejemplo. Las líneas de salida podrían fácilmente, p. ej., colocarse de manera diferente, o conectarse a las manillas de cerradura apropiadas en lugar de usar manillas separadas. Figure 39 represents a scale as part of an oval. Scales and ovals can also serve as part of a shift register. The scale includes pulley 3902 and the left side of logic cable 3901. Figure 39 depicts an oval with unanchored pulleys and two crossover cables providing data input, the two crossover cables coming from, e.g. e.g., data cables or other oval. Optional structures such as cable housings are omitted for clarity and, as usual, an anchor block is assumed to be present but is not depicted. Logic wire 3901 passes around pulley 3902 (and its partner, not labeled). Both pulleys are mounted on tracks, illustrated by 3903. Clock line 3904 drives the mechanism by pulling on the pulleys, which will cause them to slide on their tracks. The logic cable has two pairs of handles 3905 and 3906 and 3907 and 3908. Wires 03909 and wire 13910 provide an input to the oval. Each crossover cable has a pair of handles 3911 and 3912, and 3913 and 3914, respectively. As they cross the oval (at right angles in this diagram, but other angles and layouts can be used), wires 0 and 1 can position their handles to interact with the oval's handles. The triangular handles 3915 and 3916 (shown as triangular only to visually distinguish them from the other handles; this shape is not significant) connect to the output line 13917 and the output line 03918, respectively. This configuration is for example only. The starting lines could easily e.g. e.g., positioned differently, or connected to the appropriate lock handles instead of using separate handles.

La Figura 39, la Figura 40 y la Figura 41 difieren solo en la posición de las manillas de cable de entrada. En la Figura 39, ambas cerraduras están en la posición en blanco; lo que significa que las manillas de cable de entrada y las manillas de cable lógico no interactuarían si se accionara el mecanismo. En la Figura 40, el cable 3909 tiene manillas móviles 3911 y 3912 de manera que la manilla 3911 ahora está entre dos de las manillas en el cable lógico, 3905 y 3906. Esto puede considerarse una entrada de 0, ya que la línea de entrada cero se ha movido. Si el mecanismo se accionara en este estado, el lado superior del óvalo estaría impedido de moverse, ya que las manillas 3905, 3906, 3911 y 3912 forman una cerradura que luego se bloquea. Figure 39, Figure 40 and Figure 41 differ only in the position of the input cable handles. In Figure 39, both locks are in the blank position; meaning that the input cable handles and logic cable handles would not interact if the mechanism were actuated. In Figure 40, cable 3909 has movable handles 3911 and 3912 so that handle 3911 is now between two of the handles on the logic cable, 3905 and 3906. This can be considered an input of 0, since the input line zero has moved. If the mechanism were activated in this state, the upper side of the oval would be prevented from moving, since the handles 3905, 3906, 3911 and 3912 form a lock that is then locked.

En la Figura 41, el cable 3909 no se ha movido, pero en cambio el cable 3910 se ha movido. Esto puede considerarse una entrada de 1, ya que el cable 1 se ha movido. El efecto es bloquear el lado opuesto del óvalo colocando la manilla 3913 entre las manillas 3907 y 3908. Este bloqueo de un lado o el otro de un óvalo es análogo al bloqueo de un lado o el otro del eslabón apropiado en una balanza de MLL. El funcionamiento de la balanza basada en óvalo es el siguiente: Suponiendo que la posición inicial de las poleas está en el lado izquierdo de sus respectivas pistas. Cuando se establecen las entradas, los cables de entrada bloquean ya sea el lado superior o el inferior del óvalo. A continuación, la línea de reloj mueve las poleas de la izquierda a la derecha. El movimiento lateral de las poleas es el mismo independientemente de las entradas. Sin embargo, el lado del cable lógico que se mueve está determinado por las entradas. Cualquiera que sea el lado del cable lógico que se bloquee, se ve obligado a permanecer estacionario. Por lo tanto, cuando las poleas se mueven, solo se mueve el lado desbloqueado del cable lógico. Esto da como resultado el movimiento de la línea de salida 0 si se proporcionó una entrada de 0, y el movimiento de la línea de salida 1 si se proporcionó una entrada de 1. In Figure 41, cable 3909 has not moved, but instead cable 3910 has moved. This can be considered an input of 1, since wire 1 has moved. The effect is to lock the opposite side of the oval by placing handle 3913 between handles 3907 and 3908. This locking of one side or the other of an oval is analogous to locking one side or the other of the appropriate link on an MLL scale. The operation of the oval based balance is as follows: Assuming that the initial position of the pulleys is on the left side of their respective tracks. When inputs are established, the input wires block either the top or bottom side of the oval. Next, the clock line moves the pulleys from left to right. The lateral movement of the pulleys is the same regardless of the inputs. However, which side of the logic cable moves is determined by the inputs. Whichever side of the logic cable is blocked, it is forced to remain stationary. Therefore, when the pulleys move, only the unlocked side of the logic cable moves. This results in movement of output line 0 if an input of 0 was given, and movement of output line 1 if an input of 1 was given.

La Figura 42 muestra la posición del mecanismo suponiendo que se proporcionó una entrada de 1 y, a continuación, la línea de reloj movió las poleas a la derecha. Dado que la manilla 3913 se había movido entre las manillas 3907 y 3908, el lado inferior del óvalo estaba bloqueado. Por lo tanto, cuando las poleas se mueven a la derecha, el cable lógico debe seguir de la única manera posible: enrollándose el cable lógico de manera que la manilla 3915 y, por lo tanto, la línea de salida 13917, se muevan hacia la derecha. Téngase en cuenta que los cables de datos tales como 3909 y 3910 no son la única manera de proporcionar entrada a un óvalo, y cables de salida tales como 3917 y 3918 no son la única manera de obtener una salida de un óvalo. Por ejemplo, los óvalos cruzados pueden interactuar directamente, sirviendo el cable lógico de un óvalo como una entrada a un óvalo vecino. Dado que, cuando se combinan con cerraduras, se puede usar una entrada para controlar qué lado de un óvalo se mueve, esto es análogo al funcionamiento de una balanza de MLL o MFL. Y, dado que se demostró que los sistemas Turing completos son posibles usando solo cerraduras y balanzas de MLL, se deduce que MCL también puede implementar sistemas Turing completos. Figure 42 shows the position of the mechanism assuming that an input of 1 was provided and then the clock line moved the pulleys to the right. Since handle 3913 had moved between handles 3907 and 3908, the underside of the oval was blocked. Therefore, when the pulleys move to the right, the logic cable must follow in the only possible way: by winding the logic cable so that the handle 3915, and therefore the output line 13917, move to the right. right. Note that data cables such as 3909 and 3910 are not the only way to provide input to an oval, and output cables such as 3917 and 3918 are not the only way to obtain output from an oval. For example, crossed ovals can interact directly, with the logic wire of one oval serving as an input to a neighboring oval. Since, when combined with locks, an input can be used to control which side of an oval is moved, this is analogous to the operation of an MLL or MFL scale. And, since Turing-complete systems were shown to be possible using only MLL locks and scales, it follows that MCL can also implement Turing-complete systems.

Masa móvil moving mass

Una ventaja de algunas realizaciones de MCL es una masa móvil reducida en comparación con algunas realizaciones de MLL o MFL. Debido a que no se requiere que los cables sean rígidos, pueden tener una sección transversal más pequeña y una masa correspondientemente menor que los eslabones<m>L<l>de longitud equivalente. Un ejemplo convencional de este principio es comparar la masa de un cable con la masa de una estructura de tipo viga. En general, una estructura que solo tiene que soportar fuerzas de tracción se puede hacer menos maciza que una estructura que también debe soportar, p. ej., fuerzas de compresión o flexión. A una escala molecular, los ejemplos de estructuras fuertes pero flexibles que podrían usarse como cable incluyen carbyne (carbono acetilénico lineal), poliacenos, polietileno y poliiceanos, aunque podrían usarse muchas otras estructuras. An advantage of some MCL embodiments is a reduced moving mass compared to some MLL or MFL embodiments. Because the cables are not required to be rigid, they can have a smaller cross section and a correspondingly lower mass than links<m>L<l>of equivalent length. A conventional example of this principle is comparing the mass of a cable with the mass of a beam-type structure. In general, a structure that only has to support tensile forces can be made less massive than a structure that must also support, e.g. e.g., compression or bending forces. On a molecular scale, examples of strong but flexible structures that could be used as wire include carbyne (linear acetylenic carbon), polyacenes, polyethylene, and polyiceanes, although many other structures could be used.

Una desventaja potencial del uso de cables es que la flexibilidad puede permitir modos de vibración que no existirían en una estructura más rígida. Además, estos modos de vibración pueden cambiar a medida que cambia la longitud de una sección determinada de cable. Por ejemplo, si la distancia entre dos poleas cambia, cambiando así la longitud del segmento de cable entre ellas, los modos de vibración permitidos pueden cambiar, como si se tocara una cuerda de guitarra en diferentes posiciones. Esto también da como resultado cambios entrópicas en el sistema. Cualquiera de estos efectos puede conducir a la disipación de energía. A potential disadvantage of using cables is that the flexibility may allow modes of vibration that would not exist in a more rigid structure. Additionally, these vibration modes can change as the length of a given section of cable changes. For example, if the distance between two pulleys changes, thus changing the length of the cable segment between them, the allowed vibration modes may change, much like plucking a guitar string in different positions. This also results in entropic changes in the system. Any of these effects can lead to energy dissipation.

Sin embargo, estos problemas de vibración y entrópicos se pueden resolver manteniendo baja la masa móvil de los mecanismos. Esto se puede lograr restringiendo los cables de tal manera que se evite que puedan vibrar libremente. Una realización de este concepto sería que los cables se encuentren en zanjas en el bloque de anclaje. Si se considera que dichas zanjas tienen una sección transversal rectangular (aunque este no es necesariamente el caso), restringirían el cable en tres lados, estando abierto el cuarto lado para facilitar el encaminamiento del cable fuera de la zanja para interactuar con las poleas. También es posible restringir un cable en todos los lados, tal como la forma en que Bowden envuelve su cable interno en una funda o carcasa. Si esta funda es relativamente rígida, y el espacio interno de la funda se dimensiona adecuadamente en comparación con el cable, esencialmente no se permitirá ninguna vibración dentro de la funda. Un ejemplo molecular de esto sería un cable de poliino en un (9,0) SWNT (nanotubo de pared simple), pero obviamente muchas estructuras podrían usarse, preferentemente aquellas que son rígidas, se ajustan estrechamente al cable y la funda, y que permiten que el cable se deslice libremente en la funda (pero sin que vibre sustancialmente). However, these vibration and entropic problems can be solved by keeping the moving mass of the mechanisms low. This can be achieved by restraining the cables in such a way as to prevent them from vibrating freely. One embodiment of this concept would be for the cables to be located in trenches in the anchor block. If such trenches are considered to have a rectangular cross section (although this is not necessarily the case), they would restrict the cable on three sides, with the fourth side being open to facilitate routing the cable out of the trench to interact with the pulleys. It's also possible to constrain a cable on all sides, such as the way Bowden wraps its internal cable in a sleeve or casing. If this sheath is relatively rigid, and the internal space of the sheath is appropriately sized compared to the cable, essentially no vibration will be allowed within the sheath. A molecular example of this would be a polyyne wire in a (9,0) SWNT (single-walled nanotube), but obviously many structures could be used, preferably those that are rigid, fit closely to the wire and sheath, and that allow that the cable slides freely in the sheath (but without substantially vibrating).

Si bien segmentos cortos de cable pueden estar expuestos entre zanjas, fundas u otros tipos de carcasas, y donde el cable entra en contacto con una polea, estos segmentos serán relativamente cortos en comparación con la longitud total del cable, marginando así la pérdida de energía por las vibraciones del cable y los cambios entrópicas. Dado que las carcasas del cable no necesitan moverse con el cable, la masa móvil se mantiene baja, permitiendo potencialmente sistemas con frecuencias de conmutación más altas en comparación con los sistemas que requieren más eslabones rígidos macizos en lugar de cables flexibles. While short segments of cable may be exposed between trenches, sleeves or other types of casing, and where the cable contacts a pulley, these segments will be relatively short compared to the total length of the cable, thus marginalizing energy loss. by cable vibrations and entropic changes. Since the cable housings do not need to move with the cable, the moving mass is kept low, potentially enabling systems with higher switching frequencies compared to systems that require more solid rigid links instead of flexible cables.

Además, se podría implementar un sistema de cable con fluidos dentro de las carcasas. Un tapón sólido en un extremo de la carcasa empujaría sobre el fluido, que a su vez empujaría otro tapón en el extremo opuesto de la carcasa. Al igual que un bucle cerrado de cable, al accionar en cualquier extremo, esto puede proporcionar efectivamente un “cable” (aunque esté hecho de un fluido, que incluye un gas) que puede empujarse o tirarse accionando el extremo apropiado. Dichos diseños también podrían usarse para implementar balanzas y cerraduras, moviendo las partes hidráulicamente en lugar de a través de un eslabón o cable sólido. Aunque un sistema hidráulico no se denominaría tradicionalmente cable, se considera un sistema de cable en la presente memoria porque el funcionamiento lógico y mecánico es casi idéntico al de un cable sólido. Additionally, a cable system could be implemented with fluids inside the housings. A solid plug at one end of the casing would push on the fluid, which in turn would push another plug at the opposite end of the casing. Like a closed loop of cable, by actuating either end, this can effectively provide a “cable” (albeit made of a fluid, including a gas) that can be pushed or pulled by actuating the appropriate end. Such designs could also be used to implement scales and locks, moving the parts hydraulically rather than via a solid link or cable. Although a hydraulic system would not traditionally be called a cable, it is considered a cable system herein because the logical and mechanical operation is almost identical to that of a solid cable.

Sistemas de tipo 1-4 Type 1-4 systems

Como se mencionó anteriormente, debido al uso de trinquetes y gatillos, retenes, resortes u otros mecanismos que almacenan y luego liberan energía potencial de una manera no directamente vinculada a los grados de libertad computacionales del sistema, todos los sistemas Turing completos preexistentes para la computación mecánica pueden clasificarse como de tipo 1. Debido al posible ahorro de energía, en igualdad de condiciones, se preferirían los sistemas de tipo 2-4 a los sistemas de tipo 1, siendo los sistemas de tipo 4 los más preferidos. MLL, MFL y MCL son todos capaces de crear sistemas de tipo 2-4. De hecho, la mayoría de las realizaciones descritas en la presente memoria darían como resultado sistemas de tipo 4, mientras que la adición, p. ej., de resortes a algunos mecanismos (tales como entre la cerradura gradual representada en la Figura 9 y otros mecanismos, para permitir la holgura) podría dar como resultado un sistema de tipo 2, y algunos diseños que, p. ej., podrían dejar cerraduras en el estado (0,0) con alguna frecuencia no trivial podrían dar como resultado un sistema de tipo 3 (aunque esto se puede evitar con un diseño adecuado; que las cerraduras estén en el estado (0,0) no necesariamente significa que las partes son libres de moverse, como se puede ver en el mecanismo descrito en la presente memoria). As mentioned above, due to the use of pawls and triggers, detents, springs, or other mechanisms that store and then release potential energy in a manner not directly linked to the system's computational degrees of freedom, all pre-existing Turing complete systems for computing mechanical systems can be classified as type 1. Due to the potential energy savings, all other things being equal, type 2-4 systems would be preferred over type 1 systems, with type 4 systems being the most preferred. MLL, MFL and MCL are all capable of creating type 2-4 systems. In fact, most of the embodiments described herein would result in type 4 systems, while the addition of e.g. e.g., of springs to some mechanisms (such as between the gradual lock depicted in Figure 9 and other mechanisms, to allow for clearance) could result in a type 2 system, and some designs that, e.g. e.g., they could leave locks in the (0,0) state with some non-trivial frequency could result in a type 3 system (although this can be avoided with proper design; leaving the locks in the (0,0) state ) does not necessarily mean that the parts are free to move, as can be seen in the mechanism described herein).

Puede que no sea evidente de inmediato que MFL puede usarse para crear sistemas de tipo 3-4, ya que puede parecer que las flexiones almacenan energía potencial por su propia naturaleza. De hecho, algunos diseños basados en flexión, si usan las flexiones para almacenar energía potencial y luego liberarla con algún efecto sobre el sistema, se clasificarían como de tipo 1 o tipo 2. Sin embargo, en MFL, no es necesario utilizar flexiones para un almacenamiento de energía potencial. Más bien, su función puede ser únicamente la de proporcionar restricción cinemática, tal como lo hace la estructura análoga en MLL, la junta rotatoria. Como tal, la fuerza necesaria para doblar una flexión puede ser arbitrariamente pequeña, siempre que la flexión aún proporcione la rigidez necesaria con respecto a los grados de libertad relevantes. Esto lleva a la conclusión de que el almacenamiento de energía potencial de las flexiones puede ser trivial, al igual que la energía potencial almacenada en el estiramiento de cables de MCL, o el estiramiento, la flexión o la compresión de eslabones de<m>L<l>. It may not be immediately apparent that MFL can be used to create type 3-4 systems, as it may appear that push-ups store potential energy by their very nature. In fact, some flexure-based designs, if they use flexures to store potential energy and then release it with some effect on the system, would be classified as type 1 or type 2. However, in MFL, it is not necessary to use flexures for a potential energy storage. Rather, its function may be solely to provide kinematic restraint, as does the analogous structure in MLL, the rotary joint. As such, the force required to bend a bend can be arbitrarily small, as long as the bend still provides the necessary stiffness with respect to the relevant degrees of freedom. This leads to the conclusion that the potential energy storage of bending may be trivial, as is the potential energy stored in the stretching of MCL cables, or the stretching, bending, or compression of<m>L links. <l>.

Además, incluso si la fuerza requerida para doblar una flexión fuera sustancial, dado que las flexiones no se usan para accionar el movimiento en un sistema de tipo 3-4, pueden diseñarse sistemas donde la energía potencial neta de las flexiones es esencialmente 0. Por ejemplo, un par de flexiones conectados a un eslabón podrían pretensarse en direcciones opuestas. El movimiento del eslabón en una dirección aumentaría la energía potencial de una de las flexiones, mientras que disminuiría la energía potencial de la otra flexión, dando como resultado ningún cambio neto (y, por lo tanto, ningún aumento neto en la fuerza requerida para mover el eslabón) a lo largo de algún intervalo de movimiento permitido. Furthermore, even if the force required to bend a flexion were substantial, since flexions are not used to drive movement in a type 3-4 system, systems can be designed where the net potential energy of the flexions is essentially 0. For For example, a pair of flexures connected to a link could be prestressed in opposite directions. Moving the link in one direction would increase the potential energy of one of the bends, while decreasing the potential energy of the other bend, resulting in no net change (and therefore no net increase in the force required to move the link) over some range of permitted motion.

Resumen Summary

Se han descrito tres paradigmas ilustrativos para la computación mecánica, MLL, MFL y MCL. Cada uno de estos paradigmas es capaz de proporcionar tanto la lógica combinatoria como la lógica secuencial requeridas para crear un sistema computacional Turing completo. Cada paradigma de diseño también permite la computación reversible, y las simulaciones de un mecanismo a escala molecular indican que las realizaciones diseñadas adecuadamente de MLL pueden calcular con niveles de disipación de energía bajo el límite de Landauer. No existe razón para pensar que MFL y MCL no puedan proporcionar una eficiencia similar. Three illustrative paradigms have been described for mechanical computing, MLL, MFL and MCL. Each of these paradigms is capable of providing both the combinatorial logic and the sequential logic required to create a Turing complete computational system. Each design paradigm also allows for reversible computation, and simulations of a molecular-scale mechanism indicate that properly designed realizations of MLL can compute with energy dissipation levels below the Landauer limit. There is no reason to think that MFL and MCL cannot provide similar efficiency.

Se han descrito cuatro clases de sistemas de computación, designados de tipos 1-4. Los sistemas de tipo 1 tienen el potencial final más bajo de eficiencia energética, y son el único tipo de sistema computacional habilitado anteriormente. MLL, MFL y MCL comparten paralelos físicos y lógicos, en algún sentido son tres realizaciones de los mismos conceptos. Cada una es capaz no solo de la computación Turing completa, sino también de proporcionar los sistemas de tipo 2, tipo 3 y tipo 4 (solos o en combinación entre sí), lo que permite una menor disipación de energía. Cada una también tiene un número muy bajo de tipos de primitivas requeridos, requiriendo MLL y MFL solo dos partes básicas y requiriendo MCL tres, lo que reduce la complejidad del diseño, fabricación y ensamblaje del sistema. Además, no solo se requiere un número muy pequeño de partes básicas, sino que ninguna de las partes básicas incluye engranajes, trinquetes y gatillos, retenes o muchos otros mecanismos comunes que se usan ampliamente en otros sistemas, pero que probablemente disipan energía excesiva a través de fricción o vibración. Finalmente, cada una es capaz de crear sistemas computacionales que usan conmutación seca; no es necesario desperdiciar energía aplicando fuerza a una parte o mecanismo básico, solo para encontrar que no se moverá debido a su estado lógico. Four classes of computing systems have been described, designated types 1-4. Type 1 systems have the lowest ultimate potential for energy efficiency, and are the only type of computing system previously enabled. MLL, MFL and MCL share physical and logical parallels, in some sense they are three realizations of the same concepts. Each is capable of not only Turing-complete computing, but also providing Type 2, Type 3, and Type 4 systems (alone or in combination with each other), allowing for lower power dissipation. Each also has a very low number of required primitive types, with MLL and MFL requiring only two basic parts and MCL requiring three, which reduces the complexity of system design, manufacturing, and assembly. Furthermore, not only are a very small number of basic parts required, but none of the basic parts include gears, pawls and pawls, detents, or many other common mechanisms that are widely used in other systems, but which likely dissipate excessive energy through friction or vibration. Finally, each is capable of creating computing systems that use dry switching; There is no need to waste energy applying force to a basic part or mechanism, only to find that it will not move due to its logical state.

Considerando las enseñanzas en la presente memoria, incluidas múltiples realizaciones que demuestran los principios generales de diseño que consisten en poder proporcionar una computación Turing completa, reversible si se desea, a través de sistemas de tipo 2-4, con muy pocos tipos de primitivas, que se prestan para la creación de mecanismos eficientes en energía, tanto por la naturaleza de los propios mecanismos como porque dichos mecanismos y sistemas pueden diseñarse para usar la conmutación seca, resultará evidente que se pueden crear variaciones usando diferentes mecanismos o primitivas. Considering the teachings herein, including multiple embodiments demonstrating the general design principles of being able to provide Turing-complete computation, reversible if desired, across type 2-4 systems, with very few types of primitives, that lend themselves to the creation of energy-efficient mechanisms, both because of the nature of the mechanisms themselves and because such mechanisms and systems can be designed to use dry switching, it will be evident that variations can be created using different mechanisms or primitives.

Claims (11)

REIVINDICACIONES i.Un mecanismo de computación mecánica binario que comprende:i.A binary mechanical computing mechanism comprising: un bloque de anclaje (301, 303); el mecanismo de computación mecánica binario secaracteriza porquecomprende un conjunto, configurado para realizar una operación lógica combinatoria y/o una operación lógica secuencial con solo primitivas de lógica de eslabón mecánico, primitivas de lógica de flexión mecánica y/o primitivas de lógica de cableado mecánico para llevar a cabo la operación lógica combinatoria y/o la operación lógica secuencial; en dondean anchor block (301, 303); The binary mechanical computing mechanism is characterized by comprising a set, configured to perform a combinatorial logic operation and/or a sequential logic operation with only mechanical link logic primitives, mechanical bending logic primitives and/or mechanical wiring logic primitives to carry out the combinatorial logical operation and/or the sequential logical operation; where una o más de dichas primitivas definen una o más entradas (302, 304) para datos, codificados por la posición física de las entradas (302, 304),one or more of said primitives define one or more inputs (302, 304) for data, encoded by the physical position of the inputs (302, 304), una o más de dichas primitivas definen una o más salidas (310, 311) para datos, codificados por la posición física de las salidas (310, 311), en dondeone or more of said primitives define one or more outputs (310, 311) for data, encoded by the physical position of the outputs (310, 311), where las primitivas se conectan entre sí para permitir o evitar selectivamente el movimiento de otras primitivas con respecto al bloque de anclaje (301, 303) basadas en la posición física de la una o más entradas (302, 304), de modo que una o más salidas (310, 311) son el resultado de la operación lógica en la una o más entradas (302, 304).The primitives are connected to each other to selectively allow or prevent the movement of other primitives with respect to the anchor block (301, 303) based on the physical position of the one or more inputs (302, 304), so that one or more Outputs (310, 311) are the result of logical operation on the one or more inputs (302, 304). 2. El mecanismo de computación mecánica de la reivindicación 1, en donde el conjunto requiere solo una combinación de eslabones (202, 204, 207), juntas rotatorias (201,203, 206, 208), flexiones, cables (3301), manillas (3303, 3304, 3305, 3306) y poleas (3102) para llevar a cabo la operación lógica combinatoria y/o la operación lógica secuencial.2. The mechanical computing mechanism of claim 1, wherein the assembly requires only a combination of links (202, 204, 207), rotary joints (201,203, 206, 208), flexes, cables (3301), handles (3303 , 3304, 3305, 3306) and pulleys (3102) to carry out the combinatorial logic operation and/or the sequential logic operation. 3. El mecanismo de computación mecánica de la reivindicación 1, en donde el conjunto requiere solo una combinación de eslabones (202, 204, 207) y juntas rotatorias (201, 203, 206, 208), una combinación de eslabones (202, 204, 207) y flexiones, o una combinación de cables (3301,3302), manillas (3303, 3304, 3305, 3306) y poleas (3102) para llevar a cabo la operación lógica combinatoria y/o la operación lógica secuencial.3. The mechanical computing mechanism of claim 1, wherein the assembly requires only a combination of links (202, 204, 207) and rotary joints (201, 203, 206, 208), a combination of links (202, 204 , 207) and bending, or a combination of cables (3301, 3302), handles (3303, 3304, 3305, 3306) and pulleys (3102) to carry out the combinatorial logic operation and/or the sequential logic operation. 4. El mecanismo de computación mecánica de la reivindicación 1, en donde el conjunto requiere solo eslabones (202, 204, 207) y juntas rotatorias (201, 203, 206, 208) para llevar a cabo la operación lógica combinatoria y/o la operación lógica secuencial.4. The mechanical computing mechanism of claim 1, wherein the assembly requires only links (202, 204, 207) and rotary joints (201, 203, 206, 208) to carry out the combinatorial logic operation and/or the sequential logical operation. 5. El mecanismo de computación mecánica de la reivindicación 1, en donde dicho mecanismo es una puerta lógica o un registro de desplazamiento.5. The mechanical computing mechanism of claim 1, wherein said mechanism is a logic gate or a shift register. 6. El mecanismo de computación mecánica de la reivindicación 1 , en donde dicho mecanismo es un registro de desplazamiento que consiste en cerraduras y balanzas.6. The mechanical computing mechanism of claim 1, wherein said mechanism is a shift register consisting of locks and scales. 7. El mecanismo de computación mecánica de la reivindicación 1, en donde dicho mecanismo es una puerta lógica que consiste en cerraduras y balanzas.7. The mechanical computing mechanism of claim 1, wherein said mechanism is a logic gate consisting of locks and scales. 8. El mecanismo de computación mecánica de la reivindicación 7, en donde la puerta lógica comprende una puerta lógica reversible.8. The mechanical computing mechanism of claim 7, wherein the logic gate comprises a reversible logic gate. 9. El mecanismo de computación mecánica de la reivindicación 1, que comprende un medio para la conmutación seca.9. The mechanical computing mechanism of claim 1, comprising means for dry switching. 10. El mecanismo de computación mecánica de la reivindicación 1, en donde el mecanismo es de escala de micras a nanoescala.10. The mechanical computing mechanism of claim 1, wherein the mechanism is micron to nanoscale. 11. El mecanismo de computación mecánica de la reivindicación 1, en donde el mecanismo es un mecanismo a escala molecular.11. The mechanical computing mechanism of claim 1, wherein the mechanism is a molecular scale mechanism.
ES15912213T 2015-12-31 2015-12-31 Mechanical computing systems Active ES2963835T3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/068359 WO2017116482A1 (en) 2015-12-31 2015-12-31 Mechanical computing systems

Publications (1)

Publication Number Publication Date
ES2963835T3 true ES2963835T3 (en) 2024-04-02

Family

ID=59225452

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15912213T Active ES2963835T3 (en) 2015-12-31 2015-12-31 Mechanical computing systems

Country Status (5)

Country Link
EP (1) EP3398024B1 (en)
JP (1) JP7079205B2 (en)
CA (2) CA3113363C (en)
ES (1) ES2963835T3 (en)
WO (1) WO2017116482A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10683924B1 (en) * 2019-07-12 2020-06-16 Cbn Nano Technologies Inc. Buffered cam assembly
JP2023547771A (en) 2020-09-25 2023-11-14 シービーエヌ ナノ テクノロジーズ インク. Management of non-contact forces in mechanisms
CN112865757B (en) * 2021-01-15 2022-03-29 宁波大学 Logic function configurable reversible single edge trigger

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4887896A (en) * 1972-02-19 1973-11-17
US6266569B1 (en) * 1998-08-31 2001-07-24 Zephyrien International N.V. Method and system of computing similar to a turing machine
US20030172205A1 (en) * 2002-01-11 2003-09-11 Bastian Richard Henry Methods and components for mechanical computer
JP3731055B2 (en) * 2003-03-31 2006-01-05 独立行政法人情報通信研究機構 Reversible logic element operating in asynchronous mode
US8365137B2 (en) * 2006-08-29 2013-01-29 Wave Semiconductor, Inc. Systems and methods using an invocation model of process expression
US7414437B1 (en) 2007-05-16 2008-08-19 Wisconsin Alumni Research Foundation Nanomechanical computer
WO2009102902A2 (en) 2008-02-14 2009-08-20 The Charles Stark Draper Laboratory, Inc. Rotary nanotube bearing structure and methods for manufacturing and using the same
US8365982B2 (en) 2010-05-13 2013-02-05 Robert Swartz Methods and apparatus for manufacturing a computer without assembly

Also Published As

Publication number Publication date
CA3007614C (en) 2021-05-18
EP3398024A4 (en) 2019-09-25
WO2017116482A1 (en) 2017-07-06
CA3007614A1 (en) 2017-07-06
CA3113363A1 (en) 2017-07-06
JP7079205B2 (en) 2022-06-01
EP3398024A1 (en) 2018-11-07
CA3113363C (en) 2023-07-18
EP3398024B1 (en) 2023-09-06
JP2019506693A (en) 2019-03-07

Similar Documents

Publication Publication Date Title
US10942704B2 (en) Mechanical computing systems
US10949166B2 (en) Mechanical computing systems
Merkle et al. Mechanical computing systems using only links and rotary joints
ES2963835T3 (en) Mechanical computing systems
Walus et al. Computer arithmetic structures for quantum cellular automata
JP7289386B2 (en) mechanical computing system
Merkle et al. Molecular mechanical computing systems
Riyaz et al. Quantum-dot cellular automata: An efficient and adroit alternate to CMOS technology
US11720084B2 (en) Efficient and manufacturable mechanical computing
Winfree et al. Two-dimensional tile displacement can simulate cellular automata
Moore et al. Mechanical Computing Systems Using Only Links and Rotary Joints
Ottavi et al. High throughput and low power dissipation in QCA pipelines using Bennett clocking
Seet Design and simulation of reversible molecular mechanical logic gates and circuits
Reif Mechanical Computing: The Computational Complexity of Physical Devices.
Reif Mechanical Computation: its Computational Complexity and Technologies Chapter, Encyclopedia of Complexity and Systems Science
Moghadam et al. A novel reversible design for double edge triggered flip-flops and new designs of reversible sequential circuits
Floratos et al. Unitary evolution on a discrete phase space
Meyers John H. Reif 2
Reif Mechanical Computation: The Computational Complexity of Physical Computing Devices Chapter, Encyclopedia of Complexity and Systems Science1
Frank Nanocomputers—Theoretical Models
Hsieh et al. On the kinematic synthesis of jet propulsion mechanisms for bionic jellyfishes with 6 links
Gehrig et al. Mesoscopic spatiotemporal dynamics of linear and rotary molecular motors
Smith Classical reversible computation with zero Lyapunov exponent
Ananthasuresh Micromachines: The Role of the Mechanisms Community
Gopalakrishnan et al. Physically Realizable Reversible Logic Gates in Beyond CMOS QCA Technology