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

Last change on this file since 3 was 3, checked in by kane, 17 years ago

1) Ajout d'un "printer" XML pour la configuration de paramètres

2) Fin du composant "Two_Level_Branch_Predictor"

validation * systemc

  • vhdl
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
24    for (uint32_t i=0; i<_param._nb_prediction; i++)
25      {
26        delete  in_PREDICT_VAL                 [i];
27        delete out_PREDICT_ACK                 [i];
28        delete  in_PREDICT_ADDRESS             [i];
29        if (_param._have_bht)
30        delete out_PREDICT_BHT_HISTORY         [i];
31        if (_param._have_pht)
32        delete out_PREDICT_PHT_HISTORY         [i];
33        if (_param._have_bht)
34          {
35        delete signal_PREDICT_BHT_ACK          [i];
36        delete signal_PREDICT_BHT_ADDRESS      [i];
37          }
38        if (_param._have_pht)
39          {
40        delete signal_PREDICT_PHT_ACK          [i];
41        delete signal_PREDICT_PHT_ADDRESS      [i];
42          }
43
44      }
45
46    delete  in_PREDICT_VAL        ;
47    delete out_PREDICT_ACK        ;
48    delete  in_PREDICT_ADDRESS    ;
49    if (_param._have_bht)
50    delete out_PREDICT_BHT_HISTORY;
51    if (_param._have_pht)
52    delete out_PREDICT_PHT_HISTORY;
53    if (_param._have_bht)
54      {
55    delete signal_PREDICT_BHT_ACK    ;
56    delete signal_PREDICT_BHT_ADDRESS;
57      }
58    if (_param._have_pht)
59      {
60    delete signal_PREDICT_PHT_ACK    ;
61    delete signal_PREDICT_PHT_ADDRESS;
62      }
63
64    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
65      {
66        delete  in_BRANCH_COMPLETE_VAL         [i];
67        delete out_BRANCH_COMPLETE_ACK         [i];
68        delete  in_BRANCH_COMPLETE_ADDRESS     [i];
69        if (_param._have_bht)
70        delete  in_BRANCH_COMPLETE_BHT_HISTORY [i];
71        if (_param._have_pht)
72        delete  in_BRANCH_COMPLETE_PHT_HISTORY [i];
73        delete  in_BRANCH_COMPLETE_DIRECTION   [i];
74        if (_param._have_bht)
75          {
76        delete signal_BRANCH_COMPLETE_BHT_ACK     [i];
77        delete signal_BRANCH_COMPLETE_BHT_ADDRESS [i]; 
78          }
79        if (_param._have_pht)
80          {
81        delete signal_BRANCH_COMPLETE_PHT_ACK     [i];
82        delete signal_BRANCH_COMPLETE_PHT_ADDRESS [i]; 
83          }
84      }
85
86    delete  in_BRANCH_COMPLETE_VAL        ;
87    delete out_BRANCH_COMPLETE_ACK        ;
88    delete  in_BRANCH_COMPLETE_ADDRESS    ;
89    if (_param._have_bht)
90    delete  in_BRANCH_COMPLETE_BHT_HISTORY;
91    if (_param._have_pht)
92    delete  in_BRANCH_COMPLETE_PHT_HISTORY;
93    delete  in_BRANCH_COMPLETE_DIRECTION  ;
94    if (_param._have_bht)
95      {
96    delete signal_BRANCH_COMPLETE_BHT_ACK    ;
97    delete signal_BRANCH_COMPLETE_BHT_ADDRESS; 
98      }
99    if (_param._have_pht)
100      {
101    delete signal_BRANCH_COMPLETE_PHT_ACK    ;
102    delete signal_BRANCH_COMPLETE_PHT_ADDRESS; 
103      }
104
105    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
106
107    if (_param._have_bht)
108    delete component_Branch_History_Table ;
109    if (_param._have_pht)
110    delete component_Pattern_History_Table;
111    delete component_Two_Level_Branch_Predictor_Glue;
112
113    log_printf(FUNC,Two_Level_Branch_Predictor,"deallocation","End");
114  };
115
116}; // end namespace two_level_branch_predictor
117}; // end namespace meta_predictor
118}; // end namespace predictor
119}; // end namespace stage_1_ifetch
120
121}; // end namespace behavioural
122}; // end namespace morpheo             
123#endif
Note: See TracBrowser for help on using the repository browser.