summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system
AgeCommit message (Collapse)Author
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.
2009-07-18ruby: removed all refs to old RubyConfigDerek Hower
2009-07-18ruby: removed dead filesDerek Hower
2009-07-18mergeDerek Hower
2009-07-18ruby: fixed dma sequencer bugDerek Hower
The DMASequencer was still using a parameter from the old RubyConfig, causing an offset error when the requested data wasn't block aligned. This changeset also includes a fix to MI_example for a similar bug.
2009-07-131. Got rid of unused functions in DirectoryMemoryPolina Dudnik
2. Reintroduced RMW_Read and RMW_Write 3. Defined -2 in the Sequencer as well as made a note about mandatory queue Did not address the issues in the slicc because remaking the atomics altogether to allow multiple processors to issue atomic requests at once
2009-07-13Changes to add tracing and replaying command-line optionsPolina Dudnik
Trace is automatically ended upon a manual checkpoint
2009-07-13Locked requests should actually be converted to ST rather than ATOMIC, ↵Polina Dudnik
because ATOMIC is for RMW.
2009-07-13Minor fixes for compilingPolina Dudnik
2009-07-13Replaced RMW with Locked. RMW will be used for the coherence-aided atomics ↵Polina Dudnik
other than LLSC
2009-07-13Moved the lock check and clearing the lock into makeRequestPolina Dudnik
2009-07-13Forgot to replace one of the RubyRequest_RMWPolina Dudnik
2009-07-13Reintegrated Derek's functional implementation of atomics with a minor ↵Polina Dudnik
change: don't clear lock on failure