So my understanding of updating the PC is as follows:
- Put memory address indicated by PC into memory address register
- Load the contents of the address pointed to by memory address register into memory data register
- Place this instruction in the current instruction register.
- Update PC
- Decode instruction by passing it to the control unit and letting it handle it. Execute after that
That makes sense
What I don't get is, how does the PC know when the fetch phase is done? How does it know WHEN it needs to update?
Is there an update flag attached to the current instruction register? If there is, how does it work?
What mechanism tells the program counter when to update?