Ignore:
Timestamp:
Mar 18, 2009, 11:36:26 PM (15 years ago)
Author:
rosiere
Message:

1) Stat_list : fix retire old and new register bug
2) Stat_list : remove read_counter and valid flag, because validation of destination is in retire step (not in commit step)
3) Model : add class Model (cf Morpheo.sim)
4) Allocation : alloc_interface_begin and alloc_interface_end to delete temporary array.
5) Script : add distexe.sh
6) Add Comparator, Multiplier, Divider. But this component are not implemented
7) Software : add Dhrystone

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src
Files:
3 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/src/Free_List_unit_allocation.cpp

    r109 r112  
    4949                                                         ,IN
    5050                                                         ,SOUTH,
    51                                                          "Generalist interface"
     51                                                         _("Generalist interface")
    5252#endif
    5353                                                         );
     
    5858    // ~~~~~[ interface : "pop" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5959     {
    60        ALLOC1_INTERFACE("pop", IN, NORTH, "New destination register", _param->_nb_pop);
     60       ALLOC1_INTERFACE_BEGIN("pop", IN, NORTH, _("New destination register"), _param->_nb_pop);
    6161
    6262       ALLOC1_VALACK_IN ( in_POP_VAL        ,VAL);
     
    6666       ALLOC1_SIGNAL_IN ( in_POP_SPR_VAL    ,"spr_val"    ,Tcontrol_t        ,1                             );
    6767       ALLOC1_SIGNAL_OUT(out_POP_SPR_NUM_REG,"spr_num_reg",Tspecial_address_t,_param->_size_special_register);
     68
     69       ALLOC1_INTERFACE_END(_param->_nb_pop);
    6870     }
    6971
    7072    // ~~~~~[ interface : "push_gpr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7173     {
    72        ALLOC1_INTERFACE("push_gpr", IN, NORTH, "General register free", _param->_nb_push);
     74       ALLOC1_INTERFACE_BEGIN("push_gpr", IN, NORTH, _("General register free"), _param->_nb_push);
    7375
    7476       ALLOC1_VALACK_IN ( in_PUSH_GPR_VAL    ,VAL);
    7577       ALLOC1_VALACK_OUT(out_PUSH_GPR_ACK    ,ACK);
    7678       ALLOC1_SIGNAL_IN ( in_PUSH_GPR_NUM_REG,"num_reg",Tgeneral_address_t,_param->_size_general_register);
     79
     80       ALLOC1_INTERFACE_END(_param->_nb_push);
    7781     }
    7882
    7983    // ~~~~~[ interface : "push_spr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    8084     {
    81        ALLOC1_INTERFACE("push_spr", IN, NORTH, "General register free", _param->_nb_push);
     85       ALLOC1_INTERFACE_BEGIN("push_spr", IN, NORTH, _("General register free"), _param->_nb_push);
    8286
    8387       ALLOC1_VALACK_IN ( in_PUSH_SPR_VAL    ,VAL);
    8488       ALLOC1_VALACK_OUT(out_PUSH_SPR_ACK    ,ACK);
    8589       ALLOC1_SIGNAL_IN ( in_PUSH_SPR_NUM_REG,"num_reg",Tspecial_address_t,_param->_size_special_register);
     90
     91       ALLOC1_INTERFACE_END(_param->_nb_push);
    8692     }
    8793
    8894     if (usage_is_set(_usage,USE_SYSTEMC))
    8995       {
    90      _gpr_list = new std::list<uint32_t> [_param->_nb_bank];
    91      _spr_list = new std::list<uint32_t> [_param->_nb_bank];
     96     ALLOC1(_gpr_list,std::list<uint32_t>,_param->_nb_bank);
     97     ALLOC1(_spr_list,std::list<uint32_t>,_param->_nb_bank);
    9298
    93      internal_POP_ACK       = new Tcontrol_t [_param->_nb_pop];
    94      internal_POP_GPR_BANK  = new uint32_t   [_param->_nb_pop];
    95      internal_POP_SPR_BANK  = new uint32_t   [_param->_nb_pop];
     99     ALLOC1(internal_POP_ACK      ,Tcontrol_t,_param->_nb_pop);
     100     ALLOC1(internal_POP_GPR_BANK ,uint32_t  ,_param->_nb_pop);
     101     ALLOC1(internal_POP_SPR_BANK ,uint32_t  ,_param->_nb_pop);
    96102
    97      internal_PUSH_GPR_ACK  = new Tcontrol_t [_param->_nb_push];
    98      internal_PUSH_SPR_ACK  = new Tcontrol_t [_param->_nb_push];
    99      internal_PUSH_GPR_BANK = new uint32_t   [_param->_nb_push];
    100      internal_PUSH_SPR_BANK = new uint32_t   [_param->_nb_push];
     103     ALLOC1(internal_PUSH_GPR_ACK ,Tcontrol_t,_param->_nb_push);
     104     ALLOC1(internal_PUSH_SPR_ACK ,Tcontrol_t,_param->_nb_push);
     105     ALLOC1(internal_PUSH_GPR_BANK,uint32_t  ,_param->_nb_push);
     106     ALLOC1(internal_PUSH_SPR_BANK,uint32_t  ,_param->_nb_push);
    101107       }
     108
    102109    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    103110    _priority_gpr = new generic::priority::Priority (_name+"_priority_gpr",
  • 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

    r109 r112  
    77
    88#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/include/Free_List_unit.h"
     9#include "Behavioural/include/Allocation.h"
    910
    1011namespace morpheo                    {
     
    2930        delete    in_NRESET;
    3031
    31         delete []  in_POP_VAL        ;
    32         delete [] out_POP_ACK        ;
    33         delete []  in_POP_GPR_VAL    ;
    34         delete [] out_POP_GPR_NUM_REG;
    35         delete []  in_POP_SPR_VAL    ;
    36         delete [] out_POP_SPR_NUM_REG;
     32        DELETE1_SIGNAL( in_POP_VAL         ,_param->_nb_pop,1);
     33        DELETE1_SIGNAL(out_POP_ACK         ,_param->_nb_pop,1);
     34        DELETE1_SIGNAL( in_POP_GPR_VAL     ,_param->_nb_pop,1                             );
     35        DELETE1_SIGNAL(out_POP_GPR_NUM_REG ,_param->_nb_pop,_param->_size_general_register);
     36        DELETE1_SIGNAL( in_POP_SPR_VAL     ,_param->_nb_pop,1                             );
     37        DELETE1_SIGNAL(out_POP_SPR_NUM_REG ,_param->_nb_pop,_param->_size_special_register);
    3738
    38         delete []  in_PUSH_GPR_VAL    ;
    39         delete [] out_PUSH_GPR_ACK    ;
    40         delete []  in_PUSH_GPR_NUM_REG;
     39        DELETE1_SIGNAL( in_PUSH_GPR_VAL    ,_param->_nb_push,1);
     40        DELETE1_SIGNAL(out_PUSH_GPR_ACK    ,_param->_nb_push,1);
     41        DELETE1_SIGNAL( in_PUSH_GPR_NUM_REG,_param->_nb_push,_param->_size_general_register);
    4142
    42         delete []  in_PUSH_SPR_VAL    ;
    43         delete [] out_PUSH_SPR_ACK    ;
    44         delete []  in_PUSH_SPR_NUM_REG;
     43        DELETE1_SIGNAL( in_PUSH_SPR_VAL    ,_param->_nb_push,1);
     44        DELETE1_SIGNAL(out_PUSH_SPR_ACK    ,_param->_nb_push,1);
     45        DELETE1_SIGNAL( in_PUSH_SPR_NUM_REG,_param->_nb_push,_param->_size_special_register);
    4546
    46         delete [] _gpr_list;
    47         delete [] _spr_list;
    48        
    49         delete [] internal_POP_ACK     ;
    50         delete [] internal_POP_GPR_BANK;
    51         delete [] internal_POP_SPR_BANK;
    52        
    53         delete [] internal_PUSH_GPR_ACK ;
    54         delete [] internal_PUSH_SPR_ACK ;
    55         delete [] internal_PUSH_GPR_BANK;
    56         delete [] internal_PUSH_SPR_BANK;
     47        DELETE1(_gpr_list             ,_param->_nb_bank);
     48        DELETE1(_spr_list             ,_param->_nb_bank);
     49
     50        DELETE1(internal_POP_ACK      ,_param->_nb_pop);
     51        DELETE1(internal_POP_GPR_BANK ,_param->_nb_pop);
     52        DELETE1(internal_POP_SPR_BANK ,_param->_nb_pop);
     53
     54        DELETE1(internal_PUSH_GPR_ACK ,_param->_nb_push);
     55        DELETE1(internal_PUSH_SPR_ACK ,_param->_nb_push);
     56        DELETE1(internal_PUSH_GPR_BANK,_param->_nb_push);
     57        DELETE1(internal_PUSH_SPR_BANK,_param->_nb_push);
    5758      }
    5859
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp

    r110 r112  
    5151
    5252#ifdef STATISTICS
    53               (*_stat_nb_inst_pop) ++;
     53              if (usage_is_set(_usage,USE_STATISTICS))
     54                (*_stat_nb_inst_pop) ++;
    5455#endif
    5556
     
    5758                {
    5859#ifdef STATISTICS
    59                   (*_stat_nb_inst_pop_gpr) ++;
     60                  if (usage_is_set(_usage,USE_STATISTICS))
     61                    (*_stat_nb_inst_pop_gpr) ++;
    6062#endif
    6163                  _gpr_list [internal_POP_GPR_BANK[i]].pop_front();
     
    6567                {
    6668#ifdef STATISTICS
    67                   (*_stat_nb_inst_pop_spr) ++;
     69                  if (usage_is_set(_usage,USE_STATISTICS))
     70                    (*_stat_nb_inst_pop_spr) ++;
    6871#endif
    6972                  _spr_list [internal_POP_SPR_BANK[i]].pop_front();
     
    8285
    8386#ifdef STATISTICS
    84               (*_stat_nb_inst_push_gpr) ++;
     87              if (usage_is_set(_usage,USE_STATISTICS))
     88                (*_stat_nb_inst_push_gpr) ++;
    8589#endif
    8690
     
    98102
    99103#ifdef STATISTICS
    100               (*_stat_nb_inst_push_spr) ++;
     104              if (usage_is_set(_usage,USE_STATISTICS))
     105                (*_stat_nb_inst_push_spr) ++;
    101106#endif
    102107
     
    105110
    106111#ifdef STATISTICS
    107           for (uint32_t i=0; i<_param->_nb_bank; ++i)
    108             {
     112        if (usage_is_set(_usage,USE_STATISTICS))
     113          for (uint32_t i=0; i<_param->_nb_bank; ++i)
     114            {
     115             
    109116              (*(_stat_bank_gpr_nb_elt [i])) += _gpr_list[i].size();
    110117              (*(_stat_bank_spr_nb_elt [i])) += _spr_list[i].size();
Note: See TracChangeset for help on using the changeset viewer.