Experimental Object FIFO lowering to packet-switched stream connections #1075
AndraBisca
started this conversation in
Ideas
Replies: 1 comment
-
Please feel free to comment with remarks, suggestions or questions! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Context and Motivation
This discussion focuses on the design and implementation of a lowering from Object FIFOs to packet-switched stream connections.
Currently, Object FIFOs lower to circuit-switched stream connections in the AIE architecture. In circuit-switched mode, only one logical stream can be assigned to a stream switch port. This limits compute tile as well as shim tile DMAs to only 2 incoming data streams and 2 outgoing data streams.
Packet-switched connections allow multiple logical streams to be mapped to the same physical wire, and thus support multiple packet-switched stream connections per stream switch port. Each stream is identified using a unique 5-bit stream ID and this same ID is used in the source DMA channels to identify the destination of a packet with
AIE_DMABDPACKETOps
.As each port of the AXI stream switches can be configured to be used either in circuit-switched or packet-switched mode, lowerings to both circuit-switched and packet-switched stream connections should be able to coexist.
First Prototype
As a first prototype, I think we should design an AIEX version of the
AIE_ObjectFifoCreateOp
specifically intended to be lowered in packet-switched mode, along with its associated lowering pass. This will allow us to have a first look at the algorithm as well as do functional testing. In a second phase, we can decide whether this prototype lowering pass should be combined with the existing Object FIFO lowering or left as a standalone (similar to theAIE_FlowOp
andAIE_PacketFlowOp
lowering passes).Note: In the long-term implementation, I don't think it should be known at the Object FIFO abstraction level whether we will be lowering to a circuit or packet switched design, as that choice depends on the amount of stream connections versus the amount of available resources.
This prototype lowering pass should:
AIE_PacketFlowOps
and their unique stream IDs in order to avoid generating duplicate IDs,AIE_PacketFlowOps
with unique IDs from the AIEX version ofAIE_ObjectFifoCreateOps
,AIE_DMABDPACKETOps
using the stream IDs created above.Beta Was this translation helpful? Give feedback.
All reactions