forked from eggy/eifueo
ece222: add pipelining
This commit is contained in:
parent
3a4d48e220
commit
e02bd8cc46
@ -111,3 +111,16 @@ To execute an instruction, the following steps are observed:
|
|||||||
5. Writeback (WB)
|
5. Writeback (WB)
|
||||||
- write results to registers from memory, the ALU, or another register
|
- write results to registers from memory, the ALU, or another register
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
|
||||||
|
Each step in the instruction data path has a varying time, so the clock period must be at least as long as the slowest step.
|
||||||
|
|
||||||
|
Performance is usually compared by comparing the execution times of standard benchmarks, such that:
|
||||||
|
|
||||||
|
$$\text{time}=n_{instructions}\times\underbrace{\frac{\text{cycles}}{\text{instruction}}}_\text{CPI}\times\frac{\text{seconds}}{\text{cycle}}$$
|
||||||
|
|
||||||
|
### Pipelining
|
||||||
|
|
||||||
|
Pipelining changes the granularity of a clock cycle to be per step, instead of per-instruction. This allows multiple instructions to be processed concurrently.
|
||||||
|
|
||||||
|
<img src="https://upload.wikimedia.org/wikipedia/commons/c/cb/Pipeline%2C_4_stage.svg" width=500>(Source: Wikimedia Commons)</img>
|
||||||
|
Loading…
Reference in New Issue
Block a user