summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/cpu.cc
AgeCommit message (Collapse)Author
2010-09-13Faults: Pass the StaticInst involved, if any, to a Fault's invoke method.Gabe Black
Also move the "Fault" reference counted pointer type into a separate file, sim/fault.hh. It would be better to name this less similarly to sim/faults.hh to reduce confusion, but fault.hh matches the name of the type. We could change Fault to FaultPtr to match other pointer types, and then changing the name of the file would make more sense.
2010-08-13CPU: Add readBytes and writeBytes functions to the exec contexts.Gabe Black
2010-06-28inorder: remove another debug statKorey Sewell
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: enforce 78-character ruleKorey Sewell
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: tick schedulingKorey Sewell
use nextCycle to calculate ticks after addition
2010-03-22inorder: fix address list bugKorey Sewell
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: 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: 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: 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: 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: 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
2010-01-31inorder: squash on memory stallKorey Sewell
add code to recognize memory stalls in resources and the pipeline as well as squash a thread if there is a stall and we are in the switch on cache miss model
2010-01-31inorder: add insts to cpu eventKorey Sewell
some events are going to need instruction data when they process, so just include the instruction in the event construction
2010-01-31configs/inorder: add options for switch-on-miss to inorder cpuKorey Sewell
2010-01-31inorder: init internal debug cpu countersKorey Sewell
- cpuEventNum - resReqCount
2009-10-01inorder-debug: print out workloadKorey Sewell
2009-09-25inorder-debug: fix cpu tick debug messageKorey Sewell
2009-09-23arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hhNathan Binkert
2009-09-15inorder-alpha-fs: edit inorder model to compile FS modeKorey Sewell
2009-07-08Get rid of the unused get(Data|Inst)Asid and (inst|data)Asid functions.Gabe Black
2009-07-08Registers: Eliminate the ISA defined integer register file.Gabe Black
2009-07-08Registers: Eliminate the ISA defined floating point register file.Gabe Black
2009-07-08Registers: Get rid of the float register width parameter.Gabe Black
2009-07-08Registers: Add an ISA object which replaces the MiscRegFile.Gabe Black
This object encapsulates (or will eventually) the identity and characteristics of the ISA in the CPU.
2009-06-04types: clean up types, especially signed vs unsignedNathan Binkert
2009-05-26types: add a type for thread IDs and try to use it everywhereNathan Binkert
2009-05-12inorder-tlb-cunit: merge the TLB as implicit to any memory accessKorey Sewell
TLBUnit no longer used and we also get rid of memAccSize and memAccFlags functions added to ISA and StaticInst since TLB is not a separate resource to acquire. Instead, TLB access is done before any read/write to memory and the result is checked before it's sent out to memory. * * *
2009-05-12inorder-tlb: squash insts in TLB correctlyKorey Sewell
TLB had a bug where if it was stalled and waiting , it would not squash all instructions older than squashed instruction correctly * * *
2009-05-12inorder-stc: update interface to handle store conditionalsKorey Sewell
2009-05-12inorder-mem: skeleton support for prefetch/writehintsKorey Sewell
2009-05-12inorder-unified-tlb: use unified TLB instead of old TLB modelKorey Sewell
2009-05-12inorder-alpha-port: initial inorder support of ALPHAKorey Sewell
Edit AlphaISA to support the inorder model. Mostly alternate constructor functions and also a few skeleton multithreaded support functions * * * Remove namespace from header file. Causes compiler issues that are hard to find * * * Separate the TLB from the CPU and allow it to live in the TLBUnit resource. Give CPU accessor functions for access and also bind at construction time * * * Expose memory access size and flags through instruction object (temporarily memAccSize and memFlags to get TLB stuff working.)
2009-04-17o3, inorder: fix FS bug due to initializing ThreadState to Halted.Steve Reinhardt
For some reason o3 FS init() only called initCPU if the thread state was Suspended, which was no longer the case. There's no apparent reason to check, so I whacked the test completely rather than changing the check to Halted. The inorder init() was also updated to be symmetric, though the previous code was just a fancy no-op.
2009-04-15ThreadState: initialize status to Halted in constructor.Steve Reinhardt
This provides a common initial status for all threads independent of CPU model (unlike the prior situation where CPUs initialized threads to inconsistent states). This mostly matters for SE mode; in FS mode, ISA-specific startupCPU() methods generally handle boot-time initialization of thread contexts (since the right thing to do is ISA-dependent).
2009-03-04InOrderCPU: Clean up Constructors to initialize variables correctly (i.e. in ↵Korey Sewell
a way for the compiler to play *nice*)
2009-03-04Remove unused functions/comments cluttering up the code.Korey Sewell
2009-03-04make handling of interstage buffers (i.e. StageQueues) more consistent: ↵Korey Sewell
(1)number from 0-n, not 1-n+1, (2) always check nextStageValid before a stageNum+1 and prevStageValid for a stageNum-1 reference (3) add skidSize() to get StageQueue size for all threads
2009-03-04Give TimeBuffer an ID that can be set. Necessary because InOrder uses ↵Korey Sewell
generic stages so w/o an ID there is no way to differentiate buffers when debugging