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 @ 59

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

Add Load store queue -> but not terminated and tested
Add article to sympa 2007 -> but no started

File size: 3.5 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    delete     in_MEMORY_IN_CONTEXT_ID  ;
38    delete     in_MEMORY_IN_PACKET_ID   ;
39    delete     in_MEMORY_IN_OPERATION   ;
40#ifdef HAVE_MEMORY_OUT_TYPE
41    delete     in_MEMORY_IN_TYPE        ;
42#endif
43    delete     in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;
44    delete     in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;
45//  delete     in_MEMORY_IN_HAS_IMMEDIAT;
46    delete     in_MEMORY_IN_IMMEDIAT    ;
47    delete     in_MEMORY_IN_DATA_RA     ;
48    delete     in_MEMORY_IN_DATA_RB     ;
49//  delete     in_MEMORY_IN_DATA_RC     ;
50    delete     in_MEMORY_IN_WRITE_RD    ;
51    delete     in_MEMORY_IN_NUM_REG_RD  ;
52//  delete     in_MEMORY_IN_WRITE_RE    ;
53//  delete     in_MEMORY_IN_NUM_REG_RE  ;
54   
55    delete    out_MEMORY_OUT_VAL       ;
56    delete     in_MEMORY_OUT_ACK       ;
57    delete    out_MEMORY_OUT_CONTEXT_ID;
58    delete    out_MEMORY_OUT_PACKET_ID ;
59#ifdef HAVE_MEMORY_OUT_OPERATION
60    delete    out_MEMORY_OUT_OPERATION ;
61#endif
62#ifdef HAVE_MEMORY_OUT_TYPE
63    delete    out_MEMORY_OUT_TYPE      ;
64#endif
65    delete    out_MEMORY_OUT_WRITE_RD  ;
66    delete    out_MEMORY_OUT_NUM_REG_RD;
67    delete    out_MEMORY_OUT_DATA_RD   ;
68//  delete    out_MEMORY_OUT_WRITE_RE  ;
69//  delete    out_MEMORY_OUT_NUM_REG_RE;
70//  delete    out_MEMORY_OUT_DATA_RE   ;
71    delete    out_MEMORY_OUT_EXCEPTION ;
72   
73    delete    out_DCACHE_REQ_VAL       ;
74    delete     in_DCACHE_REQ_ACK       ;
75    delete    out_DCACHE_REQ_CONTEXT_ID;
76    delete    out_DCACHE_REQ_PACKET_ID ;
77    delete    out_DCACHE_REQ_ADDRESS   ;
78    delete    out_DCACHE_REQ_TYPE      ;
79    delete    out_DCACHE_REQ_UNCACHED  ;
80    delete    out_DCACHE_REQ_WDATA     ;
81   
82    delete     in_DCACHE_RSP_VAL       ;
83    delete    out_DCACHE_RSP_ACK       ;
84    delete     in_DCACHE_RSP_CONTEXT_ID;
85    delete     in_DCACHE_RSP_PACKET_ID ;
86    delete     in_DCACHE_RSP_RDATA     ;
87    delete     in_DCACHE_RSP_ERROR     ;
88   
89    if (_param->_speculative_load == SPECULATIVE_LOAD_BYPASS)
90      {
91        delete [] out_BYPASS_MEMORY_VAL       ;
92        delete [] out_BYPASS_MEMORY_CONTEXT_ID;
93        delete [] out_BYPASS_MEMORY_NUM_REG   ;
94        delete [] out_BYPASS_MEMORY_DATA      ;
95      }
96    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
97
98    delete    _component;
99
100    delete [] _store_queue                      ;
101    delete [] _load_queue                       ;
102    delete    _speculative_access_queue_control ;
103    delete [] _speculative_access_queue         ;
104
105    log_printf(FUNC,Load_store_unit,FUNCTION,"End");
106  };
107
108}; // end namespace load_store_unit
109}; // end namespace execute_unit
110}; // end namespace multi_execute_unit
111}; // end namespace execute_loop
112}; // end namespace multi_execute_loop
113}; // end namespace core
114
115}; // end namespace behavioural
116}; // end namespace morpheo             
117#endif
Note: See TracBrowser for help on using the repository browser.