Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_transition.cpp
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_transition.cpp
r81 r88 27 27 { 28 28 // Flush routing_table 29 for (uint32_t i=0; i<_param->_nb_execute_unit; i++) 30 for (uint32_t j=0; j<_param->_nb_thread; j++) 31 _destination [i][j].clear(); 29 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 30 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 31 for (uint32_t j=0; j<_param->_nb_thread; j++) 32 _destination [x][y][j].clear(); 32 33 33 34 // Fill routing table 34 for (uint32_t i=0; i<_param->_nb_execute_unit; i++) 35 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 36 // Test if link between src and dest 37 if (_param->_table_routing [i][j]) 38 // Test the thread accepted by the execute_unit 39 for (uint32_t k=0; k<_param->_nb_thread; k++) 40 if (_param->_table_thread[j][k]) 41 // push_back == minor have a better priority 42 _destination [i][k].push_back(j); 35 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 36 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 37 for (uint32_t j=0; j<_param->_nb_write_unit; j++) 38 // Test if link between src and dest 39 if (_param->_table_routing [x][y][j]) 40 // Test the thread accepted by the execute_unit 41 for (uint32_t k=0; k<_param->_nb_thread; k++) 42 if (_param->_table_thread[j][k]) 43 // push_back == minor have a better priority 44 _destination [x][y][k].push_back(j); 43 45 } 44 46 else 45 47 { 46 48 if (_param->_priority == PRIORITY_ROUND_ROBIN) 47 for (uint32_t i=0; i<_param->_nb_execute_unit; i++) 48 for (uint32_t j=0; j<_param->_nb_thread; j++) 49 if (_destination [i][j].size() > 1) 50 { 51 // Head queue became the Tail queue 52 _destination [i][j].push_back(_destination [i][j].front()); 53 _destination [i][j].pop_front(); 54 } 49 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 50 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 51 for (uint32_t j=0; j<_param->_nb_thread; j++) 52 if (_destination [x][y][j].size() > 1) 53 { 54 // Head queue became the Tail queue 55 _destination [x][y][j].push_back(_destination [x][y][j].front()); 56 _destination [x][y][j].pop_front(); 57 } 55 58 } 56 57 59 60 58 61 #if (DEBUG >= DEBUG_TRACE) 59 62 // Print 60 63 log_printf(TRACE,Read_unit_to_Execution_unit,FUNCTION,"Routing Table"); 61 for (uint32_t i=0; i<_param->_nb_execute_unit; i++) 62 for (uint32_t j=0; j<_param->_nb_thread; j++) 63 for (std::list<uint32_t>::iterator k=_destination[i][j].begin(); 64 k != _destination[i][j].end(); 65 k++) 66 log_printf(TRACE,Read_unit_to_Execution_unit,FUNCTION," * Execute_unit [%d], send at the write_unit [%d], the operation of thread [%d].",i,*k,j); 64 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 65 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 66 for (uint32_t j=0; j<_param->_nb_thread; j++) 67 for (std::list<uint32_t>::iterator k=_destination[x][y][j].begin(); 68 k != _destination[x][y][j].end(); 69 k++) 70 log_printf(TRACE,Read_unit_to_Execution_unit,FUNCTION," * Execute_unit [%d][%d], send at the write_unit [%d], the operation of thread [%d].",x,y,*k,j); 67 71 #endif 68 72
Note: See TracChangeset
for help on using the changeset viewer.