On 6/30/2020 11:27 PM, Saideepak Bejawada via gem5-users wrote:

> I am trying to initiate another request in the cache along with the received request for a block. The problem is that the translated address for the requested block with all the checks performed will be given to cache. Now for the additional request which I want to create, I was trying to add some offset to the received physical address and initiating a request. It is working for some blocks and for some blocks, I am getting different errors. The reason that I can think of is that I didn't perform checks on the new physical address that I have created. I can think of two ways here, modifying the physical address and performing checks on that or forming the virtual address and passing it for the translation where checks are made while the translation is going on. Can I use TLB translation in cache? How can I do either of this? Any other ideas are also welcome.

Perhaps this is obvious, but if the other address lies in the same page, then
you're fine, but if it lies outside that page, then its physical page could be
arbitrarily different.  If you want to model some intended real hardware,
you'd need to set up a (strange) pathway back to the TLB, etc., and deal with
the possibility that the entry is not in the TLB cache, etc.  You can also go
into that module's data structure directly (won't give realistic timing, etc.)
to attempt an address translation.  (I've done stuff like that - hacky, but
can be made to work.)  In either case, what if the page in question is swapped
out?  Do you have a guarantee somehow that that is not the case?

Regards - Eliot Moss
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to