source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_transition.cpp @ 110

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

1) OOO_egine : add stat to depiste low perf source
2) Commit : add stat
3) LSU_Pointer : retire - always ack (else combinatory loop). insert - max nb_inst_memory
4) TopLevel? : add debug_idle_time to stop combinatory loop.
5) Issue_queue : add reexecute_queue, new implementation (routage after issue_queue)
6) Decod / Predictor : add "can_continue"

  • Property svn:keywords set to Id
File size: 1.6 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: OOO_Engine_Glue_transition.cpp 110 2009-02-19 16:31:47Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/include/OOO_Engine_Glue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace ooo_engine {
16namespace ooo_engine_glue {
17
18
19#undef  FUNCTION
20#define FUNCTION "OOO_Engine_Glue::transition"
21  void OOO_Engine_Glue::transition (void)
22  {
23    log_begin(OOO_Engine_Glue,FUNCTION);
24
25#ifdef STATISTICS
26    if (usage_is_set(_usage,USE_STATISTICS))
27      {
28        uint32_t x=0;
29        for (uint32_t i=0; i<_param->_nb_rename_unit; ++i)
30          for (uint32_t j=0; j<_param->_nb_inst_insert[i]; ++j)
31            {
32              if (PORT_READ(in_INSERT_RENAME_UNIT_VAL [i][j]))
33                {
34                  if (PORT_READ(in_INSERT_ACK [x]) == 0)
35                    (*_stat_nb_inst_issue_stall_by_registerfile) ++;
36                  if (PORT_READ(in_INSERT_COMMIT_UNIT_ACK [i][j]) == 0)
37                    (*_stat_nb_inst_issue_stall_by_commit_unit ) ++;
38                  if (PORT_READ(in_INSERT_ISSUE_QUEUE_ACK [i][j]) == 0)
39                    (*_stat_nb_inst_issue_stall_by_issue_queue ) ++;
40                }
41              x++;
42            }
43      }
44#endif
45
46#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
47    end_cycle ();
48#endif
49
50    log_end(OOO_Engine_Glue,FUNCTION);
51  };
52
53}; // end namespace ooo_engine_glue
54}; // end namespace ooo_engine
55}; // end namespace multi_ooo_engine
56}; // end namespace core
57
58}; // end namespace behavioural
59}; // end namespace morpheo             
60#endif
Note: See TracBrowser for help on using the repository browser.