Ignore:
Timestamp:
Mar 27, 2008, 11:04:49 AM (16 years ago)
Author:
rosiere
Message:

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h

    r77 r78  
    5555  public : ~Parameters () ;
    5656
    57   public :        std::string  msg_error  (void);
     57  public :        Parameters_test msg_error  (void);
    5858
    5959  public :        std::string   print      (uint32_t depth);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp

    r75 r78  
    5454       ALLOC_INTERFACE ("execute_queue_in", IN, WEST, "Input of execute_queue");
    5555       
    56        ALLOC_VAL_IN    ( in_EXECUTE_QUEUE_IN_VAL);
    57        ALLOC_ACK_OUT   (out_EXECUTE_QUEUE_IN_ACK);
     56       ALLOC_VALACK_IN ( in_EXECUTE_QUEUE_IN_VAL,VAL);
     57       ALLOC_VALACK_OUT(out_EXECUTE_QUEUE_IN_ACK,ACK);
    5858       if(_param->_have_port_context_id)
    5959       ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
     
    7676       ALLOC_INTERFACE ("execute_queue_out", OUT, EAST, "Output of execute_queue");
    7777       
    78        ALLOC_VAL_OUT   (out_EXECUTE_QUEUE_OUT_VAL);
    79        ALLOC_ACK_IN    ( in_EXECUTE_QUEUE_OUT_ACK);
     78       ALLOC_VALACK_OUT(out_EXECUTE_QUEUE_OUT_VAL,VAL);
     79       ALLOC_VALACK_IN ( in_EXECUTE_QUEUE_OUT_ACK,ACK);
    8080       if(_param->_have_port_context_id)
    8181       ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters_msg_error.cpp

    r73 r78  
    2222#undef  FUNCTION
    2323#define FUNCTION "Execute_queue::msg_error"
    24   std::string Parameters::msg_error(void)
     24  Parameters_test Parameters::msg_error(void)
    2525  {
    2626    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
    2727
    28     std::string msg = "";
    29 
    30     return msg;
     28    Parameters_test test ("Execute_queue");
    3129
    3230    log_printf(FUNC,Execute_queue,FUNCTION,"End");
     31
     32    return test;
    3333  };
    3434
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h

    r77 r78  
    6666  public : ~Parameters () ;
    6767
    68   public :        std::string  msg_error  (void);
     68  public :        Parameters_test msg_error  (void);
    6969
    7070  public :        std::string   print      (uint32_t depth);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp

    r74 r78  
    2222#undef  FUNCTION
    2323#define FUNCTION "Write_queue::msg_error"
    24   std::string Parameters::msg_error(void)
     24  Parameters_test Parameters::msg_error(void)
    2525  {
    2626    log_printf(FUNC,Write_queue,FUNCTION,"Begin");
    2727
    28     std::string msg = "";
     28    Parameters_test test ("Write_queue");
    2929
    3030    if (_nb_bypass_write > _size_queue)
    31       msg += " * The write_queue can't have more bypass_write than entry in the queue.";
    32 
    33     return msg;
     31      test.error("The write_queue can't have more bypass_write than entry in the queue.");
    3432
    3533    log_printf(FUNC,Write_queue,FUNCTION,"End");
     34
     35    return test;
    3636  };
    3737
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp

    r77 r78  
    5353       ALLOC_INTERFACE ("write_queue_in", IN, WEST, "Input of write_queue");
    5454       
    55        ALLOC_VAL_IN    ( in_WRITE_QUEUE_IN_VAL);
    56        ALLOC_ACK_OUT   (out_WRITE_QUEUE_IN_ACK);
     55       ALLOC_VALACK_IN ( in_WRITE_QUEUE_IN_VAL,VAL);
     56       ALLOC_VALACK_OUT(out_WRITE_QUEUE_IN_ACK,ACK);
    5757       ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
    5858       ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id     );
     
    7676       ALLOC_INTERFACE ("write_queue_out", OUT, EAST, "Output of write_queue");
    7777       
    78        ALLOC_VAL_OUT   (out_WRITE_QUEUE_OUT_VAL);
    79        ALLOC_ACK_IN    ( in_WRITE_QUEUE_OUT_ACK);
     78       ALLOC_VALACK_OUT(out_WRITE_QUEUE_OUT_VAL,VAL);
     79       ALLOC_VALACK_IN ( in_WRITE_QUEUE_OUT_ACK,ACK);
    8080       ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id   );
    8181       ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t     ,_param->_size_front_end_id );
     
    9494       ALLOC1_INTERFACE("gpr_write", OUT, SOUTH ,"Output of write_queue", _param->_nb_gpr_write);
    9595
    96        ALLOC1_VAL_OUT   (out_GPR_WRITE_VAL);
    97        ALLOC1_ACK_IN    ( in_GPR_WRITE_ACK);
     96       ALLOC1_VALACK_OUT(out_GPR_WRITE_VAL,VAL);
     97       ALLOC1_VALACK_IN ( in_GPR_WRITE_ACK,ACK);
    9898       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
    9999       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_general_register);
     
    105105       ALLOC1_INTERFACE("spr_write", OUT, SOUTH ,"Output of write_queue", _param->_nb_spr_write);
    106106
    107        ALLOC1_VAL_OUT   (out_SPR_WRITE_VAL);
    108        ALLOC1_ACK_IN    ( in_SPR_WRITE_ACK);
     107       ALLOC1_VALACK_OUT(out_SPR_WRITE_VAL,VAL);
     108       ALLOC1_VALACK_IN ( in_SPR_WRITE_ACK,ACK);
    109109       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
    110110       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_special_register);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Parameters.h

    r77 r78  
    7474  public : ~Parameters () ;
    7575
    76   public :        std::string  msg_error  (void);
     76  public :        Parameters_test msg_error  (void);
    7777
    7878  public :        std::string   print      (uint32_t depth);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters_msg_error.cpp

    r74 r78  
    2020#undef  FUNCTION
    2121#define FUNCTION "Write_unit::msg_error"
    22   std::string Parameters::msg_error(void)
     22  Parameters_test Parameters::msg_error(void)
    2323  {
    2424    log_printf(FUNC,Write_unit,FUNCTION,"Begin");
    2525
    26     std::string msg = "";
     26    Parameters_test test ("Write_unit");
    2727
    2828    if (_size_write_queue == 0)
    29       msg += " * Write queue must have a less one entry.";
    30 
    31     return msg;
     29      test.error("Write queue must have a less one entry.");
    3230
    3331    log_printf(FUNC,Write_unit,FUNCTION,"End");
     32
     33    return test;
    3434  };
    3535
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp

    r77 r78  
    5959       ALLOC_INTERFACE ("write_unit_in", IN, WEST, "Input of write_unit");
    6060       
    61        ALLOC_VAL_IN    ( in_WRITE_UNIT_IN_VAL);
    62        ALLOC_ACK_OUT   (out_WRITE_UNIT_IN_ACK);
     61       ALLOC_VALACK_IN ( in_WRITE_UNIT_IN_VAL,VAL);
     62       ALLOC_VALACK_OUT(out_WRITE_UNIT_IN_ACK,ACK);
    6363       ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
    6464       ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id     );
     
    8282       ALLOC_INTERFACE ("write_unit_out", OUT, EAST, "Output of write_unit");
    8383       
    84        ALLOC_VAL_OUT   (out_WRITE_UNIT_OUT_VAL);
    85        ALLOC_ACK_IN    ( in_WRITE_UNIT_OUT_ACK);
     84       ALLOC_VALACK_OUT(out_WRITE_UNIT_OUT_VAL,VAL);
     85       ALLOC_VALACK_IN ( in_WRITE_UNIT_OUT_ACK,ACK);
    8686       ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id   );
    8787       ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t     ,_param->_size_front_end_id );
     
    100100       ALLOC1_INTERFACE("gpr_write", OUT, SOUTH ,"Output of write_unit", _param->_nb_gpr_write);
    101101
    102        ALLOC1_VAL_OUT   (out_GPR_WRITE_VAL);
    103        ALLOC1_ACK_IN    ( in_GPR_WRITE_ACK);
     102       ALLOC1_VALACK_OUT(out_GPR_WRITE_VAL,VAL);
     103       ALLOC1_VALACK_IN ( in_GPR_WRITE_ACK,ACK);
    104104       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
    105105       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_general_register);
     
    111111       ALLOC1_INTERFACE("spr_write", OUT, SOUTH ,"Output of write_unit", _param->_nb_spr_write);
    112112
    113        ALLOC1_VAL_OUT   (out_SPR_WRITE_VAL);
    114        ALLOC1_ACK_IN    ( in_SPR_WRITE_ACK);
     113       ALLOC1_VALACK_OUT(out_SPR_WRITE_VAL,VAL);
     114       ALLOC1_VALACK_IN ( in_SPR_WRITE_ACK,ACK);
    115115       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
    116116       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_special_register);
Note: See TracChangeset for help on using the changeset viewer.