summaryrefslogtreecommitdiff
path: root/src/cpu/inorder
AgeCommit message (Collapse)Author
2010-08-14Inorder: Fix compilation of m5.fast.Gabe Black
printMemData is only used in DPRINTFs. If those are removed by compiling m5.fast, that function is unused, gcc generates a warning, that gets turned into an error, and the build fails. This change surrounds the function definition with #if TRACING_ON so it only gets compiled in if the DPRINTFs do to.
2010-08-13CPU: Add readBytes and writeBytes functions to the exec contexts.Gabe Black
2010-08-13InOrder: Clean up some DPRINTFs that print data sent to/from the cache.Gabe Black
2010-06-28inorder: remove another debug statKorey Sewell
2010-06-26inorder: remove debugging statKorey Sewell
m5 doesnt do stats specific to binary and this resource request stat is probably only useful for people who really know the ins/outs of the model anyway
2010-06-25inorder: Return Address Stack bugKorey Sewell
the nextPC was getting sent to the branch predictor not the current PC, so the RAS was returning the wrong PC and mispredicting everything.
2010-06-25inorder: resource scheduling backendKorey Sewell
replace priority queue with vector of lists(1 list per stage) and place inside a class so that we have more control of when an instruction uses a particular schedule entry ... also, this is the 1st step toward making the InOrderCPU fully parameterizable. See the wiki for details on this process
2010-06-24inorder: cleanup virtual functionsKorey Sewell
remove the annotation 'virtual' from function declaration that isnt being derived from
2010-06-24inorder: enforce 78-character ruleKorey Sewell
2010-06-24inorder: exe_unit_stats for resolved branchesKorey Sewell
2010-06-23inorder: squash from memory stallKorey Sewell
this applies to multithreading models which would like to squash a thread on memory stall
2010-06-23inorder: record load/store trace dataKorey Sewell
2010-06-23inorder: update branch predictorKorey Sewell
- use InOrderBPred instead of Resource for DPRINTFs - account for DELAY SLOT in updating RAS and in squashing - don't let squashed instructions update the predictor - the BTB needs to use the ASID not the TID to work for multithreaded programs - add stats for BTB hits
2010-06-23inorder-stats: add instruction type statsKorey Sewell
also, remove inst-req stats as default.good for debugging but in terms of pure processor stats they aren't useful
2010-06-23inorder: stall signal handlingKorey Sewell
remove stall only when necessary add debugging printfs
2010-06-23inorder: tick schedulingKorey Sewell
use nextCycle to calculate ticks after addition
2010-04-10inorder: timing for inst forwardingKorey Sewell
when insts execute, they mark the time they finish to be used for subsequent isnts they may need forwarding of data. However, the regdepmap was using the wrong value to index into the destination operands of the instruction to be forwarded. Thus, in some cases, we are checking to see if the 3rd destination register for an instruction is executed at a certain time, when there is only 1 dest. register valid. Thus, we get a bad, uninitialized time value that will stall forwarding causing performance loss but still the correct execution.
2010-03-27m5: merge inorder updatesKorey Sewell
2010-03-27inorder: write-hints bug fixKorey Sewell
make sure to only read 1 src reg. for write-hint and any other similar 'store' instruction. Reading the source reg when its not necessary can cause the simulator to read from uninitialized values
2010-03-23cpu: fix exec tracing memory corruption bugSteve Reinhardt
Accessing traceData (to call setAddress() and/or setData()) after initiating a timing translation was causing crashes, since a failed translation could delete the traceData object before returning. It turns out that there was never a need to access traceData after initiating the translation, as the traced data was always available earlier; this ordering was merely historical. Furthermore, traceData->setAddress() and traceData->setData() were being called both from the CPU model and the ISA definition, often redundantly. This patch standardizes all setAddress and setData calls for memory instructions to be in the CPU models and not in the ISA definition. It also moves those calls above the translation calls to eliminate the crashes.
2010-03-22inorder: import name for addtl. bpred statsKorey Sewell
2010-03-22inorder: fix squash bug in branch predictorMaximilien Breughe
2010-03-22inorder: fix address list bugKorey Sewell
2010-02-26cpu_models: get rid of cpu_models.py and move the stuff into SConsNathan Binkert
2010-01-31inorder: double delete inst bugKorey Sewell
Make sure that instructions are dereferenced/deleted twice by marking they are on the remove list
2010-01-31inorder: inst count mgmtKorey Sewell
2010-01-31inorder: implement split storesKorey Sewell
2010-01-31inorder: implement split loadsKorey Sewell
2010-01-31inorder: add activity statsKorey Sewell
2010-01-31inorder: object cleanup in destructorsKorey Sewell
2010-01-31inorder: user per-thread dummy insts/reqsKorey Sewell
2010-01-31inorder: add execution unit statsKorey Sewell
2010-01-31inorder: recvRetry bug fixKorey Sewell
- on certain retry requests you can get an assertion failure - fix by allowing the request to literally "Retry" itself if it wasnt successful before, and then block any requests through cache port while waiting for the cache to be made available for access
2010-01-31inorder-stats: add prereq to basic statKorey Sewell
only show requests processed when the resource is actually in use
2010-01-31inorder: ctxt switch statsKorey Sewell
- m5 line enforcement on use_def.cc,hh
2010-01-31inorder: pipeline stage statsKorey Sewell
add idle/run/utilization stats for each pipeline stage
2010-01-31inorder: enforce stage bandwidthKorey Sewell
each stage keeps track of insts_processed on a per_thread basis but we should be keeping that on a total basis inorder to enforce stage width limits
2010-01-31inorder: set thread status'Korey Sewell
set Active/Suspended/Halted status for threads. useful for system when determining if/when to exit simulation
2010-01-31inorder: add/remove halt/deallocate context respectivelyKorey Sewell
Halt is called from the exit() system call while deallocate is unused. So to clear up things, just use halt and remove deallocate.
2010-01-31inorder: track last branch committedKorey Sewell
when threads are switching in/out the CPU, we need to keep track of special cases like branches. Add appropriate variables in ThreadState t track this and then use these variables when updating pc after context switch
2010-01-31inorder: add updatePC event to resPoolKorey Sewell
this will be used for when a thread comes back from a cache miss, it needs to update the PCs because the inst might of been a branch or delayslot in which the next PC isnt always a straight addition
2010-01-31inorder: ready thread wakeupKorey Sewell
allow a thread to wakeup and be activated after it has been in suspended state and another thread is switched out. Need to give pipeline stages a "activateThread" function so that can get to their suspended instruction when the time is right.
2010-01-31inorder: add threadmodel flagKorey Sewell
this prints out messages relative to what threading model is being used (smt, switch-on-miss, single, etc.)
2010-01-31inorder: mem. mgmt. updateKorey Sewell
update address List and address Map to take into account multiple threads
2010-01-31inorder: suspend in respoolKorey Sewell
give resources their own specific activity to do for a "suspend" event instead of defaulting to deactivating the thread for a suspend thread event. This really matters for the fetch sequence unit which wants to remove the thread from fetching while other units want to ignore a thread suspension. If you deactivate a thread in a resource then you may lose some of the allotted bandwidth that the thread is taking up...
2010-01-31inorder: fetch thread bugKorey Sewell
dont check total # of threads but instead all active threads
2010-01-31inorder: ready/suspend status fnsKorey Sewell
update/add in the use of isThreadReady & isThreadSuspended functions.Check in activateThread what list a thread is on so it can be managed accordingly.
2010-01-31inorder-cleanup: remove unused thread functionsKorey Sewell
2010-01-31inorder: activate thread on cache missKorey Sewell
-Support ability to activate next ready thread after a cache miss through the activateNextReadyContext/Thread() functions -To support this a "readyList" of thread ids is added -After a cache miss, thread will suspend and then call activitynextreadythread
2010-01-31inorder: add event priority offsetKorey Sewell
allow for events to schedule themselves later if desired. this is important because of cases like where you need to activate a thread only after the previous thread has been deactivated. The ordering there has to be enforced