> > Yes, that is absolutely correct! the list of instructions to be > removed during a tick by the cleanUpRemovedInsts() routine comprises > of both instructions that graduate and instructions that get squashed! > And, cleanUpRemovedInsts() just removes the instruction schedule > associated (and its register dependencies) by an instruction before > removing it from "instList" (the global list of all instructions in > flight in the pipeline). So, it appears ok to add the logic to drain > the cpu here. Could you look into the cleanUpRemovedInsts() one more > time? > OK, that looks right. The "removeList" kind of serves as the synchronizing point for all squashed and graduated instructions and that cleanUp function traverses that list. I was remarking on memory mgmt., but I forgot that those are ref-counted pointers (for the insts), so as soon as they are taken off the instruction list they should delete themselves.
So after all the instructions are "cleaned" in that function, it looks safe to add some drain logic that will check all the per-thread global instruction lists and if they are all empty then signal the drain complete. > > I was looking into the takeOverFrom() routine and it appears to > involve a lot more work! But, I'll work on it later. > In the interim, checkpointing from/to the same cpu model is a proof of concept and then switching between models could be the next step. One last thing: If you get some time, can you add some details to the WIKI about Checkpointing for the InOrder model? This type of stuff gets lost in the development process easily but if someone just takes notes as they go along, then the next person who is interested in checkpointing has a faster path to understanding the code and eventually tweaking the process if need be (especially if that next person is me :) ... ) I created a page there that we can edit as the solution gets panned out: http://m5sim.org/wiki/index.php/InOrder. -- - Korey
_______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
