rmNVMe-IP (Random Access & Multi User NVMe IP) : Introduction

rmNVMe-IP (Random Access & Multi User NVMe IP) is very high performance NVMe Host Controller which is highly optimized for high-IOPS random access applications. rmNVMe-IP supports multiple user interfaces, each user can simultaneously read/write to a single NVMe SSD at the same time.

This is the introduction to explain the concept and features of rmNVMe-IP Core.

rmNVMe-IP Core consist of 3 parts

rmNVMe IP core for PCIe Gen4 is the complete, versatile solution that provides many features. It is designed to achieve optimum performance for both random access and multiple users applications with NVMe Gen4 SSD.

rmNVMe-IP for Gen4

Many NVMe-IP products are proposed by Design Gateway to match with various system requirements.

First is the NVMe-IP which is the standard IP that has one user interface and achieve the highest write and read performance by using sequential access.

Second is the raNVMe-IP which has one user interface but supporting for random access.

Third is the muNVMe-IP which has many user interfaces for sequential write and read with high performance.

While the latest IP is rmNVMe-IP which can support both multiple users and random access.

DG NVMe-IP Series

The general system has only one logic block to access the NVMe SSD by Write command or Read command at a time.

As a solution, raNVMe-IP for Gen4 supports multiple write commands or multiple read commands, with a simple user interface and low resource utilization. 

However, some systems require the ability to write and read the SSD simultaneously, for which rmNVMe-IP is the solution. It has separate user interfaces for Write and Read commands, allowing for concurrent data access.

However, rmNVMe-IP requires more resources for both logic and memory, compared to raNVMe-IP.

Both raNVMe-IP and rmNVMe-IP for Gen4 have a fixed data size per command of 4 Kbytes and offer configurable command queue depth to balance performance and resource utilization.

Multiple-user feature

For systems that require multiple-user access to the same SSD at the same time, two IP solutions are proposed: muNVMe-IP and rmNVMe-IP. 

Both IPs have multiple user interfaces and a configurable buffer size to optimize resource usage and performance. 

muNVMe-IP is best suited for systems that require high-speed writing and reading of data with an NVMe SSD. Using large transfer sizes for each write/read command to store data in contiguous areas of the SSD will always result in the best write/read performance for the SSD. 

On the other hand, rmNVMe-IP is best suited for systems that require random access to write and read different types of data stored in different locations on the SSD. The transfer size for each write/read command is fixed at 4 Kbytes. 

Random access feature

As per the rmNVMe-IP specification, the command queue depth can be adjusted by the user to meet desired write/read performance levels. 

The relationship between command queue depth and write/read performance is demonstrated through a graph, utilizing a 1TB Samsung 980 Pro SSD and 4Kbyte command. 

The command queue depth refers to the maximum number of commands that can be simultaneously sent to an NVMe SSD, and can be set anywhere between 1 to 128.

The graph showcases that with the Write command, the write speed increases when the queue depth is increased from 1 to 32, after which the speed remains constant. 

Meanwhile, the Read command consistently shows an increase in read speed as the queue depth increases from 1 to 128. To optimize write performance, a command queue depth of 32 is ideal as it provides maximum performance with minimal resource usage. 

Analysis of Command Queue Depth

The rmNVMe-IP contains the Write and Read buffers to temporarily store data during Write and Read commands, respectively.

The rmNVMe-IP enables individual configuration of the Write and Read command queue depths, offering four options as displayed in the table. 

Increasing the command queue depth increases the buffer size and memory usage. The correlation between command queue depth and write/read performance varies for each NVMe SSD.

Hence, the optimal command queue depth value varies based on the specific characteristics and system requirements of each NVMe SSD. 

Write/Read Command Queue Depth

When operating 4KB random write and read tests using rmNVMe-IP, the results of three SSDs are displayed in a graph.

The graph shows that three SSDs exhibit a constant rate for the Write command while adjusting the Write command queue depth to values of 32, 64, 128, and 256. 

Two SSDs display an increased read speed when the Read command queue depth is set to a larger value. 

However, the Intel P5800X exhibits a constant rate with the highest performance during random access tests of 4 Kbyte size for both write and read operations. 

Performance result of rmNVMe-IP for Gen4

Hope you this part one can help you understand the concept and features of rmNVMe-IP Core.

For more technical detail, please visit our website.


Youtube: https://youtu.be/a9WXdNwHpYE