source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters.cpp @ 78

Last change on this file since 78 was 78, checked in by rosiere, 16 years ago

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
File size: 3.1 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Parameters.h"
9#include "Common/include/Max.h"
10
11namespace morpheo {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace ooo_engine {
16namespace rename_unit {
17namespace load_store_pointer_unit {
18
19
20#undef  FUNCTION
21#define FUNCTION "Load_Store_pointer_unit::Parameters"
22  Parameters::Parameters (uint32_t    nb_front_end                    ,
23                          uint32_t  * nb_context                      ,
24                          uint32_t    nb_load_store_queue             ,
25                          uint32_t  * size_store_queue                ,
26                          uint32_t  * size_load_queue                 ,
27                          uint32_t ** link_load_store_unit_with_thread,
28                          uint32_t    nb_inst_insert                  ,
29                          uint32_t    nb_inst_retire                  )
30  {
31    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
32
33    _nb_front_end                     = nb_front_end                    ;
34    _nb_context                       = nb_context                      ;
35    _nb_load_store_queue              = nb_load_store_queue             ;
36    _size_store_queue                 = size_store_queue                ;
37    _size_load_queue                  = size_load_queue                 ;
38    _link_load_store_unit_with_thread = link_load_store_unit_with_thread;
39    _nb_inst_insert                   = nb_inst_insert                  ;
40    _nb_inst_retire                   = nb_inst_retire                  ;
41   
42    uint32_t max_nb_context       = max<uint32_t>(nb_context,       nb_front_end);
43    uint32_t max_size_store_queue = max<uint32_t>(size_store_queue, nb_load_store_queue);
44    uint32_t max_size_load_queue  = max<uint32_t>(size_load_queue,  nb_load_store_queue);
45
46    _size_front_end_id                = log2(nb_front_end        );
47    _size_context_id                  = log2(max_nb_context      );
48    _size_store_queue_ptr             = log2(max_size_store_queue);
49    _size_load_queue_ptr              = log2(max_size_load_queue );
50    _have_port_front_end_id           = (_size_front_end_id   > 0);
51    _have_port_context_id             = (_size_context_id     > 0);
52    _have_port_load_queue_ptr         = (_size_load_queue_ptr > 0);
53   
54    test();
55    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
56  };
57 
58// #undef  FUNCTION
59// #define FUNCTION "Load_Store_pointer_unit::Parameters (copy)"
60//   Parameters::Parameters (Parameters & param)
61//   {
62//     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
63//     test();
64//     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
65//   };
66
67#undef  FUNCTION
68#define FUNCTION "Load_Store_pointer_unit::~Parameters"
69  Parameters::~Parameters () 
70  {
71    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
72    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
73  };
74
75}; // end namespace load_store_pointer_unit
76}; // end namespace rename_unit
77}; // end namespace ooo_engine
78}; // end namespace multi_ooo_engine
79}; // end namespace core
80
81}; // end namespace behavioural
82}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.