A device and method for multiplexing and parallel computing of RAID5 and RAID6 engines in an SSD master controller

By introducing data arbitration, XOR calculation and Galohua domain change modules into the SSD master, it supports switching and parallel computing between RAID5 and RAID6 modes, solving the contradiction between storage space utilization and cost, and achieving efficient utilization of hardware resources and application scenario expansion.

CN119718209BActive Publication Date: 2025-08-29SHANDONG SINOCHIP SEMICON CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411981238.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-08-29
Estimated Expiration
2044-12-31

AI Technical Summary

Technical Problem

In the prior art, the contradiction between storage space utilization and cost of RAID5 and RAID6 is difficult to efficiently switch and parallel computing in SSD master control, resulting in insufficient utilization of hardware resources.

Method used

The data arbitration module, exclusive OR computing module, data transmission module and Galahua domain change module are introduced in the SSD master control. The switching between RAID5 and RAID6 modes is realized through the configuration register, and the parallel computing module is multiplexed, and multiplexed data processing is supported.

Benefits of technology

It realizes the flexibly switch between RAID5 and RAID6 modes in SSD master control, makes full use of hardware resources, expands application scenarios, and is suitable for different data importance and storage space requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119718209B_ABST
    Figure CN119718209B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of chip design, and specifically to an engine multiplexing and parallel computing device and method for RAID5 and RAID6 in an SSD master control. The device includes a data arbitration module, an XOR calculation module, a data transmission module, a Galois field change module, and a data cache module. In RAID5 mode, the data arbitration module, the XOR calculation module, the data transmission module, and the data cache module are connected in sequence; in RAID6 mode, all XOR calculation modules are divided into two groups, one group is connected to the data arbitration module, the data transmission module, and the data cache, and is used to perform XOR operations on the original data, and the other group is connected to the data arbitration module, the Galois field change module, the data transmission module, and the data cache module, and is used to perform XOR operations on the data after Galois field conversion. The present invention supports two working modes, RAID5 and RAID6, in the SSD solid state drive master control, and the switching between the two modes can be achieved by configuring registers.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of chip design, and in particular to a device and method for multiplexing and parallel computing of RAID5 and RAID6 engines in an SSD master controller. Background Art

[0002] With the development of artificial intelligence and the Internet of Things (IoT), digital information is exploding, creating tremendous opportunities for the storage and protection of massive amounts of data. This has led to increasing demands for server storage performance. RAID (Redundant Arrays of Independent Disks) technology has become an indispensable component of large-scale servers and storage systems, and RAID 5 / 6 technology is increasingly being adopted in applications requiring high stability and security, such as data centers, video surveillance, digital content creation, and financial institutions. RAID 6 offers higher fault tolerance than RAID 5, but because it generates two sets of parity data, storage space utilization is low, resulting in higher costs. Therefore, one of the two RAID modes is generally chosen based on a comprehensive consideration of cost and data importance. Summary of the Invention

[0003] In response to the shortcomings of the existing technology, the present invention provides an engine multiplexing and parallel computing device and method for RAID5 and RAID6 in an SSD master controller, which supports both RAID5 and RAID6 working modes in the SSD solid state drive master controller. The switching between the two modes can be achieved by configuring registers, which can fully utilize hardware computing resources.

[0004] In order to solve the technical problem, the technical solution adopted by the present invention is: an engine multiplexing and parallel computing device for RAID5 and RAID6 in an SSD master control, including a data arbitration module, an XOR calculation module, a data transmission module, a data cache module and a Galois field change module. The data arbitration module is connected to the data source and is used to route unit data blocks from the upstream module of the data flow to each XOR calculation module or Galois field change module. The Galois field change module is connected to the data arbitration module and is used to perform Galois field conversion on the data. The XOR calculation module is connected to the data arbitration module and / or the Galois field change module and is used to complete a certain XOR operation and result transmission of the unit data block through data pipelining. The data transmission module is connected to the XOR calculation module and is used to route the result data block of the XOR calculation module to the data cache module. The data cache module is connected to the data transmission module and is used to cache temporary XOR calculation results.

[0005] In RAID5 mode, the data arbitration module, XOR calculation module, data transmission module, and data cache module are connected in sequence. The data received by the data arbitration module is passed to the XOR calculation module for XOR calculation. The XOR result is transmitted to the data cache array via the data transmission module.

[0006] In RAID 6 mode, all XOR calculation modules are divided into two groups. One group is connected to the data arbitration module, data transmission module, and data cache module to perform XOR operations on the original data. The other group is connected to the data arbitration module, Galois Field transformation module, data transmission module, and data cache module to perform XOR operations on the data after Galois Field transformation.

[0007] Furthermore, the switching between RAID5 mode and RAID6 mode is achieved by configuring registers.

[0008] Furthermore, the upstream module of the data flow sends a request for transmitting a unit data block to the data arbitration module. The data arbitration module determines whether there is an XOR calculation module that is currently in an idle state. If so, the data block is passed to the XOR calculation module. If not, the arbitration module rejects the data transmission request from the upstream module.

[0009] Furthermore, there are multiple XOR calculation modules, and the multiple XOR calculation modules implement parallel processing of multi-channel data.

[0010] Furthermore, the number of XOR calculation modules is determined according to the maximum access efficiency of the externally mounted Flash supported by the SSD main control chip.

[0011] Furthermore, the XOR calculation module performs a first XOR calculation based on the first data and the second data, and then performs an XOR calculation based on the current data and the previous XOR calculation result.

[0012] Furthermore, in RAID 6 mode, the data cache area is divided into two parts of equal size for storing two sets of check data.

[0013] The present invention also discloses an engine multiplexing and parallel computing method for SSD master control of RAID5 and RAID6, comprising the following steps:

[0014] S01, the data arbitration module receives the data to be calculated and determines whether it is in RAID 6 mode according to the register configuration. If not, proceed to steps S02, S03, and S04. If yes, proceed to step S05;

[0015] S02: Determine whether the data is the first data; if so, send the first data to the data cache module via the data transmission module;

[0016] S03, the data arbitration module continues to receive data, and performs XOR calculation on the second data and the first data through the XOR calculation module, and sends the calculation result to the data cache module through the data transmission module;

[0017] S04: For each subsequent data item, perform an XOR calculation on it and the XOR calculation result of the previous time, and send the calculation result to the data cache module through the data transmission module;

[0018] S05. Divide all XOR calculation modules into two groups. One group is connected to the data arbitration module, the data transmission module, and the data cache module, and is used to perform XOR operations on the original data. The operation process is the same as steps S02, S03, and S04. The other group is connected to the data arbitration module, the Galois Field module, the data transmission module, and the data cache module, and is used to perform XOR operations on the data after Galois Field conversion. The operation process is as follows: determine whether it is the first data. If so, the first data is converted to the data cache module through the data transmission module after the Galois Field conversion; the data arbitration module continues to receive data, and the second data is converted to the data cache module and then XORed with the first data in the data cache module through the XOR calculation module, and the calculation result is sent to the data cache module through the data transmission module; for each subsequent data, the data is converted to the Galois Field and then XORed with the previous XOR calculation result, and the calculation result is sent to the data cache module through the data transmission module.

[0019] Furthermore, in step S05, two groups of XOR calculation modules run in parallel.

[0020] Furthermore, in step S05, all XOR calculation modules are divided into two groups of equal numbers.

[0021] The present invention uses the same hardware logic to support two data backup methods. Chip developers can choose between RAID 5 and RAID 6 based on the importance of the data and the size of the off-chip storage space (Flash), expanding the chip's application scenarios. For example, it can be used as RAID 6 in a data center and as RAID 5 in a consumer SSD. Even within the same scenario, the operating modes can be subdivided, allowing for categorized backup of different data types, with important data backed up using RAID 6 and general data backed up using RAID 5.

[0022] Compared with the hardware logic of pure RAID5, this design only adds a Galois Field conversion module and certain control logic to dynamically allocate on-chip storage units, realizing both RAID5 and RAID6 data backup methods, exchanging smaller overhead for greater flexibility, and contributing to the expansion of product applications. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 This is the schematic diagram of the device in RAID5 mode;

[0024] Figure 2 This is the schematic diagram of the device in RAID6 mode;

[0025] Figure 3 Schematic diagrams of performing XOR calculation on original data and data converted by Galois Field respectively;

[0026] Figure 4 This is a flow chart of the method described in Example 2. DETAILED DESCRIPTION

[0027] The present invention will be further described below with reference to the accompanying drawings and specific embodiments.

[0028] Example 1

[0029] This embodiment discloses a RAID5 and RAID6 engine multiplexing and parallel computing device in an SSD master controller, including a data arbitration module, an XOR computing module, a data transmission module, a data cache module, and a Galois field change module.

[0030] The data arbitration module is connected to the data source and routes unit data blocks from upstream modules to various XOR calculation modules or Galois Field transformation modules. Each upstream module in the chip sends a request to transfer a unit data block to the arbitration module. The arbitration module determines whether there is an idle XOR calculation module. If so, it transfers the data block to that XOR calculation module. If not, it rejects the data transfer request from the upstream module.

[0031] The Galois Field transformation module is connected to the data arbitration module and is used to perform Galois Field transformation on the data. It includes a multiplication algorithm unit, a lookup table, etc., to implement single iterative data operations regardless of program or recovery.

[0032] The XOR calculation module is embedded with an SRAM, the size of which depends on the maximum value of the unit data block defined in the system. The XOR calculation module is connected to the data arbitration module and / or the Galois field change module, and is used to complete a certain XOR operation of the unit data block and the transmission of the result through data pipelining. Specifically, it includes: 1. caching the received data block to the embedded SRAM, 2. performing an XOR operation on the cached data block and the fixed unit data block from the data transmission module, and caching the XOR result in the embedded SRAM, 3. outputting the cached XOR calculation result data block to the data transmission module. In this embodiment, the number of calculation modules is determined based on the overall data flow rate inside the chip, that is, the maximum access efficiency of the externally mounted Flash supported, to achieve parallel processing of multi-channel data and improve system efficiency.

[0033] The data transmission module is connected to the XOR calculation module and routes the XOR calculation module's result data blocks to the data cache module, allowing the parity data for the entire stripe to be written to the corresponding flash memory area. During the RAID process, the temporary XOR calculation results for a single fixed-unit data block are transferred to the data cache module. The temporary results are read and transferred to the calculation module during the next calculation. The XOR calculation module then performs the XOR calculation on the data transferred from the arbitration module.

[0034] The data cache module is connected to the data transmission module and is used to cache temporary XOR calculation results. Its size is determined by the capacity of the external Flash supported by the chip.

[0035] like Figure 1 As shown, in RAID5 mode, the data arbitration module, XOR calculation module, data transmission module, and data cache module are connected in sequence. The data received by the data arbitration module is passed to the XOR calculation module for XOR calculation, and the XOR result is transmitted to the data cache module via the data transmission module.

[0036] like Figure 2 As shown, in RAID 6 mode, all XOR calculation modules are divided into two groups. One group is connected to the data arbitration module, data transmission module, and data cache, performing XOR operations on the original data. The other group is connected to the data arbitration module, Galois Field transformation module, data transmission module, and data cache module, performing XOR operations on the Galois Field-transformed data. In RAID 6 mode, the data cache area is divided into two equal-sized portions to store two sets of parity data.

[0037] In this embodiment, the RAID 5 mode and the RAID 6 mode are switched by configuring the register. The default mode is RAID 5.

[0038] In this embodiment, the XOR calculation module performs a first XOR calculation based on the first data and the second data, and then performs an XOR calculation based on the current data and the result of the previous XOR calculation.

[0039] Example 2

[0040] This embodiment discloses an SSD master control RAID5 and RAID6 engine multiplexing and parallel computing device, such as Figure 4 As shown, the following steps are included:

[0041] S01, the data arbitration module receives the data to be calculated and determines whether it is in RAID 6 mode according to the register configuration. If not, proceed to steps S02, S03, and S04. If yes, proceed to step S05;

[0042] S02: Determine whether the data is the first data; if so, send the first data to the data cache module via the data transmission module;

[0043] S03, the data arbitration module continues to receive data, and performs XOR calculation on the second data and the first data through the XOR calculation module, and sends the calculation result to the data cache module through the data transmission module;

[0044] S04: For each subsequent data item, perform an XOR calculation on it and the XOR calculation result of the previous time, and send the calculation result to the data cache module through the data transmission module;

[0045] S05. Divide all XOR calculation modules into two groups. One group is connected to the data arbitration module, the data transmission module, and the data cache module, and is used to perform XOR operations on the original data. The operation process is the same as steps S02, S03, and S04. The other group is connected to the data arbitration module, the Galois Field module, the data transmission module, and the data cache module, and is used to perform XOR operations on the data after Galois Field conversion. The operation process is as follows: determine whether it is the first data. If so, the first data is converted to the data cache module through the data transmission module after the Galois Field conversion; the data arbitration module continues to receive data, and the second data is converted to the data cache module and then XORed with the first data in the data cache module through the XOR calculation module, and the calculation result is sent to the data cache module through the data transmission module; for each subsequent data, the data is converted to the Galois Field and then XORed with the previous XOR calculation result, and the calculation result is sent to the data cache module through the data transmission module.

[0046] In step S05 , all XOR calculation modules are divided into two groups of equal number, and the two groups of XOR calculation modules run in parallel.

[0047] Figure 3 The following are schematic diagrams of performing XOR calculations on the original data and the data after Galois Field conversion. In RAID 5 mode, only the XOR calculation is performed on the original data. In RAID 6 mode, the two methods are performed in parallel.

[0048] The present invention provides a solution for supporting both RAID 5 and RAID 6 operating modes in an SSD (Solid State Disk) controller. Switching between the two modes can be achieved by configuring registers. The process of implementing RAID 5 and RAID 6 both includes exclusive OR (XOR) calculation. This method multiplexes XOR calculation modules in RAID 5 and 6 modes, and all XOR calculation modules can be called in RAID 5 mode. In RAID 6 mode, the XOR calculation modules are divided into two groups, and two sets of check data are calculated in parallel, which can fully utilize hardware computing resources.

[0049] The above description is only the basic principle and preferred embodiments of the present invention. Improvements and substitutions made by those skilled in the art based on the present invention fall within the protection scope of the present invention.

Claims

1. A device for multiplexing and parallel computing RAID 5 and RAID 6 engines in an SSD controller, characterized by: It includes a data arbitration module, an XOR calculation module, a data transmission module, a data cache module and a Galois field change module. The data arbitration module is connected to the data source and is used to route unit data blocks from the upstream module of the data flow to each XOR calculation module or Galois field change module. The Galois field change module is connected to the data arbitration module and is used to perform Galois field conversion on the data. The XOR calculation module is connected to the data arbitration module and / or the Galois field change module and is used to complete a certain XOR operation and result transmission of the unit data block through data pipelining. The data transmission module is connected to the XOR calculation module and is used to route the result data block of the XOR calculation module to the data cache module. The data cache module is connected to the data transmission module and is used to cache temporary XOR calculation results. In RAID5 mode, the data arbitration module, XOR calculation module, data transmission module, and data cache module are connected in sequence. The data received by the data arbitration module is passed to the XOR calculation module for XOR calculation. The XOR result is transmitted to the data cache array via the data transmission module. In RAID 6 mode, all XOR calculation modules are divided into two groups. One group is connected to the data arbitration module, data transmission module, and data cache module to perform XOR operations on the original data. The other group is connected to the data arbitration module, Galois Field transformation module, data transmission module, and data cache module to perform XOR operations on the data after Galois Field transformation.

2. The RAID 5 and RAID 6 engine multiplexing and parallel computing device in an SSD controller according to claim 1, characterized in that: Switching between RAID5 mode and RAID6 mode is achieved through configuration registers.

3. The RAID 5 and RAID 6 engine multiplexing and parallel computing device in an SSD controller according to claim 1, characterized in that: The upstream module of the data flow sends a request to transmit a unit data block to the data arbitration module. The data arbitration module determines whether there is an idle XOR calculation module. If so, the data block is passed to the XOR calculation module. If not, the arbitration module rejects the data transmission request from the upstream module.

4. The RAID 5 and RAID 6 engine multiplexing and parallel computing device in an SSD controller according to claim 1, characterized in that: There are multiple XOR calculation modules, and multiple XOR calculation modules realize parallel processing of multi-channel data.

5. The RAID 5 and RAID 6 engine multiplexing and parallel computing device in an SSD controller according to claim 4, characterized in that: The number of XOR calculation modules is determined based on the maximum access efficiency of the externally mounted Flash supported by the SSD main control chip.

6. The RAID5 and RAID6 engine multiplexing and parallel computing device in an SSD controller according to claim 1, characterized in that: The XOR calculation module performs a first XOR calculation based on the first data and the second data, and then performs an XOR calculation based on the current data and the previous XOR calculation result.

7. The RAID 5 and RAID 6 multiplexing and parallel computing device in an SSD master controller according to claim 1, characterized in that: In RAID 6 mode, the data cache area is divided into two equal-sized parts to store two sets of parity data.

8. A method for multiplexing and parallel computing of RAID5 and RAID6 engines in an SSD controller, characterized by: The following steps are involved: S01, the data arbitration module receives the data to be calculated and determines whether it is in RAID 6 mode according to the register configuration. If not, proceed to steps S02, S03, and S04. If yes, proceed to step S05; S02: Determine whether the data is the first data; if so, send the first data to the data cache module via the data transmission module; S03, the data arbitration module continues to receive data, and performs XOR calculation on the second data and the first data through the XOR calculation module, and sends the calculation result to the data cache module through the data transmission module; S04: For each subsequent data item, perform an XOR calculation on it and the XOR calculation result of the previous time, and send the calculation result to the data cache module through the data transmission module; S05. Divide all XOR calculation modules into two groups. One group is connected to the data arbitration module, the data transmission module, and the data cache module, and is used to perform XOR operations on the original data. The operation process is the same as steps S02, S03, and S04. The other group is connected to the data arbitration module, the Galois Field module, the data transmission module, and the data cache module, and is used to perform XOR operations on the data after Galois Field conversion. The operation process is as follows: determine whether it is the first data. If so, transform the first data through the Galois Field and then send it to the data cache module through the data transmission module; The data arbitration module continues to receive data, and after the second data is transformed through the Galois field, it is XORed with the first data in the data cache module through the XOR calculation module, and the calculation result is sent to the data cache module through the data transmission module; for each subsequent data, it is XORed with the last XOR calculation result after being transformed through the Galois field, and the calculation result is sent to the data cache module through the data transmission module.

9. The method for multiplexing and parallel computing of RAID 5 and RAID 6 engines in an SSD controller according to claim 8, characterized in that: In step S05, two groups of XOR calculation modules run in parallel.

10. The method for multiplexing and parallel computing of RAID and RAID6 engines in an SSD controller according to claim 8, characterized in that: In step S05 , all XOR calculation modules are divided into two groups of equal numbers.

Citation Information

Patent Citations

  • Architecture and data processing method for hardware RAID 5 / 6 memory system

    CN102609221A

  • RS high-speed coding circuit

    CN112468161A