Ignore:
Timestamp:
Jun 8, 2009, 10:43:30 PM (15 years ago)
Author:
rosiere
Message:

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/include/Free_List_unit.h

    r110 r123  
    9191  public    : SC_IN (Tspecial_address_t)   **  in_PUSH_SPR_NUM_REG;
    9292
     93    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     94#ifdef DEBUG_TEST
     95  public    : SC_OUT(uint32_t  )            * out_INFO_NB_GPR_FREE;
     96  public    : SC_OUT(uint32_t  )            * out_INFO_NB_SPR_FREE;
     97#endif
     98
    9399    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    94100  private   : generic::priority::Priority   * _priority_gpr;
     
    141147#ifdef SYSTEMC                                 
    142148  public  : void        transition                (void);
     149#ifdef DEBUG_TEST
     150  public  : void        genMoore                  (void);
     151#endif
    143152  public  : void        genMealy_pop              (void);
    144153  public  : void        genMealy_push_gpr         (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit.cpp

    r110 r123  
    3939    log_printf(FUNC,Free_List_unit,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Free_List_unit == true
    42     log_printf(INFO,Free_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Free_List_unit == true
     42//     log_printf(INFO,Free_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4343
    44     std::cout << *param << std::endl;
    45 #endif   
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Free_List_unit,FUNCTION,"Allocation");
     
    8585# endif   
    8686
     87#ifdef DEBUG_TEST
     88        log_printf(INFO,Free_List_unit,FUNCTION,"Method - genMoore");
     89
     90        SC_METHOD (genMoore);
     91        dont_initialize ();
     92        sensitive << (*(in_CLOCK)).neg();
     93       
     94# ifdef SYSTEMCASS_SPECIFIC
     95        // List dependency information
     96# endif   
     97#endif
    8798        log_printf(INFO,Free_List_unit,FUNCTION,"Method - genMealy_pop");
    8899
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_allocation.cpp

    r112 r123  
    9292     }
    9393
     94    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     95#ifdef DEBUG_TEST
     96     {
     97       ALLOC0_INTERFACE_BEGIN("info",OUT, NORTH, _("Information"));
     98
     99       ALLOC0_SIGNAL_OUT(out_INFO_NB_GPR_FREE,"nb_gpr_free",uint32_t,_param->_size_general_register+1);
     100       ALLOC0_SIGNAL_OUT(out_INFO_NB_SPR_FREE,"nb_spr_free",uint32_t,_param->_size_special_register+1);
     101
     102       ALLOC0_INTERFACE_END();
     103     }
     104#endif
     105
    94106     if (usage_is_set(_usage,USE_SYSTEMC))
    95107       {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_deallocation.cpp

    r112 r123  
    4545        DELETE1_SIGNAL( in_PUSH_SPR_NUM_REG,_param->_nb_push,_param->_size_special_register);
    4646
     47#ifdef DEBUG_TEST
     48        DELETE0_SIGNAL(out_INFO_NB_GPR_FREE,_param->_size_general_register+1);
     49        DELETE0_SIGNAL(out_INFO_NB_SPR_FREE,_param->_size_special_register+1);
     50#endif
     51
    4752        DELETE1(_gpr_list             ,_param->_nb_bank);
    4853        DELETE1(_spr_list             ,_param->_nb_bank);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_pop.cpp

    r109 r123  
    2626    log_function(Free_List_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    std::list<generic::priority::select_t> * select_gpr = _priority_gpr->select();
    2931    std::list<generic::priority::select_t>::iterator it_gpr=select_gpr->begin();
     
    3234    std::list<generic::priority::select_t>::iterator it_spr=select_spr->begin();
    3335
    34     for (uint32_t i=0; i<_param->_nb_pop; i++)
     36     for (uint32_t i=0; i<_param->_nb_pop; i++)
    3537      {
    3638        log_printf(TRACE,Free_List_unit,FUNCTION,"  * POP [%d]",i);
     
    104106
    105107        internal_POP_ACK [i] = gpr_ack and spr_ack;
    106         PORT_WRITE(out_POP_ACK [i], internal_POP_ACK [i]);
    107108      }
    108109
     
    177178//      PORT_WRITE(out_POP_ACK [i], internal_POP_ACK [i]);
    178179//       }
    179    
     180      }   
     181    else
     182      {
     183        for (uint32_t i=0; i<_param->_nb_pop; i++)
     184          internal_POP_ACK [i] = 0;
     185      }
     186
     187    for (uint32_t i=0; i<_param->_nb_pop; i++)
     188      PORT_WRITE(out_POP_ACK [i], internal_POP_ACK [i]);
     189
    180190
    181191    log_end(Free_List_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_push_gpr.cpp

    r108 r123  
    2626    log_function(Free_List_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    // bank conflit
    2931    bool bank_use [_param->_nb_bank];
     
    5961
    6062        internal_PUSH_GPR_ACK [i] = gpr_ack;
    61         PORT_WRITE(out_PUSH_GPR_ACK [i], internal_PUSH_GPR_ACK [i]);
    6263      }
     64      }
     65    else
     66      {
     67        for (uint32_t i=0; i<_param->_nb_push; i++)
     68          internal_PUSH_GPR_ACK [i] = 0;
     69      }
     70
     71    for (uint32_t i=0; i<_param->_nb_push; i++)
     72      PORT_WRITE(out_PUSH_GPR_ACK [i], internal_PUSH_GPR_ACK [i]);
    6373   
    6474    log_end(Free_List_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_push_spr.cpp

    r108 r123  
    2626    log_function(Free_List_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    bool bank_use [_param->_nb_bank];
    2931    for (uint32_t i=0; i<_param->_nb_bank; i++)
     
    5153
    5254        internal_PUSH_SPR_ACK [i] = spr_ack;
    53         PORT_WRITE(out_PUSH_SPR_ACK [i], internal_PUSH_SPR_ACK [i]);
    5455      }
    55    
     56      }
     57    else
     58      {
     59        for (uint32_t i=0; i<_param->_nb_push; i++)
     60          internal_PUSH_SPR_ACK [i] = 0;
     61      }
     62
     63    for (uint32_t i=0; i<_param->_nb_push; i++)
     64      PORT_WRITE(out_PUSH_SPR_ACK [i], internal_PUSH_SPR_ACK [i]);
     65
    5666    log_end(Free_List_unit,FUNCTION);
    5767  };
Note: See TracChangeset for help on using the changeset viewer.