4-Ch NVMe-IP (Gen4) RAID0 Demo Instruction

Rev1.1 15-Aug-23

1    Overview. 2

2    Test Menu. 3

2.1    Identify Command. 3

2.2    Write Command. 4

2.3    Read Command. 7

2.4    SMART Command. 9

2.5    Flush Command. 11

2.6    Shutdown Command. 11

3    Revision History. 12

 

 

1       Overview

 

This document describes the instruction to run 4-ch RAID0 demo by using four NVMe-IPs (Gen4). The demo is run on FPGA development board for accessing four NVMe Gen4 SSDs as RAID0. The demo is designed to run Identify, Write, Read, SMART, Flush, and Shutdown command. User controls test operation via FPGA console.

 

To setup the test environment, please follow “dg_nvme_raid0_fpgasetup” document.

 

 

Figure 11 4-ch NVMe-IP (Gen4) RAID0 demo main menu

 

 

After finishing the setup, welcome screen shows IP name and IP version number are displayed. After the system completes initialization process, the PCIe speed and number of PCIe lanes are displayed in the next message. Finally, the test menu in the demo is displayed for selecting test operation.

 

 

2       Test Menu

 

2.1      Identify Command

 

Select ‘0’ to send Identify command to RAID0.

 

 

Figure 21 Test result when running Identify command

 

 

After finishing the operation, the SSD information output from Identify command is displayed. The console shows two values.

1)  SSD model number       : This value is decoded from Identify controller data of each SSD.

2)  RAID capacity               : This value is calculated by multiplying device capacity in channel#0 by 4. Therefore, it is recommended to connect four SSDs which have the same size.

Note: If four SSDs are different model which has different capacity, please connect the smallest capacity SSD to CH#0.

 

When un-supported LBA size is detected, the error message is displayed on the console as shown in Figure 2‑2.

 

Figure 22 Error message when LBA size does not support

 

 

2.2      Write Command

 

Select ‘1’ to send Write command to RAID0.

 

Figure 23 Test result when running Write command

 

 

User inputs three parameters as follows.

1)  Start Address: Start address to write RAID0 in 512-byte unit. The input is decimal unit when the input is only digit number. User can add “0x” to be a prefix for hexadecimal unit.

2)  Transfer Length: Total transfer size in 512-byte unit. The input is decimal unit when the input is only digit number. User can add “0x” to be a prefix for hexadecimal unit.

3)  Test pattern: Select test data pattern for writing RAID0. There are five patterns, i.e., 32-bit incremental, 32-bit decremental, all-0, all-1, and 32-bit LFSR counter.

 

When all inputs are valid, the operation begins. During writing data, current transfer size is displayed on the console every second to show that system is still alive. Finally, total size, total time usage, and test speed are displayed on the console as a test result.

 

Note: Typically, the performance of RAID0x4 is about four times of the performance of one SSD. It is recommended to use the same SSD model for all SSD channels for matching SSD characteristic. If the different SSD model are applied in the system, the RAID0x4 performance is limited by four times of the slowest SSD performance.

 

 

Figure 24 Example Test data of the 1st 512-byte of each SSD by using LFSR pattern

 

 

The stripe size in 4-ch RAID0 demo is 512-byte. For incremental, decremental, or LFSR pattern, each 512-byte data has unique 64-bit header which consists of 48-bit address (in 512-byte unit) and 16-bit zero value. The data after 64-bit header is the test pattern which is selected by user. The 1st stripe is mapped to the first 512-byte of SSD#0. The 2nd stripe – the 4th stripe are mapped to the first 512-byte of SSD#1 – the first 512-byte of SSD#3, as shown in Figure 2‑4. The unique header is not included when running all-0 or all-1 pattern.

 

 

Figure 25 Error message from the invalid input

 

 

Figure 2‑5 shows the example when the input is out-of-range from the recommended value. The console displays “Invalid input” and then the operation is cancelled.

 

 

2.3      Read Command

 

Select ‘2’ to send Read command to RAID0.

 

Figure 26 Input and result of Read Command menu

 

 

User inputs three parameters as follows.

1)  Start Address: Start address to read RAID0 in 512-byte unit. The input is decimal unit when the input is only digit number. User can add “0x” to be a prefix for hexadecimal unit.

2)  Transfer Length: Total transfer size as 512-byte unit. The input is decimal unit when the input is only digit number. User can add “0x” to be a prefix for hexadecimal unit

3)  Test pattern: Select test data pattern to verify data from RAID0. Test pattern must be matched with the pattern using in Write Command menu. There are five patterns, i.e., 32-bit incremental, 32-bit decremental, all-0, all-1, and 32-bit LFSR counter

 

Similar to Write command menu, test system starts reading data from RAID0 when all inputs are valid. During reading data, current transfer size is displayed on the console every second to show that system is still alive. Total size, total time usage, and test speed are calculated and displayed after finishing data transferring.

 

Note:

1)  The read performance of some SSDs when using all-zero pattern is better than using LFSR pattern.

2)  Similar to Write command, when 4 SSDs are different, performance of RAID0 is limited by 4 times of the slowest SSD performance.

 

 

Figure 27 Data verification is failed

 

 

Figure 2‑7 shows error message when data verification is failed. “Verify fail” is displayed with the information of the 1st failure data, i.e., the error byte address, the expected value, and the read value. User can press any key(s) to cancel read operation or wait until finishing Read command. Without cancelling the operation, the read operation finally runs completely and displays the performance on the console as a test result.

 

When cancelling the operation, the read command still runs as the background process. Therefore, the operation does not complete in the good sequence. It is recommended to power-off/on AB18 and then presses “RESET” button to restart system.

 

 

2.4      SMART Command

 

Select ‘3’ to send SMART command to RAID0.

 

 

Figure 28 Test result when running SMART command

 

 

After finishing the operation, SMART/Health Information (output from SMART command) of four SSDs are displayed as shown in Figure 2‑8. The console shows Health status and SMART log information. Health status shows the remaining life of the SSD in percent unit which is calculated from Percentage Used in the SMART log information.

 

The SMART log information shows seven parameters, described as follows.

1)   Percentage Used

2)   Temperature in °C unit.

3)   Total Data Read decoded as GB/TB unit. Also, raw data without decoding is displayed in 128-bit hexadecimal unit. The unit size of raw data is 512,000 bytes.

4)   Total Data Written decoded as GB/TB unit. Also, raw data without decoding is displayed in 128-bit hexadecimal unit. The unit size of raw data is 512,000 bytes.

5)   Power On Cycles: Display the number of power cycles.

6)   Power On Hours: Display period of time in hours to show how long the SSD has been powered on.

7)   Unsafe Shutdowns: Display the number of unsafe shutdowns of SSD.

 

 

2.5      Flush Command

 

Select ‘4’ to send Flush command to RAID0.

 

 

Figure 29 Test result when running Flush command

 

 

“Flush Command Complete” is displayed after finishing Flush operation.

 

 

2.6      Shutdown Command

 

Select ‘5’ to send Shutdown command to RAID0.

 

 

Figure 210 Test result when running in Shutdown command

 

 

The confirmation message is displayed on the console. User enters ‘y’ or ‘Y’ to confirm the operation or enters other keys to cancel the operation.

 

After finishing Shutdown operation, “Shutdown command is complete” is displayed on the console as the last message. Main menu is not displayed and user needs to power off/on the test system to start new test operation.

 

 

3       Revision History

 

Revision

Date

Description

1.0

24-Jun-21

Initial version release

1.1

10-Sep-21

Update picture when using same SSDs