Yunsup Lee
023734175d
now fence stalls in decode
2012-03-20 17:10:05 -07:00
Yunsup Lee
e450e3aa40
fix irt counter bug regarding vector stuff
2012-03-20 17:09:54 -07:00
Yunsup Lee
7d7d7f49f9
change the tlb arbiter to a round robing one
2012-03-20 15:21:36 -07:00
Yunsup Lee
1cddd5de56
fix amo locking up problem
2012-03-20 02:16:28 -07:00
Yunsup Lee
56cb9b7a63
fix bug in coherence hub, specifically in abort handling logic
2012-03-20 02:16:28 -07:00
Yunsup Lee
c036fff79c
fix id interrupt signal
2012-03-19 15:13:57 -07:00
Yunsup Lee
0edea00166
now HAVE_VEC is true, since it passes the emulator
2012-03-19 03:10:00 -07:00
Yunsup Lee
264732556f
fixes to match verilog X semantics
2012-03-19 03:10:00 -07:00
Andrew Waterman
bd27d0fab2
can now take interrupts on stalled instructions
2012-03-19 01:02:06 -07:00
Andrew Waterman
2ed0be65f9
fix RRArbiter
2012-03-19 00:19:33 -07:00
Yunsup Lee
ba06cd953e
add chosen
2012-03-18 20:43:17 -07:00
Andrew Waterman
c4a91303fb
update vector fence names and encoding
2012-03-18 20:42:38 -07:00
Yunsup Lee
2a01f558ba
fix unmasked valid bug in ctrl_vec
2012-03-18 19:55:24 -07:00
Yunsup Lee
98e10ddc3c
update vector exception instructions
2012-03-18 16:36:12 -07:00
Yunsup Lee
7493d55d3f
add pf fault handling
2012-03-18 15:06:39 -07:00
Yunsup Lee
62ada5ea9e
hookup vitlb ptw port
2012-03-17 23:01:06 -07:00
Yunsup Lee
b793d63182
no vector interrupt masking
2012-03-17 23:01:06 -07:00
Yunsup Lee
8a4f95e617
changes to xcpt handling
2012-03-17 17:50:37 -07:00
Yunsup Lee
8c50c81b81
drop vec_irq_aux pcr register, now everything goes through badvaddr
2012-03-17 14:03:57 -07:00
Yunsup Lee
3b4680a834
add vitlb exception port
2012-03-17 14:03:33 -07:00
Andrew Waterman
a47eeb9571
retime D$ bypass into beginning of EX stage
2012-03-16 18:35:54 -07:00
Andrew Waterman
6c26921766
reduce D$ critical path through page table walker
...
costs an extra cycle per page table level to resolve a TLB miss. too bad.
2012-03-16 18:35:54 -07:00
Yunsup Lee
d38603a4ee
change number of tlb entries
2012-03-16 17:08:03 -07:00
Andrew Waterman
f0157b9e2a
fix coherence bug
...
popping wrong store dependence queue
2012-03-16 01:24:07 -07:00
Andrew Waterman
cfca2d1411
clean up cache interfaces; avoid reserved keywords
2012-03-16 00:44:16 -07:00
Andrew Waterman
820884c7e6
fix probes for smaller cache sizes
...
address bits (pgidx_bits-1,taglsb) were omitted from tag checks.
2012-03-15 23:08:30 -07:00
Andrew Waterman
4684171ac6
fix fence.i for associative caches
2012-03-15 21:23:21 -07:00
Andrew Waterman
2b0bc8df2b
use divided clk for htif. UDPATE YOUR FESVR
...
by default, we now load programs via a backdoor, because otherwise
it takes too long to simulate.
2012-03-15 18:36:51 -07:00
Yunsup Lee
ba566f246e
change icache parameters
2012-03-15 15:35:12 -07:00
Yunsup Lee
72006160dc
fix vxcptwait inst bug, it was incorrect when exception_valid was on before do_xcptwait
2012-03-15 02:10:21 -07:00
Yunsup Lee
f972977da1
refactored VMU, now uses one skid buffer
2012-03-15 01:10:17 -07:00
Henry Cook
b5fa86e844
4-way associative by default
2012-03-14 17:51:12 -07:00
Andrew Waterman
7dde7099d2
use broadcast hub and coherent HTIF
2012-03-14 16:44:35 -07:00
Yunsup Lee
b19d783fbd
add vector irq handler
2012-03-14 14:15:28 -07:00
Yunsup Lee
040d62f372
refactored vector exception handling interface
2012-03-13 23:45:34 -07:00
Yunsup Lee
b100544b25
datapath to read out vector state
2012-03-13 23:45:34 -07:00
Yunsup Lee
5655dbd5da
add vvcfg and vtcfg instructions
2012-03-13 23:45:34 -07:00
Andrew Waterman
ab6c9350db
fix minor coherence bugs
2012-03-13 19:10:54 -07:00
Andrew Waterman
1788c34113
parameterize broadcast hub by # of tiles
2012-03-13 17:12:01 -07:00
Andrew Waterman
1492457df5
add probe replies to HTIF
2012-03-13 16:56:47 -07:00
Andrew Waterman
b0f798962c
add probe unit
2012-03-13 16:43:51 -07:00
Huy Vo
fdffb124e3
Merge branch 'master' of github.com:ucb-bar/riscv-rocket
2012-03-13 12:34:39 -07:00
Huy Vo
6fd1527476
fix to rocket vec_dpath, updating makefiles to run xcpt test cases
2012-03-13 12:34:02 -07:00
Henry Cook
287bc1c262
Further refinement of tag_match/tag_hit signals
2012-03-13 11:48:12 -07:00
Andrew Waterman
d76b05bde1
fix way selection on D$ write upgrades
2012-03-13 02:21:02 -07:00
Andrew Waterman
fd29e00db0
support non-power-of-2 queue sizes
...
need to manually wrap queue pointers.
2012-03-13 01:58:28 -07:00
Henry Cook
cbf7b13341
fix hit logic for amos
2012-03-12 22:01:52 -07:00
Henry Cook
6229a33dc4
fixed cache controller flush unit deadlock
2012-03-12 22:01:52 -07:00
Henry Cook
ea0775643b
fixed abort bug
2012-03-12 22:01:52 -07:00
Yunsup Lee
1ba5e7b865
changes to the vector exception interface
2012-03-11 21:38:47 -07:00
Yunsup Lee
113a94a21d
add vector hold waits
2012-03-11 16:29:19 -07:00
Yunsup Lee
e42a4c767e
don't stall on vector fences, keep replaying
2012-03-11 16:29:19 -07:00
Henry Cook
c5dd37ae80
bugfix in locking arbiter
2012-03-11 15:47:27 -07:00
Henry Cook
4ebf637642
More broadcast hub bugfixes
2012-03-11 14:17:27 -07:00
Henry Cook
a4d0025187
fix icache prefetch global_xact_id bug
2012-03-11 00:50:11 -08:00
Yunsup Lee
1aa4b0e93d
going back to null coherence hub
2012-03-10 20:16:20 -08:00
Andrew Waterman
8ffdac9526
fix D$ store-upgrade bug
...
loads to the same address as stores that cause an upgrade
could return the old value
2012-03-10 15:50:10 -08:00
Andrew Waterman
4f4b990a4f
fix null hub store ack bug
2012-03-10 15:19:12 -08:00
Yunsup Lee
44ff22a26f
vector exception handler now handles prefetches correctly
2012-03-10 12:54:36 -08:00
Andrew Waterman
7eb73c325e
fix signedness of zero fmul results
...
We were using the FMA unit to compute rs1 * rs2 + 0.0 for fmul,
which incorrectly computes +0.0 when rs1 * rs2 == -0.0. Now we
add -0.0 if rs1*rs2 is negative.
2012-03-10 00:21:51 -08:00
Andrew Waterman
e3a68848e0
fix D$ critical paths and fix verilog build
2012-03-09 20:02:51 -08:00
Henry Cook
e591d83e91
Fixed global_xact_id propagation bug
2012-03-09 11:05:44 -08:00
Henry Cook
9319130483
Special cased NTILES == 1 due to log2up revision
2012-03-09 11:04:58 -08:00
Andrew Waterman
85504f0ddc
fix bug in fence.i and improve test
2012-03-09 03:26:05 -08:00
Andrew Waterman
766bac88f8
refactor D$ writebacks and flushes
...
MSHRs now arbitrate for writebacks and handle flushes.
2012-03-09 02:55:46 -08:00
Andrew Waterman
ff2e47f380
Merge branch 'master' of github.com:ucb-bar/riscv-rocket
2012-03-09 02:08:55 -08:00
Yunsup Lee
a1b30282dd
major refactoring on vector exception interface
2012-03-09 01:09:22 -08:00
Yunsup Lee
8acbe98f53
change how fence.*.cv works, now control processor stalls on the fence instruction
2012-03-08 23:32:31 -08:00
Henry Cook
22726ae646
icache and htif now obey require_ack field of TransactionReply. Avoids extraneous TransactionFinish on prefetcher-supplied icache data
2012-03-08 18:47:32 -08:00
Henry Cook
4d2e7172f6
Added require_ack field to TransactionReply bundle
2012-03-08 18:07:44 -08:00
Henry Cook
35c4bd4084
Hub addr comparison bug fix
2012-03-08 16:39:05 -08:00
Henry Cook
788ad327da
Fixed dependency queue bug in Broadcast Hub
2012-03-08 11:36:10 -08:00
Henry Cook
7f43dee0c9
PriorityEncoder apply() no longer has recursive depth param
2012-03-08 01:04:26 -08:00
Andrew Waterman
5a7c5772a8
clearly distinguish PPN and cache tag
2012-03-07 23:11:17 -08:00
Andrew Waterman
941873bad1
coherence hub fixes
2012-03-07 21:03:44 -08:00
Henry Cook
7deff5fbe2
Broadcast hub bug fixes for load uncached mem req and store uncached xact rep
2012-03-07 11:40:49 -08:00
Andrew Waterman
c09eeb7fd2
fix D$ next-state logic
...
it was using the CPU command from the wrong pipeline stage,
which was a don't-care with ThreeStateIncoherence.
2012-03-07 01:42:08 -08:00
Andrew Waterman
a0c9452b86
change D$ to use FourStateCoherence protocol
...
instead of ThreeStateIncoherence.
2012-03-07 01:26:35 -08:00
Andrew Waterman
6e2610b0ad
fix Mux1H for bundles
2012-03-06 23:38:36 -08:00
Yunsup Lee
81dcb194d3
new vector exception interface
2012-03-06 22:39:15 -08:00
Henry Cook
47a2097507
unified coherence trait functions
2012-03-06 17:33:11 -08:00
Henry Cook
3dd404dcf4
hub code cleanup
2012-03-06 17:01:47 -08:00
Henry Cook
c0ed010bc9
newTransactionOnMiss()
2012-03-06 15:54:41 -08:00
Henry Cook
962e5a54af
Added store dependency queues to BroadcastHub. Minor improvements to utils.
2012-03-06 15:54:41 -08:00
Andrew Waterman
499c5b4a2e
automatically infer MEM_TAG_BITS
2012-03-06 15:49:28 -08:00
Andrew Waterman
6e16b04ada
implement transaction finish messages
2012-03-06 15:48:08 -08:00
Yunsup Lee
dba99e07a9
set MEM_TAG_BITS to 5 when HAVE_VEC is true, since NMSHR=4
2012-03-06 08:54:21 -08:00
Andrew Waterman
5f33ab24b0
fix merge conflict
...
oops :(
2012-03-06 02:02:53 -08:00
Andrew Waterman
5f12990dfb
support memory transaction aborts
2012-03-06 00:35:02 -08:00
Henry Cook
950b5cd900
Added aborted data dequeueing state machine for BroadcastHub
2012-03-05 17:44:30 -08:00
Henry Cook
5c66a6699c
Broadcast hub control logic bugfixes and code cleanup
2012-03-05 17:27:55 -08:00
Yunsup Lee
a950d526d2
add prefetch count queue
2012-03-05 12:09:41 -08:00
Yunsup Lee
d4ec7ff4d9
refined vector exception interface
2012-03-03 16:11:54 -08:00
Yunsup Lee
e28a551368
refactor code related to vector exceptions
...
- revisied interfaces
- new instructions
2012-03-03 15:15:00 -08:00
Yunsup Lee
f9fb3978ca
fix store prefetch bug, it no longer occupies an entry in the sdq
2012-03-03 15:14:59 -08:00
Henry Cook
1b3307df32
Removed has_data fields from all coherence messages, increased message type names to compensate
2012-03-02 23:51:53 -08:00
Henry Cook
35f97bf858
Filled out 4 state coherence functions for cache
2012-03-02 21:58:50 -08:00
Henry Cook
00989c58bd
Correction to probe reply w/ data handling
2012-03-02 17:20:22 -08:00
Andrew Waterman
1e1926ce63
flip direction of ioPipe to match ioDecoupled
2012-03-02 16:18:32 -08:00
Henry Cook
7406908d4a
BroadcastHub can be elaborated by C and vlsi backends
2012-03-02 12:19:27 -08:00