source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters.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: 5.0 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace multi_read_unit {
16namespace read_unit {
17namespace reservation_station {
18
19
20#undef  FUNCTION
21#define FUNCTION "Reservation_station::Parameters"
22  Parameters::Parameters (uint32_t size_queue         ,
23                          uint32_t nb_inst_retire     ,
24                          uint32_t nb_context         ,
25                          uint32_t nb_front_end       ,
26                          uint32_t nb_ooo_engine      ,
27                          uint32_t nb_packet          ,
28                          uint32_t size_general_data  ,
29                          uint32_t size_special_data  ,
30                          uint32_t nb_general_register,
31                          uint32_t nb_special_register,
32                          uint32_t nb_gpr_write       ,
33                          uint32_t nb_spr_write       ,
34                          uint32_t nb_bypass_write    ,
35                          uint32_t nb_bypass_memory   ,
36                          uint32_t size_store_queue   ,
37                          uint32_t size_load_queue    ):
38    _size_queue            (size_queue           ),
39    _nb_inst_retire        (nb_inst_retire       ),
40    _nb_context            (nb_context           ),
41    _nb_front_end          (nb_front_end         ),
42    _nb_ooo_engine         (nb_ooo_engine        ),
43    _nb_packet             (nb_packet            ),
44    _size_general_data     (size_general_data    ),
45    _size_special_data     (size_special_data    ),
46    _nb_general_register   (nb_general_register  ),
47    _nb_special_register   (nb_special_register  ),
48    _nb_gpr_write          (nb_gpr_write         ),
49    _nb_spr_write          (nb_spr_write         ),
50    _nb_bypass_write       (nb_bypass_write      ),
51    _nb_bypass_memory      (nb_bypass_memory     ),
52    _size_store_queue      (size_store_queue     ),
53    _size_load_queue       (size_load_queue      ),
54
55    _size_context_id       (static_cast<uint32_t>(log2(_nb_context         ))),
56    _size_front_end_id     (static_cast<uint32_t>(log2(_nb_front_end       ))),
57    _size_ooo_engine_id    (static_cast<uint32_t>(log2(_nb_ooo_engine      ))),
58    _size_rob_id           (static_cast<uint32_t>(log2(_nb_packet          ))),
59    _size_general_register (static_cast<uint32_t>(log2(_nb_general_register))),
60    _size_special_register (static_cast<uint32_t>(log2(_nb_special_register))),
61
62    _have_port_context_id    (_size_context_id    > 0),
63    _have_port_front_end_id  (_size_front_end_id  > 0),
64    _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
65    _have_port_rob_id        (_size_rob_id        > 0),
66    _have_port_load_queue_ptr(_size_load_queue    > 1)
67  {
68    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
69    test();
70    log_printf(FUNC,Reservation_station,FUNCTION,"End");
71  };
72 
73#undef  FUNCTION
74#define FUNCTION "Reservation_station::Parameters (copy)"
75  Parameters::Parameters (Parameters & param):
76    _size_queue            (param._size_queue            ),
77    _nb_inst_retire        (param._nb_inst_retire        ),
78    _nb_context            (param._nb_context            ),
79    _nb_front_end          (param._nb_front_end          ),
80    _nb_ooo_engine         (param._nb_ooo_engine         ),
81    _nb_packet             (param._nb_packet             ),
82    _size_general_data     (param._size_general_data     ),
83    _size_special_data     (param._size_special_data     ),
84    _nb_general_register   (param._nb_general_register   ),
85    _nb_special_register   (param._nb_special_register   ),
86    _nb_gpr_write          (param._nb_gpr_write          ),
87    _nb_spr_write          (param._nb_spr_write          ),
88    _nb_bypass_write       (param._nb_bypass_write       ),
89    _nb_bypass_memory      (param._nb_bypass_memory      ),
90    _size_store_queue      (param._size_store_queue      ),
91    _size_load_queue       (param._size_load_queue       ),
92
93    _size_context_id       (param._size_context_id       ),
94    _size_front_end_id     (param._size_front_end_id     ),
95    _size_ooo_engine_id    (param._size_ooo_engine_id    ),
96    _size_rob_id           (param._size_rob_id           ),
97    _size_general_register (param._size_general_register ),
98    _size_special_register (param._size_special_register ),
99
100    _have_port_context_id    (param._have_port_context_id   ),
101    _have_port_front_end_id  (param._have_port_front_end_id ),
102    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
103    _have_port_rob_id        (param._have_port_rob_id       ),
104    _have_port_load_queue_ptr(param._have_port_load_queue_ptr)
105  {
106    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
107    test();
108    log_printf(FUNC,Reservation_station,FUNCTION,"End");
109  };
110
111#undef  FUNCTION
112#define FUNCTION "Reservation_station::~Parameters"
113  Parameters::~Parameters () 
114  {
115    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
116    log_printf(FUNC,Reservation_station,FUNCTION,"End");
117  };
118
119}; // end namespace reservation_station
120}; // end namespace read_unit
121}; // end namespace multi_read_unit
122}; // end namespace execute_loop
123}; // end namespace multi_execute_loop
124}; // end namespace core
125
126}; // end namespace behavioural
127}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.