Discussion:
Doubts in packet and request
(too old to reply)
Riddhi Thakker
2018-11-10 06:35:00 UTC
Permalink
Hello all,

I have observed that when I run benchmarks, the size of the packet is
always 64 bytes. Where as if I run small SE programs the sizes turns out to
be different. If I call an instruction of 'int' size, it will not call the
packet of size 64 bytes, it should be lesser.
Following are my questions:
1) Why every time the packet size is 64 when I run a benchmark ?
2) The packet which is created refer to only one instruction (i.e. one
request) or multiple ?
3) If packet refers to only one instruction or request then how come for
all the kind of instructions is the packet size same ?
4) If a packet refers to different instructions or requests then how do I
infer how much data bytes do each instruction wants?
5) When I am trying to explicitly use the getReqInstSeqNum() function, then
why it gives me assertion failed error for VALID_INST_SEQ_NUM ?

I really want to get answers for these questions. It will be a great help
to me if anyone can get through this.

Thanks in advance.

Regards,
Riddhi Thakker
Sarabjeet Singh
2018-11-10 10:23:25 UTC
Permalink
Post by Riddhi Thakker
Hello all,
I have observed that when I run benchmarks, the size of the packet is
always 64 bytes. Where as if I run small SE programs the sizes turns out to
be different. If I call an instruction of 'int' size, it will not call the
packet of size 64 bytes, it should be lesser.
1) Why every time the packet size is 64 when I run a benchmark ?
In gem5, every memory access is modelled in terms of packets. And the
processor accesses memory at the granularity of cache line size, which is
64bytes. Hence, you will see 64bytes of data in each packet.
Post by Riddhi Thakker
2) The packet which is created refer to only one instruction (i.e. one
request) or multiple ?
An instruction can require any amount of data, and hence would need
multiple packets to serve it, since a single packet gives just 64bytes.
Post by Riddhi Thakker
3) If packet refers to only one instruction or request then how come for
all the kind of instructions is the packet size same ?
As explained earlier, a packet can be mapped to a single instruction only.
And the packet size is the cache line size.
Post by Riddhi Thakker
4) If a packet refers to different instructions or requests then how do I
infer how much data bytes do each instruction wants?
To quantify the amount of data accessed by an instruction, get the total
number of packets mapped to that instruction. Amount of data = (number of
packets * 64) in bytes.
Post by Riddhi Thakker
5) When I am trying to explicitly use the getReqInstSeqNum() function,
then why it gives me assertion failed error for VALID_INST_SEQ_NUM ?
Is this function trying to fetch the instruction sequence in the
instruction queue?
Post by Riddhi Thakker
I really want to get answers for these questions. It will be a great help
to me if anyone can get through this.
Thanks in advance.
Regards,
Riddhi Thakker
_______________________________________________
gem5-users mailing list
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
--
Best Regards,
Sarabjeet Singh
Loading...