I think one of the best ways to picture the essence of a computer is to have one in your hand without any electronics.
As some background, on my desk I have this little beauty:
It can store numbers and do long division and multiplication - turn the handles, push the buttons, ding! But despite being an essential tool of business for a century, it's only a calculator, not a computer. I picked it up in a flea market in Helsinki :-)
My hand-operated calculator:
- would not meet most legal definitions for being a computer. It can't store a list of instructions, and its programming (long division implemented in cogs and levers is still a program!) cannot be changed.
- would, when in use, meet the legal definition for processing personal data under the GDPR. I could use it to add up your expense records for the month, and the amount of the last expense and the total of all expenses would remain stored and readable in the machine when I finished. (I seriously doubt this calculator would be used to cause GDPR breaches! But it is important to understand the principle of these definitions.)
The Babbage Analytical Engine was a full mechanical computer designed in 1837. The design has been demonstrated many times since to be workable, and there were even programs written for it by Ada Lovelace. She was the first to realise the Difference Engine was much more than a calculator.
The 1937 Z1 computer, built in a small home in Berlin, was a fully functional mechanical computer, using electrical motors to turn and move the components:
The Zuse Z1 computer |
In a talk I do about "What is a Computer?" I usually play this clip from the US Navy showing their mechanical fire control computers. This is (a) fascinating and (b) a reminder that typically computing advances are first used to do a better job of killing people.
... and all that explains why I wrote in the January 2007 issue of the British Institute of Horologers! I got several replies from horologers (real actual clockmakers!) but didn't achieve my goal. I have made some progress though. What I really want to see exist is an actual working clockwork computer that performs useful tasks we can recognise from today's world of computing. It's clearly feasible.
And here's my letter:
A
Design Challenge for Horologists
January 22, 2007
Dan Shearer
Until this month I hadn't even heard of
horology. I'm a computer scientist, occupied with what people do with
electronic technology and software, and what they do to people. Over
the years I'd seen clocks in museums piece, marvelled at the old
navigators, and once I read an article on apprentice horlogers in
Geneva. But after meeting some lawyers recently I realised I had to
learn about watchmaking.
Here is the challenge:
I need to design a
fully clockwork computer. The computer must be a work of horology,
not merely mechanical engineering. It must function recognisably like
a familiar electronic computer, accepting commands from a keyboard to
run programs and display results on a screen.
This article explains my motivations.
As I did the research, I realised that with probably just two
advances in horology such a design could become reality. I wrote a
second article discussing in more detail the practical implementation
issues involved.
A
Computer? Why?
Like everyone else, I'm affected by
laws involving computers. Laws tell me what I'm allowed to do with a
computer, and if I become a victim of computer crime I need help from
the law. But the more lawyers I met
the more I realised I won't get the help I need if the
people in the legal system can't even recognise a computer when they
see one. More broadly, we live
in an age where computers surround us, often invisibly – and
computers process data, data that can clear me or convict me, save my
life or endanger it. It is a trifle worrying that the individuals who
can care for me or accuse me, educate, defend or prosecute me are
likely to overlook computer data involved since they're thinking “oh,
a kind of beige box with a keyboard and screen”. How are they to
realise that the laws governing the computers in their life affect
them hundreds of times a day?
So I
started looking for an unforgettable illustration. Something to show
a computer is a thing that does computing. It doesn't even
need electronics, let alone a beige box.
That's what lead me to clockwork. There is something homely and
understandable about machinery that goes 'tick-tock', in contrast to
the seeming magic of electronics. I want people to think about the
notion of computing
rather than a computer.
My new UK passport contains a computer
too, programmed (as shown by The Guardian) to give all its
information to anyone that asks, without a password. If the chiefs of
the Home Office understood that the new passport was as much a
computer as their own laptops, might they have given their computer
experts better instructions?
Horological
View of a Computer
A computer is any device which can:
-
obey instructions (e.g. add 48 every 1 time the instruction occurs)
-
store a list of instructions (e.g. add 48 this time, then 36 next time, etc.)
-
receive and remember information (e.g. when someone turns a winder)
-
decide which instructions to do next, and when to accept information
Except perhaps the last point, the list
(and the numbers) should be familiar to horologists. It describes a
stored program computer,
something computer science calls a Von Neumann
Architecture. We'll look at components of a Von Neumann-type
machine, and how they might be viewed in terms of mechanical
devices. One of the most striking things is that horology already
comes close to a lot of the functionality/
Input – A device that receives
information, maybe from a human. Examples:
Someone typing on a keyboard from a manual typewriter. The
information might be in response to a question (“How old are
you?”).
Output – Makes information
available directly to humans by displaying it somehow. Most like a
traditional computer would be interactive screen output via a
split-flap board, like most railway stations used to have (remember
the flick-whirr when it was updated?) Typewriter output on paper
would be another option.
Memory – For storing
information so it can be accessed later. The basic unit of
information in computing is usually an “on” or an “off”. So
if you want to store the word “Clock” it gets translated into a
series of ones and zeros, which are then stored by on/off switches.
Horologists know all about programmable switches, which mean “if
the switch is set then take one action, if it is not set do something
else”. The extra twist is to have a way of detecting whether the
switch is “on” or “off”. The ability to detect switch setting
is called “reading memory”. Once you can do that it is a matter
of having a lot of these readable switches to give the computer a
reasonable amount of memory. With these two issues solved, the ones
and zeros corresponding to the word “Clock” can be written to
memory by setting and unsetting a series of switches, and later read
back.
Arithmetic and Logic Unit –
For doing operations with numbers. Older readers will remember
mechanical adding (or calculating) machines that were manufactured in
quantity up until the late 1970s, a centuries-old idea. Besides
adding, multiplying etc. there's one or two other operations but none
of these should be technically difficult to design from a horological
point of view.
Control Unit
– Executes lists of instructions, or programs. Probably the only
component that doesn't have anything in common with horology (as far
as I know so far!), this unit directs the flow of events. For example
looking up a number in memory and telling the Arithmetic and Logic
Unit to add 48 to that number, then store the result somewhere else
in Memory, or maybe Output it. The Control Unit is the real brains of
the show, and is in charge of executing programs.
The
Missing Magic
Having these components of a notional
computer are all very well in theory, but they aren't quite enough
for a useful computer. Computer science has come up with some ways of
tying them together, one of which is straight out of horology.
Bus – An information channel
between the foregoing components. Implementing this in clockwork will
require some ingenuity. In a silicon computer the Bus is like a
copper wire linking the memory, control unit and so on, allowing
electricity to travel between them. With horology we need to get
information (such as the word “Escapement”) from the Memory to
the Output, or from the Control Unit to the Arithmetic and Logic
Unit. An example (but I don't necessarily suggest feasible!) way
might be to have an oscillating central bar containing whiskers that
can be pushed in and out to indicate different values, where the
whiskers are adjusted by levers immediately next to the levers used
to read the values and each oscillation moves the location of the
whiskers from the setting levers to the reading levers. I'm not
covering implementation challenges in this article, but its worth
reflecting that Bus speed is a vital issue for how practical this
computer will be.
Clock Signal
– a single master beat that is used to synchronise all other
activity in a computer. If we're fetching information from Memory
using the Bus or a performing a calculation the Clock Signal is the
only way of making sure we're not tripping over ourselves by using
the wrong number, or the right number twice etc. Increasing the speed
of the clock signal – assuming all the other components can keep up
– is one way of speeding the entire computer up.
Storage
– Like Memory, but lasts longer and is usually bigger. A mechanical
equivalent of a filing system. You put information in and can get it
back out when you want it. A storage system can be punched cards, or
pianola-like punched paper rolls, or small plastic cards with very
fine ridges and dips after the style of a music box's data. There
have been storage systems in use since early days of the industrial
revolution, and I'll be surprised if there isn't at least one
horological tradition of using them somehow!
The
Other Reasons Why
A clockwork
computer may actually be useful for reasons other than educating Her
Honour.
Physical
Longevity. We have a good idea what happens to clockwork after a
few hundred years, but there are real question marks surrounding all
forms of silicon computers. Nobody really knows what happens to
transistors as the centuries roll by, and if you need a computer for
a simple task such controlling the doors in an long-term nuclear
waste storage facility perhaps a clockwork might be better. Watch
making techniques and materials can produce such tiny and reliable
systems that they may be worth considering for these tasks.
Physical Robustness.
There are a few physical environments where intense radiation makes
electronic computing inherently unreliable. For very simple tasks,
might clockwork computing be useful?
Micromechanics.
A lot of research is being put into machines made of components that
are truly tiny. Scientists are creating gear wheels that are a
comfortable size for an ant to pick up, and have been experimenting
with tiny geartrains, levers and so on since the 1980s. This is a
very practical field of research and there are results in production
now. One of the interesting things about micromachines is that they
can often be mass produced using photolithographic techniques. A
practical design for a clockwork computer might be able to be applied
at this scale of engineering. I am cautious because friction is more
important in microengineering rather than less, but perhaps some of
the other physical effects may compensate such as inertia with high
oscillation rates.
Conceptual
Longevity. A generation of silicon-based computing equipment
lasts maybe two years before becoming obsolete. When communicating
with far-distant generations, maybe it might be wisest to provide the
design for a conceptual clockwork computer and then the programs that
can run on that, rather than anything electronic. Nobody has ever
built a Babbage Analytical Engine (see the next article for more
about Charles Babbage and his mechanical computer from two centuries
ago) but there is a computer simulation of capable of running
programs written by Babbage and his students. A communication
consisting of a series of computer programs accompanied by schematics
of a physical computer that will certainly run these programs is an
extremely clear communication. Any technically sophisticated person
would merely implement an emulation of the computer rather than the
actual clockwork, but they will have no difficulty understanding the
design because it is simple mechanical principles.
Conclusion
Why horology? I
could have approached robotocists, who spend their lives at the
mechanical end of computing. But I think a robotocist has rather too
much silicon thinking already, and besides they like to use
hydraulics and other very clunky techniques. I can imagine a competer
without electronics that is as incomprehensible in its design as any
silicon computer! Using techniques of robotics seems as far from
horology as Babbage's mechanical engineers. I want that 'tick-tock'.
I'm also intrigued
by my reading so far that very little seems to have changed in
horological principles in the last 120 years or so. Techniques have
improved, and tolerances, and modern materials and tools are a help.
But there hasn't really been a need for there to be a fundamental
advance in horology. The history of technology shows that where there
is a clear need, sooner or latter innovation meets that need. Might a
clockwork computer be a way of advancing horology fundamentals for
the first time in more than a century?
In the next
article I'll consider some of the design issues. I'm looking for
horological expertise to help draw up a basic design. In fact, I'm
even looking for someone who knows how to make a design for a watch,
because I certainly don't! If you are interested, do please contact
me, dan@shearer.org.