Multicast / Reflective Memory¶
The SISCI API supports setting up Reflective Memory / Multicast transfers.
The Dolphin PCI Express IX, MX and PX product families supports multicast operations as defined by the PCI Express Base Specification 2.1. Dolphin has integrated support for this functionality into the SISCI API specification to make it easily available to application programmers. The multicast functionality is also available with some OEM hardware configurations. (Please check with you hardware vendor if multicast is available for your configuration). SISCI functions will typically return an error if the multicast functionality is not available.
There are no special functions to to set up the Reflective Memory, programmers
just need to use the flag SCI_FLAG_BROADCAST when SCICreateSegment()
and SCIConnectSegment() is called.
For reflective memory operations, the NodeId parameter to
SCIConnectSegment() should be set to DIS_BROADCAST_NODEID_GROUP_ALL
PCI Express based multicast uses the server main memory or a PCI Express device memory (e.g. a FPGA, GPU buffer) as the multicast memory.
PCI Express multicast transfers can be generated by the CPU, a DMA controller or any type of PCIe device that can generate PCIe TLPs.
Please consult the reflective memory white papers available at https://www.dolphinics.com/support/whitepapers.html and example programs found in the software distribution for more information on how to use the reflective memory functionality.