[gem5-users] Re: Reading from memory in Gem5

2020-08-07 Thread ABD ALRHMAN ABO ALKHEEL via gem5-users
Hello Jason,

It is for a debug-only read and I want to see what is in the main memory only 
not in the cache.

Thanks for your email, I really appreciate that.


From: Jason Lowe-Power 
Sent: Friday, August 7, 2020 5:52 PM
To: ABD ALRHMAN ABO ALKHEEL 
Cc: gem5 users mailing list 
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

Is this a debug-only read or are you trying to simulate the timing for the 
read? Do you want to see what's in the main memory or do you want to see the 
up-to-date values in the caches? The answers to these questions will drive what 
type of access you want to make and what object you want to use to make the 
access.

Generally, you can simply construct a packet and send a request of any size to 
any object. See 
http://www.gem5.org/documentation/learning_gem5/part2/simplecache/ for details 
on how to send/receive memory requests.

Cheers,
Jason

PS: There is no need to send multiple emails. People will either respond or 
they won't. Spamming the list (and individuals) will *decrease* the chance of a 
response due to causing people to get frustrated. Please don't stop asking 
questions! But it's important to be polite when asking them :).

On Thu, Aug 6, 2020 at 12:44 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

I want to clarify what I want to do; I want to run a program on gem5 (in SE 
mode) for 1M instructions and I want to save the memory addresses that every LD 
instruction loads data from ( I can get those addresses from the pushRequest 
method in the lsq) http://doxygen.gem5.org/release/current/classLSQ.html and 
saving those addresses in a table (map). After a specific time for example 
(every100k instructions), I want to access the memory to read the data from 
those addresses. For instance, let us assume that the address that load 
instruction loads data from it is (0x78226e68), can I read the content of 
this memory address? Also can I read the 256 bytes of this address 
(0x78226e00-0x78226eff)? If so, how?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Tuesday, August 4, 2020 4:41 PM
To: ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>>; gem5 users mailing 
list mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

First of all, please reply to the users list, not directly to the person who 
responded. This allows everyone to see answers and/or chime in and help.

Second, the page you linked is out of date. Please use the main gem5 website 
for all of the up to date documentation (e.g., 
http://doxygen.gem5.org/release/current/classLSQUnit.html)

Third, I still don't fully understand what your goals are. However, you can use 
the system port (actually, I think I was wrong before, you should use the 
"getPort" function, not "getSystemPort") to make functional (or debug) accesses 
to the memory. You can create a `Packet` with a `Request` and send a functional 
request across the port (i.e., call sendFunctional(pkt)). You can use either 
virtual (in SE mode) or physical address (in both modes). I am sure there are 
some caveats to using virtual addresses, but I don't know exactly what they are.

If you're trying to make new timing accesses, then you should use the main 
"dcache_port" and "icache_port" that are connected to the CPU. Again, you can 
construct a Packet object with a Request and send it across the port (e.g., 
sendTimingReq(pkt)).

You may want to read up on the details of how gem5's memory objects work: 
http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/

Cheers,
Jason



On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

Thanks for your email.

What I want to do is finding the memory address that the LD instruction loads 
data from ( I can get the physical and virtual address from the Read method in 
the lsqunit)http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and 
saving those addresses. After a specific time, I want to access the memory to 
read the data from those addresses. Can I use getSystemPort function to access 
the memory and read the data from those addresses? If so, should I use the 
virtual address or the physical address?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Monday, August 3, 2020 3:26 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: gem5-users 
mailto:gem5-users-boun...@gem5.org>>; ABD ALRHMAN 
ABO ALKHEEL mailto:abdkeel...@hotmail.com>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

This sounds like you probably want to use "functional" accesses. These are 
built for introspection and debugging, which is what it sounds like you want to 
do. Using the System ob

[gem5-users] Re: Reading from memory in Gem5

2020-08-07 Thread ABD ALRHMAN ABO ALKHEEL via gem5-users
Hi Jason,

Thanks for your email.

I am sorry about that, I sent the second email in order to update the first one 
about reading the memory with 256 bytes size of the data not to make any 
spamming.

Thanks


From: Jason Lowe-Power 
Sent: Friday, August 7, 2020 5:52 PM
To: ABD ALRHMAN ABO ALKHEEL 
Cc: gem5 users mailing list 
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

Is this a debug-only read or are you trying to simulate the timing for the 
read? Do you want to see what's in the main memory or do you want to see the 
up-to-date values in the caches? The answers to these questions will drive what 
type of access you want to make and what object you want to use to make the 
access.

Generally, you can simply construct a packet and send a request of any size to 
any object. See 
http://www.gem5.org/documentation/learning_gem5/part2/simplecache/ for details 
on how to send/receive memory requests.

Cheers,
Jason

PS: There is no need to send multiple emails. People will either respond or 
they won't. Spamming the list (and individuals) will *decrease* the chance of a 
response due to causing people to get frustrated. Please don't stop asking 
questions! But it's important to be polite when asking them :).

On Thu, Aug 6, 2020 at 12:44 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

I want to clarify what I want to do; I want to run a program on gem5 (in SE 
mode) for 1M instructions and I want to save the memory addresses that every LD 
instruction loads data from ( I can get those addresses from the pushRequest 
method in the lsq) http://doxygen.gem5.org/release/current/classLSQ.html and 
saving those addresses in a table (map). After a specific time for example 
(every100k instructions), I want to access the memory to read the data from 
those addresses. For instance, let us assume that the address that load 
instruction loads data from it is (0x78226e68), can I read the content of 
this memory address? Also can I read the 256 bytes of this address 
(0x78226e00-0x78226eff)? If so, how?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Tuesday, August 4, 2020 4:41 PM
To: ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>>; gem5 users mailing 
list mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

First of all, please reply to the users list, not directly to the person who 
responded. This allows everyone to see answers and/or chime in and help.

Second, the page you linked is out of date. Please use the main gem5 website 
for all of the up to date documentation (e.g., 
http://doxygen.gem5.org/release/current/classLSQUnit.html)

Third, I still don't fully understand what your goals are. However, you can use 
the system port (actually, I think I was wrong before, you should use the 
"getPort" function, not "getSystemPort") to make functional (or debug) accesses 
to the memory. You can create a `Packet` with a `Request` and send a functional 
request across the port (i.e., call sendFunctional(pkt)). You can use either 
virtual (in SE mode) or physical address (in both modes). I am sure there are 
some caveats to using virtual addresses, but I don't know exactly what they are.

If you're trying to make new timing accesses, then you should use the main 
"dcache_port" and "icache_port" that are connected to the CPU. Again, you can 
construct a Packet object with a Request and send it across the port (e.g., 
sendTimingReq(pkt)).

You may want to read up on the details of how gem5's memory objects work: 
http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/

Cheers,
Jason



On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

Thanks for your email.

What I want to do is finding the memory address that the LD instruction loads 
data from ( I can get the physical and virtual address from the Read method in 
the lsqunit)http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and 
saving those addresses. After a specific time, I want to access the memory to 
read the data from those addresses. Can I use getSystemPort function to access 
the memory and read the data from those addresses? If so, should I use the 
virtual address or the physical address?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Monday, August 3, 2020 3:26 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: gem5-users 
mailto:gem5-users-boun...@gem5.org>>; ABD ALRHMAN 
ABO ALKHEEL mailto:abdkeel...@hotmail.com>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

This sounds like you probably want to use "functional" accesses. These are 
built for introspection and debugging, which is what it sou

[gem5-users] Re: Reading from memory in Gem5

2020-08-07 Thread Jason Lowe-Power via gem5-users
Hello,

Is this a debug-only read or are you trying to simulate the timing for the
read? Do you want to see what's in the main memory or do you want to see
the up-to-date values in the caches? The answers to these questions will
drive what type of access you want to make and what object you want to use
to make the access.

Generally, you can simply construct a packet and send a request of any size
to any object. See
http://www.gem5.org/documentation/learning_gem5/part2/simplecache/ for
details on how to send/receive memory requests.

Cheers,
Jason

PS: There is no need to send multiple emails. People will either respond or
they won't. Spamming the list (and individuals) will *decrease* the chance
of a response due to causing people to get frustrated. Please don't stop
asking questions! But it's important to be polite when asking them :).

On Thu, Aug 6, 2020 at 12:44 PM ABD ALRHMAN ABO ALKHEEL <
abdkeel...@hotmail.com> wrote:

> Hi Jason,
>
> I want to clarify what I want to do; I want to run a program on gem5 (in
> SE mode) for 1M instructions and I want to save the memory addresses that
> every LD instruction loads data from ( I can get those addresses from the
> pushRequest method in the lsq)
> http://doxygen.gem5.org/release/current/classLSQ.html and saving those
> addresses in a table (map). After a specific time for example (every100k
> instructions), I want to access the memory to read the data from those
> addresses. For instance, let us assume that the address that load
> instruction loads data from it is (0x78226e68), can I read the content
> of this memory address? Also can I read the 256 bytes of this address (
> 0x78226e00-0x78226eff)? If so, how?
>
> Thanks
>
>
> --
> *From:* Jason Lowe-Power 
> *Sent:* Tuesday, August 4, 2020 4:41 PM
> *To:* ABD ALRHMAN ABO ALKHEEL ; gem5 users
> mailing list 
> *Subject:* Re: [gem5-users] Re: Reading from memory in Gem5
>
> Hello,
>
> First of all, please reply to the users list, not directly to the person
> who responded. This allows everyone to see answers and/or chime in and help.
>
> Second, the page you linked is out of date. Please use the main gem5
> website for all of the up to date documentation (e.g.,
> http://doxygen.gem5.org/release/current/classLSQUnit.html)
>
> Third, I still don't fully understand what your goals are. However, you
> can use the system port (actually, I think I was wrong before, you should
> use the "getPort" function, not "getSystemPort") to make functional (or
> debug) accesses to the memory. You can create a `Packet` with a `Request`
> and send a functional request across the port (i.e., call
> sendFunctional(pkt)). You can use either virtual (in SE mode) or physical
> address (in both modes). I am sure there are some caveats to using virtual
> addresses, but I don't know exactly what they are.
>
> If you're trying to make new timing accesses, then you should use the main
> "dcache_port" and "icache_port" that are connected to the CPU. Again, you
> can construct a Packet object with a Request and send it across the port
> (e.g., sendTimingReq(pkt)).
>
> You may want to read up on the details of how gem5's memory objects work:
> http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/
>
> Cheers,
> Jason
>
>
>
> On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL <
> abdkeel...@hotmail.com> wrote:
>
> Hi Jason,
>
> Thanks for your email.
>
> What I want to do is finding the memory address that the LD instruction
> loads data from ( I can get the physical and virtual address from the Read
> method in the lsqunit)
> http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and saving
> those addresses. After a specific time, I want to access the memory to read
> the data from those addresses. Can I use getSystemPort function to access
> the memory and read the data from those addresses? If so, should I use the
> virtual address or the physical address?
>
> Thanks
>
>
> --
> *From:* Jason Lowe-Power 
> *Sent:* Monday, August 3, 2020 3:26 PM
> *To:* gem5 users mailing list 
> *Cc:* gem5-users ; ABD ALRHMAN ABO ALKHEEL <
> abdkeel...@hotmail.com>
> *Subject:* Re: [gem5-users] Re: Reading from memory in Gem5
>
> Hello,
>
> This sounds like you probably want to use "functional" accesses. These are
> built for introspection and debugging, which is what it sounds like you
> want to do. Using the System object, there is a `getSystemPort`
> function that will return a gem5 port that you can use with functional
> accesses to "backdoor" into the memory. See
> http://doxygen.gem5.org/release/current/classSyste

[gem5-users] Re: Reading from memory in Gem5

2020-08-06 Thread ABD ALRHMAN ABO ALKHEEL via gem5-users
Hi Jason,

I want to clarify what I want to do; I want to run a program on gem5 (in SE 
mode) for 1M instructions and I want to save the memory addresses that every LD 
instruction loads data from ( I can get those addresses from the pushRequest 
method in the lsq) http://doxygen.gem5.org/release/current/classLSQ.html and 
saving those addresses in a table (map). After a specific time for example 
(every100k instructions), I want to access the memory to read the data from 
those addresses. For instance, let us assume that the address that load 
instruction loads data from it is (0x78226e68), can I read the content of 
this memory address? Also can I read the 256 bytes of this address 
(0x78226e00-0x78226eff)? If so, how?

Thanks



From: Jason Lowe-Power 
Sent: Tuesday, August 4, 2020 4:41 PM
To: ABD ALRHMAN ABO ALKHEEL ; gem5 users mailing list 

Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

First of all, please reply to the users list, not directly to the person who 
responded. This allows everyone to see answers and/or chime in and help.

Second, the page you linked is out of date. Please use the main gem5 website 
for all of the up to date documentation (e.g., 
http://doxygen.gem5.org/release/current/classLSQUnit.html)

Third, I still don't fully understand what your goals are. However, you can use 
the system port (actually, I think I was wrong before, you should use the 
"getPort" function, not "getSystemPort") to make functional (or debug) accesses 
to the memory. You can create a `Packet` with a `Request` and send a functional 
request across the port (i.e., call sendFunctional(pkt)). You can use either 
virtual (in SE mode) or physical address (in both modes). I am sure there are 
some caveats to using virtual addresses, but I don't know exactly what they are.

If you're trying to make new timing accesses, then you should use the main 
"dcache_port" and "icache_port" that are connected to the CPU. Again, you can 
construct a Packet object with a Request and send it across the port (e.g., 
sendTimingReq(pkt)).

You may want to read up on the details of how gem5's memory objects work: 
http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/

Cheers,
Jason



On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

Thanks for your email.

What I want to do is finding the memory address that the LD instruction loads 
data from ( I can get the physical and virtual address from the Read method in 
the lsqunit)http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and 
saving those addresses. After a specific time, I want to access the memory to 
read the data from those addresses. Can I use getSystemPort function to access 
the memory and read the data from those addresses? If so, should I use the 
virtual address or the physical address?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Monday, August 3, 2020 3:26 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: gem5-users 
mailto:gem5-users-boun...@gem5.org>>; ABD ALRHMAN 
ABO ALKHEEL mailto:abdkeel...@hotmail.com>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

This sounds like you probably want to use "functional" accesses. These are 
built for introspection and debugging, which is what it sounds like you want to 
do. Using the System object, there is a `getSystemPort` function that will 
return a gem5 port that you can use with functional accesses to "backdoor" into 
the memory. See 
http://doxygen.gem5.org/release/current/classSystem.html#a5ecbd1eaa3e0d19f4640bb71a0b59d64.

Cheers,
Jason

On Sun, Aug 2, 2020 at 7:01 AM ABD ALRHMAN ABO ALKHEEL via gem5-users 
mailto:gem5-users@gem5.org>> wrote:
Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks


From: ABD ALRHMAN ABO ALKHEEL
Sent: Saturday, August 1, 2020 3:19 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>; 
gem5-users mailto:gem5-users-boun...@gem5.org>>
Subject: Reading from memory in Gem5

Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks
___
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>
%(web_page_url)slistinfo%(cg

[gem5-users] Re: Reading from memory in Gem5

2020-08-05 Thread ABD ALRHMAN ABO ALKHEEL via gem5-users
Hi Jason,

I want to clarify what I want to do; I want to run a program on gem5 (in SE 
mode) for 1M instructions and I want to save the memory addresses that every LD 
instruction loads data from ( I can get those addresses from the pushRequest 
method in the lsq) http://doxygen.gem5.org/release/current/classLSQ.html and 
saving those addresses in table (map). After a specific time for example 
(every100k instructions), I want to access the memory to read the data from 
those addresses. For instance, let us assume that the address that load 
instruction loads data from it is (0x78226e68), can I read the content of 
this memory address? If so, how?

Thanks
gem5: Out of order CPU 
model<https://www.gem5.org/documentation/general_docs/cpu_models/O3CPU>
Memory Order Misspeculation. The InstructionQueue has a MemDepUnit to track 
memory order dependence. The IQ will not schedule an instruction if MemDepUnit 
states there is dependency. In LSQUnit::read(), the LSQ will search for 
possible aliasing store and forward if possible.Otherwise, the load is blocked 
and rescheduled for when the blocking store completes by notifying the 
MemDepUnit.
www.gem5.org


Thanks



From: Jason Lowe-Power 
Sent: Tuesday, August 4, 2020 4:41 PM
To: ABD ALRHMAN ABO ALKHEEL ; gem5 users mailing list 

Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

First of all, please reply to the users list, not directly to the person who 
responded. This allows everyone to see answers and/or chime in and help.

Second, the page you linked is out of date. Please use the main gem5 website 
for all of the up to date documentation (e.g., 
http://doxygen.gem5.org/release/current/classLSQUnit.html)

Third, I still don't fully understand what your goals are. However, you can use 
the system port (actually, I think I was wrong before, you should use the 
"getPort" function, not "getSystemPort") to make functional (or debug) accesses 
to the memory. You can create a `Packet` with a `Request` and send a functional 
request across the port (i.e., call sendFunctional(pkt)). You can use either 
virtual (in SE mode) or physical address (in both modes). I am sure there are 
some caveats to using virtual addresses, but I don't know exactly what they are.

If you're trying to make new timing accesses, then you should use the main 
"dcache_port" and "icache_port" that are connected to the CPU. Again, you can 
construct a Packet object with a Request and send it across the port (e.g., 
sendTimingReq(pkt)).

You may want to read up on the details of how gem5's memory objects work: 
http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/

Cheers,
Jason



On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

Thanks for your email.

What I want to do is finding the memory address that the LD instruction loads 
data from ( I can get the physical and virtual address from the Read method in 
the lsqunit)http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and 
saving those addresses. After a specific time, I want to access the memory to 
read the data from those addresses. Can I use getSystemPort function to access 
the memory and read the data from those addresses? If so, should I use the 
virtual address or the physical address?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Monday, August 3, 2020 3:26 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: gem5-users 
mailto:gem5-users-boun...@gem5.org>>; ABD ALRHMAN 
ABO ALKHEEL mailto:abdkeel...@hotmail.com>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

This sounds like you probably want to use "functional" accesses. These are 
built for introspection and debugging, which is what it sounds like you want to 
do. Using the System object, there is a `getSystemPort` function that will 
return a gem5 port that you can use with functional accesses to "backdoor" into 
the memory. See 
http://doxygen.gem5.org/release/current/classSystem.html#a5ecbd1eaa3e0d19f4640bb71a0b59d64.

Cheers,
Jason

On Sun, Aug 2, 2020 at 7:01 AM ABD ALRHMAN ABO ALKHEEL via gem5-users 
mailto:gem5-users@gem5.org>> wrote:
Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks


From: ABD ALRHMAN ABO ALKHEEL
Sent: Saturday, August 1, 2020 3:19 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>; 
gem5-users mailto:gem5-users-boun...@gem5.org>>
Subject: Reading from memory in Gem5

Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a sp

[gem5-users] Re: Reading from memory in Gem5

2020-08-04 Thread ABD ALRHMAN ABO ALKHEEL via gem5-users
Ok. Thank you very much for your email.


From: Jason Lowe-Power 
Sent: Tuesday, August 4, 2020 4:41 PM
To: ABD ALRHMAN ABO ALKHEEL ; gem5 users mailing list 

Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

First of all, please reply to the users list, not directly to the person who 
responded. This allows everyone to see answers and/or chime in and help.

Second, the page you linked is out of date. Please use the main gem5 website 
for all of the up to date documentation (e.g., 
http://doxygen.gem5.org/release/current/classLSQUnit.html)

Third, I still don't fully understand what your goals are. However, you can use 
the system port (actually, I think I was wrong before, you should use the 
"getPort" function, not "getSystemPort") to make functional (or debug) accesses 
to the memory. You can create a `Packet` with a `Request` and send a functional 
request across the port (i.e., call sendFunctional(pkt)). You can use either 
virtual (in SE mode) or physical address (in both modes). I am sure there are 
some caveats to using virtual addresses, but I don't know exactly what they are.

If you're trying to make new timing accesses, then you should use the main 
"dcache_port" and "icache_port" that are connected to the CPU. Again, you can 
construct a Packet object with a Request and send it across the port (e.g., 
sendTimingReq(pkt)).

You may want to read up on the details of how gem5's memory objects work: 
http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/

Cheers,
Jason



On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL 
mailto:abdkeel...@hotmail.com>> wrote:
Hi Jason,

Thanks for your email.

What I want to do is finding the memory address that the LD instruction loads 
data from ( I can get the physical and virtual address from the Read method in 
the lsqunit)http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and 
saving those addresses. After a specific time, I want to access the memory to 
read the data from those addresses. Can I use getSystemPort function to access 
the memory and read the data from those addresses? If so, should I use the 
virtual address or the physical address?

Thanks



From: Jason Lowe-Power mailto:ja...@lowepower.com>>
Sent: Monday, August 3, 2020 3:26 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: gem5-users 
mailto:gem5-users-boun...@gem5.org>>; ABD ALRHMAN 
ABO ALKHEEL mailto:abdkeel...@hotmail.com>>
Subject: Re: [gem5-users] Re: Reading from memory in Gem5

Hello,

This sounds like you probably want to use "functional" accesses. These are 
built for introspection and debugging, which is what it sounds like you want to 
do. Using the System object, there is a `getSystemPort` function that will 
return a gem5 port that you can use with functional accesses to "backdoor" into 
the memory. See 
http://doxygen.gem5.org/release/current/classSystem.html#a5ecbd1eaa3e0d19f4640bb71a0b59d64.

Cheers,
Jason

On Sun, Aug 2, 2020 at 7:01 AM ABD ALRHMAN ABO ALKHEEL via gem5-users 
mailto:gem5-users@gem5.org>> wrote:
Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks


From: ABD ALRHMAN ABO ALKHEEL
Sent: Saturday, August 1, 2020 3:19 PM
To: gem5 users mailing list mailto:gem5-users@gem5.org>>; 
gem5-users mailto:gem5-users-boun...@gem5.org>>
Subject: Reading from memory in Gem5

Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks
___
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>
%(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: Reading from memory in Gem5

2020-08-04 Thread Jason Lowe-Power via gem5-users
Hello,

First of all, please reply to the users list, not directly to the person
who responded. This allows everyone to see answers and/or chime in and help.

Second, the page you linked is out of date. Please use the main gem5
website for all of the up to date documentation (e.g.,
http://doxygen.gem5.org/release/current/classLSQUnit.html)

Third, I still don't fully understand what your goals are. However, you can
use the system port (actually, I think I was wrong before, you should use
the "getPort" function, not "getSystemPort") to make functional (or debug)
accesses to the memory. You can create a `Packet` with a `Request` and send
a functional request across the port (i.e., call sendFunctional(pkt)). You
can use either virtual (in SE mode) or physical address (in both modes). I
am sure there are some caveats to using virtual addresses, but I don't know
exactly what they are.

If you're trying to make new timing accesses, then you should use the main
"dcache_port" and "icache_port" that are connected to the CPU. Again, you
can construct a Packet object with a Request and send it across the port
(e.g., sendTimingReq(pkt)).

You may want to read up on the details of how gem5's memory objects work:
http://www.gem5.org/documentation/learning_gem5/part2/memoryobject/

Cheers,
Jason



On Mon, Aug 3, 2020 at 1:15 PM ABD ALRHMAN ABO ALKHEEL <
abdkeel...@hotmail.com> wrote:

> Hi Jason,
>
> Thanks for your email.
>
> What I want to do is finding the memory address that the LD instruction
> loads data from ( I can get the physical and virtual address from the Read
> method in the lsqunit)
> http://pages.cs.wisc.edu/~swilson/gem5-docs/classLSQUnit.html and saving
> those addresses. After a specific time, I want to access the memory to read
> the data from those addresses. Can I use getSystemPort function to access
> the memory and read the data from those addresses? If so, should I use the
> virtual address or the physical address?
>
> Thanks
>
>
> --
> *From:* Jason Lowe-Power 
> *Sent:* Monday, August 3, 2020 3:26 PM
> *To:* gem5 users mailing list 
> *Cc:* gem5-users ; ABD ALRHMAN ABO ALKHEEL <
> abdkeel...@hotmail.com>
> *Subject:* Re: [gem5-users] Re: Reading from memory in Gem5
>
> Hello,
>
> This sounds like you probably want to use "functional" accesses. These are
> built for introspection and debugging, which is what it sounds like you
> want to do. Using the System object, there is a `getSystemPort`
> function that will return a gem5 port that you can use with functional
> accesses to "backdoor" into the memory. See
> http://doxygen.gem5.org/release/current/classSystem.html#a5ecbd1eaa3e0d19f4640bb71a0b59d64
> .
>
> Cheers,
> Jason
>
> On Sun, Aug 2, 2020 at 7:01 AM ABD ALRHMAN ABO ALKHEEL via gem5-users <
> gem5-users@gem5.org> wrote:
>
> Hi All, how to read data from memory in Gem5 ? Can I read data from memory
> in Gem5  for a specific addresses? If so, should I use the virtual address
> or physical address? For example, how load instructions read the data from
> memory? Any help would be appreciated. Thanks
>
> --
> *From:* ABD ALRHMAN ABO ALKHEEL
> *Sent:* Saturday, August 1, 2020 3:19 PM
> *To:* gem5 users mailing list ; gem5-users <
> gem5-users-boun...@gem5.org>
> *Subject:* Reading from memory in Gem5
>
> Hi All, how to read data from memory in Gem5 ? Can I read data from memory
> in Gem5  for a specific addresses? If so, should I use the virtual address
> or physical address? For example, how load instructions read the data from
> memory? Any help would be appreciated. Thanks
> ___
> 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: Reading from memory in Gem5

2020-08-03 Thread Jason Lowe-Power via gem5-users
Hello,

This sounds like you probably want to use "functional" accesses. These are
built for introspection and debugging, which is what it sounds like you
want to do. Using the System object, there is a `getSystemPort`
function that will return a gem5 port that you can use with functional
accesses to "backdoor" into the memory. See
http://doxygen.gem5.org/release/current/classSystem.html#a5ecbd1eaa3e0d19f4640bb71a0b59d64
.

Cheers,
Jason

On Sun, Aug 2, 2020 at 7:01 AM ABD ALRHMAN ABO ALKHEEL via gem5-users <
gem5-users@gem5.org> wrote:

> Hi All, how to read data from memory in Gem5 ? Can I read data from memory
> in Gem5  for a specific addresses? If so, should I use the virtual address
> or physical address? For example, how load instructions read the data from
> memory? Any help would be appreciated. Thanks
>
> --
> *From:* ABD ALRHMAN ABO ALKHEEL
> *Sent:* Saturday, August 1, 2020 3:19 PM
> *To:* gem5 users mailing list ; gem5-users <
> gem5-users-boun...@gem5.org>
> *Subject:* Reading from memory in Gem5
>
> Hi All, how to read data from memory in Gem5 ? Can I read data from memory
> in Gem5  for a specific addresses? If so, should I use the virtual address
> or physical address? For example, how load instructions read the data from
> memory? Any help would be appreciated. Thanks
> ___
> 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: Reading from memory in Gem5

2020-08-02 Thread ABD ALRHMAN ABO ALKHEEL via gem5-users
Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks


From: ABD ALRHMAN ABO ALKHEEL
Sent: Saturday, August 1, 2020 3:19 PM
To: gem5 users mailing list ; gem5-users 

Subject: Reading from memory in Gem5

Hi All, how to read data from memory in Gem5 ? Can I read data from memory in 
Gem5  for a specific addresses? If so, should I use the virtual address or 
physical address? For example, how load instructions read the data from memory? 
Any help would be appreciated. Thanks
___
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