What is a Real Computer?
As a computer hobbyist since the late 1970s, I have always been aware of the
differences between the computer that I owned (a "toy computer"), and the
computer that I wanted (a "real computer").
Such differences continued to exist even as technology improved: just when the
computer that I owned received the capabilities of a "real computer", real
computers would charge ahead to make the next advancement.
Here is a look back on the ever-higher bar for what constitutes a real computer.
My first computer was a homebrew Z80 machine with 16 kilobytes of memory. I
designed and built this computer in 1978.
Programmed in machine language by entering hexadecimal opcodes into the
computer's memory, the computer was decidedly hard-to-use. I thought to myself
"a real computer would be programmed in a high-level language". I learned a lot
about computer programming by writing BASIC interpreters for this machine.
Pre-emptive Multitasking Operating System
My next awareness of a "real computer" came from being exposed to Unix Version 7
running on the DEC PDP 11/70 in my undergraduate classes at the University of
California, Berkeley. Here was a computer that could run multiple jobs at once,
albeit extremely slowly. Memory management hardware kept the jobs isolated even
if one crashed.
"This was a real computer", I thought to myself. It would be many years before
I would own a computer that ran a pre-emptive multitasking operating system.
32-bit word size
The previous computers were limited by a 16-bit word size and corresponding 64
kilobyte address space. 65,536 is not a lot of anything, by computer standards.
By the early 1980s, I found myself saying that a real computer would have a
32-bit word size, enough to address four billion bytes of memory.
The real computer would take the form of the VAX 11/780 running BSD Unix, used
in many of my classes at Berkeley. I would approximate this on my next home
computer with a Motorola 68000 microprocessor. Free from the limitations of the
64 kilobyte address space, the 68000 had a useful lifespan of over a decade.
Bit-Mapped Graphics and Fixed Storage
Peripherals greatly improved during the 1980s.
"A real computer would have bit-mapped graphics and a hard-disk drive", I
thought to myself. By 1985, costs had come down to the point where I could own
The PC becomes a Real Computer
Although Intel had been shipping microprocessors with 32-bit word size and
memory management since 1985, personal computer operating systems would take a
decade to catch up. With Microsoft's introduction of Windows 95 in 1995, the PC
now ran a 32-bit, pre-emptive multitasking operating system. The PC had become
a real computer.
The combination of 32-bit word size and pre-emptive multitasking proved to be
extremely long-lived. From the mainframes of the 1960s, to the minicomputers of
the 1970s, to the microcomputers of the 1980s, 32-bit architectures lasted well
into the mid-2000s in the PC market. Such machines are still used today in
handheld devices. Four billion bytes provides sufficiently large capacity to
handle many computing tasks.
64-bit word size and Symmetric Multiprocessor
Since memory densities double every two years, it was only a matter of time
before 32-bits were no longer enough. The crossover occurred in the 1990s in
mainframe and RISC architectures. By the mid-2000s, I found myself sitting in
front of my PC and thinking "a real computer would have a 64-bit word size".
Fortunately, microprocessors had been leading the advancement of computer
technology for many years. It wasn't long before I owned a PC with a 64-bit
word size in 2010. 64-bit architectures provide enough addressability to remain
useful throughout my expected lifetime.
The 2010 PC was also a symmetric multiprocessor with a whopping four CPU cores.
No longer limited to time-slicing between multiple tasks or sub-tasks (threads),
the multiprocessor could run them simultaneously. The transition from
uniprocessors to multiprocessors opened up tremendous potential for future
Here was a real computer by any historical measure: 64-bit word size, tens of
billions of operations per second, 12 billion bytes of memory, and two trillion
bytes of storage. The 2010-vintage PC had 5-6 orders of magnitude greater speed
and storage capacity than the Z80 machine I started with in 1978. Such a
machine would seem to be able to tackle any computing problem. Or can it?
What is the next Real Computer?
A defining characteristic of computer technology is that computing workloads
grow over time. Computing problems come in all sizes, and there is no limit to
the amount of computing that one would like to do. Increases in speed and
capacity are put to use by having the computer do new things.
Process billions of pixels? No problem.
Process a week's worth of audio? No problem.
Such tasks would have seemed unimaginable only two decades earlier.
I'm looking forward to new applications made possible by ever-increasing
computer speeds and capacities.
My future real computer will likely look like the large servers of today, with
many tens of CPU cores, or even a small data center with hundreds of machines.
It is only a matter of time before advances in technology make that amount of
computing smaller and more affordable.