Ignore:
Timestamp:
May 16, 2009, 4:42:39 PM (15 years ago)
Author:
rosiere
Message:

1) Platforms : add new organization for test
2) Load_Store_Unit : add array to count nb_check in store_queue
3) Issue_queue and Core_Glue : rewrite the issue network
4) Special_Register_Unit : add reset value to register CID
5) Softwares : add multicontext test
6) Softwares : add SPECINT
7) Softwares : add MiBench?
7) Read_queue : inhib access for r0
8) Change Core_Glue (network) - dont yet support priority and load balancing scheme

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit
Files:
5 edited

Legend:

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

    r115 r117  
    6161    }
    6262
     63  uint32_t    num_thread = 0;
     64  uint32_t ** _translate_num_context_to_num_thread       = new uint32_t * [_nb_front_end];
     65  for (uint32_t i=0; i<_nb_front_end; i++)
     66    {
     67      _translate_num_context_to_num_thread [i] = new uint32_t [_nb_context[i]];
     68      for (uint32_t j=0; j<_nb_context[i]; j++)
     69        _translate_num_context_to_num_thread [i][j] = num_thread ++;
     70    }
     71
    6372  int _return = EXIT_SUCCESS;
    6473  try
     
    7079         _nb_inst_reexecute ,
    7180         _implement_group   ,
     81         _translate_num_context_to_num_thread,
    7282         true //is_toplevel
    7383        );
     
    100110  for (uint32_t i=0; i<_nb_front_end; i++)
    101111    {
     112      delete [] _translate_num_context_to_num_thread [i];
     113    }
     114  delete [] _translate_num_context_to_num_thread;
     115
     116
     117  for (uint32_t i=0; i<_nb_front_end; i++)
     118    {
    102119      for (uint32_t j=0; j<_nb_context[i]; j++)
    103120        delete [] _implement_group [i][j];
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Parameters.h

    r88 r117  
    2727  public : uint32_t     _nb_inst_reexecute     ;
    2828  public : bool     *** _implement_group       ;//[nb_front_end][nb_context][NB_GROUP]
     29  public : uint32_t  ** _translate_num_context_to_num_thread; //[nb_front_end][nb_context]
    2930
    3031  public : uint32_t     _max_nb_context        ;
     
    4142                        uint32_t     nb_inst_reexecute     ,
    4243                        bool     *** implement_group       ,
     44                        uint32_t  ** translate_num_context_to_num_thread, //[nb_front_end][nb_context]
    4345                        bool         is_toplevel=false
    4446                        );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/SPR.h

    r101 r117  
    545545  // [0][21] CID
    546546  //----------------------------------------------------------
    547   class CID : public GENERIC
    548   {
    549   public : CID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {};
    550   };
    551 
    552   //----------------------------------------------------------
    553   // [0][22] TID
    554   //----------------------------------------------------------
    555   class TID : public GENERIC
    556   {
    557   public : TID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {};
    558   };
    559 
    560   //----------------------------------------------------------
    561   // [0][23] TSR
     547  class CID : public morpheo::behavioural::SPR
     548  {
     549  private: const Tspr_t _cpu_id : 32; // cpu_id reset value
     550  public :       Tspr_t  cpu_id : 32;
     551
     552  public :        CID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL):
     553    _cpu_id ((param==NULL)?0:param->_translate_num_context_to_num_thread[num_front_end][num_context])
     554    {};
     555  public : void   reset (void  )
     556    {
     557      cpu_id = _cpu_id;
     558    };
     559  public : Tspr_t read  (void  )
     560    {
     561      return ((cpu_id << 0));
     562    };
     563  public : void   write (Tspr_t x)
     564    {
     565      cpu_id = x >> 0;
     566    };
     567  };
     568
     569  //----------------------------------------------------------
     570  // [0][22] TID - Thread Id
     571  //----------------------------------------------------------
     572  class TID : public morpheo::behavioural::SPR
     573  {
     574  public :       Tspr_t  thread_id : 32;
     575
     576  public :        TID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL)
     577    {};
     578  public : void   reset (void  )
     579    {
     580    };
     581  public : Tspr_t read  (void  )
     582    {
     583      return ((thread_id << 0));
     584    };
     585  public : void   write (Tspr_t x)
     586    {
     587      thread_id = x >> 0;
     588    };
     589  };
     590
     591  //----------------------------------------------------------
     592  // [0][23] TSR - Thread Status Register
    562593  //----------------------------------------------------------
    563594  class TSR : public GENERIC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Parameters.cpp

    r88 r117  
    2323                          uint32_t     nb_inst_reexecute     ,
    2424                          bool     *** implement_group       ,
     25                          uint32_t  ** translate_num_context_to_num_thread, //[nb_front_end][nb_context]
    2526                          bool         is_toplevel
    2627                          )
     
    3233    _nb_inst_reexecute      = nb_inst_reexecute;
    3334    _implement_group        = implement_group  ;
     35    _translate_num_context_to_num_thread = translate_num_context_to_num_thread;
    3436
    3537    _max_nb_context         = max<uint32_t>(_nb_context,_nb_front_end);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_allocation.cpp

    r112 r117  
    236236      for (uint32_t j=0; j<_param->_nb_context[i]; j++)
    237237        for (uint32_t k=0; k<NB_GROUP; k++)
    238           if (_param->_implement_group [i][j][k])
     238          if (_param->_implement_group [i][j][k])
    239239            {
     240             
    240241              for (uint32_t l=0; l<NB_REG_GROUP[k]; l++)
    241242                if (_spr [i][j][k][l] == NULL)
Note: See TracChangeset for help on using the changeset viewer.