Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/include/Parameters.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/include/Parameters.h	(revision 138)
@@ -59,4 +59,5 @@
     // Read bloc
   public : uint32_t                _nb_read_bloc                                  ;//
+  public : uint32_t              * _nb_inst_read                                  ;//[nb_read_bloc]
   public : uint32_t              * _size_read_queue                               ;//[nb_read_bloc]
   public : uint32_t              * _size_reservation_station                      ;//[nb_read_bloc]
@@ -65,4 +66,5 @@
     // Write bloc
   public : uint32_t                _nb_write_bloc                                 ;//
+  public : uint32_t              * _nb_inst_write                                 ;//[nb_write_bloc]
   public : uint32_t              * _size_write_queue                              ;//[nb_write_bloc]
   public : uint32_t              * _size_execute_queue                            ;//[nb_write_bloc]
@@ -76,7 +78,12 @@
   public : uint32_t              * _size_load_queue                               ;//[nb_load_store_unit]
   public : uint32_t              * _size_speculative_access_queue                 ;//[nb_load_store_unit]
+  public : uint32_t              * _nb_store_queue_bank                           ;//[nb_load_store_unit]
+  public : uint32_t              * _nb_load_queue_bank                            ;//[nb_load_store_unit]
   public : uint32_t              * _nb_port_check                                 ;//[nb_load_store_unit]
   public : core::multi_execute_loop::execute_loop::Tspeculative_load_t  
                                  * _speculative_load                              ;//[nb_load_store_unit]
+  public : Tpredictor_t          * _speculative_commit_predictor_scheme           ;//[nb_load_store_unit]
+  public : uint32_t             ** _lsu_pht_size_counter                          ;//[nb_load_store_unit][1]
+  public : uint32_t             ** _lsu_pht_nb_counter                            ;//[nb_load_store_unit][1]
   public : uint32_t              * _nb_bypass_memory                              ;//[nb_load_store_unit]
   public : uint32_t              * _nb_cache_port                                 ;//[nb_load_store_unit]
@@ -130,4 +137,6 @@
   public : uint32_t              * _size_re_order_buffer                          ;//[nb_ooo_engine]
   public : uint32_t              * _nb_re_order_buffer_bank                       ;//[nb_ooo_engine]
+  public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t
+                                 * _retire_ooo_scheme                             ;//[nb_ooo_engine]
   public : Tpriority_t           * _commit_priority                               ;//[nb_ooo_engine]
   public : Tload_balancing_t     * _commit_load_balancing                         ;//[nb_ooo_engine]
@@ -139,6 +148,4 @@
   public : Tload_balancing_t     * _issue_load_balancing                          ;//[nb_ooo_engine]
   public : uint32_t              * _size_reexecute_queue                          ;//[nb_ooo_engine]
-  public : Tpriority_t           * _reexecute_priority                            ;//[nb_ooo_engine]
-  public : Tload_balancing_t     * _reexecute_load_balancing                      ;//[nb_ooo_engine]
  
     // Execute_loop
@@ -166,8 +173,8 @@
   public : uint32_t              * _link_decod_bloc_with_thread                   ;//[nb_thread]
   public : uint32_t              * _link_rename_bloc_with_front_end               ;//[nb_front_end]
-  public : bool                *** _table_dispatch                                ;//[nb_ooo_engine][nb_inst_issue][nb_read_bloc]
-  public : bool                 ** _link_read_bloc_and_load_store_unit            ;//[nb_read_bloc][nb_load_store_unit]
+//public : bool                *** _table_dispatch                                ;//[nb_ooo_engine][nb_issue_queue_bank][nb_read_bloc]
+  public : uint32_t              * _link_read_bloc_with_load_store_unit           ;//[nb_load_store_unit]
   public : bool                 ** _link_read_bloc_and_functionnal_unit           ;//[nb_read_bloc][nb_functionnal_unit]
-  public : bool                 ** _link_write_bloc_and_load_store_unit           ;//[nb_write_bloc][nb_load_store_unit]
+  public : uint32_t              * _link_write_bloc_with_load_store_unit          ;//[nb_load_store_unit]
   public : bool                 ** _link_write_bloc_and_functionnal_unit          ;//[nb_write_bloc][nb_functionnal_unit]
   public : uint32_t              * _link_load_store_unit_with_thread              ;//[nb_thread]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration.cpp	(revision 138)
@@ -46,5 +46,5 @@
                 fromString<uint32_t>         (_simulator->getParam("debug_idle_time")));
 
-    log_init(fromString<bool>(_simulator->getParam("debug_log_file_generate")),
+    log_init(fromString<bool>  (_simulator->getParam("debug_log_file_generate")),
              fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
              fromString<bool>  (_simulator->getParam("simulation_file_with_pid")),
@@ -91,9 +91,10 @@
     // Simulation condition stop 
     //--------------------------------------------------
-    simulation_init (fromString<double>(_simulator->getParam("simulation_nb_cycle")),
-                     fromString<double>(_simulator->getParam("debug_nb_cycle")),
-                     fromString<double>(_simulator->getParam("simulation_nb_instruction")),
-                     fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
-                     fromString<bool>  (_simulator->getParam("simulation_file_with_pid"))
+    simulation_init (fromString<double>     (_simulator->getParam("simulation_nb_cycle")),
+                     fromString<double>     (_simulator->getParam("debug_nb_cycle")),
+                     fromString<double>     (_simulator->getParam("simulation_nb_instruction")),
+                     fromString<stop_type_t>(_simulator->getParam("simulation_stop_type")),
+                     fromString<bool>       (_simulator->getParam("simulation_file_with_date")),
+                     fromString<bool>       (_simulator->getParam("simulation_file_with_pid"))
                      );
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance.cpp	(revision 138)
@@ -74,8 +74,8 @@
         DELETE1(_param->_link_load_store_unit_with_thread       ,_param->_nb_thread);
         DELETE2(_param->_link_write_bloc_and_functionnal_unit   ,_param->_nb_write_bloc,_param->_nb_functionnal_unit);
-        DELETE2(_param->_link_write_bloc_and_load_store_unit    ,_param->_nb_write_bloc,_param->_nb_load_store_unit);
+        DELETE1(_param->_link_write_bloc_with_load_store_unit   ,_param->_nb_load_store_unit);
         DELETE2(_param->_link_read_bloc_and_functionnal_unit    ,_param->_nb_read_bloc,_param->_nb_functionnal_unit);
-        DELETE2(_param->_link_read_bloc_and_load_store_unit     ,_param->_nb_read_bloc,_param->_nb_load_store_unit);
-        DELETE3(_param->_table_dispatch                         ,_param->_nb_ooo_engine,_param->_nb_inst_issue[it1],_param->_nb_read_bloc);
+        DELETE1(_param->_link_read_bloc_with_load_store_unit    ,_param->_nb_load_store_unit);
+//      DELETE3(_param->_table_dispatch                         ,_param->_nb_ooo_engine,_param->_nb_issue_queue_bank[it1],_param->_nb_read_bloc);
         DELETE1(_param->_link_rename_bloc_with_front_end        ,_param->_nb_front_end);
         DELETE1(_param->_link_decod_bloc_with_thread            ,_param->_nb_thread);
@@ -98,6 +98,4 @@
         DELETE1(_param->_nb_execute_unit                        ,_param->_nb_execute_loop);
         DELETE1(_param->_nb_read_unit                           ,_param->_nb_execute_loop);
-        DELETE1(_param->_reexecute_load_balancing               ,_param->_nb_ooo_engine);
-        DELETE1(_param->_reexecute_priority                     ,_param->_nb_ooo_engine);
         DELETE1(_param->_size_reexecute_queue                   ,_param->_nb_ooo_engine);
         DELETE1(_param->_issue_load_balancing                   ,_param->_nb_ooo_engine);
@@ -108,4 +106,5 @@
         DELETE1(_param->_commit_load_balancing                  ,_param->_nb_ooo_engine);
         DELETE1(_param->_commit_priority                        ,_param->_nb_ooo_engine);
+        DELETE1(_param->_retire_ooo_scheme                      ,_param->_nb_ooo_engine);
         DELETE1(_param->_nb_re_order_buffer_bank                ,_param->_nb_ooo_engine);
         DELETE1(_param->_size_re_order_buffer                   ,_param->_nb_ooo_engine);
@@ -136,19 +135,27 @@
         DELETE3(_param->_timing                                 ,_param->_nb_functionnal_unit,MAX_TYPE,MAX_OPERATION);
         DELETE1(_param->_nb_inst_functionnal_unit               ,_param->_nb_functionnal_unit);
-        DELETE1(_param->_speculative_load                       ,_param->_nb_load_store_unit);
         DELETE1(_param->_nb_inst_memory                         ,_param->_nb_load_store_unit);
         DELETE1(_param->_nb_cache_port                          ,_param->_nb_load_store_unit);
         DELETE1(_param->_nb_bypass_memory                       ,_param->_nb_load_store_unit);
+        DELETE2(_param->_lsu_pht_nb_counter                     ,_param->_nb_load_store_unit,1);
+        DELETE2(_param->_lsu_pht_size_counter                   ,_param->_nb_load_store_unit,1);
+        DELETE1(_param->_speculative_commit_predictor_scheme    ,_param->_nb_load_store_unit);
+        DELETE1(_param->_speculative_load                       ,_param->_nb_load_store_unit);
         DELETE1(_param->_nb_port_check                          ,_param->_nb_load_store_unit);
+        DELETE1(_param->_nb_load_queue_bank                     ,_param->_nb_load_store_unit);
+        DELETE1(_param->_nb_store_queue_bank                    ,_param->_nb_load_store_unit);
         DELETE1(_param->_size_speculative_access_queue          ,_param->_nb_load_store_unit);
         DELETE1(_param->_size_load_queue                        ,_param->_nb_load_store_unit);
         DELETE1(_param->_size_store_queue                       ,_param->_nb_load_store_unit);
+
         DELETE1(_param->_write_queue_scheme                     ,_param->_nb_write_bloc);
         DELETE1(_param->_nb_bypass_write                        ,_param->_nb_write_bloc);
         DELETE1(_param->_size_execute_queue                     ,_param->_nb_write_bloc);
         DELETE1(_param->_size_write_queue                       ,_param->_nb_write_bloc);
+        DELETE1(_param->_nb_inst_write                          ,_param->_nb_write_bloc);
         DELETE1(_param->_nb_inst_retire_reservation_station     ,_param->_nb_read_bloc);
         DELETE1(_param->_size_reservation_station               ,_param->_nb_read_bloc);
         DELETE1(_param->_size_read_queue                        ,_param->_nb_read_bloc);
+        DELETE1(_param->_nb_inst_read                           ,_param->_nb_read_bloc);
 //      DELETE1(_param->_size_read_counter                      ,_param->_nb_rename_bloc);
         DELETE1(_param->_nb_rename_unit_bank                    ,_param->_nb_rename_bloc);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_fromInternalStructure.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_fromInternalStructure.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_fromInternalStructure.cpp	(revision 138)
@@ -138,4 +138,5 @@
     // Read_bloc
     //-----------------------------------------------------
+    ALLOC1(_param->_nb_inst_read                      ,uint32_t,_param->_nb_read_bloc);
     ALLOC1(_param->_size_read_queue                   ,uint32_t,_param->_nb_read_bloc);
     ALLOC1(_param->_size_reservation_station          ,uint32_t,_param->_nb_read_bloc);
@@ -146,4 +147,5 @@
       //log_printf(INFO,Configuration,FUNCTION,_("READ_BLOC [%d]"),i);
 
+        _param->_nb_inst_read                       [i] = fromString<uint32_t> (getParam("nb_inst_read"                      ,"read_bloc",toString(i).c_str(),""));
         _param->_size_read_queue                    [i] = fromString<uint32_t> (getParam("size_read_queue"                   ,"read_bloc",toString(i).c_str(),""));
         _param->_size_reservation_station           [i] = fromString<uint32_t> (getParam("size_reservation_station"          ,"read_bloc",toString(i).c_str(),""));
@@ -154,4 +156,5 @@
     // Write_bloc
     //-----------------------------------------------------
+    ALLOC1(_param->_nb_inst_write     ,uint32_t,_param->_nb_write_bloc);
     ALLOC1(_param->_size_write_queue  ,uint32_t,_param->_nb_write_bloc);
     ALLOC1(_param->_size_execute_queue,uint32_t,_param->_nb_write_bloc);
@@ -163,4 +166,5 @@
       //log_printf(INFO,Configuration,FUNCTION,_("WRITE_BLOC [%d]"),i);
 
+        _param->_nb_inst_write      [i] = fromString<uint32_t> (getParam("nb_inst_write"     ,"write_bloc",toString(i).c_str(),""));
         _param->_size_write_queue   [i] = fromString<uint32_t> (getParam("size_write_queue"  ,"write_bloc",toString(i).c_str(),""));
         _param->_size_execute_queue [i] = fromString<uint32_t> (getParam("size_execute_queue","write_bloc",toString(i).c_str(),""));
@@ -172,12 +176,17 @@
     // load_store_unit
     //-----------------------------------------------------
-    ALLOC1(_param->_size_store_queue             ,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_size_load_queue              ,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_size_speculative_access_queue,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_nb_port_check                ,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_nb_bypass_memory             ,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_nb_cache_port                ,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_nb_inst_memory               ,uint32_t,_param->_nb_load_store_unit);
-    ALLOC1(_param->_speculative_load             ,core::multi_execute_loop::execute_loop::Tspeculative_load_t,_param->_nb_load_store_unit);
+    ALLOC1(_param->_size_store_queue                   ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_size_load_queue                    ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_size_speculative_access_queue      ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_nb_store_queue_bank                ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_nb_load_queue_bank                 ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_nb_port_check                      ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_speculative_load                   ,core::multi_execute_loop::execute_loop::Tspeculative_load_t,_param->_nb_load_store_unit);
+    ALLOC1(_param->_speculative_commit_predictor_scheme,Tpredictor_t,_param->_nb_load_store_unit);
+    ALLOC2(_param->_lsu_pht_size_counter               ,uint32_t    ,_param->_nb_load_store_unit,1);
+    ALLOC2(_param->_lsu_pht_nb_counter                 ,uint32_t    ,_param->_nb_load_store_unit,1);
+    ALLOC1(_param->_nb_bypass_memory                   ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_nb_cache_port                      ,uint32_t    ,_param->_nb_load_store_unit);
+    ALLOC1(_param->_nb_inst_memory                     ,uint32_t    ,_param->_nb_load_store_unit);
 
     for (uint32_t i=0; i<_param->_nb_load_store_unit; ++i)
@@ -185,13 +194,35 @@
       //log_printf(INFO,Configuration,FUNCTION,_("LOAD_STORE_UNIT [%d]"),i);
 
-        _param->_size_store_queue              [i] = fromString<uint32_t> (getParam("size_store_queue"             ,"load_store_unit",toString(i).c_str(),""));
-        _param->_size_load_queue               [i] = fromString<uint32_t> (getParam("size_load_queue"              ,"load_store_unit",toString(i).c_str(),""));
-        _param->_size_speculative_access_queue [i] = fromString<uint32_t> (getParam("size_speculative_access_queue","load_store_unit",toString(i).c_str(),""));
-        _param->_nb_port_check                 [i] = fromString<uint32_t> (getParam("nb_port_check"                ,"load_store_unit",toString(i).c_str(),""));
-        _param->_nb_bypass_memory              [i] = fromString<uint32_t> (getParam("nb_bypass_memory"             ,"load_store_unit",toString(i).c_str(),""));
-        _param->_nb_cache_port                 [i] = fromString<uint32_t> (getParam("nb_cache_port"                ,"load_store_unit",toString(i).c_str(),""));
-        _param->_nb_inst_memory                [i] = fromString<uint32_t> (getParam("nb_inst_memory"               ,"load_store_unit",toString(i).c_str(),""));
-
-        _param->_speculative_load [i] = fromString<core::multi_execute_loop::execute_loop::Tspeculative_load_t> (getParam("speculative_load","load_store_unit",toString(i).c_str(),""));
+        _param->_size_store_queue                    [i] = fromString<uint32_t    > (getParam("size_store_queue"                   ,"load_store_unit",toString(i).c_str(),""));
+        _param->_size_load_queue                     [i] = fromString<uint32_t    > (getParam("size_load_queue"                    ,"load_store_unit",toString(i).c_str(),""));
+        _param->_size_speculative_access_queue       [i] = fromString<uint32_t    > (getParam("size_speculative_access_queue"      ,"load_store_unit",toString(i).c_str(),""));
+        _param->_nb_store_queue_bank                 [i] = fromString<uint32_t    > (getParam("nb_store_queue_bank"                ,"load_store_unit",toString(i).c_str(),""));
+        _param->_nb_load_queue_bank                  [i] = fromString<uint32_t    > (getParam("nb_load_queue_bank"                 ,"load_store_unit",toString(i).c_str(),""));
+        _param->_speculative_load                    [i] = fromString<core::multi_execute_loop::execute_loop::Tspeculative_load_t> 
+                                                                                    (getParam("speculative_load"                   ,"load_store_unit",toString(i).c_str(),""));
+        _param->_speculative_commit_predictor_scheme [i] = fromString<Tpredictor_t> 
+                                                                                    (getParam("speculative_commit_predictor_scheme","load_store_unit",toString(i).c_str(),""));
+        _param->_nb_port_check                       [i] = fromString<uint32_t    > (getParam("nb_port_check"                      ,"load_store_unit",toString(i).c_str(),""));
+        
+        // just read !!!
+        try
+          {
+            getParam("nb_predictor","load_store_unit",toString(i).c_str(), "");
+          }
+        catch (morpheo::ErrorMorpheo & error)
+          {
+          }
+
+        const uint32_t max_nb_predictor=1;
+        for (uint32_t j=0; j<max_nb_predictor; ++j)
+          {
+          //log_printf(INFO,Configuration,FUNCTION,_("PREDICTOR [%d][%d]"),i,j);
+        _param->_lsu_pht_size_counter             [i][j] = fromString<uint32_t    > (getParam("lsu_pht_size_counter"               ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
+        _param->_lsu_pht_nb_counter               [i][j] = fromString<uint32_t    > (getParam("lsu_pht_nb_counter"                 ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
+          }
+
+        _param->_nb_bypass_memory                    [i] = fromString<uint32_t    > (getParam("nb_bypass_memory"                   ,"load_store_unit",toString(i).c_str(),""));
+        _param->_nb_cache_port                       [i] = fromString<uint32_t    > (getParam("nb_cache_port"                      ,"load_store_unit",toString(i).c_str(),""));
+        _param->_nb_inst_memory                      [i] = fromString<uint32_t    > (getParam("nb_inst_memory"                     ,"load_store_unit",toString(i).c_str(),""));
       }   
 
@@ -318,5 +349,6 @@
           }
 
-        for (uint32_t j=0; j<3; ++j)
+        const uint32_t max_nb_predictor=3;
+        for (uint32_t j=0; j<max_nb_predictor; ++j)
           {
           //log_printf(INFO,Configuration,FUNCTION,_("PREDICTOR [%d][%d]"),i,j);
@@ -345,4 +377,6 @@
     ALLOC1(_param->_size_re_order_buffer    ,uint32_t         ,_param->_nb_ooo_engine);
     ALLOC1(_param->_nb_re_order_buffer_bank ,uint32_t         ,_param->_nb_ooo_engine);
+    ALLOC1(_param->_retire_ooo_scheme       ,morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t
+                                                              ,_param->_nb_ooo_engine);
     ALLOC1(_param->_commit_priority         ,Tpriority_t      ,_param->_nb_ooo_engine);
     ALLOC1(_param->_commit_load_balancing   ,Tload_balancing_t,_param->_nb_ooo_engine);
@@ -354,6 +388,4 @@
     ALLOC1(_param->_issue_load_balancing    ,Tload_balancing_t,_param->_nb_ooo_engine);
     ALLOC1(_param->_size_reexecute_queue    ,uint32_t         ,_param->_nb_ooo_engine);
-    ALLOC1(_param->_reexecute_priority      ,Tpriority_t      ,_param->_nb_ooo_engine);
-    ALLOC1(_param->_reexecute_load_balancing,Tload_balancing_t,_param->_nb_ooo_engine);
 
     for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
@@ -370,4 +402,6 @@
         _param->_size_re_order_buffer    [i] = fromString<uint32_t         >(getParam("size_re_order_buffer"    ,"ooo_engine",toString(i).c_str(), ""));
         _param->_nb_re_order_buffer_bank [i] = fromString<uint32_t         >(getParam("nb_re_order_buffer_bank" ,"ooo_engine",toString(i).c_str(), ""));
+        _param->_retire_ooo_scheme       [i] = fromString<morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t>
+                                                                            (getParam("retire_ooo_scheme"       ,"ooo_engine",toString(i).c_str(), ""));
         _param->_commit_priority         [i] = fromString<Tpriority_t      >(getParam("commit_priority"         ,"ooo_engine",toString(i).c_str(), ""));
         _param->_commit_load_balancing   [i] = fromString<Tload_balancing_t>(getParam("commit_load_balancing"   ,"ooo_engine",toString(i).c_str(), ""));
@@ -379,6 +413,4 @@
         _param->_issue_load_balancing    [i] = fromString<Tload_balancing_t>(getParam("issue_load_balancing"    ,"ooo_engine",toString(i).c_str(), ""));
         _param->_size_reexecute_queue    [i] = fromString<uint32_t         >(getParam("size_reexecute_queue"    ,"ooo_engine",toString(i).c_str(), ""));
-        _param->_reexecute_priority      [i] = fromString<Tpriority_t      >(getParam("reexecute_priority"      ,"ooo_engine",toString(i).c_str(), ""));
-        _param->_reexecute_load_balancing[i] = fromString<Tload_balancing_t>(getParam("reexecute_load_balancing","ooo_engine",toString(i).c_str(), ""));
       }   
 
@@ -434,8 +466,8 @@
     ALLOC1(_param->_link_decod_bloc_with_thread            ,uint32_t ,_param->_nb_thread);
     ALLOC1(_param->_link_rename_bloc_with_front_end        ,uint32_t ,_param->_nb_front_end);
-    ALLOC3(_param->_table_dispatch                         ,bool     ,_param->_nb_ooo_engine,_param->_nb_inst_issue[it1],_param->_nb_read_bloc);
-    ALLOC2(_param->_link_read_bloc_and_load_store_unit     ,bool     ,_param->_nb_read_bloc,_param->_nb_load_store_unit);
+//  ALLOC3(_param->_table_dispatch                         ,bool     ,_param->_nb_ooo_engine,_param->_nb_issue_queue_bank[it1],_param->_nb_read_bloc);
+    ALLOC1(_param->_link_read_bloc_with_load_store_unit    ,uint32_t ,_param->_nb_load_store_unit);
     ALLOC2(_param->_link_read_bloc_and_functionnal_unit    ,bool     ,_param->_nb_read_bloc,_param->_nb_functionnal_unit);
-    ALLOC2(_param->_link_write_bloc_and_load_store_unit    ,bool     ,_param->_nb_write_bloc,_param->_nb_load_store_unit);
+    ALLOC1(_param->_link_write_bloc_with_load_store_unit   ,uint32_t ,_param->_nb_load_store_unit);
     ALLOC2(_param->_link_write_bloc_and_functionnal_unit   ,bool     ,_param->_nb_write_bloc,_param->_nb_functionnal_unit);
     ALLOC1(_param->_link_load_store_unit_with_thread       ,uint32_t ,_param->_nb_thread);
@@ -497,10 +529,13 @@
             _param->_link_read_bloc_and_functionnal_unit [i][j] = fromString<bool>(dest[0]);
           }
-
-        for (uint32_t j=0; j<_param->_nb_load_store_unit; ++j)
-          {
-            getLink_1("link_read_bloc_and_load_store_unit",toString(i).c_str(),toString(j).c_str(), "");
-            _param->_link_read_bloc_and_load_store_unit [i][j] = fromString<bool>(dest[0]);
-          }
+      }
+
+    for (uint32_t i=0; i<_param->_nb_load_store_unit; ++i)
+      {
+        getLink_1("link_read_bloc_with_load_store_unit",toString(i).c_str(), "");
+        _param->_link_read_bloc_with_load_store_unit [i] = fromString<uint32_t>(dest[0]);
+
+        getLink_1("link_write_bloc_with_load_store_unit",toString(i).c_str(), "");
+        _param->_link_write_bloc_with_load_store_unit [i] = fromString<uint32_t>(dest[0]);
       }
 
@@ -516,10 +551,4 @@
             _param->_link_write_bloc_and_functionnal_unit [i][j] = fromString<bool>(dest[0]);
           }
-
-        for (uint32_t j=0; j<_param->_nb_load_store_unit; ++j)
-          {
-            getLink_1("link_write_bloc_and_load_store_unit",toString(i).c_str(),toString(j).c_str(), "");
-            _param->_link_write_bloc_and_load_store_unit [i][j] = fromString<bool>(dest[0]);
-          }
       }
 
@@ -550,11 +579,11 @@
       }
 
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
-      for (uint32_t j=0; j<_param->_nb_inst_issue[i]; ++j)
-        for (uint32_t k=0; k<_param->_nb_read_bloc; ++k)
-          {
-            getLink_1("table_dispatch",toString(i).c_str(),toString(j).c_str(),toString(k).c_str(),"");
-            _param->_table_dispatch [i][j][k] = fromString<bool>(dest[0]);
-          }
+    // for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
+    //   for (uint32_t j=0; j<_param->_nb_issue_queue_bank[i]; ++j)
+    //     for (uint32_t k=0; k<_param->_nb_read_bloc; ++k)
+    //       {
+    //         getLink_1("table_dispatch",toString(i).c_str(),toString(j).c_str(),toString(k).c_str(),"");
+    //         _param->_table_dispatch [i][j][k] = fromString<bool>(dest[0]);
+    //       }
 
     test_use ();
