assert(delta > 0);
Tick arrival_time = 0;
- if (!RubySystem::getRandomization() || !m_randomization) {
+ // random delays are inserted if either RubySystem level randomization flag
+ // is turned on, or the buffer level randomization is set
+ if (!RubySystem::getRandomization() && !m_randomization) {
// No randomization
arrival_time = current_time + delta;
} else {
ordered = Param.Bool(False, "Whether the buffer is ordered")
buffer_size = Param.Unsigned(0, "Maximum number of entries to buffer \
(0 allows infinite entries)")
- randomization = Param.Bool(False, "")
+ randomization = Param.Bool(False, "Insert random delays on message \
+ enqueue times (enforced to have \
+ random delays if RubySystem \
+ randomization flag is True)")
master = MasterPort("Master port to MessageBuffer receiver")
slave = SlavePort("Slave port from MessageBuffer sender")
type = 'RubySystem'
cxx_header = "mem/ruby/system/RubySystem.hh"
randomization = Param.Bool(False,
- "insert random delays on message enqueue times");
+ "insert random delays on message enqueue times (if True, all message \
+ buffers are enforced to have randomization; otherwise, a message \
+ buffer set its own flag to enable/disable randomization)");
block_size_bytes = Param.UInt32(64,
"default cache block size; must be a power of two");
memory_size_bits = Param.UInt32(64,