source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_deallocation.cpp @ 71

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

Modification of Statisctics
Add a new systemC component : Load_Store_Queue (tested with one benchmark and one configuration). Store don't supported the Data Buss Error (Load is supported)

File size: 3.9 KB
Line 
1#undef  FUNCTION
2#define FUNCTION "Load_store_unit::"
3
4#ifdef SYSTEMC
5/*
6 * $Id$
7 *
8 * [ Description ]
9 *
10 */
11
12#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h"
13
14namespace morpheo                    {
15namespace behavioural {
16namespace core {
17namespace multi_execute_loop {
18namespace execute_loop {
19namespace multi_execute_unit {
20namespace execute_unit {
21namespace load_store_unit {
22
23
24#undef  FUNCTION
25#define FUNCTION "Load_store_unit::deallocation"
26  void Load_store_unit::deallocation (void)
27  {
28    log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
29
30//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
31    delete    in_CLOCK ;
32//#endif
33    delete    in_NRESET;
34
35    delete     in_MEMORY_IN_VAL         ;
36    delete    out_MEMORY_IN_ACK         ;
37    if (_param->_have_port_context_id)
38    delete     in_MEMORY_IN_CONTEXT_ID  ;
39    if (_param->_have_port_front_end_id)
40    delete     in_MEMORY_IN_FRONT_END_ID  ;
41    if (_param->_have_port_ooo_engine_id)
42    delete     in_MEMORY_IN_OOO_ENGINE_ID  ;
43    if (_param->_have_port_packet_id)
44    delete     in_MEMORY_IN_PACKET_ID   ;
45    delete     in_MEMORY_IN_OPERATION   ;
46    delete     in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;
47    delete     in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;
48//  delete     in_MEMORY_IN_HAS_IMMEDIAT;
49    delete     in_MEMORY_IN_IMMEDIAT    ;
50    delete     in_MEMORY_IN_DATA_RA     ;
51    delete     in_MEMORY_IN_DATA_RB     ;
52//  delete     in_MEMORY_IN_DATA_RC     ;
53//  delete     in_MEMORY_IN_WRITE_RD    ;
54    delete     in_MEMORY_IN_NUM_REG_RD  ;
55//  delete     in_MEMORY_IN_WRITE_RE    ;
56//  delete     in_MEMORY_IN_NUM_REG_RE  ;
57   
58    delete    out_MEMORY_OUT_VAL       ;
59    delete     in_MEMORY_OUT_ACK       ;
60    if (_param->_have_port_context_id)
61    delete    out_MEMORY_OUT_CONTEXT_ID;
62    if (_param->_have_port_front_end_id)
63    delete    out_MEMORY_OUT_FRONT_END_ID;
64    if (_param->_have_port_ooo_engine_id)
65      delete    out_MEMORY_OUT_OOO_ENGINE_ID;
66    if (_param->_have_port_packet_id)
67    delete    out_MEMORY_OUT_PACKET_ID ;
68    delete    out_MEMORY_OUT_WRITE_RD  ;
69    delete    out_MEMORY_OUT_NUM_REG_RD;
70    delete    out_MEMORY_OUT_DATA_RD   ;
71//  delete    out_MEMORY_OUT_WRITE_RE  ;
72//  delete    out_MEMORY_OUT_NUM_REG_RE;
73//  delete    out_MEMORY_OUT_DATA_RE   ;
74    delete    out_MEMORY_OUT_EXCEPTION ;
75   
76    delete    out_DCACHE_REQ_VAL       ;
77    delete     in_DCACHE_REQ_ACK       ;
78    if (_param->_have_port_dcache_context_id)
79    delete    out_DCACHE_REQ_CONTEXT_ID;
80    delete    out_DCACHE_REQ_PACKET_ID ;
81    delete    out_DCACHE_REQ_ADDRESS   ;
82    delete    out_DCACHE_REQ_TYPE      ;
83    delete    out_DCACHE_REQ_WDATA     ;
84   
85    delete     in_DCACHE_RSP_VAL       ;
86    delete    out_DCACHE_RSP_ACK       ;
87    if (_param->_have_port_dcache_context_id)
88    delete     in_DCACHE_RSP_CONTEXT_ID;
89    delete     in_DCACHE_RSP_PACKET_ID ;
90    delete     in_DCACHE_RSP_RDATA     ;
91    delete     in_DCACHE_RSP_ERROR     ;
92   
93    if (_param->_speculative_load == SPECULATIVE_LOAD_BYPASS)
94      {
95        delete [] out_BYPASS_MEMORY_VAL       ;
96        if (_param->_have_port_ooo_engine_id)   
97        delete [] out_BYPASS_MEMORY_OOO_ENGINE_ID;
98        delete [] out_BYPASS_MEMORY_NUM_REG   ;
99        delete [] out_BYPASS_MEMORY_DATA      ;
100      }
101    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
102
103    delete    _component;
104
105    delete [] _store_queue                      ;
106    delete [] _load_queue                       ;
107    delete    _speculative_access_queue_control ;
108    delete [] _speculative_access_queue         ;
109
110    log_printf(FUNC,Load_store_unit,FUNCTION,"End");
111  };
112
113}; // end namespace load_store_unit
114}; // end namespace execute_unit
115}; // end namespace multi_execute_unit
116}; // end namespace execute_loop
117}; // end namespace multi_execute_loop
118}; // end namespace core
119
120}; // end namespace behavioural
121}; // end namespace morpheo             
122#endif
Note: See TracBrowser for help on using the repository browser.