Changeset 82 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/include
- Timestamp:
- May 1, 2008, 6:48:45 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/include/Parameters.h
r81 r82 11 11 #include "Common/include/Debug.h" 12 12 #include "Behavioural/include/Parameters.h" 13 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/include/Parameters.h" 14 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/include/Parameters.h" 15 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Parameters.h" 16 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Parameters.h" 17 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/include/Parameters.h" 13 18 14 19 namespace morpheo { … … 23 28 { 24 29 //-----[ fields ]------------------------------------------------------------ 30 public : uint32_t _nb_context ; 31 public : uint32_t _nb_decod_unit ; 32 public : uint32_t _size_address ; 33 public : uint32_t * _nb_instruction ;//[nb_context] 34 public : uint32_t * _nb_inst_decod ;//[nb_decod_unit] 35 public : uint32_t _nb_inst_branch_predict ; 36 public : uint32_t _nb_inst_branch_decod ; 37 public : uint32_t _nb_inst_branch_update ; 38 public : uint32_t _nb_inst_branch_complete ; 39 public : uint32_t _btb_size_queue ; 40 public : uint32_t _btb_associativity ; 41 public : uint32_t _btb_size_counter ; 42 public : Tvictim_t _btb_victim_scheme ; 43 public : Tpredictor_t _dir_predictor_scheme ; 44 public : bool _dir_have_bht [3]; 45 public : uint32_t _dir_bht_size_shifter [3]; 46 public : uint32_t _dir_bht_nb_shifter [3]; 47 public : bool _dir_have_pht [3]; 48 public : uint32_t _dir_pht_size_counter [3]; 49 public : uint32_t _dir_pht_nb_counter [3]; 50 public : uint32_t _dir_pht_size_address_share [3]; 51 public : uint32_t * _ras_size_queue ;//[nb_context] 52 public : uint32_t * _upt_size_queue ;//[nb_context] 53 54 public : uint32_t _size_context_id ; 55 public : uint32_t * _size_depth ;//[nb_context] 56 public : uint32_t _max_size_depth ; 57 public : uint32_t * _size_inst_ifetch_ptr ;//[nb_context] 58 public : uint32_t _size_history ; 59 public : uint32_t * _size_ras_index ;//[nb_context] 60 61 public : bool _have_port_context_id ; 62 public : bool _have_port_max_depth ; 63 public : bool * _have_port_depth ;//[nb_context] 64 public : bool * _have_port_inst_ifetch_ptr ;//[nb_context] 65 public : bool _have_port_history ; 66 public : bool * _have_port_ras_index ;//[nb_context] 67 68 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::branch_target_buffer ::Parameters * _param_btb; 69 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction ::Parameters * _param_dir; 70 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::return_address_stack ::Parameters * _param_ras; 71 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::update_prediction_table::Parameters * _param_upt; 72 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::prediction_unit_glue ::Parameters * _param_glue; 25 73 26 74 //-----[ methods ]----------------------------------------------------------- 27 public : Parameters (); 75 public : Parameters (uint32_t nb_context , 76 uint32_t nb_decod_unit , 77 uint32_t size_address , 78 uint32_t * nb_instruction ,//[nb_context] 79 uint32_t * nb_inst_decod ,//[nb_decod_unit] 80 uint32_t nb_inst_branch_predict , 81 uint32_t nb_inst_branch_decod , 82 uint32_t nb_inst_branch_update , 83 uint32_t nb_inst_branch_complete , 84 uint32_t btb_size_queue , 85 uint32_t btb_associativity , 86 uint32_t btb_size_counter , 87 Tvictim_t btb_victim_scheme , 88 Tpredictor_t dir_predictor_scheme , 89 bool dir_have_bht [3], 90 uint32_t dir_bht_size_shifter [3], 91 uint32_t dir_bht_nb_shifter [3], 92 bool dir_have_pht [3], 93 uint32_t dir_pht_size_counter [3], 94 uint32_t dir_pht_nb_counter [3], 95 uint32_t dir_pht_size_address_share [3], 96 uint32_t * ras_size_queue ,//[nb_context] 97 uint32_t * upt_size_queue //[nb_context] 98 ); 28 99 // public : Parameters (Parameters & param) ; 29 100 public : ~Parameters () ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/include/Prediction_unit.h
r81 r82 27 27 #endif 28 28 #include "Behavioural/include/Usage.h" 29 30 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/include/Branch_Target_Buffer.h" 31 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/include/Direction.h" 32 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h" 33 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h" 34 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/include/Prediction_unit_Glue.h" 29 35 30 36 namespace morpheo { … … 61 67 public : SC_IN (Tcontrol_t) * in_NRESET ; 62 68 69 // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70 public : SC_IN (Tcontrol_t ) ** in_PREDICT_VAL ; //[nb_context] 71 public : SC_OUT(Tcontrol_t ) ** out_PREDICT_ACK ; //[nb_context] 72 public : SC_IN (Taddress_t ) ** in_PREDICT_PC_PREVIOUS ; //[nb_context] 73 public : SC_IN (Taddress_t ) ** in_PREDICT_PC_CURRENT ; //[nb_context] 74 public : SC_IN (Tcontrol_t ) ** in_PREDICT_PC_CURRENT_IS_DS_TAKE ; //[nb_context] 75 public : SC_OUT(Taddress_t ) ** out_PREDICT_PC_NEXT ; //[nb_context] 76 public : SC_OUT(Tcontrol_t ) ** out_PREDICT_PC_NEXT_IS_DS_TAKE ; //[nb_context] 77 public : SC_OUT(Tcontrol_t ) *** out_PREDICT_INSTRUCTION_ENABLE ; //[nb_context][nb_instruction] 78 public : SC_OUT(Tinst_ifetch_ptr_t ) ** out_PREDICT_INST_IFETCH_PTR ; //[nb_context] 79 public : SC_OUT(Tbranch_state_t ) ** out_PREDICT_BRANCH_STATE ; //[nb_context] 80 public : SC_OUT(Tprediction_ptr_t ) ** out_PREDICT_BRANCH_UPDATE_PREDICTION_ID ; //[nb_context] 81 82 // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 public : SC_IN (Tcontrol_t ) *** in_DECOD_VAL ; //[nb_decod_unit][nb_inst_decod] 84 public : SC_OUT(Tcontrol_t ) *** out_DECOD_ACK ; //[nb_decod_unit][nb_inst_decod] 85 public : SC_IN (Tcontext_t ) *** in_DECOD_CONTEXT_ID ; //[nb_decod_unit][nb_inst_decod] 86 public : SC_IN (Tcontrol_t ) *** in_DECOD_MATCH_INST_IFETCH_PTR ; //[nb_decod_unit][nb_inst_decod] 87 public : SC_IN (Tbranch_state_t ) *** in_DECOD_BRANCH_STATE ; //[nb_decod_unit][nb_inst_decod] 88 public : SC_IN (Tprediction_ptr_t ) *** in_DECOD_BRANCH_UPDATE_PREDICTION_ID ; //[nb_decod_unit][nb_inst_decod] 89 public : SC_IN (Tbranch_condition_t) *** in_DECOD_BRANCH_CONDITION ; //[nb_decod_unit][nb_inst_decod] 90 public : SC_IN (Tcontrol_t ) *** in_DECOD_BRANCH_DIRECTION ; //[nb_decod_unit][nb_inst_decod] 91 public : SC_IN (Taddress_t ) *** in_DECOD_ADDRESS_SRC ; //[nb_decod_unit][nb_inst_decod] 92 public : SC_IN (Taddress_t ) *** in_DECOD_ADDRESS_DEST ; //[nb_decod_unit][nb_inst_decod] 93 94 // ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 95 public : SC_IN (Tcontrol_t ) ** in_BRANCH_COMPLETE_VAL ; //[nb_inst_branch_complete] 96 public : SC_OUT(Tcontrol_t ) ** out_BRANCH_COMPLETE_ACK ; //[nb_inst_branch_complete] 97 public : SC_IN (Tcontext_t ) ** in_BRANCH_COMPLETE_CONTEXT_ID ; //[nb_inst_branch_complete] 98 public : SC_IN (Tdepth_t ) ** in_BRANCH_COMPLETE_DEPTH ; //[nb_inst_branch_complete] 99 public : SC_IN (Taddress_t ) ** in_BRANCH_COMPLETE_ADDRESS ; //[nb_inst_branch_complete] 100 public : SC_IN (Tcontrol_t ) ** in_BRANCH_COMPLETE_FLAG ; //[nb_inst_branch_complete] 101 public : SC_OUT(Tcontrol_t ) ** out_BRANCH_COMPLETE_MISS_PREDICTION ; //[nb_inst_branch_complete] 102 public : SC_OUT(Tcontrol_t ) ** out_BRANCH_COMPLETE_TAKE ; //[nb_inst_branch_complete] 103 public : SC_OUT(Taddress_t ) ** out_BRANCH_COMPLETE_ADDRESS_SRC ; //[nb_inst_branch_complete] 104 public : SC_OUT(Taddress_t ) ** out_BRANCH_COMPLETE_ADDRESS_DEST ; //[nb_inst_branch_complete] 105 106 // ~~~~~[ Interface : "branch_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 public : SC_OUT(Tcontrol_t ) ** out_BRANCH_EVENT_VAL ; //[nb_context] 108 public : SC_IN (Tcontrol_t ) ** in_BRANCH_EVENT_ACK ; //[nb_context] 109 //public : SC_OUT(Tcontext_t ) ** out_BRANCH_EVENT_CONTEXT_ID ; //[nb_context] 110 //public : SC_OUT(Tdepth_t ) ** out_BRANCH_EVENT_DEPTH ; //[nb_context] 111 //public : SC_OUT(Tcontrol_t ) ** out_BRANCH_EVENT_MISS_PREDICTION ; //[nb_context] 112 public : SC_OUT(Taddress_t ) ** out_BRANCH_EVENT_ADDRESS_SRC ; //[nb_context] 113 public : SC_OUT(Taddress_t ) ** out_BRANCH_EVENT_ADDRESS_DEST ; //[nb_context] 114 115 // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 public : SC_OUT(Tdepth_t ) ** out_DEPTH_NB_BRANCH ; //[nb_context] 117 public : SC_OUT(Tdepth_t ) ** out_DEPTH_TAIL ; //[nb_context] 118 63 119 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 120 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::branch_target_buffer ::Branch_Target_Buffer * _component_btb; 121 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction ::Direction * _component_dir; 122 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::return_address_stack ::Return_Address_Stack * _component_ras; 123 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::update_prediction_table::Update_Prediction_Table * _component_upt; 124 public : morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::prediction_unit_glue ::Prediction_unit_Glue * _component_glue; 64 125 65 126 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 84 145 #endif 85 146 Parameters * param, 86 morpheo::behavioural::Tusage_t usage =USE_ALL147 morpheo::behavioural::Tusage_t usage 87 148 ); 88 149 public : ~Prediction_unit (void);
Note: See TracChangeset
for help on using the changeset viewer.