Central processing unit (CPU) design is the design of an important aspect of a computer. The design is usually carried out by a computer design engineer specializing in CPUs. In general, the first step of CPU design is deciding what the design priorities are and what goals are to be achieved with the CPU. Designing a new CPU can take up to five years, sometimes longer, and the total cost of the design period can range into the tens of millions of United States Dollars (USD). These costs vary depending on the type of CPU, which can range from high performance to low-end CPUs for embedded devices and general purpose models.
A few areas of CPU design must always be addressed, including the integration of an instruction set that programmers can use. Without an instruction set, programmers are not able to develop programs that run on a computer using a given CPU. The instruction set specifies a lot of basic information, such as how to read and write data and where specific things such as memory are located.
Another integral part of CPU design is designing the physical representation of the hardware. Since designing a CPU is a complicated, time-consuming process, it is typically necessary to use a computer simulator to visualize all of the prototyped hardware. In most cases, many CPU designers work together on this aspect of CPU design.
One of the final steps of CPU design is called design rule checking. The purpose of this process is to ensure that the CPU design satisfies technical rules used to make sure the chip is manufactured effectively. Manufacturing is not a perfect process, so there are typically variables and imprecise actions. The design of a chip must be able to withstand some errors during manufacture but still operate properly.
Some common design goals exist when designing a new CPU, and there is often more than one goal for a given CPU. Sometimes a designer wants to make a CPU that can do more with less. The goal might not be to make a CPU that is much faster than existing designs, but to produce a certain standard that is cheaper or more energy-efficient. In other cases, the goal might indeed be to build a faster CPU with no regard to cost or power use. Another type of design goal might be to build a CPU that works better when used in parallel computing or more efficiently with certain types of processes.