Ignore:
Timestamp:
Oct 20, 2009, 8:52:15 PM (15 years ago)
Author:
rosiere
Message:

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp

    r135 r136  
    101101      ALLOC1_SIGNAL_OUT (out_ISSUE_TYPE                       ,"TYPE"                      ,Ttype_t           ,_param->_size_type                   );
    102102      ALLOC1_SIGNAL_OUT (out_ISSUE_OPERATION                  ,"OPERATION"                 ,Toperation_t      ,_param->_size_operation              );
     103      ALLOC1_SIGNAL_OUT (out_ISSUE_CANCEL                     ,"CANCEL"                    ,Tcontrol_t        ,1                                    );
    103104      ALLOC1_SIGNAL_OUT (out_ISSUE_STORE_QUEUE_PTR_WRITE      ,"STORE_QUEUE_PTR_WRITE"     ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr        );
    104105      ALLOC1_SIGNAL_OUT (out_ISSUE_STORE_QUEUE_PTR_READ       ,"STORE_QUEUE_PTR_READ"      ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr        );
     
    132133//    _ALLOC2_SIGNAL_IN ( in_EXECUTE_LOOP_TYPE                ,"TYPE"                      ,Ttype_t           ,_param->_size_type                   ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
    133134//    _ALLOC2_SIGNAL_IN ( in_EXECUTE_LOOP_OPERATION           ,"OPERATION"                 ,Toperation_t      ,_param->_size_operation              ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
     135      _ALLOC2_SIGNAL_IN ( in_EXECUTE_LOOP_CANCEL              ,"CANCEL"                    ,Tcontrol_t        ,1                                    ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
    134136      _ALLOC2_SIGNAL_IN ( in_EXECUTE_LOOP_FLAGS               ,"FLAGS"                     ,Tspecial_data_t   ,_param->_size_special_data           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
    135137      _ALLOC2_SIGNAL_IN ( in_EXECUTE_LOOP_EXCEPTION           ,"EXCEPTION"                 ,Texception_t      ,_param->_size_exception              ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
     
    141143    }
    142144
    143     // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    144     {
    145       ALLOC1_INTERFACE_BEGIN("insert",OUT,EAST,_("Interface with RegisterFile's stat-list (insert Re-Order-Buffer)."),_param->_sum_inst_insert);
    146 
    147       ALLOC1_VALACK_OUT (out_INSERT_VAL                       , VAL);
    148       ALLOC1_VALACK_IN  ( in_INSERT_ACK                       , ACK);
    149       ALLOC1_SIGNAL_OUT (out_INSERT_RD_USE                    ,"RD_USE"                    ,Tcontrol_t        ,1                                    );
    150       ALLOC1_SIGNAL_OUT (out_INSERT_RD_NUM_REG                ,"RD_NUM_REG"                ,Tgeneral_address_t,_param->_size_general_register       );
    151       ALLOC1_SIGNAL_OUT (out_INSERT_RE_USE                    ,"RE_USE"                    ,Tcontrol_t        ,1                                    );
    152       ALLOC1_SIGNAL_OUT (out_INSERT_RE_NUM_REG                ,"RE_NUM_REG"                ,Tspecial_address_t,_param->_size_special_register       );
    153 
    154       ALLOC1_INTERFACE_END(_param->_sum_inst_insert);
    155     }
     145//     // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     146//     {
     147//       ALLOC1_INTERFACE_BEGIN("insert",OUT,EAST,_("Interface with RegisterFile's stat-list (insert Re-Order-Buffer)."),_param->_sum_inst_insert);
     148
     149//       ALLOC1_VALACK_OUT (out_INSERT_VAL                       , VAL);
     150//       ALLOC1_VALACK_IN  ( in_INSERT_ACK                       , ACK);
     151//       ALLOC1_SIGNAL_OUT (out_INSERT_RD_USE                    ,"RD_USE"                    ,Tcontrol_t        ,1                                    );
     152//       ALLOC1_SIGNAL_OUT (out_INSERT_RD_NUM_REG                ,"RD_NUM_REG"                ,Tgeneral_address_t,_param->_size_general_register       );
     153//       ALLOC1_SIGNAL_OUT (out_INSERT_RE_USE                    ,"RE_USE"                    ,Tcontrol_t        ,1                                    );
     154//       ALLOC1_SIGNAL_OUT (out_INSERT_RE_NUM_REG                ,"RE_NUM_REG"                ,Tspecial_address_t,_param->_size_special_register       );
     155
     156//       ALLOC1_INTERFACE_END(_param->_sum_inst_insert);
     157//     }
    156158
    157159//     // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    937939//        COMPONENT_MAP(_component,src , "in_COMMIT_"+toString(i)+"_TYPE"       ,
    938940//                                 dest,"out_COMMIT_"+toString(i)+"_TYPE"       );
     941          COMPONENT_MAP(_component,src , "in_COMMIT_"+toString(i)+"_CANCEL"     ,
     942                                   dest,"out_COMMIT_"+toString(i)+"_CANCEL"     );
    939943          COMPONENT_MAP(_component,src , "in_COMMIT_"+toString(i)+"_FLAGS"      ,
    940944                                   dest,"out_COMMIT_"+toString(i)+"_FLAGS"      );
     
    13111315          PORT_MAP(_component,src ,"out_ISSUE_OUT_"+toString(i)+"_OPERATION"            ,
    13121316                              dest,"out_ISSUE_"    +toString(i)+"_OPERATION"            );
     1317          PORT_MAP(_component,src ,"out_ISSUE_OUT_"+toString(i)+"_CANCEL"               ,
     1318                              dest,"out_ISSUE_"    +toString(i)+"_CANCEL"               );
    13131319          PORT_MAP(_component,src ,"out_ISSUE_OUT_"+toString(i)+"_STORE_QUEUE_PTR_WRITE",
    13141320                              dest,"out_ISSUE_"    +toString(i)+"_STORE_QUEUE_PTR_WRITE");
     
    13911397//          PORT_MAP(_component,src , "in_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_OPERATION"   ,
    13921398//                              dest, "in_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_OPERATION"   );
     1399            PORT_MAP(_component,src , "in_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_CANCEL"      ,
     1400                                dest, "in_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_CANCEL"      );
    13931401            PORT_MAP(_component,src , "in_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_FLAGS"       ,
    13941402                                dest, "in_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_FLAGS"       );
     
    14121420      ////out_COMMIT_OPERATION                     - component_commit_unit
    14131421      ////out_COMMIT_TYPE                          - component_commit_unit
     1422      //  out_COMMIT_CANCEL                        - component_commit_unit
    14141423      //  out_COMMIT_FLAGS                         - component_commit_unit
    14151424      //  out_COMMIT_EXCEPTION                     - component_commit_unit
     
    16011610
    16021611      // ~~~~~[ Interface : "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1603       for (uint32_t i=0; i<_param->_sum_inst_insert; i++)
    1604         {
    1605           dest = _name;
    1606 #ifdef POSITION
    1607           _component->interface_map (src ,"insert_"+toString(i),
    1608                                      dest,"insert_"+toString(i));
    1609 #endif
    1610           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_VAL"       ,
    1611                               dest,"out_INSERT_"+toString(i)+"_VAL"       );
    1612           PORT_MAP(_component,src , "in_INSERT_"+toString(i)+"_ACK"       ,
    1613                               dest, "in_INSERT_"+toString(i)+"_ACK"       );
    1614           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RD_USE"    ,
    1615                               dest,"out_INSERT_"+toString(i)+"_RD_USE"    );
    1616           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RD_NUM_REG",
    1617                               dest,"out_INSERT_"+toString(i)+"_RD_NUM_REG");
    1618           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RE_USE"    ,
    1619                               dest,"out_INSERT_"+toString(i)+"_RE_USE"    );
    1620           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RE_NUM_REG",
    1621                               dest,"out_INSERT_"+toString(i)+"_RE_NUM_REG");
    1622         }
     1612//       for (uint32_t i=0; i<_param->_sum_inst_insert; i++)
     1613//         {
     1614//           dest = _name;
     1615// #ifdef POSITION
     1616//           _component->interface_map (src ,"insert_"+toString(i),
     1617//                                      dest,"insert_"+toString(i));
     1618// #endif
     1619//           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_VAL"       ,
     1620//                               dest,"out_INSERT_"+toString(i)+"_VAL"       );
     1621//           PORT_MAP(_component,src , "in_INSERT_"+toString(i)+"_ACK"       ,
     1622//                               dest, "in_INSERT_"+toString(i)+"_ACK"       );
     1623//           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RD_USE"    ,
     1624//                               dest,"out_INSERT_"+toString(i)+"_RD_USE"    );
     1625//           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RD_NUM_REG",
     1626//                               dest,"out_INSERT_"+toString(i)+"_RD_NUM_REG");
     1627//           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RE_USE"    ,
     1628//                               dest,"out_INSERT_"+toString(i)+"_RE_USE"    );
     1629//           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_RE_NUM_REG",
     1630//                               dest,"out_INSERT_"+toString(i)+"_RE_NUM_REG");
     1631//         }
    16231632
    16241633      //   in_INSERT_RENAME_UNIT_VAL                       - component_rename_unit
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_deallocation.cpp

    r128 r136  
    6464        DELETE1_SIGNAL(out_ISSUE_TYPE                       ,_param->_nb_inst_issue,_param->_size_type                   );
    6565        DELETE1_SIGNAL(out_ISSUE_OPERATION                  ,_param->_nb_inst_issue,_param->_size_operation              );
     66        DELETE1_SIGNAL(out_ISSUE_CANCEL                     ,_param->_nb_inst_issue,1                                    );
    6667        DELETE1_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue,_param->_size_store_queue_ptr        );
    6768        DELETE1_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ       ,_param->_nb_inst_issue,_param->_size_store_queue_ptr        );
     
    8889//      DELETE2_SIGNAL( in_EXECUTE_LOOP_TYPE                ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1],_param->_size_type                   );
    8990//      DELETE2_SIGNAL( in_EXECUTE_LOOP_OPERATION           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1],_param->_size_operation              );
     91        DELETE2_SIGNAL( in_EXECUTE_LOOP_CANCEL              ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1],1                                    );
    9092        DELETE2_SIGNAL( in_EXECUTE_LOOP_FLAGS               ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1],_param->_size_special_data           );
    9193        DELETE2_SIGNAL( in_EXECUTE_LOOP_EXCEPTION           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1],_param->_size_exception              );
     
    9496        DELETE2_SIGNAL( in_EXECUTE_LOOP_DATA                ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1],_param->_size_general_data           );
    9597       
    96         DELETE1_SIGNAL(out_INSERT_VAL                       ,_param->_sum_inst_insert,1                                    );
    97         DELETE1_SIGNAL( in_INSERT_ACK                       ,_param->_sum_inst_insert,1                                    );
    98         DELETE1_SIGNAL(out_INSERT_RD_USE                    ,_param->_sum_inst_insert,1                                    );
    99         DELETE1_SIGNAL(out_INSERT_RD_NUM_REG                ,_param->_sum_inst_insert,_param->_size_general_register       );
    100         DELETE1_SIGNAL(out_INSERT_RE_USE                    ,_param->_sum_inst_insert,1                                    );
    101         DELETE1_SIGNAL(out_INSERT_RE_NUM_REG                ,_param->_sum_inst_insert,_param->_size_special_register       );
     98//         DELETE1_SIGNAL(out_INSERT_VAL                       ,_param->_sum_inst_insert,1                                    );
     99//         DELETE1_SIGNAL( in_INSERT_ACK                       ,_param->_sum_inst_insert,1                                    );
     100//         DELETE1_SIGNAL(out_INSERT_RD_USE                    ,_param->_sum_inst_insert,1                                    );
     101//         DELETE1_SIGNAL(out_INSERT_RD_NUM_REG                ,_param->_sum_inst_insert,_param->_size_general_register       );
     102//         DELETE1_SIGNAL(out_INSERT_RE_USE                    ,_param->_sum_inst_insert,1                                    );
     103//         DELETE1_SIGNAL(out_INSERT_RE_NUM_REG                ,_param->_sum_inst_insert,_param->_size_special_register       );
    102104       
    103105//         DELETE1_SIGNAL(out_RETIRE_VAL                       ,_param->_sum_inst_retire,1                                    );
Note: See TracChangeset for help on using the changeset viewer.