Instruction sets must be carried out for a computer to run, but there are myriad different ways to accomplish this. That is the essence of the field of processor architecture - implementing processors which can execute instruction sets in a specific way. The process involves both microarchitecture and instruction set design.
Two main aspects of processor design are data path design and execution unit handling.
- Data paths
Over the year of computer architecture, the pipelined data path has risen to prominence as the go-to technique for data paths. Essentially, it breaks instructions down into clumps and runs them through a 'pipe' that can execute multiple clumps of different programs at once to allow efficient processing. Making this overlap possible is fundamental to microarchitecture designs, and generally done in the stages of instruction fetch, decode, exexute and write back.
- Execution units
This category covers arithmetic logic, floating point, load/store, branch prediction and SIMD units. It is where the calculations and operations of the CPU take place. How the system processes a unit depends on its size, latency throughput and the connectivity of the system's memories. Generally, it follows a set of stages like the data paths, for as long as power is supplied to the system. These stages are:
- read and decode the instruction
- retrieve any associated data necessary for processing those instructions
- process the instructions
- output the results