Ignore:
Timestamp:
Dec 19, 2014, 4:17:17 PM (10 years ago)
Author:
meunier
Message:

Trunk :

  • Fixing a bug in the computation of the write cost and SC cost in vci_mem_cache
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp

    r891 r908  
    678678        uint8_t req_y = (req_srcid >> (srcid_width - m_x_width - m_y_width)) & ((1 << m_y_width) - 1);
    679679
    680         return abs(m_x_self - req_x) + abs(m_y_self - req_y);
     680        return abs(m_x_self - req_x) + abs(m_y_self - req_y) + 1;
    681681    }
    682682
     
    686686    /////////////////////////////////////////////////////
    687687    {
    688         return req_distance(req_srcid) == 0;
     688        return req_distance(req_srcid) == 1;
    689689    }
    690690
     
    17261726                    cmd_write_fifo_put = true;
    17271727                    // <Activity counters>
    1728                     if (p_vci_tgt.cmd.read() == vci_param_int::CMD_NOP)
    1729                     {
    1730                         // (2 (CMD) + 1 (RSP)) flits VCI => 4 + (1 (success) || 2 (failure)) flits dspin
    1731                         m_cpt_sc_cost += 5 * req_distance(p_vci_tgt.srcid.read());
    1732                     }
    1733                     else {
     1728                    if (p_vci_tgt.cmd.read() != vci_param_int::CMD_NOP) {
    17341729                        if (is_local_req(p_vci_tgt.srcid.read()))
    17351730                        {
     
    17401735                            m_cpt_write_flits_remote++;
    17411736                        }
    1742                         // (burst_size (CMD) + 1 (RSP) flits VCI => 2 + burst_size + 1 flits dspin
    1743                         m_cpt_write_cost += (3 + (plen >> 2)) * req_distance(p_vci_tgt.srcid.read());
    17441737                    }
    17451738                    // </Activity counters>
     
    17501743                        if (p_vci_tgt.cmd.read() == vci_param_int::CMD_NOP)
    17511744                        {
     1745                            // SC
     1746                            // (2 (CMD) + 1 (RSP)) flits VCI => 4 + (1 (success) || 2 (failure)) flits dspin
     1747                            m_cpt_sc_cost += 5 * req_distance(p_vci_tgt.srcid.read());
    17521748                            if (is_local_req(p_vci_tgt.srcid.read()))
    17531749                            {
     
    17601756                        }
    17611757                        else {
     1758                            // Writes
     1759                            // (burst_size + 1 (CMD) + 1 (RSP)) flits VCI => 2 + burst_size + 1 flits dspin
     1760                            m_cpt_write_cost += (3 + (plen >> 2)) * req_distance(p_vci_tgt.srcid.read());
     1761
    17621762                            if (is_local_req(p_vci_tgt.srcid.read()))
    17631763                            {
Note: See TracChangeset for help on using the changeset viewer.