source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_deallocation.cpp @ 78

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

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
File size: 3.6 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/include/Read_unit_to_Execution_unit.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace network {
16namespace read_unit_to_execution_unit {
17
18
19#undef  FUNCTION
20#define FUNCTION "Read_unit_to_Execution_unit::deallocation"
21  void Read_unit_to_Execution_unit::deallocation (void)
22  {
23    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
24
25    if (_usage & USE_SYSTEMC)
26      {
27        delete    in_CLOCK ;
28        delete    in_NRESET;
29
30        // ~~~~~[ Interface "read_unit_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31        delete [] in_READ_UNIT_OUT_VAL                  ;
32        delete []out_READ_UNIT_OUT_ACK                  ;
33        if (_param->_have_port_context_id)
34        delete [] in_READ_UNIT_OUT_CONTEXT_ID           ;
35        if (_param->_have_port_front_end_id)
36        delete [] in_READ_UNIT_OUT_FRONT_END_ID         ;
37        if (_param->_have_port_ooo_engine_id)
38        delete [] in_READ_UNIT_OUT_OOO_ENGINE_ID        ;
39        if (_param->_have_port_packet_id)
40        delete [] in_READ_UNIT_OUT_PACKET_ID            ;
41        delete [] in_READ_UNIT_OUT_OPERATION            ;
42        delete [] in_READ_UNIT_OUT_TYPE                 ;
43        delete [] in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE;
44        if (_param->_have_port_load_queue_ptr)
45        delete [] in_READ_UNIT_OUT_LOAD_QUEUE_PTR_WRITE ;
46        delete [] in_READ_UNIT_OUT_HAS_IMMEDIAT         ;
47        delete [] in_READ_UNIT_OUT_IMMEDIAT             ;
48        delete [] in_READ_UNIT_OUT_DATA_RA              ;
49        delete [] in_READ_UNIT_OUT_DATA_RB              ;
50        delete [] in_READ_UNIT_OUT_DATA_RC              ;
51        delete [] in_READ_UNIT_OUT_WRITE_RD             ;
52        delete [] in_READ_UNIT_OUT_NUM_REG_RD           ;
53        delete [] in_READ_UNIT_OUT_WRITE_RE             ;
54        delete [] in_READ_UNIT_OUT_NUM_REG_RE           ;
55
56        // ~~~~~[ Interface "execute_unit_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57        delete [] out_EXECUTE_UNIT_IN_VAL                  ;
58        delete []  in_EXECUTE_UNIT_IN_ACK                  ;
59        if (_param->_have_port_context_id)
60        delete [] out_EXECUTE_UNIT_IN_CONTEXT_ID           ;
61        if (_param->_have_port_front_end_id)
62        delete [] out_EXECUTE_UNIT_IN_FRONT_END_ID         ;
63        if (_param->_have_port_ooo_engine_id)
64        delete [] out_EXECUTE_UNIT_IN_OOO_ENGINE_ID        ;
65        if (_param->_have_port_packet_id)
66        delete [] out_EXECUTE_UNIT_IN_PACKET_ID            ;
67        delete [] out_EXECUTE_UNIT_IN_OPERATION            ;
68        delete [] out_EXECUTE_UNIT_IN_TYPE                 ;
69        delete [] out_EXECUTE_UNIT_IN_HAS_IMMEDIAT         ;
70        delete [] out_EXECUTE_UNIT_IN_DATA_RC              ;
71        delete [] out_EXECUTE_UNIT_IN_WRITE_RD             ;
72        delete [] out_EXECUTE_UNIT_IN_WRITE_RE             ;
73        delete [] out_EXECUTE_UNIT_IN_NUM_REG_RE           ;
74        delete [] out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_WRITE;
75        if (_param->_have_port_load_queue_ptr)
76        delete [] out_EXECUTE_UNIT_IN_LOAD_QUEUE_PTR_WRITE ;
77        delete [] out_EXECUTE_UNIT_IN_IMMEDIAT             ;
78        delete [] out_EXECUTE_UNIT_IN_DATA_RA              ;
79        delete [] out_EXECUTE_UNIT_IN_DATA_RB              ;
80        delete [] out_EXECUTE_UNIT_IN_NUM_REG_RD           ;
81      }
82    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
83
84    delete [] _destination;
85    delete    _component;
86
87    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"End");
88  };
89
90}; // end namespace read_unit_to_execution_unit
91}; // end namespace network
92}; // end namespace execute_loop
93}; // end namespace multi_execute_loop
94}; // end namespace core
95
96}; // end namespace behavioural
97}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.