Ignore:
Timestamp:
Aug 2, 2013, 3:17:15 PM (11 years ago)
Author:
joannou
Message:

Updated llsc memcache table interface for sw operation (now able to invalidate a range of addresses)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/generic_llsc_global_table/include/generic_llsc_global_table.h

    r382 r482  
    432432
    433433    ////////////////////////////////////////////////////////////////////////////
     434    /*
    434435    inline void sw(const addr_t ad)
    435436    //  This method checks if there is a valid registration for the given
     
    448449        //  If there is one, invalidate it
    449450        if(pos >= 0) r_val[pos] = false;
    450 
     451    }
     452    */
     453    inline void sw(const addr_t nline, unsigned int min, unsigned int max)
     454    //  This method checks if there is / are valid registration(s) for the given
     455    //  range and, in case of hit(s), invalidates the registration(s)
     456    {
     457        // increment the sw access counter (for stats)
     458        m_cpt_sw++;
     459        // hit range ?
     460        // YES
     461        //      inval registration(s)
     462        // NO
     463        //      nothing
     464
     465        // for every address in the given range ...
     466        for (unsigned int i = min; i <= max; i++)
     467        {
     468            //  Is there a registration for the given address ?
     469            int pos = hitAddr(nline + i * 4);
     470            //  If there is one, invalidate it
     471            if (pos >= 0)
     472            {
     473                r_val[pos] = false;
     474            }
     475        }
    451476    }
    452477
Note: See TracChangeset for help on using the changeset viewer.