pipelining
structural hazard
data hazard/pipeline data hazard
When a planned instruction cannot execute in the proper clock cycle because data that is needed to execute the instruction are not yet available
Example:
ADD X19, X0, X1
SUB X2, X19, X3
forwarding/bypassing
load-use data hazard
A specific form of data hazard in which the data being loaded by a load instruction has not yet become available when it is needed by another instruction
pipeline stall/bubble
control hazard/branch hazard
branch prediction
NOP
ISA
latency
throughput
classic RISC pipeline
Divides fetch-execute cycle into 5 steps:
- IM fetches current instruction from iM
- ID/IF decodes MI and fetches its operands from registers
- EX performs ALU operation
- MEM accesses (writes/reads) data to memory if it is a LDUR/STUR
- WB writes ALU or LOAD result to destination register
ILP
CPI
what it means when pipelines are said to be transparent
things adding a NOP should NOT do (3 things)
instruction fetch
stages
what pipeline improves and what it doesn’t improve
5 steps to execute a basic pipeline
what limits were we can start to overlap instructions?
why x86 can’t use pipelining
hazards
situations in pipelining when the next instruction cannot execute in the following clock cycle