Commit Graph
100 Commits
Author SHA1 Message Date
Henry Cook c292a07ace Bugfix for merged voluntary releases in L2Cache.
Track pending release beats for voluntary releases that are merged by Acquire Trackers.
Closes #23 and #24.
2016-04-01 19:57:47 -07:00
Henry CookandAndrew Waterman 82bdf3afcb Fix LRSC starvation bug by punching Finish messages out to caching clients via a new TileLinkNetworkPort. 2016-04-01 16:17:27 -07:00
Henry Cook c13b8d243d BroadcastHub race on allocating VolWBs vs Acquires 2016-03-17 18:32:35 -07:00
Henry Cook 5f3d3a0b2d Bugfix for probe flags in L2BroadcastHub
Closes #25
2016-03-17 16:42:40 -07:00
Henry Cook 49d82864bf Fix StoreDataQueue allocation bug in BroadcastHub
Closes #27
2016-03-17 12:31:18 -07:00
Henry Cook 67e711844a index extraction bug 2016-03-10 17:37:40 -08:00
Henry Cook 93773a4496 Refactor L2 transaction trackers to each be capable of processing Voluntary Writebacks.
To elide several races between reading and writing the metadata array for different types of transactions, all L2XactTrackers can now sink Voluntary Releases (writebacks from the L1 in the current implementation). These writebacks are merged with the ongoing transaction, and the merging tracker supplies an acknowledgment of the writeback in addition to its ongoing activities. This change involved another refactoring of the control logic for allocating new trackers and routing incoming Acquires and Releases. BroadcastHub uses the new routing logic, but still processes all voluntary releases through the VoluntaryReleaseTracker (not a problem because there are no metadata update races).

Closes #18
Closes #20
2016-03-10 17:14:34 -08:00
Henry Cook 7eef3393f1 fix bug resulting in different g_types on tail beats in L2CacheBank.io.inner.grant 2016-03-02 14:11:45 -08:00
Henry Cook 57370bdf49 first and last on HasTileLinkData 2016-03-02 14:11:39 -08:00
Henry CookandHoward Mao 929d8e31f7 refactor ready/valid logic for routing release messages in the l2 2016-02-19 16:30:26 -08:00
Henry Cook 2b977325e3 Make prefetch type available in a_type, issue probeInvalidates for putPrefetches 2015-11-16 23:26:13 -08:00
Henry Cook 0290635454 amo_shift_bits -> amo_shift_bytes 2015-11-16 19:07:58 -08:00
Henry Cook 64aaf71b06 L2AcquireTracker refactor to support merging Gets and Puts into Prefetches of the correct type.
Transaction metadata for primary and seconday misses now stored in the secondary miss queue.

Added BuiltInAcquireBuilder factory.
2015-11-16 18:10:09 -08:00
Henry Cook 03fa06e6e7 fix prefetch lockup on L2 hit 2015-11-15 12:51:34 -08:00
Henry Cook e3efc09b5b remove unnecessary UInt encode/decode on releaseMatches path 2015-11-05 17:20:03 -08:00
Henry Cook 3698153535 OHToUInt instead of PriorityEncoder on Acq/RelMatches signals in L2Bank 2015-11-03 14:31:35 -08:00
Henry Cook f8594da1d3 depend on external cde library 2015-10-21 18:17:17 -07:00
Henry Cook 4389b9edb0 tilelink parameter tweak: addrBits now a constant 2015-10-20 15:00:30 -07:00
Henry Cook d391f97953 Minor refactor of StoreGen/AMOALU. Bugfix for 32b ops in L2's AMOALU. 2015-10-16 19:11:06 -07:00
Henry Cook e1f573918d simplify TileLinkParameters with Option 2015-10-16 18:24:38 -07:00
Henry Cook 7fa3eb95e3 refactor tilelink params 2015-10-14 12:13:37 -07:00
Henry Cook 66ea39638e GlobalAddrMap 2015-10-14 00:23:28 -07:00
Henry Cook 31be6407ec Removed all traces of params 2015-10-14 00:23:28 -07:00
Henry Cook 908922c1a4 refactor NASTI to not use param 2015-10-14 00:23:28 -07:00
Henry Cook 005752e2a6 use the parameters used to create the original object 2015-08-10 14:43:17 -07:00
Henry Cook c70b495f6d moved buses to junctions repo 2015-07-29 18:04:30 -07:00
Henry Cook 8b1ab23347 update README.md 2015-07-29 11:49:21 -07:00
Henry Cook 4daa20b5fe simplify .sbt files 2015-07-29 11:49:20 -07:00
Henry Cook fb91e3e1ab minor metadata API update (0.3.3) 2015-07-09 14:36:09 -07:00
Henry Cook d7cb60e8fa L2 WritebackUnit bug fix 2015-07-02 13:52:40 -07:00
Henry Cook f3a838cedf nasti converters, hub bugfix 2015-05-21 19:49:17 -07:00
Henry Cook c202449e34 first version NASTI IOs 2015-05-14 15:29:49 -07:00
Henry Cook 90c9ee7b04 fix unalloc putblocks 2015-05-14 12:37:35 -07:00
Henry Cook a7fa77c7fc track operand size for Gets 2015-05-13 23:28:18 -07:00
Henry Cook 172c372d3e L2 alloc cleanup 2015-05-12 17:14:06 -07:00
Henry Cook 5fdae2cb61 Merge branch 'master' of github.com:ucb-bar/uncore 2015-05-07 16:18:23 -07:00
Henry Cook fc883b5049 rm index.html 2015-05-07 16:17:40 -07:00
Henry Cook 8362eba00f Merge branch 'gh-pages' 2015-05-07 16:16:13 -07:00
Henry Cook aec24cf1a7 readme 2015-05-07 16:16:07 -07:00
Henry Cook 90ced93eeb Merge branch 'master' into gh-pages 2015-05-07 12:35:14 -07:00
Henry Cook 4cef8c9cd4 Added MemIOArbiter 2015-05-07 10:55:38 -07:00
Henry Cook 8832b454ce add plugins to make scala doc site and publish to ghpages 2015-04-29 15:34:56 -07:00
Henry Cook 1e05fc0525 First pages commit 2015-04-29 13:18:26 -07:00
Henry Cook 3673295d03 network shim cleanup 2015-04-27 16:59:30 -07:00
Henry Cook 09e30041ed Voluntary Writeback tracker rewrite 2015-04-27 12:56:33 -07:00
Henry Cook 11b5222d01 Refactored WritebackUnit 2015-04-21 22:23:04 -07:00
Henry Cook 4c7969b2b3 Metadata docs and api cleanup 2015-04-20 16:32:09 -07:00
Henry Cook f66a9fd7a6 simplify ClientMetadata.makeRelease 2015-04-20 10:46:02 -07:00
Henry Cook 6d40a61060 TileLink scala doc and parameter renaming 2015-04-19 22:06:44 -07:00
Henry Cook ba7a8b1752 TileLink refactor; TileLinkPorts now available. L2Banks no longer have unique ids (suitable for hierarhical P&R). 2015-04-17 16:55:20 -07:00
Henry Cook ce3271aef2 refactor LNClients and LNManagers 2015-04-15 15:48:36 -07:00
Henry Cook 90f800d87d Grant bugfixes and more comments 2015-04-13 15:57:06 -07:00
Henry Cook 3cf1778c92 moved ecc lib to uncore, l2 checks for partial write masks when ecc is enabled 2015-04-06 12:22:23 -07:00
Henry Cook 9708d25dff Restructure L2 state machine and utilize HeaderlessTileLinkIO 2015-04-06 12:19:51 -07:00
Henry Cook ced627f00a slight mod to pending_puts
cleaner state transition logic
2015-04-01 15:24:53 -07:00
Henry Cook 8959b2e81a TileLinkEnqueuer 2015-03-26 13:29:52 -07:00
Henry Cook b7af610569 broadcast hub bugfix 2015-03-26 11:29:04 -07:00
Henry Cook 4176edaa34 clean up tracker allocation 2015-03-26 10:17:51 -07:00
Henry Cook db5511300d Merge branch 'l2-subblock-merging' 2015-03-18 23:52:06 -07:00
Henry Cook 3cf033180f pending read fix 2015-03-18 22:41:09 -07:00
Henry Cook 004ad11af6 cleanup pending signals 2015-03-18 22:14:41 -07:00
Henry Cook 002851f836 disentangle is_hit logic 2015-03-18 21:11:40 -07:00
Henry Cook b92ea60891 you can 'hit' with putblocks even when the tag doesn't match but you still better writeback 2015-03-18 19:32:46 -07:00
Henry Cook fb8071c12d generous hit detection on PutBlocks 2015-03-18 18:49:32 -07:00
Henry Cook 19059bf0eb put data can be used for ignts 2015-03-18 18:28:03 -07:00
Henry Cook 1ff184bf62 first cut at optimized state transitions 2015-03-18 17:55:05 -07:00
Henry Cook e325399c87 Re-split mem resp tag and data queues 2015-03-18 12:49:53 -07:00
Henry Cook 42aa4aa8ca Secondary miss param 2015-03-17 22:53:50 -07:00
Henry Cook b364d387de Merge branch 'l2-subblock-merging' of github.com:ucb-bar/uncore into l2-subblock-merging 2015-03-17 22:46:54 -07:00
Henry Cook 825c4b2850 make ignts more eager 2015-03-17 22:44:53 -07:00
Henry Cook 0e4cf74d8a always merge Puts 2015-03-17 20:53:27 -07:00
Henry Cook d48775eecb cleanup outdated comments 2015-03-17 20:31:23 -07:00
Henry Cook 638bace858 avoid reading data when write mask is full 2015-03-17 20:28:21 -07:00
Henry Cook b9591b297c added s_wait_puts to L2AcquireTracker 2015-03-17 20:28:21 -07:00
Henry Cook 2d3f947a9c cleaned up finish counter 2015-03-17 20:28:21 -07:00
Henry Cook b08dced37c first cut at pending scoreboarding 2015-03-17 17:51:00 -07:00
Henry Cook fc0ae81a97 added finish counter 2015-03-17 15:04:30 -07:00
Henry Cook d774afaf73 Merge branch 'l2-subblock-merging' of github.com:ucb-bar/uncore into l2-subblock-merging 2015-03-17 13:10:42 -07:00
Henry Cook 5c2461c743 merge data wmask bugfix 2015-03-17 13:09:47 -07:00
Henry Cook dc88614094 overlapping read/resps in l2 fix 2015-03-17 13:09:47 -07:00
Henry Cook 730a13abf2 pending read fix 2015-03-17 13:09:46 -07:00
Henry Cook 23f8033df5 turn off self probes again 2015-03-17 13:09:46 -07:00
Henry Cook d9598d26f2 fix assert 2015-03-17 13:09:46 -07:00
Henry Cook 6d565d22e3 clean up acquire alloc in hub 2015-03-17 13:09:45 -07:00
Henry Cook 3f070eee1f first cut of merging puts/gets 2015-03-17 13:09:44 -07:00
Henry Cook 6af48e168a cleanup mergeData buffer 2015-03-17 13:08:14 -07:00
Henry Cook 9bedde9a8a re-merge mem resp queues 2015-03-17 12:22:57 -07:00
Henry Cook 1471d9debc fix assert 2015-03-17 05:40:05 -07:00
Henry Cook ce9d4b6e70 further amo cleanups 2015-03-17 05:37:41 -07:00
Henry Cook 257dcedcb3 merge data wmask bugfix 2015-03-17 04:58:54 -07:00
Henry Cook fd8f6ff026 overlapping read/resps in l2 fix 2015-03-17 02:10:30 -07:00
Henry Cook 2d33dd8e6e pending read fix 2015-03-17 01:17:44 -07:00
Henry Cook b21fcdfbe0 turn off self probes again 2015-03-17 00:24:59 -07:00
Henry Cook 672fbb574f fix assert 2015-03-17 00:23:35 -07:00
Henry Cook 40a5059cee clean up acquire alloc in hub 2015-03-17 00:23:11 -07:00
Henry Cook f6fe037e30 first cut of merging puts/gets 2015-03-16 23:41:56 -07:00
Henry Cook 36fc67dc7c cleanup mergeData buffer 2015-03-16 22:43:36 -07:00
Henry Cook cf1df2d72a further amo cleanups 2015-03-16 13:27:05 -07:00
Henry Cook f35a6a574f Add a queue on released data coming in to L2 2015-03-16 13:25:01 -07:00
Henry Cook b72230a9f0 PutBlock bugfix 2015-03-16 00:09:55 -07:00