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_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_allocation.cpp

    r100 r112  
    4646                                                         ,IN
    4747                                                         ,SOUTH,
    48                                                          "Generalist interface"
     48                                                         _("Generalist interface")
    4949#endif
    5050                                                         );
     
    5656    // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5757    {
    58       ALLOC1_INTERFACE("predict", IN, SOUTH, "predict's interface", _param->_nb_inst_predict);
     58      ALLOC1_INTERFACE_BEGIN("predict", IN, SOUTH, _("predict's interface"), _param->_nb_inst_predict);
    5959
    6060      ALLOC1_VALACK_IN ( in_PREDICT_VAL         ,VAL);
     
    6666      ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_POP ,"address_pop" ,Taddress_t,_param->_size_instruction_address);
    6767      ALLOC1_SIGNAL_OUT(out_PREDICT_INDEX       ,"index"       ,Tptr_t    ,_param->_size_index);
     68
     69      ALLOC1_INTERFACE_END(_param->_nb_inst_predict);
    6870    }
    6971
    7072    // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7173    {
    72       ALLOC1_INTERFACE("decod", IN, SOUTH, "decod's interface", _param->_nb_inst_decod);
     74      ALLOC1_INTERFACE_BEGIN("decod", IN, SOUTH, _("decod's interface"), _param->_nb_inst_decod);
    7375
    7476      ALLOC1_VALACK_IN ( in_DECOD_VAL            ,VAL);
     
    8183      ALLOC1_SIGNAL_OUT(out_DECOD_INDEX          ,"index"          ,Tptr_t    ,_param->_size_index);
    8284      ALLOC1_SIGNAL_IN ( in_DECOD_MISS_PREDICTION,"miss_prediction",Tcontrol_t,1);
     85
     86      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
    8387    }
    8488
    8589    // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    8690    {
    87       ALLOC1_INTERFACE("update", IN, SOUTH, "update's interface", _param->_nb_inst_update);
     91      ALLOC1_INTERFACE_BEGIN("update", IN, SOUTH, _("update's interface"), _param->_nb_inst_update);
    8892
    8993      ALLOC1_VALACK_IN ( in_UPDATE_VAL              ,VAL);
     
    96100      ALLOC1_SIGNAL_IN ( in_UPDATE_MISS_PREDICTION  ,"miss_prediction"  ,Tcontrol_t,1);
    97101      ALLOC1_SIGNAL_IN ( in_UPDATE_PREDICTION_IFETCH,"prediction_ifetch",Tcontrol_t,1);
     102
     103      ALLOC1_INTERFACE_END(_param->_nb_inst_update);
    98104    }
    99105
     
    101107      {
    102108    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     109        ALLOC2(reg_stack            ,ras_entry_t,_param->_nb_context,_param->_size_queue [it1]);
    103110
    104     reg_stack = new ras_entry_t * [_param->_nb_context];
    105     for (uint32_t i=0; i<_param->_nb_context; i++)
    106       reg_stack [i] = new ras_entry_t [_param->_size_queue [i]];
     111        ALLOC1(reg_TOP              ,Tptr_t     ,_param->_nb_context);
     112//      ALLOC1(reg_BOTTOM           ,Tptr_t     ,_param->_nb_context);
     113        ALLOC1(reg_NB_ELT           ,Tptr_t     ,_param->_nb_context);
    107114
    108     reg_TOP              = new Tptr_t     [_param->_nb_context];
    109 //  reg_BOTTOM           = new Tptr_t     [_param->_nb_context];
    110     reg_NB_ELT           = new Tptr_t     [_param->_nb_context];
     115        ALLOC1(reg_PREDICT_TOP      ,Tptr_t     ,_param->_nb_context);
     116//      ALLOC1(reg_PREDICT_BOTTOM   ,Tptr_t     ,_param->_nb_context);
     117        ALLOC1(reg_PREDICT_NB_ELT   ,Tptr_t     ,_param->_nb_context);
    111118
    112     reg_PREDICT_TOP      = new Tptr_t     [_param->_nb_context];
    113 //  reg_PREDICT_BOTTOM   = new Tptr_t     [_param->_nb_context];
    114     reg_PREDICT_NB_ELT   = new Tptr_t     [_param->_nb_context];
    115 
    116     internal_PREDICT_ACK = new Tcontrol_t [_param->_nb_inst_predict];
    117     internal_PREDICT_HIT = new Tcontrol_t [_param->_nb_inst_predict];
    118     internal_DECOD_ACK   = new Tcontrol_t [_param->_nb_inst_decod  ];
    119     internal_DECOD_HIT   = new Tcontrol_t [_param->_nb_inst_decod  ];
    120     internal_UPDATE_ACK  = new Tcontrol_t [_param->_nb_inst_update ];
     119        ALLOC1(internal_PREDICT_ACK ,Tcontrol_t ,_param->_nb_inst_predict);
     120        ALLOC1(internal_PREDICT_HIT ,Tcontrol_t ,_param->_nb_inst_predict);
     121        ALLOC1(internal_DECOD_ACK   ,Tcontrol_t ,_param->_nb_inst_decod  );
     122        ALLOC1(internal_DECOD_HIT   ,Tcontrol_t ,_param->_nb_inst_decod  );
     123        ALLOC1(internal_UPDATE_ACK  ,Tcontrol_t ,_param->_nb_inst_update );
    121124      }
    122125
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_deallocation.cpp

    r100 r112  
    5959       
    6060        // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    61        
    62         for (uint32_t i=0; i<_param->_nb_context; i++)
    63           delete [] reg_stack [i];
    64         delete [] reg_stack;
    65         delete [] reg_TOP;
    66 //      delete [] reg_BOTTOM;
    67         delete [] reg_NB_ELT;
    68         delete [] reg_PREDICT_TOP;
    69 //      delete [] reg_PREDICT_BOTTOM;
    70         delete [] reg_PREDICT_NB_ELT;
    71        
    72         delete [] internal_PREDICT_ACK;
    73         delete [] internal_PREDICT_HIT;
    74         delete [] internal_DECOD_ACK;
    75         delete [] internal_DECOD_HIT;
    76         delete [] internal_UPDATE_ACK;
     61        DELETE2(reg_stack            ,_param->_nb_context,_param->_size_queue [it1]);
     62
     63        DELETE1(reg_TOP              ,_param->_nb_context);
     64//      DELETE1(reg_BOTTOM           ,_param->_nb_context);
     65        DELETE1(reg_NB_ELT           ,_param->_nb_context);
     66
     67        DELETE1(reg_PREDICT_TOP      ,_param->_nb_context);
     68//      DELETE1(reg_PREDICT_BOTTOM   ,_param->_nb_context);
     69        DELETE1(reg_PREDICT_NB_ELT   ,_param->_nb_context);
     70
     71        DELETE1(internal_PREDICT_ACK ,_param->_nb_inst_predict);
     72        DELETE1(internal_PREDICT_HIT ,_param->_nb_inst_predict);
     73        DELETE1(internal_DECOD_ACK   ,_param->_nb_inst_decod  );
     74        DELETE1(internal_DECOD_HIT   ,_param->_nb_inst_decod  );
     75        DELETE1(internal_UPDATE_ACK  ,_param->_nb_inst_update );
    7776      }
    7877
Note: See TracChangeset for help on using the changeset viewer.