[Copying my response from gem5 slack in case you don't see there]

Hi Ghadeer,

I think you should be able to dump packet data with your changes in
abstract_mem.cc. access() function eventually calls getData() and
writeData() of packet.hh which use getSize() which gives the size of the
packet. Normally, the packet size here is same as the cache line size.
mem_ctrl.cc maintains two types of packets: 1) packet : which is same as
outer world packet and is a single cache line size, and 2) mem_pkt: which
is memory interface specific and can be smaller in size compared to a cache
line. Whenever mem_ctrl.cc calls access() function of abstract_mem.cc it
passes the the first type of packet (same as cache line size).

The packets that are added to read/write queue are mem_pkts and can be
smaller than 64B (cache line size). The size of mem_pkt depends on the
burst length (atom size) of the memory interface that is used. For example
for DDR4, mem_pkt size will be 64B as well.

-Ayaz



On Thu, Jan 26, 2023 at 11:55 PM Ghadeer Almusaddar via gem5-users <
gem5-users@gem5.org> wrote:

> Hello All,
>
> Is there any direct way in gem5 by which I can get the data of the whole
> cache line for every memory read or write regardless of how many bytes are
> read or written from that cache line? I also want to dump cache line data
> due to memory accesses from a specific core (requestorId)?
>
> Thank you,
> Ghadeer
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to