#
11793:ef606668d247 |
|
09-Nov-2016 |
Brandon Potter <brandon.potter@amd.com> |
style: [patch 1/22] use /r/3648/ to reorganize includes
|
#
11664:2365e9e396f7 |
|
06-Oct-2016 |
Tushar Krishna <tushar@ece.gatech.edu> |
config: add port directions and per-router delay in topology. This patch adds port direction names to the links during topology creation, which can be used for better printed names for the links or for users to code up their own adaptive routing algorithms. It also adds support for every router to have an independent latency value to support heterogeneous topologies with the subsequent garnet2.0 patch.
|
#
11663:cf870cd20cfc |
|
06-Oct-2016 |
Tushar Krishna <tushar@ece.gatech.edu> |
config: make internal links in network topology unidirectional. This patch makes the internal links within the network topology unidirectional, thus allowing any deadlock-free routing algorithms to be specified from the topology itself using weights. This patch also renames Mesh.py and MeshDirCorners.py to Mesh_XY.py and MeshDirCorners_XY.py (Mesh with XY routing). It also adds a Mesh_westfirst.py and CrossbarGarnet.py topologies.
|
#
11523:81332eb10367 |
|
06-Jun-2016 |
David Guillen Fandos <david.guillen@arm.com> |
stats: Fixing regStats function for some SimObjects
Fixing an issue with regStats not calling the parent class method for most SimObjects in Gem5. This causes issues if one adds new stats in the base class (since they are never initialized properly!).
Change-Id: Iebc5aa66f58816ef4295dc8e48a357558d76a77c Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
11430:bd1c6789c33f |
|
07-Apr-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
Revert to 74c1e6513bd0 (sim: Thermal support for Linux)
|
#
11422:4f749e00b667 |
|
18-Nov-2014 |
Akash Bagdia <akash.bagdia@ARM.com> |
power: Add power states to ClockedObject
Add 4 power states to the ClockedObject, provides necessary access functions to check and update the power state. Default power state is UNDEFINED, it is responsibility of the respective simulation model to provide the startup state and any other logic for state change.
Add number of transition stat. Add distribution of time spent in clock gated state. Add power state residency stat.
Add dump call back function to allow stats update of distribution and residency stats.
|
#
11171:60d4dfa3241a |
|
14-Oct-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: remove unused functionalRead() function.
Not required since functional reads cannot rely on messages that are inflight.
|
#
11124:5d38dc2f7d66 |
|
24-Sep-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: simple network: refactor code
Drops an unused variable and marks three variables as const.
|
#
11113:5a2e1b1b5c43 |
|
16-Sep-2015 |
Joe Gross <joe.gross@amd.com> |
ruby: fix message buffer init order
The recent changes to make MessageBuffers SimObjects required them to be initialized in a particular order, which could break some protocols. Fix this by calling initNetQueues on the external nodes of each external link in the constructor of Network.
This patch also refactors the duplicated code for checking network allocation and setting net queues (which are called by initNetQueues) from the simple and garnet networks to be in Network.
|
#
11108:6342ddf6d733 |
|
16-Sep-2015 |
David Hashe <david.hashe@amd.com> |
ruby: rename System.{hh,cc} to RubySystem.{hh,cc}
The eventual aim of this change is to pass RubySystem pointers through to objects generated from the SLICC protocol code.
Because some of these objects need to dereference their RubySystem pointers, they need access to the System.hh header file.
In src/mem/ruby/SConscript, the MakeInclude function creates single-line header files in the build directory that do nothing except include the corresponding header file from the source tree.
However, SLICC also generates a list of header files from its symbol table, and writes it to mem/protocol/Types.hh in the build directory. This code assumes that the header file name is the same as the class name.
The end result of this is the many of the generated slicc files try to include RubySystem.hh, when the file they really need is System.hh. The path of least resistence is just to rename System.hh to RubySystem.hh.
|
#
11064:386a5200e298 |
|
30-Aug-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: drop member m_in_use
This member indicates whether or not a particular virtual network is in use. Instead of having a default big value for the number of virtual networks and then checking whether a virtual network is in use, the next patch removes the default value and the protocol configuration file would now specify the number of virtual networks it requires.
Additionally, the patch also refactors some of the code used for computing the virtual channel next in the round robin order.
|
#
11049:dfb0aa3f0649 |
|
19-Aug-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: reverts to changeset: bf82f1f7b040
|
#
11047:dcf729f0bbfa |
|
14-Aug-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: simple network: refactor code
Drops an unused variable and marks three variables as const.
|
#
11036:3de670f298b1 |
|
14-Aug-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: remove unused functionalRead() function.
|
#
11021:e8a6637afa4c |
|
14-Aug-2015 |
Joel Hestness <jthestness@gmail.com> |
ruby: Expose MessageBuffers as SimObjects
Expose MessageBuffers from SLICC controllers as SimObjects that can be manipulated in Python. This patch has numerous benefits: 1) First and foremost, it exposes MessageBuffers as SimObjects that can be manipulated in Python code. This allows parameters to be set and checked in Python code to avoid obfuscating parameters within protocol files. Further, now as SimObjects, MessageBuffer parameters are printed to config output files as a way to track parameters across simulations (e.g. buffer sizes)
2) Cleans up special-case code for responseFromMemory buffers, and aligns their instantiation and use with mandatoryQueue buffers. These two special buffers are the only MessageBuffers that are exposed to components outside of SLICC controllers, and they're both slave ends of these buffers. They should be exposed outside of SLICC in the same way, and this patch does it.
3) Distinguishes buffer-specific parameters from buffer-to-network parameters. Specifically, buffer size, randomization, ordering, recycle latency, and ports are all specific to a MessageBuffer, while the virtual network ID and type are intrinsics of how the buffer is connected to network ports. The former are specified in the Python object, while the latter are specified in the controller *.sm files. Unlike buffer-specific parameters, which may need to change depending on the simulated system structure, buffer-to-network parameters can be specified statically for most or all different simulated systems.
|
#
10917:c38f28fad4c3 |
|
10-Jul-2015 |
Brandon Potter <brandon.potter@amd.com> |
ruby: remove extra whitespace and correct misspelled words
|
#
10370:4466307b8a2a |
|
15-Sep-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: revert some of the changes from ad9c042dce54 The changeset ad9c042dce54 made changes to the structures under the network directory to use a map of buffers instead of vector of buffers. The reasoning was that not all vnets that are created are used and we needlessly allocate more buffers than required and then iterate over them while processing network messages. But the move to map resulted in a slow down which was pointed out by Andreas Hansson. This patch moves things back to using vector of message buffers.
|
#
10311:ad9c042dce54 |
|
01-Sep-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: message buffers: significant changes
This patch is the final patch in a series of patches. The aim of the series is to make ruby more configurable than it was. More specifically, the connections between controllers are not at all possible (unless one is ready to make significant changes to the coherence protocol). Moreover the buffers themselves are magically connected to the network inside the slicc code. These connections are not part of the configuration file.
This patch makes changes so that these connections will now be made in the python configuration files associated with the protocols. This requires each state machine to expose the message buffers it uses for input and output. So, the patch makes these buffers configurable members of the machines.
The patch drops the slicc code that usd to connect these buffers to the network. Now these buffers are exposed to the python configuration system as Master and Slave ports. In the configuration files, any master port can be connected any slave port. The file pyobject.cc has been modified to take care of allocating the actual message buffer. This is inline with how other port connections work.
|
#
10303:71e0934af9f1 |
|
01-Sep-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: move getNumNodes() to base class All the implementations were doing the same things.
|
#
10301:44839e8febbd |
|
01-Sep-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: move files from ruby/system to ruby/structures
The directory ruby/system is crowded and unorganized. Hence, the files the hold actual physical structures, are being moved to the directory ruby/structures. This includes Cache Memory, Directory Memory, Memory Controller, Wire Buffer, TBE Table, Perfect Cache Memory, Timer Table, Bank Array.
The directory ruby/systems has the glue code that holds these structures together.
|
#
10082:70f350b13ec0 |
|
21-Feb-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: move message buffers to base network class.
|
#
10076:f81d94b53661 |
|
20-Feb-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: removes unused code.
|
#
9866:94dac7d7bb88 |
|
11-Sep-2013 |
Joel Hestness <jthestness@gmail.com> |
ruby: Statically allocate stats in SimpleNetwork, Switch, Throttle
The previous changeset (9863:9483739f83ee) used STL vector containers to dynamically allocate stats in the Ruby SimpleNetwork, Switch and Throttle. For gcc versions before at least 4.6.3, this causes the standard vector allocator to call Stats copy constructors (a no-no, since stats should be allocated in the body of each SimObject instance). Since the size of these stats arrays is known at compile time (NOTE: after code generation), this patch changes their allocation to be static rather than using an STL vector.
|
#
9863:9483739f83ee |
|
06-Sep-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: convert to gem5 style stats
|
#
9859:1bd310386038 |
|
06-Sep-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: removes reset functionality
|
#
9858:f2417ecf5cc9 |
|
06-Sep-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: shorten variable names
|
#
9799:5aed42e54180 |
|
28-Jun-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: remove reconfiguration code This code seems not to be of any use now. There is no path in the simulator that allows for reconfiguring the network. A better approach would be to take a checkpoint and start the simulation from the checkpoint with the new configuration.
|
#
9593:9441ca79f3c8 |
|
22-Mar-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: network: move routers from topology to network
|
#
9496:28d88a0fda74 |
|
10-Feb-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: record fully busy cycle with in the controller This patch does several things. First, the counter for fully busy cycles for a controller is now kept with in the controller, instead of being part of the profiler. Second, the topology class no longer keeps an array of controllers which was only used for printing stats. Instead, ruby system will now ask each controller to print the stats. Thirdly, the statistical variable for recording how many different types were created is being moved in to the controller from the profiler. Note that for printing, the profiler will collate results from different controllers.
|
#
9302:c2e70a9bc340 |
|
15-Oct-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: improved support for functional accesses This patch adds support to different entities in the ruby memory system for more reliable functional read/write accesses. Only the simple network has been augmented as of now. Later on Garnet will also support functional accesses. The patch adds functional access code to all the different types of messages that protocols can send around. These messages are functionally accessed by going through the buffers maintained by the network entities. The patch also rectifies some of the bugs found in coherence protocols while testing the patch.
With this patch applied, functional writes always succeed. But functional reads can still fail.
|
#
9274:ba635023d4bb |
|
02-Oct-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: changes to simple network This patch makes the Switch structure inherit from BasicRouter, as is done in two other networks.
|
#
9117:49116b947194 |
|
12-Jul-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Ruby: remove config information from ruby.stats This patch removes printConfig() functions from all structures in Ruby. Most of the information is already part of config.ini, and where ever it is not, it would become in due course.
|
#
9116:9171e26543fa |
|
12-Jul-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Ruby: remove some unused stuff from SLICC files
|
#
8645:89929730804b |
|
31-Dec-2011 |
Nilay Vaish<nilay@cs.wisc.edu> |
Ruby: Shuffle some of the included files This patch adds and removes included files from some of the files so as to organize remove some false dependencies and include some files directly instead of transitively.
|
#
8530:3aaa99208a84 |
|
29-Aug-2011 |
Nilay Vaish<nilay@cs.wisc.edu> |
Ruby: Remove some unused code
|
#
8485:7a9a7f2a3d46 |
|
03-Aug-2011 |
Nilay Vaish<nilay@cs.wisc.edu> |
Ruby: Remove files and includes not in use
|
#
8308:79cf09f5a234 |
|
18-May-2011 |
Tushar Krishna <tushar@csail.mit.edu> |
slicc: added vnet_type field to identify response vnets from others
Identifying response vnets versus other vnets will allow garnet to determine which vnets will carry data packets, and which will carry ctrl packets, and use appropriate buffer sizes (since data packets are larger than ctrl packets). This in turn allows the orion power model to accurately estimate buffer power.
|
#
8259:36987780169e |
|
28-Apr-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
network: moved network config params
Moved the buffer_size, endpoint_bandwidth, and adaptive_routing params out of the top-level parent network object and to only those networks that actually use those parameters.
|
#
8258:7c377f5162f8 |
|
28-Apr-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
network: basic link bw for garnet and simple networks
This patch ensures that both Garnet and the simple networks use the bw value specified in the topology. To do so, the patch generalizes the specification of bw for basic links. This value is then translated to the specific value used by the simple and Garnet networks. Since Garent does not support non-uniformed link bandwidth, the patch also adds a check to ensure all bws are equal.
|
#
8257:7226aebb77b4 |
|
28-Apr-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
network: convert links & switches to first class C++ SimObjects
This patch converts links and switches from second class simobjects that were virtually ignored by the networks (both simple and Garnet) to first class simobjects that directly correspond to c++ ojbects manipulated by the topology and network classes. This is especially true for Garnet, where the links and switches directly correspond to specific C++ objects.
By making this change, many aspects of the Topology class were simplified.
|
#
8255:73089f793a0a |
|
28-Apr-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: moved topology to the top network directory
Moved the Topology class to the top network directory because it is shared by both the simple and Garnet networks.
|
#
7832:de7601e6e19d |
|
10-Jan-2011 |
Nathan Binkert <nate@binkert.org> |
ruby: get rid of ruby's Debug.hh
Get rid of the Debug class Get rid of ASSERT and use assert Use DPRINTFR for ProtocolTrace
|
#
7547:a5ddcb2abfa1 |
|
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Added consolidated network msg stats
|
#
7455:586f99bf0dc4 |
|
11-Jun-2010 |
Nathan Binkert <nate@binkert.org> |
ruby: get rid of the Map class
|
#
7454:3a3e8e8cce1b |
|
11-Jun-2010 |
Nathan Binkert <nate@binkert.org> |
ruby: get rid of Vector and use STL add a couple of helper functions to base for deleteing all pointers in a container and outputting containers to a stream
|
#
7056:b66b558578bd |
|
02-Apr-2010 |
Nathan Binkert <nate@binkert.org> |
ruby: get rid of gems_common/util.hh and .cc and use stuff in src/base
|
#
7055:4e24742201d7 |
|
02-Apr-2010 |
Nathan Binkert <nate@binkert.org> |
ruby: get "using namespace" out of headers 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.
|
#
7054:7d6862b80049 |
|
31-Mar-2010 |
Nathan Binkert <nate@binkert.org> |
style: another ruby style pass
|
#
6895:5f3d2d3f977e |
|
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: added ruby stats print Moved the previous rubymem stats print feature to ruby System so that ruby stats are printed on simulation exit.
|
#
6881:5a61a8a9009a |
|
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: connects sm queues to the network
|
#
6879:c07cf29b5a33 |
|
29-Jan-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
ruby: Add support for generating topologies in Python.
|
#
6876:a658c315512c |
|
29-Jan-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
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.
|
#
6795:394bc95d417b |
|
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: removed the chip pointer from MessageBuffer The Chip object no longer exists and thus is removed from the MessageBuffer constructor.
|
#
6781:8da9d36fc14a |
|
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Added default names to message buffers Added default names to message buffers created by the simple network.
|
#
6762:a22a47e60c21 |
|
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Ruby destruction fix.
|
#
6372:f1a41ea3bbab |
|
18-Jul-2009 |
Derek Hower <drh5@cs.wisc.edu> |
ruby: removed all refs to old RubyConfig
|
#
6294:b42cea5e1625 |
|
08-Jul-2009 |
Derek Hower <drh5@cs.wisc.edu> |
removed stray debug print
|
#
6285:ce086eca1ede |
|
06-Jul-2009 |
Nathan Binkert <nate@binkert.org> |
ruby: Import the latest ruby changes from gems. This was done with an automated process, so there could be things that were done in this tree in the past that didn't make it. One known regression is that atomic memory operations do not seem to work properly anymore.
|
#
6284:a63d1dc4c820 |
|
06-Jul-2009 |
Nathan Binkert <nate@binkert.org> |
ruby: replace strings that were missed in original ruby import.
|
#
6154:6bb54dcb940e |
|
11-May-2009 |
Nathan Binkert <nate@binkert.org> |
ruby: Make ruby #includes use full paths to the files they're including. This basically means changing all #include statements and changing autogenerated code so that it generates the correct paths. Because slicc generates #includes, I had to hard code the include paths to mem/protocol.
|
#
6145:15cca6ab723a |
|
11-May-2009 |
Nathan Binkert <nate@binkert.org> |
ruby: Import ruby and slicc from GEMS
We eventually plan to replace the m5 cache hierarchy with the GEMS hierarchy, but for now we will make both live alongside eachother.
|