[gem5-users] Question on maximum number of outstanding DRAM memory requests that can be generated by a core.

2015-01-18 Thread Prathap Kolakkampadath via gem5-users
Hello Users,

Is the maximum number of outstanding DRAM memory requests that can be
generated by a core at a time is limited by number of MSHRs in its private
cache?

For example, In a 4 core system configuration,  each core has  a private L1
cache with 6 MSHRs each. The systems Last Level cache has 24 MSHRs, which
is shared by all the four cores. If a memory intensive program running core
0 generates many L2 data cache read request misses, then the number of
outstanding memory requests it can generate at a time is limited by number
of L1 MSHRs or L2 MSHRs?

Thanks and Regards,
Prathap Kumar Valsan
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Communication monitor is not connected on both sides

2015-01-18 Thread Azadeh Shirvanian via gem5-users
Dear all

I need to trace the address and the data exchanged between CPU and L1 data
cache - in SE mode on X86, classical memory - and I have modified the
CacheConfig.py to add CommMonitor in the following way:

After the line about setting the cache line size (system.cache_line_size =
options.cacheline_size) I have added these two lines:

system.icachemonitor = CommMonitor(trace_file='Icachecontent.ptrc')
system.dcachemonitor =
CommMonitor(trace_file='DCache_content.ptrc',trace_enable=True)

Then after:
if buildEnv['TARGET_ISA'] == 'x86':

I have commented this line:
system.cpu[i].addPrivateSplitL1Caches(icache, dcache,
PageTableWalkerCache(), PageTableWalkerCache())

and instead, inserted these three lines:
system.dcachemonitor.master = dcache.cpu_side
system.icachemonitor.master = icache.cpu_side
system.cpu[i].addPrivateSplitL1Caches(system.icachemonitor.slave,
system.dcachemonitor.slave,

PageTableWalkerCache(),

PageTableWalkerCache())

Then I have compiled using:
scons build/X86/gem5.opt

And then run:
build/X86/gem5.opt configs/example/se.py -c
tests/test-progs/hello/bin/x86/linux/hello

As a result, I get in CacheConfig.py a:
SyntaxWarning: Import * only allowed at module level
  def config_cache(options, system) :
fatal: Communication monitor is not connected on both sides
 @ tick 0
[init:build/X86/mem/comm_monitor.cc, line 144]
Memory Usage: 627592 KBytes
Program aborted at tick 0
Aborted (core dumped)

Then I saw in email threads that some people have modified BaseCPU.py, so
keeping the changes in CacheConfig.py, I tried that as well. In the
following section in BaseCPU.py:

def addPrivateSplitL1Caches(self, ic, dc, iwc = None, dwc = None):
self.icache = ic
self.dcache = dc
self.icache_port = ic.cpu_side

I commented the following line:
self.dcache_port = dc.cpu_side

and added these lines instead:
self.L1MONITOR = CommMonitor(trace_file=L1.txt)
self.dcache_port = self.L1MONITOR.slave
self.L1MONITOR.master = dc.cpu_side

After compiling and running in the same way as above, I do not get the
warning message anymore, but the fatal error still exists:
fatal: Communication monitor is not connected on both sides
 @ tick 0
[init:build/X86/mem/comm_monitor.cc, line 144]
Memory Usage: 627564 KBytes
Program aborted at tick 0
Aborted (core dumped)

Actually, it is not clear to me which file I should modify: BaseCPU.py or
CacheConfig.py or both. And I would really like to know how I can get rid
of this fatal error and finally see the trace.

I would appreciate any help.

Azadeh
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] Pause Resume Simulation

2015-01-18 Thread Bigel Hadi via gem5-users
Hi
English isn’t myfirst language, so please excuse any mistakes. I am trying to 
use theGEM5 to take stats.txt file and create file input for McPAT.

I use ARM multi-core architecture. I want to simulate multitask benchmark 
thatconcurrently runs on multi-core processor without scheduler algorithm(i.e., 
SEmode).

Based on my algorithm, i need to stop GEM5 simulation in each 
timeinterval(e.g., few millisecond that this time is execuation time of 
core(s)) and pass GEM5 result(stats.txt) to the McPAT powersimulator and 
compute power consumptions of each core individually.
Then after computation of power consumption, my algorithm 
changesfrequency-voltage setting of each core and passes this new setting to 
GEM5 andcontinue GEM5 simulation and repeat this steps for next time slot.  
Is this possible?
Best,
Hadi
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] interconnection network between l1 and l2

2015-01-18 Thread Hamid Reza Khaleghzadeh via gem5-users
Dear Jafari,

You are able to determine l2 nodes from other nodes by considering their
types. The type of l2 nodes are l2cache_controller.
Regards,
On Jan 18, 2015 8:37 PM, Bahareh Jafari via gem5-users 
gem5-users@gem5.org wrote:

 Hi

 I am implementing my topology ..
 in my topology ,each tile composed of CPU,Router, L1 and L2 cache memory .
  Now وhow do i implement connections between cache L1, L2 to the network
 and router interconnects that each node has its own CPU and caches?




 ___
 gem5-users mailing list
 gem5-users@gem5.org
 http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] Communication monitor is not connected on both sides

2015-01-18 Thread Andreas Hansson via gem5-users
Hi Azadeh,

It should not be too difficult. Besides adding '—caches' command line, here is 
all you have to do to trace the d-side. Note that the trace is in a binary 
format (and not ASCII).

Andreas

diff --git a/src/cpu/BaseCPU.py b/src/cpu/BaseCPU.py
--- a/src/cpu/BaseCPU.py
+++ b/src/cpu/BaseCPU.py
@@ -52,6 +52,7 @@
 from ExeTracer import ExeTracer
 from MemObject import MemObject
 from ClockDomain import *
+from CommMonitor import CommMonitor

 default_tracer = ExeTracer()

@@ -267,7 +268,9 @@
 self.icache = ic
 self.dcache = dc
 self.icache_port = ic.cpu_side
-self.dcache_port = dc.cpu_side
+self.dmon = CommMonitor(trace_enable=True)
+self.dcache_port = self.dmon.slave
+self.dmon.master = dc.cpu_side
 self._cached_ports = ['icache.mem_side', 'dcache.mem_side']
 if buildEnv['TARGET_ISA'] in ['x86', 'arm']:
 if iwc and dwc:


From: Azadeh Shirvanian via gem5-users 
gem5-users@gem5.orgmailto:gem5-users@gem5.org
Reply-To: Azadeh Shirvanian 
azadeh.shirvan...@gmail.commailto:azadeh.shirvan...@gmail.com, gem5 users 
mailing list gem5-users@gem5.orgmailto:gem5-users@gem5.org
Date: Sunday, 18 January 2015 14:46
To: gem5-users@gem5.orgmailto:gem5-users@gem5.org 
gem5-users@gem5.orgmailto:gem5-users@gem5.org
Subject: [gem5-users] Communication monitor is not connected on both sides

Dear all

I need to trace the address and the data exchanged between CPU and L1 data 
cache - in SE mode on X86, classical memory - and I have modified the 
CacheConfig.py to add CommMonitor in the following way:

After the line about setting the cache line size (system.cache_line_size = 
options.cacheline_size) I have added these two lines:

system.icachemonitor = CommMonitor(trace_file='Icachecontent.ptrc')
system.dcachemonitor = 
CommMonitor(trace_file='DCache_content.ptrc',trace_enable=True)

Then after:
if buildEnv['TARGET_ISA'] == 'x86':

I have commented this line:
system.cpu[i].addPrivateSplitL1Caches(icache, dcache, 
PageTableWalkerCache(), PageTableWalkerCache())

and instead, inserted these three lines:
system.dcachemonitor.master = dcache.cpu_side
system.icachemonitor.master = icache.cpu_side
system.cpu[i].addPrivateSplitL1Caches(system.icachemonitor.slave, 
system.dcachemonitor.slave,
  PageTableWalkerCache(),
  PageTableWalkerCache())

Then I have compiled using:
scons build/X86/gem5.opt

And then run:
build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello

As a result, I get in CacheConfig.py a:
SyntaxWarning: Import * only allowed at module level
  def config_cache(options, system) :
fatal: Communication monitor is not connected on both sides
 @ tick 0
[init:build/X86/mem/comm_monitor.cc, line 144]
Memory Usage: 627592 KBytes
Program aborted at tick 0
Aborted (core dumped)

Then I saw in email threads that some people have modified BaseCPU.py, so 
keeping the changes in CacheConfig.py, I tried that as well. In the following 
section in BaseCPU.py:

def addPrivateSplitL1Caches(self, ic, dc, iwc = None, dwc = None):
self.icache = ic
self.dcache = dc
self.icache_port = ic.cpu_side

I commented the following line:
self.dcache_port = dc.cpu_side

and added these lines instead:
self.L1MONITOR = CommMonitor(trace_file=L1.txt)
self.dcache_port = self.L1MONITOR.slave
self.L1MONITOR.master = dc.cpu_side

After compiling and running in the same way as above, I do not get the warning 
message anymore, but the fatal error still exists:
fatal: Communication monitor is not connected on both sides
 @ tick 0
[init:build/X86/mem/comm_monitor.cc, line 144]
Memory Usage: 627564 KBytes
Program aborted at tick 0
Aborted (core dumped)

Actually, it is not clear to me which file I should modify: BaseCPU.py or 
CacheConfig.py or both. And I would really like to know how I can get rid of 
this fatal error and finally see the trace.

I would appreciate any help.

Azadeh

-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England  Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England  Wales, Company No: 2548782
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users