source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_deallocation.cpp @ 15

Last change on this file since 15 was 15, checked in by rosiere, 17 years ago

Interface normalisé
Début du banc de registres multi niveaux

File size: 3.3 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace stage_1_ifetch {
14namespace predictor {
15namespace meta_predictor {
16namespace two_level_branch_predictor {
17
18  void Two_Level_Branch_Predictor::deallocation (void)
19  {
20    log_printf(FUNC,Two_Level_Branch_Predictor,"deallocation","Begin");
21
22    delete in_CLOCK;
23    delete in_NRESET;
24
25    for (uint32_t i=0; i<_param._nb_prediction; i++)
26      {
27        delete  in_PREDICT_VAL                 [i];
28        delete out_PREDICT_ACK                 [i];
29        delete  in_PREDICT_ADDRESS             [i];
30        if (_param._have_bht)
31        delete out_PREDICT_BHT_HISTORY         [i];
32        if (_param._have_pht)
33        delete out_PREDICT_PHT_HISTORY         [i];
34        if (_param._have_bht)
35          {
36        delete signal_PREDICT_BHT_ACK          [i];
37        delete signal_PREDICT_BHT_ADDRESS      [i];
38          }
39        if (_param._have_pht)
40          {
41        delete signal_PREDICT_PHT_ACK          [i];
42        delete signal_PREDICT_PHT_ADDRESS      [i];
43          }
44
45      }
46
47    delete  in_PREDICT_VAL        ;
48    delete out_PREDICT_ACK        ;
49    delete  in_PREDICT_ADDRESS    ;
50    if (_param._have_bht)
51    delete out_PREDICT_BHT_HISTORY;
52    if (_param._have_pht)
53    delete out_PREDICT_PHT_HISTORY;
54    if (_param._have_bht)
55      {
56    delete signal_PREDICT_BHT_ACK    ;
57    delete signal_PREDICT_BHT_ADDRESS;
58      }
59    if (_param._have_pht)
60      {
61    delete signal_PREDICT_PHT_ACK    ;
62    delete signal_PREDICT_PHT_ADDRESS;
63      }
64
65    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
66      {
67        delete  in_BRANCH_COMPLETE_VAL         [i];
68        delete out_BRANCH_COMPLETE_ACK         [i];
69        delete  in_BRANCH_COMPLETE_ADDRESS     [i];
70        if (_param._have_bht)
71        delete  in_BRANCH_COMPLETE_BHT_HISTORY [i];
72        if (_param._have_pht)
73        delete  in_BRANCH_COMPLETE_PHT_HISTORY [i];
74        delete  in_BRANCH_COMPLETE_DIRECTION   [i];
75        if (_param._have_bht)
76          {
77        delete signal_BRANCH_COMPLETE_BHT_ACK     [i];
78        delete signal_BRANCH_COMPLETE_BHT_ADDRESS [i]; 
79          }
80        if (_param._have_pht)
81          {
82        delete signal_BRANCH_COMPLETE_PHT_ACK     [i];
83        delete signal_BRANCH_COMPLETE_PHT_ADDRESS [i]; 
84          }
85      }
86
87    delete  in_BRANCH_COMPLETE_VAL        ;
88    delete out_BRANCH_COMPLETE_ACK        ;
89    delete  in_BRANCH_COMPLETE_ADDRESS    ;
90    if (_param._have_bht)
91    delete  in_BRANCH_COMPLETE_BHT_HISTORY;
92    if (_param._have_pht)
93    delete  in_BRANCH_COMPLETE_PHT_HISTORY;
94    delete  in_BRANCH_COMPLETE_DIRECTION  ;
95    if (_param._have_bht)
96      {
97    delete signal_BRANCH_COMPLETE_BHT_ACK    ;
98    delete signal_BRANCH_COMPLETE_BHT_ADDRESS; 
99      }
100    if (_param._have_pht)
101      {
102    delete signal_BRANCH_COMPLETE_PHT_ACK    ;
103    delete signal_BRANCH_COMPLETE_PHT_ADDRESS; 
104      }
105
106    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
107
108    if (_param._have_bht)
109    delete component_Branch_History_Table ;
110    if (_param._have_pht)
111    delete component_Pattern_History_Table;
112    delete component_Two_Level_Branch_Predictor_Glue;
113
114    log_printf(FUNC,Two_Level_Branch_Predictor,"deallocation","End");
115  };
116
117}; // end namespace two_level_branch_predictor
118}; // end namespace meta_predictor
119}; // end namespace predictor
120}; // end namespace stage_1_ifetch
121
122}; // end namespace behavioural
123}; // end namespace morpheo             
124#endif
Note: See TracBrowser for help on using the repository browser.