diff --git a/bs/Bus.bs b/bs/Bus.bs index 5e6ddfe..62d13ac 100644 --- a/bs/Bus.bs +++ b/bs/Bus.bs @@ -27,7 +27,7 @@ dummyRule = data DispatchFromClient inFlightTransactions numServers = DispatchRequest (TaggedBusRequest inFlightTransactions) (MkServerIdx numServers) - | DispatchResponse (TaggedBusResponse inFlightTransactions) + | BypassResponse (TaggedBusResponse inFlightTransactions) deriving (Bits, Eq, FShow) -- we need a way to make serverMap safer... @@ -57,7 +57,7 @@ mkBus serverMap = do -- There are `numServer` servers, each of which needs its own arbiter as -- there are up to `numClient` clients that may wish to submit a response - -- to a given client. + -- to a given server. requestArbiterByServer :: Vector numServers (Arbiter.Arbiter_IFC numClients) requestArbiterByServer <- replicateM (mkArbiter False) @@ -87,9 +87,6 @@ mkBus serverMap = do selectedClientRequestQueue = (select clientRequestQueues clientIdx) in rules - "rule" : when True ==> do - $display "Bus.bs:71" - (sprintf "dispatch client request %d" clientIdx): when True ==> do let clientRequest :: TaggedBusRequest inFlightTransactions @@ -126,13 +123,13 @@ mkBus serverMap = do BusReadRequest _ -> BusReadResponse (Left UnMapped) BusWriteRequest _ -> BusWriteResponse (Left UnMapped) response :: TaggedBusResponse inFlightTransactions - response = TaggedBusResponse { - tag = clientRequest.tag; + response = TaggedBusResponse { + tag = clientRequest.tag; busResponse = responseUnMapped } clientResponseArbiterSlot.request - dispatchByClientWire := DispatchResponse response + dispatchByClientWire := BypassResponse response addRules |> foldr (<+>) (rules {}) clientRules @@ -163,6 +160,7 @@ mkBus serverMap = do let busResponse :: (TaggedBusResponse inFlightTransactions) busResponse = selectedClientResponseQueue.first + selectedTagEngine.retireTag busResponse.tag selectedClientResponseQueue.deq return busResponse diff --git a/diagrams/bus.drawio b/diagrams/bus.drawio index fb90bc2..442e443 100644 --- a/diagrams/bus.drawio +++ b/diagrams/bus.drawio @@ -1,399 +1,422 @@ - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - + - - - - - - - - - - - - - - + + - - - - - - - + - - + + - + - - + + + - + + + + + + + - - + + - + + + + + + + + + + + + + - - + + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - + + + + - - + + - + - - + + - - + + - - - - - - - - - - - - - - + + + - - + + - - - - + + + + - - + + - - - - + + + + - - + + - + + + + + + + + + + + + - - - - - - - - - - - - + - - + + - - - - + + + + - + + - - - - + + + + - - + - + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + +