It is important to understand the raw throughput of the HBM stacks and how you must design the user logic to match this data rate. Each HBM stack has eight channels, with each channel having a dedicated controller. Each controller operates in pseudo channel mode. Each pseudo channel is 64 bits wide, and the data bits toggle at twice the HBM clock rate set in the IP configuration.
If the HBM IP is configured with a 1600 MHz clock rate, you can determine the toggle rate for a single HBM stack using the following formula:
This results in 3,276,800 Mb per second per stack, or 409,600 MB per second per stack. Double this value to 819,200 MB per second for a dual stack device.
Each pseudo channel provides up to 25.6 GB/s of bandwidth using the following equation:
From the user logic perspective, the maximum throughput of each physical link through the NoC is limited to 17.28 GB/s for reads and somewhat less for writes. Therefore, it is necessary in some cases to use both ports of each pseudo channel to achieve the maximum available bandwidth. Refer to Physical Link (Raw) Bandwidth to understand more about this.
There are 32 HBM_NMUs providing direct access to an HBM stack, with each port being 256 bits wide. HBM bandwidth saturates when HBM_NMUs operate at 400 MHz. Each port has access to the entire HBM stack volume via the HNoC. The following formula gives the throughput of all the HBM_NMU ports:
This results in 409,600 MB/s per stack and 819,200 MB/s for two stacks.