Changeset 117 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit
- Timestamp:
- May 16, 2009, 4:42:39 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/SelfTest/src/main.cpp
r115 r117 61 61 } 62 62 63 uint32_t num_thread = 0; 64 uint32_t ** _translate_num_context_to_num_thread = new uint32_t * [_nb_front_end]; 65 for (uint32_t i=0; i<_nb_front_end; i++) 66 { 67 _translate_num_context_to_num_thread [i] = new uint32_t [_nb_context[i]]; 68 for (uint32_t j=0; j<_nb_context[i]; j++) 69 _translate_num_context_to_num_thread [i][j] = num_thread ++; 70 } 71 63 72 int _return = EXIT_SUCCESS; 64 73 try … … 70 79 _nb_inst_reexecute , 71 80 _implement_group , 81 _translate_num_context_to_num_thread, 72 82 true //is_toplevel 73 83 ); … … 100 110 for (uint32_t i=0; i<_nb_front_end; i++) 101 111 { 112 delete [] _translate_num_context_to_num_thread [i]; 113 } 114 delete [] _translate_num_context_to_num_thread; 115 116 117 for (uint32_t i=0; i<_nb_front_end; i++) 118 { 102 119 for (uint32_t j=0; j<_nb_context[i]; j++) 103 120 delete [] _implement_group [i][j]; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Parameters.h
r88 r117 27 27 public : uint32_t _nb_inst_reexecute ; 28 28 public : bool *** _implement_group ;//[nb_front_end][nb_context][NB_GROUP] 29 public : uint32_t ** _translate_num_context_to_num_thread; //[nb_front_end][nb_context] 29 30 30 31 public : uint32_t _max_nb_context ; … … 41 42 uint32_t nb_inst_reexecute , 42 43 bool *** implement_group , 44 uint32_t ** translate_num_context_to_num_thread, //[nb_front_end][nb_context] 43 45 bool is_toplevel=false 44 46 ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/SPR.h
r101 r117 545 545 // [0][21] CID 546 546 //---------------------------------------------------------- 547 class CID : public GENERIC 548 { 549 public : CID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; 550 }; 551 552 //---------------------------------------------------------- 553 // [0][22] TID 554 //---------------------------------------------------------- 555 class TID : public GENERIC 556 { 557 public : TID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; 558 }; 559 560 //---------------------------------------------------------- 561 // [0][23] TSR 547 class CID : public morpheo::behavioural::SPR 548 { 549 private: const Tspr_t _cpu_id : 32; // cpu_id reset value 550 public : Tspr_t cpu_id : 32; 551 552 public : CID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): 553 _cpu_id ((param==NULL)?0:param->_translate_num_context_to_num_thread[num_front_end][num_context]) 554 {}; 555 public : void reset (void ) 556 { 557 cpu_id = _cpu_id; 558 }; 559 public : Tspr_t read (void ) 560 { 561 return ((cpu_id << 0)); 562 }; 563 public : void write (Tspr_t x) 564 { 565 cpu_id = x >> 0; 566 }; 567 }; 568 569 //---------------------------------------------------------- 570 // [0][22] TID - Thread Id 571 //---------------------------------------------------------- 572 class TID : public morpheo::behavioural::SPR 573 { 574 public : Tspr_t thread_id : 32; 575 576 public : TID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) 577 {}; 578 public : void reset (void ) 579 { 580 }; 581 public : Tspr_t read (void ) 582 { 583 return ((thread_id << 0)); 584 }; 585 public : void write (Tspr_t x) 586 { 587 thread_id = x >> 0; 588 }; 589 }; 590 591 //---------------------------------------------------------- 592 // [0][23] TSR - Thread Status Register 562 593 //---------------------------------------------------------- 563 594 class TSR : public GENERIC -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Parameters.cpp
r88 r117 23 23 uint32_t nb_inst_reexecute , 24 24 bool *** implement_group , 25 uint32_t ** translate_num_context_to_num_thread, //[nb_front_end][nb_context] 25 26 bool is_toplevel 26 27 ) … … 32 33 _nb_inst_reexecute = nb_inst_reexecute; 33 34 _implement_group = implement_group ; 35 _translate_num_context_to_num_thread = translate_num_context_to_num_thread; 34 36 35 37 _max_nb_context = max<uint32_t>(_nb_context,_nb_front_end); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_allocation.cpp
r112 r117 236 236 for (uint32_t j=0; j<_param->_nb_context[i]; j++) 237 237 for (uint32_t k=0; k<NB_GROUP; k++) 238 238 if (_param->_implement_group [i][j][k]) 239 239 { 240 240 241 for (uint32_t l=0; l<NB_REG_GROUP[k]; l++) 241 242 if (_spr [i][j][k][l] == NULL)
Note: See TracChangeset
for help on using the changeset viewer.