Concepts

Register file

array of register…

need read and write ports for communication…

Pipelining

Pipelining is to break down the CPU execution into discrete steps that can be completed in sequence by specialized hardware and to overlap the execution of different steps simultaneously.

Pipelining doesn’t reduce the time to execute each instruction, but it does reduce the total time to execute the whole program. However, pipelining might increase instruction exec time…comes with

Pipeline stall is when the execution of 1 stage takes longer than other stages, hence later jobs are stalled until the current is done and passed to the next stage. ⇒ may use out of order execution to increase efficiency!

Superscalar execution

Scalar execution is to have 1 ALU unit and do 1 instruction at the same

Superscalar execution is the practice to put multiple ALUs and execute multiple instructions at once.