November 20, 2008
It is said that the ancient polynesians had a legend that over every
horizon was a new land. So, setting out in groups of primitive canoes,
they colonized much of the pacific. Eventually they ran out of new
lands to colonize and many subgroups lost contact with each other. On
island they cut down all the trees and had no wood to build canoes.
So they were trapped.
In the computer world we often think that there are endless horizons as
well, but are there?
Sure, computers keep getting faster with more memory and more hard drive
space and instead of paying 75 cents for a 1.44 MB floppy we pay 25 cents
for a 4.3GB DVDR, but there are some things that haven't changed in over
30 years and where great progress has been made, we are approaching the
point where we are limited by the laws of physics.
#1 Hard drive access times are measured in milliseconds
Back in the mid 80s, a typical hard drive might have had a capacity of
20MB with an access time of 68 milliseconds. Now a typical hard drive is
500GB, a 25,000 time increase in capacity. If the increase in speed had
kept up with the increase in capacity, today's hard drives would have a
an access time of 2.72 micro seconds. Instead we are looking at access
times in the 5-7 milisecond range. So while capacity has increased 25,000
times there has been only about a 10 times increase in speed.
This surprises some people who have long assumed that we are already in
the microsecond range, but we aren't and it is doubtful that hard drives
as we know them will ever have access times in the microscond range. Why?
It comes down to the basics of how hard drives work.
Data on a hard drive is written on a "platter", a round disk, that spins
at 7200 RPM, that's 7200 times a minute or 120 times a second. If the
data you want to read is right underneath the head then your access time
would be zero. If you just passed the data you need, you'll have to wait
1/120 of a second (8.3ms) for the disk to come back around. So your minimum
access time is 0 and the maximum is 8.3ms, that means the average access
time would be 4.17ms.
Of course, this doesn't consider the time it takes for the head to move
or latency built into the circuitry, so it isn't likely that any 7200RPM
hard drive will ever atually achieve an average access time of 4.17 ms,
but that is the best average access time possible on a 7200RPM hard drive.
to achieve an average access time of 2.27 microseconds and thus obtain
an increase in speed comensurate with the increase in capacity the platter
would have to spin at 183,824 times a second or 11,029,412RPM!
It is pretty obvious, then, that access times in the low microsecond
range would require a completely different technology, such as nonvolatile
memory, which brings us to our next topic.
#2 The access time of system memory is measured in nanoseconds
In the 1980s a typical CP/M machine (remember those?) might have had
32K of RAM and that RAM would have an access time of 500ns. Today a
typical desktop might have 4 gigabytes of RAM, with an access time of
1.9ns. That's about 3 million times as fast as a hard drive, and about
264 times as fast as the 1980s RAM, but it pales in comparison to the
131,072 times increase in capacity!
If speed had increased comensurate with the increase of capacity, the main
in your computer would have an access time of 0.0038 nano seconds, or
3.8 picoseconds. Just how long is a picosecond?
Light travels about 186,00 miles a second or about 300,000KM, that's
300 million meters, so in 1 microsecond light travels 300 meters. In
one nanosecond light travels .3 meters or just under 1 foot. In a
picosecond light travels .003 meters or .3mm, thats 300 microns or about
1/85 of an inch. So in 3.8 picoseconds light would travel about 1/22
of an inch!
Since electricity cannot travel faster than light, the path travelled
by electricity while the processor makes 1 memory access would have to be
no more than 1/22 of an inch, which gives new meaning to the term "short
circuit"! That would be difficult even for RAM built into the
microprocessor itself, and obviously impossible for RAM outside the processor!
But What *is* possible? Well, at 1.9 ns light travels 57 cm or about 22.5 inches
if the trip electricity takes during access of the RAM could be reduced to
4 inches, then it might be possible to reduce access time to as little
as .34ns or 340 ps. Note that this doesn't take the switching latency
of the RAM into account, only the speed of electricity itself.
What this all boils down to is that in theory main system RAM could be
as much as 5.6 times as fast as it is now, but no faster!
#3 Display 16.8 million colors simultaneously! (not!!!!)
Back when video cards with 24 bit color first came out, their makers
claimed they could display 16.8 million colors simultaneously, note that
they said "display simultaneously, not "available simultaneously"! They
compared them to cards that really could display 4, 16, 256 or 32,768
colors simultaneously, leaving no doubt as to what they meant. This is blatantly
false advertising and is almost as bad as the lightbulbs which falsely
claim to put out 100 watts of light while using only 87 watts.
How so? The video card in question came equipped with only 1 megabyte of
vido RAM. That means that, since 3 bytes are needed for each pixel, the
highest mode supporting 24 bit color was 640x480, which has only 307,200
pixels. Since each pixel can be only 1 color at a time, that video card was
limited to displaying no more than 307,200 colors at a time. That was
actually quite impressive for its day, but it is a far cry from 16.8
Even if it had been expanded to 4 megabytes, like my first 24 bit video
card, the 24 bit color mode would still max out out 1280x1024 and it would
be limited to 1.3 million colors, still far short of what was advertised!
To actually display 16.8 million colors simultaenously, it would need at
least 48 megabytes of RAM and a mode with at least 16.8 million pixels.
While we do now have video cards with 48 megabytes of RAM, you would still
need a resolution containing 16.8 million pixels. If it is a 4:3 aspect
ratio, that would be 5462x3072, not inconceivable, but do you know anyone
whose video card and monitor can do that?
(to maintain a refresh rate of 75Hz the horizontal frequency
would have to be at least 241.3 Khz!)
I don't forsee any limitation to how dense the pixels on monitors can
become, but it is interesting to note that video card and monitor
makers still haven't delivered on what they advertised last century!