gem5/src/mem
Andreas Hansson 2698e73966 base: Use the global Mersenne twister throughout
This patch tidies up random number generation to ensure that it is
done consistently throughout the code base. In essence this involves a
clean-up of Ruby, and some code simplifications in the traffic
generator.

As part of this patch a bunch of skewed distributions (off-by-one etc)
have been fixed.

Note that a single global random number generator is used, and that
the object instantiation order will impact the behaviour (the sequence
of numbers will be unaffected, but if module A calles random before
module B then they would obviously see a different outcome). The
dependency on the instantiation order is true in any case due to the
execution-model of gem5, so we leave it as is. Also note that the
global ranom generator is not thread safe at this point.

Regressions using the memtest, TrafficGen or any Ruby tester are
affected and will be updated accordingly.
2014-09-03 07:42:54 -04:00
..
cache mem: Fix a bug in the cache port flow control 2014-09-03 07:42:50 -04:00
protocol ruby: message buffers: significant changes 2014-09-01 16:55:47 -05:00
ruby base: Use the global Mersenne twister throughout 2014-09-03 07:42:54 -04:00
slicc ruby: message buffers: significant changes 2014-09-01 16:55:47 -05:00
abstract_mem.cc mem: Wakeup sleeping CPUs without caches on LLSC 2014-03-07 15:56:23 -05:00
abstract_mem.hh mem: Avoid explicitly zeroing the memory backing store 2013-05-30 12:53:54 -04:00
AbstractMemory.py mem: Change AbstractMemory defaults to match the common case 2013-08-19 03:52:33 -04:00
addr_mapper.cc mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
addr_mapper.hh mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
AddrMapper.py sim: Include object header files in SWIG interfaces 2012-11-02 11:32:01 -05:00
bridge.cc mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
bridge.hh mem: Tidy up the bridge with const and additional checks 2013-06-27 05:49:49 -04:00
Bridge.py mem: Tidy up the bridge with const and additional checks 2013-06-27 05:49:49 -04:00
bus.cc mem: Avoid unecessary retries when bus peer is not ready 2014-09-03 07:42:53 -04:00
bus.hh mem: Avoid unecessary retries when bus peer is not ready 2014-09-03 07:42:53 -04:00
Bus.py mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
coherent_bus.cc mem: Make returning snoop responses occupy response layer 2013-05-30 12:54:02 -04:00
coherent_bus.hh mem: De-virtualise interfaces in the CoherentBus 2013-10-17 10:20:45 -05:00
comm_monitor.cc mem: change the namespace Message to ProtoMessage 2014-09-01 16:55:46 -05:00
comm_monitor.hh mem: CommMonitor trace warn on non-timing mode 2014-03-23 11:11:40 -04:00
CommMonitor.py mem: Auto-generate CommMonitor trace file names 2014-05-09 18:58:46 -04:00
dram_ctrl.cc mem: Fix address interleaving bug in DRAM controller 2014-08-26 10:12:45 -04:00
dram_ctrl.hh mem: Update DRAM controller comments 2014-08-26 10:13:03 -04:00
DRAMCtrl.py mem: Update DDR3 and DDR4 based on datasheets 2014-05-09 18:58:49 -04:00
dramsim2.cc mem: Fix DRAMSim2 cycle check when restoring from checkpoint 2014-08-26 10:14:38 -04:00
dramsim2.hh mem: Fix DRAMSim2 cycle check when restoring from checkpoint 2014-08-26 10:14:38 -04:00
DRAMSim2.py mem: Add a wrapped DRAMSim2 memory controller 2014-02-18 05:50:53 -05:00
dramsim2_wrapper.cc mem: Add a wrapped DRAMSim2 memory controller 2014-02-18 05:50:53 -05:00
dramsim2_wrapper.hh mem: Add a wrapped DRAMSim2 memory controller 2014-02-18 05:50:53 -05:00
fs_translating_port_proxy.cc arch: Resurrect the NOISA build target and rename it NULL 2013-09-04 13:22:57 -04:00
fs_translating_port_proxy.hh arch: Resurrect the NOISA build target and rename it NULL 2013-09-04 13:22:57 -04:00
mem_object.cc Port: Add protocol-agnostic ports in the port hierarchy 2012-10-15 08:12:35 -04:00
mem_object.hh Port: Add protocol-agnostic ports in the port hierarchy 2012-10-15 08:12:35 -04:00
MemObject.py sim: Include object header files in SWIG interfaces 2012-11-02 11:32:01 -05:00
mport.cc MEM: Separate snoops and normal memory requests/responses 2012-04-14 05:45:07 -04:00
mport.hh MEM: Separate requests and responses for timing accesses 2012-05-01 13:40:42 -04:00
multi_level_page_table.cc mem: adding a multi-level page table class 2014-04-01 12:18:12 -05:00
multi_level_page_table.hh mem: adding a multi-level page table class 2014-04-01 12:18:12 -05:00
multi_level_page_table_impl.hh arch: Cleanup unused ISA traits constants 2014-09-03 07:42:21 -04:00
noncoherent_bus.cc mem: Make the buses multi layered 2013-05-30 12:54:01 -04:00
noncoherent_bus.hh mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
packet.cc mem: write streaming support via WriteInvalidate promotion 2014-06-27 12:29:00 -05:00
packet.hh mem: write streaming support via WriteInvalidate promotion 2014-06-27 12:29:00 -05:00
packet_access.hh arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hh 2009-09-23 08:34:21 -07:00
packet_queue.cc mem: Packet queue clean up 2014-09-03 07:42:28 -04:00
packet_queue.hh mem: Packet queue clean up 2014-09-03 07:42:28 -04:00
page_table.cc mem: adding a multi-level page table class 2014-04-01 12:18:12 -05:00
page_table.hh arch: Cleanup unused ISA traits constants 2014-09-03 07:42:21 -04:00
physical.cc mem: Fix bug in PhysicalMemory use of mmap and munmap 2014-02-18 05:51:01 -05:00
physical.hh mem: Merge ranges that are part of the conf table 2013-01-07 13:05:38 -05:00
port.cc mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
port.hh mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
port_proxy.cc mem: Set the cache line size on a system level 2013-07-18 08:31:16 -04:00
port_proxy.hh arch: Resurrect the NOISA build target and rename it NULL 2013-09-04 13:22:57 -04:00
qport.hh ruby: Simplify RubyPort flow control and routing 2014-02-23 19:16:16 -06:00
request.hh mem: prefetcher: add options, support for unaligned addresses 2014-01-29 23:21:25 -06:00
SConscript mem: adding architectural page table support for SE mode 2014-08-28 10:11:44 -05:00
se_translating_port_proxy.cc arch: Cleanup unused ISA traits constants 2014-09-03 07:42:21 -04:00
se_translating_port_proxy.hh mem: adding a multi-level page table class 2014-04-01 12:18:12 -05:00
simple_mem.cc mem: Fix scheduling bug in SimpleMemory 2013-09-18 08:46:33 -04:00
simple_mem.hh mem: Add an internal packet queue in SimpleMemory 2013-08-19 03:52:25 -04:00
SimpleMemory.py mem: Add an internal packet queue in SimpleMemory 2013-08-19 03:52:25 -04:00
tport.cc mem: Replace check with panic where inhibited should not happen 2013-04-22 13:20:33 -04:00
tport.hh Port: Hide the queue implementation in SimpleTimingPort 2012-07-09 12:35:42 -04:00