High Performance Embedded Host NVMe


IP-Maker is an active contributor to the NVMe specification and also provides the NVMe device controller for data storage applications, such as NVMe SSD and NVMe NVRAM.


The IPM Host NVMe is a verilog IP to be integrated in a FPGA. It fully manages the NVMe protocol on the host side without requiring any CPU. It can be used with any NVMe SSD available on the market, or with a custom design based on the NVMe Device IP from IP-Maker. The Host NVMe is well suited for embedded applications requiring a high throughput storage such as recorder and video applications. 1+ million IOPS performance requires the use of an expensive CPU, which is not feasible in an embedded system due to cost, space and power limitation.

Using the pre-validated NVMe Host IP core greatly reduces timeto-market for storage OEM; this allows the OEM to benefit from a powerful data transfer manager. The IP-Maker Host NVMe IP core is full featured and easy to use in FPGA designs.


The architecture of the Host NVM Express IP is based on 4 main blocks:
It delivers very low latency since it is a full hardware host NVMe implementation. That takes only few dozens of clock cycles (compared to multiple thousands of clock cycles for a software NVMe driver on a CPU). In addition, there is no needs of PCIe interrupt management because it is directly processed by the Host NVMe manager, therefore avoiding context switches.

Reference design

The NVMe Host IP is available for evaluation and demo using a reference design based on a Xilinx Ultrascale FPGA board attached to a Samsung M.2 NVMe SSD. It embeds a testbench allowing to configure the IO access : IO size, random/sequential, read/write… Performance results: it reaches up to 3,4GB/s, which is the limitation of the SSD used (Gen3x4 NVMe SSD specification max = 3,4GB/s).