5.4.5. Bonding of Memory Controllers
Bonding can be applied to asymetric controllers, and allows controllers to have different memory clocks. Bonding does not attempt to synchronize the controllers. Bonding supports only one port. The Avalon port width can be varied from 64-bit to 256-bit; 32-bit port width is not supported.
The following signals require bonding circuitry:
Read data return—This bonding allows read data from the two controllers to return with effectively one ready signal to the bus master that initiated the bus transaction.
Write ready—For Avalon-MM, this is effectively bonding on the waitrequest signal.
Write acknowledge—Synchronization on returning the write completed signal.
For each of the above implementations, data is returned in order, hence the circuitry must match up for each valid cycle.
Bonded FIFO buffers must have identical FIFO numbers; that is, read FIFO 1 on controller 1 must be paired with Read FIFO 1 on controller 2.
Data Return Bonding
Long loop times can lead to communications problems when using bonded controllers. The following effects are possible when using bonded controllers:
- If one memory controller completes its transaction and receives new data before the other controller, then the second controller can send data as soon as it arrives, and before the first controller acknowledges that the second controller has data.
- If the first controller has a single word in its FIFO buffer and the second controller receives single-word transactions, the second controller must determine whether the second word is a valid signal or not.
To accommodate the above effects, the hard controller maintains two counters for each bonded pair of FIFO buffers and implements logic that monitors those counters to ensure that the bonded controllers receive the same data on the same cycle, and that they send the data out on the same cycle.
FIFO ready bonding is used for write command and write data buses. The implementation is similar to the data return bonding.
Bonding Latency Impact
Bonding has no latency impact on ports that are not bonded.
Bonding Controller Usage
Arria V and Cyclone V devices employ three shared bonding controllers to manage the read data return bonding, write acknowledge bonding, and command/write data ready bonding.
The three bonding controllers require three pairs of bonding I/Os, each based on a six port count; this means that a bonded hard memory controller requires 21 input signals and 21 output signals for its connection to the fabric, and another 21 input signals and 21 output signals to the paired hard memory controller.
Bonding Configurations and Parameter Requirements
Intel has verified hard memory controller bonding between two interfaces with the following configuration:
- Same clock source
- Same memory clock frequency
- Same memory parameters and timings (except interface width)
- Same controller settings.
- Same port width in MPFE settings
Bonding supports only one port. The Avalon port width can be varied from 64-bits to 256-bits; a 32-bit port width is not supported.
Did you find the information on this page useful?