summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system
AgeCommit message (Collapse)Author
2010-01-29ruby: cleaned up ruby profilersBrad Beckmann
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.
2010-01-29ruby: Removed RubySystem::getNumberOfSequencersBrad Beckmann
removed the static function RubySystem::getNumberOfSequencers and replaced it with a python config variable
2010-01-29ruby: added ruby stats printBrad Beckmann
Moved the previous rubymem stats print feature to ruby System so that ruby stats are printed on simulation exit.
2010-01-29ruby: FS support using the new configuration systemBrad Beckmann
2010-01-29ruby: Convered ruby tracing support usage of sequencerBrad Beckmann
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.
2010-01-29ruby: Memory Controller Profiler with new config systemBrad Beckmann
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.
2010-01-29ruby: Converted MOESI_hammer dma cntrl to new config systemBrad Beckmann
2010-01-29ruby: Added the cache profiler to the new config systemBrad Beckmann
2010-01-29ruby: Converted the sequencer deadlock event to m5 eventqBrad Beckmann
2010-01-29ruby: Wrapped ruby events into m5 eventsBrad Beckmann
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.
2010-01-29ruby: Removed the tech_nm variable from RubySystemBrad Beckmann
2010-01-29ruby: Added clock to ruby systemBrad Beckmann
As a first step to migrate ruby to the M5 eventqueue, added a clock variable to the ruby system.
2010-01-29ruby: Ruby changes required to use the python config systemBrad Beckmann
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.
2010-01-29ruby: Calculate system total memory capacity in PythonSteve Reinhardt
rather than in RubySystem object.
2010-01-29ruby: Convert most Ruby objects to M5 SimObjects.Steve Reinhardt
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.
2010-01-19ruby: new atomics implementationDerek Hower
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.
2010-01-19mergeDerek Hower
2009-12-04ruby: cleaned up ruby-lang configurationDerek Hower
2009-11-18Resurrection of the CMP token protocol to GEM5Brad Beckmann
2009-11-18ruby: The persistent table files from GEMSBrad Beckmann
These files are need by the MOESI_CMP_token protocol.
2009-11-18ruby: returns the number of LLC needed for broadcastBrad Beckmann
Added feature to CacheMemory to return the number of last level caches. This count is need for broadcast protocols such as MOESI_hammer.
2009-11-18ruby: cache configuration fix to use bytesBrad Beckmann
Changed cache size to be in bytes instead of kb so that testers can use very small caches and increase the chance of writeback races.
2009-11-18ruby: fix CacheMemory destructorBrad Beckmann
2009-11-18ruby: split CacheMemory.hh into a .hh and a .ccBrad Beckmann
2009-11-18ruby: Fixed Directory memory destructorBrad Beckmann
2009-11-18ruby: Support for merging ALPHA_FS and rubyBrad Beckmann
Connects M5 cpu and dma ports directly to ruby sequencers and dma sequencers. Rubymem also includes a pio port so that pio requests and be forwarded to a special pio bus connecting to device pio ports.
2009-11-18ruby: Ruby 64-bit address output fixes.Brad Beckmann
2009-11-18ruby: added sequencer stats to track what requests are waiting onDerek Hower
2009-11-13ruby: gave ALIASED_REQUEST priority over BUFFER_FULL in sequencerDerek Hower
2009-11-13ruby: reduce the memory usage of ruby by making memory vector page basedDerek Hower
2009-11-13ruby: cache memory bugfixDerek Hower
2009-09-21Atomics bug fixPolina Dudnik
2009-09-17Functionality migrated to sequencer.Polina Dudnik
2009-09-15ruby: improve libruby_issue_request feedbackDerek Hower
2009-09-15removed isReady from the library interfaceDerek Hower
2009-09-14ruby:removed unused code from CacheMemoryDerek Hower
2009-09-10ruby: removed SMT-related Sequencer assertDerek Hower
2009-09-09ruby: made Locked read/write atomic requests within rubyDerek Hower
2009-08-25mergeDerek Hower
2009-08-25Automated merge with ssh://hg@m5sim.org/m5Derek Hower
2009-08-25ruby: CacheMemory tag lookup uses a hash instead of a loopDerek Hower
2009-08-21[mq]: first_patchPolina Dudnik
2009-08-15Made servicing_atomic a counter and added started writes:Polina Dudnik
a function for setting the flag to indicate that the rmw_writes started issuing
2009-08-14Multi-line RMW handlingPolina Dudnik
2009-08-14SMT atomics modifications:Polina Dudnik
don't allow enquing from other threads if servicing and atomic for a thread
2009-08-04slicc: added MOESI_CMP_directory, DMA SequencerMsg, parameterized controllersDerek Hower
This changeset contains a lot of different changes that are too mingled to separate. They are: 1. Added MOESI_CMP_directory I made the changes necessary to bring back MOESI_CMP_directory, including adding a DMA controller. I got rid of MOESI_CMP_directory_m and made MOESI_CMP_directory use a memory controller. Added a new configuration for two level protocols in general, and MOESI_CMP_directory in particular. 2. DMA Sequencer uses a generic SequencerMsg I will eventually make the cache Sequencer use this type as well. It doesn't contain an offset field, just a physical address and a length. MI_example has been updated to deal with this. 3. Parameterized Controllers SLICC controllers can now take custom parameters to use for mapping, latencies, etc. Currently, only int parameters are supported.
2009-07-29ruby: fixed clearStatsDerek Hower
2009-07-27ruby: removed unused/incorrect profiler stateDerek Hower
2009-07-21ruby: fixed sequencer RMW data bugDerek Hower
2009-07-20ruby: moved cache stats from Profiler to CacheMemoryDerek Hower
Caches are now responsible for their own statistic gathering. This requires a direct callback from the protocol on misses, and so all future protocols need to take this into account.