summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system/Sequencer.cc
AgeCommit message (Collapse)Author
2010-03-22ruby: style passNathan Binkert
2010-03-21ruby: Ruby support for LLSCBrad Beckmann
2010-01-29ruby: Removed static members in RubyPort including hitcallbackBrad Beckmann
Removed static members in RubyPort and removed the ruby request unique id.
2010-01-29ruby: added the GEMS ruby testerBrad Beckmann
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: Converted the sequencer deadlock event to m5 eventqBrad Beckmann
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.
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-09-21Atomics bug fixPolina Dudnik
2009-09-17Functionality migrated to sequencer.Polina Dudnik
2009-09-15ruby: improve libruby_issue_request feedbackDerek Hower
2009-09-10ruby: removed SMT-related Sequencer assertDerek Hower
2009-09-09ruby: made Locked read/write atomic requests within rubyDerek 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-07-21ruby: fixed sequencer RMW data bugDerek Hower
2009-07-18ruby: removed all refs to old RubyConfigDerek Hower
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-13Locked requests should actually be converted to ST rather than ATOMIC, ↵Polina Dudnik
because ATOMIC is for RMW.
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
2009-07-06ruby: apply some fixes that were overwritten by the recent ruby import.Nathan Binkert
2009-07-06ruby: Import the latest ruby changes from gems.Nathan Binkert
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.
2009-05-11ruby: Working M5 interface and updated Ruby interface.Daniel Sanchez
This changeset also includes a lot of work from Derek Hower <drh5@cs.wisc.edu> RubyMemory is now both a driver for Ruby and a port for M5. Changed makeRequest/hitCallback interface. Brought packets (superficially) into the sequencer. Modified tester infrastructure to be packet based. and Ruby can be used together through the example ruby_se.py script. SPARC parallel applications work, and the timing *seems* right from combined M5/Ruby debug traces. To run, % build/ALPHA_SE/m5.debug configs/example/ruby_se.py -c tests/test-progs/hello/bin/alpha/linux/hello -n 4 -t
2009-05-11ruby: removed dead functions from the sequencerDerek Hower
2009-05-11ruby: Removed g_SIMULATING flagPolina Dudnik
1. removed checks from tester files 2. removed else clause in Sequencer and DirectoryMemory else clause is needed by the tester, it is up to Derek to revive it elsewhere when he gets to it Also: 1. Changed m_entries in DirectoryMemory to a map 2. And replaced SIMICS_read_physical_memory with a call to now-dummy Derek's-to-be readPhysMem function
2009-05-11ruby: Fixed some unresolved references.Dan Gibson
2009-05-11ruby: Make ruby #includes use full paths to the files they're including.Nathan Binkert
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.
2009-05-11ruby: remove unnecessary code.Dan Gibson
1) Removing files from the ruby build left some unresovled symbols. Those have been fixed. 2) Most of the dependencies on Simics data types and the simics interface files have been removed. 3) Almost all mention of opal is gone. 4) Huge chunks of LogTM are now gone. 5) Handling 1-4 left ~hundreds of unresolved references, which were fixed, yielding a snowball effect (and the massive size of this delta).
2009-05-11ruby: Cleaned up sequencer. Removed LogTM specific code.Derek Hower
2009-05-11ruby: added Packet interface to makeRequest and isReady.Derek Hower
Also pushed Packet usage into the Sequencer
2009-05-11ruby: Import ruby and slicc from GEMSNathan Binkert
We eventually plan to replace the m5 cache hierarchy with the GEMS hierarchy, but for now we will make both live alongside eachother.