2013: Advent Computing: Making things faster

by on December 12, 2013

Back to something a bit more practical.

When you’re working with a computer, it’s pretty common to want it to go faster. It’s pretty rare that going to fast is a problem. So how can you make your computer go faster? How can computer manufacturers make computers go faster?

For a long time, one of the primary ways to increase the speed of a computer was to increase it’s “clock speed”. That’s the number you’ll often see in Hz, like 2.6 GHz, which means your computer’s processor performs 2,600,000,000 cycles per second. It’s a bit of a simplification, but a cycle can be thought of as the time required for the processor to perform one instruction in its machine language.

There are a few problems with just continuously ramping up the clock speed, though, and modern computers rarely get much above 3 GHz as a result. Heat is one, as it’s difficult to keep a processor running that fast from generating so much heat that it’ll melt itself or spontaneously combust. In theory that can be solved with better cooling and better designs. What can’t be solved, even by Scotty, is the laws of physics: computer processors are now getting so fast that, if we were to make them much faster, we wouldn’t be able to be sure the electrons inside the computer would move about fast enough to carry a signal the required number of billion times per second.

Fibre optics will help there, but fibre optics in the internals of a computer are some way from being cost effective. Thus we find alternative solutions.

One is increasing the speed of the memory, or adding more fast memory. This is one of the very first ways of speeding up a computer, with the move from slow mechanical relay switches for memory to electric thermionic valves. The current trend from magnetic disks to solid state “flash” memory is also in this vein, and we’ll revisit what the memory changes mean later.

Another cunning trick is to simply perform multiple calculations with each cycle. Rather than having your processor execute one instruction, why not have it execute several simultaneously? You can add another processor, and suddenly your computer will be twice as fast! While this is an incredibly powerful trick, it can complicate programming massively. So that’s what’ll be in tomorrow’s post.

Leave a Reply