The Pattern on the Stone by Daniel Hillis
A one-paragraph explanation of how a computer works from Danny Hillis’s The Pattern on the Stone (which you should read if you’re interested in how computers work but don’t really know):
“The work performed by the computer is specified by a program, which is written in a programming language. This language is converted to sequences of machine-language instructions by interpreters or compilers, via a predefined set of subroutines called the operating system. The instructions, which are stored in the memory of the computer, define the operations to be performed on data, which are also stored in the computer’s memory. A finite-state machine fetches and executes these instructions. The instructions as well as the data are represented by patterns of bits. Both the finite-state machine and the memory are built of storage registers and Boolean logic blocks, and the latter are based on simple logical functions, such as And, Or, and Invert. These logical functions are implemented by switches, which are set up either in series or in parallel, and these switches control a physical substance, such as water or electricity, which is used to send one of two possible signals from one switch to another: 1 or 0. This is the hierarchy of abstraction that makes computers work.”
Reading Hillis’s explanation reminds me of Ray and Charles Eames’s classic Powers of Ten film. In the same way that the computer is able to function by abstracting levels of functionality, expanding or limiting our view of the universe helps us understand it better, dealing with it at different scales rather than all at once (you don’t get very far in describing the our solar system in terms of individual subatomic particles).
Reader comments
Steven GarrityJul 18, 2002 at 7:00PM
Fascinating. Perhaps we need a new saying like standing on the shoulders of giants to reflect how we're building on the work of engineers.
nickJul 18, 2002 at 9:48PM
There's a good discussion in Gerard Edelman's Bright Air, Brilliant Fire, on how humans work on similar levels of abstraction, starting with the subatomic, going right up to consciousness and abstract thought. It's equally fascinating, and provides a nice counter to the claims of brain scientists to 'explain' consciousness simply in terms of brain chemistry: in essence, it's rather like trying to explain what this post means from the electrical signals which underlie its presence on my computer, the web server, the computers of those who read it.
Michael BuffingtonJul 19, 2002 at 8:35AM
I think that The Pattern on the Stone description of computers only works for those of genius level intelligence.
If I dared to use the phrase "hierarchy of abstraction" or "finite-state machine" with someone who didn't know a darn thing about computers, I think they'd possibly punch my ear, or kick me in the nards.
I prefer this simple explanation: Computers work on fate, some more than others. It's fate that they open your files, and fate that they sometimes eat your files for breakfast. Plugging your computer into a electrical socket simply fuels the fate engine. How the fate engine works is vastly unimportant, just as Twinkies and Nutty Ho Ho's are vastly unimportant in the grand scheme of things. Here, have a Ding Dong.
MarkJul 19, 2002 at 9:58AM
-
Or there's the ultra-primitive approach. Telling someone like my mother [or someone like me, come to think of it....] that computers are like very very large filing cabinets where the cards are cross-indexed, so that there are cards with 'outside' information on them, and other cards that tell the superclerk how to relate the outside cards to each other.
The French word for computer 'ordinateur' suggests some of that.
Except that there's now a generation of people who are not comfortable with either computers _or_ card-index filing cabinets.
Oh dear.
jkottkeJul 19, 2002 at 10:06AM
I think that The Pattern on the Stone description of computers only works for those of genius level intelligence.
In fairness to Hillis and the book, the above quote appears at the end of the third chapter. In the preceding text, he very carefully explains how a computer works -- clearly defining abstraction and finite-state machines -- starting with 1s and 0s and adding one layer of abstraction at a time until he's described a fully programmable computer.
Jerry KindallJul 19, 2002 at 4:31PM
Petzold's "Code" takes it from the other way around, beginning with simple circuits that turn lights on and off, progressing to logic gates, then moving up to memory circuits, and ending up with microprocessors. I know a couple different assembly languages so I'm familiar with a pretty low level of abstraction already, but Petzold starts off several levels lower than that. In fact I seem to recall that nearly all of Petzold's stuff about software is shoehorned into one chapter and is much less detailed than the hardware stuff.
Rich KottkeJul 19, 2002 at 7:48PM
The very first version of the microprocessor in your PC didn't come out of the chip fab with a C compiler built in. First someone had to write a cross assembler (on a different processor), and then port a C compiler over, and then debug it, before anything interesting could be done at all on the new microprocessor. Then some rudimentary OS kernel was developed, then the full OS, then some applications, and then (finally) web pages.
Or an even more existential issue - how do you build an EPROM programmer without an EPROM programmer?
Evelyn RedtreeJul 20, 2002 at 6:17PM
I approach this from having read Neal Stephenson's Cryptonomicon, in which a fictional digital computer inventor is able to create the first digital computer using pipes and mercury (to complete electrical circuits) based on his intimate knowledge of pipe organs (the musical instrument). It's a real different way of thinking about it, but accessible to a non-computer person such as myself. Also, I think, inspired as a way to interpret how computers work based on ancient technology.
Buzz AndersenJul 23, 2002 at 8:33AM
...in which a fictional digital computer inventor is able to create the first digital computer using pipes and mercury...
This is actually one of the key points in "The Pattern on the Stone"--that there is nothing about computers that necessitates the use of silicon, photolithography and so forth. He describes how any chip design in existence could actually be built as a "hydraulic" system using a series of pipes and valves. Such a "processor" would be enormous, of course, but it would still work the same way as it's tiny silicon counterpart. Hillis also describes a tinkertoy computer he built, which is kind of amusing.
This thread is closed to new comments. Thanks to everyone who responded.