Changeset 82 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h
- Timestamp:
- May 1, 2008, 6:48:45 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h
r81 r82 17 17 #include "Common/include/ToString.h" 18 18 #include "Common/include/Debug.h" 19 #include "Behavioural/include/Types.h"20 19 21 20 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h" 21 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h" 22 22 #ifdef STATISTICS 23 23 #include "Behavioural/include/Stat.h" … … 27 27 #include "Behavioural/include/Vhdl.h" 28 28 #endif 29 #include "Behavioural/include/Usage.h" 29 30 30 31 namespace morpheo { … … 36 37 namespace read_unit { 37 38 namespace read_queue { 38 39 class Tread_queue_entry_t40 {41 public : Tcontext_t _context_id ;42 public : Tcontext_t _front_end_id ;43 public : Tcontext_t _ooo_engine_id;44 public : Tpacket_t _rob_id ;45 public : Toperation_t _operation ;46 public : Ttype_t _type ;47 public : Tlsq_ptr_t _store_queue_ptr_write;48 public : Tlsq_ptr_t _load_queue_ptr_write;49 public : Tcontrol_t _has_immediat ;50 public : Tgeneral_data_t _immediat ;51 public : Tcontrol_t _read_ra ;52 public : Tgeneral_address_t _num_reg_ra ;53 public : Tcontrol_t _read_rb ;54 public : Tgeneral_address_t _num_reg_rb ;55 public : Tcontrol_t _read_rc ;56 public : Tspecial_address_t _num_reg_rc ;57 public : Tcontrol_t _write_rd ;58 public : Tgeneral_address_t _num_reg_rd ;59 public : Tcontrol_t _write_re ;60 public : Tspecial_address_t _num_reg_re ;61 62 friend std::ostream& operator<< (std::ostream& output_stream,63 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x)64 {65 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl66 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl67 << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl68 << " * _rob_id : " << toString(x._rob_id ) << std::endl69 << " * _operation : " << toString(x._operation ) << std::endl70 << " * _type : " << toString(x._type ) << std::endl71 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl72 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl73 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl74 << " * _immediat : " << toString(x._immediat ) << std::endl75 << " * _read_ra : " << toString(x._read_ra ) << std::endl76 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl77 << " * _read_rb : " << toString(x._read_rb ) << std::endl78 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl79 << " * _read_rc : " << toString(x._read_rc ) << std::endl80 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl81 << " * _write_rd : " << toString(x._write_rd ) << std::endl82 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl83 << " * _write_re : " << toString(x._write_re ) << std::endl84 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl;85 86 return output_stream;87 }88 89 };90 91 class Tread_queue_head_entry_t92 {93 public : Tcontext_t _context_id ;94 public : Tcontext_t _front_end_id ;95 public : Tcontext_t _ooo_engine_id;96 public : Tpacket_t _rob_id ;97 public : Toperation_t _operation ;98 public : Ttype_t _type ;99 public : Tlsq_ptr_t _store_queue_ptr_write;100 public : Tlsq_ptr_t _load_queue_ptr_write;101 public : Tcontrol_t _has_immediat ;102 public : Tgeneral_data_t _immediat ;103 public : Tcontrol_t _read_ra ;104 public : Tcontrol_t _read_ra_val ; // 1 : must access at the registerFile (after access, is set at 0)105 public : Tgeneral_address_t _num_reg_ra ;106 public : Tcontrol_t _data_ra_val ; // 1 : the read of registerFile is valid107 public : Tgeneral_data_t _data_ra ;108 public : Tcontrol_t _read_rb ;109 public : Tcontrol_t _read_rb_val ;110 public : Tgeneral_address_t _num_reg_rb ;111 public : Tcontrol_t _data_rb_val ;112 public : Tgeneral_data_t _data_rb ;113 public : Tcontrol_t _read_rc ;114 public : Tcontrol_t _read_rc_val ;115 public : Tspecial_address_t _num_reg_rc ;116 public : Tcontrol_t _data_rc_val ;117 public : Tspecial_data_t _data_rc ;118 public : Tcontrol_t _write_rd ;119 public : Tgeneral_address_t _num_reg_rd ;120 public : Tcontrol_t _write_re ;121 public : Tspecial_address_t _num_reg_re ;122 123 #undef FUNCTION124 #define FUNCTION "Tread_queue_head_entry_t::operator="125 public : Tread_queue_head_entry_t& operator=(Tread_queue_entry_t x)126 {127 log_printf(FUNC,Read_queue,FUNCTION,"Begin");128 129 _context_id = x._context_id ;130 _front_end_id = x._front_end_id ;131 _ooo_engine_id= x._ooo_engine_id;132 _rob_id = x._rob_id ;133 _operation = x._operation ;134 _type = x._type ;135 _store_queue_ptr_write = x._store_queue_ptr_write;136 _load_queue_ptr_write = x._load_queue_ptr_write ;137 _has_immediat = x._has_immediat ;138 _immediat = x._immediat ;139 _read_ra = x._read_ra ;140 _read_ra_val = x._read_ra == 1 ; //if not must read, the registerFile is already access141 _num_reg_ra = x._num_reg_ra ;142 _data_ra_val = x._read_ra == 0 ; //if not must read, the data is already valid143 _data_ra = 0 ;144 _read_rb = x._read_rb ;145 _read_rb_val = x._read_rb == 1 ;146 _num_reg_rb = x._num_reg_rb ;147 _data_rb_val = x._read_rb == 0 ;148 _data_rb = 0 ;149 _read_rc = x._read_rc ;150 _read_rc_val = x._read_rc == 1 ;151 _num_reg_rc = x._num_reg_rc ;152 _data_rc_val = x._read_rc == 0 ;153 _data_rc = 0 ;154 _write_rd = x._write_rd ;155 _num_reg_rd = x._num_reg_rd ;156 _write_re = x._write_re ;157 _num_reg_re = x._num_reg_re ;158 159 log_printf(FUNC,Read_queue,FUNCTION,"End");160 161 return *this;162 }163 164 friend std::ostream& operator<< (std::ostream& output_stream,165 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x)166 {167 output_stream << " * _context_id : " << x._context_id << std::endl168 << " * _front_end_id : " << x._front_end_id << std::endl169 << " * _ooo_engine_id : " << x._ooo_engine_id<< std::endl170 << " * _rob_id : " << x._rob_id << std::endl171 << " * _operation : " << x._operation << std::endl172 << " * _type : " << x._type << std::endl173 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl174 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl175 << " * _has_immediat : " << x._has_immediat << std::endl176 << " * _immediat : " << x._immediat << std::endl177 << " * _read_ra : " << x._read_ra << std::endl178 << " * _read_ra_val : " << x._read_ra_val << std::endl179 << " * _num_reg_ra : " << x._num_reg_ra << std::endl180 << " * _data_ra_val : " << x._data_ra_val << std::endl181 << " * _data_ra : " << x._data_ra << std::endl182 << " * _read_rb : " << x._read_rb << std::endl183 << " * _read_rb_val : " << x._read_rb_val << std::endl184 << " * _num_reg_rb : " << x._num_reg_rb << std::endl185 << " * _data_rb_val : " << x._data_rb_val << std::endl186 << " * _data_rb : " << x._data_rb << std::endl187 << " * _read_rc : " << x._read_rc << std::endl188 << " * _read_rc_val : " << x._read_rc_val << std::endl189 << " * _num_reg_rc : " << x._num_reg_rc << std::endl190 << " * _data_rc_val : " << x._data_rc_val << std::endl191 << " * _data_rc : " << x._data_rc << std::endl192 << " * _write_rd : " << x._write_rd << std::endl193 << " * _num_reg_rd : " << x._num_reg_rd << std::endl194 << " * _write_re : " << x._write_re << std::endl195 << " * _num_reg_re : " << x._num_reg_re << std::endl;196 197 return output_stream;198 }199 };200 39 201 40 class Read_queue … … 206 45 // -----[ fields ]---------------------------------------------------- 207 46 // Parameters 208 protected : const std::string _name; 209 protected : const Parameters * _param; 47 protected : const std::string _name; 48 protected : const Parameters * _param; 49 private : const Tusage_t _usage; 210 50 211 51 #ifdef STATISTICS … … 345 185 morpheo::behavioural::Parameters_Statistics * param_statistics, 346 186 #endif 347 Parameters * param ); 187 Parameters * param, 188 morpheo::behavioural::Tusage_t usage); 348 189 349 190 public : Read_queue (Parameters * param ); … … 381 222 }; // end namespace multi_execute_loop 382 223 }; // end namespace core 383 384 224 }; // end namespace behavioural 385 225 }; // end namespace morpheo
Note: See TracChangeset
for help on using the changeset viewer.