Commit Graph

165 Commits

Author SHA1 Message Date
Hansung Kim
16c8eb2ada Fix old request not being invalidated; end-to-end flow working 2023-04-27 21:54:02 -07:00
Hansung Kim
b5b1a7da66 Add uncoalescer test case for all-lane-same-offset case 2023-04-27 21:53:36 -07:00
Hansung Kim
edc05d51e6 Fix not respecting invalidate.valid from coalescer 2023-04-27 21:35:26 -07:00
Hansung Kim
7f821a66f5 First attempt at hooking up coalescer to uncoalescer 2023-04-27 21:19:56 -07:00
Hansung Kim
dfdd4f8342 Redundant call syntax 2023-04-27 20:36:04 -07:00
Hansung Kim
699520073e Make maxSize accessor function 2023-04-27 20:34:20 -07:00
Hansung Kim
ba2bc3020b Fix truncation bug in matchCount 2023-04-27 20:24:15 -07:00
Hansung Kim
84ac332637 Add chiseltest for stride = 0 2023-04-27 19:51:17 -07:00
Hansung Kim
7780250c7a More comments & renames 2023-04-27 19:17:07 -07:00
Richard Yan
900f5adb20 running coalescing flow 2023-04-26 01:23:21 -07:00
Hansung Kim
4c1ae1cb3d More debug prints 2023-04-25 19:15:28 -07:00
Hansung Kim
ef25c8a3f0 Fix matchCount having bit width of 1 for spatial-only 2023-04-25 18:46:26 -07:00
Hansung Kim
2090b8703e Rename params 2023-04-25 17:16:28 -07:00
Hansung Kim
33f7adb5eb Make separate param for response depth queue
This is not necessarily the same as NUM_NEW_IDS, the latter determines
the inflight coalescing table size but not the response queues.
2023-04-25 17:09:46 -07:00
Hansung Kim
980c77a8fa Renames 2023-04-25 16:55:59 -07:00
Hansung Kim
9000577f45 Add assertions for queue drift 2023-04-25 14:36:52 -07:00
Richard Yan
99348e1e40 mostly running coalescing test 2023-04-25 02:50:14 -07:00
Richard Yan
3a0fdb2c67 WIP diplomacy set up for coal unit test 2023-04-25 02:26:13 -07:00
Richard Yan
be40c77d06 merge graphics 2023-04-25 00:10:51 -07:00
Richard Yan
37620400db WIP coalescing flow test 2023-04-25 00:09:23 -07:00
Hansung Kim
31e04e9402 Fix CoalShiftQueue invalidate logic
IO type change to Valid[UInt] was not reflected in the valid bit logic.
2023-04-24 14:01:39 -07:00
Hansung Kim
7539c39c45 Store SizeEnum in entry instead of UInt 2023-04-23 22:34:19 -07:00
Richard Yan
5d105b36c5 Merge branch 'richard-dev' into graphics 2023-04-23 21:34:52 -07:00
Richard Yan
a872856263 quick coalescer connection fix 2023-04-23 21:31:25 -07:00
Richard Yan
7663a03a8c coalescer implementation passing compilation 2023-04-23 21:29:07 -07:00
Hansung Kim
c21a196907 scalafmt 2023-04-23 20:56:55 -07:00
Richard Yan
647d7b8628 WIP multi-coalescer 2023-04-23 20:31:54 -07:00
Richard Yan
bac8916ba1 mono coalescer implementation 2023-04-23 15:55:46 -07:00
Hansung Kim
0f2e4ee8aa Store UInt instead of ChiselEnum in entry; pass tests
Scala isn't happy with storing ChiselEnum type for some reason
2023-04-23 15:28:12 -07:00
Hansung Kim
8cee61a591 Uncoalesce using table size enum 2023-04-23 14:42:10 -07:00
Hansung Kim
ccf9b95fb5 Create custom response bundle to decouple from TileLink
... and easier unit testing.
2023-04-23 13:37:10 -07:00
Hansung Kim
4d16ec9b08 Allow trace driver to make double-word reqs
This is mostly for testing purposes.
2023-04-23 12:24:26 -07:00
Hansung Kim
a7baf57e49 Left out fix 2023-04-23 12:09:47 -07:00
Hansung Kim
a71c0aed73 Don't set default filename in class initializers 2023-04-23 12:07:52 -07:00
Hansung Kim
b6115cc394 Fix generating PutPartialData from toTLA
Including mask in the argument calls the method override that generates
PutPartialData.
2023-04-23 11:53:42 -07:00
Hansung Kim
0c0a8ec553 SimMemTraceLogger: store handle in class 2023-04-23 11:27:06 -07:00
Richard Yan
a84757f8f8 restructure parameters into config object && cleanup 2023-04-23 03:09:20 -07:00
Richard Yan
d28216182c merge graphics 2023-04-23 00:54:24 -07:00
Richard Yan
684f732a9a it compiles (& coal gen reorg) 2023-04-23 00:41:35 -07:00
Hansung Kim
2a82e8d119 Fix TL data mask stencil logic in MemTraceLogger 2023-04-23 00:39:59 -07:00
Hansung Kim
6cd27faed2 Respect old req size in uncoalescer 2023-04-22 23:04:47 -07:00
Richard Yan
85e3a6a940 somehow merged 2023-04-22 21:56:57 -07:00
Richard Yan
b895d304bb pre-merge 2023-04-22 21:28:38 -07:00
Hansung Kim
90a797e71a Make MemTraceDriver generate word-sized requests
Try to model the core's behavior which accesses cache in word granularity.  This
also simplifies the coalescer design as coalescer no longer needs to uncoalesce
response data chunk into single bytes (and therefore fewer muxes).
2023-04-22 21:04:45 -07:00
Hansung Kim
c5d722112b Make word size global object 2023-04-22 14:58:02 -07:00
Hansung Kim
8a7e6f1391 Replace hardcoded trace widths with proper params 2023-04-21 18:20:16 -07:00
Hansung Kim
bbe62a8583 Properly count per-lane req/resps 2023-04-21 17:24:43 -07:00
Hansung Kim
db06bda674 Count req/resp lines and bytes to coalescer and test match
Note total bytes in requests and responses (i.e. traffic) don't
need to match because of redundant requests to the same address may get
coalesced.
2023-04-21 16:49:19 -07:00
Hansung Kim
3ba566b9f7 Give slack time after trace EOF before sim termination
... so that we make sure to receive all outstanding responses.
This fixes the response traces being truncated too early.
2023-04-21 16:27:20 -07:00
Hansung Kim
3f9f7a1d67 Generate proper AccessAck/AccessAckData from response queue 2023-04-21 16:14:52 -07:00