HCTL-IP RAID0x8 DDR Demo Instruction

Rev1.0  22-Aug-23

1    Environment Setup. 2

2    Demo setup. 3

3    Test Menu. 6

3.1    Identify Device. 6

3.2    Write Device. 7

3.3    Read Device. 12

3.4    Security Erase. 15

4    Revision History. 16

 

 

This document describes the instruction to run 8-ch RAID0 with DDR by using SATA HCTL-IP. To run the demo, FPGA development board and AB09-FMCRAID board are applied. The demo is designed to write/verify data with eight SATA-III devices. User controls test operation through Serial console.

 

1       Environment Setup

To run the demo on FPGA development board, please prepare following environment.

1)    FPGA Development board: KCU105

2)    PC with Xilinx programmer software (Vivado) and Serial console software such as HyperTerminal

3)    AB09-FMCRAID board, provided by Design Gateway

4)    Power supply connecting to power connector on FMCRAID board to be SATA device power

5)    Eight SATA-III devices connecting at CN0-CN7 of FMCRAID board

6)    Xilinx Power adapter for Xilinx board

7)    Two micro USB cables for programming FPGA and Serial console connecting between FPGA Development board and PC

 

 

Figure 11 HCTL-IP RAID0x8 DDR demo setup on KCU105

 

 

2       Demo setup

 

1)    Power off system.

2)    Connect AB09-FMCRAID board to FMC-HPC connector on FPGA development board.

3)    Connect eight SATA-III devices to CN0-CN7 on FMCRAID board.

4)    Connect power to power connector on FMCRAID board.

 

 

Figure 21 AB09-FMCRAID connection

 

 

5)    Connect two micro USB cables from Xilinx development board to PC for JTAG programming and Serial console.

 

 

Figure 22 USB cable connection

 

 

6)    Power on FPGA development board and power supply for SATA device.

7)    Open Serial console such as TeraTerm, HyperTerminal and set Buad rate=115,200 Data=8 bit Non-Parity Stop=1.

8)    Use Vivado tool to download configuration file which includes CPU firmware, as shown in Figure 2‑3.

 

 

Figure 23 Programmed by Vivado

 

 

9)    Check LED status on Xilinx development board. The description of LED is shown in Table 2‑1.

 

Table 21 LED Definition

GPIO LED

ON

OFF

0

Normal operation

System is in reset condition

1

System is busy

Idle status

2

Error detect

Normal operation

3

Data verification fail

Normal operation

 

 

 

Figure 24 4-bit LED Status for user output

 

 

10) After programming completely, LED[0] and LED[1] are ON during RAID0 initialization process. Then, LED[1] changes to OFF to show that RAID0 completes initialization process and system is ready to receive command from user. After that, main menu is displayed as shown in Figure 2‑6.

 

 

Figure 25 LED status after program configuration file and RAID0 initialization complete

 

 

 

Figure 26 Main menu after programming configuration file and RAID0 initialization complete

 

 

11) If some SATA devices are not detected, “CH[0-7] Not Detect” will be displayed as shown in Figure 2‑7. CH[0]-[7] is referred to SATA channel which has found the error. Please check SATA device in error channel.

 

 

Figure 27 Error message when some devices are not detected

 

 

3       Test Menu

 

3.1      Identify Device

 

Select ‘0’ to send Identify device command to RAID0. When operation is completed, all information is displayed on the console, i.e.

1)  SSD model number

2)  Security feature set is supported or not. If some devices are not supported, user must not run menu 3 to test Security erase command.

3)  Normal Erase Mode Time: This is estimation time to complete Security erase command. Minimum valid value is 2 minutes. This information is displayed when the device supports Security feature set.

4)  SSD capacity which is output value from RAID0 block. The value is equal to eight times of SATA CH#0 capacity.

 

 

Figure 31 Result from Identify Device menu

 

 

3.2      Write Device

 

Select ‘1’ to send Write command to RAID0. Five inputs are required for this menu.

 

1)  Start LBA: Input start address of RAID0 in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit.

2)  Sector Count: Input total transfer size in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit.

3)  Test pattern: Select test pattern of test data for writing to RAID0. Five types can be selected, i.e. 32-bit increment, 32-bit decrement, all 0, all 1, and 32-bit LFSR counter.

4)  Numerator ratio (NMT): Input numerator of transfer rate ratio. Valid value is 1 to 15.

5)  Denominator ratio (DMT): Input denominator of transfer rate ratio. Valid value is NMT input to 15.

Transfer rate ratio = (NMT/DMT) x 6400 MB (200 MHz x 256-bit)

For example, when input NUM = 5 and DMT = 8, Transfer rate ratio = 5/8 x 6400 = 4000 MB/s. This rate is applied for Write Device menu in this document.

 

 

Figure 32 Input and result of Write Device menu

 

 

As shown in Figure 3‑2, if all inputs are valid, the operation will be started. During writing data, current transfer size is displayed to the console to show that system still be alive. Finally, test performance, total size, and total time usage are displayed on the console as test result.

 

 

Figure 33 Example Test data in sector#0/#1 of Dev#0/#1/#6/#7 by increment pattern

 

 

Test data of each sector has different 64-bit header which consists of 48-bit LBA address and 16-bit all 0 value. 48-bit LBA address is unique value for each sector. After that, the test pattern is filled following user selection such as 32-bit increment pattern (as shown in Figure 3‑3).

 

Stripe size in 8-ch RAID0 demo with DDR is 1 sector (512-byte). So, LBA address in the header of 1st sector in Disk#0 - Disk#7 are equal to 0 - 7 sequentially. The address in the header of the next sector for Disk#0 is 8.

 

Figure 3‑4Figure 3‑8 show error message when user input is invalid. “Invalid input” is displayed on the console and then returns to main menu to receive new command.

 

 

Figure 34 Invalid Start LBA input

 

 

 

Figure 35 Invalid Sector count input

 

 

 

Figure 36 Invalid Test pattern input

 

 

 

Figure 37 Invalid Numerator ratio input

 

 

 

Figure 38 Invalid Denominator ratio input

 

 

Figure 3‑9 shows error message when buffer is overflow. If transfer rate ratio setting to NMT and DMT parameter is too high, the buffer in the system will be overflow. In the example, 4800 MB/s (600 MB/s for one device) is set which is higher than 8 SATA devices performance, “ERROR: Buffer Overflow” is displayed on the console.

 

After that, the system waits for 10 seconds which is timeout value of SATA HCTL-IP to check the error situation on the IP. “No RAID0 Error” is shown when there is no error from RAID0.

 

When error is found, the operation of previous command in each SATA device does not finish in good sequence. It is recommended to power-off/on all SATA devices and press “RESET” button to restart the system. For the next trial after buffer overflow, please set the lower transfer rate to run the test.

 

 

Figure 39 Example of buffer overflow

 

 

3.3      Read Device

 

Select ‘2’ to send Read command to RAID0. Six inputs are required for this menu.

1)  Start LBA: Input start address of RAID0 in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit.

2)  Sector Count: Input total transfer size in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit.

3)  Test pattern: Select test pattern to verify data from RAID0. Test pattern must be matched with the test pattern using in Write Device menu. Five types can be selected, i.e. 32-bit increment, 32-bit decrement, all 0, all 1, and 32-bit LFSR counter.

4)  Numerator ratio (NMT): Input numerator of transfer rate ratio. Valid value is 1 to 15.

5)  Denominator ratio (DMT): Input denominator of transfer rate ratio. Valid value is NMT input to 15.

Transfer rate ratio = (NMT/DMT) x 6400 MB (200 MHz x 256-bit)

For example, when input NUM = 2 and DMT = 3, Transfer rate ratio = 2/3 x 6400 = 4266.67 MB/s. This rate is applied for Read Device menu in this document.

6)  Ddr Read Threshold: The minimum data size is stored in DDR before starting to read data from DDR to verify at sustain rate. Unit size is Mbyte and valid from 1 – 2047. In Read command, DDR is read in sustain rate, so the read logic needs to wait write data stored in DDR much enough before starting reading.

 

 

Figure 310 Input and result of Read Device menu

 

 

Similar to Write Device menu, if all inputs are valid, test system will read data from RAID0. Test performance, total size, and total time usage are displayed after end of transfer. “Invalid input” will be displayed if some inputs are out-of-range.

 

 

Figure 311 Data verification is failed but wait until read complete

 

 

 

Figure 312 Data verification is failed and press any key to cancel operation

 

 

Figure 3‑11 and Figure 3‑12 show the error message when data verification is failed. “Verify fail” is displayed with error address, expected data, and read data. User can press any key to cancel read operation or wait until all read process complete.

If read process is completed, output performance from read process will be displayed.

 

In case of cancel operation, the previous command does not complete in good sequence. It is recommended to power-off/on all SATA devices and press “RESET” button to restart system.

 

 

Figure 313 Example of buffer underflow

 

 

Figure 3‑13 shows error message when buffer is underflow. If transfer rate ratio setting to NMT and DMT parameter is too high, the buffer in the system will be underflow. In the example, 4800 MB/s (600 MB/s for one device) is set which is higher than 8 SATA devices performance, “ERROR: Buffer Underflow” is displayed on the console.

 

After that, the system waits for 10 seconds which is timeout value of SATA HCTL-IP to check the error situation on the IP. “No RAID0 Error” is shown when there is no error from RAID0.

 

When system is error, the operation of previous command in each SATA device does not finish in good sequence. It is recommended to power-off/on all SATA devices and press “RESET” button to restart the system. For the next trial after buffer underflow, please set the lower transfer rate to run the test.

 

 

3.4      Security Erase

 

Select ‘3’ to send Security Erase command to RAID0. Please confirm that all SATA devices support Security Erase feature by using Identify device menu. The estimated time of security erase operation is also displayed in Identify device menu.

 

After selecting the menu, confirmation message is displayed on the console. User inputs ‘y’ or ‘Y’ to continue security erase operation or input other keys to cancel operation.

 

Number 0-9 is displayed on the console every second to show that system still run. After complete the operation, total time usage is displayed as shown in Figure 3‑14.

 

Figure 3‑15 shows the example when user inputs other keys to cancel the command.

 

 

Figure 314 Result from Security Erase command

 

 

Figure 315 Cancel Security Erase command

 

 

4       Revision History

 

Revision

Date

Description

1.0

8-Mar-18

Initial version release