Thanks for your advice. My guess is that it's the ports connected to the 
atomic-only port converts a timing request to atomic, and calls the recvAtomic 
function. In this case it's the XBar. I will try to measure how it's delayed.

________________________________
From: Jason Lowe-Power <ja...@lowepower.com>
Sent: Wednesday, July 6, 2022, 11:09 a.m.
To: The gem5 Users mailing list <gem5-users@gem5.org>
Subject: [gem5-users] Re: What happens when a atomic only port is accessed in 
Timing simulation?

Hi Zehan,

Atomic memory accesses should not be used during the same simulation loop as 
timing accesses. I.e., you should not call "sendAtomic" on a port during the 
same simulation loop that you call "sendTiming". If there isn't a panic in that 
case, there probably should be.

If you want to get a value out of memory in 0 time (e.g., for debugging or to 
model a "perfect" hardware component) you can use *functional* accesses during 
the timing simulation. You can also exit the simulation loop and switch between 
timing and atomic modes.

Cheers,
Jason

On Tue, Jul 5, 2022 at 9:56 PM Zehan Gao 
<z99...@uwaterloo.ca<mailto:z99...@uwaterloo.ca>> wrote:
Hi All,
              I am building a simulated system with a control registers port 
that only implemented recvAtomic function. The control port is connected to the 
IOBridge, and the system is running in timing mode. There is no problem to 
access the registers from CPU, but I wonder what the system does with the 
delay? I believe the atomic port would be treated as a timing port that has no 
delays. But is the delay of IOBridge and other system buses counted?

Thanks,
Zehan

_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org>
To unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto: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