From Arithmometer to Microprocessors
Understanding modern technology by learning about old technology
Modern microprocessors combine transistors to build logical gates which are then composed to create binary adders, subtracters, and shifters which can further be used to carry out multiplication and division. However, computations can be done in numerous other ways besides having electric current run through transistors made from semiconductors.
For instance, my oldest son builds a marble track binary adder, counter and multiplier from a kit called the Turing Tumbler. No electricity or silicon involved.
All the way up to the 1980s, the Soviet Union used water based analog computers called water integrators which could be used to solve differential equations. These computers were used in geology, mine construction, metallurgy, rocket production and other fields.
Up to around the 1960s, there was computational hardware and simply computer systems build around the use of pressurized air rather than electric current. These systems were referred to as fluidics. But in today's story, I will focus on an older system of performing arithmetic using gears. French mathematician Blaise Pascal was among the first to explore this idea when he designed the Pascaline. The Pascaline was a mechanical calculator capable of addition and subtraction. German scientist Gottfried Wilhelm Leibniz made an improved version called the Stepped Reckoner, but it was French inventor Charles Xavier Thomas de Colmar who made the breakthrough mechanical calculator, called the Arithmometer. It gained popularity all across Europe thanks to mass production. One of the most widely used variants is the Odhner Arithmometer (see story picture).
The zenith of mechanical calculator technology is undoubtedly the Curta handheld mechanical calculator, small enough to fit in the palm of your hand. Its designer Curt Herzstark had to come up with many innovative concepts to shrink the Arithmometer to such as compact and small design.
In this story we will explore how these calculators managed to perform arithmetic operations using what looks like complex clockwork of gears and shafts.
Representing numbers with Gears
The basic idea is that a gear with ten cogs can be used to represent every one of the ten digits 0-9 in the decimal number system. You decide on where you would like to read of the value of the gear. The illustration below shows two different approaches. In the two first cases we use an indicator or marker to point to the currently selected digit. In the last example we show the current digit through an opening in a cover.
By removing teeth (cogs) from the gears, we can create special gears for setting number values. Notice how both the Curta and the Odhner Arithmometer have a handle you can crank. We want some sort of calculation to happen each time we make a full rotation. If you look at the green gears below, you can see how they can be used to set the orange wheel to the number 3. A full rotation of the green gear would cause the orange gear to be set to the value 3.
In fact, the green gear works as an adder. Every time you do a full rotation, the number 3 is added to the orange gear. Thus, if you want to multiply 3 by 3, you can rotate the green gear 3 times and the orange wheel would show 9.
Being only able to add 3 on each rotation is of course very limiting. However, we can create special gears to add 1, 2, 3 and all the way up to 9. Every colored gear is an adder for a different number. We can assemble a stack of these adders. You can select which number to add to the orange accumulator wheel by sliding the stack of adders up and down an axel. Only the adder at the same elevation as the orange wheel would connect with it and cause it to rotate.
Gottfried Wilhelm Leibniz made a practical implementation of this concept called the Leibniz wheel or stepped drum. Notice how it resembles stack of gears with different number of teeth. Individual teeth only extend partway down the drum. That way, we can select a desired "adder" by simply sliding what is called the counting wheel up or down. When the counting wheel is at the top, a full rotation of the stepped drum will cause 9 to be added to the counting wheel.
Of course, we want to be able to work with numbers larger than nine. To achieve that, we need a mechanism to handle carry. Once a wheel has rotated more than nine cogs, it needs to increment the wheel representing the more significant digit. In principle, that is quite easy. All you require is a 1-adder attached to the top of each gear, which adds a one each time you do a full rotation. As demonstrated by the illustration below, we throw in a pink gear to make sure the direction of rotation gets right.
It can be confusing to read my illustration because it is all in 2D and gears are stacked on top of each other. You will have to imagine that the rightmost orange gear is not connected directly to the pink carry gear to the left of it. Instead, the yellow 1-adder on top of the orange gear is at the same level as the pink gear. That means that once you make a full rotation of an orange gear, the single-tooth yellow gear on top will move the small pink carry gear one notch. The net effect is that the orange gear to the left is increased by one.
An actual implementation of this system will be significantly more complex, as we need to synchronize and order everything properly. The rightmost gear has to complete addition and potentially do a carry before we add to the gear to the left of it. Once the next gear has completed addition and carry, we can start adding to the next orange gear. If you tried to perform all these operations in parallel, then chaos would ensue because a carry might be attempted while the input is added to an orange accumulator gear.
If you look at a video explaining an Odhner Arithmometer, you will see how different actions are done in stages. Normal addition is done first and then carry is performed is a separate phase. Carry is staggered so that carry for less significant digits get carried out before the carry for more significant digits.
Performing Shift Operations
Keep reading with a 7-day free trial
Subscribe to Erik Explores to keep reading this post and get 7 days of free access to the full post archives.