I'm sorry that I could not reply you sooner.
Second question is how can I get write value to block only in L2cache.
I think HandleFill() include write to block in L1 and L2 cache.

I add DPRINTF to HandleFill() in cache_imple.hh to get write value by HandleFill().

     DPRINTF(Cache,"data_by_HandlFill():%x\n",*(pkt->getPtr<uint8_t>()));

result show that handleFill write value in L1(icache) and L2cache.
result is following
command line: ../build/ALPHA_SE/m5.opt --trace-flags=Cache -d output ../configs/splash2/run.py -n 8 -b Cholesky --l2shared --l1size=32kB --l1assoc=2 --l1latency=1 --l2size=1024kB --l2assoc=8 --l2latency=12
Global frequency set at 1000000000000 ticks per second
      0: system.cpu6.icache: ReadReq 1e840 miss
    500: system.l2cache: ReadReq 1e840 miss
 156500: system.l2cache: Handling response to 1e840
 156500: system.l2cache: Block for addr 1e840 being updated in Cache
 156500: system.l2cache: Block addr 1e840 moving from state 0 to 7
 156500: system.l2cache: *_data_by_handleFill:f0_*
 168000: system.cpu6.icache: Handling response to 1e840
 168000: system.cpu6.icache: Block for addr 1e840 being updated in Cache
 168000: system.cpu6.icache: Block addr 1e840 moving from state 0 to 5
 168000: system.cpu6.icache: *_data_by_handleFill:f0_*
 169500: system.cpu6.icache: ReadReq 1e844 hit
 170000: system.cpu6.icache: ReadReq 1e844 hit
 170500: system.cpu6.dcache: WriteReq e1ff8 miss
 171000: system.l2cache: ReadExReq e1fc0 miss
 327000: system.l2cache: Handling response to e1fc0
 327000: system.l2cache: Block for addr e1fc0 being updated in Cache
 327000: system.l2cache: Block addr e1fc0 moving from state 0 to 7
 327000: system.l2cache: _*data_by_handle Fill:0
*_
(2010/12/03 21:34), zhanglunkai wrote:
For the first question,
Access()'s memcpy is for WriteBXK data, these are data evicted from higher 
level caches.
HandleFill()'s memcpy is for ReadReq(or ReadExReq) data, these data are from 
lower level caches (or memory).

For the second question,
I don't quite understand what you mean by "write data to cache" ... 
conventional caches are not changed the content of its storage. It can only store these 
data.

-----邮件原件-----
发件人: [email protected] [mailto:[email protected]] 代表 Oka 
Keitarou
发送时间: 2010年12月3日星期五 20:10
收件人: [email protected]
主题: Re: [m5-users] How to get write block data

Thank you for reply.

I looked at access() and handleFill() in cache_impl.hh,and I had two
quetions.

Fisrt,I didn't understand difference between access() and handleFill().
Shoud I have to insert "DPRINTF" both of access() and handleFill()?

Second,how can I pick out write data to only L2cache?
I think these functions include write to both of L1cache and L2cache.

Thanks
oka
---------------------------------------------------------------------

zhanglunkai
Thu, 02 Dec 2010 23:50:35 -0800

Look at access() and handleFill() functions in cache_impl.hh.

Both of these two functions use memcpy to write data to L2 cache.

-----邮件原件-----
发件人: [email protected] [mailto:[email protected]] 代表
Oka Keitarou
发送时间: 2010年12月3日星期五 12:03
收件人: [email protected]
主题: [m5-users] How to get write block data to L2 cache

Hi,

I'd like to get the information of write block data to L2 cache.

I found in srm/mem/cache/cache_impl.hh that "pkt->getPtr<uint8_t>" is
pointer to data.
so I want to add like following code.
DPRINTF(Cache,"L2blkdata%x",*(pkt->getPtr<uint8_t>()))
However I can't find where pkt is written to L2 cache.
Could you tell me how can I get block data to L2 cache?

thanks
oka

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to