public void stepPipeline(FetchArgs fetchArgs,DecodeArgs decodeArgs,ExecuteArgs executeArgs, WritebackArgs writebackArgs) { Thread f = new Thread(() => fetch(fetchArgs)); Thread d = new Thread(() => decode(decodeArgs)); Thread e = new Thread(() => execute(executeArgs)); Thread w = new Thread(() => writeback(writebackArgs)); f.Start(); d.Start(); e.Start(); w.Start(); f.Join(); d.Join(); e.Join(); w.Join(); }
public void fetch(FetchArgs args) { if(args.locked == false) { registerMAR = args.pc; registerMDR = memory.instructions[registerMAR]; registerPC++; } }