Commit Graph

360 Commits

Author SHA1 Message Date
Hansung Kim
571d33a5de Remove unused MSB offset code from get getCoalescedDataChunk 2023-11-08 14:03:14 -08:00
Vamber Yang
61aad0315c L1 FatBank Integration, multi-bank working with 4 dcache banks, 1 icache bank
Merge remote-tracking branch 'remotes/origin/graphics' into local-graphics-dev
2023-11-06 21:56:11 -08:00
Vamber Yang
e958ede277 multi-bank working when nBanks=2, encountered a putPartial error, need to pull latest change 2023-11-06 20:51:23 -08:00
Vamber Yang
be5134cd8a L1 fatbank works with 2^5 source bits in SourceGen, failed with < 2^4 source bits in SourceGen 2023-11-01 23:48:24 -07:00
Hansung Kim
d2bfc31592 Fix store opcode assertion in AOpcodeIsStore
Now we support PutPartialData for narrow write requests that doesn't have all-1
mask.
2023-10-31 23:06:35 -07:00
Vamber Yang
75adb1dc66 Intergation of L1 Fatbank 2023-10-31 16:14:34 -07:00
Hansung Kim
635f4e42ff Add detailed doc on source allocation/filtering 2023-10-25 20:55:01 -07:00
Hansung Kim
6371cdc03c Use edge.hasData instead of TLUtils in adapter 2023-10-25 20:28:01 -07:00
Hansung Kim
1e8cc5ef90 Bump vortex 2023-10-25 20:07:20 -07:00
Hansung Kim
d70cbc8e58 Do matchingSources filtering using Vortex tag instead of TL source
Since we do source generation independently for each lane, if we use TL
source for filtering, it becomes possible that lane 0's source happens
to match lane 1/2/3's source even when they don't belong to the same
warp.  Since Vortex uses dcache req ID that is unique across
instructions, using that for filtering prevents this bug.  A better
solution would be to do source generation for all lanes at a time
though.
2023-10-25 19:48:21 -07:00
Hansung Kim
78e193db42 Add safety assert on sourceWidth
See commit 0d92eb65.
2023-10-25 18:17:03 -07:00
Hansung Kim
09f512fda7 Don't reply write requests from Vortex core 2023-10-25 13:08:18 -07:00
Hansung Kim
ba8bed6120 Set missing opcode field for uncoalesced requests 2023-10-25 13:07:54 -07:00
Hansung Kim
762e6dfd27 Rename queueDepth -> reqQueueDepth 2023-10-25 11:29:51 -07:00
Hansung Kim
f0a401d72b Add missing PutPartial mask handling for coalesced writes 2023-10-24 15:11:41 -07:00
Hansung Kim
3fc3e91831 Rename & doc 2023-10-24 14:04:00 -07:00
Hansung Kim
8affa755d0 Remove overly strict enq.ready assertion on respQueues
This used to make sense when we used MemTraceCores which never blocks
the response channel, but now that we're integrating with Vortex cores,
we cannot make the same assumption on the core's actual pipeline
behavior (although it is unclear why a core would ever block receiving
responses.)
2023-10-24 11:41:34 -07:00
Hansung Kim
e9c206dfa2 Properly handle upstream and downstream backpressure for respQueues 2023-10-24 11:36:18 -07:00
Hansung Kim
8e0904a1ad Fix matchingSources logic when all lanes are invalid
When all lanes are invalid so that arb.io.valid is 0, we should not
deassert d_ready.
2023-10-23 22:10:10 -07:00
Hansung Kim
a14d8b6814 Properly handle TL dataWidth mismatch for core-to-sbus configs
... using yet another TLWidthWidget
2023-10-23 20:33:41 -07:00
Hansung Kim
2e37d2ce3f Only check opcode validity when fire
... otherwise assertion goes off with garbage-value opcode during reset.
2023-10-23 20:31:00 -07:00
Hansung Kim
0f9896e001 Instantiate coalescer inside VortexTile
Currently runtime errors with unhandled D opcode inside coalescer.
2023-10-23 15:01:37 -07:00
Hansung Kim
2091ef686b Rename defaultConfig -> DefaultCoalescerConfig 2023-10-23 14:50:15 -07:00
Hansung Kim
105bb37421 Make VortexCoreParams; bring VortexTile into rocketchip.tile
Reduces duplicate declarations.  Need to properly split it out of
rocket-chip later.
2023-10-23 13:04:48 -07:00
Hansung Kim
f4553ffdb1 Remove done TODO 2023-10-23 11:33:38 -07:00
Vamber Yang
60a63d4e11 FatBank Integration Improvements:
1. ensure FatBank prioritze Ack read over Ack write to downstream
   coalescer
2. Between FatBank and L2, use the new sourceGenerator to allow both Read and
   Write Reqs sharing the same pool of available src_ids
2023-10-22 17:03:44 -07:00
Richard Yan
2a9f2f8421 fix typo 2023-10-19 17:10:56 -07:00
Richard Yan
77e3ad4934 Merge branch 'graphics' of https://github.com/hansungk/rocket-chip into graphics 2023-10-19 16:16:24 -07:00
Richard Yan
9d8e9de8d0 differentiate addresses for different harts 2023-10-19 16:14:35 -07:00
Hansung Kim
805abd1b4b Bump vortex for TL port change 2023-10-18 20:05:55 -07:00
Hansung Kim
ff302c1ba5 Use VortexTLAdapter for useVxCache = true as well 2023-10-18 20:04:31 -07:00
Hansung Kim
0d92eb65d4 Increase sourceWidth to fix vx_wspawn sync bug
With sourceWidth = 1, we hit an unsynchronized vx_wspawn bug, where the
previously spawned warps get killed and overridden by a new vx_wspawn
call before all the warps complete execution.  Setting sourceWidth = 1
somehow slows down the progress of the spawned warps in relation to warp
0 (presumably because fetch stalls, but not sure why they would slow
down more than warp 0) and results in this bug.   sourceWidth = 4 seems
to work for vecadd.
2023-10-18 15:19:11 -07:00
Hansung Kim
fb97bd3c2b Decouple Vortex imem bundle from TL 2023-10-17 12:18:58 -07:00
Hansung Kim
e4dd0c21e9 Bump vortex 2023-10-16 20:45:18 -07:00
Hansung Kim
8ab0529354 Move VortexBundleA/D to Core; resolve TODOs 2023-10-16 17:54:12 -07:00
Hansung Kim
eb9772b750 Decouple Vortex dmem bundle from TL
Previously VortexBundle was being instantiated using the parameters of
the TileLink bundle from VortexTile.  This results in tight coupling
between Vortex interface parameters and downstream TileLink parameters.
This change adds a standalone Bundle used by the VortexCore wrapper
and is independently instantiated from the TL params, i.e. different
source widths.  Ideally we want to move away from using TL-like
structures for VortexBundle and handling adapter logic completely
outside the core blackbox.
2023-10-16 17:42:17 -07:00
Hansung Kim
db8625fb20 Simplify metadata type wrangling in SourceGen 2023-10-16 15:24:37 -07:00
Hansung Kim
154e61b1a3 Fix SourceGen metadata IO errors in coalescer 2023-10-16 11:43:20 -07:00
Vamber Yang
e50903ed42 VX_FatBank runs in SoC Config with Coalescer till termination
Issues addressed:
1. FatBank ack to downstream coalescer with the correct size on ChannelD
2. FatBank ack to downstream coalescer immediately after W Req
3. FatBank generates unique ID for W Req to L2
4. Allows coalescer to config max Coal to L1 ReadSize at compile time

Ungoing issues:
1. Magic Number
2. Verification
3. Multi-Bank Integration
2023-10-16 10:32:17 -07:00
Hansung Kim
630d76461c Do proper TL sourceId allocation for Vortex dmem requests
This fixes sourceId collision that occurs when naively re-using tag bit
of a Vortex dmem request as TL source, which happens because Vortex core
does not allocate a new LSU entry for writes.

`VortexSourceGen` module acts as a Vortax tag <-> new TL source ID
converter, where it allocates a new ID for every new Vortex request, and
restores its original tag bits from the metadata embedded in the
SourceGenerator module.

TODO:
- Decouple sourceWidth of downstream TL nodes from Vortex's tag bit
  width; they are set to be the same for convenience as of now
- Apply this to imem requests as well
2023-10-16 01:19:55 -07:00
Hansung Kim
c34853447b Implement metadata retrieval in SourceGenerator 2023-10-16 01:11:50 -07:00
Hansung Kim
5b356b735c Fix unused warning in Coalescing 2023-10-15 23:24:32 -07:00
Hansung Kim
78012800e7 Clarify confusing in/outResp naming in SourceGenerator 2023-10-15 23:17:01 -07:00
Hansung Kim
cbd32b78a9 add metadata field in SourceGenerator table
This enables using SourceGenerator as a sourceId converter/restorer.
2023-10-15 22:56:07 -07:00
Hansung Kim
ff4fc66c56 Reformat 2023-10-15 13:36:55 -07:00
Richard Yan
dd194ca61d bump vortex 2023-10-13 15:25:49 -07:00
Richard Yan
8d479438b1 Merge branch 'graphics' of https://github.com/hansungk/rocket-chip into graphics 2023-10-13 14:04:20 -07:00
Richard Yan
dfae96ec9d add wait register 2023-10-13 13:31:14 -07:00
Hansung Kim
b7a7a7a0a7 Bump vortex 2023-10-11 20:32:08 -07:00
Hansung Kim
dab1d907d6 Comment out hartid and fpu from VortexBundle
These are mostly copied from Rocket and we're not sure they're necessary
for Vortex.
2023-10-11 20:29:15 -07:00