dram_directory_perf_model_base.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef __DRAM_DIRECTORY_PERF_MODEL_BASE_H__
  2. #define __DRAM_DIRECTORY_PERF_MODEL_BASE_H__
  3. #include "log.h"
  4. #include "config.hpp"
  5. #include "simulator.h"
  6. class DramDirectoryPerfModelBase
  7. {
  8. protected:
  9. UInt32 access_dir_cache_delay;
  10. UInt32 enqueue_request_delay;
  11. UInt32 dequeue_request_delay;
  12. UInt32 process_request_delay;
  13. UInt32 process_ack_delay;
  14. UInt32 shmem_send_message_delay;
  15. UInt32 shmem_receive_message_delay;
  16. public:
  17. DramDirectoryPerfModelBase()
  18. {
  19. access_dir_cache_delay = Sim()->getCfg()->getInt("perf_model/dram_dir/access_time");
  20. // enqueue_request_delay = Config::getSingleton()->getEnqueueRequestDelay();
  21. // dequeue_request_delay = Config::getSingleton()->getDequeueRequestDelay();
  22. // process_request_delay = Config::getSingleton()->getProcessRequestDelay();
  23. // process_ack_delay = Config::getSingleton()->getProcessAckDelay();
  24. // shmem_send_message_delay = Config::getSingleton()->getShMemSendMessageDelay();
  25. // shmem_receive_message_delay = Config::getSingleton()->getShMemReceiveMessageDelay();
  26. }
  27. virtual ~DramDirectoryPerfModelBase() { }
  28. static DramDirectoryPerfModelBase* createModel(UInt32 type);
  29. enum DramDirActions_t
  30. {
  31. ACCESS_DIR_CACHE = 0,
  32. ENQUEUE_REQUEST,
  33. DEQUEUE_REQUEST,
  34. PROCESS_REQUEST,
  35. PROCESS_ACK,
  36. SEND_MESSAGE,
  37. RECEIVE_MESSAGE,
  38. NUM_DRAM_DIR_ACTIONS
  39. };
  40. enum DramDirectoryPerfModel_t
  41. {
  42. DRAM_DIRECTORY_PERF_MODEL = 0,
  43. NUM_DRAM_DIRECTORY_PERF_MODELS
  44. };
  45. virtual UInt32 getLatency(DramDirActions_t action)
  46. {
  47. return 0;
  48. }
  49. };
  50. #endif /* __DRAM_DIRECTORY_PERF_MODEL_BASE_H__ */