Each AIE-ML v2 tile has an AXI4-Stream interconnect (alternatively called a stream switch) that is a fully programmable, a 64-bit AXI4-Stream crossbar, and is statically configured through the memory-mapped AXI4 interconnect. It handles backpressure and is capable of the full bandwidth on the AXI4-Stream. The AXI4-Stream interconnect has the following properties:
- All elements of the switch data-path are 64-bit, which supports the transport of two 32-bit-words in parallel per cycle.
- A
TKEEPsignal is added to support transfer of an odd number of 32-bit-words. - Stream parity is calculated on the 32-bit word and two parity bits transported with the data.
- All external south, west, north, east, and stream-FIFO ports are capable of full throughput of 64-bit per cycle.
- Sources and destinations of DMA which can run at full throughput of 64-bit per cycle.
- Core, trace, and control-packet blocks have a 32-bit stream interface, so an adapter is placed for 32 <-> 64-bit conversion.
The tile ports are split into external ports and local ports. The external
ports are south, west, north, and east. The local ports are core, DMA, FIFO, and trace.
In the following description, a double-word refers to two adjacent 32-bit words on the
stream, and in the case of TLAST=1 and TKEEP=0, a double-word refers to 32-bit word and the
adjacent null-word.
- External and local slave ports have two cycles of latency and four double-words of buffering.
- Local master ports have one cycle of latency and two double-words of buffering.
Therefore, excluding packet switch arbitration overhead, the latency and buffering crossing the switch is external to external.
- Local slave to local master: three cycles of latency, six double-words of buffering
- Local slave to external master: four cycles of latency, eight double-words of buffering
- External slave to local master: three cycles of latency, six double-words of buffering
- External to external: four cycles of latency, eight double-words of buffering
The stream switch contains one 16-deep, 68-bit (64-bit data + 2-bit parity +
1-bit TLAST + 1-bit TKEEP) wide FIFO. Each stream port operates in either circuit-switched or
packet-switched mode, selected by a packet-switching bit in the port’s configuration
register. A port cannot use both modes at the same time. In packet-switched mode,
multiple logical streams can share the same physical port and wires.
| Connection Type | Number of Connections | Data Width (Bits) | Clock Domain (1 GHz) | Bandwidth per Connection (GB/s) | Aggregate Bandwidth (GB/s) |
|---|---|---|---|---|---|
| To North/From South | 6 | 64 | AIE-ML v2 array clock | 8 | 48 |
| To South/From North | 4 | 64 | AIE-ML v2 array clock | 8 | 32 |
| To West/From East | 4 | 64 | AIE-ML v2 array clock | 8 | 32 |
| To East/From West | 4 | 64 | AIE-ML v2 array clock | 8 | 32 |
A circuit-switched stream has a one-to-one or one-to-many topology: a single source port feeds one or more destination ports, and all data entering the source is broadcast to all configured destinations. Latency is deterministic. When bandwidth is constrained, built-in backpressure throttles the source, which reduces overall performance.
Packet-switched streams can share ports with other packet-switched streams, which introduces potential resource contention and therefore non-deterministic latency. Each packet-switched stream uses a 5-bit stream ID that must be unique among streams sharing the same ports; this ID determines the packet’s destination(s). Packet switching supports flexible topologies, enabling any combination of single or multiple manager and subordinate ports within a stream.
A packet-switched packet has:
- Packet header
- Routing and control information for the packet
- Data
- Actual data in the packet
- TLAST
- Last word in the packet must have
TLASTasserted to mark the end of packet
| Odd Parity | 3'b000 | Source Column | Source Row | 1'b0 | Packet Type | 7'b0000000 | Stream ID | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| [31] | [30:28] | [27:21] | [20:16] | [15] | [14:12] | [11:5] | [4:0] | ||||||||||||||||||||||||