Changeset 120 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State
- Timestamp:
- May 26, 2009, 9:01:47 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h
r119 r120 52 52 #ifdef STATISTICS 53 53 public : Stat * _stat; 54 private : counter_t ** _stat_nb_cycle_state_ok ; //[nb_context] 55 private : counter_t ** _stat_nb_cycle_state_ko_excep ; //[nb_context] 56 private : counter_t ** _stat_nb_cycle_state_ko_miss_branch ; //[nb_context] 57 private : counter_t ** _stat_nb_cycle_state_ko_miss_load ; //[nb_context] 58 private : counter_t ** _stat_nb_cycle_state_ko_miss_load_and_branch; //[nb_context] 59 private : counter_t ** _stat_nb_cycle_state_ko_msync ; //[nb_context] 60 private : counter_t ** _stat_nb_cycle_state_ko_psync ; //[nb_context] 61 private : counter_t ** _stat_nb_cycle_state_ko_csync ; //[nb_context] 62 private : counter_t ** _stat_nb_cycle_state_ko_spr ; //[nb_context] 54 63 #endif 55 64 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Types.h
r119 r120 29 29 CONTEXT_STATE_KO_EXCEP_ADDR , // update address manager 30 30 CONTEXT_STATE_KO_EXCEP_SPR , // update spr (epc, esr, sr[DSX]) 31 // CONTEXT_STATE_KO_MISS_BRANCH_FAST_ADDR , // update address manager32 // CONTEXT_STATE_KO_MISS_BRANCH_FAST_WAIT_UPDATE , // branch is complete, wait update by update_prediction_table33 31 CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE , // branch is complete, wait update by update_prediction_table 34 32 CONTEXT_STATE_KO_MISS_BRANCH_ADDR , // update address manager … … 68 66 case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_EXCEP_ADDR : return "context_state_ko_excep_addr" ; break; 69 67 case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_EXCEP_SPR : return "context_state_ko_excep_spr" ; break; 70 // case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_FAST_WAIT_UPDATE : return "context_state_ko_miss_branch_fast_wait_update" ; break;71 // case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_FAST_ADDR : return "context_state_ko_miss_branch_fast_addr" ; break;72 68 case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE : return "context_state_ko_miss_branch_wait_update" ; break; 73 69 case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_ADDR : return "context_state_ko_miss_branch_addr" ; break; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_statistics_allocation.cpp
r83 r120 8 8 9 9 #include "Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h" 10 #include "Behavioural/include/Allocation.h" 10 11 11 12 namespace morpheo { … … 26 27 "Context_State", 27 28 param_statistics); 28 29 30 ALLOC1(_stat_nb_cycle_state_ok ,counter_t *,_param->_nb_context); 31 ALLOC1(_stat_nb_cycle_state_ko_excep ,counter_t *,_param->_nb_context); 32 ALLOC1(_stat_nb_cycle_state_ko_miss_branch ,counter_t *,_param->_nb_context); 33 ALLOC1(_stat_nb_cycle_state_ko_miss_load ,counter_t *,_param->_nb_context); 34 ALLOC1(_stat_nb_cycle_state_ko_miss_load_and_branch,counter_t *,_param->_nb_context); 35 ALLOC1(_stat_nb_cycle_state_ko_msync ,counter_t *,_param->_nb_context); 36 ALLOC1(_stat_nb_cycle_state_ko_psync ,counter_t *,_param->_nb_context); 37 ALLOC1(_stat_nb_cycle_state_ko_csync ,counter_t *,_param->_nb_context); 38 ALLOC1(_stat_nb_cycle_state_ko_spr ,counter_t *,_param->_nb_context); 39 40 for (uint32_t i=0; i<_param->_nb_context; ++i) 41 { 42 _stat_nb_cycle_state_ok [i] = _stat->create_counter("nb_cycle_state_ok_" +toString(i),"",toString(_("Number of cycle in state ok (context %d)"),i)); 43 _stat_nb_cycle_state_ko_excep [i] = _stat->create_counter("nb_cycle_state_ko_excep_" +toString(i),"",toString(_("Number of cycle in state ko_excep (context %d)"),i)); 44 _stat_nb_cycle_state_ko_miss_branch [i] = _stat->create_counter("nb_cycle_state_ko_miss_branch_" +toString(i),"",toString(_("Number of cycle in state ko_miss_branch (context %d)"),i)); 45 _stat_nb_cycle_state_ko_miss_load [i] = _stat->create_counter("nb_cycle_state_ko_miss_load_" +toString(i),"",toString(_("Number of cycle in state ko_miss_load (context %d)"),i)); 46 _stat_nb_cycle_state_ko_miss_load_and_branch [i] = _stat->create_counter("nb_cycle_state_ko_miss_load_and_branch_"+toString(i),"",toString(_("Number of cycle in state ko_miss_load_and_branch (context %d)"),i)); 47 _stat_nb_cycle_state_ko_msync [i] = _stat->create_counter("nb_cycle_state_ko_msync_" +toString(i),"",toString(_("Number of cycle in state ko_msync (context %d)"),i)); 48 _stat_nb_cycle_state_ko_psync [i] = _stat->create_counter("nb_cycle_state_ko_psync_" +toString(i),"",toString(_("Number of cycle in state ko_psync (context %d)"),i)); 49 _stat_nb_cycle_state_ko_csync [i] = _stat->create_counter("nb_cycle_state_ko_csync_" +toString(i),"",toString(_("Number of cycle in state ko_csync (context %d)"),i)); 50 _stat_nb_cycle_state_ko_spr [i] = _stat->create_counter("nb_cycle_state_ko_spr_" +toString(i),"",toString(_("Number of cycle in state ko_spr (context %d)"),i)); 51 52 53 _stat->create_expr_percent("percent_state_ok_" +toString(i),"nb_cycle_state_ok_" +toString(i),"cycle",toString(_("Percent of cycle in state ok (context %d)"),i)); 54 _stat->create_expr_percent("percent_state_ko_excep_" +toString(i),"nb_cycle_state_ko_excep_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_excep (context %d)"),i)); 55 _stat->create_expr_percent("percent_state_ko_miss_branch_" +toString(i),"nb_cycle_state_ko_miss_branch_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_miss_branch (context %d)"),i)); 56 _stat->create_expr_percent("percent_state_ko_miss_load_" +toString(i),"nb_cycle_state_ko_miss_load_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_miss_load (context %d)"),i)); 57 _stat->create_expr_percent("percent_state_ko_miss_load_and_branch_"+toString(i),"nb_cycle_state_ko_miss_load_and_branch_"+toString(i),"cycle",toString(_("Percent of cycle in state ko_miss_load_and_branch (context %d)"),i)); 58 _stat->create_expr_percent("percent_state_ko_msync_" +toString(i),"nb_cycle_state_ko_msync_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_msync (context %d)"),i)); 59 _stat->create_expr_percent("percent_state_ko_psync_" +toString(i),"nb_cycle_state_ko_psync_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_psync (context %d)"),i)); 60 _stat->create_expr_percent("percent_state_ko_csync_" +toString(i),"nb_cycle_state_ko_csync_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_csync (context %d)"),i)); 61 _stat->create_expr_percent("percent_state_ko_spr_" +toString(i),"nb_cycle_state_ko_spr_" +toString(i),"cycle",toString(_("Percent of cycle in state ko_spr (context %d)"),i)); 62 } 63 29 64 log_end(Context_State,FUNCTION); 30 65 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_statistics_deallocation.cpp
r83 r120 8 8 9 9 #include "Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h" 10 #include "Behavioural/include/Allocation.h" 10 11 11 12 namespace morpheo { … … 24 25 25 26 log_printf(INFO,Context_State,FUNCTION,_("Generate Statistics file")); 26 27 27 28 delete _stat; 29 30 DELETE1(_stat_nb_cycle_state_ok ,_param->_nb_context); 31 DELETE1(_stat_nb_cycle_state_ko_excep ,_param->_nb_context); 32 DELETE1(_stat_nb_cycle_state_ko_miss_branch ,_param->_nb_context); 33 DELETE1(_stat_nb_cycle_state_ko_miss_load ,_param->_nb_context); 34 DELETE1(_stat_nb_cycle_state_ko_miss_load_and_branch,_param->_nb_context); 35 DELETE1(_stat_nb_cycle_state_ko_msync ,_param->_nb_context); 36 DELETE1(_stat_nb_cycle_state_ko_psync ,_param->_nb_context); 37 DELETE1(_stat_nb_cycle_state_ko_csync ,_param->_nb_context); 38 DELETE1(_stat_nb_cycle_state_ko_spr ,_param->_nb_context); 28 39 29 40 log_end(Context_State,FUNCTION); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_transition.cpp
r119 r120 678 678 } 679 679 680 681 #ifdef STATISTICS 682 if (usage_is_set(_usage,USE_STATISTICS)) 683 for (uint32_t i=0; i<_param->_nb_context; ++i) 684 switch(reg_STATE[i]) 685 { 686 case CONTEXT_STATE_OK : (*_stat_nb_cycle_state_ok [i])++; break; 687 688 case CONTEXT_STATE_KO_EXCEP : 689 case CONTEXT_STATE_KO_EXCEP_ADDR : 690 case CONTEXT_STATE_KO_EXCEP_SPR : (*_stat_nb_cycle_state_ko_excep [i])++; break; 691 692 case CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE : 693 case CONTEXT_STATE_KO_MISS_BRANCH_ADDR : 694 case CONTEXT_STATE_KO_MISS_BRANCH_WAITEND : (*_stat_nb_cycle_state_ko_miss_branch [i])++; break; 695 696 case CONTEXT_STATE_KO_MISS_LOAD_ADDR : 697 case CONTEXT_STATE_KO_MISS_LOAD_WAITEND : (*_stat_nb_cycle_state_ko_miss_load [i])++; break; 698 699 case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_WAIT_UPDATE: 700 case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_ADDR : 701 case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_WAITEND : (*_stat_nb_cycle_state_ko_miss_load_and_branch [i])++; break; 702 703 // case CONTEXT_STATE_KO_MSYNC : 704 // case CONTEXT_STATE_KO_MSYNC_ISSUE : 705 case CONTEXT_STATE_KO_MSYNC_EXEC : (*_stat_nb_cycle_state_ko_msync [i])++; break; 706 707 // case CONTEXT_STATE_KO_PSYNC : 708 case CONTEXT_STATE_KO_PSYNC_FLUSH : 709 case CONTEXT_STATE_KO_PSYNC_ADDR : (*_stat_nb_cycle_state_ko_psync [i])++; break; 710 711 // case CONTEXT_STATE_KO_CSYNC : 712 case CONTEXT_STATE_KO_CSYNC_FLUSH : 713 case CONTEXT_STATE_KO_CSYNC_ADDR : (*_stat_nb_cycle_state_ko_csync [i])++; break; 714 715 // case CONTEXT_STATE_KO_SPR : 716 // case CONTEXT_STATE_KO_SPR_ISSUE : 717 case CONTEXT_STATE_KO_SPR_EXEC : (*_stat_nb_cycle_state_ko_spr [i])++; break; 718 } 719 #endif 720 721 722 680 723 #if DEBUG >= DEBUG_TRACE 681 724 for (uint32_t i=0; i<_param->_nb_context; i++)
Note: See TracChangeset
for help on using the changeset viewer.