ruby: replace g_ruby_start with per-RubySystem m_start_cycle
authorBrandon Potter <brandon.potter@amd.com>
Fri, 10 Jul 2015 21:05:23 +0000 (16:05 -0500)
committerBrandon Potter <brandon.potter@amd.com>
Fri, 10 Jul 2015 21:05:23 +0000 (16:05 -0500)
commitc38f5098b152ea1e1dde96220d3f9e50d3411780
tree921765f6aac17f76f5801deb2e14ea16f5ed8963
parent9eda4bdc5a947883a2d55ab860d37c5cd80c3370
ruby: replace g_ruby_start with per-RubySystem m_start_cycle

This patch begins the process of removing global variables from the Ruby
source with the goal of eventually allowing users to create multiple Ruby
instances in a single simulation.  Currently, users cannot do so because
several global variables and static members are referenced by the RubySystem
object in a way that assumes that there will only ever be a single RubySystem.
These need to be replaced with per-RubySystem equivalents.

This specific patch replaces the global var g_ruby_start, which is used
to calculate throughput statistics for Throttles in simple networks and
links in Garnet networks, with a RubySystem instance var m_start_cycle.
src/mem/ruby/common/Global.cc
src/mem/ruby/common/Global.hh
src/mem/ruby/network/Network.cc
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
src/mem/ruby/network/simple/Switch.cc
src/mem/ruby/network/simple/Throttle.cc
src/mem/ruby/network/simple/Throttle.hh
src/mem/ruby/system/System.cc
src/mem/ruby/system/System.hh