source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_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: 5.8 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/include/Meta_Predictor.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace stage_1_ifetch {
14namespace predictor {
15namespace meta_predictor {
16
17  void Meta_Predictor::deallocation (void)
18  {
19    log_printf(FUNC,Meta_Predictor,"deallocation","Begin");
20
21    delete in_CLOCK;
22    delete in_NRESET;
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        delete out_PREDICT_HISTORY             [i];
30        delete out_PREDICT_DIRECTION           [i];
31      }
32
33    delete  in_PREDICT_VAL        ;
34    delete out_PREDICT_ACK        ;
35    delete  in_PREDICT_ADDRESS    ;
36    delete out_PREDICT_HISTORY    ;
37    delete out_PREDICT_DIRECTION  ;
38
39    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
40      {
41        delete  in_BRANCH_COMPLETE_VAL         [i];
42        delete out_BRANCH_COMPLETE_ACK         [i];
43        delete  in_BRANCH_COMPLETE_ADDRESS     [i];
44        delete  in_BRANCH_COMPLETE_HISTORY     [i];
45        delete  in_BRANCH_COMPLETE_DIRECTION   [i];
46      }
47
48    delete  in_BRANCH_COMPLETE_VAL        ;
49    delete out_BRANCH_COMPLETE_ACK        ;
50    delete  in_BRANCH_COMPLETE_ADDRESS    ;
51    delete  in_BRANCH_COMPLETE_HISTORY    ;
52    delete  in_BRANCH_COMPLETE_DIRECTION  ;
53
54    // ~~~~~[ Signal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
55
56    for (uint32_t i=0; i<_param._nb_prediction; i++)
57      {
58        if (_param._have_meta_predictor)
59          {                                                                                                                   
60        delete signal_PREDICT_PREDICTOR_0_ACK         [i];
61        delete signal_PREDICT_PREDICTOR_1_ACK         [i];
62          }
63        delete signal_PREDICT_PREDICTOR_2_ACK         [i];
64
65        if (_param._have_meta_predictor)
66          {                                                                                                                   
67        if (_param._predictor_0_have_bht)
68        delete signal_PREDICT_PREDICTOR_0_BHT_HISTORY [i];
69        if (_param._predictor_0_have_pht)
70        delete signal_PREDICT_PREDICTOR_0_PHT_HISTORY [i];
71        if (_param._predictor_1_have_bht)
72        delete signal_PREDICT_PREDICTOR_1_BHT_HISTORY [i];
73        if (_param._predictor_1_have_pht)
74        delete signal_PREDICT_PREDICTOR_1_PHT_HISTORY [i];
75          }
76        if (_param._predictor_2_have_bht)
77        delete signal_PREDICT_PREDICTOR_2_BHT_HISTORY [i];
78        if (_param._predictor_2_have_pht)
79        delete signal_PREDICT_PREDICTOR_2_PHT_HISTORY [i];
80      }
81
82    if (_param._have_meta_predictor)
83      {
84    delete signal_PREDICT_PREDICTOR_0_ACK         ;
85    delete signal_PREDICT_PREDICTOR_1_ACK         ;
86      }
87    delete signal_PREDICT_PREDICTOR_2_ACK         ;
88
89    if (_param._have_meta_predictor)
90      {                                                                                                               
91    if (_param._predictor_0_have_bht)
92    delete signal_PREDICT_PREDICTOR_0_BHT_HISTORY;
93    if (_param._predictor_0_have_pht)
94    delete signal_PREDICT_PREDICTOR_0_PHT_HISTORY;
95    if (_param._predictor_0_have_bht)
96    delete signal_PREDICT_PREDICTOR_1_BHT_HISTORY;
97    if (_param._predictor_1_have_pht)
98    delete signal_PREDICT_PREDICTOR_1_PHT_HISTORY;
99      }                                           
100    if (_param._predictor_2_have_bht)
101    delete signal_PREDICT_PREDICTOR_2_BHT_HISTORY;
102    if (_param._predictor_2_have_pht)
103    delete signal_PREDICT_PREDICTOR_2_PHT_HISTORY;
104
105    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
106      {
107        if (_param._have_meta_predictor)
108          {                                                                                                                   
109        delete signal_BRANCH_COMPLETE_PREDICTOR_0_ACK         [i];
110        delete signal_BRANCH_COMPLETE_PREDICTOR_1_ACK         [i];
111        delete signal_BRANCH_COMPLETE_PREDICTOR_2_VAL         [i];
112        delete signal_BRANCH_COMPLETE_PREDICTOR_2_DIRECTION   [i];
113          }
114        delete signal_BRANCH_COMPLETE_PREDICTOR_2_ACK         [i];
115
116        if (_param._have_meta_predictor)
117          {                                                                                                                   
118        if (_param._predictor_0_have_bht)
119        delete signal_BRANCH_COMPLETE_PREDICTOR_0_BHT_HISTORY [i];
120        if (_param._predictor_0_have_pht)
121        delete signal_BRANCH_COMPLETE_PREDICTOR_0_PHT_HISTORY [i];
122        if (_param._predictor_1_have_bht)
123        delete signal_BRANCH_COMPLETE_PREDICTOR_1_BHT_HISTORY [i];
124        if (_param._predictor_1_have_pht)
125        delete signal_BRANCH_COMPLETE_PREDICTOR_1_PHT_HISTORY [i];
126          }
127        if (_param._predictor_2_have_bht)
128        delete signal_BRANCH_COMPLETE_PREDICTOR_2_BHT_HISTORY [i];
129        if (_param._predictor_2_have_pht)
130        delete signal_BRANCH_COMPLETE_PREDICTOR_2_PHT_HISTORY [i];
131      }
132
133    if (_param._have_meta_predictor)
134      {
135    delete signal_BRANCH_COMPLETE_PREDICTOR_0_ACK         ;
136    delete signal_BRANCH_COMPLETE_PREDICTOR_1_ACK         ;
137    delete signal_BRANCH_COMPLETE_PREDICTOR_2_VAL         ;
138    delete signal_BRANCH_COMPLETE_PREDICTOR_2_DIRECTION   ;
139      }
140    delete signal_BRANCH_COMPLETE_PREDICTOR_2_ACK         ;
141
142    if (_param._have_meta_predictor)
143      {                                                                                                               
144    if (_param._predictor_0_have_bht)
145    delete signal_BRANCH_COMPLETE_PREDICTOR_0_BHT_HISTORY;
146    if (_param._predictor_0_have_pht)
147    delete signal_BRANCH_COMPLETE_PREDICTOR_0_PHT_HISTORY;
148    if (_param._predictor_0_have_bht)
149    delete signal_BRANCH_COMPLETE_PREDICTOR_1_BHT_HISTORY;
150    if (_param._predictor_1_have_pht)
151    delete signal_BRANCH_COMPLETE_PREDICTOR_1_PHT_HISTORY;
152      }                                           
153    if (_param._predictor_2_have_bht)
154    delete signal_BRANCH_COMPLETE_PREDICTOR_2_BHT_HISTORY;
155    if (_param._predictor_2_have_pht)
156    delete signal_BRANCH_COMPLETE_PREDICTOR_2_PHT_HISTORY;
157
158    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
159
160    if (_param._have_meta_predictor)
161      {
162    delete component_Two_Level_Branch_Predictor_0;
163    delete component_Two_Level_Branch_Predictor_1;
164      }
165    delete component_Two_Level_Branch_Predictor_2;
166    delete component_Meta_Predictor_Glue         ;
167
168
169    log_printf(FUNC,Meta_Predictor,"deallocation","End");
170  };
171
172}; // end namespace meta_predictor
173}; // end namespace predictor
174}; // end namespace stage_1_ifetch
175
176}; // end namespace behavioural
177}; // end namespace morpheo             
178#endif
Note: See TracBrowser for help on using the repository browser.