Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h	(revision 55)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h	(revision 66)
@@ -17,7 +17,7 @@
 #include "Common/include/ToString.h"
 #include "Common/include/Debug.h"
+#include "Behavioural/include/Types.h"
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h"
 #ifdef STATISTICS
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Statistics.h"
@@ -42,5 +42,7 @@
   {
   public    : Tcontext_t         _context_id   ;
-  public    : Tpacket_t          _packet_id    ;
+  public    : Tcontext_t         _front_end_id ;
+  public    : Tcontext_t         _ooo_engine_id;
+  public    : Tpacket_t          _rob_id       ;
   public    : Toperation_t       _operation    ;
   public    : Ttype_t            _type         ;
@@ -61,20 +63,22 @@
 				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x)
     {
-      output_stream << " * _context_id  : " << toString(x._context_id  ) << endl
-		    << " * _packet_id   : " << toString(x._packet_id   ) << endl
-		    << " * _operation   : " << toString(x._operation   ) << endl
-		    << " * _type        : " << toString(x._type        ) << endl
-		    << " * _has_immediat: " << toString(x._has_immediat) << endl
-		    << " * _immediat    : " << toString(x._immediat    ) << endl
-		    << " * _read_ra     : " << toString(x._read_ra     ) << endl
-		    << " * _num_reg_ra  : " << toString(x._num_reg_ra  ) << endl
-		    << " * _read_rb     : " << toString(x._read_rb     ) << endl
-		    << " * _num_reg_rb  : " << toString(x._num_reg_rb  ) << endl
-		    << " * _read_rc     : " << toString(x._read_rc     ) << endl
-		    << " * _num_reg_rc  : " << toString(x._num_reg_rc  ) << endl
-		    << " * _write_rd    : " << toString(x._write_rd    ) << endl
-		    << " * _num_reg_rd  : " << toString(x._num_reg_rd  ) << endl
-		    << " * _write_re    : " << toString(x._write_re    ) << endl
-		    << " * _num_reg_re  : " << toString(x._num_reg_re  ) << endl;
+      output_stream << " * _context_id    : " << toString(x._context_id   ) << endl
+		    << " * _front_end_id  : " << toString(x._front_end_id ) << endl
+		    << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << endl
+		    << " * _rob_id        : " << toString(x._rob_id       ) << endl
+		    << " * _operation     : " << toString(x._operation    ) << endl
+		    << " * _type          : " << toString(x._type         ) << endl
+		    << " * _has_immediat  : " << toString(x._has_immediat ) << endl
+		    << " * _immediat      : " << toString(x._immediat     ) << endl
+		    << " * _read_ra       : " << toString(x._read_ra      ) << endl
+		    << " * _num_reg_ra    : " << toString(x._num_reg_ra   ) << endl
+		    << " * _read_rb       : " << toString(x._read_rb      ) << endl
+		    << " * _num_reg_rb    : " << toString(x._num_reg_rb   ) << endl
+		    << " * _read_rc       : " << toString(x._read_rc      ) << endl
+		    << " * _num_reg_rc    : " << toString(x._num_reg_rc   ) << endl
+		    << " * _write_rd      : " << toString(x._write_rd     ) << endl
+		    << " * _num_reg_rd    : " << toString(x._num_reg_rd   ) << endl
+		    << " * _write_re      : " << toString(x._write_re     ) << endl
+		    << " * _num_reg_re    : " << toString(x._num_reg_re   ) << endl;
 
       return output_stream;
@@ -86,5 +90,7 @@
   {
   public    : Tcontext_t         _context_id   ;
-  public    : Tpacket_t          _packet_id    ;
+  public    : Tcontext_t         _front_end_id ;
+  public    : Tcontext_t         _ooo_engine_id;
+  public    : Tpacket_t          _rob_id       ;
   public    : Toperation_t       _operation    ;
   public    : Ttype_t            _type         ;
@@ -118,5 +124,7 @@
 	  
       _context_id   = x._context_id   ;
-      _packet_id    = x._packet_id    ;
+      _front_end_id = x._front_end_id ;
+      _ooo_engine_id= x._ooo_engine_id;
+      _rob_id       = x._rob_id       ;
       _operation    = x._operation    ;
       _type         = x._type         ;
@@ -151,29 +159,31 @@
 				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x)
     {
-      output_stream << " * _context_id  : " << x._context_id   << endl
-		    << " * _packet_id   : " << x._packet_id    << endl
-		    << " * _operation   : " << x._operation    << endl
-		    << " * _type        : " << x._type         << endl
-		    << " * _has_immediat: " << x._has_immediat << endl
-		    << " * _immediat    : " << x._immediat     << endl
-		    << " * _read_ra     : " << x._read_ra      << endl
-		    << " * _read_ra_val : " << x._read_ra_val  << endl 
-		    << " * _num_reg_ra  : " << x._num_reg_ra   << endl
-		    << " * _data_ra_val : " << x._data_ra_val  << endl
-		    << " * _data_ra     : " << x._data_ra      << endl
-		    << " * _read_rb     : " << x._read_rb      << endl
-		    << " * _read_rb_val : " << x._read_rb_val  << endl
-		    << " * _num_reg_rb  : " << x._num_reg_rb   << endl
-		    << " * _data_rb_val : " << x._data_rb_val  << endl
-		    << " * _data_rb     : " << x._data_rb      << endl
-		    << " * _read_rc     : " << x._read_rc      << endl
-		    << " * _read_rc_val : " << x._read_rc_val  << endl
-		    << " * _num_reg_rc  : " << x._num_reg_rc   << endl
-		    << " * _data_rc_val : " << x._data_rc_val  << endl
-		    << " * _data_rc     : " << x._data_rc      << endl
-		    << " * _write_rd    : " << x._write_rd     << endl
-		    << " * _num_reg_rd  : " << x._num_reg_rd   << endl
-		    << " * _write_re    : " << x._write_re     << endl
-		    << " * _num_reg_re  : " << x._num_reg_re   << endl;
+      output_stream << " * _context_id    : " << x._context_id   << endl
+		    << " * _front_end_id  : " << x._front_end_id << endl
+		    << " * _ooo_engine_id : " << x._ooo_engine_id<< endl
+		    << " * _rob_id        : " << x._rob_id       << endl
+		    << " * _operation     : " << x._operation    << endl
+		    << " * _type          : " << x._type         << endl
+		    << " * _has_immediat  : " << x._has_immediat << endl
+		    << " * _immediat      : " << x._immediat     << endl
+		    << " * _read_ra       : " << x._read_ra      << endl
+		    << " * _read_ra_val   : " << x._read_ra_val  << endl 
+		    << " * _num_reg_ra    : " << x._num_reg_ra   << endl
+		    << " * _data_ra_val   : " << x._data_ra_val  << endl
+		    << " * _data_ra       : " << x._data_ra      << endl
+		    << " * _read_rb       : " << x._read_rb      << endl
+		    << " * _read_rb_val   : " << x._read_rb_val  << endl
+		    << " * _num_reg_rb    : " << x._num_reg_rb   << endl
+		    << " * _data_rb_val   : " << x._data_rb_val  << endl
+		    << " * _data_rb       : " << x._data_rb      << endl
+		    << " * _read_rc       : " << x._read_rc      << endl
+		    << " * _read_rc_val   : " << x._read_rc_val  << endl
+		    << " * _num_reg_rc    : " << x._num_reg_rc   << endl
+		    << " * _data_rc_val   : " << x._data_rc_val  << endl
+		    << " * _data_rc       : " << x._data_rc      << endl
+		    << " * _write_rd      : " << x._write_rd     << endl
+		    << " * _num_reg_rd    : " << x._num_reg_rd   << endl
+		    << " * _write_re      : " << x._write_re     << endl
+		    << " * _num_reg_re    : " << x._num_reg_re   << endl;
 
       return output_stream;
@@ -209,5 +219,7 @@
   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_IN_ACK          ;
   public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_CONTEXT_ID   ;
-  public    : SC_IN (Tpacket_t         )    *  in_READ_QUEUE_IN_PACKET_ID    ;
+  public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_FRONT_END_ID ;
+  public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_OOO_ENGINE_ID;
+  public    : SC_IN (Tpacket_t         )    *  in_READ_QUEUE_IN_ROB_ID       ;
   public    : SC_IN (Toperation_t      )    *  in_READ_QUEUE_IN_OPERATION    ;
   public    : SC_IN (Ttype_t           )    *  in_READ_QUEUE_IN_TYPE         ;
@@ -229,6 +241,8 @@
   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_VAL         ;
   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_OUT_ACK         ;
-  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_CONTEXT_ID  ;
-  public    : SC_OUT(Tpacket_t         )    * out_READ_QUEUE_OUT_PACKET_ID   ;
+  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_CONTEXT_ID   ;
+  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_FRONT_END_ID ;
+  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_OOO_ENGINE_ID;
+  public    : SC_OUT(Tpacket_t         )    * out_READ_QUEUE_OUT_ROB_ID       ;
   public    : SC_OUT(Toperation_t      )    * out_READ_QUEUE_OUT_OPERATION   ;
   public    : SC_OUT(Ttype_t           )    * out_READ_QUEUE_OUT_TYPE        ;
@@ -254,33 +268,33 @@
     // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  public    : SC_OUT(Tcontrol_t        )   ** out_GPR_READ_VAL       ;
-  public    : SC_IN (Tcontrol_t        )   **  in_GPR_READ_ACK       ;
-  public    : SC_OUT(Tcontext_t        )   ** out_GPR_READ_CONTEXT_ID;
-  public    : SC_OUT(Tgeneral_address_t)   ** out_GPR_READ_NUM_REG   ;
-  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_READ_DATA      ;
-  public    : SC_IN (Tcontrol_t        )   **  in_GPR_READ_DATA_VAL  ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_GPR_READ_VAL          ;
+  public    : SC_IN (Tcontrol_t        )   **  in_GPR_READ_ACK          ;
+  public    : SC_OUT(Tcontext_t        )   ** out_GPR_READ_OOO_ENGINE_ID;
+  public    : SC_OUT(Tgeneral_address_t)   ** out_GPR_READ_NUM_REG      ;
+  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_READ_DATA         ;
+  public    : SC_IN (Tcontrol_t        )   **  in_GPR_READ_DATA_VAL     ;
 
     // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  public    : SC_OUT(Tcontrol_t        )   ** out_SPR_READ_VAL       ;
-  public    : SC_IN (Tcontrol_t        )   **  in_SPR_READ_ACK       ;
-  public    : SC_OUT(Tcontext_t        )   ** out_SPR_READ_CONTEXT_ID;
-  public    : SC_OUT(Tspecial_address_t)   ** out_SPR_READ_NUM_REG   ;
-  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_READ_DATA      ;
-  public    : SC_IN (Tcontrol_t        )   **  in_SPR_READ_DATA_VAL  ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_SPR_READ_VAL          ;
+  public    : SC_IN (Tcontrol_t        )   **  in_SPR_READ_ACK          ;
+  public    : SC_OUT(Tcontext_t        )   ** out_SPR_READ_OOO_ENGINE_ID;
+  public    : SC_OUT(Tspecial_address_t)   ** out_SPR_READ_NUM_REG      ;
+  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_READ_DATA         ;
+  public    : SC_IN (Tcontrol_t        )   **  in_SPR_READ_DATA_VAL     ;
 
     // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  public    : SC_IN (Tcontrol_t        )   **  in_GPR_WRITE_VAL       ;
-  public    : SC_IN (Tcontext_t        )   **  in_GPR_WRITE_CONTEXT_ID;
-  public    : SC_IN (Tgeneral_address_t)   **  in_GPR_WRITE_NUM_REG   ;
-  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_WRITE_DATA      ;
+  public    : SC_IN (Tcontrol_t        )   **  in_GPR_WRITE_VAL          ;
+  public    : SC_IN (Tcontext_t        )   **  in_GPR_WRITE_OOO_ENGINE_ID;
+  public    : SC_IN (Tgeneral_address_t)   **  in_GPR_WRITE_NUM_REG      ;
+  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_WRITE_DATA         ;
 
     // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  public    : SC_IN (Tcontrol_t        )   **  in_SPR_WRITE_VAL       ;
-  public    : SC_IN (Tcontext_t        )   **  in_SPR_WRITE_CONTEXT_ID;
-  public    : SC_IN (Tspecial_address_t)   **  in_SPR_WRITE_NUM_REG   ;
-  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA      ;
+  public    : SC_IN (Tcontrol_t        )   **  in_SPR_WRITE_VAL          ;
+  public    : SC_IN (Tcontext_t        )   **  in_SPR_WRITE_OOO_ENGINE_ID;
+  public    : SC_IN (Tspecial_address_t)   **  in_SPR_WRITE_NUM_REG      ;
+  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA         ;
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
