AbstractController.hh (9496:28d88a0fda74) | AbstractController.hh (9497:2759161b9d7f) |
---|---|
1/* 2 * Copyright (c) 2009 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 22 unchanged lines hidden (view full) --- 31 32#include <iostream> 33#include <string> 34 35#include "mem/protocol/AccessPermission.hh" 36#include "mem/ruby/common/Address.hh" 37#include "mem/ruby/common/Consumer.hh" 38#include "mem/ruby/common/DataBlock.hh" | 1/* 2 * Copyright (c) 2009 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 22 unchanged lines hidden (view full) --- 31 32#include <iostream> 33#include <string> 34 35#include "mem/protocol/AccessPermission.hh" 36#include "mem/ruby/common/Address.hh" 37#include "mem/ruby/common/Consumer.hh" 38#include "mem/ruby/common/DataBlock.hh" |
39#include "mem/ruby/common/Histogram.hh" |
|
39#include "mem/ruby/network/Network.hh" 40#include "mem/ruby/recorder/CacheRecorder.hh" 41#include "mem/ruby/system/MachineID.hh" 42#include "mem/packet.hh" 43#include "params/RubyController.hh" 44#include "sim/clocked_object.hh" 45 46class MessageBuffer; --- 40 unchanged lines hidden (view full) --- 87 88 public: 89 MachineID getMachineID() const { return m_machineID; } 90 uint64_t getFullyBusyCycles() const { return m_fully_busy_cycles; } 91 uint64_t getRequestCount() const { return m_request_count; } 92 const std::map<std::string, uint64_t>& getRequestProfileMap() const 93 { return m_requestProfileMap; } 94 | 40#include "mem/ruby/network/Network.hh" 41#include "mem/ruby/recorder/CacheRecorder.hh" 42#include "mem/ruby/system/MachineID.hh" 43#include "mem/packet.hh" 44#include "params/RubyController.hh" 45#include "sim/clocked_object.hh" 46 47class MessageBuffer; --- 40 unchanged lines hidden (view full) --- 88 89 public: 90 MachineID getMachineID() const { return m_machineID; } 91 uint64_t getFullyBusyCycles() const { return m_fully_busy_cycles; } 92 uint64_t getRequestCount() const { return m_request_count; } 93 const std::map<std::string, uint64_t>& getRequestProfileMap() const 94 { return m_requestProfileMap; } 95 |
96 Histogram& getDelayHist() { return m_delayHistogram; } 97 Histogram& getDelayVCHist(uint32_t index) 98 { return m_delayVCHistogram[index]; } 99 |
|
95 protected: 96 //! Profiles original cache requests including PUTs 97 void profileRequest(const std::string &request); | 100 protected: 101 //! Profiles original cache requests including PUTs 102 void profileRequest(const std::string &request); |
103 //! Profiles the delay associated with messages. 104 void profileMsgDelay(uint32_t virtualNetwork, Time delay); |
|
98 99 protected: 100 int m_transitions_per_cycle; 101 int m_buffer_size; 102 int m_recycle_latency; 103 std::string m_name; 104 NodeID m_version; 105 Network* m_net_ptr; --- 10 unchanged lines hidden (view full) --- 116 //! Counter for the number of cycles when the transitions carried out 117 //! were equal to the maximum allowed 118 uint64_t m_fully_busy_cycles; 119 120 //! Map for couting requests of different types. The controller should 121 //! call requisite function for updating the count. 122 std::map<std::string, uint64_t> m_requestProfileMap; 123 uint64_t m_request_count; | 105 106 protected: 107 int m_transitions_per_cycle; 108 int m_buffer_size; 109 int m_recycle_latency; 110 std::string m_name; 111 NodeID m_version; 112 Network* m_net_ptr; --- 10 unchanged lines hidden (view full) --- 123 //! Counter for the number of cycles when the transitions carried out 124 //! were equal to the maximum allowed 125 uint64_t m_fully_busy_cycles; 126 127 //! Map for couting requests of different types. The controller should 128 //! call requisite function for updating the count. 129 std::map<std::string, uint64_t> m_requestProfileMap; 130 uint64_t m_request_count; |
131 132 //! Histogram for profiling delay for the messages this controller 133 //! cares for 134 Histogram m_delayHistogram; 135 std::vector<Histogram> m_delayVCHistogram; |
|
124}; 125 126#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTCONTROLLER_HH__ | 136}; 137 138#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTCONTROLLER_HH__ |