Age | Commit message (Collapse) | Author |
|
|
|
|
|
In addition to obvious changes, this required a slight change to the slicc
grammar to allow types with :: in them. Otherwise slicc barfs on std::string
which we need for the headers that slicc generates.
|
|
|
|
|
|
|
|
|
|
|
|
--HG--
rename : configs/ruby/MESI_CMP_directory.py => configs/ruby/protocols/MESI_CMP_directory.py
rename : configs/ruby/MI_example.py => configs/ruby/protocols/MI_example.py
rename : configs/ruby/MOESI_CMP_directory.py => configs/ruby/protocols/MOESI_CMP_directory.py
rename : configs/ruby/MOESI_CMP_token.py => configs/ruby/protocols/MOESI_CMP_token.py
rename : configs/ruby/MOESI_hammer.py => configs/ruby/protocols/MOESI_hammer.py
rename : configs/ruby/networks/MeshDirCorners.py => src/mem/ruby/network/topologies/MeshDirCorners.py
|
|
|
|
Previously, the set size was set to 4. This was mostly do to the fact that a
crazy graduate student use to create networks with 256 l2 cache banks. Now it
is far more likely that users will create systems with less than 64 of any
particular controller type. Therefore Ruby should be optimized for a set size
of 1.
|
|
Reordered vnet priorities to agree with PerfectSwitch for protocols MI_example,
MOESI_CMP_token, and MOESI_hammer
|
|
|
|
The RubySystem flag no_mem_vec will disable Ruby from allocating it's memory
data array.
|
|
The patch includes direct support for the MI example protocol.
|
|
|
|
|
|
|
|
Fix bug in Ruby Event queue to avoid multiple wakeups of same consumer in
same cycle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mostly files missed during import or screwed up during import
|
|
|
|
|
|
It's a power of two anyway, so why use it in the first place.
|
|
Do not use "using namespace std;" in headers
Include header files as needed
|
|
|
|
|
|
This makes it easier to add global variables like protocol
|
|
Plus, a minor bugfix that neglects to update blk->contextSrc in certain cases on a cache insert.
|
|
On the config end, if a shared L2 is created for the system, it is
parameterized to have n sharers as defined by option.num_cpus. In addition to
making the cache sharing aware so that discriminating tag policies can make use
of context_ids to make decisions, I added an occupancy AverageStat and an occ %
stat to each cache so that you could know which contexts are occupying how much
cache on average, both in terms of blocks and percentage. Note that since
devices have context_id -1, having an array of occ stats that correspond to
each context_id will break here, so in FS mode I add an extra bucket for device
blocks. This bucket is explicitly not added in SE mode in order to not only
avoid ugliness in the stats.txt file, but to avoid broken stats (some formulas
break when a bucket is 0).
|
|
|
|
Fixed data block assignment to not delete if not internally allocated.
|
|
|
|
|
|
Added full-system support to the simple mesh toplogy by allowing dma contrllers
to be attached to router zero in the network.
|
|
|
|
This patch includes the necessary regression updates to test the new ruby
configuration system. The patch includes support for multiple ruby protocols
and adds the ruby random tester. The patch removes atomic mode test for
ruby since ruby does not support atomic mode acceses. These tests can be
added back in when ruby supports atomic mode for real.
--HG--
rename : tests/quick/50.memtest/test.py => tests/quick/60.rubytest/test.py
|
|
Replaced Ruby debug statements with M5 statements.
|
|
Removed the last level cache support and MOESI_hammer's dependency on it.
Replaces the LLC support with the more generic MachineType count.
|
|
|
|
Removed static members in RubyPort and removed the ruby request unique id.
|
|
Removed the old config interface from RubySystem and libruby.
|
|
Removed the dummy power function implementations so that Orion can implement
them correctly. Since Orion lacks modular design, this patch simply enables
scons to compile it. There are no python configuration changes in this patch.
|
|
|