Hello Everyone,

I am trying to simulate D-cache with one target per mshr, I tried changing
the parameter "tgts_per_mshr" defined in "configs/common/Caches.py"  to 1,
it does not work.

This is because when we allocate target for existing MSHR, we always check
the  "tgts_per_mshr" parameter after allocating the second target and
blocks the requests coming from LSQ.

I tried copying the blocking target code to an allocateMissBuffer function
defined and declared in "src/mem/cache/base.hh" as:


*BEFORE*:

    MSHR *allocateMissBuffer(PacketPtr pkt, Tick time, bool sched_send =
true)

    {

        MSHR *mshr = mshrQueue.allocate(pkt->getBlockAddr(blkSize), blkSize,

                                        pkt, time, order++,

                                        allocOnFill(pkt->cmd));


        if (mshrQueue.isFull()) {

            setBlocked((BlockedCause)MSHRQueue_MSHRs);

        }


        if (sched_send) {

            // schedule the send

            schedMemSideSendEvent(time);

        }


        return mshr;

    }



*AFTER:*


    MSHR *allocateMissBuffer(PacketPtr pkt, Tick time, bool sched_send =
true)

    {

        MSHR *mshr = mshrQueue.allocate(pkt->getBlockAddr(blkSize), blkSize,

                                        pkt, time, order++,

                                        allocOnFill(pkt->cmd));


        if (mshrQueue.isFull()) {

            setBlocked((BlockedCause)MSHRQueue_MSHRs);

        }


*        if (mshr->getNumTargets() == numTarget) {*



*            //cout << "Blocked: " << name() << endl;*

*            noTargetMSHR = mshr;*

*            setBlocked(Blocked_NoTargets);*

*        }*


        if (sched_send) {

            // schedule the send

            schedMemSideSendEvent(time);

        }


        return mshr;

    }

I also change the "tgts_per_mshr" defined in "configs/common/Caches.py" to
1.

But simulation goes into an infinite loop and does not end.

Does anyone have the technique to create Blocking caches with 1 target per
MSHR entry?



Best regards,

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

Reply via email to