NVMe IP Core DDR Reference design for sustained data rate application
SSD performance claim is mostly under best condition such as SSD Cache is activated. There is no warranty that SSD can support consistent speed for entire write/read operation. To achieve high speed sustained data rate recording or reading with NVMe SSD, an amount of Data buffer is required to absorb SSD’s non-consistent characteristic.
Our NVMe IP core DDR reference design utilizes external DDR memory as a big data buffer to achieve sustained data rate requirement.
This blog will discuss the following topics
- The true about NVMe SSD performance
- Why DDR memory is required for sustained data rate application?
- NVMe IP Core DDR reference design demo & performance result
To understand the true about NVMe SSD performance. For example, Samsung 980 PRO SSD which is claimed sequential write performance is up to 5,100MB/s. You must read the entire asterisk carefully.
For most NVMe SSD, the maximum performance is possible when CACHE is activated. Which is “Intelligent TurboWrite” cache technology for Samsung 980 PRO case. So, what is the true performance without CACHE or when CACHE is full?
The easiest way to know true performance of the NVMe SSD is checking from well-known performance review website such as Tom’s hardware.
Here you can see the sequential write performance of various NVMe SSD. Especially, Samsung 980 PRO, you can see how write speed drop significantly after Intelligent TurboWrite CACHE is not activated or CACHE FULL.
Also, during full disk writing, you can see that write speed some higher or lower than average speed. There is only 2 SSD model in this test, Intel Optane 905P and Samsung 970 PRO SSD, that shown stable and consistent sequential write speed for entire disk. Which means that both SSD implement fast flash memory technology on entire disk, not just only CACHE region.
You can see that for full disk writing, Intel Optane 905P SSD can provide higher performance and more stable write speed.
Anyway, there is no guarantee that write speed on Intel Optane SSD or any others SSD will not drop during write operation.
So, If you application required sustained data rate writing to NVMe SSD, such as recording from constant data rate Analog-to-Digital converter or High definition Camera Image sensors, What’s kind of system architecture is suitable to handle this kind of SSD characteristics.
A normal NVMe-IP core has a simple configuration that uses the FPGA internal memory. However, due to the characteristics of NVMe SSD, if the SSD cache becomes full beyond a certain amount of data transfer, the transfer performance will drop.
The NVMe-IP with DDR reference design use external DDR memory to absorb SSD’s unstable characteristics during operation. Allows to transfer data at a stable or sustained transfer rate. The very high speed transferring logic uses an external DDR memory to be a big data buffer instead of a small FIFO by internal FPGA memory.
In our DDR reference design, User can check and adjust the DDR buffer size usage in the system. Therefore, user can know the requirement of the buffer size that matches with each speed.
Here is the performance evaluation of the NVMe-IP core DDR reference design. For demo setup, the Design Gateway AB18-PCIeX16 adapter is connected to the Xilinx KCU105 FPGA board and connect the NVMe SSD. You can check the SSD connection with the identify device command. This demo uses a Intel 900P SSD.
The write SSD command inputs the start sector, data size, pattern, the write speed to the SSD, and select DDR size.
Here, 280GB data is written by the LFSR pattern. The transfer data size is displayed every second. When the write is completed, the transfer data size, execution time, write speed, and maximum DDR usage are displayed. At write speed 2285 MB/s, Intel 900P needs DDR size about 434 MB.
Now we reduces speed to 1500 MB, the DDR usage is reduced to 371 KBs.
We show the summary result on Intel 900P. When writing at 1000 MB/s, it uses 152 KB buffer. If increasing write speed to 1500 MB/s, the buffer will increase to 371 KBs. And if we increase to 2285 MB/s, the buffer requirement is 434 MBs.
So, external DDR memory as big data buffer is required for very high sustained data rate application.
One of the example application is 4K ultra HD video recording at 120 FPS. This application requires about 2800 MBs/s at sustain data rate which can be implemented based on our NVMe-IP Core DDR reference design.