source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h @ 108

Last change on this file since 108 was 108, checked in by rosiere, 15 years ago

1) decod_queue : add reg_LAST_SLOT.
2) Commit : insert on event -> to pop decod_queue. Head test : add information (speculative or not)
3) Context State / UPT : Branch miss and Load miss in same cycle.
4) Free List : Bank is on LSB not MSB.
5) Platforms : move data

  • Property svn:keywords set to Id
File size: 4.2 KB
Line 
1#ifndef morpheo_behavioural_core_multi_front_end_front_end_decod_unit_decod_queue_Types_h
2#define morpheo_behavioural_core_multi_front_end_front_end_decod_unit_decod_queue_Types_h
3
4/*
5 * $Id: Types.h 108 2009-02-12 11:55:06Z rosiere $
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/include/Types.h"
12
13namespace morpheo {
14namespace behavioural {
15namespace core {
16namespace multi_front_end {
17namespace front_end {
18namespace decod_unit {
19namespace decod_queue {
20
21  class decod_queue_entry_t
22  {
23  private: const uint32_t       _nb_inst        ;
24
25  public : Tcontrol_t         * _val            ;
26  public : Tcontext_t         * _context_id     ;
27  public : Tdepth_t           * _depth          ;
28  public : Ttype_t            * _type           ;
29  public : Toperation_t       * _operation      ;
30  public : Tcontrol_t         * _no_execute     ;
31  public : Tcontrol_t         * _is_delay_slot  ;
32#ifdef DEBUG
33  public : Tgeneral_data_t    * _address        ;
34#endif
35  public : Tgeneral_data_t    * _address_next   ;
36  public : Tcontrol_t         * _has_immediat   ;
37  public : Tgeneral_data_t    * _immediat       ;
38  public : Tcontrol_t         * _read_ra        ;
39  public : Tgeneral_address_t * _num_reg_ra     ;
40  public : Tcontrol_t         * _read_rb        ;
41  public : Tgeneral_address_t * _num_reg_rb     ;
42  public : Tcontrol_t         * _read_rc        ;
43  public : Tspecial_address_t * _num_reg_rc     ;
44  public : Tcontrol_t         * _write_rd       ;
45  public : Tgeneral_address_t * _num_reg_rd     ;
46  public : Tcontrol_t         * _write_re       ;
47  public : Tspecial_address_t * _num_reg_re     ;
48  public : Texception_t       * _exception_use  ;
49  public : Texception_t       * _exception      ;
50
51  public :  decod_queue_entry_t (uint32_t nb_inst):
52    _nb_inst (nb_inst)
53    {
54      _val            = new Tcontrol_t         [_nb_inst];
55      _context_id     = new Tcontext_t         [_nb_inst];
56      _depth          = new Tdepth_t           [_nb_inst];
57      _type           = new Ttype_t            [_nb_inst];
58      _operation      = new Toperation_t       [_nb_inst];
59      _no_execute     = new Tcontrol_t         [_nb_inst];
60      _is_delay_slot  = new Tcontrol_t         [_nb_inst];
61#ifdef DEBUG
62      _address        = new Tgeneral_data_t    [_nb_inst];
63#endif
64      _address_next   = new Tgeneral_data_t    [_nb_inst];
65      _has_immediat   = new Tcontrol_t         [_nb_inst];
66      _immediat       = new Tgeneral_data_t    [_nb_inst];
67      _read_ra        = new Tcontrol_t         [_nb_inst];
68      _num_reg_ra     = new Tgeneral_address_t [_nb_inst];
69      _read_rb        = new Tcontrol_t         [_nb_inst];
70      _num_reg_rb     = new Tgeneral_address_t [_nb_inst];
71      _read_rc        = new Tcontrol_t         [_nb_inst];
72      _num_reg_rc     = new Tspecial_address_t [_nb_inst];
73      _write_rd       = new Tcontrol_t         [_nb_inst];
74      _num_reg_rd     = new Tgeneral_address_t [_nb_inst];
75      _write_re       = new Tcontrol_t         [_nb_inst];
76      _num_reg_re     = new Tspecial_address_t [_nb_inst];
77      _exception_use  = new Texception_t       [_nb_inst];
78      _exception      = new Texception_t       [_nb_inst];
79
80      for (uint32_t i=0; i<_nb_inst; i++)
81        _val [i]=0; // default : not valid
82    }
83
84  public : ~decod_queue_entry_t (void)
85    {
86      delete [] _val            ;
87      delete [] _context_id     ;
88      delete [] _depth          ;
89      delete [] _type           ;
90      delete [] _operation      ;
91      delete [] _no_execute     ;
92      delete [] _is_delay_slot  ;
93#ifdef DEBUG
94      delete [] _address        ;
95#endif
96      delete [] _address_next   ;
97      delete [] _has_immediat   ;
98      delete [] _immediat       ;
99      delete [] _read_ra        ;
100      delete [] _num_reg_ra     ;
101      delete [] _read_rb        ;
102      delete [] _num_reg_rb     ;
103      delete [] _read_rc        ;
104      delete [] _num_reg_rc     ;
105      delete [] _write_rd       ;
106      delete [] _num_reg_rd     ;
107      delete [] _write_re       ;
108      delete [] _num_reg_re     ;
109      delete [] _exception_use  ;
110      delete [] _exception      ;
111    }
112  };
113
114}; // end namespace decod_queue
115}; // end namespace decod_unit
116}; // end namespace front_end
117}; // end namespace multi_front_end
118}; // end namespace core
119
120}; // end namespace behavioural
121}; // end namespace morpheo             
122
123#endif
Note: See TracBrowser for help on using the repository browser.