Andrew Waterman 
							
						 
					 
					
						
						
							
						
						8d97684555 
					 
					
						
						
							
							Fix L2 TLB perfctr  
						
						... 
						
						
						
						It was counting conflict misses but not cold misses. 
						
						
					 
					
						2017-08-04 17:01:31 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						df7f09b9ce 
					 
					
						
						
							
							Get I$ ECC check further off critical path  
						
						
						
						
					 
					
						2017-08-04 16:59:21 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						4bfbe75d74 
					 
					
						
						
							
							Avoid pipeline replays when fetch queue is full  
						
						
						
						
					 
					
						2017-08-04 16:59:21 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						a45997d03f 
					 
					
						
						
							
							Separate I$ parity error from miss signal  
						
						... 
						
						
						
						Handle parity errors with a pipeline flush rather than a faster
frontend replay, reducing a critical path. 
						
						
					 
					
						2017-08-04 16:59:21 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						06a831310b 
					 
					
						
						
							
							Shave a gate delay off I$ backpressure path  
						
						... 
						
						
						
						The deleted code was a holdover from Hwacha's vector fences. 
						
						
					 
					
						2017-08-04 13:12:43 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						ecc2ee366c 
					 
					
						
						
							
							Shave a few gate delays off IBuf control logic  
						
						... 
						
						
						
						It takes a while for the pipeline to compute the stall signal, so avoid
using it until the last logic levels in the clock cycle. 
						
						
					 
					
						2017-08-04 13:12:43 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						7937db0c84 
					 
					
						
						
							
							Merge pull request  #919  from freechipsproject/imiss-perf-counter  
						
						... 
						
						
						
						Fix I$ miss perfctr 
						
						
					 
					
						2017-08-04 01:04:23 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						ba4eecc0f0 
					 
					
						
						
							
							Use UIntToOH1 ( #921 )  
						
						... 
						
						
						
						Closes  #920  
					
						2017-08-03 14:55:39 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						f483bab4aa 
					 
					
						
						
							
							Fix I$ miss perfctr  
						
						... 
						
						
						
						The old version was counting prefetches, too. 
						
						
					 
					
						2017-08-03 00:52:12 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						1be1433f04 
					 
					
						
						
							
							Merge pull request  #918  from freechipsproject/icache-prefetch  
						
						... 
						
						
						
						Icache prefetch 
						
						
					 
					
						2017-08-02 21:22:20 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						2537d0d54e 
					 
					
						
						
							
							Optionally prefetch next I$ line into L2$ on miss  
						
						
						
						
					 
					
						2017-08-02 17:10:56 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						744cdb2f72 
					 
					
						
						
							
							Make TLB report when it's safe to prefetch within a page  
						
						
						
						
					 
					
						2017-08-02 17:09:38 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						7d2dd3769f 
					 
					
						
						
							
							Optimize a hazard check critical path  
						
						
						
						
					 
					
						2017-08-02 14:27:25 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						2eb239d03f 
					 
					
						
						
							
							Add option to retime D$ way mux into subsequent pipeline stage  
						
						
						
						
					 
					
						2017-08-01 23:59:20 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						9464c6db40 
					 
					
						
						
							
							Mitigate(?) frontend critical path  
						
						
						
						
					 
					
						2017-08-01 18:51:17 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						735701382f 
					 
					
						
						
							
							Mitigate some I$ response valid critical paths  
						
						
						
						
					 
					
						2017-08-01 18:51:17 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						2ecea2ef60 
					 
					
						
						
							
							Don't use a pipe queue on D$ TL A-channel  
						
						... 
						
						
						
						This cuts an I$->D$ path. 
						
						
					 
					
						2017-08-01 15:17:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						5681693ccc 
					 
					
						
						
							
							Fix a D$ ready-valid signaling regression  
						
						... 
						
						
						
						I broke this in 66d06460fa 
						
						
					 
					
						2017-07-31 18:05:14 -07:00 
						 
				 
			
				
					
						
							
							
								Yunsup Lee 
							
						 
					 
					
						
						
							
						
						7adfd5c431 
					 
					
						
						
							
							Merge pull request  #906  from freechipsproject/critical-paths  
						
						... 
						
						
						
						Mitigate I$->D$->I$ critical path 
						
						
					 
					
						2017-07-31 16:14:11 -07:00 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						11332c1226 
					 
					
						
						
							
							dcache: break potential combinatorial loop by making pstore_drain_on_miss more conservative  
						
						
						
						
					 
					
						2017-07-31 14:03:30 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						d811692c3b 
					 
					
						
						
							
							Mitigate I$->D$->I$ critical path  
						
						... 
						
						
						
						This seemingly irrelevant change shaves several gate delays off the I$
tl.a.valid path. 
						
						
					 
					
						2017-07-31 01:43:04 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						ac4339a8e7 
					 
					
						
						
							
							Pass D$ backpressure to D-channel, rather than asserting  
						
						
						
						
					 
					
						2017-07-29 11:48:36 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						edcd2c696c 
					 
					
						
						
							
							Avoid needless stall on E-channel back pressure  
						
						
						
						
					 
					
						2017-07-29 11:47:58 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						fdb8935712 
					 
					
						
						
							
							Improve fidelity of two perf counters  
						
						
						
						
					 
					
						2017-07-28 13:14:04 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						4c82f6b77e 
					 
					
						
						
							
							Don't refill BTB on not-taken branches  
						
						
						
						
					 
					
						2017-07-28 13:13:52 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						2e8b02e780 
					 
					
						
						
							
							Merge D$ store hits when ECC is enabled  
						
						... 
						
						
						
						This avoids pipeline flushes due to subword WAW hazards, as with
consecutive byte stores. 
						
						
					 
					
						2017-07-28 12:56:36 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						838864870e 
					 
					
						
						
							
							Bypass TLB refill signal to halve L2 TLB hit time  
						
						... 
						
						
						
						The 4-cycle hit time is 1 cycle too long to avoid a second
pipeline replay, so it was effectively 9 cycles instead of 4. 
						
						
					 
					
						2017-07-28 12:56:36 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						ae1f7a95f6 
					 
					
						
						
							
							Don't nack misses when there's a pending store  
						
						... 
						
						
						
						That effectively increased the miss latency by 5 cycles when there was
a store hit followed by a load miss.  Since pending stores are drained
when releaseInFlight, the check I removed was redundant. 
						
						
					 
					
						2017-07-28 12:56:36 -07:00 
						 
				 
			
				
					
						
							
							
								Wesley W. Terpstra 
							
						 
					 
					
						
						
							
						
						9804bdc34e 
					 
					
						
						
							
							tilelink: remove obsolete addr_lo signal ( #895 )  
						
						... 
						
						
						
						When we first implemented TL, we thought this was helpful, because
it made WidthWidgets stateless in all cases. However, it put too
much burden on all other masters and slaves, none of which benefitted
from this signal. Furthermore, even with addr_lo, WidthWidgets were
information lossy because when they widen, they have no information
about what to fill in the new high bits of addr_lo. 
						
						
					 
					
						2017-07-26 16:01:21 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						5a5b78b15e 
					 
					
						
						
							
							Improve L2 TLB coding style  
						
						
						
						
					 
					
						2017-07-26 02:22:43 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						5a9c673f41 
					 
					
						
						
							
							Fix L2 TLB response bug  
						
						... 
						
						
						
						Sometimes, it would inform the L1 TLB that the translation was for
a superpage, even though that's never the case. 
						
						
					 
					
						2017-07-26 02:20:41 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						acca0fccf5 
					 
					
						
						
							
							Fix BTB not being refilled on some indirect jumps  
						
						... 
						
						
						
						We are overloading the BTB-hit signal to mean that any part of the frontend
changed the control-flow, not just the BTB.  That's the right thing to do for
most of the control logic, but it means the BTB sometimes won't get refilled
when we'd like it to.  This commit makes the frontend use an invalid BTB entry
number when it, rather than the BTB, changes the control flow.  Since the
entry number is invalid, the BTB will treat it as a miss and refill itself.
This is kind of a hack, but a more palatable fix requires reworking the RVC
IBuf, which I don't have time for right now. 
						
						
					 
					
						2017-07-26 02:13:43 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						15878d4691 
					 
					
						
						
							
							Perform some control-flow transfers within the Frontend  
						
						
						
						
					 
					
						2017-07-25 15:19:16 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						62c4080585 
					 
					
						
						
							
							Add RVC instruction patterns  
						
						
						
						
					 
					
						2017-07-25 15:19:16 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						66d06460fa 
					 
					
						
						
							
							Add option for acquire-before-release  
						
						
						
						
					 
					
						2017-07-25 15:19:16 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						86ccd935fc 
					 
					
						
						
							
							Add method to print perf events  
						
						
						
						
					 
					
						2017-07-25 15:19:16 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						5df8f0d1ea 
					 
					
						
						
							
							Add L2 TLB miss counter  
						
						
						
						
					 
					
						2017-07-25 15:19:16 -07:00 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						01ca3efc2b 
					 
					
						
						
							
							Combine Coreplex and System Module Hierarchies ( #875 )  
						
						... 
						
						
						
						* coreplex collapse: peripherals now in coreplex
* coreplex: better factoring of TLBusWrapper attachement points
* diplomacy: allow monitorless :*= and :=*
* rocket: don't connect monitors to tile tim slave ports
* rename chip package to system
* coreplex: only sbus has a splitter
* TLFragmenter: Continuing my spot battles on requires without explanatory strings
* pbus: toFixedWidthSingleBeatSlave
* tilelink: more verbose requires
* use the new system package for regression
* sbus: add more explicit FIFO attachment points
* delete leftover top-level utils
* cleanup ResetVector and RTC 
						
						
					 
					
						2017-07-23 08:31:04 -07:00 
						 
				 
			
				
					
						
							
							
								Wesley W. Terpstra 
							
						 
					 
					
						
						
							
						
						4eface8a9e 
					 
					
						
						
							
							rocket: do not require FIFO order for memory-like regions  
						
						
						
						
					 
					
						2017-07-12 17:39:00 -07:00 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						4c595d175c 
					 
					
						
						
							
							Refactor package hierarchy and remove legacy bus protocol implementations ( #845 )  
						
						... 
						
						
						
						* Refactors package hierarchy.
Additionally:
  - Removes legacy ground tests and configs
  - Removes legacy bus protocol implementations
  - Removes NTiles
  - Adds devices package
  - Adds more functions to util package 
						
						
					 
					
						2017-07-07 10:48:16 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						a0cbc376b4 
					 
					
						
						
							
							Merge pull request  #849  from freechipsproject/l2-tlb  
						
						... 
						
						
						
						L1 memory system improvements 
						
						
					 
					
						2017-07-06 13:03:06 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						e1cc0a0a0e 
					 
					
						
						
							
							Mask debug interrupts similarly to other interrupts ( #847 )  
						
						... 
						
						
						
						This makes single-step exceptions higher-priority than debug interrupts. 
						
						
					 
					
						2017-07-06 12:03:24 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						b2351c5fbf 
					 
					
						
						
							
							Use consistent casing  
						
						
						
						
					 
					
						2017-07-06 11:16:56 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						be4eceec0d 
					 
					
						
						
							
							Fix stupid D$ probe bug  
						
						
						
						
					 
					
						2017-07-06 01:20:47 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						90a7d6a343 
					 
					
						
						
							
							Add L2 TLB option  
						
						
						
						
					 
					
						2017-07-06 01:19:18 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						438abc76d2 
					 
					
						
						
							
							Handle TL errors in L1 I$  
						
						... 
						
						
						
						Cache the error bit in the tag array; report precisely on access. 
						
						
					 
					
						2017-07-06 01:02:11 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						0ef45fac9b 
					 
					
						
						
							
							Add tag ECC to D$  
						
						
						
						
					 
					
						2017-07-03 18:16:37 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						e9752f76ae 
					 
					
						
						
							
							Improve probe state machine  
						
						... 
						
						
						
						- Reduce reliance on s2_prb_ack_data due to future ECC changes
- Shave a cycle off valid, but clean, probes
- Code cleanup 
						
						
					 
					
						2017-07-03 16:25:04 -07:00 
						 
				 
			
				
					
						
							
							
								Richard Xia 
							
						 
					 
					
						
						
							
						
						5b46350bc3 
					 
					
						
						
							
							Make sure that DCache s2_xcpt data scratchpad case is assigned to after initial assignment.  
						
						
						
						
					 
					
						2017-06-30 17:44:16 -07:00 
						 
				 
			
				
					
						
							
							
								Wesley W. Terpstra 
							
						 
					 
					
						
						
							
						
						5edc4546e3 
					 
					
						
						
							
							rocket: add dtim and itim refs to cpus  
						
						
						
						
					 
					
						2017-06-28 23:10:58 -07:00