Ignore:
Timestamp:
Feb 5, 2008, 5:21:20 PM (16 years ago)
Author:
rosiere
Message:
  • Add two component :
    • network between read unit and execute unit
    • network between execute unit and write unit
  • remove parameters "nb_operation" and "nb_type"
  • in write_queue add the special case : load_speculative
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/configuration.cfg

    r72 r77  
    882       2       +1      # size_special_data 
    9916      16      +1      # nb_special_register
    10 10      10      +1      # nb_operation       
    11 4       4       +1      # nb_type           
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/src/main.cpp

    r76 r77  
    99#include "Behavioural/Custom/include/Custom_example.h"
    1010
    11 #define NB_PARAMS 10
     11#define NB_PARAMS 8
    1212
    1313void usage (int argc, char * argv[])
     
    2323  err (_("  * size_special_data   (uint32_t)\n"));
    2424  err (_("  * nb_special_register (uint32_t)\n"));
    25   err (_("  * nb_operation        (uint32_t)\n"));
    26   err (_("  * nb_type             (uint32_t)\n"));
    2725  exit (1);
    2826}
     
    4846  const uint32_t size_special_data   = atoi(argv[x++]);
    4947  const uint32_t nb_special_register = atoi(argv[x++]);
    50   const uint32_t nb_operation        = atoi(argv[x++]);
    51   const uint32_t nb_type             = atoi(argv[x++]);
    5248
    5349  execute_timing_t ** timing = new execute_timing_t * [MAX_TYPE];
     
    7268         size_special_data   ,
    7369         nb_special_register ,
    74          nb_operation        ,
    75          nb_type             ,
    7670         timing              ,
    7771         &(morpheo::behavioural::custom::example_get_custom_information)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Parameters.h

    r76 r77  
    3636  public : const uint32_t            _size_special_data            ;
    3737  public : const uint32_t            _nb_special_register          ;
    38   public : const uint32_t            _nb_operation                 ;
    39   public : const uint32_t            _nb_type                      ;
    4038  public :       execute_timing_t ** _timing                       ;
    4139  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (uint32_t);
     
    4745  public : const uint32_t            _size_general_register        ;
    4846  public : const uint32_t            _size_special_register        ;
    49   public : const uint32_t            _size_operation               ;
    50   public : const uint32_t            _size_type                    ;
    5147
    5248  public : const bool                _have_port_context_id         ;
     
    6662                        uint32_t           size_special_data  ,
    6763                        uint32_t           nb_special_register,
    68                         uint32_t           nb_operation       ,
    69                         uint32_t           nb_type            ,
    7064                        execute_timing_t** timing             ,
    7165                        morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp

    r76 r77  
    153153       }
    154154
    155      _function_execute = new function_execute_t ** [MAX_TYPE];
     155     _function_execute = new function_execute_t ** [_param->_nb_type];
    156156     
    157157     // Initialisation
    158      for (uint32_t i=0; i<MAX_TYPE; i++)
     158     for (uint32_t i=0; i<_param->_nb_type; i++)
    159159       {
    160          _function_execute [i] = new function_execute_t * [MAX_OPERATION];
     160         _function_execute [i] = new function_execute_t * [_param->_nb_operation];
    161161         
    162          for (uint32_t j=0; j<MAX_OPERATION; j++)
     162         for (uint32_t j=0; j<_param->_nb_operation; j++)
    163163           _function_execute [i][j] = &(operation_unimplemented);
    164164       }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp

    r76 r77  
    8686
    8787#ifdef DEBUG_TEST
    88             if (operation >= MAX_OPERATION)
    89               throw ERRORMORPHEO(FUNCTION,"Invalid operation : '"+toString(operation)+"' is higher that MAX_OPERATION");
     88            if (type >= _param->_nb_type)
     89              throw ERRORMORPHEO(FUNCTION,"Invalid type : '"+toString(type)+"' is higher that _nb_type");
     90            if (operation >= _param->_nb_operation)
     91              throw ERRORMORPHEO(FUNCTION,"Invalid operation : '"+toString(operation)+"' is higher that _nb_operation");
    9092#endif
    9193
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters.cpp

    r76 r77  
    2828                          uint32_t           size_special_data  ,
    2929                          uint32_t           nb_special_register,
    30                           uint32_t           nb_operation       ,
    31                           uint32_t           nb_type            ,
    3230                          execute_timing_t** timing             ,
    3331                          morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t)) :
     
    4038    _size_special_data       (size_special_data     ),
    4139    _nb_special_register     (nb_special_register   ),
    42     _nb_operation            (nb_operation          ),
    43     _nb_type                 (nb_type               ),
    4440   
    4541    _size_context_id         (log2(nb_context      )),
     
    4945    _size_general_register   (log2(_size_general_register)),
    5046    _size_special_register   (log2(_size_special_register)),
    51     _size_operation          (log2(_size_operation       )),
    52     _size_type               (log2(_size_type            )),
    5347
    5448    _have_port_context_id    (_size_context_id    > 0),
     
    8276    _size_special_data       (param._size_special_data      ),
    8377    _nb_special_register     (param._nb_special_register    ),
    84     _nb_operation            (param._nb_operation           ),
    85     _nb_type                 (param._nb_type                ),
    8678
    8779    _size_context_id         (param._size_context_id        ),
     
    9183    _size_general_register   (param._size_general_register  ),
    9284    _size_special_register   (param._size_special_register  ),
    93     _size_operation          (param._size_operation         ),
    94     _size_type               (param._size_type              ),
    9585
    9686    _have_port_context_id    (param._have_port_context_id   ),
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters_msg_error.cpp

    r76 r77  
    2828    std::string msg = "";
    2929
    30     for (uint32_t i=0; i<MAX_TYPE; i++)
    31       for (uint32_t j=0; j<MAX_OPERATION; j++)
     30    for (uint32_t i=0; i<_nb_type; i++)
     31      for (uint32_t j=0; j<_nb_operation; j++)
    3232        if (_timing[i][j]._delay != _timing[i][j]._latence)
    3333          msg = "  - For the type '"+toString(i)+"', and the operation '"+toString(j)+"', the delay and the latence must be equal.";
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters_print.cpp

    r72 r77  
    3535    xml.singleton_begin("size_special_data  "); xml.attribut("value",toString(_size_special_data  )); xml.singleton_end();
    3636    xml.singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end();
    37     xml.singleton_begin("nb_operation       "); xml.attribut("value",toString(_nb_operation       )); xml.singleton_end();
    38     xml.singleton_begin("nb_type            "); xml.attribut("value",toString(_nb_type            )); xml.singleton_end();
    3937    xml.balise_close();
    4038
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/configuration.cfg

    r71 r77  
    111132      32      *2      # size_general_data     
    121232      32      *2      # nb_general_register   
    13 4       4       *2      # nb_operation           
    14 4       4       *2      # nb_type               
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/main.cpp

    r71 r77  
    1010#define number_of_test 2
    1111
    12 #define NB_PARAMS 13
     12#define NB_PARAMS 11
    1313
    1414void usage (int argc, char * argv[])
     
    2727       << " - size_general_data       (uint32_t)" << endl
    2828       << " - nb_general_register     (uint32_t)" << endl
    29        << " - nb_operation            (uint32_t)" << endl
    30        << " - nb_type                 (uint32_t)" << endl
    3129       << "" << endl;
    3230
     
    6664        const uint32_t            _size_general_data       = atoi(argv[x++]);
    6765        const uint32_t            _nb_general_register     = atoi(argv[x++]);
    68         const uint32_t            _nb_operation            = atoi(argv[x++]);
    69         const uint32_t            _nb_type                 = atoi(argv[x++]);
    7066       
    7167        try
     
    8379               _nb_packet              ,
    8480               _size_general_data      ,
    85                _nb_general_register    ,
    86                _nb_operation           ,
    87                _nb_type               
    88                );
     81               _nb_general_register    );
    8982           
    9083            cout << param->print(1);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp

    r72 r77  
    5757         128,//_nb_packet             
    5858         32, //_size_general_data     
    59          64, //_nb_general_register   
    60          4,  //_nb_operation           
    61          4   //_nb_type               
     59         64  //_nb_general_register   
    6260        );
    6361
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Parameters.h

    r71 r77  
    3939  public : const uint32_t            _size_general_data            ;
    4040  public : const uint32_t            _nb_general_register          ;
    41   public : const uint32_t            _nb_operation                 ;
    42   public : const uint32_t            _nb_type                      ;
    4341
    4442  public : const uint32_t            _size_address_store_queue             ;
     
    5048  public : const uint32_t            _size_packet_id                       ;
    5149  public : const uint32_t            _size_general_register                ;
    52   public : const uint32_t            _size_operation                       ;
    53   public : const uint32_t            _size_type                            ;
    5450  public : const uint32_t            _size_dcache_context_id               ;
    5551  public : const uint32_t            _size_dcache_packet_id                ;
     
    7571                        uint32_t            nb_packet              ,
    7672                        uint32_t            size_general_data      ,
    77                         uint32_t            nb_general_register    ,
    78                         uint32_t            nb_operation           ,
    79                         uint32_t            nb_type               
    80                         );
     73                        uint32_t            nb_general_register    );
    8174
    8275  public : Parameters  (Parameters & param) ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Parameters.cpp

    r71 r77  
    3030                          uint32_t            nb_packet              ,
    3131                          uint32_t            size_general_data      ,
    32                           uint32_t            nb_general_register    ,
    33                           uint32_t            nb_operation           ,
    34                           uint32_t            nb_type                                     
    35                           ):
     32                          uint32_t            nb_general_register    ):
    3633    _size_store_queue        (size_store_queue       ),
    3734    _size_load_queue         (size_load_queue        ),
     
    4542    _size_general_data       (size_general_data      ),
    4643    _nb_general_register     (nb_general_register    ),
    47     _nb_operation            (nb_operation           ),
    48     _nb_type                 (nb_type                ),
    4944   
    5045    _size_address_store_queue              (log2(size_store_queue             )),
     
    5752    _size_packet_id          (log2(nb_packet          )),
    5853    _size_general_register   (log2(nb_general_register)),
    59     _size_operation          (log2(nb_operation       )),
    60     _size_type               (log2(nb_type            )),
    6154    _size_dcache_context_id  (_size_context_id + _size_front_end_id + _size_ooo_engine_id),
    6255    _size_dcache_packet_id   ((log2((size_store_queue>size_load_queue)?size_store_queue:size_load_queue))+1),
     
    9083    _size_general_data       (param._size_general_data      ),
    9184    _nb_general_register     (param._nb_general_register    ),
    92     _nb_operation            (param._nb_operation           ),
    93     _nb_type                 (param._nb_type                ),
    9485
    9586    _size_address_store_queue              (param._size_address_store_queue             ),
     
    10293    _size_packet_id          (param._size_packet_id         ),
    10394    _size_general_register   (param._size_general_register  ),
    104     _size_operation          (param._size_operation         ),
    105     _size_type               (param._size_type              ),
    10695    _size_dcache_context_id  (param._size_dcache_context_id ),
    10796    _size_dcache_packet_id   (param._size_dcache_packet_id  ),
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Parameters_print.cpp

    r71 r77  
    3939    xml.singleton_begin("size_general_data            "); xml.attribut("value",toString(_size_general_data            )); xml.singleton_end();
    4040    xml.singleton_begin("nb_general_register          "); xml.attribut("value",toString(_nb_general_register          )); xml.singleton_end();
    41     xml.singleton_begin("nb_operation                 "); xml.attribut("value",toString(_nb_operation                 )); xml.singleton_end();
    42     xml.singleton_begin("nb_type                      "); xml.attribut("value",toString(_nb_type                      )); xml.singleton_end();
    4341    xml.balise_close();
    4442
Note: See TracChangeset for help on using the changeset viewer.