[gem5-users] Re: some problem about IO device's write or read function's return tick

2021-12-27 Thread Gabe Black via gem5-users
I think this may not be quite right, or I'm misunderstanding what Jason is
saying. The Tick number returned in atomic mode is supposed to approximate
how long the access took, and it's up to the caller to do something with
that. Often the caller does throw away the number, but that's what it's
supposed to mean.

In timing mode, there is no returned Tick value, and it's up to the device
servicing the access (the thing *implementing* the read or write) to delay
the response to the access by whatever length of time it would take. This
is also done by all the steps along the way as the access is propagated, so
the interconnect, caches, etc. Cumulatively those all add up to how long
the access takes, which is what the atomic mode return value is supposed to
approximate.

When using atomic mode, performance is very loosely modeled. When using
timing mode, your device should implement delays by scheduling events for
in the future which actually send a response to a given access.

Gabe

On Mon, Dec 27, 2021 at 3:59 PM Jason Lowe-Power via gem5-users <
gem5-users@gem5.org> wrote:

> Hello,
>
> If you are using *atomic* memory mode, then the tick number is mostly
> ignored. If you're using *timing* mode, then the tick number should be used
> by whatever object calls the read/write function and the delay is inserted
> there. Also, if your program doesn't have a direct dependence on the I/O
> device, the latency may be hidden. Enabling various debug flags should help
> you track this down.
>
> Cheers,
> Jason
>
> On Thu, Dec 23, 2021 at 8:58 AM lin via gem5-users 
> wrote:
>
>> Hi
>>
>> I make an IO device link to the membus and complete the Tick
>> read(PacketPtr pkt) and the write() function .But I find that no matter how
>> many ticks ( the funciton return n*tick) I set,the simSeconds no change.If
>> it normal?If not , what can I do to set the return ticks of the read() or
>> write() function?
>>
>> Thanks everyone!
>>
>>
>>
>> ___
>> 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
>
> ___
> 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
___
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

[gem5-users] Re: some problem about IO device's write or read function's return tick

2021-12-27 Thread Jason Lowe-Power via gem5-users
Hello,

If you are using *atomic* memory mode, then the tick number is mostly
ignored. If you're using *timing* mode, then the tick number should be used
by whatever object calls the read/write function and the delay is inserted
there. Also, if your program doesn't have a direct dependence on the I/O
device, the latency may be hidden. Enabling various debug flags should help
you track this down.

Cheers,
Jason

On Thu, Dec 23, 2021 at 8:58 AM lin via gem5-users 
wrote:

> Hi
>
> I make an IO device link to the membus and complete the Tick
> read(PacketPtr pkt) and the write() function .But I find that no matter how
> many ticks ( the funciton return n*tick) I set,the simSeconds no change.If
> it normal?If not , what can I do to set the return ticks of the read() or
> write() function?
>
> Thanks everyone!
>
>
>
> ___
> 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
___
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