Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (15 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

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

    r82 r88  
    77
    88#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
     9#include "Behavioural/include/Allocation.h"
    910
    1011namespace morpheo                    {
     
    4243        delete []  in_PREDICT_RAS_ADDRESS         ;
    4344        delete []  in_PREDICT_RAS_INDEX           ;
    44 //      if (_param->_have_port_depth)
    45 //      delete [] out_PREDICT_UPDATE_PREDICTION_ID;
     45        if (_param->_have_port_depth)
     46        delete [] out_PREDICT_UPDATE_PREDICTION_ID;
    4647       
    4748        // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    5859        delete []  in_DECOD_MISS_IFETCH           ;
    5960        delete []  in_DECOD_MISS_DECOD            ;
    60         if (_param->_have_port_max_depth)
     61        if (_param->_have_port_depth)
    6162        delete []  in_DECOD_UPDATE_PREDICTION_ID  ;
    6263//      if (_param->_have_port_depth)
    6364//      delete [] out_DECOD_DEPTH                 ;
     65        delete []  in_DECOD_IS_ACCURATE           ;
    6466       
    6567        // ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    6870        if (_param->_have_port_context_id)
    6971        delete []  in_BRANCH_COMPLETE_CONTEXT_ID     ;
    70         if (_param->_have_port_max_depth)
     72        if (_param->_have_port_depth)
    7173        delete []  in_BRANCH_COMPLETE_DEPTH          ;
    7274        delete []  in_BRANCH_COMPLETE_ADDRESS        ;
     
    8284//      if (_param->_have_port_context_id)
    8385//      delete []  in_BRANCH_EVENT_CONTEXT_ID     ;
    84 //      if (_param->_have_port_max_depth)
     86//      if (_param->_have_port_depth)
    8587//      delete []  in_BRANCH_EVENT_DEPTH          ;
    8688//      delete [] out_BRANCH_EVENT_MISS_PREDICTION;
     
    109111
    110112        // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    111         if (_param->_have_port_max_depth)
     113        if (_param->_have_port_depth)
    112114          {
    113         delete [] out_DEPTH_NB_BRANCH;
    114         delete [] out_DEPTH_TAIL;
     115        delete [] out_DEPTH_CURRENT;
     116        delete [] out_DEPTH_MIN;
    115117          }
    116       }
    117 
    118     // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    119     delete [] internal_PREDICT_ACK                     ;
    120     delete [] internal_DECOD_ACK                       ;
    121     delete [] internal_BRANCH_COMPLETE_ACK             ;
    122     delete [] internal_BRANCH_COMPLETE_MISS_PREDICTION ;
    123     delete [] internal_BRANCH_COMPLETE_TAKE            ;
    124     delete [] internal_BRANCH_COMPLETE_ADDRESS_DEST    ;
    125     delete [] internal_BRANCH_EVENT_VAL                ;
    126     delete [] internal_BRANCH_EVENT_DEPTH              ;
    127     delete [] internal_UPDATE_VAL                      ;
    128     delete [] internal_UPDATE_CONTEXT_ID               ;
    129     delete [] internal_UPDATE_DEPTH                    ;
    130 
    131     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    132     delete [] reg_TOP;
    133     delete [] reg_BOTTOM;
    134     delete [] reg_NB_ELT;
    135     delete [] reg_NB_ELT_UPDATE;
    136     delete [] reg_NB_ELT_NEED_UPDATE;
    137     for (uint32_t i=0; i<_param->_nb_context; i++)
    138       delete [] reg_UPDATE_PREDICTION_TABLE [i];
    139     delete [] reg_UPDATE_PREDICTION_TABLE;
     118        delete [] out_DEPTH_MAX;
     119       
     120        // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     121        DELETE1(internal_PREDICT_ACK                     ,_param->_nb_inst_predict);
     122        DELETE1(internal_PREDICT_UPDATE_PREDICTION_ID    ,_param->_nb_inst_predict);
     123        DELETE1(internal_DECOD_ACK                       ,_param->_nb_inst_decod);
     124        DELETE1(internal_DECOD_UPT_PTR_WRITE             ,_param->_nb_inst_decod);
     125        DELETE1(internal_BRANCH_COMPLETE_ACK             ,_param->_nb_inst_branch_complete);
     126        DELETE1(internal_BRANCH_COMPLETE_MISS_PREDICTION ,_param->_nb_inst_branch_complete);
     127        DELETE1(internal_BRANCH_COMPLETE_TAKE            ,_param->_nb_inst_branch_complete);
     128        DELETE1(internal_BRANCH_COMPLETE_ADDRESS_DEST    ,_param->_nb_inst_branch_complete);
     129        DELETE1(internal_BRANCH_EVENT_VAL                ,_param->_nb_context);
     130        DELETE1(internal_BRANCH_EVENT_DEPTH              ,_param->_nb_context);
     131        DELETE1(internal_UPDATE_VAL                      ,_param->_nb_inst_update);
     132        DELETE1(internal_UPDATE_VAL_WITHOUT_ACK          ,_param->_nb_inst_update);
     133        DELETE1(internal_UPDATE_CONTEXT_ID               ,_param->_nb_inst_update);
     134        DELETE1(internal_UPDATE_FROM_UFPT                ,_param->_nb_inst_update);
     135        DELETE1(internal_UPDATE_DEPTH                    ,_param->_nb_inst_update);
     136        DELETE1(internal_UPDATE_RAS                      ,_param->_nb_inst_update);
     137       
     138        // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     139        DELETE1(reg_IS_ACCURATE                  ,_param->_nb_context);
     140       
     141        DELETE2(reg_UPDATE_FETCH_PREDICTION_TABLE,_param->_nb_context,_param->_size_ufpt_queue[it1]);
     142        DELETE1(reg_UFPT_BOTTOM                  ,_param->_nb_context);
     143        DELETE1(reg_UFPT_TOP                     ,_param->_nb_context);
     144        DELETE1(reg_UFPT_UPDATE                  ,_param->_nb_context);
     145        DELETE1(reg_UFPT_NB_NEED_UPDATE          ,_param->_nb_context);
     146       
     147        DELETE2(reg_UPDATE_PREDICTION_TABLE      ,_param->_nb_context,_param->_size_upt_queue[it1]);
     148        DELETE1(reg_UPT_BOTTOM                   ,_param->_nb_context);
     149        DELETE1(reg_UPT_TOP                      ,_param->_nb_context);
     150        DELETE1(reg_UPT_UPDATE                   ,_param->_nb_context);
     151        DELETE1(reg_UPT_NB_NEED_UPDATE           ,_param->_nb_context);
     152       
     153        DELETE1(reg_EVENT_STATE                  ,_param->_nb_context);
     154        DELETE1(reg_EVENT_RAS_CORRUPTED          ,_param->_nb_context);
     155        DELETE1(reg_EVENT_ADDRESS_SRC            ,_param->_nb_context);
     156        DELETE1(reg_EVENT_ADDRESS_SRC_VAL        ,_param->_nb_context);
     157        DELETE1(reg_EVENT_ADDRESS_DEST           ,_param->_nb_context);
     158       }
    140159
    141160    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
Note: See TracChangeset for help on using the changeset viewer.