So let’s talk about rod logic. You can read all about Eric Drexler’s nanomechanical version in chapter 11 of his 1991 doctoral thesis, Molecular Machinery and Manufacturing with Applications to Computation [PDF]. What I’ll show here is my own interpretation of his ideas, stripped of their nanomechanical aspect.

Here is a schematic of an identity gate.

Identity gateIdentity gate profile

On the left we see two rods, a green input rod and a blue output rod, with each rod having a nub attached. In the profile on the right, we see that the nubs attached to the rods can slide into each other. Each rod is in one of two states, 0 or 1, not pushed in or pushed in.

If we keep the green input rod at the 0 position and attempt to push the blue output rod, the nubs prevent the output from moving, and so the output is 0. If we move the input rod to the 1 position, then the output rod will move to the 1 position when pushed. That’s the identity gate.

By changing the position of the nub on the input rod, we can create a NOT gate:

NOT gate

NOT gate

This time, pushing the input rod will prevent the output rod from being pushed, so the output is the inverse of the input.

Note that with these gates, after the output is registered, all the rods need to be reset back to the zero position, and they generally have to be reset in the reverse order that they were pushed in. This is a characteristic of reversible logic.

By adding a second input rod and another nub on the output rod, we can create an AND gate:

AND gate

AND gate

Here, only if the two input rods are pushed to 1 will the output rod be able to be pushed. Note that the interaction of each individual input rod with the output rod is an identity function (A=X, A=Y), and because of the two nubs on the output rod, the functions represented by the input rods are logical-anded together (A=XY). And, as with the NOT gate, if we move the nubs on the input rods, we can create an AND of two inverse functions (A=not(X) not(Y)), more commonly known as the NOR gate (A=not(X+Y)):

NOR gate

NOR gate

By adding any number of input rods and setting their nubs at appropriate positions, we can create any AND function. Here’s one representing the function A=not(X) not(Y) Z:

001 gate

001 gate

Functions of AND are the only functions that can be built with a single output rod, or indeed a single output layer. We could imagine a way of pushing an output rod if either input rod is pushed, which is the OR function:

OR gate (first idea)

OR gate (first idea)

I don’t like this geometry. If I push one of the rods, then the corresponding output rod is the one which will move the T-shaped block at the end. If I have a 16-input OR gate, then sometimes I might push only the first rod, and not the other fifteen. This means firstly that one rod would have to push a very large T-shape, and secondly that the friction of the T-shape against its guide walls which prevent it from rotating instead of moving forwards would be very high — torque is force times length, and the width of the T is the length in that equation resulting in high friction.

My alternative requires two levels of rods, and thus an additional delay, but there is no friction problem:

OR gate

OR gate

The green input rods together with the blue intermediate rod together form the familiar NOR gate. The red output rod is then pushed to form the inverse of the NOR result, which is the OR function: A = not(not(X) not(Y)) = not(not(X+Y)) = X+Y.

In this same way, we can form a NAND gate, which is simply the NOT of the AND gate:

NAND gate

NAND gate

And finally, to complete the set, let’s have a look at the implementation of an XOR gate:

XOR gate

XOR gate

We can see that the red output rod and the blue intermediate rods form the familiar NOR gate, and the top blue rod forms another NOR gate, with the bottom blue rod forming an AND gate. A little mental manipulation shows that the output rod can only be pushed to the 1 position if and only if one and only one of the green rods is pushed to the 1 position. A 00 input allows the top blue rod to move, which inhibits the output rod from moving, while a 11 input allows the bottom blue rod to move, which also inhibits the output rod from moving.

These are all the basic rod logic gates we should need.

Tags: ,

4 Comments on Intro to Rod Logic

  1. Daniel Reetz says:

    I dig your improved OR gate.

    Looking at your graphics, I just can’t help but imagine how awesome the videos of this machine working are going to be. It also makes me think that one might be able to “hear” the different types of logic operations as signature sounds. You could even tune the rod lengths to resonate at different frequencies when they bump together, creating music as a byproduct of the operation of the machine.

    Also, writing this makes me wonder about the relationship between this and crossbar switching. When I was in Russia, many of the phone switches there were mechanical, and you could hear it when you dialed.

  2. Robert B says:

    I always thought a physical implementation would sound like “click clack click click click clack clack clack clack…” Kind of like the mechanical crossbars, kind of like the big alphanumeric flippy displays at railroad stations and airports.

    Not for nothing that William Gibson called Victorian Babbage programmers “clackers” (The Difference Engine).

    I think musical rods may be a bit beyond me :)

  3. On Sound and Logic Analysis:
    Back in the s-100 Days it was common to leave a transistor radio on next to the computer. You could clearly hear the program running in the noise on the radio, which was useful to indicate a runaway or hung instruction.
    More recently, Complex programs have been debugged using Audio Logic Analysis – triggers,”breakpoints” that produce a specific sound to indicate a milestone. This method is extremely useful for code with hard to analyze flow through many logic trees, and unlike a breakpoint can be used to guage complex progressions thru looping code in real time. In fact, you could make the progress thru code play a tune…. the human ear can easily hear one”bad” note…. making an error easily detectable.
    In any case i would be extremely interested to hear this machine in action! – And i kind of miss the Computer’s transistor radio noises … really!!

    drd

  4. Robert B says:

    If this wacky contraption ever manages to get built, I’ll be sure to record the sound and put it online!

Leave a Reply

*