source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/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: 2.9 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Generic/Victim/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace generic {
13namespace victim {
14
15
16#undef  FUNCTION
17#define FUNCTION "Victim::Parameters"
18  Parameters::Parameters (Tvictim_t victim_scheme    ,
19                          uint32_t  nb_entity        ,
20                          uint32_t  nb_entry         ,
21                          uint32_t  nb_access        ,
22                          bool      table_global     )
23  {
24    log_printf(FUNC,Victim,FUNCTION,"Begin");
25   
26    _victim_scheme     = victim_scheme;
27    _nb_entity         = nb_entity    ;
28    _nb_entry          = nb_entry     ;
29    _nb_access         = nb_access    ;
30    _table_global      = table_global ;
31   
32    _size_table        = (table_global==true)?1:_nb_entry;
33    _size_entity       = log2(nb_entity);
34    _size_address      = log2(nb_entry);
35   
36    _have_port_address = _size_address>0;
37
38    test();
39
40    switch (victim_scheme)
41      {
42//    case VICTIM_RANDOM      : _param_victim_random      = new morpheo::behavioural::generic::victim::victim_random     ::Parameters (); break;
43//    case VICTIM_ROUND_ROBIN : _param_victim_round_robin = new morpheo::behavioural::generic::victim::victim_round_robin::Parameters (); break;
44//    case VICTIM_NLU         : _param_victim_nlu         = new morpheo::behavioural::generic::victim::victim_nlu        ::Parameters (); break;
45      case VICTIM_PSEUDO_LRU  : _param_victim_pseudo_lru  = new morpheo::behavioural::generic::victim::victim_pseudo_lru ::Parameters (nb_entity, nb_access, nb_entry, table_global); break;
46//    case VICTIM_LRU         : _param_victim_lru         = new morpheo::behavioural::generic::victim::victim_lru        ::Parameters (); break;
47//    case VICTIM_FIFO        : _param_victim_fifo        = new morpheo::behavioural::generic::victim::victim_fifo       ::Parameters (); break;
48      default : break;
49      }
50
51    log_printf(FUNC,Victim,FUNCTION,"End");
52  };
53 
54// #undef  FUNCTION
55// #define FUNCTION "Victim::Parameters (copy)"
56//   Parameters::Parameters (Parameters & param)
57//   {
58//     log_printf(FUNC,Victim,FUNCTION,"Begin");
59//     test();
60//     log_printf(FUNC,Victim,FUNCTION,"End");
61//   };
62
63#undef  FUNCTION
64#define FUNCTION "Victim::~Parameters"
65  Parameters::~Parameters () 
66  {
67    log_printf(FUNC,Victim,FUNCTION,"Begin");
68
69    switch (_victim_scheme)
70      {
71//    case VICTIM_RANDOM      : delete _param_victim_random     ;
72//    case VICTIM_ROUND_ROBIN : delete _param_victim_round_robin;
73//    case VICTIM_NLU         : delete _param_victim_nlu        ;
74      case VICTIM_PSEUDO_LRU  : delete _param_victim_pseudo_lru ;
75//    case VICTIM_LRU         : delete _param_victim_lru        ;
76//    case VICTIM_FIFO        : delete _param_victim_fifo       ;
77      default : break;
78      }
79
80    log_printf(FUNC,Victim,FUNCTION,"End");
81  };
82
83}; // end namespace victim
84}; // end namespace generic
85
86}; // end namespace behavioural
87}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.