source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_retire_event_valack.cpp @ 122

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

Modif for performance :
1) Load Store Unit : store send request to valid exeception
2) Commit_unit : retire can bypass store
3) Commit_unit : add stat to manage store instruction
4) Load Store Unit and Load Store Pointer Manager : add store_queue_ptr_read
5) Fix lot of bug

  • Property svn:keywords set to Id
File size: 3.6 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: Rename_unit_Glue_genMealy_retire_event_valack.cpp 122 2009-06-03 08:15:51Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/include/Rename_unit_Glue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace ooo_engine {
16namespace rename_unit {
17namespace rename_unit_glue {
18
19
20#undef  FUNCTION
21#define FUNCTION "Rename_unit_Glue::genMealy_retire_event_valack"
22  void Rename_unit_Glue::genMealy_retire_event_valack (void)
23  {
24    log_begin(Rename_unit_Glue,FUNCTION);
25    log_function(Rename_unit_Glue,FUNCTION,_name.c_str());
26
27    for (uint32_t i=0; i<_param->_nb_front_end; i++)
28      for (uint32_t j=0; j<_param->_nb_context[i]; j++)
29        {
30          Tcontrol_t VAL                          = PORT_READ(in_RETIRE_EVENT_VAL                          [i][j]);
31          Tcontrol_t LOAD_STORE_QUEUE_POINTER_ACK = PORT_READ(in_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_ACK [i][j]);
32          Tcontrol_t REGISTER_TRANSLATION_ACK     = PORT_READ(in_RETIRE_EVENT_REGISTER_TRANSLATION_ACK     [i][j]);
33         
34          Tcontrol_t ACK                          = (//VAL                            and
35                                                       LOAD_STORE_QUEUE_POINTER_ACK   and
36                                                       REGISTER_TRANSLATION_ACK     
37                                                     );
38          Tcontrol_t LOAD_STORE_QUEUE_POINTER_VAL = (
39                                                       VAL                            and
40                                                     //LOAD_STORE_QUEUE_POINTER_ACK   and
41                                                       REGISTER_TRANSLATION_ACK     
42                                                     );
43          Tcontrol_t REGISTER_TRANSLATION_VAL     = (
44                                                       VAL                            and
45                                                       LOAD_STORE_QUEUE_POINTER_ACK //and
46                                                     //REGISTER_TRANSLATION_ACK     
47                                                     );
48         
49          PORT_WRITE(out_RETIRE_EVENT_ACK                          [i][j], ACK                         );
50          PORT_WRITE(out_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_VAL [i][j], LOAD_STORE_QUEUE_POINTER_VAL);
51          PORT_WRITE(out_RETIRE_EVENT_REGISTER_TRANSLATION_VAL     [i][j], REGISTER_TRANSLATION_VAL    );
52         
53          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"  * retire_event [%d][%d]",i,j);
54          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * val (commit_unit)            (r) : %d",VAL                         );
55          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * ack (commit_unit)            (w) : %d",ACK                         );
56          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * register_translation_val     (w) : %d",REGISTER_TRANSLATION_VAL    );
57          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * register_translation_ack     (r) : %d",REGISTER_TRANSLATION_ACK    );
58          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * load_store_queue_pointer_val (w) : %d",LOAD_STORE_QUEUE_POINTER_VAL);
59          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * load_store_queue_pointer_ack (r) : %d",LOAD_STORE_QUEUE_POINTER_ACK);
60        }
61   
62    log_end(Rename_unit_Glue,FUNCTION);
63  };
64 
65}; // end namespace rename_unit_glue
66}; // end namespace rename_unit
67}; // end namespace ooo_engine
68}; // end namespace multi_ooo_engine
69}; // end namespace core
70
71}; // end namespace behavioural
72}; // end namespace morpheo             
73#endif
Note: See TracBrowser for help on using the repository browser.