gem5.git
14 years agom5: Added PROTOCOL default for regress fix
Brad Beckmann [Mon, 1 Feb 2010 06:21:01 +0000 (22:21 -0800)]
m5: Added PROTOCOL default for regress fix

14 years agom5: Regression Tester Update
Brad Beckmann [Sat, 30 Jan 2010 04:29:40 +0000 (20:29 -0800)]
m5: Regression Tester Update

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

14 years agoruby: Replaced gems_common debug statements
Brad Beckmann [Sat, 30 Jan 2010 04:29:34 +0000 (20:29 -0800)]
ruby: Replaced gems_common debug statements

Replaced Ruby debug statements with M5 statements.

14 years agoruby: removed last level cache support
Brad Beckmann [Sat, 30 Jan 2010 04:29:34 +0000 (20:29 -0800)]
ruby: removed last level cache support

Removed the last level cache support and MOESI_hammer's dependency on it.
Replaces the LLC support with the more generic MachineType count.

14 years agoruby: Added a Scons option to prevent HTML file creation
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: Added a Scons option to prevent HTML file creation

14 years agoruby: ruby_se.py updated to new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: ruby_se.py updated to new config system

14 years agoruby: Removed if else statement in create_system
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: Removed if else statement in create_system

Based on Steve's suggestion, the ugly if-elif statement and multiple protocol
module import calls are removed and replaced with exec statements using the
protocol string.

14 years agoruby: Removed static members in RubyPort including hitcallback
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: Removed static members in RubyPort including hitcallback
Removed static members in RubyPort and removed the ruby request unique id.

14 years agoruby: Removed the old config interface
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: Removed the old config interface

Removed the old config interface from RubySystem and libruby.

14 years agoruby: Re-enabled orion power models
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: Re-enabled orion power models

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.

14 years agoruby: memtest-ruby updated to the new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:33 +0000 (20:29 -0800)]
ruby: memtest-ruby updated to the new config system

14 years agoruby: Converted Garnet to M5 configuration
Brad Beckmann [Sat, 30 Jan 2010 04:29:32 +0000 (20:29 -0800)]
ruby: Converted Garnet to M5 configuration

14 years agoGarnet: reorganize directory tree.
Steve Reinhardt [Sat, 30 Jan 2010 04:29:30 +0000 (20:29 -0800)]
Garnet: reorganize directory tree.
Rename the ruby/network/garnet-foo directories to garnet/foo.
Move the common NetworkHeader.hh file from garnet-fixed-pipeline
up to the common garnet directory.
Fix up include paths.

--HG--
rename : src/mem/ruby/network/garnet-fixed-pipeline/NetworkHeader.hh => src/mem/ruby/network/garnet/NetworkHeader.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/CreditLink_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/GarnetNetwork_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/GarnetNetwork_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/InputUnit_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/InputUnit_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/NetworkInterface_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/NetworkInterface_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/NetworkLink_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/NetworkLink_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/OutVcState_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/OutVcState_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/OutputUnit_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/OutputUnit_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/Router_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/Router_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/RoutingUnit_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/RoutingUnit_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/SConscript => src/mem/ruby/network/garnet/fixed-pipeline/SConscript
rename : src/mem/ruby/network/garnet-fixed-pipeline/SWallocator_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/SWallocator_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/Switch_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/Switch_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/VCallocator_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/VCallocator_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/VirtualChannel_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/VirtualChannel_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/flitBuffer_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/flitBuffer_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh
rename : src/mem/ruby/network/garnet-fixed-pipeline/flit_d.cc => src/mem/ruby/network/garnet/fixed-pipeline/flit_d.cc
rename : src/mem/ruby/network/garnet-fixed-pipeline/flit_d.hh => src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/FlexibleConsumer.hh => src/mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/GarnetNetwork.cc => src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/GarnetNetwork.hh => src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/InVcState.cc => src/mem/ruby/network/garnet/flexible-pipeline/InVcState.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/InVcState.hh => src/mem/ruby/network/garnet/flexible-pipeline/InVcState.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/NetworkConfig.hh => src/mem/ruby/network/garnet/flexible-pipeline/NetworkConfig.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/NetworkInterface.cc => src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/NetworkInterface.hh => src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/NetworkLink.cc => src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/NetworkLink.hh => src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/OutVcState.cc => src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/OutVcState.hh => src/mem/ruby/network/garnet/flexible-pipeline/OutVcState.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/Router.cc => src/mem/ruby/network/garnet/flexible-pipeline/Router.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/Router.hh => src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/SConscript => src/mem/ruby/network/garnet/flexible-pipeline/SConscript
rename : src/mem/ruby/network/garnet-flexible-pipeline/VCarbiter.cc => src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/VCarbiter.hh => src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/flit.cc => src/mem/ruby/network/garnet/flexible-pipeline/flit.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/flit.hh => src/mem/ruby/network/garnet/flexible-pipeline/flit.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/flitBuffer.cc => src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.cc
rename : src/mem/ruby/network/garnet-flexible-pipeline/flitBuffer.hh => src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh
rename : src/mem/ruby/network/garnet-flexible-pipeline/netconfig.defaults => src/mem/ruby/network/garnet/flexible-pipeline/netconfig.defaults

14 years agoruby: Added a mesh topology
Brad Beckmann [Sat, 30 Jan 2010 04:29:27 +0000 (20:29 -0800)]
ruby: Added a mesh topology

14 years agoruby: MESI_CMP_directory updated to the new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:27 +0000 (20:29 -0800)]
ruby: MESI_CMP_directory updated to the new config system

14 years agoruby: Sorted the file includes to maintain consistency
Brad Beckmann [Sat, 30 Jan 2010 04:29:26 +0000 (20:29 -0800)]
ruby: Sorted the file includes to maintain consistency

14 years agoruby: Renamed the MESI directory sm file
Brad Beckmann [Sat, 30 Jan 2010 04:29:26 +0000 (20:29 -0800)]
ruby: Renamed the MESI directory sm file

Renamed the MESI directory file to be consistent with all other protocols.

--HG--
rename : src/mem/protocol/MESI_CMP_directory-mem.sm => src/mem/protocol/MESI_CMP_directory-dir.sm

14 years agoruby: Removed the GPL header in MESI_CMP_directory-msg
Brad Beckmann [Sat, 30 Jan 2010 04:29:26 +0000 (20:29 -0800)]
ruby: Removed the GPL header in MESI_CMP_directory-msg

I'm not sure how this got past our initial ruby code import, but this obviously
needed to be removed.

14 years agoruby: MOESI_CMP_directory updated to the new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:26 +0000 (20:29 -0800)]
ruby: MOESI_CMP_directory updated to the new config system

14 years agoruby: Added atomic support to MOESI_CMP_token
Brad Beckmann [Sat, 30 Jan 2010 04:29:25 +0000 (20:29 -0800)]
ruby: Added atomic support to MOESI_CMP_token

14 years agoruby: fixed memory fetch bug for persistent requests
Brad Beckmann [Sat, 30 Jan 2010 04:29:25 +0000 (20:29 -0800)]
ruby: fixed memory fetch bug for persistent requests

14 years agoruby: MOESI_CMP_token updates to use the new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:25 +0000 (20:29 -0800)]
ruby: MOESI_CMP_token updates to use the new config system

14 years agoruby: Allows boolean and string defaults for StateMachine parameters
Brad Beckmann [Sat, 30 Jan 2010 04:29:24 +0000 (20:29 -0800)]
ruby: Allows boolean and string defaults for StateMachine parameters

14 years agoruby: MI_example updates to use the new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:24 +0000 (20:29 -0800)]
ruby: MI_example updates to use the new config system

14 years agoruby: Memory size consistency check
Brad Beckmann [Sat, 30 Jan 2010 04:29:24 +0000 (20:29 -0800)]
ruby: Memory size consistency check

Ruby's memory is now sized according to the size of M5 physical memory.

14 years agoruby: fixed the memory total size variable to be 64-bits
Brad Beckmann [Sat, 30 Jan 2010 04:29:24 +0000 (20:29 -0800)]
ruby: fixed the memory total size variable to be 64-bits

14 years agoruby: convert to M5 MemorySize
Brad Beckmann [Sat, 30 Jan 2010 04:29:23 +0000 (20:29 -0800)]
ruby: convert to M5 MemorySize
Converted both ruby caches and directory memory to use the M5 MemorySize python
type.

14 years agoruby: Added Cache and MemCntrl profiler calls
Brad Beckmann [Sat, 30 Jan 2010 04:29:23 +0000 (20:29 -0800)]
ruby: Added Cache and MemCntrl profiler calls

14 years agoruby: added data print to ruby request
Brad Beckmann [Sat, 30 Jan 2010 04:29:23 +0000 (20:29 -0800)]
ruby: added data print to ruby request

14 years agoruby: Added atomic support to MOESI_hammer
Brad Beckmann [Sat, 30 Jan 2010 04:29:23 +0000 (20:29 -0800)]
ruby: Added atomic support to MOESI_hammer

14 years agoruby: added the GEMS ruby tester
Brad Beckmann [Sat, 30 Jan 2010 04:29:23 +0000 (20:29 -0800)]
ruby: added the GEMS ruby tester

14 years agoruby: fixed MOESI_hammer data writebacks to the directory
Brad Beckmann [Sat, 30 Jan 2010 04:29:22 +0000 (20:29 -0800)]
ruby: fixed MOESI_hammer data writebacks to the directory

14 years agoruby: cleaned up ruby profilers
Brad Beckmann [Sat, 30 Jan 2010 04:29:22 +0000 (20:29 -0800)]
ruby: cleaned up ruby profilers
Cleaned up the ruby profilers by moving the memory controller profiling code
out of the main profiler object and into a separate object similar to the
current CacheProfiler.  Both the CacheProfiler and MemCntrlProfiler are
specific to a particular Ruby object, CacheMemory and MemoryControl
respectively.  Therefore, these profilers should not be SimObjects and
created by the python configuration system, but instead private objects.  This
simplifies the creation of these profilers.

14 years agoruby: Removed RubySystem::getNumberOfSequencers
Brad Beckmann [Sat, 30 Jan 2010 04:29:21 +0000 (20:29 -0800)]
ruby: Removed RubySystem::getNumberOfSequencers
removed the static function RubySystem::getNumberOfSequencers and replaced
it with a python config variable

14 years agoruby: added ruby stats print
Brad Beckmann [Sat, 30 Jan 2010 04:29:21 +0000 (20:29 -0800)]
ruby: added ruby stats print
Moved the previous rubymem stats print feature to ruby System so that ruby
stats are printed on simulation exit.

14 years agoruby: fixed Set.cc bug to allow zero sized sets
Brad Beckmann [Sat, 30 Jan 2010 04:29:21 +0000 (20:29 -0800)]
ruby: fixed Set.cc bug to allow zero sized sets
This is necessary for example when no dma sequencers are necessary in the
simulated system.

14 years agoruby: FS support using the new configuration system
Brad Beckmann [Sat, 30 Jan 2010 04:29:21 +0000 (20:29 -0800)]
ruby: FS support using the new configuration system

14 years agoruby: reorganized ruby python configuration
Brad Beckmann [Sat, 30 Jan 2010 04:29:20 +0000 (20:29 -0800)]
ruby: reorganized ruby python configuration
Reorganized ruby python configuration so that protocol and ruby memory system
configuration code can be shared by multiple front-end configuration files
(i.e. memory tester, full system, and hopefully the regression tester).  This
code works for memory tester, but have not tested fs mode.

14 years agoruby: Removed out_link_vec from Consumer
Brad Beckmann [Sat, 30 Jan 2010 04:29:20 +0000 (20:29 -0800)]
ruby: Removed out_link_vec from Consumer
Removed the out_line_vec data structure from the Consumer.  I'm not sure
what this did before, but currently it has no usefulness.

14 years agoruby: Convered ruby tracing support usage of sequencer
Brad Beckmann [Sat, 30 Jan 2010 04:29:20 +0000 (20:29 -0800)]
ruby: Convered ruby tracing support usage of sequencer
Modified ruby's tracing support to no longer rely on the RubySystem map
to convert a sequencer string name to a sequencer pointer.  As a
temporary solution, the code uses the sim_object find function.
Eventually, we should develop a better fix.

14 years agoruby: Memory Controller Profiler with new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:20 +0000 (20:29 -0800)]
ruby: Memory Controller Profiler with new config system
This patch includes a rather substantial change to the memory controller
profiler in order to work with the new configuration system.  Most
noteably, the mem_cntrl_profiler no longer uses a string map, but instead
a vector.  Eventually this support should be removed from the main
profiler and go into a separate object.  Each memory controller should have
a pointer to that new mem_cntrl profile object.

14 years agoruby: Converted MOESI_hammer dma cntrl to new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Converted MOESI_hammer dma cntrl to new config system

14 years agoruby: Added the cache profiler to the new config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Added the cache profiler to the new config system

14 years agoruby: Converted the sequencer deadlock event to m5 eventq
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Converted the sequencer deadlock event to m5 eventq

14 years agoruby: Wrapped ruby events into m5 events
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Wrapped ruby events into m5 events
Wrapped ruby events using the m5 event object.  Removed the prio_heap
from ruby's event queue and instead schedule ruby events on the m5 event
queue.

14 years agoruby: Removed the tech_nm variable from RubySystem
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Removed the tech_nm variable from RubySystem

14 years agoruby: Added clock to ruby system
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Added clock to ruby system
As a first step to migrate ruby to the M5 eventqueue, added a clock
variable to the ruby system.

14 years agoruby: Ruby changes required to use the python config system
Brad Beckmann [Sat, 30 Jan 2010 04:29:19 +0000 (20:29 -0800)]
ruby: Ruby changes required to use the python config system
This patch includes the necessary changes to connect ruby objects using
the python configuration system.  Mainly it consists of removing
unnecessary ruby object pointers and connecting the necessary object
pointers using the generated param objects.  This patch includes the
slicc changes necessary to connect generated ruby objects together using
the python configuraiton system.

14 years agoruby: connects sm queues to the network
Brad Beckmann [Sat, 30 Jan 2010 04:29:18 +0000 (20:29 -0800)]
ruby: connects sm queues to the network

14 years agoruby: Calculate system total memory capacity in Python
Steve Reinhardt [Sat, 30 Jan 2010 04:29:18 +0000 (20:29 -0800)]
ruby: Calculate system total memory capacity in Python
rather than in RubySystem object.

14 years agoruby: Add support for generating topologies in Python.
Steve Reinhardt [Sat, 30 Jan 2010 04:29:17 +0000 (20:29 -0800)]
ruby: Add support for generating topologies in Python.

14 years agoscons: ignore blank lines in .slicc files
Steve Reinhardt [Sat, 30 Jan 2010 04:29:17 +0000 (20:29 -0800)]
scons: ignore blank lines in .slicc files

14 years agoruby: Make SLICC-generated objects SimObjects.
Steve Reinhardt [Sat, 30 Jan 2010 04:29:17 +0000 (20:29 -0800)]
ruby: Make SLICC-generated objects SimObjects.
Also add SLICC support for state-machine parameter defaults
(passed through to Python as SimObject Param defaults).

14 years agoruby: Convert most Ruby objects to M5 SimObjects.
Steve Reinhardt [Sat, 30 Jan 2010 04:29:17 +0000 (20:29 -0800)]
ruby: Convert most Ruby objects to M5 SimObjects.
The necessary companion conversion of Ruby objects generated by SLICC
are converted to M5 SimObjects in the following patch, so this patch
alone does not compile.
Conversion of Garnet network models is also handled in a separate
patch; that code is temporarily disabled from compiling to allow
testing of interim code.

14 years agoruby: get rid of obsolete, unused CustomTopology class.
Steve Reinhardt [Sat, 30 Jan 2010 04:29:14 +0000 (20:29 -0800)]
ruby: get rid of obsolete, unused CustomTopology class.

14 years agotests: added M5_TEST_PROGS environment variable
Steve Reinhardt [Sat, 30 Jan 2010 04:29:14 +0000 (20:29 -0800)]
tests: added M5_TEST_PROGS environment variable
to allow override of global location for regression test binaries.

14 years agoruby: fix out_port declaration
Brad Beckmann [Sat, 30 Jan 2010 04:29:14 +0000 (20:29 -0800)]
ruby: fix out_port declaration

14 years agoruby: Added message type check to OutPortDeclAST.py
Brad Beckmann [Sat, 30 Jan 2010 04:29:13 +0000 (20:29 -0800)]
ruby: Added message type check to OutPortDeclAST.py

Though OutPort's message type is not used to generate code, this fix checks
that the programmer's intent is correct.  Eventually, we may want to
remove the message type from the OutPort declaration statement.

14 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Mon, 25 Jan 2010 17:53:06 +0000 (11:53 -0600)]
Automated merge with ssh://hg@m5sim.org/m5

14 years agoconfig: changed default ruby config file for regression
Derek Hower [Mon, 25 Jan 2010 17:51:16 +0000 (11:51 -0600)]
config: changed default ruby config file for regression

14 years agobuild: need to include cstdio
Nathan Binkert [Sat, 23 Jan 2010 22:02:03 +0000 (14:02 -0800)]
build: need to include cstdio

14 years agostyle_hook: Fix the style hook
Nathan Binkert [Sat, 23 Jan 2010 17:43:18 +0000 (09:43 -0800)]
style_hook: Fix the style hook
Re-enable it and update it for more modern versions of mercurial.

14 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Fri, 22 Jan 2010 23:23:21 +0000 (17:23 -0600)]
Automated merge with ssh://hg@m5sim.org/m5

14 years agocopyrights: add copyright info to the files I added.
Lisa Hsu [Thu, 21 Jan 2010 00:47:40 +0000 (16:47 -0800)]
copyrights: add copyright info to the files I added.
checkpoint-aggregator.py was written at UM so I added a UM copyright, agg_se.py was
written at AMD so I added the AMD copyright.

14 years agoutil: do checkpoint aggregation more cleanly, fix last changeset.
Lisa Hsu [Wed, 20 Jan 2010 06:03:44 +0000 (22:03 -0800)]
util: do checkpoint aggregation more cleanly, fix last changeset.
1) Move alpha-specific code out of page_table.cc:serialize().
2) Begin serializing M5_pid and unserializing it, but adding an function to do optional paramIn so that old checkpoints don't need to be fixed up.
3) Fix up alpha startup code so that the unserialized M5_pid value is properly written to DTB_IPR_ASN.
4) Fix the memory unserialize that I forgot somehow in the last changeset.
5) Add in an agg_se.py to handle aggregated checkpoints. --bench foo-bar plus positional arguments foo bar are the only changes in usage from se.py.
Note this aggregation stuff has only been tested for Alpha and nothing else, though it should take a very minimal amount of work to get it to work with another ISA.

14 years agomemtest differences from Derek's changes
Derek Hower [Tue, 19 Jan 2010 23:17:19 +0000 (17:17 -0600)]
memtest differences from Derek's changes

14 years agoruby: new atomics implementation
Derek Hower [Tue, 19 Jan 2010 23:11:36 +0000 (17:11 -0600)]
ruby: new atomics implementation

This patch changes the way that Ruby handles atomic RMW instructions. This implementation, unlike the prior one, is protocol independent. It works by locking an address from the sequencer immediately after the read portion of an RMW completes. When that address is locked, the coherence controller will only satisfy requests coming from one port (e.g., the mandatory queue) and will ignore all others. After the write portion completed, the line is unlocked. This should also work with multi-line atomics, as long as the blocks are always acquired in the same order.

14 years agomerge
Derek Hower [Tue, 19 Jan 2010 21:48:12 +0000 (15:48 -0600)]
merge

14 years agoAutomated merge with ssh://hsul@localhost:4444//repo/m5
Lisa Hsu [Mon, 18 Jan 2010 22:33:02 +0000 (14:33 -0800)]
Automated merge with ssh://hsul@localhost:4444//repo/m5

14 years ago util: make a generic checkpoint aggregator that can aggregate different cpts into...
Lisa Hsu [Mon, 18 Jan 2010 22:30:31 +0000 (14:30 -0800)]
 util: make a generic checkpoint aggregator that can aggregate different cpts into one multi-programmed cpt. Make minor changes to serialization/unserialization to get it to work properly. Note that checkpoints were made with a comment at the beginning with // - this must be changed to ## to work properly with the python config parser in the aggregator.

14 years agoSCons: Make --help reflect the arguments to scons.
Gabe Black [Sun, 17 Jan 2010 10:22:30 +0000 (02:22 -0800)]
SCons: Make --help reflect the arguments to scons.

The arguments were added to the global_sticky_vars Variables object after the
basic help text was generated. As a result, the "actual:" value wouldn't
reflect the arguments to scons and wouldn't really be the "actual" value used
by the build. This change fixes that by updating global_sticky_vars slightly
earlier.

14 years agocache: make tags->insertBlock() and tags->accessBlock() context aware so that the...
Lisa Hsu [Tue, 12 Jan 2010 18:53:02 +0000 (10:53 -0800)]
cache: make tags->insertBlock() and tags->accessBlock() context aware so that the cache can make context-specific decisions within their various tag policy implementations.

14 years agosince totalInstructions() is impl'ed by all the cpus, make it an abstract base class.
Lisa Hsu [Tue, 12 Jan 2010 18:22:46 +0000 (10:22 -0800)]
since totalInstructions() is impl'ed by all the cpus, make it an abstract base class.

14 years agofaults: i think these fault invocations should be panic and not fatal. it definitely...
Lisa Hsu [Tue, 12 Jan 2010 18:17:19 +0000 (10:17 -0800)]
faults: i think these fault invocations should be panic and not fatal. it definitely made implementing a trace cpu easier this way.

14 years agoMIPS: Update the stats of the RUBY version of the regressions.
Gabe Black [Sat, 2 Jan 2010 12:06:26 +0000 (07:06 -0500)]
MIPS: Update the stats of the RUBY version of the regressions.

14 years agoMIPS: Update stats for updated initial environment.
Gabe Black [Thu, 31 Dec 2009 20:30:51 +0000 (15:30 -0500)]
MIPS: Update stats for updated initial environment.

14 years agoMIPS: Beef up process initialization.
Matt DeVuyst [Thu, 31 Dec 2009 20:30:51 +0000 (15:30 -0500)]
MIPS: Beef up process initialization.

14 years agoMIPS: Implement the SE mode version of rdhwr.
Gabe Black [Thu, 31 Dec 2009 20:30:51 +0000 (15:30 -0500)]
MIPS: Implement the SE mode version of rdhwr.

14 years agoMIPS: Fix decoding of the rdhwr instruction.
Gabe Black [Thu, 31 Dec 2009 20:30:51 +0000 (15:30 -0500)]
MIPS: Fix decoding of the rdhwr instruction.

14 years agoMIPS: Implement the set_thread_area system call.
Gabe Black [Thu, 31 Dec 2009 20:30:50 +0000 (15:30 -0500)]
MIPS: Implement the set_thread_area system call.

14 years agoMIPS: Create an artificial control register to hold the thread pointer.
Gabe Black [Thu, 31 Dec 2009 20:30:50 +0000 (15:30 -0500)]
MIPS: Create an artificial control register to hold the thread pointer.

In Linux, the set_thread_area system call stores the address of the thread
local storage area into a field of the current thread_info structure. Later,
to access that value, the program uses the rdhwr instruction to read a
"hardware register" with index 29. The 64 bit MIPS manual, volume II, says
that index 29 is reserved for a future ABI extension and should cause a
"Reserved Instruction Exception". In Linux (and potentially other ISAs) that
exception is trapped and emulated to return the value stored by
set_thread_area as if that were actually stored by a physical register.

The tp_value address (as named in the Linux kernel) is ironically stored as a
control register so that it goes with a particular ThreadContext. Syscall
emulation will use that to emulate storing to the OS's thread info structure,
and rdhwr will emulate faulting and returning that value from software by
returning the value itself, as if it was in hardware. In other words, we fake
faking the register in SE mode. In an FS mode implementation it should
work as specified in the manual.

14 years agoMIPS: Extract CPU pointer from the thread context in scheduleCP0 setMiscReg.
Gabe Black [Thu, 31 Dec 2009 20:30:50 +0000 (15:30 -0500)]
MIPS: Extract CPU pointer from the thread context in scheduleCP0 setMiscReg.

The MIPS ISA object expects to be constructed with a CPU pointer it uses to
look at other thread contexts and allow them to be manipulated with control
registers. Unfortunately, that differs from all the other ISA classes and
would complicate their implementation.

This change makes the event constructor use a CPU pointer pulled out of the
thread context passed to setMiscReg instead.

14 years agoMIPS: Add missing syscall slots.
Gabe Black [Mon, 21 Dec 2009 22:59:40 +0000 (14:59 -0800)]
MIPS: Add missing syscall slots.
These are all after the existing ones, suggesting they were added after the
original list was created.

14 years agoAlpha: Implement MVI and remaining BWX instructions.
Soumyaroop Roy [Sun, 20 Dec 2009 21:03:23 +0000 (15:03 -0600)]
Alpha: Implement MVI and remaining BWX instructions.

14 years agoX86: Add a latency that describes how long an interrupt takes to propagate through...
Gabe Black [Sat, 19 Dec 2009 09:50:06 +0000 (01:50 -0800)]
X86: Add a latency that describes how long an interrupt takes to propagate through the IO APIC.

14 years agoX86: Record the memory mode when building an X86 system.
Gabe Black [Sat, 19 Dec 2009 09:49:34 +0000 (01:49 -0800)]
X86: Record the memory mode when building an X86 system.

14 years agoX86: Add a common named flag for signed media operations.
Gabe Black [Sat, 19 Dec 2009 09:48:31 +0000 (01:48 -0800)]
X86: Add a common named flag for signed media operations.

14 years agoX86: Create a common flag with a name to indicate high multiplies.
Gabe Black [Sat, 19 Dec 2009 09:48:07 +0000 (01:48 -0800)]
X86: Create a common flag with a name to indicate high multiplies.

14 years agoX86: Create a common flag with a name to indicate scalar media instructions.
Gabe Black [Sat, 19 Dec 2009 09:47:30 +0000 (01:47 -0800)]
X86: Create a common flag with a name to indicate scalar media instructions.

14 years agoruby: cleaned up ruby-lang configuration
Derek Hower [Fri, 4 Dec 2009 19:12:40 +0000 (13:12 -0600)]
ruby: cleaned up ruby-lang configuration

14 years agom5: refreshed the ruby memtest regression stats
Brad Beckmann [Thu, 19 Nov 2009 02:00:41 +0000 (18:00 -0800)]
m5: refreshed the ruby memtest regression stats

14 years agoResurrection of the CMP token protocol to GEM5
Brad Beckmann [Thu, 19 Nov 2009 00:34:33 +0000 (16:34 -0800)]
Resurrection of the CMP token protocol to GEM5

14 years agom5: improvements to the ruby_fs.py file
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
m5: improvements to the ruby_fs.py file

14 years agoruby: removed the chip pointer from MessageBuffer
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
ruby: removed the chip pointer from MessageBuffer
The Chip object no longer exists and thus is removed from the MessageBuffer
constructor.

14 years agoruby: added error message to isinstance check
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
ruby: added error message to isinstance check
Added error message when a symbol is not an instance of a particular expected
type.

14 years agoruby: Added boolean to State Machine parameters
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
ruby: Added boolean to State Machine parameters
* * *
ruby: Removed primitive .hh includes

14 years agom5: Added the default m5out directory to the hg ignore list
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
m5: Added the default m5out directory to the hg ignore list

14 years agoruby: The persistent table files from GEMS
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
ruby: The persistent table files from GEMS
These files are need by the MOESI_CMP_token protocol.

14 years agoruby: MOESI hammer support for DMA reads and writes
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
ruby: MOESI hammer support for DMA reads and writes

14 years agoruby: Added a memory controller feature to MOESI hammer
Brad Beckmann [Thu, 19 Nov 2009 00:34:32 +0000 (16:34 -0800)]
ruby: Added a memory controller feature to MOESI hammer