----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/422/#review741 -----------------------------------------------------------
This change seems to have some dead functionality in it. The "delay" member added to translations is never used, the "delay()" pure virtual function is never used and not defined for any other ISAs (which I think will break them all), and the translationDelayed variable is never used. Unnecessary copyright changes should also be rolled back when removing that dead code. Are there any instructions that actually expect to get a valid fault when performing initiateAcc? I could imagine there might be since it used to be something you could always do for the most part, but getting rid of those instances would help simplify this code I think. The code that prepares a request for the memory system could follow from the finishTranslation function no matter if it happened immediately or after a table walk. Then an instruction would (hopefully) only require one pass since it's work would be done and it would either be ready to commit (a store) or ready for completeAcc (a load). The actual load/store queue would have to wait since the address might not be ready, but that might be a pretty simple extension on top of waiting for initiateAcc to happen. src/sim/tlb.hh <http://reviews.m5sim.org/r/422/#comment1002> Did you compile an ISAs other than ARM? I don't see this being defined for any of them, and since it's pure virtual I don't think they'll work any more. - Gabe On 2011-01-12 09:12:18, Ali Saidi wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.m5sim.org/r/422/ > ----------------------------------------------------------- > > (Updated 2011-01-12 09:12:18) > > > Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and > Nathan Binkert. > > > Summary > ------- > > O3: Enhance data address translation by supporting hardware page table > walkers. > > Some ISAs (like ARM) relies on hardware page table walkers. For those ISAs, > when a TLB miss occurs, initiateTranslation() can return with NoFault but with > the translation unfinished. > > Instructions experiencing a delayed translation due to a hardware page table > walk are deferred until the translation completes and kept into the IQ. In > order to keep track of them, the IQ has been augmented with a queue of the > outstanding delayed memory instructions. When their translation completes, > instructions are re-executed (only their initiateAccess() was already > executed; their DTB translation is now skipped). The IEW stage has been > modified to support such a 2-pass execution. > > > Diffs > ----- > > src/arch/arm/tlb.cc 5d0f62927d75 > src/cpu/base_dyn_inst.hh 5d0f62927d75 > src/cpu/base_dyn_inst_impl.hh 5d0f62927d75 > src/cpu/o3/fetch.hh 5d0f62927d75 > src/cpu/o3/iew_impl.hh 5d0f62927d75 > src/cpu/o3/inst_queue.hh 5d0f62927d75 > src/cpu/o3/inst_queue_impl.hh 5d0f62927d75 > src/cpu/o3/lsq_unit_impl.hh 5d0f62927d75 > src/cpu/simple/timing.hh 5d0f62927d75 > src/cpu/translation.hh 5d0f62927d75 > src/sim/tlb.hh 5d0f62927d75 > > Diff: http://reviews.m5sim.org/r/422/diff > > > Testing > ------- > > > Thanks, > > Ali > >
_______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev