Ignore:
Timestamp:
Jul 18, 2014, 11:38:54 AM (10 years ago)
Author:
meunier
Message:
  • Added initialization to some components in order to avoid valgrind errors
  • Corrected two bugs which caused the simulations to be non-deterministic:
    • one in the memcache (possibly uninitialized paddr variable used for cache access, modifying LRU bits)
    • one in the run_simus.py script (replacing a file with an identical file in a hdd image does modify its size)
File:
1 edited

Legend:

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

    r740 r752  
    2929
    3030#include <cassert>
     31#include <signal.h>
     32
    3133#include "arithmetics.h"
    3234#include "../include/vci_cc_vcache_wrapper.h"
     
    11421144            // We register processor request
    11431145            r_icache_vaddr_save = m_ireq.addr;
     1146            paddr = (paddr_t) m_ireq.addr;
    11441147
    11451148            // sytematic itlb access (if activated)
     
    11571160                                            &tlb_set ); // unused
    11581161            }
    1159             else
    1160             {
    1161                 if (vci_param::N > 32)
    1162                 {
    1163                     paddr =  (paddr_t)m_ireq.addr |
    1164                             ((paddr_t)r_icache_paddr_ext.read() << 32);
    1165                 }
    1166                 else
    1167                 {
    1168                     paddr = (paddr_t)m_ireq.addr;
    1169                 }
     1162            else if (vci_param::N > 32)
     1163            {
     1164                paddr = paddr | ((paddr_t) r_icache_paddr_ext.read() << 32);
    11701165            }
    11711166
     
    22492244                      // updt_request, wbuf_request, wbuf_write_miss.
    22502245    {
    2251         paddr_t     paddr;                          // physical address
     2246        paddr_t     paddr;
    22522247        pte_info_t      tlb_flags;
    22532248        size_t          tlb_way;
     
    22672262
    22682263        // physical address computation : systematic DTLB access if activated)
     2264        paddr = (paddr_t) m_dreq.addr;
    22692265        if ( m_dreq.valid )
    22702266        {
     
    22832279            else                                    // identity mapping
    22842280            {
    2285                 paddr = (paddr_t)m_dreq.addr;
    22862281                // we take into account the paddr extension
    22872282                if (vci_param::N > 32)
     
    22932288        if ( r_mmu_mode.read() & DATA_CACHE_MASK)
    22942289        {
     2290
    22952291            if ( m_dreq.valid and r_dcache_updt_req.read() ) // read DIR and write DATA
    22962292            {
Note: See TracChangeset for help on using the changeset viewer.