Duo to Quad

Servers can use as many cores as you can provide. If you are encoding video, a desktop CPU can use four cores. Otherwise, two or three cores are perfectly adequate. A few applications run slower on four core than they do on fewer cores.

For thirty years or more, “Moore’s Law” has seen the number of circuits on a computer chip double every 24 months.

The original Intel CPU chips had the bare minimum number of circuits needed to work at all. Computers have to read the next instruction in from memory, determine what operation is to be performed, calculate the address of the data, read the data into memory, and perform the operation. On these early chips, each of these steps required one or more clock cycles, and the CPU completed one instruction before going on to the next. Each new generation of the early chips (8080, 286, 386, 486)  used the extra transistors provided by each iteration of Moore’s Law to provide separate dedicated element for each phase of instruction processing. So while one circuit saved the result of the last operation, another was performing the current operation, and another was fetching data for the next operation, and another was decoding the operation for the instruction after that. It still took many clock cycles to perform any single instruction, but the pipeline processed one instruction per clock cycle, and each instruction in the pipeline advanced to the next position.

The first Pentium chip represented a transitional design. The CPU chip had two pipelines and could execute two instructions in parallel per clock cycle, but only if the second instruction did not depend on the result generated by the first instruction.

To do any better than the Pentium, Intel had to invest an enormous amount of circuitry to achieve increasingly less benefit. It created an entirely new internal CPU with lots of processing stations and registers, but one that was entirely different from the original x86 design. So the modern Intel CPU chips reads the old x86 instructions and dynamically translates them into a new more efficient set of “microinstructions”. Then the new design executes the microinstructions and at the end the CPU gathers the results and pretends that they were executed in the traditonal x86 mode. Intel created an entirely foreign CPU chip, but since it does the translation internally no programs had to be changed to run on it. Recently, every new doubling of circuits from a new iteration of Moore’s Law has had progressively less benefit.

A much simpler use for twice as many transistors would be to create a second CPU core. However, two processors can only execute two different programs (or two “threads” of a program written to use threads). Extra cores can be used immediately by Server computers. A big Web Server is connected to thousands of remote users, and at any time dozens of users may have submitted a request and be waiting for a reply. Each core can be assigned to handle one independent user request.

Desktop computers used by a single person are less likely to keep multiple cores busy. A few programs, mostly video encoding/decoding and some games, are written to use multiple independent threads of execution. Unless you use such programs regularly, a second core will be occasionally useful to smooth out performance and any additional cores will be of very little use.

A Quad Core CPU is great for servers. On a desktop it will be useful if you run the one or two programs that can use it. Otherwise, it is just for show and bragging rights. It was an obvious thing to do and it doesn’t cost a lot more to build. The next generation of Nehalem processors will have 6 or 8 Cores. Having said that, Intel has its fingers crossed that maybe the software vendors will finally figure out how to use multiple threads and the software will catch up just about the time they are ready to release the hardware.

Numbers will vary from time to time, but generally a dual core CPU costs 50% more than a single core CPU (at the same clock) and a quad core CPU costs 60% more than a dual core. So on paper you get twice as much power for a lot less than twice the price. However, you only use the power if you have programs that can use all the cores at once. Generally dual core is a really good idea. After that, increase the clock speed as long as the price increase is sensibly related to the improved performance. When small changes in clock speed cost a lot of money, then think about a quad processor if you have any programs that can use it.