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.
Update 12:33 PM 12/6/2014
As I had speculated six years ago, signifcantly higher hard drive access times would require a completely new technology, which isn't actually a hard drive at all. Indeed, that is exactly what happened!
Solid State drives
Solid State Drives (SSD) are used pretty the same way as hard drives and most of them use the same common interfaces such as SATA and USB, so they are connected to the computer the same way as a hard drives, they are even assigned letters such as C: D; E: , etc. and appear on your desktop just like hard drives, but they are not hard drives! SSDs are actually a type of non volatile memory and an SSD is essentially just an array of memory with a controller that allows it to act like a hard drive.
Because an SSD has no moving parts, you don't have to wait for the platter to spin or the head to move and so accessing a byte at the other end of the address space takes about the same amount of time as reading an adjacent byte. For this reason, you don't usually see Solid State Drives being rated in terms of access or "seek" time. It doesn't "look" for a byte, it simply goes there.
The lack of moving parts also means that they are silent, use less power and generate less heat, this makes them a perfect match for laptop computers! The extra speed is an added bonus.
Just how fast are SSD compared to conventional hard drives? Let's put it this way:
If you have windows 7 and your main hard drive is a real hard drive (even an SAS drive) and you run the windows experience index you will likely find that your hard drive is identified as the weak link. If you install an SSD as the main drive, you will probably find it is the video card that is the weak link, especially if the drive is connected with a 3G/6G SATA interface. Coventional drives struggle to keep up with such an interface, whereas an SSD is often throttled by it, the interface may be slower than the drive instead of the other way around.
There is one down side to SSD and you may have already guessed what it is. High capacity SSD cost about 6 to 10 times as much per megabyte as conventional SATA drives. For this reason, you may want to use an SSD for your main drive (and for virtual RAM/Cache) and use conventional drives for larger files such as video files. A computer configured in this way will have plenty of storage for large files (and huge collections of files) but be incredibly fast during boot up and normal operations, at a reasonable price.
#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, and the effective access speed
will probably be no more than twice as fast. Unless we change the speed of light, Only RAM in the same package as processor will
ever have effective access times in the single or even double digit picosecond range
#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 even
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!