SST/macro
processor.h
Go to the documentation of this file.
1 /*
2  * This file is part of SST/macroscale:
3  * The macroscale architecture simulator from the SST suite.
4  * Copyright (c) 2009 Sandia Corporation.
5  * This software is distributed under the BSD License.
6  * Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
7  * the U.S. Government retains certain rights in this software.
8  * For more information, see the LICENSE file in the top
9  * SST/macroscale directory.
10  */
11 
12 #ifndef SSTMAC_HARDWARE_PROCESSOR_PROCESSOR_H_INCLUDED
13 #define SSTMAC_HARDWARE_PROCESSOR_PROCESSOR_H_INCLUDED
14 
15 
22 #include <sprockit/debug.h>
23 
24 DeclareDebugSlot(processor);
25 
26 namespace sstmac {
27 namespace hw {
28 
29 /**
30  * An interface for processor models
31  */
32 class processor :
34 {
35 
36  public:
37  virtual ~processor();
38 
39  virtual void
40  init_factory_params(sprockit::sim_parameters* params);
41 
42  virtual void
43  finalize_init();
44 
45  static void
47 
48  virtual void
49  compute(event* cev, callback* cb) = 0;
50 
51  protected:
53  mem_(mem), node_(nd) {}
54 
55  protected:
56  double freq_;
57  double mem_freq_;
58 
61 
62 
63 };
64 
66 
67 }
68 } // end of namespace sstmac
69 
70 #endif
processor(memory_model *mem, node *nd)
Definition: processor.h:52
static void delete_statics()
DeclareFactory2InitParams(processor, memory_model *, node *)
memory_model * mem_
Definition: processor.h:59
virtual void init_factory_params(sprockit::sim_parameters *params)
virtual void finalize_init()
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
DeclareDebugSlot(processor)
virtual void compute(event *cev, callback *cb)=0
An interface for processor models.
Definition: processor.h:32