Hello Users,

I figured out that the Gem5 implements fetch-on-write-miss policy.
On a write miss, allocateMissBuffer()  is called to allocate an MSHR ;
which send the timing request to bring this cache line.
Once the request is ready, in the response path, handleFill() is called,
which is responsible to insert the block in to the cache. While inserting,
if the replacing  victim block is dirty;a write back packet is generated
and is copied to write buffers.
After which satisfyCpuSideRequest() is called to write the data to the
newly assigned block and marks it as dirty.

Thanks,
Prathap






On Tue, Jul 21, 2015 at 11:21 AM, Prathap Kolakkampadath <
kvprat...@gmail.com> wrote:

> Hello Users,
>
> I am using classic memory system. What is the write miss policy
> implemented in Gem5?
> Looking at the code it looks like, gem5 implements
> *no-fetch-on-write-miss* policy; the access() inserts a block in cache,
> when the request is writeback and it misses the cache.
> However, when i run a test with bunch of write misses, i see equal number
> of reads and writes to DRAM memory. This could happen if the policy is
> *fetch-on-write-miss.* So far i couldn't figure this out. It would be
> great if someone can throw some pointers to understand this further.
>
> Thanks,
> Prathap
>
> On Mon, Jul 20, 2015 at 2:02 PM, Prathap Kolakkampadath <
> kvprat...@gmail.com> wrote:
>
>> Hello Users,
>>
>> I am running a test which generate write misses to LLC. I am looking at
>> the cache implementation code. What i understood is, write are treated as
>> write backs; on miss, write back commands allocate a new block in cache and
>> write the data into it and marks this block as dirty. When the dirty blocks
>> are replaced,these will be written in to write buffers.
>>
>> I have following questions on this:
>> 1) When i run the test which generates write misses, i see same number
>> of reads from memory as the number of writes. Does this mean, write backs
>> also fetches the cache-line from main memory?
>>
>> 2) When the blocks in write buffers will be  written to memory? Is it
>> written when the write buffers are full?
>>
>> It would be great if someone can help me in understanding this.
>>
>>
>> Thanks,
>> Prathap
>>
>>
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to