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_Front_end/Front_end/Ifetch_unit/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_allocation.cpp

    r131 r136  
    116116    // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    117117    {
    118       ALLOC0_INTERFACE_BEGIN("decod",OUT , EAST, _("Send bundle to the decod unit."));
    119 
    120     //ALLOC0_SIGNAL_OUT (out_DECOD_CONTEXT_ID                 ,"context_id"                 ,Tcontext_t        ,_param->_size_context_id);
    121       ALLOC0_SIGNAL_OUT (out_DECOD_ADDRESS                    ,"address"                    ,Tgeneral_address_t,_param->_size_instruction_address);
    122       ALLOC0_SIGNAL_OUT (out_DECOD_INST_IFETCH_PTR            ,"inst_ifetch_ptr"            ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr);
    123       ALLOC0_SIGNAL_OUT (out_DECOD_BRANCH_STATE               ,"branch_state"               ,Tbranch_state_t   ,_param->_size_branch_state);
    124       ALLOC0_SIGNAL_OUT (out_DECOD_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth);
    125       ALLOC0_SIGNAL_OUT (out_DECOD_EXCEPTION                  ,"exception"                  ,Texception_t      ,_param->_size_exception_ifetch);
    126 
    127       ALLOC0_INTERFACE_END();
    128     }
    129     {
    130118      ALLOC1_INTERFACE_BEGIN("decod",OUT , EAST, _("Send bundle to the decod unit."),_param->_nb_instruction);
    131119
    132120      ALLOC1_VALACK_OUT(out_DECOD_VAL                        ,VAL);
    133121      ALLOC1_VALACK_IN ( in_DECOD_ACK                        ,ACK);
     122
    134123      ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION                ,"instruction"                ,Tinstruction_t    ,_param->_size_instruction);
     124      ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS                    ,"address"                    ,Tgeneral_address_t,_param->_size_instruction_address);
     125      ALLOC1_SIGNAL_OUT(out_DECOD_BRANCH_STATE               ,"branch_state"               ,Tbranch_state_t   ,_param->_size_branch_state);
     126      ALLOC1_SIGNAL_OUT(out_DECOD_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth);
     127      ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION                  ,"exception"                  ,Texception_t      ,_param->_size_exception_ifetch);
    135128
    136129      ALLOC1_INTERFACE_END(_param->_nb_instruction);
     
    405398            PORT_MAP(_component,src ,"out_DECOD_"+toString(i)+"_INSTRUCTION"                ,
    406399                                dest,"out_DECOD_"+toString(i)+"_INSTRUCTION"                );
     400            PORT_MAP(_component,src ,"out_DECOD_"+toString(i)+"_ADDRESS"                    ,
     401                                dest,"out_DECOD_"+toString(i)+"_ADDRESS"                    );
     402            PORT_MAP(_component,src ,"out_DECOD_"+toString(i)+"_BRANCH_STATE"               ,
     403                                dest,"out_DECOD_"+toString(i)+"_BRANCH_STATE"               );
     404            if (_param->_have_port_depth)
     405            PORT_MAP(_component,src ,"out_DECOD_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID",
     406                                dest,"out_DECOD_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID");
     407            PORT_MAP(_component,src ,"out_DECOD_"+toString(i)+"_EXCEPTION"                  ,
     408                                dest,"out_DECOD_"+toString(i)+"_EXCEPTION"                  );
    407409          }
    408 
    409         PORT_MAP(_component,src ,"out_DECOD_ADDRESS"                    ,dest,"out_DECOD_ADDRESS"                    );
    410         if (_param->_have_port_inst_ifetch_ptr)
    411         PORT_MAP(_component,src ,"out_DECOD_INST_IFETCH_PTR"            ,dest,"out_DECOD_INST_IFETCH_PTR"            );
    412         PORT_MAP(_component,src ,"out_DECOD_BRANCH_STATE"               ,dest,"out_DECOD_BRANCH_STATE"               );
    413         if (_param->_have_port_depth)
    414         PORT_MAP(_component,src ,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID",dest,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID");
    415         PORT_MAP(_component,src ,"out_DECOD_EXCEPTION"                  ,dest,"out_DECOD_EXCEPTION"                  );
    416410      }
    417411
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_deallocation.cpp

    r128 r136  
    5454        DELETE1_SIGNAL( in_PREDICT_INSTRUCTION_ENABLE         ,_param->_nb_instruction,1);
    5555
    56     //  DELETE0_SIGNAL(out_DECOD_CONTEXT_ID                 ,_param->_size_context_id);
    57         DELETE0_SIGNAL(out_DECOD_ADDRESS                    ,_param->_size_instruction_address);
    58         DELETE0_SIGNAL(out_DECOD_INST_IFETCH_PTR            ,_param->_size_inst_ifetch_ptr);
    59         DELETE0_SIGNAL(out_DECOD_BRANCH_STATE               ,_param->_size_branch_state);
    60         DELETE0_SIGNAL(out_DECOD_BRANCH_UPDATE_PREDICTION_ID,_param->_size_depth);
    61         DELETE0_SIGNAL(out_DECOD_EXCEPTION                  ,_param->_size_exception_ifetch);
    6256        DELETE1_SIGNAL(out_DECOD_VAL                        ,_param->_nb_instruction,1);
    6357        DELETE1_SIGNAL( in_DECOD_ACK                        ,_param->_nb_instruction,1);
    6458        DELETE1_SIGNAL(out_DECOD_INSTRUCTION                ,_param->_nb_instruction,_param->_size_instruction);
     59    //  DELETE1_SIGNAL(out_DECOD_CONTEXT_ID                 ,_param->_nb_instruction,_param->_size_context_id);
     60        DELETE1_SIGNAL(out_DECOD_ADDRESS                    ,_param->_nb_instruction,_param->_size_instruction_address);
     61        DELETE1_SIGNAL(out_DECOD_BRANCH_STATE               ,_param->_nb_instruction,_param->_size_branch_state);
     62        DELETE1_SIGNAL(out_DECOD_BRANCH_UPDATE_PREDICTION_ID,_param->_nb_instruction,_param->_size_depth);
     63        DELETE1_SIGNAL(out_DECOD_EXCEPTION                  ,_param->_nb_instruction,_param->_size_exception_ifetch);
    6564
    6665        DELETE0_SIGNAL( in_EVENT_VAL              ,1);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Parameters.cpp

    r88 r136  
    1919#define FUNCTION "Ifetch_unit::Parameters"
    2020  Parameters::Parameters (uint32_t size_queue                   ,
     21                          ifetch_queue::Tifetch_queue_scheme_t
     22                                   queue_scheme                 ,
    2123                          uint32_t nb_instruction               ,
    2224                          uint32_t size_branch_update_prediction,
     
    2830
    2931    _size_queue                            = size_queue                   ;
     32    _queue_scheme                          = queue_scheme                 ;
    3033    _nb_instruction                        = nb_instruction               ;
    3134//  _size_branch_update_prediction         = size_branch_update_prediction;
     
    4043    _param_ifetch_queue       = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_queue::      Parameters
    4144      (size_queue                   ,
     45       queue_scheme                 ,
    4246       nb_instruction               ,
    4347       size_branch_update_prediction,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Parameters_print.cpp

    r88 r136  
    2727//     xml.balise_open("ifetch_unit");
    2828//     xml.singleton_begin("size_queue                   "); xml.attribut("value",toString(_size_queue                   )); xml.singleton_end();
     29//     xml.singleton_begin("queue_scheme                 "); xml.attribut("value",toString(_queue_scheme                 )); xml.singleton_end();
    2930//     xml.singleton_begin("nb_instruction               "); xml.attribut("value",toString(_nb_instruction               )); xml.singleton_end();
    3031// //  xml.singleton_begin("size_branch_update_prediction"); xml.attribut("value",toString(_size_branch_update_prediction)); xml.singleton_end();
Note: See TracChangeset for help on using the changeset viewer.