Gabe Black
aade13769f
ISA: Use readBytes/writeBytes for all instruction level memory operations.
2011-07-02 22:34:29 -07:00
Gabe Black
d42e471baa
Stats: Update stats for the x86 store fault fix.
2011-07-02 22:31:42 -07:00
Gabe Black
2f72d6a1f4
X86: Fix store microops so they don't drop faults in timing mode.
...
If a fault was returned by the CPU when a store initiated it's write, the
store instruction would ignore the fault. This change fixes that.
2011-07-02 22:31:22 -07:00
Nilay Vaish
45b411fc5f
Ruby: Commit files missing from previous commit
...
The previous commit on functional access support in Ruby did not have
some of the files required. This patch adds those files to the repository.
2011-07-01 16:29:33 -05:00
Brad Beckmann
12dc51ff0d
Regression: Updates regression outputs for Ruby memtest
...
This patch updates the regression outputs for Ruby memtest. This was
required because of the changes carried out by the addition of functional
access support to Ruby.
2011-06-30 19:57:26 -05:00
Brad Beckmann
0b7b3766af
config: removed unnecessary slashes
...
This patch removes unnecessary slashes from a couple of python scripts.
2011-06-30 19:54:02 -05:00
Brad Beckmann ext:(%2C%20Nilay%20Vaish%20%3Cnilay%40cs.wisc.edu%3E)
c86f849d5a
Ruby: Add support for functional accesses
...
This patch rpovides functional access support in Ruby. Currently only
the M5Port of RubyPort supports functional accesses. The support for
functional through the PioPort will be added as a separate patch.
2011-06-30 19:49:26 -05:00
Nilay Vaish
f4cfd65d29
arch: print next upc correctly
...
The patch corrects the print statement which prints the current and
the next pc. Instead of the next upc, the next pc was being printed.
2011-06-28 18:27:38 -05:00
Joel Hestness
d50aec8d9a
Ruby: remove unused functions in CacheMemory: get/setMemoryValue
2011-06-24 15:47:35 -05:00
Deyaun Guo
5aaddc129e
mips: fix nmsub and nmadd definitions
...
the -/+ signs were flipped for nmsub_s, nmsub_d, and nmadd_d
2011-06-22 23:35:21 -04:00
Gabe Black
efb9f7c2ae
X86: Eliminate an unused argument for building store microops.
2011-06-21 19:28:14 -07:00
Korey Sewell
6630d4c64b
inorder: sparc: add 02.insttest regression
2011-06-20 22:44:24 -04:00
Korey Sewell
d1e8be9a73
inorder: sparc: add hello world regression
...
- add InOrderCPU compile option to SPARC
- add hello regression for SPARC
2011-06-20 22:44:22 -04:00
Korey Sewell
08c1a6f41b
merge regression updates
2011-06-20 18:58:31 -04:00
Korey Sewell
b5736ba4ef
alpha:o3:simple: update simout/err files
...
A few prior changesets have changed the gem5 output in a way that wont cause
errors but may be confusing for someone trying to debug the regressions. Ones that I caught
were:
- no more "warn: <hash address"
- typo in the ALPHA Prefetch unimplemented warning
Additionaly, the last updated stats changes rearrange the ordering of the stats output even though
they are still correct stats (gem5 is smart enough to detect this). All the regressions pass
w/the same stats even though it looks like they are being changed.
2011-06-20 18:57:14 -04:00
Korey Sewell
9124f46587
inorder: alpha-hello regression update
2011-06-20 12:21:10 -04:00
Korey Sewell
773e409a7c
inorder: merge gabes compile fix
2011-06-20 08:37:25 -04:00
Gabe Black
affad29932
InOder: Fix a compile error.
2011-06-20 02:29:14 -07:00
Korey Sewell
540d939fad
inorder: gem5.opt compile
...
variable name typo.
2011-06-19 23:26:36 -04:00
Korey Sewell
97449ef3da
inorder: update eon regr w/eon info
...
previous commit copied over O3 stats, this one puts the inorder ones in the right place
2011-06-19 21:54:53 -04:00
Korey Sewell
d16b0dc319
inorder: add 10.linux-boot regression
2011-06-19 21:43:43 -04:00
Korey Sewell
60da569846
inorder: add eon regression
2011-06-19 21:43:43 -04:00
Korey Sewell
55dce6419d
inorder: update SE regressions
2011-06-19 21:43:42 -04:00
Korey Sewell
477e7039b3
inorder: clear reg. dep entry after removing from list
...
this will safeguard future code from trying to remove
from the list twice. That code wouldnt break but would
waste time.
2011-06-19 21:43:42 -04:00
Korey Sewell
b963b339b9
inorder: se: squash after syscalls
2011-06-19 21:43:42 -04:00
Korey Sewell
eedd04e894
inorder: cleanup dprintfs in cache unit
2011-06-19 21:43:42 -04:00
Korey Sewell
078f914e69
inorder: SE mode TLB faults
...
handle them like we do in FS mode, by blocking the TLB until the fault
is handled by the fault->invoke()
2011-06-19 21:43:42 -04:00
Korey Sewell
3cb23bd3a2
inorder:tracing: fix fault tracing bug
2011-06-19 21:43:42 -04:00
Korey Sewell
fe3a2aa4a3
inorder: se compile fixes
2011-06-19 21:43:42 -04:00
Korey Sewell
e572c01120
inorder: add necessary debug flag header files
2011-06-19 21:43:41 -04:00
Korey Sewell
59686795e3
mips: mark unaligned access flag as true
2011-06-19 21:43:41 -04:00
Korey Sewell
91a88ae8ce
inorder: clear fetchbuffer on traps
...
implement clearfetchbufferfunction
extend predecoder to use multiple threads and clear those on trap
2011-06-19 21:43:41 -04:00
Korey Sewell
2dae0e8735
inorder: use separate float-reg bits function in dyninst
...
this will make sure we get the correct view of a FP register
2011-06-19 21:43:41 -04:00
Korey Sewell
8c0def8d03
inorder: use trapPending flag to manage traps
2011-06-19 21:43:41 -04:00
Korey Sewell
5ef0b7a9db
inorder/dtb: make sure DTB translate correct address
...
The DTB expects the correct PC in the ThreadContext
but how if the memory accesses are speculative? Shouldn't
we send along the requestor's PC to the translate functions?
2011-06-19 21:43:41 -04:00
Korey Sewell
716e447da8
inorder: handle serializing instructions
...
including IPR accesses and store-conditionals. These class of instructions will not
execute correctly in a superscalar machine
2011-06-19 21:43:41 -04:00
Korey Sewell
83a0fd24f7
alpha: fix warn_once for prefetches
2011-06-19 21:43:40 -04:00
Korey Sewell
33a6020f2e
alpha: naming for dtb faults
...
Just "dfault" gets confusing while debugging. Why not
differentiate whether it's an access violation or page
fault
2011-06-19 21:43:40 -04:00
Korey Sewell
561c33f082
inorder: dont handle multiple faults on same cycle
...
if a faulting instruction reaches an execution unit,
then ignore it and pass it through the pipeline.
Once we recognize the fault in the graduation unit,
dont allow a second fault to creep in on the same cycle.
2011-06-19 21:43:40 -04:00
Korey Sewell
c4deabfb97
inorder: register ports for FS mode
...
handle "snoop" port registration as well as functional
port setup for FS mode
2011-06-19 21:43:40 -04:00
Korey Sewell
f1c3691356
inorder: check for interrupts each tick
...
use a dummy instruction to facilitate the squash after
the interrupts trap
2011-06-19 21:43:40 -04:00
Korey Sewell
0bfdf342da
inorder: explicit fault check
...
Before graduating an instruction, explicitly check fault
by making the fault check it's own separate command
that can be put on an instruction schedule.
2011-06-19 21:43:40 -04:00
Korey Sewell
5f608dd2e9
inorder: squash and trap behind a tlb fault
2011-06-19 21:43:39 -04:00
Korey Sewell
e0e387c2a9
inorder: stall stores on store conditionals & compare/swaps
2011-06-19 21:43:39 -04:00
Korey Sewell
f268d7d004
alpha: make hwrei a control inst
...
this always changes the PC and is basically an impromptu branch instruction. why
not speculate on this instead of always be forced to mispredict/squash after the
hwrei gets resolved?
The InOrder model needs this marked as "isControl" so it knows to update the PC
after the ALU executes it. If this isnt marked as control, then it's going to
force the model to check the PC of every instruction at commit (what O3 does?),
and that would be a wasteful check for a very high percentage of instructions.
2011-06-19 21:43:39 -04:00
Korey Sewell
e8b7df072b
inorder: make InOrder CPU FS compilable/visible
...
make syscall a SE mode only functionality
copy over basic FS functions (hwrei) to make FS compile
2011-06-19 21:43:39 -04:00
Korey Sewell
d71b95d84d
inorder: remove memdep tracking for default pipeline
...
speculative load/store pipelines can reenable this
2011-06-19 21:43:39 -04:00
Korey Sewell
b72bdcf4f8
inorder: fetchBuffer tracking
...
calculate blocks in use for the fetch buffer to figure out how many total blocks
are pending
2011-06-19 21:43:39 -04:00
Korey Sewell
4d4c7d79d0
inorder: redefine DynInst FP result type
...
Sharing the FP value w/the integer values was giving inconsistent results esp. when
their is a 32-bit integer register matched w/a 64-bit float value
2011-06-19 21:43:38 -04:00
Korey Sewell
db8b1e4b78
inorder: treat SE mode syscalls as a trapping instruction
...
define a syscallContext to schedule the syscall and then use syscall() to actually perform the action
2011-06-19 21:43:38 -04:00