WO2017116482A1 - Mechanical computing systems - Google Patents
Mechanical computing systems Download PDFInfo
- Publication number
- WO2017116482A1 WO2017116482A1 PCT/US2015/068359 US2015068359W WO2017116482A1 WO 2017116482 A1 WO2017116482 A1 WO 2017116482A1 US 2015068359 W US2015068359 W US 2015068359W WO 2017116482 A1 WO2017116482 A1 WO 2017116482A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- logic
- mechanical
- links
- link
- input
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06C—DIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
- G06C15/00—Computing mechanisms; Actuating devices therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06C—DIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
- G06C21/00—Programming-mechanisms for determining the steps to be performed by the computing machine, e.g. when a key or certain keys are depressed
Definitions
- the present invention relates to the field of computer technology or computer systems relating 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 built from mechanical components rather than electronic components.
- Turing-complete computing requires a means for combinatorial logic, as well as a means for sequential logic.
- 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; Heinrich, Lutz et al., “Molecule Cascades,” Science, 2002; Remon, Ferreira et al., “Reversible molecular logic: a photophysical example of a Feynman gate,” Chemphyschem, 12, 2009;
- “primitives” including various types of gears, linear motion shafts and bearings, springs (or other energy-storing means, e.g., some designs use rubber bands), detents, ratchets and pawls, or other mechanisms which have the potential to be energy- dissipative, as well as increasing the complexity of the device. Note that such designs require these various primitives to function properly; they are not optional. [0005] That the use of many types of basic parts in a mechanical system can complicate design, manufacture, and assembly, as well as potentially reducing reliability, is obvious. Reducing the complexity of mechanisms is a common inventive goal.
- vibrations which may, e.g., create heat, or generate acoustic radiation.
- vibrations which may, e.g., create heat, or generate acoustic radiation.
- ratchets and pawls, detents, or other mechanisms which involve the relatively uncontrolled impact of one piece of a mechanism upon another can lead to energy-dissipating vibrations, and so the removal of these types of mechanisms would also have benefit.
- Waste heat is a well-known issue for computational systems, electronic or mechanical, which dissipate far more energy per bit operation than is required in theory.
- computations can be performed where the energy dissipated is only ln(2) k B T 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 (Berut, Arakelyan et al., “Experimental verification of Landauer's principle linking information and thermodynamics," Nature, 7388, Nature Publishing Group, 2012).
- Reversible operations can, in theory, dissipate zero energy. While conventional computers are generally not built upon 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 Theoretical Physics, 12, 1973; “Logical reversibility of computation,” IBM Journal of Research and Development, 6, 1973; Toffoli, “Technical Report MIT/LCS/TM-151 - Reversible Computing,” Automata, Languages and Programming, Seventh
- Embodiments of the invention include mechanical computing mechanisms and computational systems which have lower energy dissipation, a smaller number of basic parts, and other advantages over previous systems. Multiple embodiments are disclosed including mechanical link logic, mechanical flexure logic, and mechanical cable logic, along with design paradigms (including both mechanical designs, principles, and a novel classification system which categorizes systems as Types 1 through 4) that teach how to apply the general principles to other
- FIG. 1 depicts a side view of a molecular rotary joint.
- FIG. 2 depicts a side view of a four-bar linkage.
- FIG. 3 depicts a top view of a mechanism which can serve as the basis for a NA D or AND gate.
- FIG. 4 depicts a top view of a mechanism which can serve as the basis for a NOR, NAND, AND, or OR gate.
- FIG. 5 depicts a top view of a XOR gate.
- FIG. 6 depicts a top view of a Fredkin gate.
- FIG. 7 depicts a top view of a co-planar lock in the (0,0) state.
- FIG. 8 depicts a top view of a co-planar lock in the (1,0) state.
- FIG. 9 depicts a top view of an alternate embodiment of a co-planar lock in the (0,0) state.
- FIG. 10 depicts a top view of an alternate embodiment of a co-planar lock in the (1,0) state
- FIG. 11 depicts a 3/4 view of a non-co-planar lock in the (0,0) state.
- FIG. 12 depicts a top view of a non-co-planar lock in the (0,0) state.
- FIG. 13 depicts a 3/4 view of a non-co-planar lock in the (1,0) state.
- FIG. 14 depicts a top view of a non-co-planar lock in the (1,0) state.
- FIG. 15 depicts a 3/4 view of a non-co-planar lock in the (0,1) state.
- FIG. 16 depicts a top view of a non-co-planar lock in the (0, 1) state.
- FIG. 17 depicts a top view of a balance with an input of 0.
- FIG. 18 depicts a top view of a balance with an input of 1 with an anchor at the top.
- FIG. 19 depicts a top view of a balance with an input of 1 with an anchor at the bottom.
- FIG. 20 depicts a top view of a binary double balance with inputs
- FIG. 21 depicts a top view of a binary double balance with inputs
- FIG. 22 depicts a top view of a switch gate.
- FIG. 23 depicts a top view of a lock and balance-based NA D gate.
- FIG. 24 depicts a top view of a lock and balance-based Fredkin gate.
- FIG. 25 depicts a top view of a shift register cell in its blank state.
- FIG. 26 depicts a top view of a shift register cell after input has been provided but before a clock signal is set to high.
- FIG. 27 depicts a top view of a shift register cell after input has been provided and a clock signal has been set to high.
- FIG. 28a depicts a top view of the left half of a two-cell shift-register.
- FIG. 28b depicts a top view of the right half of a two-cell shift-register.
- FIG. 29 depicts a top view of a canceling group.
- FIG. 30 depicts a top view of a flexure-based lock.
- FIG. 31 depicts a top view of an MCL pulley and associated mechanisms.
- FIG. 32 depicts a side view of an MCL pulley and associated mechanisms.
- FIG. 33a - FIG. 33c depict top views of various states of one embodiment of an MCL lock.
- FIG. 34 depicts a 3/4 view of a knob which can be used to create a lock.
- FIG. 35 depicts a 3/4 view of two knobs forming a lock in the (0,0) state.
- FIG. 36 depicts a 3/4 view of a lock in the (0,1) state.
- FIG. 37 depicts a 3/4 view of a lock in the (1,0) state.
- FIG. 38 depicts a top view of an MCL oval.
- FIG. 39 depicts a top view of an MCL balance in the (0,0) state.
- FIG. 40 depicts a top view of an MCL balance in the (0, 1) state.
- FIG. 41 depicts a top view of an MCL balance in the (1,0) state.
- FIG. 42 depicts a top view of an MCL balance in the (1,0) state after actuation.
- Anchor block means one or more rigid structures to which basic parts or higher-level assemblies can be attached, and which may also serve as heat sinks. Note that even when written in the singular, there may be more than one anchor block, as design needs dictate.
- the shape of an anchor block can be arbitrary ("block” should not be taken to mean that the structure is necessarily rectangular, or any simple shape).
- An anchor block can be made from any appropriate material, not limited to, but including any of the materials suggested herein from which basic parts could be made. An anchor block is assumed to be present as needed whether explicitly stated or not.
- Anchoring means attached to an anchor block, or otherwise rendered immobile with respect to other relevant basic parts or mechanisms.
- Anchoring may be permanent or conditional (e.g., depending on data inputs or clock signals), and a conditionally anchored part may be referred to by its relevant conditional state (i.e., if the part is unanchored in a given situation, it may be referred to as unanchored, and vice versa).
- Atomically-precise means where the identity and position of each atom in a structure are specified by design. Structures such as naturally-occurring or bulk-manufactured crystals or quasicrystals, having surface irregularities, impurities, holes, dislocations or other imperfections, are not atomically-precise. Atomically- precise can, but does not have to, include knowledge of isotopic composition.
- a "balance” is a structure which transmits movement through one side or route of a mechanism versus another. Balances can be used, e.g., to perform computations and to route data. A balance may have any number of inputs and outputs, some of which may be anchored, or conditionally anchored (as when connected to a lock). The word "balance" and forms thereof may also be used in its traditional sense (e.g., equal masses or forces 'balance' each other) as context dictates.
- a "basic part” is a fundamental building block, or primitive, of a mechanism or computational system.
- the basic parts of MLL are links and rotary joints
- the basic parts of MFL are links and flexures
- the basic parts of MCL are cables, pulleys, and knobs.
- “Basic part” is synonymous with “primitive,” and the distinction between a basic part and a mechanism is that basic parts are, 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 could require an axle as a separate part), not obviously logically divisible into smaller parts.
- a “cable” is a flexible structure used to transmit tensile forces, e.g., directly, or via pulleys.
- Coaxial refers to rotary joints which share the same axis of rotation.
- the term may also be applied to the analogous concept in co-planar mechanisms which have multiple joints that share common arcs of movement.
- Computer system and forms thereof including “computational system” means a system for carrying out general-purpose computations. Such systems are Turing-complete. Devices only capable of solving a single, 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 computing, and are therefore not “computing systems.” Power sources, motors, clock signal generators, or other components ancillary to Turing-complete computational means are not part of a computing system. Different types of computational systems may be interfaced.
- Co-planar refers to a mechanism that moves in one or more parallel planes. The term is used to differentiate essentially flat (but potentially multi-layer) implementations of mechanisms from those which utilize movement in non-parallel planes. The distinction is largely one of convenience for naming and visualization, as the mechanisms described herein can be constructed in either a co-planar or non-co- planar manner.
- Data link means a link that aids in transferring data, from one location to another.
- a data link may be simply called a "link” when context makes the meaning clear.
- a "flexure” is a type of bearing which allows movement through bending of a material, rather than sliding or rolling.
- Form means a branch in a line allowing one data link to be coupled to more than one other data link.
- a fork can, e.g., allow the copying of one input/output to multiple links or lines.
- Input means the data, for example encoded by physical position, supplied to a mechanism, e.g., for purposes of storing the data in memory, transmitting the data elsewhere, performing combinatorial logic on the data, or actuating the mechanism (e.g., via a clock signal). For a variety of reasons, including that the input to one mechanism can be the output from another, that some
- Line means a sequence of connected data links. Also called a "data line.”
- Link means a rigid structure or body connected to one or more rotary joints.
- a "lock” is a structure with a plurality of inputs where one or more of the inputs being set to some pre-defined range of values results in the other inputs being locked. For example, in a two-input lock, upon setting one of the inputs to a non-zero value, the other input is locked until the non-zero input is returned to zero. In a two-input binary lock, the non-zero value being set would typically be 1, but the lock mechanism may engage well before the input actually reaches 1 (e.g., an input of 0.1 on one input may be sufficient to lock the other input).
- 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 which provide combinatorial logic (e.g., reversible implementations of traditionally-irreversible gates, or special-purpose logic gates).
- MCL Mechanical Cable Logic
- a “mechanism” is a combination of basic parts forming an assembly of a level of complexity between that of a basic part and a computational system.
- lines, locks, balances, logic gates, and shift registers are all components, as are any sub-assemblies which include more than one basic part.
- links and rotary joints, or any other basic parts are not mechanisms.
- MFL Mechanical Flexure Logic
- MLL Mechanical Linkage Logic
- Not-coaxial refers to two or more rotary joints which do not share the same axis of rotation, or the analogous concept in co-planar mechanisms.
- Output means the data, for example encoded by physical position, provided by a mechanism. See “Input” for additional detail and comments on the interchangeability of the two terms.
- a "pulley” is a mechanism which facilitates the routing of, and/or transmission of forces by, one or more cables.
- pulleys rotate as the cable moves, but this is not necessary, e.g., a cable could slide over a pulley's surface if the energy dissipation incurred was suitably low.
- Pulleys may be anchored or unanchored. Unanchored pulleys may be free to move as dictated by their attached cables, or may have their movements constrained by a track, groove, or other guiding means.
- Rotary joint means one or more connections between rigid bodies that allow rotational motion about an axis.
- Rotary joints may be anchored or unanchored.
- Serial link means a link that provides physical support or kinematic restraint for other links.
- Turing-complete has its standard meaning as used in the field of computer science, with the caveat that, since real-world systems have bounded memory, time, and other parameters, such practical limitations are acknowledged to exist, and so the term “Turing-complete,” when applied to an actual system, may be taken to include such limitations (resulting in what may be more precisely called a "linear bounded automata").
- a mechanical computational system can be designed solely from two basic parts: links, and rotary joints (plus an anchor block to which these basic parts can be affixed; this will be subsequently assumed and not necessarily mentioned each time), using a design paradigm referred to as Mechanical Linkage Logic ("MLL").
- MLL Mechanical Linkage Logic
- the paradigms of MLL are generalized to show other ways in which simple and efficient mechanical computing systems can be designed, such as Mechanical Flexure Logic (“MFL”) and Mechanical Cable Logic (“MCL”) (any of which could also be used in combination).
- MFL Mechanical Flexure Logic
- MCL Mechanical Cable Logic
- Part of this generalization also includes the description of a novel classification system based on ways in which mechanical computing systems can dissipate energy.
- Embodiments of the invention provide all the mechanisms necessary to create Turing-complete computational systems. For example, using MLL, this includes lines, logic gates, locks, and balances, and more complex mechanisms such as shift registers, each requiring no basic parts other than links and rotary joints.
- Other embodiments e.g., MFL and MCL
- mechanical computing systems can dissipate energy in several ways, including friction (including drag caused by thermal movement at the atomic level), and vibrations, which can be caused not only by running a mechanical system fast enough to excite its resonant frequencies
- part-to-part impacts or relatively unconstrained releases of energy include the snapping motions of ratchet and pawl mechanisms, and detents.
- Type 1 Devices which store potential energy (e.g., in a spring) and which then release this energy in a manner unconstrained by the computational degrees of freedom.
- Devices which use ratchets and pawls, or detents are examples of a Type 1 device, as the release of stored energy by the ratchet and pawl or detent are assumedly not tied to the computational degrees of freedom. In such a device, if, e.g., a ratchet and pawl were present, while the snapping motion of the pawl might occur with a periodicity controlled by a clock system, the energy release of that snapping motion would not be tied to the clock frequency.
- the speed of the energy release would be a function of, e.g., the force applied to, and the mass of, the pawl, regardless of the overall computational speed of the system.
- the resulting collision of the pawl with the ratchet could generate vibrations which waste energy.
- Type 2 Devices which store potential energy, and then release this energy in a manner controlled by the 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 drove the line back and forth, the spring would compress and decompress. This compression and decompression would take place gradually, at the frequency imposed by a system clock. The spring would not be allowed to snap an unconstrained part into place at a speed which, from the perspective of the system clock, is arbitrary. Rather, the movement of the spring and attached parts is governed by the computational degrees of freedom.
- the spring is part of a continuous linkage, and so no collision of parts occurs like when a ratchet is impacted by its pawl. This can also help reduce dissipated energy. And, even if part collisions do occur (e.g., see the descriptions of knobs in MCL systems), since the speed with which such contacts occur can be coupled to the computational degrees of freedom, it is possible to choose speeds which do not dissipate
- Type 3 Devices which do not store more than trivial amounts of potential energy, but have parts with non-trivial unconstrained degrees of freedom.
- systems could be created using MLL where, due to one or more locks being in the blank (0,0) position, connected links are free to move in an essentially random manner due to thermal noise, system vibrations, or other causes.
- unconstrained movement can result in having to expend energy to periodically set mechanisms to a known state to ensure reliable operation. (Note that such situations can be avoided with properly designed systems, and this is presented as exemplary only).
- Type 4 Devices which do not store 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, directly or indirectly, coupled to data inputs and/or the system clock. No components are allowed to freely "float” as might a link connected only to a lock in the blank state. With respect to defining "trivial" unconstrained degrees of freedom, this means those which occur in a small enough portion of the overall system (e.g., one particular type of mechanism has this issue, but the mechanism is rare in the overall system), or those that occur infrequently enough, that they do not materially affect overall energy dissipation.
- An MLL system is built from various basic parts or primitives. In the embodiments described, these are rotary joints and links, which together form mechanical linkages. Mounted on an anchor block, rotary joints and links can be used to create higher-order mechanisms such as data transmission lines, locks, and balances. Still higher order mechanisms, including logic gates (both reversible and irreversible) and shift registers can be created by combining locks and balances, or implemented more directly using links and rotary joints. This suffices to build a complete computational system.
- Shift registers are simple, yet when combined with one or more logic gates which provide for universal combinatorial logic, contain all the fundamental elements required for computation. If the basic parts can build a shift register and appropriate logic gates, it follows that an entire computational system can be built.
- links internal to the implementation of various mechanisms may move between more than two allowed positions, even if the inputs and outputs are still binary.
- Binary is used for exemplary purposes because it is the most common type of computational system used in conventional computers.
- Linkage v3 (free from www.linkagesimulator.com), Autodesk Inventor 2015/2017, or for molecular models, HyperChem, GROMACS, or Gaussian.
- Many of the figures herein represent sub-assemblies taken out of the context of a complete computational system. As a result, they are not necessarily functional as shown. For example, a given mechanism may not being fully constrained as depicted because, in a complete system, the mechanism would attach to other components to satisfy missing constraints, or would attach to some manner of actuation (e.g., a clock signal).
- Ancillary support structures such as anchor blocks, or links which serve only to provide rigidity (“support links”), are generally omitted.
- Friction in a rotary joint can be made smaller and smaller as the size of the rotary joint gets smaller and smaller.
- a rotary joint comprising two atoms rotating around a single bond ideally has zero contact area, and various rotary joints which rotate around the axis of single chemical bonds have been analyzed and found to have very little friction.
- carbon-carbon single bonds using carbon atoms mounted on diamond supports, are one way to create a rotary joint that provides rotation with very little energy dissipation.
- FIG. 1 depicts a molecular model of one possible implementation of a rotary joint being used to hold a rotating member.
- An upper support structure 101 and lower support structure 102 which would be connected to, e.g., an anchor block, in a complete device, are used to connect a set of upper and lower bonds, along the same axis of rotation, to a rotating member 103.
- the upper bonds include upper carbon- carbon single bond 104, upper carbon-carbon single bond 105, and upper carbon- carbon triple bond 106.
- the lower bonds include lower top carbon-carbon single bond 107, lower bottom carbon-carbon single bond 108, and lower carbon-carbon triple bond 109
- the rotary joint is bonded to the support structures by several oxygen atoms, including upper oxygen atom 110 and lower oxygen atom 111.
- the rotating member 103 as depicted is a roughly circular slab of diamond, but this is
- the rotating member could be a link, a flywheel (e.g., to generate a clock signal), or anything else that needs to rotate, in any shape.
- oxygen atoms exemplified by oxygen atom 110 and oxygen atom 111 might be replaced with nitrogen, or another element with an appropriate valence, bond strength, and steric properties.
- carbon could be replaced with silicon or other appropriate elements.
- entirely different structures could be used, including carbon nanotubes or other structures, preferably those which can stiffly hold molecular-scale rotary joints.
- such a rotary joint does not need to consist of only a single bond or pair (e.g., upper and lower) of bonds.
- the rotary joint could be replaced with a vee jewel bearing, a rolling element bearing, nested fullerenes (e.g., carbon nanotubes), or any one of many ways known to allow rotation, preferably with low friction.
- multiple co-axial rotary joints can be used to create a stronger joint (e.g., using a structure similar to the interdigitated design of a door hinge). And, at the molecule scale, adding additional rotary joints on the same rotational axis could further reduce the rotational barrier if appropriate attention is paid to symmetry.
- a rotary joint can be formed using one bond, device strength and stiffness can benefit from a rotating part being held on two sides, as depicted in FIG. 1, and/or using multiple bonds, such as in the "door hinge" example.
- rotary joints may be referred to as rotating about a single bond, although in some cases it would be more precise to say that multiple bonds may be used to form a single axis of rotation for the overall rotary joint.
- the magnitude of the rotational barriers, the torque required to overcome them, the length of the lever arms (e.g., links), and the time to rotate the link through the necessary range of the rotary joint (and how far that range is) all depend on the design of a particular system.
- molecular dynamics simulations show that the energy required to rotate a link connected to a molecular rotary joint through one radian at a speed of lxlOE9 radians/sec and a temperature of 180K can be below lxlOE-25 J.
- the Landauer Limit is 1.72xlOE-21 J at 180K.
- links are stiff, rod-like structures, although some implementations may have different or substantially more complex shapes.
- links could be larger, or smaller, or completely different in shape (as seen in the non-co-planar lock examples).
- Switching between different conformations can occur through bond rotation (although other changes, such as changes in bond angle or torsion, may also be present and used), similar to that in the previously-described rotary joint, and results in the movement of one or more of the atoms in the structure.
- FIG. 2 depicts a side view of such a 4-bar linkage (note that these are sometimes called 3 -bar linkages, since the support structure may or may not be considered an additional bar), comprising an anchor block 205, left support link 202, right support link 207, and 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 left anchored 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 right anchored 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 upper left rotary joint 201 and the upper end of the right support link 207 is connected to the right side of the data link 204 by upper right rotary joint 208.
- Left anchored rotary joint 203 and right anchored rotary joint 206 are prevented from moving with respect to each other by the anchor block 205.
- Data link 204 transmits the movement of one support link to another support link.
- the left support link 202 and right support link 207 are shown shifted to the left.
- the left-leaning support links put the data link 204 in a position to the left of the left anchored rotary joint 203 and right anchored rotary joint 206. Arbitrarily, this left position can be called “0” or "low", while if the left support link 202 and right support link 207 were leaning to the right, that position could be called “1" or "high.” This provides a basis for a binary system of data storage and transfer.
- left anchored rotary joint 203 and right anchored rotary joint 206 are anchored rotary joints because they terminate on anchor block 205.
- anchor block may not be explicitly shown. Rather, the diagrammatic convention is often adopted where unfixed rotary joints are depicted as a circle at the intersection of multiple links (which are generally represented as straight lines or bars, although some may have more complex shapes), while fixed or anchored rotary joints are depicted as a circle and a triangle with short diagonal lines at its base. In other figures, generally to reduce complexity, some of these conventions may be changed or eliminated. The figure descriptions and context will make it obvious how such diagrams are to be interpreted.
- One data link can be connected to any number of other data links to continue the transmission of data. Data transmission can continue in a straight line across additional support links (while effectively just a longer data link, it may be useful to include additional support links to increase stiffness), or can change direction at rotary joints, at whatever angle and in whatever plane desired. And, one link can connect to multiple other links not only sequentially, but also through forking structures, effectively copying the data for use in multiple locations. This provides considerable flexibility in routing data.
- Data transmission may 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.
- every data link in the chain is tied to its neighbors. All the data links in a chain, which can be of some significant length, can be made to share a common movement, a property that can be used to share a single binary value along the entire length of the chain.
- a set of connected links is called a line.
- MLL could be implemented using basic parts of virtually any size desired.
- conventional machining or 3D printing could be used, with, e.g., vee jewel bearings or rolling-element bearings for rotary joints and conventional beams or rods for links.
- 3D printing lithography -based techniques, or any of the other well-known ways in which
- EMS/MEMS devices can be manufactured, could be used to create devices with mechanisms in the nanometer to micron range.
- MLL mechanisms could be molecular-scale. Due to the higher operational frequencies and reduced energy dissipation which tend to be afforded by smaller parts, MLL systems would preferably be implemented at the smallest scales feasible (while taking into account factors such as performance requirements and budget). For this reason, while most of the teachings herein are scale-independent, estimations of energy dissipation focus on an exemplary molecular-scale embodiment. [0115] 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,"
- MLL mechanisms and computational systems could be created using, e.g., molecular manufacturing using mechanosynthesis, or assembly of properly functionalized molecules using atomic force microscopy-type equipment.
- Conventional chemistry or self-assembly may also be a feasible route for manufacturing molecular-scale MLL mechanisms.
- synthesis and assembly of the necessary basic parts and mechanisms is in many ways simpler than the complexities of manufacturing a conventional electronic computer or than implementing previous proposals for mechanical computing.
- an entire MLL system can be constructed with nothing but links and rotary joints. Since, particularly at the molecular-scale, there is very little energy loss from rotation around a well-designed rotary joint, a complete
- MLL design paradigms e.g., torque and mass balancing to reduce or prevent acoustic radiation
- these can help reduce energy dissipation even further.
- operating conditions can also affect energy dissipation. For example, if an MLL system is operated in a vacuum, acceleration and deceleration of links takes place smoothly, and the applied forces are small enough that deformation of basic parts contributes negligible energy dissipation, energy dissipation may be reduced further.
- MLL mechanisms may also affect energy dissipation.
- MLL systems can be designed such that, by using clock phases appropriately, force is not applied to mechanisms that are not free to move (e.g., such a system does not try to move a locked mechanism without first unlocking it).
- This is the MLL version of "dry switching," a term normally used in the field of relays to indicate that switches have no voltage across them when changing state, but herein will be used in the context of MIX. Note that while it is a major novel finding of MLL that complete
- MLL systems may incorporate, or interface with, additional components.
- cams and cam followers are one way to generate clock signals.
- cams and cam followers can be designed (as is explained herein) to have minimal energy dissipation, such mechanisms are ancillary to, not actually part of, MLL.
- Motors or other ways of powering the movement of MLL systems are another example of a function that may be coupled to an MLL system, but are not considered part of MLL, and the same could be said for, for example, input/output interfaces which bridge, e.g., MLL and electronic systems or non-MLL mechanical systems.
- Any mechanical system can dissipate substantial energy if run fast enough to excite internal mechanical resonances.
- proper design can avoid low frequency vibrational modes being coupled to the clock, and the remaining vibrational modes can be computed and avoided by picking a speed of operation slow enough to avoid exciting them, as well as a clocking waveform that minimizes their excitation.
- resonant frequencies can be in the gigahertz range, and the limits they impose on switching speed can therefore be correspondingly high.
- the switching speed of an MLL system will, just as in electronic computers, be determined by one or more clocks which produce clock signals. If the frequency spectrum of a clock signal has a component of its energy at or above the resonant frequencies of the mechanisms to which it is attached, then a greater fraction of the clock energy could be dissipated than is necessary.
- changes in a clock signal are preferably gradual so as not to generate higher frequency components.
- the gradual changes inherent in a sine wave-like transition between 0 and 1 (potentially with flat areas at 0 and 1 between transitions to allow for non-perfect synchronization of mechanisms between different clock phases) allow a clock signal to avoid placing greater strain on system mechanisms than necessary as parts accelerate and decelerate more uniformly than if, e.g., a square wave, was used.
- clock signals There are many ways of generating clock signals.
- One way of generating a gradually-changing clock signal is to use a spinning mass whose rotational motion is converted into linear or quasi-linear motion. This is, conceptually, the equivalent of a flywheel and crank, and such a device can be made with only links and rotary joints.
- Some embodiments of MLL systems may couple to other methods of generating clock signals, such as spring and mass systems, or cams and cam followers, which are described herein.
- thermal equilibration turns out not to be a limiting factor for the exemplary systems analyzed, in some situations it could be, and one objective when seeking to minimize energy dissipation could be to operate mechanisms isothermally. For this reason, short thermal equilibration times can be desirable.
- the basic parts of the system are preferably well-coupled to one or more thermal reservoirs.
- links are generally bonded to a rotary joint which is bonded to an anchor block, or to rotary joints that bond to other links, which are in turn bonded to an anchor block. While the exact path length can vary based on the implementation, this tends to keep the path from any link to an anchor block, which can serve as a thermal reservoir, short.
- diamond is used as an exemplary anchor block material (and may also be used for basic parts), for among other reasons, due to its high stiffness (Young's Modulus of about 1000 Gpa). Diamond also has good heat conduction, which can be over 2000 W/mK in natural diamond, and higher in defect-free and isotopically purified diamond (a principle which applies to other materials as well). Many other materials could be used, for both anchor blocks and basic parts, although high stiffness would be preferred for various reasons, including raising the frequency of resonant vibrations, and good heat conduction would be preferred if fast thermal equilibration is desired.
- exemplary materials include Carbyne (Young's Modulus of 32, 100 GPa), various Fullerenes (e.g., carbon nanotubes can have Young's Moduli of over 1000 GPa, thermal conductivity of 3180-3500 W/mK or higher), Silicon Carbide (Young's Modulus of 450 GPa), and Silicon (Young's Modulus of 130-185 GPa, thermal conductivity of 148 W/mK). Note that these values are approximate, and generally represent values measured at 300K (room
- the values may vary substantially depending on a material's atomic structure, purity, isotopic composition, size and shape, and temperature. For example, while Silicon's thermal conductivity is 148 W/mK at 300K, it can exceed 3000 W/mK at temperatures around 20K.
- MLL systems need not be composed of only one type of material.
- Various materials each have different pros and cons, including not only bulk properties such as stiffness, thermal conductivity, and thermal expansion, but at the molecular scale, the strength of individual bonds may become important, as may be the exact size of various basic parts and their inter-atomic spacing (e.g., so that they mesh properly with other basic parts, among other concerns).
- MLL systems may use a variety of different materials.
- thermal equilibration time of one exemplary molecular- scale embodiment using diamond links about 20nm in length is -0.54 ps. Given this, even a few nanoseconds of thermal equilibration makes the energy dissipated due to thermal disequilibrium essentially 0. Therefore, thermal equilibration time is not the limiting factor in switching time for such an embodiment.
- a reversible operation can be carried out with 0 energy, while 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 the hardware's efficiency (the Landauer Limit).
- the logic elements of the hardware might be redesigned to dissipate less energy during the computational process. This could result in a significant improvement in energy efficiency because a conventional computer dissipates much more than ln(2) kBT per erased bit.
- 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, an individual Fredkin gate is reversible. However, reversibility may also be implemented at higher levels, such as when using a retractile cascade to uncompute a series of previous computations. Such techniques are well-known in the literature, along with appropriate clocking schemes such as Bennett Clocking and Landauer Clocking.
- Links and rotary joints not only serve as the basic parts for moving data from place to place, but 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 links and rotary joints, affixed to an anchor block to hold them in place (and which may also serve as a thermal sink).
- FIG. 3 shows a mechanism that can serve as both an
- Anchor 301 and linear slide 302 serves as the first input to the gate, connecting to rotary joint 306.
- Anchor 303 and linear slide 304 serves as the second input to the gate, connecting to rotary joint 307.
- Anchored rotary joints 305 and 309, plus unanchored rotary joints 306, 307, 308, 310 and 311 are connected via the appropriate links.
- AND output 310 and NAND output 311 provide for the use of the gate as an AND or NAND gate. The functioning of this gate is as follows.
- 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 opposite direction of AND output 310, no movement at NAND output 311 represents an output of "1" and movement to the left represents a "0".
- NAND output 311 need not be present.
- the AND output 310 can be ignored. The two are combined for illustrative purposes; they would not necessarily be so combined in actual use.
- NAND is known to be a universal gate (meaning, all other gates can be created with the appropriate combination of NAND gates), this mechanism alone would suffice to create any combinatorial logic. However, it may be more efficient to construct other types of gates directly, rather than through the combination of NAND gates, and to
- FIG. 4 shows a NOR gate made with only links and rotary joints. Input
- Inverter 1 comprises linear slide anchor 401 and is connected via a rotary joint to inverter 405.
- Input 2 comprises linear slide anchor 403 and linear slide 404 and is connected via a rotary joint to inverter 406.
- the linear slides are present as a diagrammatic or programmatic convenience and should be taken to represent some appropriate connection when these individual mechanisms are combined into a higher-level assembly.
- Inverters 405 and 406 invert a leftward signal to a rightward signal and vice-versa and connect via rotary joints to upper right portion of the mechanism 407, and lower right portion of the mechanism 408, respectively.
- FIG. 5 shows an XOR gate implemented using only links and rotary joints.
- Input 1 comprises anchored rotary joint 501 and linear slide 502
- input 2 comprises anchored rotary joint 504 and linear slide 503.
- Input 1 and input 2 are coupled to output 505 via a series of links, anchored rotary joints, and unanchored rotary joints. The movement, or lack thereof, at output 505 replicates the expected truth table for XOR.
- any logic gate can be directly implemented using only links and rotary joints. Note that by carrying the input data forward along with the expected output of a logic gate so that no data is lost in the computation, logic gates which are traditionally considered irreversible can be made reversible. There are also well-known logic gates which are inherently reversible, such as the Toffoli gate and Fredkin gate, which can also be implemented in many ways using MLL. Reversible Logic Gates
- FIG. 6 shows a Fredkin gate (also called a CSWAP gate), a well- known universal reversible gate.
- the three inputs to the gate 601, 602 and 603 are connected, via a series of links, anchored rotary joints, and unanchored rotary joints, to outputs 604, 605 and 606.
- this particular implementation of a Fredkin gate is composed of three XOR gates, and an AND gate, plus some forked data lines used to replicate data so that it can be used at more than one place within the gate. This demonstrates not only more sophisticated routing of data than the previous gates, but that reversible logic can be constructed from irreversible logic.
- a Fredkin gate does not erase any data and so need not be subject to the Landauer Limit.
- logic gate examples it will be obvious that any type of logic gate necessary for implementing a complete general-purpose computing system, reversible or irreversible, can be implemented within the design paradigms of MLL, using only links and rotary joints.
- each of the foregoing logic gate examples are co-planar mechanisms. This means that they operate in one or more parallel planes, with movement occurring parallel to the plane of the image.
- One of the advantages to co-planar 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 herein.
- Optimized implementations could differ with the requirements of a particular computational system, including the types of computations 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).
- Another way multiple links or lines can interact is via a mechanism which causes links to interfere with each other's movements. That is, the position of a first link can allow or prevent one or more other links from moving, and vice versa.
- a mechanism which causes links to interfere with each other's movements. That is, the position of a first link can allow or prevent one or more other links from moving, and vice versa.
- This mechanism is referred to as a lock. It is common for a lock to have inputs and outputs, just like a logic gate. E.g., a 2 input lock has 2 inputs, and can have 0, 1 or 2 outputs. Each input line to the lock can either continue as an output line, or it can terminate at the lock.
- a rotary joint can be anchored or not anchored, often depending on whether the rotary joint is affixed to an anchor block.
- affixing a rotary joint to an anchor block is not the only way to render it immobile. Rather, a rotary joint can be connected to one or more links which, due to the configuration of the one or more links (whether this configuration is permanent or transient), does not permit movement of the rotary joint. For example, consider a triangle made of three links. Each link is affixed to the two other links by rotary joints at each end.
- a binary lock with two inputs can have three possible states: (0,0), also called “blank,” (0, 1), and (1,0).
- the blank state can be useful in saving state, and allowing reversible computation, as can be seen herein in the description of how an exemplary shift register can be implemented.
- FIG. 7 and FIG. 8 depict a two- input co-planar lock in two different states.
- FIG. 7 shows the position of the lock where both inputs are 0, while FIG. 8 shows the position of the lock when one of the inputs is 1.
- Top input 701 and bottom input 702 connect via rotary joints to the top and bottom halves of the lock, respectively.
- Each half of the lock comprises a 4-bar linkage, comprising links 703, 705 and 712 on the upper half, and links 704, 706, and 713 on the lower half.
- four diagonal links 707, 708, 710 and 711 hold an additional link 709, which connects to the two 4-bar linkages via unanchored rotary joints.
- link 709 is now not parallel with, depending on which input was set to 1, links 703 and 712, or links 704 and 713. Because of this, the rotation of link 709 will not follow that of the second 4-bar linkage, should it try to move. In essence, one of the links (link 705 for the top, if not already moved, or link 706 for the bottom, if not already moved) will be trying to move through two different arcs at once, resulting in the mechanism locking.
- the lock design of FIG. 7 has the property that it locks quickly and unlocks slowly. For example, virtually any movement of one of the inputs locks the other input. And, once an input has been set to 1, locking the mechanism, that input must be brought essentially all way back to 0 before the lock unlocks. It may be desirable to design locks which have more gradual locking properties, and this may have advantages including smoother changes in entropy (resulting in reduced energy dissipation), reduced maximal force on the mechanisms at a given switching speed, and a reduced time between lock/unlock cycles, since there is less concern that one input must be allowed to settle to almost exactly 0 before the other input can start to move.
- springs in connections to a lock can also aid in the operation of a lock, as the mechanism can then be driven as desired even when small positional errors are present which would otherwise lock a mechanism which almost instantly locks when 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) which has a suitably chosen spring constant. If link 709 is, or incorporates, a very stiff spring, the lock will allow only small positional errors. If link 709 is, or incorporates, a softer spring, the lock will allow larger positional errors.
- FIG. 9 and FIG. 10 depict a lock where, due to gradually changing torque as the mechanism moves from unlocked to locked, the locking action is more gradual.
- FIG. 9 shows the lock when inputs 901 and 902, are 0, while FIG. 10 shows the state of the lock after input 901 has been set to 1 while input 902 is still 0.
- Inputs 901 and 902 are connected to the rest of the mechanism via unanchored rotary joints. Note that the setting of one input to 1 results in driving the other input backwards slightly in this design.
- the overall system can be designed to allow this, or the backwards motion could be kept internal to the mechanism, such as by using springs that absorb such motion rather than transmitting it directly to other links.
- FIG. 11 depicts a lock, constructed of links and rotary joints, which is not co-planar. Rather, as will be subsequently explained, the rotary joints allow the links to move perpendicular, rather than parallel, to the face of the Anchor Block.
- link 1101 will be referred to as Linkl, link 1102 as Link2, link 1103 as Link3, space 1104 as OpenJoint4, space 1105 as OpenJoint5, space 1106 as OpenJoint6, space 1107 as OpenJoint7, rotary joint 1108 as Jointl, rotary joint 1109 as Joint2, rotary joint 1110 as Joint3, rotary joint 1111 as Joint4, and anchor block 1112 as the Anchor Block.
- the Anchor Block provides anchor points for the rotary joints Jointl and Joint4, which are connected to Linkl and Link2, respectively.
- Linkl is connected to Link2 by Joint2, and Link3 is connected to Link2 via Joint3. All Joints and Linkl, Link2, and Link3 are shown in the unlocked position.
- Linkl and Link3 each have an axis about which they might pivot.
- this is the axis defined by Jointl and Joint 3 when they are coaxial.
- this is the axis defined by Joint2 and Joint4 when they are coaxial.
- Link3 would create a locked condition.
- subsequent figures show about 30 degrees of rotation. This is arbitrary, and any amount of pivoting which will allow the system to act reliably could be used (as could any other angle, as opposed to perfectly perpendicular to the face of the Anchor Block).
- Link 2 were replaced with a spring of similar length, the tolerance of the lock for positional errors in its inputs could be increased, to the extent thought desirable. It will be obvious given this explanation that if either Linkl or Link3 were to pivot a suitable amount, whichever link had not pivoted would then be prevented from doing so until the pivoted link was returned to the unlocked position.
- OpenJoint4 and OpenJoint6 are connection points where other links could connect to Link3
- OpenJoint5 and OpenJoint7 are connection points where other links could connect to Linkl .
- These other links can serve as inputs to the lock.
- Linkl and Link3 each have a pair of connections (OpenJoint5 and OpenJoint7, and OpenJoint4 and OpenJoint6, respectively) not to allow four inputs (although that is possible, that is not the intent of this particular design), but rather to allow an input line to continue on past the lock if desired.
- OpenJoint5 may be thought of as a continuation of
- OpenJoint7 (or vice versa) and OpenJoint4 may be thought of as a continuation of OpenJoint6 (or vice versa).
- FIG. 12 shows a top-view of the same mechanism as FIG. 11, with only link 1101 and anchor block 1112 being visible in this view.
- FIG. 13 shows the same mechanism as FIG. 11, but in a locked position that could be called "(1,0)".
- 1101 has rotated, via rotary joints 1108 and 1110, making rotary joints 1109 and 1111 not-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 accomplished by other links (not depicted) connected to 1105 and/or 1107.
- FIG. 14 shows a top view of the state of the mechanism in FIG. 13.
- 1101 has pivoted about 30 degrees counterclockwise.
- 1102 cannot be seen in this view, but would pivot with 1101 in this instance, revealing 1103 below it.
- the direction of rotation is arbitrary. Both clockwise and counterclockwise rotations would have the same effect of locking the lock. This is true of 1103 as well.
- FIG. 15 shows the same mechanism as FIG. 13, but in a locked position due to the rotation of 1103 instead of 1102. This position could be called “(0,1)."
- 1103 has rotated, via rotary jointsl 109 and 1111, making rotary joints 1108 and 1110 not-coaxial, thereby locking 1101.
- the rotation of 1103 would be caused by other links (not shown) connected to one or more of the Open Joints, 1104 and 1106, of 1103.
- FIG. 16 shows a top view of the state of the mechanism in FIG. 15.
- 1103 has rotated about 30 degrees clockwise, while 1101 is still in its original position.
- the direction of rotation is arbitrary. Either clockwise or counterclockwise would allow proper function of the lock, and either or both could be used.
- FIG. 18 shows the same mechanism with an input of 1, the linear slide of input 1701 being extended.
- input 1701 is connected to the link 1702 by rotary joint 1703.
- Upper rotary j oint 1704 and lower rotary j oint 1705 connect via links to upper output 1706 and lower output 1707, respectively.
- Upper rotary joint 1704 is anchored in these depictions, preventing upper output 1706 from moving, while lower rotary joint 1705 is unanchored, allowing lower output 1707 to move if input 1701 moves.
- FIG. 19 depicts what would happen if upper rotary j oint 1704 and lower rotary joint 1705 were reversed (meaning, if upper rotary joint 1704 were unanchored and lower rotary joint 1705 were anchored), given an input of 1.
- the output movement would occur at upper output 1706 instead of lower output 1707.
- One of the interesting properties of balances is that they can be designed to conserve the sum of their inputs. In the foregoing example, if the input is 0, the output is 0. If the input is 1, the output is 1. This would be true of a simple line as well, but complex balances with multiple inputs can be constructed that still sum their outputs.
- balances can route data differently depending on other input.
- Other input may control the state of locks connected to a balance.
- the locks act as conditional anchors, routing data down one line or another depending on the state of the locks and allowing a balance to function as a switch, or "switch gate.”
- switch gate For example, a single balance with conditional anchors could be put into any of the configurations shown in FIG. 17, FIG. 18, and FIG. 19, since the anchor points can be changed (this concept is demonstrated in subsequent figures).
- FIG. 20 and FIG. 21 illustrate one way in which balances with multiple inputs can be used to conserve the sum of the inputs, and to route data.
- Two states of the same mechanism are depicted, which is formed by connecting two 2-input balances together (a "binary double balance").
- Inputs 2001 and 2002 are connected to link 2005 by rotary joints.
- Link 2005 is connected to link 2007 via a rotary joint.
- Link 2007 connects to link 2006 via a rotary joint.
- Link 2006 connects to outputs 2003 and 2004 via their respective rotary joints.
- the fixed length of link 2007 causes the sum of the inputs to be conserved. Since link 2007 cannot change in length, if either input 2001 or 2002 moves, a corresponding move must take place at output 2003 or 2004.
- FIG. 20 shows the state of the mechanism when input 2001 is 1, and input 2002 is 0.
- FIG. 21 shows the state of the mechanism when input 2001 and 2002 are both 1. Note that the mechanism in these figures (as is frequently the case due to the complexity of more complete systems and the need for clear illustrations of the basic underlying mechanisms of MLL) is not attached to other mechanisms as it would be in an actual MLL system. In this particular case, without additional constraints 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 tell if the outputs will be (0, 1) or (1,0), or even something like (0.5,0.5). In an actual system, one way of solving this problem is with locks. By conditionally locking one of the outputs, the other output is forced to move in a predictable manner.
- FIG. 22 shows a switch gate with a top input 2201, a bottom input 2202, and a center input 2203.
- the middle input is connected, via a balance, to top output 2204 and bottom output 2205.
- the top and bottom inputs control whether the middle input is routed to the top output or the bottom output. For example, if top input 2201 is set to 1, then the upper lock to which top input 2201 is connected, is locked. Since that means that means that the line going to top output 2204 cannot move, when an input of 1 is provided at middle input 2203, the balance to which middle input 2203 is connected must move the line which leads to bottom output 2205.
- Binary double balances coupled with locks can also be used as switch gates. Given a binary double-balance, one input is locked permanently, while one input is unlocked permanently and connected to an 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-balance. In essence, the clock input is routed through the double balance to one or the other "input" by the single line which controls the two complementary locks.
- switch gates and other MLL mechanisms that have locked states
- the clock force is applied via a balance connecting two locks. Since the system can be designed so that both locks are never locked simultaneously when the 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 is always conditionally mobile in one direction or the other.
- the Fredkin gate takes three inputs, and so had three locations where data lines could be connected.
- Each of the inputs to these exemplary logic gates was binary, meaning, the mechanism was designed such that one position represented 0, while a second position represented 1.
- frequently an input of 0 has been represented as no movement occurring at that input, while an input of 1 was represented by some forward or rightward movement.
- there are other ways to represent input For example, instead of a binary input using one connection which 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, one of the connections to an input would always move: The 0 line would move if the input was 0, and the 1 line would move if the input was 1.
- FIG. 23 depicts one way in which a NA D gate can be constructed using locks and balances.
- Clock input 2301 is connected to balance 2302, which is in turn connected to balance 2303, which is in turn connected to balance 2304.
- the clock input is then routed to balances 2305 and 2306, and finally results in the movement of upper output 2312 or lower output 2311.
- Inputs 2307 to 2310 provide inputs to the gate, with four input lines being used to represent two binary inputs, as previously described.
- input 2307 will be referred to as "AO" (meaning that it is associated with input “A,” and will move if the "A” input is 0), input 2308 as “B0,” input 2309 as “Al,” and input 2310 as “B l .”
- AO meaning that it is associated with input “A”
- input 2308 as “B0”
- input 2309 as “Al”
- input 2310 as “B l .”
- the depiction in FIG. 23 was chosen for clarity, not because this need be exactly how the mechanism is actually implemented (which is generally true for all the mechanisms described herein).
- the mechanism works as follows: If actuated, inputs 2307 to 2310 move the side of the gate to which they are connected, and lock the gate. In other words, if the input (A,B) is (0,1), the AO lines will move, and the B l lines will move. Since A is not 1, the Al lines will not move, and since B is not 0, the BO lines will not move. Obviously, and input, (0,0), (0,1), (1,0) or (1,1) is allowed. The inputs establish a pattern of which gates are locked and which are not. This pattern in turn determines which side of each balance is free to move.
- NAND is a universal gate. Therefore, it follows from this example that a system of locks and balances could be used to design any other desired logic gates, 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 balance-based mechanisms can be used to implement any other logic gate directly, including AND, OR, NOR, XOR, XNOR, NOT, CNOT, Toffoli and others.
- a Fredkin gate has three inputs and three outputs. The three inputs will be called A, B, and C, and the three outputs X, Y, and Z. Input A always connects to Output X. If Input A is 0, then Input B connects 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.
- Fredkin gates are universal gates, meaning that any logical or arithmetic operation can be computed with only Fredkin gates.
- FIG. 24 depicts a Fredkin gate made using locks and balances. Due to the complexity of the mechanism, a simplified notation is used where anchored rotary joints are not explicitly shown, but assumed to be on the unconnected ends of appropriate links.
- the clock input or signal (actuator not shown, as with all inputs to this mechanism) would be attached to rotary joint 2401. Input for Al, AO, B l, BO, CI and CO input would be attached to rotary joints 2402, 2403, 2404, 2405, 2406 and
- the clock signal and inputs are connected via a series of links and locks, and for some outputs, balances, to XI output 2412, X0 output 2413, Yl output 2414, Y0 output 2415, Zl output 2416 and Z0 output 2417.
- XI and X0 outputs are not shown on the right side next to the other outputs to reduce figure complexity. In reality, obviously they could be routed to any location desired.
- links 2418 and 2419 are part of 4-bar linkages, not balances, constraining these links to stay vertical when moving.
- Black triangles 2420 and 2421 exemplify rigid linkages (a straight line is not used to avoid a representation with excessive lines which cross each other, and this representation is only diagrammatic; the actual mechanisms could be implemented in many ways).
- the blank state is depicted in FIG. 24.
- the A, B, and C inputs are set during one clock phase.
- the clock signal connected to rotary joint 2401 is set to " 1," which causes the movement of the various balances within the mechanism, resulting in the X, Y and Z outputs being set as appropriate.
- the clock signal connected to rotary joint 2401 is set to " 1" which causes the movement of the various balances within the mechanism, resulting in the X, Y and Z outputs being set as appropriate.
- Shift registers can be used as a foundation for implementing sequential logic in a computational system. For example, two numbers to be added, subtracted, A Ded or ORed are stored in two shift registers and clocked out into an arithmetic and logic unit consisting of a handful of gates, with the result being sent to the input of a third shift register called the accumulator.
- 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 clocked by successive clocks. The output of each cell is connected to the input of the next cell in the chain.
- a shift register can be built by combining locks and balances, and assuming the presence of a clock system, so that each cell (which might be viewed as a flip-flop, and which may also be thought of as 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 relying upon a preceding or succeeding clock phase, as appropriate. This enables the copying and shifting of data through the shift register, rather than deterministically setting the contents of the entire shift register simultaneously.
- FIG. 25, FIG. 26 and FIG. 27 depicts a single cell of a shift register, in three different states.
- the 0 input 2501 is connected via a rotary joint to one side of lock 2505.
- the 1 input 2502 is connect via a rotary joint to one side of lock 2506.
- Clock signal 2503 (although diagrammed differently to provide a mechanism that is more complete when standing alone, this would, in an actual system, be a connection to the clock system), is attached to balance 2504.
- Locks 2505 and 2506 determine which of the outputs 2507 or 2508 move when the clock signal becomes 1.
- the lock which contains outputs 2507 and 2588 can be thought of as the output lock for the overall cell, while locks 2505 and 2506 are holding area locks. The importance of this concept will become clear when connecting multiple cells in series.
- FIG. 25 depicts the cell in its blank state, before any input has been provided, and while the clock signal is low or 0.
- FIG. 26 depicts the cell after input 2501 has been set to 1, but before the clock signal has moved to high or 1. This results in the locking of lock 2505.
- FIG. 27 depicts the mechanism from the previous state once the clock signal has moved to high.
- clock signal 2503 pushes on balance 2504, because lock 2505 is locked, only one side of balance 2504 is free to move.
- the clock signal moving to high is transmitted through lock 2506 and to output 2508.
- clock signals and data inputs which themselves may be tied to 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 realize and well-known in electrical implementations, but more involved in a mechanical implementation.
- FIG. 28a comprising the left half
- FIG. 28b comprising the right half
- FIG. 28a cell 1 2801
- FIG. 28b cell 2 2802
- FIG. 28a cell 1 2801
- FIG. 28b cell 2 2802
- links 2804 and 2805 connect the cell 1 2801 and cell 2 2802.
- FIG. 26 and FIG. 27 a multi -phase clock signal is assumed to be present, and links 2803 and 2806, and the data inputs associated with each cell would preferably all operate on 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 1 2801 passes data to cell 2 2802 may be instructive.
- the sequence of events is as follows: (1) on clock phase 1, the clock for cell 1 2801 was already at 0, and the data inputs are set for cell 1 2801. Either the upper or lower lock of cell 1 2801 locks, depending on which input was set to 1; (2) on clock phase 2, the clock signal for cell 1 2801 is set to 1.
- step 2 it is noted that the output lock of cell 2 2802 still has not moved. This allows these exemplary shift register cells to store previous data, whereas mechanisms such as some of the logic gates described herein have their state completely determined by the 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.
- MLL serial-in/serial-out design
- MLL can be used to make any other type of shift register desired, such as parallel-in/parallel-out, serial-in/parallel-out, and others.
- each member of a pair moves in the opposite direction, canceling changes in the center of mass and linear momentum. However, each pair could still create torque. So, the direction of movement 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 so such canceling groups can be used to transmit data while reducing energy coupled into the rest of the structure.
- FIG. 29 illustrates this concept using groups 2901 and 2902, each containing two members, 2903 and 2904, and 2905 and 2906, respectively.
- each member moves in the opposite direction from the other member (while each member is not connected to the others in the diagram, in an actual system movements would be synchronized, e.g., by clock signals).
- member 2903 has moved to the right, while member 2904 has moved to the left.
- the accelerations that take place during these movements will generate forces on the underlying support structure (the anchor block, not shown).
- members 2903 and 2904 accelerate in opposite directions, the linear components of their momentum will cancel. However, in this arrangement they will still generate a net torque on the anchor block.
- Adding 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 the torque of group 2901 allows complete cancellation.
- forces along any axis may be addressed similarly.
- forces which cause torque along the Z axis which is defined for this example as perpendicular to the figure plane, may also need to be cancelled.
- the complexity and increased mass of complete cancellation may outweigh the benefits, and the appropriate amount of cancellation (if any), and which force components to cancel, if any, will vary on a case by case basis.
- 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 computational 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 which create a plurality of clock signals. These signals could take the form of reciprocating motion transmitted through the mechanisms, such as via lines, or the use of rigid frames (which are actually just links of specialized shape, for example, a rigid frame could connect to a clock at a single location, and then branch out, potentially in multiple directions or dimensions) to connect to many gates or other mechanisms), supported by support links as necessary.
- 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.
- Clock signals could be generated in a variety of ways. For example, rotating masses, harmonic oscillators, or cams and cam followers could all 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 rotary joints, could be used to drive each clock signal back and forth and require no parts beyond links and rotary joints.
- a flywheel could be kept in constant motion by some sort of energy source or motor, which replenishes the energy lost to dissipative mechanisms in the system. A discussion of exactly how such an energy source or motor might be implemented is beyond the bounds of the invention.
- One alternate clocking 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 clocking frequency would be used, and that the clocking frequency would be provided by a very simple mechanism.
- components would preferably be designed to use sine-like clock signals (including signals with sine-like transitions between 0 and 1 with flat areas in between for timing purposes), and designed in such a way that they did not generate significantly higher frequency overtones during operation (as, for example, if one moving part collided with another moving part).
- a sum of simple oscillators could be used, the sum approximating the desired clock signal.
- a sufficient number of oscillators could, in principle, approximate the desired clock signal as accurately as desired, at the expense of additional parts.
- One way to implement a harmonic oscillator is with a spring (in which is included 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.
- 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 is subsequently described.
- 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 rotary joints at either end. The link thus forms an axle which can be used as a camshaft. The cam would be affixed to the camshaft (or the camshaft could actually be the cam, assuming it has the appropriate cross-sectional shape).
- a cam follower could be constructed, for example, using a wheel connected to two rotary joints, connected to a lever arm. Rotating the camshaft would rotate the cam.
- the cam follower wheel would ride up and down on the cam, causing the lever arm to go up and down 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 the types of motion the cam makes, such as designs where the cam simply rocks back and forth, or moves in a manner that is itself under programmatic control, as well as combinations of the foregoing and obvious variations.
- various cancelation methods could be used to minimize the high frequency signal component that is encoded on the cam's surface. This might 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 by some distance. Attaching each cam follower wheel to the cam follower would then effectively sum or average their outputs, canceling 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 canceling signals could be encoded in each track), resulting in arbitrary accuracy of the aggregate signal.
- Another method to reduce high frequency noise would be to rotate the crystal axis of the material from which the cam is made, and perform a corresponding rotation of the crystal structure of the wheel which is meshing with them.
- Yet another method of reducing the transmission of high frequency signals is to reduce the stiffness of the coupling of the cam and cam follower to the rest of the system. For example, reducing the spring constant of the cam follower arm, or reducing the stiffness of the bonds on which the cam follower is mounted, would help filter high frequency signals.
- the clock frequency is arbitrary, this frequency can be reduced until energy dissipation caused by coupling of the high frequency components of the clock signal to mechanical vibrational modes is under desired levels.
- the cam follower mechanism described can exert a relatively strong force when the cam is pushing on 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 need be, for example, by using two cam followers and two cams (with the encoded signals appropriately rotated with respect 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.
- Links are assumed to be made of diamond or similar material, and to be braced to increase their stiffness (e.g., a beam with triangular bracing, rather than just a straight beam).
- the positional difference between "0" and "1" is assumed to be ⁇ 2nm.
- Rotary joints are assumed to be like those shown in FIG. 1, and the system is assumed to be operating a room temperature. These assumptions allow the calculation of link and rotary joint stiffness. To determine the resonant frequency, mass must be determined.
- the mass of a typical mechanism can vary widely. Even using a given type of link, the mass will be quite different depending on whether the mechanism is a single 4 bar link, a lock, a balance, a logic gate, etc., and on the exact
- the moving mass of a link might be about 8 ⁇ 10 ⁇ 23 kg, while the moving mass of a mechanism made of several links might be on the order of 10 ⁇ 21 kg.
- the resonant frequency for an exemplary molecular-scale mechanism may be around 13 GHz.
- a square wave clock signal would lead to substantially higher than necessary energy dissipation. Therefore, it is assumed that the clock waveform is generated as a sinusoidal wave, convolved with a Gaussian to reduce undesirable high frequency components, or optimized using standard linear systems theory to minimize the generation of undesired resonances.
- the clock can be operated at a frequency well below the 13 GHz resonant frequency calculated.
- MLL has been shown to be able to create mechanisms including lines, logic gates, locks, balances, switch gates and shift registers, using only rotary joints and links. MLL provides for any combinatorial logic by using various combinations of logic gates which, either alone (e.g., NA D or Fredkin gates) or in aggregate, are universal. Sequential logic, and therefore memory, can be provided by flip-flops or cells, which can be combined into shift registers.
- an MLL-based computational system can be irreversible, reversible, or some combination thereof.
- the ability to create mechanical computing mechanisms, and complete computational systems, using only links and rotary joints can provide advantages which include reduced friction (and therefore power consumption and waste heat generation), device design and manufacture simplification, and device robustness (e.g., operation at more extreme temperatures than permitted by many other known computational systems, given that mechanical logic could function up to near the melting point of its constituent parts, whereas, electronic computing suffers from bandgap issues at extreme temperatures).
- FIG. 30 shows the MFL version of the MLL lock depicted in FIG. 7.
- Link ends 3001 and 3002 of links 3003 and 3004, respectively, are one place where input mechanisms could be connected.
- Anchored link ends 3007 and 3008 of links 3003 and 3004 act in a manner analogous to anchored rotary joints. Note that there are no actual rotary joints present in the MFL version of a lock. Rather, flexures, exemplified by the semicircular cutouts 3005 and 3006, provide bendable points between various parts of the structure.
- Link 3009 serves the same purpose as link 709 in the co-planar MLL lock of FIG. 7.
- the entire mechanism of FIG. 30 can be made (although it need not be) from a single piece of material, where the different links are monolithic, but logically separable because they are bounded by flexures.
- MCL Mechanical Cable Logic
- MCL primitives can be used to create, among other structures, balances and locks. While MCL implementations of balances and locks may look different than their MLL counterparts, viewed from a "black box" perspective, MCL balances and locks can be implemented so as to be logically equivalent to the respective mechanisms in MLL. Given this, MCL also provides for Turing-complete systems.
- MCL pulleys can be anchored or unanchored.
- MLL links are rigid and this aids in constraining the movement of unanchored rotary joints.
- cables are not rigid, so the proper geometric constraints need to be provided in a different manner.
- One way to do this would be to keep tension on the appropriate cables (e.g., clock cables) so that pulleys connected to such lines cannot move unless, in this example, the clock lines move, in which case pulley movement is constrained to the path the clock cables define.
- Another way of addressing this issue would be to mount pulleys on links where such constraint was necessary (although another primitive is then required, and since this blurs the distinction between MLL and MCL, such an embodiment is not addressed further).
- Yet another way is the use of channels, tracks, or other guiding means on the anchor block. By virtue of being affixed in a sliding manner to the guiding means, the motion of unanchored pulleys are appropriately constrained.
- FIG. 31 and FIG. 32 show a top view and side view, respectively, of a pulley which can slide in a channel.
- Anchor block 3101 contains channel 3104.
- Pulley 3102 is monolithic with, or connected to (in a fixed or rotary manner) axle 3103.
- Axle 3103 connects itself and pulley 3102 to channel 3104 in a slidable manner.
- Actuating cable 3105 is affixed to axle 3103 and enables the movement of the pulley in the channel (e.g., actuate using a clock line). Note that this is but one way of actuating and guiding pulley movement, and of affixing a pulley to a track, channel, or other guiding means.
- Another way of providing guiding means would be rails mounted on the anchor block, the pulley being affixed to the rails in any one of many known means, The point is not the exact mechanical implementation, but rather to provide some guiding means, preferably with low friction, in light of the flexibility of cables; any of many well-known guiding means could be used.
- Locks can be created in MCL using knobs that are integral with, or affixed to, cables or other structures. With the appropriate design, these knobs allow the reproduction of the features of an MLL lock. Specifically, with respect to a binary embodiment with two inputs, from the (0,0) unlocked state, there are two allowable movements, those being from the (0,0) unlocked state to one of the locked states, (0,1) or (1,0). From either of the locked states, the only allowable movement is back to the unlocked state. Note that there is no reason that knobs cannot be attached to virtually any structure, as convenient, and the construction of locks are not the only use of knobs.
- FIG. 33a-c One way to implement the desired logic is depicted in FIG. 33a-c.
- FIG. 33a a first cable 3301 is crossed by a second cable 3302.
- Two knobs 3303 and 3304, and 3305 and 3306, respectively, are affixed to each cable.
- FIG. 33a shows the lock in the (0,0) position, where either cable is free to move.
- FIG. 33b shows the lock in the (0,1) position, the second cable having moved, thus locking the first cable by virtue of the fact that one of the second cable's knobs 3305 is between the first cable's knobs 3303 and 3304, preventing their movement in either direction.
- FIG. 33c shows the lock in the (1,0) position, the first cable having moved, thus locking second cable.
- FIG. 34, FIG. 35, FIG. 36, and FIG. 37 depict an exemplary knob design which can also enforce the constraint that the only allowed movement in a lock from the (0, 1) or (1,0) state is to (0,0).
- This knob design is more complex, but requires only two knobs (one on each cable) instead of four, to create the desired lock logic.
- FIG. 34 shows a single knob 3401. Generally a cable would be attached to either end (not shown), but such knobs could be used in other scenarios as well, such as connected to MLL links.
- FIG. 35 shows how two such knobs 3501 and 3502, mesh with each other to form a lock.
- the lock is shown in the blank state (meaning, neither knob is positioned to block the movement of the other).
- FIG. 36 and FIG. 37 depict the same knobs 3501 and 3502 in the (0,1) and (1,0) state (or vice versa; since the mechanism is symmetric, the knob that is defined as the 0 knob and that which is defined as the 1 knob is arbitrary).
- FIG. 36 and FIG. 37 depict the same knobs 3501 and 3502 in the (0,1) and (1,0) state (or vice versa; since the mechanism is symmetric, the knob that is defined as the 0 knob and that which is defined as the 1 knob is arbitrary).
- one way to implement an oval uses a closed loop of cable 3801 (referred to as the "logic cable” to distinguish it from cables serving as inputs/outputs, including those providing clock signals, although this distinction is for clarity of description only, since logic cables can also provide input/output, as in the case of crossed ovals which can be used to form cells and shift registers), which may include one or more structures such as knob 3802, and which goes around one or more pulleys such as pulley 3803 (two pulleys are depicted but other numbers could be used to change the shape, length, vibrational and entropic characteristics, or other characteristics of the oval, which despite the name, need not be oval in shape).
- the logic cable may include one or more structures such as knob 3802, and which goes around one or more pulleys such as pulley 3803 (two pulleys are depicted but other numbers could be used to change the shape, length, vibrational and entropic characteristics, or other characteristics of the oval, which despite the name, need not be oval in shape).
- guiding means such as track 3804 may be included.
- Unanchored pulleys may be actuated (moved along their guiding means) by cable 3805, which may be, e.g., tied to a clock signal.
- One or more cable housings such as that exemplified by housing 3806 may be included to reduce energy loss, as described elsewhere herein. Knobs facilitate interaction with other structures and may be connected to one or more input/output cables 3807 and 3808.
- an oval By itself and in its simplest form, an oval merely takes an input and may (but does not have to), pass it on as an output. For example, if cable 3807 moves and the pulleys are anchored, the opposite side of the logic cable must also move, causing the movement of cable 3808. Thus, the oval may relay data, but no substantial computation is taking place. However, ovals can be designed to carry out computations by interacting with other structures (including, e.g., other ovals, or cables). When coupled with locks, this is one way to construct a balance via MCL.
- FIG. 39 depicts a balance as part of an oval. Balances and ovals can also serve as part of a shift register.
- the balance includes pulley 3902 and the left part of logic cable 3901.
- FIG. 39 depicts an oval with unanchored pulleys and two crossed cables which provide data input, the two crossed cables coming from, e.g., data cables, or another oval. Optional structures such as cable housings are omitted for clarity, and as usual, an anchor block is assumed to be present, but not depicted.
- Logic cable 3901 goes around pulley 3902 (and its mate, unlabeled). Both pulleys are mounted on tracks, exemplified by 3903.
- Clock line 3904 actuates the mechanism by pulling on the pulleys, which will cause them to slide in their tracks.
- the logic cable has two pairs of knobs 3905 and 3906, and 3907 and 3908. Cables 0 3909 and cable 1 3910 provide input to the oval. Each crossed cable has a pair of knobs 3911 and 3912, and 3913 and 3914, respectively. By crossing the oval (at right angles in this diagram, but other angles and designs can be used), cables 0 and 1 can position their knobs to interact with the knobs of the oval.
- Triangular knobs 3915 and 3916 (shown as triangular only to visually distinguish them from the other knobs; this shape is not significant) are connected to the 1 output line 3917, and the 0 output line 3918, respectively. This configuration is just exemplary. The output lines could just as easily be, e.g., positioned differently, or connected to the appropriate lock knobs rather than using separate knobs.
- FIG. 39, FIG. 40, and FIG. 41 differ only in the position of the input cable knobs.
- both locks are in the blank position; meaning that the input cable knobs and the logic cable knobs would not interact if the mechanism were actuated.
- cable 3909 has moved knobs 3911 and 3912 so that knob 3911 is now between two of the knobs on the logic cable, 3905 and 3906. This can be considered an input of 0, since the zero input line has moved. If the mechanism were actuated in this state, the upper side of the oval would be prohibited from moving, as knobs 3905, 3906, 3911 and 3912 form a lock which is then locked.
- FIG. 42 shows the position of the mechanism assuming that an input of
- One advantage to some MCL embodiments is reduced moving mass as compared to some embodiments of MLL or MFL. Because cables are not required to be rigid, they can have a smaller cross section and correspondingly lower mass than MLL links of equivalent length.
- a conventional example of this principle is to compare the mass of a cable with the mass of a beam-like structure. In general, a structure which only has to withstand tensile forces can be made less massive than a structure which must also withstand, e.g., compressive or bending forces.
- strong but flexible structures which might be used as cable include carbyne (linear acetylenic carbon), polyacenes, polyethylene, and polyiceanes, although many other structures could be used.
- a potential disadvantage to the use of cables is that the flexibility can allow vibrational modes that would not exist in a stiffer structure. Further, these vibrational modes may change as the length of a given section of cable changes. For example, if the distance between two pulleys changes, changing the length of the cable segment between them, the allowed vibrational modes may change, just like fretting a guitar string at different positions. This also results in entropic changes to the system. Either of these effects can lead to energy dissipation.
- this sheath is relatively rigid, and the internal space of the sheath appropriately sized as compared to the cable, essentially no vibration will be permitted within the sheath.
- a molecular example of this would be a polyyne cable in a (9,0) SWNT (single-walled nanotube), but obviously many structures could be used, preferably those which are rigid, closely fit the cable and the sheath, and which allow the cable to slide freely in the sheath (but not to vibrate substantially).
- a cable system could be implemented with fluids inside housings.
- a solid plug at one end of the housing would push on the fluid, which in turn pushes on another plug at the opposite end of the housing.
- this can effectively provide a "cable” (though made of a fluid, which includes a gas) which can be pushed or pulled on by actuating the appropriate end.
- Such designs could also be used to implement balances and locks, moving the parts hydraulically rather than via a solid link or cable. While a hydraulic system would not traditionally be called a cable, it is considered to be a cable system herein as the logical and mechanical functioning is almost identical to that of a solid cable.
- Turing-complete systems for mechanical computing can be categorized as Type 1. Due to possible energy savings, all other things being equal, Type 2-4 systems would be preferred over Type 1 systems, with Type 4 systems being most preferred. MIX, 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 adding, e.g., springs to some mechanisms (such as between the gradual lock depicted in FIG.
- Type 3-4 systems as flexures may seem to store potential energy by their very nature. Indeed, some flexure-based designs, if using the flexures to store potential energy and then release it to some effect on the system, would be categorized as Type 1 or Type 2.
- flexures need not be used for potential energy storage. Rather, their function can be solely to provide kinematic restraint, just as the analogous structure in MIX, the rotary joint, does. As such, the force needed to bend a flexure can be arbitrarily small as long as the flexure still provides the necessary rigidity with respect to the relevant degrees of freedom. This leads to the conclusion that the potential energy storage of flexures can be trivial, just like the potential energy stored in the stretching of MCL cables, or the stretching, bending, or compression of MLL links.
- Types 1-4 Type 1 systems have the lowest ultimate potential for energy efficiency, and are the only type of computational system previously enabled. MLL, MFL, and MCL share physical and logical parallels, in some sense being three embodiments of the same concepts. Each is capable not only of Turing-complete computing, but also of providing Type 2, Type 3, and Type 4 systems (alone, or in combination with each other), allowing for decreased energy dissipation. Each also has a very low number of types of required primitives, with MLL and MFL only requiring two basic parts, and MCL requiring three, reducing the complexity of system design, manufacture, and assembly.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Transmission Devices (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Mechanical Control Devices (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Feedback Control In General (AREA)
Abstract
Description
Claims
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018554310A JP7079205B2 (en) | 2015-12-31 | 2015-12-31 | Mechanical computing system |
ES15912213T ES2963835T3 (en) | 2015-12-31 | 2015-12-31 | Mechanical computing systems |
PCT/US2015/068359 WO2017116482A1 (en) | 2015-12-31 | 2015-12-31 | Mechanical computing systems |
CA3113363A CA3113363C (en) | 2015-12-31 | 2015-12-31 | Mechanical computing systems |
EP15912213.4A EP3398024B1 (en) | 2015-12-31 | 2015-12-31 | Mechanical computing systems |
CA3007614A CA3007614C (en) | 2015-12-31 | 2015-12-31 | Mechanical computing systems |
JP2022063063A JP7289386B2 (en) | 2015-12-31 | 2022-04-05 | mechanical computing system |
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 |
---|---|
WO2017116482A1 true WO2017116482A1 (en) | 2017-07-06 |
Family
ID=59225452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2015/068359 WO2017116482A1 (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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112865757A (en) * | 2021-01-15 | 2021-05-28 | 宁波大学 | Logic function configurable reversible single edge trigger |
WO2022066680A3 (en) * | 2020-09-25 | 2022-06-02 | Cbn Nano Technologies Inc. | Efficient and manufacturable mechanical computing |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10683924B1 (en) * | 2019-07-12 | 2020-06-16 | Cbn Nano Technologies Inc. | Buffered cam assembly |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6987402B2 (en) * | 2003-03-31 | 2006-01-17 | National Institute Of Information And Communication Technology Incorporated Administrative Agency | Reversible logic elements operating in a synchronous mode |
US7414437B1 (en) | 2007-05-16 | 2008-08-19 | Wisconsin Alumni Research Foundation | Nanomechanical computer |
US20110278365A1 (en) | 2010-05-13 | 2011-11-17 | Robert Swartz | Methods and Apparatus for Manufacturing a Computer Without Assembly |
US8365137B2 (en) * | 2006-08-29 | 2013-01-29 | Wave Semiconductor, Inc. | Systems and methods using an invocation model of process expression |
US9150405B2 (en) | 2008-02-14 | 2015-10-06 | The Charles Stark Draper Laboratory, Inc. | Rotary nanotube bearing structure and methods for manufacturing and using the same |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4887896A (en) * | 1972-02-19 | 1973-11-17 |
-
2015
- 2015-12-31 WO PCT/US2015/068359 patent/WO2017116482A1/en active Application Filing
- 2015-12-31 ES ES15912213T patent/ES2963835T3/en active Active
- 2015-12-31 CA CA3113363A patent/CA3113363C/en active Active
- 2015-12-31 CA CA3007614A patent/CA3007614C/en active Active
- 2015-12-31 EP EP15912213.4A patent/EP3398024B1/en active Active
- 2015-12-31 JP JP2018554310A patent/JP7079205B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6987402B2 (en) * | 2003-03-31 | 2006-01-17 | National Institute Of Information And Communication Technology Incorporated Administrative Agency | Reversible logic elements operating in a synchronous 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 |
US9150405B2 (en) | 2008-02-14 | 2015-10-06 | The Charles Stark Draper Laboratory, Inc. | Rotary nanotube bearing structure and methods for manufacturing and using the same |
US20110278365A1 (en) | 2010-05-13 | 2011-11-17 | Robert Swartz | Methods and Apparatus for Manufacturing a Computer Without Assembly |
Non-Patent Citations (19)
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022066680A3 (en) * | 2020-09-25 | 2022-06-02 | Cbn Nano Technologies Inc. | Efficient and manufacturable mechanical computing |
JP7367266B1 (en) | 2020-09-25 | 2023-10-23 | シービーエヌ ナノ テクノロジーズ インク. | Efficient and productive mechanical computing |
US11809165B2 (en) | 2020-09-25 | 2023-11-07 | Cbn Nano Technologies Inc. | Efficient and manufacturable mechanical computing |
CN112865757A (en) * | 2021-01-15 | 2021-05-28 | 宁波大学 | Logic function configurable reversible single edge trigger |
CN112865757B (en) * | 2021-01-15 | 2022-03-29 | 宁波大学 | Logic function configurable reversible single edge trigger |
Also Published As
Publication number | Publication date |
---|---|
JP7079205B2 (en) | 2022-06-01 |
EP3398024A1 (en) | 2018-11-07 |
CA3113363C (en) | 2023-07-18 |
EP3398024A4 (en) | 2019-09-25 |
JP2019506693A (en) | 2019-03-07 |
CA3113363A1 (en) | 2017-07-06 |
EP3398024B1 (en) | 2023-09-06 |
CA3007614C (en) | 2021-05-18 |
CA3007614A1 (en) | 2017-07-06 |
ES2963835T3 (en) | 2024-04-02 |
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 | |
CA3113363C (en) | Mechanical computing systems | |
Frank | Introduction to reversible computing: motivation, progress, and challenges | |
Kotay et al. | Algorithms for self-reconfiguring molecule motion planning | |
Copsey et al. | Toward a scalable, silicon-based quantum computing architecture | |
Afrooz et al. | Fault-tolerant design of a shift register at the nanoscale based on quantum-dot cellular automata | |
JP7289386B2 (en) | mechanical computing system | |
Shen et al. | Computational nano-mechanics and multi-scale simulation | |
Seet et al. | Simulation of reversible molecular mechanical logic gates and circuits | |
Angeles | The degree of freedom of parallel robots: a group-theoretic approach | |
Gong et al. | Controlled quantum-state transfer in a spin chain | |
US11720084B2 (en) | Efficient and manufacturable mechanical computing | |
Cavin et al. | A long-term view of research targets in nanoelectronics | |
Moore et al. | Mechanical Computing Systems Using Only Links and Rotary Joints | |
MacKinnon | Quantum gears: a simple mechanical system in the quantum regime | |
Masuda | An electromechanical model of myosin molecular motors | |
Frank | Nanocomputer systems engineering | |
WO2022250768A1 (en) | System and method for micromechanical logical and gate | |
Nevidomskyy et al. | Realizing fracton order from long-range quantum entanglement in programmable Rydberg atom arrays | |
Reif | Mechanical Computation: its Computational Complexity and Technologies Chapter, Encyclopedia of Complexity and Systems Science | |
Dahunsi et al. | Kinematic Analysis and Design of a Geneva Stop Mechanism Teaching Aid for Intermittent Motion | |
Pennestri et al. | Efficiency and wear in cam actuated robotized gearbox using virtual model | |
Meyers | John H. Reif 2 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15912213 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 3007614 Country of ref document: CA |
|
ENP | Entry into the national phase |
Ref document number: 2018554310 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2015912213 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2015912213 Country of ref document: EP Effective date: 20180731 |