summaryrefslogtreecommitdiff
path: root/src/cpu
AgeCommit message (Collapse)Author
2011-06-19inorder: don't stall after storesKorey Sewell
once a ST is sent off, it's OK to keep processing, however it's a little more complicated to handle the packet acknowledging the store is completed
2011-06-19inorder: don't stall after storesKorey Sewell
once a ST is sent off, it's OK to keep processing, however it's a little more complicated to handle the packet acknowledging the store is completed
2011-06-19inorder: remove decode squashKorey Sewell
also, cleanup comments for gem5.fast compilation
2011-06-19inorder: support for compare and swap instsKorey Sewell
dont treat read() and write() fields as mut. exclusive
2011-06-19inorder: branch predictor updateKorey Sewell
only update BTB on a taken branch and update branch predictor w/pcstate from instruction --- only pay attention to branch predictor updates if the the inst. is in fact a branch
2011-06-19inorder: priority for grad/squash eventsKorey Sewell
define separate priority resource pool squash and graduate events
2011-06-19inorder: remove stalls on trap squashKorey Sewell
2011-06-19inorder: no dep. tracking for zero regKorey Sewell
this causes forwarding a bad value register value
2011-06-19imported patch recoverPCfromTrapKorey Sewell
2011-06-19imported patch squash_from_next_stageKorey Sewell
2011-06-19inorder: add flatDestReg member to dyninstKorey Sewell
use it in reg. dep. tracking
2011-06-19inorder: update event prioritiesKorey Sewell
dont use offset to calculate this but rather an enum that can be updated
2011-06-19inorder: implement trap handlingKorey Sewell
2011-06-19inorder: cleanup intercomm. structs/squash infoKorey Sewell
2011-06-19inorder: use setupSquash for misspeculationKorey Sewell
implement a clean interface to handle branch misprediction and eventually all pipeline flushing
2011-06-19inorder: DynInst handling of stores for big-endian ISAsKorey Sewell
The DynInst was not performing the host-to-guest translation which ended up breaking stores for SPARC
2011-06-19inorder: make marking of dest. regs an explicit requestKorey Sewell
formerly, this was implicit when you accessed the execution unit or the use-def unit but it's better that this just be something that a user can specify.
2011-06-19inorder: simplify handling of split accessesKorey Sewell
2011-06-19inorder: addtl functionaly for inst. skedsKorey Sewell
add find and end functions for inst. schedules that can search by stage number
2011-06-19inorder: register file statsKorey Sewell
keep stats for int/float reg file usage instead of aggregating across reg file types
2011-06-19inorder: scheduling for nonspec instsKorey Sewell
make handling of speculative and nonspeculative insts more explicit
2011-06-19inorder: find register dependencies "lazily"Korey Sewell
Architectures like SPARC need to read the window pointer in order to figure out it's register dependence. However, this may not get updated until after an instruction gets executed, so now we lazily detect the register dependence in the EXE stage (execution unit or use_def). This makes sure we get the mapping after the most current change.
2011-06-19inorder: assert on macro-opsKorey Sewell
provide a sanity check for someone coding a new architecture
2011-06-19inorder: handle faults at writeback stageKorey Sewell
call trap function when a fault is received
2011-06-19inorder: ISA-zero reg handlingKorey Sewell
ignore writes to the ISA zero register
2011-06-19inorder: update support for branch delay slotsKorey Sewell
2011-06-19inorder: inst. iterator cleanupKorey Sewell
get rid of accessing iterators (for instructions) by reference
2011-06-19inorder: update bpred codeKorey Sewell
clean up control flow to make it easier to understand
2011-06-19inorder: add types for dependency checksKorey Sewell
2011-06-19inorder: use flattenIdx for reg indexingKorey Sewell
- also use "threadId()" instead of readTid() everywhere - this will help support more complex ISA indexing
2011-06-19simple-thread: give a name() function for debugging w/the SimpleThread objectKorey Sewell
2011-06-19inorder: use m5_hash_map for skedCacheKorey Sewell
since we dont care about if the cache of instruction schedules is sorted or not, then the hash map should be faster
2011-06-10o3: missing newlines on some dprintfsKorey Sewell
2011-06-09sparc: compilation fixes for inorderKorey Sewell
Add a few constants and functions that the InOrder model wants for SPARC. * * * sparc: add eaComp function InOrder separates the address generation from the actual access so give Sparc that functionality * * * sparc: add control flags for branches branch predictors and other cpu model functions need to know specific information about branches, so add the necessary flags here
2011-06-07gcc 4.0: Add some virtual destructors to make gcc 4.0 happy.Gabe Black
2011-06-02scons: rename TraceFlags to DebugFlagsNathan Binkert
2011-05-23O3: Fix offset calculation into storeQueue buffer for store->load forwardingGeoffrey Blake
Calculation of offset to copy from storeQueue[idx].data structure for load to store forwarding fixed to be difference in bytes between store and load virtual addresses. Previous method would induce bug where a load would index into buffer at the wrong location.
2011-05-23O3: Fix issue w/wbOutstading being decremented multiple times on blocked cache.Geoffrey Blake
If a split load fails on a blocked cache wbOutstanding can be decremented twice if the first part of the split load succeeds and the second part fails. Condition the decrementing on not having completed the first part of the load.
2011-05-23O3: Fix issue with interrupts/faults occuring in the middle of a macro-opGeoffrey Blake
This patch fixes two problems with the O3 cpu model. The first is an issue with an instruction fetch causing a fault on the next address while the current macro-op is being issued. This happens when the micro-ops exceed the fetch bandwdith and then on the next cycle the fetch stage attempts to issue a request to the next line while it still has micro-ops to issue if the next line faults a fault is attached to a micro-op in the currently executing macro-op rather than a "nop" from the next instruction block. This leads to an instruction incorrectly faulting when on fetch when it had no reason to fault. A similar problem occurs with interrupts. When an interrupt occurs the fetch stage nominally stops issuing instructions immediately. This is incorrect in the case of a macro-op as the current location might not be interruptable.
2011-05-13Trace: Allow printing ASIDs and selectively tracing based on user/kernel code.Chander Sudanthi
Debug flags are ExecUser, ExecKernel, and ExecAsid. ExecUser and ExecKernel are set by default when Exec is specified. Use minus sign with ExecUser or ExecKernel to remove user or kernel tracing respectively.
2011-05-13O3: Fix an issue with a load & branch instruction and mem dep squashingGeoffrey Blake
Instructions that load an address and are control instructions can execute down the wrong path if they were predicted correctly and then instructions following them are squashed. If an instruction is a memory and control op use the predicted address for the next PC instead of just advancing the PC. Without this change NPC is used for the next instruction, but predPC is used to verify that the branch was successful so the wrong path is silently executed.
2011-05-09work around gcc 4.5 warningNathan Binkert
2011-05-07NetworkTest: added sim_cycles parameter to the network tester.Tushar Krishna
The network tester terminates after injecting for sim_cycles (default=1000), instead of having to explicitly pass --maxticks from the command line as before. If fixed_pkts is enabled, the tester only injects maxpackets number of packets, else it keeps injecting till sim_cycles. The tester also works with zero command line arguments now.
2011-05-04CPU: Add some useful debug message to the timing simple cpu.Ali Saidi
2011-05-04CPU: Fix a case where timing simple cpu faults can nest.Ali Saidi
If we fault, change the state to faulting so that we don't fault again in the same cycle.
2011-05-04O3: Remove assertion for case that is actually handled in code.Ali Saidi
If an nonspeculative instruction has a fault it might not be in the nonSpecInsts map.
2011-05-04O3: Fix a small corner case with the lsq hazard detection logic.Ali Saidi
2011-04-20stats: one more name violationNathan Binkert
2011-04-19stats: rename stats so they can be used as python expressionsNathan Binkert
2011-04-15trace: reimplement the DTRACE function so it doesn't use a vectorNathan Binkert
At the same time, rename the trace flags to debug flags since they have broader usage than simply tracing. This means that --trace-flags is now --debug-flags and --trace-help is now --debug-help