source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/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: 2.2 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace core {
13namespace multi_front_end {
14namespace front_end {
15namespace prediction_unit {
16namespace direction {
17namespace direction_glue {
18
19#undef  FUNCTION
20#define FUNCTION "Direction_Glue::Parameters"
21  Parameters::Parameters (Tpredictor_t predictor_scheme,
22                          uint32_t     nb_inst_predict ,
23                          uint32_t     nb_inst_update  ,
24                          uint32_t     size_address    ,
25                          uint32_t     size_history    )
26  {
27    log_printf(FUNC,Direction_Glue,FUNCTION,"Begin");
28
29    _predictor_scheme = predictor_scheme;
30    _nb_inst_predict  = nb_inst_predict ;
31    _nb_inst_update   = nb_inst_update  ;
32    _size_address     = size_address    ;
33
34    switch (predictor_scheme)
35      {
36      case PREDICTOR_NEVER_TAKE  :
37      case PREDICTOR_ALWAYS_TAKE :
38      case PREDICTOR_STATIC      :
39      case PREDICTOR_LAST_TAKE   :
40        {
41          _have_component_meta_predictor = false;
42          break;
43        }
44      case PREDICTOR_COUNTER     :
45      case PREDICTOR_LOCAL       :
46      case PREDICTOR_GLOBAL      :
47      case PREDICTOR_META        :
48      case PREDICTOR_CUSTOM      :
49        {
50          _have_component_meta_predictor = true;
51          break;
52        }
53      }
54
55    _size_history      = (_have_component_meta_predictor)?size_history:0;
56
57    _have_port_history = (_size_history>0);
58
59    test();
60    log_printf(FUNC,Direction_Glue,FUNCTION,"End");
61  };
62 
63// #undef  FUNCTION
64// #define FUNCTION "Direction_Glue::Parameters (copy)"
65//   Parameters::Parameters (Parameters & param)
66//   {
67//     log_printf(FUNC,Direction_Glue,FUNCTION,"Begin");
68//     test();
69//     log_printf(FUNC,Direction_Glue,FUNCTION,"End");
70//   };
71
72#undef  FUNCTION
73#define FUNCTION "Direction_Glue::~Parameters"
74  Parameters::~Parameters () 
75  {
76    log_printf(FUNC,Direction_Glue,FUNCTION,"Begin");
77    log_printf(FUNC,Direction_Glue,FUNCTION,"End");
78  };
79
80}; // end namespace direction_glue
81}; // end namespace direction
82}; // end namespace prediction_unit
83}; // end namespace front_end
84}; // end namespace multi_front_end
85}; // end namespace core
86
87}; // end namespace behavioural
88}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.