Changeset 76 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:
- Feb 2, 2008, 12:39:01 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
r75 r76 5 5 * $Id$ 6 6 * 7 * [ 7 * [ Description ] 8 8 * 9 9 */ … … 45 45 public : Toperation_t _operation ; 46 46 public : Ttype_t _type ; 47 public : Tlsq_ptr_t _store_queue_ptr_write; 48 public : Tlsq_ptr_t _load_queue_ptr_write; 47 49 public : Tcontrol_t _has_immediat ; 48 50 public : Tgeneral_data_t _immediat ; … … 61 63 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x) 62 64 { 63 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl 64 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl 65 << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl 66 << " * _rob_id : " << toString(x._rob_id ) << std::endl 67 << " * _operation : " << toString(x._operation ) << std::endl 68 << " * _type : " << toString(x._type ) << std::endl 69 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl 70 << " * _immediat : " << toString(x._immediat ) << std::endl 71 << " * _read_ra : " << toString(x._read_ra ) << std::endl 72 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl 73 << " * _read_rb : " << toString(x._read_rb ) << std::endl 74 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl 75 << " * _read_rc : " << toString(x._read_rc ) << std::endl 76 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl 77 << " * _write_rd : " << toString(x._write_rd ) << std::endl 78 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl 79 << " * _write_re : " << toString(x._write_re ) << std::endl 80 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl; 65 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl 66 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl 67 << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl 68 << " * _rob_id : " << toString(x._rob_id ) << std::endl 69 << " * _operation : " << toString(x._operation ) << std::endl 70 << " * _type : " << toString(x._type ) << std::endl 71 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl 72 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl 73 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl 74 << " * _immediat : " << toString(x._immediat ) << std::endl 75 << " * _read_ra : " << toString(x._read_ra ) << std::endl 76 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl 77 << " * _read_rb : " << toString(x._read_rb ) << std::endl 78 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl 79 << " * _read_rc : " << toString(x._read_rc ) << std::endl 80 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl 81 << " * _write_rd : " << toString(x._write_rd ) << std::endl 82 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl 83 << " * _write_re : " << toString(x._write_re ) << std::endl 84 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl; 81 85 82 86 return output_stream; … … 93 97 public : Toperation_t _operation ; 94 98 public : Ttype_t _type ; 99 public : Tlsq_ptr_t _store_queue_ptr_write; 100 public : Tlsq_ptr_t _load_queue_ptr_write; 95 101 public : Tcontrol_t _has_immediat ; 96 102 public : Tgeneral_data_t _immediat ; … … 127 133 _operation = x._operation ; 128 134 _type = x._type ; 135 _store_queue_ptr_write = x._store_queue_ptr_write; 136 _load_queue_ptr_write = x._load_queue_ptr_write ; 129 137 _has_immediat = x._has_immediat ; 130 138 _immediat = x._immediat ; … … 157 165 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x) 158 166 { 159 output_stream << " * _context_id : " << x._context_id << std::endl 160 << " * _front_end_id : " << x._front_end_id << std::endl 161 << " * _ooo_engine_id : " << x._ooo_engine_id<< std::endl 162 << " * _rob_id : " << x._rob_id << std::endl 163 << " * _operation : " << x._operation << std::endl 164 << " * _type : " << x._type << std::endl 165 << " * _has_immediat : " << x._has_immediat << std::endl 166 << " * _immediat : " << x._immediat << std::endl 167 << " * _read_ra : " << x._read_ra << std::endl 168 << " * _read_ra_val : " << x._read_ra_val << std::endl 169 << " * _num_reg_ra : " << x._num_reg_ra << std::endl 170 << " * _data_ra_val : " << x._data_ra_val << std::endl 171 << " * _data_ra : " << x._data_ra << std::endl 172 << " * _read_rb : " << x._read_rb << std::endl 173 << " * _read_rb_val : " << x._read_rb_val << std::endl 174 << " * _num_reg_rb : " << x._num_reg_rb << std::endl 175 << " * _data_rb_val : " << x._data_rb_val << std::endl 176 << " * _data_rb : " << x._data_rb << std::endl 177 << " * _read_rc : " << x._read_rc << std::endl 178 << " * _read_rc_val : " << x._read_rc_val << std::endl 179 << " * _num_reg_rc : " << x._num_reg_rc << std::endl 180 << " * _data_rc_val : " << x._data_rc_val << std::endl 181 << " * _data_rc : " << x._data_rc << std::endl 182 << " * _write_rd : " << x._write_rd << std::endl 183 << " * _num_reg_rd : " << x._num_reg_rd << std::endl 184 << " * _write_re : " << x._write_re << std::endl 185 << " * _num_reg_re : " << x._num_reg_re << std::endl; 167 output_stream << " * _context_id : " << x._context_id << std::endl 168 << " * _front_end_id : " << x._front_end_id << std::endl 169 << " * _ooo_engine_id : " << x._ooo_engine_id<< std::endl 170 << " * _rob_id : " << x._rob_id << std::endl 171 << " * _operation : " << x._operation << std::endl 172 << " * _type : " << x._type << std::endl 173 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl 174 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl 175 << " * _has_immediat : " << x._has_immediat << std::endl 176 << " * _immediat : " << x._immediat << std::endl 177 << " * _read_ra : " << x._read_ra << std::endl 178 << " * _read_ra_val : " << x._read_ra_val << std::endl 179 << " * _num_reg_ra : " << x._num_reg_ra << std::endl 180 << " * _data_ra_val : " << x._data_ra_val << std::endl 181 << " * _data_ra : " << x._data_ra << std::endl 182 << " * _read_rb : " << x._read_rb << std::endl 183 << " * _read_rb_val : " << x._read_rb_val << std::endl 184 << " * _num_reg_rb : " << x._num_reg_rb << std::endl 185 << " * _data_rb_val : " << x._data_rb_val << std::endl 186 << " * _data_rb : " << x._data_rb << std::endl 187 << " * _read_rc : " << x._read_rc << std::endl 188 << " * _read_rc_val : " << x._read_rc_val << std::endl 189 << " * _num_reg_rc : " << x._num_reg_rc << std::endl 190 << " * _data_rc_val : " << x._data_rc_val << std::endl 191 << " * _data_rc : " << x._data_rc << std::endl 192 << " * _write_rd : " << x._write_rd << std::endl 193 << " * _num_reg_rd : " << x._num_reg_rd << std::endl 194 << " * _write_re : " << x._write_re << std::endl 195 << " * _num_reg_re : " << x._num_reg_re << std::endl; 186 196 187 197 return output_stream; … … 194 204 #endif 195 205 { 196 // -----[ 206 // -----[ fields ]---------------------------------------------------- 197 207 // Parameters 198 208 protected : const std::string _name; … … 207 217 208 218 #ifdef SYSTEMC 209 // ~~~~~[ 219 // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 210 220 // Interface 211 221 public : SC_CLOCK * in_CLOCK ; 212 222 public : SC_IN (Tcontrol_t ) * in_NRESET ; 213 223 214 // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 216 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_VAL ; 217 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_IN_ACK ; 218 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_CONTEXT_ID ; 219 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_FRONT_END_ID ; 220 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_OOO_ENGINE_ID; 221 public : SC_IN (Tpacket_t ) * in_READ_QUEUE_IN_ROB_ID ; 222 public : SC_IN (Toperation_t ) * in_READ_QUEUE_IN_OPERATION ; 223 public : SC_IN (Ttype_t ) * in_READ_QUEUE_IN_TYPE ; 224 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_HAS_IMMEDIAT ; 225 public : SC_IN (Tgeneral_data_t ) * in_READ_QUEUE_IN_IMMEDIAT ; 226 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RA ; 227 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RA ; 228 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RB ; 229 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RB ; 230 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RC ; 231 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RC ; 232 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RD ; 233 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RD ; 234 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RE ; 235 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RE ; 236 237 // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 239 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_VAL ; 240 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_OUT_ACK ; 241 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_CONTEXT_ID ; 242 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_FRONT_END_ID ; 243 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_OOO_ENGINE_ID; 244 public : SC_OUT(Tpacket_t ) * out_READ_QUEUE_OUT_ROB_ID ; 245 public : SC_OUT(Toperation_t ) * out_READ_QUEUE_OUT_OPERATION ; 246 public : SC_OUT(Ttype_t ) * out_READ_QUEUE_OUT_TYPE ; 247 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_HAS_IMMEDIAT; 248 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_IMMEDIAT ; 249 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RA ; 250 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RA ; 251 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RA_VAL ; 252 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RA ; 253 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RB ; 254 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RB ; 255 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RB_VAL ; 256 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RB ; 257 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RC ; 258 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RC ; 259 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RC_VAL ; 260 public : SC_OUT(Tspecial_data_t ) * out_READ_QUEUE_OUT_DATA_RC ; 261 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RD ; 262 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RD ; 263 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RE ; 264 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RE ; 265 266 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 226 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_VAL ; 227 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_IN_ACK ; 228 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_CONTEXT_ID ; 229 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_FRONT_END_ID ; 230 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_OOO_ENGINE_ID ; 231 public : SC_IN (Tpacket_t ) * in_READ_QUEUE_IN_ROB_ID ; 232 public : SC_IN (Toperation_t ) * in_READ_QUEUE_IN_OPERATION ; 233 public : SC_IN (Ttype_t ) * in_READ_QUEUE_IN_TYPE ; 234 public : SC_IN (Tlsq_ptr_t ) * in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE; 235 public : SC_IN (Tlsq_ptr_t ) * in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ; 236 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_HAS_IMMEDIAT ; 237 public : SC_IN (Tgeneral_data_t ) * in_READ_QUEUE_IN_IMMEDIAT ; 238 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RA ; 239 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RA ; 240 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RB ; 241 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RB ; 242 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RC ; 243 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RC ; 244 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RD ; 245 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RD ; 246 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RE ; 247 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RE ; 248 249 // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 251 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_VAL ; 252 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_OUT_ACK ; 253 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_CONTEXT_ID ; 254 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_FRONT_END_ID ; 255 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_OOO_ENGINE_ID ; 256 public : SC_OUT(Tpacket_t ) * out_READ_QUEUE_OUT_ROB_ID ; 257 public : SC_OUT(Toperation_t ) * out_READ_QUEUE_OUT_OPERATION ; 258 public : SC_OUT(Ttype_t ) * out_READ_QUEUE_OUT_TYPE ; 259 public : SC_OUT(Tlsq_ptr_t ) * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE; 260 public : SC_OUT(Tlsq_ptr_t ) * out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ; 261 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_HAS_IMMEDIAT ; 262 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_IMMEDIAT ; 263 // public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RA ; 264 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RA ; 265 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RA_VAL ; 266 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RA ; 267 // public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RB ; 268 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RB ; 269 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RB_VAL ; 270 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RB ; 271 // public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RC ; 272 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RC ; 273 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RC_VAL ; 274 public : SC_OUT(Tspecial_data_t ) * out_READ_QUEUE_OUT_DATA_RC ; 275 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RD ; 276 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RD ; 277 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RE ; 278 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RE ; 279 280 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 281 268 282 public : SC_OUT(Tcontrol_t ) ** out_GPR_READ_VAL ; … … 273 287 public : SC_IN (Tcontrol_t ) ** in_GPR_READ_DATA_VAL ; 274 288 275 // ~~~~~[ 289 // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 290 277 291 public : SC_OUT(Tcontrol_t ) ** out_SPR_READ_VAL ; … … 282 296 public : SC_IN (Tcontrol_t ) ** in_SPR_READ_DATA_VAL ; 283 297 284 // ~~~~~[ 298 // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 299 286 300 public : SC_IN (Tcontrol_t ) ** in_GPR_WRITE_VAL ; … … 289 303 public : SC_IN (Tgeneral_data_t ) ** in_GPR_WRITE_DATA ; 290 304 291 // ~~~~~[ 305 // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 306 293 307 public : SC_IN (Tcontrol_t ) ** in_SPR_WRITE_VAL ; … … 296 310 public : SC_IN (Tspecial_data_t ) ** in_SPR_WRITE_DATA ; 297 311 298 // ~~~~~[ 299 300 // ~~~~~[ 312 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 314 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 315 protected : Tread_queue_head_entry_t * _queue_head; 302 316 protected : std::queue<Tread_queue_entry_t *> * _queue; 303 317 304 // ~~~~~[ 318 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 305 319 306 320 protected :Tcontrol_t internal_READ_QUEUE_OUT_VAL ; … … 317 331 #endif 318 332 319 // -----[ 333 // -----[ methods ]--------------------------------------------------- 320 334 321 335 #ifdef SYSTEMC
Note: See TracChangeset
for help on using the changeset viewer.