Hi May, Packets classified as writes in the memory controller are due to writebacks from the last-level cache. Writeback packets will have a physical address but will not have a valid virtual address.
Mapping a physical address to a virtual address in the general case is not straightforward. In fact, one physical address might map to multiple virtual addresses. There are a couple of workarounds which might or might not be applicable in your use case. For example, you could add a field in the CacheBlk with the virtual address of the first or last request that accessed it and then copy it to writeback packet when the block is evicted. Hope this helps. Nikos On 25/07/2020 11:38, may via gem5-users wrote:
Hi, I want to get the virtual address of the write packet accepted by the memory controller. However, I find that only read packets have virtual addresses. For write packets, pkt->req->hasVaddr() is set false. It only has a physical address. Is there any method to get the virtual addresses of write requests? Thanks, May _______________________________________________ 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
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ 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