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

File:
1 edited

Legend:

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

    r111 r112  
    2929        delete    in_NRESET;
    3030
    31         // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    32         delete []  in_PREDICT_VAL                 ;
    33         delete [] out_PREDICT_ACK                 ;
    34         if (_param->_have_port_context_id)
    35         delete []  in_PREDICT_CONTEXT_ID          ;
    36         delete []  in_PREDICT_BTB_ADDRESS_SRC     ;
    37         delete []  in_PREDICT_BTB_ADDRESS_DEST    ;
    38         delete []  in_PREDICT_BTB_CONDITION       ;
    39         delete []  in_PREDICT_BTB_LAST_TAKE       ;
    40         delete []  in_PREDICT_BTB_IS_ACCURATE     ;
    41         if (_param->_have_port_history)
    42         delete []  in_PREDICT_DIR_HISTORY         ;
    43         delete []  in_PREDICT_RAS_ADDRESS         ;
    44         delete []  in_PREDICT_RAS_INDEX           ;
    45         if (_param->_have_port_depth)
    46         delete [] out_PREDICT_UPDATE_PREDICTION_ID;
    47        
    48         // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    49         delete []  in_DECOD_VAL                   ;
    50         delete [] out_DECOD_ACK                   ;
    51         if (_param->_have_port_context_id)
    52         delete []  in_DECOD_CONTEXT_ID            ;
    53         delete []  in_DECOD_BTB_ADDRESS_SRC       ;
    54         delete []  in_DECOD_BTB_ADDRESS_DEST      ;
    55         delete []  in_DECOD_BTB_CONDITION         ;
    56         delete []  in_DECOD_BTB_LAST_TAKE         ;
    57         delete []  in_DECOD_RAS_ADDRESS           ;
    58         delete []  in_DECOD_RAS_INDEX             ;
    59         delete []  in_DECOD_MISS_IFETCH           ;
    60         delete []  in_DECOD_MISS_DECOD            ;
    61         if (_param->_have_port_depth)
    62         delete []  in_DECOD_UPDATE_PREDICTION_ID  ;
    63 //      if (_param->_have_port_depth)
    64 //      delete [] out_DECOD_DEPTH                 ;
    65         delete []  in_DECOD_IS_ACCURATE           ;
    66         delete [] out_DECOD_CAN_CONTINUE          ;
    67        
    68         // ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    69         delete []  in_BRANCH_COMPLETE_VAL            ;
    70         delete [] out_BRANCH_COMPLETE_ACK            ;
    71         if (_param->_have_port_context_id)
    72         delete []  in_BRANCH_COMPLETE_CONTEXT_ID     ;
    73         if (_param->_have_port_depth)
    74         delete []  in_BRANCH_COMPLETE_DEPTH          ;
    75         delete []  in_BRANCH_COMPLETE_ADDRESS        ;
    76         delete []  in_BRANCH_COMPLETE_NO_SEQUENCE    ;
    77         delete [] out_BRANCH_COMPLETE_MISS_PREDICTION;
    78 //      delete [] out_BRANCH_COMPLETE_TAKE           ;
    79 //      delete [] out_BRANCH_COMPLETE_ADDRESS_SRC    ;
    80 //      delete [] out_BRANCH_COMPLETE_ADDRESS_DEST   ;
     31        // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     32        DELETE1_SIGNAL( in_PREDICT_VAL                 ,_param->_nb_inst_predict,1);
     33        DELETE1_SIGNAL(out_PREDICT_ACK                 ,_param->_nb_inst_predict,1);
     34        DELETE1_SIGNAL( in_PREDICT_CONTEXT_ID          ,_param->_nb_inst_predict,_param->_size_context_id);
     35        DELETE1_SIGNAL(out_PREDICT_UPDATE_PREDICTION_ID,_param->_nb_inst_predict,_param->_size_depth);
     36        DELETE1_SIGNAL( in_PREDICT_BTB_ADDRESS_SRC     ,_param->_nb_inst_predict,_param->_size_instruction_address);
     37        DELETE1_SIGNAL( in_PREDICT_BTB_ADDRESS_DEST    ,_param->_nb_inst_predict,_param->_size_instruction_address);
     38        DELETE1_SIGNAL( in_PREDICT_BTB_CONDITION       ,_param->_nb_inst_predict,_param->_size_branch_condition);
     39        DELETE1_SIGNAL( in_PREDICT_BTB_LAST_TAKE       ,_param->_nb_inst_predict,1);
     40        DELETE1_SIGNAL( in_PREDICT_BTB_IS_ACCURATE     ,_param->_nb_inst_predict,1);
     41        DELETE1_SIGNAL( in_PREDICT_DIR_HISTORY         ,_param->_nb_inst_predict,_param->_size_history);
     42        DELETE1_SIGNAL( in_PREDICT_RAS_ADDRESS         ,_param->_nb_inst_predict,_param->_size_instruction_address);
     43        DELETE1_SIGNAL( in_PREDICT_RAS_INDEX           ,_param->_nb_inst_predict,_param->_max_size_ras_index);
     44
     45        // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     46        DELETE1_SIGNAL( in_DECOD_VAL                 ,_param->_nb_inst_decod,1);
     47        DELETE1_SIGNAL(out_DECOD_ACK                 ,_param->_nb_inst_decod,1);
     48        DELETE1_SIGNAL( in_DECOD_CONTEXT_ID          ,_param->_nb_inst_decod,_param->_size_context_id);
     49        DELETE1_SIGNAL( in_DECOD_BTB_ADDRESS_SRC     ,_param->_nb_inst_decod,_param->_size_instruction_address);
     50        DELETE1_SIGNAL( in_DECOD_BTB_ADDRESS_DEST    ,_param->_nb_inst_decod,_param->_size_instruction_address);
     51        DELETE1_SIGNAL( in_DECOD_BTB_CONDITION       ,_param->_nb_inst_decod,_param->_size_branch_condition);
     52        DELETE1_SIGNAL( in_DECOD_BTB_LAST_TAKE       ,_param->_nb_inst_decod,1);
     53        DELETE1_SIGNAL( in_DECOD_RAS_ADDRESS         ,_param->_nb_inst_decod,_param->_size_instruction_address);
     54        DELETE1_SIGNAL( in_DECOD_RAS_INDEX           ,_param->_nb_inst_decod,_param->_max_size_ras_index);
     55        DELETE1_SIGNAL( in_DECOD_MISS_IFETCH         ,_param->_nb_inst_decod,1);
     56        DELETE1_SIGNAL( in_DECOD_MISS_DECOD          ,_param->_nb_inst_decod,1);
     57        DELETE1_SIGNAL( in_DECOD_UPDATE_PREDICTION_ID,_param->_nb_inst_decod,_param->_size_depth);
     58//      DELETE1_SIGNAL(out_DECOD_DEPTH               ,_param->_nb_inst_decod,_param->_size_depth);
     59        DELETE1_SIGNAL( in_DECOD_IS_ACCURATE         ,_param->_nb_inst_decod,1);
     60        DELETE1_SIGNAL(out_DECOD_CAN_CONTINUE        ,_param->_nb_inst_decod,1);
     61
     62        // ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     63        DELETE1_SIGNAL( in_BRANCH_COMPLETE_VAL            ,_param->_nb_inst_branch_complete,1);
     64        DELETE1_SIGNAL(out_BRANCH_COMPLETE_ACK            ,_param->_nb_inst_branch_complete,1);
     65        DELETE1_SIGNAL( in_BRANCH_COMPLETE_CONTEXT_ID     ,_param->_nb_inst_branch_complete,_param->_size_context_id);
     66        DELETE1_SIGNAL( in_BRANCH_COMPLETE_DEPTH          ,_param->_nb_inst_branch_complete,_param->_size_depth);
     67        DELETE1_SIGNAL( in_BRANCH_COMPLETE_ADDRESS        ,_param->_nb_inst_branch_complete,_param->_size_instruction_address);
     68        DELETE1_SIGNAL( in_BRANCH_COMPLETE_NO_SEQUENCE    ,_param->_nb_inst_branch_complete,1);
     69        DELETE1_SIGNAL(out_BRANCH_COMPLETE_MISS_PREDICTION,_param->_nb_inst_branch_complete,1);
     70//      DELETE1_SIGNAL(out_BRANCH_COMPLETE_TAKE           ,_param->_nb_inst_branch_complete,1);
     71//      DELETE1_SIGNAL(out_BRANCH_COMPLETE_ADDRESS_SRC    ,_param->_nb_inst_branch_complete,_param->_size_instruction_address);
     72//      DELETE1_SIGNAL(out_BRANCH_COMPLETE_ADDRESS_DEST   ,_param->_nb_inst_branch_complete,_param->_size_instruction_address);
    8173
    8274        // ~~~~~[ Interface : "branch_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    9082        DELETE1_SIGNAL(out_BRANCH_EVENT_ADDRESS_DEST     ,_param->_nb_context,_param->_size_instruction_address);
    9183
    92         // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    93         delete [] out_UPDATE_VAL                  ;
    94         delete []  in_UPDATE_ACK                  ;
    95         if (_param->_have_port_context_id)
    96         delete [] out_UPDATE_CONTEXT_ID           ;
    97         delete [] out_UPDATE_MISS_PREDICTION      ;
    98         delete [] out_UPDATE_DIRECTION_GOOD       ;
    99         delete [] out_UPDATE_BTB_VAL              ;
    100         delete [] out_UPDATE_BTB_ADDRESS_SRC      ;
    101         delete [] out_UPDATE_BTB_ADDRESS_DEST     ;
    102         delete [] out_UPDATE_BTB_CONDITION        ;
    103         delete [] out_UPDATE_DIR_VAL              ;
    104         if (_param->_have_port_history)
    105         delete [] out_UPDATE_DIR_HISTORY          ;
    106         delete [] out_UPDATE_RAS_VAL              ;
    107         delete [] out_UPDATE_RAS_FLUSH            ;
    108         delete [] out_UPDATE_RAS_PUSH             ;
    109         delete [] out_UPDATE_RAS_ADDRESS          ;
    110         delete [] out_UPDATE_RAS_INDEX            ;
    111         delete [] out_UPDATE_RAS_PREDICTION_IFETCH;
     84        // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     85        DELETE1_SIGNAL(out_UPDATE_VAL                  ,_param->_nb_inst_update,1);
     86        DELETE1_SIGNAL( in_UPDATE_ACK                  ,_param->_nb_inst_update,1);
     87        DELETE1_SIGNAL(out_UPDATE_CONTEXT_ID           ,_param->_nb_inst_update,_param->_size_context_id);
     88        DELETE1_SIGNAL(out_UPDATE_MISS_PREDICTION      ,_param->_nb_inst_update,1);
     89        DELETE1_SIGNAL(out_UPDATE_DIRECTION_GOOD       ,_param->_nb_inst_update,1);
     90        DELETE1_SIGNAL(out_UPDATE_PREDICTION_IFETCH    ,_param->_nb_inst_update,1);
     91        DELETE1_SIGNAL(out_UPDATE_BTB_VAL              ,_param->_nb_inst_update,1);
     92        DELETE1_SIGNAL(out_UPDATE_BTB_ADDRESS_SRC      ,_param->_nb_inst_update,_param->_size_instruction_address);
     93        DELETE1_SIGNAL(out_UPDATE_BTB_ADDRESS_DEST     ,_param->_nb_inst_update,_param->_size_instruction_address);
     94        DELETE1_SIGNAL(out_UPDATE_BTB_CONDITION        ,_param->_nb_inst_update,_param->_size_branch_condition);
     95        DELETE1_SIGNAL(out_UPDATE_DIR_VAL              ,_param->_nb_inst_update,1);
     96        DELETE1_SIGNAL(out_UPDATE_DIR_HISTORY          ,_param->_nb_inst_update,_param->_size_history);
     97        DELETE1_SIGNAL(out_UPDATE_RAS_VAL              ,_param->_nb_inst_update,1);
     98        DELETE1_SIGNAL(out_UPDATE_RAS_FLUSH            ,_param->_nb_inst_update,1);
     99        DELETE1_SIGNAL(out_UPDATE_RAS_PUSH             ,_param->_nb_inst_update,1);
     100        DELETE1_SIGNAL(out_UPDATE_RAS_ADDRESS          ,_param->_nb_inst_update,_param->_size_instruction_address);
     101        DELETE1_SIGNAL(out_UPDATE_RAS_INDEX            ,_param->_nb_inst_update,_param->_max_size_ras_index);
    112102
    113103        // ~~~~~[ Interface : "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    162152        DELETE1(reg_EVENT_VAL                    ,_param->_nb_context);
    163153        DELETE1(reg_EVENT_UPT_PTR                ,_param->_nb_context);
     154        DELETE1(reg_EVENT_UPT_FULL               ,_param->_nb_context);
    164155
    165156        DELETE1(reg_EVENT_STATE                  ,_param->_nb_context);
    166         DELETE1(reg_EVENT_SOURCE                 ,_param->_nb_context);
     157        DELETE1(reg_EVENT_IS_BRANCH              ,_param->_nb_context);
    167158        DELETE1(reg_EVENT_DEPTH                  ,_param->_nb_context);
    168159        DELETE1(reg_EVENT_ADDRESS_SRC            ,_param->_nb_context);
Note: See TracChangeset for help on using the changeset viewer.