Ignore:
Timestamp:
Feb 27, 2009, 7:37:40 PM (15 years ago)
Author:
rosiere
Message:

1) Decod_queue : multi implementation (one_fifo, multi_fifo)
2) Issue_queue : multi implementation (in_order, out_of_order)
3) Direction : Add Meta predictor
4) Context_State : re add Branch_complete, More priority to Load miss (is not speculative)
5) Return_Address_Stack : update reg_PREDICT pointer on decod miss prediction
6) UPT : Fix bug in multi event
7) Prediction_glue : in read_stack case, insert in UPT pc_next
8) Rename select : when rob have an event (need flush), read_r{a,b,c} and write_r{d,e} is set at 0

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/config_min.cfg

    r82 r111  
    331       1       *4      # nb_inst_decod   
    441       1       *4      # size_queue       
     50       1       +1      # queue_scheme
    5632      32      +1      # size_general_data
    671       1       +1      # nb_branch_speculated [0] [nb_context]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/config_mono_context.cfg

    r87 r111  
    331       8       *2      # nb_inst_decod   
    448       16      *2      # size_queue       
     50       1       +1      # queue_scheme
    5632      32      +1      # size_general_data
    671       2       +1      # nb_branch_speculated [0] [nb_context]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/config_multi_context.cfg

    r82 r111  
    334       4       *4      # nb_inst_decod   
    4416      16      *4      # size_queue       
     50       1       +1      # queue_scheme
    5632      32      +1      # size_general_data
    672       2       +1      # nb_branch_speculated [0] [nb_context]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/main.cpp

    r88 r111  
    88#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/include/test.h"
    99
    10 #define NB_PARAMS 4
     10#define NB_PARAMS 5
    1111
    1212void usage (int argc, char * argv[])
     
    1414  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
    1515  err (_("list_params is :\n"));
    16   err (_(" * nb_context                        (uint32_t)\n"));
    17   err (_(" * nb_inst_decod                     (uint32_t)\n"));
    18   err (_(" * size_queue                        (uint32_t)\n"));
    19   err (_(" * size_general_data                 (uint32_t)\n"));
    20   err (_(" * nb_branch_speculated [nb_context] (uint32_t)\n"));
     16  err (_(" * nb_context                        (uint32_t             )\n"));
     17  err (_(" * nb_inst_decod                     (uint32_t             )\n"));
     18  err (_(" * size_queue                        (uint32_t             )\n"));
     19  err (_(" * queue_scheme                      (Tdecod_queue_scheme_t)\n"));
     20  err (_(" * size_general_data                 (uint32_t             )\n"));
     21  err (_(" * nb_branch_speculated [nb_context] (uint32_t             )\n"));
    2122
    2223  exit (1);
     
    3839  uint32_t _nb_inst_decod     = fromString<uint32_t>(argv[x++]);
    3940  uint32_t _size_queue        = fromString<uint32_t>(argv[x++]);
     41  Tdecod_queue_scheme_t _queue_scheme = fromString<Tdecod_queue_scheme_t>(argv[x++]);
    4042  uint32_t _size_general_data = fromString<uint32_t>(argv[x++]);
    4143
     
    5456         _nb_inst_decod    ,
    5557         _size_queue       ,
     58         _queue_scheme     ,
    5659         _size_general_data,
    5760         _nb_branch_speculated,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/test.cpp

    r108 r111  
    77 */
    88
    9 #define NB_ITERATION  128
     9#define NB_ITERATION  512
    1010#define CYCLE_MAX     (128*NB_ITERATION)
    1111
     
    2020
    2121#ifdef STATISTICS
    22   morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
     22  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
    2323#endif
    2424
     
    234234          address_tmp [i] = address_src [i];
    235235
    236         uint32_t x = rand()%_param->_nb_inst_decod;
     236        uint32_t x = rand()%_param->_nb_inst_decod;
     237       
    237238        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    238239          {
     
    242243            in_DECOD_IN_CONTEXT_ID   [i]->write(context);
    243244            in_DECOD_IN_DEPTH        [i]->write(depth [context]);
     245#ifdef DEBUG
     246            in_DECOD_IN_ADDRESS      [i]->write(address_tmp [context]);
     247#endif
    244248            in_DECOD_IN_ADDRESS_NEXT [i]->write(address_tmp [context]);
    245249
     
    250254      {
    251255        uint32_t x = rand()%_param->_nb_inst_decod;
     256       
    252257        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    253258          {
     
    270275              nb_inst      [context] ++;
    271276              address_src  [context] ++;
     277
     278              LABEL("  * nb_inst  : %d",nb_inst [context]);
    272279            }
    273280        }
     
    284291              TEST(Tdepth_t  ,out_DECOD_OUT_DEPTH        [i]->read(),depth        [context]);
    285292              TEST(Taddress_t,out_DECOD_OUT_ADDRESS_NEXT [i]->read(),address_dest [context]);
    286              
     293#ifdef DEBUG
     294              TEST(Taddress_t,out_DECOD_OUT_ADDRESS      [i]->read(),address_dest [context]);
     295#endif       
    287296              nb_inst      [context] --;
    288297              address_dest [context] ++;
     298
     299              LABEL("  * nb_inst  : %d",nb_inst [context]);
    289300            }
    290301        }
Note: See TracChangeset for help on using the changeset viewer.