openHMC - a configurable open-source hybrid memory cube controller

The link between the processor and memory is one of the last remaining parallel buses and a major performance bottleneck in computer systems. The Hybrid Memory Cube (HMC) was developed with the goal of helping overcome this 'memory wall'. In contrast to DDRx memory interfaces, the HMC host interface is serial and packetized. This paper presents a vendor-agnostic, open-source implementation of an HMC host controller that can be configured for different datapath widths and HMC link variations. Due to its modular design, the controller can be integrated in many different system environments. In-system verification was performed using a Xilinx Ultrascale VU095 FPGA. Overall, the presented controller is a mature, freely available solution for experimenting with the HMC and evaluating its capabilities.