ARM Pipelines
Three pipeline stages
Fetch
Decode
Execute
Pipeline allows the core to execute instructions every cycle
filling the pipeline is moving instructions into stage
in RISC-V 'issuing' is the process of moving values from one stage to the pipeline stage register.
ARM9 and ARM10 increased the length of the pipeline
ARM9: 5 pipeline stages (fetch, decode, execute, memory, write)
ARM10: 6 pipeline stages (fetch, issue, decode, execute, memory, write)
As pipeline length increases (e.g. from 3 stages to 5 or 6), the amount of work done at each stage is reduced
increases performance allowing the processor to attain a higher operating frequency
System latency increases because of cycles required to fill pipeline before the core can execute an instruction.
In a 3 stage pipeline, it takes 3 cycles for the first instruction to reach the end of pipeline
In a 5, it takes 5. If six, it will take 6
Increased length can also introduce data (and name) dependencies
this can be resolved by writing code using instruction scheduling
see chapter 6.