Lably
Skip to content

Processor design

Task of creating a processor

  • 9 min read
  • 2 chapters

Related on Lably

Through Microarchitecture, Microprocessor and Arithmetic logic unit

The design process involves choosing an instruction set and a certain execution paradigm (e.g. VLIW or RISC) and results in a microarchitecture, which might be described in e.g. VHDL or Verilog. For microprocessor design, this description is then manufactured employing some of the various semiconductor device fabrication processes, resulting in a die which is bonded onto a chip carrier. This chip carrier is then soldered onto, or inserted into a socket on, a printed circuit board (PCB).

The mode of operation of any processor is the execution of lists of instructions. Instructions typically include those to compute or manipulate data values using registers, change or retrieve values in read/write memory, perform relational tests between data values and to control program flow.

Processor designs are often tested and validated on one or several FPGAs before sending the design of the processor to a foundry for semiconductor fabrication.

Details

Basics

Information is transferred through datapaths (such as ALUs and pipelines). These datapaths are controlled through logic by control units. Memory components include register files and caches to retain information, or certain actions. Clock circuitry maintains internal rhythms and timing through clock drivers, PLLs, and clock distribution networks. Pad transceiver circuitry which allows signals to be received and sent and a logic gate cell library which is used to implement the logic. Logic gates are the foundation for processor design as they are used to implement most of the processor's components.

CPUs designed for high-performance markets might require custom (optimized or application-specific (see below)) designs for each of these items to achieve frequency, power-dissipation, and chip-area goals whereas CPUs designed for lower performance markets might lessen the implementation burden by acquiring some of these items by purchasing them as intellectual property. Control logic implementation techniques (logic synthesis using CAD tools) can be used to implement datapaths, register files, and clocks. Common logic styles used in CPU design include unstructured random logic, finite-state machines, microprogramming (common from 1965 to 1985), and programmable logic arrays (common in the 1980s, no longer common).

Specialized Accelerators

Modern processor designs increasingly rely on heterogeneous computing, integrating specialized accelerators alongside general-purpose cores. The most prominent addition is the Neural Processing Unit (NPU), designed specifically to execute machine learning mathematics (matrix multiplication) more efficiently than a standard CPU. This specialization allows for significant gains in performance-per-watt for AI workloads.

Implementation logic

Device technologies used to implement CPU logic have changed over time. Early implementations used individual relays, vacuum tubes, and discrete components (transistors and diodes), and later small-scale integration TTL chips, but these are no longer used for CPUs. Programmable array logic and other programmable logic devices are also no longer used for CPUs in this role, and ECL gate arrays are now uncommon. CMOS gate arrays are no longer used for CPUs, while CMOS mass-produced integrated circuits account for most CPUs by volume. Custom CMOS ASICs are generally practical only for high-volume applications because of the engineering cost. Field-programmable gate arrays (FPGAs) remain common for soft microprocessors and are often used for reconfigurable computing.

A CPU design project generally has these major tasks:

  • Programmer-visible instruction set architecture, which can be implemented by a variety of microarchitectures
  • Architectural study and performance modeling in ANSI C/C++ or SystemC
  • High-level synthesis (HLS) or register transfer level (RTL, e.g. logic) implementation
  • RTL verification
  • Circuit design of speed critical components (caches, registers, ALUs)
  • Logic synthesis or logic-gate-level design
  • Timing analysis to confirm that all logic and circuits will run at the specified operating frequency
  • Physical design including floorplanning, place and route of logic gates
  • Checking that RTL, gate-level, transistor-level and physical-level representations are equivalent
  • Checks for signal integrity, chip manufacturability

Re-designing a CPU core to a smaller die area helps to shrink everything (a "photomask shrink"), resulting in the same number of transistors on a smaller die. It improves performance (smaller transistors switch faster), reduces power (smaller wires have less parasitic capacitance) and reduces cost (more CPUs fit on the same wafer of silicon). Releasing a CPU on the same size die, but with a smaller CPU core, keeps the cost about the same but allows higher levels of integration within one very-large-scale integration chip (additional cache, multiple CPUs or other components), improving performance and reducing overall system cost.

As with most complex electronic designs, the logic verification effort (proving that the design does not have bugs) now dominates the project schedule of a CPU.

Key CPU architectural innovations include accumulator, index register, general-purpose register, cache, virtual memory, instruction pipelining, superscalar, CISC, RISC, virtual machine, emulators, microprogram, and stack.

Microarchitectural concepts

Research topics

A variety of new CPU design ideas have been proposed, including reconfigurable logic, clockless CPUs, computational RAM, and optical computing.

Performance analysis and benchmarking

Benchmarking is a way of testing CPU speed. Examples include SPECint and SPECfp, developed by Standard Performance Evaluation Corporation, and ConsumerMark developed by the Embedded Microprocessor Benchmark Consortium EEMBC.

Some of the commonly used metrics include:

  • Instructions per second - Most consumers pick a computer architecture (normally Intel IA32 architecture) to be able to run a large base of pre-existing pre-compiled software. Being relatively uninformed on computer benchmarks, some of them pick a particular CPU based on operating frequency (see Megahertz Myth).
  • FLOPS - The number of floating point operations per second is often important in selecting computers for scientific computations.
  • Performance per watt - System designers building parallel computers, such as Google, pick CPUs based on their speed per watt of power, because the cost of powering the CPU outweighs the cost of the CPU itself.
  • Some system designers building parallel computers pick CPUs based on the speed per dollar.
  • System designers building real-time computing systems want to guarantee worst-case response. That is easier to do when the CPU has low interrupt latency and when it has deterministic response. (DSP)
  • Computer programmers who program directly in assembly language want a CPU to support a full featured instruction set.
  • Low power - For systems with limited power sources (e.g. solar, batteries, human power).
  • Small size or low weight - for portable embedded systems, systems for spacecraft.
  • Environmental impact - Minimizing environmental impact of computers during manufacturing and recycling as well during use. Reducing waste, reducing hazardous materials. (see Green computing).

There may be tradeoffs in optimizing some of these metrics. In particular, many design techniques that make a CPU run faster make the "performance per watt", "performance per dollar", and "deterministic response" much worse, and vice versa.

Sign in to keep reading

One more chapter is free with a Lably account.

More in Computing and communication