The key idea to solve race between Get and Put message at directory (homenode) is that adding FwdAck to make sure the forward message (triggered by Get message) is received by processors and then begin process Put messages.
Just run make
command and you will get msi.out
and msi_opt.out
- The solid line represent a passive state transition -- the directory receive a message and transfer to a next state.
- The dotted line represent an active state transition -- the processor send a message and transfer to a next state.
- The solid line represent a passive state transition -- the processor receive a message and transfer to a next state.