Hello Andreas

Thanks a lot. That helped a lot. I implemented the configuration matching
my requirement.

Just one clarification needed. So in the access template in cache_impl.hh I
inserted the following logic:
-----------------------------------------------------------------------------------------------------------------------------------------------------
 if (pkt->req->masterId() == 12 && !isTopLevel)
        {
            pkt->req->setFlags(Request::UNCACHEABLE);
            DPRINTF(Cache, "Davesh: Uncacheable set for Master id is %d\n",
pkt->req->masterId());
        }
-----------------------------------------------------------------------------------------------------------------------------------------------------
ᐧ
What I am expecting is that whenever request comes from L1 cache with
master id 12, then that request will be uncacheable in L2, i.e. it won't be
allocated a cache line. Is my assumption correct.
Is this what uncacheable does?

And do I need to make these changes other places too i.e. should I make
these request uncacheable everywhere isUncacheable is being checked?

Thanks for your time.


-- 
Have a great day!

Thanks and Warm Regards
Davesh Shingari
Master's in Computer Engineering [EE]
Arizona State University

[email protected]


On Wed, Apr 15, 2015 at 5:49 PM, Andreas Hansson <[email protected]>
wrote:

>  Hi Davesh,
>
>  All the classic memory system cache source files are in src/mem/caches,
> and this is also where you can see how the coherency protocol is
> implemented.
>
>  Andreas
>
>   From: Davesh Shingari <[email protected]>
> Reply-To: gem5 users mailing list <[email protected]>
> Date: Thursday, 16 April 2015 01:24
>
> To: gem5 users mailing list <[email protected]>
> Subject: Re: [gem5-users] ARM - Cache Coherence Protocol
>
>  Hello Andreas
>
>  Thanks for the reply. It makes much more sense now. Just one
> clarification.
>
>  If I understand clearly then you mean that mentioning of PROTOCOL is
> irrelevant, but then how come MOESI gets selected (as you said Classic
> memory model uses it, which file is associated with it). So if I change the
> MOESI protocol files in src/mem/protocol, then the changes won't have any
> effect. Right?
> Can you please tell the file which implements MOESI protocol for ARM
> system.
>
>  The reason I am asking is that I am confused because you say:
> "With ARM you should use the classic memory system (in some
> configuration), and thus a MOESI protocol."
> " Since you are not using Ruby the PROTOCOL is irrelevant"
> So I am confused whether MOSEI is used or not? If yes, then which
> associated files implements that, because in build directory I can't see
> any MOESI file.
>
>  Thanks a lot for your time.
>
> On Wed, Apr 15, 2015 at 5:03 PM, Andreas Hansson <[email protected]>
> wrote:
>
>>  Q1 Since you are not using Ruby the PROTOCOL is irrelevant
>>
>>  Q2 As with all gem5 objects there is a Python class (BaseCache.py)
>> instance created. Check out CacheConfig.py and the other config scripts.
>>
>>  Q3 I’d suggest to make them uncacheable based on masterId. Note that
>> you need the non-stable gem5 repo to support snooping for uncacheable
>> accesses.
>>
>>  Q4 The build/ directory contains all the built files.
>>
>>  Andreas
>>
>>   From: Davesh Shingari <[email protected]>
>> Reply-To: gem5 users mailing list <[email protected]>
>> Date: Thursday, 16 April 2015 00:52
>> To: gem5 users mailing list <[email protected]>
>> Subject: Re: [gem5-users] ARM - Cache Coherence Protocol
>>
>>  Hello Andreas
>>
>>  Thanks a lot for prompt reply. Sorry for long list of questions. Please
>> help me in the following related doubts:
>>
>>  Q.1
>> For building gem5.opt do we need to provide some specific arguments. I
>> mean that right now by default when I built gem5.opt the default
>> configuration in build_opts/ARM is as follows:
>>  TARGET_ISA = 'arm'
>> CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,MinorCPU'
>> *PROTOCOL = 'MI_example'*
>>  Do I need to change it to PROTOCOL = 'MOESI_CMP_directory' or PROTOCOL
>> = 'MOESI_CMP_token' ?
>>
>>  The reason is that when I built it by default configuration and run the
>> simulation, then in the
>> directory gem5-stable/build/ARM/mem/protocol/L1Cache_Controller.cc file , I
>> see all the transitions associated with MI_example protocol.
>>
>>  Q.2
>> From where does L2 cache gets created. When I ran the gem5.opt for ARM
>> with specification of "--caches --l2cache", I could see in config.ini that
>> L2cache was created, but I am confused how was it created as in which file
>> was involved. It will be highly appreciated if you could point out which
>> file does that task:
>>
>>  gem5-stable/src/mem/simple_mem.cc
>>
>>  gem5-stable/src/mem/cache/base.cc & cache.cc
>>
>>  I am assuming that /src/mem/ruby/structures/Cache_Memory.cc won't be
>> used for sure as it doesn't use Ruby.
>>
>>  Q.3
>> Can you give any suggestion on how can we bypass request from a L1 cache
>> of a specific processor directly to main memory bypassing L2. I mean
>> suggestion on which file to look for. In x86 system we could have used
>> MachineId to know the requestor and in allocateCacheblock could have
>> bypassed the allocation on basis of l1cache id. Can you provide some
>> pointers in ARM?
>>
>>  Q.4 (Not that important)
>> Is there a way to know that the specific file is compiled for the
>> gem5.opt (I know debugger and logs can be used, but is looking into
>> build/ARM/ directory enought to draw conclusions that a file was compiled)
>>
>>
>>
>> On Wed, Apr 15, 2015 at 4:31 PM, Andreas Hansson <[email protected]
>> > wrote:
>>
>>>  Hi Davesh,
>>>
>>>  With ARM you should use the classic memory system (in some
>>> configuration), and thus a MOESI protocol. There is no need to use Ruby.
>>>
>>>  The cache and crossbar models in the classic memory system provide a
>>> very flexible set of components that you can use to build a wide range of
>>> on-chip memory systems.
>>>
>>>  Andreas
>>>
>>>   From: Davesh Shingari <[email protected]>
>>> Reply-To: gem5 users mailing list <[email protected]>
>>> Date: Wednesday, 15 April 2015 23:45
>>> To: gem5 users mailing list <[email protected]>
>>> Subject: [gem5-users] ARM - Cache Coherence Protocol
>>>
>>>  Hi
>>>
>>>  In the ARM FS simulation which cache coherence model is used. When I
>>> look at the build_opts/ARM, then I can see Protocol as MI_example. If that
>>> is the one used then how come 2 level cache hierarchy is implemented
>>> (because the MI example has 1 level cache hierarchy)?
>>>
>>>  And ARM uses Classic Memory Model instead of Ruby. If yes, then
>>> doesn't it then implements MOESI protocol. if no, then is Ruby supported?
>>>
>>>  --
>>>  Have a great day!
>>>
>>>  Thanks and Warm Regards
>>> Davesh Shingari
>>> Master's in Computer Engineering [EE]
>>> Arizona State University
>>>
>>>  [email protected]
>>>
>>> -- 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
>>> [email protected]
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>
>>
>>
>>  --
>>  Have a great day!
>>
>>  Thanks and Warm Regards
>> Davesh Shingari
>> Master's in Computer Engineering [EE]
>> Arizona State University
>>
>>  [email protected]
>>
>> -- 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
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
>
>  --
>  Have a great day!
>
>  Thanks and Warm Regards
> Davesh Shingari
> Master's in Computer Engineering [EE]
> Arizona State University
>
>  [email protected]
>
> -- 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
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to