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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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_ObjectFifoCreateOpspecifically 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_FlowOpandAIE_PacketFlowOplowering 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_PacketFlowOpsand their unique stream IDs in order to avoid generating duplicate IDs,AIE_PacketFlowOpswith unique IDs from the AIEX version ofAIE_ObjectFifoCreateOps,AIE_DMABDPACKETOpsusing the stream IDs created above.Beta Was this translation helpful? Give feedback.
All reactions