Skip to content

Commit 8698533

Browse files
committed
doc(hw): Update ID handling
1 parent 097d2a7 commit 8698533

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

docs/hw/chimneys.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,13 @@ Source-based routing is handled a bit different, since the route instead of the
4343

4444
### AXI Transaction ID handling
4545

46+
In order to guarantee the correct ordering of AXI transactions, _FlooNoC_ does some special handling of the AXI `txnID` in the following ways:
47+
48+
* The `txnID` is part of the payload of a flit and is not used by the routers to implement any kind of ordering. This also means that inside the NoC, there might be multiple AXI transactions from different managers in flight, which might have the same `txnID`, but are not ordered with respect to each other.
49+
50+
* When transactions exit the NoC over a network interface, the transactions are serialized to the AXI network downstream by remapping the original `txnID` to `'1`. The main reason behind this approach, is that the network interface needs to store the `src_id`'s for the resulting response. The `src_id` of a request is stored in a FIFO, meaning the requests and the responses need have the same order. The serialization should not cause any big performance problems if the downstream AXI subordinates cannot handle out-of-order transactions. Alternatively, the _FlooNoC_ network interfaces also have the option to generate downstream requests with different `txnID`'s by setting the `ChimneyCfg.MaxUniqueIds` to a value higher than `1`. This comes at a higher cost, since the `src_id` and additional information need to be stored in an ID queue, that allows out-of-order access.
51+
52+
* Atomic Transactions are issued with `txnID` that are unique amongst all AXI transactions in flight. The number of atomic transactions in flight can be configured with the `MaxAtomicTxns` parameter. Atomic transactions are then issued with `txnID` in the range `[0, '1)`. This also means that the number of outstanding atomic transaction is limited by the ID width.
53+
4654
### Configuration
4755
* spill registers

0 commit comments

Comments
 (0)