Changeset 122 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_genMealy_retire.cpp
- Timestamp:
- Jun 3, 2009, 10:15:51 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_genMealy_retire.cpp
r112 r122 26 26 log_function(Register_Address_Translation_unit,FUNCTION,_name.c_str()); 27 27 28 if (PORT_READ(in_NRESET) != 0) 29 { 28 30 // Init internal update table 29 31 for (uint32_t i=0; i<_param->_nb_front_end; i++) 30 32 for (uint32_t j=0; j<_param->_nb_context[i]; j++) 31 33 { 34 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * init [%d][%d]",i,j); 35 32 36 // An event occure 33 37 // bool event = (PORT_READ(in_RETIRE_EVENT_STATE [i][j]) != EVENT_STATE_NO_EVENT); … … 35 39 (PORT_READ(in_RETIRE_EVENT_STATE [i][j]) == EVENT_STATE_EVENT)); 36 40 41 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * reset_update_table : %d",reset_update_table); 42 37 43 // not event -> update_table == 1 -> always update 38 44 // event -> update_table and not reset 39 45 for (uint32_t k=0; k<_param->_nb_general_register_logic; ++k) 40 46 internal_rat_gpr_update_table [i][j][k] = // not event or 41 ( rat_gpr_update_table [i][j][k] and not reset_update_table);47 (not reset_update_table and rat_gpr_update_table [i][j][k]); 42 48 for (uint32_t k=0; k<_param->_nb_special_register_logic; ++k) 43 49 internal_rat_spr_update_table [i][j][k] = // not event or 44 ( rat_spr_update_table [i][j][k] and not reset_update_table);50 (not reset_update_table and rat_spr_update_table [i][j][k]); 45 51 } 46 47 52 48 53 // RETIRE is in order -> also don't need test if an instruction is valid … … 55 60 Tcontrol_t retire_restore_re_phy_old = false; 56 61 57 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0; 58 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RETIRE_CONTEXT_ID [i]):0; 59 Tcontrol_t restore = (PORT_READ(in_RETIRE_EVENT_STATE [front_end_id][context_id]) != EVENT_STATE_NO_EVENT); 62 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0; 63 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RETIRE_CONTEXT_ID [i]):0; 64 Tcontrol_t retire_restore = (PORT_READ(in_RETIRE_EVENT_STATE [front_end_id][context_id]) != EVENT_STATE_NO_EVENT); 65 66 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); 67 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id ); 68 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore : %d",retire_restore); 60 69 61 70 // Test if event -> need restore ? 62 if (re store)71 if (retire_restore) 63 72 { 64 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Have event"); 65 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); 66 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id ); 73 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Have event"); 67 74 68 75 // Test and update update table … … 87 94 } 88 95 89 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore_rd_phy_old : %d",retire_restore_rd_phy_old);90 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore_re_phy_old : %d",retire_restore_re_phy_old);96 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore_rd_phy_old : %d",retire_restore_rd_phy_old); 97 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore_re_phy_old : %d",retire_restore_re_phy_old); 91 98 } 92 99 93 internal_RETIRE_RESTORE_RD_PHY_OLD[i] = retire_restore_rd_phy_old; 94 internal_RETIRE_RESTORE_RE_PHY_OLD[i] = retire_restore_re_phy_old; 100 internal_RETIRE_RESTORE [i] = retire_restore; 101 internal_RETIRE_RESTORE_RD_PHY_OLD [i] = retire_restore_rd_phy_old; 102 internal_RETIRE_RESTORE_RE_PHY_OLD [i] = retire_restore_re_phy_old; 95 103 96 PORT_WRITE(out_RETIRE_RESTORE_RD_PHY_OLD[i], internal_RETIRE_RESTORE_RD_PHY_OLD[i]); 97 PORT_WRITE(out_RETIRE_RESTORE_RE_PHY_OLD[i], internal_RETIRE_RESTORE_RE_PHY_OLD[i]); 98 PORT_WRITE(out_RETIRE_RESTORE [i], restore); 104 PORT_WRITE(out_RETIRE_RESTORE [i], internal_RETIRE_RESTORE [i]); 105 PORT_WRITE(out_RETIRE_RESTORE_RD_PHY_OLD[i], internal_RETIRE_RESTORE_RD_PHY_OLD [i]); 106 PORT_WRITE(out_RETIRE_RESTORE_RE_PHY_OLD[i], internal_RETIRE_RESTORE_RE_PHY_OLD [i]); 107 } 99 108 } 100 109
Note: See TracChangeset
for help on using the changeset viewer.