The total combined latency for the HMC controller can range from 100ns to 700ns for both the RX and TX sides in a round-trip transaction. The amount of latency depends on how the controller is configured and the features that are used. For example, if using the multiport interface, the controller creates well-formed packets according to the HMC protocol, reducing latency. The 512-bit AXI interface has read data reordering built in so read data is always returned to the user in the order requested, resulting in some packets having more latency.
The link retry feature can also contribute to the controller’s latency, bringing it up to ~300ns. This feature requires the controller to perform a complete cyclic redundancy check (CRC) on all incoming data before it is delivered. Without performing this feature, the controller latency will be at ~140ns to as low as ~100ns. Here are a few reasons to turn off the CRC checks on incoming data prior to delivery:
If you have an application architecture (sitting on top of the controller) that enables the error to be resolved downstream. In other words, the controller can do CRCs in parallel to the data being delivered by triggering an error flag that can be addressed within the application architecture itself. In this case, the controller does not have to gate data until you are certain that it is received.
If you have hardware that is designed with enough margin that you can turn retry features off or only keep on the feature that activates an error flag but doesn’t retrain the link.
NOTE: In the rare event of a retry, a long tail is added to the 300ns latency.