I think the confusion comes from the fact that accesses in atomic mode return right away, where in timing mode they are split into a call which starts the transaction, and a callback with the results. In atomic mode, the same function can loop through all the lookups that might be necessary since they will all complete in line. In timing mode, the code has to start a transaction and then stop and pick up the next step once it gets a response later. The next step will be handled elsewhere, when the callback is received.
Gabe On Mon, Oct 26, 2020 at 9:40 PM krishnan gosakan via gem5-users < [email protected]> wrote: > Hi all, > I would like to know how page table walking actually works in x86 > TimingSImpleCPU, which uses a timing access memory model. Previously, I > tried to look at how the page table is walker for AtomicSimpleCPU which > uses an atomic access memory model. In > function Walker::WalkerState::startWalk(), for timing alone sendpackets() > is called while for other access models, there is a loop with stepWalk() > called. I see that a four level page table is used in atomic access, but I > don't see anything similar to it in timing mode. In short, I can't > understand how sendpackets() method does page walking. It would be great if > anyone could help me with this. > Thank you. > > -- > Regards, > Krishnan. > _______________________________________________ > gem5-users mailing list -- [email protected] > To unsubscribe send an email to [email protected] > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________ gem5-users mailing list -- [email protected] To unsubscribe send an email to [email protected] %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
