Re: [Gems-users] (no subject)


Date: Fri, 6 Jun 2008 14:08:57 -0500
From: "Mike Marty" <mike.marty@xxxxxxxxx>
Subject: Re: [Gems-users] (no subject)
There are several ways to implement that.  You can add something to
getState() that returns a new "busy" state if the entire cache bank is
busy.  If a request reaches a busy cache, then it is stalled or
recycled.  One possible thing to watch out for is starvation of
stalling incoming forward/invalidate messages.  To leave the busy
state, you can schedule a wakeup to occur XX cycles later to unset the
busy variable.  You can use TimerTable for this.  Grep for
"TimerTable" in the protocols directory to look for examples.

I've also seen an implementation where the CacheMemory had added
functions to set the bank as busy.  The actions for an incoming
message would then call "check_allocate(L2cacheMemory)" which would
automatically abort the event trigger if the bank was busy.  This way,
extra states didn't need to be added.

--Mike


On Thu, Jun 5, 2008 at 9:38 PM, Chandru Velayutham
<velayucu@xxxxxxxxxxxx> wrote:
>
> Thanks for the reply Mike.
>
> What I am interested is , I would like to have L2 Cache access once in every USER_CONTROLLED no of cycles. But as of now , I believe ruby allows multiple accesses per ruby cycle for L2 ( MSI_MOSI protocol ) . Is there anyway I could implement that in ruby ??
>
> If you have any suggestion, it will be really helpful.
> Chandru V
> Computer Engg Graduate Student
> University of Cincinnati
> Ph: (513)-295-8308
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
>
>
[← Prev in Thread] Current Thread [Next in Thread→]